diff --git a/Contrib-Inspur/OR-web/README.md b/Contrib-Inspur/OR-web/README.md index 4bf36325..8cb2a899 100644 --- a/Contrib-Inspur/OR-web/README.md +++ b/Contrib-Inspur/OR-web/README.md @@ -1,9 +1,29 @@ -# OR-web - -## Install +# antd-ob +## Project setup ``` npm install +``` + +### Compiles and hot-reloads for development +``` +npm run serve +``` + +### Compiles and minifies for production +``` npm run build -scp -r ./dist/* root@bmcIP:/usr/share/www/ -```` +``` + +### Run your tests +``` +npm run test +``` + +### Lints and fixes files +``` +npm run lint +``` + +### Customize configuration +See [Configuration Reference](https://cli.vuejs.org/config/). diff --git a/Contrib-Inspur/OR-web/package.json b/Contrib-Inspur/OR-web/package.json index 78e0ffeb..bec57cb3 100644 --- a/Contrib-Inspur/OR-web/package.json +++ b/Contrib-Inspur/OR-web/package.json @@ -10,7 +10,7 @@ "dependencies": { "animate.css": "^3.7.0", "ant-design-vue": "^1.3.1", - "axios": "^0.19.0", + "axios": "^0.18.0", "dayjs": "^1.8.0", "epic-spinners": "^1.0.4", "vue": "^2.5.21", diff --git a/Contrib-Inspur/OR-web/src/service/i18n/en-US/psu.js b/Contrib-Inspur/OR-web/src/service/i18n/en-US/psu.js index 8ad34193..2a0906ca 100644 --- a/Contrib-Inspur/OR-web/src/service/i18n/en-US/psu.js +++ b/Contrib-Inspur/OR-web/src/service/i18n/en-US/psu.js @@ -1,9 +1,20 @@ +/* + * @Author: your name + * @Date: 2020-02-20 10:26:29 + * @LastEditTime: 2020-03-01 19:21:02 + * @LastEditors: Please set LastEditors + * @Description: In User Settings Edit + * @FilePath: /bmcweb/home/mengyaohui/work/openbmc/openbmc/build/workspace/sources/phosphor-webui/src/service/i18n/en-US/psu.js + */ export default { title: 'Power Supply', sub_title: 'Display all nodes\' information', - vendor: 'Vendor:', - model: 'Model:', - sn: 'SN:', - pn: 'PN:', - fw: 'Firmware Version:' + status: 'Status', + vendor: 'Vendor', + model: 'Model', + sn: 'SN', + pn: 'PN', + fw: 'Firmware Version', + enable: 'enable', + disable: 'disable', } diff --git a/Contrib-Inspur/OR-web/src/service/i18n/zh-CN/psu.js b/Contrib-Inspur/OR-web/src/service/i18n/zh-CN/psu.js index 2285b894..59398b67 100644 --- a/Contrib-Inspur/OR-web/src/service/i18n/zh-CN/psu.js +++ b/Contrib-Inspur/OR-web/src/service/i18n/zh-CN/psu.js @@ -1,9 +1,20 @@ +/* + * @Author: your name + * @Date: 2020-02-20 10:26:29 + * @LastEditTime: 2020-03-01 19:20:37 + * @LastEditors: Please set LastEditors + * @Description: In User Settings Edit + * @FilePath: /bmcweb/home/mengyaohui/work/openbmc/openbmc/build/workspace/sources/phosphor-webui/src/service/i18n/zh-CN/psu.js + */ export default { title: '电源模块', sub_title: '展示节点电源模块信息', - vendor: '生产商:', - model: '型号:', - sn: '序列号:', - pn: '部分编号:', - fw: '固件版本:' + status: '状态', + vendor: '生产商', + model: '型号', + sn: '序列号', + pn: '部分编号', + fw: '固件版本', + enable: '在位', + disable: '不在位', } diff --git a/Contrib-Inspur/OR-web/src/views/psu/psu.vue b/Contrib-Inspur/OR-web/src/views/psu/psu.vue index fcd78f9b..a1697e88 100644 --- a/Contrib-Inspur/OR-web/src/views/psu/psu.vue +++ b/Contrib-Inspur/OR-web/src/views/psu/psu.vue @@ -1,40 +1,32 @@ + + diff --git a/Contrib-Inspur/bmcweb/CMakeLists.txt b/Contrib-Inspur/bmcweb/CMakeLists.txt index 6756575c..b0e8f36d 100644 --- a/Contrib-Inspur/bmcweb/CMakeLists.txt +++ b/Contrib-Inspur/bmcweb/CMakeLists.txt @@ -1,5 +1,7 @@ cmake_minimum_required (VERSION 3.5 FATAL_ERROR) +project (bmc-webserver CXX) + cmake_policy (SET CMP0054 NEW) set (CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake ${CMAKE_MODULE_PATH}) @@ -8,47 +10,128 @@ option (BUILD_STATIC_LIBS "Built static libraries" ON) option (YOCTO_DEPENDENCIES "Use YOCTO dependencies system" OFF) -option (BMCWEB_ENABLE_KVM "Enable the KVM host video WebSocket. Path is - '/kvmws'. Video is from the BMC's '/dev/video' device." ON) -option (BMCWEB_ENABLE_DBUS_REST "Enable Phosphor REST (D-Bus) APIs. Paths - directly map Phosphor D-Bus object paths, for example, - '/xyz/openbmc_project/logging/entry/enumerate'. See - https://github.com/openbmc/docs/blob/master/rest-api.md." ON) -option (BMCWEB_ENABLE_REDFISH "Enable Redfish APIs. Paths are under - '/redfish/v1/'. See - https://github.com/openbmc/bmcweb/blob/master/DEVELOPING.md#redfish." - ON) -option (BMCWEB_ENABLE_HOST_SERIAL_WEBSOCKET "Enable host serial console - WebSocket. Path is '/console0'. See - https://github.com/openbmc/docs/blob/master/console.md." ON) -option (BMCWEB_ENABLE_STATIC_HOSTING "Enable serving files from the - '/usr/share/www' directory as paths under '/'." ON) -option (BMCWEB_ENABLE_REDFISH_BMC_JOURNAL "Enable BMC journal access through - Redfish. Paths are under - '/redfish/v1/Managers/bmc/LogServices/Journal'." OFF) -option (BMCWEB_ENABLE_REDFISH_RAW_PECI "Enable PECI transactions through - Redfish. Paths are under '/redfish/v1/Systems/system/LogServices/CpuLog/ - Actions/Oem/CpuLog.SendRawPeci'." OFF) -option (BMCWEB_ENABLE_REDFISH_CPU_LOG "Enable CPU log service transactions - through Redfish. Paths are under - '/redfish/v1/Systems/system/LogServices/CpuLog'." OFF) +option ( + BMCWEB_ENABLE_KVM + "Enable the KVM host video WebSocket. Path is '/kvm/0'. Video is from the + BMC's '/dev/video' device." + ON +) +option ( + BMCWEB_ENABLE_VM_WEBSOCKET + "Enable the Virtual Media WebSocket. Path is '/vm/0/0'to open the websocket. + See https://github.com/openbmc/jsnbd/blob/master/README." + ON +) +option ( + BMCWEB_ENABLE_VM_NBDPROXY + "Enable the Virtual Media WebSocket." + OFF +) +option ( + BMCWEB_ENABLE_DBUS_REST + "Enable Phosphor REST (D-Bus) APIs. Paths directly map Phosphor D-Bus + object paths, for example, '/xyz/openbmc_project/logging/entry/enumerate'. + See https://github.com/openbmc/docs/blob/master/rest-api.md." + ON +) +option ( + BMCWEB_ENABLE_REDFISH + "Enable Redfish APIs. Paths are under '/redfish/v1/'. See + https://github.com/openbmc/bmcweb/blob/master/DEVELOPING.md#redfish." + ON +) +option ( + BMCWEB_ENABLE_HOST_SERIAL_WEBSOCKET + "Enable host serial console WebSocket. Path is '/console0'. See + https://github.com/openbmc/docs/blob/master/console.md." + ON +) +option ( + BMCWEB_ENABLE_STATIC_HOSTING + "Enable serving files from the '/usr/share/www' directory as paths under + '/'." + ON +) +option ( + BMCWEB_ENABLE_REDFISH_BMC_JOURNAL + "Enable BMC journal access through Redfish. Paths are under + '/redfish/v1/Managers/bmc/LogServices/Journal'." + OFF +) +option ( + BMCWEB_ENABLE_REDFISH_RAW_PECI + "Enable PECI transactions through Redfish. Paths are under + '/redfish/v1/Systems/system/LogServices/CpuLog/Actions/Oem/CpuLog.SendRawPeci'." + OFF +) +option ( + BMCWEB_ENABLE_REDFISH_CPU_LOG + "Enable CPU log service transactions through Redfish. Paths are under + '/redfish/v1/Systems/system/LogServices/Crashdump'." + OFF +) +option ( + BMCWEB_ENABLE_REDFISH_DBUS_LOG_ENTRIES + "Enable DBUS log service transactions through Redfish. Paths are under + '/redfish/v1/Systems/system/LogServices/EventLog/Entries'." + OFF +) +option ( + BMCWEB_ENABLE_REDFISH_PROVISIONING_FEATURE + "Enable provisioning feature support in redfish. Paths are under + '/redfish/v1/Systems/system/'." + OFF +) +option ( + BMCWEB_ENABLE_MUTUAL_TLS_AUTHENTICATION + "Enables authenticating users through TLS client certificates. + The BMCWEB_INSECURE_DISABLE_SSL must be OFF for this option to take effect." + ON +) # Insecure options. Every option that starts with a BMCWEB_INSECURE flag should # not be enabled by default for any platform, unless the author fully # comprehends the implications of doing so. In general, enabling these options # will cause security problems of varying degrees -option (BMCWEB_INSECURE_DISABLE_CSRF_PREVENTION "Disable CSRF prevention checks. - Should be set to OFF for production systems." OFF) +option ( + BMCWEB_INSECURE_DISABLE_CSRF_PREVENTION + "Disable CSRF prevention checks. Should be set to OFF for production + systems." + OFF +) -option (BMCWEB_INSECURE_DISABLE_SSL "Disable SSL ports. Should be set to OFF for - production systems." OFF) +option (BMCWEB_INSECURE_DISABLE_SSL + "Disable SSL ports. Should be set to OFF for production systems." OFF) -option (BMCWEB_INSECURE_DISABLE_AUTHENTICATION "Disable authentication on all - ports. Should be set to OFF for production systems" OFF) +option ( + BMCWEB_INSECURE_DISABLE_AUTHENTICATION + "Disable authentication on all ports. Should be set to OFF for production + systems" + OFF +) option (BMCWEB_INSECURE_DISABLE_XSS_PREVENTION "Disable XSS preventions" OFF) -project (bmc-webserver CXX) +option ( + BMCWEB_INSECURE_ENABLE_REDFISH_FW_TFTP_UPDATE + "Enable TFTP based firmware update transactions through Redfish + UpdateService.SimpleUpdate." + OFF +) + + +option (BMCWEB_ENABLE_REDFISH_RMC "enable rmc redfish in bmc webserver" OFF) + +set (BMCWEB_HTTP_REQ_BODY_LIMIT_MB "30" CACHE STRING + "The max HTTP request body size in MB") + +configure_file(config.h.in ${CMAKE_CURRENT_SOURCE_DIR}/include/config.h) + +if (BMCWEB_ENABLE_MUTUAL_TLS_AUTHENTICATION AND BMCWEB_INSECURE_DISABLE_SSL) + message("SSL Must be enabled to allow SSL authentication") + set(BMCWEB_ENABLE_MUTUAL_TLS_AUTHENTICATION OFF) +endif() + include (CTest) @@ -59,25 +142,67 @@ set (CMAKE_EXPORT_COMPILE_COMMANDS ON) set (CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS} -Wall") -set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fno-rtti") +set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} \ + -fno-rtti \ +") + +set ( + CMAKE_CXX_FLAGS + "${CMAKE_CXX_FLAGS} \ + -Wall \ + -Wextra \ + -Wnon-virtual-dtor \ + -Wold-style-cast \ + -Wcast-align \ + -Wunused \ + -Woverloaded-virtual \ + -Wpedantic \ + -Wconversion \ + -Wsign-conversion \ + -Wnull-dereference \ + -Wdouble-promotion \ + -Wformat=2 \ + -Wno-unused-parameter \ +" +) + +# only set -Werror if we're on a compiler that we know passes +if ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU") + if (CMAKE_CXX_COMPILER_VERSION VERSION_GREATER 8.0) + set ( + CMAKE_CXX_FLAGS + "${CMAKE_CXX_FLAGS} \ + -Werror \ + -Wduplicated-cond \ + -Wduplicated-branches \ + -Wlogical-op \ + -Wnull-dereference \ + -Wdouble-promotion \ + -Wformat=2 \ + -Wno-unused-parameter \ + " + ) + endif (CMAKE_CXX_COMPILER_VERSION VERSION_GREATER 8.0) +endif ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU") + set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fno-rtti") # general option (BMCWEB_BUILD_UT "Enable Unit test" OFF) # security flags -set (SECURITY_FLAGS "\ - -fstack-protector-strong \ +set ( + SECURITY_FLAGS + "-fstack-protector-strong \ -fPIE \ -fPIC \ -D_FORTIFY_SOURCE=2 \ -Wformat \ - -Wformat-security") -set (CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} ${SECURITY_FLAGS}") -set ( - CMAKE_CXX_FLAGS_RELWITHDEBINFO - "${CMAKE_CXX_FLAGS_RELWITHDEBINFO} ${SECURITY_FLAGS}" + -Wformat-security" ) +set (CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} ${SECURITY_FLAGS}") +set (CMAKE_CXX_FLAGS_RELWITHDEBINFO + "${CMAKE_CXX_FLAGS_RELWITHDEBINFO} ${SECURITY_FLAGS}") set (CMAKE_C_FLAGS_MINSIZEREL "${CMAKE_C_FLAGS_MINSIZEREL} ${SECURITY_FLAGS}") # Enable link time optimization This is a temporary workaround because @@ -87,57 +212,59 @@ set (CMAKE_C_FLAGS_MINSIZEREL "${CMAKE_C_FLAGS_MINSIZEREL} ${SECURITY_FLAGS}") if ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU") if (NOT CMAKE_BUILD_TYPE MATCHES Debug) string (REGEX REPLACE "ar$" "gcc-ar" CMAKE_AR ${CMAKE_AR}) - string ( - REGEX - REPLACE "ranlib$" "gcc-ranlib" CMAKE_RANLIB ${CMAKE_RANLIB} - ) + string (REGEX + REPLACE "ranlib$" "gcc-ranlib" CMAKE_RANLIB ${CMAKE_RANLIB}) set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -flto -fno-fat-lto-objects") # Reduce the binary size by removing unnecessary dynamic symbol table # entries - set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} \ + set ( + CMAKE_CXX_FLAGS + "${CMAKE_CXX_FLAGS} \ -fvisibility=hidden \ -fvisibility-inlines-hidden \ - -Wl,--exclude-libs,ALL") + -Wl,--exclude-libs,ALL" + ) endif (NOT CMAKE_BUILD_TYPE MATCHES Debug) endif ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU") if (NOT ${YOCTO_DEPENDENCIES}) # Download and unpack googletest at configure # time configure_file (CMakeLists.txt.in 3rdparty/CMakeLists.txt) - execute_process ( - COMMAND ${CMAKE_COMMAND} -G "${CMAKE_GENERATOR}" . - WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/3rdparty - ) - execute_process ( - COMMAND ${CMAKE_COMMAND} --build . - WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/3rdparty - ) + execute_process (COMMAND ${CMAKE_COMMAND} -G "${CMAKE_GENERATOR}" . + WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/3rdparty) + execute_process (COMMAND ${CMAKE_COMMAND} --build . + WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/3rdparty) set (CMAKE_PREFIX_PATH ${CMAKE_BINARY_DIR}/prefix ${CMAKE_PREFIX_PATH}) endif () +find_package (Boost 1.71 REQUIRED) +include_directories (SYSTEM ${BOOST_SRC_DIR}) + # add_definitions(-DBOOST_ASIO_ENABLE_HANDLER_TRACKING) add_definitions (-DBOOST_ASIO_DISABLE_THREADS) +add_definitions (-DBOOST_BEAST_USE_STD_STRING_VIEW) add_definitions (-DBOOST_ERROR_CODE_HEADER_ONLY) add_definitions (-DBOOST_SYSTEM_NO_DEPRECATED) +message (BOOST_VERSION = ${Boost_VERSION}) +if ("${Boost_VERSION}" STREQUAL "107100") + add_definitions (-DBOOST_ASIO_NO_DEPRECATED) +endif () add_definitions (-DBOOST_ALL_NO_LIB) add_definitions (-DBOOST_NO_RTTI) add_definitions (-DBOOST_NO_TYPEID) add_definitions (-DBOOST_COROUTINES_NO_DEPRECATION_WARNING) -find_package (Boost 1.66 REQUIRED) -include_directories (${BOOST_SRC_DIR}) - # sdbusplus if (NOT ${YOCTO_DEPENDENCIES}) - include_directories (${CMAKE_BINARY_DIR}/sdbusplus-src) + include_directories (SYSTEM ${CMAKE_BINARY_DIR}/sdbusplus-src) link_directories (${CMAKE_BINARY_DIR}/sdbusplus-src/.libs) endif () # Openssl find_package (OpenSSL REQUIRED) -include_directories (${OPENSSL_INCLUDE_DIR}) +include_directories (SYSTEM ${OPENSSL_INCLUDE_DIR}) message ("OPENSSL_INCLUDE_DIR ${OPENSSL_INCLUDE_DIR}") # bmcweb @@ -151,11 +278,11 @@ endif (CMAKE_BUILD_TYPE MATCHES Debug) if (NOT "${BMCWEB_INSECURE_DISABLE_SSL}") add_definitions (-DBMCWEB_ENABLE_SSL) endif (NOT "${BMCWEB_INSECURE_DISABLE_SSL}") -include_directories (${CMAKE_CURRENT_SOURCE_DIR}/crow/include) +include_directories (${CMAKE_CURRENT_SOURCE_DIR}/http) # Zlib find_package (ZLIB REQUIRED) -include_directories (${ZLIB_INCLUDE_DIRS}) +include_directories (SYSTEM ${ZLIB_INCLUDE_DIRS}) # PAM option (WEBSERVER_ENABLE_PAM "enable pam authentication" ON) @@ -167,52 +294,50 @@ endif () add_definitions ("-Wno-attributes") # Copy pam-webserver to etc/pam.d -install ( - FILES ${CMAKE_CURRENT_SOURCE_DIR}/pam-webserver - DESTINATION /etc/pam.d/ - RENAME webserver -) +install (FILES ${CMAKE_CURRENT_SOURCE_DIR}/pam-webserver DESTINATION /etc/pam.d/ + RENAME webserver) # tinyxml2 find_package (tinyxml2 REQUIRED) +# libevdev +#link_libraries(“/home/server/third/lib/libcommon.a”) +#find_library (libevdev) + set (WEBSERVER_MAIN src/webserver_main.cpp) include_directories (${CMAKE_CURRENT_SOURCE_DIR}/include) include_directories (${CMAKE_CURRENT_SOURCE_DIR}/redfish-core/include) +include_directories (${CMAKE_CURRENT_SOURCE_DIR}/redfish-core/lib) +include_directories (${CMAKE_CURRENT_SOURCE_DIR}/redfish-core/lib/rmc) file (MAKE_DIRECTORY ${CMAKE_BINARY_DIR}/include/bmcweb) include_directories (${CMAKE_BINARY_DIR}/include) -set ( - SRC_FILES redfish-core/src/error_messages.cpp - redfish-core/src/utils/json_utils.cpp ${GENERATED_SRC_FILES} -) +set (SRC_FILES redfish-core/src/error_messages.cpp + redfish-core/src/utils/json_utils.cpp ${GENERATED_SRC_FILES}) file (COPY src/test_resources DESTINATION ${CMAKE_CURRENT_BINARY_DIR}) # Unit Tests if (${BMCWEB_BUILD_UT}) - set ( - UT_FILES src/crow_test.cpp src/gtest_main.cpp - src/token_authorization_middleware_test.cpp - src/security_headers_middleware_test.cpp src/webassets_test.cpp - src/crow_getroutes_test.cpp src/ast_jpeg_decoder_test.cpp - src/kvm_websocket_test.cpp src/msan_test.cpp - src/ast_video_puller_test.cpp src/openbmc_jtag_rest_test.cpp - redfish-core/ut/privileges_test.cpp - ${CMAKE_BINARY_DIR}/include/bmcweb/blns.hpp - ) # big list of naughty strings - add_custom_command ( - OUTPUT ${CMAKE_BINARY_DIR}/include/bmcweb/blns.hpp - COMMAND - xxd -i ${CMAKE_CURRENT_SOURCE_DIR}/src/test_resources/blns - ${CMAKE_BINARY_DIR}/include/bmcweb/blns.hpp - ) - - set_source_files_properties ( - ${CMAKE_BINARY_DIR}/include/bmcweb/blns.hpp PROPERTIES GENERATED TRUE - ) + set (UT_FILES src/crow_test.cpp src/gtest_main.cpp + src/token_authorization_middleware_test.cpp + src/security_headers_middleware_test.cpp src/webassets_test.cpp + src/crow_getroutes_test.cpp src/ast_jpeg_decoder_test.cpp + src/kvm_websocket_test.cpp src/msan_test.cpp + src/ast_video_puller_test.cpp src/openbmc_jtag_rest_test.cpp + redfish-core/ut/privileges_test.cpp + ${CMAKE_BINARY_DIR}/include/bmcweb/blns.hpp) # big list of naughty + # strings + add_custom_command (OUTPUT ${CMAKE_BINARY_DIR}/include/bmcweb/blns.hpp + COMMAND + xxd -i + ${CMAKE_CURRENT_SOURCE_DIR}/src/test_resources/blns + ${CMAKE_BINARY_DIR}/include/bmcweb/blns.hpp) + + set_source_files_properties (${CMAKE_BINARY_DIR}/include/bmcweb/blns.hpp + PROPERTIES GENERATED TRUE) enable_testing () add_executable (webtest ${SRC_FILES} ${UT_FILES}) @@ -230,6 +355,7 @@ if (${BMCWEB_BUILD_UT}) target_link_libraries (webtest sdbusplus) target_link_libraries (webtest -lsystemd) target_link_libraries (webtest -lstdc++fs) + target_link_libraries (webtest -levdev) add_test (webtest webtest "--gtest_output=xml:webtest.xml") endif (${BMCWEB_BUILD_UT}) @@ -246,22 +372,44 @@ target_link_libraries (bmcweb -lsystemd) target_link_libraries (bmcweb -lstdc++fs) target_link_libraries (bmcweb sdbusplus) target_link_libraries (bmcweb tinyxml2) +target_link_libraries (bmcweb -levdev) install (TARGETS bmcweb DESTINATION bin) -add_executable (getvideo src/getvideo_main.cpp) -target_link_libraries (getvideo pthread) - target_compile_definitions ( - bmcweb PRIVATE - $<$: -DBMCWEB_ENABLE_KVM> + bmcweb PRIVATE $<$: -DBMCWEB_ENABLE_KVM> + $<$: -DBMCWEB_ENABLE_MUTUAL_TLS_AUTHENTICATION> + $<$: -DBMCWEB_ENABLE_VM_WEBSOCKET> + $<$: -DBMCWEB_ENABLE_VM_NBDPROXY> $<$: -DBMCWEB_ENABLE_DBUS_REST> $<$: -DBMCWEB_ENABLE_REDFISH> $<$: -DBMCWEB_ENABLE_STATIC_HOSTING> - $<$: -DBMCWEB_ENABLE_HOST_SERIAL_WEBSOCKET> - $<$: -DBMCWEB_INSECURE_DISABLE_CSRF_PREVENTION> + $<$: + -DBMCWEB_ENABLE_HOST_SERIAL_WEBSOCKET> + $<$: + -DBMCWEB_INSECURE_DISABLE_CSRF_PREVENTION> $<$: -DBMCWEB_INSECURE_DISABLE_SSL> - $<$: -DBMCWEB_INSECURE_DISABLE_XSS_PREVENTION> - $<$: -DBMCWEB_ENABLE_REDFISH_RAW_PECI> - $<$: -DBMCWEB_ENABLE_REDFISH_CPU_LOG> - $<$: -DBMCWEB_ENABLE_REDFISH_BMC_JOURNAL> + $<$: + -DBMCWEB_INSECURE_DISABLE_XSS_PREVENTION> + $<$: + -DBMCWEB_ENABLE_REDFISH_RAW_PECI> + $<$: + -DBMCWEB_ENABLE_REDFISH_CPU_LOG> + $<$: + -DBMCWEB_ENABLE_REDFISH_BMC_JOURNAL> + $<$: + -DBMCWEB_ENABLE_REDFISH_DBUS_LOG_ENTRIES> + $<$: + -DBMCWEB_INSECURE_ENABLE_REDFISH_FW_TFTP_UPDATE> + $<$: + -DBMCWEB_ENABLE_REDFISH_PROVISIONING_FEATURE> + $<$: -DBMCWEB_ENABLE_REDFISH_RMC> ) + +# configure and install systemd unit files +configure_file (bmcweb.socket bmcweb.socket COPYONLY) +configure_file (bmcweb.service.in bmcweb.service) +pkg_get_variable (SYSTEMD_SYSTEMUNITDIR systemd systemdsystemunitdir) +install (FILES ${PROJECT_BINARY_DIR}/bmcweb.socket DESTINATION + ${SYSTEMD_SYSTEMUNITDIR}) +install (FILES ${PROJECT_BINARY_DIR}/bmcweb.service DESTINATION + ${SYSTEMD_SYSTEMUNITDIR}) diff --git a/Contrib-Inspur/bmcweb/CMakeLists.txt.in b/Contrib-Inspur/bmcweb/CMakeLists.txt.in index a964e2d5..ae2155a4 100644 --- a/Contrib-Inspur/bmcweb/CMakeLists.txt.in +++ b/Contrib-Inspur/bmcweb/CMakeLists.txt.in @@ -9,7 +9,7 @@ file (MAKE_DIRECTORY ${CMAKE_BINARY_DIR}/prefix/include) externalproject_add ( sdbusplus-project PREFIX ${CMAKE_BINARY_DIR}/sdbusplus-project GIT_REPOSITORY https://github.com/openbmc/sdbusplus.git GIT_TAG - bed15f0cee4784acdf151cca14efdfb98cb9d397 SOURCE_DIR + 4212292bcf136d04b38ba5116aa568b0fa312798 SOURCE_DIR ${CMAKE_BINARY_DIR}/sdbusplus-src BINARY_DIR ${CMAKE_BINARY_DIR}/sdbusplus-build CONFIGURE_COMMAND "" BUILD_COMMAND cd ${CMAKE_BINARY_DIR}/sdbusplus-src && ./bootstrap.sh && ./configure @@ -36,8 +36,8 @@ externalproject_add ( externalproject_add ( Boost URL - https://dl.bintray.com/boostorg/release/1.68.0/source/boost_1_68_0.tar.gz - URL_MD5 5d8b4503582fffa9eefdb9045359c239 SOURCE_DIR + https://dl.bintray.com/boostorg/release/1.71.0/source/boost_1_71_0.tar.gz + URL_MD5 5f521b41b79bf8616582c4a8a2c10177 SOURCE_DIR "${CMAKE_BINARY_DIR}/boost-src" BINARY_DIR "${CMAKE_BINARY_DIR}/boost-build" CONFIGURE_COMMAND "" BUILD_COMMAND "" INSTALL_COMMAND mkdir -p "${CMAKE_BINARY_DIR}/prefix/include/" && cp -R @@ -46,7 +46,7 @@ externalproject_add ( externalproject_add ( nlohmann-json GIT_REPOSITORY "https://github.com/nlohmann/json.git" GIT_TAG - aafad2be1f3cd259a1e79d2f6fcf267d1ede9ec7 SOURCE_DIR + ea60d40f4a60a47d3be9560d8f7bc37c163fe47b SOURCE_DIR "${CMAKE_BINARY_DIR}/nlohmann-json-src" BINARY_DIR "${CMAKE_BINARY_DIR}/nlohmann-json-build" CONFIGURE_COMMAND "" BUILD_COMMAND "" INSTALL_COMMAND mkdir -p "${CMAKE_BINARY_DIR}/prefix/include/nlohmann" && diff --git a/Contrib-Inspur/bmcweb/DEVELOPING.md b/Contrib-Inspur/bmcweb/DEVELOPING.md index 6a920bc8..b8a2a26a 100644 --- a/Contrib-Inspur/bmcweb/DEVELOPING.md +++ b/Contrib-Inspur/bmcweb/DEVELOPING.md @@ -109,11 +109,24 @@ implement a concrete interface. 11. ### phosphor webui - The webserver should be capable of hosting phosphor-webui, and impelmenting + The webserver should be capable of hosting phosphor-webui, and implementing the required flows to host the application. In general, all access methods should be available to the webui. -12. ### Developing and Testing +12. ### Redfish + bmcweb's Redfish implementation, including Redfish OEM Resources, shall + conform to the Redfish specification. Please keep bmcweb's [Redfish support + document](https://github.com/openbmc/bmcweb/blob/master/Redfish.md) updated. + Before adding a Redfish OEM schema or property first engage the DMTF's + Redfish working group to see if they are interested in adding the new + feature. The [Redfish Specification Forum](https://redfishforum.com/) is a + public Redfish forum to ask questions and request features. Redfish + "Supporter" and "Promoter" companies, which many companies working on OpenBMC + are, can request features via the Redfish code repository or via Redfish + meetings. For more information on Redfish and supported schemas visit + [Redfish.md](https://github.com/openbmc/bmcweb/blob/master/Redfish.md). + +13. ### Developing and Testing There are a variety of ways to develop and test bmcweb software changes. Here are the steps for using the SDK and QEMU. @@ -197,463 +210,26 @@ See the [REST](https://github.com/openbmc/docs/blob/master/REST-cheatsheet.md) and [Redfish](https://github.com/openbmc/docs/blob/master/REDFISH-cheatsheet.md) cheatsheets for valid commands. -13. ### Redfish + Please test all Redfish changes with the + [Redfish Service Validator](https://github.com/DMTF/Redfish-Service-Validator). + Your change should not introduce any new validator errors. Please include + the Redfish Service Validator results as part of the commit message + ["Tested" field](https://github.com/openbmc/docs/blob/master/CONTRIBUTING.md#testing). + +## clang-tidy + +clang-tidy is a tool that can be used to identify coding style violations, bad +design patterns, and bug prone contructs. It's not guaranteed that all tests +pass, but ideally should be run on new code to find issues. To run, make sure +you have clang++-9 installed, and clang-tidy-9 installed, and run. the -checks +field can be modified to enable or disable which clang-tidy checks are run. +The below enables everything in the cert namespace. + +``` +mkdir build +cd build +cmake .. -DCMAKE_CXX_COMPILER=clang++-9 -DCMAKE_EXPORT_COMPILE_COMMANDS=ON +make -j +run-clang-tidy-9 -p . -header-filter=".*" -checks="-*,cert-*" +``` - The redfish implementation shall pass the [Redfish Service - Validator](https://github.com/DMTF/Redfish-Service-Validator "Validator") with - no warnings or errors - - The following redfish schemas and fields are targeted for OpenBMC. This is a - living document, and these schemas are subject to change. - - The latest Redfish schemas can be found [here](https://redfish.dmtf.org/schemas/) - - Fields common to all schemas - - - @odata.context - - @odata.id - - @odata.type - - Id - - Name - - - #### /redfish/v1/ - ##### ServiceRoot - - - RedfishVersion - - UUID - - - #### /redfish/v1/AccountService/ - ##### AccountService - - - Description - - ServiceEnabled - - MinpasswordLength - - MaxPasswordLength - - Accounts - - Roles - - #### /redfish/v1/AccountService/Accounts/ - ##### AccountCollection - - - Description - - Members@odata.count - - Members - - #### /redfish/v1/AccountService/Accounts/ - ##### Account - - - Description - - Enabled - - Password - - UserName - - RoleId - - Links/Role - - #### /redfish/v1/AccountService/Roles/ - ##### RoleCollection - - - Description - - Members@odata.count - - Members - - By default will contain 3 roles, "Administrator", "Operator", and "User" - - #### /redfish/v1/AccountService/Roles/ - ##### Role - - - Description - - IsPredefined - - Will be set to true for all default roles. If the given role is - non-default, or has been modified from default, will be marked as false. - - AssignedPrivileges - - For the default roles, the following privileges will be assigned by - default - - Administrator: Login, ConfigureManager, ConfigureUsers, ConfigureSelf, - ConfigureComponents - - Operator: Login, ConfigureComponents - - User: Login - - - #### /redfish/v1/Chassis - ##### ChassisCollection - - - Members@odata.count - - Members - - #### /redfish/v1/Chassis/ - ##### Chassis - - - ChassisType - - Manufacturer - - Model - - SerialNumber - - PartNumber - - PowerState - - Thermal - - Shall be included if component contains temperature sensors, otherwise - shall be omitted. - - Power - - Shall be included if component contains voltage/current sensing - components, otherwise will be omitted. - - #### /redfish/v1/Chassis//Thermal - ##### Thermal - Temperatures Fans Redundancy - - #### /redfish/v1/Chassis//Thermal#/Temperatures/ - ##### Temperature - - MemberId - - Status - - ReadingCelsius - - UpperThresholdNonCritical - - UpperThresholdCritical - - LowerThresholdNonCritical - - LowerThresholdCritical - - MinReadingRange - - MaxReadingRange - - *threshold fields only present if defined for sensor, otherwise absent* - - #### /redfish/v1/Chassis//Thermal#/Fans/ - ##### Fan - - MemberId - - Status - - Reading - - ReadingUnits - - UpperThresholdNonCritical - - UpperThresholdCritical - - LowerThresholdNonCritical - - LowerThresholdCritical - - MinReadingRange - - MaxReadingRange - - Redundancy - - *threshold fields only present if defined for sensor, otherwise absent* - - #### /redfish/v1/Chassis//Thermal#/Redundancy/ - ##### Fan - - MemberId - - RedundancySet - - Mode - - Status - - MinNumNeeded - - MaxNumSupported - - - #### /redfish/v1/Chassis//Power/ - ##### Thermal - PowerControl Voltages PowerSupplies Redundancy - - #### /redfish/v1/Chassis//Power#/PowerControl/ - ##### PowerControl - - MemberId - - PowerConsumedWatts - - PowerMetrics/IntervalInMin - - PowerMetrics/MinConsumedWatts - - PowerMetrics/MaxConsumedWatts - - PowerMetrics/AverageConsumedWatts - - RelatedItem - - Should list systems and related chassis - - #### /redfish/v1/Chassis//Power#/Voltages/ - ##### Voltage - - MemberId - - Status - - ReadingVolts - - UpperThresholdNonCritical - - UpperThresholdCritical - - LowerThresholdNonCritical - - LowerThresholdCritical - - MinReadingRange - - MaxReadingRange - - PhysicalContext - - RelatedItem - - #### /redfish/v1/Chassis//Power#/PowerSupplies/ - ##### PowerSupply - - MemberId - - Status - - LininputVoltage - - Model - - manufacturer - - FirmwareVersion - - SerialNumber - - PartNumber - - RelatedItem - - Redundancy - - #### /redfish/v1/Chassis/{ChassisName}/Power#/Redundancy/ - ##### Redundancy - - MemberId - - RedundancySet - - Mode - - Status - - MinNumNeeded - - MaxNumSupported - - - #### /redfish/v1/EventService - ##### EventService - - Id - - ServiceEnabled - - DeliveryRetryAttempts - - Defaults to 3 - - EventTypesForSubscription - - Defaults to "Alert" - - Actions - - Subscriptions - - #### /redfish/v1/EventService/Subscriptions - ##### EventDestinationCollection - - Members@odata.count - - Members - - #### /redfish/v1/EventService/Subscriptions/{EventName}/ - ##### EventDestination - - Id - - Destination - - EventTypes - - Context - - OriginResources - - Protocol - - - #### /redfish/v1/Managers - ##### ManagerCollection - - Members - - Members@odata.count - - #### /redfish/v1/Managers/BMC - ##### Manager - - Description - - LogServices - - GraphicalConsole - - UUID - - Model - - Links - - PowerState - - FirmwareVersion - - ManagerType - - ServiceEntryPointUUID - - DateTime - - NetworkProtocol - - Actions - - Status - - SerialConsole - - VirtualMedia - - EthernetInterfaces - - #### /redfish/v1/Managers/BMC/EthernetInterfaces - ##### EthernetInterfaceCollection - - Members - - Members@odata.count - - Description - - #### /redfish/v1/Managers/BMC/EthernetInterfaces/{InterfaceName} - ##### EthernetInterface - - Description - - VLAN - - MaxIPv6StaticAddresses - - #### /redfish/v1/Managers/BMC/LogServices - ##### LogServiceCollection - - Members - - Members@odata.count - - Description - - #### /redfish/v1/Managers/BMC/LogServices/RedfishLog - ##### LogService - - Entries - - OverWritePolicy - - Actions - - Status - - DateTime - - MaxNumberOfRecords - - #### /redfish/v1/Managers/BMC/LogServices/RedfishLog/Entries/{entry} - ##### LogEntry - - Message - - Created - - EntryType - - #### /redfish/v1/Managers/BMC/NetworkProtocol - ##### ManagerNetworkProtocol - - Description - - SSDP - - HTTPS - - SSH - - VirtualMedia - - KVMIP - - Status - - - #### /redfish/v1/Registries - ##### MessageRegistryFileCollection - - Members - - Should support Base, CommonMessages, and EventingMessages - - Members@odata.count - - Description - - #### /redfish/v1/Registries/ - ##### MessageRegistryFile - - Location - - Description - - Location@odata.count - - Languages@odata.count - - Languages - - Registry - - - #### /redfish/v1/SessionService - ##### SessionService - - Description - - ServiceEnabled - - Status - - SessionTimeout - - Sessions - - #### /redfish/v1/SessionService/Sessions - ##### SessionCollection - - Members - - Members@odata.count - - Description - - - #### /redfish/v1/Systems - ##### ComputerSystemCollection - - Members - - Should support one system - - Members@odata.count - - #### /redfish/v1/Systems/{SystemName} - ##### ComputerSystem - - Boot - - PartNumber - - IndicatorLED - - UUID - - LogServices - - SystemType - - Manufacturer - - Description - - Model - - Links - - PowerState - - BiosVersion - - Storage - - SerialNumber - - Processors - - ProcessorSummary - - Memory - - Actions - - Status - - EthernetInterfaces - - MemorySummary - - #### /redfish/v1/Systems/{SystemName}/EthernetInterfaces - ##### EthernetInterfaceCollection - - Members - - Members@odata.count - - Description - - #### /redfish/v1/Systems/{SystemName}/LogServices - ##### LogServiceCollection - - Members - - Should default to one member, named SEL - - Members@odata.count - - Description - - #### /redfish/v1/Systems/{SystemName}/LogServices/SEL/Entries - ##### LogEntryCollection - - Members - - Members@odata.count - - Description - - @odata.nextLink - - #### /redfish/v1/Systems/{SystemName}/LogServices/SEL/Entries/{entryNumber} - ##### LogEntry - - MessageArgs - - Severity - - SensorType - - Message - - MessageId - - Created - - EntryCode - - EntryType - - #### /redfish/v1/Systems/{SystemName}/Memory - ##### MemoryCollection - - Members - - Members@odata.count - - #### /redfish/v1/Systems/{SystemName}/Memory/Memory1 - ##### Memory - - MemoryType - - Description - - DeviceLocator - - Oem - - Metrics - - BaseModuleType - - Manufacturer - - MemoryDeviceType - - RankCount - - AllowedSpeedsMHz - - CapacityMiB - - DataWidthBits - - SerialNumber - - OperatingSpeedMhz - - ErrorCorrection - - PartNumber - - Status - - BusWidthBits - - MemoryMedia - - #### /redfish/v1/Systems/{SystemName}/Memory/Memory1/MemoryMetrics - ##### MemoryMetrics - - Description - - HealthData - - #### /redfish/v1/Systems/{SystemName}/Processors - ##### ProcessorCollection - - Members - - Should Support CPU1 and CPU2 for dual socket systems - - Members@odata.count - - #### /redfish/v1/Systems/{SystemName}/Processors/{CPUName} - ##### Processor - - ProcessorArchitecture - - TotalCores - - ProcessorId - - MaxSpeedMHz - - Manufacturer - - Status - - Socket - - InstructionSet - - Model - - ProcessorType - - TotalThreads - - #### /redfish/v1/Systems/{SystemName}/Storage - ##### StorageCollection - - Members - - Members@odata.count - - #### /redfish/v1/Systems/{SystemName}/Storage/{storageIndex> - ##### Storage - - Drives - - Links - - - #### /redfish/v1/UpdateService - ##### UpdateService - - SoftwareInventory - - #### /redfish/v1/UpdateService/SoftwareInventory - ##### SoftwareInventoryCollection - - Members - - Should Support BMC, ME, CPLD and BIOS - - Members@odata.count - - #### /redfish/v1/UpdateService/SoftwareInventory/{MemberName} - ##### SoftwareInventory - - Version diff --git a/Contrib-Inspur/bmcweb/MAINTAINERS b/Contrib-Inspur/bmcweb/MAINTAINERS index 6b59c2f5..1c252d17 100644 --- a/Contrib-Inspur/bmcweb/MAINTAINERS +++ b/Contrib-Inspur/bmcweb/MAINTAINERS @@ -42,6 +42,6 @@ Description of section entries: START OF MAINTAINERS LIST ------------------------- -M: Ed Tanous -M: James Feist -M: Vernon Mauery +M: James Feist +M: Vernon Mauery +M: Jason Bills diff --git a/Contrib-Inspur/bmcweb/README.md b/Contrib-Inspur/bmcweb/README.md index e5e8ca1f..93660ed6 100644 --- a/Contrib-Inspur/bmcweb/README.md +++ b/Contrib-Inspur/bmcweb/README.md @@ -29,29 +29,8 @@ When BMCWeb SSL support is enabled and a usable certificate is not found, it will generate a self-sign a certificate before launching the server. The keys are generated by the `prime256v1` algorithm. The certificate - - is issued by `C=US, O=Intel BMC, CN=testhost`, + - is issued by `C=US, O=OpenBMC, CN=testhost`, - is valid for 10 years, - has a random serial number, and - is signed using the `SHA-256` algorithm. -## Crow patches ## -The crow project has had a number of additions to make it more useful for use in the OpenBmc Project. A non-exhaustive list is below. At the time of this writing, the crow project is not accepting patches, so for the time being crow will simply be checked in as is. - -+ Applied clang-format to the whole crow tree. This was done without regard for arrays and fixed data structures, but was deemed to be overall better than the inconsistent formatting that existed in upstream previously. -+ Crow server now calls stop before destruction of the Crow app object. -+ Fixed a bug where timed out websockets would seg fault the system by accessing a destroyed socket object without null checks when in SSL mode. -+ Added a TestSocketAdapter class that could be used to unit test server behavior without utilizing a socket. -+ Added the "getRoutes" call to both the app and the routing Trie class that allows consumers to poll the server for all (or a subset of) registered web routes in the system. -+ Hardcoded the websocket implementation for binary mode, instead of leaving protocol unspecified. -+ Move most uses of std::unordered_map to boost::flat_map to lower memory consumption, and (in some cases) to improve memory locality. -+ Adjust the addHeaders mechanism to use a fixed string instead of a full map implementation to avoid unnecessary mallocs and reduce the number of scatter gather buffers on an http response. -+ Change server name header from Crow/0.1 to iBMC -+ Starts the http server io_context inside the main thread, instead of creating a new thread. -+ Removes all BMCWEB_MSVC_WORKAROUND flags. -+ Removes the behavior that causes a 301 redirect for paths that end in "/", and simply returns the endpoint requested. This was done for redfish compatibility. -+ Removes the built in crow/json.hpp package and adds nlohmann json package as the first class json package for crow. -+ Move uses of boost::array to std::array where possible. -+ Add the ability to get a reference to the crow::Request object on websocket connection to allow checking header values. -+ Patch http handler to call middlewares on websocket connections to allow authentication to be applied appropriately. -+ Adds an is_secure flag to provide information about whether or not the payload was delivered over ssl. - diff --git a/Contrib-Inspur/bmcweb/Redfish.md b/Contrib-Inspur/bmcweb/Redfish.md new file mode 100644 index 00000000..1f7b6606 --- /dev/null +++ b/Contrib-Inspur/bmcweb/Redfish.md @@ -0,0 +1,507 @@ +# Redfish # + +bmcweb provides an implementation of the [Redfish][1] API. This document +details the Redfish schemas supported by bmcweb. This document also discusses +some of the details of that implementation and different implementations +available for certain areas. + +## Redfish Schema + +The redfish implementation shall pass the [Redfish Service +Validator](https://github.com/DMTF/Redfish-Service-Validator "Validator") with +no warnings or errors + +The following redfish schemas and fields are targeted for OpenBMC. This is a +living document, and these schemas are subject to change. + +The latest Redfish schemas can be found [here](https://redfish.dmtf.org/schemas/) + +Fields common to all schemas + +- @odata.context +- @odata.id +- @odata.type +- Id +- Name + + +#### /redfish/v1/ +##### ServiceRoot + +- AccountService +- CertificateService +- Chassis +- JsonSchemas +- Managers +- RedfishVersion +- SessionService +- Systems +- UUID +- UpdateService + +#### /redfish/v1/AccountService/ +##### AccountService + +- Description +- ServiceEnabled +- MinpasswordLength +- MaxPasswordLength +- Accounts +- Roles + +#### /redfish/v1/AccountService/Accounts/ +##### AccountCollection + +- Description +- Members@odata.count +- Members + +#### /redfish/v1/AccountService/Accounts/{ManagerAccountId} +##### ManagerAccount + +- Description +- Enabled +- Password +- UserName +- RoleId +- Links/Role + +#### /redfish/v1/AccountService/Roles/ +##### RoleCollection + +- Description +- Members@odata.count +- Members + - By default will contain 3 roles, "Administrator", "Operator", and "ReadOnly" + +#### /redfish/v1/AccountService/Roles/{RoleId} +##### Role + +- Description +- IsPredefined + - Will be set to true for all default roles. If the given role is + non-default, or has been modified from default, will be marked as false. +- AssignedPrivileges + - For the default roles, the following privileges will be assigned by + default + - Administrator: Login, ConfigureManager, ConfigureUsers, ConfigureSelf, + ConfigureComponents + - Operator: Login, ConfigureComponents, ConfigureSelf + - ReadOnly: Login, ConfigureSelf + + +#### /redfish/v1/Chassis +##### ChassisCollection + +- Members@odata.count +- Members + +#### /redfish/v1/Chassis/{ChassisId} +##### Chassis + +- ChassisType +- Manufacturer +- Model +- SerialNumber +- PartNumber +- PowerState +- Thermal + - Shall be included if component contains temperature sensors, otherwise + shall be omitted. +- Power + - Shall be included if component contains voltage/current sensing + components, otherwise will be omitted. + +#### /redfish/v1/Chassis/{ChassisId}/Thermal +##### Thermal +Temperatures Fans Redundancy + +#### /redfish/v1/Chassis/{ChassisId}/Thermal#/Temperatures/{SensorName} +##### Temperature +- MemberId +- Status +- ReadingCelsius +- UpperThresholdNonCritical +- UpperThresholdCritical +- LowerThresholdNonCritical +- LowerThresholdCritical +- MinReadingRange +- MaxReadingRange + +*threshold fields only present if defined for sensor, otherwise absent* + +#### /redfish/v1/Chassis/{ChassisId}/Thermal#/Fans/{FanName} +##### Fan +- MemberId +- Status +- Reading +- ReadingUnits +- UpperThresholdNonCritical +- UpperThresholdCritical +- LowerThresholdNonCritical +- LowerThresholdCritical +- MinReadingRange +- MaxReadingRange +- Redundancy + +*threshold fields only present if defined for sensor, otherwise absent* + +#### /redfish/v1/Chassis/{ChassisId}/Thermal#/Redundancy/{RedundancyName} +##### Redundancy +- MemberId +- RedundancySet +- Mode +- Status +- MinNumNeeded +- MaxNumSupported + + +#### /redfish/v1/Chassis/{ChassisId}/Power/ +##### Power +PowerControl Voltages PowerSupplies Redundancy + +#### /redfish/v1/Chassis/{ChassisId}/Power#/PowerControl/{ControlName} +##### PowerControl +- MemberId +- PowerConsumedWatts +- PowerMetrics/IntervalInMin +- PowerMetrics/MinConsumedWatts +- PowerMetrics/MaxConsumedWatts +- PowerMetrics/AverageConsumedWatts +- RelatedItem + - Should list systems and related chassis + +#### /redfish/v1/Chassis/{ChassisId}/Power#/Voltages/{VoltageName} +##### Voltage +- MemberId +- Status +- ReadingVolts +- UpperThresholdNonCritical +- UpperThresholdCritical +- LowerThresholdNonCritical +- LowerThresholdCritical +- MinReadingRange +- MaxReadingRange +- PhysicalContext +- RelatedItem + +#### /redfish/v1/Chassis/{ChassisId}/Power#/PowerSupplies/{PSUName} +##### PowerSupply +- MemberId +- Status +- LininputVoltage +- Model +- manufacturer +- FirmwareVersion +- SerialNumber +- PartNumber +- RelatedItem +- Redundancy + +#### /redfish/v1/Chassis/{ChassisId}/Power#/Redundancy/{RedundancyName} +##### Redundancy +- MemberId +- RedundancySet +- Mode +- Status +- MinNumNeeded +- MaxNumSupported + + +#### /redfish/v1/EventService +##### EventService +- Id +- ServiceEnabled +- DeliveryRetryAttempts + - Defaults to 3 +- EventTypesForSubscription + - Defaults to "Alert" +- Actions +- Subscriptions + +#### /redfish/v1/EventService/Subscriptions +##### EventDestinationCollection +- Members@odata.count +- Members + +#### /redfish/v1/EventService/Subscriptions/{EventName} +##### EventDestination +- Id +- Destination +- EventTypes +- Context +- OriginResources +- Protocol + + +#### /redfish/v1/Managers +##### ManagerCollection +- Members +- Members@odata.count + +#### /redfish/v1/Managers/bmc +##### Manager +- Description +- LogServices +- GraphicalConsole +- UUID +- Model +- Links +- PowerState +- FirmwareVersion +- ManagerType +- ServiceEntryPointUUID +- DateTime +- NetworkProtocol +- Actions +- Status +- SerialConsole +- VirtualMedia +- EthernetInterfaces + +#### /redfish/v1/Managers/bmc/EthernetInterfaces +##### EthernetInterfaceCollection +- Members +- Members@odata.count +- Description + +#### /redfish/v1/Managers/bmc/EthernetInterfaces/{EthernetInterfaceId} +##### EthernetInterface +- Description +- VLAN +- MaxIPv6StaticAddresses + +#### /redfish/v1/Managers/bmc/LogServices + +The [LogService][2] resource provides properties for monitoring and configuring +events for the service or resource to which it is associated. + +Within bmcweb, the LogService object resides under the System resource. It +tracks all events for the system. + +The LogService supports multiple log entry types. bmcweb has support for +the `Event` type. This is the new Redfish-defined type. + +bmcweb supports two different implementations of the +`LogService/EventLog/Entries` URI. + +The default implementation uses rsyslog to write Redfish events from the journal +to the persistent /var/log/ filesystem. The bmcweb software then looks for these +files in /var/log/ and returns the appropriate Redfish EventLog Entries for +these. More details on adding events can be found [here][3] + +The other implementation of EventLog Entries can be enabled by compiling bmcweb +with the `-DBMCWEB_ENABLE_REDFISH_DBUS_LOG_ENTRIES=ON` option. This will cause +bmcweb to look to [phosphor-logging][4] for any D-Bus log entries. These will +then be translated to Redfish EventLog Entries. + +These two implementations do not work together, so choosing one will disable +the other. + +#### /redfish/v1/Managers/bmc/LogServices +##### LogServiceCollection +- Members +- Members@odata.count +- Description + +#### /redfish/v1/Managers/bmc/LogServices/RedfishLog +##### LogService +- Entries +- OverWritePolicy +- Actions +- Status +- DateTime +- MaxNumberOfRecords + +#### /redfish/v1/Managers/bmc/LogServices/RedfishLog/Entries/{LogEntryId} +##### LogEntry +- Message +- Created +- EntryType + +#### /redfish/v1/Managers/bmc/NetworkProtocol +##### ManagerNetworkProtocol +- Description +- SSDP +- HTTPS +- SSH +- VirtualMedia +- KVMIP +- Status + + +#### /redfish/v1/Registries +##### MessageRegistryFileCollection +- Members + - Should support Base, CommonMessages, and EventingMessages +- Members@odata.count +- Description + +#### /redfish/v1/Registries/{MessageRegistryFileId} +##### MessageRegistryFile +- Location +- Description +- Location@odata.count +- Languages@odata.count +- Languages +- Registry + + +#### /redfish/v1/SessionService +##### SessionService +- Description +- ServiceEnabled +- Status +- SessionTimeout +- Sessions + +#### /redfish/v1/SessionService/Sessions +##### SessionCollection +- Members +- Members@odata.count +- Description + + +#### /redfish/v1/Systems +##### ComputerSystemCollection +- Members + - Should support one system +- Members@odata.count + +#### /redfish/v1/Systems/system +##### ComputerSystem +- Boot +- PartNumber +- IndicatorLED +- UUID +- LogServices +- SystemType +- Manufacturer +- Description +- Model +- Links +- PowerState +- BiosVersion +- Storage +- SerialNumber +- Processors +- ProcessorSummary +- Memory +- Actions +- Status +- EthernetInterfaces +- MemorySummary + +#### /redfish/v1/Systems/system/EthernetInterfaces +##### EthernetInterfaceCollection +- Members +- Members@odata.count +- Description + +#### /redfish/v1/Systems/system/LogServices +##### LogServiceCollection +- Members + - Should default to one member, named SEL +- Members@odata.count +- Description + +#### /redfish/v1/Systems/system/LogServices/SEL/Entries +##### LogEntryCollection +- Members +- Members@odata.count +- Description +- @odata.nextLink + +#### /redfish/v1/Systems/system/LogServices/SEL/Entries/{LogEntryId} +##### LogEntry +- MessageArgs +- Severity +- SensorType +- Message +- MessageId +- Created +- EntryCode +- EntryType + +#### /redfish/v1/Systems/system/Memory +##### MemoryCollection +- Members +- Members@odata.count + +#### /redfish/v1/Systems/system/Memory/{MemoryId} +##### Memory +- MemoryType +- Description +- DeviceLocator +- Oem +- Metrics +- BaseModuleType +- Manufacturer +- MemoryDeviceType +- RankCount +- AllowedSpeedsMHz +- CapacityMiB +- DataWidthBits +- SerialNumber +- OperatingSpeedMhz +- ErrorCorrection +- PartNumber +- Status +- BusWidthBits +- MemoryMedia + +#### /redfish/v1/Systems/system/Memory/{MemoryId}/MemoryMetrics +##### MemoryMetrics +- Description +- HealthData + +#### /redfish/v1/Systems/system/Processors +##### ProcessorCollection +- Members + - Should Support CPU1 and CPU2 for dual socket systems +- Members@odata.count + +#### /redfish/v1/Systems/system/Processors/{ProcessorId} +##### Processor +- ProcessorArchitecture +- TotalCores +- ProcessorId +- MaxSpeedMHz +- Manufacturer +- Status +- Socket +- InstructionSet +- Model +- ProcessorType +- TotalThreads + +#### /redfish/v1/Systems/system/Storage +##### StorageCollection +- Members +- Members@odata.count + +#### /redfish/v1/Systems/system/Storage/{StorageId} +##### Storage +- Drives +- Links + + +#### /redfish/v1/UpdateService +##### UpdateService +- SoftwareInventory + +#### /redfish/v1/UpdateService/FirmwareInventory +##### SoftwareInventoryCollection +- Members +- Should Support BMC, ME, CPLD and BIOS +- Members@odata.count + +#### /redfish/v1/UpdateService/FirmwareInventory/{SoftwareInventoryId} +##### SoftwareInventory +- Version +- Updateable + +[1]: https://www.dmtf.org/standards/redfish +[2]: https://redfish.dmtf.org/schemas/v1/LogService.json +[3]: https://github.com/openbmc/docs/blob/master/architecture/redfish-logging-in-bmcweb.md +[4]: https://github.com/openbmc/phosphor-logging diff --git a/Contrib-Inspur/bmcweb/aspeed_purley.cmake b/Contrib-Inspur/bmcweb/aspeed_purley.cmake deleted file mode 100644 index 2c48ed24..00000000 --- a/Contrib-Inspur/bmcweb/aspeed_purley.cmake +++ /dev/null @@ -1,32 +0,0 @@ -# this one is important -SET(CMAKE_SYSTEM_NAME Linux) -#this one not so much -SET(CMAKE_SYSTEM_VERSION 1) -SET(CMAKE_SYSTEM_PROCESSOR "armv6") -set(ARCH "armv6") - -SET(CMAKE_CROSSCOMPILING True) - -# specify the cross compiler -#SET(CMAKE_C_COMPILER arm-linux-gnueabi-gcc-4.9) -#SET(CMAKE_CXX_COMPILER arm-linux-gnueabi-g++-4.9) -#SET(CMAKE_C_LINK_EXECUTABLE "clang -o ") -#SET(CMAKE_CXX_LINK_EXECUTABLE "clang++ -o ") - -set(CMAKE_C_COMPILER /home/ed/deg-bmcfw-core/ToolChain/Host/AST2500/x-tools/arm-aspeed-linux-gnueabi/bin/arm-linux-gcc) -set(CMAKE_CXX_COMPILER /home/ed/deg-bmcfw-core/ToolChain/Host/AST2500/x-tools/arm-aspeed-linux-gnueabi/bin/arm-linux-g++) - - -set(triple arm-linux-gnueabi) -set(CMAKE_C_COMPILER_TARGET ${triple}) -set(CMAKE_CXX_COMPILER_TARGET ${triple}) - -# where is the target environment -SET(CMAKE_FIND_ROOT_PATH /home/ed/deg-bmcfw-core/_sysroot/AST2500) - -# search for programs in the build host directories -SET(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER) -# for libraries and headers in the target directories -SET(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY) -SET(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY) -set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY) diff --git a/Contrib-Inspur/bmcweb/bmcweb.service.in b/Contrib-Inspur/bmcweb/bmcweb.service.in new file mode 100644 index 00000000..fdb023b8 --- /dev/null +++ b/Contrib-Inspur/bmcweb/bmcweb.service.in @@ -0,0 +1,14 @@ +[Unit] +Description=Start bmcweb server + +Wants=network.target +After=network.target + +[Service] +ExecReload=kill -s HUP $MAINPID +ExecStart=@CMAKE_INSTALL_PREFIX@/bin/bmcweb +Type=simple +WorkingDirectory=/home/root + +[Install] +WantedBy=network.target diff --git a/Contrib-Inspur/bmcweb/bmcweb.socket b/Contrib-Inspur/bmcweb/bmcweb.socket new file mode 100644 index 00000000..8782e4dd --- /dev/null +++ b/Contrib-Inspur/bmcweb/bmcweb.socket @@ -0,0 +1,9 @@ +[Unit] +Description=BMC Webserver socket + +[Socket] +ListenStream=443 +ReusePort=true + +[Install] +WantedBy=sockets.target diff --git a/Contrib-Inspur/bmcweb/config.h.in b/Contrib-Inspur/bmcweb/config.h.in new file mode 100644 index 00000000..70b98c9a --- /dev/null +++ b/Contrib-Inspur/bmcweb/config.h.in @@ -0,0 +1 @@ +#cmakedefine BMCWEB_HTTP_REQ_BODY_LIMIT_MB @BMCWEB_HTTP_REQ_BODY_LIMIT_MB@ diff --git a/Contrib-Inspur/bmcweb/crow/README.md b/Contrib-Inspur/bmcweb/crow/README.md deleted file mode 100644 index 4fd44924..00000000 --- a/Contrib-Inspur/bmcweb/crow/README.md +++ /dev/null @@ -1,184 +0,0 @@ -![Crow logo](http://i.imgur.com/wqivvjK.jpg) - -Crow is C++ microframework for web. (inspired by Python Flask) - -[![Travis Build](https://travis-ci.org/ipkn/crow.svg?branch=master)](https://travis-ci.org/ipkn/crow) -[![Coverage Status](https://coveralls.io/repos/ipkn/crow/badge.svg?branch=master)](https://coveralls.io/r/ipkn/crow?branch=master) - -```c++ -#include "crow.h" - -int main() -{ - crow::SimpleApp app; - - BMCWEB_ROUTE(app, "/")([](){ - return "Hello world"; - }); - - app.port(18080).multithreaded().run(); -} -``` - -## Features - - - Easy routing - - Similiar to Flask - - Type-safe Handlers (see Example) - - Very Fast - - ![Benchmark Result in one chart](https://docs.google.com/spreadsheets/d/1KidO9XpuwCRZ2p_JRDJj2aep61H8Sh_KDOhApizv4LE/pubchart?oid=2041467789&format=image) - - More data on [crow-benchmark](https://github.com/ipkn/crow-benchmark) - - Fast built-in JSON parser (crow::json) - - You can also use [json11](https://github.com/dropbox/json11) or [rapidjson](https://github.com/miloyip/rapidjson) for better speed or readability - - [Mustache](http://mustache.github.io/) based templating library (crow::mustache) - - Header only - - Provide an amalgamated header file `BMCWEB_all.h' with every features - - Middleware support - - Websocket support - -## Still in development - - ~~Built-in ORM~~ - - Check [sqlpp11](https://github.com/rbock/sqlpp11) if you want one. - -## Examples - -#### JSON Response -```c++ -BMCWEB_ROUTE(app, "/json") -([]{ - crow::json::wvalue x; - x["message"] = "Hello, World!"; - return x; -}); -``` - -#### Arguments -```c++ -BMCWEB_ROUTE(app,"/hello/") -([](int count){ - if (count > 100) - return crow::Response(400); - std::ostringstream os; - os << count << " bottles of beer!"; - return crow::Response(os.str()); -}); -``` -Handler arguments type check at compile time -```c++ -// Compile error with message "Handler type is mismatched with URL paramters" -BMCWEB_ROUTE(app,"/another/") -([](int a, int b){ - return crow::Response(500); -}); -``` - -#### Handling JSON Requests -```c++ -BMCWEB_ROUTE(app, "/add_json") -.methods("POST"_method) -([](const crow::Request& req){ - auto x = crow::json::load(req.body); - if (!x) - return crow::Response(400); - int sum = x["a"].i()+x["b"].i(); - std::ostringstream os; - os << sum; - return crow::Response{os.str()}; -}); -``` - -## How to Build - -If you just want to use crow, copy amalgamate/BMCWEB_all.h and include it. - -### Requirements - - - C++ compiler with good C++11 support (tested with g++>=4.8) - - boost library - - CMake for build examples - - Linking with tcmalloc/jemalloc is recommended for speed. - - - Now supporting VS2013 with limited functionality (only run-time check for url is available.) - -### Building (Tests, Examples) - -Out-of-source build with CMake is recommended. - -``` -mkdir build -cd build -cmake .. -make -``` - -You can run tests with following commands: -``` -ctest -``` - - -### Installing missing dependencies - -#### Ubuntu - sudo apt-get install build-essential libtcmalloc-minimal4 && sudo ln -s /usr/lib/libtcmalloc_minimal.so.4 /usr/lib/libtcmalloc_minimal.so - -#### OSX - brew install boost google-perftools - -### Attributions - -Crow uses the following libraries. - - http-parser - - https://github.com/nodejs/http-parser - - http_parser.c is based on src/http/ngx_http_parse.c from NGINX copyright - Igor Sysoev. - - Additional changes are licensed under the same terms as NGINX and - copyright Joyent, Inc. and other Node contributors. All rights reserved. - - Permission is hereby granted, free of charge, to any person obtaining a copy - of this software and associated documentation files (the "Software"), to - deal in the Software without restriction, including without limitation the - rights to use, copy, modify, merge, publish, distribute, sublicense, and/or - sell copies of the Software, and to permit persons to whom the Software is - furnished to do so, subject to the following conditions: - - The above copyright notice and this permission notice shall be included in - all copies or substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS - IN THE SOFTWARE. - - - qs_parse - - https://github.com/bartgrantham/qs_parse - - Copyright (c) 2010 Bart Grantham - Permission is hereby granted, free of charge, to any person obtaining a copy - of this software and associated documentation files (the "Software"), to deal - in the Software without restriction, including without limitation the rights - to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - copies of the Software, and to permit persons to whom the Software is - furnished to do so, subject to the following conditions: - The above copyright notice and this permission notice shall be included in - all copies or substantial portions of the Software. - - - TinySHA1 - - https://github.com/mohaps/TinySHA1 - - TinySHA1 - a header only implementation of the SHA1 algorithm. Based on the implementation in boost::uuid::details - - Copyright (c) 2012-22 SAURAV MOHAPATRA mohaps@gmail.com - Permission to use, copy, modify, and distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies. - THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. diff --git a/Contrib-Inspur/bmcweb/crow/include/crow.h b/Contrib-Inspur/bmcweb/crow/include/crow.h deleted file mode 100644 index 7fe640aa..00000000 --- a/Contrib-Inspur/bmcweb/crow/include/crow.h +++ /dev/null @@ -1,16 +0,0 @@ -#pragma once -#include "boost/beast/core.hpp" - -#include "crow/app.h" -#include "crow/common.h" -#include "crow/http_connection.h" -#include "crow/http_request.h" -#include "crow/http_response.h" -#include "crow/http_server.h" -#include "crow/logging.h" -#include "crow/middleware_context.h" -#include "crow/query_string.h" -#include "crow/routing.h" -#include "crow/timer_queue.h" -#include "crow/utility.h" -#include "crow/websocket.h" diff --git a/Contrib-Inspur/bmcweb/crow/include/crow/app.h b/Contrib-Inspur/bmcweb/crow/include/crow/app.h deleted file mode 100644 index 9ce2f8bf..00000000 --- a/Contrib-Inspur/bmcweb/crow/include/crow/app.h +++ /dev/null @@ -1,251 +0,0 @@ -#pragma once - -#include -#include -#include -#include -#include -#include -#include - -#include "crow/http_request.h" -#include "crow/http_server.h" -#include "crow/logging.h" -#include "crow/middleware_context.h" -#include "crow/routing.h" -#include "crow/utility.h" - -#define BMCWEB_ROUTE(app, url) \ - app.template route(url) - -namespace crow -{ -#ifdef BMCWEB_ENABLE_SSL -using ssl_context_t = boost::asio::ssl::context; -#endif -template class Crow -{ - public: - using self_t = Crow; - -#ifdef BMCWEB_ENABLE_SSL - using ssl_socket_t = boost::beast::ssl_stream; - using ssl_server_t = Server; -#else - using socket_t = boost::asio::ip::tcp::socket; - using server_t = Server; -#endif - - explicit Crow(std::shared_ptr io = - std::make_shared()) : - io(std::move(io)) - { - } - ~Crow() - { - this->stop(); - } - - template - void handleUpgrade(const Request& req, Response& res, Adaptor&& adaptor) - { - router.handleUpgrade(req, res, std::move(adaptor)); - } - - void handle(const Request& req, Response& res) - { - router.handle(req, res); - } - - DynamicRule& routeDynamic(std::string&& rule) - { - return router.newRuleDynamic(rule); - } - - template auto& route(std::string&& rule) - { - return router.newRuleTagged(std::move(rule)); - } - - self_t& socket(int existing_socket) - { - socketFd = existing_socket; - return *this; - } - - self_t& port(std::uint16_t port) - { - portUint = port; - return *this; - } - - self_t& bindaddr(std::string bindaddr) - { - bindaddrStr = bindaddr; - return *this; - } - - void validate() - { - router.validate(); - } - - void run() - { - validate(); -#ifdef BMCWEB_ENABLE_SSL - if (-1 == socketFd) - { - sslServer = std::move(std::make_unique( - this, bindaddrStr, portUint, &middlewares, &sslContext, io)); - } - else - { - sslServer = std::move(std::make_unique( - this, socketFd, &middlewares, &sslContext, io)); - } - sslServer->setTickFunction(tickInterval, tickFunction); - sslServer->run(); - -#else - - if (-1 == socketFd) - { - server = std::move(std::make_unique( - this, bindaddrStr, portUint, &middlewares, nullptr, io)); - } - else - { - server = std::move(std::make_unique( - this, socketFd, &middlewares, nullptr, io)); - } - server->setTickFunction(tickInterval, tickFunction); - server->run(); - -#endif - } - - void stop() - { - io->stop(); - } - - void debugPrint() - { - BMCWEB_LOG_DEBUG << "Routing:"; - router.debugPrint(); - } - - std::vector getRoutes() - { - // TODO(ed) Should this be /? - const std::string root(""); - return router.getRoutes(root); - } - std::vector getRoutes(const std::string& parent) - { - return router.getRoutes(parent); - } - -#ifdef BMCWEB_ENABLE_SSL - self_t& sslFile(const std::string& crt_filename, - const std::string& key_filename) - { - sslContext.set_verify_mode(boost::asio::ssl::verify_peer); - sslContext.use_certificate_file(crt_filename, ssl_context_t::pem); - sslContext.use_private_key_file(key_filename, ssl_context_t::pem); - sslContext.set_options(boost::asio::ssl::context::default_workarounds | - boost::asio::ssl::context::no_sslv2 | - boost::asio::ssl::context::no_sslv3); - return *this; - } - - self_t& sslFile(const std::string& pem_filename) - { - sslContext.set_verify_mode(boost::asio::ssl::verify_peer); - sslContext.load_verify_file(pem_filename); - sslContext.set_options(boost::asio::ssl::context::default_workarounds | - boost::asio::ssl::context::no_sslv2 | - boost::asio::ssl::context::no_sslv3); - return *this; - } - - self_t& ssl(boost::asio::ssl::context&& ctx) - { - sslContext = std::move(ctx); - return *this; - } - - ssl_context_t sslContext{boost::asio::ssl::context::sslv23}; - -#else - template self_t& ssl_file(T&&, Remain&&...) - { - // We can't call .ssl() member function unless BMCWEB_ENABLE_SSL is - // defined. - static_assert( - // make static_assert dependent to T; always false - std::is_base_of::value, - "Define BMCWEB_ENABLE_SSL to enable ssl support."); - return *this; - } - - template self_t& ssl(T&&) - { - // We can't call .ssl() member function unless BMCWEB_ENABLE_SSL is - // defined. - static_assert( - // make static_assert dependent to T; always false - std::is_base_of::value, - "Define BMCWEB_ENABLE_SSL to enable ssl support."); - return *this; - } -#endif - - // middleware - using context_t = detail::Context; - template typename T::Context& getContext(const Request& req) - { - static_assert(black_magic::Contains::value, - "App doesn't have the specified middleware type."); - auto& ctx = *reinterpret_cast(req.middlewareContext); - return ctx.template get(); - } - - template T& getMiddleware() - { - return utility::getElementByType(middlewares); - } - - template self_t& tick(Duration d, Func f) - { - tickInterval = std::chrono::duration_cast(d); - tickFunction = f; - return *this; - } - - private: - std::shared_ptr io; -#ifdef BMCWEB_ENABLE_SSL - uint16_t portUint = 443; -#else - uint16_t portUint = 80; -#endif - std::string bindaddrStr = "::"; - int socketFd = -1; - Router router; - - std::chrono::milliseconds tickInterval{}; - std::function tickFunction; - - std::tuple middlewares; - -#ifdef BMCWEB_ENABLE_SSL - std::unique_ptr sslServer; -#else - std::unique_ptr server; -#endif -}; -template using App = Crow; -using SimpleApp = Crow<>; -} // namespace crow diff --git a/Contrib-Inspur/bmcweb/crow/include/crow/http_connection.h b/Contrib-Inspur/bmcweb/crow/include/crow/http_connection.h deleted file mode 100644 index 6f1dafde..00000000 --- a/Contrib-Inspur/bmcweb/crow/include/crow/http_connection.h +++ /dev/null @@ -1,639 +0,0 @@ -#pragma once -#include "http_utility.hpp" - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include "crow/http_response.h" -#include "crow/logging.h" -#include "crow/middleware_context.h" -#include "crow/timer_queue.h" -#include "crow/utility.h" - -#ifdef BMCWEB_ENABLE_SSL -#include -#include -#endif - -namespace crow -{ - -inline void prettyPrintJson(crow::Response& res) -{ - std::string value = res.jsonValue.dump(4, ' ', true); - utility::escapeHtml(value); - utility::convertToLinks(value); - res.body() = "\n" - "\n" - "Redfish API\n" - "\n" - "" - "" - "\n" - "\n" - "
\n" - "\"redfish\"\n" - "
\n" - "
\n"
-                 "" +
-                 value +
-                 "\n"
-                 "
\n" - "
\n" - "\n" - "\n"; - res.addHeader("Content-Type", "text/html;charset=UTF-8"); -} - -using namespace boost; -using tcp = asio::ip::tcp; - -namespace detail -{ -template struct CheckBeforeHandleArity3Const -{ - template - struct Get - { - }; -}; - -template struct CheckBeforeHandleArity3 -{ - template - struct Get - { - }; -}; - -template struct CheckAfterHandleArity3Const -{ - template - struct Get - { - }; -}; - -template struct CheckAfterHandleArity3 -{ - template - struct Get - { - }; -}; - -template struct IsBeforeHandleArity3Impl -{ - template - static std::true_type - f(typename CheckBeforeHandleArity3Const::template Get*); - - template - static std::true_type - f(typename CheckBeforeHandleArity3::template Get*); - - template static std::false_type f(...); - - public: - static const bool value = decltype(f(nullptr))::value; -}; - -template struct IsAfterHandleArity3Impl -{ - template - static std::true_type - f(typename CheckAfterHandleArity3Const::template Get*); - - template - static std::true_type - f(typename CheckAfterHandleArity3::template Get*); - - template static std::false_type f(...); - - public: - static const bool value = decltype(f(nullptr))::value; -}; - -template -typename std::enable_if::value>::type - beforeHandlerCall(MW& mw, Request& req, Response& res, Context& ctx, - ParentContext& /*parent_ctx*/) -{ - mw.beforeHandle(req, res, ctx.template get(), ctx); -} - -template -typename std::enable_if::value>::type - beforeHandlerCall(MW& mw, Request& req, Response& res, Context& ctx, - ParentContext& /*parent_ctx*/) -{ - mw.beforeHandle(req, res, ctx.template get()); -} - -template -typename std::enable_if::value>::type - afterHandlerCall(MW& mw, Request& req, Response& res, Context& ctx, - ParentContext& /*parent_ctx*/) -{ - mw.afterHandle(req, res, ctx.template get(), ctx); -} - -template -typename std::enable_if::value>::type - afterHandlerCall(MW& mw, Request& req, Response& res, Context& ctx, - ParentContext& /*parent_ctx*/) -{ - mw.afterHandle(req, res, ctx.template get()); -} - -template -bool middlewareCallHelper(Container& middlewares, Request& req, Response& res, - Context& ctx) -{ - using parent_context_t = typename Context::template partial; - beforeHandlerCall( - std::get(middlewares), req, res, ctx, - static_cast(ctx)); - - if (res.isCompleted()) - { - afterHandlerCall( - std::get(middlewares), req, res, ctx, - static_cast(ctx)); - return true; - } - - if (middlewareCallHelper( - middlewares, req, res, ctx)) - { - afterHandlerCall( - std::get(middlewares), req, res, ctx, - static_cast(ctx)); - return true; - } - - return false; -} - -template -bool middlewareCallHelper(Container& /*middlewares*/, Request& /*req*/, - Response& /*res*/, Context& /*ctx*/) -{ - return false; -} - -template -typename std::enable_if<(N < 0)>::type - afterHandlersCallHelper(Container& /*middlewares*/, Context& /*Context*/, - Request& /*req*/, Response& /*res*/) -{ -} - -template -typename std::enable_if<(N == 0)>::type - afterHandlersCallHelper(Container& middlewares, Context& ctx, Request& req, - Response& res) -{ - using parent_context_t = typename Context::template partial; - using CurrentMW = typename std::tuple_element< - N, typename std::remove_reference::type>::type; - afterHandlerCall( - std::get(middlewares), req, res, ctx, - static_cast(ctx)); -} - -template -typename std::enable_if<(N > 0)>::type - afterHandlersCallHelper(Container& middlewares, Context& ctx, Request& req, - Response& res) -{ - using parent_context_t = typename Context::template partial; - using CurrentMW = typename std::tuple_element< - N, typename std::remove_reference::type>::type; - afterHandlerCall( - std::get(middlewares), req, res, ctx, - static_cast(ctx)); - afterHandlersCallHelper(middlewares, ctx, req, - res); -} -} // namespace detail - -#ifdef BMCWEB_ENABLE_DEBUG -static std::atomic connectionCount; -#endif - -// request body limit size: 30M -constexpr unsigned int httpReqBodyLimit = 1024 * 1024 * 30; - -template -class Connection -{ - public: - Connection(boost::asio::io_context& ioService, Handler* handler, - const std::string& server_name, - std::tuple* middlewares, - std::function& get_cached_date_str_f, - detail::TimerQueue& timerQueue, Adaptor adaptorIn) : - adaptor(std::move(adaptorIn)), - handler(handler), serverName(server_name), middlewares(middlewares), - getCachedDateStr(get_cached_date_str_f), timerQueue(timerQueue) - { - parser.emplace(std::piecewise_construct, std::make_tuple()); - // Temporarily changed to 30MB; Need to modify uploading/authentication - // mechanism - parser->body_limit(httpReqBodyLimit); - req.emplace(parser->get()); -#ifdef BMCWEB_ENABLE_DEBUG - connectionCount++; - BMCWEB_LOG_DEBUG << this << " Connection open, total " - << connectionCount; -#endif - } - - ~Connection() - { - res.completeRequestHandler = nullptr; - cancelDeadlineTimer(); -#ifdef BMCWEB_ENABLE_DEBUG - connectionCount--; - BMCWEB_LOG_DEBUG << this << " Connection closed, total " - << connectionCount; -#endif - } - - Adaptor& socket() - { - return adaptor; - } - - void start() - { - - startDeadline(); - // TODO(ed) Abstract this to a more clever class with the idea of an - // asynchronous "start" - if constexpr (std::is_same_v>) - { - adaptor.async_handshake( - boost::asio::ssl::stream_base::server, - [this](const boost::system::error_code& ec) { - if (ec) - { - checkDestroy(); - return; - } - doReadHeaders(); - }); - } - else - { - doReadHeaders(); - } - } - - void handle() - { - cancelDeadlineTimer(); - bool isInvalidRequest = false; - const boost::string_view connection = - req->getHeaderValue(boost::beast::http::field::connection); - - // Check for HTTP version 1.1. - if (req->version() == 11) - { - if (req->getHeaderValue(boost::beast::http::field::host).empty()) - { - isInvalidRequest = true; - res = Response(boost::beast::http::status::bad_request); - } - } - - std::string epName; - boost::system::error_code ec; - tcp::endpoint ep = adaptor.lowest_layer().remote_endpoint(ec); - if (!ec) - { - epName = boost::lexical_cast(ep); - } - - BMCWEB_LOG_INFO << "Request: " << epName << " " << this << " HTTP/" - << req->version() / 10 << "." << req->version() % 10 - << ' ' << req->methodString() << " " << req->target(); - - needToCallAfterHandlers = false; - - if (!isInvalidRequest) - { - res.completeRequestHandler = [] {}; - res.isAliveHelper = [this]() -> bool { - return adaptor.lowest_layer().is_open(); - }; - - ctx = detail::Context(); - req->middlewareContext = (void*)&ctx; - req->ioService = &adaptor.get_executor().context(); - detail::middlewareCallHelper< - 0, decltype(ctx), decltype(*middlewares), Middlewares...>( - *middlewares, *req, res, ctx); - - if (!res.completed) - { - if (req->isUpgrade() && - boost::iequals( - req->getHeaderValue(boost::beast::http::field::upgrade), - "websocket")) - { - handler->handleUpgrade(*req, res, std::move(adaptor)); - return; - } - res.completeRequestHandler = [this] { - this->completeRequest(); - }; - needToCallAfterHandlers = true; - handler->handle(*req, res); - } - else - { - completeRequest(); - } - } - else - { - completeRequest(); - } - } - - void completeRequest() - { - BMCWEB_LOG_INFO << "Response: " << this << ' ' << req->url << ' ' - << res.resultInt() << " keepalive=" << req->keepAlive(); - - if (needToCallAfterHandlers) - { - needToCallAfterHandlers = false; - - // call all afterHandler of middlewares - detail::afterHandlersCallHelper<((int)sizeof...(Middlewares) - 1), - decltype(ctx), - decltype(*middlewares)>( - *middlewares, ctx, *req, res); - } - - // auto self = this->shared_from_this(); - res.completeRequestHandler = res.completeRequestHandler = [] {}; - - if (!adaptor.lowest_layer().is_open()) - { - // BMCWEB_LOG_DEBUG << this << " delete (socket is closed) " << - // isReading - // << ' ' << isWriting; - // delete this; - return; - } - if (res.body().empty() && !res.jsonValue.empty()) - { - if (http_helpers::requestPrefersHtml(*req)) - { - prettyPrintJson(res); - } - else - { - res.jsonMode(); - res.body() = res.jsonValue.dump(2, ' ', true); - } - } - - if (res.resultInt() >= 400 && res.body().empty()) - { - res.body() = std::string(res.reason()); - } - res.addHeader(boost::beast::http::field::server, serverName); - res.addHeader(boost::beast::http::field::date, getCachedDateStr()); - - res.keepAlive(req->keepAlive()); - - doWrite(); - } - - private: - void doReadHeaders() - { - // auto self = this->shared_from_this(); - isReading = true; - BMCWEB_LOG_DEBUG << this << " doReadHeaders"; - - // Clean up any previous Connection. - boost::beast::http::async_read_header( - adaptor, buffer, *parser, - [this](const boost::system::error_code& ec, - std::size_t bytes_transferred) { - isReading = false; - BMCWEB_LOG_ERROR << this << " async_read_header " - << bytes_transferred << " Bytes"; - bool errorWhileReading = false; - if (ec) - { - errorWhileReading = true; - BMCWEB_LOG_ERROR - << this << " Error while reading: " << ec.message(); - } - else - { - // if the adaptor isn't open anymore, and wasn't handed to a - // websocket, treat as an error - if (!adaptor.lowest_layer().is_open() && !req->isUpgrade()) - { - errorWhileReading = true; - } - } - - if (errorWhileReading) - { - cancelDeadlineTimer(); - adaptor.lowest_layer().close(); - BMCWEB_LOG_DEBUG << this << " from read(1)"; - checkDestroy(); - return; - } - - // Compute the url parameters for the request - req->url = req->target(); - std::size_t index = req->url.find("?"); - if (index != boost::string_view::npos) - { - req->url = req->url.substr(0, index); - } - req->urlParams = QueryString(std::string(req->target())); - doRead(); - }); - } - - void doRead() - { - // auto self = this->shared_from_this(); - isReading = true; - BMCWEB_LOG_DEBUG << this << " doRead"; - - boost::beast::http::async_read( - adaptor, buffer, *parser, - [this](const boost::system::error_code& ec, - std::size_t bytes_transferred) { - BMCWEB_LOG_ERROR << this << " async_read " << bytes_transferred - << " Bytes"; - isReading = false; - - bool errorWhileReading = false; - if (ec) - { - BMCWEB_LOG_ERROR << "Error while reading: " << ec.message(); - errorWhileReading = true; - } - else - { - if (!adaptor.lowest_layer().is_open()) - { - errorWhileReading = true; - } - } - if (errorWhileReading) - { - cancelDeadlineTimer(); - adaptor.lowest_layer().close(); - BMCWEB_LOG_DEBUG << this << " from read(1)"; - checkDestroy(); - return; - } - handle(); - }); - } - - void doWrite() - { - // auto self = this->shared_from_this(); - isWriting = true; - BMCWEB_LOG_DEBUG << "Doing Write"; - res.preparePayload(); - serializer.emplace(*res.stringResponse); - boost::beast::http::async_write( - adaptor, *serializer, - [&](const boost::system::error_code& ec, - std::size_t bytes_transferred) { - isWriting = false; - BMCWEB_LOG_DEBUG << this << " Wrote " << bytes_transferred - << " bytes"; - - if (ec) - { - BMCWEB_LOG_DEBUG << this << " from write(2)"; - checkDestroy(); - return; - } - if (!res.keepAlive()) - { - adaptor.lowest_layer().close(); - BMCWEB_LOG_DEBUG << this << " from write(1)"; - checkDestroy(); - return; - } - - serializer.reset(); - BMCWEB_LOG_DEBUG << this << " Clearing response"; - res.clear(); - parser.emplace(std::piecewise_construct, std::make_tuple()); - parser->body_limit(httpReqBodyLimit); // reset body limit for - // newly created parser - buffer.consume(buffer.size()); - - req.emplace(parser->get()); - doReadHeaders(); - }); - } - - void checkDestroy() - { - BMCWEB_LOG_DEBUG << this << " isReading " << isReading << " isWriting " - << isWriting; - if (!isReading && !isWriting) - { - BMCWEB_LOG_DEBUG << this << " delete (idle) "; - delete this; - } - } - - void cancelDeadlineTimer() - { - BMCWEB_LOG_DEBUG << this << " timer cancelled: " << &timerQueue << ' ' - << timerCancelKey; - timerQueue.cancel(timerCancelKey); - } - - void startDeadline() - { - cancelDeadlineTimer(); - - timerCancelKey = timerQueue.add([this] { - if (!adaptor.lowest_layer().is_open()) - { - return; - } - adaptor.lowest_layer().close(); - }); - BMCWEB_LOG_DEBUG << this << " timer added: " << &timerQueue << ' ' - << timerCancelKey; - } - - private: - Adaptor adaptor; - Handler* handler; - - // Making this a std::optional allows it to be efficiently destroyed and - // re-created on Connection reset - std::optional< - boost::beast::http::request_parser> - parser; - - boost::beast::flat_static_buffer<8192> buffer; - - std::optional> - serializer; - - std::optional req; - crow::Response res; - - const std::string& serverName; - - int timerCancelKey{-1}; - - bool isReading{}; - bool isWriting{}; - bool needToCallAfterHandlers{}; - bool needToStartReadAfterComplete{}; - - std::tuple* middlewares; - detail::Context ctx; - - std::function& getCachedDateStr; - detail::TimerQueue& timerQueue; -}; -} // namespace crow diff --git a/Contrib-Inspur/bmcweb/crow/include/crow/http_request.h b/Contrib-Inspur/bmcweb/crow/include/crow/http_request.h deleted file mode 100644 index ac5f78d0..00000000 --- a/Contrib-Inspur/bmcweb/crow/include/crow/http_request.h +++ /dev/null @@ -1,72 +0,0 @@ -#pragma once - -#include -#include -#include - -#include "crow/common.h" -#include "crow/query_string.h" - -namespace crow -{ - -struct Request -{ - boost::string_view url{}; - QueryString urlParams{}; - bool isSecure{false}; - - const std::string& body; - - void* middlewareContext{}; - boost::asio::io_context* ioService{}; - - Request(boost::beast::http::request& req) : - req(req), body(req.body()) - { - } - - const boost::beast::http::verb method() const - { - return req.method(); - } - - const boost::string_view getHeaderValue(boost::string_view key) const - { - return req[key]; - } - - const boost::string_view getHeaderValue(boost::beast::http::field key) const - { - return req[key]; - } - - const boost::string_view methodString() const - { - return req.method_string(); - } - - const boost::string_view target() const - { - return req.target(); - } - - unsigned version() - { - return req.version(); - } - - bool isUpgrade() - { - return boost::beast::websocket::is_upgrade(req); - } - - bool keepAlive() - { - return req.keep_alive(); - } - - boost::beast::http::request& req; -}; - -} // namespace crow diff --git a/Contrib-Inspur/bmcweb/crow/include/crow/http_server.h b/Contrib-Inspur/bmcweb/crow/include/crow/http_server.h deleted file mode 100644 index e8cb762e..00000000 --- a/Contrib-Inspur/bmcweb/crow/include/crow/http_server.h +++ /dev/null @@ -1,222 +0,0 @@ -#pragma once - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include "crow/http_connection.h" -#include "crow/logging.h" -#include "crow/timer_queue.h" -#ifdef BMCWEB_ENABLE_SSL -#include -#include -#endif - -namespace crow -{ -using namespace boost; -using tcp = asio::ip::tcp; - -template -class Server -{ - public: - Server(Handler* handler, std::unique_ptr&& acceptor, - std::tuple* middlewares = nullptr, - boost::asio::ssl::context* adaptor_ctx = nullptr, - std::shared_ptr io = - std::make_shared()) : - ioService(std::move(io)), - acceptor(std::move(acceptor)), signals(*ioService, SIGINT, SIGTERM), - tickTimer(*ioService), handler(handler), middlewares(middlewares), - adaptorCtx(adaptor_ctx) - { - } - - Server(Handler* handler, const std::string& bindaddr, uint16_t port, - std::tuple* middlewares = nullptr, - boost::asio::ssl::context* adaptor_ctx = nullptr, - std::shared_ptr io = - std::make_shared()) : - Server(handler, - std::make_unique( - *io, - tcp::endpoint( - boost::asio::ip::address::from_string(bindaddr), port)), - middlewares, adaptor_ctx, io) - { - } - - Server(Handler* handler, int existing_socket, - std::tuple* middlewares = nullptr, - boost::asio::ssl::context* adaptor_ctx = nullptr, - std::shared_ptr io = - std::make_shared()) : - Server(handler, - std::make_unique(*io, boost::asio::ip::tcp::v6(), - existing_socket), - middlewares, adaptor_ctx, io) - { - } - - void setTickFunction(std::chrono::milliseconds d, std::function f) - { - tickInterval = d; - tickFunction = f; - } - - void onTick() - { - tickFunction(); - tickTimer.expires_from_now( - boost::posix_time::milliseconds(tickInterval.count())); - tickTimer.async_wait([this](const boost::system::error_code& ec) { - if (ec) - { - return; - } - onTick(); - }); - } - - void updateDateStr() - { - auto lastTimeT = time(0); - tm myTm{}; - -#ifdef _MSC_VER - gmtime_s(&my_tm, &last_time_t); -#else - gmtime_r(&lastTimeT, &myTm); -#endif - dateStr.resize(100); - size_t dateStrSz = - strftime(&dateStr[0], 99, "%a, %d %b %Y %H:%M:%S GMT", &myTm); - dateStr.resize(dateStrSz); - }; - - void run() - { - updateDateStr(); - - getCachedDateStr = [this]() -> std::string { - static std::chrono::time_point - lastDateUpdate = std::chrono::steady_clock::now(); - if (std::chrono::steady_clock::now() - lastDateUpdate >= - std::chrono::seconds(10)) - { - lastDateUpdate = std::chrono::steady_clock::now(); - updateDateStr(); - } - return this->dateStr; - }; - - boost::asio::deadline_timer timer(*ioService); - timer.expires_from_now(boost::posix_time::seconds(1)); - - std::function handler; - handler = [&](const boost::system::error_code& ec) { - if (ec) - { - return; - } - timerQueue.process(); - timer.expires_from_now(boost::posix_time::seconds(1)); - timer.async_wait(handler); - }; - timer.async_wait(handler); - - if (tickFunction && tickInterval.count() > 0) - { - tickTimer.expires_from_now( - boost::posix_time::milliseconds(tickInterval.count())); - tickTimer.async_wait([this](const boost::system::error_code& ec) { - if (ec) - { - return; - } - onTick(); - }); - } - - BMCWEB_LOG_INFO << serverName << " server is running, local endpoint " - << acceptor->local_endpoint(); - - signals.async_wait([&](const boost::system::error_code& /*error*/, - int /*signal_number*/) { stop(); }); - - doAccept(); - } - - void stop() - { - ioService->stop(); - } - - void doAccept() - { - std::optional adaptorTemp; - if constexpr (std::is_same>::value) - { - adaptorTemp = Adaptor(*ioService, *adaptorCtx); - } - else - { - adaptorTemp = Adaptor(*ioService); - } - - Connection* p = - new Connection( - *ioService, handler, serverName, middlewares, getCachedDateStr, - timerQueue, std::move(adaptorTemp.value())); - - acceptor->async_accept(p->socket().lowest_layer(), - [this, p](boost::system::error_code ec) { - if (!ec) - { - this->ioService->post( - [p] { p->start(); }); - } - else - { - delete p; - } - doAccept(); - }); - } - - private: - std::shared_ptr ioService; - detail::TimerQueue timerQueue; - std::function getCachedDateStr; - std::unique_ptr acceptor; - boost::asio::signal_set signals; - boost::asio::deadline_timer tickTimer; - - std::string dateStr; - - Handler* handler; - std::string serverName = "iBMC"; - - std::chrono::milliseconds tickInterval{}; - std::function tickFunction; - - std::tuple* middlewares; - -#ifdef BMCWEB_ENABLE_SSL - bool useSsl{false}; -#endif - boost::asio::ssl::context* adaptorCtx; -}; // namespace crow -} // namespace crow diff --git a/Contrib-Inspur/bmcweb/crow/include/crow/logging.h b/Contrib-Inspur/bmcweb/crow/include/crow/logging.h deleted file mode 100644 index 353a448c..00000000 --- a/Contrib-Inspur/bmcweb/crow/include/crow/logging.h +++ /dev/null @@ -1,145 +0,0 @@ -#pragma once - -#include -#include -#include -#include -#include -#include - -namespace crow -{ -enum class LogLevel -{ -#ifndef ERROR - DEBUG = 0, - INFO, - WARNING, - ERROR, - CRITICAL, -#endif - - Debug = 0, - Info, - Warning, - Error, - Critical, -}; - -class ILogHandler -{ - public: - virtual void log(std::string message, LogLevel level) = 0; -}; - -class CerrLogHandler : public ILogHandler -{ - public: - void log(std::string message, LogLevel /*level*/) override - { - std::cerr << message; - } -}; - -class logger -{ - private: - // - static std::string timestamp() - { - char date[32]; - time_t t = time(0); - - tm myTm{}; - -#ifdef _MSC_VER - gmtime_s(&my_tm, &t); -#else - gmtime_r(&t, &myTm); -#endif - - size_t sz = strftime(date, sizeof(date), "%Y-%m-%d %H:%M:%S", &myTm); - return std::string(date, date + sz); - } - - public: - logger(const std::string& prefix, LogLevel level) : level(level) - { -#ifdef BMCWEB_ENABLE_LOGGING - stringstream << "(" << timestamp() << ") [" << prefix << "] "; -#endif - } - ~logger() - { -#ifdef BMCWEB_ENABLE_LOGGING - if (level >= get_current_log_level()) - { - stringstream << std::endl; - getHandlerRef()->log(stringstream.str(), level); - } -#endif - } - - // - template logger& operator<<(T const& value) - { -#ifdef BMCWEB_ENABLE_LOGGING - if (level >= get_current_log_level()) - { - stringstream << value; - } -#endif - return *this; - } - - // - static void setLogLevel(LogLevel level) - { - getLogLevelRef() = level; - } - - static void setHandler(ILogHandler* handler) - { - getHandlerRef() = handler; - } - - static LogLevel get_current_log_level() - { - return getLogLevelRef(); - } - - private: - // - static LogLevel& getLogLevelRef() - { - static auto currentLevel = static_cast(1); - return currentLevel; - } - static ILogHandler*& getHandlerRef() - { - static CerrLogHandler defaultHandler; - static ILogHandler* currentHandler = &defaultHandler; - return currentHandler; - } - - // - std::ostringstream stringstream; - LogLevel level; -}; -} // namespace crow - -#define BMCWEB_LOG_CRITICAL \ - if (crow::logger::get_current_log_level() <= crow::LogLevel::Critical) \ - crow::logger("CRITICAL", crow::LogLevel::Critical) -#define BMCWEB_LOG_ERROR \ - if (crow::logger::get_current_log_level() <= crow::LogLevel::Error) \ - crow::logger("ERROR ", crow::LogLevel::Error) -#define BMCWEB_LOG_WARNING \ - if (crow::logger::get_current_log_level() <= crow::LogLevel::Warning) \ - crow::logger("WARNING ", crow::LogLevel::Warning) -#define BMCWEB_LOG_INFO \ - if (crow::logger::get_current_log_level() <= crow::LogLevel::Info) \ - crow::logger("INFO ", crow::LogLevel::Info) -#define BMCWEB_LOG_DEBUG \ - if (crow::logger::get_current_log_level() <= crow::LogLevel::Debug) \ - crow::logger("DEBUG ", crow::LogLevel::Debug) diff --git a/Contrib-Inspur/bmcweb/crow/include/crow/routing.h b/Contrib-Inspur/bmcweb/crow/include/crow/routing.h deleted file mode 100644 index 7ba51711..00000000 --- a/Contrib-Inspur/bmcweb/crow/include/crow/routing.h +++ /dev/null @@ -1,1197 +0,0 @@ -#pragma once - -#include "boost/container/flat_map.hpp" - -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include "crow/common.h" -#include "crow/http_request.h" -#include "crow/http_response.h" -#include "crow/logging.h" -#include "crow/utility.h" -#include "crow/websocket.h" - -namespace crow -{ -class BaseRule -{ - public: - BaseRule(std::string rule) : rule(std::move(rule)) - { - } - - virtual ~BaseRule() - { - } - - virtual void validate() = 0; - std::unique_ptr upgrade() - { - if (ruleToUpgrade) - return std::move(ruleToUpgrade); - return {}; - } - - virtual void handle(const Request&, Response&, const RoutingParams&) = 0; - virtual void handleUpgrade(const Request&, Response& res, - boost::asio::ip::tcp::socket&&) - { - res = Response(boost::beast::http::status::not_found); - res.end(); - } -#ifdef BMCWEB_ENABLE_SSL - virtual void - handleUpgrade(const Request&, Response& res, - boost::beast::ssl_stream&&) - { - res = Response(boost::beast::http::status::not_found); - res.end(); - } -#endif - - uint32_t getMethods() - { - return methodsBitfield; - } - - protected: - uint32_t methodsBitfield{1 << (int)boost::beast::http::verb::get}; - - std::string rule; - std::string nameStr; - - std::unique_ptr ruleToUpgrade; - - friend class Router; - template friend struct RuleParameterTraits; -}; - -namespace detail -{ -namespace routing_handler_call_helper -{ -template struct CallPair -{ - using type = T; - static const int pos = Pos; -}; - -template struct CallParams -{ - H1& handler; - const RoutingParams& params; - const Request& req; - Response& res; -}; - -template -struct Call -{ -}; - -template -struct Call, - black_magic::S> -{ - void operator()(F cparams) - { - using pushed = typename black_magic::S::template push_back< - CallPair>; - Call, - pushed>()(cparams); - } -}; - -template -struct Call, black_magic::S> -{ - void operator()(F cparams) - { - using pushed = typename black_magic::S::template push_back< - CallPair>; - Call, - pushed>()(cparams); - } -}; - -template -struct Call, - black_magic::S> -{ - void operator()(F cparams) - { - using pushed = typename black_magic::S::template push_back< - CallPair>; - Call, - pushed>()(cparams); - } -}; - -template -struct Call, black_magic::S> -{ - void operator()(F cparams) - { - using pushed = typename black_magic::S::template push_back< - CallPair>; - Call, - pushed>()(cparams); - } -}; - -template -struct Call, - black_magic::S> -{ - void operator()(F cparams) - { - cparams.handler( - cparams.req, cparams.res, - cparams.params.template get(Args1::pos)...); - } -}; - -template struct Wrapped -{ - template - void set( - Func f, - typename std::enable_if< - !std::is_same< - typename std::tuple_element<0, std::tuple>::type, - const Request&>::value, - int>::type = 0) - { - handler = ( -#ifdef BMCWEB_CAN_USE_CPP14 - [f = std::move(f)] -#else - [f] -#endif - (const Request&, Response& res, Args... args) { - res = Response(f(args...)); - res.end(); - }); - } - - template struct ReqHandlerWrapper - { - ReqHandlerWrapper(Func f) : f(std::move(f)) - { - } - - void operator()(const Request& req, Response& res, Args... args) - { - res = Response(f(req, args...)); - res.end(); - } - - Func f; - }; - - template - void set( - Func f, - typename std::enable_if< - std::is_same< - typename std::tuple_element<0, std::tuple>::type, - const Request&>::value && - !std::is_same>::type, - Response&>::value, - int>::type = 0) - { - handler = ReqHandlerWrapper(std::move(f)); - /*handler = ( - [f = std::move(f)] - (const Request& req, Response& res, Args... args){ - res = Response(f(req, args...)); - res.end(); - });*/ - } - - template - void set( - Func f, - typename std::enable_if< - std::is_same< - typename std::tuple_element<0, std::tuple>::type, - const Request&>::value && - std::is_same>::type, - Response&>::value, - int>::type = 0) - { - handler = std::move(f); - } - - template struct HandlerTypeHelper - { - using type = - std::function; - using args_type = - black_magic::S...>; - }; - - template - struct HandlerTypeHelper - { - using type = - std::function; - using args_type = - black_magic::S...>; - }; - - template - struct HandlerTypeHelper - { - using type = - std::function; - using args_type = - black_magic::S...>; - }; - - typename HandlerTypeHelper::type handler; - - void operator()(const Request& req, Response& res, - const RoutingParams& params) - { - detail::routing_handler_call_helper::Call< - detail::routing_handler_call_helper::CallParams, - 0, 0, 0, 0, typename HandlerTypeHelper::args_type, - black_magic::S<>>()( - detail::routing_handler_call_helper::CallParams{ - handler, params, req, res}); - } -}; -} // namespace routing_handler_call_helper -} // namespace detail - -class WebSocketRule : public BaseRule -{ - using self_t = WebSocketRule; - - public: - WebSocketRule(std::string rule) : BaseRule(std::move(rule)) - { - } - - void validate() override - { - } - - void handle(const Request&, Response& res, const RoutingParams&) override - { - res = Response(boost::beast::http::status::not_found); - res.end(); - } - - void handleUpgrade(const Request& req, Response&, - boost::asio::ip::tcp::socket&& adaptor) override - { - new crow::websocket::ConnectionImpl( - req, std::move(adaptor), openHandler, messageHandler, closeHandler, - errorHandler); - } -#ifdef BMCWEB_ENABLE_SSL - void handleUpgrade(const Request& req, Response&, - boost::beast::ssl_stream&& - adaptor) override - { - std::shared_ptr>> - myConnection = std::make_shared>>( - req, std::move(adaptor), openHandler, messageHandler, - closeHandler, errorHandler); - myConnection->start(); - } -#endif - - template self_t& onopen(Func f) - { - openHandler = f; - return *this; - } - - template self_t& onmessage(Func f) - { - messageHandler = f; - return *this; - } - - template self_t& onclose(Func f) - { - closeHandler = f; - return *this; - } - - template self_t& onerror(Func f) - { - errorHandler = f; - return *this; - } - - protected: - std::function openHandler; - std::function - messageHandler; - std::function - closeHandler; - std::function errorHandler; -}; - -template struct RuleParameterTraits -{ - using self_t = T; - WebSocketRule& websocket() - { - auto p = new WebSocketRule(((self_t*)this)->rule); - ((self_t*)this)->ruleToUpgrade.reset(p); - return *p; - } - - self_t& name(std::string name) noexcept - { - ((self_t*)this)->nameStr = std::move(name); - return (self_t&)*this; - } - - self_t& methods(boost::beast::http::verb method) - { - ((self_t*)this)->methodsBitfield = 1 << (int)method; - return (self_t&)*this; - } - - template - self_t& methods(boost::beast::http::verb method, MethodArgs... args_method) - { - methods(args_method...); - ((self_t*)this)->methodsBitfield |= 1 << (int)method; - return (self_t&)*this; - } -}; - -class DynamicRule : public BaseRule, public RuleParameterTraits -{ - public: - DynamicRule(std::string rule) : BaseRule(std::move(rule)) - { - } - - void validate() override - { - if (!erasedHandler) - { - throw std::runtime_error(nameStr + (!nameStr.empty() ? ": " : "") + - "no handler for url " + rule); - } - } - - void handle(const Request& req, Response& res, - const RoutingParams& params) override - { - erasedHandler(req, res, params); - } - - template void operator()(Func f) - { - using function_t = utility::function_traits; - - erasedHandler = - wrap(std::move(f), black_magic::gen_seq()); - } - - // enable_if Arg1 == request && Arg2 == Response - // enable_if Arg1 == request && Arg2 != resposne - // enable_if Arg1 != request - - template - - std::function - wrap(Func f, black_magic::Seq) - { - using function_t = utility::function_traits; - - if (!black_magic::isParameterTagCompatible( - black_magic::getParameterTagRuntime(rule.c_str()), - black_magic::compute_parameter_tag_from_args_list< - typename function_t::template arg...>::value)) - { - throw std::runtime_error("routeDynamic: Handler type is mismatched " - "with URL parameters: " + - rule); - } - auto ret = detail::routing_handler_call_helper::Wrapped< - Func, typename function_t::template arg...>(); - ret.template set...>( - std::move(f)); - return ret; - } - - template void operator()(std::string name, Func&& f) - { - nameStr = std::move(name); - (*this).template operator()(std::forward(f)); - } - - private: - std::function - erasedHandler; -}; - -template -class TaggedRule : public BaseRule, - public RuleParameterTraits> -{ - public: - using self_t = TaggedRule; - - TaggedRule(std::string rule) : BaseRule(std::move(rule)) - { - } - - void validate() override - { - if (!handler) - { - throw std::runtime_error(nameStr + (!nameStr.empty() ? ": " : "") + - "no handler for url " + rule); - } - } - - template - typename std::enable_if< - black_magic::CallHelper>::value, - void>::type - operator()(Func&& f) - { - static_assert( - black_magic::CallHelper>::value || - black_magic::CallHelper< - Func, black_magic::S>::value, - "Handler type is mismatched with URL parameters"); - static_assert( - !std::is_same()...))>::value, - "Handler function cannot have void return type; valid return " - "types: " - "string, int, crow::resposne, nlohmann::json"); - - handler = [f = std::move(f)](const Request&, Response& res, - Args... args) { - res = Response(f(args...)); - res.end(); - }; - } - - template - typename std::enable_if< - !black_magic::CallHelper>::value && - black_magic::CallHelper< - Func, black_magic::S>::value, - void>::type - operator()(Func&& f) - { - static_assert( - black_magic::CallHelper>::value || - black_magic::CallHelper< - Func, black_magic::S>::value, - "Handler type is mismatched with URL parameters"); - static_assert( - !std::is_same(), - std::declval()...))>::value, - "Handler function cannot have void return type; valid return " - "types: " - "string, int, crow::resposne,nlohmann::json"); - - handler = [f = std::move(f)](const crow::Request& req, - crow::Response& res, Args... args) { - res = Response(f(req, args...)); - res.end(); - }; - } - - template - typename std::enable_if< - !black_magic::CallHelper>::value && - !black_magic::CallHelper< - Func, black_magic::S>::value, - void>::type - operator()(Func&& f) - { - static_assert( - black_magic::CallHelper>::value || - black_magic::CallHelper< - Func, black_magic::S>::value || - black_magic::CallHelper< - Func, black_magic::S>::value, - "Handler type is mismatched with URL parameters"); - static_assert( - std::is_same(), - std::declval(), - std::declval()...))>::value, - "Handler function with response argument should have void return " - "type"); - - handler = std::move(f); - } - - template void operator()(std::string name, Func&& f) - { - nameStr = std::move(name); - (*this).template operator()(std::forward(f)); - } - - void handle(const Request& req, Response& res, - const RoutingParams& params) override - { - detail::routing_handler_call_helper::Call< - detail::routing_handler_call_helper::CallParams, - 0, 0, 0, 0, black_magic::S, black_magic::S<>>()( - detail::routing_handler_call_helper::CallParams{ - handler, params, req, res}); - } - - private: - std::function handler; -}; - -const int ruleSpecialRedirectSlash = 1; - -class Trie -{ - public: - struct Node - { - unsigned ruleIndex{}; - std::array paramChildrens{}; - boost::container::flat_map children; - - bool isSimpleNode() const - { - return !ruleIndex && std::all_of(std::begin(paramChildrens), - std::end(paramChildrens), - [](unsigned x) { return !x; }); - } - }; - - Trie() : nodes(1) - { - } - - private: - void optimizeNode(Node* node) - { - for (auto x : node->paramChildrens) - { - if (!x) - continue; - Node* child = &nodes[x]; - optimizeNode(child); - } - if (node->children.empty()) - return; - bool mergeWithChild = true; - for (auto& kv : node->children) - { - Node* child = &nodes[kv.second]; - if (!child->isSimpleNode()) - { - mergeWithChild = false; - break; - } - } - if (mergeWithChild) - { - decltype(node->children) merged; - for (auto& kv : node->children) - { - Node* child = &nodes[kv.second]; - for (auto& childKv : child->children) - { - merged[kv.first + childKv.first] = childKv.second; - } - } - node->children = std::move(merged); - optimizeNode(node); - } - else - { - for (auto& kv : node->children) - { - Node* child = &nodes[kv.second]; - optimizeNode(child); - } - } - } - - void optimize() - { - optimizeNode(head()); - } - - public: - void validate() - { - if (!head()->isSimpleNode()) - throw std::runtime_error( - "Internal error: Trie header should be simple!"); - optimize(); - } - - void findRouteIndexes(const std::string& req_url, - std::vector& route_indexes, - const Node* node = nullptr, unsigned pos = 0) - { - if (node == nullptr) - { - node = head(); - } - for (auto& kv : node->children) - { - const std::string& fragment = kv.first; - const Node* child = &nodes[kv.second]; - if (pos >= req_url.size()) - { - if (child->ruleIndex != 0 && fragment != "/") - { - route_indexes.push_back(child->ruleIndex); - } - findRouteIndexes(req_url, route_indexes, child, - pos + fragment.size()); - } - else - { - if (req_url.compare(pos, fragment.size(), fragment) == 0) - { - findRouteIndexes(req_url, route_indexes, child, - pos + fragment.size()); - } - } - } - } - - std::pair - find(const boost::string_view req_url, const Node* node = nullptr, - unsigned pos = 0, RoutingParams* params = nullptr) const - { - RoutingParams empty; - if (params == nullptr) - params = ∅ - - unsigned found{}; - RoutingParams matchParams; - - if (node == nullptr) - node = head(); - if (pos == req_url.size()) - return {node->ruleIndex, *params}; - - auto updateFound = - [&found, &matchParams](std::pair& ret) { - if (ret.first && (!found || found > ret.first)) - { - found = ret.first; - matchParams = std::move(ret.second); - } - }; - - if (node->paramChildrens[(int)ParamType::INT]) - { - char c = req_url[pos]; - if ((c >= '0' && c <= '9') || c == '+' || c == '-') - { - char* eptr; - errno = 0; - long long int value = - std::strtoll(req_url.data() + pos, &eptr, 10); - if (errno != ERANGE && eptr != req_url.data() + pos) - { - params->intParams.push_back(value); - auto ret = - find(req_url, - &nodes[node->paramChildrens[(int)ParamType::INT]], - eptr - req_url.data(), params); - updateFound(ret); - params->intParams.pop_back(); - } - } - } - - if (node->paramChildrens[(int)ParamType::UINT]) - { - char c = req_url[pos]; - if ((c >= '0' && c <= '9') || c == '+') - { - char* eptr; - errno = 0; - unsigned long long int value = - std::strtoull(req_url.data() + pos, &eptr, 10); - if (errno != ERANGE && eptr != req_url.data() + pos) - { - params->uintParams.push_back(value); - auto ret = - find(req_url, - &nodes[node->paramChildrens[(int)ParamType::UINT]], - eptr - req_url.data(), params); - updateFound(ret); - params->uintParams.pop_back(); - } - } - } - - if (node->paramChildrens[(int)ParamType::DOUBLE]) - { - char c = req_url[pos]; - if ((c >= '0' && c <= '9') || c == '+' || c == '-' || c == '.') - { - char* eptr; - errno = 0; - double value = std::strtod(req_url.data() + pos, &eptr); - if (errno != ERANGE && eptr != req_url.data() + pos) - { - params->doubleParams.push_back(value); - auto ret = find( - req_url, - &nodes[node->paramChildrens[(int)ParamType::DOUBLE]], - eptr - req_url.data(), params); - updateFound(ret); - params->doubleParams.pop_back(); - } - } - } - - if (node->paramChildrens[(int)ParamType::STRING]) - { - size_t epos = pos; - for (; epos < req_url.size(); epos++) - { - if (req_url[epos] == '/') - break; - } - - if (epos != pos) - { - params->stringParams.emplace_back( - req_url.substr(pos, epos - pos)); - auto ret = - find(req_url, - &nodes[node->paramChildrens[(int)ParamType::STRING]], - epos, params); - updateFound(ret); - params->stringParams.pop_back(); - } - } - - if (node->paramChildrens[(int)ParamType::PATH]) - { - size_t epos = req_url.size(); - - if (epos != pos) - { - params->stringParams.emplace_back( - req_url.substr(pos, epos - pos)); - auto ret = find( - req_url, &nodes[node->paramChildrens[(int)ParamType::PATH]], - epos, params); - updateFound(ret); - params->stringParams.pop_back(); - } - } - - for (auto& kv : node->children) - { - const std::string& fragment = kv.first; - const Node* child = &nodes[kv.second]; - - if (req_url.compare(pos, fragment.size(), fragment) == 0) - { - auto ret = find(req_url, child, pos + fragment.size(), params); - updateFound(ret); - } - } - - return {found, matchParams}; - } - - void add(const std::string& url, unsigned ruleIndex) - { - unsigned idx{0}; - - for (unsigned i = 0; i < url.size(); i++) - { - char c = url[i]; - if (c == '<') - { - static struct ParamTraits - { - ParamType type; - std::string name; - } paramTraits[] = { - {ParamType::INT, ""}, - {ParamType::UINT, ""}, - {ParamType::DOUBLE, ""}, - {ParamType::DOUBLE, ""}, - {ParamType::STRING, ""}, - {ParamType::STRING, ""}, - {ParamType::PATH, ""}, - }; - - for (auto& x : paramTraits) - { - if (url.compare(i, x.name.size(), x.name) == 0) - { - if (!nodes[idx].paramChildrens[(int)x.type]) - { - auto newNodeIdx = newNode(); - nodes[idx].paramChildrens[(int)x.type] = newNodeIdx; - } - idx = nodes[idx].paramChildrens[(int)x.type]; - i += x.name.size(); - break; - } - } - - i--; - } - else - { - std::string piece(&c, 1); - if (!nodes[idx].children.count(piece)) - { - auto newNodeIdx = newNode(); - nodes[idx].children.emplace(piece, newNodeIdx); - } - idx = nodes[idx].children[piece]; - } - } - if (nodes[idx].ruleIndex) - throw std::runtime_error("handler already exists for " + url); - nodes[idx].ruleIndex = ruleIndex; - } - - private: - void debugNodePrint(Node* n, int level) - { - for (int i = 0; i < (int)ParamType::MAX; i++) - { - if (n->paramChildrens[i]) - { - BMCWEB_LOG_DEBUG << std::string( - 2 * level, ' ') /*<< "("<paramChildrens[i]<<") "*/; - switch ((ParamType)i) - { - case ParamType::INT: - BMCWEB_LOG_DEBUG << ""; - break; - case ParamType::UINT: - BMCWEB_LOG_DEBUG << ""; - break; - case ParamType::DOUBLE: - BMCWEB_LOG_DEBUG << ""; - break; - case ParamType::STRING: - BMCWEB_LOG_DEBUG << ""; - break; - case ParamType::PATH: - BMCWEB_LOG_DEBUG << ""; - break; - default: - BMCWEB_LOG_DEBUG << ""; - break; - } - - debugNodePrint(&nodes[n->paramChildrens[i]], level + 1); - } - } - for (auto& kv : n->children) - { - BMCWEB_LOG_DEBUG - << std::string(2 * level, ' ') /*<< "(" << kv.second << ") "*/ - << kv.first; - debugNodePrint(&nodes[kv.second], level + 1); - } - } - - public: - void debugPrint() - { - debugNodePrint(head(), 0); - } - - private: - const Node* head() const - { - return &nodes.front(); - } - - Node* head() - { - return &nodes.front(); - } - - unsigned newNode() - { - nodes.resize(nodes.size() + 1); - return nodes.size() - 1; - } - - std::vector nodes; -}; - -class Router -{ - public: - Router() : rules(2) - { - } - - DynamicRule& newRuleDynamic(const std::string& rule) - { - std::unique_ptr ruleObject = - std::make_unique(rule); - DynamicRule* ptr = ruleObject.get(); - internalAddRuleObject(rule, std::move(ruleObject)); - - return *ptr; - } - - template - typename black_magic::Arguments::type::template rebind& - newRuleTagged(const std::string& rule) - { - using RuleT = typename black_magic::Arguments::type::template rebind< - TaggedRule>; - std::unique_ptr ruleObject = std::make_unique(rule); - RuleT* ptr = ruleObject.get(); - - internalAddRuleObject(rule, std::move(ruleObject)); - - return *ptr; - } - - void internalAddRuleObject(const std::string& rule, - std::unique_ptr ruleObject) - { - rules.emplace_back(std::move(ruleObject)); - trie.add(rule, rules.size() - 1); - - // directory case: - // request to `/about' url matches `/about/' rule - if (rule.size() > 2 && rule.back() == '/') - { - trie.add(rule.substr(0, rule.size() - 1), rules.size() - 1); - } - } - - void validate() - { - trie.validate(); - for (auto& rule : rules) - { - if (rule) - { - auto upgraded = rule->upgrade(); - if (upgraded) - rule = std::move(upgraded); - rule->validate(); - } - } - } - - template - void handleUpgrade(const Request& req, Response& res, Adaptor&& adaptor) - { - auto found = trie.find(req.url); - unsigned ruleIndex = found.first; - if (!ruleIndex) - { - BMCWEB_LOG_DEBUG << "Cannot match rules " << req.url; - res = Response(boost::beast::http::status::not_found); - res.end(); - return; - } - - if (ruleIndex >= rules.size()) - throw std::runtime_error("Trie internal structure corrupted!"); - - if (ruleIndex == ruleSpecialRedirectSlash) - { - BMCWEB_LOG_INFO << "Redirecting to a url with trailing slash: " - << req.url; - res = Response(boost::beast::http::status::moved_permanently); - - // TODO absolute url building - if (req.getHeaderValue("Host").empty()) - { - res.addHeader("Location", std::string(req.url) + "/"); - } - else - { - res.addHeader( - "Location", - req.isSecure - ? "https://" - : "http://" + std::string(req.getHeaderValue("Host")) + - std::string(req.url) + "/"); - } - res.end(); - return; - } - - if ((rules[ruleIndex]->getMethods() & (1 << (uint32_t)req.method())) == - 0) - { - BMCWEB_LOG_DEBUG << "Rule found but method mismatch: " << req.url - << " with " << req.methodString() << "(" - << (uint32_t)req.method() << ") / " - << rules[ruleIndex]->getMethods(); - res = Response(boost::beast::http::status::not_found); - res.end(); - return; - } - - BMCWEB_LOG_DEBUG << "Matched rule (upgrade) '" << rules[ruleIndex]->rule - << "' " << (uint32_t)req.method() << " / " - << rules[ruleIndex]->getMethods(); - - // any uncaught exceptions become 500s - try - { - rules[ruleIndex]->handleUpgrade(req, res, std::move(adaptor)); - } - catch (std::exception& e) - { - BMCWEB_LOG_ERROR << "An uncaught exception occurred: " << e.what(); - res = Response(boost::beast::http::status::internal_server_error); - res.end(); - return; - } - catch (...) - { - BMCWEB_LOG_ERROR - << "An uncaught exception occurred. The type was unknown " - "so no information was available."; - res = Response(boost::beast::http::status::internal_server_error); - res.end(); - return; - } - } - - void handle(const Request& req, Response& res) - { - auto found = trie.find(req.url); - - unsigned ruleIndex = found.first; - - if (!ruleIndex) - { - BMCWEB_LOG_DEBUG << "Cannot match rules " << req.url; - res.result(boost::beast::http::status::not_found); - res.end(); - return; - } - - if (ruleIndex >= rules.size()) - throw std::runtime_error("Trie internal structure corrupted!"); - - if (ruleIndex == ruleSpecialRedirectSlash) - { - BMCWEB_LOG_INFO << "Redirecting to a url with trailing slash: " - << req.url; - res = Response(boost::beast::http::status::moved_permanently); - - // TODO absolute url building - if (req.getHeaderValue("Host").empty()) - { - res.addHeader("Location", std::string(req.url) + "/"); - } - else - { - res.addHeader("Location", - (req.isSecure ? "https://" : "http://") + - std::string(req.getHeaderValue("Host")) + - std::string(req.url) + "/"); - } - res.end(); - return; - } - - if ((rules[ruleIndex]->getMethods() & (1 << (uint32_t)req.method())) == - 0) - { - BMCWEB_LOG_DEBUG << "Rule found but method mismatch: " << req.url - << " with " << req.methodString() << "(" - << (uint32_t)req.method() << ") / " - << rules[ruleIndex]->getMethods(); - res = Response(boost::beast::http::status::not_found); - res.end(); - return; - } - - BMCWEB_LOG_DEBUG << "Matched rule '" << rules[ruleIndex]->rule << "' " - << (uint32_t)req.method() << " / " - << rules[ruleIndex]->getMethods(); - - // any uncaught exceptions become 500s - try - { - rules[ruleIndex]->handle(req, res, found.second); - } - catch (std::exception& e) - { - BMCWEB_LOG_ERROR << "An uncaught exception occurred: " << e.what(); - res = Response(boost::beast::http::status::internal_server_error); - res.end(); - return; - } - catch (...) - { - BMCWEB_LOG_ERROR - << "An uncaught exception occurred. The type was unknown " - "so no information was available."; - res = Response(boost::beast::http::status::internal_server_error); - res.end(); - return; - } - } - - void debugPrint() - { - trie.debugPrint(); - } - - std::vector getRoutes(const std::string& parent) - { - std::vector x; - std::vector ret; - trie.findRouteIndexes(parent, x); - for (unsigned index : x) - { - ret.push_back(&rules[index]->rule); - } - return ret; - } - - private: - std::vector> rules; - Trie trie; -}; -} // namespace crow diff --git a/Contrib-Inspur/bmcweb/crow/include/crow/settings.h b/Contrib-Inspur/bmcweb/crow/include/crow/settings.h deleted file mode 100644 index 8cb12197..00000000 --- a/Contrib-Inspur/bmcweb/crow/include/crow/settings.h +++ /dev/null @@ -1,35 +0,0 @@ -#pragma once -// settings for crow -// TODO - replace with runtime config. libucl? - -/* #ifdef - enables debug mode */ -//#define BMCWEB_ENABLE_DEBUG - -/* #ifdef - enables logging */ -//#define BMCWEB_ENABLE_LOGGING - -/* #ifdef - enables ssl */ -//#define BMCWEB_ENABLE_SSL - -/* #define - specifies log level */ -/* - Debug = 0 - Info = 1 - Warning = 2 - Error = 3 - Critical = 4 - - default to INFO -*/ -#define BMCWEB_LOG_LEVEL 1 - -// compiler flags -#if __cplusplus >= 201402L -#define BMCWEB_CAN_USE_CPP14 -#endif - -#if defined(_MSC_VER) -#if _MSC_VER < 1900 -#error "MSVC versions betfore VS2015 are not supported" -#endif -#endif diff --git a/Contrib-Inspur/bmcweb/crow/include/crow/websocket.h b/Contrib-Inspur/bmcweb/crow/include/crow/websocket.h deleted file mode 100644 index b545b5ab..00000000 --- a/Contrib-Inspur/bmcweb/crow/include/crow/websocket.h +++ /dev/null @@ -1,238 +0,0 @@ -#pragma once -#include -#include -#include -#include -#include - -#include "crow/http_request.h" - -#ifdef BMCWEB_ENABLE_SSL -#include -#endif - -namespace crow -{ -namespace websocket -{ -struct Connection : std::enable_shared_from_this -{ - public: - explicit Connection(const crow::Request& req) : - req(req), userdataPtr(nullptr){}; - - virtual void sendBinary(const boost::beast::string_view msg) = 0; - virtual void sendBinary(std::string&& msg) = 0; - virtual void sendText(const boost::beast::string_view msg) = 0; - virtual void sendText(std::string&& msg) = 0; - virtual void close(const boost::beast::string_view msg = "quit") = 0; - virtual boost::asio::io_context& get_io_context() = 0; - virtual ~Connection() = default; - - void userdata(void* u) - { - userdataPtr = u; - } - void* userdata() - { - return userdataPtr; - } - - crow::Request req; - - private: - void* userdataPtr; -}; - -template class ConnectionImpl : public Connection -{ - public: - ConnectionImpl( - const crow::Request& req, Adaptor adaptorIn, - std::function open_handler, - std::function - message_handler, - std::function close_handler, - std::function error_handler) : - inString(), - inBuffer(inString, 4096), ws(std::move(adaptorIn)), Connection(req), - openHandler(std::move(open_handler)), - messageHandler(std::move(message_handler)), - closeHandler(std::move(close_handler)), - errorHandler(std::move(error_handler)) - { - BMCWEB_LOG_DEBUG << "Creating new connection " << this; - } - - boost::asio::io_context& get_io_context() override - { - return ws.get_executor().context(); - } - - void start() - { - BMCWEB_LOG_DEBUG << "starting connection " << this; - - boost::string_view protocol = req.getHeaderValue( - boost::beast::http::field::sec_websocket_protocol); - - // Perform the websocket upgrade - ws.async_accept_ex( - req.req, - [protocol{std::string(protocol)}]( - boost::beast::websocket::response_type& m) { - if (!protocol.empty()) - { - m.insert(boost::beast::http::field::sec_websocket_protocol, - protocol); - } - }, - [this, self(shared_from_this())](boost::system::error_code ec) { - if (ec) - { - BMCWEB_LOG_ERROR << "Error in ws.async_accept " << ec; - return; - } - acceptDone(); - }); - } - - void sendBinary(const boost::beast::string_view msg) override - { - ws.binary(true); - outBuffer.emplace_back(msg); - doWrite(); - } - - void sendBinary(std::string&& msg) override - { - ws.binary(true); - outBuffer.emplace_back(std::move(msg)); - doWrite(); - } - - void sendText(const boost::beast::string_view msg) override - { - ws.text(true); - outBuffer.emplace_back(msg); - doWrite(); - } - - void sendText(std::string&& msg) override - { - ws.text(true); - outBuffer.emplace_back(std::move(msg)); - doWrite(); - } - - void close(const boost::beast::string_view msg) override - { - ws.async_close( - boost::beast::websocket::close_code::normal, - [this, self(shared_from_this())](boost::system::error_code ec) { - if (ec == boost::asio::error::operation_aborted) - { - return; - } - if (ec) - { - BMCWEB_LOG_ERROR << "Error closing websocket " << ec; - return; - } - }); - } - - void acceptDone() - { - BMCWEB_LOG_DEBUG << "Websocket accepted connection"; - - if (openHandler) - { - openHandler(*this); - } - doRead(); - } - - void doRead() - { - ws.async_read( - inBuffer, [this, self(shared_from_this())]( - boost::beast::error_code ec, std::size_t bytes_read) { - if (ec) - { - if (ec != boost::beast::websocket::error::closed) - { - BMCWEB_LOG_ERROR << "doRead error " << ec; - } - if (closeHandler) - { - boost::beast::string_view reason = ws.reason().reason; - closeHandler(*this, std::string(reason)); - } - return; - } - if (messageHandler) - { - messageHandler(*this, inString, ws.got_text()); - } - inBuffer.consume(bytes_read); - inString.clear(); - doRead(); - }); - } - - void doWrite() - { - // If we're already doing a write, ignore the request, it will be picked - // up when the current write is complete - if (doingWrite) - { - return; - } - - if (outBuffer.empty()) - { - // Done for now - return; - } - doingWrite = true; - ws.async_write( - boost::asio::buffer(outBuffer.front()), - [this, self(shared_from_this())](boost::beast::error_code ec, - std::size_t bytes_written) { - doingWrite = false; - outBuffer.erase(outBuffer.begin()); - if (ec == boost::beast::websocket::error::closed) - { - // Do nothing here. doRead handler will call the - // closeHandler. - close("Write error"); - return; - } - if (ec) - { - BMCWEB_LOG_ERROR << "Error in ws.async_write " << ec; - return; - } - doWrite(); - }); - } - - private: - boost::beast::websocket::stream ws; - - std::string inString; - boost::asio::dynamic_string_buffer - inBuffer; - std::vector outBuffer; - bool doingWrite = false; - - std::function openHandler; - std::function messageHandler; - std::function closeHandler; - std::function errorHandler; -}; -} // namespace websocket -} // namespace crow diff --git a/Contrib-Inspur/bmcweb/crow/LICENSE b/Contrib-Inspur/bmcweb/http/LICENSE similarity index 100% rename from Contrib-Inspur/bmcweb/crow/LICENSE rename to Contrib-Inspur/bmcweb/http/LICENSE diff --git a/Contrib-Inspur/bmcweb/http/app.h b/Contrib-Inspur/bmcweb/http/app.h new file mode 100644 index 00000000..1e5f985c --- /dev/null +++ b/Contrib-Inspur/bmcweb/http/app.h @@ -0,0 +1,262 @@ +#pragma once + +#include "privileges.hpp" + +#include +#include +#include +#include +#include +#include +#include + +#include "http_request.h" +#include "http_server.h" +#include "logging.h" +#include "middleware_context.h" +#include "routing.h" +#include "utility.h" + +#define BMCWEB_ROUTE(app, url) \ + app.template route(url) + +namespace crow +{ +#ifdef BMCWEB_ENABLE_SSL +using ssl_context_t = boost::asio::ssl::context; +#endif +template class Crow +{ + public: + using self_t = Crow; + +#ifdef BMCWEB_ENABLE_SSL + using ssl_socket_t = boost::beast::ssl_stream; + using ssl_server_t = Server; +#else + using socket_t = boost::asio::ip::tcp::socket; + using server_t = Server; +#endif + + explicit Crow(std::shared_ptr ioIn = + std::make_shared()) : + io(std::move(ioIn)) + { + } + ~Crow() + { + this->stop(); + } + + template + void handleUpgrade(const Request& req, Response& res, Adaptor&& adaptor) + { + router.handleUpgrade(req, res, std::move(adaptor)); + } + + void handle(Request& req, Response& res) + { + router.handle(req, res); + } + + DynamicRule& routeDynamic(std::string&& rule) + { + return router.newRuleDynamic(rule); + } + + template auto& route(std::string&& rule) + { + return router.newRuleTagged(std::move(rule)); + } + + self_t& socket(int existing_socket) + { + socketFd = existing_socket; + return *this; + } + + self_t& port(std::uint16_t port) + { + portUint = port; + return *this; + } + + self_t& bindaddr(std::string bindaddr) + { + bindaddrStr = bindaddr; + return *this; + } + + void validate() + { + router.validate(); + } + + void run() + { + validate(); +#ifdef BMCWEB_ENABLE_SSL + if (-1 == socketFd) + { + sslServer = std::move(std::make_unique( + this, bindaddrStr, portUint, sslContext, &middlewares, io)); + } + else + { + sslServer = std::move(std::make_unique( + this, socketFd, sslContext, &middlewares, io)); + } + sslServer->setTickFunction(tickInterval, tickFunction); + sslServer->run(); + +#else + + if (-1 == socketFd) + { + server = std::move(std::make_unique( + this, bindaddrStr, portUint, nullptr, &middlewares, io)); + } + else + { + server = std::move(std::make_unique( + this, socketFd, nullptr, &middlewares, io)); + } + server->setTickFunction(tickInterval, tickFunction); + server->run(); + +#endif + } + + void stop() + { + io->stop(); + } + + void debugPrint() + { + BMCWEB_LOG_DEBUG << "Routing:"; + router.debugPrint(); + } + + std::vector getRoutes() + { + const std::string root(""); + return router.getRoutes(root); + } + std::vector getRoutes(const std::string& parent) + { + return router.getRoutes(parent); + } + +#ifdef BMCWEB_ENABLE_SSL + self_t& sslFile(const std::string& crt_filename, + const std::string& key_filename) + { + sslContext = std::make_shared( + boost::asio::ssl::context::tls_server); + sslContext->set_verify_mode(boost::asio::ssl::verify_peer); + sslContext->use_certificate_file(crt_filename, ssl_context_t::pem); + sslContext->use_private_key_file(key_filename, ssl_context_t::pem); + sslContext->set_options(boost::asio::ssl::context::default_workarounds | + boost::asio::ssl::context::no_sslv2 | + boost::asio::ssl::context::no_sslv3 | + boost::asio::ssl::context::no_tlsv1 | + boost::asio::ssl::context::no_tlsv1_1); + return *this; + } + + self_t& sslFile(const std::string& pem_filename) + { + sslContext = std::make_shared( + boost::asio::ssl::context::tls_server); + sslContext->set_verify_mode(boost::asio::ssl::verify_peer); + sslContext->load_verify_file(pem_filename); + sslContext->set_options(boost::asio::ssl::context::default_workarounds | + boost::asio::ssl::context::no_sslv2 | + boost::asio::ssl::context::no_sslv3 | + boost::asio::ssl::context::no_tlsv1 | + boost::asio::ssl::context::no_tlsv1_1); + return *this; + } + + self_t& ssl(std::shared_ptr&& ctx) + { + sslContext = std::move(ctx); + BMCWEB_LOG_INFO << "app::ssl context use_count=" + << sslContext.use_count(); + return *this; + } + + std::shared_ptr sslContext = nullptr; + +#else + template self_t& ssl_file(T&&, Remain&&...) + { + // We can't call .ssl() member function unless BMCWEB_ENABLE_SSL is + // defined. + static_assert( + // make static_assert dependent to T; always false + std::is_base_of::value, + "Define BMCWEB_ENABLE_SSL to enable ssl support."); + return *this; + } + + template self_t& ssl(T&&) + { + // We can't call .ssl() member function unless BMCWEB_ENABLE_SSL is + // defined. + static_assert( + // make static_assert dependent to T; always false + std::is_base_of::value, + "Define BMCWEB_ENABLE_SSL to enable ssl support."); + return *this; + } +#endif + + // middleware + using context_t = detail::Context; + template typename T::Context& getContext(const Request& req) + { + static_assert(black_magic::Contains::value, + "App doesn't have the specified middleware type."); + auto& ctx = *reinterpret_cast(req.middlewareContext); + return ctx.template get(); + } + + template T& getMiddleware() + { + return utility::getElementByType(middlewares); + } + + template self_t& tick(Duration d, Func f) + { + tickInterval = std::chrono::duration_cast(d); + tickFunction = f; + return *this; + } + + private: + std::shared_ptr io; +#ifdef BMCWEB_ENABLE_SSL + uint16_t portUint = 443; +#else + uint16_t portUint = 80; +#endif + std::string bindaddrStr = "::"; + int socketFd = -1; + Router router; + + std::chrono::milliseconds tickInterval{}; + std::function tickFunction; + + std::tuple middlewares; + +#ifdef BMCWEB_ENABLE_SSL + std::unique_ptr sslServer; +#else + std::unique_ptr server; +#endif +}; +template using App = Crow; +using SimpleApp = Crow<>; +} // namespace crow diff --git a/Contrib-Inspur/bmcweb/crow/include/crow/common.h b/Contrib-Inspur/bmcweb/http/common.h similarity index 97% rename from Contrib-Inspur/bmcweb/crow/include/crow/common.h rename to Contrib-Inspur/bmcweb/http/common.h index 428da7d5..77c20740 100644 --- a/Contrib-Inspur/bmcweb/crow/include/crow/common.h +++ b/Contrib-Inspur/bmcweb/http/common.h @@ -6,7 +6,7 @@ #include #include -#include "crow/utility.h" +#include "utility.h" namespace crow { @@ -33,8 +33,9 @@ inline std::string methodName(boost::beast::http::verb method) return "TRACE"; case boost::beast::http::verb::patch: return "PATCH"; + default: + return "invalid"; } - return "invalid"; } enum class ParamType @@ -124,4 +125,4 @@ constexpr boost::beast::http::verb operator"" _method(const char* str, crow::black_magic::isEquP(str, "PURGE", 5) ? verb::purge : throw std::runtime_error("invalid http method"); // clang-format on -} \ No newline at end of file +} diff --git a/Contrib-Inspur/bmcweb/http/http_connection.h b/Contrib-Inspur/bmcweb/http/http_connection.h new file mode 100644 index 00000000..5155779c --- /dev/null +++ b/Contrib-Inspur/bmcweb/http/http_connection.h @@ -0,0 +1,902 @@ +#pragma once +#include "config.h" + +#include "http_utility.hpp" + +#include +#include +#include +#include +#include +#include +#include +#if BOOST_VERSION >= 107000 +#include +#else +#include +#endif +#include +#include +#include +#include + +#include "http_response.h" +#include "logging.h" +#include "middleware_context.h" +#include "timer_queue.h" +#include "utility.h" + +namespace crow +{ + +inline void prettyPrintJson(crow::Response& res) +{ + std::string value = res.jsonValue.dump(4, ' ', true); + utility::escapeHtml(value); + utility::convertToLinks(value); + res.body() = "\n" + "\n" + "Redfish API\n" + "\n" + "" + "" + "\n" + "\n" + "
\n" + "\"redfish\"\n" + "
\n" + "
\n"
+                 "" +
+                 value +
+                 "\n"
+                 "
\n" + "
\n" + "\n" + "\n"; + res.addHeader("Content-Type", "text/html;charset=UTF-8"); +} + +using namespace boost; +using tcp = asio::ip::tcp; + +namespace detail +{ +template struct CheckBeforeHandleArity3Const +{ + template + struct Get + { + }; +}; + +template struct CheckBeforeHandleArity3 +{ + template + struct Get + { + }; +}; + +template struct CheckAfterHandleArity3Const +{ + template + struct Get + { + }; +}; + +template struct CheckAfterHandleArity3 +{ + template + struct Get + { + }; +}; + +template struct IsBeforeHandleArity3Impl +{ + template + static std::true_type + f(typename CheckBeforeHandleArity3Const::template Get*); + + template + static std::true_type + f(typename CheckBeforeHandleArity3::template Get*); + + template static std::false_type f(...); + + public: + static constexpr bool value = decltype(f(nullptr))::value; +}; + +template struct IsAfterHandleArity3Impl +{ + template + static std::true_type + f(typename CheckAfterHandleArity3Const::template Get*); + + template + static std::true_type + f(typename CheckAfterHandleArity3::template Get*); + + template static std::false_type f(...); + + public: + static constexpr bool value = decltype(f(nullptr))::value; +}; + +template +typename std::enable_if::value>::type + beforeHandlerCall(MW& mw, Request& req, Response& res, Context& ctx, + ParentContext& /*parent_ctx*/) +{ + mw.beforeHandle(req, res, ctx.template get(), ctx); +} + +template +typename std::enable_if::value>::type + beforeHandlerCall(MW& mw, Request& req, Response& res, Context& ctx, + ParentContext& /*parent_ctx*/) +{ + mw.beforeHandle(req, res, ctx.template get()); +} + +template +typename std::enable_if::value>::type + afterHandlerCall(MW& mw, Request& req, Response& res, Context& ctx, + ParentContext& /*parent_ctx*/) +{ + mw.afterHandle(req, res, ctx.template get(), ctx); +} + +template +typename std::enable_if::value>::type + afterHandlerCall(MW& mw, Request& req, Response& res, Context& ctx, + ParentContext& /*parent_ctx*/) +{ + mw.afterHandle(req, res, ctx.template get()); +} + +template +bool middlewareCallHelper(Container& middlewares, Request& req, Response& res, + Context& ctx) +{ + using parent_context_t = typename Context::template partial; + beforeHandlerCall( + std::get(middlewares), req, res, ctx, + static_cast(ctx)); + + if (res.isCompleted()) + { + afterHandlerCall( + std::get(middlewares), req, res, ctx, + static_cast(ctx)); + return true; + } + + if (middlewareCallHelper( + middlewares, req, res, ctx)) + { + afterHandlerCall( + std::get(middlewares), req, res, ctx, + static_cast(ctx)); + return true; + } + + return false; +} + +template +bool middlewareCallHelper(Container& /*middlewares*/, Request& /*req*/, + Response& /*res*/, Context& /*ctx*/) +{ + return false; +} + +template +typename std::enable_if<(N < 0)>::type + afterHandlersCallHelper(Container& /*middlewares*/, Context& /*Context*/, + Request& /*req*/, Response& /*res*/) +{ +} + +template +typename std::enable_if<(N == 0)>::type + afterHandlersCallHelper(Container& middlewares, Context& ctx, Request& req, + Response& res) +{ + using parent_context_t = typename Context::template partial; + using CurrentMW = typename std::tuple_element< + N, typename std::remove_reference::type>::type; + afterHandlerCall( + std::get(middlewares), req, res, ctx, + static_cast(ctx)); +} + +template +typename std::enable_if<(N > 0)>::type + afterHandlersCallHelper(Container& middlewares, Context& ctx, Request& req, + Response& res) +{ + using parent_context_t = typename Context::template partial; + using CurrentMW = typename std::tuple_element< + N, typename std::remove_reference::type>::type; + afterHandlerCall( + std::get(middlewares), req, res, ctx, + static_cast(ctx)); + afterHandlersCallHelper(middlewares, ctx, req, + res); +} +} // namespace detail + +#ifdef BMCWEB_ENABLE_DEBUG +static std::atomic connectionCount; +#endif + +// request body limit size set by the BMCWEB_HTTP_REQ_BODY_LIMIT_MB option +constexpr unsigned int httpReqBodyLimit = + 1024 * 1024 * BMCWEB_HTTP_REQ_BODY_LIMIT_MB; + +template +class Connection : public std::enable_shared_from_this< + Connection> +{ + public: + Connection(boost::asio::io_context& ioService, Handler* handlerIn, + const std::string& ServerNameIn, + std::tuple* middlewaresIn, + std::function& get_cached_date_str_f, + detail::TimerQueue& timerQueueIn, Adaptor adaptorIn) : + adaptor(std::move(adaptorIn)), + handler(handlerIn), serverName(ServerNameIn), + middlewares(middlewaresIn), getCachedDateStr(get_cached_date_str_f), + timerQueue(timerQueueIn) + { + parser.emplace(std::piecewise_construct, std::make_tuple()); + // Temporarily set by the BMCWEB_HTTP_REQ_BODY_LIMIT_MB variable; Need + // to modify uploading/authentication mechanism to a better method that + // disallows a DOS attack based on a large file size. + parser->body_limit(httpReqBodyLimit); + req.emplace(parser->get()); + +#ifdef BMCWEB_ENABLE_MUTUAL_TLS_AUTHENTICATION + auto ca_available = !std::filesystem::is_empty( + std::filesystem::path(ensuressl::trustStorePath)); + if (ca_available && crow::persistent_data::SessionStore::getInstance() + .getAuthMethodsConfig() + .tls) + { + adaptor.set_verify_mode(boost::asio::ssl::verify_peer); + SSL_set_session_id_context( + adaptor.native_handle(), + reinterpret_cast(serverName.c_str()), + static_cast(serverName.length())); + BMCWEB_LOG_DEBUG << this << " TLS is enabled on this connection."; + } + + adaptor.set_verify_callback([this]( + bool preverified, + boost::asio::ssl::verify_context& ctx) { + // do nothing if TLS is disabled + if (!crow::persistent_data::SessionStore::getInstance() + .getAuthMethodsConfig() + .tls) + { + BMCWEB_LOG_DEBUG << this << " TLS auth_config is disabled"; + return true; + } + + // We always return true to allow full auth flow + if (!preverified) + { + BMCWEB_LOG_DEBUG << this << " TLS preverification failed."; + return true; + } + + X509_STORE_CTX* cts = ctx.native_handle(); + if (cts == nullptr) + { + BMCWEB_LOG_DEBUG << this << " Cannot get native TLS handle."; + return true; + } + + // Get certificate + X509* peerCert = + X509_STORE_CTX_get_current_cert(ctx.native_handle()); + if (peerCert == nullptr) + { + BMCWEB_LOG_DEBUG << this + << " Cannot get current TLS certificate."; + return true; + } + + // Check if certificate is OK + int error = X509_STORE_CTX_get_error(cts); + if (error != X509_V_OK) + { + BMCWEB_LOG_INFO << this << " Last TLS error is: " << error; + return true; + } + // Check that we have reached final certificate in chain + int32_t depth = X509_STORE_CTX_get_error_depth(cts); + if (depth != 0) + + { + BMCWEB_LOG_DEBUG + << this << " Certificate verification in progress (depth " + << depth << "), waiting to reach final depth"; + return true; + } + + BMCWEB_LOG_DEBUG << this + << " Certificate verification of final depth"; + + // Verify KeyUsage + bool isKeyUsageDigitalSignature = false; + bool isKeyUsageKeyAgreement = false; + + ASN1_BIT_STRING* usage = static_cast( + X509_get_ext_d2i(peerCert, NID_key_usage, NULL, NULL)); + + if (usage == nullptr) + { + BMCWEB_LOG_DEBUG << this << " TLS usage is null"; + return true; + } + + for (int i = 0; i < usage->length; i++) + { + if (KU_DIGITAL_SIGNATURE & usage->data[i]) + { + isKeyUsageDigitalSignature = true; + } + if (KU_KEY_AGREEMENT & usage->data[i]) + { + isKeyUsageKeyAgreement = true; + } + } + + if (!isKeyUsageDigitalSignature || !isKeyUsageKeyAgreement) + { + BMCWEB_LOG_DEBUG << this + << " Certificate ExtendedKeyUsage does " + "not allow provided certificate to " + "be used for user authentication"; + return true; + } + + // Determine that ExtendedKeyUsage includes Client Auth + + stack_st_ASN1_OBJECT* extUsage = static_cast( + X509_get_ext_d2i(peerCert, NID_ext_key_usage, NULL, NULL)); + + if (extUsage == nullptr) + { + BMCWEB_LOG_DEBUG << this << " TLS extUsage is null"; + return true; + } + + bool isExKeyUsageClientAuth = false; + for (int i = 0; i < sk_ASN1_OBJECT_num(extUsage); i++) + { + if (NID_client_auth == + OBJ_obj2nid(sk_ASN1_OBJECT_value(extUsage, i))) + { + isExKeyUsageClientAuth = true; + break; + } + } + + // Certificate has to have proper key usages set + if (!isExKeyUsageClientAuth) + { + BMCWEB_LOG_DEBUG << this + << " Certificate ExtendedKeyUsage does " + "not allow provided certificate to " + "be used for user authentication"; + return true; + } + std::string sslUser; + // Extract username contained in CommonName + sslUser.resize(256, '\0'); + + int status = X509_NAME_get_text_by_NID( + X509_get_subject_name(peerCert), NID_commonName, sslUser.data(), + static_cast(sslUser.size())); + + if (status == -1) + { + BMCWEB_LOG_DEBUG + << this << " TLS cannot get username to create session"; + return true; + } + + size_t lastChar = sslUser.find('\0'); + if (lastChar == std::string::npos || lastChar == 0) + { + BMCWEB_LOG_DEBUG << this << " Invalid TLS user name"; + return true; + } + sslUser.resize(lastChar); + + session = persistent_data::SessionStore::getInstance() + .generateUserSession( + sslUser, + crow::persistent_data::PersistenceType::TIMEOUT); + if (auto sp = session.lock()) + { + BMCWEB_LOG_DEBUG << this + << " Generating TLS session: " << sp->uniqueId; + } + return true; + }); +#endif // BMCWEB_ENABLE_MUTUAL_TLS_AUTHENTICATION + +#ifdef BMCWEB_ENABLE_DEBUG + connectionCount++; + BMCWEB_LOG_DEBUG << this << " Connection open, total " + << connectionCount; +#endif + } + + ~Connection() + { + res.completeRequestHandler = nullptr; + cancelDeadlineTimer(); +#ifdef BMCWEB_ENABLE_DEBUG + connectionCount--; + BMCWEB_LOG_DEBUG << this << " Connection closed, total " + << connectionCount; +#endif + } + + Adaptor& socket() + { + return adaptor; + } + + void start() + { + + startDeadline(); + // TODO(ed) Abstract this to a more clever class with the idea of an + // asynchronous "start" + if constexpr (std::is_same_v>) + { + adaptor.async_handshake(boost::asio::ssl::stream_base::server, + [this, self(shared_from_this())]( + const boost::system::error_code& ec) { + if (ec) + { + return; + } + doReadHeaders(); + }); + } + else + { + doReadHeaders(); + } + } + + void handle() + { + cancelDeadlineTimer(); + bool isInvalidRequest = false; + + // Check for HTTP version 1.1. + if (req->version() == 11) + { + if (req->getHeaderValue(boost::beast::http::field::host).empty()) + { + isInvalidRequest = true; + res.result(boost::beast::http::status::bad_request); + } + } + + BMCWEB_LOG_INFO << "Request: " + << " " << this << " HTTP/" << req->version() / 10 << "." + << req->version() % 10 << ' ' << req->methodString() + << " " << req->target(); + + needToCallAfterHandlers = false; + + if (!isInvalidRequest) + { + res.completeRequestHandler = [] {}; + res.isAliveHelper = [this]() -> bool { return isAlive(); }; + + ctx = detail::Context(); + req->middlewareContext = static_cast(&ctx); + req->ioService = static_castioService)>( + &adaptor.get_executor().context()); + +#ifdef BMCWEB_ENABLE_MUTUAL_TLS_AUTHENTICATION + if (auto sp = session.lock()) + { + // set cookie only if this is req from the browser. + if (req->getHeaderValue("User-Agent").empty()) + { + BMCWEB_LOG_DEBUG << this << " TLS session: " << sp->uniqueId + << " will be used for this request."; + req->session = sp; + } + else + { + std::string_view cookieValue = + req->getHeaderValue("Cookie"); + if (cookieValue.empty() || + cookieValue.find("SESSION=") == std::string::npos) + { + res.addHeader("Set-Cookie", + "XSRF-TOKEN=" + sp->csrfToken + + "; Secure\r\nSet-Cookie: SESSION=" + + sp->sessionToken + + "; Secure; HttpOnly\r\nSet-Cookie: " + "IsAuthenticated=true; Secure"); + BMCWEB_LOG_DEBUG + << this << " TLS session: " << sp->uniqueId + << " with cookie will be used for this request."; + req->session = sp; + } + } + } +#endif // BMCWEB_ENABLE_MUTUAL_TLS_AUTHENTICATION + + detail::middlewareCallHelper< + 0U, decltype(ctx), decltype(*middlewares), Middlewares...>( + *middlewares, *req, res, ctx); + + if (!res.completed) + { + needToCallAfterHandlers = true; + res.completeRequestHandler = [self(shared_from_this())] { + self->completeRequest(); + }; + if (req->isUpgrade() && + boost::iequals( + req->getHeaderValue(boost::beast::http::field::upgrade), + "websocket")) + { + handler->handleUpgrade(*req, res, std::move(adaptor)); + // delete lambda with self shared_ptr + // to enable connection destruction + res.completeRequestHandler = nullptr; + return; + } + handler->handle(*req, res); + } + else + { + completeRequest(); + } + } + else + { + completeRequest(); + } + } + + bool isAlive() + { + + if constexpr (std::is_same_v>) + { + return adaptor.next_layer().is_open(); + } + else + { + return adaptor.is_open(); + } + } + void close() + { + if constexpr (std::is_same_v>) + { + adaptor.next_layer().close(); +#ifdef BMCWEB_ENABLE_MUTUAL_TLS_AUTHENTICATION + if (auto sp = session.lock()) + { + BMCWEB_LOG_DEBUG << this + << " Removing TLS session: " << sp->uniqueId; + persistent_data::SessionStore::getInstance().removeSession(sp); + } +#endif // BMCWEB_ENABLE_MUTUAL_TLS_AUTHENTICATION + } + else + { + adaptor.close(); + } + } + + void completeRequest() + { + BMCWEB_LOG_INFO << "Response: " << this << ' ' << req->url << ' ' + << res.resultInt() << " keepalive=" << req->keepAlive(); + + if (needToCallAfterHandlers) + { + needToCallAfterHandlers = false; + + // call all afterHandler of middlewares + detail::afterHandlersCallHelper( + *middlewares, ctx, *req, res); + } + + if (!isAlive()) + { + // BMCWEB_LOG_DEBUG << this << " delete (socket is closed) " << + // isReading + // << ' ' << isWriting; + // delete this; + + // delete lambda with self shared_ptr + // to enable connection destruction + res.completeRequestHandler = nullptr; + return; + } + if (res.body().empty() && !res.jsonValue.empty()) + { + if (http_helpers::requestPrefersHtml(*req)) + { + prettyPrintJson(res); + } + else + { + res.jsonMode(); + res.body() = res.jsonValue.dump(2, ' ', true); + } + } + + if (res.resultInt() >= 400 && res.body().empty()) + { + res.body() = std::string(res.reason()); + } + + if (res.result() == boost::beast::http::status::no_content) + { + // Boost beast throws if content is provided on a no-content + // response. Ideally, this would never happen, but in the case that + // it does, we don't want to throw. + BMCWEB_LOG_CRITICAL + << this << " Response content provided but code was no-content"; + res.body().clear(); + } + + res.addHeader(boost::beast::http::field::server, serverName); + res.addHeader(boost::beast::http::field::date, getCachedDateStr()); + + res.keepAlive(req->keepAlive()); + + doWrite(); + + // delete lambda with self shared_ptr + // to enable connection destruction + res.completeRequestHandler = nullptr; + } + + private: + void doReadHeaders() + { + BMCWEB_LOG_DEBUG << this << " doReadHeaders"; + + // Clean up any previous Connection. + boost::beast::http::async_read_header( + adaptor, buffer, *parser, + [this, + self(shared_from_this())](const boost::system::error_code& ec, + std::size_t bytes_transferred) { + BMCWEB_LOG_ERROR << this << " async_read_header " + << bytes_transferred << " Bytes"; + bool errorWhileReading = false; + if (ec) + { + errorWhileReading = true; + BMCWEB_LOG_ERROR + << this << " Error while reading: " << ec.message(); + } + else + { + // if the adaptor isn't open anymore, and wasn't handed to a + // websocket, treat as an error + if (!isAlive() && !req->isUpgrade()) + { + errorWhileReading = true; + } + } + + if (errorWhileReading) + { + cancelDeadlineTimer(); + close(); + BMCWEB_LOG_DEBUG << this << " from read(1)"; + return; + } + + // Compute the url parameters for the request + req->url = req->target(); + std::size_t index = req->url.find("?"); + if (index != std::string_view::npos) + { + req->url = req->url.substr(0, index); + } + req->urlParams = QueryString(std::string(req->target())); + doRead(); + }); + } + + void doRead() + { + BMCWEB_LOG_DEBUG << this << " doRead"; + + boost::beast::http::async_read( + adaptor, buffer, *parser, + [this, + self(shared_from_this())](const boost::system::error_code& ec, + std::size_t bytes_transferred) { + BMCWEB_LOG_DEBUG << this << " async_read " << bytes_transferred + << " Bytes"; + + bool errorWhileReading = false; + if (ec) + { + BMCWEB_LOG_ERROR + << this << " Error while reading: " << ec.message(); + errorWhileReading = true; + } + else + { + if (!isAlive()) + { + errorWhileReading = true; + } + } + if (errorWhileReading) + { + cancelDeadlineTimer(); + close(); + BMCWEB_LOG_DEBUG << this << " from read(1)"; + return; + } + handle(); + }); + } + + void doWrite() + { + BMCWEB_LOG_DEBUG << this << " doWrite"; + res.preparePayload(); + serializer.emplace(*res.stringResponse); + boost::beast::http::async_write( + adaptor, *serializer, + [this, + self(shared_from_this())](const boost::system::error_code& ec, + std::size_t bytes_transferred) { + BMCWEB_LOG_DEBUG << this << " async_write " << bytes_transferred + << " bytes"; + + if (ec) + { + BMCWEB_LOG_DEBUG << this << " from write(2)"; + return; + } + if (!res.keepAlive()) + { + close(); + BMCWEB_LOG_DEBUG << this << " from write(1)"; + return; + } + + serializer.reset(); + BMCWEB_LOG_DEBUG << this << " Clearing response"; + res.clear(); + parser.emplace(std::piecewise_construct, std::make_tuple()); + parser->body_limit(httpReqBodyLimit); // reset body limit for + // newly created parser + buffer.consume(buffer.size()); + + req.emplace(parser->get()); + doReadHeaders(); + }); + } + + void cancelDeadlineTimer() + { + if (timerCancelKey) + { + BMCWEB_LOG_DEBUG << this << " timer cancelled: " << &timerQueue + << ' ' << *timerCancelKey; + timerQueue.cancel(*timerCancelKey); + timerCancelKey.reset(); + } + } + + void startDeadline() + { + cancelDeadlineTimer(); + + timerCancelKey = + timerQueue.add([this, self(shared_from_this()), + readCount{parser->get().body().size()}] { + // Mark timer as not active to avoid canceling it during + // Connection destructor which leads to double free issue + timerCancelKey.reset(); + if (!isAlive()) + { + return; + } + + // Restart timer if read is in progress. + // With threshold can be used to drop slow connections + // to protect against slow-rate DoS attack + if (parser->get().body().size() > readCount) + { + BMCWEB_LOG_DEBUG << this + << " restart timer - read in progress"; + startDeadline(); + return; + } + + close(); + }); + BMCWEB_LOG_DEBUG << this << " timer added: " << &timerQueue << ' ' + << *timerCancelKey; + } + + private: + Adaptor adaptor; + Handler* handler; + + // Making this a std::optional allows it to be efficiently destroyed and + // re-created on Connection reset + std::optional< + boost::beast::http::request_parser> + parser; + + boost::beast::flat_static_buffer<8192> buffer; + + std::optional> + serializer; + + std::optional req; + crow::Response res; +#ifdef BMCWEB_ENABLE_MUTUAL_TLS_AUTHENTICATION + std::weak_ptr session; +#endif // BMCWEB_ENABLE_MUTUAL_TLS_AUTHENTICATION + + const std::string& serverName; + + std::optional timerCancelKey; + + bool needToCallAfterHandlers{}; + bool needToStartReadAfterComplete{}; + + std::tuple* middlewares; + detail::Context ctx; + + std::function& getCachedDateStr; + detail::TimerQueue& timerQueue; + + using std::enable_shared_from_this< + Connection>::shared_from_this; +}; +} // namespace crow diff --git a/Contrib-Inspur/bmcweb/http/http_request.h b/Contrib-Inspur/bmcweb/http/http_request.h new file mode 100644 index 00000000..ff09bf10 --- /dev/null +++ b/Contrib-Inspur/bmcweb/http/http_request.h @@ -0,0 +1,79 @@ +#pragma once + +#include "sessions.hpp" + +#include +#include +#include + +#include "common.h" +#include "query_string.h" + +namespace crow +{ + +struct Request +{ + boost::beast::http::request& req; + std::string_view url{}; + QueryString urlParams{}; + bool isSecure{false}; + + const std::string& body; + + void* middlewareContext{}; + boost::asio::io_context* ioService{}; + + std::shared_ptr session; + + std::string userRole{}; + + Request( + boost::beast::http::request& reqIn) : + req(reqIn), + body(reqIn.body()) + { + } + + boost::beast::http::verb method() const + { + return req.method(); + } + + const std::string_view getHeaderValue(std::string_view key) const + { + return req[key]; + } + + const std::string_view getHeaderValue(boost::beast::http::field key) const + { + return req[key]; + } + + const std::string_view methodString() const + { + return req.method_string(); + } + + const std::string_view target() const + { + return req.target(); + } + + unsigned version() + { + return req.version(); + } + + bool isUpgrade() + { + return boost::beast::websocket::is_upgrade(req); + } + + bool keepAlive() + { + return req.keep_alive(); + } +}; + +} // namespace crow diff --git a/Contrib-Inspur/bmcweb/crow/include/crow/http_response.h b/Contrib-Inspur/bmcweb/http/http_response.h similarity index 79% rename from Contrib-Inspur/bmcweb/crow/include/crow/http_response.h rename to Contrib-Inspur/bmcweb/http/http_response.h index 1deae34f..6d7ca265 100644 --- a/Contrib-Inspur/bmcweb/crow/include/crow/http_response.h +++ b/Contrib-Inspur/bmcweb/http/http_response.h @@ -4,8 +4,8 @@ #include #include -#include "crow/http_request.h" -#include "crow/logging.h" +#include "http_request.h" +#include "logging.h" namespace crow { @@ -24,12 +24,12 @@ struct Response nlohmann::json jsonValue; - void addHeader(const boost::string_view key, const boost::string_view value) + void addHeader(const std::string_view key, const std::string_view value) { stringResponse->set(key, value); } - void addHeader(boost::beast::http::field key, boost::string_view value) + void addHeader(boost::beast::http::field key, std::string_view value) { stringResponse->set(key, value); } @@ -38,24 +38,6 @@ struct Response { } - explicit Response(boost::beast::http::status code) : - stringResponse(response_type{}) - { - } - - explicit Response(boost::string_view body_) : - stringResponse(response_type{}) - { - stringResponse->body() = std::string(body_); - } - - Response(boost::beast::http::status code, boost::string_view s) : - stringResponse(response_type{}) - { - stringResponse->result(code); - stringResponse->body() = std::string(s); - } - Response(Response&& r) { BMCWEB_LOG_DEBUG << "Moving response containers"; @@ -94,7 +76,7 @@ struct Response return stringResponse->result_int(); } - boost::string_view reason() + std::string_view reason() { return stringResponse->reason(); } @@ -132,7 +114,7 @@ struct Response completed = false; } - void write(boost::string_view body_part) + void write(std::string_view body_part) { stringResponse->body() += std::string(body_part); } @@ -153,7 +135,7 @@ struct Response } } - void end(boost::string_view body_part) + void end(std::string_view body_part) { write(body_part); end(); diff --git a/Contrib-Inspur/bmcweb/http/http_server.h b/Contrib-Inspur/bmcweb/http/http_server.h new file mode 100644 index 00000000..6e63cbd4 --- /dev/null +++ b/Contrib-Inspur/bmcweb/http/http_server.h @@ -0,0 +1,296 @@ +#pragma once + +#include +#include +#include +#include +#include +#include +#if BOOST_VERSION >= 107000 +#include +#else +#include +#endif + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "http_connection.h" +#include "logging.h" +#include "timer_queue.h" + +namespace crow +{ +using namespace boost; +using tcp = asio::ip::tcp; + +template +class Server +{ + public: + Server(Handler* handler, std::unique_ptr&& acceptor, + std::shared_ptr adaptor_ctx, + std::tuple* middlewares = nullptr, + std::shared_ptr io = + std::make_shared()) : + ioService(std::move(io)), + acceptor(std::move(acceptor)), + signals(*ioService, SIGINT, SIGTERM, SIGHUP), tickTimer(*ioService), + timer(*ioService), handler(handler), middlewares(middlewares), + adaptorCtx(adaptor_ctx) + { + } + + Server(Handler* handler, const std::string& bindaddr, uint16_t port, + std::shared_ptr adaptor_ctx, + std::tuple* middlewares = nullptr, + std::shared_ptr io = + std::make_shared()) : + Server(handler, + std::make_unique( + *io, tcp::endpoint(boost::asio::ip::make_address(bindaddr), + port)), + adaptor_ctx, middlewares, io) + { + } + + Server(Handler* handler, int existing_socket, + std::shared_ptr adaptor_ctx, + std::tuple* middlewares = nullptr, + std::shared_ptr io = + std::make_shared()) : + Server(handler, + std::make_unique(*io, boost::asio::ip::tcp::v6(), + existing_socket), + adaptor_ctx, middlewares, io) + { + } + + void setTickFunction(std::chrono::milliseconds d, std::function f) + { + tickInterval = d; + tickFunction = f; + } + + void onTick() + { + tickFunction(); + tickTimer.expires_after( + std::chrono::milliseconds(tickInterval.count())); + tickTimer.async_wait([this](const boost::system::error_code& ec) { + if (ec) + { + return; + } + onTick(); + }); + } + + void updateDateStr() + { + time_t lastTimeT = time(nullptr); + tm myTm{}; + + gmtime_r(&lastTimeT, &myTm); + + dateStr.resize(100); + size_t dateStrSz = + strftime(&dateStr[0], 99, "%a, %d %b %Y %H:%M:%S GMT", &myTm); + dateStr.resize(dateStrSz); + }; + + void run() + { + loadCertificate(); + updateDateStr(); + + getCachedDateStr = [this]() -> std::string { + static std::chrono::time_point + lastDateUpdate = std::chrono::steady_clock::now(); + if (std::chrono::steady_clock::now() - lastDateUpdate >= + std::chrono::seconds(10)) + { + lastDateUpdate = std::chrono::steady_clock::now(); + updateDateStr(); + } + return this->dateStr; + }; + + timer.expires_after(std::chrono::seconds(1)); + + timerHandler = [this](const boost::system::error_code& ec) { + if (ec) + { + return; + } + timerQueue.process(); + timer.expires_after(std::chrono::seconds(1)); + timer.async_wait(timerHandler); + }; + timer.async_wait(timerHandler); + + if (tickFunction && tickInterval.count() > 0) + { + tickTimer.expires_after( + std::chrono::milliseconds(tickInterval.count())); + tickTimer.async_wait([this](const boost::system::error_code& ec) { + if (ec) + { + return; + } + onTick(); + }); + } + + BMCWEB_LOG_INFO << serverName << " server is running, local endpoint " + << acceptor->local_endpoint(); + startAsyncWaitForSignal(); + doAccept(); + } + + void loadCertificate() + { +#ifdef BMCWEB_ENABLE_SSL + namespace fs = std::filesystem; + // Cleanup older certificate file existing in the system + fs::path oldCert = "/home/root/server.pem"; + if (fs::exists(oldCert)) + { + fs::remove("/home/root/server.pem"); + } + fs::path certPath = "/etc/ssl/certs/https/"; + // if path does not exist create the path so that + // self signed certificate can be created in the + // path + if (!fs::exists(certPath)) + { + fs::create_directories(certPath); + } + fs::path certFile = certPath / "server.pem"; + BMCWEB_LOG_INFO << "Building SSL Context file=" << certFile; + std::string sslPemFile(certFile); + ensuressl::ensureOpensslKeyPresentAndValid(sslPemFile); + std::shared_ptr sslContext = + ensuressl::getSslContext(sslPemFile); + adaptorCtx = sslContext; + handler->ssl(std::move(sslContext)); +#endif + } + + void startAsyncWaitForSignal() + { + signals.async_wait([this](const boost::system::error_code& ec, + int signalNo) { + if (ec) + { + BMCWEB_LOG_INFO << "Error in signal handler" << ec.message(); + } + else + { + if (signalNo == SIGHUP) + { + BMCWEB_LOG_INFO << "Receivied reload signal"; + loadCertificate(); + boost::system::error_code ec; + acceptor->cancel(ec); + if (ec) + { + BMCWEB_LOG_ERROR + << "Error while canceling async operations:" + << ec.message(); + } + this->startAsyncWaitForSignal(); + } + else + { + stop(); + } + } + }); + } + + void stop() + { + ioService->stop(); + } + + void doAccept() + { + std::optional adaptorTemp; + if constexpr (std::is_same>::value) + { + adaptorTemp = Adaptor(*ioService, *adaptorCtx); + auto p = + std::make_shared>( + *ioService, handler, serverName, middlewares, + getCachedDateStr, timerQueue, + std::move(adaptorTemp.value())); + + acceptor->async_accept(p->socket().next_layer(), + [this, p](boost::system::error_code ec) { + if (!ec) + { + boost::asio::post( + *this->ioService, + [p] { p->start(); }); + } + doAccept(); + }); + } + else + { + adaptorTemp = Adaptor(*ioService); + auto p = + std::make_shared>( + *ioService, handler, serverName, middlewares, + getCachedDateStr, timerQueue, + std::move(adaptorTemp.value())); + + acceptor->async_accept( + p->socket(), [this, p](boost::system::error_code ec) { + if (!ec) + { + boost::asio::post(*this->ioService, + [p] { p->start(); }); + } + doAccept(); + }); + } + } + + private: + std::shared_ptr ioService; + detail::TimerQueue timerQueue; + std::function getCachedDateStr; + std::unique_ptr acceptor; + boost::asio::signal_set signals; + boost::asio::steady_timer tickTimer; + boost::asio::steady_timer timer; + + std::string dateStr; + + Handler* handler; + std::string serverName = "iBMC"; + + std::chrono::milliseconds tickInterval{}; + std::function tickFunction; + std::function timerHandler; + + std::tuple* middlewares; + +#ifdef BMCWEB_ENABLE_SSL + bool useSsl{false}; +#endif + std::shared_ptr adaptorCtx; +}; // namespace crow +} // namespace crow diff --git a/Contrib-Inspur/bmcweb/http/logging.h b/Contrib-Inspur/bmcweb/http/logging.h new file mode 100644 index 00000000..eb04cc19 --- /dev/null +++ b/Contrib-Inspur/bmcweb/http/logging.h @@ -0,0 +1,115 @@ +#pragma once + +#include +#include +#include +#include +#include +#include +#include + +namespace crow +{ +enum class LogLevel +{ + Debug = 0, + Info, + Warning, + Error, + Critical, +}; + +class logger +{ + private: + // + static std::string timestamp() + { + std::string date; + date.resize(32, '\0'); + time_t t = time(nullptr); + + tm myTm{}; + + gmtime_r(&t, &myTm); + + size_t sz = + strftime(date.data(), date.size(), "%Y-%m-%d %H:%M:%S", &myTm); + date.resize(sz); + return date; + } + + public: + logger(const std::string& prefix, const std::string& filename, + const size_t line, LogLevel levelIn) : + level(levelIn) + { +#ifdef BMCWEB_ENABLE_LOGGING + stringstream << "(" << timestamp() << ") [" << prefix << " " + << std::filesystem::path(filename).filename() << ":" + << line << "] "; +#endif + } + ~logger() + { + if (level >= get_current_log_level()) + { +#ifdef BMCWEB_ENABLE_LOGGING + stringstream << std::endl; + std::cerr << stringstream.str(); +#endif + } + } + + // + template logger& operator<<(T const& value) + { + if (level >= get_current_log_level()) + { +#ifdef BMCWEB_ENABLE_LOGGING + stringstream << value; +#endif + } + return *this; + } + + // + static void setLogLevel(LogLevel level) + { + getLogLevelRef() = level; + } + + static LogLevel get_current_log_level() + { + return getLogLevelRef(); + } + + private: + // + static LogLevel& getLogLevelRef() + { + static auto currentLevel = static_cast(1); + return currentLevel; + } + + // + std::ostringstream stringstream; + LogLevel level; +}; +} // namespace crow + +#define BMCWEB_LOG_CRITICAL \ + if (crow::logger::get_current_log_level() <= crow::LogLevel::Critical) \ + crow::logger("CRITICAL", __FILE__, __LINE__, crow::LogLevel::Critical) +#define BMCWEB_LOG_ERROR \ + if (crow::logger::get_current_log_level() <= crow::LogLevel::Error) \ + crow::logger("ERROR", __FILE__, __LINE__, crow::LogLevel::Error) +#define BMCWEB_LOG_WARNING \ + if (crow::logger::get_current_log_level() <= crow::LogLevel::Warning) \ + crow::logger("WARNING", __FILE__, __LINE__, crow::LogLevel::Warning) +#define BMCWEB_LOG_INFO \ + if (crow::logger::get_current_log_level() <= crow::LogLevel::Info) \ + crow::logger("INFO", __FILE__, __LINE__, crow::LogLevel::Info) +#define BMCWEB_LOG_DEBUG \ + if (crow::logger::get_current_log_level() <= crow::LogLevel::Debug) \ + crow::logger("DEBUG", __FILE__, __LINE__, crow::LogLevel::Debug) diff --git a/Contrib-Inspur/bmcweb/crow/include/crow/middleware_context.h b/Contrib-Inspur/bmcweb/http/middleware_context.h similarity index 78% rename from Contrib-Inspur/bmcweb/crow/include/crow/middleware_context.h rename to Contrib-Inspur/bmcweb/http/middleware_context.h index f109a44b..fbe1d80e 100644 --- a/Contrib-Inspur/bmcweb/crow/include/crow/middleware_context.h +++ b/Contrib-Inspur/bmcweb/http/middleware_context.h @@ -1,8 +1,8 @@ #pragma once -#include "crow/http_request.h" -#include "crow/http_response.h" -#include "crow/utility.h" +#include "http_request.h" +#include "http_response.h" +#include "utility.h" namespace crow { @@ -16,7 +16,7 @@ struct PartialContext { using parent_context = typename black_magic::PopBack< Middlewares...>::template rebind<::crow::detail::PartialContext>; - template + template using partial = typename std::conditional< N == sizeof...(Middlewares) - 1, PartialContext, typename parent_context::template partial>::type; @@ -29,10 +29,10 @@ struct PartialContext template <> struct PartialContext<> { - template using partial = PartialContext; + template using partial = PartialContext; }; -template bool middlewareCallHelper(Container& middlewares, Request& req, Response& res, Context& ctx); @@ -41,17 +41,17 @@ template struct Context : private PartialContext // struct Context : private Middlewares::context... // simple but less type-safe { - template + template friend typename std::enable_if<(N == 0)>::type afterHandlersCallHelper(Container& middlewares, Context& ctx, Request& req, Response& res); - template + template friend typename std::enable_if<(N > 0)>::type afterHandlersCallHelper(Container& middlewares, Context& ctx, Request& req, Response& res); - template + template friend bool middlewareCallHelper(Container& middlewares, Request& req, Response& res, Context& ctx); @@ -60,7 +60,7 @@ struct Context : private PartialContext return static_cast(*this); } - template + template using partial = typename PartialContext::template partial; }; diff --git a/Contrib-Inspur/bmcweb/crow/include/crow/query_string.h b/Contrib-Inspur/bmcweb/http/query_string.h similarity index 87% rename from Contrib-Inspur/bmcweb/crow/include/crow/query_string.h rename to Contrib-Inspur/bmcweb/http/query_string.h index 553960eb..1cc68fbb 100644 --- a/Contrib-Inspur/bmcweb/crow/include/crow/query_string.h +++ b/Contrib-Inspur/bmcweb/http/query_string.h @@ -19,7 +19,7 @@ int qsStrncmp(const char* s, const char* qs, size_t n); * Also decodes the value portion of the k/v pair *in-place*. In a future * enhancement it will also have a compile-time option of sorting qs_kv * alphabetically by key. */ -int qsParse(char* qs, char* qs_kv[], int qs_kv_size); +size_t qsParse(char* qs, char* qs_kv[], size_t qs_kv_size); /* Used by qs_parse to decode the value portion of a k/v pair */ int qsDecode(char* qs); @@ -55,12 +55,13 @@ char* qsScanvalue(const char* key, const char* qs, char* val, size_t val_len); inline int qsStrncmp(const char* s, const char* qs, size_t n) { int i = 0; - unsigned char u1, u2, unyb, lnyb; + char u1, u2; + char unyb, lnyb; while (n-- > 0) { - u1 = static_cast(*s++); - u2 = static_cast(*qs++); + u1 = *s++; + u2 = *qs++; if (!BMCWEB_QS_ISQSCHR(u1)) { @@ -77,11 +78,12 @@ inline int qsStrncmp(const char* s, const char* qs, size_t n) } if (u1 == '%') // easier/safer than scanf { - unyb = static_cast(*s++); - lnyb = static_cast(*s++); + unyb = static_cast(*s++); + lnyb = static_cast(*s++); if (BMCWEB_QS_ISHEX(unyb) && BMCWEB_QS_ISHEX(lnyb)) { - u1 = (BMCWEB_QS_HEX2DEC(unyb) * 16) + BMCWEB_QS_HEX2DEC(lnyb); + u1 = static_cast((BMCWEB_QS_HEX2DEC(unyb) * 16) + + BMCWEB_QS_HEX2DEC(lnyb)); } else { @@ -95,11 +97,12 @@ inline int qsStrncmp(const char* s, const char* qs, size_t n) } if (u2 == '%') // easier/safer than scanf { - unyb = static_cast(*qs++); - lnyb = static_cast(*qs++); + unyb = static_cast(*qs++); + lnyb = static_cast(*qs++); if (BMCWEB_QS_ISHEX(unyb) && BMCWEB_QS_ISHEX(lnyb)) { - u2 = (BMCWEB_QS_HEX2DEC(unyb) * 16) + BMCWEB_QS_HEX2DEC(lnyb); + u2 = static_cast((BMCWEB_QS_HEX2DEC(unyb) * 16) + + BMCWEB_QS_HEX2DEC(lnyb)); } else { @@ -127,14 +130,15 @@ inline int qsStrncmp(const char* s, const char* qs, size_t n) } } -inline int qsParse(char* qs, char* qs_kv[], int qs_kv_size) +inline size_t qsParse(char* qs, char* qs_kv[], size_t qs_kv_size) { - int i, j; + size_t i; + size_t j; char* substrPtr; for (i = 0; i < qs_kv_size; i++) { - qs_kv[i] = NULL; + qs_kv[i] = nullptr; } // find the beginning of the k/v substrings or the fragment @@ -201,8 +205,8 @@ inline int qsDecode(char* qs) qs[i] = '\0'; return i; } - qs[i] = (BMCWEB_QS_HEX2DEC(qs[j + 1]) * 16) + - BMCWEB_QS_HEX2DEC(qs[j + 2]); + qs[i] = static_cast(BMCWEB_QS_HEX2DEC(qs[j + 1] * 16) + + BMCWEB_QS_HEX2DEC(qs[j + 2])); j += 2; } else @@ -251,7 +255,7 @@ inline char* qsK2v(const char* key, char* const* qs_kv, int qs_kv_size, } #endif // _qsSORTING - return NULL; + return nullptr; } inline char* qsScanvalue(const char* key, const char* qs, char* val, @@ -261,7 +265,7 @@ inline char* qsScanvalue(const char* key, const char* qs, char* val, const char* tmp; // find the beginning of the k/v substrings - if ((tmp = strchr(qs, '?')) != NULL) + if ((tmp = strchr(qs, '?')) != nullptr) { qs = tmp + 1; } @@ -278,7 +282,7 @@ inline char* qsScanvalue(const char* key, const char* qs, char* val, if (qs[0] == '\0') { - return NULL; + return nullptr; } qs += strcspn(qs, "=&#"); @@ -307,7 +311,7 @@ namespace crow class QueryString { public: - static const int maxKeyValuePairsCount = 256; + static const size_t maxKeyValuePairsCount = 256; QueryString() = default; @@ -322,6 +326,11 @@ class QueryString QueryString& operator=(const QueryString& qs) { + if (this == &qs) + { + return *this; + } + url = qs.url; keyValuePairs.clear(); for (auto p : qs.keyValuePairs) @@ -353,7 +362,8 @@ class QueryString keyValuePairs.resize(maxKeyValuePairsCount); - int count = qsParse(&url[0], &keyValuePairs[0], maxKeyValuePairsCount); + size_t count = + qsParse(&url[0], &keyValuePairs[0], maxKeyValuePairsCount); keyValuePairs.resize(count); } @@ -380,8 +390,8 @@ class QueryString char* get(const std::string& name) const { - char* ret = - qsK2v(name.c_str(), keyValuePairs.data(), keyValuePairs.size()); + char* ret = qsK2v(name.c_str(), keyValuePairs.data(), + static_cast(keyValuePairs.size())); return ret; } @@ -392,10 +402,10 @@ class QueryString char* element = nullptr; int count = 0; - while (1) + while (true) { element = qsK2v(plus.c_str(), keyValuePairs.data(), - keyValuePairs.size(), count++); + static_cast(keyValuePairs.size()), count++); if (element == nullptr) { break; diff --git a/Contrib-Inspur/bmcweb/http/routing.h b/Contrib-Inspur/bmcweb/http/routing.h new file mode 100644 index 00000000..c2a7503f --- /dev/null +++ b/Contrib-Inspur/bmcweb/http/routing.h @@ -0,0 +1,1350 @@ +#pragma once + +#include "privileges.hpp" +#include "sessions.hpp" + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "common.h" +#include "http_request.h" +#include "http_response.h" +#include "logging.h" +#include "utility.h" +#include "websocket.h" + +namespace crow +{ + +constexpr int maxHttpVerbCount = + static_cast(boost::beast::http::verb::unlink); + +class BaseRule +{ + public: + BaseRule(std::string thisRule) : rule(std::move(thisRule)) + { + } + + virtual ~BaseRule() = default; + + virtual void validate() = 0; + std::unique_ptr upgrade() + { + if (ruleToUpgrade) + return std::move(ruleToUpgrade); + return {}; + } + + virtual void handle(const Request&, Response&, const RoutingParams&) = 0; + virtual void handleUpgrade(const Request&, Response& res, + boost::asio::ip::tcp::socket&&) + { + res.result(boost::beast::http::status::not_found); + res.end(); + } +#ifdef BMCWEB_ENABLE_SSL + virtual void + handleUpgrade(const Request&, Response& res, + boost::beast::ssl_stream&&) + { + res.result(boost::beast::http::status::not_found); + res.end(); + } +#endif + + size_t getMethods() + { + return methodsBitfield; + } + + bool checkPrivileges(const redfish::Privileges& userPrivileges) + { + // If there are no privileges assigned, assume no privileges + // required + if (privilegesSet.empty()) + { + return true; + } + + for (const redfish::Privileges& requiredPrivileges : privilegesSet) + { + if (userPrivileges.isSupersetOf(requiredPrivileges)) + { + return true; + } + } + return false; + } + + size_t methodsBitfield{ + 1 << static_cast(boost::beast::http::verb::get)}; + + std::vector privilegesSet; + + std::string rule; + std::string nameStr; + + std::unique_ptr ruleToUpgrade; + + friend class Router; + template friend struct RuleParameterTraits; +}; + +namespace detail +{ +namespace routing_handler_call_helper +{ +template struct CallPair +{ + using type = T; + static const int pos = Pos; +}; + +template struct CallParams +{ + H1& handler; + const RoutingParams& params; + const Request& req; + Response& res; +}; + +template +struct Call +{ +}; + +template +struct Call, + black_magic::S> +{ + void operator()(F cparams) + { + using pushed = typename black_magic::S::template push_back< + CallPair>; + Call, + pushed>()(cparams); + } +}; + +template +struct Call, black_magic::S> +{ + void operator()(F cparams) + { + using pushed = typename black_magic::S::template push_back< + CallPair>; + Call, + pushed>()(cparams); + } +}; + +template +struct Call, + black_magic::S> +{ + void operator()(F cparams) + { + using pushed = typename black_magic::S::template push_back< + CallPair>; + Call, + pushed>()(cparams); + } +}; + +template +struct Call, black_magic::S> +{ + void operator()(F cparams) + { + using pushed = typename black_magic::S::template push_back< + CallPair>; + Call, + pushed>()(cparams); + } +}; + +template +struct Call, + black_magic::S> +{ + void operator()(F cparams) + { + cparams.handler( + cparams.req, cparams.res, + cparams.params.template get(Args1::pos)...); + } +}; + +template struct Wrapped +{ + template + void set( + Func f, + typename std::enable_if< + !std::is_same< + typename std::tuple_element<0, std::tuple>::type, + const Request&>::value, + int>::type = 0) + { + handler = [f = std::move(f)](const Request&, Response& res, + Args... args) { + res.result(f(args...)); + res.end(); + }; + } + + template struct ReqHandlerWrapper + { + ReqHandlerWrapper(Func f) : f(std::move(f)) + { + } + + void operator()(const Request& req, Response& res, Args... args) + { + res.result(f(req, args...)); + res.end(); + } + + Func f; + }; + + template + void set( + Func f, + typename std::enable_if< + std::is_same< + typename std::tuple_element<0, std::tuple>::type, + const Request&>::value && + !std::is_same>::type, + Response&>::value, + int>::type = 0) + { + handler = ReqHandlerWrapper(std::move(f)); + /*handler = ( + [f = std::move(f)] + (const Request& req, Response& res, Args... args){ + res.result(f(req, args...)); + res.end(); + });*/ + } + + template + void set( + Func f, + typename std::enable_if< + std::is_same< + typename std::tuple_element<0, std::tuple>::type, + const Request&>::value && + std::is_same>::type, + Response&>::value, + int>::type = 0) + { + handler = std::move(f); + } + + template struct HandlerTypeHelper + { + using type = + std::function; + using args_type = + black_magic::S...>; + }; + + template + struct HandlerTypeHelper + { + using type = + std::function; + using args_type = + black_magic::S...>; + }; + + template + struct HandlerTypeHelper + { + using type = + std::function; + using args_type = + black_magic::S...>; + }; + + typename HandlerTypeHelper::type handler; + + void operator()(const Request& req, Response& res, + const RoutingParams& params) + { + detail::routing_handler_call_helper::Call< + detail::routing_handler_call_helper::CallParams, + 0, 0, 0, 0, typename HandlerTypeHelper::args_type, + black_magic::S<>>()( + detail::routing_handler_call_helper::CallParams{ + handler, params, req, res}); + } +}; +} // namespace routing_handler_call_helper +} // namespace detail + +class WebSocketRule : public BaseRule +{ + using self_t = WebSocketRule; + + public: + WebSocketRule(std::string rule) : BaseRule(std::move(rule)) + { + } + + void validate() override + { + } + + void handle(const Request&, Response& res, const RoutingParams&) override + { + res.result(boost::beast::http::status::not_found); + res.end(); + } + + void handleUpgrade(const Request& req, Response&, + boost::asio::ip::tcp::socket&& adaptor) override + { + std::shared_ptr< + crow::websocket::ConnectionImpl> + myConnection = std::make_shared< + crow::websocket::ConnectionImpl>( + req, std::move(adaptor), openHandler, messageHandler, + closeHandler, errorHandler); + myConnection->start(); + } +#ifdef BMCWEB_ENABLE_SSL + void handleUpgrade(const Request& req, Response&, + boost::beast::ssl_stream&& + adaptor) override + { + std::shared_ptr>> + myConnection = std::make_shared>>( + req, std::move(adaptor), openHandler, messageHandler, + closeHandler, errorHandler); + myConnection->start(); + } +#endif + + template self_t& onopen(Func f) + { + openHandler = f; + return *this; + } + + template self_t& onmessage(Func f) + { + messageHandler = f; + return *this; + } + + template self_t& onclose(Func f) + { + closeHandler = f; + return *this; + } + + template self_t& onerror(Func f) + { + errorHandler = f; + return *this; + } + + protected: + std::function)> + openHandler; + std::function + messageHandler; + std::function + closeHandler; + std::function errorHandler; +}; + +template struct RuleParameterTraits +{ + using self_t = T; + WebSocketRule& websocket() + { + self_t* self = static_cast(this); + WebSocketRule* p = new WebSocketRule(self->rule); + self->ruleToUpgrade.reset(p); + return *p; + } + + self_t& name(std::string name) noexcept + { + self_t* self = static_cast(this); + self->nameStr = std::move(name); + return *self; + } + + self_t& methods(boost::beast::http::verb method) + { + self_t* self = static_cast(this); + self->methodsBitfield = 1U << static_cast(method); + return *self; + } + + template + self_t& methods(boost::beast::http::verb method, MethodArgs... args_method) + { + self_t* self = static_cast(this); + methods(args_method...); + self->methodsBitfield |= 1U << static_cast(method); + return *self; + } + + template + self_t& requires(std::initializer_list l) + { + self_t* self = static_cast(this); + self->privilegesSet.emplace_back(l); + return *self; + } + + template + self_t& requires(const std::vector& p) + { + self_t* self = static_cast(this); + for (const redfish::Privileges& privilege : p) + { + self->privilegesSet.emplace_back(privilege); + } + return *self; + } +}; + +class DynamicRule : public BaseRule, public RuleParameterTraits +{ + public: + DynamicRule(std::string rule) : BaseRule(std::move(rule)) + { + } + + void validate() override + { + if (!erasedHandler) + { + throw std::runtime_error(nameStr + (!nameStr.empty() ? ": " : "") + + "no handler for url " + rule); + } + } + + void handle(const Request& req, Response& res, + const RoutingParams& params) override + { + erasedHandler(req, res, params); + } + + template void operator()(Func f) + { + using function_t = utility::function_traits; + + erasedHandler = + wrap(std::move(f), black_magic::gen_seq()); + } + + // enable_if Arg1 == request && Arg2 == Response + // enable_if Arg1 == request && Arg2 != resposne + // enable_if Arg1 != request + + template + + std::function + wrap(Func f, black_magic::Seq) + { + using function_t = utility::function_traits; + + if (!black_magic::isParameterTagCompatible( + black_magic::getParameterTagRuntime(rule.c_str()), + black_magic::compute_parameter_tag_from_args_list< + typename function_t::template arg...>::value)) + { + throw std::runtime_error("routeDynamic: Handler type is mismatched " + "with URL parameters: " + + rule); + } + auto ret = detail::routing_handler_call_helper::Wrapped< + Func, typename function_t::template arg...>(); + ret.template set...>( + std::move(f)); + return ret; + } + + template void operator()(std::string name, Func&& f) + { + nameStr = std::move(name); + (*this).template operator()(std::forward(f)); + } + + private: + std::function + erasedHandler; +}; + +template +class TaggedRule : public BaseRule, + public RuleParameterTraits> +{ + public: + using self_t = TaggedRule; + + TaggedRule(std::string ruleIn) : BaseRule(std::move(ruleIn)) + { + } + + void validate() override + { + if (!handler) + { + throw std::runtime_error(nameStr + (!nameStr.empty() ? ": " : "") + + "no handler for url " + rule); + } + } + + template + typename std::enable_if< + black_magic::CallHelper>::value, + void>::type + operator()(Func&& f) + { + static_assert( + black_magic::CallHelper>::value || + black_magic::CallHelper< + Func, black_magic::S>::value, + "Handler type is mismatched with URL parameters"); + static_assert( + !std::is_same()...))>::value, + "Handler function cannot have void return type; valid return " + "types: " + "string, int, crow::resposne, nlohmann::json"); + + handler = [f = std::move(f)](const Request&, Response& res, + Args... args) { + res.result(f(args...)); + res.end(); + }; + } + + template + typename std::enable_if< + !black_magic::CallHelper>::value && + black_magic::CallHelper< + Func, black_magic::S>::value, + void>::type + operator()(Func&& f) + { + static_assert( + black_magic::CallHelper>::value || + black_magic::CallHelper< + Func, black_magic::S>::value, + "Handler type is mismatched with URL parameters"); + static_assert( + !std::is_same(), + std::declval()...))>::value, + "Handler function cannot have void return type; valid return " + "types: " + "string, int, crow::resposne,nlohmann::json"); + + handler = [f = std::move(f)](const crow::Request& req, + crow::Response& res, Args... args) { + res.result(f(req, args...)); + res.end(); + }; + } + + template + typename std::enable_if< + !black_magic::CallHelper>::value && + !black_magic::CallHelper< + Func, black_magic::S>::value, + void>::type + operator()(Func&& f) + { + static_assert( + black_magic::CallHelper>::value || + black_magic::CallHelper< + Func, black_magic::S>::value || + black_magic::CallHelper< + Func, black_magic::S>::value, + "Handler type is mismatched with URL parameters"); + static_assert( + std::is_same(), + std::declval(), + std::declval()...))>::value, + "Handler function with response argument should have void " + "return " + "type"); + + handler = std::move(f); + } + + template void operator()(std::string name, Func&& f) + { + nameStr = std::move(name); + (*this).template operator()(std::forward(f)); + } + + void handle(const Request& req, Response& res, + const RoutingParams& params) override + { + detail::routing_handler_call_helper::Call< + detail::routing_handler_call_helper::CallParams, + 0, 0, 0, 0, black_magic::S, black_magic::S<>>()( + detail::routing_handler_call_helper::CallParams{ + handler, params, req, res}); + } + + private: + std::function handler; +}; + +const int ruleSpecialRedirectSlash = 1; + +class Trie +{ + public: + struct Node + { + unsigned ruleIndex{}; + std::array(ParamType::MAX)> + paramChildrens{}; + boost::container::flat_map children; + + bool isSimpleNode() const + { + return !ruleIndex && std::all_of(std::begin(paramChildrens), + std::end(paramChildrens), + [](size_t x) { return !x; }); + } + }; + + Trie() : nodes(1) + { + } + + private: + void optimizeNode(Node* node) + { + for (size_t x : node->paramChildrens) + { + if (!x) + continue; + Node* child = &nodes[x]; + optimizeNode(child); + } + if (node->children.empty()) + return; + bool mergeWithChild = true; + for (const std::pair& kv : node->children) + { + Node* child = &nodes[kv.second]; + if (!child->isSimpleNode()) + { + mergeWithChild = false; + break; + } + } + if (mergeWithChild) + { + decltype(node->children) merged; + for (const std::pair& kv : node->children) + { + Node* child = &nodes[kv.second]; + for (const std::pair& childKv : + child->children) + { + merged[kv.first + childKv.first] = childKv.second; + } + } + node->children = std::move(merged); + optimizeNode(node); + } + else + { + for (const std::pair& kv : node->children) + { + Node* child = &nodes[kv.second]; + optimizeNode(child); + } + } + } + + void optimize() + { + optimizeNode(head()); + } + + public: + void validate() + { + if (!head()->isSimpleNode()) + throw std::runtime_error( + "Internal error: Trie header should be simple!"); + optimize(); + } + + void findRouteIndexes(const std::string& req_url, + std::vector& route_indexes, + const Node* node = nullptr, unsigned pos = 0) const + { + if (node == nullptr) + { + node = head(); + } + for (const std::pair& kv : node->children) + { + const std::string& fragment = kv.first; + const Node* child = &nodes[kv.second]; + if (pos >= req_url.size()) + { + if (child->ruleIndex != 0 && fragment != "/") + { + route_indexes.push_back(child->ruleIndex); + } + findRouteIndexes(req_url, route_indexes, child, + static_cast(pos + fragment.size())); + } + else + { + if (req_url.compare(pos, fragment.size(), fragment) == 0) + { + findRouteIndexes( + req_url, route_indexes, child, + static_cast(pos + fragment.size())); + } + } + } + } + + std::pair + find(const std::string_view req_url, const Node* node = nullptr, + size_t pos = 0, RoutingParams* params = nullptr) const + { + RoutingParams empty; + if (params == nullptr) + params = ∅ + + unsigned found{}; + RoutingParams matchParams; + + if (node == nullptr) + node = head(); + if (pos == req_url.size()) + return {node->ruleIndex, *params}; + + auto updateFound = + [&found, &matchParams](std::pair& ret) { + if (ret.first && (!found || found > ret.first)) + { + found = ret.first; + matchParams = std::move(ret.second); + } + }; + + if (node->paramChildrens[static_cast(ParamType::INT)]) + { + char c = req_url[pos]; + if ((c >= '0' && c <= '9') || c == '+' || c == '-') + { + char* eptr; + errno = 0; + long long int value = + std::strtoll(req_url.data() + pos, &eptr, 10); + if (errno != ERANGE && eptr != req_url.data() + pos) + { + params->intParams.push_back(value); + std::pair ret = find( + req_url, + &nodes[node->paramChildrens[static_cast( + ParamType::INT)]], + static_cast(eptr - req_url.data()), params); + updateFound(ret); + params->intParams.pop_back(); + } + } + } + + if (node->paramChildrens[static_cast(ParamType::UINT)]) + { + char c = req_url[pos]; + if ((c >= '0' && c <= '9') || c == '+') + { + char* eptr; + errno = 0; + unsigned long long int value = + std::strtoull(req_url.data() + pos, &eptr, 10); + if (errno != ERANGE && eptr != req_url.data() + pos) + { + params->uintParams.push_back(value); + std::pair ret = find( + req_url, + &nodes[node->paramChildrens[static_cast( + ParamType::UINT)]], + static_cast(eptr - req_url.data()), params); + updateFound(ret); + params->uintParams.pop_back(); + } + } + } + + if (node->paramChildrens[static_cast(ParamType::DOUBLE)]) + { + char c = req_url[pos]; + if ((c >= '0' && c <= '9') || c == '+' || c == '-' || c == '.') + { + char* eptr; + errno = 0; + double value = std::strtod(req_url.data() + pos, &eptr); + if (errno != ERANGE && eptr != req_url.data() + pos) + { + params->doubleParams.push_back(value); + std::pair ret = find( + req_url, + &nodes[node->paramChildrens[static_cast( + ParamType::DOUBLE)]], + static_cast(eptr - req_url.data()), params); + updateFound(ret); + params->doubleParams.pop_back(); + } + } + } + + if (node->paramChildrens[static_cast(ParamType::STRING)]) + { + size_t epos = pos; + for (; epos < req_url.size(); epos++) + { + if (req_url[epos] == '/') + break; + } + + if (epos != pos) + { + params->stringParams.emplace_back( + req_url.substr(pos, epos - pos)); + std::pair ret = + find(req_url, + &nodes[node->paramChildrens[static_cast( + ParamType::STRING)]], + epos, params); + updateFound(ret); + params->stringParams.pop_back(); + } + } + + if (node->paramChildrens[static_cast(ParamType::PATH)]) + { + size_t epos = req_url.size(); + + if (epos != pos) + { + params->stringParams.emplace_back( + req_url.substr(pos, epos - pos)); + std::pair ret = + find(req_url, + &nodes[node->paramChildrens[static_cast( + ParamType::PATH)]], + epos, params); + updateFound(ret); + params->stringParams.pop_back(); + } + } + + for (const std::pair& kv : node->children) + { + const std::string& fragment = kv.first; + const Node* child = &nodes[kv.second]; + + if (req_url.compare(pos, fragment.size(), fragment) == 0) + { + std::pair ret = + find(req_url, child, pos + fragment.size(), params); + updateFound(ret); + } + } + + return {found, matchParams}; + } + + void add(const std::string& url, unsigned ruleIndex) + { + size_t idx = 0; + + for (unsigned i = 0; i < url.size(); i++) + { + char c = url[i]; + if (c == '<') + { + const static std::array, 7> + paramTraits = {{ + {ParamType::INT, ""}, + {ParamType::UINT, ""}, + {ParamType::DOUBLE, ""}, + {ParamType::DOUBLE, ""}, + {ParamType::STRING, ""}, + {ParamType::STRING, ""}, + {ParamType::PATH, ""}, + }}; + + for (const std::pair& x : paramTraits) + { + if (url.compare(i, x.second.size(), x.second) == 0) + { + size_t index = static_cast(x.first); + if (!nodes[idx].paramChildrens[index]) + { + unsigned newNodeIdx = newNode(); + nodes[idx].paramChildrens[index] = newNodeIdx; + } + idx = nodes[idx].paramChildrens[index]; + i += static_cast(x.second.size()); + break; + } + } + + i--; + } + else + { + std::string piece(&c, 1); + if (!nodes[idx].children.count(piece)) + { + unsigned newNodeIdx = newNode(); + nodes[idx].children.emplace(piece, newNodeIdx); + } + idx = nodes[idx].children[piece]; + } + } + if (nodes[idx].ruleIndex) + throw std::runtime_error("handler already exists for " + url); + nodes[idx].ruleIndex = ruleIndex; + } + + private: + void debugNodePrint(Node* n, size_t level) + { + for (size_t i = 0; i < static_cast(ParamType::MAX); i++) + { + if (n->paramChildrens[i]) + { + BMCWEB_LOG_DEBUG << std::string( + 2U * level, ' ') /*<< "("<paramChildrens[i]<<") "*/; + switch (static_cast(i)) + { + case ParamType::INT: + BMCWEB_LOG_DEBUG << ""; + break; + case ParamType::UINT: + BMCWEB_LOG_DEBUG << ""; + break; + case ParamType::DOUBLE: + BMCWEB_LOG_DEBUG << ""; + break; + case ParamType::STRING: + BMCWEB_LOG_DEBUG << ""; + break; + case ParamType::PATH: + BMCWEB_LOG_DEBUG << ""; + break; + default: + BMCWEB_LOG_DEBUG << ""; + break; + } + + debugNodePrint(&nodes[n->paramChildrens[i]], level + 1); + } + } + for (const std::pair& kv : n->children) + { + BMCWEB_LOG_DEBUG + << std::string(2U * level, ' ') /*<< "(" << kv.second << ") "*/ + << kv.first; + debugNodePrint(&nodes[kv.second], level + 1); + } + } + + public: + void debugPrint() + { + debugNodePrint(head(), 0U); + } + + private: + const Node* head() const + { + return &nodes.front(); + } + + Node* head() + { + return &nodes.front(); + } + + unsigned newNode() + { + nodes.resize(nodes.size() + 1); + return static_cast(nodes.size() - 1); + } + + std::vector nodes; +}; + +class Router +{ + public: + Router() = default; + + DynamicRule& newRuleDynamic(const std::string& rule) + { + std::unique_ptr ruleObject = + std::make_unique(rule); + DynamicRule* ptr = ruleObject.get(); + allRules.emplace_back(std::move(ruleObject)); + + return *ptr; + } + + template + typename black_magic::Arguments::type::template rebind& + newRuleTagged(const std::string& rule) + { + using RuleT = typename black_magic::Arguments::type::template rebind< + TaggedRule>; + std::unique_ptr ruleObject = std::make_unique(rule); + RuleT* ptr = ruleObject.get(); + allRules.emplace_back(std::move(ruleObject)); + + return *ptr; + } + + void internalAddRuleObject(const std::string& rule, BaseRule* ruleObject) + { + if (ruleObject == nullptr) + { + return; + } + for (uint32_t method = 0, method_bit = 1; method < maxHttpVerbCount; + method++, method_bit <<= 1) + { + if (ruleObject->methodsBitfield & method_bit) + { + perMethods[method].rules.emplace_back(ruleObject); + perMethods[method].trie.add( + rule, static_cast( + perMethods[method].rules.size() - 1U)); + // directory case: + // request to `/about' url matches `/about/' rule + if (rule.size() > 2 && rule.back() == '/') + { + perMethods[method].trie.add( + rule.substr(0, rule.size() - 1), + static_cast(perMethods[method].rules.size() - + 1)); + } + } + } + } + + void validate() + { + for (std::unique_ptr& rule : allRules) + { + if (rule) + { + std::unique_ptr upgraded = rule->upgrade(); + if (upgraded) + rule = std::move(upgraded); + rule->validate(); + internalAddRuleObject(rule->rule, rule.get()); + } + } + for (PerMethod& perMethod : perMethods) + { + perMethod.trie.validate(); + } + } + + template + void handleUpgrade(const Request& req, Response& res, Adaptor&& adaptor) + { + if (static_cast(req.method()) >= perMethods.size()) + return; + + PerMethod& perMethod = perMethods[static_cast(req.method())]; + Trie& trie = perMethod.trie; + std::vector& rules = perMethod.rules; + + const std::pair& found = trie.find(req.url); + unsigned ruleIndex = found.first; + if (!ruleIndex) + { + BMCWEB_LOG_DEBUG << "Cannot match rules " << req.url; + res.result(boost::beast::http::status::not_found); + res.end(); + return; + } + + if (ruleIndex >= rules.size()) + throw std::runtime_error("Trie internal structure corrupted!"); + + if (ruleIndex == ruleSpecialRedirectSlash) + { + BMCWEB_LOG_INFO << "Redirecting to a url with trailing slash: " + << req.url; + res.result(boost::beast::http::status::moved_permanently); + + // TODO absolute url building + if (req.getHeaderValue("Host").empty()) + { + res.addHeader("Location", std::string(req.url) + "/"); + } + else + { + res.addHeader( + "Location", + req.isSecure + ? "https://" + : "http://" + std::string(req.getHeaderValue("Host")) + + std::string(req.url) + "/"); + } + res.end(); + return; + } + + if ((rules[ruleIndex]->getMethods() & + (1U << static_cast(req.method()))) == 0) + { + BMCWEB_LOG_DEBUG << "Rule found but method mismatch: " << req.url + << " with " << req.methodString() << "(" + << static_cast(req.method()) << ") / " + << rules[ruleIndex]->getMethods(); + res.result(boost::beast::http::status::not_found); + res.end(); + return; + } + + BMCWEB_LOG_DEBUG << "Matched rule (upgrade) '" << rules[ruleIndex]->rule + << "' " << static_cast(req.method()) << " / " + << rules[ruleIndex]->getMethods(); + + // any uncaught exceptions become 500s + try + { + rules[ruleIndex]->handleUpgrade(req, res, std::move(adaptor)); + } + catch (std::exception& e) + { + BMCWEB_LOG_ERROR << "An uncaught exception occurred: " << e.what(); + res.result(boost::beast::http::status::internal_server_error); + res.end(); + return; + } + catch (...) + { + BMCWEB_LOG_ERROR + << "An uncaught exception occurred. The type was unknown " + "so no information was available."; + res.result(boost::beast::http::status::internal_server_error); + res.end(); + return; + } + } + + void handle(Request& req, Response& res) + { + if (static_cast(req.method()) >= perMethods.size()) + return; + PerMethod& perMethod = perMethods[static_cast(req.method())]; + Trie& trie = perMethod.trie; + std::vector& rules = perMethod.rules; + + const std::pair& found = trie.find(req.url); + + unsigned ruleIndex = found.first; + + if (!ruleIndex) + { + // Check to see if this url exists at any verb + for (const PerMethod& p : perMethods) + { + const std::pair& found = + p.trie.find(req.url); + if (found.first > 0) + { + res.result(boost::beast::http::status::method_not_allowed); + res.end(); + return; + } + } + BMCWEB_LOG_DEBUG << "Cannot match rules " << req.url; + res.result(boost::beast::http::status::not_found); + res.end(); + return; + } + + if (ruleIndex >= rules.size()) + throw std::runtime_error("Trie internal structure corrupted!"); + + if (ruleIndex == ruleSpecialRedirectSlash) + { + BMCWEB_LOG_INFO << "Redirecting to a url with trailing slash: " + << req.url; + res.result(boost::beast::http::status::moved_permanently); + + // TODO absolute url building + if (req.getHeaderValue("Host").empty()) + { + res.addHeader("Location", std::string(req.url) + "/"); + } + else + { + res.addHeader("Location", + (req.isSecure ? "https://" : "http://") + + std::string(req.getHeaderValue("Host")) + + std::string(req.url) + "/"); + } + res.end(); + return; + } + + if ((rules[ruleIndex]->getMethods() & + (1U << static_cast(req.method()))) == 0) + { + BMCWEB_LOG_DEBUG << "Rule found but method mismatch: " << req.url + << " with " << req.methodString() << "(" + << static_cast(req.method()) << ") / " + << rules[ruleIndex]->getMethods(); + res.result(boost::beast::http::status::method_not_allowed); + res.end(); + return; + } + + BMCWEB_LOG_DEBUG << "Matched rule '" << rules[ruleIndex]->rule << "' " + << static_cast(req.method()) << " / " + << rules[ruleIndex]->getMethods(); + + if (req.session == nullptr) + { + rules[ruleIndex]->handle(req, res, found.second); + return; + } + + crow::connections::systemBus->async_method_call( + [&req, &res, &rules, ruleIndex, found]( + const boost::system::error_code ec, + std::map>> + userInfo) { + if (ec) + { + BMCWEB_LOG_ERROR << "GetUserInfo failed..."; + res.result( + boost::beast::http::status::internal_server_error); + res.end(); + return; + } + + const std::string* userRolePtr = nullptr; + auto userInfoIter = userInfo.find("UserPrivilege"); + if (userInfoIter != userInfo.end()) + { + userRolePtr = + std::get_if(&userInfoIter->second); + } + + std::string userRole{}; + if (userRolePtr != nullptr) + { + userRole = *userRolePtr; + BMCWEB_LOG_DEBUG << "userName = " << req.session->username + << " userRole = " << *userRolePtr; + } + + // Get the user privileges from the role + redfish::Privileges userPrivileges = + redfish::getUserPrivileges(userRole); + + if (!rules[ruleIndex]->checkPrivileges(userPrivileges)) + { + res.result(boost::beast::http::status::forbidden); + res.end(); + return; + } + + req.userRole = userRole; + + rules[ruleIndex]->handle(req, res, found.second); + }, + "xyz.openbmc_project.User.Manager", "/xyz/openbmc_project/user", + "xyz.openbmc_project.User.Manager", "GetUserInfo", + req.session->username); + } + + void debugPrint() + { + for (size_t i = 0; i < perMethods.size(); i++) + { + BMCWEB_LOG_DEBUG + << methodName(static_cast(i)); + perMethods[i].trie.debugPrint(); + } + } + + std::vector getRoutes(const std::string& parent) + { + std::vector ret; + + for (const PerMethod& pm : perMethods) + { + std::vector x; + pm.trie.findRouteIndexes(parent, x); + for (unsigned index : x) + { + ret.push_back(&pm.rules[index]->rule); + } + } + return ret; + } + + private: + struct PerMethod + { + std::vector rules; + Trie trie; + // rule index 0, 1 has special meaning; preallocate it to avoid + // duplication. + PerMethod() : rules(2) + { + } + }; + std::array perMethods; + std::vector> allRules; +}; +} // namespace crow diff --git a/Contrib-Inspur/bmcweb/crow/include/crow/timer_queue.h b/Contrib-Inspur/bmcweb/http/timer_queue.h similarity index 78% rename from Contrib-Inspur/bmcweb/crow/include/crow/timer_queue.h rename to Contrib-Inspur/bmcweb/http/timer_queue.h index bf1e084a..7339d66a 100644 --- a/Contrib-Inspur/bmcweb/crow/include/crow/timer_queue.h +++ b/Contrib-Inspur/bmcweb/http/timer_queue.h @@ -5,7 +5,7 @@ #include #include -#include "crow/logging.h" +#include "logging.h" namespace crow { @@ -20,20 +20,20 @@ class TimerQueue dq.set_capacity(100); } - void cancel(int k) + void cancel(size_t k) { - unsigned int index = static_cast(k - step); + size_t index = k - step; if (index < dq.size()) { dq[index].second = nullptr; } } - int add(std::function f) + size_t add(std::function f) { dq.push_back( std::make_pair(std::chrono::steady_clock::now(), std::move(f))); - int ret = step + dq.size() - 1; + size_t ret = step + dq.size() - 1; BMCWEB_LOG_DEBUG << "timer add inside: " << this << ' ' << ret; return ret; @@ -45,12 +45,15 @@ class TimerQueue while (!dq.empty()) { auto& x = dq.front(); - if (now - x.first < std::chrono::seconds(5)) - { - break; - } + // Check expiration time only for active handlers, + // remove canceled ones immediately if (x.second) { + if (now - x.first < std::chrono::seconds(5)) + { + break; + } + BMCWEB_LOG_DEBUG << "timer call: " << this << ' ' << step; // we know that timer handlers are very simple currenty; call // here @@ -72,7 +75,7 @@ class TimerQueue // boost::circular_buffer dq{20}; // std::deque dq{}; - int step{}; + size_t step{}; }; } // namespace detail } // namespace crow diff --git a/Contrib-Inspur/bmcweb/crow/include/crow/utility.h b/Contrib-Inspur/bmcweb/http/utility.h similarity index 81% rename from Contrib-Inspur/bmcweb/crow/include/crow/utility.h rename to Contrib-Inspur/bmcweb/http/utility.h index 4bc78089..c71187d0 100644 --- a/Contrib-Inspur/bmcweb/crow/include/crow/utility.h +++ b/Contrib-Inspur/bmcweb/http/utility.h @@ -2,7 +2,8 @@ #include "nlohmann/json.hpp" -#include +#include + #include #include #include @@ -123,44 +124,74 @@ constexpr bool isPath(ConstStr s, unsigned i) return isEquN(s, i, "", 0, 6); } -template struct parameter_tag +template constexpr int getParameterTag() { - static const int value = 0; -}; -#define BMCWEB_INTERNAL_PARAMETER_TAG(t, i) \ - template <> struct parameter_tag \ - { \ - static const int value = i; \ - } -BMCWEB_INTERNAL_PARAMETER_TAG(int, 1); -BMCWEB_INTERNAL_PARAMETER_TAG(char, 1); -BMCWEB_INTERNAL_PARAMETER_TAG(short, 1); -BMCWEB_INTERNAL_PARAMETER_TAG(long, 1); -BMCWEB_INTERNAL_PARAMETER_TAG(long long, 1); -BMCWEB_INTERNAL_PARAMETER_TAG(unsigned int, 2); -BMCWEB_INTERNAL_PARAMETER_TAG(unsigned char, 2); -BMCWEB_INTERNAL_PARAMETER_TAG(unsigned short, 2); -BMCWEB_INTERNAL_PARAMETER_TAG(unsigned long, 2); -BMCWEB_INTERNAL_PARAMETER_TAG(unsigned long long, 2); -BMCWEB_INTERNAL_PARAMETER_TAG(double, 3); -BMCWEB_INTERNAL_PARAMETER_TAG(std::string, 4); -#undef BMCWEB_INTERNAL_PARAMETER_TAG + if constexpr (std::is_same_v) + { + return 1; + } + if constexpr (std::is_same_v) + { + return 1; + } + if constexpr (std::is_same_v) + { + return 1; + } + if constexpr (std::is_same_v) + { + return 1; + } + if constexpr (std::is_same_v) + { + return 1; + } + if constexpr (std::is_same_v) + { + return 2; + } + if constexpr (std::is_same_v) + { + return 2; + } + if constexpr (std::is_same_v) + { + return 2; + } + if constexpr (std::is_same_v) + { + return 2; + } + if constexpr (std::is_same_v) + { + return 2; + } + if constexpr (std::is_same_v) + { + return 3; + } + if constexpr (std::is_same_v) + { + return 4; + } + return 0; +} + template struct compute_parameter_tag_from_args_list; template <> struct compute_parameter_tag_from_args_list<> { - static const int value = 0; + static constexpr int value = 0; }; template struct compute_parameter_tag_from_args_list { - static const int subValue = + static constexpr int subValue = compute_parameter_tag_from_args_list::value; - static const int value = - parameter_tag::type>::value - ? subValue * 6 + - parameter_tag::type>::value + static constexpr int value = + getParameterTag::type>() + ? subValue * 6 + getParameterTag::type>() : subValue; }; @@ -174,8 +205,8 @@ static inline bool isParameterTagCompatible(uint64_t a, uint64_t b) { return a == 0; } - int sa = a % 6; - int sb = a % 6; + uint64_t sa = a % 6; + uint64_t sb = a % 6; if (sa == 5) { sa = 4; @@ -292,7 +323,7 @@ template struct CallHelper> static constexpr bool value = sizeof(__test(0)) == sizeof(char); }; -template struct SingleTagToType +template struct SingleTagToType { }; @@ -361,10 +392,10 @@ struct concat, Seq> : Seq template using Concat = Invoke>; -template struct gen_seq; -template using GenSeq = Invoke>; +template struct gen_seq; +template using GenSeq = Invoke>; -template struct gen_seq : Concat, GenSeq> +template struct gen_seq : Concat, GenSeq> { }; @@ -389,7 +420,7 @@ struct PopBack //: public PopBackHelper class U> using rebind = - typename PopBackHelper::type, + typename PopBackHelper::type, std::tuple>::template rebind; }; @@ -453,19 +484,19 @@ namespace detail template struct GetIndexOfElementFromTupleByTypeImpl { - static constexpr auto value = N; + static constexpr std::size_t value = N; }; template struct GetIndexOfElementFromTupleByTypeImpl { - static constexpr auto value = N; + static constexpr std::size_t value = N; }; template struct GetIndexOfElementFromTupleByTypeImpl { - static constexpr auto value = + static constexpr std::size_t value = GetIndexOfElementFromTupleByTypeImpl::value; }; @@ -533,29 +564,34 @@ inline static std::string base64encode( auto it = ret.begin(); while (size >= 3) { - *it++ = key[(((unsigned char)*data) & 0xFC) >> 2]; - unsigned char h = (((unsigned char)*data++) & 0x03) << 4; - *it++ = key[h | ((((unsigned char)*data) & 0xF0) >> 4)]; - h = (((unsigned char)*data++) & 0x0F) << 2; - *it++ = key[h | ((((unsigned char)*data) & 0xC0) >> 6)]; - *it++ = key[((unsigned char)*data++) & 0x3F]; + *it++ = key[(static_cast(*data) & 0xFC) >> 2]; + unsigned char h = static_cast( + (static_cast(*data++) & 0x03u) << 4u); + *it++ = key[h | ((static_cast(*data) & 0xF0) >> 4)]; + h = static_cast( + (static_cast(*data++) & 0x0F) << 2u); + *it++ = key[h | ((static_cast(*data) & 0xC0) >> 6)]; + *it++ = key[static_cast(*data++) & 0x3F]; size -= 3; } if (size == 1) { - *it++ = key[(((unsigned char)*data) & 0xFC) >> 2]; - unsigned char h = (((unsigned char)*data++) & 0x03) << 4; + *it++ = key[(static_cast(*data) & 0xFC) >> 2]; + unsigned char h = static_cast( + (static_cast(*data++) & 0x03) << 4u); *it++ = key[h]; *it++ = '='; *it++ = '='; } else if (size == 2) { - *it++ = key[(((unsigned char)*data) & 0xFC) >> 2]; - unsigned char h = (((unsigned char)*data++) & 0x03) << 4; - *it++ = key[h | ((((unsigned char)*data) & 0xF0) >> 4)]; - h = (((unsigned char)*data++) & 0x0F) << 2; + *it++ = key[(static_cast(*data) & 0xFC) >> 2]; + unsigned char h = static_cast( + (static_cast(*data++) & 0x03) << 4u); + *it++ = key[h | ((static_cast(*data) & 0xF0) >> 4)]; + h = static_cast( + (static_cast(*data++) & 0x0F) << 2u); *it++ = key[h]; *it++ = '='; } @@ -571,9 +607,9 @@ inline static std::string base64encodeUrlsafe(const char* data, size_t size) // TODO this is temporary and should be deleted once base64 is refactored out of // crow -inline bool base64Decode(const boost::string_view input, std::string& output) +inline bool base64Decode(const std::string_view input, std::string& output) { - static const char nop = -1; + static const char nop = static_cast(-1); // See note on encoding_data[] in above function static const char decodingData[] = { nop, nop, nop, nop, nop, nop, nop, nop, nop, nop, nop, nop, nop, nop, @@ -672,7 +708,7 @@ inline void escapeHtml(std::string& data) std::string buffer; // less than 5% of characters should be larger, so reserve a buffer of the // right size - buffer.reserve(data.size() * 1.05); + buffer.reserve(data.size() * 11 / 10); for (size_t pos = 0; pos != data.size(); ++pos) { switch (data[pos]) @@ -702,15 +738,61 @@ inline void escapeHtml(std::string& data) inline void convertToLinks(std::string& s) { - const static std::regex r{"("@odata\\.((id)|(Context))"[ \\n]*:[ " - "\\n]*)("((?!").*)")"}; - s = std::regex_replace(s, r, "$1$5"); + // Convert anything with a redfish path into a link + const static std::regex redfishPath{ + "("((.*))"[ \\n]*:[ " + "\\n]*)("((?!")/redfish/.*)")"}; + s = std::regex_replace(s, redfishPath, "$1$4"); +} + +/** + * Method returns Date Time information according to requested format + * + * @param[in] time time in second since the Epoch + * + * @return Date Time according to requested format + */ +inline std::string getDateTime(const std::time_t& time) +{ + std::array dateTime; + std::string redfishDateTime("0000-00-00T00:00:00Z00:00"); + + if (std::strftime(dateTime.begin(), dateTime.size(), "%FT%T%z", + std::localtime(&time))) + { + // insert the colon required by the ISO 8601 standard + redfishDateTime = std::string(dateTime.data()); + redfishDateTime.insert(redfishDateTime.end() - 2, ':'); + } + + return redfishDateTime; +} + +inline std::string dateTimeNow() +{ + std::time_t time = std::time(nullptr); + return getDateTime(time); +} - const static std::regex nextLink{ - "("Members@odata\\.((nextLink))"[ \\n]*:[ " - "\\n]*)("((?!").*)")"}; - s = std::regex_replace(s, nextLink, "$1$4"); +inline bool constantTimeStringCompare(const std::string_view a, + const std::string_view b) +{ + // Important note, this function is ONLY constant time if the two input + // sizes are the same + if (a.size() != b.size()) + { + return false; + } + return CRYPTO_memcmp(a.data(), b.data(), a.size()) == 0; } +struct ConstantTimeCompare +{ + bool operator()(const std::string_view a, const std::string_view b) const + { + return constantTimeStringCompare(a, b); + } +}; + } // namespace utility } // namespace crow diff --git a/Contrib-Inspur/bmcweb/http/websocket.h b/Contrib-Inspur/bmcweb/http/websocket.h new file mode 100644 index 00000000..f7c818e6 --- /dev/null +++ b/Contrib-Inspur/bmcweb/http/websocket.h @@ -0,0 +1,258 @@ +#pragma once +#include +#include +#include +#include +#include +#include + +#include "http_request.h" + +#ifdef BMCWEB_ENABLE_SSL +#include +#endif + +namespace crow +{ +namespace websocket +{ + +struct Connection : std::enable_shared_from_this +{ + public: + explicit Connection(const crow::Request& reqIn) : + req(reqIn.req), userdataPtr(nullptr){}; + + virtual void sendBinary(const std::string_view msg) = 0; + virtual void sendBinary(std::string&& msg) = 0; + virtual void sendText(const std::string_view msg) = 0; + virtual void sendText(std::string&& msg) = 0; + virtual void close(const std::string_view msg = "quit") = 0; + virtual boost::asio::io_context& get_io_context() = 0; + virtual ~Connection() = default; + + void userdata(void* u) + { + userdataPtr = u; + } + void* userdata() + { + return userdataPtr; + } + + boost::beast::http::request req; + crow::Response res; + + private: + void* userdataPtr; +}; + +template class ConnectionImpl : public Connection +{ + public: + ConnectionImpl( + const crow::Request& reqIn, Adaptor adaptorIn, + std::function)> + open_handler, + std::function + message_handler, + std::function close_handler, + std::function error_handler) : + Connection(reqIn), + ws(std::move(adaptorIn)), inString(), inBuffer(inString, 131088), + openHandler(std::move(open_handler)), + messageHandler(std::move(message_handler)), + closeHandler(std::move(close_handler)), + errorHandler(std::move(error_handler)) + { + BMCWEB_LOG_DEBUG << "Creating new connection " << this; + } + + boost::asio::io_context& get_io_context() override + { + return static_cast( + ws.get_executor().context()); + } + + void start() + { + BMCWEB_LOG_DEBUG << "starting connection " << this; + + using bf = boost::beast::http::field; + + std::string_view protocol = req[bf::sec_websocket_protocol]; + + // Perform the websocket upgrade + ws.async_accept_ex( + req, + [protocol{std::string(protocol)}]( + boost::beast::websocket::response_type& m) { + if (!protocol.empty()) + { + m.insert(bf::sec_websocket_protocol, protocol); + } + + m.insert(bf::strict_transport_security, "max-age=31536000; " + "includeSubdomains; " + "preload"); + m.insert(bf::pragma, "no-cache"); + m.insert(bf::cache_control, "no-Store,no-Cache"); + m.insert("Content-Security-Policy", "default-src 'self'"); + m.insert("X-XSS-Protection", "1; " + "mode=block"); + m.insert("X-Content-Type-Options", "nosniff"); + }, + [this, self(shared_from_this())](boost::system::error_code ec) { + if (ec) + { + BMCWEB_LOG_ERROR << "Error in ws.async_accept " << ec; + return; + } + acceptDone(); + }); + } + + void sendBinary(const std::string_view msg) override + { + ws.binary(true); + outBuffer.emplace_back(msg); + doWrite(); + } + + void sendBinary(std::string&& msg) override + { + ws.binary(true); + outBuffer.emplace_back(std::move(msg)); + doWrite(); + } + + void sendText(const std::string_view msg) override + { + ws.text(true); + outBuffer.emplace_back(msg); + doWrite(); + } + + void sendText(std::string&& msg) override + { + ws.text(true); + outBuffer.emplace_back(std::move(msg)); + doWrite(); + } + + void close(const std::string_view msg) override + { + ws.async_close( + boost::beast::websocket::close_code::normal, + [self(shared_from_this())](boost::system::error_code ec) { + if (ec == boost::asio::error::operation_aborted) + { + return; + } + if (ec) + { + BMCWEB_LOG_ERROR << "Error closing websocket " << ec; + return; + } + }); + } + + void acceptDone() + { + BMCWEB_LOG_DEBUG << "Websocket accepted connection"; + + auto asyncResp = std::make_shared( + res, [this, self(shared_from_this())]() { doRead(); }); + + asyncResp->res.result(boost::beast::http::status::ok); + + if (openHandler) + { + openHandler(*this, asyncResp); + } + } + + void doRead() + { + ws.async_read(inBuffer, + [this, self(shared_from_this())]( + boost::beast::error_code ec, std::size_t bytes_read) { + if (ec) + { + if (ec != boost::beast::websocket::error::closed) + { + BMCWEB_LOG_ERROR << "doRead error " << ec; + } + if (closeHandler) + { + std::string_view reason = ws.reason().reason; + closeHandler(*this, std::string(reason)); + } + return; + } + if (messageHandler) + { + messageHandler(*this, inString, ws.got_text()); + } + inBuffer.consume(bytes_read); + inString.clear(); + doRead(); + }); + } + + void doWrite() + { + // If we're already doing a write, ignore the request, it will be picked + // up when the current write is complete + if (doingWrite) + { + return; + } + + if (outBuffer.empty()) + { + // Done for now + return; + } + doingWrite = true; + ws.async_write( + boost::asio::buffer(outBuffer.front()), + [this, self(shared_from_this())](boost::beast::error_code ec, + std::size_t bytes_written) { + doingWrite = false; + outBuffer.erase(outBuffer.begin()); + if (ec == boost::beast::websocket::error::closed) + { + // Do nothing here. doRead handler will call the + // closeHandler. + close("Write error"); + return; + } + if (ec) + { + BMCWEB_LOG_ERROR << "Error in ws.async_write " << ec; + return; + } + doWrite(); + }); + } + + private: + boost::beast::websocket::stream ws; + + std::string inString; + boost::asio::dynamic_string_buffer + inBuffer; + std::vector outBuffer; + bool doingWrite = false; + + std::function)> + openHandler; + std::function messageHandler; + std::function closeHandler; + std::function errorHandler; +}; +} // namespace websocket +} // namespace crow diff --git a/Contrib-Inspur/bmcweb/include/aspeed/JTABLES.H b/Contrib-Inspur/bmcweb/include/aspeed/JTABLES.H deleted file mode 100644 index 641fcfb7..00000000 --- a/Contrib-Inspur/bmcweb/include/aspeed/JTABLES.H +++ /dev/null @@ -1,299 +0,0 @@ -#pragma once -static const unsigned char zigzag[64] = { - 0, 1, 5, 6, 14, 15, 27, 28, 2, 4, 7, 13, 16, 26, 29, 42, - 3, 8, 12, 17, 25, 30, 41, 43, 9, 11, 18, 24, 31, 40, 44, 53, - 10, 19, 23, 32, 39, 45, 52, 54, 20, 22, 33, 38, 46, 51, 55, 60, - 21, 34, 37, 47, 50, 56, 59, 61, 35, 36, 48, 49, 57, 58, 62, 63}; - -static const unsigned char dezigzag[64 + 15] = { - 0, 1, 8, 16, 9, 2, 3, 10, 17, 24, 32, 25, 18, 11, 4, 5, 12, 19, 26, 33, 40, - 48, 41, 34, 27, 20, 13, 6, 7, 14, 21, 28, 35, 42, 49, 56, 57, 50, 43, 36, - 29, 22, 15, 23, 30, 37, 44, 51, 58, 59, 52, 45, 38, 31, 39, 46, 53, 60, 61, - 54, 47, 55, 62, 63, - // let corrupt input sample past end - 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63}; - -static const unsigned char *stdLuminanceQt; -static const unsigned char *stdChrominanceQt; - -// Standard Huffman tables (cf. JPEG standard section K.3) */ - -static const unsigned char stdDcLuminanceNrcodes[17] = { - 0, 0, 1, 5, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0}; -static const unsigned char stdDcLuminanceValues[12] = {0, 1, 2, 3, 4, 5, - 6, 7, 8, 9, 10, 11}; - -static const unsigned char stdDcChrominanceNrcodes[17] = { - 0, 0, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0}; -static const unsigned char stdDcChrominanceValues[12] = {0, 1, 2, 3, 4, 5, - 6, 7, 8, 9, 10, 11}; - -static const unsigned char stdAcLuminanceNrcodes[17] = { - 0, 0, 2, 1, 3, 3, 2, 4, 3, 5, 5, 4, 4, 0, 0, 1, 0x7d}; -static const unsigned char stdAcLuminanceValues[162] = { - 0x01, 0x02, 0x03, 0x00, 0x04, 0x11, 0x05, 0x12, 0x21, 0x31, 0x41, 0x06, - 0x13, 0x51, 0x61, 0x07, 0x22, 0x71, 0x14, 0x32, 0x81, 0x91, 0xa1, 0x08, - 0x23, 0x42, 0xb1, 0xc1, 0x15, 0x52, 0xd1, 0xf0, 0x24, 0x33, 0x62, 0x72, - 0x82, 0x09, 0x0a, 0x16, 0x17, 0x18, 0x19, 0x1a, 0x25, 0x26, 0x27, 0x28, - 0x29, 0x2a, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x43, 0x44, 0x45, - 0x46, 0x47, 0x48, 0x49, 0x4a, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, - 0x5a, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6a, 0x73, 0x74, 0x75, - 0x76, 0x77, 0x78, 0x79, 0x7a, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, - 0x8a, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, 0x98, 0x99, 0x9a, 0xa2, 0xa3, - 0xa4, 0xa5, 0xa6, 0xa7, 0xa8, 0xa9, 0xaa, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, - 0xb7, 0xb8, 0xb9, 0xba, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, 0xc8, 0xc9, - 0xca, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7, 0xd8, 0xd9, 0xda, 0xe1, 0xe2, - 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, 0xe8, 0xe9, 0xea, 0xf1, 0xf2, 0xf3, 0xf4, - 0xf5, 0xf6, 0xf7, 0xf8, 0xf9, 0xfa}; - -static const unsigned char stdAcChrominanceNrcodes[17] = { - 0, 0, 2, 1, 2, 4, 4, 3, 4, 7, 5, 4, 4, 0, 1, 2, 0x77}; -static const unsigned char stdAcChrominanceValues[162] = { - 0x00, 0x01, 0x02, 0x03, 0x11, 0x04, 0x05, 0x21, 0x31, 0x06, 0x12, 0x41, - 0x51, 0x07, 0x61, 0x71, 0x13, 0x22, 0x32, 0x81, 0x08, 0x14, 0x42, 0x91, - 0xa1, 0xb1, 0xc1, 0x09, 0x23, 0x33, 0x52, 0xf0, 0x15, 0x62, 0x72, 0xd1, - 0x0a, 0x16, 0x24, 0x34, 0xe1, 0x25, 0xf1, 0x17, 0x18, 0x19, 0x1a, 0x26, - 0x27, 0x28, 0x29, 0x2a, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x43, 0x44, - 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, - 0x59, 0x5a, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6a, 0x73, 0x74, - 0x75, 0x76, 0x77, 0x78, 0x79, 0x7a, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, - 0x88, 0x89, 0x8a, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, 0x98, 0x99, 0x9a, - 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, 0xa8, 0xa9, 0xaa, 0xb2, 0xb3, 0xb4, - 0xb5, 0xb6, 0xb7, 0xb8, 0xb9, 0xba, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, - 0xc8, 0xc9, 0xca, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7, 0xd8, 0xd9, 0xda, - 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, 0xe8, 0xe9, 0xea, 0xf2, 0xf3, 0xf4, - 0xf5, 0xf6, 0xf7, 0xf8, 0xf9, 0xfa}; - -static const unsigned short int dcLuminanceHuffmancode[13 * 2] = { - /* 0 */ 0x0000, 0, - /* 1 */ 0x4000, 2, - /* 2 */ 0x6000, 3, - /* 3 */ 0x8000, 3, - /* 4 */ 0xA000, 3, - /* 5 */ 0xC000, 3, - /* 6 */ 0xE000, 3, - /* 7 */ 0xF000, 4, - /* 8 */ 0xF800, 5, - /* 9 */ 0xFC00, 6, - /* 10 */ 0xFE00, 7, - /* 11 */ 0xFF00, 8, - /* 12 */ 0xFFFF, 9, -}; - -static const unsigned short int dcChrominanceHuffmancode[13 * 2] = { - /* 0 */ 0x0000, 0, - /* 1 */ 0x4000, 2, - /* 2 */ 0x8000, 2, - /* 3 */ 0xC000, 2, - /* 4 */ 0xE000, 3, - /* 5 */ 0xF000, 4, - /* 6 */ 0xF800, 5, - /* 7 */ 0xFC00, 6, - /* 8 */ 0xFE00, 7, - /* 9 */ 0xFF00, 8, - /* 10 */ 0xFF80, 9, - /* 11 */ 0xFFC0, 10, - /* 12 */ 0xFFFF, 11, -}; - -static const unsigned short int acLuminanceHuffmancode[39 * 2] = { - /* 0 */ 0x0000, 0, - /* 1 */ 0x4000, 2, - /* 2 */ 0x8000, 2, - /* 3 */ 0xA000, 3, - /* 4 */ 0xB000, 4, - /* 5 */ 0xC000, 4, - /* 6 */ 0xD000, 4, - /* 7 */ 0xD800, 5, - /* 8 */ 0xE000, 5, - /* 9 */ 0xE800, 5, - /* 10 */ 0xEC00, 6, - /* 11 */ 0xF000, 6, - /* 12 */ 0xF200, 7, - /* 13 */ 0xF400, 7, - /* 14 */ 0xF600, 7, - /* 15 */ 0xF800, 7, - /* 16 */ 0xF900, 8, - /* 17 */ 0xFA00, 8, - /* 18 */ 0xFB00, 8, - /* 19 */ 0xFB80, 9, - /* 20 */ 0xFC00, 9, - /* 21 */ 0xFC80, 9, - /* 22 */ 0xFD00, 9, - /* 23 */ 0xFD80, 9, - /* 24 */ 0xFDC0, 10, - /* 25 */ 0xFE00, 10, - /* 26 */ 0xFE40, 10, - /* 27 */ 0xFE80, 10, - /* 28 */ 0xFEC0, 10, - /* 29 */ 0xFEE0, 11, - /* 30 */ 0xFF00, 11, - /* 31 */ 0xFF20, 11, - /* 32 */ 0xFF40, 11, - /* 33 */ 0xFF50, 12, - /* 34 */ 0xFF60, 12, - /* 35 */ 0xFF70, 12, - /* 36 */ 0xFF80, 12, - /* 37 */ 0xFF82, 15, - /* 38 */ 0xFFFF, 16, -}; - -static const unsigned short int acChrominanceHuffmancode[45 * 2] = { - /* 0 */ 0x0000, 0, - /* 1 */ 0x4000, 2, - /* 2 */ 0x8000, 2, - /* 3 */ 0xA000, 3, - /* 4 */ 0xB000, 4, - /* 5 */ 0xC000, 4, - /* 6 */ 0xC800, 5, - /* 7 */ 0xD000, 5, - /* 8 */ 0xD800, 5, - /* 9 */ 0xE000, 5, - /* 10 */ 0xE400, 6, - /* 11 */ 0xE800, 6, - /* 12 */ 0xEC00, 6, - /* 13 */ 0xF000, 6, - /* 14 */ 0xF200, 7, - /* 15 */ 0xF400, 7, - /* 16 */ 0xF600, 7, - /* 17 */ 0xF700, 8, - /* 18 */ 0xF800, 8, - /* 19 */ 0xF900, 8, - /* 20 */ 0xFA00, 8, - /* 21 */ 0xFA80, 9, - /* 22 */ 0xFB00, 9, - /* 23 */ 0xFB80, 9, - /* 24 */ 0xFC00, 9, - /* 25 */ 0xFC80, 9, - /* 26 */ 0xFD00, 9, - /* 27 */ 0xFD80, 9, - /* 28 */ 0xFDC0, 10, - /* 29 */ 0xFE00, 10, - /* 30 */ 0xFE40, 10, - /* 31 */ 0xFE80, 10, - /* 32 */ 0xFEC0, 10, - /* 33 */ 0xFEE0, 11, - /* 34 */ 0xFF00, 11, - /* 35 */ 0xFF20, 11, - /* 36 */ 0xFF40, 11, - /* 37 */ 0xFF50, 12, - /* 38 */ 0xFF60, 12, - /* 39 */ 0xFF70, 12, - /* 40 */ 0xFF80, 12, - /* 41 */ 0xFF84, 14, - /* 42 */ 0xFF86, 15, - /* 43 */ 0xFF88, 15, - /* 44 */ 0xFFFF, 16, -}; - -//[100]========================= -static const unsigned char tbl100Y[64] = { - 2, 1, 1, 2, 3, 5, 6, 7, 1, 1, 1, 2, 3, 7, 7, 6, - 1, 1, 2, 3, 5, 7, 8, 7, 1, 2, 2, 3, 6, 10, 10, 7, - 2, 2, 4, 7, 8, 13, 12, 9, 3, 4, 6, 8, 10, 13, 14, 11, - 6, 8, 9, 10, 12, 15, 15, 12, 9, 11, 11, 12, 14, 12, 12, 12}; -static const unsigned char tbl100Uv[64] = { - 3, 3, 4, 8, 18, 18, 18, 18, 3, 3, 4, 12, 18, 18, 18, 18, - 4, 4, 10, 18, 18, 18, 18, 18, 8, 12, 18, 18, 18, 18, 18, 18, - 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, - 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18}; - -//[086]========================= -static const unsigned char tbl086Y[64] = { - 3, 2, 1, 3, 4, 7, 9, 11, 2, 2, 2, 3, 4, 10, 11, 10, - 2, 2, 3, 4, 7, 10, 12, 10, 2, 3, 4, 5, 9, 16, 15, 11, - 3, 4, 6, 10, 12, 20, 19, 14, 4, 6, 10, 12, 15, 19, 21, 17, - 9, 12, 14, 16, 19, 22, 22, 18, 13, 17, 17, 18, 21, 18, 19, 18}; -static const unsigned char tbl086Uv[64] = { - 4, 5, 6, 13, 27, 27, 27, 27, 5, 5, 7, 18, 27, 27, 27, 27, - 6, 7, 15, 27, 27, 27, 27, 27, 13, 18, 27, 27, 27, 27, 27, 27, - 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, - 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27}; - -//[071]========================= -static const unsigned char tbl071Y[64] = { - 6, 4, 3, 6, 9, 15, 19, 22, 4, 4, 5, 7, 9, 21, 22, 20, - 5, 4, 6, 9, 15, 21, 25, 21, 5, 6, 8, 10, 19, 32, 30, 23, - 6, 8, 13, 21, 25, 40, 38, 28, 9, 13, 20, 24, 30, 39, 42, 34, - 18, 24, 29, 32, 38, 45, 45, 37, 27, 34, 35, 36, 42, 37, 38, 37}; -static const unsigned char tbl071Uv[64] = { - 9, 10, 13, 26, 55, 55, 55, 55, 10, 11, 14, 37, 55, 55, 55, 55, - 13, 14, 31, 55, 55, 55, 55, 55, 26, 37, 55, 55, 55, 55, 55, 55, - 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, - 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55}; -//[057]========================= -static const unsigned char tbl057Y[64] = { - 9, 6, 5, 9, 13, 22, 28, 34, 6, 6, 7, 10, 14, 32, 33, 30, - 7, 7, 9, 13, 22, 32, 38, 31, 7, 9, 12, 16, 28, 48, 45, 34, - 10, 12, 20, 31, 38, 61, 57, 43, 13, 19, 30, 36, 45, 58, 63, 51, - 27, 36, 43, 48, 57, 68, 67, 56, 40, 51, 53, 55, 63, 56, 57, 55}; -static const unsigned char tbl057Uv[64] = { - 13, 14, 19, 38, 80, 80, 80, 80, 14, 17, 21, 53, 80, 80, 80, 80, - 19, 21, 45, 80, 80, 80, 80, 80, 38, 53, 80, 80, 80, 80, 80, 80, - 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, - 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80}; - -//[043]========================= -static const unsigned char tbl043Y[64] = { - 11, 7, 7, 11, 17, 28, 36, 43, 8, 8, 10, 13, 18, 41, 43, 39, - 10, 9, 11, 17, 28, 40, 49, 40, 10, 12, 15, 20, 36, 62, 57, 44, - 12, 15, 26, 40, 48, 78, 74, 55, 17, 25, 39, 46, 58, 74, 81, 66, - 35, 46, 56, 62, 74, 86, 86, 72, 51, 66, 68, 70, 80, 71, 74, 71}; -static const unsigned char tbl043Uv[64] = { - 18, 19, 26, 51, 108, 108, 108, 108, 19, 22, 28, 72, 108, - 108, 108, 108, 26, 28, 61, 108, 108, 108, 108, 108, 51, 72, - 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, - 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, - 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108}; - -//[029]========================= -static const unsigned char tbl029Y[64] = { - 14, 9, 9, 14, 21, 36, 46, 55, 10, 10, 12, 17, 23, 52, 54, 49, - 12, 11, 14, 21, 36, 51, 62, 50, 12, 15, 19, 26, 46, 78, 72, 56, - 16, 19, 33, 50, 61, 98, 93, 69, 21, 31, 49, 58, 73, 94, 102, 83, - 44, 58, 70, 78, 93, 109, 108, 91, 65, 83, 86, 88, 101, 90, 93, 89}; -static const unsigned char tbl029Uv[64] = { - 22, 24, 32, 63, 133, 133, 133, 133, 24, 28, 34, 88, 133, - 133, 133, 133, 32, 34, 75, 133, 133, 133, 133, 133, 63, 88, - 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, - 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, - 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133}; - -//[014]========================= -static const unsigned char tbl014Y[64] = { - 17, 12, 10, 17, 26, 43, 55, 66, 13, 13, 15, 20, 28, 63, 65, 60, - 15, 14, 17, 26, 43, 62, 75, 61, 15, 18, 24, 31, 55, 95, 87, 67, - 19, 24, 40, 61, 74, 119, 112, 84, 26, 38, 60, 70, 88, 113, 123, 100, - 53, 70, 85, 95, 112, 132, 131, 110, 78, 100, 103, 107, 122, 109, 112, 108}; -static const unsigned char tbl014Uv[64] = { - 27, 29, 39, 76, 160, 160, 160, 160, 29, 34, 42, 107, 160, - 160, 160, 160, 39, 42, 91, 160, 160, 160, 160, 160, 76, 107, - 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, - 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, - 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160}; -//[000]========================= -static const unsigned char tbl000Y[64] = { - 20, 13, 12, 20, 30, 50, 63, 76, 15, 15, 17, 23, 32, 72, 75, 68, - 17, 16, 20, 30, 50, 71, 86, 70, 17, 21, 27, 36, 63, 108, 100, 77, - 22, 27, 46, 70, 85, 136, 128, 96, 30, 43, 68, 80, 101, 130, 141, 115, - 61, 80, 97, 108, 128, 151, 150, 126, 90, 115, 118, 122, 140, 125, 128, 123}; -static const unsigned char tbl000Uv[64] = { - 31, 33, 45, 88, 185, 185, 185, 185, 33, 39, 48, 123, 185, - 185, 185, 185, 45, 48, 105, 185, 185, 185, 185, 185, 88, 123, - 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, - 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, - 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185}; - -struct HuffmanTable { - unsigned char length[17]; // k =1-16 ; L[k] indicates the number of Huffman - // codes of length k - unsigned short int minorCode[17]; // indicates the value of the smallest - // Huffman code of length k - unsigned short int majorCode[17]; // similar, but the highest code - unsigned char v[65536]; // V[k][j] = Value associated to the j-th Huffman - // code of length k - // High nibble = nr of previous 0 coefficients - // Low nibble = size (in bits) of the coefficient which will be taken from the - // data stream - unsigned char len[65536]; -}; diff --git a/Contrib-Inspur/bmcweb/include/ast_jpeg_decoder.hpp b/Contrib-Inspur/bmcweb/include/ast_jpeg_decoder.hpp deleted file mode 100644 index e8bdddbf..00000000 --- a/Contrib-Inspur/bmcweb/include/ast_jpeg_decoder.hpp +++ /dev/null @@ -1,1547 +0,0 @@ -#pragma once - -#include - -#include -#include -#include -#include -#include -#include -#include - -namespace ast_video -{ - -struct ColorCache -{ - ColorCache() : - color{0x008080, 0xFF8080, 0x808080, 0xC08080}, index{0, 1, 2, 3} - { - } - - unsigned long color[4]; - unsigned char index[4]; - unsigned char bitMapBits{}; -}; - -struct RGB -{ - unsigned char b; - unsigned char g; - unsigned char r; - unsigned char reserved; -}; - -enum class JpgBlock -{ - JPEG_NO_SKIP_CODE = 0x00, - JPEG_SKIP_CODE = 0x08, - - JPEG_PASS2_CODE = 0x02, - JPEG_SKIP_PASS2_CODE = 0x0A, - - LOW_JPEG_NO_SKIP_CODE = 0x04, - LOW_JPEG_SKIP_CODE = 0x0C, - - VQ_NO_SKIP_1_COLOR_CODE = 0x05, - VQ_SKIP_1_COLOR_CODE = 0x0D, - - VQ_NO_SKIP_2_COLOR_CODE = 0x06, - VQ_SKIP_2_COLOR_CODE = 0x0E, - - VQ_NO_SKIP_4_COLOR_CODE = 0x07, - VQ_SKIP_4_COLOR_CODE = 0x0F, - - FRAME_END_CODE = 0x09, - -}; - -class AstJpegDecoder -{ - public: - AstJpegDecoder() - { - // TODO(ed) figure out how to init this in the constructor - yuvBuffer.resize(1920 * 1200); - outBuffer.resize(1920 * 1200); - for (auto &r : outBuffer) - { - r.r = 0x00; - r.g = 0x00; - r.b = 0x00; - r.reserved = 0xAA; - } - - int qfactor = 16; - - scalefactor = qfactor; - scalefactoruv = qfactor; - advancescalefactor = 16; - advancescalefactoruv = 16; - initJpgTable(); - } - - void loadQuantTable(std::array &quant_table) - { - float scalefactorF[8] = {1.0f, 1.387039845f, 1.306562965f, - 1.175875602f, 1.0f, 0.785694958f, - 0.541196100f, 0.275899379f}; - uint8_t j, row, col; - std::array tempQT{}; - - // Load quantization coefficients from JPG file, scale them for DCT and - // reorder - // from zig-zag order - switch (ySelector) - { - case 0: - stdLuminanceQt = tbl000Y; - break; - case 1: - stdLuminanceQt = tbl014Y; - break; - case 2: - stdLuminanceQt = tbl029Y; - break; - case 3: - stdLuminanceQt = tbl043Y; - break; - case 4: - stdLuminanceQt = tbl057Y; - break; - case 5: - stdLuminanceQt = tbl071Y; - break; - case 6: - stdLuminanceQt = tbl086Y; - break; - case 7: - stdLuminanceQt = tbl100Y; - break; - } - setQuantTable(stdLuminanceQt, static_cast(scalefactor), - tempQT); - - for (j = 0; j <= 63; j++) - { - quant_table[j] = tempQT[zigzag[j]]; - } - j = 0; - for (row = 0; row <= 7; row++) - { - for (col = 0; col <= 7; col++) - { - quant_table[j] = static_cast( - (quant_table[j] * scalefactorF[row] * scalefactorF[col]) * - 65536); - j++; - } - } - bytePos += 64; - } - - void loadQuantTableCb(std::array &quant_table) - { - float scalefactor[8] = {1.0f, 1.387039845f, 1.306562965f, 1.175875602f, - 1.0f, 0.785694958f, 0.541196100f, 0.275899379f}; - uint8_t j, row, col; - std::array tempQT{}; - - // Load quantization coefficients from JPG file, scale them for DCT and - // reorder from zig-zag order - if (mapping == 0) - { - switch (uvSelector) - { - case 0: - stdChrominanceQt = tbl000Y; - break; - case 1: - stdChrominanceQt = tbl014Y; - break; - case 2: - stdChrominanceQt = tbl029Y; - break; - case 3: - stdChrominanceQt = tbl043Y; - break; - case 4: - stdChrominanceQt = tbl057Y; - break; - case 5: - stdChrominanceQt = tbl071Y; - break; - case 6: - stdChrominanceQt = tbl086Y; - break; - case 7: - stdChrominanceQt = tbl100Y; - break; - } - } - else - { - switch (uvSelector) - { - case 0: - stdChrominanceQt = tbl000Uv; - break; - case 1: - stdChrominanceQt = tbl014Uv; - break; - case 2: - stdChrominanceQt = tbl029Uv; - break; - case 3: - stdChrominanceQt = tbl043Uv; - break; - case 4: - stdChrominanceQt = tbl057Uv; - break; - case 5: - stdChrominanceQt = tbl071Uv; - break; - case 6: - stdChrominanceQt = tbl086Uv; - break; - case 7: - stdChrominanceQt = tbl100Uv; - break; - } - } - setQuantTable(stdChrominanceQt, static_cast(scalefactoruv), - tempQT); - - for (j = 0; j <= 63; j++) - { - quant_table[j] = tempQT[zigzag[j]]; - } - j = 0; - for (row = 0; row <= 7; row++) - { - for (col = 0; col <= 7; col++) - { - quant_table[j] = static_cast( - (quant_table[j] * scalefactor[row] * scalefactor[col]) * - 65536); - j++; - } - } - bytePos += 64; - } - // Note: Added for Dual_JPEG - void loadAdvanceQuantTable(std::array &quant_table) - { - float scalefactor[8] = {1.0f, 1.387039845f, 1.306562965f, 1.175875602f, - 1.0f, 0.785694958f, 0.541196100f, 0.275899379f}; - uint8_t j, row, col; - std::array tempQT{}; - - // Load quantization coefficients from JPG file, scale them for DCT and - // reorder - // from zig-zag order - switch (advanceSelector) - { - case 0: - stdLuminanceQt = tbl000Y; - break; - case 1: - stdLuminanceQt = tbl014Y; - break; - case 2: - stdLuminanceQt = tbl029Y; - break; - case 3: - stdLuminanceQt = tbl043Y; - break; - case 4: - stdLuminanceQt = tbl057Y; - break; - case 5: - stdLuminanceQt = tbl071Y; - break; - case 6: - stdLuminanceQt = tbl086Y; - break; - case 7: - stdLuminanceQt = tbl100Y; - break; - } - // Note: pass ADVANCE SCALE FACTOR to sub-function in Dual-JPEG - setQuantTable(stdLuminanceQt, static_cast(advancescalefactor), - tempQT); - - for (j = 0; j <= 63; j++) - { - quant_table[j] = tempQT[zigzag[j]]; - } - j = 0; - for (row = 0; row <= 7; row++) - { - for (col = 0; col <= 7; col++) - { - quant_table[j] = static_cast( - (quant_table[j] * scalefactor[row] * scalefactor[col]) * - 65536); - j++; - } - } - bytePos += 64; - } - - // Note: Added for Dual-JPEG - void loadAdvanceQuantTableCb(std::array &quant_table) - { - float scalefactor[8] = {1.0f, 1.387039845f, 1.306562965f, 1.175875602f, - 1.0f, 0.785694958f, 0.541196100f, 0.275899379f}; - uint8_t j, row, col; - std::array tempQT{}; - - // Load quantization coefficients from JPG file, scale them for DCT and - // reorder - // from zig-zag order - if (mapping == 1) - { - switch (advanceSelector) - { - case 0: - stdChrominanceQt = tbl000Y; - break; - case 1: - stdChrominanceQt = tbl014Y; - break; - case 2: - stdChrominanceQt = tbl029Y; - break; - case 3: - stdChrominanceQt = tbl043Y; - break; - case 4: - stdChrominanceQt = tbl057Y; - break; - case 5: - stdChrominanceQt = tbl071Y; - break; - case 6: - stdChrominanceQt = tbl086Y; - break; - case 7: - stdChrominanceQt = tbl100Y; - break; - } - } - else - { - switch (advanceSelector) - { - case 0: - stdChrominanceQt = tbl000Uv; - break; - case 1: - stdChrominanceQt = tbl014Uv; - break; - case 2: - stdChrominanceQt = tbl029Uv; - break; - case 3: - stdChrominanceQt = tbl043Uv; - break; - case 4: - stdChrominanceQt = tbl057Uv; - break; - case 5: - stdChrominanceQt = tbl071Uv; - break; - case 6: - stdChrominanceQt = tbl086Uv; - break; - case 7: - stdChrominanceQt = tbl100Uv; - break; - } - } - // Note: pass ADVANCE SCALE FACTOR to sub-function in Dual-JPEG - setQuantTable(stdChrominanceQt, - static_cast(advancescalefactoruv), tempQT); - - for (j = 0; j <= 63; j++) - { - quant_table[j] = tempQT[zigzag[j]]; - } - j = 0; - for (row = 0; row <= 7; row++) - { - for (col = 0; col <= 7; col++) - { - quant_table[j] = static_cast( - (quant_table[j] * scalefactor[row] * scalefactor[col]) * - 65536); - j++; - } - } - bytePos += 64; - } - - void idctTransform(short *coef, uint8_t *data, uint8_t nBlock) - { -#define FIX_1_082392200 ((int)277) /* FIX(1.082392200) */ -#define FIX_1_414213562 ((int)362) /* FIX(1.414213562) */ -#define FIX_1_847759065 ((int)473) /* FIX(1.847759065) */ -#define FIX_2_613125930 ((int)669) /* FIX(2.613125930) */ - -#define MULTIPLY(var, cons) ((int)((var) * (cons)) >> 8) - - int tmp0, tmp1, tmp2, tmp3, tmp4, tmp5, tmp6, tmp7; - int tmp10, tmp11, tmp12, tmp13; - int z5, z10, z11, z12, z13; - int workspace[64]; /* buffers data between passes */ - - short *inptr = coef; - long *quantptr; - int *wsptr = workspace; - unsigned char *outptr; - unsigned char *rLimit = rlimitTable + 128; - int ctr, dcval, dctsize = 8; - - quantptr = &qt[nBlock][0]; - - // Pass 1: process columns from input (inptr), store into work - // array(wsptr) - - for (ctr = 8; ctr > 0; ctr--) - { - /* Due to quantization, we will usually find that many of the input - * coefficients are zero, especially the AC terms. We can exploit - * this by short-circuiting the IDCT calculation for any column in - * which all the AC terms are zero. In that case each output is - * equal to the DC coefficient (with scale factor as needed). With - * typical images and quantization tables, half or more of the - * column DCT calculations can be simplified this way. - */ - - if ((inptr[dctsize * 1] | inptr[dctsize * 2] | inptr[dctsize * 3] | - inptr[dctsize * 4] | inptr[dctsize * 5] | inptr[dctsize * 6] | - inptr[dctsize * 7]) == 0) - { - /* AC terms all zero */ - dcval = static_cast( - (inptr[dctsize * 0] * quantptr[dctsize * 0]) >> 16); - - wsptr[dctsize * 0] = dcval; - wsptr[dctsize * 1] = dcval; - wsptr[dctsize * 2] = dcval; - wsptr[dctsize * 3] = dcval; - wsptr[dctsize * 4] = dcval; - wsptr[dctsize * 5] = dcval; - wsptr[dctsize * 6] = dcval; - wsptr[dctsize * 7] = dcval; - - inptr++; /* advance pointers to next column */ - quantptr++; - wsptr++; - continue; - } - - /* Even part */ - - tmp0 = (inptr[dctsize * 0] * quantptr[dctsize * 0]) >> 16; - tmp1 = (inptr[dctsize * 2] * quantptr[dctsize * 2]) >> 16; - tmp2 = (inptr[dctsize * 4] * quantptr[dctsize * 4]) >> 16; - tmp3 = (inptr[dctsize * 6] * quantptr[dctsize * 6]) >> 16; - - tmp10 = tmp0 + tmp2; /* phase 3 */ - tmp11 = tmp0 - tmp2; - - tmp13 = tmp1 + tmp3; /* phases 5-3 */ - tmp12 = MULTIPLY(tmp1 - tmp3, FIX_1_414213562) - tmp13; /* 2*c4 */ - - tmp0 = tmp10 + tmp13; /* phase 2 */ - tmp3 = tmp10 - tmp13; - tmp1 = tmp11 + tmp12; - tmp2 = tmp11 - tmp12; - - /* Odd part */ - - tmp4 = (inptr[dctsize * 1] * quantptr[dctsize * 1]) >> 16; - tmp5 = (inptr[dctsize * 3] * quantptr[dctsize * 3]) >> 16; - tmp6 = (inptr[dctsize * 5] * quantptr[dctsize * 5]) >> 16; - tmp7 = (inptr[dctsize * 7] * quantptr[dctsize * 7]) >> 16; - - z13 = tmp6 + tmp5; /* phase 6 */ - z10 = tmp6 - tmp5; - z11 = tmp4 + tmp7; - z12 = tmp4 - tmp7; - - tmp7 = z11 + z13; /* phase 5 */ - tmp11 = MULTIPLY(z11 - z13, FIX_1_414213562); /* 2*c4 */ - - z5 = MULTIPLY(z10 + z12, FIX_1_847759065); /* 2*c2 */ - tmp10 = MULTIPLY(z12, FIX_1_082392200) - z5; /* 2*(c2-c6) */ - tmp12 = MULTIPLY(z10, -FIX_2_613125930) + z5; /* -2*(c2+c6) */ - - tmp6 = tmp12 - tmp7; /* phase 2 */ - tmp5 = tmp11 - tmp6; - tmp4 = tmp10 + tmp5; - - wsptr[dctsize * 0] = (tmp0 + tmp7); - wsptr[dctsize * 7] = (tmp0 - tmp7); - wsptr[dctsize * 1] = (tmp1 + tmp6); - wsptr[dctsize * 6] = (tmp1 - tmp6); - wsptr[dctsize * 2] = (tmp2 + tmp5); - wsptr[dctsize * 5] = (tmp2 - tmp5); - wsptr[dctsize * 4] = (tmp3 + tmp4); - wsptr[dctsize * 3] = (tmp3 - tmp4); - - inptr++; /* advance pointers to next column */ - quantptr++; - wsptr++; - } - -/* Pass 2: process rows from work array, store into output array. */ -/* Note that we must descale the results by a factor of 8 == 2**3, */ -/* and also undo the PASS1_BITS scaling. */ - -//#define RANGE_MASK 1023; //2 bits wider than legal samples -#define PASS1_BITS 0 -#define IDESCALE(x, n) ((int)((x) >> (n))) - - wsptr = workspace; - for (ctr = 0; ctr < dctsize; ctr++) - { - outptr = data + ctr * 8; - - /* Rows of zeroes can be exploited in the same way as we did with - * columns. However, the column calculation has created many nonzero - * AC terms, so the simplification applies less often (typically 5% - * to 10% of the time). On machines with very fast multiplication, - * it's possible that the test takes more time than it's worth. In - * that case this section may be commented out. - */ - /* Even part */ - - tmp10 = (wsptr[0] + wsptr[4]); - tmp11 = (wsptr[0] - wsptr[4]); - - tmp13 = (wsptr[2] + wsptr[6]); - tmp12 = MULTIPLY((int)wsptr[2] - (int)wsptr[6], FIX_1_414213562) - - tmp13; - - tmp0 = tmp10 + tmp13; - tmp3 = tmp10 - tmp13; - tmp1 = tmp11 + tmp12; - tmp2 = tmp11 - tmp12; - - /* Odd part */ - - z13 = wsptr[5] + wsptr[3]; - z10 = wsptr[5] - wsptr[3]; - z11 = wsptr[1] + wsptr[7]; - z12 = wsptr[1] - wsptr[7]; - - tmp7 = z11 + z13; /* phase 5 */ - tmp11 = MULTIPLY(z11 - z13, FIX_1_414213562); /* 2*c4 */ - - z5 = MULTIPLY(z10 + z12, FIX_1_847759065); /* 2*c2 */ - tmp10 = MULTIPLY(z12, FIX_1_082392200) - z5; /* 2*(c2-c6) */ - tmp12 = MULTIPLY(z10, -FIX_2_613125930) + z5; /* -2*(c2+c6) */ - - tmp6 = tmp12 - tmp7; /* phase 2 */ - tmp5 = tmp11 - tmp6; - tmp4 = tmp10 + tmp5; - - /* Final output stage: scale down by a factor of 8 and range-limit - */ - - outptr[0] = - rLimit[IDESCALE((tmp0 + tmp7), (PASS1_BITS + 3)) & 1023L]; - outptr[7] = - rLimit[IDESCALE((tmp0 - tmp7), (PASS1_BITS + 3)) & 1023L]; - outptr[1] = - rLimit[IDESCALE((tmp1 + tmp6), (PASS1_BITS + 3)) & 1023L]; - outptr[6] = - rLimit[IDESCALE((tmp1 - tmp6), (PASS1_BITS + 3)) & 1023L]; - outptr[2] = - rLimit[IDESCALE((tmp2 + tmp5), (PASS1_BITS + 3)) & 1023L]; - outptr[5] = - rLimit[IDESCALE((tmp2 - tmp5), (PASS1_BITS + 3)) & 1023L]; - outptr[4] = - rLimit[IDESCALE((tmp3 + tmp4), (PASS1_BITS + 3)) & 1023L]; - outptr[3] = - rLimit[IDESCALE((tmp3 - tmp4), (PASS1_BITS + 3)) & 1023L]; - - wsptr += dctsize; /* advance pointer to next row */ - } - } - void yuvToRgb( - int txb, int tyb, - unsigned char - *pYCbCr, // in, Y: 256 or 64 bytes; Cb: 64 bytes; Cr: 64 bytes - struct RGB *pYUV, // in, Y: 256 or 64 bytes; Cb: 64 bytes; Cr: 64 bytes - unsigned char - *pBgr // out, BGR format, 16*16*3 = 768 bytes; or 8*8*3=192 bytes - ) - { - int i, j, pos, m, n; - unsigned char cb, cr, *py, *pcb, *pcr, *py420[4]; - int y; - struct RGB *pByte; - int nBlocksInMcu = 6; - unsigned int pixelX, pixelY; - - pByte = reinterpret_cast(pBgr); - if (yuvmode == YuvMode::YUV444) - { - py = pYCbCr; - pcb = pYCbCr + 64; - pcr = pcb + 64; - - pixelX = txb * 8; - pixelY = tyb * 8; - pos = (pixelY * width) + pixelX; - - for (j = 0; j < 8; j++) - { - for (i = 0; i < 8; i++) - { - m = ((j << 3) + i); - y = py[m]; - cb = pcb[m]; - cr = pcr[m]; - n = pos + i; - // For 2Pass. Save the YUV value - pYUV[n].b = cb; - pYUV[n].g = y; - pYUV[n].r = cr; - pByte[n].b = rlimitTable[mY[y] + mCbToB[cb]]; - pByte[n].g = rlimitTable[mY[y] + mCbToG[cb] + mCrToG[cr]]; - pByte[n].r = rlimitTable[mY[y] + mCrToR[cr]]; - } - pos += width; - } - } - else - { - for (i = 0; i < nBlocksInMcu - 2; i++) - { - py420[i] = pYCbCr + i * 64; - } - pcb = pYCbCr + (nBlocksInMcu - 2) * 64; - pcr = pcb + 64; - - pixelX = txb * 16; - pixelY = tyb * 16; - pos = (pixelY * width) + pixelX; - - for (j = 0; j < 16; j++) - { - for (i = 0; i < 16; i++) - { - // block number is ((j/8) * 2 + i/8)={0, 1, 2, 3} - y = *(py420[(j >> 3) * 2 + (i >> 3)]++); - m = ((j >> 1) << 3) + (i >> 1); - cb = pcb[m]; - cr = pcr[m]; - n = pos + i; - pByte[n].b = rlimitTable[mY[y] + mCbToB[cb]]; - pByte[n].g = rlimitTable[mY[y] + mCbToG[cb] + mCrToG[cr]]; - pByte[n].r = rlimitTable[mY[y] + mCrToR[cr]]; - } - pos += width; - } - } - } - void yuvToBuffer( - int txb, int tyb, - unsigned char - *pYCbCr, // in, Y: 256 or 64 bytes; Cb: 64 bytes; Cr: 64 bytes - struct RGB - *pYUV, // out, BGR format, 16*16*3 = 768 bytes; or 8*8*3=192 bytes - unsigned char - *pBgr // out, BGR format, 16*16*3 = 768 bytes; or 8*8*3=192 bytes - ) - { - int i, j, pos, m, n; - unsigned char cb, cr, *py, *pcb, *pcr, *py420[4]; - int y; - struct RGB *pByte; - int nBlocksInMcu = 6; - unsigned int pixelX, pixelY; - - pByte = reinterpret_cast(pBgr); - if (yuvmode == YuvMode::YUV444) - { - py = pYCbCr; - pcb = pYCbCr + 64; - pcr = pcb + 64; - - pixelX = txb * 8; - pixelY = tyb * 8; - pos = (pixelY * width) + pixelX; - - for (j = 0; j < 8; j++) - { - for (i = 0; i < 8; i++) - { - m = ((j << 3) + i); - n = pos + i; - y = pYUV[n].g + (py[m] - 128); - cb = pYUV[n].b + (pcb[m] - 128); - cr = pYUV[n].r + (pcr[m] - 128); - pYUV[n].b = cb; - pYUV[n].g = y; - pYUV[n].r = cr; - pByte[n].b = rlimitTable[mY[y] + mCbToB[cb]]; - pByte[n].g = rlimitTable[mY[y] + mCbToG[cb] + mCrToG[cr]]; - pByte[n].r = rlimitTable[mY[y] + mCrToR[cr]]; - } - pos += width; - } - } - else - { - for (i = 0; i < nBlocksInMcu - 2; i++) - { - py420[i] = pYCbCr + i * 64; - } - pcb = pYCbCr + (nBlocksInMcu - 2) * 64; - pcr = pcb + 64; - - pixelX = txb * 16; - pixelY = tyb * 16; - pos = (pixelY * width) + pixelX; - - for (j = 0; j < 16; j++) - { - for (i = 0; i < 16; i++) - { - // block number is ((j/8) * 2 + i/8)={0, 1, 2, 3} - y = *(py420[(j >> 3) * 2 + (i >> 3)]++); - m = ((j >> 1) << 3) + (i >> 1); - cb = pcb[m]; - cr = pcr[m]; - n = pos + i; - pByte[n].b = rlimitTable[mY[y] + mCbToB[cb]]; - pByte[n].g = rlimitTable[mY[y] + mCbToG[cb] + mCrToG[cr]]; - pByte[n].r = rlimitTable[mY[y] + mCrToR[cr]]; - } - pos += width; - } - } - } - void decompress(int txb, int tyb, char *outBuf, uint8_t QT_TableSelection) - { - unsigned char *ptr; - unsigned char byTileYuv[768] = {}; - - memset(dctCoeff, 0, 384 * 2); - ptr = byTileYuv; - processHuffmanDataUnit(ydcNr, yacNr, &dcy, 0); - idctTransform(dctCoeff, ptr, QT_TableSelection); - ptr += 64; - - if (yuvmode == YuvMode::YUV420) - { - processHuffmanDataUnit(ydcNr, yacNr, &dcy, 64); - idctTransform(dctCoeff + 64, ptr, QT_TableSelection); - ptr += 64; - - processHuffmanDataUnit(ydcNr, yacNr, &dcy, 128); - idctTransform(dctCoeff + 128, ptr, QT_TableSelection); - ptr += 64; - - processHuffmanDataUnit(ydcNr, yacNr, &dcy, 192); - idctTransform(dctCoeff + 192, ptr, QT_TableSelection); - ptr += 64; - - processHuffmanDataUnit(cbDcNr, cbAcNr, &dcCb, 256); - idctTransform(dctCoeff + 256, ptr, QT_TableSelection + 1); - ptr += 64; - - processHuffmanDataUnit(crDcNr, crAcNr, &dcCr, 320); - idctTransform(dctCoeff + 320, ptr, QT_TableSelection + 1); - } - else - { - processHuffmanDataUnit(cbDcNr, cbAcNr, &dcCb, 64); - idctTransform(dctCoeff + 64, ptr, QT_TableSelection + 1); - ptr += 64; - - processHuffmanDataUnit(crDcNr, crAcNr, &dcCr, 128); - idctTransform(dctCoeff + 128, ptr, QT_TableSelection + 1); - } - - // yuvToRgb (txb, tyb, byTileYuv, (unsigned char *)outBuf); - // yuvBuffer for YUV record - yuvToRgb(txb, tyb, byTileYuv, yuvBuffer.data(), - reinterpret_cast(outBuf)); - } - - void decompress2Pass(int txb, int tyb, char *outBuf, - uint8_t QT_TableSelection) - { - unsigned char *ptr; - unsigned char byTileYuv[768]; - memset(dctCoeff, 0, 384 * 2); - - ptr = byTileYuv; - processHuffmanDataUnit(ydcNr, yacNr, &dcy, 0); - idctTransform(dctCoeff, ptr, QT_TableSelection); - ptr += 64; - - processHuffmanDataUnit(cbDcNr, cbAcNr, &dcCb, 64); - idctTransform(dctCoeff + 64, ptr, QT_TableSelection + 1); - ptr += 64; - - processHuffmanDataUnit(crDcNr, crAcNr, &dcCr, 128); - idctTransform(dctCoeff + 128, ptr, QT_TableSelection + 1); - - yuvToBuffer(txb, tyb, byTileYuv, yuvBuffer.data(), - reinterpret_cast(outBuf)); - // yuvToRgb (txb, tyb, byTileYuv, (unsigned char *)outBuf); - } - - void vqDecompress(int txb, int tyb, char *outBuf, uint8_t QT_TableSelection, - struct ColorCache *VQ) - { - unsigned char *ptr, i; - unsigned char byTileYuv[192]; - int data; - - ptr = byTileYuv; - if (VQ->bitMapBits == 0) - { - for (i = 0; i < 64; i++) - { - ptr[0] = (VQ->color[VQ->index[0]] & 0xFF0000) >> 16; - ptr[64] = (VQ->color[VQ->index[0]] & 0x00FF00) >> 8; - ptr[128] = VQ->color[VQ->index[0]] & 0x0000FF; - ptr += 1; - } - } - else - { - for (i = 0; i < 64; i++) - { - data = static_cast(lookKbits(VQ->bitMapBits)); - ptr[0] = (VQ->color[VQ->index[data]] & 0xFF0000) >> 16; - ptr[64] = (VQ->color[VQ->index[data]] & 0x00FF00) >> 8; - ptr[128] = VQ->color[VQ->index[data]] & 0x0000FF; - ptr += 1; - skipKbits(VQ->bitMapBits); - } - } - // yuvToRgb (txb, tyb, byTileYuv, (unsigned char *)outBuf); - yuvToRgb(txb, tyb, byTileYuv, yuvBuffer.data(), - reinterpret_cast(outBuf)); - } - - void moveBlockIndex() - { - if (yuvmode == YuvMode::YUV444) - { - txb++; - if (txb >= static_cast(width / 8)) - { - tyb++; - if (tyb >= static_cast(height / 8)) - { - tyb = 0; - } - txb = 0; - } - } - else - { - txb++; - if (txb >= static_cast(width / 16)) - { - tyb++; - if (tyb >= static_cast(height / 16)) - { - tyb = 0; - } - txb = 0; - } - } - } - - void initColorTable() - { - int i, x; - int nScale = 1L << 16; // equal to power(2,16) - int nHalf = nScale >> 1; - -#define FIX(x) ((int)((x)*nScale + 0.5)) - - /* i is the actual input pixel value, in the range 0..MAXJSAMPLE */ - /* The Cb or Cr value we are thinking of is x = i - CENTERJSAMPLE */ - /* Cr=>r value is nearest int to 1.597656 * x */ - /* Cb=>b value is nearest int to 2.015625 * x */ - /* Cr=>g value is scaled-up -0.8125 * x */ - /* Cb=>g value is scaled-up -0.390625 * x */ - for (i = 0, x = -128; i < 256; i++, x++) - { - mCrToR[i] = (FIX(1.597656) * x + nHalf) >> 16; - mCbToB[i] = (FIX(2.015625) * x + nHalf) >> 16; - mCrToG[i] = (-FIX(0.8125) * x + nHalf) >> 16; - mCbToG[i] = (-FIX(0.390625) * x + nHalf) >> 16; - } - for (i = 0, x = -16; i < 256; i++, x++) - { - mY[i] = (FIX(1.164) * x + nHalf) >> 16; - } - // For color Text Enchance Y Re-map. Recommend to disable in default - /* - for (i = 0; i < - (VideoEngineInfo->INFData.Gamma1_Gamma2_Seperate); i++) { temp = - (double)i / VideoEngineInfo->INFData.Gamma1_Gamma2_Seperate; temp1 - = 1.0 / VideoEngineInfo->INFData.Gamma1Parameter; mY[i] = - (BYTE)(VideoEngineInfo->INFData.Gamma1_Gamma2_Seperate * pow (temp, - temp1)); - if (mY[i] > 255) mY[i] = 255; - } - for (i = (VideoEngineInfo->INFData.Gamma1_Gamma2_Seperate); i < - 256; i++) { mY[i] = - (BYTE)((VideoEngineInfo->INFData.Gamma1_Gamma2_Seperate) + (256 - - VideoEngineInfo->INFData.Gamma1_Gamma2_Seperate) * ( pow((double)((i - - VideoEngineInfo->INFData.Gamma1_Gamma2_Seperate) / (256 - - (VideoEngineInfo->INFData.Gamma1_Gamma2_Seperate))), (1.0 / - VideoEngineInfo->INFData.Gamma2Parameter)) )); - if (mY[i] > 255) mY[i] = 255; - } - */ - } - void loadHuffmanTable(HuffmanTable *HT, const unsigned char *nrcode, - const unsigned char *value, - const unsigned short int *Huff_code) - { - unsigned char k, j, i; - unsigned int code, codeIndex; - - for (j = 1; j <= 16; j++) - { - HT->length[j] = nrcode[j]; - } - for (i = 0, k = 1; k <= 16; k++) - { - for (j = 0; j < HT->length[k]; j++) - { - HT->v[wordHiLo(k, j)] = value[i]; - i++; - } - } - - code = 0; - for (k = 1; k <= 16; k++) - { - HT->minorCode[k] = static_cast(code); - for (j = 1; j <= HT->length[k]; j++) - { - code++; - } - HT->majorCode[k] = static_cast(code - 1); - code *= 2; - if (HT->length[k] == 0) - { - HT->minorCode[k] = 0xFFFF; - HT->majorCode[k] = 0; - } - } - - HT->len[0] = 2; - i = 2; - - for (codeIndex = 1; codeIndex < 65535; codeIndex++) - { - if (codeIndex < Huff_code[i]) - { - HT->len[codeIndex] = - static_cast(Huff_code[i + 1]); - } - else - { - i = i + 2; - HT->len[codeIndex] = - static_cast(Huff_code[i + 1]); - } - } - } - void initJpgTable() - { - initColorTable(); - prepareRangeLimitTable(); - loadHuffmanTable(&htdc[0], stdDcLuminanceNrcodes, stdDcLuminanceValues, - dcLuminanceHuffmancode); - loadHuffmanTable(&htac[0], stdAcLuminanceNrcodes, stdAcLuminanceValues, - acLuminanceHuffmancode); - loadHuffmanTable(&htdc[1], stdDcChrominanceNrcodes, - stdDcChrominanceValues, dcChrominanceHuffmancode); - loadHuffmanTable(&htac[1], stdAcChrominanceNrcodes, - stdAcChrominanceValues, acChrominanceHuffmancode); - } - - void prepareRangeLimitTable() - /* Allocate and fill in the sample_range_limit table */ - { - int j; - rlimitTable = reinterpret_cast(malloc(5 * 256L + 128)); - /* First segment of "simple" table: limit[x] = 0 for x < 0 */ - memset((void *)rlimitTable, 0, 256); - rlimitTable += 256; /* allow negative subscripts of simple table */ - /* Main part of "simple" table: limit[x] = x */ - for (j = 0; j < 256; j++) - { - rlimitTable[j] = j; - } - /* End of simple table, rest of first half of post-IDCT table */ - for (j = 256; j < 640; j++) - { - rlimitTable[j] = 255; - } - - /* Second half of post-IDCT table */ - memset((void *)(rlimitTable + 640), 0, 384); - for (j = 0; j < 128; j++) - { - rlimitTable[j + 1024] = j; - } - } - - inline unsigned short int wordHiLo(uint8_t byte_high, uint8_t byte_low) - { - return (byte_high << 8) + byte_low; - } - - // river - void processHuffmanDataUnit(uint8_t DC_nr, uint8_t AC_nr, - signed short int *previous_DC, - unsigned short int position) - { - uint8_t nr = 0; - uint8_t k; - unsigned short int tmpHcode; - uint8_t sizeVal, count0; - unsigned short int *minCode; - uint8_t *huffValues; - uint8_t byteTemp; - - minCode = htdc[DC_nr].minorCode; - // maj_code=htdc[DC_nr].majorCode; - huffValues = htdc[DC_nr].v; - - // DC - k = htdc[DC_nr].len[static_cast(codebuf >> 16)]; - // river - // tmp_Hcode=lookKbits(k); - tmpHcode = static_cast(codebuf >> (32 - k)); - skipKbits(k); - sizeVal = huffValues[wordHiLo( - k, static_cast(tmpHcode - minCode[k]))]; - if (sizeVal == 0) - { - dctCoeff[position + 0] = *previous_DC; - } - else - { - dctCoeff[position + 0] = *previous_DC + getKbits(sizeVal); - *previous_DC = dctCoeff[position + 0]; - } - - // Second, AC coefficient decoding - minCode = htac[AC_nr].minorCode; - // maj_code=htac[AC_nr].majorCode; - huffValues = htac[AC_nr].v; - - nr = 1; // AC coefficient - do - { - k = htac[AC_nr].len[static_cast(codebuf >> 16)]; - tmpHcode = static_cast(codebuf >> (32 - k)); - skipKbits(k); - - byteTemp = huffValues[wordHiLo( - k, static_cast(tmpHcode - minCode[k]))]; - sizeVal = byteTemp & 0xF; - count0 = byteTemp >> 4; - if (sizeVal == 0) - { - if (count0 != 0xF) - { - break; - } - nr += 16; - } - else - { - nr += count0; // skip count_0 zeroes - dctCoeff[position + dezigzag[nr++]] = getKbits(sizeVal); - } - } while (nr < 64); - } - - unsigned short int lookKbits(uint8_t k) - { - unsigned short int revcode; - - revcode = static_cast(codebuf >> (32 - k)); - - return (revcode); - } - - void skipKbits(uint8_t k) - { - unsigned long readbuf; - - if ((newbits - k) <= 0) - { - readbuf = buffer[bufferIndex]; - bufferIndex++; - codebuf = (codebuf << k) | - ((newbuf | (readbuf >> (newbits))) >> (32 - k)); - newbuf = readbuf << (k - newbits); - newbits = 32 + newbits - k; - } - else - { - codebuf = (codebuf << k) | (newbuf >> (32 - k)); - newbuf = newbuf << k; - newbits -= k; - } - } - - signed short int getKbits(uint8_t k) - { - signed short int signedWordvalue; - - // river - // signed_wordvalue=lookKbits(k); - signedWordvalue = static_cast(codebuf >> (32 - k)); - if (((1L << (k - 1)) & signedWordvalue) == 0) - { - // neg_pow2 was previously defined as the below. It seemed silly to - // keep a table of values around for something THat's relatively - // easy to compute, so it was replaced with the appropriate math - // signed_wordvalue = signed_wordvalue - (0xFFFF >> (16 - k)); - std::array negPow2 = { - 0, -1, -3, -7, -15, -31, -63, -127, - -255, -511, -1023, -2047, -4095, -8191, -16383, -32767}; - - signedWordvalue = signedWordvalue + negPow2[k]; - } - skipKbits(k); - return signedWordvalue; - } - int initJpgDecoding() - { - bytePos = 0; - loadQuantTable(qt[0]); - loadQuantTableCb(qt[1]); - // Note: Added for Dual-JPEG - loadAdvanceQuantTable(qt[2]); - loadAdvanceQuantTableCb(qt[3]); - return 1; - } - - void setQuantTable(const uint8_t *basic_table, uint8_t scale_factor, - std::array &newtable) - // Set quantization table and zigzag reorder it - { - uint8_t i; - long temp; - for (i = 0; i < 64; i++) - { - temp = (static_cast(basic_table[i] * 16) / scale_factor); - /* limit the values to the valid range */ - if (temp <= 0L) - { - temp = 1L; - } - if (temp > 255L) - { - temp = 255L; /* limit to baseline range if requested */ - } - newtable[zigzag[i]] = static_cast(temp); - } - } - - void updatereadbuf(uint32_t *codebuf, uint32_t *newbuf, int walks, - int *newbits, std::vector &buffer) - { - unsigned long readbuf; - - if ((*newbits - walks) <= 0) - { - readbuf = buffer[bufferIndex]; - bufferIndex++; - *codebuf = (*codebuf << walks) | - ((*newbuf | (readbuf >> (*newbits))) >> (32 - walks)); - *newbuf = readbuf << (walks - *newbits); - *newbits = 32 + *newbits - walks; - } - else - { - *codebuf = (*codebuf << walks) | (*newbuf >> (32 - walks)); - *newbuf = *newbuf << walks; - *newbits -= walks; - } - } - - uint32_t decode(std::vector &bufferVector, unsigned long width, - unsigned long height, YuvMode yuvmode_in, int ySelector, - int uvSelector) - { - ColorCache decodeColor; - if (width != userWidth || height != userHeight || - yuvmode_in != yuvmode || ySelector != ySelector || - uvSelector != uvSelector) - { - yuvmode = yuvmode_in; - ySelector = ySelector; // 0-7 - uvSelector = uvSelector; // 0-7 - userHeight = height; - userWidth = width; - width = width; - height = height; - - // TODO(ed) Magic number section. Document appropriately - advanceSelector = 0; // 0-7 - mapping = 0; // 0 or 1 - - if (yuvmode == YuvMode::YUV420) - { - if ((width % 16) != 0u) - { - width = width + 16 - (width % 16); - } - if ((height % 16) != 0u) - { - height = height + 16 - (height % 16); - } - } - else - { - if ((width % 8) != 0u) - { - width = width + 8 - (width % 8); - } - if ((height % 8) != 0u) - { - height = height + 8 - (height % 8); - } - } - - initJpgDecoding(); - } - // TODO(ed) cleanup cruft - buffer = bufferVector.data(); - - codebuf = bufferVector[0]; - newbuf = bufferVector[1]; - bufferIndex = 2; - - txb = tyb = 0; - newbits = 32; - dcy = dcCb = dcCr = 0; - - static const uint32_t vqHeaderMask = 0x01; - static const uint32_t vqNoUpdateHeader = 0x00; - static const uint32_t vqUpdateHeader = 0x01; - static const int vqNoUpdateLength = 0x03; - static const int vqUpdateLength = 0x1B; - static const uint32_t vqIndexMask = 0x03; - static const uint32_t vqColorMask = 0xFFFFFF; - - static const int blockAsT2100StartLength = 0x04; - static const int blockAsT2100SkipLength = 20; // S:1 H:3 X:8 Y:8 - - do - { - auto blockHeader = static_cast((codebuf >> 28) & 0xFF); - switch (blockHeader) - { - case JpgBlock::JPEG_NO_SKIP_CODE: - updatereadbuf(&codebuf, &newbuf, blockAsT2100StartLength, - &newbits, bufferVector); - decompress(txb, tyb, - reinterpret_cast(outBuffer.data()), 0); - break; - case JpgBlock::FRAME_END_CODE: - return 0; - break; - case JpgBlock::JPEG_SKIP_CODE: - - txb = (codebuf & 0x0FF00000) >> 20; - tyb = (codebuf & 0x0FF000) >> 12; - - updatereadbuf(&codebuf, &newbuf, blockAsT2100SkipLength, - &newbits, bufferVector); - decompress(txb, tyb, - reinterpret_cast(outBuffer.data()), 0); - break; - case JpgBlock::VQ_NO_SKIP_1_COLOR_CODE: - updatereadbuf(&codebuf, &newbuf, blockAsT2100StartLength, - &newbits, bufferVector); - decodeColor.bitMapBits = 0; - - for (int i = 0; i < 1; i++) - { - decodeColor.index[i] = ((codebuf >> 29) & vqIndexMask); - if (((codebuf >> 31) & vqHeaderMask) == - vqNoUpdateHeader) - { - updatereadbuf(&codebuf, &newbuf, vqNoUpdateLength, - &newbits, bufferVector); - } - else - { - decodeColor.color[decodeColor.index[i]] = - ((codebuf >> 5) & vqColorMask); - updatereadbuf(&codebuf, &newbuf, vqUpdateLength, - &newbits, bufferVector); - } - } - vqDecompress(txb, tyb, - reinterpret_cast(outBuffer.data()), 0, - &decodeColor); - break; - case JpgBlock::VQ_SKIP_1_COLOR_CODE: - txb = (codebuf & 0x0FF00000) >> 20; - tyb = (codebuf & 0x0FF000) >> 12; - - updatereadbuf(&codebuf, &newbuf, blockAsT2100SkipLength, - &newbits, bufferVector); - decodeColor.bitMapBits = 0; - - for (int i = 0; i < 1; i++) - { - decodeColor.index[i] = ((codebuf >> 29) & vqIndexMask); - if (((codebuf >> 31) & vqHeaderMask) == - vqNoUpdateHeader) - { - updatereadbuf(&codebuf, &newbuf, vqNoUpdateLength, - &newbits, bufferVector); - } - else - { - decodeColor.color[decodeColor.index[i]] = - ((codebuf >> 5) & vqColorMask); - updatereadbuf(&codebuf, &newbuf, vqUpdateLength, - &newbits, bufferVector); - } - } - vqDecompress(txb, tyb, - reinterpret_cast(outBuffer.data()), 0, - &decodeColor); - break; - - case JpgBlock::VQ_NO_SKIP_2_COLOR_CODE: - updatereadbuf(&codebuf, &newbuf, blockAsT2100StartLength, - &newbits, bufferVector); - decodeColor.bitMapBits = 1; - - for (int i = 0; i < 2; i++) - { - decodeColor.index[i] = ((codebuf >> 29) & vqIndexMask); - if (((codebuf >> 31) & vqHeaderMask) == - vqNoUpdateHeader) - { - updatereadbuf(&codebuf, &newbuf, vqNoUpdateLength, - &newbits, bufferVector); - } - else - { - decodeColor.color[decodeColor.index[i]] = - ((codebuf >> 5) & vqColorMask); - updatereadbuf(&codebuf, &newbuf, vqUpdateLength, - &newbits, bufferVector); - } - } - vqDecompress(txb, tyb, - reinterpret_cast(outBuffer.data()), 0, - &decodeColor); - break; - case JpgBlock::VQ_SKIP_2_COLOR_CODE: - txb = (codebuf & 0x0FF00000) >> 20; - tyb = (codebuf & 0x0FF000) >> 12; - - updatereadbuf(&codebuf, &newbuf, blockAsT2100SkipLength, - &newbits, bufferVector); - decodeColor.bitMapBits = 1; - - for (int i = 0; i < 2; i++) - { - decodeColor.index[i] = ((codebuf >> 29) & vqIndexMask); - if (((codebuf >> 31) & vqHeaderMask) == - vqNoUpdateHeader) - { - updatereadbuf(&codebuf, &newbuf, vqNoUpdateLength, - &newbits, bufferVector); - } - else - { - decodeColor.color[decodeColor.index[i]] = - ((codebuf >> 5) & vqColorMask); - updatereadbuf(&codebuf, &newbuf, vqUpdateLength, - &newbits, bufferVector); - } - } - vqDecompress(txb, tyb, - reinterpret_cast(outBuffer.data()), 0, - &decodeColor); - - break; - case JpgBlock::VQ_NO_SKIP_4_COLOR_CODE: - updatereadbuf(&codebuf, &newbuf, blockAsT2100StartLength, - &newbits, bufferVector); - decodeColor.bitMapBits = 2; - - for (unsigned char &i : decodeColor.index) - { - i = ((codebuf >> 29) & vqIndexMask); - if (((codebuf >> 31) & vqHeaderMask) == - vqNoUpdateHeader) - { - updatereadbuf(&codebuf, &newbuf, vqNoUpdateLength, - &newbits, bufferVector); - } - else - { - decodeColor.color[i] = - ((codebuf >> 5) & vqColorMask); - updatereadbuf(&codebuf, &newbuf, vqUpdateLength, - &newbits, bufferVector); - } - } - vqDecompress(txb, tyb, - reinterpret_cast(outBuffer.data()), 0, - &decodeColor); - - break; - - case JpgBlock::VQ_SKIP_4_COLOR_CODE: - txb = (codebuf & 0x0FF00000) >> 20; - tyb = (codebuf & 0x0FF000) >> 12; - - updatereadbuf(&codebuf, &newbuf, blockAsT2100SkipLength, - &newbits, bufferVector); - decodeColor.bitMapBits = 2; - - for (unsigned char &i : decodeColor.index) - { - i = ((codebuf >> 29) & vqIndexMask); - if (((codebuf >> 31) & vqHeaderMask) == - vqNoUpdateHeader) - { - updatereadbuf(&codebuf, &newbuf, vqNoUpdateLength, - &newbits, bufferVector); - } - else - { - decodeColor.color[i] = - ((codebuf >> 5) & vqColorMask); - updatereadbuf(&codebuf, &newbuf, vqUpdateLength, - &newbits, bufferVector); - } - } - vqDecompress(txb, tyb, - reinterpret_cast(outBuffer.data()), 0, - &decodeColor); - - break; - case JpgBlock::JPEG_SKIP_PASS2_CODE: - txb = (codebuf & 0x0FF00000) >> 20; - tyb = (codebuf & 0x0FF000) >> 12; - - updatereadbuf(&codebuf, &newbuf, blockAsT2100SkipLength, - &newbits, bufferVector); - decompress2Pass(txb, tyb, - reinterpret_cast(outBuffer.data()), - 2); - - break; - default: - // TODO(ed) propogate errors upstream - return -1; - break; - } - moveBlockIndex(); - - } while (bufferIndex <= bufferVector.size()); - - return -1; - } - -#ifdef cimg_version - void dump_to_bitmap_file() - { - cimg_library::CImg image(width, height, 1, 3); - for (int y = 0; y < width; y++) - { - for (int x = 0; x < height; x++) - { - auto pixel = outBuffer[x + (y * width)]; - image(x, y, 0) = pixel.r; - image(x, y, 1) = pixel.g; - image(x, y, 2) = pixel.b; - } - } - image.save("/tmp/file2.bmp"); - } -#endif - - private: - YuvMode yuvmode{}; - // width and height are the modes your display used - unsigned long width{}; - unsigned long height{}; - unsigned long userWidth{}; - unsigned long userHeight{}; - unsigned char ySelector{}; - int scalefactor; - int scalefactoruv; - int advancescalefactor; - int advancescalefactoruv; - int mapping{}; - unsigned char uvSelector{}; - unsigned char advanceSelector{}; - int bytePos{}; // current byte position - - // quantization tables, no more than 4 quantization tables - std::array, 4> qt{}; - - // DC huffman tables , no more than 4 (0..3) - std::array htdc{}; - // AC huffman tables (0..3) - std::array htac{}; - std::array mCrToR{}; - std::array mCbToB{}; - std::array mCrToG{}; - std::array mCbToG{}; - std::array mY{}; - unsigned long bufferIndex{}; - uint32_t codebuf{}, newbuf{}, readbuf{}; - const unsigned char *stdLuminanceQt{}; - const uint8_t *stdChrominanceQt{}; - - signed short int dcy{}, dcCb{}, dcCr{}; // Coeficientii DC pentru Y,Cb,Cr - signed short int dctCoeff[384]{}; - // std::vector dctCoeff; // Current DCT_coefficients - // quantization table number for Y, Cb, Cr - uint8_t yqNr = 0, cbQNr = 1, crQNr = 1; - // DC Huffman table number for Y,Cb, Cr - uint8_t ydcNr = 0, cbDcNr = 1, crDcNr = 1; - // AC Huffman table number for Y,Cb, Cr - uint8_t yacNr = 0, cbAcNr = 1, crAcNr = 1; - int txb = 0; - int tyb = 0; - int newbits{}; - uint8_t *rlimitTable{}; - std::vector yuvBuffer; - // TODO(ed) this shouldn't exist. It is cruft that needs cleaning up - uint32_t *buffer{}; - - public: - std::vector outBuffer; -}; -} // namespace ast_video \ No newline at end of file diff --git a/Contrib-Inspur/bmcweb/include/ast_video_puller.hpp b/Contrib-Inspur/bmcweb/include/ast_video_puller.hpp deleted file mode 100644 index c97ca486..00000000 --- a/Contrib-Inspur/bmcweb/include/ast_video_puller.hpp +++ /dev/null @@ -1,212 +0,0 @@ -#pragma once - -#include -#include -#include -#include -#include -#include - -namespace ast_video -{ - -// -// Cursor struct is used in User Mode -// -struct AstCurAttributionTag -{ - unsigned int posX; - unsigned int posY; - unsigned int curWidth; - unsigned int curHeight; - unsigned int curType; // 0:mono 1:color 2:disappear cursor - unsigned int curChangeFlag; -}; - -// -// For storing Cursor Information -// -struct AstCursorTag -{ - AstCurAttributionTag attr; - // unsigned char icon[MAX_CUR_OFFSETX*MAX_CUR_OFFSETY*2]; - unsigned char *icon; //[64*64*2]; -}; - -// -// For select image format, i.e. 422 JPG420, 444 JPG444, lumin/chrom table, 0 -// ~ 11, low to high -// -struct FeaturesTag -{ - short jpgFmt; // 422:JPG420, 444:JPG444 - short luminTbl; - short chromTbl; - short toleranceNoise; - int w; - int h; - unsigned char *buf; -}; - -// -// For configure video engine control registers -// -struct ImageInfo -{ - short doImageRefresh; // Action 0:motion 1:fullframe 2:quick cursor - char qcValid; // quick cursor enable/disable - unsigned int len; - int crypttype; - char cryptkey[16]; - union - { - FeaturesTag features; - AstCursorTag cursorInfo; - } parameter; -}; - -class SimpleVideoPuller -{ - public: - SimpleVideoPuller() : imageInfo(){}; - - void initialize() - { - std::cout << "Opening /dev/video\n"; - videoFd = open("/dev/video", O_RDWR); - if (videoFd == 0) - { - std::cout << "Failed to open /dev/video\n"; - throw std::runtime_error("Failed to open /dev/video"); - } - std::cout << "Opened successfully\n"; - } - - RawVideoBuffer readVideo() - { - assert(videoFd != 0); - RawVideoBuffer raw; - - imageInfo.doImageRefresh = 1; // full frame refresh - imageInfo.qcValid = 0; // quick cursor disabled - imageInfo.parameter.features.buf = - reinterpret_cast(raw.buffer.data()); - imageInfo.crypttype = -1; - std::cout << "Writing\n"; - - int status; - /* - status = write(videoFd, reinterpret_cast(&imageInfo), - sizeof(imageInfo)); - if (status != sizeof(imageInfo)) { - std::cout << "Write failed. Return: " << status << "\n"; - perror("perror output:"); - } - - std::cout << "Write done\n"; - */ - std::cout << "Reading\n"; - status = read(videoFd, reinterpret_cast(&imageInfo), - sizeof(imageInfo)); - std::cout << "Done reading\n"; - - if (status != 0) - { - std::cerr << "Read failed with status " << status << "\n"; - } - - raw.buffer.resize(imageInfo.len); - - raw.height = imageInfo.parameter.features.h; - raw.width = imageInfo.parameter.features.w; - if (imageInfo.parameter.features.jpgFmt == 422) - { - raw.mode = YuvMode::YUV420; - } - else - { - raw.mode = YuvMode::YUV444; - } - return raw; - } - - private: - int videoFd{}; - ImageInfo imageInfo; -}; - -#if defined(BOOST_ASIO_HAS_POSIX_STREAM_DESCRIPTOR) -class AsyncVideoPuller -{ - public: - using video_callback = std::function; - - explicit AsyncVideoPuller(boost::asio::io_context &ioService) : - imageInfo(), devVideo(ioService, open("/dev/video", O_RDWR)) - { - videobuf = std::make_shared(); - - imageInfo.doImageRefresh = 1; // full frame refresh - imageInfo.qcValid = 0; // quick cursor disabled - imageInfo.parameter.features.buf = - reinterpret_cast(videobuf->buffer.data()); - imageInfo.crypttype = -1; - }; - - void registerCallback(video_callback &callback) - { - std::lock_guard lock(callbackMutex); - callbacks.push_back(callback); - startRead(); - } - - void startRead() - { - auto mutableBuffer = boost::asio::buffer(&imageInfo, sizeof(imageInfo)); - boost::asio::async_read(devVideo, mutableBuffer, - [this](const boost::system::error_code &ec, - std::size_t bytes_transferred) { - if (ec) - { - std::cerr << "Read failed with status " - << ec << "\n"; - } - else - { - this->readDone(); - } - }); - } - - void readDone() - { - std::cout << "Done reading\n"; - videobuf->buffer.resize(imageInfo.len); - - videobuf->height = imageInfo.parameter.features.h; - videobuf->width = imageInfo.parameter.features.w; - if (imageInfo.parameter.features.jpgFmt == 422) - { - videobuf->mode = YuvMode::YUV420; - } - else - { - videobuf->mode = YuvMode::YUV444; - } - std::lock_guard lock(callbackMutex); - for (auto &callback : callbacks) - { - // TODO(ed) call callbacks async and double buffer frames - callback(*videobuf); - } - } - - private: - std::shared_ptr videobuf; - boost::asio::posix::stream_descriptor devVideo; - ImageInfo imageInfo; - std::mutex callbackMutex; - std::vector callbacks; -}; -#endif // defined(BOOST_ASIO_HAS_POSIX_STREAM_DESCRIPTOR) -} // namespace ast_video diff --git a/Contrib-Inspur/bmcweb/include/ast_video_types.hpp b/Contrib-Inspur/bmcweb/include/ast_video_types.hpp deleted file mode 100644 index aeef1d84..00000000 --- a/Contrib-Inspur/bmcweb/include/ast_video_types.hpp +++ /dev/null @@ -1,25 +0,0 @@ -#pragma once - -#include -#include -namespace ast_video -{ -enum class YuvMode -{ - YUV444 = 0, - YUV420 = 1 -}; - -class RawVideoBuffer -{ - public: - RawVideoBuffer() : buffer(1024 * 1024 * 10, 0){}; - unsigned long height{}; - unsigned long width{}; - int ySelector{}; - int uvSelector{}; - YuvMode mode; - // TODO(ed) determine a more appropriate buffer size - std::vector buffer; -}; -} // namespace ast_video \ No newline at end of file diff --git a/Contrib-Inspur/bmcweb/include/async_resp.hpp b/Contrib-Inspur/bmcweb/include/async_resp.hpp index af4edebc..78994cf7 100644 --- a/Contrib-Inspur/bmcweb/include/async_resp.hpp +++ b/Contrib-Inspur/bmcweb/include/async_resp.hpp @@ -1,5 +1,7 @@ #pragma once +#include + namespace bmcweb { @@ -7,6 +9,7 @@ namespace bmcweb * AsyncResp * Gathers data needed for response processing after async calls are done */ + class AsyncResp { public: @@ -14,12 +17,23 @@ class AsyncResp { } + AsyncResp(crow::Response& response, std::function&& function) : + res(response), func(std::move(function)) + { + } + ~AsyncResp() { + if (func && res.result() == boost::beast::http::status::ok) + { + func(); + } + res.end(); } crow::Response& res; + std::function func = 0; }; -} // namespace bmcweb \ No newline at end of file +} // namespace bmcweb diff --git a/Contrib-Inspur/bmcweb/include/config.h b/Contrib-Inspur/bmcweb/include/config.h new file mode 100644 index 00000000..b2ab387f --- /dev/null +++ b/Contrib-Inspur/bmcweb/include/config.h @@ -0,0 +1 @@ +#define BMCWEB_HTTP_REQ_BODY_LIMIT_MB 30 diff --git a/Contrib-Inspur/bmcweb/include/dbus_monitor.hpp b/Contrib-Inspur/bmcweb/include/dbus_monitor.hpp index 1b82697f..1747810c 100644 --- a/Contrib-Inspur/bmcweb/include/dbus_monitor.hpp +++ b/Contrib-Inspur/bmcweb/include/dbus_monitor.hpp @@ -1,7 +1,8 @@ #pragma once -#include -#include +#include +#include +#include #include #include #include @@ -109,13 +110,15 @@ inline int onPropertyUpdate(sd_bus_message* m, void* userdata, connection->sendText(j.dump()); return 0; -}; +} template void requestRoutes(Crow& app) { BMCWEB_ROUTE(app, "/subscribe") + .requires({"Login"}) .websocket() - .onopen([&](crow::websocket::Connection& conn) { + .onopen([&](crow::websocket::Connection& conn, + std::shared_ptr asyncResp) { BMCWEB_LOG_DEBUG << "Connection " << &conn << " opened"; sessions[&conn] = DbusWebsocketSession(); }) @@ -150,7 +153,7 @@ template void requestRoutes(Crow& app) nlohmann::json::iterator paths = j.find("paths"); if (paths != j.end()) { - int interfaceCount = thisSession.interfaces.size(); + size_t interfaceCount = thisSession.interfaces.size(); if (interfaceCount == 0) { interfaceCount = 1; @@ -160,7 +163,7 @@ template void requestRoutes(Crow& app) // PropertiesChanged thisSession.matches.reserve(thisSession.matches.size() + paths->size() * - (1 + interfaceCount)); + (1U + interfaceCount)); } std::string object_manager_match_string; std::string properties_match_string; diff --git a/Contrib-Inspur/bmcweb/include/dbus_utility.hpp b/Contrib-Inspur/bmcweb/include/dbus_utility.hpp index e45bb9ac..ac5970de 100644 --- a/Contrib-Inspur/bmcweb/include/dbus_utility.hpp +++ b/Contrib-Inspur/bmcweb/include/dbus_utility.hpp @@ -36,6 +36,11 @@ using ManagedObjectType = std::vector< std::string, boost::container::flat_map>>>; +using ManagedItem = std::pair< + sdbusplus::message::object_path, + boost::container::flat_map< + std::string, boost::container::flat_map>>; + inline void escapePathForDbus(std::string& path) { const std::regex reg("[^A-Za-z0-9_/]"); @@ -48,9 +53,9 @@ inline bool getNthStringFromPath(const std::string& path, int index, std::string& result) { int count = 0; - auto first = path.begin(); - auto last = path.end(); - for (auto it = path.begin(); it < path.end(); it++) + std::string::const_iterator first = path.begin(); + std::string::const_iterator last = path.end(); + for (std::string::const_iterator it = path.begin(); it < path.end(); it++) { // skip first character as it's either a leading slash or the first // character in the word @@ -80,9 +85,27 @@ inline bool getNthStringFromPath(const std::string& path, int index, { first++; } - result = path.substr(first - path.begin(), last - first); + result = path.substr(static_cast(first - path.begin()), + static_cast(last - first)); return true; } +template +inline void checkDbusPathExists(const std::string& path, Callback&& callback) +{ + using GetObjectType = + std::vector>>; + + crow::connections::systemBus->async_method_call( + [callback{std::move(callback)}](const boost::system::error_code ec, + const GetObjectType& object_names) { + callback(!ec && object_names.size() != 0); + }, + "xyz.openbmc_project.ObjectMapper", + "/xyz/openbmc_project/object_mapper", + "xyz.openbmc_project.ObjectMapper", "GetObject", path, + std::array()); +} + } // namespace utility } // namespace dbus diff --git a/Contrib-Inspur/bmcweb/include/filesystem.hpp b/Contrib-Inspur/bmcweb/include/filesystem.hpp deleted file mode 100644 index 9915ee1e..00000000 --- a/Contrib-Inspur/bmcweb/include/filesystem.hpp +++ /dev/null @@ -1,14 +0,0 @@ -// this file splices filesystem in depending on the implementation - -#if __has_include() -#include -#elif __has_include() -#include -namespace std -{ -// splice experimental::filesystem into std -namespace filesystem = std::experimental::filesystem; -} // namespace std -#else -#error filesystem not available -#endif diff --git a/Contrib-Inspur/bmcweb/include/http_utility.hpp b/Contrib-Inspur/bmcweb/include/http_utility.hpp index 0f5bb8ce..6f55c591 100644 --- a/Contrib-Inspur/bmcweb/include/http_utility.hpp +++ b/Contrib-Inspur/bmcweb/include/http_utility.hpp @@ -1,11 +1,13 @@ #pragma once #include +#include "http_request.h" + namespace http_helpers { inline bool requestPrefersHtml(const crow::Request& req) { - boost::string_view header = req.getHeaderValue("accept"); + std::string_view header = req.getHeaderValue("accept"); std::vector encodings; // chrome currently sends 6 accepts headers, firefox sends 4. encodings.reserve(6); @@ -25,7 +27,7 @@ inline bool requestPrefersHtml(const crow::Request& req) return false; } -inline std::string urlEncode(const boost::string_view value) +inline std::string urlEncode(const std::string_view value) { std::ostringstream escaped; escaped.fill('0'); diff --git a/Contrib-Inspur/bmcweb/include/image_upload.hpp b/Contrib-Inspur/bmcweb/include/image_upload.hpp index 6bf56616..69e56373 100644 --- a/Contrib-Inspur/bmcweb/include/image_upload.hpp +++ b/Contrib-Inspur/bmcweb/include/image_upload.hpp @@ -1,6 +1,6 @@ #pragma once -#include +#include #include #include @@ -29,12 +29,12 @@ inline void uploadImageHandler(const crow::Request& req, crow::Response& res, return; } // Make this const static so it survives outside this method - static boost::asio::deadline_timer timeout(*req.ioService, - boost::posix_time::seconds(5)); + static boost::asio::steady_timer timeout(*req.ioService, + std::chrono::seconds(5)); - timeout.expires_from_now(boost::posix_time::seconds(10)); + timeout.expires_after(std::chrono::seconds(15)); - timeout.async_wait([&res](const boost::system::error_code& ec) { + auto timeoutHandler = [&res](const boost::system::error_code& ec) { fwUpdateMatcher = nullptr; if (ec == asio::error::operation_aborted) { @@ -57,7 +57,7 @@ inline void uploadImageHandler(const crow::Request& req, crow::Response& res, {"message", "400 Bad Request"}, {"status", "error"}}; res.end(); - }); + }; std::function callback = [&res](sdbusplus::message::message& m) { @@ -76,12 +76,7 @@ inline void uploadImageHandler(const crow::Request& req, crow::Response& res, "xyz.openbmc_project.Software.Version"; }) != interfaces.end()) { - boost::system::error_code ec; - timeout.cancel(ec); - if (ec) - { - BMCWEB_LOG_ERROR << "error canceling timer " << ec; - } + timeout.cancel(); std::size_t index = path.str.rfind('/'); if (index != std::string::npos) @@ -110,11 +105,13 @@ inline void uploadImageHandler(const crow::Request& req, crow::Response& res, std::ofstream::trunc); out << req.body; out.close(); + timeout.async_wait(timeoutHandler); } template void requestRoutes(Crow& app) { BMCWEB_ROUTE(app, "/upload/image/") + .requires({"ConfigureComponents", "ConfigureManager"}) .methods("POST"_method, "PUT"_method)([](const crow::Request& req, crow::Response& res, const std::string& filename) { @@ -122,6 +119,7 @@ template void requestRoutes(Crow& app) }); BMCWEB_ROUTE(app, "/upload/image") + .requires({"ConfigureComponents", "ConfigureManager"}) .methods("POST"_method, "PUT"_method)( [](const crow::Request& req, crow::Response& res) { uploadImageHandler(req, res, ""); diff --git a/Contrib-Inspur/bmcweb/include/kvm_websocket.hpp b/Contrib-Inspur/bmcweb/include/kvm_websocket.hpp new file mode 100644 index 00000000..306c6840 --- /dev/null +++ b/Contrib-Inspur/bmcweb/include/kvm_websocket.hpp @@ -0,0 +1,189 @@ +#pragma once +#include +#include +#include + +#include +#include +#include + +namespace crow +{ +namespace obmc_kvm +{ + +static constexpr const uint maxSessions = 4; + +class KvmSession +{ + public: + explicit KvmSession(crow::websocket::Connection& conn) : + conn(conn), hostSocket(conn.get_io_context()), doingWrite(false) + { + boost::asio::ip::tcp::endpoint endpoint( + boost::asio::ip::make_address("::1"), 5900); + hostSocket.async_connect( + endpoint, [this, &conn](const boost::system::error_code& ec) { + if (ec) + { + BMCWEB_LOG_ERROR + << "conn:" << &conn + << ", Couldn't connect to KVM socket port: " << ec; + if (ec != boost::asio::error::operation_aborted) + { + conn.close("Error in connecting to KVM port"); + } + return; + } + + doRead(); + }); + } + + void onMessage(const std::string& data) + { + if (data.length() > inputBuffer.capacity()) + { + BMCWEB_LOG_ERROR << "conn:" << &conn + << ", Buffer overrun when writing " + << data.length() << " bytes"; + conn.close("Buffer overrun"); + return; + } + + BMCWEB_LOG_DEBUG << "conn:" << &conn << ", Read " << data.size() + << " bytes from websocket"; + boost::asio::buffer_copy(inputBuffer.prepare(data.size()), + boost::asio::buffer(data)); + BMCWEB_LOG_DEBUG << "conn:" << &conn << ", Commiting " << data.size() + << " bytes from websocket"; + inputBuffer.commit(data.size()); + + BMCWEB_LOG_DEBUG << "conn:" << &conn << ", inputbuffer size " + << inputBuffer.size(); + doWrite(); + } + + protected: + void doRead() + { + std::size_t bytes = outputBuffer.capacity() - outputBuffer.size(); + BMCWEB_LOG_DEBUG << "conn:" << &conn << ", Reading " << bytes + << " from kvm socket"; + hostSocket.async_read_some( + outputBuffer.prepare(outputBuffer.capacity() - outputBuffer.size()), + [this](const boost::system::error_code& ec, std::size_t bytesRead) { + BMCWEB_LOG_DEBUG << "conn:" << &conn << ", read done. Read " + << bytesRead << " bytes"; + if (ec) + { + BMCWEB_LOG_ERROR + << "conn:" << &conn + << ", Couldn't read from KVM socket port: " << ec; + if (ec != boost::asio::error::operation_aborted) + { + conn.close("Error in connecting to KVM port"); + } + return; + } + + outputBuffer.commit(bytesRead); + std::string_view payload( + static_cast(outputBuffer.data().data()), + bytesRead); + BMCWEB_LOG_DEBUG << "conn:" << &conn + << ", Sending payload size " << payload.size(); + conn.sendBinary(payload); + outputBuffer.consume(bytesRead); + + doRead(); + }); + } + + void doWrite() + { + if (doingWrite) + { + BMCWEB_LOG_DEBUG << "conn:" << &conn + << ", Already writing. Bailing out"; + return; + } + if (inputBuffer.size() == 0) + { + BMCWEB_LOG_DEBUG << "conn:" << &conn + << ", inputBuffer empty. Bailing out"; + return; + } + + doingWrite = true; + hostSocket.async_write_some( + inputBuffer.data(), [this](const boost::system::error_code& ec, + std::size_t bytesWritten) { + BMCWEB_LOG_DEBUG << "conn:" << &conn << ", Wrote " + << bytesWritten << "bytes"; + doingWrite = false; + inputBuffer.consume(bytesWritten); + + if (ec == boost::asio::error::eof) + { + conn.close("KVM socket port closed"); + return; + } + if (ec) + { + BMCWEB_LOG_ERROR << "conn:" << &conn + << ", Error in KVM socket write " << ec; + if (ec != boost::asio::error::operation_aborted) + { + conn.close("Error in reading to host port"); + } + return; + } + + doWrite(); + }); + } + + crow::websocket::Connection& conn; + boost::asio::ip::tcp::socket hostSocket; + boost::beast::flat_static_buffer<1024U * 50U> outputBuffer; + boost::beast::flat_static_buffer<1024U> inputBuffer; + bool doingWrite; +}; + +static boost::container::flat_map> + sessions; + +inline void requestRoutes(CrowApp& app) +{ + sessions.reserve(maxSessions); + + BMCWEB_ROUTE(app, "/kvm/0") + .requires({"ConfigureComponents", "ConfigureManager"}) + .websocket() + .onopen([](crow::websocket::Connection& conn, + std::shared_ptr asyncResp) { + BMCWEB_LOG_DEBUG << "Connection " << &conn << " opened"; + + if (sessions.size() == maxSessions) + { + conn.close("Max sessions are already connected"); + return; + } + + sessions[&conn] = std::make_unique(conn); + }) + .onclose([](crow::websocket::Connection& conn, + const std::string& reason) { sessions.erase(&conn); }) + .onmessage([](crow::websocket::Connection& conn, + const std::string& data, bool is_binary) { + if (sessions[&conn]) + { + sessions[&conn]->onMessage(data); + } + }); +} + +} // namespace obmc_kvm +} // namespace crow diff --git a/Contrib-Inspur/bmcweb/include/nbd_proxy.hpp b/Contrib-Inspur/bmcweb/include/nbd_proxy.hpp new file mode 100644 index 00000000..6922ae27 --- /dev/null +++ b/Contrib-Inspur/bmcweb/include/nbd_proxy.hpp @@ -0,0 +1,385 @@ +/* +// Copyright (c) 2019 Intel Corporation +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +*/ +#pragma once +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include + +namespace crow +{ + +namespace nbd_proxy +{ + +using boost::asio::local::stream_protocol; + +static constexpr auto nbdBufferSize = 131088; + +struct NbdProxyServer : std::enable_shared_from_this +{ + NbdProxyServer(crow::websocket::Connection& connIn, + const std::string& socketIdIn, + const std::string& endpointIdIn, const std::string& pathIn) : + socketId(socketIdIn), + endpointId(endpointIdIn), path(pathIn), + acceptor(connIn.get_io_context(), stream_protocol::endpoint(socketId)), + connection(connIn) + { + } + + ~NbdProxyServer() + { + BMCWEB_LOG_DEBUG << "NbdProxyServer destructor"; + close(); + } + + std::string getEndpointId() const + { + return endpointId; + } + + void run() + { + acceptor.async_accept( + [this, self(shared_from_this())](boost::system::error_code ec, + stream_protocol::socket socket) { + if (ec) + { + BMCWEB_LOG_ERROR << "UNIX socket: async_accept error = " + << ec.message(); + return; + } + if (peerSocket) + { + // Something is wrong - socket shouldn't be acquired at this + // point + BMCWEB_LOG_ERROR + << "Failed to open connection - socket already used"; + return; + } + + BMCWEB_LOG_DEBUG << "Connection opened"; + peerSocket = std::move(socket); + doRead(); + + // Trigger Write if any data was sent from server + // Initially this is negotiation chunk + doWrite(); + }); + + auto mountHandler = [](const boost::system::error_code ec, + const bool status) { + if (ec) + { + BMCWEB_LOG_ERROR << "DBus error: cannot call mount method = " + << ec.message(); + return; + } + }; + + crow::connections::systemBus->async_method_call( + std::move(mountHandler), "xyz.openbmc_project.VirtualMedia", path, + "xyz.openbmc_project.VirtualMedia.Proxy", "Mount"); + } + + void send(const std::string_view data) + { + boost::asio::buffer_copy(ws2uxBuf.prepare(data.size()), + boost::asio::buffer(data)); + ws2uxBuf.commit(data.size()); + doWrite(); + } + + void close() + { + acceptor.close(); + if (peerSocket) + { + BMCWEB_LOG_DEBUG << "peerSocket->close()"; + peerSocket->close(); + peerSocket.reset(); + BMCWEB_LOG_DEBUG << "std::remove(" << socketId << ")"; + std::remove(socketId.c_str()); + } + // The reference to session should exists until unmount is + // called + auto unmountHandler = [](const boost::system::error_code ec) { + if (ec) + { + BMCWEB_LOG_ERROR << "DBus error: " << ec + << ", cannot call unmount method"; + return; + } + }; + + crow::connections::systemBus->async_method_call( + std::move(unmountHandler), "xyz.openbmc_project.VirtualMedia", path, + "xyz.openbmc_project.VirtualMedia.Proxy", "Unmount"); + } + + private: + void doRead() + { + if (!peerSocket) + { + BMCWEB_LOG_DEBUG << "UNIX socket isn't created yet"; + // Skip if UNIX socket is not created yet. + return; + } + + // Trigger async read + peerSocket->async_read_some( + ux2wsBuf.prepare(nbdBufferSize), + [this, self(shared_from_this())](boost::system::error_code ec, + std::size_t bytesRead) { + if (ec) + { + BMCWEB_LOG_ERROR << "UNIX socket: async_read_some error = " + << ec.message(); + // UNIX socket has been closed by peer, best we can do is to + // break all connections + close(); + return; + } + + // Fetch data from UNIX socket + + ux2wsBuf.commit(bytesRead); + + // Paste it to WebSocket as binary + connection.sendBinary( + boost::beast::buffers_to_string(ux2wsBuf.data())); + ux2wsBuf.consume(bytesRead); + + // Allow further reads + doRead(); + }); + } + + void doWrite() + { + if (!peerSocket) + { + BMCWEB_LOG_DEBUG << "UNIX socket isn't created yet"; + // Skip if UNIX socket is not created yet. Collect data, and wait + // for nbd-client connection + return; + } + + if (uxWriteInProgress) + { + BMCWEB_LOG_ERROR << "Write in progress"; + return; + } + + if (ws2uxBuf.size() == 0) + { + BMCWEB_LOG_ERROR << "No data to write to UNIX socket"; + return; + } + + uxWriteInProgress = true; + boost::asio::async_write( + *peerSocket, ws2uxBuf.data(), + [this, self(shared_from_this())](boost::system::error_code ec, + std::size_t bytesWritten) { + ws2uxBuf.consume(bytesWritten); + uxWriteInProgress = false; + if (ec) + { + BMCWEB_LOG_ERROR << "UNIX: async_write error = " + << ec.message(); + return; + } + // Retrigger doWrite if there is something in buffer + if (ws2uxBuf.size() > 0) + { + doWrite(); + } + }); + } + + // Keeps UNIX socket endpoint file path + const std::string socketId; + const std::string endpointId; + const std::string path; + + bool uxWriteInProgress = false; + + // UNIX => WebSocket buffer + boost::beast::multi_buffer ux2wsBuf; + + // WebSocket <= UNIX buffer + boost::beast::multi_buffer ws2uxBuf; + + // Default acceptor for UNIX socket + stream_protocol::acceptor acceptor; + + // The socket used to communicate with the client. + std::optional peerSocket; + + crow::websocket::Connection& connection; +}; + +static boost::container::flat_map> + sessions; + +void requestRoutes(CrowApp& app) +{ + BMCWEB_ROUTE(app, "/nbd/") + .websocket() + .onopen([&app](crow::websocket::Connection& conn, + std::shared_ptr asyncResp) { + BMCWEB_LOG_DEBUG << "nbd-proxy.onopen(" << &conn << ")"; + + for (const auto session : sessions) + { + if (session.second->getEndpointId() == conn.req.target()) + { + BMCWEB_LOG_ERROR + << "Cannot open new connection - socket is in use"; + return; + } + } + + auto openHandler = [asyncResp, &conn]( + const boost::system::error_code ec, + dbus::utility::ManagedObjectType& objects) { + const std::string* socketValue = nullptr; + const std::string* endpointValue = nullptr; + const std::string* endpointObjectPath = nullptr; + + if (ec) + { + BMCWEB_LOG_ERROR << "DBus error: " << ec.message(); + return; + } + + for (const auto& objectPath : objects) + { + const auto interfaceMap = objectPath.second.find( + "xyz.openbmc_project.VirtualMedia.MountPoint"); + + if (interfaceMap == objectPath.second.end()) + { + BMCWEB_LOG_DEBUG << "Cannot find MountPoint object"; + continue; + } + + const auto endpoint = + interfaceMap->second.find("EndpointId"); + if (endpoint == interfaceMap->second.end()) + { + BMCWEB_LOG_DEBUG << "Cannot find EndpointId property"; + continue; + } + + endpointValue = std::get_if(&endpoint->second); + + if (endpointValue == nullptr) + { + BMCWEB_LOG_ERROR << "EndpointId property value is null"; + continue; + } + + if (*endpointValue == conn.req.target()) + { + const auto socket = interfaceMap->second.find("Socket"); + if (socket == interfaceMap->second.end()) + { + BMCWEB_LOG_DEBUG << "Cannot find Socket property"; + continue; + } + + socketValue = std::get_if(&socket->second); + if (socketValue == nullptr) + { + BMCWEB_LOG_ERROR << "Socket property value is null"; + continue; + } + + endpointObjectPath = &objectPath.first.str; + break; + } + } + + if (endpointObjectPath == nullptr) + { + BMCWEB_LOG_ERROR << "Cannot find requested EndpointId"; + asyncResp->res.result( + boost::beast::http::status::not_found); + return; + } + + // If the socket file exists (i.e. after bmcweb crash), we + // cannot reuse it. + std::remove((*socketValue).c_str()); + + sessions[&conn] = std::make_shared( + conn, std::move(*socketValue), std::move(*endpointValue), + std::move(*endpointObjectPath)); + + sessions[&conn]->run(); + + asyncResp->res.result(boost::beast::http::status::ok); + }; + crow::connections::systemBus->async_method_call( + std::move(openHandler), "xyz.openbmc_project.VirtualMedia", + "/xyz/openbmc_project/VirtualMedia", + "org.freedesktop.DBus.ObjectManager", "GetManagedObjects"); + }) + .onclose( + [](crow::websocket::Connection& conn, const std::string& reason) { + BMCWEB_LOG_DEBUG << "nbd-proxy.onclose(reason = '" << reason + << "')"; + auto session = sessions.find(&conn); + if (session == sessions.end()) + { + BMCWEB_LOG_DEBUG << "No session to close"; + return; + } + session->second->close(); + // Remove reference to session in global map + sessions.erase(session); + }) + .onmessage([](crow::websocket::Connection& conn, + const std::string& data, bool isBinary) { + BMCWEB_LOG_DEBUG << "nbd-proxy.onmessage(len = " << data.length() + << ")"; + // Acquire proxy from sessions + auto session = sessions.find(&conn); + if (session != sessions.end()) + { + if (session->second) + { + session->second->send(data); + return; + } + } + conn.close(); + }); +} +} // namespace nbd_proxy +} // namespace crow diff --git a/Contrib-Inspur/bmcweb/include/obmc_console.hpp b/Contrib-Inspur/bmcweb/include/obmc_console.hpp index 5797613a..9e5e058b 100644 --- a/Contrib-Inspur/bmcweb/include/obmc_console.hpp +++ b/Contrib-Inspur/bmcweb/include/obmc_console.hpp @@ -1,8 +1,9 @@ #pragma once -#include -#include +#include #include +#include +#include #include #include #include @@ -44,7 +45,7 @@ void doWrite() if (ec == boost::asio::error::eof) { - for (auto session : sessions) + for (crow::websocket::Connection* session : sessions) { session->close("Error in reading to host port"); } @@ -70,14 +71,14 @@ void doRead() { BMCWEB_LOG_ERROR << "Couldn't read from host serial port: " << ec; - for (auto session : sessions) + for (crow::websocket::Connection* session : sessions) { session->close("Error in connecting to host port"); } return; } - boost::beast::string_view payload(outputBuffer.data(), bytesRead); - for (auto session : sessions) + std::string_view payload(outputBuffer.data(), bytesRead); + for (crow::websocket::Connection* session : sessions) { session->sendBinary(payload); } @@ -90,7 +91,7 @@ void connectHandler(const boost::system::error_code& ec) if (ec) { BMCWEB_LOG_ERROR << "Couldn't connect to host serial port: " << ec; - for (auto session : sessions) + for (crow::websocket::Connection* session : sessions) { session->close("Error in connecting to host port"); } @@ -104,8 +105,10 @@ void connectHandler(const boost::system::error_code& ec) void requestRoutes(CrowApp& app) { BMCWEB_ROUTE(app, "/console0") + .requires({"ConfigureComponents", "ConfigureManager"}) .websocket() - .onopen([](crow::websocket::Connection& conn) { + .onopen([](crow::websocket::Connection& conn, + std::shared_ptr asyncResp) { BMCWEB_LOG_DEBUG << "Connection " << &conn << " opened"; sessions.insert(&conn); diff --git a/Contrib-Inspur/bmcweb/include/openbmc_dbus_rest.hpp b/Contrib-Inspur/bmcweb/include/openbmc_dbus_rest.hpp index 27a9e3d6..38aa630e 100644 --- a/Contrib-Inspur/bmcweb/include/openbmc_dbus_rest.hpp +++ b/Contrib-Inspur/bmcweb/include/openbmc_dbus_rest.hpp @@ -13,9 +13,7 @@ // limitations under the License. #pragma once -#include "filesystem.hpp" - -#include +#include #include #include @@ -23,7 +21,9 @@ #include #include #include +#include #include +#include #include namespace crow @@ -35,25 +35,23 @@ using GetSubTreeType = std::vector< std::pair>>>>; -const std::string notFoundMsg = "404 Not Found"; -const std::string badReqMsg = "400 Bad Request"; -const std::string methodNotAllowedMsg = "405 Method Not Allowed"; -const std::string forbiddenMsg = "403 Forbidden"; -const std::string methodFailedMsg = "500 Method Call Failed"; -const std::string methodOutputFailedMsg = "500 Method Output Error"; - -const std::string notFoundDesc = +const char *notFoundMsg = "404 Not Found"; +const char *badReqMsg = "400 Bad Request"; +const char *methodNotAllowedMsg = "405 Method Not Allowed"; +const char *forbiddenMsg = "403 Forbidden"; +const char *methodFailedMsg = "500 Method Call Failed"; +const char *methodOutputFailedMsg = "500 Method Output Error"; +const char *notFoundDesc = "org.freedesktop.DBus.Error.FileNotFound: path or object not found"; -const std::string propNotFoundDesc = "The specified property cannot be found"; -const std::string noJsonDesc = "No JSON object could be decoded"; -const std::string methodNotFoundDesc = "The specified method cannot be found"; -const std::string methodNotAllowedDesc = "Method not allowed"; -const std::string forbiddenPropDesc = - "The specified property cannot be created"; -const std::string forbiddenResDesc = "The specified resource cannot be created"; +const char *propNotFoundDesc = "The specified property cannot be found"; +const char *noJsonDesc = "No JSON object could be decoded"; +const char *methodNotFoundDesc = "The specified method cannot be found"; +const char *methodNotAllowedDesc = "Method not allowed"; +const char *forbiddenPropDesc = "The specified property cannot be created"; +const char *forbiddenResDesc = "The specified resource cannot be created"; void setErrorResponse(crow::Response &res, boost::beast::http::status result, - const std::string &desc, const std::string &msg) + const std::string &desc, const std::string_view msg) { res.result(result); res.jsonValue = {{"data", {{"description", desc}}}, @@ -317,8 +315,8 @@ void findObjectManagerPathForEnumerate( std::array{"org.freedesktop.DBus.ObjectManager"}); } -// Uses GetObject to add the object info about the target /enumerate path to the -// results of GetSubTree, as GetSubTree will not return info for the +// Uses GetObject to add the object info about the target /enumerate path to +// the results of GetSubTree, as GetSubTree will not return info for the // target path, and then continues on enumerating the rest of the tree. void getObjectAndEnumerate(std::shared_ptr transaction) { @@ -371,8 +369,8 @@ void getObjectAndEnumerate(std::shared_ptr transaction) for (const auto &connection : connections) { - // If we already know where the object manager is, we don't need - // to search for it, we can call directly in to + // If we already know where the object manager is, we don't + // need to search for it, we can call directly in to // getManagedObjects if (!connection.second.empty()) { @@ -382,8 +380,8 @@ void getObjectAndEnumerate(std::shared_ptr transaction) } else { - // otherwise we need to find the object manager path before - // we can continue + // otherwise we need to find the object manager path + // before we can continue findObjectManagerPathForEnumerate( transaction->objectPath, connection.first, transaction); } @@ -416,13 +414,7 @@ struct InProgressActionData { if (!methodPassed) { - if (methodFailed) - { - setErrorResponse(res, - boost::beast::http::status::bad_request, - "Method call failed", methodFailedMsg); - } - else + if (!methodFailed) { setErrorResponse(res, boost::beast::http::status::not_found, methodNotFoundDesc, notFoundMsg); @@ -472,7 +464,7 @@ std::vector dbusArgSplit(const std::string &string) { return ret; } - ret.push_back(""); + ret.emplace_back(""); int containerDepth = 0; for (std::string::const_iterator character = string.begin(); @@ -494,7 +486,7 @@ std::vector dbusArgSplit(const std::string &string) { if (character + 1 != string.end()) { - ret.push_back(""); + ret.emplace_back(""); } } break; @@ -503,7 +495,7 @@ std::vector dbusArgSplit(const std::string &string) { if (character + 1 != string.end()) { - ret.push_back(""); + ret.emplace_back(""); } } break; @@ -539,7 +531,6 @@ int convertJsonToDbus(sd_bus_message *m, const std::string &arg_type, jIt++; } const int64_t *intValue = j->get_ptr(); - const uint64_t *uintValue = j->get_ptr(); const std::string *stringValue = j->get_ptr(); const double *doubleValue = j->get_ptr(); const bool *b = j->get_ptr(); @@ -548,20 +539,31 @@ int convertJsonToDbus(sd_bus_message *m, const std::string &arg_type, // Do some basic type conversions that make sense. uint can be // converted to int. int and uint can be converted to double - if (uintValue != nullptr && intValue == nullptr) + if (intValue == nullptr) { - v = static_cast(*uintValue); - intValue = &v; + const uint64_t *uintValue = j->get_ptr(); + if (uintValue != nullptr) + { + v = static_cast(*uintValue); + intValue = &v; + } } - if (uintValue != nullptr && doubleValue == nullptr) + if (doubleValue == nullptr) { - d = static_cast(*uintValue); - doubleValue = &d; + const uint64_t *uintValue = j->get_ptr(); + if (uintValue != nullptr) + { + d = static_cast(*uintValue); + doubleValue = &d; + } } - if (intValue != nullptr && doubleValue == nullptr) + if (doubleValue == nullptr) { - d = static_cast(*intValue); - doubleValue = &d; + if (intValue != nullptr) + { + d = static_cast(*intValue); + doubleValue = &d; + } } if (argCode == "s") @@ -570,8 +572,8 @@ int convertJsonToDbus(sd_bus_message *m, const std::string &arg_type, { return -1; } - r = sd_bus_message_append_basic(m, argCode[0], - (void *)stringValue->c_str()); + r = sd_bus_message_append_basic( + m, argCode[0], static_cast(stringValue->data())); if (r < 0) { return r; @@ -583,6 +585,11 @@ int convertJsonToDbus(sd_bus_message *m, const std::string &arg_type, { return -1; } + if ((*intValue < std::numeric_limits::lowest()) || + (*intValue > std::numeric_limits::max())) + { + return -ERANGE; + } int32_t i = static_cast(*intValue); r = sd_bus_message_append_basic(m, argCode[0], &i); if (r < 0) @@ -596,7 +603,18 @@ int convertJsonToDbus(sd_bus_message *m, const std::string &arg_type, int boolInt = false; if (intValue != nullptr) { - boolInt = *intValue > 0 ? 1 : 0; + if (*intValue == 1) + { + boolInt = true; + } + else if (*intValue == 0) + { + boolInt = false; + } + else + { + return -ERANGE; + } } else if (b != nullptr) { @@ -622,6 +640,11 @@ int convertJsonToDbus(sd_bus_message *m, const std::string &arg_type, { return -1; } + if ((*intValue < std::numeric_limits::lowest()) || + (*intValue > std::numeric_limits::max())) + { + return -ERANGE; + } int16_t n = static_cast(*intValue); r = sd_bus_message_append_basic(m, argCode[0], &n); if (r < 0) @@ -635,6 +658,11 @@ int convertJsonToDbus(sd_bus_message *m, const std::string &arg_type, { return -1; } + if ((*intValue < std::numeric_limits::lowest()) || + (*intValue > std::numeric_limits::max())) + { + return -ERANGE; + } r = sd_bus_message_append_basic(m, argCode[0], intValue); if (r < 0) { @@ -643,41 +671,74 @@ int convertJsonToDbus(sd_bus_message *m, const std::string &arg_type, } else if (argCode == "y") { + const uint64_t *uintValue = j->get_ptr(); if (uintValue == nullptr) { return -1; } + if ((*uintValue < std::numeric_limits::lowest()) || + (*uintValue > std::numeric_limits::max())) + { + return -ERANGE; + } uint8_t y = static_cast(*uintValue); r = sd_bus_message_append_basic(m, argCode[0], &y); } else if (argCode == "q") { + const uint64_t *uintValue = j->get_ptr(); if (uintValue == nullptr) { return -1; } + if ((*uintValue < std::numeric_limits::lowest()) || + (*uintValue > std::numeric_limits::max())) + { + return -ERANGE; + } uint16_t q = static_cast(*uintValue); r = sd_bus_message_append_basic(m, argCode[0], &q); } else if (argCode == "u") { + const uint64_t *uintValue = j->get_ptr(); if (uintValue == nullptr) { return -1; } + if ((*uintValue < std::numeric_limits::lowest()) || + (*uintValue > std::numeric_limits::max())) + { + return -ERANGE; + } uint32_t u = static_cast(*uintValue); r = sd_bus_message_append_basic(m, argCode[0], &u); } else if (argCode == "t") { + const uint64_t *uintValue = j->get_ptr(); if (uintValue == nullptr) { return -1; } + if ((*uintValue < std::numeric_limits::lowest()) || + (*uintValue > std::numeric_limits::max())) + { + return -ERANGE; + } r = sd_bus_message_append_basic(m, argCode[0], uintValue); } else if (argCode == "d") { + if (doubleValue == nullptr) + { + return -1; + } + if ((*doubleValue < std::numeric_limits::lowest()) || + (*doubleValue > std::numeric_limits::max())) + { + return -ERANGE; + } sd_bus_message_append_basic(m, argCode[0], doubleValue); } else if (boost::starts_with(argCode, "a")) @@ -731,6 +792,11 @@ int convertJsonToDbus(sd_bus_message *m, const std::string &arg_type, std::string containedType = argCode.substr(1, argCode.size() - 1); r = sd_bus_message_open_container(m, SD_BUS_TYPE_STRUCT, containedType.c_str()); + if (r < 0) + { + return r; + } + nlohmann::json::const_iterator it = j->begin(); for (const std::string &argCode : dbusArgSplit(arg_type)) { @@ -753,6 +819,11 @@ int convertJsonToDbus(sd_bus_message *m, const std::string &arg_type, std::string containedType = argCode.substr(1, argCode.size() - 1); r = sd_bus_message_open_container(m, SD_BUS_TYPE_DICT_ENTRY, containedType.c_str()); + if (r < 0) + { + return r; + } + std::vector codes = dbusArgSplit(containedType); if (codes.size() != 2) { @@ -849,7 +920,8 @@ int readDictEntryFromMessage(const std::string &typeCode, // convert the result to a string so we can proceed key = key.dump(); keyPtr = key.get_ptr(); - // in theory this can't fail now, but lets be paranoid about it anyway + // in theory this can't fail now, but lets be paranoid about it + // anyway if (keyPtr == nullptr) { return -1; @@ -997,7 +1069,7 @@ int readStructFromMessage(const std::string &typeCode, int readVariantFromMessage(sdbusplus::message::message &m, nlohmann::json &data) { const char *containerType; - int r = sd_bus_message_peek_type(m.get(), NULL, &containerType); + int r = sd_bus_message_peek_type(m.get(), nullptr, &containerType); if (r < 0) { BMCWEB_LOG_ERROR << "sd_bus_message_peek_type failed"; @@ -1378,6 +1450,25 @@ void findActionOnInterface(std::shared_ptr transaction, if (ec) { transaction->methodFailed = true; + const sd_bus_error *e = m.get_error(); + + if (e) + { + setErrorResponse( + transaction->res, + boost::beast::http::status:: + bad_request, + e->name, e->message); + } + else + { + setErrorResponse( + transaction->res, + boost::beast::http::status:: + bad_request, + "Method call failed", + methodFailedMsg); + } return; } else @@ -1561,8 +1652,8 @@ void handleEnumerate(crow::Response &res, const std::string &objectPath) }, "xyz.openbmc_project.ObjectMapper", "/xyz/openbmc_project/object_mapper", - "xyz.openbmc_project.ObjectMapper", "GetSubTree", objectPath, - static_cast(0), std::array()); + "xyz.openbmc_project.ObjectMapper", "GetSubTree", objectPath, 0, + std::array()); } void handleGet(crow::Response &res, std::string &objectPath, @@ -1589,8 +1680,8 @@ void handleGet(crow::Response &res, std::string &objectPath, } std::shared_ptr response = std::make_shared(nlohmann::json::object()); - // The mapper should never give us an empty interface names list, - // but check anyway + // The mapper should never give us an empty interface names + // list, but check anyway for (const std::pair> connection : object_names) { @@ -1635,9 +1726,9 @@ void handleGet(crow::Response &res, std::string &objectPath, { for (auto &prop : properties.items()) { - // if property name is empty, or matches - // our search query, add it to the - // response json + // if property name is empty, or + // matches our search query, add it + // to the response json if (propertyName->empty()) { @@ -1833,8 +1924,18 @@ void handlePut(const crow::Request &req, crow::Response &res, transaction->propertyValue); if (r < 0) { - transaction->setErrorStatus( - "Invalid arg type"); + if (r == -ERANGE) + { + transaction->setErrorStatus( + "Provided property value " + "is out of range for the " + "property type"); + } + else + { + transaction->setErrorStatus( + "Invalid arg type"); + } return; } r = sd_bus_message_close_container( @@ -1845,7 +1946,6 @@ void handlePut(const crow::Request &req, crow::Response &res, "Unexpected Error"); return; } - crow::connections::systemBus ->async_send( m, @@ -1857,13 +1957,18 @@ void handlePut(const crow::Request &req, crow::Response &res, BMCWEB_LOG_DEBUG << "sent"; if (ec) { + const sd_bus_error *e = + m.get_error(); setErrorResponse( transaction->res, boost::beast::http:: status:: forbidden, - forbiddenPropDesc, - ec.message()); + (e) ? e->name + : ec.category() + .name(), + (e) ? e->message + : ec.message()); } else { @@ -1972,6 +2077,7 @@ inline void handleDBusUrl(const crow::Request &req, crow::Response &res, template void requestRoutes(Crow &app) { BMCWEB_ROUTE(app, "/bus/") + .requires({"Login"}) .methods("GET"_method)( [](const crow::Request &req, crow::Response &res) { res.jsonValue = {{"busses", {{{"name", "system"}}}}, @@ -1980,6 +2086,7 @@ template void requestRoutes(Crow &app) }); BMCWEB_ROUTE(app, "/bus/system/") + .requires({"Login"}) .methods("GET"_method)( [](const crow::Request &req, crow::Response &res) { auto myCallback = [&res](const boost::system::error_code ec, @@ -2008,13 +2115,23 @@ template void requestRoutes(Crow &app) }); BMCWEB_ROUTE(app, "/list/") + .requires({"Login"}) .methods("GET"_method)( [](const crow::Request &req, crow::Response &res) { handleList(res, "/"); }); BMCWEB_ROUTE(app, "/xyz/") - .methods("GET"_method, "PUT"_method, "POST"_method, "DELETE"_method)( + .requires({"Login"}) + .methods("GET"_method)([](const crow::Request &req, crow::Response &res, + const std::string &path) { + std::string objectPath = "/xyz/" + path; + handleDBusUrl(req, res, objectPath); + }); + + BMCWEB_ROUTE(app, "/xyz/") + .requires({"ConfigureComponents", "ConfigureManager"}) + .methods("PUT"_method, "POST"_method, "DELETE"_method)( [](const crow::Request &req, crow::Response &res, const std::string &path) { std::string objectPath = "/xyz/" + path; @@ -2022,7 +2139,16 @@ template void requestRoutes(Crow &app) }); BMCWEB_ROUTE(app, "/org/") - .methods("GET"_method, "PUT"_method, "POST"_method, "DELETE"_method)( + .requires({"Login"}) + .methods("GET"_method)([](const crow::Request &req, crow::Response &res, + const std::string &path) { + std::string objectPath = "/org/" + path; + handleDBusUrl(req, res, objectPath); + }); + + BMCWEB_ROUTE(app, "/org/") + .requires({"ConfigureComponents", "ConfigureManager"}) + .methods("PUT"_method, "POST"_method, "DELETE"_method)( [](const crow::Request &req, crow::Response &res, const std::string &path) { std::string objectPath = "/org/" + path; @@ -2030,6 +2156,7 @@ template void requestRoutes(Crow &app) }); BMCWEB_ROUTE(app, "/download/dump//") + .requires({"ConfigureManager"}) .methods("GET"_method)([](const crow::Request &req, crow::Response &res, const std::string &dumpId) { std::regex validFilename("^[\\w\\- ]+(\\.?[\\w\\- ]*)$"); @@ -2061,7 +2188,30 @@ template void requestRoutes(Crow &app) { continue; } + res.addHeader("Content-Type", "application/octet-stream"); + + // Assuming only one dump file will be present in the dump id + // directory + std::string dumpFileName = file.path().filename().string(); + + // Filename should be in alphanumeric, dot and underscore + // Its based on phosphor-debug-collector application dumpfile + // format + std::regex dumpFileRegex("[a-zA-Z0-9\\._]+"); + if (!std::regex_match(dumpFileName, dumpFileRegex)) + { + BMCWEB_LOG_ERROR << "Invalid dump filename " + << dumpFileName; + res.result(boost::beast::http::status::not_found); + res.end(); + return; + } + std::string contentDispositionParam = + "attachment; filename=\"" + dumpFileName + "\""; + + res.addHeader("Content-Disposition", contentDispositionParam); + res.body() = {std::istreambuf_iterator(readFile), std::istreambuf_iterator()}; res.end(); @@ -2073,6 +2223,7 @@ template void requestRoutes(Crow &app) }); BMCWEB_ROUTE(app, "/bus/system//") + .requires({"Login"}) .methods("GET"_method)([](const crow::Request &req, crow::Response &res, const std::string &Connection) { introspectObjects(Connection, "/", @@ -2080,6 +2231,7 @@ template void requestRoutes(Crow &app) }); BMCWEB_ROUTE(app, "/bus/system//") + .requires({"ConfigureComponents", "ConfigureManager"}) .methods("GET"_method, "POST"_method)([](const crow::Request &req, crow::Response &res, @@ -2102,9 +2254,10 @@ template void requestRoutes(Crow &app) if (it->find(".") != std::string::npos) { break; - // This check is neccesary as the trailing slash gets parsed - // as part of our specifier above, which causes the - // normal trailing backslash redirector to fail. + // This check is neccesary as the trailing slash gets + // parsed as part of our specifier above, which + // causes the normal trailing backslash redirector to + // fail. } else if (!it->empty()) { @@ -2126,16 +2279,18 @@ template void requestRoutes(Crow &app) } if (it != strs.end()) { - // if there is more levels past the method name, something went - // wrong, return not found + // if there is more levels past the method name, something + // went wrong, return not found res.result(boost::beast::http::status::not_found); - res.end(); return; } if (interfaceName.empty()) { + std::shared_ptr asyncResp = + std::make_shared(res); + crow::connections::systemBus->async_method_call( - [&, processName, + [asyncResp, processName, objectPath](const boost::system::error_code ec, const std::string &introspect_xml) { if (ec) @@ -2157,18 +2312,20 @@ template void requestRoutes(Crow &app) BMCWEB_LOG_ERROR << "XML document failed to parse " << processName << " " << objectPath << "\n"; - res.jsonValue = {{"status", "XML parse error"}}; - res.result(boost::beast::http::status:: - internal_server_error); + asyncResp->res.jsonValue = { + {"status", "XML parse error"}}; + asyncResp->res.result(boost::beast::http::status:: + internal_server_error); return; } BMCWEB_LOG_DEBUG << introspect_xml; - res.jsonValue = {{"status", "ok"}, - {"bus_name", processName}, - {"object_path", objectPath}}; + asyncResp->res.jsonValue = { + {"status", "ok"}, + {"bus_name", processName}, + {"object_path", objectPath}}; nlohmann::json &interfacesArray = - res.jsonValue["interfaces"]; + asyncResp->res.jsonValue["interfaces"]; interfacesArray = nlohmann::json::array(); tinyxml2::XMLElement *interface = pRoot->FirstChildElement("interface"); @@ -2186,19 +2343,19 @@ template void requestRoutes(Crow &app) interface = interface->NextSiblingElement("interface"); } - - res.end(); }, processName, objectPath, "org.freedesktop.DBus.Introspectable", "Introspect"); } else if (methodName.empty()) { + std::shared_ptr asyncResp = + std::make_shared(res); + crow::connections::systemBus->async_method_call( - [&, processName, objectPath, - interfaceName{std::move(interfaceName)}]( - const boost::system::error_code ec, - const std::string &introspect_xml) { + [asyncResp, processName, objectPath, + interfaceName](const boost::system::error_code ec, + const std::string &introspect_xml) { if (ec) { BMCWEB_LOG_ERROR @@ -2206,165 +2363,169 @@ template void requestRoutes(Crow &app) << ec.message() << " on process: " << processName << " path: " << objectPath << "\n"; + return; } - else + tinyxml2::XMLDocument doc; + + doc.Parse(introspect_xml.data(), introspect_xml.size()); + tinyxml2::XMLNode *pRoot = + doc.FirstChildElement("node"); + if (pRoot == nullptr) { - tinyxml2::XMLDocument doc; + BMCWEB_LOG_ERROR << "XML document failed to parse " + << processName << " " << objectPath + << "\n"; + asyncResp->res.result(boost::beast::http::status:: + internal_server_error); + return; + } + asyncResp->res.jsonValue = { + {"status", "ok"}, + {"bus_name", processName}, + {"interface", interfaceName}, + {"object_path", objectPath}}; + + nlohmann::json &methodsArray = + asyncResp->res.jsonValue["methods"]; + methodsArray = nlohmann::json::array(); + + nlohmann::json &signalsArray = + asyncResp->res.jsonValue["signals"]; + signalsArray = nlohmann::json::array(); + + nlohmann::json &propertiesObj = + asyncResp->res.jsonValue["properties"]; + propertiesObj = nlohmann::json::object(); + + // if we know we're the only call, build the + // json directly + tinyxml2::XMLElement *interface = + pRoot->FirstChildElement("interface"); + while (interface != nullptr) + { + const char *ifaceName = + interface->Attribute("name"); - doc.Parse(introspect_xml.c_str()); - tinyxml2::XMLNode *pRoot = - doc.FirstChildElement("node"); - if (pRoot == nullptr) + if (ifaceName != nullptr && + ifaceName == interfaceName) { - BMCWEB_LOG_ERROR - << "XML document failed to parse " - << processName << " " << objectPath << "\n"; - res.result(boost::beast::http::status:: - internal_server_error); + break; } - else + + interface = + interface->NextSiblingElement("interface"); + } + if (interface == nullptr) + { + // if we got to the end of the list and + // never found a match, throw 404 + asyncResp->res.result( + boost::beast::http::status::not_found); + return; + } + + tinyxml2::XMLElement *methods = + interface->FirstChildElement("method"); + while (methods != nullptr) + { + nlohmann::json argsArray = nlohmann::json::array(); + tinyxml2::XMLElement *arg = + methods->FirstChildElement("arg"); + while (arg != nullptr) { - tinyxml2::XMLElement *node = - pRoot->FirstChildElement("node"); - - // if we know we're the only call, build the - // json directly - tinyxml2::XMLElement *interface = - pRoot->FirstChildElement("interface"); - - res.jsonValue = { - {"status", "ok"}, - {"bus_name", processName}, - {"interface", interfaceName}, - {"object_path", objectPath}, - {"properties", nlohmann::json::object()}}; - - nlohmann::json &methodsArray = - res.jsonValue["methods"]; - methodsArray = nlohmann::json::array(); - - nlohmann::json &signalsArray = - res.jsonValue["signals"]; - signalsArray = nlohmann::json::array(); - - while (interface != nullptr) + nlohmann::json thisArg; + for (const char *fieldName : + std::array{ + "name", "direction", "type"}) { - const char *ifaceName = - interface->Attribute("name"); - - if (ifaceName != nullptr && - ifaceName == interfaceName) + const char *fieldValue = + arg->Attribute(fieldName); + if (fieldValue != nullptr) { - tinyxml2::XMLElement *methods = - interface->FirstChildElement( - "method"); - while (methods != nullptr) - { - nlohmann::json argsArray = - nlohmann::json::array(); - tinyxml2::XMLElement *arg = - methods->FirstChildElement( - "arg"); - while (arg != nullptr) - { - nlohmann::json thisArg; - for (const char *fieldName : - std::array{"name", - "direction", - "type"}) - { - const char *fieldValue = - arg->Attribute( - fieldName); - if (fieldValue != nullptr) - { - thisArg[fieldName] = - fieldValue; - } - } - argsArray.push_back( - std::move(thisArg)); - arg = arg->NextSiblingElement( - "arg"); - } + thisArg[fieldName] = fieldValue; + } + } + argsArray.push_back(std::move(thisArg)); + arg = arg->NextSiblingElement("arg"); + } - const char *name = - methods->Attribute("name"); - if (name != nullptr) - { - methodsArray.push_back( - {{"name", name}, - {"uri", "/bus/system/" + - processName + - objectPath + - "/" + - interfaceName + - "/" + name}, - {"args", argsArray}}); - } - methods = - methods->NextSiblingElement( - "method"); - } - tinyxml2::XMLElement *signals = - interface->FirstChildElement( - "signal"); - while (signals != nullptr) - { - nlohmann::json argsArray = - nlohmann::json::array(); + const char *name = methods->Attribute("name"); + if (name != nullptr) + { + methodsArray.push_back( + {{"name", name}, + {"uri", "/bus/system/" + processName + + objectPath + "/" + + interfaceName + "/" + name}, + {"args", argsArray}}); + } + methods = methods->NextSiblingElement("method"); + } + tinyxml2::XMLElement *signals = + interface->FirstChildElement("signal"); + while (signals != nullptr) + { + nlohmann::json argsArray = nlohmann::json::array(); - tinyxml2::XMLElement *arg = - signals->FirstChildElement( - "arg"); - while (arg != nullptr) - { - const char *name = - arg->Attribute("name"); - const char *type = - arg->Attribute("type"); - if (name != nullptr && - type != nullptr) - { - argsArray.push_back({ - {"name", name}, - {"type", type}, - }); - } - arg = arg->NextSiblingElement( - "arg"); - } - const char *name = - signals->Attribute("name"); - if (name != nullptr) - { - signalsArray.push_back( - {{"name", name}, - {"args", argsArray}}); - } + tinyxml2::XMLElement *arg = + signals->FirstChildElement("arg"); + while (arg != nullptr) + { + const char *name = arg->Attribute("name"); + const char *type = arg->Attribute("type"); + if (name != nullptr && type != nullptr) + { + argsArray.push_back({ + {"name", name}, + {"type", type}, + }); + } + arg = arg->NextSiblingElement("arg"); + } + const char *name = signals->Attribute("name"); + if (name != nullptr) + { + signalsArray.push_back( + {{"name", name}, {"args", argsArray}}); + } - signals = - signals->NextSiblingElement( - "signal"); - } + signals = signals->NextSiblingElement("signal"); + } - break; - } + tinyxml2::XMLElement *property = + interface->FirstChildElement("property"); + while (property != nullptr) + { + const char *name = property->Attribute("name"); + const char *type = property->Attribute("type"); + if (type != nullptr && name != nullptr) + { + sdbusplus::message::message m = + crow::connections::systemBus + ->new_method_call(processName.c_str(), + objectPath.c_str(), + "org.freedesktop." + "DBus." + "Properties", + "Get"); + m.append(interfaceName, name); + nlohmann::json &propertyItem = + propertiesObj[name]; + crow::connections::systemBus->async_send( + m, [&propertyItem, asyncResp]( + boost::system::error_code &e, + sdbusplus::message::message &msg) { + if (e) + { + return; + } - interface = interface->NextSiblingElement( - "interface"); - } - if (interface == nullptr) - { - // if we got to the end of the list and - // never found a match, throw 404 - res.result( - boost::beast::http::status::not_found); - } + convertDBusToJSON("v", msg, + propertyItem); + }); } + property = property->NextSiblingElement("property"); } - res.end(); }, processName, objectPath, "org.freedesktop.DBus.Introspectable", "Introspect"); diff --git a/Contrib-Inspur/bmcweb/include/pam_authenticate.hpp b/Contrib-Inspur/bmcweb/include/pam_authenticate.hpp index 643c8043..f8afbb13 100644 --- a/Contrib-Inspur/bmcweb/include/pam_authenticate.hpp +++ b/Contrib-Inspur/bmcweb/include/pam_authenticate.hpp @@ -14,12 +14,23 @@ inline int pamFunctionConversation(int numMsg, const struct pam_message** msg, { return PAM_AUTH_ERR; } - auto* pass = reinterpret_cast( - malloc(std::strlen(reinterpret_cast(appdataPtr)) + 1)); - std::strcpy(pass, reinterpret_cast(appdataPtr)); + char* appPass = reinterpret_cast(appdataPtr); + size_t appPassSize = std::strlen(appPass); + char* pass = reinterpret_cast(malloc(appPassSize + 1)); + if (pass == nullptr) + { + return PAM_AUTH_ERR; + } + + std::strcpy(pass, appPass); *resp = reinterpret_cast( - calloc(numMsg, sizeof(struct pam_response))); + calloc(static_cast(numMsg), sizeof(struct pam_response))); + + if (resp == nullptr) + { + return PAM_AUTH_ERR; + } for (int i = 0; i < numMsg; ++i) { @@ -36,69 +47,67 @@ inline int pamFunctionConversation(int numMsg, const struct pam_message** msg, return PAM_SUCCESS; } -inline bool pamAuthenticateUser(const boost::string_view username, - const boost::string_view password) +/** + * @brief Attempt username/password authentication via PAM. + * @param username The provided username aka account name. + * @param password The provided password. + * @returns PAM error code or PAM_SUCCESS for success. */ +inline int pamAuthenticateUser(const std::string_view username, + const std::string_view password) { std::string userStr(username); std::string passStr(password); const struct pam_conv localConversation = { pamFunctionConversation, const_cast(passStr.c_str())}; - pam_handle_t* localAuthHandle = NULL; // this gets set by pam_start + pam_handle_t* localAuthHandle = nullptr; // this gets set by pam_start - if (pam_start("webserver", userStr.c_str(), &localConversation, - &localAuthHandle) != PAM_SUCCESS) + int retval = pam_start("webserver", userStr.c_str(), &localConversation, + &localAuthHandle); + if (retval != PAM_SUCCESS) { - return false; + return retval; } - int retval = pam_authenticate(localAuthHandle, - PAM_SILENT | PAM_DISALLOW_NULL_AUTHTOK); + retval = pam_authenticate(localAuthHandle, + PAM_SILENT | PAM_DISALLOW_NULL_AUTHTOK); if (retval != PAM_SUCCESS) { - pam_end(localAuthHandle, PAM_SUCCESS); - return false; + pam_end(localAuthHandle, PAM_SUCCESS); // ignore retval + return retval; } /* check that the account is healthy */ - if (pam_acct_mgmt(localAuthHandle, PAM_DISALLOW_NULL_AUTHTOK) != - PAM_SUCCESS) - { - pam_end(localAuthHandle, PAM_SUCCESS); - return false; - } - - if (pam_end(localAuthHandle, PAM_SUCCESS) != PAM_SUCCESS) + retval = pam_acct_mgmt(localAuthHandle, PAM_DISALLOW_NULL_AUTHTOK); + if (retval != PAM_SUCCESS) { - return false; + pam_end(localAuthHandle, PAM_SUCCESS); // ignore retval + return retval; } - return true; + return pam_end(localAuthHandle, PAM_SUCCESS); } -inline bool pamUpdatePassword(const std::string& username, - const std::string& password) +inline int pamUpdatePassword(const std::string& username, + const std::string& password) { const struct pam_conv localConversation = { pamFunctionConversation, const_cast(password.c_str())}; - pam_handle_t* localAuthHandle = NULL; // this gets set by pam_start + pam_handle_t* localAuthHandle = nullptr; // this gets set by pam_start - if (pam_start("passwd", username.c_str(), &localConversation, - &localAuthHandle) != PAM_SUCCESS) - { - return false; - } - int retval = pam_chauthtok(localAuthHandle, PAM_SILENT); + int retval = pam_start("webserver", username.c_str(), &localConversation, + &localAuthHandle); if (retval != PAM_SUCCESS) { - pam_end(localAuthHandle, PAM_SUCCESS); - return false; + return retval; } - if (pam_end(localAuthHandle, PAM_SUCCESS) != PAM_SUCCESS) + retval = pam_chauthtok(localAuthHandle, PAM_SILENT); + if (retval != PAM_SUCCESS) { - return false; + pam_end(localAuthHandle, PAM_SUCCESS); + return retval; } - return true; + return pam_end(localAuthHandle, PAM_SUCCESS); } diff --git a/Contrib-Inspur/bmcweb/include/persistent_data_middleware.hpp b/Contrib-Inspur/bmcweb/include/persistent_data_middleware.hpp index b384f023..348079ba 100644 --- a/Contrib-Inspur/bmcweb/include/persistent_data_middleware.hpp +++ b/Contrib-Inspur/bmcweb/include/persistent_data_middleware.hpp @@ -1,13 +1,14 @@ #pragma once -#include -#include -#include +#include +#include +#include #include #include #include #include +#include #include #include #include @@ -20,13 +21,16 @@ namespace crow namespace persistent_data { +namespace fs = std::filesystem; + class Middleware { + uint64_t jsonRevision = 1; + + public: // todo(ed) should read this from a fixed location somewhere, not CWD static constexpr const char* filename = "bmcweb_persistent_data.json"; - int jsonRevision = 1; - public: struct Context { }; @@ -58,7 +62,7 @@ class Middleware void readData() { std::ifstream persistentFile(filename); - int fileRevision = 0; + uint64_t fileRevision = 0; if (persistentFile.is_open()) { // call with exceptions disabled @@ -96,6 +100,12 @@ class Middleware systemUuid = *jSystemUuid; } } + else if (item.key() == "auth_config") + { + SessionStore::getInstance() + .getAuthMethodsConfig() + .fromJson(item.value()); + } else if (item.key() == "sessions") { for (const auto& elem : item.value()) @@ -151,8 +161,15 @@ class Middleware void writeData() { std::ofstream persistentFile(filename); + + // set the permission of the file to 640 + fs::perms permission = fs::perms::owner_read | fs::perms::owner_write | + fs::perms::group_read; + fs::permissions(filename, permission); + nlohmann::json data{ {"sessions", SessionStore::getInstance().authTokens}, + {"auth_config", SessionStore::getInstance().getAuthMethodsConfig()}, {"system_uuid", systemUuid}, {"revision", jsonRevision}}; persistentFile << data; diff --git a/Contrib-Inspur/bmcweb/include/redfish_v1.hpp b/Contrib-Inspur/bmcweb/include/redfish_v1.hpp index f1dbfd26..3e97ad1e 100644 --- a/Contrib-Inspur/bmcweb/include/redfish_v1.hpp +++ b/Contrib-Inspur/bmcweb/include/redfish_v1.hpp @@ -1,6 +1,6 @@ #pragma once -#include +#include #include #include diff --git a/Contrib-Inspur/bmcweb/include/security_headers_middleware.hpp b/Contrib-Inspur/bmcweb/include/security_headers_middleware.hpp index 5e8e7d99..f60ce766 100644 --- a/Contrib-Inspur/bmcweb/include/security_headers_middleware.hpp +++ b/Contrib-Inspur/bmcweb/include/security_headers_middleware.hpp @@ -1,7 +1,7 @@ #pragma once -#include -#include +#include +#include namespace crow { @@ -36,15 +36,34 @@ struct SecurityHeadersMiddleware res.addHeader(bf::pragma, "no-cache"); res.addHeader(bf::cache_control, "no-Store,no-Cache"); - res.addHeader("Content-Security-Policy", "default-src 'self'"); + res.addHeader("X-XSS-Protection", "1; " "mode=block"); res.addHeader("X-Content-Type-Options", "nosniff"); - res.addHeader("X-UA-Compatible", "IE=11"); -#ifdef BMCWEB_INSECURE_DISABLE_XSS_PREVENTION +#ifndef BMCWEB_INSECURE_DISABLE_XSS_PREVENTION + res.addHeader("Content-Security-Policy", "default-src 'none'; " + "img-src 'self' data:; " + "font-src 'self'; " + "style-src 'self'; " + "script-src 'self'; " + "connect-src 'self' wss:"); + // The KVM currently needs to load images from base64 encoded + // strings. img-src 'self' data: is used to allow that. + // https://stackoverflow.com/questions/18447970/content-security-policy-data-not-working-for-base64-images-in-chrome-28 + +#else + // If XSS is disabled, we need to allow loading from addresses other + // than self, as the BMC will be hosted elsewhere. + res.addHeader("Content-Security-Policy", "default-src 'none'; " + "img-src *; " + "font-src *; " + "style-src *; " + "script-src *; " + "connect-src *"); - res.addHeader(bf::access_control_allow_origin, "http://localhost:8080"); + const std::string_view origin = req.getHeaderValue("Origin"); + res.addHeader(bf::access_control_allow_origin, origin); res.addHeader(bf::access_control_allow_methods, "GET, " "POST, " "PUT, " diff --git a/Contrib-Inspur/bmcweb/include/sessions.hpp b/Contrib-Inspur/bmcweb/include/sessions.hpp index 510f5664..41447057 100644 --- a/Contrib-Inspur/bmcweb/include/sessions.hpp +++ b/Contrib-Inspur/bmcweb/include/sessions.hpp @@ -1,17 +1,18 @@ #pragma once -#include -#include -#include - #include #include #include #include +#include +#include #include #include #include -#include +#include + +#include "logging.h" +#include "utility.h" namespace crow { @@ -19,6 +20,11 @@ namespace crow namespace persistent_data { +// entropy: 20 characters, 62 possibilities. log2(62^20) = 119 bits of +// entropy. OWASP recommends at least 64 +// https://cheatsheetseries.owasp.org/cheatsheets/Session_Management_Cheat_Sheet.html#session-id-entropy +constexpr std::size_t sessionTokenSize = 20; + enum class PersistenceType { TIMEOUT, // User session times out after a predetermined amount of time @@ -96,48 +102,88 @@ struct UserSession } }; +struct AuthConfigMethods +{ + bool xtoken = true; + bool cookie = true; + bool sessionToken = true; + bool basic = true; + bool tls = false; + + void fromJson(const nlohmann::json& j) + { + for (const auto& element : j.items()) + { + const bool* value = element.value().get_ptr(); + if (value == nullptr) + { + continue; + } + + if (element.key() == "XToken") + { + xtoken = *value; + } + else if (element.key() == "Cookie") + { + cookie = *value; + } + else if (element.key() == "SessionToken") + { + sessionToken = *value; + } + else if (element.key() == "BasicAuth") + { + basic = *value; + } + else if (element.key() == "TLS") + { + tls = *value; + } + } + } +}; + class Middleware; class SessionStore { public: std::shared_ptr generateUserSession( - const boost::string_view username, + const std::string_view username, PersistenceType persistence = PersistenceType::TIMEOUT) { // TODO(ed) find a secure way to not generate session identifiers if // persistence is set to SINGLE_REQUEST static constexpr std::array alphanum = { - '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'b', 'C', - 'D', 'E', 'F', 'g', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', - 'Q', 'r', 'S', 'T', 'U', 'v', 'W', 'X', 'Y', 'Z', 'a', 'b', 'c', + '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', + 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', + 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z'}; - // entropy: 30 characters, 62 possibilities. log2(62^30) = 178 bits of - // entropy. OWASP recommends at least 60 - // https://www.owasp.org/index.php/Session_Management_Cheat_Sheet#Session_ID_Entropy std::string sessionToken; - sessionToken.resize(20, '0'); - std::uniform_int_distribution dist(0, alphanum.size() - 1); - for (int i = 0; i < sessionToken.size(); ++i) + sessionToken.resize(sessionTokenSize, '0'); + std::uniform_int_distribution dist(0, alphanum.size() - 1); + for (size_t i = 0; i < sessionToken.size(); ++i) { sessionToken[i] = alphanum[dist(rd)]; } // Only need csrf tokens for cookie based auth, token doesn't matter std::string csrfToken; - csrfToken.resize(20, '0'); - for (int i = 0; i < csrfToken.size(); ++i) + csrfToken.resize(sessionTokenSize, '0'); + for (size_t i = 0; i < csrfToken.size(); ++i) { csrfToken[i] = alphanum[dist(rd)]; } std::string uniqueId; uniqueId.resize(10, '0'); - for (int i = 0; i < uniqueId.size(); ++i) + for (size_t i = 0; i < uniqueId.size(); ++i) { uniqueId[i] = alphanum[dist(rd)]; } + auto session = std::make_shared(UserSession{ uniqueId, sessionToken, std::string(username), csrfToken, std::chrono::steady_clock::now(), persistence}); @@ -148,9 +194,13 @@ class SessionStore } std::shared_ptr - loginSessionByToken(const boost::string_view token) + loginSessionByToken(const std::string_view token) { applySessionTimeouts(); + if (token.size() != sessionTokenSize) + { + return nullptr; + } auto sessionIt = authTokens.find(std::string(token)); if (sessionIt == authTokens.end()) { @@ -161,7 +211,7 @@ class SessionStore return userSession; } - std::shared_ptr getSessionByUid(const boost::string_view uid) + std::shared_ptr getSessionByUid(const std::string_view uid) { applySessionTimeouts(); // TODO(Ed) this is inefficient @@ -201,11 +251,28 @@ class SessionStore return ret; } + void updateAuthMethodsConfig(const AuthConfigMethods& config) + { + bool isTLSchanged = (authMethodsConfig.tls != config.tls); + authMethodsConfig = config; + needWrite = true; + if (isTLSchanged) + { + // recreate socket connections with new settings + std::raise(SIGHUP); + } + } + + AuthConfigMethods& getAuthMethodsConfig() + { + return authMethodsConfig; + } + bool needsWrite() { return needWrite; } - int getTimeoutInSeconds() const + int64_t getTimeoutInSeconds() const { return std::chrono::seconds(timeoutInMinutes).count(); }; @@ -250,12 +317,16 @@ class SessionStore } } } + std::chrono::time_point lastTimeoutUpdate; - boost::container::flat_map> + std::unordered_map, + std::hash, + crow::utility::ConstantTimeCompare> authTokens; std::random_device rd; bool needWrite{false}; std::chrono::minutes timeoutInMinutes; + AuthConfigMethods authMethodsConfig; }; } // namespace persistent_data @@ -281,4 +352,17 @@ struct adl_serializer> } } }; + +template <> struct adl_serializer +{ + static void to_json(nlohmann::json& j, + const crow::persistent_data::AuthConfigMethods& c) + { + j = nlohmann::json{{"XToken", c.xtoken}, + {"Cookie", c.cookie}, + {"SessionToken", c.sessionToken}, + {"BasicAuth", c.basic}, + {"TLS", c.tls}}; + } +}; } // namespace nlohmann diff --git a/Contrib-Inspur/bmcweb/include/ssl_key_handler.hpp b/Contrib-Inspur/bmcweb/include/ssl_key_handler.hpp index 32d7a736..fab31eae 100644 --- a/Contrib-Inspur/bmcweb/include/ssl_key_handler.hpp +++ b/Contrib-Inspur/bmcweb/include/ssl_key_handler.hpp @@ -16,11 +16,88 @@ namespace ensuressl { +constexpr char const *trustStorePath = "/etc/ssl/certs/authority"; static void initOpenssl(); -static void cleanupOpenssl(); -static EVP_PKEY *createRsaKey(); static EVP_PKEY *createEcKey(); -static void handleOpensslError(); + +// Trust chain related errors.` +inline bool isTrustChainError(int errnum) +{ + if ((errnum == X509_V_ERR_DEPTH_ZERO_SELF_SIGNED_CERT) || + (errnum == X509_V_ERR_SELF_SIGNED_CERT_IN_CHAIN) || + (errnum == X509_V_ERR_UNABLE_TO_GET_ISSUER_CERT_LOCALLY) || + (errnum == X509_V_ERR_CERT_UNTRUSTED) || + (errnum == X509_V_ERR_UNABLE_TO_VERIFY_LEAF_SIGNATURE)) + { + return true; + } + else + { + return false; + } +} + +inline bool validateCertificate(X509 *const cert) +{ + // Create an empty X509_STORE structure for certificate validation. + X509_STORE *x509Store = X509_STORE_new(); + if (!x509Store) + { + BMCWEB_LOG_ERROR << "Error occured during X509_STORE_new call"; + return false; + } + + // Load Certificate file into the X509 structure. + X509_STORE_CTX *storeCtx = X509_STORE_CTX_new(); + if (!storeCtx) + { + BMCWEB_LOG_ERROR << "Error occured during X509_STORE_CTX_new call"; + X509_STORE_free(x509Store); + return false; + } + + int errCode = X509_STORE_CTX_init(storeCtx, x509Store, cert, nullptr); + if (errCode != 1) + { + BMCWEB_LOG_ERROR << "Error occured during X509_STORE_CTX_init call"; + X509_STORE_CTX_free(storeCtx); + X509_STORE_free(x509Store); + return false; + } + + errCode = X509_verify_cert(storeCtx); + if (errCode == 1) + { + BMCWEB_LOG_INFO << "Certificate verification is success"; + X509_STORE_CTX_free(storeCtx); + X509_STORE_free(x509Store); + return true; + } + if (errCode == 0) + { + errCode = X509_STORE_CTX_get_error(storeCtx); + X509_STORE_CTX_free(storeCtx); + X509_STORE_free(x509Store); + if (isTrustChainError(errCode)) + { + BMCWEB_LOG_DEBUG << "Ignoring Trust Chain error. Reason: " + << X509_verify_cert_error_string(errCode); + return true; + } + else + { + BMCWEB_LOG_ERROR << "Certificate verification failed. Reason: " + << X509_verify_cert_error_string(errCode); + return false; + } + } + + BMCWEB_LOG_ERROR + << "Error occured during X509_verify_cert call. ErrorCode: " << errCode; + X509_STORE_CTX_free(storeCtx); + X509_STORE_free(x509Store); + return false; +} inline bool verifyOpensslKeyCert(const std::string &filepath) { @@ -30,10 +107,9 @@ inline bool verifyOpensslKeyCert(const std::string &filepath) std::cout << "Checking certs in file " << filepath << "\n"; FILE *file = fopen(filepath.c_str(), "r"); - if (file != NULL) + if (file != nullptr) { - EVP_PKEY *pkey = PEM_read_PrivateKey(file, NULL, NULL, NULL); - int rc; + EVP_PKEY *pkey = PEM_read_PrivateKey(file, nullptr, nullptr, nullptr); if (pkey != nullptr) { RSA *rsa = EVP_PKEY_get1_RSA(pkey); @@ -42,7 +118,7 @@ inline bool verifyOpensslKeyCert(const std::string &filepath) std::cout << "Found an RSA key\n"; if (RSA_check_key(rsa) == 1) { - // private_key_valid = true; + privateKeyValid = true; } else { @@ -72,7 +148,13 @@ inline bool verifyOpensslKeyCert(const std::string &filepath) if (privateKeyValid) { - X509 *x509 = PEM_read_X509(file, NULL, NULL, NULL); + // If the order is certificate followed by key in input file + // then, certificate read will fail. So, setting the file + // pointer to point beginning of file to avoid certificate and + // key order issue. + fseek(file, 0, SEEK_SET); + + X509 *x509 = PEM_read_X509(file, nullptr, nullptr, nullptr); if (x509 == nullptr) { std::cout << "error getting x509 cert " << ERR_get_error() @@ -80,16 +162,8 @@ inline bool verifyOpensslKeyCert(const std::string &filepath) } else { - rc = X509_verify(x509, pkey); - if (rc == 1) - { - certValid = true; - } - else - { - std::cerr << "Error in verifying private key signature " - << ERR_get_error() << "\n"; - } + certValid = validateCertificate(x509); + X509_free(x509); } } @@ -102,7 +176,7 @@ inline bool verifyOpensslKeyCert(const std::string &filepath) inline void generateSslCertificate(const std::string &filepath) { - FILE *pFile = NULL; + FILE *pFile = nullptr; std::cout << "Generating new keys\n"; initOpenssl(); @@ -123,7 +197,7 @@ inline void generateSslCertificate(const std::string &filepath) // number If this is not random, regenerating certs throws broswer // errors std::random_device rd; - int serial = rd(); + int serial = static_cast(rd()); ASN1_INTEGER_set(X509_get_serialNumber(x509), serial); @@ -145,8 +219,7 @@ inline void generateSslCertificate(const std::string &filepath) reinterpret_cast("US"), -1, -1, 0); X509_NAME_add_entry_by_txt( name, "O", MBSTRING_ASC, - reinterpret_cast("Intel BMC"), -1, -1, - 0); + reinterpret_cast("OpenBMC"), -1, -1, 0); X509_NAME_add_entry_by_txt( name, "CN", MBSTRING_ASC, reinterpret_cast("testhost"), -1, -1, 0); @@ -160,66 +233,27 @@ inline void generateSslCertificate(const std::string &filepath) if (pFile != nullptr) { - PEM_write_PrivateKey(pFile, pRsaPrivKey, NULL, NULL, 0, 0, - NULL); + PEM_write_PrivateKey(pFile, pRsaPrivKey, nullptr, nullptr, 0, + nullptr, nullptr); PEM_write_X509(pFile, x509); fclose(pFile); - pFile = NULL; + pFile = nullptr; } X509_free(x509); } EVP_PKEY_free(pRsaPrivKey); - pRsaPrivKey = NULL; + pRsaPrivKey = nullptr; } // cleanup_openssl(); } -EVP_PKEY *createRsaKey() -{ - RSA *pRSA = NULL; -#if OPENSSL_VERSION_NUMBER < 0x00908000L - pRSA = RSA_generate_key(2048, RSA_3, NULL, NULL); -#else - RSA_generate_key_ex(pRSA, 2048, NULL, NULL); -#endif - - EVP_PKEY *pKey = EVP_PKEY_new(); - if ((pRSA != nullptr) && (pKey != nullptr) && - EVP_PKEY_assign_RSA(pKey, pRSA)) - { - /* pKey owns pRSA from now */ - if (RSA_check_key(pRSA) <= 0) - { - fprintf(stderr, "RSA_check_key failed.\n"); - handleOpensslError(); - EVP_PKEY_free(pKey); - pKey = NULL; - } - } - else - { - handleOpensslError(); - if (pRSA != nullptr) - { - RSA_free(pRSA); - pRSA = NULL; - } - if (pKey != nullptr) - { - EVP_PKEY_free(pKey); - pKey = NULL; - } - } - return pKey; -} - EVP_PKEY *createEcKey() { - EVP_PKEY *pKey = NULL; + EVP_PKEY *pKey = nullptr; int eccgrp = 0; eccgrp = OBJ_txt2nid("prime256v1"); @@ -253,20 +287,6 @@ void initOpenssl() #endif } -void cleanupOpenssl() -{ - CRYPTO_cleanup_all_ex_data(); - ERR_free_strings(); -#if OPENSSL_VERSION_NUMBER < 0x10100000L - ERR_remove_thread_state(0); -#endif - EVP_cleanup(); -} - -void handleOpensslError() -{ - ERR_print_errors_fp(stderr); -} inline void ensureOpensslKeyPresentAndValid(const std::string &filepath) { bool pemFileValid = false; @@ -280,80 +300,55 @@ inline void ensureOpensslKeyPresentAndValid(const std::string &filepath) } } -inline boost::asio::ssl::context getSslContext(const std::string &ssl_pem_file) +inline std::shared_ptr + getSslContext(const std::string &ssl_pem_file) { - boost::asio::ssl::context mSslContext{boost::asio::ssl::context::sslv23}; - mSslContext.set_options(boost::asio::ssl::context::default_workarounds | - boost::asio::ssl::context::no_sslv2 | - boost::asio::ssl::context::no_sslv3 | - boost::asio::ssl::context::single_dh_use | - boost::asio::ssl::context::no_tlsv1 | - boost::asio::ssl::context::no_tlsv1_1); - - // m_ssl_context.set_verify_mode(boost::asio::ssl::verify_peer); - mSslContext.use_certificate_file(ssl_pem_file, - boost::asio::ssl::context::pem); - mSslContext.use_private_key_file(ssl_pem_file, - boost::asio::ssl::context::pem); + std::shared_ptr mSslContext = + std::make_shared( + boost::asio::ssl::context::tls_server); + mSslContext->set_options(boost::asio::ssl::context::default_workarounds | + boost::asio::ssl::context::no_sslv2 | + boost::asio::ssl::context::no_sslv3 | + boost::asio::ssl::context::single_dh_use | + boost::asio::ssl::context::no_tlsv1 | + boost::asio::ssl::context::no_tlsv1_1); + + // BIG WARNING: This needs to stay disabled, as there will always be + // unauthenticated endpoints + // mSslContext->set_verify_mode(boost::asio::ssl::verify_peer); + + SSL_CTX_set_options(mSslContext->native_handle(), SSL_OP_NO_RENEGOTIATION); + + BMCWEB_LOG_DEBUG << "Using default TrustStore location: " << trustStorePath; + mSslContext->add_verify_path(trustStorePath); + + mSslContext->use_certificate_file(ssl_pem_file, + boost::asio::ssl::context::pem); + mSslContext->use_private_key_file(ssl_pem_file, + boost::asio::ssl::context::pem); // Set up EC curves to auto (boost asio doesn't have a method for this) // There is a pull request to add this. Once this is included in an asio // drop, use the right way // http://stackoverflow.com/questions/18929049/boost-asio-with-ecdsa-certificate-issue - if (SSL_CTX_set_ecdh_auto(mSslContext.native_handle(), 1) != 1) + if (SSL_CTX_set_ecdh_auto(mSslContext->native_handle(), 1) != 1) { BMCWEB_LOG_ERROR << "Error setting tmp ecdh list\n"; } - // From mozilla "compatibility" - std::string mozillaCompatibilityCiphers = "ECDHE-ECDSA-CHACHA20-POLY1305:" - "ECDHE-RSA-CHACHA20-POLY1305:" - "ECDHE-ECDSA-AES128-GCM-SHA256:" - "ECDHE-RSA-AES128-GCM-SHA256:" - "ECDHE-ECDSA-AES256-GCM-SHA384:" - "ECDHE-RSA-AES256-GCM-SHA384:" - "DHE-RSA-AES128-GCM-SHA256:" - "DHE-RSA-AES256-GCM-SHA384:" - "ECDHE-ECDSA-AES128-SHA256:" - "ECDHE-RSA-AES128-SHA256:" - "ECDHE-ECDSA-AES128-SHA:" - "ECDHE-RSA-AES256-SHA384:" - "ECDHE-RSA-AES128-SHA:" - "ECDHE-ECDSA-AES256-SHA384:" - "ECDHE-ECDSA-AES256-SHA:" - "ECDHE-RSA-AES256-SHA:" - "DHE-RSA-AES128-SHA256:" - "DHE-RSA-AES128-SHA:" - "DHE-RSA-AES256-SHA256:" - "DHE-RSA-AES256-SHA:" - "ECDHE-ECDSA-DES-CBC3-SHA:" - "ECDHE-RSA-DES-CBC3-SHA:" - "EDH-RSA-DES-CBC3-SHA:" - "AES128-GCM-SHA256:" - "AES256-GCM-SHA384:" - "AES128-SHA256:" - "AES256-SHA256:" - "AES128-SHA:" - "AES256-SHA:" - "DES-CBC3-SHA:" - "!DSS"; - - // From mozilla "modern" - std::string mozillaModernCiphers = "ECDHE-ECDSA-AES256-GCM-SHA384:" - "ECDHE-RSA-AES256-GCM-SHA384:" - "ECDHE-ECDSA-CHACHA20-POLY1305:" - "ECDHE-RSA-CHACHA20-POLY1305:" - "ECDHE-ECDSA-AES128-GCM-SHA256:" - "ECDHE-RSA-AES128-GCM-SHA256:" - "ECDHE-ECDSA-AES256-SHA384:" - "ECDHE-RSA-AES256-SHA384:" - "ECDHE-ECDSA-AES128-SHA256:" - "ECDHE-RSA-AES128-SHA256"; - - std::string aesOnlyCiphers = "AES128+EECDH:AES128+EDH:!aNULL:!eNULL"; - - if (SSL_CTX_set_cipher_list(mSslContext.native_handle(), - mozillaCompatibilityCiphers.c_str()) != 1) + std::string mozillaModern = "ECDHE-ECDSA-AES256-GCM-SHA384:" + "ECDHE-RSA-AES256-GCM-SHA384:" + "ECDHE-ECDSA-CHACHA20-POLY1305:" + "ECDHE-RSA-CHACHA20-POLY1305:" + "ECDHE-ECDSA-AES128-GCM-SHA256:" + "ECDHE-RSA-AES128-GCM-SHA256:" + "ECDHE-ECDSA-AES256-SHA384:" + "ECDHE-RSA-AES256-SHA384:" + "ECDHE-ECDSA-AES128-SHA256:" + "ECDHE-RSA-AES128-SHA256"; + + if (SSL_CTX_set_cipher_list(mSslContext->native_handle(), + mozillaModern.c_str()) != 1) { BMCWEB_LOG_ERROR << "Error setting cipher list\n"; } @@ -361,4 +356,4 @@ inline boost::asio::ssl::context getSslContext(const std::string &ssl_pem_file) } } // namespace ensuressl -#endif \ No newline at end of file +#endif diff --git a/Contrib-Inspur/bmcweb/include/token_authorization_middleware.hpp b/Contrib-Inspur/bmcweb/include/token_authorization_middleware.hpp index b186a5fb..efa691c1 100644 --- a/Contrib-Inspur/bmcweb/include/token_authorization_middleware.hpp +++ b/Contrib-Inspur/bmcweb/include/token_authorization_middleware.hpp @@ -1,9 +1,9 @@ #pragma once -#include -#include -#include -#include +#include +#include +#include +#include #include #include @@ -22,7 +22,6 @@ class Middleware public: struct Context { - std::shared_ptr session; }; void beforeHandle(crow::Request& req, Response& res, Context& ctx) @@ -32,29 +31,38 @@ class Middleware return; } - ctx.session = performXtokenAuth(req); - if (ctx.session == nullptr) + const crow::persistent_data::AuthConfigMethods& authMethodsConfig = + crow::persistent_data::SessionStore::getInstance() + .getAuthMethodsConfig(); + + if (req.session == nullptr && authMethodsConfig.xtoken) + { + req.session = performXtokenAuth(req); + } + if (req.session == nullptr && authMethodsConfig.cookie) { - ctx.session = performCookieAuth(req); + req.session = performCookieAuth(req); } - if (ctx.session == nullptr) + if (req.session == nullptr) { - boost::string_view authHeader = req.getHeaderValue("Authorization"); + std::string_view authHeader = req.getHeaderValue("Authorization"); if (!authHeader.empty()) { // Reject any kind of auth other than basic or token - if (boost::starts_with(authHeader, "Token ")) + if (boost::starts_with(authHeader, "Token ") && + authMethodsConfig.sessionToken) { - ctx.session = performTokenAuth(authHeader); + req.session = performTokenAuth(authHeader); } - else if (boost::starts_with(authHeader, "Basic ")) + else if (boost::starts_with(authHeader, "Basic ") && + authMethodsConfig.basic) { - ctx.session = performBasicAuth(authHeader); + req.session = performBasicAuth(authHeader); } } } - if (ctx.session == nullptr) + if (req.session == nullptr) { BMCWEB_LOG_WARNING << "[AuthMiddleware] authorization failed"; @@ -93,23 +101,23 @@ class Middleware // middleware, but because it is upstream, it doesn't have access to the // session information. Should the data middleware persist the current // user session? - if (ctx.session != nullptr && - ctx.session->persistence == + if (req.session != nullptr && + req.session->persistence == crow::persistent_data::PersistenceType::SINGLE_REQUEST) { persistent_data::SessionStore::getInstance().removeSession( - ctx.session); + req.session); } } private: const std::shared_ptr - performBasicAuth(boost::string_view auth_header) const + performBasicAuth(std::string_view auth_header) const { BMCWEB_LOG_DEBUG << "[AuthMiddleware] Basic authentication"; std::string authData; - boost::string_view param = auth_header.substr(strlen("Basic ")); + std::string_view param = auth_header.substr(strlen("Basic ")); if (!crow::utility::base64Decode(param, authData)) { return nullptr; @@ -130,7 +138,7 @@ class Middleware BMCWEB_LOG_DEBUG << "[AuthMiddleware] Authenticating user: " << user; - if (!pamAuthenticateUser(user, pass)) + if (pamAuthenticateUser(user, pass) != PAM_SUCCESS) { return nullptr; } @@ -146,11 +154,11 @@ class Middleware } const std::shared_ptr - performTokenAuth(boost::string_view auth_header) const + performTokenAuth(std::string_view auth_header) const { BMCWEB_LOG_DEBUG << "[AuthMiddleware] Token authentication"; - boost::string_view token = auth_header.substr(strlen("Token ")); + std::string_view token = auth_header.substr(strlen("Token ")); auto session = persistent_data::SessionStore::getInstance().loginSessionByToken( token); @@ -162,7 +170,7 @@ class Middleware { BMCWEB_LOG_DEBUG << "[AuthMiddleware] X-Auth-Token authentication"; - boost::string_view token = req.getHeaderValue("X-Auth-Token"); + std::string_view token = req.getHeaderValue("X-Auth-Token"); if (token.empty()) { return nullptr; @@ -178,7 +186,7 @@ class Middleware { BMCWEB_LOG_DEBUG << "[AuthMiddleware] Cookie authentication"; - boost::string_view cookieValue = req.getHeaderValue("Cookie"); + std::string_view cookieValue = req.getHeaderValue("Cookie"); if (cookieValue.empty()) { return nullptr; @@ -195,7 +203,7 @@ class Middleware { endIndex = cookieValue.size(); } - boost::string_view authKey = + std::string_view authKey = cookieValue.substr(startIndex, endIndex - startIndex); const std::shared_ptr session = @@ -209,14 +217,20 @@ class Middleware // RFC7231 defines methods that need csrf protection if (req.method() != "GET"_method) { - boost::string_view csrf = req.getHeaderValue("X-XSRF-TOKEN"); + std::string_view csrf = req.getHeaderValue("X-XSRF-TOKEN"); // Make sure both tokens are filled if (csrf.empty() || session->csrfToken.empty()) { return nullptr; } + + if (csrf.size() != crow::persistent_data::sessionTokenSize) + { + return nullptr; + } // Reject if csrf token not available - if (csrf != session->csrfToken) + if (!crow::utility::constantTimeStringCompare(csrf, + session->csrfToken)) { return nullptr; } @@ -271,25 +285,27 @@ template void requestRoutes(Crow& app) Middlewares...>::value, "token_authorization middleware must be enabled in app to use " "auth routes"); + BMCWEB_ROUTE(app, "/login") .methods( - "POST"_method)([&](const crow::Request& req, crow::Response& res) { - boost::string_view contentType = req.getHeaderValue("content-type"); - boost::string_view username; - boost::string_view password; + "POST"_method)([](const crow::Request& req, crow::Response& res) { + std::string_view contentType = req.getHeaderValue("content-type"); + std::string_view username; + std::string_view password; - bool looksLikeIbm = false; + bool looksLikePhosphorRest = false; // This object needs to be declared at this scope so the strings // within it are not destroyed before we can use them nlohmann::json loginCredentials; // Check if auth was provided by a payload - if (contentType == "application/json") + if (boost::starts_with(contentType, "application/json")) { loginCredentials = nlohmann::json::parse(req.body, nullptr, false); if (loginCredentials.is_discarded()) { + BMCWEB_LOG_DEBUG << "Bad json in request"; res.result(boost::beast::http::status::bad_request); res.end(); return; @@ -331,7 +347,7 @@ template void requestRoutes(Crow& app) dataIt->begin(); nlohmann::json::iterator passIt2 = dataIt->begin() + 1; - looksLikeIbm = true; + looksLikePhosphorRest = true; if (userIt2 != dataIt->end() && passIt2 != dataIt->end()) { @@ -380,7 +396,7 @@ template void requestRoutes(Crow& app) if (!username.empty() && !password.empty()) { - if (!pamAuthenticateUser(username, password)) + if (pamAuthenticateUser(username, password) != PAM_SUCCESS) { res.result(boost::beast::http::status::unauthorized); } @@ -389,10 +405,11 @@ template void requestRoutes(Crow& app) auto session = persistent_data::SessionStore::getInstance() .generateUserSession(username); - if (looksLikeIbm) + if (looksLikePhosphorRest) { - // IBM requires a very specific login structure, and - // doesn't actually look at the status code. + // Phosphor-Rest requires a very specific login + // structure, and doesn't actually look at the status + // code. // TODO(ed).... Fix that upstream res.jsonValue = { {"data", @@ -425,25 +442,29 @@ template void requestRoutes(Crow& app) } else { + BMCWEB_LOG_DEBUG << "Couldn't interpret password"; res.result(boost::beast::http::status::bad_request); } res.end(); }); BMCWEB_ROUTE(app, "/logout") - .methods( - "POST"_method)([&](const crow::Request& req, crow::Response& res) { - auto& session = - app.template getContext(req) - .session; - if (session != nullptr) - { - persistent_data::SessionStore::getInstance().removeSession( - session); - } - res.end(); - return; - }); + .methods("POST"_method)( + [](const crow::Request& req, crow::Response& res) { + auto& session = req.session; + if (session != nullptr) + { + res.jsonValue = { + {"data", "User '" + session->username + "' logged out"}, + {"message", "200 OK"}, + {"status", "ok"}}; + + persistent_data::SessionStore::getInstance().removeSession( + session); + } + res.end(); + return; + }); } } // namespace token_authorization } // namespace crow diff --git a/Contrib-Inspur/bmcweb/include/vm_websocket.hpp b/Contrib-Inspur/bmcweb/include/vm_websocket.hpp new file mode 100644 index 00000000..a8380a73 --- /dev/null +++ b/Contrib-Inspur/bmcweb/include/vm_websocket.hpp @@ -0,0 +1,218 @@ +#pragma once + +#include +#include + +#include +#include +#include +#include + +namespace crow +{ +namespace obmc_vm +{ + +static crow::websocket::Connection* session = nullptr; + +// The max network block device buffer size is 128kb plus 16bytes +// for the message header: +// https://github.com/NetworkBlockDevice/nbd/blob/master/doc/proto.md#simple-reply-message +static constexpr auto nbdBufferSize = 131088; + +class Handler : public std::enable_shared_from_this +{ + public: + Handler(const std::string& mediaIn, boost::asio::io_context& ios) : + pipeOut(ios), pipeIn(ios), media(mediaIn), doingWrite(false), + outputBuffer(new boost::beast::flat_static_buffer), + inputBuffer(new boost::beast::flat_static_buffer) + { + } + + ~Handler() = default; + + void doClose() + { + // boost::process::child::terminate uses SIGKILL, need to send SIGTERM + // to allow the proxy to stop nbd-client and the USB device gadget. + int rc = kill(proxy.id(), SIGTERM); + if (rc) + { + return; + } + proxy.wait(); + } + + void connect() + { + std::error_code ec; + proxy = boost::process::child("/usr/sbin/nbd-proxy", media, + boost::process::std_out > pipeOut, + boost::process::std_in < pipeIn, ec); + if (ec) + { + BMCWEB_LOG_ERROR << "Couldn't connect to nbd-proxy: " + << ec.message(); + if (session != nullptr) + { + session->close("Error connecting to nbd-proxy"); + } + return; + } + doWrite(); + doRead(); + } + + void doWrite() + { + if (doingWrite) + { + BMCWEB_LOG_DEBUG << "Already writing. Bailing out"; + return; + } + + if (inputBuffer->size() == 0) + { + BMCWEB_LOG_DEBUG << "inputBuffer empty. Bailing out"; + return; + } + + doingWrite = true; + pipeIn.async_write_some( + inputBuffer->data(), + [this, self(shared_from_this())](boost::beast::error_code ec, + std::size_t bytesWritten) { + BMCWEB_LOG_DEBUG << "Wrote " << bytesWritten << "bytes"; + doingWrite = false; + inputBuffer->consume(bytesWritten); + + if (session == nullptr) + { + return; + } + if (ec == boost::asio::error::eof) + { + session->close("VM socket port closed"); + return; + } + if (ec) + { + session->close("Error in writing to proxy port"); + BMCWEB_LOG_ERROR << "Error in VM socket write " << ec; + return; + } + doWrite(); + }); + } + + void doRead() + { + std::size_t bytes = outputBuffer->capacity() - outputBuffer->size(); + + pipeOut.async_read_some( + outputBuffer->prepare(bytes), + [this, self(shared_from_this())]( + const boost::system::error_code& ec, std::size_t bytesRead) { + BMCWEB_LOG_DEBUG << "Read done. Read " << bytesRead + << " bytes"; + if (ec) + { + BMCWEB_LOG_ERROR << "Couldn't read from VM port: " << ec; + if (session != nullptr) + { + session->close("Error in connecting to VM port"); + } + return; + } + if (session == nullptr) + { + return; + } + + outputBuffer->commit(bytesRead); + std::string_view payload( + static_cast(outputBuffer->data().data()), + bytesRead); + session->sendBinary(payload); + outputBuffer->consume(bytesRead); + + doRead(); + }); + } + + boost::process::async_pipe pipeOut; + boost::process::async_pipe pipeIn; + boost::process::child proxy; + std::string media; + bool doingWrite; + + std::unique_ptr> + outputBuffer; + std::unique_ptr> + inputBuffer; +}; + +static std::shared_ptr handler; + +template void requestRoutes(Crow& app) +{ + BMCWEB_ROUTE(app, "/vm/0/0") + .requires({"ConfigureComponents", "ConfigureManager"}) + .websocket() + .onopen([](crow::websocket::Connection& conn, + std::shared_ptr asyncResp) { + BMCWEB_LOG_DEBUG << "Connection " << &conn << " opened"; + + if (session != nullptr) + { + conn.close("Session already connected"); + return; + } + + if (handler != nullptr) + { + conn.close("Handler already running"); + return; + } + + session = &conn; + + // media is the last digit of the endpoint /vm/0/0. A future + // enhancement can include supporting different endpoint values. + const char* media = "0"; + handler = std::make_shared(media, conn.get_io_context()); + handler->connect(); + }) + .onclose( + [](crow::websocket::Connection& conn, const std::string& reason) { + session = nullptr; + handler->doClose(); +#if BOOST_VERSION >= 107000 + handler->inputBuffer->clear(); + handler->outputBuffer->clear(); +#else + handler->inputBuffer->reset(); + handler->outputBuffer->reset(); +#endif + handler.reset(); + }) + .onmessage([](crow::websocket::Connection& conn, + const std::string& data, bool is_binary) { + if (data.length() > handler->inputBuffer->capacity()) + { + BMCWEB_LOG_ERROR << "Buffer overrun when writing " + << data.length() << " bytes"; + conn.close("Buffer overrun"); + return; + } + + boost::asio::buffer_copy(handler->inputBuffer->prepare(data.size()), + boost::asio::buffer(data)); + handler->inputBuffer->commit(data.size()); + handler->doWrite(); + }); +} + +} // namespace obmc_vm +} // namespace crow diff --git a/Contrib-Inspur/bmcweb/include/web_kvm.hpp b/Contrib-Inspur/bmcweb/include/web_kvm.hpp deleted file mode 100644 index 747a137b..00000000 --- a/Contrib-Inspur/bmcweb/include/web_kvm.hpp +++ /dev/null @@ -1,422 +0,0 @@ -#include - -#include -#include -#include -#include - -namespace crow -{ -namespace kvm -{ - -static const std::string rfb33VersionString = "RFB 003.003\n"; -static const std::string rfb37VersionString = "RFB 003.007\n"; -static const std::string rfb38VersionString = "RFB 003.008\n"; - -enum class RfbAuthScheme : uint8_t -{ - connection_failed = 0, - no_authentication = 1, - vnc_authentication = 2 -}; - -struct PixelFormatStruct -{ - boost::endian::big_uint8_t bitsPerPixel; - boost::endian::big_uint8_t depth; - boost::endian::big_uint8_t isBigEndian; - boost::endian::big_uint8_t isTrueColor; - boost::endian::big_uint16_t redMax; - boost::endian::big_uint16_t greenMax; - boost::endian::big_uint16_t blueMax; - boost::endian::big_uint8_t redShift; - boost::endian::big_uint8_t greenShift; - boost::endian::big_uint8_t blueShift; - boost::endian::big_uint8_t pad1; - boost::endian::big_uint8_t pad2; - boost::endian::big_uint8_t pad3; -}; - -struct ServerInitializationMsg -{ - boost::endian::big_uint16_t framebufferWidth; - boost::endian::big_uint16_t framebufferHeight; - PixelFormatStruct pixelFormat; - boost::endian::big_uint32_t nameLength; -}; - -enum class client_to_server_msg_type : uint8_t -{ - set_pixel_format = 0, - fix_color_map_entries = 1, - set_encodings = 2, - framebuffer_update_request = 3, - key_event = 4, - pointer_event = 5, - client_cut_text = 6 -}; - -enum class server_to_client_message_type : uint8_t -{ - framebuffer_update = 0, - set_color_map_entries = 1, - bell_message = 2, - server_cut_text = 3 -}; - -struct SetPixelFormatMsg -{ - boost::endian::big_uint8_t pad1; - boost::endian::big_uint8_t pad2; - boost::endian::big_uint8_t pad3; - PixelFormatStruct pixelFormat; -}; - -struct FrameBufferUpdateReq -{ - boost::endian::big_uint8_t incremental; - boost::endian::big_uint16_t xPosition; - boost::endian::big_uint16_t yPosition; - boost::endian::big_uint16_t width; - boost::endian::big_uint16_t height; -}; - -struct KeyEventMsg -{ - boost::endian::big_uint8_t downFlag; - boost::endian::big_uint8_t pad1; - boost::endian::big_uint8_t pad2; - boost::endian::big_uint32_t key; -}; - -struct PointerEventMsg -{ - boost::endian::big_uint8_t buttonMask; - boost::endian::big_uint16_t xPosition; - boost::endian::big_uint16_t yPosition; -}; - -struct ClientCutTextMsg -{ - std::vector data; -}; - -enum class encoding_type : uint32_t -{ - raw = 0x00, - copy_rectangle = 0x01, - rising_rectangle = 0x02, - corre = 0x04, - hextile = 0x05, - zlib = 0x06, - tight = 0x07, - zlibhex = 0x08, - ultra = 0x09, - zrle = 0x10, - zywrle = 0x011, - cache_enable = 0xFFFF0001, - xor_enable = 0xFFFF0006, - server_state_ultranvc = 0xFFFF8000, - enable_keepAlive = 0xFFFF8001, - enableftp_protocol_version = 0xFFFF8002, - tight_compress_level_0 = 0xFFFFFF00, - tight_compress_level_9 = 0xFFFFFF09, - x_cursor = 0xFFFFFF10, - rich_cursor = 0xFFFFFF11, - pointer_pos = 0xFFFFFF18, - last_rect = 0xFFFFFF20, - new_framebuffer_size = 0xFFFFFF21, - tight_quality_level_0 = 0xFFFFFFE0, - tight_quality_level_9 = 0xFFFFFFE9 -}; - -struct FramebufferRectangle -{ - boost::endian::big_uint16_t x{}; - boost::endian::big_uint16_t y{}; - boost::endian::big_uint16_t width{}; - boost::endian::big_uint16_t height{}; - boost::endian::big_uint32_t encoding{}; - std::vector data; -}; - -struct FramebufferUpdateMsg -{ - boost::endian::big_uint8_t messageType{}; - std::vector rectangles; -}; - -inline std::string serialize(const FramebufferUpdateMsg& msg) -{ - // calculate the size of the needed vector for serialization - size_t vectorSize = 4; - for (const auto& rect : msg.rectangles) - { - vectorSize += 12 + rect.data.size(); - } - - std::string serialized(vectorSize, 0); - - size_t i = 0; - serialized[i++] = static_cast( - server_to_client_message_type::framebuffer_update); // Type - serialized[i++] = 0; // Pad byte - boost::endian::big_uint16_t numberOfRectangles = msg.rectangles.size(); - std::memcpy(&serialized[i], &numberOfRectangles, - sizeof(numberOfRectangles)); - i += sizeof(numberOfRectangles); - - for (const auto& rect : msg.rectangles) - { - // copy the first part of the struct - size_t bufferSize = - sizeof(FramebufferRectangle) - sizeof(std::vector); - std::memcpy(&serialized[i], &rect, bufferSize); - i += bufferSize; - - std::memcpy(&serialized[i], rect.data.data(), rect.data.size()); - i += rect.data.size(); - } - - return serialized; -} - -enum class VncState -{ - UNSTARTED, - AWAITING_CLIENT_VERSION, - AWAITING_CLIENT_AUTH_METHOD, - AWAITING_CLIENT_INIT_msg, - MAIN_LOOP -}; - -class ConnectionMetadata -{ - public: - ConnectionMetadata(){}; - - VncState vncState{VncState::UNSTARTED}; -}; - -using meta_list = std::vector; -meta_list connectionStates(10); - -ConnectionMetadata meta; - -template void requestRoutes(Crow& app) -{ - BMCWEB_ROUTE(app, "/kvmws") - .websocket() - .onopen([&](crow::websocket::Connection& conn) { - if (meta.vncState == VncState::UNSTARTED) - { - meta.vncState = VncState::AWAITING_CLIENT_VERSION; - conn.sendBinary(rfb38VersionString); - } - else - { // SHould never happen - conn.close(); - } - }) - .onclose( - [&](crow::websocket::Connection& conn, const std::string& reason) { - meta.vncState = VncState::UNSTARTED; - }) - .onmessage([&](crow::websocket::Connection& conn, - const std::string& data, bool is_binary) { - switch (meta.vncState) - { - case VncState::AWAITING_CLIENT_VERSION: - { - std::cout << "Client sent: " << data; - if (data == rfb38VersionString || - data == rfb37VersionString) - { - std::string authTypes{ - 1, (uint8_t)RfbAuthScheme::no_authentication}; - conn.sendBinary(authTypes); - meta.vncState = VncState::AWAITING_CLIENT_AUTH_METHOD; - } - else if (data == rfb33VersionString) - { - // TODO(ed) Support older protocols - meta.vncState = VncState::UNSTARTED; - conn.close(); - } - else - { - // TODO(ed) Support older protocols - meta.vncState = VncState::UNSTARTED; - conn.close(); - } - } - break; - case VncState::AWAITING_CLIENT_AUTH_METHOD: - { - std::string securityResult{{0, 0, 0, 0}}; - if (data[0] == (uint8_t)RfbAuthScheme::no_authentication) - { - meta.vncState = VncState::AWAITING_CLIENT_INIT_msg; - } - else - { - // Mark auth as failed - securityResult[3] = 1; - meta.vncState = VncState::UNSTARTED; - } - conn.sendBinary(securityResult); - } - break; - case VncState::AWAITING_CLIENT_INIT_msg: - { - // Now send the server initialization - ServerInitializationMsg serverInitMsg{}; - serverInitMsg.framebufferWidth = 800; - serverInitMsg.framebufferHeight = 600; - serverInitMsg.pixelFormat.bitsPerPixel = 32; - serverInitMsg.pixelFormat.isBigEndian = 0; - serverInitMsg.pixelFormat.isTrueColor = 1; - serverInitMsg.pixelFormat.redMax = 255; - serverInitMsg.pixelFormat.greenMax = 255; - serverInitMsg.pixelFormat.blueMax = 255; - serverInitMsg.pixelFormat.redShift = 16; - serverInitMsg.pixelFormat.greenShift = 8; - serverInitMsg.pixelFormat.blueShift = 0; - serverInitMsg.nameLength = 0; - std::cout << "size: " << sizeof(serverInitMsg); - // TODO(ed) this is ugly. Crow should really have a span - // type interface to avoid the copy, but alas, today it does - // not. - std::string s(reinterpret_cast(&serverInitMsg), - sizeof(serverInitMsg)); - std::cout << "s.size() " << s.size(); - conn.sendBinary(s); - meta.vncState = VncState::MAIN_LOOP; - } - break; - case VncState::MAIN_LOOP: - { - if (data.size() >= sizeof(client_to_server_msg_type)) - { - auto type = - static_cast(data[0]); - std::cout << "Received client message type " - << static_cast(type) << "\n"; - switch (type) - { - case client_to_server_msg_type::set_pixel_format: - { - } - break; - - case client_to_server_msg_type:: - fix_color_map_entries: - { - } - break; - case client_to_server_msg_type::set_encodings: - { - } - break; - case client_to_server_msg_type:: - framebuffer_update_request: - { - // Make sure the buffer is long enough to handle - // what we're about to do - if (data.size() >= - sizeof(FrameBufferUpdateReq) + - sizeof(client_to_server_msg_type)) - { - auto msg = reinterpret_cast< - const FrameBufferUpdateReq*>( - data.data() + // NOLINT - sizeof(client_to_server_msg_type)); - // TODO(ed) find a better way to do this - // deserialization - - // Todo(ed) lifecycle of the video puller - // and decoder should be with the websocket, - // not recreated every time - ast_video::SimpleVideoPuller p; - p.initialize(); - auto out = p.readVideo(); - ast_video::AstJpegDecoder d; - d.decode(out.buffer, out.width, out.height, - out.mode, out.ySelector, - out.uvSelector); - - FramebufferUpdateMsg bufferUpdateMsg; - - // If the viewer is requesting a full - // update, force write of all pixels - - FramebufferRectangle thisRect; - thisRect.x = msg->xPosition; - thisRect.y = msg->yPosition; - thisRect.width = out.width; - thisRect.height = out.height; - thisRect.encoding = static_cast( - encoding_type::raw); - std::cout << "Encoding is " - << thisRect.encoding; - thisRect.data.reserve( - static_cast( - thisRect.width) * - static_cast( - thisRect.height) * - 4); - std::cout << "Width " << out.width - << " Height " << out.height; - - for (int i = 0; i < out.width * out.height; - i++) - { - auto& pixel = d.outBuffer[i]; - thisRect.data.push_back(pixel.b); - thisRect.data.push_back(pixel.g); - thisRect.data.push_back(pixel.r); - thisRect.data.push_back(0); - } - - bufferUpdateMsg.rectangles.push_back( - std::move(thisRect)); - auto serialized = - serialize(bufferUpdateMsg); - - conn.sendBinary(serialized); - - } // TODO(Ed) handle error - } - - break; - - case client_to_server_msg_type::key_event: - { - } - break; - - case client_to_server_msg_type::pointer_event: - { - } - break; - - case client_to_server_msg_type::client_cut_text: - { - } - break; - - default: - break; - } - } - } - break; - case VncState::UNSTARTED: - // Error? TODO - break; - } - }); -} -} // namespace kvm -} // namespace crow \ No newline at end of file diff --git a/Contrib-Inspur/bmcweb/include/webassets.hpp b/Contrib-Inspur/bmcweb/include/webassets.hpp index 9bd40dbf..847696a3 100644 --- a/Contrib-Inspur/bmcweb/include/webassets.hpp +++ b/Contrib-Inspur/bmcweb/include/webassets.hpp @@ -1,14 +1,13 @@ #pragma once -#include "filesystem.hpp" - -#include -#include -#include -#include +#include +#include +#include +#include #include #include +#include #include #include @@ -158,6 +157,6 @@ template void requestRoutes(Crow& app) }); } } -} // namespace webassets +} } // namespace webassets } // namespace crow diff --git a/Contrib-Inspur/bmcweb/include/webserver_common.hpp b/Contrib-Inspur/bmcweb/include/webserver_common.hpp index 684387da..079b17a9 100644 --- a/Contrib-Inspur/bmcweb/include/webserver_common.hpp +++ b/Contrib-Inspur/bmcweb/include/webserver_common.hpp @@ -17,7 +17,6 @@ #include "security_headers_middleware.hpp" #include "token_authorization_middleware.hpp" -#include "webserver_common.hpp" using CrowApp = crow::App -#include "crow/http_response.h" +#include "http_response.h" namespace redfish { diff --git a/Contrib-Inspur/bmcweb/redfish-core/include/node.hpp b/Contrib-Inspur/bmcweb/redfish-core/include/node.hpp index 049393fd..9086f1e0 100644 --- a/Contrib-Inspur/bmcweb/redfish-core/include/node.hpp +++ b/Contrib-Inspur/bmcweb/redfish-core/include/node.hpp @@ -20,8 +20,10 @@ #include "webserver_common.hpp" #include +#include -#include "crow.h" +#include "http_request.h" +#include "http_response.h" namespace redfish { @@ -53,22 +55,90 @@ class Node { public: template - Node(CrowApp& app, std::string&& entityUrl, Params... params) + Node(CrowApp& app, std::string&& entityUrl, Params... paramsIn) { - app.routeDynamic(entityUrl.c_str()) - .methods("GET"_method, "PATCH"_method, "POST"_method, - "DELETE"_method)([&](const crow::Request& req, - crow::Response& res, - Params... params) { - std::vector paramVec = {params...}; - dispatchRequest(app, req, res, paramVec); - }); + crow::DynamicRule& get = app.routeDynamic(entityUrl.c_str()); + getRule = &get; + get.methods("GET"_method)([this](const crow::Request& req, + crow::Response& res, + Params... params) { + std::vector paramVec = {params...}; + doGet(res, req, paramVec); + }); + + crow::DynamicRule& patch = app.routeDynamic(entityUrl.c_str()); + patchRule = &patch; + patch.methods("PATCH"_method)([this](const crow::Request& req, + crow::Response& res, + Params... params) { + std::vector paramVec = {params...}; + doPatch(res, req, paramVec); + }); + + crow::DynamicRule& post = app.routeDynamic(entityUrl.c_str()); + postRule = &post; + post.methods("POST"_method)([this](const crow::Request& req, + crow::Response& res, + Params... params) { + std::vector paramVec = {params...}; + doPost(res, req, paramVec); + }); + + crow::DynamicRule& delete_ = app.routeDynamic(entityUrl.c_str()); + deleteRule = &delete_; + delete_.methods("DELETE"_method)([this](const crow::Request& req, + crow::Response& res, + Params... params) { + std::vector paramVec = {params...}; + doDelete(res, req, paramVec); + }); + } + + void initPrivileges() + { + auto it = entityPrivileges.find(boost::beast::http::verb::get); + if (it != entityPrivileges.end()) + { + if (getRule != nullptr) + { + getRule->requires(it->second); + } + } + it = entityPrivileges.find(boost::beast::http::verb::post); + if (it != entityPrivileges.end()) + { + if (postRule != nullptr) + { + postRule->requires(it->second); + } + } + it = entityPrivileges.find(boost::beast::http::verb::patch); + if (it != entityPrivileges.end()) + { + if (patchRule != nullptr) + { + patchRule->requires(it->second); + } + } + it = entityPrivileges.find(boost::beast::http::verb::delete_); + if (it != entityPrivileges.end()) + { + if (deleteRule != nullptr) + { + deleteRule->requires(it->second); + } + } } virtual ~Node() = default; OperationMap entityPrivileges; + crow::DynamicRule* getRule = nullptr; + crow::DynamicRule* postRule = nullptr; + crow::DynamicRule* patchRule = nullptr; + crow::DynamicRule* deleteRule = nullptr; + protected: // Node is designed to be an abstract class, so doGet is pure virtual virtual void doGet(crow::Response& res, const crow::Request& req, @@ -99,45 +169,25 @@ class Node res.end(); } - private: - void dispatchRequest(CrowApp& app, const crow::Request& req, - crow::Response& res, - const std::vector& params) + /* @brief Would the operation be allowed if the user did not have + * the ConfigureSelf Privilege? + * + * @param req the request + * + * @returns True if allowed, false otherwise + */ + inline bool isAllowedWithoutConfigureSelf(const crow::Request& req) { - auto ctx = - app.template getContext(req); - - if (!isMethodAllowedForUser(req.method(), entityPrivileges, - ctx.session->username)) - { - res.result(boost::beast::http::status::method_not_allowed); - res.end(); - return; - } - - switch (req.method()) - { - case "GET"_method: - doGet(res, req, params); - break; - - case "PATCH"_method: - doPatch(res, req, params); - break; - - case "POST"_method: - doPost(res, req, params); - break; - - case "DELETE"_method: - doDelete(res, req, params); - break; - - default: - res.result(boost::beast::http::status::not_found); - res.end(); - } - return; + const std::string& userRole = req.userRole; + BMCWEB_LOG_DEBUG << "isAllowedWithoutConfigureSelf for the role " + << req.userRole; + Privileges effectiveUserPrivileges = + redfish::getUserPrivileges(userRole); + effectiveUserPrivileges.resetSinglePrivilege("ConfigureSelf"); + const auto& requiredPrivilegesIt = entityPrivileges.find(req.method()); + return (requiredPrivilegesIt != entityPrivileges.end()) && + isOperationAllowedWithPrivileges(requiredPrivilegesIt->second, + effectiveUserPrivileges); } }; diff --git a/Contrib-Inspur/bmcweb/redfish-core/include/privileges.hpp b/Contrib-Inspur/bmcweb/redfish-core/include/privileges.hpp index d5201f09..1ca57fad 100644 --- a/Contrib-Inspur/bmcweb/redfish-core/include/privileges.hpp +++ b/Contrib-Inspur/bmcweb/redfish-core/include/privileges.hpp @@ -15,13 +15,15 @@ */ #pragma once +#include + +#include #include +#include #include #include #include -#include "crow.h" - namespace redfish { @@ -36,10 +38,10 @@ constexpr std::array basePrivileges{ "Login", "ConfigureManager", "ConfigureComponents", "ConfigureSelf", "ConfigureUsers"}; -constexpr const int basePrivilegeCount = basePrivileges.size(); +constexpr const size_t basePrivilegeCount = basePrivileges.size(); /** @brief Max number of privileges per type */ -constexpr const int maxPrivilegeCount = 32; +constexpr const size_t maxPrivilegeCount = 32; /** @brief A vector of all privilege names and their indexes */ static const std::vector privilegeNames{basePrivileges.begin(), @@ -48,7 +50,8 @@ static const std::vector privilegeNames{basePrivileges.begin(), /** * @brief Redfish privileges * - * Entity privileges and user privileges are represented by this class. + * This implements a set of Redfish privileges. These directly represent + * user privileges and help represent entity privileges. * * Each incoming Connection requires a comparison between privileges held * by the user issuing a request and the target entity's privileges. @@ -98,7 +101,7 @@ class Privileges */ bool setSinglePrivilege(const char* privilege) { - for (int searchIndex = 0; searchIndex < privilegeNames.size(); + for (size_t searchIndex = 0; searchIndex < privilegeNames.size(); searchIndex++) { if (privilege == privilegeNames[searchIndex]) @@ -124,6 +127,28 @@ class Privileges return setSinglePrivilege(privilege.c_str()); } + /** + * @brief Resets the given privilege in the bitset + * + * @param[in] privilege Privilege to be reset + * + * @return None + * + */ + bool resetSinglePrivilege(const char* privilege) + { + for (size_t searchIndex = 0; searchIndex < privilegeNames.size(); + searchIndex++) + { + if (privilege == privilegeNames[searchIndex]) + { + privilegeBitset.reset(searchIndex); + return true; + } + } + return false; + } + /** * @brief Retrieves names of all active privileges for a given type * @@ -138,8 +163,8 @@ class Privileges { std::vector activePrivileges; - int searchIndex = 0; - int endIndex = basePrivilegeCount; + size_t searchIndex = 0; + size_t endIndex = basePrivilegeCount; if (type == PrivilegeType::OEM) { searchIndex = basePrivilegeCount - 1; @@ -175,9 +200,78 @@ class Privileges std::bitset privilegeBitset = 0; }; +inline const Privileges& getUserPrivileges(const std::string& userRole) +{ + // Redfish privilege : Administrator + if (userRole == "priv-admin") + { + static Privileges admin{"Login", "ConfigureManager", "ConfigureSelf", + "ConfigureUsers", "ConfigureComponents"}; + return admin; + } + else if (userRole == "priv-operator") + { + // Redfish privilege : Operator + static Privileges op{"Login", "ConfigureSelf", "ConfigureComponents"}; + return op; + } + else if (userRole == "priv-user") + { + // Redfish privilege : Readonly + static Privileges readOnly{"Login", "ConfigureSelf"}; + return readOnly; + } + else + { + // Redfish privilege : NoAccess + static Privileges noaccess; + return noaccess; + } +} + +/** + * @brief The OperationMap represents the privileges required for a + * single entity (URI). It maps from the allowable verbs to the + * privileges required to use that operation. + * + * This represents the Redfish "Privilege AND and OR syntax" as given + * in the spec and shown in the Privilege Registry. This does not + * implement any Redfish property overrides, subordinate overrides, or + * resource URI overrides. This does not implement the limitation of + * the ConfigureSelf privilege to operate only on your own account or + * session. + **/ using OperationMap = boost::container::flat_map>; +/* @brief Checks if user is allowed to call an operation + * + * @param[in] operationPrivilegesRequired Privileges required + * @param[in] userPrivileges Privileges the user has + * + * @return True if operation is allowed, false otherwise + */ +inline bool isOperationAllowedWithPrivileges( + const std::vector& operationPrivilegesRequired, + const Privileges& userPrivileges) +{ + // If there are no privileges assigned, there are no privileges required + if (operationPrivilegesRequired.empty()) + { + return true; + } + for (auto& requiredPrivileges : operationPrivilegesRequired) + { + BMCWEB_LOG_ERROR << "Checking operation privileges..."; + if (userPrivileges.isSupersetOf(requiredPrivileges)) + { + BMCWEB_LOG_ERROR << "...success"; + return true; + } + } + return false; +} + /** * @brief Checks if given privileges allow to call an HTTP method * @@ -197,20 +291,7 @@ inline bool isMethodAllowedWithPrivileges(const boost::beast::http::verb method, return false; } - // If there are no privileges assigned, assume no privileges required - if (it->second.empty()) - { - return true; - } - - for (auto& requiredPrivileges : it->second) - { - if (userPrivileges.isSupersetOf(requiredPrivileges)) - { - return true; - } - } - return false; + return isOperationAllowedWithPrivileges(it->second, userPrivileges); } /** diff --git a/Contrib-Inspur/bmcweb/redfish-core/include/redfish.hpp b/Contrib-Inspur/bmcweb/redfish-core/include/redfish.hpp index 2a61c52b..e2ca4f92 100644 --- a/Contrib-Inspur/bmcweb/redfish-core/include/redfish.hpp +++ b/Contrib-Inspur/bmcweb/redfish-core/include/redfish.hpp @@ -1,5 +1,5 @@ /* -// Copyright (c) 2018 Intel Corporation +// Copyright (c) 2018-2019 Intel Corporation // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,22 +14,58 @@ // limitations under the License. */ #pragma once - +// modify by mengyaohui 2020.02.11 +#ifdef BMCWEB_ENABLE_REDFISH_RMC +#include "../lib/account_service.hpp" +#include "../lib/bios.hpp" +#include "../lib/certificate_service.hpp" +#include "../lib/rmc/rmc_chassis.hpp"// +#include "../lib/rmc/rmc_cpudimm.hpp" +#include "../lib/rmc/rmc_ethernet.hpp"// +#include "../lib/rmc/rmc_log_services.hpp"// +#include "../lib/rmc/rmc_managers.hpp"// +#include "../lib/message_registries.hpp" +#include "../lib/rmc/rmc_network_protocol.hpp"// +#include "../lib/pcie.hpp" +#include "../lib/rmc/rmc_power.hpp"// +#include "../lib/redfish_sessions.hpp" +#include "../lib/roles.hpp" +#include "../lib/sensors.hpp" +#include "../lib/service_root.hpp" +#include "../lib/storage.hpp" +#include "../lib/rmc/rmc_systems.hpp"// +#include "../lib/rmc/rmc_thermal.hpp"// +#include "../lib/rmc/rmc_update_service.hpp"// +#ifdef BMCWEB_ENABLE_VM_NBDPROXY +#include "../lib/virtual_media.hpp" +#endif // BMCWEB_ENABLE_VM_NBDPROXY +#include "webserver_common.hpp" +#else #include "../lib/account_service.hpp" -#include "../lib/chassis.hpp" +#include "../lib/bios.hpp" +#include "../lib/certificate_service.hpp" +#include "../lib/chassis.hpp"// #include "../lib/cpudimm.hpp" -#include "../lib/ethernet.hpp" -#include "../lib/log_services.hpp" -#include "../lib/managers.hpp" -#include "../lib/network_protocol.hpp" -#include "../lib/power.hpp" +#include "../lib/ethernet.hpp"// +#include "../lib/log_services.hpp"// +#include "../lib/managers.hpp"// +#include "../lib/message_registries.hpp" +#include "../lib/network_protocol.hpp"// +#include "../lib/pcie.hpp" +#include "../lib/power.hpp"// #include "../lib/redfish_sessions.hpp" #include "../lib/roles.hpp" +#include "../lib/sensors.hpp" #include "../lib/service_root.hpp" -#include "../lib/systems.hpp" -#include "../lib/thermal.hpp" -#include "../lib/update_service.hpp" -#include "webserver_common.hpp" +#include "../lib/storage.hpp" +#include "../lib/systems.hpp"// +#include "../lib/thermal.hpp"// +#include "../lib/update_service.hpp"// +#ifdef BMCWEB_ENABLE_VM_NBDPROXY +#include "../lib/virtual_media.hpp" +#endif // BMCWEB_ENABLE_VM_NBDPROXY +#include "webserver_common.hpp" +#endif namespace redfish { @@ -67,6 +103,13 @@ class RedfishService nodes.emplace_back(std::make_unique(app)); nodes.emplace_back(std::make_unique(app)); nodes.emplace_back(std::make_unique(app)); + nodes.emplace_back(std::make_unique(app)); + nodes.emplace_back(std::make_unique(app)); + nodes.emplace_back(std::make_unique(app)); +#ifdef BMCWEB_INSECURE_ENABLE_REDFISH_FW_TFTP_UPDATE + nodes.emplace_back( + std::make_unique(app)); +#endif nodes.emplace_back(std::make_unique(app)); nodes.emplace_back(std::make_unique(app)); nodes.emplace_back( @@ -75,8 +118,12 @@ class RedfishService nodes.emplace_back(std::make_unique(app)); nodes.emplace_back(std::make_unique(app)); - nodes.emplace_back(std::make_unique(app)); - nodes.emplace_back(std::make_unique(app)); +#ifndef BMCWEB_ENABLE_REDFISH_DBUS_LOG_ENTRIES + nodes.emplace_back( + std::make_unique(app)); + nodes.emplace_back(std::make_unique(app)); + nodes.emplace_back(std::make_unique(app)); +#endif nodes.emplace_back(std::make_unique(app)); #ifdef BMCWEB_ENABLE_REDFISH_BMC_JOURNAL @@ -86,10 +133,12 @@ class RedfishService #endif #ifdef BMCWEB_ENABLE_REDFISH_CPU_LOG - nodes.emplace_back(std::make_unique(app)); - nodes.emplace_back(std::make_unique(app)); - nodes.emplace_back(std::make_unique(app)); - nodes.emplace_back(std::make_unique(app)); + nodes.emplace_back(std::make_unique(app)); + nodes.emplace_back(std::make_unique(app)); + nodes.emplace_back(std::make_unique(app)); + nodes.emplace_back(std::make_unique(app)); + nodes.emplace_back(std::make_unique(app)); + nodes.emplace_back(std::make_unique(app)); #ifdef BMCWEB_ENABLE_REDFISH_RAW_PECI nodes.emplace_back(std::make_unique(app)); #endif // BMCWEB_ENABLE_REDFISH_RAW_PECI @@ -103,6 +152,51 @@ class RedfishService nodes.emplace_back(std::make_unique(app)); nodes.emplace_back(std::make_unique(app)); nodes.emplace_back(std::make_unique(app)); + nodes.emplace_back(std::make_unique(app)); + nodes.emplace_back(std::make_unique(app)); +#ifdef BMCWEB_ENABLE_VM_NBDPROXY + nodes.emplace_back(std::make_unique(app)); + nodes.emplace_back(std::make_unique(app)); + nodes.emplace_back( + std::make_unique(app)); + nodes.emplace_back(std::make_unique(app)); +#endif // BMCWEB_ENABLE_VM_NBDPROXY +#ifdef BMCWEB_ENABLE_REDFISH_DBUS_LOG_ENTRIES + nodes.emplace_back(std::make_unique(app)); + nodes.emplace_back(std::make_unique(app)); + nodes.emplace_back(std::make_unique(app)); +#endif + + nodes.emplace_back( + std::make_unique(app)); + nodes.emplace_back(std::make_unique(app)); + nodes.emplace_back(std::make_unique(app)); + nodes.emplace_back(std::make_unique(app)); + nodes.emplace_back(std::make_unique(app)); + nodes.emplace_back(std::make_unique(app)); + nodes.emplace_back( + std::make_unique(app)); + nodes.emplace_back(std::make_unique(app)); + nodes.emplace_back(std::make_unique(app)); + nodes.emplace_back(std::make_unique(app)); + nodes.emplace_back(std::make_unique(app)); + nodes.emplace_back(std::make_unique(app)); + nodes.emplace_back(std::make_unique(app)); + nodes.emplace_back( + std::make_unique(app)); + nodes.emplace_back(std::make_unique(app)); + nodes.emplace_back(std::make_unique(app)); + nodes.emplace_back(std::make_unique(app)); + nodes.emplace_back(std::make_unique(app)); + nodes.emplace_back(std::make_unique(app)); + + nodes.emplace_back(std::make_unique(app)); + nodes.emplace_back(std::make_unique(app)); + + for (const auto& node : nodes) + { + node->initPrivileges(); + } } private: diff --git a/Contrib-Inspur/bmcweb/redfish-core/include/registries.hpp b/Contrib-Inspur/bmcweb/redfish-core/include/registries.hpp new file mode 100644 index 00000000..411e9a0d --- /dev/null +++ b/Contrib-Inspur/bmcweb/redfish-core/include/registries.hpp @@ -0,0 +1,42 @@ +/* +// Copyright (c) 2019 Intel Corporation +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +*/ +#pragma once +namespace redfish::message_registries +{ +struct Header +{ + const char* copyright; + const char* type; + const char* id; + const char* name; + const char* language; + const char* description; + const char* registryPrefix; + const char* registryVersion; + const char* owningEntity; +}; + +struct Message +{ + const char* description; + const char* message; + const char* severity; + const size_t numberOfArgs; + std::array paramTypes; + const char* resolution; +}; +using MessageEntry = std::pair; +} // namespace redfish::message_registries diff --git a/Contrib-Inspur/bmcweb/redfish-core/include/registries/base_message_registry.hpp b/Contrib-Inspur/bmcweb/redfish-core/include/registries/base_message_registry.hpp new file mode 100644 index 00000000..f9009f16 --- /dev/null +++ b/Contrib-Inspur/bmcweb/redfish-core/include/registries/base_message_registry.hpp @@ -0,0 +1,842 @@ +/* +// Copyright (c) 2019 Intel Corporation +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +*/ +/**************************************************************** + * This is an auto-generated header which contains definitions + * for Redfish DMTF defined messages. + ***************************************************************/ +#pragma once +#include + +namespace redfish::message_registries::base +{ +const Header header = { + "Copyright 2014-2018 DMTF. All rights reserved.", + "#MessageRegistry.v1_0_0.MessageRegistry", + "Base.1.4.0", + "Base Message Registry", + "en", + "This registry defines the base messages for Redfish", + "Base", + "1.4.0", + "DMTF", +}; +constexpr std::array registry = { + MessageEntry{ + "AccessDenied", + { + "Indicates that while attempting to access, connect to or transfer " + "to/from another resource, the service denied access.", + "While attempting to establish a connection to %1, the service " + "denied access.", + "Critical", + 1, + { + "string", + }, + "Attempt to ensure that the URI is correct and that the service " + "has the appropriate credentials.", + }}, + MessageEntry{"AccountForSessionNoLongerExists", + { + "Indicates that the account for the session has been " + "removed, thus the session has been removed as well.", + "The account for the current session has been removed, " + "thus the current session has been removed as well.", + "OK", + 0, + {}, + "Attempt to connect with a valid account.", + }}, + MessageEntry{"AccountModified", + { + "Indicates that the account was successfully modified.", + "The account was successfully modified.", + "OK", + 0, + {}, + "No resolution is required.", + }}, + MessageEntry{"AccountNotModified", + { + "Indicates that the modification requested for the " + "account was not successful.", + "The account modification request failed.", + "Warning", + 0, + {}, + "The modification may have failed due to permission " + "issues or issues with the request body.", + }}, + MessageEntry{"AccountRemoved", + { + "Indicates that the account was successfully removed.", + "The account was successfully removed.", + "OK", + 0, + {}, + "No resolution is required.", + }}, + MessageEntry{ + "ActionNotSupported", + { + "Indicates that the action supplied with the POST operation is not " + "supported by the resource.", + "The action %1 is not supported by the resource.", + "Critical", + 1, + { + "string", + }, + "The action supplied cannot be resubmitted to the implementation. " + "Perhaps the action was invalid, the wrong resource was the target " + "or the implementation documentation may be of assistance.", + }}, + MessageEntry{"ActionParameterDuplicate", + { + "Indicates that the action was supplied with a duplicated " + "parameter in the request body.", + "The action %1 was submitted with more than one value for " + "the parameter %2.", + "Warning", + 2, + { + "string", + "string", + }, + "Resubmit the action with only one instance of the " + "parameter in the request body if the operation failed.", + }}, + MessageEntry{"ActionParameterMissing", + { + "Indicates that the action requested was missing a " + "parameter that is required to process the action.", + "The action %1 requires the parameter %2 to be present in " + "the request body.", + "Critical", + 2, + { + "string", + "string", + }, + "Supply the action with the required parameter in the " + "request body when the request is resubmitted.", + }}, + MessageEntry{"ActionParameterNotSupported", + { + "Indicates that the parameter supplied for the action is " + "not supported on the resource.", + "The parameter %1 for the action %2 is not supported on " + "the target resource.", + "Warning", + 2, + { + "string", + "string", + }, + "Remove the parameter supplied and resubmit the request " + "if the operation failed.", + }}, + MessageEntry{ + "ActionParameterUnknown", + { + "Indicates that an action was submitted but a parameter supplied " + "did not match any of the known parameters.", + "The action %1 was submitted with the invalid parameter %2.", + "Warning", + 2, + { + "string", + "string", + }, + "Correct the invalid parameter and resubmit the request if the " + "operation failed.", + }}, + MessageEntry{"ActionParameterValueFormatError", + { + "Indicates that a parameter was given the correct value " + "type but the value of that parameter was not supported. " + "This includes value size/length exceeded.", + "The value %1 for the parameter %2 in the action %3 is of " + "a different format than the parameter can accept.", + "Warning", + 3, + { + "string", + "string", + "string", + }, + "Correct the value for the parameter in the request body " + "and resubmit the request if the operation failed.", + }}, + MessageEntry{"ActionParameterValueTypeError", + { + "Indicates that a parameter was given the wrong value " + "type, such as when a number is supplied for a parameter " + "that requires a string.", + "The value %1 for the parameter %2 in the action %3 is of " + "a different type than the parameter can accept.", + "Warning", + 3, + { + "string", + "string", + "string", + }, + "Correct the value for the parameter in the request body " + "and resubmit the request if the operation failed.", + }}, + MessageEntry{ + "CouldNotEstablishConnection", + { + "Indicates that the attempt to access the resource/file/image at " + "the URI was unsuccessful because a session could not be " + "established.", + "The service failed to establish a connection with the URI %1.", + "Critical", + 1, + { + "string", + }, + "Ensure that the URI contains a valid and reachable node name, " + "protocol information and other URI components.", + }}, + MessageEntry{ + "CreateFailedMissingReqProperties", + { + "Indicates that a create was attempted on a resource but that " + "properties that are required for the create operation were " + "missing from the request.", + "The create operation failed because the required property %1 was " + "missing from the request.", + "Critical", + 1, + { + "string", + }, + "Correct the body to include the required property with a valid " + "value and resubmit the request if the operation failed.", + }}, + MessageEntry{"CreateLimitReachedForResource", + { + "Indicates that no more resources can be created on the " + "resource as it has reached its create limit.", + "The create operation failed because the resource has " + "reached the limit of possible resources.", + "Critical", + 0, + {}, + "Either delete resources and resubmit the request if the " + "operation failed or do not resubmit the request.", + }}, + MessageEntry{"Created", + { + "Indicates that all conditions of a successful creation " + "operation have been met.", + "The resource has been created successfully", + "OK", + 0, + {}, + "None", + }}, + MessageEntry{ + "EmptyJSON", + { + "Indicates that the request body contained an empty JSON object " + "when one or more properties are expected in the body.", + "The request body submitted contained an empty JSON object and the " + "service is unable to process it.", + "Warning", + 0, + {}, + "Add properties in the JSON object and resubmit the request.", + }}, + MessageEntry{ + "EventSubscriptionLimitExceeded", + { + "Indicates that a event subscription establishment has been " + "requested but the operation failed due to the number of " + "simultaneous connection exceeding the limit of the " + "implementation.", + "The event subscription failed due to the number of simultaneous " + "subscriptions exceeding the limit of the implementation.", + "Critical", + 0, + {}, + "Reduce the number of other subscriptions before trying to " + "establish the event subscription or increase the limit of " + "simultaneous subscriptions (if supported).", + }}, + MessageEntry{ + "GeneralError", + { + "Indicates that a general error has occurred. Use in ExtendedInfo " + "is discouraged. When used in ExtendedInfo, implementations are " + "expected to include a Resolution property with this error to " + "indicate how to resolve the problem.", + "A general error has occurred. See Resolution for information on " + "how to resolve the error.", + "Critical", + 0, + {}, + "None.", + }}, + MessageEntry{ + "InsufficientPrivilege", + { + "Indicates that the credentials associated with the established " + "session do not have sufficient privileges for the requested " + "operation", + "There are insufficient privileges for the account or credentials " + "associated with the current session to perform the requested " + "operation.", + "Critical", + 0, + {}, + "Either abandon the operation or change the associated access " + "rights and resubmit the request if the operation failed.", + }}, + MessageEntry{ + "InternalError", + { + "Indicates that the request failed for an unknown internal error " + "but that the service is still operational.", + "The request failed due to an internal service error. The service " + "is still operational.", + "Critical", + 0, + {}, + "Resubmit the request. If the problem persists, consider " + "resetting the service.", + }}, + MessageEntry{"InvalidIndex", + { + "The Index is not valid.", + "The Index %1 is not a valid offset into the array.", + "Warning", + 1, + { + "number", + }, + "Verify the index value provided is within the bounds of " + "the array.", + }}, + MessageEntry{ + "InvalidObject", + { + "Indicates that the object in question is invalid according to the " + "implementation. Examples include a firmware update malformed " + "URI.", + "The object at %1 is invalid.", + "Critical", + 1, + { + "string", + }, + "Either the object is malformed or the URI is not correct. " + "Correct the condition and resubmit the request if it failed.", + }}, + MessageEntry{"MalformedJSON", + { + "Indicates that the request body was malformed JSON. " + "Could be duplicate, syntax error,etc.", + "The request body submitted was malformed JSON and could " + "not be parsed by the receiving service.", + "Critical", + 0, + {}, + "Ensure that the request body is valid JSON and resubmit " + "the request.", + }}, + MessageEntry{ + "NoOperation", + { + "Indicates that the requested operation will not perform any " + "changes on the service.", + "The request body submitted contain no data to act upon and no " + "changes to the resource took place.", + "Warning", + 0, + {}, + "Add properties in the JSON object and resubmit the request.", + }}, + MessageEntry{ + "NoValidSession", + { + "Indicates that the operation failed because a valid session is " + "required in order to access any resources.", + "There is no valid session established with the implementation.", + "Critical", + 0, + {}, + "Establish as session before attempting any operations.", + }}, + MessageEntry{"PropertyDuplicate", + { + "Indicates that a duplicate property was included in the " + "request body.", + "The property %1 was duplicated in the request.", + "Warning", + 1, + { + "string", + }, + "Remove the duplicate property from the request body and " + "resubmit the request if the operation failed.", + }}, + MessageEntry{ + "PropertyMissing", + { + "Indicates that a required property was not supplied as part of " + "the request.", + "The property %1 is a required property and must be included in " + "the request.", + "Warning", + 1, + { + "string", + }, + "Ensure that the property is in the request body and has a valid " + "value and resubmit the request if the operation failed.", + }}, + MessageEntry{"PropertyNotWritable", + { + "Indicates that a property was given a value in the " + "request body, but the property is a readonly property.", + "The property %1 is a read only property and cannot be " + "assigned a value.", + "Warning", + 1, + { + "string", + }, + "Remove the property from the request body and resubmit " + "the request if the operation failed.", + }}, + MessageEntry{"PropertyUnknown", + { + "Indicates that an unknown property was included in the " + "request body.", + "The property %1 is not in the list of valid properties " + "for the resource.", + "Warning", + 1, + { + "string", + }, + "Remove the unknown property from the request body and " + "resubmit the request if the operation failed.", + }}, + MessageEntry{"PropertyValueFormatError", + { + "Indicates that a property was given the correct value " + "type but the value of that property was not supported.", + "The value %1 for the property %2 is of a different " + "format than the property can accept.", + "Warning", + 2, + { + "string", + "string", + }, + "Correct the value for the property in the request body " + "and resubmit the request if the operation failed.", + }}, + MessageEntry{"PropertyValueModified", + { + "Indicates that a property was given the correct value " + "type but the value of that property was modified. " + "Examples are truncated or rounded values.", + "The property %1 was assigned the value %2 due to " + "modification by the service.", + "Warning", + 2, + { + "string", + "string", + }, + "No resolution is required.", + }}, + MessageEntry{ + "PropertyValueNotInList", + { + "Indicates that a property was given the correct value type but " + "the value of that property was not supported. This values not in " + "an enumeration", + "The value %1 for the property %2 is not in the list of acceptable " + "values.", + "Warning", + 2, + { + "string", + "string", + }, + "Choose a value from the enumeration list that the implementation " + "can support and resubmit the request if the operation failed.", + }}, + MessageEntry{ + "PropertyValueTypeError", + { + "Indicates that a property was given the wrong value type, such as " + "when a number is supplied for a property that requires a string.", + "The value %1 for the property %2 is of a different type than the " + "property can accept.", + "Warning", + 2, + { + "string", + "string", + }, + "Correct the value for the property in the request body and " + "resubmit the request if the operation failed.", + }}, + MessageEntry{ + "QueryNotSupported", + { + "Indicates that query is not supported on the implementation.", + "Querying is not supported by the implementation.", + "Warning", + 0, + {}, + "Remove the query parameters and resubmit the request if the " + "operation failed.", + }}, + MessageEntry{"QueryNotSupportedOnResource", + { + "Indicates that query is not supported on the given " + "resource, such as when a start/count query is attempted " + "on a resource that is not a collection.", + "Querying is not supported on the requested resource.", + "Warning", + 0, + {}, + "Remove the query parameters and resubmit the request if " + "the operation failed.", + }}, + MessageEntry{ + "QueryParameterOutOfRange", + { + "Indicates that a query parameter was supplied that is out of " + "range for the given resource. This can happen with values that " + "are too low or beyond that possible for the supplied resource, " + "such as when a page is requested that is beyond the last page.", + "The value %1 for the query parameter %2 is out of range %3.", + "Warning", + 3, + { + "string", + "string", + "string", + }, + "Reduce the value for the query parameter to a value that is " + "within range, such as a start or count value that is within " + "bounds of the number of resources in a collection or a page that " + "is within the range of valid pages.", + }}, + MessageEntry{"QueryParameterValueFormatError", + { + "Indicates that a query parameter was given the correct " + "value type but the value of that parameter was not " + "supported. This includes value size/length exceeded.", + "The value %1 for the parameter %2 is of a different " + "format than the parameter can accept.", + "Warning", + 2, + { + "string", + "string", + }, + "Correct the value for the query parameter in the request " + "and resubmit the request if the operation failed.", + }}, + MessageEntry{"QueryParameterValueTypeError", + { + "Indicates that a query parameter was given the wrong " + "value type, such as when a number is supplied for a " + "query parameter that requires a string.", + "The value %1 for the query parameter %2 is of a " + "different type than the parameter can accept.", + "Warning", + 2, + { + "string", + "string", + }, + "Correct the value for the query parameter in the request " + "and resubmit the request if the operation failed.", + }}, + MessageEntry{"ResourceAlreadyExists", + { + "Indicates that a resource change or creation was " + "attempted but that the operation cannot proceed because " + "the resource already exists.", + "The requested resource of type %1 with the property %2 " + "with the value %3 already exists.", + "Critical", + 3, + { + "string", + "string", + "string", + }, + "Do not repeat the create operation as the resource has " + "already been created.", + }}, + MessageEntry{ + "ResourceAtUriInUnknownFormat", + { + "Indicates that the URI was valid but the resource or image at " + "that URI was in a format not supported by the service.", + "The resource at %1 is in a format not recognized by the service.", + "Critical", + 1, + { + "string", + }, + "Place an image or resource or file that is recognized by the " + "service at the URI.", + }}, + MessageEntry{"ResourceAtUriUnauthorized", + { + "Indicates that the attempt to access the " + "resource/file/image at the URI was unauthorized.", + "While accessing the resource at %1, the service received " + "an authorization error %2.", + "Critical", + 2, + { + "string", + "string", + }, + "Ensure that the appropriate access is provided for the " + "service in order for it to access the URI.", + }}, + MessageEntry{"ResourceCannotBeDeleted", + { + "Indicates that a delete operation was attempted on a " + "resource that cannot be deleted.", + "The delete request failed because the resource requested " + "cannot be deleted.", + "Critical", + 0, + {}, + "Do not attempt to delete a non-deletable resource.", + }}, + MessageEntry{ + "ResourceExhaustion", + { + "Indicates that a resource could not satisfy the request due to " + "some unavailability of resources. An example is that available " + "capacity has been allocated.", + "The resource %1 was unable to satisfy the request due to " + "unavailability of resources.", + "Critical", + 1, + { + "string", + }, + "Ensure that the resources are available and resubmit the request.", + }}, + MessageEntry{"ResourceInStandby", + { + "Indicates that the request could not be performed " + "because the resource is in standby.", + "The request could not be performed because the resource " + "is in standby.", + "Critical", + 0, + {}, + "Ensure that the resource is in the correct power state " + "and resubmit the request.", + }}, + MessageEntry{"ResourceInUse", + { + "Indicates that a change was requested to a resource but " + "the change was rejected due to the resource being in use " + "or transition.", + "The change to the requested resource failed because the " + "resource is in use or in transition.", + "Warning", + 0, + {}, + "Remove the condition and resubmit the request if the " + "operation failed.", + }}, + MessageEntry{ + "ResourceMissingAtURI", + { + "Indicates that the operation expected an image or other resource " + "at the provided URI but none was found. Examples of this are in " + "requests that require URIs like Firmware Update.", + "The resource at the URI %1 was not found.", + "Critical", + 1, + { + "string", + }, + "Place a valid resource at the URI or correct the URI and resubmit " + "the request.", + }}, + MessageEntry{ + "ResourceNotFound", + { + "Indicates that the operation expected a resource identifier that " + "corresponds to an existing resource but one was not found.", + "The requested resource of type %1 named %2 was not found.", + "Critical", + 2, + { + "string", + "string", + }, + "Provide a valid resource identifier and resubmit the request.", + }}, + MessageEntry{ + "ResourceTypeIncompatible", + { + "Indicates that the resource type of the operation does not match " + "that for the operation destination. Examples of when this can " + "happen include during a POST to a collection using the wrong " + "resource type, an update where the @odata.types do not match or " + "on a major version incompatability.", + "The @odata.type of the request body %1 is incompatible with the " + "@odata.type of the resource which is %2.", + "Critical", + 2, + { + "string", + "string", + }, + "Resubmit the request with a payload compatible with the " + "resource's schema.", + }}, + MessageEntry{ + "ServiceInUnknownState", + { + "Indicates that the operation failed because the service is in an " + "unknown state and cannot accept additional requests.", + "The operation failed because the service is in an unknown state " + "and can no longer take incoming requests.", + "Critical", + 0, + {}, + "Restart the service and resubmit the request if the operation " + "failed.", + }}, + MessageEntry{"ServiceShuttingDown", + { + "Indicates that the operation failed as the service is " + "shutting down, such as when the service reboots.", + "The operation failed because the service is shutting " + "down and can no longer take incoming requests.", + "Critical", + 0, + {}, + "When the service becomes available, resubmit the request " + "if the operation failed.", + }}, + MessageEntry{ + "ServiceTemporarilyUnavailable", + { + "Indicates the service is temporarily unavailable.", + "The service is temporarily unavailable. Retry in %1 seconds.", + "Critical", + 1, + { + "string", + }, + "Wait for the indicated retry duration and retry the operation.", + }}, + MessageEntry{ + "SessionLimitExceeded", + { + "Indicates that a session establishment has been requested but the " + "operation failed due to the number of simultaneous sessions " + "exceeding the limit of the implementation.", + "The session establishment failed due to the number of " + "simultaneous sessions exceeding the limit of the implementation.", + "Critical", + 0, + {}, + "Reduce the number of other sessions before trying to establish " + "the session or increase the limit of simultaneous sessions (if " + "supported).", + }}, + MessageEntry{ + "SessionTerminated", + { + "Indicates that the DELETE operation on the Session resource " + "resulted in the successful termination of the session.", + "The session was successfully terminated.", + "OK", + 0, + {}, + "No resolution is required.", + }}, + MessageEntry{ + "SourceDoesNotSupportProtocol", + { + "Indicates that while attempting to access, connect to or transfer " + "a resource/file/image from another location that the other end of " + "the connection did not support the protocol", + "The other end of the connection at %1 does not support the " + "specified protocol %2.", + "Critical", + 2, + { + "string", + "string", + }, + "Change protocols or URIs. ", + }}, + MessageEntry{"StringValueTooLong", + { + "Indicates that a string value passed to the given " + "resource exceeded its length limit. An example is when a " + "shorter limit is imposed by an implementation than that " + "allowed by the specification.", + "The string %1 exceeds the length limit %2.", + "Warning", + 2, + { + "string", + "number", + }, + "Resubmit the request with an appropriate string length.", + }}, + MessageEntry{"Success", + { + "Indicates that all conditions of a successful operation " + "have been met.", + "Successfully Completed Request", + "OK", + 0, + {}, + "None", + }}, + MessageEntry{ + "UnrecognizedRequestBody", + { + "Indicates that the service encountered an unrecognizable request " + "body that could not even be interpreted as malformed JSON.", + "The service detected a malformed request body that it was unable " + "to interpret.", + "Warning", + 0, + {}, + "Correct the request body and resubmit the request if it failed.", + }}, +}; +} // namespace redfish::message_registries::base diff --git a/Contrib-Inspur/bmcweb/redfish-core/include/registries/openbmc_message_registry.hpp b/Contrib-Inspur/bmcweb/redfish-core/include/registries/openbmc_message_registry.hpp new file mode 100644 index 00000000..848766e3 --- /dev/null +++ b/Contrib-Inspur/bmcweb/redfish-core/include/registries/openbmc_message_registry.hpp @@ -0,0 +1,1814 @@ +/* +// Copyright (c) 2019 Intel Corporation +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +*/ +#pragma once +#include + +namespace redfish::message_registries::openbmc +{ +const Header header = { + "Copyright 2018 OpenBMC. All rights reserved.", + "#MessageRegistry.v1_0_0.MessageRegistry", + "OpenBMC.0.1.0", + "OpenBMC Message Registry", + "en", + "This registry defines the base messages for OpenBMC.", + "OpenBMC", + "0.1.0", + "OpenBMC", +}; +constexpr std::array registry = { + MessageEntry{ + "ADDDCCorrectable", + { + "Indicates an ADDDC Correctable Error.", + "ADDDC Correctable Error.Socket=%1 Channel=%2 DIMM=%3 Rank=%4.", + "Warning", + 4, + { + "number", + "string", + "number", + "number", + }, + "None.", + }}, + MessageEntry{ + "AtScaleDebugFeatureEnabledAtHardware", + { + "Indicates that At-Scale Debug enable is detected in hardware.", + "At-Scale Debug Feature is enabled in hardware.", + "Critical", + 0, + {}, + "None.", + }}, + MessageEntry{ + "AtScaleDebugFeatureDisabledAtHardware", + { + "Indicates that At-Scale Debug disable is detected in hardware.", + "At-Scale Debug Feature is disabled in hardware.", + "OK", + 0, + {}, + "None.", + }}, + MessageEntry{"AtScaleDebugFeatureEnabled", + { + "Indicates that At-Scale Debug service is started.", + "At-Scale Debug service is started.", + "Critical", + 0, + {}, + "None.", + }}, + MessageEntry{"AtScaleDebugFeatureDisabled", + { + "Indicates that At-Scale Debug service is stopped.", + "At-Scale Debug service is stopped.", + "OK", + 0, + {}, + "None.", + }}, + MessageEntry{"AtScaleDebugConnected", + { + "Indicates At-Scale Debug connection has been established", + "At-Scale Debug service is now connected %1", + "Critical", + 1, + {"string"}, + "None.", + }}, + MessageEntry{"AtScaleDebugDisconnected", + { + "Indicates At-Scale Debug connection has ended", + "At-Scale Debug service is now disconnected", + "OK", + 0, + {}, + "None.", + }}, + MessageEntry{"AtScaleDebugConnectionFailed", + { + "Indicates At-Scale Debug connection aborted/failed", + "At-Scale Debug connection aborted/failed", + "Critical", + 0, + {}, + "None.", + }}, + MessageEntry{"AtScaleDebugSpecialUserEnabled", + { + "Indicates that special user is enabled.", + "At-Scale Debug special user is enabled", + "Critical", + 0, + {}, + "None.", + }}, + MessageEntry{"AtScaleDebugSpecialUserDisabled", + { + "Indicates that special user is disabled.", + "At-Scale Debug special user is disabled", + "OK", + 0, + {}, + "None.", + }}, + + MessageEntry{ + "BIOSBoot", + { + "Indicates BIOS has transitioned control to the OS Loader.", + "BIOS System Boot.", + "OK", + 0, + {}, + "None.", + }}, + MessageEntry{"BIOSFirmwarePanicReason", + { + "Indicates the reason for BIOS firmware panic.", + "BIOS firmware panic occurred due to %1.", + "Warning", + 1, + { + "string", + }, + "None.", + }}, + MessageEntry{"BIOSFirmwareRecoveryReason", + { + "Indicates the reason for BIOS firmware recovery.", + "BIOS firmware recovery occurred due to %1.", + "Warning", + 1, + { + "string", + }, + "None.", + }}, + MessageEntry{"BIOSFirmwareResiliencyError", + { + "Indicates BIOS firmware encountered resilience error.", + "BIOS firmware resiliency error. Error reason: %1.", + "Critical", + 1, + { + "string", + }, + "None.", + }}, + MessageEntry{"BIOSPOSTError", + { + "Indicates BIOS POST has encountered an error.", + "BIOS POST Error. Error Code=%1", + "Warning", + 1, + {"number"}, + "None.", + }}, + MessageEntry{"BIOSRecoveryComplete", + { + "Indicates BIOS Recovery has completed.", + "BIOS Recovery Complete.", + "OK", + 0, + {}, + "None.", + }}, + MessageEntry{"BIOSRecoveryStart", + { + "Indicates BIOS Recovery has started.", + "BIOS Recovery Start.", + "Warning", + 0, + {}, + "None.", + }}, + MessageEntry{"BMCFirmwarePanicReason", + { + "Indicates the reason for last BMC firmware panic.", + "BMC firmware panic occurred due to %1.", + "Warning", + 1, + { + "string", + }, + "None.", + }}, + MessageEntry{"BMCFirmwareRecoveryReason", + { + "Indicates the reason for last BMC firmware recovery.", + "BMC firmware recovery occurred due to %1.", + "Warning", + 1, + { + "string", + }, + "None.", + }}, + MessageEntry{"BMCFirmwareResiliencyError", + { + "Indicates BMC firmware encountered resilience error.", + "BMC firmware resiliency error. Error reason: %1.", + "Critical", + 1, + { + "string", + }, + "None.", + }}, + MessageEntry{"ChassisIntrusionDetected", + { + "Indicates that a physical security event " + "of the chassis intrusion has occurred.", + "Chassis Intrusion Detected.", + "Warning", + 0, + {}, + "None.", + }}, + MessageEntry{"ChassisIntrusionReset", + { + "Indicates that chassis intrusion status has recovered.", + "Chassis Intrusion Reset.", + "OK", + 0, + {}, + "None.", + }}, + MessageEntry{"CPLDFirmwarePanicReason", + { + "Indicates the reason for CPLD firmware panic.", + "CPLD firmware panic occurred due to %1.", + "Warning", + 1, + { + "string", + }, + "None.", + }}, + MessageEntry{"CPLDFirmwareRecoveryReason", + { + "Indicates the reason for CPLD firmware recovery.", + "CPLD firmware recovery occurred due to %1.", + "Warning", + 1, + { + "string", + }, + "None.", + }}, + MessageEntry{"CPLDFirmwareResiliencyError", + { + "Indicates CPLD firmware encountered resilience error.", + "CPLD firmware resiliency error. Error reason: %1.", + "Critical", + 1, + { + "string", + }, + "None.", + }}, + MessageEntry{"CPUError", + { + "Indicates that a CPU Error occurred of " + "the specified type or cause.", + "CPU Error Occurred: %1.", + "Critical", + 1, + {"string"}, + "None.", + }}, + MessageEntry{"CPUThermalTrip", + { + "Indicates that the specified CPU thermal " + "trip has been asserted.", + "CPU %1 Thermal Trip.", + "Critical", + 1, + {"number"}, + "None.", + }}, + MessageEntry{"DCPowerOff", + { + "Indicates that the system DC power is off.", + "Host system DC power is off", + "OK", + 0, + {}, + "None.", + }}, + MessageEntry{"DCPowerOn", + { + "Indicates that the system DC power is on.", + "Host system DC power is on", + "OK", + 0, + {}, + "None.", + }}, + MessageEntry{"DriveError", + { + "Indicates that a Drive Error occurred of " + "the specified type or cause.", + "Drive Error Occurred: %1.", + "Warning", + 1, + {"string"}, + "None.", + }}, + MessageEntry{"EventLogCleared", + { + "Indicates that the event log has been cleared.", + "Event Log Cleared.", + "OK", + 0, + {}, + "None.", + }}, + MessageEntry{"FanInserted", + { + "Indicates that a system fan has been inserted.", + "%1 inserted.", + "OK", + 1, + {"string"}, + "None.", + }}, + MessageEntry{"FanRedundancyLost", + { + "Indicates that system fan redundancy has been lost.", + "Fan redundancy lost.", + "Warning", + 0, + {}, + "None.", + }}, + MessageEntry{"FanRedundancyRegained", + { + "Indicates that system fan redundancy has been regained.", + "Fan redundancy regained.", + "OK", + 0, + {}, + "None.", + }}, + MessageEntry{"FanRemoved", + { + "Indicates that a system fan has been removed.", + "%1 removed.", + "OK", + 1, + {"string"}, + "None.", + }}, + MessageEntry{"FirmwareUpdateCompleted", + { + "Indicates a firmware update has completed successfully.", + "%1 firmware update to version %2 completed " + "successfully.", + "OK", + 2, + {"string", "string"}, + "None.", + }}, + MessageEntry{"FirmwareUpdateFailed", + { + "Indicates a firmware update has failed.", + "%1 firmware update to version %2 failed.", + "Warning", + 2, + {"string", "string"}, + "None.", + }}, + MessageEntry{"FirmwareUpdateStarted", + { + "Indicates a firmware update has started.", + "%1 firmware update to version %2 started.", + "OK", + 2, + {"string", "string"}, + "None.", + }}, + MessageEntry{ + "GeneralFirmwareSecurityViolation", + { + "Indicates a general firmware security violation has occurred.", + "Firmware security violation: %1.", + "Critical", + 1, + {"string"}, + "None.", + }}, + MessageEntry{"InvalidLoginAttempted", + { + "Indicates that a login was attempted on the specified " + "interface with an invalid username or password.", + "Invalid username or password attempted on %1.", + "Warning", + 1, + {"string"}, + "None.", + }}, + MessageEntry{ + "InventoryAdded", + { + "Indicates that an inventory item with the specified model, " + "type, and serial number was installed.", + "%1 %2 with serial number %3 was installed.", + "OK", + 3, + + { + "string", + "string", + "string", + }, + "None.", + }}, + MessageEntry{ + "InventoryRemoved", + { + "Indicates that an inventory item with the specified model, " + "type, and serial number was removed.", + "%1 %2 with serial number %3 was removed.", + "OK", + 3, + + { + "string", + "string", + "string", + }, + "None.", + }}, + MessageEntry{ + "IntelUPILinkWidthReducedToHalf", + { + "Indicates Intel UPI link width has reduced to half width.", + "Intel UPI link width reduced to half. Node=%1.", + "Warning", + 1, + + { + "number", + }, + "None.", + }}, + MessageEntry{ + "IntelUPILinkWidthReducedToQuarter", + { + "Indicates Intel UPI link width has reduced to quarter width.", + "Intel UPI link width reduced to quarter. Node=%1.", + "Warning", + 1, + + { + "number", + }, + "None.", + }}, + + MessageEntry{"IPMIWatchdog", + { + "Indicates that there is a host watchdog event.", + "Host Watchdog Event: %1", + "OK", + 1, + + { + "string", + }, + "None.", + }}, + MessageEntry{"LanLost", + { + "Indicates that a physical security event " + "of the LAN leash has lost.", + "%1 LAN leash lost.", + "Warning", + 1, + { + "string", + }, + "None.", + }}, + MessageEntry{"LanRegained", + { + "Indicates that LAN link status has reconnected.", + "%1 LAN leash regained.", + "OK", + 1, + { + "string", + }, + "None.", + }}, + MessageEntry{"LegacyPCIPERR", + { + "Indicates a Legacy PCI PERR.", + "Legacy PCI PERR. Bus=%1 Device=%2 Function=%3.", + "Warning", + 3, + + { + "number", + "number", + "number", + }, + "None.", + }}, + MessageEntry{"LegacyPCISERR", + { + "Indicates a Legacy PCI SERR.", + "Legacy PCI SERR. Bus=%1 Device=%2 Function=%3.", + "Critical", + 3, + + { + "number", + "number", + "number", + }, + "None.", + }}, + MessageEntry{"ManufacturingModeEntered", + { + "Indicates that the BMC entered Factory, " + "or Manufacturing mode.", + "Entered Manufacturing Mode.", + "Critical", + 0, + {}, + "None.", + }}, + MessageEntry{"ManufacturingModeExited", + { + "Indicates that the BMC exited Factory, " + "or Manufacturing mode.", + "Exited Manufacturing Mode.", + "OK", + 0, + {}, + "None.", + }}, + MessageEntry{"MEFirmwarePanicReason", + { + "Indicates the reason for ME firmware panic.", + "ME firmware panic occurred due to %1.", + "Warning", + 1, + { + "string", + }, + "None.", + }}, + MessageEntry{"MEFirmwareRecoveryReason", + { + "Indicates the reason for ME firmware recovery.", + "ME firmware recovery occurred due to %1.", + "Warning", + 1, + { + "string", + }, + "None.", + }}, + MessageEntry{"MEFirmwareResiliencyError", + { + "Indicates ME firmware encountered resilience error.", + "ME firmware resiliency error. Error reason: %1.", + "Critical", + 1, + { + "string", + }, + "None.", + }}, + MessageEntry{"MemoryECCCorrectable", + { + "Indicates a Correctable Memory ECC error.", + "Memory ECC correctable error. Socket=%1 " + "Channel=%2 DIMM=%3 Rank=%4.", + "Warning", + 4, + + { + "number", + "string", + "number", + "number", + }, + "None.", + }}, + MessageEntry{"MemoryECCUncorrectable", + { + "Indicates an Uncorrectable Memory ECC error.", + "Memory ECC uncorrectable error. Socket=%1 Channel=%2 " + "DIMM=%3 Rank=%4.", + "Critical", + 4, + + { + "number", + "string", + "number", + "number", + }, + "None.", + }}, + MessageEntry{"MemoryParityCommandAndAddress", + { + "Indicates a Command and Address parity error.", + "Command and Address parity error. Socket=%1 Channel=%2 " + "DIMM=%3 ChannelValid=%4 DIMMValid=%5.", + "Critical", + 5, + + { + "number", + "string", + "number", + "number", + "number", + }, + "None.", + }}, + MessageEntry{"MemoryParityNotKnown", + { + "Indicates an unknown parity error.", + "Memory parity error. Socket=%1 Channel=%2 " + "DIMM=%3 ChannelValid=%4 DIMMValid=%5.", + "Critical", + 5, + + { + "number", + "string", + "number", + "number", + "number", + }, + "None.", + }}, + MessageEntry{"MemoryRASConfigurationDisabled", + { + "Indicates Memory RAS Disabled Configuration Status.", + "Memory RAS Configuration Disabled. Error=%1 Mode=%2.", + "OK", + 2, + + { + "string", + "string", + }, + "None.", + }}, + MessageEntry{"MemoryRASConfigurationEnabled", + { + "Indicates Memory RAS Enabled Configuration Status.", + "Memory RAS Configuration Enabled. Error=%1 Mode=%2.", + "OK", + 2, + + { + "string", + "string", + }, + "None.", + }}, + MessageEntry{"MemoryRASModeDisabled", + { + "Indicates Memory RAS Disabled Mode Selection.", + "Memory RAS Mode Select Disabled. Prior Mode=%1 " + "Selected Mode=%2.", + "OK", + 2, + + { + "string", + "string", + }, + "None.", + }}, + MessageEntry{"MemoryRASModeEnabled", + { + "Indicates Memory RAS Enabled Mode Selection.", + "Memory RAS Mode Select Enabled. Prior Mode=%1 Selected " + "Mode=%2.", + "OK", + 2, + + { + "string", + "string", + }, + "None.", + }}, + MessageEntry{"MemoryThermTrip", + { + "Indicates that the system memory ThermTrip is asserted " + "by the specified component.", + "Memory ThermTrip asserted: %1.", + "Critical", + 1, + {"string"}, + "None.", + }}, + MessageEntry{"MirroringRedundancyDegraded", + { + "Indicates the mirroring redundancy state is degraded.", + "Mirroring redundancy state degraded. Socket=%1 " + "Channel=%2 DIMM=%3 Pair=%4 Rank=%5.", + "Warning", + 5, + + { + "number", + "string", + "number", + "number", + "number", + }, + "None.", + }}, + MessageEntry{ + "MirroringRedundancyFull", + { + "Indicates the mirroring redundancy state is fully redundant.", + "Mirroring redundancy state fully redundant. Socket=%1 " + "Channel=%2 DIMM=%3 Pair=%4 Rank=%5.", + "OK", + 5, + + { + "number", + "string", + "number", + "number", + "number", + }, + "None.", + }}, + MessageEntry{"NMIButtonPressed", + { + "Indicates that the NMI button was pressed.", + "NMI Button Pressed.", + "Critical", + 0, + {}, + "None.", + }}, + MessageEntry{"NMIDiagnosticInterrupt", + { + "Indicates that an NMI Diagnostic " + "Interrupt has been generated.", + "NMI Diagnostic Interrupt.", + "Critical", + 0, + {}, + "None.", + }}, + MessageEntry{"PCIeCorrectableAdvisoryNonFatal", + { + "Indicates a PCIe Correctable Advisory Non-fatal Error.", + "PCIe Correctable Advisory Non-fatal Error. Bus=%1 " + "Device=%2 Function=%3.", + "Warning", + 3, + + { + "number", + "number", + "number", + }, + "None.", + }}, + MessageEntry{"PCIeCorrectableBadDLLP", + { + "Indicates a PCIe Correctable Bad DLLP Error.", + + "PCIe Correctable Bad DLLP. Bus=%1 Device=%2 Function=%3.", + "Warning", + 3, + + { + "number", + "number", + "number", + }, + "None.", + }}, + MessageEntry{"PCIeCorrectableBadTLP", + { + "Indicates a PCIe Correctable Bad TLP Error.", + + "PCIe Correctable Bad TLP. Bus=%1 Device=%2 Function=%3.", + "Warning", + 3, + + { + "number", + "number", + "number", + }, + "None.", + }}, + MessageEntry{"PCIeCorrectableHeaderLogOverflow", + { + "Indicates a PCIe Correctable Header Log Overflow Error.", + "PCIe Correctable Header Log Overflow. Bus=%1 Device=%2 " + "Function=%3.", + "Warning", + 3, + + { + "number", + "number", + "number", + }, + "None.", + }}, + MessageEntry{"PCIeCorrectableInternal", + { + "Indicates a PCIe Correctable Internal Error.", + "PCIe Correctable Internal Error. Bus=%1 Device=%2 " + "Function=%3.", + "Warning", + 3, + + { + "number", + "number", + "number", + }, + "None.", + }}, + MessageEntry{"PCIeCorrectableLinkBWChanged", + { + "Indicates a PCIe Correctable Link BW Changed Error.", + "PCIe Correctable Link BW Changed. Bus=%1 " + "Device=%2 Function=%3.", + "Warning", + 3, + + { + "number", + "number", + "number", + }, + "None.", + }}, + MessageEntry{"PCIeCorrectableReceiverError", + { + "Indicates a PCIe Correctable Receiver Error.", + "PCIe Correctable Receiver Error. Bus=%1 Device=%2 " + "Function=%3.", + "Warning", + 3, + + { + "number", + "number", + "number", + }, + "None.", + }}, + MessageEntry{"PCIeCorrectableReplayNumRollover", + { + "Indicates a PCIe Correctable Replay Num Rollover.", + "PCIe Correctable Replay Num Rollover. Bus=%1 Device=%2 " + "Function=%3.", + "Warning", + 3, + + { + "number", + "number", + "number", + }, + "None.", + }}, + MessageEntry{"PCIeCorrectableReplayTimerTimeout", + { + "Indicates a PCIe Correctable Replay Timer Timeout.", + "PCIe Correctable Replay Timer Timeout. Bus=%1 " + "Device=%2 Function=%3.", + "Warning", + 3, + + { + "number", + "number", + "number", + }, + "None.", + }}, + MessageEntry{"PCIeCorrectableUnspecifiedAERError", + { + "Indicates a PCIe Correctable Unspecified AER Error.", + "PCIe Correctable Unspecified AER Error. " + "Bus=%1 Device=%2 Function=%3.", + "Warning", + 3, + + { + "number", + "number", + "number", + }, + "None.", + }}, + MessageEntry{"PCIeFatalACSViolation", + { + "Indicates a PCIe ACS Violation Error.", + + "PCIe Fatal ACS Violation. Bus=%1 Device=%2 Function=%3.", + "Critical", + 3, + + { + "number", + "number", + "number", + }, + "None.", + }}, + MessageEntry{"PCIeFatalAtomicEgressBlocked", + { + "Indicates a PCIe Atomic Egress Blocked Error.", + "PCIe Fatal Atomic Egress Blocked. Bus=%1 Device=%2 " + "Function=%3.", + "Critical", + 3, + + { + "number", + "number", + "number", + }, + "None.", + }}, + MessageEntry{ + "PCIeFatalCompleterAbort", + { + "Indicates a PCIe Completer Abort Error.", + + "PCIe Fatal Completer Abort. Bus=%1 Device=%2 Function=%3.", + "Critical", + 3, + + { + "number", + "number", + "number", + }, + "None.", + }}, + MessageEntry{ + "PCIeFatalCompletionTimeout", + { + "Indicates a PCIe Completion Timeout Error.", + + "PCIe Fatal Completion Timeout. Bus=%1 Device=%2 Function=%3.", + "Critical", + 3, + + { + "number", + "number", + "number", + }, + "None.", + }}, + MessageEntry{ + "PCIeFatalDataLinkLayerProtocol", + { + "Indicates a PCIe Data Link Layer Protocol Error.", + + "PCIe Fatal Data Link Layer Protocol Error. Bus=%1 Device=%2 " + "Function=%3.", + "Critical", + 3, + + { + "number", + "number", + "number", + }, + "None.", + }}, + MessageEntry{"PCIeFatalECRCError", + { + "Indicates a PCIe ECRC Error.", + "PCIe Fatal ECRC Error. Bus=%1 Device=%2 Function=%3.", + "Critical", + 3, + + { + "number", + "number", + "number", + }, + "None.", + }}, + MessageEntry{"PCIeFatalFlowControlProtocol", + { + "Indicates a PCIe Flow Control Protocol Error.", + + "PCIe Fatal Flow Control Protocol Error. Bus=%1 Device=%2 " + "Function=%3.", + "Critical", + 3, + + { + "number", + "number", + "number", + }, + "None.", + }}, + MessageEntry{ + "PCIeFatalMalformedTLP", + { + "Indicates a PCIe Malformed TLP Error.", + + "PCIe Fatal Malformed TLP Error. Bus=%1 Device=%2 Function=%3.", + "Critical", + 3, + + { + "number", + "number", + "number", + }, + "None.", + }}, + MessageEntry{"PCIeFatalMCBlockedTLP", + { + "Indicates a PCIe MC Blocked TLP Error.", + "PCIe Fatal MC Blocked TLP Error. Bus=%1 " + "Device=%2 Function=%3.", + "Critical", + 3, + + { + "number", + "number", + "number", + }, + "None.", + }}, + MessageEntry{ + "PCIeFatalPoisonedTLP", + { + "Indicates a PCIe Poisoned TLP Error.", + + "PCIe Fatal Poisoned TLP Error. Bus=%1 Device=%2 Function=%3.", + "Critical", + 3, + + { + "number", + "number", + "number", + }, + "None.", + }}, + MessageEntry{"PCIeFatalReceiverBufferOverflow", + { + "Indicates a PCIe Receiver Buffer Overflow Error.", + "PCIe Fatal Receiver Buffer Overflow. Bus=%1 Device=%2 " + "Function=%3.", + "Critical", + 3, + + { + "number", + "number", + "number", + }, + "None.", + }}, + MessageEntry{ + "PCIeFatalReceivedErrNonFatalMessage", + { + "Indicates a PCIe Received ERR_NONFATAL Message Error.", + + "PCIe Fatal Received ERR_NONFATAL Message. Bus=%1 Device=%2 " + "Function=%3.", + "Critical", + 3, + + { + "number", + "number", + "number", + }, + "None.", + }}, + MessageEntry{"PCIeFatalReceivedFatalMessageFromDownstream", + { + "Indicates a PCIe Received Fatal Message " + "From Downstream Error.", + + "PCIe Fatal Received Fatal Message From Downstream. " + "Bus=%1 Device=%2 Function=%3.", + "Critical", + 3, + + { + "number", + "number", + "number", + }, + "None.", + }}, + MessageEntry{"PCIeFatalSurpriseLinkDown", + { + "Indicates a PCIe Surprise Link Down Error.", + "PCIe Fatal Surprise Link Down Error. Bus=%1 Device=%2 " + "Function=%3.", + "Critical", + 3, + + { + "number", + "number", + "number", + }, + "None.", + }}, + MessageEntry{"PCIeFatalTLPPrefixBlocked", + { + "Indicates a PCIe TLP Prefix Blocked Error.", + "PCIe Fatal TLP Prefix Blocked Error. Bus=%1 Device=%2 " + "Function=%3.", + "Critical", + 3, + + { + "number", + "number", + "number", + }, + "None.", + }}, + MessageEntry{ + "PCIeFatalUncorrectableInternal", + { + "Indicates a PCIe Uncorrectable Internal Error.", + + "PCIe Fatal Uncorrectable Internal Error. Bus=%1 Device=%2 " + "Function=%3.", + "Critical", + 3, + + { + "number", + "number", + "number", + }, + "None.", + }}, + MessageEntry{"PCIeFatalUnexpectedCompletion", + { + "Indicates a PCIe Unexpected Completion Error.", + "PCIe Fatal Unexpected Completion. Bus=%1 Device=%2 " + "Function=%3.", + "Critical", + 3, + + { + "number", + "number", + "number", + }, + "None.", + }}, + MessageEntry{"PCIeFatalUnspecifiedNonAERFatalError", + { + "Indicates a PCIe Unspecified Non-AER Fatal Error.", + "PCIe Fatal Unspecified Non-AER Fatal Error. Bus=%1 " + "Device=%2 Function=%3.", + "Critical", + 3, + + { + "number", + "number", + "number", + }, + "None.", + }}, + MessageEntry{ + "PCIeFatalUnsupportedRequest", + { + "Indicates a PCIe Unsupported Request Error.", + + "PCIe Fatal Unsupported Request. Bus=%1 Device=%2 Function=%3.", + "Critical", + 3, + + { + "number", + "number", + "number", + }, + "None.", + }}, + MessageEntry{"PowerButtonPressed", + { + "Indicates that the power button was pressed.", + "Power Button Pressed.", + "OK", + 0, + {}, + "None.", + }}, + MessageEntry{"PowerRestorePolicyApplied", + { + "Indicates that power was restored and the " + "BMC has applied the restore policy.", + "Power restore policy applied.", + "OK", + 0, + {}, + "None.", + }}, + MessageEntry{"PowerSupplyConfigurationError", + { + "Indicates an error in power supply configuration.", + "Power supply %1 configuration error.", + "Warning", + 1, + {"string"}, + "None.", + }}, + MessageEntry{ + "PowerSupplyConfigurationErrorRecovered", + { + "Indicates that power supply configuration error recovered " + "from a failure.", + "Power supply %1 configuration error recovered.", + "OK", + 1, + {"string"}, + "None.", + }}, + MessageEntry{ + "PowerSupplyFanFailed", + { + "Indicates that the specified power supply fan has failed.", + "Power supply %1 fan %2 failed.", + "Warning", + 2, + {"string", "string"}, + "None.", + }}, + MessageEntry{ + "PowerSupplyFanRecovered", + { + "Indicates that the power supply fan recovered from a failure.", + "Power supply %1 fan %2 recovered.", + "OK", + 2, + {"string", "string"}, + "None.", + }}, + MessageEntry{"PowerSupplyFailed", + { + "Indicates that a power supply has failed.", + "Power supply %1 failed.", + "Warning", + 1, + {"string"}, + "None.", + }}, + MessageEntry{"PowerSupplyFailurePredicted", + { + "Indicates that a power supply is predicted to fail.", + "Power supply %1 failure predicted.", + "Warning", + 1, + {"string"}, + "None.", + }}, + MessageEntry{"PowerSupplyInserted", + { + "Indicates that a power supply has been inserted.", + "Power supply %1 inserted.", + "OK", + 1, + {"string"}, + "None.", + }}, + MessageEntry{"PowerSupplyPowerGoodFailed", + { + "Indicates that the power supply power good signal " + "failed to assert within the specified time.", + "Power supply power good failed to assert within %1 " + "milliseconds.", + "Critical", + 1, + {"number"}, + "None.", + }}, + MessageEntry{"PowerSupplyPowerLost", + { + "Indicates that a power supply has lost input power.", + "Power supply %1 power lost.", + "Warning", + 1, + {"string"}, + "None.", + }}, + MessageEntry{"PowerSupplyPowerRestored", + { + "Indicates that a power supply input power was restored.", + "Power supply %1 power restored.", + "OK", + 1, + {"string"}, + "None.", + }}, + MessageEntry{"PowerSupplyPredictedFailureRecovered", + { + "Indicates that a power supply recovered " + "from a predicted failure.", + "Power supply %1 predicted failure recovered.", + "OK", + 1, + {"string"}, + "None.", + }}, + MessageEntry{"PowerSupplyRecovered", + { + "Indicates that a power supply recovered from a failure.", + "Power supply %1 recovered.", + "OK", + 1, + {"string"}, + "None.", + }}, + MessageEntry{"PowerSupplyRemoved", + { + "Indicates that a power supply has been removed.", + "Power supply %1 removed.", + "Warning", + 1, + {"string"}, + "None.", + }}, + MessageEntry{"PowerUnitDegradedFromNonRedundant", + { + "Indicates that power unit is come back to redundant from" + "nonredundant but is still not in full redundancy mode.", + "Power Unit degraded from nonredundant.", + "Warning", + 0, + {}, + "None.", + }}, + MessageEntry{"PowerUnitDegradedFromRedundant", + { + "Indicates that power unit is degarded from full " + "redundancy mode.", + "Power Unit degraded from redundant.", + "Warning", + 0, + {}, + "None.", + }}, + MessageEntry{"PowerUnitRedundancyDegraded", + { + "Indicates that power unit redundancy has been degraded.", + "Power Unit Redundancy degraded.", + "Warning", + 0, + {}, + "None.", + }}, + MessageEntry{ + "PowerUnitNonRedundantFromInsufficient", + { + "Indicates that power unit is not in redundancy mode and get" + "sufficient power to support redundancy from insufficient" + "power.", + + "Power Unit NonRedundant from insufficient to sufficient.", + "Warning", + 0, + {}, + "None.", + }}, + MessageEntry{"PowerUnitNonRedundantInsufficient", + { + "Indicates that power unit do not have sufficient " + "power to support redundancy.", + "Power Unit NonRedundant and has insufficient resource.", + "Critical", + 0, + {}, + "None.", + }}, + MessageEntry{"PowerUnitRedundancyLost", + { + "Indicates that power unit redundancy has been lost.", + "Power Unit Redundancy lost.", + "Warning", + 0, + {}, + "None.", + }}, + MessageEntry{ + "PowerUnitRedundancyRegained", + { + "Indicates that power unit full redundancy has been regained.", + "Power Unit Redundancy regained.", + "OK", + 0, + {}, + "None.", + }}, + MessageEntry{ + "PowerUnitNonRedundantSufficient", + { + "Indicates that power unit is not in redundancy mode but still" + "has sufficient power to support redundancy.", + "Power Unit Nonredundant but has sufficient resource.", + "Warning", + 0, + {}, + "None.", + }}, + MessageEntry{"ResetButtonPressed", + { + "Indicates that the reset button was pressed.", + "Reset Button Pressed.", + "OK", + 0, + {}, + "None.", + }}, + MessageEntry{"SecurityBoot2ndFlashEnabled", + { + "Indicates that the BMC 2nd boot flash is enabled.", + "BMC 2nd boot flash is enabled.", + "Critical", + 0, + {}, + "None.", + }}, + MessageEntry{"SecurityP2aBridgeEnabled", + { + "Indicates that the P2A bridge is enabled.", + "P2A(PCIe to AHB) bridge is enabled.", + "Critical", + 0, + {}, + "None.", + }}, + MessageEntry{"SecurityUartPortDebugEnabled", + { + "Indicates that the uart port debug is enabled.", + "Uart port debug is enabled.", + "Critical", + 0, + {}, + "None.", + }}, + MessageEntry{ + "SecurityUserStrongHashAlgoRestored", + { + "Indicates that password computing hash algorithm changed.", + "Password computing hash algorithm is changed to sha256/sha512.", + "OK", + 0, + {}, + "None.", + }}, + + MessageEntry{"SecurityUserNonRootUidZeroAssigned", + { + "Indicates that non root user assigned with user ID zero.", + "User ID Zero is assigned with non-root user.", + "Critical", + 0, + {}, + "None.", + }}, + MessageEntry{"SecurityUserNonRootUidZeroRemoved", + { + "Indicates that non root user ID is removed", + "Non root user assigned with user ID zero is removed.", + "OK", + 0, + {}, + "None.", + }}, + + MessageEntry{"SecurityUserRootEnabled", + { + "Indicates that system root user is enabled.", + "User root is enabled.", + "Critical", + 0, + {}, + "None.", + }}, + MessageEntry{"SecurityUserRootDisabled", + { + "Indicates that system root user is disabled.", + "User root is disabled.", + "OK", + 0, + {}, + "None.", + }}, + + MessageEntry{"SecurityUserUnsupportedShellEnabled", + { + "Indicates that unsupported shell is enabled.", + "Unsupported shell is enabled.", + "Critical", + 0, + {}, + "None.", + }}, + MessageEntry{"SecurityUserUnsupportedShellRemoved", + { + "Indicates that unsupported shell is removed.", + "Unsupported shell is removed.", + "OK", + 0, + {}, + "None.", + }}, + + MessageEntry{ + "SecurityUserWeakHashAlgoEnabled", + { + "Indicates that weak password computing hash algorithm is enabled.", + "Weak password computing hash algorithm is enabled.", + "Critical", + 0, + {}, + "None.", + }}, + + MessageEntry{"SELEntryAdded", + { + "Indicates a SEL entry was added using the " + "Add SEL Entry or Platform Event command.", + "SEL Entry Added: %1", + "OK", + 1, + + { + "string", + }, + "None.", + }}, + MessageEntry{"SensorThresholdCriticalHighGoingHigh", + { + "Indicates that a threshold sensor has crossed a " + "critical high threshold going high.", + "%1 sensor crossed a critical high threshold going " + "high. Reading=%2 Threshold=%3.", + "Critical", + 3, + {"string", "number", "number"}, + "Check the sensor or subsystem for errors.", + }}, + MessageEntry{"SensorThresholdCriticalHighGoingLow", + { + "Indicates that a threshold sensor has crossed a " + "critical high threshold going low.", + "%1 sensor crossed a critical high threshold going low. " + "Reading=%2 Threshold=%3.", + "OK", + 3, + {"string", "number", "number"}, + "None.", + }}, + MessageEntry{"SensorThresholdCriticalLowGoingHigh", + { + "Indicates that a threshold sensor has crossed a " + "critical low threshold going high.", + "%1 sensor crossed a critical low threshold going high. " + "Reading=%2 Threshold=%3.", + "OK", + 3, + {"string", "number", "number"}, + "None.", + }}, + MessageEntry{"SensorThresholdCriticalLowGoingLow", + { + "Indicates that a threshold sensor has crossed a " + "critical low threshold going low.", + "%1 sensor crossed a critical low threshold going low. " + "Reading=%2 Threshold=%3.", + "Critical", + 3, + {"string", "number", "number"}, + "Check the sensor or subsystem for errors.", + }}, + MessageEntry{"SensorThresholdWarningHighGoingHigh", + { + "Indicates that a threshold sensor has crossed a " + "warning high threshold going high.", + "%1 sensor crossed a warning high threshold going high. " + "Reading=%2 Threshold=%3.", + "Warning", + 3, + {"string", "number", "number"}, + "Check the sensor or subsystem for errors.", + }}, + MessageEntry{"SensorThresholdWarningHighGoingLow", + { + "Indicates that a threshold sensor has crossed a " + "warning high threshold going low.", + "%1 sensor crossed a warning high threshold going low. " + "Reading=%2 Threshold=%3.", + "OK", + 3, + {"string", "number", "number"}, + "None.", + }}, + MessageEntry{"SensorThresholdWarningLowGoingHigh", + { + "Indicates that a threshold sensor has crossed a " + "warning low threshold going high.", + "%1 sensor crossed a warning low threshold going high. " + "Reading=%2 Threshold=%3.", + "OK", + 3, + {"string", "number", "number"}, + "None.", + }}, + MessageEntry{"SensorThresholdWarningLowGoingLow", + { + "Indicates that a threshold sensor has crossed a " + "warning low threshold going low.", + "%1 sensor crossed a warning low threshold going low. " + "Reading=%2 Threshold=%3.", + "Warning", + 3, + {"string", "number", "number"}, + "Check the sensor or subsystem for errors.", + }}, + MessageEntry{"ServiceFailure", + { + "Indicates that a service has exited unsuccessfully.", + "Service %1 has exited unsuccessfully.", + "Warning", + 1, + {"string"}, + "None.", + }}, + MessageEntry{"SparingRedundancyDegraded", + { + "Indicates the sparing redundancy state is degraded.", + "Sparing redundancy state degraded. Socket=%1 " + "Channel=%2 DIMM=%3 Domain=%4 Rank=%5.", + "Warning", + 5, + + { + "number", + "string", + "number", + "string", + "number", + }, + "None.", + }}, + MessageEntry{ + "SparingRedundancyFull", + { + "Indicates the sparing redundancy state is fully redundant.", + "Sparing redundancy state fully redundant. Socket=%1 " + "Channel=%2 DIMM=%3 Domain=%4 Rank=%5.", + "OK", + 5, + + { + "number", + "string", + "number", + "string", + "number", + }, + "None.", + }}, + MessageEntry{"SsbThermalTrip", + { + "Indicates that an SSB Thermal trip has been asserted.", + "SSB Thermal trip.", + "Critical", + 0, + {}, + "None.", + }}, + MessageEntry{"SystemInterfaceDisabledProvisioned", + { + "Indicates that the system interface is in the disabled " + "provisioned state. All commands are blocked to execute " + "through the system interface.", + "The system interface is in the disabled provisioned " + "state.", + "OK", + 0, + {}, + "None.", + }}, + MessageEntry{"SystemInterfaceUnprovisioned", + { + "Indicates that the system interface is in the " + "unprovisioned state. All commands are permitted to " + "execute through the system interface.", + "The system interface is in the unprovisioned state.", + "Critical", + 0, + {}, + "None.", + }}, + MessageEntry{"SystemInterfaceWhitelistProvisioned", + { + "Indicates that the system interface is in the whitelist " + "provisioned state. Only whitelisted commands " + "are permitted to execute through the system interface.", + "The system interface is in the whitelist provisioned " + "state.", + "Warning", + 0, + {}, + "None.", + }}, + MessageEntry{"SystemPowerGoodFailed", + { + "Indicates that the system power good signal failed " + "to assert within the specified time (VR failure).", + "System power good failed to assert within %1 " + "milliseconds (VR failure).", + "Critical", + 1, + {"number"}, + "None.", + }}, + MessageEntry{"SystemPowerLost", + { + "Indicates that power was lost while the " + "system was powered on.", + "System Power Lost.", + "Critical", + 0, + {}, + "None.", + }}, + MessageEntry{"SystemPowerOffFailed", + { + "Indicates that the system failed to power off.", + "System Power-Off Failed.", + "Critical", + 0, + {}, + "None.", + }}, + MessageEntry{"SystemPowerOnFailed", + { + "Indicates that the system failed to power on.", + "System Power-On Failed.", + "Critical", + 0, + {}, + "None.", + }}, + MessageEntry{ + "VoltageRegulatorOverheated", + { + "Indicates that the specified voltage regulator overheated.", + "%1 Voltage Regulator Overheated.", + "Critical", + 1, + {"string"}, + "None.", + }}, +}; +} // namespace redfish::message_registries::openbmc diff --git a/Contrib-Inspur/bmcweb/redfish-core/include/utils/fw_utils.hpp b/Contrib-Inspur/bmcweb/redfish-core/include/utils/fw_utils.hpp new file mode 100644 index 00000000..2f143583 --- /dev/null +++ b/Contrib-Inspur/bmcweb/redfish-core/include/utils/fw_utils.hpp @@ -0,0 +1,306 @@ +#pragma once +#include +#include + +namespace redfish +{ +namespace fw_util +{ +/* @brief String that indicates a bios firmware instance */ +constexpr const char *biosPurpose = + "xyz.openbmc_project.Software.Version.VersionPurpose.Host"; + +/* @brief String that indicates a BMC firmware instance */ +constexpr const char *bmcPurpose = + "xyz.openbmc_project.Software.Version.VersionPurpose.BMC"; + +/** + * @brief Put fw version of input type into async response json structure + * + * @param[i,o] aResp Async response object + * @param[i] fwVersionPurpose Indicates what target to look for + * @param[i] jsonIdxStr Index in aResp->res.jsonValue to write fw ver + * + * @return void + */ +void getActiveFwVersion(std::shared_ptr aResp, + const std::string &fwVersionPurpose, + const std::string &jsonIdxStr) +{ + // Get active FW images + crow::connections::systemBus->async_method_call( + [aResp, fwVersionPurpose, + jsonIdxStr](const boost::system::error_code ec, + const std::variant> &resp) { + if (ec) + { + BMCWEB_LOG_ERROR << "error_code = " << ec; + BMCWEB_LOG_ERROR << "error msg = " << ec.message(); + messages::internalError(aResp->res); + return; + } + const std::vector *functionalFw = + std::get_if>(&resp); + if ((functionalFw == nullptr) || (functionalFw->size() == 0)) + { + BMCWEB_LOG_ERROR << "Zero functional software in system"; + messages::internalError(aResp->res); + return; + } + // example functionalFw: + // v as 2 "/xyz/openbmc_project/software/ace821ef" + // "/xyz/openbmc_project/software/230fb078" + for (auto &fw : *functionalFw) + { + // if can't parse fw id then return + std::string::size_type idPos = fw.rfind("/"); + if (idPos == std::string::npos) + { + messages::internalError(aResp->res); + BMCWEB_LOG_DEBUG << "Can't parse firmware ID!!"; + return; + } + idPos++; + if (idPos >= fw.size()) + { + messages::internalError(aResp->res); + BMCWEB_LOG_DEBUG << "Invalid firmware ID"; + return; + } + std::string swId = fw.substr(idPos); + + // Now find service that hosts it + crow::connections::systemBus->async_method_call( + [aResp, fw, swId, fwVersionPurpose, jsonIdxStr]( + const boost::system::error_code ec, + const std::vector>> &objInfo) { + if (ec) + { + BMCWEB_LOG_DEBUG << "error_code = " << ec; + BMCWEB_LOG_DEBUG << "error msg = " << ec.message(); + messages::internalError(aResp->res); + return; + } + // Example objInfo + // a{sas} 1 "org.open_power.Software.Host.Updater" 10 + // "org.freedesktop.DBus.Introspectable" + // "org.freedesktop.DBus.Peer" + // "org.freedesktop.DBus.Properties" + // "org.openbmc.Associations" + // "xyz.openbmc_project.Common.FilePath" + // "xyz.openbmc_project.Object.Delete" + // "xyz.openbmc_project.Software.Activation" + // "xyz.openbmc_project.Software.ExtendedVersion" + // "xyz.openbmc_project.Software.RedundancyPriority" + // "xyz.openbmc_project.Software.Version" + + // Ensure we only got one service back + if (objInfo.size() != 1) + { + BMCWEB_LOG_ERROR << "Invalid Object Size " + << objInfo.size(); + messages::internalError(aResp->res); + return; + } + + // Now grab its version info + crow::connections::systemBus->async_method_call( + [aResp, swId, fwVersionPurpose, jsonIdxStr]( + const boost::system::error_code ec, + const boost::container::flat_map< + std::string, VariantType> &propertiesList) { + if (ec) + { + BMCWEB_LOG_ERROR << "error_code = " << ec; + BMCWEB_LOG_ERROR << "error msg = " + << ec.message(); + messages::internalError(aResp->res); + return; + } + // example propertiesList + // a{sv} 2 "Version" s + // "IBM-witherspoon-OP9-v2.0.10-2.22" "Purpose" + // s + // "xyz.openbmc_project.Software.Version.VersionPurpose.Host" + + boost::container::flat_map< + std::string, VariantType>::const_iterator + it = propertiesList.find("Purpose"); + if (it == propertiesList.end()) + { + BMCWEB_LOG_DEBUG + << "Can't find property \"Purpose\"!"; + messages::internalError(aResp->res); + return; + } + const std::string *swInvPurpose = + std::get_if(&it->second); + if (swInvPurpose == nullptr) + { + BMCWEB_LOG_DEBUG << "wrong types for " + "property \"Purpose\"!"; + messages::internalError(aResp->res); + return; + } + + if (*swInvPurpose != fwVersionPurpose) + { + // Not purpose we're looking for + return; + } + it = propertiesList.find("Version"); + if (it == propertiesList.end()) + { + BMCWEB_LOG_DEBUG + << "Can't find property \"Version\"!"; + messages::internalError(aResp->res); + return; + } + const std::string *version = + std::get_if(&it->second); + if (version == nullptr) + { + BMCWEB_LOG_DEBUG + << "Error getting fw version"; + messages::internalError(aResp->res); + return; + } + aResp->res.jsonValue[jsonIdxStr] = *version; + }, + objInfo[0].first, fw, + "org.freedesktop.DBus.Properties", "GetAll", + "xyz.openbmc_project.Software.Version"); + }, + "xyz.openbmc_project.ObjectMapper", + "/xyz/openbmc_project/object_mapper", + "xyz.openbmc_project.ObjectMapper", "GetObject", fw, + std::array{ + "xyz.openbmc_project.Software.Activation"}); + } + }, + "xyz.openbmc_project.ObjectMapper", + "/xyz/openbmc_project/software/functional", + "org.freedesktop.DBus.Properties", "Get", + "xyz.openbmc_project.Association", "endpoints"); + + return; +} + +/** + * @brief Translate input fwState to Redfish state + * + * This function will return the corresponding Redfish state + * + * @param[i] fwState The OpenBMC firmware state + * + * @return The corresponding Redfish state + */ +std::string getRedfishFWState(const std::string &fwState) +{ + if (fwState == "xyz.openbmc_project.Software.Activation.Activations.Active") + { + return "Enabled"; + } + else if (fwState == + "xyz.openbmc_project.Software.Activation.Activations.Activating") + { + return "Updating"; + } + else if (fwState == + "xyz.openbmc_project.Software.Activation.Activations.StandbySpare") + { + return "StandbySpare"; + } + else + { + BMCWEB_LOG_DEBUG << "Default fw state " << fwState << " to Disabled"; + return "Disabled"; + } +} + +/** + * @brief Translate input fwState to Redfish health state + * + * This function will return the corresponding Redfish health state + * + * @param[i] fwState The OpenBMC firmware state + * + * @return The corresponding Redfish health state + */ +std::string getRedfishFWHealth(const std::string &fwState) +{ + if ((fwState == + "xyz.openbmc_project.Software.Activation.Activations.Active") || + (fwState == + "xyz.openbmc_project.Software.Activation.Activations.Activating") || + (fwState == + "xyz.openbmc_project.Software.Activation.Activations.Ready")) + { + return "OK"; + } + else + { + BMCWEB_LOG_DEBUG << "FW state " << fwState << " to Warning"; + return "Warning"; + } +} + +/** + * @brief Put status of input swId into json response + * + * This function will put the appropriate Redfish state of the input + * firmware id to ["Status"]["State"] within the json response + * + * @param[i,o] aResp Async response object + * @param[i] swId The software ID to get status for + * @param[i] dbusSvc The dbus service implementing the software object + * + * @return void + */ +void getFwStatus(std::shared_ptr asyncResp, + const std::shared_ptr swId, + const std::string &dbusSvc) +{ + BMCWEB_LOG_DEBUG << "getFwStatus: swId " << *swId << " svc " << dbusSvc; + + crow::connections::systemBus->async_method_call( + [asyncResp, + swId](const boost::system::error_code error_code, + const boost::container::flat_map + &propertiesList) { + if (error_code) + { + // not all fwtypes are updateable, this is ok + asyncResp->res.jsonValue["Status"]["State"] = "Enabled"; + return; + } + boost::container::flat_map::const_iterator + it = propertiesList.find("Activation"); + if (it == propertiesList.end()) + { + BMCWEB_LOG_DEBUG << "Can't find property \"Activation\"!"; + messages::propertyMissing(asyncResp->res, "Activation"); + return; + } + const std::string *swInvActivation = + std::get_if(&it->second); + if (swInvActivation == nullptr) + { + BMCWEB_LOG_DEBUG << "wrong types for property\"Activation\"!"; + messages::propertyValueTypeError(asyncResp->res, "", + "Activation"); + return; + } + BMCWEB_LOG_DEBUG << "getFwStatus: Activation " << *swInvActivation; + asyncResp->res.jsonValue["Status"]["State"] = + getRedfishFWState(*swInvActivation); + asyncResp->res.jsonValue["Status"]["Health"] = + getRedfishFWHealth(*swInvActivation); + }, + dbusSvc, "/xyz/openbmc_project/software/" + *swId, + "org.freedesktop.DBus.Properties", "GetAll", + "xyz.openbmc_project.Software.Activation"); +} +} // namespace fw_util +} // namespace redfish diff --git a/Contrib-Inspur/bmcweb/redfish-core/include/utils/json_utils.hpp b/Contrib-Inspur/bmcweb/redfish-core/include/utils/json_utils.hpp index 4c35b0c0..86bd97c5 100644 --- a/Contrib-Inspur/bmcweb/redfish-core/include/utils/json_utils.hpp +++ b/Contrib-Inspur/bmcweb/redfish-core/include/utils/json_utils.hpp @@ -15,8 +15,8 @@ */ #pragma once -#include -#include +#include +#include #include #include @@ -79,25 +79,17 @@ template constexpr bool is_std_array_v = is_std_array::value; template -bool checkRange(const FromType* from, const std::string& key, +bool checkRange(const FromType& from, const std::string& key, nlohmann::json& jsonValue, crow::Response& res) { - if (from == nullptr) - { - BMCWEB_LOG_DEBUG << "Value for key " << key - << " was incorrect type: " << __PRETTY_FUNCTION__; - messages::propertyValueTypeError(res, jsonValue.dump(), key); - return false; - } - - if (*from > std::numeric_limits::max()) + if (from > std::numeric_limits::max()) { BMCWEB_LOG_DEBUG << "Value for key " << key << " was greater than max: " << __PRETTY_FUNCTION__; messages::propertyValueNotInList(res, jsonValue.dump(), key); return false; } - if (*from < std::numeric_limits::lowest()) + if (from < std::numeric_limits::lowest()) { BMCWEB_LOG_DEBUG << "Value for key " << key << " was less than min: " << __PRETTY_FUNCTION__; @@ -106,7 +98,7 @@ bool checkRange(const FromType* from, const std::string& key, } if constexpr (std::is_floating_point_v) { - if (std::isnan(*from)) + if (std::isnan(from)) { BMCWEB_LOG_DEBUG << "Value for key " << key << " was NAN"; messages::propertyValueNotInList(res, jsonValue.dump(), key); @@ -118,9 +110,11 @@ bool checkRange(const FromType* from, const std::string& key, } template -void unpackValue(nlohmann::json& jsonValue, const std::string& key, +bool unpackValue(nlohmann::json& jsonValue, const std::string& key, crow::Response& res, Type& value) { + bool ret = true; + if constexpr (std::is_floating_point_v) { double helper = 0; @@ -135,9 +129,14 @@ void unpackValue(nlohmann::json& jsonValue, const std::string& key, jsonPtr = &helper; } } - if (!checkRange(jsonPtr, key, jsonValue, res)) + if (jsonPtr == nullptr) { - return; + messages::propertyValueTypeError(res, jsonValue.dump(), key); + return false; + } + if (!checkRange(*jsonPtr, key, jsonValue, res)) + { + return false; } value = static_cast(*jsonPtr); } @@ -145,9 +144,14 @@ void unpackValue(nlohmann::json& jsonValue, const std::string& key, else if constexpr (std::is_signed_v) { int64_t* jsonPtr = jsonValue.get_ptr(); - if (!checkRange(jsonPtr, key, jsonValue, res)) + if (jsonPtr == nullptr) + { + messages::propertyValueTypeError(res, jsonValue.dump(), key); + return false; + } + if (!checkRange(*jsonPtr, key, jsonValue, res)) { - return; + return false; } value = static_cast(*jsonPtr); } @@ -156,9 +160,14 @@ void unpackValue(nlohmann::json& jsonValue, const std::string& key, !std::is_same_v)) { uint64_t* jsonPtr = jsonValue.get_ptr(); - if (!checkRange(jsonPtr, key, jsonValue, res)) + if (jsonPtr == nullptr) { - return; + messages::propertyValueTypeError(res, jsonValue.dump(), key); + return false; + } + if (!checkRange(*jsonPtr, key, jsonValue, res)) + { + return false; } value = static_cast(*jsonPtr); } @@ -166,16 +175,19 @@ void unpackValue(nlohmann::json& jsonValue, const std::string& key, else if constexpr (is_optional_v) { value.emplace(); - unpackValue(jsonValue, key, res, *value); + ret = unpackValue(jsonValue, key, res, + *value) && + ret; } else if constexpr (std::is_same_v) { // Must be a complex type. Simple types (int string etc) should be // unpacked directly - if (!jsonValue.is_object() && !jsonValue.is_array()) + if (!jsonValue.is_object() && !jsonValue.is_array() && + !jsonValue.is_null()) { messages::propertyValueTypeError(res, jsonValue.dump(), key); - return; + return false; } value = std::move(jsonValue); @@ -185,18 +197,19 @@ void unpackValue(nlohmann::json& jsonValue, const std::string& key, if (!jsonValue.is_array()) { messages::propertyValueTypeError(res, res.jsonValue.dump(), key); - return; + return false; } if (jsonValue.size() != value.size()) { messages::propertyValueTypeError(res, res.jsonValue.dump(), key); - return; + return false; } size_t index = 0; for (const auto& val : jsonValue.items()) { - unpackValue(val.value(), key, res, - value[index++]); + ret = unpackValue(val.value(), key, res, + value[index++]) && + ret; } } else if constexpr (is_vector_v) @@ -204,14 +217,15 @@ void unpackValue(nlohmann::json& jsonValue, const std::string& key, if (!jsonValue.is_array()) { messages::propertyValueTypeError(res, res.jsonValue.dump(), key); - return; + return false; } for (const auto& val : jsonValue.items()) { value.emplace_back(); - unpackValue(val.value(), key, res, - value.back()); + ret = unpackValue(val.value(), key, res, + value.back()) && + ret; } } else @@ -224,53 +238,61 @@ void unpackValue(nlohmann::json& jsonValue, const std::string& key, << "Value for key " << key << " was incorrect type: " << jsonValue.type_name(); messages::propertyValueTypeError(res, jsonValue.dump(), key); - return; + return false; } value = std::move(*jsonPtr); } + return ret; } template -void readJsonValues(const std::string& key, nlohmann::json& jsonValue, +bool readJsonValues(const std::string& key, nlohmann::json& jsonValue, crow::Response& res, std::bitset& handled) { BMCWEB_LOG_DEBUG << "Unable to find variable for key" << key; messages::propertyUnknown(res, key); + return false; } template -void readJsonValues(const std::string& key, nlohmann::json& jsonValue, +bool readJsonValues(const std::string& key, nlohmann::json& jsonValue, crow::Response& res, std::bitset& handled, const char* keyToCheck, ValueType& valueToFill, UnpackTypes&... in) { + bool ret = true; if (key != keyToCheck) { - readJsonValues(key, jsonValue, res, handled, in...); - return; + ret = readJsonValues(key, jsonValue, res, handled, + in...) && + ret; + return ret; } handled.set(Index); - unpackValue(jsonValue, key, res, valueToFill); + return unpackValue(jsonValue, key, res, valueToFill) && ret; } template -void handleMissing(std::bitset& handled, crow::Response& res) +bool handleMissing(std::bitset& handled, crow::Response& res) { + return true; } template -void handleMissing(std::bitset& handled, crow::Response& res, +bool handleMissing(std::bitset& handled, crow::Response& res, const char* key, ValueType& unused, UnpackTypes&... in) { + bool ret = true; if (!handled.test(Index) && !is_optional_v) { + ret = false; messages::propertyMissing(res, key); } - details::handleMissing(handled, res, in...); + return details::handleMissing(handled, res, in...) && ret; } } // namespace details @@ -278,6 +300,7 @@ template bool readJson(nlohmann::json& jsonRequest, crow::Response& res, const char* key, UnpackTypes&... in) { + bool result = true; if (!jsonRequest.is_object()) { BMCWEB_LOG_DEBUG << "Json value is not an object"; @@ -295,13 +318,15 @@ bool readJson(nlohmann::json& jsonRequest, crow::Response& res, const char* key, std::bitset<(sizeof...(in) + 1) / 2> handled(0); for (const auto& item : jsonRequest.items()) { - details::readJsonValues<(sizeof...(in) + 1) / 2, 0, UnpackTypes...>( - item.key(), item.value(), res, handled, key, in...); + result = + details::readJsonValues<(sizeof...(in) + 1) / 2, 0, UnpackTypes...>( + item.key(), item.value(), res, handled, key, in...) && + result; } - details::handleMissing(handled, res, key, in...); + BMCWEB_LOG_DEBUG << "JSON result is: " << result; - return res.result() == boost::beast::http::status::ok; + return details::handleMissing(handled, res, key, in...) && result; } template diff --git a/Contrib-Inspur/bmcweb/redfish-core/include/utils/systemd_utils.hpp b/Contrib-Inspur/bmcweb/redfish-core/include/utils/systemd_utils.hpp new file mode 100644 index 00000000..da1b4e25 --- /dev/null +++ b/Contrib-Inspur/bmcweb/redfish-core/include/utils/systemd_utils.hpp @@ -0,0 +1,54 @@ +/* +// Copyright (c) 2019 Intel Corporation +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +*/ +#pragma once + +#include + +namespace redfish +{ + +namespace systemd_utils +{ + +/** + * @brief Retrieve service root UUID + * + * @return Service root UUID + */ + +const std::string getUuid() +{ + std::string ret; + // This ID needs to match the one in ipmid + sd_id128_t appId{{0Xe0, 0Xe1, 0X73, 0X76, 0X64, 0X61, 0X47, 0Xda, 0Xa5, + 0X0c, 0Xd0, 0Xcc, 0X64, 0X12, 0X45, 0X78}}; + sd_id128_t machineId{}; + + if (sd_id128_get_machine_app_specific(appId, &machineId) == 0) + { + std::array str; + ret = sd_id128_to_string(machineId, str.data()); + ret.insert(8, 1, '-'); + ret.insert(13, 1, '-'); + ret.insert(18, 1, '-'); + ret.insert(23, 1, '-'); + } + + return ret; +} + +} // namespace systemd_utils +} // namespace redfish diff --git a/Contrib-Inspur/bmcweb/redfish-core/lib/account_service.hpp b/Contrib-Inspur/bmcweb/redfish-core/lib/account_service.hpp index d9388cff..017a83d8 100644 --- a/Contrib-Inspur/bmcweb/redfish-core/lib/account_service.hpp +++ b/Contrib-Inspur/bmcweb/redfish-core/lib/account_service.hpp @@ -16,6 +16,7 @@ #pragma once #include "node.hpp" +#include #include #include #include @@ -24,43 +25,83 @@ namespace redfish { -using ManagedObjectType = std::vector>>>>; +constexpr const char* ldapConfigObject = + "/xyz/openbmc_project/user/ldap/openldap"; +constexpr const char* ADConfigObject = + "/xyz/openbmc_project/user/ldap/active_directory"; -inline std::string getPrivilegeFromRoleId(boost::beast::string_view role) +constexpr const char* ldapRootObject = "/xyz/openbmc_project/user/ldap"; +constexpr const char* ldapDbusService = "xyz.openbmc_project.Ldap.Config"; +constexpr const char* ldapConfigInterface = + "xyz.openbmc_project.User.Ldap.Config"; +constexpr const char* ldapCreateInterface = + "xyz.openbmc_project.User.Ldap.Create"; +constexpr const char* ldapEnableInterface = "xyz.openbmc_project.Object.Enable"; +constexpr const char* ldapPrivMapperInterface = + "xyz.openbmc_project.User.PrivilegeMapper"; +constexpr const char* dbusObjManagerIntf = "org.freedesktop.DBus.ObjectManager"; +constexpr const char* propertyInterface = "org.freedesktop.DBus.Properties"; +constexpr const char* mapperBusName = "xyz.openbmc_project.ObjectMapper"; +constexpr const char* mapperObjectPath = "/xyz/openbmc_project/object_mapper"; +constexpr const char* mapperIntf = "xyz.openbmc_project.ObjectMapper"; + +struct LDAPRoleMapData +{ + std::string groupName; + std::string privilege; +}; + +struct LDAPConfigData +{ + std::string uri{}; + std::string bindDN{}; + std::string baseDN{}; + std::string searchScope{}; + std::string serverType{}; + bool serviceEnabled = false; + std::string userNameAttribute{}; + std::string groupAttribute{}; + std::vector> groupRoleList; +}; + +using DbusVariantType = sdbusplus::message::variant; + +using DbusInterfaceType = boost::container::flat_map< + std::string, boost::container::flat_map>; + +using ManagedObjectType = + std::vector>; + +using GetObjectType = + std::vector>>; + +inline std::string getRoleIdFromPrivilege(std::string_view role) { if (role == "priv-admin") { return "Administrator"; } - else if (role == "priv-callback") - { - return "Callback"; - } else if (role == "priv-user") { - return "User"; + return "ReadOnly"; } else if (role == "priv-operator") { return "Operator"; } + else if ((role == "") || (role == "priv-noaccess")) + { + return "NoAccess"; + } return ""; } -inline std::string getRoleIdFromPrivilege(boost::beast::string_view role) +inline std::string getPrivilegeFromRoleId(std::string_view role) { if (role == "Administrator") { return "priv-admin"; } - else if (role == "Callback") - { - return "priv-callback"; - } - else if (role == "User") + else if (role == "ReadOnly") { return "priv-user"; } @@ -68,44 +109,1064 @@ inline std::string getRoleIdFromPrivilege(boost::beast::string_view role) { return "priv-operator"; } - return ""; -} + else if (role == "NoAccess") + { + return "priv-noaccess"; + } + return ""; +} + +void userErrorMessageHandler(const sd_bus_error* e, + std::shared_ptr asyncResp, + const std::string& newUser, + const std::string& username) +{ + const char* errorMessage = e->name; + if (e == nullptr) + { + messages::internalError(asyncResp->res); + return; + } + + if (strcmp(errorMessage, + "xyz.openbmc_project.User.Common.Error.UserNameExists") == 0) + { + messages::resourceAlreadyExists(asyncResp->res, + "#ManagerAccount.v1_0_3.ManagerAccount", + "UserName", newUser); + } + else if (strcmp(errorMessage, "xyz.openbmc_project.User.Common.Error." + "UserNameDoesNotExist") == 0) + { + messages::resourceNotFound( + asyncResp->res, "#ManagerAccount.v1_0_3.ManagerAccount", username); + } + else if (strcmp(errorMessage, + "xyz.openbmc_project.Common.Error.InvalidArgument") == 0) + { + messages::propertyValueFormatError(asyncResp->res, newUser, "UserName"); + } + else if (strcmp(errorMessage, + "xyz.openbmc_project.User.Common.Error.NoResource") == 0) + { + messages::createLimitReachedForResource(asyncResp->res); + } + else if (strcmp(errorMessage, "xyz.openbmc_project.User.Common.Error." + "UserNameGroupFail") == 0) + { + messages::propertyValueFormatError(asyncResp->res, newUser, "UserName"); + } + else + { + messages::internalError(asyncResp->res); + } + + return; +} + +void parseLDAPConfigData(nlohmann::json& json_response, + const LDAPConfigData& confData, + const std::string& ldapType) +{ + std::string service = + (ldapType == "LDAP") ? "LDAPService" : "ActiveDirectoryService"; + nlohmann::json ldap = { + {"AccountProviderType", service}, + {"ServiceEnabled", confData.serviceEnabled}, + {"ServiceAddresses", nlohmann::json::array({confData.uri})}, + {"Authentication", + {{"AuthenticationType", "UsernameAndPassword"}, + {"Username", confData.bindDN}, + {"Password", nullptr}}}, + {"LDAPService", + {{"SearchSettings", + {{"BaseDistinguishedNames", + nlohmann::json::array({confData.baseDN})}, + {"UsernameAttribute", confData.userNameAttribute}, + {"GroupsAttribute", confData.groupAttribute}}}}}, + }; + + json_response[ldapType].update(std::move(ldap)); + + nlohmann::json& roleMapArray = json_response[ldapType]["RemoteRoleMapping"]; + roleMapArray = nlohmann::json::array(); + for (auto& obj : confData.groupRoleList) + { + BMCWEB_LOG_DEBUG << "Pushing the data groupName=" + << obj.second.groupName << "\n"; + roleMapArray.push_back( + {nlohmann::json::array({"RemoteGroup", obj.second.groupName}), + nlohmann::json::array( + {"LocalRole", getRoleIdFromPrivilege(obj.second.privilege)})}); + } +} + +/** + * @brief validates given JSON input and then calls appropriate method to + * create, to delete or to set Rolemapping object based on the given input. + * + */ +static void handleRoleMapPatch( + const std::shared_ptr& asyncResp, + const std::vector>& roleMapObjData, + const std::string& serverType, std::vector& input) +{ + for (size_t index = 0; index < input.size(); index++) + { + nlohmann::json& thisJson = input[index]; + + if (thisJson.is_null()) + { + // delete the existing object + if (index < roleMapObjData.size()) + { + crow::connections::systemBus->async_method_call( + [asyncResp, roleMapObjData, serverType, + index](const boost::system::error_code ec) { + if (ec) + { + BMCWEB_LOG_ERROR << "DBUS response error: " << ec; + messages::internalError(asyncResp->res); + return; + } + asyncResp->res + .jsonValue[serverType]["RemoteRoleMapping"][index] = + nullptr; + }, + ldapDbusService, roleMapObjData[index].first, + "xyz.openbmc_project.Object.Delete", "Delete"); + } + else + { + BMCWEB_LOG_ERROR << "Can't delete the object"; + messages::propertyValueTypeError( + asyncResp->res, thisJson.dump(), + "RemoteRoleMapping/" + std::to_string(index)); + return; + } + } + else if (thisJson.empty()) + { + // Don't do anything for the empty objects,parse next json + // eg {"RemoteRoleMapping",[{}]} + } + else + { + // update/create the object + std::optional remoteGroup; + std::optional localRole; + + if (!json_util::readJson(thisJson, asyncResp->res, "RemoteGroup", + remoteGroup, "LocalRole", localRole)) + { + continue; + } + + // Update existing RoleMapping Object + if (index < roleMapObjData.size()) + { + BMCWEB_LOG_DEBUG << "Update Role Map Object"; + // If "RemoteGroup" info is provided + if (remoteGroup) + { + crow::connections::systemBus->async_method_call( + [asyncResp, roleMapObjData, serverType, index, + remoteGroup](const boost::system::error_code ec) { + if (ec) + { + BMCWEB_LOG_ERROR << "DBUS response error: " + << ec; + messages::internalError(asyncResp->res); + return; + } + asyncResp->res + .jsonValue[serverType]["RemoteRoleMapping"] + [index]["RemoteGroup"] = *remoteGroup; + }, + ldapDbusService, roleMapObjData[index].first, + propertyInterface, "Set", + "xyz.openbmc_project.User.PrivilegeMapperEntry", + "GroupName", + std::variant(std::move(*remoteGroup))); + } + + // If "LocalRole" info is provided + if (localRole) + { + crow::connections::systemBus->async_method_call( + [asyncResp, roleMapObjData, serverType, index, + localRole](const boost::system::error_code ec) { + if (ec) + { + BMCWEB_LOG_ERROR << "DBUS response error: " + << ec; + messages::internalError(asyncResp->res); + return; + } + asyncResp->res + .jsonValue[serverType]["RemoteRoleMapping"] + [index]["LocalRole"] = *localRole; + }, + ldapDbusService, roleMapObjData[index].first, + propertyInterface, "Set", + "xyz.openbmc_project.User.PrivilegeMapperEntry", + "Privilege", + std::variant( + getPrivilegeFromRoleId(std::move(*localRole)))); + } + } + // Create a new RoleMapping Object. + else + { + BMCWEB_LOG_DEBUG + << "setRoleMappingProperties: Creating new Object"; + std::string pathString = + "RemoteRoleMapping/" + std::to_string(index); + + if (!localRole) + { + messages::propertyMissing(asyncResp->res, + pathString + "/LocalRole"); + continue; + } + if (!remoteGroup) + { + messages::propertyMissing(asyncResp->res, + pathString + "/RemoteGroup"); + continue; + } + + std::string dbusObjectPath; + if (serverType == "ActiveDirectory") + { + dbusObjectPath = ADConfigObject; + } + else if (serverType == "LDAP") + { + dbusObjectPath = ldapConfigObject; + } + + BMCWEB_LOG_DEBUG << "Remote Group=" << *remoteGroup + << ",LocalRole=" << *localRole; + + crow::connections::systemBus->async_method_call( + [asyncResp, serverType, localRole, + remoteGroup](const boost::system::error_code ec) { + if (ec) + { + BMCWEB_LOG_ERROR << "DBUS response error: " << ec; + messages::internalError(asyncResp->res); + return; + } + nlohmann::json& remoteRoleJson = + asyncResp->res + .jsonValue[serverType]["RemoteRoleMapping"]; + remoteRoleJson.push_back( + {{"LocalRole", *localRole}, + {"RemoteGroup", *remoteGroup}}); + }, + ldapDbusService, dbusObjectPath, ldapPrivMapperInterface, + "Create", std::move(*remoteGroup), + getPrivilegeFromRoleId(std::move(*localRole))); + } + } + } +} + +/** + * Function that retrieves all properties for LDAP config object + * into JSON + */ +template +inline void getLDAPConfigData(const std::string& ldapType, + CallbackFunc&& callback) +{ + + const std::array interfaces = {ldapEnableInterface, + ldapConfigInterface}; + + crow::connections::systemBus->async_method_call( + [callback, ldapType](const boost::system::error_code ec, + const GetObjectType& resp) { + LDAPConfigData confData{}; + if (ec || resp.empty()) + { + BMCWEB_LOG_ERROR << "DBUS response error during getting of " + "service name: " + << ec; + callback(false, confData, ldapType); + return; + } + std::string service = resp.begin()->first; + crow::connections::systemBus->async_method_call( + [callback, ldapType](const boost::system::error_code error_code, + const ManagedObjectType& ldapObjects) { + LDAPConfigData confData{}; + if (error_code) + { + callback(false, confData, ldapType); + BMCWEB_LOG_ERROR << "D-Bus responses error: " + << error_code; + return; + } + + std::string ldapDbusType; + std::string searchString; + + if (ldapType == "LDAP") + { + ldapDbusType = "xyz.openbmc_project.User.Ldap.Config." + "Type.OpenLdap"; + searchString = "openldap"; + } + else if (ldapType == "ActiveDirectory") + { + ldapDbusType = + "xyz.openbmc_project.User.Ldap.Config.Type." + "ActiveDirectory"; + searchString = "active_directory"; + } + else + { + BMCWEB_LOG_ERROR + << "Can't get the DbusType for the given type=" + << ldapType; + callback(false, confData, ldapType); + return; + } + + std::string ldapEnableInterfaceStr = ldapEnableInterface; + std::string ldapConfigInterfaceStr = ldapConfigInterface; + + for (const auto& object : ldapObjects) + { + // let's find the object whose ldap type is equal to the + // given type + if (object.first.str.find(searchString) == + std::string::npos) + { + continue; + } + + for (const auto& interface : object.second) + { + if (interface.first == ldapEnableInterfaceStr) + { + // rest of the properties are string. + for (const auto& property : interface.second) + { + if (property.first == "Enabled") + { + const bool* value = + std::get_if(&property.second); + if (value == nullptr) + { + continue; + } + confData.serviceEnabled = *value; + break; + } + } + } + else if (interface.first == ldapConfigInterfaceStr) + { + + for (const auto& property : interface.second) + { + const std::string* strValue = + std::get_if( + &property.second); + if (strValue == nullptr) + { + continue; + } + if (property.first == "LDAPServerURI") + { + confData.uri = *strValue; + } + else if (property.first == "LDAPBindDN") + { + confData.bindDN = *strValue; + } + else if (property.first == "LDAPBaseDN") + { + confData.baseDN = *strValue; + } + else if (property.first == + "LDAPSearchScope") + { + confData.searchScope = *strValue; + } + else if (property.first == + "GroupNameAttribute") + { + confData.groupAttribute = *strValue; + } + else if (property.first == + "UserNameAttribute") + { + confData.userNameAttribute = *strValue; + } + else if (property.first == "LDAPType") + { + confData.serverType = *strValue; + } + } + } + else if (interface.first == + "xyz.openbmc_project.User." + "PrivilegeMapperEntry") + { + LDAPRoleMapData roleMapData{}; + for (const auto& property : interface.second) + { + const std::string* strValue = + std::get_if( + &property.second); + + if (strValue == nullptr) + { + continue; + } + + if (property.first == "GroupName") + { + roleMapData.groupName = *strValue; + } + else if (property.first == "Privilege") + { + roleMapData.privilege = *strValue; + } + } + + confData.groupRoleList.emplace_back( + object.first.str, roleMapData); + } + } + } + callback(true, confData, ldapType); + }, + service, ldapRootObject, dbusObjManagerIntf, + "GetManagedObjects"); + }, + mapperBusName, mapperObjectPath, mapperIntf, "GetObject", + ldapConfigObject, interfaces); +} + +class AccountService : public Node +{ + public: + AccountService(CrowApp& app) : + Node(app, "/redfish/v1/AccountService/"), app(app) + { + entityPrivileges = { + {boost::beast::http::verb::get, + {{"ConfigureUsers"}, {"ConfigureManager"}}}, + {boost::beast::http::verb::head, {{"Login"}}}, + {boost::beast::http::verb::patch, {{"ConfigureUsers"}}}, + {boost::beast::http::verb::put, {{"ConfigureUsers"}}}, + {boost::beast::http::verb::delete_, {{"ConfigureUsers"}}}, + {boost::beast::http::verb::post, {{"ConfigureUsers"}}}}; + } + + private: + /** + * @brief parses the authentication section under the LDAP + * @param input JSON data + * @param asyncResp pointer to the JSON response + * @param userName userName to be filled from the given JSON. + * @param password password to be filled from the given JSON. + */ + void + parseLDAPAuthenticationJson(nlohmann::json input, + const std::shared_ptr& asyncResp, + std::optional& username, + std::optional& password) + { + std::optional authType; + + if (!json_util::readJson(input, asyncResp->res, "AuthenticationType", + authType, "Username", username, "Password", + password)) + { + return; + } + if (!authType) + { + return; + } + if (*authType != "UsernameAndPassword") + { + messages::propertyValueNotInList(asyncResp->res, *authType, + "AuthenticationType"); + return; + } + } + /** + * @brief parses the LDAPService section under the LDAP + * @param input JSON data + * @param asyncResp pointer to the JSON response + * @param baseDNList baseDN to be filled from the given JSON. + * @param userNameAttribute userName to be filled from the given JSON. + * @param groupaAttribute password to be filled from the given JSON. + */ + + void parseLDAPServiceJson( + nlohmann::json input, const std::shared_ptr& asyncResp, + std::optional>& baseDNList, + std::optional& userNameAttribute, + std::optional& groupsAttribute) + { + std::optional searchSettings; + + if (!json_util::readJson(input, asyncResp->res, "SearchSettings", + searchSettings)) + { + return; + } + if (!searchSettings) + { + return; + } + if (!json_util::readJson(*searchSettings, asyncResp->res, + "BaseDistinguishedNames", baseDNList, + "UsernameAttribute", userNameAttribute, + "GroupsAttribute", groupsAttribute)) + { + return; + } + } + /** + * @brief updates the LDAP server address and updates the + json response with the new value. + * @param serviceAddressList address to be updated. + * @param asyncResp pointer to the JSON response + * @param ldapServerElementName Type of LDAP + server(openLDAP/ActiveDirectory) + */ + + void handleServiceAddressPatch( + const std::vector& serviceAddressList, + const std::shared_ptr& asyncResp, + const std::string& ldapServerElementName, + const std::string& ldapConfigObject) + { + crow::connections::systemBus->async_method_call( + [asyncResp, ldapServerElementName, + serviceAddressList](const boost::system::error_code ec) { + if (ec) + { + BMCWEB_LOG_DEBUG + << "Error Occured in updating the service address"; + messages::internalError(asyncResp->res); + return; + } + std::vector modifiedserviceAddressList = { + serviceAddressList.front()}; + asyncResp->res + .jsonValue[ldapServerElementName]["ServiceAddresses"] = + modifiedserviceAddressList; + if ((serviceAddressList).size() > 1) + { + messages::propertyValueModified(asyncResp->res, + "ServiceAddresses", + serviceAddressList.front()); + } + BMCWEB_LOG_DEBUG << "Updated the service address"; + }, + ldapDbusService, ldapConfigObject, propertyInterface, "Set", + ldapConfigInterface, "LDAPServerURI", + std::variant(serviceAddressList.front())); + } + /** + * @brief updates the LDAP Bind DN and updates the + json response with the new value. + * @param username name of the user which needs to be updated. + * @param asyncResp pointer to the JSON response + * @param ldapServerElementName Type of LDAP + server(openLDAP/ActiveDirectory) + */ + + void handleUserNamePatch(const std::string& username, + const std::shared_ptr& asyncResp, + const std::string& ldapServerElementName, + const std::string& ldapConfigObject) + { + crow::connections::systemBus->async_method_call( + [asyncResp, username, + ldapServerElementName](const boost::system::error_code ec) { + if (ec) + { + BMCWEB_LOG_DEBUG + << "Error occured in updating the username"; + messages::internalError(asyncResp->res); + return; + } + asyncResp->res.jsonValue[ldapServerElementName] + ["Authentication"]["Username"] = + username; + BMCWEB_LOG_DEBUG << "Updated the username"; + }, + ldapDbusService, ldapConfigObject, propertyInterface, "Set", + ldapConfigInterface, "LDAPBindDN", + std::variant(username)); + } + + /** + * @brief updates the LDAP password + * @param password : ldap password which needs to be updated. + * @param asyncResp pointer to the JSON response + * @param ldapServerElementName Type of LDAP + * server(openLDAP/ActiveDirectory) + */ + + void handlePasswordPatch(const std::string& password, + const std::shared_ptr& asyncResp, + const std::string& ldapServerElementName, + const std::string& ldapConfigObject) + { + crow::connections::systemBus->async_method_call( + [asyncResp, password, + ldapServerElementName](const boost::system::error_code ec) { + if (ec) + { + BMCWEB_LOG_DEBUG + << "Error occured in updating the password"; + messages::internalError(asyncResp->res); + return; + } + asyncResp->res.jsonValue[ldapServerElementName] + ["Authentication"]["Password"] = ""; + BMCWEB_LOG_DEBUG << "Updated the password"; + }, + ldapDbusService, ldapConfigObject, propertyInterface, "Set", + ldapConfigInterface, "LDAPBindDNPassword", + std::variant(password)); + } + + /** + * @brief updates the LDAP BaseDN and updates the + json response with the new value. + * @param baseDNList baseDN list which needs to be updated. + * @param asyncResp pointer to the JSON response + * @param ldapServerElementName Type of LDAP + server(openLDAP/ActiveDirectory) + */ + + void handleBaseDNPatch(const std::vector& baseDNList, + const std::shared_ptr& asyncResp, + const std::string& ldapServerElementName, + const std::string& ldapConfigObject) + { + crow::connections::systemBus->async_method_call( + [asyncResp, baseDNList, + ldapServerElementName](const boost::system::error_code ec) { + if (ec) + { + BMCWEB_LOG_DEBUG << "Error Occured in Updating the base DN"; + messages::internalError(asyncResp->res); + return; + } + auto& serverTypeJson = + asyncResp->res.jsonValue[ldapServerElementName]; + auto& searchSettingsJson = + serverTypeJson["LDAPService"]["SearchSettings"]; + std::vector modifiedBaseDNList = { + baseDNList.front()}; + searchSettingsJson["BaseDistinguishedNames"] = + modifiedBaseDNList; + if (baseDNList.size() > 1) + { + messages::propertyValueModified(asyncResp->res, + "BaseDistinguishedNames", + baseDNList.front()); + } + BMCWEB_LOG_DEBUG << "Updated the base DN"; + }, + ldapDbusService, ldapConfigObject, propertyInterface, "Set", + ldapConfigInterface, "LDAPBaseDN", + std::variant(baseDNList.front())); + } + /** + * @brief updates the LDAP user name attribute and updates the + json response with the new value. + * @param userNameAttribute attribute to be updated. + * @param asyncResp pointer to the JSON response + * @param ldapServerElementName Type of LDAP + server(openLDAP/ActiveDirectory) + */ + + void handleUserNameAttrPatch(const std::string& userNameAttribute, + const std::shared_ptr& asyncResp, + const std::string& ldapServerElementName, + const std::string& ldapConfigObject) + { + crow::connections::systemBus->async_method_call( + [asyncResp, userNameAttribute, + ldapServerElementName](const boost::system::error_code ec) { + if (ec) + { + BMCWEB_LOG_DEBUG << "Error Occured in Updating the " + "username attribute"; + messages::internalError(asyncResp->res); + return; + } + auto& serverTypeJson = + asyncResp->res.jsonValue[ldapServerElementName]; + auto& searchSettingsJson = + serverTypeJson["LDAPService"]["SearchSettings"]; + searchSettingsJson["UsernameAttribute"] = userNameAttribute; + BMCWEB_LOG_DEBUG << "Updated the user name attr."; + }, + ldapDbusService, ldapConfigObject, propertyInterface, "Set", + ldapConfigInterface, "UserNameAttribute", + std::variant(userNameAttribute)); + } + /** + * @brief updates the LDAP group attribute and updates the + json response with the new value. + * @param groupsAttribute attribute to be updated. + * @param asyncResp pointer to the JSON response + * @param ldapServerElementName Type of LDAP + server(openLDAP/ActiveDirectory) + */ + + void handleGroupNameAttrPatch(const std::string& groupsAttribute, + const std::shared_ptr& asyncResp, + const std::string& ldapServerElementName, + const std::string& ldapConfigObject) + { + crow::connections::systemBus->async_method_call( + [asyncResp, groupsAttribute, + ldapServerElementName](const boost::system::error_code ec) { + if (ec) + { + BMCWEB_LOG_DEBUG << "Error Occured in Updating the " + "groupname attribute"; + messages::internalError(asyncResp->res); + return; + } + auto& serverTypeJson = + asyncResp->res.jsonValue[ldapServerElementName]; + auto& searchSettingsJson = + serverTypeJson["LDAPService"]["SearchSettings"]; + searchSettingsJson["GroupsAttribute"] = groupsAttribute; + BMCWEB_LOG_DEBUG << "Updated the groupname attr"; + }, + ldapDbusService, ldapConfigObject, propertyInterface, "Set", + ldapConfigInterface, "GroupNameAttribute", + std::variant(groupsAttribute)); + } + /** + * @brief updates the LDAP service enable and updates the + json response with the new value. + * @param input JSON data. + * @param asyncResp pointer to the JSON response + * @param ldapServerElementName Type of LDAP + server(openLDAP/ActiveDirectory) + */ + + void handleServiceEnablePatch(bool serviceEnabled, + const std::shared_ptr& asyncResp, + const std::string& ldapServerElementName, + const std::string& ldapConfigObject) + { + crow::connections::systemBus->async_method_call( + [asyncResp, serviceEnabled, + ldapServerElementName](const boost::system::error_code ec) { + if (ec) + { + BMCWEB_LOG_DEBUG + << "Error Occured in Updating the service enable"; + messages::internalError(asyncResp->res); + return; + } + asyncResp->res + .jsonValue[ldapServerElementName]["ServiceEnabled"] = + serviceEnabled; + BMCWEB_LOG_DEBUG << "Updated Service enable = " + << serviceEnabled; + }, + ldapDbusService, ldapConfigObject, propertyInterface, "Set", + ldapEnableInterface, "Enabled", std::variant(serviceEnabled)); + } + + void handleAuthMethodsPatch(nlohmann::json& input, + const std::shared_ptr& asyncResp) + { + std::optional basicAuth; + std::optional cookie; + std::optional sessionToken; + std::optional xToken; + std::optional tls; + + if (!json_util::readJson(input, asyncResp->res, "BasicAuth", basicAuth, + "Cookie", cookie, "SessionToken", sessionToken, + "XToken", xToken, "TLS", tls)) + { + BMCWEB_LOG_ERROR << "Cannot read values from AuthMethod tag"; + return; + } + + // Make a copy of methods configuration + crow::persistent_data::AuthConfigMethods authMethodsConfig = + crow::persistent_data::SessionStore::getInstance() + .getAuthMethodsConfig(); + + if (basicAuth) + { + authMethodsConfig.basic = *basicAuth; + } + + if (cookie) + { + authMethodsConfig.cookie = *cookie; + } + + if (sessionToken) + { + authMethodsConfig.sessionToken = *sessionToken; + } + + if (xToken) + { + authMethodsConfig.xtoken = *xToken; + } + + if (tls) + { + authMethodsConfig.tls = *tls; + } + + if (!authMethodsConfig.basic && !authMethodsConfig.cookie && + !authMethodsConfig.sessionToken && !authMethodsConfig.xtoken && + !authMethodsConfig.tls) + { + // Do not allow user to disable everything + messages::actionNotSupported(asyncResp->res, + "of disabling all available methods"); + return; + } + + crow::persistent_data::SessionStore::getInstance() + .updateAuthMethodsConfig(authMethodsConfig); + // Save configuration immediately + app.template getMiddleware() + .writeData(); + + messages::success(asyncResp->res); + } -class AccountService : public Node -{ - public: - AccountService(CrowApp& app) : Node(app, "/redfish/v1/AccountService/") + /** + * @brief Get the required values from the given JSON, validates the + * value and create the LDAP config object. + * @param input JSON data + * @param asyncResp pointer to the JSON response + * @param serverType Type of LDAP server(openLDAP/ActiveDirectory) + */ + + void handleLDAPPatch(nlohmann::json& input, + const std::shared_ptr& asyncResp, + const crow::Request& req, + const std::vector& params, + const std::string& serverType) { - entityPrivileges = { - {boost::beast::http::verb::get, - {{"ConfigureUsers"}, {"ConfigureManager"}}}, - {boost::beast::http::verb::head, {{"Login"}}}, - {boost::beast::http::verb::patch, {{"ConfigureUsers"}}}, - {boost::beast::http::verb::put, {{"ConfigureUsers"}}}, - {boost::beast::http::verb::delete_, {{"ConfigureUsers"}}}, - {boost::beast::http::verb::post, {{"ConfigureUsers"}}}}; + std::string dbusObjectPath; + if (serverType == "ActiveDirectory") + { + dbusObjectPath = ADConfigObject; + } + else if (serverType == "LDAP") + { + dbusObjectPath = ldapConfigObject; + } + + std::optional authentication; + std::optional ldapService; + std::optional accountProviderType; + std::optional> serviceAddressList; + std::optional serviceEnabled; + std::optional> baseDNList; + std::optional userNameAttribute; + std::optional groupsAttribute; + std::optional userName; + std::optional password; + std::optional> remoteRoleMapData; + + if (!json_util::readJson(input, asyncResp->res, "Authentication", + authentication, "LDAPService", ldapService, + "ServiceAddresses", serviceAddressList, + "AccountProviderType", accountProviderType, + "ServiceEnabled", serviceEnabled, + "RemoteRoleMapping", remoteRoleMapData)) + { + return; + } + + if (authentication) + { + parseLDAPAuthenticationJson(*authentication, asyncResp, userName, + password); + } + if (ldapService) + { + parseLDAPServiceJson(*ldapService, asyncResp, baseDNList, + userNameAttribute, groupsAttribute); + } + if (accountProviderType) + { + messages::propertyNotWritable(asyncResp->res, + "AccountProviderType"); + } + if (serviceAddressList) + { + if ((*serviceAddressList).size() == 0) + { + messages::propertyValueNotInList(asyncResp->res, "[]", + "ServiceAddress"); + return; + } + } + if (baseDNList) + { + if ((*baseDNList).size() == 0) + { + messages::propertyValueNotInList(asyncResp->res, "[]", + "BaseDistinguishedNames"); + return; + } + } + + // nothing to update, then return + if (!userName && !password && !serviceAddressList && !baseDNList && + !userNameAttribute && !groupsAttribute && !serviceEnabled && + !remoteRoleMapData) + { + return; + } + + // Get the existing resource first then keep modifying + // whenever any property gets updated. + getLDAPConfigData(serverType, [this, asyncResp, userName, password, + baseDNList, userNameAttribute, + groupsAttribute, accountProviderType, + serviceAddressList, serviceEnabled, + dbusObjectPath, remoteRoleMapData]( + bool success, LDAPConfigData confData, + const std::string& serverType) { + if (!success) + { + messages::internalError(asyncResp->res); + return; + } + parseLDAPConfigData(asyncResp->res.jsonValue, confData, serverType); + if (confData.serviceEnabled) + { + // Disable the service first and update the rest of + // the properties. + handleServiceEnablePatch(false, asyncResp, serverType, + dbusObjectPath); + } + + if (serviceAddressList) + { + handleServiceAddressPatch(*serviceAddressList, asyncResp, + serverType, dbusObjectPath); + } + if (userName) + { + handleUserNamePatch(*userName, asyncResp, serverType, + dbusObjectPath); + } + if (password) + { + handlePasswordPatch(*password, asyncResp, serverType, + dbusObjectPath); + } + + if (baseDNList) + { + handleBaseDNPatch(*baseDNList, asyncResp, serverType, + dbusObjectPath); + } + if (userNameAttribute) + { + handleUserNameAttrPatch(*userNameAttribute, asyncResp, + serverType, dbusObjectPath); + } + if (groupsAttribute) + { + handleGroupNameAttrPatch(*groupsAttribute, asyncResp, + serverType, dbusObjectPath); + } + if (serviceEnabled) + { + // if user has given the value as true then enable + // the service. if user has given false then no-op + // as service is already stopped. + if (*serviceEnabled) + { + handleServiceEnablePatch(*serviceEnabled, asyncResp, + serverType, dbusObjectPath); + } + } + else + { + // if user has not given the service enabled value + // then revert it to the same state as it was + // before. + handleServiceEnablePatch(confData.serviceEnabled, asyncResp, + serverType, dbusObjectPath); + } + + if (remoteRoleMapData) + { + std::vector remoteRoleMap = + std::move(*remoteRoleMapData); + + handleRoleMapPatch(asyncResp, confData.groupRoleList, + serverType, remoteRoleMap); + } + }); } - private: void doGet(crow::Response& res, const crow::Request& req, const std::vector& params) override { + const crow::persistent_data::AuthConfigMethods& authMethodsConfig = + crow::persistent_data::SessionStore::getInstance() + .getAuthMethodsConfig(); + auto asyncResp = std::make_shared(res); res.jsonValue = { {"@odata.context", "/redfish/v1/" "$metadata#AccountService.AccountService"}, {"@odata.id", "/redfish/v1/AccountService"}, {"@odata.type", "#AccountService." - "v1_1_0.AccountService"}, + "v1_4_0.AccountService"}, {"Id", "AccountService"}, {"Name", "Account Service"}, {"Description", "Account Service"}, {"ServiceEnabled", true}, - {"MaxPasswordLength", 31}, + {"MaxPasswordLength", 20}, {"Accounts", {{"@odata.id", "/redfish/v1/AccountService/Accounts"}}}, - {"Roles", {{"@odata.id", "/redfish/v1/AccountService/Roles"}}}}; - + {"Roles", {{"@odata.id", "/redfish/v1/AccountService/Roles"}}}, + {"Oem", + {{"OpenBMC", + {{"@odata.type", "#OemAccountService.v1_0_0.AccountService"}, + {"AuthMethods", + { + {"BasicAuth", authMethodsConfig.basic}, + {"SessionToken", authMethodsConfig.sessionToken}, + {"XToken", authMethodsConfig.xtoken}, + {"Cookie", authMethodsConfig.cookie}, + {"TLS", authMethodsConfig.tls}, + }}}}}}, + {"LDAP", + {{"Certificates", + {{"@odata.id", + "/redfish/v1/AccountService/LDAP/Certificates"}}}}}}; crow::connections::systemBus->async_method_call( [asyncResp]( const boost::system::error_code ec, @@ -158,7 +1219,16 @@ class AccountService : public Node "xyz.openbmc_project.User.Manager", "/xyz/openbmc_project/user", "org.freedesktop.DBus.Properties", "GetAll", "xyz.openbmc_project.User.AccountPolicy"); + + auto callback = [asyncResp](bool success, LDAPConfigData& confData, + const std::string& ldapType) { + parseLDAPConfigData(asyncResp->res.jsonValue, confData, ldapType); + }; + + getLDAPConfigData("LDAP", callback); + getLDAPConfigData("ActiveDirectory", callback); } + void doPatch(crow::Response& res, const crow::Request& req, const std::vector& params) override { @@ -166,12 +1236,59 @@ class AccountService : public Node std::optional unlockTimeout; std::optional lockoutThreshold; - if (!json_util::readJson(req, res, "AccountLockoutDuration", - unlockTimeout, "AccountLockoutThreshold", - lockoutThreshold)) + std::optional minPasswordLength; + std::optional maxPasswordLength; + std::optional ldapObject; + std::optional activeDirectoryObject; + std::optional oemObject; + + if (!json_util::readJson( + req, res, "AccountLockoutDuration", unlockTimeout, + "AccountLockoutThreshold", lockoutThreshold, + "MaxPasswordLength", maxPasswordLength, "MinPasswordLength", + minPasswordLength, "LDAP", ldapObject, "ActiveDirectory", + activeDirectoryObject, "Oem", oemObject)) { return; } + + if (minPasswordLength) + { + messages::propertyNotWritable(asyncResp->res, "MinPasswordLength"); + } + + if (maxPasswordLength) + { + messages::propertyNotWritable(asyncResp->res, "MaxPasswordLength"); + } + + if (ldapObject) + { + handleLDAPPatch(*ldapObject, asyncResp, req, params, "LDAP"); + } + + if (std::optional oemOpenBMCObject; + oemObject && + json_util::readJson(*oemObject, res, "OpenBMC", oemOpenBMCObject)) + { + if (std::optional authMethodsObject; + oemOpenBMCObject && + json_util::readJson(*oemOpenBMCObject, res, "AuthMethods", + authMethodsObject)) + { + if (authMethodsObject) + { + handleAuthMethodsPatch(*authMethodsObject, asyncResp); + } + } + } + + if (activeDirectoryObject) + { + handleLDAPPatch(*activeDirectoryObject, asyncResp, req, params, + "ActiveDirectory"); + } + if (unlockTimeout) { crow::connections::systemBus->async_method_call( @@ -181,6 +1298,7 @@ class AccountService : public Node messages::internalError(asyncResp->res); return; } + messages::success(asyncResp->res); }, "xyz.openbmc_project.User.Manager", "/xyz/openbmc_project/user", "org.freedesktop.DBus.Properties", "Set", @@ -196,6 +1314,7 @@ class AccountService : public Node messages::internalError(asyncResp->res); return; } + messages::success(asyncResp->res); }, "xyz.openbmc_project.User.Manager", "/xyz/openbmc_project/user", "org.freedesktop.DBus.Properties", "Set", @@ -204,7 +1323,10 @@ class AccountService : public Node std::variant(*lockoutThreshold)); } } + + CrowApp& app; }; + class AccountsCollection : public Node { public: @@ -287,7 +1409,7 @@ class AccountsCollection : public Node return; } - std::string priv = getRoleIdFromPrivilege(*roleId); + std::string priv = getPrivilegeFromRoleId(*roleId); if (priv.empty()) { messages::propertyValueNotInList(asyncResp->res, *roleId, "RoleId"); @@ -295,69 +1417,81 @@ class AccountsCollection : public Node } roleId = priv; + // Reading AllGroups property crow::connections::systemBus->async_method_call( - [asyncResp, username, password{std::move(password)}]( - const boost::system::error_code ec) { + [asyncResp, username, password{std::move(password)}, roleId, + enabled](const boost::system::error_code ec, + const std::variant>& allGroups) { if (ec) { - messages::resourceAlreadyExists( - asyncResp->res, "#ManagerAccount.v1_0_3.ManagerAccount", - "UserName", username); + BMCWEB_LOG_DEBUG << "ERROR with async_method_call"; + messages::internalError(asyncResp->res); return; } - if (!pamUpdatePassword(username, password)) - { - // At this point we have a user that's been created, but the - // password set failed. Something is wrong, so delete the - // user that we've already created - crow::connections::systemBus->async_method_call( - [asyncResp](const boost::system::error_code ec) { - if (ec) - { - messages::internalError(asyncResp->res); - return; - } - - messages::invalidObject(asyncResp->res, "Password"); - }, - "xyz.openbmc_project.User.Manager", - "/xyz/openbmc_project/user/" + username, - "xyz.openbmc_project.Object.Delete", "Delete"); + const std::vector* allGroupsList = + std::get_if>(&allGroups); - BMCWEB_LOG_ERROR << "pamUpdatePassword Failed"; + if (allGroupsList == nullptr || allGroupsList->empty()) + { + messages::internalError(asyncResp->res); return; } - messages::created(asyncResp->res); - asyncResp->res.addHeader( - "Location", - "/redfish/v1/AccountService/Accounts/" + username); + crow::connections::systemBus->async_method_call( + [asyncResp, username, password{std::move(password)}]( + const boost::system::error_code ec, + sdbusplus::message::message& m) { + if (ec) + { + userErrorMessageHandler(m.get_error(), asyncResp, + username, ""); + return; + } + + if (pamUpdatePassword(username, password) != + PAM_SUCCESS) + { + // At this point we have a user that's been created, + // but the password set failed.Something is wrong, + // so delete the user that we've already created + crow::connections::systemBus->async_method_call( + [asyncResp, + password](const boost::system::error_code ec) { + if (ec) + { + messages::internalError(asyncResp->res); + return; + } + + // If password is invalid + messages::propertyValueFormatError( + asyncResp->res, password, "Password"); + }, + "xyz.openbmc_project.User.Manager", + "/xyz/openbmc_project/user/" + username, + "xyz.openbmc_project.Object.Delete", "Delete"); + + BMCWEB_LOG_ERROR << "pamUpdatePassword Failed"; + return; + } + + messages::created(asyncResp->res); + asyncResp->res.addHeader( + "Location", + "/redfish/v1/AccountService/Accounts/" + username); + }, + "xyz.openbmc_project.User.Manager", + "/xyz/openbmc_project/user", + "xyz.openbmc_project.User.Manager", "CreateUser", username, + *allGroupsList, *roleId, *enabled); }, "xyz.openbmc_project.User.Manager", "/xyz/openbmc_project/user", - "xyz.openbmc_project.User.Manager", "CreateUser", username, - std::array{"ipmi", "redfish", "ssh", "web"}, - *roleId, *enabled); + "org.freedesktop.DBus.Properties", "Get", + "xyz.openbmc_project.User.Manager", "AllGroups"); } }; -template -inline void checkDbusPathExists(const std::string& path, Callback&& callback) -{ - using GetObjectType = - std::vector>>; - - crow::connections::systemBus->async_method_call( - [callback{std::move(callback)}](const boost::system::error_code ec, - const GetObjectType& object_names) { - callback(!ec && object_names.size() != 0); - }, - "xyz.openbmc_project.ObjectMapper", - "/xyz/openbmc_project/object_mapper", - "xyz.openbmc_project.ObjectMapper", "GetObject", path, - std::array()); -} - class ManagerAccount : public Node { public: @@ -368,7 +1502,8 @@ class ManagerAccount : public Node {boost::beast::http::verb::get, {{"ConfigureUsers"}, {"ConfigureManager"}, {"ConfigureSelf"}}}, {boost::beast::http::verb::head, {{"Login"}}}, - {boost::beast::http::verb::patch, {{"ConfigureUsers"}}}, + {boost::beast::http::verb::patch, + {{"ConfigureUsers"}, {"ConfigureSelf"}}}, {boost::beast::http::verb::put, {{"ConfigureUsers"}}}, {boost::beast::http::verb::delete_, {{"ConfigureUsers"}}}, {boost::beast::http::verb::post, {{"ConfigureUsers"}}}}; @@ -378,15 +1513,6 @@ class ManagerAccount : public Node void doGet(crow::Response& res, const crow::Request& req, const std::vector& params) override { - res.jsonValue = { - {"@odata.context", - "/redfish/v1/$metadata#ManagerAccount.ManagerAccount"}, - {"@odata.type", "#ManagerAccount.v1_0_3.ManagerAccount"}, - {"Name", "User Account"}, - {"Description", "User Account"}, - {"Password", nullptr}, - {"RoleId", "Administrator"}}; - auto asyncResp = std::make_shared(res); if (params.size() != 1) @@ -395,6 +1521,21 @@ class ManagerAccount : public Node return; } + // Perform a proper ConfigureSelf authority check. If the + // user is operating on an account not their own, then their + // ConfigureSelf privilege does not apply. In this case, + // perform the authority check again without the user's + // ConfigureSelf privilege. + if (req.session->username != params[0]) + { + if (!isAllowedWithoutConfigureSelf(req)) + { + BMCWEB_LOG_DEBUG << "GET Account denied access"; + messages::insufficientPrivilege(asyncResp->res); + return; + } + } + crow::connections::systemBus->async_method_call( [asyncResp, accountName{std::string(params[0])}]( const boost::system::error_code ec, @@ -419,6 +1560,15 @@ class ManagerAccount : public Node accountName); return; } + + asyncResp->res.jsonValue = { + {"@odata.context", + "/redfish/v1/$metadata#ManagerAccount.ManagerAccount"}, + {"@odata.type", "#ManagerAccount.v1_0_3.ManagerAccount"}, + {"Name", "User Account"}, + {"Description", "User Account"}, + {"Password", nullptr}}; + for (const auto& interface : userIt->second) { if (interface.first == @@ -455,12 +1605,15 @@ class ManagerAccount : public Node } asyncResp->res.jsonValue["Locked"] = *userLocked; + asyncResp->res.jsonValue + ["Locked@Redfish.AllowableValues"] = { + "false"}; } else if (property.first == "UserPrivilege") { - const std::string* userRolePtr = + const std::string* userPrivPtr = std::get_if(&property.second); - if (userRolePtr == nullptr) + if (userPrivPtr == nullptr) { BMCWEB_LOG_ERROR << "UserPrivilege wasn't a " @@ -468,20 +1621,20 @@ class ManagerAccount : public Node messages::internalError(asyncResp->res); return; } - std::string priv = - getPrivilegeFromRoleId(*userRolePtr); - if (priv.empty()) + std::string role = + getRoleIdFromPrivilege(*userPrivPtr); + if (role.empty()) { BMCWEB_LOG_ERROR << "Invalid user role"; messages::internalError(asyncResp->res); return; } - asyncResp->res.jsonValue["RoleId"] = priv; + asyncResp->res.jsonValue["RoleId"] = role; asyncResp->res.jsonValue["Links"]["Role"] = { {"@odata.id", "/redfish/v1/AccountService/" "Roles/" + - priv}}; + role}}; } } } @@ -510,21 +1663,43 @@ class ManagerAccount : public Node std::optional password; std::optional enabled; std::optional roleId; + std::optional locked; if (!json_util::readJson(req, res, "UserName", newUserName, "Password", - password, "RoleId", roleId, "Enabled", - enabled)) + password, "RoleId", roleId, "Enabled", enabled, + "Locked", locked)) { return; } const std::string& username = params[0]; - if (!newUserName) + // Perform a proper ConfigureSelf authority check. If the + // session is being used to PATCH a property other than + // Password, then the ConfigureSelf privilege does not apply. + // If the user is operating on an account not their own, then + // their ConfigureSelf privilege does not apply. In either + // case, perform the authority check again without the user's + // ConfigureSelf privilege. + if ((username != req.session->username) || + (newUserName || enabled || roleId || locked)) + { + if (!isAllowedWithoutConfigureSelf(req)) + { + BMCWEB_LOG_WARNING << "PATCH Password denied access"; + asyncResp->res.clear(); + messages::insufficientPrivilege(asyncResp->res); + return; + } + } + + // if user name is not provided in the patch method or if it + // matches the user name in the URI, then we are treating it as updating + // user properties other then username. If username provided doesn't + // match the URI, then we are treating this as user rename request. + if (!newUserName || (newUserName.value() == username)) { - // If the username isn't being updated, we can update the properties - // directly - updateUserProperties(asyncResp, username, password, enabled, - roleId); + updateUserProperties(asyncResp, username, password, enabled, roleId, + locked); return; } else @@ -532,19 +1707,18 @@ class ManagerAccount : public Node crow::connections::systemBus->async_method_call( [this, asyncResp, username, password(std::move(password)), roleId(std::move(roleId)), enabled(std::move(enabled)), - newUser{std::string(*newUserName)}]( - const boost::system::error_code ec) { + newUser{std::string(*newUserName)}, + locked(std::move(locked))](const boost::system::error_code ec, + sdbusplus::message::message& m) { if (ec) { - BMCWEB_LOG_ERROR << "D-Bus responses error: " << ec; - messages::resourceNotFound( - asyncResp->res, - "#ManagerAccount.v1_0_3.ManagerAccount", username); + userErrorMessageHandler(m.get_error(), asyncResp, + newUser, username); return; } updateUserProperties(asyncResp, newUser, password, enabled, - roleId); + roleId, locked); }, "xyz.openbmc_project.User.Manager", "/xyz/openbmc_project/user", "xyz.openbmc_project.User.Manager", "RenameUser", username, @@ -556,64 +1730,131 @@ class ManagerAccount : public Node const std::string& username, std::optional password, std::optional enabled, - std::optional roleId) + std::optional roleId, + std::optional locked) { - if (password) - { - if (!pamUpdatePassword(username, *password)) - { - BMCWEB_LOG_ERROR << "pamUpdatePassword Failed"; - messages::internalError(asyncResp->res); - return; - } - } + std::string dbusObjectPath = "/xyz/openbmc_project/user/" + username; + dbus::utility::escapePathForDbus(dbusObjectPath); - if (enabled) - { - crow::connections::systemBus->async_method_call( - [asyncResp](const boost::system::error_code ec) { - if (ec) + dbus::utility::checkDbusPathExists( + dbusObjectPath, + [dbusObjectPath(std::move(dbusObjectPath)), username, + password(std::move(password)), roleId(std::move(roleId)), + enabled(std::move(enabled)), locked(std::move(locked)), + asyncResp{std::move(asyncResp)}](int rc) { + if (!rc) + { + messages::resourceNotFound( + asyncResp->res, "#ManagerAccount.v1_0_3.ManagerAccount", + username); + return; + } + + if (password) + { + int retval = pamUpdatePassword(username, *password); + + if (retval == PAM_USER_UNKNOWN) + { + messages::resourceNotFound( + asyncResp->res, + "#ManagerAccount.v1_0_3.ManagerAccount", username); + } + else if (retval == PAM_AUTHTOK_ERR) + { + // If password is invalid + messages::propertyValueFormatError( + asyncResp->res, *password, "Password"); + BMCWEB_LOG_ERROR << "pamUpdatePassword Failed"; + } + else if (retval != PAM_SUCCESS) { - BMCWEB_LOG_ERROR << "D-Bus responses error: " << ec; messages::internalError(asyncResp->res); return; } - messages::success(asyncResp->res); - return; - }, - "xyz.openbmc_project.User.Manager", - "/xyz/openbmc_project/user/" + username, - "org.freedesktop.DBus.Properties", "Set", - "xyz.openbmc_project.User.Attributes", "UserEnabled", - std::variant{*enabled}); - } + } - if (roleId) - { - std::string priv = getRoleIdFromPrivilege(*roleId); - if (priv.empty()) - { - messages::propertyValueNotInList(asyncResp->res, *roleId, - "RoleId"); - return; - } + if (enabled) + { + crow::connections::systemBus->async_method_call( + [asyncResp](const boost::system::error_code ec) { + if (ec) + { + BMCWEB_LOG_ERROR << "D-Bus responses error: " + << ec; + messages::internalError(asyncResp->res); + return; + } + messages::success(asyncResp->res); + return; + }, + "xyz.openbmc_project.User.Manager", + dbusObjectPath.c_str(), + "org.freedesktop.DBus.Properties", "Set", + "xyz.openbmc_project.User.Attributes", "UserEnabled", + std::variant{*enabled}); + } - crow::connections::systemBus->async_method_call( - [asyncResp](const boost::system::error_code ec) { - if (ec) + if (roleId) + { + std::string priv = getPrivilegeFromRoleId(*roleId); + if (priv.empty()) { - BMCWEB_LOG_ERROR << "D-Bus responses error: " << ec; - messages::internalError(asyncResp->res); + messages::propertyValueNotInList(asyncResp->res, + *roleId, "RoleId"); return; } - messages::success(asyncResp->res); - }, - "xyz.openbmc_project.User.Manager", - "/xyz/openbmc_project/user/" + username, - "org.freedesktop.DBus.Properties", "Set", - "xyz.openbmc_project.User.Attributes", "UserPrivilege", - std::variant{priv}); - } + + crow::connections::systemBus->async_method_call( + [asyncResp](const boost::system::error_code ec) { + if (ec) + { + BMCWEB_LOG_ERROR << "D-Bus responses error: " + << ec; + messages::internalError(asyncResp->res); + return; + } + messages::success(asyncResp->res); + }, + "xyz.openbmc_project.User.Manager", + dbusObjectPath.c_str(), + "org.freedesktop.DBus.Properties", "Set", + "xyz.openbmc_project.User.Attributes", "UserPrivilege", + std::variant{priv}); + } + + if (locked) + { + // admin can unlock the account which is locked by + // successive authentication failures but admin should + // not be allowed to lock an account. + if (*locked) + { + messages::propertyValueNotInList(asyncResp->res, "true", + "Locked"); + return; + } + + crow::connections::systemBus->async_method_call( + [asyncResp](const boost::system::error_code ec) { + if (ec) + { + BMCWEB_LOG_ERROR << "D-Bus responses error: " + << ec; + messages::internalError(asyncResp->res); + return; + } + messages::success(asyncResp->res); + return; + }, + "xyz.openbmc_project.User.Manager", + dbusObjectPath.c_str(), + "org.freedesktop.DBus.Properties", "Set", + "xyz.openbmc_project.User.Attributes", + "UserLockedForFailedAttempt", + sdbusplus::message::variant{*locked}); + } + }); } void doDelete(crow::Response& res, const crow::Request& req, diff --git a/Contrib-Inspur/bmcweb/redfish-core/lib/bios.hpp b/Contrib-Inspur/bmcweb/redfish-core/lib/bios.hpp new file mode 100644 index 00000000..94f1cb98 --- /dev/null +++ b/Contrib-Inspur/bmcweb/redfish-core/lib/bios.hpp @@ -0,0 +1,73 @@ +#pragma once + +#include "node.hpp" + +namespace redfish +{ +/** + * BiosService class supports handle get method for bios. + */ +class BiosService : public Node +{ + public: + BiosService(CrowApp &app) : Node(app, "/redfish/v1/Systems/system/Bios/") + { + entityPrivileges = {{boost::beast::http::verb::get, {{"Login"}}}}; + } + + private: + void doGet(crow::Response &res, const crow::Request &req, + const std::vector ¶ms) override + { + auto asyncResp = std::make_shared(res); + + asyncResp->res.jsonValue["@odata.id"] = + "/redfish/v1/Systems/system/Bios"; + asyncResp->res.jsonValue["@odata.type"] = "#Bios.v1_1_0.Bios"; + asyncResp->res.jsonValue["Name"] = "BIOS Configuration"; + asyncResp->res.jsonValue["Description"] = "BIOS Configuration Service"; + asyncResp->res.jsonValue["Id"] = "BIOS"; + asyncResp->res.jsonValue["Actions"]["#Bios.ResetBios"] = { + {"target", + "/redfish/v1/Systems/system/Bios/Actions/Bios.ResetBios"}}; + } +}; +/** + * BiosReset class supports handle POST method for Reset bios. + * The class retrieves and sends data directly to D-Bus. + */ +class BiosReset : public Node +{ + public: + BiosReset(CrowApp &app) : + Node(app, "/redfish/v1/Systems/system/Bios/Actions/Bios.ResetBios/") + { + entityPrivileges = { + {boost::beast::http::verb::post, {{"ConfigureManager"}}}}; + } + + private: + /** + * Function handles POST method request. + * Analyzes POST body message before sends Reset request data to D-Bus. + */ + void doPost(crow::Response &res, const crow::Request &req, + const std::vector ¶ms) override + { + auto asyncResp = std::make_shared(res); + + crow::connections::systemBus->async_method_call( + [asyncResp](const boost::system::error_code ec) { + if (ec) + { + BMCWEB_LOG_ERROR << "Failed to reset bios: " << ec; + messages::internalError(asyncResp->res); + return; + } + }, + "org.open_power.Software.Host.Updater", + "/xyz/openbmc_project/software", + "xyz.openbmc_project.Common.FactoryReset", "Reset"); + } +}; +} // namespace redfish \ No newline at end of file diff --git a/Contrib-Inspur/bmcweb/redfish-core/lib/certificate_service.hpp b/Contrib-Inspur/bmcweb/redfish-core/lib/certificate_service.hpp new file mode 100644 index 00000000..e15c308e --- /dev/null +++ b/Contrib-Inspur/bmcweb/redfish-core/lib/certificate_service.hpp @@ -0,0 +1,1407 @@ +/* +// Copyright (c) 2018 IBM Corporation +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +*/ +#pragma once + +#include "node.hpp" + +#include +#include +#include +namespace redfish +{ +namespace certs +{ +constexpr char const *httpsObjectPath = + "/xyz/openbmc_project/certs/server/https"; +constexpr char const *certInstallIntf = "xyz.openbmc_project.Certs.Install"; +constexpr char const *certReplaceIntf = "xyz.openbmc_project.Certs.Replace"; +constexpr char const *objDeleteIntf = "xyz.openbmc_project.Object.Delete"; +constexpr char const *certPropIntf = "xyz.openbmc_project.Certs.Certificate"; +constexpr char const *dbusPropIntf = "org.freedesktop.DBus.Properties"; +constexpr char const *dbusObjManagerIntf = "org.freedesktop.DBus.ObjectManager"; +constexpr char const *ldapObjectPath = "/xyz/openbmc_project/certs/client/ldap"; +constexpr char const *httpsServiceName = + "xyz.openbmc_project.Certs.Manager.Server.Https"; +constexpr char const *ldapServiceName = + "xyz.openbmc_project.Certs.Manager.Client.Ldap"; +constexpr char const *authorityServiceName = + "xyz.openbmc_project.Certs.Manager.Authority.Ldap"; +constexpr char const *authorityObjectPath = + "/xyz/openbmc_project/certs/authority/ldap"; +} // namespace certs + +/** + * The Certificate schema defines a Certificate Service which represents the + * actions available to manage certificates and links to where certificates + * are installed. + */ +class CertificateService : public Node +{ + public: + CertificateService(CrowApp &app) : + Node(app, "/redfish/v1/CertificateService/") + { + // TODO: Issue#61 No entries are available for Certificate + // sevice at https://www.dmtf.org/standards/redfish + // "redfish standard registries". Need to modify after DMTF + // publish Privilege details for certificate service + entityPrivileges = { + {boost::beast::http::verb::get, {{"Login"}}}, + {boost::beast::http::verb::head, {{"Login"}}}, + {boost::beast::http::verb::patch, {{"ConfigureComponents"}}}, + {boost::beast::http::verb::put, {{"ConfigureComponents"}}}, + {boost::beast::http::verb::delete_, {{"ConfigureComponents"}}}, + {boost::beast::http::verb::post, {{"ConfigureComponents"}}}}; + } + + private: + void doGet(crow::Response &res, const crow::Request &req, + const std::vector ¶ms) override + { + res.jsonValue = { + {"@odata.type", "#CertificateService.v1_0_0.CertificateService"}, + {"@odata.id", "/redfish/v1/CertificateService"}, + {"@odata.context", + "/redfish/v1/$metadata#CertificateService.CertificateService"}, + {"Id", "CertificateService"}, + {"Name", "Certificate Service"}, + {"Description", "Actions available to manage certificates"}}; + res.jsonValue["CertificateLocations"] = { + {"@odata.id", + "/redfish/v1/CertificateService/CertificateLocations"}}; + res.jsonValue["Actions"]["#CertificateService.ReplaceCertificate"] = { + {"target", "/redfish/v1/CertificateService/Actions/" + "CertificateService.ReplaceCertificate"}, + {"CertificateType@Redfish.AllowableValues", {"PEM"}}}; + res.jsonValue["Actions"]["#CertificateService.GenerateCSR"] = { + {"target", "/redfish/v1/CertificateService/Actions/" + "CertificateService.GenerateCSR"}}; + res.end(); + } +}; // CertificateService + +/** + * @brief Find the ID specified in the URL + * Finds the numbers specified after the last "/" in the URL and returns. + * @param[in] path URL + * @return -1 on failure and number on success + */ +long getIDFromURL(const std::string_view url) +{ + std::size_t found = url.rfind("/"); + if (found == std::string::npos) + { + return -1; + } + + if ((found + 1) < url.length()) + { + std::string_view str = url.substr(found + 1); + + return boost::convert(str, boost::cnv::strtol()).value_or(-1); + } + + return -1; +} + +std::string + getCertificateFromReqBody(const std::shared_ptr &asyncResp, + const crow::Request &req) +{ + nlohmann::json reqJson = nlohmann::json::parse(req.body, nullptr, false); + + if (reqJson.is_discarded()) + { + // We did not receive JSON request, proceed as it is RAW data + return req.body; + } + + std::string certificate; + std::optional certificateType = "PEM"; + + if (!json_util::readJson(reqJson, asyncResp->res, "CertificateString", + certificate, "CertificateType", certificateType)) + { + BMCWEB_LOG_ERROR << "Required parameters are missing"; + messages::internalError(asyncResp->res); + return std::string(); + } + + if (*certificateType != "PEM") + { + messages::propertyValueNotInList(asyncResp->res, *certificateType, + "CertificateType"); + return std::string(); + } + + return certificate; +} + +/** + * Class to create a temporary certificate file for uploading to system + */ +class CertificateFile +{ + public: + CertificateFile() = delete; + CertificateFile(const CertificateFile &) = delete; + CertificateFile &operator=(const CertificateFile &) = delete; + CertificateFile(CertificateFile &&) = delete; + CertificateFile &operator=(CertificateFile &&) = delete; + CertificateFile(const std::string &certString) + { + char dirTemplate[] = "/tmp/Certs.XXXXXX"; + char *tempDirectory = mkdtemp(dirTemplate); + if (tempDirectory) + { + certDirectory = tempDirectory; + certificateFile = certDirectory / "cert.pem"; + std::ofstream out(certificateFile, std::ofstream::out | + std::ofstream::binary | + std::ofstream::trunc); + out << certString; + out.close(); + BMCWEB_LOG_DEBUG << "Creating certificate file" << certificateFile; + } + } + ~CertificateFile() + { + if (std::filesystem::exists(certDirectory)) + { + BMCWEB_LOG_DEBUG << "Removing certificate file" << certificateFile; + try + { + std::filesystem::remove_all(certDirectory); + } + catch (const std::filesystem::filesystem_error &e) + { + BMCWEB_LOG_ERROR << "Failed to remove temp directory" + << certDirectory; + } + } + } + std::string getCertFilePath() + { + return certificateFile; + } + + private: + std::filesystem::path certificateFile; + std::filesystem::path certDirectory; +}; + +static std::unique_ptr csrMatcher; +/** + * @brief Read data from CSR D-bus object and set to response + * + * @param[in] asyncResp Shared pointer to the response message + * @param[in] certURI Link to certifiate collection URI + * @param[in] service D-Bus service name + * @param[in] certObjPath certificate D-Bus object path + * @param[in] csrObjPath CSR D-Bus object path + * @return None + */ +static void getCSR(const std::shared_ptr &asyncResp, + const std::string &certURI, const std::string &service, + const std::string &certObjPath, + const std::string &csrObjPath) +{ + BMCWEB_LOG_DEBUG << "getCSR CertObjectPath" << certObjPath + << " CSRObjectPath=" << csrObjPath + << " service=" << service; + crow::connections::systemBus->async_method_call( + [asyncResp, certURI](const boost::system::error_code ec, + const std::string &csr) { + if (ec) + { + BMCWEB_LOG_ERROR << "DBUS response error: " << ec; + messages::internalError(asyncResp->res); + return; + } + if (csr.empty()) + { + BMCWEB_LOG_ERROR << "CSR read is empty"; + messages::internalError(asyncResp->res); + return; + } + asyncResp->res.jsonValue["CSRString"] = csr; + asyncResp->res.jsonValue["CertificateCollection"] = { + {"@odata.id", certURI}}; + }, + service, csrObjPath, "xyz.openbmc_project.Certs.CSR", "CSR"); +} + +/** + * Action to Generate CSR + */ +class CertificateActionGenerateCSR : public Node +{ + public: + CertificateActionGenerateCSR(CrowApp &app) : + Node(app, "/redfish/v1/CertificateService/Actions/" + "CertificateService.GenerateCSR/") + { + entityPrivileges = { + {boost::beast::http::verb::get, {{"Login"}}}, + {boost::beast::http::verb::head, {{"Login"}}}, + {boost::beast::http::verb::patch, {{"ConfigureComponents"}}}, + {boost::beast::http::verb::put, {{"ConfigureComponents"}}}, + {boost::beast::http::verb::delete_, {{"ConfigureComponents"}}}, + {boost::beast::http::verb::post, {{"ConfigureComponents"}}}}; + } + + private: + void doPost(crow::Response &res, const crow::Request &req, + const std::vector ¶ms) override + { + static const int RSA_KEY_BIT_LENGTH = 2048; + auto asyncResp = std::make_shared(res); + // Required parameters + std::string city; + std::string commonName; + std::string country; + std::string organization; + std::string organizationalUnit; + std::string state; + nlohmann::json certificateCollection; + + // Optional parameters + std::optional> optAlternativeNames = + std::vector(); + std::optional optContactPerson = ""; + std::optional optChallengePassword = ""; + std::optional optEmail = ""; + std::optional optGivenName = ""; + std::optional optInitials = ""; + std::optional optKeyBitLength = RSA_KEY_BIT_LENGTH; + std::optional optKeyCurveId = "prime256v1"; + std::optional optKeyPairAlgorithm = "EC"; + std::optional> optKeyUsage = + std::vector(); + std::optional optSurname = ""; + std::optional optUnstructuredName = ""; + if (!json_util::readJson( + req, asyncResp->res, "City", city, "CommonName", commonName, + "ContactPerson", optContactPerson, "Country", country, + "Organization", organization, "OrganizationalUnit", + organizationalUnit, "State", state, "CertificateCollection", + certificateCollection, "AlternativeNames", optAlternativeNames, + "ChallengePassword", optChallengePassword, "Email", optEmail, + "GivenName", optGivenName, "Initials", optInitials, + "KeyBitLength", optKeyBitLength, "KeyCurveId", optKeyCurveId, + "KeyPairAlgorithm", optKeyPairAlgorithm, "KeyUsage", + optKeyUsage, "Surname", optSurname, "UnstructuredName", + optUnstructuredName)) + { + return; + } + + // bmcweb has no way to store or decode a private key challenge + // password, which will likely cause bmcweb to crash on startup if this + // is not set on a post so not allowing the user to set value + if (*optChallengePassword != "") + { + messages::actionParameterNotSupported(asyncResp->res, "GenerateCSR", + "ChallengePassword"); + return; + } + + std::string certURI; + if (!redfish::json_util::readJson(certificateCollection, asyncResp->res, + "@odata.id", certURI)) + { + return; + } + + std::string objectPath; + std::string service; + if (boost::starts_with( + certURI, + "/redfish/v1/Managers/bmc/NetworkProtocol/HTTPS/Certificates")) + { + objectPath = certs::httpsObjectPath; + service = certs::httpsServiceName; + } + else if (boost::starts_with( + certURI, "/redfish/v1/AccountService/LDAP/Certificates")) + { + objectPath = certs::ldapObjectPath; + service = certs::ldapServiceName; + } + else + { + messages::actionParameterNotSupported( + asyncResp->res, "CertificateCollection", "GenerateCSR"); + return; + } + + // supporting only EC and RSA algorithm + if (*optKeyPairAlgorithm != "EC" && *optKeyPairAlgorithm != "RSA") + { + messages::actionParameterNotSupported( + asyncResp->res, "KeyPairAlgorithm", "GenerateCSR"); + return; + } + + // supporting only 2048 key bit length for RSA algorithm due to time + // consumed in generating private key + if (*optKeyPairAlgorithm == "RSA" && + *optKeyBitLength != RSA_KEY_BIT_LENGTH) + { + messages::propertyValueNotInList(asyncResp->res, + std::to_string(*optKeyBitLength), + "KeyBitLength"); + return; + } + + // validate KeyUsage supporting only 1 type based on URL + if (boost::starts_with( + certURI, + "/redfish/v1/Managers/bmc/NetworkProtocol/HTTPS/Certificates")) + { + if (optKeyUsage->size() == 0) + { + optKeyUsage->push_back("ServerAuthentication"); + } + else if (optKeyUsage->size() == 1) + { + if ((*optKeyUsage)[0] != "ServerAuthentication") + { + messages::propertyValueNotInList( + asyncResp->res, (*optKeyUsage)[0], "KeyUsage"); + return; + } + } + else + { + messages::actionParameterNotSupported( + asyncResp->res, "KeyUsage", "GenerateCSR"); + return; + } + } + else if (boost::starts_with( + certURI, "/redfish/v1/AccountService/LDAP/Certificates")) + { + if (optKeyUsage->size() == 0) + { + optKeyUsage->push_back("ClientAuthentication"); + } + else if (optKeyUsage->size() == 1) + { + if ((*optKeyUsage)[0] != "ClientAuthentication") + { + messages::propertyValueNotInList( + asyncResp->res, (*optKeyUsage)[0], "KeyUsage"); + return; + } + } + else + { + messages::actionParameterNotSupported( + asyncResp->res, "KeyUsage", "GenerateCSR"); + return; + } + } + + // Only allow one CSR matcher at a time so setting retry time-out and + // timer expiry to 10 seconds for now. + static const int TIME_OUT = 10; + if (csrMatcher) + { + messages::serviceTemporarilyUnavailable(asyncResp->res, + std::to_string(TIME_OUT)); + return; + } + + // Make this static so it survives outside this method + static boost::asio::steady_timer timeout(*req.ioService); + timeout.expires_after(std::chrono::seconds(TIME_OUT)); + timeout.async_wait([asyncResp](const boost::system::error_code &ec) { + csrMatcher = nullptr; + if (ec) + { + // operation_aborted is expected if timer is canceled before + // completion. + if (ec != boost::asio::error::operation_aborted) + { + BMCWEB_LOG_ERROR << "Async_wait failed " << ec; + } + return; + } + BMCWEB_LOG_ERROR << "Timed out waiting for Generating CSR"; + messages::internalError(asyncResp->res); + }); + + // create a matcher to wait on CSR object + BMCWEB_LOG_DEBUG << "create matcher with path " << objectPath; + std::string match("type='signal'," + "interface='org.freedesktop.DBus.ObjectManager'," + "path='" + + objectPath + + "'," + "member='InterfacesAdded'"); + csrMatcher = std::make_unique( + *crow::connections::systemBus, match, + [asyncResp, service, objectPath, + certURI](sdbusplus::message::message &m) { + timeout.cancel(); + if (m.is_method_error()) + { + BMCWEB_LOG_ERROR << "Dbus method error!!!"; + messages::internalError(asyncResp->res); + return; + } + std::vector>>>> + interfacesProperties; + sdbusplus::message::object_path csrObjectPath; + m.read(csrObjectPath, interfacesProperties); + BMCWEB_LOG_DEBUG << "CSR object added" << csrObjectPath.str; + for (auto &interface : interfacesProperties) + { + if (interface.first == "xyz.openbmc_project.Certs.CSR") + { + getCSR(asyncResp, certURI, service, objectPath, + csrObjectPath.str); + break; + } + } + }); + crow::connections::systemBus->async_method_call( + [asyncResp](const boost::system::error_code &ec, + const std::string &path) { + if (ec) + { + BMCWEB_LOG_ERROR << "DBUS response error: " << ec.message(); + messages::internalError(asyncResp->res); + return; + } + }, + service, objectPath, "xyz.openbmc_project.Certs.CSR.Create", + "GenerateCSR", *optAlternativeNames, *optChallengePassword, city, + commonName, *optContactPerson, country, *optEmail, *optGivenName, + *optInitials, *optKeyBitLength, *optKeyCurveId, + *optKeyPairAlgorithm, *optKeyUsage, organization, + organizationalUnit, state, *optSurname, *optUnstructuredName); + } +}; // CertificateActionGenerateCSR + +/** + * @brief Parse and update Certficate Issue/Subject property + * + * @param[in] asyncResp Shared pointer to the response message + * @param[in] str Issuer/Subject value in key=value pairs + * @param[in] type Issuer/Subject + * @return None + */ +static void updateCertIssuerOrSubject(nlohmann::json &out, + const std::string_view value) +{ + // example: O=openbmc-project.xyz,CN=localhost + std::string_view::iterator i = value.begin(); + while (i != value.end()) + { + std::string_view::iterator tokenBegin = i; + while (i != value.end() && *i != '=') + { + i++; + } + if (i == value.end()) + { + break; + } + const std::string_view key(tokenBegin, + static_cast(i - tokenBegin)); + i++; + tokenBegin = i; + while (i != value.end() && *i != ',') + { + i++; + } + const std::string_view val(tokenBegin, + static_cast(i - tokenBegin)); + if (key == "L") + { + out["City"] = val; + } + else if (key == "CN") + { + out["CommonName"] = val; + } + else if (key == "C") + { + out["Country"] = val; + } + else if (key == "O") + { + out["Organization"] = val; + } + else if (key == "OU") + { + out["OrganizationalUnit"] = val; + } + else if (key == "ST") + { + out["State"] = val; + } + // skip comma character + if (i != value.end()) + { + i++; + } + } +} + +/** + * @brief Retrieve the certificates properties and append to the response + * message + * + * @param[in] asyncResp Shared pointer to the response message + * @param[in] objectPath Path of the D-Bus service object + * @param[in] certId Id of the certificate + * @param[in] certURL URL of the certificate object + * @param[in] name name of the certificate + * @return None + */ +static void getCertificateProperties( + const std::shared_ptr &asyncResp, const std::string &objectPath, + const std::string &service, long certId, const std::string &certURL, + const std::string &name) +{ + using PropertyType = + std::variant>; + using PropertiesMap = boost::container::flat_map; + BMCWEB_LOG_DEBUG << "getCertificateProperties Path=" << objectPath + << " certId=" << certId << " certURl=" << certURL; + crow::connections::systemBus->async_method_call( + [asyncResp, certURL, certId, name](const boost::system::error_code ec, + const PropertiesMap &properties) { + if (ec) + { + BMCWEB_LOG_ERROR << "DBUS response error: " << ec; + messages::resourceNotFound(asyncResp->res, name, + std::to_string(certId)); + return; + } + asyncResp->res.jsonValue = { + {"@odata.id", certURL}, + {"@odata.type", "#Certificate.v1_0_0.Certificate"}, + {"@odata.context", + "/redfish/v1/$metadata#Certificate.Certificate"}, + {"Id", std::to_string(certId)}, + {"Name", name}, + {"Description", name}}; + for (const auto &property : properties) + { + if (property.first == "CertificateString") + { + asyncResp->res.jsonValue["CertificateString"] = ""; + const std::string *value = + std::get_if(&property.second); + if (value) + { + asyncResp->res.jsonValue["CertificateString"] = *value; + } + } + else if (property.first == "KeyUsage") + { + nlohmann::json &keyUsage = + asyncResp->res.jsonValue["KeyUsage"]; + keyUsage = nlohmann::json::array(); + const std::vector *value = + std::get_if>(&property.second); + if (value) + { + for (const std::string &usage : *value) + { + keyUsage.push_back(usage); + } + } + } + else if (property.first == "Issuer") + { + const std::string *value = + std::get_if(&property.second); + if (value) + { + updateCertIssuerOrSubject( + asyncResp->res.jsonValue["Issuer"], *value); + } + } + else if (property.first == "Subject") + { + const std::string *value = + std::get_if(&property.second); + if (value) + { + updateCertIssuerOrSubject( + asyncResp->res.jsonValue["Subject"], *value); + } + } + else if (property.first == "ValidNotAfter") + { + const uint64_t *value = + std::get_if(&property.second); + if (value) + { + std::time_t time = static_cast(*value); + asyncResp->res.jsonValue["ValidNotAfter"] = + crow::utility::getDateTime(time); + } + } + else if (property.first == "ValidNotBefore") + { + const uint64_t *value = + std::get_if(&property.second); + if (value) + { + std::time_t time = static_cast(*value); + asyncResp->res.jsonValue["ValidNotBefore"] = + crow::utility::getDateTime(time); + } + } + } + asyncResp->res.addHeader("Location", certURL); + }, + service, objectPath, certs::dbusPropIntf, "GetAll", + certs::certPropIntf); +} + +using GetObjectType = + std::vector>>; + +/** + * Action to replace an existing certificate + */ +class CertificateActionsReplaceCertificate : public Node +{ + public: + CertificateActionsReplaceCertificate(CrowApp &app) : + Node(app, "/redfish/v1/CertificateService/Actions/" + "CertificateService.ReplaceCertificate/") + { + entityPrivileges = { + {boost::beast::http::verb::get, {{"Login"}}}, + {boost::beast::http::verb::head, {{"Login"}}}, + {boost::beast::http::verb::patch, {{"ConfigureComponents"}}}, + {boost::beast::http::verb::put, {{"ConfigureComponents"}}}, + {boost::beast::http::verb::delete_, {{"ConfigureComponents"}}}, + {boost::beast::http::verb::post, {{"ConfigureComponents"}}}}; + } + + private: + void doPost(crow::Response &res, const crow::Request &req, + const std::vector ¶ms) override + { + std::string certificate; + nlohmann::json certificateUri; + std::optional certificateType = "PEM"; + auto asyncResp = std::make_shared(res); + if (!json_util::readJson(req, asyncResp->res, "CertificateString", + certificate, "CertificateUri", certificateUri, + "CertificateType", certificateType)) + { + BMCWEB_LOG_ERROR << "Required parameters are missing"; + messages::internalError(asyncResp->res); + return; + } + + if (!certificateType) + { + // should never happen, but it never hurts to be paranoid. + return; + } + if (certificateType != "PEM") + { + messages::actionParameterNotSupported( + asyncResp->res, "CertificateType", "ReplaceCertificate"); + return; + } + + std::string certURI; + if (!redfish::json_util::readJson(certificateUri, asyncResp->res, + "@odata.id", certURI)) + { + messages::actionParameterMissing( + asyncResp->res, "ReplaceCertificate", "CertificateUri"); + return; + } + + BMCWEB_LOG_INFO << "Certificate URI to replace" << certURI; + long id = getIDFromURL(certURI); + if (id < 0) + { + messages::actionParameterValueFormatError(asyncResp->res, certURI, + "CertificateUri", + "ReplaceCertificate"); + return; + } + std::string objectPath; + std::string name; + std::string service; + if (boost::starts_with( + certURI, + "/redfish/v1/Managers/bmc/NetworkProtocol/HTTPS/Certificates/")) + { + objectPath = + std::string(certs::httpsObjectPath) + "/" + std::to_string(id); + name = "HTTPS certificate"; + service = certs::httpsServiceName; + } + else if (boost::starts_with( + certURI, "/redfish/v1/AccountService/LDAP/Certificates/")) + { + objectPath = + std::string(certs::ldapObjectPath) + "/" + std::to_string(id); + name = "LDAP certificate"; + service = certs::ldapServiceName; + } + else if (boost::starts_with( + certURI, + "/redfish/v1/Managers/bmc/Truststore/Certificates/")) + { + objectPath = std::string(certs::authorityObjectPath) + "/" + + std::to_string(id); + name = "TrustStore certificate"; + service = certs::authorityServiceName; + } + else + { + messages::actionParameterNotSupported( + asyncResp->res, "CertificateUri", "ReplaceCertificate"); + return; + } + + std::shared_ptr certFile = + std::make_shared(certificate); + crow::connections::systemBus->async_method_call( + [asyncResp, certFile, objectPath, service, certURI, id, + name](const boost::system::error_code ec) { + if (ec) + { + BMCWEB_LOG_ERROR << "DBUS response error: " << ec; + messages::resourceNotFound(asyncResp->res, name, + std::to_string(id)); + return; + } + getCertificateProperties(asyncResp, objectPath, service, id, + certURI, name); + BMCWEB_LOG_DEBUG << "HTTPS certificate install file=" + << certFile->getCertFilePath(); + }, + service, objectPath, certs::certReplaceIntf, "Replace", + certFile->getCertFilePath()); + } +}; // CertificateActionsReplaceCertificate + +/** + * Certificate resource describes a certificate used to prove the identity + * of a component, account or service. + */ +class HTTPSCertificate : public Node +{ + public: + template + HTTPSCertificate(CrowApp &app) : + Node(app, + "/redfish/v1/Managers/bmc/NetworkProtocol/HTTPS/Certificates/" + "/", + std::string()) + { + entityPrivileges = { + {boost::beast::http::verb::get, {{"Login"}}}, + {boost::beast::http::verb::head, {{"Login"}}}, + {boost::beast::http::verb::patch, {{"ConfigureComponents"}}}, + {boost::beast::http::verb::put, {{"ConfigureComponents"}}}, + {boost::beast::http::verb::delete_, {{"ConfigureComponents"}}}, + {boost::beast::http::verb::post, {{"ConfigureComponents"}}}}; + } + + void doGet(crow::Response &res, const crow::Request &req, + const std::vector ¶ms) override + { + auto asyncResp = std::make_shared(res); + if (params.size() != 1) + { + messages::internalError(asyncResp->res); + return; + } + long id = getIDFromURL(req.url); + + BMCWEB_LOG_DEBUG << "HTTPSCertificate::doGet ID=" << std::to_string(id); + std::string certURL = + "/redfish/v1/Managers/bmc/NetworkProtocol/HTTPS/Certificates/" + + std::to_string(id); + std::string objectPath = certs::httpsObjectPath; + objectPath += "/"; + objectPath += std::to_string(id); + getCertificateProperties(asyncResp, objectPath, certs::httpsServiceName, + id, certURL, "HTTPS Certificate"); + } + +}; // namespace redfish + +/** + * Collection of HTTPS certificates + */ +class HTTPSCertificateCollection : public Node +{ + public: + template + HTTPSCertificateCollection(CrowApp &app) : + Node(app, + "/redfish/v1/Managers/bmc/NetworkProtocol/HTTPS/Certificates/") + { + entityPrivileges = { + {boost::beast::http::verb::get, {{"Login"}}}, + {boost::beast::http::verb::head, {{"Login"}}}, + {boost::beast::http::verb::patch, {{"ConfigureComponents"}}}, + {boost::beast::http::verb::put, {{"ConfigureComponents"}}}, + {boost::beast::http::verb::delete_, {{"ConfigureComponents"}}}, + {boost::beast::http::verb::post, {{"ConfigureComponents"}}}}; + } + void doGet(crow::Response &res, const crow::Request &req, + const std::vector ¶ms) override + { + res.jsonValue = { + {"@odata.id", + "/redfish/v1/Managers/bmc/NetworkProtocol/HTTPS/Certificates"}, + {"@odata.type", "#CertificateCollection.CertificateCollection"}, + {"@odata.context", + "/redfish/v1/" + "$metadata#CertificateCollection.CertificateCollection"}, + {"Name", "HTTPS Certificates Collection"}, + {"Description", "A Collection of HTTPS certificate instances"}}; + auto asyncResp = std::make_shared(res); + crow::connections::systemBus->async_method_call( + [asyncResp](const boost::system::error_code ec, + const ManagedObjectType &certs) { + if (ec) + { + BMCWEB_LOG_ERROR << "DBUS response error: " << ec; + messages::internalError(asyncResp->res); + return; + } + nlohmann::json &members = asyncResp->res.jsonValue["Members"]; + members = nlohmann::json::array(); + for (const auto &cert : certs) + { + long id = getIDFromURL(cert.first.str); + if (id >= 0) + { + members.push_back( + {{"@odata.id", + "/redfish/v1/Managers/bmc/" + "NetworkProtocol/HTTPS/Certificates/" + + std::to_string(id)}}); + } + } + asyncResp->res.jsonValue["Members@odata.count"] = + members.size(); + }, + certs::httpsServiceName, certs::httpsObjectPath, + certs::dbusObjManagerIntf, "GetManagedObjects"); + } + + void doPost(crow::Response &res, const crow::Request &req, + const std::vector ¶ms) override + { + BMCWEB_LOG_DEBUG << "HTTPSCertificateCollection::doPost"; + auto asyncResp = std::make_shared(res); + asyncResp->res.jsonValue = {{"Name", "HTTPS Certificate"}, + {"Description", "HTTPS Certificate"}}; + + std::string certFileBody = getCertificateFromReqBody(asyncResp, req); + + if (certFileBody.empty()) + { + BMCWEB_LOG_ERROR << "Cannot get certificate from request body."; + messages::unrecognizedRequestBody(asyncResp->res); + return; + } + + std::shared_ptr certFile = + std::make_shared(certFileBody); + + crow::connections::systemBus->async_method_call( + [asyncResp, certFile](const boost::system::error_code ec, + const std::string &objectPath) { + if (ec) + { + BMCWEB_LOG_ERROR << "DBUS response error: " << ec; + messages::internalError(asyncResp->res); + return; + } + long certId = getIDFromURL(objectPath); + if (certId < 0) + { + BMCWEB_LOG_ERROR << "Invalid objectPath value" + << objectPath; + messages::internalError(asyncResp->res); + return; + } + std::string certURL = + "/redfish/v1/Managers/bmc/NetworkProtocol/HTTPS/" + "Certificates/" + + std::to_string(certId); + getCertificateProperties(asyncResp, objectPath, + certs::httpsServiceName, certId, + certURL, "HTTPS Certificate"); + BMCWEB_LOG_DEBUG << "HTTPS certificate install file=" + << certFile->getCertFilePath(); + }, + certs::httpsServiceName, certs::httpsObjectPath, + certs::certInstallIntf, "Install", certFile->getCertFilePath()); + } +}; // HTTPSCertificateCollection + +/** + * The certificate location schema defines a resource that an administrator + * can use in order to locate all certificates installed on a given service. + */ +class CertificateLocations : public Node +{ + public: + template + CertificateLocations(CrowApp &app) : + Node(app, "/redfish/v1/CertificateService/CertificateLocations/") + { + entityPrivileges = { + {boost::beast::http::verb::get, {{"Login"}}}, + {boost::beast::http::verb::head, {{"Login"}}}, + {boost::beast::http::verb::patch, {{"ConfigureComponents"}}}, + {boost::beast::http::verb::put, {{"ConfigureComponents"}}}, + {boost::beast::http::verb::delete_, {{"ConfigureComponents"}}}, + {boost::beast::http::verb::post, {{"ConfigureComponents"}}}}; + } + + private: + void doGet(crow::Response &res, const crow::Request &req, + const std::vector ¶ms) override + { + res.jsonValue = { + {"@odata.id", + "/redfish/v1/CertificateService/CertificateLocations"}, + {"@odata.type", + "#CertificateLocations.v1_0_0.CertificateLocations"}, + {"@odata.context", + "/redfish/v1/$metadata#CertificateLocations.CertificateLocations"}, + {"Name", "Certificate Locations"}, + {"Id", "CertificateLocations"}, + {"Description", + "Defines a resource that an administrator can use in order to " + "locate all certificates installed on a given service"}}; + auto asyncResp = std::make_shared(res); + nlohmann::json &links = + asyncResp->res.jsonValue["Links"]["Certificates"]; + links = nlohmann::json::array(); + getCertificateLocations( + asyncResp, + "/redfish/v1/Managers/bmc/NetworkProtocol/HTTPS/Certificates/", + certs::httpsObjectPath, certs::httpsServiceName); + getCertificateLocations(asyncResp, + "/redfish/v1/AccountService/LDAP/Certificates/", + certs::ldapObjectPath, certs::ldapServiceName); + getCertificateLocations( + asyncResp, "/redfish/v1/Managers/bmc/Truststore/Certificates/", + certs::authorityObjectPath, certs::authorityServiceName); + } + /** + * @brief Retrieve the certificates installed list and append to the + * response + * + * @param[in] asyncResp Shared pointer to the response message + * @param[in] certURL Path of the certificate object + * @param[in] path Path of the D-Bus service object + * @return None + */ + void getCertificateLocations(std::shared_ptr &asyncResp, + const std::string &certURL, + const std::string &path, + const std::string &service) + { + BMCWEB_LOG_DEBUG << "getCertificateLocations URI=" << certURL + << " Path=" << path << " service= " << service; + crow::connections::systemBus->async_method_call( + [asyncResp, certURL](const boost::system::error_code ec, + const ManagedObjectType &certs) { + if (ec) + { + BMCWEB_LOG_ERROR << "DBUS response error: " << ec; + messages::internalError(asyncResp->res); + return; + } + nlohmann::json &links = + asyncResp->res.jsonValue["Links"]["Certificates"]; + for (auto &cert : certs) + { + long id = getIDFromURL(cert.first.str); + if (id >= 0) + { + links.push_back( + {{"@odata.id", certURL + std::to_string(id)}}); + } + } + asyncResp->res.jsonValue["Links"]["Certificates@odata.count"] = + links.size(); + }, + service, path, certs::dbusObjManagerIntf, "GetManagedObjects"); + } +}; // CertificateLocations + +/** + * Collection of LDAP certificates + */ +class LDAPCertificateCollection : public Node +{ + public: + template + LDAPCertificateCollection(CrowApp &app) : + Node(app, "/redfish/v1/AccountService/LDAP/Certificates/") + { + entityPrivileges = { + {boost::beast::http::verb::get, {{"Login"}}}, + {boost::beast::http::verb::head, {{"Login"}}}, + {boost::beast::http::verb::patch, {{"ConfigureComponents"}}}, + {boost::beast::http::verb::put, {{"ConfigureComponents"}}}, + {boost::beast::http::verb::delete_, {{"ConfigureComponents"}}}, + {boost::beast::http::verb::post, {{"ConfigureComponents"}}}}; + } + void doGet(crow::Response &res, const crow::Request &req, + const std::vector ¶ms) override + { + res.jsonValue = { + {"@odata.id", "/redfish/v1/AccountService/LDAP/Certificates"}, + {"@odata.type", "#CertificateCollection.CertificateCollection"}, + {"@odata.context", + "/redfish/v1/" + "$metadata#CertificateCollection.CertificateCollection"}, + {"Name", "LDAP Certificates Collection"}, + {"Description", "A Collection of LDAP certificate instances"}}; + auto asyncResp = std::make_shared(res); + crow::connections::systemBus->async_method_call( + [asyncResp](const boost::system::error_code ec, + const ManagedObjectType &certs) { + if (ec) + { + BMCWEB_LOG_ERROR << "DBUS response error: " << ec; + messages::internalError(asyncResp->res); + return; + } + nlohmann::json &members = asyncResp->res.jsonValue["Members"]; + members = nlohmann::json::array(); + for (const auto &cert : certs) + { + long id = getIDFromURL(cert.first.str); + if (id >= 0) + { + members.push_back( + {{"@odata.id", "/redfish/v1/AccountService/" + "LDAP/Certificates/" + + std::to_string(id)}}); + } + } + asyncResp->res.jsonValue["Members@odata.count"] = + members.size(); + }, + certs::ldapServiceName, certs::ldapObjectPath, + certs::dbusObjManagerIntf, "GetManagedObjects"); + } + + void doPost(crow::Response &res, const crow::Request &req, + const std::vector ¶ms) override + { + auto asyncResp = std::make_shared(res); + std::string certFileBody = getCertificateFromReqBody(asyncResp, req); + + if (certFileBody.empty()) + { + BMCWEB_LOG_ERROR << "Cannot get certificate from request body."; + messages::unrecognizedRequestBody(asyncResp->res); + return; + } + + std::shared_ptr certFile = + std::make_shared(certFileBody); + + crow::connections::systemBus->async_method_call( + [asyncResp, certFile](const boost::system::error_code ec, + const std::string &objectPath) { + if (ec) + { + BMCWEB_LOG_ERROR << "DBUS response error: " << ec; + messages::internalError(asyncResp->res); + return; + } + long certId = getIDFromURL(objectPath); + if (certId < 0) + { + BMCWEB_LOG_ERROR << "Invalid objectPath value" + << objectPath; + messages::internalError(asyncResp->res); + return; + } + std::string certURL = + "/redfish/v1/AccountService/LDAP/Certificates/" + + std::to_string(certId); + getCertificateProperties(asyncResp, objectPath, + certs::ldapServiceName, certId, + certURL, "LDAP Certificate"); + BMCWEB_LOG_DEBUG << "LDAP certificate install file=" + << certFile->getCertFilePath(); + }, + certs::ldapServiceName, certs::ldapObjectPath, + certs::certInstallIntf, "Install", certFile->getCertFilePath()); + } +}; // LDAPCertificateCollection + +/** + * Certificate resource describes a certificate used to prove the identity + * of a component, account or service. + */ +class LDAPCertificate : public Node +{ + public: + template + LDAPCertificate(CrowApp &app) : + Node(app, "/redfish/v1/AccountService/LDAP/Certificates//", + std::string()) + { + entityPrivileges = { + {boost::beast::http::verb::get, {{"Login"}}}, + {boost::beast::http::verb::head, {{"Login"}}}, + {boost::beast::http::verb::patch, {{"ConfigureComponents"}}}, + {boost::beast::http::verb::put, {{"ConfigureComponents"}}}, + {boost::beast::http::verb::delete_, {{"ConfigureComponents"}}}, + {boost::beast::http::verb::post, {{"ConfigureComponents"}}}}; + } + + void doGet(crow::Response &res, const crow::Request &req, + const std::vector ¶ms) override + { + auto asyncResp = std::make_shared(res); + long id = getIDFromURL(req.url); + if (id < 0) + { + BMCWEB_LOG_ERROR << "Invalid url value" << req.url; + messages::internalError(asyncResp->res); + return; + } + BMCWEB_LOG_DEBUG << "LDAP Certificate ID=" << std::to_string(id); + std::string certURL = "/redfish/v1/AccountService/LDAP/Certificates/" + + std::to_string(id); + std::string objectPath = certs::ldapObjectPath; + objectPath += "/"; + objectPath += std::to_string(id); + getCertificateProperties(asyncResp, objectPath, certs::ldapServiceName, + id, certURL, "LDAP Certificate"); + } +}; // LDAPCertificate +/** + * Collection of TrustStoreCertificate certificates + */ +class TrustStoreCertificateCollection : public Node +{ + public: + template + TrustStoreCertificateCollection(CrowApp &app) : + Node(app, "/redfish/v1/Managers/bmc/Truststore/Certificates/") + { + entityPrivileges = { + {boost::beast::http::verb::get, {{"Login"}}}, + {boost::beast::http::verb::head, {{"Login"}}}, + {boost::beast::http::verb::patch, {{"ConfigureComponents"}}}, + {boost::beast::http::verb::put, {{"ConfigureComponents"}}}, + {boost::beast::http::verb::delete_, {{"ConfigureComponents"}}}, + {boost::beast::http::verb::post, {{"ConfigureComponents"}}}}; + } + void doGet(crow::Response &res, const crow::Request &req, + const std::vector ¶ms) override + { + res.jsonValue = { + {"@odata.id", "/redfish/v1/Managers/bmc/Truststore/Certificates/"}, + {"@odata.type", "#CertificateCollection.CertificateCollection"}, + {"@odata.context", + "/redfish/v1/" + "$metadata#CertificateCollection.CertificateCollection"}, + {"Name", "TrustStore Certificates Collection"}, + {"Description", + "A Collection of TrustStore certificate instances"}}; + auto asyncResp = std::make_shared(res); + crow::connections::systemBus->async_method_call( + [asyncResp](const boost::system::error_code ec, + const ManagedObjectType &certs) { + if (ec) + { + BMCWEB_LOG_ERROR << "DBUS response error: " << ec; + messages::internalError(asyncResp->res); + return; + } + nlohmann::json &members = asyncResp->res.jsonValue["Members"]; + members = nlohmann::json::array(); + for (const auto &cert : certs) + { + long id = getIDFromURL(cert.first.str); + if (id >= 0) + { + members.push_back( + {{"@odata.id", "/redfish/v1/Managers/bmc/" + "Truststore/Certificates/" + + std::to_string(id)}}); + } + } + asyncResp->res.jsonValue["Members@odata.count"] = + members.size(); + }, + certs::authorityServiceName, certs::authorityObjectPath, + certs::dbusObjManagerIntf, "GetManagedObjects"); + } + + void doPost(crow::Response &res, const crow::Request &req, + const std::vector ¶ms) override + { + auto asyncResp = std::make_shared(res); + std::string certFileBody = getCertificateFromReqBody(asyncResp, req); + + if (certFileBody.empty()) + { + BMCWEB_LOG_ERROR << "Cannot get certificate from request body."; + messages::unrecognizedRequestBody(asyncResp->res); + return; + } + + std::shared_ptr certFile = + std::make_shared(certFileBody); + crow::connections::systemBus->async_method_call( + [asyncResp, certFile](const boost::system::error_code ec, + const std::string &objectPath) { + if (ec) + { + BMCWEB_LOG_ERROR << "DBUS response error: " << ec; + messages::internalError(asyncResp->res); + return; + } + long certId = getIDFromURL(objectPath); + if (certId < 0) + { + BMCWEB_LOG_ERROR << "Invalid objectPath value" + << objectPath; + messages::internalError(asyncResp->res); + return; + } + std::string certURL = "/redfish/v1/Managers/bmc/" + "Truststore/Certificates/" + + std::to_string(certId); + + getCertificateProperties(asyncResp, objectPath, + certs::authorityServiceName, certId, + certURL, "TrustStore Certificate"); + BMCWEB_LOG_DEBUG << "TrustStore certificate install file=" + << certFile->getCertFilePath(); + }, + certs::authorityServiceName, certs::authorityObjectPath, + certs::certInstallIntf, "Install", certFile->getCertFilePath()); + } +}; // TrustStoreCertificateCollection + +/** + * Certificate resource describes a certificate used to prove the identity + * of a component, account or service. + */ +class TrustStoreCertificate : public Node +{ + public: + template + TrustStoreCertificate(CrowApp &app) : + Node(app, "/redfish/v1/Managers/bmc/Truststore/Certificates//", + std::string()) + { + entityPrivileges = { + {boost::beast::http::verb::get, {{"Login"}}}, + {boost::beast::http::verb::head, {{"Login"}}}, + {boost::beast::http::verb::patch, {{"ConfigureComponents"}}}, + {boost::beast::http::verb::put, {{"ConfigureComponents"}}}, + {boost::beast::http::verb::delete_, {{"ConfigureComponents"}}}, + {boost::beast::http::verb::post, {{"ConfigureComponents"}}}}; + } + + void doGet(crow::Response &res, const crow::Request &req, + const std::vector ¶ms) override + { + auto asyncResp = std::make_shared(res); + long id = getIDFromURL(req.url); + if (id < 0) + { + BMCWEB_LOG_ERROR << "Invalid url value" << req.url; + messages::internalError(asyncResp->res); + return; + } + BMCWEB_LOG_DEBUG << "TrustStoreCertificate::doGet ID=" + << std::to_string(id); + std::string certURL = + "/redfish/v1/Managers/bmc/Truststore/Certificates/" + + std::to_string(id); + std::string objectPath = certs::authorityObjectPath; + objectPath += "/"; + objectPath += std::to_string(id); + getCertificateProperties(asyncResp, objectPath, + certs::authorityServiceName, id, certURL, + "TrustStore Certificate"); + } + + void doDelete(crow::Response &res, const crow::Request &req, + const std::vector ¶ms) override + { + auto asyncResp = std::make_shared(res); + + if (params.size() != 1) + { + messages::internalError(asyncResp->res); + return; + } + + long id = getIDFromURL(req.url); + if (id < 0) + { + BMCWEB_LOG_ERROR << "Invalid url value: " << req.url; + messages::resourceNotFound(asyncResp->res, "TrustStore Certificate", + std::string(req.url)); + return; + } + BMCWEB_LOG_DEBUG << "TrustStoreCertificate::doDelete ID=" + << std::to_string(id); + std::string certPath = certs::authorityObjectPath; + certPath += "/"; + certPath += std::to_string(id); + + crow::connections::systemBus->async_method_call( + [asyncResp, id](const boost::system::error_code ec) { + if (ec) + { + messages::resourceNotFound(asyncResp->res, + "TrustStore Certificate", + std::to_string(id)); + return; + } + BMCWEB_LOG_INFO << "Certificate deleted"; + asyncResp->res.result(boost::beast::http::status::no_content); + }, + certs::authorityServiceName, certPath, certs::objDeleteIntf, + "Delete"); + } +}; // TrustStoreCertificate +} // namespace redfish diff --git a/Contrib-Inspur/bmcweb/redfish-core/lib/chassis.hpp b/Contrib-Inspur/bmcweb/redfish-core/lib/chassis.hpp index 821c7b3e..59987fb0 100644 --- a/Contrib-Inspur/bmcweb/redfish-core/lib/chassis.hpp +++ b/Contrib-Inspur/bmcweb/redfish-core/lib/chassis.hpp @@ -15,6 +15,8 @@ */ #pragma once +#include "health.hpp" +#include "led.hpp" #include "node.hpp" #include @@ -23,6 +25,50 @@ namespace redfish { +/** + * @brief Retrieves chassis state properties over dbus + * + * @param[in] aResp - Shared pointer for completing asynchronous calls. + * + * @return None. + */ +void getChassisState(std::shared_ptr aResp) +{ + crow::connections::systemBus->async_method_call( + [aResp{std::move(aResp)}]( + const boost::system::error_code ec, + const std::variant &chassisState) { + if (ec) + { + BMCWEB_LOG_DEBUG << "DBUS response error " << ec; + messages::internalError(aResp->res); + return; + } + + const std::string *s = std::get_if(&chassisState); + BMCWEB_LOG_DEBUG << "Chassis state: " << *s; + if (s != nullptr) + { + // Verify Chassis State + if (*s == "xyz.openbmc_project.State.Chassis.PowerState.On") + { + aResp->res.jsonValue["PowerState"] = "On"; + aResp->res.jsonValue["Status"]["State"] = "Enabled"; + } + else if (*s == + "xyz.openbmc_project.State.Chassis.PowerState.Off") + { + aResp->res.jsonValue["PowerState"] = "Off"; + aResp->res.jsonValue["Status"]["State"] = "StandbyOffline"; + } + } + }, + "xyz.openbmc_project.State.Chassis", + "/xyz/openbmc_project/state/chassis0", + "org.freedesktop.DBus.Properties", "Get", + "xyz.openbmc_project.State.Chassis", "CurrentPowerState"); +} + /** * DBus types primitives for several generic DBus interfaces * TODO(Pawel) consider move this to separate file into boost::dbus @@ -30,7 +76,7 @@ namespace redfish // Note, this is not a very useful Variant, but because it isn't used to get // values, it should be as simple as possible // TODO(ed) invent a nullvariant type -using VariantType = std::variant; +using VariantType = std::variant; using ManagedObjectsType = std::vector; +void getIntrusionByService(std::shared_ptr aResp, + const std::string &service, + const std::string &objPath) +{ + BMCWEB_LOG_DEBUG << "Get intrusion status by service \n"; + + crow::connections::systemBus->async_method_call( + [aResp{std::move(aResp)}](const boost::system::error_code ec, + const std::variant &value) { + if (ec) + { + // do not add err msg in redfish response, becaues this is not + // mandatory property + BMCWEB_LOG_ERROR << "DBUS response error " << ec << "\n"; + return; + } + + const std::string *status = std::get_if(&value); + + if (status == nullptr) + { + BMCWEB_LOG_ERROR << "intrusion status read error \n"; + return; + } + + aResp->res.jsonValue["PhysicalSecurity"] = { + {"IntrusionSensorNumber", 1}, {"IntrusionSensor", *status}}; + }, + service, objPath, "org.freedesktop.DBus.Properties", "Get", + "xyz.openbmc_project.Chassis.Intrusion", "Status"); +} + +/** + * Retrieves physical security properties over dbus + */ +void getPhysicalSecurityData(std::shared_ptr aResp) +{ + crow::connections::systemBus->async_method_call( + [aResp{std::move(aResp)}]( + const boost::system::error_code ec, + const std::vector>>>> + &subtree) { + if (ec) + { + // do not add err msg in redfish response, becaues this is not + // mandatory property + BMCWEB_LOG_ERROR << "DBUS error: no matched iface " << ec + << "\n"; + return; + } + // Iterate over all retrieved ObjectPaths. + for (const auto &object : subtree) + { + for (const auto &service : object.second) + { + getIntrusionByService(aResp, service.first, object.first); + return; + } + } + }, + "xyz.openbmc_project.ObjectMapper", + "/xyz/openbmc_project/object_mapper", + "xyz.openbmc_project.ObjectMapper", "GetSubTree", + "/xyz/openbmc_project/Intrusion", 1, + std::array{"xyz.openbmc_project.Chassis.Intrusion"}); +} + /** * ChassisCollection derived class for delivering Chassis Collection Schema */ @@ -62,16 +177,16 @@ class ChassisCollection : public Node void doGet(crow::Response &res, const crow::Request &req, const std::vector ¶ms) override { - const std::array interfaces = { - "xyz.openbmc_project.Inventory.Item.Board", - "xyz.openbmc_project.Inventory.Item.Chassis", - "xyz.openbmc_project.Inventory.Item.PowerSupply"}; res.jsonValue["@odata.type"] = "#ChassisCollection.ChassisCollection"; res.jsonValue["@odata.id"] = "/redfish/v1/Chassis"; res.jsonValue["@odata.context"] = "/redfish/v1/$metadata#ChassisCollection.ChassisCollection"; res.jsonValue["Name"] = "Chassis Collection"; + const std::array interfaces = { + "xyz.openbmc_project.Inventory.Item.Board", + "xyz.openbmc_project.Inventory.Item.Chassis"}; + auto asyncResp = std::make_shared(res); crow::connections::systemBus->async_method_call( [asyncResp](const boost::system::error_code ec, @@ -103,7 +218,7 @@ class ChassisCollection : public Node "xyz.openbmc_project.ObjectMapper", "/xyz/openbmc_project/object_mapper", "xyz.openbmc_project.ObjectMapper", "GetSubTreePaths", - "/xyz/openbmc_project/inventory", int32_t(0), interfaces); + "/xyz/openbmc_project/inventory", 0, interfaces); } }; @@ -132,10 +247,9 @@ class Chassis : public Node void doGet(crow::Response &res, const crow::Request &req, const std::vector ¶ms) override { - const std::array interfaces = { + const std::array interfaces = { "xyz.openbmc_project.Inventory.Item.Board", - "xyz.openbmc_project.Inventory.Item.Chassis", - "xyz.openbmc_project.Inventory.Item.PowerSupply"}; + "xyz.openbmc_project.Inventory.Item.Chassis"}; // Check if there is required param, truly entering this shall be // impossible. @@ -145,24 +259,13 @@ class Chassis : public Node res.end(); return; } - - res.jsonValue["@odata.type"] = "#Chassis.v1_4_0.Chassis"; - res.jsonValue["@odata.id"] = "/redfish/v1/Chassis"; - res.jsonValue["@odata.context"] = - "/redfish/v1/$metadata#Chassis.Chassis"; - res.jsonValue["Name"] = "Chassis Collection"; - res.jsonValue["ChassisType"] = "RackMount"; - res.jsonValue["PowerState"] = "On"; - const std::string &chassisId = params[0]; + auto asyncResp = std::make_shared(res); crow::connections::systemBus->async_method_call( [asyncResp, chassisId(std::string(chassisId))]( const boost::system::error_code ec, - const std::vector>>>> - &subtree) { + const crow::openbmc_mapper::GetSubTreeType &subtree) { if (ec) { messages::internalError(asyncResp->res); @@ -184,15 +287,68 @@ class Chassis : public Node { continue; } + + auto health = std::make_shared(asyncResp); + + crow::connections::systemBus->async_method_call( + [health](const boost::system::error_code ec, + std::variant> &resp) { + if (ec) + { + return; // no sensors = no failures + } + std::vector *data = + std::get_if>(&resp); + if (data == nullptr) + { + return; + } + health->inventory = std::move(*data); + }, + "xyz.openbmc_project.ObjectMapper", + path + "/all_sensors", + "org.freedesktop.DBus.Properties", "Get", + "xyz.openbmc_project.Association", "endpoints"); + + health->populate(); + if (connectionNames.size() < 1) { - BMCWEB_LOG_ERROR << "Only got " - << connectionNames.size() - << " Connection names"; + BMCWEB_LOG_ERROR << "Got 0 Connection names"; continue; } - const std::string connectionName = connectionNames[0].first; + asyncResp->res.jsonValue["@odata.type"] = + "#Chassis.v1_10_0.Chassis"; + asyncResp->res.jsonValue["@odata.id"] = + "/redfish/v1/Chassis/" + chassisId; + asyncResp->res.jsonValue["@odata.context"] = + "/redfish/v1/$metadata#Chassis.Chassis"; + asyncResp->res.jsonValue["Name"] = "Chassis Collection"; + asyncResp->res.jsonValue["ChassisType"] = "RackMount"; + asyncResp->res.jsonValue["PCIeDevices"] = { + {"@odata.id", + "/redfish/v1/Systems/system/PCIeDevices"}}; + + const std::string &connectionName = + connectionNames[0].first; + + const std::vector &interfaces = + connectionNames[0].second; + const std::array hasIndicatorLed = { + "xyz.openbmc_project.Inventory.Item.Panel", + "xyz.openbmc_project.Inventory.Item.Board.Motherboard"}; + + for (const char *interface : hasIndicatorLed) + { + if (std::find(interfaces.begin(), interfaces.end(), + interface) != interfaces.end()) + { + getIndicatorLedState(asyncResp); + break; + } + } + crow::connections::systemBus->async_method_call( [asyncResp, chassisId(std::string(chassisId))]( const boost::system::error_code ec, @@ -201,12 +357,23 @@ class Chassis : public Node for (const std::pair &property : propertiesList) { - const std::string *value = - std::get_if(&property.second); - if (value != nullptr) + // Store DBus properties that are also Redfish + // properties with same name and a string value + const std::string &propertyName = + property.first; + if ((propertyName == "PartNumber") || + (propertyName == "SerialNumber") || + (propertyName == "Manufacturer") || + (propertyName == "Model")) { - asyncResp->res.jsonValue[property.first] = - *value; + const std::string *value = + std::get_if( + &property.second); + if (value != nullptr) + { + asyncResp->res.jsonValue[propertyName] = + *value; + } } } asyncResp->res.jsonValue["Name"] = chassisId; @@ -218,8 +385,11 @@ class Chassis : public Node asyncResp->res.jsonValue["Power"] = { {"@odata.id", "/redfish/v1/Chassis/" + chassisId + "/Power"}}; + // SensorCollection + asyncResp->res.jsonValue["Sensors"] = { + {"@odata.id", "/redfish/v1/Chassis/" + + chassisId + "/Sensors"}}; asyncResp->res.jsonValue["Status"] = { - {"Health", "OK"}, {"State", "Enabled"}, }; @@ -228,6 +398,7 @@ class Chassis : public Node {{"@odata.id", "/redfish/v1/Systems/system"}}}; asyncResp->res.jsonValue["Links"]["ManagedBy"] = { {{"@odata.id", "/redfish/v1/Managers/bmc"}}}; + getChassisState(asyncResp); }, connectionName, path, "org.freedesktop.DBus.Properties", "GetAll", @@ -237,12 +408,116 @@ class Chassis : public Node // Couldn't find an object with that name. return an error messages::resourceNotFound( - asyncResp->res, "#Chassis.v1_4_0.Chassis", chassisId); + asyncResp->res, "#Chassis.v1_10_0.Chassis", chassisId); + }, + "xyz.openbmc_project.ObjectMapper", + "/xyz/openbmc_project/object_mapper", + "xyz.openbmc_project.ObjectMapper", "GetSubTree", + "/xyz/openbmc_project/inventory", 0, interfaces); + + getPhysicalSecurityData(asyncResp); + } + + void doPatch(crow::Response &res, const crow::Request &req, + const std::vector ¶ms) override + { + std::optional indicatorLed; + auto asyncResp = std::make_shared(res); + + if (params.size() != 1) + { + return; + } + + if (!json_util::readJson(req, res, "IndicatorLED", indicatorLed)) + { + return; + } + + if (!indicatorLed) + { + return; // delete this when we support more patch properties + } + + const std::array interfaces = { + "xyz.openbmc_project.Inventory.Item.Board", + "xyz.openbmc_project.Inventory.Item.Chassis"}; + + const std::string &chassisId = params[0]; + + crow::connections::systemBus->async_method_call( + [asyncResp, chassisId, indicatorLed]( + const boost::system::error_code ec, + const crow::openbmc_mapper::GetSubTreeType &subtree) { + if (ec) + { + messages::internalError(asyncResp->res); + return; + } + + // Iterate over all retrieved ObjectPaths. + for (const std::pair< + std::string, + std::vector< + std::pair>>> + &object : subtree) + { + const std::string &path = object.first; + const std::vector< + std::pair>> + &connectionNames = object.second; + + if (!boost::ends_with(path, chassisId)) + { + continue; + } + + if (connectionNames.size() < 1) + { + BMCWEB_LOG_ERROR << "Got 0 Connection names"; + continue; + } + + const std::vector &interfaces = + connectionNames[0].second; + + if (indicatorLed) + { + const std::array hasIndicatorLed = { + "xyz.openbmc_project.Inventory.Item.Panel", + "xyz.openbmc_project.Inventory.Item.Board." + "Motherboard"}; + bool indicatorChassis = false; + for (const char *interface : hasIndicatorLed) + { + if (std::find(interfaces.begin(), interfaces.end(), + interface) != interfaces.end()) + { + indicatorChassis = true; + break; + } + } + if (indicatorChassis) + { + setIndicatorLedState(asyncResp, + std::move(*indicatorLed)); + } + else + { + messages::propertyUnknown(asyncResp->res, + "IndicatorLED"); + } + } + return; + } + + messages::resourceNotFound( + asyncResp->res, "#Chassis.v1_10_0.Chassis", chassisId); }, "xyz.openbmc_project.ObjectMapper", "/xyz/openbmc_project/object_mapper", "xyz.openbmc_project.ObjectMapper", "GetSubTree", - "/xyz/openbmc_project/inventory", int32_t(0), interfaces); + "/xyz/openbmc_project/inventory", 0, interfaces); } }; } // namespace redfish diff --git a/Contrib-Inspur/bmcweb/redfish-core/lib/cpudimm.hpp b/Contrib-Inspur/bmcweb/redfish-core/lib/cpudimm.hpp index 42455953..ce36a0b9 100644 --- a/Contrib-Inspur/bmcweb/redfish-core/lib/cpudimm.hpp +++ b/Contrib-Inspur/bmcweb/redfish-core/lib/cpudimm.hpp @@ -18,14 +18,17 @@ #include #include #include -#include namespace redfish { +using InterfacesProperties = boost::container::flat_map< + std::string, + boost::container::flat_map>; + void getResourceList(std::shared_ptr aResp, const std::string &subclass, - const std::string &collectionName) + const std::vector &collectionName) { BMCWEB_LOG_DEBUG << "Get available system cpu/mem resources."; crow::connections::systemBus->async_method_call( @@ -60,36 +63,24 @@ void getResourceList(std::shared_ptr aResp, "xyz.openbmc_project.ObjectMapper", "/xyz/openbmc_project/object_mapper", "xyz.openbmc_project.ObjectMapper", "GetSubTree", - "/xyz/openbmc_project/inventory", int32_t(0), - std::array{collectionName.c_str()}); + "/xyz/openbmc_project/inventory", 0, collectionName); } -void getCpuDataByService(std::shared_ptr aResp, - const std::string &cpuId, const std::string &service, - const std::string &objPath) +void getCpuDataByInterface(std::shared_ptr aResp, + const InterfacesProperties &cpuInterfacesProperties) { - BMCWEB_LOG_DEBUG << "Get available system cpu resources by service."; - crow::connections::systemBus->async_method_call( - [cpuId, aResp{std::move(aResp)}]( - const boost::system::error_code ec, - const boost::container::flat_map< - std::string, std::variant> - &properties) { - if (ec) - { - BMCWEB_LOG_DEBUG << "DBUS response error"; - messages::internalError(aResp->res); + BMCWEB_LOG_DEBUG << "Get CPU resources by interface."; - return; - } - aResp->res.jsonValue["Id"] = cpuId; - aResp->res.jsonValue["Name"] = "Processor"; - const auto coresCountProperty = - properties.find("ProcessorCoreCount"); - if (coresCountProperty != properties.end()) + const bool *present = nullptr; + const bool *functional = nullptr; + for (const auto &interface : cpuInterfacesProperties) + { + for (const auto &property : interface.second) + { + if (property.first == "ProcessorCoreCount") { const uint16_t *coresCount = - std::get_if(&coresCountProperty->second); + std::get_if(&property.second); if (coresCount == nullptr) { // Important property not in desired type @@ -107,58 +98,225 @@ void getCpuDataByService(std::shared_ptr aResp, aResp->res.jsonValue["TotalCores"] = *coresCount; } + else if (property.first == "ProcessorType") + { + aResp->res.jsonValue["Name"] = property.second; + } + else if (property.first == "Manufacturer") + { + const std::string *value = + std::get_if(&property.second); + if (value != nullptr) + { + aResp->res.jsonValue["Manufacturer"] = property.second; + // Otherwise would be unexpected. + if (value->find("Intel") != std::string::npos) + { + aResp->res.jsonValue["ProcessorArchitecture"] = "x86"; + aResp->res.jsonValue["InstructionSet"] = "x86-64"; + } + else if (value->find("IBM") != std::string::npos) + { + aResp->res.jsonValue["ProcessorArchitecture"] = "Power"; + aResp->res.jsonValue["InstructionSet"] = "PowerISA"; + } + } + } + else if (property.first == "ProcessorMaxSpeed") + { + aResp->res.jsonValue["MaxSpeedMHz"] = property.second; + } + else if (property.first == "ProcessorThreadCount") + { + aResp->res.jsonValue["TotalThreads"] = property.second; + } + else if (property.first == "Model") + { + const std::string *value = + std::get_if(&property.second); + if (value != nullptr) + { + aResp->res.jsonValue["Model"] = *value; + } + } + else if (property.first == "Present") + { + present = std::get_if(&property.second); + } + else if (property.first == "Functional") + { + functional = std::get_if(&property.second); + } + } + } - aResp->res.jsonValue["Status"]["State"] = "Enabled"; + if ((present == nullptr) || (functional == nullptr)) + { + // Important property not in desired type + messages::internalError(aResp->res); + return; + } + + if (*present == false) + { + aResp->res.jsonValue["Status"]["State"] = "Absent"; + aResp->res.jsonValue["Status"]["Health"] = "OK"; + } + else + { + aResp->res.jsonValue["Status"]["State"] = "Enabled"; + if (*functional == true) + { aResp->res.jsonValue["Status"]["Health"] = "OK"; + } + else + { + aResp->res.jsonValue["Status"]["Health"] = "Critical"; + } + } - for (const auto &property : properties) + return; +} + +void getCpuDataByService(std::shared_ptr aResp, + const std::string &cpuId, const std::string &service, + const std::string &objPath) +{ + BMCWEB_LOG_DEBUG << "Get available system cpu resources by service."; + + crow::connections::systemBus->async_method_call( + [cpuId, service, objPath, aResp{std::move(aResp)}]( + const boost::system::error_code ec, + const dbus::utility::ManagedObjectType &dbusData) { + if (ec) { - if (property.first == "ProcessorType") + BMCWEB_LOG_DEBUG << "DBUS response error"; + messages::internalError(aResp->res); + return; + } + aResp->res.jsonValue["Id"] = cpuId; + aResp->res.jsonValue["Name"] = "Processor"; + aResp->res.jsonValue["ProcessorType"] = "CPU"; + + std::string corePath = objPath + "/core"; + size_t totalCores = 0; + for (const auto &object : dbusData) + { + if (object.first.str == objPath) { - aResp->res.jsonValue["Name"] = property.second; + getCpuDataByInterface(aResp, object.second); } - else if (property.first == "ProcessorManufacturer") + else if (boost::starts_with(object.first.str, corePath)) { - aResp->res.jsonValue["Manufacturer"] = property.second; - const std::string *value = - std::get_if(&property.second); - if (value != nullptr) + for (const auto &interface : object.second) { - // Otherwise would be unexpected. - if (value->find("Intel") != std::string::npos) - { - aResp->res.jsonValue["ProcessorArchitecture"] = - "x86"; - aResp->res.jsonValue["InstructionSet"] = "x86-64"; - } - else if (value->find("IBM") != std::string::npos) + if (interface.first == + "xyz.openbmc_project.Inventory.Item") { - aResp->res.jsonValue["ProcessorArchitecture"] = - "Power"; - aResp->res.jsonValue["InstructionSet"] = "PowerISA"; + for (const auto &property : interface.second) + { + if (property.first == "Present") + { + const bool *present = + std::get_if(&property.second); + if (present != nullptr) + { + if (*present == true) + { + totalCores++; + } + } + } + } } } } - else if (property.first == "ProcessorMaxSpeed") - { - aResp->res.jsonValue["MaxSpeedMHz"] = property.second; - } - else if (property.first == "ProcessorThreadCount") + } + // In getCpuDataByInterface(), state and health are set + // based on the present and functional status. If core + // count is zero, then it has a higher precedence. + if (totalCores == 0) + { + // Slot is not populated, set status end return + aResp->res.jsonValue["Status"]["State"] = "Absent"; + aResp->res.jsonValue["Status"]["Health"] = "OK"; + } + aResp->res.jsonValue["TotalCores"] = totalCores; + return; + }, + service, "/xyz/openbmc_project/inventory", + "org.freedesktop.DBus.ObjectManager", "GetManagedObjects"); +} + +void getAcceleratorDataByService(std::shared_ptr aResp, + const std::string &acclrtrId, + const std::string &service, + const std::string &objPath) +{ + BMCWEB_LOG_DEBUG + << "Get available system Accelerator resources by service."; + crow::connections::systemBus->async_method_call( + [acclrtrId, aResp{std::move(aResp)}]( + const boost::system::error_code ec, + const boost::container::flat_map< + std::string, std::variant> &properties) { + if (ec) + { + BMCWEB_LOG_DEBUG << "DBUS response error"; + messages::internalError(aResp->res); + return; + } + aResp->res.jsonValue["Id"] = acclrtrId; + aResp->res.jsonValue["Name"] = "Processor"; + const bool *accPresent = nullptr; + const bool *accFunctional = nullptr; + std::string state = ""; + + for (const auto &property : properties) + { + if (property.first == "Functional") { - aResp->res.jsonValue["TotalThreads"] = property.second; + accFunctional = std::get_if(&property.second); } - else if (property.first == "ProcessorVersion") + else if (property.first == "Present") { - aResp->res.jsonValue["Model"] = property.second; + accPresent = std::get_if(&property.second); } } + + if (!accPresent || !accFunctional) + { + BMCWEB_LOG_DEBUG << "Required properties missing in DBUS " + "response"; + messages::internalError(aResp->res); + return; + } + + if (*accPresent && *accFunctional) + { + state = "Enabled"; + } + else if (*accPresent) + { + state = "UnavailableOffline"; + } + else + { + state = "Absent"; + } + aResp->res.jsonValue["Status"]["State"] = state; + aResp->res.jsonValue["Status"]["Health"] = "OK"; + aResp->res.jsonValue["ProcessorType"] = "Accelerator"; }, service, objPath, "org.freedesktop.DBus.Properties", "GetAll", ""); } -void getCpuData(std::shared_ptr aResp, const std::string &cpuId) +void getCpuData(std::shared_ptr aResp, const std::string &cpuId, + const std::vector inventoryItems) { BMCWEB_LOG_DEBUG << "Get available system cpu resources."; + crow::connections::systemBus->async_method_call( [cpuId, aResp{std::move(aResp)}]( const boost::system::error_code ec, @@ -178,8 +336,19 @@ void getCpuData(std::shared_ptr aResp, const std::string &cpuId) { for (const auto &service : object.second) { - getCpuDataByService(aResp, cpuId, service.first, - object.first); + for (const auto &inventory : service.second) + if (inventory == + "xyz.openbmc_project.Inventory.Item.Cpu") + { + getCpuDataByService(aResp, cpuId, service.first, + object.first); + } + else if (inventory == "xyz.openbmc_project." + "Inventory.Item.Accelerator") + { + getAcceleratorDataByService( + aResp, cpuId, service.first, object.first); + } return; } } @@ -191,9 +360,8 @@ void getCpuData(std::shared_ptr aResp, const std::string &cpuId) "xyz.openbmc_project.ObjectMapper", "/xyz/openbmc_project/object_mapper", "xyz.openbmc_project.ObjectMapper", "GetSubTree", - "/xyz/openbmc_project/inventory", int32_t(0), - std::array{"xyz.openbmc_project.Inventory.Item.Cpu"}); -}; + "/xyz/openbmc_project/inventory", 0, inventoryItems); +} void getDimmDataByService(std::shared_ptr aResp, const std::string &dimmId, const std::string &service, @@ -247,6 +415,18 @@ void getDimmDataByService(std::shared_ptr aResp, { aResp->res.jsonValue["DataWidthBits"] = property.second; } + else if (property.first == "PartNumber") + { + aResp->res.jsonValue["PartNumber"] = property.second; + } + else if (property.first == "SerialNumber") + { + aResp->res.jsonValue["SerialNumber"] = property.second; + } + else if (property.first == "Manufacturer") + { + aResp->res.jsonValue["Manufacturer"] = property.second; + } else if (property.first == "MemoryType") { const auto *value = @@ -301,9 +481,9 @@ void getDimmData(std::shared_ptr aResp, const std::string &dimmId) "xyz.openbmc_project.ObjectMapper", "/xyz/openbmc_project/object_mapper", "xyz.openbmc_project.ObjectMapper", "GetSubTree", - "/xyz/openbmc_project/inventory", int32_t(0), + "/xyz/openbmc_project/inventory", 0, std::array{"xyz.openbmc_project.Inventory.Item.Dimm"}); -}; +} class ProcessorCollection : public Node { @@ -340,7 +520,8 @@ class ProcessorCollection : public Node auto asyncResp = std::make_shared(res); getResourceList(asyncResp, "Processors", - "xyz.openbmc_project.Inventory.Item.Cpu"); + {"xyz.openbmc_project.Inventory.Item.Cpu", + "xyz.openbmc_project.Inventory.Item.Accelerator"}); } }; @@ -378,16 +559,18 @@ class Processor : public Node res.end(); return; } - const std::string &cpuId = params[0]; + const std::string &processorId = params[0]; res.jsonValue["@odata.type"] = "#Processor.v1_3_1.Processor"; res.jsonValue["@odata.context"] = "/redfish/v1/$metadata#Processor.Processor"; res.jsonValue["@odata.id"] = - "/redfish/v1/Systems/system/Processors/" + cpuId; + "/redfish/v1/Systems/system/Processors/" + processorId; auto asyncResp = std::make_shared(res); - getCpuData(asyncResp, cpuId); + getCpuData(asyncResp, processorId, + {"xyz.openbmc_project.Inventory.Item.Cpu", + "xyz.openbmc_project.Inventory.Item.Accelerator"}); } }; @@ -424,7 +607,7 @@ class MemoryCollection : public Node auto asyncResp = std::make_shared(res); getResourceList(asyncResp, "Memory", - "xyz.openbmc_project.Inventory.Item.Dimm"); + {"xyz.openbmc_project.Inventory.Item.Dimm"}); } }; diff --git a/Contrib-Inspur/bmcweb/redfish-core/lib/ethernet.hpp b/Contrib-Inspur/bmcweb/redfish-core/lib/ethernet.hpp index aecfc21f..b6f3baa9 100644 --- a/Contrib-Inspur/bmcweb/redfish-core/lib/ethernet.hpp +++ b/Contrib-Inspur/bmcweb/redfish-core/lib/ethernet.hpp @@ -70,6 +70,21 @@ struct IPv4AddressData } }; +/** + * Structure for keeping IPv6 data required by Redfish + */ +struct IPv6AddressData +{ + std::string id; + std::string address; + std::string origin; + uint8_t prefixLength; + + bool operator<(const IPv6AddressData &obj) const + { + return id < obj.id; + } +}; /** * Structure for keeping basic single Ethernet Interface information * available from DBus @@ -78,11 +93,28 @@ struct EthernetInterfaceData { uint32_t speed; bool auto_neg; + bool DNSEnabled; + bool NTPEnabled; + bool HostNameEnabled; + bool SendHostNameEnabled; + std::string DHCPEnabled; + std::string operatingMode; std::string hostname; std::string default_gateway; + std::string ipv6_default_gateway; std::string mac_address; - std::optional vlan_id; + std::vector vlan_id; std::vector nameservers; + std::vector domainnames; +}; + +struct DHCPParameters +{ + std::optional dhcpv4Enabled; + std::optional useDNSServers; + std::optional useNTPServers; + std::optional useUseDomainName; + std::optional dhcpv6OperatingMode; }; // Helper function that changes bits netmask notation (i.e. /24) @@ -97,6 +129,40 @@ inline std::string getNetmask(unsigned int bits) return netmask; } +inline bool translateDHCPEnabledToBool(const std::string &inputDHCP, + bool isIPv4) +{ + if (isIPv4) + { + return ( + (inputDHCP == + "xyz.openbmc_project.Network.EthernetInterface.DHCPConf.v4") || + (inputDHCP == + "xyz.openbmc_project.Network.EthernetInterface.DHCPConf.both")); + } + return ((inputDHCP == + "xyz.openbmc_project.Network.EthernetInterface.DHCPConf.v6") || + (inputDHCP == + "xyz.openbmc_project.Network.EthernetInterface.DHCPConf.both")); +} + +inline std::string GetDHCPEnabledEnumeration(bool isIPv4, bool isIPv6) +{ + if (isIPv4 && isIPv6) + { + return "xyz.openbmc_project.Network.EthernetInterface.DHCPConf.both"; + } + else if (isIPv4) + { + return "xyz.openbmc_project.Network.EthernetInterface.DHCPConf.v4"; + } + else if (isIPv6) + { + return "xyz.openbmc_project.Network.EthernetInterface.DHCPConf.v6"; + } + return "xyz.openbmc_project.Network.EthernetInterface.DHCPConf.none"; +} + inline std::string translateAddressOriginDbusToRedfish(const std::string &inputOrigin, bool isIPv4) @@ -134,38 +200,18 @@ inline std::string return ""; } -inline std::string - translateAddressOriginRedfishToDbus(const std::string &inputOrigin) -{ - if (inputOrigin == "Static") - { - return "xyz.openbmc_project.Network.IP.AddressOrigin.Static"; - } - if (inputOrigin == "DHCP" || inputOrigin == "DHCPv6") - { - return "xyz.openbmc_project.Network.IP.AddressOrigin.DHCP"; - } - if (inputOrigin == "IPv4LinkLocal" || inputOrigin == "LinkLocal") - { - return "xyz.openbmc_project.Network.IP.AddressOrigin.LinkLocal"; - } - if (inputOrigin == "SLAAC") - { - return "xyz.openbmc_project.Network.IP.AddressOrigin.SLAAC"; - } - return ""; -} - -inline void extractEthernetInterfaceData(const std::string ðiface_id, +inline bool extractEthernetInterfaceData(const std::string ðiface_id, const GetManagedObjects &dbus_data, EthernetInterfaceData ðData) { + bool idFound = false; for (const auto &objpath : dbus_data) { for (const auto &ifacePair : objpath.second) { if (objpath.first == "/xyz/openbmc_project/network/" + ethiface_id) { + idFound = true; if (ifacePair.first == "xyz.openbmc_project.Network.MACAddress") { for (const auto &propertyPair : ifacePair.second) @@ -191,7 +237,7 @@ inline void extractEthernetInterfaceData(const std::string ðiface_id, std::get_if(&propertyPair.second); if (id != nullptr) { - ethData.vlan_id = *id; + ethData.vlan_id.push_back(*id); } } } @@ -219,7 +265,7 @@ inline void extractEthernetInterfaceData(const std::string ðiface_id, ethData.speed = *speed; } } - else if (propertyPair.first == "NameServers") + else if (propertyPair.first == "Nameservers") { const std::vector *nameservers = sdbusplus::message::variant_ns::get_if< @@ -230,6 +276,74 @@ inline void extractEthernetInterfaceData(const std::string ðiface_id, ethData.nameservers = std::move(*nameservers); } } + else if (propertyPair.first == "DHCPEnabled") + { + const std::string *DHCPEnabled = + std::get_if(&propertyPair.second); + if (DHCPEnabled != nullptr) + { + ethData.DHCPEnabled = *DHCPEnabled; + } + } + else if (propertyPair.first == "DomainName") + { + const std::vector *domainNames = + sdbusplus::message::variant_ns::get_if< + std::vector>( + &propertyPair.second); + if (domainNames != nullptr) + { + ethData.domainnames = std::move(*domainNames); + } + } + } + } + } + + if (objpath.first == "/xyz/openbmc_project/network/config/dhcp") + { + if (ifacePair.first == + "xyz.openbmc_project.Network.DHCPConfiguration") + { + for (const auto &propertyPair : ifacePair.second) + { + if (propertyPair.first == "DNSEnabled") + { + const bool *DNSEnabled = + std::get_if(&propertyPair.second); + if (DNSEnabled != nullptr) + { + ethData.DNSEnabled = *DNSEnabled; + } + } + else if (propertyPair.first == "NTPEnabled") + { + const bool *NTPEnabled = + std::get_if(&propertyPair.second); + if (NTPEnabled != nullptr) + { + ethData.NTPEnabled = *NTPEnabled; + } + } + else if (propertyPair.first == "HostNameEnabled") + { + const bool *HostNameEnabled = + std::get_if(&propertyPair.second); + if (HostNameEnabled != nullptr) + { + ethData.HostNameEnabled = *HostNameEnabled; + } + } + else if (propertyPair.first == "SendHostNameEnabled") + { + const bool *SendHostNameEnabled = + std::get_if(&propertyPair.second); + if (SendHostNameEnabled != nullptr) + { + ethData.SendHostNameEnabled = + *SendHostNameEnabled; + } + } } } } @@ -260,6 +374,90 @@ inline void extractEthernetInterfaceData(const std::string ðiface_id, ethData.default_gateway = *defaultGateway; } } + else if (propertyPair.first == "DefaultGateway6") + { + const std::string *defaultGateway6 = + sdbusplus::message::variant_ns::get_if( + &propertyPair.second); + if (defaultGateway6 != nullptr) + { + ethData.ipv6_default_gateway = *defaultGateway6; + } + } + } + } + } + } + return idFound; +} + +// Helper function that extracts data for single ethernet ipv6 address +inline void + extractIPV6Data(const std::string ðiface_id, + const GetManagedObjects &dbus_data, + boost::container::flat_set &ipv6_config) +{ + const std::string ipv6PathStart = + "/xyz/openbmc_project/network/" + ethiface_id + "/ipv6/"; + + // Since there might be several IPv6 configurations aligned with + // single ethernet interface, loop over all of them + for (const auto &objpath : dbus_data) + { + // Check if proper pattern for object path appears + if (boost::starts_with(objpath.first.str, ipv6PathStart)) + { + for (auto &interface : objpath.second) + { + if (interface.first == "xyz.openbmc_project.Network.IP") + { + // Instance IPv6AddressData structure, and set as + // appropriate + std::pair< + boost::container::flat_set::iterator, + bool> + it = ipv6_config.insert(IPv6AddressData{}); + IPv6AddressData &ipv6_address = *it.first; + ipv6_address.id = + objpath.first.str.substr(ipv6PathStart.size()); + for (auto &property : interface.second) + { + if (property.first == "Address") + { + const std::string *address = + std::get_if(&property.second); + if (address != nullptr) + { + ipv6_address.address = *address; + } + } + else if (property.first == "Origin") + { + const std::string *origin = + std::get_if(&property.second); + if (origin != nullptr) + { + ipv6_address.origin = + translateAddressOriginDbusToRedfish(*origin, + false); + } + } + else if (property.first == "PrefixLength") + { + const uint8_t *prefix = + std::get_if(&property.second); + if (prefix != nullptr) + { + ipv6_address.prefixLength = *prefix; + } + } + else + { + BMCWEB_LOG_ERROR + << "Got extra property: " << property.first + << " on the " << objpath.first.str << " object"; + } + } } } } @@ -291,9 +489,10 @@ inline void std::pair< boost::container::flat_set::iterator, bool> - it = ipv4_config.insert( - {objpath.first.str.substr(ipv4PathStart.size())}); + it = ipv4_config.insert(IPv4AddressData{}); IPv4AddressData &ipv4_address = *it.first; + ipv4_address.id = + objpath.first.str.substr(ipv4PathStart.size()); for (auto &property : interface.second) { if (property.first == "Address") @@ -345,8 +544,8 @@ inline void // Check if given address is local, or global ipv4_address.linktype = boost::starts_with(ipv4_address.address, "169.254.") - ? LinkType::Global - : LinkType::Local; + ? LinkType::Local + : LinkType::Global; } } } @@ -468,184 +667,197 @@ inline bool ipv4VerifyIpAndGetBitcount(const std::string &ip, } /** - * @brief Changes IPv4 address type property (Address, Gateway) + * @brief Deletes given IPv4 interface * - * @param[in] ifaceId Id of interface whose IP should be modified - * @param[in] ipIdx Index of IP in input array that should be modified - * @param[in] ipHash DBus Hash id of modified IP - * @param[in] name Name of field in JSON representation - * @param[in] newValue New value that should be written + * @param[in] ifaceId Id of interface whose IP should be deleted + * @param[in] ipHash DBus Hash id of IP that should be deleted * @param[io] asyncResp Response object that will be returned to client * - * @return true if give IP is valid and has been sent do D-Bus, false - * otherwise + * @return None */ -inline void changeIPv4AddressProperty( - const std::string &ifaceId, int ipIdx, const std::string &ipHash, - const std::string &name, const std::string &newValue, - const std::shared_ptr asyncResp) +inline void deleteIPv4(const std::string &ifaceId, const std::string &ipHash, + const std::shared_ptr asyncResp) { - auto callback = [asyncResp, ipIdx, name{std::string(name)}, - newValue{std::move(newValue)}]( - const boost::system::error_code ec) { - if (ec) - { - messages::internalError(asyncResp->res); - } - else - { - asyncResp->res.jsonValue["IPv4Addresses"][ipIdx][name] = newValue; - } - }; - crow::connections::systemBus->async_method_call( - std::move(callback), "xyz.openbmc_project.Network", + [asyncResp](const boost::system::error_code ec) { + if (ec) + { + messages::internalError(asyncResp->res); + } + }, + "xyz.openbmc_project.Network", "/xyz/openbmc_project/network/" + ifaceId + "/ipv4/" + ipHash, - "org.freedesktop.DBus.Properties", "Set", - "xyz.openbmc_project.Network.IP", name, - std::variant(newValue)); + "xyz.openbmc_project.Object.Delete", "Delete"); } /** - * @brief Changes IPv4 address origin property + * @brief Creates a static IPv4 entry * - * @param[in] ifaceId Id of interface whose IP should be modified - * @param[in] ipIdx Index of IP in input array that should be - * modified - * @param[in] ipHash DBus Hash id of modified IP - * @param[in] newValue New value in Redfish format - * @param[in] newValueDbus New value in D-Bus format - * @param[io] asyncResp Response object that will be returned to client + * @param[in] ifaceId Id of interface upon which to create the IPv4 entry + * @param[in] prefixLength IPv4 prefix syntax for the subnet mask + * @param[in] gateway IPv4 address of this interfaces gateway + * @param[in] address IPv4 address to assign to this interface + * @param[io] asyncResp Response object that will be returned to client * - * @return true if give IP is valid and has been sent do D-Bus, false - * otherwise + * @return None */ -inline void changeIPv4Origin(const std::string &ifaceId, int ipIdx, - const std::string &ipHash, - const std::string &newValue, - const std::string &newValueDbus, - const std::shared_ptr asyncResp) +inline void createIPv4(const std::string &ifaceId, unsigned int ipIdx, + uint8_t prefixLength, const std::string &gateway, + const std::string &address, + std::shared_ptr asyncResp) { - auto callback = [asyncResp, ipIdx, newValue{std::move(newValue)}]( - const boost::system::error_code ec) { - if (ec) - { - messages::internalError(asyncResp->res); - } - else - { - asyncResp->res.jsonValue["IPv4Addresses"][ipIdx]["AddressOrigin"] = - newValue; - } - }; - crow::connections::systemBus->async_method_call( - std::move(callback), "xyz.openbmc_project.Network", - "/xyz/openbmc_project/network/" + ifaceId + "/ipv4/" + ipHash, - "org.freedesktop.DBus.Properties", "Set", - "xyz.openbmc_project.Network.IP", "Origin", - std::variant(newValueDbus)); + [asyncResp](const boost::system::error_code ec) { + if (ec) + { + messages::internalError(asyncResp->res); + } + }, + "xyz.openbmc_project.Network", + "/xyz/openbmc_project/network/" + ifaceId, + "xyz.openbmc_project.Network.IP.Create", "IP", + "xyz.openbmc_project.Network.IP.Protocol.IPv4", address, prefixLength, + gateway); } /** - * @brief Modifies SubnetMask for given IP + * @brief Deletes the IPv4 entry for this interface and creates a replacement + * static IPv4 entry * - * @param[in] ifaceId Id of interface whose IP should be modified - * @param[in] ipIdx Index of IP in input array that should be - * modified - * @param[in] ipHash DBus Hash id of modified IP - * @param[in] newValueStr Mask in dot notation as string - * @param[in] newValue Mask as PrefixLength in bitcount - * @param[io] asyncResp Response object that will be returned to client + * @param[in] ifaceId Id of interface upon which to create the IPv4 entry + * @param[in] id The unique hash entry identifying the DBus entry + * @param[in] prefixLength IPv4 prefix syntax for the subnet mask + * @param[in] gateway IPv4 address of this interfaces gateway + * @param[in] address IPv4 address to assign to this interface + * @param[io] asyncResp Response object that will be returned to client * * @return None */ -inline void changeIPv4SubnetMaskProperty(const std::string &ifaceId, int ipIdx, - const std::string &ipHash, - const std::string &newValueStr, - uint8_t &newValue, - std::shared_ptr asyncResp) +inline void deleteAndCreateIPv4(const std::string &ifaceId, + const std::string &id, uint8_t prefixLength, + const std::string &gateway, + const std::string &address, + std::shared_ptr asyncResp) { - auto callback = [asyncResp, ipIdx, newValueStr{std::move(newValueStr)}]( - const boost::system::error_code ec) { - if (ec) - { - messages::internalError(asyncResp->res); - } - else - { - asyncResp->res.jsonValue["IPv4Addresses"][ipIdx]["SubnetMask"] = - newValueStr; - } - }; - crow::connections::systemBus->async_method_call( - std::move(callback), "xyz.openbmc_project.Network", - "/xyz/openbmc_project/network/" + ifaceId + "/ipv4/" + ipHash, - "org.freedesktop.DBus.Properties", "Set", - "xyz.openbmc_project.Network.IP", "PrefixLength", - std::variant(newValue)); + [asyncResp, ifaceId, address, prefixLength, + gateway](const boost::system::error_code ec) { + if (ec) + { + messages::internalError(asyncResp->res); + } + crow::connections::systemBus->async_method_call( + [asyncResp](const boost::system::error_code ec) { + if (ec) + { + messages::internalError(asyncResp->res); + } + }, + "xyz.openbmc_project.Network", + "/xyz/openbmc_project/network/" + ifaceId, + "xyz.openbmc_project.Network.IP.Create", "IP", + "xyz.openbmc_project.Network.IP.Protocol.IPv4", address, + prefixLength, gateway); + }, + "xyz.openbmc_project.Network", + +"/xyz/openbmc_project/network/" + ifaceId + "/ipv4/" + id, + "xyz.openbmc_project.Object.Delete", "Delete"); } /** - * @brief Deletes given IPv4 + * @brief Deletes given IPv6 * * @param[in] ifaceId Id of interface whose IP should be deleted - * @param[in] ipIdx Index of IP in input array that should be deleted * @param[in] ipHash DBus Hash id of IP that should be deleted * @param[io] asyncResp Response object that will be returned to client * * @return None */ -inline void deleteIPv4(const std::string &ifaceId, const std::string &ipHash, - unsigned int ipIdx, +inline void deleteIPv6(const std::string &ifaceId, const std::string &ipHash, const std::shared_ptr asyncResp) { crow::connections::systemBus->async_method_call( - [ipIdx, asyncResp](const boost::system::error_code ec) { + [asyncResp](const boost::system::error_code ec) { if (ec) { messages::internalError(asyncResp->res); } - else + }, + "xyz.openbmc_project.Network", + "/xyz/openbmc_project/network/" + ifaceId + "/ipv6/" + ipHash, + "xyz.openbmc_project.Object.Delete", "Delete"); +} + +/** + * @brief Deletes the IPv6 entry for this interface and creates a replacement + * static IPv6 entry + * + * @param[in] ifaceId Id of interface upon which to create the IPv6 entry + * @param[in] id The unique hash entry identifying the DBus entry + * @param[in] prefixLength IPv6 prefix syntax for the subnet mask + * @param[in] address IPv6 address to assign to this interface + * @param[io] asyncResp Response object that will be returned to client + * + * @return None + */ +inline void deleteAndCreateIPv6(const std::string &ifaceId, + const std::string &id, uint8_t prefixLength, + const std::string &address, + std::shared_ptr asyncResp) +{ + crow::connections::systemBus->async_method_call( + [asyncResp, ifaceId, address, + prefixLength](const boost::system::error_code ec) { + if (ec) { - asyncResp->res.jsonValue["IPv4Addresses"][ipIdx] = nullptr; + messages::internalError(asyncResp->res); } + crow::connections::systemBus->async_method_call( + [asyncResp](const boost::system::error_code ec) { + if (ec) + { + messages::internalError(asyncResp->res); + } + }, + "xyz.openbmc_project.Network", + "/xyz/openbmc_project/network/" + ifaceId, + "xyz.openbmc_project.Network.IP.Create", "IP", + "xyz.openbmc_project.Network.IP.Protocol.IPv6", address, + prefixLength, ""); }, "xyz.openbmc_project.Network", - "/xyz/openbmc_project/network/" + ifaceId + "/ipv4/" + ipHash, + +"/xyz/openbmc_project/network/" + ifaceId + "/ipv6/" + id, "xyz.openbmc_project.Object.Delete", "Delete"); } /** - * @brief Creates IPv4 with given data + * @brief Creates IPv6 with given data * - * @param[in] ifaceId Id of interface whose IP should be deleted - * @param[in] ipIdx Index of IP in input array that should be deleted - * @param[in] ipHash DBus Hash id of IP that should be deleted - * @param[io] asyncResp Response object that will be returned to client + * @param[in] ifaceId Id of interface whose IP should be added + * @param[in] prefixLength Prefix length that needs to be added + * @param[in] address IP address that needs to be added + * @param[io] asyncResp Response object that will be returned to client * * @return None */ -inline void createIPv4(const std::string &ifaceId, unsigned int ipIdx, - uint8_t subnetMask, const std::string &gateway, +inline void createIPv6(const std::string &ifaceId, uint8_t prefixLength, const std::string &address, std::shared_ptr asyncResp) { - auto createIpHandler = [ipIdx, - asyncResp](const boost::system::error_code ec) { + auto createIpHandler = [asyncResp](const boost::system::error_code ec) { if (ec) { messages::internalError(asyncResp->res); } }; - + // Passing null for gateway, as per redfish spec IPv6StaticAddresses object + // does not have assosiated gateway property crow::connections::systemBus->async_method_call( std::move(createIpHandler), "xyz.openbmc_project.Network", "/xyz/openbmc_project/network/" + ifaceId, "xyz.openbmc_project.Network.IP.Create", "IP", - "xyz.openbmc_project.Network.IP.Protocol.IPv4", address, subnetMask, - gateway); + "xyz.openbmc_project.Network.IP.Protocol.IPv6", address, prefixLength, + ""); } /** @@ -666,32 +878,41 @@ void getEthernetIfaceData(const std::string ðiface_id, const GetManagedObjects &resp) { EthernetInterfaceData ethData{}; boost::container::flat_set ipv4Data; + boost::container::flat_set ipv6Data; if (error_code) { - callback(false, ethData, ipv4Data); + callback(false, ethData, ipv4Data, ipv6Data); return; } - extractEthernetInterfaceData(ethiface_id, resp, ethData); - extractIPData(ethiface_id, resp, ipv4Data); + bool found = + extractEthernetInterfaceData(ethiface_id, resp, ethData); + if (!found) + { + callback(false, ethData, ipv4Data, ipv6Data); + return; + } + extractIPData(ethiface_id, resp, ipv4Data); // Fix global GW for (IPv4AddressData &ipv4 : ipv4Data) { - if ((ipv4.linktype == LinkType::Global) && - (ipv4.gateway == "0.0.0.0")) + if (((ipv4.linktype == LinkType::Global) && + (ipv4.gateway == "0.0.0.0")) || + (ipv4.origin == "DHCP")) { ipv4.gateway = ethData.default_gateway; } } + extractIPV6Data(ethiface_id, resp, ipv6Data); // Finally make a callback with usefull data - callback(true, ethData, ipv4Data); + callback(true, ethData, ipv4Data, ipv6Data); }, "xyz.openbmc_project.Network", "/xyz/openbmc_project/network", "org.freedesktop.DBus.ObjectManager", "GetManagedObjects"); -}; +} /** * Function that retrieves all Ethernet Interfaces available through Network @@ -708,7 +929,7 @@ void getEthernetIfaceList(CallbackFunc &&callback) GetManagedObjects &resp) { // Callback requires vector to retrieve all available // ethernet interfaces - std::vector iface_list; + boost::container::flat_set iface_list; iface_list.reserve(resp.size()); if (error_code) { @@ -734,8 +955,7 @@ void getEthernetIfaceList(CallbackFunc &&callback) if (last_pos != std::string::npos) { // and put it into output vector. - iface_list.emplace_back( - iface_id.substr(last_pos + 1)); + iface_list.emplace(iface_id.substr(last_pos + 1)); } } } @@ -745,7 +965,7 @@ void getEthernetIfaceList(CallbackFunc &&callback) }, "xyz.openbmc_project.Network", "/xyz/openbmc_project/network", "org.freedesktop.DBus.ObjectManager", "GetManagedObjects"); -}; +} /** * EthernetCollection derived class for delivering Ethernet Collection Schema @@ -783,33 +1003,39 @@ class EthernetCollection : public Node res.jsonValue["Name"] = "Ethernet Network Interface Collection"; res.jsonValue["Description"] = "Collection of EthernetInterfaces for this Manager"; - + std::shared_ptr asyncResp = std::make_shared(res); // Get eth interface list, and call the below callback for JSON // preparation getEthernetIfaceList( - [&res](const bool &success, - const std::vector &iface_list) { + [asyncResp]( + const bool &success, + const boost::container::flat_set &iface_list) { if (!success) { - messages::internalError(res); - res.end(); + messages::internalError(asyncResp->res); return; } - nlohmann::json &iface_array = res.jsonValue["Members"]; + nlohmann::json &iface_array = + asyncResp->res.jsonValue["Members"]; iface_array = nlohmann::json::array(); + std::string tag = "_"; for (const std::string &iface_item : iface_list) { - iface_array.push_back( - {{"@odata.id", - "/redfish/v1/Managers/bmc/EthernetInterfaces/" + - iface_item}}); + std::size_t found = iface_item.find(tag); + if (found == std::string::npos) + { + iface_array.push_back( + {{"@odata.id", + "/redfish/v1/Managers/bmc/EthernetInterfaces/" + + iface_item}}); + } } - res.jsonValue["Members@odata.count"] = iface_array.size(); - res.jsonValue["@odata.id"] = - "/redfish/v1/Managers/bmc/EthernetInterfaces"; - res.end(); + asyncResp->res.jsonValue["Members@odata.count"] = + iface_array.size(); + asyncResp->res.jsonValue["@odata.id"] = + "/redfish/v1/Managers/bmc/EthernetInterfaces"; }); } }; @@ -837,348 +1063,552 @@ class EthernetInterface : public Node {boost::beast::http::verb::post, {{"ConfigureComponents"}}}}; } - // TODO(kkowalsk) Find a suitable class/namespace for this - static void handleVlanPatch(const std::string &ifaceId, bool vlanEnable, - uint64_t vlanId, - const EthernetInterfaceData ðData, - const std::shared_ptr asyncResp) + private: + void handleHostnamePatch(const std::string &hostname, + const std::shared_ptr asyncResp) { - if (!ethData.vlan_id) - { - // This interface is not a VLAN. Cannot do anything with it - // TODO(kkowalsk) Change this message - messages::propertyNotWritable(asyncResp->res, "VLANEnable"); - - return; - } - - // VLAN is configured on the interface - if (vlanEnable == true) - { - // Change VLAN Id - asyncResp->res.jsonValue["VLANId"] = vlanId; - auto callback = [asyncResp](const boost::system::error_code ec) { + asyncResp->res.jsonValue["HostName"] = hostname; + crow::connections::systemBus->async_method_call( + [asyncResp](const boost::system::error_code ec) { if (ec) { messages::internalError(asyncResp->res); } - else + }, + "xyz.openbmc_project.Network", + "/xyz/openbmc_project/network/config", + "org.freedesktop.DBus.Properties", "Set", + "xyz.openbmc_project.Network.SystemConfiguration", "HostName", + std::variant(hostname)); + } + + void handleMACAddressPatch(const std::string &ifaceId, + const std::string &macAddress, + const std::shared_ptr &asyncResp) + { + crow::connections::systemBus->async_method_call( + [asyncResp, macAddress](const boost::system::error_code ec) { + if (ec) { - asyncResp->res.jsonValue["VLANEnable"] = true; + messages::internalError(asyncResp->res); + return; } - }; - crow::connections::systemBus->async_method_call( - std::move(callback), "xyz.openbmc_project.Network", - "/xyz/openbmc_project/network/" + ifaceId, - "org.freedesktop.DBus.Properties", "Set", - "xyz.openbmc_project.Network.VLAN", "Id", - std::variant(vlanId)); - } - else - { - auto callback = [asyncResp](const boost::system::error_code ec) { + }, + "xyz.openbmc_project.Network", + "/xyz/openbmc_project/network/" + ifaceId, + "org.freedesktop.DBus.Properties", "Set", + "xyz.openbmc_project.Network.MACAddress", "MACAddress", + std::variant(macAddress)); + } + + void setDHCPEnabled(const std::string &ifaceId, + const std::string &propertyName, const bool v4Value, + const bool v6Value, + const std::shared_ptr asyncResp) + { + const std::string dhcp = GetDHCPEnabledEnumeration(v4Value, v6Value); + crow::connections::systemBus->async_method_call( + [asyncResp](const boost::system::error_code ec) { if (ec) { + BMCWEB_LOG_ERROR << "D-Bus responses error: " << ec; messages::internalError(asyncResp->res); return; } - asyncResp->res.jsonValue["VLANEnable"] = false; - }; - - crow::connections::systemBus->async_method_call( - std::move(callback), "xyz.openbmc_project.Network", - "/xyz/openbmc_project/network/" + ifaceId, - "xyz.openbmc_project.Object.Delete", "Delete"); - } + }, + "xyz.openbmc_project.Network", + "/xyz/openbmc_project/network/" + ifaceId, + "org.freedesktop.DBus.Properties", "Set", + "xyz.openbmc_project.Network.EthernetInterface", propertyName, + std::variant{dhcp}); } - private: - void handleHostnamePatch(const std::string &hostname, - const std::shared_ptr asyncResp) + void setDHCPv4Config(const std::string &propertyName, const bool &value, + const std::shared_ptr asyncResp) { - asyncResp->res.jsonValue["HostName"] = hostname; + BMCWEB_LOG_DEBUG << propertyName << " = " << value; crow::connections::systemBus->async_method_call( [asyncResp](const boost::system::error_code ec) { if (ec) { + BMCWEB_LOG_ERROR << "D-Bus responses error: " << ec; messages::internalError(asyncResp->res); + return; } }, "xyz.openbmc_project.Network", - "/xyz/openbmc_project/network/config", + "/xyz/openbmc_project/network/config/dhcp", "org.freedesktop.DBus.Properties", "Set", - "xyz.openbmc_project.Network.SystemConfiguration", "HostName", - std::variant(hostname)); + "xyz.openbmc_project.Network.DHCPConfiguration", propertyName, + std::variant{value}); } - void handleIPv4Patch( - const std::string &ifaceId, const nlohmann::json &input, - const boost::container::flat_set &ipv4Data, - const std::shared_ptr asyncResp) + void handleDHCPPatch(const std::string &ifaceId, + const EthernetInterfaceData ðData, + DHCPParameters v4dhcpParms, DHCPParameters v6dhcpParms, + const std::shared_ptr asyncResp) { - if (!input.is_array()) + bool ipv4Active = translateDHCPEnabledToBool(ethData.DHCPEnabled, true); + bool ipv6Active = + translateDHCPEnabledToBool(ethData.DHCPEnabled, false); + + bool nextv4DHCPState = + v4dhcpParms.dhcpv4Enabled ? *v4dhcpParms.dhcpv4Enabled : ipv4Active; + + bool nextv6DHCPState{}; + if (v6dhcpParms.dhcpv6OperatingMode) { - messages::propertyValueTypeError(asyncResp->res, input.dump(), - "IPv4Addresses"); - return; + if ((*v6dhcpParms.dhcpv6OperatingMode != "Stateful") && + (*v6dhcpParms.dhcpv6OperatingMode != "Stateless") && + (*v6dhcpParms.dhcpv6OperatingMode != "Disabled")) + { + messages::propertyValueFormatError( + asyncResp->res, *v6dhcpParms.dhcpv6OperatingMode, + "OperatingMode"); + return; + } + nextv6DHCPState = (*v6dhcpParms.dhcpv6OperatingMode == "Stateful"); + } + else + { + nextv6DHCPState = ipv6Active; } - // According to Redfish PATCH definition, size must be at least equal - if (input.size() < ipv4Data.size()) + bool nextDNS{}; + if (v4dhcpParms.useDNSServers && v6dhcpParms.useDNSServers) { - messages::propertyValueFormatError(asyncResp->res, input.dump(), - "IPv4Addresses"); - return; + if (*v4dhcpParms.useDNSServers != *v6dhcpParms.useDNSServers) + { + messages::generalError(asyncResp->res); + return; + } + nextDNS = *v4dhcpParms.useDNSServers; + } + else if (v4dhcpParms.useDNSServers) + { + nextDNS = *v4dhcpParms.useDNSServers; + } + else if (v6dhcpParms.useDNSServers) + { + nextDNS = *v6dhcpParms.useDNSServers; + } + else + { + nextDNS = ethData.DNSEnabled; } - int entryIdx = 0; - boost::container::flat_set::const_iterator thisData = - ipv4Data.begin(); - for (const nlohmann::json &thisJson : input) + bool nextNTP{}; + if (v4dhcpParms.useNTPServers && v6dhcpParms.useNTPServers) { - std::string pathString = - "IPv4Addresses/" + std::to_string(entryIdx); - // Check that entry is not of some unexpected type - if (!thisJson.is_object() && !thisJson.is_null()) + if (*v4dhcpParms.useNTPServers != *v6dhcpParms.useNTPServers) { - messages::propertyValueTypeError(asyncResp->res, - thisJson.dump(), - pathString + "/IPv4Address"); + messages::generalError(asyncResp->res); + return; + } + nextNTP = *v4dhcpParms.useNTPServers; + } + else if (v4dhcpParms.useNTPServers) + { + nextNTP = *v4dhcpParms.useNTPServers; + } + else if (v6dhcpParms.useNTPServers) + { + nextNTP = *v6dhcpParms.useNTPServers; + } + else + { + nextNTP = ethData.NTPEnabled; + } - continue; + bool nextUseDomain{}; + if (v4dhcpParms.useUseDomainName && v6dhcpParms.useUseDomainName) + { + if (*v4dhcpParms.useUseDomainName != *v6dhcpParms.useUseDomainName) + { + messages::generalError(asyncResp->res); + return; + } + nextUseDomain = *v4dhcpParms.useUseDomainName; + } + else if (v4dhcpParms.useUseDomainName) + { + nextUseDomain = *v4dhcpParms.useUseDomainName; + } + else if (v6dhcpParms.useUseDomainName) + { + nextUseDomain = *v6dhcpParms.useUseDomainName; + } + else + { + nextUseDomain = ethData.HostNameEnabled; + } + + BMCWEB_LOG_DEBUG << "set DHCPEnabled..."; + setDHCPEnabled(ifaceId, "DHCPEnabled", nextv4DHCPState, nextv6DHCPState, + asyncResp); + BMCWEB_LOG_DEBUG << "set DNSEnabled..."; + setDHCPv4Config("DNSEnabled", nextDNS, asyncResp); + BMCWEB_LOG_DEBUG << "set NTPEnabled..."; + setDHCPv4Config("NTPEnabled", nextNTP, asyncResp); + BMCWEB_LOG_DEBUG << "set HostNameEnabled..."; + setDHCPv4Config("HostNameEnabled", nextUseDomain, asyncResp); + } + + boost::container::flat_set::const_iterator + GetNextStaticIPEntry( + boost::container::flat_set::const_iterator head, + boost::container::flat_set::const_iterator end) + { + for (; head != end; head++) + { + if (head->origin == "Static") + { + return head; } + } + return end; + } - nlohmann::json::const_iterator addressFieldIt = - thisJson.find("Address"); - const std::string *addressField = nullptr; - if (addressFieldIt != thisJson.end()) + boost::container::flat_set::const_iterator + GetNextStaticIPEntry( + boost::container::flat_set::const_iterator head, + boost::container::flat_set::const_iterator end) + { + for (; head != end; head++) + { + if (head->origin == "Static") { - addressField = addressFieldIt->get_ptr(); - if (addressField == nullptr) + return head; + } + } + return end; + } + + void handleIPv4StaticPatch( + const std::string &ifaceId, nlohmann::json &input, + const boost::container::flat_set &ipv4Data, + const std::shared_ptr asyncResp) + { + if ((!input.is_array()) || input.empty()) + { + messages::propertyValueTypeError(asyncResp->res, input.dump(), + "IPv4StaticAddresses"); + return; + } + + unsigned entryIdx = 1; + // Find the first static IP address currently active on the NIC and + // match it to the first JSON element in the IPv4StaticAddresses array. + // Match each subsequent JSON element to the next static IP programmed + // into the NIC. + boost::container::flat_set::const_iterator NICIPentry = + GetNextStaticIPEntry(ipv4Data.cbegin(), ipv4Data.cend()); + + for (nlohmann::json &thisJson : input) + { + std::string pathString = + "IPv4StaticAddresses/" + std::to_string(entryIdx); + + if (!thisJson.is_null() && !thisJson.empty()) + { + std::optional address; + std::optional subnetMask; + std::optional gateway; + + if (!json_util::readJson(thisJson, asyncResp->res, "Address", + address, "SubnetMask", subnetMask, + "Gateway", gateway)) { - messages::propertyValueFormatError(asyncResp->res, - addressFieldIt->dump(), - pathString + "/Address"); - continue; + messages::propertyValueFormatError( + asyncResp->res, thisJson.dump(), pathString); + return; } - else + + // Find the address/subnet/gateway values. Any values that are + // not explicitly provided are assumed to be unmodified from the + // current state of the interface. Merge existing state into the + // current request. + const std::string *addr = nullptr; + const std::string *gw = nullptr; + uint8_t prefixLength = 0; + bool errorInEntry = false; + if (address) { - if (!ipv4VerifyIpAndGetBitcount(*addressField)) + if (ipv4VerifyIpAndGetBitcount(*address)) + { + addr = &(*address); + } + else { messages::propertyValueFormatError( - asyncResp->res, *addressField, - pathString + "/Address"); - continue; + asyncResp->res, *address, pathString + "/Address"); + errorInEntry = true; } } - } - - std::optional prefixLength; - const std::string *subnetField = nullptr; - nlohmann::json::const_iterator subnetFieldIt = - thisJson.find("SubnetMask"); - if (subnetFieldIt != thisJson.end()) - { - subnetField = subnetFieldIt->get_ptr(); - if (subnetField == nullptr) + else if (NICIPentry != ipv4Data.cend()) { - messages::propertyValueFormatError( - asyncResp->res, *subnetField, - pathString + "/SubnetMask"); - continue; + addr = &(NICIPentry->address); } else { - prefixLength = 0; - if (!ipv4VerifyIpAndGetBitcount(*subnetField, - &*prefixLength)) + messages::propertyMissing(asyncResp->res, + pathString + "/Address"); + errorInEntry = true; + } + + if (subnetMask) + { + if (!ipv4VerifyIpAndGetBitcount(*subnetMask, &prefixLength)) { messages::propertyValueFormatError( - asyncResp->res, *subnetField, + asyncResp->res, *subnetMask, pathString + "/SubnetMask"); - continue; + errorInEntry = true; } } - } - - std::string addressOriginInDBusFormat; - const std::string *addressOriginField = nullptr; - nlohmann::json::const_iterator addressOriginFieldIt = - thisJson.find("AddressOrigin"); - if (addressOriginFieldIt != thisJson.end()) - { - const std::string *addressOriginField = - addressOriginFieldIt->get_ptr(); - if (addressOriginField == nullptr) + else if (NICIPentry != ipv4Data.cend()) { - messages::propertyValueFormatError( - asyncResp->res, *addressOriginField, - pathString + "/AddressOrigin"); - continue; + if (!ipv4VerifyIpAndGetBitcount(NICIPentry->netmask, + &prefixLength)) + { + messages::propertyValueFormatError( + asyncResp->res, NICIPentry->netmask, + pathString + "/SubnetMask"); + errorInEntry = true; + } } else { - // Get Address origin in proper format - addressOriginInDBusFormat = - translateAddressOriginRedfishToDbus( - *addressOriginField); - if (addressOriginInDBusFormat.empty()) + messages::propertyMissing(asyncResp->res, + pathString + "/SubnetMask"); + errorInEntry = true; + } + + if (gateway) + { + if (ipv4VerifyIpAndGetBitcount(*gateway)) { - messages::propertyValueNotInList( - asyncResp->res, *addressOriginField, - pathString + "/AddressOrigin"); - continue; + gw = &(*gateway); + } + else + { + messages::propertyValueFormatError( + asyncResp->res, *gateway, pathString + "/Gateway"); + errorInEntry = true; } } - } - - nlohmann::json::const_iterator gatewayFieldIt = - thisJson.find("Gateway"); - const std::string *gatewayField = nullptr; - if (gatewayFieldIt != thisJson.end()) - { - const std::string *gatewayField = - gatewayFieldIt->get_ptr(); - if (gatewayField == nullptr || - !ipv4VerifyIpAndGetBitcount(*gatewayField)) + else if (NICIPentry != ipv4Data.cend()) { - messages::propertyValueFormatError( - asyncResp->res, *gatewayField, pathString + "/Gateway"); - continue; + gw = &NICIPentry->gateway; + } + else + { + messages::propertyMissing(asyncResp->res, + pathString + "/Gateway"); + errorInEntry = true; } - } - // if a vlan already exists, modify the existing - if (thisData != ipv4Data.end()) - { - // Existing object that should be modified/deleted/remain - // unchanged - if (thisJson.is_null()) + if (errorInEntry) { - auto callback = [entryIdx{std::to_string(entryIdx)}, - asyncResp]( - const boost::system::error_code ec) { - if (ec) - { - messages::internalError(asyncResp->res); - return; - } - asyncResp->res.jsonValue["IPv4Addresses"][entryIdx] = - nullptr; - }; - crow::connections::systemBus->async_method_call( - std::move(callback), "xyz.openbmc_project.Network", - "/xyz/openbmc_project/network/" + ifaceId + "/ipv4/" + - thisData->id, - "xyz.openbmc_project.Object.Delete", "Delete"); + return; } - else if (thisJson.is_object()) + + if (NICIPentry != ipv4Data.cend()) { - // Apply changes - if (addressField != nullptr) + if (gw != nullptr || addr != nullptr) { - auto callback = - [asyncResp, entryIdx, - addressField{std::string(*addressField)}]( - const boost::system::error_code ec) { - if (ec) - { - messages::internalError(asyncResp->res); - return; - } - asyncResp->res - .jsonValue["IPv4Addresses"][std::to_string( - entryIdx)]["Address"] = addressField; - }; - - crow::connections::systemBus->async_method_call( - std::move(callback), "xyz.openbmc_project.Network", - "/xyz/openbmc_project/network/" + ifaceId + - "/ipv4/" + thisData->id, - "org.freedesktop.DBus.Properties", "Set", - "xyz.openbmc_project.Network.IP", "Address", - std::variant(*addressField)); + // Shouldn't be possible based on errorInEntry, but + // it flags -wmaybe-uninitialized in the compiler, + // so defend against that + return; } - - if (prefixLength && subnetField != nullptr) + deleteAndCreateIPv4(ifaceId, NICIPentry->id, prefixLength, + *gw, *addr, asyncResp); + NICIPentry = + GetNextStaticIPEntry(++NICIPentry, ipv4Data.cend()); + } + else + { + createIPv4(ifaceId, entryIdx, prefixLength, *gateway, + *address, asyncResp); + } + entryIdx++; + } + else + { + if (NICIPentry == ipv4Data.cend()) + { + // Requesting a DELETE/DO NOT MODIFY action for an item + // that isn't present on the eth(n) interface. Input JSON is + // in error, so bail out. + if (thisJson.is_null()) { - changeIPv4SubnetMaskProperty(ifaceId, entryIdx, - thisData->id, *subnetField, - *prefixLength, asyncResp); + messages::resourceCannotBeDeleted(asyncResp->res); + return; } - - if (!addressOriginInDBusFormat.empty() && - addressOriginField != nullptr) + else { - changeIPv4Origin(ifaceId, entryIdx, thisData->id, - *addressOriginField, - addressOriginInDBusFormat, asyncResp); + messages::propertyValueFormatError( + asyncResp->res, thisJson.dump(), pathString); + return; } + } - if (gatewayField != nullptr) - { - auto callback = - [asyncResp, entryIdx, - gatewayField{std::string(*gatewayField)}]( - const boost::system::error_code ec) { - if (ec) - { - messages::internalError(asyncResp->res); - return; - } - asyncResp->res - .jsonValue["IPv4Addresses"][std::to_string( - entryIdx)]["Gateway"] = - std::move(gatewayField); - }; - - crow::connections::systemBus->async_method_call( - std::move(callback), "xyz.openbmc_project.Network", - "/xyz/openbmc_project/network/" + ifaceId + - "/ipv4/" + thisData->id, - "org.freedesktop.DBus.Properties", "Set", - "xyz.openbmc_project.Network.IP", "Gateway", - std::variant(*gatewayField)); - } + if (thisJson.is_null()) + { + deleteIPv4(ifaceId, NICIPentry->id, asyncResp); + } + if (NICIPentry != ipv4Data.cend()) + { + NICIPentry = + GetNextStaticIPEntry(++NICIPentry, ipv4Data.cend()); } - thisData++; + entryIdx++; } - else + } + } + + void handleStaticNameServersPatch( + const std::string &ifaceId, + const std::vector &updatedStaticNameServers, + const std::shared_ptr &asyncResp) + { + crow::connections::systemBus->async_method_call( + [asyncResp](const boost::system::error_code ec) { + if (ec) + { + messages::internalError(asyncResp->res); + return; + } + }, + "xyz.openbmc_project.Network", + "/xyz/openbmc_project/network/" + ifaceId, + "org.freedesktop.DBus.Properties", "Set", + "xyz.openbmc_project.Network.EthernetInterface", "Nameservers", + std::variant>{updatedStaticNameServers}); + } + + void handleIPv6StaticAddressesPatch( + const std::string &ifaceId, nlohmann::json &input, + const boost::container::flat_set &ipv6Data, + const std::shared_ptr asyncResp) + { + if (!input.is_array() || input.empty()) + { + messages::propertyValueTypeError(asyncResp->res, input.dump(), + "IPv6StaticAddresses"); + return; + } + size_t entryIdx = 1; + boost::container::flat_set::const_iterator NICIPentry = + GetNextStaticIPEntry(ipv6Data.cbegin(), ipv6Data.cend()); + for (nlohmann::json &thisJson : input) + { + std::string pathString = + "IPv6StaticAddresses/" + std::to_string(entryIdx); + + if (!thisJson.is_null() && !thisJson.empty()) { - // Create IPv4 with provided data - if (gatewayField == nullptr) + std::optional address; + std::optional prefixLength; + + if (!json_util::readJson(thisJson, asyncResp->res, "Address", + address, "PrefixLength", prefixLength)) { - messages::propertyMissing(asyncResp->res, - pathString + "/Gateway"); - continue; + messages::propertyValueFormatError( + asyncResp->res, thisJson.dump(), pathString); + return; } - if (addressField == nullptr) + const std::string *addr; + uint8_t prefix; + + // Find the address and prefixLength values. Any values that are + // not explicitly provided are assumed to be unmodified from the + // current state of the interface. Merge existing state into the + // current request. + if (address) + { + addr = &(*address); + } + else if (NICIPentry != ipv6Data.end()) + { + addr = &(NICIPentry->address); + } + else { messages::propertyMissing(asyncResp->res, pathString + "/Address"); - continue; + return; } - if (!prefixLength) + if (prefixLength) + { + prefix = *prefixLength; + } + else if (NICIPentry != ipv6Data.end()) + { + prefix = NICIPentry->prefixLength; + } + else { messages::propertyMissing(asyncResp->res, - pathString + "/SubnetMask"); - continue; + pathString + "/PrefixLength"); + return; } - createIPv4(ifaceId, entryIdx, *prefixLength, *gatewayField, - *addressField, asyncResp); - asyncResp->res.jsonValue["IPv4Addresses"][entryIdx] = thisJson; + if (NICIPentry != ipv6Data.end()) + { + deleteAndCreateIPv6(ifaceId, NICIPentry->id, prefix, *addr, + asyncResp); + NICIPentry = + GetNextStaticIPEntry(++NICIPentry, ipv6Data.cend()); + } + else + { + createIPv6(ifaceId, *prefixLength, *addr, asyncResp); + } + entryIdx++; + } + else + { + if (NICIPentry == ipv6Data.end()) + { + // Requesting a DELETE/DO NOT MODIFY action for an item + // that isn't present on the eth(n) interface. Input JSON is + // in error, so bail out. + if (thisJson.is_null()) + { + messages::resourceCannotBeDeleted(asyncResp->res); + return; + } + else + { + messages::propertyValueFormatError( + asyncResp->res, thisJson.dump(), pathString); + return; + } + } + + if (thisJson.is_null()) + { + deleteIPv6(ifaceId, NICIPentry->id, asyncResp); + } + if (NICIPentry != ipv6Data.cend()) + { + NICIPentry = + GetNextStaticIPEntry(++NICIPentry, ipv6Data.cend()); + } + entryIdx++; } - entryIdx++; } } void parseInterfaceData( nlohmann::json &json_response, const std::string &iface_id, const EthernetInterfaceData ðData, - const boost::container::flat_set &ipv4Data) + const boost::container::flat_set &ipv4Data, + const boost::container::flat_set &ipv6Data) { json_response["Id"] = iface_id; json_response["@odata.id"] = @@ -1202,34 +1632,89 @@ class EthernetInterface : public Node } json_response["SpeedMbps"] = ethData.speed; json_response["MACAddress"] = ethData.mac_address; + json_response["DHCPv4"]["DHCPEnabled"] = + translateDHCPEnabledToBool(ethData.DHCPEnabled, true); + json_response["DHCPv4"]["UseNTPServers"] = ethData.NTPEnabled; + json_response["DHCPv4"]["UseDNSServers"] = ethData.DNSEnabled; + json_response["DHCPv4"]["UseDomainName"] = ethData.HostNameEnabled; + + json_response["DHCPv6"]["OperatingMode"] = + translateDHCPEnabledToBool(ethData.DHCPEnabled, false) ? "Stateful" + : "Disabled"; + json_response["DHCPv6"]["UseNTPServers"] = ethData.NTPEnabled; + json_response["DHCPv6"]["UseDNSServers"] = ethData.DNSEnabled; + json_response["DHCPv6"]["UseDomainName"] = ethData.HostNameEnabled; + if (!ethData.hostname.empty()) { json_response["HostName"] = ethData.hostname; + if (!ethData.domainnames.empty()) + { + json_response["FQDN"] = + ethData.hostname + "." + ethData.domainnames[0]; + } } - nlohmann::json &vlanObj = json_response["VLAN"]; - if (ethData.vlan_id) + json_response["VLANs"] = { + {"@odata.id", "/redfish/v1/Managers/bmc/EthernetInterfaces/" + + iface_id + "/VLANs"}}; + + if (translateDHCPEnabledToBool(ethData.DHCPEnabled, true) && + ethData.DNSEnabled) { - vlanObj["VLANEnable"] = true; - vlanObj["VLANId"] = *ethData.vlan_id; + json_response["StaticNameServers"] = nlohmann::json::array(); } else { - vlanObj["VLANEnable"] = false; - vlanObj["VLANId"] = 0; + json_response["StaticNameServers"] = ethData.nameservers; + } + + nlohmann::json &ipv4_array = json_response["IPv4Addresses"]; + nlohmann::json &ipv4_static_array = + json_response["IPv4StaticAddresses"]; + ipv4_array = nlohmann::json::array(); + ipv4_static_array = nlohmann::json::array(); + for (auto &ipv4_config : ipv4Data) + { + + std::string gatewayStr = ipv4_config.gateway; + if (gatewayStr.empty()) + { + gatewayStr = "0.0.0.0"; + } + + ipv4_array.push_back({{"AddressOrigin", ipv4_config.origin}, + {"SubnetMask", ipv4_config.netmask}, + {"Address", ipv4_config.address}, + {"Gateway", gatewayStr}}); + if (ipv4_config.origin == "Static") + { + ipv4_static_array.push_back( + {{"AddressOrigin", ipv4_config.origin}, + {"SubnetMask", ipv4_config.netmask}, + {"Address", ipv4_config.address}, + {"Gateway", gatewayStr}}); + } } - json_response["NameServers"] = ethData.nameservers; - if (ipv4Data.size() > 0) + json_response["IPv6DefaultGateway"] = ethData.ipv6_default_gateway; + + nlohmann::json &ipv6_array = json_response["IPv6Addresses"]; + nlohmann::json &ipv6_static_array = + json_response["IPv6StaticAddresses"]; + ipv6_array = nlohmann::json::array(); + ipv6_static_array = nlohmann::json::array(); + for (auto &ipv6_config : ipv6Data) { - nlohmann::json &ipv4_array = json_response["IPv4Addresses"]; - ipv4_array = nlohmann::json::array(); - for (auto &ipv4_config : ipv4Data) + ipv6_array.push_back({{"Address", ipv6_config.address}, + {"PrefixLength", ipv6_config.prefixLength}, + {"AddressOrigin", ipv6_config.origin}}); + if (ipv6_config.origin == "Static") { - ipv4_array.push_back({{"AddressOrigin", ipv4_config.origin}, - {"SubnetMask", ipv4_config.netmask}, - {"Address", ipv4_config.address}, - {"Gateway", ipv4_config.gateway}}); + ipv6_static_array.push_back( + {{"Address", ipv6_config.address}, + {"PrefixLength", ipv6_config.prefixLength}, + {"AddressOrigin", ipv6_config.origin}}); } } } @@ -1251,7 +1736,8 @@ class EthernetInterface : public Node params[0], [this, asyncResp, iface_id{std::string(params[0])}]( const bool &success, const EthernetInterfaceData ðData, - const boost::container::flat_set &ipv4Data) { + const boost::container::flat_set &ipv4Data, + const boost::container::flat_set &ipv6Data) { if (!success) { // TODO(Pawel)consider distinguish between non existing @@ -1260,16 +1746,18 @@ class EthernetInterface : public Node "EthernetInterface", iface_id); return; } + asyncResp->res.jsonValue["@odata.type"] = - "#EthernetInterface.v1_2_0.EthernetInterface"; + "#EthernetInterface.v1_4_1.EthernetInterface"; asyncResp->res.jsonValue["@odata.context"] = - "/redfish/v1/$metadata#EthernetInterface.EthernetInterface"; + "/redfish/v1/" + "$metadata#EthernetInterface.EthernetInterface"; asyncResp->res.jsonValue["Name"] = "Manager Ethernet Interface"; asyncResp->res.jsonValue["Description"] = "Management Network Interface"; parseInterfaceData(asyncResp->res.jsonValue, iface_id, ethData, - ipv4Data); + ipv4Data, ipv6Data); }); } @@ -1285,69 +1773,81 @@ class EthernetInterface : public Node const std::string &iface_id = params[0]; - std::optional vlan; std::optional hostname; - std::optional ipv4Addresses; - std::optional ipv6Addresses; - - if (!json_util::readJson(req, res, "VLAN", vlan, "HostName", hostname, - "IPv4Addresses", ipv4Addresses, - "IPv6Addresses", ipv6Addresses)) + std::optional macAddress; + std::optional ipv6DefaultGateway; + std::optional ipv4StaticAddresses; + std::optional ipv6StaticAddresses; + std::optional> staticNameServers; + std::optional dhcpv4; + std::optional dhcpv6; + DHCPParameters v4dhcpParms; + DHCPParameters v6dhcpParms; + + if (!json_util::readJson( + req, res, "HostName", hostname, "IPv4StaticAddresses", + ipv4StaticAddresses, "MACAddress", macAddress, + "StaticNameServers", staticNameServers, "IPv6DefaultGateway", + ipv6DefaultGateway, "IPv6StaticAddresses", ipv6StaticAddresses, + "DHCPv4", dhcpv4, "DHCPv6", dhcpv6)) { return; } - std::optional vlanId = 0; - std::optional vlanEnable = false; - if (vlan) + if (dhcpv4) { - if (!json_util::readJson(*vlan, res, "VLANEnable", vlanEnable, - "VLANId", vlanId)) + if (!json_util::readJson(*dhcpv4, res, "DHCPEnabled", + v4dhcpParms.dhcpv4Enabled, "UseDNSServers", + v4dhcpParms.useDNSServers, "UseNTPServers", + v4dhcpParms.useNTPServers, "UseDomainName", + v4dhcpParms.useUseDomainName)) { return; } - // Need both vlanId and vlanEnable to service this request - if (static_cast(vlanId) ^ static_cast(vlanEnable)) - { - if (vlanId) - { - messages::propertyMissing(asyncResp->res, "VLANEnable"); - } - else - { - messages::propertyMissing(asyncResp->res, "VLANId"); - } + } + if (dhcpv6) + { + if (!json_util::readJson(*dhcpv6, res, "OperatingMode", + v6dhcpParms.dhcpv6OperatingMode, + "UseDNSServers", v6dhcpParms.useDNSServers, + "UseNTPServers", v6dhcpParms.useNTPServers, + "UseDomainName", + v6dhcpParms.useUseDomainName)) + { return; } } - // Get single eth interface data, and call the below callback for JSON - // preparation + // Get single eth interface data, and call the below callback for + // JSON preparation getEthernetIfaceData( iface_id, - [this, asyncResp, iface_id, vlanId, vlanEnable, - hostname = std::move(hostname), - ipv4Addresses = std::move(ipv4Addresses), - ipv6Addresses = std::move(ipv6Addresses)]( + [this, asyncResp, iface_id, hostname = std::move(hostname), + macAddress = std::move(macAddress), + ipv4StaticAddresses = std::move(ipv4StaticAddresses), + ipv6DefaultGateway = std::move(ipv6DefaultGateway), + ipv6StaticAddresses = std::move(ipv6StaticAddresses), + staticNameServers = std::move(staticNameServers), + dhcpv4 = std::move(dhcpv4), dhcpv6 = std::move(dhcpv6), + v4dhcpParms = std::move(v4dhcpParms), + v6dhcpParms = std::move(v6dhcpParms)]( const bool &success, const EthernetInterfaceData ðData, - const boost::container::flat_set &ipv4Data) { + const boost::container::flat_set &ipv4Data, + const boost::container::flat_set &ipv6Data) { if (!success) { // ... otherwise return error // TODO(Pawel)consider distinguish between non existing // object, and other errors - messages::resourceNotFound( - asyncResp->res, "VLAN Network Interface", iface_id); + messages::resourceNotFound(asyncResp->res, + "Ethernet Interface", iface_id); return; } - parseInterfaceData(asyncResp->res.jsonValue, iface_id, ethData, - ipv4Data); - - if (vlanId && vlanEnable) + if (dhcpv4 || dhcpv6) { - handleVlanPatch(iface_id, *vlanId, *vlanEnable, ethData, - asyncResp); + handleDHCPPatch(iface_id, ethData, std::move(v4dhcpParms), + std::move(v6dhcpParms), asyncResp); } if (hostname) @@ -1355,17 +1855,42 @@ class EthernetInterface : public Node handleHostnamePatch(*hostname, asyncResp); } - if (ipv4Addresses) + if (macAddress) + { + handleMACAddressPatch(iface_id, *macAddress, asyncResp); + } + + if (ipv4StaticAddresses) + { + // TODO(ed) for some reason the capture of ipv4Addresses + // above is returning a const value, not a non-const + // value. This doesn't really work for us, as we need to + // be able to efficiently move out the intermedia + // nlohmann::json objects. This makes a copy of the + // structure, and operates on that, but could be done + // more efficiently + nlohmann::json ipv4Static = std::move(*ipv4StaticAddresses); + handleIPv4StaticPatch(iface_id, ipv4Static, ipv4Data, + asyncResp); + } + + if (staticNameServers) { - handleIPv4Patch(iface_id, *ipv4Addresses, ipv4Data, - asyncResp); + handleStaticNameServersPatch(iface_id, *staticNameServers, + asyncResp); } - if (ipv6Addresses) + if (ipv6DefaultGateway) { - // TODO(kkowalsk) IPv6 Not supported on D-Bus yet messages::propertyNotWritable(asyncResp->res, - "IPv6Addresses"); + "IPv6DefaultGateway"); + } + + if (ipv6StaticAddresses) + { + nlohmann::json ipv6Static = std::move(*ipv6StaticAddresses); + handleIPv6StaticAddressesPatch(iface_id, ipv6Static, + ipv6Data, asyncResp); } }); } @@ -1400,7 +1925,8 @@ class VlanNetworkInterface : public Node void parseInterfaceData( nlohmann::json &json_response, const std::string &parent_iface_id, const std::string &iface_id, const EthernetInterfaceData ðData, - const boost::container::flat_set &ipv4Data) + const boost::container::flat_set &ipv4Data, + const boost::container::flat_set &ipv6Data) { // Fill out obvious data... json_response["Id"] = iface_id; @@ -1409,20 +1935,16 @@ class VlanNetworkInterface : public Node "/VLANs/" + iface_id; json_response["VLANEnable"] = true; - if (ethData.vlan_id) + if (!ethData.vlan_id.empty()) { - json_response["VLANId"] = *ethData.vlan_id; + json_response["VLANId"] = ethData.vlan_id.back(); } } - bool verifyNames(crow::Response &res, const std::string &parent, - const std::string &iface) + bool verifyNames(const std::string &parent, const std::string &iface) { - std::shared_ptr asyncResp = std::make_shared(res); if (!boost::starts_with(iface, parent + "_")) { - messages::resourceNotFound(asyncResp->res, "VLAN Network Interface", - iface); return false; } else @@ -1454,26 +1976,29 @@ class VlanNetworkInterface : public Node res.jsonValue["@odata.type"] = "#VLanNetworkInterface.v1_1_0.VLanNetworkInterface"; res.jsonValue["@odata.context"] = - "/redfish/v1/$metadata#VLanNetworkInterface.VLanNetworkInterface"; + "/redfish/v1/" + "$metadata#VLanNetworkInterface.VLanNetworkInterface"; res.jsonValue["Name"] = "VLAN Network Interface"; - if (!verifyNames(res, parent_iface_id, iface_id)) + if (!verifyNames(parent_iface_id, iface_id)) { return; } - // Get single eth interface data, and call the below callback for JSON - // preparation + // Get single eth interface data, and call the below callback for + // JSON preparation getEthernetIfaceData( - iface_id, - [this, asyncResp, parent_iface_id, iface_id]( + params[1], + [this, asyncResp, parent_iface_id{std::string(params[0])}, + iface_id{std::string(params[1])}]( const bool &success, const EthernetInterfaceData ðData, - const boost::container::flat_set &ipv4Data) { - if (success && ethData.vlan_id) + const boost::container::flat_set &ipv4Data, + const boost::container::flat_set &ipv6Data) { + if (success && ethData.vlan_id.size() != 0) { parseInterfaceData(asyncResp->res.jsonValue, parent_iface_id, iface_id, ethData, - ipv4Data); + ipv4Data, ipv6Data); } else { @@ -1499,8 +2024,10 @@ class VlanNetworkInterface : public Node const std::string &parentIfaceId = params[0]; const std::string &ifaceId = params[1]; - if (!verifyNames(res, parentIfaceId, ifaceId)) + if (!verifyNames(parentIfaceId, ifaceId)) { + messages::resourceNotFound(asyncResp->res, "VLAN Network Interface", + ifaceId); return; } @@ -1513,28 +2040,53 @@ class VlanNetworkInterface : public Node return; } - // Get single eth interface data, and call the below callback for JSON - // preparation + // Get single eth interface data, and call the below callback for + // JSON preparation getEthernetIfaceData( - ifaceId, - [this, asyncResp, parentIfaceId, ifaceId, vlanEnable, vlanId]( + params[1], + [asyncResp, parentIfaceId{std::string(params[0])}, + ifaceId{std::string(params[1])}, &vlanEnable, &vlanId]( const bool &success, const EthernetInterfaceData ðData, - const boost::container::flat_set &ipv4Data) { - if (!success) + const boost::container::flat_set &ipv4Data, + const boost::container::flat_set &ipv6Data) { + if (success && !ethData.vlan_id.empty()) + { + auto callback = + [asyncResp](const boost::system::error_code ec) { + if (ec) + { + messages::internalError(asyncResp->res); + } + }; + + if (vlanEnable == true) + { + crow::connections::systemBus->async_method_call( + std::move(callback), "xyz.openbmc_project.Network", + "/xyz/openbmc_project/network/" + ifaceId, + "org.freedesktop.DBus.Properties", "Set", + "xyz.openbmc_project.Network.VLAN", "Id", + std::variant(vlanId)); + } + else + { + BMCWEB_LOG_DEBUG << "vlanEnable is false. Deleting the " + "vlan interface"; + crow::connections::systemBus->async_method_call( + std::move(callback), "xyz.openbmc_project.Network", + std::string("/xyz/openbmc_project/network/") + + ifaceId, + "xyz.openbmc_project.Object.Delete", "Delete"); + } + } + else { // TODO(Pawel)consider distinguish between non existing // object, and other errors messages::resourceNotFound( asyncResp->res, "VLAN Network Interface", ifaceId); - return; } - - parseInterfaceData(asyncResp->res.jsonValue, parentIfaceId, - ifaceId, ethData, ipv4Data); - - EthernetInterface::handleVlanPatch(ifaceId, vlanId, vlanEnable, - ethData, asyncResp); }); } @@ -1551,24 +2103,24 @@ class VlanNetworkInterface : public Node const std::string &parentIfaceId = params[0]; const std::string &ifaceId = params[1]; - if (!verifyNames(asyncResp->res, parentIfaceId, ifaceId)) + if (!verifyNames(parentIfaceId, ifaceId)) { + messages::resourceNotFound(asyncResp->res, "VLAN Network Interface", + ifaceId); return; } - // Get single eth interface data, and call the below callback for JSON - // preparation + // Get single eth interface data, and call the below callback for + // JSON preparation getEthernetIfaceData( - ifaceId, - [this, asyncResp, parentIfaceId{std::string(parentIfaceId)}, - ifaceId{std::string(ifaceId)}]( + params[1], + [asyncResp, parentIfaceId{std::string(params[0])}, + ifaceId{std::string(params[1])}]( const bool &success, const EthernetInterfaceData ðData, - const boost::container::flat_set &ipv4Data) { - if (success && ethData.vlan_id) + const boost::container::flat_set &ipv4Data, + const boost::container::flat_set &ipv6Data) { + if (success && !ethData.vlan_id.empty()) { - parseInterfaceData(asyncResp->res.jsonValue, parentIfaceId, - ifaceId, ethData, ipv4Data); - auto callback = [asyncResp](const boost::system::error_code ec) { if (ec) @@ -1634,15 +2186,23 @@ class VlanNetworkInterfaceCollection : public Node // Get eth interface list, and call the below callback for JSON // preparation getEthernetIfaceList( - [this, asyncResp, - rootInterfaceName{std::string(rootInterfaceName)}]( + [asyncResp, rootInterfaceName{std::string(rootInterfaceName)}]( const bool &success, - const std::vector &iface_list) { + const boost::container::flat_set &iface_list) { if (!success) { messages::internalError(asyncResp->res); return; } + + if (iface_list.find(rootInterfaceName) == iface_list.end()) + { + messages::resourceNotFound(asyncResp->res, + "VLanNetworkInterfaceCollection", + rootInterfaceName); + return; + } + asyncResp->res.jsonValue["@odata.type"] = "#VLanNetworkInterfaceCollection." "VLanNetworkInterfaceCollection"; @@ -1666,12 +2226,6 @@ class VlanNetworkInterfaceCollection : public Node } } - if (iface_array.empty()) - { - messages::resourceNotFound( - asyncResp->res, "EthernetInterface", rootInterfaceName); - return; - } asyncResp->res.jsonValue["Members@odata.count"] = iface_array.size(); asyncResp->res.jsonValue["Members"] = std::move(iface_array); @@ -1690,12 +2244,27 @@ class VlanNetworkInterfaceCollection : public Node messages::internalError(asyncResp->res); return; } - + bool vlanEnable = false; uint32_t vlanId = 0; - if (!json_util::readJson(req, res, "VLANId", vlanId)) + if (!json_util::readJson(req, res, "VLANId", vlanId, "VLANEnable", + vlanEnable)) { return; } + // Need both vlanId and vlanEnable to service this request + if (!vlanId) + { + messages::propertyMissing(asyncResp->res, "VLANId"); + } + if (!vlanEnable) + { + messages::propertyMissing(asyncResp->res, "VLANEnable"); + } + if (static_cast(vlanId) ^ vlanEnable) + { + return; + } + const std::string &rootInterfaceName = params[0]; auto callback = [asyncResp](const boost::system::error_code ec) { if (ec) diff --git a/Contrib-Inspur/bmcweb/redfish-core/lib/health.hpp b/Contrib-Inspur/bmcweb/redfish-core/lib/health.hpp new file mode 100644 index 00000000..fe65ebfb --- /dev/null +++ b/Contrib-Inspur/bmcweb/redfish-core/lib/health.hpp @@ -0,0 +1,220 @@ +/* +// Copyright (c) 2019 Intel Corporation +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +*/ +#pragma once + +#include "async_resp.hpp" + +#include +#include +#include +#include + +namespace redfish +{ + +struct HealthPopulate : std::enable_shared_from_this +{ + HealthPopulate(const std::shared_ptr &asyncResp) : + asyncResp(asyncResp), jsonStatus(asyncResp->res.jsonValue["Status"]) + { + } + + HealthPopulate(const std::shared_ptr &asyncResp, + nlohmann::json &status) : + asyncResp(asyncResp), + jsonStatus(status) + { + } + + ~HealthPopulate() + { + nlohmann::json &health = jsonStatus["Health"]; + nlohmann::json &rollup = jsonStatus["HealthRollup"]; + + health = "OK"; + rollup = "OK"; + + for (const std::shared_ptr &health : children) + { + health->globalInventoryPath = globalInventoryPath; + health->statuses = statuses; + } + + for (const auto &[path, interfaces] : statuses) + { + bool isChild = false; + + // managers inventory is all the inventory, don't skip any + if (!isManagersHealth) + { + + // We only want to look at this association if either the path + // of this association is an inventory item, or one of the + // endpoints in this association is a child + + for (const std::string &child : inventory) + { + if (boost::starts_with(path.str, child)) + { + isChild = true; + break; + } + } + if (!isChild) + { + auto assocIt = + interfaces.find("xyz.openbmc_project.Association"); + if (assocIt == interfaces.end()) + { + continue; + } + auto endpointsIt = assocIt->second.find("endpoints"); + if (endpointsIt == assocIt->second.end()) + { + BMCWEB_LOG_ERROR << "Illegal association at " + << path.str; + continue; + } + const std::vector *endpoints = + std::get_if>( + &endpointsIt->second); + if (endpoints == nullptr) + { + BMCWEB_LOG_ERROR << "Illegal association at " + << path.str; + continue; + } + bool containsChild = false; + for (const std::string &endpoint : *endpoints) + { + if (std::find(inventory.begin(), inventory.end(), + endpoint) != inventory.end()) + { + containsChild = true; + break; + } + } + if (!containsChild) + { + continue; + } + } + } + + if (boost::starts_with(path.str, globalInventoryPath) && + boost::ends_with(path.str, "critical")) + { + health = "Critical"; + rollup = "Critical"; + return; + } + else if (boost::starts_with(path.str, globalInventoryPath) && + boost::ends_with(path.str, "warning")) + { + health = "Warning"; + if (rollup != "Critical") + { + rollup = "Warning"; + } + } + else if (boost::ends_with(path.str, "critical")) + { + rollup = "Critical"; + } + else if (boost::ends_with(path.str, "warning")) + { + if (rollup != "Critical") + { + rollup = "Warning"; + } + } + } + } + + // this should only be called once per url, others should get updated by + // being added as children to the 'main' health object for the page + void populate() + { + if (populated) + { + return; + } + populated = true; + getAllStatusAssociations(); + getGlobalPath(); + } + + void getGlobalPath() + { + std::shared_ptr self = shared_from_this(); + crow::connections::systemBus->async_method_call( + [self](const boost::system::error_code ec, + std::vector &resp) { + if (ec || resp.size() != 1) + { + // no global item, or too many + return; + } + self->globalInventoryPath = std::move(resp[0]); + }, + "xyz.openbmc_project.ObjectMapper", + "/xyz/openbmc_project/object_mapper", + "xyz.openbmc_project.ObjectMapper", "GetSubTreePaths", "/", 0, + std::array{ + "xyz.openbmc_project.Inventory.Item.Global"}); + } + + void getAllStatusAssociations() + { + std::shared_ptr self = shared_from_this(); + crow::connections::systemBus->async_method_call( + [self](const boost::system::error_code ec, + dbus::utility::ManagedObjectType &resp) { + if (ec) + { + return; + } + for (auto it = resp.begin(); it != resp.end();) + { + if (boost::ends_with(it->first.str, "critical") || + boost::ends_with(it->first.str, "warning")) + { + it++; + continue; + } + it = resp.erase(it); + } + self->statuses = std::move(resp); + }, + "xyz.openbmc_project.ObjectMapper", "/", + "org.freedesktop.DBus.ObjectManager", "GetManagedObjects"); + } + + std::shared_ptr asyncResp; + nlohmann::json &jsonStatus; + + // we store pointers to other HealthPopulate items so we can update their + // members and reduce dbus calls. As we hold a shared_ptr to them, they get + // destroyed last, and they need not call populate() + std::vector> children; + + std::vector inventory; + bool isManagersHealth = false; + dbus::utility::ManagedObjectType statuses; + std::string globalInventoryPath = "-"; // default to illegal dbus path + bool populated = false; +}; +} // namespace redfish \ No newline at end of file diff --git a/Contrib-Inspur/bmcweb/redfish-core/lib/led.hpp b/Contrib-Inspur/bmcweb/redfish-core/lib/led.hpp new file mode 100644 index 00000000..43e1b5c3 --- /dev/null +++ b/Contrib-Inspur/bmcweb/redfish-core/lib/led.hpp @@ -0,0 +1,157 @@ +/* +// Copyright (c) 2019 Intel Corporation +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +*/ +#pragma once + +#include "async_resp.hpp" +#include "dbus_utility.hpp" +#include "redfish_util.hpp" + +#include + +namespace redfish +{ +/** + * @brief Retrieves identify led group properties over dbus + * + * @param[in] aResp Shared pointer for generating response message. + * + * @return None. + */ +void getIndicatorLedState(std::shared_ptr aResp) +{ + BMCWEB_LOG_DEBUG << "Get led groups"; + crow::connections::systemBus->async_method_call( + [aResp](const boost::system::error_code ec, + const std::variant asserted) { + // Some systems may not have enclosure_identify_blink object so + // proceed to get enclosure_identify state. + if (!ec) + { + const bool *blinking = std::get_if(&asserted); + if (!blinking) + { + BMCWEB_LOG_DEBUG << "Get identity blinking LED failed"; + messages::internalError(aResp->res); + return; + } + // Blinking ON, no need to check enclosure_identify assert. + if (*blinking) + { + aResp->res.jsonValue["IndicatorLED"] = "Blinking"; + return; + } + } + crow::connections::systemBus->async_method_call( + [aResp](const boost::system::error_code ec, + const std::variant asserted) { + if (!ec) + { + const bool *ledOn = std::get_if(&asserted); + if (!ledOn) + { + BMCWEB_LOG_DEBUG + << "Get enclosure identity led failed"; + messages::internalError(aResp->res); + return; + } + + if (*ledOn) + { + aResp->res.jsonValue["IndicatorLED"] = "Lit"; + } + else + { + aResp->res.jsonValue["IndicatorLED"] = "Off"; + } + } + return; + }, + "xyz.openbmc_project.LED.GroupManager", + "/xyz/openbmc_project/led/groups/enclosure_identify", + "org.freedesktop.DBus.Properties", "Get", + "xyz.openbmc_project.Led.Group", "Asserted"); + }, + "xyz.openbmc_project.LED.GroupManager", + "/xyz/openbmc_project/led/groups/enclosure_identify_blink", + "org.freedesktop.DBus.Properties", "Get", + "xyz.openbmc_project.Led.Group", "Asserted"); +} + +/** + * @brief Sets identify led group properties + * + * @param[in] aResp Shared pointer for generating response message. + * @param[in] ledState LED state passed from request + * + * @return None. + */ +void setIndicatorLedState(std::shared_ptr aResp, + const std::string &ledState) +{ + BMCWEB_LOG_DEBUG << "Set led groups"; + bool ledOn = false; + bool ledBlinkng = false; + + if (ledState == "Lit") + { + ledOn = true; + } + else if (ledState == "Blinking") + { + ledBlinkng = true; + } + else if (ledState != "Off") + { + messages::propertyValueNotInList(aResp->res, ledState, "IndicatorLED"); + return; + } + + crow::connections::systemBus->async_method_call( + [aResp, ledOn, ledBlinkng](const boost::system::error_code ec, + const std::variant asserted) mutable { + if (ec) + { + // Some systems may not have enclosure_identify_blink object so + // Lets set enclosure_identify state to true if Blinking is + // true. + if (ledBlinkng) + { + ledOn = true; + } + } + crow::connections::systemBus->async_method_call( + [aResp](const boost::system::error_code ec, + const std::variant asserted) { + if (ec) + { + BMCWEB_LOG_DEBUG << "DBUS response error " << ec; + messages::internalError(aResp->res); + return; + } + }, + "xyz.openbmc_project.LED.GroupManager", + "/xyz/openbmc_project/led/groups/enclosure_identify", + "org.freedesktop.DBus.Properties", "Set", + "xyz.openbmc_project.Led.Group", "Asserted", + std::variant(ledOn)); + }, + "xyz.openbmc_project.LED.GroupManager", + "/xyz/openbmc_project/led/groups/enclosure_identify_blink", + "org.freedesktop.DBus.Properties", "Set", + "xyz.openbmc_project.Led.Group", "Asserted", + std::variant(ledBlinkng)); +} +} // namespace redfish \ No newline at end of file diff --git a/Contrib-Inspur/bmcweb/redfish-core/lib/log_services.hpp b/Contrib-Inspur/bmcweb/redfish-core/lib/log_services.hpp index 3cff994c..9bf661a1 100644 --- a/Contrib-Inspur/bmcweb/redfish-core/lib/log_services.hpp +++ b/Contrib-Inspur/bmcweb/redfish-core/lib/log_services.hpp @@ -15,55 +15,157 @@ */ #pragma once -#include "filesystem.hpp" #include "node.hpp" +#include "registries.hpp" +#include "registries/base_message_registry.hpp" +#include "registries/openbmc_message_registry.hpp" #include +#include +#include #include -#include +#include +#include +#include +#include #include namespace redfish { -constexpr char const *cpuLogObject = "com.intel.CpuDebugLog"; -constexpr char const *cpuLogPath = "/com/intel/CpuDebugLog"; -constexpr char const *cpuLogImmediatePath = "/com/intel/CpuDebugLog/Immediate"; -constexpr char const *cpuLogInterface = "com.intel.CpuDebugLog"; -constexpr char const *cpuLogImmediateInterface = - "com.intel.CpuDebugLog.Immediate"; -constexpr char const *cpuLogRawPECIInterface = - "com.intel.CpuDebugLog.SendRawPeci"; +constexpr char const *crashdumpObject = "com.intel.crashdump"; +constexpr char const *crashdumpPath = "/com/intel/crashdump"; +constexpr char const *crashdumpOnDemandPath = "/com/intel/crashdump/OnDemand"; +constexpr char const *crashdumpInterface = "com.intel.crashdump"; +constexpr char const *deleteAllInterface = + "xyz.openbmc_project.Collection.DeleteAll"; +constexpr char const *crashdumpOnDemandInterface = + "com.intel.crashdump.OnDemand"; +constexpr char const *crashdumpRawPECIInterface = + "com.intel.crashdump.SendRawPeci"; + +namespace message_registries +{ +static const Message *getMessageFromRegistry( + const std::string &messageKey, + const boost::beast::span registry) +{ + boost::beast::span::const_iterator messageIt = + std::find_if(registry.cbegin(), registry.cend(), + [&messageKey](const MessageEntry &messageEntry) { + return !std::strcmp(messageEntry.first, + messageKey.c_str()); + }); + if (messageIt != registry.cend()) + { + return &messageIt->second; + } + + return nullptr; +} + +static const Message *getMessage(const std::string_view &messageID) +{ + // Redfish MessageIds are in the form + // RegistryName.MajorVersion.MinorVersion.MessageKey, so parse it to find + // the right Message + std::vector fields; + fields.reserve(4); + boost::split(fields, messageID, boost::is_any_of(".")); + std::string ®istryName = fields[0]; + std::string &messageKey = fields[3]; + + // Find the right registry and check it for the MessageKey + if (std::string(base::header.registryPrefix) == registryName) + { + return getMessageFromRegistry( + messageKey, boost::beast::span(base::registry)); + } + if (std::string(openbmc::header.registryPrefix) == registryName) + { + return getMessageFromRegistry( + messageKey, + boost::beast::span(openbmc::registry)); + } + return nullptr; +} +} // namespace message_registries namespace fs = std::filesystem; +using GetManagedPropertyType = boost::container::flat_map< + std::string, + sdbusplus::message::variant>; + +using GetManagedObjectsType = boost::container::flat_map< + sdbusplus::message::object_path, + boost::container::flat_map>; + +inline std::string translateSeverityDbusToRedfish(const std::string &s) +{ + if (s == "xyz.openbmc_project.Logging.Entry.Level.Alert") + { + return "Critical"; + } + else if (s == "xyz.openbmc_project.Logging.Entry.Level.Critical") + { + return "Critical"; + } + else if (s == "xyz.openbmc_project.Logging.Entry.Level.Debug") + { + return "OK"; + } + else if (s == "xyz.openbmc_project.Logging.Entry.Level.Emergency") + { + return "Critical"; + } + else if (s == "xyz.openbmc_project.Logging.Entry.Level.Error") + { + return "Critical"; + } + else if (s == "xyz.openbmc_project.Logging.Entry.Level.Informational") + { + return "OK"; + } + else if (s == "xyz.openbmc_project.Logging.Entry.Level.Notice") + { + return "OK"; + } + else if (s == "xyz.openbmc_project.Logging.Entry.Level.Warning") + { + return "Warning"; + } + return ""; +} + static int getJournalMetadata(sd_journal *journal, - const boost::string_view &field, - boost::string_view &contents) + const std::string_view &field, + std::string_view &contents) { const char *data = nullptr; size_t length = 0; int ret = 0; // Get the metadata from the requested field of the journal entry - ret = sd_journal_get_data(journal, field.data(), (const void **)&data, - &length); + ret = sd_journal_get_data(journal, field.data(), + reinterpret_cast(&data), &length); if (ret < 0) { return ret; } - contents = boost::string_view(data, length); + contents = std::string_view(data, length); // Only use the content after the "=" character. contents.remove_prefix(std::min(contents.find("=") + 1, contents.size())); return ret; } static int getJournalMetadata(sd_journal *journal, - const boost::string_view &field, const int &base, - int &contents) + const std::string_view &field, const int &base, + long int &contents) { int ret = 0; - boost::string_view metadata; + std::string_view metadata; // Get the metadata from the requested field of the journal entry ret = getJournalMetadata(journal, field, metadata); if (ret < 0) @@ -89,30 +191,30 @@ static bool getEntryTimestamp(sd_journal *journal, std::string &entryTimestamp) static_cast(timestamp / 1000 / 1000); // Convert from us to s struct tm *loctime = localtime(&t); char entryTime[64] = {}; - if (NULL != loctime) + if (nullptr != loctime) { strftime(entryTime, sizeof(entryTime), "%FT%T%z", loctime); } // Insert the ':' into the timezone - boost::string_view t1(entryTime); - boost::string_view t2(entryTime); + std::string_view t1(entryTime); + std::string_view t2(entryTime); if (t1.size() > 2 && t2.size() > 2) { t1.remove_suffix(2); t2.remove_prefix(t2.size() - 2); } - entryTimestamp = t1.to_string() + ":" + t2.to_string(); + entryTimestamp = std::string(t1) + ":" + std::string(t2); return true; } static bool getSkipParam(crow::Response &res, const crow::Request &req, - long &skip) + uint64_t &skip) { char *skipParam = req.urlParams.get("$skip"); if (skipParam != nullptr) { char *ptr = nullptr; - skip = std::strtol(skipParam, &ptr, 10); + skip = std::strtoul(skipParam, &ptr, 10); if (*skipParam == '\0' || *ptr != '\0') { @@ -120,33 +222,26 @@ static bool getSkipParam(crow::Response &res, const crow::Request &req, "$skip"); return false; } - if (skip < 0) - { - - messages::queryParameterOutOfRange(res, std::to_string(skip), - "$skip", "greater than 0"); - return false; - } } return true; } -static constexpr const long maxEntriesPerPage = 1000; +static constexpr const uint64_t maxEntriesPerPage = 1000; static bool getTopParam(crow::Response &res, const crow::Request &req, - long &top) + uint64_t &top) { char *topParam = req.urlParams.get("$top"); if (topParam != nullptr) { char *ptr = nullptr; - top = std::strtol(topParam, &ptr, 10); + top = std::strtoul(topParam, &ptr, 10); if (*topParam == '\0' || *ptr != '\0') { messages::queryParameterValueTypeError(res, std::string(topParam), "$top"); return false; } - if (top < 1 || top > maxEntriesPerPage) + if (top < 1U || top > maxEntriesPerPage) { messages::queryParameterOutOfRange( @@ -158,11 +253,17 @@ static bool getTopParam(crow::Response &res, const crow::Request &req, return true; } -static bool getUniqueEntryID(sd_journal *journal, std::string &entryID) +static bool getUniqueEntryID(sd_journal *journal, std::string &entryID, + const bool firstEntry = true) { int ret = 0; static uint64_t prevTs = 0; static int index = 0; + if (firstEntry) + { + prevTs = 0; + } + // Get the entry timestamp uint64_t curTs = 0; ret = sd_journal_get_realtime_usec(journal, &curTs); @@ -193,34 +294,73 @@ static bool getUniqueEntryID(sd_journal *journal, std::string &entryID) return true; } +static bool getUniqueEntryID(const std::string &logEntry, std::string &entryID, + const bool firstEntry = true) +{ + static time_t prevTs = 0; + static int index = 0; + if (firstEntry) + { + prevTs = 0; + } + + // Get the entry timestamp + std::time_t curTs = 0; + std::tm timeStruct = {}; + std::istringstream entryStream(logEntry); + if (entryStream >> std::get_time(&timeStruct, "%Y-%m-%dT%H:%M:%S")) + { + curTs = std::mktime(&timeStruct); + } + // If the timestamp isn't unique, increment the index + if (curTs == prevTs) + { + index++; + } + else + { + // Otherwise, reset it + index = 0; + } + // Save the timestamp + prevTs = curTs; + + entryID = std::to_string(curTs); + if (index > 0) + { + entryID += "_" + std::to_string(index); + } + return true; +} + static bool getTimestampFromID(crow::Response &res, const std::string &entryID, - uint64_t ×tamp, uint16_t &index) + uint64_t ×tamp, uint64_t &index) { if (entryID.empty()) { return false; } // Convert the unique ID back to a timestamp to find the entry - boost::string_view tsStr(entryID); + std::string_view tsStr(entryID); auto underscorePos = tsStr.find("_"); if (underscorePos != tsStr.npos) { // Timestamp has an index tsStr.remove_suffix(tsStr.size() - underscorePos); - boost::string_view indexStr(entryID); + std::string_view indexStr(entryID); indexStr.remove_prefix(underscorePos + 1); std::size_t pos; try { - index = std::stoul(indexStr.to_string(), &pos); + index = std::stoul(std::string(indexStr), &pos); } - catch (std::invalid_argument) + catch (std::invalid_argument &) { messages::resourceMissingAtURI(res, entryID); return false; } - catch (std::out_of_range) + catch (std::out_of_range &) { messages::resourceMissingAtURI(res, entryID); return false; @@ -235,14 +375,14 @@ static bool getTimestampFromID(crow::Response &res, const std::string &entryID, std::size_t pos; try { - timestamp = std::stoull(tsStr.to_string(), &pos); + timestamp = std::stoull(std::string(tsStr), &pos); } - catch (std::invalid_argument) + catch (std::invalid_argument &) { messages::resourceMissingAtURI(res, entryID); return false; } - catch (std::out_of_range) + catch (std::out_of_range &) { messages::resourceMissingAtURI(res, entryID); return false; @@ -255,6 +395,31 @@ static bool getTimestampFromID(crow::Response &res, const std::string &entryID, return true; } +static bool + getRedfishLogFiles(std::vector &redfishLogFiles) +{ + static const std::filesystem::path redfishLogDir = "/var/log"; + static const std::string redfishLogFilename = "redfish"; + + // Loop through the directory looking for redfish log files + for (const std::filesystem::directory_entry &dirEnt : + std::filesystem::directory_iterator(redfishLogDir)) + { + // If we find a redfish log file, save the path + std::string filename = dirEnt.path().filename(); + if (boost::starts_with(filename, redfishLogFilename)) + { + redfishLogFiles.emplace_back(redfishLogDir / filename); + } + } + // As the log files rotate, they are appended with a ".#" that is higher for + // the older logs. Since we don't expect more than 10 log files, we + // can just sort the list to get them in order from newest to oldest + std::sort(redfishLogFiles.begin(), redfishLogFiles.end()); + + return !redfishLogFiles.empty(); +} + class SystemLogServiceCollection : public Node { public: @@ -296,7 +461,8 @@ class SystemLogServiceCollection : public Node {{"@odata.id", "/redfish/v1/Systems/system/LogServices/EventLog"}}); #ifdef BMCWEB_ENABLE_REDFISH_CPU_LOG logServiceArray.push_back( - {{"@odata.id", "/redfish/v1/Systems/system/LogServices/CpuLog"}}); + {{"@odata.id", + "/redfish/v1/Systems/system/LogServices/Crashdump"}}); #endif asyncResp->res.jsonValue["Members@odata.count"] = logServiceArray.size(); @@ -338,98 +504,167 @@ class EventLogService : public Node asyncResp->res.jsonValue["Entries"] = { {"@odata.id", "/redfish/v1/Systems/system/LogServices/EventLog/Entries"}}; + asyncResp->res.jsonValue["Actions"]["#LogService.ClearLog"] = { + + {"target", "/redfish/v1/Systems/system/LogServices/EventLog/" + "Actions/LogService.ClearLog"}}; } }; -static int fillEventLogEntryJson(const std::string &bmcLogEntryID, - const boost::string_view &messageID, - sd_journal *journal, - nlohmann::json &bmcLogEntryJson) +class JournalEventLogClear : public Node { - // Get the Log Entry contents - int ret = 0; + public: + JournalEventLogClear(CrowApp &app) : + Node(app, "/redfish/v1/Systems/system/LogServices/EventLog/Actions/" + "LogService.ClearLog/") + { + entityPrivileges = { + {boost::beast::http::verb::get, {{"Login"}}}, + {boost::beast::http::verb::head, {{"Login"}}}, + {boost::beast::http::verb::patch, {{"ConfigureComponents"}}}, + {boost::beast::http::verb::put, {{"ConfigureComponents"}}}, + {boost::beast::http::verb::delete_, {{"ConfigureComponents"}}}, + {boost::beast::http::verb::post, {{"ConfigureComponents"}}}}; + } - boost::string_view msg; - ret = getJournalMetadata(journal, "MESSAGE", msg); - if (ret < 0) + private: + void doPost(crow::Response &res, const crow::Request &req, + const std::vector ¶ms) override { - BMCWEB_LOG_ERROR << "Failed to read MESSAGE field: " << strerror(-ret); - return 1; + std::shared_ptr asyncResp = std::make_shared(res); + + // Clear the EventLog by deleting the log files + std::vector redfishLogFiles; + if (getRedfishLogFiles(redfishLogFiles)) + { + for (const std::filesystem::path &file : redfishLogFiles) + { + std::error_code ec; + std::filesystem::remove(file, ec); + } + } + + // Reload rsyslog so it knows to start new log files + crow::connections::systemBus->async_method_call( + [asyncResp](const boost::system::error_code ec) { + if (ec) + { + BMCWEB_LOG_ERROR << "Failed to reload rsyslog: " << ec; + messages::internalError(asyncResp->res); + return; + } + + messages::success(asyncResp->res); + }, + "org.freedesktop.systemd1", "/org/freedesktop/systemd1", + "org.freedesktop.systemd1.Manager", "ReloadUnit", "rsyslog.service", + "replace"); } +}; - // Get the severity from the PRIORITY field - int severity = 8; // Default to an invalid priority - ret = getJournalMetadata(journal, "PRIORITY", 10, severity); - if (ret < 0) +static int fillEventLogEntryJson(const std::string &logEntryID, + const std::string logEntry, + nlohmann::json &logEntryJson) +{ + // The redfish log format is " ," + // First get the Timestamp + size_t space = logEntry.find_first_of(" "); + if (space == std::string::npos) { - BMCWEB_LOG_ERROR << "Failed to read PRIORITY field: " << strerror(-ret); return 1; } + std::string timestamp = logEntry.substr(0, space); + // Then get the log contents + size_t entryStart = logEntry.find_first_not_of(" ", space); + if (entryStart == std::string::npos) + { + return 1; + } + std::string_view entry(logEntry); + entry.remove_prefix(entryStart); + // Use split to separate the entry into its fields + std::vector logEntryFields; + boost::split(logEntryFields, entry, boost::is_any_of(","), + boost::token_compress_on); + // We need at least a MessageId to be valid + if (logEntryFields.size() < 1) + { + return 1; + } + std::string &messageID = logEntryFields[0]; - // Get the MessageArgs from the journal entry by finding all of the - // REDFISH_MESSAGE_ARG_x fields - const void *data; - size_t length; - std::vector messageArgs; - SD_JOURNAL_FOREACH_DATA(journal, data, length) + // Get the Message from the MessageRegistry + const message_registries::Message *message = + message_registries::getMessage(messageID); + + std::string msg; + std::string severity; + if (message != nullptr) { - boost::string_view field(static_cast(data), length); - if (field.starts_with("REDFISH_MESSAGE_ARG_")) + msg = message->message; + severity = message->severity; + } + + // Get the MessageArgs from the log if there are any + boost::beast::span messageArgs; + if (logEntryFields.size() > 1) + { + std::string &messageArgsStart = logEntryFields[1]; + // If the first string is empty, assume there are no MessageArgs + std::size_t messageArgsSize = 0; + if (!messageArgsStart.empty()) { - // Get the Arg number from the field name - field.remove_prefix(sizeof("REDFISH_MESSAGE_ARG_") - 1); - if (field.empty()) - { - continue; - } - int argNum = std::strtoul(field.data(), nullptr, 10); - if (argNum == 0) - { - continue; - } - // Get the Arg value after the "=" character. - field.remove_prefix(std::min(field.find("=") + 1, field.size())); - // Make sure we have enough space in messageArgs - if (argNum > messageArgs.size()) + messageArgsSize = logEntryFields.size() - 1; + } + + messageArgs = boost::beast::span(&messageArgsStart, messageArgsSize); + + // Fill the MessageArgs into the Message + int i = 0; + for (const std::string &messageArg : messageArgs) + { + std::string argStr = "%" + std::to_string(++i); + size_t argPos = msg.find(argStr); + if (argPos != std::string::npos) { - messageArgs.resize(argNum); + msg.replace(argPos, argStr.length(), messageArg); } - messageArgs[argNum - 1] = field.to_string(); } } - // Get the Created time from the timestamp - std::string entryTimeStr; - if (!getEntryTimestamp(journal, entryTimeStr)) + // Get the Created time from the timestamp. The log timestamp is in RFC3339 + // format which matches the Redfish format except for the fractional seconds + // between the '.' and the '+', so just remove them. + std::size_t dot = timestamp.find_first_of("."); + std::size_t plus = timestamp.find_first_of("+"); + if (dot != std::string::npos && plus != std::string::npos) { - return 1; + timestamp.erase(dot, plus - dot); } // Fill in the log entry with the gathered data - bmcLogEntryJson = { - {"@odata.type", "#LogEntry.v1_3_0.LogEntry"}, + logEntryJson = { + {"@odata.type", "#LogEntry.v1_4_0.LogEntry"}, {"@odata.context", "/redfish/v1/$metadata#LogEntry.LogEntry"}, {"@odata.id", "/redfish/v1/Systems/system/LogServices/EventLog/Entries/" + - bmcLogEntryID}, + logEntryID}, {"Name", "System Event Log Entry"}, - {"Id", bmcLogEntryID}, - {"Message", msg}, - {"MessageId", messageID}, + {"Id", logEntryID}, + {"Message", std::move(msg)}, + {"MessageId", std::move(messageID)}, {"MessageArgs", std::move(messageArgs)}, {"EntryType", "Event"}, - {"Severity", - severity <= 2 ? "Critical" - : severity <= 4 ? "Warning" : severity <= 7 ? "OK" : ""}, - {"Created", std::move(entryTimeStr)}}; + {"Severity", std::move(severity)}, + {"Created", std::move(timestamp)}}; return 0; } -class EventLogEntryCollection : public Node +class JournalEventLogEntryCollection : public Node { public: template - EventLogEntryCollection(CrowApp &app) : + JournalEventLogEntryCollection(CrowApp &app) : Node(app, "/redfish/v1/Systems/system/LogServices/EventLog/Entries/") { entityPrivileges = { @@ -446,8 +681,8 @@ class EventLogEntryCollection : public Node const std::vector ¶ms) override { std::shared_ptr asyncResp = std::make_shared(res); - long skip = 0; - long top = maxEntriesPerPage; // Show max entries by default + uint64_t skip = 0; + uint64_t top = maxEntriesPerPage; // Show max entries by default if (!getSkipParam(asyncResp->res, req, skip)) { return; @@ -467,71 +702,299 @@ class EventLogEntryCollection : public Node asyncResp->res.jsonValue["Name"] = "System Event Log Entries"; asyncResp->res.jsonValue["Description"] = "Collection of System Event Log Entries"; + nlohmann::json &logEntryArray = asyncResp->res.jsonValue["Members"]; logEntryArray = nlohmann::json::array(); - - // Go through the journal and create a unique ID for each entry - sd_journal *journalTmp = nullptr; - int ret = sd_journal_open(&journalTmp, SD_JOURNAL_LOCAL_ONLY); - if (ret < 0) - { - BMCWEB_LOG_ERROR << "failed to open journal: " << strerror(-ret); - messages::internalError(asyncResp->res); - return; - } - std::unique_ptr journal( - journalTmp, sd_journal_close); - journalTmp = nullptr; + // Go through the log files and create a unique ID for each entry + std::vector redfishLogFiles; + getRedfishLogFiles(redfishLogFiles); uint64_t entryCount = 0; - SD_JOURNAL_FOREACH(journal.get()) + std::string logEntry; + + // Oldest logs are in the last file, so start there and loop backwards + for (auto it = redfishLogFiles.rbegin(); it < redfishLogFiles.rend(); + it++) { - // Look for only journal entries that contain a REDFISH_MESSAGE_ID - // field - boost::string_view messageID; - ret = getJournalMetadata(journal.get(), "REDFISH_MESSAGE_ID", - messageID); - if (ret < 0) + std::ifstream logStream(*it); + if (!logStream.is_open()) { continue; } - entryCount++; - // Handle paging using skip (number of entries to skip from the - // start) and top (number of entries to display) - if (entryCount <= skip || entryCount > skip + top) + // Reset the unique ID on the first entry + bool firstEntry = true; + while (std::getline(logStream, logEntry)) { - continue; - } + entryCount++; + // Handle paging using skip (number of entries to skip from the + // start) and top (number of entries to display) + if (entryCount <= skip || entryCount > skip + top) + { + continue; + } - std::string idStr; - if (!getUniqueEntryID(journal.get(), idStr)) - { - continue; - } + std::string idStr; + if (!getUniqueEntryID(logEntry, idStr, firstEntry)) + { + continue; + } - logEntryArray.push_back({}); - nlohmann::json &bmcLogEntry = logEntryArray.back(); - if (fillEventLogEntryJson(idStr, messageID, journal.get(), - bmcLogEntry) != 0) - { - messages::internalError(asyncResp->res); - return; + if (firstEntry) + { + firstEntry = false; + } + + logEntryArray.push_back({}); + nlohmann::json &bmcLogEntry = logEntryArray.back(); + if (fillEventLogEntryJson(idStr, logEntry, bmcLogEntry) != 0) + { + messages::internalError(asyncResp->res); + return; + } } } asyncResp->res.jsonValue["Members@odata.count"] = entryCount; if (skip + top < entryCount) { asyncResp->res.jsonValue["Members@odata.nextLink"] = - "/redfish/v1/Managers/bmc/LogServices/BmcLog/Entries?$skip=" + + "/redfish/v1/Systems/system/LogServices/EventLog/" + "Entries?$skip=" + std::to_string(skip + top); } } }; -class EventLogEntry : public Node +class JournalEventLogEntry : public Node +{ + public: + JournalEventLogEntry(CrowApp &app) : + Node(app, + "/redfish/v1/Systems/system/LogServices/EventLog/Entries//", + std::string()) + { + entityPrivileges = { + {boost::beast::http::verb::get, {{"Login"}}}, + {boost::beast::http::verb::head, {{"Login"}}}, + {boost::beast::http::verb::patch, {{"ConfigureManager"}}}, + {boost::beast::http::verb::put, {{"ConfigureManager"}}}, + {boost::beast::http::verb::delete_, {{"ConfigureManager"}}}, + {boost::beast::http::verb::post, {{"ConfigureManager"}}}}; + } + + private: + void doGet(crow::Response &res, const crow::Request &req, + const std::vector ¶ms) override + { + std::shared_ptr asyncResp = std::make_shared(res); + if (params.size() != 1) + { + messages::internalError(asyncResp->res); + return; + } + const std::string &targetID = params[0]; + + // Go through the log files and check the unique ID for each entry to + // find the target entry + std::vector redfishLogFiles; + getRedfishLogFiles(redfishLogFiles); + std::string logEntry; + + // Oldest logs are in the last file, so start there and loop backwards + for (auto it = redfishLogFiles.rbegin(); it < redfishLogFiles.rend(); + it++) + { + std::ifstream logStream(*it); + if (!logStream.is_open()) + { + continue; + } + + // Reset the unique ID on the first entry + bool firstEntry = true; + while (std::getline(logStream, logEntry)) + { + std::string idStr; + if (!getUniqueEntryID(logEntry, idStr, firstEntry)) + { + continue; + } + + if (firstEntry) + { + firstEntry = false; + } + + if (idStr == targetID) + { + if (fillEventLogEntryJson(idStr, logEntry, + asyncResp->res.jsonValue) != 0) + { + messages::internalError(asyncResp->res); + return; + } + return; + } + } + } + // Requested ID was not found + messages::resourceMissingAtURI(asyncResp->res, targetID); + } +}; + +class DBusEventLogEntryCollection : public Node { public: - EventLogEntry(CrowApp &app) : + template + DBusEventLogEntryCollection(CrowApp &app) : + Node(app, "/redfish/v1/Systems/system/LogServices/EventLog/Entries/") + { + entityPrivileges = { + {boost::beast::http::verb::get, {{"Login"}}}, + {boost::beast::http::verb::head, {{"Login"}}}, + {boost::beast::http::verb::patch, {{"ConfigureManager"}}}, + {boost::beast::http::verb::put, {{"ConfigureManager"}}}, + {boost::beast::http::verb::delete_, {{"ConfigureManager"}}}, + {boost::beast::http::verb::post, {{"ConfigureManager"}}}}; + } + + private: + void doGet(crow::Response &res, const crow::Request &req, + const std::vector ¶ms) override + { + std::shared_ptr asyncResp = std::make_shared(res); + + // Collections don't include the static data added by SubRoute because + // it has a duplicate entry for members + asyncResp->res.jsonValue["@odata.type"] = + "#LogEntryCollection.LogEntryCollection"; + asyncResp->res.jsonValue["@odata.context"] = + "/redfish/v1/$metadata#LogEntryCollection.LogEntryCollection"; + asyncResp->res.jsonValue["@odata.id"] = + "/redfish/v1/Systems/system/LogServices/EventLog/Entries"; + asyncResp->res.jsonValue["Name"] = "System Event Log Entries"; + asyncResp->res.jsonValue["Description"] = + "Collection of System Event Log Entries"; + + // DBus implementation of EventLog/Entries + // Make call to Logging Service to find all log entry objects + crow::connections::systemBus->async_method_call( + [asyncResp](const boost::system::error_code ec, + GetManagedObjectsType &resp) { + if (ec) + { + // TODO Handle for specific error code + BMCWEB_LOG_ERROR + << "getLogEntriesIfaceData resp_handler got error " + << ec; + messages::internalError(asyncResp->res); + return; + } + nlohmann::json &entriesArray = + asyncResp->res.jsonValue["Members"]; + entriesArray = nlohmann::json::array(); + for (auto &objectPath : resp) + { + for (auto &interfaceMap : objectPath.second) + { + if (interfaceMap.first != + "xyz.openbmc_project.Logging.Entry") + { + BMCWEB_LOG_DEBUG << "Bailing early on " + << interfaceMap.first; + continue; + } + entriesArray.push_back({}); + nlohmann::json &thisEntry = entriesArray.back(); + uint32_t *id = nullptr; + std::time_t timestamp{}; + std::string *severity = nullptr; + std::string *message = nullptr; + for (auto &propertyMap : interfaceMap.second) + { + if (propertyMap.first == "Id") + { + id = sdbusplus::message::variant_ns::get_if< + uint32_t>(&propertyMap.second); + if (id == nullptr) + { + messages::propertyMissing(asyncResp->res, + "Id"); + } + } + else if (propertyMap.first == "Timestamp") + { + const uint64_t *millisTimeStamp = + std::get_if(&propertyMap.second); + if (millisTimeStamp == nullptr) + { + messages::propertyMissing(asyncResp->res, + "Timestamp"); + continue; + } + // Retrieve Created property with format: + // yyyy-mm-ddThh:mm:ss + std::chrono::milliseconds chronoTimeStamp( + *millisTimeStamp); + timestamp = std::chrono::duration_cast< + std::chrono::duration>( + chronoTimeStamp) + .count(); + } + else if (propertyMap.first == "Severity") + { + severity = std::get_if( + &propertyMap.second); + if (severity == nullptr) + { + messages::propertyMissing(asyncResp->res, + "Severity"); + } + } + else if (propertyMap.first == "Message") + { + message = std::get_if( + &propertyMap.second); + if (message == nullptr) + { + messages::propertyMissing(asyncResp->res, + "Message"); + } + } + } + thisEntry = { + {"@odata.type", "#LogEntry.v1_4_0.LogEntry"}, + {"@odata.context", "/redfish/v1/" + "$metadata#LogEntry.LogEntry"}, + {"@odata.id", + "/redfish/v1/Systems/system/LogServices/EventLog/" + "Entries/" + + std::to_string(*id)}, + {"Name", "System Event Log Entry"}, + {"Id", std::to_string(*id)}, + {"Message", *message}, + {"EntryType", "Event"}, + {"Severity", + translateSeverityDbusToRedfish(*severity)}, + {"Created", crow::utility::getDateTime(timestamp)}}; + } + } + std::sort(entriesArray.begin(), entriesArray.end(), + [](const nlohmann::json &left, + const nlohmann::json &right) { + return (left["Id"] <= right["Id"]); + }); + asyncResp->res.jsonValue["Members@odata.count"] = + entriesArray.size(); + }, + "xyz.openbmc_project.Logging", "/xyz/openbmc_project/logging", + "org.freedesktop.DBus.ObjectManager", "GetManagedObjects"); + } +}; + +class DBusEventLogEntry : public Node +{ + public: + DBusEventLogEntry(CrowApp &app) : Node(app, "/redfish/v1/Systems/system/LogServices/EventLog/Entries//", std::string()) @@ -545,66 +1008,147 @@ class EventLogEntry : public Node {boost::beast::http::verb::post, {{"ConfigureManager"}}}}; } - private: - void doGet(crow::Response &res, const crow::Request &req, - const std::vector ¶ms) override + private: + void doGet(crow::Response &res, const crow::Request &req, + const std::vector ¶ms) override + { + std::shared_ptr asyncResp = std::make_shared(res); + if (params.size() != 1) + { + messages::internalError(asyncResp->res); + return; + } + const std::string &entryID = params[0]; + + // DBus implementation of EventLog/Entries + // Make call to Logging Service to find all log entry objects + crow::connections::systemBus->async_method_call( + [asyncResp, entryID](const boost::system::error_code ec, + GetManagedPropertyType &resp) { + if (ec) + { + BMCWEB_LOG_ERROR + << "EventLogEntry (DBus) resp_handler got error " << ec; + messages::internalError(asyncResp->res); + return; + } + uint32_t *id = nullptr; + std::time_t timestamp{}; + std::string *severity = nullptr; + std::string *message = nullptr; + for (auto &propertyMap : resp) + { + if (propertyMap.first == "Id") + { + id = std::get_if(&propertyMap.second); + if (id == nullptr) + { + messages::propertyMissing(asyncResp->res, "Id"); + } + } + else if (propertyMap.first == "Timestamp") + { + const uint64_t *millisTimeStamp = + std::get_if(&propertyMap.second); + if (millisTimeStamp == nullptr) + { + messages::propertyMissing(asyncResp->res, + "Timestamp"); + continue; + } + // Retrieve Created property with format: + // yyyy-mm-ddThh:mm:ss + std::chrono::milliseconds chronoTimeStamp( + *millisTimeStamp); + timestamp = + std::chrono::duration_cast< + std::chrono::duration>(chronoTimeStamp) + .count(); + } + else if (propertyMap.first == "Severity") + { + severity = + std::get_if(&propertyMap.second); + if (severity == nullptr) + { + messages::propertyMissing(asyncResp->res, + "Severity"); + } + } + else if (propertyMap.first == "Message") + { + message = std::get_if(&propertyMap.second); + if (message == nullptr) + { + messages::propertyMissing(asyncResp->res, + "Message"); + } + } + } + if (id == nullptr || message == nullptr || severity == nullptr) + { + return; + } + asyncResp->res.jsonValue = { + {"@odata.type", "#LogEntry.v1_4_0.LogEntry"}, + {"@odata.context", "/redfish/v1/" + "$metadata#LogEntry.LogEntry"}, + {"@odata.id", + "/redfish/v1/Systems/system/LogServices/EventLog/" + "Entries/" + + std::to_string(*id)}, + {"Name", "System Event Log Entry"}, + {"Id", std::to_string(*id)}, + {"Message", *message}, + {"EntryType", "Event"}, + {"Severity", translateSeverityDbusToRedfish(*severity)}, + {"Created", crow::utility::getDateTime(timestamp)}}; + }, + "xyz.openbmc_project.Logging", + "/xyz/openbmc_project/logging/entry/" + entryID, + "org.freedesktop.DBus.Properties", "GetAll", + "xyz.openbmc_project.Logging.Entry"); + } + + void doDelete(crow::Response &res, const crow::Request &req, + const std::vector ¶ms) override { - std::shared_ptr asyncResp = std::make_shared(res); + + BMCWEB_LOG_DEBUG << "Do delete single event entries."; + + auto asyncResp = std::make_shared(res); + if (params.size() != 1) { messages::internalError(asyncResp->res); return; } - const std::string &entryID = params[0]; - // Convert the unique ID back to a timestamp to find the entry - uint64_t ts = 0; - uint16_t index = 0; - if (!getTimestampFromID(asyncResp->res, entryID, ts, index)) - { - return; - } + std::string entryID = params[0]; - sd_journal *journalTmp = nullptr; - int ret = sd_journal_open(&journalTmp, SD_JOURNAL_LOCAL_ONLY); - if (ret < 0) - { - BMCWEB_LOG_ERROR << "failed to open journal: " << strerror(-ret); - messages::internalError(asyncResp->res); - return; - } - std::unique_ptr journal( - journalTmp, sd_journal_close); - journalTmp = nullptr; - // Go to the timestamp in the log and move to the entry at the index - ret = sd_journal_seek_realtime_usec(journal.get(), ts); - for (int i = 0; i <= index; i++) - { - sd_journal_next(journal.get()); - } - // Confirm that the entry ID matches what was requested - std::string idStr; - if (!getUniqueEntryID(journal.get(), idStr) || idStr != entryID) - { - messages::resourceMissingAtURI(asyncResp->res, entryID); - return; - } + dbus::utility::escapePathForDbus(entryID); - // only use journal entries that contain a REDFISH_MESSAGE_ID field - boost::string_view messageID; - ret = - getJournalMetadata(journal.get(), "REDFISH_MESSAGE_ID", messageID); - if (ret < 0) - { - messages::resourceNotFound(asyncResp->res, "LogEntry", "system"); - return; - } + // Process response from Logging service. + auto respHandler = [asyncResp](const boost::system::error_code ec) { + BMCWEB_LOG_DEBUG << "EventLogEntry (DBus) doDelete callback: Done"; + if (ec) + { + // TODO Handle for specific error code + BMCWEB_LOG_ERROR + << "EventLogEntry (DBus) doDelete respHandler got error " + << ec; + asyncResp->res.result( + boost::beast::http::status::internal_server_error); + return; + } - if (fillEventLogEntryJson(entryID, messageID, journal.get(), - asyncResp->res.jsonValue) != 0) - { - messages::internalError(asyncResp->res); - return; - } + asyncResp->res.result(boost::beast::http::status::ok); + }; + + // Make call to Logging service to request Delete Log + crow::connections::systemBus->async_method_call( + respHandler, "xyz.openbmc_project.Logging", + "/xyz/openbmc_project/logging/entry/" + entryID, + "xyz.openbmc_project.Object.Delete", "Delete"); } }; @@ -687,7 +1231,7 @@ class BMCJournalLogService : public Node asyncResp->res.jsonValue["OverWritePolicy"] = "WrapsWhenFull"; asyncResp->res.jsonValue["Entries"] = { {"@odata.id", - "/redfish/v1/Managers/bmc/LogServices/Journal/Entries/"}}; + "/redfish/v1/Managers/bmc/LogServices/Journal/Entries"}}; } }; @@ -698,7 +1242,7 @@ static int fillBMCJournalLogEntryJson(const std::string &bmcJournalLogEntryID, // Get the Log Entry contents int ret = 0; - boost::string_view msg; + std::string_view msg; ret = getJournalMetadata(journal, "MESSAGE", msg); if (ret < 0) { @@ -707,12 +1251,11 @@ static int fillBMCJournalLogEntryJson(const std::string &bmcJournalLogEntryID, } // Get the severity from the PRIORITY field - int severity = 8; // Default to an invalid priority + long int severity = 8; // Default to an invalid priority ret = getJournalMetadata(journal, "PRIORITY", 10, severity); if (ret < 0) { BMCWEB_LOG_ERROR << "Failed to read PRIORITY field: " << strerror(-ret); - return 1; } // Get the Created time from the timestamp @@ -724,7 +1267,7 @@ static int fillBMCJournalLogEntryJson(const std::string &bmcJournalLogEntryID, // Fill in the log entry with the gathered data bmcJournalLogEntryJson = { - {"@odata.type", "#LogEntry.v1_3_0.LogEntry"}, + {"@odata.type", "#LogEntry.v1_4_0.LogEntry"}, {"@odata.context", "/redfish/v1/$metadata#LogEntry.LogEntry"}, {"@odata.id", "/redfish/v1/Managers/bmc/LogServices/Journal/Entries/" + bmcJournalLogEntryID}, @@ -733,9 +1276,8 @@ static int fillBMCJournalLogEntryJson(const std::string &bmcJournalLogEntryID, {"Message", msg}, {"EntryType", "Oem"}, {"Severity", - severity <= 2 ? "Critical" - : severity <= 4 ? "Warning" : severity <= 7 ? "OK" : ""}, - {"OemRecordFormat", "Intel BMC Journal Entry"}, + severity <= 2 ? "Critical" : severity <= 4 ? "Warning" : "OK"}, + {"OemRecordFormat", "BMC Journal Entry"}, {"Created", std::move(entryTimeStr)}}; return 0; } @@ -762,8 +1304,8 @@ class BMCJournalLogEntryCollection : public Node { std::shared_ptr asyncResp = std::make_shared(res); static constexpr const long maxEntriesPerPage = 1000; - long skip = 0; - long top = maxEntriesPerPage; // Show max entries by default + uint64_t skip = 0; + uint64_t top = maxEntriesPerPage; // Show max entries by default if (!getSkipParam(asyncResp->res, req, skip)) { return; @@ -804,6 +1346,8 @@ class BMCJournalLogEntryCollection : public Node journalTmp, sd_journal_close); journalTmp = nullptr; uint64_t entryCount = 0; + // Reset the unique ID on the first entry + bool firstEntry = true; SD_JOURNAL_FOREACH(journal.get()) { entryCount++; @@ -815,11 +1359,16 @@ class BMCJournalLogEntryCollection : public Node } std::string idStr; - if (!getUniqueEntryID(journal.get(), idStr)) + if (!getUniqueEntryID(journal.get(), idStr, firstEntry)) { continue; } + if (firstEntry) + { + firstEntry = false; + } + logEntryArray.push_back({}); nlohmann::json &bmcJournalLogEntry = logEntryArray.back(); if (fillBMCJournalLogEntryJson(idStr, journal.get(), @@ -868,7 +1417,7 @@ class BMCJournalLogEntry : public Node const std::string &entryID = params[0]; // Convert the unique ID back to a timestamp to find the entry uint64_t ts = 0; - uint16_t index = 0; + uint64_t index = 0; if (!getTimestampFromID(asyncResp->res, entryID, ts, index)) { return; @@ -886,14 +1435,25 @@ class BMCJournalLogEntry : public Node journalTmp, sd_journal_close); journalTmp = nullptr; // Go to the timestamp in the log and move to the entry at the index + // tracking the unique ID + std::string idStr; + bool firstEntry = true; ret = sd_journal_seek_realtime_usec(journal.get(), ts); - for (int i = 0; i <= index; i++) + for (uint64_t i = 0; i <= index; i++) { sd_journal_next(journal.get()); + if (!getUniqueEntryID(journal.get(), idStr, firstEntry)) + { + messages::internalError(asyncResp->res); + return; + } + if (firstEntry) + { + firstEntry = false; + } } // Confirm that the entry ID matches what was requested - std::string idStr; - if (!getUniqueEntryID(journal.get(), idStr) || idStr != entryID) + if (idStr != entryID) { messages::resourceMissingAtURI(asyncResp->res, entryID); return; @@ -908,12 +1468,12 @@ class BMCJournalLogEntry : public Node } }; -class CPULogService : public Node +class CrashdumpService : public Node { public: template - CPULogService(CrowApp &app) : - Node(app, "/redfish/v1/Systems/system/LogServices/CpuLog/") + CrashdumpService(CrowApp &app) : + Node(app, "/redfish/v1/Systems/system/LogServices/Crashdump/") { entityPrivileges = { {boost::beast::http::verb::get, {{"Login"}}}, @@ -934,40 +1494,185 @@ class CPULogService : public Node std::shared_ptr asyncResp = std::make_shared(res); // Copy over the static data to include the entries added by SubRoute asyncResp->res.jsonValue["@odata.id"] = - "/redfish/v1/Systems/system/LogServices/CpuLog"; + "/redfish/v1/Systems/system/LogServices/Crashdump"; asyncResp->res.jsonValue["@odata.type"] = "#LogService.v1_1_0.LogService"; asyncResp->res.jsonValue["@odata.context"] = "/redfish/v1/$metadata#LogService.LogService"; - asyncResp->res.jsonValue["Name"] = "Open BMC CPU Log Service"; - asyncResp->res.jsonValue["Description"] = "CPU Log Service"; - asyncResp->res.jsonValue["Id"] = "CPU Log"; + asyncResp->res.jsonValue["Name"] = "Open BMC Crashdump Service"; + asyncResp->res.jsonValue["Description"] = "Crashdump Service"; + asyncResp->res.jsonValue["Id"] = "Crashdump"; asyncResp->res.jsonValue["OverWritePolicy"] = "WrapsWhenFull"; asyncResp->res.jsonValue["MaxNumberOfRecords"] = 3; asyncResp->res.jsonValue["Entries"] = { {"@odata.id", - "/redfish/v1/Managers/bmc/LogServices/CpuLog/Entries"}}; + "/redfish/v1/Systems/system/LogServices/Crashdump/Entries"}}; asyncResp->res.jsonValue["Actions"] = { + {"#LogService.ClearLog", + {{"target", "/redfish/v1/Systems/system/LogServices/Crashdump/" + "Actions/LogService.ClearLog"}}}, {"Oem", - {{"#CpuLog.Immediate", - {{"target", "/redfish/v1/Systems/system/LogServices/CpuLog/" - "Actions/Oem/CpuLog.Immediate"}}}}}}; + {{"#Crashdump.OnDemand", + {{"target", "/redfish/v1/Systems/system/LogServices/Crashdump/" + "Actions/Oem/Crashdump.OnDemand"}}}}}}; #ifdef BMCWEB_ENABLE_REDFISH_RAW_PECI asyncResp->res.jsonValue["Actions"]["Oem"].push_back( - {"#CpuLog.SendRawPeci", - {{"target", "/redfish/v1/Systems/system/LogServices/CpuLog/" - "Actions/Oem/CpuLog.SendRawPeci"}}}); + {"#Crashdump.SendRawPeci", + {{"target", "/redfish/v1/Systems/system/LogServices/Crashdump/" + "Actions/Oem/Crashdump.SendRawPeci"}}}); #endif } }; -class CPULogEntryCollection : public Node +class CrashdumpClear : public Node +{ + public: + CrashdumpClear(CrowApp &app) : + Node(app, "/redfish/v1/Systems/system/LogServices/Crashdump/Actions/" + "LogService.ClearLog/") + { + entityPrivileges = { + {boost::beast::http::verb::get, {{"Login"}}}, + {boost::beast::http::verb::head, {{"Login"}}}, + {boost::beast::http::verb::patch, {{"ConfigureComponents"}}}, + {boost::beast::http::verb::put, {{"ConfigureComponents"}}}, + {boost::beast::http::verb::delete_, {{"ConfigureComponents"}}}, + {boost::beast::http::verb::post, {{"ConfigureComponents"}}}}; + } + + private: + void doPost(crow::Response &res, const crow::Request &req, + const std::vector ¶ms) override + { + std::shared_ptr asyncResp = std::make_shared(res); + + crow::connections::systemBus->async_method_call( + [asyncResp](const boost::system::error_code ec, + const std::string &resp) { + if (ec) + { + messages::internalError(asyncResp->res); + return; + } + messages::success(asyncResp->res); + }, + crashdumpObject, crashdumpPath, deleteAllInterface, "DeleteAll"); + } +}; + +std::string getLogCreatedTime(const std::string &crashdump) +{ + nlohmann::json crashdumpJson = + nlohmann::json::parse(crashdump, nullptr, false); + if (crashdumpJson.is_discarded()) + { + return std::string(); + } + + nlohmann::json::const_iterator cdIt = crashdumpJson.find("crash_data"); + if (cdIt == crashdumpJson.end()) + { + return std::string(); + } + + nlohmann::json::const_iterator siIt = cdIt->find("METADATA"); + if (siIt == cdIt->end()) + { + return std::string(); + } + + nlohmann::json::const_iterator tsIt = siIt->find("timestamp"); + if (tsIt == siIt->end()) + { + return std::string(); + } + + const std::string *logTime = tsIt->get_ptr(); + if (logTime == nullptr) + { + return std::string(); + } + + std::string redfishDateTime = *logTime; + if (redfishDateTime.length() > 2) + { + redfishDateTime.insert(redfishDateTime.end() - 2, ':'); + } + + return redfishDateTime; +} + +std::string getLogFileName(const std::string &logTime) +{ + // Set the crashdump file name to "crashdump_.json" using the + // created time without the timezone info + std::string fileTime = logTime; + size_t plusPos = fileTime.rfind('+'); + if (plusPos != std::string::npos) + { + fileTime.erase(plusPos); + } + return "crashdump_" + fileTime + ".json"; +} + +static void logCrashdumpEntry(std::shared_ptr asyncResp, + const std::string &logID, + nlohmann::json &logEntryJson) +{ + auto getStoredLogCallback = [asyncResp, logID, &logEntryJson]( + const boost::system::error_code ec, + const std::variant &resp) { + if (ec) + { + BMCWEB_LOG_DEBUG << "failed to get log ec: " << ec.message(); + if (ec.value() == + boost::system::linux_error::bad_request_descriptor) + { + messages::resourceNotFound(asyncResp->res, "LogEntry", logID); + } + else + { + messages::internalError(asyncResp->res); + } + return; + } + const std::string *log = std::get_if(&resp); + if (log == nullptr) + { + messages::internalError(asyncResp->res); + return; + } + std::string logTime = getLogCreatedTime(*log); + std::string fileName = getLogFileName(logTime); + + logEntryJson = { + {"@odata.type", "#LogEntry.v1_4_0.LogEntry"}, + {"@odata.context", "/redfish/v1/$metadata#LogEntry.LogEntry"}, + {"@odata.id", + "/redfish/v1/Systems/system/LogServices/Crashdump/Entries/" + + logID}, + {"Name", "CPU Crashdump"}, + {"Id", logID}, + {"EntryType", "Oem"}, + {"OemRecordFormat", "Crashdump URI"}, + {"Message", + "/redfish/v1/Systems/system/LogServices/Crashdump/Entries/" + + logID + "/" + fileName}, + {"Created", std::move(logTime)}}; + }; + crow::connections::systemBus->async_method_call( + std::move(getStoredLogCallback), crashdumpObject, + crashdumpPath + std::string("/") + logID, + "org.freedesktop.DBus.Properties", "Get", crashdumpInterface, "Log"); +} + +class CrashdumpEntryCollection : public Node { public: template - CPULogEntryCollection(CrowApp &app) : - Node(app, "/redfish/v1/Systems/system/LogServices/CpuLog/Entries/") + CrashdumpEntryCollection(CrowApp &app) : + Node(app, "/redfish/v1/Systems/system/LogServices/Crashdump/Entries/") { entityPrivileges = { {boost::beast::http::verb::get, {{"Login"}}}, @@ -1005,30 +1710,36 @@ class CPULogEntryCollection : public Node asyncResp->res.jsonValue["@odata.type"] = "#LogEntryCollection.LogEntryCollection"; asyncResp->res.jsonValue["@odata.id"] = - "/redfish/v1/Systems/system/LogServices/CpuLog/Entries"; + "/redfish/v1/Systems/system/LogServices/Crashdump/Entries"; asyncResp->res.jsonValue["@odata.context"] = - "/redfish/v1/" - "$metadata#LogEntryCollection.LogEntryCollection"; - asyncResp->res.jsonValue["Name"] = "Open BMC CPU Log Entries"; + "/redfish/v1/$metadata#LogEntryCollection.LogEntryCollection"; + asyncResp->res.jsonValue["Name"] = "Open BMC Crashdump Entries"; asyncResp->res.jsonValue["Description"] = - "Collection of CPU Log Entries"; + "Collection of Crashdump Entries"; nlohmann::json &logEntryArray = asyncResp->res.jsonValue["Members"]; logEntryArray = nlohmann::json::array(); + std::vector logIDs; + // Get the list of log entries and build up an empty array big + // enough to hold them for (const std::string &objpath : resp) { - // Don't list the immediate log - if (objpath.compare(cpuLogImmediatePath) == 0) - { - continue; - } + // Get the log ID std::size_t lastPos = objpath.rfind("/"); - if (lastPos != std::string::npos) + if (lastPos == std::string::npos) { - logEntryArray.push_back( - {{"@odata.id", "/redfish/v1/Systems/system/LogServices/" - "CpuLog/Entries/" + - objpath.substr(lastPos + 1)}}); + continue; } + logIDs.emplace_back(objpath.substr(lastPos + 1)); + + // Add a space for the log entry to the array + logEntryArray.push_back({}); + } + // Now go through and set up async calls to fill in the entries + size_t index = 0; + for (const std::string &logID : logIDs) + { + // Add the log entry to the array + logCrashdumpEntry(asyncResp, logID, logEntryArray[index++]); } asyncResp->res.jsonValue["Members@odata.count"] = logEntryArray.size(); @@ -1038,42 +1749,50 @@ class CPULogEntryCollection : public Node "xyz.openbmc_project.ObjectMapper", "/xyz/openbmc_project/object_mapper", "xyz.openbmc_project.ObjectMapper", "GetSubTreePaths", "", 0, - std::array{cpuLogInterface}); + std::array{crashdumpInterface}); } }; -std::string getLogCreatedTime(const nlohmann::json &cpuLog) +class CrashdumpEntry : public Node { - nlohmann::json::const_iterator cdIt = cpuLog.find("crashlog_data"); - if (cdIt != cpuLog.end()) + public: + CrashdumpEntry(CrowApp &app) : + Node(app, + "/redfish/v1/Systems/system/LogServices/Crashdump/Entries//", + std::string()) + { + entityPrivileges = { + {boost::beast::http::verb::get, {{"Login"}}}, + {boost::beast::http::verb::head, {{"Login"}}}, + {boost::beast::http::verb::patch, {{"ConfigureManager"}}}, + {boost::beast::http::verb::put, {{"ConfigureManager"}}}, + {boost::beast::http::verb::delete_, {{"ConfigureManager"}}}, + {boost::beast::http::verb::post, {{"ConfigureManager"}}}}; + } + + private: + void doGet(crow::Response &res, const crow::Request &req, + const std::vector ¶ms) override { - nlohmann::json::const_iterator siIt = cdIt->find("SYSTEM_INFO"); - if (siIt != cdIt->end()) + std::shared_ptr asyncResp = std::make_shared(res); + if (params.size() != 1) { - nlohmann::json::const_iterator tsIt = siIt->find("timestamp"); - if (tsIt != siIt->end()) - { - const std::string *logTime = - tsIt->get_ptr(); - if (logTime != nullptr) - { - return *logTime; - } - } + messages::internalError(asyncResp->res); + return; } + const std::string &logID = params[0]; + logCrashdumpEntry(asyncResp, logID, asyncResp->res.jsonValue); } - BMCWEB_LOG_DEBUG << "failed to find log timestamp"; - - return std::string(); -} +}; -class CPULogEntry : public Node +class CrashdumpFile : public Node { public: - CPULogEntry(CrowApp &app) : + CrashdumpFile(CrowApp &app) : Node(app, - "/redfish/v1/Systems/system/LogServices/CpuLog/Entries//", - std::string()) + "/redfish/v1/Systems/system/LogServices/Crashdump/Entries//" + "/", + std::string(), std::string()) { entityPrivileges = { {boost::beast::http::verb::get, {{"Login"}}}, @@ -1089,13 +1808,15 @@ class CPULogEntry : public Node const std::vector ¶ms) override { std::shared_ptr asyncResp = std::make_shared(res); - if (params.size() != 1) + if (params.size() != 2) { messages::internalError(asyncResp->res); return; } - const uint8_t logId = std::atoi(params[0].c_str()); - auto getStoredLogCallback = [asyncResp, logId]( + const std::string &logID = params[0]; + const std::string &fileName = params[1]; + + auto getStoredLogCallback = [asyncResp, logID, fileName]( const boost::system::error_code ec, const std::variant &resp) { if (ec) @@ -1110,39 +1831,33 @@ class CPULogEntry : public Node messages::internalError(asyncResp->res); return; } - nlohmann::json j = nlohmann::json::parse(*log, nullptr, false); - if (j.is_discarded()) + + // Verify the file name parameter is correct + if (fileName != getLogFileName(getLogCreatedTime(*log))) { - messages::internalError(asyncResp->res); + messages::resourceMissingAtURI(asyncResp->res, fileName); return; } - std::string t = getLogCreatedTime(j); - asyncResp->res.jsonValue = { - {"@odata.type", "#LogEntry.v1_3_0.LogEntry"}, - {"@odata.context", "/redfish/v1/$metadata#LogEntry.LogEntry"}, - {"@odata.id", - "/redfish/v1/Systems/system/LogServices/CpuLog/Entries/" + - std::to_string(logId)}, - {"Name", "CPU Debug Log"}, - {"Id", logId}, - {"EntryType", "Oem"}, - {"OemRecordFormat", "Intel CPU Log"}, - {"Oem", {{"Intel", std::move(j)}}}, - {"Created", std::move(t)}}; + + // Configure this to be a file download when accessed from a browser + asyncResp->res.addHeader("Content-Disposition", "attachment"); + asyncResp->res.body() = *log; }; crow::connections::systemBus->async_method_call( - std::move(getStoredLogCallback), cpuLogObject, - cpuLogPath + std::string("/") + std::to_string(logId), - "org.freedesktop.DBus.Properties", "Get", cpuLogInterface, "Log"); + std::move(getStoredLogCallback), crashdumpObject, + crashdumpPath + std::string("/") + logID, + "org.freedesktop.DBus.Properties", "Get", crashdumpInterface, + "Log"); } }; -class ImmediateCPULog : public Node +class OnDemandCrashdump : public Node { public: - ImmediateCPULog(CrowApp &app) : - Node(app, "/redfish/v1/Systems/system/LogServices/CpuLog/Actions/Oem/" - "CpuLog.Immediate/") + OnDemandCrashdump(CrowApp &app) : + Node(app, + "/redfish/v1/Systems/system/LogServices/Crashdump/Actions/Oem/" + "Crashdump.OnDemand/") { entityPrivileges = { {boost::beast::http::verb::get, {{"Login"}}}, @@ -1158,100 +1873,8 @@ class ImmediateCPULog : public Node const std::vector ¶ms) override { std::shared_ptr asyncResp = std::make_shared(res); - static std::unique_ptr - immediateLogMatcher; - - // Only allow one Immediate Log request at a time - if (immediateLogMatcher != nullptr) - { - asyncResp->res.addHeader("Retry-After", "30"); - messages::serviceTemporarilyUnavailable(asyncResp->res, "30"); - return; - } - // Make this static so it survives outside this method - static boost::asio::deadline_timer timeout(*req.ioService); - - timeout.expires_from_now(boost::posix_time::seconds(30)); - timeout.async_wait([asyncResp](const boost::system::error_code &ec) { - immediateLogMatcher = nullptr; - if (ec) - { - // operation_aborted is expected if timer is canceled before - // completion. - if (ec != boost::asio::error::operation_aborted) - { - BMCWEB_LOG_ERROR << "Async_wait failed " << ec; - } - return; - } - BMCWEB_LOG_ERROR << "Timed out waiting for immediate log"; - - messages::internalError(asyncResp->res); - }); - - auto immediateLogMatcherCallback = [asyncResp]( - sdbusplus::message::message &m) { - BMCWEB_LOG_DEBUG << "Immediate log available match fired"; - boost::system::error_code ec; - timeout.cancel(ec); - if (ec) - { - BMCWEB_LOG_ERROR << "error canceling timer " << ec; - } - sdbusplus::message::object_path objPath; - boost::container::flat_map< - std::string, boost::container::flat_map< - std::string, std::variant>> - interfacesAdded; - m.read(objPath, interfacesAdded); - const std::string *log = std::get_if( - &interfacesAdded[cpuLogInterface]["Log"]); - if (log == nullptr) - { - messages::internalError(asyncResp->res); - // Careful with immediateLogMatcher. It is a unique_ptr to the - // match object inside which this lambda is executing. Once it - // is set to nullptr, the match object will be destroyed and the - // lambda will lose its context, including res, so it needs to - // be the last thing done. - immediateLogMatcher = nullptr; - return; - } - nlohmann::json j = nlohmann::json::parse(*log, nullptr, false); - if (j.is_discarded()) - { - messages::internalError(asyncResp->res); - // Careful with immediateLogMatcher. It is a unique_ptr to the - // match object inside which this lambda is executing. Once it - // is set to nullptr, the match object will be destroyed and the - // lambda will lose its context, including res, so it needs to - // be the last thing done. - immediateLogMatcher = nullptr; - return; - } - std::string t = getLogCreatedTime(j); - asyncResp->res.jsonValue = { - {"@odata.type", "#LogEntry.v1_3_0.LogEntry"}, - {"@odata.context", "/redfish/v1/$metadata#LogEntry.LogEntry"}, - {"Name", "CPU Debug Log"}, - {"EntryType", "Oem"}, - {"OemRecordFormat", "Intel CPU Log"}, - {"Oem", {{"Intel", std::move(j)}}}, - {"Created", std::move(t)}}; - // Careful with immediateLogMatcher. It is a unique_ptr to the - // match object inside which this lambda is executing. Once it is - // set to nullptr, the match object will be destroyed and the lambda - // will lose its context, including res, so it needs to be the last - // thing done. - immediateLogMatcher = nullptr; - }; - immediateLogMatcher = std::make_unique( - *crow::connections::systemBus, - sdbusplus::bus::match::rules::interfacesAdded() + - sdbusplus::bus::match::rules::argNpath(0, cpuLogImmediatePath), - std::move(immediateLogMatcherCallback)); - auto generateImmediateLogCallback = + auto generateonDemandLogCallback = [asyncResp](const boost::system::error_code ec, const std::string &resp) { if (ec) @@ -1261,24 +1884,23 @@ class ImmediateCPULog : public Node { messages::resourceInStandby(asyncResp->res); } - else + else if (ec.value() == + boost::system::errc::device_or_resource_busy) { - messages::internalError(asyncResp->res); + messages::serviceTemporarilyUnavailable(asyncResp->res, + "60"); } - boost::system::error_code timeoutec; - timeout.cancel(timeoutec); - if (timeoutec) + else { - BMCWEB_LOG_ERROR << "error canceling timer " - << timeoutec; + messages::internalError(asyncResp->res); } - immediateLogMatcher = nullptr; return; } + asyncResp->res.result(boost::beast::http::status::no_content); }; crow::connections::systemBus->async_method_call( - std::move(generateImmediateLogCallback), cpuLogObject, cpuLogPath, - cpuLogImmediateInterface, "GenerateImmediateLog"); + std::move(generateonDemandLogCallback), crashdumpObject, + crashdumpPath, crashdumpOnDemandInterface, "GenerateOnDemandLog"); } }; @@ -1286,8 +1908,9 @@ class SendRawPECI : public Node { public: SendRawPECI(CrowApp &app) : - Node(app, "/redfish/v1/Systems/system/LogServices/CpuLog/Actions/Oem/" - "CpuLog.SendRawPeci/") + Node(app, + "/redfish/v1/Systems/system/LogServices/Crashdump/Actions/Oem/" + "Crashdump.SendRawPeci/") { entityPrivileges = { {boost::beast::http::verb::get, {{"ConfigureComponents"}}}, @@ -1303,23 +1926,62 @@ class SendRawPECI : public Node const std::vector ¶ms) override { std::shared_ptr asyncResp = std::make_shared(res); - uint8_t clientAddress = 0; - uint8_t readLength = 0; - std::vector peciCommand; - if (!json_util::readJson(req, res, "ClientAddress", clientAddress, - "ReadLength", readLength, "PECICommand", - peciCommand)) + std::vector> peciCommands; + + nlohmann::json reqJson = + nlohmann::json::parse(req.body, nullptr, false); + if (reqJson.find("PECICommands") != reqJson.end()) { - return; + if (!json_util::readJson(req, res, "PECICommands", peciCommands)) + { + return; + } + uint32_t idx = 0; + for (auto const &cmd : peciCommands) + { + if (cmd.size() < 3) + { + std::string s("["); + for (auto const &val : cmd) + { + if (val != *cmd.begin()) + { + s += ","; + } + s += std::to_string(val); + } + s += "]"; + messages::actionParameterValueFormatError( + res, s, "PECICommands[" + std::to_string(idx) + "]", + "SendRawPeci"); + return; + } + idx++; + } + } + else + { + /* This interface is deprecated */ + uint8_t clientAddress = 0; + uint8_t readLength = 0; + std::vector peciCommand; + if (!json_util::readJson(req, res, "ClientAddress", clientAddress, + "ReadLength", readLength, "PECICommand", + peciCommand)) + { + return; + } + peciCommands.push_back({clientAddress, 0, readLength}); + peciCommands[0].insert(peciCommands[0].end(), peciCommand.begin(), + peciCommand.end()); } - // Callback to return the Raw PECI response auto sendRawPECICallback = [asyncResp](const boost::system::error_code ec, - const std::vector &resp) { + const std::vector> &resp) { if (ec) { - BMCWEB_LOG_DEBUG << "failed to send PECI command ec: " + BMCWEB_LOG_DEBUG << "failed to process PECI commands ec: " << ec.message(); messages::internalError(asyncResp->res); return; @@ -1329,10 +1991,62 @@ class SendRawPECI : public Node }; // Call the SendRawPECI command with the provided data crow::connections::systemBus->async_method_call( - std::move(sendRawPECICallback), cpuLogObject, cpuLogPath, - cpuLogRawPECIInterface, "SendRawPeci", clientAddress, readLength, - peciCommand); + std::move(sendRawPECICallback), crashdumpObject, crashdumpPath, + crashdumpRawPECIInterface, "SendRawPeci", peciCommands); } }; +/** + * DBusLogServiceActionsClear class supports POST method for ClearLog action. + */ +class DBusLogServiceActionsClear : public Node +{ + public: + DBusLogServiceActionsClear(CrowApp &app) : + Node(app, "/redfish/v1/Systems/system/LogServices/EventLog/Actions/" + "LogService.ClearLog") + { + entityPrivileges = { + {boost::beast::http::verb::get, {{"Login"}}}, + {boost::beast::http::verb::head, {{"Login"}}}, + {boost::beast::http::verb::patch, {{"ConfigureManager"}}}, + {boost::beast::http::verb::put, {{"ConfigureManager"}}}, + {boost::beast::http::verb::delete_, {{"ConfigureManager"}}}, + {boost::beast::http::verb::post, {{"ConfigureManager"}}}}; + } + + private: + /** + * Function handles POST method request. + * The Clear Log actions does not require any parameter.The action deletes + * all entries found in the Entries collection for this Log Service. + */ + void doPost(crow::Response &res, const crow::Request &req, + const std::vector ¶ms) override + { + BMCWEB_LOG_DEBUG << "Do delete all entries."; + + auto asyncResp = std::make_shared(res); + // Process response from Logging service. + auto resp_handler = [asyncResp](const boost::system::error_code ec) { + BMCWEB_LOG_DEBUG << "doClearLog resp_handler callback: Done"; + if (ec) + { + // TODO Handle for specific error code + BMCWEB_LOG_ERROR << "doClearLog resp_handler got error " << ec; + asyncResp->res.result( + boost::beast::http::status::internal_server_error); + return; + } + + asyncResp->res.result(boost::beast::http::status::no_content); + }; + + // Make call to Logging service to request Clear Log + crow::connections::systemBus->async_method_call( + resp_handler, "xyz.openbmc_project.Logging", + "/xyz/openbmc_project/logging", + "xyz.openbmc_project.Collection.DeleteAll", "DeleteAll"); + } +}; } // namespace redfish diff --git a/Contrib-Inspur/bmcweb/redfish-core/lib/managers.hpp b/Contrib-Inspur/bmcweb/redfish-core/lib/managers.hpp index 3ada58ae..dca5933e 100644 --- a/Contrib-Inspur/bmcweb/redfish-core/lib/managers.hpp +++ b/Contrib-Inspur/bmcweb/redfish-core/lib/managers.hpp @@ -15,10 +15,17 @@ */ #pragma once +#include "health.hpp" #include "node.hpp" +#include "redfish_util.hpp" #include +#include #include +#include +#include +#include +#include #include namespace redfish @@ -115,15 +122,20 @@ static constexpr const char* pidZoneConfigurationIface = "xyz.openbmc_project.Configuration.Pid.Zone"; static constexpr const char* stepwiseConfigurationIface = "xyz.openbmc_project.Configuration.Stepwise"; +static constexpr const char* thermalModeIface = + "xyz.openbmc_project.Control.ThermalMode"; static void asyncPopulatePid(const std::string& connection, const std::string& path, + const std::string& currentProfile, + const std::vector& supportedProfiles, std::shared_ptr asyncResp) { crow::connections::systemBus->async_method_call( - [asyncResp](const boost::system::error_code ec, - const dbus::utility::ManagedObjectType& managedObj) { + [asyncResp, currentProfile, supportedProfiles]( + const boost::system::error_code ec, + const dbus::utility::ManagedObjectType& managedObj) { if (ec) { BMCWEB_LOG_ERROR << ec; @@ -165,8 +177,14 @@ static void asyncPopulatePid(const std::string& connection, configRoot["@odata.type"] = "#OemManager.Fan"; configRoot["@odata.context"] = "/redfish/v1/$metadata#OemManager.Fan"; + configRoot["Profile@Redfish.AllowableValues"] = supportedProfiles; + + if (!currentProfile.empty()) + { + configRoot["Profile"] = currentProfile; + } + BMCWEB_LOG_ERROR << "profile = " << currentProfile << " !"; - bool propertyError = false; for (const auto& pathPair : managedObj) { for (const auto& intfPair : pathPair.second) @@ -184,6 +202,7 @@ static void asyncPopulatePid(const std::string& connection, messages::internalError(asyncResp->res); return; } + const std::string* namePtr = std::get_if(&findName->second); if (namePtr == nullptr) @@ -192,10 +211,38 @@ static void asyncPopulatePid(const std::string& connection, messages::internalError(asyncResp->res); return; } - std::string name = *namePtr; dbus::utility::escapePathForDbus(name); + + auto findProfiles = intfPair.second.find("Profiles"); + if (findProfiles != intfPair.second.end()) + { + const std::vector* profiles = + std::get_if>( + &findProfiles->second); + if (profiles == nullptr) + { + BMCWEB_LOG_ERROR << "Pid Profiles Field illegal"; + messages::internalError(asyncResp->res); + return; + } + if (std::find(profiles->begin(), profiles->end(), + currentProfile) == profiles->end()) + { + BMCWEB_LOG_INFO + << name << " not supported in current profile"; + continue; + } + } nlohmann::json* config = nullptr; + + const std::string* classPtr = nullptr; + auto findClass = intfPair.second.find("Class"); + if (findClass != intfPair.second.end()) + { + classPtr = std::get_if(&findClass->second); + } + if (intfPair.first == pidZoneConfigurationIface) { std::string chassis; @@ -218,31 +265,33 @@ static void asyncPopulatePid(const std::string& connection, else if (intfPair.first == stepwiseConfigurationIface) { + if (classPtr == nullptr) + { + BMCWEB_LOG_ERROR << "Pid Class Field illegal"; + messages::internalError(asyncResp->res); + return; + } + nlohmann::json& controller = stepwise[name]; config = &controller; controller["@odata.id"] = "/redfish/v1/Managers/bmc#/Oem/" "OpenBmc/Fan/StepwiseControllers/" + - std::string(name); + name; controller["@odata.type"] = "#OemManager.StepwiseController"; controller["@odata.context"] = "/redfish/v1/" "$metadata#OemManager.StepwiseController"; + controller["Direction"] = *classPtr; } // pid and fans are off the same configuration else if (intfPair.first == pidConfigurationIface) { - const std::string* classPtr = nullptr; - auto findClass = intfPair.second.find("Class"); - if (findClass != intfPair.second.end()) - { - classPtr = - std::get_if(&findClass->second); - } + if (classPtr == nullptr) { BMCWEB_LOG_ERROR << "Pid Class Field illegal"; @@ -258,7 +307,7 @@ static void asyncPopulatePid(const std::string& connection, element["@odata.id"] = "/redfish/v1/Managers/bmc#/Oem/" "OpenBmc/Fan/FanControllers/" + - std::string(name); + name; element["@odata.type"] = "#OemManager.FanController"; @@ -271,7 +320,7 @@ static void asyncPopulatePid(const std::string& connection, element["@odata.id"] = "/redfish/v1/Managers/bmc#/Oem/" "OpenBmc/Fan/PidControllers/" + - std::string(name); + name; element["@odata.type"] = "#OemManager.PidController"; element["@odata.context"] = @@ -428,13 +477,60 @@ static void asyncPopulatePid(const std::string& connection, return; } data = *inputs; - } // doubles + } + else if (propertyPair.first == "SetPointOffset") + { + const std::string* ptr = + std::get_if( + &propertyPair.second); + + if (ptr == nullptr) + { + BMCWEB_LOG_ERROR << "Field Illegal " + << propertyPair.first; + messages::internalError(asyncResp->res); + return; + } + // translate from dbus to redfish + if (*ptr == "WarningHigh") + { + (*config)["SetPointOffset"] = + "UpperThresholdNonCritical"; + } + else if (*ptr == "WarningLow") + { + (*config)["SetPointOffset"] = + "LowerThresholdNonCritical"; + } + else if (*ptr == "CriticalHigh") + { + (*config)["SetPointOffset"] = + "UpperThresholdCritical"; + } + else if (*ptr == "CriticalLow") + { + (*config)["SetPointOffset"] = + "LowerThresholdCritical"; + } + else + { + BMCWEB_LOG_ERROR << "Value Illegal " + << *ptr; + messages::internalError(asyncResp->res); + return; + } + } + // doubles else if (propertyPair.first == "FFGainCoefficient" || propertyPair.first == "FFOffCoefficient" || propertyPair.first == "ICoefficient" || propertyPair.first == "ILimitMax" || propertyPair.first == "ILimitMin" || + propertyPair.first == + "PositiveHysteresis" || + propertyPair.first == + "NegativeHysteresis" || propertyPair.first == "OutLimitMax" || propertyPair.first == "OutLimitMin" || propertyPair.first == "PCoefficient" || @@ -472,7 +568,13 @@ static bool getZonesFromJsonReq(const std::shared_ptr& response, std::vector& config, std::vector& zones) { - + if (config.empty()) + { + BMCWEB_LOG_ERROR << "Empty Zones"; + messages::propertyValueFormatError(response->res, + nlohmann::json::array(), "Zones"); + return false; + } for (auto& odata : config) { std::string path; @@ -482,7 +584,11 @@ static bool getZonesFromJsonReq(const std::shared_ptr& response, return false; } std::string input; - if (!dbus::utility::getNthStringFromPath(path, 4, input)) + + // 8 below comes from + // /redfish/v1/Managers/bmc#/Oem/OpenBmc/Fan/FanZones/Left + // 0 1 2 3 4 5 6 7 8 + if (!dbus::utility::getNthStringFromPath(path, 8, input)) { BMCWEB_LOG_ERROR << "Got invalid path " << path; BMCWEB_LOG_ERROR << "Illegal Type Zones"; @@ -496,17 +602,49 @@ static bool getZonesFromJsonReq(const std::shared_ptr& response, return true; } +static const dbus::utility::ManagedItem* + findChassis(const dbus::utility::ManagedObjectType& managedObj, + const std::string& value, std::string& chassis) +{ + BMCWEB_LOG_DEBUG << "Find Chassis: " << value << "\n"; + + std::string escaped = boost::replace_all_copy(value, " ", "_"); + escaped = "/" + escaped; + auto it = std::find_if( + managedObj.begin(), managedObj.end(), [&escaped](const auto& obj) { + if (boost::algorithm::ends_with(obj.first.str, escaped)) + { + BMCWEB_LOG_DEBUG << "Matched " << obj.first.str << "\n"; + return true; + } + return false; + }); + + if (it == managedObj.end()) + { + return nullptr; + } + // 5 comes from being the 5th element + // /xyz/openbmc_project/inventory/system/chassis/ + if (dbus::utility::getNthStringFromPath(it->first.str, 5, chassis)) + { + return &(*it); + } + + return nullptr; +} + static CreatePIDRet createPidInterface( const std::shared_ptr& response, const std::string& type, - nlohmann::json&& record, const std::string& path, + nlohmann::json::iterator it, const std::string& path, const dbus::utility::ManagedObjectType& managedObj, bool createNewObject, boost::container::flat_map& output, - std::string& chassis) + std::string& chassis, const std::string& profile) { // common deleter - if (record == nullptr) + if (it.value() == nullptr) { std::string iface; if (type == "PidControllers" || type == "FanControllers") @@ -535,12 +673,78 @@ static CreatePIDRet createPidInterface( { BMCWEB_LOG_ERROR << "Error patching " << path << ": " << ec; messages::internalError(response->res); + return; } + messages::success(response->res); }, "xyz.openbmc_project.EntityManager", path, iface, "Delete"); return CreatePIDRet::del; } + const dbus::utility::ManagedItem* managedItem = nullptr; + if (!createNewObject) + { + // if we aren't creating a new object, we should be able to find it on + // d-bus + managedItem = findChassis(managedObj, it.key(), chassis); + if (managedItem == nullptr) + { + BMCWEB_LOG_ERROR << "Failed to get chassis from config patch"; + messages::invalidObject(response->res, it.key()); + return CreatePIDRet::fail; + } + } + + if (profile.size() && + (type == "PidControllers" || type == "FanControllers" || + type == "StepwiseControllers")) + { + if (managedItem == nullptr) + { + output["Profiles"] = std::vector{profile}; + } + else + { + std::string interface; + if (type == "StepwiseControllers") + { + interface = stepwiseConfigurationIface; + } + else + { + interface = pidConfigurationIface; + } + auto findConfig = managedItem->second.find(interface); + if (findConfig == managedItem->second.end()) + { + BMCWEB_LOG_ERROR + << "Failed to find interface in managed object"; + messages::internalError(response->res); + return CreatePIDRet::fail; + } + auto findProfiles = findConfig->second.find("Profiles"); + if (findProfiles != findConfig->second.end()) + { + const std::vector* curProfiles = + std::get_if>( + &(findProfiles->second)); + if (curProfiles == nullptr) + { + BMCWEB_LOG_ERROR << "Illegal profiles in managed object"; + messages::internalError(response->res); + return CreatePIDRet::fail; + } + if (std::find(curProfiles->begin(), curProfiles->end(), + profile) == curProfiles->end()) + { + std::vector newProfiles = *curProfiles; + newProfiles.push_back(profile); + output["Profiles"] = newProfiles; + } + } + } + } + if (type == "PidControllers" || type == "FanControllers") { if (createNewObject) @@ -554,8 +758,9 @@ static CreatePIDRet createPidInterface( std::optional> inputs; std::optional> outputs; std::map> doubles; + std::optional setpointOffset; if (!redfish::json_util::readJson( - record, response->res, "Inputs", inputs, "Outputs", outputs, + it.value(), response->res, "Inputs", inputs, "Outputs", outputs, "Zones", zones, "FFGainCoefficient", doubles["FFGainCoefficient"], "FFOffCoefficient", doubles["FFOffCoefficient"], "ICoefficient", @@ -563,11 +768,13 @@ static CreatePIDRet createPidInterface( "ILimitMin", doubles["ILimitMin"], "OutLimitMax", doubles["OutLimitMax"], "OutLimitMin", doubles["OutLimitMin"], "PCoefficient", doubles["PCoefficient"], "SetPoint", - doubles["SetPoint"], "SlewNeg", doubles["SlewNeg"], "SlewPos", - doubles["SlewPos"])) + doubles["SetPoint"], "SetPointOffset", setpointOffset, + "SlewNeg", doubles["SlewNeg"], "SlewPos", doubles["SlewPos"], + "PositiveHysteresis", doubles["PositiveHysteresis"], + "NegativeHysteresis", doubles["NegativeHysteresis"])) { BMCWEB_LOG_ERROR << "Line:" << __LINE__ << ", Illegal Property " - << record.dump(); + << it.value().dump(); return CreatePIDRet::fail; } if (zones) @@ -578,6 +785,14 @@ static CreatePIDRet createPidInterface( BMCWEB_LOG_ERROR << "Line:" << __LINE__ << ", Illegal Zones"; return CreatePIDRet::fail; } + if (chassis.empty() && + !findChassis(managedObj, zonesStr[0], chassis)) + { + BMCWEB_LOG_ERROR << "Failed to get chassis from config patch"; + messages::invalidObject(response->res, it.key()); + return CreatePIDRet::fail; + } + output["Zones"] = std::move(zonesStr); } if (inputs || outputs) @@ -597,25 +812,6 @@ static CreatePIDRet createPidInterface( for (std::string& value : *container) { - - // try to find the sensor in the - // configuration - if (chassis.empty()) - { - std::string escaped = - boost::replace_all_copy(value, " ", "_"); - std::find_if( - managedObj.begin(), managedObj.end(), - [&chassis, &escaped](const auto& obj) { - if (boost::algorithm::ends_with(obj.first.str, - escaped)) - { - return dbus::utility::getNthStringFromPath( - obj.first.str, 5, chassis); - } - return false; - }); - } boost::replace_all(value, "_", " "); } std::string key; @@ -632,6 +828,34 @@ static CreatePIDRet createPidInterface( } } + if (setpointOffset) + { + // translate between redfish and dbus names + if (*setpointOffset == "UpperThresholdNonCritical") + { + output["SetPointOffset"] = std::string("WarningLow"); + } + else if (*setpointOffset == "LowerThresholdNonCritical") + { + output["SetPointOffset"] = std::string("WarningHigh"); + } + else if (*setpointOffset == "LowerThresholdCritical") + { + output["SetPointOffset"] = std::string("CriticalLow"); + } + else if (*setpointOffset == "UpperThresholdCritical") + { + output["SetPointOffset"] = std::string("CriticalHigh"); + } + else + { + BMCWEB_LOG_ERROR << "Invalid setpointoffset " + << *setpointOffset; + messages::invalidObject(response->res, it.key()); + return CreatePIDRet::fail; + } + } + // doubles for (const auto& pairs : doubles) { @@ -650,14 +874,14 @@ static CreatePIDRet createPidInterface( std::optional chassisContainer; std::optional failSafePercent; - std::optional minThermalRpm; - if (!redfish::json_util::readJson(record, response->res, "Chassis", + std::optional minThermalOutput; + if (!redfish::json_util::readJson(it.value(), response->res, "Chassis", chassisContainer, "FailSafePercent", - failSafePercent, "MinThermalRpm", - minThermalRpm)) + failSafePercent, "MinThermalOutput", + minThermalOutput)) { BMCWEB_LOG_ERROR << "Line:" << __LINE__ << ", Illegal Property " - << record.dump(); + << it.value().dump(); return CreatePIDRet::fail; } @@ -673,7 +897,7 @@ static CreatePIDRet createPidInterface( return CreatePIDRet::fail; } - // /refish/v1/chassis/chassis_name/ + // /redfish/v1/chassis/chassis_name/ if (!dbus::utility::getNthStringFromPath(chassisId, 3, chassis)) { BMCWEB_LOG_ERROR << "Got invalid path " << chassisId; @@ -681,9 +905,9 @@ static CreatePIDRet createPidInterface( return CreatePIDRet::fail; } } - if (minThermalRpm) + if (minThermalOutput) { - output["MinThermalRpm"] = *minThermalRpm; + output["MinThermalOutput"] = *minThermalOutput; } if (failSafePercent) { @@ -699,25 +923,34 @@ static CreatePIDRet createPidInterface( std::optional> inputs; std::optional positiveHysteresis; std::optional negativeHysteresis; + std::optional direction; // upper clipping curve vs lower if (!redfish::json_util::readJson( - record, response->res, "Zones", zones, "Steps", steps, "Inputs", - inputs, "PositiveHysteresis", positiveHysteresis, - "NegativeHysteresis", negativeHysteresis)) + it.value(), response->res, "Zones", zones, "Steps", steps, + "Inputs", inputs, "PositiveHysteresis", positiveHysteresis, + "NegativeHysteresis", negativeHysteresis, "Direction", + direction)) { BMCWEB_LOG_ERROR << "Line:" << __LINE__ << ", Illegal Property " - << record.dump(); + << it.value().dump(); return CreatePIDRet::fail; } if (zones) { - std::vector zoneStrs; - if (!getZonesFromJsonReq(response, *zones, zoneStrs)) + std::vector zonesStrs; + if (!getZonesFromJsonReq(response, *zones, zonesStrs)) { BMCWEB_LOG_ERROR << "Line:" << __LINE__ << ", Illegal Zones"; return CreatePIDRet::fail; } - output["Zones"] = std::move(zoneStrs); + if (chassis.empty() && + !findChassis(managedObj, zonesStrs[0], chassis)) + { + BMCWEB_LOG_ERROR << "Failed to get chassis from config patch"; + messages::invalidObject(response->res, it.key()); + return CreatePIDRet::fail; + } + output["Zones"] = std::move(zonesStrs); } if (steps) { @@ -732,7 +965,8 @@ static CreatePIDRet createPidInterface( target, "Output", output)) { BMCWEB_LOG_ERROR << "Line:" << __LINE__ - << ", Illegal Property " << record.dump(); + << ", Illegal Property " + << it.value().dump(); return CreatePIDRet::fail; } readings.emplace_back(target); @@ -745,22 +979,6 @@ static CreatePIDRet createPidInterface( { for (std::string& value : *inputs) { - if (chassis.empty()) - { - std::string escaped = - boost::replace_all_copy(value, " ", "_"); - std::find_if( - managedObj.begin(), managedObj.end(), - [&chassis, &escaped](const auto& obj) { - if (boost::algorithm::ends_with(obj.first.str, - escaped)) - { - return dbus::utility::getNthStringFromPath( - obj.first.str, 5, chassis); - } - return false; - }); - } boost::replace_all(value, "_", " "); } output["Inputs"] = std::move(*inputs); @@ -773,6 +991,19 @@ static CreatePIDRet createPidInterface( { output["PositiveHysteresis"] = *positiveHysteresis; } + if (direction) + { + constexpr const std::array allowedDirections = { + "Ceiling", "Floor"}; + if (std::find(allowedDirections.begin(), allowedDirections.end(), + *direction) == allowedDirections.end()) + { + messages::propertyValueTypeError(response->res, "Direction", + *direction); + return CreatePIDRet::fail; + } + output["Class"] = *direction; + } } else { @@ -782,91 +1013,528 @@ static CreatePIDRet createPidInterface( } return CreatePIDRet::patch; } - -class Manager : public Node +struct GetPIDValues : std::enable_shared_from_this { - public: - Manager(CrowApp& app) : Node(app, "/redfish/v1/Managers/bmc/") + + GetPIDValues(const std::shared_ptr& asyncResp) : + asyncResp(asyncResp) + { - uuid = app.template getMiddleware() - .systemUuid; - entityPrivileges = { - {boost::beast::http::verb::get, {{"Login"}}}, - {boost::beast::http::verb::head, {{"Login"}}}, - {boost::beast::http::verb::patch, {{"ConfigureManager"}}}, - {boost::beast::http::verb::put, {{"ConfigureManager"}}}, - {boost::beast::http::verb::delete_, {{"ConfigureManager"}}}, - {boost::beast::http::verb::post, {{"ConfigureManager"}}}}; } - private: - void getPidValues(std::shared_ptr asyncResp) + void run() { + std::shared_ptr self = shared_from_this(); + + // get all configurations crow::connections::systemBus->async_method_call( - [asyncResp](const boost::system::error_code ec, - const crow::openbmc_mapper::GetSubTreeType& subtree) { + [self](const boost::system::error_code ec, + const crow::openbmc_mapper::GetSubTreeType& subtree) { if (ec) { BMCWEB_LOG_ERROR << ec; - messages::internalError(asyncResp->res); + messages::internalError(self->asyncResp->res); return; } + self->subtree = subtree; + }, + "xyz.openbmc_project.ObjectMapper", + "/xyz/openbmc_project/object_mapper", + "xyz.openbmc_project.ObjectMapper", "GetSubTree", "/", 0, + std::array{ + pidConfigurationIface, pidZoneConfigurationIface, + objectManagerIface, stepwiseConfigurationIface}); - // create map of > - boost::container::flat_map - objectMgrPaths; - boost::container::flat_set calledConnections; - for (const auto& pathGroup : subtree) + // at the same time get the selected profile + crow::connections::systemBus->async_method_call( + [self](const boost::system::error_code ec, + const crow::openbmc_mapper::GetSubTreeType& subtree) { + if (ec || subtree.empty()) { - for (const auto& connectionGroup : pathGroup.second) - { - auto findConnection = - calledConnections.find(connectionGroup.first); - if (findConnection != calledConnections.end()) + return; + } + if (subtree[0].second.size() != 1) + { + // invalid mapper response, should never happen + BMCWEB_LOG_ERROR << "GetPIDValues: Mapper Error"; + messages::internalError(self->asyncResp->res); + return; + } + + const std::string& path = subtree[0].first; + const std::string& owner = subtree[0].second[0].first; + crow::connections::systemBus->async_method_call( + [path, owner, self]( + const boost::system::error_code ec, + const boost::container::flat_map< + std::string, std::variant, + std::string>>& resp) { + if (ec) { - break; + BMCWEB_LOG_ERROR << "GetPIDValues: Can't get " + "thermalModeIface " + << path; + messages::internalError(self->asyncResp->res); + return; } - for (const std::string& interface : - connectionGroup.second) + const std::string* current = nullptr; + const std::vector* supported = nullptr; + for (auto& [key, value] : resp) { - if (interface == objectManagerIface) + if (key == "Current") { - objectMgrPaths[connectionGroup.first] = - pathGroup.first; + current = std::get_if(&value); + if (current == nullptr) + { + BMCWEB_LOG_ERROR + << "GetPIDValues: thermal mode " + "iface invalid " + << path; + messages::internalError( + self->asyncResp->res); + return; + } } - // this list is alphabetical, so we - // should have found the objMgr by now - if (interface == pidConfigurationIface || - interface == pidZoneConfigurationIface || - interface == stepwiseConfigurationIface) + if (key == "Supported") { - auto findObjMgr = - objectMgrPaths.find(connectionGroup.first); - if (findObjMgr == objectMgrPaths.end()) + supported = + std::get_if>( + &value); + if (supported == nullptr) { - BMCWEB_LOG_DEBUG << connectionGroup.first - << "Has no Object Manager"; - continue; + BMCWEB_LOG_ERROR + << "GetPIDValues: thermal mode " + "iface invalid" + << path; + messages::internalError( + self->asyncResp->res); + return; } - - calledConnections.insert(connectionGroup.first); - - asyncPopulatePid(findObjMgr->first, - findObjMgr->second, asyncResp); - break; } } + if (current == nullptr || supported == nullptr) + { + BMCWEB_LOG_ERROR << "GetPIDValues: thermal mode " + "iface invalid " + << path; + messages::internalError(self->asyncResp->res); + return; + } + self->currentProfile = *current; + self->supportedProfiles = *supported; + }, + owner, path, "org.freedesktop.DBus.Properties", "GetAll", + thermalModeIface); + }, + "xyz.openbmc_project.ObjectMapper", + "/xyz/openbmc_project/object_mapper", + "xyz.openbmc_project.ObjectMapper", "GetSubTree", "/", 0, + std::array{thermalModeIface}); + } + + ~GetPIDValues() + { + if (asyncResp->res.result() != boost::beast::http::status::ok) + { + return; + } + // create map of > + boost::container::flat_map objectMgrPaths; + boost::container::flat_set calledConnections; + for (const auto& pathGroup : subtree) + { + for (const auto& connectionGroup : pathGroup.second) + { + auto findConnection = + calledConnections.find(connectionGroup.first); + if (findConnection != calledConnections.end()) + { + break; + } + for (const std::string& interface : connectionGroup.second) + { + if (interface == objectManagerIface) + { + objectMgrPaths[connectionGroup.first] = pathGroup.first; } + // this list is alphabetical, so we + // should have found the objMgr by now + if (interface == pidConfigurationIface || + interface == pidZoneConfigurationIface || + interface == stepwiseConfigurationIface) + { + auto findObjMgr = + objectMgrPaths.find(connectionGroup.first); + if (findObjMgr == objectMgrPaths.end()) + { + BMCWEB_LOG_DEBUG << connectionGroup.first + << "Has no Object Manager"; + continue; + } + + calledConnections.insert(connectionGroup.first); + + asyncPopulatePid(findObjMgr->first, findObjMgr->second, + currentProfile, supportedProfiles, + asyncResp); + break; + } + } + } + } + } + + std::vector supportedProfiles; + std::string currentProfile; + crow::openbmc_mapper::GetSubTreeType subtree; + std::shared_ptr asyncResp; +}; + +struct SetPIDValues : std::enable_shared_from_this +{ + + SetPIDValues(const std::shared_ptr& asyncRespIn, + nlohmann::json& data) : + asyncResp(asyncRespIn) + { + + std::optional pidControllers; + std::optional fanControllers; + std::optional fanZones; + std::optional stepwiseControllers; + + if (!redfish::json_util::readJson( + data, asyncResp->res, "PidControllers", pidControllers, + "FanControllers", fanControllers, "FanZones", fanZones, + "StepwiseControllers", stepwiseControllers, "Profile", profile)) + { + BMCWEB_LOG_ERROR << "Line:" << __LINE__ << ", Illegal Property " + << data.dump(); + return; + } + configuration.emplace_back("PidControllers", std::move(pidControllers)); + configuration.emplace_back("FanControllers", std::move(fanControllers)); + configuration.emplace_back("FanZones", std::move(fanZones)); + configuration.emplace_back("StepwiseControllers", + std::move(stepwiseControllers)); + } + void run() + { + if (asyncResp->res.result() != boost::beast::http::status::ok) + { + return; + } + + std::shared_ptr self = shared_from_this(); + + // todo(james): might make sense to do a mapper call here if this + // interface gets more traction + crow::connections::systemBus->async_method_call( + [self](const boost::system::error_code ec, + dbus::utility::ManagedObjectType& mObj) { + if (ec) + { + BMCWEB_LOG_ERROR << "Error communicating to Entity Manager"; + messages::internalError(self->asyncResp->res); + return; + } + self->managedObj = std::move(mObj); + }, + "xyz.openbmc_project.EntityManager", "/", objectManagerIface, + "GetManagedObjects"); + + // at the same time get the profile information + crow::connections::systemBus->async_method_call( + [self](const boost::system::error_code ec, + const crow::openbmc_mapper::GetSubTreeType& subtree) { + if (ec || subtree.empty()) + { + return; } + if (subtree[0].second.empty()) + { + // invalid mapper response, should never happen + BMCWEB_LOG_ERROR << "SetPIDValues: Mapper Error"; + messages::internalError(self->asyncResp->res); + return; + } + + const std::string& path = subtree[0].first; + const std::string& owner = subtree[0].second[0].first; + crow::connections::systemBus->async_method_call( + [self, path, owner]( + const boost::system::error_code ec, + const boost::container::flat_map< + std::string, std::variant, + std::string>>& r) { + if (ec) + { + BMCWEB_LOG_ERROR << "SetPIDValues: Can't get " + "thermalModeIface " + << path; + messages::internalError(self->asyncResp->res); + return; + } + const std::string* current = nullptr; + const std::vector* supported = nullptr; + for (auto& [key, value] : r) + { + if (key == "Current") + { + current = std::get_if(&value); + if (current == nullptr) + { + BMCWEB_LOG_ERROR + << "SetPIDValues: thermal mode " + "iface invalid " + << path; + messages::internalError( + self->asyncResp->res); + return; + } + } + if (key == "Supported") + { + supported = + std::get_if>( + &value); + if (supported == nullptr) + { + BMCWEB_LOG_ERROR + << "SetPIDValues: thermal mode " + "iface invalid" + << path; + messages::internalError( + self->asyncResp->res); + return; + } + } + } + if (current == nullptr || supported == nullptr) + { + BMCWEB_LOG_ERROR << "SetPIDValues: thermal mode " + "iface invalid " + << path; + messages::internalError(self->asyncResp->res); + return; + } + self->currentProfile = *current; + self->supportedProfiles = *supported; + self->profileConnection = owner; + self->profilePath = path; + }, + owner, path, "org.freedesktop.DBus.Properties", "GetAll", + thermalModeIface); }, "xyz.openbmc_project.ObjectMapper", "/xyz/openbmc_project/object_mapper", "xyz.openbmc_project.ObjectMapper", "GetSubTree", "/", 0, - std::array{ - pidConfigurationIface, pidZoneConfigurationIface, - objectManagerIface, stepwiseConfigurationIface}); + std::array{thermalModeIface}); + } + ~SetPIDValues() + { + if (asyncResp->res.result() != boost::beast::http::status::ok) + { + return; + } + + std::shared_ptr response = asyncResp; + + if (profile) + { + if (std::find(supportedProfiles.begin(), supportedProfiles.end(), + *profile) == supportedProfiles.end()) + { + messages::actionParameterUnknown(response->res, "Profile", + *profile); + return; + } + currentProfile = *profile; + crow::connections::systemBus->async_method_call( + [response](const boost::system::error_code ec) { + if (ec) + { + BMCWEB_LOG_ERROR << "Error patching profile" << ec; + messages::internalError(response->res); + } + }, + profileConnection, profilePath, + "org.freedesktop.DBus.Properties", "Set", thermalModeIface, + "Current", std::variant(*profile)); + } + + for (auto& containerPair : configuration) + { + auto& container = containerPair.second; + if (!container) + { + continue; + } + std::string& type = containerPair.first; + + for (nlohmann::json::iterator it = container->begin(); + it != container->end(); it++) + { + const auto& name = it.key(); + auto pathItr = + std::find_if(managedObj.begin(), managedObj.end(), + [&name](const auto& obj) { + return boost::algorithm::ends_with( + obj.first.str, "/" + name); + }); + boost::container::flat_map + output; + + output.reserve(16); // The pid interface length + + // determines if we're patching entity-manager or + // creating a new object + bool createNewObject = (pathItr == managedObj.end()); + std::string iface; + if (type == "PidControllers" || type == "FanControllers") + { + iface = pidConfigurationIface; + if (!createNewObject && + pathItr->second.find(pidConfigurationIface) == + pathItr->second.end()) + { + createNewObject = true; + } + } + else if (type == "FanZones") + { + iface = pidZoneConfigurationIface; + if (!createNewObject && + pathItr->second.find(pidZoneConfigurationIface) == + pathItr->second.end()) + { + + createNewObject = true; + } + } + else if (type == "StepwiseControllers") + { + iface = stepwiseConfigurationIface; + if (!createNewObject && + pathItr->second.find(stepwiseConfigurationIface) == + pathItr->second.end()) + { + createNewObject = true; + } + } + BMCWEB_LOG_DEBUG << "Create new = " << createNewObject << "\n"; + output["Name"] = boost::replace_all_copy(name, "_", " "); + + std::string chassis; + CreatePIDRet ret = createPidInterface( + response, type, it, pathItr->first.str, managedObj, + createNewObject, output, chassis, currentProfile); + if (ret == CreatePIDRet::fail) + { + return; + } + else if (ret == CreatePIDRet::del) + { + continue; + } + + if (!createNewObject) + { + for (const auto& property : output) + { + crow::connections::systemBus->async_method_call( + [response, + propertyName{std::string(property.first)}]( + const boost::system::error_code ec) { + if (ec) + { + BMCWEB_LOG_ERROR << "Error patching " + << propertyName << ": " + << ec; + messages::internalError(response->res); + return; + } + messages::success(response->res); + }, + "xyz.openbmc_project.EntityManager", + pathItr->first.str, + "org.freedesktop.DBus.Properties", "Set", iface, + property.first, property.second); + } + } + else + { + if (chassis.empty()) + { + BMCWEB_LOG_ERROR << "Failed to get chassis from config"; + messages::invalidObject(response->res, name); + return; + } + + bool foundChassis = false; + for (const auto& obj : managedObj) + { + if (boost::algorithm::ends_with(obj.first.str, chassis)) + { + chassis = obj.first.str; + foundChassis = true; + break; + } + } + if (!foundChassis) + { + BMCWEB_LOG_ERROR << "Failed to find chassis on dbus"; + messages::resourceMissingAtURI( + response->res, "/redfish/v1/Chassis/" + chassis); + return; + } + + crow::connections::systemBus->async_method_call( + [response](const boost::system::error_code ec) { + if (ec) + { + BMCWEB_LOG_ERROR << "Error Adding Pid Object " + << ec; + messages::internalError(response->res); + return; + } + messages::success(response->res); + }, + "xyz.openbmc_project.EntityManager", chassis, + "xyz.openbmc_project.AddObject", "AddObject", output); + } + } + } + } + std::shared_ptr asyncResp; + std::vector>> + configuration; + std::optional profile; + dbus::utility::ManagedObjectType managedObj; + std::vector supportedProfiles; + std::string currentProfile; + std::string profileConnection; + std::string profilePath; +}; + +class Manager : public Node +{ + public: + Manager(CrowApp& app) : Node(app, "/redfish/v1/Managers/bmc/") + { + uuid = app.template getMiddleware() + .systemUuid; + entityPrivileges = { + {boost::beast::http::verb::get, {{"Login"}}}, + {boost::beast::http::verb::head, {{"Login"}}}, + {boost::beast::http::verb::patch, {{"ConfigureManager"}}}, + {boost::beast::http::verb::put, {{"ConfigureManager"}}}, + {boost::beast::http::verb::delete_, {{"ConfigureManager"}}}, + {boost::beast::http::verb::post, {{"ConfigureManager"}}}}; } + private: void doGet(crow::Response& res, const crow::Request& req, const std::vector& params) override { @@ -880,7 +1548,8 @@ class Manager : public Node res.jsonValue["PowerState"] = "On"; res.jsonValue["Status"] = {{"State", "Enabled"}, {"Health", "OK"}}; res.jsonValue["ManagerType"] = "BMC"; - res.jsonValue["UUID"] = uuid; + res.jsonValue["UUID"] = systemd_utils::getUuid(); + res.jsonValue["ServiceEntryPointUUID"] = uuid; res.jsonValue["Model"] = "OpenBmc"; // TODO(ed), get model res.jsonValue["LogServices"] = { @@ -891,6 +1560,12 @@ class Manager : public Node res.jsonValue["EthernetInterfaces"] = { {"@odata.id", "/redfish/v1/Managers/bmc/EthernetInterfaces"}}; + +#ifdef BMCWEB_ENABLE_VM_NBDPROXY + res.jsonValue["VirtualMedia"] = { + {"@odata.id", "/redfish/v1/Managers/bmc/VirtualMedia"}}; +#endif // BMCWEB_ENABLE_VM_NBDPROXY + // default oem data nlohmann::json& oem = res.jsonValue["Oem"]; nlohmann::json& oemOpenbmc = oem["OpenBmc"]; @@ -901,6 +1576,8 @@ class Manager : public Node oemOpenbmc["@odata.id"] = "/redfish/v1/Managers/bmc#/Oem/OpenBmc"; oemOpenbmc["@odata.context"] = "/redfish/v1/$metadata#OemManager.OpenBmc"; + oemOpenbmc["Certificates"] = { + {"@odata.id", "/redfish/v1/Managers/bmc/Truststore/Certificates"}}; // Update Actions object. nlohmann::json& manager_reset = @@ -910,315 +1587,173 @@ class Manager : public Node manager_reset["ResetType@Redfish.AllowableValues"] = { "GracefulRestart"}; - res.jsonValue["DateTime"] = getDateTime(); - res.jsonValue["Links"] = { - {"ManagerForServers@odata.count", 1}, - {"ManagerForServers", - {{{"@odata.id", "/redfish/v1/Systems/system"}}}}, - {"ManagerForServers", nlohmann::json::array()}}; - std::shared_ptr asyncResp = std::make_shared(res); + res.jsonValue["DateTime"] = crow::utility::dateTimeNow(); - crow::connections::systemBus->async_method_call( - [asyncResp](const boost::system::error_code ec, - const dbus::utility::ManagedObjectType& resp) { - if (ec) - { - BMCWEB_LOG_ERROR << "Error while getting Software Version"; - messages::internalError(asyncResp->res); - return; - } + // Fill in SerialConsole info + res.jsonValue["SerialConsole"]["ServiceEnabled"] = true; + res.jsonValue["SerialConsole"]["MaxConcurrentSessions"] = 15; + res.jsonValue["SerialConsole"]["ConnectTypesSupported"] = {"IPMI", + "SSH"}; +#ifdef BMCWEB_ENABLE_KVM + // Fill in GraphicalConsole info + res.jsonValue["GraphicalConsole"]["ServiceEnabled"] = true; + res.jsonValue["GraphicalConsole"]["MaxConcurrentSessions"] = 4; + res.jsonValue["GraphicalConsole"]["ConnectTypesSupported"] = {"KVMIP"}; +#endif // BMCWEB_ENABLE_KVM - for (auto& objpath : resp) - { - for (auto& interface : objpath.second) - { - // If interface is - // xyz.openbmc_project.Software.Version, this is - // what we're looking for. - if (interface.first == - "xyz.openbmc_project.Software.Version") - { - // Cut out everyting until last "/", ... - const std::string& iface_id = objpath.first; - for (auto& property : interface.second) - { - if (property.first == "Version") - { - const std::string* value = - std::get_if( - &property.second); - if (value == nullptr) - { - continue; - } - asyncResp->res - .jsonValue["FirmwareVersion"] = *value; - } - } - } - } - } - }, - "xyz.openbmc_project.Software.BMC.Updater", - "/xyz/openbmc_project/software", - "org.freedesktop.DBus.ObjectManager", "GetManagedObjects"); - getPidValues(asyncResp); - } - void setPidValues(std::shared_ptr response, nlohmann::json& data) - { + res.jsonValue["Links"]["ManagerForServers@odata.count"] = 1; + res.jsonValue["Links"]["ManagerForServers"] = { + {{"@odata.id", "/redfish/v1/Systems/system"}}}; - // todo(james): might make sense to do a mapper call here if this - // interface gets more traction - crow::connections::systemBus->async_method_call( - [response, - data](const boost::system::error_code ec, - const dbus::utility::ManagedObjectType& managedObj) { - if (ec) - { - BMCWEB_LOG_ERROR << "Error communicating to Entity Manager"; - messages::internalError(response->res); - return; - } + std::shared_ptr asyncResp = std::make_shared(res); - // todo(james) mutable doesn't work with asio bindings - nlohmann::json jsonData = data; - - std::optional pidControllers; - std::optional fanControllers; - std::optional fanZones; - std::optional stepwiseControllers; - if (!redfish::json_util::readJson( - jsonData, response->res, "PidControllers", - pidControllers, "FanControllers", fanControllers, - "FanZones", fanZones, "StepwiseControllers", - stepwiseControllers)) - { - BMCWEB_LOG_ERROR << "Line:" << __LINE__ - << ", Illegal Property " - << jsonData.dump(); - return; - } - std::array< - std::pair*>, 4> - sections = { - std::make_pair("PidControllers", &pidControllers), - std::make_pair("FanControllers", &fanControllers), - std::make_pair("FanZones", &fanZones), - std::make_pair("StepwiseControllers", - &stepwiseControllers)}; - - for (auto& containerPair : sections) - { - auto& container = *(containerPair.second); - if (!container) - { - continue; - } - const char* type = containerPair.first; + auto health = std::make_shared(asyncResp); + health->isManagersHealth = true; + health->populate(); - for (auto& record : container->items()) - { - const auto& name = record.key(); - auto pathItr = - std::find_if(managedObj.begin(), managedObj.end(), - [&name](const auto& obj) { - return boost::algorithm::ends_with( - obj.first.str, name); - }); - boost::container::flat_map< - std::string, dbus::utility::DbusVariantType> - output; - - output.reserve(16); // The pid interface length - - // determines if we're patching entity-manager or - // creating a new object - bool createNewObject = (pathItr == managedObj.end()); - std::string iface; - if (type == "PidControllers" || - type == "FanControllers") - { - iface = pidConfigurationIface; - if (!createNewObject && - pathItr->second.find(pidConfigurationIface) == - pathItr->second.end()) - { - createNewObject = true; - } - } - else if (type == "FanZones") - { - iface = pidZoneConfigurationIface; - if (!createNewObject && - pathItr->second.find( - pidZoneConfigurationIface) == - pathItr->second.end()) - { + fw_util::getActiveFwVersion(asyncResp, fw_util::bmcPurpose, + "FirmwareVersion"); - createNewObject = true; - } - } - else if (type == "StepwiseControllers") - { - iface = stepwiseConfigurationIface; - if (!createNewObject && - pathItr->second.find( - stepwiseConfigurationIface) == - pathItr->second.end()) - { - createNewObject = true; - } - } - output["Name"] = - boost::replace_all_copy(name, "_", " "); + auto pids = std::make_shared(asyncResp); + pids->run(); - std::string chassis; - CreatePIDRet ret = createPidInterface( - response, type, std::move(record.value()), - pathItr->first.str, managedObj, createNewObject, - output, chassis); - if (ret == CreatePIDRet::fail) - { - return; - } - else if (ret == CreatePIDRet::del) - { - continue; - } + getMainChassisId(asyncResp, [](const std::string& chassisId, + const std::shared_ptr aRsp) { + aRsp->res.jsonValue["Links"]["ManagerForChassis@odata.count"] = 1; + aRsp->res.jsonValue["Links"]["ManagerForChassis"] = { + {{"@odata.id", "/redfish/v1/Chassis/" + chassisId}}}; + aRsp->res.jsonValue["Links"]["ManagerInChassis"] = { + {"@odata.id", "/redfish/v1/Chassis/" + chassisId}}; + }); - if (!createNewObject) - { - for (const auto& property : output) - { - crow::connections::systemBus->async_method_call( - [response, - propertyName{std::string(property.first)}]( - const boost::system::error_code ec) { - if (ec) - { - BMCWEB_LOG_ERROR - << "Error patching " - << propertyName << ": " << ec; - messages::internalError( - response->res); - } - }, - "xyz.openbmc_project.EntityManager", - pathItr->first.str, - "org.freedesktop.DBus.Properties", "Set", - iface, property.first, property.second); - } - } - else - { - if (chassis.empty()) - { - BMCWEB_LOG_ERROR - << "Failed to get chassis from config"; - messages::invalidObject(response->res, name); - return; - } - - bool foundChassis = false; - for (const auto& obj : managedObj) - { - if (boost::algorithm::ends_with(obj.first.str, - chassis)) - { - chassis = obj.first.str; - foundChassis = true; - break; - } - } - if (!foundChassis) - { - BMCWEB_LOG_ERROR - << "Failed to find chassis on dbus"; - messages::resourceMissingAtURI( - response->res, - "/redfish/v1/Chassis/" + chassis); - return; - } + static bool started = false; - crow::connections::systemBus->async_method_call( - [response](const boost::system::error_code ec) { - if (ec) - { - BMCWEB_LOG_ERROR - << "Error Adding Pid Object " << ec; - messages::internalError(response->res); - } - }, - "xyz.openbmc_project.EntityManager", chassis, - "xyz.openbmc_project.AddObject", "AddObject", - output); - } + if (!started) + { + crow::connections::systemBus->async_method_call( + [asyncResp](const boost::system::error_code ec, + const std::variant& resp) { + if (ec) + { + BMCWEB_LOG_ERROR << "Error while getting progress"; + messages::internalError(asyncResp->res); + return; } - } - }, - "xyz.openbmc_project.EntityManager", "/", objectManagerIface, - "GetManagedObjects"); + const double* val = std::get_if(&resp); + if (val == nullptr) + { + BMCWEB_LOG_ERROR + << "Invalid response while getting progress"; + messages::internalError(asyncResp->res); + return; + } + if (*val < 1.0) + { + asyncResp->res.jsonValue["Status"]["State"] = + "Starting"; + started = true; + } + }, + "org.freedesktop.systemd1", "/org/freedesktop/systemd1", + "org.freedesktop.DBus.Properties", "Get", + "org.freedesktop.systemd1.Manager", "Progress"); + } } void doPatch(crow::Response& res, const crow::Request& req, const std::vector& params) override { std::optional oem; + std::optional datetime; + std::shared_ptr response = std::make_shared(res); - if (!json_util::readJson(req, res, "Oem", oem)) + if (!json_util::readJson(req, response->res, "Oem", oem, "DateTime", + datetime)) { return; } - std::shared_ptr response = std::make_shared(res); - if (oem) { - for (const auto& oemLevel : oem->items()) + std::optional openbmc; + if (!redfish::json_util::readJson(*oem, res, "OpenBmc", openbmc)) { - std::optional openbmc; - if (!redfish::json_util::readJson(*oem, res, "OpenBmc", - openbmc)) + BMCWEB_LOG_ERROR << "Line:" << __LINE__ << ", Illegal Property " + << oem->dump(); + return; + } + if (openbmc) + { + std::optional fan; + if (!redfish::json_util::readJson(*openbmc, res, "Fan", fan)) { BMCWEB_LOG_ERROR << "Line:" << __LINE__ - << ", Illegal Property " << oem->dump(); + << ", Illegal Property " + << openbmc->dump(); return; } - if (openbmc) + if (fan) { - std::optional fan; - if (!redfish::json_util::readJson(*openbmc, res, "Fan", - fan)) - { - BMCWEB_LOG_ERROR << "Line:" << __LINE__ - << ", Illegal Property " - << openbmc->dump(); - return; - } - if (fan) - { - setPidValues(response, *fan); - } + auto pid = std::make_shared(response, *fan); + pid->run(); } } } + if (datetime) + { + setDateTime(response, std::move(*datetime)); + } } - std::string getDateTime() const + void setDateTime(std::shared_ptr aResp, + std::string datetime) const { - std::array dateTime; - std::string redfishDateTime("0000-00-00T00:00:00Z00:00"); - std::time_t time = std::time(nullptr); - - if (std::strftime(dateTime.begin(), dateTime.size(), "%FT%T%z", - std::localtime(&time))) + BMCWEB_LOG_DEBUG << "Set date time: " << datetime; + + std::stringstream stream(datetime); + // Convert from ISO 8601 to boost local_time + // (BMC only has time in UTC) + boost::posix_time::ptime posixTime; + boost::posix_time::ptime epoch(boost::gregorian::date(1970, 1, 1)); + // Facet gets deleted with the stringsteam + auto ifc = std::make_unique( + "%Y-%m-%d %H:%M:%S%F %ZP"); + stream.imbue(std::locale(stream.getloc(), ifc.release())); + + boost::local_time::local_date_time ldt( + boost::local_time::not_a_date_time); + + if (stream >> ldt) { - // insert the colon required by the ISO 8601 standard - redfishDateTime = std::string(dateTime.data()); - redfishDateTime.insert(redfishDateTime.end() - 2, ':'); + posixTime = ldt.utc_time(); + boost::posix_time::time_duration dur = posixTime - epoch; + uint64_t durMicroSecs = + static_cast(dur.total_microseconds()); + crow::connections::systemBus->async_method_call( + [aResp{std::move(aResp)}, datetime{std::move(datetime)}]( + const boost::system::error_code ec) { + if (ec) + { + BMCWEB_LOG_DEBUG << "Failed to set elapsed time. " + "DBUS response error " + << ec; + messages::internalError(aResp->res); + return; + } + aResp->res.jsonValue["DateTime"] = datetime; + }, + "xyz.openbmc_project.Time.Manager", + "/xyz/openbmc_project/time/bmc", + "org.freedesktop.DBus.Properties", "Set", + "xyz.openbmc_project.Time.EpochTime", "Elapsed", + std::variant(durMicroSecs)); + } + else + { + messages::propertyValueFormatError(aResp->res, datetime, + "DateTime"); + return; } - - return redfishDateTime; } std::string uuid; diff --git a/Contrib-Inspur/bmcweb/redfish-core/lib/message_registries.hpp b/Contrib-Inspur/bmcweb/redfish-core/lib/message_registries.hpp new file mode 100644 index 00000000..96ce0c20 --- /dev/null +++ b/Contrib-Inspur/bmcweb/redfish-core/lib/message_registries.hpp @@ -0,0 +1,270 @@ +/* +// Copyright (c) 2019 Intel Corporation +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +*/ +#pragma once + +#include "node.hpp" +#include "registries.hpp" +#include "registries/base_message_registry.hpp" +#include "registries/openbmc_message_registry.hpp" + +namespace redfish +{ + +class MessageRegistryFileCollection : public Node +{ + public: + template + MessageRegistryFileCollection(CrowApp &app) : + Node(app, "/redfish/v1/Registries/") + { + entityPrivileges = { + {boost::beast::http::verb::get, {{"Login"}}}, + {boost::beast::http::verb::head, {{"Login"}}}, + {boost::beast::http::verb::patch, {{"ConfigureManager"}}}, + {boost::beast::http::verb::put, {{"ConfigureManager"}}}, + {boost::beast::http::verb::delete_, {{"ConfigureManager"}}}, + {boost::beast::http::verb::post, {{"ConfigureManager"}}}}; + } + + private: + /** + * Functions triggers appropriate requests on DBus + */ + void doGet(crow::Response &res, const crow::Request &req, + const std::vector ¶ms) override + { + // Collections don't include the static data added by SubRoute because + // it has a duplicate entry for members + + res.jsonValue = { + {"@odata.type", + "#MessageRegistryFileCollection.MessageRegistryFileCollection"}, + {"@odata.context", "/redfish/v1/" + "$metadata#MessageRegistryFileCollection." + "MessageRegistryFileCollection"}, + {"@odata.id", "/redfish/v1/Registries"}, + {"Name", "MessageRegistryFile Collection"}, + {"Description", "Collection of MessageRegistryFiles"}, + {"Members@odata.count", 2}, + {"Members", + {{{"@odata.id", "/redfish/v1/Registries/Base"}}, + {{"@odata.id", "/redfish/v1/Registries/OpenBMC"}}}}}; + + res.end(); + } +}; + +class BaseMessageRegistryFile : public Node +{ + public: + template + BaseMessageRegistryFile(CrowApp &app) : + Node(app, "/redfish/v1/Registries/Base/") + { + entityPrivileges = { + {boost::beast::http::verb::get, {{"Login"}}}, + {boost::beast::http::verb::head, {{"Login"}}}, + {boost::beast::http::verb::patch, {{"ConfigureManager"}}}, + {boost::beast::http::verb::put, {{"ConfigureManager"}}}, + {boost::beast::http::verb::delete_, {{"ConfigureManager"}}}, + {boost::beast::http::verb::post, {{"ConfigureManager"}}}}; + } + + private: + void doGet(crow::Response &res, const crow::Request &req, + const std::vector ¶ms) override + { + res.jsonValue = { + {"@odata.id", "/redfish/v1/Registries/Base"}, + {"@odata.type", "#MessageRegistryFile.v1_1_0.MessageRegistryFile"}, + {"@odata.context", + "/redfish/v1/$metadata#MessageRegistryFile.MessageRegistryFile"}, + {"Name", "Base Message Registry File"}, + {"Description", "DMTF Base Message Registry File Location"}, + {"Id", message_registries::base::header.registryPrefix}, + {"Registry", message_registries::base::header.id}, + {"Languages", {"en"}}, + {"Languages@odata.count", 1}, + {"Location", + {{{"Language", "en"}, + {"PublicationUri", + "https://redfish.dmtf.org/registries/Base.1.4.0.json"}, + {"Uri", "/redfish/v1/Registries/Base/Base"}}}}, + {"Location@odata.count", 1}}; + res.end(); + } +}; + +class BaseMessageRegistry : public Node +{ + public: + template + BaseMessageRegistry(CrowApp &app) : + Node(app, "/redfish/v1/Registries/Base/Base/") + { + entityPrivileges = { + {boost::beast::http::verb::get, {{"Login"}}}, + {boost::beast::http::verb::head, {{"Login"}}}, + {boost::beast::http::verb::patch, {{"ConfigureManager"}}}, + {boost::beast::http::verb::put, {{"ConfigureManager"}}}, + {boost::beast::http::verb::delete_, {{"ConfigureManager"}}}, + {boost::beast::http::verb::post, {{"ConfigureManager"}}}}; + } + + private: + void doGet(crow::Response &res, const crow::Request &req, + const std::vector ¶ms) override + { + res.jsonValue = { + {"@Redfish.Copyright", message_registries::base::header.copyright}, + {"@odata.type", message_registries::base::header.type}, + {"Id", message_registries::base::header.id}, + {"Name", message_registries::base::header.name}, + {"Language", message_registries::base::header.language}, + {"Description", message_registries::base::header.description}, + {"RegistryPrefix", message_registries::base::header.registryPrefix}, + {"RegistryVersion", + message_registries::base::header.registryVersion}, + {"OwningEntity", message_registries::base::header.owningEntity}}; + + nlohmann::json &messageObj = res.jsonValue["Messages"]; + + // Go through the Message Registry and populate each Message + for (const message_registries::MessageEntry &message : + message_registries::base::registry) + { + nlohmann::json &obj = messageObj[message.first]; + obj = {{"Description", message.second.description}, + {"Message", message.second.message}, + {"Severity", message.second.severity}, + {"NumberOfArgs", message.second.numberOfArgs}, + {"Resolution", message.second.resolution}}; + if (message.second.numberOfArgs > 0) + { + nlohmann::json &messageParamArray = obj["ParamTypes"]; + for (const char *str : message.second.paramTypes) + { + if (str == nullptr) + { + break; + } + messageParamArray.push_back(str); + } + } + } + res.end(); + } +}; + +class OpenBMCMessageRegistryFile : public Node +{ + public: + template + OpenBMCMessageRegistryFile(CrowApp &app) : + Node(app, "/redfish/v1/Registries/OpenBMC/") + { + entityPrivileges = { + {boost::beast::http::verb::get, {{"Login"}}}, + {boost::beast::http::verb::head, {{"Login"}}}, + {boost::beast::http::verb::patch, {{"ConfigureManager"}}}, + {boost::beast::http::verb::put, {{"ConfigureManager"}}}, + {boost::beast::http::verb::delete_, {{"ConfigureManager"}}}, + {boost::beast::http::verb::post, {{"ConfigureManager"}}}}; + } + + private: + void doGet(crow::Response &res, const crow::Request &req, + const std::vector ¶ms) override + { + res.jsonValue = { + {"@odata.id", "/redfish/v1/Registries/OpenBMC"}, + {"@odata.type", "#MessageRegistryFile.v1_1_0.MessageRegistryFile"}, + {"@odata.context", + "/redfish/v1/$metadata#MessageRegistryFile.MessageRegistryFile"}, + {"Name", "Open BMC Message Registry File"}, + {"Description", "Open BMC Message Registry File Location"}, + {"Id", message_registries::openbmc::header.registryPrefix}, + {"Registry", message_registries::openbmc::header.id}, + {"Languages", {"en"}}, + {"Languages@odata.count", 1}, + {"Location", + {{{"Language", "en"}, + {"Uri", "/redfish/v1/Registries/OpenBMC/OpenBMC"}}}}, + {"Location@odata.count", 1}}; + + res.end(); + } +}; + +class OpenBMCMessageRegistry : public Node +{ + public: + template + OpenBMCMessageRegistry(CrowApp &app) : + Node(app, "/redfish/v1/Registries/OpenBMC/OpenBMC/") + { + entityPrivileges = { + {boost::beast::http::verb::get, {{"Login"}}}, + {boost::beast::http::verb::head, {{"Login"}}}, + {boost::beast::http::verb::patch, {{"ConfigureManager"}}}, + {boost::beast::http::verb::put, {{"ConfigureManager"}}}, + {boost::beast::http::verb::delete_, {{"ConfigureManager"}}}, + {boost::beast::http::verb::post, {{"ConfigureManager"}}}}; + } + + private: + void doGet(crow::Response &res, const crow::Request &req, + const std::vector ¶ms) override + { + res.jsonValue = { + {"@Redfish.Copyright", + message_registries::openbmc::header.copyright}, + {"@odata.type", message_registries::openbmc::header.type}, + {"Id", message_registries::openbmc::header.id}, + {"Name", message_registries::openbmc::header.name}, + {"Language", message_registries::openbmc::header.language}, + {"Description", message_registries::openbmc::header.description}, + {"RegistryPrefix", + message_registries::openbmc::header.registryPrefix}, + {"RegistryVersion", + message_registries::openbmc::header.registryVersion}, + {"OwningEntity", message_registries::openbmc::header.owningEntity}}; + + nlohmann::json &messageObj = res.jsonValue["Messages"]; + // Go through the Message Registry and populate each Message + for (const message_registries::MessageEntry &message : + message_registries::openbmc::registry) + { + nlohmann::json &obj = messageObj[message.first]; + obj = {{"Description", message.second.description}, + {"Message", message.second.message}, + {"Severity", message.second.severity}, + {"NumberOfArgs", message.second.numberOfArgs}, + {"Resolution", message.second.resolution}}; + if (message.second.numberOfArgs > 0) + { + nlohmann::json &messageParamArray = obj["ParamTypes"]; + for (size_t i = 0; i < message.second.numberOfArgs; i++) + { + messageParamArray.push_back(message.second.paramTypes[i]); + } + } + } + res.end(); + } +}; + +} // namespace redfish diff --git a/Contrib-Inspur/bmcweb/redfish-core/lib/network_protocol.hpp b/Contrib-Inspur/bmcweb/redfish-core/lib/network_protocol.hpp index 044d8d0e..28506836 100644 --- a/Contrib-Inspur/bmcweb/redfish-core/lib/network_protocol.hpp +++ b/Contrib-Inspur/bmcweb/redfish-core/lib/network_protocol.hpp @@ -18,8 +18,9 @@ #include "error_messages.hpp" #include "node.hpp" +#include +#include #include - namespace redfish { @@ -51,23 +52,80 @@ using UnitStruct = std::string, sdbusplus::message::object_path, uint32_t, std::string, sdbusplus::message::object_path>; -struct ServiceConfiguration +const static boost::container::flat_map + protocolToDBus{{"SSH", "dropbear"}, + {"HTTPS", "bmcweb"}, + {"IPMI", "phosphor-ipmi-net"}}; + +inline void + extractNTPServersAndDomainNamesData(const GetManagedObjects& dbus_data, + std::vector& ntpData, + std::vector& dnData) { - const char* serviceName; - const char* socketPath; -}; + for (const auto& obj : dbus_data) + { + for (const auto& ifacePair : obj.second) + { + if (obj.first == "/xyz/openbmc_project/network/eth0") + { + if (ifacePair.first == + "xyz.openbmc_project.Network.EthernetInterface") + { + for (const auto& propertyPair : ifacePair.second) + { + if (propertyPair.first == "NTPServers") + { + const std::vector* ntpServers = + sdbusplus::message::variant_ns::get_if< + std::vector>( + &propertyPair.second); + if (ntpServers != nullptr) + { + ntpData = std::move(*ntpServers); + } + } + else if (propertyPair.first == "DomainName") + { + const std::vector* domainNames = + sdbusplus::message::variant_ns::get_if< + std::vector>( + &propertyPair.second); + if (domainNames != nullptr) + { + dnData = std::move(*domainNames); + } + } + } + } + } + } + } +} + +template +void getEthernetIfaceData(CallbackFunc&& callback) +{ + crow::connections::systemBus->async_method_call( + [callback{std::move(callback)}]( + const boost::system::error_code error_code, + const GetManagedObjects& dbus_data) { + std::vector ntpServers; + std::vector domainNames; + + if (error_code) + { + callback(false, ntpServers, domainNames); + return; + } -const static boost::container::flat_map - protocolToDBus{ - {"SSH", - {"dropbear.service", - "/org/freedesktop/systemd1/unit/dropbear_2esocket"}}, - {"HTTPS", - {"phosphor-gevent.service", - "/org/freedesktop/systemd1/unit/phosphor_2dgevent_2esocket"}}, - {"IPMI", - {"phosphor-ipmi-net.service", - "/org/freedesktop/systemd1/unit/phosphor_2dipmi_2dnet_2esocket"}}}; + extractNTPServersAndDomainNamesData(dbus_data, ntpServers, + domainNames); + + callback(true, ntpServers, domainNames); + }, + "xyz.openbmc_project.Network", "/xyz/openbmc_project/network", + "org.freedesktop.DBus.ObjectManager", "GetManagedObjects"); +} class NetworkProtocol : public Node { @@ -105,10 +163,34 @@ class NetworkProtocol : public Node return hostName; } + void getNTPProtocolEnabled(const std::shared_ptr& asyncResp) + { + crow::connections::systemBus->async_method_call( + [asyncResp](const boost::system::error_code error_code, + const std::variant& timeSyncMethod) { + const std::string* s = + std::get_if(&timeSyncMethod); + + if (*s == "xyz.openbmc_project.Time.Synchronization.Method.NTP") + { + asyncResp->res.jsonValue["NTP"]["ProtocolEnabled"] = true; + } + else if (*s == "xyz.openbmc_project.Time.Synchronization." + "Method.Manual") + { + asyncResp->res.jsonValue["NTP"]["ProtocolEnabled"] = false; + } + }, + "xyz.openbmc_project.Settings", + "/xyz/openbmc_project/time/sync_method", + "org.freedesktop.DBus.Properties", "Get", + "xyz.openbmc_project.Time.Synchronization", "TimeSyncMethod"); + } + void getData(const std::shared_ptr& asyncResp) { asyncResp->res.jsonValue["@odata.type"] = - "#ManagerNetworkProtocol.v1_1_0.ManagerNetworkProtocol"; + "#ManagerNetworkProtocol.v1_4_0.ManagerNetworkProtocol"; asyncResp->res.jsonValue["@odata.id"] = "/redfish/v1/Managers/bmc/NetworkProtocol"; asyncResp->res.jsonValue["@odata.context"] = @@ -126,37 +208,80 @@ class NetworkProtocol : public Node asyncResp->res.jsonValue[protocol.first]["ProtocolEnabled"] = false; } - asyncResp->res.jsonValue["HostName"] = getHostName(); + std::string hostName = getHostName(); + + asyncResp->res.jsonValue["HostName"] = hostName; + + getNTPProtocolEnabled(asyncResp); + + // TODO Get eth0 interface data, and call the below callback for JSON + // preparation + getEthernetIfaceData( + [hostName, asyncResp](const bool& success, + const std::vector& ntpServers, + const std::vector& domainNames) { + if (!success) + { + messages::resourceNotFound(asyncResp->res, + "EthernetInterface", "eth0"); + return; + } + asyncResp->res.jsonValue["NTP"]["NTPServers"] = ntpServers; + if (hostName.empty() == false) + { + std::string FQDN = std::move(hostName); + if (domainNames.empty() == false) + { + FQDN += "." + domainNames[0]; + } + asyncResp->res.jsonValue["FQDN"] = std::move(FQDN); + } + }); crow::connections::systemBus->async_method_call( - [asyncResp](const boost::system::error_code ec, - const std::vector& resp) { - if (ec) + [asyncResp](const boost::system::error_code e, + const std::vector& r) { + if (e) { asyncResp->res.jsonValue = nlohmann::json::object(); messages::internalError(asyncResp->res); return; } + asyncResp->res.jsonValue["HTTPS"]["Certificates"] = { + {"@odata.id", "/redfish/v1/Managers/bmc/NetworkProtocol/" + "HTTPS/Certificates"}}; - for (auto& unit : resp) + for (auto& unit : r) { + /* Only traverse through .socket units */ + std::string unitName = std::get(unit); + if (!boost::ends_with(unitName, ".socket")) + { + continue; + } + for (auto& kv : protocolToDBus) { - if (kv.second.serviceName == - std::get(unit)) + // We are interested in services, which starts with + // mapped service name + if (!boost::starts_with(unitName, kv.second)) { continue; } - const char* service = kv.first; - const char* socketPath = kv.second.socketPath; + const char* rfServiceKey = kv.first; + std::string socketPath = + std::get(unit); + std::string unitState = + std::get(unit); - asyncResp->res.jsonValue[service]["ProtocolEnabled"] = - std::get(unit) == - "running"; + asyncResp->res + .jsonValue[rfServiceKey]["ProtocolEnabled"] = + (unitState == "running") || + (unitState == "listening"); crow::connections::systemBus->async_method_call( - [asyncResp, service{std::string(service)}, - socketPath]( + [asyncResp, + rfServiceKey{std::string(rfServiceKey)}]( const boost::system::error_code ec, const std::variant>>& resp) { @@ -188,34 +313,134 @@ class NetworkProtocol : public Node } std::string portStr = listenStream.substr(lastColonPos + 1); + if (portStr.empty()) + { + return; + } char* endPtr = nullptr; + errno = 0; // Use strtol instead of stroi to avoid // exceptions long port = std::strtol(portStr.c_str(), &endPtr, 10); - - if (*endPtr != '\0' || portStr.empty()) + if ((errno == 0) && (*endPtr == '\0')) { - // Invalid value - asyncResp->res.jsonValue[service]["Port"] = - nullptr; - } - else - { - // Everything OK - asyncResp->res.jsonValue[service]["Port"] = - port; + asyncResp->res + .jsonValue[rfServiceKey]["Port"] = port; } + return; }, "org.freedesktop.systemd1", socketPath, "org.freedesktop.DBus.Properties", "Get", "org.freedesktop.systemd1.Socket", "Listen"); + + // We found service, break the inner loop. + break; } } }, "org.freedesktop.systemd1", "/org/freedesktop/systemd1", "org.freedesktop.systemd1.Manager", "ListUnits"); } + + void handleHostnamePatch(const std::string& hostName, + const std::shared_ptr& asyncResp) + { + crow::connections::systemBus->async_method_call( + [asyncResp](const boost::system::error_code ec) { + if (ec) + { + messages::internalError(asyncResp->res); + return; + } + }, + "xyz.openbmc_project.Network", + "/xyz/openbmc_project/network/config", + "org.freedesktop.DBus.Properties", "Set", + "xyz.openbmc_project.Network.SystemConfiguration", "HostName", + std::variant(hostName)); + } + + void handleNTPProtocolEnabled(const bool& ntpEnabled, + const std::shared_ptr& asyncResp) + { + std::string timeSyncMethod; + if (ntpEnabled) + { + timeSyncMethod = + "xyz.openbmc_project.Time.Synchronization.Method.NTP"; + } + else + { + timeSyncMethod = + "xyz.openbmc_project.Time.Synchronization.Method.Manual"; + } + + crow::connections::systemBus->async_method_call( + [asyncResp](const boost::system::error_code error_code) {}, + "xyz.openbmc_project.Settings", + "/xyz/openbmc_project/time/sync_method", + "org.freedesktop.DBus.Properties", "Set", + "xyz.openbmc_project.Time.Synchronization", "TimeSyncMethod", + std::variant{timeSyncMethod}); + } + + void handleNTPServersPatch(const std::vector& ntpServers, + const std::shared_ptr& asyncResp) + { + crow::connections::systemBus->async_method_call( + [asyncResp](const boost::system::error_code ec) { + if (ec) + { + messages::internalError(asyncResp->res); + return; + } + }, + "xyz.openbmc_project.Network", "/xyz/openbmc_project/network/eth0", + "org.freedesktop.DBus.Properties", "Set", + "xyz.openbmc_project.Network.EthernetInterface", "NTPServers", + std::variant>{ntpServers}); + } + + void doPatch(crow::Response& res, const crow::Request& req, + const std::vector& params) override + { + std::shared_ptr asyncResp = std::make_shared(res); + std::optional newHostName; + std::optional ntp; + + if (!json_util::readJson(req, res, "HostName", newHostName, "NTP", ntp)) + { + return; + } + + res.result(boost::beast::http::status::no_content); + if (newHostName) + { + handleHostnamePatch(*newHostName, asyncResp); + } + + if (ntp) + { + std::optional> ntpServers; + std::optional ntpEnabled; + if (!json_util::readJson(*ntp, res, "NTPServers", ntpServers, + "ProtocolEnabled", ntpEnabled)) + { + return; + } + + if (ntpEnabled) + { + handleNTPProtocolEnabled(*ntpEnabled, asyncResp); + } + + if (ntpServers) + { + handleNTPServersPatch(*ntpServers, asyncResp); + } + } + } }; } // namespace redfish diff --git a/Contrib-Inspur/bmcweb/redfish-core/lib/pcie.hpp b/Contrib-Inspur/bmcweb/redfish-core/lib/pcie.hpp new file mode 100644 index 00000000..36248a1a --- /dev/null +++ b/Contrib-Inspur/bmcweb/redfish-core/lib/pcie.hpp @@ -0,0 +1,460 @@ +/* +// Copyright (c) 2018 Intel Corporation +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +*/ + +#pragma once + +#include "node.hpp" + +#include + +namespace redfish +{ + +static constexpr char const *pcieService = "xyz.openbmc_project.PCIe"; +static constexpr char const *pciePath = "/xyz/openbmc_project/PCIe"; +static constexpr char const *pcieDeviceInterface = + "xyz.openbmc_project.PCIe.Device"; + +static inline void getPCIeDeviceList(std::shared_ptr asyncResp, + const std::string &name) +{ + auto getPCIeMapCallback = [asyncResp, name]( + const boost::system::error_code ec, + std::vector &pcieDevicePaths) { + if (ec) + { + BMCWEB_LOG_DEBUG << "no PCIe device paths found ec: " + << ec.message(); + // Not an error, system just doesn't have PCIe info + return; + } + nlohmann::json &pcieDeviceList = asyncResp->res.jsonValue[name]; + pcieDeviceList = nlohmann::json::array(); + for (const std::string &pcieDevicePath : pcieDevicePaths) + { + size_t devStart = pcieDevicePath.rfind("/"); + if (devStart == std::string::npos) + { + continue; + } + + std::string devName = pcieDevicePath.substr(devStart + 1); + if (devName.empty()) + { + continue; + } + pcieDeviceList.push_back( + {{"@odata.id", + "/redfish/v1/Systems/system/PCIeDevices/" + devName}}); + } + asyncResp->res.jsonValue[name + "@odata.count"] = pcieDeviceList.size(); + }; + crow::connections::systemBus->async_method_call( + std::move(getPCIeMapCallback), "xyz.openbmc_project.ObjectMapper", + "/xyz/openbmc_project/object_mapper", + "xyz.openbmc_project.ObjectMapper", "GetSubTreePaths", + std::string(pciePath) + "/", 1, std::array()); +} + +class SystemPCIeDeviceCollection : public Node +{ + public: + template + SystemPCIeDeviceCollection(CrowApp &app) : + Node(app, "/redfish/v1/Systems/system/PCIeDevices/") + { + entityPrivileges = { + {boost::beast::http::verb::get, {{"Login"}}}, + {boost::beast::http::verb::head, {{"Login"}}}, + {boost::beast::http::verb::patch, {{"ConfigureManager"}}}, + {boost::beast::http::verb::put, {{"ConfigureManager"}}}, + {boost::beast::http::verb::delete_, {{"ConfigureManager"}}}, + {boost::beast::http::verb::post, {{"ConfigureManager"}}}}; + } + + private: + /** + * Functions triggers appropriate requests on DBus + */ + void doGet(crow::Response &res, const crow::Request &req, + const std::vector ¶ms) override + { + std::shared_ptr asyncResp = std::make_shared(res); + asyncResp->res.jsonValue = { + {"@odata.type", "#PCIeDeviceCollection.PCIeDeviceCollection"}, + {"@odata.context", + "/redfish/v1/" + "$metadata#PCIeDeviceCollection.PCIeDeviceCollection"}, + {"@odata.id", "/redfish/v1/Systems/system/PCIeDevices"}, + {"Name", "PCIe Device Collection"}, + {"Description", "Collection of PCIe Devices"}, + {"Members", nlohmann::json::array()}, + {"Members@odata.count", 0}}; + getPCIeDeviceList(asyncResp, "Members"); + } +}; + +class SystemPCIeDevice : public Node +{ + public: + SystemPCIeDevice(CrowApp &app) : + Node(app, "/redfish/v1/Systems/system/PCIeDevices//", + std::string()) + { + entityPrivileges = { + {boost::beast::http::verb::get, {{"Login"}}}, + {boost::beast::http::verb::head, {{"Login"}}}, + {boost::beast::http::verb::patch, {{"ConfigureManager"}}}, + {boost::beast::http::verb::put, {{"ConfigureManager"}}}, + {boost::beast::http::verb::delete_, {{"ConfigureManager"}}}, + {boost::beast::http::verb::post, {{"ConfigureManager"}}}}; + } + + private: + void doGet(crow::Response &res, const crow::Request &req, + const std::vector ¶ms) override + { + std::shared_ptr asyncResp = std::make_shared(res); + if (params.size() != 1) + { + messages::internalError(asyncResp->res); + return; + } + const std::string &device = params[0]; + + auto getPCIeDeviceCallback = + [asyncResp, + device](const boost::system::error_code ec, + boost::container::flat_map< + std::string, sdbusplus::message::variant> + &pcieDevProperties) { + if (ec) + { + BMCWEB_LOG_DEBUG + << "failed to get PCIe Device properties ec: " + << ec.value() << ": " << ec.message(); + if (ec.value() == + boost::system::linux_error::bad_request_descriptor) + { + messages::resourceNotFound(asyncResp->res, "PCIeDevice", + device); + } + else + { + messages::internalError(asyncResp->res); + } + return; + } + + asyncResp->res.jsonValue = { + {"@odata.type", "#PCIeDevice.v1_4_0.PCIeDevice"}, + {"@odata.context", + "/redfish/v1/$metadata#PCIeDevice.v1_4_0.PCIeDevice"}, + {"@odata.id", + "/redfish/v1/Systems/system/PCIeDevices/" + device}, + {"Name", "PCIe Device"}, + {"Id", device}}; + + if (std::string *property = + sdbusplus::message::variant_ns::get_if( + &pcieDevProperties["Manufacturer"]); + property) + { + asyncResp->res.jsonValue["Manufacturer"] = *property; + } + + if (std::string *property = + sdbusplus::message::variant_ns::get_if( + &pcieDevProperties["DeviceType"]); + property) + { + asyncResp->res.jsonValue["DeviceType"] = *property; + } + + asyncResp->res.jsonValue["PCIeFunctions"] = { + {"@odata.id", "/redfish/v1/Systems/system/PCIeDevices/" + + device + "/PCIeFunctions"}}; + }; + std::string escapedPath = std::string(pciePath) + "/" + device; + dbus::utility::escapePathForDbus(escapedPath); + crow::connections::systemBus->async_method_call( + std::move(getPCIeDeviceCallback), pcieService, escapedPath, + "org.freedesktop.DBus.Properties", "GetAll", pcieDeviceInterface); + } +}; + +class SystemPCIeFunctionCollection : public Node +{ + public: + template + SystemPCIeFunctionCollection(CrowApp &app) : + Node(app, "/redfish/v1/Systems/system/PCIeDevices//PCIeFunctions/", + std::string()) + { + entityPrivileges = { + {boost::beast::http::verb::get, {{"Login"}}}, + {boost::beast::http::verb::head, {{"Login"}}}, + {boost::beast::http::verb::patch, {{"ConfigureManager"}}}, + {boost::beast::http::verb::put, {{"ConfigureManager"}}}, + {boost::beast::http::verb::delete_, {{"ConfigureManager"}}}, + {boost::beast::http::verb::post, {{"ConfigureManager"}}}}; + } + + private: + /** + * Functions triggers appropriate requests on DBus + */ + void doGet(crow::Response &res, const crow::Request &req, + const std::vector ¶ms) override + { + std::shared_ptr asyncResp = std::make_shared(res); + if (params.size() != 1) + { + messages::internalError(asyncResp->res); + return; + } + const std::string &device = params[0]; + asyncResp->res.jsonValue = { + {"@odata.type", "#PCIeFunctionCollection.PCIeFunctionCollection"}, + {"@odata.context", + "/redfish/v1/" + "$metadata#PCIeFunctionCollection.PCIeFunctionCollection"}, + {"@odata.id", "/redfish/v1/Systems/system/PCIeDevices/" + device + + "/PCIeFunctions"}, + {"Name", "PCIe Function Collection"}, + {"Description", + "Collection of PCIe Functions for PCIe Device " + device}}; + + auto getPCIeDeviceCallback = + [asyncResp, + device](const boost::system::error_code ec, + boost::container::flat_map< + std::string, sdbusplus::message::variant> + &pcieDevProperties) { + if (ec) + { + BMCWEB_LOG_DEBUG + << "failed to get PCIe Device properties ec: " + << ec.value() << ": " << ec.message(); + if (ec.value() == + boost::system::linux_error::bad_request_descriptor) + { + messages::resourceNotFound(asyncResp->res, "PCIeDevice", + device); + } + else + { + messages::internalError(asyncResp->res); + } + return; + } + + nlohmann::json &pcieFunctionList = + asyncResp->res.jsonValue["Members"]; + pcieFunctionList = nlohmann::json::array(); + static constexpr const int maxPciFunctionNum = 8; + for (int functionNum = 0; functionNum < maxPciFunctionNum; + functionNum++) + { + // Check if this function exists by looking for a device ID + std::string devIDProperty = + "Function" + std::to_string(functionNum) + "DeviceId"; + std::string *property = + sdbusplus::message::variant_ns::get_if( + &pcieDevProperties[devIDProperty]); + if (property && !property->empty()) + { + pcieFunctionList.push_back( + {{"@odata.id", + "/redfish/v1/Systems/system/PCIeDevices/" + + device + "/PCIeFunctions/" + + std::to_string(functionNum)}}); + } + } + asyncResp->res.jsonValue["PCIeFunctions@odata.count"] = + pcieFunctionList.size(); + }; + std::string escapedPath = std::string(pciePath) + "/" + device; + dbus::utility::escapePathForDbus(escapedPath); + crow::connections::systemBus->async_method_call( + std::move(getPCIeDeviceCallback), pcieService, escapedPath, + "org.freedesktop.DBus.Properties", "GetAll", pcieDeviceInterface); + } +}; + +class SystemPCIeFunction : public Node +{ + public: + SystemPCIeFunction(CrowApp &app) : + Node( + app, + "/redfish/v1/Systems/system/PCIeDevices//PCIeFunctions//", + std::string(), std::string()) + { + entityPrivileges = { + {boost::beast::http::verb::get, {{"Login"}}}, + {boost::beast::http::verb::head, {{"Login"}}}, + {boost::beast::http::verb::patch, {{"ConfigureManager"}}}, + {boost::beast::http::verb::put, {{"ConfigureManager"}}}, + {boost::beast::http::verb::delete_, {{"ConfigureManager"}}}, + {boost::beast::http::verb::post, {{"ConfigureManager"}}}}; + } + + private: + void doGet(crow::Response &res, const crow::Request &req, + const std::vector ¶ms) override + { + std::shared_ptr asyncResp = std::make_shared(res); + if (params.size() != 2) + { + messages::internalError(asyncResp->res); + return; + } + const std::string &device = params[0]; + const std::string &function = params[1]; + + auto getPCIeDeviceCallback = + [asyncResp, device, function]( + const boost::system::error_code ec, + boost::container::flat_map< + std::string, sdbusplus::message::variant> + &pcieDevProperties) { + if (ec) + { + BMCWEB_LOG_DEBUG + << "failed to get PCIe Device properties ec: " + << ec.value() << ": " << ec.message(); + if (ec.value() == + boost::system::linux_error::bad_request_descriptor) + { + messages::resourceNotFound(asyncResp->res, "PCIeDevice", + device); + } + else + { + messages::internalError(asyncResp->res); + } + return; + } + + // Check if this function exists by looking for a device ID + std::string devIDProperty = "Function" + function + "DeviceId"; + if (std::string *property = + sdbusplus::message::variant_ns::get_if( + &pcieDevProperties[devIDProperty]); + property && property->empty()) + { + messages::resourceNotFound(asyncResp->res, "PCIeFunction", + function); + return; + } + + asyncResp->res.jsonValue = { + {"@odata.type", "#PCIeFunction.v1_2_0.PCIeFunction"}, + {"@odata.context", + "/redfish/v1/$metadata#PCIeFunction.PCIeFunction"}, + {"@odata.id", "/redfish/v1/Systems/system/PCIeDevices/" + + device + "/PCIeFunctions/" + function}, + {"Name", "PCIe Function"}, + {"Id", function}, + {"FunctionId", std::stoi(function)}, + {"Links", + {{"PCIeDevice", + {{"@odata.id", + "/redfish/v1/Systems/system/PCIeDevices/" + + device}}}}}}; + + if (std::string *property = + sdbusplus::message::variant_ns::get_if( + &pcieDevProperties["Function" + function + + "DeviceId"]); + property) + { + asyncResp->res.jsonValue["DeviceId"] = *property; + } + + if (std::string *property = + sdbusplus::message::variant_ns::get_if( + &pcieDevProperties["Function" + function + + "VendorId"]); + property) + { + asyncResp->res.jsonValue["VendorId"] = *property; + } + + if (std::string *property = + sdbusplus::message::variant_ns::get_if( + &pcieDevProperties["Function" + function + + "FunctionType"]); + property) + { + asyncResp->res.jsonValue["FunctionType"] = *property; + } + + if (std::string *property = + sdbusplus::message::variant_ns::get_if( + &pcieDevProperties["Function" + function + + "DeviceClass"]); + property) + { + asyncResp->res.jsonValue["DeviceClass"] = *property; + } + + if (std::string *property = + sdbusplus::message::variant_ns::get_if( + &pcieDevProperties["Function" + function + + "ClassCode"]); + property) + { + asyncResp->res.jsonValue["ClassCode"] = *property; + } + + if (std::string *property = + sdbusplus::message::variant_ns::get_if( + &pcieDevProperties["Function" + function + + "RevisionId"]); + property) + { + asyncResp->res.jsonValue["RevisionId"] = *property; + } + + if (std::string *property = + sdbusplus::message::variant_ns::get_if( + &pcieDevProperties["Function" + function + + "SubsystemId"]); + property) + { + asyncResp->res.jsonValue["SubsystemId"] = *property; + } + + if (std::string *property = + sdbusplus::message::variant_ns::get_if( + &pcieDevProperties["Function" + function + + "SubsystemVendorId"]); + property) + { + asyncResp->res.jsonValue["SubsystemVendorId"] = *property; + } + }; + std::string escapedPath = std::string(pciePath) + "/" + device; + dbus::utility::escapePathForDbus(escapedPath); + crow::connections::systemBus->async_method_call( + std::move(getPCIeDeviceCallback), pcieService, escapedPath, + "org.freedesktop.DBus.Properties", "GetAll", pcieDeviceInterface); + } +}; + +} // namespace redfish diff --git a/Contrib-Inspur/bmcweb/redfish-core/lib/power.hpp b/Contrib-Inspur/bmcweb/redfish-core/lib/power.hpp index 0cb1aa0c..ac7503d4 100644 --- a/Contrib-Inspur/bmcweb/redfish-core/lib/power.hpp +++ b/Contrib-Inspur/bmcweb/redfish-core/lib/power.hpp @@ -31,13 +31,118 @@ class Power : public Node entityPrivileges = { {boost::beast::http::verb::get, {{"Login"}}}, {boost::beast::http::verb::head, {{"Login"}}}, - {boost::beast::http::verb::patch, {{"ConfigureManager"}}}, + {boost::beast::http::verb::patch, {{"ConfigureComponents"}}}, {boost::beast::http::verb::put, {{"ConfigureManager"}}}, {boost::beast::http::verb::delete_, {{"ConfigureManager"}}}, {boost::beast::http::verb::post, {{"ConfigureManager"}}}}; } private: + std::vector typeList = {"/xyz/openbmc_project/sensors/voltage", + "/xyz/openbmc_project/sensors/power"}; + void setPowerCapOverride( + std::shared_ptr asyncResp, + std::vector& powerControlCollections) + { + auto getChassisPath = + [asyncResp, powerControlCollections]( + const std::optional& chassisPath) mutable { + if (!chassisPath) + { + BMCWEB_LOG_ERROR << "Don't find valid chassis path "; + messages::resourceNotFound(asyncResp->res, "Chassis", + asyncResp->chassisId); + return; + } + + if (powerControlCollections.size() != 1) + { + BMCWEB_LOG_ERROR + << "Don't support multiple hosts at present "; + messages::resourceNotFound(asyncResp->res, "Power", + "PowerControl"); + return; + } + + auto& item = powerControlCollections[0]; + + std::optional powerLimit; + if (!json_util::readJson(item, asyncResp->res, "PowerLimit", + powerLimit)) + { + return; + } + if (!powerLimit) + { + return; + } + std::optional value; + if (!json_util::readJson(*powerLimit, asyncResp->res, + "LimitInWatts", value)) + { + return; + } + if (!value) + { + return; + } + auto valueHandler = [value, asyncResp]( + const boost::system::error_code ec, + const SensorVariant& powerCapEnable) { + if (ec) + { + messages::internalError(asyncResp->res); + BMCWEB_LOG_ERROR + << "powerCapEnable Get handler: Dbus error " << ec; + return; + } + // Check PowerCapEnable + const bool* b = + sdbusplus::message::variant_ns::get_if( + &powerCapEnable); + if (b == nullptr) + { + messages::internalError(asyncResp->res); + BMCWEB_LOG_ERROR + << "Fail to get PowerCapEnable status "; + return; + } + if (!(*b)) + { + messages::actionNotSupported( + asyncResp->res, + "Setting LimitInWatts when PowerLimit " + "feature is disabled"); + BMCWEB_LOG_ERROR << "PowerLimit feature is disabled "; + return; + } + + crow::connections::systemBus->async_method_call( + [asyncResp](const boost::system::error_code ec) { + if (ec) + { + BMCWEB_LOG_DEBUG + << "Power Limit Set: Dbus error: " << ec; + messages::internalError(asyncResp->res); + return; + } + asyncResp->res.result( + boost::beast::http::status::no_content); + }, + "xyz.openbmc_project.Settings", + "/xyz/openbmc_project/control/host0/power_cap", + "org.freedesktop.DBus.Properties", "Set", + "xyz.openbmc_project.Control.Power.Cap", "PowerCap", + sdbusplus::message::variant(*value)); + }; + crow::connections::systemBus->async_method_call( + std::move(valueHandler), "xyz.openbmc_project.Settings", + "/xyz/openbmc_project/control/host0/power_cap", + "org.freedesktop.DBus.Properties", "Get", + "xyz.openbmc_project.Control.Power.Cap", "PowerCapEnable"); + }; + getValidChassisPath(asyncResp, std::move(getChassisPath)); + } void doGet(crow::Response& res, const crow::Request& req, const std::vector& params) override { @@ -49,20 +154,214 @@ class Power : public Node } const std::string& chassis_name = params[0]; - res.jsonValue["@odata.id"] = - "/redfish/v1/Chassis/" + chassis_name + "/Power"; - res.jsonValue["@odata.type"] = "#Power.v1_2_1.Power"; - res.jsonValue["@odata.context"] = "/redfish/v1/$metadata#Power.Power"; - res.jsonValue["Id"] = "Power"; - res.jsonValue["Name"] = "Power"; + res.jsonValue["PowerControl"] = nlohmann::json::array(); + auto sensorAsyncResp = std::make_shared( - res, chassis_name, - std::initializer_list{ - "/xyz/openbmc_project/sensors/voltage", - "/xyz/openbmc_project/sensors/power"}, - "Power"); - // TODO Need to retrieve Power Control information. + res, chassis_name, typeList, "Power"); + getChassisData(sensorAsyncResp); + + // This callback verifies that the power limit is only provided for the + // chassis that implements the Chassis inventory item. This prevents + // things like power supplies providing the chassis power limit + auto chassisHandler = [sensorAsyncResp]( + const boost::system::error_code e, + const std::vector& + chassisPaths) { + if (e) + { + BMCWEB_LOG_ERROR + << "Power Limit GetSubTreePaths handler Dbus error " << e; + return; + } + + bool found = false; + for (const std::string& chassis : chassisPaths) + { + size_t len = std::string::npos; + size_t lastPos = chassis.rfind("/"); + if (lastPos == std::string::npos) + { + continue; + } + + if (lastPos == chassis.size() - 1) + { + size_t end = lastPos; + lastPos = chassis.rfind("/", lastPos - 1); + if (lastPos == std::string::npos) + { + continue; + } + + len = end - (lastPos + 1); + } + + std::string interfaceChassisName = + chassis.substr(lastPos + 1, len); + if (!interfaceChassisName.compare(sensorAsyncResp->chassisId)) + { + found = true; + break; + } + } + + if (!found) + { + BMCWEB_LOG_DEBUG << "Power Limit not present for " + << sensorAsyncResp->chassisId; + return; + } + + auto valueHandler = + [sensorAsyncResp]( + const boost::system::error_code ec, + const std::vector>& + properties) { + if (ec) + { + messages::internalError(sensorAsyncResp->res); + BMCWEB_LOG_ERROR + << "Power Limit GetAll handler: Dbus error " << ec; + return; + } + + nlohmann::json& tempArray = + sensorAsyncResp->res.jsonValue["PowerControl"]; + + // Put multiple "sensors" into a single PowerControl, 0, so + // only create the first one + if (tempArray.empty()) + { + // Mandatory properties odata.id and MemberId + // A warning without a odata.type + tempArray.push_back( + {{"@odata.type", "#Power.v1_0_0.PowerControl"}, + {"@odata.id", "/redfish/v1/Chassis/" + + sensorAsyncResp->chassisId + + "/Power#/PowerControl/0"}, + {"Name", "Chassis Power Control"}, + {"MemberId", "0"}}); + } + + nlohmann::json& sensorJson = tempArray.back(); + bool enabled = false; + double powerCap = 0.0; + int64_t scale = 0; + + for (const std::pair& property : + properties) + { + if (!property.first.compare("Scale")) + { + const int64_t* i = + sdbusplus::message::variant_ns::get_if( + &property.second); + + if (i) + { + scale = *i; + } + } + else if (!property.first.compare("PowerCap")) + { + const double* d = + sdbusplus::message::variant_ns::get_if( + &property.second); + const int64_t* i = + sdbusplus::message::variant_ns::get_if( + &property.second); + const uint32_t* u = + sdbusplus::message::variant_ns::get_if< + uint32_t>(&property.second); + + if (d) + { + powerCap = *d; + } + else if (i) + { + powerCap = static_cast(*i); + } + else if (u) + { + powerCap = *u; + } + } + else if (!property.first.compare("PowerCapEnable")) + { + const bool* b = + sdbusplus::message::variant_ns::get_if( + &property.second); + + if (b) + { + enabled = *b; + } + } + } + + nlohmann::json& value = + sensorJson["PowerLimit"]["LimitInWatts"]; + + if (enabled) + { + // Redfish specification indicates PowerLimit should be + // null if the limit is not enabled. + value = powerCap * std::pow(10, scale); + } + }; + + crow::connections::systemBus->async_method_call( + std::move(valueHandler), "xyz.openbmc_project.Settings", + "/xyz/openbmc_project/control/host0/power_cap", + "org.freedesktop.DBus.Properties", "GetAll", + "xyz.openbmc_project.Control.Power.Cap"); + }; + + crow::connections::systemBus->async_method_call( + std::move(chassisHandler), "xyz.openbmc_project.ObjectMapper", + "/xyz/openbmc_project/object_mapper", + "xyz.openbmc_project.ObjectMapper", "GetSubTreePaths", + "/xyz/openbmc_project/inventory", 0, + std::array{ + "xyz.openbmc_project.Inventory.Item.Chassis"}); + } + void doPatch(crow::Response& res, const crow::Request& req, + const std::vector& params) override + { + if (params.size() != 1) + { + messages::internalError(res); + res.end(); + return; + } + + const std::string& chassisName = params[0]; + auto asyncResp = std::make_shared(res, chassisName, + typeList, "Power"); + + std::optional> voltageCollections; + std::optional> powerCtlCollections; + + if (!json_util::readJson(req, asyncResp->res, "PowerControl", + powerCtlCollections, "Voltages", + voltageCollections)) + { + return; + } + + if (powerCtlCollections) + { + setPowerCapOverride(asyncResp, *powerCtlCollections); + } + if (voltageCollections) + { + std::unordered_map> + allCollections; + allCollections.emplace("Voltages", *std::move(voltageCollections)); + setSensorOverride(asyncResp, allCollections, chassisName, typeList); + } } }; diff --git a/Contrib-Inspur/bmcweb/redfish-core/lib/redfish_sessions.hpp b/Contrib-Inspur/bmcweb/redfish-core/lib/redfish_sessions.hpp index 59805a0c..00948583 100644 --- a/Contrib-Inspur/bmcweb/redfish-core/lib/redfish_sessions.hpp +++ b/Contrib-Inspur/bmcweb/redfish-core/lib/redfish_sessions.hpp @@ -35,7 +35,8 @@ class Sessions : public Node {boost::beast::http::verb::head, {{"Login"}}}, {boost::beast::http::verb::patch, {{"ConfigureManager"}}}, {boost::beast::http::verb::put, {{"ConfigureManager"}}}, - {boost::beast::http::verb::delete_, {{"ConfigureManager"}}}, + {boost::beast::http::verb::delete_, + {{"ConfigureManager"}, {"ConfigureSelf"}}}, {boost::beast::http::verb::post, {{"ConfigureManager"}}}}; } @@ -43,6 +44,7 @@ class Sessions : public Node void doGet(crow::Response& res, const crow::Request& req, const std::vector& params) override { + // Note that control also reaches here via doPost and doDelete. auto session = crow::persistent_data::SessionStore::getInstance().getSessionByUid( params[0]); @@ -93,6 +95,22 @@ class Sessions : public Node return; } + // Perform a proper ConfigureSelf authority check. If a + // session is being used to DELETE some other user's session, + // then the ConfigureSelf privilege does not apply. In that + // case, perform the authority check again without the user's + // ConfigureSelf privilege. + if (session->username != req.session->username) + { + if (!isAllowedWithoutConfigureSelf(req)) + { + BMCWEB_LOG_WARNING << "DELETE Session denied access"; + messages::insufficientPrivilege(res); + res.end(); + return; + } + } + // DELETE should return representation of object that will be removed doGet(res, req, params); @@ -139,6 +157,7 @@ class SessionCollection : public Node res.jsonValue["Members"].push_back( {{"@odata.id", "/redfish/v1/SessionService/Sessions/" + *uid}}); } + res.jsonValue["Members@odata.count"] = sessionIds.size(); res.jsonValue["@odata.type"] = "#SessionCollection.SessionCollection"; res.jsonValue["@odata.id"] = "/redfish/v1/SessionService/Sessions/"; res.jsonValue["@odata.context"] = @@ -177,7 +196,7 @@ class SessionCollection : public Node return; } - if (!pamAuthenticateUser(username, password)) + if (pamAuthenticateUser(username, password) != PAM_SUCCESS) { messages::resourceAtUriUnauthorized(res, std::string(req.url), "Invalid username or password"); diff --git a/Contrib-Inspur/bmcweb/redfish-core/lib/redfish_util.hpp b/Contrib-Inspur/bmcweb/redfish-core/lib/redfish_util.hpp new file mode 100644 index 00000000..0c874e61 --- /dev/null +++ b/Contrib-Inspur/bmcweb/redfish-core/lib/redfish_util.hpp @@ -0,0 +1,64 @@ +/* +// Copyright (c) 2019 Intel Corporation +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +*/ +#ifndef BMCWEB_ENABLE_REDFISH_ONE_CHASSIS +#pragma once + +#include + +namespace redfish +{ + +template +void getMainChassisId(std::shared_ptr asyncResp, + CallbackFunc&& callback) +{ + // Find managed chassis + crow::connections::systemBus->async_method_call( + [callback, + asyncResp](const boost::system::error_code ec, + const crow::openbmc_mapper::GetSubTreeType& subtree) { + if (ec) + { + BMCWEB_LOG_ERROR << ec; + return; + } + if (subtree.size() == 0) + { + BMCWEB_LOG_DEBUG << "Can't find chassis!"; + return; + } + + std::size_t idPos = subtree[0].first.rfind("/"); + if (idPos == std::string::npos || + (idPos + 1) >= subtree[0].first.size()) + { + messages::internalError(asyncResp->res); + BMCWEB_LOG_DEBUG << "Can't parse chassis ID!"; + return; + } + std::string chassisId = subtree[0].first.substr(idPos + 1); + BMCWEB_LOG_DEBUG << "chassisId = " << chassisId; + callback(chassisId, asyncResp); + }, + "xyz.openbmc_project.ObjectMapper", + "/xyz/openbmc_project/object_mapper", + "xyz.openbmc_project.ObjectMapper", "GetSubTree", + "/xyz/openbmc_project/inventory", 0, + std::array{ + "xyz.openbmc_project.Inventory.Item.Chassis"}); +} +} // namespace redfish +#endif diff --git a/Contrib-Inspur/bmcweb/redfish-core/lib/rmc/rmc_chassis.hpp b/Contrib-Inspur/bmcweb/redfish-core/lib/rmc/rmc_chassis.hpp new file mode 100644 index 00000000..a4baa9c9 --- /dev/null +++ b/Contrib-Inspur/bmcweb/redfish-core/lib/rmc/rmc_chassis.hpp @@ -0,0 +1,617 @@ +/* +// Copyright (c) 2018 Intel Corporation +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +*/ +#pragma once + +#include "health.hpp" +#include "led.hpp" +#include "node.hpp" + +#include +#include + +namespace redfish +{ + +/** + * @brief Retrieves chassis state properties over dbus + * + * @param[in] aResp - Shared pointer for completing asynchronous calls. + * + * @return None. + */ +void getChassisState(std::shared_ptr aResp) +{ + crow::connections::systemBus->async_method_call( + [aResp{std::move(aResp)}]( + const boost::system::error_code ec, + const std::variant &chassisState) { + if (ec) + { + BMCWEB_LOG_DEBUG << "DBUS response error " << ec; + messages::internalError(aResp->res); + return; + } + + const std::string *s = std::get_if(&chassisState); + BMCWEB_LOG_DEBUG << "Chassis state: " << *s; + if (s != nullptr) + { + // Verify Chassis State + if (*s == "xyz.openbmc_project.State.Chassis.PowerState.On") + { + aResp->res.jsonValue["PowerState"] = "On"; + aResp->res.jsonValue["Status"]["State"] = "Enabled"; + } + else if (*s == + "xyz.openbmc_project.State.Chassis.PowerState.Off") + { + aResp->res.jsonValue["PowerState"] = "Off"; + aResp->res.jsonValue["Status"]["State"] = "StandbyOffline"; + } + } + }, + "xyz.openbmc_project.State.Chassis", + "/xyz/openbmc_project/state/chassis0", + "org.freedesktop.DBus.Properties", "Get", + "xyz.openbmc_project.State.Chassis", "CurrentPowerState"); +} + +/** + * DBus types primitives for several generic DBus interfaces + * TODO(Pawel) consider move this to separate file into boost::dbus + */ +// Note, this is not a very useful Variant, but because it isn't used to get +// values, it should be as simple as possible +// TODO(ed) invent a nullvariant type +using VariantType = std::variant; +using ManagedObjectsType = std::vector>>>>>; + +using PropertiesType = boost::container::flat_map; + +void getIntrusionByService(std::shared_ptr aResp, + const std::string &service, + const std::string &objPath) +{ + BMCWEB_LOG_DEBUG << "Get intrusion status by service \n"; + + crow::connections::systemBus->async_method_call( + [aResp{std::move(aResp)}](const boost::system::error_code ec, + const std::variant &value) { + if (ec) + { + // do not add err msg in redfish response, becaues this is not + // mandatory property + BMCWEB_LOG_ERROR << "DBUS response error " << ec << "\n"; + return; + } + + const std::string *status = std::get_if(&value); + + if (status == nullptr) + { + BMCWEB_LOG_ERROR << "intrusion status read error \n"; + return; + } + + aResp->res.jsonValue["PhysicalSecurity"] = { + {"IntrusionSensorNumber", 1}, {"IntrusionSensor", *status}}; + }, + service, objPath, "org.freedesktop.DBus.Properties", "Get", + "xyz.openbmc_project.Chassis.Intrusion", "Status"); +} + +/** + * Retrieves physical security properties over dbus + */ +void getPhysicalSecurityData(std::shared_ptr aResp) +{ + crow::connections::systemBus->async_method_call( + [aResp{std::move(aResp)}]( + const boost::system::error_code ec, + const std::vector>>>> + &subtree) { + if (ec) + { + // do not add err msg in redfish response, becaues this is not + // mandatory property + BMCWEB_LOG_ERROR << "DBUS error: no matched iface " << ec + << "\n"; + return; + } + // Iterate over all retrieved ObjectPaths. + for (const auto &object : subtree) + { + for (const auto &service : object.second) + { + getIntrusionByService(aResp, service.first, object.first); + return; + } + } + }, + "xyz.openbmc_project.ObjectMapper", + "/xyz/openbmc_project/object_mapper", + "xyz.openbmc_project.ObjectMapper", "GetSubTree", + "/xyz/openbmc_project/Intrusion", 1, + std::array{"xyz.openbmc_project.Chassis.Intrusion"}); +} + +/** + * ChassisCollection derived class for delivering Chassis Collection Schema + */ +class ChassisCollection : public Node +{ + public: + ChassisCollection(CrowApp &app) : Node(app, "/redfish/v1/Chassis/") + { + entityPrivileges = { + {boost::beast::http::verb::get, {{"Login"}}}, + {boost::beast::http::verb::head, {{"Login"}}}, + {boost::beast::http::verb::patch, {{"ConfigureComponents"}}}, + {boost::beast::http::verb::put, {{"ConfigureComponents"}}}, + {boost::beast::http::verb::delete_, {{"ConfigureComponents"}}}, + {boost::beast::http::verb::post, {{"ConfigureComponents"}}}}; + } + + private: +#ifndef BMCWEB_ENABLE_REDFISH_RMC + /** + * Functions triggers appropriate requests on DBus + */ + void doGet(crow::Response &res, const crow::Request &req, + const std::vector ¶ms) override + { + res.jsonValue["@odata.type"] = "#ChassisCollection.ChassisCollection"; + res.jsonValue["@odata.id"] = "/redfish/v1/Chassis"; + res.jsonValue["@odata.context"] = + "/redfish/v1/$metadata#ChassisCollection.ChassisCollection"; + res.jsonValue["Name"] = "Chassis Collection"; + + const std::array interfaces = { + "xyz.openbmc_project.Inventory.Item.Board", + "xyz.openbmc_project.Inventory.Item.Chassis"}; + + auto asyncResp = std::make_shared(res); + crow::connections::systemBus->async_method_call( + [asyncResp](const boost::system::error_code ec, + const std::vector &chassisList) { + if (ec) + { + messages::internalError(asyncResp->res); + return; + } + nlohmann::json &chassisArray = + asyncResp->res.jsonValue["Members"]; + chassisArray = nlohmann::json::array(); + for (const std::string &objpath : chassisList) + { + std::size_t lastPos = objpath.rfind("/"); + if (lastPos == std::string::npos) + { + BMCWEB_LOG_ERROR << "Failed to find '/' in " << objpath; + continue; + } + chassisArray.push_back( + {{ "@odata.id", + "/redfish/v1/Chassis/" + objpath.substr(lastPos + 1) + }}); + } + + asyncResp->res.jsonValue["Members@odata.count"] = + chassisArray.size(); + }, + "xyz.openbmc_project.ObjectMapper", + "/xyz/openbmc_project/object_mapper", + "xyz.openbmc_project.ObjectMapper", "GetSubTreePaths", + "/xyz/openbmc_project/inventory", 0, interfaces); + } +#else + void getChassisList(std::shared_ptr asyncResp) + { + nlohmann::json &chassisArray = asyncResp->res.jsonValue["Members"]; + chassisArray = nlohmann::json::array(); + chassisArray.push_back({{"@odata.id", "/redfish/v1/Chassis/chassis1"}}); + chassisArray.push_back({{"@odata.id", "/redfish/v1/Chassis/chassis2"}}); + //chassisArray.push_back({{"@odata.id", "/redfish/v1/Chassis/chassis3"}}); + asyncResp->res.jsonValue["Members@odata.count"] = chassisArray.size(); + } + + void doGet(crow::Response &res, const crow::Request &req, + const std::vector ¶ms) override + { + BMCWEB_LOG_ERROR << "doGet in chassis collectoin"; + res.jsonValue["@odata.type"] = "#ChassisCollection.ChassisCollection"; + res.jsonValue["@odata.id"] = "/redfish/v1/Chassis"; + res.jsonValue["@odata.context"] = + "/redfish/v1/$metadata#ChassisCollection.ChassisCollection"; + res.jsonValue["Name"] = "Chassis Collection"; + auto asyncResp = std::make_shared(res); + getChassisList(asyncResp); + } +#endif +}; + +/** + * Chassis override class for delivering Chassis Schema + */ +class Chassis : public Node +{ + public: + Chassis(CrowApp &app) : + Node(app, "/redfish/v1/Chassis//", std::string()) + { + entityPrivileges = { + {boost::beast::http::verb::get, {{"Login"}}}, + {boost::beast::http::verb::head, {{"Login"}}}, + {boost::beast::http::verb::patch, {{"ConfigureComponents"}}}, + {boost::beast::http::verb::put, {{"ConfigureComponents"}}}, + {boost::beast::http::verb::delete_, {{"ConfigureComponents"}}}, + {boost::beast::http::verb::post, {{"ConfigureComponents"}}}}; + } + + private: +#ifndef BMCWEB_ENABLE_REDFISH_RMC + /** + * Functions triggers appropriate requests on DBus + */ + void doGet(crow::Response &res, const crow::Request &req, + const std::vector ¶ms) override + { + const std::array interfaces = { + "xyz.openbmc_project.Inventory.Item.Board", + "xyz.openbmc_project.Inventory.Item.Chassis"}; + + // Check if there is required param, truly entering this shall be + // impossible. + if (params.size() != 1) + { + messages::internalError(res); + res.end(); + return; + } + const std::string &chassisId = params[0]; + + auto asyncResp = std::make_shared(res); + crow::connections::systemBus->async_method_call( + [asyncResp, chassisId(std::string(chassisId))]( + const boost::system::error_code ec, + const crow::openbmc_mapper::GetSubTreeType &subtree) { + if (ec) + { + messages::internalError(asyncResp->res); + return; + } + // Iterate over all retrieved ObjectPaths. + for (const std::pair< + std::string, + std::vector< + std::pair>>> + &object : subtree) + { + const std::string &path = object.first; + const std::vector< + std::pair>> + &connectionNames = object.second; + + if (!boost::ends_with(path, chassisId)) + { + continue; + } + + auto health = std::make_shared(asyncResp); + + crow::connections::systemBus->async_method_call( + [health](const boost::system::error_code ec, + std::variant> &resp) { + if (ec) + { + return; // no sensors = no failures + } + std::vector *data = + std::get_if>(&resp); + if (data == nullptr) + { + return; + } + health->inventory = std::move(*data); + }, + "xyz.openbmc_project.ObjectMapper", + path + "/all_sensors", + "org.freedesktop.DBus.Properties", "Get", + "xyz.openbmc_project.Association", "endpoints"); + + health->populate(); + + if (connectionNames.size() < 1) + { + BMCWEB_LOG_ERROR << "Got 0 Connection names"; + continue; + } + + asyncResp->res.jsonValue["@odata.type"] = + "#Chassis.v1_10_0.Chassis"; + asyncResp->res.jsonValue["@odata.id"] = + "/redfish/v1/Chassis/" + chassisId; + asyncResp->res.jsonValue["@odata.context"] = + "/redfish/v1/$metadata#Chassis.Chassis"; + asyncResp->res.jsonValue["Name"] = "Chassis Collection"; + asyncResp->res.jsonValue["ChassisType"] = "RackMount"; + asyncResp->res.jsonValue["PCIeDevices"] = { + {"@odata.id", + "/redfish/v1/Systems/system/PCIeDevices"}}; + + const std::string &connectionName = + connectionNames[0].first; + + const std::vector &interfaces = + connectionNames[0].second; + const std::array hasIndicatorLed = { + "xyz.openbmc_project.Inventory.Item.Panel", + "xyz.openbmc_project.Inventory.Item.Board.Motherboard"}; + + for (const char *interface : hasIndicatorLed) + { + if (std::find(interfaces.begin(), interfaces.end(), + interface) != interfaces.end()) + { + getIndicatorLedState(asyncResp); + break; + } + } + + crow::connections::systemBus->async_method_call( + [asyncResp, chassisId(std::string(chassisId))]( + const boost::system::error_code ec, + const std::vector> &propertiesList) { + for (const std::pair + &property : propertiesList) + { + // Store DBus properties that are also Redfish + // properties with same name and a string value + const std::string &propertyName = + property.first; + if ((propertyName == "PartNumber") || + (propertyName == "SerialNumber") || + (propertyName == "Manufacturer") || + (propertyName == "Model")) + { + const std::string *value = + std::get_if( + &property.second); + if (value != nullptr) + { + asyncResp->res.jsonValue[propertyName] = + *value; + } + } + } + asyncResp->res.jsonValue["Name"] = chassisId; + asyncResp->res.jsonValue["Id"] = chassisId; + asyncResp->res.jsonValue["Thermal"] = { + {"@odata.id", "/redfish/v1/Chassis/" + + chassisId + "/Thermal"}}; + // Power object + asyncResp->res.jsonValue["Power"] = { + {"@odata.id", "/redfish/v1/Chassis/" + + chassisId + "/Power"}}; + // SensorCollection + asyncResp->res.jsonValue["Sensors"] = { + {"@odata.id", "/redfish/v1/Chassis/" + + chassisId + "/Sensors"}}; + asyncResp->res.jsonValue["Status"] = { + {"State", "Enabled"}, + }; + + asyncResp->res + .jsonValue["Links"]["ComputerSystems"] = { + {{"@odata.id", "/redfish/v1/Systems/system"}}}; + asyncResp->res.jsonValue["Links"]["ManagedBy"] = { + {{"@odata.id", "/redfish/v1/Managers/bmc"}}}; + getChassisState(asyncResp); + }, + connectionName, path, "org.freedesktop.DBus.Properties", + "GetAll", + "xyz.openbmc_project.Inventory.Decorator.Asset"); + return; + } + + // Couldn't find an object with that name. return an error + messages::resourceNotFound( + asyncResp->res, "#Chassis.v1_10_0.Chassis", chassisId); + }, + "xyz.openbmc_project.ObjectMapper", + "/xyz/openbmc_project/object_mapper", + "xyz.openbmc_project.ObjectMapper", "GetSubTree", + "/xyz/openbmc_project/inventory", 0, interfaces); + + getPhysicalSecurityData(asyncResp); + } + + void doPatch(crow::Response &res, const crow::Request &req, + const std::vector ¶ms) override + { + std::optional indicatorLed; + auto asyncResp = std::make_shared(res); + + if (params.size() != 1) + { + return; + } + + if (!json_util::readJson(req, res, "IndicatorLED", indicatorLed)) + { + return; + } + + if (!indicatorLed) + { + return; // delete this when we support more patch properties + } + + const std::array interfaces = { + "xyz.openbmc_project.Inventory.Item.Board", + "xyz.openbmc_project.Inventory.Item.Chassis"}; + + const std::string &chassisId = params[0]; + + crow::connections::systemBus->async_method_call( + [asyncResp, chassisId, indicatorLed]( + const boost::system::error_code ec, + const crow::openbmc_mapper::GetSubTreeType &subtree) { + if (ec) + { + messages::internalError(asyncResp->res); + return; + } + + // Iterate over all retrieved ObjectPaths. + for (const std::pair< + std::string, + std::vector< + std::pair>>> + &object : subtree) + { + const std::string &path = object.first; + const std::vector< + std::pair>> + &connectionNames = object.second; + + if (!boost::ends_with(path, chassisId)) + { + continue; + } + + if (connectionNames.size() < 1) + { + BMCWEB_LOG_ERROR << "Got 0 Connection names"; + continue; + } + + const std::vector &interfaces = + connectionNames[0].second; + + if (indicatorLed) + { + const std::array hasIndicatorLed = { + "xyz.openbmc_project.Inventory.Item.Panel", + "xyz.openbmc_project.Inventory.Item.Board." + "Motherboard"}; + bool indicatorChassis = false; + for (const char *interface : hasIndicatorLed) + { + if (std::find(interfaces.begin(), interfaces.end(), + interface) != interfaces.end()) + { + indicatorChassis = true; + break; + } + } + if (indicatorChassis) + { + setIndicatorLedState(asyncResp, + std::move(*indicatorLed)); + } + else + { + messages::propertyUnknown(asyncResp->res, + "IndicatorLED"); + } + } + return; + } + + messages::resourceNotFound( + asyncResp->res, "#Chassis.v1_10_0.Chassis", chassisId); + }, + "xyz.openbmc_project.ObjectMapper", + "/xyz/openbmc_project/object_mapper", + "xyz.openbmc_project.ObjectMapper", "GetSubTree", + "/xyz/openbmc_project/inventory", 0, interfaces); + } +#else +void getChassis(std::shared_ptr asyncResp, + const std::string &chassisId) + { + + asyncResp->res.jsonValue["Name"] = chassisId; + asyncResp->res.jsonValue["Id"] = chassisId; + asyncResp->res.jsonValue["Thermal"] = { + {"@odata.id", "/redfish/v1/Chassis/" + chassisId + "/Thermal"}}; + asyncResp->res.jsonValue["Power"] = { + {"@odata.id", "/redfish/v1/Chassis/" + chassisId + "/Power"}}; + } + + void doGet(crow::Response &res, const crow::Request &req, + const std::vector ¶ms) override + { + // Check if there is required param, truly entering this shall be + // impossible. + if (params.size() != 1) + { + messages::internalError(res); + res.end(); + return; + } + + const std::string &chassisId = params[0]; + std::string ipaddr = "192.168.1.100"; + if (chassisId == "chassis1") + ipaddr = "192.168.1.101"; + else if (chassisId == "chassis2") + ipaddr = "192.168.1.102"; + else if (chassisId == "chassis3") + ipaddr = "192.168.1.103"; + + res.jsonValue["@odata.type"] = "#Chassis.v1_4_0.Chassis"; + res.jsonValue["@odata.id"] = std::string("/redfish/v1/Chassis/") + chassisId; + res.jsonValue["@odata.context"] = "/redfish/v1/$metadata#Chassis.Chassis"; + res.jsonValue["Description"] = "Ocp Node"; + res.jsonValue["Manufacturer"] = "Inspur"; + res.jsonValue["Model"] = "OCP"; + res.jsonValue["SKU"] = "2810-9827-5523-1435"; + res.jsonValue["SerialNumber"] = "EE1D253"; + res.jsonValue["PartNumber"] = "NF1750"; + res.jsonValue["IpAddr"] = ipaddr; + res.jsonValue["AssetTag"] = {}; + res.jsonValue["IndicatorLED"] = {}; + res.jsonValue["PowerState"] = "On"; + res.jsonValue["ChassisType"] = "Rack"; + nlohmann::json &status = res.jsonValue["Status"]; + status["State"] = "Enabled"; + status["Health"] = "OK"; + status["HealthRollup"] = {}; + + res.jsonValue["Links"] = {}; + res.jsonValue["ContainedBy"] = {}; + res.jsonValue["ComputerSystems"]= {}; + res.jsonValue["ManagedBy"] = {{"@odata.id", "/redfish/v1/Managers/rmc"}}; + res.jsonValue["ManagersInChassis"] = {}; + res.jsonValue["PoweredBy"] = {}; + res.jsonValue["CooledBy"] = {}; + res.jsonValue["Storage"] = {}; + res.jsonValue["Drives"] = {}; + + auto asyncResp = std::make_shared(res); + getChassis(asyncResp, chassisId); + } +#endif +}; +} // namespace redfish diff --git a/Contrib-Inspur/bmcweb/redfish-core/lib/rmc/rmc_cpudimm.hpp b/Contrib-Inspur/bmcweb/redfish-core/lib/rmc/rmc_cpudimm.hpp new file mode 100644 index 00000000..052f7c2b --- /dev/null +++ b/Contrib-Inspur/bmcweb/redfish-core/lib/rmc/rmc_cpudimm.hpp @@ -0,0 +1,855 @@ +/* +// Copyright (c) 2018 Intel Corporation +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +*/ +#pragma once + +#include +#include +#include + +namespace redfish +{ + +using InterfacesProperties = boost::container::flat_map< + std::string, + boost::container::flat_map>; + +void getResourceList(std::shared_ptr aResp, + const std::string &subclass, + const std::vector &collectionName) +{ + BMCWEB_LOG_DEBUG << "Get available system cpu/mem resources."; + crow::connections::systemBus->async_method_call( + [subclass, aResp{std::move(aResp)}]( + const boost::system::error_code ec, + const boost::container::flat_map< + std::string, boost::container::flat_map< + std::string, std::vector>> + &subtree) { + if (ec) + { + BMCWEB_LOG_DEBUG << "DBUS response error"; + messages::internalError(aResp->res); + return; + } + nlohmann::json &members = aResp->res.jsonValue["Members"]; + members = nlohmann::json::array(); + + for (const auto &object : subtree) + { + auto iter = object.first.rfind("/"); + if ((iter != std::string::npos) && (iter < object.first.size())) + { + members.push_back( + {{"@odata.id", "/redfish/v1/Systems/system/" + + subclass + "/" + + object.first.substr(iter + 1)}}); + } + } + aResp->res.jsonValue["Members@odata.count"] = members.size(); + }, + "xyz.openbmc_project.ObjectMapper", + "/xyz/openbmc_project/object_mapper", + "xyz.openbmc_project.ObjectMapper", "GetSubTree", + "/xyz/openbmc_project/inventory", 0, collectionName); +} + +void getCpuDataByInterface(std::shared_ptr aResp, + const InterfacesProperties &cpuInterfacesProperties) +{ + BMCWEB_LOG_DEBUG << "Get CPU resources by interface."; + + const bool *present = nullptr; + const bool *functional = nullptr; + for (const auto &interface : cpuInterfacesProperties) + { + for (const auto &property : interface.second) + { + if (property.first == "ProcessorCoreCount") + { + const uint16_t *coresCount = + std::get_if(&property.second); + if (coresCount == nullptr) + { + // Important property not in desired type + messages::internalError(aResp->res); + return; + } + if (*coresCount == 0) + { + // Slot is not populated, set status end return + aResp->res.jsonValue["Status"]["State"] = "Absent"; + aResp->res.jsonValue["Status"]["Health"] = "OK"; + // HTTP Code will be set up automatically, just return + return; + } + + aResp->res.jsonValue["TotalCores"] = *coresCount; + } + else if (property.first == "ProcessorType") + { + aResp->res.jsonValue["Name"] = property.second; + } + else if (property.first == "Manufacturer") + { + const std::string *value = + std::get_if(&property.second); + if (value != nullptr) + { + aResp->res.jsonValue["Manufacturer"] = property.second; + // Otherwise would be unexpected. + if (value->find("Intel") != std::string::npos) + { + aResp->res.jsonValue["ProcessorArchitecture"] = "x86"; + aResp->res.jsonValue["InstructionSet"] = "x86-64"; + } + else if (value->find("IBM") != std::string::npos) + { + aResp->res.jsonValue["ProcessorArchitecture"] = "Power"; + aResp->res.jsonValue["InstructionSet"] = "PowerISA"; + } + } + } + else if (property.first == "ProcessorMaxSpeed") + { + aResp->res.jsonValue["MaxSpeedMHz"] = property.second; + } + else if (property.first == "ProcessorThreadCount") + { + aResp->res.jsonValue["TotalThreads"] = property.second; + } + else if (property.first == "Model") + { + const std::string *value = + std::get_if(&property.second); + if (value != nullptr) + { + aResp->res.jsonValue["Model"] = *value; + } + } + else if (property.first == "Present") + { + present = std::get_if(&property.second); + } + else if (property.first == "Functional") + { + functional = std::get_if(&property.second); + } + } + } + + if ((present == nullptr) || (functional == nullptr)) + { + // Important property not in desired type + messages::internalError(aResp->res); + return; + } + + if (*present == false) + { + aResp->res.jsonValue["Status"]["State"] = "Absent"; + aResp->res.jsonValue["Status"]["Health"] = "OK"; + } + else + { + aResp->res.jsonValue["Status"]["State"] = "Enabled"; + if (*functional == true) + { + aResp->res.jsonValue["Status"]["Health"] = "OK"; + } + else + { + aResp->res.jsonValue["Status"]["Health"] = "Critical"; + } + } + + return; +} + +void getCpuDataByService(std::shared_ptr aResp, + const std::string &cpuId, const std::string &service, + const std::string &objPath) +{ + BMCWEB_LOG_DEBUG << "Get available system cpu resources by service."; + + crow::connections::systemBus->async_method_call( + [cpuId, service, objPath, aResp{std::move(aResp)}]( + const boost::system::error_code ec, + const dbus::utility::ManagedObjectType &dbusData) { + if (ec) + { + BMCWEB_LOG_DEBUG << "DBUS response error"; + messages::internalError(aResp->res); + return; + } + aResp->res.jsonValue["Id"] = cpuId; + aResp->res.jsonValue["Name"] = "Processor"; + aResp->res.jsonValue["ProcessorType"] = "CPU"; + + std::string corePath = objPath + "/core"; + size_t totalCores = 0; + for (const auto &object : dbusData) + { + if (object.first.str == objPath) + { + getCpuDataByInterface(aResp, object.second); + } + else if (boost::starts_with(object.first.str, corePath)) + { + for (const auto &interface : object.second) + { + if (interface.first == + "xyz.openbmc_project.Inventory.Item") + { + for (const auto &property : interface.second) + { + if (property.first == "Present") + { + const bool *present = + std::get_if(&property.second); + if (present != nullptr) + { + if (*present == true) + { + totalCores++; + } + } + } + } + } + } + } + } + // In getCpuDataByInterface(), state and health are set + // based on the present and functional status. If core + // count is zero, then it has a higher precedence. + if (totalCores == 0) + { + // Slot is not populated, set status end return + aResp->res.jsonValue["Status"]["State"] = "Absent"; + aResp->res.jsonValue["Status"]["Health"] = "OK"; + } + aResp->res.jsonValue["TotalCores"] = totalCores; + return; + }, + service, "/xyz/openbmc_project/inventory", + "org.freedesktop.DBus.ObjectManager", "GetManagedObjects"); +} + +void getAcceleratorDataByService(std::shared_ptr aResp, + const std::string &acclrtrId, + const std::string &service, + const std::string &objPath) +{ + BMCWEB_LOG_DEBUG + << "Get available system Accelerator resources by service."; + crow::connections::systemBus->async_method_call( + [acclrtrId, aResp{std::move(aResp)}]( + const boost::system::error_code ec, + const boost::container::flat_map< + std::string, std::variant> &properties) { + if (ec) + { + BMCWEB_LOG_DEBUG << "DBUS response error"; + messages::internalError(aResp->res); + return; + } + aResp->res.jsonValue["Id"] = acclrtrId; + aResp->res.jsonValue["Name"] = "Processor"; + const bool *accPresent = nullptr; + const bool *accFunctional = nullptr; + std::string state = ""; + + for (const auto &property : properties) + { + if (property.first == "Functional") + { + accFunctional = std::get_if(&property.second); + } + else if (property.first == "Present") + { + accPresent = std::get_if(&property.second); + } + } + + if (!accPresent || !accFunctional) + { + BMCWEB_LOG_DEBUG << "Required properties missing in DBUS " + "response"; + messages::internalError(aResp->res); + return; + } + + if (*accPresent && *accFunctional) + { + state = "Enabled"; + } + else if (*accPresent) + { + state = "UnavailableOffline"; + } + else + { + state = "Absent"; + } + aResp->res.jsonValue["Status"]["State"] = state; + aResp->res.jsonValue["Status"]["Health"] = "OK"; + aResp->res.jsonValue["ProcessorType"] = "Accelerator"; + }, + service, objPath, "org.freedesktop.DBus.Properties", "GetAll", ""); +} + +void getCpuData(std::shared_ptr aResp, const std::string &cpuId, + const std::vector inventoryItems) +{ + BMCWEB_LOG_DEBUG << "Get available system cpu resources."; + + crow::connections::systemBus->async_method_call( + [cpuId, aResp{std::move(aResp)}]( + const boost::system::error_code ec, + const boost::container::flat_map< + std::string, boost::container::flat_map< + std::string, std::vector>> + &subtree) { + if (ec) + { + BMCWEB_LOG_DEBUG << "DBUS response error"; + messages::internalError(aResp->res); + return; + } + for (const auto &object : subtree) + { + if (boost::ends_with(object.first, cpuId)) + { + for (const auto &service : object.second) + { + for (const auto &inventory : service.second) + if (inventory == + "xyz.openbmc_project.Inventory.Item.Cpu") + { + getCpuDataByService(aResp, cpuId, service.first, + object.first); + } + else if (inventory == "xyz.openbmc_project." + "Inventory.Item.Accelerator") + { + getAcceleratorDataByService( + aResp, cpuId, service.first, object.first); + } + return; + } + } + } + // Object not found + messages::resourceNotFound(aResp->res, "Processor", cpuId); + return; + }, + "xyz.openbmc_project.ObjectMapper", + "/xyz/openbmc_project/object_mapper", + "xyz.openbmc_project.ObjectMapper", "GetSubTree", + "/xyz/openbmc_project/inventory", 0, inventoryItems); +} + +void getDimmDataByService(std::shared_ptr aResp, + const std::string &dimmId, const std::string &service, + const std::string &objPath) +{ + BMCWEB_LOG_DEBUG << "Get available system components."; + crow::connections::systemBus->async_method_call( + [dimmId, aResp{std::move(aResp)}]( + const boost::system::error_code ec, + const boost::container::flat_map< + std::string, std::variant> + &properties) { + if (ec) + { + BMCWEB_LOG_DEBUG << "DBUS response error"; + messages::internalError(aResp->res); + + return; + } + aResp->res.jsonValue["Id"] = dimmId; + aResp->res.jsonValue["Name"] = "DIMM Slot"; + + const auto memorySizeProperty = properties.find("MemorySizeInKB"); + if (memorySizeProperty != properties.end()) + { + const uint32_t *memorySize = + std::get_if(&memorySizeProperty->second); + if (memorySize == nullptr) + { + // Important property not in desired type + messages::internalError(aResp->res); + + return; + } + if (*memorySize == 0) + { + // Slot is not populated, set status end return + aResp->res.jsonValue["Status"]["State"] = "Absent"; + aResp->res.jsonValue["Status"]["Health"] = "OK"; + // HTTP Code will be set up automatically, just return + return; + } + aResp->res.jsonValue["CapacityMiB"] = (*memorySize >> 10); + } + aResp->res.jsonValue["Status"]["State"] = "Enabled"; + aResp->res.jsonValue["Status"]["Health"] = "OK"; + + for (const auto &property : properties) + { + if (property.first == "MemoryDataWidth") + { + aResp->res.jsonValue["DataWidthBits"] = property.second; + } + else if (property.first == "PartNumber") + { + aResp->res.jsonValue["PartNumber"] = property.second; + } + else if (property.first == "SerialNumber") + { + aResp->res.jsonValue["SerialNumber"] = property.second; + } + else if (property.first == "Manufacturer") + { + aResp->res.jsonValue["Manufacturer"] = property.second; + } + else if (property.first == "MemoryType") + { + const auto *value = + std::get_if(&property.second); + if (value != nullptr) + { + aResp->res.jsonValue["MemoryDeviceType"] = *value; + if (boost::starts_with(*value, "DDR")) + { + aResp->res.jsonValue["MemoryType"] = "DRAM"; + } + } + } + } + }, + service, objPath, "org.freedesktop.DBus.Properties", "GetAll", ""); +} + +void getDimmData(std::shared_ptr aResp, const std::string &dimmId) +{ + BMCWEB_LOG_DEBUG << "Get available system dimm resources."; + crow::connections::systemBus->async_method_call( + [dimmId, aResp{std::move(aResp)}]( + const boost::system::error_code ec, + const boost::container::flat_map< + std::string, boost::container::flat_map< + std::string, std::vector>> + &subtree) { + if (ec) + { + BMCWEB_LOG_DEBUG << "DBUS response error"; + messages::internalError(aResp->res); + + return; + } + for (const auto &object : subtree) + { + if (boost::ends_with(object.first, dimmId)) + { + for (const auto &service : object.second) + { + getDimmDataByService(aResp, dimmId, service.first, + object.first); + return; + } + } + } + // Object not found + messages::resourceNotFound(aResp->res, "Memory", dimmId); + return; + }, + "xyz.openbmc_project.ObjectMapper", + "/xyz/openbmc_project/object_mapper", + "xyz.openbmc_project.ObjectMapper", "GetSubTree", + "/xyz/openbmc_project/inventory", 0, + std::array{"xyz.openbmc_project.Inventory.Item.Dimm"}); +} + +class ProcessorCollection : public Node +{ + public: + /* + * Default Constructor + */ + ProcessorCollection(CrowApp &app) : +#ifndef BMCWEB_ENABLE_REDFISH_RMC + Node(app, "/redfish/v1/Systems/system/Processors/") +#else + Node(app, "/redfish/v1/Systems//Processors", std::string()) +#endif + { + entityPrivileges = { + {boost::beast::http::verb::get, {{"Login"}}}, + {boost::beast::http::verb::head, {{"Login"}}}, + {boost::beast::http::verb::patch, {{"ConfigureComponents"}}}, + {boost::beast::http::verb::put, {{"ConfigureComponents"}}}, + {boost::beast::http::verb::delete_, {{"ConfigureComponents"}}}, + {boost::beast::http::verb::post, {{"ConfigureComponents"}}}}; + } + + private: + /** + * Functions triggers appropriate requests on DBus + */ +#ifndef BMCWEB_ENABLE_REDFISH_RMC + void doGet(crow::Response &res, const crow::Request &req, + const std::vector ¶ms) override + { + res.jsonValue["@odata.type"] = + "#ProcessorCollection.ProcessorCollection"; + res.jsonValue["Name"] = "Processor Collection"; + res.jsonValue["@odata.context"] = + "/redfish/v1/$metadata#ProcessorCollection.ProcessorCollection"; + + res.jsonValue["@odata.id"] = "/redfish/v1/Systems/system/Processors/"; + auto asyncResp = std::make_shared(res); + + getResourceList(asyncResp, "Processors", + {"xyz.openbmc_project.Inventory.Item.Cpu", + "xyz.openbmc_project.Inventory.Item.Accelerator"}); + } +#else + void getProcessorList(const std::string &chassis_name, + std::shared_ptr asyncResp) + { + nlohmann::json &chassisArray = asyncResp->res.jsonValue["Members"]; + chassisArray = nlohmann::json::array(); + chassisArray.push_back( + {{"@odata.id", + "/redfish/v1/Systems/" + chassis_name + "/Processors/cpu0"}}); + chassisArray.push_back( + {{"@odata.id", + "/redfish/v1/Systems/" + chassis_name + "/Processors/cpu1"}}); + asyncResp->res.jsonValue["Members@odata.count"] = chassisArray.size(); + } + + void doGet(crow::Response &res, const crow::Request &req, + const std::vector ¶ms) override + { + if (params.size() != 1) + { + messages::internalError(res); + res.end(); + return; + } + const std::string &chassisId = params[0]; + + res.jsonValue["@odata.type"] = + "#ProcessorCollection.ProcessorCollection"; + res.jsonValue["@odata.id"] = + "/redfish/v1/Systems/" + chassisId + "/Processors"; + res.jsonValue["@odata.context"] = + "/redfish/v1/$metadata#ProcessorCollection.ProcessorCollection"; + res.jsonValue["Name"] = "Processors Collection"; + auto asyncResp = std::make_shared(res); + getProcessorList(chassisId, asyncResp); + } +#endif // !BMCWEB_ENABLE_REDFISH_RMC +}; + +class Processor : public Node +{ + public: + /* + * Default Constructor + */ + Processor(CrowApp &app) : +#ifndef BMCWEB_ENABLE_REDFISH_RMC + Node(app, "/redfish/v1/Systems/system/Processors//", std::string()) +#else + Node(app, "/redfish/v1/Systems//Processors/", std::string(), std::string()) +#endif + { + entityPrivileges = { + {boost::beast::http::verb::get, {{"Login"}}}, + {boost::beast::http::verb::head, {{"Login"}}}, + {boost::beast::http::verb::patch, {{"ConfigureComponents"}}}, + {boost::beast::http::verb::put, {{"ConfigureComponents"}}}, + {boost::beast::http::verb::delete_, {{"ConfigureComponents"}}}, + {boost::beast::http::verb::post, {{"ConfigureComponents"}}}}; + } + + private: + /** + * Functions triggers appropriate requests on DBus + */ +#ifndef BMCWEB_ENABLE_REDFISH_RMC + void doGet(crow::Response &res, const crow::Request &req, + const std::vector ¶ms) override + { + // Check if there is required param, truly entering this shall be + // impossible + if (params.size() != 1) + { + messages::internalError(res); + + res.end(); + return; + } + const std::string &processorId = params[0]; + res.jsonValue["@odata.type"] = "#Processor.v1_3_1.Processor"; + res.jsonValue["@odata.context"] = + "/redfish/v1/$metadata#Processor.Processor"; + res.jsonValue["@odata.id"] = + "/redfish/v1/Systems/system/Processors/" + processorId; + + auto asyncResp = std::make_shared(res); + + getCpuData(asyncResp, processorId, + {"xyz.openbmc_project.Inventory.Item.Cpu", + "xyz.openbmc_project.Inventory.Item.Accelerator"}); + } +#else + void doGet(crow::Response &res, const crow::Request &req, + const std::vector ¶ms) override + { + // Check if there is required param, truly entering this shall be + // impossible + if (params.size() != 2) + { + messages::internalError(res); + res.end(); + return; + } + const std::string &systemId = params[0]; + const std::string &processorId = params[1]; + + res.jsonValue["@odata.id"] = + "/redfish/v1/Systems/" + systemId + "/Processors/" + processorId; + res.jsonValue["@odata.type"] = "#Processor.v1_3_2.Processor"; + res.jsonValue["@odata.context"] = + "/redfish/v1/$metadata#Processor.Processor"; + res.jsonValue["Manufacturer"] = "Intel"; + res.jsonValue["Model"] = "Intel(R) Xeon(R) Platinum 8176 CPU @ 2.10GHz"; + res.jsonValue["MaxSpeedMHz"] = 2100; + res.jsonValue["TDPWatts"] = 165; + res.jsonValue["TotalCores"] = 28; + + nlohmann::json &status = res.jsonValue["Status"]; + status["State"] = "Enabled"; + status["Health"] = "OK"; + status["HealthRollup"] = {}; + res.end(); + } +#endif // !BMCWEB_ENABLE_REDFISH_RMC +}; + +class MemoryCollection : public Node +{ + public: + /* + * Default Constructor + */ + MemoryCollection(CrowApp &app) : +#ifndef BMCWEB_ENABLE_REDFISH_RMC + Node(app, "/redfish/v1/Systems/system/Memory/") +#else + Node(app, "/redfish/v1/Systems//Memory", std::string()) +#endif + { + entityPrivileges = { + {boost::beast::http::verb::get, {{"Login"}}}, + {boost::beast::http::verb::head, {{"Login"}}}, + {boost::beast::http::verb::patch, {{"ConfigureComponents"}}}, + {boost::beast::http::verb::put, {{"ConfigureComponents"}}}, + {boost::beast::http::verb::delete_, {{"ConfigureComponents"}}}, + {boost::beast::http::verb::post, {{"ConfigureComponents"}}}}; + } + + private: +#ifndef BMCWEB_ENABLE_REDFISH_RMC + /** + * Functions triggers appropriate requests on DBus + */ + void doGet(crow::Response &res, const crow::Request &req, + const std::vector ¶ms) override + { + res.jsonValue["@odata.type"] = "#MemoryCollection.MemoryCollection"; + res.jsonValue["Name"] = "Memory Module Collection"; + res.jsonValue["@odata.context"] = + "/redfish/v1/$metadata#MemoryCollection.MemoryCollection"; + res.jsonValue["@odata.id"] = "/redfish/v1/Systems/system/Memory/"; + auto asyncResp = std::make_shared(res); + + getResourceList(asyncResp, "Memory", + {"xyz.openbmc_project.Inventory.Item.Dimm"}); + } +#else + void getMemoryList(const std::string &chassis_name, + std::shared_ptr asyncResp) + { + nlohmann::json &chassisArray = asyncResp->res.jsonValue["Members"]; + chassisArray = nlohmann::json::array(); + chassisArray.push_back( + {{"@odata.id", + "/redfish/v1/Systems/" + chassis_name + "/Memory/mem0"}}); + chassisArray.push_back( + {{"@odata.id", + "/redfish/v1/Systems/" + chassis_name + "/Memory/mem1"}}); + chassisArray.push_back( + {{"@odata.id", + "/redfish/v1/Systems/" + chassis_name + "/Memory/mem2"}}); + chassisArray.push_back( + {{"@odata.id", + "/redfish/v1/Systems/" + chassis_name + "/Memory/mem3"}}); + asyncResp->res.jsonValue["Members@odata.count"] = chassisArray.size(); + } + + void doGet(crow::Response &res, const crow::Request &req, + const std::vector ¶ms) override + { + if (params.size() != 1) + { + messages::internalError(res); + res.end(); + return; + } + const std::string &chassisId = params[0]; + + res.jsonValue["@odata.type"] = "#MemoryCollection.MemoryCollection"; + res.jsonValue["@odata.id"] = + "/redfish/v1/Systems/" + chassisId + "/Memory"; + res.jsonValue["@odata.context"] = + "/redfish/v1/$metadata#MemoryCollection.MemoryCollection"; + res.jsonValue["Name"] = "Memory Collection"; + auto asyncResp = std::make_shared(res); + getMemoryList(chassisId, asyncResp); + } +#endif // !BMCWEB_ENABLE_REDFISH_RMC +}; + +class Memory : public Node +{ + public: + /* + * Default Constructor + */ + Memory(CrowApp &app) : +#ifndef BMCWEB_ENABLE_REDFISH_RMC + Node(app, "/redfish/v1/Systems/system/Memory//", std::string()) +#else + Node(app, "/redfish/v1/Systems//Memory/", std::string(), std::string()) +#endif + { + entityPrivileges = { + {boost::beast::http::verb::get, {{"Login"}}}, + {boost::beast::http::verb::head, {{"Login"}}}, + {boost::beast::http::verb::patch, {{"ConfigureComponents"}}}, + {boost::beast::http::verb::put, {{"ConfigureComponents"}}}, + {boost::beast::http::verb::delete_, {{"ConfigureComponents"}}}, + {boost::beast::http::verb::post, {{"ConfigureComponents"}}}}; + } + + private: + /** + * Functions triggers appropriate requests on DBus + */ +#ifndef BMCWEB_ENABLE_REDFISH_RMC + void doGet(crow::Response &res, const crow::Request &req, + const std::vector ¶ms) override + { + // Check if there is required param, truly entering this shall be + // impossible + if (params.size() != 1) + { + messages::internalError(res); + res.end(); + return; + } + const std::string &dimmId = params[0]; + + res.jsonValue["@odata.type"] = "#Memory.v1_6_0.Memory"; + res.jsonValue["@odata.context"] = "/redfish/v1/$metadata#Memory.Memory"; + res.jsonValue["@odata.id"] = + "/redfish/v1/Systems/system/Memory/" + dimmId; + auto asyncResp = std::make_shared(res); + + getDimmData(asyncResp, dimmId); + } +#else + void doGet(crow::Response &res, const crow::Request &req, + const std::vector ¶ms) override + { + // Check if there is required param, truly entering this shall be + // impossible + if (params.size() != 2) + { + messages::internalError(res); + res.end(); + return; + } + // Check if there is required param, truly entering this shall be + + const std::string &systemId = params[0]; + const std::string &memId = params[1]; + + res.jsonValue["@odata.id"] = + "/redfish/v1/Systems/" + systemId + "/Memory/" + memId; + res.jsonValue["@odata.type"] = "#Memory.v1_0_0.Memory"; + res.jsonValue["@odata.context"] = "/redfish/v1/$metadata#Memory.Memory"; + res.jsonValue["CapacityMiB"] = 16 * 1024; + res.jsonValue["Meanufacturer"] = "Samsung"; + res.jsonValue["Manufacturer"] = "Samsung"; + nlohmann::json &allowedSpeedsArray = res.jsonValue["AllowedSpeedsMHz"]; + allowedSpeedsArray = nlohmann::json::array(); + allowedSpeedsArray.push_back({1024,20}); + if (memId == "mem0") + { + res.jsonValue["SerialNumber"] = "390FB680"; + res.jsonValue["ModuleManufacturerID"] = "390FB680ABF0"; + } + else if (memId == "mem1") + { + res.jsonValue["SerialNumber"] = "393BE2A3"; + res.jsonValue["ModuleManufacturerID"] = "390FB680ABF1"; + } + + else if (memId == "mem2") + { + res.jsonValue["SerialNumber"] = "390FCBBD"; + res.jsonValue["ModuleManufacturerID"] = "390FB680ABF2"; + } + else if (memId == "mem3") + { + res.jsonValue["SerialNumber"] = "39359D7F"; + res.jsonValue["ModuleManufacturerID"] = "390FB680ABF3"; + } + else + { + res.jsonValue["SerialNumber"] = "39359D93"; + res.jsonValue["ModuleManufacturerID"] = "390FB680ABF4"; + } + + + nlohmann::json &status = res.jsonValue["Status"]; + status["State"] = "Enabled"; + status["Health"] = "OK"; + status["HealthRollup"] = {}; + + //res.jsonValue["AllowedSpeedsMHz"] = 2133; + res.end(); + } +#endif // !BMCWEB_ENABLE_REDFISH_RMC +}; + +} // namespace redfish diff --git a/Contrib-Inspur/bmcweb/redfish-core/lib/rmc/rmc_ethernet.hpp b/Contrib-Inspur/bmcweb/redfish-core/lib/rmc/rmc_ethernet.hpp new file mode 100644 index 00000000..5bf99e63 --- /dev/null +++ b/Contrib-Inspur/bmcweb/redfish-core/lib/rmc/rmc_ethernet.hpp @@ -0,0 +1,2396 @@ +/* +// Copyright (c) 2018 Intel Corporation +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +*/ +#pragma once + +#include +#include +#include +#include +#include +#include +#include +#include + +namespace redfish +{ + +/** + * DBus types primitives for several generic DBus interfaces + * TODO(Pawel) consider move this to separate file into boost::dbus + */ +using PropertiesMapType = boost::container::flat_map< + std::string, std::variant>; + +using GetManagedObjects = std::vector>>>>>>; + +enum class LinkType +{ + Local, + Global +}; + +/** + * Structure for keeping IPv4 data required by Redfish + */ +struct IPv4AddressData +{ + std::string id; + std::string address; + std::string domain; + std::string gateway; + std::string netmask; + std::string origin; + LinkType linktype; + + bool operator<(const IPv4AddressData &obj) const + { + return id < obj.id; + } +}; + +/** + * Structure for keeping IPv6 data required by Redfish + */ +struct IPv6AddressData +{ + std::string id; + std::string address; + std::string origin; + uint8_t prefixLength; + + bool operator<(const IPv6AddressData &obj) const + { + return id < obj.id; + } +}; +/** + * Structure for keeping basic single Ethernet Interface information + * available from DBus + */ +struct EthernetInterfaceData +{ + uint32_t speed; + bool auto_neg; + bool DNSEnabled; + bool NTPEnabled; + bool HostNameEnabled; + bool SendHostNameEnabled; + std::string DHCPEnabled; + std::string operatingMode; + std::string hostname; + std::string default_gateway; + std::string ipv6_default_gateway; + std::string mac_address; + std::vector vlan_id; + std::vector nameservers; + std::vector domainnames; +}; + +struct DHCPParameters +{ + std::optional dhcpv4Enabled; + std::optional useDNSServers; + std::optional useNTPServers; + std::optional useUseDomainName; + std::optional dhcpv6OperatingMode; +}; + +// Helper function that changes bits netmask notation (i.e. /24) +// into full dot notation +inline std::string getNetmask(unsigned int bits) +{ + uint32_t value = 0xffffffff << (32 - bits); + std::string netmask = std::to_string((value >> 24) & 0xff) + "." + + std::to_string((value >> 16) & 0xff) + "." + + std::to_string((value >> 8) & 0xff) + "." + + std::to_string(value & 0xff); + return netmask; +} + +inline bool translateDHCPEnabledToBool(const std::string &inputDHCP, + bool isIPv4) +{ + if (isIPv4) + { + return ( + (inputDHCP == + "xyz.openbmc_project.Network.EthernetInterface.DHCPConf.v4") || + (inputDHCP == + "xyz.openbmc_project.Network.EthernetInterface.DHCPConf.both")); + } + return ((inputDHCP == + "xyz.openbmc_project.Network.EthernetInterface.DHCPConf.v6") || + (inputDHCP == + "xyz.openbmc_project.Network.EthernetInterface.DHCPConf.both")); +} + +inline std::string GetDHCPEnabledEnumeration(bool isIPv4, bool isIPv6) +{ + if (isIPv4 && isIPv6) + { + return "xyz.openbmc_project.Network.EthernetInterface.DHCPConf.both"; + } + else if (isIPv4) + { + return "xyz.openbmc_project.Network.EthernetInterface.DHCPConf.v4"; + } + else if (isIPv6) + { + return "xyz.openbmc_project.Network.EthernetInterface.DHCPConf.v6"; + } + return "xyz.openbmc_project.Network.EthernetInterface.DHCPConf.none"; +} + +inline std::string + translateAddressOriginDbusToRedfish(const std::string &inputOrigin, + bool isIPv4) +{ + if (inputOrigin == "xyz.openbmc_project.Network.IP.AddressOrigin.Static") + { + return "Static"; + } + if (inputOrigin == "xyz.openbmc_project.Network.IP.AddressOrigin.LinkLocal") + { + if (isIPv4) + { + return "IPv4LinkLocal"; + } + else + { + return "LinkLocal"; + } + } + if (inputOrigin == "xyz.openbmc_project.Network.IP.AddressOrigin.DHCP") + { + if (isIPv4) + { + return "DHCP"; + } + else + { + return "DHCPv6"; + } + } + if (inputOrigin == "xyz.openbmc_project.Network.IP.AddressOrigin.SLAAC") + { + return "SLAAC"; + } + return ""; +} + +inline bool extractEthernetInterfaceData(const std::string ðiface_id, + const GetManagedObjects &dbus_data, + EthernetInterfaceData ðData) +{ + bool idFound = false; + for (const auto &objpath : dbus_data) + { + for (const auto &ifacePair : objpath.second) + { + if (objpath.first == "/xyz/openbmc_project/network/" + ethiface_id) + { + idFound = true; + if (ifacePair.first == "xyz.openbmc_project.Network.MACAddress") + { + for (const auto &propertyPair : ifacePair.second) + { + if (propertyPair.first == "MACAddress") + { + const std::string *mac = + std::get_if(&propertyPair.second); + if (mac != nullptr) + { + ethData.mac_address = *mac; + } + } + } + } + else if (ifacePair.first == "xyz.openbmc_project.Network.VLAN") + { + for (const auto &propertyPair : ifacePair.second) + { + if (propertyPair.first == "Id") + { + const uint32_t *id = + std::get_if(&propertyPair.second); + if (id != nullptr) + { + ethData.vlan_id.push_back(*id); + } + } + } + } + else if (ifacePair.first == + "xyz.openbmc_project.Network.EthernetInterface") + { + for (const auto &propertyPair : ifacePair.second) + { + if (propertyPair.first == "AutoNeg") + { + const bool *auto_neg = + std::get_if(&propertyPair.second); + if (auto_neg != nullptr) + { + ethData.auto_neg = *auto_neg; + } + } + else if (propertyPair.first == "Speed") + { + const uint32_t *speed = + std::get_if(&propertyPair.second); + if (speed != nullptr) + { + ethData.speed = *speed; + } + } + else if (propertyPair.first == "Nameservers") + { + const std::vector *nameservers = + sdbusplus::message::variant_ns::get_if< + std::vector>( + &propertyPair.second); + if (nameservers != nullptr) + { + ethData.nameservers = std::move(*nameservers); + } + } + else if (propertyPair.first == "DHCPEnabled") + { + const std::string *DHCPEnabled = + std::get_if(&propertyPair.second); + if (DHCPEnabled != nullptr) + { + ethData.DHCPEnabled = *DHCPEnabled; + } + } + else if (propertyPair.first == "DomainName") + { + const std::vector *domainNames = + sdbusplus::message::variant_ns::get_if< + std::vector>( + &propertyPair.second); + if (domainNames != nullptr) + { + ethData.domainnames = std::move(*domainNames); + } + } + } + } + } + + if (objpath.first == "/xyz/openbmc_project/network/config/dhcp") + { + if (ifacePair.first == + "xyz.openbmc_project.Network.DHCPConfiguration") + { + for (const auto &propertyPair : ifacePair.second) + { + if (propertyPair.first == "DNSEnabled") + { + const bool *DNSEnabled = + std::get_if(&propertyPair.second); + if (DNSEnabled != nullptr) + { + ethData.DNSEnabled = *DNSEnabled; + } + } + else if (propertyPair.first == "NTPEnabled") + { + const bool *NTPEnabled = + std::get_if(&propertyPair.second); + if (NTPEnabled != nullptr) + { + ethData.NTPEnabled = *NTPEnabled; + } + } + else if (propertyPair.first == "HostNameEnabled") + { + const bool *HostNameEnabled = + std::get_if(&propertyPair.second); + if (HostNameEnabled != nullptr) + { + ethData.HostNameEnabled = *HostNameEnabled; + } + } + else if (propertyPair.first == "SendHostNameEnabled") + { + const bool *SendHostNameEnabled = + std::get_if(&propertyPair.second); + if (SendHostNameEnabled != nullptr) + { + ethData.SendHostNameEnabled = + *SendHostNameEnabled; + } + } + } + } + } + // System configuration shows up in the global namespace, so no need + // to check eth number + if (ifacePair.first == + "xyz.openbmc_project.Network.SystemConfiguration") + { + for (const auto &propertyPair : ifacePair.second) + { + if (propertyPair.first == "HostName") + { + const std::string *hostname = + sdbusplus::message::variant_ns::get_if( + &propertyPair.second); + if (hostname != nullptr) + { + ethData.hostname = *hostname; + } + } + else if (propertyPair.first == "DefaultGateway") + { + const std::string *defaultGateway = + sdbusplus::message::variant_ns::get_if( + &propertyPair.second); + if (defaultGateway != nullptr) + { + ethData.default_gateway = *defaultGateway; + } + } + else if (propertyPair.first == "DefaultGateway6") + { + const std::string *defaultGateway6 = + sdbusplus::message::variant_ns::get_if( + &propertyPair.second); + if (defaultGateway6 != nullptr) + { + ethData.ipv6_default_gateway = *defaultGateway6; + } + } + } + } + } + } + return idFound; +} + +// Helper function that extracts data for single ethernet ipv6 address +inline void + extractIPV6Data(const std::string ðiface_id, + const GetManagedObjects &dbus_data, + boost::container::flat_set &ipv6_config) +{ + const std::string ipv6PathStart = + "/xyz/openbmc_project/network/" + ethiface_id + "/ipv6/"; + + // Since there might be several IPv6 configurations aligned with + // single ethernet interface, loop over all of them + for (const auto &objpath : dbus_data) + { + // Check if proper pattern for object path appears + if (boost::starts_with(objpath.first.str, ipv6PathStart)) + { + for (auto &interface : objpath.second) + { + if (interface.first == "xyz.openbmc_project.Network.IP") + { + // Instance IPv6AddressData structure, and set as + // appropriate + std::pair< + boost::container::flat_set::iterator, + bool> + it = ipv6_config.insert(IPv6AddressData{}); + IPv6AddressData &ipv6_address = *it.first; + ipv6_address.id = + objpath.first.str.substr(ipv6PathStart.size()); + for (auto &property : interface.second) + { + if (property.first == "Address") + { + const std::string *address = + std::get_if(&property.second); + if (address != nullptr) + { + ipv6_address.address = *address; + } + } + else if (property.first == "Origin") + { + const std::string *origin = + std::get_if(&property.second); + if (origin != nullptr) + { + ipv6_address.origin = + translateAddressOriginDbusToRedfish(*origin, + false); + } + } + else if (property.first == "PrefixLength") + { + const uint8_t *prefix = + std::get_if(&property.second); + if (prefix != nullptr) + { + ipv6_address.prefixLength = *prefix; + } + } + else + { + BMCWEB_LOG_ERROR + << "Got extra property: " << property.first + << " on the " << objpath.first.str << " object"; + } + } + } + } + } + } +} + +// Helper function that extracts data for single ethernet ipv4 address +inline void + extractIPData(const std::string ðiface_id, + const GetManagedObjects &dbus_data, + boost::container::flat_set &ipv4_config) +{ + const std::string ipv4PathStart = + "/xyz/openbmc_project/network/" + ethiface_id + "/ipv4/"; + + // Since there might be several IPv4 configurations aligned with + // single ethernet interface, loop over all of them + for (const auto &objpath : dbus_data) + { + // Check if proper pattern for object path appears + if (boost::starts_with(objpath.first.str, ipv4PathStart)) + { + for (auto &interface : objpath.second) + { + if (interface.first == "xyz.openbmc_project.Network.IP") + { + // Instance IPv4AddressData structure, and set as + // appropriate + std::pair< + boost::container::flat_set::iterator, + bool> + it = ipv4_config.insert(IPv4AddressData{}); + IPv4AddressData &ipv4_address = *it.first; + ipv4_address.id = + objpath.first.str.substr(ipv4PathStart.size()); + for (auto &property : interface.second) + { + if (property.first == "Address") + { + const std::string *address = + std::get_if(&property.second); + if (address != nullptr) + { + ipv4_address.address = *address; + } + } + else if (property.first == "Gateway") + { + const std::string *gateway = + std::get_if(&property.second); + if (gateway != nullptr) + { + ipv4_address.gateway = *gateway; + } + } + else if (property.first == "Origin") + { + const std::string *origin = + std::get_if(&property.second); + if (origin != nullptr) + { + ipv4_address.origin = + translateAddressOriginDbusToRedfish(*origin, + true); + } + } + else if (property.first == "PrefixLength") + { + const uint8_t *mask = + std::get_if(&property.second); + if (mask != nullptr) + { + // convert it to the string + ipv4_address.netmask = getNetmask(*mask); + } + } + else + { + BMCWEB_LOG_ERROR + << "Got extra property: " << property.first + << " on the " << objpath.first.str << " object"; + } + } + // Check if given address is local, or global + ipv4_address.linktype = + boost::starts_with(ipv4_address.address, "169.254.") + ? LinkType::Local + : LinkType::Global; + } + } + } + } +} + +/** + * @brief Sets given Id on the given VLAN interface through D-Bus + * + * @param[in] ifaceId Id of VLAN interface that should be modified + * @param[in] inputVlanId New ID of the VLAN + * @param[in] callback Function that will be called after the operation + * + * @return None. + */ +template +void changeVlanId(const std::string &ifaceId, const uint32_t &inputVlanId, + CallbackFunc &&callback) +{ + crow::connections::systemBus->async_method_call( + callback, "xyz.openbmc_project.Network", + std::string("/xyz/openbmc_project/network/") + ifaceId, + "org.freedesktop.DBus.Properties", "Set", + "xyz.openbmc_project.Network.VLAN", "Id", + std::variant(inputVlanId)); +} + +/** + * @brief Helper function that verifies IP address to check if it is in + * proper format. If bits pointer is provided, also calculates active + * bit count for Subnet Mask. + * + * @param[in] ip IP that will be verified + * @param[out] bits Calculated mask in bits notation + * + * @return true in case of success, false otherwise + */ +inline bool ipv4VerifyIpAndGetBitcount(const std::string &ip, + uint8_t *bits = nullptr) +{ + std::vector bytesInMask; + + boost::split(bytesInMask, ip, boost::is_any_of(".")); + + static const constexpr int ipV4AddressSectionsCount = 4; + if (bytesInMask.size() != ipV4AddressSectionsCount) + { + return false; + } + + if (bits != nullptr) + { + *bits = 0; + } + + char *endPtr; + long previousValue = 255; + bool firstZeroInByteHit; + for (const std::string &byte : bytesInMask) + { + if (byte.empty()) + { + return false; + } + + // Use strtol instead of stroi to avoid exceptions + long value = std::strtol(byte.c_str(), &endPtr, 10); + + // endPtr should point to the end of the string, otherwise given string + // is not 100% number + if (*endPtr != '\0') + { + return false; + } + + // Value should be contained in byte + if (value < 0 || value > 255) + { + return false; + } + + if (bits != nullptr) + { + // Mask has to be continuous between bytes + if (previousValue != 255 && value != 0) + { + return false; + } + + // Mask has to be continuous inside bytes + firstZeroInByteHit = false; + + // Count bits + for (int bitIdx = 7; bitIdx >= 0; bitIdx--) + { + if (value & (1 << bitIdx)) + { + if (firstZeroInByteHit) + { + // Continuity not preserved + return false; + } + else + { + (*bits)++; + } + } + else + { + firstZeroInByteHit = true; + } + } + } + + previousValue = value; + } + + return true; +} + +/** + * @brief Deletes given IPv4 interface + * + * @param[in] ifaceId Id of interface whose IP should be deleted + * @param[in] ipHash DBus Hash id of IP that should be deleted + * @param[io] asyncResp Response object that will be returned to client + * + * @return None + */ +inline void deleteIPv4(const std::string &ifaceId, const std::string &ipHash, + const std::shared_ptr asyncResp) +{ + crow::connections::systemBus->async_method_call( + [asyncResp](const boost::system::error_code ec) { + if (ec) + { + messages::internalError(asyncResp->res); + } + }, + "xyz.openbmc_project.Network", + "/xyz/openbmc_project/network/" + ifaceId + "/ipv4/" + ipHash, + "xyz.openbmc_project.Object.Delete", "Delete"); +} + +/** + * @brief Creates a static IPv4 entry + * + * @param[in] ifaceId Id of interface upon which to create the IPv4 entry + * @param[in] prefixLength IPv4 prefix syntax for the subnet mask + * @param[in] gateway IPv4 address of this interfaces gateway + * @param[in] address IPv4 address to assign to this interface + * @param[io] asyncResp Response object that will be returned to client + * + * @return None + */ +inline void createIPv4(const std::string &ifaceId, unsigned int ipIdx, + uint8_t prefixLength, const std::string &gateway, + const std::string &address, + std::shared_ptr asyncResp) +{ + crow::connections::systemBus->async_method_call( + [asyncResp](const boost::system::error_code ec) { + if (ec) + { + messages::internalError(asyncResp->res); + } + }, + "xyz.openbmc_project.Network", + "/xyz/openbmc_project/network/" + ifaceId, + "xyz.openbmc_project.Network.IP.Create", "IP", + "xyz.openbmc_project.Network.IP.Protocol.IPv4", address, prefixLength, + gateway); +} + +/** + * @brief Deletes the IPv4 entry for this interface and creates a replacement + * static IPv4 entry + * + * @param[in] ifaceId Id of interface upon which to create the IPv4 entry + * @param[in] id The unique hash entry identifying the DBus entry + * @param[in] prefixLength IPv4 prefix syntax for the subnet mask + * @param[in] gateway IPv4 address of this interfaces gateway + * @param[in] address IPv4 address to assign to this interface + * @param[io] asyncResp Response object that will be returned to client + * + * @return None + */ +inline void deleteAndCreateIPv4(const std::string &ifaceId, + const std::string &id, uint8_t prefixLength, + const std::string &gateway, + const std::string &address, + std::shared_ptr asyncResp) +{ + crow::connections::systemBus->async_method_call( + [asyncResp, ifaceId, address, prefixLength, + gateway](const boost::system::error_code ec) { + if (ec) + { + messages::internalError(asyncResp->res); + } + crow::connections::systemBus->async_method_call( + [asyncResp](const boost::system::error_code ec) { + if (ec) + { + messages::internalError(asyncResp->res); + } + }, + "xyz.openbmc_project.Network", + "/xyz/openbmc_project/network/" + ifaceId, + "xyz.openbmc_project.Network.IP.Create", "IP", + "xyz.openbmc_project.Network.IP.Protocol.IPv4", address, + prefixLength, gateway); + }, + "xyz.openbmc_project.Network", + +"/xyz/openbmc_project/network/" + ifaceId + "/ipv4/" + id, + "xyz.openbmc_project.Object.Delete", "Delete"); +} + +/** + * @brief Deletes given IPv6 + * + * @param[in] ifaceId Id of interface whose IP should be deleted + * @param[in] ipHash DBus Hash id of IP that should be deleted + * @param[io] asyncResp Response object that will be returned to client + * + * @return None + */ +inline void deleteIPv6(const std::string &ifaceId, const std::string &ipHash, + const std::shared_ptr asyncResp) +{ + crow::connections::systemBus->async_method_call( + [asyncResp](const boost::system::error_code ec) { + if (ec) + { + messages::internalError(asyncResp->res); + } + }, + "xyz.openbmc_project.Network", + "/xyz/openbmc_project/network/" + ifaceId + "/ipv6/" + ipHash, + "xyz.openbmc_project.Object.Delete", "Delete"); +} + +/** + * @brief Deletes the IPv6 entry for this interface and creates a replacement + * static IPv6 entry + * + * @param[in] ifaceId Id of interface upon which to create the IPv6 entry + * @param[in] id The unique hash entry identifying the DBus entry + * @param[in] prefixLength IPv6 prefix syntax for the subnet mask + * @param[in] address IPv6 address to assign to this interface + * @param[io] asyncResp Response object that will be returned to client + * + * @return None + */ +inline void deleteAndCreateIPv6(const std::string &ifaceId, + const std::string &id, uint8_t prefixLength, + const std::string &address, + std::shared_ptr asyncResp) +{ + crow::connections::systemBus->async_method_call( + [asyncResp, ifaceId, address, + prefixLength](const boost::system::error_code ec) { + if (ec) + { + messages::internalError(asyncResp->res); + } + crow::connections::systemBus->async_method_call( + [asyncResp](const boost::system::error_code ec) { + if (ec) + { + messages::internalError(asyncResp->res); + } + }, + "xyz.openbmc_project.Network", + "/xyz/openbmc_project/network/" + ifaceId, + "xyz.openbmc_project.Network.IP.Create", "IP", + "xyz.openbmc_project.Network.IP.Protocol.IPv6", address, + prefixLength, ""); + }, + "xyz.openbmc_project.Network", + +"/xyz/openbmc_project/network/" + ifaceId + "/ipv6/" + id, + "xyz.openbmc_project.Object.Delete", "Delete"); +} + +/** + * @brief Creates IPv6 with given data + * + * @param[in] ifaceId Id of interface whose IP should be added + * @param[in] prefixLength Prefix length that needs to be added + * @param[in] address IP address that needs to be added + * @param[io] asyncResp Response object that will be returned to client + * + * @return None + */ +inline void createIPv6(const std::string &ifaceId, uint8_t prefixLength, + const std::string &address, + std::shared_ptr asyncResp) +{ + auto createIpHandler = [asyncResp](const boost::system::error_code ec) { + if (ec) + { + messages::internalError(asyncResp->res); + } + }; + // Passing null for gateway, as per redfish spec IPv6StaticAddresses object + // does not have assosiated gateway property + crow::connections::systemBus->async_method_call( + std::move(createIpHandler), "xyz.openbmc_project.Network", + "/xyz/openbmc_project/network/" + ifaceId, + "xyz.openbmc_project.Network.IP.Create", "IP", + "xyz.openbmc_project.Network.IP.Protocol.IPv6", address, prefixLength, + ""); +} + +/** + * Function that retrieves all properties for given Ethernet Interface + * Object + * from EntityManager Network Manager + * @param ethiface_id a eth interface id to query on DBus + * @param callback a function that shall be called to convert Dbus output + * into JSON + */ +template +void getEthernetIfaceData(const std::string ðiface_id, + CallbackFunc &&callback) +{ + crow::connections::systemBus->async_method_call( + [ethiface_id{std::string{ethiface_id}}, callback{std::move(callback)}]( + const boost::system::error_code error_code, + const GetManagedObjects &resp) { + EthernetInterfaceData ethData{}; + boost::container::flat_set ipv4Data; + boost::container::flat_set ipv6Data; + + if (error_code) + { + callback(false, ethData, ipv4Data, ipv6Data); + return; + } + + bool found = + extractEthernetInterfaceData(ethiface_id, resp, ethData); + if (!found) + { + callback(false, ethData, ipv4Data, ipv6Data); + return; + } + + extractIPData(ethiface_id, resp, ipv4Data); + // Fix global GW + for (IPv4AddressData &ipv4 : ipv4Data) + { + if (((ipv4.linktype == LinkType::Global) && + (ipv4.gateway == "0.0.0.0")) || + (ipv4.origin == "DHCP")) + { + ipv4.gateway = ethData.default_gateway; + } + } + + extractIPV6Data(ethiface_id, resp, ipv6Data); + // Finally make a callback with usefull data + callback(true, ethData, ipv4Data, ipv6Data); + }, + "xyz.openbmc_project.Network", "/xyz/openbmc_project/network", + "org.freedesktop.DBus.ObjectManager", "GetManagedObjects"); +} + +/** + * Function that retrieves all Ethernet Interfaces available through Network + * Manager + * @param callback a function that shall be called to convert Dbus output + * into JSON. + */ +template +void getEthernetIfaceList(CallbackFunc &&callback) +{ + crow::connections::systemBus->async_method_call( + [callback{std::move(callback)}]( + const boost::system::error_code error_code, + GetManagedObjects &resp) { + // Callback requires vector to retrieve all available + // ethernet interfaces + boost::container::flat_set iface_list; + iface_list.reserve(resp.size()); + if (error_code) + { + callback(false, iface_list); + return; + } + + // Iterate over all retrieved ObjectPaths. + for (const auto &objpath : resp) + { + // And all interfaces available for certain ObjectPath. + for (const auto &interface : objpath.second) + { + // If interface is + // xyz.openbmc_project.Network.EthernetInterface, this is + // what we're looking for. + if (interface.first == + "xyz.openbmc_project.Network.EthernetInterface") + { + // Cut out everyting until last "/", ... + const std::string &iface_id = objpath.first.str; + std::size_t last_pos = iface_id.rfind("/"); + if (last_pos != std::string::npos) + { + // and put it into output vector. + iface_list.emplace(iface_id.substr(last_pos + 1)); + } + } + } + } + // Finally make a callback with useful data + callback(true, iface_list); + }, + "xyz.openbmc_project.Network", "/xyz/openbmc_project/network", + "org.freedesktop.DBus.ObjectManager", "GetManagedObjects"); +} + +/** + * EthernetCollection derived class for delivering Ethernet Collection Schema + */ +class EthernetCollection : public Node +{ + public: + template + EthernetCollection(CrowApp &app) : +#ifndef BMCWEB_ENABLE_REDFISH_RMC + Node(app, "/redfish/v1/Managers/bmc/EthernetInterfaces/") +#else + Node(app, "/redfish/v1/Managers/rmc/EthernetInterfaces/") +#endif // !BMCWEB_ENABLE_REDFISH_RMC + { + entityPrivileges = { + {boost::beast::http::verb::get, {{"Login"}}}, + {boost::beast::http::verb::head, {{"Login"}}}, + {boost::beast::http::verb::patch, {{"ConfigureComponents"}}}, + {boost::beast::http::verb::put, {{"ConfigureComponents"}}}, + {boost::beast::http::verb::delete_, {{"ConfigureComponents"}}}, + {boost::beast::http::verb::post, {{"ConfigureComponents"}}}}; + } + + private: + /** + * Functions triggers appropriate requests on DBus + */ + void doGet(crow::Response &res, const crow::Request &req, + const std::vector ¶ms) override + { +#ifndef BMCWEB_ENABLE_REDFISH_RMC + res.jsonValue["@odata.type"] = + "#EthernetInterfaceCollection.EthernetInterfaceCollection"; + res.jsonValue["@odata.context"] = + "/redfish/v1/" + "$metadata#EthernetInterfaceCollection.EthernetInterfaceCollection"; + res.jsonValue["@odata.id"] = + "/redfish/v1/Managers/bmc/EthernetInterfaces"; + + res.jsonValue["Name"] = "Ethernet Network Interface Collection"; + res.jsonValue["Description"] = + "Collection of EthernetInterfaces for this Manager"; + std::shared_ptr asyncResp = std::make_shared(res); + // Get eth interface list, and call the below callback for JSON + // preparation + getEthernetIfaceList( + [asyncResp]( + const bool &success, + const boost::container::flat_set &iface_list) { + if (!success) + { + messages::internalError(asyncResp->res); + return; + } + + nlohmann::json &iface_array = + asyncResp->res.jsonValue["Members"]; + iface_array = nlohmann::json::array(); + std::string tag = "_"; + for (const std::string &iface_item : iface_list) + { + std::size_t found = iface_item.find(tag); + if (found == std::string::npos) + { + iface_array.push_back( + {{"@odata.id", + "/redfish/v1/Managers/bmc/EthernetInterfaces/" + + iface_item}}); + } + } + + asyncResp->res.jsonValue["Members@odata.count"] = + iface_array.size(); + asyncResp->res.jsonValue["@odata.id"] = + "/redfish/v1/Managers/bmc/EthernetInterfaces"; + }); +#else + res.jsonValue["@odata.type"] = + "#EthernetInterfaceCollection.EthernetInterfaceCollection"; + res.jsonValue["@odata.context"] = + "/redfish/v1/" + "$metadata#EthernetInterfaceCollection.EthernetInterfaceCollection"; + res.jsonValue["@odata.id"] = + "/redfish/v1/Managers/rmc/EthernetInterfaces"; + + res.jsonValue["Name"] = "Ethernet Network Interface Collection"; + res.jsonValue["Description"] = + "Collection of EthernetInterfaces for this Manager"; + std::shared_ptr asyncResp = std::make_shared(res); + // Get eth interface list, and call the below callback for JSON + // preparation + getEthernetIfaceList( + [asyncResp]( + const bool &success, + const boost::container::flat_set &iface_list) { + if (!success) + { + messages::internalError(asyncResp->res); + return; + } + + nlohmann::json &iface_array = + asyncResp->res.jsonValue["Members"]; + iface_array = nlohmann::json::array(); + std::string tag = "_"; + for (const std::string &iface_item : iface_list) + { + std::size_t found = iface_item.find(tag); + if (found == std::string::npos) + { + iface_array.push_back( + {{"@odata.id", + "/redfish/v1/Managers/rmc/EthernetInterfaces/" + + iface_item}}); + } + } + + asyncResp->res.jsonValue["Members@odata.count"] = + iface_array.size(); + asyncResp->res.jsonValue["@odata.id"] = + "/redfish/v1/Managers/rmc/EthernetInterfaces"; + }); +#endif + + + } +}; + +/** + * EthernetInterface derived class for delivering Ethernet Schema + */ +class EthernetInterface : public Node +{ + public: + /* + * Default Constructor + */ + template + EthernetInterface(CrowApp &app) : +#ifndef BMCWEB_ENABLE_REDFISH_RMC + Node(app, "/redfish/v1/Managers/bmc/EthernetInterfaces//", +#else + Node(app, "/redfish/v1/Managers/rmc/EthernetInterfaces//", +#endif // !BMCWEB_ENABLE_REDFISH_RMC + + std::string()) + { + entityPrivileges = { + {boost::beast::http::verb::get, {{"Login"}}}, + {boost::beast::http::verb::head, {{"Login"}}}, + {boost::beast::http::verb::patch, {{"ConfigureComponents"}}}, + {boost::beast::http::verb::put, {{"ConfigureComponents"}}}, + {boost::beast::http::verb::delete_, {{"ConfigureComponents"}}}, + {boost::beast::http::verb::post, {{"ConfigureComponents"}}}}; + } + + private: + void handleHostnamePatch(const std::string &hostname, + const std::shared_ptr asyncResp) + { + asyncResp->res.jsonValue["HostName"] = hostname; + crow::connections::systemBus->async_method_call( + [asyncResp](const boost::system::error_code ec) { + if (ec) + { + messages::internalError(asyncResp->res); + } + }, + "xyz.openbmc_project.Network", + "/xyz/openbmc_project/network/config", + "org.freedesktop.DBus.Properties", "Set", + "xyz.openbmc_project.Network.SystemConfiguration", "HostName", + std::variant(hostname)); + } + + void handleMACAddressPatch(const std::string &ifaceId, + const std::string &macAddress, + const std::shared_ptr &asyncResp) + { + crow::connections::systemBus->async_method_call( + [asyncResp, macAddress](const boost::system::error_code ec) { + if (ec) + { + messages::internalError(asyncResp->res); + return; + } + }, + "xyz.openbmc_project.Network", + "/xyz/openbmc_project/network/" + ifaceId, + "org.freedesktop.DBus.Properties", "Set", + "xyz.openbmc_project.Network.MACAddress", "MACAddress", + std::variant(macAddress)); + } + + void setDHCPEnabled(const std::string &ifaceId, + const std::string &propertyName, const bool v4Value, + const bool v6Value, + const std::shared_ptr asyncResp) + { + const std::string dhcp = GetDHCPEnabledEnumeration(v4Value, v6Value); + crow::connections::systemBus->async_method_call( + [asyncResp](const boost::system::error_code ec) { + if (ec) + { + BMCWEB_LOG_ERROR << "D-Bus responses error: " << ec; + messages::internalError(asyncResp->res); + return; + } + }, + "xyz.openbmc_project.Network", + "/xyz/openbmc_project/network/" + ifaceId, + "org.freedesktop.DBus.Properties", "Set", + "xyz.openbmc_project.Network.EthernetInterface", propertyName, + std::variant{dhcp}); + } + + void setDHCPv4Config(const std::string &propertyName, const bool &value, + const std::shared_ptr asyncResp) + { + BMCWEB_LOG_DEBUG << propertyName << " = " << value; + crow::connections::systemBus->async_method_call( + [asyncResp](const boost::system::error_code ec) { + if (ec) + { + BMCWEB_LOG_ERROR << "D-Bus responses error: " << ec; + messages::internalError(asyncResp->res); + return; + } + }, + "xyz.openbmc_project.Network", + "/xyz/openbmc_project/network/config/dhcp", + "org.freedesktop.DBus.Properties", "Set", + "xyz.openbmc_project.Network.DHCPConfiguration", propertyName, + std::variant{value}); + } + + void handleDHCPPatch(const std::string &ifaceId, + const EthernetInterfaceData ðData, + DHCPParameters v4dhcpParms, DHCPParameters v6dhcpParms, + const std::shared_ptr asyncResp) + { + bool ipv4Active = translateDHCPEnabledToBool(ethData.DHCPEnabled, true); + bool ipv6Active = + translateDHCPEnabledToBool(ethData.DHCPEnabled, false); + + bool nextv4DHCPState = + v4dhcpParms.dhcpv4Enabled ? *v4dhcpParms.dhcpv4Enabled : ipv4Active; + + bool nextv6DHCPState{}; + if (v6dhcpParms.dhcpv6OperatingMode) + { + if ((*v6dhcpParms.dhcpv6OperatingMode != "Stateful") && + (*v6dhcpParms.dhcpv6OperatingMode != "Stateless") && + (*v6dhcpParms.dhcpv6OperatingMode != "Disabled")) + { + messages::propertyValueFormatError( + asyncResp->res, *v6dhcpParms.dhcpv6OperatingMode, + "OperatingMode"); + return; + } + nextv6DHCPState = (*v6dhcpParms.dhcpv6OperatingMode == "Stateful"); + } + else + { + nextv6DHCPState = ipv6Active; + } + + bool nextDNS{}; + if (v4dhcpParms.useDNSServers && v6dhcpParms.useDNSServers) + { + if (*v4dhcpParms.useDNSServers != *v6dhcpParms.useDNSServers) + { + messages::generalError(asyncResp->res); + return; + } + nextDNS = *v4dhcpParms.useDNSServers; + } + else if (v4dhcpParms.useDNSServers) + { + nextDNS = *v4dhcpParms.useDNSServers; + } + else if (v6dhcpParms.useDNSServers) + { + nextDNS = *v6dhcpParms.useDNSServers; + } + else + { + nextDNS = ethData.DNSEnabled; + } + + bool nextNTP{}; + if (v4dhcpParms.useNTPServers && v6dhcpParms.useNTPServers) + { + if (*v4dhcpParms.useNTPServers != *v6dhcpParms.useNTPServers) + { + messages::generalError(asyncResp->res); + return; + } + nextNTP = *v4dhcpParms.useNTPServers; + } + else if (v4dhcpParms.useNTPServers) + { + nextNTP = *v4dhcpParms.useNTPServers; + } + else if (v6dhcpParms.useNTPServers) + { + nextNTP = *v6dhcpParms.useNTPServers; + } + else + { + nextNTP = ethData.NTPEnabled; + } + + bool nextUseDomain{}; + if (v4dhcpParms.useUseDomainName && v6dhcpParms.useUseDomainName) + { + if (*v4dhcpParms.useUseDomainName != *v6dhcpParms.useUseDomainName) + { + messages::generalError(asyncResp->res); + return; + } + nextUseDomain = *v4dhcpParms.useUseDomainName; + } + else if (v4dhcpParms.useUseDomainName) + { + nextUseDomain = *v4dhcpParms.useUseDomainName; + } + else if (v6dhcpParms.useUseDomainName) + { + nextUseDomain = *v6dhcpParms.useUseDomainName; + } + else + { + nextUseDomain = ethData.HostNameEnabled; + } + + BMCWEB_LOG_DEBUG << "set DHCPEnabled..."; + setDHCPEnabled(ifaceId, "DHCPEnabled", nextv4DHCPState, nextv6DHCPState, + asyncResp); + BMCWEB_LOG_DEBUG << "set DNSEnabled..."; + setDHCPv4Config("DNSEnabled", nextDNS, asyncResp); + BMCWEB_LOG_DEBUG << "set NTPEnabled..."; + setDHCPv4Config("NTPEnabled", nextNTP, asyncResp); + BMCWEB_LOG_DEBUG << "set HostNameEnabled..."; + setDHCPv4Config("HostNameEnabled", nextUseDomain, asyncResp); + } + + boost::container::flat_set::const_iterator + GetNextStaticIPEntry( + boost::container::flat_set::const_iterator head, + boost::container::flat_set::const_iterator end) + { + for (; head != end; head++) + { + if (head->origin == "Static") + { + return head; + } + } + return end; + } + + boost::container::flat_set::const_iterator + GetNextStaticIPEntry( + boost::container::flat_set::const_iterator head, + boost::container::flat_set::const_iterator end) + { + for (; head != end; head++) + { + if (head->origin == "Static") + { + return head; + } + } + return end; + } + + void handleIPv4StaticPatch( + const std::string &ifaceId, nlohmann::json &input, + const boost::container::flat_set &ipv4Data, + const std::shared_ptr asyncResp) + { + if ((!input.is_array()) || input.empty()) + { + messages::propertyValueTypeError(asyncResp->res, input.dump(), + "IPv4StaticAddresses"); + return; + } + + unsigned entryIdx = 1; + // Find the first static IP address currently active on the NIC and + // match it to the first JSON element in the IPv4StaticAddresses array. + // Match each subsequent JSON element to the next static IP programmed + // into the NIC. + boost::container::flat_set::const_iterator NICIPentry = + GetNextStaticIPEntry(ipv4Data.cbegin(), ipv4Data.cend()); + + for (nlohmann::json &thisJson : input) + { + std::string pathString = + "IPv4StaticAddresses/" + std::to_string(entryIdx); + + if (!thisJson.is_null() && !thisJson.empty()) + { + std::optional address; + std::optional subnetMask; + std::optional gateway; + + if (!json_util::readJson(thisJson, asyncResp->res, "Address", + address, "SubnetMask", subnetMask, + "Gateway", gateway)) + { + messages::propertyValueFormatError( + asyncResp->res, thisJson.dump(), pathString); + return; + } + + // Find the address/subnet/gateway values. Any values that are + // not explicitly provided are assumed to be unmodified from the + // current state of the interface. Merge existing state into the + // current request. + const std::string *addr = nullptr; + const std::string *gw = nullptr; + uint8_t prefixLength = 0; + bool errorInEntry = false; + if (address) + { + if (ipv4VerifyIpAndGetBitcount(*address)) + { + addr = &(*address); + } + else + { + messages::propertyValueFormatError( + asyncResp->res, *address, pathString + "/Address"); + errorInEntry = true; + } + } + else if (NICIPentry != ipv4Data.cend()) + { + addr = &(NICIPentry->address); + } + else + { + messages::propertyMissing(asyncResp->res, + pathString + "/Address"); + errorInEntry = true; + } + + if (subnetMask) + { + if (!ipv4VerifyIpAndGetBitcount(*subnetMask, &prefixLength)) + { + messages::propertyValueFormatError( + asyncResp->res, *subnetMask, + pathString + "/SubnetMask"); + errorInEntry = true; + } + } + else if (NICIPentry != ipv4Data.cend()) + { + if (!ipv4VerifyIpAndGetBitcount(NICIPentry->netmask, + &prefixLength)) + { + messages::propertyValueFormatError( + asyncResp->res, NICIPentry->netmask, + pathString + "/SubnetMask"); + errorInEntry = true; + } + } + else + { + messages::propertyMissing(asyncResp->res, + pathString + "/SubnetMask"); + errorInEntry = true; + } + + if (gateway) + { + if (ipv4VerifyIpAndGetBitcount(*gateway)) + { + gw = &(*gateway); + } + else + { + messages::propertyValueFormatError( + asyncResp->res, *gateway, pathString + "/Gateway"); + errorInEntry = true; + } + } + else if (NICIPentry != ipv4Data.cend()) + { + gw = &NICIPentry->gateway; + } + else + { + messages::propertyMissing(asyncResp->res, + pathString + "/Gateway"); + errorInEntry = true; + } + + if (errorInEntry) + { + return; + } + + if (NICIPentry != ipv4Data.cend()) + { + if (gw != nullptr || addr != nullptr) + { + // Shouldn't be possible based on errorInEntry, but + // it flags -wmaybe-uninitialized in the compiler, + // so defend against that + return; + } + deleteAndCreateIPv4(ifaceId, NICIPentry->id, prefixLength, + *gw, *addr, asyncResp); + NICIPentry = + GetNextStaticIPEntry(++NICIPentry, ipv4Data.cend()); + } + else + { + createIPv4(ifaceId, entryIdx, prefixLength, *gateway, + *address, asyncResp); + } + entryIdx++; + } + else + { + if (NICIPentry == ipv4Data.cend()) + { + // Requesting a DELETE/DO NOT MODIFY action for an item + // that isn't present on the eth(n) interface. Input JSON is + // in error, so bail out. + if (thisJson.is_null()) + { + messages::resourceCannotBeDeleted(asyncResp->res); + return; + } + else + { + messages::propertyValueFormatError( + asyncResp->res, thisJson.dump(), pathString); + return; + } + } + + if (thisJson.is_null()) + { + deleteIPv4(ifaceId, NICIPentry->id, asyncResp); + } + if (NICIPentry != ipv4Data.cend()) + { + NICIPentry = + GetNextStaticIPEntry(++NICIPentry, ipv4Data.cend()); + } + entryIdx++; + } + } + } + + void handleStaticNameServersPatch( + const std::string &ifaceId, + const std::vector &updatedStaticNameServers, + const std::shared_ptr &asyncResp) + { + crow::connections::systemBus->async_method_call( + [asyncResp](const boost::system::error_code ec) { + if (ec) + { + messages::internalError(asyncResp->res); + return; + } + }, + "xyz.openbmc_project.Network", + "/xyz/openbmc_project/network/" + ifaceId, + "org.freedesktop.DBus.Properties", "Set", + "xyz.openbmc_project.Network.EthernetInterface", "Nameservers", + std::variant>{updatedStaticNameServers}); + } + + void handleIPv6StaticAddressesPatch( + const std::string &ifaceId, nlohmann::json &input, + const boost::container::flat_set &ipv6Data, + const std::shared_ptr asyncResp) + { + if (!input.is_array() || input.empty()) + { + messages::propertyValueTypeError(asyncResp->res, input.dump(), + "IPv6StaticAddresses"); + return; + } + size_t entryIdx = 1; + boost::container::flat_set::const_iterator NICIPentry = + GetNextStaticIPEntry(ipv6Data.cbegin(), ipv6Data.cend()); + for (nlohmann::json &thisJson : input) + { + std::string pathString = + "IPv6StaticAddresses/" + std::to_string(entryIdx); + + if (!thisJson.is_null() && !thisJson.empty()) + { + std::optional address; + std::optional prefixLength; + + if (!json_util::readJson(thisJson, asyncResp->res, "Address", + address, "PrefixLength", prefixLength)) + { + messages::propertyValueFormatError( + asyncResp->res, thisJson.dump(), pathString); + return; + } + + const std::string *addr; + uint8_t prefix; + + // Find the address and prefixLength values. Any values that are + // not explicitly provided are assumed to be unmodified from the + // current state of the interface. Merge existing state into the + // current request. + if (address) + { + addr = &(*address); + } + else if (NICIPentry != ipv6Data.end()) + { + addr = &(NICIPentry->address); + } + else + { + messages::propertyMissing(asyncResp->res, + pathString + "/Address"); + return; + } + + if (prefixLength) + { + prefix = *prefixLength; + } + else if (NICIPentry != ipv6Data.end()) + { + prefix = NICIPentry->prefixLength; + } + else + { + messages::propertyMissing(asyncResp->res, + pathString + "/PrefixLength"); + return; + } + + if (NICIPentry != ipv6Data.end()) + { + deleteAndCreateIPv6(ifaceId, NICIPentry->id, prefix, *addr, + asyncResp); + NICIPentry = + GetNextStaticIPEntry(++NICIPentry, ipv6Data.cend()); + } + else + { + createIPv6(ifaceId, *prefixLength, *addr, asyncResp); + } + entryIdx++; + } + else + { + if (NICIPentry == ipv6Data.end()) + { + // Requesting a DELETE/DO NOT MODIFY action for an item + // that isn't present on the eth(n) interface. Input JSON is + // in error, so bail out. + if (thisJson.is_null()) + { + messages::resourceCannotBeDeleted(asyncResp->res); + return; + } + else + { + messages::propertyValueFormatError( + asyncResp->res, thisJson.dump(), pathString); + return; + } + } + + if (thisJson.is_null()) + { + deleteIPv6(ifaceId, NICIPentry->id, asyncResp); + } + if (NICIPentry != ipv6Data.cend()) + { + NICIPentry = + GetNextStaticIPEntry(++NICIPentry, ipv6Data.cend()); + } + entryIdx++; + } + } + } + + void parseInterfaceData( + nlohmann::json &json_response, const std::string &iface_id, + const EthernetInterfaceData ðData, + const boost::container::flat_set &ipv4Data, + const boost::container::flat_set &ipv6Data) + { + json_response["Id"] = iface_id; +#ifndef BMCWEB_ENABLE_REDFISH_RMC + json_response["@odata.id"] = + "/redfish/v1/Managers/bmc/EthernetInterfaces/" + iface_id; +#else + json_response["@odata.id"] = + "/redfish/v1/Managers/rmc/EthernetInterfaces/" + iface_id; +#endif + + json_response["InterfaceEnabled"] = true; + if (ethData.speed == 0) + { + json_response["LinkStatus"] = "NoLink"; + json_response["Status"] = { + {"Health", "OK"}, + {"State", "Disabled"}, + }; + } + else + { + json_response["LinkStatus"] = "LinkUp"; + json_response["Status"] = { + {"Health", "OK"}, + {"State", "Enabled"}, + }; + } + json_response["SpeedMbps"] = ethData.speed; + json_response["MACAddress"] = ethData.mac_address; + json_response["DHCPv4"]["DHCPEnabled"] = + translateDHCPEnabledToBool(ethData.DHCPEnabled, true); + json_response["DHCPv4"]["UseNTPServers"] = ethData.NTPEnabled; + json_response["DHCPv4"]["UseDNSServers"] = ethData.DNSEnabled; + json_response["DHCPv4"]["UseDomainName"] = ethData.HostNameEnabled; + + json_response["DHCPv6"]["OperatingMode"] = + translateDHCPEnabledToBool(ethData.DHCPEnabled, false) ? "Stateful" + : "Disabled"; + json_response["DHCPv6"]["UseNTPServers"] = ethData.NTPEnabled; + json_response["DHCPv6"]["UseDNSServers"] = ethData.DNSEnabled; + json_response["DHCPv6"]["UseDomainName"] = ethData.HostNameEnabled; + + if (!ethData.hostname.empty()) + { + json_response["HostName"] = ethData.hostname; + if (!ethData.domainnames.empty()) + { + json_response["FQDN"] = + ethData.hostname + "." + ethData.domainnames[0]; + } + } +#ifndef BMCWEB_ENABLE_REDFISH_RMC + json_response["VLANs"] = { + {"@odata.id", "/redfish/v1/Managers/bmc/EthernetInterfaces/" + + iface_id + "/VLANs"}}; +#else + json_response["FQDN"] = "www.inspur.com"; + nlohmann::json &NameServers_array = json_response["NameServers"]; + NameServers_array.push_back({"www.china.com", "www.inspur.com"}); +#endif + + + if (translateDHCPEnabledToBool(ethData.DHCPEnabled, true) && + ethData.DNSEnabled) + { + json_response["StaticNameServers"] = nlohmann::json::array(); + } + else + { + json_response["StaticNameServers"] = ethData.nameservers; + } + + nlohmann::json &ipv4_array = json_response["IPv4Addresses"]; + nlohmann::json &ipv4_static_array = + json_response["IPv4StaticAddresses"]; + ipv4_array = nlohmann::json::array(); + ipv4_static_array = nlohmann::json::array(); + for (auto &ipv4_config : ipv4Data) + { + + std::string gatewayStr = ipv4_config.gateway; + if (gatewayStr.empty()) + { + gatewayStr = "0.0.0.0"; + } + + ipv4_array.push_back({{"AddressOrigin", ipv4_config.origin}, + {"SubnetMask", ipv4_config.netmask}, + {"Address", ipv4_config.address}, + {"Gateway", gatewayStr}}); + if (ipv4_config.origin == "Static") + { + ipv4_static_array.push_back( + {{"AddressOrigin", ipv4_config.origin}, + {"SubnetMask", ipv4_config.netmask}, + {"Address", ipv4_config.address}, + {"Gateway", gatewayStr}}); + } + } + + json_response["IPv6DefaultGateway"] = ethData.ipv6_default_gateway; + + nlohmann::json &ipv6_array = json_response["IPv6Addresses"]; + nlohmann::json &ipv6_static_array = + json_response["IPv6StaticAddresses"]; + ipv6_array = nlohmann::json::array(); + ipv6_static_array = nlohmann::json::array(); + for (auto &ipv6_config : ipv6Data) + { + ipv6_array.push_back({{"Address", ipv6_config.address}, + {"PrefixLength", ipv6_config.prefixLength}, + {"AddressState", "up"}, + {"AddressOrigin", ipv6_config.origin}}); + if (ipv6_config.origin == "Static") + { + ipv6_static_array.push_back( + {{"Address", ipv6_config.address}, + {"PrefixLength", ipv6_config.prefixLength}, + {"AddressState", "up"}, + {"AddressOrigin", ipv6_config.origin}}); + } + } + } + + /** + * Functions triggers appropriate requests on DBus + */ + void doGet(crow::Response &res, const crow::Request &req, + const std::vector ¶ms) override + { + std::shared_ptr asyncResp = std::make_shared(res); + if (params.size() != 1) + { + messages::internalError(asyncResp->res); + return; + } + + getEthernetIfaceData( + params[0], + [this, asyncResp, iface_id{std::string(params[0])}]( + const bool &success, const EthernetInterfaceData ðData, + const boost::container::flat_set &ipv4Data, + const boost::container::flat_set &ipv6Data) { + if (!success) + { + // TODO(Pawel)consider distinguish between non existing + // object, and other errors + messages::resourceNotFound(asyncResp->res, + "EthernetInterface", iface_id); + return; + } + + asyncResp->res.jsonValue["@odata.type"] = + "#EthernetInterface.v1_4_1.EthernetInterface"; + asyncResp->res.jsonValue["@odata.context"] = + "/redfish/v1/" + "$metadata#EthernetInterface.EthernetInterface"; + asyncResp->res.jsonValue["Name"] = "Manager Ethernet Interface"; + asyncResp->res.jsonValue["Description"] = + "Management Network Interface"; + + parseInterfaceData(asyncResp->res.jsonValue, iface_id, ethData, + ipv4Data, ipv6Data); + }); + } + + void doPatch(crow::Response &res, const crow::Request &req, + const std::vector ¶ms) override + { + std::shared_ptr asyncResp = std::make_shared(res); + if (params.size() != 1) + { + messages::internalError(asyncResp->res); + return; + } + + const std::string &iface_id = params[0]; + + std::optional hostname; + std::optional macAddress; + std::optional ipv6DefaultGateway; + std::optional ipv4StaticAddresses; + std::optional ipv6StaticAddresses; + std::optional> staticNameServers; + std::optional dhcpv4; + std::optional dhcpv6; + DHCPParameters v4dhcpParms; + DHCPParameters v6dhcpParms; + + if (!json_util::readJson( + req, res, "HostName", hostname, "IPv4StaticAddresses", + ipv4StaticAddresses, "MACAddress", macAddress, + "StaticNameServers", staticNameServers, "IPv6DefaultGateway", + ipv6DefaultGateway, "IPv6StaticAddresses", ipv6StaticAddresses, + "DHCPv4", dhcpv4, "DHCPv6", dhcpv6)) + { + return; + } + if (dhcpv4) + { + if (!json_util::readJson(*dhcpv4, res, "DHCPEnabled", + v4dhcpParms.dhcpv4Enabled, "UseDNSServers", + v4dhcpParms.useDNSServers, "UseNTPServers", + v4dhcpParms.useNTPServers, "UseDomainName", + v4dhcpParms.useUseDomainName)) + { + return; + } + } + + if (dhcpv6) + { + if (!json_util::readJson(*dhcpv6, res, "OperatingMode", + v6dhcpParms.dhcpv6OperatingMode, + "UseDNSServers", v6dhcpParms.useDNSServers, + "UseNTPServers", v6dhcpParms.useNTPServers, + "UseDomainName", + v6dhcpParms.useUseDomainName)) + { + return; + } + } + + // Get single eth interface data, and call the below callback for + // JSON preparation + getEthernetIfaceData( + iface_id, + [this, asyncResp, iface_id, hostname = std::move(hostname), + macAddress = std::move(macAddress), + ipv4StaticAddresses = std::move(ipv4StaticAddresses), + ipv6DefaultGateway = std::move(ipv6DefaultGateway), + ipv6StaticAddresses = std::move(ipv6StaticAddresses), + staticNameServers = std::move(staticNameServers), + dhcpv4 = std::move(dhcpv4), dhcpv6 = std::move(dhcpv6), + v4dhcpParms = std::move(v4dhcpParms), + v6dhcpParms = std::move(v6dhcpParms)]( + const bool &success, const EthernetInterfaceData ðData, + const boost::container::flat_set &ipv4Data, + const boost::container::flat_set &ipv6Data) { + if (!success) + { + // ... otherwise return error + // TODO(Pawel)consider distinguish between non existing + // object, and other errors + messages::resourceNotFound(asyncResp->res, + "Ethernet Interface", iface_id); + return; + } + + if (dhcpv4 || dhcpv6) + { + handleDHCPPatch(iface_id, ethData, std::move(v4dhcpParms), + std::move(v6dhcpParms), asyncResp); + } + + if (hostname) + { + handleHostnamePatch(*hostname, asyncResp); + } + + if (macAddress) + { + handleMACAddressPatch(iface_id, *macAddress, asyncResp); + } + + if (ipv4StaticAddresses) + { + // TODO(ed) for some reason the capture of ipv4Addresses + // above is returning a const value, not a non-const + // value. This doesn't really work for us, as we need to + // be able to efficiently move out the intermedia + // nlohmann::json objects. This makes a copy of the + // structure, and operates on that, but could be done + // more efficiently + nlohmann::json ipv4Static = std::move(*ipv4StaticAddresses); + handleIPv4StaticPatch(iface_id, ipv4Static, ipv4Data, + asyncResp); + } + + if (staticNameServers) + { + handleStaticNameServersPatch(iface_id, *staticNameServers, + asyncResp); + } + + if (ipv6DefaultGateway) + { + messages::propertyNotWritable(asyncResp->res, + "IPv6DefaultGateway"); + } + + if (ipv6StaticAddresses) + { + nlohmann::json ipv6Static = std::move(*ipv6StaticAddresses); + handleIPv6StaticAddressesPatch(iface_id, ipv6Static, + ipv6Data, asyncResp); + } + }); + } +}; + +/** + * VlanNetworkInterface derived class for delivering VLANNetworkInterface + * Schema + */ +class VlanNetworkInterface : public Node +{ + public: + /* + * Default Constructor + */ + template + VlanNetworkInterface(CrowApp &app) : + Node(app, +#ifndef BMCWEB_ENABLE_REDFISH_RMC + "/redfish/v1/Managers/bmc/EthernetInterfaces//VLANs/", +#else + "/redfish/v1/Managers/rmc/EthernetInterfaces//VLANs/", +#endif // !BMCWEB_ENABLE_REDFISH_RMC + + std::string(), std::string()) + { + entityPrivileges = { + {boost::beast::http::verb::get, {{"Login"}}}, + {boost::beast::http::verb::head, {{"Login"}}}, + {boost::beast::http::verb::patch, {{"ConfigureComponents"}}}, + {boost::beast::http::verb::put, {{"ConfigureComponents"}}}, + {boost::beast::http::verb::delete_, {{"ConfigureComponents"}}}, + {boost::beast::http::verb::post, {{"ConfigureComponents"}}}}; + } + + private: + void parseInterfaceData( + nlohmann::json &json_response, const std::string &parent_iface_id, + const std::string &iface_id, const EthernetInterfaceData ðData, + const boost::container::flat_set &ipv4Data, + const boost::container::flat_set &ipv6Data) + { + // Fill out obvious data... + json_response["Id"] = iface_id; +#ifndef BMCWEB_ENABLE_REDFISH_RMC + json_response["@odata.id"] = + "/redfish/v1/Managers/bmc/EthernetInterfaces/" + parent_iface_id + + "/VLANs/" + iface_id; +#else + json_response["@odata.id"] = + "/redfish/v1/Managers/rmc/EthernetInterfaces/" + parent_iface_id + + "/VLANs/" + iface_id; +#endif // !BMCWEB_ENABLE_REDFISH_RMC + + + json_response["VLANEnable"] = true; + if (!ethData.vlan_id.empty()) + { + json_response["VLANId"] = ethData.vlan_id.back(); + } + } + + bool verifyNames(const std::string &parent, const std::string &iface) + { + if (!boost::starts_with(iface, parent + "_")) + { + return false; + } + else + { + return true; + } + } + + /** + * Functions triggers appropriate requests on DBus + */ + void doGet(crow::Response &res, const crow::Request &req, + const std::vector ¶ms) override + { + std::shared_ptr asyncResp = std::make_shared(res); + // TODO(Pawel) this shall be parameterized call (two params) to get + // EthernetInterfaces for any Manager, not only hardcoded 'openbmc'. + // Check if there is required param, truly entering this shall be + // impossible. + if (params.size() != 2) + { + messages::internalError(res); + res.end(); + return; + } + + const std::string &parent_iface_id = params[0]; + const std::string &iface_id = params[1]; + res.jsonValue["@odata.type"] = + "#VLanNetworkInterface.v1_1_0.VLanNetworkInterface"; + res.jsonValue["@odata.context"] = + "/redfish/v1/" + "$metadata#VLanNetworkInterface.VLanNetworkInterface"; + res.jsonValue["Name"] = "VLAN Network Interface"; + + if (!verifyNames(parent_iface_id, iface_id)) + { + return; + } + + // Get single eth interface data, and call the below callback for + // JSON preparation + getEthernetIfaceData( + params[1], + [this, asyncResp, parent_iface_id{std::string(params[0])}, + iface_id{std::string(params[1])}]( + const bool &success, const EthernetInterfaceData ðData, + const boost::container::flat_set &ipv4Data, + const boost::container::flat_set &ipv6Data) { + if (success && ethData.vlan_id.size() != 0) + { + parseInterfaceData(asyncResp->res.jsonValue, + parent_iface_id, iface_id, ethData, + ipv4Data, ipv6Data); + } + else + { + // ... otherwise return error + // TODO(Pawel)consider distinguish between non existing + // object, and other errors + messages::resourceNotFound( + asyncResp->res, "VLAN Network Interface", iface_id); + } + }); + } + + void doPatch(crow::Response &res, const crow::Request &req, + const std::vector ¶ms) override + { + std::shared_ptr asyncResp = std::make_shared(res); + if (params.size() != 2) + { + messages::internalError(asyncResp->res); + return; + } + + const std::string &parentIfaceId = params[0]; + const std::string &ifaceId = params[1]; + + if (!verifyNames(parentIfaceId, ifaceId)) + { + messages::resourceNotFound(asyncResp->res, "VLAN Network Interface", + ifaceId); + return; + } + + bool vlanEnable = false; + uint64_t vlanId = 0; + + if (!json_util::readJson(req, res, "VLANEnable", vlanEnable, "VLANId", + vlanId)) + { + return; + } + + // Get single eth interface data, and call the below callback for + // JSON preparation + getEthernetIfaceData( + params[1], + [asyncResp, parentIfaceId{std::string(params[0])}, + ifaceId{std::string(params[1])}, &vlanEnable, &vlanId]( + const bool &success, const EthernetInterfaceData ðData, + const boost::container::flat_set &ipv4Data, + const boost::container::flat_set &ipv6Data) { + if (success && !ethData.vlan_id.empty()) + { + auto callback = + [asyncResp](const boost::system::error_code ec) { + if (ec) + { + messages::internalError(asyncResp->res); + } + }; + + if (vlanEnable == true) + { + crow::connections::systemBus->async_method_call( + std::move(callback), "xyz.openbmc_project.Network", + "/xyz/openbmc_project/network/" + ifaceId, + "org.freedesktop.DBus.Properties", "Set", + "xyz.openbmc_project.Network.VLAN", "Id", + std::variant(vlanId)); + } + else + { + BMCWEB_LOG_DEBUG << "vlanEnable is false. Deleting the " + "vlan interface"; + crow::connections::systemBus->async_method_call( + std::move(callback), "xyz.openbmc_project.Network", + std::string("/xyz/openbmc_project/network/") + + ifaceId, + "xyz.openbmc_project.Object.Delete", "Delete"); + } + } + else + { + // TODO(Pawel)consider distinguish between non existing + // object, and other errors + messages::resourceNotFound( + asyncResp->res, "VLAN Network Interface", ifaceId); + return; + } + }); + } + + void doDelete(crow::Response &res, const crow::Request &req, + const std::vector ¶ms) override + { + std::shared_ptr asyncResp = std::make_shared(res); + if (params.size() != 2) + { + messages::internalError(asyncResp->res); + return; + } + + const std::string &parentIfaceId = params[0]; + const std::string &ifaceId = params[1]; + + if (!verifyNames(parentIfaceId, ifaceId)) + { + messages::resourceNotFound(asyncResp->res, "VLAN Network Interface", + ifaceId); + return; + } + + // Get single eth interface data, and call the below callback for + // JSON preparation + getEthernetIfaceData( + params[1], + [asyncResp, parentIfaceId{std::string(params[0])}, + ifaceId{std::string(params[1])}]( + const bool &success, const EthernetInterfaceData ðData, + const boost::container::flat_set &ipv4Data, + const boost::container::flat_set &ipv6Data) { + if (success && !ethData.vlan_id.empty()) + { + auto callback = + [asyncResp](const boost::system::error_code ec) { + if (ec) + { + messages::internalError(asyncResp->res); + } + }; + crow::connections::systemBus->async_method_call( + std::move(callback), "xyz.openbmc_project.Network", + std::string("/xyz/openbmc_project/network/") + ifaceId, + "xyz.openbmc_project.Object.Delete", "Delete"); + } + else + { + // ... otherwise return error + // TODO(Pawel)consider distinguish between non existing + // object, and other errors + messages::resourceNotFound( + asyncResp->res, "VLAN Network Interface", ifaceId); + } + }); + } +}; + +/** + * VlanNetworkInterfaceCollection derived class for delivering + * VLANNetworkInterface Collection Schema + */ +class VlanNetworkInterfaceCollection : public Node +{ + public: + template + VlanNetworkInterfaceCollection(CrowApp &app) : +#ifndef BMCWEB_ENABLE_REDFISH_RMC + Node(app, "/redfish/v1/Managers/bmc/EthernetInterfaces//VLANs/", + std::string()) +#else + Node(app, "/redfish/v1/Managers/rmc/EthernetInterfaces//VLANs/", + std::string()) +#endif // !BMCWEB_ENABLE_REDFISH_RMC + { + entityPrivileges = { + {boost::beast::http::verb::get, {{"Login"}}}, + {boost::beast::http::verb::head, {{"Login"}}}, + {boost::beast::http::verb::patch, {{"ConfigureComponents"}}}, + {boost::beast::http::verb::put, {{"ConfigureComponents"}}}, + {boost::beast::http::verb::delete_, {{"ConfigureComponents"}}}, + {boost::beast::http::verb::post, {{"ConfigureComponents"}}}}; + } + + private: + /** + * Functions triggers appropriate requests on DBus + */ + void doGet(crow::Response &res, const crow::Request &req, + const std::vector ¶ms) override + { + std::shared_ptr asyncResp = std::make_shared(res); + if (params.size() != 1) + { + // This means there is a problem with the router + messages::internalError(asyncResp->res); + return; + } + + const std::string &rootInterfaceName = params[0]; + + // Get eth interface list, and call the below callback for JSON + // preparation + getEthernetIfaceList( + [asyncResp, rootInterfaceName{std::string(rootInterfaceName)}]( + const bool &success, + const boost::container::flat_set &iface_list) { + if (!success) + { + messages::internalError(asyncResp->res); + return; + } + + if (iface_list.find(rootInterfaceName) == iface_list.end()) + { + messages::resourceNotFound(asyncResp->res, + "VLanNetworkInterfaceCollection", + rootInterfaceName); + return; + } + + asyncResp->res.jsonValue["@odata.type"] = + "#VLanNetworkInterfaceCollection." + "VLanNetworkInterfaceCollection"; + asyncResp->res.jsonValue["@odata.context"] = + "/redfish/v1/$metadata" + "#VLanNetworkInterfaceCollection." + "VLanNetworkInterfaceCollection"; + asyncResp->res.jsonValue["Name"] = + "VLAN Network Interface Collection"; + + nlohmann::json iface_array = nlohmann::json::array(); +#ifndef BMCWEB_ENABLE_REDFISH_RMC + for (const std::string &iface_item : iface_list) + { + if (boost::starts_with(iface_item, rootInterfaceName + "_")) + { + iface_array.push_back( + {{"@odata.id", + "/redfish/v1/Managers/bmc/EthernetInterfaces/" + + rootInterfaceName + "/VLANs/" + iface_item}}); + } + } + + asyncResp->res.jsonValue["Members@odata.count"] = + iface_array.size(); + asyncResp->res.jsonValue["Members"] = std::move(iface_array); + asyncResp->res.jsonValue["@odata.id"] = + "/redfish/v1/Managers/bmc/EthernetInterfaces/" + + rootInterfaceName + "/VLANs"; +#else + for (const std::string &iface_item : iface_list) + { + if (boost::starts_with(iface_item, rootInterfaceName + "_")) + { + iface_array.push_back( + {{"@odata.id", + "/redfish/v1/Managers/rmc/EthernetInterfaces/" + + rootInterfaceName + "/VLANs/" + iface_item}}); + } + } + + asyncResp->res.jsonValue["Members@odata.count"] = + iface_array.size(); + asyncResp->res.jsonValue["Members"] = std::move(iface_array); + asyncResp->res.jsonValue["@odata.id"] = + "/redfish/v1/Managers/rmc/EthernetInterfaces/" + + rootInterfaceName + "/VLANs"; +#endif + }); + } + + void doPost(crow::Response &res, const crow::Request &req, + const std::vector ¶ms) override + { + std::shared_ptr asyncResp = std::make_shared(res); + if (params.size() != 1) + { + messages::internalError(asyncResp->res); + return; + } + bool vlanEnable = false; + uint32_t vlanId = 0; + if (!json_util::readJson(req, res, "VLANId", vlanId, "VLANEnable", + vlanEnable)) + { + return; + } + // Need both vlanId and vlanEnable to service this request + if (!vlanId) + { + messages::propertyMissing(asyncResp->res, "VLANId"); + } + if (!vlanEnable) + { + messages::propertyMissing(asyncResp->res, "VLANEnable"); + } + if (static_cast(vlanId) ^ vlanEnable) + { + return; + } + + const std::string &rootInterfaceName = params[0]; + auto callback = [asyncResp](const boost::system::error_code ec) { + if (ec) + { + // TODO(ed) make more consistent error messages based on + // phosphor-network responses + messages::internalError(asyncResp->res); + return; + } + messages::created(asyncResp->res); + }; + crow::connections::systemBus->async_method_call( + std::move(callback), "xyz.openbmc_project.Network", + "/xyz/openbmc_project/network", + "xyz.openbmc_project.Network.VLAN.Create", "VLAN", + rootInterfaceName, vlanId); + } +}; +} // namespace redfish diff --git a/Contrib-Inspur/bmcweb/redfish-core/lib/rmc/rmc_log_services.hpp b/Contrib-Inspur/bmcweb/redfish-core/lib/rmc/rmc_log_services.hpp new file mode 100644 index 00000000..d0524c24 --- /dev/null +++ b/Contrib-Inspur/bmcweb/redfish-core/lib/rmc/rmc_log_services.hpp @@ -0,0 +1,2187 @@ +/* +// Copyright (c) 2018 Intel Corporation +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +*/ +#pragma once + +#include "node.hpp" +#include "registries.hpp" +#include "registries/base_message_registry.hpp" +#include "registries/openbmc_message_registry.hpp" + +#include + +#include +#include +#include +#include +#include +#include +#include +#include + +namespace redfish +{ + +constexpr char const *crashdumpObject = "com.intel.crashdump"; +constexpr char const *crashdumpPath = "/com/intel/crashdump"; +constexpr char const *crashdumpOnDemandPath = "/com/intel/crashdump/OnDemand"; +constexpr char const *crashdumpInterface = "com.intel.crashdump"; +constexpr char const *deleteAllInterface = + "xyz.openbmc_project.Collection.DeleteAll"; +constexpr char const *crashdumpOnDemandInterface = + "com.intel.crashdump.OnDemand"; +constexpr char const *crashdumpRawPECIInterface = + "com.intel.crashdump.SendRawPeci"; + +namespace message_registries +{ +static const Message *getMessageFromRegistry( + const std::string &messageKey, + const boost::beast::span registry) +{ + boost::beast::span::const_iterator messageIt = + std::find_if(registry.cbegin(), registry.cend(), + [&messageKey](const MessageEntry &messageEntry) { + return !std::strcmp(messageEntry.first, + messageKey.c_str()); + }); + if (messageIt != registry.cend()) + { + return &messageIt->second; + } + + return nullptr; +} + +static const Message *getMessage(const std::string_view &messageID) +{ + // Redfish MessageIds are in the form + // RegistryName.MajorVersion.MinorVersion.MessageKey, so parse it to find + // the right Message + std::vector fields; + fields.reserve(4); + boost::split(fields, messageID, boost::is_any_of(".")); + std::string ®istryName = fields[0]; + std::string &messageKey = fields[3]; + + // Find the right registry and check it for the MessageKey + if (std::string(base::header.registryPrefix) == registryName) + { + return getMessageFromRegistry( + messageKey, boost::beast::span(base::registry)); + } + if (std::string(openbmc::header.registryPrefix) == registryName) + { + return getMessageFromRegistry( + messageKey, + boost::beast::span(openbmc::registry)); + } + return nullptr; +} +} // namespace message_registries + +namespace fs = std::filesystem; + +using GetManagedPropertyType = boost::container::flat_map< + std::string, + sdbusplus::message::variant>; + +using GetManagedObjectsType = boost::container::flat_map< + sdbusplus::message::object_path, + boost::container::flat_map>; + +inline std::string translateSeverityDbusToRedfish(const std::string &s) +{ + if (s == "xyz.openbmc_project.Logging.Entry.Level.Alert") + { + return "Critical"; + } + else if (s == "xyz.openbmc_project.Logging.Entry.Level.Critical") + { + return "Critical"; + } + else if (s == "xyz.openbmc_project.Logging.Entry.Level.Debug") + { + return "OK"; + } + else if (s == "xyz.openbmc_project.Logging.Entry.Level.Emergency") + { + return "Critical"; + } + else if (s == "xyz.openbmc_project.Logging.Entry.Level.Error") + { + return "Critical"; + } + else if (s == "xyz.openbmc_project.Logging.Entry.Level.Informational") + { + return "OK"; + } + else if (s == "xyz.openbmc_project.Logging.Entry.Level.Notice") + { + return "OK"; + } + else if (s == "xyz.openbmc_project.Logging.Entry.Level.Warning") + { + return "Warning"; + } + return ""; +} +#ifndef BMCWEB_ENABLE_REDFISH_RMC +static int getJournalMetadata(sd_journal *journal, + const std::string_view &field, + std::string_view &contents) +{ + const char *data = nullptr; + size_t length = 0; + int ret = 0; + // Get the metadata from the requested field of the journal entry + ret = sd_journal_get_data(journal, field.data(), + reinterpret_cast(&data), &length); + if (ret < 0) + { + return ret; + } + contents = std::string_view(data, length); + // Only use the content after the "=" character. + contents.remove_prefix(std::min(contents.find("=") + 1, contents.size())); + return ret; +} + +static int getJournalMetadata(sd_journal *journal, + const std::string_view &field, const int &base, + long int &contents) +{ + int ret = 0; + std::string_view metadata; + // Get the metadata from the requested field of the journal entry + ret = getJournalMetadata(journal, field, metadata); + if (ret < 0) + { + return ret; + } + contents = strtol(metadata.data(), nullptr, base); + return ret; +} + +static bool getEntryTimestamp(sd_journal *journal, std::string &entryTimestamp) +{ + int ret = 0; + uint64_t timestamp = 0; + ret = sd_journal_get_realtime_usec(journal, ×tamp); + if (ret < 0) + { + BMCWEB_LOG_ERROR << "Failed to read entry timestamp: " + << strerror(-ret); + return false; + } + time_t t = + static_cast(timestamp / 1000 / 1000); // Convert from us to s + struct tm *loctime = localtime(&t); + char entryTime[64] = {}; + if (nullptr != loctime) + { + strftime(entryTime, sizeof(entryTime), "%FT%T%z", loctime); + } + // Insert the ':' into the timezone + std::string_view t1(entryTime); + std::string_view t2(entryTime); + if (t1.size() > 2 && t2.size() > 2) + { + t1.remove_suffix(2); + t2.remove_prefix(t2.size() - 2); + } + entryTimestamp = std::string(t1) + ":" + std::string(t2); + return true; +} +#endif +static bool getSkipParam(crow::Response &res, const crow::Request &req, + uint64_t &skip) +{ + char *skipParam = req.urlParams.get("$skip"); + if (skipParam != nullptr) + { + char *ptr = nullptr; + skip = std::strtoul(skipParam, &ptr, 10); + if (*skipParam == '\0' || *ptr != '\0') + { + + messages::queryParameterValueTypeError(res, std::string(skipParam), + "$skip"); + return false; + } + } + return true; +} + +static constexpr const uint64_t maxEntriesPerPage = 1000; +static bool getTopParam(crow::Response &res, const crow::Request &req, + uint64_t &top) +{ + char *topParam = req.urlParams.get("$top"); + if (topParam != nullptr) + { + char *ptr = nullptr; + top = std::strtoul(topParam, &ptr, 10); + if (*topParam == '\0' || *ptr != '\0') + { + messages::queryParameterValueTypeError(res, std::string(topParam), + "$top"); + return false; + } + if (top < 1U || top > maxEntriesPerPage) + { + + messages::queryParameterOutOfRange( + res, std::to_string(top), "$top", + "1-" + std::to_string(maxEntriesPerPage)); + return false; + } + } + return true; +} +#ifndef BMCWEB_ENABLE_REDFISH_RMC +static bool getUniqueEntryID(sd_journal *journal, std::string &entryID, + const bool firstEntry = true) +{ + int ret = 0; + static uint64_t prevTs = 0; + static int index = 0; + if (firstEntry) + { + prevTs = 0; + } + + // Get the entry timestamp + uint64_t curTs = 0; + ret = sd_journal_get_realtime_usec(journal, &curTs); + if (ret < 0) + { + BMCWEB_LOG_ERROR << "Failed to read entry timestamp: " + << strerror(-ret); + return false; + } + // If the timestamp isn't unique, increment the index + if (curTs == prevTs) + { + index++; + } + else + { + // Otherwise, reset it + index = 0; + } + // Save the timestamp + prevTs = curTs; + + entryID = std::to_string(curTs); + if (index > 0) + { + entryID += "_" + std::to_string(index); + } + return true; +} +#endif + +static bool getUniqueEntryID(const std::string &logEntry, std::string &entryID, + const bool firstEntry = true) +{ + static time_t prevTs = 0; + static int index = 0; + if (firstEntry) + { + prevTs = 0; + } + + // Get the entry timestamp + std::time_t curTs = 0; + std::tm timeStruct = {}; + std::istringstream entryStream(logEntry); + if (entryStream >> std::get_time(&timeStruct, "%Y-%m-%dT%H:%M:%S")) + { + curTs = std::mktime(&timeStruct); + } + // If the timestamp isn't unique, increment the index + if (curTs == prevTs) + { + index++; + } + else + { + // Otherwise, reset it + index = 0; + } + // Save the timestamp + prevTs = curTs; + + entryID = std::to_string(curTs); + if (index > 0) + { + entryID += "_" + std::to_string(index); + } + return true; +} +#ifndef BMCWEB_ENABLE_REDFISH_RMC +static bool getTimestampFromID(crow::Response &res, const std::string &entryID, + uint64_t ×tamp, uint64_t &index) +{ + if (entryID.empty()) + { + return false; + } + // Convert the unique ID back to a timestamp to find the entry + std::string_view tsStr(entryID); + + auto underscorePos = tsStr.find("_"); + if (underscorePos != tsStr.npos) + { + // Timestamp has an index + tsStr.remove_suffix(tsStr.size() - underscorePos); + std::string_view indexStr(entryID); + indexStr.remove_prefix(underscorePos + 1); + std::size_t pos; + try + { + index = std::stoul(std::string(indexStr), &pos); + } + catch (std::invalid_argument &) + { + messages::resourceMissingAtURI(res, entryID); + return false; + } + catch (std::out_of_range &) + { + messages::resourceMissingAtURI(res, entryID); + return false; + } + if (pos != indexStr.size()) + { + messages::resourceMissingAtURI(res, entryID); + return false; + } + } + // Timestamp has no index + std::size_t pos; + try + { + timestamp = std::stoull(std::string(tsStr), &pos); + } + catch (std::invalid_argument &) + { + messages::resourceMissingAtURI(res, entryID); + return false; + } + catch (std::out_of_range &) + { + messages::resourceMissingAtURI(res, entryID); + return false; + } + if (pos != tsStr.size()) + { + messages::resourceMissingAtURI(res, entryID); + return false; + } + return true; +} +#endif + +static bool + getRedfishLogFiles(std::vector &redfishLogFiles) +{ + static const std::filesystem::path redfishLogDir = "/var/log"; + static const std::string redfishLogFilename = "redfish"; + + // Loop through the directory looking for redfish log files + for (const std::filesystem::directory_entry &dirEnt : + std::filesystem::directory_iterator(redfishLogDir)) + { + // If we find a redfish log file, save the path + std::string filename = dirEnt.path().filename(); + if (boost::starts_with(filename, redfishLogFilename)) + { + redfishLogFiles.emplace_back(redfishLogDir / filename); + } + } + // As the log files rotate, they are appended with a ".#" that is higher for + // the older logs. Since we don't expect more than 10 log files, we + // can just sort the list to get them in order from newest to oldest + std::sort(redfishLogFiles.begin(), redfishLogFiles.end()); + + return !redfishLogFiles.empty(); +} + +class SystemLogServiceCollection : public Node +{ + public: + template + SystemLogServiceCollection(CrowApp &app) : + Node(app, "/redfish/v1/Systems/system/LogServices/") + { + entityPrivileges = { + {boost::beast::http::verb::get, {{"Login"}}}, + {boost::beast::http::verb::head, {{"Login"}}}, + {boost::beast::http::verb::patch, {{"ConfigureManager"}}}, + {boost::beast::http::verb::put, {{"ConfigureManager"}}}, + {boost::beast::http::verb::delete_, {{"ConfigureManager"}}}, + {boost::beast::http::verb::post, {{"ConfigureManager"}}}}; + } + + private: + /** + * Functions triggers appropriate requests on DBus + */ + void doGet(crow::Response &res, const crow::Request &req, + const std::vector ¶ms) override + { + std::shared_ptr asyncResp = std::make_shared(res); + // Collections don't include the static data added by SubRoute because + // it has a duplicate entry for members + asyncResp->res.jsonValue["@odata.type"] = + "#LogServiceCollection.LogServiceCollection"; + asyncResp->res.jsonValue["@odata.context"] = + "/redfish/v1/$metadata#LogServiceCollection.LogServiceCollection"; + asyncResp->res.jsonValue["@odata.id"] = + "/redfish/v1/Systems/system/LogServices"; + asyncResp->res.jsonValue["Name"] = "System Log Services Collection"; + asyncResp->res.jsonValue["Description"] = + "Collection of LogServices for this Computer System"; + nlohmann::json &logServiceArray = asyncResp->res.jsonValue["Members"]; + logServiceArray = nlohmann::json::array(); + logServiceArray.push_back( + {{"@odata.id", "/redfish/v1/Systems/system/LogServices/EventLog"}}); +#ifdef BMCWEB_ENABLE_REDFISH_CPU_LOG + logServiceArray.push_back( + {{ "@odata.id", + "/redfish/v1/Systems/system/LogServices/Crashdump" }}); +#endif + asyncResp->res.jsonValue["Members@odata.count"] = + logServiceArray.size(); + } +}; + +class EventLogService : public Node +{ + public: + template + EventLogService(CrowApp &app) : + Node(app, "/redfish/v1/Systems/system/LogServices/EventLog/") + { + entityPrivileges = { + {boost::beast::http::verb::get, {{"Login"}}}, + {boost::beast::http::verb::head, {{"Login"}}}, + {boost::beast::http::verb::patch, {{"ConfigureManager"}}}, + {boost::beast::http::verb::put, {{"ConfigureManager"}}}, + {boost::beast::http::verb::delete_, {{"ConfigureManager"}}}, + {boost::beast::http::verb::post, {{"ConfigureManager"}}}}; + } + + private: + void doGet(crow::Response &res, const crow::Request &req, + const std::vector ¶ms) override + { + std::shared_ptr asyncResp = std::make_shared(res); + + asyncResp->res.jsonValue["@odata.id"] = + "/redfish/v1/Systems/system/LogServices/EventLog"; + asyncResp->res.jsonValue["@odata.type"] = + "#LogService.v1_1_0.LogService"; + asyncResp->res.jsonValue["@odata.context"] = + "/redfish/v1/$metadata#LogService.LogService"; + asyncResp->res.jsonValue["Name"] = "Event Log Service"; + asyncResp->res.jsonValue["Description"] = "System Event Log Service"; + asyncResp->res.jsonValue["Id"] = "Event Log"; + asyncResp->res.jsonValue["OverWritePolicy"] = "WrapsWhenFull"; + asyncResp->res.jsonValue["Entries"] = { + {"@odata.id", + "/redfish/v1/Systems/system/LogServices/EventLog/Entries"}}; + asyncResp->res.jsonValue["Actions"]["#LogService.ClearLog"] = { + + {"target", "/redfish/v1/Systems/system/LogServices/EventLog/" + "Actions/LogService.ClearLog"}}; + } +}; + +class JournalEventLogClear : public Node +{ + public: + JournalEventLogClear(CrowApp &app) : + Node(app, "/redfish/v1/Systems/system/LogServices/EventLog/Actions/" + "LogService.ClearLog/") + { + entityPrivileges = { + {boost::beast::http::verb::get, {{"Login"}}}, + {boost::beast::http::verb::head, {{"Login"}}}, + {boost::beast::http::verb::patch, {{"ConfigureComponents"}}}, + {boost::beast::http::verb::put, {{"ConfigureComponents"}}}, + {boost::beast::http::verb::delete_, {{"ConfigureComponents"}}}, + {boost::beast::http::verb::post, {{"ConfigureComponents"}}}}; + } + + private: + void doPost(crow::Response &res, const crow::Request &req, + const std::vector ¶ms) override + { + std::shared_ptr asyncResp = std::make_shared(res); + + // Clear the EventLog by deleting the log files + std::vector redfishLogFiles; + if (getRedfishLogFiles(redfishLogFiles)) + { + for (const std::filesystem::path &file : redfishLogFiles) + { + std::error_code ec; + std::filesystem::remove(file, ec); + } + } + + // Reload rsyslog so it knows to start new log files + crow::connections::systemBus->async_method_call( + [asyncResp](const boost::system::error_code ec) { + if (ec) + { + BMCWEB_LOG_ERROR << "Failed to reload rsyslog: " << ec; + messages::internalError(asyncResp->res); + return; + } + + messages::success(asyncResp->res); + }, + "org.freedesktop.systemd1", "/org/freedesktop/systemd1", + "org.freedesktop.systemd1.Manager", "ReloadUnit", "rsyslog.service", + "replace"); + } +}; + +static int fillEventLogEntryJson(const std::string &logEntryID, + const std::string logEntry, + nlohmann::json &logEntryJson) +{ + // The redfish log format is " ," + // First get the Timestamp + size_t space = logEntry.find_first_of(" "); + if (space == std::string::npos) + { + return 1; + } + std::string timestamp = logEntry.substr(0, space); + // Then get the log contents + size_t entryStart = logEntry.find_first_not_of(" ", space); + if (entryStart == std::string::npos) + { + return 1; + } + std::string_view entry(logEntry); + entry.remove_prefix(entryStart); + // Use split to separate the entry into its fields + std::vector logEntryFields; + boost::split(logEntryFields, entry, boost::is_any_of(","), + boost::token_compress_on); + // We need at least a MessageId to be valid + if (logEntryFields.size() < 1) + { + return 1; + } + std::string &messageID = logEntryFields[0]; + + // Get the Message from the MessageRegistry + const message_registries::Message *message = + message_registries::getMessage(messageID); + + std::string msg; + std::string severity; + if (message != nullptr) + { + msg = message->message; + severity = message->severity; + } + + // Get the MessageArgs from the log if there are any + boost::beast::span messageArgs; + if (logEntryFields.size() > 1) + { + std::string &messageArgsStart = logEntryFields[1]; + // If the first string is empty, assume there are no MessageArgs + std::size_t messageArgsSize = 0; + if (!messageArgsStart.empty()) + { + messageArgsSize = logEntryFields.size() - 1; + } + + messageArgs = boost::beast::span(&messageArgsStart, messageArgsSize); + + // Fill the MessageArgs into the Message + int i = 0; + for (const std::string &messageArg : messageArgs) + { + std::string argStr = "%" + std::to_string(++i); + size_t argPos = msg.find(argStr); + if (argPos != std::string::npos) + { + msg.replace(argPos, argStr.length(), messageArg); + } + } + } + + // Get the Created time from the timestamp. The log timestamp is in RFC3339 + // format which matches the Redfish format except for the fractional seconds + // between the '.' and the '+', so just remove them. + std::size_t dot = timestamp.find_first_of("."); + std::size_t plus = timestamp.find_first_of("+"); + if (dot != std::string::npos && plus != std::string::npos) + { + timestamp.erase(dot, plus - dot); + } + + // Fill in the log entry with the gathered data + logEntryJson = { + {"@odata.type", "#LogEntry.v1_4_0.LogEntry"}, + {"@odata.context", "/redfish/v1/$metadata#LogEntry.LogEntry"}, + {"@odata.id", + "/redfish/v1/Systems/system/LogServices/EventLog/Entries/" + + logEntryID}, + {"Name", "System Event Log Entry"}, + {"Id", logEntryID}, + {"Message", std::move(msg)}, + {"MessageId", std::move(messageID)}, + {"MessageArgs", std::move(messageArgs)}, + {"EntryType", "Event"}, + {"Severity", std::move(severity)}, + {"Created", std::move(timestamp)}}; + return 0; +} + +class JournalEventLogEntryCollection : public Node +{ + public: + template + JournalEventLogEntryCollection(CrowApp &app) : + Node(app, "/redfish/v1/Systems/system/LogServices/EventLog/Entries/") + { + entityPrivileges = { + {boost::beast::http::verb::get, {{"Login"}}}, + {boost::beast::http::verb::head, {{"Login"}}}, + {boost::beast::http::verb::patch, {{"ConfigureManager"}}}, + {boost::beast::http::verb::put, {{"ConfigureManager"}}}, + {boost::beast::http::verb::delete_, {{"ConfigureManager"}}}, + {boost::beast::http::verb::post, {{"ConfigureManager"}}}}; + } + + private: + void doGet(crow::Response &res, const crow::Request &req, + const std::vector ¶ms) override + { + std::shared_ptr asyncResp = std::make_shared(res); + uint64_t skip = 0; + uint64_t top = maxEntriesPerPage; // Show max entries by default + if (!getSkipParam(asyncResp->res, req, skip)) + { + return; + } + if (!getTopParam(asyncResp->res, req, top)) + { + return; + } + // Collections don't include the static data added by SubRoute because + // it has a duplicate entry for members + asyncResp->res.jsonValue["@odata.type"] = + "#LogEntryCollection.LogEntryCollection"; + asyncResp->res.jsonValue["@odata.context"] = + "/redfish/v1/$metadata#LogEntryCollection.LogEntryCollection"; + asyncResp->res.jsonValue["@odata.id"] = + "/redfish/v1/Systems/system/LogServices/EventLog/Entries"; + asyncResp->res.jsonValue["Name"] = "System Event Log Entries"; + asyncResp->res.jsonValue["Description"] = + "Collection of System Event Log Entries"; + + nlohmann::json &logEntryArray = asyncResp->res.jsonValue["Members"]; + logEntryArray = nlohmann::json::array(); + // Go through the log files and create a unique ID for each entry + std::vector redfishLogFiles; + getRedfishLogFiles(redfishLogFiles); + uint64_t entryCount = 0; + std::string logEntry; + + // Oldest logs are in the last file, so start there and loop backwards + for (auto it = redfishLogFiles.rbegin(); it < redfishLogFiles.rend(); + it++) + { + std::ifstream logStream(*it); + if (!logStream.is_open()) + { + continue; + } + + // Reset the unique ID on the first entry + bool firstEntry = true; + while (std::getline(logStream, logEntry)) + { + entryCount++; + // Handle paging using skip (number of entries to skip from the + // start) and top (number of entries to display) + if (entryCount <= skip || entryCount > skip + top) + { + continue; + } + + std::string idStr; + if (!getUniqueEntryID(logEntry, idStr, firstEntry)) + { + continue; + } + + if (firstEntry) + { + firstEntry = false; + } + + logEntryArray.push_back({}); + nlohmann::json &bmcLogEntry = logEntryArray.back(); + if (fillEventLogEntryJson(idStr, logEntry, bmcLogEntry) != 0) + { + messages::internalError(asyncResp->res); + return; + } + } + } + asyncResp->res.jsonValue["Members@odata.count"] = entryCount; + if (skip + top < entryCount) + { + asyncResp->res.jsonValue["Members@odata.nextLink"] = + "/redfish/v1/Systems/system/LogServices/EventLog/" + "Entries?$skip=" + + std::to_string(skip + top); + } + } +}; + +class JournalEventLogEntry : public Node +{ + public: + JournalEventLogEntry(CrowApp &app) : + Node(app, + "/redfish/v1/Systems/system/LogServices/EventLog/Entries//", + std::string()) + { + entityPrivileges = { + {boost::beast::http::verb::get, {{"Login"}}}, + {boost::beast::http::verb::head, {{"Login"}}}, + {boost::beast::http::verb::patch, {{"ConfigureManager"}}}, + {boost::beast::http::verb::put, {{"ConfigureManager"}}}, + {boost::beast::http::verb::delete_, {{"ConfigureManager"}}}, + {boost::beast::http::verb::post, {{"ConfigureManager"}}}}; + } + + private: + void doGet(crow::Response &res, const crow::Request &req, + const std::vector ¶ms) override + { + std::shared_ptr asyncResp = std::make_shared(res); + if (params.size() != 1) + { + messages::internalError(asyncResp->res); + return; + } + const std::string &targetID = params[0]; + + // Go through the log files and check the unique ID for each entry to + // find the target entry + std::vector redfishLogFiles; + getRedfishLogFiles(redfishLogFiles); + std::string logEntry; + + // Oldest logs are in the last file, so start there and loop backwards + for (auto it = redfishLogFiles.rbegin(); it < redfishLogFiles.rend(); + it++) + { + std::ifstream logStream(*it); + if (!logStream.is_open()) + { + continue; + } + + // Reset the unique ID on the first entry + bool firstEntry = true; + while (std::getline(logStream, logEntry)) + { + std::string idStr; + if (!getUniqueEntryID(logEntry, idStr, firstEntry)) + { + continue; + } + + if (firstEntry) + { + firstEntry = false; + } + + if (idStr == targetID) + { + if (fillEventLogEntryJson(idStr, logEntry, + asyncResp->res.jsonValue) != 0) + { + messages::internalError(asyncResp->res); + return; + } + return; + } + } + } + // Requested ID was not found + messages::resourceMissingAtURI(asyncResp->res, targetID); + } +}; + +class DBusEventLogEntryCollection : public Node +{ + public: + template + DBusEventLogEntryCollection(CrowApp &app) : + Node(app, "/redfish/v1/Systems/system/LogServices/EventLog/Entries/") + { + entityPrivileges = { + {boost::beast::http::verb::get, {{"Login"}}}, + {boost::beast::http::verb::head, {{"Login"}}}, + {boost::beast::http::verb::patch, {{"ConfigureManager"}}}, + {boost::beast::http::verb::put, {{"ConfigureManager"}}}, + {boost::beast::http::verb::delete_, {{"ConfigureManager"}}}, + {boost::beast::http::verb::post, {{"ConfigureManager"}}}}; + } + + private: + void doGet(crow::Response &res, const crow::Request &req, + const std::vector ¶ms) override + { + std::shared_ptr asyncResp = std::make_shared(res); + + // Collections don't include the static data added by SubRoute because + // it has a duplicate entry for members + asyncResp->res.jsonValue["@odata.type"] = + "#LogEntryCollection.LogEntryCollection"; + asyncResp->res.jsonValue["@odata.context"] = + "/redfish/v1/$metadata#LogEntryCollection.LogEntryCollection"; + asyncResp->res.jsonValue["@odata.id"] = + "/redfish/v1/Systems/system/LogServices/EventLog/Entries"; + asyncResp->res.jsonValue["Name"] = "System Event Log Entries"; + asyncResp->res.jsonValue["Description"] = + "Collection of System Event Log Entries"; + + // DBus implementation of EventLog/Entries + // Make call to Logging Service to find all log entry objects + crow::connections::systemBus->async_method_call( + [asyncResp](const boost::system::error_code ec, + GetManagedObjectsType &resp) { + if (ec) + { + // TODO Handle for specific error code + BMCWEB_LOG_ERROR + << "getLogEntriesIfaceData resp_handler got error " + << ec; + messages::internalError(asyncResp->res); + return; + } + nlohmann::json &entriesArray = + asyncResp->res.jsonValue["Members"]; + entriesArray = nlohmann::json::array(); + for (auto &objectPath : resp) + { + for (auto &interfaceMap : objectPath.second) + { + if (interfaceMap.first != + "xyz.openbmc_project.Logging.Entry") + { + BMCWEB_LOG_DEBUG << "Bailing early on " + << interfaceMap.first; + continue; + } + entriesArray.push_back({}); + nlohmann::json &thisEntry = entriesArray.back(); + uint32_t *id = nullptr; + std::time_t timestamp{}; + std::string *severity = nullptr; + std::string *message = nullptr; + for (auto &propertyMap : interfaceMap.second) + { + if (propertyMap.first == "Id") + { + id = sdbusplus::message::variant_ns::get_if< + uint32_t>(&propertyMap.second); + if (id == nullptr) + { + messages::propertyMissing(asyncResp->res, + "Id"); + } + } + else if (propertyMap.first == "Timestamp") + { + const uint64_t *millisTimeStamp = + std::get_if(&propertyMap.second); + if (millisTimeStamp == nullptr) + { + messages::propertyMissing(asyncResp->res, + "Timestamp"); + continue; + } + // Retrieve Created property with format: + // yyyy-mm-ddThh:mm:ss + std::chrono::milliseconds chronoTimeStamp( + *millisTimeStamp); + timestamp = std::chrono::duration_cast< + std::chrono::duration>( + chronoTimeStamp) + .count(); + } + else if (propertyMap.first == "Severity") + { + severity = std::get_if( + &propertyMap.second); + if (severity == nullptr) + { + messages::propertyMissing(asyncResp->res, + "Severity"); + } + } + else if (propertyMap.first == "Message") + { + message = std::get_if( + &propertyMap.second); + if (message == nullptr) + { + messages::propertyMissing(asyncResp->res, + "Message"); + } + } + } + thisEntry = { + {"@odata.type", "#LogEntry.v1_4_0.LogEntry"}, + {"@odata.context", "/redfish/v1/" + "$metadata#LogEntry.LogEntry"}, + {"@odata.id", + "/redfish/v1/Systems/system/LogServices/EventLog/" + "Entries/" + + std::to_string(*id)}, + {"Name", "System Event Log Entry"}, + {"Id", std::to_string(*id)}, + {"Message", *message}, + {"EntryType", "Event"}, + {"Severity", + translateSeverityDbusToRedfish(*severity)}, + {"Created", crow::utility::getDateTime(timestamp)}}; + } + } + std::sort(entriesArray.begin(), entriesArray.end(), + [](const nlohmann::json &left, + const nlohmann::json &right) { + return (left["Id"] <= right["Id"]); + }); + asyncResp->res.jsonValue["Members@odata.count"] = + entriesArray.size(); + }, + "xyz.openbmc_project.Logging", "/xyz/openbmc_project/logging", + "org.freedesktop.DBus.ObjectManager", "GetManagedObjects"); + } +}; + +class DBusEventLogEntry : public Node +{ + public: + DBusEventLogEntry(CrowApp &app) : + Node(app, + "/redfish/v1/Systems/system/LogServices/EventLog/Entries//", + std::string()) + { + entityPrivileges = { + {boost::beast::http::verb::get, {{"Login"}}}, + {boost::beast::http::verb::head, {{"Login"}}}, + {boost::beast::http::verb::patch, {{"ConfigureManager"}}}, + {boost::beast::http::verb::put, {{"ConfigureManager"}}}, + {boost::beast::http::verb::delete_, {{"ConfigureManager"}}}, + {boost::beast::http::verb::post, {{"ConfigureManager"}}}}; + } + + private: + void doGet(crow::Response &res, const crow::Request &req, + const std::vector ¶ms) override + { + std::shared_ptr asyncResp = std::make_shared(res); + if (params.size() != 1) + { + messages::internalError(asyncResp->res); + return; + } + const std::string &entryID = params[0]; + + // DBus implementation of EventLog/Entries + // Make call to Logging Service to find all log entry objects + crow::connections::systemBus->async_method_call( + [asyncResp, entryID](const boost::system::error_code ec, + GetManagedPropertyType &resp) { + if (ec) + { + BMCWEB_LOG_ERROR + << "EventLogEntry (DBus) resp_handler got error " << ec; + messages::internalError(asyncResp->res); + return; + } + uint32_t *id = nullptr; + std::time_t timestamp{}; + std::string *severity = nullptr; + std::string *message = nullptr; + for (auto &propertyMap : resp) + { + if (propertyMap.first == "Id") + { + id = std::get_if(&propertyMap.second); + if (id == nullptr) + { + messages::propertyMissing(asyncResp->res, "Id"); + } + } + else if (propertyMap.first == "Timestamp") + { + const uint64_t *millisTimeStamp = + std::get_if(&propertyMap.second); + if (millisTimeStamp == nullptr) + { + messages::propertyMissing(asyncResp->res, + "Timestamp"); + continue; + } + // Retrieve Created property with format: + // yyyy-mm-ddThh:mm:ss + std::chrono::milliseconds chronoTimeStamp( + *millisTimeStamp); + timestamp = + std::chrono::duration_cast< + std::chrono::duration>(chronoTimeStamp) + .count(); + } + else if (propertyMap.first == "Severity") + { + severity = + std::get_if(&propertyMap.second); + if (severity == nullptr) + { + messages::propertyMissing(asyncResp->res, + "Severity"); + } + } + else if (propertyMap.first == "Message") + { + message = std::get_if(&propertyMap.second); + if (message == nullptr) + { + messages::propertyMissing(asyncResp->res, + "Message"); + } + } + } + if (id == nullptr || message == nullptr || severity == nullptr) + { + return; + } + asyncResp->res.jsonValue = { + {"@odata.type", "#LogEntry.v1_4_0.LogEntry"}, + {"@odata.context", "/redfish/v1/" + "$metadata#LogEntry.LogEntry"}, + {"@odata.id", + "/redfish/v1/Systems/system/LogServices/EventLog/" + "Entries/" + + std::to_string(*id)}, + {"Name", "System Event Log Entry"}, + {"Id", std::to_string(*id)}, + {"Message", *message}, + {"EntryType", "Event"}, + {"Severity", translateSeverityDbusToRedfish(*severity)}, + {"Created", crow::utility::getDateTime(timestamp)}}; + }, + "xyz.openbmc_project.Logging", + "/xyz/openbmc_project/logging/entry/" + entryID, + "org.freedesktop.DBus.Properties", "GetAll", + "xyz.openbmc_project.Logging.Entry"); + } + + void doDelete(crow::Response &res, const crow::Request &req, + const std::vector ¶ms) override + { + + BMCWEB_LOG_DEBUG << "Do delete single event entries."; + + auto asyncResp = std::make_shared(res); + + if (params.size() != 1) + { + messages::internalError(asyncResp->res); + return; + } + std::string entryID = params[0]; + + dbus::utility::escapePathForDbus(entryID); + + // Process response from Logging service. + auto respHandler = [asyncResp](const boost::system::error_code ec) { + BMCWEB_LOG_DEBUG << "EventLogEntry (DBus) doDelete callback: Done"; + if (ec) + { + // TODO Handle for specific error code + BMCWEB_LOG_ERROR + << "EventLogEntry (DBus) doDelete respHandler got error " + << ec; + asyncResp->res.result( + boost::beast::http::status::internal_server_error); + return; + } + + asyncResp->res.result(boost::beast::http::status::ok); + }; + + // Make call to Logging service to request Delete Log + crow::connections::systemBus->async_method_call( + respHandler, "xyz.openbmc_project.Logging", + "/xyz/openbmc_project/logging/entry/" + entryID, + "xyz.openbmc_project.Object.Delete", "Delete"); + } +}; + +class BMCLogServiceCollection : public Node +{ + public: + template + BMCLogServiceCollection(CrowApp &app) : +#ifndef BMCWEB_ENABLE_REDFISH_RMC + Node(app, "/redfish/v1/Managers/bmc/LogServices/") +#else + Node(app, "/redfish/v1/Managers/rmc/LogServices/") +#endif // !BMCWEB_ENABLE_REDFISH_RMC + + { + entityPrivileges = { + {boost::beast::http::verb::get, {{"Login"}}}, + {boost::beast::http::verb::head, {{"Login"}}}, + {boost::beast::http::verb::patch, {{"ConfigureManager"}}}, + {boost::beast::http::verb::put, {{"ConfigureManager"}}}, + {boost::beast::http::verb::delete_, {{"ConfigureManager"}}}, + {boost::beast::http::verb::post, {{"ConfigureManager"}}}}; + } + + private: + /** + * Functions triggers appropriate requests on DBus + */ + void doGet(crow::Response &res, const crow::Request &req, + const std::vector ¶ms) override + { + std::shared_ptr asyncResp = std::make_shared(res); + // Collections don't include the static data added by SubRoute because + // it has a duplicate entry for members + asyncResp->res.jsonValue["@odata.type"] = + "#LogServiceCollection.LogServiceCollection"; + asyncResp->res.jsonValue["@odata.context"] = + "/redfish/v1/$metadata#LogServiceCollection.LogServiceCollection"; + nlohmann::json &logServiceArray = asyncResp->res.jsonValue["Members"]; + logServiceArray = nlohmann::json::array(); +// #ifdef BMCWEB_ENABLE_REDFISH_BMC_JOURNAL +// logServiceArray.push_back( +// {{"@odata.id", "/redfish/v1/Managers/bmc/LogServices/Journal"}}); +// #endif + +#ifndef BMCWEB_ENABLE_REDFISH_RMC + asyncResp->res.jsonValue["@odata.id"] = + "/redfish/v1/Managers/bmc/LogServices"; + asyncResp->res.jsonValue["Name"] = "Open BMC Log Services Collection"; + asyncResp->res.jsonValue["Description"] = + "Collection of LogServices for this Manager"; +#else + asyncResp->res.jsonValue["@odata.id"] = + "/redfish/v1/Managers/rmc/LogServices"; + asyncResp->res.jsonValue["Name"] = "Open RMC Log Services Collection"; + asyncResp->res.jsonValue["Description"] = + "Collection of LogServices for this Manager"; + logServiceArray.push_back({{"@odata.id", "/redfish/v1/Managers/rmc/LogServices/LogService"}}); +#endif +// #ifdef BMCWEB_ENABLE_REDFISH_BMC_JOURNAL +// asyncResp->res.jsonValue["@odata.id"] = +// "/redfish/v1/Managers/rmc/LogServices"; +// asyncResp->res.jsonValue["Name"] = "Open RMC Log Services Collection"; +// asyncResp->res.jsonValue["Description"] = +// "Collection of LogServices for this Manager"; +// logServiceArray.push_back( +// {{ "@odata.id", +// "/redfish/v1/Managers/rmc/LogServices/LogService" }}); +// #endif + asyncResp->res.jsonValue["Members@odata.count"] = + logServiceArray.size(); + } +}; + +class BMCJournalLogService : public Node +{ + public: + template + BMCJournalLogService(CrowApp &app) : +#ifndef BMCWEB_ENABLE_REDFISH_RMC + Node(app, "/redfish/v1/Managers/bmc/LogServices/Journal/") +#else + Node(app, "/redfish/v1/Managers/rmc/LogServices/LogService/") +#endif // !BMCWEB_ENABLE_REDFISH_RMC + { + entityPrivileges = { + {boost::beast::http::verb::get, {{"Login"}}}, + {boost::beast::http::verb::head, {{"Login"}}}, + {boost::beast::http::verb::patch, {{"ConfigureManager"}}}, + {boost::beast::http::verb::put, {{"ConfigureManager"}}}, + {boost::beast::http::verb::delete_, {{"ConfigureManager"}}}, + {boost::beast::http::verb::post, {{"ConfigureManager"}}}}; + } + + private: + void doGet(crow::Response &res, const crow::Request &req, + const std::vector ¶ms) override + { + std::shared_ptr asyncResp = std::make_shared(res); +#ifndef BMCWEB_ENABLE_REDFISH_RMC + asyncResp->res.jsonValue["@odata.type"] = + "#LogService.v1_1_0.LogService"; + asyncResp->res.jsonValue["@odata.id"] = + "/redfish/v1/Managers/bmc/LogServices/Journal"; + asyncResp->res.jsonValue["@odata.context"] = + "/redfish/v1/$metadata#LogService.LogService"; + asyncResp->res.jsonValue["Name"] = "Open BMC Journal Log Service"; + asyncResp->res.jsonValue["Description"] = "BMC Journal Log Service"; + asyncResp->res.jsonValue["Id"] = "BMC Journal"; + asyncResp->res.jsonValue["OverWritePolicy"] = "WrapsWhenFull"; + + asyncResp->res.jsonValue["Entries"] = { + {"@odata.id", + "/redfish/v1/Managers/bmc/LogServices/Journal/Entries"}}; +#else + asyncResp->res.jsonValue["@odata.type"] = + "#LogService.v1_1_0.LogService"; + asyncResp->res.jsonValue["@odata.id"] = + "/redfish/v1/Managers/rmc/LogServices/LogService"; + asyncResp->res.jsonValue["@odata.context"] = + "/redfish/v1/$metadata#LogService.LogService"; + asyncResp->res.jsonValue["Name"] = "Open RMC LogService Log Service"; + asyncResp->res.jsonValue["Description"] = "RMC LogService Log Service"; + asyncResp->res.jsonValue["Id"] = "RMC LogService"; + asyncResp->res.jsonValue["OverWritePolicy"] = "WrapsWhenFull"; + asyncResp->res.jsonValue["Entries"] = { + {"@odata.id", + "/redfish/v1/Managers/rmc/LogServices/LogService/Entries"}}; +#endif + } +}; +#ifndef BMCWEB_ENABLE_REDFISH_RMC +static int fillBMCJournalLogEntryJson(const std::string &bmcJournalLogEntryID, + sd_journal *journal, + nlohmann::json &bmcJournalLogEntryJson) +{ + // Get the Log Entry contents + int ret = 0; + + std::string_view msg; + ret = getJournalMetadata(journal, "MESSAGE", msg); + if (ret < 0) + { + BMCWEB_LOG_ERROR << "Failed to read MESSAGE field: " << strerror(-ret); +#ifndef BMCWEB_ENABLE_REDFISH_RMC + return 1; +#endif + } + + // Get the severity from the PRIORITY field + long int severity = 8; // Default to an invalid priority + ret = getJournalMetadata(journal, "PRIORITY", 10, severity); + if (ret < 0) + { + BMCWEB_LOG_ERROR << "Failed to read PRIORITY field: " << strerror(-ret); + } + + // Get the Created time from the timestamp + std::string entryTimeStr; + if (!getEntryTimestamp(journal, entryTimeStr)) + { +#ifndef BMCWEB_ENABLE_REDFISH_RMC + return 1; +#endif + } + +#ifndef BMCWEB_ENABLE_REDFISH_RMC + // Fill in the log entry with the gathered data + bmcJournalLogEntryJson = { + {"@odata.type", "#LogEntry.v1_4_0.LogEntry"}, + {"@odata.context", "/redfish/v1/$metadata#LogEntry.LogEntry"}, + {"@odata.id", "/redfish/v1/Managers/bmc/LogServices/Journal/Entries/" + + bmcJournalLogEntryID}, + {"Name", "BMC Journal Entry"}, + {"Id", bmcJournalLogEntryID}, + {"Message", msg}, + {"EntryType", "Oem"}, + {"Severity", + severity <= 2 ? "Critical" : severity <= 4 ? "Warning" : "OK"}, + {"OemRecordFormat", "BMC Journal Entry"}, + {"Created", std::move(entryTimeStr)}}; +#else +// Fill in the log entry with the gathered data + bmcJournalLogEntryJson = { + {"@odata.type", "#LogEntry.v1_4_0.LogEntry"}, + {"@odata.context", "/redfish/v1/$metadata#LogEntry.LogEntry"}, + {"@odata.id", "/redfish/v1/Managers/rmc/LogServices/LogService/Entries/" + + bmcJournalLogEntryID}, + {"Name", "BMC Journal Entry"}, + {"Id", bmcJournalLogEntryID}, + {"Message", msg}, + {"EntryType", "Oem"}, + {"Severity", + severity <= 2 ? "Critical" : severity <= 4 ? "Warning" : "OK"}, + {"OemRecordFormat", "BMC Journal Entry"}, + {"Created", std::move(entryTimeStr)}}; +#endif + + return 0; +} +#endif + +class BMCJournalLogEntryCollection : public Node +{ + public: + template + BMCJournalLogEntryCollection(CrowApp &app) : +#ifndef BMCWEB_ENABLE_REDFISH_RMC + Node(app, "/redfish/v1/Managers/bmc/LogServices/Journal/Entries/") +#else + Node(app, "/redfish/v1/Managers/rmc/LogServices/LogService/Entries/") +#endif // !BMCWEB_ENABLE_REDFISH_RMC + { + entityPrivileges = { + {boost::beast::http::verb::get, {{"Login"}}}, + {boost::beast::http::verb::head, {{"Login"}}}, + {boost::beast::http::verb::patch, {{"ConfigureManager"}}}, + {boost::beast::http::verb::put, {{"ConfigureManager"}}}, + {boost::beast::http::verb::delete_, {{"ConfigureManager"}}}, + {boost::beast::http::verb::post, {{"ConfigureManager"}}}}; + } + + private: + void doGet(crow::Response &res, const crow::Request &req, + const std::vector ¶ms) override + { + std::shared_ptr asyncResp = std::make_shared(res); + static constexpr const long maxEntriesPerPage = 1000; + uint64_t skip = 0; + uint64_t top = maxEntriesPerPage; // Show max entries by default + if (!getSkipParam(asyncResp->res, req, skip)) + { + return; + } + if (!getTopParam(asyncResp->res, req, top)) + { + return; + } +#ifndef BMCWEB_ENABLE_REDFISH_RMC + // Collections don't include the static data added by SubRoute because + // it has a duplicate entry for members + asyncResp->res.jsonValue["@odata.type"] = + "#LogEntryCollection.LogEntryCollection"; + asyncResp->res.jsonValue["@odata.id"] = + "/redfish/v1/Managers/bmc/LogServices/Journal/Entries"; + asyncResp->res.jsonValue["@odata.context"] = + "/redfish/v1/$metadata#LogEntryCollection.LogEntryCollection"; + asyncResp->res.jsonValue["@odata.id"] = + "/redfish/v1/Managers/bmc/LogServices/Journal/Entries"; + asyncResp->res.jsonValue["Name"] = "Open BMC Journal Entries"; + asyncResp->res.jsonValue["Description"] = + "Collection of BMC Journal Entries"; + asyncResp->res.jsonValue["@odata.id"] = + "/redfish/v1/Managers/bmc/LogServices/BmcLog/Entries"; + nlohmann::json &logEntryArray = asyncResp->res.jsonValue["Members"]; + logEntryArray = nlohmann::json::array(); + + // Go through the journal and use the timestamp to create a unique ID + // for each entry + sd_journal *journalTmp = nullptr; + int ret = sd_journal_open(&journalTmp, SD_JOURNAL_LOCAL_ONLY); + if (ret < 0) + { + BMCWEB_LOG_ERROR << "failed to open journal: " << strerror(-ret); + messages::internalError(asyncResp->res); + return; + } + std::unique_ptr journal( + journalTmp, sd_journal_close); + journalTmp = nullptr; + uint64_t entryCount = 0; + // Reset the unique ID on the first entry + bool firstEntry = true; + SD_JOURNAL_FOREACH(journal.get()) + { + entryCount++; + // Handle paging using skip (number of entries to skip from the + // start) and top (number of entries to display) + if (entryCount <= skip || entryCount > skip + top) + { + continue; + } + + std::string idStr; + if (!getUniqueEntryID(journal.get(), idStr, firstEntry)) + { + continue; + } + + if (firstEntry) + { + firstEntry = false; + } + + logEntryArray.push_back({}); + nlohmann::json &bmcJournalLogEntry = logEntryArray.back(); + if (fillBMCJournalLogEntryJson(idStr, journal.get(), + bmcJournalLogEntry) != 0) + { + messages::internalError(asyncResp->res); + return; + } + } + asyncResp->res.jsonValue["Members@odata.count"] = entryCount; + if (skip + top < entryCount) + { + asyncResp->res.jsonValue["Members@odata.nextLink"] = + "/redfish/v1/Managers/bmc/LogServices/Journal/Entries?$skip=" + + std::to_string(skip + top); + } +#else + // Collections don't include the static data added by SubRoute because + // it has a duplicate entry for members + asyncResp->res.jsonValue["@odata.type"] = + "#LogEntryCollection.LogEntryCollection"; + asyncResp->res.jsonValue["@odata.id"] = + "/redfish/v1/Managers/rmc/LogServices/LogService/Entries"; + asyncResp->res.jsonValue["@odata.context"] = + "/redfish/v1/$metadata#LogEntryCollection.LogEntryCollection"; + asyncResp->res.jsonValue["Name"] = "Open RMC LogService Entries"; + asyncResp->res.jsonValue["Description"] = + "Collection of RMC LogService Entries"; + nlohmann::json &logEntryArray = asyncResp->res.jsonValue["Members"]; + logEntryArray = nlohmann::json::array(); + logEntryArray.push_back( + {{"@odata.id", "/redfish/v1/Managers/rmc/LogServices/LogService/Entries/entry1"}}); + logEntryArray.push_back( + {{"@odata.id", "/redfish/v1/Managers/rmc/LogServices/LogService/Entries/entry2"}}); + asyncResp->res.jsonValue["Members@odata.count"] = logEntryArray.size(); + +#endif + } +}; + +class BMCJournalLogEntry : public Node +{ + public: + BMCJournalLogEntry(CrowApp &app) : +#ifndef BMCWEB_ENABLE_REDFISH_RMC + Node(app, "/redfish/v1/Managers/bmc/LogServices/Journal/Entries//", + std::string()) +#else + Node(app, "/redfish/v1/Managers/rmc/LogServices/LogService/Entries//", + std::string()) +#endif // !BMCWEB_ENABLE_REDFISH_RMC + + { + entityPrivileges = { + {boost::beast::http::verb::get, {{"Login"}}}, + {boost::beast::http::verb::head, {{"Login"}}}, + {boost::beast::http::verb::patch, {{"ConfigureManager"}}}, + {boost::beast::http::verb::put, {{"ConfigureManager"}}}, + {boost::beast::http::verb::delete_, {{"ConfigureManager"}}}, + {boost::beast::http::verb::post, {{"ConfigureManager"}}}}; + } + + private: + void doGet(crow::Response &res, const crow::Request &req, + const std::vector ¶ms) override + { + + std::shared_ptr asyncResp = std::make_shared(res); + if (params.size() != 1) + { + messages::internalError(asyncResp->res); + return; + } + const std::string &entryID = params[0]; +#ifndef BMCWEB_ENABLE_REDFISH_RMC + // Convert the unique ID back to a timestamp to find the entry + uint64_t ts = 0; + uint64_t index = 0; + if (!getTimestampFromID(asyncResp->res, entryID, ts, index)) + { + return; + } + + sd_journal *journalTmp = nullptr; + int ret = sd_journal_open(&journalTmp, SD_JOURNAL_LOCAL_ONLY); + if (ret < 0) + { + BMCWEB_LOG_ERROR << "failed to open journal: " << strerror(-ret); + messages::internalError(asyncResp->res); + return; + } + std::unique_ptr journal( + journalTmp, sd_journal_close); + journalTmp = nullptr; + // Go to the timestamp in the log and move to the entry at the index + // tracking the unique ID + std::string idStr; + bool firstEntry = true; + ret = sd_journal_seek_realtime_usec(journal.get(), ts); + for (uint64_t i = 0; i <= index; i++) + { + sd_journal_next(journal.get()); + if (!getUniqueEntryID(journal.get(), idStr, firstEntry)) + { + messages::internalError(asyncResp->res); + return; + } + if (firstEntry) + { + firstEntry = false; + } + } + // Confirm that the entry ID matches what was requested + if (idStr != entryID) + { + messages::resourceMissingAtURI(asyncResp->res, entryID); + return; + } + + if (fillBMCJournalLogEntryJson(entryID, journal.get(), + asyncResp->res.jsonValue) != 0) + { + messages::internalError(asyncResp->res); + return; + } +#else + asyncResp->res.jsonValue["@odata.type"] = "#LogEntry.v1_4_0.LogEntry"; + asyncResp->res.jsonValue["@odata.id"] = + "/redfish/v1/Managers/rmc/LogServices/LogService/Entries/" + entryID; + asyncResp->res.jsonValue["@odata.context"] = "/redfish/v1/$metadata#LogEntry.LogEntry"; + asyncResp->res.jsonValue["Name"] = "Open RMC LogService Entry"; + asyncResp->res.jsonValue["Id"] = entryID; + asyncResp->res.jsonValue["OemRecordFormat"] = "RMC LogService Entry"; + asyncResp->res.jsonValue["Created"] = "2019-07-23T14:44:00Z00:00"; + asyncResp->res.jsonValue["EntryType"] = "Event"; + asyncResp->res.jsonValue["MessageId"] = "Contoso.1.0.TempAssert"; + asyncResp->res.jsonValue["Message"] = "This is RMC Message"; + asyncResp->res.jsonValue["Severity"] = "OK"; + + if("entry2" == entryID) + { + asyncResp->res.jsonValue["Created"] = "2020-09-01T14:44:00Z00:00"; + asyncResp->res.jsonValue["EntryType"] = "Event"; + asyncResp->res.jsonValue["MessageId"] = "Contoso.1.0.TempAssert"; + asyncResp->res.jsonValue["Message"] = "This is RMC Message"; + asyncResp->res.jsonValue["Severity"] = "Critical"; + } + + // asyncResp->res.jsonValue["LogEntry"]["Created"] = "2012-03-07T14:44:00Z"; + // asyncResp->res.jsonValue["LogEntry"]["EntryType"] = "Event"; + // asyncResp->res.jsonValue["LogEntry"]["Message"] = "This is RMC Message"; + // asyncResp->res.jsonValue["LogEntry"]["Severity"] = "OK"; + +#endif + } +}; + +class CrashdumpService : public Node +{ + public: + template + CrashdumpService(CrowApp &app) : + Node(app, "/redfish/v1/Systems/system/LogServices/Crashdump/") + { + entityPrivileges = { + {boost::beast::http::verb::get, {{"Login"}}}, + {boost::beast::http::verb::head, {{"Login"}}}, + {boost::beast::http::verb::patch, {{"ConfigureManager"}}}, + {boost::beast::http::verb::put, {{"ConfigureManager"}}}, + {boost::beast::http::verb::delete_, {{"ConfigureManager"}}}, + {boost::beast::http::verb::post, {{"ConfigureManager"}}}}; + } + + private: + /** + * Functions triggers appropriate requests on DBus + */ + void doGet(crow::Response &res, const crow::Request &req, + const std::vector ¶ms) override + { + std::shared_ptr asyncResp = std::make_shared(res); + // Copy over the static data to include the entries added by SubRoute + asyncResp->res.jsonValue["@odata.id"] = + "/redfish/v1/Systems/system/LogServices/Crashdump"; + asyncResp->res.jsonValue["@odata.type"] = + "#LogService.v1_1_0.LogService"; + asyncResp->res.jsonValue["@odata.context"] = + "/redfish/v1/$metadata#LogService.LogService"; + asyncResp->res.jsonValue["Name"] = "Open BMC Crashdump Service"; + asyncResp->res.jsonValue["Description"] = "Crashdump Service"; + asyncResp->res.jsonValue["Id"] = "Crashdump"; + asyncResp->res.jsonValue["OverWritePolicy"] = "WrapsWhenFull"; + asyncResp->res.jsonValue["MaxNumberOfRecords"] = 3; + asyncResp->res.jsonValue["Entries"] = { + {"@odata.id", + "/redfish/v1/Systems/system/LogServices/Crashdump/Entries"}}; + asyncResp->res.jsonValue["Actions"] = { + {"#LogService.ClearLog", + {{"target", "/redfish/v1/Systems/system/LogServices/Crashdump/" + "Actions/LogService.ClearLog"}}}, + {"Oem", + {{"#Crashdump.OnDemand", + {{"target", "/redfish/v1/Systems/system/LogServices/Crashdump/" + "Actions/Oem/Crashdump.OnDemand"}}}}}}; + +#ifdef BMCWEB_ENABLE_REDFISH_RAW_PECI + asyncResp->res.jsonValue["Actions"]["Oem"].push_back( + {"#Crashdump.SendRawPeci", + { { "target", + "/redfish/v1/Systems/system/LogServices/Crashdump/" + "Actions/Oem/Crashdump.SendRawPeci" } }}); +#endif + } +}; + +class CrashdumpClear : public Node +{ + public: + CrashdumpClear(CrowApp &app) : + Node(app, "/redfish/v1/Systems/system/LogServices/Crashdump/Actions/" + "LogService.ClearLog/") + { + entityPrivileges = { + {boost::beast::http::verb::get, {{"Login"}}}, + {boost::beast::http::verb::head, {{"Login"}}}, + {boost::beast::http::verb::patch, {{"ConfigureComponents"}}}, + {boost::beast::http::verb::put, {{"ConfigureComponents"}}}, + {boost::beast::http::verb::delete_, {{"ConfigureComponents"}}}, + {boost::beast::http::verb::post, {{"ConfigureComponents"}}}}; + } + + private: + void doPost(crow::Response &res, const crow::Request &req, + const std::vector ¶ms) override + { + std::shared_ptr asyncResp = std::make_shared(res); + + crow::connections::systemBus->async_method_call( + [asyncResp](const boost::system::error_code ec, + const std::string &resp) { + if (ec) + { + messages::internalError(asyncResp->res); + return; + } + messages::success(asyncResp->res); + }, + crashdumpObject, crashdumpPath, deleteAllInterface, "DeleteAll"); + } +}; + +std::string getLogCreatedTime(const std::string &crashdump) +{ + nlohmann::json crashdumpJson = + nlohmann::json::parse(crashdump, nullptr, false); + if (crashdumpJson.is_discarded()) + { + return std::string(); + } + + nlohmann::json::const_iterator cdIt = crashdumpJson.find("crash_data"); + if (cdIt == crashdumpJson.end()) + { + return std::string(); + } + + nlohmann::json::const_iterator siIt = cdIt->find("METADATA"); + if (siIt == cdIt->end()) + { + return std::string(); + } + + nlohmann::json::const_iterator tsIt = siIt->find("timestamp"); + if (tsIt == siIt->end()) + { + return std::string(); + } + + const std::string *logTime = tsIt->get_ptr(); + if (logTime == nullptr) + { + return std::string(); + } + + std::string redfishDateTime = *logTime; + if (redfishDateTime.length() > 2) + { + redfishDateTime.insert(redfishDateTime.end() - 2, ':'); + } + + return redfishDateTime; +} + +std::string getLogFileName(const std::string &logTime) +{ + // Set the crashdump file name to "crashdump_.json" using the + // created time without the timezone info + std::string fileTime = logTime; + size_t plusPos = fileTime.rfind('+'); + if (plusPos != std::string::npos) + { + fileTime.erase(plusPos); + } + return "crashdump_" + fileTime + ".json"; +} + +static void logCrashdumpEntry(std::shared_ptr asyncResp, + const std::string &logID, + nlohmann::json &logEntryJson) +{ + auto getStoredLogCallback = [asyncResp, logID, &logEntryJson]( + const boost::system::error_code ec, + const std::variant &resp) { + if (ec) + { + BMCWEB_LOG_DEBUG << "failed to get log ec: " << ec.message(); + if (ec.value() == + boost::system::linux_error::bad_request_descriptor) + { + messages::resourceNotFound(asyncResp->res, "LogEntry", logID); + } + else + { + messages::internalError(asyncResp->res); + } + return; + } + const std::string *log = std::get_if(&resp); + if (log == nullptr) + { + messages::internalError(asyncResp->res); + return; + } + std::string logTime = getLogCreatedTime(*log); + std::string fileName = getLogFileName(logTime); + + logEntryJson = { + {"@odata.type", "#LogEntry.v1_4_0.LogEntry"}, + {"@odata.context", "/redfish/v1/$metadata#LogEntry.LogEntry"}, + {"@odata.id", + "/redfish/v1/Systems/system/LogServices/Crashdump/Entries/" + + logID}, + {"Name", "CPU Crashdump"}, + {"Id", logID}, + {"EntryType", "Oem"}, + {"OemRecordFormat", "Crashdump URI"}, + {"Message", + "/redfish/v1/Systems/system/LogServices/Crashdump/Entries/" + + logID + "/" + fileName}, + {"Created", std::move(logTime)}}; + }; + crow::connections::systemBus->async_method_call( + std::move(getStoredLogCallback), crashdumpObject, + crashdumpPath + std::string("/") + logID, + "org.freedesktop.DBus.Properties", "Get", crashdumpInterface, "Log"); +} + +class CrashdumpEntryCollection : public Node +{ + public: + template + CrashdumpEntryCollection(CrowApp &app) : + Node(app, "/redfish/v1/Systems/system/LogServices/Crashdump/Entries/") + { + entityPrivileges = { + {boost::beast::http::verb::get, {{"Login"}}}, + {boost::beast::http::verb::head, {{"Login"}}}, + {boost::beast::http::verb::patch, {{"ConfigureManager"}}}, + {boost::beast::http::verb::put, {{"ConfigureManager"}}}, + {boost::beast::http::verb::delete_, {{"ConfigureManager"}}}, + {boost::beast::http::verb::post, {{"ConfigureManager"}}}}; + } + + private: + /** + * Functions triggers appropriate requests on DBus + */ + void doGet(crow::Response &res, const crow::Request &req, + const std::vector ¶ms) override + { + std::shared_ptr asyncResp = std::make_shared(res); + // Collections don't include the static data added by SubRoute because + // it has a duplicate entry for members + auto getLogEntriesCallback = [asyncResp]( + const boost::system::error_code ec, + const std::vector &resp) { + if (ec) + { + if (ec.value() != + boost::system::errc::no_such_file_or_directory) + { + BMCWEB_LOG_DEBUG << "failed to get entries ec: " + << ec.message(); + messages::internalError(asyncResp->res); + return; + } + } + asyncResp->res.jsonValue["@odata.type"] = + "#LogEntryCollection.LogEntryCollection"; + asyncResp->res.jsonValue["@odata.id"] = + "/redfish/v1/Systems/system/LogServices/Crashdump/Entries"; + asyncResp->res.jsonValue["@odata.context"] = + "/redfish/v1/$metadata#LogEntryCollection.LogEntryCollection"; + asyncResp->res.jsonValue["Name"] = "Open BMC Crashdump Entries"; + asyncResp->res.jsonValue["Description"] = + "Collection of Crashdump Entries"; + nlohmann::json &logEntryArray = asyncResp->res.jsonValue["Members"]; + logEntryArray = nlohmann::json::array(); + std::vector logIDs; + // Get the list of log entries and build up an empty array big + // enough to hold them + for (const std::string &objpath : resp) + { + // Get the log ID + std::size_t lastPos = objpath.rfind("/"); + if (lastPos == std::string::npos) + { + continue; + } + logIDs.emplace_back(objpath.substr(lastPos + 1)); + + // Add a space for the log entry to the array + logEntryArray.push_back({}); + } + // Now go through and set up async calls to fill in the entries + size_t index = 0; + for (const std::string &logID : logIDs) + { + // Add the log entry to the array + logCrashdumpEntry(asyncResp, logID, logEntryArray[index++]); + } + asyncResp->res.jsonValue["Members@odata.count"] = + logEntryArray.size(); + }; + crow::connections::systemBus->async_method_call( + std::move(getLogEntriesCallback), + "xyz.openbmc_project.ObjectMapper", + "/xyz/openbmc_project/object_mapper", + "xyz.openbmc_project.ObjectMapper", "GetSubTreePaths", "", 0, + std::array{crashdumpInterface}); + } +}; + +class CrashdumpEntry : public Node +{ + public: + CrashdumpEntry(CrowApp &app) : + Node(app, + "/redfish/v1/Systems/system/LogServices/Crashdump/Entries//", + std::string()) + { + entityPrivileges = { + {boost::beast::http::verb::get, {{"Login"}}}, + {boost::beast::http::verb::head, {{"Login"}}}, + {boost::beast::http::verb::patch, {{"ConfigureManager"}}}, + {boost::beast::http::verb::put, {{"ConfigureManager"}}}, + {boost::beast::http::verb::delete_, {{"ConfigureManager"}}}, + {boost::beast::http::verb::post, {{"ConfigureManager"}}}}; + } + + private: + void doGet(crow::Response &res, const crow::Request &req, + const std::vector ¶ms) override + { + std::shared_ptr asyncResp = std::make_shared(res); + if (params.size() != 1) + { + messages::internalError(asyncResp->res); + return; + } + const std::string &logID = params[0]; + logCrashdumpEntry(asyncResp, logID, asyncResp->res.jsonValue); + } +}; + +class CrashdumpFile : public Node +{ + public: + CrashdumpFile(CrowApp &app) : + Node(app, + "/redfish/v1/Systems/system/LogServices/Crashdump/Entries//" + "/", + std::string(), std::string()) + { + entityPrivileges = { + {boost::beast::http::verb::get, {{"Login"}}}, + {boost::beast::http::verb::head, {{"Login"}}}, + {boost::beast::http::verb::patch, {{"ConfigureManager"}}}, + {boost::beast::http::verb::put, {{"ConfigureManager"}}}, + {boost::beast::http::verb::delete_, {{"ConfigureManager"}}}, + {boost::beast::http::verb::post, {{"ConfigureManager"}}}}; + } + + private: + void doGet(crow::Response &res, const crow::Request &req, + const std::vector ¶ms) override + { + std::shared_ptr asyncResp = std::make_shared(res); + if (params.size() != 2) + { + messages::internalError(asyncResp->res); + return; + } + const std::string &logID = params[0]; + const std::string &fileName = params[1]; + + auto getStoredLogCallback = [asyncResp, logID, fileName]( + const boost::system::error_code ec, + const std::variant &resp) { + if (ec) + { + BMCWEB_LOG_DEBUG << "failed to get log ec: " << ec.message(); + messages::internalError(asyncResp->res); + return; + } + const std::string *log = std::get_if(&resp); + if (log == nullptr) + { + messages::internalError(asyncResp->res); + return; + } + + // Verify the file name parameter is correct + if (fileName != getLogFileName(getLogCreatedTime(*log))) + { + messages::resourceMissingAtURI(asyncResp->res, fileName); + return; + } + + // Configure this to be a file download when accessed from a browser + asyncResp->res.addHeader("Content-Disposition", "attachment"); + asyncResp->res.body() = *log; + }; + crow::connections::systemBus->async_method_call( + std::move(getStoredLogCallback), crashdumpObject, + crashdumpPath + std::string("/") + logID, + "org.freedesktop.DBus.Properties", "Get", crashdumpInterface, + "Log"); + } +}; + +class OnDemandCrashdump : public Node +{ + public: + OnDemandCrashdump(CrowApp &app) : + Node(app, + "/redfish/v1/Systems/system/LogServices/Crashdump/Actions/Oem/" + "Crashdump.OnDemand/") + { + entityPrivileges = { + {boost::beast::http::verb::get, {{"Login"}}}, + {boost::beast::http::verb::head, {{"Login"}}}, + {boost::beast::http::verb::patch, {{"ConfigureManager"}}}, + {boost::beast::http::verb::put, {{"ConfigureManager"}}}, + {boost::beast::http::verb::delete_, {{"ConfigureManager"}}}, + {boost::beast::http::verb::post, {{"ConfigureManager"}}}}; + } + + private: + void doPost(crow::Response &res, const crow::Request &req, + const std::vector ¶ms) override + { + std::shared_ptr asyncResp = std::make_shared(res); + + auto generateonDemandLogCallback = + [asyncResp](const boost::system::error_code ec, + const std::string &resp) { + if (ec) + { + if (ec.value() == + boost::system::errc::operation_not_supported) + { + messages::resourceInStandby(asyncResp->res); + } + else if (ec.value() == + boost::system::errc::device_or_resource_busy) + { + messages::serviceTemporarilyUnavailable(asyncResp->res, + "60"); + } + else + { + messages::internalError(asyncResp->res); + } + return; + } + asyncResp->res.result(boost::beast::http::status::no_content); + }; + crow::connections::systemBus->async_method_call( + std::move(generateonDemandLogCallback), crashdumpObject, + crashdumpPath, crashdumpOnDemandInterface, "GenerateOnDemandLog"); + } +}; + +class SendRawPECI : public Node +{ + public: + SendRawPECI(CrowApp &app) : + Node(app, + "/redfish/v1/Systems/system/LogServices/Crashdump/Actions/Oem/" + "Crashdump.SendRawPeci/") + { + entityPrivileges = { + {boost::beast::http::verb::get, {{"ConfigureComponents"}}}, + {boost::beast::http::verb::head, {{"ConfigureComponents"}}}, + {boost::beast::http::verb::patch, {{"ConfigureComponents"}}}, + {boost::beast::http::verb::put, {{"ConfigureComponents"}}}, + {boost::beast::http::verb::delete_, {{"ConfigureComponents"}}}, + {boost::beast::http::verb::post, {{"ConfigureComponents"}}}}; + } + + private: + void doPost(crow::Response &res, const crow::Request &req, + const std::vector ¶ms) override + { + std::shared_ptr asyncResp = std::make_shared(res); + std::vector> peciCommands; + + nlohmann::json reqJson = + nlohmann::json::parse(req.body, nullptr, false); + if (reqJson.find("PECICommands") != reqJson.end()) + { + if (!json_util::readJson(req, res, "PECICommands", peciCommands)) + { + return; + } + uint32_t idx = 0; + for (auto const &cmd : peciCommands) + { + if (cmd.size() < 3) + { + std::string s("["); + for (auto const &val : cmd) + { + if (val != *cmd.begin()) + { + s += ","; + } + s += std::to_string(val); + } + s += "]"; + messages::actionParameterValueFormatError( + res, s, "PECICommands[" + std::to_string(idx) + "]", + "SendRawPeci"); + return; + } + idx++; + } + } + else + { + /* This interface is deprecated */ + uint8_t clientAddress = 0; + uint8_t readLength = 0; + std::vector peciCommand; + if (!json_util::readJson(req, res, "ClientAddress", clientAddress, + "ReadLength", readLength, "PECICommand", + peciCommand)) + { + return; + } + peciCommands.push_back({clientAddress, 0, readLength}); + peciCommands[0].insert(peciCommands[0].end(), peciCommand.begin(), + peciCommand.end()); + } + // Callback to return the Raw PECI response + auto sendRawPECICallback = + [asyncResp](const boost::system::error_code ec, + const std::vector> &resp) { + if (ec) + { + BMCWEB_LOG_DEBUG << "failed to process PECI commands ec: " + << ec.message(); + messages::internalError(asyncResp->res); + return; + } + asyncResp->res.jsonValue = {{"Name", "PECI Command Response"}, + {"PECIResponse", resp}}; + }; + // Call the SendRawPECI command with the provided data + crow::connections::systemBus->async_method_call( + std::move(sendRawPECICallback), crashdumpObject, crashdumpPath, + crashdumpRawPECIInterface, "SendRawPeci", peciCommands); + } +}; + +/** + * DBusLogServiceActionsClear class supports POST method for ClearLog action. + */ +class DBusLogServiceActionsClear : public Node +{ + public: + DBusLogServiceActionsClear(CrowApp &app) : + Node(app, "/redfish/v1/Systems/system/LogServices/EventLog/Actions/" + "LogService.ClearLog") + { + entityPrivileges = { + {boost::beast::http::verb::get, {{"Login"}}}, + {boost::beast::http::verb::head, {{"Login"}}}, + {boost::beast::http::verb::patch, {{"ConfigureManager"}}}, + {boost::beast::http::verb::put, {{"ConfigureManager"}}}, + {boost::beast::http::verb::delete_, {{"ConfigureManager"}}}, + {boost::beast::http::verb::post, {{"ConfigureManager"}}}}; + } + + private: + /** + * Function handles POST method request. + * The Clear Log actions does not require any parameter.The action deletes + * all entries found in the Entries collection for this Log Service. + */ + void doPost(crow::Response &res, const crow::Request &req, + const std::vector ¶ms) override + { + BMCWEB_LOG_DEBUG << "Do delete all entries."; + + auto asyncResp = std::make_shared(res); + // Process response from Logging service. + auto resp_handler = [asyncResp](const boost::system::error_code ec) { + BMCWEB_LOG_DEBUG << "doClearLog resp_handler callback: Done"; + if (ec) + { + // TODO Handle for specific error code + BMCWEB_LOG_ERROR << "doClearLog resp_handler got error " << ec; + asyncResp->res.result( + boost::beast::http::status::internal_server_error); + return; + } + + asyncResp->res.result(boost::beast::http::status::no_content); + }; + + // Make call to Logging service to request Clear Log + crow::connections::systemBus->async_method_call( + resp_handler, "xyz.openbmc_project.Logging", + "/xyz/openbmc_project/logging", + "xyz.openbmc_project.Collection.DeleteAll", "DeleteAll"); + } +}; +} // namespace redfish diff --git a/Contrib-Inspur/bmcweb/redfish-core/lib/rmc/rmc_managers.hpp b/Contrib-Inspur/bmcweb/redfish-core/lib/rmc/rmc_managers.hpp new file mode 100644 index 00000000..dbeeb0e4 --- /dev/null +++ b/Contrib-Inspur/bmcweb/redfish-core/lib/rmc/rmc_managers.hpp @@ -0,0 +1,1922 @@ +/* +// Copyright (c) 2018 Intel Corporation +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +*/ +#pragma once + +#include "health.hpp" +#include "node.hpp" +#include "redfish_util.hpp" + +#include +#include +#include +#include +#include +#include +#include +#include + +namespace redfish +{ + +/** + * ManagerActionsReset class supports handle POST method for Reset action. + * The class retrieves and sends data directly to dbus. + */ +class ManagerActionsReset : public Node +{ + public: + ManagerActionsReset(CrowApp& app) : +#ifndef BMCWEB_ENABLE_REDFISH_RMC + Node(app, "/redfish/v1/Managers/bmc/Actions/Manager.Reset/") +#else + Node(app, "/redfish/v1/Managers/rmc/Actions/Manager.Reset/") +#endif // !BMCWEB_ENABLE_REDFISH_RMC + + { + entityPrivileges = { + {boost::beast::http::verb::get, {{"Login"}}}, + {boost::beast::http::verb::head, {{"Login"}}}, + {boost::beast::http::verb::patch, {{"ConfigureManager"}}}, + {boost::beast::http::verb::put, {{"ConfigureManager"}}}, + {boost::beast::http::verb::delete_, {{"ConfigureManager"}}}, + {boost::beast::http::verb::post, {{"ConfigureManager"}}}}; + } + + private: + /** + * Function handles POST method request. + * Analyzes POST body message before sends Reset request data to dbus. + * OpenBMC allows for ResetType is GracefulRestart only. + */ + void doPost(crow::Response& res, const crow::Request& req, + const std::vector& params) override + { + std::string resetType; + + if (!json_util::readJson(req, res, "ResetType", resetType)) + { + return; + } + + if (resetType != "GracefulRestart") + { + res.result(boost::beast::http::status::bad_request); + messages::actionParameterNotSupported(res, resetType, "ResetType"); + BMCWEB_LOG_ERROR << "Request incorrect action parameter: " + << resetType; + res.end(); + return; + } + doBMCGracefulRestart(res, req, params); + } + + /** + * Function transceives data with dbus directly. + * All BMC state properties will be retrieved before sending reset request. + */ + void doBMCGracefulRestart(crow::Response& res, const crow::Request& req, + const std::vector& params) + { + const char* processName = "xyz.openbmc_project.State.BMC"; + const char* objectPath = "/xyz/openbmc_project/state/bmc0"; + const char* interfaceName = "xyz.openbmc_project.State.BMC"; + const std::string& propertyValue = + "xyz.openbmc_project.State.BMC.Transition.Reboot"; + const char* destProperty = "RequestedBMCTransition"; + + // Create the D-Bus variant for D-Bus call. + VariantType dbusPropertyValue(propertyValue); + + std::shared_ptr asyncResp = std::make_shared(res); + + crow::connections::systemBus->async_method_call( + [asyncResp](const boost::system::error_code ec) { + // Use "Set" method to set the property value. + if (ec) + { + BMCWEB_LOG_ERROR << "[Set] Bad D-Bus request error: " << ec; + messages::internalError(asyncResp->res); + return; + } + + messages::success(asyncResp->res); + }, + processName, objectPath, "org.freedesktop.DBus.Properties", "Set", + interfaceName, destProperty, dbusPropertyValue); + } +}; + +static constexpr const char* objectManagerIface = + "org.freedesktop.DBus.ObjectManager"; +static constexpr const char* pidConfigurationIface = + "xyz.openbmc_project.Configuration.Pid"; +static constexpr const char* pidZoneConfigurationIface = + "xyz.openbmc_project.Configuration.Pid.Zone"; +static constexpr const char* stepwiseConfigurationIface = + "xyz.openbmc_project.Configuration.Stepwise"; +static constexpr const char* thermalModeIface = + "xyz.openbmc_project.Control.ThermalMode"; + +static void asyncPopulatePid(const std::string& connection, + const std::string& path, + const std::string& currentProfile, + const std::vector& supportedProfiles, + std::shared_ptr asyncResp) +{ + + crow::connections::systemBus->async_method_call( + [asyncResp, currentProfile, supportedProfiles]( + const boost::system::error_code ec, + const dbus::utility::ManagedObjectType& managedObj) { + if (ec) + { + BMCWEB_LOG_ERROR << ec; + asyncResp->res.jsonValue.clear(); + messages::internalError(asyncResp->res); + return; + } + nlohmann::json& configRoot = + asyncResp->res.jsonValue["Oem"]["OpenBmc"]["Fan"]; + nlohmann::json& fans = configRoot["FanControllers"]; + fans["@odata.type"] = "#OemManager.FanControllers"; + fans["@odata.context"] = + "/redfish/v1/$metadata#OemManager.FanControllers"; + fans["@odata.id"] = "/redfish/v1/Managers/bmc#/Oem/OpenBmc/" + "Fan/FanControllers"; + + nlohmann::json& pids = configRoot["PidControllers"]; + pids["@odata.type"] = "#OemManager.PidControllers"; + pids["@odata.context"] = + "/redfish/v1/$metadata#OemManager.PidControllers"; + pids["@odata.id"] = + "/redfish/v1/Managers/bmc#/Oem/OpenBmc/Fan/PidControllers"; + + nlohmann::json& stepwise = configRoot["StepwiseControllers"]; + stepwise["@odata.type"] = "#OemManager.StepwiseControllers"; + stepwise["@odata.context"] = + "/redfish/v1/$metadata#OemManager.StepwiseControllers"; + stepwise["@odata.id"] = + "/redfish/v1/Managers/bmc#/Oem/OpenBmc/Fan/StepwiseControllers"; + + nlohmann::json& zones = configRoot["FanZones"]; + zones["@odata.id"] = + "/redfish/v1/Managers/bmc#/Oem/OpenBmc/Fan/FanZones"; + zones["@odata.type"] = "#OemManager.FanZones"; + zones["@odata.context"] = + "/redfish/v1/$metadata#OemManager.FanZones"; + configRoot["@odata.id"] = + "/redfish/v1/Managers/bmc#/Oem/OpenBmc/Fan"; + configRoot["@odata.type"] = "#OemManager.Fan"; + configRoot["@odata.context"] = + "/redfish/v1/$metadata#OemManager.Fan"; + configRoot["Profile@Redfish.AllowableValues"] = supportedProfiles; + + if (!currentProfile.empty()) + { + configRoot["Profile"] = currentProfile; + } + BMCWEB_LOG_ERROR << "profile = " << currentProfile << " !"; + + for (const auto& pathPair : managedObj) + { + for (const auto& intfPair : pathPair.second) + { + if (intfPair.first != pidConfigurationIface && + intfPair.first != pidZoneConfigurationIface && + intfPair.first != stepwiseConfigurationIface) + { + continue; + } + auto findName = intfPair.second.find("Name"); + if (findName == intfPair.second.end()) + { + BMCWEB_LOG_ERROR << "Pid Field missing Name"; + messages::internalError(asyncResp->res); + return; + } + + const std::string* namePtr = + std::get_if(&findName->second); + if (namePtr == nullptr) + { + BMCWEB_LOG_ERROR << "Pid Name Field illegal"; + messages::internalError(asyncResp->res); + return; + } + std::string name = *namePtr; + dbus::utility::escapePathForDbus(name); + + auto findProfiles = intfPair.second.find("Profiles"); + if (findProfiles != intfPair.second.end()) + { + const std::vector* profiles = + std::get_if>( + &findProfiles->second); + if (profiles == nullptr) + { + BMCWEB_LOG_ERROR << "Pid Profiles Field illegal"; + messages::internalError(asyncResp->res); + return; + } + if (std::find(profiles->begin(), profiles->end(), + currentProfile) == profiles->end()) + { + BMCWEB_LOG_INFO + << name << " not supported in current profile"; + continue; + } + } + nlohmann::json* config = nullptr; + + const std::string* classPtr = nullptr; + auto findClass = intfPair.second.find("Class"); + if (findClass != intfPair.second.end()) + { + classPtr = std::get_if(&findClass->second); + } + + if (intfPair.first == pidZoneConfigurationIface) + { + std::string chassis; + if (!dbus::utility::getNthStringFromPath( + pathPair.first.str, 5, chassis)) + { + chassis = "#IllegalValue"; + } + nlohmann::json& zone = zones[name]; + zone["Chassis"] = { + {"@odata.id", "/redfish/v1/Chassis/" + chassis}}; + zone["@odata.id"] = "/redfish/v1/Managers/bmc#/Oem/" + "OpenBmc/Fan/FanZones/" + + name; + zone["@odata.type"] = "#OemManager.FanZone"; + zone["@odata.context"] = + "/redfish/v1/$metadata#OemManager.FanZone"; + config = &zone; + } + + else if (intfPair.first == stepwiseConfigurationIface) + { + if (classPtr == nullptr) + { + BMCWEB_LOG_ERROR << "Pid Class Field illegal"; + messages::internalError(asyncResp->res); + return; + } + + nlohmann::json& controller = stepwise[name]; + config = &controller; + + controller["@odata.id"] = + "/redfish/v1/Managers/bmc#/Oem/" + "OpenBmc/Fan/StepwiseControllers/" + + name; + controller["@odata.type"] = + "#OemManager.StepwiseController"; + + controller["@odata.context"] = + "/redfish/v1/" + "$metadata#OemManager.StepwiseController"; + controller["Direction"] = *classPtr; + } + + // pid and fans are off the same configuration + else if (intfPair.first == pidConfigurationIface) + { + + if (classPtr == nullptr) + { + BMCWEB_LOG_ERROR << "Pid Class Field illegal"; + messages::internalError(asyncResp->res); + return; + } + bool isFan = *classPtr == "fan"; + nlohmann::json& element = + isFan ? fans[name] : pids[name]; + config = &element; + if (isFan) + { + element["@odata.id"] = + "/redfish/v1/Managers/bmc#/Oem/" + "OpenBmc/Fan/FanControllers/" + + name; + element["@odata.type"] = + "#OemManager.FanController"; + + element["@odata.context"] = + "/redfish/v1/" + "$metadata#OemManager.FanController"; + } + else + { + element["@odata.id"] = + "/redfish/v1/Managers/bmc#/Oem/" + "OpenBmc/Fan/PidControllers/" + + name; + element["@odata.type"] = + "#OemManager.PidController"; + element["@odata.context"] = + "/redfish/v1/$metadata" + "#OemManager.PidController"; + } + } + else + { + BMCWEB_LOG_ERROR << "Unexpected configuration"; + messages::internalError(asyncResp->res); + return; + } + + // used for making maps out of 2 vectors + const std::vector* keys = nullptr; + const std::vector* values = nullptr; + + for (const auto& propertyPair : intfPair.second) + { + if (propertyPair.first == "Type" || + propertyPair.first == "Class" || + propertyPair.first == "Name") + { + continue; + } + + // zones + if (intfPair.first == pidZoneConfigurationIface) + { + const double* ptr = + std::get_if(&propertyPair.second); + if (ptr == nullptr) + { + BMCWEB_LOG_ERROR << "Field Illegal " + << propertyPair.first; + messages::internalError(asyncResp->res); + return; + } + (*config)[propertyPair.first] = *ptr; + } + + if (intfPair.first == stepwiseConfigurationIface) + { + if (propertyPair.first == "Reading" || + propertyPair.first == "Output") + { + const std::vector* ptr = + std::get_if>( + &propertyPair.second); + + if (ptr == nullptr) + { + BMCWEB_LOG_ERROR << "Field Illegal " + << propertyPair.first; + messages::internalError(asyncResp->res); + return; + } + + if (propertyPair.first == "Reading") + { + keys = ptr; + } + else + { + values = ptr; + } + if (keys && values) + { + if (keys->size() != values->size()) + { + BMCWEB_LOG_ERROR + << "Reading and Output size don't " + "match "; + messages::internalError(asyncResp->res); + return; + } + nlohmann::json& steps = (*config)["Steps"]; + steps = nlohmann::json::array(); + for (size_t ii = 0; ii < keys->size(); ii++) + { + steps.push_back( + {{"Target", (*keys)[ii]}, + {"Output", (*values)[ii]}}); + } + } + } + if (propertyPair.first == "NegativeHysteresis" || + propertyPair.first == "PositiveHysteresis") + { + const double* ptr = + std::get_if(&propertyPair.second); + if (ptr == nullptr) + { + BMCWEB_LOG_ERROR << "Field Illegal " + << propertyPair.first; + messages::internalError(asyncResp->res); + return; + } + (*config)[propertyPair.first] = *ptr; + } + } + + // pid and fans are off the same configuration + if (intfPair.first == pidConfigurationIface || + intfPair.first == stepwiseConfigurationIface) + { + + if (propertyPair.first == "Zones") + { + const std::vector* inputs = + std::get_if>( + &propertyPair.second); + + if (inputs == nullptr) + { + BMCWEB_LOG_ERROR + << "Zones Pid Field Illegal"; + messages::internalError(asyncResp->res); + return; + } + auto& data = (*config)[propertyPair.first]; + data = nlohmann::json::array(); + for (std::string itemCopy : *inputs) + { + dbus::utility::escapePathForDbus(itemCopy); + data.push_back( + {{"@odata.id", + "/redfish/v1/Managers/bmc#/Oem/" + "OpenBmc/Fan/FanZones/" + + itemCopy}}); + } + } + // todo(james): may never happen, but this + // assumes configuration data referenced in the + // PID config is provided by the same daemon, we + // could add another loop to cover all cases, + // but I'm okay kicking this can down the road a + // bit + + else if (propertyPair.first == "Inputs" || + propertyPair.first == "Outputs") + { + auto& data = (*config)[propertyPair.first]; + const std::vector* inputs = + std::get_if>( + &propertyPair.second); + + if (inputs == nullptr) + { + BMCWEB_LOG_ERROR << "Field Illegal " + << propertyPair.first; + messages::internalError(asyncResp->res); + return; + } + data = *inputs; + } + else if (propertyPair.first == "SetPointOffset") + { + const std::string* ptr = + std::get_if( + &propertyPair.second); + + if (ptr == nullptr) + { + BMCWEB_LOG_ERROR << "Field Illegal " + << propertyPair.first; + messages::internalError(asyncResp->res); + return; + } + // translate from dbus to redfish + if (*ptr == "WarningHigh") + { + (*config)["SetPointOffset"] = + "UpperThresholdNonCritical"; + } + else if (*ptr == "WarningLow") + { + (*config)["SetPointOffset"] = + "LowerThresholdNonCritical"; + } + else if (*ptr == "CriticalHigh") + { + (*config)["SetPointOffset"] = + "UpperThresholdCritical"; + } + else if (*ptr == "CriticalLow") + { + (*config)["SetPointOffset"] = + "LowerThresholdCritical"; + } + else + { + BMCWEB_LOG_ERROR << "Value Illegal " + << *ptr; + messages::internalError(asyncResp->res); + return; + } + } + // doubles + else if (propertyPair.first == + "FFGainCoefficient" || + propertyPair.first == "FFOffCoefficient" || + propertyPair.first == "ICoefficient" || + propertyPair.first == "ILimitMax" || + propertyPair.first == "ILimitMin" || + propertyPair.first == + "PositiveHysteresis" || + propertyPair.first == + "NegativeHysteresis" || + propertyPair.first == "OutLimitMax" || + propertyPair.first == "OutLimitMin" || + propertyPair.first == "PCoefficient" || + propertyPair.first == "SetPoint" || + propertyPair.first == "SlewNeg" || + propertyPair.first == "SlewPos") + { + const double* ptr = + std::get_if(&propertyPair.second); + if (ptr == nullptr) + { + BMCWEB_LOG_ERROR << "Field Illegal " + << propertyPair.first; + messages::internalError(asyncResp->res); + return; + } + (*config)[propertyPair.first] = *ptr; + } + } + } + } + } + }, + connection, path, objectManagerIface, "GetManagedObjects"); +} + +enum class CreatePIDRet +{ + fail, + del, + patch +}; + +static bool getZonesFromJsonReq(const std::shared_ptr& response, + std::vector& config, + std::vector& zones) +{ + if (config.empty()) + { + BMCWEB_LOG_ERROR << "Empty Zones"; + messages::propertyValueFormatError(response->res, + nlohmann::json::array(), "Zones"); + return false; + } + for (auto& odata : config) + { + std::string path; + if (!redfish::json_util::readJson(odata, response->res, "@odata.id", + path)) + { + return false; + } + std::string input; + + // 8 below comes from + // /redfish/v1/Managers/bmc#/Oem/OpenBmc/Fan/FanZones/Left + // 0 1 2 3 4 5 6 7 8 + if (!dbus::utility::getNthStringFromPath(path, 8, input)) + { + BMCWEB_LOG_ERROR << "Got invalid path " << path; + BMCWEB_LOG_ERROR << "Illegal Type Zones"; + messages::propertyValueFormatError(response->res, odata.dump(), + "Zones"); + return false; + } + boost::replace_all(input, "_", " "); + zones.emplace_back(std::move(input)); + } + return true; +} + +static const dbus::utility::ManagedItem* + findChassis(const dbus::utility::ManagedObjectType& managedObj, + const std::string& value, std::string& chassis) +{ + BMCWEB_LOG_DEBUG << "Find Chassis: " << value << "\n"; + + std::string escaped = boost::replace_all_copy(value, " ", "_"); + escaped = "/" + escaped; + auto it = std::find_if( + managedObj.begin(), managedObj.end(), [&escaped](const auto& obj) { + if (boost::algorithm::ends_with(obj.first.str, escaped)) + { + BMCWEB_LOG_DEBUG << "Matched " << obj.first.str << "\n"; + return true; + } + return false; + }); + + if (it == managedObj.end()) + { + return nullptr; + } + // 5 comes from being the 5th element + // /xyz/openbmc_project/inventory/system/chassis/ + if (dbus::utility::getNthStringFromPath(it->first.str, 5, chassis)) + { + return &(*it); + } + + return nullptr; +} + +static CreatePIDRet createPidInterface( + const std::shared_ptr& response, const std::string& type, + nlohmann::json::iterator it, const std::string& path, + const dbus::utility::ManagedObjectType& managedObj, bool createNewObject, + boost::container::flat_map& + output, + std::string& chassis, const std::string& profile) +{ + + // common deleter + if (it.value() == nullptr) + { + std::string iface; + if (type == "PidControllers" || type == "FanControllers") + { + iface = pidConfigurationIface; + } + else if (type == "FanZones") + { + iface = pidZoneConfigurationIface; + } + else if (type == "StepwiseControllers") + { + iface = stepwiseConfigurationIface; + } + else + { + BMCWEB_LOG_ERROR << "Line:" << __LINE__ << ", Illegal Type " + << type; + messages::propertyUnknown(response->res, type); + return CreatePIDRet::fail; + } + // delete interface + crow::connections::systemBus->async_method_call( + [response, path](const boost::system::error_code ec) { + if (ec) + { + BMCWEB_LOG_ERROR << "Error patching " << path << ": " << ec; + messages::internalError(response->res); + return; + } + messages::success(response->res); + }, + "xyz.openbmc_project.EntityManager", path, iface, "Delete"); + return CreatePIDRet::del; + } + + const dbus::utility::ManagedItem* managedItem = nullptr; + if (!createNewObject) + { + // if we aren't creating a new object, we should be able to find it on + // d-bus + managedItem = findChassis(managedObj, it.key(), chassis); + if (managedItem == nullptr) + { + BMCWEB_LOG_ERROR << "Failed to get chassis from config patch"; + messages::invalidObject(response->res, it.key()); + return CreatePIDRet::fail; + } + } + + if (profile.size() && + (type == "PidControllers" || type == "FanControllers" || + type == "StepwiseControllers")) + { + if (managedItem == nullptr) + { + output["Profiles"] = std::vector{profile}; + } + else + { + std::string interface; + if (type == "StepwiseControllers") + { + interface = stepwiseConfigurationIface; + } + else + { + interface = pidConfigurationIface; + } + auto findConfig = managedItem->second.find(interface); + if (findConfig == managedItem->second.end()) + { + BMCWEB_LOG_ERROR + << "Failed to find interface in managed object"; + messages::internalError(response->res); + return CreatePIDRet::fail; + } + auto findProfiles = findConfig->second.find("Profiles"); + if (findProfiles != findConfig->second.end()) + { + const std::vector* curProfiles = + std::get_if>( + &(findProfiles->second)); + if (curProfiles == nullptr) + { + BMCWEB_LOG_ERROR << "Illegal profiles in managed object"; + messages::internalError(response->res); + return CreatePIDRet::fail; + } + if (std::find(curProfiles->begin(), curProfiles->end(), + profile) == curProfiles->end()) + { + std::vector newProfiles = *curProfiles; + newProfiles.push_back(profile); + output["Profiles"] = newProfiles; + } + } + } + } + + if (type == "PidControllers" || type == "FanControllers") + { + if (createNewObject) + { + output["Class"] = type == "PidControllers" ? std::string("temp") + : std::string("fan"); + output["Type"] = std::string("Pid"); + } + + std::optional> zones; + std::optional> inputs; + std::optional> outputs; + std::map> doubles; + std::optional setpointOffset; + if (!redfish::json_util::readJson( + it.value(), response->res, "Inputs", inputs, "Outputs", outputs, + "Zones", zones, "FFGainCoefficient", + doubles["FFGainCoefficient"], "FFOffCoefficient", + doubles["FFOffCoefficient"], "ICoefficient", + doubles["ICoefficient"], "ILimitMax", doubles["ILimitMax"], + "ILimitMin", doubles["ILimitMin"], "OutLimitMax", + doubles["OutLimitMax"], "OutLimitMin", doubles["OutLimitMin"], + "PCoefficient", doubles["PCoefficient"], "SetPoint", + doubles["SetPoint"], "SetPointOffset", setpointOffset, + "SlewNeg", doubles["SlewNeg"], "SlewPos", doubles["SlewPos"], + "PositiveHysteresis", doubles["PositiveHysteresis"], + "NegativeHysteresis", doubles["NegativeHysteresis"])) + { + BMCWEB_LOG_ERROR << "Line:" << __LINE__ << ", Illegal Property " + << it.value().dump(); + return CreatePIDRet::fail; + } + if (zones) + { + std::vector zonesStr; + if (!getZonesFromJsonReq(response, *zones, zonesStr)) + { + BMCWEB_LOG_ERROR << "Line:" << __LINE__ << ", Illegal Zones"; + return CreatePIDRet::fail; + } + if (chassis.empty() && + !findChassis(managedObj, zonesStr[0], chassis)) + { + BMCWEB_LOG_ERROR << "Failed to get chassis from config patch"; + messages::invalidObject(response->res, it.key()); + return CreatePIDRet::fail; + } + + output["Zones"] = std::move(zonesStr); + } + if (inputs || outputs) + { + std::array>*, 2> containers = + {&inputs, &outputs}; + size_t index = 0; + for (const auto& containerPtr : containers) + { + std::optional>& container = + *containerPtr; + if (!container) + { + index++; + continue; + } + + for (std::string& value : *container) + { + boost::replace_all(value, "_", " "); + } + std::string key; + if (index == 0) + { + key = "Inputs"; + } + else + { + key = "Outputs"; + } + output[key] = *container; + index++; + } + } + + if (setpointOffset) + { + // translate between redfish and dbus names + if (*setpointOffset == "UpperThresholdNonCritical") + { + output["SetPointOffset"] = std::string("WarningLow"); + } + else if (*setpointOffset == "LowerThresholdNonCritical") + { + output["SetPointOffset"] = std::string("WarningHigh"); + } + else if (*setpointOffset == "LowerThresholdCritical") + { + output["SetPointOffset"] = std::string("CriticalLow"); + } + else if (*setpointOffset == "UpperThresholdCritical") + { + output["SetPointOffset"] = std::string("CriticalHigh"); + } + else + { + BMCWEB_LOG_ERROR << "Invalid setpointoffset " + << *setpointOffset; + messages::invalidObject(response->res, it.key()); + return CreatePIDRet::fail; + } + } + + // doubles + for (const auto& pairs : doubles) + { + if (!pairs.second) + { + continue; + } + BMCWEB_LOG_DEBUG << pairs.first << " = " << *pairs.second; + output[pairs.first] = *(pairs.second); + } + } + + else if (type == "FanZones") + { + output["Type"] = std::string("Pid.Zone"); + + std::optional chassisContainer; + std::optional failSafePercent; + std::optional minThermalOutput; + if (!redfish::json_util::readJson(it.value(), response->res, "Chassis", + chassisContainer, "FailSafePercent", + failSafePercent, "MinThermalOutput", + minThermalOutput)) + { + BMCWEB_LOG_ERROR << "Line:" << __LINE__ << ", Illegal Property " + << it.value().dump(); + return CreatePIDRet::fail; + } + + if (chassisContainer) + { + + std::string chassisId; + if (!redfish::json_util::readJson(*chassisContainer, response->res, + "@odata.id", chassisId)) + { + BMCWEB_LOG_ERROR << "Line:" << __LINE__ << ", Illegal Property " + << chassisContainer->dump(); + return CreatePIDRet::fail; + } + + // /redfish/v1/chassis/chassis_name/ + if (!dbus::utility::getNthStringFromPath(chassisId, 3, chassis)) + { + BMCWEB_LOG_ERROR << "Got invalid path " << chassisId; + messages::invalidObject(response->res, chassisId); + return CreatePIDRet::fail; + } + } + if (minThermalOutput) + { + output["MinThermalOutput"] = *minThermalOutput; + } + if (failSafePercent) + { + output["FailSafePercent"] = *failSafePercent; + } + } + else if (type == "StepwiseControllers") + { + output["Type"] = std::string("Stepwise"); + + std::optional> zones; + std::optional> steps; + std::optional> inputs; + std::optional positiveHysteresis; + std::optional negativeHysteresis; + std::optional direction; // upper clipping curve vs lower + if (!redfish::json_util::readJson( + it.value(), response->res, "Zones", zones, "Steps", steps, + "Inputs", inputs, "PositiveHysteresis", positiveHysteresis, + "NegativeHysteresis", negativeHysteresis, "Direction", + direction)) + { + BMCWEB_LOG_ERROR << "Line:" << __LINE__ << ", Illegal Property " + << it.value().dump(); + return CreatePIDRet::fail; + } + + if (zones) + { + std::vector zonesStrs; + if (!getZonesFromJsonReq(response, *zones, zonesStrs)) + { + BMCWEB_LOG_ERROR << "Line:" << __LINE__ << ", Illegal Zones"; + return CreatePIDRet::fail; + } + if (chassis.empty() && + !findChassis(managedObj, zonesStrs[0], chassis)) + { + BMCWEB_LOG_ERROR << "Failed to get chassis from config patch"; + messages::invalidObject(response->res, it.key()); + return CreatePIDRet::fail; + } + output["Zones"] = std::move(zonesStrs); + } + if (steps) + { + std::vector readings; + std::vector outputs; + for (auto& step : *steps) + { + double target; + double output; + + if (!redfish::json_util::readJson(step, response->res, "Target", + target, "Output", output)) + { + BMCWEB_LOG_ERROR << "Line:" << __LINE__ + << ", Illegal Property " + << it.value().dump(); + return CreatePIDRet::fail; + } + readings.emplace_back(target); + outputs.emplace_back(output); + } + output["Reading"] = std::move(readings); + output["Output"] = std::move(outputs); + } + if (inputs) + { + for (std::string& value : *inputs) + { + boost::replace_all(value, "_", " "); + } + output["Inputs"] = std::move(*inputs); + } + if (negativeHysteresis) + { + output["NegativeHysteresis"] = *negativeHysteresis; + } + if (positiveHysteresis) + { + output["PositiveHysteresis"] = *positiveHysteresis; + } + if (direction) + { + constexpr const std::array allowedDirections = { + "Ceiling", "Floor"}; + if (std::find(allowedDirections.begin(), allowedDirections.end(), + *direction) == allowedDirections.end()) + { + messages::propertyValueTypeError(response->res, "Direction", + *direction); + return CreatePIDRet::fail; + } + output["Class"] = *direction; + } + } + else + { + BMCWEB_LOG_ERROR << "Line:" << __LINE__ << ", Illegal Type " << type; + messages::propertyUnknown(response->res, type); + return CreatePIDRet::fail; + } + return CreatePIDRet::patch; +} +struct GetPIDValues : std::enable_shared_from_this +{ + + GetPIDValues(const std::shared_ptr& asyncResp) : + asyncResp(asyncResp) + + { + } + + void run() + { + std::shared_ptr self = shared_from_this(); + + // get all configurations + crow::connections::systemBus->async_method_call( + [self](const boost::system::error_code ec, + const crow::openbmc_mapper::GetSubTreeType& subtree) { + if (ec) + { + BMCWEB_LOG_ERROR << ec; + messages::internalError(self->asyncResp->res); + return; + } + self->subtree = subtree; + }, + "xyz.openbmc_project.ObjectMapper", + "/xyz/openbmc_project/object_mapper", + "xyz.openbmc_project.ObjectMapper", "GetSubTree", "/", 0, + std::array{ + pidConfigurationIface, pidZoneConfigurationIface, + objectManagerIface, stepwiseConfigurationIface}); + + // at the same time get the selected profile + crow::connections::systemBus->async_method_call( + [self](const boost::system::error_code ec, + const crow::openbmc_mapper::GetSubTreeType& subtree) { + if (ec || subtree.empty()) + { + return; + } + if (subtree[0].second.size() != 1) + { + // invalid mapper response, should never happen + BMCWEB_LOG_ERROR << "GetPIDValues: Mapper Error"; + messages::internalError(self->asyncResp->res); + return; + } + + const std::string& path = subtree[0].first; + const std::string& owner = subtree[0].second[0].first; + crow::connections::systemBus->async_method_call( + [path, owner, self]( + const boost::system::error_code ec, + const boost::container::flat_map< + std::string, std::variant, + std::string>>& resp) { + if (ec) + { + BMCWEB_LOG_ERROR << "GetPIDValues: Can't get " + "thermalModeIface " + << path; + messages::internalError(self->asyncResp->res); + return; + } + const std::string* current = nullptr; + const std::vector* supported = nullptr; + for (auto& [key, value] : resp) + { + if (key == "Current") + { + current = std::get_if(&value); + if (current == nullptr) + { + BMCWEB_LOG_ERROR + << "GetPIDValues: thermal mode " + "iface invalid " + << path; + messages::internalError( + self->asyncResp->res); + return; + } + } + if (key == "Supported") + { + supported = + std::get_if>( + &value); + if (supported == nullptr) + { + BMCWEB_LOG_ERROR + << "GetPIDValues: thermal mode " + "iface invalid" + << path; + messages::internalError( + self->asyncResp->res); + return; + } + } + } + if (current == nullptr || supported == nullptr) + { + BMCWEB_LOG_ERROR << "GetPIDValues: thermal mode " + "iface invalid " + << path; + messages::internalError(self->asyncResp->res); + return; + } + self->currentProfile = *current; + self->supportedProfiles = *supported; + }, + owner, path, "org.freedesktop.DBus.Properties", "GetAll", + thermalModeIface); + }, + "xyz.openbmc_project.ObjectMapper", + "/xyz/openbmc_project/object_mapper", + "xyz.openbmc_project.ObjectMapper", "GetSubTree", "/", 0, + std::array{thermalModeIface}); + } + + ~GetPIDValues() + { + if (asyncResp->res.result() != boost::beast::http::status::ok) + { + return; + } + // create map of > + boost::container::flat_map objectMgrPaths; + boost::container::flat_set calledConnections; + for (const auto& pathGroup : subtree) + { + for (const auto& connectionGroup : pathGroup.second) + { + auto findConnection = + calledConnections.find(connectionGroup.first); + if (findConnection != calledConnections.end()) + { + break; + } + for (const std::string& interface : connectionGroup.second) + { + if (interface == objectManagerIface) + { + objectMgrPaths[connectionGroup.first] = pathGroup.first; + } + // this list is alphabetical, so we + // should have found the objMgr by now + if (interface == pidConfigurationIface || + interface == pidZoneConfigurationIface || + interface == stepwiseConfigurationIface) + { + auto findObjMgr = + objectMgrPaths.find(connectionGroup.first); + if (findObjMgr == objectMgrPaths.end()) + { + BMCWEB_LOG_DEBUG << connectionGroup.first + << "Has no Object Manager"; + continue; + } + + calledConnections.insert(connectionGroup.first); + + asyncPopulatePid(findObjMgr->first, findObjMgr->second, + currentProfile, supportedProfiles, + asyncResp); + break; + } + } + } + } + } + + std::vector supportedProfiles; + std::string currentProfile; + crow::openbmc_mapper::GetSubTreeType subtree; + std::shared_ptr asyncResp; +}; + +struct SetPIDValues : std::enable_shared_from_this +{ + + SetPIDValues(const std::shared_ptr& asyncRespIn, + nlohmann::json& data) : + asyncResp(asyncRespIn) + { + + std::optional pidControllers; + std::optional fanControllers; + std::optional fanZones; + std::optional stepwiseControllers; + + if (!redfish::json_util::readJson( + data, asyncResp->res, "PidControllers", pidControllers, + "FanControllers", fanControllers, "FanZones", fanZones, + "StepwiseControllers", stepwiseControllers, "Profile", profile)) + { + BMCWEB_LOG_ERROR << "Line:" << __LINE__ << ", Illegal Property " + << data.dump(); + return; + } + configuration.emplace_back("PidControllers", std::move(pidControllers)); + configuration.emplace_back("FanControllers", std::move(fanControllers)); + configuration.emplace_back("FanZones", std::move(fanZones)); + configuration.emplace_back("StepwiseControllers", + std::move(stepwiseControllers)); + } + void run() + { + if (asyncResp->res.result() != boost::beast::http::status::ok) + { + return; + } + + std::shared_ptr self = shared_from_this(); + + // todo(james): might make sense to do a mapper call here if this + // interface gets more traction + crow::connections::systemBus->async_method_call( + [self](const boost::system::error_code ec, + dbus::utility::ManagedObjectType& mObj) { + if (ec) + { + BMCWEB_LOG_ERROR << "Error communicating to Entity Manager"; + messages::internalError(self->asyncResp->res); + return; + } + self->managedObj = std::move(mObj); + }, + "xyz.openbmc_project.EntityManager", "/", objectManagerIface, + "GetManagedObjects"); + + // at the same time get the profile information + crow::connections::systemBus->async_method_call( + [self](const boost::system::error_code ec, + const crow::openbmc_mapper::GetSubTreeType& subtree) { + if (ec || subtree.empty()) + { + return; + } + if (subtree[0].second.empty()) + { + // invalid mapper response, should never happen + BMCWEB_LOG_ERROR << "SetPIDValues: Mapper Error"; + messages::internalError(self->asyncResp->res); + return; + } + + const std::string& path = subtree[0].first; + const std::string& owner = subtree[0].second[0].first; + crow::connections::systemBus->async_method_call( + [self, path, owner]( + const boost::system::error_code ec, + const boost::container::flat_map< + std::string, std::variant, + std::string>>& r) { + if (ec) + { + BMCWEB_LOG_ERROR << "SetPIDValues: Can't get " + "thermalModeIface " + << path; + messages::internalError(self->asyncResp->res); + return; + } + const std::string* current = nullptr; + const std::vector* supported = nullptr; + for (auto& [key, value] : r) + { + if (key == "Current") + { + current = std::get_if(&value); + if (current == nullptr) + { + BMCWEB_LOG_ERROR + << "SetPIDValues: thermal mode " + "iface invalid " + << path; + messages::internalError( + self->asyncResp->res); + return; + } + } + if (key == "Supported") + { + supported = + std::get_if>( + &value); + if (supported == nullptr) + { + BMCWEB_LOG_ERROR + << "SetPIDValues: thermal mode " + "iface invalid" + << path; + messages::internalError( + self->asyncResp->res); + return; + } + } + } + if (current == nullptr || supported == nullptr) + { + BMCWEB_LOG_ERROR << "SetPIDValues: thermal mode " + "iface invalid " + << path; + messages::internalError(self->asyncResp->res); + return; + } + self->currentProfile = *current; + self->supportedProfiles = *supported; + self->profileConnection = owner; + self->profilePath = path; + }, + owner, path, "org.freedesktop.DBus.Properties", "GetAll", + thermalModeIface); + }, + "xyz.openbmc_project.ObjectMapper", + "/xyz/openbmc_project/object_mapper", + "xyz.openbmc_project.ObjectMapper", "GetSubTree", "/", 0, + std::array{thermalModeIface}); + } + ~SetPIDValues() + { + if (asyncResp->res.result() != boost::beast::http::status::ok) + { + return; + } + + std::shared_ptr response = asyncResp; + + if (profile) + { + if (std::find(supportedProfiles.begin(), supportedProfiles.end(), + *profile) == supportedProfiles.end()) + { + messages::actionParameterUnknown(response->res, "Profile", + *profile); + return; + } + currentProfile = *profile; + crow::connections::systemBus->async_method_call( + [response](const boost::system::error_code ec) { + if (ec) + { + BMCWEB_LOG_ERROR << "Error patching profile" << ec; + messages::internalError(response->res); + } + }, + profileConnection, profilePath, + "org.freedesktop.DBus.Properties", "Set", thermalModeIface, + "Current", std::variant(*profile)); + } + + for (auto& containerPair : configuration) + { + auto& container = containerPair.second; + if (!container) + { + continue; + } + std::string& type = containerPair.first; + + for (nlohmann::json::iterator it = container->begin(); + it != container->end(); it++) + { + const auto& name = it.key(); + auto pathItr = + std::find_if(managedObj.begin(), managedObj.end(), + [&name](const auto& obj) { + return boost::algorithm::ends_with( + obj.first.str, "/" + name); + }); + boost::container::flat_map + output; + + output.reserve(16); // The pid interface length + + // determines if we're patching entity-manager or + // creating a new object + bool createNewObject = (pathItr == managedObj.end()); + std::string iface; + if (type == "PidControllers" || type == "FanControllers") + { + iface = pidConfigurationIface; + if (!createNewObject && + pathItr->second.find(pidConfigurationIface) == + pathItr->second.end()) + { + createNewObject = true; + } + } + else if (type == "FanZones") + { + iface = pidZoneConfigurationIface; + if (!createNewObject && + pathItr->second.find(pidZoneConfigurationIface) == + pathItr->second.end()) + { + + createNewObject = true; + } + } + else if (type == "StepwiseControllers") + { + iface = stepwiseConfigurationIface; + if (!createNewObject && + pathItr->second.find(stepwiseConfigurationIface) == + pathItr->second.end()) + { + createNewObject = true; + } + } + BMCWEB_LOG_DEBUG << "Create new = " << createNewObject << "\n"; + output["Name"] = boost::replace_all_copy(name, "_", " "); + + std::string chassis; + CreatePIDRet ret = createPidInterface( + response, type, it, pathItr->first.str, managedObj, + createNewObject, output, chassis, currentProfile); + if (ret == CreatePIDRet::fail) + { + return; + } + else if (ret == CreatePIDRet::del) + { + continue; + } + + if (!createNewObject) + { + for (const auto& property : output) + { + crow::connections::systemBus->async_method_call( + [response, + propertyName{std::string(property.first)}]( + const boost::system::error_code ec) { + if (ec) + { + BMCWEB_LOG_ERROR << "Error patching " + << propertyName << ": " + << ec; + messages::internalError(response->res); + return; + } + messages::success(response->res); + }, + "xyz.openbmc_project.EntityManager", + pathItr->first.str, + "org.freedesktop.DBus.Properties", "Set", iface, + property.first, property.second); + } + } + else + { + if (chassis.empty()) + { + BMCWEB_LOG_ERROR << "Failed to get chassis from config"; + messages::invalidObject(response->res, name); + return; + } + + bool foundChassis = false; + for (const auto& obj : managedObj) + { + if (boost::algorithm::ends_with(obj.first.str, chassis)) + { + chassis = obj.first.str; + foundChassis = true; + break; + } + } + if (!foundChassis) + { + BMCWEB_LOG_ERROR << "Failed to find chassis on dbus"; + messages::resourceMissingAtURI( + response->res, "/redfish/v1/Chassis/" + chassis); + return; + } + + crow::connections::systemBus->async_method_call( + [response](const boost::system::error_code ec) { + if (ec) + { + BMCWEB_LOG_ERROR << "Error Adding Pid Object " + << ec; + messages::internalError(response->res); + return; + } + messages::success(response->res); + }, + "xyz.openbmc_project.EntityManager", chassis, + "xyz.openbmc_project.AddObject", "AddObject", output); + } + } + } + } + std::shared_ptr asyncResp; + std::vector>> + configuration; + std::optional profile; + dbus::utility::ManagedObjectType managedObj; + std::vector supportedProfiles; + std::string currentProfile; + std::string profileConnection; + std::string profilePath; +}; + +class Manager : public Node +{ + public: +#ifndef BMCWEB_ENABLE_REDFISH_RMC + Manager(CrowApp& app) : Node(app, "/redfish/v1/Managers/bmc/") +#else + Manager(CrowApp& app) : Node(app, "/redfish/v1/Managers/rmc/") +#endif // !BMCWEB_ENABLE_REDFISH_RMC + { + uuid = app.template getMiddleware() + .systemUuid; + entityPrivileges = { + {boost::beast::http::verb::get, {{"Login"}}}, + {boost::beast::http::verb::head, {{"Login"}}}, + {boost::beast::http::verb::patch, {{"ConfigureManager"}}}, + {boost::beast::http::verb::put, {{"ConfigureManager"}}}, + {boost::beast::http::verb::delete_, {{"ConfigureManager"}}}, + {boost::beast::http::verb::post, {{"ConfigureManager"}}}}; + } + + private: +#ifndef BMCWEB_ENABLE_REDFISH_RMC + void doGet(crow::Response& res, const crow::Request& req, + const std::vector& params) override + { + res.jsonValue["@odata.id"] = "/redfish/v1/Managers/bmc"; + res.jsonValue["@odata.type"] = "#Manager.v1_3_0.Manager"; + res.jsonValue["@odata.context"] = + "/redfish/v1/$metadata#Manager.Manager"; + res.jsonValue["Id"] = "bmc"; + res.jsonValue["Name"] = "OpenBmc Manager"; + res.jsonValue["Description"] = "Baseboard Management Controller"; + res.jsonValue["PowerState"] = "On"; + res.jsonValue["Status"] = {{"State", "Enabled"}, { "Health", "OK" }}; + res.jsonValue["ManagerType"] = "BMC"; + res.jsonValue["UUID"] = systemd_utils::getUuid(); + res.jsonValue["ServiceEntryPointUUID"] = uuid; + res.jsonValue["Model"] = "OpenBmc"; // TODO(ed), get model + + res.jsonValue["LogServices"] = { + { "@odata.id", + "/redfish/v1/Managers/bmc/LogServices" }}; + + res.jsonValue["NetworkProtocol"] = { + { "@odata.id", + "/redfish/v1/Managers/bmc/NetworkProtocol" }}; + + res.jsonValue["EthernetInterfaces"] = { + { "@odata.id", + "/redfish/v1/Managers/bmc/EthernetInterfaces" }}; + +#ifdef BMCWEB_ENABLE_VM_NBDPROXY + res.jsonValue["VirtualMedia"] = { + { "@odata.id", + "/redfish/v1/Managers/bmc/VirtualMedia" }}; +#endif // BMCWEB_ENABLE_VM_NBDPROXY + + // default oem data + nlohmann::json& oem = res.jsonValue["Oem"]; + nlohmann::json& oemOpenbmc = oem["OpenBmc"]; + oem["@odata.type"] = "#OemManager.Oem"; + oem["@odata.id"] = "/redfish/v1/Managers/bmc#/Oem"; + oem["@odata.context"] = "/redfish/v1/$metadata#OemManager.Oem"; + oemOpenbmc["@odata.type"] = "#OemManager.OpenBmc"; + oemOpenbmc["@odata.id"] = "/redfish/v1/Managers/bmc#/Oem/OpenBmc"; + oemOpenbmc["@odata.context"] = + "/redfish/v1/$metadata#OemManager.OpenBmc"; + oemOpenbmc["Certificates"] = { + { "@odata.id", + "/redfish/v1/Managers/bmc/Truststore/Certificates" }}; + + // Update Actions object. + nlohmann::json& manager_reset = + res.jsonValue["Actions"]["#Manager.Reset"]; + manager_reset["target"] = + "/redfish/v1/Managers/bmc/Actions/Manager.Reset"; + manager_reset["ResetType@Redfish.AllowableValues"] = { + "GracefulRestart"}; + + res.jsonValue["DateTime"] = crow::utility::dateTimeNow(); + + // Fill in SerialConsole info + res.jsonValue["SerialConsole"]["ServiceEnabled"] = true; + res.jsonValue["SerialConsole"]["MaxConcurrentSessions"] = 15; + res.jsonValue["SerialConsole"]["ConnectTypesSupported"] = {"IPMI", + "SSH"}; +#ifdef BMCWEB_ENABLE_KVM + // Fill in GraphicalConsole info + res.jsonValue["GraphicalConsole"]["ServiceEnabled"] = true; + res.jsonValue["GraphicalConsole"]["MaxConcurrentSessions"] = 4; + res.jsonValue["GraphicalConsole"]["ConnectTypesSupported"] = {"KVMIP"}; +#endif // BMCWEB_ENABLE_KVM + + res.jsonValue["Links"]["ManagerForServers@odata.count"] = 1; + res.jsonValue["Links"]["ManagerForServers"] = { + { { "@odata.id", + "/redfish/v1/Systems/system" } }}; + + std::shared_ptr asyncResp = std::make_shared(res); + + auto health = std::make_shared(asyncResp); + health->isManagersHealth = true; + health->populate(); + + fw_util::getActiveFwVersion(asyncResp, fw_util::bmcPurpose, + "FirmwareVersion"); + + auto pids = std::make_shared(asyncResp); + pids->run(); + + getMainChassisId(asyncResp, [](const std::string& chassisId, + const std::shared_ptr aRsp) { + aRsp->res.jsonValue["Links"]["ManagerForChassis@odata.count"] = 1; + aRsp->res.jsonValue["Links"]["ManagerForChassis"] = { + { { "@odata.id", + "/redfish/v1/Chassis/" + chassisId } }}; + aRsp->res.jsonValue["Links"]["ManagerInChassis"] = { + { "@odata.id", + "/redfish/v1/Chassis/" + chassisId }}; + }); + + static bool started = false; + + if (!started) + { + crow::connections::systemBus->async_method_call( + [asyncResp](const boost::system::error_code ec, + const std::variant& resp) { + if (ec) + { + BMCWEB_LOG_ERROR << "Error while getting progress"; + messages::internalError(asyncResp->res); + return; + } + const double* val = std::get_if(&resp); + if (val == nullptr) + { + BMCWEB_LOG_ERROR + << "Invalid response while getting progress"; + messages::internalError(asyncResp->res); + return; + } + if (*val < 1.0) + { + asyncResp->res.jsonValue["Status"]["State"] = + "Starting"; + started = true; + } + }, + "org.freedesktop.systemd1", "/org/freedesktop/systemd1", + "org.freedesktop.DBus.Properties", "Get", + "org.freedesktop.systemd1.Manager", "Progress"); + } + } +#else + void doGet(crow::Response& res, const crow::Request& req, + const std::vector& params) override + { + res.jsonValue["@odata.id"] = "/redfish/v1/Managers/rmc"; + res.jsonValue["@odata.type"] = "#Manager.v1_3_0.Manager"; + res.jsonValue["@odata.context"] = + "/redfish/v1/$metadata#Manager.Manager"; + res.jsonValue["Id"] = "rmc"; + res.jsonValue["Name"] = "OpenRmc Manager"; + res.jsonValue["Description"] = "RackScale RMC"; + res.jsonValue["PowerState"] = "On"; + res.jsonValue["ManagerType"] = "RMC Manager"; + res.jsonValue["UUID"] = uuid; + res.jsonValue["Model"] = "OpenRmc"; // TODO(ed), get model + + res.jsonValue["NetworkProtocol"] = { + {"@odata.id", "/redfish/v1/Managers/rmc/NetworkProtocol"}}; + + // res.jsonValue["EthernetInterfacesCollection"] = { + // {"@odata.id", "/redfish/v1/Managers/rmc/EthernetInterfacesCollection"}}; + + res.jsonValue["EthernetInterfaces"] = { + {"@odata.id", "/redfish/v1/Managers/rmc/EthernetInterfaces"}}; + + res.jsonValue["LogServices"] = { + {"@odata.id", "/redfish/v1/Managers/rmc/LogServices"}}; + + // default oem data + nlohmann::json& oem = res.jsonValue["Oem"]; + oem["OpenBmc"] = {}; + nlohmann::json& oemOpenrmc = oem["OpenRmc"]; + oem["@odata.type"] = "#OemManager.Oem"; + oem["@odata.id"] = "/redfish/v1/Managers/rmc#/Oem"; + oem["@odata.context"] = "/redfish/v1/$metadata#OemManager.Oem"; + oemOpenrmc["@odata.type"] = "#OemManager.OpenRmc"; + oemOpenrmc["@odata.id"] = "/redfish/v1/Managers/rmc#/Oem/OpenRmc"; + oemOpenrmc["@odata.context"] = + "/redfish/v1/$metadata#OemManager.OpenRmc"; + + // Update Actions object. + // nlohmann::json& manager_reset = + // res.jsonValue["Actions"]["#Manager.Reset"]; + // manager_reset["target"] = + // "/redfish/v1/Managers/rmc/Actions/Manager.Reset"; + // manager_reset["ResetType@Redfish.AllowableValues"] = { + // "GracefulRestart"}; + + res.jsonValue["FirmwareVersion"] = "2.1.71.0"; + res.jsonValue["DateTime"] = getDateTime(); + + nlohmann::json& serialConsole = res.jsonValue["SerialConsole"]; + serialConsole["ServiceEnabled"] = true; + serialConsole["MaxConcurrentSessions"] = 1; + serialConsole["ConnectTypesSupported"] = {{"SSH"}}; + + nlohmann::json& status = res.jsonValue["Status"]; + status["State"] = "Enabled"; + status["Health"] = "OK"; + status["HealthRollup"] = {}; + + nlohmann::json& link = res.jsonValue["Links"]; + link["ManagerForServers"] = {}; + nlohmann::json& manageerForChassis = link["ManagerForChassis"]; + manageerForChassis.push_back( + {{"@odata.id", "/redfish/v1/Chassis/chassis1"}}); + manageerForChassis.push_back( + {{"@odata.id", "/redfish/v1/Chassis/chassis2"}}); + // manageerForChassis.push_back( + // {{"@odata.id", "/redfish/v1/Chassis/chassis3"}}); + link["ManagerInChassis"] = {}; + + res.end(); + } + + std::string getDateTime() const + { + std::array dateTime; + std::string redfishDateTime("0000-00-00T00:00:00Z00:00"); + std::time_t time = std::time(nullptr); + + if (std::strftime(dateTime.begin(), dateTime.size(), "%FT%T%z", + std::localtime(&time))) + { + // insert the colon required by the ISO 8601 standard + redfishDateTime = std::string(dateTime.data()); + redfishDateTime.insert(redfishDateTime.end() - 2, ':'); + } + + return redfishDateTime; + } +#endif // !BMCWEB_ENABLE_REDFISH_RMC + + void doPatch(crow::Response& res, const crow::Request& req, + const std::vector& params) override + { + std::optional oem; + std::optional datetime; + std::shared_ptr response = std::make_shared(res); + + if (!json_util::readJson(req, response->res, "Oem", oem, "DateTime", + datetime)) + { + return; + } + + if (oem) + { + std::optional openbmc; + if (!redfish::json_util::readJson(*oem, res, "OpenBmc", openbmc)) + { + BMCWEB_LOG_ERROR << "Line:" << __LINE__ << ", Illegal Property " + << oem->dump(); + return; + } + if (openbmc) + { + std::optional fan; + if (!redfish::json_util::readJson(*openbmc, res, "Fan", fan)) + { + BMCWEB_LOG_ERROR << "Line:" << __LINE__ + << ", Illegal Property " + << openbmc->dump(); + return; + } + if (fan) + { + auto pid = std::make_shared(response, *fan); + pid->run(); + } + } + } + if (datetime) + { + setDateTime(response, std::move(*datetime)); + } + } + + void setDateTime(std::shared_ptr aResp, + std::string datetime) const + { + BMCWEB_LOG_DEBUG << "Set date time: " << datetime; + + std::stringstream stream(datetime); + // Convert from ISO 8601 to boost local_time + // (BMC only has time in UTC) + boost::posix_time::ptime posixTime; + boost::posix_time::ptime epoch(boost::gregorian::date(1970, 1, 1)); + // Facet gets deleted with the stringsteam + auto ifc = std::make_unique( + "%Y-%m-%d %H:%M:%S%F %ZP"); + stream.imbue(std::locale(stream.getloc(), ifc.release())); + + boost::local_time::local_date_time ldt( + boost::local_time::not_a_date_time); + + if (stream >> ldt) + { + posixTime = ldt.utc_time(); + boost::posix_time::time_duration dur = posixTime - epoch; + uint64_t durMicroSecs = + static_cast(dur.total_microseconds()); + crow::connections::systemBus->async_method_call( + [aResp{std::move(aResp)}, datetime{std::move(datetime)}]( + const boost::system::error_code ec) { + if (ec) + { + BMCWEB_LOG_DEBUG << "Failed to set elapsed time. " + "DBUS response error " + << ec; + messages::internalError(aResp->res); + return; + } + aResp->res.jsonValue["DateTime"] = datetime; + }, + "xyz.openbmc_project.Time.Manager", + "/xyz/openbmc_project/time/bmc", + "org.freedesktop.DBus.Properties", "Set", + "xyz.openbmc_project.Time.EpochTime", "Elapsed", + std::variant(durMicroSecs)); + } + else + { + messages::propertyValueFormatError(aResp->res, datetime, + "DateTime"); + return; + } + } + + std::string uuid; +}; + +class ManagerCollection : public Node +{ + public: + ManagerCollection(CrowApp& app) : Node(app, "/redfish/v1/Managers/") + { + entityPrivileges = { + {boost::beast::http::verb::get, {{"Login"}}}, + {boost::beast::http::verb::head, {{"Login"}}}, + {boost::beast::http::verb::patch, {{"ConfigureManager"}}}, + {boost::beast::http::verb::put, {{"ConfigureManager"}}}, + {boost::beast::http::verb::delete_, {{"ConfigureManager"}}}, + {boost::beast::http::verb::post, {{"ConfigureManager"}}}}; + } + + private: +#ifndef BMCWEB_ENABLE_REDFISH_RMC + void doGet(crow::Response& res, const crow::Request& req, + const std::vector& params) override + { + // Collections don't include the static data added by SubRoute + // because it has a duplicate entry for members + res.jsonValue["@odata.id"] = "/redfish/v1/Managers"; + res.jsonValue["@odata.type"] = "#ManagerCollection.ManagerCollection"; + res.jsonValue["@odata.context"] = + "/redfish/v1/$metadata#ManagerCollection.ManagerCollection"; + res.jsonValue["Name"] = "Manager Collection"; + res.jsonValue["Members@odata.count"] = 1; + res.jsonValue["Members"] = { + { { "@odata.id", + "/redfish/v1/Managers/bmc" } }}; + res.end(); + } +#else + void doGet(crow::Response& res, const crow::Request& req, + const std::vector& params) override + { + // Collections don't include the static data added by SubRoute + // because it has a duplicate entry for members + res.jsonValue["@odata.id"] = "/redfish/v1/Managers"; + res.jsonValue["@odata.type"] = "#ManagerCollection.ManagerCollection"; + res.jsonValue["@odata.context"] = + "/redfish/v1/$metadata#ManagerCollection.ManagerCollection"; + res.jsonValue["Name"] = "Manager Collection"; + res.jsonValue["Members@odata.count"] = 1; + res.jsonValue["Members"] = { + {{"@odata.id", "/redfish/v1/Managers/rmc"}}}; + res.end(); + } +#endif // !BMCWEB_ENABLE_REDFISH_RMC +}; +} // namespace redfish diff --git a/Contrib-Inspur/bmcweb/redfish-core/lib/rmc/rmc_network_protocol.hpp b/Contrib-Inspur/bmcweb/redfish-core/lib/rmc/rmc_network_protocol.hpp new file mode 100644 index 00000000..4986bdd8 --- /dev/null +++ b/Contrib-Inspur/bmcweb/redfish-core/lib/rmc/rmc_network_protocol.hpp @@ -0,0 +1,461 @@ +/* +// Copyright (c) 2018 Intel Corporation +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +*/ +#pragma once + +#include "error_messages.hpp" +#include "node.hpp" + +#include +#include +#include +namespace redfish +{ + +enum NetworkProtocolUnitStructFields +{ + NET_PROTO_UNIT_NAME, + NET_PROTO_UNIT_DESC, + NET_PROTO_UNIT_LOAD_STATE, + NET_PROTO_UNIT_ACTIVE_STATE, + NET_PROTO_UNIT_SUB_STATE, + NET_PROTO_UNIT_DEVICE, + NET_PROTO_UNIT_OBJ_PATH, + NET_PROTO_UNIT_ALWAYS_0, + NET_PROTO_UNIT_ALWAYS_EMPTY, + NET_PROTO_UNIT_ALWAYS_ROOT_PATH +}; + +enum NetworkProtocolListenResponseElements +{ + NET_PROTO_LISTEN_TYPE, + NET_PROTO_LISTEN_STREAM +}; + +/** + * @brief D-Bus Unit structure returned in array from ListUnits Method + */ +using UnitStruct = + std::tuple; + +const static boost::container::flat_map + protocolToDBus{{"SSH", "dropbear"}, + {"HTTPS", "bmcweb"}, + {"IPMI", "phosphor-ipmi-net"}}; + +inline void + extractNTPServersAndDomainNamesData(const GetManagedObjects& dbus_data, + std::vector& ntpData, + std::vector& dnData) +{ + for (const auto& obj : dbus_data) + { + for (const auto& ifacePair : obj.second) + { + if (obj.first == "/xyz/openbmc_project/network/eth0") + { + if (ifacePair.first == + "xyz.openbmc_project.Network.EthernetInterface") + { + for (const auto& propertyPair : ifacePair.second) + { + if (propertyPair.first == "NTPServers") + { + const std::vector* ntpServers = + sdbusplus::message::variant_ns::get_if< + std::vector>( + &propertyPair.second); + if (ntpServers != nullptr) + { + ntpData = std::move(*ntpServers); + } + } + else if (propertyPair.first == "DomainName") + { + const std::vector* domainNames = + sdbusplus::message::variant_ns::get_if< + std::vector>( + &propertyPair.second); + if (domainNames != nullptr) + { + dnData = std::move(*domainNames); + } + } + } + } + } + } + } +} + +template +void getEthernetIfaceData(CallbackFunc&& callback) +{ + crow::connections::systemBus->async_method_call( + [callback{std::move(callback)}]( + const boost::system::error_code error_code, + const GetManagedObjects& dbus_data) { + std::vector ntpServers; + std::vector domainNames; + + if (error_code) + { + callback(false, ntpServers, domainNames); + return; + } + + extractNTPServersAndDomainNamesData(dbus_data, ntpServers, + domainNames); + + callback(true, ntpServers, domainNames); + }, + "xyz.openbmc_project.Network", "/xyz/openbmc_project/network", + "org.freedesktop.DBus.ObjectManager", "GetManagedObjects"); +} + +class NetworkProtocol : public Node +{ + public: + NetworkProtocol(CrowApp& app) : +#ifndef BMCWEB_ENABLE_REDFISH_RMC + Node(app, "/redfish/v1/Managers/bmc/NetworkProtocol") +#else + Node(app, "/redfish/v1/Managers/rmc/NetworkProtocol") +#endif + + { + entityPrivileges = { + {boost::beast::http::verb::get, {{"Login"}}}, + {boost::beast::http::verb::head, {{"Login"}}}, + {boost::beast::http::verb::patch, {{"ConfigureManager"}}}, + {boost::beast::http::verb::put, {{"ConfigureManager"}}}, + {boost::beast::http::verb::delete_, {{"ConfigureManager"}}}, + {boost::beast::http::verb::post, {{"ConfigureManager"}}}}; + } + + private: + void doGet(crow::Response& res, const crow::Request& req, + const std::vector& params) override + { + std::shared_ptr asyncResp = std::make_shared(res); + + getData(asyncResp); + } + + std::string getHostName() const + { + std::string hostName; + + std::array hostNameCStr; + if (gethostname(hostNameCStr.data(), hostNameCStr.size()) == 0) + { + hostName = hostNameCStr.data(); + } + return hostName; + } + + void getNTPProtocolEnabled(const std::shared_ptr& asyncResp) + { + crow::connections::systemBus->async_method_call( + [asyncResp](const boost::system::error_code error_code, + const std::variant& timeSyncMethod) { + const std::string* s = + std::get_if(&timeSyncMethod); + + if (*s == "xyz.openbmc_project.Time.Synchronization.Method.NTP") + { + asyncResp->res.jsonValue["NTP"]["ProtocolEnabled"] = true; + } + else if (*s == "xyz.openbmc_project.Time.Synchronization." + "Method.Manual") + { + asyncResp->res.jsonValue["NTP"]["ProtocolEnabled"] = false; + } + }, + "xyz.openbmc_project.Settings", + "/xyz/openbmc_project/time/sync_method", + "org.freedesktop.DBus.Properties", "Get", + "xyz.openbmc_project.Time.Synchronization", "TimeSyncMethod"); + } + + void getData(const std::shared_ptr& asyncResp) + { + asyncResp->res.jsonValue["@odata.type"] = + "#ManagerNetworkProtocol.v1_4_0.ManagerNetworkProtocol"; + asyncResp->res.jsonValue["@odata.id"] = + "/redfish/v1/Managers/bmc/NetworkProtocol"; + asyncResp->res.jsonValue["@odata.context"] = + "/redfish/v1/" + "$metadata#ManagerNetworkProtocol.ManagerNetworkProtocol"; + asyncResp->res.jsonValue["Id"] = "NetworkProtocol"; + asyncResp->res.jsonValue["Name"] = "Manager Network Protocol"; + asyncResp->res.jsonValue["Description"] = "Manager Network Service"; + asyncResp->res.jsonValue["Status"]["Health"] = "OK"; + asyncResp->res.jsonValue["Status"]["HealthRollup"] = "OK"; + asyncResp->res.jsonValue["Status"]["State"] = "Enabled"; +#ifdef BMCWEB_ENABLE_REDFISH_RMC + asyncResp->res.jsonValue["SSH"]["ProtocolEnable"] = true; + asyncResp->res.jsonValue["SSH"]["ProtocolEnabled"] = true; + asyncResp->res.jsonValue["HTTP"]["ProtocolEnable"] = true; + asyncResp->res.jsonValue["HTTP"]["ProtocolEnabled"] = true; + asyncResp->res.jsonValue["HTTP"]["Port"] = "80"; + asyncResp->res.jsonValue["HTTPS"]["ProtocolEnable"] = true; + asyncResp->res.jsonValue["HTTPS"]["ProtocolEnabled"] = true; + asyncResp->res.jsonValue["HTTPS"]["Port"] = "443"; +#endif + + for (auto& protocol : protocolToDBus) + { + asyncResp->res.jsonValue[protocol.first]["ProtocolEnabled"] = false; + } + + std::string hostName = getHostName(); + + asyncResp->res.jsonValue["HostName"] = hostName; + + getNTPProtocolEnabled(asyncResp); + + // TODO Get eth0 interface data, and call the below callback for JSON + // preparation + getEthernetIfaceData( + [hostName, asyncResp](const bool& success, + const std::vector& ntpServers, + const std::vector& domainNames) { + if (!success) + { + messages::resourceNotFound(asyncResp->res, + "EthernetInterface", "eth0"); + return; + } + asyncResp->res.jsonValue["NTP"]["NTPServers"] = ntpServers; + if (hostName.empty() == false) + { + std::string FQDN = std::move(hostName); + if (domainNames.empty() == false) + { + FQDN += "." + domainNames[0]; + } + asyncResp->res.jsonValue["FQDN"] = std::move(FQDN); + } + }); + + crow::connections::systemBus->async_method_call( + [asyncResp](const boost::system::error_code e, + const std::vector& r) { + if (e) + { + asyncResp->res.jsonValue = nlohmann::json::object(); + messages::internalError(asyncResp->res); + return; + } + asyncResp->res.jsonValue["HTTPS"]["Certificates"] = { + {"@odata.id", "/redfish/v1/Managers/bmc/NetworkProtocol/" + "HTTPS/Certificates"}}; + + for (auto& unit : r) + { + /* Only traverse through .socket units */ + std::string unitName = std::get(unit); + if (!boost::ends_with(unitName, ".socket")) + { + continue; + } + + for (auto& kv : protocolToDBus) + { + // We are interested in services, which starts with + // mapped service name + if (!boost::starts_with(unitName, kv.second)) + { + continue; + } + const char* rfServiceKey = kv.first; + std::string socketPath = + std::get(unit); + std::string unitState = + std::get(unit); + + asyncResp->res + .jsonValue[rfServiceKey]["ProtocolEnabled"] = + (unitState == "running") || + (unitState == "listening"); + + crow::connections::systemBus->async_method_call( + [asyncResp, + rfServiceKey{std::string(rfServiceKey)}]( + const boost::system::error_code ec, + const std::variant>>& resp) { + if (ec) + { + messages::internalError(asyncResp->res); + return; + } + const std::vector< + std::tuple>* + responsePtr = std::get_if>>( + &resp); + if (responsePtr == nullptr || + responsePtr->size() < 1) + { + return; + } + + const std::string& listenStream = + std::get( + (*responsePtr)[0]); + std::size_t lastColonPos = + listenStream.rfind(":"); + if (lastColonPos == std::string::npos) + { + // Not a port + return; + } + std::string portStr = + listenStream.substr(lastColonPos + 1); + if (portStr.empty()) + { + return; + } + char* endPtr = nullptr; + errno = 0; + // Use strtol instead of stroi to avoid + // exceptions + long port = + std::strtol(portStr.c_str(), &endPtr, 10); + if ((errno == 0) && (*endPtr == '\0')) + { + asyncResp->res + .jsonValue[rfServiceKey]["Port"] = port; + } + return; + }, + "org.freedesktop.systemd1", socketPath, + "org.freedesktop.DBus.Properties", "Get", + "org.freedesktop.systemd1.Socket", "Listen"); + + // We found service, break the inner loop. + break; + } + } + }, + "org.freedesktop.systemd1", "/org/freedesktop/systemd1", + "org.freedesktop.systemd1.Manager", "ListUnits"); + } + + void handleHostnamePatch(const std::string& hostName, + const std::shared_ptr& asyncResp) + { + crow::connections::systemBus->async_method_call( + [asyncResp](const boost::system::error_code ec) { + if (ec) + { + messages::internalError(asyncResp->res); + return; + } + }, + "xyz.openbmc_project.Network", + "/xyz/openbmc_project/network/config", + "org.freedesktop.DBus.Properties", "Set", + "xyz.openbmc_project.Network.SystemConfiguration", "HostName", + std::variant(hostName)); + } + + void handleNTPProtocolEnabled(const bool& ntpEnabled, + const std::shared_ptr& asyncResp) + { + std::string timeSyncMethod; + if (ntpEnabled) + { + timeSyncMethod = + "xyz.openbmc_project.Time.Synchronization.Method.NTP"; + } + else + { + timeSyncMethod = + "xyz.openbmc_project.Time.Synchronization.Method.Manual"; + } + + crow::connections::systemBus->async_method_call( + [asyncResp](const boost::system::error_code error_code) {}, + "xyz.openbmc_project.Settings", + "/xyz/openbmc_project/time/sync_method", + "org.freedesktop.DBus.Properties", "Set", + "xyz.openbmc_project.Time.Synchronization", "TimeSyncMethod", + std::variant{timeSyncMethod}); + } + + void handleNTPServersPatch(const std::vector& ntpServers, + const std::shared_ptr& asyncResp) + { + crow::connections::systemBus->async_method_call( + [asyncResp](const boost::system::error_code ec) { + if (ec) + { + messages::internalError(asyncResp->res); + return; + } + }, + "xyz.openbmc_project.Network", "/xyz/openbmc_project/network/eth0", + "org.freedesktop.DBus.Properties", "Set", + "xyz.openbmc_project.Network.EthernetInterface", "NTPServers", + std::variant>{ntpServers}); + } + + void doPatch(crow::Response& res, const crow::Request& req, + const std::vector& params) override + { + std::shared_ptr asyncResp = std::make_shared(res); + std::optional newHostName; + std::optional ntp; + + if (!json_util::readJson(req, res, "HostName", newHostName, "NTP", ntp)) + { + return; + } + + res.result(boost::beast::http::status::no_content); + if (newHostName) + { + handleHostnamePatch(*newHostName, asyncResp); + } + + if (ntp) + { + std::optional> ntpServers; + std::optional ntpEnabled; + if (!json_util::readJson(*ntp, res, "NTPServers", ntpServers, + "ProtocolEnabled", ntpEnabled)) + { + return; + } + + if (ntpEnabled) + { + handleNTPProtocolEnabled(*ntpEnabled, asyncResp); + } + + if (ntpServers) + { + handleNTPServersPatch(*ntpServers, asyncResp); + } + } + } +}; + +} // namespace redfish diff --git a/Contrib-Inspur/bmcweb/redfish-core/lib/rmc/rmc_power.hpp b/Contrib-Inspur/bmcweb/redfish-core/lib/rmc/rmc_power.hpp new file mode 100644 index 00000000..a3c872bb --- /dev/null +++ b/Contrib-Inspur/bmcweb/redfish-core/lib/rmc/rmc_power.hpp @@ -0,0 +1,574 @@ +/* +// Copyright (c) 2018 Intel Corporation +// Copyright (c) 2018 Ampere Computing LLC +/ +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +*/ +#pragma once + +#include "node.hpp" +#include "sensors.hpp" +#include "logging.h" +#include + +namespace redfish +{ + +class Power : public Node +{ + public: + Power(CrowApp& app) : + Node((app), "/redfish/v1/Chassis//Power/", std::string()) + { + entityPrivileges = { + {boost::beast::http::verb::get, {{"Login"}}}, + {boost::beast::http::verb::head, {{"Login"}}}, + {boost::beast::http::verb::patch, {{"ConfigureComponents"}}}, + {boost::beast::http::verb::put, {{"ConfigureManager"}}}, + {boost::beast::http::verb::delete_, {{"ConfigureManager"}}}, + {boost::beast::http::verb::post, {{"ConfigureManager"}}}}; + } + + private: + std::vector typeList = {"/xyz/openbmc_project/sensors/voltage", + "/xyz/openbmc_project/sensors/power"}; + void setPowerCapOverride( + std::shared_ptr asyncResp, + std::vector& powerControlCollections) + { + auto getChassisPath = + [asyncResp, powerControlCollections]( + const std::optional& chassisPath) mutable { + if (!chassisPath) + { + BMCWEB_LOG_ERROR << "Don't find valid chassis path "; + messages::resourceNotFound(asyncResp->res, "Chassis", + asyncResp->chassisId); + return; + } + + if (powerControlCollections.size() != 1) + { + BMCWEB_LOG_ERROR + << "Don't support multiple hosts at present "; + messages::resourceNotFound(asyncResp->res, "Power", + "PowerControl"); + return; + } + + auto& item = powerControlCollections[0]; + + std::optional powerLimit; + if (!json_util::readJson(item, asyncResp->res, "PowerLimit", + powerLimit)) + { + return; + } + if (!powerLimit) + { + return; + } + std::optional value; + if (!json_util::readJson(*powerLimit, asyncResp->res, + "LimitInWatts", value)) + { + return; + } + if (!value) + { + return; + } + auto valueHandler = [value, asyncResp]( + const boost::system::error_code ec, + const SensorVariant& powerCapEnable) { + if (ec) + { + messages::internalError(asyncResp->res); + BMCWEB_LOG_ERROR + << "powerCapEnable Get handler: Dbus error " << ec; + return; + } + // Check PowerCapEnable + const bool* b = + sdbusplus::message::variant_ns::get_if( + &powerCapEnable); + if (b == nullptr) + { + messages::internalError(asyncResp->res); + BMCWEB_LOG_ERROR + << "Fail to get PowerCapEnable status "; + return; + } + if (!(*b)) + { + messages::actionNotSupported( + asyncResp->res, + "Setting LimitInWatts when PowerLimit " + "feature is disabled"); + BMCWEB_LOG_ERROR << "PowerLimit feature is disabled "; + return; + } + + crow::connections::systemBus->async_method_call( + [asyncResp](const boost::system::error_code ec) { + if (ec) + { + BMCWEB_LOG_DEBUG + << "Power Limit Set: Dbus error: " << ec; + messages::internalError(asyncResp->res); + return; + } + asyncResp->res.result( + boost::beast::http::status::no_content); + }, + "xyz.openbmc_project.Settings", + "/xyz/openbmc_project/control/host0/power_cap", + "org.freedesktop.DBus.Properties", "Set", + "xyz.openbmc_project.Control.Power.Cap", "PowerCap", + sdbusplus::message::variant(*value)); + }; + crow::connections::systemBus->async_method_call( + std::move(valueHandler), "xyz.openbmc_project.Settings", + "/xyz/openbmc_project/control/host0/power_cap", + "org.freedesktop.DBus.Properties", "Get", + "xyz.openbmc_project.Control.Power.Cap", "PowerCapEnable"); + }; + getValidChassisPath(asyncResp, std::move(getChassisPath)); + } +#ifndef BMCWEB_ENABLE_REDFISH_RMC + void doGet(crow::Response& res, const crow::Request& req, + const std::vector& params) override + { + if (params.size() != 1) + { + res.result(boost::beast::http::status::internal_server_error); + res.end(); + return; + } + const std::string& chassis_name = params[0]; + + res.jsonValue["PowerControl"] = nlohmann::json::array(); + + auto sensorAsyncResp = std::make_shared( + res, chassis_name, typeList, "Power"); + + getChassisData(sensorAsyncResp); + + // This callback verifies that the power limit is only provided for the + // chassis that implements the Chassis inventory item. This prevents + // things like power supplies providing the chassis power limit + auto chassisHandler = [sensorAsyncResp]( + const boost::system::error_code e, + const std::vector& + chassisPaths) { + if (e) + { + BMCWEB_LOG_ERROR + << "Power Limit GetSubTreePaths handler Dbus error " << e; + return; + } + + bool found = false; + for (const std::string& chassis : chassisPaths) + { + size_t len = std::string::npos; + size_t lastPos = chassis.rfind("/"); + if (lastPos == std::string::npos) + { + continue; + } + + if (lastPos == chassis.size() - 1) + { + size_t end = lastPos; + lastPos = chassis.rfind("/", lastPos - 1); + if (lastPos == std::string::npos) + { + continue; + } + + len = end - (lastPos + 1); + } + + std::string interfaceChassisName = + chassis.substr(lastPos + 1, len); + if (!interfaceChassisName.compare(sensorAsyncResp->chassisId)) + { + found = true; + break; + } + } + + if (!found) + { + BMCWEB_LOG_DEBUG << "Power Limit not present for " + << sensorAsyncResp->chassisId; + return; + } + + auto valueHandler = + [sensorAsyncResp]( + const boost::system::error_code ec, + const std::vector>& + properties) { + if (ec) + { + messages::internalError(sensorAsyncResp->res); + BMCWEB_LOG_ERROR + << "Power Limit GetAll handler: Dbus error " << ec; + return; + } + + nlohmann::json& tempArray = + sensorAsyncResp->res.jsonValue["PowerControl"]; + + // Put multiple "sensors" into a single PowerControl, 0, so + // only create the first one + if (tempArray.empty()) + { + // Mandatory properties odata.id and MemberId + // A warning without a odata.type + tempArray.push_back( + {{"@odata.type", "#Power.v1_0_0.PowerControl"}, + {"@odata.id", "/redfish/v1/Chassis/" + + sensorAsyncResp->chassisId + + "/Power#/PowerControl/0"}, + {"Name", "Chassis Power Control"}, + {"MemberId", "0"}}); + } + + nlohmann::json& sensorJson = tempArray.back(); + bool enabled = false; + double powerCap = 0.0; + int64_t scale = 0; + + for (const std::pair& property : + properties) + { + if (!property.first.compare("Scale")) + { + const int64_t* i = + sdbusplus::message::variant_ns::get_if( + &property.second); + + if (i) + { + scale = *i; + } + } + else if (!property.first.compare("PowerCap")) + { + const double* d = + sdbusplus::message::variant_ns::get_if( + &property.second); + const int64_t* i = + sdbusplus::message::variant_ns::get_if( + &property.second); + const uint32_t* u = + sdbusplus::message::variant_ns::get_if< + uint32_t>(&property.second); + + if (d) + { + powerCap = *d; + } + else if (i) + { + powerCap = static_cast(*i); + } + else if (u) + { + powerCap = *u; + } + } + else if (!property.first.compare("PowerCapEnable")) + { + const bool* b = + sdbusplus::message::variant_ns::get_if( + &property.second); + + if (b) + { + enabled = *b; + } + } + } + + nlohmann::json& value = + sensorJson["PowerLimit"]["LimitInWatts"]; + + if (enabled) + { + // Redfish specification indicates PowerLimit should be + // null if the limit is not enabled. + value = powerCap * std::pow(10, scale); + } + }; + + crow::connections::systemBus->async_method_call( + std::move(valueHandler), "xyz.openbmc_project.Settings", + "/xyz/openbmc_project/control/host0/power_cap", + "org.freedesktop.DBus.Properties", "GetAll", + "xyz.openbmc_project.Control.Power.Cap"); + }; + + crow::connections::systemBus->async_method_call( + std::move(chassisHandler), "xyz.openbmc_project.ObjectMapper", + "/xyz/openbmc_project/object_mapper", + "xyz.openbmc_project.ObjectMapper", "GetSubTreePaths", + "/xyz/openbmc_project/inventory", 0, + std::array{ + "xyz.openbmc_project.Inventory.Item.Chassis"}); + } +#else + void getPowerControlInfo(const std::string& chassis_name, + std::shared_ptr asyncResp) + { + nlohmann::json& item = asyncResp->res.jsonValue["PowerControl"][0]; + item["@odata.id"] = + "/redfish/v1/Chassis/" + chassis_name + "/Power#/PowerControl/0"; + item["MemberId"] = 0; + item["Name"] = "System Power Control"; + item["PowerConsumedWatts"] = 8000; + item["PowerRequestedWatts"] = 8500; + item["PowerAvailableWatts"] = 8500; + item["PowerCapacityWatts"] = 10000; + item["PowerAllocatedWatts"] = 8500; + item["PowerMetrics"]["IntervalInMin"] = {}; + item["PowerMetrics"]["MinConsumedWatts"] = {}; + item["PowerMetrics"]["MaxConsumedWatts"] = {}; + item["PowerMetrics"]["AverageConsumedWatts"] = {}; + item["PowerLimit"]["LimitInWatts"] = {}; + item["PowerLimit"]["LimitException"] = {}; + item["PowerLimit"]["CorrectionInMs"] = {}; + item["RelatedItem"][0] = {{"@odata.id", "/redfish/v1/Chassis/node1"}}; + item["Status"]["State"] = "Enabled"; + item["Status"]["Health"] = "OK"; + item["Status"]["HealthRollup"] = "OK"; + } + void getVoltagesInfo(const std::string& chassis_name, + std::shared_ptr asyncResp, unsigned int id, + const std::string& sensor_name, int sensor_number, + double value) + { + nlohmann::json& item = asyncResp->res.jsonValue["Voltages"][id]; + item["@odata.id"] = "/redfish/v1/Chassis/" + chassis_name + + "/Power#/Voltages/" + std::to_string(id); + item["MemberId"] = id; + item["Name"] = sensor_name; + item["SensorNumber"] = sensor_number; + item["Status"]["State"] = "Enabled"; + item["Status"]["Health"] = "OK"; + item["ReadingVolts"] = value; + item["UpperThresholdNonCritical"] = {}; + item["UpperThresholdCritical"] = {}; + item["UpperThresholdFatal"] = {}; + item["LowerThresholdNonCritical"] = {}; + item["LowerThresholdCritical"] = {}; + item["LowerThresholdFatal"] = {}; + item["MinReadingRange"] = {}; + item["MaxReadingRange"] = {}; + item["PhysicalContext"] = "VoltageRegulator"; + item["RelatedItem"][0] = {{"@odata.id", "/redfish/v1/Chassis/node1"}}; + } + + // struct FreeEvDev + // { + // void operator()(struct libevdev* device) const + // { + // libevdev_free(device); + // } + // }; + + // std::unique_ptr evdevOpen(int fd) + // { + // libevdev* gpioDev = nullptr; + + // auto rc = libevdev_new_from_fd(fd, &gpioDev); + // if (!rc) + // { + // std::cout<<"readGpio:gpioDev is not null"< asyncResp) + { + std::string szSerialNumber[] = {"JCA190900202", "JCA190900009", "JCA190900182", + "JCA190900189", "JCA190900520", "JCA190900008"}; + size_t nszSerialNumber = sizeof(szSerialNumber) / sizeof(std::string); + size_t nGpioPsu = 356; + std::string gpioPath = "/dev/gpiochip0"; + for(size_t i = 0; i < nszSerialNumber; i++) + { + nlohmann::json& item = asyncResp->res.jsonValue["PowerSupplies"][i]; + item["@odata.id"] = "/redfish/v1/Chassis/" + chassis_name + + "/Power#/PowerSupplies/" + std::to_string(i); + //item["@odata.id"] += std::to_string(i); + item["MemberId"] = i; + item["Name"] = "Power Supply"; + std::string strState = readGpio(gpioPath, nGpioPsu+i); + item["Status"]["State"] = strState; + //item["Status"]["State"] = "enable"; + item["Status"]["Health"] = "OK"; + item["PowerSupplyType"] = "DC"; + item["LineInputVoltageType"] = "DCNeg48V"; + item["LineInputVoltage"] = 48; + item["PowerCapacityWatts"] = 400; + item["LastPowerOutputWatts"] = 192; + item["Model"] = "DPST-3030BBA"; + item["Manufacturer"] = "Delta"; + item["FirmwareVersion"] = "2.75"; + item["SerialNumber"] = szSerialNumber[i]; + item["PartNumber"] = szSerialNumber[i] + "W0"; + item["SparePartNumber"] = {}; + item["InputRanges"] = nlohmann::json::array(); + item["IndicatorLED"] = "Off"; + + item["RelatedItem"][0] = { + {"@odata.id", "/redfish/v1/Chassis/node1"}}; + } + + + } + + void getPowerInfo(const std::string& chassis_name, + std::shared_ptr asyncResp) + { + getPowerControlInfo(chassis_name, asyncResp); + getPowerSuppliesInfo(chassis_name, asyncResp); + getVoltagesInfo(chassis_name, asyncResp, 0, "VRM1", 11, 12); + getVoltagesInfo(chassis_name, asyncResp, 1, "P5V", 12, 5); + getVoltagesInfo(chassis_name, asyncResp, 2, "P3.3V", 13, 3.3); + getVoltagesInfo(chassis_name, asyncResp, 3, "P1.5V", 14, 1.5); + getVoltagesInfo(chassis_name, asyncResp, 4, "P3.3V_STBY", 15, 3.3); + } + + void doGet(crow::Response& res, const crow::Request& req, + const std::vector& params) override + { + if (params.size() != 1) + { + res.result(boost::beast::http::status::internal_server_error); + res.end(); + return; + } + const std::string& chassis_name = params[0]; + + res.jsonValue["@odata.id"] = + "/redfish/v1/Chassis/" + chassis_name + "/Power"; + res.jsonValue["@odata.type"] = "#Power.v1_2_1.Power"; + res.jsonValue["@odata.context"] = "/redfish/v1/$metadata#Power.Power"; + res.jsonValue["Id"] = "Power"; + res.jsonValue["Name"] = "Power"; + auto asyncResp = std::make_shared(res); + + getPowerInfo(chassis_name, asyncResp); + } +#endif // !BMCWEB_ENABLE_REDFISH_RMC + void doPatch(crow::Response& res, const crow::Request& req, + const std::vector& params) override + { + if (params.size() != 1) + { + messages::internalError(res); + res.end(); + return; + } + + const std::string& chassisName = params[0]; + auto asyncResp = std::make_shared(res, chassisName, + typeList, "Power"); + + std::optional> voltageCollections; + std::optional> powerCtlCollections; + + if (!json_util::readJson(req, asyncResp->res, "PowerControl", + powerCtlCollections, "Voltages", + voltageCollections)) + { + return; + } + + if (powerCtlCollections) + { + setPowerCapOverride(asyncResp, *powerCtlCollections); + } + if (voltageCollections) + { + std::unordered_map> + allCollections; + allCollections.emplace("Voltages", *std::move(voltageCollections)); + setSensorOverride(asyncResp, allCollections, chassisName, typeList); + } + } +}; + +} // namespace redfish diff --git a/Contrib-Inspur/bmcweb/redfish-core/lib/rmc/rmc_systems.hpp b/Contrib-Inspur/bmcweb/redfish-core/lib/rmc/rmc_systems.hpp new file mode 100644 index 00000000..ec29c65a --- /dev/null +++ b/Contrib-Inspur/bmcweb/redfish-core/lib/rmc/rmc_systems.hpp @@ -0,0 +1,1853 @@ +/* +// Copyright (c) 2018 Intel Corporation +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +*/ +#pragma once + +#include "health.hpp" +#include "led.hpp" +#include "pcie.hpp" +#include "redfish_util.hpp" + +#include +#include +#include +#include +#include + +namespace redfish +{ + +/** + * @brief Updates the Functional State of DIMMs + * + * @param[in] aResp Shared pointer for completing asynchronous calls + * @param[in] dimmState Dimm's Functional state, true/false + * + * @return None. + */ +void updateDimmProperties(std::shared_ptr aResp, + const std::variant &dimmState) +{ + const bool *isDimmFunctional = std::get_if(&dimmState); + if (isDimmFunctional == nullptr) + { + messages::internalError(aResp->res); + return; + } + BMCWEB_LOG_DEBUG << "Dimm Functional: " << *isDimmFunctional; + + // Set it as Enabled if atleast one DIMM is functional + // Update STATE only if previous State was DISABLED and current Dimm is + // ENABLED. + nlohmann::json &prevMemSummary = + aResp->res.jsonValue["MemorySummary"]["Status"]["State"]; + if (prevMemSummary == "Disabled") + { + if (*isDimmFunctional == true) + { + aResp->res.jsonValue["MemorySummary"]["Status"]["State"] = + "Enabled"; + } + } +} + +/* + * @brief Update "ProcessorSummary" "Count" based on Cpu PresenceState + * + * @param[in] aResp Shared pointer for completing asynchronous calls + * @param[in] cpuPresenceState CPU present or not + * + * @return None. + */ +void modifyCpuPresenceState(std::shared_ptr aResp, + const std::variant &cpuPresenceState) +{ + const bool *isCpuPresent = std::get_if(&cpuPresenceState); + + if (isCpuPresent == nullptr) + { + messages::internalError(aResp->res); + return; + } + BMCWEB_LOG_DEBUG << "Cpu Present: " << *isCpuPresent; + + if (*isCpuPresent == true) + { + nlohmann::json &procCount = + aResp->res.jsonValue["ProcessorSummary"]["Count"]; + auto procCountPtr = + procCount.get_ptr(); + if (procCountPtr != nullptr) + { + // shouldn't be possible to be nullptr + *procCountPtr += 1; + } + } +} + +/* + * @brief Update "ProcessorSummary" "Status" "State" based on + * CPU Functional State + * + * @param[in] aResp Shared pointer for completing asynchronous calls + * @param[in] cpuFunctionalState is CPU functional true/false + * + * @return None. + */ +void modifyCpuFunctionalState(std::shared_ptr aResp, + const std::variant &cpuFunctionalState) +{ + const bool *isCpuFunctional = std::get_if(&cpuFunctionalState); + + if (isCpuFunctional == nullptr) + { + messages::internalError(aResp->res); + return; + } + BMCWEB_LOG_DEBUG << "Cpu Functional: " << *isCpuFunctional; + + nlohmann::json &prevProcState = + aResp->res.jsonValue["ProcessorSummary"]["Status"]["State"]; + + // Set it as Enabled if atleast one CPU is functional + // Update STATE only if previous State was Non_Functional and current CPU is + // Functional. + if (prevProcState == "Disabled") + { + if (*isCpuFunctional == true) + { + aResp->res.jsonValue["ProcessorSummary"]["Status"]["State"] = + "Enabled"; + } + } +} + +/* + * @brief Retrieves computer system properties over dbus + * + * @param[in] aResp Shared pointer for completing asynchronous calls + * @param[in] name Computer system name from request + * + * @return None. + */ +void getComputerSystem(std::shared_ptr aResp, + std::shared_ptr systemHealth) +{ + BMCWEB_LOG_DEBUG << "Get available system components."; + + crow::connections::systemBus->async_method_call( + [aResp, systemHealth]( + const boost::system::error_code ec, + const std::vector>>>> + &subtree) { + if (ec) + { + BMCWEB_LOG_DEBUG << "DBUS response error"; + messages::internalError(aResp->res); + return; + } + // Iterate over all retrieved ObjectPaths. + for (const std::pair>>> + &object : subtree) + { + const std::string &path = object.first; + BMCWEB_LOG_DEBUG << "Got path: " << path; + const std::vector< + std::pair>> + &connectionNames = object.second; + if (connectionNames.size() < 1) + { + continue; + } + + auto memoryHealth = std::make_shared( + aResp, aResp->res.jsonValue["MemorySummary"]["Status"]); + + auto cpuHealth = std::make_shared( + aResp, aResp->res.jsonValue["ProcessorSummary"]["Status"]); + + systemHealth->children.emplace_back(memoryHealth); + systemHealth->children.emplace_back(cpuHealth); + + // This is not system, so check if it's cpu, dimm, UUID or + // BiosVer + for (const auto &connection : connectionNames) + { + for (const auto &interfaceName : connection.second) + { + if (interfaceName == + "xyz.openbmc_project.Inventory.Item.Dimm") + { + BMCWEB_LOG_DEBUG + << "Found Dimm, now get its properties."; + + crow::connections::systemBus->async_method_call( + [aResp, service{connection.first}, + path(std::move(path))]( + const boost::system::error_code ec, + const std::vector< + std::pair> + &properties) { + if (ec) + { + BMCWEB_LOG_ERROR + << "DBUS response error " << ec; + messages::internalError(aResp->res); + return; + } + BMCWEB_LOG_DEBUG << "Got " + << properties.size() + << " Dimm properties."; + + if (properties.size() > 0) + { + for (const std::pair + &property : properties) + { + if (property.first != + "MemorySizeInKB") + { + continue; + } + const uint32_t *value = + sdbusplus::message::variant_ns:: + get_if( + &property.second); + if (value == nullptr) + { + BMCWEB_LOG_DEBUG + << "Find incorrect type of " + "MemorySize"; + continue; + } + nlohmann::json &totalMemory = + aResp->res + .jsonValue["MemorySummar" + "y"] + ["TotalSystemMe" + "moryGiB"]; + uint64_t *preValue = + totalMemory + .get_ptr(); + if (preValue == nullptr) + { + continue; + } + aResp->res + .jsonValue["MemorySummary"] + ["TotalSystemMemoryGi" + "B"] = + *value / (1024 * 1024) + + *preValue; + aResp->res + .jsonValue["MemorySummary"] + ["Status"]["State"] = + "Enabled"; + } + } + else + { + auto getDimmProperties = + [aResp]( + const boost::system::error_code + ec, + const std::variant + &dimmState) { + if (ec) + { + BMCWEB_LOG_ERROR + << "DBUS response " + "error " + << ec; + return; + } + updateDimmProperties(aResp, + dimmState); + }; + crow::connections::systemBus + ->async_method_call( + std::move(getDimmProperties), + service, path, + "org.freedesktop.DBus." + "Properties", + "Get", + "xyz.openbmc_project.State." + "Decorator.OperationalStatus", + "Functional"); + } + }, + connection.first, path, + "org.freedesktop.DBus.Properties", "GetAll", + "xyz.openbmc_project.Inventory.Item.Dimm"); + + memoryHealth->inventory.emplace_back(path); + } + else if (interfaceName == + "xyz.openbmc_project.Inventory.Item.Cpu") + { + BMCWEB_LOG_DEBUG + << "Found Cpu, now get its properties."; + + crow::connections::systemBus->async_method_call( + [aResp, service{connection.first}, + path(std::move(path))]( + const boost::system::error_code ec, + const std::vector< + std::pair> + &properties) { + if (ec) + { + BMCWEB_LOG_ERROR + << "DBUS response error " << ec; + messages::internalError(aResp->res); + return; + } + BMCWEB_LOG_DEBUG << "Got " + << properties.size() + << " Cpu properties."; + + if (properties.size() > 0) + { + for (const auto &property : properties) + { + if (property.first == + "ProcessorFamily") + { + const std::string *value = + sdbusplus::message:: + variant_ns::get_if< + std::string>( + &property.second); + if (value != nullptr) + { + nlohmann::json + &procSummary = + aResp->res.jsonValue + ["ProcessorSumm" + "ary"]; + nlohmann::json &procCount = + procSummary["Count"]; + + auto procCountPtr = + procCount.get_ptr< + nlohmann::json:: + number_integer_t + *>(); + if (procCountPtr != nullptr) + { + // shouldn't be possible + // to be nullptr + *procCountPtr += 1; + } + procSummary["Status"] + ["State"] = + "Enabled"; + procSummary["Model"] = + *value; + } + } + } + } + else + { + auto getCpuPresenceState = + [aResp]( + const boost::system::error_code + ec, + const std::variant + &cpuPresenceCheck) { + if (ec) + { + BMCWEB_LOG_ERROR + << "DBUS response " + "error " + << ec; + return; + } + modifyCpuPresenceState( + aResp, cpuPresenceCheck); + }; + + auto getCpuFunctionalState = + [aResp]( + const boost::system::error_code + ec, + const std::variant + &cpuFunctionalCheck) { + if (ec) + { + BMCWEB_LOG_ERROR + << "DBUS response " + "error " + << ec; + return; + } + modifyCpuFunctionalState( + aResp, cpuFunctionalCheck); + }; + // Get the Presence of CPU + crow::connections::systemBus + ->async_method_call( + std::move(getCpuPresenceState), + service, path, + "org.freedesktop.DBus." + "Properties", + "Get", + "xyz.openbmc_project.Inventory." + "Item", + "Present"); + + // Get the Functional State + crow::connections::systemBus + ->async_method_call( + std::move( + getCpuFunctionalState), + service, path, + "org.freedesktop.DBus." + "Properties", + "Get", + "xyz.openbmc_project.State." + "Decorator." + "OperationalStatus", + "Functional"); + + // Get the MODEL from + // xyz.openbmc_project.Inventory.Decorator.Asset + // support it later as Model is Empty + // currently. + } + }, + connection.first, path, + "org.freedesktop.DBus.Properties", "GetAll", + "xyz.openbmc_project.Inventory.Item.Cpu"); + + cpuHealth->inventory.emplace_back(path); + } + else if (interfaceName == + "xyz.openbmc_project.Common.UUID") + { + BMCWEB_LOG_DEBUG + << "Found UUID, now get its properties."; + crow::connections::systemBus->async_method_call( + [aResp](const boost::system::error_code ec, + const std::vector< + std::pair> + &properties) { + if (ec) + { + BMCWEB_LOG_DEBUG + << "DBUS response error " << ec; + messages::internalError(aResp->res); + return; + } + BMCWEB_LOG_DEBUG << "Got " + << properties.size() + << " UUID properties."; + for (const std::pair + &property : properties) + { + if (property.first == "UUID") + { + const std::string *value = + sdbusplus::message::variant_ns:: + get_if( + &property.second); + + if (value != nullptr) + { + std::string valueStr = *value; + if (valueStr.size() == 32) + { + valueStr.insert(8, 1, '-'); + valueStr.insert(13, 1, '-'); + valueStr.insert(18, 1, '-'); + valueStr.insert(23, 1, '-'); + } + BMCWEB_LOG_DEBUG << "UUID = " + << valueStr; + aResp->res.jsonValue["UUID"] = + valueStr; + } + } + } + }, + connection.first, path, + "org.freedesktop.DBus.Properties", "GetAll", + "xyz.openbmc_project.Common.UUID"); + } + else if (interfaceName == + "xyz.openbmc_project.Inventory.Item.System") + { + crow::connections::systemBus->async_method_call( + [aResp](const boost::system::error_code ec, + const std::vector< + std::pair> + &propertiesList) { + if (ec) + { + // doesn't have to include this + // interface + return; + } + BMCWEB_LOG_DEBUG + << "Got " << propertiesList.size() + << " properties for system"; + for (const std::pair + &property : propertiesList) + { + const std::string &propertyName = + property.first; + if ((propertyName == "PartNumber") || + (propertyName == "SerialNumber") || + (propertyName == "Manufacturer") || + (propertyName == "Model")) + { + const std::string *value = + std::get_if( + &property.second); + if (value != nullptr) + { + aResp->res + .jsonValue[propertyName] = + *value; + } + } + } + aResp->res.jsonValue["Name"] = "system"; + aResp->res.jsonValue["Id"] = + aResp->res.jsonValue["SerialNumber"]; + // Grab the bios version + fw_util::getActiveFwVersion( + aResp, fw_util::biosPurpose, + "BiosVersion"); + }, + connection.first, path, + "org.freedesktop.DBus.Properties", "GetAll", + "xyz.openbmc_project.Inventory.Decorator." + "Asset"); + + crow::connections::systemBus->async_method_call( + [aResp]( + const boost::system::error_code ec, + const std::variant &property) { + if (ec) + { + // doesn't have to include this + // interface + return; + } + + const std::string *value = + std::get_if(&property); + if (value != nullptr) + { + aResp->res.jsonValue["AssetTag"] = + *value; + } + }, + connection.first, path, + "org.freedesktop.DBus.Properties", "Get", + "xyz.openbmc_project.Inventory.Decorator." + "AssetTag", + "AssetTag"); + } + } + } + } + }, + "xyz.openbmc_project.ObjectMapper", + "/xyz/openbmc_project/object_mapper", + "xyz.openbmc_project.ObjectMapper", "GetSubTree", + "/xyz/openbmc_project/inventory", int32_t(0), + std::array{ + "xyz.openbmc_project.Inventory.Decorator.Asset", + "xyz.openbmc_project.Inventory.Item.Cpu", + "xyz.openbmc_project.Inventory.Item.Dimm", + "xyz.openbmc_project.Inventory.Item.System", + "xyz.openbmc_project.Common.UUID", + }); +} + +/** + * @brief Retrieves host state properties over dbus + * + * @param[in] aResp Shared pointer for completing asynchronous calls. + * + * @return None. + */ +void getHostState(std::shared_ptr aResp) +{ + BMCWEB_LOG_DEBUG << "Get host information."; + crow::connections::systemBus->async_method_call( + [aResp](const boost::system::error_code ec, + const std::variant &hostState) { + if (ec) + { + BMCWEB_LOG_DEBUG << "DBUS response error " << ec; + messages::internalError(aResp->res); + return; + } + + const std::string *s = std::get_if(&hostState); + BMCWEB_LOG_DEBUG << "Host state: " << *s; + if (s != nullptr) + { + // Verify Host State + if (*s == "xyz.openbmc_project.State.Host.HostState.Running") + { + aResp->res.jsonValue["PowerState"] = "On"; + aResp->res.jsonValue["Status"]["State"] = "Enabled"; + } + else + { + aResp->res.jsonValue["PowerState"] = "Off"; + aResp->res.jsonValue["Status"]["State"] = "Disabled"; + } + } + }, + "xyz.openbmc_project.State.Host", "/xyz/openbmc_project/state/host0", + "org.freedesktop.DBus.Properties", "Get", + "xyz.openbmc_project.State.Host", "CurrentHostState"); +} + +/** + * @brief Traslates boot source DBUS property value to redfish. + * + * @param[in] dbusSource The boot source in DBUS speak. + * + * @return Returns as a string, the boot source in Redfish terms. If translation + * cannot be done, returns an empty string. + */ +static std::string dbusToRfBootSource(const std::string &dbusSource) +{ + if (dbusSource == "xyz.openbmc_project.Control.Boot.Source.Sources.Default") + { + return "None"; + } + else if (dbusSource == + "xyz.openbmc_project.Control.Boot.Source.Sources.Disk") + { + return "Hdd"; + } + else if (dbusSource == + "xyz.openbmc_project.Control.Boot.Source.Sources.ExternalMedia") + { + return "Cd"; + } + else if (dbusSource == + "xyz.openbmc_project.Control.Boot.Source.Sources.Network") + { + return "Pxe"; + } + else if (dbusSource == + "xyz.openbmc_project.Control.Boot.Source.Sources.RemovableMedia") + { + return "Usb"; + } + else + { + return ""; + } +} + +/** + * @brief Traslates boot mode DBUS property value to redfish. + * + * @param[in] dbusMode The boot mode in DBUS speak. + * + * @return Returns as a string, the boot mode in Redfish terms. If translation + * cannot be done, returns an empty string. + */ +static std::string dbusToRfBootMode(const std::string &dbusMode) +{ + if (dbusMode == "xyz.openbmc_project.Control.Boot.Mode.Modes.Regular") + { + return "None"; + } + else if (dbusMode == "xyz.openbmc_project.Control.Boot.Mode.Modes.Safe") + { + return "Diags"; + } + else if (dbusMode == "xyz.openbmc_project.Control.Boot.Mode.Modes.Setup") + { + return "BiosSetup"; + } + else + { + return ""; + } +} + +/** + * @brief Traslates boot source from Redfish to the DBus boot paths. + * + * @param[in] rfSource The boot source in Redfish. + * @param[out] bootSource The DBus source + * @param[out] bootMode the DBus boot mode + * + * @return Integer error code. + */ +static int assignBootParameters(std::shared_ptr aResp, + const std::string &rfSource, + std::string &bootSource, std::string &bootMode) +{ + // The caller has initialized the bootSource and bootMode to: + // bootMode = "xyz.openbmc_project.Control.Boot.Mode.Modes.Regular"; + // bootSource = "xyz.openbmc_project.Control.Boot.Source.Sources.Default"; + // Only modify the bootSource/bootMode variable needed to achieve the + // desired boot action. + + if (rfSource == "None") + { + return 0; + } + else if (rfSource == "Pxe") + { + bootSource = "xyz.openbmc_project.Control.Boot.Source.Sources.Network"; + } + else if (rfSource == "Hdd") + { + bootSource = "xyz.openbmc_project.Control.Boot.Source.Sources.Disk"; + } + else if (rfSource == "Diags") + { + bootMode = "xyz.openbmc_project.Control.Boot.Mode.Modes.Safe"; + } + else if (rfSource == "Cd") + { + bootSource = + "xyz.openbmc_project.Control.Boot.Source.Sources.ExternalMedia"; + } + else if (rfSource == "BiosSetup") + { + bootMode = "xyz.openbmc_project.Control.Boot.Mode.Modes.Setup"; + } + else if (rfSource == "Usb") + { + bootSource = + "xyz.openbmc_project.Control.Boot.Source.Sources.RemovableMedia"; + } + else + { + BMCWEB_LOG_DEBUG << "Invalid property value for " + "BootSourceOverrideTarget: " + << bootSource; + messages::propertyValueNotInList(aResp->res, rfSource, + "BootSourceTargetOverride"); + return -1; + } + return 0; +} + +/** + * @brief Retrieves boot mode over DBUS and fills out the response + * + * @param[in] aResp Shared pointer for generating response message. + * @param[in] bootDbusObj The dbus object to query for boot properties. + * + * @return None. + */ +static void getBootMode(std::shared_ptr aResp, + std::string bootDbusObj) +{ + crow::connections::systemBus->async_method_call( + [aResp](const boost::system::error_code ec, + const std::variant &bootMode) { + if (ec) + { + BMCWEB_LOG_DEBUG << "DBUS response error " << ec; + messages::internalError(aResp->res); + return; + } + + const std::string *bootModeStr = + std::get_if(&bootMode); + + if (!bootModeStr) + { + messages::internalError(aResp->res); + return; + } + + BMCWEB_LOG_DEBUG << "Boot mode: " << *bootModeStr; + + // TODO (Santosh): Do we need to support override mode? + aResp->res.jsonValue["Boot"]["BootSourceOverrideMode"] = "Legacy"; + aResp->res.jsonValue["Boot"]["BootSourceOverrideTarget@Redfish." + "AllowableValues"] = { + "None", "Pxe", "Hdd", "Cd", "Diags", "BiosSetup", "Usb"}; + + if (*bootModeStr != + "xyz.openbmc_project.Control.Boot.Mode.Modes.Regular") + { + auto rfMode = dbusToRfBootMode(*bootModeStr); + if (!rfMode.empty()) + { + aResp->res.jsonValue["Boot"]["BootSourceOverrideTarget"] = + rfMode; + } + } + + // If the BootSourceOverrideTarget is still "None" at the end, + // reset the BootSourceOverrideEnabled to indicate that + // overrides are disabled + if (aResp->res.jsonValue["Boot"]["BootSourceOverrideTarget"] == + "None") + { + aResp->res.jsonValue["Boot"]["BootSourceOverrideEnabled"] = + "Disabled"; + } + }, + "xyz.openbmc_project.Settings", bootDbusObj, + "org.freedesktop.DBus.Properties", "Get", + "xyz.openbmc_project.Control.Boot.Mode", "BootMode"); +} + +/** + * @brief Retrieves boot source over DBUS + * + * @param[in] aResp Shared pointer for generating response message. + * @param[in] oneTimeEnable Boolean to indicate boot properties are one-time. + * + * @return None. + */ +static void getBootSource(std::shared_ptr aResp, bool oneTimeEnabled) +{ + std::string bootDbusObj = + oneTimeEnabled ? "/xyz/openbmc_project/control/host0/boot/one_time" + : "/xyz/openbmc_project/control/host0/boot"; + + BMCWEB_LOG_DEBUG << "Is one time: " << oneTimeEnabled; + aResp->res.jsonValue["Boot"]["BootSourceOverrideEnabled"] = + (oneTimeEnabled) ? "Once" : "Continuous"; + + crow::connections::systemBus->async_method_call( + [aResp, bootDbusObj](const boost::system::error_code ec, + const std::variant &bootSource) { + if (ec) + { + BMCWEB_LOG_DEBUG << "DBUS response error " << ec; + messages::internalError(aResp->res); + return; + } + + const std::string *bootSourceStr = + std::get_if(&bootSource); + + if (!bootSourceStr) + { + messages::internalError(aResp->res); + return; + } + BMCWEB_LOG_DEBUG << "Boot source: " << *bootSourceStr; + + auto rfSource = dbusToRfBootSource(*bootSourceStr); + if (!rfSource.empty()) + { + aResp->res.jsonValue["Boot"]["BootSourceOverrideTarget"] = + rfSource; + } + }, + "xyz.openbmc_project.Settings", bootDbusObj, + "org.freedesktop.DBus.Properties", "Get", + "xyz.openbmc_project.Control.Boot.Source", "BootSource"); + getBootMode(std::move(aResp), std::move(bootDbusObj)); +} + +/** + * @brief Retrieves "One time" enabled setting over DBUS and calls function to + * get boot source and boot mode. + * + * @param[in] aResp Shared pointer for generating response message. + * + * @return None. + */ +static void getBootProperties(std::shared_ptr aResp) +{ + BMCWEB_LOG_DEBUG << "Get boot information."; + + crow::connections::systemBus->async_method_call( + [aResp](const boost::system::error_code ec, + const sdbusplus::message::variant &oneTime) { + if (ec) + { + BMCWEB_LOG_DEBUG << "DBUS response error " << ec; + // not an error, don't have to have the interface + return; + } + + const bool *oneTimePtr = std::get_if(&oneTime); + + if (!oneTimePtr) + { + messages::internalError(aResp->res); + return; + } + getBootSource(aResp, *oneTimePtr); + }, + "xyz.openbmc_project.Settings", + "/xyz/openbmc_project/control/host0/boot/one_time", + "org.freedesktop.DBus.Properties", "Get", + "xyz.openbmc_project.Object.Enable", "Enabled"); +} +/** + * @brief Sets boot properties into DBUS object(s). + * + * @param[in] aResp Shared pointer for generating response message. + * @param[in] oneTimeEnabled Is "one-time" setting already enabled. + * @param[in] bootSource The boot source to set. + * @param[in] bootEnable The source override "enable" to set. + * + * @return Integer error code. + */ +static void setBootModeOrSource(std::shared_ptr aResp, + bool oneTimeEnabled, + std::optional bootSource, + std::optional bootEnable) +{ + std::string bootSourceStr = + "xyz.openbmc_project.Control.Boot.Source.Sources.Default"; + std::string bootModeStr = + "xyz.openbmc_project.Control.Boot.Mode.Modes.Regular"; + bool oneTimeSetting = oneTimeEnabled; + bool useBootSource = true; + + // Validate incoming parameters + if (bootEnable) + { + if (*bootEnable == "Once") + { + oneTimeSetting = true; + } + else if (*bootEnable == "Continuous") + { + oneTimeSetting = false; + } + else if (*bootEnable == "Disabled") + { + BMCWEB_LOG_DEBUG << "Boot source override will be disabled"; + oneTimeSetting = false; + useBootSource = false; + } + else + { + BMCWEB_LOG_DEBUG << "Unsupported value for " + "BootSourceOverrideEnabled: " + << *bootEnable; + messages::propertyValueNotInList(aResp->res, *bootEnable, + "BootSourceOverrideEnabled"); + return; + } + } + + if (bootSource && useBootSource) + { + // Source target specified + BMCWEB_LOG_DEBUG << "Boot source: " << *bootSource; + // Figure out which DBUS interface and property to use + if (assignBootParameters(aResp, *bootSource, bootSourceStr, + bootModeStr)) + { + BMCWEB_LOG_DEBUG + << "Invalid property value for BootSourceOverrideTarget: " + << *bootSource; + messages::propertyValueNotInList(aResp->res, *bootSource, + "BootSourceTargetOverride"); + return; + } + } + + // Act on validated parameters + BMCWEB_LOG_DEBUG << "DBUS boot source: " << bootSourceStr; + BMCWEB_LOG_DEBUG << "DBUS boot mode: " << bootModeStr; + const char *bootObj = + oneTimeSetting ? "/xyz/openbmc_project/control/host0/boot/one_time" + : "/xyz/openbmc_project/control/host0/boot"; + + crow::connections::systemBus->async_method_call( + [aResp](const boost::system::error_code ec) { + if (ec) + { + BMCWEB_LOG_DEBUG << "DBUS response error " << ec; + messages::internalError(aResp->res); + return; + } + BMCWEB_LOG_DEBUG << "Boot source update done."; + }, + "xyz.openbmc_project.Settings", bootObj, + "org.freedesktop.DBus.Properties", "Set", + "xyz.openbmc_project.Control.Boot.Source", "BootSource", + std::variant(bootSourceStr)); + + crow::connections::systemBus->async_method_call( + [aResp](const boost::system::error_code ec) { + if (ec) + { + BMCWEB_LOG_DEBUG << "DBUS response error " << ec; + messages::internalError(aResp->res); + return; + } + BMCWEB_LOG_DEBUG << "Boot mode update done."; + }, + "xyz.openbmc_project.Settings", bootObj, + "org.freedesktop.DBus.Properties", "Set", + "xyz.openbmc_project.Control.Boot.Mode", "BootMode", + std::variant(bootModeStr)); + + crow::connections::systemBus->async_method_call( + [aResp{std::move(aResp)}](const boost::system::error_code ec) { + if (ec) + { + BMCWEB_LOG_DEBUG << "DBUS response error " << ec; + messages::internalError(aResp->res); + return; + } + BMCWEB_LOG_DEBUG << "Boot enable update done."; + }, + "xyz.openbmc_project.Settings", + "/xyz/openbmc_project/control/host0/boot/one_time", + "org.freedesktop.DBus.Properties", "Set", + "xyz.openbmc_project.Object.Enable", "Enabled", + std::variant(oneTimeSetting)); +} + +/** + * @brief Retrieves "One time" enabled setting over DBUS and calls function to + * set boot source/boot mode properties. + * + * @param[in] aResp Shared pointer for generating response message. + * @param[in] bootSource The boot source from incoming RF request. + * @param[in] bootEnable The boot override enable from incoming RF request. + * + * @return Integer error code. + */ +static void setBootProperties(std::shared_ptr aResp, + std::optional bootSource, + std::optional bootEnable) +{ + BMCWEB_LOG_DEBUG << "Set boot information."; + + crow::connections::systemBus->async_method_call( + [aResp, bootSource{std::move(bootSource)}, + bootEnable{std::move(bootEnable)}]( + const boost::system::error_code ec, + const sdbusplus::message::variant &oneTime) { + if (ec) + { + BMCWEB_LOG_DEBUG << "DBUS response error " << ec; + messages::internalError(aResp->res); + return; + } + + const bool *oneTimePtr = std::get_if(&oneTime); + + if (!oneTimePtr) + { + messages::internalError(aResp->res); + return; + } + + BMCWEB_LOG_DEBUG << "Got one time: " << *oneTimePtr; + + setBootModeOrSource(aResp, *oneTimePtr, std::move(bootSource), + std::move(bootEnable)); + }, + "xyz.openbmc_project.Settings", + "/xyz/openbmc_project/control/host0/boot/one_time", + "org.freedesktop.DBus.Properties", "Get", + "xyz.openbmc_project.Object.Enable", "Enabled"); +} + +#ifdef BMCWEB_ENABLE_REDFISH_PROVISIONING_FEATURE +/** + * @brief Retrieves provisioning status + * + * @param[in] aResp Shared pointer for completing asynchronous calls. + * + * @return None. + */ +void getProvisioningStatus(std::shared_ptr aResp) +{ + BMCWEB_LOG_DEBUG << "Get OEM information."; + crow::connections::systemBus->async_method_call( + [aResp](const boost::system::error_code ec, + const std::vector> + &propertiesList) { + if (ec) + { + BMCWEB_LOG_DEBUG << "DBUS response error " << ec; + messages::internalError(aResp->res); + return; + } + + const bool *provState = nullptr; + const bool *lockState = nullptr; + for (const std::pair &property : + propertiesList) + { + if (property.first == "UfmProvisioned") + { + provState = std::get_if(&property.second); + } + else if (property.first == "UfmLocked") + { + lockState = std::get_if(&property.second); + } + } + + if ((provState == nullptr) || (lockState == nullptr)) + { + BMCWEB_LOG_DEBUG << "Unable to get PFR attributes."; + messages::internalError(aResp->res); + return; + } + + nlohmann::json &oemPFR = + aResp->res.jsonValue["Oem"]["OpenBmc"]["FirmwareProvisioning"]; + if (*provState == true) + { + if (*lockState == true) + { + oemPFR["ProvisioningStatus"] = "ProvisionedAndLocked"; + } + else + { + oemPFR["ProvisioningStatus"] = "ProvisionedButNotLocked"; + } + } + else + { + oemPFR["ProvisioningStatus"] = "NotProvisioned"; + } + }, + "xyz.openbmc_project.PFR.Manager", "/xyz/openbmc_project/pfr", + "org.freedesktop.DBus.Properties", "GetAll", + "xyz.openbmc_project.PFR.Attributes"); +} +#endif + +/** + * @brief Translates watchdog timeout action DBUS property value to redfish. + * + * @param[in] dbusAction The watchdog timeout action in D-BUS. + * + * @return Returns as a string, the timeout action in Redfish terms. If + * translation cannot be done, returns an empty string. + */ +static std::string dbusToRfWatchdogAction(const std::string &dbusAction) +{ + if (dbusAction == "xyz.openbmc_project.State.Watchdog.Action.None") + { + return "None"; + } + else if (dbusAction == + "xyz.openbmc_project.State.Watchdog.Action.HardReset") + { + return "ResetSystem"; + } + else if (dbusAction == "xyz.openbmc_project.State.Watchdog.Action.PowerOff") + { + return "PowerDown"; + } + else if (dbusAction == + "xyz.openbmc_project.State.Watchdog.Action.PowerCycle") + { + return "PowerCycle"; + } + + return ""; +} + +/** + *@brief Translates timeout action from Redfish to DBUS property value. + * + *@param[in] rfAction The timeout action in Redfish. + * + *@return Returns as a string, the time_out action as expected by DBUS. + *If translation cannot be done, returns an empty string. + */ + +static std::string rfToDbusWDTTimeOutAct(const std::string &rfAction) +{ + if (rfAction == "None") + { + return "xyz.openbmc_project.State.Watchdog.Action.None"; + } + else if (rfAction == "PowerCycle") + { + return "xyz.openbmc_project.State.Watchdog.Action.PowerCycle"; + } + else if (rfAction == "PowerDown") + { + return "xyz.openbmc_project.State.Watchdog.Action.PowerOff"; + } + else if (rfAction == "ResetSystem") + { + return "xyz.openbmc_project.State.Watchdog.Action.HardReset"; + } + + return ""; +} + +/** + * @brief Retrieves host watchdog timer properties over DBUS + * + * @param[in] aResp Shared pointer for completing asynchronous calls. + * + * @return None. + */ +void getHostWatchdogTimer(std::shared_ptr aResp) +{ + BMCWEB_LOG_DEBUG << "Get host watchodg"; + crow::connections::systemBus->async_method_call( + [aResp](const boost::system::error_code ec, + PropertiesType &properties) { + if (ec) + { + // watchdog service is stopped + BMCWEB_LOG_DEBUG << "DBUS response error " << ec; + return; + } + + BMCWEB_LOG_DEBUG << "Got " << properties.size() << " wdt prop."; + + nlohmann::json &hostWatchdogTimer = + aResp->res.jsonValue["HostWatchdogTimer"]; + + // watchdog service is running/enabled + hostWatchdogTimer["Status"]["State"] = "Enabled"; + + for (const auto &property : properties) + { + BMCWEB_LOG_DEBUG << "prop=" << property.first; + if (property.first == "Enabled") + { + const bool *state = std::get_if(&property.second); + + if (!state) + { + messages::internalError(aResp->res); + continue; + } + + hostWatchdogTimer["FunctionEnabled"] = *state; + } + else if (property.first == "ExpireAction") + { + const std::string *s = + std::get_if(&property.second); + if (!s) + { + messages::internalError(aResp->res); + continue; + } + + std::string action = dbusToRfWatchdogAction(*s); + if (action.empty()) + { + messages::internalError(aResp->res); + continue; + } + hostWatchdogTimer["TimeoutAction"] = action; + } + } + }, + "xyz.openbmc_project.Watchdog", "/xyz/openbmc_project/watchdog/host0", + "org.freedesktop.DBus.Properties", "GetAll", + "xyz.openbmc_project.State.Watchdog"); +} + +/** + * @brief Sets Host WatchDog Timer properties. + * + * @param[in] aResp Shared pointer for generating response message. + * @param[in] wdtEnable The WDTimer Enable value (true/false) from incoming + * RF request. + * @param[in] wdtTimeOutAction The WDT Timeout action, from incoming RF request. + * + * @return None. + */ +static void setWDTProperties(std::shared_ptr aResp, + const std::optional wdtEnable, + const std::optional &wdtTimeOutAction) +{ + BMCWEB_LOG_DEBUG << "Set host watchdog"; + + if (wdtTimeOutAction) + { + std::string wdtTimeOutActStr = rfToDbusWDTTimeOutAct(*wdtTimeOutAction); + // check if TimeOut Action is Valid + if (wdtTimeOutActStr.empty()) + { + BMCWEB_LOG_DEBUG << "Unsupported value for TimeoutAction: " + << *wdtTimeOutAction; + messages::propertyValueNotInList(aResp->res, *wdtTimeOutAction, + "TimeoutAction"); + return; + } + + crow::connections::systemBus->async_method_call( + [aResp](const boost::system::error_code ec) { + if (ec) + { + BMCWEB_LOG_DEBUG << "DBUS response error " << ec; + messages::internalError(aResp->res); + return; + } + }, + "xyz.openbmc_project.Watchdog", + "/xyz/openbmc_project/watchdog/host0", + "org.freedesktop.DBus.Properties", "Set", + "xyz.openbmc_project.State.Watchdog", "ExpireAction", + std::variant(wdtTimeOutActStr)); + } + + if (wdtEnable) + { + crow::connections::systemBus->async_method_call( + [aResp](const boost::system::error_code ec) { + if (ec) + { + BMCWEB_LOG_DEBUG << "DBUS response error " << ec; + messages::internalError(aResp->res); + return; + } + }, + "xyz.openbmc_project.Watchdog", + "/xyz/openbmc_project/watchdog/host0", + "org.freedesktop.DBus.Properties", "Set", + "xyz.openbmc_project.State.Watchdog", "Enabled", + std::variant(*wdtEnable)); + } +} + +/** + * SystemsCollection derived class for delivering ComputerSystems Collection + * Schema + */ +class SystemsCollection : public Node +{ + public: + SystemsCollection(CrowApp &app) : Node(app, "/redfish/v1/Systems/") + { + entityPrivileges = { + {boost::beast::http::verb::get, {{"Login"}}}, + {boost::beast::http::verb::head, {{"Login"}}}, + {boost::beast::http::verb::patch, {{"ConfigureComponents"}}}, + {boost::beast::http::verb::put, {{"ConfigureComponents"}}}, + {boost::beast::http::verb::delete_, {{"ConfigureComponents"}}}, + {boost::beast::http::verb::post, {{"ConfigureComponents"}}}}; + } + + private: +#ifndef BMCWEB_ENABLE_REDFISH_RMC + void doGet(crow::Response &res, const crow::Request &req, + const std::vector ¶ms) override + { + res.jsonValue["@odata.type"] = + "#ComputerSystemCollection.ComputerSystemCollection"; + res.jsonValue["@odata.id"] = "/redfish/v1/Systems"; + res.jsonValue["@odata.context"] = + "/redfish/v1/" + "$metadata#ComputerSystemCollection.ComputerSystemCollection"; + res.jsonValue["Name"] = "Computer System Collection"; + res.jsonValue["Members"] = { + { { "@odata.id", + "/redfish/v1/Systems/system" } }}; + res.jsonValue["Members@odata.count"] = 1; + res.end(); + } +#else + void doGet(crow::Response &res, const crow::Request &req, + const std::vector ¶ms) override + { + BMCWEB_LOG_DEBUG << "Get list of available boards."; + std::shared_ptr asyncResp = std::make_shared(res); + res.jsonValue["@odata.type"] = + "#ComputerSystemCollection.ComputerSystemCollection"; + res.jsonValue["@odata.id"] = "/redfish/v1/Systems"; + res.jsonValue["@odata.context"] = + "/redfish/v1/" + "$metadata#ComputerSystemCollection.ComputerSystemCollection"; + res.jsonValue["Name"] = "Computer System Collection"; + + nlohmann::json &systemArrary = res.jsonValue["Members"]; + systemArrary.push_back({{"@odata.id", "/redfish/v1/Systems/system"}}); + //systemArrary.push_back({{"@odata.id", "/redfish/v1/Systems/system2"}}); + //systemArrary.push_back({{"@odata.id", "/redfish/v1/Systems/system3"}}); + res.jsonValue["Memebers@odata.count"] = systemArrary.size(); + res.end(); + } +#endif // !BMCWEB_ENABLE_REDFISH_RMC +}; + +/** + * SystemActionsReset class supports handle POST method for Reset action. + * The class retrieves and sends data directly to D-Bus. + */ +class SystemActionsReset : public Node +{ + public: + SystemActionsReset(CrowApp &app) : + Node(app, "/redfish/v1/Systems/system/Actions/ComputerSystem.Reset/") + { + entityPrivileges = { + {boost::beast::http::verb::post, {{"ConfigureComponents"}}}}; + } + + private: + /** + * Function handles POST method request. + * Analyzes POST body message before sends Reset request data to D-Bus. + */ + void doPost(crow::Response &res, const crow::Request &req, + const std::vector ¶ms) override + { + auto asyncResp = std::make_shared(res); + + std::string resetType; + if (!json_util::readJson(req, res, "ResetType", resetType)) + { + return; + } + + // Get the command and host vs. chassis + std::string command; + bool hostCommand; + if (resetType == "On") + { + command = "xyz.openbmc_project.State.Host.Transition.On"; + hostCommand = true; + } + else if (resetType == "ForceOff") + { + command = "xyz.openbmc_project.State.Chassis.Transition.Off"; + hostCommand = false; + } + else if (resetType == "ForceOn") + { + command = "xyz.openbmc_project.State.Host.Transition.On"; + hostCommand = true; + } + else if (resetType == "ForceRestart") + { + command = "xyz.openbmc_project.State.Chassis.Transition.Reset"; + hostCommand = false; + } + else if (resetType == "GracefulShutdown") + { + command = "xyz.openbmc_project.State.Host.Transition.Off"; + hostCommand = true; + } + else if (resetType == "GracefulRestart") + { + command = "xyz.openbmc_project.State.Host.Transition.Reboot"; + hostCommand = true; + } + else if (resetType == "PowerCycle") + { + command = "xyz.openbmc_project.State.Chassis.Transition.PowerCycle"; + hostCommand = false; + } + else if (resetType == "Nmi") + { + doNMI(asyncResp); + return; + } + else + { + messages::actionParameterUnknown(res, "Reset", resetType); + return; + } + + if (hostCommand) + { + crow::connections::systemBus->async_method_call( + [asyncResp, resetType](const boost::system::error_code ec) { + if (ec) + { + BMCWEB_LOG_ERROR << "D-Bus responses error: " << ec; + if (ec.value() == boost::asio::error::invalid_argument) + { + messages::actionParameterNotSupported( + asyncResp->res, resetType, "Reset"); + } + else + { + messages::internalError(asyncResp->res); + } + return; + } + messages::success(asyncResp->res); + }, + "xyz.openbmc_project.State.Host", + "/xyz/openbmc_project/state/host0", + "org.freedesktop.DBus.Properties", "Set", + "xyz.openbmc_project.State.Host", "RequestedHostTransition", + std::variant{command}); + } + else + { + crow::connections::systemBus->async_method_call( + [asyncResp, resetType](const boost::system::error_code ec) { + if (ec) + { + BMCWEB_LOG_ERROR << "D-Bus responses error: " << ec; + if (ec.value() == boost::asio::error::invalid_argument) + { + messages::actionParameterNotSupported( + asyncResp->res, resetType, "Reset"); + } + else + { + messages::internalError(asyncResp->res); + } + return; + } + messages::success(asyncResp->res); + }, + "xyz.openbmc_project.State.Chassis", + "/xyz/openbmc_project/state/chassis0", + "org.freedesktop.DBus.Properties", "Set", + "xyz.openbmc_project.State.Chassis", "RequestedPowerTransition", + std::variant{command}); + } + } + /** + * Function transceives data with dbus directly. + */ + void doNMI(const std::shared_ptr &asyncResp) + { + constexpr char const *serviceName = + "xyz.openbmc_project.Control.Host.NMI"; + constexpr char const *objectPath = + "/xyz/openbmc_project/control/host0/nmi"; + constexpr char const *interfaceName = + "xyz.openbmc_project.Control.Host.NMI"; + constexpr char const *method = "NMI"; + + crow::connections::systemBus->async_method_call( + [asyncResp](const boost::system::error_code ec) { + if (ec) + { + BMCWEB_LOG_ERROR << " Bad D-Bus request error: " << ec; + messages::internalError(asyncResp->res); + return; + } + messages::success(asyncResp->res); + }, + serviceName, objectPath, interfaceName, method); + } +}; + +/** + * Systems derived class for delivering Computer Systems Schema. + */ +class Systems : public Node +{ + public: + /* + * Default Constructor + */ +#ifndef BMCWEB_ENABLE_REDFISH_RMC + Systems(CrowApp &app) : Node(app, "/redfish/v1/Systems/system/") +#else + Systems(CrowApp &app) : Node(app, "/redfish/v1/Systems//", std::string()) +#endif + { + entityPrivileges = { + {boost::beast::http::verb::get, {{"Login"}}}, + {boost::beast::http::verb::head, {{"Login"}}}, + {boost::beast::http::verb::patch, {{"ConfigureComponents"}}}, + {boost::beast::http::verb::put, {{"ConfigureComponents"}}}, + {boost::beast::http::verb::delete_, {{"ConfigureComponents"}}}, + {boost::beast::http::verb::post, {{"ConfigureComponents"}}}}; + } + + private: + /** + * Functions triggers appropriate requests on DBus + */ +#ifndef BMCWEB_ENABLE_REDFISH_RMC + void doGet(crow::Response &res, const crow::Request &req, + const std::vector ¶ms) override + { + res.jsonValue["@odata.type"] = "#ComputerSystem.v1_6_0.ComputerSystem"; + res.jsonValue["@odata.context"] = + "/redfish/v1/$metadata#ComputerSystem.ComputerSystem"; + res.jsonValue["Name"] = "Computer System"; + res.jsonValue["Id"] = "system"; + res.jsonValue["SystemType"] = "Physical"; + res.jsonValue["Description"] = "Computer System"; + res.jsonValue["ProcessorSummary"]["Count"] = 0; + res.jsonValue["ProcessorSummary"]["Status"]["State"] = "Disabled"; + res.jsonValue["MemorySummary"]["TotalSystemMemoryGiB"] = uint64_t(0); + res.jsonValue["MemorySummary"]["Status"]["State"] = "Disabled"; + res.jsonValue["@odata.id"] = "/redfish/v1/Systems/system"; + + res.jsonValue["Processors"] = { + { "@odata.id", + "/redfish/v1/Systems/system/Processors" }}; + res.jsonValue["Memory"] = { + { "@odata.id", + "/redfish/v1/Systems/system/Memory" }}; + res.jsonValue["Storage"] = { + { "@odata.id", + "/redfish/v1/Systems/system/Storage" }}; + + // TODO Need to support ForceRestart. + res.jsonValue["Actions"]["#ComputerSystem.Reset"] = { + {"target", + "/redfish/v1/Systems/system/Actions/ComputerSystem.Reset"}, + { "ResetType@Redfish.AllowableValues", + { "On", + "ForceOff", + "ForceOn", + "ForceRestart", + "GracefulRestart", + "GracefulShutdown", + "PowerCycle", + "Nmi" } }}; + + res.jsonValue["LogServices"] = { + { "@odata.id", + "/redfish/v1/Systems/system/LogServices" }}; + + res.jsonValue["Bios"] = { + { "@odata.id", + "/redfish/v1/Systems/system/Bios" }}; + + res.jsonValue["Links"]["ManagedBy"] = { + { { "@odata.id", + "/redfish/v1/Managers/bmc" } }}; + + res.jsonValue["Status"] = { + {"Health", "OK"}, + {"State", "Enabled"}, + }; + auto asyncResp = std::make_shared(res); + + constexpr const std::array inventoryForSystems = { + "xyz.openbmc_project.Inventory.Item.Dimm", + "xyz.openbmc_project.Inventory.Item.Cpu", + "xyz.openbmc_project.Inventory.Item.Drive", + "xyz.openbmc_project.Inventory.Item.StorageController"}; + + auto health = std::make_shared(asyncResp); + crow::connections::systemBus->async_method_call( + [health](const boost::system::error_code ec, + std::vector &resp) { + if (ec) + { + // no inventory + return; + } + + health->inventory = std::move(resp); + }, + "xyz.openbmc_project.ObjectMapper", + "/xyz/openbmc_project/object_mapper", + "xyz.openbmc_project.ObjectMapper", "GetSubTreePaths", "/", + int32_t(0), inventoryForSystems); + + health->populate(); + + getMainChassisId(asyncResp, [](const std::string &chassisId, + std::shared_ptr aRsp) { + aRsp->res.jsonValue["Links"]["Chassis"] = { + { { "@odata.id", + "/redfish/v1/Chassis/" + chassisId } }}; + }); + + getIndicatorLedState(asyncResp); + getComputerSystem(asyncResp, health); + getHostState(asyncResp); + getBootProperties(asyncResp); + getPCIeDeviceList(asyncResp, "PCIeDevices"); + getHostWatchdogTimer(asyncResp); +#ifdef BMCWEB_ENABLE_REDFISH_PROVISIONING_FEATURE + getProvisioningStatus(asyncResp); +#endif + } +#else + void doGet(crow::Response &res, const crow::Request &req, + const std::vector ¶ms) override + { + // Check if there is required param, truly entering this shall be + // impossible + if (params.size() != 1) + { + messages::internalError(res); + res.end(); + return; + } + + const std::string &name = params[0]; + + res.jsonValue["@odata.type"] = "#ComputerSystem.v1_6_0.ComputerSystem"; + res.jsonValue["@odata.context"] = + "/redfish/v1/$metadata#ComputerSystem.ComputerSystem"; + res.jsonValue["Name"] = "Computer System"; + res.jsonValue["Id"] = "system"; + res.jsonValue["SystemType"] = "Physical"; + res.jsonValue["Description"] = "Computer System"; + res.jsonValue["ProcessorSummary"]["Count"] = 2; + res.jsonValue["ProcessorSummary"]["Status"]["State"] = "Disabled"; + res.jsonValue["MemorySummary"]["TotalSystemMemoryGiB"] = uint64_t(96); + res.jsonValue["MemorySummary"]["Status"]["State"] = "Disabled"; + res.jsonValue["@odata.id"] = "/redfish/v1/Systems/" + name; + + res.jsonValue["Processors"] = { + {"@odata.id", "/redfish/v1/Systems/" + name + "/Processors"}}; + res.jsonValue["Memory"] = { + {"@odata.id", "/redfish/v1/Systems/" + name + "/Memory"}}; + res.jsonValue["Storage"] = { + {"@odata.id", "/redfish/v1/Systems/" + name + "/Storage" }}; + + // TODO Need to support ForceRestart. + res.jsonValue["Actions"]["#ComputerSystem.Reset"] = { + {"target", + "/redfish/v1/Systems/" + name + "/Actions/ComputerSystem.Reset"}, + { "ResetType@Redfish.AllowableValues", + { "On", + "ForceOff", + "ForceOn", + "ForceRestart", + "GracefulRestart", + "GracefulShutdown", + "PowerCycle", + "Nmi" } }}; + + res.jsonValue["LogServices"] = { + {"@odata.id", "/redfish/v1/Systems/" + name + "/LogServices" }}; + + res.jsonValue["Bios"] = { + {"@odata.id", "/redfish/v1/Systems/" + name + "/Bios" }}; + + res.jsonValue["Links"]["ManagedBy"] = { + { { "@odata.id", + "/redfish/v1/Managers/rmc" } }}; + + res.jsonValue["Status"] = { + {"Health", "OK"}, + {"State", "Enabled"}, + }; + auto asyncResp = std::make_shared(res); + + constexpr const std::array inventoryForSystems = { + "xyz.openbmc_project.Inventory.Item.Dimm", + "xyz.openbmc_project.Inventory.Item.Cpu", + "xyz.openbmc_project.Inventory.Item.Drive", + "xyz.openbmc_project.Inventory.Item.StorageController"}; + + auto health = std::make_shared(asyncResp); + crow::connections::systemBus->async_method_call( + [health](const boost::system::error_code ec, + std::vector &resp) { + if (ec) + { + // no inventory + return; + } + + health->inventory = std::move(resp); + }, + "xyz.openbmc_project.ObjectMapper", + "/xyz/openbmc_project/object_mapper", + "xyz.openbmc_project.ObjectMapper", "GetSubTreePaths", "/", + int32_t(0), inventoryForSystems); + + health->populate(); + + getMainChassisId(asyncResp, [](const std::string &chassisId, + std::shared_ptr aRsp) { + aRsp->res.jsonValue["Links"]["Chassis"] = { + { { "@odata.id", + "/redfish/v1/Chassis/" + chassisId } }}; + }); + + getIndicatorLedState(asyncResp); + getComputerSystem(asyncResp, health); + getHostState(asyncResp); + getBootProperties(asyncResp); + getPCIeDeviceList(asyncResp, "PCIeDevices"); + getHostWatchdogTimer(asyncResp); +#ifdef BMCWEB_ENABLE_REDFISH_PROVISIONING_FEATURE + getProvisioningStatus(asyncResp); +#endif + res.end(); + } +#endif // !BMCWEB_ENABLE_REDFISH_RMC + + void doPatch(crow::Response &res, const crow::Request &req, + const std::vector ¶ms) override + { + std::optional indicatorLed; + std::optional bootProps; + std::optional wdtTimerProps; + auto asyncResp = std::make_shared(res); + + if (!json_util::readJson(req, res, "IndicatorLED", indicatorLed, "Boot", + bootProps, "WatchdogTimer", wdtTimerProps)) + { + return; + } + + res.result(boost::beast::http::status::no_content); + + if (wdtTimerProps) + { + std::optional wdtEnable; + std::optional wdtTimeOutAction; + + if (!json_util::readJson(*wdtTimerProps, asyncResp->res, + "FunctionEnabled", wdtEnable, + "TimeoutAction", wdtTimeOutAction)) + { + return; + } + setWDTProperties(asyncResp, std::move(wdtEnable), + std::move(wdtTimeOutAction)); + } + + if (bootProps) + { + std::optional bootSource; + std::optional bootEnable; + + if (!json_util::readJson(*bootProps, asyncResp->res, + "BootSourceOverrideTarget", bootSource, + "BootSourceOverrideEnabled", bootEnable)) + { + return; + } + setBootProperties(asyncResp, std::move(bootSource), + std::move(bootEnable)); + } + + if (indicatorLed) + { + setIndicatorLedState(asyncResp, std::move(*indicatorLed)); + } + } +}; +} // namespace redfish diff --git a/Contrib-Inspur/bmcweb/redfish-core/lib/rmc/rmc_thermal.hpp b/Contrib-Inspur/bmcweb/redfish-core/lib/rmc/rmc_thermal.hpp new file mode 100644 index 00000000..aaab3e67 --- /dev/null +++ b/Contrib-Inspur/bmcweb/redfish-core/lib/rmc/rmc_thermal.hpp @@ -0,0 +1,129 @@ +/* +// Copyright (c) 2018 Intel Corporation +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +*/ +#pragma once + +#include "node.hpp" + +namespace redfish +{ +class Thermal : public Node +{ + public: + Thermal(CrowApp& app) : + Node((app), "/redfish/v1/Chassis//Thermal/", std::string()) + { + entityPrivileges = { + {boost::beast::http::verb::get, {{"Login"}}}, + {boost::beast::http::verb::head, {{"Login"}}}, + {boost::beast::http::verb::patch, {{"ConfigureManager"}}}, + {boost::beast::http::verb::put, {{"ConfigureManager"}}}, + {boost::beast::http::verb::delete_, {{"ConfigureManager"}}}, + {boost::beast::http::verb::post, {{"ConfigureManager"}}}}; + } + + private: + void getTemperatures(const std::string& chassis_name, + std::shared_ptr asyncResp, unsigned int id, + const std::string sensor_name, int sensor_number, + int value) + { + nlohmann::json& item = asyncResp->res.jsonValue["Temperatures"][id]; + item["@odata.id"] = "/redfish/v1/Chassis/" + chassis_name + + "/Thermal#/Temperatures/" + std::to_string(id); + item["MemberId"] = id; + item["Name"] = sensor_name; + item["SensorNumber"] = sensor_number; + item["Status"]["State"] = "Enabled"; + item["Status"]["Health"] = "OK"; + item["ReadingCelsius"] = value; + item["UpperThresholdNonCritical"] = {}; + item["UpperThresholdCritical"] = {}; + item["UpperThresholdFatal"] = {}; + item["LowerThresholdNonCritical"] = {}; + item["LowerThresholdCritical"] = {}; + item["LowerThresholdFatal"] = {}; + item["MinReadingRangeTemp"] = {}; + item["MaxReadingRangeTemp"] = {}; + item["MinReadingRange"] = {}; + item["MaxReadingRange"] = {}; + item["PhysicalContext"] = "Intake"; + item["RelatedItem"][0] = {{"@odata.id", "/redfish/v1/Chassis/node1"}}; + } + + void getFans(const std::string& chassis_name, + std::shared_ptr asyncResp, unsigned int id, + const std::string sensor_name, int sensor_number, int value) + { + nlohmann::json& item = asyncResp->res.jsonValue["Fans"][id]; + item["@odata.id"] = "/redfish/v1/Chassis/" + chassis_name + + "/Thermal#/Fans/" + std::to_string(id); + item["MemberId"] = id; + item["Name"] = sensor_name; + item["SensorNumber"] = sensor_number; + item["Status"]["State"] = "Enabled"; + item["Status"]["Health"] = "OK"; + item["Reading"] = value; + item["ReadingUnits"] = "RPM"; + item["UpperThresholdNonCritical"] = {}; + item["UpperThresholdCritical"] = {}; + item["UpperThresholdFatal"] = {}; + item["LowerThresholdNonCritical"] = {}; + item["LowerThresholdCritical"] = {}; + item["LowerThresholdFatal"] = {}; + item["MinReadingRange"] = {}; + item["MaxReadingRange"] = {}; + item["MinReadingRangeTemp"] = {}; + item["MaxReadingRangeTemp"] = {}; + item["RelatedItem"][0] = {{"@odata.id", "/redfish/v1/Chassis/node1"}}; + } + + void getThermalInfo(const std::string& chassisName, + std::shared_ptr asyncResp) + { + getFans(chassisName, asyncResp, 0, "BaseBoard System Fan 0", 1, 3505); + getFans(chassisName, asyncResp, 1, "BaseBoard System Fan 1", 2, 3682); + getFans(chassisName, asyncResp, 2, "BaseBoard System Fan 2", 3, 3728); + getFans(chassisName, asyncResp, 3, "BaseBoard System Fan 3", 4, 3342); + getTemperatures(chassisName, asyncResp, 0, "Inlet Temp 0", 5, 27); + getTemperatures(chassisName, asyncResp, 1, "Inlet Temp 1", 6, 26); + getTemperatures(chassisName, asyncResp, 2, "Outlet Temp 2", 7, 32); + getTemperatures(chassisName, asyncResp, 3, "Outlet Temp 3", 8, 31); + } + void doGet(crow::Response& res, const crow::Request& req, + const std::vector& params) override + { + if (params.size() != 1) + { + messages::internalError(res); + res.end(); + return; + } + const std::string& chassisName = params[0]; + res.jsonValue["@odata.type"] = "#Thermal.v1_4_0.Thermal"; + res.jsonValue["@odata.context"] = + "/redfish/v1/$metadata#Thermal.Thermal"; + res.jsonValue["Id"] = "Thermal"; + res.jsonValue["Name"] = "Thermal"; + + res.jsonValue["@odata.id"] = + "/redfish/v1/Chassis/" + chassisName + "/Thermal"; + + auto asyncResp = std::make_shared(res); + getThermalInfo(chassisName, asyncResp); + } +}; + +} // namespace redfish diff --git a/Contrib-Inspur/bmcweb/redfish-core/lib/rmc/rmc_update_service.hpp b/Contrib-Inspur/bmcweb/redfish-core/lib/rmc/rmc_update_service.hpp new file mode 100644 index 00000000..dbecddca --- /dev/null +++ b/Contrib-Inspur/bmcweb/redfish-core/lib/rmc/rmc_update_service.hpp @@ -0,0 +1,147 @@ +/* +// Copyright (c) 2018 Intel Corporation +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +*/ +#pragma once + +#include "node.hpp" + +#include + +namespace redfish +{ + +class UpdateService : public Node +{ + public: + UpdateService(CrowApp &app) : Node(app, "/redfish/v1/UpdateService/") + { + entityPrivileges = { + {boost::beast::http::verb::get, {{"Login"}}}, + {boost::beast::http::verb::head, {{"Login"}}}, + {boost::beast::http::verb::patch, {{"ConfigureComponents"}}}, + {boost::beast::http::verb::put, {{"ConfigureComponents"}}}, + {boost::beast::http::verb::delete_, {{"ConfigureComponents"}}}, + {boost::beast::http::verb::post, {{"ConfigureComponents"}}}}; + } + + private: + void doGet(crow::Response &res, const crow::Request &req, + const std::vector ¶ms) override + { + res.jsonValue["@odata.type"] = "#UpdateService.v1_2_0.UpdateService"; + res.jsonValue["@odata.id"] = "/redfish/v1/UpdateService"; + res.jsonValue["@odata.context"] = + "/redfish/v1/$metadata#UpdateService/$entity"; + res.jsonValue["Id"] = "UpdateService"; + res.jsonValue["Description"] = "Service for Software Update"; + res.jsonValue["Name"] = "Update Service"; + res.jsonValue["Status"]["Health"] = "OK"; + res.jsonValue["Status"]["HealthRollup"] = "OK"; + res.jsonValue["Status"]["State"] = "Enabled"; + // UpdateService cannot be disabled + res.jsonValue["ServiceEnabled"] = true; + + nlohmann::json &actions = res.jsonValue["Actions"]; + actions["#UpdateService.SimpleUpdate"]["target"] = + "/redfish/v1/UpdateService/Actions/SimpleUpdate"; + actions["@Redfish.ActionInfo"] = + "/redfish/v1/UpdateService/SimpleUpdateActionIfo"; + res.end(); + } +}; + +class SoftwareInventoryCollection : public Node +{ + public: + template + SoftwareInventoryCollection(CrowApp &app) : + Node(app, "/redfish/v1/UpdateService/FirmwareInventory/") + { + entityPrivileges = { + {boost::beast::http::verb::get, {{"Login"}}}, + {boost::beast::http::verb::head, {{"Login"}}}, + {boost::beast::http::verb::patch, {{"ConfigureComponents"}}}, + {boost::beast::http::verb::put, {{"ConfigureComponents"}}}, + {boost::beast::http::verb::delete_, {{"ConfigureComponents"}}}, + {boost::beast::http::verb::post, {{"ConfigureComponents"}}}}; + } + + private: + void doGet(crow::Response &res, const crow::Request &req, + const std::vector ¶ms) override + { + std::shared_ptr asyncResp = std::make_shared(res); + res.jsonValue["@odata.type"] = + "#SoftwareInventoryCollection.SoftwareInventoryCollection"; + res.jsonValue["@odata.id"] = + "/redfish/v1/UpdateService/FirmwareInventory"; + res.jsonValue["@odata.context"] = + "/redfish/v1/" + "$metadata#SoftwareInventoryCollection.SoftwareInventoryCollection"; + res.jsonValue["Name"] = "Software Inventory Collection"; + res.end(); + } +}; + +class SoftwareInventory : public Node +{ + public: + template + SoftwareInventory(CrowApp &app) : + Node(app, "/redfish/v1/UpdateService/FirmwareInventory//", + std::string()) + { + entityPrivileges = { + {boost::beast::http::verb::get, {{"Login"}}}, + {boost::beast::http::verb::head, {{"Login"}}}, + {boost::beast::http::verb::patch, {{"ConfigureComponents"}}}, + {boost::beast::http::verb::put, {{"ConfigureComponents"}}}, + {boost::beast::http::verb::delete_, {{"ConfigureComponents"}}}, + {boost::beast::http::verb::post, {{"ConfigureComponents"}}}}; + } + + private: + void doGet(crow::Response &res, const crow::Request &req, + const std::vector ¶ms) override + { + std::shared_ptr asyncResp = std::make_shared(res); + res.jsonValue["@odata.type"] = + "#SoftwareInventory.v1_1_0.SoftwareInventory"; + res.jsonValue["@odata.context"] = + "/redfish/v1/$metadata#SoftwareInventory.SoftwareInventory"; + res.jsonValue["Name"] = "Software Inventory"; + res.jsonValue["Updateable"] = false; + res.jsonValue["Status"]["Health"] = "OK"; + res.jsonValue["Status"]["HealthRollup"] = "OK"; + res.jsonValue["Status"]["State"] = "Enabled"; + + if (params.size() != 1) + { + messages::internalError(res); + res.end(); + return; + } + + std::shared_ptr swId = + std::make_shared(params[0]); + + res.jsonValue["@odata.id"] = + "/redfish/v1/UpdateService/FirmwareInventory/" + *swId; + + res.end(); + } +}; + +} // namespace redfish diff --git a/Contrib-Inspur/bmcweb/redfish-core/lib/roles.hpp b/Contrib-Inspur/bmcweb/redfish-core/lib/roles.hpp index b5deed16..d2071a5c 100644 --- a/Contrib-Inspur/bmcweb/redfish-core/lib/roles.hpp +++ b/Contrib-Inspur/bmcweb/redfish-core/lib/roles.hpp @@ -28,18 +28,18 @@ inline std::string getRoleFromPrivileges(std::string_view priv) { return "Administrator"; } - else if (priv == "priv-callback") - { - return "Callback"; - } else if (priv == "priv-user") { - return "User"; + return "ReadOnly"; } else if (priv == "priv-operator") { return "Operator"; } + else if (priv == "priv-noaccess") + { + return "NoAccess"; + } return ""; } @@ -55,13 +55,13 @@ inline bool getAssignedPrivFromRole(std::string_view role, { privArray = {"Login", "ConfigureSelf", "ConfigureComponents"}; } - else if (role == "User") + else if (role == "ReadOnly") { privArray = {"Login", "ConfigureSelf"}; } - else if (role == "Callback") + else if (role == "NoAccess") { - privArray = {"Login"}; + privArray = nlohmann::json::array(); } else { @@ -105,13 +105,14 @@ class Roles : public Node } res.jsonValue = { - {"@odata.type", "#Role.v1_0_2.Role"}, + {"@odata.type", "#Role.v1_2_2.Role"}, {"@odata.context", "/redfish/v1/$metadata#Role.Role"}, {"Name", "User Role"}, {"Description", roleId + " User Role"}, {"OemPrivileges", nlohmann::json::array()}, {"IsPredefined", true}, {"Id", roleId}, + {"RoleId", roleId}, {"@odata.id", "/redfish/v1/AccountService/Roles/" + roleId}, {"AssignedPrivileges", std::move(privArray)}}; res.end(); @@ -159,6 +160,11 @@ class RoleCollection : public Node memberArray = nlohmann::json::array(); const std::vector* privList = std::get_if>(&resp); + if (privList == nullptr) + { + messages::internalError(asyncResp->res); + return; + } for (const std::string& priv : *privList) { std::string role = getRoleFromPrivileges(priv); diff --git a/Contrib-Inspur/bmcweb/redfish-core/lib/sensors.hpp b/Contrib-Inspur/bmcweb/redfish-core/lib/sensors.hpp index 28dc3588..12657835 100644 --- a/Contrib-Inspur/bmcweb/redfish-core/lib/sensors.hpp +++ b/Contrib-Inspur/bmcweb/redfish-core/lib/sensors.hpp @@ -15,25 +15,26 @@ */ #pragma once -#include +#include "node.hpp" #include #include #include #include +#include #include +#include #include namespace redfish { -constexpr const char* dbusSensorPrefix = "/xyz/openbmc_project/sensors/"; - using GetSubTreeType = std::vector< std::pair>>>>; -using SensorVariant = std::variant; +using SensorVariant = + std::variant; using ManagedObjectsVectorType = std::vector types, + SensorsAsyncResp(crow::Response& response, const std::string& chassisIdIn, + const std::vector typesIn, const std::string& subNode) : - chassisId(chassisId), - res(response), types(types), chassisSubNode(subNode) + res(response), + chassisId(chassisIdIn), types(typesIn), chassisSubNode(subNode) { - res.jsonValue["@odata.id"] = - "/redfish/v1/Chassis/" + chassisId + "/Thermal"; } ~SensorsAsyncResp() @@ -76,17 +75,63 @@ class SensorsAsyncResp }; /** - * @brief Creates connections necessary for chassis sensors + * Possible states for physical inventory leds + */ +enum class LedState +{ + OFF, + ON, + BLINK, + UNKNOWN +}; + +/** + * D-Bus inventory item associated with one or more sensors. + */ +class InventoryItem +{ + public: + InventoryItem(const std::string& objPath) : + objectPath(objPath), name(), isPresent(true), isFunctional(true), + isPowerSupply(false), manufacturer(), model(), partNumber(), + serialNumber(), sensors(), ledObjectPath(""), + ledState(LedState::UNKNOWN) + { + // Set inventory item name to last node of object path + auto pos = objectPath.rfind('/'); + if ((pos != std::string::npos) && ((pos + 1) < objectPath.size())) + { + name = objectPath.substr(pos + 1); + } + } + + std::string objectPath; + std::string name; + bool isPresent; + bool isFunctional; + bool isPowerSupply; + std::string manufacturer; + std::string model; + std::string partNumber; + std::string serialNumber; + std::set sensors; + std::string ledObjectPath; + LedState ledState; +}; + +/** + * @brief Get objects with connection necessary for sensors * @param SensorsAsyncResp Pointer to object holding response data * @param sensorNames Sensors retrieved from chassis * @param callback Callback for processing gathered connections */ template -void getConnections(std::shared_ptr SensorsAsyncResp, - const boost::container::flat_set& sensorNames, - Callback&& callback) +void getObjectsWithConnection( + std::shared_ptr SensorsAsyncResp, + const std::shared_ptr> sensorNames, + Callback&& callback) { - BMCWEB_LOG_DEBUG << "getConnections enter"; + BMCWEB_LOG_DEBUG << "getObjectsWithConnection enter"; const std::string path = "/xyz/openbmc_project/sensors"; const std::array interfaces = { "xyz.openbmc_project.Sensor.Value"}; @@ -95,12 +140,12 @@ void getConnections(std::shared_ptr SensorsAsyncResp, auto respHandler = [callback{std::move(callback)}, SensorsAsyncResp, sensorNames](const boost::system::error_code ec, const GetSubTreeType& subtree) { - BMCWEB_LOG_DEBUG << "getConnections resp_handler enter"; + BMCWEB_LOG_DEBUG << "getObjectsWithConnection resp_handler enter"; if (ec) { messages::internalError(SensorsAsyncResp->res); - BMCWEB_LOG_ERROR << "getConnections resp_handler: Dbus error " - << ec; + BMCWEB_LOG_ERROR + << "getObjectsWithConnection resp_handler: Dbus error " << ec; return; } @@ -109,12 +154,13 @@ void getConnections(std::shared_ptr SensorsAsyncResp, // Make unique list of connections only for requested sensor types and // found in the chassis boost::container::flat_set connections; + std::set> objectsWithConnection; // Intrinsic to avoid malloc. Most systems will have < 8 sensor // producers connections.reserve(8); - BMCWEB_LOG_DEBUG << "sensorNames list count: " << sensorNames.size(); - for (const std::string& tsensor : sensorNames) + BMCWEB_LOG_DEBUG << "sensorNames list count: " << sensorNames->size(); + for (const std::string& tsensor : *sensorNames) { BMCWEB_LOG_DEBUG << "Sensor to find: " << tsensor; } @@ -124,44 +170,151 @@ void getConnections(std::shared_ptr SensorsAsyncResp, std::vector>>>& object : subtree) { - for (const char* type : SensorsAsyncResp->types) + if (sensorNames->find(object.first) != sensorNames->end()) { - if (boost::starts_with(object.first, type)) + for (const std::pair>& + objData : object.second) { - auto lastPos = object.first.rfind('/'); - if (lastPos != std::string::npos) - { - std::string sensorName = - object.first.substr(lastPos + 1); - - if (sensorNames.find(sensorName) != sensorNames.end()) - { - // For each Connection name - for (const std::pair>& - objData : object.second) - { - BMCWEB_LOG_DEBUG << "Adding connection: " - << objData.first; - connections.insert(objData.first); - } - } - } - break; + BMCWEB_LOG_DEBUG << "Adding connection: " << objData.first; + connections.insert(objData.first); + objectsWithConnection.insert( + std::make_pair(object.first, objData.first)); } } } BMCWEB_LOG_DEBUG << "Found " << connections.size() << " connections"; - callback(std::move(connections)); - BMCWEB_LOG_DEBUG << "getConnections resp_handler exit"; + callback(std::move(connections), std::move(objectsWithConnection)); + BMCWEB_LOG_DEBUG << "getObjectsWithConnection resp_handler exit"; }; - // Make call to ObjectMapper to find all sensors objects crow::connections::systemBus->async_method_call( std::move(respHandler), "xyz.openbmc_project.ObjectMapper", "/xyz/openbmc_project/object_mapper", "xyz.openbmc_project.ObjectMapper", "GetSubTree", path, 2, interfaces); - BMCWEB_LOG_DEBUG << "getConnections exit"; + BMCWEB_LOG_DEBUG << "getObjectsWithConnection exit"; +} + +/** + * @brief Create connections necessary for sensors + * @param SensorsAsyncResp Pointer to object holding response data + * @param sensorNames Sensors retrieved from chassis + * @param callback Callback for processing gathered connections + */ +template +void getConnections( + std::shared_ptr SensorsAsyncResp, + const std::shared_ptr> sensorNames, + Callback&& callback) +{ + auto objectsWithConnectionCb = + [callback](const boost::container::flat_set& connections, + const std::set>& + objectsWithConnection) { + callback(std::move(connections)); + }; + getObjectsWithConnection(SensorsAsyncResp, sensorNames, + std::move(objectsWithConnectionCb)); +} + +/** + * @brief Shrinks the list of sensors for processing + * @param SensorsAysncResp The class holding the Redfish response + * @param allSensors A list of all the sensors associated to the + * chassis element (i.e. baseboard, front panel, etc...) + * @param activeSensors A list that is a reduction of the incoming + * allSensors list. Eliminate Thermal sensors when a Power request is + * made, and eliminate Power sensors when a Thermal request is made. + */ +void reduceSensorList( + std::shared_ptr SensorsAsyncResp, + const std::vector* allSensors, + std::shared_ptr> activeSensors) +{ + if (SensorsAsyncResp == nullptr) + { + return; + } + if ((allSensors == nullptr) || (activeSensors == nullptr)) + { + messages::resourceNotFound( + SensorsAsyncResp->res, SensorsAsyncResp->chassisSubNode, + SensorsAsyncResp->chassisSubNode == "Thermal" ? "Temperatures" + : "Voltages"); + + return; + } + if (allSensors->empty()) + { + // Nothing to do, the activeSensors object is also empty + return; + } + + for (const char* type : SensorsAsyncResp->types) + { + for (const std::string& sensor : *allSensors) + { + if (boost::starts_with(sensor, type)) + { + activeSensors->emplace(sensor); + } + } + } +} + +/** + * @brief Retrieves valid chassis path + * @param asyncResp Pointer to object holding response data + * @param callback Callback for next step to get valid chassis path + */ +template +void getValidChassisPath(std::shared_ptr asyncResp, + Callback&& callback) +{ + BMCWEB_LOG_DEBUG << "checkChassisId enter"; + const std::array interfaces = { + "xyz.openbmc_project.Inventory.Item.Board", + "xyz.openbmc_project.Inventory.Item.Chassis"}; + + auto respHandler = + [callback{std::move(callback)}, + asyncResp](const boost::system::error_code ec, + const std::vector& chassisPaths) mutable { + BMCWEB_LOG_DEBUG << "getValidChassisPath respHandler enter"; + if (ec) + { + BMCWEB_LOG_ERROR + << "getValidChassisPath respHandler DBUS error: " << ec; + messages::internalError(asyncResp->res); + return; + } + + std::optional chassisPath; + std::string chassisName; + for (const std::string& chassis : chassisPaths) + { + std::size_t lastPos = chassis.rfind("/"); + if (lastPos == std::string::npos) + { + BMCWEB_LOG_ERROR << "Failed to find '/' in " << chassis; + continue; + } + chassisName = chassis.substr(lastPos + 1); + if (chassisName == asyncResp->chassisId) + { + chassisPath = chassis; + break; + } + } + callback(chassisPath); + }; + + // Get the Chassis Collection + crow::connections::systemBus->async_method_call( + respHandler, "xyz.openbmc_project.ObjectMapper", + "/xyz/openbmc_project/object_mapper", + "xyz.openbmc_project.ObjectMapper", "GetSubTreePaths", + "/xyz/openbmc_project/inventory", 0, interfaces); + BMCWEB_LOG_DEBUG << "checkChassisId exit"; } /** @@ -170,93 +323,391 @@ void getConnections(std::shared_ptr SensorsAsyncResp, * @param callback Callback for next step in gathered sensor processing */ template -void getChassis(std::shared_ptr SensorsAsyncResp, +void getChassis(std::shared_ptr sensorsAsyncResp, Callback&& callback) { BMCWEB_LOG_DEBUG << "getChassis enter"; - // Process response from EntityManager and extract chassis data - auto respHandler = [callback{std::move(callback)}, - SensorsAsyncResp](const boost::system::error_code ec, - ManagedObjectsVectorType& resp) { + const std::array interfaces = { + "xyz.openbmc_project.Inventory.Item.Board", + "xyz.openbmc_project.Inventory.Item.Chassis"}; + auto respHandler = [callback{std::move(callback)}, sensorsAsyncResp]( + const boost::system::error_code ec, + const std::vector& chassisPaths) { BMCWEB_LOG_DEBUG << "getChassis respHandler enter"; if (ec) { BMCWEB_LOG_ERROR << "getChassis respHandler DBUS error: " << ec; - messages::internalError(SensorsAsyncResp->res); + messages::internalError(sensorsAsyncResp->res); return; } - boost::container::flat_set sensorNames; - // SensorsAsyncResp->chassisId - bool foundChassis = false; - std::vector split; - // Reserve space for - // /xyz/openbmc_project/inventory// + 3 subnames - split.reserve(8); - - for (const auto& objDictEntry : resp) + const std::string* chassisPath = nullptr; + std::string chassisName; + for (const std::string& chassis : chassisPaths) { - const std::string& objectPath = - static_cast(objDictEntry.first); - boost::algorithm::split(split, objectPath, boost::is_any_of("/")); - if (split.size() < 2) + std::size_t lastPos = chassis.rfind("/"); + if (lastPos == std::string::npos) { - BMCWEB_LOG_ERROR << "Got path that isn't long enough " - << objectPath; - split.clear(); + BMCWEB_LOG_ERROR << "Failed to find '/' in " << chassis; continue; } - const std::string& sensorName = split.end()[-1]; - const std::string& chassisName = split.end()[-2]; - - if (chassisName != SensorsAsyncResp->chassisId) + chassisName = chassis.substr(lastPos + 1); + if (chassisName == sensorsAsyncResp->chassisId) { - split.clear(); - continue; + chassisPath = &chassis; + break; } - BMCWEB_LOG_DEBUG << "New sensor: " << sensorName; - foundChassis = true; - sensorNames.emplace(sensorName); - split.clear(); - }; - BMCWEB_LOG_DEBUG << "Found " << sensorNames.size() << " Sensor names"; + } + if (chassisPath == nullptr) + { + messages::resourceNotFound(sensorsAsyncResp->res, "Chassis", + sensorsAsyncResp->chassisId); + return; + } - if (!foundChassis) + const std::string& chassisSubNode = sensorsAsyncResp->chassisSubNode; + if (chassisSubNode == "Power") { - BMCWEB_LOG_INFO << "Unable to find chassis named " - << SensorsAsyncResp->chassisId; - messages::resourceNotFound(SensorsAsyncResp->res, "Chassis", - SensorsAsyncResp->chassisId); + sensorsAsyncResp->res.jsonValue["@odata.type"] = + "#Power.v1_5_2.Power"; } - else + else if (chassisSubNode == "Thermal") { - callback(sensorNames); + sensorsAsyncResp->res.jsonValue["@odata.type"] = + "#Thermal.v1_4_0.Thermal"; + sensorsAsyncResp->res.jsonValue["Fans"] = nlohmann::json::array(); + sensorsAsyncResp->res.jsonValue["Temperatures"] = + nlohmann::json::array(); } - BMCWEB_LOG_DEBUG << "getChassis respHandler exit"; + else if (chassisSubNode == "Sensors") + { + sensorsAsyncResp->res.jsonValue["@odata.type"] = + "#SensorCollection.SensorCollection"; + sensorsAsyncResp->res.jsonValue["@odata.context"] = + "/redfish/v1/$metadata#SensorCollection.SensorCollection"; + sensorsAsyncResp->res.jsonValue["Description"] = + "Collection of Sensors for this Chassis"; + sensorsAsyncResp->res.jsonValue["Members"] = + nlohmann::json::array(); + sensorsAsyncResp->res.jsonValue["Members@odata.count"] = 0; + } + + if (chassisSubNode != "Sensors") + { + sensorsAsyncResp->res.jsonValue["Id"] = chassisSubNode; + sensorsAsyncResp->res.jsonValue["@odata.context"] = + "/redfish/v1/$metadata#" + chassisSubNode + "." + + chassisSubNode; + } + + sensorsAsyncResp->res.jsonValue["@odata.id"] = + "/redfish/v1/Chassis/" + sensorsAsyncResp->chassisId + "/" + + chassisSubNode; + sensorsAsyncResp->res.jsonValue["Name"] = chassisSubNode; + + // Get the list of all sensors for this Chassis element + std::string sensorPath = *chassisPath + "/all_sensors"; + crow::connections::systemBus->async_method_call( + [sensorsAsyncResp, callback{std::move(callback)}]( + const boost::system::error_code& e, + const std::variant>& + variantEndpoints) { + if (e) + { + if (e.value() != EBADR) + { + messages::internalError(sensorsAsyncResp->res); + return; + } + } + const std::vector* nodeSensorList = + std::get_if>(&(variantEndpoints)); + if (nodeSensorList == nullptr) + { + messages::resourceNotFound( + sensorsAsyncResp->res, sensorsAsyncResp->chassisSubNode, + sensorsAsyncResp->chassisSubNode == "Thermal" + ? "Temperatures" + : sensorsAsyncResp->chassisSubNode == "Power" + ? "Voltages" + : "Sensors"); + return; + } + const std::shared_ptr> + culledSensorList = std::make_shared< + boost::container::flat_set>(); + reduceSensorList(sensorsAsyncResp, nodeSensorList, + culledSensorList); + callback(culledSensorList); + }, + "xyz.openbmc_project.ObjectMapper", sensorPath, + "org.freedesktop.DBus.Properties", "Get", + "xyz.openbmc_project.Association", "endpoints"); }; - // Make call to EntityManager to find all chassis objects + // Get the Chassis Collection crow::connections::systemBus->async_method_call( - respHandler, "xyz.openbmc_project.EntityManager", "/", - "org.freedesktop.DBus.ObjectManager", "GetManagedObjects"); + respHandler, "xyz.openbmc_project.ObjectMapper", + "/xyz/openbmc_project/object_mapper", + "xyz.openbmc_project.ObjectMapper", "GetSubTreePaths", + "/xyz/openbmc_project/inventory", 0, interfaces); BMCWEB_LOG_DEBUG << "getChassis exit"; } +/** + * @brief Finds all DBus object paths that implement ObjectManager. + * + * Creates a mapping from the associated connection name to the object path. + * + * Finds the object paths asynchronously. Invokes callback when information has + * been obtained. + * + * The callback must have the following signature: + * @code + * callback(std::shared_ptr> objectMgrPaths) + * @endcode + * + * @param sensorsAsyncResp Pointer to object holding response data. + * @param callback Callback to invoke when object paths obtained. + */ +template +void getObjectManagerPaths(std::shared_ptr SensorsAsyncResp, + Callback&& callback) +{ + BMCWEB_LOG_DEBUG << "getObjectManagerPaths enter"; + const std::array interfaces = { + "org.freedesktop.DBus.ObjectManager"}; + + // Response handler for GetSubTree DBus method + auto respHandler = [callback{std::move(callback)}, + SensorsAsyncResp](const boost::system::error_code ec, + const GetSubTreeType& subtree) { + BMCWEB_LOG_DEBUG << "getObjectManagerPaths respHandler enter"; + if (ec) + { + messages::internalError(SensorsAsyncResp->res); + BMCWEB_LOG_ERROR << "getObjectManagerPaths respHandler: DBus error " + << ec; + return; + } + + // Loop over returned object paths + std::shared_ptr> + objectMgrPaths = std::make_shared< + boost::container::flat_map>(); + for (const std::pair< + std::string, + std::vector>>>& + object : subtree) + { + // Loop over connections for current object path + const std::string& objectPath = object.first; + for (const std::pair>& + objData : object.second) + { + // Add mapping from connection to object path + const std::string& connection = objData.first; + (*objectMgrPaths)[connection] = objectPath; + BMCWEB_LOG_DEBUG << "Added mapping " << connection << " -> " + << objectPath; + } + } + callback(objectMgrPaths); + BMCWEB_LOG_DEBUG << "getObjectManagerPaths respHandler exit"; + }; + + // Query mapper for all DBus object paths that implement ObjectManager + crow::connections::systemBus->async_method_call( + std::move(respHandler), "xyz.openbmc_project.ObjectMapper", + "/xyz/openbmc_project/object_mapper", + "xyz.openbmc_project.ObjectMapper", "GetSubTree", "/", 0, interfaces); + BMCWEB_LOG_DEBUG << "getObjectManagerPaths exit"; +} + +/** + * @brief Returns the Redfish State value for the specified inventory item. + * @param inventoryItem D-Bus inventory item associated with a sensor. + * @return State value for inventory item. + */ +static std::string getState(const InventoryItem* inventoryItem) +{ + if ((inventoryItem != nullptr) && !(inventoryItem->isPresent)) + { + return "Absent"; + } + + return "Enabled"; +} + +/** + * @brief Returns the Redfish Health value for the specified sensor. + * @param sensorJson Sensor JSON object. + * @param interfacesDict Map of all sensor interfaces. + * @param inventoryItem D-Bus inventory item associated with the sensor. Will + * be nullptr if no associated inventory item was found. + * @return Health value for sensor. + */ +static std::string getHealth( + nlohmann::json& sensorJson, + const boost::container::flat_map< + std::string, boost::container::flat_map>& + interfacesDict, + const InventoryItem* inventoryItem) +{ + // Get current health value (if any) in the sensor JSON object. Some JSON + // objects contain multiple sensors (such as PowerSupplies). We want to set + // the overall health to be the most severe of any of the sensors. + std::string currentHealth; + auto statusIt = sensorJson.find("Status"); + if (statusIt != sensorJson.end()) + { + auto healthIt = statusIt->find("Health"); + if (healthIt != statusIt->end()) + { + std::string* health = healthIt->get_ptr(); + if (health != nullptr) + { + currentHealth = *health; + } + } + } + + // If current health in JSON object is already Critical, return that. This + // should override the sensor health, which might be less severe. + if (currentHealth == "Critical") + { + return "Critical"; + } + + // Check if sensor has critical threshold alarm + auto criticalThresholdIt = + interfacesDict.find("xyz.openbmc_project.Sensor.Threshold.Critical"); + if (criticalThresholdIt != interfacesDict.end()) + { + auto thresholdHighIt = + criticalThresholdIt->second.find("CriticalAlarmHigh"); + auto thresholdLowIt = + criticalThresholdIt->second.find("CriticalAlarmLow"); + if (thresholdHighIt != criticalThresholdIt->second.end()) + { + const bool* asserted = std::get_if(&thresholdHighIt->second); + if (asserted == nullptr) + { + BMCWEB_LOG_ERROR << "Illegal sensor threshold"; + } + else if (*asserted) + { + return "Critical"; + } + } + if (thresholdLowIt != criticalThresholdIt->second.end()) + { + const bool* asserted = std::get_if(&thresholdLowIt->second); + if (asserted == nullptr) + { + BMCWEB_LOG_ERROR << "Illegal sensor threshold"; + } + else if (*asserted) + { + return "Critical"; + } + } + } + + // Check if associated inventory item is not functional + if ((inventoryItem != nullptr) && !(inventoryItem->isFunctional)) + { + return "Critical"; + } + + // If current health in JSON object is already Warning, return that. This + // should override the sensor status, which might be less severe. + if (currentHealth == "Warning") + { + return "Warning"; + } + + // Check if sensor has warning threshold alarm + auto warningThresholdIt = + interfacesDict.find("xyz.openbmc_project.Sensor.Threshold.Warning"); + if (warningThresholdIt != interfacesDict.end()) + { + auto thresholdHighIt = + warningThresholdIt->second.find("WarningAlarmHigh"); + auto thresholdLowIt = + warningThresholdIt->second.find("WarningAlarmLow"); + if (thresholdHighIt != warningThresholdIt->second.end()) + { + const bool* asserted = std::get_if(&thresholdHighIt->second); + if (asserted == nullptr) + { + BMCWEB_LOG_ERROR << "Illegal sensor threshold"; + } + else if (*asserted) + { + return "Warning"; + } + } + if (thresholdLowIt != warningThresholdIt->second.end()) + { + const bool* asserted = std::get_if(&thresholdLowIt->second); + if (asserted == nullptr) + { + BMCWEB_LOG_ERROR << "Illegal sensor threshold"; + } + else if (*asserted) + { + return "Warning"; + } + } + } + + return "OK"; +} + +static void setLedState(nlohmann::json& sensorJson, + const InventoryItem* inventoryItem) +{ + if (inventoryItem != nullptr && !inventoryItem->ledObjectPath.empty()) + { + switch (inventoryItem->ledState) + { + case LedState::OFF: + sensorJson["IndicatorLED"] = "Off"; + break; + case LedState::ON: + sensorJson["IndicatorLED"] = "Lit"; + break; + case LedState::BLINK: + sensorJson["IndicatorLED"] = "Blinking"; + break; + default: + break; + } + } +} + /** * @brief Builds a json sensor representation of a sensor. * @param sensorName The name of the sensor to be built * @param sensorType The type (temperature, fan_tach, etc) of the sensor to * build + * @param sensorSchema The schema (Power, Thermal, etc) being associated with + * the sensor to build * @param interfacesDict A dictionary of the interfaces and properties of said * interfaces to be built from * @param sensor_json The json object to fill + * @param inventoryItem D-Bus inventory item associated with the sensor. Will + * be nullptr if no associated inventory item was found. */ void objectInterfacesToJson( const std::string& sensorName, const std::string& sensorType, + const std::string& sensorSchema, const boost::container::flat_map< std::string, boost::container::flat_map>& interfacesDict, - nlohmann::json& sensor_json) + nlohmann::json& sensor_json, InventoryItem* inventoryItem) { // We need a value interface before we can do anything with it auto valueIt = interfacesDict.find("xyz.openbmc_project.Sensor.Value"); @@ -280,46 +731,95 @@ void objectInterfacesToJson( } } - sensor_json["MemberId"] = sensorName; - sensor_json["Name"] = sensorName; - sensor_json["Status"]["State"] = "Enabled"; - sensor_json["Status"]["Health"] = "OK"; + if (sensorSchema == "Sensors") + { + // For sensors in SensorCollection we set Id instead of MemberId, + // including power sensors. + sensor_json["Id"] = sensorName; + sensor_json["Name"] = boost::replace_all_copy(sensorName, "_", " "); + } + else if (sensorType != "power") + { + // Set MemberId and Name for non-power sensors. For PowerSupplies and + // PowerControl, those properties have more general values because + // multiple sensors can be stored in the same JSON object. + sensor_json["MemberId"] = sensorName; + sensor_json["Name"] = boost::replace_all_copy(sensorName, "_", " "); + } + + sensor_json["Status"]["State"] = getState(inventoryItem); + sensor_json["Status"]["Health"] = + getHealth(sensor_json, interfacesDict, inventoryItem); // Parameter to set to override the type we get from dbus, and force it to // int, regardless of what is available. This is used for schemas like fan, // that require integers, not floats. bool forceToInt = false; - const char* unit = "Reading"; - if (sensorType == "temperature") + nlohmann::json::json_pointer unit("/Reading"); + if (sensorSchema == "Sensors") { - unit = "ReadingCelsius"; + sensor_json["@odata.type"] = "#Sensor.v1_0_0.Sensor"; + sensor_json["@odata.context"] = "/redfish/v1/$metadata#Sensor.Sensor"; + if (sensorType == "power") + { + sensor_json["ReadingUnits"] = "Watts"; + } + else if (sensorType == "current") + { + sensor_json["ReadingUnits"] = "Amperes"; + } + } + else if (sensorType == "temperature") + { + unit = "/ReadingCelsius"_json_pointer; sensor_json["@odata.type"] = "#Thermal.v1_3_0.Temperature"; // TODO(ed) Documentation says that path should be type fan_tach, // implementation seems to implement fan } else if (sensorType == "fan" || sensorType == "fan_tach") { - unit = "Reading"; + unit = "/Reading"_json_pointer; sensor_json["ReadingUnits"] = "RPM"; sensor_json["@odata.type"] = "#Thermal.v1_3_0.Fan"; + setLedState(sensor_json, inventoryItem); forceToInt = true; } else if (sensorType == "fan_pwm") { - unit = "Reading"; + unit = "/Reading"_json_pointer; sensor_json["ReadingUnits"] = "Percent"; sensor_json["@odata.type"] = "#Thermal.v1_3_0.Fan"; + setLedState(sensor_json, inventoryItem); forceToInt = true; } else if (sensorType == "voltage") { - unit = "ReadingVolts"; + unit = "/ReadingVolts"_json_pointer; sensor_json["@odata.type"] = "#Power.v1_0_0.Voltage"; } else if (sensorType == "power") { - unit = "LastPowerOutputWatts"; + std::string sensorNameLower = + boost::algorithm::to_lower_copy(sensorName); + + if (!sensorName.compare("total_power")) + { + sensor_json["@odata.type"] = "#Power.v1_0_0.PowerControl"; + // Put multiple "sensors" into a single PowerControl, so have + // generic names for MemberId and Name. Follows Redfish mockup. + sensor_json["MemberId"] = "0"; + sensor_json["Name"] = "Chassis Power Control"; + unit = "/PowerConsumedWatts"_json_pointer; + } + else if (sensorNameLower.find("input") != std::string::npos) + { + unit = "/PowerInputWatts"_json_pointer; + } + else + { + unit = "/PowerOutputWatts"_json_pointer; + } } else { @@ -327,60 +827,101 @@ void objectInterfacesToJson( return; } // Map of dbus interface name, dbus property name and redfish property_name - std::vector> properties; + std::vector< + std::tuple> + properties; properties.reserve(7); properties.emplace_back("xyz.openbmc_project.Sensor.Value", "Value", unit); - properties.emplace_back("xyz.openbmc_project.Sensor.Threshold.Warning", - "WarningHigh", "UpperThresholdNonCritical"); - properties.emplace_back("xyz.openbmc_project.Sensor.Threshold.Warning", - "WarningLow", "LowerThresholdNonCritical"); - properties.emplace_back("xyz.openbmc_project.Sensor.Threshold.Critical", - "CriticalHigh", "UpperThresholdCritical"); - properties.emplace_back("xyz.openbmc_project.Sensor.Threshold.Critical", - "CriticalLow", "LowerThresholdCritical"); + + if (sensorSchema == "Sensors") + { + properties.emplace_back( + "xyz.openbmc_project.Sensor.Threshold.Warning", "WarningHigh", + "/Thresholds/UpperCaution/Reading"_json_pointer); + properties.emplace_back( + "xyz.openbmc_project.Sensor.Threshold.Warning", "WarningLow", + "/Thresholds/LowerCaution/Reading"_json_pointer); + properties.emplace_back( + "xyz.openbmc_project.Sensor.Threshold.Critical", "CriticalHigh", + "/Thresholds/UpperCritical/Reading"_json_pointer); + properties.emplace_back( + "xyz.openbmc_project.Sensor.Threshold.Critical", "CriticalLow", + "/Thresholds/LowerCritical/Reading"_json_pointer); + } + else if (sensorType != "power") + { + properties.emplace_back("xyz.openbmc_project.Sensor.Threshold.Warning", + "WarningHigh", + "/UpperThresholdNonCritical"_json_pointer); + properties.emplace_back("xyz.openbmc_project.Sensor.Threshold.Warning", + "WarningLow", + "/LowerThresholdNonCritical"_json_pointer); + properties.emplace_back("xyz.openbmc_project.Sensor.Threshold.Critical", + "CriticalHigh", + "/UpperThresholdCritical"_json_pointer); + properties.emplace_back("xyz.openbmc_project.Sensor.Threshold.Critical", + "CriticalLow", + "/LowerThresholdCritical"_json_pointer); + } // TODO Need to get UpperThresholdFatal and LowerThresholdFatal - if (sensorType == "temperature") + if (sensorSchema == "Sensors") { properties.emplace_back("xyz.openbmc_project.Sensor.Value", "MinValue", - "MinReadingRangeTemp"); + "/ReadingRangeMin"_json_pointer); properties.emplace_back("xyz.openbmc_project.Sensor.Value", "MaxValue", - "MaxReadingRangeTemp"); + "/ReadingRangeMax"_json_pointer); } - else + else if (sensorType == "temperature") + { + properties.emplace_back("xyz.openbmc_project.Sensor.Value", "MinValue", + "/MinReadingRangeTemp"_json_pointer); + properties.emplace_back("xyz.openbmc_project.Sensor.Value", "MaxValue", + "/MaxReadingRangeTemp"_json_pointer); + } + else if (sensorType != "power") { properties.emplace_back("xyz.openbmc_project.Sensor.Value", "MinValue", - "MinReadingRange"); + "/MinReadingRange"_json_pointer); properties.emplace_back("xyz.openbmc_project.Sensor.Value", "MaxValue", - "MaxReadingRange"); + "/MaxReadingRange"_json_pointer); } - for (const std::tuple& p : - properties) + for (const std::tuple& p : properties) { auto interfaceProperties = interfacesDict.find(std::get<0>(p)); if (interfaceProperties != interfacesDict.end()) { - auto valueIt = interfaceProperties->second.find(std::get<1>(p)); - if (valueIt != interfaceProperties->second.end()) + auto thisValueIt = interfaceProperties->second.find(std::get<1>(p)); + if (thisValueIt != interfaceProperties->second.end()) { - const SensorVariant& valueVariant = valueIt->second; - nlohmann::json& valueIt = sensor_json[std::get<2>(p)]; + const SensorVariant& valueVariant = thisValueIt->second; + + // The property we want to set may be nested json, so use + // a json_pointer for easy indexing into the json structure. + const nlohmann::json::json_pointer& key = std::get<2>(p); + // Attempt to pull the int64 directly const int64_t* int64Value = std::get_if(&valueVariant); const double* doubleValue = std::get_if(&valueVariant); + const uint32_t* uValue = std::get_if(&valueVariant); double temp = 0.0; if (int64Value != nullptr) { - temp = *int64Value; + temp = static_cast(*int64Value); } else if (doubleValue != nullptr) { temp = *doubleValue; } + else if (uValue != nullptr) + { + temp = *uValue; + } else { BMCWEB_LOG_ERROR @@ -390,11 +931,11 @@ void objectInterfacesToJson( temp = temp * std::pow(10, scaleMultiplier); if (forceToInt) { - valueIt = static_cast(temp); + sensor_json[key] = static_cast(temp); } else { - valueIt = temp; + sensor_json[key] = temp; } } } @@ -402,143 +943,1749 @@ void objectInterfacesToJson( BMCWEB_LOG_DEBUG << "Added sensor " << sensorName; } -/** - * @brief Entry point for retrieving sensors data related to requested - * chassis. - * @param SensorsAsyncResp Pointer to object holding response data - */ -void getChassisData(std::shared_ptr SensorsAsyncResp) +static void + populateFanRedundancy(std::shared_ptr sensorsAsyncResp) { - BMCWEB_LOG_DEBUG << "getChassisData enter"; - auto getChassisCb = [&, SensorsAsyncResp]( - boost::container::flat_set& - sensorNames) { - BMCWEB_LOG_DEBUG << "getChassisCb enter"; - auto getConnectionCb = - [&, SensorsAsyncResp, sensorNames]( - const boost::container::flat_set& connections) { - BMCWEB_LOG_DEBUG << "getConnectionCb enter"; - // Get managed objects from all services exposing sensors - for (const std::string& connection : connections) - { - // Response handler to process managed objects - auto getManagedObjectsCb = - [&, SensorsAsyncResp, - sensorNames](const boost::system::error_code ec, - ManagedObjectsVectorType& resp) { - BMCWEB_LOG_DEBUG << "getManagedObjectsCb enter"; - if (ec) - { - BMCWEB_LOG_ERROR - << "getManagedObjectsCb DBUS error: " << ec; - messages::internalError(SensorsAsyncResp->res); - return; - } - // Go through all objects and update response with - // sensor data - for (const auto& objDictEntry : resp) - { - const std::string& objPath = - static_cast( - objDictEntry.first); - BMCWEB_LOG_DEBUG - << "getManagedObjectsCb parsing object " - << objPath; - - std::vector split; - // Reserve space for - // /xyz/openbmc_project/sensors// - split.reserve(6); - boost::algorithm::split(split, objPath, - boost::is_any_of("/")); - if (split.size() < 6) + crow::connections::systemBus->async_method_call( + [sensorsAsyncResp](const boost::system::error_code ec, + const GetSubTreeType& resp) { + if (ec) + { + return; // don't have to have this interface + } + for (const std::pair>>>& + pathPair : resp) + { + const std::string& path = pathPair.first; + const std::vector< + std::pair>>& objDict = + pathPair.second; + if (objDict.empty()) + { + continue; // this should be impossible + } + + const std::string& owner = objDict.begin()->first; + crow::connections::systemBus->async_method_call( + [path, owner, + sensorsAsyncResp](const boost::system::error_code e, + std::variant> + variantEndpoints) { + if (e) + { + return; // if they don't have an association we + // can't tell what chassis is + } + // verify part of the right chassis + auto endpoints = std::get_if>( + &variantEndpoints); + + if (endpoints == nullptr) + { + BMCWEB_LOG_ERROR << "Invalid association interface"; + messages::internalError(sensorsAsyncResp->res); + return; + } + + auto found = std::find_if( + endpoints->begin(), endpoints->end(), + [sensorsAsyncResp](const std::string& entry) { + return entry.find( + sensorsAsyncResp->chassisId) != + std::string::npos; + }); + + if (found == endpoints->end()) + { + return; + } + crow::connections::systemBus->async_method_call( + [path, sensorsAsyncResp]( + const boost::system::error_code& err, + const boost::container::flat_map< + std::string, + std::variant, + std::string>>& ret) { + if (err) { - BMCWEB_LOG_ERROR - << "Got path that isn't long enough " - << objPath; - continue; + return; // don't have to have this + // interface } - // These indexes aren't intuitive, as - // boost::split puts an empty string at the - // beggining - const std::string& sensorType = split[4]; - const std::string& sensorName = split[5]; - BMCWEB_LOG_DEBUG << "sensorName " << sensorName - << " sensorType " - << sensorType; - if (sensorNames.find(sensorName) == - sensorNames.end()) + auto findFailures = ret.find("AllowedFailures"); + auto findCollection = ret.find("Collection"); + auto findStatus = ret.find("Status"); + + if (findFailures == ret.end() || + findCollection == ret.end() || + findStatus == ret.end()) { - BMCWEB_LOG_ERROR << sensorName - << " not in sensor list "; - continue; + BMCWEB_LOG_ERROR + << "Invalid redundancy interface"; + messages::internalError( + sensorsAsyncResp->res); + return; } - const char* fieldName = nullptr; - if (sensorType == "temperature") + auto allowedFailures = std::get_if( + &(findFailures->second)); + auto collection = + std::get_if>( + &(findCollection->second)); + auto status = std::get_if( + &(findStatus->second)); + + if (allowedFailures == nullptr || + collection == nullptr || status == nullptr) { - fieldName = "Temperatures"; + + BMCWEB_LOG_ERROR + << "Invalid redundancy interface " + "types"; + messages::internalError( + sensorsAsyncResp->res); + return; } - else if (sensorType == "fan" || - sensorType == "fan_tach" || - sensorType == "fan_pwm") + size_t lastSlash = path.rfind("/"); + if (lastSlash == std::string::npos) { - fieldName = "Fans"; + // this should be impossible + messages::internalError( + sensorsAsyncResp->res); + return; } - else if (sensorType == "voltage") + std::string name = path.substr(lastSlash + 1); + std::replace(name.begin(), name.end(), '_', + ' '); + + std::string health; + + if (boost::ends_with(*status, "Full")) { - fieldName = "Voltages"; + health = "OK"; } - else if (sensorType == "current") + else if (boost::ends_with(*status, "Degraded")) { - fieldName = "PowerSupply"; + health = "Warning"; } - else if (sensorType == "power") + else { - fieldName = "PowerSupply"; + health = "Critical"; } - else + std::vector redfishCollection; + const auto& fanRedfish = + sensorsAsyncResp->res.jsonValue["Fans"]; + for (const std::string& item : *collection) { - BMCWEB_LOG_ERROR - << "Unsure how to handle sensorType " - << sensorType; - continue; + lastSlash = item.rfind("/"); + // make a copy as collection is const + std::string itemName = + item.substr(lastSlash + 1); + /* + todo(ed): merge patch that fixes the names + std::replace(itemName.begin(), + itemName.end(), '_', ' ');*/ + auto schemaItem = std::find_if( + fanRedfish.begin(), fanRedfish.end(), + [itemName](const nlohmann::json& fan) { + return fan["MemberId"] == itemName; + }); + if (schemaItem != fanRedfish.end()) + { + redfishCollection.push_back( + {{"@odata.id", + (*schemaItem)["@odata.id"]}}); + } + else + { + BMCWEB_LOG_ERROR + << "failed to find fan in schema"; + messages::internalError( + sensorsAsyncResp->res); + return; + } } - nlohmann::json& tempArray = - SensorsAsyncResp->res.jsonValue[fieldName]; - - tempArray.push_back( + nlohmann::json& jResp = + sensorsAsyncResp->res + .jsonValue["Redundancy"]; + jResp.push_back( {{"@odata.id", "/redfish/v1/Chassis/" + - SensorsAsyncResp->chassisId + "/" + - SensorsAsyncResp->chassisSubNode + - "#/" + fieldName + "/" + - std::to_string(tempArray.size())}}); - nlohmann::json& sensorJson = tempArray.back(); - - objectInterfacesToJson(sensorName, sensorType, - objDictEntry.second, - sensorJson); + sensorsAsyncResp->chassisId + "/" + + sensorsAsyncResp->chassisSubNode + + "#/Redundancy/" + + std::to_string(jResp.size())}, + {"@odata.type", + "#Redundancy.v1_3_2.Redundancy"}, + {"MinNumNeeded", + collection->size() - *allowedFailures}, + {"MemberId", name}, + {"Mode", "N+m"}, + {"Name", name}, + {"RedundancySet", redfishCollection}, + {"Status", + {{"Health", health}, + {"State", "Enabled"}}}}); + }, + owner, path, "org.freedesktop.DBus.Properties", + "GetAll", + "xyz.openbmc_project.Control.FanRedundancy"); + }, + "xyz.openbmc_project.ObjectMapper", path + "/chassis", + "org.freedesktop.DBus.Properties", "Get", + "xyz.openbmc_project.Association", "endpoints"); + } + }, + "xyz.openbmc_project.ObjectMapper", + "/xyz/openbmc_project/object_mapper", + "xyz.openbmc_project.ObjectMapper", "GetSubTree", + "/xyz/openbmc_project/control", 2, + std::array{ + "xyz.openbmc_project.Control.FanRedundancy"}); +} + +void sortJSONResponse(std::shared_ptr SensorsAsyncResp) +{ + nlohmann::json& response = SensorsAsyncResp->res.jsonValue; + std::array sensorHeaders{"Temperatures", "Fans"}; + if (SensorsAsyncResp->chassisSubNode == "Power") + { + sensorHeaders = {"Voltages", "PowerSupplies"}; + } + for (const std::string& sensorGroup : sensorHeaders) + { + nlohmann::json::iterator entry = response.find(sensorGroup); + if (entry != response.end()) + { + std::sort(entry->begin(), entry->end(), + [](nlohmann::json& c1, nlohmann::json& c2) { + return c1["Name"] < c2["Name"]; + }); + + // add the index counts to the end of each entry + size_t count = 0; + for (nlohmann::json& sensorJson : *entry) + { + nlohmann::json::iterator odata = sensorJson.find("@odata.id"); + if (odata == sensorJson.end()) + { + continue; + } + std::string* value = odata->get_ptr(); + if (value != nullptr) + { + *value += std::to_string(count); + count++; + } + } + } + } +} + +/** + * @brief Finds the inventory item with the specified object path. + * @param inventoryItems D-Bus inventory items associated with sensors. + * @param invItemObjPath D-Bus object path of inventory item. + * @return Inventory item within vector, or nullptr if no match found. + */ +static InventoryItem* findInventoryItem( + std::shared_ptr> inventoryItems, + const std::string& invItemObjPath) +{ + for (InventoryItem& inventoryItem : *inventoryItems) + { + if (inventoryItem.objectPath == invItemObjPath) + { + return &inventoryItem; + } + } + return nullptr; +} + +/** + * @brief Finds the inventory item associated with the specified sensor. + * @param inventoryItems D-Bus inventory items associated with sensors. + * @param sensorObjPath D-Bus object path of sensor. + * @return Inventory item within vector, or nullptr if no match found. + */ +static InventoryItem* findInventoryItemForSensor( + std::shared_ptr> inventoryItems, + const std::string& sensorObjPath) +{ + for (InventoryItem& inventoryItem : *inventoryItems) + { + if (inventoryItem.sensors.count(sensorObjPath) > 0) + { + return &inventoryItem; + } + } + return nullptr; +} + +/** + * @brief Finds the inventory item associated with the specified led path. + * @param inventoryItems D-Bus inventory items associated with sensors. + * @param ledObjPath D-Bus object path of led. + * @return Inventory item within vector, or nullptr if no match found. + */ +inline InventoryItem* + findInventoryItemForLed(std::vector& inventoryItems, + const std::string& ledObjPath) +{ + for (InventoryItem& inventoryItem : inventoryItems) + { + if (inventoryItem.ledObjectPath == ledObjPath) + { + return &inventoryItem; + } + } + return nullptr; +} + +/** + * @brief Adds inventory item and associated sensor to specified vector. + * + * Adds a new InventoryItem to the vector if necessary. Searches for an + * existing InventoryItem with the specified object path. If not found, one is + * added to the vector. + * + * Next, the specified sensor is added to the set of sensors associated with the + * InventoryItem. + * + * @param inventoryItems D-Bus inventory items associated with sensors. + * @param invItemObjPath D-Bus object path of inventory item. + * @param sensorObjPath D-Bus object path of sensor + */ +static void + addInventoryItem(std::shared_ptr> inventoryItems, + const std::string& invItemObjPath, + const std::string& sensorObjPath) +{ + // Look for inventory item in vector + InventoryItem* inventoryItem = + findInventoryItem(inventoryItems, invItemObjPath); + + // If inventory item doesn't exist in vector, add it + if (inventoryItem == nullptr) + { + inventoryItems->emplace_back(invItemObjPath); + inventoryItem = &(inventoryItems->back()); + } + + // Add sensor to set of sensors associated with inventory item + inventoryItem->sensors.emplace(sensorObjPath); +} + +/** + * @brief Stores D-Bus data in the specified inventory item. + * + * Finds D-Bus data in the specified map of interfaces. Stores the data in the + * specified InventoryItem. + * + * This data is later used to provide sensor property values in the JSON + * response. + * + * @param inventoryItem Inventory item where data will be stored. + * @param interfacesDict Map containing D-Bus interfaces and their properties + * for the specified inventory item. + */ +static void storeInventoryItemData( + InventoryItem& inventoryItem, + const boost::container::flat_map< + std::string, boost::container::flat_map>& + interfacesDict) +{ + // Get properties from Inventory.Item interface + auto interfaceIt = + interfacesDict.find("xyz.openbmc_project.Inventory.Item"); + if (interfaceIt != interfacesDict.end()) + { + auto propertyIt = interfaceIt->second.find("Present"); + if (propertyIt != interfaceIt->second.end()) + { + const bool* value = std::get_if(&propertyIt->second); + if (value != nullptr) + { + inventoryItem.isPresent = *value; + } + } + } + + // Check if Inventory.Item.PowerSupply interface is present + interfaceIt = + interfacesDict.find("xyz.openbmc_project.Inventory.Item.PowerSupply"); + if (interfaceIt != interfacesDict.end()) + { + inventoryItem.isPowerSupply = true; + } + + // Get properties from Inventory.Decorator.Asset interface + interfaceIt = + interfacesDict.find("xyz.openbmc_project.Inventory.Decorator.Asset"); + if (interfaceIt != interfacesDict.end()) + { + auto propertyIt = interfaceIt->second.find("Manufacturer"); + if (propertyIt != interfaceIt->second.end()) + { + const std::string* value = + std::get_if(&propertyIt->second); + if (value != nullptr) + { + inventoryItem.manufacturer = *value; + } + } + + propertyIt = interfaceIt->second.find("Model"); + if (propertyIt != interfaceIt->second.end()) + { + const std::string* value = + std::get_if(&propertyIt->second); + if (value != nullptr) + { + inventoryItem.model = *value; + } + } + + propertyIt = interfaceIt->second.find("PartNumber"); + if (propertyIt != interfaceIt->second.end()) + { + const std::string* value = + std::get_if(&propertyIt->second); + if (value != nullptr) + { + inventoryItem.partNumber = *value; + } + } + + propertyIt = interfaceIt->second.find("SerialNumber"); + if (propertyIt != interfaceIt->second.end()) + { + const std::string* value = + std::get_if(&propertyIt->second); + if (value != nullptr) + { + inventoryItem.serialNumber = *value; + } + } + } + + // Get properties from State.Decorator.OperationalStatus interface + interfaceIt = interfacesDict.find( + "xyz.openbmc_project.State.Decorator.OperationalStatus"); + if (interfaceIt != interfacesDict.end()) + { + auto propertyIt = interfaceIt->second.find("Functional"); + if (propertyIt != interfaceIt->second.end()) + { + const bool* value = std::get_if(&propertyIt->second); + if (value != nullptr) + { + inventoryItem.isFunctional = *value; + } + } + } +} + +/** + * @brief Gets D-Bus data for inventory items associated with sensors. + * + * Uses the specified connections (services) to obtain D-Bus data for inventory + * items associated with sensors. Stores the resulting data in the + * inventoryItems vector. + * + * This data is later used to provide sensor property values in the JSON + * response. + * + * Finds the inventory item data asynchronously. Invokes callback when data has + * been obtained. + * + * The callback must have the following signature: + * @code + * callback(void) + * @endcode + * + * This function is called recursively, obtaining data asynchronously from one + * connection in each call. This ensures the callback is not invoked until the + * last asynchronous function has completed. + * + * @param sensorsAsyncResp Pointer to object holding response data. + * @param inventoryItems D-Bus inventory items associated with sensors. + * @param invConnections Connections that provide data for the inventory items. + * @param objectMgrPaths Mappings from connection name to DBus object path that + * implements ObjectManager. + * @param callback Callback to invoke when inventory data has been obtained. + * @param invConnectionsIndex Current index in invConnections. Only specified + * in recursive calls to this function. + */ +template +static void getInventoryItemsData( + std::shared_ptr sensorsAsyncResp, + std::shared_ptr> inventoryItems, + std::shared_ptr> invConnections, + std::shared_ptr> + objectMgrPaths, + Callback&& callback, size_t invConnectionsIndex = 0) +{ + BMCWEB_LOG_DEBUG << "getInventoryItemsData enter"; + + // If no more connections left, call callback + if (invConnectionsIndex >= invConnections->size()) + { + callback(); + BMCWEB_LOG_DEBUG << "getInventoryItemsData exit"; + return; + } + + // Get inventory item data from current connection + auto it = invConnections->nth(invConnectionsIndex); + if (it != invConnections->end()) + { + const std::string& invConnection = *it; + + // Response handler for GetManagedObjects + auto respHandler = [sensorsAsyncResp, inventoryItems, invConnections, + objectMgrPaths, callback{std::move(callback)}, + invConnectionsIndex]( + const boost::system::error_code ec, + ManagedObjectsVectorType& resp) { + BMCWEB_LOG_DEBUG << "getInventoryItemsData respHandler enter"; + if (ec) + { + BMCWEB_LOG_ERROR + << "getInventoryItemsData respHandler DBus error " << ec; + messages::internalError(sensorsAsyncResp->res); + return; + } + + // Loop through returned object paths + for (const auto& objDictEntry : resp) + { + const std::string& objPath = + static_cast(objDictEntry.first); + + // If this object path is one of the specified inventory items + InventoryItem* inventoryItem = + findInventoryItem(inventoryItems, objPath); + if (inventoryItem != nullptr) + { + // Store inventory data in InventoryItem + storeInventoryItemData(*inventoryItem, objDictEntry.second); + } + } + + // Recurse to get inventory item data from next connection + getInventoryItemsData(sensorsAsyncResp, inventoryItems, + invConnections, objectMgrPaths, + std::move(callback), invConnectionsIndex + 1); + + BMCWEB_LOG_DEBUG << "getInventoryItemsData respHandler exit"; + }; + + // Find DBus object path that implements ObjectManager for the current + // connection. If no mapping found, default to "/". + auto iter = objectMgrPaths->find(invConnection); + const std::string& objectMgrPath = + (iter != objectMgrPaths->end()) ? iter->second : "/"; + BMCWEB_LOG_DEBUG << "ObjectManager path for " << invConnection << " is " + << objectMgrPath; + + // Get all object paths and their interfaces for current connection + crow::connections::systemBus->async_method_call( + std::move(respHandler), invConnection, objectMgrPath, + "org.freedesktop.DBus.ObjectManager", "GetManagedObjects"); + } + + BMCWEB_LOG_DEBUG << "getInventoryItemsData exit"; +} + +/** + * @brief Gets connections that provide D-Bus data for inventory items. + * + * Gets the D-Bus connections (services) that provide data for the inventory + * items that are associated with sensors. + * + * Finds the connections asynchronously. Invokes callback when information has + * been obtained. + * + * The callback must have the following signature: + * @code + * callback(std::shared_ptr> + * invConnections) + * @endcode + * + * @param sensorsAsyncResp Pointer to object holding response data. + * @param inventoryItems D-Bus inventory items associated with sensors. + * @param callback Callback to invoke when connections have been obtained. + */ +template +static void getInventoryItemsConnections( + std::shared_ptr sensorsAsyncResp, + std::shared_ptr> inventoryItems, + Callback&& callback) +{ + BMCWEB_LOG_DEBUG << "getInventoryItemsConnections enter"; + + const std::string path = "/xyz/openbmc_project/inventory"; + const std::array interfaces = { + "xyz.openbmc_project.Inventory.Item", + "xyz.openbmc_project.Inventory.Item.PowerSupply", + "xyz.openbmc_project.Inventory.Decorator.Asset", + "xyz.openbmc_project.State.Decorator.OperationalStatus"}; + + // Response handler for parsing output from GetSubTree + auto respHandler = [callback{std::move(callback)}, sensorsAsyncResp, + inventoryItems](const boost::system::error_code ec, + const GetSubTreeType& subtree) { + BMCWEB_LOG_DEBUG << "getInventoryItemsConnections respHandler enter"; + if (ec) + { + messages::internalError(sensorsAsyncResp->res); + BMCWEB_LOG_ERROR + << "getInventoryItemsConnections respHandler DBus error " << ec; + return; + } + + // Make unique list of connections for desired inventory items + std::shared_ptr> + invConnections = + std::make_shared>(); + invConnections->reserve(8); + + // Loop through objects from GetSubTree + for (const std::pair< + std::string, + std::vector>>>& + object : subtree) + { + // Check if object path is one of the specified inventory items + const std::string& objPath = object.first; + if (findInventoryItem(inventoryItems, objPath) != nullptr) + { + // Store all connections to inventory item + for (const std::pair>& + objData : object.second) + { + const std::string& invConnection = objData.first; + invConnections->insert(invConnection); + } + } + } + + callback(invConnections); + BMCWEB_LOG_DEBUG << "getInventoryItemsConnections respHandler exit"; + }; + + // Make call to ObjectMapper to find all inventory items + crow::connections::systemBus->async_method_call( + std::move(respHandler), "xyz.openbmc_project.ObjectMapper", + "/xyz/openbmc_project/object_mapper", + "xyz.openbmc_project.ObjectMapper", "GetSubTree", path, 0, interfaces); + BMCWEB_LOG_DEBUG << "getInventoryItemsConnections exit"; +} + +/** + * @brief Gets associations from sensors to inventory items. + * + * Looks for ObjectMapper associations from the specified sensors to related + * inventory items. Then finds the associations from those inventory items to + * their LEDs, if any. + * + * Finds the inventory items asynchronously. Invokes callback when information + * has been obtained. + * + * The callback must have the following signature: + * @code + * callback(std::shared_ptr> inventoryItems) + * @endcode + * + * @param sensorsAsyncResp Pointer to object holding response data. + * @param sensorNames All sensors within the current chassis. + * @param objectMgrPaths Mappings from connection name to DBus object path that + * implements ObjectManager. + * @param callback Callback to invoke when inventory items have been obtained. + */ +template +static void getInventoryItemAssociations( + std::shared_ptr sensorsAsyncResp, + const std::shared_ptr> sensorNames, + std::shared_ptr> + objectMgrPaths, + Callback&& callback) +{ + BMCWEB_LOG_DEBUG << "getInventoryItemAssociations enter"; + + // Response handler for GetManagedObjects + auto respHandler = [callback{std::move(callback)}, sensorsAsyncResp, + sensorNames](const boost::system::error_code ec, + dbus::utility::ManagedObjectType& resp) { + BMCWEB_LOG_DEBUG << "getInventoryItemAssociations respHandler enter"; + if (ec) + { + BMCWEB_LOG_ERROR + << "getInventoryItemAssociations respHandler DBus error " << ec; + messages::internalError(sensorsAsyncResp->res); + return; + } + + // Create vector to hold list of inventory items + std::shared_ptr> inventoryItems = + std::make_shared>(); + + // Loop through returned object paths + std::string sensorAssocPath; + sensorAssocPath.reserve(128); // avoid memory allocations + for (const auto& objDictEntry : resp) + { + const std::string& objPath = + static_cast(objDictEntry.first); + const boost::container::flat_map< + std::string, boost::container::flat_map< + std::string, dbus::utility::DbusVariantType>>& + interfacesDict = objDictEntry.second; + + // If path is inventory association for one of the specified sensors + for (const std::string& sensorName : *sensorNames) + { + sensorAssocPath = sensorName; + sensorAssocPath += "/inventory"; + if (objPath == sensorAssocPath) + { + // Get Association interface for object path + auto assocIt = + interfacesDict.find("xyz.openbmc_project.Association"); + if (assocIt != interfacesDict.end()) + { + // Get inventory item from end point + auto endpointsIt = assocIt->second.find("endpoints"); + if (endpointsIt != assocIt->second.end()) + { + const std::vector* endpoints = + std::get_if>( + &endpointsIt->second); + if ((endpoints != nullptr) && !endpoints->empty()) + { + // Add inventory item to vector + const std::string& invItemPath = + endpoints->front(); + addInventoryItem(inventoryItems, invItemPath, + sensorName); } - BMCWEB_LOG_DEBUG << "getManagedObjectsCb exit"; - }; - crow::connections::systemBus->async_method_call( - getManagedObjectsCb, connection, "/", - "org.freedesktop.DBus.ObjectManager", - "GetManagedObjects"); - }; - BMCWEB_LOG_DEBUG << "getConnectionCb exit"; - }; - // get connections and then pass it to get sensors - getConnections(SensorsAsyncResp, sensorNames, - std::move(getConnectionCb)); - BMCWEB_LOG_DEBUG << "getChassisCb exit"; + } + } + break; + } + } + } + + // Now loop through the returned object paths again, this time to + // find the leds associated with the inventory items we just found + std::string inventoryAssocPath; + inventoryAssocPath.reserve(128); // avoid memory allocations + for (const auto& objDictEntry : resp) + { + const std::string& objPath = + static_cast(objDictEntry.first); + const boost::container::flat_map< + std::string, boost::container::flat_map< + std::string, dbus::utility::DbusVariantType>>& + interfacesDict = objDictEntry.second; + + for (InventoryItem& inventoryItem : *inventoryItems) + { + inventoryAssocPath = inventoryItem.objectPath; + inventoryAssocPath += "/leds"; + if (objPath == inventoryAssocPath) + { + // Get Association interface for object path + auto assocIt = + interfacesDict.find("xyz.openbmc_project.Association"); + if (assocIt != interfacesDict.end()) + { + // Get inventory item from end point + auto endpointsIt = assocIt->second.find("endpoints"); + if (endpointsIt != assocIt->second.end()) + { + const std::vector* endpoints = + std::get_if>( + &endpointsIt->second); + if ((endpoints != nullptr) && !endpoints->empty()) + { + // Store LED path in inventory item + const std::string& ledPath = endpoints->front(); + inventoryItem.ledObjectPath = ledPath; + } + } + } + break; + } + } + } + callback(inventoryItems); + BMCWEB_LOG_DEBUG << "getInventoryItemAssociations respHandler exit"; }; - // get chassis information related to sensors - getChassis(SensorsAsyncResp, std::move(getChassisCb)); - BMCWEB_LOG_DEBUG << "getChassisData exit"; + // Find DBus object path that implements ObjectManager for ObjectMapper + std::string connection = "xyz.openbmc_project.ObjectMapper"; + auto iter = objectMgrPaths->find(connection); + const std::string& objectMgrPath = + (iter != objectMgrPaths->end()) ? iter->second : "/"; + BMCWEB_LOG_DEBUG << "ObjectManager path for " << connection << " is " + << objectMgrPath; + + // Call GetManagedObjects on the ObjectMapper to get all associations + crow::connections::systemBus->async_method_call( + std::move(respHandler), connection, objectMgrPath, + "org.freedesktop.DBus.ObjectManager", "GetManagedObjects"); + + BMCWEB_LOG_DEBUG << "getInventoryItemAssociations exit"; +} + +/** + * @brief Gets D-Bus data for inventory item leds associated with sensors. + * + * Uses the specified connections (services) to obtain D-Bus data for inventory + * item leds associated with sensors. Stores the resulting data in the + * inventoryItems vector. + * + * This data is later used to provide sensor property values in the JSON + * response. + * + * Finds the inventory item led data asynchronously. Invokes callback when data + * has been obtained. + * + * The callback must have the following signature: + * @code + * callback(std::shared_ptr> inventoryItems) + * @endcode + * + * This function is called recursively, obtaining data asynchronously from one + * connection in each call. This ensures the callback is not invoked until the + * last asynchronous function has completed. + * + * @param sensorsAsyncResp Pointer to object holding response data. + * @param inventoryItems D-Bus inventory items associated with sensors. + * @param ledConnections Connections that provide data for the inventory leds. + * @param callback Callback to invoke when inventory data has been obtained. + * @param ledConnectionsIndex Current index in ledConnections. Only specified + * in recursive calls to this function. + */ +template +void getInventoryLedData( + std::shared_ptr sensorsAsyncResp, + std::shared_ptr> inventoryItems, + std::shared_ptr> + ledConnections, + Callback&& callback, size_t ledConnectionsIndex = 0) +{ + BMCWEB_LOG_DEBUG << "getInventoryLedData enter"; + + // If no more connections left, call callback + if (ledConnectionsIndex >= ledConnections->size()) + { + callback(inventoryItems); + BMCWEB_LOG_DEBUG << "getInventoryLedData exit"; + return; + } + + // Get inventory item data from current connection + auto it = ledConnections->nth(ledConnectionsIndex); + if (it != ledConnections->end()) + { + const std::string& ledPath = (*it).first; + const std::string& ledConnection = (*it).second; + // Response handler for Get State property + auto respHandler = + [sensorsAsyncResp, inventoryItems, ledConnections, ledPath, + callback{std::move(callback)}, + ledConnectionsIndex](const boost::system::error_code ec, + const std::variant& ledState) { + BMCWEB_LOG_DEBUG << "getInventoryLedData respHandler enter"; + if (ec) + { + BMCWEB_LOG_ERROR + << "getInventoryLedData respHandler DBus error " << ec; + messages::internalError(sensorsAsyncResp->res); + return; + } + + const std::string* state = std::get_if(&ledState); + if (state != nullptr) + { + BMCWEB_LOG_DEBUG << "Led state: " << *state; + // Find inventory item with this LED object path + InventoryItem* inventoryItem = + findInventoryItemForLed(*inventoryItems, ledPath); + if (inventoryItem != nullptr) + { + // Store LED state in InventoryItem + if (boost::ends_with(*state, "On")) + { + inventoryItem->ledState = LedState::ON; + } + else if (boost::ends_with(*state, "Blink")) + { + inventoryItem->ledState = LedState::BLINK; + } + else if (boost::ends_with(*state, "Off")) + { + inventoryItem->ledState = LedState::OFF; + } + else + { + inventoryItem->ledState = LedState::UNKNOWN; + } + } + } + else + { + BMCWEB_LOG_DEBUG << "Failed to find State data for LED: " + << ledPath; + } + + // Recurse to get LED data from next connection + getInventoryLedData(sensorsAsyncResp, inventoryItems, + ledConnections, std::move(callback), + ledConnectionsIndex + 1); + + BMCWEB_LOG_DEBUG << "getInventoryLedData respHandler exit"; + }; + + // Get the State property for the current LED + crow::connections::systemBus->async_method_call( + std::move(respHandler), ledConnection, ledPath, + "org.freedesktop.DBus.Properties", "Get", + "xyz.openbmc_project.Led.Physical", "State"); + } + + BMCWEB_LOG_DEBUG << "getInventoryLedData exit"; +} + +/** + * @brief Gets LED data for LEDs associated with given inventory items. + * + * Gets the D-Bus connections (services) that provide LED data for the LEDs + * associated with the specified inventory items. Then gets the LED data from + * each connection and stores it in the inventory item. + * + * This data is later used to provide sensor property values in the JSON + * response. + * + * Finds the LED data asynchronously. Invokes callback when information has + * been obtained. + * + * The callback must have the following signature: + * @code + * callback(std::shared_ptr> inventoryItems) + * @endcode + * + * @param sensorsAsyncResp Pointer to object holding response data. + * @param inventoryItems D-Bus inventory items associated with sensors. + * @param callback Callback to invoke when inventory items have been obtained. + */ +template +void getInventoryLeds( + std::shared_ptr sensorsAsyncResp, + std::shared_ptr> inventoryItems, + Callback&& callback) +{ + BMCWEB_LOG_DEBUG << "getInventoryLeds enter"; + + const std::string path = "/xyz/openbmc_project"; + const std::array interfaces = { + "xyz.openbmc_project.Led.Physical"}; + + // Response handler for parsing output from GetSubTree + auto respHandler = [callback{std::move(callback)}, sensorsAsyncResp, + inventoryItems](const boost::system::error_code ec, + const GetSubTreeType& subtree) { + BMCWEB_LOG_DEBUG << "getInventoryLeds respHandler enter"; + if (ec) + { + messages::internalError(sensorsAsyncResp->res); + BMCWEB_LOG_ERROR << "getInventoryLeds respHandler DBus error " + << ec; + return; + } + + // Build map of LED object paths to connections + std::shared_ptr> + ledConnections = std::make_shared< + boost::container::flat_map>(); + + // Loop through objects from GetSubTree + for (const std::pair< + std::string, + std::vector>>>& + object : subtree) + { + // Check if object path is LED for one of the specified inventory + // items + const std::string& ledPath = object.first; + if (findInventoryItemForLed(*inventoryItems, ledPath) != nullptr) + { + // Add mapping from ledPath to connection + const std::string& connection = object.second.begin()->first; + (*ledConnections)[ledPath] = connection; + BMCWEB_LOG_DEBUG << "Added mapping " << ledPath << " -> " + << connection; + } + } + + getInventoryLedData(sensorsAsyncResp, inventoryItems, ledConnections, + std::move(callback)); + BMCWEB_LOG_DEBUG << "getInventoryLeds respHandler exit"; + }; + // Make call to ObjectMapper to find all inventory items + crow::connections::systemBus->async_method_call( + std::move(respHandler), "xyz.openbmc_project.ObjectMapper", + "/xyz/openbmc_project/object_mapper", + "xyz.openbmc_project.ObjectMapper", "GetSubTree", path, 0, interfaces); + BMCWEB_LOG_DEBUG << "getInventoryLeds exit"; +} + +/** + * @brief Gets inventory items associated with sensors. + * + * Finds the inventory items that are associated with the specified sensors. + * Then gets D-Bus data for the inventory items, such as presence and VPD. + * + * This data is later used to provide sensor property values in the JSON + * response. + * + * Finds the inventory items asynchronously. Invokes callback when the + * inventory items have been obtained. + * + * The callback must have the following signature: + * @code + * callback(std::shared_ptr> inventoryItems) + * @endcode + * + * @param sensorsAsyncResp Pointer to object holding response data. + * @param sensorNames All sensors within the current chassis. + * @param objectMgrPaths Mappings from connection name to DBus object path that + * implements ObjectManager. + * @param callback Callback to invoke when inventory items have been obtained. + */ +template +static void getInventoryItems( + std::shared_ptr sensorsAsyncResp, + const std::shared_ptr> sensorNames, + std::shared_ptr> + objectMgrPaths, + Callback&& callback) +{ + BMCWEB_LOG_DEBUG << "getInventoryItems enter"; + auto getInventoryItemAssociationsCb = + [sensorsAsyncResp, objectMgrPaths, callback{std::move(callback)}]( + std::shared_ptr> inventoryItems) { + BMCWEB_LOG_DEBUG << "getInventoryItemAssociationsCb enter"; + auto getInventoryItemsConnectionsCb = + [sensorsAsyncResp, inventoryItems, objectMgrPaths, + callback{std::move(callback)}]( + std::shared_ptr> + invConnections) { + BMCWEB_LOG_DEBUG << "getInventoryItemsConnectionsCb enter"; + auto getInventoryItemsDataCb = + [sensorsAsyncResp, inventoryItems, + callback{std::move(callback)}]() { + BMCWEB_LOG_DEBUG << "getInventoryItemsDataCb enter"; + // Find led connections and get the data + getInventoryLeds(sensorsAsyncResp, inventoryItems, + std::move(callback)); + BMCWEB_LOG_DEBUG << "getInventoryItemsDataCb exit"; + }; + + // Get inventory item data from connections + getInventoryItemsData(sensorsAsyncResp, inventoryItems, + invConnections, objectMgrPaths, + std::move(getInventoryItemsDataCb)); + BMCWEB_LOG_DEBUG << "getInventoryItemsConnectionsCb exit"; + }; + + // Get connections that provide inventory item data + getInventoryItemsConnections( + sensorsAsyncResp, inventoryItems, + std::move(getInventoryItemsConnectionsCb)); + BMCWEB_LOG_DEBUG << "getInventoryItemAssociationsCb exit"; + }; + + // Get associations from sensors to inventory items + getInventoryItemAssociations(sensorsAsyncResp, sensorNames, objectMgrPaths, + std::move(getInventoryItemAssociationsCb)); + BMCWEB_LOG_DEBUG << "getInventoryItems exit"; +} + +/** + * @brief Returns JSON PowerSupply object for the specified inventory item. + * + * Searches for a JSON PowerSupply object that matches the specified inventory + * item. If one is not found, a new PowerSupply object is added to the JSON + * array. + * + * Multiple sensors are often associated with one power supply inventory item. + * As a result, multiple sensor values are stored in one JSON PowerSupply + * object. + * + * @param powerSupplyArray JSON array containing Redfish PowerSupply objects. + * @param inventoryItem Inventory item for the power supply. + * @param chassisId Chassis that contains the power supply. + * @return JSON PowerSupply object for the specified inventory item. + */ +static nlohmann::json& getPowerSupply(nlohmann::json& powerSupplyArray, + const InventoryItem& inventoryItem, + const std::string& chassisId) +{ + // Check if matching PowerSupply object already exists in JSON array + for (nlohmann::json& powerSupply : powerSupplyArray) + { + if (powerSupply["MemberId"] == inventoryItem.name) + { + return powerSupply; + } + } + + // Add new PowerSupply object to JSON array + powerSupplyArray.push_back({}); + nlohmann::json& powerSupply = powerSupplyArray.back(); + powerSupply["@odata.id"] = + "/redfish/v1/Chassis/" + chassisId + "/Power#/PowerSupplies/"; + powerSupply["MemberId"] = inventoryItem.name; + powerSupply["Name"] = boost::replace_all_copy(inventoryItem.name, "_", " "); + powerSupply["Manufacturer"] = inventoryItem.manufacturer; + powerSupply["Model"] = inventoryItem.model; + powerSupply["PartNumber"] = inventoryItem.partNumber; + powerSupply["SerialNumber"] = inventoryItem.serialNumber; + setLedState(powerSupply, &inventoryItem); + powerSupply["Status"]["State"] = getState(&inventoryItem); + + const char* health = inventoryItem.isFunctional ? "OK" : "Critical"; + powerSupply["Status"]["Health"] = health; + + return powerSupply; +} + +/** + * @brief Gets the values of the specified sensors. + * + * Stores the results as JSON in the SensorsAsyncResp. + * + * Gets the sensor values asynchronously. Stores the results later when the + * information has been obtained. + * + * The sensorNames set contains all requested sensors for the current chassis. + * + * To minimize the number of DBus calls, the DBus method + * org.freedesktop.DBus.ObjectManager.GetManagedObjects() is used to get the + * values of all sensors provided by a connection (service). + * + * The connections set contains all the connections that provide sensor values. + * + * The objectMgrPaths map contains mappings from a connection name to the + * corresponding DBus object path that implements ObjectManager. + * + * The InventoryItem vector contains D-Bus inventory items associated with the + * sensors. Inventory item data is needed for some Redfish sensor properties. + * + * @param SensorsAsyncResp Pointer to object holding response data. + * @param sensorNames All requested sensors within the current chassis. + * @param connections Connections that provide sensor values. + * @param objectMgrPaths Mappings from connection name to DBus object path that + * implements ObjectManager. + * @param inventoryItems Inventory items associated with the sensors. + */ +void getSensorData( + std::shared_ptr SensorsAsyncResp, + const std::shared_ptr> sensorNames, + const boost::container::flat_set& connections, + std::shared_ptr> + objectMgrPaths, + std::shared_ptr> inventoryItems) +{ + BMCWEB_LOG_DEBUG << "getSensorData enter"; + // Get managed objects from all services exposing sensors + for (const std::string& connection : connections) + { + // Response handler to process managed objects + auto getManagedObjectsCb = [SensorsAsyncResp, sensorNames, + inventoryItems]( + const boost::system::error_code ec, + ManagedObjectsVectorType& resp) { + BMCWEB_LOG_DEBUG << "getManagedObjectsCb enter"; + if (ec) + { + BMCWEB_LOG_ERROR << "getManagedObjectsCb DBUS error: " << ec; + messages::internalError(SensorsAsyncResp->res); + return; + } + // Go through all objects and update response with sensor data + for (const auto& objDictEntry : resp) + { + const std::string& objPath = + static_cast(objDictEntry.first); + BMCWEB_LOG_DEBUG << "getManagedObjectsCb parsing object " + << objPath; + + std::vector split; + // Reserve space for + // /xyz/openbmc_project/sensors// + split.reserve(6); + boost::algorithm::split(split, objPath, boost::is_any_of("/")); + if (split.size() < 6) + { + BMCWEB_LOG_ERROR << "Got path that isn't long enough " + << objPath; + continue; + } + // These indexes aren't intuitive, as boost::split puts an empty + // string at the beginning + const std::string& sensorType = split[4]; + const std::string& sensorName = split[5]; + BMCWEB_LOG_DEBUG << "sensorName " << sensorName + << " sensorType " << sensorType; + if (sensorNames->find(objPath) == sensorNames->end()) + { + BMCWEB_LOG_ERROR << sensorName << " not in sensor list "; + continue; + } + + // Find inventory item (if any) associated with sensor + InventoryItem* inventoryItem = + findInventoryItemForSensor(inventoryItems, objPath); + + const std::string& sensorSchema = + SensorsAsyncResp->chassisSubNode; + + nlohmann::json* sensorJson = nullptr; + + if (sensorSchema == "Sensors") + { + SensorsAsyncResp->res.jsonValue["@odata.id"] = + "/redfish/v1/Chassis/" + SensorsAsyncResp->chassisId + + "/" + SensorsAsyncResp->chassisSubNode + "/" + + sensorName; + sensorJson = &(SensorsAsyncResp->res.jsonValue); + } + else + { + std::string fieldName; + if (sensorType == "temperature") + { + fieldName = "Temperatures"; + } + else if (sensorType == "fan" || sensorType == "fan_tach" || + sensorType == "fan_pwm") + { + fieldName = "Fans"; + } + else if (sensorType == "voltage") + { + fieldName = "Voltages"; + } + else if (sensorType == "power") + { + if (!sensorName.compare("total_power")) + { + fieldName = "PowerControl"; + } + else if ((inventoryItem != nullptr) && + (inventoryItem->isPowerSupply)) + { + fieldName = "PowerSupplies"; + } + else + { + // Other power sensors are in SensorCollection + continue; + } + } + else + { + BMCWEB_LOG_ERROR << "Unsure how to handle sensorType " + << sensorType; + continue; + } + + nlohmann::json& tempArray = + SensorsAsyncResp->res.jsonValue[fieldName]; + if (fieldName == "PowerControl") + { + if (tempArray.empty()) + { + // Put multiple "sensors" into a single + // PowerControl. Follows MemberId naming and + // naming in power.hpp. + tempArray.push_back( + {{"@odata.id", + "/redfish/v1/Chassis/" + + SensorsAsyncResp->chassisId + "/" + + SensorsAsyncResp->chassisSubNode + "#/" + + fieldName + "/0"}}); + } + sensorJson = &(tempArray.back()); + } + else if (fieldName == "PowerSupplies") + { + if (inventoryItem != nullptr) + { + sensorJson = + &(getPowerSupply(tempArray, *inventoryItem, + SensorsAsyncResp->chassisId)); + } + } + else + { + tempArray.push_back( + {{"@odata.id", + "/redfish/v1/Chassis/" + + SensorsAsyncResp->chassisId + "/" + + SensorsAsyncResp->chassisSubNode + "#/" + + fieldName + "/"}}); + sensorJson = &(tempArray.back()); + } + } + + if (sensorJson != nullptr) + { + objectInterfacesToJson(sensorName, sensorType, + SensorsAsyncResp->chassisSubNode, + objDictEntry.second, *sensorJson, + inventoryItem); + } + } + if (SensorsAsyncResp.use_count() == 1) + { + sortJSONResponse(SensorsAsyncResp); + if (SensorsAsyncResp->chassisSubNode == "Thermal") + { + populateFanRedundancy(SensorsAsyncResp); + } + } + BMCWEB_LOG_DEBUG << "getManagedObjectsCb exit"; + }; + + // Find DBus object path that implements ObjectManager for the current + // connection. If no mapping found, default to "/". + auto iter = objectMgrPaths->find(connection); + const std::string& objectMgrPath = + (iter != objectMgrPaths->end()) ? iter->second : "/"; + BMCWEB_LOG_DEBUG << "ObjectManager path for " << connection << " is " + << objectMgrPath; + + crow::connections::systemBus->async_method_call( + getManagedObjectsCb, connection, objectMgrPath, + "org.freedesktop.DBus.ObjectManager", "GetManagedObjects"); + }; + BMCWEB_LOG_DEBUG << "getSensorData exit"; +} + +void processSensorList( + std::shared_ptr SensorsAsyncResp, + std::shared_ptr> sensorNames) +{ + auto getConnectionCb = + [SensorsAsyncResp, sensorNames]( + const boost::container::flat_set& connections) { + BMCWEB_LOG_DEBUG << "getConnectionCb enter"; + auto getObjectManagerPathsCb = + [SensorsAsyncResp, sensorNames, connections]( + std::shared_ptr< + boost::container::flat_map> + objectMgrPaths) { + BMCWEB_LOG_DEBUG << "getObjectManagerPathsCb enter"; + auto getInventoryItemsCb = + [SensorsAsyncResp, sensorNames, connections, + objectMgrPaths]( + std::shared_ptr> + inventoryItems) { + BMCWEB_LOG_DEBUG << "getInventoryItemsCb enter"; + // Get sensor data and store results in JSON + getSensorData(SensorsAsyncResp, sensorNames, + connections, objectMgrPaths, + inventoryItems); + BMCWEB_LOG_DEBUG << "getInventoryItemsCb exit"; + }; + + // Get inventory items associated with sensors + getInventoryItems(SensorsAsyncResp, sensorNames, + objectMgrPaths, + std::move(getInventoryItemsCb)); + + BMCWEB_LOG_DEBUG << "getObjectManagerPathsCb exit"; + }; + + // Get mapping from connection names to the DBus object + // paths that implement the ObjectManager interface + getObjectManagerPaths(SensorsAsyncResp, + std::move(getObjectManagerPathsCb)); + BMCWEB_LOG_DEBUG << "getConnectionCb exit"; + }; + + // Get set of connections that provide sensor values + getConnections(SensorsAsyncResp, sensorNames, std::move(getConnectionCb)); +} + +/** + * @brief Entry point for retrieving sensors data related to requested + * chassis. + * @param SensorsAsyncResp Pointer to object holding response data + */ +void getChassisData(std::shared_ptr SensorsAsyncResp) +{ + BMCWEB_LOG_DEBUG << "getChassisData enter"; + auto getChassisCb = + [SensorsAsyncResp]( + std::shared_ptr> + sensorNames) { + BMCWEB_LOG_DEBUG << "getChassisCb enter"; + processSensorList(SensorsAsyncResp, sensorNames); + BMCWEB_LOG_DEBUG << "getChassisCb exit"; + }; + SensorsAsyncResp->res.jsonValue["Redundancy"] = nlohmann::json::array(); + + // Get set of sensors in chassis + getChassis(SensorsAsyncResp, std::move(getChassisCb)); + BMCWEB_LOG_DEBUG << "getChassisData exit"; +} + +/** + * @brief Find the requested sensorName in the list of all sensors supplied by + * the chassis node + * + * @param sensorName The sensor name supplied in the PATCH request + * @param sensorsList The list of sensors managed by the chassis node + * @param sensorsModified The list of sensors that were found as a result of + * repeated calls to this function + */ +bool findSensorNameUsingSensorPath( + std::string_view sensorName, + boost::container::flat_set& sensorsList, + boost::container::flat_set& sensorsModified) +{ + for (std::string_view chassisSensor : sensorsList) + { + std::size_t pos = chassisSensor.rfind("/"); + if (pos >= (chassisSensor.size() - 1)) + { + continue; + } + std::string_view thisSensorName = chassisSensor.substr(pos + 1); + if (thisSensorName == sensorName) + { + sensorsModified.emplace(chassisSensor); + return true; + } + } + return false; +} + +/** + * @brief Entry point for overriding sensor values of given sensor + * + * @param res response object + * @param allCollections Collections extract from sensors' request patch info + * @param typeList TypeList of sensors for the resource queried + * @param chassisSubNode Chassis Node for which the query has to happen + */ +void setSensorOverride( + std::shared_ptr sensorAsyncResp, + std::unordered_map>& + allCollections, + const std::string& chassisName, const std::vector typeList) +{ + BMCWEB_LOG_INFO << "setSensorOverride for subNode" + << sensorAsyncResp->chassisSubNode << "\n"; + + const char* propertyValueName; + std::unordered_map> overrideMap; + std::string memberId; + double value; + for (auto& collectionItems : allCollections) + { + if (collectionItems.first == "Temperatures") + { + propertyValueName = "ReadingCelsius"; + } + else if (collectionItems.first == "Fans") + { + propertyValueName = "Reading"; + } + else + { + propertyValueName = "ReadingVolts"; + } + for (auto& item : collectionItems.second) + { + if (!json_util::readJson(item, sensorAsyncResp->res, "MemberId", + memberId, propertyValueName, value)) + { + return; + } + overrideMap.emplace(memberId, + std::make_pair(value, collectionItems.first)); + } + } + + auto getChassisSensorListCb = [sensorAsyncResp, + overrideMap](const std::shared_ptr< + boost::container::flat_set< + std::string>> + sensorsList) { + // Match sensor names in the PATCH request to those managed by the + // chassis node + const std::shared_ptr> + sensorNames = + std::make_shared>(); + for (const auto& item : overrideMap) + { + const auto& sensor = item.first; + if (!findSensorNameUsingSensorPath(sensor, *sensorsList, + *sensorNames)) + { + BMCWEB_LOG_INFO << "Unable to find memberId " << item.first; + messages::resourceNotFound(sensorAsyncResp->res, + item.second.second, item.first); + return; + } + } + // Get the connection to which the memberId belongs + auto getObjectsWithConnectionCb = + [sensorAsyncResp, overrideMap]( + const boost::container::flat_set& connections, + const std::set>& + objectsWithConnection) { + if (objectsWithConnection.size() != overrideMap.size()) + { + BMCWEB_LOG_INFO + << "Unable to find all objects with proper connection " + << objectsWithConnection.size() << " requested " + << overrideMap.size() << "\n"; + messages::resourceNotFound( + sensorAsyncResp->res, + sensorAsyncResp->chassisSubNode == "Thermal" + ? "Temperatures" + : "Voltages", + "Count"); + return; + } + for (const auto& item : objectsWithConnection) + { + + auto lastPos = item.first.rfind('/'); + if (lastPos == std::string::npos) + { + messages::internalError(sensorAsyncResp->res); + return; + } + std::string sensorName = item.first.substr(lastPos + 1); + + const auto& iterator = overrideMap.find(sensorName); + if (iterator == overrideMap.end()) + { + BMCWEB_LOG_INFO << "Unable to find sensor object" + << item.first << "\n"; + messages::internalError(sensorAsyncResp->res); + return; + } + crow::connections::systemBus->async_method_call( + [sensorAsyncResp](const boost::system::error_code ec) { + if (ec) + { + BMCWEB_LOG_DEBUG + << "setOverrideValueStatus DBUS error: " + << ec; + messages::internalError(sensorAsyncResp->res); + return; + } + }, + item.second, item.first, + "org.freedesktop.DBus.Properties", "Set", + "xyz.openbmc_project.Sensor.Value", "Value", + sdbusplus::message::variant( + iterator->second.first)); + } + }; + // Get object with connection for the given sensor name + getObjectsWithConnection(sensorAsyncResp, sensorNames, + std::move(getObjectsWithConnectionCb)); + }; + // get full sensor list for the given chassisId and cross verify the sensor. + getChassis(sensorAsyncResp, std::move(getChassisSensorListCb)); +} + +class SensorCollection : public Node +{ + public: + SensorCollection(CrowApp& app) : + Node(app, "/redfish/v1/Chassis//Sensors", std::string()) + { + entityPrivileges = { + {boost::beast::http::verb::get, {{"Login"}}}, + {boost::beast::http::verb::head, {{"Login"}}}, + {boost::beast::http::verb::patch, {{"ConfigureManager"}}}, + {boost::beast::http::verb::put, {{"ConfigureManager"}}}, + {boost::beast::http::verb::delete_, {{"ConfigureManager"}}}, + {boost::beast::http::verb::post, {{"ConfigureManager"}}}}; + } + + private: + std::vector typeList = { + "/xyz/openbmc_project/sensors/power", + "/xyz/openbmc_project/sensors/current"}; + void doGet(crow::Response& res, const crow::Request& req, + const std::vector& params) override + { + BMCWEB_LOG_DEBUG << "SensorCollection doGet enter"; + if (params.size() != 1) + { + BMCWEB_LOG_DEBUG << "SensorCollection doGet param size < 1"; + messages::internalError(res); + res.end(); + return; + } + + const std::string& chassisId = params[0]; + std::shared_ptr asyncResp = + std::make_shared(res, chassisId, typeList, + "Sensors"); + + auto getChassisCb = + [asyncResp](std::shared_ptr> + sensorNames) { + BMCWEB_LOG_DEBUG << "getChassisCb enter"; + + nlohmann::json& entriesArray = + asyncResp->res.jsonValue["Members"]; + for (auto& sensor : *sensorNames) + { + BMCWEB_LOG_DEBUG << "Adding sensor: " << sensor; + + std::size_t lastPos = sensor.rfind("/"); + if (lastPos == std::string::npos || + lastPos + 1 >= sensor.size()) + { + BMCWEB_LOG_ERROR << "Invalid sensor path: " << sensor; + messages::internalError(asyncResp->res); + return; + } + std::string sensorName = sensor.substr(lastPos + 1); + entriesArray.push_back( + {{"@odata.id", + "/redfish/v1/Chassis/" + asyncResp->chassisId + "/" + + asyncResp->chassisSubNode + "/" + sensorName}}); + } + + asyncResp->res.jsonValue["Members@odata.count"] = + entriesArray.size(); + BMCWEB_LOG_DEBUG << "getChassisCb exit"; + }; + + // Get set of sensors in chassis + getChassis(asyncResp, std::move(getChassisCb)); + BMCWEB_LOG_DEBUG << "SensorCollection doGet exit"; + } +}; + +class Sensor : public Node +{ + public: + Sensor(CrowApp& app) : + Node(app, "/redfish/v1/Chassis//Sensors//", std::string(), + std::string()) + { + entityPrivileges = { + {boost::beast::http::verb::get, {{"Login"}}}, + {boost::beast::http::verb::head, {{"Login"}}}, + {boost::beast::http::verb::patch, {{"ConfigureManager"}}}, + {boost::beast::http::verb::put, {{"ConfigureManager"}}}, + {boost::beast::http::verb::delete_, {{"ConfigureManager"}}}, + {boost::beast::http::verb::post, {{"ConfigureManager"}}}}; + } + + private: + void doGet(crow::Response& res, const crow::Request& req, + const std::vector& params) override + { + BMCWEB_LOG_DEBUG << "Sensor doGet enter"; + if (params.size() != 2) + { + BMCWEB_LOG_DEBUG << "Sensor doGet param size < 2"; + messages::internalError(res); + res.end(); + return; + } + const std::string& chassisId = params[0]; + std::shared_ptr asyncResp = + std::make_shared( + res, chassisId, std::vector(), "Sensors"); + + const std::string& sensorName = params[1]; + const std::array interfaces = { + "xyz.openbmc_project.Sensor.Value"}; + + // Get a list of all of the sensors that implement Sensor.Value + // and get the path and service name associated with the sensor + crow::connections::systemBus->async_method_call( + [asyncResp, sensorName](const boost::system::error_code ec, + const GetSubTreeType& subtree) { + BMCWEB_LOG_DEBUG << "respHandler1 enter"; + if (ec) + { + messages::internalError(asyncResp->res); + BMCWEB_LOG_ERROR << "Sensor getSensorPaths resp_handler: " + << "Dbus error " << ec; + return; + } + + GetSubTreeType::const_iterator it = std::find_if( + subtree.begin(), subtree.end(), + [sensorName]( + const std::pair< + std::string, + std::vector>>>& + object) { + std::string_view sensor = object.first; + std::size_t lastPos = sensor.rfind("/"); + if (lastPos == std::string::npos || + lastPos + 1 >= sensor.size()) + { + BMCWEB_LOG_ERROR << "Invalid sensor path: " + << sensor; + return false; + } + std::string_view name = sensor.substr(lastPos + 1); + + return name == sensorName; + }); + + if (it == subtree.end()) + { + BMCWEB_LOG_ERROR << "Could not find path for sensor: " + << sensorName; + messages::resourceNotFound(asyncResp->res, "Sensor", + sensorName); + return; + } + std::string_view sensorPath = (*it).first; + BMCWEB_LOG_DEBUG << "Found sensor path for sensor '" + << sensorName << "': " << sensorPath; + + const std::shared_ptr> + sensorList = std::make_shared< + boost::container::flat_set>(); + + sensorList->emplace(sensorPath); + processSensorList(asyncResp, sensorList); + BMCWEB_LOG_DEBUG << "respHandler1 exit"; + }, + "xyz.openbmc_project.ObjectMapper", + "/xyz/openbmc_project/object_mapper", + "xyz.openbmc_project.ObjectMapper", "GetSubTree", + "/xyz/openbmc_project/sensors", 2, interfaces); + } }; } // namespace redfish diff --git a/Contrib-Inspur/bmcweb/redfish-core/lib/service_root.hpp b/Contrib-Inspur/bmcweb/redfish-core/lib/service_root.hpp index 8cbab6f6..3b9adbf3 100644 --- a/Contrib-Inspur/bmcweb/redfish-core/lib/service_root.hpp +++ b/Contrib-Inspur/bmcweb/redfish-core/lib/service_root.hpp @@ -17,7 +17,7 @@ #include "node.hpp" -#include +#include namespace redfish { @@ -27,6 +27,8 @@ class ServiceRoot : public Node public: ServiceRoot(CrowApp& app) : Node(app, "/redfish/v1/") { + uuid = app.template getMiddleware() + .systemUuid; entityPrivileges = { {boost::beast::http::verb::get, {}}, {boost::beast::http::verb::head, {}}, @@ -40,7 +42,7 @@ class ServiceRoot : public Node void doGet(crow::Response& res, const crow::Request& req, const std::vector& params) override { - res.jsonValue["@odata.type"] = "#ServiceRoot.v1_1_1.ServiceRoot"; + res.jsonValue["@odata.type"] = "#ServiceRoot.v1_5_0.ServiceRoot"; res.jsonValue["@odata.id"] = "/redfish/v1"; res.jsonValue["@odata.context"] = "/redfish/v1/$metadata#ServiceRoot.ServiceRoot"; @@ -63,31 +65,13 @@ class ServiceRoot : public Node res.jsonValue["UpdateService"] = { {"@odata.id", "/redfish/v1/UpdateService"}}; - - res.jsonValue["UUID"] = getUuid(); + res.jsonValue["UUID"] = uuid; + res.jsonValue["CertificateService"] = { + {"@odata.id", "/redfish/v1/CertificateService"}}; res.end(); } - const std::string getUuid() - { - std::string ret; - // This ID needs to match the one in ipmid - sd_id128_t appId = SD_ID128_MAKE(e0, e1, 73, 76, 64, 61, 47, da, a5, 0c, - d0, cc, 64, 12, 45, 78); - sd_id128_t machineId = SD_ID128_NULL; - - if (sd_id128_get_machine_app_specific(appId, &machineId) == 0) - { - std::array str; - ret = sd_id128_to_string(machineId, str.data()); - ret.insert(8, 1, '-'); - ret.insert(13, 1, '-'); - ret.insert(18, 1, '-'); - ret.insert(23, 1, '-'); - } - - return ret; - } + std::string uuid; }; } // namespace redfish diff --git a/Contrib-Inspur/bmcweb/redfish-core/lib/storage.hpp b/Contrib-Inspur/bmcweb/redfish-core/lib/storage.hpp new file mode 100644 index 00000000..f918d662 --- /dev/null +++ b/Contrib-Inspur/bmcweb/redfish-core/lib/storage.hpp @@ -0,0 +1,472 @@ +/* +// Copyright (c) 2019 Intel Corporation +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +*/ +#pragma once + +#include "health.hpp" +#include "openbmc_dbus_rest.hpp" + +#include + +namespace redfish +{ +class StorageCollection : public Node +{ + public: + StorageCollection(CrowApp &app) : + Node(app, "/redfish/v1/Systems/system/Storage/") + { + entityPrivileges = { + {boost::beast::http::verb::get, {{"Login"}}}, + {boost::beast::http::verb::head, {{"Login"}}}, + {boost::beast::http::verb::patch, {{"ConfigureComponents"}}}, + {boost::beast::http::verb::put, {{"ConfigureComponents"}}}, + {boost::beast::http::verb::delete_, {{"ConfigureComponents"}}}, + {boost::beast::http::verb::post, {{"ConfigureComponents"}}}}; + } + + private: + void doGet(crow::Response &res, const crow::Request &req, + const std::vector ¶ms) override + { + res.jsonValue["@odata.type"] = "#StorageCollection.StorageCollection"; + res.jsonValue["@odata.context"] = + "/redfish/v1/$metadata#StorageCollection.StorageCollection"; + res.jsonValue["@odata.id"] = "/redfish/v1/Systems/system/Storage"; + res.jsonValue["Name"] = "Storage Collection"; + res.jsonValue["Members"] = { + {{"@odata.id", "/redfish/v1/Systems/system/Storage/1"}}}; + res.jsonValue["Members@odata.count"] = 1; + res.end(); + } +}; + +class Storage : public Node +{ + public: + Storage(CrowApp &app) : Node(app, "/redfish/v1/Systems/system/Storage/1") + { + entityPrivileges = { + {boost::beast::http::verb::get, {{"Login"}}}, + {boost::beast::http::verb::head, {{"Login"}}}, + {boost::beast::http::verb::patch, {{"ConfigureComponents"}}}, + {boost::beast::http::verb::put, {{"ConfigureComponents"}}}, + {boost::beast::http::verb::delete_, {{"ConfigureComponents"}}}, + {boost::beast::http::verb::post, {{"ConfigureComponents"}}}}; + } + + private: + void doGet(crow::Response &res, const crow::Request &req, + const std::vector ¶ms) override + { + res.jsonValue["@odata.type"] = "#Storage.v1_7_1.Storage"; + res.jsonValue["@odata.context"] = + "/redfish/v1/$metadata#Storage.Storage"; + res.jsonValue["@odata.id"] = "/redfish/v1/Systems/system/Storage/1"; + res.jsonValue["Name"] = "Storage"; + res.jsonValue["Id"] = "1"; + res.jsonValue["Status"]["State"] = "Enabled"; + + auto asyncResp = std::make_shared(res); + auto health = std::make_shared(asyncResp); + health->populate(); + + crow::connections::systemBus->async_method_call( + [asyncResp, health](const boost::system::error_code ec, + const std::vector &storageList) { + nlohmann::json &storageArray = + asyncResp->res.jsonValue["Drives"]; + storageArray = nlohmann::json::array(); + auto &count = asyncResp->res.jsonValue["Drives@odata.count"]; + count = 0; + + if (ec) + { + BMCWEB_LOG_ERROR << "Drive mapper call error"; + messages::internalError(asyncResp->res); + return; + } + + health->inventory.insert(health->inventory.end(), + storageList.begin(), + storageList.end()); + + for (const std::string &objpath : storageList) + { + std::size_t lastPos = objpath.rfind("/"); + if (lastPos == std::string::npos || + (objpath.size() <= lastPos + 1)) + { + BMCWEB_LOG_ERROR << "Failed to find '/' in " << objpath; + continue; + } + + storageArray.push_back( + {{"@odata.id", + "/redfish/v1/Systems/system/Storage/1/Drives/" + + objpath.substr(lastPos + 1)}}); + } + + count = storageArray.size(); + }, + "xyz.openbmc_project.ObjectMapper", + "/xyz/openbmc_project/object_mapper", + "xyz.openbmc_project.ObjectMapper", "GetSubTreePaths", + "/xyz/openbmc_project/inventory", int32_t(0), + std::array{ + "xyz.openbmc_project.Inventory.Item.Drive"}); + + crow::connections::systemBus->async_method_call( + [asyncResp, + health](const boost::system::error_code ec, + const crow::openbmc_mapper::GetSubTreeType &subtree) { + if (ec || !subtree.size()) + { + // doesn't have to be there + return; + } + + nlohmann::json &root = + asyncResp->res.jsonValue["StorageControllers"]; + root = nlohmann::json::array(); + for (const auto &[path, interfaceDict] : subtree) + { + std::size_t lastPos = path.rfind("/"); + if (lastPos == std::string::npos || + (path.size() <= lastPos + 1)) + { + BMCWEB_LOG_ERROR << "Failed to find '/' in " << path; + return; + } + + if (interfaceDict.size() != 1) + { + BMCWEB_LOG_ERROR << "Connection size " + << interfaceDict.size() + << ", greater than 1"; + messages::internalError(asyncResp->res); + return; + } + + const std::string &connectionName = + interfaceDict.front().first; + + size_t index = root.size(); + nlohmann::json &storageController = + root.emplace_back(nlohmann::json::object()); + + std::string id = path.substr(lastPos + 1); + + storageController["@odata.type"] = + "#Storage.v1_7_0.StorageController"; + storageController["@odata.context"] = + "/redfish/v1/$metadata#Storage.StorageController"; + storageController["@odata.id"] = + "/redfish/v1/Systems/system/Storage/1" + "#/StorageControllers/" + + std::to_string(index); + storageController["Name"] = id; + storageController["MemberId"] = id; + storageController["Status"]["State"] = "Enabled"; + + crow::connections::systemBus->async_method_call( + [asyncResp, index](const boost::system::error_code ec, + const std::variant present) { + // this interface isn't necessary, only check it if + // we get a good return + if (ec) + { + return; + } + const bool *enabled = std::get_if(&present); + if (enabled == nullptr) + { + BMCWEB_LOG_DEBUG << "Illegal property present"; + messages::internalError(asyncResp->res); + return; + } + if (!(*enabled)) + { + asyncResp->res + .jsonValue["StorageControllers"][index] + ["Status"]["State"] = "Disabled"; + } + }, + connectionName, path, "org.freedesktop.DBus.Properties", + "Get", "xyz.openbmc_project.Inventory.Item", "Present"); + + crow::connections::systemBus->async_method_call( + [asyncResp, + index](const boost::system::error_code ec, + const std::vector>> + &propertiesList) { + if (ec) + { + // this interface isn't necessary + return; + } + for (const std::pair< + std::string, + std::variant> + &property : propertiesList) + { + // Store DBus properties that are also + // Redfish properties with same name and a + // string value + const std::string &propertyName = + property.first; + nlohmann::json &object = + asyncResp->res + .jsonValue["StorageControllers"][index]; + if ((propertyName == "PartNumber") || + (propertyName == "SerialNumber") || + (propertyName == "Manufacturer") || + (propertyName == "Model")) + { + const std::string *value = + std::get_if( + &property.second); + if (value == nullptr) + { + // illegal property + messages::internalError(asyncResp->res); + continue; + } + object[propertyName] = *value; + } + } + }, + connectionName, path, "org.freedesktop.DBus.Properties", + "GetAll", + "xyz.openbmc_project.Inventory.Decorator.Asset"); + } + + // this is done after we know the json array will no longer be + // resized, as json::array uses vector underneath and we need + // references to its members that won't change + size_t count = 0; + for (const auto &[path, interfaceDict] : subtree) + { + auto subHealth = std::make_shared( + asyncResp, root[count]["Status"]); + subHealth->inventory.emplace_back(path); + health->inventory.emplace_back(path); + health->children.emplace_back(subHealth); + count++; + } + }, + "xyz.openbmc_project.ObjectMapper", + "/xyz/openbmc_project/object_mapper", + "xyz.openbmc_project.ObjectMapper", "GetSubTree", + "/xyz/openbmc_project/inventory", int32_t(0), + std::array{ + "xyz.openbmc_project.Inventory.Item.StorageController"}); + } +}; + +class Drive : public Node +{ + public: + Drive(CrowApp &app) : + Node(app, "/redfish/v1/Systems/system/Storage/1/Drives//", + std::string()) + { + entityPrivileges = { + {boost::beast::http::verb::get, {{"Login"}}}, + {boost::beast::http::verb::head, {{"Login"}}}, + {boost::beast::http::verb::patch, {{"ConfigureComponents"}}}, + {boost::beast::http::verb::put, {{"ConfigureComponents"}}}, + {boost::beast::http::verb::delete_, {{"ConfigureComponents"}}}, + {boost::beast::http::verb::post, {{"ConfigureComponents"}}}}; + } + + private: + void doGet(crow::Response &res, const crow::Request &req, + const std::vector ¶ms) override + { + auto asyncResp = std::make_shared(res); + if (params.size() != 1) + { + messages::internalError(asyncResp->res); + return; + } + const std::string &driveId = params[0]; + + crow::connections::systemBus->async_method_call( + [asyncResp, + driveId](const boost::system::error_code ec, + const crow::openbmc_mapper::GetSubTreeType &subtree) { + if (ec) + { + BMCWEB_LOG_ERROR << "Drive mapper call error"; + messages::internalError(asyncResp->res); + return; + } + + auto object = std::find_if( + subtree.begin(), subtree.end(), [&driveId](auto &object) { + const std::string &path = object.first; + return boost::ends_with(path, "/" + driveId); + }); + + if (object == subtree.end()) + { + messages::resourceNotFound(asyncResp->res, "Drive", + driveId); + return; + } + + const std::string &path = object->first; + const std::vector< + std::pair>> + &connectionNames = object->second; + + asyncResp->res.jsonValue["@odata.type"] = "#Drive.v1_7_0.Drive"; + asyncResp->res.jsonValue["@odata.context"] = + "/redfish/v1/$metadata#Drive.Drive"; + asyncResp->res.jsonValue["@odata.id"] = + "/redfish/v1/Systems/system/Storage/1/Drives/" + driveId; + asyncResp->res.jsonValue["Name"] = driveId; + asyncResp->res.jsonValue["Id"] = driveId; + + if (connectionNames.size() != 1) + { + BMCWEB_LOG_ERROR << "Connection size " + << connectionNames.size() + << ", greater than 1"; + messages::internalError(asyncResp->res); + return; + } + + getMainChassisId( + asyncResp, [](const std::string &chassisId, + std::shared_ptr aRsp) { + aRsp->res.jsonValue["Links"]["Chassis"] = { + {"@odata.id", "/redfish/v1/Chassis/" + chassisId}}; + }); + + const std::string &connectionName = connectionNames[0].first; + crow::connections::systemBus->async_method_call( + [asyncResp](const boost::system::error_code ec, + const std::vector>> + &propertiesList) { + if (ec) + { + // this interface isn't necessary + return; + } + for (const std::pair> &property : + propertiesList) + { + // Store DBus properties that are also + // Redfish properties with same name and a + // string value + const std::string &propertyName = property.first; + if ((propertyName == "PartNumber") || + (propertyName == "SerialNumber") || + (propertyName == "Manufacturer") || + (propertyName == "Model")) + { + const std::string *value = + std::get_if(&property.second); + if (value == nullptr) + { + // illegal property + messages::internalError(asyncResp->res); + continue; + } + asyncResp->res.jsonValue[propertyName] = *value; + } + } + }, + connectionName, path, "org.freedesktop.DBus.Properties", + "GetAll", "xyz.openbmc_project.Inventory.Decorator.Asset"); + + // default it to Enabled + asyncResp->res.jsonValue["Status"]["State"] = "Enabled"; + + auto health = std::make_shared(asyncResp); + health->inventory.emplace_back(path); + health->populate(); + + crow::connections::systemBus->async_method_call( + [asyncResp, path](const boost::system::error_code ec, + const std::variant present) { + // this interface isn't necessary, only check it if we + // get a good return + if (ec) + { + return; + } + const bool *enabled = std::get_if(&present); + if (enabled == nullptr) + { + BMCWEB_LOG_DEBUG << "Illegal property present"; + messages::internalError(asyncResp->res); + return; + } + if (!(*enabled)) + { + asyncResp->res.jsonValue["Status"]["State"] = + "Disabled"; + } + }, + connectionName, path, "org.freedesktop.DBus.Properties", + "Get", "xyz.openbmc_project.Inventory.Item", "Present"); + + crow::connections::systemBus->async_method_call( + [asyncResp](const boost::system::error_code ec, + const std::variant rebuilding) { + // this interface isn't necessary, only check it if we + // get a good return + if (ec) + { + return; + } + const bool *updating = std::get_if(&rebuilding); + if (updating == nullptr) + { + BMCWEB_LOG_DEBUG << "Illegal property present"; + messages::internalError(asyncResp->res); + return; + } + + // updating and disabled in the backend shouldn't be + // able to be set at the same time, so we don't need to + // check for the race condition of these two calls + if ((*updating)) + { + asyncResp->res.jsonValue["Status"]["State"] = + "Updating"; + } + }, + connectionName, path, "org.freedesktop.DBus.Properties", + "Get", "xyz.openbmc_project.State.Drive", "Rebuilding"); + }, + "xyz.openbmc_project.ObjectMapper", + "/xyz/openbmc_project/object_mapper", + "xyz.openbmc_project.ObjectMapper", "GetSubTree", + "/xyz/openbmc_project/inventory", int32_t(0), + std::array{ + "xyz.openbmc_project.Inventory.Item.Drive"}); + } +}; +} // namespace redfish diff --git a/Contrib-Inspur/bmcweb/redfish-core/lib/systems.hpp b/Contrib-Inspur/bmcweb/redfish-core/lib/systems.hpp index b6c0512e..9280d8f3 100644 --- a/Contrib-Inspur/bmcweb/redfish-core/lib/systems.hpp +++ b/Contrib-Inspur/bmcweb/redfish-core/lib/systems.hpp @@ -15,8 +15,14 @@ */ #pragma once +#include "health.hpp" +#include "led.hpp" +#include "pcie.hpp" +#include "redfish_util.hpp" + #include #include +#include #include #include @@ -24,6 +30,111 @@ namespace redfish { /** + * @brief Updates the Functional State of DIMMs + * + * @param[in] aResp Shared pointer for completing asynchronous calls + * @param[in] dimmState Dimm's Functional state, true/false + * + * @return None. + */ +void updateDimmProperties(std::shared_ptr aResp, + const std::variant &dimmState) +{ + const bool *isDimmFunctional = std::get_if(&dimmState); + if (isDimmFunctional == nullptr) + { + messages::internalError(aResp->res); + return; + } + BMCWEB_LOG_DEBUG << "Dimm Functional: " << *isDimmFunctional; + + // Set it as Enabled if atleast one DIMM is functional + // Update STATE only if previous State was DISABLED and current Dimm is + // ENABLED. + nlohmann::json &prevMemSummary = + aResp->res.jsonValue["MemorySummary"]["Status"]["State"]; + if (prevMemSummary == "Disabled") + { + if (*isDimmFunctional == true) + { + aResp->res.jsonValue["MemorySummary"]["Status"]["State"] = + "Enabled"; + } + } +} + +/* + * @brief Update "ProcessorSummary" "Count" based on Cpu PresenceState + * + * @param[in] aResp Shared pointer for completing asynchronous calls + * @param[in] cpuPresenceState CPU present or not + * + * @return None. + */ +void modifyCpuPresenceState(std::shared_ptr aResp, + const std::variant &cpuPresenceState) +{ + const bool *isCpuPresent = std::get_if(&cpuPresenceState); + + if (isCpuPresent == nullptr) + { + messages::internalError(aResp->res); + return; + } + BMCWEB_LOG_DEBUG << "Cpu Present: " << *isCpuPresent; + + if (*isCpuPresent == true) + { + nlohmann::json &procCount = + aResp->res.jsonValue["ProcessorSummary"]["Count"]; + auto procCountPtr = + procCount.get_ptr(); + if (procCountPtr != nullptr) + { + // shouldn't be possible to be nullptr + *procCountPtr += 1; + } + } +} + +/* + * @brief Update "ProcessorSummary" "Status" "State" based on + * CPU Functional State + * + * @param[in] aResp Shared pointer for completing asynchronous calls + * @param[in] cpuFunctionalState is CPU functional true/false + * + * @return None. + */ +void modifyCpuFunctionalState(std::shared_ptr aResp, + const std::variant &cpuFunctionalState) +{ + const bool *isCpuFunctional = std::get_if(&cpuFunctionalState); + + if (isCpuFunctional == nullptr) + { + messages::internalError(aResp->res); + return; + } + BMCWEB_LOG_DEBUG << "Cpu Functional: " << *isCpuFunctional; + + nlohmann::json &prevProcState = + aResp->res.jsonValue["ProcessorSummary"]["Status"]["State"]; + + // Set it as Enabled if atleast one CPU is functional + // Update STATE only if previous State was Non_Functional and current CPU is + // Functional. + if (prevProcState == "Disabled") + { + if (*isCpuFunctional == true) + { + aResp->res.jsonValue["ProcessorSummary"]["Status"]["State"] = + "Enabled"; + } + } +} + +/* * @brief Retrieves computer system properties over dbus * * @param[in] aResp Shared pointer for completing asynchronous calls @@ -31,11 +142,13 @@ namespace redfish * * @return None. */ -void getComputerSystem(std::shared_ptr aResp) +void getComputerSystem(std::shared_ptr aResp, + std::shared_ptr systemHealth) { BMCWEB_LOG_DEBUG << "Get available system components."; + crow::connections::systemBus->async_method_call( - [aResp{std::move(aResp)}]( + [aResp, systemHealth]( const boost::system::error_code ec, const std::vector aResp) continue; } + auto memoryHealth = std::make_shared( + aResp, aResp->res.jsonValue["MemorySummary"]["Status"]); + + auto cpuHealth = std::make_shared( + aResp, aResp->res.jsonValue["ProcessorSummary"]["Status"]); + + systemHealth->children.emplace_back(memoryHealth); + systemHealth->children.emplace_back(cpuHealth); + // This is not system, so check if it's cpu, dimm, UUID or // BiosVer for (const auto &connection : connectionNames) @@ -74,11 +196,14 @@ void getComputerSystem(std::shared_ptr aResp) { BMCWEB_LOG_DEBUG << "Found Dimm, now get its properties."; + crow::connections::systemBus->async_method_call( - [aResp](const boost::system::error_code ec, - const std::vector< - std::pair> - &properties) { + [aResp, service{connection.first}, + path(std::move(path))]( + const boost::system::error_code ec, + const std::vector< + std::pair> + &properties) { if (ec) { BMCWEB_LOG_ERROR @@ -88,46 +213,105 @@ void getComputerSystem(std::shared_ptr aResp) } BMCWEB_LOG_DEBUG << "Got " << properties.size() - << "Dimm properties."; - for (const std::pair - &property : properties) + << " Dimm properties."; + + if (properties.size() > 0) { - if (property.first == "MemorySizeInKb") + for (const std::pair + &property : properties) { - const uint64_t *value = + if (property.first != + "MemorySizeInKB") + { + continue; + } + const uint32_t *value = sdbusplus::message::variant_ns:: - get_if( + get_if( &property.second); - if (value != nullptr) + if (value == nullptr) { - aResp->res.jsonValue - ["TotalSystemMemoryGi" - "B"] += - *value / (1024 * 1024); + BMCWEB_LOG_DEBUG + << "Find incorrect type of " + "MemorySize"; + continue; + } + nlohmann::json &totalMemory = aResp->res - .jsonValue["MemorySummary"] - ["Status"] - ["State"] = - "Enabled"; + .jsonValue["MemorySummar" + "y"] + ["TotalSystemMe" + "moryGiB"]; + uint64_t *preValue = + totalMemory + .get_ptr(); + if (preValue == nullptr) + { + continue; } + aResp->res + .jsonValue["MemorySummary"] + ["TotalSystemMemoryGi" + "B"] = + *value / (1024 * 1024) + + *preValue; + aResp->res + .jsonValue["MemorySummary"] + ["Status"]["State"] = + "Enabled"; } } + else + { + auto getDimmProperties = + [aResp]( + const boost::system::error_code + ec, + const std::variant + &dimmState) { + if (ec) + { + BMCWEB_LOG_ERROR + << "DBUS response " + "error " + << ec; + return; + } + updateDimmProperties(aResp, + dimmState); + }; + crow::connections::systemBus + ->async_method_call( + std::move(getDimmProperties), + service, path, + "org.freedesktop.DBus." + "Properties", + "Get", + "xyz.openbmc_project.State." + "Decorator.OperationalStatus", + "Functional"); + } }, connection.first, path, "org.freedesktop.DBus.Properties", "GetAll", "xyz.openbmc_project.Inventory.Item.Dimm"); + + memoryHealth->inventory.emplace_back(path); } else if (interfaceName == "xyz.openbmc_project.Inventory.Item.Cpu") { BMCWEB_LOG_DEBUG << "Found Cpu, now get its properties."; + crow::connections::systemBus->async_method_call( - [aResp](const boost::system::error_code ec, - const std::vector< - std::pair> - &properties) { + [aResp, service{connection.first}, + path(std::move(path))]( + const boost::system::error_code ec, + const std::vector< + std::pair> + &properties) { if (ec) { BMCWEB_LOG_ERROR @@ -137,36 +321,124 @@ void getComputerSystem(std::shared_ptr aResp) } BMCWEB_LOG_DEBUG << "Got " << properties.size() - << "Cpu properties."; - for (const auto &property : properties) + << " Cpu properties."; + + if (properties.size() > 0) { - if (property.first == "ProcessorFamily") + for (const auto &property : properties) { - const std::string *value = - sdbusplus::message::variant_ns:: - get_if( - &property.second); - if (value != nullptr) + if (property.first == + "ProcessorFamily") { - nlohmann::json &procSummary = - aResp->res.jsonValue - ["ProcessorSumm" - "ary"]; - nlohmann::json &procCount = - procSummary["Count"]; - - procCount = - procCount.get() + 1; - procSummary["Status"]["State"] = - "Enabled"; - procSummary["Model"] = *value; + const std::string *value = + sdbusplus::message:: + variant_ns::get_if< + std::string>( + &property.second); + if (value != nullptr) + { + nlohmann::json + &procSummary = + aResp->res.jsonValue + ["ProcessorSumm" + "ary"]; + nlohmann::json &procCount = + procSummary["Count"]; + + auto procCountPtr = + procCount.get_ptr< + nlohmann::json:: + number_integer_t + *>(); + if (procCountPtr != nullptr) + { + // shouldn't be possible + // to be nullptr + *procCountPtr += 1; + } + procSummary["Status"] + ["State"] = + "Enabled"; + procSummary["Model"] = + *value; + } } } } + else + { + auto getCpuPresenceState = + [aResp]( + const boost::system::error_code + ec, + const std::variant + &cpuPresenceCheck) { + if (ec) + { + BMCWEB_LOG_ERROR + << "DBUS response " + "error " + << ec; + return; + } + modifyCpuPresenceState( + aResp, cpuPresenceCheck); + }; + + auto getCpuFunctionalState = + [aResp]( + const boost::system::error_code + ec, + const std::variant + &cpuFunctionalCheck) { + if (ec) + { + BMCWEB_LOG_ERROR + << "DBUS response " + "error " + << ec; + return; + } + modifyCpuFunctionalState( + aResp, cpuFunctionalCheck); + }; + // Get the Presence of CPU + crow::connections::systemBus + ->async_method_call( + std::move(getCpuPresenceState), + service, path, + "org.freedesktop.DBus." + "Properties", + "Get", + "xyz.openbmc_project.Inventory." + "Item", + "Present"); + + // Get the Functional State + crow::connections::systemBus + ->async_method_call( + std::move( + getCpuFunctionalState), + service, path, + "org.freedesktop.DBus." + "Properties", + "Get", + "xyz.openbmc_project.State." + "Decorator." + "OperationalStatus", + "Functional"); + + // Get the MODEL from + // xyz.openbmc_project.Inventory.Decorator.Asset + // support it later as Model is Empty + // currently. + } }, connection.first, path, "org.freedesktop.DBus.Properties", "GetAll", "xyz.openbmc_project.Inventory.Item.Cpu"); + + cpuHealth->inventory.emplace_back(path); } else if (interfaceName == "xyz.openbmc_project.Common.UUID") @@ -187,24 +459,11 @@ void getComputerSystem(std::shared_ptr aResp) } BMCWEB_LOG_DEBUG << "Got " << properties.size() - << "UUID properties."; + << " UUID properties."; for (const std::pair &property : properties) { - if (property.first == "BIOSVer") - { - const std::string *value = - sdbusplus::message::variant_ns:: - get_if( - &property.second); - if (value != nullptr) - { - aResp->res - .jsonValue["BiosVersion"] = - *value; - } - } if (property.first == "UUID") { const std::string *value = @@ -244,37 +503,72 @@ void getComputerSystem(std::shared_ptr aResp) &propertiesList) { if (ec) { - BMCWEB_LOG_ERROR - << "DBUS response error: " << ec; - messages::internalError(aResp->res); + // doesn't have to include this + // interface return; } - BMCWEB_LOG_DEBUG << "Got " - << propertiesList.size() - << "properties for system"; + BMCWEB_LOG_DEBUG + << "Got " << propertiesList.size() + << " properties for system"; for (const std::pair &property : propertiesList) { - const std::string *value = - sdbusplus::message::variant_ns:: - get_if( - &property.second); - if (value != nullptr) + const std::string &propertyName = + property.first; + if ((propertyName == "PartNumber") || + (propertyName == "SerialNumber") || + (propertyName == "Manufacturer") || + (propertyName == "Model")) { - aResp->res - .jsonValue[property.first] = - *value; + const std::string *value = + std::get_if( + &property.second); + if (value != nullptr) + { + aResp->res + .jsonValue[propertyName] = + *value; + } } } aResp->res.jsonValue["Name"] = "system"; aResp->res.jsonValue["Id"] = aResp->res.jsonValue["SerialNumber"]; + // Grab the bios version + fw_util::getActiveFwVersion( + aResp, fw_util::biosPurpose, + "BiosVersion"); }, connection.first, path, "org.freedesktop.DBus.Properties", "GetAll", "xyz.openbmc_project.Inventory.Decorator." "Asset"); + + crow::connections::systemBus->async_method_call( + [aResp]( + const boost::system::error_code ec, + const std::variant &property) { + if (ec) + { + // doesn't have to include this + // interface + return; + } + + const std::string *value = + std::get_if(&property); + if (value != nullptr) + { + aResp->res.jsonValue["AssetTag"] = + *value; + } + }, + connection.first, path, + "org.freedesktop.DBus.Properties", "Get", + "xyz.openbmc_project.Inventory.Decorator." + "AssetTag", + "AssetTag"); } } } @@ -293,120 +587,6 @@ void getComputerSystem(std::shared_ptr aResp) }); } -/** - * @brief Retrieves identify led group properties over dbus - * - * @param[in] aResp Shared pointer for completing asynchronous calls. - * @param[in] callback Callback for process retrieved data. - * - * @return None. - */ -template -void getLedGroupIdentify(std::shared_ptr aResp, - CallbackFunc &&callback) -{ - BMCWEB_LOG_DEBUG << "Get led groups"; - crow::connections::systemBus->async_method_call( - [aResp{std::move(aResp)}, - callback{std::move(callback)}](const boost::system::error_code &ec, - const ManagedObjectsType &resp) { - if (ec) - { - BMCWEB_LOG_DEBUG << "DBUS response error " << ec; - messages::internalError(aResp->res); - return; - } - BMCWEB_LOG_DEBUG << "Got " << resp.size() << "led group objects."; - for (const auto &objPath : resp) - { - const std::string &path = objPath.first; - if (path.rfind("enclosure_identify") != std::string::npos) - { - for (const auto &interface : objPath.second) - { - if (interface.first == "xyz.openbmc_project.Led.Group") - { - for (const auto &property : interface.second) - { - if (property.first == "Asserted") - { - const bool *asserted = - std::get_if(&property.second); - if (nullptr != asserted) - { - callback(*asserted, aResp); - } - else - { - callback(false, aResp); - } - } - } - } - } - } - } - }, - "xyz.openbmc_project.LED.GroupManager", - "/xyz/openbmc_project/led/groups", "org.freedesktop.DBus.ObjectManager", - "GetManagedObjects"); -} - -template -void getLedIdentify(std::shared_ptr aResp, CallbackFunc &&callback) -{ - BMCWEB_LOG_DEBUG << "Get identify led properties"; - crow::connections::systemBus->async_method_call( - [aResp, - callback{std::move(callback)}](const boost::system::error_code ec, - const PropertiesType &properties) { - if (ec) - { - BMCWEB_LOG_DEBUG << "DBUS response error " << ec; - messages::internalError(aResp->res); - return; - } - BMCWEB_LOG_DEBUG << "Got " << properties.size() - << "led properties."; - std::string output; - for (const auto &property : properties) - { - if (property.first == "State") - { - const std::string *s = - std::get_if(&property.second); - if (nullptr != s) - { - BMCWEB_LOG_DEBUG << "Identify Led State: " << *s; - const auto pos = s->rfind('.'); - if (pos != std::string::npos) - { - auto led = s->substr(pos + 1); - for (const std::pair - &p : - std::array< - std::pair, 3>{ - {{"On", "Lit"}, - {"Blink", "Blinking"}, - {"Off", "Off"}}}) - { - if (led == p.first) - { - output = p.second; - } - } - } - } - } - } - callback(output, aResp); - }, - "xyz.openbmc_project.LED.Controller.identify", - "/xyz/openbmc_project/led/physical/identify", - "org.freedesktop.DBus.Properties", "GetAll", - "xyz.openbmc_project.Led.Physical"); -} - /** * @brief Retrieves host state properties over dbus * @@ -418,8 +598,8 @@ void getHostState(std::shared_ptr aResp) { BMCWEB_LOG_DEBUG << "Get host information."; crow::connections::systemBus->async_method_call( - [aResp{std::move(aResp)}](const boost::system::error_code ec, - const std::variant &hostState) { + [aResp](const boost::system::error_code ec, + const std::variant &hostState) { if (ec) { BMCWEB_LOG_DEBUG << "DBUS response error " << ec; @@ -450,109 +630,825 @@ void getHostState(std::shared_ptr aResp) } /** - * SystemsCollection derived class for delivering ComputerSystems Collection - * Schema + * @brief Traslates boot source DBUS property value to redfish. + * + * @param[in] dbusSource The boot source in DBUS speak. + * + * @return Returns as a string, the boot source in Redfish terms. If translation + * cannot be done, returns an empty string. */ -class SystemsCollection : public Node +static std::string dbusToRfBootSource(const std::string &dbusSource) { - public: - SystemsCollection(CrowApp &app) : Node(app, "/redfish/v1/Systems/") + if (dbusSource == "xyz.openbmc_project.Control.Boot.Source.Sources.Default") { - entityPrivileges = { - {boost::beast::http::verb::get, {{"Login"}}}, - {boost::beast::http::verb::head, {{"Login"}}}, - {boost::beast::http::verb::patch, {{"ConfigureComponents"}}}, - {boost::beast::http::verb::put, {{"ConfigureComponents"}}}, - {boost::beast::http::verb::delete_, {{"ConfigureComponents"}}}, - {boost::beast::http::verb::post, {{"ConfigureComponents"}}}}; + return "None"; } - - private: - void doGet(crow::Response &res, const crow::Request &req, - const std::vector ¶ms) override + else if (dbusSource == + "xyz.openbmc_project.Control.Boot.Source.Sources.Disk") { - res.jsonValue["@odata.type"] = - "#ComputerSystemCollection.ComputerSystemCollection"; - res.jsonValue["@odata.id"] = "/redfish/v1/Systems"; - res.jsonValue["@odata.context"] = - "/redfish/v1/" - "$metadata#ComputerSystemCollection.ComputerSystemCollection"; - res.jsonValue["Name"] = "Computer System Collection"; - res.jsonValue["Members"] = { - {{"@odata.id", "/redfish/v1/Systems/system"}}}; - res.jsonValue["Members@odata.count"] = 1; - res.end(); + return "Hdd"; } -}; + else if (dbusSource == + "xyz.openbmc_project.Control.Boot.Source.Sources.ExternalMedia") + { + return "Cd"; + } + else if (dbusSource == + "xyz.openbmc_project.Control.Boot.Source.Sources.Network") + { + return "Pxe"; + } + else if (dbusSource == + "xyz.openbmc_project.Control.Boot.Source.Sources.RemovableMedia") + { + return "Usb"; + } + else + { + return ""; + } +} /** - * SystemActionsReset class supports handle POST method for Reset action. - * The class retrieves and sends data directly to D-Bus. + * @brief Traslates boot mode DBUS property value to redfish. + * + * @param[in] dbusMode The boot mode in DBUS speak. + * + * @return Returns as a string, the boot mode in Redfish terms. If translation + * cannot be done, returns an empty string. */ -class SystemActionsReset : public Node +static std::string dbusToRfBootMode(const std::string &dbusMode) { - public: - SystemActionsReset(CrowApp &app) : - Node(app, "/redfish/v1/Systems/system/Actions/ComputerSystem.Reset/") + if (dbusMode == "xyz.openbmc_project.Control.Boot.Mode.Modes.Regular") { - entityPrivileges = { - {boost::beast::http::verb::post, {{"ConfigureComponents"}}}}; + return "None"; } - - private: - /** - * Function handles POST method request. - * Analyzes POST body message before sends Reset request data to D-Bus. - */ - void doPost(crow::Response &res, const crow::Request &req, - const std::vector ¶ms) override + else if (dbusMode == "xyz.openbmc_project.Control.Boot.Mode.Modes.Safe") { - auto asyncResp = std::make_shared(res); + return "Diags"; + } + else if (dbusMode == "xyz.openbmc_project.Control.Boot.Mode.Modes.Setup") + { + return "BiosSetup"; + } + else + { + return ""; + } +} - std::string resetType; - if (!json_util::readJson(req, res, "ResetType", resetType)) +/** + * @brief Traslates boot source from Redfish to the DBus boot paths. + * + * @param[in] rfSource The boot source in Redfish. + * @param[out] bootSource The DBus source + * @param[out] bootMode the DBus boot mode + * + * @return Integer error code. + */ +static int assignBootParameters(std::shared_ptr aResp, + const std::string &rfSource, + std::string &bootSource, std::string &bootMode) +{ + // The caller has initialized the bootSource and bootMode to: + // bootMode = "xyz.openbmc_project.Control.Boot.Mode.Modes.Regular"; + // bootSource = "xyz.openbmc_project.Control.Boot.Source.Sources.Default"; + // Only modify the bootSource/bootMode variable needed to achieve the + // desired boot action. + + if (rfSource == "None") + { + return 0; + } + else if (rfSource == "Pxe") + { + bootSource = "xyz.openbmc_project.Control.Boot.Source.Sources.Network"; + } + else if (rfSource == "Hdd") + { + bootSource = "xyz.openbmc_project.Control.Boot.Source.Sources.Disk"; + } + else if (rfSource == "Diags") + { + bootMode = "xyz.openbmc_project.Control.Boot.Mode.Modes.Safe"; + } + else if (rfSource == "Cd") + { + bootSource = + "xyz.openbmc_project.Control.Boot.Source.Sources.ExternalMedia"; + } + else if (rfSource == "BiosSetup") + { + bootMode = "xyz.openbmc_project.Control.Boot.Mode.Modes.Setup"; + } + else if (rfSource == "Usb") + { + bootSource = + "xyz.openbmc_project.Control.Boot.Source.Sources.RemovableMedia"; + } + else + { + BMCWEB_LOG_DEBUG << "Invalid property value for " + "BootSourceOverrideTarget: " + << bootSource; + messages::propertyValueNotInList(aResp->res, rfSource, + "BootSourceTargetOverride"); + return -1; + } + return 0; +} + +/** + * @brief Retrieves boot mode over DBUS and fills out the response + * + * @param[in] aResp Shared pointer for generating response message. + * @param[in] bootDbusObj The dbus object to query for boot properties. + * + * @return None. + */ +static void getBootMode(std::shared_ptr aResp, + std::string bootDbusObj) +{ + crow::connections::systemBus->async_method_call( + [aResp](const boost::system::error_code ec, + const std::variant &bootMode) { + if (ec) + { + BMCWEB_LOG_DEBUG << "DBUS response error " << ec; + messages::internalError(aResp->res); + return; + } + + const std::string *bootModeStr = + std::get_if(&bootMode); + + if (!bootModeStr) + { + messages::internalError(aResp->res); + return; + } + + BMCWEB_LOG_DEBUG << "Boot mode: " << *bootModeStr; + + // TODO (Santosh): Do we need to support override mode? + aResp->res.jsonValue["Boot"]["BootSourceOverrideMode"] = "Legacy"; + aResp->res.jsonValue["Boot"]["BootSourceOverrideTarget@Redfish." + "AllowableValues"] = { + "None", "Pxe", "Hdd", "Cd", "Diags", "BiosSetup", "Usb"}; + + if (*bootModeStr != + "xyz.openbmc_project.Control.Boot.Mode.Modes.Regular") + { + auto rfMode = dbusToRfBootMode(*bootModeStr); + if (!rfMode.empty()) + { + aResp->res.jsonValue["Boot"]["BootSourceOverrideTarget"] = + rfMode; + } + } + + // If the BootSourceOverrideTarget is still "None" at the end, + // reset the BootSourceOverrideEnabled to indicate that + // overrides are disabled + if (aResp->res.jsonValue["Boot"]["BootSourceOverrideTarget"] == + "None") + { + aResp->res.jsonValue["Boot"]["BootSourceOverrideEnabled"] = + "Disabled"; + } + }, + "xyz.openbmc_project.Settings", bootDbusObj, + "org.freedesktop.DBus.Properties", "Get", + "xyz.openbmc_project.Control.Boot.Mode", "BootMode"); +} + +/** + * @brief Retrieves boot source over DBUS + * + * @param[in] aResp Shared pointer for generating response message. + * @param[in] oneTimeEnable Boolean to indicate boot properties are one-time. + * + * @return None. + */ +static void getBootSource(std::shared_ptr aResp, bool oneTimeEnabled) +{ + std::string bootDbusObj = + oneTimeEnabled ? "/xyz/openbmc_project/control/host0/boot/one_time" + : "/xyz/openbmc_project/control/host0/boot"; + + BMCWEB_LOG_DEBUG << "Is one time: " << oneTimeEnabled; + aResp->res.jsonValue["Boot"]["BootSourceOverrideEnabled"] = + (oneTimeEnabled) ? "Once" : "Continuous"; + + crow::connections::systemBus->async_method_call( + [aResp, bootDbusObj](const boost::system::error_code ec, + const std::variant &bootSource) { + if (ec) + { + BMCWEB_LOG_DEBUG << "DBUS response error " << ec; + messages::internalError(aResp->res); + return; + } + + const std::string *bootSourceStr = + std::get_if(&bootSource); + + if (!bootSourceStr) + { + messages::internalError(aResp->res); + return; + } + BMCWEB_LOG_DEBUG << "Boot source: " << *bootSourceStr; + + auto rfSource = dbusToRfBootSource(*bootSourceStr); + if (!rfSource.empty()) + { + aResp->res.jsonValue["Boot"]["BootSourceOverrideTarget"] = + rfSource; + } + }, + "xyz.openbmc_project.Settings", bootDbusObj, + "org.freedesktop.DBus.Properties", "Get", + "xyz.openbmc_project.Control.Boot.Source", "BootSource"); + getBootMode(std::move(aResp), std::move(bootDbusObj)); +} + +/** + * @brief Retrieves "One time" enabled setting over DBUS and calls function to + * get boot source and boot mode. + * + * @param[in] aResp Shared pointer for generating response message. + * + * @return None. + */ +static void getBootProperties(std::shared_ptr aResp) +{ + BMCWEB_LOG_DEBUG << "Get boot information."; + + crow::connections::systemBus->async_method_call( + [aResp](const boost::system::error_code ec, + const sdbusplus::message::variant &oneTime) { + if (ec) + { + BMCWEB_LOG_DEBUG << "DBUS response error " << ec; + // not an error, don't have to have the interface + return; + } + + const bool *oneTimePtr = std::get_if(&oneTime); + + if (!oneTimePtr) + { + messages::internalError(aResp->res); + return; + } + getBootSource(aResp, *oneTimePtr); + }, + "xyz.openbmc_project.Settings", + "/xyz/openbmc_project/control/host0/boot/one_time", + "org.freedesktop.DBus.Properties", "Get", + "xyz.openbmc_project.Object.Enable", "Enabled"); +} + +/** + * @brief Sets boot properties into DBUS object(s). + * + * @param[in] aResp Shared pointer for generating response message. + * @param[in] oneTimeEnabled Is "one-time" setting already enabled. + * @param[in] bootSource The boot source to set. + * @param[in] bootEnable The source override "enable" to set. + * + * @return Integer error code. + */ +static void setBootModeOrSource(std::shared_ptr aResp, + bool oneTimeEnabled, + std::optional bootSource, + std::optional bootEnable) +{ + std::string bootSourceStr = + "xyz.openbmc_project.Control.Boot.Source.Sources.Default"; + std::string bootModeStr = + "xyz.openbmc_project.Control.Boot.Mode.Modes.Regular"; + bool oneTimeSetting = oneTimeEnabled; + bool useBootSource = true; + + // Validate incoming parameters + if (bootEnable) + { + if (*bootEnable == "Once") + { + oneTimeSetting = true; + } + else if (*bootEnable == "Continuous") + { + oneTimeSetting = false; + } + else if (*bootEnable == "Disabled") { + BMCWEB_LOG_DEBUG << "Boot source override will be disabled"; + oneTimeSetting = false; + useBootSource = false; + } + else + { + BMCWEB_LOG_DEBUG << "Unsupported value for " + "BootSourceOverrideEnabled: " + << *bootEnable; + messages::propertyValueNotInList(aResp->res, *bootEnable, + "BootSourceOverrideEnabled"); return; } + } - if (resetType == "ForceOff") + if (bootSource && useBootSource) + { + // Source target specified + BMCWEB_LOG_DEBUG << "Boot source: " << *bootSource; + // Figure out which DBUS interface and property to use + if (assignBootParameters(aResp, *bootSource, bootSourceStr, + bootModeStr)) { - // Force off acts on the chassis - crow::connections::systemBus->async_method_call( - [asyncResp](const boost::system::error_code ec) { - if (ec) + BMCWEB_LOG_DEBUG + << "Invalid property value for BootSourceOverrideTarget: " + << *bootSource; + messages::propertyValueNotInList(aResp->res, *bootSource, + "BootSourceTargetOverride"); + return; + } + } + + // Act on validated parameters + BMCWEB_LOG_DEBUG << "DBUS boot source: " << bootSourceStr; + BMCWEB_LOG_DEBUG << "DBUS boot mode: " << bootModeStr; + const char *bootObj = + oneTimeSetting ? "/xyz/openbmc_project/control/host0/boot/one_time" + : "/xyz/openbmc_project/control/host0/boot"; + + crow::connections::systemBus->async_method_call( + [aResp](const boost::system::error_code ec) { + if (ec) + { + BMCWEB_LOG_DEBUG << "DBUS response error " << ec; + messages::internalError(aResp->res); + return; + } + BMCWEB_LOG_DEBUG << "Boot source update done."; + }, + "xyz.openbmc_project.Settings", bootObj, + "org.freedesktop.DBus.Properties", "Set", + "xyz.openbmc_project.Control.Boot.Source", "BootSource", + std::variant(bootSourceStr)); + + crow::connections::systemBus->async_method_call( + [aResp](const boost::system::error_code ec) { + if (ec) + { + BMCWEB_LOG_DEBUG << "DBUS response error " << ec; + messages::internalError(aResp->res); + return; + } + BMCWEB_LOG_DEBUG << "Boot mode update done."; + }, + "xyz.openbmc_project.Settings", bootObj, + "org.freedesktop.DBus.Properties", "Set", + "xyz.openbmc_project.Control.Boot.Mode", "BootMode", + std::variant(bootModeStr)); + + crow::connections::systemBus->async_method_call( + [aResp{std::move(aResp)}](const boost::system::error_code ec) { + if (ec) + { + BMCWEB_LOG_DEBUG << "DBUS response error " << ec; + messages::internalError(aResp->res); + return; + } + BMCWEB_LOG_DEBUG << "Boot enable update done."; + }, + "xyz.openbmc_project.Settings", + "/xyz/openbmc_project/control/host0/boot/one_time", + "org.freedesktop.DBus.Properties", "Set", + "xyz.openbmc_project.Object.Enable", "Enabled", + std::variant(oneTimeSetting)); +} + +/** + * @brief Retrieves "One time" enabled setting over DBUS and calls function to + * set boot source/boot mode properties. + * + * @param[in] aResp Shared pointer for generating response message. + * @param[in] bootSource The boot source from incoming RF request. + * @param[in] bootEnable The boot override enable from incoming RF request. + * + * @return Integer error code. + */ +static void setBootProperties(std::shared_ptr aResp, + std::optional bootSource, + std::optional bootEnable) +{ + BMCWEB_LOG_DEBUG << "Set boot information."; + + crow::connections::systemBus->async_method_call( + [aResp, bootSource{std::move(bootSource)}, + bootEnable{std::move(bootEnable)}]( + const boost::system::error_code ec, + const sdbusplus::message::variant &oneTime) { + if (ec) + { + BMCWEB_LOG_DEBUG << "DBUS response error " << ec; + messages::internalError(aResp->res); + return; + } + + const bool *oneTimePtr = std::get_if(&oneTime); + + if (!oneTimePtr) + { + messages::internalError(aResp->res); + return; + } + + BMCWEB_LOG_DEBUG << "Got one time: " << *oneTimePtr; + + setBootModeOrSource(aResp, *oneTimePtr, std::move(bootSource), + std::move(bootEnable)); + }, + "xyz.openbmc_project.Settings", + "/xyz/openbmc_project/control/host0/boot/one_time", + "org.freedesktop.DBus.Properties", "Get", + "xyz.openbmc_project.Object.Enable", "Enabled"); +} + +#ifdef BMCWEB_ENABLE_REDFISH_PROVISIONING_FEATURE +/** + * @brief Retrieves provisioning status + * + * @param[in] aResp Shared pointer for completing asynchronous calls. + * + * @return None. + */ +void getProvisioningStatus(std::shared_ptr aResp) +{ + BMCWEB_LOG_DEBUG << "Get OEM information."; + crow::connections::systemBus->async_method_call( + [aResp](const boost::system::error_code ec, + const std::vector> + &propertiesList) { + if (ec) + { + BMCWEB_LOG_DEBUG << "DBUS response error " << ec; + messages::internalError(aResp->res); + return; + } + + const bool *provState = nullptr; + const bool *lockState = nullptr; + for (const std::pair &property : + propertiesList) + { + if (property.first == "UfmProvisioned") + { + provState = std::get_if(&property.second); + } + else if (property.first == "UfmLocked") + { + lockState = std::get_if(&property.second); + } + } + + if ((provState == nullptr) || (lockState == nullptr)) + { + BMCWEB_LOG_DEBUG << "Unable to get PFR attributes."; + messages::internalError(aResp->res); + return; + } + + nlohmann::json &oemPFR = + aResp->res.jsonValue["Oem"]["OpenBmc"]["FirmwareProvisioning"]; + if (*provState == true) + { + if (*lockState == true) + { + oemPFR["ProvisioningStatus"] = "ProvisionedAndLocked"; + } + else + { + oemPFR["ProvisioningStatus"] = "ProvisionedButNotLocked"; + } + } + else + { + oemPFR["ProvisioningStatus"] = "NotProvisioned"; + } + }, + "xyz.openbmc_project.PFR.Manager", "/xyz/openbmc_project/pfr", + "org.freedesktop.DBus.Properties", "GetAll", + "xyz.openbmc_project.PFR.Attributes"); +} +#endif + +/** + * @brief Translates watchdog timeout action DBUS property value to redfish. + * + * @param[in] dbusAction The watchdog timeout action in D-BUS. + * + * @return Returns as a string, the timeout action in Redfish terms. If + * translation cannot be done, returns an empty string. + */ +static std::string dbusToRfWatchdogAction(const std::string &dbusAction) +{ + if (dbusAction == "xyz.openbmc_project.State.Watchdog.Action.None") + { + return "None"; + } + else if (dbusAction == + "xyz.openbmc_project.State.Watchdog.Action.HardReset") + { + return "ResetSystem"; + } + else if (dbusAction == "xyz.openbmc_project.State.Watchdog.Action.PowerOff") + { + return "PowerDown"; + } + else if (dbusAction == + "xyz.openbmc_project.State.Watchdog.Action.PowerCycle") + { + return "PowerCycle"; + } + + return ""; +} + +/** + *@brief Translates timeout action from Redfish to DBUS property value. + * + *@param[in] rfAction The timeout action in Redfish. + * + *@return Returns as a string, the time_out action as expected by DBUS. + *If translation cannot be done, returns an empty string. + */ + +static std::string rfToDbusWDTTimeOutAct(const std::string &rfAction) +{ + if (rfAction == "None") + { + return "xyz.openbmc_project.State.Watchdog.Action.None"; + } + else if (rfAction == "PowerCycle") + { + return "xyz.openbmc_project.State.Watchdog.Action.PowerCycle"; + } + else if (rfAction == "PowerDown") + { + return "xyz.openbmc_project.State.Watchdog.Action.PowerOff"; + } + else if (rfAction == "ResetSystem") + { + return "xyz.openbmc_project.State.Watchdog.Action.HardReset"; + } + + return ""; +} + +/** + * @brief Retrieves host watchdog timer properties over DBUS + * + * @param[in] aResp Shared pointer for completing asynchronous calls. + * + * @return None. + */ +void getHostWatchdogTimer(std::shared_ptr aResp) +{ + BMCWEB_LOG_DEBUG << "Get host watchodg"; + crow::connections::systemBus->async_method_call( + [aResp](const boost::system::error_code ec, + PropertiesType &properties) { + if (ec) + { + // watchdog service is stopped + BMCWEB_LOG_DEBUG << "DBUS response error " << ec; + return; + } + + BMCWEB_LOG_DEBUG << "Got " << properties.size() << " wdt prop."; + + nlohmann::json &hostWatchdogTimer = + aResp->res.jsonValue["HostWatchdogTimer"]; + + // watchdog service is running/enabled + hostWatchdogTimer["Status"]["State"] = "Enabled"; + + for (const auto &property : properties) + { + BMCWEB_LOG_DEBUG << "prop=" << property.first; + if (property.first == "Enabled") + { + const bool *state = std::get_if(&property.second); + + if (!state) { - BMCWEB_LOG_ERROR << "D-Bus responses error: " << ec; - messages::internalError(asyncResp->res); - return; + messages::internalError(aResp->res); + continue; } - // TODO Consider support polling mechanism to verify - // status of host and chassis after execute the - // requested action. - messages::success(asyncResp->res); - }, - "xyz.openbmc_project.State.Chassis", - "/xyz/openbmc_project/state/chassis0", - "org.freedesktop.DBus.Properties", "Set", - "xyz.openbmc_project.State.Chassis", "RequestedPowerTransition", - std::variant{ - "xyz.openbmc_project.State.Chassis.Transition.Off"}); + + hostWatchdogTimer["FunctionEnabled"] = *state; + } + else if (property.first == "ExpireAction") + { + const std::string *s = + std::get_if(&property.second); + if (!s) + { + messages::internalError(aResp->res); + continue; + } + + std::string action = dbusToRfWatchdogAction(*s); + if (action.empty()) + { + messages::internalError(aResp->res); + continue; + } + hostWatchdogTimer["TimeoutAction"] = action; + } + } + }, + "xyz.openbmc_project.Watchdog", "/xyz/openbmc_project/watchdog/host0", + "org.freedesktop.DBus.Properties", "GetAll", + "xyz.openbmc_project.State.Watchdog"); +} + +/** + * @brief Sets Host WatchDog Timer properties. + * + * @param[in] aResp Shared pointer for generating response message. + * @param[in] wdtEnable The WDTimer Enable value (true/false) from incoming + * RF request. + * @param[in] wdtTimeOutAction The WDT Timeout action, from incoming RF request. + * + * @return None. + */ +static void setWDTProperties(std::shared_ptr aResp, + const std::optional wdtEnable, + const std::optional &wdtTimeOutAction) +{ + BMCWEB_LOG_DEBUG << "Set host watchdog"; + + if (wdtTimeOutAction) + { + std::string wdtTimeOutActStr = rfToDbusWDTTimeOutAct(*wdtTimeOutAction); + // check if TimeOut Action is Valid + if (wdtTimeOutActStr.empty()) + { + BMCWEB_LOG_DEBUG << "Unsupported value for TimeoutAction: " + << *wdtTimeOutAction; + messages::propertyValueNotInList(aResp->res, *wdtTimeOutAction, + "TimeoutAction"); + return; + } + + crow::connections::systemBus->async_method_call( + [aResp](const boost::system::error_code ec) { + if (ec) + { + BMCWEB_LOG_DEBUG << "DBUS response error " << ec; + messages::internalError(aResp->res); + return; + } + }, + "xyz.openbmc_project.Watchdog", + "/xyz/openbmc_project/watchdog/host0", + "org.freedesktop.DBus.Properties", "Set", + "xyz.openbmc_project.State.Watchdog", "ExpireAction", + std::variant(wdtTimeOutActStr)); + } + + if (wdtEnable) + { + crow::connections::systemBus->async_method_call( + [aResp](const boost::system::error_code ec) { + if (ec) + { + BMCWEB_LOG_DEBUG << "DBUS response error " << ec; + messages::internalError(aResp->res); + return; + } + }, + "xyz.openbmc_project.Watchdog", + "/xyz/openbmc_project/watchdog/host0", + "org.freedesktop.DBus.Properties", "Set", + "xyz.openbmc_project.State.Watchdog", "Enabled", + std::variant(*wdtEnable)); + } +} + +/** + * SystemsCollection derived class for delivering ComputerSystems Collection + * Schema + */ +class SystemsCollection : public Node +{ + public: + SystemsCollection(CrowApp &app) : Node(app, "/redfish/v1/Systems/") + { + entityPrivileges = { + {boost::beast::http::verb::get, {{"Login"}}}, + {boost::beast::http::verb::head, {{"Login"}}}, + {boost::beast::http::verb::patch, {{"ConfigureComponents"}}}, + {boost::beast::http::verb::put, {{"ConfigureComponents"}}}, + {boost::beast::http::verb::delete_, {{"ConfigureComponents"}}}, + {boost::beast::http::verb::post, {{"ConfigureComponents"}}}}; + } + + private: + void doGet(crow::Response &res, const crow::Request &req, + const std::vector ¶ms) override + { + res.jsonValue["@odata.type"] = + "#ComputerSystemCollection.ComputerSystemCollection"; + res.jsonValue["@odata.id"] = "/redfish/v1/Systems"; + res.jsonValue["@odata.context"] = + "/redfish/v1/" + "$metadata#ComputerSystemCollection.ComputerSystemCollection"; + res.jsonValue["Name"] = "Computer System Collection"; + res.jsonValue["Members"] = { + {{"@odata.id", "/redfish/v1/Systems/system"}}}; + res.jsonValue["Members@odata.count"] = 1; + res.end(); + } +}; + +/** + * SystemActionsReset class supports handle POST method for Reset action. + * The class retrieves and sends data directly to D-Bus. + */ +class SystemActionsReset : public Node +{ + public: + SystemActionsReset(CrowApp &app) : + Node(app, "/redfish/v1/Systems/system/Actions/ComputerSystem.Reset/") + { + entityPrivileges = { + {boost::beast::http::verb::post, {{"ConfigureComponents"}}}}; + } + + private: + /** + * Function handles POST method request. + * Analyzes POST body message before sends Reset request data to D-Bus. + */ + void doPost(crow::Response &res, const crow::Request &req, + const std::vector ¶ms) override + { + auto asyncResp = std::make_shared(res); + + std::string resetType; + if (!json_util::readJson(req, res, "ResetType", resetType)) + { return; } - // all other actions operate on the host + + // Get the command and host vs. chassis std::string command; - // Execute Reset Action regarding to each reset type. + bool hostCommand; if (resetType == "On") { command = "xyz.openbmc_project.State.Host.Transition.On"; + hostCommand = true; + } + else if (resetType == "ForceOff") + { + command = "xyz.openbmc_project.State.Chassis.Transition.Off"; + hostCommand = false; + } + else if (resetType == "ForceOn") + { + command = "xyz.openbmc_project.State.Host.Transition.On"; + hostCommand = true; + } + else if (resetType == "ForceRestart") + { + command = "xyz.openbmc_project.State.Chassis.Transition.Reset"; + hostCommand = false; } else if (resetType == "GracefulShutdown") { command = "xyz.openbmc_project.State.Host.Transition.Off"; + hostCommand = true; } else if (resetType == "GracefulRestart") { command = "xyz.openbmc_project.State.Host.Transition.Reboot"; + hostCommand = true; + } + else if (resetType == "PowerCycle") + { + command = "xyz.openbmc_project.State.Chassis.Transition.PowerCycle"; + hostCommand = false; + } + else if (resetType == "Nmi") + { + doNMI(asyncResp); + return; } else { @@ -560,24 +1456,83 @@ class SystemActionsReset : public Node return; } + if (hostCommand) + { + crow::connections::systemBus->async_method_call( + [asyncResp, resetType](const boost::system::error_code ec) { + if (ec) + { + BMCWEB_LOG_ERROR << "D-Bus responses error: " << ec; + if (ec.value() == boost::asio::error::invalid_argument) + { + messages::actionParameterNotSupported( + asyncResp->res, resetType, "Reset"); + } + else + { + messages::internalError(asyncResp->res); + } + return; + } + messages::success(asyncResp->res); + }, + "xyz.openbmc_project.State.Host", + "/xyz/openbmc_project/state/host0", + "org.freedesktop.DBus.Properties", "Set", + "xyz.openbmc_project.State.Host", "RequestedHostTransition", + std::variant{command}); + } + else + { + crow::connections::systemBus->async_method_call( + [asyncResp, resetType](const boost::system::error_code ec) { + if (ec) + { + BMCWEB_LOG_ERROR << "D-Bus responses error: " << ec; + if (ec.value() == boost::asio::error::invalid_argument) + { + messages::actionParameterNotSupported( + asyncResp->res, resetType, "Reset"); + } + else + { + messages::internalError(asyncResp->res); + } + return; + } + messages::success(asyncResp->res); + }, + "xyz.openbmc_project.State.Chassis", + "/xyz/openbmc_project/state/chassis0", + "org.freedesktop.DBus.Properties", "Set", + "xyz.openbmc_project.State.Chassis", "RequestedPowerTransition", + std::variant{command}); + } + } + /** + * Function transceives data with dbus directly. + */ + void doNMI(const std::shared_ptr &asyncResp) + { + constexpr char const *serviceName = + "xyz.openbmc_project.Control.Host.NMI"; + constexpr char const *objectPath = + "/xyz/openbmc_project/control/host0/nmi"; + constexpr char const *interfaceName = + "xyz.openbmc_project.Control.Host.NMI"; + constexpr char const *method = "NMI"; + crow::connections::systemBus->async_method_call( [asyncResp](const boost::system::error_code ec) { if (ec) { - BMCWEB_LOG_ERROR << "D-Bus responses error: " << ec; + BMCWEB_LOG_ERROR << " Bad D-Bus request error: " << ec; messages::internalError(asyncResp->res); return; } - // TODO Consider support polling mechanism to verify - // status of host and chassis after execute the - // requested action. messages::success(asyncResp->res); }, - "xyz.openbmc_project.State.Host", - "/xyz/openbmc_project/state/host0", - "org.freedesktop.DBus.Properties", "Set", - "xyz.openbmc_project.State.Host", "RequestedHostTransition", - std::variant{command}); + serviceName, objectPath, interfaceName, method); } }; @@ -608,27 +1563,16 @@ class Systems : public Node void doGet(crow::Response &res, const crow::Request &req, const std::vector ¶ms) override { - res.jsonValue["@odata.type"] = "#ComputerSystem.v1_5_1.ComputerSystem"; + res.jsonValue["@odata.type"] = "#ComputerSystem.v1_6_0.ComputerSystem"; res.jsonValue["@odata.context"] = "/redfish/v1/$metadata#ComputerSystem.ComputerSystem"; res.jsonValue["Name"] = "Computer System"; res.jsonValue["Id"] = "system"; res.jsonValue["SystemType"] = "Physical"; res.jsonValue["Description"] = "Computer System"; - res.jsonValue["Boot"]["BootSourceOverrideEnabled"] = - "Disabled"; // TODO(Dawid), get real boot data - res.jsonValue["Boot"]["BootSourceOverrideTarget"] = - "None"; // TODO(Dawid), get real boot data - res.jsonValue["Boot"]["BootSourceOverrideMode"] = - "Legacy"; // TODO(Dawid), get real boot data - res.jsonValue["Boot"] - ["BootSourceOverrideTarget@Redfish.AllowableValues"] = { - "None", "Pxe", "Hdd", "Cd", - "BiosSetup", "UefiShell", "Usb"}; // TODO(Dawid), get real boot - // data res.jsonValue["ProcessorSummary"]["Count"] = 0; res.jsonValue["ProcessorSummary"]["Status"]["State"] = "Disabled"; - res.jsonValue["MemorySummary"]["TotalSystemMemoryGiB"] = int(0); + res.jsonValue["MemorySummary"]["TotalSystemMemoryGiB"] = uint64_t(0); res.jsonValue["MemorySummary"]["Status"]["State"] = "Disabled"; res.jsonValue["@odata.id"] = "/redfish/v1/Systems/system"; @@ -636,123 +1580,123 @@ class Systems : public Node {"@odata.id", "/redfish/v1/Systems/system/Processors"}}; res.jsonValue["Memory"] = { {"@odata.id", "/redfish/v1/Systems/system/Memory"}}; + res.jsonValue["Storage"] = { + {"@odata.id", "/redfish/v1/Systems/system/Storage"}}; // TODO Need to support ForceRestart. res.jsonValue["Actions"]["#ComputerSystem.Reset"] = { {"target", "/redfish/v1/Systems/system/Actions/ComputerSystem.Reset"}, {"ResetType@Redfish.AllowableValues", - {"On", "ForceOff", "GracefulRestart", "GracefulShutdown"}}}; + {"On", "ForceOff", "ForceOn", "ForceRestart", "GracefulRestart", + "GracefulShutdown", "PowerCycle", "Nmi"}}}; res.jsonValue["LogServices"] = { {"@odata.id", "/redfish/v1/Systems/system/LogServices"}}; + res.jsonValue["Bios"] = { + {"@odata.id", "/redfish/v1/Systems/system/Bios"}}; + + res.jsonValue["Links"]["ManagedBy"] = { + {{"@odata.id", "/redfish/v1/Managers/bmc"}}}; + + res.jsonValue["Status"] = { + {"Health", "OK"}, + {"State", "Enabled"}, + }; auto asyncResp = std::make_shared(res); - getLedGroupIdentify( - asyncResp, - [&](const bool &asserted, const std::shared_ptr &aResp) { - if (asserted) - { - // If led group is asserted, then another call is needed to - // get led status - getLedIdentify( - aResp, [](const std::string &ledStatus, - const std::shared_ptr &aResp) { - if (!ledStatus.empty()) - { - aResp->res.jsonValue["IndicatorLED"] = - ledStatus; - } - }); - } - else + constexpr const std::array inventoryForSystems = { + "xyz.openbmc_project.Inventory.Item.Dimm", + "xyz.openbmc_project.Inventory.Item.Cpu", + "xyz.openbmc_project.Inventory.Item.Drive", + "xyz.openbmc_project.Inventory.Item.StorageController"}; + + auto health = std::make_shared(asyncResp); + crow::connections::systemBus->async_method_call( + [health](const boost::system::error_code ec, + std::vector &resp) { + if (ec) { - aResp->res.jsonValue["IndicatorLED"] = "Off"; + // no inventory + return; } - }); - getComputerSystem(asyncResp); + + health->inventory = std::move(resp); + }, + "xyz.openbmc_project.ObjectMapper", + "/xyz/openbmc_project/object_mapper", + "xyz.openbmc_project.ObjectMapper", "GetSubTreePaths", "/", + int32_t(0), inventoryForSystems); + + health->populate(); + + getMainChassisId(asyncResp, [](const std::string &chassisId, + std::shared_ptr aRsp) { + aRsp->res.jsonValue["Links"]["Chassis"] = { + {{"@odata.id", "/redfish/v1/Chassis/" + chassisId}}}; + }); + + getIndicatorLedState(asyncResp); + getComputerSystem(asyncResp, health); getHostState(asyncResp); + getBootProperties(asyncResp); + getPCIeDeviceList(asyncResp, "PCIeDevices"); + getHostWatchdogTimer(asyncResp); +#ifdef BMCWEB_ENABLE_REDFISH_PROVISIONING_FEATURE + getProvisioningStatus(asyncResp); +#endif } void doPatch(crow::Response &res, const crow::Request &req, const std::vector ¶ms) override { - std::string indicatorLedTemp; - std::optional indicatorLed = indicatorLedTemp; - if (!json_util::readJson(req, res, "IndicatorLed", indicatorLed)) + std::optional indicatorLed; + std::optional bootProps; + std::optional wdtTimerProps; + auto asyncResp = std::make_shared(res); + + if (!json_util::readJson(req, res, "IndicatorLED", indicatorLed, "Boot", + bootProps, "WatchdogTimer", wdtTimerProps)) { return; } - auto asyncResp = std::make_shared(res); - messages::success(asyncResp->res); - if (indicatorLed) + + res.result(boost::beast::http::status::no_content); + + if (wdtTimerProps) { - std::string dbusLedState; - if (*indicatorLed == "On") - { - dbusLedState = "xyz.openbmc_project.Led.Physical.Action.Lit"; - } - else if (*indicatorLed == "Blink") - { - dbusLedState = - "xyz.openbmc_project.Led.Physical.Action.Blinking"; - } - else if (*indicatorLed == "Off") + std::optional wdtEnable; + std::optional wdtTimeOutAction; + + if (!json_util::readJson(*wdtTimerProps, asyncResp->res, + "FunctionEnabled", wdtEnable, + "TimeoutAction", wdtTimeOutAction)) { - dbusLedState = "xyz.openbmc_project.Led.Physical.Action.Off"; + return; } - else + setWDTProperties(asyncResp, std::move(wdtEnable), + std::move(wdtTimeOutAction)); + } + + if (bootProps) + { + std::optional bootSource; + std::optional bootEnable; + + if (!json_util::readJson(*bootProps, asyncResp->res, + "BootSourceOverrideTarget", bootSource, + "BootSourceOverrideEnabled", bootEnable)) { - messages::propertyValueNotInList(res, *indicatorLed, - "IndicatorLED"); return; } + setBootProperties(asyncResp, std::move(bootSource), + std::move(bootEnable)); + } - getHostState(asyncResp); - getComputerSystem(asyncResp); - - // Update led group - BMCWEB_LOG_DEBUG << "Update led group."; - crow::connections::systemBus->async_method_call( - [asyncResp{std::move(asyncResp)}]( - const boost::system::error_code ec) { - if (ec) - { - BMCWEB_LOG_DEBUG << "DBUS response error " << ec; - messages::internalError(asyncResp->res); - return; - } - BMCWEB_LOG_DEBUG << "Led group update done."; - }, - "xyz.openbmc_project.LED.GroupManager", - "/xyz/openbmc_project/led/groups/enclosure_identify", - "org.freedesktop.DBus.Properties", "Set", - "xyz.openbmc_project.Led.Group", "Asserted", - std::variant( - (dbusLedState == - "xyz.openbmc_project.Led.Physical.Action.Off" - ? false - : true))); - // Update identify led status - BMCWEB_LOG_DEBUG << "Update led SoftwareInventoryCollection."; - crow::connections::systemBus->async_method_call( - [asyncResp{std::move(asyncResp)}, - indicatorLed{std::move(*indicatorLed)}]( - const boost::system::error_code ec) { - if (ec) - { - BMCWEB_LOG_DEBUG << "DBUS response error " << ec; - messages::internalError(asyncResp->res); - return; - } - BMCWEB_LOG_DEBUG << "Led state update done."; - }, - "xyz.openbmc_project.LED.Controller.identify", - "/xyz/openbmc_project/led/physical/identify", - "org.freedesktop.DBus.Properties", "Set", - "xyz.openbmc_project.Led.Physical", "State", - std::variant(dbusLedState)); + if (indicatorLed) + { + setIndicatorLedState(asyncResp, std::move(*indicatorLed)); } } }; diff --git a/Contrib-Inspur/bmcweb/redfish-core/lib/thermal.hpp b/Contrib-Inspur/bmcweb/redfish-core/lib/thermal.hpp index d0fbccfe..3ab9e441 100644 --- a/Contrib-Inspur/bmcweb/redfish-core/lib/thermal.hpp +++ b/Contrib-Inspur/bmcweb/redfish-core/lib/thermal.hpp @@ -30,13 +30,17 @@ class Thermal : public Node entityPrivileges = { {boost::beast::http::verb::get, {{"Login"}}}, {boost::beast::http::verb::head, {{"Login"}}}, - {boost::beast::http::verb::patch, {{"ConfigureManager"}}}, + {boost::beast::http::verb::patch, {{"ConfigureComponents"}}}, {boost::beast::http::verb::put, {{"ConfigureManager"}}}, {boost::beast::http::verb::delete_, {{"ConfigureManager"}}}, {boost::beast::http::verb::post, {{"ConfigureManager"}}}}; } private: + std::vector typeList = { + "/xyz/openbmc_project/sensors/fan_tach", + "/xyz/openbmc_project/sensors/temperature", + "/xyz/openbmc_project/sensors/fan_pwm"}; void doGet(crow::Response& res, const crow::Request& req, const std::vector& params) override { @@ -47,27 +51,55 @@ class Thermal : public Node return; } const std::string& chassisName = params[0]; - - res.jsonValue["@odata.type"] = "#Thermal.v1_4_0.Thermal"; - res.jsonValue["@odata.context"] = - "/redfish/v1/$metadata#Thermal.Thermal"; - res.jsonValue["Id"] = "Thermal"; - res.jsonValue["Name"] = "Thermal"; - - res.jsonValue["@odata.id"] = - "/redfish/v1/Chassis/" + chassisName + "/Thermal"; - auto sensorAsyncResp = std::make_shared( - res, chassisName, - std::initializer_list{ - "/xyz/openbmc_project/sensors/fan", - "/xyz/openbmc_project/sensors/temperature", - "/xyz/openbmc_project/sensors/fan_pwm"}, - "Thermal"); + res, chassisName, typeList, "Thermal"); // TODO Need to get Chassis Redundancy information. getChassisData(sensorAsyncResp); } + void doPatch(crow::Response& res, const crow::Request& req, + const std::vector& params) override + { + if (params.size() != 1) + { + res.end(); + messages::internalError(res); + return; + } + + const std::string& chassisName = params[0]; + std::optional> temperatureCollections; + std::optional> fanCollections; + std::unordered_map> + allCollections; + + auto asyncResp = std::make_shared( + res, chassisName, typeList, "Thermal"); + + if (!json_util::readJson(req, asyncResp->res, "Temperatures", + temperatureCollections, "Fans", + fanCollections)) + { + return; + } + if (!temperatureCollections && !fanCollections) + { + messages::resourceNotFound(asyncResp->res, "Thermal", + "Temperatures / Voltages"); + return; + } + if (temperatureCollections) + { + allCollections.emplace("Temperatures", + *std::move(temperatureCollections)); + } + if (fanCollections) + { + allCollections.emplace("Fans", *std::move(fanCollections)); + } + + setSensorOverride(asyncResp, allCollections, chassisName, typeList); + } }; } // namespace redfish diff --git a/Contrib-Inspur/bmcweb/redfish-core/lib/update_service.hpp b/Contrib-Inspur/bmcweb/redfish-core/lib/update_service.hpp index 5d5b3ea3..ec9600ed 100644 --- a/Contrib-Inspur/bmcweb/redfish-core/lib/update_service.hpp +++ b/Contrib-Inspur/bmcweb/redfish-core/lib/update_service.hpp @@ -18,12 +18,306 @@ #include "node.hpp" #include +#include #include namespace redfish { +// Match signals added on software path static std::unique_ptr fwUpdateMatcher; +// Only allow one update at a time +static bool fwUpdateInProgress = false; +// Timer for software available +static std::unique_ptr fwAvailableTimer; + +static void cleanUp() +{ + fwUpdateInProgress = false; + fwUpdateMatcher = nullptr; +} +static void activateImage(const std::string &objPath, + const std::string &service) +{ + BMCWEB_LOG_DEBUG << "Activate image for " << objPath << " " << service; + crow::connections::systemBus->async_method_call( + [](const boost::system::error_code error_code) { + if (error_code) + { + BMCWEB_LOG_DEBUG << "error_code = " << error_code; + BMCWEB_LOG_DEBUG << "error msg = " << error_code.message(); + } + }, + service, objPath, "org.freedesktop.DBus.Properties", "Set", + "xyz.openbmc_project.Software.Activation", "RequestedActivation", + std::variant( + "xyz.openbmc_project.Software.Activation.RequestedActivations." + "Active")); +} + +// Note that asyncResp can be either a valid pointer or nullptr. If nullptr +// then no asyncResp updates will occur +static void softwareInterfaceAdded(std::shared_ptr asyncResp, + sdbusplus::message::message &m) +{ + std::vector>>>> + interfacesProperties; + + sdbusplus::message::object_path objPath; + + m.read(objPath, interfacesProperties); + + BMCWEB_LOG_DEBUG << "obj path = " << objPath.str; + for (auto &interface : interfacesProperties) + { + BMCWEB_LOG_DEBUG << "interface = " << interface.first; + + if (interface.first == "xyz.openbmc_project.Software.Activation") + { + // Found our interface, disable callbacks + fwUpdateMatcher = nullptr; + + // Retrieve service and activate + crow::connections::systemBus->async_method_call( + [objPath, asyncResp]( + const boost::system::error_code error_code, + const std::vector>> &objInfo) { + if (error_code) + { + BMCWEB_LOG_DEBUG << "error_code = " << error_code; + BMCWEB_LOG_DEBUG << "error msg = " + << error_code.message(); + if (asyncResp) + { + messages::internalError(asyncResp->res); + } + cleanUp(); + return; + } + // Ensure we only got one service back + if (objInfo.size() != 1) + { + BMCWEB_LOG_ERROR << "Invalid Object Size " + << objInfo.size(); + if (asyncResp) + { + messages::internalError(asyncResp->res); + } + cleanUp(); + return; + } + // cancel timer only when + // xyz.openbmc_project.Software.Activation interface + // is added + fwAvailableTimer = nullptr; + + activateImage(objPath.str, objInfo[0].first); + if (asyncResp) + { + redfish::messages::success(asyncResp->res); + } + fwUpdateInProgress = false; + }, + "xyz.openbmc_project.ObjectMapper", + "/xyz/openbmc_project/object_mapper", + "xyz.openbmc_project.ObjectMapper", "GetObject", objPath.str, + std::array{ + "xyz.openbmc_project.Software.Activation"}); + } + } +} + +// Note that asyncResp can be either a valid pointer or nullptr. If nullptr +// then no asyncResp updates will occur +static void monitorForSoftwareAvailable(std::shared_ptr asyncResp, + const crow::Request &req, + int timeoutTimeSeconds = 5) +{ + // Only allow one FW update at a time + if (fwUpdateInProgress != false) + { + if (asyncResp) + { + messages::serviceTemporarilyUnavailable(asyncResp->res, "30"); + } + return; + } + + fwAvailableTimer = + std::make_unique(*req.ioService); + + fwAvailableTimer->expires_after(std::chrono::seconds(timeoutTimeSeconds)); + + fwAvailableTimer->async_wait( + [asyncResp](const boost::system::error_code &ec) { + cleanUp(); + if (ec == boost::asio::error::operation_aborted) + { + // expected, we were canceled before the timer completed. + return; + } + BMCWEB_LOG_ERROR + << "Timed out waiting for firmware object being created"; + BMCWEB_LOG_ERROR + << "FW image may has already been uploaded to server"; + if (ec) + { + BMCWEB_LOG_ERROR << "Async_wait failed" << ec; + return; + } + if (asyncResp) + { + redfish::messages::internalError(asyncResp->res); + } + }); + + auto callback = [asyncResp](sdbusplus::message::message &m) { + BMCWEB_LOG_DEBUG << "Match fired"; + softwareInterfaceAdded(asyncResp, m); + }; + + fwUpdateInProgress = true; + + fwUpdateMatcher = std::make_unique( + *crow::connections::systemBus, + "interface='org.freedesktop.DBus.ObjectManager',type='signal'," + "member='InterfacesAdded',path='/xyz/openbmc_project/software'", + callback); +} + +/** + * UpdateServiceActionsSimpleUpdate class supports handle POST method for + * SimpleUpdate action. + */ +class UpdateServiceActionsSimpleUpdate : public Node +{ + public: + UpdateServiceActionsSimpleUpdate(CrowApp &app) : + Node(app, + "/redfish/v1/UpdateService/Actions/UpdateService.SimpleUpdate/") + { + entityPrivileges = { + {boost::beast::http::verb::get, {{"Login"}}}, + {boost::beast::http::verb::head, {{"Login"}}}, + {boost::beast::http::verb::patch, {{"ConfigureManager"}}}, + {boost::beast::http::verb::put, {{"ConfigureComponents"}}}, + {boost::beast::http::verb::delete_, {{"ConfigureComponents"}}}, + {boost::beast::http::verb::post, {{"ConfigureComponents"}}}}; + } + + private: + void doPost(crow::Response &res, const crow::Request &req, + const std::vector ¶ms) override + { + std::optional transferProtocol; + std::string imageURI; + std::shared_ptr asyncResp = std::make_shared(res); + + BMCWEB_LOG_DEBUG << "Enter UpdateService.SimpleUpdate doPost"; + + // User can pass in both TransferProtocol and ImageURI parameters or + // they can pass in just the ImageURI with the transfer protocl embedded + // within it. + // 1) TransferProtocol:TFTP ImageURI:1.1.1.1/myfile.bin + // 2) ImageURI:tftp://1.1.1.1/myfile.bin + + if (!json_util::readJson(req, asyncResp->res, "TransferProtocol", + transferProtocol, "ImageURI", imageURI)) + { + BMCWEB_LOG_DEBUG + << "Missing TransferProtocol or ImageURI parameter"; + return; + } + if (!transferProtocol) + { + // Must be option 2 + // Verify ImageURI has transfer protocol in it + size_t separator = imageURI.find(":"); + if ((separator == std::string::npos) || + ((separator + 1) > imageURI.size())) + { + messages::actionParameterValueTypeError( + asyncResp->res, imageURI, "ImageURI", + "UpdateService.SimpleUpdate"); + BMCWEB_LOG_ERROR << "ImageURI missing transfer protocol: " + << imageURI; + return; + } + transferProtocol = imageURI.substr(0, separator); + // Ensure protocol is upper case for a common comparison path below + boost::to_upper(*transferProtocol); + BMCWEB_LOG_DEBUG << "Encoded transfer protocol " + << *transferProtocol; + + // Adjust imageURI to not have the protocol on it for parsing + // below + // ex. tftp://1.1.1.1/myfile.bin -> 1.1.1.1/myfile.bin + imageURI = imageURI.substr(separator + 3); + BMCWEB_LOG_DEBUG << "Adjusted imageUri " << imageURI; + } + + // OpenBMC currently only supports TFTP + if (*transferProtocol != "TFTP") + { + messages::actionParameterNotSupported(asyncResp->res, + "TransferProtocol", + "UpdateService.SimpleUpdate"); + BMCWEB_LOG_ERROR << "Request incorrect protocol parameter: " + << *transferProtocol; + return; + } + + // Format should be / for imageURI + size_t separator = imageURI.find("/"); + if ((separator == std::string::npos) || + ((separator + 1) > imageURI.size())) + { + messages::actionParameterValueTypeError( + asyncResp->res, imageURI, "ImageURI", + "UpdateService.SimpleUpdate"); + BMCWEB_LOG_ERROR << "Invalid ImageURI: " << imageURI; + return; + } + + std::string tftpServer = imageURI.substr(0, separator); + std::string fwFile = imageURI.substr(separator + 1); + BMCWEB_LOG_DEBUG << "Server: " << tftpServer + " File: " << fwFile; + + // Setup callback for when new software detected + // Give TFTP 2 minutes to complete + monitorForSoftwareAvailable(nullptr, req, 120); + + // TFTP can take up to 2 minutes depending on image size and + // connection speed. Return to caller as soon as the TFTP operation + // has been started. The callback above will ensure the activate + // is started once the download has completed + redfish::messages::success(asyncResp->res); + + // Call TFTP service + crow::connections::systemBus->async_method_call( + [](const boost::system::error_code ec) { + if (ec) + { + // messages::internalError(asyncResp->res); + cleanUp(); + BMCWEB_LOG_DEBUG << "error_code = " << ec; + BMCWEB_LOG_DEBUG << "error msg = " << ec.message(); + } + else + { + BMCWEB_LOG_DEBUG << "Call to DownloaViaTFTP Success"; + } + }, + "xyz.openbmc_project.Software.Download", + "/xyz/openbmc_project/software", "xyz.openbmc_project.Common.TFTP", + "DownloadViaTFTP", fwFile, tftpServer); + + BMCWEB_LOG_DEBUG << "Exit UpdateService.SimpleUpdate doPost"; + } +}; class UpdateService : public Node { @@ -43,7 +337,8 @@ class UpdateService : public Node void doGet(crow::Response &res, const crow::Request &req, const std::vector ¶ms) override { - res.jsonValue["@odata.type"] = "#UpdateService.v1_2_0.UpdateService"; + std::shared_ptr aResp = std::make_shared(res); + res.jsonValue["@odata.type"] = "#UpdateService.v1_4_0.UpdateService"; res.jsonValue["@odata.id"] = "/redfish/v1/UpdateService"; res.jsonValue["@odata.context"] = "/redfish/v1/$metadata#UpdateService.UpdateService"; @@ -55,117 +350,142 @@ class UpdateService : public Node res.jsonValue["ServiceEnabled"] = true; res.jsonValue["FirmwareInventory"] = { {"@odata.id", "/redfish/v1/UpdateService/FirmwareInventory"}}; - res.end(); - } - static void activateImage(const std::string &objPath) - { +#ifdef BMCWEB_INSECURE_ENABLE_REDFISH_FW_TFTP_UPDATE + // Update Actions object. + nlohmann::json &updateSvcSimpleUpdate = + res.jsonValue["Actions"]["#UpdateService.SimpleUpdate"]; + updateSvcSimpleUpdate["target"] = + "/redfish/v1/UpdateService/Actions/UpdateService.SimpleUpdate"; + updateSvcSimpleUpdate["TransferProtocol@Redfish.AllowableValues"] = { + "TFTP"}; +#endif + // Get the current ApplyTime value crow::connections::systemBus->async_method_call( - [objPath](const boost::system::error_code error_code) { - if (error_code) + [aResp](const boost::system::error_code ec, + const std::variant &applyTime) { + if (ec) + { + BMCWEB_LOG_DEBUG << "DBUS response error " << ec; + messages::internalError(aResp->res); + return; + } + + const std::string *s = std::get_if(&applyTime); + if (s == nullptr) + { + return; + } + // Store the ApplyTime Value + if (*s == "xyz.openbmc_project.Software.ApplyTime." + "RequestedApplyTimes.Immediate") { - BMCWEB_LOG_DEBUG << "error_code = " << error_code; - BMCWEB_LOG_DEBUG << "error msg = " << error_code.message(); + aResp->res.jsonValue["HttpPushUriOptions"] + ["HttpPushUriApplyTime"]["ApplyTime"] = + "Immediate"; + } + else if (*s == "xyz.openbmc_project.Software.ApplyTime." + "RequestedApplyTimes.OnReset") + { + aResp->res.jsonValue["HttpPushUriOptions"] + ["HttpPushUriApplyTime"]["ApplyTime"] = + "OnReset"; } }, - "xyz.openbmc_project.Software.BMC.Updater", objPath, - "org.freedesktop.DBus.Properties", "Set", - "xyz.openbmc_project.Software.Activation", "RequestedActivation", - std::variant( - "xyz.openbmc_project.Software.Activation.RequestedActivations." - "Active")); + "xyz.openbmc_project.Settings", + "/xyz/openbmc_project/software/apply_time", + "org.freedesktop.DBus.Properties", "Get", + "xyz.openbmc_project.Software.ApplyTime", "RequestedApplyTime"); } - void doPost(crow::Response &res, const crow::Request &req, - const std::vector ¶ms) override + + void doPatch(crow::Response &res, const crow::Request &req, + const std::vector ¶ms) override { - BMCWEB_LOG_DEBUG << "doPost..."; + BMCWEB_LOG_DEBUG << "doPatch..."; - // Only allow one FW update at a time - if (fwUpdateMatcher != nullptr) + std::shared_ptr asyncResp = std::make_shared(res); + + std::optional pushUriOptions; + if (!json_util::readJson(req, res, "HttpPushUriOptions", + pushUriOptions)) { - res.addHeader("Retry-After", "30"); - messages::serviceTemporarilyUnavailable(res, "3"); - res.end(); return; } - // Make this const static so it survives outside this method - static boost::asio::deadline_timer timeout( - *req.ioService, boost::posix_time::seconds(5)); - timeout.expires_from_now(boost::posix_time::seconds(5)); - - timeout.async_wait([&res](const boost::system::error_code &ec) { - fwUpdateMatcher = nullptr; - if (ec == boost::asio::error::operation_aborted) - { - // expected, we were canceled before the timer completed. - return; - } - BMCWEB_LOG_ERROR - << "Timed out waiting for firmware object being created"; - BMCWEB_LOG_ERROR - << "FW image may has already been uploaded to server"; - if (ec) + if (pushUriOptions) + { + std::optional pushUriApplyTime; + if (!json_util::readJson(*pushUriOptions, res, + "HttpPushUriApplyTime", pushUriApplyTime)) { - BMCWEB_LOG_ERROR << "Async_wait failed" << ec; return; } - redfish::messages::internalError(res); - res.end(); - }); - - auto callback = [&res](sdbusplus::message::message &m) { - BMCWEB_LOG_DEBUG << "Match fired"; - bool flag = false; - - if (m.is_method_error()) - { - BMCWEB_LOG_DEBUG << "Dbus method error!!!"; - res.end(); - return; - } - std::vector>>>> - interfacesProperties; - - sdbusplus::message::object_path objPath; - - m.read(objPath, interfacesProperties); // Read in the object path - // that was just created - // std::string str_objpath = objPath.str; // keep a copy for - // constructing response message - BMCWEB_LOG_DEBUG << "obj path = " << objPath.str; // str_objpath; - for (auto &interface : interfacesProperties) + if (pushUriApplyTime) { - BMCWEB_LOG_DEBUG << "interface = " << interface.first; + std::optional applyTime; + if (!json_util::readJson(*pushUriApplyTime, res, "ApplyTime", + applyTime)) + { + return; + } - if (interface.first == - "xyz.openbmc_project.Software.Activation") + if (applyTime) { - // cancel timer only when - // xyz.openbmc_project.Software.Activation interface is - // added - boost::system::error_code ec; - timeout.cancel(ec); - if (ec) + std::string applyTimeNewVal; + if (applyTime == "Immediate") + { + applyTimeNewVal = + "xyz.openbmc_project.Software.ApplyTime." + "RequestedApplyTimes.Immediate"; + } + else if (applyTime == "OnReset") { - BMCWEB_LOG_ERROR << "error canceling timer " << ec; + applyTimeNewVal = + "xyz.openbmc_project.Software.ApplyTime." + "RequestedApplyTimes.OnReset"; } - UpdateService::activateImage(objPath.str); // str_objpath); - redfish::messages::success(res); - BMCWEB_LOG_DEBUG << "ending response"; - res.end(); - fwUpdateMatcher = nullptr; + else + { + BMCWEB_LOG_INFO + << "ApplyTime value is not in the list of " + "acceptable values"; + messages::propertyValueNotInList( + asyncResp->res, *applyTime, "ApplyTime"); + return; + } + + // Set the requested image apply time value + crow::connections::systemBus->async_method_call( + [asyncResp](const boost::system::error_code ec) { + if (ec) + { + BMCWEB_LOG_ERROR << "D-Bus responses error: " + << ec; + messages::internalError(asyncResp->res); + return; + } + messages::success(asyncResp->res); + }, + "xyz.openbmc_project.Settings", + "/xyz/openbmc_project/software/apply_time", + "org.freedesktop.DBus.Properties", "Set", + "xyz.openbmc_project.Software.ApplyTime", + "RequestedApplyTime", + std::variant{applyTimeNewVal}); } } - }; + } + } - fwUpdateMatcher = std::make_unique( - *crow::connections::systemBus, - "interface='org.freedesktop.DBus.ObjectManager',type='signal'," - "member='InterfacesAdded',path='/xyz/openbmc_project/software'", - callback); + void doPost(crow::Response &res, const crow::Request &req, + const std::vector ¶ms) override + { + BMCWEB_LOG_DEBUG << "doPost..."; + + std::shared_ptr asyncResp = std::make_shared(res); + + // Setup callback for when new software detected + monitorForSoftwareAvailable(asyncResp, req); std::string filepath( "/tmp/images/" + @@ -226,10 +546,6 @@ class SoftwareInventoryCollection : public Node for (auto &obj : subtree) { - const std::vector< - std::pair>> - &connections = obj.second; - // if can't parse fw id then return std::size_t idPos; if ((idPos = obj.first.rfind("/")) == std::string::npos) @@ -240,64 +556,24 @@ class SoftwareInventoryCollection : public Node } std::string swId = obj.first.substr(idPos + 1); - for (auto &conn : connections) - { - const std::string &connectionName = conn.first; - BMCWEB_LOG_DEBUG << "connectionName = " - << connectionName; - BMCWEB_LOG_DEBUG << "obj.first = " << obj.first; - - crow::connections::systemBus->async_method_call( - [asyncResp, - swId](const boost::system::error_code error_code, - const VariantType &activation) { - BMCWEB_LOG_DEBUG - << "safe returned in lambda function"; - if (error_code) - { - messages::internalError(asyncResp->res); - return; - } - - const std::string *swActivationStatus = - std::get_if(&activation); - if (swActivationStatus == nullptr) - { - messages::internalError(asyncResp->res); - return; - } - if (swActivationStatus != nullptr && - *swActivationStatus != - "xyz.openbmc_project.Software." - "Activation." - "Activations.Active") - { - // The activation status of this software is - // not currently active, so does not need to - // be listed in the response - return; - } - nlohmann::json &members = - asyncResp->res.jsonValue["Members"]; - members.push_back( - {{"@odata.id", "/redfish/v1/UpdateService/" - "FirmwareInventory/" + - swId}}); - asyncResp->res - .jsonValue["Members@odata.count"] = - members.size(); - }, - connectionName, obj.first, - "org.freedesktop.DBus.Properties", "Get", - "xyz.openbmc_project.Software.Activation", - "Activation"); - } + nlohmann::json &members = + asyncResp->res.jsonValue["Members"]; + members.push_back( + {{"@odata.id", "/redfish/v1/UpdateService/" + "FirmwareInventory/" + + swId}}); + asyncResp->res.jsonValue["Members@odata.count"] = + members.size(); } }, + // Note that only firmware levels associated with a device are + // stored under /xyz/openbmc_project/software therefore to ensure + // only real FirmwareInventory items are returned, this full object + // path must be used here as input to mapper "xyz.openbmc_project.ObjectMapper", "/xyz/openbmc_project/object_mapper", "xyz.openbmc_project.ObjectMapper", "GetSubTree", - "/xyz/openbmc_project/software", int32_t(1), + "/xyz/openbmc_project/software", static_cast(0), std::array{ "xyz.openbmc_project.Software.Version"}); } @@ -321,19 +597,35 @@ class SoftwareInventory : public Node } private: + /* Fill related item links (i.e. bmc, bios) in for inventory */ + static void getRelatedItems(std::shared_ptr aResp, + const std::string &purpose) + { + if (purpose == fw_util::bmcPurpose) + { + nlohmann::json &members = aResp->res.jsonValue["RelatedItem"]; + members.push_back({{"@odata.id", "/redfish/v1/Managers/bmc"}}); + aResp->res.jsonValue["Members@odata.count"] = members.size(); + } + else if (purpose == fw_util::biosPurpose) + { + // TODO(geissonator) Need BIOS schema support added for this + // to be valid + // nlohmann::json &members = aResp->res.jsonValue["RelatedItem"]; + // members.push_back( + // {{"@odata.id", "/redfish/v1/Systems/system/BIOS"}}); + // aResp->res.jsonValue["Members@odata.count"] = members.size(); + } + else + { + BMCWEB_LOG_ERROR << "Unknown software purpose " << purpose; + } + } + void doGet(crow::Response &res, const crow::Request &req, const std::vector ¶ms) override { std::shared_ptr asyncResp = std::make_shared(res); - res.jsonValue["@odata.type"] = - "#SoftwareInventory.v1_1_0.SoftwareInventory"; - res.jsonValue["@odata.context"] = - "/redfish/v1/$metadata#SoftwareInventory.SoftwareInventory"; - res.jsonValue["Name"] = "Software Inventory"; - res.jsonValue["Updateable"] = false; - res.jsonValue["Status"]["Health"] = "OK"; - res.jsonValue["Status"]["HealthRollup"] = "OK"; - res.jsonValue["Status"]["State"] = "Enabled"; if (params.size() != 1) { @@ -362,6 +654,8 @@ class SoftwareInventory : public Node return; } + // Ensure we find our input swId, otherwise return an error + bool found = false; for (const std::pair< std::string, std::vector< @@ -378,6 +672,9 @@ class SoftwareInventory : public Node continue; } + found = true; + fw_util::getFwStatus(asyncResp, swId, obj.second[0].first); + crow::connections::systemBus->async_method_call( [asyncResp, swId](const boost::system::error_code error_code, @@ -438,16 +735,53 @@ class SoftwareInventory : public Node } asyncResp->res.jsonValue["Version"] = *version; asyncResp->res.jsonValue["Id"] = *swId; + + // swInvPurpose is of format: + // xyz.openbmc_project.Software.Version.VersionPurpose.ABC + // Translate this to "ABC image" + size_t endDesc = swInvPurpose->rfind("."); + if (endDesc == std::string::npos) + { + messages::internalError(asyncResp->res); + return; + } + endDesc++; + if (endDesc >= swInvPurpose->size()) + { + messages::internalError(asyncResp->res); + return; + } + + std::string formatDesc = + swInvPurpose->substr(endDesc); + asyncResp->res.jsonValue["Description"] = + formatDesc + " image"; + getRelatedItems(asyncResp, *swInvPurpose); }, obj.second[0].first, obj.first, "org.freedesktop.DBus.Properties", "GetAll", "xyz.openbmc_project.Software.Version"); } + if (!found) + { + BMCWEB_LOG_ERROR << "Input swID " + *swId + " not found!"; + messages::resourceMissingAtURI( + asyncResp->res, + "/redfish/v1/UpdateService/FirmwareInventory/" + *swId); + return; + } + asyncResp->res.jsonValue["@odata.type"] = + "#SoftwareInventory.v1_1_0.SoftwareInventory"; + asyncResp->res.jsonValue["@odata.context"] = + "/redfish/v1/$metadata#SoftwareInventory.SoftwareInventory"; + asyncResp->res.jsonValue["Name"] = "Software Inventory"; + asyncResp->res.jsonValue["Updateable"] = false; + asyncResp->res.jsonValue["Status"]["HealthRollup"] = "OK"; }, "xyz.openbmc_project.ObjectMapper", "/xyz/openbmc_project/object_mapper", - "xyz.openbmc_project.ObjectMapper", "GetSubTree", - "/xyz/openbmc_project/software", int32_t(1), + "xyz.openbmc_project.ObjectMapper", "GetSubTree", "/", + static_cast(0), std::array{ "xyz.openbmc_project.Software.Version"}); } diff --git a/Contrib-Inspur/bmcweb/redfish-core/lib/virtual_media.hpp b/Contrib-Inspur/bmcweb/redfish-core/lib/virtual_media.hpp new file mode 100644 index 00000000..f95e91dc --- /dev/null +++ b/Contrib-Inspur/bmcweb/redfish-core/lib/virtual_media.hpp @@ -0,0 +1,751 @@ +/* +// Copyright (c) 2018 Intel Corporation +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +*/ +#pragma once + +#include +#include +#include +// for GetObjectType and ManagedObjectType +#include + +namespace redfish + +{ + +/** + * @brief Read all known properties from VM object interfaces + */ +static void vmParseInterfaceObject(const DbusInterfaceType &interface, + std::shared_ptr aResp) +{ + const auto mountPointIface = + interface.find("xyz.openbmc_project.VirtualMedia.MountPoint"); + if (mountPointIface == interface.cend()) + { + BMCWEB_LOG_DEBUG << "Interface MountPoint not found"; + return; + } + + const auto processIface = + interface.find("xyz.openbmc_project.VirtualMedia.Process"); + if (processIface == interface.cend()) + { + BMCWEB_LOG_DEBUG << "Interface Process not found"; + return; + } + + const auto endpointIdProperty = mountPointIface->second.find("EndpointId"); + if (endpointIdProperty == mountPointIface->second.cend()) + { + BMCWEB_LOG_DEBUG << "Property EndpointId not found"; + return; + } + + const auto activeProperty = processIface->second.find("Active"); + if (activeProperty == processIface->second.cend()) + { + BMCWEB_LOG_DEBUG << "Property Active not found"; + return; + } + + const bool *activeValue = std::get_if(&activeProperty->second); + if (!activeValue) + { + BMCWEB_LOG_DEBUG << "Value Active not found"; + return; + } + + const std::string *endpointIdValue = + std::get_if(&endpointIdProperty->second); + if (endpointIdValue) + { + if (!endpointIdValue->empty()) + { + // Proxy mode + aResp->res.jsonValue["Oem"]["OpenBMC"]["WebSocketEndpoint"] = + *endpointIdValue; + aResp->res.jsonValue["TransferProtocolType"] = "OEM"; + aResp->res.jsonValue["Inserted"] = *activeValue; + if (*activeValue == true) + { + aResp->res.jsonValue["ConnectedVia"] = "Applet"; + } + } + else + { + // Legacy mode + const auto imageUrlProperty = + mountPointIface->second.find("ImageURL"); + if (imageUrlProperty != processIface->second.cend()) + { + const std::string *imageUrlValue = + std::get_if(&imageUrlProperty->second); + if (imageUrlValue && !imageUrlValue->empty()) + { + aResp->res.jsonValue["ImageName"] = *imageUrlValue; + aResp->res.jsonValue["Inserted"] = *activeValue; + if (*activeValue == true) + { + aResp->res.jsonValue["ConnectedVia"] = "URI"; + } + } + } + } + } +} + +/** + * @brief Fill template for Virtual Media Item. + */ +static nlohmann::json vmItemTemplate(const std::string &name, + const std::string &resName) +{ + nlohmann::json item; + item["@odata.id"] = + "/redfish/v1/Managers/" + name + "/VirtualMedia/" + resName; + item["@odata.type"] = "#VirtualMedia.v1_3_0.VirtualMedia"; + item["@odata.context"] = "/redfish/v1/$metadata#VirtualMedia.VirtualMedia"; + item["Name"] = "Virtual Removable Media"; + item["Id"] = resName; + item["Image"] = nullptr; + item["Inserted"] = nullptr; + item["ImageName"] = nullptr; + item["WriteProtected"] = true; + item["ConnectedVia"] = "NotConnected"; + item["MediaTypes"] = {"CD", "USBStick"}; + item["TransferMethod"] = "Stream"; + item["TransferProtocolType"] = nullptr; + item["Oem"]["OpenBmc"]["WebSocketEndpoint"] = nullptr; + item["Oem"]["OpenBMC"]["@odata.type"] = + "#OemVirtualMedia.v1_0_0.VirtualMedia"; + + return item; +} + +/** + * @brief Fills collection data + */ +static void getVmResourceList(std::shared_ptr aResp, + const std::string &service, + const std::string &name) +{ + BMCWEB_LOG_DEBUG << "Get available Virtual Media resources."; + crow::connections::systemBus->async_method_call( + [name, aResp{std::move(aResp)}](const boost::system::error_code ec, + ManagedObjectType &subtree) { + if (ec) + { + BMCWEB_LOG_DEBUG << "DBUS response error"; + return; + } + nlohmann::json &members = aResp->res.jsonValue["Members"]; + members = nlohmann::json::array(); + + for (const auto &object : subtree) + { + nlohmann::json item; + const std::string &path = + static_cast(object.first); + std::size_t lastIndex = path.rfind("/"); + if (lastIndex == std::string::npos) + { + continue; + } + + lastIndex += 1; + + item["@odata.id"] = "/redfish/v1/Managers/" + name + + "/VirtualMedia/" + path.substr(lastIndex); + + members.emplace_back(std::move(item)); + } + aResp->res.jsonValue["Members@odata.count"] = members.size(); + }, + service, "/xyz/openbmc_project/VirtualMedia", + "org.freedesktop.DBus.ObjectManager", "GetManagedObjects"); +} + +/** + * @brief Fills data for specific resource + */ +static void getVmData(std::shared_ptr aResp, + const std::string &service, const std::string &name, + const std::string &resName) +{ + BMCWEB_LOG_DEBUG << "Get Virtual Media resource data."; + + crow::connections::systemBus->async_method_call( + [resName, name, aResp](const boost::system::error_code ec, + ManagedObjectType &subtree) { + if (ec) + { + BMCWEB_LOG_DEBUG << "DBUS response error"; + + return; + } + + for (auto &item : subtree) + { + const std::string &path = + static_cast(item.first); + + std::size_t lastItem = path.rfind("/"); + if (lastItem == std::string::npos) + { + continue; + } + + if (path.substr(lastItem + 1) != resName) + { + continue; + } + + aResp->res.jsonValue = vmItemTemplate(name, resName); + + // Check if dbus path is Legacy type + if (path.find("VirtualMedia/Legacy") != std::string::npos) + { + aResp->res.jsonValue["Actions"]["#VirtualMedia.InsertMedia"] + ["target"] = + "/redfish/v1/Managers/" + name + "/VirtualMedia/" + + resName + "/Actions/VirtualMedia.InsertMedia"; + } + + vmParseInterfaceObject(item.second, aResp); + + aResp->res.jsonValue["Actions"]["#VirtualMedia.EjectMedia"] + ["target"] = + "/redfish/v1/Managers/" + name + "/VirtualMedia/" + + resName + "/Actions/VirtualMedia.EjectMedia"; + + return; + } + + messages::resourceNotFound( + aResp->res, "#VirtualMedia.v1_3_0.VirtualMedia", resName); + }, + service, "/xyz/openbmc_project/VirtualMedia", + "org.freedesktop.DBus.ObjectManager", "GetManagedObjects"); +} + +/** + @brief InsertMedia action class + */ +class VirtualMediaActionInsertMedia : public Node +{ + public: + VirtualMediaActionInsertMedia(CrowApp &app) : + Node(app, + "/redfish/v1/Managers//VirtualMedia//Actions/" + "VirtualMedia.InsertMedia", + std::string(), std::string()) + { + entityPrivileges = { + {boost::beast::http::verb::get, {{"Login"}}}, + {boost::beast::http::verb::head, {{"Login"}}}, + {boost::beast::http::verb::patch, {{"ConfigureManager"}}}, + {boost::beast::http::verb::put, {{"ConfigureManager"}}}, + {boost::beast::http::verb::delete_, {{"ConfigureManager"}}}, + {boost::beast::http::verb::post, {{"ConfigureManager"}}}}; + } + + private: + /** + * @brief Function handles POST method request. + * + * Analyzes POST body message before sends Reset request data to dbus. + */ + void doPost(crow::Response &res, const crow::Request &req, + const std::vector ¶ms) override + { + auto aResp = std::make_shared(res); + + if (params.size() != 2) + { + messages::internalError(res); + return; + } + + // take resource name from URL + const std::string &resName = params[1]; + + if (params[0] != "bmc") + { + messages::resourceNotFound(res, "VirtualMedia.Insert", resName); + + return; + } + + crow::connections::systemBus->async_method_call( + [this, aResp{std::move(aResp)}, req, + resName](const boost::system::error_code ec, + const GetObjectType &getObjectType) { + if (ec) + { + BMCWEB_LOG_ERROR << "ObjectMapper::GetObject call failed: " + << ec; + messages::internalError(aResp->res); + + return; + } + std::string service = getObjectType.begin()->first; + BMCWEB_LOG_DEBUG << "GetObjectType: " << service; + + crow::connections::systemBus->async_method_call( + [this, service, resName, req, aResp{std::move(aResp)}]( + const boost::system::error_code ec, + ManagedObjectType &subtree) { + if (ec) + { + BMCWEB_LOG_DEBUG << "DBUS response error"; + + return; + } + + for (const auto &object : subtree) + { + const std::string &path = + static_cast(object.first); + + std::size_t lastIndex = path.rfind("/"); + if (lastIndex == std::string::npos) + { + continue; + } + + lastIndex += 1; + + if (path.substr(lastIndex) == resName) + { + lastIndex = path.rfind("Proxy"); + if (lastIndex != std::string::npos) + { + // Not possible in proxy mode + BMCWEB_LOG_DEBUG << "InsertMedia not " + "allowed in proxy mode"; + messages::resourceNotFound( + aResp->res, "VirtualMedia.InsertMedia", + resName); + + return; + } + + lastIndex = path.rfind("Legacy"); + if (lastIndex != std::string::npos) + { + // Legacy mode + std::string imageUrl; + + // Read obligatory paramters (url of image) + if (!json_util::readJson(req, aResp->res, + "Image", imageUrl)) + { + BMCWEB_LOG_DEBUG + << "Image is not provided"; + return; + } + + // must not be empty + if (imageUrl.size() == 0) + { + BMCWEB_LOG_ERROR + << "Request action parameter " + "Image is empty."; + messages::propertyValueFormatError( + aResp->res, "", "Image"); + + return; + } + + // manager is irrelevant for VirtualMedia + // dbus calls + doVmAction(std::move(aResp), service, + resName, true, imageUrl); + + return; + } + } + } + BMCWEB_LOG_DEBUG << "Parent item not found"; + messages::resourceNotFound(aResp->res, "VirtualMedia", + resName); + }, + service, "/xyz/openbmc_project/VirtualMedia", + "org.freedesktop.DBus.ObjectManager", "GetManagedObjects"); + }, + "xyz.openbmc_project.ObjectMapper", + "/xyz/openbmc_project/object_mapper", + "xyz.openbmc_project.ObjectMapper", "GetObject", + "/xyz/openbmc_project/VirtualMedia", std::array()); + } + + /** + * @brief Function transceives data with dbus directly. + * + * All BMC state properties will be retrieved before sending reset request. + */ + void doVmAction(std::shared_ptr asyncResp, + const std::string &service, const std::string &name, + bool legacy, const std::string &imageUrl) + { + + // Legacy mount requires parameter with image + if (legacy) + { + crow::connections::systemBus->async_method_call( + [asyncResp](const boost::system::error_code ec) { + if (ec) + { + BMCWEB_LOG_ERROR << "Bad D-Bus request error: " << ec; + messages::internalError(asyncResp->res); + + return; + } + }, + service, "/xyz/openbmc_project/VirtualMedia/Legacy/" + name, + "xyz.openbmc_project.VirtualMedia.Legacy", "Mount", imageUrl); + } + else // proxy + { + crow::connections::systemBus->async_method_call( + [asyncResp](const boost::system::error_code ec) { + if (ec) + { + BMCWEB_LOG_ERROR << "Bad D-Bus request error: " << ec; + messages::internalError(asyncResp->res); + + return; + } + }, + service, "/xyz/openbmc_project/VirtualMedia/Proxy/" + name, + "xyz.openbmc_project.VirtualMedia.Proxy", "Mount"); + } + } +}; + +/** + @brief EjectMedia action class + */ +class VirtualMediaActionEjectMedia : public Node +{ + public: + VirtualMediaActionEjectMedia(CrowApp &app) : + Node(app, + "/redfish/v1/Managers//VirtualMedia//Actions/" + "VirtualMedia.EjectMedia", + std::string(), std::string()) + { + entityPrivileges = { + {boost::beast::http::verb::get, {{"Login"}}}, + {boost::beast::http::verb::head, {{"Login"}}}, + {boost::beast::http::verb::patch, {{"ConfigureManager"}}}, + {boost::beast::http::verb::put, {{"ConfigureManager"}}}, + {boost::beast::http::verb::delete_, {{"ConfigureManager"}}}, + {boost::beast::http::verb::post, {{"ConfigureManager"}}}}; + } + + private: + /** + * @brief Function handles POST method request. + * + * Analyzes POST body message before sends Reset request data to dbus. + */ + void doPost(crow::Response &res, const crow::Request &req, + const std::vector ¶ms) override + { + auto aResp = std::make_shared(res); + + if (params.size() != 2) + { + messages::internalError(res); + return; + } + + // take resource name from URL + const std::string &resName = params[1]; + + if (params[0] != "bmc") + { + messages::resourceNotFound(res, "VirtualMedia.Eject", resName); + + return; + } + + crow::connections::systemBus->async_method_call( + [this, aResp{std::move(aResp)}, req, + resName](const boost::system::error_code ec, + const GetObjectType &getObjectType) { + if (ec) + { + BMCWEB_LOG_ERROR << "ObjectMapper::GetObject call failed: " + << ec; + messages::internalError(aResp->res); + + return; + } + std::string service = getObjectType.begin()->first; + BMCWEB_LOG_DEBUG << "GetObjectType: " << service; + + crow::connections::systemBus->async_method_call( + [this, resName, service, req, aResp{std::move(aResp)}]( + const boost::system::error_code ec, + ManagedObjectType &subtree) { + if (ec) + { + BMCWEB_LOG_DEBUG << "DBUS response error"; + + return; + } + + for (const auto &object : subtree) + { + const std::string &path = + static_cast(object.first); + + std::size_t lastIndex = path.rfind("/"); + if (lastIndex == std::string::npos) + { + continue; + } + + lastIndex += 1; + + if (path.substr(lastIndex) == resName) + { + lastIndex = path.rfind("Proxy"); + if (lastIndex != std::string::npos) + { + // Proxy mode + doVmAction(std::move(aResp), service, + resName, false); + } + + lastIndex = path.rfind("Legacy"); + if (lastIndex != std::string::npos) + { + // Legacy mode + doVmAction(std::move(aResp), service, + resName, true); + } + + return; + } + } + BMCWEB_LOG_DEBUG << "Parent item not found"; + messages::resourceNotFound(aResp->res, "VirtualMedia", + resName); + }, + service, "/xyz/openbmc_project/VirtualMedia", + "org.freedesktop.DBus.ObjectManager", "GetManagedObjects"); + }, + "xyz.openbmc_project.ObjectMapper", + "/xyz/openbmc_project/object_mapper", + "xyz.openbmc_project.ObjectMapper", "GetObject", + "/xyz/openbmc_project/VirtualMedia", std::array()); + } + + /** + * @brief Function transceives data with dbus directly. + * + * All BMC state properties will be retrieved before sending reset request. + */ + void doVmAction(std::shared_ptr asyncResp, + const std::string &service, const std::string &name, + bool legacy) + { + + // Legacy mount requires parameter with image + if (legacy) + { + crow::connections::systemBus->async_method_call( + [asyncResp](const boost::system::error_code ec) { + if (ec) + { + BMCWEB_LOG_ERROR << "Bad D-Bus request error: " << ec; + + messages::internalError(asyncResp->res); + return; + } + }, + service, "/xyz/openbmc_project/VirtualMedia/Legacy/" + name, + "xyz.openbmc_project.VirtualMedia.Legacy", "Unmount"); + } + else // proxy + { + crow::connections::systemBus->async_method_call( + [asyncResp](const boost::system::error_code ec) { + if (ec) + { + BMCWEB_LOG_ERROR << "Bad D-Bus request error: " << ec; + + messages::internalError(asyncResp->res); + return; + } + }, + service, "/xyz/openbmc_project/VirtualMedia/Proxy/" + name, + "xyz.openbmc_project.VirtualMedia.Proxy", "Unmount"); + } + } +}; + +class VirtualMediaCollection : public Node +{ + public: + /* + * Default Constructor + */ + VirtualMediaCollection(CrowApp &app) : + Node(app, "/redfish/v1/Managers//VirtualMedia/", std::string()) + { + entityPrivileges = { + {boost::beast::http::verb::get, {{"Login"}}}, + {boost::beast::http::verb::head, {{"Login"}}}, + {boost::beast::http::verb::patch, {{"ConfigureManager"}}}, + {boost::beast::http::verb::put, {{"ConfigureManager"}}}, + {boost::beast::http::verb::delete_, {{"ConfigureManager"}}}, + {boost::beast::http::verb::post, {{"ConfigureManager"}}}}; + } + + private: + /** + * Functions triggers appropriate requests on DBus + */ + void doGet(crow::Response &res, const crow::Request &req, + const std::vector ¶ms) override + { + auto asyncResp = std::make_shared(res); + + // Check if there is required param, truly entering this shall be + // impossible + if (params.size() != 1) + { + messages::internalError(res); + + return; + } + + const std::string &name = params[0]; + + if (name != "bmc") + { + messages::resourceNotFound(asyncResp->res, "VirtualMedia", name); + + return; + } + + res.jsonValue["@odata.type"] = + "#VirtualMediaCollection.VirtualMediaCollection"; + res.jsonValue["Name"] = "Virtual Media Services"; + res.jsonValue["@odata.context"] = + "/redfish/v1/" + "$metadata#VirtualMediaCollection.VirtualMediaCollection"; + res.jsonValue["@odata.id"] = + "/redfish/v1/Managers/" + name + "/VirtualMedia/"; + + crow::connections::systemBus->async_method_call( + [asyncResp, name](const boost::system::error_code ec, + const GetObjectType &getObjectType) { + if (ec) + { + BMCWEB_LOG_ERROR << "ObjectMapper::GetObject call failed: " + << ec; + messages::internalError(asyncResp->res); + + return; + } + std::string service = getObjectType.begin()->first; + BMCWEB_LOG_DEBUG << "GetObjectType: " << service; + + getVmResourceList(asyncResp, service, name); + }, + "xyz.openbmc_project.ObjectMapper", + "/xyz/openbmc_project/object_mapper", + "xyz.openbmc_project.ObjectMapper", "GetObject", + "/xyz/openbmc_project/VirtualMedia", std::array()); + } +}; + +class VirtualMedia : public Node +{ + public: + /* + * Default Constructor + */ + VirtualMedia(CrowApp &app) : + Node(app, "/redfish/v1/Managers//VirtualMedia//", + std::string(), std::string()) + { + entityPrivileges = { + {boost::beast::http::verb::get, {{"Login"}}}, + {boost::beast::http::verb::head, {{"Login"}}}, + {boost::beast::http::verb::patch, {{"ConfigureManager"}}}, + {boost::beast::http::verb::put, {{"ConfigureManager"}}}, + {boost::beast::http::verb::delete_, {{"ConfigureManager"}}}, + {boost::beast::http::verb::post, {{"ConfigureManager"}}}}; + } + + private: + /** + * Functions triggers appropriate requests on DBus + */ + void doGet(crow::Response &res, const crow::Request &req, + const std::vector ¶ms) override + { + // Check if there is required param, truly entering this shall be + // impossible + if (params.size() != 2) + { + messages::internalError(res); + + res.end(); + return; + } + const std::string &name = params[0]; + const std::string &resName = params[1]; + + auto asyncResp = std::make_shared(res); + + if (name != "bmc") + { + messages::resourceNotFound(asyncResp->res, "VirtualMedia", resName); + + return; + } + + crow::connections::systemBus->async_method_call( + [asyncResp, name, resName](const boost::system::error_code ec, + const GetObjectType &getObjectType) { + if (ec) + { + BMCWEB_LOG_ERROR << "ObjectMapper::GetObject call failed: " + << ec; + messages::internalError(asyncResp->res); + + return; + } + std::string service = getObjectType.begin()->first; + BMCWEB_LOG_DEBUG << "GetObjectType: " << service; + + getVmData(asyncResp, service, name, resName); + }, + "xyz.openbmc_project.ObjectMapper", + "/xyz/openbmc_project/object_mapper", + "xyz.openbmc_project.ObjectMapper", "GetObject", + "/xyz/openbmc_project/VirtualMedia", std::array()); + } +}; + +} // namespace redfish diff --git a/Contrib-Inspur/bmcweb/redfish-core/src/error_messages.cpp b/Contrib-Inspur/bmcweb/redfish-core/src/error_messages.cpp index 7c295078..0eda7b40 100644 --- a/Contrib-Inspur/bmcweb/redfish-core/src/error_messages.cpp +++ b/Contrib-Inspur/bmcweb/redfish-core/src/error_messages.cpp @@ -13,7 +13,7 @@ // See the License for the specific language governing permissions and // limitations under the License. */ -#include +#include #include @@ -32,27 +32,23 @@ static void addMessageToErrorJson(nlohmann::json& target, // first error message to the top level struct if (!error.is_object()) { - auto message_id_iterator = message.find("MessageId"); - if (message_id_iterator == message.end()) + auto messageIdIterator = message.find("MessageId"); + if (messageIdIterator == message.end()) { BMCWEB_LOG_CRITICAL << "Attempt to add error message without MessageId"; return; } - auto message_field_iterator = message.find("Message"); - if (message_field_iterator == message.end()) + auto messageFieldIterator = message.find("Message"); + if (messageFieldIterator == message.end()) { BMCWEB_LOG_CRITICAL << "Attempt to add error message without Message"; return; } - // clang-format off - error = { - {"code", *message_id_iterator}, - {"message", *message_field_iterator} - }; - // clang-format on + error = {{"code", *messageIdIterator}, + {"message", *messageFieldIterator}}; } else { @@ -65,13 +61,13 @@ static void addMessageToErrorJson(nlohmann::json& target, // This check could technically be done in in the default construction // branch above, but because we need the pointer to the extended info field // anyway, it's more efficient to do it here. - auto& extended_info = error[messages::messageAnnotation]; - if (!extended_info.is_array()) + auto& extendedInfo = error[messages::messageAnnotation]; + if (!extendedInfo.is_array()) { - extended_info = nlohmann::json::array(); + extendedInfo = nlohmann::json::array(); } - extended_info.push_back(message); + extendedInfo.push_back(message); } static void addMessageToJsonRoot(nlohmann::json& target, @@ -255,7 +251,7 @@ void unrecognizedRequestBody(crow::Response& res) void resourceAtUriUnauthorized(crow::Response& res, const std::string& arg1, const std::string& arg2) { - res.result(boost::beast::http::status::forbidden); + res.result(boost::beast::http::status::unauthorized); addMessageToErrorJson( res.jsonValue, nlohmann::json{ @@ -352,6 +348,7 @@ void propertyDuplicate(crow::Response& res, const std::string& arg1) */ void serviceTemporarilyUnavailable(crow::Response& res, const std::string& arg1) { + res.addHeader("Retry-After", arg1); res.result(boost::beast::http::status::service_unavailable); addMessageToErrorJson( res.jsonValue, @@ -1013,7 +1010,8 @@ void generalError(crow::Response& res) */ void success(crow::Response& res) { - res.result(boost::beast::http::status::ok); + // don't set res.result here because success is the default and any error + // should overwrite the default addMessageToJsonRoot( res.jsonValue, nlohmann::json{ diff --git a/Contrib-Inspur/bmcweb/scripts/parse_registries.py b/Contrib-Inspur/bmcweb/scripts/parse_registries.py new file mode 100644 index 00000000..572fe7ef --- /dev/null +++ b/Contrib-Inspur/bmcweb/scripts/parse_registries.py @@ -0,0 +1,98 @@ +#!/usr/bin/python3 +import requests +import zipfile +from io import BytesIO +import os +from collections import defaultdict +from collections import OrderedDict +from distutils.version import StrictVersion +import shutil +import json +import glob +import subprocess + +import xml.etree.ElementTree as ET + +REGISTRY_HEADER = '''/* +// Copyright (c) 2019 Intel Corporation +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +*/ +/**************************************************************** + * This is an auto-generated header which contains definitions + * for Redfish DMTF defined messages. + ***************************************************************/ +#pragma once +#include + +namespace redfish::message_registries::{} +{{ +''' + +SCRIPT_DIR = os.path.dirname(os.path.realpath(__file__)) + +include_path = os.path.realpath(os.path.join(SCRIPT_DIR, "..", "redfish-core", "include", "registries")) + +proxies = { + 'https': os.environ.get("https_proxy", None) +} + +base_file = requests.get('https://redfish.dmtf.org/registries/Base.1.4.0.json', proxies=proxies) +base_file.raise_for_status() +base_json = json.loads(base_file.text) +base_path = os.path.join(include_path, "base_message_registry.hpp") + +files = [(base_path, base_json, "base")] + +# Remove the old files +for file, json, namespace in files: + try: + os.remove(file) + except: + print("{} not found".format(file)) + + with open(file, 'w') as registry: + registry.write(REGISTRY_HEADER.format(namespace)) + # Parse the Registry header info + registry.write("const Header header = {") + registry.write("\"{}\",".format(json["@Redfish.Copyright"])) + registry.write("\"{}\",".format(json["@odata.type"])) + registry.write("\"{}\",".format(json["Id"])) + registry.write(".\"{}\",".format(json["Name"])) + registry.write("\"{}\",".format(json["Language"])) + registry.write("\"{}\",".format(json["Description"])) + registry.write(".\"{}\",".format(json["RegistryPrefix"])) + registry.write("\"{}\",".format(json["RegistryVersion"])) + registry.write("\"{}\",".format(json["OwningEntity"])) + registry.write("};") + + # Parse each Message entry + registry.write("const std::array registry = {") + for messageId, message in sorted(json["Messages"].items()): + registry.write("MessageEntry{") + registry.write("\"{}\",".format(messageId)) + registry.write("{") + registry.write("\"{}\",".format(message["Description"])) + registry.write("\"{}\",".format(message["Message"])) + registry.write("\"{}\",".format(message["Severity"])) + registry.write("{},".format(message["NumberOfArgs"])) + registry.write("{") + paramTypes = message.get("ParamTypes") + if paramTypes: + for paramType in paramTypes: + registry.write("\"{}\",".format(paramType)) + registry.write("},") + registry.write("\"{}\",".format(message["Resolution"])) + registry.write("}},") + registry.write("};}\n") + subprocess.check_call(["clang-format-6.0", "-i", file]) diff --git a/Contrib-Inspur/bmcweb/scripts/run_clang_tidy.py b/Contrib-Inspur/bmcweb/scripts/run_clang_tidy.py old mode 100755 new mode 100644 diff --git a/Contrib-Inspur/bmcweb/scripts/update_schemas.py b/Contrib-Inspur/bmcweb/scripts/update_schemas.py old mode 100755 new mode 100644 index 774d1ac9..1c3c6f11 --- a/Contrib-Inspur/bmcweb/scripts/update_schemas.py +++ b/Contrib-Inspur/bmcweb/scripts/update_schemas.py @@ -12,14 +12,19 @@ import xml.etree.ElementTree as ET +VERSION = "DSP8010_2019.2" + SCRIPT_DIR = os.path.dirname(os.path.realpath(__file__)) proxies = { 'https': os.environ.get("https_proxy", None) } -r = requests.get('https://www.dmtf.org/sites/default/files/standards/documents/' - 'DSP8010_2018.3.zip', proxies=proxies) +r = requests.get( + 'https://www.dmtf.org/sites/default/files/standards/documents/' + + VERSION + + '.zip', + proxies=proxies) r.raise_for_status() @@ -59,14 +64,24 @@ "\n") for zip_filepath in zip_ref.namelist(): - if zip_filepath.startswith('DSP8010_2018.3/csdl/') & (zip_filepath != "DSP8010_2018.3/csdl/"): + if zip_filepath.startswith(VERSION + + '/' + + VERSION + + '/csdl/') & (zip_filepath != VERSION + + "/csdl/") & (zip_filepath != VERSION + + '/' + + VERSION + + "/csdl/"): filename = os.path.basename(zip_filepath) with open(os.path.join(schema_path, filename), 'wb') as schema_file: metadata_index.write( - " \n") + " \n") content = zip_ref.read(zip_filepath) + content = content.replace(b'\r\n', b'\n') xml_root = ET.fromstring(content) for edmx_child in xml_root: @@ -91,23 +106,24 @@ """) - #TODO:Issue#32 There's a bug in the script that currently deletes this - #schema (because it's an OEM schema). Because it's the only one, and we - #don't update schemas very often, we just manually fix it. Need a - #permanent fix to the script. - metadata_index.write(" \n") + # TODO:Issue#32 There's a bug in the script that currently deletes this + # schema (because it's an OEM schema). Because it's the only one, and we + # don't update schemas very often, we just manually fix it. Need a + # permanent fix to the script. + metadata_index.write( + " \n") metadata_index.write(" \n") metadata_index.write(" \n") metadata_index.write("\n") schema_files = {} for zip_filepath in zip_ref.namelist(): - if zip_filepath.startswith('DSP8010_2018.3/json-schema/'): + if zip_filepath.startswith(os.path.join(VERSION, VERSION, 'json-schema/')): filename = os.path.basename(zip_filepath) filenamesplit = filename.split(".") if len(filenamesplit) == 3: thisSchemaVersion = schema_files.get(filenamesplit[0], None) - if thisSchemaVersion == None: + if thisSchemaVersion is None: schema_files[filenamesplit[0]] = filenamesplit[1] else: # need to see if we're a newer version. @@ -118,7 +134,7 @@ for schema, version in schema_files.items(): basename = schema + "." + version + ".json" - zip_filepath = os.path.join("DSP8010_2018.3/json-schema", basename) + zip_filepath = os.path.join(VERSION, VERSION, "json-schema", basename) schemadir = os.path.join(json_schema_path, schema) os.makedirs(schemadir) location_json = OrderedDict() @@ -134,20 +150,20 @@ index_json["@odata.type"] = "#JsonSchemaFile.v1_0_2.JsonSchemaFile" index_json["Name"] = schema + " Schema File" index_json["Schema"] = "#" + schema + "." + schema - index_json["Description"] = schema + " Schema File Location" + index_json["Description"] = schema + " Schema File Location" index_json["Id"] = schema - index_json["Languages"] = [ "en" ] + index_json["Languages"] = ["en"] index_json["Languages@odata.count"] = 1 - index_json["Location"] = [ location_json ] + index_json["Location"] = [location_json] index_json["Location@odata.count"] = 1 with open(os.path.join(schemadir, "index.json"), 'w') as schema_file: json.dump(index_json, schema_file, indent=4) with open(os.path.join(schemadir, schema + ".json"), 'wb') as schema_file: - schema_file.write(zip_ref.read(zip_filepath)) + schema_file.write(zip_ref.read(zip_filepath).replace(b'\r\n', b'\n')) with open(os.path.join(json_schema_path, "index.json"), 'w') as index_file: - members = [{"@odata.id": "/redfish/v1/JsonSchemas/" + schema + "/"} + members = [{"@odata.id": "/redfish/v1/JsonSchemas/" + schema} for schema in schema_files] members.sort(key=lambda x: x["@odata.id"]) diff --git a/Contrib-Inspur/bmcweb/scripts/websocket_test.py b/Contrib-Inspur/bmcweb/scripts/websocket_test.py index 8d9c8ae6..f99ddac8 100644 --- a/Contrib-Inspur/bmcweb/scripts/websocket_test.py +++ b/Contrib-Inspur/bmcweb/scripts/websocket_test.py @@ -1,21 +1,60 @@ -import json +#!/usr/bin/env python3 + +# Example of streaming sensor values from openbmc using the /subscribe api +# requires websockets package to be installed + +import asyncio import ssl -import websocket - -websocket.enableTrace(True) - -ws = websocket.create_connection('wss://10.243.48.93:18080/subscribe', - sslopt={"cert_reqs": ssl.CERT_NONE}, - cookie="XSRF-TOKEN=m0KhYNbxFmUEI4Sr1I22; SESSION=0mdwzoQy3gggQxW3vrEw") -request = json.dumps({ - "paths": ["/xyz/openbmc_project/logging", "/xyz/openbmc_project/sensors"], - "interfaces": ["xyz.openbmc_project.Logging.Entry", "xyz.openbmc_project.Sensor.Value"] -}) - -ws.send(request) -print("Sent") -print("Receiving...") -while True: - result = ws.recv() - print("Received '%s'" % result) -ws.close() +import websockets +import base64 +import json +import argparse + +parser = argparse.ArgumentParser() +parser.add_argument("--host", help="Host to connect to", required=True) +parser.add_argument( + "--username", help="Username to connect with", default="root") +parser.add_argument("--password", help="Password to use", default="0penBmc") + +args = parser.parse_args() + +sensor_type_map = { + "voltage": "Volts", + "power": "Watts", + "fan": "RPM", + "fan_tach": "RPM", + "temperature": "Degrees C", + "altitude": "Meters", + "current": "Amps", + "energy": "Joules", + "cfm": "CFM" +} + + +async def hello(): + uri = 'wss://{}/subscribe'.format(args.host) + ssl_context = ssl.SSLContext() + authbytes = "{}:{}".format(args.username, args.password).encode('ascii') + auth = "Basic {}".format(base64.b64encode(authbytes).decode('ascii')) + headers = {"Authorization": auth} + async with websockets.connect(uri, ssl=ssl_context, extra_headers=headers) as websocket: + request = json.dumps({ + "paths": ["/xyz/openbmc_project/sensors"], + "interfaces": ["xyz.openbmc_project.Sensor.Value"] + }) + await websocket.send(request) + + while True: + payload = await websocket.recv() + j = json.loads(payload) + path = j.get("path", "unknown/unknown") + name = path.split("/")[-1] + sensor_type = path.split("/")[-2] + units = sensor_type_map.get(sensor_type, "") + properties = j.get("properties", []) + value = properties.get("Value", None) + if value is None: + continue + print(f"{name:<20} {value:4.02f} {units}") + +asyncio.get_event_loop().run_until_complete(hello()) diff --git a/Contrib-Inspur/bmcweb/src/crow_getroutes_test.cpp b/Contrib-Inspur/bmcweb/src/crow_getroutes_test.cpp index e76d2214..20c14ea7 100644 --- a/Contrib-Inspur/bmcweb/src/crow_getroutes_test.cpp +++ b/Contrib-Inspur/bmcweb/src/crow_getroutes_test.cpp @@ -1,4 +1,4 @@ -#include +#include #include "gmock/gmock.h" #include "gtest/gtest.h" diff --git a/Contrib-Inspur/bmcweb/src/crow_test.cpp b/Contrib-Inspur/bmcweb/src/crow_test.cpp index beefdeee..f427a2f3 100644 --- a/Contrib-Inspur/bmcweb/src/crow_test.cpp +++ b/Contrib-Inspur/bmcweb/src/crow_test.cpp @@ -5,8 +5,6 @@ #include "crow.h" #include "gtest/gtest.h" -#undef BMCWEB_LOG_LEVEL -#define BMCWEB_LOG_LEVEL 0 using namespace std; using namespace crow; diff --git a/Contrib-Inspur/bmcweb/src/getvideo_main.cpp b/Contrib-Inspur/bmcweb/src/getvideo_main.cpp deleted file mode 100644 index 849c75d5..00000000 --- a/Contrib-Inspur/bmcweb/src/getvideo_main.cpp +++ /dev/null @@ -1,79 +0,0 @@ -#include -#include - -#include -#include -#include -#include -#include -#include -#include -#include - -//#define BUILD_CIMG -#ifdef BUILD_CIMG -#define cimg_display 0 -#include -#endif - -#include -#include - -int main() -{ - ast_video::RawVideoBuffer out; - bool have_hardware = false; - if (access("/dev/video", F_OK) != -1) - { - ast_video::SimpleVideoPuller p; - p.initialize(); - out = p.readVideo(); - } - else - { - FILE *fp = fopen("/home/ed/screendata.bin", "rb"); - if (fp != nullptr) - { - size_t newLen = fread(out.buffer.data(), sizeof(char), - out.buffer.size() * sizeof(long), fp); - if (ferror(fp) != 0) - { - fputs("Error reading file", stderr); - } - fclose(fp); - out.buffer.resize(newLen); - out.mode = ast_video::YuvMode::YUV444; - out.width = 800; - out.height = 600; - out.ySelector = 0; - out.uvSelector = 0; - } - } - - FILE *fp = fopen("/tmp/screendata.bin", "wb"); - fwrite(out.buffer.data(), sizeof(char), out.buffer.size(), fp); - fclose(fp); - - ast_video::AstJpegDecoder d; - d.decode(out.buffer, out.width, out.height, out.mode, out.ySelector, - out.uvSelector); -#ifdef BUILD_CIMG - cimg_library::CImg image(out.width, out.height, 1, - 3 /*numchannels*/); - for (int y = 0; y < out.height; y++) - { - for (int x = 0; x < out.width; x++) - { - auto pixel = d.outBuffer[x + (y * out.width)]; - image(x, y, 0) = pixel.r; - image(x, y, 1) = pixel.g; - image(x, y, 2) = pixel.b; - } - } - image.save("/tmp/file2.bmp"); -#endif - - std::cout << "Done!\n"; - - return 1; -} diff --git a/Contrib-Inspur/bmcweb/src/security_headers_middleware_test.cpp b/Contrib-Inspur/bmcweb/src/security_headers_middleware_test.cpp index 4fa3003e..500839ad 100644 --- a/Contrib-Inspur/bmcweb/src/security_headers_middleware_test.cpp +++ b/Contrib-Inspur/bmcweb/src/security_headers_middleware_test.cpp @@ -1,4 +1,4 @@ -#include +#include #include diff --git a/Contrib-Inspur/bmcweb/src/webassets_test.cpp b/Contrib-Inspur/bmcweb/src/webassets_test.cpp index 3df75422..4f010a60 100644 --- a/Contrib-Inspur/bmcweb/src/webassets_test.cpp +++ b/Contrib-Inspur/bmcweb/src/webassets_test.cpp @@ -1,4 +1,4 @@ -#include +#include #include #include diff --git a/Contrib-Inspur/bmcweb/src/webserver_main.cpp b/Contrib-Inspur/bmcweb/src/webserver_main.cpp index 7c64f4c7..901c1803 100644 --- a/Contrib-Inspur/bmcweb/src/webserver_main.cpp +++ b/Contrib-Inspur/bmcweb/src/webserver_main.cpp @@ -1,10 +1,11 @@ -#include +#include #include #include #include #include #include +#include #include #include #include @@ -18,10 +19,14 @@ #include #include #include -#include +#include #include #include +#ifdef BMCWEB_ENABLE_VM_NBDPROXY +#include +#endif + constexpr int defaultPort = 18080; template @@ -55,20 +60,11 @@ void setupSocket(crow::Crow& app) int main(int argc, char** argv) { - crow::logger::setLogLevel(crow::LogLevel::DEBUG); + crow::logger::setLogLevel(crow::LogLevel::Debug); auto io = std::make_shared(); CrowApp app(io); -#ifdef BMCWEB_ENABLE_SSL - std::string sslPemFile("server.pem"); - std::cout << "Building SSL Context\n"; - - ensuressl::ensureOpensslKeyPresentAndValid(sslPemFile); - std::cout << "SSL Enabled\n"; - auto sslContext = ensuressl::getSslContext(sslPemFile); - app.ssl(std::move(sslContext)); -#endif // Static assets need to be initialized before Authorization, because auth // needs to build the whitelist from the static routes @@ -77,7 +73,7 @@ int main(int argc, char** argv) #endif #ifdef BMCWEB_ENABLE_KVM - crow::kvm::requestRoutes(app); + crow::obmc_kvm::requestRoutes(app); #endif #ifdef BMCWEB_ENABLE_REDFISH @@ -94,6 +90,10 @@ int main(int argc, char** argv) crow::obmc_console::requestRoutes(app); #endif +#ifdef BMCWEB_ENABLE_VM_WEBSOCKET + crow::obmc_vm::requestRoutes(app); +#endif + crow::token_authorization::requestRoutes(app); BMCWEB_LOG_INFO << "bmcweb (" << __DATE__ << ": " << __TIME__ << ')'; @@ -101,6 +101,11 @@ int main(int argc, char** argv) crow::connections::systemBus = std::make_shared(*io); + +#ifdef BMCWEB_ENABLE_VM_NBDPROXY + crow::nbd_proxy::requestRoutes(app); +#endif + redfish::RedfishService redfish(app); app.run(); diff --git a/Contrib-Inspur/bmcweb/static/redfish/v1/$metadata/index.xml b/Contrib-Inspur/bmcweb/static/redfish/v1/$metadata/index.xml index cd895db3..c6da3e62 100644 --- a/Contrib-Inspur/bmcweb/static/redfish/v1/$metadata/index.xml +++ b/Contrib-Inspur/bmcweb/static/redfish/v1/$metadata/index.xml @@ -3,6 +3,8 @@ + + @@ -15,17 +17,30 @@ + + + + + + + + + + + + + @@ -34,15 +49,25 @@ + + + + + + + + + + @@ -52,15 +77,23 @@ + + + + + + + + @@ -70,11 +103,16 @@ + + + + + @@ -82,6 +120,10 @@ + + + + @@ -89,10 +131,14 @@ + + + + @@ -105,6 +151,8 @@ + + @@ -113,6 +161,8 @@ + + @@ -120,6 +170,8 @@ + + @@ -127,26 +179,41 @@ + + + + + + + + + + + + + + + @@ -156,15 +223,22 @@ + + + + + + + @@ -178,6 +252,8 @@ + + @@ -186,6 +262,8 @@ + + @@ -193,21 +271,34 @@ + + + + + + + + + + + + + @@ -221,24 +312,39 @@ + + + + + + + + + + + + + + + @@ -248,12 +354,20 @@ + + + + + + + + @@ -266,20 +380,32 @@ + + + + + + + + + + + + @@ -294,6 +420,8 @@ + + @@ -301,12 +429,20 @@ + + + + + + + + @@ -316,19 +452,32 @@ + + + + + + + + + + + + + @@ -343,15 +492,28 @@ + + + + + + + + + + + + + @@ -363,6 +525,8 @@ + + @@ -373,11 +537,17 @@ + + + + + + @@ -391,12 +561,16 @@ + + + + @@ -404,6 +578,8 @@ + + @@ -413,9 +589,13 @@ + + + + @@ -429,21 +609,31 @@ + + + + + + + + + + @@ -456,8 +646,12 @@ + + + + @@ -473,6 +667,8 @@ + + @@ -480,6 +676,8 @@ + + @@ -487,17 +685,26 @@ + + + + + + + + + @@ -508,11 +715,19 @@ + + + + + + + + @@ -527,13 +742,23 @@ + + + + + + + + + + @@ -543,29 +768,46 @@ + + + + + + + + + + + + + + + + + @@ -573,11 +815,17 @@ + + + + + + @@ -591,11 +839,17 @@ + + + + + + @@ -607,11 +861,16 @@ + + + + + @@ -621,6 +880,8 @@ + + @@ -630,10 +891,18 @@ + + + + + + + + @@ -645,8 +914,12 @@ + + + + @@ -655,6 +928,8 @@ + + @@ -663,7 +938,12 @@ + + + + + @@ -672,7 +952,14 @@ + + + + + + + @@ -682,9 +969,16 @@ + + + + + + + @@ -696,16 +990,24 @@ + + + + + + + + @@ -715,8 +1017,12 @@ + + + + @@ -727,11 +1033,21 @@ + + + + + + + + + + @@ -742,11 +1058,23 @@ + + + + + + + + + + + + @@ -755,15 +1083,28 @@ + + + + + + + + + + + + + @@ -775,8 +1116,12 @@ + + + + @@ -792,6 +1137,8 @@ + + @@ -799,6 +1146,8 @@ + + @@ -806,18 +1155,26 @@ + + + + + + + + @@ -825,9 +1182,13 @@ + + + + @@ -835,6 +1196,7 @@ + @@ -844,16 +1206,28 @@ + + + + + + + + + + + + @@ -861,12 +1235,15 @@ + + + @@ -881,17 +1258,25 @@ + + + + + + + + @@ -901,6 +1286,8 @@ + + @@ -909,6 +1296,8 @@ + + @@ -916,39 +1305,61 @@ + + + + + + + + + + + + + + + + + + + + + + @@ -959,12 +1370,18 @@ + + + + + + @@ -972,8 +1389,11 @@ + + + @@ -982,10 +1402,14 @@ + + + + @@ -998,10 +1422,14 @@ + + + + @@ -1015,21 +1443,33 @@ + + + + + + + + + + + + @@ -1037,8 +1477,14 @@ + + + + + + @@ -1050,11 +1496,15 @@ + + + + @@ -1063,10 +1513,13 @@ + + + @@ -1075,12 +1528,18 @@ + + + + + + @@ -1091,11 +1550,17 @@ + + + + + + @@ -1109,26 +1574,42 @@ + + + + + + + + + + + + + + + + @@ -1140,8 +1621,13 @@ + + + + + @@ -1154,16 +1640,26 @@ + + + + + + + + + + @@ -1175,14 +1671,22 @@ + + + + + + + + @@ -1195,6 +1699,8 @@ + + @@ -1202,27 +1708,41 @@ + + + + + + + + + + + + + + @@ -1235,18 +1755,31 @@ + + + + + + + + + + + + + @@ -1255,18 +1788,30 @@ + + + + + + + + + + + + @@ -1276,9 +1821,13 @@ + + + + @@ -1289,6 +1838,16 @@ + + + + + + + + + + @@ -1299,11 +1858,19 @@ + + + + + + + + @@ -1313,7 +1880,13 @@ - + + + + + + + diff --git a/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/AccelerationFunction/AccelerationFunction.json b/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/AccelerationFunction/AccelerationFunction.json index fb3b57a3..dc1b17e6 100644 --- a/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/AccelerationFunction/AccelerationFunction.json +++ b/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/AccelerationFunction/AccelerationFunction.json @@ -1,15 +1,15 @@ { - "$id": "http://redfish.dmtf.org/schemas/v1/AccelerationFunction.v1_0_0.json", + "$id": "http://redfish.dmtf.org/schemas/v1/AccelerationFunction.v1_0_2.json", "$ref": "#/definitions/AccelerationFunction", "$schema": "http://redfish.dmtf.org/schemas/v1/redfish-schema-v1.json", - "copyright": "Copyright 2014-2018 DMTF. For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright", + "copyright": "Copyright 2014-2019 DMTF. For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright", "definitions": { "AccelerationFunction": { "additionalProperties": false, - "description": "The AccelerationFunction schema defines the accelerator implemented in a Processor device.", - "longDescription": "This resource shall be used to represent the acceleration function, implemented in a Processor, in a Redfish implementation.", + "description": "The AccelerationFunction schema describes an acceleration function that a processor implements. This can include functions such as audio processing, compression, encryption, packet inspection, packet switching, scheduling, or video processing.", + "longDescription": "This Resource shall represent the acceleration function that a processor implements in a Redfish implementation. This can include functions such as audio processing, compression, encryption, packet inspection, packet switching, scheduling, or video processing.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -24,16 +24,16 @@ }, "properties": { "@odata.context": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/context" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/context" }, "@odata.etag": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/etag" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/etag" }, "@odata.id": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/id" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/id" }, "@odata.type": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/type" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/type" }, "AccelerationFunctionType": { "anyOf": [ @@ -44,14 +44,14 @@ "type": "null" } ], - "description": "The type of acceleration function.", - "longDescription": "This property shall contain the string which identifies the type of acceleration function.", + "description": "The acceleration function type.", + "longDescription": "This property shall contain the string that identifies the acceleration function type.", "readonly": true }, "Actions": { "$ref": "#/definitions/Actions", - "description": "The available actions for this resource.", - "longDescription": "The Actions property shall contain the available actions for this resource." + "description": "The available actions for this Resource.", + "longDescription": "This property shall contain the available actions for this Resource." }, "Description": { "anyOf": [ @@ -65,11 +65,11 @@ "readonly": true }, "FpgaReconfigurationSlots": { - "description": "An array of the reconfiguration slot identifiers for an FPGA.", + "description": "An array of the reconfiguration slot identifiers of the FPGA that this acceleration function occupies.", "items": { "type": "string" }, - "longDescription": "The value of this property shall be an array of the FPGA reconfiguration slots identifiers that this acceleration function occupies.", + "longDescription": "This property shall contain an array of the FPGA reconfiguration slot identifiers that this acceleration function occupies.", "readonly": true, "type": "array" }, @@ -79,12 +79,12 @@ }, "Links": { "$ref": "#/definitions/Links", - "description": "Contains references to other resources that are related to this resource.", - "longDescription": "The Links property, as described by the Redfish Specification, shall contain references to resources that are related to, but not contained by (subordinate to), this resource." + "description": "The links to other Resources that are related to this Resource.", + "longDescription": "This property shall contain links to Resources that are related to but are not contained by, or subordinate to, this Resource." }, "Manufacturer": { "description": "The acceleration function code manufacturer.", - "longDescription": "This property shall contain a string which identifies the manufacturer of the acceleration function.", + "longDescription": "This property shall contain a string that identifies the manufacturer of the acceleration function.", "readonly": true, "type": "string" }, @@ -94,20 +94,20 @@ }, "Oem": { "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem", - "description": "This is the manufacturer/provider specific extension moniker used to divide the Oem object into sections.", - "longDescription": "The value of this string shall be of the format for the reserved word *Oem*." + "description": "The OEM extension property.", + "longDescription": "This property shall contain the OEM extensions. All values for properties that this object contains shall conform to the Redfish Specification-described requirements." }, "PowerWatts": { - "description": "The acceleration function power consumption.", - "longDescription": "The total acceleration function power consumtion in watts.", + "description": "The acceleration function power consumption, in watts.", + "longDescription": "This property shall contain the total acceleration function power consumption, in watts.", "readonly": true, "type": "integer", "units": "W" }, "Status": { "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Status", - "description": "This property describes the status and health of the resource and its children.", - "longDescription": "This property shall contain any status or health properties of the resource." + "description": "The status and health of the Resource and its subordinate or dependent Resources.", + "longDescription": "This property shall contain any status or health properties of the Resource." }, "UUID": { "anyOf": [ @@ -118,13 +118,13 @@ "type": "null" } ], - "description": "The universal unique identifier (UUID) for this acceleration function.", - "longDescription": "The value of this property shall be used to contain a universal unique identifier number for the acceleration function. RFC4122 describes methods that can be used to create the value. The value should be considered to be opaque. Client software should only treat the overall value as a universally unique identifier and should not interpret any sub-fields within the UUID.", + "description": "The UUID for this acceleration function.", + "longDescription": "This property shall contain a UUID for the acceleration function. RFC4122 describes methods that can create the value. The value should be considered to be opaque. Client software should only treat the overall value as a UUID and should not interpret any sub-fields within the UUID.", "readonly": true }, "Version": { "description": "The acceleration function version.", - "longDescription": "The value of this property shall contain a string decsribing the acceleration function version.", + "longDescription": "This property shall describe the acceleration function version.", "readonly": true, "type": "string" } @@ -162,10 +162,10 @@ }, "Actions": { "additionalProperties": false, - "description": "The available actions for this resource.", - "longDescription": "This type shall contain the available actions for this resource.", + "description": "The available actions for this Resource.", + "longDescription": "This type shall contain the available actions for this Resource.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -181,18 +181,18 @@ "properties": { "Oem": { "$ref": "#/definitions/OemActions", - "description": "This property contains the available OEM specific actions for this resource.", - "longDescription": "This property shall contain any additional OEM actions for this resource." + "description": "The available OEM-specific actions for this Resource.", + "longDescription": "This property shall contain the available OEM-specific actions for this Resource." } }, "type": "object" }, "Links": { "additionalProperties": false, - "description": "Contains references to other resources that are related to this resource.", - "longDescription": "This type, as described by the Redfish Specification, shall contain references to resources that are related to, but not contained by (subordinate to), this resource.", + "description": "The links to other Resources that are related to this Resource.", + "longDescription": "This Redfish Specification-described type shall contain links to Resources that are related to but are not contained by, or subordinate to, this Resource.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -207,43 +207,43 @@ }, "properties": { "Endpoints": { - "description": "An array of references to the endpoints that connect to this acceleartion function.", + "description": "An array of links to the endpoints that connect to this acceleration function.", "items": { "$ref": "http://redfish.dmtf.org/schemas/v1/Endpoint.json#/definitions/Endpoint" }, - "longDescription": "The value of this property shall be an array of references to resources of type Endpoint that are associated with this acceleration function.", + "longDescription": "This property shall contain an array of links to Resources of the Endpoint type that are associated with this acceleration function.", "readonly": true, "type": "array" }, "Endpoints@odata.count": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/count" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/count" }, "Oem": { "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem", - "description": "Oem extension object.", - "longDescription": "This object represents the Oem property. All values for resources described by this schema shall comply to the requirements as described in the Redfish specification." + "description": "The OEM extension property.", + "longDescription": "This property shall contain the OEM extensions. All values for properties contained in this object shall conform to the Redfish Specification-described requirements." }, "PCIeFunctions": { - "description": "An array of references to the PCIeFunctions associated with this acceleration function.", + "description": "An array of links to the PCIeFunctions associated with this acceleration function.", "items": { "$ref": "http://redfish.dmtf.org/schemas/v1/PCIeFunction.json#/definitions/PCIeFunction" }, - "longDescription": "The value of this property shall be an array of references of type PCIeFunction that represent the PCI-e Functions associated with this acceleration function.", + "longDescription": "This property shall contain an array of links of the PCIeFunction type that represent the PCIe functions associated with this acceleration function.", "readonly": true, "type": "array" }, "PCIeFunctions@odata.count": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/count" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/count" } }, "type": "object" }, "OemActions": { "additionalProperties": true, - "description": "The available OEM specific actions for this resource.", - "longDescription": "This type shall contain any additional OEM actions for this resource.", + "description": "The available OEM-specific actions for this Resource.", + "longDescription": "This type shall contain the available OEM-specific actions for this Resource.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -262,5 +262,5 @@ }, "owningEntity": "DMTF", "release": "2018.3", - "title": "#AccelerationFunction.v1_0_0.AccelerationFunction" + "title": "#AccelerationFunction.v1_0_2.AccelerationFunction" } \ No newline at end of file diff --git a/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/AccountService/AccountService.json b/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/AccountService/AccountService.json index d34bbf41..487b3f40 100644 --- a/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/AccountService/AccountService.json +++ b/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/AccountService/AccountService.json @@ -1,8 +1,8 @@ { - "$id": "http://redfish.dmtf.org/schemas/v1/AccountService.v1_4_0.json", + "$id": "http://redfish.dmtf.org/schemas/v1/AccountService.v1_6_0.json", "$ref": "#/definitions/AccountService", "$schema": "http://redfish.dmtf.org/schemas/v1/redfish-schema-v1.json", - "copyright": "Copyright 2014-2018 DMTF. For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright", + "copyright": "Copyright 2014-2019 DMTF. For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright", "definitions": { "AccountProviderTypes": { "enum": [ @@ -12,24 +12,24 @@ "OEM" ], "enumDescriptions": { - "ActiveDirectoryService": "An external Active Directory Service.", - "LDAPService": "A generic external LDAP Service.", - "OEM": "An OEM specific external authentication or directory service.", + "ActiveDirectoryService": "An external Active Directory service.", + "LDAPService": "A generic external LDAP service.", + "OEM": "An OEM-specific external authentication or directory service.", "RedfishService": "An external Redfish Service." }, "enumLongDescriptions": { - "ActiveDirectoryService": "The external account provider shall be a service conforming to the Microsoft Active Directory Technical specification. The format of ServiceAddresses shall be a collection of FQDNs or Netbios names that references the set of domain servers for the Active Directory service.", - "LDAPService": "The external account provider shall be a service conforming to RFC4511. The format of ServiceAddresses shall be a collection of FQDNs that references the set of LDAP servers for the service.", - "RedfishService": "The external account provider shall be a service conforming to the DMTF Redfish specification. The format of ServiceAddresses shall be a collection of URIs which corresponds to a Redfish AccountService entity." + "ActiveDirectoryService": "The external account provider shall be a Microsoft Active Directory Technical Specification-comformant service. The ServiceAddresses format shall contain a set of fully qualified domain names (FQDN) or NetBIOS names that links to the set of domain servers for the Active Directory Service.", + "LDAPService": "The external account provider shall be an RFC4511-conformant service. The ServiceAddresses format shall contain a set of fully qualified domain names (FQDN) that links to the set of LDAP servers for the Service.", + "RedfishService": "The external account provider shall be a DMTF Redfish Specification-comformant service. The ServiceAddresses format shall contain a set of URIs that correspond to a Redfish Account Service." }, "type": "string" }, "AccountService": { "additionalProperties": false, - "description": "The AccountService schema contains properties for managing user accounts. The properties are common to all user accounts, such as password requirements, and control features such as account lockout. The schema also contains links to the collections of Manager Accounts and Roles.", - "longDescription": "This resource shall be used to represent a management account service for a Redfish implementation.", + "description": "The AccountService schema defines an Account Service. The properties are common to, and enable management of, all user accounts. The properties include the password requirements and control features, such as account lockout. The schema also contains links to the manager accounts and roles.", + "longDescription": "This Resource shall represent an Account Service for a Redfish implementation. The properties are common to, and enable management of, all user accounts. The properties include the password requirements and control features, such as account lockout.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -44,28 +44,35 @@ }, "properties": { "@odata.context": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/context" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/context" }, "@odata.etag": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/etag" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/etag" }, "@odata.id": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/id" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/id" }, "@odata.type": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/type" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/type" }, "AccountLockoutCounterResetAfter": { - "description": "The interval of time in seconds between the last failed login attempt and reset of the lockout threshold counter. This value must be less than or equal to AccountLockoutDuration. Reset sets the counter to zero.", - "longDescription": "This property shall reference the threshold of time in seconds from the last failed login attempt at which point the AccountLockoutThreshold counter (that counts number of failed login attempts) is reset back to zero (at which point AccountLockoutThreshold failures would be required before the account is locked). This value shall be less than or equal to AccountLockoutDuration. The threshold counter also resets to zero after each successful login.", + "description": "The period of time, in seconds, between the last failed login attempt and the reset of the lockout threshold counter. This value must be less than or equal to the AccountLockoutDuration value. A reset sets the counter to `0`.", + "longDescription": "This property shall contain the period of time, in seconds, from the last failed login attempt when the AccountLockoutThreshold counter, which counts the number of failed login attempts, is reset to `0`. Then, AccountLockoutThreshold failures are required before the account is locked. This value shall be less than or equal to the AccountLockoutDuration value. The threshold counter also resets to `0` after each successful login. If the AccountLockoutCounterResetEnabled value is `false`, this property shall be ignored.", "minimum": 0, "readonly": false, "type": "integer", "units": "s" }, + "AccountLockoutCounterResetEnabled": { + "description": "An indication of whether the threshold counter is reset after AccountLockoutCounterResetAfter expires. If `true`, it is reset. If `false`, only a successful login resets the threshold counter and if the user reaches the AccountLockoutThreshold limit, the account will be locked out indefinitely and only an administrator-issued reset clears the threshold counter. If this property is absent, the default is `true`.", + "longDescription": "This property shall indicate whether the threshold counter is reset after the AccountLockoutCounterResetAfter expires. If `true`, it is reset. If `false`, only a successful login resets the threshold counter and if the user reaches the AccountLockoutThreshold limit, the account shall be locked out indefinitely and only an administrator-issued reset clears the threshold counter. If this property is absent, the default is `true`.", + "readonly": false, + "type": "boolean", + "versionAdded": "v1_5_0" + }, "AccountLockoutDuration": { - "description": "The time in seconds an account is locked out. The value must be greater than or equal to the value of the AccountLockoutCounterResetAfter property. If set to 0, no lockout occurs.", - "longDescription": "This property shall reference the period of time in seconds that an account is locked after the number of failed login attempts reaches the threshold referenced by AccountLockoutThreshold, within the window of time referenced by AccountLockoutCounterResetAfter. The value shall be greater than or equal to the value of AccountLockoutResetAfter. If set to 0, no lockout shall occur.", + "description": "The period of time, in seconds, that an account is locked after the number of failed login attempts reaches the account lockout threshold, within the period between the last failed login attempt and the reset of the lockout threshold counter. If this value is `0`, no lockout will occur. If the AccountLockoutCounterResetEnabled value is `false`, this property is ignored.", + "longDescription": "This property shall contain the period of time, in seconds, that an account is locked after the number of failed login attempts reaches the AccountLockoutThreshold value, within the AccountLockoutCounterResetAfter window of time. The value shall be greater than or equal to the AccountLockoutResetAfter value. If this value is `0`, no lockout shall occur. If AccountLockoutCounterResetEnabled value is `false`, this property shall be ignored.", "minimum": 0, "readonly": false, "type": [ @@ -75,8 +82,8 @@ "units": "s" }, "AccountLockoutThreshold": { - "description": "The number of failed login attempts allowed before a user account is locked for a specified duration. A value of 0 means it is never locked.", - "longDescription": "This property shall reference the threshold of failed login attempts at which point the user's account is locked. If set to 0, no lockout shall ever occur.", + "description": "The number of allowed failed login attempts before a user account is locked for a specified duration. If `0`, the account is never locked.", + "longDescription": "This property shall contain the threshold of failed login attempts before a user account is locked. If `0`, the account shall never be locked.", "minimum": 0, "readonly": false, "type": [ @@ -86,32 +93,32 @@ }, "Accounts": { "$ref": "http://redfish.dmtf.org/schemas/v1/ManagerAccountCollection.json#/definitions/ManagerAccountCollection", - "description": "A link to a collection of Manager Accounts.", - "longDescription": "This property shall contain the link to a collection of type ManagerAccountCollection.", + "description": "The collection of manager accounts.", + "longDescription": "This property shall contain a link to a Resource Collection of type ManagerAccountCollection.", "readonly": true }, "Actions": { "$ref": "#/definitions/Actions", - "description": "The available actions for this resource.", - "longDescription": "The Actions property shall contain the available actions for this resource.", + "description": "The available actions for this Resource.", + "longDescription": "This property shall contain the available actions for this Resource.", "versionAdded": "v1_2_0" }, "ActiveDirectory": { "$ref": "#/definitions/ExternalAccountProvider", - "description": "The first ActiveDirectory external account provider this AccountService supports.", - "longDescription": "This property shall contain the first ActiveDirectory external account provider this AccountService supports. If the AccountService supports 1 or more ActiveDirectory services as an external account provider this entity must be populated by default. This entity shall not be present in the AdditionalExternalAccountProviders collection.", + "description": "The first Active Directory external account provider that this Account Service supports.", + "longDescription": "This property shall contain the first Active Directory external account provider that this Account Service supports. If the Account Service supports one or more Active Directory services as an external account provider, this entity shall be populated by default. This entity shall not be present in the AdditionalExternalAccountProviders Resource Collection.", "versionAdded": "v1_3_0" }, "AdditionalExternalAccountProviders": { "$ref": "http://redfish.dmtf.org/schemas/v1/ExternalAccountProviderCollection.json#/definitions/ExternalAccountProviderCollection", - "description": "The additional external account providers this AccountService is using.", - "longDescription": "This property shall contain an additional external account providers this AccountService is using.", + "description": "The additional external account providers that this Account Service uses.", + "longDescription": "This property shall contain the additional external account providers that this Account Service uses.", "readonly": true, "versionAdded": "v1_3_0" }, "AuthFailureLoggingThreshold": { - "description": "The number of authorization failures allowed before the failure attempt is logged to the manager log.", - "longDescription": "This property shall reference the threshold for when an authorization failure is logged. This represents a modulo function value, thus the failure shall be logged every nth occurrence where n represents the value of this property.", + "description": "The number of authorization failures that are allowed before the failed attempt is logged to the manager log.", + "longDescription": "This property shall contain the threshold for when an authorization failure is logged. This value represents a modulo function. The failure shall be logged every `n`th occurrence, where `n` represents this property.", "minimum": 0, "readonly": false, "type": "integer" @@ -133,27 +140,27 @@ }, "LDAP": { "$ref": "#/definitions/ExternalAccountProvider", - "description": "The first LDAP external account provider this AccountService supports.", - "longDescription": "This property shall contain the first LDAP external account provider this AccountService supports. If the AccountService supports 1 or more LDAP services as an external account provider this entity must be populated by default. This entity shall not be present in the AdditionalExternalAccountProviders collection.", + "description": "The first LDAP external account provider that this Account Service supports.", + "longDescription": "This property shall contain the first LDAP external account provider that this Account Service supports. If the Account Service supports one or more LDAP services as an external account provider, this entity shall be populated by default. This entity shall not be present in the AdditionalExternalAccountProviders Resource Collection.", "versionAdded": "v1_3_0" }, "LocalAccountAuth": { "$ref": "#/definitions/LocalAccountAuth", - "description": "Controls when this service will use the accounts defined withing this AccountService as part of authentication.", - "longDescription": "This property shall govern how the service uses the Accounts collection within this AccountService as part of authentication. Details about each of the modes are found in the description of the enum values.", + "description": "An indication of how the Service uses the accounts collection within this Account Service as part of authentication. The enumerated values describe the details for each mode.", + "longDescription": "This property shall govern how the Service uses the Accounts Resource Collection within this Account Service as part of authentication. The enumerated values describe the details for each mode.", "readonly": false, "versionAdded": "v1_3_0" }, "MaxPasswordLength": { - "description": "The maximum password length for this service.", - "longDescription": "This property shall reference the maximum password length that the implementation will allow a password to be set to.", + "description": "The maximum password length for this Account Service.", + "longDescription": "This property shall contain the maximum password length that the implementation allows for this Account Service.", "minimum": 0, "readonly": true, "type": "integer" }, "MinPasswordLength": { - "description": "The minimum password length for this service.", - "longDescription": "This property shall reference the minimum password length that the implementation will allow a password to be set to.", + "description": "The minimum password length for this Account Service.", + "longDescription": "This property shall contain the minimum password length that the implementation allows for this Account Service.", "minimum": 0, "readonly": true, "type": "integer" @@ -164,25 +171,25 @@ }, "Oem": { "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem", - "description": "This is the manufacturer/provider specific extension moniker used to divide the Oem object into sections.", - "longDescription": "The value of this string shall be of the format for the reserved word *Oem*." + "description": "The OEM extension property.", + "longDescription": "This property shall contain the OEM extensions. All values for properties that this object contains shall conform to the Redfish Specification-described requirements." }, "PrivilegeMap": { "$ref": "http://redfish.dmtf.org/schemas/v1/PrivilegeRegistry.json#/definitions/PrivilegeRegistry", - "description": "A reference to the Privilege mapping that defines the privileges needed to perform a requested operation on a URI associated with this service.", - "longDescription": "The value of this property shall be a link to a resource of type PrivilegeMappoing that defines the privileges a user context needs in order to perform a requested operation on a URI associated with this service.", + "description": "The link to the mapping of the privileges required to complete a requested operation on a URI associated with this Service.", + "longDescription": "This property shall contain a link to a Resource of type PrivilegeMapping that contains the privileges that are required for a user context to complete a requested operation on a URI associated with this Service.", "readonly": true, "versionAdded": "v1_1_0" }, "Roles": { "$ref": "http://redfish.dmtf.org/schemas/v1/RoleCollection.json#/definitions/RoleCollection", - "description": "A link to a collection of Roles.", - "longDescription": "This property shall contain the link to a collection of type RoleCollection.", + "description": "The collection of Redfish Roles.", + "longDescription": "This property shall contain a link to a Resource Collection of type RoleCollection.", "readonly": true }, "ServiceEnabled": { - "description": "Indicates whether this service is enabled. If set to false, the AccountService is disabled. This means no users can be created, deleted or modified. Any service attempting to access the AccountService resource (for example, the Session Service) will fail. New sessions cannot be started when the service is disabled. However, established sessions may still continue operating. This does not affect Basic AUTH connections.", - "longDescription": "The value of this property shall be a boolean indicating whether this service is enabled. If this is set to false, the AccountService is disabled. This means no users can be created, deleted or modified. Any service attempting to access the Account Service, like the Session Service, will fail accessing. Thus new sessions cannot be started with the service disabled (though established sessions may still continue operating). Note: this does not affect Basic AUTH connections.", + "description": "An indication of whether the Account Service is enabled. If `true`, it is enabled. If `false`, it is disabled and users cannot be created, deleted, or modified, and new sessions cannot be started. However, established sessions may still continue to run. Any service, such as the Session Service, that attempts to access the disabled Account Service fails. However, this does not affect HTTP Basic Authentication connections.", + "longDescription": "This property shall indicate whether the Account Service is enabled. If `true`, it is enabled. If `false`, it is disabled and users cannot be created, deleted, or modified, and new sessions cannot be started. However, established sessions may still continue to run. Any service, such as the Session Service, that attempts to access the disabled Account Service fails. However, this does not affect HTTP Basic Authentication connections.", "readonly": false, "type": [ "boolean", @@ -191,8 +198,8 @@ }, "Status": { "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Status", - "description": "This property describes the status and health of the resource and its children.", - "longDescription": "This property shall contain any status or health properties of the resource." + "description": "The status and health of the Resource and its subordinate or dependent Resources.", + "longDescription": "This property shall contain any status or health properties of the Resource." } }, "required": [ @@ -205,10 +212,10 @@ }, "Actions": { "additionalProperties": false, - "description": "The available actions for this resource.", - "longDescription": "This type shall contain the available actions for this resource.", + "description": "The available actions for this Resource.", + "longDescription": "This type shall contain the available actions for this Resource.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -224,8 +231,8 @@ "properties": { "Oem": { "$ref": "#/definitions/OemActions", - "description": "This property contains the available OEM specific actions for this resource.", - "longDescription": "This property shall contain any additional OEM actions for this resource.", + "description": "The available OEM-specific actions for this Resource.", + "longDescription": "This property shall contain the available OEM-specific actions for this Resource.", "versionAdded": "v1_2_0" } }, @@ -233,10 +240,10 @@ }, "Authentication": { "additionalProperties": false, - "description": "Contains the authentication information for the external service.", - "longDescription": "This type shall contain all the required information to authenticate to the external service.", + "description": "The information required to authenticate to the external service.", + "longDescription": "This type shall contain the information required to authenticate to the external service.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -259,14 +266,14 @@ "type": "null" } ], - "description": "This property contains the type of authentication used to connect to the external account provider.", - "longDescription": "The value of this property shall be the type of authentication used to connect to the external account provider.", + "description": "The type of authentication used to connect to the external account provider.", + "longDescription": "This property shall contain the type of authentication used to connect to the external account provider.", "readonly": false, "versionAdded": "v1_3_0" }, "KerberosKeytab": { - "description": "This property is used with a PATCH or PUT to write a base64 encoded version of the kerberos keytab for the account. This property is null on a GET.", - "longDescription": "The value of this property shall be a base64 encoded version of the kerberos keytab for this account service. The value shall be null for GET requests.", + "description": "The Base64-encoded version of the Kerberos keytab for this Service. A PATCH or PUT operation writes the keytab. This property is `null` in responses.", + "longDescription": "This property shall contain a Base64-encoded version of the Kerberos keytab for this Service. A PATCH or PUT operation writes the keytab. The value shall be `null` in responses.", "readonly": false, "type": [ "string", @@ -276,13 +283,13 @@ }, "Oem": { "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem", - "description": "Oem extension object.", - "longDescription": "This object represents the Oem property. All values for resources described by this schema shall comply to the requirements as described in the Redfish specification.", + "description": "The OEM extension property.", + "longDescription": "This property shall contain the OEM extensions. All values for properties contained in this object shall conform to the Redfish Specification-described requirements.", "versionAdded": "v1_3_0" }, "Password": { - "description": "This property is used with a PATCH or PUT to write the password for the account service. This property is null on a GET.", - "longDescription": "The value of this property shall be the password for this account service. The value shall be null for GET requests.", + "description": "The password for this Service. A PATCH or PUT request writes the password. This property is `null` in responses.", + "longDescription": "This property shall contain the password for this Service. A PATCH or PUT operation writes the password. The value shall be `null` in responses.", "readonly": false, "type": [ "string", @@ -291,8 +298,8 @@ "versionAdded": "v1_3_0" }, "Token": { - "description": "This property is used with a PATCH or PUT to write the token for the account. This property is null on a GET.", - "longDescription": "The value of this property shall be the token for this account service. The value shall be null for GET requests.", + "description": "The token for this Service. A PATCH or PUT operation writes the token. This property is `null` in responses.", + "longDescription": "This property shall contain the token for this Service. A PATCH or PUT operation writes the token. The value shall be `null` in responses.", "readonly": false, "type": [ "string", @@ -301,8 +308,8 @@ "versionAdded": "v1_3_0" }, "Username": { - "description": "This property contains the user name for the account service.", - "longDescription": "The value of this property shall be the user name for this account service.", + "description": "The user name for the Service.", + "longDescription": "This property shall contain the user name for this Service.", "readonly": false, "type": "string", "versionAdded": "v1_3_0" @@ -318,19 +325,19 @@ "OEM" ], "enumDescriptions": { - "KerberosKeytab": "A kerberos keytab.", - "OEM": "An OEM specific authentication mechanism.", + "KerberosKeytab": "A Kerberos keytab.", + "OEM": "An OEM-specific authentication mechanism.", "Token": "An opaque authentication token.", - "UsernameAndPassword": "Username and password combination." + "UsernameAndPassword": "A user name and password combination." }, "type": "string" }, "ExternalAccountProvider": { "additionalProperties": false, - "description": "A remote service that can provide accounts for this manager to utilize for authentication.", - "longDescription": "This type shall be used to represent resources that represent external user account services for this manager.", + "description": "The external account provider services that can provide accounts for this manager to use for authentication.", + "longDescription": "This type shall contain properties that represent external account provider services that can provide accounts for this manager to use for authentication.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -353,46 +360,34 @@ "type": "null" } ], - "description": "This property contains the type of external account provider this resource references.", - "longDescription": "The value of this property shall be the type of external account provider referenced by this resource.", + "deprecated": "This property is deprecated because the account provider type is known when used in the LDAP and ActiveDirectory objects.", + "description": "The type of external account provider to which this Service connects.", + "longDescription": "This property shall contain the type of external account provider to which this Service connects.", "readonly": true, - "versionAdded": "v1_3_0" + "versionAdded": "v1_3_0", + "versionDeprecated": "v1_5_0" }, "Authentication": { - "anyOf": [ - { - "$ref": "#/definitions/Authentication" - }, - { - "type": "null" - } - ], - "description": "This property contains the authentication information for the external account provider.", - "longDescription": "The value of this property shall contain the authentication information for the external account provider.", + "$ref": "#/definitions/Authentication", + "description": "The authentication information for the external account provider.", + "longDescription": "This property shall contain the authentication information for the external account provider.", "versionAdded": "v1_3_0" }, "Certificates": { "$ref": "http://redfish.dmtf.org/schemas/v1/CertificateCollection.json#/definitions/CertificateCollection", - "description": "This is a reference to a collection of certificates used for the external account provider.", - "longDescription": "The value of this property shall be a link to a collection of type CertificateCollection.", + "description": "The link to a collection of certificates that the external account provider uses.", + "longDescription": "This property shall contain a link to a Resource Collection of certificates of the CertificateCollection type that the external account provider uses.", "readonly": true, "versionAdded": "v1_4_0" }, "LDAPService": { - "anyOf": [ - { - "$ref": "#/definitions/LDAPService" - }, - { - "type": "null" - } - ], - "description": "This property contains additional mapping information needed to parse a generic LDAP service.", - "longDescription": "The value of this property shall contain any additional mapping information needed to parse a generic LDAP service.", + "$ref": "#/definitions/LDAPService", + "description": "The additional mapping information needed to parse a generic LDAP service.", + "longDescription": "This property shall contain any additional mapping information needed to parse a generic LDAP service. This property should only be present inside the LDAP property.", "versionAdded": "v1_3_0" }, "RemoteRoleMapping": { - "description": "This property contains a collection of the mapping rules to convert the external account providers account information to the local Redfish Role.", + "description": "The mapping rules to convert the external account providers account information to the local Redfish Role.", "items": { "anyOf": [ { @@ -403,26 +398,26 @@ } ] }, - "longDescription": "This property shall contain a collection of the mapping rules to convert the external account providers account information to the local Redfish Role.", + "longDescription": "This property shall contain a set of the mapping rules that are used to convert the external account providers account information to the local Redfish Role.", "type": "array", "versionAdded": "v1_3_0" }, "ServiceAddresses": { - "description": "This property contains the addresses of the user account providers this resource references. The format of this field depends on the Type.", + "description": "The addresses of the user account providers to which this external account provider links. The format of this field depends on the type of external account provider.", "items": { "type": [ "string", "null" ] }, - "longDescription": "The value of this property shall be the addresses of the account providers this resource references. The format of this field depends on the Type of the ExternalAccountProvider. Each item in the array shall contain a single address. Services may define their own behavior for managing multiple addresses.", + "longDescription": "This property shall contain the addresses of the account providers to which this external account provider links. The format of this field depends on the type of external account provider. Each item in the array shall contain a single address. Services may define their own behavior for managing multiple addresses.", "readonly": false, "type": "array", "versionAdded": "v1_3_0" }, "ServiceEnabled": { - "description": "This indicates whether this service is enabled.", - "longDescription": "The value of this property shall be a boolean indicating whether this service is enabled.", + "description": "An indication of whether this service is enabled.", + "longDescription": "This property shall indicate whether this service is enabled.", "readonly": false, "type": [ "boolean", @@ -435,10 +430,10 @@ }, "LDAPSearchSettings": { "additionalProperties": false, - "description": "Contains settings for searching a generic LDAP service.", - "longDescription": "This type shall contain all the required settings for searching a generic LDAP service.", + "description": "The settings to search a generic LDAP service.", + "longDescription": "This type shall contain all required settings to search a generic LDAP service.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -453,21 +448,21 @@ }, "properties": { "BaseDistinguishedNames": { - "description": "The base distinguished names to use when searching the LDAP service.", + "description": "The base distinguished names to use to search an external LDAP service.", "items": { "type": [ "string", "null" ] }, - "longDescription": "The value of this property shall be a collection of base distinguished names to use when searching the LDAP service.", + "longDescription": "This property shall contain an array of base distinguished names to use to search an external LDAP service.", "readonly": false, "type": "array", "versionAdded": "v1_3_0" }, "GroupNameAttribute": { - "description": "The attribute name that contains the name of the Group.", - "longDescription": "The value of this property shall be the attribute name that contains the name of the Group.", + "description": "The attribute name that contains the LDAP group name entry.", + "longDescription": "This property shall contain the attribute name that contains the LDAP group name.", "readonly": false, "type": [ "string", @@ -476,8 +471,8 @@ "versionAdded": "v1_3_0" }, "GroupsAttribute": { - "description": "The attribute name that contains the Groups for a user.", - "longDescription": "The value of this property shall be the attribute name that contains the Groups for a user.", + "description": "The attribute name that contains the groups for a user on the LDAP user entry.", + "longDescription": "This property shall contain the attribute name that contains the groups for an LDAP user entry.", "readonly": false, "type": [ "string", @@ -486,8 +481,8 @@ "versionAdded": "v1_3_0" }, "UsernameAttribute": { - "description": "The attribute name that contains the Username.", - "longDescription": "The value of this property shall be the attribute name that contains the Username.", + "description": "The attribute name that contains the LDAP user name entry.", + "longDescription": "This property shall contain the attribute name that contains the LDAP user name.", "readonly": false, "type": [ "string", @@ -500,10 +495,10 @@ }, "LDAPService": { "additionalProperties": false, - "description": "Contains settings for parsing a generic LDAP service.", - "longDescription": "This type shall contain all the required settings for parsing a generic LDAP service.", + "description": "The settings required to parse a generic LDAP service.", + "longDescription": "This type shall contain all required settings to parse a generic LDAP service.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -519,21 +514,14 @@ "properties": { "Oem": { "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem", - "description": "Oem extension object.", - "longDescription": "This object represents the Oem property. All values for resources described by this schema shall comply to the requirements as described in the Redfish specification.", + "description": "The OEM extension property.", + "longDescription": "This property shall contain the OEM extensions. All values for properties contained in this object shall conform to the Redfish Specification-described requirements.", "versionAdded": "v1_3_0" }, "SearchSettings": { - "anyOf": [ - { - "$ref": "#/definitions/LDAPSearchSettings" - }, - { - "type": "null" - } - ], - "description": "This property contains the settings needed to search an external LDAP service.", - "longDescription": "The value of this property shall contain the settings needed to search an external LDAP service.", + "$ref": "#/definitions/LDAPSearchSettings", + "description": "The required settings to search an external LDAP service.", + "longDescription": "This property shall contain the required settings to search an external LDAP service.", "versionAdded": "v1_3_0" } }, @@ -543,26 +531,32 @@ "enum": [ "Enabled", "Disabled", - "Fallback" + "Fallback", + "LocalFirst" ], "enumDescriptions": { - "Disabled": "Authentication via accounts defined in this AccountService is disabled.", - "Enabled": "Authentication via accounts defined in this AccountService is enabled.", - "Fallback": "Authentication via accounts defined in this AccountService is only used if there are external account providers that are currently unreachable." + "Disabled": "The service never authenticates users based on the Account Service-defined accounts collection.", + "Enabled": "The service authenticates users based on the Account Service-defined accounts collection.", + "Fallback": "The service authenticates users based on the Account Service-defined accounts collection only if any external account providers are currently unreachable.", + "LocalFirst": "The service first authenticates users based on the Account Service-defined accounts collection. If authentication fails, the Service authenticates by using external account providers." }, "enumLongDescriptions": { - "Disabled": "This value shall be used to indicate that the service will never authenticate users based on the Accounts collection within this AccountService.", - "Enabled": "This value shall be used to indicate that the service will authenticate users based on the Accounts collection within this AccountService.", - "Fallback": "This value shall be used to indicate that the service will authenticate users based on the Accounts collection within this AccountService only if there are external account providers that are currently unreachable." + "Disabled": "The service shall never authenticate users based on the Account Service-defined Accounts Resource Collection.", + "Enabled": "The service shall authenticate users based on the Account Service-defined Accounts Resource Collection.", + "Fallback": "The service shall authenticate users based on the Account Service-defined Accounts Resource Collection only if any external account providers are currently unreachable.", + "LocalFirst": "The service shall first authenticate users based on the Account Service-defined Accounts Resource Collection. If authentication fails, the Service shall authenticate by using external account providers." + }, + "enumVersionAdded": { + "LocalFirst": "v1_6_0" }, "type": "string" }, "OemActions": { "additionalProperties": true, - "description": "The available OEM specific actions for this resource.", - "longDescription": "This type shall contain any additional OEM actions for this resource.", + "description": "The available OEM-specific actions for this Resource.", + "longDescription": "This type shall contain the available OEM-specific actions for this Resource.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -580,10 +574,10 @@ }, "RoleMapping": { "additionalProperties": false, - "description": "Contains mapping rules to convert the external account providers account information to the local Redfish Role.", - "longDescription": "This type shall contain mapping rules to convert the external account providers account information to the local Redfish Role.", + "description": "The mapping rules that are used to convert the external account providers account information to the local Redfish Role.", + "longDescription": "This type shall contain mapping rules that are used to convert the external account providers account information to the local Redfish Role.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -598,8 +592,8 @@ }, "properties": { "LocalRole": { - "description": "The name of the local role in which to map the remote user or group.", - "longDescription": "The value of this property shall contain the value of the RoleId property within a Role resource on this Redfish service in which to map the remote user or group.", + "description": "The name of the local Redfish Role to which to map the remote user or group.", + "longDescription": "This property shall contain the RoleId property value within a Role Resource on this Redfish Service to which to map the remote user or group.", "readonly": false, "type": [ "string", @@ -609,13 +603,13 @@ }, "Oem": { "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem", - "description": "Oem extension object.", - "longDescription": "This object represents the Oem property. All values for resources described by this schema shall comply to the requirements as described in the Redfish specification.", + "description": "The OEM extension property.", + "longDescription": "This property shall contain the OEM extensions. All values for properties contained in this object shall conform to the Redfish Specification-described requirements.", "versionAdded": "v1_3_0" }, "RemoteGroup": { - "description": "This property is the name of the remote group (or in the case of a Redfish Service, remote role) that will be mapped to the local role referenced by this entity.", - "longDescription": "The value of this property shall contain the name of the remote group (or in the case of a Redfish Service, remote role) that will be mapped to the local role referenced by this entity.", + "description": "The name of the remote group, or the remote role in the case of a Redfish Service, that maps to the local Redfish Role to which this entity links.", + "longDescription": "This property shall contain the name of the remote group, or the remote role in the case of a Redfish Service, that maps to the local Redfish Role to which this entity links.", "readonly": false, "type": [ "string", @@ -624,8 +618,8 @@ "versionAdded": "v1_3_0" }, "RemoteUser": { - "description": "This property is the name of the remote user that will be mapped to the local role referenced by this entity.", - "longDescription": "The value of this property shall contain the name of the remote user that will be mapped to the local role referenced by this entity.", + "description": "The name of the remote user that maps to the local Redfish Role to which this entity links.", + "longDescription": "This property shall contain the name of the remote user that maps to the local Redfish Role to which this entity links.", "readonly": false, "type": [ "string", @@ -638,6 +632,6 @@ } }, "owningEntity": "DMTF", - "release": "2018.3", - "title": "#AccountService.v1_4_0.AccountService" + "release": "2019.2", + "title": "#AccountService.v1_6_0.AccountService" } \ No newline at end of file diff --git a/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/ActionInfo/ActionInfo.json b/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/ActionInfo/ActionInfo.json index 76ebef94..73ffca28 100644 --- a/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/ActionInfo/ActionInfo.json +++ b/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/ActionInfo/ActionInfo.json @@ -1,14 +1,15 @@ { + "$id": "http://redfish.dmtf.org/schemas/v1/ActionInfo.v1_1_2.json", "$ref": "#/definitions/ActionInfo", "$schema": "http://redfish.dmtf.org/schemas/v1/redfish-schema-v1.json", - "copyright": "Copyright 2014-2018 DMTF. For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright", + "copyright": "Copyright 2014-2019 DMTF. For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright", "definitions": { "ActionInfo": { "additionalProperties": false, - "description": "The ActionInfo schema describes the parameters and other information necessary to perform a Redfish Action on a particular Action target. Parameter support can differ between vendors and even between instances of a resource. This data can be used to ensure Action requests from applications contain supported parameters.", - "longDescription": "This resource shall be used to represent information about the supported parameters for an Action within a Redfish implementation.", + "description": "The ActionInfo schema defines the supported parameters and other information for a Redfish action. Supported parameters can differ among vendors and even among Resource instances. This data can ensure that action requests from applications contain supported parameters.", + "longDescription": "This Resource shall represent the supported parameters and other information for a Redfish action on a target within a Redfish implementation. Supported parameters can differ among vendors and even among Resource instances. This data can ensure that action requests from applications contain supported parameters.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -23,16 +24,16 @@ }, "properties": { "@odata.context": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/context" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/context" }, "@odata.etag": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/etag" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/etag" }, "@odata.id": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/id" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/id" }, "@odata.type": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/type" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/type" }, "Description": { "anyOf": [ @@ -55,15 +56,15 @@ }, "Oem": { "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem", - "description": "This is the manufacturer/provider specific extension moniker used to divide the Oem object into sections.", - "longDescription": "The value of this string shall be of the format for the reserved word *Oem*." + "description": "The OEM extension property.", + "longDescription": "This property shall contain the OEM extensions. All values for properties that this object contains shall conform to the Redfish Specification-described requirements." }, "Parameters": { - "description": "The parameters associated with the specified Redfish Action.", + "description": "The list of parameters included in the specified Redfish action.", "items": { "$ref": "#/definitions/Parameters" }, - "longDescription": "This property shall contain a list of parameters associated with a Redfish Action associated with this resource.", + "longDescription": "This property shall list the parameters included in the specified Redfish action for this Resource.", "type": "array" } }, @@ -86,7 +87,7 @@ "ObjectArray" ], "enumDescriptions": { - "Boolean": "A boolean (true or false).", + "Boolean": "A boolean.", "Number": "A number.", "NumberArray": "An array of numbers.", "Object": "An embedded JSON object.", @@ -98,10 +99,10 @@ }, "Parameters": { "additionalProperties": false, - "description": "A parameter associated with the specified Redfish Action.", - "longDescription": "This property shall contain information about a specific parameter associated with a Redfish Action associated with this resource.", + "description": "The information about a parameter included in a Redfish action for this Resource.", + "longDescription": "This property shall contain information about a parameter included in a Redfish Action for this Resource.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -116,14 +117,14 @@ }, "properties": { "AllowableValues": { - "description": "A list of values for this parameter supported by this Action target.", + "description": "The allowable values for this parameter as applied to this action target.", "items": { "type": [ "string", "null" ] }, - "longDescription": "This property shall indicate the allowable values for this parameter as applied to this Action target.", + "longDescription": "This property shall indicate the allowable values for this parameter as applied to this action target.", "readonly": true, "type": "array" }, @@ -136,37 +137,39 @@ "type": "null" } ], - "description": "The JSON property type used for this parameter.", - "longDescription": "This property shall indicate the JSON property type of the parameter.", + "description": "The JSON property type for this parameter.", + "longDescription": "This property shall contain the JSON property type for this parameter.", "readonly": true }, "MaximumValue": { - "description": "The maximum supported value of this parameter.", - "longDescription": "This property shall indicate the maximum value of an integer or number type parameter supported by this service. This property shall not be present for parameters that are of types other than integer or number.", + "description": "The maximum supported value for this parameter.", + "longDescription": "This integer or number property shall contain the maximum value that this service supports. This property shall not be present for non-integer or number parameters.", "readonly": true, "type": [ "number", "null" - ] + ], + "versionAdded": "v1_1_0" }, "MinimumValue": { "description": "The minimum supported value for this parameter.", - "longDescription": "This property shall indicate the minimum value of an integer or number type parameter supported by this service. This property shall not be present for parameters that are of types other than integer or number.", + "longDescription": "This integer or number property shall contain the minimum value that this service supports. This property shall not be present for parameters that are of types other than integer or number.", "readonly": true, "type": [ "number", "null" - ] + ], + "versionAdded": "v1_1_0" }, "Name": { - "description": "The name of the parameter for this Action.", - "longDescription": "This property shall contain the name of the parameter used by the associated Redfish Action.", + "description": "The name of the parameter for this action.", + "longDescription": "This property shall contain the name of the parameter included in a Redfish action.", "readonly": true, "type": "string" }, "ObjectDataType": { - "description": "The OData Type of an object-based parameter.", - "longDescription": "This property shall describe the entity type definition (in @odata.type format) for the parameter. This property shall be required for parameters with a DataType of Object or ObjectArray, and shall not be present for parameters with other DataType(s).", + "description": "The data type of an object-based parameter.", + "longDescription": "This property shall describe the entity type definition in `@odata.type` format for the parameter. This property shall be required for parameters with a data type of `Object` or `ObjectArray`, and shall not be present for parameters with other data types.", "readonly": true, "type": [ "string", @@ -174,8 +177,8 @@ ] }, "Required": { - "description": "Indicates whether the parameter is required to perform this Action.", - "longDescription": "This property shall return true if the parameter is required to be present to perform the associated Action, and shall be false if the parameter is not required (optional) to perform the associated Action.", + "description": "An indication of whether the parameter is required to complete this action.", + "longDescription": "This property shall indicate whether the parameter is required to complete this action.", "readonly": true, "type": "boolean" } @@ -187,5 +190,6 @@ } }, "owningEntity": "DMTF", - "title": "#ActionInfo.v1_1_0.ActionInfo" + "release": "2018.2", + "title": "#ActionInfo.v1_1_2.ActionInfo" } \ No newline at end of file diff --git a/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/Assembly/Assembly.json b/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/Assembly/Assembly.json index c575ab5c..3fbcc1b6 100644 --- a/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/Assembly/Assembly.json +++ b/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/Assembly/Assembly.json @@ -1,14 +1,15 @@ { + "$id": "http://redfish.dmtf.org/schemas/v1/Assembly.v1_2_2.json", "$ref": "#/definitions/Assembly", "$schema": "http://redfish.dmtf.org/schemas/v1/redfish-schema-v1.json", - "copyright": "Copyright 2014-2018 DMTF. For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright", + "copyright": "Copyright 2014-2019 DMTF. For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright", "definitions": { "Actions": { "additionalProperties": false, - "description": "The available actions for this resource.", - "longDescription": "This type shall contain the available actions for this resource.", + "description": "The available actions for this Resource.", + "longDescription": "This type shall contain the available actions for this Resource.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -24,18 +25,18 @@ "properties": { "Oem": { "$ref": "#/definitions/OemActions", - "description": "This property contains the available OEM specific actions for this resource.", - "longDescription": "This property shall contain any additional OEM actions for this resource." + "description": "The available OEM-specific actions for this Resource.", + "longDescription": "This property shall contain the available OEM-specific actions for this Resource." } }, "type": "object" }, "Assembly": { "additionalProperties": false, - "description": "This is the schema definition for the Assembly properties.", - "longDescription": "This resource shall be used to represent an assembly information resource for a Redfish implementation.", + "description": "The Assembly schema defines an assembly. Assembly information contains details about a device, such as part number, serial number, manufacturer, and production date. It also provides access to the original data for the assembly.", + "longDescription": "This Resource shall represent an assembly for a Redfish implementation. Assembly information contains details about a device, such as part number, serial number, manufacturer, and production date. It also provides access to the original data for the assembly.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -50,34 +51,34 @@ }, "properties": { "@odata.context": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/context" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/context" }, "@odata.etag": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/etag" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/etag" }, "@odata.id": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/id" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/id" }, "@odata.type": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/type" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/type" }, "Actions": { "$ref": "#/definitions/Actions", - "description": "The available actions for this resource.", - "longDescription": "The Actions property shall contain the available actions for this resource." + "description": "The available actions for this Resource.", + "longDescription": "This property shall contain the available actions for this Resource." }, "Assemblies": { "autoExpand": true, - "description": "This is the definition for an assembly information record.", + "description": "The assembly records.", "items": { "$ref": "#/definitions/AssemblyData" }, - "longDescription": "These properties shall be the definition for assembly records for a Redfish implementation.", + "longDescription": "These properties shall define assembly records for a Redfish implementation.", "readonly": false, "type": "array" }, "Assemblies@odata.count": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/count" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/count" }, "Description": { "anyOf": [ @@ -100,8 +101,8 @@ }, "Oem": { "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem", - "description": "This is the manufacturer/provider specific extension moniker used to divide the Oem object into sections.", - "longDescription": "The value of this string shall be of the format for the reserved word *Oem*." + "description": "The OEM extension property.", + "longDescription": "This property shall contain the OEM extensions. All values for properties that this object contains shall conform to the Redfish Specification-described requirements." } }, "required": [ @@ -115,7 +116,7 @@ "AssemblyData": { "additionalProperties": false, "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -130,17 +131,17 @@ }, "properties": { "@odata.id": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/id" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/id" }, "Actions": { "$ref": "#/definitions/AssemblyDataActions", - "description": "The available actions for this resource.", - "longDescription": "The Actions property shall contain the available actions for this resource." + "description": "The available actions for this Resource.", + "longDescription": "This property shall contain the available actions for this Resource." }, "BinaryDataURI": { - "description": "URI that provides the ability to access an image of the assembly information.", - "format": "uri", - "longDescription": "The value of this property shall be a URI at which the Service provides for the download of the OEM-specific binary image of the assembly data. An HTTP GET from this URI shall return a response payload of MIME time application/octet-stream. An HTTP PUT to this URI, if supported by the Service, shall replace the binary image of the assembly.", + "description": "The URI at which to access an image of the assembly information.", + "format": "uri-reference", + "longDescription": "This property shall contain the URI at which to access an image of the assembly information, using the Redfish protocol and authentication methods. The Service provides this URI for the download of the OEM-specific binary image of the assembly data. An HTTP GET from this URI shall return a response payload of MIME time `application/octet-stream`. If the service supports it, an HTTP PUT to this URI shall replace the binary image of the assembly.", "readonly": true, "type": [ "string", @@ -148,8 +149,8 @@ ] }, "Description": { - "description": "Description of the Assembly.", - "longDescription": "The value of this property shall be a description of this assembly.", + "description": "The description of the assembly.", + "longDescription": "This property shall contain the description of the assembly.", "readonly": true, "type": [ "string", @@ -157,8 +158,8 @@ ] }, "EngineeringChangeLevel": { - "description": "Engineering change level of the Assembly.", - "longDescription": "The value of this property shall be the Engineering Change Level (ECL) or revision of the assembly.", + "description": "The engineering change level of the assembly.", + "longDescription": "This property shall contain the engineering change level or revision of the assembly.", "readonly": true, "type": [ "string", @@ -166,14 +167,14 @@ ] }, "MemberId": { - "description": "This is the identifier for the member within the collection.", - "longDescription": "The value of this string shall uniquely identify the member within the collection.", + "description": "The identifier for the member within the collection.", + "longDescription": "This property shall uniquely identify the member within the collection. For services supporting Redfish v1.6 or higher, this value shall contain the zero-based array index.", "readonly": true, "type": "string" }, "Model": { - "description": "Model number of the Assembly.", - "longDescription": "The value of this property shall be the name by which the manufacturer generally refers to the assembly.", + "description": "The model number of the assembly.", + "longDescription": "This property shall contain the name by which the manufacturer generally refers to the assembly.", "readonly": true, "type": [ "string", @@ -181,8 +182,8 @@ ] }, "Name": { - "description": "Name of the Assembly.", - "longDescription": "The value of this property shall be the name of the assembly.", + "description": "The name of the assembly.", + "longDescription": "This property shall contain the name of the assembly.", "readonly": true, "type": [ "string", @@ -191,12 +192,12 @@ }, "Oem": { "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem", - "description": "This is the manufacturer/provider specific extension moniker used to divide the Oem object into sections.", - "longDescription": "The value of this string shall be of the format for the reserved word *Oem*." + "description": "The OEM extension property.", + "longDescription": "This property shall contain the OEM extensions. All values for properties that this object contains shall conform to the Redfish Specification-described requirements." }, "PartNumber": { - "description": "Part number of the Assembly.", - "longDescription": "The value of this property shall be the name of the assembly.", + "description": "The part number of the assembly.", + "longDescription": "This property shall contain the part number of the assembly.", "readonly": true, "type": [ "string", @@ -205,13 +206,14 @@ }, "PhysicalContext": { "$ref": "http://redfish.dmtf.org/schemas/v1/PhysicalContext.json#/definitions/PhysicalContext", - "description": "Describes the area or device to which this assembly data applies.", - "longDescription": "The value of this property shall be a description of the physical context for this assembly data.", - "readonly": true + "description": "The area or device to which the assembly data applies.", + "longDescription": "This property shall contain a description of the physical context for the assembly data.", + "readonly": true, + "versionAdded": "v1_2_0" }, "Producer": { - "description": "Producer or manufacturer of the Assembly.", - "longDescription": "The value of this property shall be the name of the company which supplied or manufactured this assembly. This value shall be equal to the 'Manufacturer' field in a PLDM FRU structure, if applicable, for this assembly.", + "description": "The producer or manufacturer of the assembly.", + "longDescription": "This property shall contain the name of the company that produced or manufactured the assembly. This value shall be equal to the 'Manufacturer' field value in a PLDM FRU structure, if applicable, for the assembly.", "readonly": true, "type": [ "string", @@ -219,9 +221,9 @@ ] }, "ProductionDate": { - "description": "Production date of the Assembly.", + "description": "The production date of the assembly.", "format": "date-time", - "longDescription": "The value of this property shall be the date of production or manufacture for this assembly. The time of day portion of the property shall be '00:00:00Z' if the time of day is unknown.", + "longDescription": "This property shall contain the date of production or manufacture for the assembly. The time of day portion of the property shall be `00:00:00Z`, if the time of day is unknown.", "readonly": true, "type": [ "string", @@ -229,8 +231,8 @@ ] }, "SKU": { - "description": "SKU of the Assembly.", - "longDescription": "The value of this property shall be the name of the assembly.", + "description": "The SKU of the assembly.", + "longDescription": "This property shall contain the SKU of the assembly.", "readonly": true, "type": [ "string", @@ -238,17 +240,18 @@ ] }, "SerialNumber": { - "description": "The serial number of this assembly.", - "longDescription": "The value of this property shall be a manufacturer-allocated number used to identify the assembly.", + "description": "The serial number of the assembly.", + "longDescription": "This property shall contain a manufacturer-allocated number that identifies the assembly.", "readonly": true, "type": [ "string", "null" - ] + ], + "versionAdded": "v1_2_0" }, "SparePartNumber": { - "description": "Spare part number of the Assembly.", - "longDescription": "The value of this property shall be the name of the assembly.", + "description": "The spare part number of the assembly.", + "longDescription": "This property shall contain the spare part number of the assembly.", "readonly": true, "type": [ "string", @@ -257,12 +260,13 @@ }, "Status": { "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Status", - "description": "This property describes the status and health of the resource and its children.", - "longDescription": "This property shall contain any status or health properties of the resource." + "description": "The status and health of the Resource and its subordinate or dependent Resources.", + "longDescription": "This property shall contain any status or health properties of the Resource.", + "versionAdded": "v1_1_0" }, "Vendor": { - "description": "Vendor of the Assembly.", - "longDescription": "The value of this property shall be the name of the company which provides the final product that includes this assembly. This value shall be equal to the 'Vendor' field in a PLDM FRU structure, if applicable, for this assembly.", + "description": "The vendor of the assembly.", + "longDescription": "This property shall contain the name of the company that provides the final product that includes this assembly. This value shall be equal to the 'Vendor' field value in a PLDM FRU structure, if applicable, for the assembly.", "readonly": true, "type": [ "string", @@ -270,8 +274,8 @@ ] }, "Version": { - "description": "Version of the Assembly.", - "longDescription": "The value of this property shall be the version of the assembly as determined by the vendor or supplier.", + "description": "The version of the assembly.", + "longDescription": "This property shall contain the version of the assembly as determined by the vendor or supplier.", "readonly": true, "type": [ "string", @@ -287,10 +291,10 @@ }, "AssemblyDataActions": { "additionalProperties": false, - "description": "The available actions for this resource.", - "longDescription": "This type shall contain the available actions for this resource.", + "description": "The available actions for this Resource.", + "longDescription": "This type shall contain the available actions for this Resource.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -306,18 +310,18 @@ "properties": { "Oem": { "$ref": "#/definitions/AssemblyDataOemActions", - "description": "This property contains the available OEM specific actions for this resource.", - "longDescription": "This property shall contain any additional OEM actions for this resource." + "description": "The available OEM-specific actions for this Resource.", + "longDescription": "This property shall contain the available OEM-specific actions for this Resource." } }, "type": "object" }, "AssemblyDataOemActions": { "additionalProperties": true, - "description": "The available OEM specific actions for this resource.", - "longDescription": "This type shall contain any additional OEM actions for this resource.", + "description": "The available OEM-specific actions for this Resource.", + "longDescription": "This type shall contain the available OEM-specific actions for this Resource.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -335,10 +339,10 @@ }, "OemActions": { "additionalProperties": true, - "description": "The available OEM specific actions for this resource.", - "longDescription": "This type shall contain any additional OEM actions for this resource.", + "description": "The available OEM-specific actions for this Resource.", + "longDescription": "This type shall contain the available OEM-specific actions for this Resource.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -356,5 +360,6 @@ } }, "owningEntity": "DMTF", - "title": "#Assembly.v1_2_0.Assembly" + "release": "2018.2", + "title": "#Assembly.v1_2_2.Assembly" } \ No newline at end of file diff --git a/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/AttributeRegistry/AttributeRegistry.json b/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/AttributeRegistry/AttributeRegistry.json index 09cd4e82..2bb4553a 100644 --- a/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/AttributeRegistry/AttributeRegistry.json +++ b/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/AttributeRegistry/AttributeRegistry.json @@ -1,15 +1,15 @@ { - "$id": "http://redfish.dmtf.org/schemas/v1/AttributeRegistry.v1_3_0.json", + "$id": "http://redfish.dmtf.org/schemas/v1/AttributeRegistry.v1_3_2.json", "$ref": "#/definitions/AttributeRegistry", "$schema": "http://redfish.dmtf.org/schemas/v1/redfish-schema-v1.json", - "copyright": "Copyright 2014-2018 DMTF. For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright", + "copyright": "Copyright 2014-2019 DMTF. For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright", "definitions": { "Actions": { "additionalProperties": false, - "description": "The available actions for this resource.", - "longDescription": "This type shall contain the available actions for this resource.", + "description": "The available actions for this Resource.", + "longDescription": "This type shall contain the available actions for this Resource.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -25,8 +25,8 @@ "properties": { "Oem": { "$ref": "#/definitions/OemActions", - "description": "This property contains the available OEM specific actions for this resource.", - "longDescription": "This property shall contain any additional OEM actions for this resource.", + "description": "The available OEM-specific actions for this Resource.", + "longDescription": "This property shall contain the available OEM-specific actions for this Resource.", "versionAdded": "v1_1_0" } }, @@ -34,10 +34,10 @@ }, "AttributeRegistry": { "additionalProperties": false, - "description": "The AttributeRegistry schema contains a set of key-value pairs that represents the structure of a Registry. It includes mechanisms for building user interfaces (menus), allowing consistent navigation of the contents. The Attribute Registry is specific to a particular implementation or product. The attributes and property names are not standardized.", - "longDescription": "This resource shall be used to represent an Attribute registry for a Redfish implementation.", + "description": "The AttributeRegistry schema contains a set of key-value pairs that represent the structure of an Attribute Registry. It includes mechanisms for building user interfaces, or menus, allowing consistent navigation of the contents. The Attribute Registry is specific to an implementation or product. The attributes and property names are not standardized.", + "longDescription": "This Resource shall represent an Attribute Registry for a Redfish implementation.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -51,22 +51,13 @@ } }, "properties": { - "@odata.context": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/context" - }, - "@odata.etag": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/etag" - }, - "@odata.id": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/id" - }, "@odata.type": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/type" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/type" }, "Actions": { "$ref": "#/definitions/Actions", - "description": "The available actions for this resource.", - "longDescription": "The Actions property shall contain the available actions for this resource.", + "description": "The available actions for this Resource.", + "longDescription": "This property shall contain the available actions for this Resource.", "versionAdded": "v1_1_0" }, "Description": { @@ -85,8 +76,8 @@ "readonly": true }, "Language": { - "description": "This is the RFC 5646 compliant language code for the registry.", - "longDescription": "The value of this property shall be a string consisting of an RFC 5646 language code.", + "description": "The RFC5646-conformant language code for the Attribute Registry.", + "longDescription": "This property shall contain an RFC5646-conformant language code.", "readonly": true, "type": "string" }, @@ -96,32 +87,33 @@ }, "Oem": { "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem", - "description": "This is the manufacturer/provider specific extension moniker used to divide the Oem object into sections.", - "longDescription": "The value of this string shall be of the format for the reserved word *Oem*." + "description": "The OEM extension property.", + "longDescription": "This property shall contain the OEM extensions. All values for properties that this object contains shall conform to the Redfish Specification-described requirements." }, "OwningEntity": { - "description": "This is the organization or company that publishes this registry.", - "longDescription": "The value of this property shall be a string that represents the publisher of this registry.", + "description": "The organization or company that publishes this Attribute Registry.", + "longDescription": "This property shall represent the publisher of this Attribute Registry.", "readonly": true, "type": "string" }, "RegistryEntries": { "$ref": "#/definitions/RegistryEntries", - "description": "List of all attributes and their metadata for this component.", - "longDescription": "The value of this property shall a list of all attributes for this component, along with their possible values, dependencies, and other metadata." + "description": "The list of all attributes and their metadata for this component.", + "longDescription": "This property shall list attributes for this component, along with their possible values, dependencies, and other metadata." }, "RegistryVersion": { - "description": "This is the attribute registry version which is used in the middle portion of a AttributeRegistry.", - "longDescription": "The value of this property shall be the version of this attribute registry. The format of this string shall be of the format majorversion.minorversion.errata in compliance with Protocol Version section of the Redfish specification.", + "description": "The Attribute Registry version.", + "longDescription": "This property shall contain the version of this Attribute Registry.", + "pattern": "^\\d+\\.\\d+\\.\\d+$", "readonly": true, "type": "string" }, "SupportedSystems": { - "description": "Array of systems supported by this attribute registry.", + "description": "An array of systems that this Attribute Registry supports.", "items": { "$ref": "#/definitions/SupportedSystems" }, - "longDescription": "The value of this property shall be an array containing a list of systems supported by this attribute registry.", + "longDescription": "This property shall contain an array containing a list of systems that this Attribute Registry supports.", "type": "array" } }, @@ -129,7 +121,6 @@ "Language", "RegistryVersion", "OwningEntity", - "@odata.id", "@odata.type", "Id", "Name" @@ -145,20 +136,20 @@ "Password" ], "enumDescriptions": { - "Boolean": "The attributes that are true or false.", - "Enumeration": "The attributes that include a list of the known possible enumerated values.", - "Integer": "The attributes that have integer numeric values.", - "Password": "The attributes that include password values and are not displayed as plain text. The value shall be null for GET requests.", - "String": "The attributes that include free form text in their values." + "Boolean": "A flag with a `true` or `false` value.", + "Enumeration": "A list of the known possible enumerated values.", + "Integer": "An integer value.", + "Password": "Password values that do not appear as plain text. The value shall be null in responses.", + "String": "Free-form text in their values." }, "type": "string" }, "AttributeValue": { "additionalProperties": false, - "description": "A possible value for attributes of type 'Enumeration'.", - "longDescription": "This type shall describe a possible value of an attribute of type 'Enumeration'.", + "description": "A possible value for an enumeration attribute.", + "longDescription": "This type shall describe a possible enumeration attribute value.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -173,8 +164,8 @@ }, "properties": { "ValueDisplayName": { - "description": "A user-readable display string of the value of the attribute in the defined 'Language'.", - "longDescription": "The value of this property shall be a string representing the user-readable display string of the value of the attribute in the defined 'Language'.", + "description": "A user-readable display string of the value for the attribute in the defined language.", + "longDescription": "This property shall contain a string representing the user-readable display string of the value for the attribute in the defined language.", "readonly": true, "type": [ "string", @@ -182,8 +173,8 @@ ] }, "ValueName": { - "description": "The unique value name of the attribute.", - "longDescription": "The value of this property shall be a string representing the value name of the attribute. ValueName is a unique string within the list of possible values in the 'Value' array of a given attribute.", + "description": "The unique value name for the attribute.", + "longDescription": "This property shall contain a string representing the value name for the attribute. ValueName is a unique string within the list of possible values in the Value array for an attribute.", "readonly": true, "type": "string" } @@ -195,10 +186,10 @@ }, "Attributes": { "additionalProperties": false, - "description": "An attribute and its possible values.", + "description": "An attribute and its possible values and other metadata.", "longDescription": "This type shall describe an attribute and its possible values and other metadata.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -213,15 +204,15 @@ }, "properties": { "AttributeName": { - "description": "The unique name of the attribute.", - "longDescription": "The value of this property shall be the name of this attribute that is unique in this registry.", + "description": "The unique name for the attribute.", + "longDescription": "This property shall contain the name of this attribute that is unique in this Attribute Registry.", "pattern": "^[A-Za-z][A-Za-z0-9_]+$", "readonly": true, "type": "string" }, "CurrentValue": { - "description": "Placeholder of the current value of the attribute.", - "longDescription": "Placeholder of the current value of the attribute, to aid in evaluating dependencies. The current value of an attribute might be affected by the results of evaluating the 'Dependencies' array.", + "description": "The placeholder of the current value for the attribute.", + "longDescription": "This property shall contain the placeholder of the current value for the attribute, to aid in evaluating dependencies. The evaluation results of the Dependencies array might affect the current attribute value.", "readonly": true, "type": [ "string", @@ -231,8 +222,8 @@ ] }, "DefaultValue": { - "description": "The default current value of the attribute.", - "longDescription": "The value of this property shall be the default value of the attribute.", + "description": "The default value for the attribute.", + "longDescription": "This property shall contain the default value for the attribute.", "readonly": true, "type": [ "string", @@ -242,8 +233,8 @@ ] }, "DisplayName": { - "description": "The user-readable display string of the attribute in the defined 'Language'.", - "longDescription": "The value of this property shall be the user-readable display string of the attribute in the defined 'Language'.", + "description": "The user-readable display string for the attribute in the defined language.", + "longDescription": "This property shall contain the user-readable display string for the attribute in the defined language.", "readonly": true, "type": [ "string", @@ -251,8 +242,8 @@ ] }, "DisplayOrder": { - "description": "The numeric value describing the ascending order that the attribute is displayed relative to other attributes.", - "longDescription": "The value of this property shall be a number the describes the ascending order in which this attribute is displayed, relative to other attributes.", + "description": "The ascending order, as a number, in which this attribute appears relative to other attributes.", + "longDescription": "This property shall contain the ascending order, as a number, in which this attribute appears relative to other attributes.", "readonly": true, "type": [ "integer", @@ -260,8 +251,8 @@ ] }, "GrayOut": { - "description": "The gray-out state of this attribute.", - "longDescription": "The value of this property shall be a boolean describing the gray-out state of this attribute. When set to true, a grayed-out attribute should be grayed out in user interfaces. But, unlike ReadOnly, the value of grayed-out attributes might still be modified. The grayout state of an attribute might be affected by the results of evaluating the 'Dependencies' array.", + "description": "An indication of whether this attribute is grayed out. A grayed-out attribute is not active and is grayed out in user interfaces but the attribute value can be modified.", + "longDescription": "This property shall indicate whether this attribute is grayed out. A grayed-out attribute is not active and is grayed out in user interfaces but the attribute value can be modified. The evaluation results of the Dependencies array might affect the grayed-out state of an attribute.", "readonly": true, "type": [ "boolean", @@ -270,7 +261,7 @@ }, "HelpText": { "description": "The help text for the attribute.", - "longDescription": "The value of this property shall be the help text of the attribute.", + "longDescription": "This property shall contain the help text for the attribute.", "readonly": true, "type": [ "string", @@ -278,8 +269,8 @@ ] }, "Hidden": { - "description": "The hidden state of this attribute.", - "longDescription": "The value of this property shall be a boolean describing the visibility state of this attribute. When set to true, a hidden attribute should be hidden in user interfaces. The hidden state of an attribute might be affected by the results of evaluating the 'Dependencies' array.", + "description": "An indication of whether this attribute is hidden in user interfaces.", + "longDescription": "This property shall indicate whether this attribute is hidden in user interfaces. The evaluation results of the Dependencies array might affect the hidden state of an attribute.", "readonly": true, "type": [ "boolean", @@ -287,8 +278,8 @@ ] }, "Immutable": { - "description": "Defines whether this attribute is immutable or not.", - "longDescription": "The value of this property shall be a boolean describing the immutable state of this attribute. Immutable attributes should not be modified and are typically used to reflect a hardware state.", + "description": "An indication of whether this attribute is immutable. Immutable attributes shall not be modified and typically reflect a hardware state.", + "longDescription": "This property shall indicate whether this attribute is immutable. Immutable attributes shall not be modified and typically reflect a hardware state.", "readonly": true, "type": [ "boolean", @@ -296,8 +287,8 @@ ] }, "IsSystemUniqueProperty": { - "description": "Defines whether this attribute is unique for this system and should not be replicated.", - "longDescription": "The value of this property shall be a boolean describing this attribute is unique or not. A value of true indicates that the attribute is unique and should not be replicated.", + "description": "An indication of whether this attribute is unique for this system and should not be replicated.", + "longDescription": "This property shall indicate whether this attribute is unique.", "readonly": true, "type": [ "boolean", @@ -305,8 +296,8 @@ ] }, "LowerBound": { - "description": "The lower limit of the value of an attribute of type 'Integer'.", - "longDescription": "The value of this property shall be a number indicating the lower limit of the value of an attribute of type 'Integer'.", + "description": "The lower limit for an integer attribute.", + "longDescription": "This property shall contain a number indicating the lower limit for an integer attribute.", "readonly": true, "type": [ "integer", @@ -314,8 +305,8 @@ ] }, "MaxLength": { - "description": "The maximum character length of the value of an attribute of type 'String'.", - "longDescription": "The value of this property shall be a number indicating the maximum character length of the value of an attribute of type 'String'.", + "description": "The maximum character length of a string attribute.", + "longDescription": "This numeric property shall contain the maximum character length of an attribute of the String type.", "readonly": true, "type": [ "integer", @@ -323,8 +314,8 @@ ] }, "MenuPath": { - "description": "A path that describes the menu hierarchy of this attribute.", - "longDescription": "The value of this property shall be a string indicating the menu hierarchy of this attribute, in the form of a path to the menu names. It shall start with './' to indicate the root menu, followed by the menu names with '/' characters to delineate the menu traversal.", + "description": "The path that describes the menu hierarchy of this attribute.", + "longDescription": "This property shall contain the menu hierarchy of this attribute, in the form of a path to the menu names. It shall start with `./` to indicate the root menu, followed by the menu names with `/` characters to delineate the menu traversal.", "pattern": "^\\.\\/([^/]+(\\/[^/]+)*)?$", "readonly": true, "type": [ @@ -333,8 +324,8 @@ ] }, "MinLength": { - "description": "The minimum character length of the value of an attribute of type 'String'.", - "longDescription": "The value of this property shall be a number indicating the minimum character length of the value of an attribute of type 'String'.", + "description": "The minimum character length of the string attribute.", + "longDescription": "This property shall contain a number indicating the minimum character length of an attribute of the String type.", "readonly": true, "type": [ "integer", @@ -343,13 +334,13 @@ }, "Oem": { "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem", - "description": "Oem extension object.", - "longDescription": "This object represents the Oem property. All values for resources described by this schema shall comply to the requirements as described in the Redfish specification.", + "description": "The OEM extension property.", + "longDescription": "This property shall contain the OEM extensions. All values for properties contained in this object shall conform to the Redfish Specification-described requirements.", "versionAdded": "v1_3_0" }, "ReadOnly": { - "description": "The read-only state of this attribute.", - "longDescription": "The value of this property shall be a boolean describing the read-only state of attribute. A read-only attribute cannot be modified, and should be grayed out in user interfaces. The read-only state of an attribute might be affected by the results of evaluating the 'Dependencies' array.", + "description": "An indication of whether this attribute is read-only. A read-only attribute cannot be modified, and should be grayed out in user interfaces.", + "longDescription": "This property shall indicate whether this attribute is read-only. A read-only attribute cannot be modified, and should be grayed out in user interfaces. The evaluation results of the Dependencies array might affect the read-only state of an attribute.", "readonly": true, "type": [ "boolean", @@ -357,8 +348,8 @@ ] }, "ResetRequired": { - "description": "True if changing the value of this attribute requires a system or device reset in order to take effect.", - "longDescription": "The value of this property shall be a boolean describing the requirement for a system or device reset for this attribute value change to take effect.", + "description": "An indication of whether a system or device reset is required for this attribute value change to take effect.", + "longDescription": "This property shall indicate whether a system or device reset is required for this attribute value change to take effect.", "readonly": true, "type": [ "boolean", @@ -367,8 +358,8 @@ "versionAdded": "v1_2_0" }, "ScalarIncrement": { - "description": "The amount to increment or decrement the value of an attribute of type 'Integer' each time a user requests a value change.", - "longDescription": "The value of this property shall be a number indicating the amount to increment or decrement the value of an attribute of type 'Integer' each time a user requests a value change. A ScalarIncrement value of 0 indicates a free-form numeric user input.", + "description": "The amount to increment or decrement an integer attribute each time a user requests a value change. The `0` value indicates a free-form numeric user-input attribute.", + "longDescription": "This property shall contain a number indicating the amount to increment or decrement an integer attribute each time a user requests a value change. The `0` value indicates a free-form numeric user-input attribute.", "readonly": true, "type": [ "integer", @@ -377,13 +368,13 @@ }, "Type": { "$ref": "#/definitions/AttributeType", - "description": "The type of the attribute.", - "longDescription": "The value of this property shall be an enumeration describing type of the attribute.", + "description": "The attribute type.", + "longDescription": "This property shall contain an enumeration that describes the attribute type.", "readonly": true }, "UefiDevicePath": { "description": "The UEFI device path that qualifies this attribute.", - "longDescription": "This property shall contain the UEFI device path string used to qualify and locate the specific device for this Attribute, as defined by the UEFI Specification.", + "longDescription": "This property shall contain the UEFI Specification-defined UEFI device path that qualifies and locates this device for this attribute.", "readonly": true, "type": [ "string", @@ -392,22 +383,22 @@ "versionAdded": "v1_2_0" }, "UefiKeywordName": { - "description": "The UEFI KeywordString of the attribute.", - "longDescription": "The value of this property shall be the configuration KeywordString of this attribute, as defined in the UEFI Specification.", + "description": "The UEFI keyword string for this attribute.", + "longDescription": "This property shall contain the UEFI Specification-defined keyword for this attribute.", "readonly": true, "type": "string", "versionAdded": "v1_2_0" }, "UefiNamespaceId": { - "description": "The UEFI NamespaceId of the attribute.", - "longDescription": "The value of this property shall be the configuration NamespaceId of this attribute, as defined in the UEFI Specification.", + "description": "The UEFI namespace ID for the attribute.", + "longDescription": "This property shall contain the UEFI Specification-defined namespace ID for this attribute.", "readonly": true, "type": "string", "versionAdded": "v1_2_0" }, "UpperBound": { - "description": "The upper limit of the value of an attribute of type 'Integer'.", - "longDescription": "The value of this property shall be a number indicating the upper limit of the value of an attribute of type 'Integer'.", + "description": "The upper limit for an integer attribute.", + "longDescription": "This property shall contain a number indicating the upper limit for an integer attribute.", "readonly": true, "type": [ "integer", @@ -415,16 +406,16 @@ ] }, "Value": { - "description": "The array containing possible values for attributes of type 'Enumeration'.", + "description": "An array of the possible values for enumerated attribute values.", "items": { "$ref": "#/definitions/AttributeValue" }, - "longDescription": "The value of this property shall be an array containing the possible values of an attribute of type 'Enumeration'.", + "longDescription": "This property shall contain an array containing the possible values of an attribute of the Enumeration type.", "type": "array" }, "ValueExpression": { - "description": "A regular expression that is used to validate the value of the attribute. This is only applicable to attributes of type 'String' or 'Integer'.", - "longDescription": "The value of this property shall be a regular expression that is valid according to the Perl regular expression dialect. This string is used to validate the value of the attribute. This is only applicable to attributes of type 'String' or 'Integer'.", + "description": "A valid regular expression, according to the Perl regular expression dialect, that validates the attribute value. Applies to only string and integer attributes.", + "longDescription": "This property shall contain a valid regular expression, according to the Perl regular expression dialect, that validates the attribute value. Applies to only string and integer attributes.", "readonly": true, "type": [ "string", @@ -432,8 +423,8 @@ ] }, "WarningText": { - "description": "The warning text for changing the attribute.", - "longDescription": "The value of this property shall be the warning text of the attribute.", + "description": "The warning text for the attribute.", + "longDescription": "This property shall contain the warning text for the attribute.", "readonly": true, "type": [ "string", @@ -441,8 +432,8 @@ ] }, "WriteOnly": { - "description": "Defines whether this attribute is write-only. Such attributes revert back to their initial value after settings are applied.", - "longDescription": "The value of this property shall be a boolean describing the write-only state of this attribute. A write-only attribute reverts back to it's initial value after settings are applied.", + "description": "An indication of whether this attribute is write-only. A write-only attribute reverts to its initial value after settings are applied.", + "longDescription": "This property shall indicate whether this attribute is write-only. A write-only attribute reverts to its initial value after settings are applied.", "readonly": true, "type": [ "boolean", @@ -457,10 +448,10 @@ }, "Dependencies": { "additionalProperties": false, - "description": "A dependency of attributes on this component.", + "description": "The dependency of attributes on this component.", "longDescription": "This type shall describe a dependency of attributes on this component.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -476,12 +467,12 @@ "properties": { "Dependency": { "$ref": "#/definitions/Dependency", - "description": "The dependency expression for one or more Attributes in this Attribute Registry.", - "longDescription": "The value of this property shall be the dependency expression for one or more Attributes in this Attribute Registry." + "description": "The dependency expression for one or more attributes in this Attribute Registry.", + "longDescription": "This property shall contain the dependency expression for one or more attributes in this Attribute Registry." }, "DependencyFor": { "description": "The AttributeName of the attribute whose change triggers the evaluation of this dependency expression.", - "longDescription": "The value of this property shall be the AttributeName of the attribute whose change triggers the evaluation of this dependency expression.", + "longDescription": "This property shall contain the AttributeName of the attribute whose change triggers the evaluation of this dependency expression.", "pattern": "^[A-Za-z][A-Za-z0-9_]+$", "readonly": true, "type": "string" @@ -489,7 +480,7 @@ "Type": { "$ref": "#/definitions/DependencyType", "description": "The type of the dependency structure.", - "longDescription": "The value of this property shall be an enumeration describing type of the attribute dependency.", + "longDescription": "This property shall contain an enumeration that describes the type for the attribute dependency.", "readonly": true } }, @@ -497,10 +488,10 @@ }, "Dependency": { "additionalProperties": false, - "description": "The dependency expression for one or more Attributes in this Attribute Registry.", - "longDescription": "This type shall describe the dependency expression for one or more Attributes in this Attribute Registry.", + "description": "The dependency expression for one or more attributes in this Attribute Registry.", + "longDescription": "This type shall describe the dependency expression for one or more attributes in this Attribute Registry.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -515,29 +506,29 @@ }, "properties": { "MapFrom": { - "description": "Array of the map-from conditions for mapping dependency.", + "description": "An array of the map-from conditions for a mapping dependency.", "items": { "$ref": "#/definitions/MapFrom" }, - "longDescription": "The value of this property shall be an array containing the map-from conditions for a dependency of Type 'Map'.", + "longDescription": "This property shall contain an array containing the map-from conditions for a dependency of the Map type.", "type": "array" }, "MapToAttribute": { - "description": "The Name of the attribute that is affected by this dependency expression.", - "longDescription": "The value of this property shall be the AttributeName of the attribute that is affected by this dependency expression.", + "description": "The AttributeName of the attribute that is affected by this dependency expression.", + "longDescription": "This property shall contain the AttributeName of the attribute that is affected by this dependency expression.", "pattern": "^[A-Za-z][A-Za-z0-9_]+$", "readonly": true, "type": "string" }, "MapToProperty": { "$ref": "#/definitions/MapToProperty", - "description": "The meta-data property of the attribute specified in MapFromAttribute that is used to evaluate this dependency expression.", - "longDescription": "The value of this property shall be the meta-data property of the attribute specified in MapFromAttribute that is used to evaluate this dependency expression. For example, this could be the MapFromAttribute CurrentValue, or ReadOnly state.", + "description": "The metadata property for the attribute that contains the map-from condition that evaluates this dependency expression.", + "longDescription": "This property shall contain the metadata property for the attribute that the MapFromAttribute property specifies that evaluates this dependency expression. For example, this value could be the MapFromAttribute CurrentValue or ReadOnly state.", "readonly": true }, "MapToValue": { - "description": "The value that MapToProperty is changed to if the dependency expression evaluates to true.", - "longDescription": "The value that the property specified in MapToProperty (in the attribute specified in MapToAttribute) is changed to if the dependency expression evaluates to true.", + "description": "The value that the map-to property changes to if the dependency expression evaluates to `true`.", + "longDescription": "The value that the property in MapToProperty in the attribute specified in MapToAttribute changes to if the dependency expression evaluates to `true`.", "readonly": true, "type": [ "string", @@ -554,16 +545,16 @@ "Map" ], "enumDescriptions": { - "Map": "A simple mapping dependency. The attribute value or state is changed to the mapped value if the condition evaluates to true." + "Map": "A simple mapping dependency. If the condition evaluates to `true`, the attribute or state changes to the mapped value." }, "type": "string" }, "MapFrom": { "additionalProperties": false, "description": "A map-from condition for mapping dependency.", - "longDescription": "This type shall describe a map-from condition for a dependency of Type 'Map'.", + "longDescription": "This type shall describe a map-from condition for a dependency of the Map type.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -578,27 +569,27 @@ }, "properties": { "MapFromAttribute": { - "description": "The attribute that is used to evaluate this dependency expression.", - "longDescription": "The value of this property shall be the AttributeName of the attribute that is used in evaluating this dependency expression term.", + "description": "The attribute to use to evaluate this dependency expression.", + "longDescription": "This property shall contain the AttributeName for the attribute to use to evaluate this dependency expression term.", "pattern": "^[A-Za-z][A-Za-z0-9_]+$", "readonly": true, "type": "string" }, "MapFromCondition": { "$ref": "#/definitions/MapFromCondition", - "description": "The condition that is used to evaluate this dependency expression.", - "longDescription": "The value of this property shall be the condition that is used to evaluate this dependency expression. For example, 'EQU' or 'NEQ'.", + "description": "The condition to use to evaluate this dependency expression.", + "longDescription": "This property shall contain the condition to use to evaluate this dependency expression. For example, `EQU` or `NEQ`.", "readonly": true }, "MapFromProperty": { "$ref": "#/definitions/MapFromProperty", - "description": "The meta-data property of the attribute specified in MapFromAttribute that is used to evaluate this dependency expression.", - "longDescription": "The value of this property shall be the meta-data property of the attribute specified in MapFromAttribute that is used to evaluate this dependency expression. For example, this could be the MapFromAttribute CurrentValue, or ReadOnly state.", + "description": "The metadata property for the attribute that the MapFromAttribute property specifies to use to evaluate this dependency expression.", + "longDescription": "This property shall contain the metadata property for the attribute that the MapFromAttribute property specifies to use to evaluate this dependency expression. For example, this value could be the MapFromAttribute CurrentValue, or ReadOnly state.", "readonly": true }, "MapFromValue": { - "description": "The value that the is used property specified in MapFromProperty that is used to evaluate this dependency expression.", - "longDescription": "The value that the property specified in MapFromProperty (in the attribute specified in MapFromAttribute) that is used to evaluate this dependency expression.", + "description": "The value to use to evaluate this dependency expression.", + "longDescription": "The value that the property in MapFromProperty in the attribute in MapFromAttribute to use to evaluate this dependency expression.", "readonly": true, "type": [ "string", @@ -609,8 +600,8 @@ }, "MapTerms": { "$ref": "#/definitions/MapTerms", - "description": "The logical term used to combine two or more MapFrom conditions in this dependency expression.", - "longDescription": "The value of this property shall be the logical term used to combine two or more MapFrom conditions in this dependency expression. For example, 'AND' for logical AND, or 'OR' for logical OR of the conditions.", + "description": "The logical term that combines two or more map-from conditions in this dependency expression. For example, `AND` for logical AND, or `OR` for logical OR.", + "longDescription": "This property shall contain the logical term that combines two or more MapFrom conditions in this dependency expression. For example, `AND` for logical AND, or `OR` for logical OR.", "readonly": true } }, @@ -718,10 +709,10 @@ }, "Menus": { "additionalProperties": false, - "description": "A menu and its hierarchy.", + "description": "An attribute's menu and its hierarchy.", "longDescription": "This type shall describe an attribute's menu and its hierarchy.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -736,8 +727,8 @@ }, "properties": { "DisplayName": { - "description": "The user-readable display string of this menu in the defined 'Language'.", - "longDescription": "The value of this property shall be the user-readable display string of the menu in the defined 'Language'.", + "description": "The user-readable display string of this menu in the defined language.", + "longDescription": "This property shall contain the user-readable display string of the menu in the defined language.", "readonly": true, "type": [ "string", @@ -745,8 +736,8 @@ ] }, "DisplayOrder": { - "description": "The numeric value describing the ascending order in which this menu is displayed relative to other menus.", - "longDescription": "The value of this property shall be a number the describes the ascending order in which this menu is displayed, relative to other menus.", + "description": "The ascending order, as a number, in which this menu appears relative to other menus.", + "longDescription": "This property shall contain the ascending order, as a number, in which this menu appears relative to other menus.", "readonly": true, "type": [ "integer", @@ -754,8 +745,8 @@ ] }, "GrayOut": { - "description": "The gray-out state of this menu. A grayed-only menu is not accessible in user interfaces.", - "longDescription": "The value of this property shall be a boolean describing the gray-out state of this menu. When set to true, a grayed-only menu is not accessible in user interfaces.", + "description": "An indication of whether this menu is grayed out. A grayed-only menu is not accessible in user interfaces.", + "longDescription": "This property shall indicate whether this menu is grayed out. A grayed-only menu is not accessible in user interfaces.", "readonly": true, "type": [ "boolean", @@ -763,8 +754,8 @@ ] }, "Hidden": { - "description": "The hidden state of this menu.", - "longDescription": "The value of this property shall be a boolean describing the visibility state of this menu. When set to true, a hidden menu should be hidden in user interfaces. The hidden state of a menu might be affected by the results of evaluating the 'Dependencies' array.", + "description": "An indication of whether this menu is hidden in user interfaces.", + "longDescription": "This property shall indicate whether this menu is hidden in user interfaces. The evaluation results of the Dependencies array might affect the hidden state of a menu.", "readonly": true, "type": [ "boolean", @@ -774,14 +765,14 @@ }, "MenuName": { "description": "The unique name string of this menu.", - "longDescription": "The value of this property shall be the name of this menu that is unique in this registry.", + "longDescription": "This property shall contain the name of this menu that is unique in this Attribute Registry.", "pattern": "^[^/]+$", "readonly": true, "type": "string" }, "MenuPath": { - "description": "A path that describes this menu hierarchy relative to other menus.", - "longDescription": "The value of this property shall be a string indicating the menu hierarchy of this menu, in the form of a path to the menu names. It shall start with './' to indicate the root menu, followed by the menu names with '/' characters to delineate the menu traversal.", + "description": "The path to the menu names that describes this menu hierarchy relative to other menus.", + "longDescription": "This property shall contain the menu hierarchy of this menu, in the form of a path to the menu names. It shall start with `./` to indicate the root menu, followed by the menu names with `/` characters to delineate the menu traversal.", "pattern": "^\\.\\/([^/]+(\\/[^/]+)*)?$", "readonly": true, "type": [ @@ -791,13 +782,13 @@ }, "Oem": { "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem", - "description": "Oem extension object.", - "longDescription": "This object represents the Oem property. All values for resources described by this schema shall comply to the requirements as described in the Redfish specification.", + "description": "The OEM extension property.", + "longDescription": "This property shall contain the OEM extensions. All values for properties contained in this object shall conform to the Redfish Specification-described requirements.", "versionAdded": "v1_3_0" }, "ReadOnly": { - "description": "The read-only state of this menu.", - "longDescription": "The value of this property shall be a boolean describing the read-only state of this menu. A read-only menu is not accessible in user interfaces, and all properties contained in that menu and its sub-menus become read-only.", + "description": "An indication of whether this menu is read-only. A read-only menu, its properties, and sub-menus are not accessible in user interfaces.", + "longDescription": "This property shall indicate whether this menu is read-only. A read-only menu is not accessible in user interfaces, and all properties contained in that menu and its sub-menus are read-only.", "readonly": true, "type": [ "boolean", @@ -809,10 +800,10 @@ }, "OemActions": { "additionalProperties": true, - "description": "The available OEM specific actions for this resource.", - "longDescription": "This type shall contain any additional OEM actions for this resource.", + "description": "The available OEM-specific actions for this Resource.", + "longDescription": "This type shall contain the available OEM-specific actions for this Resource.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -830,10 +821,10 @@ }, "RegistryEntries": { "additionalProperties": false, - "description": "List of all attributes and their metadata for this component.", + "description": "The list of all attributes and metadata for this component.", "longDescription": "This type shall describe a list of all attributes for this component, along with their possible values, dependencies, and other metadata.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -848,27 +839,27 @@ }, "properties": { "Attributes": { - "description": "The array containing the attributes and their possible values.", + "description": "An array of attributes and their possible values in the Attribute Registry.", "items": { "$ref": "#/definitions/Attributes" }, - "longDescription": "The value of this property shall be an array containing the attributes and their possible values and other metadata.", + "longDescription": "This property shall contain an array containing the attributes and their possible values and other metadata in the Attribute Registry.", "type": "array" }, "Dependencies": { - "description": "The array containing a list of dependencies of attributes on this component.", + "description": "An array of dependencies of attributes on this component.", "items": { "$ref": "#/definitions/Dependencies" }, - "longDescription": "The value of this property shall be an array containing a list of dependencies of attributes on this component.", + "longDescription": "This property shall contain an array containing a list of dependencies of attributes on this component.", "type": "array" }, "Menus": { - "description": "The array containing the attributes menus and their hierarchy.", + "description": "An array for the attributes menus and their hierarchy in the Attribute Registry.", "items": { "$ref": "#/definitions/Menus" }, - "longDescription": "The value of this property shall be an array containing the attributes menus and their hierarchy.", + "longDescription": "This property shall contain an array containing the attributes menus and their hierarchy in the Attribute Registry.", "type": "array" } }, @@ -876,10 +867,10 @@ }, "SupportedSystems": { "additionalProperties": false, - "description": "A system supported by this attribute registry.", - "longDescription": "This type shall describe a system supported by this attribute registry.", + "description": "A system that this Attribute Registry supports.", + "longDescription": "This type shall describe a system that this Attribute Registry supports.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -895,7 +886,7 @@ "properties": { "FirmwareVersion": { "description": "Firmware version.", - "longDescription": "The version of the component firmware image that this registry applies to.", + "longDescription": "The version of the component firmware image to which this Attribute Registry applies.", "readonly": true, "type": [ "string", @@ -904,8 +895,8 @@ "versionAdded": "v1_1_0" }, "ProductName": { - "description": "The product name of the system.", - "longDescription": "The value of this property shall be the product name of the computer system that this registry applies to.", + "description": "The product name of the computer system to which this Attribute Registry applies.", + "longDescription": "This property shall contain the product name of the computer system to which this Attribute Registry applies.", "readonly": true, "type": [ "string", @@ -913,8 +904,8 @@ ] }, "SystemId": { - "description": "The system ID of the system.", - "longDescription": "The value of this property shall be the system ID that identifies the computer system model that this registry applies to.", + "description": "The ID of the systems to which this Attribute Registry applies.", + "longDescription": "This property shall contain the system ID that identifies the systems to which this Attribute Registry applies. This may be identified by one or more properties in the ComputerSystem Resource, such as Model, SubModel, or SKU.", "pattern": "^[A-Za-z0-9]+$", "readonly": true, "type": [ @@ -928,5 +919,5 @@ }, "owningEntity": "DMTF", "release": "2018.3", - "title": "#AttributeRegistry.v1_3_0.AttributeRegistry" + "title": "#AttributeRegistry.v1_3_2.AttributeRegistry" } \ No newline at end of file diff --git a/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/Bios/Bios.json b/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/Bios/Bios.json index 8133cdcb..3a06bb88 100644 --- a/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/Bios/Bios.json +++ b/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/Bios/Bios.json @@ -1,15 +1,15 @@ { - "$id": "http://redfish.dmtf.org/schemas/v1/Bios.v1_0_5.json", + "$id": "http://redfish.dmtf.org/schemas/v1/Bios.v1_1_0.json", "$ref": "#/definitions/Bios", "$schema": "http://redfish.dmtf.org/schemas/v1/redfish-schema-v1.json", - "copyright": "Copyright 2014-2018 DMTF. For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright", + "copyright": "Copyright 2014-2019 DMTF. For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright", "definitions": { "Actions": { "additionalProperties": false, - "description": "The available actions for this resource.", - "longDescription": "This type shall contain the available actions for this resource.", + "description": "The available actions for this Resource.", + "longDescription": "This type shall contain the available actions for this Resource.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -31,18 +31,18 @@ }, "Oem": { "$ref": "#/definitions/OemActions", - "description": "This property contains the available OEM specific actions for this resource.", - "longDescription": "This property shall contain any additional OEM actions for this resource." + "description": "The available OEM-specific actions for this Resource.", + "longDescription": "This property shall contain the available OEM-specific actions for this Resource." } }, "type": "object" }, "Attributes": { "additionalProperties": false, - "description": "The manufacturer/provider-specific list of BIOS attributes and their values.", - "longDescription": "BIOS Attribute settings shall be described as additional properties in this object. If a BIOS AttributeRegistry is specified, Attributes shall be looked up in that registry by their AttributeName. Attributes in the registry with AttributeType of Enumeration shall use valid ValueName as values in this object, as listed in that registry.", + "description": "The list of BIOS attributes and their values as determined by the manufacturer or provider.", + "longDescription": "This property shall contain the list of BIOS attributes and their values as determined by the manufacturer or provider. This object shall describe BIOS attribute settings as additional properties. If the object specifies a BIOS Attribute Registry, attributes shall be looked up in that Attribute Registry by their attribute name. Attributes in this Attribute Registry with the AttributeType of Enumeration shall use valid ValueName values in this object, as listed in that Attribute Registry.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -68,10 +68,10 @@ }, "Bios": { "additionalProperties": true, - "description": "The Bios schema contains properties related to the BIOS Attribute Registry. The Attribute Registry describes the system-specific BIOS attributes and Actions for changing to BIOS settings. Changes to the BIOS typically require a system reset before they take effect. It is likely that a client will find the @Redfish.Settings term in this resource, and if it is found, the client makes requests to change BIOS settings by modifying the resource identified by the @Redfish.Settings term.", - "longDescription": "This resource shall be used to represent BIOS attributes for a Redfish implementation.", + "description": "The Bios schema contains properties related to the BIOS Attribute Registry. The Attribute Registry describes the system-specific BIOS attributes and actions for changing to BIOS settings. Changes to the BIOS typically require a system reset before they take effect. It is likely that a client finds the `@Redfish.Settings` term in this Resource, and if it is found, the client makes requests to change BIOS settings by modifying the Resource identified by the `@Redfish.Settings` term.", + "longDescription": "This Resource shall represent BIOS attributes for a Redfish implementation.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -86,25 +86,25 @@ }, "properties": { "@odata.context": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/context" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/context" }, "@odata.etag": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/etag" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/etag" }, "@odata.id": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/id" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/id" }, "@odata.type": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/type" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/type" }, "Actions": { "$ref": "#/definitions/Actions", - "description": "The available actions for this resource.", - "longDescription": "The Actions property shall contain the available actions for this resource." + "description": "The available actions for this Resource.", + "longDescription": "This property shall contain the available actions for this Resource." }, "AttributeRegistry": { - "description": "The Resource ID of the Attribute Registry that has the system-specific information about a BIOS resource.", - "longDescription": "The reference to the Attribute Registry that lists the metadata describing the BIOS attribute settings in this resource.", + "description": "The Resource ID of the Attribute Registry that has the system-specific information about a BIOS Resource.", + "longDescription": "The link to the Attribute Registry that lists the metadata describing the BIOS attribute settings in this Resource.", "readonly": true, "type": [ "string", @@ -114,7 +114,7 @@ "Attributes": { "$ref": "#/definitions/Attributes", "description": "The list of BIOS attributes specific to the manufacturer or provider.", - "longDescription": "BIOS Attribute settings appear as additional properties in this object, and can be looked up in the Attribute Registry by their AttributeName." + "longDescription": "This property shall contain the list of BIOS attributes specific to the manufacturer or provider. BIOS Attribute settings appear as additional properties in this object, and can be looked up in the Attribute Registry by their AttributeName." }, "Description": { "anyOf": [ @@ -131,14 +131,20 @@ "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Id", "readonly": true }, + "Links": { + "$ref": "#/definitions/Links", + "description": "The links to other Resources that are related to this Resource.", + "longDescription": "This property shall contain links to Resources that are related to but are not contained by or subordinate to this Resource.", + "versionAdded": "v1_1_0" + }, "Name": { "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Name", "readonly": true }, "Oem": { "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem", - "description": "This is the manufacturer/provider specific extension moniker used to divide the Oem object into sections.", - "longDescription": "The value of this string shall be of the format for the reserved word *Oem*." + "description": "The OEM extension property.", + "longDescription": "This property shall contain the OEM extensions. All values for properties that this object contains shall conform to the Redfish Specification-described requirements." } }, "required": [ @@ -151,30 +157,30 @@ }, "ChangePassword": { "additionalProperties": false, - "description": "This action is used to change the BIOS passwords.", - "longDescription": "This action shall perform a change of the selected BIOS password.", + "description": "This action changes a BIOS password.", + "longDescription": "This action shall change the selected BIOS password.", "parameters": { "NewPassword": { - "description": "The value of the new BIOS password.", - "longDescription": "This parameter shall define the value of the new BIOS password.", + "description": "The new BIOS password.", + "longDescription": "This parameter shall contain the new BIOS password.", "requiredParameter": true, "type": "string" }, "OldPassword": { - "description": "The value of the existing password.", - "longDescription": "This parameter shall define the value of the existing BIOS password that is about to be changed.", + "description": "The existing BIOS password.", + "longDescription": "This parameter shall contain the existing BIOS password to change.", "requiredParameter": true, "type": "string" }, "PasswordName": { "description": "The name of the BIOS password to change.", - "longDescription": "This parameter shall define the BIOS password name to change. For instance, this could be the AdminPassword or UserPassword.", + "longDescription": "This parameter shall contain the name of the BIOS password to change. For instance, AdminPassword or UserPassword.", "requiredParameter": true, "type": "string" } }, "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -190,7 +196,7 @@ "properties": { "target": { "description": "Link to invoke action", - "format": "uri", + "format": "uri-reference", "type": "string" }, "title": { @@ -200,12 +206,59 @@ }, "type": "object" }, + "Links": { + "additionalProperties": false, + "description": "The links to other Resources that are related to this Resource.", + "longDescription": "This Redfish Specification-described type shall contain links to Resources that are related to but are not contained by or subordinate to this Resource.", + "patternProperties": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { + "description": "This property shall specify a valid odata or Redfish property.", + "type": [ + "array", + "boolean", + "integer", + "number", + "null", + "object", + "string" + ] + } + }, + "properties": { + "ActiveSoftwareImage": { + "$ref": "http://redfish.dmtf.org/schemas/v1/SoftwareInventory.json#/definitions/SoftwareInventory", + "description": "The link to the SoftwareInventory that represents the active BIOS firmware image.", + "longDescription": "This property shall contain a link to the SoftwareInventory Resource that represents the active BIOS firmware image.", + "readonly": false, + "versionAdded": "v1_1_0" + }, + "Oem": { + "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem", + "description": "The OEM extension property.", + "longDescription": "This property shall contain the OEM extensions. All values for properties contained in this object shall conform to the Redfish Specification-described requirements." + }, + "SoftwareImages": { + "description": "The images that are associated with this BIOS.", + "items": { + "$ref": "http://redfish.dmtf.org/schemas/v1/SoftwareInventory.json#/definitions/SoftwareInventory" + }, + "longDescription": "This property shall contain an array of links to the SoftwareInventory Resources that represent the firmware images that apply to this BIOS.", + "readonly": true, + "type": "array", + "versionAdded": "v1_1_0" + }, + "SoftwareImages@odata.count": { + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/count" + } + }, + "type": "object" + }, "OemActions": { "additionalProperties": true, - "description": "The available OEM specific actions for this resource.", - "longDescription": "This type shall contain any additional OEM actions for this resource.", + "description": "The available OEM-specific actions for this Resource.", + "longDescription": "This type shall contain the available OEM-specific actions for this Resource.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -223,11 +276,11 @@ }, "ResetBios": { "additionalProperties": false, - "description": "This action is used to reset the BIOS attributes to default.", - "longDescription": "This action shall perform a reset of the BIOS attributes to their default values. A system reset may be required for the default values to be applied. This action may impact other resources.", + "description": "This action resets the BIOS attributes to default.", + "longDescription": "This action shall reset the BIOS attributes to their default values. A system reset may be required to apply the default values. This action may impact other Resources.", "parameters": {}, "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -243,7 +296,7 @@ "properties": { "target": { "description": "Link to invoke action", - "format": "uri", + "format": "uri-reference", "type": "string" }, "title": { @@ -255,6 +308,6 @@ } }, "owningEntity": "DMTF", - "release": "2016.1", - "title": "#Bios.v1_0_5.Bios" + "release": "2019.2", + "title": "#Bios.v1_1_0.Bios" } \ No newline at end of file diff --git a/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/BootOption/BootOption.json b/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/BootOption/BootOption.json index 7b6ac9a1..f72a95ed 100644 --- a/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/BootOption/BootOption.json +++ b/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/BootOption/BootOption.json @@ -1,14 +1,15 @@ { + "$id": "http://redfish.dmtf.org/schemas/v1/BootOption.v1_0_3.json", "$ref": "#/definitions/BootOption", "$schema": "http://redfish.dmtf.org/schemas/v1/redfish-schema-v1.json", - "copyright": "Copyright 2014-2018 DMTF. For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright", + "copyright": "Copyright 2014-2019 DMTF. For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright", "definitions": { "Actions": { "additionalProperties": false, - "description": "The available actions for this resource.", - "longDescription": "This type shall contain the available actions for this resource.", + "description": "The available actions for this Resource.", + "longDescription": "This type shall contain the available actions for this Resource.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -24,18 +25,18 @@ "properties": { "Oem": { "$ref": "#/definitions/OemActions", - "description": "This property contains the available OEM specific actions for this resource.", - "longDescription": "This property shall contain any additional OEM actions for this resource." + "description": "The available OEM-specific actions for this Resource.", + "longDescription": "This property shall contain the available OEM-specific actions for this Resource." } }, "type": "object" }, "BootOption": { "additionalProperties": false, - "description": "This is the schema definition for the BootOption resource. It represents the properties of a bootable device available in the System.", - "longDescription": "This resource shall be used to represent a single boot option contained within a system.", + "description": "The BootOption schema describes a boot option. It represents the properties of a bootable device available in the system.", + "longDescription": "This Resource shall represent a single boot option within a system.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -50,21 +51,21 @@ }, "properties": { "@odata.context": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/context" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/context" }, "@odata.etag": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/etag" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/etag" }, "@odata.id": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/id" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/id" }, "@odata.type": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/type" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/type" }, "Actions": { "$ref": "#/definitions/Actions", - "description": "The available actions for this resource.", - "longDescription": "The Actions property shall contain the available actions for this resource." + "description": "The available actions for this Resource.", + "longDescription": "This property shall contain the available actions for this Resource." }, "Alias": { "anyOf": [ @@ -75,13 +76,13 @@ "type": "null" } ], - "description": "The alias of this Boot Source.", - "longDescription": "The value of this property shall contain the string alias of this Boot Source that describes the type of boot that will be performed.", + "description": "The alias of this boot source.", + "longDescription": "This property shall contain the string alias of this boot source that describes the type of boot.", "readonly": true }, "BootOptionEnabled": { - "description": "A flag that shows if the Boot Option is enabled.", - "longDescription": "The value of this property shall indicate if the Boot Option is enabled. If this property is set to false, the Boot Option referenced in the Boot Order array found on the Computer System shall be skipped. In the UEFI context, this property shall influence the Load Option Active flag for the Boot Option.", + "description": "An indication of whether the boot option is enabled. If `true`, it is enabled. If `false`, the boot option that the boot order array on the computer system contains is skipped. In the UEFI context, this property shall influence the load option active flag for the boot option.", + "longDescription": "This property shall indicate whether the boot option is enabled. If `true`, it is enabled. If `false`, the boot option that the boot order array on the computer system contains shall be skipped. In the UEFI context, this property shall influence the load option active flag for the boot option.", "readonly": false, "type": [ "boolean", @@ -89,8 +90,8 @@ ] }, "BootOptionReference": { - "description": "The unique boot option string that is referenced in the BootOrder.", - "longDescription": "The value of this property shall contain a string that corresponds to the bootable option or device. For UEFI systems, this string shall match the UEFI Boot Option variable name (e.g. Boot####). This value is referenced by the ComputerSystem BootOrder array.", + "description": "The unique boot option.", + "longDescription": "This property shall correspond to the boot option or device. For UEFI systems, this string shall match the UEFI boot option variable name, such as `Boot####`. The BootOrder array of a ComputerSystem contains this value.", "readonly": true, "type": [ "string", @@ -109,8 +110,8 @@ "readonly": true }, "DisplayName": { - "description": "The user-readable display string of the Boot Option.", - "longDescription": "The value of this property shall be a user readable string that describes this Boot Option as it should show up in the Boot Order list in user interfaces.", + "description": "The user-readable display name of the boot option that appears in the boot order list in the user interface.", + "longDescription": "This property shall contain a user-readable boot option name, as it should appear in the boot order list in the user interface.", "readonly": true, "type": [ "string", @@ -127,24 +128,24 @@ }, "Oem": { "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem", - "description": "This is the manufacturer/provider specific extension moniker used to divide the Oem object into sections.", - "longDescription": "The value of this string shall be of the format for the reserved word *Oem*." + "description": "The OEM extension property.", + "longDescription": "This property shall contain the OEM extensions. All values for properties that this object contains shall conform to the Redfish Specification-described requirements." }, "RelatedItem": { - "description": "The ID(s) of the resources associated with this Boot Option.", + "description": "An array of one or more IDs for the Resources associated with this boot option.", "items": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/idRef" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/idRef" }, - "longDescription": "The value of this property shall be an array of IDs containing pointers consistent with JSON pointer syntax to the resource that is being used for this Boot Option.", + "longDescription": "This property shall contain an array of IDs for pointers consistent with JSON Pointer syntax to the Resource that is being used for this Boot Option.", "readonly": true, "type": "array" }, "RelatedItem@odata.count": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/count" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/count" }, "UefiDevicePath": { - "description": "The UEFI device path used to access this UEFI Boot Option.", - "longDescription": "This property shall contain the UEFI device path used to identify and locate the specific device for this UEFI Boot Option, as defined by the UEFI Specification.", + "description": "The UEFI device path to access this UEFI Boot Option.", + "longDescription": "This property shall contain the UEFI Specification-defined UEFI device path that identifies and locates the device for this boot option.", "readonly": true, "type": [ "string", @@ -163,10 +164,10 @@ }, "OemActions": { "additionalProperties": true, - "description": "The available OEM specific actions for this resource.", - "longDescription": "This type shall contain any additional OEM actions for this resource.", + "description": "The available OEM-specific actions for this Resource.", + "longDescription": "This type shall contain the available OEM-specific actions for this Resource.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -184,5 +185,6 @@ } }, "owningEntity": "DMTF", - "title": "#BootOption.v1_0_1.BootOption" + "release": "2017.3", + "title": "#BootOption.v1_0_3.BootOption" } \ No newline at end of file diff --git a/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/Certificate/Certificate.json b/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/Certificate/Certificate.json index a74383d7..8c4cac80 100644 --- a/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/Certificate/Certificate.json +++ b/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/Certificate/Certificate.json @@ -1,15 +1,15 @@ { - "$id": "http://redfish.dmtf.org/schemas/v1/Certificate.v1_0_0.json", + "$id": "http://redfish.dmtf.org/schemas/v1/Certificate.v1_1_1.json", "$ref": "#/definitions/Certificate", "$schema": "http://redfish.dmtf.org/schemas/v1/redfish-schema-v1.json", - "copyright": "Copyright 2014-2018 DMTF. For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright", + "copyright": "Copyright 2014-2019 DMTF. For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright", "definitions": { "Actions": { "additionalProperties": false, - "description": "The available actions for this resource.", - "longDescription": "This type shall contain the available actions for this resource.", + "description": "The available actions for this Resource.", + "longDescription": "This type shall contain the available actions for this Resource.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -23,20 +23,26 @@ } }, "properties": { + "#Certificate.Rekey": { + "$ref": "#/definitions/Rekey" + }, + "#Certificate.Renew": { + "$ref": "#/definitions/Renew" + }, "Oem": { "$ref": "#/definitions/OemActions", - "description": "This property contains the available OEM specific actions for this resource.", - "longDescription": "This property shall contain any additional OEM actions for this resource." + "description": "The available OEM-specific actions for this Resource.", + "longDescription": "This property shall contain the available OEM-specific actions for this Resource." } }, "type": "object" }, "Certificate": { "additionalProperties": false, - "description": "The Certificate resource describes a certificate used to prove the identify of a component, account, or service.", - "longDescription": "This resource shall be used to represent a Certificate for a Redfish implementation.", + "description": "The Certificate schema describes a certificate that proves the identify of a component, account, or service.", + "longDescription": "This Resource contains a certificate for a Redfish implementation.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -51,25 +57,25 @@ }, "properties": { "@odata.context": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/context" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/context" }, "@odata.etag": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/etag" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/etag" }, "@odata.id": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/id" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/id" }, "@odata.type": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/type" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/type" }, "Actions": { "$ref": "#/definitions/Actions", - "description": "The available actions for this resource.", - "longDescription": "The Actions property shall contain the available actions for this resource." + "description": "The available actions for this Resource.", + "longDescription": "This property shall contain the available actions for this Resource." }, "CertificateString": { "description": "The string for the certificate.", - "longDescription": "The value of this property shall be the string of the certificate, and the format shall follow the requirements specified by the value of the CertificateType property. If the certificate contains any private keys, they shall be removed from the string on GET requests. If the private key for the certificate is not known by the service and is needed to use the certificate, the client shall provide the private key as part of the string in the POST request.", + "longDescription": "This property shall contain the certificate, and the format shall follow the requirements specified by the CertificateType property value. If the certificate contains any private keys, they shall be removed from the string in responses. If the service does not know the private key for the certificate and is needed to use the certificate, the client shall provide the private key as part of the string in the POST request.", "readonly": true, "type": [ "string", @@ -107,10 +113,10 @@ "Issuer": { "$ref": "#/definitions/Identifier", "description": "The issuer of the certificate.", - "longDescription": "The value of this property shall be an object containing information about the issuer of the certificate." + "longDescription": "This property shall contain an object containing information about the issuer of the certificate." }, "KeyUsage": { - "description": "The usage of the key contained in the certificate.", + "description": "The key usage extension, which defines the purpose of the public keys in this certificate.", "items": { "anyOf": [ { @@ -121,7 +127,7 @@ } ] }, - "longDescription": "This property shall contain the usage of the key contained in the certificate.", + "longDescription": "This property shall contain the key usage extension, which defines the purpose of the public keys in this certificate.", "readonly": true, "type": "array" }, @@ -131,25 +137,25 @@ }, "Oem": { "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem", - "description": "This is the manufacturer/provider specific extension moniker used to divide the Oem object into sections.", - "longDescription": "The value of this string shall be of the format for the reserved word *Oem*." + "description": "The OEM extension property.", + "longDescription": "This property shall contain the OEM extensions. All values for properties that this object contains shall conform to the Redfish Specification-described requirements." }, "Subject": { "$ref": "#/definitions/Identifier", "description": "The subject of the certificate.", - "longDescription": "The value of this property shall be an object containing information about the subject of the certificate." + "longDescription": "This property shall contain an object containing information about the subject of the certificate." }, "ValidNotAfter": { "description": "The date when the certificate is no longer valid.", "format": "date-time", - "longDescription": "The value of this property shall indicate the date on which the certificate validity period ends.", + "longDescription": "This property shall contain the date when the certificate validity period ends.", "readonly": true, "type": "string" }, "ValidNotBefore": { "description": "The date when the certificate becomes valid.", "format": "date-time", - "longDescription": "The value of this property shall indicate the date on which the certificate validity period begins.", + "longDescription": "This property shall contain the date when the certificate validity period begins.", "readonly": true, "type": "string" } @@ -169,9 +175,9 @@ "Identifier": { "additionalProperties": false, "description": "The identifier information about a certificate.", - "longDescription": "This type shall contain the properties used to identify the issuer or subject of a certificate.", + "longDescription": "This type shall contain the properties that identifies the issuer or subject of a certificate.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -199,7 +205,7 @@ }, "Country": { "description": "The country of the organization of the entity.", - "longDescription": "This property shall contain the two letter ISO code for the country of the organization of the entity.", + "longDescription": "This property shall contain the two-letter ISO code for the country of the organization of the entity.", "readonly": true, "type": "string" }, @@ -235,10 +241,10 @@ }, "OemActions": { "additionalProperties": true, - "description": "The available OEM specific actions for this resource.", - "longDescription": "This type shall contain any additional OEM actions for this resource.", + "description": "The available OEM-specific actions for this Resource.", + "longDescription": "This type shall contain the available OEM-specific actions for this Resource.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -253,9 +259,188 @@ }, "properties": {}, "type": "object" + }, + "Rekey": { + "actionResponse": { + "$ref": "#/definitions/RekeyResponse" + }, + "additionalProperties": false, + "description": "This action generates a new key-pair for a certificate and produces a certificate signing request.", + "longDescription": "This action shall use the certificate data to generate a new key-pair for a certificate. The response shall contain a signing request that a certificate authority (CA) must sign. The Service should retain the private key that generated this request for installation of the certificate. The private key should not be part of the response. The private key should not be part of the response.", + "parameters": { + "ChallengePassword": { + "description": "The challenge password to apply to the certificate for revocation requests.", + "longDescription": "This property shall contain the challenge password to apply to the certificate for revocation requests as defined by the RFC2985 'challengePassword' attribute.", + "type": "string" + }, + "KeyBitLength": { + "description": "The length of the key, in bits, if needed based on the KeyPairAlgorithm parameter value.", + "longDescription": "This parameter shall contain the length of the key, in bits, if needed based on the KeyPairAlgorithm parameter value.", + "type": "integer" + }, + "KeyCurveId": { + "description": "The curve ID to use with the key, if needed based on the KeyPairAlgorithm parameter value.", + "longDescription": "This parameter shall contain the curve ID to use with the key, if needed based on the KeyPairAlgorithm parameter value. The allowable values for this parameter shall be the strings in the 'Name' field of the 'TPM_ECC_CURVE Constants' table within the 'Trusted Computing Group Algorithm Registry'.", + "type": "string" + }, + "KeyPairAlgorithm": { + "description": "The type of key-pair for use with signing algorithms.", + "longDescription": "This parameter shall contain the type of key-pair for use with signing algorithms. The allowable values for this parameter shall be the strings in the 'Algorithm Name' field of the 'TPM_ALG_ID Constants' table within the 'Trusted Computing Group Algorithm Registry'.", + "type": "string" + } + }, + "patternProperties": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { + "description": "This property shall specify a valid odata or Redfish property.", + "type": [ + "array", + "boolean", + "integer", + "number", + "null", + "object", + "string" + ] + } + }, + "properties": { + "target": { + "description": "Link to invoke action", + "format": "uri-reference", + "type": "string" + }, + "title": { + "description": "Friendly action name", + "type": "string" + } + }, + "type": "object", + "versionAdded": "v1_1_0" + }, + "RekeyResponse": { + "additionalProperties": false, + "description": "The response body for the Rekey action.", + "longDescription": "This type shall contain the properties found in the response body for the Rekey action.", + "patternProperties": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { + "description": "This property shall specify a valid odata or Redfish property.", + "type": [ + "array", + "boolean", + "integer", + "number", + "null", + "object", + "string" + ] + } + }, + "properties": { + "CSRString": { + "description": "The string for the certificate signing request.", + "longDescription": "This property shall contain the certificate signing request as a PEM-encoded string, containing structures specified by RFC2986. The private key should not be part of the string.", + "readonly": true, + "type": "string", + "versionAdded": "v1_1_0" + }, + "Certificate": { + "$ref": "http://redfish.dmtf.org/schemas/v1/Certificate.json#/definitions/Certificate", + "description": "The link to the certificate being rekeyed.", + "longDescription": "This property shall contain the URI of the Certificate Resource that is replaced after the certificate authority (CA) signs the certificate.", + "readonly": true, + "versionAdded": "v1_1_0" + } + }, + "required": [ + "Certificate", + "CSRString" + ], + "type": "object" + }, + "Renew": { + "actionResponse": { + "$ref": "#/definitions/RenewResponse" + }, + "additionalProperties": false, + "description": "This action generates a certificate signing request by using the existing information and key-pair of the certificate.", + "longDescription": "This action shall generate a certificate signing request using the existing information and key-pair of the certificate. The response shall contain a signing request that a certificate authority (CA) must sign. The Service should retain the private key that this request generates for when the certificate is installed. The private key should not be part of the response.", + "parameters": { + "ChallengePassword": { + "description": "The challenge password to apply to the certificate for revocation requests.", + "longDescription": "This property shall contain the challenge password to apply to the certificate for revocation requests as defined by the RFC2985 'challengePassword' attribute.", + "type": "string" + } + }, + "patternProperties": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { + "description": "This property shall specify a valid odata or Redfish property.", + "type": [ + "array", + "boolean", + "integer", + "number", + "null", + "object", + "string" + ] + } + }, + "properties": { + "target": { + "description": "Link to invoke action", + "format": "uri-reference", + "type": "string" + }, + "title": { + "description": "Friendly action name", + "type": "string" + } + }, + "type": "object", + "versionAdded": "v1_1_0" + }, + "RenewResponse": { + "additionalProperties": false, + "description": "The response body for the Renew action.", + "longDescription": "This type shall contain the properties found in the response body for the Renew action.", + "patternProperties": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { + "description": "This property shall specify a valid odata or Redfish property.", + "type": [ + "array", + "boolean", + "integer", + "number", + "null", + "object", + "string" + ] + } + }, + "properties": { + "CSRString": { + "description": "The string for the certificate signing request.", + "longDescription": "This property shall contain the certificate signing request as a PEM-encoded string, containing structures specified by RFC2986. The private key should not be part of the string.", + "readonly": true, + "type": "string", + "versionAdded": "v1_1_0" + }, + "Certificate": { + "$ref": "http://redfish.dmtf.org/schemas/v1/Certificate.json#/definitions/Certificate", + "description": "The link to the certificate being renewed.", + "longDescription": "This property shall contain the URI of the Certificate Resource that is replaced after the certificate authority (CA) signs the certificate.", + "readonly": true, + "versionAdded": "v1_1_0" + } + }, + "required": [ + "Certificate", + "CSRString" + ], + "type": "object" } }, "owningEntity": "DMTF", - "release": "2018.3", - "title": "#Certificate.v1_0_0.Certificate" + "release": "2019.1", + "title": "#Certificate.v1_1_1.Certificate" } \ No newline at end of file diff --git a/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/CertificateLocations/CertificateLocations.json b/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/CertificateLocations/CertificateLocations.json index 89a21a47..25857488 100644 --- a/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/CertificateLocations/CertificateLocations.json +++ b/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/CertificateLocations/CertificateLocations.json @@ -1,15 +1,15 @@ { - "$id": "http://redfish.dmtf.org/schemas/v1/CertificateLocations.v1_0_0.json", + "$id": "http://redfish.dmtf.org/schemas/v1/CertificateLocations.v1_0_2.json", "$ref": "#/definitions/CertificateLocations", "$schema": "http://redfish.dmtf.org/schemas/v1/redfish-schema-v1.json", - "copyright": "Copyright 2014-2018 DMTF. For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright", + "copyright": "Copyright 2014-2019 DMTF. For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright", "definitions": { "Actions": { "additionalProperties": false, - "description": "The available actions for this resource.", - "longDescription": "This type shall contain the available actions for this resource.", + "description": "The available actions for this Resource.", + "longDescription": "This type shall contain the available actions for this Resource.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -25,18 +25,18 @@ "properties": { "Oem": { "$ref": "#/definitions/OemActions", - "description": "This property contains the available OEM specific actions for this resource.", - "longDescription": "This property shall contain any additional OEM actions for this resource." + "description": "The available OEM-specific actions for this Resource.", + "longDescription": "This property shall contain the available OEM-specific actions for this Resource." } }, "type": "object" }, "CertificateLocations": { "additionalProperties": false, - "description": "The CertificateLocations schema defines a resource that an administrator can use in order to locate all certificates installed on a given service.", - "longDescription": "This resource shall be used to represent the Certificate Location Properties for a Redfish implementation.", + "description": "The CertificateLocations schema describes a Resource that an administrator can use in order to locate all certificates installed on a given service.", + "longDescription": "This Resource shall represent the Certificate Location Properties for a Redfish implementation.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -51,21 +51,21 @@ }, "properties": { "@odata.context": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/context" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/context" }, "@odata.etag": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/etag" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/etag" }, "@odata.id": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/id" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/id" }, "@odata.type": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/type" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/type" }, "Actions": { "$ref": "#/definitions/Actions", - "description": "The available actions for this resource.", - "longDescription": "The Actions property shall contain the available actions for this resource." + "description": "The available actions for this Resource.", + "longDescription": "This property shall contain the available actions for this Resource." }, "Description": { "anyOf": [ @@ -84,8 +84,8 @@ }, "Links": { "$ref": "#/definitions/Links", - "description": "Contains references to other resources that are related to this resource.", - "longDescription": "The Links property, as described by the Redfish Specification, shall contain references to resources that are related to, but not contained by (subordinate to), this resource." + "description": "The links to other Resources that are related to this Resource.", + "longDescription": "This property shall contain links to Resources that are related to but are not contained by or subordinate to this Resource." }, "Name": { "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Name", @@ -93,8 +93,8 @@ }, "Oem": { "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem", - "description": "This is the manufacturer/provider specific extension moniker used to divide the Oem object into sections.", - "longDescription": "The value of this string shall be of the format for the reserved word *Oem*." + "description": "The OEM extension property.", + "longDescription": "This property shall contain the OEM extensions. All values for properties that this object contains shall conform to the Redfish Specification-described requirements." } }, "required": [ @@ -107,10 +107,10 @@ }, "Links": { "additionalProperties": false, - "description": "Contains references to other resources that are related to this resource.", - "longDescription": "This type, as described by the Redfish Specification, shall contain references to resources that are related to, but not contained by (subordinate to), this resource.", + "description": "The links to other Resources that are related to this Resource.", + "longDescription": "This Redfish Specification-described type shall contain links to Resources that are related to but are not contained by or subordinate to this Resource.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -125,31 +125,31 @@ }, "properties": { "Certificates": { - "description": "This property is an array of references to the certificates installed on this service.", + "description": "An array of links to the certificates installed on this service.", "items": { "$ref": "http://redfish.dmtf.org/schemas/v1/Certificate.json#/definitions/Certificate" }, - "longDescription": "This property shall contain an array of references to Certificate resources that are installed on this service.", + "longDescription": "This property shall contain an array of links to Certificate Resources that are installed on this service.", "readonly": true, "type": "array" }, "Certificates@odata.count": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/count" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/count" }, "Oem": { "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem", - "description": "Oem extension object.", - "longDescription": "This object represents the Oem property. All values for resources described by this schema shall comply to the requirements as described in the Redfish specification." + "description": "The OEM extension property.", + "longDescription": "This property shall contain the OEM extensions. All values for properties contained in this object shall conform to the Redfish Specification-described requirements." } }, "type": "object" }, "OemActions": { "additionalProperties": true, - "description": "The available OEM specific actions for this resource.", - "longDescription": "This type shall contain any additional OEM actions for this resource.", + "description": "The available OEM-specific actions for this Resource.", + "longDescription": "This type shall contain the available OEM-specific actions for this Resource.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -168,5 +168,5 @@ }, "owningEntity": "DMTF", "release": "2018.3", - "title": "#CertificateLocations.v1_0_0.CertificateLocations" + "title": "#CertificateLocations.v1_0_2.CertificateLocations" } \ No newline at end of file diff --git a/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/CertificateService/CertificateService.json b/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/CertificateService/CertificateService.json index 8177ba84..9b291548 100644 --- a/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/CertificateService/CertificateService.json +++ b/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/CertificateService/CertificateService.json @@ -1,15 +1,15 @@ { - "$id": "http://redfish.dmtf.org/schemas/v1/CertificateService.v1_0_0.json", + "$id": "http://redfish.dmtf.org/schemas/v1/CertificateService.v1_0_2.json", "$ref": "#/definitions/CertificateService", "$schema": "http://redfish.dmtf.org/schemas/v1/redfish-schema-v1.json", - "copyright": "Copyright 2014-2018 DMTF. For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright", + "copyright": "Copyright 2014-2019 DMTF. For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright", "definitions": { "Actions": { "additionalProperties": false, - "description": "The available actions for this resource.", - "longDescription": "This type shall contain the available actions for this resource.", + "description": "The available actions for this Resource.", + "longDescription": "This type shall contain the available actions for this Resource.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -31,18 +31,18 @@ }, "Oem": { "$ref": "#/definitions/OemActions", - "description": "This property contains the available OEM specific actions for this resource.", - "longDescription": "This property shall contain any additional OEM actions for this resource." + "description": "The available OEM-specific actions for this Resource.", + "longDescription": "This property shall contain the available OEM-specific actions for this Resource." } }, "type": "object" }, "CertificateService": { "additionalProperties": false, - "description": "The CertificateService schema defines a Certificate Service which represents the actions available to manage certificates and links to where certificates are installed.", - "longDescription": "This resource shall be used to represent the Certificate Service Properties for a Redfish implementation.", + "description": "The CertificateService schema describes a Certificate Service that represents the actions available to manage certificates and links to the certificates.", + "longDescription": "This Resource shall represent the Certificate Service properties for a Redfish implementation.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -57,26 +57,26 @@ }, "properties": { "@odata.context": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/context" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/context" }, "@odata.etag": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/etag" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/etag" }, "@odata.id": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/id" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/id" }, "@odata.type": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/type" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/type" }, "Actions": { "$ref": "#/definitions/Actions", - "description": "The available actions for this resource.", - "longDescription": "The Actions property shall contain the available actions for this resource." + "description": "The available actions for this Resource.", + "longDescription": "This property shall contain the available actions for this Resource." }, "CertificateLocations": { "$ref": "http://redfish.dmtf.org/schemas/v1/CertificateLocations.json#/definitions/CertificateLocations", - "description": "Information regarding the location of certificates.", - "longDescription": "This property shall contain the link to a resource of type CertificateLocations.", + "description": "The information about the location of certificates.", + "longDescription": "This property shall contain the link to a Resource of type CertificateLocations.", "readonly": true }, "Description": { @@ -100,8 +100,8 @@ }, "Oem": { "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem", - "description": "This is the manufacturer/provider specific extension moniker used to divide the Oem object into sections.", - "longDescription": "The value of this string shall be of the format for the reserved word *Oem*." + "description": "The OEM extension property.", + "longDescription": "This property shall contain the OEM extensions. All values for properties that this object contains shall conform to the Redfish Specification-described requirements." } }, "required": [ @@ -117,79 +117,79 @@ "$ref": "#/definitions/GenerateCSRResponse" }, "additionalProperties": false, - "description": "This action is used to perform a certificate signing request.", - "longDescription": "This action shall perform a certificate signing request. The response shall contain a signing request that is used to be signed by a certificate authority (CA). The service should retain the private key used for the generation of this request for when the certificate is installed. The private key should not be part of the response.", + "description": "This action makes a certificate signing request.", + "longDescription": "This action shall make a certificate signing request. The response shall contain a signing request that a certificate authority (CA) must sign. The Service should retain the private key that was generated during this request for installation of the certificate. The private key should not be part of the response.", "parameters": { "AlternativeNames": { - "description": "Additional hostnames of the component that is being secured.", + "description": "The additional host names of the component to secure.", "items": { "type": "string" }, - "longDescription": "This parameter shall contain an array of additional hostnames of the component that is being secured as defined by the Subject Alternative Name extension in RFC5280.", + "longDescription": "This parameter shall contain an array of additional host names of the component to secure, as defined by the RFC5280 'subjectAltName' attribute.", "type": "array" }, "CertificateCollection": { "$ref": "http://redfish.dmtf.org/schemas/v1/CertificateCollection.json#/definitions/CertificateCollection", - "description": "A link to the certificate collection where the certificate will be installed.", - "longDescription": "This parameter shall contain the URI of the Certificate Collection where the certificate will be installed once the CA has signed the certificate.", + "description": "The URI of the Certificate Resource Collection where the certificate is installed after the certificate authority (CA) signs the certificate.", + "longDescription": "This parameter shall contain the URI of the Certificate Resource Collection where the certificate is installed after the certificate authority (CA) signs the certificate.", "requiredParameter": true }, "ChallengePassword": { - "description": "The challenge password to be applied to the certificate for revocation requests.", - "longDescription": "The value of this property shall contain the challenge password to be applied to the certificate for revocation requests as defined by the challengePassword attribute in RFC2985.", + "description": "The challenge password to apply to the certificate for revocation requests.", + "longDescription": "This property shall contain the challenge password to apply to the certificate for revocation requests as defined by the RFC2985 'challengePassword' attribute.", "type": "string" }, "City": { "description": "The city or locality of the organization making the request.", - "longDescription": "This parameter shall contain the city or locality of the organization making the request as defined by the localityName attribute in RFC5280.", + "longDescription": "This parameter shall contain the city or locality of the organization making the request, as defined by the RFC5280 'localityName' attribute.", "requiredParameter": true, "type": "string" }, "CommonName": { - "description": "The fully qualified domain name of the component that is being secured.", - "longDescription": "This parameter shall contain the fully qualified domain name of the component that is being secured as defined by the commonName attribute in RFC5280.", + "description": "The fully qualified domain name of the component to secure.", + "longDescription": "This parameter shall contain the fully qualified domain name of the component to secure, as defined by the RFC5280 'commonName' attribute.", "requiredParameter": true, "type": "string" }, "ContactPerson": { "description": "The name of the user making the request.", - "longDescription": "The value of this property shall contain the name of the user making the request as defined by the name attribute in RFC5280.", + "longDescription": "This property shall contain the name of the user making the request, as defined by the RFC5280 'name' attribute.", "type": "string" }, "Country": { - "description": "The country of the organization making the request.", - "longDescription": "This parameter shall contain the two letter ISO code for the country of the organization making the request as defined by the countryName attribute in RFC5280.", + "description": "The two-letter country code of the organization making the request.", + "longDescription": "This parameter shall contain the two-letter ISO code for the country of the organization making the request, as defined by the RFC5280 'countryName' attribute.", "requiredParameter": true, "type": "string" }, "Email": { "description": "The email address of the contact within the organization making the request.", - "longDescription": "This parameter shall contain the email address of the contact within the organization making the request as defined by the emailAddress attribute in RFC2985.", + "longDescription": "This parameter shall contain the email address of the contact within the organization making the request, as defined by the RFC2985 'emailAddress' attribute.", "type": "string" }, "GivenName": { "description": "The given name of the user making the request.", - "longDescription": "The value of this property shall contain the given name of the user making the request as defined by the givenName attribute in RFC5280.", + "longDescription": "This parameter shall contain the given name of the user making the request, as defined by the RFC5280 'givenName' attribute.", "type": "string" }, "Initials": { "description": "The initials of the user making the request.", - "longDescription": "The value of this property shall contain the initials of the user making the request as defined by the initials attribute in RFC5280.", + "longDescription": "This parameter shall contain the initials of the user making the request, as defined by the RFC5280 'initials' attribute.", "type": "string" }, "KeyBitLength": { - "description": "The length of the key in bits, if needed based on the value of the 'KeyPairAlgorithm' parameter.", - "longDescription": "The value of this property shall be the length of the key in bits, if needed based on the value of the 'KeyPairAlgorithm' parameter.", + "description": "The length of the key, in bits, if needed based on the KeyPairAlgorithm parameter value.", + "longDescription": "This parameter shall contain the length of the key, in bits, if needed based on the KeyPairAlgorithm parameter value.", "type": "integer" }, "KeyCurveId": { - "description": "The curve ID to be used with the key, if needed based on the value of the 'KeyPairAlgorithm' parameter.", - "longDescription": "The value of this property shall be the curve ID to be used with the key, if needed based on the value of the 'KeyPairAlgorithm' parameter. The allowable values for this parameter shall be the strings in the 'Name' field of the 'TPM_ECC_CURVE Constants' table within the 'Trusted Computing Group Algorithm Registry'.", + "description": "The curve ID to use with the key, if needed based on the KeyPairAlgorithm parameter value.", + "longDescription": "This parameter shall contain the curve ID to use with the key, if needed based on the KeyPairAlgorithm parameter value. The allowable values for this parameter shall be the strings in the 'Name' field of the 'TPM_ECC_CURVE Constants' table within the 'Trusted Computing Group Algorithm Registry'.", "type": "string" }, "KeyPairAlgorithm": { - "description": "The type of key pair for use with signing algorithms.", - "longDescription": "The value of this property shall be the type of key pair for use with signing algorithms. The allowable values for this parameter shall be the strings in the 'Algorithm Name' field of the 'TPM_ALG_ID Constants' table within the 'Trusted Computing Group Algorithm Registry'.", + "description": "The type of key-pair for use with signing algorithms.", + "longDescription": "This parameter shall contain the type of key-pair for use with signing algorithms. The allowable values for this parameter shall be the strings in the 'Algorithm Name' field of the 'TPM_ALG_ID Constants' table within the 'Trusted Computing Group Algorithm Registry'.", "type": "string" }, "KeyUsage": { @@ -197,40 +197,40 @@ "items": { "$ref": "http://redfish.dmtf.org/schemas/v1/Certificate.json#/definitions/KeyUsage" }, - "longDescription": "This parameter shall contain the usage of the key contained in the certificate. If not provided by the client, the service may determine the appropriate key usage settings in the certificate signing request.", + "longDescription": "This parameter shall contain the usage of the key contained in the certificate. If the client does not provide this value, the service may determine the appropriate key usage settings in the certificate signing request.", "type": "array" }, "Organization": { "description": "The name of the organization making the request.", - "longDescription": "This parameter shall contain the name of the organization making the request as defined by the organizationName attribute in RFC5280.", + "longDescription": "This parameter shall contain the name of the organization making the request, as defined by the RFC5280 'organizationName' attribute.", "requiredParameter": true, "type": "string" }, "OrganizationalUnit": { "description": "The name of the unit or division of the organization making the request.", - "longDescription": "This parameter shall contain the name of the unit or division of the organization making the request as defined by the organizationalUnitName attribute in RFC5280.", + "longDescription": "This parameter shall contain the name of the unit or division of the organization making the request, as defined by the RFC5280 'organizationalUnitName' attribute.", "requiredParameter": true, "type": "string" }, "State": { "description": "The state, province, or region of the organization making the request.", - "longDescription": "This parameter shall contain the state, province, or region of the organization making the request as defined by the stateOrProvinceName attribute in RFC5280.", + "longDescription": "This parameter shall contain the state, province, or region of the organization making the request, as defined by the RFC5280 'stateOrProvinceName' attribute.", "requiredParameter": true, "type": "string" }, "Surname": { "description": "The surname of the user making the request.", - "longDescription": "The value of this property shall contain the surname of the user making the request as defined by the surname attribute in RFC5280.", + "longDescription": "This parameter shall contain the surname of the user making the request, as defined by the RFC5280 'surname' attribute.", "type": "string" }, "UnstructuredName": { "description": "The unstructured name of the subject.", - "longDescription": "The value of this property shall contain the unstructured name of the subject as defined by the unstructuredName attribute in RFC2985.", + "longDescription": "This property shall contain the unstructured name of the subject, as defined by the RFC2985 'unstructuredName' attribute.", "type": "string" } }, "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -246,7 +246,7 @@ "properties": { "target": { "description": "Link to invoke action", - "format": "uri", + "format": "uri-reference", "type": "string" }, "title": { @@ -261,7 +261,7 @@ "description": "The response body for the GenerateCSR action.", "longDescription": "This type shall contain the properties found in the response body for the GenerateCSR action.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -277,14 +277,14 @@ "properties": { "CSRString": { "description": "The string for the certificate signing request.", - "longDescription": "The value of this property shall be the string of the certificate signing request as a Privacy Enhanced Mail (PEM) encoded string, containing structures specified by RFC2986. The private key should not be part of the string.", + "longDescription": "This property shall contain the Privacy Enhanced Mail (PEM)-encoded string, which contains RFC2986-specified structures, of the certificate signing request. The private key should not be part of the string.", "readonly": true, "type": "string" }, "CertificateCollection": { "$ref": "http://redfish.dmtf.org/schemas/v1/CertificateCollection.json#/definitions/CertificateCollection", - "description": "A link to the certificate collection where the certificate will be installed.", - "longDescription": "This property shall contain the URI of the Certificate Collection where the certificate will be installed once the CA has signed the certificate.", + "description": "The link to the Certificate Resource Collection where the certificate is installed.", + "longDescription": "This property shall contain the URI of the Certificate Resource Collection where the certificate is installed after the certificate authority (CA) has signed the certificate.", "readonly": true } }, @@ -296,10 +296,10 @@ }, "OemActions": { "additionalProperties": true, - "description": "The available OEM specific actions for this resource.", - "longDescription": "This type shall contain any additional OEM actions for this resource.", + "description": "The available OEM-specific actions for this Resource.", + "longDescription": "This type shall contain the available OEM-specific actions for this Resource.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -317,30 +317,30 @@ }, "ReplaceCertificate": { "additionalProperties": false, - "description": "This action is used to replace an existing certificate.", - "longDescription": "This action shall replace an existing certificate. The Location header in the response shall contain the URI of the new Certificate resource.", + "description": "This action replaces a certificate.", + "longDescription": "This action shall replace a certificate. The Location header in the response shall contain the URI of the new Certificate Resource.", "parameters": { "CertificateString": { "description": "The string for the certificate.", - "longDescription": "The value of this property shall be the string of the certificate, and the format shall follow the requirements specified by the value of the CertificateType property. If the certificate contains any private keys, they shall be removed from the string on GET requests. If the private key for the certificate is not known by the service and is needed to use the certificate, the client shall provide the private key as part of the string in the POST request.", + "longDescription": "This parameter shall contain the string of the certificate, and the format shall follow the requirements specified by the CertificateType property value. If the certificate contains any private keys, they shall be removed from the string in responses. If the service does not know the private key for the certificate and it is needed to use the certificate, the client shall provide the private key as part of the string in the POST request.", "requiredParameter": true, "type": "string" }, "CertificateType": { "$ref": "http://redfish.dmtf.org/schemas/v1/Certificate.json#/definitions/CertificateType", "description": "The format of the certificate.", - "longDescription": "The value of this parameter shall contain the format type for the certificate.", + "longDescription": "This parameter shall contain the format type for the certificate.", "requiredParameter": true }, "CertificateUri": { "$ref": "http://redfish.dmtf.org/schemas/v1/Certificate.json#/definitions/Certificate", - "description": "A link to the certificate that is being replaced.", - "longDescription": "This parameter shall contain the URI of the Certificate that is being replaced.", + "description": "The link to the certificate that is being replaced.", + "longDescription": "This parameter shall contain the URI of the Certificate Resource that is being replaced.", "requiredParameter": true } }, "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -356,7 +356,7 @@ "properties": { "target": { "description": "Link to invoke action", - "format": "uri", + "format": "uri-reference", "type": "string" }, "title": { @@ -369,5 +369,5 @@ }, "owningEntity": "DMTF", "release": "2018.3", - "title": "#CertificateService.v1_0_0.CertificateService" + "title": "#CertificateService.v1_0_2.CertificateService" } \ No newline at end of file diff --git a/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/Chassis/Chassis.json b/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/Chassis/Chassis.json index 1f5f1cbd..40a97f49 100644 --- a/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/Chassis/Chassis.json +++ b/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/Chassis/Chassis.json @@ -1,15 +1,15 @@ { - "$id": "http://redfish.dmtf.org/schemas/v1/Chassis.v1_9_0.json", + "$id": "http://redfish.dmtf.org/schemas/v1/Chassis.v1_10_0.json", "$ref": "#/definitions/Chassis", "$schema": "http://redfish.dmtf.org/schemas/v1/redfish-schema-v1.json", - "copyright": "Copyright 2014-2018 DMTF. For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright", + "copyright": "Copyright 2014-2019 DMTF. For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright", "definitions": { "Actions": { "additionalProperties": false, - "description": "The available actions for this resource.", - "longDescription": "This type shall contain the available actions for this resource.", + "description": "The available actions for this Resource.", + "longDescription": "This type shall contain the available actions for this Resource.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -28,18 +28,18 @@ }, "Oem": { "$ref": "#/definitions/OemActions", - "description": "This property contains the available OEM specific actions for this resource.", - "longDescription": "This property shall contain any additional OEM actions for this resource." + "description": "The available OEM-specific actions for this Resource.", + "longDescription": "This property shall contain the available OEM-specific actions for this Resource." } }, "type": "object" }, "Chassis": { "additionalProperties": false, - "description": "The Chassis schema represents the physical components of a system. This resource represents the sheet-metal confined spaces and logical zones such as racks, enclosures, chassis and all other containers. Subsystems (like sensors) that operate outside of a system's data plane (meaning the resources are not accessible to software running on the system) are linked either directly or indirectly through this resource.", - "longDescription": "This resource shall be used to represent a chassis or other physical enclosure for a Redfish implementation.", + "description": "The Chassis schema represents the physical components of a system. This Resource represents the sheet-metal confined spaces and logical zones such as racks, enclosures, chassis and all other containers. Subsystems, such as sensors, that operate outside of a system's data plane are linked either directly or indirectly through this Resource. A subsystem that operates outside of a system's data plane are not accessible to software that runs on the system.", + "longDescription": "This Resource shall represent a chassis or other physical enclosure for a Redfish implementation.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -54,32 +54,32 @@ }, "properties": { "@odata.context": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/context" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/context" }, "@odata.etag": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/etag" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/etag" }, "@odata.id": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/id" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/id" }, "@odata.type": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/type" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/type" }, "Actions": { "$ref": "#/definitions/Actions", - "description": "The available actions for this resource.", - "longDescription": "The Actions property shall contain the available actions for this resource." + "description": "The available actions for this Resource.", + "longDescription": "This property shall contain the available actions for this Resource." }, "Assembly": { "$ref": "http://redfish.dmtf.org/schemas/v1/Assembly.json#/definitions/Assembly", - "description": "A reference to the Assembly resource associated with this chassis.", - "longDescription": "The value of this property shall be a link to a resource of type Assembly.", + "description": "The link to the Assembly associated with this chassis.", + "longDescription": "This property shall contain a link to a Resource of type Assembly.", "readonly": true, "versionAdded": "v1_6_0" }, "AssetTag": { - "description": "The user assigned asset tag of this chassis.", - "longDescription": "The value of this property shall be an identifying string used to track the chassis for inventory purposes.", + "description": "The user-assigned asset tag of this chassis.", + "longDescription": "This property shall contain an identifying string that tracks the chassis for inventory purposes.", "readonly": false, "type": [ "string", @@ -94,7 +94,7 @@ }, "DepthMm": { "description": "The depth of the chassis.", - "longDescription": "The value of this property shall represent the depth (length) of the chassis (in millimeters) as specified by the manufacturer.", + "longDescription": "This property shall represent the depth (length) of the chassis (in millimeters) as specified by the manufacturer.", "minimum": 0, "readonly": true, "type": [ @@ -124,14 +124,14 @@ "type": "null" } ], - "description": "The ASHRAE Environmental Class for this Chassis.", - "longDescription": "The value of this property shall be the ASHRAE Environmental Specification Class for this Chassis, as defined by ASHRAE Thermal Guidelines for Data Processing Environments. These classes define respective environmental limits which include temperature, relative humidity, dew point, and maximum allowable elevation.", + "description": "The ASHRAE Environmental Class for this chassis.", + "longDescription": "This property shall contain the ASHRAE Environmental Class for this chassis, as defined by ASHRAE Thermal Guidelines for Data Processing Environments. These classes define respective environmental limits that include temperature, relative humidity, dew point, and maximum allowable elevation.", "readonly": true, "versionAdded": "v1_9_0" }, "HeightMm": { "description": "The height of the chassis.", - "longDescription": "The value of this property shall represent the height of the chassis (in millimeters) as specified by the manufacturer.", + "longDescription": "This property shall represent the height of the chassis (in millimeters) as specified by the manufacturer.", "minimum": 0, "readonly": true, "type": [ @@ -154,30 +154,30 @@ "type": "null" } ], - "description": "The state of the indicator LED, used to identify the chassis.", - "longDescription": "This value of this property shall contain the indicator light state for the indicator light associated with this system.", + "description": "The state of the indicator LED, which identifies the chassis.", + "longDescription": "This property shall contain the indicator light state for the indicator light associated with this system.", "readonly": false }, "Links": { "$ref": "#/definitions/Links", - "description": "Contains references to other resources that are related to this resource.", - "longDescription": "The Links property, as described by the Redfish Specification, shall contain references to resources that are related to, but not contained by (subordinate to), this resource." + "description": "The links to other Resources that are related to this Resource.", + "longDescription": "This property shall contain links to Resources that are related to but are not contained by or subordinate to this Resource." }, "Location": { "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Location", - "description": "The Location of the chassis.", + "description": "The location of the chassis.", "longDescription": "This property shall contain location information of the associated chassis.", "versionAdded": "v1_2_0" }, "LogServices": { "$ref": "http://redfish.dmtf.org/schemas/v1/LogServiceCollection.json#/definitions/LogServiceCollection", - "description": "A reference to the logs for this chassis.", - "longDescription": "The value of this property shall be a link to a collection of type LogServiceCollection.", + "description": "The link to the logs for this chassis.", + "longDescription": "This property shall contain a link to a Resource Collection of type LogServiceCollection.", "readonly": true }, "Manufacturer": { "description": "The manufacturer of this chassis.", - "longDescription": "The value of this property shall be the name of the organization responsible for producing the chassis. This organization might be the entity from whom the chassis is purchased, but this is not necessarily true.", + "longDescription": "This property shall contain the name of the organization responsible for producing the chassis. This organization might be the entity from whom the chassis is purchased, but this is not necessarily true.", "readonly": true, "type": [ "string", @@ -186,7 +186,7 @@ }, "Model": { "description": "The model number of the chassis.", - "longDescription": "The value of this property shall be the name by which the manufacturer generally refers to the chassis.", + "longDescription": "This property shall contain the name by which the manufacturer generally refers to the chassis.", "readonly": true, "type": [ "string", @@ -199,26 +199,33 @@ }, "NetworkAdapters": { "$ref": "http://redfish.dmtf.org/schemas/v1/NetworkAdapterCollection.json#/definitions/NetworkAdapterCollection", - "description": "A reference to the collection of Network Adapters associated with this chassis.", - "longDescription": "The value of this property shall be a link to a collection of type NetworkAdapterCollection.", + "description": "The link to the collection of Network Adapters associated with this chassis.", + "longDescription": "This property shall contain a link to a Resource Collection of type NetworkAdapterCollection.", "readonly": true, "versionAdded": "v1_4_0" }, "Oem": { "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem", - "description": "This is the manufacturer/provider specific extension moniker used to divide the Oem object into sections.", - "longDescription": "The value of this string shall be of the format for the reserved word *Oem*." + "description": "The OEM extension property.", + "longDescription": "This property shall contain the OEM extensions. All values for properties that this object contains shall conform to the Redfish Specification-described requirements." + }, + "PCIeDevices": { + "$ref": "http://redfish.dmtf.org/schemas/v1/PCIeDeviceCollection.json#/definitions/PCIeDeviceCollection", + "description": "The link to the collection of PCIe devices located in this chassis.", + "longDescription": "This property shall contain a link to a Resource Collection of type PCIeDeviceCollection.", + "readonly": true, + "versionAdded": "v1_10_0" }, "PCIeSlots": { "$ref": "http://redfish.dmtf.org/schemas/v1/PCIeSlots.json#/definitions/PCIeSlots", - "description": "A reference to the PCIe Slot properties of this chassis.", - "longDescription": "The value of this property shall be a reference to the resource that represents the PCIe Slot information for this chassis and shall be of type PCIeSlot.", + "description": "The link to the PCIe slot properties for this chassis.", + "longDescription": "This property shall contain a link to the Resource that represents the PCIe slot information for this chassis and shall be of the PCIeSlot type.", "readonly": true, "versionAdded": "v1_8_0" }, "PartNumber": { "description": "The part number of the chassis.", - "longDescription": "The value of this property shall be a part number assigned by the organization that is responsible for producing or manufacturing the chassis.", + "longDescription": "This property shall contain a part number assigned by the organization that is responsible for producing or manufacturing the chassis.", "readonly": true, "type": [ "string", @@ -228,13 +235,13 @@ "PhysicalSecurity": { "$ref": "#/definitions/PhysicalSecurity", "description": "The state of the physical security sensor.", - "longDescription": "This value of this property shall contain the sensor state of the physical security.", + "longDescription": "This property shall contain the sensor state of the physical security.", "versionAdded": "v1_1_0" }, "Power": { "$ref": "http://redfish.dmtf.org/schemas/v1/Power.json#/definitions/Power", - "description": "A reference to the power properties (power supplies, power policies, sensors) of this chassis.", - "longDescription": "The value of this property shall be a reference to the resource that represents the power characteristics of this chassis and shall be of type Power.", + "description": "The link to the power properties, or power supplies, power policies, and sensors, for this chassis.", + "longDescription": "This property shall contain a link to the Resource that represents the power characteristics of this chassis and shall be of the Power type.", "readonly": true }, "PowerState": { @@ -247,13 +254,13 @@ } ], "description": "The current power state of the chassis.", - "longDescription": "The value of this property shall contain the power state of the chassis.", + "longDescription": "This property shall contain the power state of the chassis.", "readonly": true, "versionAdded": "v1_0_1" }, "SKU": { "description": "The SKU of the chassis.", - "longDescription": "The value of this property shall be the stock-keeping unit number for this chassis.", + "longDescription": "This property shall contain the stock-keeping unit number for this chassis.", "readonly": true, "type": [ "string", @@ -263,13 +270,13 @@ "Sensors": { "$ref": "http://redfish.dmtf.org/schemas/v1/SensorCollection.json#/definitions/SensorCollection", "description": "The naivgation pointer to the collection of sensors located in the equipment and sub-components.", - "longDescription": "This property shall be a reference to a resource of type SensorCollection that contains the sensors located in the Chassis and sub-components.", + "longDescription": "This property shall contain a link to a Resource of type SensorCollection that contains the sensors located in the chassis and sub-components.", "readonly": true, "versionAdded": "v1_9_0" }, "SerialNumber": { "description": "The serial number of the chassis.", - "longDescription": "The value of this property shall be a manufacturer-allocated number used to identify the chassis.", + "longDescription": "This property shall contain a manufacturer-allocated number that identifies the chassis.", "readonly": true, "type": [ "string", @@ -278,13 +285,13 @@ }, "Status": { "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Status", - "description": "This property describes the status and health of the resource and its children.", - "longDescription": "This property shall contain any status or health properties of the resource." + "description": "The status and health of the Resource and its subordinate or dependent Resources.", + "longDescription": "This property shall contain any status or health properties of the Resource." }, "Thermal": { "$ref": "http://redfish.dmtf.org/schemas/v1/Thermal.json#/definitions/Thermal", - "description": "A reference to the thermal properties (fans, cooling, sensors) of this chassis.", - "longDescription": "The value of this property shall be a reference to the resource that represents the thermal characteristics of this chassis and shall be of type Thermal.", + "description": "The link to the thermal properties, such as fans, cooling, and sensors, for this chassis.", + "longDescription": "This property shall contain a link to the Resource that represents the thermal characteristics of this chassis and shall be of the Thermal type.", "readonly": true }, "UUID": { @@ -296,14 +303,14 @@ "type": "null" } ], - "description": "The Universal Unique Identifier (UUID) for this Chassis.", - "longDescription": "The value of this property shall contain the universal unique identifier number for the chassis.", + "description": "The Universal Unique Identifier (UUID) for this chassis.", + "longDescription": "This property shall contain the universal unique identifier number for the chassis.", "readonly": true, "versionAdded": "v1_7_0" }, "WeightKg": { "description": "The weight of the chassis.", - "longDescription": "The value of this property shall represent the published mass (commonly referred to as weight) of the chassis (in kilograms).", + "longDescription": "This property shall represent the published mass (commonly referred to as weight) of the chassis (in kilograms).", "minimum": 0, "readonly": true, "type": [ @@ -315,7 +322,7 @@ }, "WidthMm": { "description": "The width of the chassis.", - "longDescription": "The value of this property shall represent the width of the chassis (in millimeters) as specified by the manufacturer.", + "longDescription": "This property shall represent the width of the chassis (in millimeters) as specified by the manufacturer.", "minimum": 0, "readonly": true, "type": [ @@ -360,26 +367,26 @@ "Other" ], "enumDescriptions": { - "Blade": "An enclosed or semi-enclosed, typically vertically-oriented, system chassis which must be plugged into a multi-system chassis to function normally.", + "Blade": "An enclosed or semi-enclosed, typically vertically-oriented, system chassis that must be plugged into a multi-system chassis to function normally.", "Card": "A loose device or circuit board intended to be installed in a system or other enclosure.", "Cartridge": "A small self-contained system intended to be plugged into a multi-system chassis.", - "Component": "A small chassis, card, or device which contains devices for a particular subsystem or function.", - "Drawer": "An enclosed or semi-enclosed, typically horizontally-oriented, system chassis which may be slid into a multi-system chassis.", + "Component": "A small chassis, card, or device that contains devices for a particular subsystem or function.", + "Drawer": "An enclosed or semi-enclosed, typically horizontally-oriented, system chassis that may be slid into a multi-system chassis.", "Enclosure": "A generic term for a chassis that does not fit any other description.", - "Expansion": "A chassis which expands the capabilities or capacity of another chassis.", + "Expansion": "A chassis that expands the capabilities or capacity of another chassis.", "IPBasedDrive": "A chassis in a drive form factor with IP-based network connections.", - "Module": "A small, typically removable, chassis or card which contains devices for a particular subsystem or function.", + "Module": "A small, typically removable, chassis or card that contains devices for a particular subsystem or function.", "Other": "A chassis that does not fit any of these definitions.", "Pod": "A collection of equipment racks in a large, likely transportable, container.", "Rack": "An equipment rack, typically a 19-inch wide freestanding unit.", - "RackGroup": "A group of racks which form a single entity or share infrastructure.", - "RackMount": "A single system chassis designed specifically for mounting in an equipment rack.", + "RackGroup": "A group of racks that form a single entity or share infrastructure.", + "RackMount": "A single-system chassis designed specifically for mounting in an equipment rack.", "Row": "A collection of equipment racks.", - "Shelf": "An enclosed or semi-enclosed, typically horizontally-oriented, system chassis which must be plugged into a multi-system chassis to function normally.", + "Shelf": "An enclosed or semi-enclosed, typically horizontally-oriented, system chassis that must be plugged into a multi-system chassis to function normally.", "Sidecar": "A chassis that mates mechanically with another chassis to expand its capabilities or capacity.", - "Sled": "An enclosed or semi-enclosed, system chassis which must be plugged into a multi-system chassis to function normally similar to a blade type chassis.", + "Sled": "An enclosed or semi-enclosed, system chassis that must be plugged into a multi-system chassis to function normally similar to a blade type chassis.", "StandAlone": "A single, free-standing system, commonly called a tower or desktop chassis.", - "StorageEnclosure": "A chassis which encloses storage.", + "StorageEnclosure": "A chassis that encloses storage.", "Zone": "A logical division or portion of a physical chassis that contains multiple devices or systems that cannot be physically separated." }, "enumVersionAdded": { @@ -397,10 +404,10 @@ "A4" ], "enumDescriptions": { - "A1": "ASHRAE Environmental Specification Class 'A1'.", - "A2": "ASHRAE Environmental Specification Class 'A2'.", - "A3": "ASHRAE Environmental Specification Class 'A3'.", - "A4": "ASHRAE Environmental Specification Class 'A4'." + "A1": "ASHRAE Environmental Class 'A1'.", + "A2": "ASHRAE Environmental Class 'A2'.", + "A3": "ASHRAE Environmental Class 'A3'.", + "A4": "ASHRAE Environmental Class 'A4'." }, "type": "string" }, @@ -412,19 +419,19 @@ "Off" ], "enumDeprecated": { - "Unknown": "This value has been Deprecated in favor of returning null if the state is unknown." + "Unknown": "This value has been deprecated in favor of returning null if the state is unknown." }, "enumDescriptions": { - "Blinking": "The Indicator LED is blinking.", - "Lit": "The Indicator LED is lit.", - "Off": "The Indicator LED is off.", - "Unknown": "The state of the Indicator LED cannot be determined." + "Blinking": "The indicator LED is blinking.", + "Lit": "The indicator LED is lit.", + "Off": "The indicator LED is off.", + "Unknown": "The state of the indicator LED cannot be determined." }, "enumLongDescriptions": { - "Blinking": "This value shall represent the Indicator LED is in a blinking state where the LED is being turned on and off in repetition. If this value is not supported by the service, the service shall reject PATCH or PUT requests containing this value by returning HTTP 400 (Bad Request).", - "Lit": "This value shall represent the Indicator LED is in a solid on state. If this value is not supported by the service, the service shall reject PATCH or PUT requests containing this value by returning HTTP 400 (Bad Request).", - "Off": "This value shall represent the Indicator LED is in a solid off state. If this value is not supported by the service, the service shall reject PATCH or PUT requests containing this value by returning HTTP 400 (Bad Request).", - "Unknown": "This value shall represent the Indicator LED is in an unknown state. The service shall reject PATCH or PUT requests containing this value by returning HTTP 400 (Bad Request)." + "Blinking": "This value shall represent the indicator LED is in a blinking state where the LED is being turned on and off in repetition. If the service does not support this value, it shall reject PATCH or PUT requests containing this value by returning the HTTP 400 (Bad Request) status code.", + "Lit": "This value shall represent the indicator LED is in a solid on state. If the service does not support this value, it shall return the HTTP 400 (Bad Request) status code to reject PATCH or PUT requests that contain this value.", + "Off": "This value shall represent the indicator LED is in a solid off state. If the service does not support this value, it shall reject PATCH or PUT requests containing this value by returning the HTTP 400 (Bad Request) status code.", + "Unknown": "This value shall represent the indicator LED is in an unknown state. The Service shall reject PATCH or PUT requests containing this value by returning the HTTP 400 (Bad Request) status code." }, "enumVersionDeprecated": { "Unknown": "v1_2_0" @@ -438,8 +445,8 @@ "TamperingDetected" ], "enumDescriptions": { - "HardwareIntrusion": "A door, lock, or other mechanism protecting the internal system hardware from being accessed is detected as being in an insecure state.", - "Normal": "No abnormal physical security conditions are detected at this time.", + "HardwareIntrusion": "A door, lock, or other mechanism protecting the internal system hardware from being accessed is detected to be in an insecure state.", + "Normal": "No abnormal physical security condition is detected at this time.", "TamperingDetected": "Physical tampering of the monitored entity is detected." }, "type": "string" @@ -450,17 +457,17 @@ "Automatic" ], "enumDescriptions": { - "Automatic": "This sensor would be restored to the Normal state automatically as no abnormal physical security conditions are detected.", - "Manual": "This sensor would be restored to the Normal state by a manual re-arm." + "Automatic": "Because no abnormal physical security condition is detected, this sensor is automatically restored to the normal state.", + "Manual": "A manual re-arm of this sensor restores it to the normal state." }, "type": "string" }, "Links": { "additionalProperties": false, - "description": "Contains references to other resources that are related to this resource.", - "longDescription": "This type, as described by the Redfish Specification, shall contain references to resources that are related to, but not contained by (subordinate to), this resource.", + "description": "The links to other Resources that are related to this Resource.", + "longDescription": "This Redfish Specification-described type shall contain links to Resources that are related to but are not contained by or subordinate to this Resource.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -475,176 +482,178 @@ }, "properties": { "ComputerSystems": { - "description": "An array of references to the computer systems contained in this chassis. This will only reference ComputerSystems that are directly and wholly contained in this chassis.", + "description": "An array of links to the computer systems that this chassis directly and wholly contains.", "items": { "$ref": "http://redfish.dmtf.org/schemas/v1/ComputerSystem.json#/definitions/ComputerSystem" }, - "longDescription": "The value of this property shall be a reference to the resource that this physical container is associated with and shall reference a resource of type ComputerSystem. If a ComputerSystem is also referenced in a Chassis that is referenced in a Contains link from this resource, that ComputerSystem shall not be referenced in this Chassis.", + "longDescription": "This property shall contain a link to the Resource of type ComputerSystem with which this physical container is associated. If a chassis also links to a computer system to which this Resource also links, this chassis shall not link to that computer system.", "readonly": true, "type": "array" }, "ComputerSystems@odata.count": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/count" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/count" }, "ContainedBy": { "$ref": "http://redfish.dmtf.org/schemas/v1/Chassis.json#/definitions/Chassis", - "description": "A reference to the chassis that this chassis is contained by.", - "longDescription": "The value of this property shall be a reference to the resource that represents the chassis that contains this chassis and shall be of type Chassis.", + "description": "The link to the chassis that contains this chassis.", + "longDescription": "This property shall contain a link to the Resource that represents the chassis that contains this chassis and shall be of the Chassis type.", "readonly": true }, "Contains": { - "description": "An array of references to any other chassis that this chassis has in it.", + "description": "An array of links to any other chassis that this chassis has in it.", "items": { "$ref": "http://redfish.dmtf.org/schemas/v1/Chassis.json#/definitions/Chassis" }, - "longDescription": "The value of this property shall be a reference to the resource that represents the chassis that this chassis contains and shall be of type Chassis.", + "longDescription": "This property shall contain a link to the Resource that represents the chassis that this chassis contains and shall be of the Chassis type.", "readonly": true, "type": "array" }, "Contains@odata.count": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/count" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/count" }, "CooledBy": { - "description": "An array of ID[s] of resources that cool this chassis. Normally the ID will be a chassis or a specific set of fans.", + "description": "An array of one or more IDs of Resources that cool this chassis. Normally, the ID is for either a chassis or a specific set of fans.", "items": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/idRef" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/idRef" }, - "longDescription": "The value of this property shall be an array of IDs containing pointers consistent with JSON pointer syntax to the resource that cools this chassis.", + "longDescription": "This property shall contain an array of one or more IDs that contain pointers consistent with JSON Pointer syntax to the Resource that cools this chassis.", "readonly": true, "type": "array" }, "CooledBy@odata.count": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/count" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/count" }, "Drives": { - "description": "An array of references to the disk drives located in this Chassis.", + "description": "An array of links to the drives located in this chassis.", "items": { "$ref": "http://redfish.dmtf.org/schemas/v1/Drive.json#/definitions/Drive" }, - "longDescription": "The value of this property shall reference one or more resources of type Drive that are in this Chassis.", + "longDescription": "This property shall link to one or more Resources of the Drive type that are in this chassis.", "readonly": true, "type": "array", "versionAdded": "v1_2_0" }, "Drives@odata.count": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/count" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/count" }, "ManagedBy": { - "description": "An array of references to the Managers responsible for managing this chassis.", + "description": "An array of links to the Managers responsible for managing this chassis.", "items": { "$ref": "http://redfish.dmtf.org/schemas/v1/Manager.json#/definitions/Manager" }, - "longDescription": "The value of this property shall be a reference to the resource that manages this chassis and shall reference a resource of type Manager.", + "longDescription": "This property shall contain a link to the Resource of type Manager that manages this chassis.", "readonly": true, "type": "array" }, "ManagedBy@odata.count": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/count" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/count" }, "ManagersInChassis": { - "description": "An array of references to the managers located in this Chassis.", + "description": "An array of links to the managers located in this chassis.", "items": { "$ref": "http://redfish.dmtf.org/schemas/v1/Manager.json#/definitions/Manager" }, - "longDescription": "The value of this property shall reference one or more resources of type Manager that are in this Chassis.", + "longDescription": "This property shall link to one or more Resources of the Manager type that are in this chassis.", "readonly": true, "type": "array", "versionAdded": "v1_2_0" }, "ManagersInChassis@odata.count": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/count" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/count" }, "Oem": { "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem", - "description": "Oem extension object.", - "longDescription": "This object represents the Oem property. All values for resources described by this schema shall comply to the requirements as described in the Redfish specification." + "description": "The OEM extension property.", + "longDescription": "This property shall contain the OEM extensions. All values for properties contained in this object shall conform to the Redfish Specification-described requirements." }, "PCIeDevices": { - "description": "An array of references to the PCIe Devices located in this Chassis.", + "deprecated": "This property has been deprecated in favor of the PCIeDevices Resource Collection in the root of this Resource.", + "description": "An array of links to the PCIe devices located in this chassis.", "items": { "$ref": "http://redfish.dmtf.org/schemas/v1/PCIeDevice.json#/definitions/PCIeDevice" }, - "longDescription": "The value of this property shall reference one or more resources of type PCIeDevices.", + "longDescription": "This property shall contain an array of links to one or more Resources of the PCIeDevices type.", "readonly": true, "type": "array", - "versionAdded": "v1_4_0" + "versionAdded": "v1_4_0", + "versionDeprecated": "v1_10_0" }, "PCIeDevices@odata.count": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/count" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/count" }, "PoweredBy": { - "description": "An array of ID[s] of resources that power this chassis. Normally the ID will be a chassis or a specific set of Power Supplies.", + "description": "An array of one or more IDs of Resources that power this chassis. Normally, the ID is for either a chassis or a specific set of power supplies.", "items": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/idRef" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/idRef" }, - "longDescription": "The value of this property shall be an array of IDs containing pointers consistent with JSON pointer syntax to the resource that powers this chassis.", + "longDescription": "This property shall contain an array of one or more IDs that contain pointers consistent with JSON Pointer syntax to the Resource that powers this chassis.", "readonly": true, "type": "array" }, "PoweredBy@odata.count": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/count" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/count" }, "Processors": { - "description": "An array of references to the Processors located in this Chassis.", + "description": "An array of links to the processors located in this chassis.", "items": { "$ref": "http://redfish.dmtf.org/schemas/v1/Processor.json#/definitions/Processor" }, - "longDescription": "The value of this property shall be an array of references of type Processor that are contained in this Chassis.", + "longDescription": "This property shall contain an array of links of the Processor type that this chassis contains.", "readonly": true, "type": "array", "versionAdded": "v1_9_0" }, "Processors@odata.count": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/count" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/count" }, "ResourceBlocks": { - "description": "An array of references to the Resource Blocks located in this Chassis.", + "description": "An array of links to the Resource Blocks located in this chassis.", "items": { "$ref": "http://redfish.dmtf.org/schemas/v1/ResourceBlock.json#/definitions/ResourceBlock" }, - "longDescription": "The value of this property shall be an array of references of type ResourceBlock that are contained in this Chassis.", + "longDescription": "This property shall contain an array of links of the ResourceBlock type that this chassis contains.", "readonly": true, "type": "array", "versionAdded": "v1_5_0" }, "ResourceBlocks@odata.count": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/count" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/count" }, "Storage": { - "description": "An array of references to the storage subsystems connected to or inside this Chassis.", + "description": "An array of links to the storage subsystems connected to or inside this chassis.", "items": { "$ref": "http://redfish.dmtf.org/schemas/v1/Storage.json#/definitions/Storage" }, - "longDescription": "The value of this property shall reference one or more resources of type Storage that are connected to or contained inside this Chassis.", + "longDescription": "This property shall link to one or more Resources of the Storage type that are connected to or contained in this chassis.", "readonly": true, "type": "array", "versionAdded": "v1_2_0" }, "Storage@odata.count": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/count" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/count" }, "Switches": { - "description": "An array of references to the Switches located in this Chassis.", + "description": "An array of links to the Switches located in this chassis.", "items": { "$ref": "http://redfish.dmtf.org/schemas/v1/Switch.json#/definitions/Switch" }, - "longDescription": "The value of this property shall be an array of references of type Switch that are contained in this Chassis.", + "longDescription": "This property shall contain an array of links of the Switch type that this chassis contains.", "readonly": true, "type": "array", "versionAdded": "v1_7_0" }, "Switches@odata.count": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/count" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/count" } }, "type": "object" }, "OemActions": { "additionalProperties": true, - "description": "The available OEM specific actions for this resource.", - "longDescription": "This type shall contain any additional OEM actions for this resource.", + "description": "The available OEM-specific actions for this Resource.", + "longDescription": "This type shall contain the available OEM-specific actions for this Resource.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -665,7 +674,7 @@ "description": "The state of the physical security sensor.", "longDescription": "This type shall describe the sensor state of the physical security.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -689,13 +698,13 @@ } ], "description": "This indicates the known state of the physical security sensor, such as if it is hardware intrusion detected.", - "longDescription": "This property shall represent the state of this physical security sensor. Hardware intrusion indicates the internal hardware is detected as being accessed in an insecure state. Tampering detected indicates the physical tampering of the monitored entity is detected.", + "longDescription": "This property shall represent the state of this physical security sensor. Hardware intrusion indicates the internal hardware is detected as being accessed in an insecure state. Tampering detected indicates the physical tampering of the monitored entity is detected.", "readonly": false, "versionAdded": "v1_1_0" }, "IntrusionSensorNumber": { "description": "A numerical identifier to represent the physical security sensor.", - "longDescription": "The value of this property shall be a numerical identifier for this physical security sensor that is unique within this resource.", + "longDescription": "This property shall contain a numerical identifier for this physical security sensor that is unique within this Resource.", "readonly": true, "type": [ "integer", @@ -712,8 +721,8 @@ "type": "null" } ], - "description": "This indicates how the Normal state to be restored.", - "longDescription": "This property shall represent the method to set back to the Normal statue of this physical security sensor. Manual indicates manual re-arm is needed. Automatic indicates the state is restored automatically as no abnormal physical security conditions are detected.", + "description": "The method that restores this physical security sensor to the normal state.", + "longDescription": "This property shall represent the method that restores this physical security sensor to the normal state. Manual indicates manual re-arm is needed. Automatic indicates the state is restored automatically because no abnormal physical security conditions are detected.", "readonly": true, "versionAdded": "v1_1_0" } @@ -728,26 +737,26 @@ "PoweringOff" ], "enumDescriptions": { - "Off": "The components within the chassis has no power, except some components may continue to have AUX power such as management controller.", - "On": "The components within the chassis has power on.", - "PoweringOff": "A temporary state between On and Off. The components within the chassis can take time to process the power off action.", - "PoweringOn": "A temporary state between Off and On. The components within the chassis can take time to process the power on action." + "Off": "The components within the chassis have no power, except some components may continue to have AUX power, such as the management controller.", + "On": "The components within the chassis have power.", + "PoweringOff": "A temporary state between on and off. The components within the chassis can take time to process the power off action.", + "PoweringOn": "A temporary state between off and on. The components within the chassis can take time to process the power on action." }, "type": "string" }, "Reset": { "additionalProperties": false, - "description": "This action is used to reset the chassis. This action resets the chassis, not Systems or other contained resources, although side effects may occur which affect those resources.", - "longDescription": "This action shall reset the chassis. This action shall not reset Systems or other contained resource, although side effects may occur which affect those resources.", + "description": "This action resets the chassis but does not reset systems or other contained Resources, although side effects may occur that affect those Resources.", + "longDescription": "This action shall reset the chassis but shall not reset systems or other contained Resources, although side effects may occur that affect those Resources.", "parameters": { "ResetType": { "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/ResetType", - "description": "The type of reset to be performed.", - "longDescription": "This parameter shall define the type of reset to be performed. The service may accept a request without the parameter and perform an implementation specific default reset." + "description": "The type of reset.", + "longDescription": "This parameter shall contain the type of reset. The Service may accept a request without the parameter and complete an implementation-specific default reset." } }, "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -763,7 +772,7 @@ "properties": { "target": { "description": "Link to invoke action", - "format": "uri", + "format": "uri-reference", "type": "string" }, "title": { @@ -775,6 +784,6 @@ } }, "owningEntity": "DMTF", - "release": "2018.3", - "title": "#Chassis.v1_9_0.Chassis" + "release": "2019.2", + "title": "#Chassis.v1_10_0.Chassis" } \ No newline at end of file diff --git a/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/CollectionCapabilities/CollectionCapabilities.json b/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/CollectionCapabilities/CollectionCapabilities.json index 237727f2..6ae64bec 100644 --- a/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/CollectionCapabilities/CollectionCapabilities.json +++ b/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/CollectionCapabilities/CollectionCapabilities.json @@ -1,14 +1,14 @@ { - "$id": "http://redfish.dmtf.org/schemas/v1/CollectionCapabilities.v1_1_1.json", + "$id": "http://redfish.dmtf.org/schemas/v1/CollectionCapabilities.v1_2_0.json", "$schema": "http://redfish.dmtf.org/schemas/v1/redfish-schema-v1.json", - "copyright": "Copyright 2014-2018 DMTF. For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright", + "copyright": "Copyright 2014-2019 DMTF. For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright", "definitions": { "Capability": { "additionalProperties": false, - "description": "This type describes a specific capability of a collection for a given use case.", - "longDescription": "This type shall describe a specific capability of a collection in terms of how a client is able to create new resources within the collection for the specified use case.", + "description": "This type describes a capability of a collection for a specific use case.", + "longDescription": "This type shall describe a capability of a Resource Collection in terms of how a client can create Resources within the collection for the specified use case.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -23,20 +23,20 @@ }, "properties": { "CapabilitiesObject": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/idRef", - "description": "Reference to the resource the client may GET to in order to understand how to form a POST request for a given collection.", - "longDescription": "The value of this property shall be a reference to a Resource that matches the type for the given collection and shall contain annotations that describe the properties allowed in the POST request.", + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/idRef", + "description": "The link to the Resource the client may GET to understand how to form a POST request for a collection.", + "longDescription": "This property shall contain a link to a Resource that matches the type for a Resource Collection and shall contain annotations that describe the properties allowed in the POST request.", "readonly": true }, "Links": { "$ref": "#/definitions/Links", - "description": "Contains references to other resources that are related to this resource.", - "longDescription": "The Links property, as described by the Redfish Specification, shall contain references to resources that are related to, but not contained by (subordinate to), this resource." + "description": "The links to other Resources that are related to this Resource.", + "longDescription": "The Redfish Specification-described Links Property shall contain links to Resources related to but not subordinate to this Resource." }, "UseCase": { "$ref": "#/definitions/UseCase", - "description": "This property represents the use case in which a client may issue a POST request to the collection.", - "longDescription": "The value of this property shall be an enumerated value describing the use case for this capability instance.", + "description": "The use case in which a client may issue a POST request to the collection.", + "longDescription": "This property shall contain an enumerated value that describes the use case for this capability instance.", "readonly": true } }, @@ -50,9 +50,9 @@ "CollectionCapabilities": { "additionalProperties": false, "description": "This type describes the capabilities of a collection.", - "longDescription": "This type shall describe any capabilities of a collection in terms of how a client is able to create new resources within the collection.", + "longDescription": "This type shall describe any capabilities of a Resource Collection in terms of how a client can create Resources within the Resource Collection.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -67,22 +67,30 @@ }, "properties": { "Capabilities": { - "description": "This property contains the list of capabilities supported by this resource.", + "description": "The list of capabilities supported by this Resource.", "items": { "$ref": "#/definitions/Capability" }, - "longDescription": "The value of this property shall be an array of Capability structures.", + "longDescription": "This property shall contain an array of Capability structures.", "type": "array" + }, + "MaxMembers": { + "description": "The maximum number of members allowed in this collection.", + "longDescription": "This integer property shall contain the maximum number of members allowed in this Resource Collection.", + "minimum": 1, + "readonly": true, + "type": "integer", + "versionAdded": "v1_2_0" } }, "type": "object" }, "Links": { "additionalProperties": false, - "description": "Contains references to other resources that are related to this resource.", - "longDescription": "This type, as described by the Redfish Specification, shall contain references to resources that are related to, but not contained by (subordinate to), this resource.", + "description": "The links to other Resources that are related to this Resource.", + "longDescription": "The Redfish Specification-described type shall contain links to Resources related to but not subordinate to this Resource.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -98,25 +106,25 @@ "properties": { "Oem": { "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem", - "description": "Oem extension object.", - "longDescription": "This object represents the Oem property. All values for resources described by this schema shall comply to the requirements as described in the Redfish specification." + "description": "The OEM extension property.", + "longDescription": "This property shall contain the OEM extensions. All values for properties contained in this object shall conform to the Redfish Specification-described requirements." }, "RelatedItem": { - "description": "The ID(s) of the resources associated with this capability.", + "description": "The ID(s) of the Resources associated with this capability.", "items": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/idRef" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/idRef" }, - "longDescription": "The value of this property shall be an array of IDs containing pointers consistent with JSON pointer syntax to the resource that is related to this capability.", + "longDescription": "This property shall contain an array of IDs for pointers consistent with JSON Pointer syntax to the Resource that is related to this capability.", "readonly": true, "type": "array" }, "RelatedItem@odata.count": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/count" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/count" }, "TargetCollection": { "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/ResourceCollection", "description": "Reference to the collection that this capabilities structure is describing.", - "longDescription": "The value of this property shall be a reference to a Resource Collection that this structure is describing. This structure may be used by a client in order to understand how to form the POST request for the given collection.", + "longDescription": "This property shall contain a link to a Resource Collection that this structure describes. A client may use this structure to understand how to form the POST request for the collection.", "readonly": true } }, @@ -143,6 +151,6 @@ } }, "owningEntity": "DMTF", - "release": "2018.2", - "title": "#CollectionCapabilities.v1_1_1" + "release": "2019.2", + "title": "#CollectionCapabilities.v1_2_0" } \ No newline at end of file diff --git a/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/CompositionService/CompositionService.json b/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/CompositionService/CompositionService.json index 38ba4650..78c55e6c 100644 --- a/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/CompositionService/CompositionService.json +++ b/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/CompositionService/CompositionService.json @@ -1,14 +1,15 @@ { + "$id": "http://redfish.dmtf.org/schemas/v1/CompositionService.v1_1_2.json", "$ref": "#/definitions/CompositionService", "$schema": "http://redfish.dmtf.org/schemas/v1/redfish-schema-v1.json", - "copyright": "Copyright 2014-2018 DMTF. For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright", + "copyright": "Copyright 2014-2019 DMTF. For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright", "definitions": { "Actions": { "additionalProperties": false, - "description": "The available actions for this resource.", - "longDescription": "This type shall contain the available actions for this resource.", + "description": "The available actions for this Resource.", + "longDescription": "This type shall contain the available actions for this Resource.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -24,18 +25,18 @@ "properties": { "Oem": { "$ref": "#/definitions/OemActions", - "description": "This property contains the available OEM specific actions for this resource.", - "longDescription": "This property shall contain any additional OEM actions for this resource." + "description": "The available OEM-specific actions for this Resource.", + "longDescription": "This property shall contain the available OEM-specific actions for this Resource." } }, "type": "object" }, "CompositionService": { "additionalProperties": false, - "description": "The CompositionService schema defines a Composition Service which represents the properties for the service and links to the resources available for composition.", - "longDescription": "This resource shall be used to represent the Composition Service Properties for a Redfish implementation.", + "description": "The CompositionService schema describes a Composition Service and its properties and links to the Resources available for composition.", + "longDescription": "This Resource shall represent the Composition Service and its properties for a Redfish implementation.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -50,39 +51,41 @@ }, "properties": { "@odata.context": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/context" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/context" }, "@odata.etag": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/etag" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/etag" }, "@odata.id": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/id" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/id" }, "@odata.type": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/type" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/type" }, "Actions": { "$ref": "#/definitions/Actions", - "description": "The available actions for this resource.", - "longDescription": "The Actions property shall contain the available actions for this resource." + "description": "The available actions for this Resource.", + "longDescription": "This property shall contain the available actions for this Resource." }, "AllowOverprovisioning": { - "description": "This indicates whether this service is allowed to overprovision a composition relative to the composition request.", - "longDescription": "The value of this property shall be a boolean indicating whether this service is allowed to overprovision a composition relative to the composition request.", + "description": "An indication of whether this service is allowed to overprovision a composition relative to the composition request.", + "longDescription": "This property shall indicate whether this service is allowed to overprovision a composition relative to the composition request.", "readonly": false, "type": [ "boolean", "null" - ] + ], + "versionAdded": "v1_1_0" }, "AllowZoneAffinity": { - "description": "This indicates whether a client is allowed to request that given composition request is fulfilled by a specified Resource Zone.", - "longDescription": "The value of this property shall be a boolean indicating whether a client is allowed to request that given composition request is fulfilled by a specified Resource Zone.", + "description": "An indication of whether a client can request that a specific Resource Zone fulfill a composition request.", + "longDescription": "This property shall indicate whether a client can request that a specific Resource Zone fulfill a composition request.", "readonly": true, "type": [ "boolean", "null" - ] + ], + "versionAdded": "v1_1_0" }, "Description": { "anyOf": [ @@ -105,24 +108,24 @@ }, "Oem": { "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem", - "description": "This is the manufacturer/provider specific extension moniker used to divide the Oem object into sections.", - "longDescription": "The value of this string shall be of the format for the reserved word *Oem*." + "description": "The OEM extension property.", + "longDescription": "This property shall contain the OEM extensions. All values for properties that this object contains shall conform to the Redfish Specification-described requirements." }, "ResourceBlocks": { "$ref": "http://redfish.dmtf.org/schemas/v1/ResourceBlockCollection.json#/definitions/ResourceBlockCollection", - "description": "The resource blocks available on the service.", - "longDescription": "This property shall contain the link to a collection of type ResourceBlockCollection.", + "description": "The Resource Blocks available on the service.", + "longDescription": "This property shall contain the link to a Resource Collection of type ResourceBlockCollection.", "readonly": true }, "ResourceZones": { "$ref": "http://redfish.dmtf.org/schemas/v1/ZoneCollection.json#/definitions/ZoneCollection", - "description": "The resource zones available on the service.", - "longDescription": "This property shall contain the link to a collection of type ZoneCollection.", + "description": "The Resource Zones available on the service.", + "longDescription": "This property shall contain the link to a Resource Collection of type ZoneCollection.", "readonly": true }, "ServiceEnabled": { - "description": "This indicates whether this service is enabled.", - "longDescription": "The value of this property shall be a boolean indicating whether this service is enabled.", + "description": "An indication of whether this service is enabled.", + "longDescription": "This property shall indicate whether this service is enabled.", "readonly": false, "type": [ "boolean", @@ -131,8 +134,8 @@ }, "Status": { "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Status", - "description": "This property describes the status and health of the resource and its children.", - "longDescription": "This property shall contain any status or health properties of the resource." + "description": "The status and health of the Resource and its subordinate or dependent Resources.", + "longDescription": "This property shall contain any status or health properties of the Resource." } }, "required": [ @@ -145,10 +148,10 @@ }, "OemActions": { "additionalProperties": true, - "description": "The available OEM specific actions for this resource.", - "longDescription": "This type shall contain any additional OEM actions for this resource.", + "description": "The available OEM-specific actions for this Resource.", + "longDescription": "This type shall contain the available OEM-specific actions for this Resource.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -166,5 +169,6 @@ } }, "owningEntity": "DMTF", - "title": "#CompositionService.v1_1_0.CompositionService" + "release": "2018.2", + "title": "#CompositionService.v1_1_2.CompositionService" } \ No newline at end of file diff --git a/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/ComputerSystem/ComputerSystem.json b/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/ComputerSystem/ComputerSystem.json index 86ffac21..9c8f952d 100644 --- a/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/ComputerSystem/ComputerSystem.json +++ b/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/ComputerSystem/ComputerSystem.json @@ -1,15 +1,15 @@ { - "$id": "http://redfish.dmtf.org/schemas/v1/ComputerSystem.v1_6_0.json", + "$id": "http://redfish.dmtf.org/schemas/v1/ComputerSystem.v1_8_0.json", "$ref": "#/definitions/ComputerSystem", "$schema": "http://redfish.dmtf.org/schemas/v1/redfish-schema-v1.json", - "copyright": "Copyright 2014-2018 DMTF. For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright", + "copyright": "Copyright 2014-2019 DMTF. For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright", "definitions": { "Actions": { "additionalProperties": false, - "description": "The available actions for this resource.", - "longDescription": "This type shall contain the available actions for this resource.", + "description": "The available actions for this Resource.", + "longDescription": "This type shall contain the available actions for this Resource.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -37,36 +37,36 @@ }, "Oem": { "$ref": "#/definitions/OemActions", - "description": "This property contains the available OEM specific actions for this resource.", - "longDescription": "This property shall contain any additional OEM actions for this resource." + "description": "The available OEM-specific actions for this Resource.", + "longDescription": "This property shall contain the available OEM-specific actions for this Resource." } }, "type": "object" }, "AddResourceBlock": { "additionalProperties": false, - "description": "This action is used to add a Resource Block to a system.", - "longDescription": "This action shall be used to add a Resource Block to a system.", + "description": "This action adds a Resource Block to a system.", + "longDescription": "This action shall add a Resource Block to a system.", "parameters": { "ComputerSystemETag": { "description": "The current ETag of the system.", - "longDescription": "This parameter shall be a the current ETag of the system. If provided by the client, the service shall reject the request by returning HTTP 428 (Precondition Required) if the provided ETag does not match the current ETag of the system.", + "longDescription": "This parameter shall contain the current ETag of the system. If the client-provided ETag does not match the current ETag of the system, the service shall return the HTTP 428 (Precondition Required) status code to reject the request.", "type": "string" }, "ResourceBlock": { "$ref": "http://redfish.dmtf.org/schemas/v1/ResourceBlock.json#/definitions/ResourceBlock", "description": "The Resource Block to add to the system.", - "longDescription": "This parameter shall be a link to the specified Resource Block to add to the system.", + "longDescription": "This parameter shall contain a link to the specified Resource Block to add to the system.", "requiredParameter": true }, "ResourceBlockETag": { "description": "The current ETag of the Resource Block to add to the system.", - "longDescription": "This parameter shall be a the current ETag of the Resource Block to add to the system. If provided by the client, the service shall reject the request by returning HTTP 428 (Precondition Required) if the provided ETag does not match the current ETag of the Resource Block specified by the ResourceBlock parameter.", + "longDescription": "This parameter shall contain the current ETag of the Resource Block to add to the system. If the client-provided ETag does not match the current ETag of the Resource Block that the ResourceBlock parameter specifies, the service shall return the HTTP 428 (Precondition Required) status code to reject the request.", "type": "string" } }, "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -82,7 +82,7 @@ "properties": { "target": { "description": "Link to invoke action", - "format": "uri", + "format": "uri-reference", "type": "string" }, "title": { @@ -95,10 +95,10 @@ }, "Boot": { "additionalProperties": false, - "description": "This object contains the boot information for the current resource.", - "longDescription": "This type shall contain properties which describe boot information for a system.", + "description": "The boot information for this Resource.", + "longDescription": "This type shall contain properties that describe boot information for a system.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -113,7 +113,7 @@ }, "properties": { "AliasBootOrder": { - "description": "Ordered array of boot source aliases representing the persistent Boot Order associated with this computer system.", + "description": "Ordered array of boot source aliases representing the persistent boot order associated with this computer system.", "items": { "anyOf": [ { @@ -124,14 +124,14 @@ } ] }, - "longDescription": "The value of this property shall be an ordered array of boot source aliases (of type BootSource) representing the persistent Boot Order of this computer system.", + "longDescription": "This property shall contain an ordered array of boot source aliases of the BootSource type that represents the persistent boot order of this computer system.", "readonly": false, "type": "array", "versionAdded": "v1_6_0" }, "BootNext": { - "description": "This property is the BootOptionReference of the Boot Option to perform a one time boot from when BootSourceOverrideTarget is UefiBootNext.", - "longDescription": "The value of this property shall be the BootOptionReference of the UEFI Boot Option for one time boot, as defined by the UEFI Specification. The valid values for this property are specified in the values of the BootOrder array. BootSourceOverrideEnabled = Continuous is not supported for UEFI BootNext as this setting is defined in UEFI as a one-time boot only.", + "description": "The BootOptionReference of the Boot Option to perform a one-time boot from when BootSourceOverrideTarget is `UefiBootNext`.", + "longDescription": "This property shall contain the BootOptionReference of the UEFI boot option for one time boot, as defined by the UEFI Specification. The valid values for this property are specified in the values of the BootOrder array. BootSourceOverrideEnabled set to `Continuous` is not supported for UEFI BootNext because this setting is defined in UEFI as a one-time boot only.", "readonly": false, "type": [ "string", @@ -141,20 +141,20 @@ }, "BootOptions": { "$ref": "http://redfish.dmtf.org/schemas/v1/BootOptionCollection.json#/definitions/BootOptionCollection", - "description": "A reference to the collection of the UEFI Boot Options associated with this Computer System.", - "longDescription": "The value of this property shall be a link to a collection of type BootOptionCollection.", + "description": "The link to the collection of the UEFI boot options associated with this computer system.", + "longDescription": "This property shall contain a link to a Resource Collection of type BootOptionCollection.", "readonly": true, "versionAdded": "v1_5_0" }, "BootOrder": { - "description": "Ordered array of BootOptionReference strings representing the persistent Boot Order associated with this computer system.", + "description": "An array of BootOptionReference strings that represent the persistent boot order for with this computer system.", "items": { "type": [ "string", "null" ] }, - "longDescription": "The value of this property shall be an ordered array of BootOptionReference strings representing the persistent Boot Order of this computer system. For UEFI systems, this is the UEFI BootOrder as defined by the UEFI Specification.", + "longDescription": "This property shall contain an array of BootOptionReference strings that represent the persistent boot order for this computer system. For UEFI systems, this is the UEFI Specification-defined UEFI BootOrder.", "readonly": false, "type": "array", "versionAdded": "v1_5_0" @@ -168,8 +168,8 @@ "type": "null" } ], - "description": "Choice of which boot order property to use when specifying the boot order.", - "longDescription": "The value of this property shall indicate which boot order property the system uses when specifying the persistent boot order.", + "description": "The name of the boot order property that the system uses for the persistent boot order.", + "longDescription": "This property shall indicate which boot order property the system uses for the persistent boot order.", "readonly": false, "versionAdded": "v1_6_0" }, @@ -182,8 +182,8 @@ "type": "null" } ], - "description": "Describes the state of the Boot Source Override feature.", - "longDescription": "The value of this property shall be Once if this is a one time boot override and Continuous if this selection should remain active until cancelled. If the property value is set to Once, the value will be reset back to Disabled after the BootSourceOverrideTarget actions have been completed. Changes to this property do not alter the BIOS persistent boot order configuration.", + "description": "The state of the boot source override feature.", + "longDescription": "This property shall contain `Once` for a one-time boot override, and `Continuous` for a remain-active-until-cancelled override. The `Continuous` value is not supported for this property for UEFI boot source override because UEFI supports one-time boot only. If set to `Once`, the value is reset to `Disabled` after the BootSourceOverrideTarget actions have completed successfully. Changes to this property do not alter the BIOS persistent boot order configuration.", "readonly": false }, "BootSourceOverrideMode": { @@ -195,8 +195,8 @@ "type": "null" } ], - "description": "The BIOS Boot Mode (either Legacy or UEFI) to be used when BootSourceOverrideTarget boot source is booted from.", - "longDescription": "The value of this property shall be Legacy for non-UEFI BIOS boot or UEFI for UEFI boot from boot source specified in BootSourceOverrideTarget property.", + "description": "The BIOS boot mode to use when the system boots from the BootSourceOverrideTarget boot source.", + "longDescription": "This property shall contain the BIOS boot mode to use when the system boots from the BootSourceOverrideTarget boot source.", "readonly": false, "versionAdded": "v1_1_0" }, @@ -209,13 +209,20 @@ "type": "null" } ], - "description": "The current boot source to be used at next boot instead of the normal boot device, if BootSourceOverrideEnabled is true.", - "longDescription": "The value of this property shall contain the source to boot the system from, overriding the normal boot order. The valid values for this property are specified through the Redfish.AllowableValues annotation. Pxe indicates to PXE boot from the primary NIC; Floppy, Cd, Usb, Hdd indicates to boot from their devices respectively. BiosSetup indicates to boot into the native BIOS screen setup. Utilities and Diags indicate to boot from the local utilities or diags partitions. UefiTarget indicates to boot from the UEFI device path found in UefiTargetBootSourceOverride. UefiBootNext indicates to boot from the UEFI BootOptionReference found in BootNext. Changes to this property do not alter the BIOS persistent boot order configuration.", + "description": "The current boot source to use at the next boot instead of the normal boot device, if BootSourceOverrideEnabled is `true`.", + "longDescription": "This property shall contain the source to boot the system from, overriding the normal boot order. The Redfish.AllowableValues annotation specifies the valid values for this property. `Pxe` indicates to PXE boot from the primary NIC; `Floppy`, `Cd`, `Usb`, and `Hdd` indicate to boot from their devices respectively. `BiosSetup` indicates to boot into the native BIOS screen setup. `Utilities` and `Diags` indicate to boot from the local utilities or diags partitions. `UefiTarget` indicates to boot from the UEFI device path found in UefiTargetBootSourceOverride. `UefiBootNext` indicates to boot from the UEFI BootOptionReference found in BootNext. Changes to this property do not alter the BIOS persistent boot order configuration.", "readonly": false }, + "Certificates": { + "$ref": "http://redfish.dmtf.org/schemas/v1/CertificateCollection.json#/definitions/CertificateCollection", + "description": "The link to a collection of certificates used for booting through HTTPS by this computer system.", + "longDescription": "This property shall contain a link to a Resource Collection of type CertificateCollection.", + "readonly": true, + "versionAdded": "v1_7_0" + }, "UefiTargetBootSourceOverride": { - "description": "This property is the UEFI Device Path of the device to boot from when BootSourceOverrideTarget is UefiTarget.", - "longDescription": "The value of this property shall be the UEFI device path of the override boot target. The valid values for this property are specified through the Redfish.AllowableValues annotation. BootSourceOverrideEnabled = Continuous is not supported for UEFI Boot Source Override as this setting is defined in UEFI as a one time boot only. Changes to this property do not alter the BIOS persistent boot order configuration.", + "description": "The UEFI device path of the device from which to boot when BootSourceOverrideTarget is `UefiTarget`.", + "longDescription": "This property shall contain the UEFI device path of the override boot target. The Redfish.AllowableValues annotation specifies the values for this property. The `Continuous` value is not supported for the BootSourceOverrideEnabled property for UEFI boot source override because UEFI supports one-time boot only. Changes to this property do not alter the BIOS persistent boot order configuration.", "readonly": false, "type": [ "string", @@ -232,8 +239,8 @@ "AliasBootOrder" ], "enumDescriptions": { - "AliasBootOrder": "The system uses the AliasBootOrder property for specifying persistent boot order.", - "BootOrder": "The system uses the BootOrder property for specifying persistent boot order." + "AliasBootOrder": "The system uses the AliasBootOrder property to specify the persistent boot order.", + "BootOrder": "The system uses the BootOrder property to specify the persistent boot order." }, "type": "string" }, @@ -244,9 +251,9 @@ "Continuous" ], "enumDescriptions": { - "Continuous": "The system will boot to the target specified in the BootSourceOverrideTarget until this property is set to Disabled.", - "Disabled": "The system will boot normally.", - "Once": "On its next boot cycle, the system will boot (one time) to the Boot Source Override Target. The value of BootSourceOverrideEnabled is then reset back to Disabled." + "Continuous": "The system boots to the target specified in the BootSourceOverrideTarget property until this property is `Disabled`.", + "Disabled": "The system boots normally.", + "Once": "On its next boot cycle, the system boots one time to the boot source override target. Then, the BootSourceOverrideEnabled value is reset to `Disabled`." }, "type": "string" }, @@ -256,17 +263,17 @@ "UEFI" ], "enumDescriptions": { - "Legacy": "The system will boot in non-UEFI boot mode to the Boot Source Override Target.", - "UEFI": "The system will boot in UEFI boot mode to the Boot Source Override Target." + "Legacy": "The system boots in non-UEFI boot mode to the boot source override target.", + "UEFI": "The system boots in UEFI boot mode to the boot source override target." }, "type": "string" }, "ComputerSystem": { "additionalProperties": false, - "description": "This schema defines a computer system and its respective properties. A computer system represents a machine (physical or virtual) and the local resources such as memory, cpu and other devices that can be accessed from that machine.", - "longDescription": "This resource shall be used to represent resources that represent a computing system in the Redfish specification.", + "description": "The ComputerSystem schema represents a computer or system instance and the software-visible Resources, or items within the data plane, such as memory, CPU, and other devices that it can access. Details of those Resources or subsystems are also linked through this Resource.", + "longDescription": "This Resource shall represent a computing system in the Redfish Specification.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -281,25 +288,25 @@ }, "properties": { "@odata.context": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/context" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/context" }, "@odata.etag": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/etag" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/etag" }, "@odata.id": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/id" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/id" }, "@odata.type": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/type" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/type" }, "Actions": { "$ref": "#/definitions/Actions", - "description": "The available actions for this resource.", - "longDescription": "The Actions property shall contain the available actions for this resource." + "description": "The available actions for this Resource.", + "longDescription": "This property shall contain the available actions for this Resource." }, "AssetTag": { - "description": "The user definable tag that can be used to track this computer system for inventory or other client purposes.", - "longDescription": "The value of this property shall contain the value of the asset tag of the system.", + "description": "The user-definable tag that can track this computer system for inventory or other client purposes.", + "longDescription": "This property shall contain the system asset tag value.", "readonly": false, "type": [ "string", @@ -308,14 +315,14 @@ }, "Bios": { "$ref": "http://redfish.dmtf.org/schemas/v1/Bios.json#/definitions/Bios", - "description": "A reference to the BIOS settings associated with this system.", - "longDescription": "The value of this property shall be a link to a resource of type Bios that lists the BIOS settings for this system.", + "description": "The link to the BIOS settings associated with this system.", + "longDescription": "This property shall contain a link to a Resource of type Bios that lists the BIOS settings for this system.", "readonly": true, "versionAdded": "v1_1_0" }, "BiosVersion": { "description": "The version of the system BIOS or primary system firmware.", - "longDescription": "The value of this property shall be the version string of the currently installed and running BIOS (for x86 systems). For other systems, the value may contain a version string representing the primary system firmware.", + "longDescription": "This property shall contain the version string of the currently installed and running BIOS for x86 systems. For other systems, the property may contain a version string that represents the primary system firmware.", "readonly": true, "type": [ "string", @@ -324,8 +331,8 @@ }, "Boot": { "$ref": "#/definitions/Boot", - "description": "Information about the boot settings for this system.", - "longDescription": "This object shall contain properties which describe boot information for the current resource." + "description": "The boot settings for this system.", + "longDescription": "This property shall contain the boot settings for this system." }, "Description": { "anyOf": [ @@ -340,13 +347,13 @@ }, "EthernetInterfaces": { "$ref": "http://redfish.dmtf.org/schemas/v1/EthernetInterfaceCollection.json#/definitions/EthernetInterfaceCollection", - "description": "A reference to the collection of Ethernet interfaces associated with this system.", - "longDescription": "The value of this property shall be a link to a collection of type EthernetInterfaceCollection.", + "description": "The link to the collection of Ethernet interfaces associated with this system.", + "longDescription": "This property shall contain a link to a Resource Collection of type EthernetInterfaceCollection.", "readonly": true }, "HostName": { - "description": "The DNS Host Name, without any domain information.", - "longDescription": "The value of this property shall be the host name for this system, as reported by the operating system or hypervisor. This value is typically provided to the Manager by a service running in the host operating system.", + "description": "The DNS host name, without any domain information.", + "longDescription": "This property shall contain the host name for this system, as reported by the operating system or hypervisor. A service running in the host operating system typically reports this value to the manager.", "readonly": false, "type": [ "string", @@ -355,22 +362,22 @@ }, "HostWatchdogTimer": { "$ref": "#/definitions/WatchdogTimer", - "description": "This object describes the Host Watchdog Timer functionality for this system.", - "longDescription": "This object shall contain properties which describe the host watchdog timer functionality for this ComputerSystem.", + "description": "The host watchdog timer functionality for this system.", + "longDescription": "This object shall contain properties that describe the host watchdog timer functionality for this ComputerSystem.", "versionAdded": "v1_5_0" }, "HostedServices": { "$ref": "#/definitions/HostedServices", "description": "The services that this computer system supports.", - "longDescription": "The values of this collection shall describe services supported by this computer system.", + "longDescription": "This property shall describe services that this computer system supports.", "versionAdded": "v1_2_0" }, "HostingRoles": { - "description": "The hosing roles that this computer system supports.", + "description": "The hosting roles that this computer system supports.", "items": { "$ref": "#/definitions/HostingRole" }, - "longDescription": "The values of this collection shall be the hosting roles supported by this computer system.", + "longDescription": "This property shall contain the hosting roles that this computer system supports.", "readonly": true, "type": "array", "versionAdded": "v1_2_0" @@ -388,24 +395,24 @@ "type": "null" } ], - "description": "The state of the indicator LED, used to identify the system.", - "longDescription": "The value of this property shall contain the indicator light state for the indicator light associated with this system.", + "description": "The state of the indicator LED, which identifies the system.", + "longDescription": "This property shall contain the state of the indicator light, which identifies this system.", "readonly": false }, "Links": { "$ref": "#/definitions/Links", - "description": "Contains references to other resources that are related to this resource.", - "longDescription": "The Links property, as described by the Redfish Specification, shall contain references to resources that are related to, but not contained by (subordinate to), this resource." + "description": "The links to other Resources that are related to this Resource.", + "longDescription": "The Redfish Specification-described Links Property shall contain links to Resources related to but not subordinate to this Resource." }, "LogServices": { "$ref": "http://redfish.dmtf.org/schemas/v1/LogServiceCollection.json#/definitions/LogServiceCollection", - "description": "A reference to the collection of Log Services associated with this system.", - "longDescription": "The value of this property shall be a link to a collection of type LogServiceCollection.", + "description": "The link to the collection of Log Services associated with this system.", + "longDescription": "This property shall contain a link to a Resource Collection of type LogServiceCollection.", "readonly": true }, "Manufacturer": { "description": "The manufacturer or OEM of this system.", - "longDescription": "The value of this property shall contain a value that represents the manufacturer of the system.", + "longDescription": "This property shall contain a value that represents the manufacturer of the system.", "readonly": true, "type": [ "string", @@ -414,33 +421,26 @@ }, "Memory": { "$ref": "http://redfish.dmtf.org/schemas/v1/MemoryCollection.json#/definitions/MemoryCollection", - "description": "A reference to the collection of Memory associated with this system.", - "longDescription": "The value of this property shall be a link to a collection of type MemoryCollection.", + "description": "The link to the collection of memory associated with this system.", + "longDescription": "This property shall contain a link to a Resource Collection of type MemoryCollection.", "readonly": true, "versionAdded": "v1_1_0" }, "MemoryDomains": { - "anyOf": [ - { - "$ref": "http://redfish.dmtf.org/schemas/v1/MemoryDomainCollection.json#/definitions/MemoryDomainCollection" - }, - { - "type": "null" - } - ], - "description": "A reference to the collection of Memory Domains associated with this system.", - "longDescription": "The value of this property shall be a link to a collection of type MemoryDomainCollection.", + "$ref": "http://redfish.dmtf.org/schemas/v1/MemoryDomainCollection.json#/definitions/MemoryDomainCollection", + "description": "The link to the collection of memory domains associated with this system.", + "longDescription": "This property shall contain a link to a Resource Collection of type MemoryDomainCollection.", "readonly": true, "versionAdded": "v1_2_0" }, "MemorySummary": { "$ref": "#/definitions/MemorySummary", - "description": "This object describes the central memory of the system in general detail.", - "longDescription": "This object shall contain properties which describe the central memory for the current resource." + "description": "The central memory of the system in general detail.", + "longDescription": "This property shall describe the central memory for this Resource." }, "Model": { "description": "The product name for this system, without the manufacturer name.", - "longDescription": "The value of this property shall contain the information about how the manufacturer references this system. This is typically the product name, without the manufacturer name.", + "longDescription": "This property shall describe how the manufacturer refers to this system. Typically, this value is the product name for this system without the manufacturer name.", "readonly": true, "type": [ "string", @@ -453,45 +453,45 @@ }, "NetworkInterfaces": { "$ref": "http://redfish.dmtf.org/schemas/v1/NetworkInterfaceCollection.json#/definitions/NetworkInterfaceCollection", - "description": "A reference to the collection of Network Interfaces associated with this system.", - "longDescription": "The value of this property shall be a link to a collection of type NetworkInterfaceCollection.", + "description": "The link to the collection of Network Interfaces associated with this system.", + "longDescription": "This property shall contain a link to a Resource Collection of type NetworkInterfaceCollection.", "readonly": true, "versionAdded": "v1_3_0" }, "Oem": { "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem", - "description": "This is the manufacturer/provider specific extension moniker used to divide the Oem object into sections.", - "longDescription": "The value of this string shall be of the format for the reserved word *Oem*." + "description": "The OEM extension property.", + "longDescription": "This property shall contain the OEM extensions. All values for properties that this object contains shall conform to the Redfish Specification-described requirements." }, "PCIeDevices": { - "description": "A reference to a collection of PCIe Devices used by this computer system.", + "description": "The link to a collection of PCIe devices that this computer system uses.", "items": { "$ref": "http://redfish.dmtf.org/schemas/v1/PCIeDevice.json#/definitions/PCIeDevice" }, - "longDescription": "The value of this property shall be an array of references of type PCIeDevice.", + "longDescription": "This property shall contain an array of links of the PCIeDevice type.", "readonly": true, "type": "array", "versionAdded": "v1_2_0" }, "PCIeDevices@odata.count": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/count" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/count" }, "PCIeFunctions": { - "description": "A reference to a collection of PCIe Functions used by this computer system.", + "description": "The link to a collection of PCIe functions that this computer system uses.", "items": { "$ref": "http://redfish.dmtf.org/schemas/v1/PCIeFunction.json#/definitions/PCIeFunction" }, - "longDescription": "The value of this property shall be an array of references of type PCIeFunction.", + "longDescription": "This property shall contain an array of links of the PCIeFunction type.", "readonly": true, "type": "array", "versionAdded": "v1_2_0" }, "PCIeFunctions@odata.count": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/count" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/count" }, "PartNumber": { "description": "The part number for this system.", - "longDescription": "The value of this property shall contain the part number for the system as defined by the manufacturer.", + "longDescription": "This property shall contain the manufacturer-defined part number for the system.", "readonly": true, "type": [ "string", @@ -501,7 +501,7 @@ "PowerRestorePolicy": { "$ref": "#/definitions/PowerRestorePolicyTypes", "description": "The desired power state of the system when power is restored after a power loss.", - "longDescription": "This property shall indicate the desired PowerState of the system when power is applied to the system. A value of 'LastState' shall return the system to the PowerState it was in when power was lost.", + "longDescription": "This property shall indicate the desired PowerState of the system when power is applied to the system. The `LastState` value shall return the system to the PowerState it was in when power was lost.", "readonly": false, "versionAdded": "v1_6_0" }, @@ -514,38 +514,38 @@ "type": "null" } ], - "description": "This is the current power state of the system.", - "longDescription": "The value of this property shall contain the power state of the system.", + "description": "The current power state of the system.", + "longDescription": "This property shall contain the power state of the system.", "readonly": true }, "ProcessorSummary": { "$ref": "#/definitions/ProcessorSummary", - "description": "This object describes the central processors of the system in general detail.", - "longDescription": "This object shall contain properties which describe the central processors for the current resource." + "description": "The central processors of the system in general detail.", + "longDescription": "This property shall describe the central processors for this Resource." }, "Processors": { "$ref": "http://redfish.dmtf.org/schemas/v1/ProcessorCollection.json#/definitions/ProcessorCollection", - "description": "A reference to the collection of Processors associated with this system.", - "longDescription": "The value of this property shall be a link to a collection of type ProcessorCollection.", + "description": "The link to the collection of processors associated with this system.", + "longDescription": "This property shall contain a link to a Resource Collection of type ProcessorCollection.", "readonly": true }, "Redundancy": { "autoExpand": true, - "description": "A reference to a collection of Redundancy entities that each name a set of computer systems that provide redundancy for this ComputerSystem.", + "description": "The link to a collection of redundancy entities. Each entity specifies a kind and level of redundancy and a collection, or redundancy set, of other computer systems that provide the specified redundancy to this computer system.", "items": { "$ref": "http://redfish.dmtf.org/schemas/v1/Redundancy.json#/definitions/Redundancy" }, - "longDescription": "If present, each entry shall reference a redundancy entity that specifies a kind and level of redundancy and a collection (RedundancySet) of other ComputerSystems that provide the specified redundancy to this ComputerSystem.", + "longDescription": "This property shall contain a set of redundancy entities. Each entity specifies a kind and level of redundancy and a collection, or redundancy set, of other computer systems that provide the specified redundancy to this computer system.", "readonly": true, "type": "array", "versionAdded": "v1_5_0" }, "Redundancy@odata.count": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/count" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/count" }, "SKU": { "description": "The manufacturer SKU for this system.", - "longDescription": "The value of this property shall contain the Stock Keeping Unit (SKU) for the system.", + "longDescription": "This property shall contain the SKU for the system.", "readonly": true, "type": [ "string", @@ -554,14 +554,14 @@ }, "SecureBoot": { "$ref": "http://redfish.dmtf.org/schemas/v1/SecureBoot.json#/definitions/SecureBoot", - "description": "A reference to the UEFI SecureBoot resource associated with this system.", - "longDescription": "The value of this property shall be a link to a resource of type SecureBoot.", + "description": "The link to the UEFI Secure Boot associated with this system.", + "longDescription": "This property shall contain a link to a Resource of type SecureBoot.", "readonly": true, "versionAdded": "v1_1_0" }, "SerialNumber": { "description": "The serial number for this system.", - "longDescription": "The value of this property shall contain the serial number for the system.", + "longDescription": "This property shall contain the serial number for the system.", "readonly": true, "type": [ "string", @@ -570,25 +570,25 @@ }, "SimpleStorage": { "$ref": "http://redfish.dmtf.org/schemas/v1/SimpleStorageCollection.json#/definitions/SimpleStorageCollection", - "description": "A reference to the collection of storage devices associated with this system.", - "longDescription": "The value of this property shall be a link to a collection of type SimpleStorageCollection.", + "description": "The link to the collection of storage devices associated with this system.", + "longDescription": "This property shall contain a link to a Resource Collection of type SimpleStorageCollection.", "readonly": true }, "Status": { "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Status", - "description": "This property describes the status and health of the resource and its children.", - "longDescription": "This property shall contain any status or health properties of the resource." + "description": "The status and health of the Resource and its subordinate or dependent Resources.", + "longDescription": "This property shall contain any status or health properties of the Resource." }, "Storage": { "$ref": "http://redfish.dmtf.org/schemas/v1/StorageCollection.json#/definitions/StorageCollection", - "description": "A reference to the collection of storage devices associated with this system.", - "longDescription": "The value of this property shall be a link to a collection of type StorageCollection.", + "description": "The link to the collection of storage devices associated with this system.", + "longDescription": "This property shall contain a link to a Resource Collection of type StorageCollection.", "readonly": true, "versionAdded": "v1_1_0" }, "SubModel": { "description": "The sub-model for this system.", - "longDescription": "The value of this property shall contain the information about the sub-model (or config) of the system. This shall not include the model/product name or the manufacturer name.", + "longDescription": "This property shall contain the information about the sub-model (or config) of the system. This shall not include the model/product name or the manufacturer name.", "readonly": true, "type": [ "string", @@ -598,16 +598,16 @@ }, "SystemType": { "$ref": "#/definitions/SystemType", - "description": "The type of computer system represented by this resource.", - "longDescription": "An enumeration that indicates the kind of system that this resource represents.", + "description": "The type of computer system that this Resource represents.", + "longDescription": "An enumeration that indicates the kind of system that this Resource represents.", "readonly": true }, "TrustedModules": { - "description": "This object describes the array of Trusted Modules in the system.", + "description": "An array of trusted modules in the system.", "items": { "$ref": "#/definitions/TrustedModules" }, - "longDescription": "This object shall contain an array of objects with properties which describe the truted modules for the current resource.", + "longDescription": "This object shall contain an array of objects with properties that describe the trusted modules for this Resource.", "type": "array", "versionAdded": "v1_1_0" }, @@ -620,8 +620,8 @@ "type": "null" } ], - "description": "The universal unique identifier (UUID) for this system.", - "longDescription": "The value of this property shall be used to contain a universal unique identifier number for the system. RFC4122 describes methods that can be used to create the value. The value should be considered to be opaque. Client software should only treat the overall value as a universally unique identifier and should not interpret any sub-fields within the UUID. If the system supports SMBIOS, the value of the property should be formed by following the SMBIOS 2.6+ recommendation for converting the SMBIOS 16-byte UUID structure into the redfish canonical xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx string format so that the property value matches the byte order presented by current OS APIs such as WMI and dmidecode.", + "description": "The UUID for this system.", + "longDescription": "This property shall contain the UUID for the system. RFC4122 describes methods to create this value. The value should be considered to be opaque. Client software should only treat the overall value as a UUID and should not interpret any sub-fields within the UUID. If the system supports SMBIOS, the property value should follow the SMBIOS 2.6 and later recommendation for converting the SMBIOS 16-byte UUID structure into the Redfish canonical `xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx` string format, so that the property value matches the byte order presented by current OS APIs, such as WMI and dmidecode.", "readonly": true } }, @@ -635,10 +635,10 @@ }, "HostedServices": { "additionalProperties": false, - "description": "This object describes services that may be running or installed on the system.", - "longDescription": "The values of this collection shall describe services supported by a computer system.", + "description": "The services that may be running or installed on the system.", + "longDescription": "This type shall describe services that a computer system supports.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -654,14 +654,14 @@ "properties": { "Oem": { "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem", - "description": "Oem extension object.", - "longDescription": "This object represents the Oem property. All values for resources described by this schema shall comply to the requirements as described in the Redfish specification.", + "description": "The OEM extension property.", + "longDescription": "This property shall contain the OEM extensions. All values for properties contained in this object shall conform to the Redfish Specification-described requirements.", "versionAdded": "v1_2_0" }, "StorageServices": { "$ref": "http://redfish.dmtf.org/schemas/swordfish/v1/HostedStorageServices.json#/definitions/HostedStorageServices", - "description": "A reference to a collection of storage services supported by this computer system.", - "longDescription": "The value of this property shall be a link to a collection of type HostedStorageServices.", + "description": "The link to a collection of storage services that this computer system supports.", + "longDescription": "This property shall contain a link to a Resource Collection of type HostedStorageServices.", "readonly": true, "versionAdded": "v1_2_0" } @@ -690,19 +690,19 @@ "Off" ], "enumDeprecated": { - "Unknown": "This value has been Deprecated in favor of returning null if the state is unknown." + "Unknown": "This value has been deprecated in favor of returning null if the state is unknown." }, "enumDescriptions": { - "Blinking": "The Indicator LED is blinking.", - "Lit": "The Indicator LED is lit.", - "Off": "The Indicator LED is off.", - "Unknown": "The state of the Indicator LED cannot be determined." + "Blinking": "The indicator LED is blinking.", + "Lit": "The indicator LED is lit.", + "Off": "The indicator LED is off.", + "Unknown": "The state of the indicator LED cannot be determined." }, "enumLongDescriptions": { - "Blinking": "This value shall represent the Indicator LED is in a blinking state where the LED is being turned on and off in repetition. If this value is not supported by the service, the service shall reject PATCH or PUT requests containing this value by returning HTTP 400 (Bad Request).", - "Lit": "This value shall represent the Indicator LED is in a solid on state. If this value is not supported by the service, the service shall reject PATCH or PUT requests containing this value by returning HTTP 400 (Bad Request).", - "Off": "This value shall represent the Indicator LED is in a solid off state. If this value is not supported by the service, the service shall reject PATCH or PUT requests containing this value by returning HTTP 400 (Bad Request).", - "Unknown": "This value shall represent the Indicator LED is in an unknown state. The service shall reject PATCH or PUT requests containing this value by returning HTTP 400 (Bad Request)." + "Blinking": "This value shall represent that the indicator LED is in a blinking state where the LED is being turned on and off in repetition. If the service does not support this value, it shall reject PATCH or PUT requests containing this value by returning the HTTP 400 (Bad Request) status code.", + "Lit": "This value shall represent that the indicator LED is in a solid on state. If the service does not support this value, it shall reject PATCH or PUT requests containing this value by returning the HTTP 400 (Bad Request) status code.", + "Off": "This value shall represent that the indicator LED is in a solid off state. If the service does not support this value, it shall reject PATCH or PUT requests containing this value by returning the HTTP 400 (Bad Request) status code.", + "Unknown": "This value shall represent that the indicator LED is in an unknown state. The Service shall reject PATCH or PUT requests containing this value by returning the HTTP 400 (Bad Request) status code." }, "enumVersionDeprecated": { "Unknown": "v1_1_0" @@ -731,19 +731,19 @@ "OemMethod" ], "enumDescriptions": { - "BiosSetting": "The TrustedModule supports switching InterfaceType via platform software, such as a BIOS configuration Attribute.", - "FirmwareUpdate": "The TrustedModule supports switching InterfaceType via a firmware update.", + "BiosSetting": "The TrustedModule supports switching InterfaceType through platform software, such as a BIOS configuration attribute.", + "FirmwareUpdate": "The TrustedModule supports switching InterfaceType through a firmware update.", "None": "The TrustedModule does not support switching the InterfaceType.", - "OemMethod": "The TrustedModule supports switching InterfaceType via an OEM proprietary mechanism." + "OemMethod": "The TrustedModule supports switching InterfaceType through an OEM proprietary mechanism." }, "type": "string" }, "Links": { "additionalProperties": false, - "description": "Contains references to other resources that are related to this resource.", - "longDescription": "This type, as described by the Redfish Specification, shall contain references to resources that are related to, but not contained by (subordinate to), this resource.", + "description": "The links to other Resources that are related to this Resource.", + "longDescription": "This Redfish Specification-described type shall contain links to Resources that are related to but are not contained by or subordinate to this Resource.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -758,109 +758,109 @@ }, "properties": { "Chassis": { - "description": "An array of references to the chassis in which this system is contained.", + "description": "An array of links to the chassis that contains this system.", "items": { "$ref": "http://redfish.dmtf.org/schemas/v1/Chassis.json#/definitions/Chassis" }, - "longDescription": "The value of this property shall reference a resource of type Chassis that represents the physical container associated with this resource.", + "longDescription": "This property shall link to a Resource of type Chassis that represents the physical container associated with this Resource.", "readonly": true, "type": "array" }, "Chassis@odata.count": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/count" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/count" }, "ConsumingComputerSystems": { - "description": "An array of references to ComputerSystems that are realized, in whole or in part, from this ComputerSystem.", + "description": "An array of links to ComputerSystems that are realized, in whole or in part, from this ComputerSystem.", "items": { "$ref": "http://redfish.dmtf.org/schemas/v1/ComputerSystem.json#/definitions/ComputerSystem" }, - "longDescription": "The value shall be an array of references to ComputerSystems that are realized, in whole or in part, from this ComputerSystem.", + "longDescription": "The value shall be an array of links to ComputerSystems that are realized, in whole or in part, from this ComputerSystem.", "readonly": true, "type": "array", "versionAdded": "v1_5_0" }, "ConsumingComputerSystems@odata.count": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/count" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/count" }, "CooledBy": { - "description": "An array of ID[s] of resources that cool this computer system. Normally the ID will be a chassis or a specific set of fans.", + "description": "An array of one or more IDs for Resources that cool this computer system. Normally, the ID is for either a chassis or a specific set of fans.", "items": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/idRef" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/idRef" }, - "longDescription": "The value of this property shall be an array of IDs containing pointers consistent with JSON pointer syntax to the resource that powers this computer system.", + "longDescription": "This property shall contain an array of IDs that contain pointers consistent with JSON Pointer syntax to the Resource that powers this computer system.", "readonly": true, "type": "array" }, "CooledBy@odata.count": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/count" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/count" }, "Endpoints": { - "description": "An array of references to the endpoints that connect to this system.", + "description": "An array of links to the endpoints that connect to this system.", "items": { "$ref": "http://redfish.dmtf.org/schemas/v1/Endpoint.json#/definitions/Endpoint" }, - "longDescription": "The value of this property shall be a reference to the resources that this system is associated with and shall reference a resource of type Endpoint.", + "longDescription": "This property shall contain a link to the Resources of the Endpoint type with which this system is associated.", "readonly": true, "type": "array", "versionAdded": "v1_2_0" }, "Endpoints@odata.count": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/count" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/count" }, "ManagedBy": { - "description": "An array of references to the Managers responsible for this system.", + "description": "An array of links to the managers responsible for this system.", "items": { "$ref": "http://redfish.dmtf.org/schemas/v1/Manager.json#/definitions/Manager" }, - "longDescription": "The value of this property shall reference a resource of type manager that represents the resource with management responsibility for this resource.", + "longDescription": "This property shall link to a Resource of type Manager that represents the Resource with management responsibility for this Resource.", "readonly": true, "type": "array" }, "ManagedBy@odata.count": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/count" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/count" }, "Oem": { "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem", - "description": "Oem extension object.", - "longDescription": "This object represents the Oem property. All values for resources described by this schema shall comply to the requirements as described in the Redfish specification." + "description": "The OEM extension property.", + "longDescription": "This property shall contain the OEM extensions. All values for properties contained in this object shall conform to the Redfish Specification-described requirements." }, "PoweredBy": { - "description": "An array of ID[s] of resources that power this computer system. Normally the ID will be a chassis or a specific set of Power Supplies.", + "description": "An array of one or more IDs for Resources that power this computer system. Normally, the ID is for either a chassis or a specific set of power supplies.", "items": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/idRef" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/idRef" }, - "longDescription": "The value of this property shall be an array of IDs containing pointers consistent with JSON pointer syntax to the resource that powers this computer system.", + "longDescription": "This property shall contain an array of IDs that contain pointers consistent with JSON Pointer syntax to the Resource that powers this computer system.", "readonly": true, "type": "array" }, "PoweredBy@odata.count": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/count" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/count" }, "ResourceBlocks": { - "description": "An array of references to the Resource Blocks that are used in this Computer System.", + "description": "An array of links to the Resource Blocks that are used in this computer system.", "items": { "$ref": "http://redfish.dmtf.org/schemas/v1/ResourceBlock.json#/definitions/ResourceBlock" }, - "longDescription": "The value of this property shall be an array of references of type ResourceBlock that show the Resource Blocks that are used in this Computer System.", + "longDescription": "This property shall contain an array of links of the ResourceBlock type that show the Resource Blocks that are used in this computer system.", "readonly": false, "type": "array", "versionAdded": "v1_4_0" }, "ResourceBlocks@odata.count": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/count" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/count" }, "SupplyingComputerSystems": { - "description": "An array of references to ComputerSystems that contribute, in whole or in part, to the implementation of this ComputerSystem.", + "description": "An array of links to ComputerSystems that contribute, in whole or in part, to the implementation of this ComputerSystem.", "items": { "$ref": "http://redfish.dmtf.org/schemas/v1/ComputerSystem.json#/definitions/ComputerSystem" }, - "longDescription": "The value shall be an array of references to ComputerSystems that contribute, in whole or in part, to the implementation of this ComputerSystem.", + "longDescription": "The value shall be an array of links to ComputerSystems that contribute, in whole or in part, to the implementation of this ComputerSystem.", "readonly": true, "type": "array", "versionAdded": "v1_5_0" }, "SupplyingComputerSystems@odata.count": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/count" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/count" } }, "type": "object" @@ -876,16 +876,16 @@ "DIMM": "The system supports DIMM mirroring at the DIMM level. Individual DIMMs can be mirrored.", "Hybrid": "The system supports a hybrid mirroring at the system and DIMM levels. Individual DIMMs can be mirrored.", "None": "The system does not support DIMM mirroring.", - "System": "The system supports DIMM mirroring at the System level. Individual DIMMs are not paired for mirroring in this mode." + "System": "The system supports DIMM mirroring at the system level. Individual DIMMs are not paired for mirroring in this mode." }, "type": "string" }, "MemorySummary": { "additionalProperties": false, - "description": "This object describes the memory of the system in general detail.", - "longDescription": "This type shall contain properties which describe the central memory for a system.", + "description": "The memory of the system in general detail.", + "longDescription": "This type shall contain properties that describe the central memory for a system.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -908,15 +908,22 @@ "type": "null" } ], - "description": "The ability and type of memory mirroring supported by this system.", - "longDescription": "This property shall contain the ability and type of memory mirring supported by this system.", + "description": "The ability and type of memory mirroring that this computer system supports.", + "longDescription": "This property shall contain the ability and type of memory mirring that this computer system supports.", "readonly": true, "versionAdded": "v1_1_0" }, + "Metrics": { + "$ref": "http://redfish.dmtf.org/schemas/v1/MemoryMetrics.json#/definitions/MemoryMetrics", + "description": "The link to the metrics associated with all memory in this system.", + "longDescription": "This property shall contain a link to the metrics associated with all memory in this system.", + "readonly": true, + "versionAdded": "v1_8_0" + }, "Status": { "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Status", - "description": "This property describes the status and health of the resource and its children.", - "longDescription": "This property shall contain any status or health properties of the resource." + "description": "The status and health of the Resource and its subordinate or dependent Resources.", + "longDescription": "This property shall contain any status or health properties of the Resource." }, "TotalSystemMemoryGiB": { "description": "The total configured operating system-accessible memory (RAM), measured in GiB.", @@ -946,10 +953,10 @@ }, "OemActions": { "additionalProperties": true, - "description": "The available OEM specific actions for this resource.", - "longDescription": "This type shall contain any additional OEM actions for this resource.", + "description": "The available OEM-specific actions for this Resource.", + "longDescription": "This type shall contain the available OEM-specific actions for this Resource.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -973,9 +980,9 @@ "LastState" ], "enumDescriptions": { - "AlwaysOff": "The system will always remain powered off when power is applied.", - "AlwaysOn": "The system will always power on when power is applied.", - "LastState": "The system will return to its last power state (on or off) when power is applied." + "AlwaysOff": "The system always remains powered off when power is applied.", + "AlwaysOn": "The system always powers on when power is applied.", + "LastState": "The system returns to its last on or off power state when power is applied." }, "type": "string" }, @@ -989,17 +996,17 @@ "enumDescriptions": { "Off": "The system is powered off, although some components may continue to have AUX power such as management controller.", "On": "The system is powered on.", - "PoweringOff": "A temporary state between On and Off. The power off action can take time while the OS is in the shutdown process.", - "PoweringOn": "A temporary state between Off and On. This temporary state can be very short." + "PoweringOff": "A temporary state between on and off. The power off action can take time while the OS is in the shutdown process.", + "PoweringOn": "A temporary state between off and on. This temporary state can be very short." }, "type": "string" }, "ProcessorSummary": { "additionalProperties": false, - "description": "This object describes the central processors of the system in general detail.", - "longDescription": "This type shall contain properties which describe the central processors for a system.", + "description": "The central processors of the system in general detail.", + "longDescription": "This type shall contain properties that describe the central processors for a system.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -1034,6 +1041,13 @@ ], "versionAdded": "v1_5_0" }, + "Metrics": { + "$ref": "http://redfish.dmtf.org/schemas/v1/ProcessorMetrics.json#/definitions/ProcessorMetrics", + "description": "The link to the metrics associated with all processors in this system.", + "longDescription": "This property shall contain a link to the metrics associated with all processors in this system.", + "readonly": true, + "versionAdded": "v1_7_0" + }, "Model": { "description": "The processor model for the primary or majority of processors in this system.", "longDescription": "This property shall contain the processor model for the central processors in the system, per the description in the Processor Information - Processor Family section of the SMBIOS Specification DSP0134 2.8 or later.", @@ -1045,36 +1059,36 @@ }, "Status": { "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Status", - "description": "This property describes the status and health of the resource and its children.", - "longDescription": "This property shall contain any status or health properties of the resource." + "description": "The status and health of the Resource and its subordinate or dependent Resources.", + "longDescription": "This property shall contain any status or health properties of the Resource." } }, "type": "object" }, "RemoveResourceBlock": { "additionalProperties": false, - "description": "This action is used to remove a Resource Block from a system.", - "longDescription": "This action shall be used to remove a Resource Block from a system.", + "description": "This action removes a Resource Block from a system.", + "longDescription": "This action shall remove a Resource Block from a system.", "parameters": { "ComputerSystemETag": { "description": "The current ETag of the system.", - "longDescription": "This parameter shall be a the current ETag of the system. If provided by the client, the service shall reject the request by returning HTTP 428 (Precondition Required) if the provided ETag does not match the current ETag of the system.", + "longDescription": "This parameter shall contain the current ETag of the system. If the client-provided ETag does not match the current ETag of the system, the service shall return the HTTP 428 (Precondition Required) status code to reject the request.", "type": "string" }, "ResourceBlock": { "$ref": "http://redfish.dmtf.org/schemas/v1/ResourceBlock.json#/definitions/ResourceBlock", "description": "The Resource Block to remove from the system.", - "longDescription": "This parameter shall be a link to the specified Resource Block to remove from the system.", + "longDescription": "This parameter shall contain a link to the specified Resource Block to remove from the system.", "requiredParameter": true }, "ResourceBlockETag": { "description": "The current ETag of the Resource Block to remove from the system.", - "longDescription": "This parameter shall be a the current ETag of the Resource Block to remove from the system. If provided by the client, the service shall reject the request by returning HTTP 428 (Precondition Required) if the provided ETag does not match the current ETag of the Resource Block specified by the ResourceBlock parameter.", + "longDescription": "This parameter shall contain the current ETag of the Resource Block to remove from the system. If the client-provided ETag does not match the current ETag of the Resource Block that the ResourceBlock parameter specifies, the service shall return the HTTP 428 (Precondition Required) status code to reject the request.", "type": "string" } }, "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -1090,7 +1104,7 @@ "properties": { "target": { "description": "Link to invoke action", - "format": "uri", + "format": "uri-reference", "type": "string" }, "title": { @@ -1103,17 +1117,17 @@ }, "Reset": { "additionalProperties": false, - "description": "This action is used to reset the system.", - "longDescription": "This action shall perform a reset of the ComputerSystem. For systems which implement ACPI Power Button functionality, the PushPowerButton value shall perform or emulate an ACPI Power Button push. The ForceOff value shall remove power from the system or perform an ACPI Power Button Override (commonly known as a 4-second hold of the Power Button). The ForceRestart value shall perform a ForceOff action followed by a On action.", + "description": "This action resets the system.", + "longDescription": "This action shall reset the system represented by the Resource. For systems that implement ACPI Power Button functionality, the PushPowerButton value shall perform or emulate an ACPI Power Button Push. The ForceOff value shall remove power from the system or perform an ACPI Power Button Override, commonly known as a four-second hold of the Power Button. The ForceRestart value shall perform a ForceOff action, followed by an On action.", "parameters": { "ResetType": { "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/ResetType", - "description": "The type of reset to be performed.", - "longDescription": "This parameter shall define the type of reset to be performed. The service may accept a request without the parameter and perform an implementation specific default reset." + "description": "The type of reset.", + "longDescription": "This parameter shall contain the type of reset. The Service may accept a request without the parameter and perform an implementation-specific default reset." } }, "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -1129,7 +1143,7 @@ "properties": { "target": { "description": "Link to invoke action", - "format": "uri", + "format": "uri-reference", "type": "string" }, "title": { @@ -1141,11 +1155,11 @@ }, "SetDefaultBootOrder": { "additionalProperties": false, - "description": "This action is used to set the Boot Order to the default settings.", - "longDescription": "This action shall perform a set the BootOrder to the default values.", + "description": "This action sets the BootOrder to the default settings.", + "longDescription": "This action shall set the BootOrder array to the default settings.", "parameters": {}, "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -1161,7 +1175,7 @@ "properties": { "target": { "description": "Link to invoke action", - "format": "uri", + "format": "uri-reference", "type": "string" }, "title": { @@ -1182,7 +1196,7 @@ "Composed" ], "enumDescriptions": { - "Composed": "A computer system that has been created by binding resource blocks together.", + "Composed": "A computer system constructed by binding Resource Blocks together.", "OS": "An operating system instance.", "Physical": "A computer system.", "PhysicallyPartitioned": "A hardware-based partition of a computer system.", @@ -1190,12 +1204,12 @@ "VirtuallyPartitioned": "A virtual or software-based partition of a computer system." }, "enumLongDescriptions": { - "Composed": "A SystemType of Composed is typically used when representating a single system constructed from disaggregated resource via the Redfish Composition service.", - "OS": "A SystemType of OS is typically used when representating an OS or hypervisor view of the system.", - "Physical": "A SystemType of Physical is typically used when representating the hardware aspects of a system such as is done by a management controller.", - "PhysicallyPartitioned": "A SystemType of PhysicallyPartition is typically used when representating a single system constructed from one or more physical systems via a firmware or hardware-based service.", - "Virtual": "A SystemType of Virtual is typically used when representating a system that is actually a virtual machine instance.", - "VirtuallyPartitioned": "A SystemType of VirtuallyPartition is typically used when representating a single system constructed from one or more virtual systems via a software-based service." + "Composed": "A SystemType of Composed typically represents a single system constructed from disaggregated Resources through the Redfish Composition Service.", + "OS": "A SystemType of OS typically represents an OS or hypervisor view of the system.", + "Physical": "A SystemType of Physical typically represents the hardware aspects of a system, such as a management controller.", + "PhysicallyPartitioned": "A SystemType of PhysicallyPartition typically represents a single system constructed from one or more physical systems through a firmware or hardware-based service.", + "Virtual": "A SystemType of Virtual typically represents a system that is actually a virtual machine instance.", + "VirtuallyPartitioned": "A SystemType of VirtuallyPartition typically represents a single system constructed from one or more virtual systems through a software-based service." }, "enumVersionAdded": { "Composed": "v1_4_0" @@ -1204,10 +1218,10 @@ }, "TrustedModules": { "additionalProperties": false, - "description": "This object describes the inventory of a Trusted Modules installed in the system.", - "longDescription": "This type shall describe a truted module for a system.", + "description": "The Trusted Module installed in the system.", + "longDescription": "This type shall describe a Trusted Module for a system.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -1232,7 +1246,7 @@ "versionAdded": "v1_1_0" }, "FirmwareVersion2": { - "description": "The 2nd firmware version of this Trusted Module, if applicable.", + "description": "The second firmware version of this Trusted Module, if applicable.", "longDescription": "This property shall contain the 2nd firmware version, if applicable, as defined by the manufacturer for the Trusted Module.", "readonly": true, "type": [ @@ -1250,7 +1264,7 @@ "type": "null" } ], - "description": "This property indicates the interface type of the Trusted Module.", + "description": "The interface type of the Trusted Module.", "longDescription": "This property shall contain the interface type of the installed Trusted Module.", "readonly": true, "versionAdded": "v1_1_0" @@ -1264,28 +1278,28 @@ "type": "null" } ], - "description": "The Interface Type selection supported by this Trusted Module.", - "longDescription": "This property shall contain the Interface Type Selection method (for example to switch between TPM1_2 and TPM2_0) that is supported by this TrustedModule.", + "description": "The interface type selection supported by this Trusted Module.", + "longDescription": "This property shall contain the interface type Selection method (for example to switch between TPM1_2 and TPM2_0) that is supported by this TrustedModule.", "readonly": true, "versionAdded": "v1_3_0" }, "Oem": { "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem", - "description": "Oem extension object.", - "longDescription": "This object represents the Oem property. All values for resources described by this schema shall comply to the requirements as described in the Redfish specification.", + "description": "The OEM extension property.", + "longDescription": "This property shall contain the OEM extensions. All values for properties contained in this object shall conform to the Redfish Specification-described requirements.", "versionAdded": "v1_1_0" }, "Status": { "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Status", - "description": "This property describes the status and health of the resource and its children.", - "longDescription": "This property shall contain any status or health properties of the resource.", + "description": "The status and health of the Resource and its subordinate or dependent Resources.", + "longDescription": "This property shall contain any status or health properties of the Resource.", "versionAdded": "v1_1_0" } }, "type": "object" }, "WatchdogTimeoutActions": { - "description": "The enumerations of WatchdogTimeoutActions specify the choice of action to take when the Host Watchdog Timer reaches its timeout value.", + "description": "The enumerations of WatchdogTimeoutActions specify the choice of action to take when the host watchdog timer reaches its timeout value.", "enum": [ "None", "ResetSystem", @@ -1304,10 +1318,10 @@ }, "WatchdogTimer": { "additionalProperties": false, - "description": "This type describes the Host Watchdog Timer functionality for this system.", - "longDescription": "This type shall contain properties which describe the host watchdog timer functionality for this ComputerSystem.", + "description": "This type describes the host watchdog timer functionality for this system.", + "longDescription": "This type shall contain properties that describe the host watchdog timer functionality for this ComputerSystem.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -1322,8 +1336,8 @@ }, "properties": { "FunctionEnabled": { - "description": "This indicates if the Host Watchdog Timer functionality has been enabled. Additional host-based software is necessary to activate the timer function.", - "longDescription": "The value of this property shall indicate whether the host watchdog timer functionality has been enabled or not. This property indicates only that the functionality is enabled or disabled by the user, and updates to this property shall not initiate a watchdog timer countdown.", + "description": "An indication of whether a user has enabled the host watchdog timer functionality. This property indicates only that a user has enabled the timer. To activate the timer, installation of additional host-based software is necessary; an update to this property does not initiate the timer.", + "longDescription": "This property shall indicate whether a user has enabled the host watchdog timer functionality. This property indicates only that a user has enabled the timer. To activate the timer, installation of additional host-based software is necessary; an update to this property does not initiate the timer.", "readonly": false, "type": [ "boolean", @@ -1333,14 +1347,14 @@ }, "Oem": { "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem", - "description": "Oem extension object.", - "longDescription": "This object represents the Oem property. All values for resources described by this schema shall comply to the requirements as described in the Redfish specification.", + "description": "The OEM extension property.", + "longDescription": "This property shall contain the OEM extensions. All values for properties contained in this object shall conform to the Redfish Specification-described requirements.", "versionAdded": "v1_5_0" }, "Status": { "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Status", - "description": "This property describes the status and health of the resource and its children.", - "longDescription": "This property shall contain any status or health properties of the resource.", + "description": "The status and health of the Resource and its subordinate or dependent Resources.", + "longDescription": "This property shall contain any status or health properties of the Resource.", "versionAdded": "v1_5_0" }, "TimeoutAction": { @@ -1352,8 +1366,8 @@ "type": "null" } ], - "description": "This property indicates the action to perform when the Watchdog Timer reaches its timeout value.", - "longDescription": "This property shall contain the action to perform upon the expiration of the Watchdog Timer.", + "description": "The action to perform when the watchdog timer reaches its timeout value.", + "longDescription": "This property shall contain the action to perform when the watchdog timer reaches its timeout value.", "readonly": false, "versionAdded": "v1_5_0" }, @@ -1366,8 +1380,8 @@ "type": "null" } ], - "description": "This property indicates the action to perform when the Watchdog Timer is close (typically 3-10 seconds) to reaching its timeout value.", - "longDescription": "This property shall contain the action to perform prior to the expiration of the Watchdog Timer. This action typically occurs 3-10 seconds prior to the timeout value, but the exact timing is dependent on the implementation.", + "description": "The action to perform when the watchdog timer is close to reaching its timeout value. This action typically occurs from three to ten seconds before to the timeout value, but the exact timing is dependent on the implementation.", + "longDescription": "This property shall contain the action to perform before the watchdog timer expires. This action typically occurs from three to ten seconds before to the timeout value, but the exact timing is dependent on the implementation.", "readonly": false, "versionAdded": "v1_5_0" } @@ -1379,7 +1393,7 @@ "type": "object" }, "WatchdogWarningActions": { - "description": "The enumerations of WatchdogWarningActions specify the choice of action to take when the Host Watchdog Timer is close (typically 3-10 seconds) to reaching its timeout value.", + "description": "The enumerations of WatchdogWarningActions specify the choice of action to take when the host watchdog timer is close (typically 3-10 seconds) to reaching its timeout value.", "enum": [ "None", "DiagnosticInterrupt", @@ -1400,6 +1414,6 @@ } }, "owningEntity": "DMTF", - "release": "2018.3", - "title": "#ComputerSystem.v1_6_0.ComputerSystem" + "release": "2019.2", + "title": "#ComputerSystem.v1_8_0.ComputerSystem" } \ No newline at end of file diff --git a/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/Crashdump/Crashdump.json b/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/Crashdump/Crashdump.json new file mode 100644 index 00000000..0ce3f3de --- /dev/null +++ b/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/Crashdump/Crashdump.json @@ -0,0 +1,120 @@ +{ + "$id": "http://redfish.dmtf.org/schemas/v1/Crashdump.v1_0_0.json", + "$schema": "http://redfish.dmtf.org/schemas/v1/redfish-schema-v1.json", + "copyright": "Copyright 2014-2019 DMTF. For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright", + "definitions": { + "Actions": { + "additionalProperties": false, + "patternProperties": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { + "description": "This property shall specify a valid odata or Redfish property.", + "type": [ + "array", + "boolean", + "integer", + "number", + "null", + "object", + "string" + ] + } + }, + "properties": { + "#Crashdump.OnDemand": { + "$ref": "#/definitions/OnDemand" + }, + "#Crashdump.SendRawPeci": { + "$ref": "#/definitions/SendRawPeci" + } + }, + "type": "object" + }, + "OnDemand": { + "additionalProperties": false, + "description": "This action is used to trigger a new on-demand crashdump.", + "longDescription": "This action is used to trigger a new on-demand crashdump which is returned immediately.", + "parameters": {}, + "patternProperties": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { + "description": "This property shall specify a valid odata or Redfish property.", + "type": [ + "array", + "boolean", + "integer", + "number", + "null", + "object", + "string" + ] + } + }, + "properties": { + "target": { + "description": "Link to invoke action", + "format": "uri-reference", + "type": "string" + }, + "title": { + "description": "Friendly action name", + "type": "string" + } + }, + "type": "object" + }, + "SendRawPeci": { + "additionalProperties": false, + "description": "This action is used to send a raw PECI command to the CPU.", + "longDescription": "This action is used to send a raw PECI command to the CPU.", + "parameters": { + "ClientAddress": { + "description": "PECI client address for the command.", + "longDescription": "This defines the PECI client address that is the target for this command.", + "requiredParameter": true, + "type": "integer" + }, + "PECICommand": { + "description": "The raw bytes to be sent as the PECI command.", + "items": { + "type": "integer" + }, + "longDescription": "This defines an array of raw data that is made up of the raw bytes of the PECI command to be sent.", + "requiredParameter": true, + "type": "array" + }, + "ReadLength": { + "description": "Read length parameter for the command", + "longDescription": "This defines the read length parameter for this command.", + "requiredParameter": true, + "type": "integer" + } + }, + "patternProperties": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { + "description": "This property shall specify a valid odata or Redfish property.", + "type": [ + "array", + "boolean", + "integer", + "number", + "null", + "object", + "string" + ] + } + }, + "properties": { + "target": { + "description": "Link to invoke action", + "format": "uri-reference", + "type": "string" + }, + "title": { + "description": "Friendly action name", + "type": "string" + } + }, + "type": "object" + } + }, + "title": "#Crashdump.v1_0_0" +} \ No newline at end of file diff --git a/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/Crashdump/index.json b/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/Crashdump/index.json new file mode 100644 index 00000000..4f9e5332 --- /dev/null +++ b/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/Crashdump/index.json @@ -0,0 +1,20 @@ +{ + "@odata.context": "/redfish/v1/$metadata#JsonSchemaFile.JsonSchemaFile", + "@odata.id": "/redfish/v1/JsonSchemas/Crashdump", + "@odata.type": "#JsonSchemaFile.v1_0_2.JsonSchemaFile", + "Name": "Crashdump Schema File", + "Schema": "#Crashdump.Crashdump", + "Description": "Crashdump Schema File Location", + "Id": "Crashdump", + "Languages": [ + "en" + ], + "Languages@odata.count": 1, + "Location": [ + { + "Language": "en", + "Uri": "/redfish/v1/JsonSchemas/Crashdump/Crashdump.json" + } + ], + "Location@odata.count": 1 +} \ No newline at end of file diff --git a/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/Drive/Drive.json b/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/Drive/Drive.json index 6175bc37..a3fb11c3 100644 --- a/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/Drive/Drive.json +++ b/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/Drive/Drive.json @@ -1,15 +1,15 @@ { - "$id": "http://redfish.dmtf.org/schemas/v1/Drive.v1_5_1.json", + "$id": "http://redfish.dmtf.org/schemas/v1/Drive.v1_7_0.json", "$ref": "#/definitions/Drive", "$schema": "http://redfish.dmtf.org/schemas/v1/redfish-schema-v1.json", - "copyright": "Copyright 2014-2018 DMTF. For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright", + "copyright": "Copyright 2014-2019 DMTF. For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright", "definitions": { "Actions": { "additionalProperties": false, - "description": "The available actions for this resource.", - "longDescription": "This type shall contain the available actions for this resource.", + "description": "The available actions for this Resource.", + "longDescription": "This type shall contain the available actions for this Resource.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -23,23 +23,26 @@ } }, "properties": { + "#Drive.Reset": { + "$ref": "#/definitions/Reset" + }, "#Drive.SecureErase": { "$ref": "#/definitions/SecureErase" }, "Oem": { "$ref": "#/definitions/OemActions", - "description": "This property contains the available OEM specific actions for this resource.", - "longDescription": "This property shall contain any additional OEM actions for this resource." + "description": "The available OEM-specific actions for this Resource.", + "longDescription": "This property shall contain the available OEM-specific actions for this Resource." } }, "type": "object" }, "Drive": { "additionalProperties": false, - "description": "The Drive schema represents a single physical disk drive for a system, including links to associated Volumes.", - "longDescription": "This resource shall be used to represent a disk drive or other physical storage medium for a Redfish implementation.", + "description": "The Drive schema represents a single physical drive for a system, including links to associated volumes.", + "longDescription": "This Resource shall represent a drive or other physical storage medium for a Redfish implementation.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -54,32 +57,32 @@ }, "properties": { "@odata.context": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/context" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/context" }, "@odata.etag": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/etag" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/etag" }, "@odata.id": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/id" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/id" }, "@odata.type": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/type" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/type" }, "Actions": { "$ref": "#/definitions/Actions", - "description": "The available actions for this resource.", - "longDescription": "The Actions property shall contain the available actions for this resource." + "description": "The available actions for this Resource.", + "longDescription": "This property shall contain the available actions for this Resource." }, "Assembly": { "$ref": "http://redfish.dmtf.org/schemas/v1/Assembly.json#/definitions/Assembly", - "description": "A reference to the Assembly resource associated with this drive.", - "longDescription": "The value of this property shall be a link to a resource of type Assembly.", + "description": "The link to the assembly associated with this drive.", + "longDescription": "This property shall contain a link to a Resource of type Assembly.", "readonly": true, "versionAdded": "v1_3_0" }, "AssetTag": { - "description": "The user assigned asset tag for this drive.", - "longDescription": "The value of this property shall be an identifying string used to track the drive for inventory purposes.", + "description": "The user-assigned asset tag for this drive.", + "longDescription": "This property shall track the drive for inventory purposes.", "readonly": false, "type": [ "string", @@ -87,8 +90,8 @@ ] }, "BlockSizeBytes": { - "description": "The size of the smallest addressible unit (Block) of this drive in bytes.", - "longDescription": "This property shall contain size of the smallest addressible unit of the associated drive.", + "description": "The size, in bytes, of the smallest addressable unit, or block.", + "longDescription": "This property shall contain size of the smallest addressable unit of the associated drive.", "readonly": true, "type": [ "integer", @@ -97,8 +100,8 @@ "units": "By" }, "CapableSpeedGbs": { - "description": "The speed which this drive can communicate to a storage controller in ideal conditions in Gigabits per second.", - "longDescription": "This property shall contain fastest capable bus speed of the associated drive.", + "description": "The speed, in gigabit per second (Gbit/s), at which this drive can communicate to a storage controller in ideal conditions.", + "longDescription": "This property shall contain fastest capable bus speed, in gigabit per second (Gbit/s), of the associated drive.", "readonly": true, "type": [ "number", @@ -107,8 +110,8 @@ "units": "Gbit/s" }, "CapacityBytes": { - "description": "The size in bytes of this Drive.", - "longDescription": "This property shall contain the raw size in bytes of the associated drive.", + "description": "The size, in bytes, of this drive.", + "longDescription": "This property shall contain the raw size, in bytes, of the associated drive.", "readonly": true, "type": [ "integer", @@ -136,7 +139,7 @@ "type": "null" } ], - "description": "The encryption abilities of this drive.", + "description": "The encryption ability of this drive.", "longDescription": "This property shall contain the encryption ability for the associated drive.", "readonly": true }, @@ -149,13 +152,13 @@ "type": "null" } ], - "description": "The status of the encrytion of this drive.", - "longDescription": "This property shall contain the encrytion status for the associated drive.", + "description": "The status of the encryption of this drive.", + "longDescription": "This property shall contain the encryption status for the associated drive.", "readonly": true }, "FailurePredicted": { - "description": "Is this drive currently predicting a failure in the near future.", - "longDescription": "This property shall contain failure information as defined by the manufacturer for the associated drive.", + "description": "An indication of whether this drive currently predicts a failure in the near future.", + "longDescription": "This property shall indicate whether this drive currently predicts a manufacturer-defined failure.", "readonly": true, "type": [ "boolean", @@ -171,8 +174,8 @@ "type": "null" } ], - "description": "The replacement mode for the hotspare drive.", - "longDescription": "This property shall specify if a commissioned hotspare will continue to serve as a hotspare once the failed drive is replaced.", + "description": "The replacement mode for the hot spare drive.", + "longDescription": "This property shall indicate whether a commissioned hot spare continues to serve as a hot spare after the failed drive is replaced.", "readonly": false, "versionAdded": "v1_5_0" }, @@ -185,8 +188,8 @@ "type": "null" } ], - "description": "The type of hotspare this drive is currently serving as.", - "longDescription": "This property shall contain the hot spare type for the associated drive. If the drive is currently serving as a hot spare its Status.State field shall be 'StandbySpare' and 'Enabled' when it is being used as part of a Volume.", + "description": "The type of hot spare that this drive currently serves as.", + "longDescription": "This property shall contain the hot spare type for the associated drive. If the drive currently serves as a hot spare, its Status.State field shall be 'StandbySpare' and 'Enabled' when it is part of a volume.", "readonly": true }, "Id": { @@ -194,7 +197,7 @@ "readonly": true }, "Identifiers": { - "description": "The Durable names for the drive.", + "description": "The durable names for the drive.", "items": { "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Identifier" }, @@ -210,26 +213,28 @@ "type": "null" } ], - "description": "The state of the indicator LED, used to identify the drive.", - "longDescription": "This value of this property shall contain the indicator light state for the indicator light associated with this drive.", + "description": "The state of the indicator LED, that identifies the drive.", + "longDescription": "This property shall contain the state for the indicator light associated with this drive.", "readonly": false }, "Links": { "$ref": "#/definitions/Links", - "description": "Contains references to other resources that are related to this resource.", - "longDescription": "The Links property, as described by the Redfish Specification, shall contain references to resources that are related to, but not contained by (subordinate to), this resource." + "description": "The links to other Resources that are related to this Resource.", + "longDescription": "This property shall contain links to Resources that are related to but are not contained by or subordinate to this Resource." }, "Location": { - "description": "The Location of the drive.", + "deprecated": "This property has been deprecated in favor of the singular property PhysicalLocation found in Drive.v1_4_0.", + "description": "The location of the drive.", "items": { "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Location" }, "longDescription": "This property shall contain location information of the associated drive.", - "type": "array" + "type": "array", + "versionDeprecated": "v1_4_0" }, "Manufacturer": { - "description": "This is the manufacturer of this drive.", - "longDescription": "The value of this property shall be the name of the organization responsible for producing the drive. This organization might be the entity from whom the drive is purchased, but this is not necessarily true.", + "description": "The manufacturer of this drive.", + "longDescription": "This property shall contain the name of the organization responsible for producing the drive. This organization might be the entity from whom the drive is purchased, but this is not necessarily true.", "readonly": true, "type": [ "string", @@ -250,8 +255,8 @@ "readonly": true }, "Model": { - "description": "This is the model number for the drive.", - "longDescription": "The value of this property shall be the name by which the manufacturer generally refers to the drive.", + "description": "The model number for the drive.", + "longDescription": "This property shall contain the name by which the manufacturer generally refers to the drive.", "readonly": true, "type": [ "string", @@ -263,8 +268,8 @@ "readonly": true }, "NegotiatedSpeedGbs": { - "description": "The speed which this drive is currently communicating to the storage controller in Gigabits per second.", - "longDescription": "This property shall contain current bus speed of the associated drive.", + "description": "The speed, in gigabit per second (Gbit/s), at which this drive currently communicates to the storage controller.", + "longDescription": "This property shall contain current bus speed, in gigabit per second (Gbit/s), of the associated drive.", "readonly": true, "type": [ "number", @@ -274,8 +279,8 @@ }, "Oem": { "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem", - "description": "This is the manufacturer/provider specific extension moniker used to divide the Oem object into sections.", - "longDescription": "The value of this string shall be of the format for the reserved word *Oem*." + "description": "The OEM extension property.", + "longDescription": "This property shall contain the OEM extensions. All values for properties that this object contains shall conform to the Redfish Specification-described requirements." }, "Operations": { "description": "The operations currently running on the Drive.", @@ -288,7 +293,7 @@ }, "PartNumber": { "description": "The part number for this drive.", - "longDescription": "The value of this property shall be a part number assigned by the organization that is responsible for producing or manufacturing the drive.", + "longDescription": "This property shall contain the part number assigned by the organization that is responsible for producing or manufacturing the drive.", "readonly": true, "type": [ "string", @@ -297,13 +302,13 @@ }, "PhysicalLocation": { "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Location", - "description": "The Location of the drive.", + "description": "The location of the drive.", "longDescription": "This property shall contain location information of the associated drive.", "versionAdded": "v1_4_0" }, "PredictedMediaLifeLeftPercent": { - "description": "The percentage of reads and writes that are predicted to still be available for the media.", - "longDescription": "This property shall contain an indicator of the percentage of life remaining in the Drive's media.", + "description": "The percentage of reads and writes that are predicted to be available for the media.", + "longDescription": "This property shall contain an indicator of the percentage of life remaining in the drive's media.", "readonly": true, "type": [ "number", @@ -320,13 +325,13 @@ "type": "null" } ], - "description": "The protocol this drive is using to communicate to the storage controller.", - "longDescription": "This property shall contain the protocol the associated drive is using to communicate to the storage controller for this system.", + "description": "The protocol that this drive currently uses to communicate to the storage controller.", + "longDescription": "This property shall contain the protocol that the associated drive currently uses to communicate to the storage controller for this system.", "readonly": true }, "Revision": { - "description": "The revision of this Drive. This is typically the firmware/hardware version of the drive.", - "longDescription": "This property shall contain the revision as defined by the manufacturer for the associated drive.", + "description": "The revision of this drive. This is typically the firmware or hardware version of the drive.", + "longDescription": "This property shall contain the manufacturer-defined revision for the associated drive.", "readonly": true, "type": [ "string", @@ -334,8 +339,8 @@ ] }, "RotationSpeedRPM": { - "description": "The rotation speed of this Drive in Revolutions per Minute (RPM).", - "longDescription": "This property shall contain rotation speed of the associated drive.", + "description": "The rotation speed of this drive, in revolutions per minute (RPM).", + "longDescription": "This property shall contain the rotation speed, in revolutions per minute (RPM), of the associated drive.", "readonly": true, "type": [ "number", @@ -344,8 +349,8 @@ "units": "RPM" }, "SKU": { - "description": "This is the SKU for this drive.", - "longDescription": "The value of this property shall be the stock-keeping unit number for this drive.", + "description": "The SKU for this drive.", + "longDescription": "This property shall contain the stock-keeping unit (SKU) number for this drive.", "readonly": true, "type": [ "string", @@ -354,7 +359,7 @@ }, "SerialNumber": { "description": "The serial number for this drive.", - "longDescription": "The value of this property shall be a manufacturer-allocated number used to identify the drive.", + "longDescription": "This property shall contain the manufacturer-allocated number that identifies the drive.", "readonly": true, "type": [ "string", @@ -363,8 +368,8 @@ }, "Status": { "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Status", - "description": "This property describes the status and health of the resource and its children.", - "longDescription": "This property shall contain any status or health properties of the resource." + "description": "The status and health of the Resource and its subordinate or dependent Resources.", + "longDescription": "This property shall contain any status or health properties of the Resource." }, "StatusIndicator": { "anyOf": [ @@ -375,9 +380,19 @@ "type": "null" } ], - "description": "The state of the status indicator, used to communicate status information about this drive.", - "longDescription": "The value of this property shall contain the status indicator state for the status indicator associated with this drive. The valid values for this property are specified through the Redfish.AllowableValues annotation.", + "description": "The state of the status indicator, which communicates status information about this drive.", + "longDescription": "This property shall contain the status indicator state for the status indicator associated with this drive. The Redfish.AllowableValues annotation specifies the valid values for this property.", "readonly": false + }, + "WriteCacheEnabled": { + "description": "An indication of whether the drive write cache is enabled.", + "longDescription": "This property shall indicate whether the drive write cache is enabled.", + "readonly": false, + "type": [ + "boolean", + "null" + ], + "versionAdded": "v1_7_0" } }, "required": [ @@ -395,9 +410,9 @@ "Other" ], "enumDescriptions": { - "None": "The drive is not capable of self encryption.", - "Other": "The drive is capable of self encryption through some other means.", - "SelfEncryptingDrive": "The drive is capable of self encryption per the Trusted Computing Group's Self Encrypting Drive Standard." + "None": "The drive is not capable of self-encryption.", + "Other": "The drive is capable of self-encryption through some other means.", + "SelfEncryptingDrive": "The drive is capable of self-encryption per the Trusted Computing Group's Self Encrypting Drive Standard." }, "type": "string" }, @@ -410,14 +425,14 @@ "Unencrypted" ], "enumDeprecated": { - "Unecrypted": "This value has been Deprecated in favor of Unencrypted." + "Unecrypted": "This value has been deprecated in favor of Unencrypted." }, "enumDescriptions": { "Foreign": "The drive is currently encrypted, the data is not accessible to the user, and the system requires user intervention to expose the data.", - "Locked": "The drive is currently encrypted and the data is not accessible to the user, however the system has the ability to unlock the drive automatically.", + "Locked": "The drive is currently encrypted and the data is not accessible to the user. However, the system can unlock the drive automatically.", "Unecrypted": "The drive is not currently encrypted.", "Unencrypted": "The drive is not currently encrypted.", - "Unlocked": "The drive is currently encrypted but the data is accessible to the user unencrypted." + "Unlocked": "The drive is currently encrypted but the data is accessible to the user in unencrypted form." }, "enumVersionAdded": { "Unencrypted": "v1_1_0" @@ -433,8 +448,8 @@ "NonRevertible" ], "enumDescriptions": { - "NonRevertible": "A hotspare drive that is commissioned due to a drive failure will remain as a data drive and will not revert to a hotspare if the failed drive is replaced.", - "Revertible": "A hotspare drive that is commissioned due to a drive failure will revert to being a hotspare once the failed drive is replaced and rebuilt." + "NonRevertible": "The hot spare drive that is commissioned due to a drive failure remains as a data drive and does not revert to a hot spare if the failed drive is replaced.", + "Revertible": "The hot spare drive that is commissioned due to a drive failure reverts to a hot spare after the failed drive is replaced and rebuilt." }, "type": "string" }, @@ -446,19 +461,19 @@ "Dedicated" ], "enumDescriptions": { - "Chassis": "The drive is currently serving as a hotspare for all other drives in the chassis.", - "Dedicated": "The drive is currently serving as a hotspare for a user defined set of drives.", - "Global": "The drive is currently serving as a hotspare for all other drives in the storage system.", - "None": "The drive is not currently a hotspare." + "Chassis": "The drive is currently serving as a hot spare for all other drives in the chassis.", + "Dedicated": "The drive is currently serving as a hot spare for a user-defined set of drives.", + "Global": "The drive is currently serving as a hot spare for all other drives in the storage system.", + "None": "The drive is not currently a hot spare." }, "type": "string" }, "Links": { "additionalProperties": false, - "description": "Contains references to other resources that are related to this resource.", - "longDescription": "This type, as described by the Redfish Specification, shall contain references to resources that are related to, but not contained by (subordinate to), this resource.", + "description": "The links to other Resources that are related to this Resource.", + "longDescription": "This Redfish Specification-described type shall contain links to Resources that are related to but are not contained by or subordinate to this Resource.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -474,40 +489,52 @@ "properties": { "Chassis": { "$ref": "http://redfish.dmtf.org/schemas/v1/Chassis.json#/definitions/Chassis", - "description": "A reference to the Chassis which contains this Drive.", - "longDescription": "The value of this property shall be a reference to a resource of type Chassis that represent the physical container associated with this Drive.", + "description": "The link to the chassis that contains this drive.", + "longDescription": "This property shall contain a link to a Resource of type Chassis that represents the physical container associated with this drive.", "readonly": true, "versionAdded": "v1_2_0" }, "Endpoints": { - "description": "An array of references to the endpoints that connect to this drive.", + "description": "An array of links to the endpoints that connect to this drive.", "items": { "$ref": "http://redfish.dmtf.org/schemas/v1/Endpoint.json#/definitions/Endpoint" }, - "longDescription": "The value of this property shall be a reference to the resources that this drive is associated with and shall reference a resource of type Endpoint.", + "longDescription": "This property shall contain a link to the Resources of the Endpoint type with which this drive is associated.", "readonly": true, "type": "array", "versionAdded": "v1_1_0" }, "Endpoints@odata.count": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/count" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/count" }, "Oem": { "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem", - "description": "Oem extension object.", - "longDescription": "This object represents the Oem property. All values for resources described by this schema shall comply to the requirements as described in the Redfish specification." + "description": "The OEM extension property.", + "longDescription": "This property shall contain the OEM extensions. All values for properties contained in this object shall conform to the Redfish Specification-described requirements." + }, + "PCIeFunctions": { + "description": "An array of links to the PCIe functions that the drive produces.", + "items": { + "$ref": "http://redfish.dmtf.org/schemas/v1/PCIeFunction.json#/definitions/PCIeFunction" + }, + "longDescription": "This property shall link to a Resource of type PCIeFunction that represents the PCIe functions associated with this Resource.", + "type": "array", + "versionAdded": "v1_6_0" + }, + "PCIeFunctions@odata.count": { + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/count" }, "Volumes": { - "description": "An array of references to the volumes contained in this drive. This will reference Volumes that are either wholly or only partly contained by this drive.", + "description": "An array of links to the volumes that this drive either wholly or only partially contains.", "items": { "$ref": "http://redfish.dmtf.org/schemas/swordfish/v1/Volume.json#/definitions/Volume" }, - "longDescription": "The value of this property shall be a reference to the resources that this drive is associated with and shall reference a resource of type Volume. This shall include all Volume resources of which this Drive is a member and all Volumes for which this Drive is acting as a spare if the HotspareType is Dedicated.", + "longDescription": "This property shall contain a link to the Resources of the Volume type with which this drive is associated. This property shall include all Volume Resources of which this drive is a member and all volumes for which this drive acts as a spare if the hot spare type is `Dedicated`.", "readonly": true, "type": "array" }, "Volumes@odata.count": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/count" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/count" } }, "type": "object" @@ -527,10 +554,10 @@ }, "OemActions": { "additionalProperties": true, - "description": "The available OEM specific actions for this resource.", - "longDescription": "This type shall contain any additional OEM actions for this resource.", + "description": "The available OEM-specific actions for this Resource.", + "longDescription": "This type shall contain the available OEM-specific actions for this Resource.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -548,10 +575,10 @@ }, "Operations": { "additionalProperties": false, - "description": "An operation currently running on this resource.", - "longDescription": "This type shall describe a currently running operation on the resource.", + "description": "An operation currently running on this Resource.", + "longDescription": "This type shall describe a currently running operation on the Resource.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -567,14 +594,14 @@ "properties": { "AssociatedTask": { "$ref": "http://redfish.dmtf.org/schemas/v1/Task.json#/definitions/Task", - "description": "A reference to the task associated with the operation if any.", - "longDescription": "The value of this property shall be a reference to a resource of type Task that represents the task associated with the operation.", + "description": "The link to the task associated with the operation, if any.", + "longDescription": "This property shall contain a link to a Resource of type Task that represents the task associated with the operation.", "readonly": true, "versionAdded": "v1_1_0" }, "OperationName": { "description": "The name of the operation.", - "longDescription": "This property shall be a string of the name of the operation.", + "longDescription": "This property shall contain a string of the name of the operation.", "readonly": true, "type": [ "string", @@ -584,7 +611,7 @@ }, "PercentageComplete": { "description": "The percentage of the operation that has been completed.", - "longDescription": "This property shall be an interger of the percentage of the operation that has been completed.", + "longDescription": "This property shall contain an interger of the percentage of the operation that has been completed.", "readonly": true, "type": [ "integer", @@ -596,13 +623,52 @@ }, "type": "object" }, + "Reset": { + "additionalProperties": false, + "description": "This action resets this drive.", + "longDescription": "This action shall reset this drive.", + "parameters": { + "ResetType": { + "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/ResetType", + "description": "The type of reset.", + "longDescription": "This parameter shall contain the type of reset. The Service may accept a request without the parameter and perform an implementation specific default reset." + } + }, + "patternProperties": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { + "description": "This property shall specify a valid odata or Redfish property.", + "type": [ + "array", + "boolean", + "integer", + "number", + "null", + "object", + "string" + ] + } + }, + "properties": { + "target": { + "description": "Link to invoke action", + "format": "uri-reference", + "type": "string" + }, + "title": { + "description": "Friendly action name", + "type": "string" + } + }, + "type": "object", + "versionAdded": "v1_7_0" + }, "SecureErase": { "additionalProperties": false, - "description": "This action is used to securely erase the contents of the drive.", - "longDescription": "This action shall perform a secure erase of the drive.", + "description": "This action securely erases the contents of the drive.", + "longDescription": "This action shall securely erase the drive.", "parameters": {}, "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -618,7 +684,7 @@ "properties": { "target": { "description": "Link to invoke action", - "format": "uri", + "format": "uri-reference", "type": "string" }, "title": { @@ -640,17 +706,17 @@ ], "enumDescriptions": { "Fail": "The drive has failed.", - "Hotspare": "The drive is marked to be automatically rebuilt and used as a replacement for a failed drive.", - "InACriticalArray": "The array that this drive is a part of is degraded.", - "InAFailedArray": "The array that this drive is a part of is failed.", + "Hotspare": "The drive has been marked to automatically rebuild and replace a failed drive.", + "InACriticalArray": "The array to which this drive belongs has been degraded.", + "InAFailedArray": "The array to which this drive belongs has failed.", "OK": "The drive is OK.", - "PredictiveFailureAnalysis": "The drive is still working but predicted to fail soon.", + "PredictiveFailureAnalysis": "The drive still works but is predicted to fail soon.", "Rebuild": "The drive is being rebuilt." }, "type": "string" } }, "owningEntity": "DMTF", - "release": "2018.2", - "title": "#Drive.v1_5_1.Drive" + "release": "2019.2", + "title": "#Drive.v1_7_0.Drive" } \ No newline at end of file diff --git a/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/Endpoint/Endpoint.json b/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/Endpoint/Endpoint.json index 876aa4cb..6b0783b5 100644 --- a/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/Endpoint/Endpoint.json +++ b/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/Endpoint/Endpoint.json @@ -1,15 +1,15 @@ { - "$id": "http://redfish.dmtf.org/schemas/v1/Endpoint.v1_3_0.json", + "$id": "http://redfish.dmtf.org/schemas/v1/Endpoint.v1_3_2.json", "$ref": "#/definitions/Endpoint", "$schema": "http://redfish.dmtf.org/schemas/v1/redfish-schema-v1.json", - "copyright": "Copyright 2014-2018 DMTF. For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright", + "copyright": "Copyright 2014-2019 DMTF. For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright", "definitions": { "Actions": { "additionalProperties": false, - "description": "The available actions for this resource.", - "longDescription": "This type shall contain the available actions for this resource.", + "description": "The available actions for this Resource.", + "longDescription": "This type shall contain the available actions for this Resource.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -24,26 +24,19 @@ }, "properties": { "Oem": { - "anyOf": [ - { - "$ref": "#/definitions/OemActions" - }, - { - "type": "null" - } - ], - "description": "This property contains the available OEM specific actions for this resource.", - "longDescription": "This property shall contain any additional OEM actions for this resource." + "$ref": "#/definitions/OemActions", + "description": "The available OEM-specific actions for this Resource.", + "longDescription": "This property shall contain the available OEM-specific actions for this Resource." } }, "type": "object" }, "ConnectedEntity": { "additionalProperties": false, - "description": "Represents a remote resource that is connected to the network accessible to this endpoint.", - "longDescription": "This type shall represent a remote resource that is connected to a network accessible to an endpoint.", + "description": "Represents a remote Resource that is connected to the network accessible to this endpoint.", + "longDescription": "This type shall represent a remote Resource that is connected to a network accessible to an endpoint.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -58,29 +51,15 @@ }, "properties": { "EntityLink": { - "anyOf": [ - { - "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Resource" - }, - { - "type": "null" - } - ], - "description": "A link to the associated entity.", - "longDescription": "This property shall be a reference to an entity of the type specified by the description of the value of the EntityType property.", + "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Resource", + "description": "The link to the associated entity.", + "longDescription": "This property shall contain a link to an entity of the type specified by the description of the EntityType property value.", "readonly": true }, "EntityPciId": { - "anyOf": [ - { - "$ref": "#/definitions/PciId" - }, - { - "type": "null" - } - ], + "$ref": "#/definitions/PciId", "description": "The PCI ID of the connected entity.", - "longDescription": "The value of this property shall be the PCI ID of the connected PCIe entity." + "longDescription": "This property shall contain the PCI ID of the connected PCIe entity." }, "EntityRole": { "anyOf": [ @@ -92,7 +71,7 @@ } ], "description": "The role of the connected entity.", - "longDescription": "The value of this property shall indicate if the specified entity is an initiator, target, or both.", + "longDescription": "This property shall indicate if the specified entity is an initiator, target, or both.", "readonly": true }, "EntityType": { @@ -105,57 +84,54 @@ } ], "description": "The type of the connected entity.", - "longDescription": "The value of this property shall indicate if type of connected entity.", + "longDescription": "This property shall indicate if type of connected entity.", "readonly": true }, "Identifiers": { "description": "Identifiers for the remote entity.", "items": { - "anyOf": [ - { - "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Identifier" - }, - { - "type": "null" - } - ] + "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Identifier" }, - "longDescription": "Identifiers for the remote entity shall be unique in the context of other resources that can reached over the connected network.", + "longDescription": "Identifiers for the remote entity shall be unique in the context of other Resources that can reached over the connected network.", "type": "array" }, "Oem": { "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem", - "description": "Oem extension object.", - "longDescription": "This object represents the Oem property. All values for resources described by this schema shall comply to the requirements as described in the Redfish specification." + "description": "The OEM extension property.", + "longDescription": "This property shall contain the OEM extensions. All values for properties contained in this object shall conform to the Redfish Specification-described requirements." }, "PciClassCode": { - "description": "The Class Code, Subclass code, and Programming Interface code of this PCIe function.", - "longDescription": "The value of this property shall be the PCI Class Code, Subclass code, and Programming Interface code of the PCIe device function.", + "deprecated": "This property has been deprecated in favor of the ClassCode property inside the EntityPciId object.", + "description": "The Class Code, Subclass, and Programming Interface code of this PCIe function.", + "longDescription": "This property shall contain the PCI Class Code, Subclass, and Programming Interface of the PCIe device function.", "pattern": "^0[xX](([a-fA-F]|[0-9]){2}){3}$", "readonly": true, "type": [ "string", "null" - ] + ], + "versionDeprecated": "v1_2_0" }, "PciFunctionNumber": { + "deprecated": "This property has been deprecated in favor of the FunctionNumber property inside the EntityPciId object.", "description": "The PCI ID of the connected entity.", - "longDescription": "The value of this property shall be the PCI Function Number of the connected PCIe entity.", + "longDescription": "This property shall contain the PCI Function Number of the connected PCIe entity.", "readonly": true, "type": [ "integer", "null" - ] + ], + "versionDeprecated": "v1_2_0" } }, "type": "object" }, "Endpoint": { "additionalProperties": false, - "description": "This is the schema definition for the Endpoint resource. It represents the properties of an entity that sends or receives protocol defined messages over a transport.", - "longDescription": "This resource shall be used to represent a fabric endpoint for a Redfish implementation.", + "description": "The Endpoint schema contains the properties of an Endpoint Resource that represents the properties of an entity that sends or receives protocol-defined messages over a transport.", + "longDescription": "This Resource contains a fabric endpoint for a Redfish implementation.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -170,35 +146,28 @@ }, "properties": { "@odata.context": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/context" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/context" }, "@odata.etag": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/etag" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/etag" }, "@odata.id": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/id" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/id" }, "@odata.type": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/type" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/type" }, "Actions": { "$ref": "#/definitions/Actions", - "description": "The available actions for this resource.", - "longDescription": "The Actions property shall contain the available actions for this resource." + "description": "The available actions for this Resource.", + "longDescription": "This property shall contain the available actions for this Resource." }, "ConnectedEntities": { "description": "All the entities connected to this endpoint.", "items": { - "anyOf": [ - { - "$ref": "#/definitions/ConnectedEntity" - }, - { - "type": "null" - } - ] + "$ref": "#/definitions/ConnectedEntity" }, - "longDescription": "This value of this property shall contain all the entities which this endpoint allows access to.", + "longDescription": "This property shall contain all entities to which this endpoint allows access.", "type": "array" }, "Description": { @@ -222,12 +191,12 @@ } ], "description": "The protocol supported by this endpoint.", - "longDescription": "The value of this property shall contain the protocol this endpoint uses to communicate with other endpoints on this fabric.", + "longDescription": "This property shall contain the protocol this endpoint uses to communicate with other endpoints on this fabric.", "readonly": true }, "HostReservationMemoryBytes": { - "description": "The amount of memory in Bytes that the Host should allocate to connect to this endpoint.", - "longDescription": "The value of this property shall be the amount of memory in Bytes that the Host should allocate to connect to this endpoint.", + "description": "The amount of memory in bytes that the host should allocate to connect to this endpoint.", + "longDescription": "This property shall contain the amount of memory in bytes that the host should allocate to connect to this endpoint.", "readonly": true, "type": [ "integer", @@ -236,16 +205,9 @@ "units": "By" }, "IPTransportDetails": { - "description": "This array contains details for each IP transport supported by this endpoint. The array structure can be used to model multiple IP addresses for this endpoint.", + "description": "An array of details for each IP transport supported by this endpoint. The array structure can model multiple IP addresses for this endpoint.", "items": { - "anyOf": [ - { - "$ref": "#/definitions/IPTransportDetails" - }, - { - "type": "null" - } - ] + "$ref": "#/definitions/IPTransportDetails" }, "longDescription": "This array shall contain the details for each IP transport supported by this endpoint.", "type": "array", @@ -258,22 +220,15 @@ "Identifiers": { "description": "Identifiers for this endpoint.", "items": { - "anyOf": [ - { - "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Identifier" - }, - { - "type": "null" - } - ] + "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Identifier" }, "longDescription": "Identifiers for this endpoint shall be unique in the context of other endpoints that can reached over the connected network.", "type": "array" }, "Links": { "$ref": "#/definitions/Links", - "description": "The links object contains the links to other resources that are related to this resource.", - "longDescription": "The Links property, as described by the Redfish Specification, shall contain references to resources that are related to, but not contained by (subordinate to), this resource." + "description": "The links to other Resources that are related to this Resource.", + "longDescription": "The Redfish Specification-described Links Property shall contain links to Resources related to but not subordinate to this Resource." }, "Name": { "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Name", @@ -281,37 +236,30 @@ }, "Oem": { "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem", - "description": "This is the manufacturer/provider specific extension moniker used to divide the Oem object into sections.", - "longDescription": "The value of this string shall be of the format for the reserved word *Oem*." + "description": "The OEM extension property.", + "longDescription": "This property shall contain the OEM extensions. All values for properties that this object contains shall conform to the Redfish Specification-described requirements." }, "PciId": { - "anyOf": [ - { - "$ref": "#/definitions/PciId" - }, - { - "type": "null" - } - ], + "$ref": "#/definitions/PciId", "description": "The PCI ID of the endpoint.", - "longDescription": "The value of this property shall be the PCI ID of the endpoint." + "longDescription": "This property shall contain the PCI ID of the endpoint." }, "Redundancy": { "autoExpand": true, - "description": "Redundancy information for the lower level endpoints supporting this endpoint.", + "description": "Redundancy information for the lower-level endpoints supporting this endpoint.", "items": { "$ref": "http://redfish.dmtf.org/schemas/v1/Redundancy.json#/definitions/Redundancy" }, - "longDescription": "The values of the properties in this array shall be used to show how this endpoint is grouped with other endpoints for form redundancy sets.", + "longDescription": "The values of the properties in this array shall show how this endpoint is grouped with other endpoints for form redundancy sets.", "type": "array" }, "Redundancy@odata.count": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/count" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/count" }, "Status": { "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Status", - "description": "This property describes the status and health of the resource and its children.", - "longDescription": "This property shall contain any status or health properties of the resource." + "description": "The status and health of the Resource and its subordinate or dependent Resources.", + "longDescription": "This property shall contain any status or health properties of the Resource." } }, "required": [ @@ -329,9 +277,9 @@ "Both" ], "enumDescriptions": { - "Both": "The entity is acting as both an initiator and a target.", - "Initiator": "The entity is acting as an initiator.", - "Target": "The entity is acting as a target." + "Both": "The entity can both send and receive commands, messages, and other requests to or from other entities on the fabric.", + "Initiator": "The entity sends commands, messages, or other types of requests to other entities on the fabric, but cannot receive commands from other entities.", + "Target": "The entity receives commands, messages, or other types of requests from other entities on the fabric, but cannot send commands to other entities." }, "type": "string" }, @@ -349,16 +297,16 @@ "AccelerationFunction" ], "enumDescriptions": { - "AccelerationFunction": "The entity is an acceleration function realized through a device, such as an FPGA. The EntityLink property (if present) should be a AccelerationFunction.AccelerationFunction entity.", + "AccelerationFunction": "The entity is an acceleration function realized through a device, such as an FPGA. The EntityLink property, if present, should be an AccelerationFunction type.", "Bridge": "The entity is a PCI(e) bridge.", "DisplayController": "The entity is a display controller.", - "Drive": "The entity is a disk drive. The EntityLink property (if present) should be a Drive.Drive entity.", - "NetworkController": "The entity is a network controller. The EntityLink property (if present) should be an EthernetInterface.EthernetInterface entity.", + "Drive": "The entity is a disk drive. The EntityLink property, if present, should be a Drive type.", + "NetworkController": "The entity is a network controller. The EntityLink property, if present, should contain an EthernetInterface type.", "Processor": "The entity is a processor device.", - "RootComplex": "The entity is a PCI(e) root complex. The EntityLink property (if present) should be a ComputerSystem.ComputerSystem entity.", - "StorageExpander": "The entity is a storage expander. The EntityLink property (if present) should be a Chassis.Chassis entity.", - "StorageInitiator": "The entity is a storage initator. The EntityLink property (if present) should be a Storage.StorageController entity.", - "Volume": "The entity is a volume. The EntityLink property (if present) should be a Volume.Volume entity." + "RootComplex": "The entity is a PCI(e) root complex. The EntityLink property, if present, should be a ComputerSystem type.", + "StorageExpander": "The entity is a storage expander. The EntityLink property, if present, should be a Chassis type.", + "StorageInitiator": "The entity is a storage initator. The EntityLink property, if present, should be a StorageController type.", + "Volume": "The entity is a volume. The EntityLink property, if present, should be a Volume type." }, "enumVersionAdded": { "AccelerationFunction": "v1_3_0", @@ -368,10 +316,10 @@ }, "IPTransportDetails": { "additionalProperties": false, - "description": "This object contains properties which specify the details of the transport supported by the endpoint. The properties which are present, is dependemt on the type of transport supported by the endpoint.", - "longDescription": "The type shall contain properties which specify the details of the transport supported by the endpoint.", + "description": "This type specifies the details of the transport supported by the endpoint. The properties that are present are dependent on the type of transport supported by the endpoint.", + "longDescription": "The type shall contain properties that specify the details of the transport supported by the endpoint.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -387,19 +335,19 @@ "properties": { "IPv4Address": { "$ref": "http://redfish.dmtf.org/schemas/v1/IPAddresses.json#/definitions/IPv4Address", - "description": "The IPv4 addresses assigned to the Endpoint.", - "longDescription": "The value of this property shall specify the IPv4Address.", + "description": "The IPv4 addresses assigned to the endpoint.", + "longDescription": "This property shall contain the IPv4Address.", "versionAdded": "v1_1_0" }, "IPv6Address": { "$ref": "http://redfish.dmtf.org/schemas/v1/IPAddresses.json#/definitions/IPv6Address", - "description": "The IPv6 addresses assigned to the Endpoint.", - "longDescription": "The value of this property shall specify the IPv6Address.", + "description": "The IPv6 addresses assigned to the endpoint.", + "longDescription": "This property shall contain the IPv6Address.", "versionAdded": "v1_1_0" }, "Port": { - "description": "The UDP or TCP port number used by the Endpoint.", - "longDescription": "The value of this property shall be an specify UDP or TCP port number used for communication with the Endpoint.", + "description": "The UDP or TCP port number used by the endpoint.", + "longDescription": "This property shall contain an specify UDP or TCP port number used for communication with the endpoint.", "maximum": 65535, "minimum": 0, "readonly": true, @@ -409,7 +357,7 @@ "TransportProtocol": { "$ref": "http://redfish.dmtf.org/schemas/v1/Protocol.json#/definitions/Protocol", "description": "The protocol used by the connection entity.", - "longDescription": "The value shall be the protocol used by the connection entity.", + "longDescription": "This property shall contain the protocol used by the connection entity.", "readonly": true, "versionAdded": "v1_1_0" } @@ -418,10 +366,10 @@ }, "Links": { "additionalProperties": false, - "description": "Contains references to other resources that are related to this resource.", - "longDescription": "This type, as described by the Redfish Specification, shall contain references to resources that are related to, but not contained by (subordinate to), this resource.", + "description": "The links to other Resources that are related to this Resource.", + "longDescription": "The Redfish Specification-described type shall contain links to Resources related to but not subordinate to this Resource.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -436,56 +384,56 @@ }, "properties": { "MutuallyExclusiveEndpoints": { - "description": "An array of references to the endpoints that may not be used in zones if this endpoint is used in a zone.", + "description": "An array of links to the endpoints that may not be used in zones if this endpoint is in a zone.", "items": { "$ref": "http://redfish.dmtf.org/schemas/v1/Endpoint.json#/definitions/Endpoint" }, - "longDescription": "The value of this property shall be an array of references of type Endpoint that cannot be used in a zone if this endpoint is used in a zone.", + "longDescription": "This property shall contain an array of links of the Endpoint type that cannot be used in a zone if this endpoint is in a zone.", "readonly": true, "type": "array" }, "MutuallyExclusiveEndpoints@odata.count": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/count" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/count" }, "NetworkDeviceFunction": { - "description": "When NetworkDeviceFunction resources are present, this array contains references to the network device function that connect to this endpoint.", + "description": "When NetworkDeviceFunction Resources are present, this array contains links to the network device functions that connect to this endpoint.", "items": { "$ref": "http://redfish.dmtf.org/schemas/v1/NetworkDeviceFunction.json#/definitions/NetworkDeviceFunction" }, - "longDescription": "The value of this property shall be a reference to a NetworkDeviceFunction resource, with which this endpoint is associated.", + "longDescription": "This property shall contain a link to a NetworkDeviceFunction Resource, with which this endpoint is associated.", "readonly": true, "type": "array", "versionAdded": "v1_1_0" }, "NetworkDeviceFunction@odata.count": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/count" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/count" }, "Oem": { "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem", - "description": "Oem extension object.", - "longDescription": "This object represents the Oem property. All values for resources described by this schema shall comply to the requirements as described in the Redfish specification." + "description": "The OEM extension property.", + "longDescription": "This property shall contain the OEM extensions. All values for properties contained in this object shall conform to the Redfish Specification-described requirements." }, "Ports": { - "description": "An array of references to the the physical ports associated with this endpoint.", + "description": "An array of links to the physical ports associated with this endpoint.", "items": { "$ref": "http://redfish.dmtf.org/schemas/v1/Port.json#/definitions/Port" }, - "longDescription": "The value of this property shall be an array of references of type Port that are utilized by this endpoint.", + "longDescription": "This property shall contain an array of links of the Port type that are utilized by this endpoint.", "readonly": true, "type": "array" }, "Ports@odata.count": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/count" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/count" } }, "type": "object" }, "OemActions": { "additionalProperties": true, - "description": "The available OEM specific actions for this resource.", - "longDescription": "This type shall contain any additional OEM actions for this resource.", + "description": "The available OEM-specific actions for this Resource.", + "longDescription": "This type shall contain the available OEM-specific actions for this Resource.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -506,7 +454,7 @@ "description": "A PCI ID.", "longDescription": "This type shall describe a PCI ID.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -521,8 +469,8 @@ }, "properties": { "ClassCode": { - "description": "The Class Code, Subclass code, and Programming Interface code of this PCIe function.", - "longDescription": "The value of this property shall be the PCI Class Code, Subclass code, and Programming Interface code of the PCIe device function.", + "description": "The Class Code, Subclass, and Programming Interface code of this PCIe function.", + "longDescription": "This property shall contain the PCI Class Code, Subclass, and Programming Interface of the PCIe device function.", "pattern": "^0[xX](([a-fA-F]|[0-9]){2}){3}$", "readonly": true, "type": [ @@ -533,7 +481,7 @@ }, "DeviceId": { "description": "The Device ID of this PCIe function.", - "longDescription": "The value of this property shall be the PCI Subsystem Vendor ID of the PCIe device function.", + "longDescription": "This property shall contain the PCI Device ID of the PCIe device function.", "pattern": "^0[xX](([a-fA-F]|[0-9]){2}){2}$", "readonly": true, "type": [ @@ -543,7 +491,7 @@ }, "FunctionNumber": { "description": "The PCI ID of the connected entity.", - "longDescription": "The value of this property shall be the PCI Function Number of the connected PCIe entity.", + "longDescription": "This property shall contain the PCI Function Number of the connected PCIe entity.", "readonly": true, "type": [ "integer", @@ -553,7 +501,7 @@ }, "SubsystemId": { "description": "The Subsystem ID of this PCIe function.", - "longDescription": "The value of this property shall be the PCI Subsystem Vendor ID of the PCIe device function.", + "longDescription": "This property shall contain the PCI Subsystem Vendor ID of the PCIe device function.", "pattern": "^0[xX](([a-fA-F]|[0-9]){2}){2}$", "readonly": true, "type": [ @@ -563,7 +511,7 @@ }, "SubsystemVendorId": { "description": "The Subsystem Vendor ID of this PCIe function.", - "longDescription": "The value of this property shall be the PCI Subsystem Vendor ID of the PCIe device function.", + "longDescription": "This property shall contain the PCI Subsystem Vendor ID of the PCIe device function.", "pattern": "^0[xX](([a-fA-F]|[0-9]){2}){2}$", "readonly": true, "type": [ @@ -573,7 +521,7 @@ }, "VendorId": { "description": "The Vendor ID of this PCIe function.", - "longDescription": "The value of this property shall be the PCI Vendor ID of the PCIe device function.", + "longDescription": "This property shall contain the PCI Vendor ID of the PCIe device function.", "pattern": "^0[xX](([a-fA-F]|[0-9]){2}){2}$", "readonly": true, "type": [ @@ -587,5 +535,5 @@ }, "owningEntity": "DMTF", "release": "2018.3", - "title": "#Endpoint.v1_3_0.Endpoint" + "title": "#Endpoint.v1_3_2.Endpoint" } \ No newline at end of file diff --git a/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/EthernetInterface/EthernetInterface.json b/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/EthernetInterface/EthernetInterface.json index 6a106789..27c09568 100644 --- a/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/EthernetInterface/EthernetInterface.json +++ b/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/EthernetInterface/EthernetInterface.json @@ -1,14 +1,15 @@ { + "$id": "http://redfish.dmtf.org/schemas/v1/EthernetInterface.v1_5_1.json", "$ref": "#/definitions/EthernetInterface", "$schema": "http://redfish.dmtf.org/schemas/v1/redfish-schema-v1.json", - "copyright": "Copyright 2014-2018 DMTF. For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright", + "copyright": "Copyright 2014-2019 DMTF. For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright", "definitions": { "Actions": { "additionalProperties": false, - "description": "The available actions for this resource.", - "longDescription": "This type shall contain the available actions for this resource.", + "description": "The available actions for this Resource.", + "longDescription": "This type shall contain the available actions for this Resource.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -24,18 +25,37 @@ "properties": { "Oem": { "$ref": "#/definitions/OemActions", - "description": "This property contains the available OEM specific actions for this resource.", - "longDescription": "This property shall contain any additional OEM actions for this resource." + "description": "The available OEM-specific actions for this Resource.", + "longDescription": "This property shall contain the available OEM-specific actions for this Resource.", + "versionAdded": "v1_3_0" } }, "type": "object" }, + "DHCPFallback": { + "enum": [ + "Static", + "AutoConfig", + "None" + ], + "enumDescriptions": { + "AutoConfig": "Fall back to an autoconfigured address.", + "None": "Continue attempting DHCP without a fallback address.", + "Static": "Fall back to a static address specified by IPv4StaticAddresses." + }, + "enumLongDescriptions": { + "AutoConfig": "DHCP shall fall back to an address generated by the implementation.", + "None": "DHCP shall continue trying to obtain an address without falling back to a fixed address.", + "Static": "DHCP shall fall back to a static address specified by IPv4StaticAddresses." + }, + "type": "string" + }, "DHCPv4Configuration": { "additionalProperties": false, "description": "DHCPv4 configuration for this interface.", "longDescription": "This type shall describe the configuration of DHCP v4.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -50,58 +70,78 @@ }, "properties": { "DHCPEnabled": { - "description": "Determines whether DHCPv4 is enabled on this interface.", - "longDescription": "This property shall indicate whether DHCP v4 is enabled for this EthernetInterface.", + "description": "An indication of whether DHCP v4 is enabled on this Ethernet interface.", + "longDescription": "This property shall indicate whether DHCP v4 is enabled for this Ethernet interface.", "readonly": false, "type": [ "boolean", "null" - ] + ], + "versionAdded": "v1_4_0" + }, + "FallbackAddress": { + "anyOf": [ + { + "$ref": "#/definitions/DHCPFallback" + }, + { + "type": "null" + } + ], + "description": "DHCPv4 fallback address method for this interface.", + "longDescription": "This property shall contain the fallback address method of DHCPv4.", + "readonly": false, + "versionAdded": "v1_5_0" }, "UseDNSServers": { - "description": "Determines whether to use DHCPv4-supplied DNS servers.", - "longDescription": "This property shall indicate whether the interface will use DHCPv4-supplied DNS servers.", + "description": "An indication of whether this interface uses DHCP v4-supplied DNS servers.", + "longDescription": "This property shall indicate whether the interface uses DHCP v4-supplied DNS servers.", "readonly": false, "type": [ "boolean", "null" - ] + ], + "versionAdded": "v1_4_0" }, "UseDomainName": { - "description": "Determines whether to use a DHCPv4-supplied domain name.", - "longDescription": "This property shall indicate whether the interface will use a DHCPv4-supplied domain name.", + "description": "An indication of whether this interface uses a DHCP v4-supplied domain name.", + "longDescription": "This property shall indicate whether the interface uses a DHCP v4-supplied domain name.", "readonly": false, "type": [ "boolean", "null" - ] + ], + "versionAdded": "v1_4_0" }, "UseGateway": { - "description": "Determines whether to use a DHCPv4-supplied gateway.", - "longDescription": "This property shall indicate whether the interface will use a DHCPv4-supplied gateway.", + "description": "An indication of whether this interface uses a DHCP v4-supplied gateway.", + "longDescription": "This property shall indicate whether the interface uses a DHCP v4-supplied gateway.", "readonly": false, "type": [ "boolean", "null" - ] + ], + "versionAdded": "v1_4_0" }, "UseNTPServers": { - "description": "Determines whether to use DHCPv4-supplied NTP servers.", - "longDescription": "This property shall indicate whether the interface will use DHCPv4-supplied NTP servers.", + "description": "An indication of whether the interface uses DHCP v4-supplied NTP servers.", + "longDescription": "This property shall indicate whether the interface uses DHCP v4-supplied NTP servers.", "readonly": false, "type": [ "boolean", "null" - ] + ], + "versionAdded": "v1_4_0" }, "UseStaticRoutes": { - "description": "Determines whether to use DHCPv4-supplied static routes.", - "longDescription": "This property shall indicate whether the interface will use a DHCPv4-supplied static routes.", + "description": "An indication of whether the interface uses DHCP v4-supplied static routes.", + "longDescription": "This property shall indicate whether the interface uses a DHCP v4-supplied static routes.", "readonly": false, "type": [ "boolean", "null" - ] + ], + "versionAdded": "v1_4_0" } }, "type": "object" @@ -111,7 +151,7 @@ "description": "DHCPv6 configuration for this interface.", "longDescription": "This type shall describe the configuration of DHCP v6.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -135,44 +175,49 @@ } ], "description": "Determines the DHCPv6 operating mode for this interface.", - "longDescription": "This property shall control the operating mode of DHCPv6 on this interface. DHCPv6 stateful mode is used to configure addresses, and when it is enabled, stateless mode is also implicitly enabled.", - "readonly": false + "longDescription": "This property shall control the operating mode of DHCPv6 on this interface. DHCPv6 stateful mode configures addresses, and when it is enabled, stateless mode is also implicitly enabled.", + "readonly": false, + "versionAdded": "v1_4_0" }, "UseDNSServers": { - "description": "When enabled, DNS server addresses supplied through DHCPv6 stateless mode will be used.", - "longDescription": "This property shall indicate whether the interface will use DHCPv6-supplied DNS servers.", + "description": "An indication of whether the interface uses DHCP v6-supplied DNS servers.", + "longDescription": "This property shall indicate whether the interface uses DHCP v6-supplied DNS servers.", "readonly": false, "type": [ "boolean", "null" - ] + ], + "versionAdded": "v1_4_0" }, "UseDomainName": { - "description": "When enabled, the domain name supplied through DHCPv6 stateless mode will be used.", - "longDescription": "This property shall indicate whether the interface will use a domain name supplied through DHCPv6 stateless mode.", + "description": "An indication of whether the interface uses a domain name supplied through DHCP v6 stateless mode.", + "longDescription": "This property shall indicate whether the interface uses a domain name supplied through DHCP v6 stateless mode.", "readonly": false, "type": [ "boolean", "null" - ] + ], + "versionAdded": "v1_4_0" }, "UseNTPServers": { - "description": "When enabled, NTP server addresses supplied through DHCPv6 stateless mode will be used.", - "longDescription": "This property shall indicate whether the interface will use DHCPv6-supplied NTP servers.", + "description": "An indication of whether the interface uses DHCP v6-supplied NTP servers.", + "longDescription": "This property shall indicate whether the interface uses DHCP v6-supplied NTP servers.", "readonly": false, "type": [ "boolean", "null" - ] + ], + "versionAdded": "v1_4_0" }, "UseRapidCommit": { - "description": "Determines whether to use DHCPv6 rapid commit mode for stateful mode address assignments. Do not enable in networks where more than one DHCPv6 server is configured to provide address assignments.", - "longDescription": "This property shall indicate whether the interface will use DHCPv6 rapid commit mode for stateful mode address assignments.", + "description": "An indication of whether the interface uses DHCP v6 rapid commit mode for stateful mode address assignments. Do not enable this option in networks where more than one DHCP v6 server is configured to provide address assignments.", + "longDescription": "This property shall indicate whether the interface uses DHCP v6 rapid commit mode for stateful mode address assignments.", "readonly": false, "type": [ "boolean", "null" - ] + ], + "versionAdded": "v1_4_0" } }, "type": "object" @@ -190,17 +235,17 @@ }, "enumLongDescriptions": { "Disabled": "DHCPv6 shall be disabled for this interface.", - "Stateful": "DHCPv6 shall operate in stateful mode on this interface. DHCPv6 stateful mode is used to configure addresses, and when it is enabled, stateless mode is also implicitly enabled.", - "Stateless": "DHCPv6 shall operate in stateless mode on this interface. DHCPv6 stateless mode allows configuring the interface using DHCP options but does not configure addresses. It is always enabled by default whenever DHCPv6 Stateful mode is also enabled." + "Stateful": "DHCPv6 shall operate in stateful mode on this interface. DHCPv6 stateful mode configures addresses, and when it is enabled, stateless mode is also implicitly enabled.", + "Stateless": "DHCPv6 shall operate in stateless mode on this interface. DHCPv6 stateless mode allows configuring the interface using DHCP options but does not configure addresses. It is always enabled by default whenever DHCPv6 Stateful mode is also enabled." }, "type": "string" }, "EthernetInterface": { "additionalProperties": false, - "description": "The EthernetInterface schema represents a single, logical ethernet interface or network interface controller (NIC).", - "longDescription": "This resource shall be used to represent NIC resources as part of the Redfish specification.", + "description": "The EthernetInterface schema represents a single, logical Ethernet interface or network interface controller (NIC).", + "longDescription": "This Resource contains NIC Resources as part of the Redfish Specification.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -215,25 +260,26 @@ }, "properties": { "@odata.context": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/context" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/context" }, "@odata.etag": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/etag" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/etag" }, "@odata.id": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/id" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/id" }, "@odata.type": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/type" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/type" }, "Actions": { "$ref": "#/definitions/Actions", - "description": "The available actions for this resource.", - "longDescription": "The Actions property shall contain the available actions for this resource." + "description": "The available actions for this Resource.", + "longDescription": "This property shall contain the available actions for this Resource.", + "versionAdded": "v1_3_0" }, "AutoNeg": { - "description": "This indicates if the speed and duplex are automatically negotiated and configured on this interface.", - "longDescription": "The value of this property shall be true if auto negotiation of speed and duplex is enabled on this interface and false if it is disabled.", + "description": "An indication of whether the speed and duplex are automatically negotiated and configured on this interface.", + "longDescription": "This property shall indicate whether the speed and duplex are automatically negotiated and configured on this interface.", "readonly": false, "type": [ "boolean", @@ -241,28 +287,16 @@ ] }, "DHCPv4": { - "anyOf": [ - { - "$ref": "#/definitions/DHCPv4Configuration" - }, - { - "type": "null" - } - ], + "$ref": "#/definitions/DHCPv4Configuration", "description": "DHCPv4 configuration for this interface.", - "longDescription": "This property shall contain the configuration of DHCP v4." + "longDescription": "This property shall contain the configuration of DHCP v4.", + "versionAdded": "v1_4_0" }, "DHCPv6": { - "anyOf": [ - { - "$ref": "#/definitions/DHCPv6Configuration" - }, - { - "type": "null" - } - ], + "$ref": "#/definitions/DHCPv6Configuration", "description": "DHCPv6 configuration for this interface.", - "longDescription": "This property shall contain the configuration of DHCP v6." + "longDescription": "This property shall contain the configuration of DHCP v6.", + "versionAdded": "v1_4_0" }, "Description": { "anyOf": [ @@ -276,8 +310,8 @@ "readonly": true }, "FQDN": { - "description": "This is the complete, fully qualified domain name obtained by DNS for this interface.", - "longDescription": "The value of this property shall be the fully qualified domain name for this interface.", + "description": "The complete, fully qualified domain name that DNS obtains for this interface.", + "longDescription": "This property shall contain the fully qualified domain name that DNS obtains for this interface.", "readonly": false, "type": [ "string", @@ -285,8 +319,8 @@ ] }, "FullDuplex": { - "description": "This indicates if the interface is in Full Duplex mode or not.", - "longDescription": "The value of this property shall represent the duplex status of the Ethernet connection on this interface.", + "description": "An indication of whether full-duplex mode is enabled on the Ethernet connection for this interface.", + "longDescription": "This property shall indicate whether full-duplex mode is enabled on the Ethernet connection for this interface.", "readonly": false, "type": [ "boolean", @@ -294,8 +328,8 @@ ] }, "HostName": { - "description": "The DNS Host Name, without any domain information.", - "longDescription": "The value of this property shall be host name for this interface.", + "description": "The DNS host name, without any domain information.", + "longDescription": "This property shall contain DNS host name for this interface.", "readonly": false, "type": [ "string", @@ -307,36 +341,51 @@ "items": { "$ref": "http://redfish.dmtf.org/schemas/v1/IPAddresses.json#/definitions/IPv4Address" }, - "longDescription": "The value of this property shall be an array of objects used to represent the IPv4 connection characteristics for this interface. It is recommended that this propety be regarded as read-only, with configuration of static addresses performed by updating the values within IPv4StaticAddessses. Services may reject updates to this array for this reason.", + "longDescription": "This property shall contain an array of objects that represent the IPv4 connection characteristics for this interface. It is recommended that this property be regarded as read-only with configuration of static addresses performed by updating the values within IPv4StaticAddessses. Services may reject updates to this array for this reason.", "type": "array" }, "IPv4StaticAddresses": { "description": "The IPv4 static addresses assigned to this interface.", "items": { - "$ref": "http://redfish.dmtf.org/schemas/v1/IPAddresses.json#/definitions/IPv4Address" + "anyOf": [ + { + "$ref": "http://redfish.dmtf.org/schemas/v1/IPAddresses.json#/definitions/IPv4Address" + }, + { + "type": "null" + } + ] }, - "longDescription": "The value of this property shall be an array of objects used to represent all IPv4 static addresses assigned (but not necessarily in use) to this interface. Addresses in use by this interface shall also appear in the IPv4Addresses property.", - "type": "array" + "longDescription": "This property shall contain an array of objects that represent all IPv4 static addresses assigned to, but not necessarily in use by, this interface. The IPv4Addresses property shall also list the addresses that this interface uses .", + "type": "array", + "versionAdded": "v1_4_0" }, "IPv6AddressPolicyTable": { - "description": "An array representing the RFC 6724 Address Selection Policy Table.", + "description": "An array that represents the RFC6724-defined address selection policy table.", "items": { - "$ref": "#/definitions/IPv6AddressPolicyEntry" + "anyOf": [ + { + "$ref": "#/definitions/IPv6AddressPolicyEntry" + }, + { + "type": "null" + } + ] }, - "longDescription": "The value of this property shall be an array of objects used to represent the Address Selection Policy Table as defined in RFC 6724.", + "longDescription": "This property shall contain an array of objects that represent the RFC6724-defined address selection policy table.", "type": "array" }, "IPv6Addresses": { - "description": "Enumerates in an array all of the currently assigned IPv6 addresses on this interface.", + "description": "An array of the currently assigned IPv6 addresses on this interface.", "items": { "$ref": "http://redfish.dmtf.org/schemas/v1/IPAddresses.json#/definitions/IPv6Address" }, - "longDescription": "The value of this property shall be an array of objects used to represent the IPv6 connection characteristics for this interface.", + "longDescription": "This property shall contain an array of objects that represent the IPv6 connection characteristics for this interface.", "type": "array" }, "IPv6DefaultGateway": { - "description": "This is the IPv6 default gateway address that is currently in use on this interface.", - "longDescription": "The value of this property shall be the current IPv6 default gateway address that is in use on this interface.", + "description": "The IPv6 default gateway address in use on this interface.", + "longDescription": "This property shall contain the current IPv6 default gateway address in use on this interface.", "readonly": true, "type": [ "string", @@ -344,28 +393,43 @@ ] }, "IPv6StaticAddresses": { - "description": "Represents in an array all of the IPv6 static addresses to be assigned on this interface.", + "description": "An array of the IPv6 static addresses to assign on this interface.", "items": { - "$ref": "http://redfish.dmtf.org/schemas/v1/IPAddresses.json#/definitions/IPv6StaticAddress" + "anyOf": [ + { + "$ref": "http://redfish.dmtf.org/schemas/v1/IPAddresses.json#/definitions/IPv6StaticAddress" + }, + { + "type": "null" + } + ] }, - "longDescription": "The value of this property shall be an array of objects used to represent the IPv6 static connection characteristics for this interface.", + "longDescription": "This property shall contain an array of objects that represent the IPv6 static connection characteristics for this interface.", "type": "array" }, "IPv6StaticDefaultGateways": { "description": "The IPv6 static default gateways for this interface.", "items": { - "$ref": "http://redfish.dmtf.org/schemas/v1/IPAddresses.json#/definitions/IPv6GatewayStaticAddress" + "anyOf": [ + { + "$ref": "http://redfish.dmtf.org/schemas/v1/IPAddresses.json#/definitions/IPv6GatewayStaticAddress" + }, + { + "type": "null" + } + ] }, "longDescription": "The values in this array shall represent the IPv6 static default gateway addresses for this interface.", - "type": "array" + "type": "array", + "versionAdded": "v1_4_0" }, "Id": { "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Id", "readonly": true }, "InterfaceEnabled": { - "description": "This indicates whether this interface is enabled.", - "longDescription": "The value of this property shall be a boolean indicating whether this interface is enabled.", + "description": "An indication of whether this interface is enabled.", + "longDescription": "This property shall indicate whether this interface is enabled.", "readonly": false, "type": [ "boolean", @@ -381,14 +445,16 @@ "type": "null" } ], - "description": "The link status of this interface (port).", - "longDescription": "The value of this property shall be the link status of this interface (port).", - "readonly": true + "description": "The link status of this interface, or port.", + "longDescription": "This property shall contain the link status of this interface, or port.", + "readonly": true, + "versionAdded": "v1_1_0" }, "Links": { "$ref": "#/definitions/Links", - "description": "Contains references to other resources that are related to this resource.", - "longDescription": "The Links property, as described by the Redfish Specification, shall contain references to resources that are related to, but not contained by (subordinate to), this resource." + "description": "The links to other Resources that are related to this Resource.", + "longDescription": "The Redfish Specification-described Links Property shall contain links to Resources related to but not subordinate to this Resource.", + "versionAdded": "v1_1_0" }, "MACAddress": { "anyOf": [ @@ -399,13 +465,13 @@ "type": "null" } ], - "description": "This is the currently configured MAC address of the (logical port) interface.", - "longDescription": "The value of this property shall be the effective current MAC Address of this interface. If an assignable MAC address is not supported, this is a read only alias of the PermanentMACAddress.", + "description": "The currently configured MAC address of the interface, or logical port.", + "longDescription": "This property shall contain the effective current MAC address of this interface. If an assignable MAC address is not supported, this value is a read-only alias of the PermanentMACAddress.", "readonly": false }, "MTUSize": { - "description": "This is the currently configured Maximum Transmission Unit (MTU) in bytes on this interface.", - "longDescription": "The value of this property shall be the size in bytes of largest Protocol Data Unit (PDU) that can be passed in an Ethernet (MAC) frame on this interface.", + "description": "The currently configured maximum transmission unit (MTU), in bytes, on this interface.", + "longDescription": "This property shall contain the size, in bytes, of largest protocol data unit (PDU) that can be passed in an Ethernet (MAC) frame on this interface.", "readonly": false, "type": [ "integer", @@ -413,8 +479,8 @@ ] }, "MaxIPv6StaticAddresses": { - "description": "This indicates the maximum number of Static IPv6 addresses that can be configured on this interface.", - "longDescription": "The value of this property shall indicate the number of array items supported by IPv6StaticAddresses.", + "description": "The maximum number of static IPv6 addresses that can be configured on this interface.", + "longDescription": "This property shall indicate the number of array items supported by IPv6StaticAddresses, or the maximum number of static IPv6 addresses that can be configured on this interface.", "readonly": true, "type": [ "integer", @@ -426,18 +492,18 @@ "readonly": true }, "NameServers": { - "description": "This represents DNS name servers that are currently in use on this interface.", + "description": "The DNS servers in use on this interface.", "items": { "type": "string" }, - "longDescription": "The value of this property shall be the DNS name servers used on this interface.", + "longDescription": "This property shall contain the DNS servers in use on this interface.", "readonly": true, "type": "array" }, "Oem": { "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem", - "description": "This is the manufacturer/provider specific extension moniker used to divide the Oem object into sections.", - "longDescription": "The value of this string shall be of the format for the reserved word *Oem*." + "description": "The OEM extension property.", + "longDescription": "This property shall contain the OEM extensions. All values for properties that this object contains shall conform to the Redfish Specification-described requirements." }, "PermanentMACAddress": { "anyOf": [ @@ -448,13 +514,13 @@ "type": "null" } ], - "description": "This is the permanent MAC address assigned to this interface (port).", - "longDescription": "The value of this property shall be the Permanent MAC Address of this interface (port). This value is typically programmed during the manufacturing time. This address is not assignable.", + "description": "The permanent MAC address assigned to this interface, or port.", + "longDescription": "This property shall contain the permanent MAC address of this interface, or port. Typically, this value is programmed during manufacturing. This address is not assignable.", "readonly": true }, "SpeedMbps": { - "description": "This is the current speed in Mbps of this interface.", - "longDescription": "The value of this property shall be the link speed of the interface in Mbps.", + "description": "The current speed, in Mbps, of this interface.", + "longDescription": "This property shall contain the link speed of the interface, in Mbps. This property shall be writable only when the AutoNeg property is `false`.", "readonly": false, "type": [ "integer", @@ -463,34 +529,32 @@ "units": "Mbit/s" }, "StatelessAddressAutoConfig": { - "anyOf": [ - { - "$ref": "#/definitions/StatelessAddressAutoConfiguration" - }, - { - "type": "null" - } - ], - "description": "Stateless Address Automatic Configuration (SLAAC) parameters for this interface.", - "longDescription": "This object shall contain the IPv4 and IPv6 Stateless Address Automatic Configuration (SLAAC) properties for this interface." + "$ref": "#/definitions/StatelessAddressAutoConfiguration", + "description": "Stateless address autoconfiguration (SLAAC) parameters for this interface.", + "longDescription": "This object shall contain the IPv4 and IPv6 stateless address automatic configuration (SLAAC) properties for this interface.", + "versionAdded": "v1_4_0" }, "StaticNameServers": { - "description": "A statically defined set of DNS server IP addresses (both IPv4 and IPv6).", + "description": "The statically-defined set of DNS server IPv4 and IPv6 addresses.", "items": { - "type": "string" + "type": [ + "string", + "null" + ] }, - "longDescription": "A statically defined set of DNS server IP addresses to be used when DHCP provisioning is not in enabled for name server configuration. As an implementation option they may also be used in addition to DHCP provided addresses, or in cases where the DHCP server provides no DNS assigments.", + "longDescription": "This property shall contain the statically-defined set of DNS server IP addresses to use when DHCP provisioning is not enabled for name server configuration. As an implementation option, they may also be used in addition to DHCP-provided addresses, or in cases where the DHCP server provides no DNS assigments.", "readonly": false, - "type": "array" + "type": "array", + "versionAdded": "v1_4_0" }, "Status": { "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Status", - "description": "This property describes the status and health of the resource and its children.", - "longDescription": "This property shall contain any status or health properties of the resource." + "description": "The status and health of the Resource and its subordinate or dependent Resources.", + "longDescription": "This property shall contain any status or health properties of the Resource." }, "UefiDevicePath": { "description": "The UEFI device path for this interface.", - "longDescription": "The value of this property shall be the UEFI device path to the device which implements this interface (port).", + "longDescription": "This property shall contain the UEFI device path to the device that implements this interface, or port.", "readonly": true, "type": [ "string", @@ -498,21 +562,14 @@ ] }, "VLAN": { - "anyOf": [ - { - "$ref": "http://redfish.dmtf.org/schemas/v1/VLanNetworkInterface.json#/definitions/VLAN" - }, - { - "type": "null" - } - ], - "description": "If this Network Interface supports more than one VLAN, this property is not present. VLANs collections appear in the Link section of this resource.", - "longDescription": "The value of this property shall be the VLAN for this interface. If this interface supports more than one VLAN, the VLAN property shall not be present and the VLANS collection link shall be present instead." + "$ref": "http://redfish.dmtf.org/schemas/v1/VLanNetworkInterface.json#/definitions/VLAN", + "description": "If this network interface supports more than one VLAN, this property is absent. VLAN collections appear in the Link section of this Resource.", + "longDescription": "This property shall contain the VLAN for this interface. If this interface supports more than one VLAN, the VLAN property shall be absent and, instead, the VLAN collection link shall be present." }, "VLANs": { "$ref": "http://redfish.dmtf.org/schemas/v1/VLanNetworkInterfaceCollection.json#/definitions/VLanNetworkInterfaceCollection", - "description": "This is a reference to a collection of VLANs and is only used if the interface supports more than one VLANs.", - "longDescription": "The value of this property shall reference a collection of VLAN resources. If this property is used, the VLANEnabled and VLANId property shall not be used.", + "description": "The link to a collection of VLANs, which applies only if the interface supports more than one VLAN. If this property applies, the VLANEnabled and VLANId properties do not apply.", + "longDescription": "This property shall contain a link to a collection of VLAN Resources, which applies only if the interface supports more than one VLAN. If this property is present, the VLANEnabled and VLANId properties shall not be present.", "readonly": true } }, @@ -526,10 +583,10 @@ }, "IPv6AddressPolicyEntry": { "additionalProperties": false, - "description": "A entry in the RFC 6724 Address Selection Policy Table.", - "longDescription": "This type shall describe and entry in the Address Selection Policy Table as defined in RFC 6724.", + "description": "The entry in the RFC6724-defined address selection policy table.", + "longDescription": "This type shall describe an entry in the RFC6724-defined address selection policy table.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -544,8 +601,8 @@ }, "properties": { "Label": { - "description": "The IPv6 Label (as defined in RFC 6724 section 2.1).", - "longDescription": "This property shall contain the IPv6 Label value for this table entry as defined in RFC 6724 section 2.1.", + "description": "The IPv6 label, as defined in RFC6724, section 2.1.", + "longDescription": "This property shall contain the IPv6 label value for this table entry, as defined in RFC6724, section 2.1.", "maximum": 100, "minimum": 0, "readonly": false, @@ -555,8 +612,8 @@ ] }, "Precedence": { - "description": "The IPv6 Precedence (as defined in RFC 6724 section 2.1.", - "longDescription": "This property shall contain the IPv6 Precedence value for this table entry as defined in RFC 6724 section 2.1.", + "description": "The IPv6 precedence, as defined in RFC6724, section 2.1.", + "longDescription": "This property shall contain the IPv6 precedence value for this table entry, as defined in RFC6724, section 2.1.", "maximum": 100, "minimum": 1, "readonly": false, @@ -566,8 +623,8 @@ ] }, "Prefix": { - "description": "The IPv6 Address Prefix (as defined in RFC 6724 section 2.1).", - "longDescription": "This property shall contain the IPv6 Address Prefix for this table entry as defined in RFC 6724 section 2.1.", + "description": "The IPv6 address prefix, as defined in RFC6724, section 2.1.", + "longDescription": "This property shall contain the IPv6 address prefix for this table entry, as defined in RFC6724, section 2.1.", "readonly": false, "type": [ "string", @@ -584,18 +641,18 @@ "LinkDown" ], "enumDescriptions": { - "LinkDown": "There is no link on this interface, but the interface is connected.", + "LinkDown": "No link is detected on this interface, but the interface is connected.", "LinkUp": "The link is available for communication on this interface.", - "NoLink": "There is no link or connection detected on this interface." + "NoLink": "No link or connection is detected on this interface." }, "type": "string" }, "Links": { "additionalProperties": false, - "description": "Contains references to other resources that are related to this resource.", - "longDescription": "This type, as described by the Redfish Specification, shall contain references to resources that are related to, but not contained by (subordinate to), this resource.", + "description": "The links to other Resources that are related to this Resource.", + "longDescription": "The Redfish Specification-described type shall contain links to Resources related to but not subordinate to this Resource.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -611,32 +668,35 @@ "properties": { "Chassis": { "$ref": "http://redfish.dmtf.org/schemas/v1/Chassis.json#/definitions/Chassis", - "description": "A reference to the Chassis which contains this Ethernet Interface.", - "longDescription": "The value of this property shall be a reference to a resource of type Chassis that represent the physical container associated with this Ethernet Interface.", - "readonly": true + "description": "The link to the chassis that contains this Ethernet interface.", + "longDescription": "This property shall contain a link to a Resource of type Chassis that represent the physical container associated with this Ethernet interface.", + "readonly": true, + "versionAdded": "v1_3_0" }, "Endpoints": { - "description": "An array of references to the endpoints that connect to this ethernet interface.", + "description": "An array of links to the endpoints that connect to this Ethernet interface.", "items": { "$ref": "http://redfish.dmtf.org/schemas/v1/Endpoint.json#/definitions/Endpoint" }, - "longDescription": "The value of this property shall be a reference to the resources that this ethernet interface is associated with and shall reference a resource of type Endpoint.", + "longDescription": "This property shall contain a link to the Resources of the Endpoint type with which this Ethernet interface is associated.", "readonly": true, - "type": "array" + "type": "array", + "versionAdded": "v1_1_0" }, "Endpoints@odata.count": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/count" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/count" }, "HostInterface": { "$ref": "http://redfish.dmtf.org/schemas/v1/HostInterface.json#/definitions/HostInterface", - "description": "This is a reference to a Host Interface that is associated with this Ethernet Interface.", - "longDescription": "The value of this property shall be a reference to a resource of type HostInterface which represents the interface used by a host to communicate with a Manager.", - "readonly": true + "description": "The link to a Host Interface that is associated with this Ethernet interface.", + "longDescription": "This property shall contain a link to a Resource of type HostInterface that represents the interface that a host uses to communicate with a manager.", + "readonly": true, + "versionAdded": "v1_2_0" }, "Oem": { "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem", - "description": "Oem extension object.", - "longDescription": "This object represents the Oem property. All values for resources described by this schema shall comply to the requirements as described in the Redfish specification." + "description": "The OEM extension property.", + "longDescription": "This property shall contain the OEM extensions. All values for properties contained in this object shall conform to the Redfish Specification-described requirements." } }, "type": "object" @@ -647,10 +707,10 @@ }, "OemActions": { "additionalProperties": true, - "description": "The available OEM specific actions for this resource.", - "longDescription": "This type shall contain any additional OEM actions for this resource.", + "description": "The available OEM-specific actions for this Resource.", + "longDescription": "This type shall contain the available OEM-specific actions for this Resource.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -668,10 +728,10 @@ }, "StatelessAddressAutoConfiguration": { "additionalProperties": false, - "description": "Stateless Address Automatic Configuration (SLAAC) parameters for this interface.", - "longDescription": "This type shall describe the IPv4 and IPv6 Stateless Address Automatic Configuration (SLAAC) for this interface.", + "description": "Stateless address autoconfiguration (SLAAC) parameters for this interface.", + "longDescription": "This type shall describe the IPv4 and IPv6 stateless address autoconfiguration (SLAAC) for this interface.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -686,27 +746,30 @@ }, "properties": { "IPv4AutoConfigEnabled": { - "description": "Indicates whether IPv4 SLAAC is enabled for this interface.", - "longDescription": "This property shall indicate whether IPv4 Stateless Address Auto-Configuration (SLAAC) is enabled for this interface.", + "description": "An indication of whether IPv4 stateless address autoconfiguration (SLAAC) is enabled for this interface.", + "longDescription": "This property shall indicate whether IPv4 stateless address autoconfiguration (SLAAC) is enabled for this interface.", "readonly": false, "type": [ "boolean", "null" - ] + ], + "versionAdded": "v1_4_0" }, "IPv6AutoConfigEnabled": { - "description": "Indicates whether IPv6 SLAAC is enabled for this interface.", - "longDescription": "This property shall indicate whether IPv6 Stateless Address Auto-Configuration (SLAAC) is enabled for this interface.", + "description": "An indication of whether IPv6 stateless address autoconfiguration (SLAAC) is enabled for this interface.", + "longDescription": "This property shall indicate whether IPv6 stateless address autoconfiguration (SLAAC) is enabled for this interface.", "readonly": false, "type": [ "boolean", "null" - ] + ], + "versionAdded": "v1_4_0" } }, "type": "object" } }, "owningEntity": "DMTF", - "title": "#EthernetInterface.v1_4_1.EthernetInterface" + "release": "2019.1", + "title": "#EthernetInterface.v1_5_1.EthernetInterface" } \ No newline at end of file diff --git a/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/Event/Event.json b/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/Event/Event.json index 9c76636c..f834372f 100644 --- a/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/Event/Event.json +++ b/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/Event/Event.json @@ -1,15 +1,15 @@ { - "$id": "http://redfish.dmtf.org/schemas/v1/Event.v1_3_1.json", + "$id": "http://redfish.dmtf.org/schemas/v1/Event.v1_4_1.json", "$ref": "#/definitions/Event", "$schema": "http://redfish.dmtf.org/schemas/v1/redfish-schema-v1.json", - "copyright": "Copyright 2014-2018 DMTF. For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright", + "copyright": "Copyright 2014-2019 DMTF. For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright", "definitions": { "Actions": { "additionalProperties": false, - "description": "The available actions for this resource.", - "longDescription": "This type shall contain the available actions for this resource.", + "description": "The available actions for this Resource.", + "longDescription": "This type shall contain the available actions for this Resource.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -25,8 +25,8 @@ "properties": { "Oem": { "$ref": "#/definitions/OemActions", - "description": "This property contains the available OEM specific actions for this resource.", - "longDescription": "This property shall contain any additional OEM actions for this resource.", + "description": "The available OEM-specific actions for this Resource.", + "longDescription": "This property shall contain the available OEM-specific actions for this Resource.", "versionAdded": "v1_2_0" } }, @@ -34,10 +34,10 @@ }, "Event": { "additionalProperties": false, - "description": "The Event schema describes the JSON payload received by an Event Destination (which has subscribed to event notification) when events occurs. This resource contains data about event(s), including descriptions, severity and MessageId reference to a Message Registry that can be accessed for further information.", - "longDescription": "This resource shall be used to represent an event for a Redfish implementation.", + "description": "The Event schema describes the JSON payload received by an Event Destination, which has subscribed to event notification, when events occur. This Resource contains data about events, including descriptions, severity, and a MessageId link to a Message Registry that can be accessed for further information.", + "longDescription": "This Resource contains an event for a Redfish implementation.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -52,26 +52,20 @@ }, "properties": { "@odata.context": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/context" - }, - "@odata.etag": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/etag" - }, - "@odata.id": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/id" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/context" }, "@odata.type": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/type" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/type" }, "Actions": { "$ref": "#/definitions/Actions", - "description": "The available actions for this resource.", - "longDescription": "The Actions property shall contain the available actions for this resource.", + "description": "The available actions for this Resource.", + "longDescription": "This property shall contain the available actions for this Resource.", "versionAdded": "v1_2_0" }, "Context": { "description": "A context can be supplied at subscription time. This property is the context value supplied by the subscriber.", - "longDescription": "This property shall contain a client supplied context for the Event Destination to which this event is being sent.", + "longDescription": "This property shall contain a client supplied context for the event destination to which this event is being sent.", "readonly": true, "type": "string", "versionAdded": "v1_1_0" @@ -89,15 +83,15 @@ }, "Events": { "autoExpand": true, - "description": "Each event in this array has a set of properties that describe the event. Since this is an array, more than one event can be sent simultaneously.", + "description": "Each event in this array has a set of properties that describe the event. Because this is an array, more than one event can be sent simultaneously.", "items": { "$ref": "#/definitions/EventRecord" }, - "longDescription": "The value of this resource shall be an array of Event objects used to represent the occurrence of one or more events.", + "longDescription": "This property shall contain an array of Event objects that represent the occurrence of one or more events.", "type": "array" }, "Events@odata.count": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/count" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/count" }, "Id": { "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Id", @@ -109,13 +103,12 @@ }, "Oem": { "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem", - "description": "This is the manufacturer/provider specific extension moniker used to divide the Oem object into sections.", - "longDescription": "The value of this string shall be of the format for the reserved word *Oem*." + "description": "The OEM extension property.", + "longDescription": "This property shall contain the OEM extensions. All values for properties that this object contains shall conform to the Redfish Specification-described requirements." } }, "required": [ "Events", - "@odata.id", "@odata.type", "Id", "Name" @@ -125,7 +118,7 @@ "EventRecord": { "additionalProperties": false, "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -139,89 +132,90 @@ } }, "properties": { - "@odata.id": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/id" - }, "Actions": { "$ref": "#/definitions/EventRecordActions", - "description": "The available actions for this resource.", - "longDescription": "The Actions property shall contain the available actions for this resource.", + "description": "The available actions for this Resource.", + "longDescription": "This property shall contain the available actions for this Resource.", "versionAdded": "v1_2_0" }, "Context": { + "deprecated": "Events are triggered independently from subscriptions to those events. This property has been deprecated in favor of Context found at the root level of the object.", "description": "A context can be supplied at subscription time. This property is the context value supplied by the subscriber.", - "longDescription": "This property shall contain a client supplied context for the Event Destination to which this event is being sent.", + "longDescription": "This property shall contain a client supplied context for the event destination to which this event is being sent.", "readonly": true, - "type": "string" + "type": "string", + "versionDeprecated": "v1_1_0" }, "EventGroupId": { - "description": "This value is the identifier used to correlate events that came from the same cause.", - "longDescription": "The value of this property shall indicate that events are related and shall have the same value in the case where multiple Event messages are produced by the same root cause. Implementations shall use separate values for events with separate root cause. There shall not be ordering of events implied by the value of this property.", + "description": "The identifier that correlates events with the same root cause. If `0`, no other event is related to this event.", + "longDescription": "This property shall indicate that events are related and shall have the same value when multiple event messages are produced by the same root cause. Implementations shall use separate values for events with a separate root cause. This property value shall not imply an ordering of events. The `0` value shall indicate that this event is not grouped with any other event.", "readonly": true, "type": "integer", "versionAdded": "v1_3_0" }, "EventId": { - "description": "This is a unique instance identifier of an event.", - "longDescription": "The value of this property shall indicate a unique identifier for the event, the format of which is implementation dependent.", + "description": "The unique instance identifier of an event.", + "longDescription": "This property shall indicate a unique identifier for the event. The value should be a string of a positive integer, and should be generated in a sequential manner.", "readonly": true, "type": "string" }, "EventTimestamp": { - "description": "This is time the event occurred.", + "description": "The time the event occurred.", "format": "date-time", - "longDescription": "The value of this property shall indicate the time the event occurred where the value shall be consistent with the Redfish service time that is also used for the values of the Modified property.", + "longDescription": "This property shall indicate the time the event occurred where the value shall be consistent with the Redfish Service time that is also used for the values of the Modified property.", "readonly": true, "type": "string" }, "EventType": { "$ref": "http://redfish.dmtf.org/schemas/v1/Event.json#/definitions/EventType", - "description": "This indicates the type of event sent, according to the definitions in the EventService.", - "longDescription": "The value of this property shall indicate the type of event as defined in the EventService schema.", - "readonly": true + "deprecated": "This property has been deprecated. Starting with Redfish Specification v1.6 (Event v1.3), subscriptions are based on the RegistryPrefix and ResourceType properties and not on the EventType property.", + "description": "The type of event.", + "longDescription": "This property shall indicate the type of EventService schema-defined event.", + "readonly": true, + "versionDeprecated": "v1_3_0" }, "MemberId": { - "description": "This is the identifier for the member within the collection.", - "longDescription": "The value of this string shall uniquely identify the member within the collection.", + "description": "The identifier for the member within the collection.", + "longDescription": "This property shall uniquely identify the member within the collection. For services supporting Redfish v1.6 or higher, this value shall contain the zero-based array index.", "readonly": true, "type": "string" }, "Message": { - "description": "This is the human readable message, if provided.", - "longDescription": "This property shall contain an optional human readable message.", + "description": "The human-readable event message.", + "longDescription": "This property shall contain a human-readable event message.", "readonly": true, "type": "string" }, "MessageArgs": { - "description": "This array of message arguments are substituted for the arguments in the message when looked up in the message registry.", + "description": "An array of message arguments that are substituted for the arguments in the message when looked up in the Message Registry.", "items": { "type": "string" }, - "longDescription": "This property has the same semantics as the MessageArgs property in the Event schema for Redfish.", + "longDescription": "This property shall contain an array of message arguments that are substituted for the arguments in the message when looked up in the Message Registry. It has the same semantics as the MessageArgs property in the Redfish Event schema.", "readonly": true, "type": "array" }, "MessageId": { - "description": "This is the key for this message which can be used to look up the message in a message registry.", - "longDescription": "This property shall be a key into message registry as described in the Redfish specification.", + "description": "The key used to find the message in a Message Registry.", + "longDescription": "This property shall contain a MessageId, as defined in the Redfish Specification.", "pattern": "^[A-Za-z0-9]+\\.\\d+\\.\\d+\\.[A-Za-z0-9.]+$", "readonly": true, "type": "string" }, "Oem": { "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem", - "description": "This is the manufacturer/provider specific extension moniker used to divide the Oem object into sections.", - "longDescription": "The value of this string shall be of the format for the reserved word *Oem*." + "description": "The OEM extension property.", + "longDescription": "This property shall contain the OEM extensions. All values for properties that this object contains shall conform to the Redfish Specification-described requirements." }, "OriginOfCondition": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/idRef", - "description": "This indicates the resource that originated the condition that caused the event to be generated.", - "longDescription": "The value of this property shall contain a pointer consistent with JSON pointer syntax to the resource that caused the event to be generated.", + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/idRef", + "description": "The Resource that originated the condition that caused the event to be generated.", + "longDescription": "This property shall contain a pointer consistent with JSON Pointer syntax to the Resource that caused the event to be generated.", "readonly": true }, "Severity": { - "description": "This is the severity of the event.", - "longDescription": "The value of this property shall be the severity of the event, as defined in the Status section of the Redfish specification.", + "description": "The severity of the event.", + "longDescription": "This property shall contain the severity of the event, as defined in the Status section of the Redfish Specification.", "readonly": true, "type": "string" } @@ -229,17 +223,16 @@ "required": [ "EventType", "MessageId", - "@odata.id", "MemberId" ], "type": "object" }, "EventRecordActions": { "additionalProperties": false, - "description": "The available actions for this resource.", - "longDescription": "This type shall contain the available actions for this resource.", + "description": "The available actions for this Resource.", + "longDescription": "This type shall contain the available actions for this Resource.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -255,8 +248,8 @@ "properties": { "Oem": { "$ref": "#/definitions/EventRecordOemActions", - "description": "This property contains the available OEM specific actions for this resource.", - "longDescription": "This property shall contain any additional OEM actions for this resource.", + "description": "The available OEM-specific actions for this Resource.", + "longDescription": "This property shall contain the available OEM-specific actions for this Resource.", "versionAdded": "v1_2_0" } }, @@ -264,10 +257,10 @@ }, "EventRecordOemActions": { "additionalProperties": true, - "description": "The available OEM specific actions for this resource.", - "longDescription": "This type shall contain any additional OEM actions for this resource.", + "description": "The available OEM-specific actions for this Resource.", + "longDescription": "This type shall contain the available OEM-specific actions for this Resource.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -285,10 +278,10 @@ }, "OemActions": { "additionalProperties": true, - "description": "The available OEM specific actions for this resource.", - "longDescription": "This type shall contain any additional OEM actions for this resource.", + "description": "The available OEM-specific actions for this Resource.", + "longDescription": "This type shall contain the available OEM-specific actions for this Resource.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -306,6 +299,6 @@ } }, "owningEntity": "DMTF", - "release": "2018.2", - "title": "#Event.v1_3_1.Event" + "release": "2019.1", + "title": "#Event.v1_4_1.Event" } \ No newline at end of file diff --git a/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/EventDestination/EventDestination.json b/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/EventDestination/EventDestination.json index 775934ca..821b2847 100644 --- a/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/EventDestination/EventDestination.json +++ b/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/EventDestination/EventDestination.json @@ -1,14 +1,15 @@ { + "$id": "http://redfish.dmtf.org/schemas/v1/EventDestination.v1_6_0.json", "$ref": "#/definitions/EventDestination", "$schema": "http://redfish.dmtf.org/schemas/v1/redfish-schema-v1.json", - "copyright": "Copyright 2014-2018 DMTF. For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright", + "copyright": "Copyright 2014-2019 DMTF. For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright", "definitions": { "Actions": { "additionalProperties": false, - "description": "The available actions for this resource.", - "longDescription": "This type shall contain the available actions for this resource.", + "description": "The available actions for this Resource.", + "longDescription": "This type shall contain the available actions for this Resource.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -22,20 +23,37 @@ } }, "properties": { + "#EventDestination.ResumeSubscription": { + "$ref": "#/definitions/ResumeSubscription" + }, "Oem": { "$ref": "#/definitions/OemActions", - "description": "This property contains the available OEM specific actions for this resource.", - "longDescription": "This property shall contain any additional OEM actions for this resource." + "description": "The available OEM-specific actions for this Resource.", + "longDescription": "This property shall contain the available OEM-specific actions for this Resource.", + "versionAdded": "v1_2_0" } }, "type": "object" }, + "DeliveryRetryPolicy": { + "enum": [ + "TerminateAfterRetries", + "SuspendRetries", + "RetryForever" + ], + "enumDescriptions": { + "RetryForever": "The subscription is not suspended or terminated, and attempts at delivery of future events shall continue even after the after the maximum number of retries is reached.", + "SuspendRetries": "The subscription is suspended after the maximum number of retries is reached.", + "TerminateAfterRetries": "The subscription is terminated after the maximum number of retries is reached." + }, + "type": "string" + }, "EventDestination": { "additionalProperties": false, - "description": "An Event Destination desribes the target of an event subscription, including the types of events subscribed and context to provide to the target in the Event payload.", - "longDescription": "This resource shall be used to represent the target of an event subscription, including the types of events subscribed and context to provide to the target in the Event payload.", + "description": "The EventDestination schema defines the target of an event subscription, including the event types and context to provide to the target in the Event payload.", + "longDescription": "This Resource shall represent the target of an event subscription, including the event types and context to provide to the target in the Event payload.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -50,31 +68,46 @@ }, "properties": { "@odata.context": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/context" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/context" }, "@odata.etag": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/etag" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/etag" }, "@odata.id": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/id" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/id" }, "@odata.type": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/type" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/type" }, "Actions": { "$ref": "#/definitions/Actions", - "description": "The available actions for this resource.", - "longDescription": "The Actions property shall contain the available actions for this resource." + "description": "The available actions for this Resource.", + "longDescription": "This property shall contain the available actions for this Resource.", + "versionAdded": "v1_2_0" }, "Context": { "description": "A client-supplied string that is stored with the event destination subscription.", - "longDescription": "This property shall contain a client supplied context that will remain with the connection through the connections lifetime.", + "longDescription": "This property shall contain a client-supplied context that remains with the connection through the connection's lifetime.", "readonly": false, "type": [ "string", "null" ] }, + "DeliveryRetryPolicy": { + "anyOf": [ + { + "$ref": "#/definitions/DeliveryRetryPolicy" + }, + { + "type": "null" + } + ], + "description": "This property shall contain the subscription delivery retry policy for events, where the subscription type is RedfishEvent.", + "longDescription": "This property shall indicate the subscription delivery retry policy for events where the subscription type is RedfishEvent. If this property is not present, the policy shall be assumed to be TerminateAfterRetries.", + "readonly": false, + "versionAdded": "v1_6_0" + }, "Description": { "anyOf": [ { @@ -87,9 +120,9 @@ "readonly": true }, "Destination": { - "description": "The URI of the destination Event Service.", - "format": "uri", - "longDescription": "This property shall contain a URI to the destination where the events will be sent.", + "description": "The URI of the destination event receiver.", + "format": "uri-reference", + "longDescription": "This property shall contain a URI to the destination where the events are sent.", "readonly": true, "type": "string" }, @@ -102,25 +135,28 @@ "type": "null" } ], - "description": "Indicates the content types of the message that will be sent to the EventDestination.", - "longDescription": "The value of this property shall indicate the the content types of the message that this service will send to the EventDestination. If this property is not present, the EventFormatType shall be assumed to be Event.", - "readonly": true + "description": "The content types of the message that are sent to the EventDestination.", + "longDescription": "This property shall indicate the content types of the message that this service sends to the EventDestination. If this property is not present, the EventFormatType shall be assumed to be Event.", + "readonly": true, + "versionAdded": "v1_4_0" }, "EventTypes": { - "description": "This property contains the types of events that will be sent to the desination.", + "deprecated": "This property has been deprecated. Starting with Redfish Specification v1.6 (Event v1.3), subscriptions are based on the RegistryPrefix and ResourceType properties and not on the EventType property. Use EventFormatType to create subscriptions for Metric Reports. If the subscription does not include this property, the service shall use a single element with a default of `Other`.", + "description": "The types of events that are sent to the destination.", "items": { "$ref": "http://redfish.dmtf.org/schemas/v1/Event.json#/definitions/EventType" }, - "longDescription": "This property shall be an array that contains the types of events that shall be sent to the destination.", + "longDescription": "This property shall contain an array that contains the types of events that shall be sent to the destination. To specify that a client is subscribing for Metric Reports, the EventTypes property should include 'MetricReport'. If the subscription does not include this property, the service shall use a single element with a default of `Other`.", "readonly": true, - "type": "array" + "type": "array", + "versionDeprecated": "v1_5_0" }, "HttpHeaders": { - "description": "This is for setting HTTP headers, such as authorization information. This object will be null on a GET.", + "description": "An array of settings for HTTP headers, such as authorization information. This array is null or an empty array in responses. An empty array is the preferred return value on read operations.", "items": { "$ref": "#/definitions/HttpHeaderProperty" }, - "longDescription": "This property shall contain an object consisting of the names and values of of HTTP header to be included with every event POST to the Event Destination. This property shall be null on a GET.", + "longDescription": "This property shall contain an object consisting of the names and values of of HTTP header to be included with every event POST to the Event Destination. This object shall be null or an empty array in responses. An empty array is the preferred return value in responses.", "type": "array" }, "Id": { @@ -128,16 +164,30 @@ "readonly": true }, "MessageIds": { - "description": "A list of MessageIds that the service will only send. If this property is absent or the array is empty, then Events with any MessageId will be sent to the subscriber.", + "description": "The list of MessageIds that the service sends. If this property is absent or the array is empty, events with any MessageId are sent to the subscriber.", "items": { "type": [ "string", "null" ] }, - "longDescription": "The value of this property shall specify an array of MessageIds that are the only allowable values for the MessageId property within an EventRecord sent to the subscriber. Events with MessageIds not contained in this array shall not be sent to the subscriber. If this property is absent or the array is empty, the service shall send Events with any MessageId to the subscriber.", + "longDescription": "This property shall specify an array of MessageIds that are the only allowable values for the MessageId property within an EventRecord sent to the subscriber. Events with MessageIds that are not contained in this array shall not be sent to the subscriber. If this property is absent or the array is empty, the service shall send events with any MessageId to the subscriber.", "readonly": true, - "type": "array" + "type": "array", + "versionAdded": "v1_1_0" + }, + "MetricReportDefinitions": { + "description": "A list of metric report definitions for which the service only sends related metric reports. If this property is absent or the array is empty, metric reports that originate from any metric report definition are sent to the subscriber.", + "items": { + "$ref": "http://redfish.dmtf.org/schemas/v1/MetricReportDefinition.json#/definitions/MetricReportDefinition" + }, + "longDescription": "This property shall specify an array of metric report definitions that are the only allowable generators of metric reports for this subscription. Metric reports originating from metric report definitions not contained in this array shall not be sent to the subscriber. If this property is absent or the array is empty, the service shall send metric reports originating from any metric report definition to the subscriber.", + "readonly": true, + "type": "array", + "versionAdded": "v1_6_0" + }, + "MetricReportDefinitions@odata.count": { + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/count" }, "Name": { "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Name", @@ -145,59 +195,69 @@ }, "Oem": { "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem", - "description": "This is the manufacturer/provider specific extension moniker used to divide the Oem object into sections.", - "longDescription": "The value of this string shall be of the format for the reserved word *Oem*." + "description": "The OEM extension property.", + "longDescription": "This property shall contain the OEM extensions. All values for properties that this object contains shall conform to the Redfish Specification-described requirements." }, "OriginResources": { - "description": "A list of resources for which the service will only send related events. If this property is absent or the array is empty, then Events originating from any resource will be sent to the subscriber.", + "description": "The array of Resources for which the service sends only related events. If this property is absent or the array is empty, the service sends the events that originate from any Resource to the subscriber.", "items": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/idRef" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/idRef" }, - "longDescription": "The value of this property shall specify an array of Resources, Resource Collections, or Referenceable Members that are the only allowable values for the OriginOfCondition property within an EventRecord sent to the subscriber. Events originating from Resources, Resource Collections, or Referenceable Members not contained in this array shall not be sent to the subscriber. If this property is absent or the array is empty, the service shall send Events originating from any Resource, Resource Collection, or Referenceable Member to the subscriber.", + "longDescription": "This property shall specify an array of Resources, Resource Collections, or Referenceable Members that are the only allowable values for the OriginOfCondition property within an EventRecord that the service sends to the subscriber. The service shall not send events that originate from Resources, Resource Collections, or Referenceable Members, and that this array does not contain, to the subscriber. If this property is absent or the array is empty, the service shall send events that originate from any Resource, Resource Collection, or Referenceable Member to the subscriber.", "readonly": true, - "type": "array" + "type": "array", + "versionAdded": "v1_1_0" }, "OriginResources@odata.count": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/count" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/count" }, "Protocol": { "$ref": "#/definitions/EventDestinationProtocol", "description": "The protocol type of the event connection.", - "longDescription": "This property shall contain the protocol type that the event will use for sending the event to the destination. A value of Redfish shall be used to indicate that the event type shall adhere to that defined in the Redfish specification.", + "longDescription": "This property shall contain the protocol type that the event uses to send the event to the destination. A `Redfish` value shall indicate that the event type shall adhere to the type defined in the Redfish Specification.", "readonly": true }, "RegistryPrefixes": { - "description": "A list of the Prefixes for the Message Registries that contain the MessageIds that will be sent to this event destination.", + "description": "The list of the prefixes for the Message Registries that contain the MessageIds that are sent to this event destination.", "items": { "type": [ "string", "null" ] }, - "longDescription": "The value of this property is the array of the Prefixes of the Message Registries that contain the MessageIds in the Events that shall be sent to the EventDestination. If this property is absent or the array is empty, the service shall send Events with MessageIds from any Message Registry.", + "longDescription": "This property shall contain the array of the prefixes of the Message Registries that contain the MessageIds in the Events that shall be sent to the EventDestination. If this property is absent or the array is empty, the service shall send events with MessageIds from any Message Registry.", "readonly": true, - "type": "array" + "type": "array", + "versionAdded": "v1_4_0" }, "ResourceTypes": { - "description": "A list of Resource Type values (Schema names) that correspond to the OriginOfCondition. The version and full namespace should not be specified.", + "description": "The list of Resource Type values (Schema names) that correspond to the OriginOfCondition. The version and full namespace should not be specified.", "items": { "type": [ "string", "null" ] }, - "longDescription": "The value of this property shall specify an array of Resource Type values. When an event is generated, if the OriginOfCondition's Resource Type matches a value in this array, the event shall be sent to the event destination (unless it would be filtered by other property conditions such as RegistryPrefix). If this property is absent or the array is empty, the service shall send Events from any Resource Type to the subscriber. The value of this property shall be only the general namespace for the type and not the versioned value. For example, it shall not be Task.v1_2_0.Task and instead shall just be Task.", + "longDescription": "This property shall specify an array of Resource Type values. When an event is generated, if the OriginOfCondition's Resource Type matches a value in this array, the event shall be sent to the event destination (unless it would be filtered by other property conditions such as RegistryPrefix). If this property is absent or the array is empty, the service shall send Events from any Resource type to the subscriber. This property shall contain only the general namespace for the type and not the versioned value. For example, it shall not contain Task.v1_2_0.Task and instead shall contain Task. To specify that a client is subscribing to metric reports, the EventTypes property should include `MetricReport`.", "readonly": true, - "type": "array" + "type": "array", + "versionAdded": "v1_4_0" + }, + "Status": { + "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Status", + "description": "This property shall contain the status of the subscription.", + "longDescription": "This property shall contain the status of the subscription.", + "versionAdded": "v1_6_0" }, "SubordinateResources": { - "description": "By setting this to true and specifying OriginResources, this indicates the subscription will be for events from the OriginsResources specified and also all subordinate resources. Note that resources associated via the Links section are not considered subordinate.", - "longDescription": "When set to true and OriginResources is specifed, indicates the subscription shall be for events from the OriginsResources specified and all subordinate resources. When set to false and OriginResources is specified, indicates subscription shall be for events only from the OriginResources. If OriginResources is not specified, it has no relevenace.", + "description": "An indication of whether the subscription is for events in the OriginResources array and its subordinate Resources. If `true` and the OriginResources array is specified, the subscription is for events in the OriginResources array and its subordinate Resources. Note that Resources associated through the Links section are not considered subordinate. If `false` and the OriginResources array is specified, the subscription shall be for events in the OriginResources array only. If the OriginResources array is not present, this property shall have no relevance.", + "longDescription": "This property shall indicate whether the subscription is for events in the OriginResources array and its subordinate Resources. If `true` and the OriginResources array is specified, the subscription is for events in the OriginResources array and its subordinate Resources. Note that Resources associated through the Links section are not considered subordinate. If `false` and the OriginResources array is specified, the subscription shall be for events in the OriginResources array only. If the OriginResources array is not present, this property shall have no relevance.", "readonly": true, "type": [ "boolean", "null" - ] + ], + "versionAdded": "v1_4_0" }, "SubscriptionType": { "anyOf": [ @@ -208,9 +268,10 @@ "type": "null" } ], - "description": "Indicates the subscription type for events.", - "longDescription": "The value of this property shall indicate the type of subscription for events. If this property is not present, the SubscriptionType shall be assumed to be RedfishEvent.", - "readonly": true + "description": "The subscription type for events.", + "longDescription": "This property shall indicate the type of subscription for events. If this property is not present, the SubscriptionType shall be assumed to be RedfishEvent.", + "readonly": true, + "versionAdded": "v1_3_0" } }, "required": [ @@ -223,7 +284,6 @@ ], "requiredOnCreate": [ "Destination", - "EventTypes", "Protocol" ], "type": "object" @@ -233,27 +293,16 @@ "Redfish" ], "enumDescriptions": { - "Redfish": "The destination follows the Redfish specification for event notifications." - }, - "type": "string" - }, - "EventFormatType": { - "enum": [ - "Event", - "MetricReport" - ], - "enumDescriptions": { - "Event": "The subscription destination will receive JSON Bodies of the Resource Type Event.", - "MetricReport": "The subscription destination will receive JSON Bodies of the Resource Type MetricReport." + "Redfish": "The destination follows the Redfish Specification for event notifications." }, "type": "string" }, "HttpHeaderProperty": { "additionalProperties": false, - "description": "The value of the HTTP header is the property value. The header name is the property name.", - "longDescription": "This type shall a names and value of an HTTP header to be included with every event POST to the Event Destination.", + "description": "The HTTP header value is the property value. The header name is the property name.", + "longDescription": "This type shall contain the HTTP header name and value to include with every event POST to the event eestination.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -274,10 +323,10 @@ }, "OemActions": { "additionalProperties": true, - "description": "The available OEM specific actions for this resource.", - "longDescription": "This type shall contain any additional OEM actions for this resource.", + "description": "The available OEM-specific actions for this Resource.", + "longDescription": "This type shall contain the available OEM-specific actions for this Resource.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -293,18 +342,51 @@ "properties": {}, "type": "object" }, + "ResumeSubscription": { + "additionalProperties": false, + "description": "This action resumes a suspended event subscription.", + "longDescription": "This action shall resume a suspended event subscription, which affects the subscription status.", + "parameters": {}, + "patternProperties": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { + "description": "This property shall specify a valid odata or Redfish property.", + "type": [ + "array", + "boolean", + "integer", + "number", + "null", + "object", + "string" + ] + } + }, + "properties": { + "target": { + "description": "Link to invoke action", + "format": "uri-reference", + "type": "string" + }, + "title": { + "description": "Friendly action name", + "type": "string" + } + }, + "type": "object" + }, "SubscriptionType": { "enum": [ "RedfishEvent", "SSE" ], "enumDescriptions": { - "RedfishEvent": "The subscription follows the Redfish specification for event notifications, which is done by a service sending an HTTP POST to the subscriber's destination URI.", + "RedfishEvent": "The subscription follows the Redfish Specification for event notifications. To send an event notification, a service sends an HTTP POST to the subscriber's destination URI.", "SSE": "The subscription follows the HTML5 Server-Sent Event definition for event notifications." }, "type": "string" } }, "owningEntity": "DMTF", - "title": "#EventDestination.v1_4_0.EventDestination" + "release": "2019.2", + "title": "#EventDestination.v1_6_0.EventDestination" } \ No newline at end of file diff --git a/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/EventService/EventService.json b/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/EventService/EventService.json index 8d9923d0..f616f392 100644 --- a/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/EventService/EventService.json +++ b/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/EventService/EventService.json @@ -1,14 +1,15 @@ { + "$id": "http://redfish.dmtf.org/schemas/v1/EventService.v1_4_0.json", "$ref": "#/definitions/EventService", "$schema": "http://redfish.dmtf.org/schemas/v1/redfish-schema-v1.json", - "copyright": "Copyright 2014-2018 DMTF. For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright", + "copyright": "Copyright 2014-2019 DMTF. For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright", "definitions": { "Actions": { "additionalProperties": false, - "description": "The available actions for this resource.", - "longDescription": "This type shall contain the available actions for this resource.", + "description": "The available actions for this Resource.", + "longDescription": "This type shall contain the available actions for this Resource.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -27,8 +28,8 @@ }, "Oem": { "$ref": "#/definitions/OemActions", - "description": "This property contains the available OEM specific actions for this resource.", - "longDescription": "This property shall contain any additional OEM actions for this resource." + "description": "The available OEM-specific actions for this Resource.", + "longDescription": "This property shall contain the available OEM-specific actions for this Resource." } }, "type": "object" @@ -39,17 +40,17 @@ "MetricReport" ], "enumDescriptions": { - "Event": "The subscription destination will receive JSON Bodies of the Resource Type Event.", - "MetricReport": "The subscription destination will receive JSON Bodies of the Resource Type MetricReport." + "Event": "The subscription destination receives JSON bodies of the Event type.", + "MetricReport": "The subscription destination receives JSON bodies of the MetricReport type." }, "type": "string" }, "EventService": { "additionalProperties": false, - "description": "The Event Service resource contains properties for managing event subcriptions and generates the events sent to subscribers. The resource has links to the actual collection of subscriptions (called Event Destinations).", - "longDescription": "This resource shall be used to represent an event service for a Redfish implementation.", + "description": "The EventService schema contains properties for managing event subcriptions and generates the events sent to subscribers. The Resource has links to the actual collection of subscriptions, which are called event destinations.", + "longDescription": "This Resource shall represent an Event Service for a Redfish implementation.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -64,31 +65,31 @@ }, "properties": { "@odata.context": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/context" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/context" }, "@odata.etag": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/etag" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/etag" }, "@odata.id": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/id" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/id" }, "@odata.type": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/type" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/type" }, "Actions": { "$ref": "#/definitions/Actions", - "description": "The available actions for this resource.", - "longDescription": "The Actions property shall contain the available actions for this resource." + "description": "The available actions for this Resource.", + "longDescription": "This property shall contain the available actions for this Resource." }, "DeliveryRetryAttempts": { - "description": "This is the number of attempts an event posting is retried before the subscription is terminated. This retry is at the service level, meaning the HTTP POST to the Event Destination was returned by the HTTP operation as unsuccessful (4xx or 5xx return code) or an HTTP timeout occurred this many times before the Event Destination subscription is terminated.", - "longDescription": "The value of this property shall be the number of retrys attempted for any given event to the subscription destination before the subscription is terminated. This retry is at the service level, meaning the HTTP POST to the Event Destination was returned by the HTTP operation as unsuccessful (4xx or 5xx return code) or an HTTP timeout occurred this many times before the Event Destination subscription is terminated.", + "description": "The number of times that the POST of an event is retried before the subscription terminates. This retry occurs at the service level, which means that the HTTP POST to the event destination fails with an HTTP `4XX` or `5XX` status code or an HTTP timeout occurs this many times before the event destination subscription terminates.", + "longDescription": "This property shall contain the number of times that the POST of an event is retried before the subscription terminates. This retry occurs at the service level, which means that the HTTP POST to the event destination fails with an HTTP `4XX` or `5XX` status code or an HTTP timeout occurs this many times before the event destination subscription terminates.", "readonly": false, "type": "integer" }, "DeliveryRetryIntervalSeconds": { - "description": "This represents the number of seconds between retry attempts for sending any given Event.", - "longDescription": "The value of this property shall be the interval in seconds between the retry attempts for any given event to the subscription destination.", + "description": "The interval, in seconds, between retry attempts for sending any event.", + "longDescription": "This property shall contain the interval, in seconds, between the retry attempts for any event sent to the subscription destination.", "readonly": false, "type": "integer", "units": "s" @@ -105,7 +106,7 @@ "readonly": true }, "EventFormatTypes": { - "description": "Indicates the content types of the message that this service can send to the event destination.", + "description": "The content types of the message that this service can send to the event destination.", "items": { "anyOf": [ { @@ -116,18 +117,21 @@ } ] }, - "longDescription": "The value of this property shall indicate the the content types of the message that this service can send to the event destination. If this property is not present, the EventFormatType shall be assumed to be Event.", + "longDescription": "This property shall contain the content types of the message that this service can send to the event destination. If this property is not present, the EventFormatType shall be assumed to be `Event`.", "readonly": true, - "type": "array" + "type": "array", + "versionAdded": "v1_2_0" }, "EventTypesForSubscription": { - "description": "This is the types of Events that can be subscribed to.", + "deprecated": "This property has been deprecated. Starting with Redfish Specification v1.6 (Event v1.3), subscriptions are based on the RegistryPrefix and ResourceType properties and not on the EventType property.", + "description": "The types of events to which a client can subscribe.", "items": { "$ref": "http://redfish.dmtf.org/schemas/v1/Event.json#/definitions/EventType" }, - "longDescription": "The value of this property shall be the types of events that subscriptions can subscribe to. The semantics associated with the enumerations values are defined in the Redfish specification.", + "longDescription": "This property shall contain the types of events to which a client can subscribe. The semantics associated with the enumeration values are defined in the Redfish Specification.", "readonly": true, - "type": "array" + "type": "array", + "versionDeprecated": "v1_3_0" }, "Id": { "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Id", @@ -139,48 +143,52 @@ }, "Oem": { "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem", - "description": "This is the manufacturer/provider specific extension moniker used to divide the Oem object into sections.", - "longDescription": "The value of this string shall be of the format for the reserved word *Oem*." + "description": "The OEM extension property.", + "longDescription": "This property shall contain the OEM extensions. All values for properties that this object contains shall conform to the Redfish Specification-described requirements." }, "RegistryPrefixes": { - "description": "A list of the Prefixes of the Message Registries that can be used for the RegistryPrefix property on a subscription.", + "description": "The list of the prefixes of the Message Registries that can be used for the RegistryPrefix property on a subscription. If this property is absent or contains an empty array, the service does not support RegistryPrefix-based subscriptions.", "items": { "type": [ "string", "null" ] }, - "longDescription": "The value of this property is the array of the Prefixes of the Message Registries that shall be allowed for an Event Subscription.", + "longDescription": "This property shall contain the array of the prefixes of the Message Registries that shall be allowed for an event subscription.", "readonly": true, - "type": "array" + "type": "array", + "versionAdded": "v1_2_0" }, "ResourceTypes": { - "description": "A list of @odata.type values (Schema names) that can be specified in a ResourceType on a subscription.", + "description": "The list of @odata.type values, or Schema names, that can be specified in the ResourceTypes array in a subscription. If this property is absent or contains an empty array, the service does not support Resource type-based subscriptions.", "items": { "type": [ "string", "null" ] }, - "longDescription": "The value of this property shall specify an array of the valid @odata.type values that can be used for an Event Subscription.", + "longDescription": "This property shall specify an array of the valid @odata.type values that can be used for an event subscription.", "readonly": true, - "type": "array" + "type": "array", + "versionAdded": "v1_2_0" }, "SSEFilterPropertiesSupported": { "$ref": "#/definitions/SSEFilterPropertiesSupported", - "description": "Contains a set of properties that indicate which properties are supported in the $filter query parameter for the ServerSentEventUri.", - "longDescription": "The value of this property shall contain a set of properties that indicate which properties are supported in the $filter query parameter for the URI indicated by the ServerSentEventUri property." + "description": "The set of properties that are supported in the $filter query parameter for the ServerSentEventUri.", + "longDescription": "This property shall contain the properties that are supported in the $filter query parameter for the URI indicated by the ServerSentEventUri property.", + "versionAdded": "v1_2_0" }, "ServerSentEventUri": { - "description": "Link to a URI for receiving Sever Sent Event representations of the events generated by this service.", - "format": "uri", - "longDescription": "The value of this property shall be a URI that specifies an HTML5 Server-Sent Event conformant endpoint.", + "description": "The link to a URI for receiving Server-Sent Event representations for the events that this service generates.", + "format": "uri-reference", + "longDescription": "This property shall contain a URI that specifies an HTML5 Server-Sent Event-conformant endpoint.", "readonly": true, - "type": "string" + "type": "string", + "versionAdded": "v1_1_0" }, "ServiceEnabled": { - "description": "This indicates whether this service is enabled.", - "longDescription": "The value of this property shall be a boolean indicating whether this service is enabled.", + "description": "An indication of whether this service is enabled.", + "longDescription": "This property shall indicate whether this service is enabled.", "readonly": false, "type": [ "boolean", @@ -189,22 +197,23 @@ }, "Status": { "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Status", - "description": "This property describes the status and health of the resource and its children.", - "longDescription": "This property shall contain any status or health properties of the resource." + "description": "The status and health of the Resource and its subordinate or dependent Resources.", + "longDescription": "This property shall contain any status or health properties of the Resource." }, "SubordinateResourcesSupported": { - "description": "This indicates if the service supports the SubordinateResource property on Event Subscriptions.", - "longDescription": "When set to true, the service is indicating that it supports the SubordinateResource property on Event Subscriptions and on generated Events.", + "description": "An indication of whether the service supports the SubordinateResource property on both event subscriptions and generated events.", + "longDescription": "This property shall indicate whether the service supports the SubordinateResource property on both event subscriptions and generated events.", "readonly": true, "type": [ "boolean", "null" - ] + ], + "versionAdded": "v1_2_0" }, "Subscriptions": { "$ref": "http://redfish.dmtf.org/schemas/v1/EventDestinationCollection.json#/definitions/EventDestinationCollection", - "description": "This is a reference to a collection of Event Destination resources.", - "longDescription": "The value of this property shall contain the link to a collection of type EventDestinationCollection.", + "description": "The link to a collection of event destination Resources.", + "longDescription": "This property shall contain the link to a Resource Collection of type EventDestinationCollection.", "readonly": true } }, @@ -218,10 +227,10 @@ }, "OemActions": { "additionalProperties": true, - "description": "The available OEM specific actions for this resource.", - "longDescription": "This type shall contain any additional OEM actions for this resource.", + "description": "The available OEM-specific actions for this Resource.", + "longDescription": "This type shall contain the available OEM-specific actions for this Resource.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -239,10 +248,10 @@ }, "SSEFilterPropertiesSupported": { "additionalProperties": false, - "description": "Contains a set of properties that indicate which properties are supported in the $filter query parameter for the ServerSentEventUri.", - "longDescription": "The type shall contain a set of properties that indicate which properties are supported in the $filter query parameter for the URI indicated by the ServerSentEventUri property.", + "description": "The set of properties that are supported in the $filter query parameter for the ServerSentEventUri.", + "longDescription": "The type shall contain a set of properties that are supported in the $filter query parameter for the URI indicated by the ServerSentEventUri property.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -257,111 +266,128 @@ }, "properties": { "EventFormatType": { - "description": "This indicates if the EventFormatType property is supported.", - "longDescription": "The value of this property shall be a boolean indicating if this service supports the use of the EventFormatType property in the $filter query parameter as described by the specification.", + "description": "An indication of whether the service supports the EventFormatType property in the $filter query parameter.", + "longDescription": "This property shall indicate whether this service supports the EventFormatType property in the $filter query parameter, as described by the Redfish Specification.", "readonly": true, - "type": "boolean" + "type": "boolean", + "versionAdded": "v1_2_0" }, "EventType": { - "description": "This indicates if the EventType property is supported.", - "longDescription": "The value of this property shall be a boolean indicating if this service supports the use of the EventType property in the $filter query parameter as described by the specification.", + "deprecated": "This property has been deprecated. Starting with Redfish Specification v1.6 (Event v1.3), subscriptions are based on the RegistryPrefix and ResourceType properties and not on the EventType property.", + "description": "An indication of whether the service supports the EventType property in the $filter query parameter.", + "longDescription": "This property shall indicate whether this service supports the EventType property in the $filter query parameter, as described by the Redfish Specification.", "readonly": true, - "type": "boolean" + "type": "boolean", + "versionAdded": "v1_2_0", + "versionDeprecated": "v1_3_0" }, "MessageId": { - "description": "This indicates if the MessageId property is supported.", - "longDescription": "The value of this property shall be a boolean indicating if this service supports the use of the MessageId property in the $filter query parameter as described by the specification.", + "description": "An indication of whether the service supports the MessageId property in the $filter query parameter.", + "longDescription": "This property shall indicate whether this service supports the MessageId property in the $filter query parameter, as described by the Redfish Specification.", "readonly": true, - "type": "boolean" + "type": "boolean", + "versionAdded": "v1_2_0" }, "MetricReportDefinition": { - "description": "This indicates if the MetricReportDefinition property is supported.", - "longDescription": "The value of this property shall be a boolean indicating if this service supports the use of the MetricReportDefinition property in the $filter query parameter as described by the specification.", + "description": "An indication of whether the service supports the MetricReportDefinition property in the $filter query parameter.", + "longDescription": "This property shall indicate whether this service supports the MetricReportDefinition property in the $filter query parameter, as described by the Redfish Specification.", "readonly": true, - "type": "boolean" + "type": "boolean", + "versionAdded": "v1_2_0" }, "OriginResource": { - "description": "This indicates if the OriginResource property is supported.", - "longDescription": "The value of this property shall be a boolean indicating if this service supports the use of the OriginResource property in the $filter query parameter as described by the specification.", + "description": "An indication of whether the service supports the OriginResource property in the $filter query parameter.", + "longDescription": "This property shall indicate whether this service supports the OriginResource property in the $filter query parameter, as described by the Redfish Specification.", "readonly": true, - "type": "boolean" + "type": "boolean", + "versionAdded": "v1_2_0" }, "RegistryPrefix": { - "description": "This indicates if the RegistryPrefix property is supported.", - "longDescription": "The value of this property shall be a boolean indicating if this service supports the use of the RegistryPrefix property in the $filter query parameter as described by the specification.", + "description": "An indication of whether the service supports the RegistryPrefix property in the $filter query parameter.", + "longDescription": "This property shall indicate whether this service supports the RegistryPrefix property in the $filter query parameter, as described by the Redfish Specification.", "readonly": true, - "type": "boolean" + "type": "boolean", + "versionAdded": "v1_2_0" }, "ResourceType": { - "description": "This indicates if the ResourceType property is supported.", - "longDescription": "The value of this property shall be a boolean indicating if this service supports the use of the ResourceType property in the $filter query parameter as described by the specification.", + "description": "An indication of whether the service supports the ResourceType property in the $filter query parameter.", + "longDescription": "This property shall indicate whether this service supports the ResourceType property in the $filter query parameter, as described by the Redfish Specification.", + "readonly": true, + "type": "boolean", + "versionAdded": "v1_2_0" + }, + "SubordinateResources": { + "description": "An indication of whether the service supports the SubordinateResources property in the $filter query parameter.", + "longDescription": "This property shall indicate whether this service supports the SubordinateResources property in the $filter query parameter, as described by the Redfish Specification.", "readonly": true, - "type": "boolean" + "type": "boolean", + "versionAdded": "v1_4_0" } }, "type": "object" }, "SubmitTestEvent": { "additionalProperties": false, - "description": "This action is used to generate a test event.", - "longDescription": "This action shall add a test event to the event service with the event data specified in the action parameters. This message should then be sent to any appropriate ListenerDestination targets.", + "description": "This action generates a test event.", + "longDescription": "This action shall add a test event to the Event Service with the event data specified in the action parameters. Then, this message should be sent to any appropriate event destinations.", "parameters": { + "EventGroupId": { + "description": "The group ID for the event.", + "longDescription": "The parameter shall contain the group ID for the event. It has the same semantics as the EventGroupId property in the Event schema for Redfish.", + "type": "integer", + "versionAdded": "v1_3_0" + }, "EventId": { - "description": "This is the ID of event to be added.", - "longDescription": "This parameter shall have the same semantics as the EventId property in the Event schema for Redfish.", - "requiredParameter": true, + "description": "The ID for the event to add.", + "longDescription": "This parameter shall have the same semantics as the EventId property in the Event schema for Redfish. A service may ignore this value and replace it with its own.", "type": "string" }, "EventTimestamp": { - "description": "This is the time stamp of event to be added.", + "description": "The date and time stamp for the event to add.", "format": "date-time", - "longDescription": "This parameter shall have the same semantics as the EventTimestamp property in the Event schema for Redfish.", - "requiredParameter": true, + "longDescription": "This parameter shall contain the date and time stamp for the event to add and have the same semantics as the EventTimestamp property in the Event schema for Redfish.", "type": "string" }, "EventType": { "$ref": "http://redfish.dmtf.org/schemas/v1/Event.json#/definitions/EventType", - "description": "This is the type of event to be added.", - "longDescription": "This parameter shall define the property name for which the following allowable values apply.", - "requiredParameter": true + "deprecated": "This parameter has been deprecated. Starting with Redfish Specification v1.6 (Event v1.3), subscriptions are based on the RegistryPrefix and ResourceType properties and not on the EventType property.", + "description": "The type for the event to add.", + "longDescription": "This parameter shall contain the property name for which the following allowable values apply.", + "versionDeprecated": "v1_3_0" }, "Message": { - "description": "This is the human readable message of event to be added.", + "description": "The human-readable message for the event to add.", "longDescription": "This parameter shall have the same semantics as the Message property in the Event schema for Redfish.", - "requiredParameter": true, "type": "string" }, "MessageArgs": { - "description": "This is the array of message arguments of the event to be added.", + "description": "An array of message arguments for the event to add.", "items": { "type": "string" }, "longDescription": "This parameter shall have the same semantics as the MessageArgs property in the Event schema for Redfish.", - "requiredParameter": true, "type": "array" }, "MessageId": { - "description": "This is the message ID of event to be added.", - "longDescription": "This parameter shall have the same semantics as the MessageId property in the Event schema for Redfish.", + "description": "The MessageId for the event to add.", + "longDescription": "This parameter shall contain the MessageId for the event to add and have the same semantics as the MessageId property in the Event schema for Redfish.", "requiredParameter": true, "type": "string" }, "OriginOfCondition": { - "description": "This is the string of the URL within the OriginOfCondition property of the event to be added. It is not a reference object.", - "format": "uri", + "description": "The URL in the OriginOfCondition property of the event to add. It is not a reference object.", + "format": "uri-reference", "longDescription": "This parameter shall be a string that represents the URL contained by the OriginOfCondition property in the Event schema for Redfish.", - "requiredParameter": true, "type": "string" }, "Severity": { - "description": "This is the Severity of event to be added.", - "longDescription": "This parameter shall have the same semantics as the Severity property in the Event schema for Redfish.", - "requiredParameter": true, + "description": "The severity for the event to add.", + "longDescription": "This parameter shall contain the severity for the event to add and have the same semantics as the Severity property in the Event schema for Redfish.", "type": "string" } }, "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -377,7 +403,7 @@ "properties": { "target": { "description": "Link to invoke action", - "format": "uri", + "format": "uri-reference", "type": "string" }, "title": { @@ -389,5 +415,6 @@ } }, "owningEntity": "DMTF", - "title": "#EventService.v1_2_0.EventService" + "release": "2019.2", + "title": "#EventService.v1_4_0.EventService" } \ No newline at end of file diff --git a/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/ExternalAccountProvider/ExternalAccountProvider.json b/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/ExternalAccountProvider/ExternalAccountProvider.json index dea1b952..7e5ca20b 100644 --- a/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/ExternalAccountProvider/ExternalAccountProvider.json +++ b/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/ExternalAccountProvider/ExternalAccountProvider.json @@ -1,8 +1,8 @@ { - "$id": "http://redfish.dmtf.org/schemas/v1/ExternalAccountProvider.v1_1_0.json", + "$id": "http://redfish.dmtf.org/schemas/v1/ExternalAccountProvider.v1_1_2.json", "$ref": "#/definitions/ExternalAccountProvider", "$schema": "http://redfish.dmtf.org/schemas/v1/redfish-schema-v1.json", - "copyright": "Copyright 2014-2018 DMTF. For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright", + "copyright": "Copyright 2014-2019 DMTF. For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright", "definitions": { "AccountProviderTypes": { "enum": [ @@ -12,24 +12,24 @@ "OEM" ], "enumDescriptions": { - "ActiveDirectoryService": "An external Active Directory Service.", - "LDAPService": "A generic external LDAP Service.", - "OEM": "An OEM specific external authentication or directory service.", + "ActiveDirectoryService": "An external Active Directory service.", + "LDAPService": "A generic external LDAP service.", + "OEM": "An OEM-specific external authentication or directory service.", "RedfishService": "An external Redfish Service." }, "enumLongDescriptions": { - "ActiveDirectoryService": "The external account provider shall be a service conforming to the Microsoft Active Directory Technical specification. The format of ServiceAddresses shall be a collection of FQDNs or Netbios names that references the set of domain servers for the Active Directory service.", - "LDAPService": "The external account provider shall be a service conforming to RFC4511. The format of ServiceAddresses shall be a collection of FQDNs that references the set of LDAP servers for the service.", - "RedfishService": "The external account provider shall be a service conforming to the DMTF Redfish specification. The format of ServiceAddresses shall be a collection of URIs which corresponds to a Redfish AccountService entity." + "ActiveDirectoryService": "The external account provider shall be a Microsoft Active Directory Technical Specification-comformant service. The ServiceAddresses format shall contain a collection of fully qualified domain names (FQDN) or NetBIOS names that links to the set of domain servers for the Active Directory service.", + "LDAPService": "The external account provider shall be an RFC4511-conformant service. The ServiceAddresses format shall contain a collection of fully qualified domain names (FQDN) that links to the set of LDAP servers for the Service.", + "RedfishService": "The external account provider shall be a DMTF Redfish Specification-comformant service. The ServiceAddresses format shall contain a collection of URIs that correspond to a Redfish Account Service entity." }, "type": "string" }, "Actions": { "additionalProperties": false, - "description": "The available actions for this resource.", - "longDescription": "This type shall contain the available actions for this resource.", + "description": "The available actions for this Resource.", + "longDescription": "This type shall contain the available actions for this Resource.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -45,18 +45,18 @@ "properties": { "Oem": { "$ref": "#/definitions/OemActions", - "description": "This property contains the available OEM specific actions for this resource.", - "longDescription": "This property shall contain any additional OEM actions for this resource." + "description": "The available OEM-specific actions for this Resource.", + "longDescription": "This property shall contain the available OEM-specific actions for this Resource." } }, "type": "object" }, "Authentication": { "additionalProperties": false, - "description": "Contains the authentication information for the external service.", - "longDescription": "This type shall contain all the required information to authenticate to the external service.", + "description": "The information required to authenticate to the external service.", + "longDescription": "This type shall contain the information required to authenticate to the external service.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -79,13 +79,13 @@ "type": "null" } ], - "description": "This property contains the type of authentication used to connect to the external account provider.", - "longDescription": "The value of this property shall be the type of authentication used to connect to the external account provider.", + "description": "The type of authentication used to connect to the external account provider.", + "longDescription": "This property shall contain the type of authentication used to connect to the external account provider.", "readonly": false }, "KerberosKeytab": { - "description": "This property is used with a PATCH or PUT to write a base64 encoded version of the kerberos keytab for the account. This property is null on a GET.", - "longDescription": "The value of this property shall be a base64 encoded version of the kerberos keytab for this account service. The value shall be null for GET requests.", + "description": "The Base64-encoded version of the Kerberos keytab for this Service. A PATCH or PUT operation writes the keytab. This property is `null` in responses.", + "longDescription": "This property shall contain a Base64-encoded version of the Kerberos keytab for this Service. A PATCH or PUT operation writes the keytab. The value shall be `null` in responses.", "readonly": false, "type": [ "string", @@ -94,12 +94,12 @@ }, "Oem": { "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem", - "description": "Oem extension object.", - "longDescription": "This object represents the Oem property. All values for resources described by this schema shall comply to the requirements as described in the Redfish specification." + "description": "The OEM extension property.", + "longDescription": "This property shall contain the OEM extensions. All values for properties contained in this object shall conform to the Redfish Specification-described requirements." }, "Password": { - "description": "This property is used with a PATCH or PUT to write the password for the account service. This property is null on a GET.", - "longDescription": "The value of this property shall be the password for this account service. The value shall be null for GET requests.", + "description": "The password for this Service. A PATCH or PUT request writes the password. This property is `null` in responses.", + "longDescription": "This property shall contain the password for this Service. A PATCH or PUT operation writes the password. The value shall be `null` in responses.", "readonly": false, "type": [ "string", @@ -107,8 +107,8 @@ ] }, "Token": { - "description": "This property is used with a PATCH or PUT to write the token for the account. This property is null on a GET.", - "longDescription": "The value of this property shall be the token for this account service. The value shall be null for GET requests.", + "description": "The token for this Service. A PATCH or PUT operation writes the token. This property is `null` in responses.", + "longDescription": "This property shall contain the token for this Service. A PATCH or PUT operation writes the token. The value shall be `null` in responses.", "readonly": false, "type": [ "string", @@ -116,8 +116,8 @@ ] }, "Username": { - "description": "This property contains the user name for the account service.", - "longDescription": "The value of this property shall be the user name for this account service.", + "description": "The user name for the Service.", + "longDescription": "This property shall contain the user name for this Service.", "readonly": false, "type": "string" } @@ -132,19 +132,19 @@ "OEM" ], "enumDescriptions": { - "KerberosKeytab": "A kerberos keytab.", - "OEM": "An OEM specific authentication mechanism.", + "KerberosKeytab": "A Kerberos keytab.", + "OEM": "An OEM-specific authentication mechanism.", "Token": "An opaque authentication token.", - "UsernameAndPassword": "Username and password combination." + "UsernameAndPassword": "A user name and password combination." }, "type": "string" }, "ExternalAccountProvider": { "additionalProperties": false, - "description": "A remote service that can provide accounts for this manager to utilize for authentication.", - "longDescription": "This resource shall be used to represent resources that represent external user account services for this manager.", + "description": "The remote service that provides accounts for this manager to use for authentication.", + "longDescription": "The ExternalAccountProvider Schema contains Resources that represent external user account services for this manager.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -159,16 +159,16 @@ }, "properties": { "@odata.context": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/context" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/context" }, "@odata.etag": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/etag" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/etag" }, "@odata.id": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/id" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/id" }, "@odata.type": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/type" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/type" }, "AccountProviderType": { "anyOf": [ @@ -179,31 +179,24 @@ "type": "null" } ], - "description": "This property contains the type of external account provider this resource references.", - "longDescription": "The value of this property shall be the type of external account provider referenced by this resource.", + "description": "The type of external account provider to which this Service connects.", + "longDescription": "This property shall contain the type of external account provider to which this Service connects.", "readonly": true }, "Actions": { "$ref": "#/definitions/Actions", - "description": "The available actions for this resource.", - "longDescription": "The Actions property shall contain the available actions for this resource." + "description": "The available actions for this Resource.", + "longDescription": "This property shall contain the available actions for this Resource." }, "Authentication": { - "anyOf": [ - { - "$ref": "#/definitions/Authentication" - }, - { - "type": "null" - } - ], - "description": "This property contains the authentication information for the external account provider.", - "longDescription": "The value of this property shall contain the authentication information for the external account provider." + "$ref": "#/definitions/Authentication", + "description": "The authentication information for the external account provider.", + "longDescription": "This property shall contain the authentication information for the external account provider." }, "Certificates": { "$ref": "http://redfish.dmtf.org/schemas/v1/CertificateCollection.json#/definitions/CertificateCollection", - "description": "This is a reference to a collection of certificates used for the external account provider.", - "longDescription": "The value of this property shall be a link to a collection of type CertificateCollection.", + "description": "The link to a collection of certificates that the external account provider uses.", + "longDescription": "This property shall contain a link to a Resource Collection of type CertificateCollection.", "readonly": true, "versionAdded": "v1_1_0" }, @@ -223,21 +216,14 @@ "readonly": true }, "LDAPService": { - "anyOf": [ - { - "$ref": "#/definitions/LDAPService" - }, - { - "type": "null" - } - ], - "description": "This property contains additional mapping information needed to parse a generic LDAP service.", - "longDescription": "The value of this property shall contain any additional mapping information needed to parse a generic LDAP service." + "$ref": "#/definitions/LDAPService", + "description": "The additional mapping information needed to parse a generic LDAP service.", + "longDescription": "This property shall contain any additional mapping information needed to parse a generic LDAP service. This property should only be present if AccountProviderType is LDAPService." }, "Links": { "$ref": "#/definitions/Links", - "description": "Contains references to other resources that are related to this resource.", - "longDescription": "The Links property, as described by the Redfish Specification, shall contain references to resources that are related to, but not contained by (subordinate to), this resource." + "description": "The links to other Resources that are related to this Resource.", + "longDescription": "The Redfish Specification-define Links Property shall contain links to Resources related to but not subordinate to this Resource." }, "Name": { "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Name", @@ -245,11 +231,11 @@ }, "Oem": { "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem", - "description": "This is the manufacturer/provider specific extension moniker used to divide the Oem object into sections.", - "longDescription": "The value of this string shall be of the format for the reserved word *Oem*." + "description": "The OEM extension property.", + "longDescription": "This property shall contain the OEM extensions. All values for properties that this object contains shall conform to the Redfish Specification-described requirements." }, "RemoteRoleMapping": { - "description": "This property contains a collection of the mapping rules to convert the external account providers account information to the local Redfish Role.", + "description": "The mapping rules to convert the external account providers account information to the local Redfish Role.", "items": { "anyOf": [ { @@ -264,20 +250,20 @@ "type": "array" }, "ServiceAddresses": { - "description": "This property contains the addresses of the user account providers this resource references. The format of this field depends on the Type.", + "description": "The addresses of the user account providers to which this external account provider links. The format of this field depends on the type of external account provider.", "items": { "type": [ "string", "null" ] }, - "longDescription": "The value of this property shall be the addresses of the account providers this resource references. The format of this field depends on the Type of the ExternalAccountProvider. Each item in the array shall contain a single address. Services may define their own behavior for managing multiple addresses.", + "longDescription": "This property shall contain the addresses of the account providers to which this external account provider links. The format of this field depends on the type of external account provider. Each item in the array shall contain a single address. Services may define their own behavior for managing multiple addresses.", "readonly": false, "type": "array" }, "ServiceEnabled": { - "description": "This indicates whether this service is enabled.", - "longDescription": "The value of this property shall be a boolean indicating whether this service is enabled.", + "description": "An indication of whether this service is enabled.", + "longDescription": "This property shall indicate whether this service is enabled.", "readonly": false, "type": [ "boolean", @@ -298,10 +284,10 @@ }, "LDAPSearchSettings": { "additionalProperties": false, - "description": "Contains settings for searching a generic LDAP service.", - "longDescription": "This type shall contain all the required settings for searching a generic LDAP service.", + "description": "The settings to search a generic LDAP service.", + "longDescription": "This type shall contain all required settings to search a generic LDAP service.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -316,20 +302,20 @@ }, "properties": { "BaseDistinguishedNames": { - "description": "The base distinguished names to use when searching the LDAP service.", + "description": "The base distinguished names to search an external LDAP service.", "items": { "type": [ "string", "null" ] }, - "longDescription": "The value of this property shall be a collection of base distinguished names to use when searching the LDAP service.", + "longDescription": "This property shall contain a collection of base distinguished names to search an external LDAP service.", "readonly": false, "type": "array" }, "GroupNameAttribute": { - "description": "The attribute name that contains the name of the Group.", - "longDescription": "The value of this property shall be the attribute name that contains the name of the Group.", + "description": "The attribute name that contains the LDAP group name entry.", + "longDescription": "This property shall contain the attribute name that contains the LDAP group name.", "readonly": false, "type": [ "string", @@ -337,8 +323,8 @@ ] }, "GroupsAttribute": { - "description": "The attribute name that contains the Groups for a user.", - "longDescription": "The value of this property shall be the attribute name that contains the Groups for a user.", + "description": "The attribute name that contains the groups for a user on the LDAP user entry.", + "longDescription": "This property shall contain the attribute name that contains the groups for an LDAP user entry.", "readonly": false, "type": [ "string", @@ -346,8 +332,8 @@ ] }, "UsernameAttribute": { - "description": "The attribute name that contains the Username.", - "longDescription": "The value of this property shall be the attribute name that contains the Username.", + "description": "The attribute name that contains the LDAP user name entry.", + "longDescription": "This property shall contain the attribute name that contains the LDAP user name.", "readonly": false, "type": [ "string", @@ -359,10 +345,10 @@ }, "LDAPService": { "additionalProperties": false, - "description": "Contains settings for parsing a generic LDAP service.", - "longDescription": "This type shall contain all the required settings for parsing a generic LDAP service.", + "description": "The settings required to parse a generic LDAP service.", + "longDescription": "This type shall contain all required settings to parse a generic LDAP service.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -378,30 +364,23 @@ "properties": { "Oem": { "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem", - "description": "Oem extension object.", - "longDescription": "This object represents the Oem property. All values for resources described by this schema shall comply to the requirements as described in the Redfish specification." + "description": "The OEM extension property.", + "longDescription": "This property shall contain the OEM extensions. All values for properties contained in this object shall conform to the Redfish Specification-described requirements." }, "SearchSettings": { - "anyOf": [ - { - "$ref": "#/definitions/LDAPSearchSettings" - }, - { - "type": "null" - } - ], - "description": "This property contains the settings needed to search an external LDAP service.", - "longDescription": "The value of this property shall contain the settings needed to search an external LDAP service." + "$ref": "#/definitions/LDAPSearchSettings", + "description": "The required settings to search an external LDAP service.", + "longDescription": "This property shall contain the required settings to search an external LDAP service." } }, "type": "object" }, "Links": { "additionalProperties": false, - "description": "Contains references to other resources that are related to this resource.", - "longDescription": "This type, as described by the Redfish Specification, shall contain references to resources that are related to, but not contained by (subordinate to), this resource.", + "description": "The links to other Resources that are related to this Resource.", + "longDescription": "This Redfish Specification-described type shall contain links to Resources related to but not subordinate to this Resource.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -417,18 +396,18 @@ "properties": { "Oem": { "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem", - "description": "Oem extension object.", - "longDescription": "This object represents the Oem property. All values for resources described by this schema shall comply to the requirements as described in the Redfish specification." + "description": "The OEM extension property.", + "longDescription": "This property shall contain the OEM extensions. All values for properties contained in this object shall conform to the Redfish Specification-described requirements." } }, "type": "object" }, "OemActions": { "additionalProperties": true, - "description": "The available OEM specific actions for this resource.", - "longDescription": "This type shall contain any additional OEM actions for this resource.", + "description": "The available OEM-specific actions for this Resource.", + "longDescription": "This type shall contain the available OEM-specific actions for this Resource.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -446,10 +425,10 @@ }, "RoleMapping": { "additionalProperties": false, - "description": "Contains mapping rules to convert the external account providers account information to the local Redfish Role.", + "description": "The mapping rules to convert the external account providers account information to the local Redfish Role.", "longDescription": "This type shall contain mapping rules to convert the external account providers account information to the local Redfish Role.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -464,8 +443,8 @@ }, "properties": { "LocalRole": { - "description": "The name of the local role in which to map the remote user or group.", - "longDescription": "The value of this property shall contain the value of the RoleId property within a Role resource on this Redfish service in which to map the remote user or group.", + "description": "The name of the local Redfish Role to which to map the remote user or group.", + "longDescription": "This property shall contain the RoleId property value within a Role Resource on this Redfish Service to which to map the remote user or group.", "readonly": false, "type": [ "string", @@ -474,12 +453,12 @@ }, "Oem": { "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem", - "description": "Oem extension object.", - "longDescription": "This object represents the Oem property. All values for resources described by this schema shall comply to the requirements as described in the Redfish specification." + "description": "The OEM extension property.", + "longDescription": "This property shall contain the OEM extensions. All values for properties contained in this object shall conform to the Redfish Specification-described requirements." }, "RemoteGroup": { - "description": "This property is the name of the remote group (or in the case of a Redfish Service, remote role) that will be mapped to the local role referenced by this entity.", - "longDescription": "The value of this property shall contain the name of the remote group (or in the case of a Redfish Service, remote role) that will be mapped to the local role referenced by this entity.", + "description": "The name of the remote group, or the remote role in the case of a Redfish Service, that maps to the local Redfish Role to which this entity links.", + "longDescription": "This property shall contain the name of the remote group, or the remote role in the case of a Redfish Service, that maps to the local Redfish Role to which this entity links.", "readonly": false, "type": [ "string", @@ -487,8 +466,8 @@ ] }, "RemoteUser": { - "description": "This property is the name of the remote user that will be mapped to the local role referenced by this entity.", - "longDescription": "The value of this property shall contain the name of the remote user that will be mapped to the local role referenced by this entity.", + "description": "The name of the remote user that maps to the local Redfish Role to which this entity links.", + "longDescription": "This property shall contain the name of the remote user that maps to the local Redfish Role to which this entity links.", "readonly": false, "type": [ "string", @@ -501,5 +480,5 @@ }, "owningEntity": "DMTF", "release": "2018.3", - "title": "#ExternalAccountProvider.v1_1_0.ExternalAccountProvider" + "title": "#ExternalAccountProvider.v1_1_2.ExternalAccountProvider" } \ No newline at end of file diff --git a/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/Fabric/Fabric.json b/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/Fabric/Fabric.json index 2ec87982..67ec5c2f 100644 --- a/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/Fabric/Fabric.json +++ b/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/Fabric/Fabric.json @@ -1,14 +1,15 @@ { + "$id": "http://redfish.dmtf.org/schemas/v1/Fabric.v1_0_6.json", "$ref": "#/definitions/Fabric", "$schema": "http://redfish.dmtf.org/schemas/v1/redfish-schema-v1.json", - "copyright": "Copyright 2014-2018 DMTF. For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright", + "copyright": "Copyright 2014-2019 DMTF. For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright", "definitions": { "Actions": { "additionalProperties": false, - "description": "The available actions for this resource.", - "longDescription": "This type shall contain the available actions for this resource.", + "description": "The available actions for this Resource.", + "longDescription": "This type shall contain the available actions for this Resource.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -24,8 +25,8 @@ "properties": { "Oem": { "$ref": "#/definitions/OemActions", - "description": "This property contains the available OEM specific actions for this resource.", - "longDescription": "This property shall contain any additional OEM actions for this resource." + "description": "The available OEM-specific actions for this Resource.", + "longDescription": "This property shall contain the available OEM-specific actions for this Resource." } }, "type": "object" @@ -33,9 +34,9 @@ "Fabric": { "additionalProperties": false, "description": "The Fabric schema represents a simple fabric consisting of one or more switches, zero or more endpoints, and zero or more zones.", - "longDescription": "This resource shall be used to represent a simple switchable fabric for a Redfish implementation.", + "longDescription": "This Resource shall represent a simple switchable fabric for a Redfish implementation.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -50,21 +51,21 @@ }, "properties": { "@odata.context": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/context" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/context" }, "@odata.etag": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/etag" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/etag" }, "@odata.id": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/id" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/id" }, "@odata.type": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/type" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/type" }, "Actions": { "$ref": "#/definitions/Actions", - "description": "The available actions for this resource.", - "longDescription": "The Actions property shall contain the available actions for this resource." + "description": "The available actions for this Resource.", + "longDescription": "This property shall contain the available actions for this Resource." }, "Description": { "anyOf": [ @@ -79,8 +80,8 @@ }, "Endpoints": { "$ref": "http://redfish.dmtf.org/schemas/v1/EndpointCollection.json#/definitions/EndpointCollection", - "description": "A collection of references to the endpoints contained in this fabric.", - "longDescription": "The value of this property shall be a reference to the resources that this fabric uses and shall reference a resource of type Endpoint.", + "description": "The collection of links to the endpoints that this fabric contains.", + "longDescription": "This property shall contain a link to the Resources of the Endpoint type that this fabric uses.", "readonly": true }, "FabricType": { @@ -93,7 +94,7 @@ } ], "description": "The protocol being sent over this fabric.", - "longDescription": "The value of this property shall contain the type of fabric being represented by this simple fabric.", + "longDescription": "This property shall contain the type of fabric being represented by this simple fabric.", "readonly": true }, "Id": { @@ -102,12 +103,12 @@ }, "Links": { "$ref": "#/definitions/Links", - "description": "Contains references to other resources that are related to this resource.", - "longDescription": "The Links property, as described by the Redfish Specification, shall contain references to resources that are related to, but not contained by (subordinate to), this resource." + "description": "The links to other Resources that are related to this Resource.", + "longDescription": "This property shall contain links to Resources that are related to but are not contained by or subordinate to this Resource." }, "MaxZones": { - "description": "The value of this property shall contain the maximum number of zones the switch can currently configure.", - "longDescription": "The value of this property shall contain the maximum number of zones the switch can currently configure. This value can change based on changes in the logical or physical configuration of the system.", + "description": "The maximum number of zones the switch can currently configure.", + "longDescription": "This property shall contain the maximum number of zones the switch can currently configure. This value may change based on changes in the logical or physical configuration of the system.", "readonly": true, "type": [ "integer", @@ -120,24 +121,24 @@ }, "Oem": { "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem", - "description": "This is the manufacturer/provider specific extension moniker used to divide the Oem object into sections.", - "longDescription": "The value of this string shall be of the format for the reserved word *Oem*." + "description": "The OEM extension property.", + "longDescription": "This property shall contain the OEM extensions. All values for properties that this object contains shall conform to the Redfish Specification-described requirements." }, "Status": { "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Status", - "description": "This property describes the status and health of the resource and its children.", - "longDescription": "This property shall contain any status or health properties of the resource." + "description": "The status and health of the Resource and its subordinate or dependent Resources.", + "longDescription": "This property shall contain any status or health properties of the Resource." }, "Switches": { "$ref": "http://redfish.dmtf.org/schemas/v1/SwitchCollection.json#/definitions/SwitchCollection", - "description": "A collection of references to the switches contained in this fabric.", - "longDescription": "The value of this property shall be a reference to the resources that this fabric uses and shall reference a resource of type Switch.", + "description": "The collection of links to the switches that this fabric contains.", + "longDescription": "This property shall contain a link to the Resources of the Switch type that this fabric uses.", "readonly": true }, "Zones": { "$ref": "http://redfish.dmtf.org/schemas/v1/ZoneCollection.json#/definitions/ZoneCollection", - "description": "A collection of references to the zones contained in this fabric.", - "longDescription": "The value of this property shall be a reference to the resources that this fabric uses and shall reference a resource of type Zone.", + "description": "The collection of links to the zones that this fabric contains.", + "longDescription": "This property shall contain a link to the Resources of the Zone type that this fabric uses.", "readonly": true } }, @@ -151,10 +152,10 @@ }, "Links": { "additionalProperties": false, - "description": "Contains references to other resources that are related to this resource.", - "longDescription": "This type, as described by the Redfish Specification, shall contain references to resources that are related to, but not contained by (subordinate to), this resource.", + "description": "The links to other Resources that are related to this Resource.", + "longDescription": "This Redfish Specification-described type shall contain links to Resources that are related to but are not contained by or subordinate to this Resource.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -170,18 +171,18 @@ "properties": { "Oem": { "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem", - "description": "Oem extension object.", - "longDescription": "This object represents the Oem property. All values for resources described by this schema shall comply to the requirements as described in the Redfish specification." + "description": "The OEM extension property.", + "longDescription": "This property shall contain the OEM extensions. All values for properties contained in this object shall conform to the Redfish Specification-described requirements." } }, "type": "object" }, "OemActions": { "additionalProperties": true, - "description": "The available OEM specific actions for this resource.", - "longDescription": "This type shall contain any additional OEM actions for this resource.", + "description": "The available OEM-specific actions for this Resource.", + "longDescription": "This type shall contain the available OEM-specific actions for this Resource.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -199,5 +200,6 @@ } }, "owningEntity": "DMTF", - "title": "#Fabric.v1_0_4.Fabric" + "release": "2016.2", + "title": "#Fabric.v1_0_6.Fabric" } \ No newline at end of file diff --git a/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/HostInterface/HostInterface.json b/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/HostInterface/HostInterface.json index 91fb3ffd..c3cbe8b1 100644 --- a/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/HostInterface/HostInterface.json +++ b/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/HostInterface/HostInterface.json @@ -1,14 +1,15 @@ { + "$id": "http://redfish.dmtf.org/schemas/v1/HostInterface.v1_2_2.json", "$ref": "#/definitions/HostInterface", "$schema": "http://redfish.dmtf.org/schemas/v1/redfish-schema-v1.json", - "copyright": "Copyright 2014-2018 DMTF. For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright", + "copyright": "Copyright 2014-2019 DMTF. For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright", "definitions": { "Actions": { "additionalProperties": false, - "description": "The available actions for this resource.", - "longDescription": "This type shall contain the available actions for this resource.", + "description": "The available actions for this Resource.", + "longDescription": "This type shall contain the available actions for this Resource.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -24,8 +25,9 @@ "properties": { "Oem": { "$ref": "#/definitions/OemActions", - "description": "This property contains the available OEM specific actions for this resource.", - "longDescription": "This property shall contain any additional OEM actions for this resource." + "description": "The available OEM-specific actions for this Resource.", + "longDescription": "This property shall contain the available OEM-specific actions for this Resource.", + "versionAdded": "v1_1_0" } }, "type": "object" @@ -47,10 +49,10 @@ }, "HostInterface": { "additionalProperties": false, - "description": "This schema defines a single Host Interface resource.", - "longDescription": "This resource shall be used to represent Host Interface resources as part of the Redfish specification.", + "description": "The properties associated with a Host Interface. A Host Interface is a connection between host software and a Redfish Service.", + "longDescription": "This Resource shall represent a Host Interface as part of the Redfish Specification.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -65,34 +67,36 @@ }, "properties": { "@odata.context": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/context" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/context" }, "@odata.etag": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/etag" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/etag" }, "@odata.id": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/id" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/id" }, "@odata.type": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/type" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/type" }, "Actions": { "$ref": "#/definitions/Actions", - "description": "The available actions for this resource.", - "longDescription": "The Actions property shall contain the available actions for this resource." + "description": "The available actions for this Resource.", + "longDescription": "This property shall contain the available actions for this Resource.", + "versionAdded": "v1_1_0" }, "AuthNoneRoleId": { - "description": "The Role used when no authentication on this interface is used.", - "longDescription": "The value of this property shall be the ID of the Role resource that is used when no authentication on this interface is performed. This property shall be absent if AuthNone is not supported by the service for the AuthenticationModes property.", + "description": "The role when no authentication on this interface is used.", + "longDescription": "This property shall contain the Id property of the Role Resource that is used when no authentication on this interface is performed. This property shall contain absent if AuthNone is not supported by the service for the AuthenticationModes property.", "readonly": false, - "type": "string" + "type": "string", + "versionAdded": "v1_2_0" }, "AuthenticationModes": { - "description": "Indicates the authentication modes available on this interface.", + "description": "The authentication modes available on this interface.", "items": { "$ref": "#/definitions/AuthenticationMode" }, - "longDescription": "The value of this property shall be an array consisting of the authentication modes allowed on this interface.", + "longDescription": "This property shall contain an array consisting of the authentication modes allowed on this interface.", "readonly": false, "type": "array" }, @@ -108,8 +112,8 @@ "readonly": true }, "ExternallyAccessible": { - "description": "Indicates whether this interface is accessible by external entities.", - "longDescription": "The value of this property shall be a boolean indicating whether this interface is accessible by external (non-host) entities. For example, if the host and manager are connected via a switch, and the switch also exposes an external port on the system, then the interface could also be used by external clients, and this property will have the value set to true.", + "description": "An indication of whether external entities can access this interface. External entities are non-host entities. For example, if the host and manager are connected through a switch and the switch also exposes an external port on the system, external clients can also use the interface, and this property value is `true`.", + "longDescription": "This property shall indicate whether external entities can access this interface. External entities are non-host entities. For example, if the host and manager are connected through a switch and the switch also exposes an external port on the system, external clients can also use the interface, and this property value is `true`.", "readonly": true, "type": [ "boolean", @@ -117,8 +121,8 @@ ] }, "FirmwareAuthEnabled": { - "description": "Indicates whether this firmware authentication is enabled for this interface.", - "longDescription": "The value of this property shall be a boolean indicating whether firmware authentication for this interface is enabled.", + "description": "An indication of whether this firmware authentication is enabled for this interface.", + "longDescription": "This property shall indicate whether firmware authentication is enabled for this interface.", "readonly": false, "type": [ "boolean", @@ -127,14 +131,14 @@ }, "FirmwareAuthRoleId": { "description": "The Role used for firmware authentication on this interface.", - "longDescription": "The value of this property shall be the ID of the Role resource that is configured for firmware authentication on this interface.", + "longDescription": "This property shall contain the Id property of the Role Resource that is configured for firmware authentication on this interface.", "readonly": false, "type": "string" }, "HostEthernetInterfaces": { "$ref": "http://redfish.dmtf.org/schemas/v1/EthernetInterfaceCollection.json#/definitions/EthernetInterfaceCollection", - "description": "The Redfish link to the collection of network interface controllers or cards (NICs) that a Computer System uses to communicate with this Host Interface.", - "longDescription": "The value of this property shall be a link to a collection of type EthernetInterfaceCollection that Computer Systems use as the Host Interface to this Manager.", + "description": "A link to the collection of network interface controllers or cards (NICs) that a computer system uses to communicate with this Host Interface.", + "longDescription": "This property shall contain a link to a Resource Collection of type EthernetInterface that computer systems use as the Host Interface to this manager.", "readonly": true }, "HostInterfaceType": { @@ -146,8 +150,8 @@ "type": "null" } ], - "description": "Indicates the Host Interface type for this interface.", - "longDescription": "The value of this property shall be an enumeration describing type of the interface.", + "description": "The Host Interface type for this interface.", + "longDescription": "This property shall contain an enumeration that describes the type of the interface.", "readonly": true }, "Id": { @@ -155,8 +159,8 @@ "readonly": true }, "InterfaceEnabled": { - "description": "Indicates whether this interface is enabled.", - "longDescription": "The value of this property shall be a boolean indicating whether this interface is enabled.", + "description": "An indication of whether this interface is enabled.", + "longDescription": "This property shall indicate whether this interface is enabled.", "readonly": false, "type": [ "boolean", @@ -164,8 +168,8 @@ ] }, "KernelAuthEnabled": { - "description": "Indicates whether this kernel authentication is enabled for this interface.", - "longDescription": "The value of this property shall be a boolean indicating whether kernel authentication for this interface is enabled.", + "description": "An indication of whether this kernel authentication is enabled for this interface.", + "longDescription": "This property shall indicate whether kernel authentication is enabled for this interface.", "readonly": false, "type": [ "boolean", @@ -174,19 +178,19 @@ }, "KernelAuthRoleId": { "description": "The Role used for kernel authentication on this interface.", - "longDescription": "The value of this property shall be the ID of the Role resource that is configured for kernel authentication on this interface.", + "longDescription": "This property shall contain the Id property of the Role Resource that is configured for kernel authentication on this interface.", "readonly": false, "type": "string" }, "Links": { "$ref": "#/definitions/Links", - "description": "Contains references to other resources that are related to this resource.", - "longDescription": "The Links property, as described by the Redfish Specification, shall contain references to resources that are related to, but not contained by (subordinate to), this resource." + "description": "The links to other Resources that are related to this Resource.", + "longDescription": "The Redfish Specification-described Links Property shall contain links to Resources related to but not subordinate to this Resource." }, "ManagerEthernetInterface": { "$ref": "http://redfish.dmtf.org/schemas/v1/EthernetInterface.json#/definitions/EthernetInterface", - "description": "The Redfish link to a single network interface controllers or cards (NIC) that this Manager uses for network communication with this Host Interface.", - "longDescription": "The value of this property shall be a link to a resource of type EthernetInterface which represents the network interface used by this Manager as the HostInterface.", + "description": "A link to a single network interface controllers or cards (NIC) that this manager uses for network communication with this Host Interface.", + "longDescription": "This property shall contain a link to a Resource of type EthernetInterface that represents the network interface that this manager uses as the Host Interface.", "readonly": true }, "Name": { @@ -195,19 +199,19 @@ }, "NetworkProtocol": { "$ref": "http://redfish.dmtf.org/schemas/v1/ManagerNetworkProtocol.json#/definitions/ManagerNetworkProtocol", - "description": "The Redfish link to the network services and their settings that the Manager controls. It is here that clients will find network configuration options as well as network services.", - "longDescription": "The value of this property shall contain a reference to a resource of type ManagerNetworkProtocol which represents the network services for this Manager.", + "description": "A link to the network services and their settings that the manager controls. In this property, clients find configuration options for the network and network services.", + "longDescription": "This property shall contain a link to a Resource of type ManagerNetworkProtocol that represents the network services for this manager.", "readonly": true }, "Oem": { "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem", - "description": "This is the manufacturer/provider specific extension moniker used to divide the Oem object into sections.", - "longDescription": "The value of this string shall be of the format for the reserved word *Oem*." + "description": "The OEM extension property.", + "longDescription": "This property shall contain the OEM extensions. All values for properties that this object contains shall conform to the Redfish Specification-described requirements." }, "Status": { "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Status", - "description": "This property describes the status and health of the resource and its children.", - "longDescription": "This property shall contain any status or health properties of the resource." + "description": "The status and health of the Resource and its subordinate or dependent Resources.", + "longDescription": "This property shall contain any status or health properties of the Resource." } }, "required": [ @@ -229,10 +233,10 @@ }, "Links": { "additionalProperties": false, - "description": "References to other resources that are related to this resource.", - "longDescription": "This type, as described by the Redfish Specification, shall contain references to resources that are related to, but not contained by (subordinate to), this resource.", + "description": "References to other Resources related to this Resource.", + "longDescription": "The Redfish Specification-described type shall contain links to Resources related to but not subordinate to this Resource.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -248,48 +252,49 @@ "properties": { "AuthNoneRole": { "$ref": "http://redfish.dmtf.org/schemas/v1/Role.json#/definitions/Role", - "description": "A reference to the Role that contains the privileges on this Host Interface when no authentication is performed.", - "longDescription": "The value of this property shall be a link to a Role object instance, and should reference the object identified by property AuthNoneRoleId. This property shall be absent if AuthNone is not supported by the service for the AuthenticationModes property.", - "readonly": true + "description": "The link to the Redfish Role that contains the privileges on this Host Interface when no authentication is performed.", + "longDescription": "This property shall contain a link to a Resource of type Role, and should link to the Resource identified by property AuthNoneRoleId. This property shall be absent if AuthNone is not supported by the service for the AuthenticationModes property.", + "readonly": true, + "versionAdded": "v1_2_0" }, "ComputerSystems": { - "description": "An array of references to the Computer Systems connected to this Host Interface.", + "description": "An array of links to the computer systems connected to this Host Interface.", "items": { "$ref": "http://redfish.dmtf.org/schemas/v1/ComputerSystem.json#/definitions/ComputerSystem" }, - "longDescription": "The value of this property shall be an array of references to resources of type ComputerSystem that are connected to this HostInterface.", + "longDescription": "This property shall contain an array of links to Resources of the ComputerSystem type that are connected to this Host Interface.", "readonly": true, "type": "array" }, "ComputerSystems@odata.count": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/count" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/count" }, "FirmwareAuthRole": { "$ref": "http://redfish.dmtf.org/schemas/v1/Role.json#/definitions/Role", - "description": "A reference to the Role that has firmware authentication privileges on this Host Interface.", - "longDescription": "The value of this property shall be a link to a Role object instance, and should reference the object identified by property FirmwareAuthRoleId.", + "description": "The link to the Redfish Role that has firmware authentication privileges on this Host Interface.", + "longDescription": "This property shall contain a link to a Resource of type Role, and should link to the Resource identified by property FirmwareAuthRoleId.", "readonly": true }, "KernelAuthRole": { "$ref": "http://redfish.dmtf.org/schemas/v1/Role.json#/definitions/Role", - "description": "A reference to the Role object defining Privileges for this Host Interface when using kernel authentication.", - "longDescription": "The value of this property shall be a link to a Role object instance, and should reference the object identified by property KernelAuthRoleId.", + "description": "The link to the Redfish Role defining privileges for this Host Interface when using kernel authentication.", + "longDescription": "This property shall contain a link to a Resource of type Role, and should link to the Resource identified by property KernelAuthRoleId.", "readonly": true }, "Oem": { "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem", - "description": "Oem extension object.", - "longDescription": "This object represents the Oem property. All values for resources described by this schema shall comply to the requirements as described in the Redfish specification." + "description": "The OEM extension property.", + "longDescription": "This property shall contain the OEM extensions. All values for properties contained in this object shall conform to the Redfish Specification-described requirements." } }, "type": "object" }, "OemActions": { "additionalProperties": true, - "description": "The available OEM specific actions for this resource.", - "longDescription": "This type shall contain any additional OEM actions for this resource.", + "description": "The available OEM-specific actions for this Resource.", + "longDescription": "This type shall contain the available OEM-specific actions for this Resource.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -307,5 +312,6 @@ } }, "owningEntity": "DMTF", - "title": "#HostInterface.v1_2_0.HostInterface" + "release": "2018.2", + "title": "#HostInterface.v1_2_2.HostInterface" } \ No newline at end of file diff --git a/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/IPAddresses/IPAddresses.json b/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/IPAddresses/IPAddresses.json index be79b1a3..738ac27a 100644 --- a/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/IPAddresses/IPAddresses.json +++ b/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/IPAddresses/IPAddresses.json @@ -1,6 +1,7 @@ { + "$id": "http://redfish.dmtf.org/schemas/v1/IPAddresses.v1_1_1.json", "$schema": "http://redfish.dmtf.org/schemas/v1/redfish-schema-v1.json", - "copyright": "Copyright 2014-2018 DMTF. For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright", + "copyright": "Copyright 2014-2019 DMTF. For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright", "definitions": { "AddressState": { "enum": [ @@ -10,19 +11,19 @@ "Failed" ], "enumDescriptions": { - "Deprecated": "This address is currently within it's valid lifetime, but is now outside of it's preferred lifetime as defined in RFC 4862.", - "Failed": "This address has failed Duplicate Address Detection testing as defined in RFC 4862 section 5.4 and is not currently in use.", - "Preferred": "This address is currently within both it's valid and preferred lifetimes as defined in RFC 4862.", - "Tentative": "This address is currently undergoing Duplicate Address Detection testing as defined in RFC 4862 section 5.4." + "Deprecated": "This address is currently within its valid lifetime but is now outside its RFC4862-defined preferred lifetime.", + "Failed": "This address has failed Duplicate Address Detection (DAD) testing, as defined in RFC4862, section 5.4, and is not currently in use.", + "Preferred": "This address is currently within both its RFC4862-defined valid and preferred lifetimes.", + "Tentative": "This address is currently undergoing Duplicate Address Detection (DAD) testing, as defined in RFC4862, section 5.4." }, "type": "string" }, "IPv4Address": { "additionalProperties": false, - "description": "This type describes an IPv4 Address.", + "description": "This type describes an IPv4 address.", "longDescription": "This type shall describe an IPv4 address assigned to an interface.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -37,8 +38,8 @@ }, "properties": { "Address": { - "description": "This is the IPv4 Address.", - "longDescription": "The value of this property shall be an IPv4 address assigned to this interface. If DHCPv4 is enabled on the interface, this property becomes read-only.", + "description": "The IPv4 address.", + "longDescription": "This property shall contain an IPv4 address assigned to this interface. If DHCPv4 is enabled on the interface, this property becomes read-only.", "pattern": "^(?:[0-9]{1,3}\\.){3}[0-9]{1,3}$", "readonly": false, "type": [ @@ -56,12 +57,12 @@ } ], "description": "This indicates how the address was determined.", - "longDescription": "The value of this property shall be the IP address origin for this network interface.", + "longDescription": "This property shall contain the IP address origin for this network interface.", "readonly": true }, "Gateway": { - "description": "This is the IPv4 gateway for this address.", - "longDescription": "The value of this property shall be the IPv4 default gateway address for this interface. If DHCPv4 is enabled on the interface and is configured to set the IPv4 default gateway address, this property becomes read-only.", + "description": "The IPv4 gateway for this address.", + "longDescription": "This property shall contain the IPv4 default gateway address for this interface. If DHCPv4 is enabled on the interface and is configured to set the IPv4 default gateway address, this property becomes read-only.", "pattern": "^(?:[0-9]{1,3}\\.){3}[0-9]{1,3}$", "readonly": false, "type": [ @@ -71,8 +72,8 @@ }, "Oem": { "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem", - "description": "Oem extension object.", - "longDescription": "This object represents the Oem property. All values for resources described by this schema shall comply to the requirements as described in the Redfish specification." + "description": "The OEM extension property.", + "longDescription": "This property shall contain the OEM extensions. All values for properties contained in this object shall conform to the Redfish Specification-described requirements." }, "SubnetMask": { "anyOf": [ @@ -83,8 +84,8 @@ "type": "null" } ], - "description": "This is the IPv4 Subnet mask.", - "longDescription": "The value of this property shall be the IPv4 subnet mask for this address. If DHCPv4 is enabled on the interface, this property becomes read-only.", + "description": "The IPv4 subnet mask.", + "longDescription": "This property shall contain the IPv4 subnet mask for this address. If DHCPv4 is enabled on the interface, this property becomes read-only.", "readonly": false } }, @@ -98,19 +99,19 @@ "IPv4LinkLocal" ], "enumDescriptions": { - "BOOTP": "Address is provided by a BOOTP service.", - "DHCP": "Address is provided by a DHCPv4 service.", - "IPv4LinkLocal": "Address is valid only for this network segment (link).", - "Static": "A static address as configured by the user." + "BOOTP": "A BOOTP service-provided address.", + "DHCP": "A DHCPv4 service-provided address.", + "IPv4LinkLocal": "The address is valid for only this network segment, or link.", + "Static": "A user-configured static address." }, "type": "string" }, "IPv6Address": { "additionalProperties": false, - "description": "This type describes an IPv6 Address.", + "description": "This type describes an IPv6 address.", "longDescription": "This type shall describe an IPv6 address assigned to an interface.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -125,7 +126,7 @@ }, "properties": { "Address": { - "description": "This is the IPv6 Address.", + "description": "The IPv6 address.", "longDescription": "This property lists an IPv6 address that is currently assigned on this interface.", "readonly": false, "type": [ @@ -143,7 +144,7 @@ } ], "description": "This indicates how the address was determined.", - "longDescription": "The value of this property shall be the IPv6 address origin for this interface.", + "longDescription": "This property shall contain the IPv6 address origin for this interface.", "readonly": true }, "AddressState": { @@ -155,14 +156,14 @@ "type": "null" } ], - "description": "The current state of this address as defined in RFC 4862.", - "longDescription": "Preferred and Deprecated states follow the definitions given RFC4862 Section 5.5.4. An address is in the Tentative state while undergoing Duplicate Address Detection (DAD) per RFC4862 Section 5.4. The Failed state indicates a Static addresses which did not pass DAD. A Static address in the Failed state is not in use on the network stack, and corrective action will be needed to remedy this condition.", + "description": "The current RFC4862-defined state of this address.", + "longDescription": "This property shall contain the current RFC4862-defined state of this address. Preferred and Deprecated states follow the definitions in RFC4862, section 5.5.4. The Tentative state indicates that the address is undergoing Duplicate Address Detection (DAD), as defined in RFC4862, section 5.4. The Failed state indicates a static address that did not pass DAD. A static address in the Failed state is not in use on the network stack, and corrective action is required to remedy this condition.", "readonly": true }, "Oem": { "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem", - "description": "Oem extension object.", - "longDescription": "This object represents the Oem property. All values for resources described by this schema shall comply to the requirements as described in the Redfish specification." + "description": "The OEM extension property.", + "longDescription": "This property shall contain the OEM extensions. All values for properties contained in this object shall conform to the Redfish Specification-described requirements." }, "PrefixLength": { "anyOf": [ @@ -173,8 +174,8 @@ "type": "null" } ], - "description": "This is the IPv6 Address Prefix Length.", - "longDescription": "The value of this property shall be the IPv6 address prefix length for this interface.", + "description": "The IPv6 address prefix Length.", + "longDescription": "This property shall contain the IPv6 address prefix length for this interface.", "readonly": true } }, @@ -188,19 +189,19 @@ "SLAAC" ], "enumDescriptions": { - "DHCPv6": "Address is provided by a DHCPv6 service.", - "LinkLocal": "Address is valid only for this network segment (link).", - "SLAAC": "Address is provided by a Stateless Address AutoConfiguration (SLAAC) service.", - "Static": "A static address as configured by the user." + "DHCPv6": "A DHCPv6 service-provided address.", + "LinkLocal": "The address is valid for only this network segment, or link.", + "SLAAC": "A stateless autoconfiguration (SLAAC) service-provided address.", + "Static": "A static user-configured address." }, "type": "string" }, "IPv6GatewayStaticAddress": { "additionalProperties": false, - "description": "This object represents a single IPv6 static address to be assigned on a network interface.", + "description": "This type represents a single IPv6 static address to be assigned on a network interface.", "longDescription": "This type shall represent a single IPv6 static address to be assigned on a network interface.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -221,12 +222,14 @@ "type": [ "string", "null" - ] + ], + "versionAdded": "v1_1_0" }, "Oem": { "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem", - "description": "Oem extension object.", - "longDescription": "This object represents the Oem property. All values for resources described by this schema shall comply to the requirements as described in the Redfish specification." + "description": "The OEM extension property.", + "longDescription": "This property shall contain the OEM extensions. All values for properties contained in this object shall conform to the Redfish Specification-described requirements.", + "versionAdded": "v1_1_0" }, "PrefixLength": { "anyOf": [ @@ -237,9 +240,10 @@ "type": "null" } ], - "description": "The Prefix Length of this IPv6 address.", - "longDescription": "Provides the IPv6 network prefix length in bits for this address.", - "readonly": false + "description": "The IPv6 network prefix length, in bits, for this address.", + "longDescription": "Provides the IPv6 network prefix length, in bits, for this address.", + "readonly": false, + "versionAdded": "v1_1_0" } }, "required": [ @@ -249,10 +253,10 @@ }, "IPv6StaticAddress": { "additionalProperties": false, - "description": "This object represents a single IPv6 static address to be assigned on a network interface.", + "description": "This type represents a single IPv6 static address to be assigned on a network interface.", "longDescription": "This type shall represent a single IPv6 static address to be assigned on a network interface.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -277,8 +281,8 @@ }, "Oem": { "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem", - "description": "Oem extension object.", - "longDescription": "This object represents the Oem property. All values for resources described by this schema shall comply to the requirements as described in the Redfish specification." + "description": "The OEM extension property.", + "longDescription": "This property shall contain the OEM extensions. All values for properties contained in this object shall conform to the Redfish Specification-described requirements." }, "PrefixLength": { "anyOf": [ @@ -289,8 +293,8 @@ "type": "null" } ], - "description": "The Prefix Length of this IPv6 address.", - "longDescription": "Provides the IPv6 network prefix length in bits for this address.", + "description": "The prefix length, in bits, of this IPv6 address.", + "longDescription": "This property shall contain the IPv6 network prefix length, in bits, for this address.", "readonly": false } }, @@ -311,5 +315,6 @@ } }, "owningEntity": "DMTF", - "title": "#IPAddresses.v1_1_0" + "release": "2018.2", + "title": "#IPAddresses.v1_1_1" } \ No newline at end of file diff --git a/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/Job/Job.json b/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/Job/Job.json index c38dc6f2..9e5ddbf6 100644 --- a/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/Job/Job.json +++ b/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/Job/Job.json @@ -1,15 +1,15 @@ { - "$id": "http://redfish.dmtf.org/schemas/v1/Job.v1_0_1.json", + "$id": "http://redfish.dmtf.org/schemas/v1/Job.v1_0_3.json", "$ref": "#/definitions/Job", "$schema": "http://redfish.dmtf.org/schemas/v1/redfish-schema-v1.json", - "copyright": "Copyright 2014-2018 DMTF. For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright", + "copyright": "Copyright 2014-2019 DMTF. For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright", "definitions": { "Actions": { "additionalProperties": false, - "description": "The available actions for this resource.", - "longDescription": "This type shall contain the available actions for this resource.", + "description": "The available actions for this Resource.", + "longDescription": "This type shall contain the available actions for this Resource.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -25,18 +25,18 @@ "properties": { "Oem": { "$ref": "#/definitions/OemActions", - "description": "This property contains the available OEM specific actions for this resource.", - "longDescription": "This property shall contain any additional OEM actions for this resource." + "description": "The available OEM-specific actions for this Resource.", + "longDescription": "This property shall contain the available OEM-specific actions for this Resource." } }, "type": "object" }, "Job": { "additionalProperties": false, - "description": "This resource contains information about a specific Job scheduled or being executed by a Redfish service's Job Service.", - "longDescription": "This resource shall be used to represent a job in a Redfish implementation.", + "description": "The Job schema contains information about a job that a a Redfish Job Service schedules or executes. Clients create jobs to describe a series of operations that occur at periodic intervals.", + "longDescription": "This Resource shall contain a job in a Redfish implementation.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -51,25 +51,25 @@ }, "properties": { "@odata.context": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/context" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/context" }, "@odata.etag": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/etag" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/etag" }, "@odata.id": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/id" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/id" }, "@odata.type": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/type" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/type" }, "Actions": { "$ref": "#/definitions/Actions", - "description": "The available actions for this resource.", - "longDescription": "The Actions property shall contain the available actions for this resource." + "description": "The available actions for this Resource.", + "longDescription": "This property shall contain the available actions for this Resource." }, "CreatedBy": { "description": "The person or program that created this job entry.", - "longDescription": "The value of this property shall be the user name, software program name, or other identifier indicating the creator of this job.", + "longDescription": "This property shall contain the user name, software program name, or other identifier indicating the creator of this job.", "readonly": true, "type": "string" }, @@ -85,18 +85,15 @@ "readonly": true }, "EndTime": { - "description": "The date-time stamp that the job was completed.", + "description": "The date and time when the job was completed.", "format": "date-time", - "longDescription": "The value of this property shall indicate the time the job was completed. This property shall not appear if the job is running or has otherwise not been completed. This property shall appear only if the JobState is Completed, Cancelled, or Exception.", + "longDescription": "This property shall indicate the date and time when the job was completed. This property shall not appear if the job is running or was not completed. This property shall appear only if the JobState is Completed, Cancelled, or Exception.", "readonly": true, - "type": [ - "string", - "null" - ] + "type": "string" }, "HidePayload": { - "description": "Indicates that the contents of the Payload should be hidden from view after the Job has been created. When set to True, the Payload object will not be returned on GET.", - "longDescription": "This property shall be set to True if the Payload object shall not be returned on GET operations, and set to False if the contents can be returned normally. If this property is not specified when the Job is created, the default value shall be False.", + "description": "An indication of whether the contents of the payload should be hidden from view after the job has been created. If `true`, responses do not return the payload. If `false`, responses return the payload. If this property is not present when the job is created, the default is `false`.", + "longDescription": "This property shall indicate whether the contents of the payload should be hidden from view after the job has been created. If `true`, responses shall not return the Payload property. If `false`, responses shall return the Payload property. If this property is not present when the job is created, the default is `false`.", "readonly": true, "type": "boolean" }, @@ -107,13 +104,13 @@ "JobState": { "$ref": "#/definitions/JobState", "description": "The state of the job.", - "longDescription": "The value of this property shall indicate the state of the job.", + "longDescription": "This property shall indicate the state of the job.", "readonly": false }, "JobStatus": { "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Health", "description": "The status of the job.", - "longDescription": "The value of this property shall indicate the health status of the job.", + "longDescription": "This property shall indicate the health status of the job.", "readonly": true }, "MaxExecutionTime": { @@ -126,11 +123,11 @@ ] }, "Messages": { - "description": "This is an array of messages associated with the job.", + "description": "An array of messages associated with the job.", "items": { "$ref": "http://redfish.dmtf.org/schemas/v1/Message.json#/definitions/Message" }, - "longDescription": "The value of this property shall be an array of messages associated with the job.", + "longDescription": "This property shall contain an array of messages associated with the job.", "type": "array" }, "Name": { @@ -139,17 +136,17 @@ }, "Oem": { "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem", - "description": "This is the manufacturer/provider specific extension moniker used to divide the Oem object into sections.", - "longDescription": "The value of this string shall be of the format for the reserved word *Oem*." + "description": "The OEM extension property.", + "longDescription": "This property shall contain the OEM extensions. All values for properties that this object contains shall conform to the Redfish Specification-described requirements." }, "Payload": { "$ref": "#/definitions/Payload", "description": "The HTTP and JSON payload details for this job.", - "longDescription": "This object shall contain information detailing the HTTP and JSON payload information for executing this job. This object shall not be included in the response if the HidePayload property is set to True." + "longDescription": "This property shall contain the HTTP and JSON payload information for executing this job. This property shall not be included in the response if the HidePayload property is `true`." }, "PercentComplete": { "description": "The completion percentage of this job.", - "longDescription": "The value of this property shall indicate the completion progress of the job, reported in percent of completion. If the job has not been started, the value shall be zero.", + "longDescription": "This property shall indicate the completion progress of the job, reported in percent of completion. If the job has not been started, the value shall be zero.", "readonly": true, "type": [ "integer", @@ -159,29 +156,29 @@ }, "Schedule": { "$ref": "http://redfish.dmtf.org/schemas/v1/Schedule.json#/definitions/Schedule", - "description": "The Schedule Settings for this Job.", - "longDescription": "This object shall contain information detailing the scheduling for this job and the re-occurrence frequency for future instances of this job." + "description": "The schedule settings for this job.", + "longDescription": "This object shall contain the scheduling details for this job and the recurrence frequency for future instances of this job." }, "StartTime": { - "description": "The date-time stamp that the job was started or is scheduled to start.", + "description": "The date and time when the job was started or is scheduled to start.", "format": "date-time", - "longDescription": "The value of this property shall indicate the time the job was last started or will start as scheduled.", + "longDescription": "This property shall indicate the date and time when the job was last started or is scheduled to start.", "readonly": true, "type": "string" }, "StepOrder": { - "description": "This represents the serialized execution order of the Job Steps.", + "description": "The serialized execution order of the job Steps.", "items": { "type": "string" }, - "longDescription": "The value of this property shall be an array of Ids for the Job Steps in the order that they shall be executed. Each step shall be completed prior to the execution of the next step in array order. An incomplete list of steps shall be considered an invalid configuration. If this property is not present or contains an empty array it shall indicate that the step execution order is not specified and may occur in parallel or in series as determined by the service.", + "longDescription": "This property shall contain an array of IDs for the job steps in the order that they shall be executed. Each step shall be completed prior to the execution of the next step in array order. An incomplete list of steps shall be considered an invalid configuration. If this property is not present or contains an empty array it shall indicate that the step execution order is omitted and may occur in parallel or in series as determined by the service.", "readonly": true, "type": "array" }, "Steps": { "$ref": "http://redfish.dmtf.org/schemas/v1/JobCollection.json#/definitions/JobCollection", - "description": "A link to a collection of Steps for this Job.", - "longDescription": "This property shall contain the link to a collection of type Job.", + "description": "The link to a collection of steps for this job.", + "longDescription": "This property shall contain the link to a Resource Collection of type JobCollection.", "readonly": true } }, @@ -210,8 +207,8 @@ "Continue" ], "enumDescriptions": { - "Cancelled": "Job was cancelled..", - "Completed": "Job has completed.", + "Cancelled": "Job was cancelled.", + "Completed": "Job was completed.", "Continue": "Job is to resume operation.", "Exception": "Job has stopped due to an exception condition.", "Interrupted": "Job has been interrupted.", @@ -225,10 +222,10 @@ "UserIntervention": "Job is waiting for user intervention." }, "enumLongDescriptions": { - "Cancelled": "This value shall represent that the operation is complete because the job was cancelled by an operator.", - "Completed": "This value shall represent that the operation is complete and completed successfully or with warnings.", + "Cancelled": "This value shall represent that the operation completed because the job was cancelled by an operator.", + "Completed": "This value shall represent that the operation completed successfully or with warnings.", "Continue": "This value shall represent that the operation has been resumed from a paused condition and should return to a Running state.", - "Exception": "This value shall represent that the operation is complete and completed with errors.", + "Exception": "This value shall represent that the operation completed with errors.", "Interrupted": "This value shall represent that the operation has been interrupted but is expected to restart and is therefore not complete.", "New": "This value shall represent that this job is newly created but the operation has not yet started.", "Pending": "This value shall represent that the operation is pending some condition and has not yet begun to execute.", @@ -237,16 +234,16 @@ "Starting": "This value shall represent that the operation is starting.", "Stopping": "This value shall represent that the operation is stopping but is not yet complete.", "Suspended": "This value shall represent that the operation has been suspended but is expected to restart and is therefore not complete.", - "UserIntervention": "This value shall represent that the operation is waiting for a user to intervene and must be manually continued, stopped or cancelled." + "UserIntervention": "This value shall represent that the operation is waiting for a user to intervene and must be manually continued, stopped, or cancelled." }, "type": "string" }, "OemActions": { "additionalProperties": true, - "description": "The available OEM specific actions for this resource.", - "longDescription": "This type shall contain any additional OEM actions for this resource.", + "description": "The available OEM-specific actions for this Resource.", + "longDescription": "This type shall contain the available OEM-specific actions for this Resource.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -267,7 +264,7 @@ "description": "The HTTP and JSON payload details for this job.", "longDescription": "This object shall contain information detailing the HTTP and JSON payload information for executing this job.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -282,30 +279,30 @@ }, "properties": { "HttpHeaders": { - "description": "This represents the HTTP headers used in the operation of this job.", + "description": "An array of HTTP headers in this job.", "items": { "type": "string" }, - "longDescription": "The value of this property shall be an array of HTTP headers used in the execution of this job.", + "longDescription": "This property shall contain an array of HTTP headers in this job.", "readonly": true, "type": "array" }, "HttpOperation": { - "description": "The HTTP operation to perform to execute this job.", - "longDescription": "This property shall contain the HTTP operation to execute for this job.", + "description": "The HTTP operation that executes this job.", + "longDescription": "This property shall contain the HTTP operation that executes this job.", "readonly": true, "type": "string" }, "JsonBody": { - "description": "This property contains the JSON payload to use in the execution of this Job.", - "longDescription": "The value of this property shall be JSON formatted payload used for this job.", + "description": "The JSON payload to use in the execution of this job.", + "longDescription": "This property shall contain JSON-formatted payload for this job.", "readonly": true, "type": "string" }, "TargetUri": { - "description": "The URI of the target for this job.", - "format": "uri", - "longDescription": "This property shall contain a URI referencing a location to be used as the target for an HTTP operation.", + "description": "The link to the target for this job.", + "format": "uri-reference", + "longDescription": "This property shall contain link to a target location for an HTTP operation.", "readonly": true, "type": "string" } @@ -315,5 +312,5 @@ }, "owningEntity": "DMTF", "release": "2018.2", - "title": "#Job.v1_0_1.Job" + "title": "#Job.v1_0_3.Job" } \ No newline at end of file diff --git a/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/JobService/JobService.json b/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/JobService/JobService.json index 3eff0f23..4e839e53 100644 --- a/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/JobService/JobService.json +++ b/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/JobService/JobService.json @@ -1,14 +1,15 @@ { + "$id": "http://redfish.dmtf.org/schemas/v1/JobService.v1_0_2.json", "$ref": "#/definitions/JobService", "$schema": "http://redfish.dmtf.org/schemas/v1/redfish-schema-v1.json", - "copyright": "Copyright 2014-2018 DMTF. For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright", + "copyright": "Copyright 2014-2019 DMTF. For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright", "definitions": { "Actions": { "additionalProperties": false, - "description": "The available actions for this resource.", - "longDescription": "This type shall contain the available actions for this resource.", + "description": "The available actions for this Resource.", + "longDescription": "This type shall contain the available actions for this Resource.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -24,18 +25,18 @@ "properties": { "Oem": { "$ref": "#/definitions/OemActions", - "description": "This property contains the available OEM specific actions for this resource.", - "longDescription": "This property shall contain any additional OEM actions for this resource." + "description": "The available OEM-specific actions for this Resource.", + "longDescription": "This property shall contain the available OEM-specific actions for this Resource." } }, "type": "object" }, "JobService": { "additionalProperties": false, - "description": "This is the schema definition for the Job Service. It represents the properties for the service itself and has links to the actual list of tasks.", - "longDescription": "This resource shall be used to represent a job service for a Redfish implementation.", + "description": "The Redfish Job Service enables the scheduling and execution of operations, represents the properties for the Job Service itself, and has links to the actual Resource Collection of Jobs.", + "longDescription": "This Resource shall represent a Job Service for a Redfish implementation.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -50,26 +51,26 @@ }, "properties": { "@odata.context": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/context" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/context" }, "@odata.etag": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/etag" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/etag" }, "@odata.id": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/id" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/id" }, "@odata.type": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/type" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/type" }, "Actions": { "$ref": "#/definitions/Actions", - "description": "The available actions for this resource.", - "longDescription": "The Actions property shall contain the available actions for this resource." + "description": "The available actions for this Resource.", + "longDescription": "This property shall contain the available actions for this Resource." }, "DateTime": { - "description": "The current DateTime (with offset) setting that the job service is using.", + "description": "The current date and time, with UTC offset, setting that the Job Service uses.", "format": "date-time", - "longDescription": "The value of this property shall represent the current DateTime value for the JobService, with offset from UTC, in Redfish Timestamp format.", + "longDescription": "This property shall represent the current DateTime value for the Job Service, with UTC offset, in Redfish Timestamp format.", "readonly": true, "type": [ "string", @@ -93,14 +94,14 @@ }, "Jobs": { "$ref": "http://redfish.dmtf.org/schemas/v1/JobCollection.json#/definitions/JobCollection", - "description": "References to the Jobs collection.", - "longDescription": "The value of this property shall be a link to a resource of type JobCollection.", + "description": "The links to the Jobs collection.", + "longDescription": "This property shall contain a link to a Resource of type JobCollection.", "readonly": true }, "Log": { "$ref": "http://redfish.dmtf.org/schemas/v1/LogService.json#/definitions/LogService", - "description": "This is a reference to a Log Service used by the Job Service.", - "longDescription": "The value of this property shall contain a reference to a LogService for the use by this JobService.", + "description": "The link to a Log Service that the Job Service uses. This service may be a dedicated Log Service or a pointer a Log Service under another entity, such as Manager.", + "longDescription": "This property shall contain a link to a Log Service that this Job Service uses.", "readonly": true }, "Name": { @@ -109,17 +110,17 @@ }, "Oem": { "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem", - "description": "This is the manufacturer/provider specific extension moniker used to divide the Oem object into sections.", - "longDescription": "The value of this string shall be of the format for the reserved word *Oem*." + "description": "The OEM extension property.", + "longDescription": "This property shall contain the OEM extensions. All values for properties that this object contains shall conform to the Redfish Specification-described requirements." }, "ServiceCapabilities": { "$ref": "#/definitions/JobServiceCapabilities", - "description": "This object describes the supported capabilities of this Job Service implementation.", - "longDescription": "This type shall contain properties which describe the capabilities or supported features of this implementation of JobService." + "description": "The supported capabilities of this Job Service implementation.", + "longDescription": "This type shall contain properties that describe the capabilities or supported features of this implementation of a Job Service." }, "ServiceEnabled": { - "description": "This indicates whether this service is enabled.", - "longDescription": "The value of this property shall be a boolean indicating whether this service is enabled.", + "description": "An indication of whether this service is enabled.", + "longDescription": "This property shall indicate whether this service is enabled.", "readonly": false, "type": [ "boolean", @@ -128,8 +129,8 @@ }, "Status": { "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Status", - "description": "This property describes the status and health of the resource and its children.", - "longDescription": "This property shall contain any status or health properties of the resource." + "description": "The status and health of the Resource and its subordinate or dependent Resources.", + "longDescription": "This property shall contain any status or health properties of the Resource." } }, "required": [ @@ -142,10 +143,10 @@ }, "JobServiceCapabilities": { "additionalProperties": false, - "description": "This object describes the supported capabilities of this Job Service implementation.", - "longDescription": "This type shall contain properties which describe the capabilities or supported features of this implementation of JobService.", + "description": "The supported capabilities of this Job Service implementation.", + "longDescription": "This type shall contain properties that describe the capabilities or supported features of this implementation of a Job Service.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -160,8 +161,8 @@ }, "properties": { "MaxJobs": { - "description": "Maximum number of Jobs supported.", - "longDescription": "The value of this property shall be the maximum number of Job resources supported by the implementation.", + "description": "The maximum number of jobs supported.", + "longDescription": "This property shall contain the maximum number of jobs supported by the implementation.", "readonly": true, "type": [ "integer", @@ -169,8 +170,8 @@ ] }, "MaxSteps": { - "description": "Maximum number of Job Steps supported.", - "longDescription": "The value of this property shall be the maximum number of Step resources supported by a single Job instance.", + "description": "The maximum number of job steps supported.", + "longDescription": "This property shall contain the maximum number of steps supported by a single job instance.", "readonly": true, "type": [ "integer", @@ -178,8 +179,8 @@ ] }, "Scheduling": { - "description": "Indicates whether scheduling of Jobs is supported.", - "longDescription": "The value of this property shall indicate the support of scheduling of Jobs using the Schedule object within the Job resource.", + "description": "An indication of whether scheduling of jobs is supported.", + "longDescription": "This property shall indicate whether the Schedule property within the job supports scheduling of jobs.", "readonly": true, "type": [ "boolean", @@ -191,10 +192,10 @@ }, "OemActions": { "additionalProperties": true, - "description": "The available OEM specific actions for this resource.", - "longDescription": "This type shall contain any additional OEM actions for this resource.", + "description": "The available OEM-specific actions for this Resource.", + "longDescription": "This type shall contain the available OEM-specific actions for this Resource.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -212,5 +213,6 @@ } }, "owningEntity": "DMTF", - "title": "#JobService.v1_0_0.JobService" + "release": "2018.2", + "title": "#JobService.v1_0_2.JobService" } \ No newline at end of file diff --git a/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/JsonSchemaFile/JsonSchemaFile.json b/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/JsonSchemaFile/JsonSchemaFile.json index e5465ae2..cb8c4e9c 100644 --- a/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/JsonSchemaFile/JsonSchemaFile.json +++ b/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/JsonSchemaFile/JsonSchemaFile.json @@ -1,15 +1,15 @@ { - "$id": "http://redfish.dmtf.org/schemas/v1/JsonSchemaFile.v1_1_2.json", + "$id": "http://redfish.dmtf.org/schemas/v1/JsonSchemaFile.v1_1_4.json", "$ref": "#/definitions/JsonSchemaFile", "$schema": "http://redfish.dmtf.org/schemas/v1/redfish-schema-v1.json", - "copyright": "Copyright 2014-2018 DMTF. For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright", + "copyright": "Copyright 2014-2019 DMTF. For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright", "definitions": { "Actions": { "additionalProperties": false, - "description": "The available actions for this resource.", - "longDescription": "This type shall contain the available actions for this resource.", + "description": "The available actions for this Resource.", + "longDescription": "This type shall contain the available actions for this Resource.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -25,8 +25,8 @@ "properties": { "Oem": { "$ref": "#/definitions/OemActions", - "description": "This property contains the available OEM specific actions for this resource.", - "longDescription": "This property shall contain any additional OEM actions for this resource.", + "description": "The available OEM-specific actions for this Resource.", + "longDescription": "This property shall contain the available OEM-specific actions for this Resource.", "versionAdded": "v1_1_0" } }, @@ -34,10 +34,10 @@ }, "JsonSchemaFile": { "additionalProperties": false, - "description": "This is the schema definition for the Schema File locator resource.", - "longDescription": "This resource shall be used to represent the Schema File locator resource for a Redfish implementation.", + "description": "The JsonSchemaFile schema contains the properties that describe the locations, as URIs, of a Redfish Schema definition that a Redfish Service implements or references.", + "longDescription": "This Resource shall represent the schema file locator Resource for a Redfish implementation.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -52,21 +52,21 @@ }, "properties": { "@odata.context": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/context" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/context" }, "@odata.etag": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/etag" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/etag" }, "@odata.id": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/id" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/id" }, "@odata.type": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/type" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/type" }, "Actions": { "$ref": "#/definitions/Actions", - "description": "The available actions for this resource.", - "longDescription": "The Actions property shall contain the available actions for this resource.", + "description": "The available actions for this Resource.", + "longDescription": "This property shall contain the available actions for this Resource.", "versionAdded": "v1_1_0" }, "Description": { @@ -85,11 +85,11 @@ "readonly": true }, "Languages": { - "description": "Language codes for the schemas available.", + "description": "The RFC5646-conformant language codes for the available schemas.", "items": { "type": "string" }, - "longDescription": "The value of this property shall be a string consisting of an RFC 5646 language code.", + "longDescription": "This property contains a set of RFC5646-conformant language codes.", "readonly": true, "type": "array" }, @@ -107,12 +107,12 @@ }, "Oem": { "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem", - "description": "This is the manufacturer/provider specific extension moniker used to divide the Oem object into sections.", - "longDescription": "The value of this string shall be of the format for the reserved word *Oem*." + "description": "The OEM extension property.", + "longDescription": "This property shall contain the OEM extensions. All values for properties that this object contains shall conform to the Redfish Specification-described requirements." }, "Schema": { "description": "The @odata.type name this schema describes.", - "longDescription": "The value of this property shall be the value of the @odata.type property for that schema and shall conform to the syntax specified in the Redfish specification for the Type property.", + "longDescription": "This property shall contain the @odata.type property value for that schema and shall conform to the Redfish Specification-specified syntax for the Type property.", "readonly": true, "type": "string" } @@ -133,7 +133,7 @@ "description": "Location information for a schema file.", "longDescription": "This type shall describe location information for a schema file.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -148,35 +148,35 @@ }, "properties": { "ArchiveFile": { - "description": "If the schema is hosted on the service in an archive file, this is the name of the file within the archive.", - "longDescription": "The value of this property shall be the file name of the individual schema file within the archive file specified by the ArchiveUri property. The file name shall conform to the format specified in the Redfish specification.", + "description": "The name of the file in the archive, if the schema is hosted on the service in an archive file.", + "longDescription": "This property shall contain the file name of the individual schema file within the archive file that the ArchiveUri property specifies. The file name shall conform to the Redfish Specification-described format.", "readonly": true, "type": "string" }, "ArchiveUri": { - "description": "If the schema is hosted on the service in an archive file, this is the link to the archive file.", - "format": "uri", - "longDescription": "The value of this property shall be a URI co-located with the Redfish service that specifies the location of the schema file. This property shall only be used for archive files (zip or other formats). The value of ArchiveFile shall have the file name of the individual schema file within the archive file.", + "description": "The link to an archive file, if the schema is hosted on the service in an archive file.", + "format": "uri-reference", + "longDescription": "This property shall contain a URI colocated with the Redfish Service that specifies the location of the schema file, which can be retrieved using the Redfish protocol and authentication methods. This property shall be used for only archive files, in zip or other formats. The ArchiveFile value shall be the individual schema file name within the archive file.", "readonly": true, "type": "string" }, "Language": { - "description": "The language code for the file the schema is in.", - "longDescription": "The value of this property shall be a string consisting of an RFC5646 language code or the string 'default'.", + "description": "The language code for the schema file.", + "longDescription": "This property shall contain an RFC5646-conformant language code or the `default` string.", "readonly": true, "type": "string" }, "PublicationUri": { - "description": "Link to publicly available (canonical) URI for schema.", - "format": "uri", - "longDescription": "The value of this property shall be a URI not co-located with the Redfish service that specifies the canonical location of the schema file. This property shall only be used for individual schema files.", + "description": "The link to publicly available (canonical) URI for schema.", + "format": "uri-reference", + "longDescription": "This property shall contain a URI not colocated with the Redfish Service that specifies the canonical location of the schema file. This property shall be used for only individual schema files.", "readonly": true, "type": "string" }, "Uri": { - "description": "Link to locally available URI for schema.", - "format": "uri", - "longDescription": "The value of this property shall be a URI co-located with the Redfish service that specifies the location of the schema file. This property shall only be used for individual schema files. The file name portion of the URI shall conform to the format specified in the Redfish specification.", + "description": "The link to locally available URI for schema.", + "format": "uri-reference", + "longDescription": "This property shall contain a URI colocated with the Redfish Service that specifies the location of the schema file, which can be retrieved using the Redfish protocol and authentication methods. This property shall be used for only individual schema files. The file name portion of the URI shall conform to the format specified in the Redfish Specification.", "readonly": true, "type": "string" } @@ -185,10 +185,10 @@ }, "OemActions": { "additionalProperties": true, - "description": "The available OEM specific actions for this resource.", - "longDescription": "This type shall contain any additional OEM actions for this resource.", + "description": "The available OEM-specific actions for this Resource.", + "longDescription": "This type shall contain the available OEM-specific actions for this Resource.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -207,5 +207,5 @@ }, "owningEntity": "DMTF", "release": "2017.1", - "title": "#JsonSchemaFile.v1_1_2.JsonSchemaFile" + "title": "#JsonSchemaFile.v1_1_4.JsonSchemaFile" } \ No newline at end of file diff --git a/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/LogEntry/LogEntry.json b/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/LogEntry/LogEntry.json index 8b38c9df..a3686953 100644 --- a/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/LogEntry/LogEntry.json +++ b/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/LogEntry/LogEntry.json @@ -1,15 +1,15 @@ { - "$id": "http://redfish.dmtf.org/schemas/v1/LogEntry.v1_4_1.json", + "$id": "http://redfish.dmtf.org/schemas/v1/LogEntry.v1_4_3.json", "$ref": "#/definitions/LogEntry", "$schema": "http://redfish.dmtf.org/schemas/v1/redfish-schema-v1.json", - "copyright": "Copyright 2014-2018 DMTF. For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright", + "copyright": "Copyright 2014-2019 DMTF. For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright", "definitions": { "Actions": { "additionalProperties": false, - "description": "The available actions for this resource.", - "longDescription": "This type shall contain the available actions for this resource.", + "description": "The available actions for this Resource.", + "longDescription": "This type shall contain the available actions for this Resource.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -25,8 +25,8 @@ "properties": { "Oem": { "$ref": "#/definitions/OemActions", - "description": "This property contains the available OEM specific actions for this resource.", - "longDescription": "This property shall contain any additional OEM actions for this resource.", + "description": "The available OEM-specific actions for this Resource.", + "longDescription": "This property shall contain the available OEM-specific actions for this Resource.", "versionAdded": "v1_2_0" } }, @@ -39,18 +39,18 @@ "Critical" ], "enumDescriptions": { - "Critical": "A critical condition requiring immediate attention.", + "Critical": "A critical condition that requires immediate attention.", "OK": "Informational or operating normally.", - "Warning": "A condition requiring attention." + "Warning": "A condition that requires attention." }, "type": "string" }, "Links": { "additionalProperties": false, - "description": "Contains references to other resources that are related to this resource.", - "longDescription": "This type, as described by the Redfish Specification, shall contain references to resources that are related to, but not contained by (subordinate to), this resource.", + "description": "The links to other Resources that are related to this Resource.", + "longDescription": "This Redfish Specification-described type shall contain links to Resources that are related to but are not contained by or subordinate to this Resource.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -66,13 +66,13 @@ "properties": { "Oem": { "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem", - "description": "Oem extension object.", - "longDescription": "This object represents the Oem property. All values for resources described by this schema shall comply to the requirements as described in the Redfish specification." + "description": "The OEM extension property.", + "longDescription": "This property shall contain the OEM extensions. All values for properties contained in this object shall conform to the Redfish Specification-described requirements." }, "OriginOfCondition": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/idRef", - "description": "This is the URI of the resource that caused the log entry.", - "longDescription": "The value of this property shall be an href that references the resource for which the log is associated.", + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/idRef", + "description": "The URI of the Resource that caused the log entry.", + "longDescription": "This property shall contain a link to the Resource that caused the log entry.", "readonly": true } }, @@ -80,10 +80,10 @@ }, "LogEntry": { "additionalProperties": false, - "description": "This resource defines the record format for a log. It is designed to be used for SEL logs (from IPMI) as well as Event Logs and OEM-specific log formats. The EntryType field indicates the type of log and the resource includes several additional properties dependent on the EntryType.", - "longDescription": "This resource shall represent the log format for log services in a Redfish implementation.", + "description": "The LogEntry schema defines the record format for a log. It is designed for Redfish event logs, OEM-specific log formats, and the IPMI System Event Log (SEL). The EntryType field indicates the type of log and the Resource includes several additional properties dependent on the EntryType.", + "longDescription": "This Resource shall represent the log format for Log Services in a Redfish implementation.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -98,27 +98,27 @@ }, "properties": { "@odata.context": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/context" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/context" }, "@odata.etag": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/etag" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/etag" }, "@odata.id": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/id" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/id" }, "@odata.type": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/type" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/type" }, "Actions": { "$ref": "#/definitions/Actions", - "description": "The available actions for this resource.", - "longDescription": "The Actions property shall contain the available actions for this resource.", + "description": "The available actions for this Resource.", + "longDescription": "This property shall contain the available actions for this Resource.", "versionAdded": "v1_2_0" }, "Created": { - "description": "The time the log entry was created.", + "description": "The date and time when the log entry was created.", "format": "date-time", - "longDescription": "The value of this property shall be the time at which the log entry was created.", + "longDescription": "This property shall contain the date and time when the log entry was created.", "readonly": true, "type": "string" }, @@ -142,19 +142,19 @@ "type": "null" } ], - "description": "If the EntryType is SEL, this will have the entry code for the log entry.", - "longDescription": "This property shall be present if the EntryType value is SEL. These enumerations are the values from tables 42-1 and 42-2 of the IPMI specification.", + "description": "The entry code for the log entry if the entry type is `SEL`.", + "longDescription": "This property shall contain the entry code for the log entry if the EntryType is `SEL`. Tables 42-1 and 42-2 of the IPMI Specification describe these enumerations.", "readonly": true }, "EntryType": { "$ref": "#/definitions/LogEntryType", - "description": "This is the type of log entry.", - "longDescription": "This property shall represent the type of LogEntry. If the resource represents an IPMI SEL log entry, the value shall be SEL. If the resource represents an Event log, the value shall be Event. If the resource represents an OEM log format, the value shall be Oem.", + "description": "The type of log entry.", + "longDescription": "This property shall represent the type of log entry. If the Resource represents an IPMI SEL entry, the value shall contain `SEL`. If the Resource represents a Redfish event log entry, the value shall contain `Event`. If the Resource represents an OEM log entry format, the value shall contain `Oem`.", "readonly": true }, "EventGroupId": { - "description": "This value is the identifier used to correlate events that came from the same cause.", - "longDescription": "The value of this property shall indicate that events are related and shall have the same value in the case where multiple Event messages are produced by the same root cause. Implementations shall use separate values for events with separate root cause. There shall not be ordering of events implied by the value of this property.", + "description": "An identifier that correlates events with the same cause.", + "longDescription": "This property shall indicate that events are related and shall have the same value in the case where multiple event messages are produced by the same root cause. Implementations shall use separate values for events with separate root cause. There shall not be ordering of events implied by this property's value.", "readonly": true, "type": [ "integer", @@ -163,26 +163,28 @@ "versionAdded": "v1_4_0" }, "EventId": { - "description": "This is a unique instance identifier of an event.", + "description": "The unique instance identifier for an event.", "longDescription": "If present, this LogEntry records an Event and the value shall indicate a unique identifier for the event, the format of which is implementation dependent.", "readonly": true, "type": "string", "versionAdded": "v1_1_0" }, "EventTimestamp": { - "description": "This is time the event occurred.", + "description": "The date and time when the event occurred.", "format": "date-time", - "longDescription": "If present, this LogEntry records an Event and the value shall be the time the event occurred.", + "longDescription": "If present, this LogEntry records an event and the value shall contain the date and time when the event occurred.", "readonly": true, "type": "string", "versionAdded": "v1_1_0" }, "EventType": { "$ref": "http://redfish.dmtf.org/schemas/v1/Event.json#/definitions/EventType", - "description": "This indicates the type of an event recorded in this log.", - "longDescription": "If present, this LogEntry records an Event and the value shall indicate the type of event.", + "deprecated": "This property has been deprecated. Starting with Redfish Specification v1.6 (Event v1.3), subscriptions are based on the RegistryPrefix and ResourceType properties and not on the EventType property.", + "description": "The type of event recorded in this log.", + "longDescription": "If present, this LogEntry records an event and the value shall indicate the type of event.", "readonly": true, - "versionAdded": "v1_1_0" + "versionAdded": "v1_1_0", + "versionDeprecated": "v1_4_0" }, "Id": { "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Id", @@ -190,12 +192,12 @@ }, "Links": { "$ref": "#/definitions/Links", - "description": "Contains references to other resources that are related to this resource.", - "longDescription": "The Links property, as described by the Redfish Specification, shall contain references to resources that are related to, but not contained by (subordinate to), this resource." + "description": "The links to other Resources that are related to this Resource.", + "longDescription": "This Redfish Specification-described property shall contain links to Resources that are related to but are not contained by or subordinate to this Resource." }, "Message": { - "description": "This property decodes from EntryType. If the EntryType is Event, then it is a message string. Otherwise, it is SEL or OEM specific. In most cases, this will be the actual Log Entry.", - "longDescription": "The value of this property shall be the Message property of the event if the EntryType is Event, the Description if the EntryType is SEL, and OEM Specific if the EntryType is Oem.", + "description": "The message of the log entry. This property decodes from the entry type. If the entry type is `Event`, this property contains a message. If the entry type is `SEL`, this property contains an SEL-specific message. Otherwise, this property contains an OEM-specific log entry. In most cases, this property contains the actual log entry.", + "longDescription": "This property shall contain the message of the log entry. This property decodes from the entry type. If the entry type is `Event`, this property contains a message. If the entry type is `SEL`, this property contains an SEL-specific. Otherwise, this property contains an OEM-specific log entry. In most cases, this property contains the actual log entry.", "readonly": true, "type": [ "string", @@ -203,17 +205,17 @@ ] }, "MessageArgs": { - "description": "The values of this property shall be any arguments for the message.", + "description": "The arguments for the message.", "items": { "type": "string" }, - "longDescription": "This contains message arguments to be substituted into the message included or in the message looked up via a registry.", + "longDescription": "This property shall contain message arguments to substitute into the included or looked-up message.", "readonly": true, "type": "array" }, "MessageId": { - "description": "This property decodes from EntryType. If the EntryType is Event, then it is a message id. If the EntryType is SEL, then it contains the Event Data. Otherwise, it is OEM specific. This value is only used for registries - for more information, see the specification.", - "longDescription": "The value of this property shall the MessageId property of the event if the EntryType is Event, the three IPMI Event Data bytes if the EntryType is SEL, and OEM Specific if the EntryType is Oem. The format of this property shall be as defined in the Redfish specification. If representing the three IPMI Event Data bytes, the format should follow the pattern '^0[xX](([a-fA-F]|[0-9]){2}){3}$', where Event Data 1 is the first byte in the string, Event Data 2 is the second byte in the string, and Event Data 3 is the third byte in the string.", + "description": "The MessageId, event data, or OEM-specific information. This property decodes from the entry type. If the entry type is `Event`, this property contains a Redfish Specification-defined MessageId. If the entry type is `SEL`, this property contains the Event Data. Otherwise, this property contains OEM-specific information.", + "longDescription": "This property shall contain the MessageId, event data, or OEM-specific information. This property decodes from the entry type. If the entry type is `Event`, this property contains a Redfish Specification-defined MessageId property of the event. If the entry type is `SEL`, this property contains the three IPMI Event Data bytes. In this case, the format should follow the `^0[xX](([a-fA-F]|[0-9]){2}){3}$` pattern, where Event Data 1 is the first byte in the string, Event Data 2 is the second byte in the string, and Event Data 3 is the third byte in the string. Otherwise, this property contains OEM-specific information.", "readonly": true, "type": "string" }, @@ -223,12 +225,12 @@ }, "Oem": { "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem", - "description": "This is the manufacturer/provider specific extension moniker used to divide the Oem object into sections.", - "longDescription": "The value of this string shall be of the format for the reserved word *Oem*." + "description": "The OEM extension property.", + "longDescription": "This property shall contain the OEM extensions. All values for properties that this object contains shall conform to the Redfish Specification-described requirements." }, "OemLogEntryCode": { - "description": "If the LogEntryCode type is OEM, this will contain the OEM-specific entry code.", - "longDescription": "The value of this property shall represent the OEM specific Log Entry Code type of the Entry. This property shall only be present if the value of EntryType is SEL and the value of LogEntryCode is OEM.", + "description": "The OEM-specific entry code, if the LogEntryCode type is `OEM`.", + "longDescription": "This property shall represent the OEM-specific Log Entry Code type of the Entry. This property shall only be present if EntryType is `SEL` and LogEntryCode is `OEM`.", "readonly": true, "type": [ "string", @@ -237,8 +239,8 @@ "versionAdded": "v1_3_0" }, "OemRecordFormat": { - "description": "If the EntryType is Oem, this will contain more information about the record format from the Oem.", - "longDescription": "The value of this property shall represent the OEM specific format of the Entry. This property shall be required if the value of EntryType is Oem.", + "description": "The OEM-specific format of the entry. If the entry type is `Oem`, this property contains more information about the record format from the OEM.", + "longDescription": "This property shall represent the OEM-specific format of the entry. This property shall be required if the EntryType value is `Oem`.", "readonly": true, "type": [ "string", @@ -246,8 +248,8 @@ ] }, "OemSensorType": { - "description": "If the Sensor Type is OEM, this will contain the OEM-specific sensor type.", - "longDescription": "The value of this property shall represent the OEM specific sensor type of the Entry. This property shall only be used if the value of EntryType is SEL and the value of SensorType is OEM.", + "description": "The OEM-specific sensor type if the sensor type is `OEM`.", + "longDescription": "This property shall represent the OEM-specific sensor type of the entry. This property shall only be used if EntryType is `SEL` and SensorType is `OEM`.", "readonly": true, "type": [ "string", @@ -256,8 +258,8 @@ "versionAdded": "v1_3_0" }, "SensorNumber": { - "description": "This property decodes from EntryType. If the EntryType is SEL, it is the sensor number. If the EntryType is Event, then the count of events. Otherwise, it is OEM specific.", - "longDescription": "The value of this property shall be the IPMI sensor number if the EntryType is SEL, the count of events if the EntryType is Event, and OEM Specific if EntryType is Oem.", + "description": "The sensor number, the count of events, or OEM-specific information. This property value is decoded from the entry type. If the entry type is `SEL`, this property contains the sensor number. If the entry type is `Event`, this property contains the count of events. Otherwise, this property contains OEM-specific information.", + "longDescription": "This property shall contain the sensor number, the count of events, or OEM-specific information. This property value is decoded from the entry type. If the entry type is `SEL`, this property contains the sensor number. If the entry type is `Event`, this property contains the count of events. Otherwise, this property contains OEM-specific information.", "readonly": true, "type": [ "integer", @@ -273,8 +275,8 @@ "type": "null" } ], - "description": "If the EntryType is SEL, this will have the sensor type that the log entry pertains to.", - "longDescription": "This property shall be present if the EntryType value is SEL. These enumerations are the values from table 42-3 of the IPMI specification.", + "description": "The sensor type to which the log entry pertains if the entry type is `SEL`.", + "longDescription": "This property shall contain the sensor type to which the log entry pertains if the entry type is `SEL`. Table 42-3 in the IPMI Specification describes these enumerations.", "readonly": true }, "Severity": { @@ -286,8 +288,8 @@ "type": "null" } ], - "description": "This is the severity of the log entry.", - "longDescription": "The value of this property shall be the severity of the condition resulting in the log entry, as defined in the Status section of the Redfish specificaiton.", + "description": "The severity of the log entry.", + "longDescription": "This property shall contain the severity of the condition that created the log entry, as defined in the Status section of the Redfish Specification.", "readonly": true } }, @@ -368,18 +370,18 @@ ], "enumDescriptions": { "Assert": "The condition has been asserted.", - "D0 Power State": "The ACPI defined D0 Power State.", - "D1 Power State": "The ACPI defined D1 Power State.", - "D2 Power State": "The ACPI defined D2 Power State.", - "D3 Power State": "The ACPI defined D3 Power State.", + "D0 Power State": "The ACPI-defined D0 power state.", + "D1 Power State": "The ACPI-defined D1 power state.", + "D2 Power State": "The ACPI-defined D2 power state.", + "D3 Power State": "The ACPI-defined D3 power state.", "Deassert": "The condition has been deasserted.", "Device Disabled": "A device has been disabled.", "Device Enabled": "A device has been enabled.", - "Device Inserted / Device Present": "A device has been inserted or is now present.", - "Device Removed / Device Absent": "A device has been removed or is now absent.", + "Device Inserted / Device Present": "A device has been inserted or is present.", + "Device Removed / Device Absent": "A device has been removed or is absent.", "Fully Redundant": "Indicates that full redundancy has been regained.", - "Informational": "An Informational event.", - "Install Error": "An Install Error has been detected.", + "Informational": "An informational event.", + "Install Error": "An install error has been detected.", "Limit Exceeded": "A limit has been exceeded.", "Limit Not Exceeded": "A limit has not been exceeded.", "Lower Critical - going high": "The reading crossed the Lower Critical threshold while going high.", @@ -388,11 +390,11 @@ "Lower Non-critical - going low": "The reading crossed the Lower Non-critical threshold while going low.", "Lower Non-recoverable - going high": "The reading crossed the Lower Non-recoverable threshold while going high.", "Lower Non-recoverable - going low": "The reading crossed the Lower Non-recoverable threshold while going low.", - "Monitor": "A Monitor event.", - "Non-redundant:Insufficient Resources": "Unit is non-redundant and has insufficient resource to maintain normal operation.", - "Non-redundant:Sufficient Resources from Insufficient Resources": "Unit has regianed minimum resources needed for normal operation.", + "Monitor": "A monitor event.", + "Non-redundant:Insufficient Resources": "Unit is non-redundant and has insufficient resources to maintain normal operation.", + "Non-redundant:Sufficient Resources from Insufficient Resources": "Unit has regained minimum resources needed for normal operation.", "Non-redundant:Sufficient Resources from Redundant": "Redundancy has been lost but unit is functioning with minimum resources needed for normal operation.", - "OEM": "An OEM defined event.", + "OEM": "An OEM-defined event.", "Performance Lags": "Performance does not meet expectations.", "Performance Met": "Performance meets expectations.", "Predictive Failure asserted": "A Predictive Failure has been detected.", @@ -440,18 +442,18 @@ "Oem" ], "enumDescriptions": { - "Event": "Contains a Redfish-defined message (event).", - "Oem": "Contains an entry in an OEM-defined format.", - "SEL": "Contains a legacy IPMI System Event Log (SEL) entry." + "Event": "A Redfish-defined message.", + "Oem": "An entry in an OEM-defined format.", + "SEL": "A legacy IPMI System Event Log (SEL) entry." }, "type": "string" }, "OemActions": { "additionalProperties": true, - "description": "The available OEM specific actions for this resource.", - "longDescription": "This type shall contain any additional OEM actions for this resource.", + "description": "The available OEM-specific actions for this Resource.", + "longDescription": "This type shall contain the available OEM-specific actions for this Resource.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -520,7 +522,7 @@ "Battery": "A sensor for a battery.", "Boot Error": "A sensor for a boot error event.", "Button/Switch": "A sensor for a button or switch.", - "Cable/Interconnect": "A sensor for a cable or interconnect type of device.", + "Cable/Interconnect": "A sensor for a cable or interconnect device type.", "Chassis": "A sensor for a chassis.", "ChipSet": "A sensor for a chipset.", "CoolingDevice": "A sensor for a cooling device.", @@ -537,9 +539,9 @@ "Microcontroller/Coprocessor": "A sensor for a microcontroller or coprocessor.", "Module/Board": "A sensor for a module or board.", "Monitor ASIC/IC": "A sensor for a monitor ASIC or IC.", - "OEM": "An OEM defined sensor.", + "OEM": "An OEM-defined sensor.", "OS Stop/Shutdown": "A sensor for an OS stop or shutdown event", - "Other FRU": "A sensor for an other type of FRU.", + "Other FRU": "A sensor for another type of FRU.", "Other Units-based Sensor": "A sensor for a miscellaneous analog sensor.", "POST Memory Resize": "A sensor for a POST memory resize event.", "Physical Chassis Security": "A physical security sensor.", @@ -568,5 +570,5 @@ }, "owningEntity": "DMTF", "release": "2018.2", - "title": "#LogEntry.v1_4_1.LogEntry" + "title": "#LogEntry.v1_4_3.LogEntry" } \ No newline at end of file diff --git a/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/LogService/LogService.json b/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/LogService/LogService.json index 9699883c..c933052b 100644 --- a/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/LogService/LogService.json +++ b/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/LogService/LogService.json @@ -1,14 +1,15 @@ { + "$id": "http://redfish.dmtf.org/schemas/v1/LogService.v1_1_3.json", "$ref": "#/definitions/LogService", "$schema": "http://redfish.dmtf.org/schemas/v1/redfish-schema-v1.json", - "copyright": "Copyright 2014-2018 DMTF. For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright", + "copyright": "Copyright 2014-2019 DMTF. For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright", "definitions": { "Actions": { "additionalProperties": false, - "description": "The available actions for this resource.", - "longDescription": "This type shall contain the available actions for this resource.", + "description": "The available actions for this Resource.", + "longDescription": "This type shall contain the available actions for this Resource.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -27,19 +28,19 @@ }, "Oem": { "$ref": "#/definitions/OemActions", - "description": "This property contains the available OEM specific actions for this resource.", - "longDescription": "This property shall contain any additional OEM actions for this resource." + "description": "The available OEM-specific actions for this Resource.", + "longDescription": "This property shall contain the available OEM-specific actions for this Resource." } }, "type": "object" }, "ClearLog": { "additionalProperties": false, - "description": "This action is used to clear the log for this Log Service.", + "description": "The action to clear the log for this Log Service.", "longDescription": "This action shall delete all entries found in the Entries collection for this Log Service.", "parameters": {}, "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -55,7 +56,7 @@ "properties": { "target": { "description": "Link to invoke action", - "format": "uri", + "format": "uri-reference", "type": "string" }, "title": { @@ -73,8 +74,8 @@ "OEM" ], "enumDescriptions": { - "Event": "The log contains Redfish-defined messages (events).", - "Multiple": "The log contains multiple Log Entry types or a single entry type cannot be guaranteed by the Log Service.", + "Event": "The log contains Redfish-defined messages.", + "Multiple": "The log contains multiple log entry types and, therefore, the Log Service cannot guarantee a single entry type.", "OEM": "The log contains entries in an OEM-defined format.", "SEL": "The log contains legacy IPMI System Event Log (SEL) entries." }, @@ -82,10 +83,10 @@ }, "LogService": { "additionalProperties": false, - "description": "This resource represents the log service for the resource or service to which it is associated.", - "longDescription": "This resource shall be used to represent a log service for a Redfish implementation.", + "description": "The LogService schema contains properties for monitoring and configuring a Log Service.", + "longDescription": "This Resource shall represent a Log Service for a Redfish implementation.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -100,26 +101,26 @@ }, "properties": { "@odata.context": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/context" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/context" }, "@odata.etag": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/etag" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/etag" }, "@odata.id": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/id" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/id" }, "@odata.type": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/type" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/type" }, "Actions": { "$ref": "#/definitions/Actions", - "description": "The available actions for this resource.", - "longDescription": "The Actions property shall contain the available actions for this resource." + "description": "The available actions for this Resource.", + "longDescription": "This property shall contain the available actions for this Resource." }, "DateTime": { - "description": "The current DateTime (with offset) for the log service, used to set or read time.", + "description": "The current date and time, with UTC offset, that the Log Service uses to set or read time.", "format": "date-time", - "longDescription": "The value of this property shall represent the current DateTime value that the log service is using, with offset from UTC, in Redfish Timestamp format.", + "longDescription": "This property shall represent the current DateTime value, with UTC offset, in Redfish Timestamp format that the Log Service uses to set or read time.", "readonly": false, "type": [ "string", @@ -127,9 +128,9 @@ ] }, "DateTimeLocalOffset": { - "description": "The time offset from UTC that the DateTime property is set to in format: +06:00 .", - "longDescription": "The value is property shall represent the offset from UTC time that the current value of DataTime property contains.", - "pattern": "([-+][0-1][0-9]:[0-5][0-9])", + "description": "The UTC offset that the current DateTime property value contains in the `+HH:MM` format.", + "longDescription": "This property shall represent the UTC offset that the current DateTime property value contains.", + "pattern": "^([-+][0-1][0-9]:[0-5][0-9])$", "readonly": false, "type": [ "string", @@ -149,8 +150,8 @@ }, "Entries": { "$ref": "http://redfish.dmtf.org/schemas/v1/LogEntryCollection.json#/definitions/LogEntryCollection", - "description": "References to the log entry collection.", - "longDescription": "The value of this property shall reference a collection of resources of type LogEntry.", + "description": "The link to the log entry collection.", + "longDescription": "This property shall contain a link to a Resource Collection of type LogEntryCollection.", "readonly": true }, "Id": { @@ -166,13 +167,14 @@ "type": "null" } ], - "description": "The format of the Entries of this log.", - "longDescription": "The value of this property shall represent the EntryType of all LogEntry resources contained in the Entries collection. If a single EntryType for all LogEntry resources cannot be determined or guaranteed by the Service, the value of this property shall be 'Multiple'.", - "readonly": true + "description": "The format of the log entries.", + "longDescription": "This property shall represent the EntryType of all LogEntry Resources contained in the Entries collection. If the service cannot determine or guarantee a single EntryType for all LogEntry Resources, this property's value shall be `Multiple`.", + "readonly": true, + "versionAdded": "v1_1_0" }, "MaxNumberOfRecords": { - "description": "The maximum number of log entries this service can have.", - "longDescription": "The value of this property shall be the maximum numbers of LogEntry resources in the Entries collection for this service.", + "description": "The maximum number of log entries that this service can have.", + "longDescription": "This property shall contain the maximum number of LogEntry Resources in the Entries collection for this service.", "minimum": 0, "readonly": true, "type": "integer" @@ -183,18 +185,18 @@ }, "Oem": { "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem", - "description": "This is the manufacturer/provider specific extension moniker used to divide the Oem object into sections.", - "longDescription": "The value of this string shall be of the format for the reserved word *Oem*." + "description": "The OEM extension property.", + "longDescription": "This property shall contain the OEM extensions. All values for properties that this object contains shall conform to the Redfish Specification-described requirements." }, "OverWritePolicy": { "$ref": "#/definitions/OverWritePolicy", "description": "The overwrite policy for this service that takes place when the log is full.", - "longDescription": "The value of this property shall indicate the policy of the log service when the MaxNumberOfRecords has been reached. Unknown indicates the log overwrite policy is unknown. WrapsWhenFull indicates that the log overwrites its entries with new entries when the log has reached its maximum capacity. NeverOverwrites indicates that the log never overwrites its entries by the new entries and ceases logging when the limit has been reached.", + "longDescription": "This property shall indicate the policy of the Log Service when the MaxNumberOfRecords has been reached.", "readonly": true }, "ServiceEnabled": { - "description": "This indicates whether this service is enabled.", - "longDescription": "The value of this property shall be a boolean indicating whether this service is enabled.", + "description": "An indication of whether this service is enabled.", + "longDescription": "This property shall indicate whether this service is enabled.", "readonly": false, "type": [ "boolean", @@ -203,8 +205,8 @@ }, "Status": { "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Status", - "description": "This property describes the status and health of the resource and its children.", - "longDescription": "This property shall contain any status or health properties of the resource." + "description": "The status and health of the Resource and its subordinate or dependent Resources.", + "longDescription": "This property shall contain any status or health properties of the Resource." } }, "required": [ @@ -217,10 +219,10 @@ }, "OemActions": { "additionalProperties": true, - "description": "The available OEM specific actions for this resource.", - "longDescription": "This type shall contain any additional OEM actions for this resource.", + "description": "The available OEM-specific actions for this Resource.", + "longDescription": "This type shall contain the available OEM-specific actions for this Resource.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -243,13 +245,14 @@ "NeverOverWrites" ], "enumDescriptions": { - "NeverOverWrites": "When full, new entries to the Log will be discarded.", + "NeverOverWrites": "When full, new entries to the log are discarded.", "Unknown": "The overwrite policy is not known or is undefined.", - "WrapsWhenFull": "When full, new entries to the Log will overwrite previous entries." + "WrapsWhenFull": "When full, new entries to the log overwrite earlier entries." }, "type": "string" } }, "owningEntity": "DMTF", - "title": "#LogService.v1_1_1.LogService" + "release": "2017.3", + "title": "#LogService.v1_1_3.LogService" } \ No newline at end of file diff --git a/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/Manager/Manager.json b/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/Manager/Manager.json index beae6fe4..bfc514f2 100644 --- a/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/Manager/Manager.json +++ b/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/Manager/Manager.json @@ -1,15 +1,15 @@ { - "$id": "http://redfish.dmtf.org/schemas/v1/Manager.v1_5_1.json", + "$id": "http://redfish.dmtf.org/schemas/v1/Manager.v1_6_0.json", "$ref": "#/definitions/Manager", "$schema": "http://redfish.dmtf.org/schemas/v1/redfish-schema-v1.json", - "copyright": "Copyright 2014-2018 DMTF. For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright", + "copyright": "Copyright 2014-2019 DMTF. For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright", "definitions": { "Actions": { "additionalProperties": false, - "description": "The available actions for this resource.", - "longDescription": "This type shall contain the available actions for this resource.", + "description": "The available actions for this Resource.", + "longDescription": "This type shall contain the available actions for this Resource.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -34,8 +34,8 @@ }, "Oem": { "$ref": "#/definitions/OemActions", - "description": "This property contains the available OEM specific actions for this resource.", - "longDescription": "This property shall contain any additional OEM actions for this resource." + "description": "The available OEM-specific actions for this Resource.", + "longDescription": "This property shall contain the available OEM-specific actions for this Resource." } }, "type": "object" @@ -48,19 +48,19 @@ "Oem" ], "enumDescriptions": { - "IPMI": "The controller supports a Command Shell connection using the IPMI Serial-over-LAN (SOL) protocol.", - "Oem": "The controller supports a Command Shell connection using an OEM-specific protocol.", - "SSH": "The controller supports a Command Shell connection using the SSH protocol.", - "Telnet": "The controller supports a Command Shell connection using the Telnet protocol." + "IPMI": "The controller supports a command shell connection through the IPMI Serial Over LAN (SOL) protocol.", + "Oem": "The controller supports a command shell connection through an OEM-specific protocol.", + "SSH": "The controller supports a command shell connection through the SSH protocol.", + "Telnet": "The controller supports a command shell connection through the Telnet protocol." }, "type": "string" }, "CommandShell": { "additionalProperties": false, - "description": "Information about a Command Shell service provided by a manager.", - "longDescription": "This type shall describe a Command Shell service of a manager.", + "description": "The information about a command shell service that this manager provides.", + "longDescription": "This type shall describe a command shell service for a manager.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -75,24 +75,24 @@ }, "properties": { "ConnectTypesSupported": { - "description": "This object is used to enumerate the Command Shell connection types allowed by the implementation.", + "description": "This property enumerates the command shell connection types that the implementation allows.", "items": { "$ref": "#/definitions/CommandConnectTypesSupported" }, - "longDescription": "The value of ConnectTypesSupported shall be an array of the enumerations provided here. SSH shall be included if the Secure Shell (SSH) protocol is supported. Telnet shall be included if the Telnet protocol is supported. IPMI shall be included if the IPMI (Serial-over-LAN) protocol is supported.", + "longDescription": "This property shall contain an array of the enumerations. SSH shall be included if the Secure Shell (SSH) protocol is supported. Telnet shall be included if the Telnet protocol is supported. IPMI shall be included if the IPMI Serial Over LAN (SOL) protocol is supported.", "readonly": true, "type": "array" }, "MaxConcurrentSessions": { - "description": "Indicates the maximum number of service sessions, regardless of protocol, this manager is able to support.", - "longDescription": "The value of this property shall contain the maximum number of concurrent service sessions supported by the implementation.", + "description": "The maximum number of service sessions, regardless of protocol, that this manager can support.", + "longDescription": "This property shall contain the maximum number of concurrent service sessions that this implementation supports.", "minimum": 0, "readonly": true, "type": "integer" }, "ServiceEnabled": { - "description": "Indicates if the service is enabled for this manager.", - "longDescription": "The value of this property shall contain the enabled status of the protocol used for the service. The value shall be true if enabled and false if disabled.", + "description": "An indication of whether the service is enabled for this manager.", + "longDescription": "This property shall indicate whether the protocol for the service is enabled.", "readonly": false, "type": "boolean" } @@ -106,13 +106,13 @@ "parameters": { "NewManager": { "$ref": "http://redfish.dmtf.org/schemas/v1/Manager.json#/definitions/Manager", - "description": "This parameter specifies the Manager in which to fail over. In this case, a valid reference is supported.", - "longDescription": "This parameter shall contain a resource reference of the Manager in which to fail over.", + "description": "The manager to which to fail over.", + "longDescription": "This parameter shall contain the manager to which to fail over.", "requiredParameter": true } }, "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -128,7 +128,7 @@ "properties": { "target": { "description": "Link to invoke action", - "format": "uri", + "format": "uri-reference", "type": "string" }, "title": { @@ -144,17 +144,17 @@ "Oem" ], "enumDescriptions": { - "KVMIP": "The controller supports a Graphical Console connection using a KVM-IP (redirection of Keyboard, Video, Mouse over IP) protocol.", - "Oem": "The controller supports a Graphical Console connection using an OEM-specific protocol." + "KVMIP": "The controller supports a graphical console connection through a KVM-IP (redirection of Keyboard, Video, Mouse over IP) protocol.", + "Oem": "The controller supports a graphical console connection through an OEM-specific protocol." }, "type": "string" }, "GraphicalConsole": { "additionalProperties": false, - "description": "Information about a Graphical Console service provided by a manager.", - "longDescription": "This type shall describe a Graphical Console service of a manager.", + "description": "The information about a graphical console service that this manager provides.", + "longDescription": "This type shall describe a graphical console service for a manager.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -169,24 +169,24 @@ }, "properties": { "ConnectTypesSupported": { - "description": "This object is used to enumerate the Graphical Console connection types allowed by the implementation.", + "description": "This property enumerates the graphical console connection types that the implementation allows.", "items": { "$ref": "#/definitions/GraphicalConnectTypesSupported" }, - "longDescription": "The value of ConnectTypesSupported shall be an array of the enumerations provided here. RDP shall be included if the Remote Desktop (RDP) protocol is supported. KVMIP shall be included if a vendor-define KVM-IP protocol is supported.", + "longDescription": "This property shall contain an array of the enumerations. RDP shall be included if the Remote Desktop (RDP) protocol is supported. KVMIP shall be included if a vendor-define KVM-IP protocol is supported.", "readonly": true, "type": "array" }, "MaxConcurrentSessions": { - "description": "Indicates the maximum number of service sessions, regardless of protocol, this manager is able to support.", - "longDescription": "The value of this property shall contain the maximum number of concurrent service sessions supported by the implementation.", + "description": "The maximum number of service sessions, regardless of protocol, that this manager can support.", + "longDescription": "This property shall contain the maximum number of concurrent service sessions that this implementation supports.", "minimum": 0, "readonly": true, "type": "integer" }, "ServiceEnabled": { - "description": "Indicates if the service is enabled for this manager.", - "longDescription": "The value of this property shall contain the enabled status of the protocol used for the service. The value shall be true if enabled and false if disabled.", + "description": "An indication of whether the service is enabled for this manager.", + "longDescription": "This property shall indicate whether the protocol for the service is enabled.", "readonly": false, "type": "boolean" } @@ -195,10 +195,10 @@ }, "Links": { "additionalProperties": false, - "description": "Contains references to other resources that are related to this resource.", - "longDescription": "This type, as described by the Redfish Specification, shall contain references to resources that are related to, but not contained by (subordinate to), this resource.", + "description": "The links to other Resources that are related to this Resource.", + "longDescription": "This Redfish Specification-described type shall contain links to Resources that are related to but not contained by or subordinate to this Resource.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -212,64 +212,84 @@ } }, "properties": { + "ActiveSoftwareImage": { + "$ref": "http://redfish.dmtf.org/schemas/v1/SoftwareInventory.json#/definitions/SoftwareInventory", + "description": "The link to the SoftwareInventory Resource that represents the active firmware image for this manager.", + "longDescription": "This property shall contain a link to the SoftwareInventory Resource that represent the active firmware image for this manager.", + "readonly": false, + "versionAdded": "v1_6_0" + }, "ManagerForChassis": { - "description": "This property is an array of references to the chassis that this manager has control over.", + "description": "An array of links to the chassis this manager controls.", "items": { "$ref": "http://redfish.dmtf.org/schemas/v1/Chassis.json#/definitions/Chassis" }, - "longDescription": "This property shall contain an array of references to Chassis resources of which this Manager instance has control.", + "longDescription": "This property shall contain an array of links to chassis over which this manager instance has control.", "readonly": true, "type": "array" }, "ManagerForChassis@odata.count": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/count" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/count" }, "ManagerForServers": { - "description": "This property is an array of references to the systems that this manager has control over.", + "description": "An array of links to the systems that this manager controls.", "items": { "$ref": "http://redfish.dmtf.org/schemas/v1/ComputerSystem.json#/definitions/ComputerSystem" }, - "longDescription": "This property shall contain an array of references to ComputerSystem resources of which this Manager instance has control.", + "longDescription": "This property shall contain an array of links to computer systems over which this manager instance has control.", "readonly": true, "type": "array" }, "ManagerForServers@odata.count": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/count" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/count" }, "ManagerForSwitches": { - "description": "This property is an array of references to the switches that this manager has control over.", + "description": "An array of links to the switches that this manager controls.", "items": { "$ref": "http://redfish.dmtf.org/schemas/v1/Switch.json#/definitions/Switch" }, - "longDescription": "This property shall contain an array of references to Switch resources of which this Manager instance has control.", + "longDescription": "This property shall contain an array of links to switches that this manager instance controls.", "readonly": true, "type": "array", "versionAdded": "v1_4_0" }, "ManagerForSwitches@odata.count": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/count" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/count" }, "ManagerInChassis": { "$ref": "http://redfish.dmtf.org/schemas/v1/Chassis.json#/definitions/Chassis", - "description": "This property is a reference to the chassis that this manager is located in.", - "longDescription": "This property shall contain a reference to the chassis that this manager is located in.", + "description": "The link to the chassis where this manager is located.", + "longDescription": "This property shall contain a link to the chassis where this manager is located.", "readonly": true, "versionAdded": "v1_1_0" }, "Oem": { "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem", - "description": "Oem extension object.", - "longDescription": "This object represents the Oem property. All values for resources described by this schema shall comply to the requirements as described in the Redfish specification." + "description": "The OEM extension property.", + "longDescription": "This property shall contain the OEM extensions. All values for properties contained in this object shall conform to the Redfish Specification-described requirements." + }, + "SoftwareImages": { + "description": "The images that are associated with this manager.", + "items": { + "$ref": "http://redfish.dmtf.org/schemas/v1/SoftwareInventory.json#/definitions/SoftwareInventory" + }, + "longDescription": "This property shall contain an array of links to the SoftwareInventory Resources that represent the firmware images that apply to this manager.", + "readonly": true, + "type": "array", + "versionAdded": "v1_6_0" + }, + "SoftwareImages@odata.count": { + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/count" } }, "type": "object" }, "Manager": { "additionalProperties": false, - "description": "This is the schema definition for a Manager. Examples of managers are BMCs, Enclosure Managers, Management Controllers and other subsystems assigned managability functions.", - "longDescription": "This resource shall be used to represent a management subsystem for a Redfish implementation.", + "description": "In Redfish, a manager is a systems management entity that may implement or provide access to a Redfish Service. Examples of managers are BMCs, enclosure managers, management controllers, and other subsystems that are assigned managability functions. An implementation may have multiple managers, which may or may not be directly accessible through a Redfish-defined interface.", + "longDescription": "This Resource shall represent a management subsystem for a Redfish implementation.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -284,38 +304,38 @@ }, "properties": { "@odata.context": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/context" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/context" }, "@odata.etag": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/etag" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/etag" }, "@odata.id": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/id" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/id" }, "@odata.type": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/type" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/type" }, "Actions": { "$ref": "#/definitions/Actions", - "description": "The available actions for this resource.", - "longDescription": "The Actions property shall contain the available actions for this resource." + "description": "The available actions for this Resource.", + "longDescription": "The actions property shall contain the available actions for this Resource." }, "AutoDSTEnabled": { - "description": "Indicates whether the manager is configured for automatic DST adjustment.", - "longDescription": "The value of this property shall contain the enabled status of the automatic Daylight Saving Time (DST) adjustment of the manager's DateTime. It shall be true if Automatic DST adjustment is enabled and false if disabled.", + "description": "An indication of whether the manager is configured for automatic Daylight Saving Time (DST) adjustment.", + "longDescription": "This property shall indicate whether the manager is configured for automatic Daylight Saving Time (DST) adjustment.", "readonly": false, "type": "boolean", "versionAdded": "v1_4_0" }, "CommandShell": { "$ref": "#/definitions/CommandShell", - "description": "Information about the Command Shell service provided by this manager.", - "longDescription": "The value of this property shall contain information about the Command Shell service of this manager." + "description": "The command shell service that this manager provides.", + "longDescription": "This property shall contain information about the command shell service of this manager." }, "DateTime": { - "description": "The current DateTime (with offset) for the manager, used to set or read time.", + "description": "The current date and time with UTC offset that the manager uses to set or read time.", "format": "date-time", - "longDescription": "The value of this property shall represent the current DateTime value for the manager, with offset from UTC, in Redfish Timestamp format.", + "longDescription": "This property shall represent the current DateTime value for the manager, with UTC offset, in Redfish Timestamp format.", "readonly": false, "type": [ "string", @@ -323,9 +343,9 @@ ] }, "DateTimeLocalOffset": { - "description": "The time offset from UTC that the DateTime property is set to in format: +06:00 .", - "longDescription": "The value is property shall represent the offset from UTC time that the current value of DataTime property contains.", - "pattern": "([-+][0-1][0-9]:[0-5][0-9])", + "description": "The time offset from UTC that the DateTime property is in `+HH:MM` format.", + "longDescription": "This property shall represent the offset from UTC time that the current DataTime property contains.", + "pattern": "^([-+][0-1][0-9]:[0-5][0-9])$", "readonly": false, "type": [ "string", @@ -345,12 +365,12 @@ }, "EthernetInterfaces": { "$ref": "http://redfish.dmtf.org/schemas/v1/EthernetInterfaceCollection.json#/definitions/EthernetInterfaceCollection", - "description": "This is a reference to a collection of NICs that this manager uses for network communication. It is here that clients will find NIC configuration options and settings.", - "longDescription": "The value of this property shall be a link to a collection of type EthernetInterfaceCollection.", + "description": "The link to a collection of NICs that this manager uses for network communication.", + "longDescription": "This property shall contain a link to a Resource Collection of type EthernetInterfaceCollection.", "readonly": true }, "FirmwareVersion": { - "description": "The firmware version of this Manager.", + "description": "The firmware version of this manager.", "longDescription": "This property shall contain the firwmare version as defined by the manufacturer for the associated manager.", "readonly": true, "type": [ @@ -360,13 +380,13 @@ }, "GraphicalConsole": { "$ref": "#/definitions/GraphicalConsole", - "description": "The value of this property shall contain the information about the Graphical Console (KVM-IP) service of this manager.", - "longDescription": "The value of this property shall contain the information about the Graphical Console (KVM-IP) service of this manager." + "description": "The information about the graphical console (KVM-IP) service of this manager.", + "longDescription": "This property shall contain the information about the graphical console (KVM-IP) service of this manager." }, "HostInterfaces": { "$ref": "http://redfish.dmtf.org/schemas/v1/HostInterfaceCollection.json#/definitions/HostInterfaceCollection", - "description": "This is a reference to a collection of Host Interfaces that this manager uses for local host communication. It is here that clients will find Host Interface configuration options and settings.", - "longDescription": "The value of this property shall be a link to a collection of type HostInterfaceCollection.", + "description": "The link to a collection of Host Interfaces that this manager uses for local host communication. Clients can find Host Interface configuration options and settings in this navigation property.", + "longDescription": "This property shall contain a link to a Resource Collection of type HostInterfaceCollection.", "readonly": true, "versionAdded": "v1_3_0" }, @@ -376,24 +396,24 @@ }, "Links": { "$ref": "#/definitions/Links", - "description": "Contains references to other resources that are related to this resource.", - "longDescription": "The Links property, as described by the Redfish Specification, shall contain references to resources that are related to, but not contained by (subordinate to), this resource." + "description": "The links to other Resources that are related to this Resource.", + "longDescription": "This property shall contain links to Resources that are related to but are not contained by or subordinate to this Resource." }, "LogServices": { "$ref": "http://redfish.dmtf.org/schemas/v1/LogServiceCollection.json#/definitions/LogServiceCollection", - "description": "This is a reference to a collection of Logs used by the manager.", - "longDescription": "The value of this property shall contain a reference to a collection of type LogServiceCollection which are for the use of this manager.", + "description": "The link to a collection of logs that the manager uses.", + "longDescription": "This property shall contain a link to a Resource Collection of type LogServiceCollection that this manager uses.", "readonly": true }, "ManagerType": { "$ref": "#/definitions/ManagerType", - "description": "This property represents the type of manager that this resource represents.", - "longDescription": "The value of this property shall describe the function of this manager. The value EnclosureManager shall be used if this manager controls one or more services through aggregation. The value BMC shall be used if this manager represents a traditional server management controller. The value ManagementController shall be used if none of the other enumerations apply.", + "description": "The type of manager that this Resource represents.", + "longDescription": "This property shall describe the function of this manager. The `ManagementController` value shall be used if none of the other enumerations apply.", "readonly": true }, "Model": { - "description": "The model information of this Manager as defined by the manufacturer.", - "longDescription": "The value of this property shall contain the information about how the manufacturer references this manager.", + "description": "The model information of this manager, as defined by the manufacturer.", + "longDescription": "This property shall contain the information about how the manufacturer refers to this manager.", "readonly": true, "type": [ "string", @@ -406,14 +426,14 @@ }, "NetworkProtocol": { "$ref": "http://redfish.dmtf.org/schemas/v1/ManagerNetworkProtocol.json#/definitions/ManagerNetworkProtocol", - "description": "This is a reference to the network services and their settings that the manager controls. It is here that clients will find network configuration options as well as network services.", - "longDescription": "The value of this property shall contain a reference to a resource of type ManagerNetworkProtocol which represents the network services for this manager.", + "description": "The link to the network services and their settings that the manager controls.", + "longDescription": "This property shall contain a link to a Resource of the ManagerNetworkProtocol, which represents the network services for this manager.", "readonly": true }, "Oem": { "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem", - "description": "This is the manufacturer/provider specific extension moniker used to divide the Oem object into sections.", - "longDescription": "The value of this string shall be of the format for the reserved word *Oem*." + "description": "The OEM extension property.", + "longDescription": "This property shall contain the OEM extensions. All values for properties that this object contains shall conform to the Redfish Specification-described requirements." }, "PowerState": { "anyOf": [ @@ -424,34 +444,34 @@ "type": "null" } ], - "description": "This is the current power state of the Manager.", - "longDescription": "The value of this property shall contain the power state of the Manager.", + "description": "The current power state of the manager.", + "longDescription": "This property shall contain the power state of the manager.", "readonly": true, "versionAdded": "v1_2_0" }, "Redundancy": { "autoExpand": true, - "description": "Redundancy information for the managers of this system.", + "description": "The redundancy information for the managers of this system.", "items": { "$ref": "http://redfish.dmtf.org/schemas/v1/Redundancy.json#/definitions/Redundancy" }, - "longDescription": "The values of the properties in this array shall be used to show how this manager is grouped with other managers for form redundancy sets.", + "longDescription": "The properties in this array shall show how this manager is grouped with other managers for form redundancy sets.", "type": "array" }, "Redundancy@odata.count": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/count" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/count" }, "RemoteAccountService": { "$ref": "http://redfish.dmtf.org/schemas/v1/AccountService.json#/definitions/AccountService", - "description": "This property contains a reference to the AccountService resource for the remote Manager represented by this resource.", - "longDescription": "This property shall contain a reference to the AccountService resource for the remote Manager represented by this resource. This property shall only be present when providing aggregation of Redfish services.", + "description": "The link to the AccountService Resource for the remote manager that this Resource represents.", + "longDescription": "This property shall contain a link to the AccountService Resource for the remote manager that this Resource represents. This property shall only be present when providing aggregation of Redfish Services.", "readonly": true, "versionAdded": "v1_5_0" }, "RemoteRedfishServiceUri": { - "description": "This property contains the URI of the Redfish Service Root for the remote Manager represented by this resource.", - "format": "uri", - "longDescription": "This property shall contain the URI of the Redfish Service Root for the remote Manager represented by this resource. This property shall only be present when providing aggregation of Redfish services.", + "description": "The URI of the Redfish Service Root for the remote manager that this Resource represents.", + "format": "uri-reference", + "longDescription": "This property shall contain the URI of the Redfish Service Root for the remote manager that this Resource represents. This property shall only be present when providing aggregation of Redfish Services.", "readonly": true, "type": [ "string", @@ -461,13 +481,13 @@ }, "SerialConsole": { "$ref": "#/definitions/SerialConsole", - "description": "Information about the Serial Console service provided by this manager.", - "longDescription": "The value of this property shall contain information about the Serial Console service of this manager." + "description": "The serial console service that this manager provides.", + "longDescription": "This property shall contain information about the serial console service of this manager." }, "SerialInterfaces": { "$ref": "http://redfish.dmtf.org/schemas/v1/SerialInterfaceCollection.json#/definitions/SerialInterfaceCollection", - "description": "This is a reference to a collection of serial interfaces that this manager uses for serial and console communication. It is here that clients will find serial configuration options and settings.", - "longDescription": "The value of this property shall be a link to a collection of type SerialInterfaceCollection which are for the use of this manager.", + "description": "The link to a collection of serial interfaces that this manager uses for serial and console communication.", + "longDescription": "This property shall contain a link to a Resource Collection of type SerialInterfaceCollection, which this manager uses.", "readonly": true }, "ServiceEntryPointUUID": { @@ -479,14 +499,14 @@ "type": "null" } ], - "description": "The UUID of the Redfish Service provided by this manager.", - "longDescription": "This property shall contain the UUID of the Redfish Service provided by this manager. Each Manager providing an Entry Point to the same Redfish Service shall report the same UUID value (even though the name of the property may imply otherwise). This property shall not be present if this manager does not provide a Redfish Service Entry Point.", + "description": "The UUID of the Redfish Service that is hosted by this manager.", + "longDescription": "This property shall contain the UUID of the Redfish Service that is hosted by this manager. Each manager providing an entry point to the same Redfish Service shall report the same UUID value, even though the name of the property may imply otherwise. This property shall not be present if this manager does not provide a Redfish Service entry point.", "readonly": true }, "Status": { "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Status", - "description": "This property describes the status and health of the resource and its children.", - "longDescription": "This property shall contain any status or health properties of the resource." + "description": "The status and health of the Resource and its subordinate or dependent Resources.", + "longDescription": "This property shall contain any status or health properties of the Resource." }, "UUID": { "anyOf": [ @@ -497,14 +517,14 @@ "type": "null" } ], - "description": "The Universal Unique Identifier (UUID) for this Manager.", - "longDescription": "The value of this property shall contain the universal unique identifier number for the manager.", + "description": "The UUID for this manager.", + "longDescription": "This property shall contain the UUID for the manager.", "readonly": true }, "VirtualMedia": { "$ref": "http://redfish.dmtf.org/schemas/v1/VirtualMediaCollection.json#/definitions/VirtualMediaCollection", - "description": "This is a reference to the Virtual Media services for this particular manager.", - "longDescription": "The value of this property shall contain a reference to a collection of type VirtualMediaCollection which are for the use of this manager.", + "description": "The link to the Virtual Media services for this particular manager.", + "longDescription": "This property shall contain a link to a Resource Collection of type VirtualMediaCollection, which this manager uses.", "readonly": true } }, @@ -518,9 +538,9 @@ }, "ManagerService": { "additionalProperties": false, - "description": "Used for describing services like Serial Console, Command Shell or Graphical Console.", + "description": "The manager services, such as serial console, command shell, or graphical console service.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -535,15 +555,15 @@ }, "properties": { "MaxConcurrentSessions": { - "description": "Indicates the maximum number of service sessions, regardless of protocol, this manager is able to support.", - "longDescription": "The value of this property shall contain the maximum number of concurrent service sessions supported by the implementation.", + "description": "The maximum number of service sessions, regardless of protocol, that this manager can support.", + "longDescription": "This property shall contain the maximum number of concurrent service sessions that this implementation supports.", "minimum": 0, "readonly": true, "type": "integer" }, "ServiceEnabled": { - "description": "Indicates if the service is enabled for this manager.", - "longDescription": "The value of this property shall contain the enabled status of the protocol used for the service. The value shall be true if enabled and false if disabled.", + "description": "An indication of whether the service is enabled for this manager.", + "longDescription": "This property shall indicate whether the protocol for the service is enabled.", "readonly": false, "type": "boolean" } @@ -560,12 +580,12 @@ "Service" ], "enumDescriptions": { - "AuxiliaryController": "A controller which provides management functions for a particular subsystem or group of devices.", - "BMC": "A controller which provides management functions for a single computer system.", - "EnclosureManager": "A controller which provides management functions for a chassis or group of devices or systems.", - "ManagementController": "A controller used primarily to monitor or manage the operation of a device or system.", - "RackManager": "A controller which provides management functions for a whole or part of a rack.", - "Service": "A software-based service which provides management functions." + "AuxiliaryController": "A controller that provides management functions for a particular subsystem or group of devices.", + "BMC": "A controller that provides management functions for a single computer system.", + "EnclosureManager": "A controller that provides management functions for a chassis or group of devices or systems.", + "ManagementController": "A controller that primarily monitors or manages the operation of a device or system.", + "RackManager": "A controller that provides management functions for a whole or part of a rack.", + "Service": "A software-based service that provides management functions." }, "enumVersionAdded": { "Service": "v1_4_0" @@ -574,28 +594,28 @@ }, "ModifyRedundancySet": { "additionalProperties": false, - "description": "The ModifyRedundancySet operation is used to add or remove members to a redundant group of manager.", - "longDescription": "The ModifyRedundancySet operation shall be used to add or remove members to a redundant group of manager.", + "description": "The ModifyRedundancySet operation adds members to or removes members from a redundant group of managers.", + "longDescription": "The ModifyRedundancySet operation shall add members to or remove members from a redundant group of managers.", "parameters": { "Add": { - "description": "This array defines the Managers to add to the redundancy set. In this case, a valid reference is supported.", + "description": "An array of managers to add to the redundancy set.", "items": { "$ref": "http://redfish.dmtf.org/schemas/v1/Manager.json#/definitions/Manager" }, - "longDescription": "This parameter shall contain an array of resource references of the Managers to add to the redundancy set.", + "longDescription": "This parameter shall contain an array of managers to add to the redundancy set.", "type": "array" }, "Remove": { - "description": "This array defines the Managers to remove from the redundancy set. In this case, a valid reference is supported.", + "description": "An array of managers to remove from the redundancy set.", "items": { "$ref": "http://redfish.dmtf.org/schemas/v1/Manager.json#/definitions/Manager" }, - "longDescription": "This parameter shall contain an array of resource references of the Managers to remove from the redundancy set.", + "longDescription": "This parameter shall contain an array of managers to remove from the redundancy set.", "type": "array" } }, "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -611,7 +631,7 @@ "properties": { "target": { "description": "Link to invoke action", - "format": "uri", + "format": "uri-reference", "type": "string" }, "title": { @@ -623,10 +643,10 @@ }, "OemActions": { "additionalProperties": true, - "description": "The available OEM specific actions for this resource.", - "longDescription": "This type shall contain any additional OEM actions for this resource.", + "description": "The available OEM-specific actions for this Resource.", + "longDescription": "This type shall contain the available OEM-specific actions for this Resource.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -645,16 +665,16 @@ "Reset": { "additionalProperties": false, "description": "The reset action resets/reboots the manager.", - "longDescription": "This action shall perform a reset of the manager.", + "longDescription": "This action shall reset the manager.", "parameters": { "ResetType": { "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/ResetType", - "description": "This is the type of reset to be performed.", - "longDescription": "This parameter shall define the type of reset to be performed. The service may accept a request without the parameter and perform an implementation specific default reset." + "description": "The type of reset.", + "longDescription": "This parameter shall contain the type of reset. The Service may accept a request without the parameter and perform an implementation specific default reset." } }, "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -670,7 +690,7 @@ "properties": { "target": { "description": "Link to invoke action", - "format": "uri", + "format": "uri-reference", "type": "string" }, "title": { @@ -688,19 +708,19 @@ "Oem" ], "enumDescriptions": { - "IPMI": "The controller supports a Serial Console connection using the IPMI Serial-over-LAN (SOL) protocol.", - "Oem": "The controller supports a Serial Console connection using an OEM-specific protocol.", - "SSH": "The controller supports a Serial Console connection using the SSH protocol.", - "Telnet": "The controller supports a Serial Console connection using the Telnet protocol." + "IPMI": "The controller supports a serial console connection through the IPMI Serial Over LAN (SOL) protocol.", + "Oem": "The controller supports a serial console connection through an OEM-specific protocol.", + "SSH": "The controller supports a serial console connection through the SSH protocol.", + "Telnet": "The controller supports a serial console connection through the Telnet protocol." }, "type": "string" }, "SerialConsole": { "additionalProperties": false, - "description": "Information about a Serial Console service provided by a manager.", - "longDescription": "This type shall describe a Serial Console service of a manager.", + "description": "The information about a serial console service that this manager provides.", + "longDescription": "This type shall describe a serial console service for a manager.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -715,24 +735,24 @@ }, "properties": { "ConnectTypesSupported": { - "description": "This object is used to enumerate the Serial Console connection types allowed by the implementation.", + "description": "This property enumerates the serial console connection types that the implementation allows.", "items": { "$ref": "#/definitions/SerialConnectTypesSupported" }, - "longDescription": "The value of ConnectTypesSupported shall be an array of the enumerations provided here. SSH shall be included if the Secure Shell (SSH) protocol is supported. Telnet shall be included if the Telnet protocol is supported. IPMI shall be included if the IPMI (Serial-over-LAN) protocol is supported.", + "longDescription": "This property shall contain an array of the enumerations. SSH shall be included if the Secure Shell (SSH) protocol is supported. Telnet shall be included if the Telnet protocol is supported. IPMI shall be included if the IPMI Serial Over LAN (SOL) protocol is supported.", "readonly": true, "type": "array" }, "MaxConcurrentSessions": { - "description": "Indicates the maximum number of service sessions, regardless of protocol, this manager is able to support.", - "longDescription": "The value of this property shall contain the maximum number of concurrent service sessions supported by the implementation.", + "description": "The maximum number of service sessions, regardless of protocol, that this manager can support.", + "longDescription": "This property shall contain the maximum number of concurrent service sessions that this implementation supports.", "minimum": 0, "readonly": true, "type": "integer" }, "ServiceEnabled": { - "description": "Indicates if the service is enabled for this manager.", - "longDescription": "The value of this property shall contain the enabled status of the protocol used for the service. The value shall be true if enabled and false if disabled.", + "description": "An indication of whether the service is enabled for this manager.", + "longDescription": "This property shall indicate whether the protocol for the service is enabled.", "readonly": false, "type": "boolean" } @@ -741,6 +761,6 @@ } }, "owningEntity": "DMTF", - "release": "2018.2", - "title": "#Manager.v1_5_1.Manager" + "release": "2019.2", + "title": "#Manager.v1_6_0.Manager" } \ No newline at end of file diff --git a/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/ManagerAccount/ManagerAccount.json b/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/ManagerAccount/ManagerAccount.json index 6aa4ecf3..aa893772 100644 --- a/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/ManagerAccount/ManagerAccount.json +++ b/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/ManagerAccount/ManagerAccount.json @@ -1,15 +1,15 @@ { - "$id": "http://redfish.dmtf.org/schemas/v1/ManagerAccount.v1_2_0.json", + "$id": "http://redfish.dmtf.org/schemas/v1/ManagerAccount.v1_3_1.json", "$ref": "#/definitions/ManagerAccount", "$schema": "http://redfish.dmtf.org/schemas/v1/redfish-schema-v1.json", - "copyright": "Copyright 2014-2018 DMTF. For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright", + "copyright": "Copyright 2014-2019 DMTF. For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright", "definitions": { "Actions": { "additionalProperties": false, - "description": "The available actions for this resource.", - "longDescription": "This type shall contain the available actions for this resource.", + "description": "The available actions for this Resource.", + "longDescription": "This type shall contain the available actions for this Resource.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -25,8 +25,8 @@ "properties": { "Oem": { "$ref": "#/definitions/OemActions", - "description": "This property contains the available OEM specific actions for this resource.", - "longDescription": "This property shall contain any additional OEM actions for this resource.", + "description": "The available OEM-specific actions for this Resource.", + "longDescription": "This property shall contain the available OEM-specific actions for this Resource.", "versionAdded": "v1_1_0" } }, @@ -34,10 +34,10 @@ }, "Links": { "additionalProperties": false, - "description": "Contains references to other resources that are related to this resource.", - "longDescription": "This type, as described by the Redfish Specification, shall contain references to resources that are related to, but not contained by (subordinate to), this resource.", + "description": "The links to other Resources that are related to this Resource.", + "longDescription": "This Redfish Specification-described type shall contain links to Resources that are related to but are not contained by or subordinate to this Resource.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -53,13 +53,13 @@ "properties": { "Oem": { "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem", - "description": "Oem extension object.", - "longDescription": "This object represents the Oem property. All values for resources described by this schema shall comply to the requirements as described in the Redfish specification." + "description": "The OEM extension property.", + "longDescription": "This property shall contain the OEM extensions. All values for properties contained in this object shall conform to the Redfish Specification-described requirements." }, "Role": { "$ref": "http://redfish.dmtf.org/schemas/v1/Role.json#/definitions/Role", - "description": "A reference to the Role object defining Privileges for this account--returned when the resource is read. The ID of the role is the same as property RoleId.", - "longDescription": "The value of this property shall be a link to a Role object instance, and should reference the object identified by property RoleId.", + "description": "The link to the Redfish Role that defines the privileges for this account.", + "longDescription": "This property shall contain a link to a Role Resource instance, and should link to the Resource identified by the RoleId property.", "readonly": true } }, @@ -67,10 +67,10 @@ }, "ManagerAccount": { "additionalProperties": false, - "description": "The user accounts, owned by a Manager, are defined in this resource. Changes to a Manager Account may affect the current Redfish service connection if this manager is responsible for the Redfish service.", - "longDescription": "This resource shall be used to represent resources that represent the user accounts for the manager.", + "description": "The user accounts, owned by a manager, are defined in this Resource. Changes to a manager account may affect the current Redfish Service connection if this manager is responsible for the Redfish Service.", + "longDescription": "This Resource shall represent Resources that represent the user accounts for the manager.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -85,27 +85,27 @@ }, "properties": { "@odata.context": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/context" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/context" }, "@odata.etag": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/etag" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/etag" }, "@odata.id": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/id" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/id" }, "@odata.type": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/type" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/type" }, "Actions": { "$ref": "#/definitions/Actions", - "description": "The available actions for this resource.", - "longDescription": "The Actions property shall contain the available actions for this resource.", + "description": "The available actions for this Resource.", + "longDescription": "The actions property shall contain the available actions for this Resource.", "versionAdded": "v1_1_0" }, "Certificates": { "$ref": "http://redfish.dmtf.org/schemas/v1/CertificateCollection.json#/definitions/CertificateCollection", - "description": "This is a reference to a collection of certificates used for this account.", - "longDescription": "The value of this property shall be a link to a collection of type CertificateCollection.", + "description": "The link to a collection of certificates used for this account.", + "longDescription": "This property shall contain a link to a Resource Collection of type CertificateCollection.", "readonly": true, "versionAdded": "v1_2_0" }, @@ -121,8 +121,8 @@ "readonly": true }, "Enabled": { - "description": "This property is used by a User Administrator to disable an account w/o having to delet the user information. When set to true, the user can login. When set to false, the account is administratively disabled and the user cannot login.", - "longDescription": "This property shall enable (if set to true) or disable (if set to false) the account for future logins. The value of Enable over-rides the locked property.", + "description": "An indication of whether an account is enabled. An administrator can disable it without deleting the user information. If `true`, the account is enabled and the user can log in. If `false`, the account is disabled and, in the future, the user cannot log in. This property overrides the Locked property.", + "longDescription": "This property shall indicate whether an account is enabled. If `true`, the account is enabled and the user can log in. If `false`, the account is disabled and, in the future, the user cannot log in. This property overrides the Locked property.", "readonly": false, "type": "boolean" }, @@ -132,12 +132,12 @@ }, "Links": { "$ref": "#/definitions/Links", - "description": "Contains references to other resources that are related to this resource.", - "longDescription": "The Links property, as described by the Redfish Specification, shall contain references to resources that are related to, but not contained by (subordinate to), this resource." + "description": "The links to other Resources that are related to this Resource.", + "longDescription": "This property shall contain links to Resources that are related to but are not contained by or subordinate to this Resource." }, "Locked": { - "description": "This property indicates that the account has been auto-locked by the account service because the lockout threshold has been exceeded. When set to true, the account is locked. A user admin can write the property to false to manually unlock, or the account service will unlock it once the lockout duration period has passed.", - "longDescription": "This property (when set to true) shall indicate that the account service has automatically locked the account due to the accountLockoutThreshold having been exceeded. If set to true, the account is locked. If set to false, the account is not locked. A user admin shall be able to write a false to the property to clear the lockout condition, prior to the lockout duration period.", + "description": "An indication of whether the Account Service automatically locked the account because the lockout threshold was exceeded. To manually unlock the account before the lockout duration period, an administrator can change the property to `false` to clear the lockout condition.", + "longDescription": "This property shall indicate whether the Account Service automatically locked the account because the AccountLockoutThreshold was exceeded. To manually unlock the account before the lockout duration period, an administrator shall be able to change the property to `false` to clear the lockout condition.", "readonly": false, "type": "boolean" }, @@ -147,27 +147,37 @@ }, "Oem": { "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem", - "description": "This is the manufacturer/provider specific extension moniker used to divide the Oem object into sections.", - "longDescription": "The value of this string shall be of the format for the reserved word *Oem*." + "description": "The OEM extension property.", + "longDescription": "This property shall contain the OEM extensions. All values for properties that this object contains shall conform to the Redfish Specification-described requirements." }, "Password": { - "description": "This property is used with a PATCH or PUT to write the password for the account. This property is null on a GET.", - "longDescription": "The value of this property shall be the password for this account. The value shall be null for GET requests.", + "description": "The password. Use this property with a PATCH or PUT to write the password for the account. This property is `null` in responses.", + "longDescription": "This property shall contain the password for this account. The value shall be `null` in responses.", "readonly": false, "type": [ "string", "null" ] }, + "PasswordChangeRequired": { + "description": "An indication of whether the service requires that the password for this account be changed before further access to the account is allowed.", + "longDescription": "This property shall indicate whether the service requires that the password for this account be changed before further access to the account is allowed. The implementation may deny access to the service if the password has not been changed. A manager account created with an initial PasswordChangeRequired value of `true` may force a password change before first access of the account. When the Password property for this account is updated, the service shall set this property to `false`.", + "readonly": false, + "type": [ + "boolean", + "null" + ], + "versionAdded": "v1_3_0" + }, "RoleId": { - "description": "This property contains the Role for this account.", - "longDescription": "The value of this property shall be the ID (the RoleId) of the Role resource that configured for this account. The service shall reject POST, PATCH, or PUT operations that provide a RoleId that does not exist by returning HTTP 400 (Bad Request).", + "description": "The Role for this account.", + "longDescription": "This property shall contain the RoleId of the Role Resource configured for this account. The Service shall reject POST, PATCH, or PUT operations that provide a RoleId that does not exist by returning the HTTP 400 (Bad Request) status code.", "readonly": false, "type": "string" }, "UserName": { - "description": "This property contains the user name for the account.", - "longDescription": "The value of this property shall be the user name for this account.", + "description": "The user name for the account.", + "longDescription": "This property shall contain the user name for this account.", "readonly": false, "type": "string" } @@ -187,10 +197,10 @@ }, "OemActions": { "additionalProperties": true, - "description": "The available OEM specific actions for this resource.", - "longDescription": "This type shall contain any additional OEM actions for this resource.", + "description": "The available OEM-specific actions for this Resource.", + "longDescription": "This type shall contain the available OEM-specific actions for this Resource.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -208,6 +218,6 @@ } }, "owningEntity": "DMTF", - "release": "2018.3", - "title": "#ManagerAccount.v1_2_0.ManagerAccount" + "release": "2019.1", + "title": "#ManagerAccount.v1_3_1.ManagerAccount" } \ No newline at end of file diff --git a/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/ManagerNetworkProtocol/ManagerNetworkProtocol.json b/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/ManagerNetworkProtocol/ManagerNetworkProtocol.json index 938a7c5b..d3f6771b 100644 --- a/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/ManagerNetworkProtocol/ManagerNetworkProtocol.json +++ b/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/ManagerNetworkProtocol/ManagerNetworkProtocol.json @@ -1,15 +1,15 @@ { - "$id": "http://redfish.dmtf.org/schemas/v1/ManagerNetworkProtocol.v1_4_0.json", + "$id": "http://redfish.dmtf.org/schemas/v1/ManagerNetworkProtocol.v1_4_2.json", "$ref": "#/definitions/ManagerNetworkProtocol", "$schema": "http://redfish.dmtf.org/schemas/v1/redfish-schema-v1.json", - "copyright": "Copyright 2014-2018 DMTF. For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright", + "copyright": "Copyright 2014-2019 DMTF. For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright", "definitions": { "Actions": { "additionalProperties": false, - "description": "The available actions for this resource.", - "longDescription": "This type shall contain the available actions for this resource.", + "description": "The available actions for this Resource.", + "longDescription": "This type shall contain the available actions for this Resource.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -25,8 +25,8 @@ "properties": { "Oem": { "$ref": "#/definitions/OemActions", - "description": "This property contains the available OEM specific actions for this resource.", - "longDescription": "This property shall contain any additional OEM actions for this resource.", + "description": "The available OEM-specific actions for this Resource.", + "longDescription": "This property shall contain the available OEM-specific actions for this Resource.", "versionAdded": "v1_2_0" } }, @@ -34,10 +34,10 @@ }, "HTTPSProtocol": { "additionalProperties": false, - "description": "Settings for a network protocol associated with a manager.", + "description": "The settings for a network protocol associated with a manager.", "longDescription": "This type shall describe information about a protocol setting for a manager.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -53,14 +53,14 @@ "properties": { "Certificates": { "$ref": "http://redfish.dmtf.org/schemas/v1/CertificateCollection.json#/definitions/CertificateCollection", - "description": "This is a reference to a collection of certificates used for HTTPS by this manager.", - "longDescription": "The value of this property shall be a link to a collection of type CertificateCollection.", + "description": "The link to a collection of certificates used for HTTPS by this manager.", + "longDescription": "This property shall contain a link to a Resource Collection of type CertificateCollection.", "readonly": true, "versionAdded": "v1_4_0" }, "Port": { - "description": "Indicates the protocol port.", - "longDescription": "The value of this property shall contain the port assigned for the protocol.", + "description": "The protocol port.", + "longDescription": "This property shall contain the port assigned to the protocol.", "minimum": 0, "readonly": false, "type": [ @@ -69,8 +69,8 @@ ] }, "ProtocolEnabled": { - "description": "Indicates if the protocol is enabled or disabled.", - "longDescription": "The value of this property shall contain the enabled status of the protocol. The value shall be true if enabled and false if disabled.", + "description": "An indication of whether the protocol is enabled.", + "longDescription": "This property shall indicate whether the protocol is enabled.", "readonly": false, "type": [ "boolean", @@ -82,10 +82,10 @@ }, "ManagerNetworkProtocol": { "additionalProperties": false, - "description": "This resource is used to obtain or modify the network services managed by a given manager.", - "longDescription": "This object shall be used to represent the network service settings for the manager.", + "description": "The network service settings for the manager.", + "longDescription": "This Resource shall represent the network service settings for the manager.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -100,33 +100,33 @@ }, "properties": { "@odata.context": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/context" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/context" }, "@odata.etag": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/etag" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/etag" }, "@odata.id": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/id" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/id" }, "@odata.type": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/type" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/type" }, "Actions": { "$ref": "#/definitions/Actions", - "description": "The available actions for this resource.", - "longDescription": "The Actions property shall contain the available actions for this resource.", + "description": "The available actions for this Resource.", + "longDescription": "The actions property shall contain the available actions for this Resource.", "versionAdded": "v1_2_0" }, "DHCP": { "$ref": "#/definitions/Protocol", - "description": "Settings for this Manager's DHCPv4 protocol support.", - "longDescription": "This object shall contain information for the DHCPv4 protocol settings for the manager.", + "description": "The settings for this manager's DHCPv4 protocol support.", + "longDescription": "This object shall contain the DHCPv4 protocol settings for the manager.", "versionAdded": "v1_1_0" }, "DHCPv6": { "$ref": "#/definitions/Protocol", - "description": "Settings for this Manager's DHCPv6 protocol support.", - "longDescription": "This object shall contain information for the DHCPv6 protocol settings for the manager.", + "description": "The settings for this manager's DHCPv6 protocol support.", + "longDescription": "This object shall contain the DHCPv6 protocol settings for the manager.", "versionAdded": "v1_3_0" }, "Description": { @@ -141,8 +141,8 @@ "readonly": true }, "FQDN": { - "description": "This is the fully qualified domain name for the manager obtained by DNS including the host name and top-level domain name.", - "longDescription": "The value of this property shall contain the fully qualified domain name for the manager.", + "description": "The fully qualified domain name for the manager obtained by DNS including the host name and top-level domain name.", + "longDescription": "This property shall contain the fully qualified domain name for the manager.", "readonly": true, "type": [ "string", @@ -151,17 +151,17 @@ }, "HTTP": { "$ref": "#/definitions/Protocol", - "description": "Settings for this Manager's HTTP protocol support.", - "longDescription": "This object shall contain information for the HTTP protocol settings for the manager. The default value of the Port property should be 80 for compatibility with established client implementations." + "description": "The settings for this manager's HTTP protocol support.", + "longDescription": "This object shall contain the HTTP protocol settings for the manager. The default Port property value should be `80` for compatibility with established client implementations." }, "HTTPS": { "$ref": "#/definitions/HTTPSProtocol", - "description": "Settings for this Manager's HTTPS protocol support.", - "longDescription": "This object shall contain information for the HTTPS/SSL protocol settings for this manager. The default value of the Port property should be 443 for compatibility with established client implementations." + "description": "The settings for this manager's HTTPS protocol support.", + "longDescription": "This object shall contain the HTTPS/SSL protocol settings for this manager. The default Port property value should be `443` for compatibility with established client implementations." }, "HostName": { - "description": "The DNS Host Name of this manager, without any domain information.", - "longDescription": "The value of this property shall contain the host name without any domain information.", + "description": "The DNS host name of this manager, without any domain information.", + "longDescription": "This property shall contain the host name without any domain information.", "readonly": true, "type": [ "string", @@ -170,8 +170,8 @@ }, "IPMI": { "$ref": "#/definitions/Protocol", - "description": "Settings for this Manager's IPMI-over-LAN protocol support.", - "longDescription": "This object shall contain information for the IPMI over LAN protocol settings for the manager. The default value of the Port property should be 623 for compatibility with established client implementations." + "description": "The settings for this manager's IPMI-over-LAN protocol support.", + "longDescription": "This object shall contain the IPMI over LAN protocol settings for the manager. The default Port property value should be `623` for compatibility with established client implementations." }, "Id": { "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Id", @@ -179,13 +179,13 @@ }, "KVMIP": { "$ref": "#/definitions/Protocol", - "description": "Settings for this Manager's KVM-IP protocol support.", - "longDescription": "This object shall contain information for the KVM-IP (Keyboard, Video, Mouse) protocol settings for the manager." + "description": "The settings for this manager's KVM-IP protocol support.", + "longDescription": "This object shall contain the KVM-IP (Keyboard, Video, Mouse over IP) protocol settings for the manager." }, "NTP": { "$ref": "#/definitions/NTPProtocol", - "description": "Settings for this Manager's NTP protocol support.", - "longDescription": "This object shall contain information for the NTP protocol settings for the manager.", + "description": "The settings for this manager's NTP protocol support.", + "longDescription": "This object shall contain the NTP protocol settings for the manager.", "versionAdded": "v1_2_0" }, "Name": { @@ -194,50 +194,50 @@ }, "Oem": { "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem", - "description": "This is the manufacturer/provider specific extension moniker used to divide the Oem object into sections.", - "longDescription": "The value of this string shall be of the format for the reserved word *Oem*." + "description": "The OEM extension property.", + "longDescription": "This property shall contain the OEM extensions. All values for properties that this object contains shall conform to the Redfish Specification-described requirements." }, "RDP": { "$ref": "#/definitions/Protocol", - "description": "Settings for this Manager's Remote Desktop Protocol support.", - "longDescription": "This object shall contain information for the Remote Desktop Protocol settings for the manager.", + "description": "The settings for this manager's Remote Desktop Protocol support.", + "longDescription": "This object shall contain the Remote Desktop Protocol settings for the manager.", "versionAdded": "v1_3_0" }, "RFB": { "$ref": "#/definitions/Protocol", - "description": "Settings for this Manager's Remote Frame Buffer protocol support, which can be used to support VNC.", - "longDescription": "This object shall contain information for the Remote Frame Buffer protocol settings for the manager.", + "description": "The settings for this manager's Remote Frame Buffer protocol support, which can support VNC.", + "longDescription": "This object shall contain the Remote Frame Buffer protocol settings for the manager.", "versionAdded": "v1_3_0" }, "SNMP": { "$ref": "#/definitions/Protocol", - "description": "Settings for this Manager's SNMP support.", - "longDescription": "This object shall contain information for the SNMP protocol settings for this manager. The default value of the Port property should be 161 for compatibility with established client implementations." + "description": "The settings for this manager's SNMP support.", + "longDescription": "This object shall contain the SNMP protocol settings for this manager. The default Port property value should be `161` for compatibility with established client implementations." }, "SSDP": { "$ref": "#/definitions/SSDProtocol", - "description": "Settings for this Manager's SSDP support.", - "longDescription": "This object shall contain information for the SSDP protocol settings for this manager. Simple Service Discovery Protocol (SSDP) is for network discovery of devices supporting the Redfish service. The default value of the Port property should be 1900 for compatibility with established client implementations." + "description": "The settings for this manager's SSDP support.", + "longDescription": "This object shall contain the SSDP protocol settings for this manager. Simple Service Discovery Protocol (SSDP) is for network discovery of devices supporting the Redfish Service. The default Port property value should be `1900` for compatibility with established client implementations." }, "SSH": { "$ref": "#/definitions/Protocol", - "description": "Settings for this Manager's SSH (Secure Shell) protocol support.", - "longDescription": "This object shall contain information for the SSH protocol settings for the manager. The default value of the Port property should be 22 for compatibility with established client implementations." + "description": "The settings for this manager's Secure Shell (SSH) protocol support.", + "longDescription": "This object shall contain the Secure Shell (SSH) protocol settings for the manager. The default value should be 22 for compatibility with established client implementations." }, "Status": { "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Status", - "description": "This property describes the status and health of the resource and its children.", - "longDescription": "This property shall contain any status or health properties of the resource." + "description": "The status and health of the Resource and its subordinate or dependent Resources.", + "longDescription": "This property shall contain any status or health properties of the Resource." }, "Telnet": { "$ref": "#/definitions/Protocol", - "description": "Settings for this Manager's Telnet protocol support.", - "longDescription": "This object shall contain information for the Telnet protocol settings for this manager. The default value of the Port property should be 23 for compatibility with established client implementations." + "description": "The settings for this manager's Telnet protocol support.", + "longDescription": "This object shall contain the Telnet protocol settings for this manager. The default Port property value should be `23` for compatibility with established client implementations." }, "VirtualMedia": { "$ref": "#/definitions/Protocol", - "description": "Settings for this Manager's Virtual Media support.", - "longDescription": "This object shall contain information for the Virtual Media protocol settings for this manager. The value of the Port property shall contain the TCP port assigned for Virtual Media usage." + "description": "The settings for this manager's virtual media support.", + "longDescription": "This object shall contain the virtual media protocol settings for this manager. The Port property shall contain the TCP port assigned for Virtual Media usage." } }, "required": [ @@ -250,10 +250,10 @@ }, "NTPProtocol": { "additionalProperties": false, - "description": "Settings for a network protocol associated with a manager.", + "description": "The settings for a network protocol associated with a manager.", "longDescription": "This type shall describe information about a protocol setting for a manager.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -275,14 +275,14 @@ "null" ] }, - "longDescription": "The value of this property shall contain all the NTP servers for which this manager is using to obtain time.", + "longDescription": "This property shall contain all the NTP servers for which this manager is using to obtain time.", "readonly": false, "type": "array", "versionAdded": "v1_2_0" }, "Port": { - "description": "Indicates the protocol port.", - "longDescription": "The value of this property shall contain the port assigned for the protocol.", + "description": "The protocol port.", + "longDescription": "This property shall contain the port assigned to the protocol.", "minimum": 0, "readonly": false, "type": [ @@ -291,8 +291,8 @@ ] }, "ProtocolEnabled": { - "description": "Indicates if the protocol is enabled or disabled.", - "longDescription": "The value of this property shall contain the enabled status of the protocol. The value shall be true if enabled and false if disabled.", + "description": "An indication of whether the protocol is enabled.", + "longDescription": "This property shall indicate whether the protocol is enabled.", "readonly": false, "type": [ "boolean", @@ -309,18 +309,18 @@ "Organization" ], "enumDescriptions": { - "Link": "SSDP Notify messages are sent to addresses in the IPv6 Local Link scope.", - "Organization": "SSDP Notify messages are sent to addresses in the IPv6 Local Organization scope.", - "Site": "SSDP Notify messages are sent to addresses in the IPv6 Local Site scope." + "Link": "SSDP NOTIFY messages are sent to addresses in the IPv6 local link scope.", + "Organization": "SSDP NOTIFY messages are sent to addresses in the IPv6 local organization scope.", + "Site": "SSDP NOTIFY messages are sent to addresses in the IPv6 local site scope." }, "type": "string" }, "OemActions": { "additionalProperties": true, - "description": "The available OEM specific actions for this resource.", - "longDescription": "This type shall contain any additional OEM actions for this resource.", + "description": "The available OEM-specific actions for this Resource.", + "longDescription": "This type shall contain the available OEM-specific actions for this Resource.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -338,10 +338,10 @@ }, "Protocol": { "additionalProperties": false, - "description": "Settings for a network protocol associated with a manager.", + "description": "The settings for a network protocol associated with a manager.", "longDescription": "This type shall describe information about a protocol setting for a manager.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -356,8 +356,8 @@ }, "properties": { "Port": { - "description": "Indicates the protocol port.", - "longDescription": "The value of this property shall contain the port assigned for the protocol.", + "description": "The protocol port.", + "longDescription": "This property shall contain the port assigned to the protocol.", "minimum": 0, "readonly": false, "type": [ @@ -366,8 +366,8 @@ ] }, "ProtocolEnabled": { - "description": "Indicates if the protocol is enabled or disabled.", - "longDescription": "The value of this property shall contain the enabled status of the protocol. The value shall be true if enabled and false if disabled.", + "description": "An indication of whether the protocol is enabled.", + "longDescription": "This property shall indicate whether the protocol is enabled.", "readonly": false, "type": [ "boolean", @@ -379,10 +379,10 @@ }, "SSDProtocol": { "additionalProperties": false, - "description": "Settings for a network protocol associated with a manager.", + "description": "The settings for a network protocol associated with a manager.", "longDescription": "This type shall describe information about a protocol setting for a manager.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -405,13 +405,13 @@ "type": "null" } ], - "description": "Indicates the scope for the IPv6 Notify messages for SSDP.", - "longDescription": "The value of this property shall contain the IPv6 scope used for multicast NOTIFY messages. The valid enumerations are a subset of the available IPv6 Scope types.", + "description": "The IPv6 scope for multicast NOTIFY messages for SSDP.", + "longDescription": "This property shall contain the IPv6 scope for multicast NOTIFY messages. The valid enumerations are a subset of the available IPv6 scope types.", "readonly": false }, "NotifyMulticastIntervalSeconds": { - "description": "Indicates how often the Multicast is done from this service for SSDP.", - "longDescription": "The value of this property shall contain the time interval, in seconds, between transmissions of the multicast NOTIFY ALIVE message. A setting of 0 seconds shall disable this functionality. The recommended value is 600 seconds.", + "description": "The time interval, in seconds, between transmissions of the multicast NOTIFY ALIVE message from this service for SSDP.", + "longDescription": "This property shall contain the time interval, in seconds, between transmissions of the multicast NOTIFY ALIVE message. A setting of 0 seconds shall disable this functionality. The recommended value is 600 seconds.", "minimum": 0, "readonly": false, "type": [ @@ -421,8 +421,8 @@ "units": "s" }, "NotifyTTL": { - "description": "Indicates the time to live hop count for SSDPs Notify messages.", - "longDescription": "The value of this property shall contain the Time-To-Live hop count used for multicast NOTIFY messages. The recommended value is 2.", + "description": "The time-to-live hop count for SSDP multicast NOTIFY messages.", + "longDescription": "This property shall contain the time-to-live hop count used for multicast NOTIFY messages. The recommended value is 2.", "minimum": 1, "readonly": false, "type": [ @@ -431,8 +431,8 @@ ] }, "Port": { - "description": "Indicates the protocol port.", - "longDescription": "The value of this property shall contain the port assigned for the protocol.", + "description": "The protocol port.", + "longDescription": "This property shall contain the port assigned to the protocol.", "minimum": 0, "readonly": false, "type": [ @@ -441,8 +441,8 @@ ] }, "ProtocolEnabled": { - "description": "Indicates if the protocol is enabled or disabled.", - "longDescription": "The value of this property shall contain the enabled status of the protocol. The value shall be true if enabled and false if disabled.", + "description": "An indication of whether the protocol is enabled.", + "longDescription": "This property shall indicate whether the protocol is enabled.", "readonly": false, "type": [ "boolean", @@ -455,5 +455,5 @@ }, "owningEntity": "DMTF", "release": "2018.3", - "title": "#ManagerNetworkProtocol.v1_4_0.ManagerNetworkProtocol" + "title": "#ManagerNetworkProtocol.v1_4_2.ManagerNetworkProtocol" } \ No newline at end of file diff --git a/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/Memory/Memory.json b/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/Memory/Memory.json index a794c5d8..f8fa07db 100644 --- a/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/Memory/Memory.json +++ b/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/Memory/Memory.json @@ -1,15 +1,15 @@ { - "$id": "http://redfish.dmtf.org/schemas/v1/Memory.v1_7_0.json", + "$id": "http://redfish.dmtf.org/schemas/v1/Memory.v1_8_0.json", "$ref": "#/definitions/Memory", "$schema": "http://redfish.dmtf.org/schemas/v1/redfish-schema-v1.json", - "copyright": "Copyright 2014-2018 DMTF. For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright", + "copyright": "Copyright 2014-2019 DMTF. For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright", "definitions": { "Actions": { "additionalProperties": false, - "description": "The available actions for this resource.", - "longDescription": "This type shall contain the available actions for this resource.", + "description": "The available actions for this Resource.", + "longDescription": "This type shall contain the available actions for this Resource.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -29,6 +29,9 @@ "#Memory.OverwriteUnit": { "$ref": "#/definitions/OverwriteUnit" }, + "#Memory.Reset": { + "$ref": "#/definitions/Reset" + }, "#Memory.SecureEraseUnit": { "$ref": "#/definitions/SecureEraseUnit" }, @@ -40,8 +43,8 @@ }, "Oem": { "$ref": "#/definitions/OemActions", - "description": "This property contains the available OEM specific actions for this resource.", - "longDescription": "This property shall contain any additional OEM actions for this resource." + "description": "The available OEM-specific actions for this Resource.", + "longDescription": "This property shall contain the available OEM-specific actions for this Resource." } }, "type": "object" @@ -85,19 +88,19 @@ "parameters": { "Passphrase": { "description": "Passphrase for doing the operation.", - "longDescription": "The value of this property shall be the passphrase used in this action.", + "longDescription": "This property shall contain the passphrase used in this action.", "requiredParameter": true, "type": "string" }, "RegionId": { - "description": "Memory region ID for which this action to be applied.", - "longDescription": "The value of this property shall be the Memory region ID for which this action to be applied.", + "description": "The memory region ID to which to apply this action.", + "longDescription": "This property shall contain the memory region ID to which to apply this action.", "requiredParameter": true, "type": "string" } }, "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -113,7 +116,7 @@ "properties": { "target": { "description": "Link to invoke action", - "format": "uri", + "format": "uri-reference", "type": "string" }, "title": { @@ -131,19 +134,19 @@ "AddressParity" ], "enumDescriptions": { - "AddressParity": "Address Parity errors can be corrected.", - "MultiBitECC": "Multi-bit Data errors can be corrected by ECC.", + "AddressParity": "Address parity errors can be corrected.", + "MultiBitECC": "Multibit data errors can be corrected by ECC.", "NoECC": "No ECC available.", - "SingleBitECC": "Single bit Data error can be corrected by ECC." + "SingleBitECC": "Single bit data errors can be corrected by ECC." }, "type": "string" }, "Links": { "additionalProperties": false, - "description": "Contains references to other resources that are related to this resource.", - "longDescription": "This type, as described by the Redfish Specification, shall contain references to resources that are related to, but not contained by (subordinate to), this resource.", + "description": "The links to other Resources that are related to this Resource.", + "longDescription": "The Redfish Specification-described type shall contain links to Resources related to but not subordinate to this Resource.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -159,25 +162,25 @@ "properties": { "Chassis": { "$ref": "http://redfish.dmtf.org/schemas/v1/Chassis.json#/definitions/Chassis", - "description": "A reference to the Chassis which contains this Memory.", - "longDescription": "The value of this property shall be a reference to a resource of type Chassis that represent the physical container associated with this Memory.", + "description": "The link to the chassis that contains this memory.", + "longDescription": "This property shall contain a link to a Resource of type Chassis that represent the physical container associated with this memory.", "readonly": true, "versionAdded": "v1_2_0" }, "Oem": { "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem", - "description": "Oem extension object.", - "longDescription": "This object represents the Oem property. All values for resources described by this schema shall comply to the requirements as described in the Redfish specification." + "description": "The OEM extension property.", + "longDescription": "This property shall contain the OEM extensions. All values for properties contained in this object shall conform to the Redfish Specification-described requirements." } }, "type": "object" }, "Memory": { "additionalProperties": false, - "description": "This is the schema definition for definition of a Memory and its configuration.", - "longDescription": "This resource shall be used to represent the Memory in a Redfish implementation.", + "description": "The schema for definition of a memory and its configuration.", + "longDescription": "This Resource contains the memory in a Redfish implementation.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -192,25 +195,25 @@ }, "properties": { "@odata.context": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/context" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/context" }, "@odata.etag": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/etag" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/etag" }, "@odata.id": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/id" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/id" }, "@odata.type": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/type" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/type" }, "Actions": { "$ref": "#/definitions/Actions", - "description": "The available actions for this resource.", - "longDescription": "The Actions property shall contain the available actions for this resource." + "description": "The available actions for this Resource.", + "longDescription": "This property shall contain the available actions for this Resource." }, "AllocationAlignmentMiB": { - "description": "The boundary which memory regions are allocated on, measured in mebibytes (MiB).", - "longDescription": "The value of this property shall be thealignment boundary on which memory regions are allocated, measured in MiB.", + "description": "The boundary that memory regions are allocated on, measured in mebibytes (MiB).", + "longDescription": "This property shall contain the alignment boundary on which memory regions are allocated, measured in MiB.", "readonly": true, "type": [ "integer", @@ -221,7 +224,7 @@ }, "AllocationIncrementMiB": { "description": "The size of the smallest unit of allocation for a memory region in mebibytes (MiB).", - "longDescription": "The value of this property shall be the allocation increment for regions, measured in MiB.", + "longDescription": "This property shall contain the allocation increment for regions, measured in MiB.", "readonly": true, "type": [ "integer", @@ -231,19 +234,19 @@ "versionAdded": "v1_2_0" }, "AllowedSpeedsMHz": { - "description": "Speed bins supported by this Memory.", + "description": "Speeds supported by this memory.", "items": { "type": "integer" }, - "longDescription": "The value of this property shall be the speed supported by this Memory.", + "longDescription": "This property shall contain the speed supported by this memory.", "readonly": true, "type": "array", "units": "MHz" }, "Assembly": { "$ref": "http://redfish.dmtf.org/schemas/v1/Assembly.json#/definitions/Assembly", - "description": "A reference to the Assembly resource associated with this memory.", - "longDescription": "The value of this property shall be a link to a resource of type Assembly.", + "description": "The link to the assembly Resource associated with this memory.", + "longDescription": "This property shall contain a link to a Resource of type assembly.", "readonly": true, "versionAdded": "v1_4_0" }, @@ -256,13 +259,13 @@ "type": "null" } ], - "description": "The base module type of Memory.", - "longDescription": "The value of this property shall be the base module type of Memory.", + "description": "The base module type of the memory.", + "longDescription": "This property shall contain the base module type of the memory.", "readonly": true }, "BusWidthBits": { - "description": "Bus Width in bits.", - "longDescription": "The value of this property shall be the bus width in bits.", + "description": "The bus width, in bits.", + "longDescription": "This property shall contain the bus width, in bits.", "readonly": true, "type": [ "integer", @@ -271,7 +274,7 @@ }, "CacheSizeMiB": { "description": "Total size of the cache portion memory in MiB.", - "longDescription": "The value of this property shall be the total size of the cache portion memory in MiB.", + "longDescription": "This property shall contain the total size of the cache portion memory in MiB.", "readonly": true, "type": [ "integer", @@ -281,8 +284,8 @@ "versionAdded": "v1_4_0" }, "CapacityMiB": { - "description": "Memory Capacity in mebibytes (MiB).", - "longDescription": "The value of this property shall be the Memory capacity in MiB.", + "description": "Memory capacity in mebibytes (MiB).", + "longDescription": "This property shall contain the memory capacity in MiB.", "readonly": true, "type": [ "integer", @@ -291,8 +294,8 @@ "units": "MiBy" }, "ConfigurationLocked": { - "description": "Indicates that the configuration of this memory has been locked.", - "longDescription": "The value of this property shall be the current configuration lock state of this memory. True shall indicate that the configuration is locked and cannot be altered. False shall indicate that the configuration is not locked and may be altered.", + "description": "An indication of whether the configuration of this memory is locked and cannot be altered.", + "longDescription": "This property shall indicate whether the configuration of this memory is locked and cannot be altered.", "readonly": true, "type": [ "boolean", @@ -301,8 +304,8 @@ "versionAdded": "v1_7_0" }, "DataWidthBits": { - "description": "Data Width in bits.", - "longDescription": "The value of this property shall be the data width in bits.", + "description": "Data width in bits.", + "longDescription": "This property shall contain the data width in bits.", "readonly": true, "type": [ "integer", @@ -321,17 +324,19 @@ "readonly": true }, "DeviceID": { + "deprecated": "This property has been deprecated in favor of ModuleProductID.", "description": "Device ID.", - "longDescription": "The value of this property shall be the device ID of the Memory.", + "longDescription": "This property shall contain the device ID of the memory.", "readonly": true, "type": [ "string", "null" - ] + ], + "versionDeprecated": "v1_3_0" }, "DeviceLocator": { - "description": "Location of the Memory in the platform.", - "longDescription": "The value of this property shall be location of the Memory in the platform, typically marked in the silk screen.", + "description": "Location of the memory in the platform.", + "longDescription": "This property shall contain location of the memory in the platform, typically marked in the silk screen.", "readonly": true, "type": [ "string", @@ -348,12 +353,12 @@ } ], "description": "Error correction scheme supported for this memory.", - "longDescription": "The value of this property shall be the error correction scheme supported for this memory.", + "longDescription": "This property shall contain the error correction scheme supported for this memory.", "readonly": true }, "FirmwareApiVersion": { "description": "Version of API supported by the firmware.", - "longDescription": "The value of this property shall be the version of API supported by the firmware.", + "longDescription": "This property shall contain the version of API supported by the firmware.", "readonly": true, "type": [ "string", @@ -361,8 +366,8 @@ ] }, "FirmwareRevision": { - "description": "Revision of firmware on the Memory controller.", - "longDescription": "The value of this property shall be the revision of firmware on the Memory controller.", + "description": "Revision of firmware on the memory controller.", + "longDescription": "This property shall contain the revision of firmware on the memory controller.", "readonly": true, "type": [ "string", @@ -370,21 +375,23 @@ ] }, "FunctionClasses": { - "description": "Function Classes by the Memory.", + "deprecated": "This property has been deprecated in favor of OperatingMemoryModes at the root of the Resource, or MemoryClassification found within RegionSet.", + "description": "Function classes by the memory.", "items": { "type": "string" }, - "longDescription": "The value of this property shall be the function classes by the Memory.", + "longDescription": "This property shall contain the function classes by the memory.", "readonly": true, - "type": "array" + "type": "array", + "versionDeprecated": "v1_3_0" }, "Id": { "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Id", "readonly": true }, "IsRankSpareEnabled": { - "description": "Rank spare enabled status.", - "longDescription": "The value of this property shall be true if a rank spare is enabled for this Memory.", + "description": "An indication of whether rank spare is enabled for this memory.", + "longDescription": "This property shall indicate whether rank spare is enabled for this memory.", "readonly": true, "type": [ "boolean", @@ -392,8 +399,8 @@ ] }, "IsSpareDeviceEnabled": { - "description": "Spare device enabled status.", - "longDescription": "The value of this property shall be true if a spare device is enabled for this Memory.", + "description": "An indication of whether a spare device is enabled for this memory.", + "longDescription": "This property shall indicate whether the spare device is enabled.", "readonly": true, "type": [ "boolean", @@ -402,19 +409,19 @@ }, "Links": { "$ref": "#/definitions/Links", - "description": "Contains references to other resources that are related to this resource.", - "longDescription": "The Links property, as described by the Redfish Specification, shall contain references to resources that are related to, but not contained by (subordinate to), this resource.", + "description": "The links to other Resources that are related to this Resource.", + "longDescription": "The Redfish Specification-described Links Property shall contain links to Resources related to but not subordinate to this Resource.", "versionAdded": "v1_2_0" }, "Location": { "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Location", - "description": "The Location of the memory.", + "description": "The location of the memory.", "longDescription": "This property shall contain location information of the associated memory.", "versionAdded": "v1_4_0" }, "LogicalSizeMiB": { "description": "Total size of the logical memory in MiB.", - "longDescription": "The value of this property shall be the total size of the logical memory in MiB.", + "longDescription": "This property shall contain the total size of the logical memory in MiB.", "readonly": true, "type": [ "integer", @@ -424,8 +431,8 @@ "versionAdded": "v1_4_0" }, "Manufacturer": { - "description": "The Memory manufacturer.", - "longDescription": "This property shall contain a string which identifies the manufacturer of the Memory.", + "description": "The memory manufacturer.", + "longDescription": "This property shall contain the manufacturer of the memory.", "readonly": true, "type": [ "string", @@ -433,11 +440,11 @@ ] }, "MaxTDPMilliWatts": { - "description": "Maximum TDPs in milli Watts.", + "description": "Set of maximum power budgets supported by the memory in milliwatts.", "items": { "type": "integer" }, - "longDescription": "The value of this property shall be the maximum power budgets supported by the Memory in milli Watts.", + "longDescription": "This property shall contain an array of maximum power budgets supported by the memory in milliwatts.", "readonly": true, "type": "array", "units": "mW" @@ -451,27 +458,27 @@ "type": "null" } ], - "description": "Type details of the Memory.", - "longDescription": "The value of this property shall be the Memory Device Type as defined by SMBIOS.", + "description": "Type details of the memory.", + "longDescription": "This property shall contain the Memory Device Type as defined by SMBIOS.", "readonly": true }, "MemoryLocation": { "$ref": "#/definitions/MemoryLocation", "description": "Memory connection information to sockets and memory controllers.", - "longDescription": "This object shall contain properties which describe the Memory connection information to sockets and memory controllers." + "longDescription": "This object shall contain properties that describe the memory connection information to sockets and memory controllers." }, "MemoryMedia": { - "description": "Media of this Memory.", + "description": "Media of this memory.", "items": { "$ref": "#/definitions/MemoryMedia" }, - "longDescription": "The value of this property shall be the media types of this Memory.", + "longDescription": "This property shall contain the media types of this memory.", "readonly": true, "type": "array" }, "MemorySubsystemControllerManufacturerID": { "description": "The manufacturer ID of the memory subsystem controller of this memory module.", - "longDescription": "The value of this property shall be the two byte manufacturer ID of the memory subsystem controller of this memory module as defined by JEDEC in JEP-106.", + "longDescription": "This property shall contain the two byte manufacturer ID of the memory subsystem controller of this memory module as defined by JEDEC in JEP-106.", "pattern": "^0[xX](([a-fA-F]|[0-9]){2}){2}$", "readonly": true, "type": [ @@ -482,7 +489,7 @@ }, "MemorySubsystemControllerProductID": { "description": "The product ID of the memory subsystem controller of this memory module.", - "longDescription": "The value of this property shall be the two byte product ID of the memory subsystem controller of this memory module as defined by the manufacturer.", + "longDescription": "This property shall contain the two byte product ID of the memory subsystem controller of this memory module as defined by the manufacturer.", "pattern": "^0[xX](([a-fA-F]|[0-9]){2}){2}$", "readonly": true, "type": [ @@ -500,19 +507,19 @@ "type": "null" } ], - "description": "The type of Memory.", - "longDescription": "The value of this property shall be the type of Memory represented by this resource.", + "description": "The type of memory.", + "longDescription": "This property shall contain the type of memory that this Resource represents.", "readonly": true }, "Metrics": { "$ref": "http://redfish.dmtf.org/schemas/v1/MemoryMetrics.json#/definitions/MemoryMetrics", - "description": "A reference to the Metrics associated with this Memory.", - "longDescription": "A reference to the Metrics associated with this Memory.", + "description": "The link to the Metrics associated with this memory.", + "longDescription": "The link to the metrics associated with this memory.", "readonly": true }, "ModuleManufacturerID": { "description": "The manufacturer ID of this memory module.", - "longDescription": "The value of this property shall be the two byte manufacturer ID of this memory module as defined by JEDEC in JEP-106.", + "longDescription": "This property shall contain the two byte manufacturer ID of this memory module as defined by JEDEC in JEP-106.", "pattern": "^0[xX](([a-fA-F]|[0-9]){2}){2}$", "readonly": true, "type": [ @@ -523,7 +530,7 @@ }, "ModuleProductID": { "description": "The product ID of this memory module.", - "longDescription": "The value of this property shall be the two byte product ID of this memory module as defined by the manufacturer.", + "longDescription": "This property shall contain the two byte product ID of this memory module as defined by the manufacturer.", "pattern": "^0[xX](([a-fA-F]|[0-9]){2}){2}$", "readonly": true, "type": [ @@ -538,7 +545,7 @@ }, "NonVolatileSizeMiB": { "description": "Total size of the non-volatile portion memory in MiB.", - "longDescription": "The value of this property shall be the total size of the non-volatile portion memory in MiB.", + "longDescription": "This property shall contain the total size of the non-volatile portion memory in MiB.", "readonly": true, "type": [ "integer", @@ -549,21 +556,21 @@ }, "Oem": { "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem", - "description": "This is the manufacturer/provider specific extension moniker used to divide the Oem object into sections.", - "longDescription": "The value of this string shall be of the format for the reserved word *Oem*." + "description": "The OEM extension property.", + "longDescription": "This property shall contain the OEM extensions. All values for properties that this object contains shall conform to the Redfish Specification-described requirements." }, "OperatingMemoryModes": { - "description": "Memory modes supported by the Memory.", + "description": "Memory modes supported by the memory.", "items": { "$ref": "#/definitions/OperatingMemoryModes" }, - "longDescription": "The value of this property shall be the memory modes supported by the Memory.", + "longDescription": "This property shall contain the memory modes supported by the memory.", "readonly": true, "type": "array" }, "OperatingSpeedMhz": { - "description": "Operating speed of Memory in MHz or MT/s as appropriate.", - "longDescription": "The value of this property shall be the operating speed of Memory in MHz or MT/s (mega-transfers per second) as reported by the memory device. Memory devices which operate at their bus speed shall report the operating speed in MHz (bus speed), while memory device which transfer data faster than their bus speed (e.g. DDR memory) shall report the operating speed in MT/s (mega-transfers/second). In any case, the reported value shall match the conventionally reported values for the technology utilized by the memory device.", + "description": "Operating speed of memory in MHz or MT/s as appropriate.", + "longDescription": "This property shall contain the operating speed of memory in MHz or MT/s (mega-transfers per second) as reported by the memory device. memory devices that operate at their bus speed shall report the operating speed in MHz (bus speed), while memory devices that transfer data faster than their bus speed, such as DDR memory, shall report the operating speed in MT/s (mega-transfers/second). In any case, the reported value shall match the conventionally reported values for the technology used by the memory device.", "readonly": true, "type": [ "integer", @@ -573,7 +580,7 @@ }, "PartNumber": { "description": "The product part number of this device.", - "longDescription": "This property shall indicate the part number as provided by the manufacturer of this Memory.", + "longDescription": "This property shall indicate the part number as provided by the manufacturer of this memory.", "readonly": true, "type": [ "string", @@ -581,8 +588,8 @@ ] }, "PersistentRegionNumberLimit": { - "description": "Total number of persistent regions this Memory can support.", - "longDescription": "The value of this property shall be the total number of persistent regions this Memory can support.", + "description": "Total number of persistent regions this memory can support.", + "longDescription": "This property shall contain the total number of persistent regions this memory can support.", "readonly": true, "type": [ "integer", @@ -592,7 +599,7 @@ }, "PersistentRegionSizeLimitMiB": { "description": "Total size of persistent regions in mebibytes (MiB).", - "longDescription": "The value of this property shall be the total size of persistent regions in MiB.", + "longDescription": "This property shall contain the total size of persistent regions in MiB.", "readonly": true, "type": [ "integer", @@ -602,7 +609,7 @@ }, "PersistentRegionSizeMaxMiB": { "description": "Maximum size of a single persistent region in mebibytes (MiB).", - "longDescription": "The value of this property shall be the maximum size of a single persistent regions in MiB.", + "longDescription": "This property shall contain the maximum size of a single persistent regions in MiB.", "readonly": true, "type": [ "integer", @@ -614,11 +621,11 @@ "PowerManagementPolicy": { "$ref": "#/definitions/PowerManagementPolicy", "description": "Power management policy information.", - "longDescription": "This object shall contain properties which describe the power management policy for the current resource." + "longDescription": "This object shall contain properties that describe the power management policy for this Resource." }, "RankCount": { - "description": "Number of ranks available in the Memory.", - "longDescription": "The value of this property shall be number of ranks available in the Memory. The ranks could be used for spare or interleave.", + "description": "Number of ranks available in the memory.", + "longDescription": "This property shall contain the number of ranks available in the memory. The ranks could be used for spare or interleave.", "readonly": true, "type": [ "integer", @@ -626,17 +633,17 @@ ] }, "Regions": { - "description": "Memory regions information within the Memory.", + "description": "Memory regions information within the memory.", "items": { "$ref": "#/definitions/RegionSet" }, - "longDescription": "The value of this property shall be the memory region information within the Memory.", + "longDescription": "This property shall contain the memory region information within the memory.", "type": "array" }, "SecurityCapabilities": { "$ref": "#/definitions/SecurityCapabilities", - "description": "This object contains security capabilities of the Memory.", - "longDescription": "This object shall contain properties which describe the security capabilities of the Memory." + "description": "Security capabilities of the memory.", + "longDescription": "This property shall contain properties that describe the security capabilities of the memory." }, "SecurityState": { "anyOf": [ @@ -647,14 +654,14 @@ "type": "null" } ], - "description": "The current security state of this Memory.", - "longDescription": "The value of this property shall be the current security state of this memory.", + "description": "The current security state of this memory.", + "longDescription": "This property shall contain the current security state of this memory.", "readonly": false, "versionAdded": "v1_7_0" }, "SerialNumber": { "description": "The product serial number of this device.", - "longDescription": "This property shall indicate the serial number as provided by the manufacturer of this Memory.", + "longDescription": "This property shall indicate the serial number as provided by the manufacturer of this memory.", "readonly": true, "type": [ "string", @@ -662,8 +669,8 @@ ] }, "SpareDeviceCount": { - "description": "Number of unused spare devices available in the Memory.", - "longDescription": "The value of this property shall be the number of unused spare devices available in the Memory. If memory devices fails, the spare device could be used.", + "description": "Number of unused spare devices available in the memory.", + "longDescription": "This property shall contain the number of unused spare devices available in the memory. If memory devices fails, the spare device could be used.", "readonly": true, "type": [ "integer", @@ -672,40 +679,46 @@ }, "Status": { "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Status", - "description": "This property describes the status and health of the resource and its children.", - "longDescription": "This property shall contain any status or health properties of the resource.", + "description": "The status and health of the Resource and its subordinate or dependent Resources.", + "longDescription": "This property shall contain any status or health properties of the Resource.", "versionAdded": "v1_1_0" }, "SubsystemDeviceID": { - "description": "Subsystem Device ID.", - "longDescription": "The value of this property shall be the subsystem Device ID of the Memory.", + "deprecated": "This property has been deprecated in favor of MemorySubsystemControllerProductID.", + "description": "Subsystem device ID.", + "longDescription": "This property shall contain the subsystem device ID of the memory.", "readonly": true, "type": [ "string", "null" - ] + ], + "versionDeprecated": "v1_3_0" }, "SubsystemVendorID": { - "description": "SubSystem Vendor ID.", - "longDescription": "The value of this property shall be the subsystem Vendor ID of the Memory.", + "deprecated": "This property has been deprecated in favor of MemorySubsystemControllerManufacturerID.", + "description": "SubSystem vendor ID.", + "longDescription": "This property shall contain the subsystem vendor ID of the memory.", "readonly": true, "type": [ "string", "null" - ] + ], + "versionDeprecated": "v1_3_0" }, "VendorID": { + "deprecated": "This property has been deprecated in favor of ModuleManufacturerID.", "description": "Vendor ID.", - "longDescription": "The value of this property shall be the vendor ID of the Memory.", + "longDescription": "This property shall contain the vendor ID of the memory.", "readonly": true, "type": [ "string", "null" - ] + ], + "versionDeprecated": "v1_3_0" }, "VolatileRegionNumberLimit": { - "description": "Total number of volatile regions this Memory can support.", - "longDescription": "The value of this property shall be the total number of volatile regions this Memory can support.", + "description": "Total number of volatile regions this memory can support.", + "longDescription": "This property shall contain the total number of volatile regions this memory can support.", "readonly": true, "type": [ "integer", @@ -715,7 +728,7 @@ }, "VolatileRegionSizeLimitMiB": { "description": "Total size of volatile regions in mebibytes (MiB).", - "longDescription": "The value of this property shall be the total size of volatile regions in MiB.", + "longDescription": "This property shall contain the total size of volatile regions in MiB.", "readonly": true, "type": [ "integer", @@ -725,7 +738,7 @@ }, "VolatileRegionSizeMaxMiB": { "description": "Maximum size of a single volatile region in mebibytes (MiB).", - "longDescription": "The value of this property shall be the maximum size of a single volatile regions in MiB.", + "longDescription": "This property shall contain the maximum size of a single volatile regions in MiB.", "readonly": true, "type": [ "integer", @@ -736,7 +749,7 @@ }, "VolatileSizeMiB": { "description": "Total size of the volitile portion memory in MiB.", - "longDescription": "The value of this property shall be the total size of the volatile portion memory in MiB.", + "longDescription": "This property shall contain the total size of the volatile portion memory in MiB.", "readonly": true, "type": [ "integer", @@ -761,8 +774,8 @@ "Block" ], "enumDescriptions": { - "Block": "Block accesible memory.", - "ByteAccessiblePersistent": "Byte accessible persistent memory.", + "Block": "Block-accesible memory.", + "ByteAccessiblePersistent": "Byte-accessible persistent memory.", "Volatile": "Volatile memory." }, "type": "string" @@ -826,9 +839,9 @@ "MemoryLocation": { "additionalProperties": false, "description": "Memory connection information to sockets and memory controllers.", - "longDescription": "This type shall contain properties which describe the Memory connection information to sockets and memory controllers.", + "longDescription": "This type shall contain properties that describe the memory connection information to sockets and memory controllers.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -843,8 +856,8 @@ }, "properties": { "Channel": { - "description": "Channel number in which Memory is connected.", - "longDescription": "Channel number in which Memory is connected.", + "description": "The channel number to which the memory is connected.", + "longDescription": "This property shall contain the channel number to which the memory is connected.", "readonly": true, "type": [ "integer", @@ -852,8 +865,8 @@ ] }, "MemoryController": { - "description": "Memory controller number in which Memory is connected.", - "longDescription": "Memory controller number in which Memory is connected.", + "description": "The memory controller number to which the memory is connected.", + "longDescription": "This property shall contain the memory controller number to which the memory is connected.", "readonly": true, "type": [ "integer", @@ -861,8 +874,8 @@ ] }, "Slot": { - "description": "Slot number in which Memory is connected.", - "longDescription": "Slot number in which Memory is connected.", + "description": "The slot number to which the memory is connected.", + "longDescription": "This property shall contain the slot number to which the memory is connected.", "readonly": true, "type": [ "integer", @@ -870,8 +883,8 @@ ] }, "Socket": { - "description": "Socket number in which Memory is connected.", - "longDescription": "Socket number in which Memory is connected.", + "description": "The socket number to which the memory is connected.", + "longDescription": "This property shall contain the socket number to which the memory is connected.", "readonly": true, "type": [ "integer", @@ -908,15 +921,15 @@ "IntelOptane" ], "enumDescriptions": { - "DRAM": "The memory module is composed of volatile memory.", - "IntelOptane": "The memory module is Intel Optane DC Persistent Memory and composed of a combination of non-volatile and volatile memory.", - "NVDIMM_F": "The memory module is composed of non-volatile memory.", - "NVDIMM_N": "The memory module is composed of volatile memory backed by non-volatile memory.", - "NVDIMM_P": "The memory module is composed of a combination of non-volatile and volatile memory." + "DRAM": "The memory module is comprised of volatile memory.", + "IntelOptane": "The memory module is an Intel Optane DC Persistent Memory Module.", + "NVDIMM_F": "The memory module is comprised of non-volatile memory.", + "NVDIMM_N": "The memory module is comprised of volatile memory backed by non-volatile memory.", + "NVDIMM_P": "The memory module is comprised of a combination of non-volatile and volatile memory." }, "enumLongDescriptions": { "DRAM": "This memory type shall represent volatile DRAM.", - "IntelOptane": "This memory type shall represent Intel Optane DC Persistent Memory.", + "IntelOptane": "This memory type shall represent an Intel Optane DC Persistent Memory Module.", "NVDIMM_F": "This memory type shall represent NVDIMM_F as defined by JEDEC.", "NVDIMM_N": "This memory type shall represent NVDIMM_N as defined by JEDEC.", "NVDIMM_P": "This memory type shall represent NVDIMM_P as defined by JEDEC." @@ -928,10 +941,10 @@ }, "OemActions": { "additionalProperties": true, - "description": "The available OEM specific actions for this resource.", - "longDescription": "This type shall contain any additional OEM actions for this resource.", + "description": "The available OEM-specific actions for this Resource.", + "longDescription": "This type shall contain the available OEM-specific actions for this Resource.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -954,32 +967,32 @@ "Block" ], "enumDescriptions": { - "Block": "Block accessible system memory.", - "PMEM": "Persistent memory, byte accesible through system address space.", + "Block": "Block-accessible system memory.", + "PMEM": "Persistent memory, byte-accesible through system address space.", "Volatile": "Volatile memory." }, "type": "string" }, "OverwriteUnit": { "additionalProperties": false, - "description": "This defines the action for securely erasing given regions using the NIST SP800-88 Purge: Overwrite.", - "longDescription": "This action shall securely erase the supplied region provided the supplied passphrase matches that of the given region using the NIST SP800-88 Purge: Overwrite. Use the SecureEraseUnit method to perform NIST SP800-88 Purge: Cryptographic Erase.", + "description": "This contains the action for securely erasing given regions using the NIST SP800-88 Purge: Overwrite.", + "longDescription": "This action shall securely erase the supplied region provided the supplied passphrase matches that of the given region using the NIST SP800-88 Purge: Overwrite. Use the SecureEraseUnit method to perform NIST SP800-88 Purge: Cryptographic Erase.", "parameters": { "Passphrase": { "description": "Passphrase for doing the operation.", - "longDescription": "The value of this property shall be the passphrase used in this action.", + "longDescription": "This property shall contain the passphrase used in this action.", "requiredParameter": true, "type": "string" }, "RegionId": { - "description": "Memory region ID for which this action to be applied.", - "longDescription": "The value of this property shall be the Memory region ID for which this action to be applied.", + "description": "The memory region ID to which to apply this action.", + "longDescription": "This property shall contain the memory region ID to which to apply this action.", "requiredParameter": true, "type": "string" } }, "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -995,7 +1008,7 @@ "properties": { "target": { "description": "Link to invoke action", - "format": "uri", + "format": "uri-reference", "type": "string" }, "title": { @@ -1009,9 +1022,9 @@ "PowerManagementPolicy": { "additionalProperties": false, "description": "Power management policy information.", - "longDescription": "This type shall contain properties which describe the power management policy for the current resource.", + "longDescription": "This type shall contain properties that describe the power management policy for this Resource.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -1026,8 +1039,8 @@ }, "properties": { "AveragePowerBudgetMilliWatts": { - "description": "Average power budget in milli watts.", - "longDescription": "Average power budget in milli watts.", + "description": "Average power budget, in milliwatts.", + "longDescription": "This property shall contain the average power budget, in milliwatts.", "readonly": true, "type": [ "integer", @@ -1036,8 +1049,8 @@ "units": "mW" }, "MaxTDPMilliWatts": { - "description": "Maximum TDP in milli watts.", - "longDescription": "Maximum TDP in milli watts.", + "description": "Maximum TDP in milliwatts.", + "longDescription": "This property shall contain the maximum TDP in milliwatts.", "readonly": true, "type": [ "integer", @@ -1046,8 +1059,8 @@ "units": "mW" }, "PeakPowerBudgetMilliWatts": { - "description": "Peak power budget in milli watts.", - "longDescription": "Peak power budget in milli watts.", + "description": "Peak power budget, in milliwatts.", + "longDescription": "This property shall contain the peak power budget, in milliwatts.", "readonly": true, "type": [ "integer", @@ -1056,8 +1069,8 @@ "units": "mW" }, "PolicyEnabled": { - "description": "Power management policy enabled status.", - "longDescription": "Power management policy enabled status.", + "description": "An indication of whether the power management policy is enabled.", + "longDescription": "This property shall indicate whether the power management policy is enabled.", "readonly": true, "type": [ "boolean", @@ -1069,10 +1082,10 @@ }, "RegionSet": { "additionalProperties": false, - "description": "Memory region information within a Memory entity.", - "longDescription": "This type shall describe the memory region information within a Memory entity.", + "description": "Memory region information within a memory device.", + "longDescription": "This type shall describe the memory region information within a memory device.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -1095,13 +1108,13 @@ "type": "null" } ], - "description": "Classification of memory occupied by the given memory region.", - "longDescription": "Classification of memory occupied by the given memory region.", + "description": "The classification of memory that the memory region occupies.", + "longDescription": "This property shall contain the classification of memory that the memory region occupies.", "readonly": true }, "OffsetMiB": { - "description": "Offset with in the Memory that corresponds to the starting of this memory region in mebibytes (MiB).", - "longDescription": "Offset with in the Memory that corresponds to the starting of this memory region in MiB.", + "description": "Offset within the memory that corresponds to the start of this memory region in mebibytes (MiB).", + "longDescription": "This property shall contain the offset within the memory that corresponds to the start of this memory region in MiB.", "readonly": true, "type": [ "integer", @@ -1110,8 +1123,8 @@ "units": "MiBy" }, "PassphraseEnabled": { - "description": "Indicates if the passphrase is enabled for this region.", - "longDescription": "The value of this property shall be a boolean indicating if the passphrase is enabled for this region.", + "description": "An indication of whether the passphrase is enabled for this region.", + "longDescription": "This property shall indicate whether the passphrase is enabled for this region.", "readonly": true, "type": [ "boolean", @@ -1120,17 +1133,19 @@ "versionAdded": "v1_5_0" }, "PassphraseState": { - "description": "State of the passphrase for this region.", - "longDescription": "State of the passphrase for this region.", + "deprecated": "This property has been deprecated in favor of PassphraseEnabled found within RegionSet.", + "description": "An indication of whether the state of the passphrase for this region is enabled.", + "longDescription": "This property shall indicate whether the state of the passphrase for this region is enabled.", "readonly": true, "type": [ "boolean", "null" - ] + ], + "versionDeprecated": "v1_5_0" }, "RegionId": { - "description": "Unique region ID representing a specific region within the Memory.", - "longDescription": "Unique region ID representing a specific region within the Memory.", + "description": "Unique region ID representing a specific region within the memory.", + "longDescription": "This property shall contain the unique region ID representing a specific region within the memory.", "readonly": true, "type": [ "string", @@ -1139,7 +1154,7 @@ }, "SizeMiB": { "description": "Size of this memory region in mebibytes (MiB).", - "longDescription": "Size of this memory region in MiB.", + "longDescription": "This property shall contain the size of this memory region in MiB.", "readonly": true, "type": [ "integer", @@ -1150,26 +1165,65 @@ }, "type": "object" }, + "Reset": { + "additionalProperties": false, + "description": "This action resets this memory.", + "longDescription": "This action shall reset this memory.", + "parameters": { + "ResetType": { + "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/ResetType", + "description": "The type of reset.", + "longDescription": "This parameter shall contain the type of reset. The Service may accept a request without the parameter and perform an implementation specific default reset." + } + }, + "patternProperties": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { + "description": "This property shall specify a valid odata or Redfish property.", + "type": [ + "array", + "boolean", + "integer", + "number", + "null", + "object", + "string" + ] + } + }, + "properties": { + "target": { + "description": "Link to invoke action", + "format": "uri-reference", + "type": "string" + }, + "title": { + "description": "Friendly action name", + "type": "string" + } + }, + "type": "object", + "versionAdded": "v1_8_0" + }, "SecureEraseUnit": { "additionalProperties": false, - "description": "This defines the action for securely erasing given regions using the NIST SP800-88 Purge: Cryptograhic Erase.", - "longDescription": "This action shall securely erase the supplied region provided the supplied passphrase matches that of the given region using the NIST SP800-88 Purge: Cryptographic Erase. Use the OverwriteUnit method to perform NIST SP800-88 Purge: Overwrite.", + "description": "This contains the action for securely erasing given regions using the NIST SP800-88 Purge: Cryptograhic Erase.", + "longDescription": "This action shall securely erase the supplied region provided the supplied passphrase matches that of the given region using the NIST SP800-88 Purge: Cryptographic Erase. Use the OverwriteUnit method to perform NIST SP800-88 Purge: Overwrite.", "parameters": { "Passphrase": { "description": "Passphrase for doing the operation.", - "longDescription": "The value of this property shall be the passphrase used in this action.", + "longDescription": "This property shall contain the passphrase used in this action.", "requiredParameter": true, "type": "string" }, "RegionId": { - "description": "Memory region ID for which this action to be applied.", - "longDescription": "The value of this property shall be the Memory region ID for which this action to be applied.", + "description": "The memory region ID to which to apply this action.", + "longDescription": "This property shall contain the memory region ID to which to apply this action.", "requiredParameter": true, "type": "string" } }, "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -1185,7 +1239,7 @@ "properties": { "target": { "description": "Link to invoke action", - "format": "uri", + "format": "uri-reference", "type": "string" }, "title": { @@ -1197,10 +1251,10 @@ }, "SecurityCapabilities": { "additionalProperties": false, - "description": "This type contains security capabilities of a Memory entity.", - "longDescription": "This type shall contain properties which describe the security capabilities of a Memory entity.", + "description": "This type contains security capabilities of a memory device.", + "longDescription": "This type shall contain properties that describe the security capabilities of a memory device.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -1215,8 +1269,8 @@ }, "properties": { "ConfigurationLockCapable": { - "description": "Support for locking the configuration.", - "longDescription": "The value of this property shall indicate whether this memory supports the locking (freezing) of the configuration.", + "description": "An indication of whether this memory supports the locking, or freezing, of the configuration.", + "longDescription": "This property shall indicate whether this memory supports the locking, or freezing, of the configuration.", "readonly": true, "type": [ "boolean", @@ -1225,8 +1279,8 @@ "versionAdded": "v1_7_0" }, "DataLockCapable": { - "description": "Support for data locking.", - "longDescription": "The value of this property shall indicate whether this memory supports the locking of data access.", + "description": "An indication of whether this memory supports data locking.", + "longDescription": "This property shall indicate whether this memory supports the locking of data access.", "readonly": true, "type": [ "boolean", @@ -1235,8 +1289,8 @@ "versionAdded": "v1_7_0" }, "MaxPassphraseCount": { - "description": "Maximum number of passphrases supported for this Memory.", - "longDescription": "Maximum number of passphrases supported for this Memory.", + "description": "Maximum number of passphrases supported for this memory.", + "longDescription": "This property shall contain the maximum number of passphrases supported for this memory.", "readonly": true, "type": [ "integer", @@ -1244,8 +1298,8 @@ ] }, "PassphraseCapable": { - "description": "Memory passphrase set capability.", - "longDescription": "Memory passphrase set capability.", + "description": "An indication of whether the memory is passphrase capable.", + "longDescription": "This property shall indicate whether the memory is passphrase capable.", "readonly": true, "type": [ "boolean", @@ -1253,8 +1307,8 @@ ] }, "PassphraseLockLimit": { - "description": "Maximum number of incorrect passphrase attempts allowed before memory is locked.", - "longDescription": "The value of this property shall be the maximum number of incorrect passphase access attempts allowed before access to data is locked. A value of zero shall indicate that there is no limit to the number of attempts.", + "description": "The maximum number of incorrect passphrase attempts allowed before memory is locked.", + "longDescription": "This property shall contain the maximum number of incorrect passphase access attempts allowed before access to data is locked. If 0, the number of attempts is infinite.", "readonly": true, "type": [ "integer", @@ -1263,13 +1317,15 @@ "versionAdded": "v1_7_0" }, "SecurityStates": { - "description": "Security states supported by the Memory.", + "deprecated": "This property has been deprecated in favor of using the individual PassphraseCapable, DataLockCapable and ConfigurationLockCapable properties.", + "description": "Security states supported by the memory.", "items": { "$ref": "#/definitions/SecurityStates" }, - "longDescription": "Security states supported by the Memory.", + "longDescription": "This property shall contain the security states supported by the memory.", "readonly": true, - "type": "array" + "type": "array", + "versionDeprecated": "v1_7_0" } }, "type": "object" @@ -1290,9 +1346,9 @@ "enumDescriptions": { "Disabled": "Secure mode is disabled.", "Enabled": "Secure mode is enabled and access to the data is allowed.", - "Frozen": "Secure state is frozen and can not be modified until reset.", + "Frozen": "Secure state is frozen and cannot be modified until reset.", "Locked": "Secure mode is enabled and access to the data is locked.", - "Passphraselimit": "Number of attempts to unlock the Memory exceeded limit.", + "Passphraselimit": "Number of attempts to unlock the memory exceeded limit.", "Unlocked": "Secure mode is enabled and access to the data is unlocked." }, "enumVersionDeprecated": { @@ -1308,19 +1364,19 @@ "parameters": { "Passphrase": { "description": "Passphrase for doing the operation.", - "longDescription": "The value of this property shall be the passphrase used in this action.", + "longDescription": "This property shall contain the passphrase used in this action.", "requiredParameter": true, "type": "string" }, "RegionId": { - "description": "Memory region ID for which this action to be applied.", - "longDescription": "The value of this property shall be the Memory region ID for which this action to be applied.", + "description": "The memory region ID to which to apply this action.", + "longDescription": "This property shall contain the memory region ID to which to apply this action.", "requiredParameter": true, "type": "string" } }, "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -1336,7 +1392,7 @@ "properties": { "target": { "description": "Link to invoke action", - "format": "uri", + "format": "uri-reference", "type": "string" }, "title": { @@ -1348,24 +1404,24 @@ }, "UnlockUnit": { "additionalProperties": false, - "description": "This defines the action for unlocking given regions.", + "description": "This contains the action for unlocking given regions.", "longDescription": "This action shall apply the supplied passphrase to the supplied region for the purpose of unlocking the given regions.", "parameters": { "Passphrase": { - "description": "Passphrase for doing the operation.", - "longDescription": "The value of this property shall be the passphrase used in this actionn.", + "description": "The passphrase required to complete the operation.", + "longDescription": "This property shall contain the passphrase required to complete this actionn.", "requiredParameter": true, "type": "string" }, "RegionId": { - "description": "Memory region ID for which this action to be applied.", - "longDescription": "The value of this property shall be the Memory region ID for which this action to be applied.", + "description": "The memory region ID to which to apply this action.", + "longDescription": "This property shall contain the memory region ID to which to apply this action.", "requiredParameter": true, "type": "string" } }, "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -1381,7 +1437,7 @@ "properties": { "target": { "description": "Link to invoke action", - "format": "uri", + "format": "uri-reference", "type": "string" }, "title": { @@ -1393,6 +1449,6 @@ } }, "owningEntity": "DMTF", - "release": "2018.3", - "title": "#Memory.v1_7_0.Memory" + "release": "2019.2", + "title": "#Memory.v1_8_0.Memory" } \ No newline at end of file diff --git a/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/MemoryChunks/MemoryChunks.json b/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/MemoryChunks/MemoryChunks.json index ec12299c..b40f6e80 100644 --- a/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/MemoryChunks/MemoryChunks.json +++ b/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/MemoryChunks/MemoryChunks.json @@ -1,14 +1,15 @@ { + "$id": "http://redfish.dmtf.org/schemas/v1/MemoryChunks.v1_2_4.json", "$ref": "#/definitions/MemoryChunks", "$schema": "http://redfish.dmtf.org/schemas/v1/redfish-schema-v1.json", - "copyright": "Copyright 2014-2018 DMTF. For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright", + "copyright": "Copyright 2014-2019 DMTF. For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright", "definitions": { "Actions": { "additionalProperties": false, - "description": "The available actions for this resource.", - "longDescription": "This type shall contain the available actions for this resource.", + "description": "The available actions for this Resource.", + "longDescription": "This type shall contain the available actions for this Resource.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -24,8 +25,9 @@ "properties": { "Oem": { "$ref": "#/definitions/OemActions", - "description": "This property contains the available OEM specific actions for this resource.", - "longDescription": "This property shall contain any additional OEM actions for this resource." + "description": "The available OEM-specific actions for this Resource.", + "longDescription": "This property shall contain the available OEM-specific actions for this Resource.", + "versionAdded": "v1_1_0" } }, "type": "object" @@ -48,7 +50,7 @@ "description": "This an interleave set for a memory chunk.", "longDescription": "This type shall describe an interleave set of which the memory chunk is a part.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -63,14 +65,14 @@ }, "properties": { "Memory": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/idRef", + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/idRef", "description": "Describes a memory device of the interleave set.", - "longDescription": "The value of this property shall be the memory device to which these settings apply.", + "longDescription": "This property shall contain the memory device to which these settings apply.", "readonly": true }, "MemoryLevel": { "description": "Level of the interleave set for multi-level tiered memory.", - "longDescription": "The value of this property shall be the level of this interleave set for multi-level tiered memory.", + "longDescription": "This property shall contain the level of this interleave set for multi-level tiered memory.", "readonly": true, "type": [ "integer", @@ -79,7 +81,7 @@ }, "OffsetMiB": { "description": "Offset within the DIMM that corresponds to the start of this memory region, measured in mebibytes (MiB).", - "longDescription": "The value of this property shall be the offset within the DIMM that corresponds to the start of this memory region, with units in MiB.", + "longDescription": "This property shall contain the offset within the DIMM that corresponds to the start of this memory region, with units in MiB.", "readonly": true, "type": [ "integer", @@ -89,7 +91,7 @@ }, "RegionId": { "description": "DIMM region identifier.", - "longDescription": "The value of this property shall be the DIMM region identifier.", + "longDescription": "This property shall contain the DIMM region identifier.", "readonly": true, "type": [ "string", @@ -98,7 +100,7 @@ }, "SizeMiB": { "description": "Size of this memory region measured in mebibytes (MiB).", - "longDescription": "The value of this property shall be the size of this memory region, with units in MiB.", + "longDescription": "This property shall contain the size of this memory region, with units in MiB.", "readonly": true, "type": [ "integer", @@ -111,10 +113,10 @@ }, "MemoryChunks": { "additionalProperties": false, - "description": "This is the schema definition of a Memory Chunk and its configuration.", - "longDescription": "This resource shall be used to represent Memory Chunks and Interleave Sets in a Redfish implementation.", + "description": "The schema definition of a memory chunk and its configuration.", + "longDescription": "This Resource shall represent memory chunks and interleave sets in a Redfish implementation.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -129,21 +131,22 @@ }, "properties": { "@odata.context": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/context" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/context" }, "@odata.etag": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/etag" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/etag" }, "@odata.id": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/id" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/id" }, "@odata.type": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/type" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/type" }, "Actions": { "$ref": "#/definitions/Actions", - "description": "The available actions for this resource.", - "longDescription": "The Actions property shall contain the available actions for this resource." + "description": "The available actions for this Resource.", + "longDescription": "This property shall contain the available actions for this Resource.", + "versionAdded": "v1_1_0" }, "AddressRangeType": { "anyOf": [ @@ -155,7 +158,7 @@ } ], "description": "Memory type of this memory chunk.", - "longDescription": "The value of this property shall be the type of memory chunk.", + "longDescription": "This property shall contain the type of memory chunk.", "readonly": true }, "Description": { @@ -174,23 +177,16 @@ "readonly": true }, "InterleaveSets": { - "description": "This is the interleave sets for the memory chunk.", + "description": "The interleave sets for the memory chunk.", "items": { - "anyOf": [ - { - "$ref": "#/definitions/InterleaveSet" - }, - { - "type": "null" - } - ] + "$ref": "#/definitions/InterleaveSet" }, "longDescription": "These properties shall represent the interleave sets for the memory chunk.", "type": "array" }, "IsMirrorEnabled": { - "description": "Mirror Enabled status.", - "longDescription": "The value of this property shall indicate if memory mirroring is enabled for this MemoryChunk.", + "description": "An indication of whether memory mirroring is enabled for this memory chunk.", + "longDescription": "This property shall indicate whether memory mirroring is enabled for this memory chunk.", "readonly": true, "type": [ "boolean", @@ -198,8 +194,8 @@ ] }, "IsSpare": { - "description": "Spare enabled status.", - "longDescription": "The value of this property shall indicate if sparing is enabled for this MemoryChunk.", + "description": "An indication of whether sparing is enabled for this memory chunk.", + "longDescription": "This property shall indicate whether sparing is enabled for this memory chunk.", "readonly": true, "type": [ "boolean", @@ -208,7 +204,7 @@ }, "MemoryChunkSizeMiB": { "description": "Size of the memory chunk measured in mebibytes (MiB).", - "longDescription": "The value of this property shall be the size of the memory chunk in MiB.", + "longDescription": "This property shall contain the size of the memory chunk in MiB.", "readonly": true, "type": [ "integer", @@ -222,13 +218,14 @@ }, "Oem": { "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem", - "description": "This is the manufacturer/provider specific extension moniker used to divide the Oem object into sections.", - "longDescription": "The value of this string shall be of the format for the reserved word *Oem*." + "description": "The OEM extension property.", + "longDescription": "This property shall contain the OEM extensions. All values for properties that this object contains shall conform to the Redfish Specification-described requirements." }, "Status": { "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Status", - "description": "This property describes the status and health of the resource and its children.", - "longDescription": "This property shall contain any status or health properties of the resource." + "description": "The status and health of the Resource and its subordinate or dependent Resources.", + "longDescription": "This property shall contain any status or health properties of the Resource.", + "versionAdded": "v1_2_0" } }, "required": [ @@ -241,10 +238,10 @@ }, "OemActions": { "additionalProperties": true, - "description": "The available OEM specific actions for this resource.", - "longDescription": "This type shall contain any additional OEM actions for this resource.", + "description": "The available OEM-specific actions for this Resource.", + "longDescription": "This type shall contain the available OEM-specific actions for this Resource.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -262,5 +259,6 @@ } }, "owningEntity": "DMTF", - "title": "#MemoryChunks.v1_2_2.MemoryChunks" + "release": "2017.3", + "title": "#MemoryChunks.v1_2_4.MemoryChunks" } \ No newline at end of file diff --git a/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/MemoryDomain/MemoryDomain.json b/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/MemoryDomain/MemoryDomain.json index 1babb2ff..5c3f7f8b 100644 --- a/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/MemoryDomain/MemoryDomain.json +++ b/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/MemoryDomain/MemoryDomain.json @@ -1,14 +1,15 @@ { + "$id": "http://redfish.dmtf.org/schemas/v1/MemoryDomain.v1_2_3.json", "$ref": "#/definitions/MemoryDomain", "$schema": "http://redfish.dmtf.org/schemas/v1/redfish-schema-v1.json", - "copyright": "Copyright 2014-2018 DMTF. For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright", + "copyright": "Copyright 2014-2019 DMTF. For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright", "definitions": { "Actions": { "additionalProperties": false, - "description": "The available actions for this resource.", - "longDescription": "This type shall contain the available actions for this resource.", + "description": "The available actions for this Resource.", + "longDescription": "This type shall contain the available actions for this Resource.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -24,18 +25,19 @@ "properties": { "Oem": { "$ref": "#/definitions/OemActions", - "description": "This property contains the available OEM specific actions for this resource.", - "longDescription": "This property shall contain any additional OEM actions for this resource." + "description": "The available OEM-specific actions for this Resource.", + "longDescription": "This property shall contain the available OEM-specific actions for this Resource.", + "versionAdded": "v1_2_0" } }, "type": "object" }, "MemoryDomain": { "additionalProperties": false, - "description": "This is the schema definition of a Memory Domain and its configuration. Memory Domains are used to indicate to the client which Memory (DIMMs) can be grouped together in Memory Chunks to form interleave sets or otherwise grouped together.", - "longDescription": "This resource shall be used to represent Memory Domains in a Redfish implementation.", + "description": "The MemoryDomain schema describes a memory domain and its configuration. Memory domains indicate to the client which memory, or DIMMs, can be grouped together in memory chunks to represent addressable memory.", + "longDescription": "This Resource shall represent memory domains in a Redfish implementation.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -50,25 +52,26 @@ }, "properties": { "@odata.context": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/context" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/context" }, "@odata.etag": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/etag" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/etag" }, "@odata.id": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/id" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/id" }, "@odata.type": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/type" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/type" }, "Actions": { "$ref": "#/definitions/Actions", - "description": "The available actions for this resource.", - "longDescription": "The Actions property shall contain the available actions for this resource." + "description": "The available actions for this Resource.", + "longDescription": "This property shall contain the available actions for this Resource.", + "versionAdded": "v1_2_0" }, "AllowsBlockProvisioning": { - "description": "Indicates if this Memory Domain supports the provisioning of blocks of memory.", - "longDescription": "The value of this property shall indicate if this Memory Domain supports the creation of Blocks of memory.", + "description": "An indication of whether this memory domain supports the provisioning of blocks of memory.", + "longDescription": "This property shall indicate whether this memory domain supports the creation of blocks of memory.", "readonly": true, "type": [ "boolean", @@ -76,8 +79,8 @@ ] }, "AllowsMemoryChunkCreation": { - "description": "Indicates if this Memory Domain supports the creation of Memory Chunks.", - "longDescription": "The value of this property shall indicate if this Memory Domain supports the creation of Memory Chunks.", + "description": "An indication of whether this memory domain supports the creation of memory chunks.", + "longDescription": "This property shall indicate whether this memory domain supports the creation of memory chunks.", "readonly": true, "type": [ "boolean", @@ -85,22 +88,24 @@ ] }, "AllowsMirroring": { - "description": "Indicates if this Memory Domain supports the creation of Memory Chunks with mirroring enabled.", - "longDescription": "The value of this property shall indicate if this Memory Domain supports the creation of Memory Chunks with mirroring enabled.", + "description": "An indication of whether this memory domain supports the creation of memory chunks with mirroring enabled.", + "longDescription": "This property shall indicate whether this memory domain supports the creation of memory chunks with mirroring enabled.", "readonly": true, "type": [ "boolean", "null" - ] + ], + "versionAdded": "v1_1_0" }, "AllowsSparing": { - "description": "Indicates if this Memory Domain supports the creation of Memory Chunks with sparing enabled.", - "longDescription": "The value of this property shall indicate if this Memory Domain supports the creation of Memory Chunks with sparing enabled.", + "description": "An indication of whether this memory domain supports the creation of memory chunks with sparing enabled.", + "longDescription": "This property shall indicate whether this memory domain supports the creation of memory chunks with sparing enabled.", "readonly": true, "type": [ "boolean", "null" - ] + ], + "versionAdded": "v1_1_0" }, "Description": { "anyOf": [ @@ -118,31 +123,17 @@ "readonly": true }, "InterleavableMemorySets": { - "description": "This is the interleave sets for the memory chunk.", + "description": "The interleave sets for the memory chunk.", "items": { - "anyOf": [ - { - "$ref": "#/definitions/MemorySet" - }, - { - "type": "null" - } - ] + "$ref": "#/definitions/MemorySet" }, - "longDescription": "These properties shall represent the interleave sets for the memory chunk.", + "longDescription": "This property shall represent the interleave sets for the memory chunk.", "type": "array" }, "MemoryChunks": { - "anyOf": [ - { - "$ref": "http://redfish.dmtf.org/schemas/v1/MemoryChunksCollection.json#/definitions/MemoryChunksCollection" - }, - { - "type": "null" - } - ], - "description": "A reference to the collection of Memory Chunks associated with this Memory Domain.", - "longDescription": "The value of this property shall be a link to a collection of type MemoryChunkCollection.", + "$ref": "http://redfish.dmtf.org/schemas/v1/MemoryChunksCollection.json#/definitions/MemoryChunksCollection", + "description": "The link to the collection of memory chunks associated with this memory domain.", + "longDescription": "This property shall contain a link to a Resource Collection of type MemoryChunkCollection.", "readonly": true }, "Name": { @@ -151,8 +142,8 @@ }, "Oem": { "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem", - "description": "This is the manufacturer/provider specific extension moniker used to divide the Oem object into sections.", - "longDescription": "The value of this string shall be of the format for the reserved word *Oem*." + "description": "The OEM extension property.", + "longDescription": "This property shall contain the OEM extensions. All values for properties that this object contains shall conform to the Redfish Specification-described requirements." } }, "required": [ @@ -165,10 +156,10 @@ }, "MemorySet": { "additionalProperties": false, - "description": "This is the interleave sets for a memory chunk.", + "description": "The interleave sets for a memory chunk.", "longDescription": "This type shall represent the interleave sets for a memory chunk.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -183,26 +174,26 @@ }, "properties": { "MemorySet": { - "description": "This is the collection of memory for a particular interleave set.", + "description": "The set of memory for a particular interleave set.", "items": { "$ref": "http://redfish.dmtf.org/schemas/v1/Memory.json#/definitions/Memory" }, - "longDescription": "The values in this collection shall be links to objects of type Memory.", + "longDescription": "The values in this array shall be links to Resources of the Memory type.", "readonly": true, "type": "array" }, "MemorySet@odata.count": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/count" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/count" } }, "type": "object" }, "OemActions": { "additionalProperties": true, - "description": "The available OEM specific actions for this resource.", - "longDescription": "This type shall contain any additional OEM actions for this resource.", + "description": "The available OEM-specific actions for this Resource.", + "longDescription": "This type shall contain the available OEM-specific actions for this Resource.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -220,5 +211,6 @@ } }, "owningEntity": "DMTF", - "title": "#MemoryDomain.v1_2_1.MemoryDomain" + "release": "2017.1", + "title": "#MemoryDomain.v1_2_3.MemoryDomain" } \ No newline at end of file diff --git a/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/MemoryMetrics/MemoryMetrics.json b/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/MemoryMetrics/MemoryMetrics.json index 7b108549..b0fcfbda 100644 --- a/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/MemoryMetrics/MemoryMetrics.json +++ b/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/MemoryMetrics/MemoryMetrics.json @@ -1,14 +1,15 @@ { + "$id": "http://redfish.dmtf.org/schemas/v1/MemoryMetrics.v1_2_0.json", "$ref": "#/definitions/MemoryMetrics", "$schema": "http://redfish.dmtf.org/schemas/v1/redfish-schema-v1.json", - "copyright": "Copyright 2014-2018 DMTF. For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright", + "copyright": "Copyright 2014-2019 DMTF. For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright", "definitions": { "Actions": { "additionalProperties": false, - "description": "The available actions for this resource.", - "longDescription": "This type shall contain the available actions for this resource.", + "description": "The available actions for this Resource.", + "longDescription": "This type shall contain the available actions for this Resource.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -27,18 +28,18 @@ }, "Oem": { "$ref": "#/definitions/OemActions", - "description": "This property contains the available OEM specific actions for this resource.", - "longDescription": "This property shall contain any additional OEM actions for this resource." + "description": "The available OEM-specific actions for this Resource.", + "longDescription": "This property shall contain the available OEM-specific actions for this Resource." } }, "type": "object" }, "AlarmTrips": { "additionalProperties": false, - "description": "Alarm trip information about the memory. These alarms are reset when the system resets. Note that if they are re-discovered they can be reasserted.", - "longDescription": "This type shall contain properties describing the types of alarms that have been raised by the memory. These alarams shall be reset when the system resets. Note that if they are re-discovered they can be reasserted.", + "description": "The alarm trip information about the memory. These alarms are reset when the system resets. Note that if they are re-discovered they can be reasserted.", + "longDescription": "This type shall contain properties that describe the types of alarms that have been raised by the memory. These alarms shall be reset when the system resets. Note that if they are re-discovered they can be reasserted.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -53,8 +54,8 @@ }, "properties": { "AddressParityError": { - "description": "Address parity error detected status.", - "longDescription": "The value of this property shall be true if an Address Parity Error was detected which could not be corrected by retry.", + "description": "An indication of whether an address parity error was detected that a retry could not correct.", + "longDescription": "This property shall indicate whether an address parity error was detected that a retry could not correct.", "readonly": true, "type": [ "boolean", @@ -62,8 +63,8 @@ ] }, "CorrectableECCError": { - "description": "Correctable data error threshold crossing alarm trip detected status.", - "longDescription": "The value of this property shall be true if the correctable error threshold crossing alarm trip was detected.", + "description": "An indication of whether the correctable error threshold crossing alarm trip was detected.", + "longDescription": "This property shall indicate whether the correctable error threshold crossing alarm trip was detected.", "readonly": true, "type": [ "boolean", @@ -71,8 +72,8 @@ ] }, "SpareBlock": { - "description": "Spare block capacity crossing alarm trip detected status.", - "longDescription": "The value of this property shall be true if the spare block capacity crossing alarm trip was detected.", + "description": "An indication of whether the spare block capacity crossing alarm trip was detected.", + "longDescription": "This property shall indicate whether the spare block capacity crossing alarm trip was detected.", "readonly": true, "type": [ "boolean", @@ -80,8 +81,8 @@ ] }, "Temperature": { - "description": "Temperature threshold crossing alarm trip detected status.", - "longDescription": "The value of this property shall be true if a temperature threshold alarm trip was detected.", + "description": "An indication of whether a temperature threshold alarm trip was detected.", + "longDescription": "This property shall indicates whether a temperature threshold alarm trip was detected.", "readonly": true, "type": [ "boolean", @@ -89,8 +90,8 @@ ] }, "UncorrectableECCError": { - "description": "Uncorrectable data error threshold crossing alarm trip detected status.", - "longDescription": "The value of this property shall be true if the uncorrectable error threshold alarm trip was detected.", + "description": "An indication of whether the uncorrectable error threshold alarm trip was detected.", + "longDescription": "This property shall indicate whether the uncorrectable error threshold alarm trip was detected.", "readonly": true, "type": [ "boolean", @@ -102,11 +103,11 @@ }, "ClearCurrentPeriod": { "additionalProperties": false, - "description": "This sets the CurrentPeriod object values to zero.", - "longDescription": "This action shall set the CurrentPeriod object property values to zero.", + "description": "This action sets the CurrentPeriod property's values to 0.", + "longDescription": "This action shall set the CurrentPeriod property's values to 0.", "parameters": {}, "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -122,7 +123,7 @@ "properties": { "target": { "description": "Link to invoke action", - "format": "uri", + "format": "uri-reference", "type": "string" }, "title": { @@ -134,10 +135,10 @@ }, "CurrentPeriod": { "additionalProperties": false, - "description": "This object contains the Memory metrics since last reset or ClearCurrentPeriod action.", - "longDescription": "This type shall describe the metrics of the memory since last time the ClearCurrentPeriod Action was performed or the system reset.", + "description": "The memory metrics since the last system reset or ClearCurrentPeriod action.", + "longDescription": "This type shall describe the memory metrics since last system reset or ClearCurrentPeriod action.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -152,8 +153,8 @@ }, "properties": { "BlocksRead": { - "description": "Number of blocks read since reset.", - "longDescription": "The value of this property shall be number of blocks read since reset.", + "description": "The number of blocks read since reset.", + "longDescription": "This property shall contain the number of blocks read since reset. When this Resource is subordinate to the MemorySummary object, this property shall be the sum of BlocksRead over all memory.", "readonly": true, "type": [ "integer", @@ -161,8 +162,8 @@ ] }, "BlocksWritten": { - "description": "Number of blocks written since reset.", - "longDescription": "The value of this property shall be mumber of blocks written since reset.", + "description": "The number of blocks written since reset.", + "longDescription": "This property shall contain the number of blocks written since reset. When this Resource is subordinate to the MemorySummary object, this property shall be the sum of BlocksWritten over all memory.", "readonly": true, "type": [ "integer", @@ -174,10 +175,10 @@ }, "HealthData": { "additionalProperties": false, - "description": "This type describes the health information of the memory.", - "longDescription": "This type shall contain properties which describe the HealthData metrics for the current resource.", + "description": "The health information of the memory.", + "longDescription": "This type shall contain properties that describe the HealthData metrics for this Resource.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -194,11 +195,11 @@ "AlarmTrips": { "$ref": "#/definitions/AlarmTrips", "description": "Alarm trip information about the memory.", - "longDescription": "This object shall contain properties describe the types of alarms that have been raised by the memory." + "longDescription": "This object shall contain properties describe the types of alarms that have been raised by the memory. When this Resource is subordinate to the MemorySummary object, this property shall indicate whether an alarm of a given type have been raised by any area of memory." }, "DataLossDetected": { - "description": "Data loss detection status.", - "longDescription": "The value of this property shall be data loss detection status, with true indicating data loss detected.", + "description": "An indication of whether data loss was detected.", + "longDescription": "This property shall indicate whether data loss was detected. When this Resource is subordinate to the MemorySummary object, this property shall indicate whether any data loss was detected in any area of memory.", "readonly": true, "type": [ "boolean", @@ -206,8 +207,8 @@ ] }, "LastShutdownSuccess": { - "description": "Status of last shutdown.", - "longDescription": "The value of this property shall be the status ofthe last shutdown, with true indicating success.", + "description": "An indication of whether the last shutdown succeeded.", + "longDescription": "This property shall indicate whether the last shutdown succeeded.", "readonly": true, "type": [ "boolean", @@ -215,8 +216,8 @@ ] }, "PerformanceDegraded": { - "description": "Performance degraded mode status.", - "longDescription": "The value of this property shall be performance degraded mode status, with true indicating perfomance degraded.", + "description": "An indication of whether performance has degraded.", + "longDescription": "This property shall indicate whether performance has degraded. When this Resource is subordinate to the MemorySummary object, this property shall indicate whether degraded performance mode status is detected in any area of memory.", "readonly": true, "type": [ "boolean", @@ -231,11 +232,12 @@ "number", "null" ], - "units": "%" + "units": "%", + "versionAdded": "v1_1_0" }, "RemainingSpareBlockPercentage": { - "description": "Remaining spare blocks in percentage.", - "longDescription": "The value of this property shall be the remaining spare blocks in percentage.", + "description": "The remaining spare blocks, as a percentage.", + "longDescription": "This property shall contain the remaining spare blocks as a percentage. When this Resource is subordinate to the MemorySummary object, this property shall be the RemainingSpareBlockPercentage over all memory.", "readonly": true, "type": [ "number", @@ -248,10 +250,10 @@ }, "LifeTime": { "additionalProperties": false, - "description": "This object contains the Memory metrics for the lifetime of the Memory.", - "longDescription": "This type shall describe the metrics of the memory since manufacturing.", + "description": "The memory metrics for the lifetime of the memory.", + "longDescription": "This type shall describe the memory metrics since manufacturing.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -266,8 +268,8 @@ }, "properties": { "BlocksRead": { - "description": "Number of blocks read for the lifetime of the Memory.", - "longDescription": "The value of this property shall be number of blocks read for the lifetime of the Memory.", + "description": "The number of blocks read for the lifetime of the memory.", + "longDescription": "This property shall contain the number of blocks read for the lifetime of the Memory. When this Resource is subordinate to the MemorySummary object, this property shall be the sum of BlocksRead over all memory.", "readonly": true, "type": [ "integer", @@ -275,8 +277,8 @@ ] }, "BlocksWritten": { - "description": "Number of blocks written for the lifetime of the Memory.", - "longDescription": "The value of this property shall be number of blocks written for the lifetime of the Memory.", + "description": "The number of blocks written for the lifetime of the memory.", + "longDescription": "This property shall contain the number of blocks written for the lifetime of the Memory. When this Resource is subordinate to the MemorySummary object, this property shall be the sum of BlocksWritten over all memory.", "readonly": true, "type": [ "integer", @@ -288,10 +290,10 @@ }, "MemoryMetrics": { "additionalProperties": false, - "description": "MemoryMetrics contains usage and health statistics for a single Memory module or device instance.", - "longDescription": "This resource shall be used to represent the Memory Metrics for a single Memory device in a Redfish implementation.", + "description": "The usage and health statistics for a memory device or system memory summary.", + "longDescription": "The MemoryMetrics Schema shall contain the memory metrics for a memory device or system memory summary in a Redfish implementation.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -306,25 +308,37 @@ }, "properties": { "@odata.context": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/context" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/context" }, "@odata.etag": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/etag" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/etag" }, "@odata.id": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/id" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/id" }, "@odata.type": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/type" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/type" }, "Actions": { "$ref": "#/definitions/Actions", - "description": "The available actions for this resource.", - "longDescription": "The Actions property shall contain the available actions for this resource." + "description": "The available actions for this Resource.", + "longDescription": "This property shall contain the available actions for this Resource." + }, + "BandwidthPercent": { + "description": "The memory bandwidth utilization as a percentage.", + "longDescription": "This property shall contain memory bandwidth utilization as a percentage. When this Resource is subordinate to the MemorySummary object, this property shall be the memory bandwidth utilization over all memory as a percentage.", + "minimum": 0, + "readonly": true, + "type": [ + "number", + "null" + ], + "units": "%", + "versionAdded": "v1_2_0" }, "BlockSizeBytes": { - "description": "Block size in bytes.", - "longDescription": "The value of this property shall be the block size in bytes of all stucture elements.", + "description": "The block size, in bytes.", + "longDescription": "This property shall contain the block size, in bytes, of all stucture elements. When this Resource is subordinate to the MemorySummary object, this property is not applicable.", "readonly": true, "type": [ "integer", @@ -334,8 +348,8 @@ }, "CurrentPeriod": { "$ref": "#/definitions/CurrentPeriod", - "description": "This object contains the Memory metrics since last reset or ClearCurrentPeriod action.", - "longDescription": "This object shall contain properties which describe the CurrentPeriod metrics for the current resource." + "description": "The memory metrics since the last reset or ClearCurrentPeriod action.", + "longDescription": "This property shall contain properties that describe the memory metrics for the current period." }, "Description": { "anyOf": [ @@ -350,8 +364,8 @@ }, "HealthData": { "$ref": "#/definitions/HealthData", - "description": "This object describes the health information of the memory.", - "longDescription": "This object shall contain properties which describe the HealthData metrics for the current resource." + "description": "The health information of the memory.", + "longDescription": "This property shall contain properties that describe the health data memory metrics for the memory. When this Resource is subordinate to the MemorySummary object, this property is not applicable." }, "Id": { "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Id", @@ -359,8 +373,8 @@ }, "LifeTime": { "$ref": "#/definitions/LifeTime", - "description": "This object contains the Memory metrics for the lifetime of the Memory.", - "longDescription": "This object shall contain properties which describe the LifeTime metrics for the current resource." + "description": "The memory metrics for the lifetime of the memory.", + "longDescription": "This property shall contain properties that describe the memory metrics for the lifetime of the memory." }, "Name": { "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Name", @@ -368,8 +382,8 @@ }, "Oem": { "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem", - "description": "This is the manufacturer/provider specific extension moniker used to divide the Oem object into sections.", - "longDescription": "The value of this string shall be of the format for the reserved word *Oem*." + "description": "The OEM extension property.", + "longDescription": "This property shall contain the OEM extensions. All values for properties that this object contains shall conform to the Redfish Specification-described requirements." } }, "required": [ @@ -382,10 +396,10 @@ }, "OemActions": { "additionalProperties": true, - "description": "The available OEM specific actions for this resource.", - "longDescription": "This type shall contain any additional OEM actions for this resource.", + "description": "The available OEM-specific actions for this Resource.", + "longDescription": "This type shall contain the available OEM-specific actions for this Resource.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -403,5 +417,6 @@ } }, "owningEntity": "DMTF", - "title": "#MemoryMetrics.v1_1_4.MemoryMetrics" + "release": "2019.2", + "title": "#MemoryMetrics.v1_2_0.MemoryMetrics" } \ No newline at end of file diff --git a/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/Message/Message.json b/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/Message/Message.json index b26884fa..5c392cae 100644 --- a/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/Message/Message.json +++ b/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/Message/Message.json @@ -1,13 +1,14 @@ { + "$id": "http://redfish.dmtf.org/schemas/v1/Message.v1_0_8.json", "$schema": "http://redfish.dmtf.org/schemas/v1/redfish-schema-v1.json", - "copyright": "Copyright 2014-2018 DMTF. For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright", + "copyright": "Copyright 2014-2019 DMTF. For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright", "definitions": { "Message": { "additionalProperties": false, - "description": "This type describes a Message returned by the Redfish service.", - "longDescription": "This type shall define a Message as described in the Redfish specification.", + "description": "The message that the Redfish Service returns.", + "longDescription": "This type shall contain a message that the Redfish Service returns, as described in the Redfish Specification.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -22,8 +23,8 @@ }, "properties": { "Message": { - "description": "This is the human readable message, if provided.", - "longDescription": "This property shall contain an optional human readable message.", + "description": "The human-readable message, if provided.", + "longDescription": "This property shall contain an optional human-readable message.", "readonly": true, "type": [ "string", @@ -31,27 +32,27 @@ ] }, "MessageArgs": { - "description": "This array of message arguments are substituted for the arguments in the message when looked up in the message registry.", + "description": "This array of message arguments are substituted for the arguments in the message when looked up in the Message Registry.", "items": { "type": "string" }, - "longDescription": "This property shall contain the message substitution arguments for the specific message referenced by the MessageId and shall only be included if the MessageId is present.", + "longDescription": "This property shall contain the message substitution arguments for the specific message to which this MessageId refers and shall be included only if the MessageId is present. Any number and integer type arguments shall be converted to strings.", "readonly": true, "type": "array" }, "MessageId": { - "description": "This is the key for this message which can be used to look up the message in a message registry.", - "longDescription": "This property shall be a key into message registry as described in the Redfish specification.", + "description": "The key for this message used to find the message in a Message Registry.", + "longDescription": "This property shall contain a key into Message Registry, as described in the Redfish Specification.", "readonly": true, "type": "string" }, "Oem": { "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem", - "description": "Oem extension object.", - "longDescription": "This object represents the Oem property. All values for resources described by this schema shall comply to the requirements as described in the Redfish specification." + "description": "The OEM extension property.", + "longDescription": "This property shall contain the OEM extensions. All values for properties contained in this object shall conform to the Redfish Specification-described requirements." }, "RelatedProperties": { - "description": "This is an array of properties described by the message.", + "description": "A set of properties described by the message.", "items": { "type": "string" }, @@ -61,7 +62,7 @@ }, "Resolution": { "description": "Used to provide suggestions on how to resolve the situation that caused the error.", - "longDescription": "This property shall contain an override of the Resolution of the message in message registry, if present.", + "longDescription": "This property shall contain an override of the resolution of the message in the Message Registry, if present.", "readonly": true, "type": [ "string", @@ -69,8 +70,8 @@ ] }, "Severity": { - "description": "This is the severity of the errors.", - "longDescription": "The value of this property shall be the severity of the error, as defined in the Status section of the Redfish specificaiton.", + "description": "The severity of the errors.", + "longDescription": "This property shall contain the severity of the error, as defined in the Status section of the Redfish Specification.", "readonly": true, "type": [ "string", @@ -85,5 +86,6 @@ } }, "owningEntity": "DMTF", - "title": "#Message.v1_0_6" + "release": "1.0", + "title": "#Message.v1_0_8" } \ No newline at end of file diff --git a/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/MessageRegistry/MessageRegistry.json b/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/MessageRegistry/MessageRegistry.json index a971cb93..b1244f45 100644 --- a/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/MessageRegistry/MessageRegistry.json +++ b/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/MessageRegistry/MessageRegistry.json @@ -1,14 +1,15 @@ { + "$id": "http://redfish.dmtf.org/schemas/v1/MessageRegistry.v1_3_1.json", "$ref": "#/definitions/MessageRegistry", "$schema": "http://redfish.dmtf.org/schemas/v1/redfish-schema-v1.json", - "copyright": "Copyright 2014-2018 DMTF. For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright", + "copyright": "Copyright 2014-2019 DMTF. For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright", "definitions": { "Actions": { "additionalProperties": false, - "description": "The available actions for this resource.", - "longDescription": "This type shall contain the available actions for this resource.", + "description": "The available actions for this Resource.", + "longDescription": "This type shall contain the available actions for this Resource.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -24,8 +25,9 @@ "properties": { "Oem": { "$ref": "#/definitions/OemActions", - "description": "This property contains the available OEM specific actions for this resource.", - "longDescription": "This property shall contain any additional OEM actions for this resource." + "description": "The available OEM-specific actions for this Resource.", + "longDescription": "This property shall contain the available OEM-specific actions for this Resource.", + "versionAdded": "v1_1_0" } }, "type": "object" @@ -33,9 +35,9 @@ "ClearingLogic": { "additionalProperties": false, "description": "The clearing logic associated with this message. The properties within indicate that what messages are cleared by this message as well as under what conditions.", - "longDescription": "This type shall contain the available actions for this resource.", + "longDescription": "This type shall contain the available actions for this Resource.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -50,13 +52,14 @@ }, "properties": { "ClearsAll": { - "description": "This property indicates that all prior conditions and messages are cleared provided the ClearsIf condition is met.", - "longDescription": "This property shall indicate that all prior conditions and messages are cleared provided the ClearsIf condition is met.", + "description": "An indication of whether all prior conditions and messages are cleared, provided the ClearsIf condition is met.", + "longDescription": "This property shall indicate whether all prior conditions and messages are cleared, provided the ClearsIf condition is met.", "readonly": true, "type": [ "boolean", "null" - ] + ], + "versionAdded": "v1_2_0" }, "ClearsIf": { "anyOf": [ @@ -67,41 +70,43 @@ "type": "null" } ], - "description": "This property contains the available OEM specific actions for this resource.", - "longDescription": "This property shall contain any additional OEM actions for this resource.", - "readonly": true + "description": "The condition when the event is cleared.", + "longDescription": "This property shall contain the condition the event is cleared.", + "readonly": true, + "versionAdded": "v1_2_0" }, "ClearsMessage": { - "description": "This property contains the array of Message Ids that are cleared by this message, provided the other conditions are met.", + "description": "The array of MessageIds that this message clears when the other conditions are met.", "items": { "type": [ "string", "null" ] }, - "longDescription": "This property shall contain an array of Message Ids that are cleared by this message, provided the other conditions are met. The Message Ids shall not include the Registry name or version and shall just be the Message Id portion. Message Ids shall not reference other Message Registries.", + "longDescription": "This property shall contain an array of MessageIds that this message clears when the other conditions are met. The MessageIds shall not include the Message Registry name or version and shall contain only the MessageId portion. MessageIds shall not refer to other Message Registries.", "readonly": true, - "type": "array" + "type": "array", + "versionAdded": "v1_2_0" } }, "type": "object" }, "ClearingType": { - "description": "The enumerations of ClearingType specify the choice of conditions on when an event is cleared.", + "description": "The conditions when an event is cleared.", "enum": [ "SameOriginOfCondition" ], "enumDescriptions": { - "SameOriginOfCondition": "Indicates the message is cleared by the other message(s) listed in the ClearingLogic object, provided the OriginOfCondition for both Events are the same." + "SameOriginOfCondition": "This enumeration shall describe when the message for an event is cleared by the other messages in the ClearingLogic property, provided the OriginOfCondition for both events are the same." }, "type": "string" }, "Message": { "additionalProperties": false, - "description": "This type shall reprensent how a message is defined within the registry.", - "longDescription": "The type shall represent how a message is defined within within a message registry.", + "description": "This type represents how a message is defined within the Message Registry.", + "longDescription": "The type shall represent how a message is defined within a Message Registry.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -115,60 +120,90 @@ } }, "properties": { + "ArgDescriptions": { + "description": "The MessageArg descriptions, in order, used for this message.", + "items": { + "type": [ + "string", + "null" + ] + }, + "longDescription": "This property shall contain an ordered array of text describing each argument used as substitution in the message.", + "readonly": true, + "type": "array", + "versionAdded": "v1_3_0" + }, + "ArgLongDescriptions": { + "description": "The MessageArg normative descriptions, in order, used for this message.", + "items": { + "type": [ + "string", + "null" + ] + }, + "longDescription": "This property shall contain an ordered array of normative language for each argument used as substitution in the message.", + "readonly": true, + "type": "array", + "versionAdded": "v1_3_0" + }, "ClearingLogic": { - "anyOf": [ - { - "$ref": "#/definitions/ClearingLogic" - }, - { - "type": "null" - } - ], + "$ref": "#/definitions/ClearingLogic", "description": "The clearing logic associated with this message. The properties within indicate that what messages are cleared by this message as well as under what conditions.", - "longDescription": "This type shall contain the available actions for this resource." + "longDescription": "This type shall contain the available actions for this Resource.", + "versionAdded": "v1_2_0" }, "Description": { - "description": "This is a short description of how and when this message is to be used.", - "longDescription": "The value of this property shall indicate how and when this message is returned by the Redfish service.", + "description": "A short description of how and when to use this message.", + "longDescription": "This property shall indicate how and when this message is returned by the Redfish Service.", "readonly": true, "type": "string" }, + "LongDescription": { + "description": "The normative language that describes this message's usage.", + "longDescription": "This property shall contain the normative language that describes this message's usage in a Redfish implementation.", + "readonly": true, + "type": [ + "string", + "null" + ], + "versionAdded": "v1_3_0" + }, "Message": { "description": "The actual message.", - "longDescription": "The value of this property shall be the message to be displayed. If a %integer is included in part of the string, it shall be used to represent a string substitution for any MessageArgs accompanying the message, in order.", + "longDescription": "This property shall contain the message to display. If a %integer is included in part of the string, it shall represent a string substitution for any MessageArgs that accompany the message, in order.", "readonly": true, "type": "string" }, "NumberOfArgs": { - "description": "The number of arguments to be expected to be passed in as MessageArgs for this message.", - "longDescription": "The value of this property shall be the number of MessageArgs that are expected to be substituted in the Message in the locations within the Message marked by %.", + "description": "The number of arguments in the message.", + "longDescription": "This property shall contain the number of arguments that are substituted for the locations marked with % in the message.", "minimum": 0, "readonly": true, "type": "integer" }, "Oem": { "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem", - "description": "Oem extension object.", - "longDescription": "This object represents the Oem property. All values for resources described by this schema shall comply to the requirements as described in the Redfish specification." + "description": "The OEM extension property.", + "longDescription": "This property shall contain the OEM extensions. All values for properties contained in this object shall conform to the Redfish Specification-described requirements." }, "ParamTypes": { "description": "The MessageArg types, in order, for the message.", "items": { "$ref": "#/definitions/ParamType" }, - "longDescription": "The value of this property shall be an ordered array of parameter types which match the types of the MessageArgs, in order.", + "longDescription": "This property shall contain an ordered array of argument data types that match the data types of the MessageArgs.", "readonly": true, "type": "array" }, "Resolution": { "description": "Used to provide suggestions on how to resolve the situation that caused the error.", - "longDescription": "This property shall contain an override of the Resolution of the message in message registry, if present.", + "longDescription": "This property shall contain an override of the resolution of the message in the Message Registry, if present.", "readonly": true, "type": "string" }, "Severity": { - "description": "This is the severity of the message.", - "longDescription": "The value of this property shall be the severity of the condition resulting in the message, as defined in the Status section of the Redfish specification.", + "description": "The severity of the message.", + "longDescription": "This property shall contain the severity of the condition resulting in the message, as defined in the Status clause of the Redfish Specification.", "readonly": true, "type": "string" } @@ -184,13 +219,13 @@ }, "MessageProperty": { "additionalProperties": false, - "description": "The pattern type indicates that a free-form string is the unique identifier for the message within the registry.", - "longDescription": "The pattern type shall represent the suffix to be used in the MessageId and shall be unique within this message registry.", + "description": "The message keys contained in the Message Registry.", + "longDescription": "This type shall contain the message keys contained in the Message Registy. The message keys are the suffix of the MessageId and shall be unique within this Message Registry.", "patternProperties": { "[A-Za-z0-9]+": { "$ref": "#/definitions/Message" }, - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -208,10 +243,10 @@ }, "MessageRegistry": { "additionalProperties": false, - "description": "This is the schema definition for all Message Registries. It represents the properties for the registries themselves. The MessageId is formed per the Redfish specification. It consists of the RegistryPrefix concatenated with the version concatenated with the unique identifier for the message registry entry.", - "longDescription": "This resource shall be used to represent a message registry for a Redfish implementation.", + "description": "The MessageRegistry schema describes all Message Registries. It represents the properties for the Message Registries themselves.", + "longDescription": "This Resource shall represent a Message Registry for a Redfish implementation.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -225,22 +260,14 @@ } }, "properties": { - "@odata.context": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/context" - }, - "@odata.etag": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/etag" - }, - "@odata.id": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/id" - }, "@odata.type": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/type" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/type" }, "Actions": { "$ref": "#/definitions/Actions", - "description": "The available actions for this resource.", - "longDescription": "The Actions property shall contain the available actions for this resource." + "description": "The available actions for this Resource.", + "longDescription": "This property shall contain the available actions for this Resource.", + "versionAdded": "v1_1_0" }, "Description": { "anyOf": [ @@ -258,15 +285,15 @@ "readonly": true }, "Language": { - "description": "This is the RFC 5646 compliant language code for the registry.", - "longDescription": "The value of this property shall be a string consisting of an RFC 5646 language code.", + "description": "The RFC5646-conformant language code for the Message Registry.", + "longDescription": "This property shall contain an RFC5646-conformant language code.", "readonly": true, "type": "string" }, "Messages": { "$ref": "#/definitions/MessageProperty", - "description": "The pattern property indicates that a free-form string is the unique identifier for the message within the registry.", - "longDescription": "The pattern property shall represent the suffix to be used in the MessageId and shall be unique within this message registry." + "description": "The message keys contained in the Message Registry.", + "longDescription": "This property shall contain the message keys contained in the Message Registy. The message keys are the suffix of the MessageId and shall be unique within this Message Registry." }, "Name": { "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Name", @@ -274,24 +301,25 @@ }, "Oem": { "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem", - "description": "This is the manufacturer/provider specific extension moniker used to divide the Oem object into sections.", - "longDescription": "The value of this string shall be of the format for the reserved word *Oem*." + "description": "The OEM extension property.", + "longDescription": "This property shall contain the OEM extensions. All values for properties that this object contains shall conform to the Redfish Specification-described requirements." }, "OwningEntity": { - "description": "This is the organization or company that publishes this registry.", - "longDescription": "The value of this property shall be a string that represents the publisher of this registry.", + "description": "The organization or company that publishes this Message Registry.", + "longDescription": "This property shall represent the publisher of this Message Registry.", "readonly": true, "type": "string" }, "RegistryPrefix": { - "description": "This is the single word prefix used to form a messageID structure.", - "longDescription": "The value of this property shall be the prefix used in messageIDs which uniquely identifies all of the messages in this registry as belonging to this registry.", + "description": "The single-word prefix that is used in forming and decoding MessageIds.", + "longDescription": "This property shall contain the Redfish Specification-defined prefix used in forming and decoding MessageIds that uniquely identifies all messages that belong to this Message Registry.", "readonly": true, "type": "string" }, "RegistryVersion": { - "description": "This is the message registry version which is used in the middle portion of a messageID.", - "longDescription": "The value of this property shall be the version of this message registry. The format of this string shall be of the format majorversion.minorversion.errata in compliance with Protocol Version section of the Redfish specification.", + "description": "The Message Registry version in the middle portion of a MessageId.", + "longDescription": "This property shall contain the version of this Message Registry.", + "pattern": "^\\d+\\.\\d+\\.\\d+$", "readonly": true, "type": "string" } @@ -302,7 +330,6 @@ "RegistryVersion", "OwningEntity", "Messages", - "@odata.id", "@odata.type", "Id", "Name" @@ -311,10 +338,10 @@ }, "OemActions": { "additionalProperties": true, - "description": "The available OEM specific actions for this resource.", - "longDescription": "This type shall contain any additional OEM actions for this resource.", + "description": "The available OEM-specific actions for this Resource.", + "longDescription": "This type shall contain the available OEM-specific actions for this Resource.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -336,12 +363,13 @@ "number" ], "enumDescriptions": { - "number": "The parameter is a number.", - "string": "The parameter is a string." + "number": "The argument is a number.", + "string": "The argument is a string." }, "type": "string" } }, "owningEntity": "DMTF", - "title": "#MessageRegistry.v1_2_0.MessageRegistry" + "release": "2019.1", + "title": "#MessageRegistry.v1_3_1.MessageRegistry" } \ No newline at end of file diff --git a/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/MessageRegistryFile/MessageRegistryFile.json b/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/MessageRegistryFile/MessageRegistryFile.json index 6f8a9fa8..25cfaec3 100644 --- a/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/MessageRegistryFile/MessageRegistryFile.json +++ b/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/MessageRegistryFile/MessageRegistryFile.json @@ -1,14 +1,15 @@ { + "$id": "http://redfish.dmtf.org/schemas/v1/MessageRegistryFile.v1_1_3.json", "$ref": "#/definitions/MessageRegistryFile", "$schema": "http://redfish.dmtf.org/schemas/v1/redfish-schema-v1.json", - "copyright": "Copyright 2014-2018 DMTF. For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright", + "copyright": "Copyright 2014-2019 DMTF. For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright", "definitions": { "Actions": { "additionalProperties": false, - "description": "The available actions for this resource.", - "longDescription": "This type shall contain the available actions for this resource.", + "description": "The available actions for this Resource.", + "longDescription": "This type shall contain the available actions for this Resource.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -24,18 +25,19 @@ "properties": { "Oem": { "$ref": "#/definitions/OemActions", - "description": "This property contains the available OEM specific actions for this resource.", - "longDescription": "This property shall contain any additional OEM actions for this resource." + "description": "The available OEM-specific actions for this Resource.", + "longDescription": "This property shall contain the available OEM-specific actions for this Resource.", + "versionAdded": "v1_1_0" } }, "type": "object" }, "Location": { "additionalProperties": false, - "description": "Location information for a schema file.", - "longDescription": "This type shall define Location information for a schema file.", + "description": "The location information for a Message Registry file.", + "longDescription": "This type shall contain the location information for a Message Registry file.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -50,35 +52,35 @@ }, "properties": { "ArchiveFile": { - "description": "If the schema is hosted on the service in an archive file, this is the name of the file within the archive.", - "longDescription": "The value of this property shall be the file name of the individual schema file within the archive file specified by the ArchiveUri property. The file name shall conform to the syntax specified in the Redfish specification.", + "description": "If the service hosts the Message Registry in an archive file, the name of the file within the archive.", + "longDescription": "This property shall contain the file name of the individual Message Registry file within the archive file specified by the ArchiveUri property. The file name shall conform to the Redfish Specification-specified syntax.", "readonly": true, "type": "string" }, "ArchiveUri": { - "description": "If the schema is hosted on the service in an archive file, this is the link to the archive file.", - "format": "uri", - "longDescription": "The value of this property shall be a URI co-located with the Redfish service that specifies the location of the schema file. This property shall only be used for archive files (zip or other formats). The value of ArchiveFile shall have the file name of the individual schema file within the archive file.", + "description": "If the Message Registry is hosted on the service in an archive file, the link to the archive file.", + "format": "uri-reference", + "longDescription": "This property shall contain a URI that is colocated with the Redfish Service that specifies the location of the Message Registry file, which can be retrieved using the Redfish protocol and authentication methods. This property shall be used for only ZIP or other archive files. The ArchiveFile property shall contain the file name of the individual Message Registry file within the archive file.", "readonly": true, "type": "string" }, "Language": { - "description": "The language code for the file the schema is in.", - "longDescription": "The value of this property shall be a string consisting of an RFC5646 language code or the string 'default'.", + "description": "The language code for the Message Registry file.", + "longDescription": "This property shall contain an RFC5646-conformant language code or `default`.", "readonly": true, "type": "string" }, "PublicationUri": { - "description": "Link to publicly available (canonical) URI for schema.", - "format": "uri", - "longDescription": "The value of this property shall be a URI not co-located with the Redfish service that specifies the canonical location of the schema file. This property shall only be used for individual schema files.", + "description": "The link to publicly available (canonical) URI for the Message Registry.", + "format": "uri-reference", + "longDescription": "This property shall contain a URI not colocated with the Redfish Service that specifies the canonical location of the Message Registry file. This property shall be used for only individual Message Registry files.", "readonly": true, "type": "string" }, "Uri": { - "description": "Link to locally available URI for schema.", - "format": "uri", - "longDescription": "The value of this property shall be a URI co-located with the Redfish service that specifies the location of the schema file. This property shall only be used for individual schema files. The file name portion of the URI shall conform to the syntax specified in the Redfish specification.", + "description": "The link to locally available URI for the Message Registry.", + "format": "uri-reference", + "longDescription": "This property shall contain a URI colocated with the Redfish Service that specifies the location of the Message Registry file, which can be retrieved using the Redfish protocol and authentication methods. This property shall be used for only individual Message Registry files. The file name portion of the URI shall conform to Redfish Specification-specified syntax.", "readonly": true, "type": "string" } @@ -87,10 +89,10 @@ }, "MessageRegistryFile": { "additionalProperties": false, - "description": "This is the schema definition for the Schema File locator resource.", - "longDescription": "This resource shall be used to represent the Schema File locator resource for a Redfish implementation.", + "description": "The MessageRegistryFile schema describes the Message Registry file locator Resource.", + "longDescription": "This Resource shall represent the Message Registry file locator for a Redfish implementation.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -105,21 +107,22 @@ }, "properties": { "@odata.context": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/context" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/context" }, "@odata.etag": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/etag" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/etag" }, "@odata.id": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/id" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/id" }, "@odata.type": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/type" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/type" }, "Actions": { "$ref": "#/definitions/Actions", - "description": "The available actions for this resource.", - "longDescription": "The Actions property shall contain the available actions for this resource." + "description": "The available actions for this Resource.", + "longDescription": "The actions property shall contain the available actions for this Resource.", + "versionAdded": "v1_1_0" }, "Description": { "anyOf": [ @@ -137,20 +140,20 @@ "readonly": true }, "Languages": { - "description": "Language codes for the schemas available.", + "description": "The RFC5646-conformant language codes for the available Message Registries.", "items": { "type": "string" }, - "longDescription": "The value of this property shall be a string consisting of an RFC 5646 language code.", + "longDescription": "This property contains a set of RFC5646-conformant language codes.", "readonly": true, "type": "array" }, "Location": { - "description": "Location information for this registry file.", + "description": "The location information for this Message Registry file.", "items": { "$ref": "#/definitions/Location" }, - "longDescription": "This property shall contain the location information for this registry file.", + "longDescription": "This property shall contain the location information for this Message Registry file.", "type": "array" }, "Name": { @@ -159,12 +162,12 @@ }, "Oem": { "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem", - "description": "This is the manufacturer/provider specific extension moniker used to divide the Oem object into sections.", - "longDescription": "The value of this string shall be of the format for the reserved word *Oem*." + "description": "The OEM extension property.", + "longDescription": "This property shall contain the OEM extensions. All values for properties that this object contains shall conform to the Redfish Specification-described requirements." }, "Registry": { - "description": "The Registry Name, Major, and Minor version. This Registry can reference any type of Registry, such as a Message Registry, Privilege Registry, or Attribute Registry.", - "longDescription": "The value of this property shall be the value of the Registry Name, Major, and Minor version. This Registry may reference any type of Registry, such as a Message Registry, Privilege Registry, or Attribute Registry.", + "description": "The registry name and its major and minor versions. This registry can be any type of registry, such as a Message Registry, Privilege Registry, or Attribute Registry.", + "longDescription": "This property shall contain the Message Registry name and it major and minor versions, as defined by the Redfish Specification. This registry can be any type of registry, such as Message Registry, Privilege Registry, or Attribute Registry.", "readonly": true, "type": "string" } @@ -182,10 +185,10 @@ }, "OemActions": { "additionalProperties": true, - "description": "The available OEM specific actions for this resource.", - "longDescription": "This type shall contain any additional OEM actions for this resource.", + "description": "The available OEM-specific actions for this Resource.", + "longDescription": "This type shall contain the available OEM-specific actions for this Resource.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -203,5 +206,6 @@ } }, "owningEntity": "DMTF", - "title": "#MessageRegistryFile.v1_1_1.MessageRegistryFile" + "release": "2017.1", + "title": "#MessageRegistryFile.v1_1_3.MessageRegistryFile" } \ No newline at end of file diff --git a/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/MetricDefinition/MetricDefinition.json b/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/MetricDefinition/MetricDefinition.json index 8bfd3b98..1a979a8d 100644 --- a/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/MetricDefinition/MetricDefinition.json +++ b/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/MetricDefinition/MetricDefinition.json @@ -1,15 +1,15 @@ { - "$id": "http://redfish.dmtf.org/schemas/v1/MetricDefinition.v1_0_1.json", + "$id": "http://redfish.dmtf.org/schemas/v1/MetricDefinition.v1_0_3.json", "$ref": "#/definitions/MetricDefinition", "$schema": "http://redfish.dmtf.org/schemas/v1/redfish-schema-v1.json", - "copyright": "Copyright 2014-2018 DMTF. For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright", + "copyright": "Copyright 2014-2019 DMTF. For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright", "definitions": { "Actions": { "additionalProperties": false, - "description": "The available actions for this resource.", - "longDescription": "This type shall contain the available actions for this resource.", + "description": "The available actions for this Resource.", + "longDescription": "This type shall contain the available actions for this Resource.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -25,14 +25,14 @@ "properties": { "Oem": { "$ref": "#/definitions/OemActions", - "description": "This property contains the available OEM specific actions for this resource.", - "longDescription": "This property shall contain any additional OEM actions for this resource." + "description": "The available OEM-specific actions for this Resource.", + "longDescription": "This property shall contain the available OEM-specific actions for this Resource." } }, "type": "object" }, "Calculable": { - "description": "The types of calculations which can be applied to the metric reading. This property provides information to the client on the suitability of calculatiion using the metric reading.", + "description": "The types of calculations that can be applied to the metric reading. Provides information to the client on the suitability of calculation using the metric reading.", "enum": [ "NonCalculatable", "Summable", @@ -43,7 +43,7 @@ "NonSummable": "The sum of the metric reading across multiple instances is not meaningful.", "Summable": "The sum of the metric reading across multiple instances is meaningful." }, - "longDescription": "The value shall indicate the types of calculations which can applied to the metric reading.", + "longDescription": "The type shall describe the types of calculations that can be applied to the metric reading.", "type": "string" }, "CalculationAlgorithmEnum": { @@ -53,23 +53,23 @@ "Minimum" ], "enumDescriptions": { - "Average": "The metric is calculated as the average of a metric reading over a sliding time interval.", - "Maximum": "The metric is calculated as the maximum value of a metric reading over during a time interval.", - "Minimum": "The metric is calculated as the minimum value of a metric reading over a sliding time interval." + "Average": "The metric is calculated as the average metric reading over a sliding time interval.", + "Maximum": "The metric is calculated as the maximum metric reading over during a time interval.", + "Minimum": "The metric is calculated as the minimum metric reading over a sliding time interval." }, "enumLongDescriptions": { - "Average": "The metric shall be calculated as the average of a metric reading over a sliding time interval. The time interval shall be the value of the CalculationTimeInterval property.", - "Maximum": "The metric shall be calculated as the maximum of a metric reading over a sliding time interval. The time interval shall be the value of the CalculationTimeInterval property.", - "Minimum": "The metric shall be calculated as the minimum of a metric reading over a sliding time interval. The time interval shall be the value of the CalculationTimeInterval property." + "Average": "The metric shall be calculated as the average metric reading over a sliding time interval. The time interval shall contain the CalculationTimeInterval property value.", + "Maximum": "The metric shall be calculated as the maximum metric reading over a sliding time interval. The time interval shall contain the CalculationTimeInterval property value.", + "Minimum": "The metric shall be calculated as the minimum metric reading over a sliding time interval. The time interval shall contain the CalculationTimeInterval property value." }, "type": "string" }, "CalculationParamsType": { "additionalProperties": false, - "description": "Specifies the usage of the parameter in the calculation.", - "longDescription": "The value of the list element shall be the usage of the parameter in the calculation. This property is present when the MetricType property has the value 'Synthesized'.", + "description": "The usage of the parameter in the calculation.", + "longDescription": "The list element shall contain the usage of the parameter in the calculation. This property is present when the MetricType property is `Synthesized`.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -84,8 +84,8 @@ }, "properties": { "ResultMetric": { - "description": "The metric property used to store the results of the calculation.", - "longDescription": "This property shall contain a reference to a metric property wsed to place the result of the calcuation.", + "description": "The link to a metric property that stores the result of the calculation.", + "longDescription": "This property shall contain a link to a metric property that stores the result of the calcuation.", "readonly": true, "type": [ "string", @@ -94,7 +94,7 @@ }, "SourceMetric": { "description": "The metric property used as the input into the calculation.", - "longDescription": "This property shall contain a reference to a metric property used in a calcuation.", + "longDescription": "This property shall contain a link to a metric property used in a calcuation.", "readonly": true, "type": [ "string", @@ -115,12 +115,12 @@ "Calculated": "The metric is implemented by applying a calculation on another metric property. The calculation is specified in the CalculationAlgorithm property.", "DigitalMeter": "The metric is implemented as digital meter.", "PhysicalSensor": "The metric is implemented as a physical sensor.", - "Synthesized": "The metric is implemented by applying a calculation on one or more metric properties. (The calculation is not specified. For expressing generalized formula, see MathSON)." + "Synthesized": "The metric is implemented by applying a calculation on one or more metric properties. The calculation is not provided." }, "type": "string" }, "MetricDataType": { - "description": "The data type of the related metric values. The property provides information to the client on the nature of the metric reading.", + "description": "The data type of the related metric values. Provides information to the client on the nature of the metric reading.", "enum": [ "Boolean", "DateTime", @@ -130,22 +130,22 @@ "Enumeration" ], "enumDescriptions": { - "Boolean": "The data type follows the JSON Boolean definition.", - "DateTime": "The data type follows the JSON String definition with the Date-Time format applied.", - "Decimal": "The data type follows the JSON Decimal definition.", - "Enumeration": "The data type follows the JSON String definition with a set of enumerations defined.", - "Integer": "The data type follows the JSON Integer definition.", - "String": "The data type follows the JSON String definition." + "Boolean": "The JSON boolean definition.", + "DateTime": "The JSON string definition with the 'date-time' format.", + "Decimal": "The JSON decimal definition.", + "Enumeration": "The JSON string definition with a set of defined enumerations.", + "Integer": "The JSON integer definition.", + "String": "The JSON string definition." }, - "longDescription": "The value shall be the data type of the related metric values as defined by JSON data types.", + "longDescription": "This type shall describe the data type of the related metric values as defined by JSON data types.", "type": "string" }, "MetricDefinition": { "additionalProperties": false, - "description": "The metadata information about a metric.", - "longDescription": "Shall define the metadata information about a metric.", + "description": "The MetricDefinition schema describes the metadata information for a metric.", + "longDescription": "This Resource shall contain the metadata information for a metric.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -160,20 +160,20 @@ }, "properties": { "@odata.context": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/context" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/context" }, "@odata.etag": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/etag" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/etag" }, "@odata.id": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/id" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/id" }, "@odata.type": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/type" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/type" }, "Accuracy": { - "description": "Estimated percent error of measured vs. actual values.", - "longDescription": "The value of the property shall be the percent error +/- of the measured vs. actual values. The property is not meaningful, when the MetricType property has the value 'Discrete'.", + "description": "The estimated percent error of measured versus actual values.", + "longDescription": "This property shall contain the percent error +/- of the measured versus actual values. The property is not meaningful when the MetricType property is `Discrete`.", "readonly": true, "type": [ "number", @@ -182,8 +182,8 @@ }, "Actions": { "$ref": "#/definitions/Actions", - "description": "The available actions for this resource.", - "longDescription": "The Actions property shall contain the available actions for this resource." + "description": "The available actions for this Resource.", + "longDescription": "This property shall contain the available actions for this Resource." }, "Calculable": { "anyOf": [ @@ -194,8 +194,8 @@ "type": "null" } ], - "description": "Indicates whether the metric can be used in a calculation.", - "longDescription": "The value shall specify whether the metric can be used in a calculation.", + "description": "An indication of whether the metric can be used in a calculation.", + "longDescription": "This property shall specify whether the metric can be used in a calculation.", "readonly": false }, "CalculationAlgorithm": { @@ -207,12 +207,12 @@ "type": "null" } ], - "description": "The calculation which is performed on a source metric to obtain the metric being defined.", - "longDescription": "The value of this property shall specify the calculation performed to obtain the metric.", + "description": "The calculation that is performed on a source metric to obtain the metric being defined.", + "longDescription": "This property shall contain the calculation performed to obtain the metric.", "readonly": true }, "CalculationParameters": { - "description": "Specifies the metric properties which are part of the synthesis calculation. This property is present when the MetricType property has the value 'Synthesized'.", + "description": "The metric properties that are part of the synthesis calculation. This property is present when the MetricType property is `Synthesized`.", "items": { "anyOf": [ { @@ -223,12 +223,12 @@ } ] }, - "longDescription": "Shall list the metric properties which are part of the synthesis calculation. When MetricType=Synthesis, this property may be present.", + "longDescription": "This property shall list the metric properties that are part of the synthesis calculation. When MetricType=Synthesis, this property may be present.", "type": "array" }, "CalculationTimeInterval": { "description": "The time interval over which the metric calculation is performed.", - "longDescription": "The value shall specify the time interval over the metric calculation is performed. The format of the value shall conform to the Duration format.", + "longDescription": "This property shall specify the time interval over the metric calculation is performed. The format of the value shall conform to the Duration format.", "pattern": "-?P(\\d+D)?(T(\\d+H)?(\\d+M)?(\\d+(.\\d+)?S)?)?", "readonly": false, "type": [ @@ -237,8 +237,8 @@ ] }, "Calibration": { - "description": "Specifies the calibration offset added to the metric reading.", - "longDescription": "The value shall be the calibration offset added to the metric reading. The value shall have the units specified in the property Units. The property is not meaningful, when the MetricType property has the value 'Discrete'.", + "description": "The calibration offset added to the metric reading.", + "longDescription": "This property shall contain the calibration offset added to the metric reading. The value shall have the units specified in the Units property. The property is not meaningful when the MetricType property is `Discrete`.", "readonly": true, "type": [ "number", @@ -282,12 +282,12 @@ } ], "description": "The implementation of the metric.", - "longDescription": "The value shall specify the implementation of the metric.", + "longDescription": "This property shall specify the implementation of the metric.", "readonly": true }, "IsLinear": { - "description": "Indicates whether the metric values are linear (vs non-linear).", - "longDescription": "The value shall specify that the corresponding metric values shall be linear or non-linear. Linear metrics may be compared using a greater than relation. An example of linear metrics include performance metrics. Examples of non-linear metrics include error codes.", + "description": "An indication of whether the metric values are linear versus non-linear.", + "longDescription": "This property shall indicate whether the metric values are linear versus non-linear. Linear metrics may use a greater than relation to compared them. An example of linear metrics include performance metrics. Examples of non-linear metrics include error codes.", "readonly": false, "type": [ "boolean", @@ -313,19 +313,19 @@ } ], "description": "The data type of the metric.", - "longDescription": "The value shall specify the data-type of the metric.", + "longDescription": "This property shall specify the data-type of the metric.", "readonly": false }, "MetricProperties": { - "description": "A list of URIs with wildcards and property identifiers for which this metric definition is defined. If a URI has wildcards, the wildcards are substituted as specified in the Wildcards array property.", - "format": "uri", + "description": "The list of URIs with wildcards and property identifiers that this metric definition defines. If a URI has wildcards, the wildcards are substituted as specified in the Wildcards array property.", + "format": "uri-reference", "items": { "type": [ "string", "null" ] }, - "longDescription": "This array property shall contain a list of URIs with wildcards and property identifiers for which this metric definition is defined. Each wildcard in the URI shall be delimited by a set of curly braces. Each wildcard shall be substituted as specified by the corresponding entry in the Wildcard array property. Once an URI with wildcards has had its wildcards fully substituted, it shall reference a resource property for which the metric definition applies. The property identifiers portion of the URI shall follow JSON fragment notation rules defined by RFC6901.", + "longDescription": "This array property shall list the URIs with wildcards and property identifiers that this metric defines. A set of curly braces shall delimit each wildcard in the URI. The corresponding entry in the Wildcard property shall replace each wildcard. After a URI with wildcards replaces its wildcards, it shall identify a Resource property to which the metric definition applies. The property identifiers portion of the URI shall follow RFC6901-defined JSON fragment notation rules.", "readonly": false, "type": "array" }, @@ -339,12 +339,12 @@ } ], "description": "The type of metric.", - "longDescription": "The value shall specify the type of metric.", + "longDescription": "This property shall specify the type of metric.", "readonly": false }, "MinReadingRange": { "description": "Minimum value for metric reading.", - "longDescription": "The value shall be the lowest possible value for the metric reading. The value shall have the units specified in the property Units. The property is not meaningful, when the MetricType property has the value 'Discrete'.", + "longDescription": "This property shall contain the lowest possible value for the metric reading. The value shall have the units specified in the property Units. The property is not meaningful, when the MetricType property has the value 'Discrete'.", "readonly": true, "type": [ "number", @@ -357,8 +357,8 @@ }, "Oem": { "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem", - "description": "This is the manufacturer/provider specific extension moniker used to divide the Oem object into sections.", - "longDescription": "The value of this string shall be of the format for the reserved word *Oem*." + "description": "The OEM extension property.", + "longDescription": "This property shall contain the OEM extensions. All values for properties that this object contains shall conform to the Redfish Specification-described requirements." }, "PhysicalContext": { "anyOf": [ @@ -369,13 +369,13 @@ "type": "null" } ], - "description": "Specifies the physical context of the metric.", - "longDescription": "The value of this property shall specify the physical context of the metric.", + "description": "The physical context of the metric.", + "longDescription": "This property shall contain the physical context of the metric.", "readonly": true }, "Precision": { "description": "Number of significant digits in the metric reading.", - "longDescription": "The value of the property shall specify the number of significant digits in the metric reading. The property is not meaningful, when the MetricType property has the value 'Discrete'.", + "longDescription": "This property shall specify the number of significant digits in the metric reading. The property is not meaningful, when the MetricType property has the value 'Discrete'.", "readonly": true, "type": [ "integer", @@ -384,7 +384,7 @@ }, "SensingInterval": { "description": "The time interval between when a metric is updated.", - "longDescription": "The value shall specify the time interval between when a metric is updated. The format of the value shall conform to the Duration format.", + "longDescription": "This property shall specify the time interval between when a metric is updated. The format of the value shall conform to the Duration format.", "pattern": "-?P(\\d+D)?(T(\\d+H)?(\\d+M)?(\\d+(.\\d+)?S)?)?", "readonly": false, "type": [ @@ -393,8 +393,8 @@ ] }, "TimestampAccuracy": { - "description": "Accuracy of the timestamp.", - "longDescription": "The value shall specify the expected + or - variability of the timestamp. The format of the value shall conform to the Duration format.", + "description": "The accuracy of the timestamp.", + "longDescription": "This property shall specify the expected + or - variability of the timestamp. The format of the value shall conform to the Duration format.", "pattern": "-?P(\\d+D)?(T(\\d+H)?(\\d+M)?(\\d+(.\\d+)?S)?)?", "readonly": true, "type": [ @@ -404,7 +404,7 @@ }, "Units": { "description": "The units of measure for this metric.", - "longDescription": "The value shall specify the units of the metric. shall be consistent with the case sensitive Unified Code for Units of Measure as defined at http://unitsofmeasure.org/ucum.html. Note: the units of measure is not covered in UCUM.", + "longDescription": "This property shall specify the units of the metric. This property shall be consistent with the case-sensitive ('C/s' column) Unified Code for Units of Measure. Note: Not all units of measured are covered by UCUM.", "readonly": false, "type": [ "string", @@ -412,18 +412,11 @@ ] }, "Wildcards": { - "description": "A list of wildcards and their substitution values to be applied to the entries in the MetricProperties array property.", + "description": "The wildcards and their substitution values for the entries in the MetricProperties array property.", "items": { - "anyOf": [ - { - "$ref": "#/definitions/Wildcard" - }, - { - "type": "null" - } - ] + "$ref": "#/definitions/Wildcard" }, - "longDescription": "The property shall contain a list of wildcards and their replacement strings, which are applied to the MetricProperties array property. Each wildcard shall have a corresponding entry in this array property.", + "longDescription": "The property shall contain a list of wildcards and their replacement strings, which are applied to the MetricProperties array property. Each wildcard shall have a corresponding entry in this array property.", "type": "array" } }, @@ -436,7 +429,7 @@ "type": "object" }, "MetricType": { - "description": "Specifies the type of metric provided. The property provides information to the client on how the metric can be handled.", + "description": "The type of metric. Provides information to the client on how the metric can be handled.", "enum": [ "Numeric", "Discrete", @@ -445,8 +438,8 @@ "Countdown" ], "enumDescriptions": { - "Countdown": "The metric is a countdown metric. The metric reading is a non-negative integer which decreases monotonically. When a counter reaches its minimum, the value resets to preset value and resumes counting down.", - "Counter": "The metric is a counter metric. The metric reading is a non-negative integer which increases monotonically. When a counter reaches its maximum, the value resets to 0 and resumes counting.", + "Countdown": "The metric is a countdown metric. The metric reading is a non-negative integer that decreases monotonically. When a counter reaches its minimum, the value resets to preset value and resumes counting down.", + "Counter": "The metric is a counter metric. The metric reading is a non-negative integer that increases monotonically. When a counter reaches its maximum, the value resets to 0 and resumes counting.", "Discrete": "The metric is a discrete metric. The metric value is discrete. The possible values are listed in the DiscreteValues property.", "Gauge": "The metric is a gauge metric. The metric value is a real number. When the metric value reaches the gauges extrema, it stays at that value, until the reading falls within the extrema.", "Numeric": "The metric is a numeric metric. The metric value is any real number." @@ -454,15 +447,15 @@ "enumLongDescriptions": { "Discrete": "The metric values shall indicate discrete states." }, - "longDescription": "The value of this property shall specify the type of metric.", + "longDescription": "This property shall contain the type of metric.", "type": "string" }, "OemActions": { "additionalProperties": true, - "description": "The available OEM specific actions for this resource.", - "longDescription": "This type shall contain any additional OEM actions for this resource.", + "description": "The available OEM-specific actions for this Resource.", + "longDescription": "This type shall contain the available OEM-specific actions for this Resource.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -480,10 +473,10 @@ }, "Wildcard": { "additionalProperties": false, - "description": "Contains a wildcard and its substitution values.", + "description": "The wildcard and its substitution values.", "longDescription": "This property shall contain a wildcard and its substitution values.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -524,5 +517,5 @@ }, "owningEntity": "DMTF", "release": "2018.2", - "title": "#MetricDefinition.v1_0_1.MetricDefinition" + "title": "#MetricDefinition.v1_0_3.MetricDefinition" } \ No newline at end of file diff --git a/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/MetricReport/MetricReport.json b/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/MetricReport/MetricReport.json index ef528950..fd1443a0 100644 --- a/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/MetricReport/MetricReport.json +++ b/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/MetricReport/MetricReport.json @@ -1,15 +1,15 @@ { - "$id": "http://redfish.dmtf.org/schemas/v1/MetricReport.v1_1_0.json", + "$id": "http://redfish.dmtf.org/schemas/v1/MetricReport.v1_2_0.json", "$ref": "#/definitions/MetricReport", "$schema": "http://redfish.dmtf.org/schemas/v1/redfish-schema-v1.json", - "copyright": "Copyright 2014-2018 DMTF. For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright", + "copyright": "Copyright 2014-2019 DMTF. For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright", "definitions": { "Actions": { "additionalProperties": false, - "description": "The available actions for this resource.", - "longDescription": "This type shall contain the available actions for this resource.", + "description": "The available actions for this Resource.", + "longDescription": "This type shall contain the available actions for this Resource.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -25,18 +25,18 @@ "properties": { "Oem": { "$ref": "#/definitions/OemActions", - "description": "This property contains the available OEM specific actions for this resource.", - "longDescription": "This property shall contain any additional OEM actions for this resource." + "description": "The available OEM-specific actions for this Resource.", + "longDescription": "This property shall contain the available OEM-specific actions for this Resource." } }, "type": "object" }, "MetricReport": { "additionalProperties": false, - "description": "The metric definitions used to create a metric report.", - "longDescription": "The value shall be reference to the definition for this metric report.", + "description": "The metric definitions that create a metric report.", + "longDescription": "The definition for this metric report.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -51,21 +51,21 @@ }, "properties": { "@odata.context": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/context" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/context" }, "@odata.etag": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/etag" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/etag" }, "@odata.id": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/id" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/id" }, "@odata.type": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/type" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/type" }, "Actions": { "$ref": "#/definitions/Actions", - "description": "The available actions for this resource.", - "longDescription": "The Actions property shall contain the available actions for this resource." + "description": "The available actions for this Resource.", + "longDescription": "This property shall contain the available actions for this Resource." }, "Description": { "anyOf": [ @@ -84,21 +84,14 @@ }, "MetricReportDefinition": { "$ref": "http://redfish.dmtf.org/schemas/v1/MetricReportDefinition.json#/definitions/MetricReportDefinition", - "description": "The metric definitions used to create a metric report.", - "longDescription": "The value shall be reference to the definition for this metric report.", + "description": "The definitions in the metric report.", + "longDescription": "The definitions in this metric report.", "readonly": true }, "MetricValues": { "description": "An array of metric values for the metered items of this Metric.", "items": { - "anyOf": [ - { - "$ref": "#/definitions/MetricValue" - }, - { - "type": "null" - } - ] + "$ref": "#/definitions/MetricValue" }, "longDescription": "The values shall be metric values for this MetricReport.", "type": "array" @@ -109,19 +102,19 @@ }, "Oem": { "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem", - "description": "This is the manufacturer/provider specific extension moniker used to divide the Oem object into sections.", - "longDescription": "The value of this string shall be of the format for the reserved word *Oem*." + "description": "The OEM extension property.", + "longDescription": "This property shall contain the OEM extensions. All values for properties that this object contains shall conform to the Redfish Specification-described requirements." }, "ReportSequence": { "description": "The current sequence identifier for this metric report.", - "longDescription": "The value shall be the current sequence identifier for this metric report.", + "longDescription": "This property shall contain the current sequence identifier for this metric report.", "readonly": true, "type": "string" }, "Timestamp": { "description": "The time associated with the metric report in its entirety. The time of the metric report may be relevant when the time of individual metrics are minimally different.", "format": "date-time", - "longDescription": "The value shall be the time when the metric report was generated.", + "longDescription": "This property shall contain the time when the metric report was generated.", "readonly": true, "type": [ "string", @@ -144,7 +137,7 @@ "description": "A metric Value.", "longDescription": "A metric value in the context of a Metric.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -160,13 +153,13 @@ "properties": { "MetricDefinition": { "$ref": "http://redfish.dmtf.org/schemas/v1/MetricDefinition.json#/definitions/MetricDefinition", - "description": "A link to the Metric Definition.", - "longDescription": "The value shall be reference to the Metric Definition resource that describes what this Metric Report is capturing.", + "description": "The link to the metric.", + "longDescription": "The Metric Definition Resource that describes what this Metric Report captures.", "readonly": true }, "MetricId": { "description": "The metric definitions identifier for this metric.", - "longDescription": "The value shall be the same as the Id property of the source metric within the associated MetricDefinition.", + "longDescription": "This property shall contain the same as the Id property of the source metric within the associated MetricDefinition.", "readonly": true, "type": [ "string", @@ -175,8 +168,8 @@ }, "MetricProperty": { "description": "The URI for the property from which this metric is derived.", - "format": "uri", - "longDescription": "The value shall be URI to the a property following the JSON fragment notation, as defined by RFC6901, to identify an individual property in a Redfish resource.", + "format": "uri-reference", + "longDescription": "The value shall be URI to the property following the JSON fragment notation, as defined by RFC6901, to identify an individual property in a Redfish Resource.", "readonly": true, "type": [ "string", @@ -184,16 +177,22 @@ ] }, "MetricValue": { - "description": "The value identifies this resource.", - "longDescription": "The value of the metric represented as a string.", + "description": "The metric value, as a string.", + "longDescription": "This property shall contain the metric value, as a string.", "readonly": true, "type": [ "string", "null" ] }, + "Oem": { + "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem", + "description": "The OEM extension property.", + "longDescription": "This property shall contain the OEM extensions. All values for properties contained in this object shall conform to the Redfish Specification-described requirements.", + "versionAdded": "v1_2_0" + }, "Timestamp": { - "description": "The time when the value of the metric is obtained. A management application may establish a time series of metric data by retrieving the instances of metric value and sorting them according to their Timestamp.", + "description": "The time when the metric is obtained. A management application may establish a time series of metric data by retrieving the instances of metric value and sorting them according to their Timestamp.", "format": "date-time", "longDescription": "The value shall time when the metric value was obtained. Note that this may be different from the time when this instance is created.", "readonly": true, @@ -207,10 +206,10 @@ }, "OemActions": { "additionalProperties": true, - "description": "The available OEM specific actions for this resource.", - "longDescription": "This type shall contain any additional OEM actions for this resource.", + "description": "The available OEM-specific actions for this Resource.", + "longDescription": "This type shall contain the available OEM-specific actions for this Resource.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -228,6 +227,6 @@ } }, "owningEntity": "DMTF", - "release": "2018.3", - "title": "#MetricReport.v1_1_0.MetricReport" + "release": "2019.2", + "title": "#MetricReport.v1_2_0.MetricReport" } \ No newline at end of file diff --git a/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/MetricReportDefinition/MetricReportDefinition.json b/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/MetricReportDefinition/MetricReportDefinition.json index bced5dcc..17b73141 100644 --- a/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/MetricReportDefinition/MetricReportDefinition.json +++ b/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/MetricReportDefinition/MetricReportDefinition.json @@ -1,15 +1,15 @@ { - "$id": "http://redfish.dmtf.org/schemas/v1/MetricReportDefinition.v1_1_0.json", + "$id": "http://redfish.dmtf.org/schemas/v1/MetricReportDefinition.v1_3_0.json", "$ref": "#/definitions/MetricReportDefinition", "$schema": "http://redfish.dmtf.org/schemas/v1/redfish-schema-v1.json", - "copyright": "Copyright 2014-2018 DMTF. For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright", + "copyright": "Copyright 2014-2019 DMTF. For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright", "definitions": { "Actions": { "additionalProperties": false, - "description": "The available actions for this resource.", - "longDescription": "This type shall contain the available actions for this resource.", + "description": "The available actions for this Resource.", + "longDescription": "This type shall contain the available actions for this Resource.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -25,14 +25,14 @@ "properties": { "Oem": { "$ref": "#/definitions/OemActions", - "description": "This property contains the available OEM specific actions for this resource.", - "longDescription": "This property shall contain any additional OEM actions for this resource." + "description": "The available OEM-specific actions for this Resource.", + "longDescription": "This property shall contain the available OEM-specific actions for this Resource." } }, "type": "object" }, "CalculationAlgorithmEnum": { - "description": "Specifies the function to apply to the list of metric properties.", + "description": "The function to apply to the list of metric properties.", "enum": [ "Average", "Maximum", @@ -40,18 +40,18 @@ "Summation" ], "enumDescriptions": { - "Average": "The metric is calculated as the average of a metric reading over a sliding time interval.", - "Maximum": "The metric is calculated as the maximum value of a metric reading over during a time interval.", - "Minimum": "The metric is calculated as the minimum value of a metric reading over a sliding time interval.", - "Summation": "The metric is calculated as the sum of the values over a sliding time interval." + "Average": "The metric is calculated as the average metric reading over a duration.", + "Maximum": "The metric is calculated as the maximum metric reading over a duration.", + "Minimum": "The metric is calculated as the minimum metric reading over a duration.", + "Summation": "The metric is calculated as the sum of the values over a duration." }, "enumLongDescriptions": { - "Average": "The metric shall be calculated as the average of a metric reading over a sliding time interval. The time interval shall be the value of the CalculationTimeInterval property.", - "Maximum": "The metric shall be calculated as the maximum of a metric reading over a sliding time interval. The time interval shall be the value of the CalculationTimeInterval property.", - "Minimum": "The metric shall be calculated as the minimum of a metric reading over a sliding time interval. The time interval shall be the value of the CalculationTimeInterval property.", - "Summation": "The metric shall be calculated as the sum of the the specified metric reading over a sliding time interval. The time interval shall be the value of the CalculationTimeInterval property." + "Average": "The metric shall be calculated as the average metric reading over a duration. The duration shall be the CollectionDuration property value.", + "Maximum": "The metric shall be calculated as the maximum metric reading over a duration. The duration shall be the CollectionDuration property value.", + "Minimum": "The metric shall be calculated as the minimum of a metric reading over a duration. The duration shall be the CollectionDuration property value.", + "Summation": "The metric shall be calculated as the sum of the specified metric reading over a duration. The duration shall be the CollectionDuration property value." }, - "longDescription": "The value shall specify the function to apply to the list of metric properties.", + "longDescription": "This type shall specify the function to apply to the list of metric properties.", "type": "string" }, "CollectionTimeScope": { @@ -62,19 +62,59 @@ "StartupInterval" ], "enumDescriptions": { - "Interval": "The corresponding metric values apply to a time interval. On the corresponding metric value instances, the value of Timestamp shall specify the end of the time interval and Duration shall specify its duration.", - "Point": "The corresponding metric values apply to a point in time. On the corresponding metric value instances, the value of Timestamp shall specify the point in time.", - "StartupInterval": "The corresponding metric values apply to a time interval that began at the startup of the measured resource (i.e. the Resources associated by Links.MetricDefinitionForResources). On the corresponding metric value instances, the value of Timestamp shall specify the end of the time interval. The value of Duration shall specifies the duration between startup of the resource and TimeStamp." + "Interval": "The corresponding metric values apply to a time interval. On the corresponding metric value instances, the Timestamp property value shall specify the end of the time interval and Duration shall specify its duration.", + "Point": "The corresponding metric values apply to a point in time. On the corresponding metric value instances, the Timestamp property value shall specify the point in time.", + "StartupInterval": "The corresponding metric values apply to a time interval that began at the startup of the measured Resource, such as the Resources that Links.MetricDefinitionForResources associates. On the corresponding metric value instances, the Timestamp value shall specify the end of the time interval. The Duration value shall specify the duration between the startup of Resource and Timestamp." }, - "longDescription": "The value of the property shall specify the time scope of the corresponding metric values.", + "longDescription": "This type shall specify the time scope of the corresponding metric values.", "type": "string" }, + "Links": { + "additionalProperties": false, + "description": "The links to other Resources that are related to this Resource.", + "longDescription": "The Redfish Specification-described type shall contain links to Resources related to but not subordinate to this Resource.", + "patternProperties": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { + "description": "This property shall specify a valid odata or Redfish property.", + "type": [ + "array", + "boolean", + "integer", + "number", + "null", + "object", + "string" + ] + } + }, + "properties": { + "Oem": { + "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem", + "description": "The OEM extension property.", + "longDescription": "This property shall contain the OEM extensions. All values for properties contained in this object shall conform to the Redfish Specification-described requirements." + }, + "Triggers": { + "description": "The triggers that cause this metric report definition to generate a new metric report upon a trigger occurrence when the TriggerActions property contains `RedfishMetricReport`.", + "items": { + "$ref": "http://redfish.dmtf.org/schemas/v1/Triggers.json#/definitions/Triggers" + }, + "longDescription": "This property shall contain a set of triggers that cause this metric report to generate a new metric report upon a trigger occurrence when the TriggerActions property contains `RedfishMetricReport`.", + "readonly": true, + "type": "array", + "versionAdded": "v1_2_0" + }, + "Triggers@odata.count": { + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/count" + } + }, + "type": "object" + }, "Metric": { "additionalProperties": false, - "description": "Specifies a metric to include in the metric report. The metrics are derived by applying a calculation on each of the listed metric properties.", - "longDescription": "The properties shall specify a metric to include in the metric report. The metrics shall be derived by applying the algorithm specified in CollectionnFunction property to each of the metric properties listed in the MetricProperties property.", + "description": "Specifies a metric to include in the metric report. The metrics are derived by applying a calculation on each of the listed metric properties.", + "longDescription": "The properties shall specify a metric to include in the metric report. The metrics shall be derived by applying the algorithm specified in CollectionnFunction property to each of the metric properties listed in the MetricProperties property.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -89,8 +129,8 @@ }, "properties": { "CollectionDuration": { - "description": "Specifies the duration over which the function is computed.", - "longDescription": "The value shall specify the duration over which the function is computed. The value shall conform to the Duration format.", + "description": "The duration over which the function is computed.", + "longDescription": "This property shall specify the duration over which the function is computed. The value shall conform to the Duration format.", "pattern": "-?P(\\d+D)?(T(\\d+H)?(\\d+M)?(\\d+(.\\d+)?S)?)?", "readonly": false, "type": [ @@ -120,13 +160,13 @@ "type": "null" } ], - "description": "Specifies the scope of time scope over which the function is applied.", - "longDescription": "The value shall specify the scope of time over which the function is applied.", + "description": "The scope of time scope over which the function is applied.", + "longDescription": "This property shall specify the scope of time over which the function is applied.", "readonly": false }, "MetricId": { - "description": "Specifies the label for the metric definition which is derived by applying the CollectionFunction to the metric property.", - "longDescription": "This property shall specify a label for use in the metric report for the metric which is derived metrics by applying the CollectionFunction to the metric property. This property shall match the Id property of the corresponding metric definition resource.", + "description": "The label for the metric definition that is derived by applying the collectionFunction to the metric property. It matches the Id property of the corresponding metric definition.", + "longDescription": "This property shall specify the label for the metric definition that is derived by applying the collectionFunction to the metric property. This property shall match the Id property of the corresponding metric definition.", "readonly": true, "type": [ "string", @@ -134,15 +174,15 @@ ] }, "MetricProperties": { - "description": "A collection of URI for the properties on which this metric is collected.", - "format": "uri", + "description": "The set of URIs for the properties on which this metric is collected.", + "format": "uri-reference", "items": { "type": [ "string", "null" ] }, - "longDescription": "Each value may contain one or more Wildcard names enclosed in curly braces. Wildcard value entries shall be substituted for each Wildcard name found. If two or more wild names are found, the same Wildcard index is used for each in one substitution pass. After substituting the WildCard values entries, each value shall be a URI for a property in a resource that matches a property declaration in the corresponding MetricDefinition.", + "longDescription": "Each value may contain one or more Wildcard names enclosed in curly braces. Wildcard value entries shall be substituted for each Wildcard name found. If two or more wild names are found, the same Wildcard index is used for each in one substitution pass. After substituting the WildCard values entries, each value shall contain a URI for a property in a Resource that matches a property declaration in the corresponding MetricDefinition.", "readonly": false, "type": "array" } @@ -151,10 +191,10 @@ }, "MetricReportDefinition": { "additionalProperties": false, - "description": "A set of metrics that are collected into a metric report.", - "longDescription": "This resource specifies a set of metrics that shall be collected into a metric report.", + "description": "The MetricReportDefinition schema describes set of metrics that are collected into a metric report.", + "longDescription": "This Resource specifies a set of metrics that shall be collected into a metric report.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -169,25 +209,25 @@ }, "properties": { "@odata.context": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/context" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/context" }, "@odata.etag": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/etag" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/etag" }, "@odata.id": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/id" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/id" }, "@odata.type": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/type" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/type" }, "Actions": { "$ref": "#/definitions/Actions", - "description": "The available actions for this resource.", - "longDescription": "The Actions property shall contain the available actions for this resource." + "description": "The available actions for this Resource.", + "longDescription": "This property shall contain the available actions for this Resource." }, "AppendLimit": { - "description": "Indicates the maximum number of entries that can be appended to a metric report. When the metric report reaches its limit, its behavior is dictated by the ReportUpdates property.", - "longDescription": "This property shall be a number that indicates the maximum number of entries that can be appended to a metric report. When the metric report reaches its limit, its behavior shall be dictated by the ReportUpdates property. This property shall be required if ReportUpdates is either AppendWrapsWhenFull or AppendStopsWhenFull.", + "description": "The maximum number of entries that can be appended to a metric report. When the metric report reaches its limit, its behavior is dictated by the ReportUpdates property.", + "longDescription": "This property shall contain a number that indicates the maximum number of entries that can be appended to a metric report. When the metric report reaches its limit, its behavior shall be dictated by the ReportUpdates property. This property shall be required if ReportUpdates is either AppendWrapsWhenFull or AppendStopsWhenFull.", "minimum": 0, "readonly": true, "type": "integer" @@ -207,25 +247,41 @@ "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Id", "readonly": true }, + "Links": { + "$ref": "#/definitions/Links", + "description": "The links to other Resources that are related to this Resource.", + "longDescription": "The Redfish Specification-described Links Property shall contain links to Resources related to but not subordinate to this Resource.", + "versionAdded": "v1_2_0" + }, "MetricProperties": { - "description": "A list of URIs with wildcards and property identifiers to include in the metric report. If a URI has wildcards, the wildcards are substituted as specified in the Wildcards array property.", - "format": "uri", + "description": "The list of URIs with wildcards and property identifiers to include in the metric report. If a URI has wildcards, the wildcards are substituted as specified in the Wildcards property.", + "format": "uri-reference", "items": { "type": [ "string", "null" ] }, - "longDescription": "This array property shall contain a list of URIs with wildcards and property identifiers to include in the metric report. Each wildcard in the URI shall be delimited by a set of curly braces. Each wildcard shall be substituted as specified by the corresponding entry in the Wildcard array property. Once an URI with wildcards has had its wildcards fully substituted, it shall reference a resource property to include in the metric report. The property identifiers portion of the URI shall follow JSON fragment notation rules defined by RFC6901.", + "longDescription": "This property shall contain a list of URIs with wildcards and property identifiers to include in the metric report. A set of curly braces shall delimit each wildcard in the URI. The corresponding entry in the Wildcard property shall replace each wildcard. After a URI with wildcards replaces each wildcard, it shall describe a Resource property to include in the metric report. The property identifiers portion of the URI shall follow RFC6901-specified JSON fragment notation rules.", "readonly": false, "type": "array" }, "MetricReport": { "$ref": "http://redfish.dmtf.org/schemas/v1/MetricReport.json#/definitions/MetricReport", - "description": "Specifies the location where the resultant metric report is placed.", - "longDescription": "This property shall be a reference to the resource where the resultant metric report is placed.", + "description": "The location where the resultant metric report is placed.", + "longDescription": "This property shall contain a link to the Resource where the resultant metric report is placed.", "readonly": true }, + "MetricReportDefinitionEnabled": { + "description": "An indication of whether the generation of new metric reports is enabled.", + "longDescription": "This property shall indicate whether the generation of new metric reports is enabled.", + "readonly": false, + "type": [ + "boolean", + "null" + ], + "versionAdded": "v1_2_0" + }, "MetricReportDefinitionType": { "anyOf": [ { @@ -236,22 +292,26 @@ } ], "description": "Specifies when the metric report is generated.", - "longDescription": "The value shall specify when the metric report is generated. If the value of the property is 'Periodic', then the Schedule property shall be present.", + "longDescription": "This property shall specify when the metric report is generated. If the value is `Periodic`, the Schedule property shall be present.", "readonly": false }, + "MetricReportHeartbeatInterval": { + "description": "The interval at which to send the complete metric report because the Redfish client wants refreshed metric data even when the data has not changed. This property value is always greater than the recurrence interval of a metric report, and it only applies when the SuppressRepeatedMetricValue property is `true`.", + "longDescription": "The property value shall contain a Redfish duration that describes the time interval between generations of the unsuppressed metric report. It shall always be a value greater than the RecurrenceInterval of a MetricReport and should only apply when the SuppressRepeatedMetricValue property is `true`.", + "pattern": "-?P(\\d+D)?(T(\\d+H)?(\\d+M)?(\\d+(.\\d+)?S)?)?", + "readonly": false, + "type": [ + "string", + "null" + ], + "versionAdded": "v1_2_0" + }, "Metrics": { - "description": "Specifies a list of metrics to include in the metric report. The metrics may include metric properties or calculations applied to a metric property.", + "description": "The list of metrics to include in the metric report. The metrics may include metric properties or calculations applied to a metric property.", "items": { - "anyOf": [ - { - "$ref": "#/definitions/Metric" - }, - { - "type": "null" - } - ] + "$ref": "#/definitions/Metric" }, - "longDescription": "The property shall specify a list of metrics to include in the metric report. The metrics may include metric properties or calculations applied to a metric property.", + "longDescription": "The property shall contain a list of metrics to include in the metric report. The metrics may include metric properties or calculations that are applied to a metric property.", "type": "array" }, "Name": { @@ -260,47 +320,61 @@ }, "Oem": { "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem", - "description": "This is the manufacturer/provider specific extension moniker used to divide the Oem object into sections.", - "longDescription": "The value of this string shall be of the format for the reserved word *Oem*." + "description": "The OEM extension property.", + "longDescription": "This property shall contain the OEM extensions. All values for properties that this object contains shall conform to the Redfish Specification-described requirements." }, "ReportActions": { - "description": "Specifies the actions to perform when a metric report is generated.", + "description": "The set of actions to perform when a metric report is generated.", "items": { "$ref": "#/definitions/ReportActionsEnum" }, - "longDescription": "The value of this property shall specify the actions to perform when the metric report is generated. The options are transmit an event or create a metric report resource.", + "longDescription": "This property shall contain the set of actions to perform when the metric report is generated.", "readonly": true, "type": "array" }, + "ReportTimespan": { + "description": "Specifies the timespan duration of the metric report.", + "longDescription": "This property shall specify the timespan duration that this metric report covers.", + "pattern": "-?P(\\d+D)?(T(\\d+H)?(\\d+M)?(\\d+(.\\d+)?S)?)?", + "readonly": false, + "type": [ + "string", + "null" + ], + "versionAdded": "v1_3_0" + }, "ReportUpdates": { "$ref": "#/definitions/ReportUpdatesEnum", - "description": "When logging metric reports, specifies how subsequent metric reports are handled in relationship to an existing metric report created from the metric report definition. Namely, whether to overwrite, append, or create new report resource.", - "longDescription": "The value of this property shall specify how subsequent metric reports are handled in relationship to an existing metric report created from the metric report definition.", + "description": "When logging metric reports, specifies how subsequent metric reports are handled in relationship to an existing metric report created from the metric report definition. Namely, whether to overwrite, append, or create a report Resource.", + "longDescription": "This property shall contain how subsequent metric reports are handled in relationship to an existing metric report created from the metric report definition.", "readonly": true }, "Schedule": { "$ref": "http://redfish.dmtf.org/schemas/v1/Schedule.json#/definitions/Schedule", - "description": "Specifies the schedule for generating the metric report.", - "longDescription": "If the schedule present, the metric report is generated at an interval specified by Schedule.RecurrenceInterval property. If Schedule.MaxOccurrences is specified, the metric report will no longer be generated after the specified number of occurances." + "description": "The schedule for generating the metric report.", + "longDescription": "If the schedule present, the metric report is generated at an interval specified by Schedule.RecurrenceInterval property. If Schedule.MaxOccurrences is specified, the metric report is no longer generated after the specified number of occurrences." }, "Status": { "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Status", - "description": "This property describes the status and health of the resource and its children.", - "longDescription": "This property shall contain any status or health properties of the resource." + "description": "The status and health of the Resource and its subordinate or dependent Resources.", + "longDescription": "This property shall contain any status or health properties of the Resource." + }, + "SuppressRepeatedMetricValue": { + "description": "An indication of whether any metrics are suppressed from the generated metric report. If `true`, any metric that equals the same metric in the previously generated metric report is suppressed from the current report. Also, duplicate metrics are suppressed. If `false`, no metrics are suppressed from the current report. The current report may contain no metrics if all metrics equal the values of the same metrics in the previously generated metric report.", + "longDescription": "This property shall indicate whether any metrics are suppressed from the generated metric report. If `true`, any metric that equals the same metric in the previously generated metric report is suppressed from the current report. Also, duplicate metrics are suppressed. If `false`, no metrics are suppressed from the current report. The current report may contain no metrics if all metrics equal the values of the same metrics in the previously generated metric report.", + "readonly": false, + "type": [ + "boolean", + "null" + ], + "versionAdded": "v1_2_0" }, "Wildcards": { - "description": "A list of wildcards and their substitution values to be applied to the entries in the MetricProperties array property.", + "description": "The set of wildcards and their substitution values for the entries in the MetricProperties property.", "items": { - "anyOf": [ - { - "$ref": "#/definitions/Wildcard" - }, - { - "type": "null" - } - ] + "$ref": "#/definitions/Wildcard" }, - "longDescription": "The property shall contain a list of wildcards and their replacement strings, which are applied to the MetricProperties array property. Each wildcard shall have a corresponding entry in this array property.", + "longDescription": "The property shall contain a set of wildcards and their replacement strings, which are applied to the MetricProperties property. Each wildcard expressed in the MetricProperties property shall have a corresponding entry in this property.", "type": "array" } }, @@ -324,15 +398,15 @@ "OnRequest": "The metric report is generated when a HTTP GET is performed on the specified metric report.", "Periodic": "The metric report is generated at a periodic time interval, specified in the Schedule property." }, - "longDescription": "The value shall specify when the metric report is generated.", + "longDescription": "This type shall specify when the metric report is generated.", "type": "string" }, "OemActions": { "additionalProperties": true, - "description": "The available OEM specific actions for this resource.", - "longDescription": "This type shall contain any additional OEM actions for this resource.", + "description": "The available OEM-specific actions for this Resource.", + "longDescription": "This type shall contain the available OEM-specific actions for this Resource.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -355,18 +429,18 @@ "RedfishEvent" ], "enumDescriptions": { - "LogToMetricReportsCollection": "When a metric report is scheduled to be generated, record the occurrence to the Metric Report Collection.", - "RedfishEvent": "When a metric report is scheduled to be generated, send a Redfish Event message of type MetricReport." + "LogToMetricReportsCollection": "When a metric report is scheduled to be generated, record the occurrence to the metric report collection.", + "RedfishEvent": "When a metric report is scheduled to be generated, send a Redfish Event message of the MetricReport type." }, "enumLongDescriptions": { - "LogToMetricReportsCollection": "When a metric report is scheduled to be generated, the service shall record the occurrence to the Metric Report Collection found under the Telemetry Service. The service shall update the Metric Report Collection based on the setting of the ReportUpdates property.", - "RedfishEvent": "When a metric report is scheduled to be generated, the service shall produce a Redfish Event of type MetricReport to matching subscribers indicated in the EventSubscription collection found on the EventService." + "LogToMetricReportsCollection": "When a metric report is scheduled to be generated, the service shall record the occurrence to the metric report collection found under the Telemetry Service. The Service shall update the metric report collection based on the setting of the ReportUpdates property.", + "RedfishEvent": "When a metric report is scheduled to be generated, the service shall send an event of the MetricReport type to subscribers that the EventSubscription collection in the Event Service describes." }, - "longDescription": "The value shall specify the actions to perform when a metric report is generated.", + "longDescription": "This type shall specify the actions to perform when a metric report is generated.", "type": "string" }, "ReportUpdatesEnum": { - "description": "How to what to do with subsequent metric reports when a metric report already exists.", + "description": "Handling of subsequent metric reports when a metric report exists.", "enum": [ "Overwrite", "AppendWrapsWhenFull", @@ -374,20 +448,20 @@ "NewReport" ], "enumDescriptions": { - "AppendStopsWhenFull": "When a metric report is updated, append to the specified metric report resource. This also indicates that the metric report stops adding entries when the metric report has reached its maximum capacity.", - "AppendWrapsWhenFull": "When a metric report is updated, append to the specified metric report resource. This also indicates that the metric report overwrites its entries with new entries when the metric report has reached its maximum capacity.", - "NewReport": "When a metric report is updated, create a new metric report resource, whose resource name is the metric report resource name concatenated with the timestamp.", - "Overwrite": "When a metric report is updated, overwrite the specified metric report resource." + "AppendStopsWhenFull": "When a metric report is updated, append to the specified metric report Resource. This also indicates that the metric report stops adding entries when the metric report has reached its maximum capacity.", + "AppendWrapsWhenFull": "When a metric report is updated, new information is appended to the report. The metric report overwrites its entries with new entries when the metric report has reached its maximum capacity.", + "NewReport": "When a metric report is updated, create a new metric report Resource, whose Resource name is the metric report Resource name concatenated with the timestamp.", + "Overwrite": "When a metric report is updated, overwrite the metric report." }, - "longDescription": "The value shall specify what to do with subsequent metric reports when a metric report already exists.", + "longDescription": "This type shall indicate how the Service handles subsequent metric reports when a metric report exists.", "type": "string" }, "Wildcard": { "additionalProperties": false, - "description": "Contains a wildcard and its substitution values.", - "longDescription": "This property shall contain a wildcard and its substitution values.", + "description": "The wildcard and its substitution values.", + "longDescription": "This type shall contain a wildcard and its substitution values.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -402,6 +476,7 @@ }, "properties": { "Keys": { + "deprecated": "This property has been deprecated in favor of using the property 'Values'.", "description": "An array of values to substitute for the wildcard.", "items": { "type": [ @@ -411,7 +486,8 @@ }, "longDescription": "This property shall contain the list of values to substitute for the wildcard.", "readonly": true, - "type": "array" + "type": "array", + "versionDeprecated": "v1_1_0" }, "Name": { "description": "The string used as a wildcard.", @@ -440,6 +516,6 @@ } }, "owningEntity": "DMTF", - "release": "2018.3", - "title": "#MetricReportDefinition.v1_1_0.MetricReportDefinition" + "release": "2019.2", + "title": "#MetricReportDefinition.v1_3_0.MetricReportDefinition" } \ No newline at end of file diff --git a/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/NetworkAdapter/NetworkAdapter.json b/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/NetworkAdapter/NetworkAdapter.json index efe704d1..b6109673 100644 --- a/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/NetworkAdapter/NetworkAdapter.json +++ b/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/NetworkAdapter/NetworkAdapter.json @@ -1,14 +1,15 @@ { + "$id": "http://redfish.dmtf.org/schemas/v1/NetworkAdapter.v1_3_0.json", "$ref": "#/definitions/NetworkAdapter", "$schema": "http://redfish.dmtf.org/schemas/v1/redfish-schema-v1.json", - "copyright": "Copyright 2014-2018 DMTF. For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright", + "copyright": "Copyright 2014-2019 DMTF. For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright", "definitions": { "Actions": { "additionalProperties": false, - "description": "The available actions for this resource.", - "longDescription": "This type shall contain the available actions for this resource.", + "description": "The available actions for this Resource.", + "longDescription": "This type shall contain the available actions for this Resource.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -27,8 +28,8 @@ }, "Oem": { "$ref": "#/definitions/OemActions", - "description": "This property contains the available OEM specific actions for this resource.", - "longDescription": "This property shall contain any additional OEM actions for this resource." + "description": "The available OEM-specific actions for this Resource.", + "longDescription": "This property shall contain the available OEM-specific actions for this Resource." } }, "type": "object" @@ -38,7 +39,7 @@ "description": "The capabilities of a controller.", "longDescription": "This type shall describe the capabilities of a controller.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -53,44 +54,24 @@ }, "properties": { "DataCenterBridging": { - "anyOf": [ - { - "$ref": "#/definitions/DataCenterBridging" - }, - { - "type": "null" - } - ], - "description": "Data Center Bridging (DCB) for this controller.", - "longDescription": "This object shall contain capability, status, and configuration values related to Data Center Bridging (DCB) for this controller." + "$ref": "#/definitions/DataCenterBridging", + "description": "Data center bridging (DCB) for this controller.", + "longDescription": "This property shall contain capability, status, and configuration values related to data center bridging (DCB) for this controller." }, "NPAR": { - "anyOf": [ - { - "$ref": "#/definitions/NicPartitioning" - }, - { - "type": "null" - } - ], + "$ref": "#/definitions/NicPartitioning", "description": "NIC Partitioning (NPAR) capabilities for this controller.", - "longDescription": "This object shall contain capability, status, and configuration values related to NIC partitioning for this controller." + "longDescription": "This property shall contain capability, status, and configuration values related to NIC partitioning for this controller.", + "versionAdded": "v1_2_0" }, "NPIV": { - "anyOf": [ - { - "$ref": "#/definitions/NPIV" - }, - { - "type": "null" - } - ], + "$ref": "#/definitions/NPIV", "description": "N_Port ID Virtualization (NPIV) capabilties for this controller.", - "longDescription": "This object shall contain N_Port ID Virtualization (NPIV) capabilties for this controller." + "longDescription": "This property shall contain N_Port ID Virtualization (NPIV) capabilties for this controller." }, "NetworkDeviceFunctionCount": { "description": "The maximum number of physical functions available on this controller.", - "longDescription": "The value of this property shall be the number of physical functions available on this controller.", + "longDescription": "This property shall contain the number of physical functions available on this controller.", "readonly": true, "type": [ "integer", @@ -99,7 +80,7 @@ }, "NetworkPortCount": { "description": "The number of physical ports on this controller.", - "longDescription": "The value of this property shall be the number of physical ports on this controller.", + "longDescription": "This property shall contain the number of physical ports on this controller.", "readonly": true, "type": [ "integer", @@ -107,26 +88,19 @@ ] }, "VirtualizationOffload": { - "anyOf": [ - { - "$ref": "#/definitions/VirtualizationOffload" - }, - { - "type": "null" - } - ], + "$ref": "#/definitions/VirtualizationOffload", "description": "Virtualization offload for this controller.", - "longDescription": "This object shall contain capability, status, and configuration values related to virtualization offload for this controller." + "longDescription": "This property shall contain capability, status, and configuration values related to virtualization offload for this controller." } }, "type": "object" }, "ControllerLinks": { "additionalProperties": false, - "description": "Contains references to other resources that are related to this resource.", - "longDescription": "This type, as described by the Redfish Specification, shall contain references to resources that are related to, but not contained by (subordinate to), this resource.", + "description": "The links to other Resources that are related to this Resource.", + "longDescription": "The Redfish Specification-described type shall contain links to Resources related to but not subordinate to this Resource.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -141,45 +115,45 @@ }, "properties": { "NetworkDeviceFunctions": { - "description": "An array of references to the NetworkDeviceFunctions associated with this Network Controller.", + "description": "An array of links to the NetworkDeviceFunctions associated with this Network Controller.", "items": { "$ref": "http://redfish.dmtf.org/schemas/v1/NetworkDeviceFunction.json#/definitions/NetworkDeviceFunction" }, - "longDescription": "The value of this property shall be an array of references of type NetworkDeviceFunction that represent the Network Device Functions associated with this Network Controller.", + "longDescription": "This property shall contain an array of links of the NetworkDeviceFunction type that represent the network device functions associated with this Network Controller.", "readonly": true, "type": "array" }, "NetworkDeviceFunctions@odata.count": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/count" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/count" }, "NetworkPorts": { - "description": "An array of references to the NetworkPorts associated with this Network Controller.", + "description": "An array of links to the NetworkPorts associated with this Network Controller.", "items": { "$ref": "http://redfish.dmtf.org/schemas/v1/NetworkPort.json#/definitions/NetworkPort" }, - "longDescription": "The value of this property shall be an array of references of type NetworkPort that represent the Network Ports associated with this Network Controller.", + "longDescription": "This property shall contain an array of links of the NetworkPort type that represent the Network Ports associated with this Network Controller.", "readonly": true, "type": "array" }, "NetworkPorts@odata.count": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/count" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/count" }, "Oem": { "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem", - "description": "Oem extension object.", - "longDescription": "This object represents the Oem property. All values for resources described by this schema shall comply to the requirements as described in the Redfish specification." + "description": "The OEM extension property.", + "longDescription": "This property shall contain the OEM extensions. All values for properties contained in this object shall conform to the Redfish Specification-described requirements." }, "PCIeDevices": { - "description": "An array of references to the PCIeDevices associated with this Network Controller.", + "description": "An array of links to the PCIeDevices associated with this Network Controller.", "items": { "$ref": "http://redfish.dmtf.org/schemas/v1/PCIeDevice.json#/definitions/PCIeDevice" }, - "longDescription": "The value of this property shall be an array of references of type PCIeDevice that represent the PCI-e Devices associated with this Network Controller.", + "longDescription": "This property shall contain an array of links of the PCIeDevice type that represent the PCIe devices associated with this Network Controller.", "readonly": true, "type": "array" }, "PCIeDevices@odata.count": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/count" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/count" } }, "type": "object" @@ -189,7 +163,7 @@ "description": "A network controller ASIC that makes up part of a NetworkAdapter.", "longDescription": "This type shall describe a network controller ASIC that makes up part of a NetworkAdapter.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -204,57 +178,54 @@ }, "properties": { "ControllerCapabilities": { - "anyOf": [ - { - "$ref": "#/definitions/ControllerCapabilities" - }, - { - "type": "null" - } - ], + "$ref": "#/definitions/ControllerCapabilities", "description": "The capabilities of this controller.", - "longDescription": "The value of this property shall contain the capabilities of this controller." + "longDescription": "This property shall contain the capabilities of this controller." }, "FirmwarePackageVersion": { "description": "The version of the user-facing firmware package.", - "longDescription": "The value of this property shall be the version number of the user-facing firmware package.", + "longDescription": "This property shall contain the version number of the user-facing firmware package.", "readonly": true, "type": [ "string", "null" ] }, + "Identifiers": { + "description": "The Durable names for the network adapter.", + "items": { + "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Identifier" + }, + "longDescription": "This property shall contain a list of all known durable names for the associated network adapter.", + "type": "array", + "versionAdded": "v1_3_0" + }, "Links": { "$ref": "#/definitions/ControllerLinks", - "description": "Links.", + "description": "The links.", "longDescription": "Links for this controller." }, "Location": { "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Location", - "description": "The Location of the network adapter controller.", - "longDescription": "This property shall contain location information of the associated network adapter controller." + "description": "The location of the network adapter controller.", + "longDescription": "This property shall contain location information of the associated network adapter controller.", + "versionAdded": "v1_1_0" }, "PCIeInterface": { - "anyOf": [ - { - "$ref": "http://redfish.dmtf.org/schemas/v1/PCIeDevice.json#/definitions/PCIeInterface" - }, - { - "type": "null" - } - ], + "$ref": "http://redfish.dmtf.org/schemas/v1/PCIeDevice.json#/definitions/PCIeInterface", "description": "The PCIe interface details for this controller.", - "longDescription": "This object shall contain details on the PCIe interface used to connect this PCIe-based controller to its host." + "longDescription": "This property shall contain details for the PCIe interface that connects this PCIe-based controller to its host.", + "versionAdded": "v1_2_0" } }, "type": "object" }, "DataCenterBridging": { "additionalProperties": false, - "description": "Data Center Bridging (DCB) for capabilities of a controller.", - "longDescription": "This type shall describe the capability, status, and configuration values related to Data Center Bridging (DCB) for a controller.", + "description": "Data center bridging (DCB) for capabilities of a controller.", + "longDescription": "This type shall describe the capability, status, and configuration values related to data center bridging (DCB) for a controller.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -269,8 +240,8 @@ }, "properties": { "Capable": { - "description": "Whether this controller is capable of Data Center Bridging (DCB).", - "longDescription": "The value of this property shall be a boolean indicating whether this controller is capable of Data Center Bridging (DCB).", + "description": "An indication of whether this controller is capable of data center bridging (DCB).", + "longDescription": "This property shall indicate whether this controller is capable of data center bridging (DCB).", "readonly": true, "type": [ "boolean", @@ -285,7 +256,7 @@ "description": "N_Port ID Virtualization (NPIV) capabilties for a controller.", "longDescription": "This type shall contain N_Port ID Virtualization (NPIV) capabilties for a controller.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -301,7 +272,7 @@ "properties": { "MaxDeviceLogins": { "description": "The maximum number of N_Port ID Virtualization (NPIV) logins allowed simultaneously from all ports on this controller.", - "longDescription": "The value of this property shall be the maximum number of N_Port ID Virtualization (NPIV) logins allowed simultaneously from all ports on this controller.", + "longDescription": "This property shall contain the maximum number of N_Port ID Virtualization (NPIV) logins allowed simultaneously from all ports on this controller.", "readonly": true, "type": [ "integer", @@ -310,7 +281,7 @@ }, "MaxPortLogins": { "description": "The maximum number of N_Port ID Virtualization (NPIV) logins allowed per physical port on this controller.", - "longDescription": "The value of this property shall be the maximum number of N_Port ID Virtualization (NPIV) logins allowed per physical port on this controller.", + "longDescription": "This property shall contain the maximum number of N_Port ID Virtualization (NPIV) logins allowed per physical port on this controller.", "readonly": true, "type": [ "integer", @@ -325,7 +296,7 @@ "description": "A NetworkAdapter represents the physical network adapter capable of connecting to a computer network. Examples include but are not limited to Ethernet, Fibre Channel, and converged network adapters.", "longDescription": "A NetworkAdapter represents the physical network adapter capable of connecting to a computer network. Examples include but are not limited to Ethernet, Fibre Channel, and converged network adapters.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -340,41 +311,35 @@ }, "properties": { "@odata.context": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/context" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/context" }, "@odata.etag": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/etag" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/etag" }, "@odata.id": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/id" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/id" }, "@odata.type": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/type" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/type" }, "Actions": { "$ref": "#/definitions/Actions", - "description": "The available actions for this resource.", - "longDescription": "The Actions property shall contain the available actions for this resource." + "description": "The available actions for this Resource.", + "longDescription": "This property shall contain the available actions for this Resource." }, "Assembly": { "$ref": "http://redfish.dmtf.org/schemas/v1/Assembly.json#/definitions/Assembly", - "description": "A reference to the Assembly resource associated with this adapter.", - "longDescription": "The value of this property shall be a link to a resource of type Assembly.", - "readonly": true + "description": "The link to the assembly Resource associated with this adapter.", + "longDescription": "This property shall contain a link to a Resource of type assembly.", + "readonly": true, + "versionAdded": "v1_1_0" }, "Controllers": { "description": "The set of network controllers ASICs that make up this NetworkAdapter.", "items": { - "anyOf": [ - { - "$ref": "#/definitions/Controllers" - }, - { - "type": "null" - } - ] + "$ref": "#/definitions/Controllers" }, - "longDescription": "The value of this property shall contain the set of network controllers ASICs that make up this NetworkAdapter.", + "longDescription": "This property shall contain the set of network controllers ASICs that make up this NetworkAdapter.", "type": "array" }, "Description": { @@ -394,7 +359,7 @@ }, "Manufacturer": { "description": "The manufacturer or OEM of this network adapter.", - "longDescription": "The value of this property shall contain a value that represents the manufacturer of the network adapter.", + "longDescription": "This property shall contain a value that represents the manufacturer of the network adapter.", "readonly": true, "type": [ "string", @@ -403,7 +368,7 @@ }, "Model": { "description": "The model string for this network adapter.", - "longDescription": "The value of this property shall contain the information about how the manufacturer references this network adapter.", + "longDescription": "This property shall contain the information about how the manufacturer refers to this network adapter.", "readonly": true, "type": [ "string", @@ -416,24 +381,24 @@ }, "NetworkDeviceFunctions": { "$ref": "http://redfish.dmtf.org/schemas/v1/NetworkDeviceFunctionCollection.json#/definitions/NetworkDeviceFunctionCollection", - "description": "A reference to the collection of NetworkDeviceFunctions associated with this NetworkAdapter.", - "longDescription": "The value of this property shall be a link to a collection of type NetworkDeviceFunctionCollection.", + "description": "The link to the collection of NetworkDeviceFunctions associated with this NetworkAdapter.", + "longDescription": "This property shall contain a link to a Resource Collection of type NetworkDeviceFunctionCollection.", "readonly": true }, "NetworkPorts": { "$ref": "http://redfish.dmtf.org/schemas/v1/NetworkPortCollection.json#/definitions/NetworkPortCollection", - "description": "A reference to the collection of NetworkPorts associated with this NetworkAdapter.", - "longDescription": "The value of this property shall be a link to a collection of type NetworkPortCollection.", + "description": "The link to the collection of NetworkPorts associated with this NetworkAdapter.", + "longDescription": "This property shall contain a link to a Resource Collection of type NetworkPortCollection.", "readonly": true }, "Oem": { "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem", - "description": "This is the manufacturer/provider specific extension moniker used to divide the Oem object into sections.", - "longDescription": "The value of this string shall be of the format for the reserved word *Oem*." + "description": "The OEM extension property.", + "longDescription": "This property shall contain the OEM extensions. All values for properties that this object contains shall conform to the Redfish Specification-described requirements." }, "PartNumber": { "description": "Part number for this network adapter.", - "longDescription": "The value of this property shall contain the part number for the network adapter as defined by the manufacturer.", + "longDescription": "This property shall contain the part number for the network adapter as defined by the manufacturer.", "readonly": true, "type": [ "string", @@ -442,7 +407,7 @@ }, "SKU": { "description": "The manufacturer SKU for this network adapter.", - "longDescription": "The value of this property shall contain the Stock Keeping Unit (SKU) for the network adapter.", + "longDescription": "This property shall contain the SKU for the network adapter.", "readonly": true, "type": [ "string", @@ -451,7 +416,7 @@ }, "SerialNumber": { "description": "The serial number for this network adapter.", - "longDescription": "The value of this property shall contain the serial number for the network adapter.", + "longDescription": "This property shall contain the serial number for the network adapter.", "readonly": true, "type": [ "string", @@ -460,8 +425,8 @@ }, "Status": { "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Status", - "description": "This property describes the status and health of the resource and its children.", - "longDescription": "This property shall contain any status or health properties of the resource." + "description": "The status and health of the Resource and its subordinate or dependent Resources.", + "longDescription": "This property shall contain any status or health properties of the Resource." } }, "required": [ @@ -477,7 +442,7 @@ "description": "NIC Partitioning capability, status, and configuration for a controller.", "longDescription": "This type shall contain the capability, status, and configuration values for a controller.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -492,32 +457,34 @@ }, "properties": { "NparCapable": { - "description": "Indicates whether or not NIC function partitioning is supported by a controller.", - "longDescription": "This property shall indicate the ability of a controller to support NIC function partitioning.", + "description": "An indication of whether the controller supports NIC function partitioning.", + "longDescription": "This property shall indicate whether the controller supports NIC function partitioning.", "readonly": true, "type": [ "boolean", "null" - ] + ], + "versionAdded": "v1_2_0" }, "NparEnabled": { - "description": "When true, NIC function partitioning is active on this controller.", - "longDescription": "This property shall indicate whether or not NIC function partitioning is active on this controller.", + "description": "An indication of whether NIC function partitioning is active on this controller.", + "longDescription": "This property shall indicate whether NIC function partitioning is active on this controller.", "readonly": false, "type": [ "boolean", "null" - ] + ], + "versionAdded": "v1_2_0" } }, "type": "object" }, "OemActions": { "additionalProperties": true, - "description": "The available OEM specific actions for this resource.", - "longDescription": "This type shall contain any additional OEM actions for this resource.", + "description": "The available OEM-specific actions for this Resource.", + "longDescription": "This type shall contain the available OEM-specific actions for this Resource.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -536,10 +503,10 @@ "ResetSettingsToDefault": { "additionalProperties": false, "description": "This action is to clear the settings back to factory defaults.", - "longDescription": "This action shall perform a reset of all active and pending settings back to factory default settings upon reset of the network adapter.", + "longDescription": "This action shall reset of all active and pending settings back to factory default settings upon reset of the network adapter.", "parameters": {}, "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -555,7 +522,7 @@ "properties": { "target": { "description": "Link to invoke action", - "format": "uri", + "format": "uri-reference", "type": "string" }, "title": { @@ -570,7 +537,7 @@ "description": "Single-Root Input/Output Virtualization (SR-IOV) capabilities.", "longDescription": "This type shall contain Single-Root Input/Output Virtualization (SR-IOV) capabilities.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -585,8 +552,8 @@ }, "properties": { "SRIOVVEPACapable": { - "description": "Whether this controller supports Single Root Input/Output Virtualization (SR-IOV) in Virtual Ethernet Port Aggregator (VEPA) mode.", - "longDescription": "The value of this property shall be a boolean indicating whether this controller supports Single Root Input/Output Virtualization (SR-IOV) in Virtual Ethernet Port Aggregator (VEPA) mode.", + "description": "An indication of whether this controller supports single root input/output virtualization (SR-IOV) in Virtual Ethernet Port Aggregator (VEPA) mode.", + "longDescription": "This property shall indicate whether this controller supports single root input/output virtualization (SR-IOV) in Virtual Ethernet Port Aggregator (VEPA) mode.", "readonly": true, "type": [ "boolean", @@ -601,7 +568,7 @@ "description": "A virtual function of a controller.", "longDescription": "This type shall describe the capability, status, and configuration values related to a virtual function for a controller.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -616,8 +583,8 @@ }, "properties": { "DeviceMaxCount": { - "description": "The maximum number of Virtual Functions (VFs) supported by this controller.", - "longDescription": "The value of this property shall be the maximum number of Virtual Functions (VFs) supported by this controller.", + "description": "The maximum number of virtual functions supported by this controller.", + "longDescription": "This property shall contain the maximum number of virtual functions supported by this controller.", "readonly": true, "type": [ "integer", @@ -625,8 +592,8 @@ ] }, "MinAssignmentGroupSize": { - "description": "The minimum number of Virtual Functions (VFs) that can be allocated or moved between physical functions for this controller.", - "longDescription": "The value of this property shall be the minimum number of Virtual Functions (VFs) that can be allocated or moved between physical functions for this controller.", + "description": "The minimum number of virtual functions that can be allocated or moved between physical functions for this controller.", + "longDescription": "This property shall contain the minimum number of virtual functions that can be allocated or moved between physical functions for this controller.", "readonly": true, "type": [ "integer", @@ -634,8 +601,8 @@ ] }, "NetworkPortMaxCount": { - "description": "The maximum number of Virtual Functions (VFs) supported per network port for this controller.", - "longDescription": "The value of this property shall be the maximum number of Virtual Functions (VFs) supported per network port for this controller.", + "description": "The maximum number of virtual functions supported per network port for this controller.", + "longDescription": "This property shall contain the maximum number of virtual functions supported per network port for this controller.", "readonly": true, "type": [ "integer", @@ -650,7 +617,7 @@ "description": "A Virtualization offload capability of a controller.", "longDescription": "This type shall describe the capability, status, and configuration values related to a virtualization offload for a controller.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -665,26 +632,12 @@ }, "properties": { "SRIOV": { - "anyOf": [ - { - "$ref": "#/definitions/SRIOV" - }, - { - "type": "null" - } - ], + "$ref": "#/definitions/SRIOV", "description": "Single-Root Input/Output Virtualization (SR-IOV) capabilities.", - "longDescription": "This object shall contain Single-Root Input/Output Virtualization (SR-IOV) capabilities." + "longDescription": "This property shall contain Single-Root Input/Output Virtualization (SR-IOV) capabilities." }, "VirtualFunction": { - "anyOf": [ - { - "$ref": "#/definitions/VirtualFunction" - }, - { - "type": "null" - } - ], + "$ref": "#/definitions/VirtualFunction", "description": "The virtual function of the controller.", "longDescription": "This property shall describe the capability, status, and configuration values related to the virtual function for this controller." } @@ -693,5 +646,6 @@ } }, "owningEntity": "DMTF", - "title": "#NetworkAdapter.v1_2_0.NetworkAdapter" + "release": "2019.2", + "title": "#NetworkAdapter.v1_3_0.NetworkAdapter" } \ No newline at end of file diff --git a/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/NetworkDeviceFunction/NetworkDeviceFunction.json b/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/NetworkDeviceFunction/NetworkDeviceFunction.json index 4f5dffbb..95902c84 100644 --- a/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/NetworkDeviceFunction/NetworkDeviceFunction.json +++ b/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/NetworkDeviceFunction/NetworkDeviceFunction.json @@ -1,15 +1,15 @@ { - "$id": "http://redfish.dmtf.org/schemas/v1/NetworkDeviceFunction.v1_3_1.json", + "$id": "http://redfish.dmtf.org/schemas/v1/NetworkDeviceFunction.v1_3_3.json", "$ref": "#/definitions/NetworkDeviceFunction", "$schema": "http://redfish.dmtf.org/schemas/v1/redfish-schema-v1.json", - "copyright": "Copyright 2014-2018 DMTF. For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright", + "copyright": "Copyright 2014-2019 DMTF. For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright", "definitions": { "Actions": { "additionalProperties": false, - "description": "The available actions for this resource.", - "longDescription": "This type shall contain the available actions for this resource.", + "description": "The available actions for this Resource.", + "longDescription": "This type shall contain the available actions for this Resource.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -25,8 +25,8 @@ "properties": { "Oem": { "$ref": "#/definitions/OemActions", - "description": "This property contains the available OEM specific actions for this resource.", - "longDescription": "This property shall contain any additional OEM actions for this resource.", + "description": "The available OEM-specific actions for this Resource.", + "longDescription": "This property shall contain the available OEM-specific actions for this Resource.", "versionAdded": "v1_1_0" } }, @@ -55,10 +55,10 @@ ], "enumDescriptions": { "Disabled": "Do not indicate to UEFI/BIOS that this device is bootable.", - "FibreChannel": "Boot this device using the embedded Fibre Channel support and configuration. Only applicable if the NetworkDeviceFunctionType is set to FibreChannel.", - "FibreChannelOverEthernet": "Boot this device using the embedded Fibre Channel over Ethernet (FCoE) boot support and configuration. Only applicable if the NetworkDeviceFunctionType is set to FibreChannelOverEthernet.", - "PXE": "Boot this device using the embedded PXE support. Only applicable if the NetworkDeviceFunctionType is set to Ethernet.", - "iSCSI": "Boot this device using the embedded iSCSI boot support and configuration. Only applicable if the NetworkDeviceFunctionType is set to iSCSI." + "FibreChannel": "Boot this device by using the embedded Fibre Channel support and configuration. Only applicable if the NetworkDeviceFunctionType is `FibreChannel`.", + "FibreChannelOverEthernet": "Boot this device by using the embedded Fibre Channel over Ethernet (FCoE) boot support and configuration. Only applicable if the NetworkDeviceFunctionType is `FibreChannelOverEthernet`.", + "PXE": "Boot this device by using the embedded PXE support. Only applicable if the NetworkDeviceFunctionType is `Ethernet`.", + "iSCSI": "Boot this device by using the embedded iSCSI boot support and configuration. Only applicable if the NetworkDeviceFunctionType is `iSCSI`." }, "type": "string" }, @@ -67,7 +67,7 @@ "description": "A Fibre Channel boot target configured for a network device function.", "longDescription": "This type shall describe a Fibre Channel boot target configured for a network device function.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -83,7 +83,7 @@ "properties": { "BootPriority": { "description": "The relative priority for this entry in the boot targets array.", - "longDescription": "The value of this property shall be the relative priority for this entry in the boot targets array. Lower numbers shall represent higher priority, with zero being the highest priority. The BootPriority shall be unique for all entries of the BootTargets array.", + "longDescription": "This property shall contain the relative priority for this entry in the boot targets array. Lower numbers shall represent higher priority, with zero being the highest priority. The BootPriority shall be unique for all entries of the BootTargets array.", "readonly": false, "type": [ "integer", @@ -91,8 +91,8 @@ ] }, "LUNID": { - "description": "The Logical Unit Number (LUN) ID to boot from on the device referred to by the corresponding WWPN.", - "longDescription": "The value of this property shall be the Logical Unit Number (LUN) ID to boot from on the device referred to by the corresponding WWPN.", + "description": "The logical unit number (LUN) ID from which to boot on the device to which the corresponding WWPN refers.", + "longDescription": "This property shall contain the logical unit number (LUN) ID from which to boot on the device to which the corresponding WWPN refers.", "readonly": false, "type": [ "string", @@ -100,8 +100,8 @@ ] }, "WWPN": { - "description": "The World-Wide Port Name to boot from.", - "longDescription": "The value of this property shall be World-Wide Port Name (WWPN) to boot from.", + "description": "The World Wide Port Name (WWPN) from which to boot.", + "longDescription": "This property shall contain World Wide Port Name (WWPN) from which to boot.", "readonly": false, "type": [ "string", @@ -113,10 +113,10 @@ }, "Ethernet": { "additionalProperties": false, - "description": "This type describes Ethernet capabilities, status, and configuration of a network device function.", + "description": "This type describes Ethernet capabilities, status, and configuration for a network device function.", "longDescription": "This type shall describe the Ethernet capabilities, status, and configuration values for a network device function.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -131,8 +131,9 @@ }, "properties": { "MACAddress": { - "description": "This is the currently configured MAC address of the (logical port) network device function.", - "longDescription": "The value of this property shall be the effective current MAC Address of this network device function. If an assignable MAC address is not supported, this is a read only alias of the PermanentMACAddress.", + "description": "The currently configured MAC address.", + "longDescription": "This property shall contain the effective current MAC address of this network device function. If an assignable MAC address is not supported, this is a read-only alias of the PermanentMACAddress.", + "pattern": "^([0-9A-Fa-f]{2}[:-]){5}([0-9A-Fa-f]{2})$", "readonly": false, "type": [ "string", @@ -140,8 +141,8 @@ ] }, "MTUSize": { - "description": "The Maximum Transmission Unit (MTU) configured for this network device function.", - "longDescription": "The Maximum Transmission Unit (MTU) configured for this Network Device Function. This value serves as a default for the OS driver when booting. The value only takes-effect on boot.", + "description": "The maximum transmission unit (MTU) configured for this network device function.", + "longDescription": "The maximum transmission unit (MTU) configured for this network device function. This value serves as a default for the OS driver when booting. The value only takes effect on boot.", "readonly": false, "type": [ "integer", @@ -149,8 +150,9 @@ ] }, "PermanentMACAddress": { - "description": "This is the permanent MAC address assigned to this network device function (physical function).", - "longDescription": "The value of this property shall be the Permanent MAC Address of this network device function (physical function). This value is typically programmed during the manufacturing time. This address is not assignable.", + "description": "The permanent MAC address assigned to this function.", + "longDescription": "This property shall contain the permanent MAC Address of this function. Typically, this value is programmed during manufacturing. This address is not assignable.", + "pattern": "^([0-9A-Fa-f]{2}[:-]){5}([0-9A-Fa-f]{2})$", "readonly": true, "type": [ "string", @@ -158,22 +160,15 @@ ] }, "VLAN": { - "anyOf": [ - { - "$ref": "http://redfish.dmtf.org/schemas/v1/VLanNetworkInterface.json#/definitions/VLAN" - }, - { - "type": "null" - } - ], - "description": "If this Network Interface supports more than one VLAN, this property is not present. VLANs collections appear in the Link section of this resource.", - "longDescription": "The value of this property shall be the VLAN for this interface. If this interface supports more than one VLAN, the VLAN property shall not be present and the VLANS collection link shall be present instead.", + "$ref": "http://redfish.dmtf.org/schemas/v1/VLanNetworkInterface.json#/definitions/VLAN", + "description": "If this network interface supports more than one VLAN, this property is not present. VLANs collections appear in the Link section of this Resource.", + "longDescription": "This property shall contain the VLAN for this interface. If this interface supports more than one VLAN, the VLAN property shall not be present and the VLANS collection link shall be present instead.", "versionAdded": "v1_3_0" }, "VLANs": { "$ref": "http://redfish.dmtf.org/schemas/v1/VLanNetworkInterfaceCollection.json#/definitions/VLanNetworkInterfaceCollection", - "description": "This is a reference to a collection of VLANs and is only used if the interface supports more than one VLANs.", - "longDescription": "The value of this property shall reference a collection of VLAN resources. If this property is used, the VLANEnabled and VLANId property shall not be used.", + "description": "The link to a collection of VLANs. This property is used only if the interface supports more than one VLAN.", + "longDescription": "This property shall contain a link to a collection of VLANs. If this property is used, the VLANEnabled and VLANId property shall not be used.", "readonly": true, "versionAdded": "v1_3_0" } @@ -182,10 +177,10 @@ }, "FibreChannel": { "additionalProperties": false, - "description": "This type describes Fibre Channel capabilities, status, and configuration of a network device function.", - "longDescription": "This object shall describe the Fibre Channel capabilities, status, and configuration values for a network device function.", + "description": "This type describes Fibre Channel capabilities, status, and configuration for a network device function.", + "longDescription": "This type shall describe the Fibre Channel capabilities, status, and configuration values for a network device function.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -200,8 +195,8 @@ }, "properties": { "AllowFIPVLANDiscovery": { - "description": "Whether the FCoE Initialization Protocol (FIP) is used for populating the FCoE VLAN Id.", - "longDescription": "For FCoE connections, the value of this property shall be a boolean indicating whether the FIP VLAN Discovery Protocol is used to determine the FCoE VLAN ID selected by the network device function for the FCoE connection. If true, and the FIP VLAN Discovery succeeds, the FCoEActiveVLANId property shall reflect the FCoE VLAN ID to be used for all FCoE traffic. If false, or if the FIP VLAN Discovery protocol fails, the FCoELocalVLANId shall be used for all FCoE traffic and the FCoEActiveVLANId shall reflect the FCoELocalVLANId.", + "description": "An indication of whether the FCoE Initialization Protocol (FIP) populates the FCoE VLAN ID.", + "longDescription": "For FCoE connections, this boolean property shall indicate whether the FIP VLAN Discovery Protocol determines the FCoE VLAN ID selected by the network device function for the FCoE connection. If `true` and the FIP VLAN discovery succeeds, the FCoEActiveVLANId property shall reflect the FCoE VLAN ID to use for all FCoE traffic. If `false` or if the FIP VLAN Discovery protocol fails, the FCoELocalVLANId shall be used for all FCoE traffic and the FCoEActiveVLANId shall reflect the FCoELocalVLANId.", "readonly": false, "type": [ "boolean", @@ -220,12 +215,12 @@ } ] }, - "longDescription": "The value of this property shall be an array of Fibre Channel boot targets configured for this network device function.", + "longDescription": "This property shall contain an array of Fibre Channel boot targets configured for this network device function.", "type": "array" }, "FCoEActiveVLANId": { "description": "The active FCoE VLAN ID.", - "longDescription": "For FCoE connections, the value of this property shall be null or a VLAN ID currently being used for FCoE traffic. When the FCoE link is down this value shall be null. When the FCoE link is up this value shall be either the FCoELocalVLANId property or a VLAN discovered via the FIP protocol.", + "longDescription": "For FCoE connections, this property shall contain `null` or a VLAN ID currently being used for FCoE traffic. When the FCoE link is down this value shall be null. When the FCoE link is up this value shall be either the FCoELocalVLANId property or a VLAN discovered through the FIP protocol.", "maximum": 4094, "minimum": 0, "readonly": true, @@ -236,7 +231,7 @@ }, "FCoELocalVLANId": { "description": "The locally configured FCoE VLAN ID.", - "longDescription": "For FCoE connections, the value of this property shall be the VLAN ID configured locally by setting this property. This value shall be used for FCoE traffic to this network device function during boot unless AllowFIPVLANDiscovery is true and a valid FCoE VLAN ID is found via the FIP VLAN Discovery Protocol.", + "longDescription": "For FCoE connections, this property shall contain the VLAN ID configured locally by setting this property. This value shall be used for FCoE traffic to this network device function during boot unless AllowFIPVLANDiscovery is `true` and a valid FCoE VLAN ID is found through the FIP VLAN Discovery Protocol.", "maximum": 4094, "minimum": 0, "readonly": false, @@ -246,8 +241,8 @@ ] }, "FibreChannelId": { - "description": "The Fibre Channel Id assigned by the switch for this interface.", - "longDescription": "This property shall indicate the Fibre Channel Id assigned by the switch for this interface.", + "description": "The Fibre Channel ID that the switch assigns for this interface.", + "longDescription": "This property shall indicate the Fibre Channel ID that the switch assigns for this interface.", "readonly": true, "type": [ "string", @@ -256,8 +251,8 @@ "versionAdded": "v1_3_0" }, "PermanentWWNN": { - "description": "This is the permanent WWNN address assigned to this network device function (physical function).", - "longDescription": "The value of this property shall be the permanent World-Wide Node Name (WWNN) of this network device function (physical function). This value is typically programmed during the manufacturing time. This address is not assignable.", + "description": "The permanent World Wide Node Name (WWNN) address assigned to this function.", + "longDescription": "This property shall contain the permanent World Wide Node Name (WWNN) of this function. Typically, this value is programmed during manufacturing. This address is not assignable.", "readonly": true, "type": [ "string", @@ -265,8 +260,8 @@ ] }, "PermanentWWPN": { - "description": "This is the permanent WWPN address assigned to this network device function (physical function).", - "longDescription": "The value of this property shall be the permanent World-Wide Port Name (WWPN) of this network device function (physical function). This value is typically programmed during the manufacturing time. This address is not assignable.", + "description": "The permanent World Wide Port Name (WWPN) address assigned to this function.", + "longDescription": "This property shall contain the permanent World Wide Port Name (WWPN) of this function. Typically, this value is programmed during manufacturing. This address is not assignable.", "readonly": true, "type": [ "string", @@ -274,8 +269,8 @@ ] }, "WWNN": { - "description": "This is the currently configured WWNN address of the network device function (physical function).", - "longDescription": "The value of this property shall be the effective current World-Wide Node Name (WWNN) of this network device function (physical function). If an assignable WWNN is not supported, this is a read only alias of the PermanentWWNN.", + "description": "The currently configured World Wide Node Name (WWNN) address of this function.", + "longDescription": "This property shall contain the effective current World Wide Node Name (WWNN) of this function. If an assignable WWNN is not supported, this is a read-only alias of the permanent WWNN.", "readonly": false, "type": [ "string", @@ -291,13 +286,13 @@ "type": "null" } ], - "description": "The configuration source of the WWNs for this connection (WWPN and WWNN).", - "longDescription": "The value of this property shall be the configuration source of the World-Wide Names (WWNs) for this connection (WWPN and WWNN).", + "description": "The configuration source of the World Wide Names (WWN) for this World Wide Node Name (WWNN) and World Wide Port Name (WWPN) connection.", + "longDescription": "This property shall contain the configuration source of the World Wide Name (WWN) for this World Wide Node Name (WWNN) and World Wide Port Name (WWPN) connection.", "readonly": false }, "WWPN": { - "description": "This is the currently configured WWPN address of the network device function (physical function).", - "longDescription": "The value of this property shall be the effective current World-Wide Port Name (WWPN) of this network device function (physical function). If an assignable WWPN is not supported, this is a read only alias of the PermanentWWPN.", + "description": "The currently configured World Wide Port Name (WWPN) address of this function.", + "longDescription": "This property shall contain the effective current World Wide Port Name (WWPN) of this function. If an assignable WWPN is not supported, this is a read-only alias of the permanent WWPN.", "readonly": false, "type": [ "string", @@ -320,10 +315,10 @@ }, "Links": { "additionalProperties": false, - "description": "Contains references to other resources that are related to this resource.", - "longDescription": "This type, as described by the Redfish Specification, shall contain references to resources that are related to, but not contained by (subordinate to), this resource.", + "description": "The links to other Resources that are related to this Resource.", + "longDescription": "This Redfish Specification-described type shall contain links to Resources that are related to but are not contained by or subordinate to this Resource.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -338,28 +333,28 @@ }, "properties": { "Endpoints": { - "description": "An array of references to endpoints associated with this network device function.", + "description": "An array of links to endpoints associated with this network device function.", "items": { "$ref": "http://redfish.dmtf.org/schemas/v1/Endpoint.json#/definitions/Endpoint" }, - "longDescription": "The type shall contain an array property who's members reference resources, of type Endpoint, which are associated with this network device function.", + "longDescription": "The type shall contain an array property. The members of this array are Resources of the Endpoint type, which are associated with this network device function.", "readonly": true, "type": "array", "versionAdded": "v1_2_0" }, "Endpoints@odata.count": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/count" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/count" }, "PCIeFunction": { "$ref": "http://redfish.dmtf.org/schemas/v1/PCIeFunction.json#/definitions/PCIeFunction", - "description": "A reference to the PCIeFunction associated with this Network Device Function.", - "longDescription": "The value of this property shall be a references of type PCIeFunction that represents the PCI-e Function associated with this Network Device Function.", + "description": "The link to the PCIe function associated with this network device function.", + "longDescription": "This property shall contain a link of the PCIeFunction type that represents the PCIe function associated with this network device function.", "readonly": true }, "PhysicalPortAssignment": { "$ref": "http://redfish.dmtf.org/schemas/v1/NetworkPort.json#/definitions/NetworkPort", - "description": "The physical port that this network device function is currently assigned to.", - "longDescription": "The value of this property shall be the physical port that this network device function is currently assigned to. This value shall be one of the AssignablePhysicalPorts array members.", + "description": "The physical port to which this network device function is currently assigned.", + "longDescription": "This property shall contain the physical port to which this network device function is currently assigned. This value shall be one of the AssignablePhysicalPorts array members.", "versionAdded": "v1_3_0" } }, @@ -367,10 +362,10 @@ }, "NetworkDeviceFunction": { "additionalProperties": false, - "description": "A Network Device Function represents a logical interface exposed by the network adapter.", - "longDescription": "A Network Device Function represents a logical interface exposed by the network adapter.", + "description": "The NetworkDeviceFunction schema represents a logical interface that a network adapter exposes.", + "longDescription": "A network device function represents a logical interface that a network adapter exposes.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -385,34 +380,34 @@ }, "properties": { "@odata.context": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/context" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/context" }, "@odata.etag": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/etag" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/etag" }, "@odata.id": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/id" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/id" }, "@odata.type": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/type" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/type" }, "Actions": { "$ref": "#/definitions/Actions", - "description": "The available actions for this resource.", - "longDescription": "The Actions property shall contain the available actions for this resource.", + "description": "The available actions for this Resource.", + "longDescription": "This property shall contain the available actions for this Resource.", "versionAdded": "v1_1_0" }, "AssignablePhysicalPorts": { - "description": "The array of physical port references that this network device function may be assigned to.", + "description": "An array of physical ports to which this network device function may be assigned.", "items": { "$ref": "http://redfish.dmtf.org/schemas/v1/NetworkPort.json#/definitions/NetworkPort" }, - "longDescription": "The value of this property shall be an array of physical port references that this network device function may be assigned to.", + "longDescription": "This property shall contain an array of physical ports to which this network device function may be assigned.", "readonly": true, "type": "array" }, "AssignablePhysicalPorts@odata.count": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/count" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/count" }, "BootMode": { "anyOf": [ @@ -424,7 +419,7 @@ } ], "description": "The boot mode configured for this network device function.", - "longDescription": "The value of this property shall be the boot mode configured for this network device function. If the value is not quot;Disabled\", this network device function shall be configured for boot using the specified technology.", + "longDescription": "This property shall contain the boot mode configured for this network device function. If the value is not `Disabled`, this network device function shall be configured for boot by using the specified technology.", "readonly": false }, "Description": { @@ -439,8 +434,8 @@ "readonly": true }, "DeviceEnabled": { - "description": "Whether the network device function is enabled.", - "longDescription": "The value of this property shall be a boolean indicating whether the network device function is enabled. Disabled network device functions shall not be enumerated or seen by the operating system.", + "description": "An indication of whether the network device function is enabled.", + "longDescription": "This property shall indicate whether the network device function is enabled. The operating system shall not enumerate or see disabled network device functions.", "readonly": false, "type": [ "boolean", @@ -448,28 +443,14 @@ ] }, "Ethernet": { - "anyOf": [ - { - "$ref": "#/definitions/Ethernet" - }, - { - "type": "null" - } - ], - "description": "Ethernet.", - "longDescription": "This object shall contain Ethernet capabilities, status, and configuration values for this network device function." + "$ref": "#/definitions/Ethernet", + "description": "The Ethernet capabilities, status, and configuration values for this network device function.", + "longDescription": "This property shall contain Ethernet capabilities, status, and configuration values for this network device function." }, "FibreChannel": { - "anyOf": [ - { - "$ref": "#/definitions/FibreChannel" - }, - { - "type": "null" - } - ], - "description": "Fibre Channel.", - "longDescription": "This object shall contain Fibre Channel capabilities, status, and configuration values for this network device function." + "$ref": "#/definitions/FibreChannel", + "description": "The Fibre Channel capabilities, status, and configuration values for this network device function.", + "longDescription": "This property shall contain Fibre Channel capabilities, status, and configuration values for this network device function." }, "Id": { "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Id", @@ -477,12 +458,12 @@ }, "Links": { "$ref": "#/definitions/Links", - "description": "Links.", - "longDescription": "Links for this NetworkDeviceFunction." + "description": "The links for this network device function.", + "longDescription": "This property shall contain the Links for this network device function." }, "MaxVirtualFunctions": { - "description": "The number of virtual functions (VFs) that are available for this Network Device Function.", - "longDescription": "The value of this property shall be the number of virtual functions (VFs) that are available for this Network Device Function.", + "description": "The number of virtual functions that are available for this network device function.", + "longDescription": "This property shall contain the number of virtual functions that are available for this network device function.", "readonly": true, "type": [ "integer", @@ -494,7 +475,7 @@ "readonly": true }, "NetDevFuncCapabilities": { - "description": "Capabilities of this network device function.", + "description": "An array of capabilities for this network device function.", "items": { "anyOf": [ { @@ -505,7 +486,7 @@ } ] }, - "longDescription": "This object shall contain an array of capabilities of this network device function.", + "longDescription": "This property shall contain an array of capabilities for this network device function.", "readonly": true, "type": "array" }, @@ -519,28 +500,30 @@ } ], "description": "The configured capability of this network device function.", - "longDescription": "The value of this property shall be the configured capability of this network device function.", + "longDescription": "This property shall contain the configured capability of this network device function.", "readonly": false }, "Oem": { "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem", - "description": "This is the manufacturer/provider specific extension moniker used to divide the Oem object into sections.", - "longDescription": "The value of this string shall be of the format for the reserved word *Oem*." + "description": "The OEM extension property.", + "longDescription": "This property shall contain the OEM extensions. All values for properties that this object contains shall conform to the Redfish Specification-described requirements." }, "PhysicalPortAssignment": { "$ref": "http://redfish.dmtf.org/schemas/v1/NetworkPort.json#/definitions/NetworkPort", - "description": "The physical port that this network device function is currently assigned to.", - "longDescription": "The value of this property shall be the physical port that this network device function is currently assigned to. This value shall be one of the AssignablePhysicalPorts array members.", - "readonly": true + "deprecated": "This property has been deprecated and moved to the Links section to avoid loops on expand.", + "description": "The physical port to which this network device function is currently assigned.", + "longDescription": "This property shall contain the physical port to which this network device function is currently assigned. This value shall be one of the AssignablePhysicalPorts array members.", + "readonly": true, + "versionDeprecated": "v1_3_0" }, "Status": { "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Status", - "description": "This property describes the status and health of the resource and its children.", - "longDescription": "This property shall contain any status or health properties of the resource." + "description": "The status and health of the Resource and its subordinate or dependent Resources.", + "longDescription": "This property shall contain any status or health properties of the Resource." }, "VirtualFunctionsEnabled": { - "description": "Whether Single Root I/O Virtualization (SR-IOV) Virual Functions (VFs) are enabled for this Network Device Function.", - "longDescription": "The value of this property shall be a boolean indicating whether Single Root I/O Virtualization (SR-IOV) Virual Functions (VFs) are enabled for this Network Device Function.", + "description": "An indication of whether single root input/output virtualization (SR-IOV) virtual functions are enabled for this network device function.", + "longDescription": "This property shall indicate whether single root input/output virtualization (SR-IOV) virtual functions are enabled for this network device function.", "readonly": true, "type": [ "boolean", @@ -548,16 +531,9 @@ ] }, "iSCSIBoot": { - "anyOf": [ - { - "$ref": "#/definitions/iSCSIBoot" - }, - { - "type": "null" - } - ], - "description": "iSCSI Boot.", - "longDescription": "This object shall contain iSCSI boot capabilities, status, and configuration values for this network device function." + "$ref": "#/definitions/iSCSIBoot", + "description": "The iSCSI boot capabilities, status, and configuration values for this network device function.", + "longDescription": "This property shall contain iSCSI boot capabilities, status, and configuration values for this network device function." } }, "required": [ @@ -587,10 +563,10 @@ }, "OemActions": { "additionalProperties": true, - "description": "The available OEM specific actions for this resource.", - "longDescription": "This type shall contain any additional OEM actions for this resource.", + "description": "The available OEM-specific actions for this Resource.", + "longDescription": "This type shall contain the available OEM-specific actions for this Resource.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -619,10 +595,10 @@ }, "iSCSIBoot": { "additionalProperties": false, - "description": "This type describes iSCSI boot capabilities, status, and configuration of a network device function.", + "description": "The iSCSI boot capabilities, status, and configuration for a network device function.", "longDescription": "This type shall describe the iSCSI boot capabilities, status, and configuration values for a network device function.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -646,12 +622,12 @@ } ], "description": "The iSCSI boot authentication method for this network device function.", - "longDescription": "The value of this property shall be the iSCSI boot authentication method for this network device function.", + "longDescription": "This property shall contain the iSCSI boot authentication method for this network device function.", "readonly": false }, "CHAPSecret": { "description": "The shared secret for CHAP authentication.", - "longDescription": "The value of this property shall be the shared secret for CHAP authentication.", + "longDescription": "This property shall contain the shared secret for CHAP authentication.", "readonly": false, "type": [ "string", @@ -659,8 +635,8 @@ ] }, "CHAPUsername": { - "description": "The username for CHAP authentication.", - "longDescription": "The value of this property shall behe username for CHAP authentication.", + "description": "The user name for CHAP authentication.", + "longDescription": "This property shall containhe user name for CHAP authentication.", "readonly": false, "type": [ "string", @@ -676,13 +652,13 @@ "type": "null" } ], - "description": "The type of IP address (IPv6 or IPv4) being populated in the iSCSIBoot IP address fields.", - "longDescription": "The value of this property shall behe type of IP address (IPv6 or IPv4) being populated in the iSCSIBoot IP address fields. Mixing of IPv6 and IPv4 addresses on the same network device function shall not be permissible.", + "description": "The type of IP address being populated in the iSCSIBoot IP address fields.", + "longDescription": "This property shall contain the type of IP address being populated in the iSCSIBoot IP address fields. Mixing IPv6 and IPv4 addresses on the same network device function shall not be permissible.", "readonly": false }, "IPMaskDNSViaDHCP": { - "description": "Whether the iSCSI boot initiator uses DHCP to obtain the iniator name, IP address, and netmask.", - "longDescription": "The value of this property shall be a boolean indicating whether the iSCSI boot initiator uses DHCP to obtain the iniator name, IP address, and netmask.", + "description": "An indication of whether the iSCSI boot initiator uses DHCP to obtain the initiator name, IP address, and netmask.", + "longDescription": "This property shall indicate whether the iSCSI boot initiator uses DHCP to obtain the initiator name, IP address, and netmask.", "readonly": false, "type": [ "boolean", @@ -691,7 +667,7 @@ }, "InitiatorDefaultGateway": { "description": "The IPv6 or IPv4 iSCSI boot default gateway.", - "longDescription": "The value of this property shall be the IPv6 or IPv4 iSCSI boot default gateway.", + "longDescription": "This property shall contain the IPv6 or IPv4 iSCSI boot default gateway.", "readonly": false, "type": [ "string", @@ -700,7 +676,7 @@ }, "InitiatorIPAddress": { "description": "The IPv6 or IPv4 address of the iSCSI initiator.", - "longDescription": "The value of this property shall be the IPv6 or IPv4 address of the iSCSI boot initiator.", + "longDescription": "This property shall contain the IPv6 or IPv4 address of the iSCSI boot initiator.", "readonly": false, "type": [ "string", @@ -709,7 +685,7 @@ }, "InitiatorName": { "description": "The iSCSI initiator name.", - "longDescription": "The value of this property shall be the iSCSI boot initiator name. The value of this property should match formats defined in RFC3720 or RFC3721.", + "longDescription": "This property shall contain the iSCSI boot initiator name. This property should match formats defined in RFC3720 or RFC3721.", "readonly": false, "type": [ "string", @@ -718,7 +694,7 @@ }, "InitiatorNetmask": { "description": "The IPv6 or IPv4 netmask of the iSCSI boot initiator.", - "longDescription": "The value of this property shall be the IPv6 or IPv4 netmask of the iSCSI boot initiator.", + "longDescription": "This property shall contain the IPv6 or IPv4 netmask of the iSCSI boot initiator.", "readonly": false, "type": [ "string", @@ -726,8 +702,8 @@ ] }, "MutualCHAPSecret": { - "description": "The CHAP Secret for 2-way CHAP authentication.", - "longDescription": "The value of this property shall be the CHAP Secret for 2-way CHAP authentication.", + "description": "The CHAP secret for two-way CHAP authentication.", + "longDescription": "This property shall contain the CHAP secret for two-way CHAP authentication.", "readonly": false, "type": [ "string", @@ -735,8 +711,8 @@ ] }, "MutualCHAPUsername": { - "description": "The CHAP Username for 2-way CHAP authentication.", - "longDescription": "The value of this property shall be the CHAP Username for 2-way CHAP authentication.", + "description": "The CHAP user name for two-way CHAP authentication.", + "longDescription": "This property shall contain the CHAP user name for two-way CHAP authentication.", "readonly": false, "type": [ "string", @@ -745,7 +721,7 @@ }, "PrimaryDNS": { "description": "The IPv6 or IPv4 address of the primary DNS server for the iSCSI boot initiator.", - "longDescription": "The value of this property shall be the IPv6 or IPv4 address of the primary DNS server for the iSCSI boot initiator.", + "longDescription": "This property shall contain the IPv6 or IPv4 address of the primary DNS server for the iSCSI boot initiator.", "readonly": false, "type": [ "string", @@ -754,7 +730,7 @@ }, "PrimaryLUN": { "description": "The logical unit number (LUN) for the primary iSCSI boot target.", - "longDescription": "The value of this property shall be the logical unit number (LUN) for the primary iSCSI boot target.", + "longDescription": "This property shall contain the logical unit number (LUN) for the primary iSCSI boot target.", "readonly": false, "type": [ "integer", @@ -762,8 +738,8 @@ ] }, "PrimaryTargetIPAddress": { - "description": "The IP address (IPv6 or IPv4) for the primary iSCSI boot target.", - "longDescription": "The value of this property shall be the IP address (IPv6 or IPv4) for the primary iSCSI boot target.", + "description": "The IPv4 or IPv6 address for the primary iSCSI boot target.", + "longDescription": "This property shall contain the IPv4 or IPv6 address for the primary iSCSI boot target.", "readonly": false, "type": [ "string", @@ -772,7 +748,7 @@ }, "PrimaryTargetName": { "description": "The name of the iSCSI primary boot target.", - "longDescription": "The value of this property shall be the name of the primary iSCSI boot target. The value of this property should match formats defined in RFC3720 or RFC3721.", + "longDescription": "This property shall contain the name of the primary iSCSI boot target. This property should match formats defined in RFC3720 or RFC3721.", "readonly": false, "type": [ "string", @@ -781,7 +757,7 @@ }, "PrimaryTargetTCPPort": { "description": "The TCP port for the primary iSCSI boot target.", - "longDescription": "The value of this property shall be the TCP port for the primary iSCSI boot target.", + "longDescription": "This property shall contain the TCP port for the primary iSCSI boot target.", "readonly": false, "type": [ "integer", @@ -789,8 +765,8 @@ ] }, "PrimaryVLANEnable": { - "description": "This indicates if the primary VLAN is enabled.", - "longDescription": "The value of this property shall be used to indicate if this VLAN is enabled for the primary iSCSI boot target.", + "description": "An indication of whether the primary VLAN is enabled.", + "longDescription": "This property shall indicate whether this VLAN is enabled for the primary iSCSI boot target.", "readonly": false, "type": [ "boolean", @@ -799,7 +775,7 @@ }, "PrimaryVLANId": { "description": "The 802.1q VLAN ID to use for iSCSI boot from the primary target.", - "longDescription": "The value of this property shall be the 802.1q VLAN ID to use for iSCSI boot from the primary target. This VLAN ID is only used if PrimaryVLANEnable is true.", + "longDescription": "This property shall contain the 802.1q VLAN ID to use for iSCSI boot from the primary target. This VLAN ID is only used if PrimaryVLANEnable is true.", "maximum": 4094, "minimum": 0, "readonly": false, @@ -809,8 +785,8 @@ ] }, "RouterAdvertisementEnabled": { - "description": "Whether IPv6 router advertisement is enabled for the iSCSI boot target.", - "longDescription": "The value of this property shall be a boolean indicating whether IPv6 router advertisement is enabled for the iSCSI boot target. This setting shall only apply to IPv6 configurations.", + "description": "An indication of whether IPv6 router advertisement is enabled for the iSCSI boot target.", + "longDescription": "This property shall indicate whether IPv6 router advertisement is enabled for the iSCSI boot target. This setting shall apply to only IPv6 configurations.", "readonly": false, "type": [ "boolean", @@ -819,7 +795,7 @@ }, "SecondaryDNS": { "description": "The IPv6 or IPv4 address of the secondary DNS server for the iSCSI boot initiator.", - "longDescription": "The value of this property shall be the IPv6 or IPv4 address of the secondary DNS server for the iSCSI boot initiator.", + "longDescription": "This property shall contain the IPv6 or IPv4 address of the secondary DNS server for the iSCSI boot initiator.", "readonly": false, "type": [ "string", @@ -828,7 +804,7 @@ }, "SecondaryLUN": { "description": "The logical unit number (LUN) for the secondary iSCSI boot target.", - "longDescription": "The value of this property shall be the logical unit number (LUN) for the secondary iSCSI boot target.", + "longDescription": "This property shall contain the logical unit number (LUN) for the secondary iSCSI boot target.", "readonly": false, "type": [ "integer", @@ -836,8 +812,8 @@ ] }, "SecondaryTargetIPAddress": { - "description": "The IP address (IPv6 or IPv4) for the secondary iSCSI boot target.", - "longDescription": "The value of this property shall be the IP address (IPv6 or IPv4) for the secondary iSCSI boot target.", + "description": "The IPv4 or IPv6 address for the secondary iSCSI boot target.", + "longDescription": "This property shall contain the IPv4 or IPv6 address for the secondary iSCSI boot target.", "readonly": false, "type": [ "string", @@ -846,7 +822,7 @@ }, "SecondaryTargetName": { "description": "The name of the iSCSI secondary boot target.", - "longDescription": "The value of this property shall be the name of the secondary iSCSI boot target. The value of this property should match formats defined in RFC3720 or RFC3721.", + "longDescription": "This property shall contain the name of the secondary iSCSI boot target. This property should match formats defined in RFC3720 or RFC3721.", "readonly": false, "type": [ "string", @@ -855,7 +831,7 @@ }, "SecondaryTargetTCPPort": { "description": "The TCP port for the secondary iSCSI boot target.", - "longDescription": "The value of this property shall be the TCP port for the secondary iSCSI boot target.", + "longDescription": "This property shall contain the TCP port for the secondary iSCSI boot target.", "readonly": false, "type": [ "integer", @@ -863,8 +839,8 @@ ] }, "SecondaryVLANEnable": { - "description": "This indicates if the secondary VLAN is enabled.", - "longDescription": "The value of this property shall be used to indicate if this VLAN is enabled for the secondary iSCSI boot target.", + "description": "An indication of whether the secondary VLAN is enabled.", + "longDescription": "This property shall indicate whether this VLAN is enabled for the secondary iSCSI boot target.", "readonly": false, "type": [ "boolean", @@ -873,7 +849,7 @@ }, "SecondaryVLANId": { "description": "The 802.1q VLAN ID to use for iSCSI boot from the secondary target.", - "longDescription": "The value of this property shall be the 802.1q VLAN ID to use for iSCSI boot from the secondary target. This VLAN ID is only used if SecondaryVLANEnable is true.", + "longDescription": "This property shall contain the 802.1q VLAN ID to use for iSCSI boot from the secondary target. This VLAN ID is only used if SecondaryVLANEnable is `true`.", "maximum": 4094, "minimum": 0, "readonly": false, @@ -883,8 +859,8 @@ ] }, "TargetInfoViaDHCP": { - "description": "Whether the iSCSI boot target name, LUN, IP address, and netmask should be obtained from DHCP.", - "longDescription": "The value of this property shall be a boolean indicating whether the iSCSI boot target name, LUN, IP address, and netmask should be obtained from DHCP.", + "description": "An indication of whether the iSCSI boot target name, LUN, IP address, and netmask should be obtained from DHCP.", + "longDescription": "This property shall indicate whether the iSCSI boot target name, LUN, IP address, and netmask should be obtained from DHCP.", "readonly": false, "type": [ "boolean", @@ -897,5 +873,5 @@ }, "owningEntity": "DMTF", "release": "2018.2", - "title": "#NetworkDeviceFunction.v1_3_1.NetworkDeviceFunction" + "title": "#NetworkDeviceFunction.v1_3_3.NetworkDeviceFunction" } \ No newline at end of file diff --git a/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/NetworkInterface/NetworkInterface.json b/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/NetworkInterface/NetworkInterface.json index 7300c019..d35d52bd 100644 --- a/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/NetworkInterface/NetworkInterface.json +++ b/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/NetworkInterface/NetworkInterface.json @@ -1,14 +1,15 @@ { + "$id": "http://redfish.dmtf.org/schemas/v1/NetworkInterface.v1_1_3.json", "$ref": "#/definitions/NetworkInterface", "$schema": "http://redfish.dmtf.org/schemas/v1/redfish-schema-v1.json", - "copyright": "Copyright 2014-2018 DMTF. For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright", + "copyright": "Copyright 2014-2019 DMTF. For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright", "definitions": { "Actions": { "additionalProperties": false, - "description": "The available actions for this resource.", - "longDescription": "This type shall contain the available actions for this resource.", + "description": "The available actions for this Resource.", + "longDescription": "This type shall contain the available actions for this Resource.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -24,18 +25,19 @@ "properties": { "Oem": { "$ref": "#/definitions/OemActions", - "description": "This property contains the available OEM specific actions for this resource.", - "longDescription": "This property shall contain any additional OEM actions for this resource." + "description": "The available OEM-specific actions for this Resource.", + "longDescription": "This property shall contain the available OEM-specific actions for this Resource.", + "versionAdded": "v1_1_0" } }, "type": "object" }, "Links": { "additionalProperties": false, - "description": "Contains references to other resources that are related to this resource.", - "longDescription": "This type, as described by the Redfish Specification, shall contain references to resources that are related to, but not contained by (subordinate to), this resource.", + "description": "The links to other Resources that are related to this Resource.", + "longDescription": "The Redfish Specification-described type shall contain links to Resources related to but not subordinate to this Resource.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -51,24 +53,24 @@ "properties": { "NetworkAdapter": { "$ref": "http://redfish.dmtf.org/schemas/v1/NetworkAdapter.json#/definitions/NetworkAdapter", - "description": "A reference to the NetworkAdapter which contains this NetworkInterface.", - "longDescription": "The value of this property shall be a reference to a resource of type NetworkAdapter that represents the physical container associated with this NetworkInterface.", + "description": "The link to the network adapter that contains this network interface.", + "longDescription": "This property shall contain a link to a Resource of type NetworkAdapter that represents the physical container associated with this NetworkInterface.", "readonly": true }, "Oem": { "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem", - "description": "Oem extension object.", - "longDescription": "This object represents the Oem property. All values for resources described by this schema shall comply to the requirements as described in the Redfish specification." + "description": "The OEM extension property.", + "longDescription": "This property shall contain the OEM extensions. All values for properties contained in this object shall conform to the Redfish Specification-described requirements." } }, "type": "object" }, "NetworkInterface": { "additionalProperties": false, - "description": "A NetworkInterface contains references linking NetworkAdapter, NetworkPort, and NetworkDeviceFunction resources and represents the functionality available to the containing system.", - "longDescription": "A NetworkInterface contains references linking NetworkAdapter, NetworkPort, and NetworkDeviceFunction resources and represents the functionality available to the containing system.", + "description": "The NetworkInterface schema describes links to the NetworkAdapter, NetworkPort, and NetworkDeviceFunction Resources and represents the functionality available to the containing system.", + "longDescription": "This Resource contains links to the NetworkAdapter, NetworkPort, and NetworkDeviceFunction Resources and represents the functionality available to the containing system.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -83,21 +85,22 @@ }, "properties": { "@odata.context": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/context" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/context" }, "@odata.etag": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/etag" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/etag" }, "@odata.id": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/id" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/id" }, "@odata.type": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/type" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/type" }, "Actions": { "$ref": "#/definitions/Actions", - "description": "The available actions for this resource.", - "longDescription": "The Actions property shall contain the available actions for this resource." + "description": "The available actions for this Resource.", + "longDescription": "This property shall contain the available actions for this Resource.", + "versionAdded": "v1_1_0" }, "Description": { "anyOf": [ @@ -116,7 +119,7 @@ }, "Links": { "$ref": "#/definitions/Links", - "description": "Links.", + "description": "The links.", "longDescription": "Links for this controller." }, "Name": { @@ -125,25 +128,25 @@ }, "NetworkDeviceFunctions": { "$ref": "http://redfish.dmtf.org/schemas/v1/NetworkDeviceFunctionCollection.json#/definitions/NetworkDeviceFunctionCollection", - "description": "A reference to the collection of NetworkDeviceFunctions associated with this NetworkInterface.", - "longDescription": "The value of this property shall be a link to a collection of type NetworkDeviceFunctionCollection.", + "description": "The link to the network device functions associated with this network interface.", + "longDescription": "This property shall contain a link to a Resource Collection of type NetworkDeviceFunctionCollection.", "readonly": true }, "NetworkPorts": { "$ref": "http://redfish.dmtf.org/schemas/v1/NetworkPortCollection.json#/definitions/NetworkPortCollection", - "description": "A reference to the collection of NetworkPorts associated with this NetworkInterface.", - "longDescription": "The value of this property shall be a link to a collection of type NetworkPortCollection.", + "description": "The link to the network ports associated with this network interface.", + "longDescription": "This property shall contain a link to a Resource Collection of type NetworkPortCollection.", "readonly": true }, "Oem": { "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem", - "description": "This is the manufacturer/provider specific extension moniker used to divide the Oem object into sections.", - "longDescription": "The value of this string shall be of the format for the reserved word *Oem*." + "description": "The OEM extension property.", + "longDescription": "This property shall contain the OEM extensions. All values for properties that this object contains shall conform to the Redfish Specification-described requirements." }, "Status": { "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Status", - "description": "This property describes the status and health of the resource and its children.", - "longDescription": "This property shall contain any status or health properties of the resource." + "description": "The status and health of the Resource and its subordinate or dependent Resources.", + "longDescription": "This property shall contain any status or health properties of the Resource." } }, "required": [ @@ -156,10 +159,10 @@ }, "OemActions": { "additionalProperties": true, - "description": "The available OEM specific actions for this resource.", - "longDescription": "This type shall contain any additional OEM actions for this resource.", + "description": "The available OEM-specific actions for this Resource.", + "longDescription": "This type shall contain the available OEM-specific actions for this Resource.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -177,5 +180,6 @@ } }, "owningEntity": "DMTF", - "title": "#NetworkInterface.v1_1_1.NetworkInterface" + "release": "2017.1", + "title": "#NetworkInterface.v1_1_3.NetworkInterface" } \ No newline at end of file diff --git a/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/NetworkPort/NetworkPort.json b/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/NetworkPort/NetworkPort.json index af053f2f..9deb19be 100644 --- a/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/NetworkPort/NetworkPort.json +++ b/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/NetworkPort/NetworkPort.json @@ -1,15 +1,15 @@ { - "$id": "http://redfish.dmtf.org/schemas/v1/NetworkPort.v1_2_1.json", + "$id": "http://redfish.dmtf.org/schemas/v1/NetworkPort.v1_2_3.json", "$ref": "#/definitions/NetworkPort", "$schema": "http://redfish.dmtf.org/schemas/v1/redfish-schema-v1.json", - "copyright": "Copyright 2014-2018 DMTF. For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright", + "copyright": "Copyright 2014-2019 DMTF. For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright", "definitions": { "Actions": { "additionalProperties": false, - "description": "The available actions for this resource.", - "longDescription": "This type shall contain the available actions for this resource.", + "description": "The available actions for this Resource.", + "longDescription": "This type shall contain the available actions for this Resource.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -25,8 +25,8 @@ "properties": { "Oem": { "$ref": "#/definitions/OemActions", - "description": "This property contains the available OEM specific actions for this resource.", - "longDescription": "This property shall contain any additional OEM actions for this resource.", + "description": "The available OEM-specific actions for this Resource.", + "longDescription": "This property shall contain the available OEM-specific actions for this Resource.", "versionAdded": "v1_1_0" } }, @@ -73,10 +73,10 @@ }, "NetDevFuncMaxBWAlloc": { "additionalProperties": false, - "description": "A maximum bandwidth allocation percentage for a Network Device Functions associated a port.", + "description": "A maximum bandwidth allocation percentage for a network device functions associated a port.", "longDescription": "This type shall describe a maximum bandwidth percentage allocation for a network device function associated with a port.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -92,7 +92,7 @@ "properties": { "MaxBWAllocPercent": { "description": "The maximum bandwidth allocation percentage allocated to the corresponding network device function instance.", - "longDescription": "The value of this property shall be the maximum bandwidth percentage allocation for the associated network device function.", + "longDescription": "This property shall contain the maximum bandwidth percentage allocation for the associated network device function.", "readonly": false, "type": [ "integer", @@ -102,8 +102,8 @@ }, "NetworkDeviceFunction": { "$ref": "http://redfish.dmtf.org/schemas/v1/NetworkDeviceFunction.json#/definitions/NetworkDeviceFunction", - "description": "A reference to the NetworkDeviceFunction associated with this bandwidth setting of this Network Port.", - "longDescription": "The value of this property shall be a reference of type NetworkDeviceFunction that represents the Network Device Function associated with this bandwidth setting of this Network Port.", + "description": "The link to the NetworkDeviceFunction associated with this bandwidth setting of this network port.", + "longDescription": "This property shall contain a link of the NetworkDeviceFunction type that represents the network device function associated with this bandwidth setting of this network port.", "readonly": true } }, @@ -111,10 +111,10 @@ }, "NetDevFuncMinBWAlloc": { "additionalProperties": false, - "description": "A minimum bandwidth allocation percentage for a Network Device Functions associated a port.", + "description": "A minimum bandwidth allocation percentage for a network device functions associated a port.", "longDescription": "This type shall describe a minimum bandwidth percentage allocation for a network device function associated with a port.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -130,7 +130,7 @@ "properties": { "MinBWAllocPercent": { "description": "The minimum bandwidth allocation percentage allocated to the corresponding network device function instance.", - "longDescription": "The value of this property shall be the minimum bandwidth percentage allocation for the associated network device function. The sum total of all minimum percentages shall not exceed 100.", + "longDescription": "This property shall contain the minimum bandwidth percentage allocation for the associated network device function. The sum total of all minimum percentages shall not exceed 100.", "readonly": false, "type": [ "integer", @@ -140,8 +140,8 @@ }, "NetworkDeviceFunction": { "$ref": "http://redfish.dmtf.org/schemas/v1/NetworkDeviceFunction.json#/definitions/NetworkDeviceFunction", - "description": "A reference to the NetworkDeviceFunction associated with this bandwidth setting of this Network Port.", - "longDescription": "The value of this property shall be a reference of type NetworkDeviceFunction that represents the Network Device Function associated with this bandwidth setting of this Network Port.", + "description": "The link to the NetworkDeviceFunction associated with this bandwidth setting of this network port.", + "longDescription": "This property shall contain a link of the NetworkDeviceFunction type that represents the network device function associated with this bandwidth setting of this network port.", "readonly": true } }, @@ -149,10 +149,10 @@ }, "NetworkPort": { "additionalProperties": false, - "description": "A Network Port represents a discrete physical port capable of connecting to a network.", - "longDescription": "A Network Port represents a discrete physical port capable of connecting to a network.", + "description": "A network port, which is a discrete physical port that can connect to a network.", + "longDescription": "A network port represents a discrete physical port that can connect to a network.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -167,21 +167,21 @@ }, "properties": { "@odata.context": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/context" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/context" }, "@odata.etag": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/etag" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/etag" }, "@odata.id": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/id" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/id" }, "@odata.type": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/type" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/type" }, "Actions": { "$ref": "#/definitions/Actions", - "description": "The available actions for this resource.", - "longDescription": "The Actions property shall contain the available actions for this resource.", + "description": "The available actions for this Resource.", + "longDescription": "This property shall contain the available actions for this Resource.", "versionAdded": "v1_1_0" }, "ActiveLinkTechnology": { @@ -193,25 +193,25 @@ "type": "null" } ], - "description": "Network Port Active Link Technology.", - "longDescription": "The value of this property shall be the configured link technology of this port.", + "description": "Network port active link technology.", + "longDescription": "This property shall contain the configured link technology of this port.", "readonly": false }, "AssociatedNetworkAddresses": { - "description": "The array of configured network addresses (MAC or WWN) that are associated with this Network Port, including the programmed address of the lowest numbered Network Device Function, the configured but not active address if applicable, the address for hardware port teaming, or other network addresses.", + "description": "An array of configured MAC or WWN network addresses that are associated with this network port, including the programmed address of the lowest numbered network device function, the configured but not active address, if applicable, the address for hardware port teaming, or other network addresses.", "items": { "type": [ "string", "null" ] }, - "longDescription": "The value of this property shall be an array of configured network addresses that are associated with this network port, including the programmed address of the lowest numbered network device function, the configured but not active address if applicable, the address for hardware port teaming, or other network addresses.", + "longDescription": "This property shall contain an array of configured network addresses that are associated with this network port, including the programmed address of the lowest numbered network device function, the configured but not active address if applicable, the address for hardware port teaming, or other network addresses.", "readonly": true, "type": "array" }, "CurrentLinkSpeedMbps": { - "description": "Network Port Current Link Speed.", - "longDescription": "The value of this property shall be the current configured link speed of this port.", + "description": "Network port current link speed.", + "longDescription": "This property shall contain the current configured link speed of this port.", "readonly": false, "type": [ "integer", @@ -232,8 +232,8 @@ "readonly": true }, "EEEEnabled": { - "description": "Whether IEEE 802.3az Energy Efficient Ethernet (EEE) is enabled for this network port.", - "longDescription": "The value of this property shall be a boolean indicating whether IEEE 802.3az Energy Efficient Ethernet (EEE) is enabled for this network port.", + "description": "An indication of whether IEEE 802.3az Energy-Efficient Ethernet (EEE) is enabled for this network port.", + "longDescription": "This property shall indicate whether IEEE 802.3az Energy-Efficient Ethernet (EEE) is enabled for this network port.", "readonly": false, "type": [ "boolean", @@ -259,8 +259,8 @@ "type": "null" } ], - "description": "This is the connection type of this port.", - "longDescription": "The value of this property shall be the connection type for this port.", + "description": "The connection type of this port.", + "longDescription": "This property shall contain the connection type for this port.", "readonly": true, "versionAdded": "v1_2_0" }, @@ -274,7 +274,7 @@ } ], "description": "The locally configured 802.3x flow control setting for this network port.", - "longDescription": "The value of this property shall be the locally configured 802.3x flow control setting for this network port.", + "longDescription": "This property shall contain the locally configured 802.3x flow control setting for this network port.", "readonly": false }, "FlowControlStatus": { @@ -287,7 +287,7 @@ } ], "description": "The 802.3x flow control behavior negotiated with the link partner for this network port (Ethernet-only).", - "longDescription": "The value of this property shall be the 802.3x flow control behavior negotiated with the link partner for this network port (Ethernet-only).", + "longDescription": "This property shall contain the 802.3x flow control behavior negotiated with the link partner for this network port (Ethernet-only).", "readonly": true }, "Id": { @@ -304,12 +304,12 @@ } ], "description": "The status of the link between this port and its link partner.", - "longDescription": "The value of this property shall be the link status between this port and its link partner.", + "longDescription": "This property shall contain the link status between this port and its link partner.", "readonly": true }, "MaxFrameSize": { "description": "The maximum frame size supported by the port.", - "longDescription": "The value of this property shall be the maximum frame size supported by the port.", + "longDescription": "This property shall contain the maximum frame size supported by the port.", "readonly": true, "type": [ "integer", @@ -323,38 +323,24 @@ "readonly": true }, "NetDevFuncMaxBWAlloc": { - "description": "The array of maximum bandwidth allocation percentages for the Network Device Functions associated with this port.", + "description": "An array of maximum bandwidth allocation percentages for the network device functions associated with this port.", "items": { - "anyOf": [ - { - "$ref": "#/definitions/NetDevFuncMaxBWAlloc" - }, - { - "type": "null" - } - ] + "$ref": "#/definitions/NetDevFuncMaxBWAlloc" }, - "longDescription": "The value of this property shall be an array of maximum bandwidth allocation percentages for the Network Device Functions associated with this port.", + "longDescription": "This property shall contain an array of maximum bandwidth allocation percentages for the network device functions associated with this port.", "type": "array" }, "NetDevFuncMinBWAlloc": { - "description": "The array of minimum bandwidth allocation percentages for the Network Device Functions associated with this port.", + "description": "An array of minimum bandwidth allocation percentages for the network device functions associated with this port.", "items": { - "anyOf": [ - { - "$ref": "#/definitions/NetDevFuncMinBWAlloc" - }, - { - "type": "null" - } - ] + "$ref": "#/definitions/NetDevFuncMinBWAlloc" }, - "longDescription": "The value of this property shall be an array of minimum bandwidth percentage allocations for each of the network device functions associated with this port.", + "longDescription": "This property shall contain an array of minimum bandwidth percentage allocations for each of the network device functions associated with this port.", "type": "array" }, "NumberDiscoveredRemotePorts": { "description": "The number of ports not on this adapter that this port has discovered.", - "longDescription": "The value of this property shall be the number of ports not on this adapter that this port has discovered.", + "longDescription": "This property shall contain the number of ports not on this adapter that this port has discovered.", "readonly": true, "type": [ "integer", @@ -364,12 +350,12 @@ }, "Oem": { "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem", - "description": "This is the manufacturer/provider specific extension moniker used to divide the Oem object into sections.", - "longDescription": "The value of this string shall be of the format for the reserved word *Oem*." + "description": "The OEM extension property.", + "longDescription": "This property shall contain the OEM extensions. All values for properties that this object contains shall conform to the Redfish Specification-described requirements." }, "PhysicalPortNumber": { "description": "The physical port number label for this port.", - "longDescription": "The value of this property shall be the physical port number on the network adapter hardware that this Network Port corresponds to. This value should match a value visible on the hardware. When HostPortEnabled and ManagementPortEnabled are both \"false\", the port shall not establish physical link.", + "longDescription": "This property shall contain the physical port number on the network adapter hardware that this network port corresponds to. This value should match a value visible on the hardware.", "readonly": true, "type": [ "string", @@ -378,7 +364,7 @@ }, "PortMaximumMTU": { "description": "The largest maximum transmission unit (MTU) that can be configured for this network port.", - "longDescription": "The value of this property shall be the largest maximum transmission unit (MTU) that can be configured for this network port.", + "longDescription": "This property shall contain the largest maximum transmission unit (MTU) that can be configured for this network port.", "readonly": true, "type": [ "integer", @@ -386,8 +372,8 @@ ] }, "SignalDetected": { - "description": "Whether or not the port has detected enough signal on enough lanes to establish link.", - "longDescription": "The value of this property shall be a boolean indicating whether the port has detected enough signal on enough lanes to establish link.", + "description": "An indication of whether the port has detected enough signal on enough lanes to establish a link.", + "longDescription": "This property shall indicate whether the port has detected enough signal on enough lanes to establish a link.", "readonly": true, "type": [ "boolean", @@ -396,8 +382,8 @@ }, "Status": { "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Status", - "description": "This property describes the status and health of the resource and its children.", - "longDescription": "This property shall contain any status or health properties of the resource." + "description": "The status and health of the Resource and its subordinate or dependent Resources.", + "longDescription": "This property shall contain any status or health properties of the Resource." }, "SupportedEthernetCapabilities": { "description": "The set of Ethernet capabilities that this port supports.", @@ -411,28 +397,21 @@ } ] }, - "longDescription": "The value of this property shall be an array of zero or more Ethernet capabilities supported by this port.", + "longDescription": "This property shall contain an array of zero or more Ethernet capabilities supported by this port.", "readonly": true, "type": "array" }, "SupportedLinkCapabilities": { - "description": "The self-described link capabilities of this port.", + "description": "The link capabilities of this port.", "items": { - "anyOf": [ - { - "$ref": "#/definitions/SupportedLinkCapabilities" - }, - { - "type": "null" - } - ] + "$ref": "#/definitions/SupportedLinkCapabilities" }, - "longDescription": "This object shall describe the static capabilities of the port, irrespective of transient conditions such as cabling, interface module presence, or remote link parter status or configuration.", + "longDescription": "This property shall describe the static capabilities of the port, irrespective of transient conditions such as cabling, interface module presence, or remote link parter status or configuration.", "type": "array" }, "VendorId": { - "description": "The Vendor Identification for this port.", - "longDescription": "This property shall indicate the Vendor Identification string information as provided by the manufacturer of this port.", + "description": "The vendor Identification for this port.", + "longDescription": "This property shall indicate the vendor Identification string information as provided by the manufacturer of this port.", "readonly": true, "type": [ "string", @@ -441,8 +420,8 @@ "versionAdded": "v1_2_0" }, "WakeOnLANEnabled": { - "description": "Whether Wake on LAN (WoL) is enabled for this network port.", - "longDescription": "The value of this property shall be a boolean indicating whether Wake on LAN (WoL) is enabled for this network port.", + "description": "An indication of whether Wake on LAN (WoL) is enabled for this network port.", + "longDescription": "This property shall indicate whether Wake on LAN (WoL) is enabled for this network port.", "readonly": false, "type": [ "boolean", @@ -460,10 +439,10 @@ }, "OemActions": { "additionalProperties": true, - "description": "The available OEM specific actions for this resource.", - "longDescription": "This type shall contain any additional OEM actions for this resource.", + "description": "The available OEM-specific actions for this Resource.", + "longDescription": "This type shall contain the available OEM-specific actions for this Resource.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -492,7 +471,7 @@ "enumDescriptions": { "ExtenderFabric": "This port connection type is an extender fabric port.", "Generic": "This port connection type is a generic fabric port.", - "NPort": "This port connects via an N-Port to a switch.", + "NPort": "This port connects through an N-Port to a switch.", "NotConnected": "This port is not connected.", "PointToPoint": "This port connects in a Point-to-point configuration.", "PrivateLoop": "This port connects in a private loop configuration.", @@ -506,17 +485,17 @@ "EEE" ], "enumDescriptions": { - "EEE": "IEEE 802.3az Energy Efficient Ethernet (EEE) is supported on this port.", + "EEE": "IEEE 802.3az Energy-Efficient Ethernet (EEE) is supported on this port.", "WakeOnLAN": "Wake on LAN (WoL) is supported on this port." }, "type": "string" }, "SupportedLinkCapabilities": { "additionalProperties": false, - "description": "The self-described link capabilities of an assocaited port.", + "description": "The link capabilities of an assocaited port.", "longDescription": "This type shall describe the static capabilities of an associated port, irrespective of transient conditions such as cabling, interface module presence, or remote link parter status or configuration.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -531,8 +510,8 @@ }, "properties": { "AutoSpeedNegotiation": { - "description": "Indicates whether the port has the capability to auto negotiate speed.", - "longDescription": "The value of this property shall be indicate whether the port is capable of auto-negotiating speed.", + "description": "An indication of whether the port is capable of auto-negotiating speed.", + "longDescription": "This property shall indicate whether the port is capable of auto-negotiating speed.", "readonly": true, "type": [ "boolean", @@ -541,14 +520,14 @@ "versionAdded": "v1_2_0" }, "CapableLinkSpeedMbps": { - "description": "The self-described link network speed capabilities of this port. Note: Should this be a new enumerated type of link speeds?.", + "description": "The set of link speed capabilities of this port.", "items": { "type": [ "integer", "null" ] }, - "longDescription": "The value of this property shall be all of the possible network link speed capabilities of this port.", + "longDescription": "This property shall contain all of the possible network link speed capabilities of this port.", "readonly": true, "type": "array", "versionAdded": "v1_2_0" @@ -562,19 +541,21 @@ "type": "null" } ], - "description": "The self-described link network technology capabilities of this port.", - "longDescription": "The value of this property shall be a network technology capability of this port.", + "description": "The link network technology capabilities of this port.", + "longDescription": "This property shall contain a network technology capability of this port.", "readonly": true }, "LinkSpeedMbps": { + "deprecated": "This property has been deprecated in favor of the CapableLinkSpeedMbps.", "description": "The speed of the link in Mbps when this link network technology is active.", - "longDescription": "The value of this property shall be the speed of the link in megabits per second (Mbps) for this port when this link network technology is active.", + "longDescription": "This property shall contain the speed of the link in megabits per second (Mbps) for this port when this link network technology is active.", "readonly": true, "type": [ "integer", "null" ], - "units": "Mbit/s" + "units": "Mbit/s", + "versionDeprecated": "v1_2_0" } }, "type": "object" @@ -582,5 +563,5 @@ }, "owningEntity": "DMTF", "release": "2018.2", - "title": "#NetworkPort.v1_2_1.NetworkPort" + "title": "#NetworkPort.v1_2_3.NetworkPort" } \ No newline at end of file diff --git a/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/OemAccountService/index.json b/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/OemAccountService/index.json new file mode 100644 index 00000000..2311d83b --- /dev/null +++ b/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/OemAccountService/index.json @@ -0,0 +1,111 @@ +{ + "$id": "http://redfish.dmtf.org/schemas/v1/OemAccountService.v1_0_0.json", + "$schema": "http://redfish.dmtf.org/schemas/v1/redfish-schema-v1.json", + "copyright": "Copyright 2014-2019 DMTF. For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright", + "definitions": { + "AccountService": { + "additionalProperties": false, + "description": "OEM Extension for AccountService", + "longDescription": "OEM Extension for AccountService providing info about TLS Auth.", + "patternProperties": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { + "description": "This property shall specify a valid odata or Redfish property.", + "type": [ + "array", + "boolean", + "integer", + "number", + "null", + "object", + "string" + ] + } + }, + "properties": { + "AuthMethods": { + "anyOf": [ + { + "$ref": "#/definitions/AuthMethodsConfig" + }, + { + "type": "null" + } + ], + "description": "Authorization Methods configuration.", + "longDescription": "Configuration describing which auth methods are enabled." + } + }, + "type": "object" + }, + "AuthMethodsConfig": { + "additionalProperties": false, + "description": "Authorization Methods configuration.", + "longDescription": "Configuration describing which auth methods are enabled.", + "patternProperties": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { + "description": "This property shall specify a valid odata or Redfish property.", + "type": [ + "array", + "boolean", + "integer", + "number", + "null", + "object", + "string" + ] + } + }, + "properties": { + "BasicAuth": { + "description": "Indicates whether BasicAuth authorization is enabled.", + "longDescription": "The value of this property shall be a boolean indicating whether BasicAuth authorization is enabled.", + "readonly": false, + "type": [ + "boolean", + "null" + ] + }, + "Cookie": { + "description": "Indicates whether Cookie authorization is enabled.", + "longDescription": "The value of this property shall be a boolean indicating whether Cookie authorization is enabled.", + "readonly": false, + "type": [ + "boolean", + "null" + ] + }, + "SessionToken": { + "description": "Indicates whether SessionToken authorization is enabled.", + "longDescription": "The value of this property shall be a boolean indicating whether SessionToken authorization is enabled.", + "readonly": false, + "type": [ + "boolean", + "null" + ] + }, + "TLS": { + "description": "Indicates whether TLS authorization is enabled.", + "longDescription": "The value of this property shall be a boolean indicating whether TLS authorization is enabled.", + "readonly": false, + "type": [ + "boolean", + "null" + ] + }, + "XToken": { + "description": "Indicates whether XToken authorization is enabled.", + "longDescription": "The value of this property shall be a boolean indicating whether XToken authorization is enabled.", + "readonly": false, + "type": [ + "boolean", + "null" + ] + } + }, + "type": "object" + } + }, + "owningEntity": "OpenBMC", + "release": "1.0", + "title": "#OemAccountService.v1_0_0" +} \ No newline at end of file diff --git a/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/OemComputerSystem/index.json b/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/OemComputerSystem/index.json new file mode 100644 index 00000000..1423af5e --- /dev/null +++ b/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/OemComputerSystem/index.json @@ -0,0 +1,111 @@ +{ + "$id": "http://redfish.dmtf.org/schemas/v1/OemComputerSystem.json", + "$schema": "http://redfish.dmtf.org/schemas/v1/redfish-schema-v1.json", + "copyright": "Copyright 2014-2019 DMTF. For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright", + "definitions": { + "FirmwareProvisioning": { + "additionalProperties": false, + "description": "Configuration data for platform firmware provisioning.", + "patternProperties": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { + "description": "This property shall specify a valid odata or Redfish property.", + "type": [ + "array", + "boolean", + "integer", + "number", + "null", + "object", + "string" + ] + } + }, + "properties": { + "ProvisioningStatus": { + "anyOf": [ + { + "$ref": "#/definitions/FirmwareProvisioningStatus" + }, + { + "type": "null" + } + ], + "description": "This indicates platform firmware provisioning state.", + "longDescription": "The value of this property indicating provisioning status of platform firmware.", + "readonly": true + } + }, + "type": "object" + }, + "FirmwareProvisioningStatus": { + "enum": [ + "NotProvisioned", + "ProvisionedButNotLocked", + "ProvisionedAndLocked" + ], + "enumDescriptions": { + "NotProvisioned": "Platform firmware is not provisioned.", + "ProvisionedAndLocked": "Platform firmware is provisioned and locked.", + "ProvisionedButNotLocked": "Platform firmware is provisioned but not locked." + }, + "enumLongDescriptions": { + "NotProvisioned": "Platform firmware is not provisioned.", + "ProvisionedAndLocked": "Platform firmware is provisioned and locked. So re-provisioning is not allowed in this state.", + "ProvisionedButNotLocked": "Platform firmware is provisioned but not locked. So re-provisioning is allowed in this state." + }, + "type": "string" + }, + "Oem": { + "additionalProperties": true, + "description": "OemComputerSystem Oem properties.", + "patternProperties": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { + "description": "This property shall specify a valid odata or Redfish property.", + "type": [ + "array", + "boolean", + "integer", + "number", + "null", + "object", + "string" + ] + } + }, + "properties": { + "OpenBmc": { + "anyOf": [ + { + "$ref": "#/definitions/OpenBmc" + }, + { + "type": "null" + } + ] + } + }, + "type": "object" + }, + "OpenBmc": { + "additionalProperties": true, + "description": "Oem properties for OpenBmc.", + "patternProperties": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { + "description": "This property shall specify a valid odata or Redfish property.", + "type": [ + "array", + "boolean", + "integer", + "number", + "null", + "object", + "string" + ] + } + }, + "properties": {}, + "type": "object" + } + }, + "title": "#OemComputerSystem" +} diff --git a/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/OemCrashdump/OemCrashdump.json b/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/OemCrashdump/OemCrashdump.json new file mode 100644 index 00000000..604b7195 --- /dev/null +++ b/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/OemCrashdump/OemCrashdump.json @@ -0,0 +1,120 @@ +{ + "$id": "http://redfish.dmtf.org/schemas/v1/OemCrashdump.v1_0_0.json", + "$schema": "http://redfish.dmtf.org/schemas/v1/redfish-schema-v1.json", + "copyright": "Copyright 2014-2019 DMTF. For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright", + "definitions": { + "Actions": { + "additionalProperties": false, + "patternProperties": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { + "description": "This property shall specify a valid odata or Redfish property.", + "type": [ + "array", + "boolean", + "integer", + "number", + "null", + "object", + "string" + ] + } + }, + "properties": { + "#Crashdump.OnDemand": { + "$ref": "#/definitions/OnDemand" + }, + "#Crashdump.SendRawPeci": { + "$ref": "#/definitions/SendRawPeci" + } + }, + "type": "object" + }, + "OnDemand": { + "additionalProperties": false, + "description": "This action is used to trigger a new on-demand crashdump.", + "longDescription": "This action is used to trigger a new on-demand crashdump which is returned immediately.", + "parameters": {}, + "patternProperties": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { + "description": "This property shall specify a valid odata or Redfish property.", + "type": [ + "array", + "boolean", + "integer", + "number", + "null", + "object", + "string" + ] + } + }, + "properties": { + "target": { + "description": "Link to invoke action", + "format": "uri-reference", + "type": "string" + }, + "title": { + "description": "Friendly action name", + "type": "string" + } + }, + "type": "object" + }, + "SendRawPeci": { + "additionalProperties": false, + "description": "This action is used to send a raw PECI command to the CPU.", + "longDescription": "This action is used to send a raw PECI command to the CPU.", + "parameters": { + "ClientAddress": { + "description": "PECI client address for the command.", + "longDescription": "This defines the PECI client address that is the target for this command.", + "requiredParameter": true, + "type": "integer" + }, + "PECICommand": { + "description": "The raw bytes to be sent as the PECI command.", + "items": { + "type": "integer" + }, + "longDescription": "This defines an array of raw data that is made up of the raw bytes of the PECI command to be sent.", + "requiredParameter": true, + "type": "array" + }, + "ReadLength": { + "description": "Read length parameter for the command", + "longDescription": "This defines the read length parameter for this command.", + "requiredParameter": true, + "type": "integer" + } + }, + "patternProperties": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { + "description": "This property shall specify a valid odata or Redfish property.", + "type": [ + "array", + "boolean", + "integer", + "number", + "null", + "object", + "string" + ] + } + }, + "properties": { + "target": { + "description": "Link to invoke action", + "format": "uri-reference", + "type": "string" + }, + "title": { + "description": "Friendly action name", + "type": "string" + } + }, + "type": "object" + } + }, + "title": "#OemCrashdump.v1_0_0" +} diff --git a/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/OemCrashdump/index.json b/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/OemCrashdump/index.json new file mode 100644 index 00000000..7a19e8ef --- /dev/null +++ b/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/OemCrashdump/index.json @@ -0,0 +1,20 @@ +{ + "@odata.context": "/redfish/v1/$metadata#JsonSchemaFile.JsonSchemaFile", + "@odata.id": "/redfish/v1/JsonSchemas/OemCrashdump", + "@odata.type": "#JsonSchemaFile.v1_0_2.JsonSchemaFile", + "Name": "Oem Crashdump Schema File", + "Schema": "#OemCrashdump.OemCrashdump", + "Description": "Oem Crashdump Schema File Location", + "Id": "OemCrashdump", + "Languages": [ + "en" + ], + "Languages@odata.count": 1, + "Location": [ + { + "Language": "en", + "Uri": "/redfish/v1/JsonSchemas/OemCrashdump/OemCrashdump.json" + } + ], + "Location@odata.count": 1 +} diff --git a/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/OemManager/index.json b/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/OemManager/index.json index bf695116..107621e4 100644 --- a/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/OemManager/index.json +++ b/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/OemManager/index.json @@ -49,6 +49,14 @@ } ] }, + "Profile": { + "description": "Current thermal profile.", + "longDescription": "Current thermal profile.", + "type": [ + "string", + "null" + ] + }, "StepwiseControllers": { "anyOf": [ { @@ -115,6 +123,11 @@ "longDescription": "Input sensors to the PID controller.", "type": "array" }, + "NegativeHysteresis": { + "description": "Negative hysteresis for the controller.", + "longDescription": "Negative hysteresis for the controller.", + "type": "number" + }, "OutLimitMax": { "description": "Output limit maxiumum for the pwm.", "longDescription": "Output limit maxiumum for the pwm.", @@ -141,6 +154,11 @@ "longDescription": "Polynomial coefficent for the PID.", "type": "number" }, + "PositiveHysteresis": { + "description": "Positive hysteresis for the controller.", + "longDescription": "Positive hysteresis for the controller.", + "type": "number" + }, "SlewNeg": { "description": "Negative slew rate for the PID.", "longDescription": "Negative slew rate for the PID.", @@ -219,7 +237,7 @@ "longDescription": "If the sensors are in fail-safe mode, this is the percentage to use.", "type": "number" }, - "MinThermalRpm": { + "MinThermalOutput": { "description": "Minimum thermal RPM that can be set in this Zone.", "longDescription": "Minimum thermal RPM that can be set in this Zone.", "type": "number" @@ -360,6 +378,11 @@ "longDescription": "Input sensors to the PID controller.", "type": "array" }, + "NegativeHysteresis": { + "description": "Negative hysteresis for the controller.", + "longDescription": "Negative hysteresis for the controller.", + "type": "number" + }, "OutLimitMax": { "description": "Output limit maxiumum for the pwm.", "longDescription": "Output limit maxiumum for the pwm.", @@ -375,6 +398,21 @@ "longDescription": "Polynomial coefficent for the PID.", "type": "number" }, + "PositiveHysteresis": { + "description": "Positive hysteresis for the controller.", + "longDescription": "Positive hysteresis for the controller.", + "type": "number" + }, + "SetPoint": { + "description": "Setpoint for the PID.", + "longDescription": "Setpoint for the PID.", + "type": "number" + }, + "SetPointOffset": { + "description": "Threshold to take value from and apply to setpoint.", + "longDescription": "Threshold to take value from and apply to setpoint. Valid threshold names are supported.", + "type": "string" + }, "SlewNeg": { "description": "Negative slew rate for the PID.", "longDescription": "Negative slew rate for the PID.", @@ -436,6 +474,14 @@ } }, "properties": { + "Direction": { + "description": "Direction that the stepwise controller applies.", + "longDescription": "Direction that the stepwise controller applies. Options include Ceiling and Floor.", + "type": [ + "string", + "null" + ] + }, "Inputs": { "description": "Input sensors to the Stepwise controller.", "items": { @@ -537,4 +583,4 @@ } }, "title": "#OemManager" -} \ No newline at end of file +} diff --git a/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/OemVirtualMedia/index.json b/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/OemVirtualMedia/index.json new file mode 100644 index 00000000..78bd8b7a --- /dev/null +++ b/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/OemVirtualMedia/index.json @@ -0,0 +1,61 @@ +{ + "$id": "http://redfish.dmtf.org/schemas/v1/OemVirtualMedia.v1_0_0.json", + "$schema": "http://redfish.dmtf.org/schemas/v1/redfish-schema-v1.json", + "copyright": "Copyright 2014-2019 DMTF. For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright", + "definitions": { + "OpenBmc": { + "additionalProperties": true, + "description": "Oem properties for OpenBmc.", + "patternProperties": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { + "description": "This property shall specify a valid odata or Redfish property.", + "type": [ + "array", + "boolean", + "integer", + "number", + "null", + "object", + "string" + ] + } + }, + "properties": { + "WebSocketEndpoint": { + "description": "Indicates endpoint socket name and location.", + "longDescription": "The value of this property shall be a structure ring indicating location and name of the socket used to communicate with nbd server.", + "readonly": true, + "type": [ + "string", + "null" + ] + } + }, + "type": "object" + }, + "VirtualMedia": { + "additionalProperties": false, + "description": "OEM Extension for VirtualMedia", + "longDescription": "OEM Extension for VirtualMedia to support Proxy mode.", + "patternProperties": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { + "description": "This property shall specify a valid odata or Redfish property.", + "type": [ + "array", + "boolean", + "integer", + "number", + "null", + "object", + "string" + ] + } + }, + "properties": {}, + "type": "object" + } + }, + "owningEntity": "OpenBMC", + "release": "1.0", + "title": "#OemVirtualMedia.v1_0_0" +} \ No newline at end of file diff --git a/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/PCIeDevice/PCIeDevice.json b/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/PCIeDevice/PCIeDevice.json index 4f7c2241..33585833 100644 --- a/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/PCIeDevice/PCIeDevice.json +++ b/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/PCIeDevice/PCIeDevice.json @@ -1,14 +1,15 @@ { + "$id": "http://redfish.dmtf.org/schemas/v1/PCIeDevice.v1_4_0.json", "$ref": "#/definitions/PCIeDevice", "$schema": "http://redfish.dmtf.org/schemas/v1/redfish-schema-v1.json", - "copyright": "Copyright 2014-2018 DMTF. For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright", + "copyright": "Copyright 2014-2019 DMTF. For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright", "definitions": { "Actions": { "additionalProperties": false, - "description": "The available actions for this resource.", - "longDescription": "This type shall contain the available actions for this resource.", + "description": "The available actions for this Resource.", + "longDescription": "This type shall contain the available actions for this Resource.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -24,8 +25,9 @@ "properties": { "Oem": { "$ref": "#/definitions/OemActions", - "description": "This property contains the available OEM specific actions for this resource.", - "longDescription": "This property shall contain any additional OEM actions for this resource." + "description": "The available OEM-specific actions for this Resource.", + "longDescription": "This property shall contain the available OEM-specific actions for this Resource.", + "versionAdded": "v1_1_0" } }, "type": "object" @@ -38,17 +40,17 @@ ], "enumDescriptions": { "MultiFunction": "A multi-function PCIe device.", - "Simulated": "A PCIe device which is not currently physically present, but is being simulated by the PCIe infrastructure.", + "Simulated": "A PCIe device that is not currently physically present, but is being simulated by the PCIe infrastructure.", "SingleFunction": "A single-function PCIe device." }, "type": "string" }, "Links": { "additionalProperties": false, - "description": "Contains references to other resources that are related to this resource.", - "longDescription": "This type, as described by the Redfish Specification, shall contain references to resources that are related to, but not contained by (subordinate to), this resource.", + "description": "The links to other Resources that are related to this Resource.", + "longDescription": "The Redfish Specification-described type shall contain links to Resources related to but not subordinate to this Resource.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -63,43 +65,45 @@ }, "properties": { "Chassis": { - "description": "An array of references to the chassis in which the PCIe device is contained.", + "description": "An array of links to the chassis in which the PCIe device is contained.", "items": { "$ref": "http://redfish.dmtf.org/schemas/v1/Chassis.json#/definitions/Chassis" }, - "longDescription": "The value of this property shall reference a resource of type Chassis that represents the physical container associated with this resource.", + "longDescription": "This property shall link to a Resource of type Chassis that represents the physical container associated with this Resource.", "readonly": true, "type": "array" }, "Chassis@odata.count": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/count" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/count" }, "Oem": { "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem", - "description": "Oem extension object.", - "longDescription": "This object represents the Oem property. All values for resources described by this schema shall comply to the requirements as described in the Redfish specification." + "description": "The OEM extension property.", + "longDescription": "This property shall contain the OEM extensions. All values for properties contained in this object shall conform to the Redfish Specification-described requirements." }, "PCIeFunctions": { - "description": "An array of references to PCIeFunctions exposed by this device.", + "deprecated": "This property has been deprecated in favor of the PCIeFunctions property in the root that provides a link to a Resource Collection.", + "description": "An array of links to PCIeFunctions exposed by this device.", "items": { "$ref": "http://redfish.dmtf.org/schemas/v1/PCIeFunction.json#/definitions/PCIeFunction" }, - "longDescription": "The value of this property shall be a reference to the resources that this device exposes and shall reference a resource of type PCIeFunction.", + "longDescription": "This property shall contain a link to the Resources of the PCIeFunction type that this device exposes.", "readonly": true, - "type": "array" + "type": "array", + "versionDeprecated": "v1_4_0" }, "PCIeFunctions@odata.count": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/count" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/count" } }, "type": "object" }, "OemActions": { "additionalProperties": true, - "description": "The available OEM specific actions for this resource.", - "longDescription": "This type shall contain any additional OEM actions for this resource.", + "description": "The available OEM-specific actions for this Resource.", + "longDescription": "This type shall contain the available OEM-specific actions for this Resource.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -117,10 +121,10 @@ }, "PCIeDevice": { "additionalProperties": false, - "description": "This is the schema definition for the PCIeDevice resource. It represents the properties of a PCIeDevice attached to a System.", - "longDescription": "This resource shall be used to represent a PCIeDevice attached to a System.", + "description": "The PCIeDevice schema describes the properties of a PCIe device that is attached to a system.", + "longDescription": "This Resource contains a PCIeDevice that is attached to a system.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -135,31 +139,33 @@ }, "properties": { "@odata.context": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/context" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/context" }, "@odata.etag": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/etag" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/etag" }, "@odata.id": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/id" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/id" }, "@odata.type": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/type" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/type" }, "Actions": { "$ref": "#/definitions/Actions", - "description": "The available actions for this resource.", - "longDescription": "The Actions property shall contain the available actions for this resource." + "description": "The available actions for this Resource.", + "longDescription": "This property shall contain the available actions for this Resource.", + "versionAdded": "v1_1_0" }, "Assembly": { "$ref": "http://redfish.dmtf.org/schemas/v1/Assembly.json#/definitions/Assembly", - "description": "A reference to the Assembly resource associated with this PCIe device.", - "longDescription": "The value of this property shall be a link to a resource of type Assembly.", - "readonly": true + "description": "The link to the assembly Resource associated with this PCIe device.", + "longDescription": "This property shall contain a link to a Resource of type assembly.", + "readonly": true, + "versionAdded": "v1_2_0" }, "AssetTag": { - "description": "The user assigned asset tag for this PCIe device.", - "longDescription": "The value of this property shall be an identifying string used to track the PCIe device for inventory purposes.", + "description": "The user-assigned asset tag for this PCIe device.", + "longDescription": "This property shall contain an identifying string that tracks the PCIe device for inventory purposes.", "readonly": false, "type": [ "string", @@ -180,12 +186,12 @@ "DeviceType": { "$ref": "#/definitions/DeviceType", "description": "The device type for this PCIe device.", - "longDescription": "The value of this property shall be the device type of the PCIe device such as SingleFunction or MultiFunction.", + "longDescription": "This property shall contain the device type of the PCIe device such as SingleFunction or MultiFunction.", "readonly": true }, "FirmwareVersion": { "description": "The version of firmware for this PCIe device.", - "longDescription": "The value of this property shall be the firmware version of the PCIe device.", + "longDescription": "This property shall contain the firmware version of the PCIe device.", "readonly": true, "type": [ "string", @@ -198,12 +204,12 @@ }, "Links": { "$ref": "#/definitions/Links", - "description": "The links object contains the links to other resources that are related to this resource.", - "longDescription": "The Links property, as described by the Redfish Specification, shall contain references to resources that are related to, but not contained by (subordinate to), this resource." + "description": "The links to other Resources that are related to this Resource.", + "longDescription": "This property shall contain links to Resources that are related to but are not contained by, or subordinate to, this Resource." }, "Manufacturer": { - "description": "This is the manufacturer of this PCIe device.", - "longDescription": "The value of this property shall be the name of the organization responsible for producing the PCIe device. This organization might be the entity from whom the PCIe device is purchased, but this is not necessarily true.", + "description": "The manufacturer of this PCIe device.", + "longDescription": "This property shall contain the name of the organization responsible for producing the PCIe device. This organization might be the entity from whom the PCIe device is purchased, but this is not necessarily true.", "readonly": true, "type": [ "string", @@ -211,8 +217,8 @@ ] }, "Model": { - "description": "This is the model number for the PCIe device.", - "longDescription": "The value of this property shall be the name by which the manufacturer generally refers to the PCIe device.", + "description": "The model number for the PCIe device.", + "longDescription": "This property shall contain the name by which the manufacturer generally refers to the PCIe device.", "readonly": true, "type": [ "string", @@ -225,24 +231,25 @@ }, "Oem": { "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem", - "description": "This is the manufacturer/provider specific extension moniker used to divide the Oem object into sections.", - "longDescription": "The value of this string shall be of the format for the reserved word *Oem*." + "description": "The OEM extension property.", + "longDescription": "This property shall contain the OEM extensions. All values for properties that this object contains shall conform to the Redfish Specification-described requirements." + }, + "PCIeFunctions": { + "$ref": "http://redfish.dmtf.org/schemas/v1/PCIeFunctionCollection.json#/definitions/PCIeFunctionCollection", + "description": "The link to the collection of PCIe functions associated with this PCIe device.", + "longDescription": "This property shall contain a link to a Resource Collection of type PCIeFunctionCollection.", + "readonly": true, + "versionAdded": "v1_4_0" }, "PCIeInterface": { - "anyOf": [ - { - "$ref": "#/definitions/PCIeInterface" - }, - { - "type": "null" - } - ], + "$ref": "#/definitions/PCIeInterface", "description": "The PCIe interface details for this PCIe device.", - "longDescription": "This object shall contain details on the PCIe interface used to connect this PCIe Device to its host or upstream switch." + "longDescription": "This object shall contain details for the PCIe interface that connects this PCIe device to its host or upstream switch.", + "versionAdded": "v1_3_0" }, "PartNumber": { "description": "The part number for this PCIe device.", - "longDescription": "The value of this property shall be a part number assigned by the organization that is responsible for producing or manufacturing the PCIe device.", + "longDescription": "This property shall contain a part number assigned by the organization that is responsible for producing or manufacturing the PCIe device.", "readonly": true, "type": [ "string", @@ -250,8 +257,8 @@ ] }, "SKU": { - "description": "This is the SKU for this PCIe device.", - "longDescription": "The value of this property shall be the stock-keeping unit number for this PCIe device.", + "description": "The SKU for this PCIe device.", + "longDescription": "This property shall contain the stock-keeping unit number for this PCIe device.", "readonly": true, "type": [ "string", @@ -260,7 +267,7 @@ }, "SerialNumber": { "description": "The serial number for this PCIe device.", - "longDescription": "The value of this property shall be a manufacturer-allocated number used to identify the PCIe device.", + "longDescription": "This property shall contain a manufacturer-allocated number that identifies the PCIe device.", "readonly": true, "type": [ "string", @@ -269,8 +276,8 @@ }, "Status": { "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Status", - "description": "This property describes the status and health of the resource and its children.", - "longDescription": "This property shall contain any status or health properties of the resource." + "description": "The status and health of the Resource and its subordinate or dependent Resources.", + "longDescription": "This property shall contain any status or health properties of the Resource." } }, "required": [ @@ -283,10 +290,10 @@ }, "PCIeInterface": { "additionalProperties": false, - "description": "This is the definition for a PCI Interface object.", - "longDescription": "These properties shall be the definition for a PCIe Interface for a Redfish implementation.", + "description": "This type defines a PCI interface.", + "longDescription": "These properties shall contain the definition for a PCIe Interface for a Redfish implementation.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -301,24 +308,26 @@ }, "properties": { "LanesInUse": { - "description": "This is the number of PCIe lanes in use by this device.", - "longDescription": "The value of this property shall be the number of PCIe lanes in use by this device, which shall be equal or less than the value of MaxLanes.", + "description": "The number of PCIe lanes in use by this device.", + "longDescription": "This property shall contain the number of PCIe lanes in use by this device, which shall be equal to or less than the MaxLanes property value.", "maximum": 32, "readonly": true, "type": [ "integer", "null" - ] + ], + "versionAdded": "v1_3_0" }, "MaxLanes": { - "description": "This is the number of PCIe lanes supported by this device.", - "longDescription": "The value of this property shall be the maximum number of PCIe lanes supported by this device.", + "description": "The number of PCIe lanes supported by this device.", + "longDescription": "This property shall contain the maximum number of PCIe lanes supported by this device.", "maximum": 32, "readonly": true, "type": [ "integer", "null" - ] + ], + "versionAdded": "v1_3_0" }, "MaxPCIeType": { "anyOf": [ @@ -330,13 +339,15 @@ } ], "description": "The highest version of the PCIe specification supported by this device.", - "longDescription": "The value of this property shall be the maximum PCIe specification that this device supports.", - "readonly": true + "longDescription": "This property shall contain the maximum PCIe specification that this device supports.", + "readonly": true, + "versionAdded": "v1_3_0" }, "Oem": { "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem", - "description": "Oem extension object.", - "longDescription": "This object represents the Oem property. All values for resources described by this schema shall comply to the requirements as described in the Redfish specification." + "description": "The OEM extension property.", + "longDescription": "This property shall contain the OEM extensions. All values for properties contained in this object shall conform to the Redfish Specification-described requirements.", + "versionAdded": "v1_3_0" }, "PCIeType": { "anyOf": [ @@ -348,30 +359,15 @@ } ], "description": "The version of the PCIe specification in use by this device.", - "longDescription": "The value of this property shall be the negotiated PCIe interface version in use by this device.", - "readonly": true + "longDescription": "This property shall contain the negotiated PCIe interface version in use by this device.", + "readonly": true, + "versionAdded": "v1_3_0" } }, "type": "object" - }, - "PCIeTypes": { - "enum": [ - "Gen1", - "Gen2", - "Gen3", - "Gen4", - "Gen5" - ], - "enumDescriptions": { - "Gen1": "A PCIe v1.0 slot.", - "Gen2": "A PCIe v2.0 slot.", - "Gen3": "A PCIe v3.0 slot.", - "Gen4": "A PCIe v4.0 slot.", - "Gen5": "A PCIe v5.0 slot." - }, - "type": "string" } }, "owningEntity": "DMTF", - "title": "#PCIeDevice.v1_3_0.PCIeDevice" + "release": "2019.2", + "title": "#PCIeDevice.v1_4_0.PCIeDevice" } \ No newline at end of file diff --git a/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/PCIeFunction/PCIeFunction.json b/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/PCIeFunction/PCIeFunction.json index 94e628c2..a607d067 100644 --- a/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/PCIeFunction/PCIeFunction.json +++ b/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/PCIeFunction/PCIeFunction.json @@ -1,14 +1,15 @@ { + "$id": "http://redfish.dmtf.org/schemas/v1/PCIeFunction.v1_2_3.json", "$ref": "#/definitions/PCIeFunction", "$schema": "http://redfish.dmtf.org/schemas/v1/redfish-schema-v1.json", - "copyright": "Copyright 2014-2018 DMTF. For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright", + "copyright": "Copyright 2014-2019 DMTF. For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright", "definitions": { "Actions": { "additionalProperties": false, - "description": "The available actions for this resource.", - "longDescription": "This type shall contain the available actions for this resource.", + "description": "The available actions for this Resource.", + "longDescription": "This type shall contain the available actions for this Resource.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -24,8 +25,9 @@ "properties": { "Oem": { "$ref": "#/definitions/OemActions", - "description": "This property contains the available OEM specific actions for this resource.", - "longDescription": "This property shall contain any additional OEM actions for this resource." + "description": "The available OEM-specific actions for this Resource.", + "longDescription": "This property shall contain the available OEM-specific actions for this Resource.", + "versionAdded": "v1_1_0" } }, "type": "object" @@ -71,7 +73,7 @@ "MultimediaController": "A multimedia controller.", "NetworkController": "A network controller.", "NonEssentialInstrumentation": "A non-essential instrumentation.", - "Other": "A other class. The function Device Class Id needs to be verified.", + "Other": "A other class. The function Device Class Id needs to be verified.", "ProcessingAccelerators": "A processing accelerators.", "Processor": "A processor.", "SatelliteCommunicationsController": "A satellite communications controller.", @@ -89,17 +91,17 @@ "Virtual" ], "enumDescriptions": { - "Physical": "A physical PCie function.", + "Physical": "A physical PCIe function.", "Virtual": "A virtual PCIe function." }, "type": "string" }, "Links": { "additionalProperties": false, - "description": "Contains references to other resources that are related to this resource.", - "longDescription": "This type, as described by the Redfish Specification, shall contain references to resources that are related to, but not contained by (subordinate to), this resource.", + "description": "The links to other Resources that are related to this Resource.", + "longDescription": "This Redfish Specification-described type shall contain links to Resources that are related to but are not contained by or subordinate to this Resource.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -114,80 +116,74 @@ }, "properties": { "Drives": { - "description": "An array of references to the drives which the PCIe device produces.", + "description": "An array of links to the drives that the PCIe device produces.", "items": { "$ref": "http://redfish.dmtf.org/schemas/v1/Drive.json#/definitions/Drive" }, - "longDescription": "The value of this property shall reference a resource of type Drive that represents the storage drives associated with this resource.", + "longDescription": "This property shall link to a Resource of type Drive that represents the storage drives associated with this Resource.", "readonly": true, "type": "array" }, "Drives@odata.count": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/count" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/count" }, "EthernetInterfaces": { - "description": "An array of references to the ethernet interfaces which the PCIe device produces.", + "description": "An array of links to the Ethernet interfaces that the PCIe device produces.", "items": { "$ref": "http://redfish.dmtf.org/schemas/v1/EthernetInterface.json#/definitions/EthernetInterface" }, - "longDescription": "The value of this property shall reference a resource of type EthernetInterface that represents the network interfaces associated with this resource.", + "longDescription": "This property shall link to a Resource of type EthernetInterface that represents the network interfaces associated with this Resource.", "readonly": true, "type": "array" }, "EthernetInterfaces@odata.count": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/count" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/count" }, "NetworkDeviceFunctions": { - "description": "An array of references to the Network Device Functions which the PCIe device produces.", + "description": "An array of links to the network device functions that the PCIe device produces.", "items": { "$ref": "http://redfish.dmtf.org/schemas/v1/NetworkDeviceFunction.json#/definitions/NetworkDeviceFunction" }, - "longDescription": "The value of this property shall be an array of references to resources of type NetworkDeviceFunction that represents the network device functions associated with this resource.", + "longDescription": "This property shall contain an array of links to Resources of the NetworkDeviceFunction type that represents the network device functions associated with this Resource.", "readonly": true, - "type": "array" + "type": "array", + "versionAdded": "v1_2_0" }, "NetworkDeviceFunctions@odata.count": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/count" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/count" }, "Oem": { "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem", - "description": "Oem extension object.", - "longDescription": "This object represents the Oem property. All values for resources described by this schema shall comply to the requirements as described in the Redfish specification." + "description": "The OEM extension property.", + "longDescription": "This property shall contain the OEM extensions. All values for properties contained in this object shall conform to the Redfish Specification-described requirements." }, "PCIeDevice": { - "anyOf": [ - { - "$ref": "http://redfish.dmtf.org/schemas/v1/PCIeDevice.json#/definitions/PCIeDevice" - }, - { - "type": "null" - } - ], - "description": "A reference to the PCIeDevice on which this function resides.", - "longDescription": "The value of this property shall be a reference to the resource that this function is a part of and shall reference a resource of type PCIeDevice.", + "$ref": "http://redfish.dmtf.org/schemas/v1/PCIeDevice.json#/definitions/PCIeDevice", + "description": "The link to the PCIe device on which this function resides.", + "longDescription": "This property shall contain a link to a Resource of type PCIeDevice of which this function is a part.", "readonly": true }, "StorageControllers": { - "description": "An array of references to the storage controllers which the PCIe device produces.", + "description": "An array of links to the storage controllers that the PCIe device produces.", "items": { "$ref": "http://redfish.dmtf.org/schemas/v1/Storage.json#/definitions/StorageController" }, - "longDescription": "The value of this property shall reference a resource of type StorageController that represents the storage controllers associated with this resource.", + "longDescription": "This property shall link to a Resource of type StorageController that represents the storage controllers associated with this Resource.", "readonly": true, "type": "array" }, "StorageControllers@odata.count": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/count" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/count" } }, "type": "object" }, "OemActions": { "additionalProperties": true, - "description": "The available OEM specific actions for this resource.", - "longDescription": "This type shall contain any additional OEM actions for this resource.", + "description": "The available OEM-specific actions for this Resource.", + "longDescription": "This type shall contain the available OEM-specific actions for this Resource.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -205,10 +201,10 @@ }, "PCIeFunction": { "additionalProperties": false, - "description": "This is the schema definition for the PCIeFunction resource. It represents the properties of a PCIeFunction attached to a System.", - "longDescription": "This resource shall be used to represent a PCIeFunction attached to a System.", + "description": "The schema definition for the PCIeFunction Resource. It represents the properties of a PCIeFunction attached to a System.", + "longDescription": "This Resource shall represent a PCIeFunction attached to a System.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -223,25 +219,26 @@ }, "properties": { "@odata.context": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/context" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/context" }, "@odata.etag": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/etag" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/etag" }, "@odata.id": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/id" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/id" }, "@odata.type": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/type" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/type" }, "Actions": { "$ref": "#/definitions/Actions", - "description": "The available actions for this resource.", - "longDescription": "The Actions property shall contain the available actions for this resource." + "description": "The available actions for this Resource.", + "longDescription": "This property shall contain the available actions for this Resource.", + "versionAdded": "v1_1_0" }, "ClassCode": { "description": "The Class Code of this PCIe function.", - "longDescription": "The value of this property shall be the PCI Class Code of the PCIe device function.", + "longDescription": "This property shall contain the PCI Class Code of the PCIe device function.", "pattern": "^0[xX](([a-fA-F]|[0-9]){2}){3}$", "readonly": true, "type": [ @@ -262,13 +259,13 @@ }, "DeviceClass": { "$ref": "#/definitions/DeviceClass", - "description": "The class for this PCIe Function.", - "longDescription": "The value of this property shall be the device class of the PCIe device function such as Storage, Network, Memory etc.", + "description": "The class for this PCIe function.", + "longDescription": "This property shall contain the device class of the PCIe device function, such as storage, network, or memory.", "readonly": true }, "DeviceId": { "description": "The Device ID of this PCIe function.", - "longDescription": "The value of this property shall be the PCI Device ID of the PCIe device function.", + "longDescription": "This property shall contain the PCI Device ID of the PCIe device function.", "pattern": "^0[xX](([a-fA-F]|[0-9]){2}){2}$", "readonly": true, "type": [ @@ -277,8 +274,8 @@ ] }, "FunctionId": { - "description": "The the PCIe Function identifier.", - "longDescription": "The value of this property shall the PCIe device function number within a given PCIe device.", + "description": "The PCIe Function Number.", + "longDescription": "This property shall contain the PCIe Function Number within a given PCIe device.", "readonly": true, "type": [ "integer", @@ -287,8 +284,8 @@ }, "FunctionType": { "$ref": "#/definitions/FunctionType", - "description": "The type of the PCIe Function.", - "longDescription": "The value of this property shall be the function type of the PCIe device function such as Physical or Virtual.", + "description": "The type of the PCIe function.", + "longDescription": "This property shall contain the function type of the PCIe device function such as Physical or Virtual.", "readonly": true }, "Id": { @@ -297,8 +294,8 @@ }, "Links": { "$ref": "#/definitions/Links", - "description": "The links object contains the links to other resources that are related to this resource.", - "longDescription": "The Links property, as described by the Redfish Specification, shall contain references to resources that are related to, but not contained by (subordinate to), this resource." + "description": "The links to other Resources that are related to this Resource.", + "longDescription": "This property shall contain links to Resources that are related to but are not contained by, or subordinate to, this Resource." }, "Name": { "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Name", @@ -306,12 +303,12 @@ }, "Oem": { "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem", - "description": "This is the manufacturer/provider specific extension moniker used to divide the Oem object into sections.", - "longDescription": "The value of this string shall be of the format for the reserved word *Oem*." + "description": "The OEM extension property.", + "longDescription": "This property shall contain the OEM extensions. All values for properties that this object contains shall conform to the Redfish Specification-described requirements." }, "RevisionId": { "description": "The Revision ID of this PCIe function.", - "longDescription": "The value of this property shall be the PCI Revision ID of the PCIe device function.", + "longDescription": "This property shall contain the PCI Revision ID of the PCIe device function.", "pattern": "^0[xX](([a-fA-F]|[0-9]){2}){1}$", "readonly": true, "type": [ @@ -321,12 +318,12 @@ }, "Status": { "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Status", - "description": "This property describes the status and health of the resource and its children.", - "longDescription": "This property shall contain any status or health properties of the resource." + "description": "The status and health of the Resource and its subordinate or dependent Resources.", + "longDescription": "This property shall contain any status or health properties of the Resource." }, "SubsystemId": { "description": "The Subsystem ID of this PCIe function.", - "longDescription": "The value of this property shall be the PCI Subsystem ID of the PCIe device function.", + "longDescription": "This property shall contain the PCI Subsystem ID of the PCIe device function.", "pattern": "^0[xX](([a-fA-F]|[0-9]){2}){2}$", "readonly": true, "type": [ @@ -336,7 +333,7 @@ }, "SubsystemVendorId": { "description": "The Subsystem Vendor ID of this PCIe function.", - "longDescription": "The value of this property shall be the PCI Subsystem Vendor ID of the PCIe device function.", + "longDescription": "This property shall contain the PCI Subsystem Vendor ID of the PCIe device function.", "pattern": "^0[xX](([a-fA-F]|[0-9]){2}){2}$", "readonly": true, "type": [ @@ -346,7 +343,7 @@ }, "VendorId": { "description": "The Vendor ID of this PCIe function.", - "longDescription": "The value of this property shall be the PCI Vendor ID of the PCIe device function.", + "longDescription": "This property shall contain the PCI Vendor ID of the PCIe device function.", "pattern": "^0[xX](([a-fA-F]|[0-9]){2}){2}$", "readonly": true, "type": [ @@ -365,5 +362,6 @@ } }, "owningEntity": "DMTF", - "title": "#PCIeFunction.v1_2_1.PCIeFunction" + "release": "2018.1", + "title": "#PCIeFunction.v1_2_3.PCIeFunction" } \ No newline at end of file diff --git a/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/PCIeSlots/PCIeSlots.json b/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/PCIeSlots/PCIeSlots.json index d854d753..dc298c16 100644 --- a/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/PCIeSlots/PCIeSlots.json +++ b/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/PCIeSlots/PCIeSlots.json @@ -1,14 +1,15 @@ { + "$id": "http://redfish.dmtf.org/schemas/v1/PCIeSlots.v1_1_1.json", "$ref": "#/definitions/PCIeSlots", "$schema": "http://redfish.dmtf.org/schemas/v1/redfish-schema-v1.json", - "copyright": "Copyright 2014-2018 DMTF. For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright", + "copyright": "Copyright 2014-2019 DMTF. For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright", "definitions": { "Actions": { "additionalProperties": false, - "description": "The available actions for this resource.", - "longDescription": "This type shall contain the available actions for this resource.", + "description": "The available actions for this Resource.", + "longDescription": "This type shall contain the available actions for this Resource.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -24,18 +25,18 @@ "properties": { "Oem": { "$ref": "#/definitions/OemActions", - "description": "This property contains the available OEM specific actions for this resource.", - "longDescription": "This property shall contain any additional OEM actions for this resource." + "description": "The available OEM-specific actions for this Resource.", + "longDescription": "This property shall contain the available OEM-specific actions for this Resource." } }, "type": "object" }, "OemActions": { "additionalProperties": true, - "description": "The available OEM specific actions for this resource.", - "longDescription": "This type shall contain any additional OEM actions for this resource.", + "description": "The available OEM-specific actions for this Resource.", + "longDescription": "This type shall contain the available OEM-specific actions for this Resource.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -53,10 +54,10 @@ }, "PCIeLinks": { "additionalProperties": false, - "description": "Contains references to other resources that are related to this resource.", - "longDescription": "This type, as described by the Redfish Specification, shall contain references to resources that are related to, but not contained by (subordinate to), this resource.", + "description": "The links to other Resources that are related to this Resource.", + "longDescription": "The Redfish Specification-described type shall contain links to Resources related to but not subordinate to this Resource.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -72,30 +73,30 @@ "properties": { "Oem": { "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem", - "description": "Oem extension object.", - "longDescription": "This object represents the Oem property. All values for resources described by this schema shall comply to the requirements as described in the Redfish specification." + "description": "The OEM extension property.", + "longDescription": "This property shall contain the OEM extensions. All values for properties contained in this object shall conform to the Redfish Specification-described requirements." }, "PCIeDevice": { - "description": "An array of references to the PCIe Devices contained in this slot.", + "description": "An array of links to the PCIe devices contained in this slot.", "items": { "$ref": "http://redfish.dmtf.org/schemas/v1/PCIeDevice.json#/definitions/PCIeDevice" }, - "longDescription": "The value of this property shall be an array of references to the resources that this physical slot is associated with and shall reference resources of type PCIeDevice. If the Status.State of this slot has a value of Absent, this property shall not appear in the resource.", + "longDescription": "This property shall contain an array of links to the Resources of the PCIeDevice type with which this physical slot is associated. If the Status.State of this slot is `Absent`, this property shall not appear in the Resource.", "readonly": true, "type": "array" }, "PCIeDevice@odata.count": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/count" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/count" } }, "type": "object" }, "PCIeSlot": { "additionalProperties": false, - "description": "This is the definition for a PCI slot information object.", - "longDescription": "These properties shall be the definition for a PCIe Slot for a Redfish implementation.", + "description": "This type defines information for a PCIe slot.", + "longDescription": "These properties shall contain the definition for a PCIe Slot for a Redfish implementation.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -109,9 +110,19 @@ } }, "properties": { + "HotPluggable": { + "description": "An indication of whether this PCIe slot supports hotplug.", + "longDescription": "This property shall contain indicating whether this PCIe slot supports hotplug.", + "readonly": true, + "type": [ + "boolean", + "null" + ], + "versionAdded": "v1_1_0" + }, "Lanes": { - "description": "This is the number of PCIe lanes supported by this slot.", - "longDescription": "The value of this property shall be the maximum number of PCIe lanes supported by the slot.", + "description": "The number of PCIe lanes supported by this slot.", + "longDescription": "This property shall contain the maximum number of PCIe lanes supported by the slot.", "maximum": 32, "readonly": true, "type": [ @@ -120,26 +131,19 @@ ] }, "Links": { - "anyOf": [ - { - "$ref": "#/definitions/PCIeLinks" - }, - { - "type": "null" - } - ], - "description": "Contains references to other resources that are related to this resource.", - "longDescription": "This type, as described by the Redfish Specification, shall contain references to resources that are related to, but not contained by (subordinate to), this resource." + "$ref": "#/definitions/PCIeLinks", + "description": "The links to other Resources that are related to this Resource.", + "longDescription": "The Redfish Specification-described type shall contain links to Resources related to but not subordinate to this Resource." }, "Location": { "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Location", - "description": "The Location of the PCIe slot.", + "description": "The location of the PCIe slot.", "longDescription": "This property shall contain part location information, including a ServiceLable of the associated PCIe Slot." }, "Oem": { "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem", - "description": "Oem extension object.", - "longDescription": "This object represents the Oem property. All values for resources described by this schema shall comply to the requirements as described in the Redfish specification." + "description": "The OEM extension property.", + "longDescription": "This property shall contain the OEM extensions. All values for properties contained in this object shall conform to the Redfish Specification-described requirements." }, "PCIeType": { "anyOf": [ @@ -150,8 +154,8 @@ "type": "null" } ], - "description": "This is the PCIe specification supported by this slot.", - "longDescription": "The value of this property shall be the maximum PCIe specification that this slot supports.", + "description": "The PCIe specification supported by this slot.", + "longDescription": "This property shall contain the maximum PCIe specification that this slot supports.", "readonly": true }, "SlotType": { @@ -163,24 +167,24 @@ "type": "null" } ], - "description": "This is the PCIe slot type for this slot.", - "longDescription": "The value of this property shall be the slot type as specified by the PCIe specification.", + "description": "The PCIe slot type for this slot.", + "longDescription": "This property shall contain the slot type as specified by the PCIe specification.", "readonly": true }, "Status": { "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Status", - "description": "This property describes the status and health of the resource and its children.", - "longDescription": "This property shall contain any status or health properties of the resource." + "description": "The status and health of the Resource and its subordinate or dependent Resources.", + "longDescription": "This property shall contain any status or health properties of the Resource." } }, "type": "object" }, "PCIeSlots": { "additionalProperties": false, - "description": "This is the schema definition for the PCIe Slot properties.", - "longDescription": "This resource shall be used to represent an set of PCIe slot information for a Redfish implementation.", + "description": "The PCIeSlots schema describes PCIe slot properties.", + "longDescription": "This Resource shall represent a set of PCIe slot information for a Redfish implementation.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -195,21 +199,21 @@ }, "properties": { "@odata.context": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/context" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/context" }, "@odata.etag": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/etag" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/etag" }, "@odata.id": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/id" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/id" }, "@odata.type": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/type" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/type" }, "Actions": { "$ref": "#/definitions/Actions", - "description": "The available actions for this resource.", - "longDescription": "The Actions property shall contain the available actions for this resource." + "description": "The available actions for this Resource.", + "longDescription": "This property shall contain the available actions for this Resource." }, "Description": { "anyOf": [ @@ -232,20 +236,13 @@ }, "Oem": { "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem", - "description": "This is the manufacturer/provider specific extension moniker used to divide the Oem object into sections.", - "longDescription": "The value of this string shall be of the format for the reserved word *Oem*." + "description": "The OEM extension property.", + "longDescription": "This property shall contain the OEM extensions. All values for properties that this object contains shall conform to the Redfish Specification-described requirements." }, "Slots": { "description": "An array of PCI Slot information.", "items": { - "anyOf": [ - { - "$ref": "#/definitions/PCIeSlot" - }, - { - "type": "null" - } - ] + "$ref": "#/definitions/PCIeSlot" }, "longDescription": "This array shall contain an entry for each PCIe slot, including empty slots (with no device or card installed).", "type": "array" @@ -280,5 +277,6 @@ } }, "owningEntity": "DMTF", - "title": "#PCIeSlots.v1_0_0.PCIeSlots" + "release": "2019.1", + "title": "#PCIeSlots.v1_1_1.PCIeSlots" } \ No newline at end of file diff --git a/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/Port/Port.json b/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/Port/Port.json index 30045463..5bf02719 100644 --- a/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/Port/Port.json +++ b/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/Port/Port.json @@ -1,14 +1,15 @@ { + "$id": "http://redfish.dmtf.org/schemas/v1/Port.v1_1_3.json", "$ref": "#/definitions/Port", "$schema": "http://redfish.dmtf.org/schemas/v1/redfish-schema-v1.json", - "copyright": "Copyright 2014-2018 DMTF. For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright", + "copyright": "Copyright 2014-2019 DMTF. For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright", "definitions": { "Actions": { "additionalProperties": false, - "description": "The available actions for this resource.", - "longDescription": "This type shall contain the available actions for this resource.", + "description": "The available actions for this Resource.", + "longDescription": "This type shall contain the available actions for this Resource.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -27,18 +28,18 @@ }, "Oem": { "$ref": "#/definitions/OemActions", - "description": "This property contains the available OEM specific actions for this resource.", - "longDescription": "This property shall contain any additional OEM actions for this resource." + "description": "The available OEM-specific actions for this Resource.", + "longDescription": "This property shall contain the available OEM-specific actions for this Resource." } }, "type": "object" }, "Links": { "additionalProperties": false, - "description": "Contains references to other resources that are related to this resource.", - "longDescription": "This type, as described by the Redfish Specification, shall contain references to resources that are related to, but not contained by (subordinate to), this resource.", + "description": "The links to other Resources that are related to this Resource.", + "longDescription": "The Redfish Specification-described type shall contain links to Resources related to but not subordinate to this Resource.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -53,55 +54,55 @@ }, "properties": { "AssociatedEndpoints": { - "description": "An array of references to the endpoints that connect to the switch through this port.", + "description": "An array of links to the endpoints that connect through this port.", "items": { "$ref": "http://redfish.dmtf.org/schemas/v1/Endpoint.json#/definitions/Endpoint" }, - "longDescription": "The value of this property shall be a reference to the resources that this port is associated with and shall reference a resource of type Endpoint.", + "longDescription": "This property shall contain a link to the Resources of the Endpoint type with which this port is associated.", "readonly": true, "type": "array" }, "AssociatedEndpoints@odata.count": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/count" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/count" }, "ConnectedSwitchPorts": { - "description": "An array of references to the ports that connect to the switch through this port.", + "description": "An array of links to the ports that connect to the switch through this port.", "items": { "$ref": "http://redfish.dmtf.org/schemas/v1/Port.json#/definitions/Port" }, - "longDescription": "The value of this property shall be a reference to the resources that this port is associated with and shall reference a resource of type Port.", + "longDescription": "This property shall contain a link to the Resources of the Port type with which this port is associated.", "readonly": true, "type": "array" }, "ConnectedSwitchPorts@odata.count": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/count" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/count" }, "ConnectedSwitches": { - "description": "An array of references to the switches that connect to the switch through this port.", + "description": "An array of links to the switches that connect to the device through this port.", "items": { "$ref": "http://redfish.dmtf.org/schemas/v1/Switch.json#/definitions/Switch" }, - "longDescription": "The value of this property shall be a reference to the resources that this port is associated with and shall reference a resource of type Switch.", + "longDescription": "This property shall contain a link to the Resources of the Switch type with which this port is associated.", "readonly": true, "type": "array" }, "ConnectedSwitches@odata.count": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/count" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/count" }, "Oem": { "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem", - "description": "Oem extension object.", - "longDescription": "This object represents the Oem property. All values for resources described by this schema shall comply to the requirements as described in the Redfish specification." + "description": "The OEM extension property.", + "longDescription": "This property shall contain the OEM extensions. All values for properties contained in this object shall conform to the Redfish Specification-described requirements." } }, "type": "object" }, "OemActions": { "additionalProperties": true, - "description": "The available OEM specific actions for this resource.", - "longDescription": "This type shall contain any additional OEM actions for this resource.", + "description": "The available OEM-specific actions for this Resource.", + "longDescription": "This type shall contain the available OEM-specific actions for this Resource.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -119,10 +120,10 @@ }, "Port": { "additionalProperties": false, - "description": "Port contains properties describing a port of a switch.", - "longDescription": "This resource shall be used to represent a simple switch port for a Redfish implementation.", + "description": "The Port schema contains properties that describe a port of a switch, controller, chassis, or any other device that could be connected to another entity.", + "longDescription": "This Resource contains a simple port for a Redfish implementation.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -137,25 +138,25 @@ }, "properties": { "@odata.context": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/context" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/context" }, "@odata.etag": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/etag" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/etag" }, "@odata.id": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/id" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/id" }, "@odata.type": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/type" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/type" }, "Actions": { "$ref": "#/definitions/Actions", - "description": "The available actions for this resource.", - "longDescription": "The Actions property shall contain the available actions for this resource." + "description": "The available actions for this Resource.", + "longDescription": "This property shall contain the available actions for this Resource." }, "CurrentSpeedGbps": { "description": "The current speed of this port.", - "longDescription": "The value of this property shall be the speed of this port currently negotiated and running.", + "longDescription": "This property shall contain the speed of this port currently negotiated and running.", "readonly": true, "type": [ "number", @@ -180,17 +181,18 @@ }, "Links": { "$ref": "#/definitions/Links", - "description": "Contains references to other resources that are related to this resource.", - "longDescription": "The Links property, as described by the Redfish Specification, shall contain references to resources that are related to, but not contained by (subordinate to), this resource." + "description": "The links to other Resources that are related to this Resource.", + "longDescription": "The Redfish Specification-described Links Property shall contain links to Resources related to but not subordinate to this Resource." }, "Location": { "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Location", - "description": "The Location of the port.", - "longDescription": "This property shall contain location information of the associated port." + "description": "The location of the port.", + "longDescription": "This property shall contain location information of the associated port.", + "versionAdded": "v1_1_0" }, "MaxSpeedGbps": { "description": "The maximum speed of this port as currently configured.", - "longDescription": "The value of this property shall be the maximum speed of which this port is capable of being configured. If capable of auto-negotiation, the system shall attempt to negotiate at the maximum speed set.", + "longDescription": "This property shall contain the maximum speed of which this port is capable of being configured. If capable of auto-negotiation, the system shall attempt to negotiate at the maximum speed set.", "readonly": true, "type": [ "number", @@ -204,12 +206,12 @@ }, "Oem": { "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem", - "description": "This is the manufacturer/provider specific extension moniker used to divide the Oem object into sections.", - "longDescription": "The value of this string shall be of the format for the reserved word *Oem*." + "description": "The OEM extension property.", + "longDescription": "This property shall contain the OEM extensions. All values for properties that this object contains shall conform to the Redfish Specification-described requirements." }, "PortId": { - "description": "This is the label of this port on the physical switch package.", - "longDescription": "The value of this property shall be the name of the switch port as indicated on the outside of the switch.", + "description": "The label of this port on the physical package for this port.", + "longDescription": "This property shall contain the name of the port as indicated on the device containing the port.", "readonly": true, "type": [ "string", @@ -226,7 +228,7 @@ } ], "description": "The protocol being sent over this port.", - "longDescription": "The value of this property shall contain the protocol being sent over this port.", + "longDescription": "This property shall contain the protocol being sent over this port.", "readonly": true }, "PortType": { @@ -238,18 +240,18 @@ "type": "null" } ], - "description": "This is the type of this port.", - "longDescription": "The value of this property shall be the port type for this port.", + "description": "The type of this port.", + "longDescription": "This property shall contain the port type for this port.", "readonly": true }, "Status": { "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Status", - "description": "This property describes the status and health of the resource and its children.", - "longDescription": "This property shall contain any status or health properties of the resource." + "description": "The status and health of the Resource and its subordinate or dependent Resources.", + "longDescription": "This property shall contain any status or health properties of the Resource." }, "Width": { "description": "The number of lanes, phys, or other physical transport links that this port contains.", - "longDescription": "The value of this property shall be the number of physical transport links that this port contains.", + "longDescription": "This property shall contain the number of physical transport links that this port contains.", "readonly": true, "type": [ "integer", @@ -286,17 +288,17 @@ }, "Reset": { "additionalProperties": false, - "description": "This action is used to reset this port.", - "longDescription": "This action shall perform a reset of this port.", + "description": "This action resets this port.", + "longDescription": "This action shall reset this port.", "parameters": { "ResetType": { "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/ResetType", - "description": "The type of reset to be performed.", - "longDescription": "This parameter shall define the type of reset to be performed. The service may accept a request without the parameter and perform an implementation specific default reset." + "description": "The type of reset.", + "longDescription": "This parameter shall contain the type of reset. The Service may accept a request without the parameter and perform an implementation specific default reset." } }, "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -312,7 +314,7 @@ "properties": { "target": { "description": "Link to invoke action", - "format": "uri", + "format": "uri-reference", "type": "string" }, "title": { @@ -324,5 +326,6 @@ } }, "owningEntity": "DMTF", - "title": "#Port.v1_1_1.Port" + "release": "2017.3", + "title": "#Port.v1_1_3.Port" } \ No newline at end of file diff --git a/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/Power/Power.json b/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/Power/Power.json index 7a55e97d..576c476d 100644 --- a/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/Power/Power.json +++ b/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/Power/Power.json @@ -1,15 +1,15 @@ { - "$id": "http://redfish.dmtf.org/schemas/v1/Power.v1_5_2.json", + "$id": "http://redfish.dmtf.org/schemas/v1/Power.v1_5_4.json", "$ref": "#/definitions/Power", "$schema": "http://redfish.dmtf.org/schemas/v1/redfish-schema-v1.json", - "copyright": "Copyright 2014-2018 DMTF. For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright", + "copyright": "Copyright 2014-2019 DMTF. For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright", "definitions": { "Actions": { "additionalProperties": false, - "description": "The available actions for this resource.", - "longDescription": "This type shall contain the available actions for this resource.", + "description": "The available actions for this Resource.", + "longDescription": "This type shall contain the available actions for this Resource.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -25,8 +25,8 @@ "properties": { "Oem": { "$ref": "#/definitions/OemActions", - "description": "This property contains the available OEM specific actions for this resource.", - "longDescription": "This property shall contain any additional OEM actions for this resource.", + "description": "The available OEM-specific actions for this Resource.", + "longDescription": "This property shall contain the available OEM-specific actions for this Resource.", "versionAdded": "v1_3_0" } }, @@ -35,9 +35,9 @@ "InputRange": { "additionalProperties": false, "description": "This type describes an input range for a power supply.", - "longDescription": "This type shall describe an input range that the associated power supply is able to utilize.", + "longDescription": "This type shall describe an input range that the associated power supply can utilize.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -67,7 +67,7 @@ }, "MaximumFrequencyHz": { "description": "The maximum line input frequency at which this power supply input range is effective.", - "longDescription": "This property shall contain the value in Hertz of the maximum line input frequency which the power supply is capable of consuming for this range.", + "longDescription": "This property shall contain the value, in Hertz, of the maximum line input frequency that the power supply is capable of consuming for this range.", "minimum": 0, "readonly": true, "type": [ @@ -79,7 +79,7 @@ }, "MaximumVoltage": { "description": "The maximum line input voltage at which this power supply input range is effective.", - "longDescription": "This property shall contain the value in Volts of the maximum line input voltage which the power supply is capable of consuming for this range.", + "longDescription": "This property shall contain the value, in volts, of the maximum line input voltage that the power supply is capable of consuming for this range.", "readonly": true, "type": [ "number", @@ -90,7 +90,7 @@ }, "MinimumFrequencyHz": { "description": "The minimum line input frequency at which this power supply input range is effective.", - "longDescription": "This property shall contain the value in Hertz of the minimum line input frequency which the power supply is capable of consuming for this range.", + "longDescription": "This property shall contain the value, in Hertz, of the minimum line input frequency that the power supply is capable of consuming for this range.", "minimum": 0, "readonly": true, "type": [ @@ -102,7 +102,7 @@ }, "MinimumVoltage": { "description": "The minimum line input voltage at which this power supply input range is effective.", - "longDescription": "This property shall contain the value in Volts of the minimum line input voltage which the power supply is capable of consuming for this range.", + "longDescription": "This property shall contain the value, in volts, of the minimum line input voltage that the power supply is capable of consuming for this range.", "readonly": true, "type": [ "number", @@ -113,13 +113,13 @@ }, "Oem": { "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem", - "description": "Oem extension object.", - "longDescription": "This object represents the Oem property. All values for resources described by this schema shall comply to the requirements as described in the Redfish specification.", + "description": "The OEM extension property.", + "longDescription": "This property shall contain the OEM extensions. All values for properties contained in this object shall conform to the Redfish Specification-described requirements.", "versionAdded": "v1_1_0" }, "OutputWattage": { - "description": "The maximum capacity of this Power Supply when operating in this input range.", - "longDescription": "This property shall contiain the maximum amount of power, in Watts, that the associated power supply is rated to deliver while operating in this input range.", + "description": "The maximum capacity of this power supply when operating in this input range.", + "longDescription": "This property shall contain the maximum amount of power, in watts, that the associated power supply is rated to deliver while operating in this input range.", "minimum": 0, "readonly": true, "type": [ @@ -159,9 +159,9 @@ "DC240V" ], "enumDeprecated": { - "ACHighLine": "This value has been Deprecated in favor of AC277V.", - "ACLowLine": "This value has been Deprecated in favor of AC120V.", - "ACMidLine": "This value has been Deprecated in favor of AC240V." + "ACHighLine": "This value has been deprecated in favor of AC277V.", + "ACLowLine": "This value has been deprecated in favor of AC120V.", + "ACMidLine": "This value has been deprecated in favor of AC240V." }, "enumDescriptions": { "AC120V": "AC 120V nominal input.", @@ -194,10 +194,10 @@ }, "OemActions": { "additionalProperties": true, - "description": "The available OEM specific actions for this resource.", - "longDescription": "This type shall contain any additional OEM actions for this resource.", + "description": "The available OEM-specific actions for this Resource.", + "longDescription": "This type shall contain the available OEM-specific actions for this Resource.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -215,10 +215,10 @@ }, "Power": { "additionalProperties": false, - "description": "This is the schema definition for the Power Metrics. It represents the properties for Power Consumption and Power Limiting.", - "longDescription": "This resource shall be used to represent a power metrics resource for a Redfish implementation.", + "description": "The Power schema describes power metrics and represents the properties for power consumption and power limiting.", + "longDescription": "This Resource contains a Power Metrics Resource for a Redfish implementation.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -233,21 +233,21 @@ }, "properties": { "@odata.context": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/context" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/context" }, "@odata.etag": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/etag" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/etag" }, "@odata.id": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/id" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/id" }, "@odata.type": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/type" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/type" }, "Actions": { "$ref": "#/definitions/Actions", - "description": "The available actions for this resource.", - "longDescription": "The Actions property shall contain the available actions for this resource.", + "description": "The available actions for this Resource.", + "longDescription": "This property shall contain the available actions for this Resource.", "versionAdded": "v1_3_0" }, "Description": { @@ -271,56 +271,56 @@ }, "Oem": { "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem", - "description": "This is the manufacturer/provider specific extension moniker used to divide the Oem object into sections.", - "longDescription": "The value of this string shall be of the format for the reserved word *Oem*." + "description": "The OEM extension property.", + "longDescription": "This property shall contain the OEM extensions. All values for properties that this object contains shall conform to the Redfish Specification-described requirements." }, "PowerControl": { "autoExpand": true, - "description": "This is the definition for power control function (power reading/limiting).", + "description": "The set of power control functions, including power reading and limiting.", "items": { "$ref": "#/definitions/PowerControl" }, - "longDescription": "These properties shall be the definition for power control (power reading and limiting) for a Redfish implementation.", + "longDescription": "This property shall contain the set of power control readings and settings.", "type": "array" }, "PowerControl@odata.count": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/count" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/count" }, "PowerSupplies": { "autoExpand": true, - "description": "Details of the power supplies associated with this system or device.", + "description": "The set of power supplies associated with this system or device.", "items": { "$ref": "#/definitions/PowerSupply" }, - "longDescription": "This object shall contain details of the power supplies associated with this system or device.", + "longDescription": "This property shall contain the set of power supplies associated with this system or device.", "type": "array" }, "PowerSupplies@odata.count": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/count" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/count" }, "Redundancy": { "autoExpand": true, - "description": "Redundancy information for the power subsystem of this system or device.", + "description": "The redundancy information for the set of power supplies in this chassis.", "items": { "$ref": "http://redfish.dmtf.org/schemas/v1/Redundancy.json#/definitions/Redundancy" }, - "longDescription": "This property shall contain redundancy information for the power subsystem of this system or device.", + "longDescription": "This property shall contain redundancy information for the set of power supplies in this system or device.", "type": "array" }, "Redundancy@odata.count": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/count" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/count" }, "Voltages": { "autoExpand": true, - "description": "This is the definition for voltage sensors.", + "description": "The set of voltage sensors for this chassis.", "items": { "$ref": "#/definitions/Voltage" }, - "longDescription": "These properties shall be the definition for voltage sensors for a Redfish implementation.", + "longDescription": "This property shall contain the set of voltage sensors for this chassis.", "type": "array" }, "Voltages@odata.count": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/count" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/count" } }, "required": [ @@ -334,7 +334,7 @@ "PowerControl": { "additionalProperties": false, "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -349,23 +349,23 @@ }, "properties": { "@odata.id": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/id" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/id" }, "Actions": { "$ref": "#/definitions/PowerControlActions", - "description": "The available actions for this resource.", - "longDescription": "The Actions property shall contain the available actions for this resource.", + "description": "The available actions for this Resource.", + "longDescription": "This property shall contain the available actions for this Resource.", "versionAdded": "v1_3_0" }, "MemberId": { - "description": "This is the identifier for the member within the collection.", - "longDescription": "The value of this string shall uniquely identify the member within the collection.", + "description": "The identifier for the member within the collection.", + "longDescription": "This property shall uniquely identify the member within the collection. For services supporting Redfish v1.6 or higher, this value shall contain the zero-based array index.", "readonly": true, "type": "string" }, "Name": { - "description": "Power Control Function name.", - "longDescription": "The value of this property shall be the name of the Voltage sensor.", + "description": "The power control function name.", + "longDescription": "This property shall contain the name of the power control function name.", "readonly": true, "type": [ "string", @@ -374,19 +374,19 @@ }, "Oem": { "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem", - "description": "This is the manufacturer/provider specific extension moniker used to divide the Oem object into sections.", - "longDescription": "The value of this string shall be of the format for the reserved word *Oem*." + "description": "The OEM extension property.", + "longDescription": "This property shall contain the OEM extensions. All values for properties that this object contains shall conform to the Redfish Specification-described requirements." }, "PhysicalContext": { "$ref": "http://redfish.dmtf.org/schemas/v1/PhysicalContext.json#/definitions/PhysicalContext", - "description": "Describes the area, device, or set of devices to which this power control applies.", - "longDescription": "The value of this property shall be a description of the affected device(s) or region within the chassis to which this power control applies.", + "description": "The area, device, or set of devices to which this power control applies.", + "longDescription": "This property shall contain a description of the affected device(s) or region within the chassis to which this power control applies.", "readonly": true, "versionAdded": "v1_4_0" }, "PowerAllocatedWatts": { - "description": "The total amount of power that has been allocated (or budegeted)to chassis resources.", - "longDescription": "The value of this property shall represent the total power currently allocated to chassis resources.", + "description": "The total amount of power that has been allocated or budgeted to chassis.", + "longDescription": "This property shall represent the total power currently allocated or budgeted to the chassis.", "minimum": 0, "readonly": true, "type": [ @@ -396,8 +396,8 @@ "units": "W" }, "PowerAvailableWatts": { - "description": "The amount of power not already budgeted and therefore available for additional allocation. (powerCapacity - powerAllocated). This indicates how much reserve power capacity is left.", - "longDescription": "The value of this property shall represent the amount of power capacity (in Watts) not already allocated and shall equal PowerCapacityWatts - PowerAllocatedWatts.", + "description": "The amount of reserve power capacity, in watts, that remains. This value is the PowerCapacity value minus the PowerAllocated value.", + "longDescription": "This property shall represent the amount of reserve power capacity, in watts, that remains. This value is the PowerCapacity value minus the PowerAllocated value.", "minimum": 0, "readonly": true, "type": [ @@ -407,8 +407,8 @@ "units": "W" }, "PowerCapacityWatts": { - "description": "The total amount of power available to the chassis for allocation. This may the power supply capacity, or power budget assigned to the chassis from an up-stream chassis.", - "longDescription": "The value of this property shall represent the total power capacity that is available for allocation to the chassis resources.", + "description": "The total amount of power that can be allocated to the chassis. This value can be either the power supply capacity or the power budget that an upstream chassis assigns to this chassis.", + "longDescription": "This property shall represent the total power capacity that can be allocated to the chassis.", "minimum": 0, "readonly": true, "type": [ @@ -418,8 +418,8 @@ "units": "W" }, "PowerConsumedWatts": { - "description": "The actual power being consumed by the chassis.", - "longDescription": "The value of this property shall represent the actual power being consumed (in Watts) by the chassis.", + "description": "The actual power that the chassis consumes, in watts.", + "longDescription": "This property shall represent the actual power that the chassis consumes, in watts.", "minimum": 0, "readonly": true, "type": [ @@ -430,17 +430,17 @@ }, "PowerLimit": { "$ref": "#/definitions/PowerLimit", - "description": "Power limit status and configuration information for this chassis.", - "longDescription": "This object shall contain power limit status and configuration information for this chassis." + "description": "The power limit status and configuration information for this chassis.", + "longDescription": "This property shall contain power limit status and configuration information for this chassis." }, "PowerMetrics": { "$ref": "#/definitions/PowerMetric", - "description": "Power readings for this chassis.", - "longDescription": "This object shall contain power metrics for power readings (interval, minimum/maximum/average power consumption) for the chassis." + "description": "The power readings for this chassis.", + "longDescription": "This property shall contain power metrics for power readings, such as interval, minimum, maximum, and average power consumption, for the chassis." }, "PowerRequestedWatts": { - "description": "The potential power that the chassis resources are requesting which may be higher than the current level being consumed since requested power includes budget that the chassis resource wants for future use.", - "longDescription": "The value of this property shall represent the amount of power (in Watts) that the chassis resource is currently requesting be budgeted to it for future use.", + "description": "The potential power, in watts, that the chassis requests, which may be higher than the current level being consumed because the requested power includes a budget that the chassis wants for future use.", + "longDescription": "This property shall represent the amount of power, in watts, that the chassis currently requests to be budgeted for future use.", "minimum": 0, "readonly": true, "type": [ @@ -450,21 +450,21 @@ "units": "W" }, "RelatedItem": { - "description": "The ID(s) of the resources associated with this Power Limit.", + "description": "An array of one or more IDs of the Resources associated with this power limit.", "items": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/idRef" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/idRef" }, - "longDescription": "The value of this property shall be an array of IDs containing pointers consistent with JSON pointer syntax to the resource that is being limited.", + "longDescription": "This property shall contain an array of IDs for pointers consistent with JSON Pointer syntax to the Resource that is being limited.", "readonly": true, "type": "array" }, "RelatedItem@odata.count": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/count" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/count" }, "Status": { "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Status", - "description": "This property describes the status and health of the resource and its children.", - "longDescription": "This property shall contain any status or health properties of the resource." + "description": "The status and health of the Resource and its subordinate or dependent Resources.", + "longDescription": "This property shall contain any status or health properties of the Resource." } }, "required": [ @@ -475,10 +475,10 @@ }, "PowerControlActions": { "additionalProperties": false, - "description": "The available actions for this resource.", - "longDescription": "This type shall contain the available actions for this resource.", + "description": "The available actions for this Resource.", + "longDescription": "This type shall contain the available actions for this Resource.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -494,8 +494,8 @@ "properties": { "Oem": { "$ref": "#/definitions/PowerControlOemActions", - "description": "This property contains the available OEM specific actions for this resource.", - "longDescription": "This property shall contain any additional OEM actions for this resource.", + "description": "The available OEM-specific actions for this Resource.", + "longDescription": "This property shall contain the available OEM-specific actions for this Resource.", "versionAdded": "v1_3_0" } }, @@ -503,10 +503,10 @@ }, "PowerControlOemActions": { "additionalProperties": true, - "description": "The available OEM specific actions for this resource.", - "longDescription": "This type shall contain any additional OEM actions for this resource.", + "description": "The available OEM-specific actions for this Resource.", + "longDescription": "This type shall contain the available OEM-specific actions for this Resource.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -524,10 +524,10 @@ }, "PowerLimit": { "additionalProperties": false, - "description": "This object contains power limit status and configuration information for the chassis.", + "description": "The power limit status and configuration information for the chassis.", "longDescription": "This type shall contain power limit status and configuration information for this chassis.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -543,7 +543,7 @@ "properties": { "CorrectionInMs": { "description": "The time required for the limiting process to reduce power consumption to below the limit.", - "longDescription": "The value of this property shall represent the time interval in ms required for the limiting process to react and reduce the power consumption below the limit.", + "longDescription": "This property shall represent the time interval in ms required for the limiting process to react and reduce the power consumption below the limit.", "readonly": false, "type": [ "integer", @@ -561,12 +561,12 @@ } ], "description": "The action that is taken if the power cannot be maintained below the LimitInWatts.", - "longDescription": "The value of this property shall represent the action to be taken if the resource power consumption can not be limited below the specified limit after several correction time periods.", + "longDescription": "This property shall represent the action to be taken if the Resource power consumption cannot be limited below the specified limit after several correction time periods.", "readonly": false }, "LimitInWatts": { - "description": "The Power limit in watts. Set to null to disable power capping.", - "longDescription": "The value of this property shall represent the power cap limit in watts for the resource. If set to null, power capping shall be disabled.", + "description": "The power limit, in watts. If `null`, power capping is disabled.", + "longDescription": "This property shall represent the power capping limit, in watts, for the Resource. If `null`, power capping shall be disabled.", "minimum": 0, "readonly": false, "type": [ @@ -595,10 +595,10 @@ }, "PowerMetric": { "additionalProperties": false, - "description": "This type describe the power metrics for a resource.", - "longDescription": "This type shall contain power metrics for power readings (interval, minimum/maximum/average power consumption) for a resource.", + "description": "The power metrics for a Resource.", + "longDescription": "This type shall contain power metrics for power readings, such as interval, minimum, maximum, and average power consumption, for a Resource.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -613,8 +613,8 @@ }, "properties": { "AverageConsumedWatts": { - "description": "The average power level over the measurement window (the last IntervalInMin minutes).", - "longDescription": "The value of this property shall represent the average power level that occured averaged over the last IntervalInMin minutes.", + "description": "The average power level over the measurement window over the last IntervalInMin minutes.", + "longDescription": "This property shall represent the average power level that occurred over the last IntervalInMin minutes.", "minimum": 0, "readonly": true, "type": [ @@ -624,8 +624,8 @@ "units": "W" }, "IntervalInMin": { - "description": "The time interval (or window) in which the PowerMetrics are measured over.", - "longDescription": "The value of this property shall represent the time interval (or window), in minutes, in which the PowerMetrics properties are measured over.", + "description": "The time interval, or window, over which the power metrics are measured.", + "longDescription": "This property shall represent the time interval or window, in minutes, over which the power metrics are measured.", "minimum": 0, "readonly": true, "type": [ @@ -635,8 +635,8 @@ "units": "min" }, "MaxConsumedWatts": { - "description": "The highest power consumption level that has occured over the measurement window (the last IntervalInMin minutes).", - "longDescription": "The value of this property shall represent the maximum power level in watts that occured within the last IntervalInMin minutes.", + "description": "The highest power consumption level, in watts, that has occurred over the measurement window within the last IntervalInMin minutes.", + "longDescription": "This property shall represent the maximum power level, in watts, that occurred within the last IntervalInMin minutes.", "minimum": 0, "readonly": true, "type": [ @@ -646,8 +646,8 @@ "units": "W" }, "MinConsumedWatts": { - "description": "The lowest power consumption level over the measurement window (the last IntervalInMin minutes).", - "longDescription": "The value of this property shall represent the minimum power level in watts that occured within the last IntervalInMin minutes.", + "description": "The lowest power consumption level, in watts, over the measurement window that occurred within the last IntervalInMin minutes.", + "longDescription": "This property shall represent the minimum power level, in watts, that occurred within the last IntervalInMin minutes.", "minimum": 0, "readonly": true, "type": [ @@ -663,7 +663,7 @@ "additionalProperties": false, "description": "Details of a power supplies associated with this system or device.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -678,24 +678,24 @@ }, "properties": { "@odata.id": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/id" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/id" }, "Actions": { "$ref": "#/definitions/PowerSupplyActions", - "description": "The available actions for this resource.", - "longDescription": "The Actions property shall contain the available actions for this resource.", + "description": "The available actions for this Resource.", + "longDescription": "This property shall contain the available actions for this Resource.", "versionAdded": "v1_3_0" }, "Assembly": { "$ref": "http://redfish.dmtf.org/schemas/v1/Assembly.json#/definitions/Assembly", - "description": "A reference to the Assembly resource associated with this power supply.", - "longDescription": "The value of this property shall be a link to a resource of type Assembly.", + "description": "The link to the assembly Resource associated with this power supply.", + "longDescription": "This property shall contain a link to a Resource of type assembly.", "readonly": true, "versionAdded": "v1_5_0" }, "EfficiencyPercent": { - "description": "The measured efficiency of this Power Supply as a percentage.", - "longDescription": "This property shall contain the value of the measured power efficiency, as a percentage, of the associated power supply.", + "description": "The measured efficiency of this power supply as a percentage.", + "longDescription": "This property shall contain the measured power efficiency, as a percentage, of the associated power supply.", "maximum": 100, "minimum": 0, "readonly": true, @@ -707,7 +707,7 @@ "versionAdded": "v1_5_0" }, "FirmwareVersion": { - "description": "The firmware version for this Power Supply.", + "description": "The firmware version for this power supply.", "longDescription": "This property shall contain the firwmare version as defined by the manufacturer for the associated power supply.", "readonly": true, "type": [ @@ -716,8 +716,8 @@ ] }, "HotPluggable": { - "description": "Indicates if this device can be inserted or removed while the equipment is in operation.", - "longDescription": "The value of this property shall indicate whether the device can be inserted or removed while the underlying equipment otherwise remains in its current operational state. Devices indicated as hot-pluggable shall allow the device to become operable without altering the operational state of the underlying equipment. Devices that cannot be inserted or removed from equipment in operation, or devices that cannot become operable without affecting the operational state of that equipment, shall be indicated as not hot-pluggable.", + "description": "An indication of whether this device can be inserted or removed while the equipment is in operation.", + "longDescription": "This property shall indicate whether the device can be inserted or removed while the underlying equipment otherwise remains in its current operational state. Devices indicated as hot-pluggable shall allow the device to become operable without altering the operational state of the underlying equipment. Devices that cannot be inserted or removed from equipment in operation, or devices that cannot become operable without affecting the operational state of that equipment, shall be indicated as not hot-pluggable.", "readonly": true, "type": [ "boolean", @@ -734,23 +734,23 @@ "type": "null" } ], - "description": "The state of the indicator LED, used to identify the power supply.", - "longDescription": "The value of this property shall contain the indicator light state for the indicator light associated with this power supply.", + "description": "The state of The indicator LED, which identifies the power supply.", + "longDescription": "This property shall contain the indicator light state for the indicator light associated with this power supply.", "readonly": false, "versionAdded": "v1_2_0" }, "InputRanges": { - "description": "This is the input ranges that the power supply can use.", + "description": "The input ranges that the power supply can use.", "items": { "$ref": "#/definitions/InputRange" }, - "longDescription": "The value of this property shall be a collection of ranges usable by the power supply unit.", + "longDescription": "This property shall contain a collection of ranges usable by the power supply unit.", "type": "array", "versionAdded": "v1_1_0" }, "LastPowerOutputWatts": { - "description": "The average power output of this Power Supply.", - "longDescription": "This property shall contain the average power output, measured in Watts, of the associated power supply.", + "description": "The average power output of this power supply.", + "longDescription": "This property shall contain the average power output, measured in watts, of the associated power supply.", "minimum": 0, "readonly": true, "type": [ @@ -760,7 +760,7 @@ "units": "W" }, "LineInputVoltage": { - "description": "The line input voltage at which the Power Supply is operating.", + "description": "The line input voltage at which the power supply is operating.", "longDescription": "This property shall contain the value in Volts of the line input voltage (measured or configured for) that the power supply has been configured to operate with or is currently receiving.", "readonly": true, "type": [ @@ -778,19 +778,19 @@ "type": "null" } ], - "description": "The line voltage type supported as an input to this Power Supply.", + "description": "The line voltage type supported as an input to this power supply.", "longDescription": "This property shall contain the type of input line voltage supported by the associated power supply.", "readonly": true }, "Location": { "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Location", - "description": "The Location of the power supply.", + "description": "The location of the power supply.", "longDescription": "This property shall contain location information of the associated power supply.", "versionAdded": "v1_5_0" }, "Manufacturer": { - "description": "This is the manufacturer of this power supply.", - "longDescription": "The value of this property shall be the name of the organization responsible for producing the power supply. This organization might be the entity from whom the power supply is purchased, but this is not necessarily true.", + "description": "The manufacturer of this power supply.", + "longDescription": "This property shall contain the name of the organization responsible for producing the power supply. This organization might be the entity from whom the power supply is purchased, but this is not necessarily true.", "readonly": true, "type": [ "string", @@ -799,13 +799,13 @@ "versionAdded": "v1_1_0" }, "MemberId": { - "description": "This is the identifier for the member within the collection.", - "longDescription": "The value of this string shall uniquely identify the member within the collection.", + "description": "The identifier for the member within the collection.", + "longDescription": "This property shall uniquely identify the member within the collection. For services supporting Redfish v1.6 or higher, this value shall contain the zero-based array index.", "readonly": true, "type": "string" }, "Model": { - "description": "The model number for this Power Supply.", + "description": "The model number for this power supply.", "longDescription": "This property shall contain the model information as defined by the manufacturer for the associated power supply.", "readonly": true, "type": [ @@ -814,7 +814,7 @@ ] }, "Name": { - "description": "The name of the Power Supply.", + "description": "The name of the power supply.", "longDescription": "This property shall contain a descriptive name for the associated power supply.", "readonly": true, "type": [ @@ -824,11 +824,11 @@ }, "Oem": { "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem", - "description": "This is the manufacturer/provider specific extension moniker used to divide the Oem object into sections.", - "longDescription": "The value of this string shall be of the format for the reserved word *Oem*." + "description": "The OEM extension property.", + "longDescription": "This property shall contain the OEM extensions. All values for properties that this object contains shall conform to the Redfish Specification-described requirements." }, "PartNumber": { - "description": "The part number for this Power Supply.", + "description": "The part number for this power supply.", "longDescription": "This property shall contain the part number as defined by the manufacturer for the associated power supply.", "readonly": true, "type": [ @@ -837,8 +837,8 @@ ] }, "PowerCapacityWatts": { - "description": "The maximum capacity of this Power Supply.", - "longDescription": "This property shall contiain the maximum amount of power, in Watts, that the associated power supply is rated to deliver.", + "description": "The maximum capacity of this power supply.", + "longDescription": "This property shall contain the maximum amount of power, in watts, that the associated power supply is rated to deliver.", "minimum": 0, "readonly": true, "type": [ @@ -848,8 +848,8 @@ "units": "W" }, "PowerInputWatts": { - "description": "The measured input power of this Power Supply.", - "longDescription": "This property shall contain the value of the measured input power, in Watts, of the associated power supply.", + "description": "The measured input power of this power supply.", + "longDescription": "This property shall contain the measured input power, in watts, of the associated power supply.", "minimum": 0, "readonly": true, "type": [ @@ -860,8 +860,8 @@ "versionAdded": "v1_5_0" }, "PowerOutputWatts": { - "description": "The measured output power of this Power Supply.", - "longDescription": "This property shall contain the value of the measured output power, in Watts, of the associated power supply.", + "description": "The measured output power of this power supply.", + "longDescription": "This property shall contain the measured output power, in watts, of the associated power supply.", "minimum": 0, "readonly": true, "type": [ @@ -880,34 +880,34 @@ "type": "null" } ], - "description": "The Power Supply type (AC or DC).", + "description": "The power supply type (AC or DC).", "longDescription": "This property shall contain the input power type (AC or DC) of the associated power supply.", "readonly": true }, "Redundancy": { - "description": "This structure is used to show redundancy for power supplies. The Component ids will reference the members of the redundancy groups.", + "description": "The set of redundancy groups for this power supply.", "items": { "$ref": "http://redfish.dmtf.org/schemas/v1/Redundancy.json#/definitions/Redundancy" }, - "longDescription": "The values of the properties in this array shall be used to show redundancy for power supplies and other elements in this resource. The use of IDs within these arrays shall reference the members of the redundancy groups.", + "longDescription": "This property shall contain an array of links to the redundancy groups to which this power supply belongs.", "type": "array" }, "Redundancy@odata.count": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/count" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/count" }, "RelatedItem": { - "description": "The ID(s) of the resources associated with this Power Limit.", + "description": "The ID(s) of the Resources associated with this power limit.", "items": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/idRef" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/idRef" }, - "longDescription": "The value of this property shall be an array of IDs containing pointers consistent with JSON pointer syntax to the resource that is being limited.", + "longDescription": "This property shall contain an array of IDs for pointers consistent with JSON Pointer syntax to the Resource that is being limited.", "type": "array" }, "RelatedItem@odata.count": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/count" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/count" }, "SerialNumber": { - "description": "The serial number for this Power Supply.", + "description": "The serial number for this power supply.", "longDescription": "This property shall contain the serial number as defined by the manufacturer for the associated power supply.", "readonly": true, "type": [ @@ -916,7 +916,7 @@ ] }, "SparePartNumber": { - "description": "The spare part number for this Power Supply.", + "description": "The spare part number for this power supply.", "longDescription": "This property shall contain the spare or replacement part number as defined by the manufacturer for the associated power supply.", "readonly": true, "type": [ @@ -926,8 +926,8 @@ }, "Status": { "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Status", - "description": "This property describes the status and health of the resource and its children.", - "longDescription": "This property shall contain any status or health properties of the resource." + "description": "The status and health of the Resource and its subordinate or dependent Resources.", + "longDescription": "This property shall contain any status or health properties of the Resource." } }, "required": [ @@ -938,10 +938,10 @@ }, "PowerSupplyActions": { "additionalProperties": false, - "description": "The available actions for this resource.", - "longDescription": "This type shall contain the available actions for this resource.", + "description": "The available actions for this Resource.", + "longDescription": "This type shall contain the available actions for this Resource.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -957,8 +957,8 @@ "properties": { "Oem": { "$ref": "#/definitions/PowerSupplyOemActions", - "description": "This property contains the available OEM specific actions for this resource.", - "longDescription": "This property shall contain any additional OEM actions for this resource.", + "description": "The available OEM-specific actions for this Resource.", + "longDescription": "This property shall contain the available OEM-specific actions for this Resource.", "versionAdded": "v1_3_0" } }, @@ -966,10 +966,10 @@ }, "PowerSupplyOemActions": { "additionalProperties": true, - "description": "The available OEM specific actions for this resource.", - "longDescription": "This type shall contain any additional OEM actions for this resource.", + "description": "The available OEM-specific actions for this Resource.", + "longDescription": "This type shall contain the available OEM-specific actions for this Resource.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -994,7 +994,7 @@ ], "enumDescriptions": { "AC": "Alternating Current (AC) power supply.", - "ACorDC": "Power Supply supports both DC or AC.", + "ACorDC": "The power supply supports both DC or AC.", "DC": "Direct Current (DC) power supply.", "Unknown": "The power supply type cannot be determined." }, @@ -1003,7 +1003,7 @@ "Voltage": { "additionalProperties": false, "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -1018,17 +1018,17 @@ }, "properties": { "@odata.id": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/id" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/id" }, "Actions": { "$ref": "#/definitions/VoltageActions", - "description": "The available actions for this resource.", - "longDescription": "The Actions property shall contain the available actions for this resource.", + "description": "The available actions for this Resource.", + "longDescription": "This property shall contain the available actions for this Resource.", "versionAdded": "v1_3_0" }, "LowerThresholdCritical": { - "description": "Below normal range but not yet fatal.", - "longDescription": "The value of this property shall indicate the present reading is below the normal range but is not yet fatal. Units shall use the same units as the related ReadingVolts propoerty.", + "description": "The value at which the reading is below normal range but not yet fatal.", + "longDescription": "This property shall contain the value at which the ReadingVolts property is below the normal range but is not yet fatal. The value of the property shall use the same units as the ReadingVolts property.", "readonly": true, "type": [ "number", @@ -1037,8 +1037,8 @@ "units": "V" }, "LowerThresholdFatal": { - "description": "Below normal range and is fatal.", - "longDescription": "The value of this property shall indicate the present reading is below the normal range and is fatal. Units shall use the same units as the related ReadingVolts propoerty.", + "description": "The value at which the reading is below normal range and fatal.", + "longDescription": "This property shall contain the value at which the ReadingVolts property is below the normal range and is fatal. The value of the property shall use the same units as the ReadingVolts property.", "readonly": true, "type": [ "number", @@ -1047,8 +1047,8 @@ "units": "V" }, "LowerThresholdNonCritical": { - "description": "Below normal range.", - "longDescription": "The value of this property shall indicate the present reading is below the normal range but is not critical. Units shall use the same units as the related ReadingVolts propoerty.", + "description": "The value at which the reading is below normal range.", + "longDescription": "This property shall contain the value at which the ReadingVolts property is below normal range. The value of the property shall use the same units as the ReadingVolts property.", "readonly": true, "type": [ "number", @@ -1057,8 +1057,8 @@ "units": "V" }, "MaxReadingRange": { - "description": "Maximum value for this Voltage sensor.", - "longDescription": "The value of this property shall indicate the highest possible value for ReadingVolts. Units shall use the same units as the related ReadingVolts propoerty.", + "description": "Maximum value for this sensor.", + "longDescription": "This property shall indicate the highest possible value for the ReadingVolts property. The value of the property shall use the same units as the ReadingVolts property.", "readonly": true, "type": [ "number", @@ -1067,14 +1067,14 @@ "units": "V" }, "MemberId": { - "description": "This is the identifier for the member within the collection.", - "longDescription": "The value of this string shall uniquely identify the member within the collection.", + "description": "The identifier for the member within the collection.", + "longDescription": "This property shall uniquely identify the member within the collection. For services supporting Redfish v1.6 or higher, this value shall contain the zero-based array index.", "readonly": true, "type": "string" }, "MinReadingRange": { - "description": "Minimum value for this Voltage sensor.", - "longDescription": "The value of this property shall indicate the lowest possible value for ReadingVolts. Units shall use the same units as the related ReadingVolts propoerty.", + "description": "Minimum value for this sensor.", + "longDescription": "This property shall indicate the lowest possible value for the ReadingVolts property. The value of the property shall use the same units as the ReadingVolts property.", "readonly": true, "type": [ "number", @@ -1084,7 +1084,7 @@ }, "Name": { "description": "Voltage sensor name.", - "longDescription": "The value of this property shall be the name of the Voltage sensor.", + "longDescription": "This property shall contain the name of the Voltage sensor.", "readonly": true, "type": [ "string", @@ -1093,18 +1093,18 @@ }, "Oem": { "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem", - "description": "This is the manufacturer/provider specific extension moniker used to divide the Oem object into sections.", - "longDescription": "The value of this string shall be of the format for the reserved word *Oem*." + "description": "The OEM extension property.", + "longDescription": "This property shall contain the OEM extensions. All values for properties that this object contains shall conform to the Redfish Specification-described requirements." }, "PhysicalContext": { "$ref": "http://redfish.dmtf.org/schemas/v1/PhysicalContext.json#/definitions/PhysicalContext", - "description": "Describes the area or device to which this voltage measurement applies.", - "longDescription": "The value of this property shall be a description of the affected device or region within the chassis to which this voltage measurement applies.", + "description": "The area or device to which this voltage measurement applies.", + "longDescription": "This property shall contain a description of the affected device or region within the chassis to which this voltage measurement applies.", "readonly": true }, "ReadingVolts": { - "description": "The present reading of the voltage sensor.", - "longDescription": "The value of this property shall be the present reading of the voltage sensor's reading.", + "description": "The reading of the voltage sensor.", + "longDescription": "This property shall contain the voltage sensor's reading.", "readonly": true, "type": [ "number", @@ -1113,20 +1113,20 @@ "units": "V" }, "RelatedItem": { - "description": "Describes the areas or devices to which this voltage measurement applies.", + "description": "The areas or devices to which this voltage measurement applies.", "items": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/idRef" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/idRef" }, - "longDescription": "The value of this property shall be an array of IDs containing pointers consistent with JSON pointer syntax to the areas or devices to which this voltage measurement applies.", + "longDescription": "This property shall contain an array of IDs for pointers consistent with JSON Pointer syntax to the areas or devices to which this voltage measurement applies.", "readonly": true, "type": "array" }, "RelatedItem@odata.count": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/count" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/count" }, "SensorNumber": { "description": "A numerical identifier to represent the voltage sensor.", - "longDescription": "The value of this property shall be a numerical identifier for this voltage sensor that is unique within this resource.", + "longDescription": "This property shall contain a numerical identifier for this voltage sensor that is unique within this Resource.", "readonly": true, "type": [ "integer", @@ -1135,12 +1135,12 @@ }, "Status": { "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Status", - "description": "This property describes the status and health of the resource and its children.", - "longDescription": "This property shall contain any status or health properties of the resource." + "description": "The status and health of the Resource and its subordinate or dependent Resources.", + "longDescription": "This property shall contain any status or health properties of the Resource." }, "UpperThresholdCritical": { - "description": "Above normal range but not yet fatal.", - "longDescription": "The value of this property shall indicate the present reading is above the normal range but is not yet fatal. Units shall use the same units as the related ReadingVolts propoerty.", + "description": "The value at which the reading is above normal range but not yet fatal.", + "longDescription": "This property shall contain the value at which the ReadingVolts property is above the normal range but is not yet fatal. The value of the property shall use the same units as the ReadingVolts property.", "readonly": true, "type": [ "number", @@ -1149,8 +1149,8 @@ "units": "V" }, "UpperThresholdFatal": { - "description": "Above normal range and is fatal.", - "longDescription": "The value of this property shall indicate the present reading is above the normal range and is fatal. Units shall use the same units as the related ReadingVolts propoerty.", + "description": "The value at which the reading is above normal range and fatal.", + "longDescription": "This property shall contain the value at which the ReadingVolts property is above the normal range and is fatal. The value of the property shall use the same units as the ReadingVolts property.", "readonly": true, "type": [ "number", @@ -1159,8 +1159,8 @@ "units": "V" }, "UpperThresholdNonCritical": { - "description": "Above normal range.", - "longDescription": "The value of this property shall indicate the present reading is above the normal range but is not critical. Units shall use the same units as the related ReadingVolts propoerty.", + "description": "The value at which the reading is above normal range.", + "longDescription": "This property shall contain the value at which the ReadingVolts property is above the normal range. The value of the property shall use the same units as the ReadingVolts property.", "readonly": true, "type": [ "number", @@ -1177,10 +1177,10 @@ }, "VoltageActions": { "additionalProperties": false, - "description": "The available actions for this resource.", - "longDescription": "This type shall contain the available actions for this resource.", + "description": "The available actions for this Resource.", + "longDescription": "This type shall contain the available actions for this Resource.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -1196,8 +1196,8 @@ "properties": { "Oem": { "$ref": "#/definitions/VoltageOemActions", - "description": "This property contains the available OEM specific actions for this resource.", - "longDescription": "This property shall contain any additional OEM actions for this resource.", + "description": "The available OEM-specific actions for this Resource.", + "longDescription": "This property shall contain the available OEM-specific actions for this Resource.", "versionAdded": "v1_3_0" } }, @@ -1205,10 +1205,10 @@ }, "VoltageOemActions": { "additionalProperties": true, - "description": "The available OEM specific actions for this resource.", - "longDescription": "This type shall contain any additional OEM actions for this resource.", + "description": "The available OEM-specific actions for this Resource.", + "longDescription": "This type shall contain the available OEM-specific actions for this Resource.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -1227,5 +1227,5 @@ }, "owningEntity": "DMTF", "release": "2017.3", - "title": "#Power.v1_5_2.Power" + "title": "#Power.v1_5_4.Power" } \ No newline at end of file diff --git a/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/PrivilegeRegistry/PrivilegeRegistry.json b/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/PrivilegeRegistry/PrivilegeRegistry.json index 596100fc..b50a7997 100644 --- a/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/PrivilegeRegistry/PrivilegeRegistry.json +++ b/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/PrivilegeRegistry/PrivilegeRegistry.json @@ -1,14 +1,15 @@ { + "$id": "http://redfish.dmtf.org/schemas/v1/PrivilegeRegistry.v1_1_4.json", "$ref": "#/definitions/PrivilegeRegistry", "$schema": "http://redfish.dmtf.org/schemas/v1/redfish-schema-v1.json", - "copyright": "Copyright 2014-2018 DMTF. For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright", + "copyright": "Copyright 2014-2019 DMTF. For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright", "definitions": { "Actions": { "additionalProperties": false, - "description": "The available actions for this resource.", - "longDescription": "This type shall contain the available actions for this resource.", + "description": "The available actions for this Resource.", + "longDescription": "This type shall contain the available actions for this Resource.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -24,18 +25,19 @@ "properties": { "Oem": { "$ref": "#/definitions/OemActions", - "description": "This property contains the available OEM specific actions for this resource.", - "longDescription": "This property shall contain any additional OEM actions for this resource." + "description": "The available OEM-specific actions for this Resource.", + "longDescription": "This property shall contain the available OEM-specific actions for this Resource.", + "versionAdded": "v1_1_0" } }, "type": "object" }, "Mapping": { "additionalProperties": false, - "description": "This type describes a mapping between an entity and the relevant privileges used to access it.", - "longDescription": "This type shall describe a mapping between an entity and the relevant privileges used to access it.", + "description": "The mapping between a Resource type and the relevant privileges that accesses the Resource.", + "longDescription": "This type shall describe a mapping between a Resource type and the relevant privileges that accesses the Resource.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -50,59 +52,38 @@ }, "properties": { "Entity": { - "description": "Indicates entity name. e.g., Manager.", - "longDescription": "Indicates entity name. e.g., Manager.", + "description": "The Resource name, such as `Manager`.", + "longDescription": "This property shall contain the Resource name, such as `Manager`.", "readonly": true, "type": "string" }, "OperationMap": { "$ref": "#/definitions/OperationMap", - "description": "List mapping between HTTP method and privilege required for entity.", - "longDescription": "List mapping between HTTP method and privilege required for entity." + "description": "List mapping between HTTP methods and privilege required for the Resource.", + "longDescription": "This property shall list the mapping between HTTP methods and the privilege required for the Resource." }, "PropertyOverrides": { - "description": "Indicates privilege overrides of property or element within a entity.", + "description": "The privilege overrides of properties within a Resource.", "items": { - "anyOf": [ - { - "$ref": "#/definitions/Target_PrivilegeMap" - }, - { - "type": "null" - } - ] + "$ref": "#/definitions/Target_PrivilegeMap" }, - "longDescription": "Indicates privilege overrides of property or element. e.g., password property.", + "longDescription": "This property shall contain the privilege overrides of properties, such as the `Password` property in the `ManagerAccount` Resource.", "type": "array" }, "ResourceURIOverrides": { - "description": "Indicates privilege overrides of Resource URI.", + "description": "The privilege overrides of Resource URIs.", "items": { - "anyOf": [ - { - "$ref": "#/definitions/Target_PrivilegeMap" - }, - { - "type": "null" - } - ] + "$ref": "#/definitions/Target_PrivilegeMap" }, - "longDescription": "Indicates privilege overrides of Resource URI. Target lists Resource URI.", + "longDescription": "This property shall contain the privilege overrides of Resource URIs. The target lists the Resource URI and the new privileges.", "type": "array" }, "SubordinateOverrides": { - "description": "Indicates privilege overrides of subordinate resource.", + "description": "The privilege overrides of the subordinate Resource.", "items": { - "anyOf": [ - { - "$ref": "#/definitions/Target_PrivilegeMap" - }, - { - "type": "null" - } - ] + "$ref": "#/definitions/Target_PrivilegeMap" }, - "longDescription": "Indicates privilege overrides of subordinate resource. Target lists referenced by Entity.", + "longDescription": "This property shall contain the privilege overrides of the subordinate Resource. The target lists are identified by Resource type.", "type": "array" } }, @@ -110,10 +91,10 @@ }, "OemActions": { "additionalProperties": true, - "description": "The available OEM specific actions for this resource.", - "longDescription": "This type shall contain any additional OEM actions for this resource.", + "description": "The available OEM-specific actions for this Resource.", + "longDescription": "This type shall contain the available OEM-specific actions for this Resource.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -131,10 +112,10 @@ }, "OperationMap": { "additionalProperties": false, - "description": "Used for describing the specific privileges for a set of HTTP operations.", - "longDescription": "This type shall describe the specific privileges required for a set of HTTP operations.", + "description": "The specific privileges required to complete a set of HTTP operations.", + "longDescription": "This type shall describe the specific privileges required to complete a set of HTTP operations.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -149,51 +130,51 @@ }, "properties": { "DELETE": { - "description": "Indicates privilege required for HTTP DELETE operation.", + "description": "The privilege required to complete an HTTP DELETE operation.", "items": { "$ref": "#/definitions/OperationPrivilege" }, - "longDescription": "Indicates privilege required for HTTP DELETE operation.", + "longDescription": "This property shall contain the privilege required to complete an HTTP DELETE operation.", "type": "array" }, "GET": { - "description": "Indicates privilege required for HTTP GET operation.", + "description": "The privilege required to complete an HTTP GET operation.", "items": { "$ref": "#/definitions/OperationPrivilege" }, - "longDescription": "Indicates privilege required for HTTP GET operation.", + "longDescription": "This property shall contain the privilege required to complete an HTTP GET operation.", "type": "array" }, "HEAD": { - "description": "Indicates privilege required for HTTP HEAD operation.", + "description": "The privilege required to complete an HTTP HEAD operation.", "items": { "$ref": "#/definitions/OperationPrivilege" }, - "longDescription": "Indicates privilege required for HTTP HEAD operation.", + "longDescription": "This property shall contain the privilege required to complete an HTTP HEAD operation.", "type": "array" }, "PATCH": { - "description": "Indicates privilege required for HTTP PATCH operation.", + "description": "The privilege required to complete an HTTP PATCH operation.", "items": { "$ref": "#/definitions/OperationPrivilege" }, - "longDescription": "Indicates privilege required for HTTP PATCH operation.", + "longDescription": "This property shall contain the privilege required to complete an HTTP PATCH operation.", "type": "array" }, "POST": { - "description": "Indicates privilege required for HTTP POST operation.", + "description": "The privilege required to complete an HTTP POST operation.", "items": { "$ref": "#/definitions/OperationPrivilege" }, - "longDescription": "Indicates privilege required for HTTP POST operation.", + "longDescription": "This property shall contain the privilege required to complete an HTTP POST operation.", "type": "array" }, "PUT": { - "description": "Indicates privilege required for HTTP PUT operation.", + "description": "The privilege required to complete an HTTP PUT operation.", "items": { "$ref": "#/definitions/OperationPrivilege" }, - "longDescription": "Indicates privilege required for HTTP PUT operation.", + "longDescription": "This property shall contain the privilege required to complete an HTTP PUT operation.", "type": "array" } }, @@ -201,10 +182,10 @@ }, "OperationPrivilege": { "additionalProperties": false, - "description": "Used for describing the specific privileges for a given type of HTTP operation.", - "longDescription": "This type shall describe the specific privileges required for a given type of HTTP operation.", + "description": "The privileges for a specific HTTP operation.", + "longDescription": "This type shall describe the privileges required to complete a specific HTTP operation.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -219,11 +200,11 @@ }, "properties": { "Privilege": { - "description": "Lists the privileges that are allowed to perform the given type of HTTP operation on the entity type.", + "description": "An array of privileges that are required to complete a specific HTTP operation on a Resource.", "items": { "type": "string" }, - "longDescription": "This array shall contain a set of strings that match 0 or more of the strings found in the PrivilegesUsed and OEMPrivilegesUsed properties.", + "longDescription": "This array shall contain an array of privileges that are required to complete a specific HTTP operation on a Resource. This set of strings match zero or more strings in the PrivilegesUsed and OEMPrivilegesUsed properties.", "readonly": true, "type": "array" } @@ -232,10 +213,10 @@ }, "PrivilegeRegistry": { "additionalProperties": false, - "description": "This is the schema definition for Operation to Privilege mapping.", - "longDescription": "This resource shall be used to represent operation to privilege mappings.", + "description": "The PrivilegeRegistry schema describes the operation-to-privilege mappings.", + "longDescription": "This Resource contains operation-to-privilege mappings.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -249,22 +230,14 @@ } }, "properties": { - "@odata.context": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/context" - }, - "@odata.etag": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/etag" - }, - "@odata.id": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/id" - }, "@odata.type": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/type" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/type" }, "Actions": { "$ref": "#/definitions/Actions", - "description": "The available actions for this resource.", - "longDescription": "The Actions property shall contain the available actions for this resource." + "description": "The available actions for this Resource.", + "longDescription": "This property shall contain the available actions for this Resource.", + "versionAdded": "v1_1_0" }, "Description": { "anyOf": [ @@ -282,11 +255,11 @@ "readonly": true }, "Mappings": { - "description": "This property describes the mappings between entities and the relevant privileges used to access them.", + "description": "The mappings between entities and the relevant privileges that access those entities.", "items": { "$ref": "#/definitions/Mapping" }, - "longDescription": "This property shall describe the mappings between entities and the relevant privileges used to access them.", + "longDescription": "This property shall describe the mappings between entities and the relevant privileges that access those entities.", "type": "array" }, "Name": { @@ -294,31 +267,30 @@ "readonly": true }, "OEMPrivilegesUsed": { - "description": "Lists the set of OEM Priviliges used in building this mapping.", + "description": "The set of OEM privileges used in this mapping.", "items": { "type": "string" }, - "longDescription": "This property shall be an array that contains the set of OEM Priviliges used in building this mapping.", + "longDescription": "This property shall contain an array of OEM privileges used in this mapping.", "readonly": true, "type": "array" }, "Oem": { "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem", - "description": "This is the manufacturer/provider specific extension moniker used to divide the Oem object into sections.", - "longDescription": "The value of this string shall be of the format for the reserved word *Oem*." + "description": "The OEM extension property.", + "longDescription": "This property shall contain the OEM extensions. All values for properties that this object contains shall conform to the Redfish Specification-described requirements." }, "PrivilegesUsed": { - "description": "Lists the set of Redfish standard priviliges used in building this mapping.", + "description": "The set of Redfish standard privileges used in this mapping.", "items": { "$ref": "http://redfish.dmtf.org/schemas/v1/Privileges.json#/definitions/PrivilegeType" }, - "longDescription": "This property shall be an array that contains the set of Redfish standard priviliges used in building this mapping.", + "longDescription": "This property shall contain an array of Redfish standard privileges used in this mapping.", "readonly": true, "type": "array" } }, "required": [ - "@odata.id", "@odata.type", "Id", "Name" @@ -330,7 +302,7 @@ "description": "This type describes a mapping between one or more targets and the HTTP operations associated with them.", "longDescription": "This type shall describe a mapping between one or more targets and the HTTP operations associated with them.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -345,26 +317,19 @@ }, "properties": { "OperationMap": { - "anyOf": [ - { - "$ref": "#/definitions/OperationMap" - }, - { - "type": "null" - } - ], - "description": "List mapping between HTTP operation and privilege needed to perform operation.", - "longDescription": "List mapping between HTTP operation and privilege needed to perform operation." + "$ref": "#/definitions/OperationMap", + "description": "The mapping between the HTTP operation and the privilege required to complete the operation.", + "longDescription": "This property shall contain the mapping between the HTTP operation and the privilege required to complete the operation." }, "Targets": { - "description": "Indicates the URI or Entity.", + "description": "The set of URIs, Resource types, or properties.", "items": { "type": [ "string", "null" ] }, - "longDescription": "Indicates the set of URI(s) or Entity(s) or property(s). e.g./redfish/v1/Systems/1, Manager, Password. When targets property is not mentioned, then there is no override.", + "longDescription": "This property shall contain the array of URIs, Resource types, or properties. For example, `/redfish/v1/Systems/1`, `Manager`, or `Password`. When the Targets property is not present, no override is specified.", "readonly": true, "type": "array" } @@ -373,5 +338,6 @@ } }, "owningEntity": "DMTF", - "title": "#PrivilegeRegistry.v1_1_2.PrivilegeRegistry" + "release": "2017.1", + "title": "#PrivilegeRegistry.v1_1_4.PrivilegeRegistry" } \ No newline at end of file diff --git a/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/Privileges/Privileges.json b/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/Privileges/Privileges.json index bd2265d6..56e88ecd 100644 --- a/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/Privileges/Privileges.json +++ b/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/Privileges/Privileges.json @@ -1,25 +1,9 @@ { - "$schema": "http://redfish.dmtf.org/schemas/v1/redfish-schema.v1_3_0.json", - "copyright": "Copyright 2014-2017 Distributed Management Task Force, Inc. (DMTF). For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright", - "definitions": { - "PrivilegeType": { - "deprecated": "This definition has been moved to the unversioned namespace so that external references can pick up changes over time.", - "enum": [ - "Login", - "ConfigureManager", - "ConfigureUsers", - "ConfigureSelf", - "ConfigureComponents" - ], - "enumDescriptions": { - "ConfigureComponents": "Able to configure components managed by this service.", - "ConfigureManager": "Able to configure Manager resources.", - "ConfigureSelf": "Able to change the password for the current user Account.", - "ConfigureUsers": "Able to configure Users and their Accounts.", - "Login": "Able to log into the service and read resources." - }, - "type": "string" - } - }, - "title": "#Privileges.v1_0_4" + "$id": "http://redfish.dmtf.org/schemas/v1/Privileges.v1_0_5.json", + "$schema": "http://redfish.dmtf.org/schemas/v1/redfish-schema-v1.json", + "copyright": "Copyright 2014-2019 DMTF. For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright", + "definitions": {}, + "owningEntity": "DMTF", + "release": "1.0", + "title": "#Privileges.v1_0_5" } \ No newline at end of file diff --git a/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/Processor/Processor.json b/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/Processor/Processor.json index 3c7997ea..508bbdca 100644 --- a/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/Processor/Processor.json +++ b/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/Processor/Processor.json @@ -1,15 +1,15 @@ { - "$id": "http://redfish.dmtf.org/schemas/v1/Processor.v1_4_0.json", + "$id": "http://redfish.dmtf.org/schemas/v1/Processor.v1_5_1.json", "$ref": "#/definitions/Processor", "$schema": "http://redfish.dmtf.org/schemas/v1/redfish-schema-v1.json", - "copyright": "Copyright 2014-2018 DMTF. For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright", + "copyright": "Copyright 2014-2019 DMTF. For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright", "definitions": { "Actions": { "additionalProperties": false, - "description": "The available actions for this resource.", - "longDescription": "This type shall contain the available actions for this resource.", + "description": "The available actions for this Resource.", + "longDescription": "This type shall contain the available actions for this Resource.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -25,8 +25,8 @@ "properties": { "Oem": { "$ref": "#/definitions/OemActions", - "description": "This property contains the available OEM specific actions for this resource.", - "longDescription": "This property shall contain any additional OEM actions for this resource.", + "description": "The available OEM-specific actions for this Resource.", + "longDescription": "This property shall contain the available OEM-specific actions for this Resource.", "versionAdded": "v1_1_0" } }, @@ -34,10 +34,10 @@ }, "EthernetInterface": { "additionalProperties": false, - "description": "This is the definition for an Ethernet Interface object.", - "longDescription": "These properties shall be the definition for an Ethernet Interface for a Redfish implementation.", + "description": "This type defines an Ethernet interface.", + "longDescription": "These properties shall contain the definition for an Ethernet interface for a Redfish implementation.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -52,8 +52,8 @@ }, "properties": { "MaxLanes": { - "description": "This is the number of lanes supported by this interface.", - "longDescription": "The value of this property shall be the maximum number of lanes supported by this interface.", + "description": "The number of lanes supported by this interface.", + "longDescription": "This property shall contain the maximum number of lanes supported by this interface.", "readonly": true, "type": [ "integer", @@ -63,7 +63,7 @@ }, "MaxSpeedMbps": { "description": "The maximum speed supported by this interface.", - "longDescription": "The value of this property shall be the maximum speed supported by this interface.", + "longDescription": "This property shall contain the maximum speed supported by this interface.", "readonly": true, "type": [ "integer", @@ -74,8 +74,8 @@ }, "Oem": { "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem", - "description": "Oem extension object.", - "longDescription": "This object represents the Oem property. All values for resources described by this schema shall comply to the requirements as described in the Redfish specification.", + "description": "The OEM extension property.", + "longDescription": "This property shall contain the OEM extensions. All values for properties contained in this object shall conform to the Redfish Specification-described requirements.", "versionAdded": "v1_4_0" } }, @@ -84,9 +84,9 @@ "FPGA": { "additionalProperties": false, "description": "The properties of the FPGA device.", - "longDescription": "This object shall contain the properties of the FPGA device represented by a Processor.", + "longDescription": "This object shall contain the properties of the FPGA device represented by a processor.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -105,27 +105,27 @@ "items": { "$ref": "#/definitions/FpgaInterface" }, - "longDescription": "The value of this property shall be an array of objects that describe the external connectivity of the FPGA.", + "longDescription": "This property shall contain an array of objects that describe the external connectivity of the FPGA.", "type": "array", "versionAdded": "v1_4_0" }, "FirmwareId": { "description": "The FPGA firmware identifier.", - "longDescription": "The value of this property shall contain a string decsribing the FPGA firmware identifier.", + "longDescription": "This property shall contain a string decsribing the FPGA firmware identifier.", "readonly": true, "type": "string", "versionAdded": "v1_4_0" }, "FirmwareManufacturer": { "description": "The FPGA firmware manufacturer.", - "longDescription": "The value of this property shall contain a string decsribing the FPGA firmware manufacturer.", + "longDescription": "This property shall contain a string decsribing the FPGA firmware manufacturer.", "readonly": true, "type": "string", "versionAdded": "v1_4_0" }, "FirmwareVersion": { "description": "The FPGA firmware version.", - "longDescription": "The value of this property shall contain a string decsribing the FPGA firmware version.", + "longDescription": "This property shall contain a string decsribing the FPGA firmware version.", "readonly": true, "type": "string", "versionAdded": "v1_4_0" @@ -133,39 +133,39 @@ "FpgaType": { "$ref": "#/definitions/FpgaType", "description": "The FPGA type.", - "longDescription": "The value of this property shall be a type of the FPGA device.", + "longDescription": "This property shall contain a type of the FPGA device.", "readonly": true, "versionAdded": "v1_4_0" }, "HostInterface": { "$ref": "#/definitions/FpgaInterface", "description": "The FPGA interface to the host.", - "longDescription": "The value of this property shall be an object that describes the connectivity to the host for system software to use.", + "longDescription": "This property shall contain an object that describes the connectivity to the host for system software to use.", "versionAdded": "v1_4_0" }, "Model": { "description": "The FPGA model.", - "longDescription": "The value of this property shall be a model of the FPGA device.", + "longDescription": "This property shall contain a model of the FPGA device.", "readonly": true, "type": "string", "versionAdded": "v1_4_0" }, "Oem": { "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem", - "description": "Oem extension object.", - "longDescription": "This object represents the Oem property. All values for resources described by this schema shall comply to the requirements as described in the Redfish specification.", + "description": "The OEM extension property.", + "longDescription": "This property shall contain the OEM extensions. All values for properties contained in this object shall conform to the Redfish Specification-described requirements.", "versionAdded": "v1_4_0" }, "PCIeVirtualFunctions": { "description": "The number of the PCIe Virtual Functions.", - "longDescription": "The value of this property shall be an integer that describes the number of PCIe Virtual Functions configured within the FPGA.", + "longDescription": "This property shall contain an integer that describes the number of PCIe Virtual Functions configured within the FPGA.", "readonly": false, "type": "integer", "versionAdded": "v1_4_0" }, "ProgrammableFromHost": { - "description": "This flag indicates if the FPGA firmware can be reprogrammed from the host using system software.", - "longDescription": "The value of this property shall indicate whether the FPGA firmware can be reprogrammed from the host using system software. If set to false, system software shall not be able to program the FPGA firmware from the host interface. In either state, a management controller may be able to program the FPGA firmware using the sideband interface.", + "description": "An indication of whether the FPGA firmware can be reprogrammed from the host by using system software.", + "longDescription": "This property shall indicate whether the FPGA firmware can be reprogrammed from the host by using system software. If false, system software shall not be able to program the FPGA firmware from the system interface. In either state, a management controller may be able to program the FPGA firmware by using the sideband interface.", "readonly": false, "type": [ "boolean", @@ -174,11 +174,11 @@ "versionAdded": "v1_4_0" }, "ReconfigurationSlots": { - "description": "An array of the FPGA reconfiguration slots. A reconfiguration slot is used by an FPGA to contain an acceleration function that can change as the FPGA is being provisioned.", + "description": "An array of the FPGA reconfiguration slots. An FPGA uses a reconfiguration slot to contain an acceleration function that can change as the FPGA is provisioned.", "items": { "$ref": "#/definitions/FpgaReconfigurationSlot" }, - "longDescription": "The value of this property shall be an array of the structures describing the FPGA reconfiguration slots that can be programmed with the acceleration functions.", + "longDescription": "This property shall contain an array of the structures that describe the FPGA reconfiguration slots that the acceleration functions can program.", "type": "array", "versionAdded": "v1_4_0" } @@ -190,7 +190,7 @@ "description": "This type describes an interface to the FPGA.", "longDescription": "This type shall contain information about the interface to the FPGA.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -205,16 +205,9 @@ }, "properties": { "Ethernet": { - "anyOf": [ - { - "$ref": "#/definitions/EthernetInterface" - }, - { - "type": "null" - } - ], - "description": "Describes the Ethernet related information about this FPGA interface.", - "longDescription": "The value of this property shall be an object the describes the Ethernet related information about this FPGA interface.", + "$ref": "#/definitions/EthernetInterface", + "description": "The Ethernet-related information for this FPGA interface.", + "longDescription": "This property shall contain an object the describes the Ethernet-related information for this FPGA interface.", "versionAdded": "v1_4_0" }, "InterfaceType": { @@ -227,21 +220,14 @@ } ], "description": "The FPGA interface type.", - "longDescription": "The value of this property shall be an enum that describes the type of interface to the FPGA.", + "longDescription": "This property shall contain an enumerated value that describes the type of interface to the FPGA.", "readonly": true, "versionAdded": "v1_4_0" }, "PCIe": { - "anyOf": [ - { - "$ref": "http://redfish.dmtf.org/schemas/v1/PCIeDevice.json#/definitions/PCIeInterface" - }, - { - "type": "null" - } - ], - "description": "Describes the PCI-e related information about this FPGA interface.", - "longDescription": "The value of this property shall be an object the describes the PCI-e related information about this FPGA interface.", + "$ref": "http://redfish.dmtf.org/schemas/v1/PCIeDevice.json#/definitions/PCIeInterface", + "description": "The PCIe-related information for this FPGA interface.", + "longDescription": "This property shall contain an object the describes the PCIe-related information for this FPGA interface.", "versionAdded": "v1_4_0" } }, @@ -257,7 +243,7 @@ ], "enumDescriptions": { "Ethernet": "An Ethernet interface.", - "OEM": "An OEM defined interface.", + "OEM": "An OEM-defined interface.", "PCIe": "A PCI Express interface.", "QPI": "The Intel QuickPath Interconnect.", "UPI": "The Intel UltraPath Interconnect." @@ -266,10 +252,10 @@ }, "FpgaReconfigurationSlot": { "additionalProperties": false, - "description": "This type describes the FPGA reconfiguration slot. A reconfiguration slot is used by an FPGA to contain an acceleration function that can change as the FPGA is being provisioned.", + "description": "This type describes the FPGA reconfiguration slot. An FPGA uses a reconfiguration slot to contain an acceleration function that can change as the FPGA is provisioned.", "longDescription": "This type shall contain information about the FPGA reconfiguration slot.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -284,22 +270,15 @@ }, "properties": { "AccelerationFunction": { - "anyOf": [ - { - "$ref": "http://redfish.dmtf.org/schemas/v1/AccelerationFunction.json#/definitions/AccelerationFunction" - }, - { - "type": "null" - } - ], - "description": "A link to the Acceleration Function provided by the code programmed into a reconfiguration slot.", - "longDescription": "The value of this property shall be a reference to the acceleration function resources provided by the code programmed into a reconfiguration slot and shall reference a resource of type AccelerationFunction.", + "$ref": "http://redfish.dmtf.org/schemas/v1/AccelerationFunction.json#/definitions/AccelerationFunction", + "description": "The link to the acceleration function that the code programmed into a reconfiguration slot provides.", + "longDescription": "This property shall contain a link to the acceleration function that the code programmed into a reconfiguration slot provides. It shall link to a Resource of type AccelerationFunction.", "readonly": true, "versionAdded": "v1_4_0" }, "ProgrammableFromHost": { - "description": "This flag indicates if the reconfiguration slot can be reprogrammed from the host using system software.", - "longDescription": "The value of this property shall indicate whether the reconfiguration slot can be reprogrammed from the host using system software. If set to false, system software shall not be able to program the reconfiguration slot from the host interface. In either state, a management controller may be able to program the reconfiguration slot using the sideband interface.", + "description": "An indication of whether the reconfiguration slot can be reprogrammed from the host by using system software.", + "longDescription": "This property shall indicate whether the reconfiguration slot can be reprogrammed from the host by using system software. If false, system software shall not be able to program the reconfiguration slot from the system interface. In either state, a management controller may be able to program the reconfiguration slot by using the sideband interface.", "readonly": false, "type": [ "boolean", @@ -309,7 +288,7 @@ }, "SlotId": { "description": "The FPGA reconfiguration slot identifier.", - "longDescription": "The value of this property shall be the FPGA reconfiguration slot identifier.", + "longDescription": "This property shall contain the FPGA reconfiguration slot identifier.", "readonly": true, "type": [ "string", @@ -326,8 +305,8 @@ "type": "null" } ], - "description": "The universal unique identifier (UUID) for this reconfiguration slot.", - "longDescription": "The value of this property shall be used to contain a universal unique identifier number for the reconfiguration slot.", + "description": "The UUID for this reconfiguration slot.", + "longDescription": "This property shall contain a universal unique identifier number for the reconfiguration slot.", "readonly": true, "versionAdded": "v1_4_0" } @@ -341,7 +320,7 @@ ], "enumDescriptions": { "Discrete": "The discrete FPGA device.", - "Integrated": "The FPGA device integrasted with other porcessor in the single chip." + "Integrated": "The FPGA device integrasted with other processor in the single chip." }, "type": "string" }, @@ -375,10 +354,10 @@ }, "Links": { "additionalProperties": false, - "description": "Contains references to other resources that are related to this resource.", - "longDescription": "This type, as described by the Redfish Specification, shall contain references to resources that are related to, but not contained by (subordinate to), this resource.", + "description": "The links to other Resources that are related to this Resource.", + "longDescription": "The Redfish Specification-described type shall contain links to Resources related to but not subordinate to this Resource.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -394,78 +373,71 @@ "properties": { "Chassis": { "$ref": "http://redfish.dmtf.org/schemas/v1/Chassis.json#/definitions/Chassis", - "description": "A reference to the Chassis which contains this Processor.", - "longDescription": "The value of this property shall be a reference to a resource of type Chassis that represent the physical container associated with this Processor.", + "description": "The link to the chassis that contains this processor.", + "longDescription": "This property shall contain a link to a Resource of type chassis that represents the physical container associated with this processor.", "readonly": true, "versionAdded": "v1_1_0" }, "ConnectedProcessors": { - "description": "An array of references to the processors directly connected to this processor.", + "description": "An array of links to the processors directly connected to this processor.", "items": { "$ref": "http://redfish.dmtf.org/schemas/v1/Processor.json#/definitions/Processor" }, - "longDescription": "The value of this property shall be an array of references of type Processor that are directly connected to this Processor.", + "longDescription": "This property shall contain an array of links of the Processor type that are directly connected to this Processor.", "readonly": true, "type": "array", "versionAdded": "v1_4_0" }, "ConnectedProcessors@odata.count": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/count" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/count" }, "Endpoints": { - "description": "An array of references to the endpoints that connect to this processor.", + "description": "An array of links to the endpoints that connect to this processor.", "items": { "$ref": "http://redfish.dmtf.org/schemas/v1/Endpoint.json#/definitions/Endpoint" }, - "longDescription": "The value of this property shall be an array of references of type Endpoint that represent Endpoints accociated with this Processor.", + "longDescription": "This property shall contain an array of links of the Endpoint type that represent endpoints accociated with this Processor.", "readonly": true, "type": "array", "versionAdded": "v1_4_0" }, "Endpoints@odata.count": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/count" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/count" }, "Oem": { "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem", - "description": "Oem extension object.", - "longDescription": "This object represents the Oem property. All values for resources described by this schema shall comply to the requirements as described in the Redfish specification." + "description": "The OEM extension property.", + "longDescription": "This property shall contain the OEM extensions. All values for properties contained in this object shall conform to the Redfish Specification-described requirements." }, "PCIeDevice": { - "anyOf": [ - { - "$ref": "http://redfish.dmtf.org/schemas/v1/PCIeDevice.json#/definitions/PCIeDevice" - }, - { - "type": "null" - } - ], - "description": "A reference to the PCIeDevice associated with this Processor.", - "longDescription": "The value of this property shall be a reference of type PCIeDevice that represents the PCI-e Device associated with this Processor.", + "$ref": "http://redfish.dmtf.org/schemas/v1/PCIeDevice.json#/definitions/PCIeDevice", + "description": "The link to the PCIe device associated with this processor.", + "longDescription": "This property shall contain a link of the PCIeDevice type that represents the PCIe device associated with this processor.", "readonly": true, "versionAdded": "v1_4_0" }, "PCIeFunctions": { - "description": "An array of references to the PCIeFunctions associated with this Processor.", + "description": "An array of links to the PCIeFunctions associated with this Processor.", "items": { "$ref": "http://redfish.dmtf.org/schemas/v1/PCIeFunction.json#/definitions/PCIeFunction" }, - "longDescription": "The value of this property shall be an array of references of type PCIeFunction that represent the PCI-e Functions associated with this Processor.", + "longDescription": "This property shall contain an array of links of the PCIeFunction type that represent the PCIe functions associated with this Processor.", "readonly": true, "type": "array", "versionAdded": "v1_4_0" }, "PCIeFunctions@odata.count": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/count" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/count" } }, "type": "object" }, "OemActions": { "additionalProperties": true, - "description": "The available OEM specific actions for this resource.", - "longDescription": "This type shall contain any additional OEM actions for this resource.", + "description": "The available OEM-specific actions for this Resource.", + "longDescription": "This type shall contain the available OEM-specific actions for this Resource.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -483,10 +455,10 @@ }, "Processor": { "additionalProperties": false, - "description": "This is the schema definition for the Processor resource. It represents the properties of a processor attached to a System.", - "longDescription": "This resource shall be used to represent a single processor contained within a system.", + "description": "The Processor schema describes the information about a single processor that a system contains. A processor includes both performance characteristics, clock speed, architecture, core count, and so on, and compatibility, such as the CPU ID instruction results.", + "longDescription": "This Resource shall represent a single processor that a system contains. A processor includes both performance characteristics, clock speed, architecture, core count, and so on, and compatibility, such as the CPU ID instruction results.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -501,34 +473,34 @@ }, "properties": { "@odata.context": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/context" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/context" }, "@odata.etag": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/etag" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/etag" }, "@odata.id": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/id" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/id" }, "@odata.type": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/type" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/type" }, "AccelerationFunctions": { "$ref": "http://redfish.dmtf.org/schemas/v1/AccelerationFunctionCollection.json#/definitions/AccelerationFunctionCollection", - "description": "A reference to the collection of Acceleration Functions associated with this Processor.", - "longDescription": "The value of this property shall be a link to a collection of type AccelerationFunctionCollection.", + "description": "The link to the collection of acceleration functions associated with this processor.", + "longDescription": "This property shall contain a link to a Resource Collection of type AccelerationFunctionCollection.", "readonly": true, "versionAdded": "v1_4_0" }, "Actions": { "$ref": "#/definitions/Actions", - "description": "The available actions for this resource.", - "longDescription": "The Actions property shall contain the available actions for this resource.", + "description": "The available actions for this Resource.", + "longDescription": "This property shall contain the available actions for this Resource.", "versionAdded": "v1_1_0" }, "Assembly": { "$ref": "http://redfish.dmtf.org/schemas/v1/Assembly.json#/definitions/Assembly", - "description": "A reference to the Assembly resource associated with this processor.", - "longDescription": "The value of this property shall be a link to a resource of type Assembly.", + "description": "The link to an assembly associated with this processor.", + "longDescription": "This property shall contain a link to a Resource of type assembly.", "readonly": true, "versionAdded": "v1_2_0" }, @@ -544,16 +516,9 @@ "readonly": true }, "FPGA": { - "anyOf": [ - { - "$ref": "#/definitions/FPGA" - }, - { - "type": "null" - } - ], - "description": "The properties specific for Processors of type FPGA.", - "longDescription": "The value of this property shall be an object containing properties specific for Processors of type FPGA.", + "$ref": "#/definitions/FPGA", + "description": "The properties for processors of the FPGA type.", + "longDescription": "This property shall contain an object containing properties for processors of the FPGA type.", "versionAdded": "v1_4_0" }, "Id": { @@ -570,24 +535,24 @@ } ], "description": "The instruction set of the processor.", - "longDescription": "This property shall contain the string which identifies the instruction set of the processor contained in this socket.", + "longDescription": "This property shall contain the string that identifies the instruction set of the processor contained in this socket.", "readonly": true }, "Links": { "$ref": "#/definitions/Links", - "description": "Contains references to other resources that are related to this resource.", - "longDescription": "The Links property, as described by the Redfish Specification, shall contain references to resources that are related to, but not contained by (subordinate to), this resource.", + "description": "The links to other Resources that are related to this Resource.", + "longDescription": "The Redfish Specification-described Links Property shall contain links to Resources related to but not subordinate to this Resource.", "versionAdded": "v1_1_0" }, "Location": { "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Location", - "description": "The Location of the processor.", + "description": "The location of the processor.", "longDescription": "This property shall contain location information of the associated processor.", "versionAdded": "v1_2_0" }, "Manufacturer": { "description": "The processor manufacturer.", - "longDescription": "This property shall contain a string which identifies the manufacturer of the processor.", + "longDescription": "This property shall contain a string that identifies the manufacturer of the processor.", "readonly": true, "type": [ "string", @@ -606,7 +571,7 @@ }, "MaxTDPWatts": { "description": "The maximum Thermal Design Power (TDP) in watts.", - "longDescription": "The value of this property shall be the maximum Thermal Design Power (TDP) in watts.", + "longDescription": "This property shall contain the maximum Thermal Design Power (TDP) in watts.", "readonly": true, "type": [ "integer", @@ -616,16 +581,9 @@ "versionAdded": "v1_4_0" }, "Metrics": { - "anyOf": [ - { - "$ref": "http://redfish.dmtf.org/schemas/v1/ProcessorMetrics.json#/definitions/ProcessorMetrics" - }, - { - "type": "null" - } - ], - "description": "A reference to the Metrics associated with this Processor.", - "longDescription": "This property shall be a reference to the Metrics associated with this Processor.", + "$ref": "http://redfish.dmtf.org/schemas/v1/ProcessorMetrics.json#/definitions/ProcessorMetrics", + "description": "The link to the metrics associated with this processor.", + "longDescription": "This property shall contain a link to the metrics associated with this processor.", "readonly": true, "versionAdded": "v1_4_0" }, @@ -644,8 +602,8 @@ }, "Oem": { "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem", - "description": "This is the manufacturer/provider specific extension moniker used to divide the Oem object into sections.", - "longDescription": "The value of this string shall be of the format for the reserved word *Oem*." + "description": "The OEM extension property.", + "longDescription": "This property shall contain the OEM extensions. All values for properties that this object contains shall conform to the Redfish Specification-described requirements." }, "ProcessorArchitecture": { "anyOf": [ @@ -657,12 +615,12 @@ } ], "description": "The architecture of the processor.", - "longDescription": "This property shall contain the string which identifies the architecture of the processor contained in this Socket.", + "longDescription": "This property shall contain the string that identifies the architecture of the processor contained in this Socket.", "readonly": true }, "ProcessorId": { "$ref": "#/definitions/ProcessorId", - "description": "Identification information for this processor.", + "description": "The identification information for this processor.", "longDescription": "This object shall contain identification information for this processor." }, "ProcessorMemory": { @@ -670,7 +628,7 @@ "items": { "$ref": "#/definitions/ProcessorMemory" }, - "longDescription": "The value of this property shall be the memory directly attached or integrated witin this Processor.", + "longDescription": "This property shall contain the memory directly attached or integrated witin this Processor.", "type": "array", "versionAdded": "v1_4_0" }, @@ -684,12 +642,12 @@ } ], "description": "The type of processor.", - "longDescription": "This property shall contain the string which identifies the type of processor contained in this Socket.", + "longDescription": "This property shall contain the string that identifies the type of processor contained in this Socket.", "readonly": true }, "Socket": { "description": "The socket or location of the processor.", - "longDescription": "This property shall contain the string which identifies the physical location or socket of the processor.", + "longDescription": "This property shall contain the string that identifies the physical location or socket of the processor.", "readonly": true, "type": [ "string", @@ -698,19 +656,19 @@ }, "Status": { "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Status", - "description": "This property describes the status and health of the resource and its children.", - "longDescription": "This property shall contain any status or health properties of the resource." + "description": "The status and health of the Resource and its subordinate or dependent Resources.", + "longDescription": "This property shall contain any status or health properties of the Resource." }, "SubProcessors": { "$ref": "http://redfish.dmtf.org/schemas/v1/ProcessorCollection.json#/definitions/ProcessorCollection", - "description": "A reference to the collection of Sub-Processors associated with this system, such as cores or threads that are part of a processor.", - "longDescription": "The value of this property shall be a link to a collection of type ProcessorCollection.", + "description": "The link to the collection of subprocessors associated with this system, such as cores or threads, that are part of a processor.", + "longDescription": "This property shall contain a link to a Resource Collection of type ProcessorCollection.", "readonly": true, "versionAdded": "v1_3_0" }, "TDPWatts": { "description": "The nominal Thermal Design Power (TDP) in watts.", - "longDescription": "The value of this property shall be the nominal Thermal Design Power (TDP) in watts.", + "longDescription": "This property shall contain the nominal Thermal Design Power (TDP) in watts.", "readonly": true, "type": [ "integer", @@ -720,7 +678,7 @@ "versionAdded": "v1_4_0" }, "TotalCores": { - "description": "The total number of cores contained in this processor.", + "description": "The total number of cores that this processor contains.", "longDescription": "This property shall indicate the total count of independent processor cores contained within this processor.", "readonly": true, "type": [ @@ -728,9 +686,19 @@ "null" ] }, + "TotalEnabledCores": { + "description": "The total number of enabled cores that this processor contains.", + "longDescription": "This property shall indicate the total count of enabled independent processor cores contained within this processor.", + "readonly": true, + "type": [ + "integer", + "null" + ], + "versionAdded": "v1_5_0" + }, "TotalThreads": { - "description": "The total number of execution threads supported by this processor.", - "longDescription": "This property shall indicate the total count of independent execution threads supported by this processor.", + "description": "The total number of execution threads that this processor supports.", + "longDescription": "This property shall indicate the total count of independent execution threads that this processor supports.", "readonly": true, "type": [ "integer", @@ -746,8 +714,8 @@ "type": "null" } ], - "description": "The universal unique identifier (UUID) for this processor.", - "longDescription": "The value of this property shall be used to contain a universal unique identifier number for the processor. RFC4122 describes methods that can be used to create the value. The value should be considered to be opaque. Client software should only treat the overall value as a universally unique identifier and should not interpret any sub-fields within the UUID.", + "description": "The UUID for this processor.", + "longDescription": "This property shall contain a universal unique identifier number for the processor. RFC4122 describes methods to use to create the value. The value should be considered to be opaque. Client software should only treat the overall value as a universally unique identifier and should not interpret any sub-fields within the UUID.", "readonly": true, "versionAdded": "v1_4_0" } @@ -784,10 +752,10 @@ }, "ProcessorId": { "additionalProperties": false, - "description": "This type describes the Identification information for a processor.", + "description": "The identification information for a processor.", "longDescription": "This type shall contain identification information for a processor.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -802,7 +770,7 @@ }, "properties": { "EffectiveFamily": { - "description": "The effective Family for this processor.", + "description": "The effective family for this processor.", "longDescription": "This property shall indicate the effective Family information as provided by the manufacturer of this processor.", "readonly": true, "type": [ @@ -811,7 +779,7 @@ ] }, "EffectiveModel": { - "description": "The effective Model for this processor.", + "description": "The effective model for this processor.", "longDescription": "This property shall indicate the effective Model information as provided by the manufacturer of this processor.", "readonly": true, "type": [ @@ -820,8 +788,8 @@ ] }, "IdentificationRegisters": { - "description": "The contents of the Identification Registers (CPUID) for this processor.", - "longDescription": "This property shall include the raw CPUID instruction output as provided by the manufacturer of this processor.", + "description": "The raw manufacturer-provided CPUID instruction output for this processor.", + "longDescription": "This property shall contain the raw manufacturer-provided CPUID instruction output for this processor.", "readonly": true, "type": [ "string", @@ -829,7 +797,7 @@ ] }, "MicrocodeInfo": { - "description": "The Microcode Information for this processor.", + "description": "The microcode information for this processor.", "longDescription": "This property shall indicate the Microcode Information as provided by the manufacturer of this processor.", "readonly": true, "type": [ @@ -838,7 +806,7 @@ ] }, "Step": { - "description": "The Step value for this processor.", + "description": "The step value for this processor.", "longDescription": "This property shall indicate the Step or revision string information as provided by the manufacturer of this processor.", "readonly": true, "type": [ @@ -847,8 +815,8 @@ ] }, "VendorId": { - "description": "The Vendor Identification for this processor.", - "longDescription": "This property shall indicate the Vendor Identification string information as provided by the manufacturer of this processor.", + "description": "The vendor identification for this processor.", + "longDescription": "This property shall indicate the vendor Identification string information as provided by the manufacturer of this processor.", "readonly": true, "type": [ "string", @@ -863,7 +831,7 @@ "description": "This type describes the memory directly attached or integrated within a processor.", "longDescription": "This type shall contain information about memory directly attached or integratied within a processor.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -879,7 +847,7 @@ "properties": { "CapacityMiB": { "description": "The memory capacity in MiB.", - "longDescription": "The value of this property shall be the memory capacity in MiB.", + "longDescription": "This property shall contain the memory capacity in MiB.", "readonly": true, "type": [ "integer", @@ -889,8 +857,8 @@ "versionAdded": "v1_4_0" }, "IntegratedMemory": { - "description": "This indicates whether this memory is integrated within the Processor.", - "longDescription": "The value of this property shall be a boolean indicating whether this memory is integrated within the Porcessor. Otherwise it is discrete memory attached to the Processor.", + "description": "An indication of whether this memory is integrated within the processor.", + "longDescription": "This property shall indicate whether this memory is integrated within the processor. Otherwise, it is discrete memory attached to the processor.", "readonly": true, "type": [ "boolean", @@ -908,13 +876,13 @@ } ], "description": "The type of memory used by this processor.", - "longDescription": "The value of this property shall be a type of the processor memory type.", + "longDescription": "This property shall contain a type of the processor memory type.", "readonly": true, "versionAdded": "v1_4_0" }, "SpeedMHz": { "description": "The operating speed of the memory in MHz.", - "longDescription": "The value of this property shall be the operating speed of the memory in MHz.", + "longDescription": "This property shall contain the operating speed of the memory in MHz.", "readonly": true, "type": [ "integer", @@ -998,14 +966,14 @@ "OEM" ], "enumDescriptions": { - "Accelerator": "An Accelerator.", - "CPU": "A Central Processing Unit.", - "Core": "A Core in a Processor.", - "DSP": "A Digital Signal Processor.", - "FPGA": "A Field Programmable Gate Array.", - "GPU": "A Graphics Processing Unit.", - "OEM": "An OEM-defined Processing Unit.", - "Thread": "A Thread in a Processor." + "Accelerator": "An accelerator.", + "CPU": "A CPU.", + "Core": "A core in a processor.", + "DSP": "A DSP.", + "FPGA": "An FPGA.", + "GPU": "A GPU.", + "OEM": "An OEM-defined processing unit.", + "Thread": "A thread in a processor." }, "enumVersionAdded": { "Core": "v1_3_0", @@ -1015,6 +983,6 @@ } }, "owningEntity": "DMTF", - "release": "2018.3", - "title": "#Processor.v1_4_0.Processor" + "release": "2019.1", + "title": "#Processor.v1_5_1.Processor" } \ No newline at end of file diff --git a/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/ProcessorMetrics/ProcessorMetrics.json b/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/ProcessorMetrics/ProcessorMetrics.json index 65aa5bb7..1b9a37fd 100644 --- a/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/ProcessorMetrics/ProcessorMetrics.json +++ b/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/ProcessorMetrics/ProcessorMetrics.json @@ -1,15 +1,15 @@ { - "$id": "http://redfish.dmtf.org/schemas/v1/ProcessorMetrics.v1_0_0.json", + "$id": "http://redfish.dmtf.org/schemas/v1/ProcessorMetrics.v1_0_2.json", "$ref": "#/definitions/ProcessorMetrics", "$schema": "http://redfish.dmtf.org/schemas/v1/redfish-schema-v1.json", - "copyright": "Copyright 2014-2018 DMTF. For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright", + "copyright": "Copyright 2014-2019 DMTF. For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright", "definitions": { "Actions": { "additionalProperties": false, - "description": "The available actions for this resource.", - "longDescription": "This type shall contain the available actions for this resource.", + "description": "The available actions for this Resource.", + "longDescription": "This type shall contain the available actions for this Resource.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -25,8 +25,8 @@ "properties": { "Oem": { "$ref": "#/definitions/OemActions", - "description": "This property contains the available OEM specific actions for this resource.", - "longDescription": "This property shall contain any additional OEM actions for this resource." + "description": "The available OEM-specific actions for this Resource.", + "longDescription": "This property shall contain the available OEM-specific actions for this Resource." } }, "type": "object" @@ -34,9 +34,9 @@ "CStateResidency": { "additionalProperties": false, "description": "The C-state residency of the processor.", - "longDescription": "This type shall contain properties which describe the C-state residency of the processor or core.", + "longDescription": "This type shall contain properties that describe the C-state residency of the processor or core.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -51,8 +51,8 @@ }, "properties": { "Level": { - "description": "The level of C-state, e.g. C0, C1, C2.", - "longDescription": "The value of this property shall be the level of C-state.", + "description": "The C-state level, such as C0, C1, or C2.", + "longDescription": "This property shall contain the C-state level, such as C0, C1, or C2. When this Resource is subordinate to the ProcessorSummary object, this property is not applicable.", "readonly": true, "type": [ "string", @@ -61,7 +61,7 @@ }, "ResidencyPercent": { "description": "The percentage of time that the processor or core has spent in this particular level of C-state.", - "longDescription": "The value of this property shall be the percentage of time that the processor or core has spent in this particular level of C-state.", + "longDescription": "This property shall contain the percentage of time that the processor or core has spent in this particular level of C-state. When this Resource is subordinate to the ProcessorSummary object, this property is not applicable.", "minimum": 0, "readonly": true, "type": [ @@ -78,7 +78,7 @@ "description": "The processor core metrics.", "longDescription": "This type shall contain properties that describe cache metrics of a processor or core.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -94,7 +94,7 @@ "properties": { "CacheMiss": { "description": "The number of cache line misses in millions.", - "longDescription": "The value of this property shall be the number of cache line misses of the processor or core in millions.", + "longDescription": "This property shall contain the number of cache line misses of the processor or core in millions.", "readonly": true, "type": [ "number", @@ -103,7 +103,7 @@ }, "CacheMissesPerInstruction": { "description": "The number of cache misses per instruction.", - "longDescription": "The value of this property shall be the number of cache misses per instruction of the processor or core.", + "longDescription": "This property shall contain the number of cache misses per instruction of the processor or core.", "readonly": true, "type": [ "number", @@ -112,7 +112,7 @@ }, "HitRatio": { "description": "The cache line hit ratio.", - "longDescription": "The value of this property shall be the cache hit ratio of the processor or core.", + "longDescription": "This property shall contain the cache hit ratio of the processor or core.", "readonly": true, "type": [ "number", @@ -121,7 +121,7 @@ }, "Level": { "description": "The cache level.", - "longDescription": "This property shall be the level of the cache in the processor or core.", + "longDescription": "This property shall contain the level of the cache in the processor or core.", "readonly": true, "type": [ "string", @@ -130,7 +130,7 @@ }, "OccupancyBytes": { "description": "The total cache level occupancy in bytes.", - "longDescription": "The value of this property shall be the total cache occupancy of the processor or core in bytes.", + "longDescription": "This property shall contain the total cache occupancy of the processor or core in bytes.", "readonly": true, "type": [ "integer", @@ -140,7 +140,7 @@ }, "OccupancyPercent": { "description": "The total cache occupancy percentage.", - "longDescription": "The value of this property shall be the total cache occupancy percentage of the processor or core.", + "longDescription": "This property shall contain the total cache occupancy percentage of the processor or core.", "minimum": 0, "readonly": true, "type": [ @@ -157,7 +157,7 @@ "description": "The processor core metrics.", "longDescription": "This type shall contain properties that describe the cores of a processor.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -174,14 +174,7 @@ "CStateResidency": { "description": "The C-state residency of this core in the processor.", "items": { - "anyOf": [ - { - "$ref": "#/definitions/CStateResidency" - }, - { - "type": "null" - } - ] + "$ref": "#/definitions/CStateResidency" }, "longDescription": "This property shall contain properties that describe the C-state residency of this core in the processor.", "type": "array" @@ -189,21 +182,14 @@ "CoreCache": { "description": "The cache metrics of this core in the processor.", "items": { - "anyOf": [ - { - "$ref": "#/definitions/CacheMetrics" - }, - { - "type": "null" - } - ] + "$ref": "#/definitions/CacheMetrics" }, "longDescription": "This property shall contain properties that describe the cache metrics of this core in the processor.", "type": "array" }, "CoreId": { "description": "The processor core identifier.", - "longDescription": "This property shall be the processor core identifier.", + "longDescription": "This property shall contain the identifier of the core within the processor.", "readonly": true, "type": [ "string", @@ -212,7 +198,7 @@ }, "IOStallCount": { "description": "The number of stalled cycles due to I/O operations.", - "longDescription": "The value of this property shall be the number of stalled cycles due to I/O operations of this core in the processor.", + "longDescription": "This property shall contain the number of stalled cycles due to I/O operations of this core in the processor.", "readonly": true, "type": [ "number", @@ -221,7 +207,7 @@ }, "InstructionsPerCycle": { "description": "The number of instructions per clock cycle of this core.", - "longDescription": "The value of this property shall be the number of instructions per clock cycle of this core in the processor.", + "longDescription": "This property shall contain the number of instructions per clock cycle of this core in the processor.", "readonly": true, "type": [ "number", @@ -230,7 +216,7 @@ }, "MemoryStallCount": { "description": "The number of stalled cycles due to memory operations.", - "longDescription": "The value of this property shall be the number of stalled cycles due to memory operations of this core in the processor.", + "longDescription": "This property shall contain the number of stalled cycles due to memory operations of this core in the processor.", "readonly": true, "type": [ "number", @@ -239,7 +225,7 @@ }, "UnhaltedCycles": { "description": "The unhalted cycles count of this core.", - "longDescription": "The value of this property shall be the number of unhalted cycles of this core in the processor.", + "longDescription": "This property shall contain the number of unhalted cycles of this core in the processor.", "readonly": true, "type": [ "number", @@ -251,10 +237,10 @@ }, "OemActions": { "additionalProperties": true, - "description": "The available OEM specific actions for this resource.", - "longDescription": "This type shall contain any additional OEM actions for this resource.", + "description": "The available OEM-specific actions for this Resource.", + "longDescription": "This type shall contain the available OEM-specific actions for this Resource.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -272,10 +258,10 @@ }, "ProcessorMetrics": { "additionalProperties": false, - "description": "ProcessorMetrics contains usage and health statistics for a Processor (all Cores).", - "longDescription": "This resource shall be used to represent the Processor Metrics for a single Processor in a Redfish implementation.", + "description": "The ProcessorMetrics schema contains usage and health statistics for a processor.", + "longDescription": "This Resource contains the Processor Metrics for a single Processor in a Redfish implementation.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -290,25 +276,25 @@ }, "properties": { "@odata.context": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/context" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/context" }, "@odata.etag": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/etag" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/etag" }, "@odata.id": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/id" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/id" }, "@odata.type": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/type" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/type" }, "Actions": { "$ref": "#/definitions/Actions", - "description": "The available actions for this resource.", - "longDescription": "The Actions property shall contain the available actions for this resource." + "description": "The available actions for this Resource.", + "longDescription": "This property shall contain the available actions for this Resource." }, "AverageFrequencyMHz": { "description": "The average frequency of the processor.", - "longDescription": "The value of this property shall be average frequency across all enabled cores in the processor in MHz.", + "longDescription": "This property shall contain average frequency in MHz, across all enabled cores in the processor. When this Resource is subordinate to the ProcessorSummary object, this property is not applicable.", "readonly": true, "type": [ "number", @@ -318,7 +304,7 @@ }, "BandwidthPercent": { "description": "The CPU bandwidth as a percentage.", - "longDescription": "The value of this property shall be CPU utilization of the processor as a percentage.", + "longDescription": "This property shall contain CPU utilization of the processor as a percentage. When this Resource is subordinate to the ProcessorSummary object, this property shall be the CPU utilization over all processors as a percentage.", "minimum": 0, "readonly": true, "type": [ @@ -330,21 +316,14 @@ "Cache": { "description": "The processor cache metrics.", "items": { - "anyOf": [ - { - "$ref": "#/definitions/CacheMetrics" - }, - { - "type": "null" - } - ] + "$ref": "#/definitions/CacheMetrics" }, - "longDescription": "This property shall contain properties that describe this processor's cache.", + "longDescription": "This property shall contain properties that describe this processor's cache. When this Resource is subordinate to the ProcessorSummary object, this property is not applicable.", "type": "array" }, "ConsumedPowerWatt": { - "description": "The power consumed by the processor.", - "longDescription": "The value of this property shall be the power consumed by the processor in Watts.", + "description": "The power, in watts, that the processor has consumed.", + "longDescription": "This property shall contain the power, in watts, that the processor has consumed. When this Resource is subordinate to the ProcessorSummary object, this property shall be the sum of power, in watts, that all processors have consumed.", "readonly": true, "type": [ "number", @@ -355,16 +334,9 @@ "CoreMetrics": { "description": "The processor core metrics.", "items": { - "anyOf": [ - { - "$ref": "#/definitions/CoreMetrics" - }, - { - "type": "null" - } - ] + "$ref": "#/definitions/CoreMetrics" }, - "longDescription": "This property shall contain properties that describe the cores of this processor.", + "longDescription": "This property shall contain properties that describe the cores of this processor. When this Resource is subordinate to the ProcessorSummary object, this property is not applicable.", "type": "array" }, "Description": { @@ -380,7 +352,7 @@ }, "FrequencyRatio": { "description": "The frequency relative to the nominal processor frequency ratio.", - "longDescription": "The value of this property shall be the frequency relative to the nominal processor frequency ratio of this processor.", + "longDescription": "This property shall contain the frequency relative to the nominal processor frequency ratio of this processor. When this Resource is subordinate to the ProcessorSummary object, this property shall be the average FrequencyRatio over all processors.", "readonly": true, "type": [ "number", @@ -393,7 +365,7 @@ }, "KernelPercent": { "description": "The percentage of time spent in kernel mode.", - "longDescription": "The value of this property shall be total percentage of time the processor has spent in kernel mode.", + "longDescription": "This property shall contain total percentage of time the processor has spent in kernel mode. When this Resource is subordinate to the ProcessorSummary object, this property shall be the average KernelPercent over all processors.", "minimum": 0, "readonly": true, "type": [ @@ -404,7 +376,7 @@ }, "LocalMemoryBandwidthBytes": { "description": "The local memory bandwidth usage in bytes.", - "longDescription": "The value of this property shall be the local memory bandwidth usage of this processor in bytes.", + "longDescription": "This property shall contain the local memory bandwidth usage of this processor in bytes. When this Resource is subordinate to the ProcessorSummary object, this property shall be the sum of LocalMemoryBandwidthBytes over all processors.", "readonly": true, "type": [ "integer", @@ -418,12 +390,12 @@ }, "Oem": { "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem", - "description": "This is the manufacturer/provider specific extension moniker used to divide the Oem object into sections.", - "longDescription": "The value of this string shall be of the format for the reserved word *Oem*." + "description": "The OEM extension property.", + "longDescription": "This property shall contain the OEM extensions. All values for properties that this object contains shall conform to the Redfish Specification-described requirements." }, "RemoteMemoryBandwidthBytes": { "description": "The remote memory bandwidth usage in bytes.", - "longDescription": "The value of this property shall be the remote memory bandwidth usage of this processor in bytes.", + "longDescription": "This property shall contain the remote memory bandwidth usage of this processor in bytes. When this Resource is subordinate to the ProcessorSummary object, this property shall be the sum of RemoteMemoryBandwidthBytes over all processors.", "readonly": true, "type": [ "integer", @@ -433,7 +405,7 @@ }, "TemperatureCelsius": { "description": "The temperature of the processor.", - "longDescription": "The value of this property shall be the temperature of the processor in Celsius.", + "longDescription": "This property shall contain the temperature, in Celsius, of the processor. When this Resource is subordinate to the ProcessorSummary object, this property shall be the average temperature, in Celcius, over all processors.", "readonly": true, "type": [ "number", @@ -443,7 +415,7 @@ }, "ThrottlingCelsius": { "description": "The CPU margin to throttle (temperature offset in degree Celsius).", - "longDescription": "The value of this property shall be the CPU margin to throttle based on an offset between the maximum temperature in which the processor can operate, and the processor's current temperature.", + "longDescription": "This property shall contain the CPU margin to throttle based on an offset between the maximum temperature in which the processor can operate, and the processor's current temperature. When this Resource is subordinate to the ProcessorSummary object, this property is not applicable.", "readonly": true, "type": [ "number", @@ -453,7 +425,7 @@ }, "UserPercent": { "description": "The percentage of time spent in user mode.", - "longDescription": "The value of this property shall be total percentage of time the processor has spent in user mode.", + "longDescription": "This property shall contain total percentage of time the processor has spent in user mode. When this Resource is subordinate to the ProcessorSummary object, this property shall be the average UserPercent over all processors.", "minimum": 0, "readonly": true, "type": [ @@ -474,5 +446,5 @@ }, "owningEntity": "DMTF", "release": "2018.3", - "title": "#ProcessorMetrics.v1_0_0.ProcessorMetrics" + "title": "#ProcessorMetrics.v1_0_2.ProcessorMetrics" } \ No newline at end of file diff --git a/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/Redundancy/Redundancy.json b/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/Redundancy/Redundancy.json index 58cc138e..1ec0a41a 100644 --- a/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/Redundancy/Redundancy.json +++ b/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/Redundancy/Redundancy.json @@ -1,14 +1,14 @@ { - "$id": "http://redfish.dmtf.org/schemas/v1/Redundancy.v1_3_2.json", + "$id": "http://redfish.dmtf.org/schemas/v1/Redundancy.v1_3_4.json", "$schema": "http://redfish.dmtf.org/schemas/v1/redfish-schema-v1.json", - "copyright": "Copyright 2014-2018 DMTF. For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright", + "copyright": "Copyright 2014-2019 DMTF. For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright", "definitions": { "Actions": { "additionalProperties": false, - "description": "The available actions for this resource.", - "longDescription": "This type shall contain the available actions for this resource.", + "description": "The available actions for this Resource.", + "longDescription": "This type shall contain the available actions for this Resource.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -24,8 +24,8 @@ "properties": { "Oem": { "$ref": "#/definitions/OemActions", - "description": "This property contains the available OEM specific actions for this resource.", - "longDescription": "This property shall contain any additional OEM actions for this resource.", + "description": "The available OEM-specific actions for this Resource.", + "longDescription": "This property shall contain the available OEM-specific actions for this Resource.", "versionAdded": "v1_2_0" } }, @@ -33,10 +33,10 @@ }, "OemActions": { "additionalProperties": true, - "description": "The available OEM specific actions for this resource.", - "longDescription": "This type shall contain any additional OEM actions for this resource.", + "description": "The available OEM-specific actions for this Resource.", + "longDescription": "This type shall contain the available OEM-specific actions for this Resource.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -54,10 +54,10 @@ }, "Redundancy": { "additionalProperties": false, - "description": "This is the redundancy definition to be used in other resource schemas.", - "longDescription": "This object represents the Redundancy element property. All values for resources described by this schema shall comply to the requirements as described in the Redfish specification. The value of this string shall be of the format for the reserved word *Redundancy*.", + "description": "The common redundancy definition and structure used in other Redfish schemas.", + "longDescription": "This object represents the redundancy element property.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -72,17 +72,17 @@ }, "properties": { "@odata.id": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/id" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/id" }, "Actions": { "$ref": "#/definitions/Actions", - "description": "The available actions for this resource.", - "longDescription": "The Actions property shall contain the available actions for this resource.", + "description": "The available actions for this Resource.", + "longDescription": "This property shall contain the available actions for this Resource.", "versionAdded": "v1_2_0" }, "MaxNumSupported": { - "description": "This is the maximum number of members allowable for this particular redundancy group.", - "longDescription": "The value of this property shall contain the maximum number of members allowed in the redundancy group.", + "description": "The maximum number of members allowable for this particular redundancy group.", + "longDescription": "This property shall contain the maximum number of members allowed in the redundancy group.", "readonly": true, "type": [ "integer", @@ -90,14 +90,14 @@ ] }, "MemberId": { - "description": "This is the identifier for the member within the collection.", - "longDescription": "The value of this string shall uniquely identify the member within the collection.", + "description": "The identifier for the member within the collection.", + "longDescription": "This property shall uniquely identify the member within the collection. For services supporting Redfish v1.6 or higher, this value shall contain the zero-based array index.", "readonly": true, "type": "string" }, "MinNumNeeded": { - "description": "This is the minumum number of members needed for this group to be redundant.", - "longDescription": "The value of this property shall contain the minimum number of members allowed in the redundancy group for the current redundancy mode to still be fault tolerant.", + "description": "The minumum number of members needed for this group to be redundant.", + "longDescription": "This property shall contain the minimum number of members allowed in the redundancy group for the current redundancy mode to still be fault tolerant.", "readonly": true, "type": [ "integer", @@ -113,24 +113,24 @@ "type": "null" } ], - "description": "This is the redundancy mode of the group.", - "longDescription": "The value of this property shall contain the information about the redundancy mode of this subsystem.", + "description": "The redundancy mode of the group.", + "longDescription": "This property shall contain the information about the redundancy mode of this subsystem.", "readonly": false }, "Name": { - "description": "The name of the resource or array element.", - "longDescription": "This object represents the Name property. All values for resources described by this schema shall comply to the requirements as described in the Redfish specification. The value of this string shall be of the format for the reserved word *Name*.", + "description": "The name of the Resource or array member.", + "longDescription": "This object represents the name of this Resource or array member. The Resource values shall comply with the Redfish Specification-described requirements. This string value shall be of the 'Name' reserved word format.", "readonly": true, "type": "string" }, "Oem": { "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem", - "description": "This is the manufacturer/provider specific extension moniker used to divide the Oem object into sections.", - "longDescription": "The value of this string shall be of the format for the reserved word *Oem*." + "description": "The OEM extension property.", + "longDescription": "This property shall contain the OEM extensions. All values for properties that this object contains shall conform to the Redfish Specification-described requirements." }, "RedundancyEnabled": { - "description": "This indicates whether redundancy is enabled.", - "longDescription": "The value of this property shall be a boolean indicating whether the redundancy is enabled.", + "description": "An indication of whether redundancy is enabled.", + "longDescription": "This property shall indicate whether the redundancy is enabled.", "readonly": false, "type": [ "boolean", @@ -139,21 +139,21 @@ "versionAdded": "v1_1_0" }, "RedundancySet": { - "description": "Contains any ids that represent components of this redundancy set.", + "description": "The links to components of this redundancy set.", "items": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/idRef" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/idRef" }, - "longDescription": "The value of this property shall contain the ids of components that are part of this redundancy set. The id values may or may not be dereferenceable.", + "longDescription": "This property shall contain the links to components that are part of this redundancy set.", "readonly": true, "type": "array" }, "RedundancySet@odata.count": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/count" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/count" }, "Status": { "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Status", - "description": "This property describes the status and health of the resource and its children.", - "longDescription": "This property shall contain any status or health properties of the resource." + "description": "The status and health of the Resource and its subordinate or dependent Resources.", + "longDescription": "This property shall contain any status or health properties of the Resource." } }, "required": [ @@ -176,7 +176,7 @@ "NotRedundant" ], "enumDescriptions": { - "Failover": "Failure of one unit will automatically cause its functions to be taken over by a standby or offline unit in the redundancy set.", + "Failover": "Failure of one unit automatically causes a standby or offline unit in the redundancy set to take over its functions.", "N+m": "Multiple units are available and active such that normal operation will continue if one or more units fail.", "NotRedundant": "The subsystem is not configured in a redundancy mode, either due to configuration or the functionality has been disabled by the user.", "Sharing": "Multiple units contribute or share such that operation will continue, but at a reduced capacity, if one or more units fail.", @@ -190,5 +190,5 @@ }, "owningEntity": "DMTF", "release": "2017.3", - "title": "#Redundancy.v1_3_2" + "title": "#Redundancy.v1_3_4" } \ No newline at end of file diff --git a/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/Resource/Resource.json b/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/Resource/Resource.json index a1291ea9..8dab6453 100644 --- a/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/Resource/Resource.json +++ b/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/Resource/Resource.json @@ -1,14 +1,14 @@ { - "$id": "http://redfish.dmtf.org/schemas/v1/Resource.v1_8_0.json", + "$id": "http://redfish.dmtf.org/schemas/v1/Resource.v1_8_2.json", "$schema": "http://redfish.dmtf.org/schemas/v1/redfish-schema-v1.json", - "copyright": "Copyright 2014-2018 DMTF. For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright", + "copyright": "Copyright 2014-2019 DMTF. For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright", "definitions": { "ContactInfo": { "additionalProperties": false, - "description": "Contact information for this resource.", - "longDescription": "This object shall contain contact information used to obtain more information from an individual or organization responsible for this resource.", + "description": "Contact information for this Resource.", + "longDescription": "This object shall contain contact information for an individual or organization responsible for this Resource.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -24,7 +24,7 @@ "properties": { "ContactName": { "description": "Name of this contact.", - "longDescription": "The value shall contain the name of a person or organization to contact for information about this resource.", + "longDescription": "This property shall contain the name of a person or organization to contact for information about this Resource.", "readonly": false, "type": [ "string", @@ -34,7 +34,7 @@ }, "EmailAddress": { "description": "Email address for this contact.", - "longDescription": "The value shall contain the email address for a person or organization to contact for information about this resource.", + "longDescription": "This property shall contain the email address for a person or organization to contact for information about this Resource.", "readonly": false, "type": [ "string", @@ -44,7 +44,7 @@ }, "PhoneNumber": { "description": "Phone number for this contact.", - "longDescription": "The value shall contain the phone number for a person or organization to contact for information about this resource.", + "longDescription": "This property shall contain the phone number for a person or organization to contact for information about this Resource.", "readonly": false, "type": [ "string", @@ -66,22 +66,22 @@ "NSID" ], "enumDescriptions": { - "EUI": "IEEE-defined 64-bit Extended Unique Identifier.", - "FC_WWN": "Fibre Channel World Wide Name.", - "NAA": "Name Address Authority Format.", - "NQN": "NVMe Qualified Name.", - "NSID": "NVM Namespace Identifier.", - "UUID": "Universally Unique Identifier.", - "iQN": "iSCSI Qualified Name." + "EUI": "The IEEE-defined 64-bit Extended Unique Identifier (EUI).", + "FC_WWN": "The Fibre Channel (FC) World Wide Name (WWN).", + "NAA": "The Name Address Authority (NAA) format.", + "NQN": "The NVMe Qualified Name (NQN).", + "NSID": "The NVM Namespace Identifier (NSID).", + "UUID": "The Universally Unique Identifier (UUID).", + "iQN": "The iSCSI Qualified Name (iQN)." }, "enumLongDescriptions": { - "EUI": "This durable name shall be the hexadecimal representation of the IEEE-defined 64-bit Extended Unique Identifier as defined in the IEEE's Guidelines for 64-bit Global Identifier (EUI-64) Specification.", - "FC_WWN": "This durable name shall be a hexadecimal representation of the World Wide Name format as defined in the T11 Fibre Channel Physical and Signaling Interface Specification.", - "NAA": "This durable name shall be a hexadecimal representation of the Name Address Authority structure as defined in the T11 Fibre Channel - Framing and Signaling - 3 (FC-FS-3) specification.", - "NQN": "This durable name shall be in the NVMe Qualified Name format as defined in the NVN Express over Fabric Specification.", - "NSID": "This durable name shall be in the NVM Namespace Identifier format as defined in the NVN Express Specification.", - "UUID": "This durable name shall be the hexadecimal representation of the Universal Unique Identifier as defined in the Internation Telecom Union's OSI networking and system aspects - Naming, Addressing and Registration Specification.", - "iQN": "This durable name shall be in the iSCSI Qualified Name format as defined in RFC 3720 and RFC 3721." + "EUI": "This durable name shall contain the hexadecimal representation of the IEEE-defined 64-bit Extended Unique Identifier (EUI), as defined in the IEEE's Guidelines for 64-bit Global Identifier (EUI-64) Specification.", + "FC_WWN": "This durable name shall contain a hexadecimal representation of the World-Wide Name (WWN) format, as defined in the T11 Fibre Channel Physical and Signaling Interface Specification.", + "NAA": "This durable name shall contain a hexadecimal representation of the Name Address Authority structure, as defined in the T11 Fibre Channel - Framing and Signaling - 3 (FC-FS-3) specification.", + "NQN": "This durable name shall be in the NVMe Qualified Name (NQN) format, as defined in the NVN Express over Fabric Specification.", + "NSID": "This durable name shall be in the NVM Namespace Identifier (NSID) format, as defined in the NVN Express Specification.", + "UUID": "This durable name shall contain the hexadecimal representation of the UUID, as defined in the International Telecom Union's OSI networking and system aspects - Naming, Addressing and Registration Specification.", + "iQN": "This durable name shall be in the iSCSI Qualified Name (iQN) format, as defined in RFC3720 and RFC3721." }, "enumVersionAdded": { "NQN": "v1_6_0", @@ -91,10 +91,10 @@ }, "Identifier": { "additionalProperties": false, - "description": "This type describes any additional identifiers for a resource.", - "longDescription": "This type shall contain any additional identifiers of a resource.", + "description": "Any additional identifiers for a Resource.", + "longDescription": "This type shall contain any additional identifiers for a Resource.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -109,8 +109,8 @@ }, "properties": { "DurableName": { - "description": "This indicates the world wide, persistent name of the resource.", - "longDescription": "This property shall contain the world wide unique identifier for the resource. The string shall be in the format described by the value of the Identifier.DurableNameFormat property.", + "description": "The world-wide, persistent name of the Resource.", + "longDescription": "This property shall contain the world-wide unique identifier for the Resource. The string shall be in the Identifier.DurableNameFormat property value format.", "readonly": true, "type": [ "string", @@ -127,7 +127,7 @@ "type": "null" } ], - "description": "This represents the format of the DurableName property.", + "description": "The format of the durable name property.", "longDescription": "This property shall represent the format of the DurableName property.", "readonly": true, "versionAdded": "v1_1_0" @@ -137,10 +137,10 @@ }, "Location": { "additionalProperties": false, - "description": "This type describes the location of a resource.", - "longDescription": "This type shall describe the location of a resource.", + "description": "The location of a Resource.", + "longDescription": "This type shall describe the location of a Resource.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -155,8 +155,8 @@ }, "properties": { "AltitudeMeters": { - "description": "The altitude of the resource in meters.", - "longDescription": "The altitude of the resource in meters.", + "description": "The altitude of the Resource in meters.", + "longDescription": "This property shall contain the altitude of the Resource in meters.", "readonly": false, "type": [ "number", @@ -166,7 +166,7 @@ "versionAdded": "v1_6_0" }, "Contacts": { - "description": "Array of contact information.", + "description": "An array of contact information.", "items": { "anyOf": [ { @@ -177,33 +177,37 @@ } ] }, - "longDescription": "The value shall contain contact information used to obtain more information from an individual or organization responsible for this resource.", + "longDescription": "This property shall contain an array of contact information for an individual or organization responsible for this Resource.", "type": "array", "versionAdded": "v1_7_0" }, "Info": { - "description": "This indicates the location of the resource.", - "longDescription": "This property shall represent the location of the resource.", + "deprecated": "This property has been deprecated in favor of the PostalAddress, Placement, and PartLocation properties.", + "description": "The location of the Resource.", + "longDescription": "This property shall represent the location of the Resource.", "readonly": true, "type": [ "string", "null" ], - "versionAdded": "v1_1_0" + "versionAdded": "v1_1_0", + "versionDeprecated": "v1_5_0" }, "InfoFormat": { - "description": "This represents the format of the Info property.", - "longDescription": "This property shall represent the format of the Info property.", + "deprecated": "This property has been deprecated in favor of the PostalAddress, Placement, and PartLocation properties.", + "description": "The format of the Info property.", + "longDescription": "This property shall represent the Info property format.", "readonly": true, "type": [ "string", "null" ], - "versionAdded": "v1_1_0" + "versionAdded": "v1_1_0", + "versionDeprecated": "v1_5_0" }, "Latitude": { - "description": "The latitude resource.", - "longDescription": "The value shall be the latitude of the resource specified in degrees using a decimal format and not minutes or seconds.", + "description": "The latitude of the Resource.", + "longDescription": "This property shall contain the latitude of the Resource specified in degrees using a decimal format and not minutes or seconds.", "readonly": false, "type": [ "number", @@ -213,8 +217,8 @@ "versionAdded": "v1_6_0" }, "Longitude": { - "description": "The longitude resource in degrees.", - "longDescription": "The value shall be the longitude of the resource specified in degrees using a decimal format and not minutes or seconds.", + "description": "The longitude of the Resource in degrees.", + "longDescription": "This property shall contain the longitude of the Resource specified in degrees using a decimal format and not minutes or seconds.", "readonly": false, "type": [ "number", @@ -225,54 +229,33 @@ }, "Oem": { "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem", - "description": "Oem extension object.", - "longDescription": "This object represents the Oem property. All values for resources described by this schema shall comply to the requirements as described in the Redfish specification.", + "description": "The OEM extension property.", + "longDescription": "This property shall contain the OEM extensions. All values for properties contained in this object shall conform to the Redfish Specification-described requirements.", "versionAdded": "v1_1_0" }, "PartLocation": { - "anyOf": [ - { - "$ref": "#/definitions/PartLocation" - }, - { - "type": "null" - } - ], + "$ref": "#/definitions/PartLocation", "description": "The part location within the placement.", - "longDescription": "The value shall describe a location within a resource. This representation shall be used to indicate the location within the Placement.", + "longDescription": "The location within a Resource. This representation shall indicate the location within the Placement.", "versionAdded": "v1_5_0" }, "Placement": { - "anyOf": [ - { - "$ref": "#/definitions/Placement" - }, - { - "type": "null" - } - ], + "$ref": "#/definitions/Placement", "description": "A place within the addressed location.", - "longDescription": "The value shall be a place within the addressed location.", + "longDescription": "This property shall contain a place within the addressed location.", "versionAdded": "v1_3_0" }, "PostalAddress": { - "anyOf": [ - { - "$ref": "#/definitions/PostalAddress" - }, - { - "type": "null" - } - ], - "description": "Postal address of the addressed resource.", - "longDescription": "The value shall be a postal address of the resource.", + "$ref": "#/definitions/PostalAddress", + "description": "The postal address of the addressed Resource.", + "longDescription": "This property shall contain a postal address of the Resource.", "versionAdded": "v1_3_0" } }, "type": "object" }, "LocationType": { - "description": "Defines the location types for PartLocation.", + "description": "The location types for PartLocation.", "enum": [ "Slot", "Bay", @@ -280,22 +263,22 @@ "Socket" ], "enumDescriptions": { - "Bay": "Defines a bay as the type of location.", - "Connector": "Defines a connector as the type of location.", - "Slot": "Defines a slot as the type of location.", - "Socket": "Defines a socket as the type of location." + "Bay": "The bay as the type of location.", + "Connector": "The connector as the type of location.", + "Slot": "The slot as the type of location.", + "Socket": "The socket as the type of location." }, "enumLongDescriptions": { - "Bay": "Bay shall be used to indicate the type of PartLocation is of type bay.", - "Connector": "Connector shall be used to indicate the type of PartLocation is of type connector.", - "Slot": "Slot shall be used to indicate the type of PartLocation is of type slot.", - "Socket": "Socket shall be used to indicate the type of PartLocation is of type socket." + "Bay": "Bay shall indicate the type of PartLocation is of the Bay type.", + "Connector": "Connector shall indicate the type of PartLocation is of the Connector type.", + "Slot": "Slot shall indicate the type of PartLocation is of the Slot type.", + "Socket": "Socket shall indicate the type of PartLocation of the Socket type." }, "longDescription": "Enumeration literals shall name the type of location in use.", "type": "string" }, "Orientation": { - "description": "Defines a orientation for the ordering of the ordinal value of the part location.", + "description": "The orientation for the ordering of the part location ordinal value.", "enum": [ "FrontToBack", "BackToFront", @@ -305,30 +288,30 @@ "RightToLeft" ], "enumDescriptions": { - "BackToFront": "Defines the ordering for the LocationOrdinalValue is back to front.", - "BottomToTop": "Defines the ordering for the LocationOrdinalValue is bottom to top.", - "FrontToBack": "Defines the ordering for the LocationOrdinalValue is front to back.", - "LeftToRight": "Defines the ordering for the LocationOrdinalValue is left to right.", - "RightToLeft": "Defines the ordering for the LocationOrdinalValue is right to left.", - "TopToBottom": "Defines the ordering for the LocationOrdinalValue is top to bottom." + "BackToFront": "The ordering for the LocationOrdinalValue is back to front.", + "BottomToTop": "The ordering for LocationOrdinalValue is bottom to top.", + "FrontToBack": "The ordering for LocationOrdinalValue is front to back.", + "LeftToRight": "The ordering for the LocationOrdinalValue is left to right.", + "RightToLeft": "The ordering for the LocationOrdinalValue is right to left.", + "TopToBottom": "The ordering for the LocationOrdinalValue is top to bottom." }, "enumLongDescriptions": { - "BackToFront": "This value shall be used to specify the ordering for LocationOrdinalValue is back to front.", - "BottomToTop": "This value shall be used to specify the ordering for LocationOrdinalValue is bottom to top.", - "FrontToBack": "This value shall be used to specify the ordering for LocationOrdinalValue is front to back.", - "LeftToRight": "This value shall be used to specify the ordering for LocationOrdinalValue is left to right.", - "RightToLeft": "This value shall be used to specify the ordering for LocationOrdinalValue is right to left.", - "TopToBottom": "This value shall be used to specify the ordering for LocationOrdinalValue is top to bottom." + "BackToFront": "This value shall be used to indicate the ordering for LocationOrdinalValue is back to front.", + "BottomToTop": "This value shall be used to indicate the ordering for LocationOrdinalValue is bottom to top.", + "FrontToBack": "This value shall be used to indicate the ordering for LocationOrdinalValue is front to back.", + "LeftToRight": "This value shall be used to indicate the ordering for LocationOrdinalValue is left to right.", + "RightToLeft": "This value shall be used to indicate the ordering for LocationOrdinalValue is right to left.", + "TopToBottom": "This value shall be used to indicate the ordering for LocationOrdinalValue is top to bottom." }, - "longDescription": "Enumeration literals shall name the orientation for the location type ordering in determining the LocationOrdinalValue.", + "longDescription": "These enumeration literals shall name the orientation for the location type ordering in determining the LocationOrdinalValue.", "type": "string" }, "PartLocation": { "additionalProperties": false, "description": "The part location within the placement.", - "longDescription": "The value shall describe a location within a resource. This representation shall be used to indicate the location within the Placement.", + "longDescription": "This type shall describe a location within a Resource. This representation shall indicate the location within the Placement.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -343,8 +326,8 @@ }, "properties": { "LocationOrdinalValue": { - "description": "The number that represents the location of the part. If LocationType is slot and this unit is in slot 2 then the LocationOrdinalValue will be 2.", - "longDescription": "The value shall be the number that represents the location of the part based on the LocationType. LocationOrdinalValue shall be measured based on the Orientation value starting with 0.", + "description": "The number that represents the location of the part. If LocationType is `slot` and this unit is in slot 2, the LocationOrdinalValue is 2.", + "longDescription": "This property shall contain the number that represents the location of the part based on the LocationType. LocationOrdinalValue shall be measured based on the Orientation value starting with 0.", "readonly": true, "type": [ "integer", @@ -362,7 +345,7 @@ } ], "description": "The type of location of the part, such as slot, bay, socket and slot.", - "longDescription": "The value shall be a LocationType enumeration literal indicating the type of rack units in use.", + "longDescription": "This property shall contain the type of location of the part, such as slot, bay, socket and slot.", "readonly": true, "versionAdded": "v1_5_0" }, @@ -376,7 +359,7 @@ } ], "description": "The orientation for the ordering of the slot enumeration used by the LocationOrdinalValue property.", - "longDescription": "The value shall be a Orientation enumeration literal indicating the orientation for the ordering used by the LocationOrdinalValue property.", + "longDescription": "This property shall contain the orientation for the ordering used by the LocationOrdinalValue property.", "readonly": true, "versionAdded": "v1_5_0" }, @@ -389,14 +372,14 @@ "type": "null" } ], - "description": "The reference point for the part location. This is used to give guidance as to the general location of the part.", - "longDescription": "The value shall be a Reference enumeration literal indicating the general location within the unit of the part.", + "description": "The reference point for the part location. Provides guidance about the general location of the part.", + "longDescription": "This property shall contain the general location within the unit of the part.", "readonly": true, "versionAdded": "v1_5_0" }, "ServiceLabel": { - "description": "This is the label of the part location, such as a silk screened name or a printed label.", - "longDescription": "The value shall be the label assigned for service at the part location.", + "description": "The label of the part location, such as a silk-screened name or a printed label.", + "longDescription": "This property shall contain the label assigned for service at the part location.", "readonly": true, "type": [ "string", @@ -410,9 +393,9 @@ "Placement": { "additionalProperties": false, "description": "The placement within the addressed location.", - "longDescription": "The value shall describe a location within a resource. Examples include a shelf in a rack.", + "longDescription": "The value shall describe a location within a Resource. Examples include a shelf in a rack.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -428,7 +411,7 @@ "properties": { "AdditionalInfo": { "description": "Area designation or other additional info.", - "longDescription": "The value shall contain additional information, such as Tile, Column (Post), Wall, or other designation used to describe a location that cannot be conveyed with other properties defined for the Placement object.", + "longDescription": "This property shall contain additional information, such as Tile, Column (Post), Wall, or other designation that describes a location that cannot be conveyed with other properties defined for the Placement object.", "readonly": false, "type": [ "string", @@ -437,8 +420,8 @@ "versionAdded": "v1_7_0" }, "Rack": { - "description": "Name of a rack location within a row.", - "longDescription": "The value shall be the name of the rack within a row.", + "description": "The name of a rack location within a row.", + "longDescription": "This property shall contain the name of the rack within a row.", "readonly": false, "type": [ "string", @@ -447,8 +430,8 @@ "versionAdded": "v1_3_0" }, "RackOffset": { - "description": "Vertical location of the item in terms of RackOffsetUnits.", - "longDescription": "Vertical location of the item in the rack. Rack offset units shall be measured from bottom to top starting with 0.", + "description": "The vertical location of the item, in terms of RackOffsetUnits.", + "longDescription": "The vertical location of the item in the rack. Rack offset units shall be measured from bottom to top, starting with 0.", "readonly": false, "type": [ "integer", @@ -465,14 +448,14 @@ "type": "null" } ], - "description": "The type of Rack Units in use.", - "longDescription": "The value shall be a RackUnit enumeration literal indicating the type of rack units in use.", + "description": "The type of rack units in use.", + "longDescription": "This property shall contain a RackUnit enumeration literal that indicates the type of rack units in use.", "readonly": false, "versionAdded": "v1_3_0" }, "Row": { - "description": "Name of row.", - "longDescription": "The value shall be the name of the row.", + "description": "The name of the row.", + "longDescription": "This property shall contain the name of the row.", "readonly": false, "type": [ "string", @@ -485,10 +468,10 @@ }, "PostalAddress": { "additionalProperties": false, - "description": "The PostalAddress for a resource.", - "longDescription": "Instances shall describe a postal address for a resource. For more information see RFC5139. Depending on use, the instance may represent a past, current, or future location.", + "description": "The postal address for a Resource.", + "longDescription": "Instances shall describe a postal address for a Resource. For more information, see RFC5139. Depending on use, the instance may represent a past, current, or future location.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -503,8 +486,8 @@ }, "properties": { "AdditionalCode": { - "description": "Additional code.", - "longDescription": "The value shall conform the requirements of the ADDCODE field as defined in RFC5139.", + "description": "The additional code.", + "longDescription": "The value shall conform to the RFC5139-defined requirements of the ADDCODE field.", "readonly": false, "type": [ "string", @@ -513,8 +496,8 @@ "versionAdded": "v1_3_0" }, "AdditionalInfo": { - "description": "Room designation or other additional info.", - "longDescription": "The value shall conform the requirements of the LOC field as defined in RFC5139. It is used to provide additional information.", + "description": "The room designation or other additional information.", + "longDescription": "The value shall conform to the requirements of the LOC field as defined in RFC5139. Provides additional information.", "readonly": false, "type": [ "string", @@ -523,8 +506,8 @@ "versionAdded": "v1_7_0" }, "Building": { - "description": "Name of the building.", - "longDescription": "The value shall conform the requirements of the BLD field as defined in RFC5139. The value shall be name a building used to locate the resource.", + "description": "The name of the building.", + "longDescription": "The value shall conform to the RFC5139-defined requirements of the BLD field. Names the building.", "readonly": false, "type": [ "string", @@ -534,7 +517,7 @@ }, "City": { "description": "City, township, or shi (JP).", - "longDescription": "The value shall conform the requirements of the A3 field as defined in RFC5139. It is used to name a city, township, or shi (JP).", + "longDescription": "The value shall conform to the RFC5139-defined requirements of the A3 field. Names a city, township, or shi (JP).", "readonly": false, "type": [ "string", @@ -543,8 +526,8 @@ "versionAdded": "v1_3_0" }, "Community": { - "description": "Postal community name.", - "longDescription": "The value shall conform the requirements of the PCN field as defined in RFC5139. The value shall be a postal community name.", + "description": "The postal community name.", + "longDescription": "The value shall conform to the RFC5139-defined requirements of the PCN field. A postal community name.", "readonly": false, "type": [ "string", @@ -553,8 +536,8 @@ "versionAdded": "v1_3_0" }, "Country": { - "description": "Country.", - "longDescription": "The value shall conform the requirements of the Country field as defined in RFC5139.", + "description": "The country.", + "longDescription": "The value shall conform to the RFC5139-defined requirements of the Country field.", "readonly": false, "type": [ "string", @@ -563,8 +546,8 @@ "versionAdded": "v1_3_0" }, "District": { - "description": "A county, parish, gun (JP), or district (IN).", - "longDescription": "The value shall conform the requirements of the A2 field as defined in RFC5139. It is used to name a county, parish, gun (JP), or district (IN).", + "description": "A county, parish, gun (JP), or district (IN).", + "longDescription": "The value shall conform to the RFC5139-defined requirements of the A2 field. Names a county, parish, gun (JP), or district (IN).", "readonly": false, "type": [ "string", @@ -573,8 +556,8 @@ "versionAdded": "v1_3_0" }, "Division": { - "description": "City division, borough, dity district, ward, chou (JP).", - "longDescription": "The value shall conform the requirements of the A4 field as defined in RFC5139. It is used to name a city division, borough, dity district, ward, chou (JP).", + "description": "City division, borough, dity district, ward, or chou (JP).", + "longDescription": "The value shall conform to the RFC5139-defined requirements of the A4 field. Names a city division, borough, dity district, ward, or chou (JP).", "readonly": false, "type": [ "string", @@ -583,8 +566,8 @@ "versionAdded": "v1_3_0" }, "Floor": { - "description": "Floor.", - "longDescription": "The value shall conform the requirements of the FLR field as defined in RFC5139. It is used to provide a floor designation.", + "description": "The floor.", + "longDescription": "The value shall conform to the RFC5139-defined requirements of the FLR field. Provides a floor designation.", "readonly": false, "type": [ "string", @@ -593,18 +576,20 @@ "versionAdded": "v1_3_0" }, "GPSCoords": { + "deprecated": "This property has been deprecated in favor of the Longitude and Latitude properties.", "description": "The GPS coordinates of the part.", - "longDescription": "The value shall conform the requirements of the ADDCODE field as defined in RFC5139. The value shall be the GPS coordinates of the location. If furnished, this shall be expressed in the format '[-][nn]n.nnnnnn, [-][nn]n.nnnnn', i.e. two numbers, either positive or negative, with six decimal places of precision, comma-separated.", + "longDescription": "The value shall conform to the RFC5139-defined requirements of the ADDCODE field. Shall contain the GPS coordinates of the location. If furnished, expressed in the '[-][nn]n.nnnnnn, [-][nn]n.nnnnn' format. For example, two comma-separated positive or negative numbers with six decimal places of precision.", "readonly": false, "type": [ "string", "null" ], - "versionAdded": "v1_3_0" + "versionAdded": "v1_3_0", + "versionDeprecated": "v1_6_0" }, "HouseNumber": { - "description": "Numeric portion of house number.", - "longDescription": "The value shall conform the requirements of the HNO field as defined in RFC5139. It is the numeric portion of the house number.", + "description": "The numeric portion of house number.", + "longDescription": "The value shall conform to the RFC5139-defined requirements of the HNO field. The numeric portion of the house number.", "readonly": false, "type": [ "integer", @@ -613,8 +598,8 @@ "versionAdded": "v1_3_0" }, "HouseNumberSuffix": { - "description": "House number suffix.", - "longDescription": "The value shall conform the requirements of the HNS field as defined in RFC5139. It is used to provide a suffix to a house number, (F, B, 1/2).", + "description": "The house number suffix.", + "longDescription": "The value shall conform to the RFC5139-defined requirements of the HNS field. Provides a suffix to a house number, (F, B, or 1/2).", "readonly": false, "type": [ "string", @@ -623,8 +608,8 @@ "versionAdded": "v1_3_0" }, "Landmark": { - "description": "Landmark.", - "longDescription": "The value shall conform the requirements of the LMK field as defined in RFC5139. It is used to identify a landmark or vanity address.", + "description": "The landmark.", + "longDescription": "The value shall conform to the RFC5139-defined requirements of the LMK field. Identifies a landmark or vanity address.", "readonly": false, "type": [ "string", @@ -634,7 +619,7 @@ }, "LeadingStreetDirection": { "description": "A leading street direction.", - "longDescription": "The value shall conform the requirements of the PRD field as defined in RFC5139. It is used to name a leading street direction, (N, W, SE).", + "longDescription": "The value shall conform to the requirements of the PRD field as defined in RFC5139. Names a leading street direction, (N, W, or SE).", "readonly": false, "type": [ "string", @@ -643,18 +628,20 @@ "versionAdded": "v1_3_0" }, "Location": { - "description": "Room designation or other additional info.", - "longDescription": "The value shall conform the requirements of the LOC field as defined in RFC5139. It is used to provide additional information.", + "deprecated": "This property has been deprecated in favor of the AdditionalInfo property.", + "description": "The room designation or other additional information.", + "longDescription": "The value shall conform to the RFC5139-defined requirements of the LOC field. Provides additional information.", "readonly": false, "type": [ "string", "null" ], - "versionAdded": "v1_3_0" + "versionAdded": "v1_3_0", + "versionDeprecated": "v1_7_0" }, "Name": { - "description": "Name.", - "longDescription": "The value shall conform the requirements of the NAM field as defined in RFC5139. It is used to name the occupant.", + "description": "The name.", + "longDescription": "The value shall conform to the RFC5139-defined requirements of the NAM field. Names the occupant.", "readonly": false, "type": [ "string", @@ -664,7 +651,7 @@ }, "Neighborhood": { "description": "Neighborhood or block.", - "longDescription": "The value shall conform the requirements of the A5 field as defined in RFC5139. It is used to name a neighborhood or block.", + "longDescription": "The value shall conform to the RFC5139-defined requirements of the A5 field. Names a neighborhood or block.", "readonly": false, "type": [ "string", @@ -673,8 +660,8 @@ "versionAdded": "v1_3_0" }, "POBox": { - "description": "Post office box (P.O. box).", - "longDescription": "The value shall conform the requirements of the POBOX field as defined in RFC5139. The value shall be a Post office box (P.O. box).", + "description": "The post office box (PO box).", + "longDescription": "The value shall conform to the RFC5139-defined requirements of the POBOX field. A post office box (PO box).", "readonly": false, "type": [ "string", @@ -683,8 +670,8 @@ "versionAdded": "v1_3_0" }, "PlaceType": { - "description": "A description of the type of place that is addressed.", - "longDescription": "The value shall conform the requirements of the PLC field as defined in RFC5139. Examples include: office, residence,...).", + "description": "The description of the type of place that is addressed.", + "longDescription": "The value shall conform to the RFC5139-defined requirements of the PLC field. Examples include office and residence.", "readonly": false, "type": [ "string", @@ -693,8 +680,8 @@ "versionAdded": "v1_3_0" }, "PostalCode": { - "description": "Postal code (or zip code).", - "longDescription": "The value shall conform the requirements of the PC field as defined in RFC5139. The value shall be a Postal code (or zip code).", + "description": "The postal code or zip code.", + "longDescription": "The value shall conform to the RFC5139-defined requirements of the PC field. A postal code (or zip code).", "readonly": false, "type": [ "string", @@ -703,8 +690,8 @@ "versionAdded": "v1_3_0" }, "Road": { - "description": "A primary road or street.", - "longDescription": "The value shall conform the requirements of the RD field as defined in RFC5139. The value designates a primary road or street.", + "description": "The primary road or street.", + "longDescription": "The value shall conform to the RFC5139-defined requirements of the RD field. Designates a primary road or street.", "readonly": false, "type": [ "string", @@ -713,8 +700,8 @@ "versionAdded": "v1_3_0" }, "RoadBranch": { - "description": "Road branch.", - "longDescription": "The value shall conform the requirements of the RDBR field as defined in RFC5139. The value shall be a Post office box (P.O. box)road branch.", + "description": "The road branch.", + "longDescription": "The value shall conform to the RFC5139-defined requirements of the RDBR field. Shall contain a post office box (PO box) road branch.", "readonly": false, "type": [ "string", @@ -723,8 +710,8 @@ "versionAdded": "v1_3_0" }, "RoadPostModifier": { - "description": "Road post-modifier.", - "longDescription": "The value shall conform the requirements of the POM field as defined in RFC5139. (Extended).", + "description": "The road post-modifier.", + "longDescription": "The value shall conform to the RFC5139-defined requirements of the POM field. For example, Extended.", "readonly": false, "type": [ "string", @@ -733,8 +720,8 @@ "versionAdded": "v1_3_0" }, "RoadPreModifier": { - "description": "Road pre-modifier.", - "longDescription": "The value shall conform the requirements of the PRM field as defined in RFC5139. (Old, New).", + "description": "The road pre-modifier.", + "longDescription": "The value shall conform to the RFC5139-defined requirements of the PRM field. For example, Old or New.", "readonly": false, "type": [ "string", @@ -743,8 +730,8 @@ "versionAdded": "v1_3_0" }, "RoadSection": { - "description": "Road Section.", - "longDescription": "The value shall conform the requirements of the RDSEC field as defined in RFC5139. The value shall be a road section.", + "description": "The road section.", + "longDescription": "The value shall conform to the RFC5139-defined requirements of the RDSEC field. A road section.", "readonly": false, "type": [ "string", @@ -753,8 +740,8 @@ "versionAdded": "v1_3_0" }, "RoadSubBranch": { - "description": "Road sub branch.", - "longDescription": "The value shall conform the requirements of the RDSUBBR field as defined in RFC5139.", + "description": "The road sub branch.", + "longDescription": "The value shall conform to the RFC5139-defined requirements of the RDSUBBR field.", "readonly": false, "type": [ "string", @@ -763,8 +750,8 @@ "versionAdded": "v1_3_0" }, "Room": { - "description": "Name or number of the room.", - "longDescription": "The value shall conform the requirements of the ROOM field as defined in RFC5139. The value shall be a name or number of a room used to locate the resource within the unit.", + "description": "The name or number of the room.", + "longDescription": "The value shall conform to the RFC5139-defined requirements of the ROOM field. A name or number of a room to locate the Resource within the unit.", "readonly": false, "type": [ "string", @@ -773,8 +760,8 @@ "versionAdded": "v1_3_0" }, "Seat": { - "description": "Seat (desk, cubicle, workstation).", - "longDescription": "The value shall conform the requirements of the SEAT field as defined in RFC5139. The value shall be a name or number of a Seat (desk, cubicle, workstation).", + "description": "The seat, such as the desk, cubicle, or workstation.", + "longDescription": "The value shall conform to the RFC5139-defined requirements of the SEAT field. A name or number of a seat, such as the desk, cubicle, or workstation.", "readonly": false, "type": [ "string", @@ -784,7 +771,7 @@ }, "Street": { "description": "Street name.", - "longDescription": "The value shall conform the requirements of the A6 field as defined in RFC5139. It is used to name a street.", + "longDescription": "The value shall conform to the RFC5139-defined requirements of the A6 field. Names a street.", "readonly": false, "type": [ "string", @@ -794,7 +781,7 @@ }, "StreetSuffix": { "description": "Avenue, Platz, Street, Circle.", - "longDescription": "The value shall conform the requirements of the STS field as defined in RFC5139. It is used to name a street suffix.", + "longDescription": "The value shall conform to the RFC5139-defined requirements of the STS field. Names a street suffix.", "readonly": false, "type": [ "string", @@ -804,7 +791,7 @@ }, "Territory": { "description": "A top-level subdivision within a country.", - "longDescription": "The value shall conform the requirements of the A1 field as defined in RFC5139 when used to name a territory, state, region, province, or prefecture within a country.", + "longDescription": "The value shall conform to the RFC5139-defined requirements of the A1 field when it names a territory, state, region, province, or prefecture within a country.", "readonly": false, "type": [ "string", @@ -814,7 +801,7 @@ }, "TrailingStreetSuffix": { "description": "A trailing street suffix.", - "longDescription": "The value shall conform the requirements of the POD field as defined in RFC5139. It is used to name a trailing street suffix.", + "longDescription": "The value shall conform to the RFC5139-defined requirements of the POD field. Names a trailing street suffix.", "readonly": false, "type": [ "string", @@ -823,8 +810,8 @@ "versionAdded": "v1_3_0" }, "Unit": { - "description": "Name or number of the unit (apartment, suite).", - "longDescription": "The value shall conform the requirements of the UNIT field as defined in RFC5139. The value shall be a name or number of a unit (apartment, suite) used to locate the resource.", + "description": "The name or number of the apartment unit or suite.", + "longDescription": "The value shall conform to the RFC5139-defined requirements of the UNIT field. The name or number of a unit, such as the apartment or suite, to locate the Resource.", "readonly": false, "type": [ "string", @@ -836,24 +823,24 @@ "type": "object" }, "RackUnits": { - "description": "Defines a rack unit.", + "description": "The type of rack unit in use.", "enum": [ "OpenU", "EIA_310" ], "enumDescriptions": { - "EIA_310": "Defines a rack unit as being equal to 1.75 in (44.45 mm).", - "OpenU": "Defines a rack unit as being equal to 48 mm (1.89 in)." + "EIA_310": "A rack unit that is equal to 1.75 in (44.45 mm).", + "OpenU": "A rack unit that is equal to 48 mm (1.89 in)." }, "enumLongDescriptions": { - "EIA_310": "Rack units shall be specified as defined by the EIA-310 standard.", - "OpenU": "Rack units shall be specifie3d in terms of the Open Compute Open Rack specification." + "EIA_310": "Rack units shall conform to the EIA-310 standard.", + "OpenU": "Rack units shall be specified in terms of the Open Compute Open Rack specification." }, - "longDescription": "Enumeration literals shall name the type of rack units in use.", + "longDescription": "Enumeration literals shall name the type of rack unit in use.", "type": "string" }, "Reference": { - "description": "Defines a reference area for the location of the part.", + "description": "The reference area for the location of the part.", "enum": [ "Top", "Bottom", @@ -864,32 +851,32 @@ "Middle" ], "enumDescriptions": { - "Bottom": "Defines the part as being in the bottom of the unit.", - "Front": "Defines the part as being in the front of the unit.", - "Left": "Defines the part as being in the left of the unit.", - "Middle": "Defines the part as being in the middle of the unit.", - "Rear": "Defines the part as being in the rear of the unit.", - "Right": "Defines the part as being in the right of the unit.", - "Top": "Defines the part as being in the top of the unit." + "Bottom": "The part is in the bottom of the unit.", + "Front": "The part is in the front of the unit.", + "Left": "The part is on the left side of of the unit.", + "Middle": "The part is in the middle of the unit.", + "Rear": "The part is in the rear of the unit.", + "Right": "The part is on the right side of the unit.", + "Top": "The part is in the top of the unit." }, "enumLongDescriptions": { - "Bottom": "Top shall be used to specify the part location is in the bottom of the unit.", - "Front": "Top shall be used to specify the part location is in the front of the unit.", - "Left": "Top shall be used to specify the part location is in the left of the unit.", - "Middle": "Top shall be used to specify the part location is in the middle of the unit.", - "Rear": "Top shall be used to specify the part location is in the rear of the unit.", - "Right": "Top shall be used to specify the part location is in the right of the unit.", - "Top": "Top shall be used to specify the part location is in the top of the unit." + "Bottom": "This value shall be used to indicate the part is in the bottom of the unit.", + "Front": "This value shall be used to indicate the part is in the front of the unit.", + "Left": "This value shall be used to indicate the part is on the left side of of the unit.", + "Middle": "This value shall be used to indicate the part is in the middle of the unit.", + "Rear": "This value shall be used to indicate the part is in the rear of the unit.", + "Right": "This value shall be used to indicate the part is on the right side of the unit.", + "Top": "This value shall be used to indicate the part is in the top of the unit." }, - "longDescription": "Enumeration literals shall name the reference for the part location.", + "longDescription": "The enumerated literals shall name the reference for the part location.", "type": "string" }, "ReferenceableMember": { "additionalProperties": false, - "description": "This is the base type for addressable members of an array.", - "longDescription": "Array members can be referenced using the value returned in the @odata.id property which may or may not be a dereferenceable URL. The @odata.id of this entity shall be the location of this element within an Item.", + "description": "The base type for addressable members of an array.", + "longDescription": "References array members by using the value returned in the @odata.id property, which may be a dereferenceable URL. The @odata.id of this entity shall contain the location of this element within an item.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -904,18 +891,18 @@ }, "properties": { "@odata.id": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/id" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/id" }, "MemberId": { - "description": "This is the identifier for the member within the collection.", - "longDescription": "The value of this string shall uniquely identify the member within the collection.", + "description": "The identifier for the member within the collection.", + "longDescription": "This property shall uniquely identify the member within the collection. For services supporting Redfish v1.6 or higher, this value shall contain the zero-based array index.", "readonly": true, "type": "string" }, "Oem": { "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem", - "description": "This is the manufacturer/provider specific extension moniker used to divide the Oem object into sections.", - "longDescription": "The value of this string shall be of the format for the reserved word *Oem*." + "description": "The OEM extension property.", + "longDescription": "This property shall contain the OEM extensions. All values for properties that this object contains shall conform to the Redfish Specification-described requirements." } }, "required": [ @@ -926,9 +913,9 @@ }, "Resource": { "additionalProperties": false, - "description": "This is the base type for resources and referenceable members.", + "description": "The base type for Resources and members that can be linked to.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -943,16 +930,16 @@ }, "properties": { "@odata.context": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/context" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/context" }, "@odata.etag": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/etag" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/etag" }, "@odata.id": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/id" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/id" }, "@odata.type": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/type" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/type" }, "Description": { "anyOf": [ @@ -975,8 +962,8 @@ }, "Oem": { "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem", - "description": "This is the manufacturer/provider specific extension moniker used to divide the Oem object into sections.", - "longDescription": "The value of this string shall be of the format for the reserved word *Oem*." + "description": "The OEM extension property.", + "longDescription": "This property shall contain the OEM extensions. All values for properties that this object contains shall conform to the Redfish Specification-described requirements." } }, "required": [ @@ -990,7 +977,7 @@ "ResourceCollection": { "additionalProperties": false, "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -1005,16 +992,16 @@ }, "properties": { "@odata.context": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/context" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/context" }, "@odata.etag": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/etag" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/etag" }, "@odata.id": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/id" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/id" }, "@odata.type": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/type" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/type" }, "Description": { "anyOf": [ @@ -1033,8 +1020,8 @@ }, "Oem": { "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem", - "description": "This is the manufacturer/provider specific extension moniker used to divide the Oem object into sections.", - "longDescription": "The value of this string shall be of the format for the reserved word *Oem*." + "description": "The OEM extension property.", + "longDescription": "This property shall contain the OEM extensions. All values for properties contained in this object shall conform to the Redfish Specification-described requirements." } }, "required": [ @@ -1047,5 +1034,5 @@ }, "owningEntity": "DMTF", "release": "2018.3", - "title": "#Resource.v1_8_0" + "title": "#Resource.v1_8_2" } \ No newline at end of file diff --git a/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/ResourceBlock/ResourceBlock.json b/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/ResourceBlock/ResourceBlock.json index 43d02654..d7f937e3 100644 --- a/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/ResourceBlock/ResourceBlock.json +++ b/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/ResourceBlock/ResourceBlock.json @@ -1,15 +1,15 @@ { - "$id": "http://redfish.dmtf.org/schemas/v1/ResourceBlock.v1_3_0.json", + "$id": "http://redfish.dmtf.org/schemas/v1/ResourceBlock.v1_3_2.json", "$ref": "#/definitions/ResourceBlock", "$schema": "http://redfish.dmtf.org/schemas/v1/redfish-schema-v1.json", - "copyright": "Copyright 2014-2018 DMTF. For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright", + "copyright": "Copyright 2014-2019 DMTF. For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright", "definitions": { "Actions": { "additionalProperties": false, - "description": "The available actions for this resource.", - "longDescription": "This type shall contain the available actions for this resource.", + "description": "The available actions for this Resource.", + "longDescription": "This type shall contain the available actions for this Resource.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -25,8 +25,8 @@ "properties": { "Oem": { "$ref": "#/definitions/OemActions", - "description": "This property contains the available OEM specific actions for this resource.", - "longDescription": "This property shall contain any additional OEM actions for this resource." + "description": "The available OEM-specific actions for this Resource.", + "longDescription": "This property shall contain the available OEM-specific actions for this Resource." } }, "type": "object" @@ -41,12 +41,12 @@ "Unavailable" ], "enumDescriptions": { - "Composed": "Final successful state of a Resource Block which has participated in composition.", - "ComposedAndAvailable": "Indicates the Resource Block is currently participating in one or more compositions, and is available to be used in more compositions.", + "Composed": "Final successful state of a Resource Block that has participated in composition.", + "ComposedAndAvailable": "The Resource Block is currently participating in one or more compositions, and is available to use in more compositions.", "Composing": "Intermediate state indicating composition is in progress.", "Failed": "The final composition resulted in failure and manual intervention may be required to fix it.", - "Unavailable": "Indicates the Resource Block has been made unavailable by the service, such as due to maintenance being performed on the Resource Block.", - "Unused": "Indicates the Resource Block is free and can participate in composition." + "Unavailable": "The Resource Block has been made unavailable by the service, such as due to maintenance being performed on the Resource Block.", + "Unused": "The Resource Block is free and can participate in composition." }, "enumVersionAdded": { "ComposedAndAvailable": "v1_1_0", @@ -59,7 +59,7 @@ "description": "Composition status of the Resource Block.", "longDescription": "This type shall contain properties that describe the high level composition status of the Resource Block.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -82,13 +82,13 @@ "type": "null" } ], - "description": "This property represents the current state of the Resource Block from a composition perspective.", - "longDescription": "The value of this property shall be an enumerated value describing composition state of the Resource Block.", + "description": "The current state of the Resource Block from a composition perspective.", + "longDescription": "This property shall contain an enumerated value that describes the composition state of the Resource Block.", "readonly": true }, "MaxCompositions": { - "description": "The maximum number of compositions in which this Resource Block is capable of participating simultaneously.", - "longDescription": "The value of this property shall be a number indicating the maximum number of compositions in which this Resource Block is capable of participating simultaneously. Services may have additional constraints that prevent this value from being achieved, such as due to system topology and current composed resource utilization. If SharingCapable is set to false, this value shall be set to 1. The service shall support this property if SharingCapable supported.", + "description": "The maximum number of compositions in which this Resource Block can participate simultaneously.", + "longDescription": "This property shall contain a number indicating the maximum number of compositions in which this Resource Block can participate simultaneously. Services may have additional constraints that prevent this value from being achieved, such as due to system topology and current composed Resource utilization. If SharingCapable is false, this value shall be set to 1. The Service shall support this property if SharingCapable supported.", "minimum": 1, "readonly": true, "type": [ @@ -99,7 +99,7 @@ }, "NumberOfCompositions": { "description": "The number of compositions in which this Resource Block is currently participating.", - "longDescription": "The value of this property shall be the number of compositions in which this Resource Block is currently participating.", + "longDescription": "This property shall contain the number of compositions in which this Resource Block is currently participating.", "minimum": 0, "readonly": true, "type": [ @@ -109,8 +109,8 @@ "versionAdded": "v1_1_0" }, "Reserved": { - "description": "This represents if the Resource Block is reserved by any client.", - "longDescription": "This property shall be a boolean that is set by client once the Resource Block is identified to be composed. It shall provide multiple clients a way to negotiate its ownership. This will help clients to know if a Resource Block is reserved by other client.", + "description": "An indication of whether any client has reserved the Resource Block.", + "longDescription": "This property shall indicate whether any client has reserved the Resource Block. A client sets this property after the Resource Block is identified as composed. It shall provide a way for multiple clients to negotiate the ownership of the Resource Block.", "readonly": false, "type": [ "boolean", @@ -118,8 +118,8 @@ ] }, "SharingCapable": { - "description": "Indicates if this Resource Block is capable of participating in multiple compositions simultaneously.", - "longDescription": "The value of this property shall be a boolean indicating whether this Resource Block is capable of participating in multiple compositions simultaneously. If this property is not provided, it shall be assumed that this Resource Block is not capable of being shared.", + "description": "An indication of whether this Resource Block can participate in multiple compositions simultaneously.", + "longDescription": "This property shall indicate whether this Resource Block can participate in multiple compositions simultaneously. If this property is not provided, it shall be assumed that this Resource Block is not capable of being shared.", "readonly": true, "type": [ "boolean", @@ -128,8 +128,8 @@ "versionAdded": "v1_1_0" }, "SharingEnabled": { - "description": "Indicates if this Resource Block is allowed to participate in multiple compositions simultaneously.", - "longDescription": "The value of this property shall be a boolean indicating whether this Resource Block is allowed to participate in multiple compositions simultaneously. The service shall reject modifications of this property with HTTP 400 Bad Request if this Resource Block already being used as part of a composed resource. If this property is set to false, the service shall not use the ComposedAndAvailable state for this Resource Block.", + "description": "An indication of whether this Resource Block is allowed to participate in multiple compositions simultaneously.", + "longDescription": "This property shall indicate whether this Resource Block can participate in multiple compositions simultaneously. The Service shall reject modifications of this property with HTTP 400 Bad Request if this Resource Block is already being used as part of a composed Resource. If `false`, the service shall not use the ComposedAndAvailable state for this Resource Block.", "readonly": false, "type": [ "boolean", @@ -145,10 +145,10 @@ }, "Links": { "additionalProperties": false, - "description": "Contains references to other resources that are related to this resource.", - "longDescription": "This type, as described by the Redfish Specification, shall contain references to resources that are related to, but not contained by (subordinate to), this resource.", + "description": "The links to other Resources that are related to this Resource.", + "longDescription": "This Redfish Specification-described type shall contain links to Resources that are related to but are not contained by or subordinate to this Resource.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -163,55 +163,55 @@ }, "properties": { "Chassis": { - "description": "An array of references to the Chassis in which this Resource Block is contained.", + "description": "An array of links to the Chassis in which this Resource Block is contained.", "items": { "$ref": "http://redfish.dmtf.org/schemas/v1/Chassis.json#/definitions/Chassis" }, - "longDescription": "The value of this property shall be an array of references of type Chassis that represent the physical container associated with this Resource Block.", + "longDescription": "This property shall contain an array of links of the Chassis type that represent the physical container associated with this Resource Block.", "readonly": true, "type": "array" }, "Chassis@odata.count": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/count" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/count" }, "ComputerSystems": { - "description": "An array of references to the Computer Systems that are composed from this Resource Block.", + "description": "An array of links to the computer systems that are composed from this Resource Block.", "items": { "$ref": "http://redfish.dmtf.org/schemas/v1/ComputerSystem.json#/definitions/ComputerSystem" }, - "longDescription": "The value of this property shall be an array of references of type ComputerSystem that represent the Computer Systems composed from this Resource Block.", + "longDescription": "This property shall contain an array of links of the ComputerSystem type that represent the computer systems composed from this Resource Block.", "readonly": true, "type": "array" }, "ComputerSystems@odata.count": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/count" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/count" }, "Oem": { "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem", - "description": "Oem extension object.", - "longDescription": "This object represents the Oem property. All values for resources described by this schema shall comply to the requirements as described in the Redfish specification." + "description": "The OEM extension property.", + "longDescription": "This property shall contain the OEM extensions. All values for properties contained in this object shall conform to the Redfish Specification-described requirements." }, "Zones": { - "description": "An array of references to the Zones in which this Resource Block is bound.", + "description": "An array of links to the Zones in which this Resource Block is bound.", "items": { "$ref": "http://redfish.dmtf.org/schemas/v1/Zone.json#/definitions/Zone" }, - "longDescription": "The value of this property shall be an array of references of type Zone that represent the binding constraints associated with this Resource Block.", + "longDescription": "This property shall contain an array of links of the Zone type that represent the binding constraints associated with this Resource Block.", "readonly": true, "type": "array" }, "Zones@odata.count": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/count" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/count" } }, "type": "object" }, "OemActions": { "additionalProperties": true, - "description": "The available OEM specific actions for this resource.", - "longDescription": "This type shall contain any additional OEM actions for this resource.", + "description": "The available OEM-specific actions for this Resource.", + "longDescription": "This type shall contain the available OEM-specific actions for this Resource.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -229,10 +229,10 @@ }, "ResourceBlock": { "additionalProperties": false, - "description": "This schema defines a Resource Block resource.", - "longDescription": "This resource shall be used to represent a Resource Block for a Redfish implementation.", + "description": "The schema definition of the Resource Block, its components, and affinity to composed devices.", + "longDescription": "This Resource shall represent a Resource Block for a Redfish implementation.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -247,38 +247,38 @@ }, "properties": { "@odata.context": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/context" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/context" }, "@odata.etag": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/etag" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/etag" }, "@odata.id": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/id" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/id" }, "@odata.type": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/type" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/type" }, "Actions": { "$ref": "#/definitions/Actions", - "description": "The available actions for this resource.", - "longDescription": "The Actions property shall contain the available actions for this resource." + "description": "The available actions for this Resource.", + "longDescription": "This property shall contain the available actions for this Resource." }, "CompositionStatus": { "$ref": "#/definitions/CompositionStatus", - "description": "This property describes the composition status details for this Resource Block.", - "longDescription": "The value of this property shall contain composition status information about this Resource Block." + "description": "The composition status details for this Resource Block.", + "longDescription": "This property shall contain composition status information about this Resource Block." }, "ComputerSystems": { - "description": "An array of references to the Computer Systems available in this Resource Block.", + "description": "An array of links to the computer systems available in this Resource Block.", "items": { "$ref": "http://redfish.dmtf.org/schemas/v1/ComputerSystem.json#/definitions/ComputerSystem" }, - "longDescription": "The value of this property shall be an array of references of type ComputerSystem that are in this Resource Block.", + "longDescription": "This property shall contain an array of links of the ComputerSystem type that this Resource Block contains.", "readonly": true, "type": "array" }, "ComputerSystems@odata.count": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/count" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/count" }, "Description": { "anyOf": [ @@ -292,29 +292,29 @@ "readonly": true }, "Drives": { - "description": "An array of references to the Drives available in this Resource Block.", + "description": "An array of links to the Drives available in this Resource Block.", "items": { "$ref": "http://redfish.dmtf.org/schemas/v1/Drive.json#/definitions/Drive" }, - "longDescription": "The value of this property shall be an array of references of type Drive that are in this Resource Block.", + "longDescription": "This property shall contain an array of links of the Drive type that this Resource Block contains.", "readonly": true, "type": "array", "versionAdded": "v1_3_0" }, "Drives@odata.count": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/count" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/count" }, "EthernetInterfaces": { - "description": "An array of references to the Ethernet Interfaces available in this Resource Block.", + "description": "An array of links to the Ethernet interfaces available in this Resource Block.", "items": { "$ref": "http://redfish.dmtf.org/schemas/v1/EthernetInterface.json#/definitions/EthernetInterface" }, - "longDescription": "The value of this property shall be an array of references of type EthernetInterface that are in this Resource Block.", + "longDescription": "This property shall contain an array of links of the EthernetInterface type that this Resource Block contains.", "readonly": true, "type": "array" }, "EthernetInterfaces@odata.count": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/count" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/count" }, "Id": { "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Id", @@ -322,91 +322,91 @@ }, "Links": { "$ref": "#/definitions/Links", - "description": "Contains references to other resources that are related to this resource.", - "longDescription": "The Links property, as described by the Redfish Specification, shall contain references to resources that are related to, but not contained by (subordinate to), this resource." + "description": "The links to other Resources that are related to this Resource.", + "longDescription": "This property shall contain links to Resources that are related to but are not contained by or subordinate to this Resource." }, "Memory": { - "description": "An array of references to the Memory available in this Resource Block.", + "description": "An array of links to the memory available in this Resource Block.", "items": { "$ref": "http://redfish.dmtf.org/schemas/v1/Memory.json#/definitions/Memory" }, - "longDescription": "The value of this property shall be an array of references of type Memory that are in this Resource Block.", + "longDescription": "This property shall contain an array of links of the Memory type that this Resource Block contains.", "readonly": true, "type": "array" }, "Memory@odata.count": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/count" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/count" }, "Name": { "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Name", "readonly": true }, "NetworkInterfaces": { - "description": "An array of references to the Network Interfaces available in this Resource Block.", + "description": "An array of links to the Network Interfaces available in this Resource Block.", "items": { "$ref": "http://redfish.dmtf.org/schemas/v1/NetworkInterface.json#/definitions/NetworkInterface" }, - "longDescription": "The value of this property shall be an array of references of type NetworkInterface that are in this Resource Block.", + "longDescription": "This property shall contain an array of links of the NetworkInterface type that this Resource Block contains.", "readonly": true, "type": "array" }, "NetworkInterfaces@odata.count": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/count" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/count" }, "Oem": { "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem", - "description": "This is the manufacturer/provider specific extension moniker used to divide the Oem object into sections.", - "longDescription": "The value of this string shall be of the format for the reserved word *Oem*." + "description": "The OEM extension property.", + "longDescription": "This property shall contain the OEM extensions. All values for properties that this object contains shall conform to the Redfish Specification-described requirements." }, "Processors": { - "description": "An array of references to the Processors available in this Resource Block.", + "description": "An array of links to the processors available in this Resource Block.", "items": { "$ref": "http://redfish.dmtf.org/schemas/v1/Processor.json#/definitions/Processor" }, - "longDescription": "The value of this property shall be an array of references of type Processor that are in this Resource Block.", + "longDescription": "This property shall contain an array of links of the Processor type that this Resource Block contains.", "readonly": true, "type": "array" }, "Processors@odata.count": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/count" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/count" }, "ResourceBlockType": { - "description": "This property represents the types of resources available on this Resource Block.", + "description": "The types of Resources available on this Resource Block.", "items": { "$ref": "#/definitions/ResourceBlockType" }, - "longDescription": "The value of this property shall be an array of enumerated values describing type of resources available.", + "longDescription": "This property shall contain an array of enumerated values that describe the type of Resources available.", "readonly": true, "type": "array" }, "SimpleStorage": { - "description": "An array of references to the Simple Storage available in this Resource Block.", + "description": "An array of links to the simple storage available in this Resource Block.", "items": { "$ref": "http://redfish.dmtf.org/schemas/v1/SimpleStorage.json#/definitions/SimpleStorage" }, - "longDescription": "The value of this property shall be an array of references of type SimpleStorage that are in this Resource Block.", + "longDescription": "This property shall contain an array of links of the SimpleStorage type that this Resource Block contains.", "readonly": true, "type": "array" }, "SimpleStorage@odata.count": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/count" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/count" }, "Status": { "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Status", - "description": "This property describes the status and health of the resource and its children.", - "longDescription": "This property shall contain any status or health properties of the resource." + "description": "The status and health of the Resource and its subordinate or dependent Resources.", + "longDescription": "This property shall contain any status or health properties of the Resource." }, "Storage": { - "description": "An array of references to the Storage available in this Resource Block.", + "description": "An array of links to the storage available in this Resource Block.", "items": { "$ref": "http://redfish.dmtf.org/schemas/v1/Storage.json#/definitions/Storage" }, - "longDescription": "The value of this property shall be an array of references of type Storage that are in this Resource Block.", + "longDescription": "This property shall contain an array of links of Storage type that this Resource Block contains.", "readonly": true, "type": "array" }, "Storage@odata.count": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/count" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/count" } }, "required": [ @@ -421,10 +421,10 @@ }, "ResourceBlockLimits": { "additionalProperties": false, - "description": "This object specifies the allowable quantities of types of Resource Blocks for a given composition request.", + "description": "This type specifies the allowable quantities of types of Resource Blocks for a composition request.", "longDescription": "This object shall specify the allowable quantities of types of Resource Blocks for a given composition request.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -439,8 +439,8 @@ }, "properties": { "MaxCompute": { - "description": "The minimum number of Resource Blocks of type Compute required for the composition request.", - "longDescription": "The value of this property shall be an integer that specifies the minimum number of Resource Blocks of type Compute required for the composition request.", + "description": "The maximum number of Resource Blocks of the Compute type allowed for the composition request.", + "longDescription": "This property shall contain an integer that specifies the maximum number of Resource Blocks of the Compute type allowed for the composition request.", "minimum": 1, "readonly": true, "type": [ @@ -450,8 +450,8 @@ "versionAdded": "v1_3_0" }, "MaxComputerSystem": { - "description": "The minimum number of Resource Blocks of type ComputerSystem required for the composition request.", - "longDescription": "The value of this property shall be an integer that specifies the minimum number of Resource Blocks of type Network required for the composition request.", + "description": "The maximum number of Resource Blocks of the ComputerSystem type allowed for the composition request.", + "longDescription": "This property shall contain an integer that specifies the maximum number of Resource Blocks of the Network type allowed for the composition request.", "minimum": 1, "readonly": true, "type": [ @@ -461,8 +461,8 @@ "versionAdded": "v1_3_0" }, "MaxExpansion": { - "description": "The minimum number of Resource Blocks of type Expansion required for the composition request.", - "longDescription": "The value of this property shall be an integer that specifies the minimum number of Resource Blocks of type Expansion required for the composition request.", + "description": "The maximum number of Resource Blocks of the Expansion type allowed for the composition request.", + "longDescription": "This property shall contain an integer that specifies the maximum number of Resource Blocks of the Expansion type allowed for the composition request.", "minimum": 1, "readonly": true, "type": [ @@ -472,8 +472,8 @@ "versionAdded": "v1_3_0" }, "MaxMemory": { - "description": "The minimum number of Resource Blocks of type Memory required for the composition request.", - "longDescription": "The value of this property shall be an integer that specifies the minimum number of Resource Blocks of type Memory required for the composition request.", + "description": "The maximum number of Resource Blocks of the Memory type allowed for the composition request.", + "longDescription": "This property shall contain an integer that specifies the maximum number of Resource Blocks of the Memory type allowed for the composition request.", "minimum": 1, "readonly": true, "type": [ @@ -483,8 +483,8 @@ "versionAdded": "v1_3_0" }, "MaxNetwork": { - "description": "The minimum number of Resource Blocks of type Network required for the composition request.", - "longDescription": "The value of this property shall be an integer that specifies the minimum number of Resource Blocks of type Network required for the composition request.", + "description": "The maximum number of Resource Blocks of the Network type allowed for the composition request.", + "longDescription": "This property shall contain an integer that specifies the maximum number of Resource Blocks of the Network type allowed for the composition request.", "minimum": 1, "readonly": true, "type": [ @@ -494,8 +494,8 @@ "versionAdded": "v1_3_0" }, "MaxProcessor": { - "description": "The minimum number of Resource Blocks of type Processor required for the composition request.", - "longDescription": "The value of this property shall be an integer that specifies the minimum number of Resource Blocks of type Processor required for the composition request.", + "description": "The maximum number of Resource Blocks of the Processor type allowed for the composition request.", + "longDescription": "This property shall contain an integer that specifies the maximum number of Resource Blocks of Processor type allowed for the composition request.", "minimum": 1, "readonly": true, "type": [ @@ -505,8 +505,8 @@ "versionAdded": "v1_3_0" }, "MaxStorage": { - "description": "The minimum number of Resource Blocks of type Storage required for the composition request.", - "longDescription": "The value of this property shall be an integer that specifies the minimum number of Resource Blocks of type Storage required for the composition request.", + "description": "The maximum number of Resource Blocks of the Storage type allowed for the composition request.", + "longDescription": "This property shall contain an integer that specifies the maximum number of Resource Blocks of the Storage type allowed for the composition request.", "minimum": 1, "readonly": true, "type": [ @@ -516,8 +516,8 @@ "versionAdded": "v1_3_0" }, "MinCompute": { - "description": "The minimum number of Resource Blocks of type Compute required for the composition request.", - "longDescription": "The value of this property shall be an integer that specifies the minimum number of Resource Blocks of type Compute required for the composition request.", + "description": "The minimum number of Resource Blocks of the Compute type required for the composition request.", + "longDescription": "This property shall contain an integer that specifies the minimum number of Resource Blocks of the Compute type required for the composition request.", "minimum": 0, "readonly": true, "type": [ @@ -527,8 +527,8 @@ "versionAdded": "v1_3_0" }, "MinComputerSystem": { - "description": "The minimum number of Resource Blocks of type ComputerSystem required for the composition request.", - "longDescription": "The value of this property shall be an integer that specifies the minimum number of Resource Blocks of type Network required for the composition request.", + "description": "The minimum number of Resource Blocks of the ComputerSystem type required for the composition request.", + "longDescription": "This property shall contain an integer that specifies the minimum number of Resource Blocks of the Network type required for the composition request.", "minimum": 0, "readonly": true, "type": [ @@ -538,8 +538,8 @@ "versionAdded": "v1_3_0" }, "MinExpansion": { - "description": "The minimum number of Resource Blocks of type Expansion required for the composition request.", - "longDescription": "The value of this property shall be an integer that specifies the minimum number of Resource Blocks of type Expansion required for the composition request.", + "description": "The minimum number of Resource Blocks of the Expansion type required for the composition request.", + "longDescription": "This property shall contain an integer that specifies the minimum number of Resource Blocks of the Expansion type required for the composition request.", "minimum": 0, "readonly": true, "type": [ @@ -549,8 +549,8 @@ "versionAdded": "v1_3_0" }, "MinMemory": { - "description": "The minimum number of Resource Blocks of type Memory required for the composition request.", - "longDescription": "The value of this property shall be an integer that specifies the minimum number of Resource Blocks of type Memory required for the composition request.", + "description": "The minimum number of Resource Blocks of the Memory type required for the composition request.", + "longDescription": "This property shall contain an integer that specifies the minimum number of Resource Blocks of the Memory type required for the composition request.", "minimum": 0, "readonly": true, "type": [ @@ -560,8 +560,8 @@ "versionAdded": "v1_3_0" }, "MinNetwork": { - "description": "The minimum number of Resource Blocks of type Network required for the composition request.", - "longDescription": "The value of this property shall be an integer that specifies the minimum number of Resource Blocks of type Network required for the composition request.", + "description": "The minimum number of Resource Blocks of the Network type required for the composition request.", + "longDescription": "This property shall contain an integer that specifies the minimum number of Resource Blocks of the Network type required for the composition request.", "minimum": 0, "readonly": true, "type": [ @@ -571,8 +571,8 @@ "versionAdded": "v1_3_0" }, "MinProcessor": { - "description": "The minimum number of Resource Blocks of type Processor required for the composition request.", - "longDescription": "The value of this property shall be an integer that specifies the minimum number of Resource Blocks of type Processor required for the composition request.", + "description": "The minimum number of Resource Blocks of the Processor type required for the composition request.", + "longDescription": "This property shall contain an integer that specifies the minimum number of Resource Blocks of the Processor type required for the composition request.", "minimum": 0, "readonly": true, "type": [ @@ -582,8 +582,8 @@ "versionAdded": "v1_3_0" }, "MinStorage": { - "description": "The minimum number of Resource Blocks of type Storage required for the composition request.", - "longDescription": "The value of this property shall be an integer that specifies the minimum number of Resource Blocks of type Storage required for the composition request.", + "description": "The minimum number of Resource Blocks of the Storage type required for the composition request.", + "longDescription": "This property shall contain an integer that specifies the minimum number of Resource Blocks of the Storage type required for the composition request.", "minimum": 0, "readonly": true, "type": [ @@ -606,13 +606,13 @@ "Expansion" ], "enumDescriptions": { - "Compute": "This Resource Block contains both Processor and Memory resources in a manner that creates a compute complex.", - "ComputerSystem": "This Resource Block contains ComputerSystem resources.", + "Compute": "This Resource Block contains Resources of the Processor type and Memory type in a manner that creates a compute complex.", + "ComputerSystem": "This Resource Block contains Resources of the ComputerSystem type.", "Expansion": "This Resource Block is capable of changing over time based on its configuration. Different types of devices within this Resource Block can be added and removed over time.", - "Memory": "This Resource Block contains Memory resources.", - "Network": "This Resource Block contains Network resources, such as Ethernet Interfaces.", - "Processor": "This Resource Block contains Processor resources.", - "Storage": "This Resource Block contains Storage resources, such as Storage and Simple Storage." + "Memory": "This Resource Block contains Resources of the Memory type.", + "Network": "This Resource Block contains network Resources, such as the EthernetInterface and NetworkInterface types.", + "Processor": "This Resource Block contains Resources of the Processor type.", + "Storage": "This Resource Block contains storage Resources, such as the Storage and SimpleStorage types." }, "enumVersionAdded": { "Expansion": "v1_2_0" @@ -622,5 +622,5 @@ }, "owningEntity": "DMTF", "release": "2018.3", - "title": "#ResourceBlock.v1_3_0.ResourceBlock" + "title": "#ResourceBlock.v1_3_2.ResourceBlock" } \ No newline at end of file diff --git a/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/Role/Role.json b/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/Role/Role.json index bb045c88..5584b8ba 100644 --- a/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/Role/Role.json +++ b/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/Role/Role.json @@ -1,14 +1,15 @@ { + "$id": "http://redfish.dmtf.org/schemas/v1/Role.v1_2_4.json", "$ref": "#/definitions/Role", "$schema": "http://redfish.dmtf.org/schemas/v1/redfish-schema-v1.json", - "copyright": "Copyright 2014-2018 DMTF. For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright", + "copyright": "Copyright 2014-2019 DMTF. For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright", "definitions": { "Actions": { "additionalProperties": false, - "description": "The available actions for this resource.", - "longDescription": "This type shall contain the available actions for this resource.", + "description": "The available actions for this Resource.", + "longDescription": "This type shall contain the available actions for this Resource.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -24,18 +25,19 @@ "properties": { "Oem": { "$ref": "#/definitions/OemActions", - "description": "This property contains the available OEM specific actions for this resource.", - "longDescription": "This property shall contain any additional OEM actions for this resource." + "description": "The available OEM-specific actions for this Resource.", + "longDescription": "This property shall contain the available OEM-specific actions for this Resource.", + "versionAdded": "v1_1_0" } }, "type": "object" }, "OemActions": { "additionalProperties": true, - "description": "The available OEM specific actions for this resource.", - "longDescription": "This type shall contain any additional OEM actions for this resource.", + "description": "The available OEM-specific actions for this Resource.", + "longDescription": "This type shall contain the available OEM-specific actions for this Resource.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -53,10 +55,10 @@ }, "Role": { "additionalProperties": false, - "description": "This resource defines a user role to be used in conjunction with a Manager Account.", - "longDescription": "This resource shall be used to represent resources that represent the user role for the user account.", + "description": "The Role schema contains a Redfish Role to use in conjunction with a manager account.", + "longDescription": "This Resource represents the Redfish Role for the user account.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -71,28 +73,29 @@ }, "properties": { "@odata.context": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/context" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/context" }, "@odata.etag": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/etag" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/etag" }, "@odata.id": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/id" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/id" }, "@odata.type": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/type" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/type" }, "Actions": { "$ref": "#/definitions/Actions", - "description": "The available actions for this resource.", - "longDescription": "The Actions property shall contain the available actions for this resource." + "description": "The available actions for this Resource.", + "longDescription": "This property shall contain the available actions for this Resource.", + "versionAdded": "v1_1_0" }, "AssignedPrivileges": { - "description": "The redfish privileges that this role includes.", + "description": "The Redfish privileges for this Role.", "items": { "$ref": "http://redfish.dmtf.org/schemas/v1/Privileges.json#/definitions/PrivilegeType" }, - "longDescription": "The value of this property shall be the redfish privileges that the role includes. For pre-defined roles, this property shall be readOnly. For custom roles some implementations may not allow writing this property.", + "longDescription": "This property shall contain the Redfish privileges for this Role. For predefined Roles, this property shall be read-only. For custom Roles, some implementations may not allow writing to this property.", "readonly": false, "type": "array" }, @@ -112,8 +115,8 @@ "readonly": true }, "IsPredefined": { - "description": "This property is used to indicate if the Role is one of the Redfish Predefined Roles vs a Custom role.", - "longDescription": "The value of this property shall indicate if the role is a predefined role. .", + "description": "An indication of whether the Role is a Redfish-predefined Role rather than a custom Redfish Role.", + "longDescription": "This property shall indicate whether the Role is a Redfish-predefined Role rather than a custom Redfish Role.", "readonly": true, "type": "boolean" }, @@ -123,23 +126,24 @@ }, "Oem": { "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem", - "description": "This is the manufacturer/provider specific extension moniker used to divide the Oem object into sections.", - "longDescription": "The value of this string shall be of the format for the reserved word *Oem*." + "description": "The OEM extension property.", + "longDescription": "This property shall contain the OEM extensions. All values for properties that this object contains shall conform to the Redfish Specification-described requirements." }, "OemPrivileges": { - "description": "The OEM privileges that this role includes.", + "description": "The OEM privileges for this Role.", "items": { "type": "string" }, - "longDescription": "The value of this property shall be the OEM privileges that this role includes. For pre-defined roles, this property shall be readOnly. For custom roles some implementations may not allow writing this property.", + "longDescription": "This property shall contain the OEM privileges for this Role. For predefined Roles, this property shall be read-only. For custom Roles, some implementations may not allow writing to this property.", "readonly": false, "type": "array" }, "RoleId": { - "description": "This property contains the name of the Role.", + "description": "The name of the Role.", "longDescription": "This property shall contain the string name of the Role. This property shall contain the same value as the Id property.", "readonly": true, - "type": "string" + "type": "string", + "versionAdded": "v1_2_0" } }, "required": [ @@ -155,5 +159,6 @@ } }, "owningEntity": "DMTF", - "title": "#Role.v1_2_2.Role" + "release": "2017.2", + "title": "#Role.v1_2_4.Role" } \ No newline at end of file diff --git a/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/Schedule/Schedule.json b/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/Schedule/Schedule.json index 81fee7a0..0333c51a 100644 --- a/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/Schedule/Schedule.json +++ b/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/Schedule/Schedule.json @@ -1,9 +1,10 @@ { + "$id": "http://redfish.dmtf.org/schemas/v1/Schedule.v1_2_1.json", "$schema": "http://redfish.dmtf.org/schemas/v1/redfish-schema-v1.json", - "copyright": "Copyright 2014-2018 DMTF. For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright", + "copyright": "Copyright 2014-2019 DMTF. For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright", "definitions": { "DayOfWeek": { - "description": "Days of the Week.", + "description": "Days of the week.", "enum": [ "Monday", "Tuesday", @@ -25,9 +26,9 @@ "Wednesday": "Wednesday." }, "enumLongDescriptions": { - "Every": "This value indicates that every day of the week has been selected. When used in array properties (such as for enabling a function on certain days) it shall be the only member in the array." + "Every": "This value indicates that every day of the week has been selected. When used in array properties, such as for enabling a function on certain days, it shall be the only member in the array." }, - "longDescription": "Days of the Week.", + "longDescription": "Days of the week.", "type": "string" }, "MonthOfYear": { @@ -63,7 +64,7 @@ "September": "September." }, "enumLongDescriptions": { - "Every": "This value indicates that every month of the year has been selected. When used in array properties (such as for enabling a function for certain months) it shall be the only member in the array." + "Every": "This value indicates that every month of the year has been selected. When used in array properties, such as for enabling a function for certain months, it shall be the only member in the array." }, "longDescription": "Months of the year.", "type": "string" @@ -71,9 +72,9 @@ "Schedule": { "additionalProperties": false, "description": "Schedule a series of occurrences.", - "longDescription": "The properties of this type shall be used to Schedule a series of occurrences.", + "longDescription": "The properties of this type shall schedule a series of occurrences.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -88,21 +89,21 @@ }, "properties": { "EnabledDaysOfMonth": { - "description": "Days of month when scheduled occurrences are enabled. Zero indicates that every day of the month is enabled.", + "description": "Days of the month when scheduled occurrences are enabled. `0` indicates that every day of the month is enabled.", "items": { "type": [ "integer", "null" ] }, - "longDescription": "Days of month when scheduled occurrences are enabled, for enabled days of week and months of year. If the array contains a single value of zero, or if the property is not present, all days of the month shall be enabled.", + "longDescription": "This property shall contain the days of the month when scheduled occurrences are enabled, for enabled days of week and months of year. If the array contains a single value of `0`, or if the property is not present, all days of the month shall be enabled.", "maximum": 31, "minimum": 0, "readonly": false, "type": "array" }, "EnabledDaysOfWeek": { - "description": "Days of the week when scheduled occurrences are enabled, for enabled days of month and months of year.", + "description": "Days of the week when scheduled occurrences are enabled, for enabled days of the month and months of the year. If not present, all days of the week are enabled.", "items": { "anyOf": [ { @@ -113,7 +114,7 @@ } ] }, - "longDescription": "Days of the week when scheduled occurrences are enabled. If not present, all days of the week shall be enabled.", + "longDescription": "Days of the week when scheduled occurrences are enabled. If not present, all days of the week shall be enabled.", "readonly": false, "type": "array" }, @@ -127,10 +128,11 @@ }, "longDescription": "Each value shall be an ISO 8601 conformant interval specifying when occurences are enabled.", "readonly": false, - "type": "array" + "type": "array", + "versionAdded": "v1_1_0" }, "EnabledMonthsOfYear": { - "description": "Months of year when scheduled occurrences are enabled.", + "description": "The months of the year when scheduled occurrences are enabled. If not present, all months of the year are enabled.", "items": { "anyOf": [ { @@ -141,14 +143,14 @@ } ] }, - "longDescription": "Months of year when scheduled occurrences are enabled, for enabled days of week and days of month. If not present, all months of the year shall be enabled.", + "longDescription": "This property shall contain the months of the year when scheduled occurrences are enabled, for enabled days of week and days of month. If not present, all months of the year shall be enabled.", "readonly": false, "type": "array" }, "InitialStartTime": { - "description": "Time for initial occurrence.", + "description": "The date and time when the initial occurrence is scheduled to occur.", "format": "date-time", - "longDescription": "The value shall be a date and time of day on which the initial occurrence is scheduled to occur.", + "longDescription": "This property shall contain the date and time when the initial occurrence is scheduled to occur.", "readonly": false, "type": [ "string", @@ -157,7 +159,7 @@ }, "Lifetime": { "description": "The time after provisioning when the schedule as a whole expires.", - "longDescription": "The value shall be a Redfish Duration describing the time after provisioning when the schedule expires.", + "longDescription": "This property shall contain a Redfish Duration that describes the time after provisioning when the schedule expires.", "pattern": "-?P(\\d+D)?(T(\\d+H)?(\\d+M)?(\\d+(.\\d+)?S)?)?", "readonly": false, "type": [ @@ -166,8 +168,8 @@ ] }, "MaxOccurrences": { - "description": "Maximum number of scheduled occurrences.", - "longDescription": "Maximum number of scheduled occurrences.", + "description": "The maximum number of scheduled occurrences.", + "longDescription": "This property shall contain the maximum number of scheduled occurrences.", "readonly": false, "type": [ "integer", @@ -175,8 +177,8 @@ ] }, "Name": { - "description": "The Schedule name.", - "longDescription": "The name of the Schedule. It should be constructed as OrgID:ScheduleName. Examples: ACME:Daily, ACME:Weekly, ACME:FirstTuesday.", + "description": "The schedule name.", + "longDescription": "The name of the schedule, which is constructed as OrgID:ScheduleName. Examples include ACME:Daily, ACME:Weekly, and ACME:FirstTuesday.", "readonly": false, "type": [ "string", @@ -184,8 +186,8 @@ ] }, "RecurrenceInterval": { - "description": "Distance until the next occurrences.", - "longDescription": "The value shall be a Redfish Duration describing the time until the next occurrence.", + "description": "The amount of time until the next occurrence occurs.", + "longDescription": "This property shall contain a Redfish Duration that describes the time until the next occurrence.", "pattern": "-?P(\\d+D)?(T(\\d+H)?(\\d+M)?(\\d+(.\\d+)?S)?)?", "readonly": false, "type": [ @@ -198,5 +200,6 @@ } }, "owningEntity": "DMTF", - "title": "#Schedule.v1_2_0" + "release": "2018.2", + "title": "#Schedule.v1_2_1" } \ No newline at end of file diff --git a/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/SecureBoot/SecureBoot.json b/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/SecureBoot/SecureBoot.json index ebc037ad..7da70a40 100644 --- a/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/SecureBoot/SecureBoot.json +++ b/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/SecureBoot/SecureBoot.json @@ -1,14 +1,15 @@ { + "$id": "http://redfish.dmtf.org/schemas/v1/SecureBoot.v1_0_6.json", "$ref": "#/definitions/SecureBoot", "$schema": "http://redfish.dmtf.org/schemas/v1/redfish-schema-v1.json", - "copyright": "Copyright 2014-2018 DMTF. For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright", + "copyright": "Copyright 2014-2019 DMTF. For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright", "definitions": { "Actions": { "additionalProperties": false, - "description": "The available actions for this resource.", - "longDescription": "This type shall contain the available actions for this resource.", + "description": "The available actions for this Resource.", + "longDescription": "This type shall contain the available actions for this Resource.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -27,18 +28,18 @@ }, "Oem": { "$ref": "#/definitions/OemActions", - "description": "This property contains the available OEM specific actions for this resource.", - "longDescription": "This property shall contain any additional OEM actions for this resource." + "description": "The available OEM-specific actions for this Resource.", + "longDescription": "This property shall contain the available OEM-specific actions for this Resource." } }, "type": "object" }, "OemActions": { "additionalProperties": true, - "description": "The available OEM specific actions for this resource.", - "longDescription": "This type shall contain any additional OEM actions for this resource.", + "description": "The available OEM-specific actions for this Resource.", + "longDescription": "This type shall contain the available OEM-specific actions for this Resource.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -56,8 +57,8 @@ }, "ResetKeys": { "additionalProperties": false, - "description": "This action is used to reset the Secure Boot keys.", - "longDescription": "This action shall perform a reset of the Secure Boot key databases. The ResetAllKeysToDefault value shall reset the UEFI Secure Boot key databases to their default values. The DeleteAllKeys value shall delete the content of the UEFI Secure Boot key databases. The DeletePK value shall delete the content of the PK Secure boot key.", + "description": "This action resets the Secure Boot keys.", + "longDescription": "This action shall reset of the Secure Boot key databases. The ResetAllKeysToDefault value shall reset the UEFI Secure Boot key databases to their default values. The DeleteAllKeys value shall delete the content of the UEFI Secure Boot key databases. The DeletePK value shall delete the content of the PK Secure Boot key.", "parameters": { "ResetKeysType": { "$ref": "#/definitions/ResetKeysType", @@ -67,7 +68,7 @@ } }, "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -83,7 +84,7 @@ "properties": { "target": { "description": "Link to invoke action", - "format": "uri", + "format": "uri-reference", "type": "string" }, "title": { @@ -100,18 +101,18 @@ "DeletePK" ], "enumDescriptions": { - "DeleteAllKeys": "Delete the content of all UEFI Secure Boot key databases (PK, KEK, DB, DBX). This puts the system in Setup Mode.", - "DeletePK": "Delete the content of the PK UEFI Secure Boot database. This puts the system in Setup Mode.", + "DeleteAllKeys": "Delete the content of all UEFI Secure Boot key databases (PK, KEK, DB, DBX). This puts the system in Setup Mode.", + "DeletePK": "Delete the content of the PK UEFI Secure Boot database. This puts the system in Setup Mode.", "ResetAllKeysToDefault": "Reset the content of all UEFI Secure Boot key databases (PK, KEK, DB, DBX) to their default values." }, "type": "string" }, "SecureBoot": { "additionalProperties": false, - "description": "This resource contains UEFI Secure Boot information. It represents properties for managing the UEFI Secure Boot functionality of a system.", - "longDescription": "This resource shall be used to represent a UEFI Secure Boot resource for a Redfish implementation.", + "description": "The SecureBoot schema contains UEFI Secure Boot information and represents properties for managing the UEFI Secure Boot functionality of a system.", + "longDescription": "This Resource contains a UEFI Secure Boot Resource for a Redfish implementation.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -126,21 +127,21 @@ }, "properties": { "@odata.context": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/context" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/context" }, "@odata.etag": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/etag" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/etag" }, "@odata.id": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/id" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/id" }, "@odata.type": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/type" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/type" }, "Actions": { "$ref": "#/definitions/Actions", - "description": "The available actions for this resource.", - "longDescription": "The Actions property shall contain the available actions for this resource." + "description": "The available actions for this Resource.", + "longDescription": "This property shall contain the available actions for this Resource." }, "Description": { "anyOf": [ @@ -163,8 +164,8 @@ }, "Oem": { "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem", - "description": "This is the manufacturer/provider specific extension moniker used to divide the Oem object into sections.", - "longDescription": "The value of this string shall be of the format for the reserved word *Oem*." + "description": "The OEM extension property.", + "longDescription": "This property shall contain the OEM extensions. All values for properties that this object contains shall conform to the Redfish Specification-described requirements." }, "SecureBootCurrentBoot": { "anyOf": [ @@ -176,12 +177,12 @@ } ], "description": "Secure Boot state during the current boot cycle.", - "longDescription": "The value of this property shall indicate the UEFI Secure Boot state during the current boot cycle.", + "longDescription": "This property shall indicate the UEFI Secure Boot state during the current boot cycle.", "readonly": true }, "SecureBootEnable": { - "description": "Enable or disable UEFI Secure Boot (takes effect on next boot).", - "longDescription": "Setting this property to true enables UEFI Secure Boot, and setting it to false disables it. This property can be enabled only in UEFI boot mode.", + "description": "An indication of whether UEFI Secure Boot is enabled.", + "longDescription": "This property shall indicate whether the UEFI Secure Boot takes effect on next boot. This property can be enabled in UEFI boot mode only.", "readonly": false, "type": [ "boolean", @@ -238,5 +239,6 @@ } }, "owningEntity": "DMTF", - "title": "#SecureBoot.v1_0_4.SecureBoot" + "release": "2016.1", + "title": "#SecureBoot.v1_0_6.SecureBoot" } \ No newline at end of file diff --git a/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/Sensor/Sensor.json b/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/Sensor/Sensor.json index 29a9ebf5..603c1e6c 100644 --- a/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/Sensor/Sensor.json +++ b/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/Sensor/Sensor.json @@ -1,15 +1,15 @@ { - "$id": "http://redfish.dmtf.org/schemas/v1/Sensor.v1_0_0.json", + "$id": "http://redfish.dmtf.org/schemas/v1/Sensor.v1_0_2.json", "$ref": "#/definitions/Sensor", "$schema": "http://redfish.dmtf.org/schemas/v1/redfish-schema-v1.json", - "copyright": "Copyright 2014-2018 DMTF. For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright", + "copyright": "Copyright 2014-2019 DMTF. For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright", "definitions": { "Actions": { "additionalProperties": false, - "description": "The available actions for this resource.", - "longDescription": "This type shall contain the available actions for this resource.", + "description": "The available actions for this Resource.", + "longDescription": "This type shall contain the available actions for this Resource.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -28,8 +28,8 @@ }, "Oem": { "$ref": "#/definitions/OemActions", - "description": "This property contains the available OEM specific actions for this resource.", - "longDescription": "This property shall contain any additional OEM actions for this resource." + "description": "The available OEM-specific actions for this Resource.", + "longDescription": "This property shall contain the available OEM-specific actions for this Resource." } }, "type": "object" @@ -55,16 +55,16 @@ "Total" ], "enumDescriptions": { - "Line1": "The circuits sharing L1 current-carrying conductor.", + "Line1": "The circuits that share the L1 current-carrying conductor.", "Line1ToLine2": "The circuit formed by L1 and L2 current-carrying conductors when PhaseWiringType.TwoPhase3Wire, TwoPhase4Wire, ThreePhase4Wire, or ThreePhase5Wire.", "Line1ToNeutral": "The circuit formed by L1 and Neutral current-carrying conductors when PhaseWiringType.OnePhase3Wire, TwoPhase4Wire, ThreePhase4Wire, or ThreePhase5Wire.", "Line1ToNeutralAndL1L2": "The circuits formed by L1, L2, and Neutral current-carrying conductors when PhaseWiringType.TwoPhase4Wire or ThreePhase5Wire.", - "Line2": "The circuits sharing L2 current-carrying conductor when PhaseWiringType.ThreePhase4Wire. TwoPhase4Wire, or ThreePhase5Wire.", + "Line2": "The circuits that share the L2 current-carrying conductor when PhaseWiringType.ThreePhase4Wire, TwoPhase4Wire, or ThreePhase5Wire.", "Line2ToLine3": "The circuit formed by L2 and L3 current-carrying conductors when PhaseWiringType.ThreePhase4Wire or ThreePhase5Wire.", "Line2ToNeutral": "The circuit formed by L2 and Neutral current-carrying conductors when PhaseWiringType.TwoPhase4Wire or ThreePhase5Wire.", "Line2ToNeutralAndL1L2": "The circuits formed by L1, L2, and Neutral current-carrying conductors when PhaseWiringType.TwoPhase4Wire or ThreePhase5Wire.", "Line2ToNeutralAndL2L3": "The circuits formed by L2, L3, and Neutral current-carrying conductors when PhaseWiringType.ThreePhase5Wire.", - "Line3": "The circuits sharing L3 current-carrying conductor when PhaseWiringType.ThreePhase4Wire or ThreePhase5Wire.", + "Line3": "The circuits that share the L3 current-carrying conductor when PhaseWiringType.ThreePhase4Wire or ThreePhase5Wire.", "Line3ToLine1": "The circuit formed by L3 and L1 current-carrying conductors when PhaseWiringType.ThreePhase4Wire or ThreePhase5Wire.", "Line3ToNeutral": "The circuit formed by L3 and Neutral current-carrying conductors when PhaseWiringType.ThreePhase5Wire.", "Line3ToNeutralAndL3L1": "The circuits formed by L3, L1, and Neutral current-carrying conductors when PhaseWiringType.ThreePhase5Wire.", @@ -74,16 +74,16 @@ "Total": "The circuits formed by all current-carrying conductors for any PhaseWiringType." }, "enumLongDescriptions": { - "Line1": "This property shall contain the circuits sharing L1 current-carrying conductor when PhaseWiringType.TwoPhase3Wire, TwoPhase4Wire, ThreePhase4Wire, or ThreePhase5Wire.", + "Line1": "This property shall contain the circuits that share the L1 current-carrying conductor when PhaseWiringType.TwoPhase3Wire, TwoPhase4Wire, ThreePhase4Wire, or ThreePhase5Wire.", "Line1ToLine2": "This property shall contain the circuit formed by L1 and L2 current-carrying conductors when PhaseWiringType.TwoPhase3Wire, TwoPhase4Wire, ThreePhase4Wire, or ThreePhase5Wire.", "Line1ToNeutral": "This property shall contain the circuit formed by L1 and Neutral current-carrying conductors when PhaseWiringType.OnePhase3Wire, TwoPhase4Wire, ThreePhase4Wire, or ThreePhase5Wire.", "Line1ToNeutralAndL1L2": "This property shall contain the circuits formed by L1, L2, and Neutral current-carrying conductors when PhaseWiringType.TwoPhase4Wire or ThreePhase5Wire.", - "Line2": "This property shall contain the circuits sharing L2 current-carrying conductor when PhaseWiringType.ThreePhase4Wire. TwoPhase4Wire, or ThreePhase5Wire.", + "Line2": "This property shall contain the circuits that share the L2 current-carrying conductor when PhaseWiringType.ThreePhase4Wire, TwoPhase4Wire, or ThreePhase5Wire.", "Line2ToLine3": "This property shall contain the circuit formed by L2 and L3 current-carrying conductors when PhaseWiringType.ThreePhase4Wire or ThreePhase5Wire.", "Line2ToNeutral": "This property shall contain the circuit formed by L2 and Neutral current-carrying conductors when PhaseWiringType.TwoPhase4Wire or ThreePhase5Wire.", "Line2ToNeutralAndL1L2": "This property shall contain the circuits formed by L1, L2, and Neutral current-carrying conductors when PhaseWiringType.TwoPhase4Wire or ThreePhase5Wire.", "Line2ToNeutralAndL2L3": "This property shall contain the circuits formed by L2, L3, and Neutral current-carrying conductors when PhaseWiringType.ThreePhase5Wire.", - "Line3": "This property shall contain the circuits sharing L3 current-carrying conductor when PhaseWiringType.ThreePhase4Wire or ThreePhase5Wire.", + "Line3": "This property shall contain the circuits that share the L3 current-carrying conductor when PhaseWiringType.ThreePhase4Wire or ThreePhase5Wire.", "Line3ToLine1": "This property shall contain the circuit formed by L3 and L1 current-carrying conductors when PhaseWiringType.ThreePhase4Wire or ThreePhase5Wire.", "Line3ToNeutral": "This property shall contain the circuit formed by L3 and Neutral current-carrying conductors when PhaseWiringType.ThreePhase5Wire.", "Line3ToNeutralAndL3L1": "This property shall contain the circuits formed by L3, L1, and Neutral current-carrying conductors when PhaseWiringType.ThreePhase5Wire.", @@ -96,10 +96,10 @@ }, "OemActions": { "additionalProperties": true, - "description": "The available OEM specific actions for this resource.", - "longDescription": "This type shall contain any additional OEM actions for this resource.", + "description": "The available OEM-specific actions for this Resource.", + "longDescription": "This type shall contain the available OEM-specific actions for this Resource.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -136,10 +136,10 @@ "enumDescriptions": { "AirFlow": "Airflow.", "Altitude": "Altitude.", - "Barometric": "Barometric Pressure.", + "Barometric": "Barometric pressure.", "Current": "Current.", - "EnergyJoules": "Energy consumption (Joules).", - "EnergykWh": "Energy consumption (kW/h).", + "EnergyJoules": "Energy (Joules).", + "EnergykWh": "Energy (kWh).", "Frequency": "Frequency.", "Humidity": "Relative Humidity.", "LiquidFlow": "Liquid flow.", @@ -151,31 +151,31 @@ "Voltage": "Voltage (AC or DC)." }, "enumLongDescriptions": { - "AirFlow": "The value of the Reading property shall be a measurement of a volume of gas per unit of time that flows through a particular junction. The ReadingUnits shall be 'cft_i/min'.", - "Altitude": "The value of the Reading property shall be a measurement of altitude in meter units and the ReadingUnits value shall be 'm'.", - "Barometric": "the value of the Reading property shall be a measurement of barometric pressure in millimeters of a mercury column and the ReadingUnits value shall be 'mm[Hg]'.", - "Current": "The value of the Reading property shall be a measurement of the root mean square (RMS) of instantaneous current calculated over an integer number of line cycles for a circuit. Current is expressed in Amperes units and the ReadingUnits value shall be 'A'.", - "EnergyJoules": "The value of the Reading property shall indicate the energy consumption (integral of Real Power over time) of the monitored item since the sensor statistics were last reset. The value of the Reading property shall be in Joule units and the ReadingUnits value shall be 'J'. This type is used for device-level energy consumption measurements, while EnergykWh is used for large-scale consumption measurements.", - "EnergykWh": "The value of the Reading property shall indicate the energy consumption (integral of Real Power over time) of the monitored item since the sensor statistics were last reset. The value of the Reading property shall be in kilowatt-hour units and the ReadingUnits value shall be 'kW'. This type is used for large-scale energy consumption measurements, while EnergyJoules is used for device-level consumption measurements.", - "Frequency": "The value of the Reading property shall be a frequency measurement in Hertz units and the ReadingUnits value shall be 'Hz'.", - "Humidity": "The value of the Reading property shall be a relative humidity measurement in percent units and the ReadingUnits value shall be '%'.", - "LiquidFlow": "The value of the Reading property shall be a measurement of a volume of liquid per unit of time that flows through a particular junction. The ReadingUnits shall be 'L/s'.", - "LiquidLevel": "The value of the Reading property shall be a measurement of fluid height relative to a specified vertical datum and the ReadingUnits value shall be 'cm'.", - "Power": "The value of the Reading property shall be the arithmetic mean of product terms of instantaneous voltage and current values measured over integer number of line cycles for a circuit in Watt units and the ReadingUnits value shall be 'W'.", - "Pressure": "The value of the Reading property shall be a measurement of force applied perpendicular to the surface of an object per unit area over which that force is distributed. The ReadingUnits shall be 'Pa'.", - "Rotational": "The value of the Reading property shall be a measurement of rotational frequency in Revolutions per Minute unit and the ReadingUnits value shall be 'RPM'.", - "Temperature": "The value of the Reading property shall be a temperature measurement in degrees Celsius units and the ReadingUnits value shall be 'Cel'.", - "Voltage": "The value of the Reading property shall be a measurement of the root mean square (RMS) of instantaneous voltage calculated over an integer number of line cycles for a circuit. Voltage is expressed in Volts units and the ReadingUnits value shall be 'V'." + "AirFlow": "This value shall indicate a measurement of a volume of gas per unit of time that flows through a particular junction. The ReadingUnits shall be `cft_i/min`.", + "Altitude": "This value shall indicate a measurement of altitude, in meter units, and the ReadingUnits value shall be `m`.", + "Barometric": "This value shall indicate a measurement of barometric pressure, in millimeters, of a mercury column, and the ReadingUnits value shall be `mm[Hg]`.", + "Current": "This value shall indicate a measurement of the root mean square (RMS) of instantaneous current calculated over an integer number of line cycles for a circuit. Current is expressed in Amperes units and the ReadingUnits value shall be `A`.", + "EnergyJoules": "This value shall indicate the energy, integral of real power over time, of the monitored item since the sensor statistics were last reset. The value of the Reading property shall be in Joule units and the ReadingUnits value shall be `J`. This value is used for device-level energy consumption measurements, while EnergykWh is used for large-scale consumption measurements.", + "EnergykWh": "This value shall indicate the energy, integral of real power over time, of the monitored item since the sensor statistics were last reset. The value of the Reading property shall be in kilowatt-hour units and the ReadingUnits value shall be `kW.h`. This value is used for large-scale energy consumption measurements, while EnergyJoules is used for device-level consumption measurements.", + "Frequency": "This value shall indicate a frequency measurement, in Hertz units, and the ReadingUnits value shall be `Hz`.", + "Humidity": "This value shall indicate a relative humidity measurement, in percent units, and the ReadingUnits value shall be '%'.", + "LiquidFlow": "This value shall indicate a measurement of a volume of liquid per unit of time that flows through a particular junction. The ReadingUnits shall be `L/s`.", + "LiquidLevel": "This value shall indicate a measurement of fluid height relative to a specified vertical datum and the ReadingUnits value shall be `cm`.", + "Power": "This value shall indicate the arithmetic mean of product terms of instantaneous voltage and current values measured over integer number of line cycles for a circuit, in Watt units, and the ReadingUnits value shall be 'W'.", + "Pressure": "This value shall indicate a measurement of force applied perpendicular to the surface of an object per unit area over which that force is distributed. The ReadingUnits shall be `Pa`.", + "Rotational": "This value shall indicate a measurement of rotational frequency, in revolutions per minute unit, and the ReadingUnits value shall be `RPM`.", + "Temperature": "This value shall indicate a temperature measurement, in degrees Celsius units, and the ReadingUnits value shall be 'Cel'.", + "Voltage": "This value shall indicate a measurement of the root mean square (RMS) of instantaneous voltage calculated over an integer number of line cycles for a circuit. Voltage is expressed in Volts units and the ReadingUnits value shall be `V`." }, "type": "string" }, "ResetStatistics": { "additionalProperties": false, - "description": "This action is used to reset statistics related to this sensor.", - "longDescription": "This action shall perform a reset of any time intervals or counted values for this sensor.", + "description": "Resets statistics related to this sensor.", + "longDescription": "This action shall reset any time intervals or counted values for this sensor.", "parameters": {}, "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -191,7 +191,7 @@ "properties": { "target": { "description": "Link to invoke action", - "format": "uri", + "format": "uri-reference", "type": "string" }, "title": { @@ -203,10 +203,10 @@ }, "Sensor": { "additionalProperties": false, - "description": "This schema defines a Sensor to be used in conjunction with data center equipment.", - "longDescription": "This resource shall be used to represent resources that represent the sensor data.", + "description": "The Sensor schema describes a sensor and its properties.", + "longDescription": "This Resource represents a Sensor for a Redfish implementation.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -221,34 +221,35 @@ }, "properties": { "@odata.context": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/context" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/context" }, "@odata.etag": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/etag" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/etag" }, "@odata.id": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/id" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/id" }, "@odata.type": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/type" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/type" }, "Accuracy": { - "description": "Estimated percent error of measured vs. actual values.", - "longDescription": "The value of this property shall be the percent error +/- of the measured vs. actual values.", + "description": "The estimated percent error of measured versus actual values.", + "longDescription": "This property shall contain the percent error +/- of the measured versus actual values of the Reading property.", "readonly": true, "type": [ "number", "null" - ] + ], + "units": "%" }, "Actions": { "$ref": "#/definitions/Actions", - "description": "The available actions for this resource.", - "longDescription": "The Actions property shall contain the available actions for this resource." + "description": "The available actions for this Resource.", + "longDescription": "This property shall contain the available actions for this Resource." }, "AdjustedMaxAllowableOperatingValue": { - "description": "Adjusted maximum allowable operating value for this equipment based on the current environmental conditions present.", - "longDescription": "The value of this property shall indicate the adjusted maximum allowable operating value for the equipment monitored by this sensor, as specified by a standards body, manufacturer, or a combination, and adjusted based on environmental conditions present. For example, liquid inlet temperature may be adjusted based on the available liquid pressure.", + "description": "The adjusted maximum allowable operating value for this equipment based on the environmental conditions.", + "longDescription": "This property shall contain the adjusted maximum allowable operating value for the equipment that this sensor monitors, as specified by a standards body, manufacturer, or both. The value is adjusted based on environmental conditions. For example, liquid inlet temperature may be adjusted based on the available liquid pressure.", "readonly": true, "type": [ "number", @@ -256,8 +257,8 @@ ] }, "AdjustedMinAllowableOperatingValue": { - "description": "Adjusted minimum allowable operating value for this equipment based on the current environmental conditions present.", - "longDescription": "The value of this property shall indicate the adjusted minimum allowable operating value for the equipment monitored by this sensor, as specified by a standards body, manufacturer, or a combination, and adjusted based on environmental conditions present. For example, liquid inlet temperature may be adjusted based on the available liquid pressure.", + "description": "The adjusted minimum allowable operating value for this equipment based on the environmental conditions.", + "longDescription": "This property shall contain the adjusted minimum allowable operating value for the equipment that this sensor monitors, as specified by a standards body, manufacturer, or both. This value is adjusted based on environmental conditions. For example, liquid inlet temperature may be adjusted based on the available liquid pressure.", "readonly": true, "type": [ "number", @@ -265,9 +266,9 @@ ] }, "ApparentVA": { - "description": "The product of Voltage and Current for an AC circuit, in Volt-Amperes units.", + "description": "The product of voltage and current for an AC circuit, in Volt-Amperes units.", "excerpt": "SensorPower", - "longDescription": "This property shall indicate the product of VoltageRMS multiplied by CurrentRMS for a circuit. PowerApparentVA is expressed in Volt-Amperes units using the ReadingUnits value of 'V'. This property may appear in sensors of ReadingType of Power, and shall not appear in sensors of other ReadingType values.", + "longDescription": "This property shall contain the product of VoltageRMS multiplied by CurrentRMS for a circuit. PowerApparentVA is expressed in Volt-Amperes units by using the ReadingUnits `V` value. This property may appear in sensors of the Power ReadingType, and shall not appear in sensors of other ReadingType values.", "readonly": true, "type": [ "number", @@ -295,7 +296,7 @@ } ], "description": "The combination of current-carrying conductors.", - "longDescription": "This property shall represent the combination of current-carrying conductors that are utilized to distribute power.", + "longDescription": "This property shall represent the combination of current-carrying conductors that distribute power.", "readonly": true }, "Id": { @@ -303,30 +304,24 @@ "readonly": true }, "LoadPercent": { - "description": "The power load utilization for this Sensor.", + "description": "The power load utilization for this sensor.", "excerpt": "SensorPower", - "longDescription": "This property shall indicate the present value of this Sensor at the time the information request occurred. This property may appear in sensors of ReadingType of Power, and shall not appear in sensors of other ReadingType values.", + "longDescription": "This property shall indicate the power load utilization percent for this sensor. This property may appear in sensors of the Power ReadingType, and shall not appear in sensors of other ReadingType values.", "readonly": true, "type": [ "number", "null" - ] + ], + "units": "%" }, "Location": { - "anyOf": [ - { - "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Location" - }, - { - "type": "null" - } - ], - "description": "The location information for this Sensor.", - "longDescription": "This property shall indicate the location information of this Sensor." + "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Location", + "description": "The location information for this sensor.", + "longDescription": "This property shall indicate the location information for this sensor." }, "MaxAllowableOperatingValue": { - "description": "Maximum allowable operating value for this equipment.", - "longDescription": "The value of this property shall indicate the maximum allowable operating value for the equipment monitored by this sensor, as specified by a standards body, manufacturer, or a combination.", + "description": "The maximum allowable operating value for this equipment.", + "longDescription": "This property shall contain the maximum allowable operating value for the equipment that this sensor monitors, as specified by a standards body, manufacturer, or both.", "readonly": true, "type": [ "number", @@ -334,8 +329,8 @@ ] }, "MinAllowableOperatingValue": { - "description": "Minimum allowable operating value for this equipment.", - "longDescription": "The value of this property shall indicate the minimum allowable operating value for the equipment monitored by this sensor, as specified by a standards body, manufacturer, or a combination.", + "description": "The minimum allowable operating value for this equipment.", + "longDescription": "This property shall contain the minimum allowable operating value for the equipment that this sensor monitors, as specified by a standards body, manufacturer, or both.", "readonly": true, "type": [ "number", @@ -349,13 +344,13 @@ }, "Oem": { "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem", - "description": "This is the manufacturer/provider specific extension moniker used to divide the Oem object into sections.", - "longDescription": "The value of this string shall be of the format for the reserved word *Oem*." + "description": "The OEM extension property.", + "longDescription": "This property shall contain the OEM extensions. All values for properties that this object contains shall conform to the Redfish Specification-described requirements." }, "PeakReading": { - "description": "The peak reading value for this sensor.", + "description": "The peak sensor value.", "excerpt": "Sensor", - "longDescription": "The value of this property shall be the peak value of the Reading for this sensor during the last interval.", + "longDescription": "This property shall contain the peak sensor value since the last ResetStatistics action was performed or the service last reset the time-based property values.", "readonly": true, "type": [ "number", @@ -363,9 +358,9 @@ ] }, "PeakReadingTime": { - "description": "The time at which the Peak Reading value occurred.", + "description": "The time when the peak sensor value occurred.", "format": "date-time", - "longDescription": "The value of this property shall the timestamp when the Peak Reading value was observed.", + "longDescription": "This property shall contain the date and time when the peak sensor value was observed.", "readonly": true, "type": [ "string", @@ -381,9 +376,9 @@ "type": "null" } ], - "description": "Describes the area or device to which this sensor measurement applies.", + "description": "The area or device to which this sensor measurement applies.", "excerpt": "Sensor", - "longDescription": "The value of this property shall be a description of the affected component or region within the equipment to which this sensor measurement applies.", + "longDescription": "This property shall contain a description of the affected component or region within the equipment to which this sensor measurement applies.", "readonly": true }, "PhysicalSubContext": { @@ -395,15 +390,15 @@ "type": "null" } ], - "description": "Describes the usage or location within a device to which this sensor measurement applies.", + "description": "The usage or location within a device to which this sensor measurement applies.", "excerpt": "Sensor", - "longDescription": "The value of this property shall be a description of the usage or sub-region within the equipment to which this sensor measurement applies. This property is generally used to differentiate multiple sensors within the same instance of a PhysicalContext.", + "longDescription": "This property shall contain a description of the usage or sub-region within the equipment to which this sensor measurement applies. This property generally differentiates multiple sensors within the same PhysicalContext instance.", "readonly": true }, "PowerFactor": { - "description": "The power factor for this Sensor.", + "description": "The power factor for this sensor.", "excerpt": "SensorPower", - "longDescription": "This property shall identify the quotient of PowerRealWatts and PowerApparentVA for a circuit. PowerFactor is expressed in unit-less 1/100ths. This property may appear in sensors of ReadingType of Power, and shall not appear in sensors of other ReadingType values.", + "longDescription": "This property shall identify the quotient of PowerRealWatts and PowerApparentVA for a circuit. PowerFactor is expressed in unit-less 1/100ths. This property may appear in sensors of the Power ReadingType, and shall not appear in sensors of other ReadingType values.", "maximum": 1, "minimum": 0, "readonly": true, @@ -413,8 +408,8 @@ ] }, "Precision": { - "description": "Number of significant digits in the Reading.", - "longDescription": "The value of this property shall specify the number of significant digits in the Reading.", + "description": "The number of significant digits in the reading.", + "longDescription": "This property shall contain the number of significant digits in the Reading property.", "readonly": true, "type": [ "number", @@ -422,9 +417,9 @@ ] }, "ReactiveVAR": { - "description": "The square root of the difference term of squared ApparentVA and squared Power (Reading) for a circuit, expressed in VAR units.", + "description": "The square root of the difference term of squared ApparentVA and squared Power (Reading) for a circuit, in VAR units.", "excerpt": "SensorPower", - "longDescription": "This property shall indicate the arithmetic mean of product terms of instantaneous voltage and quadrature current measurements calculated over an integer number of line cycles for a circuit. PowerReactiveVAR is expressed in VAR units using the ReadingUnits value of 'V'. This property may appear in sensors of ReadingType of Power, and shall not appear in sensors of other ReadingType values.", + "longDescription": "This property shall contain the arithmetic mean of product terms of instantaneous voltage and quadrature current measurements calculated over an integer number of line cycles for a circuit. PowerReactiveVAR is expressed in VAR units by using the ReadingUnits `V` value. This property may appear in sensors of the Power ReadingType, and shall not appear in sensors of other ReadingType values.", "readonly": true, "type": [ "number", @@ -432,9 +427,9 @@ ] }, "Reading": { - "description": "The present value for this Sensor.", + "description": "The sensor value.", "excerpt": "Sensor", - "longDescription": "This property shall indicate the present value of this Sensor at the time the information request occurred.", + "longDescription": "This property shall contain the sensor value.", "readonly": true, "type": [ "number", @@ -442,8 +437,8 @@ ] }, "ReadingRangeMax": { - "description": "The maximum value of Reading possible for this Sensor.", - "longDescription": "This property shall indicate the Max Reading Range information of this Sensor. This is the range of valid readings for this sensor. Values outside this range are discarded as reading errors.", + "description": "The maximum possible value for this sensor.", + "longDescription": "This property shall indicate the maximum possible value of the Reading property for this sensor. This value is the range of valid readings for this sensor. Values outside this range are discarded as reading errors.", "readonly": true, "type": [ "number", @@ -451,8 +446,8 @@ ] }, "ReadingRangeMin": { - "description": "The minimum value of Reading possible for this Sensor.", - "longDescription": "This property shall indicate the Min Reading Range information of this Sensor. This is the range of valid readings for this sensor. Values outside this range are discarded as reading errors.", + "description": "The minimum possible value for this sensor.", + "longDescription": "This property shall indicate the minimum possible value of the Reading property for this sensor. This value is the range of valid readings for this sensor. Values outside this range are discarded as reading errors.", "readonly": true, "type": [ "number", @@ -468,14 +463,14 @@ "type": "null" } ], - "description": "The kind of sensor being represented.", - "longDescription": "This property shall indicate the type of the sensor being represented.", + "description": "The type of sensor.", + "longDescription": "This property shall contain the type of the sensor.", "readonly": true }, "ReadingUnits": { - "description": "Units in which the reading and thresholds are measured.", + "description": "The units of the reading and thresholds.", "excerpt": "Sensor", - "longDescription": "The value of this property shall be the units in which the sensor's reading and thresholds are measured.", + "longDescription": "This property shall contain the units of the sensor's reading and thresholds.", "readonly": true, "type": [ "string", @@ -484,7 +479,7 @@ }, "SensingFrequency": { "description": "The time interval between readings of the physical sensor.", - "longDescription": "The value of this property shall the time interval between reading the physical sensor.", + "longDescription": "This property shall contain the time interval between readings of the physical sensor.", "readonly": true, "type": [ "number", @@ -492,9 +487,9 @@ ] }, "SensorResetTime": { - "description": "The time at which the time-based properties were last reset.", + "description": "The date and time when the time-based properties were last reset.", "format": "date-time", - "longDescription": "The value of this property shall be the timestamp when the time-based property values were last reset by the user or the service.", + "longDescription": "This property shall contain the date and time when the ResetStatistics action was last performed or the service last reset the time-based property values.", "readonly": true, "type": [ "string", @@ -503,21 +498,14 @@ }, "Status": { "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Status", - "description": "This property describes the status and health of the resource and its children.", + "description": "The status and health of the Resource and its subordinate or dependent Resources.", "excerpt": "Sensor", - "longDescription": "This property shall contain any status or health properties of the resource." + "longDescription": "This property shall contain the status and health of the Resource and its children." }, "Thresholds": { - "anyOf": [ - { - "$ref": "#/definitions/Thresholds" - }, - { - "type": "null" - } - ], + "$ref": "#/definitions/Thresholds", "description": "The set of thresholds defined for this sensor.", - "longDescription": "This property shall contain the set of thresholds that are used to derive a sensor's health and operational range." + "longDescription": "This property shall contain the set of thresholds that derive a sensor's health and operational range." }, "VoltageType": { "anyOf": [ @@ -528,8 +516,8 @@ "type": "null" } ], - "description": "The voltage type (AC or DC) for this sensor.", - "longDescription": "This property shall represent the type of input voltage the sensor monitors. Please use AC for alternating current and DC for direct current.", + "description": "The voltage type for this sensor.", + "longDescription": "This property shall represent the type of input voltage the sensor monitors.", "readonly": true } }, @@ -543,11 +531,11 @@ }, "SensorExcerpt": { "additionalProperties": false, - "description": "This schema defines a Sensor to be used in conjunction with data center equipment.", + "description": "The Sensor schema describes a sensor and its properties.", "excerpt": "Sensor", - "longDescription": "This resource shall be used to represent resources that represent the sensor data.", + "longDescription": "This Resource represents a Sensor for a Redfish implementation.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -562,10 +550,10 @@ }, "properties": { "DataSourceUri": { - "description": "A link to the resource that provides the data for this object.", + "description": "The link to the Resource that provides the data for this sensor.", "excerptCopyOnly": true, - "format": "uri", - "longDescription": "This property shall contain a URI to the resource that provides the source of the schema Excerpt contained within this copy.", + "format": "uri-reference", + "longDescription": "This property shall contain a URI to the Resource that provides the source of the Excerpt contained within this copy.", "readonly": true, "type": [ "string", @@ -578,9 +566,9 @@ "readonly": true }, "PeakReading": { - "description": "The peak reading value for this sensor.", + "description": "The peak sensor value.", "excerpt": "Sensor", - "longDescription": "The value of this property shall be the peak value of the Reading for this sensor during the last interval.", + "longDescription": "This property shall contain the peak sensor value since the last ResetStatistics action was performed or the service last reset the time-based property values.", "readonly": true, "type": [ "number", @@ -596,9 +584,9 @@ "type": "null" } ], - "description": "Describes the area or device to which this sensor measurement applies.", + "description": "The area or device to which this sensor measurement applies.", "excerpt": "Sensor", - "longDescription": "The value of this property shall be a description of the affected component or region within the equipment to which this sensor measurement applies.", + "longDescription": "This property shall contain a description of the affected component or region within the equipment to which this sensor measurement applies.", "readonly": true }, "PhysicalSubContext": { @@ -610,15 +598,15 @@ "type": "null" } ], - "description": "Describes the usage or location within a device to which this sensor measurement applies.", + "description": "The usage or location within a device to which this sensor measurement applies.", "excerpt": "Sensor", - "longDescription": "The value of this property shall be a description of the usage or sub-region within the equipment to which this sensor measurement applies. This property is generally used to differentiate multiple sensors within the same instance of a PhysicalContext.", + "longDescription": "This property shall contain a description of the usage or sub-region within the equipment to which this sensor measurement applies. This property generally differentiates multiple sensors within the same PhysicalContext instance.", "readonly": true }, "Reading": { - "description": "The present value for this Sensor.", + "description": "The sensor value.", "excerpt": "Sensor", - "longDescription": "This property shall indicate the present value of this Sensor at the time the information request occurred.", + "longDescription": "This property shall contain the sensor value.", "readonly": true, "type": [ "number", @@ -626,9 +614,9 @@ ] }, "ReadingUnits": { - "description": "Units in which the reading and thresholds are measured.", + "description": "The units of the reading and thresholds.", "excerpt": "Sensor", - "longDescription": "The value of this property shall be the units in which the sensor's reading and thresholds are measured.", + "longDescription": "This property shall contain the units of the sensor's reading and thresholds.", "readonly": true, "type": [ "string", @@ -637,9 +625,9 @@ }, "Status": { "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Status", - "description": "This property describes the status and health of the resource and its children.", + "description": "The status and health of the Resource and its subordinate or dependent Resources.", "excerpt": "Sensor", - "longDescription": "This property shall contain any status or health properties of the resource." + "longDescription": "This property shall contain the status and health of the Resource and its children." } }, "required": [ @@ -649,11 +637,11 @@ }, "SensorPowerExcerpt": { "additionalProperties": false, - "description": "This schema defines a Sensor to be used in conjunction with data center equipment.", + "description": "The Sensor schema describes a sensor and its properties.", "excerpt": "SensorPower", - "longDescription": "This resource shall be used to represent resources that represent the sensor data.", + "longDescription": "This Resource represents a Sensor for a Redfish implementation.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -668,9 +656,9 @@ }, "properties": { "ApparentVA": { - "description": "The product of Voltage and Current for an AC circuit, in Volt-Amperes units.", + "description": "The product of voltage and current for an AC circuit, in Volt-Amperes units.", "excerpt": "SensorPower", - "longDescription": "This property shall indicate the product of VoltageRMS multiplied by CurrentRMS for a circuit. PowerApparentVA is expressed in Volt-Amperes units using the ReadingUnits value of 'V'. This property may appear in sensors of ReadingType of Power, and shall not appear in sensors of other ReadingType values.", + "longDescription": "This property shall contain the product of VoltageRMS multiplied by CurrentRMS for a circuit. PowerApparentVA is expressed in Volt-Amperes units by using the ReadingUnits `V` value. This property may appear in sensors of the Power ReadingType, and shall not appear in sensors of other ReadingType values.", "readonly": true, "type": [ "number", @@ -678,10 +666,10 @@ ] }, "DataSourceUri": { - "description": "A link to the resource that provides the data for this object.", + "description": "The link to the Resource that provides the data for this sensor.", "excerptCopyOnly": true, - "format": "uri", - "longDescription": "This property shall contain a URI to the resource that provides the source of the schema Excerpt contained within this copy.", + "format": "uri-reference", + "longDescription": "This property shall contain a URI to the Resource that provides the source of the Excerpt contained within this copy.", "readonly": true, "type": [ "string", @@ -689,14 +677,15 @@ ] }, "LoadPercent": { - "description": "The power load utilization for this Sensor.", + "description": "The power load utilization for this sensor.", "excerpt": "SensorPower", - "longDescription": "This property shall indicate the present value of this Sensor at the time the information request occurred. This property may appear in sensors of ReadingType of Power, and shall not appear in sensors of other ReadingType values.", + "longDescription": "This property shall indicate the power load utilization percent for this sensor. This property may appear in sensors of the Power ReadingType, and shall not appear in sensors of other ReadingType values.", "readonly": true, "type": [ "number", "null" - ] + ], + "units": "%" }, "Name": { "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Name", @@ -704,9 +693,9 @@ "readonly": true }, "PeakReading": { - "description": "The peak reading value for this sensor.", + "description": "The peak sensor value.", "excerpt": "Sensor", - "longDescription": "The value of this property shall be the peak value of the Reading for this sensor during the last interval.", + "longDescription": "This property shall contain the peak sensor value since the last ResetStatistics action was performed or the service last reset the time-based property values.", "readonly": true, "type": [ "number", @@ -722,9 +711,9 @@ "type": "null" } ], - "description": "Describes the area or device to which this sensor measurement applies.", + "description": "The area or device to which this sensor measurement applies.", "excerpt": "Sensor", - "longDescription": "The value of this property shall be a description of the affected component or region within the equipment to which this sensor measurement applies.", + "longDescription": "This property shall contain a description of the affected component or region within the equipment to which this sensor measurement applies.", "readonly": true }, "PhysicalSubContext": { @@ -736,15 +725,15 @@ "type": "null" } ], - "description": "Describes the usage or location within a device to which this sensor measurement applies.", + "description": "The usage or location within a device to which this sensor measurement applies.", "excerpt": "Sensor", - "longDescription": "The value of this property shall be a description of the usage or sub-region within the equipment to which this sensor measurement applies. This property is generally used to differentiate multiple sensors within the same instance of a PhysicalContext.", + "longDescription": "This property shall contain a description of the usage or sub-region within the equipment to which this sensor measurement applies. This property generally differentiates multiple sensors within the same PhysicalContext instance.", "readonly": true }, "PowerFactor": { - "description": "The power factor for this Sensor.", + "description": "The power factor for this sensor.", "excerpt": "SensorPower", - "longDescription": "This property shall identify the quotient of PowerRealWatts and PowerApparentVA for a circuit. PowerFactor is expressed in unit-less 1/100ths. This property may appear in sensors of ReadingType of Power, and shall not appear in sensors of other ReadingType values.", + "longDescription": "This property shall identify the quotient of PowerRealWatts and PowerApparentVA for a circuit. PowerFactor is expressed in unit-less 1/100ths. This property may appear in sensors of the Power ReadingType, and shall not appear in sensors of other ReadingType values.", "maximum": 1, "minimum": 0, "readonly": true, @@ -754,9 +743,9 @@ ] }, "ReactiveVAR": { - "description": "The square root of the difference term of squared ApparentVA and squared Power (Reading) for a circuit, expressed in VAR units.", + "description": "The square root of the difference term of squared ApparentVA and squared Power (Reading) for a circuit, in VAR units.", "excerpt": "SensorPower", - "longDescription": "This property shall indicate the arithmetic mean of product terms of instantaneous voltage and quadrature current measurements calculated over an integer number of line cycles for a circuit. PowerReactiveVAR is expressed in VAR units using the ReadingUnits value of 'V'. This property may appear in sensors of ReadingType of Power, and shall not appear in sensors of other ReadingType values.", + "longDescription": "This property shall contain the arithmetic mean of product terms of instantaneous voltage and quadrature current measurements calculated over an integer number of line cycles for a circuit. PowerReactiveVAR is expressed in VAR units by using the ReadingUnits `V` value. This property may appear in sensors of the Power ReadingType, and shall not appear in sensors of other ReadingType values.", "readonly": true, "type": [ "number", @@ -764,9 +753,9 @@ ] }, "Reading": { - "description": "The present value for this Sensor.", + "description": "The sensor value.", "excerpt": "Sensor", - "longDescription": "This property shall indicate the present value of this Sensor at the time the information request occurred.", + "longDescription": "This property shall contain the sensor value.", "readonly": true, "type": [ "number", @@ -774,9 +763,9 @@ ] }, "ReadingUnits": { - "description": "Units in which the reading and thresholds are measured.", + "description": "The units of the reading and thresholds.", "excerpt": "Sensor", - "longDescription": "The value of this property shall be the units in which the sensor's reading and thresholds are measured.", + "longDescription": "This property shall contain the units of the sensor's reading and thresholds.", "readonly": true, "type": [ "string", @@ -785,9 +774,9 @@ }, "Status": { "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Status", - "description": "This property describes the status and health of the resource and its children.", + "description": "The status and health of the Resource and its subordinate or dependent Resources.", "excerpt": "Sensor", - "longDescription": "This property shall contain any status or health properties of the resource." + "longDescription": "This property shall contain the status and health of the Resource and its children." } }, "required": [ @@ -797,10 +786,10 @@ }, "Threshold": { "additionalProperties": false, - "description": "A threshold definition for a sensor.", + "description": "The threshold definition for a sensor.", "longDescription": "This type shall contain the properties for an individual threshold for this sensor.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -824,12 +813,12 @@ } ], "description": "The direction of crossing that activates this threshold.", - "longDescription": "This property shall indicate the direction of crossing of the Reading value for this Sensor that triggers the threshold.", + "longDescription": "This property shall indicate the direction of crossing of the reading for this sensor that activates the threshold.", "readonly": false }, "DwellTime": { - "description": "The time interval over which the sensor reading must have passed through this Threshold value before the threshold is considered to be violated.", - "longDescription": "This property shall indicate the time interval over which the sensor reading must have passed through this Threshold value before the threshold is considered to be violated.", + "description": "The duration the sensor value must violate the threshold before the threshold is activated.", + "longDescription": "This property shall indicate the duration the sensor value must violate the threshold before the threshold is activated.", "pattern": "-?P(\\d+D)?(T(\\d+H)?(\\d+M)?(\\d+(.\\d+)?S)?)?", "readonly": false, "type": [ @@ -839,7 +828,7 @@ }, "Reading": { "description": "The threshold value.", - "longDescription": "This property shall indicate the Reading value of this Sensor that triggers the threshold. The units of this property shall follow the Reading and ReadingUnits of this sensor.", + "longDescription": "This property shall indicate the reading for this sensor that activates the threshold. The value of the property shall use the same units as the Reading property.", "readonly": false, "type": [ "number", @@ -861,18 +850,18 @@ "Increasing": "Value increases above the threshold." }, "enumLongDescriptions": { - "Decreasing": "This threshold is activated when the value of Reading changes from a value higher than the threshold to a value lower than the threshold.", - "Either": "This threshold is activated when either the Increasing or Decreasing conditions are met.", - "Increasing": "This threshold is activated when the value of Reading changes from a value lower than the threshold to a value higher than the threshold." + "Decreasing": "This threshold is activated when the reading changes from a value higher than the threshold to a value lower than the threshold.", + "Either": "This threshold is activated when either the increasing or decreasing conditions are met.", + "Increasing": "This threshold is activated when the reading changes from a value lower than the threshold to a value higher than the threshold." }, "type": "string" }, "Thresholds": { "additionalProperties": false, "description": "The set of thresholds defined for a sensor.", - "longDescription": "This object shall contain the set of thresholds that are used to derive a sensor's health and operational range.", + "longDescription": "This object shall contain the set of thresholds that derive a sensor's health and operational range.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -887,76 +876,34 @@ }, "properties": { "LowerCaution": { - "anyOf": [ - { - "$ref": "#/definitions/Threshold" - }, - { - "type": "null" - } - ], - "description": "Below normal range.", - "longDescription": "The value of this property shall indicate the Reading is below the normal range. The units shall be the same units as the Reading." + "$ref": "#/definitions/Threshold", + "description": "The value at which the reading is below normal range.", + "longDescription": "This property shall contain the value at which the Reading property is below normal range. The value of the property shall use the same units as the Reading property." }, "LowerCritical": { - "anyOf": [ - { - "$ref": "#/definitions/Threshold" - }, - { - "type": "null" - } - ], - "description": "Below normal range but not yet fatal.", - "longDescription": "The value of this property shall indicate the Reading is below the normal range and but is not yet fatal. The units shall be the same units as the Reading." + "$ref": "#/definitions/Threshold", + "description": "The value at which the reading is below normal range but not yet fatal.", + "longDescription": "This property shall contain the value at which the Reading property is below the normal range but is not yet fatal. The value of the property shall use the same units as the Reading property." }, "LowerFatal": { - "anyOf": [ - { - "$ref": "#/definitions/Threshold" - }, - { - "type": "null" - } - ], - "description": "Below normal range and fatal.", - "longDescription": "The value of this property shall indicate the Reading is below the normal range and is fatal. The units shall be the same units as the Reading." + "$ref": "#/definitions/Threshold", + "description": "The value at which the reading is below normal range and fatal.", + "longDescription": "This property shall contain the value at which the Reading property is below the normal range and is fatal. The value of the property shall use the same units as the Reading property." }, "UpperCaution": { - "anyOf": [ - { - "$ref": "#/definitions/Threshold" - }, - { - "type": "null" - } - ], - "description": "Above normal range.", - "longDescription": "The value of this property shall indicate the Reading is above the normal range. The units shall be the same units as the Reading." + "$ref": "#/definitions/Threshold", + "description": "The value at which the reading is above normal range.", + "longDescription": "This property shall contain the value at which the Reading property is above the normal range. The value of the property shall use the same units as the Reading property." }, "UpperCritical": { - "anyOf": [ - { - "$ref": "#/definitions/Threshold" - }, - { - "type": "null" - } - ], - "description": "Above normal range but not yet fatal.", - "longDescription": "The value of this property shall indicate the Reading is above the normal range and but is not yet fatal. The units shall be the same units as the Reading." + "$ref": "#/definitions/Threshold", + "description": "The value at which the reading is above normal range but not yet fatal.", + "longDescription": "This property shall contain the value at which the Reading property is above the normal range but is not yet fatal. The value of the property shall use the same units as the Reading property." }, "UpperFatal": { - "anyOf": [ - { - "$ref": "#/definitions/Threshold" - }, - { - "type": "null" - } - ], - "description": "Above normal range and fatal.", - "longDescription": "The value of this property shall indicate the Reading is above the normal range and is fatal. The units shall be the same units as the Reading." + "$ref": "#/definitions/Threshold", + "description": "The value at which the reading is above normal range and fatal.", + "longDescription": "This property shall contain the value at which the Reading property is above the normal range and is fatal. The value of the property shall use the same units as the Reading property." } }, "type": "object" @@ -967,13 +914,13 @@ "DC" ], "enumDescriptions": { - "AC": "Alternating Current.", - "DC": "Direct Current." + "AC": "Alternating current.", + "DC": "Direct durrent." }, "type": "string" } }, "owningEntity": "DMTF", "release": "2018.3", - "title": "#Sensor.v1_0_0.Sensor" + "title": "#Sensor.v1_0_2.Sensor" } \ No newline at end of file diff --git a/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/SerialInterface/SerialInterface.json b/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/SerialInterface/SerialInterface.json index 58810c4d..6a960707 100644 --- a/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/SerialInterface/SerialInterface.json +++ b/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/SerialInterface/SerialInterface.json @@ -1,14 +1,15 @@ { + "$id": "http://redfish.dmtf.org/schemas/v1/SerialInterface.v1_1_5.json", "$ref": "#/definitions/SerialInterface", "$schema": "http://redfish.dmtf.org/schemas/v1/redfish-schema-v1.json", - "copyright": "Copyright 2014-2018 DMTF. For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright", + "copyright": "Copyright 2014-2019 DMTF. For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright", "definitions": { "Actions": { "additionalProperties": false, - "description": "The available actions for this resource.", - "longDescription": "This type shall contain the available actions for this resource.", + "description": "The available actions for this Resource.", + "longDescription": "This type shall contain the available actions for this Resource.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -24,8 +25,9 @@ "properties": { "Oem": { "$ref": "#/definitions/OemActions", - "description": "This property contains the available OEM specific actions for this resource.", - "longDescription": "This property shall contain any additional OEM actions for this resource." + "description": "The available OEM-specific actions for this Resource.", + "longDescription": "This property shall contain the available OEM-specific actions for this Resource.", + "versionAdded": "v1_1_0" } }, "type": "object" @@ -88,10 +90,10 @@ "8" ], "enumDescriptions": { - "5": "5 bits of data following the start bit.", - "6": "6 bits of data following the start bit.", - "7": "7 bits of data following the start bit.", - "8": "8 bits of data following the start bit." + "5": "Five bits of data following the start bit.", + "6": "Six bits of data following the start bit.", + "7": "Seven bits of data following the start bit.", + "8": "Eight bits of data following the start bit." }, "type": "string" }, @@ -102,7 +104,7 @@ "Hardware" ], "enumDescriptions": { - "Hardware": "Out of band flow control imposed.", + "Hardware": "Out-of-band flow control imposed.", "None": "No flow control imposed.", "Software": "XON/XOFF in-band flow control imposed." }, @@ -110,10 +112,10 @@ }, "OemActions": { "additionalProperties": true, - "description": "The available OEM specific actions for this resource.", - "longDescription": "This type shall contain any additional OEM actions for this resource.", + "description": "The available OEM-specific actions for this Resource.", + "longDescription": "This type shall contain the available OEM-specific actions for this Resource.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -153,18 +155,18 @@ "Digi" ], "enumDescriptions": { - "Cisco": "The Cisco pin configuration.", - "Cyclades": "The Cyclades pin configuration.", - "Digi": "The Digi pin configuration." + "Cisco": "The Cisco pinout configuration.", + "Cyclades": "The Cyclades pinout configuration.", + "Digi": "The Digi pinout configuration." }, "type": "string" }, "SerialInterface": { "additionalProperties": false, - "description": "This schema defines an asynchronous serial interface resource.", - "longDescription": "This resource shall be used to represent serial resources as part of the Redfish specification.", + "description": "The SerialInterface schema describes an asynchronous serial interface, such as an RS-232 interface, available to a system or device.", + "longDescription": "This Resource contains SerialInterface Resources as part of the Redfish Specification.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -179,21 +181,22 @@ }, "properties": { "@odata.context": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/context" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/context" }, "@odata.etag": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/etag" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/etag" }, "@odata.id": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/id" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/id" }, "@odata.type": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/type" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/type" }, "Actions": { "$ref": "#/definitions/Actions", - "description": "The available actions for this resource.", - "longDescription": "The Actions property shall contain the available actions for this resource." + "description": "The available actions for this Resource.", + "longDescription": "This property shall contain the available actions for this Resource.", + "versionAdded": "v1_1_0" }, "BitRate": { "$ref": "#/definitions/BitRate", @@ -204,12 +207,12 @@ "ConnectorType": { "$ref": "#/definitions/ConnectorType", "description": "The type of connector used for this interface.", - "longDescription": "This property shall indicate the type of phyiscal connector used for this serial connection.", + "longDescription": "This property shall indicate the type of physical connector used for this serial connection.", "readonly": true }, "DataBits": { "$ref": "#/definitions/DataBits", - "description": "The number of data bits that will follow the start bit over the serial connection.", + "description": "The number of data bits that follow the start bit over the serial connection.", "longDescription": "This property shall indicate number of data bits for the serial connection.", "readonly": false }, @@ -226,7 +229,7 @@ }, "FlowControl": { "$ref": "#/definitions/FlowControl", - "description": "The type of flow control, if any, that will be imposed on the serial connection.", + "description": "The type of flow control, if any, that is imposed on the serial connection.", "longDescription": "This property shall indicate the flow control mechanism for the serial connection.", "readonly": false }, @@ -235,8 +238,8 @@ "readonly": true }, "InterfaceEnabled": { - "description": "This indicates whether this interface is enabled.", - "longDescription": "The value of this property shall be a boolean indicating whether this interface is enabled.", + "description": "An indication of whether this interface is enabled.", + "longDescription": "This property shall indicate whether this interface is enabled.", "readonly": false, "type": [ "boolean", @@ -249,12 +252,12 @@ }, "Oem": { "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem", - "description": "This is the manufacturer/provider specific extension moniker used to divide the Oem object into sections.", - "longDescription": "The value of this string shall be of the format for the reserved word *Oem*." + "description": "The OEM extension property.", + "longDescription": "This property shall contain the OEM extensions. All values for properties that this object contains shall conform to the Redfish Specification-described requirements." }, "Parity": { "$ref": "#/definitions/Parity", - "description": "The type of parity used by the sender and receiver in order to detect errors over the serial connection.", + "description": "The type of parity used by the sender and receiver to detect errors over the serial connection.", "longDescription": "This property shall indicate parity information for a serial connection.", "readonly": false }, @@ -267,14 +270,14 @@ "type": "null" } ], - "description": "The physical pin configuration needed for a serial connector.", - "longDescription": "This property shall indicate the physical pin out for the serial connection.", + "description": "The physical pinout configuration for a serial connector.", + "longDescription": "This property shall indicate the physical pinout for the serial connector.", "readonly": true }, "SignalType": { "$ref": "#/definitions/SignalType", - "description": "The type of signal used for the communication connection - RS232 or RS485.", - "longDescription": "This property shall indicate the type of serial signalling that will be utilized for the serial connection.", + "description": "The type of signal used for the communication connection.", + "longDescription": "This property shall contain the type of serial signalling in use for the serial connection.", "readonly": true }, "StopBits": { @@ -309,12 +312,13 @@ "2" ], "enumDescriptions": { - "1": "1 stop bit following the data bits.", - "2": "2 stop bits following the data bits." + "1": "One stop bit following the data bits.", + "2": "Two stop bits following the data bits." }, "type": "string" } }, "owningEntity": "DMTF", - "title": "#SerialInterface.v1_1_3.SerialInterface" + "release": "2017.1", + "title": "#SerialInterface.v1_1_5.SerialInterface" } \ No newline at end of file diff --git a/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/ServiceRoot/ServiceRoot.json b/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/ServiceRoot/ServiceRoot.json index b76c7a13..a49ab432 100644 --- a/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/ServiceRoot/ServiceRoot.json +++ b/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/ServiceRoot/ServiceRoot.json @@ -1,15 +1,15 @@ { - "$id": "http://redfish.dmtf.org/schemas/v1/ServiceRoot.v1_5_0.json", + "$id": "http://redfish.dmtf.org/schemas/v1/ServiceRoot.v1_5_2.json", "$ref": "#/definitions/ServiceRoot", "$schema": "http://redfish.dmtf.org/schemas/v1/redfish-schema-v1.json", - "copyright": "Copyright 2014-2018 DMTF. For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright", + "copyright": "Copyright 2014-2019 DMTF. For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright", "definitions": { "Expand": { "additionalProperties": false, - "description": "Contains information about the use of $expand in the service.", - "longDescription": "This type, as described by the Redfish Specification, shall contain information about the support of the $expand query parameter by the service.", + "description": "The information about the use of $expand in the service.", + "longDescription": "This type shall contain information about the support of the $expand query parameter by the service.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -24,29 +24,29 @@ }, "properties": { "ExpandAll": { - "description": "This indicates whether the $expand support of asterisk (expand all entries) is supported.", - "longDescription": "The value of this property shall be a boolean indicating whether this service supports the use of asterisk (expand all entries) as a value for the $expand query parameter as described by the specification.", + "description": "An indication of whether the service supports the asterisk (`*`) option of the $expand query parameter.", + "longDescription": "This property shall indicate whether this service supports the asterisk (`*`) option of the $expand query parameter.", "readonly": true, "type": "boolean", "versionAdded": "v1_3_0" }, "Levels": { - "description": "This indicates whether the expand support of the $levels qualifier is supported by the service.", - "longDescription": "The value of this property shall be a boolean indicating whether this service supports the use of $levels as a value for the $expand query parameter as described by the specification.", + "description": "An indication of whether the service supports the $levels option of the $expand query parameter.", + "longDescription": "This property shall indicate whether the service supports the $levels option of the $expand query parameter.", "readonly": true, "type": "boolean", "versionAdded": "v1_3_0" }, "Links": { - "description": "This indicates whether the $expand support of tilde (expand only entries in the Links section) is supported.", - "longDescription": "The value of this property shall be a boolean indicating whether this service supports the use of tilde (expand only entries in the Links section) as a value for the $expand query parameter as described by the specification.", + "description": "An indication of whether this service supports the tilde (`~`) option of the $expand query parameter.", + "longDescription": "This property shall indicate whether this service supports the supports the tilde (~) option of the $expand query parameter.", "readonly": true, "type": "boolean", "versionAdded": "v1_3_0" }, "MaxLevels": { - "description": "This indicates the maximum number value of the $levels qualifier in $expand operations.", - "longDescription": "The value of this property shall be the maximum value of the $levels qualifier supported by the service and shall only be included if the value of the Levels property is true.", + "description": "The maximum $levels option value in the $expand query parameter.", + "longDescription": "This property shall contain the maximum $levels option value in the $expand query parameter. Shall be included only if $levels is true.", "maximum": 6, "minimum": 1, "readonly": true, @@ -54,8 +54,8 @@ "versionAdded": "v1_3_0" }, "NoLinks": { - "description": "This indicates whether the $expand support of period (expand only entries not in the Links section) is supported.", - "longDescription": "The value of this property shall be a boolean indicating whether this service supports the use of period (expand only entries not in the Links section) as a value for the $expand query parameter as described by the specification.", + "description": "An indication of whether the service supports the period (`.`) option of the $expand query parameter.", + "longDescription": "This property shall indicate whether the service supports the period (`.`) option of the $expand query parameter.", "readonly": true, "type": "boolean", "versionAdded": "v1_3_0" @@ -65,10 +65,10 @@ }, "Links": { "additionalProperties": false, - "description": "Contains references to other resources that are related to this resource.", - "longDescription": "This type, as described by the Redfish Specification, shall contain references to resources that are related to, but not contained by (subordinate to), this resource.", + "description": "The links to other Resources that are related to this Resource.", + "longDescription": "The Redfish Specification-described type shall contain links to Resources related to but not subordinate to this Resource.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -84,13 +84,13 @@ "properties": { "Oem": { "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem", - "description": "Oem extension object.", - "longDescription": "This object represents the Oem property. All values for resources described by this schema shall comply to the requirements as described in the Redfish specification." + "description": "The OEM extension property.", + "longDescription": "This property shall contain the OEM extensions. All values for properties contained in this object shall conform to the Redfish Specification-described requirements." }, "Sessions": { "$ref": "http://redfish.dmtf.org/schemas/v1/SessionCollection.json#/definitions/SessionCollection", - "description": "Link to a collection of Sessions.", - "longDescription": "This property shall contain the link to a collection of Sessions.", + "description": "The link to a collection of Sessions.", + "longDescription": "This property shall contain a link to a Resource Collection of type SessionCollection.", "readonly": true } }, @@ -101,10 +101,10 @@ }, "ProtocolFeaturesSupported": { "additionalProperties": false, - "description": "Contains information about protocol features supported by the service.", - "longDescription": "This type contains information about protocol features supported by the service.", + "description": "The information about protocol features that the service supports.", + "longDescription": "This type shall contain information about protocol features that the service supports.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -119,35 +119,35 @@ }, "properties": { "ExcerptQuery": { - "description": "This indicates whether the 'excerpt' query parameter is supported.", - "longDescription": "The value of this property shall be a boolean indicating whether this service supports the use of the 'excerpt' query parameter as described by the specification.", + "description": "An indication of whether the service supports the excerpt query parameter.", + "longDescription": "This property shall indicate whether this service supports the excerpt query parameter.", "readonly": true, "type": "boolean", "versionAdded": "v1_4_0" }, "ExpandQuery": { "$ref": "#/definitions/Expand", - "description": "Contains information about the use of $expand in the service.", - "longDescription": "This type, as described by the Redfish Specification, shall contain information about the support of the $expand query parameter by the service.", + "description": "The information about the use of $expand in the service.", + "longDescription": "This property shall contain information about the support of the $expand query parameter by the service.", "versionAdded": "v1_3_0" }, "FilterQuery": { - "description": "This indicates whether the $filter query parameter is supported.", - "longDescription": "The value of this property shall be a boolean indicating whether this service supports the use of the $filter query parameter as described by the specification.", + "description": "An indication of whether the service supports the $filter query parameter.", + "longDescription": "This property shall indicate whether this service supports the $filter query parameter.", "readonly": true, "type": "boolean", "versionAdded": "v1_3_0" }, "OnlyMemberQuery": { - "description": "This indicates whether the 'only' query parameter is supported.", - "longDescription": "The value of this property shall be a boolean indicating whether this service supports the use of the 'only' query parameter as described by the specification.", + "description": "An indication of whether the service supports the only query parameter.", + "longDescription": "This property shall indicate whether this service supports the only query parameter.", "readonly": true, "type": "boolean", "versionAdded": "v1_4_0" }, "SelectQuery": { - "description": "This indicates whether the $select query parameter is supported.", - "longDescription": "The value of this property shall be a boolean indicating whether this service supports the use of the $select query parameter as described by the specification.", + "description": "An indication of whether the service supports the $select query parameter.", + "longDescription": "This property shall indicate whether this service supports the $select query parameter.", "readonly": true, "type": "boolean", "versionAdded": "v1_3_0" @@ -157,10 +157,10 @@ }, "ServiceRoot": { "additionalProperties": false, - "description": "This object represents the root Redfish service.", - "longDescription": "This object represents the root Redfish service. All values for resources described by this schema shall comply to the requirements as described in the Redfish specification.", + "description": "The ServiceRoot schema describes the root of the Redfish Service, located at the '/redfish/v1' URI. All other Resources accessible through the Redfish interface on this device are linked directly or indirectly from the Service Root.", + "longDescription": "This Resource represents the root Redfish Service. All values that this schema describes for Resources shall comply with the Redfish Specification-described requirements.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -175,40 +175,40 @@ }, "properties": { "@odata.context": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/context" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/context" }, "@odata.etag": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/etag" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/etag" }, "@odata.id": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/id" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/id" }, "@odata.type": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/type" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/type" }, "AccountService": { "$ref": "http://redfish.dmtf.org/schemas/v1/AccountService.json#/definitions/AccountService", - "description": "This is a link to the Account Service.", - "longDescription": "The classes structure shall only contain a reference to a resource that complies to the AccountService schema.", + "description": "The link to the Account Service.", + "longDescription": "This property shall contain a link to a Resource of type AccountService.", "readonly": true }, "CertificateService": { "$ref": "http://redfish.dmtf.org/schemas/v1/CertificateService.json#/definitions/CertificateService", - "description": "This is a link to the CertificateService.", - "longDescription": "The value shall be a link to the CertificateService.", + "description": "The link to the Certificate Service.", + "longDescription": "This property shall contain a link to a Resource of type CertificateService.", "readonly": true, "versionAdded": "v1_5_0" }, "Chassis": { "$ref": "http://redfish.dmtf.org/schemas/v1/ChassisCollection.json#/definitions/ChassisCollection", - "description": "This is a link to a collection of Chassis.", - "longDescription": "This object shall only contain a reference to a collection of resources that comply to the Chassis schema.", + "description": "The link to a collection of chassis.", + "longDescription": "This property shall contain a link to a Resource Collection of type ChassisCollection.", "readonly": true }, "CompositionService": { "$ref": "http://redfish.dmtf.org/schemas/v1/CompositionService.json#/definitions/CompositionService", - "description": "This is a link to the CompositionService.", - "longDescription": "The classes structure shall only contain a reference to a resource that complies to the CompositionService schema.", + "description": "The link to the Composition Service.", + "longDescription": "This property shall contain a link to a Resource of type CompositionService.", "readonly": true, "versionAdded": "v1_2_0" }, @@ -225,14 +225,14 @@ }, "EventService": { "$ref": "http://redfish.dmtf.org/schemas/v1/EventService.json#/definitions/EventService", - "description": "This is a link to the EventService.", - "longDescription": "The classes structure shall only contain a reference to a resource that complies to the EventService schema.", + "description": "The link to the Event Service.", + "longDescription": "This property shall contain a link to a Resource of type EventService.", "readonly": true }, "Fabrics": { "$ref": "http://redfish.dmtf.org/schemas/v1/FabricCollection.json#/definitions/FabricCollection", - "description": "A link to a collection of all fabric entities.", - "longDescription": "The referenced collection shall contain references to all Fabric instances.", + "description": "The link to a collection of all fabric entities.", + "longDescription": "This property shall contain a link to a Resource Collection of type FabricCollection.", "readonly": true, "versionAdded": "v1_1_0" }, @@ -242,26 +242,26 @@ }, "JobService": { "$ref": "http://redfish.dmtf.org/schemas/v1/JobService.json#/definitions/JobService", - "description": "This is a link to the JobService.", - "longDescription": "The classes structure shall only contain a reference to a resource that conforms to the JobService schema.", + "description": "The link to the JobService.", + "longDescription": "This property shall contain a link to a Resource of type JobService.", "readonly": true, "versionAdded": "v1_4_0" }, "JsonSchemas": { "$ref": "http://redfish.dmtf.org/schemas/v1/JsonSchemaFileCollection.json#/definitions/JsonSchemaFileCollection", - "description": "This is a link to a collection of Json-Schema files.", - "longDescription": "This object shall only contain a reference to a collection of resources that comply to the SchemaFile schema where the files are Json-Schema files.", + "description": "The link to a collection of JSON Schema files.", + "longDescription": "This property shall contain a link to a Resource Collection of type JsonSchemaFileCollection.", "readonly": true }, "Links": { "$ref": "#/definitions/Links", - "description": "Contains references to other resources that are related to this resource.", - "longDescription": "The Links property, as described by the Redfish Specification, shall contain references to resources that are related to, but not contained by (subordinate to), this resource." + "description": "The links to other Resources that are related to this Resource.", + "longDescription": "The Redfish Specification-described Links Property shall contain links to Resources related to but not subordinate to this Resource." }, "Managers": { "$ref": "http://redfish.dmtf.org/schemas/v1/ManagerCollection.json#/definitions/ManagerCollection", - "description": "This is a link to a collection of Managers.", - "longDescription": "This object shall only contain a reference to a collection of resources that comply to the Managers schema.", + "description": "The link to a collection of managers.", + "longDescription": "This property shall contain a link to a Resource Collection of type ManagerCollection.", "readonly": true }, "Name": { @@ -270,12 +270,12 @@ }, "Oem": { "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem", - "description": "This is the manufacturer/provider specific extension moniker used to divide the Oem object into sections.", - "longDescription": "The value of this string shall be of the format for the reserved word *Oem*." + "description": "The OEM extension property.", + "longDescription": "This property shall contain the OEM extensions. All values for properties that this object contains shall conform to the Redfish Specification-described requirements." }, "Product": { - "description": "The product associated with this Redfish service.", - "longDescription": "The value of this string shall include the name of the product represented by this Redfish service.", + "description": "The product associated with this Redfish Service.", + "longDescription": "This property shall include the name of the product represented by this Redfish Service.", "readonly": true, "type": [ "string", @@ -285,66 +285,66 @@ }, "ProtocolFeaturesSupported": { "$ref": "#/definitions/ProtocolFeaturesSupported", - "description": "Contains information about protocol features supported by the service.", - "longDescription": "This type contains information about protocol features supported by the service.", + "description": "The information about protocol features that the service supports.", + "longDescription": "This property shall contain information about protocol features that the service supports.", "versionAdded": "v1_3_0" }, "RedfishVersion": { - "description": "The version of the Redfish service.", - "longDescription": "The value of this string shall represent the version of the Redfish service. The format of this string shall be of the format majorversion.minorversion.errata in compliance with Protocol Version section of the Redfish specification.", + "description": "The version of the Redfish Service.", + "longDescription": "This property shall represent the Redfish protocol version, as specified in the Protocol Version clause of the Redfish Specification, to which this Service conforms.", "pattern": "^\\d+\\.\\d+\\.\\d+$", "readonly": true, "type": "string" }, "Registries": { "$ref": "http://redfish.dmtf.org/schemas/v1/MessageRegistryFileCollection.json#/definitions/MessageRegistryFileCollection", - "description": "This is a link to a collection of Registries.", - "longDescription": "This object shall contain a reference to Message Registry.", + "description": "The link to a collection of Registries.", + "longDescription": "This property shall contain a link to a Resource Collection of type MessageRegistryFileCollection.", "readonly": true }, "ResourceBlocks": { "$ref": "http://redfish.dmtf.org/schemas/v1/ResourceBlockCollection.json#/definitions/ResourceBlockCollection", - "description": "A link to a collection of all resource block entities. This collection is intended for implementations that do not contain a Composition Service, but will expose resources to an orchestrator that implements a Composition Service.", - "longDescription": "The referenced collection shall contain references to all Resource Block instances.", + "description": "The link to a collection of all Resource Block Resources. This collection is intended for implementations that do not contain a Composition Service but that expose Resources to an orchestrator that implements a Composition Service.", + "longDescription": "This property shall contain a link to a Resource Collection of type ResourceBlockCollection.", "readonly": true, "versionAdded": "v1_5_0" }, "SessionService": { "$ref": "http://redfish.dmtf.org/schemas/v1/SessionService.json#/definitions/SessionService", - "description": "This is a link to the Sessions Service.", - "longDescription": "The classes structure shall only contain a reference to a resource that complies to the SessionService schema.", + "description": "The link to the Sessions Service.", + "longDescription": "This property shall contain a link to a Resource of type SessionService.", "readonly": true }, "StorageServices": { "$ref": "http://redfish.dmtf.org/schemas/swordfish/v1/StorageServiceCollection.json#/definitions/StorageServiceCollection", - "description": "A link to a collection of all storage service entities.", - "longDescription": "The referenced collection shall contain references to all StorageService instances.", + "description": "The link to a collection of all storage service entities.", + "longDescription": "This property shall contain a link to a Resource Collection of type StorageServiceCollection.", "readonly": true, "versionAdded": "v1_1_0" }, "StorageSystems": { "$ref": "http://redfish.dmtf.org/schemas/swordfish/v1/StorageSystemCollection.json#/definitions/StorageSystemCollection", - "description": "This is a link to a collection of storage systems.", - "longDescription": "The referenced collection shall contain computer systems that act as storage servers. The HostingRoles attribute of each such computer system shall have an entry for StorageServer.", + "description": "The link to a collection of storage systems.", + "longDescription": "This property shall contain a link to a Resource Collection of type StorageSystemCollection. This collection shall contain computer systems that act as storage servers. The HostingRoles attribute of each such computer system shall have a StorageServer entry.", "readonly": true, "versionAdded": "v1_1_0" }, "Systems": { "$ref": "http://redfish.dmtf.org/schemas/v1/ComputerSystemCollection.json#/definitions/ComputerSystemCollection", - "description": "This is a link to a collection of Systems.", - "longDescription": "This object shall only contain a reference to a collection of resources that comply to the Systems schema.", + "description": "The link to a collection of systems.", + "longDescription": "This property shall contain a link to a Resource Collection of type ComputerSystemCollection.", "readonly": true }, "Tasks": { "$ref": "http://redfish.dmtf.org/schemas/v1/TaskService.json#/definitions/TaskService", - "description": "This is a link to the Task Service.", - "longDescription": "The classes structure shall only contain a reference to a resource that complies to the TaskService schema.", + "description": "The link to the Task Service.", + "longDescription": "This property shall contain a link to a Resource of type TaskService.", "readonly": true }, "TelemetryService": { "$ref": "http://redfish.dmtf.org/schemas/v1/TelemetryService.json#/definitions/TelemetryService", - "description": "This is a link to the TelemetryService.", - "longDescription": "The value shall be a link to the TelemetryService.", + "description": "The link to the Telemetry Service.", + "longDescription": "This property shall contain a link to a Resource of type TelemetryService.", "readonly": true, "versionAdded": "v1_4_0" }, @@ -357,20 +357,20 @@ "type": "null" } ], - "description": "Unique identifier for a service instance. When SSDP is used, this value should be an exact match of the UUID value returned in a 200OK from an SSDP M-SEARCH request during discovery.", - "longDescription": "The value of this string shall represent the id of the Redfish service instance. The format of this string shall be a 32-byte value in the form 8-4-4-4-12. If SSDP is used, this value shall be an exact match of the UUID value returned in a 200OK from an SSDP M-SEARCH request during discovery. RFC4122 describes methods that can be used to create a UUID value. The value should be considered to be opaque. Client software should only treat the overall value as a universally unique identifier and should not interpret any sub-fields within the UUID.", + "description": "Unique identifier for a service instance. When SSDP is used, this value should be an exact match of the UUID value returned in a 200 OK from an SSDP M-SEARCH request during discovery.", + "longDescription": "This property shall represent the id of the Redfish Service instance. The format of this string shall contain a 32-byte value in the form 8-4-4-4-12. If SSDP is used, this value shall be an exact match of the UUID value returned in a 200 OK from an SSDP M-SEARCH request during discovery. RFC4122 describes methods to use to create a UUID value. The value should be considered to be opaque. Client software should only treat the overall value as a universally unique identifier and should not interpret any sub-fields within the UUID.", "readonly": true }, "UpdateService": { "$ref": "http://redfish.dmtf.org/schemas/v1/UpdateService.json#/definitions/UpdateService", - "description": "This is a link to the UpdateService.", - "longDescription": "The classes structure shall only contain a reference to a resource that complies to the UpdateService schema.", + "description": "The link to the Update Service.", + "longDescription": "This property shall contain a link to a Resource of type UpdateService.", "readonly": true, "versionAdded": "v1_1_0" }, "Vendor": { - "description": "The vendor or manufacturer associated with this Redfish service.", - "longDescription": "The value of this string shall include the name of the manufacturer or vendor represented by this Redfish service. If this property is supported, the vendor name shall not be included in the value of the Product property.", + "description": "The vendor or manufacturer associated with this Redfish Service.", + "longDescription": "This property shall include the name of the manufacturer or vendor represented by this Redfish Service. If this property is supported, the vendor name shall not be included in the Product property value.", "readonly": true, "type": [ "string", @@ -391,5 +391,5 @@ }, "owningEntity": "DMTF", "release": "2018.3", - "title": "#ServiceRoot.v1_5_0.ServiceRoot" + "title": "#ServiceRoot.v1_5_2.ServiceRoot" } \ No newline at end of file diff --git a/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/Session/Session.json b/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/Session/Session.json index 85a7276a..1478ea5f 100644 --- a/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/Session/Session.json +++ b/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/Session/Session.json @@ -1,14 +1,15 @@ { + "$id": "http://redfish.dmtf.org/schemas/v1/Session.v1_2_1.json", "$ref": "#/definitions/Session", "$schema": "http://redfish.dmtf.org/schemas/v1/redfish-schema-v1.json", - "copyright": "Copyright 2014-2018 DMTF. For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright", + "copyright": "Copyright 2014-2019 DMTF. For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright", "definitions": { "Actions": { "additionalProperties": false, - "description": "The available actions for this resource.", - "longDescription": "This type shall contain the available actions for this resource.", + "description": "The available actions for this Resource.", + "longDescription": "This type shall contain the available actions for this Resource.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -24,18 +25,19 @@ "properties": { "Oem": { "$ref": "#/definitions/OemActions", - "description": "This property contains the available OEM specific actions for this resource.", - "longDescription": "This property shall contain any additional OEM actions for this resource." + "description": "The available OEM-specific actions for this Resource.", + "longDescription": "This property shall contain the available OEM-specific actions for this Resource.", + "versionAdded": "v1_1_0" } }, "type": "object" }, "OemActions": { "additionalProperties": true, - "description": "The available OEM specific actions for this resource.", - "longDescription": "This type shall contain any additional OEM actions for this resource.", + "description": "The available OEM-specific actions for this Resource.", + "longDescription": "This type shall contain the available OEM-specific actions for this Resource.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -53,10 +55,10 @@ }, "Session": { "additionalProperties": false, - "description": "The Session resource describes a single connection (session) between a client and a Redfish service instance.", - "longDescription": "This resource shall be used to represent a session for a Redfish implementation.", + "description": "The Session Resource describes a single connection (session) between a client and a Redfish Service instance.", + "longDescription": "This Resource shall represent a session for a Redfish implementation.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -71,21 +73,22 @@ }, "properties": { "@odata.context": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/context" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/context" }, "@odata.etag": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/etag" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/etag" }, "@odata.id": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/id" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/id" }, "@odata.type": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/type" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/type" }, "Actions": { "$ref": "#/definitions/Actions", - "description": "The available actions for this resource.", - "longDescription": "The Actions property shall contain the available actions for this resource." + "description": "The available actions for this Resource.", + "longDescription": "This property shall contain the available actions for this Resource.", + "versionAdded": "v1_1_0" }, "Description": { "anyOf": [ @@ -108,21 +111,45 @@ }, "Oem": { "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem", - "description": "This is the manufacturer/provider specific extension moniker used to divide the Oem object into sections.", - "longDescription": "The value of this string shall be of the format for the reserved word *Oem*." + "description": "The OEM extension property.", + "longDescription": "This property shall contain the OEM extensions. All values for properties that this object contains shall conform to the Redfish Specification-described requirements." + }, + "OemSessionType": { + "description": "The active OEM-defined session type.", + "longDescription": "When SessionType is reported as OEM, this property should report the OEM-specific session type. Thus, this property shall represent the type of OEM session that is currently active.", + "readonly": true, + "type": [ + "string", + "null" + ], + "versionAdded": "v1_2_0" }, "Password": { - "description": "This property is used in a POST to specify a password when creating a new session. This property is null on a GET.", - "longDescription": "The value of this property shall be the password for this session. The value shall be null for GET requests.", + "description": "The password for this session. The value is `null` in responses.", + "longDescription": "This property shall contain the password for this session. The value shall be `null` in responses.", "readonly": true, "type": [ "string", "null" ] }, + "SessionType": { + "anyOf": [ + { + "$ref": "#/definitions/SessionTypes" + }, + { + "type": "null" + } + ], + "description": "The active session type.", + "longDescription": "This property shall represent the type of session that is currently active.", + "readonly": true, + "versionAdded": "v1_2_0" + }, "UserName": { "description": "The UserName for the account for this session.", - "longDescription": "The value of this property shall be the UserName that matches a registered account identified by a ManagerAccount resource registered with the Account Service.", + "longDescription": "This property shall contain the user name that matches an account recognized by the Account Service.", "readonly": true, "type": [ "string", @@ -141,8 +168,32 @@ "Password" ], "type": "object" + }, + "SessionTypes": { + "enum": [ + "HostConsole", + "ManagerConsole", + "IPMI", + "KVMIP", + "OEM", + "Redfish", + "VirtualMedia", + "WebUI" + ], + "enumDescriptions": { + "HostConsole": "The host's console, which could be connected through Telnet, SSH, or other protocol.", + "IPMI": "Intelligent Platform Management Interface.", + "KVMIP": "Keyboard-Video-Mouse over IP Session.", + "ManagerConsole": "The manager's console, which could be connected through Telnet, SSH, SM CLP, or other protocol.", + "OEM": "OEM Type. For OEM session types, see the OemSessionType property.", + "Redfish": "A Redfish session.", + "VirtualMedia": "Virtual media.", + "WebUI": "A non-Redfish web user interface session, such as a graphical interface or another web-based protocol." + }, + "type": "string" } }, "owningEntity": "DMTF", - "title": "#Session.v1_1_1.Session" + "release": "2019.1", + "title": "#Session.v1_2_1.Session" } \ No newline at end of file diff --git a/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/SessionService/SessionService.json b/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/SessionService/SessionService.json index 488092cc..e597bfd4 100644 --- a/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/SessionService/SessionService.json +++ b/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/SessionService/SessionService.json @@ -1,14 +1,15 @@ { + "$id": "http://redfish.dmtf.org/schemas/v1/SessionService.v1_1_6.json", "$ref": "#/definitions/SessionService", "$schema": "http://redfish.dmtf.org/schemas/v1/redfish-schema-v1.json", - "copyright": "Copyright 2014-2018 DMTF. For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright", + "copyright": "Copyright 2014-2019 DMTF. For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright", "definitions": { "Actions": { "additionalProperties": false, - "description": "The available actions for this resource.", - "longDescription": "This type shall contain the available actions for this resource.", + "description": "The available actions for this Resource.", + "longDescription": "This type shall contain the available actions for this Resource.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -23,26 +24,20 @@ }, "properties": { "Oem": { - "anyOf": [ - { - "$ref": "#/definitions/OemActions" - }, - { - "type": "null" - } - ], - "description": "This property contains the available OEM specific actions for this resource.", - "longDescription": "This property shall contain any additional OEM actions for this resource." + "$ref": "#/definitions/OemActions", + "description": "The available OEM-specific actions for this Resource.", + "longDescription": "This property shall contain the available OEM-specific actions for this Resource.", + "versionAdded": "v1_1_0" } }, "type": "object" }, "OemActions": { "additionalProperties": true, - "description": "The available OEM specific actions for this resource.", - "longDescription": "This type shall contain any additional OEM actions for this resource.", + "description": "The available OEM-specific actions for this Resource.", + "longDescription": "This type shall contain the available OEM-specific actions for this Resource.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -60,10 +55,10 @@ }, "SessionService": { "additionalProperties": false, - "description": "This is the schema definition for the Session Service. It represents the properties for the service itself and has links to the actual list of sessions.", - "longDescription": "This resource shall be used to represent the Session Service Properties for a Redfish implementation.", + "description": "The SessionService schema describes the Session Service and its properties, with links to the actual list of sessions.", + "longDescription": "This Resource contains the Session Service properties for a Redfish implementation.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -78,21 +73,22 @@ }, "properties": { "@odata.context": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/context" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/context" }, "@odata.etag": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/etag" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/etag" }, "@odata.id": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/id" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/id" }, "@odata.type": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/type" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/type" }, "Actions": { "$ref": "#/definitions/Actions", - "description": "The available actions for this resource.", - "longDescription": "The Actions property shall contain the available actions for this resource." + "description": "The available actions for this Resource.", + "longDescription": "This property shall contain the available actions for this Resource.", + "versionAdded": "v1_1_0" }, "Description": { "anyOf": [ @@ -115,12 +111,12 @@ }, "Oem": { "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem", - "description": "This is the manufacturer/provider specific extension moniker used to divide the Oem object into sections.", - "longDescription": "The value of this string shall be of the format for the reserved word *Oem*." + "description": "The OEM extension property.", + "longDescription": "This property shall contain the OEM extensions. All values for properties that this object contains shall conform to the Redfish Specification-described requirements." }, "ServiceEnabled": { - "description": "This indicates whether this service is enabled. If set to false, the Session Service is disabled, and new sessions cannot be created, old sessions cannot be deleted, and established sessions may continue operating.", - "longDescription": "The value of this property shall be a boolean indicating whether this service is enabled. If disabled, new sessions shall not be created, old sessions shall not be deleted, and established sessions may continue operating.", + "description": "An indication of whether this service is enabled. If `true`, this service is enabled. If `false`, it is disabled, and new sessions cannot be created, old sessions cannot be deleted, and established sessions may continue operating.", + "longDescription": "This property shall indicate whether this service is enabled. If `true`, this service is enabled. If `false`, it is disabled, and new sessions shall not be created, old sessions shall not be deleted, and established sessions may continue operating.", "readonly": false, "type": [ "boolean", @@ -128,8 +124,8 @@ ] }, "SessionTimeout": { - "description": "This is the number of seconds of inactivity that a session may have before the session service closes the session due to inactivity.", - "longDescription": "This property shall reference the threshold of time in seconds between requests on a specific session at which point the session service shall close the session due to inactivity. The session service shall support any value between the Validation.Minimum and Validation.Maximum.", + "description": "The number of seconds of inactivity that a session may have before the Session Service closes the session due to inactivity.", + "longDescription": "This property shall contain the threshold of time in seconds between requests on a specific session at which point the Session Service shall close the session due to inactivity. The Session Service shall support any value between the Validation.Minimum and Validation.Maximum.", "maximum": 86400, "minimum": 30, "readonly": false, @@ -138,14 +134,14 @@ }, "Sessions": { "$ref": "http://redfish.dmtf.org/schemas/v1/SessionCollection.json#/definitions/SessionCollection", - "description": "Link to a collection of Sessions.", - "longDescription": "This property shall contain the link to a collection of Sessions.", + "description": "The link to a collection of sessions.", + "longDescription": "This property shall contain the link to a Resource Collection of type SessionCollection.", "readonly": true }, "Status": { "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Status", - "description": "This property describes the status and health of the resource and its children.", - "longDescription": "This property shall contain any status or health properties of the resource." + "description": "The status and health of the Resource and its subordinate or dependent Resources.", + "longDescription": "This property shall contain any status or health properties of the Resource." } }, "required": [ @@ -158,5 +154,6 @@ } }, "owningEntity": "DMTF", - "title": "#SessionService.v1_1_4.SessionService" + "release": "2016.2", + "title": "#SessionService.v1_1_6.SessionService" } \ No newline at end of file diff --git a/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/Settings/Settings.json b/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/Settings/Settings.json index f8230609..40a1df41 100644 --- a/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/Settings/Settings.json +++ b/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/Settings/Settings.json @@ -1,6 +1,7 @@ { + "$id": "http://redfish.dmtf.org/schemas/v1/Settings.v1_2_2.json", "$schema": "http://redfish.dmtf.org/schemas/v1/redfish-schema-v1.json", - "copyright": "Copyright 2014-2018 DMTF. For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright", + "copyright": "Copyright 2014-2019 DMTF. For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright", "definitions": { "ApplyTime": { "enum": [ @@ -16,19 +17,19 @@ "OnReset": "Apply on a reset." }, "enumLongDescriptions": { - "AtMaintenanceWindowStart": "This ApplyTime value shall be used to indicate the values within the Settings resource are applied during the maintenance window specified by the MaintenanceWindowStartTime and MaintenanceWindowDurationInSeconds properties. A service may perform resets during this maintenance window.", - "Immediate": "This ApplyTime value shall be used to indicate the values within the Settings resource are applied immediately.", - "InMaintenanceWindowOnReset": "This ApplyTime value shall be used to indicate the values within the Settings resource are applied during the maintenance window specified by the MaintenanceWindowStartTime and MaintenanceWindowDurationInSeconds properties, and if a reset occurs within the maintenance window.", - "OnReset": "This ApplyTime value shall be used to indicate the values within the Settings resource are applied when the system or service is reset." + "AtMaintenanceWindowStart": "This value shall indicate the values within the Settings Resource are applied during the maintenance window specified by the MaintenanceWindowStartTime and MaintenanceWindowDurationInSeconds properties. A service may perform resets during this maintenance window.", + "Immediate": "This value shall indicate the values within the Settings Resource are applied immediately.", + "InMaintenanceWindowOnReset": "This value shall indicate the values within the Settings Resource are applied during the maintenance window specified by the MaintenanceWindowStartTime and MaintenanceWindowDurationInSeconds properties, and if a reset occurs within the maintenance window.", + "OnReset": "This value shall indicate the values within Settings Resource are applied when the system or service is reset." }, "type": "string" }, "MaintenanceWindow": { "additionalProperties": false, - "description": "This object indicates if a given resource has a maintenance window assignment for applying settings or operations.", - "longDescription": "This object shall indicate if a given resource has a maintenance window assignment for applying settings or operations. Other resources may reference this object in order to convey a common control surface for the configuration of the maintenance window.", + "description": "The maintenance window assignment for applying settings or operations to a Resource.", + "longDescription": "This type shall indicate that a Resource has a maintenance window assignment for applying settings or operations. Other Resources may link to this object to convey a common control surface for the configuration of the maintenance window.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -43,19 +44,21 @@ }, "properties": { "MaintenanceWindowDurationInSeconds": { - "description": "The value of this property as specified by client indicates the expiry time of maintenance window in seconds.", - "longDescription": "The value of this property shall indicate the end of the maintenance window as the number of seconds after the time specified by the MaintenanceWindowStartTime property.", + "description": "The expiry time of maintenance window in seconds.", + "longDescription": "This property shall indicate the end of the maintenance window as the number of seconds after the time specified by the MaintenanceWindowStartTime property.", "minimum": 0, "readonly": false, "type": "integer", - "units": "s" + "units": "s", + "versionAdded": "v1_2_0" }, "MaintenanceWindowStartTime": { - "description": "The value of this property as specified by client to indicate the start time of a maintenance window.", + "description": "The start time of a maintenance window.", "format": "date-time", - "longDescription": "The value of this property shall indicate the date and time as to when the service is allowed to start applying the requested settings or operation as part of a maintenance window.", + "longDescription": "This property shall indicate the date and time when the service can start to apply the requested settings or operation as part of a maintenance window.", "readonly": false, - "type": "string" + "type": "string", + "versionAdded": "v1_2_0" } }, "required": [ @@ -64,33 +67,12 @@ ], "type": "object" }, - "OperationApplyTime": { - "enum": [ - "Immediate", - "OnReset", - "AtMaintenanceWindowStart", - "InMaintenanceWindowOnReset" - ], - "enumDescriptions": { - "AtMaintenanceWindowStart": "Apply the requested operation during a maintenance window as specified by an administrator.", - "Immediate": "Apply the requested operation immediately.", - "InMaintenanceWindowOnReset": "Apply the requested operation after a reset but within maintenance window as specified by an adminstrator.", - "OnReset": "Apply the requested operation on a reset." - }, - "enumLongDescriptions": { - "AtMaintenanceWindowStart": "This OperationApplyTime value shall be used to indicate the requested Create, Delete, or Action operation is applied during the maintenance window specified by the MaintenanceWindowStartTime and MaintenanceWindowDurationInSeconds properties. A service may perform resets during this maintenance window.", - "Immediate": "This OperationApplyTime value shall be used to indicate the requested Create, Delete, or Action operation is applied immediately.", - "InMaintenanceWindowOnReset": "This OperationApplyTime value shall be used to indicate the requested Create, Delete, or Action operation is applied during the maintenance window specified by the MaintenanceWindowStartTime and MaintenanceWindowDurationInSeconds properties, and if a reset occurs within the maintenance window.", - "OnReset": "This OperationApplyTime value shall be used to indicate the requested Create, Delete, or Action operation is applied when the system or service is reset." - }, - "type": "string" - }, "OperationApplyTimeSupport": { "additionalProperties": false, - "description": "This object indicates if a client is allowed to request for a specific apply time of a Create, Delete, or Action operation of a given resource.", - "longDescription": "This object shall specify the support a service has for a client to request a specific apply time of a Create, Delete, or Action operation of a given resource.", + "description": "The client can request a specific apply time of a create, delete, or action operation of a Resource.", + "longDescription": "This type shall indicate that a client can request a specific apply time of a create, delete, or action operation of a Resource.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -105,34 +87,38 @@ }, "properties": { "MaintenanceWindowDurationInSeconds": { - "description": "The value of this property as specified by client indicates the expiry time of maintenance window in seconds.", - "longDescription": "The value of this property shall be the same as the MaintenanceWindowDurationInSeconds property found in the MaintenanceWindow structure on the MaintenanceWindowResource. This property shall be required if the SupportedValues property contains AtMaintenanceWindowStart or InMaintenanceWindowOnReset.", + "description": "The expiry time of maintenance window in seconds.", + "longDescription": "This property shall contain the same as the MaintenanceWindowDurationInSeconds property found in the MaintenanceWindow structure on the MaintenanceWindowResource. This property shall be required if the SupportedValues property contains AtMaintenanceWindowStart or InMaintenanceWindowOnReset.", "minimum": 0, "readonly": true, "type": "integer", - "units": "s" + "units": "s", + "versionAdded": "v1_2_0" }, "MaintenanceWindowResource": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/idRef", - "description": "The value of this property is used to indicate the location of the maintenance window settings.", - "longDescription": "The value of this property shall be a reference to a resource that contains the @Redfish.MaintenanceWindow property which governs this resource. This property shall be required if the SupportedValues property contains AtMaintenanceWindowStart or InMaintenanceWindowOnReset.", - "readonly": true + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/idRef", + "description": "The location of the maintenance window settings.", + "longDescription": "This property shall contain a link to a Resource that contains the @Redfish.MaintenanceWindow property that governs this Resource. This property shall be required if the SupportedValues property contains AtMaintenanceWindowStart or InMaintenanceWindowOnReset.", + "readonly": true, + "versionAdded": "v1_2_0" }, "MaintenanceWindowStartTime": { - "description": "The value of this property as specified by client to indicate the start time of a maintenance window.", + "description": "The start time of a maintenance window.", "format": "date-time", - "longDescription": "The value of this property shall be the same as the MaintenanceWindowStartTime property found in the MaintenanceWindow structure on the MaintenanceWindowResource. This property shall be required if the SupportedValues property contains AtMaintenanceWindowStart or InMaintenanceWindowOnReset.", + "longDescription": "This property shall contain the same as the MaintenanceWindowStartTime property found in the MaintenanceWindow structure on the MaintenanceWindowResource. This property shall be required if the SupportedValues property contains AtMaintenanceWindowStart or InMaintenanceWindowOnReset.", "readonly": true, - "type": "string" + "type": "string", + "versionAdded": "v1_2_0" }, "SupportedValues": { - "description": "This property indicates the types of apply times the client is allowed request when performing a Create, Delete, or Action operation.", + "description": "The types of apply times that the client can request when performing a create, delete, or action operation.", "items": { "$ref": "http://redfish.dmtf.org/schemas/v1/Settings.json#/definitions/OperationApplyTime" }, - "longDescription": "The value of this property shall indicate the types of apply times the client is allowed request when performing a Create, Delete, or Action operation.", + "longDescription": "This property shall indicate the types of apply times the client can request when performing a create, delete, or action operation.", "readonly": true, - "type": "array" + "type": "array", + "versionAdded": "v1_2_0" } }, "required": [ @@ -142,10 +128,10 @@ }, "PreferredApplyTime": { "additionalProperties": false, - "description": "This object indicates when the future configuration (i.e. Settings resource) should be applied.", - "longDescription": "This object shall be specified by client in a request to indicate its preference on when to apply the values in this Settings resource.", + "description": "The preferred time to apply configuration settings.", + "longDescription": "This type shall be specified by client to indicate the preferred time to apply the configuration settings.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -161,34 +147,37 @@ "properties": { "ApplyTime": { "$ref": "#/definitions/ApplyTime", - "description": "This property indicates when the future configuration (i.e. Settings resource) should be applied.", - "longDescription": "The value of this property shall indicate the preference on to when to apply the values in this Settings resource.", - "readonly": false + "description": "The time when to apply the settings.", + "longDescription": "This property shall indicate when to apply the values in this Settings Resource.", + "readonly": false, + "versionAdded": "v1_1_0" }, "MaintenanceWindowDurationInSeconds": { - "description": "The value of this property as specified by client indicates the expiry time of maintenance window in seconds.", - "longDescription": "The value of this property shall indicate the end of the maintenance window as the number of seconds after the time specified by the MaintenanceWindowStartTime property. This property shall be required if the ApplyTime property is specified as AtMaintenanceWindowStart or InMaintenanceWindowOnReset.", + "description": "The expiry time of maintenance window in seconds.", + "longDescription": "This property shall indicate the end of the maintenance window as the number of seconds after the time specified by the MaintenanceWindowStartTime property. This property shall be required if the ApplyTime property is `AtMaintenanceWindowStart` or `InMaintenanceWindowOnReset`.", "minimum": 0, "readonly": false, "type": "integer", - "units": "s" + "units": "s", + "versionAdded": "v1_1_0" }, "MaintenanceWindowStartTime": { - "description": "The value of this property as specified by client to indicate the start time of a maintenance window.", + "description": "The start time of a maintenance window.", "format": "date-time", - "longDescription": "The value of this property shall indicate the date and time as to when the service is allowed to start applying the future configuration as part of a maintenance window. This property shall be required if the ApplyTime property is specified as AtMaintenanceWindowStart or InMaintenanceWindowOnReset.", + "longDescription": "This property shall indicate the date and time when the service can start to apply the future configuration as part of a maintenance window. This property shall be required if the ApplyTime property is `AtMaintenanceWindowStart` or `InMaintenanceWindowOnReset`.", "readonly": false, - "type": "string" + "type": "string", + "versionAdded": "v1_1_0" } }, "type": "object" }, "Settings": { "additionalProperties": false, - "description": "This type describes the settings of a resouce.", - "longDescription": "This type shall describe any attributes of a resouce.", + "description": "The Resource settings.", + "longDescription": "This type shall describe any settings of a Resource.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -203,8 +192,8 @@ }, "properties": { "ETag": { - "description": "The ETag of the resource to which the settings were applied, after the application.", - "longDescription": "The value of this property shall be the ETag of the resource to which the settings were applied, after the application. This is here so that the client can check it against the ETag of the current resource to see if any other changes have also happened to the resource.", + "description": "The entity tag (ETag) of the Resource to which the settings were applied, after the application.", + "longDescription": "This property shall contain the entity tag (ETag) of the Resource to which the settings were applied, after the application. The client can check this value against the ETag of this Resource to determine whether the Resource had other changes.", "readonly": true, "type": [ "string", @@ -212,38 +201,40 @@ ] }, "MaintenanceWindowResource": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/idRef", - "description": "The value of this property is used to indicate the location of the maintenance window settings.", - "longDescription": "The value of this property shall be a reference to a resource that contains the @Redfish.MaintenanceWindow property which governs this resource. This property should be supported if the SupportedApplyTimes property contains AtMaintenanceWindowStart or InMaintenanceWindowOnReset.", - "readonly": true + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/idRef", + "description": "The location of the maintenance window settings.", + "longDescription": "This property shall contain a link to a Resource that contains the @Redfish.MaintenanceWindow property that governs this Resource. This property should be supported if the SupportedApplyTimes property contains AtMaintenanceWindowStart or InMaintenanceWindowOnReset.", + "readonly": true, + "versionAdded": "v1_2_0" }, "Messages": { - "description": "This is an array of messages associated with the task.", + "description": "An array of messages associated with the settings.", "items": { "$ref": "http://redfish.dmtf.org/schemas/v1/Message.json#/definitions/Message" }, - "longDescription": "The value of this property shall be an array of messages associated with the task.", + "longDescription": "This property shall contain an array of messages associated with the settings.", "type": "array" }, "SettingsObject": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/idRef", - "description": "Reference to the resource the client may PUT/PATCH to in order to change this resource.", - "longDescription": "The value of this property shall be the URI of the resource to which a client must do a PUT or PATCH in order to modify this resource.", + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/idRef", + "description": "The link to the Resource that the client may PUT or PATCH to modify the Resource.", + "longDescription": "This property shall contain the URI of the Resource that the client may PUT or PATCH to modify the Resource.", "readonly": true }, "SupportedApplyTimes": { - "description": "This property indicates when a Settings resource can be applied.", + "description": "The time when the settings can be applied.", "items": { "$ref": "#/definitions/ApplyTime" }, - "longDescription": "A service shall advertise its applytime capabilities using this property as to when a Setting resource can be applied.", + "longDescription": "A service shall advertise its applytime capabilities by using this property to set the time when the settings can be applied.", "readonly": true, - "type": "array" + "type": "array", + "versionAdded": "v1_1_0" }, "Time": { - "description": "Indicates the time the settings were applied.", + "description": "The time when the settings were applied.", "format": "date-time", - "longDescription": "The value of this property shall indicate the time that the settings object was applied to the resource.", + "longDescription": "This property shall indicate the time when the settings were applied to the Resource.", "readonly": true, "type": [ "string", @@ -255,5 +246,6 @@ } }, "owningEntity": "DMTF", - "title": "#Settings.v1_2_1" + "release": "2018.1", + "title": "#Settings.v1_2_2" } \ No newline at end of file diff --git a/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/SimpleStorage/SimpleStorage.json b/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/SimpleStorage/SimpleStorage.json index d14dade6..f91ad8e4 100644 --- a/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/SimpleStorage/SimpleStorage.json +++ b/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/SimpleStorage/SimpleStorage.json @@ -1,14 +1,15 @@ { + "$id": "http://redfish.dmtf.org/schemas/v1/SimpleStorage.v1_2_3.json", "$ref": "#/definitions/SimpleStorage", "$schema": "http://redfish.dmtf.org/schemas/v1/redfish-schema-v1.json", - "copyright": "Copyright 2014-2018 DMTF. For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright", + "copyright": "Copyright 2014-2019 DMTF. For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright", "definitions": { "Actions": { "additionalProperties": false, - "description": "The available actions for this resource.", - "longDescription": "This type shall contain the available actions for this resource.", + "description": "The available actions for this Resource.", + "longDescription": "This type shall contain the available actions for this Resource.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -24,18 +25,19 @@ "properties": { "Oem": { "$ref": "#/definitions/OemActions", - "description": "This property contains the available OEM specific actions for this resource.", - "longDescription": "This property shall contain any additional OEM actions for this resource." + "description": "The available OEM-specific actions for this Resource.", + "longDescription": "This property shall contain the available OEM-specific actions for this Resource.", + "versionAdded": "v1_2_0" } }, "type": "object" }, "Device": { "additionalProperties": false, - "description": "A storage device such as a disk drive or optical media device.", - "longDescription": "This type shall describe a storage device visible to SimpleStorage.", + "description": "A storage device, such as a disk drive or optical media device.", + "longDescription": "This type shall describe a storage device visible to simple storage.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -50,15 +52,16 @@ }, "properties": { "CapacityBytes": { - "description": "The size of the storage device.", - "longDescription": "The value of this property shall represent the size (in bytes) of the Storage Device.", + "description": "The size, in bytes, of the storage device.", + "longDescription": "This property shall represent the size, in bytes, of the storage device.", "minimum": 0, "readonly": true, "type": [ "integer", "null" ], - "units": "By" + "units": "By", + "versionAdded": "v1_1_0" }, "Manufacturer": { "description": "The name of the manufacturer of this device.", @@ -79,20 +82,20 @@ ] }, "Name": { - "description": "The name of the resource or array element.", - "longDescription": "This object represents the Name property. All values for resources described by this schema shall comply to the requirements as described in the Redfish specification. The value of this string shall be of the format for the reserved word *Name*.", + "description": "The name of the Resource or array member.", + "longDescription": "This object represents the name of this Resource or array member. The Resource values shall comply with the Redfish Specification-described requirements. This string value shall be of the 'Name' reserved word format.", "readonly": true, "type": "string" }, "Oem": { "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem", - "description": "Oem extension object.", - "longDescription": "This object represents the Oem property. All values for resources described by this schema shall comply to the requirements as described in the Redfish specification." + "description": "The OEM extension property.", + "longDescription": "This property shall contain the OEM extensions. All values for properties contained in this object shall conform to the Redfish Specification-described requirements." }, "Status": { "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Status", - "description": "This property describes the status and health of the resource and its children.", - "longDescription": "This property shall contain any status or health properties of the resource." + "description": "The status and health of the Resource and its subordinate or dependent Resources.", + "longDescription": "This property shall contain any status or health properties of the Resource." } }, "required": [ @@ -102,10 +105,10 @@ }, "Links": { "additionalProperties": false, - "description": "Contains references to other resources that are related to this resource.", - "longDescription": "This type, as described by the Redfish Specification, shall contain references to resources that are related to, but not contained by (subordinate to), this resource.", + "description": "The links to other Resources that are related to this Resource.", + "longDescription": "The Redfish Specification-described type shall contain links to Resources related to but not subordinate to this Resource.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -121,24 +124,25 @@ "properties": { "Chassis": { "$ref": "http://redfish.dmtf.org/schemas/v1/Chassis.json#/definitions/Chassis", - "description": "A reference to the Chassis which contains this Simple Storage.", - "longDescription": "The value of this property shall be a reference to a resource of type Chassis that represent the physical container associated with this Simple Storage.", - "readonly": true + "description": "The link to the chassis that contains this simple storage.", + "longDescription": "This property shall contain a link to a Resource of type Chassis that represents the physical container associated with this Resource.", + "readonly": true, + "versionAdded": "v1_2_0" }, "Oem": { "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem", - "description": "Oem extension object.", - "longDescription": "This object represents the Oem property. All values for resources described by this schema shall comply to the requirements as described in the Redfish specification." + "description": "The OEM extension property.", + "longDescription": "This property shall contain the OEM extensions. All values for properties contained in this object shall conform to the Redfish Specification-described requirements." } }, "type": "object" }, "OemActions": { "additionalProperties": true, - "description": "The available OEM specific actions for this resource.", - "longDescription": "This type shall contain any additional OEM actions for this resource.", + "description": "The available OEM-specific actions for this Resource.", + "longDescription": "This type shall contain the available OEM-specific actions for this Resource.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -156,10 +160,10 @@ }, "SimpleStorage": { "additionalProperties": false, - "description": "This is the schema definition for the Simple Storage resource. It represents the properties of a storage controller and its directly-attached devices.", - "longDescription": "This resource shall be used to represent a storage controller and its directly-attached devices.", + "description": "The SimpleStorage schema represents the properties of a storage controller and its directly-attached devices.", + "longDescription": "This Resource contains a storage controller and its directly-attached devices.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -174,21 +178,22 @@ }, "properties": { "@odata.context": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/context" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/context" }, "@odata.etag": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/etag" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/etag" }, "@odata.id": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/id" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/id" }, "@odata.type": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/type" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/type" }, "Actions": { "$ref": "#/definitions/Actions", - "description": "The available actions for this resource.", - "longDescription": "The Actions property shall contain the available actions for this resource." + "description": "The available actions for this Resource.", + "longDescription": "This property shall contain the available actions for this Resource.", + "versionAdded": "v1_2_0" }, "Description": { "anyOf": [ @@ -202,11 +207,11 @@ "readonly": true }, "Devices": { - "description": "The storage devices associated with this resource.", + "description": "The storage devices.", "items": { "$ref": "#/definitions/Device" }, - "longDescription": "This property shall contain a list of storage devices associated with this resource.", + "longDescription": "This property shall contain a list of storage devices related to this Resource.", "type": "array" }, "Id": { @@ -215,8 +220,9 @@ }, "Links": { "$ref": "#/definitions/Links", - "description": "Contains references to other resources that are related to this resource.", - "longDescription": "The Links property, as described by the Redfish Specification, shall contain references to resources that are related to, but not contained by (subordinate to), this resource." + "description": "The links to other Resources that are related to this Resource.", + "longDescription": "The Redfish Specification-described Links Property shall contain links to Resources related to but not subordinate to this Resource.", + "versionAdded": "v1_2_0" }, "Name": { "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Name", @@ -224,17 +230,17 @@ }, "Oem": { "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem", - "description": "This is the manufacturer/provider specific extension moniker used to divide the Oem object into sections.", - "longDescription": "The value of this string shall be of the format for the reserved word *Oem*." + "description": "The OEM extension property.", + "longDescription": "This property shall contain the OEM extensions. All values for properties that this object contains shall conform to the Redfish Specification-described requirements." }, "Status": { "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Status", - "description": "This property describes the status and health of the resource and its children.", - "longDescription": "This property shall contain any status or health properties of the resource." + "description": "The status and health of the Resource and its subordinate or dependent Resources.", + "longDescription": "This property shall contain any status or health properties of the Resource." }, "UefiDevicePath": { - "description": "The UEFI device path used to access this storage controller.", - "longDescription": "This property shall contain the UEFI device path used to identify and locate the specific storage controller.", + "description": "The UEFI device path to access this storage controller.", + "longDescription": "This property shall contain the UEFI device path that identifies and locates the specific storage controller.", "readonly": true, "type": [ "string", @@ -252,5 +258,6 @@ } }, "owningEntity": "DMTF", - "title": "#SimpleStorage.v1_2_1.SimpleStorage" + "release": "2017.1", + "title": "#SimpleStorage.v1_2_3.SimpleStorage" } \ No newline at end of file diff --git a/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/SoftwareInventory/SoftwareInventory.json b/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/SoftwareInventory/SoftwareInventory.json index 56c79363..5504647d 100644 --- a/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/SoftwareInventory/SoftwareInventory.json +++ b/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/SoftwareInventory/SoftwareInventory.json @@ -1,14 +1,15 @@ { + "$id": "http://redfish.dmtf.org/schemas/v1/SoftwareInventory.v1_2_3.json", "$ref": "#/definitions/SoftwareInventory", "$schema": "http://redfish.dmtf.org/schemas/v1/redfish-schema-v1.json", - "copyright": "Copyright 2014-2018 DMTF. For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright", + "copyright": "Copyright 2014-2019 DMTF. For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright", "definitions": { "Actions": { "additionalProperties": false, - "description": "The available actions for this resource.", - "longDescription": "This type shall contain the available actions for this resource.", + "description": "The available actions for this Resource.", + "longDescription": "This type shall contain the available actions for this Resource.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -24,18 +25,18 @@ "properties": { "Oem": { "$ref": "#/definitions/OemActions", - "description": "This property contains the available OEM specific actions for this resource.", - "longDescription": "This property shall contain any additional OEM actions for this resource." + "description": "The available OEM-specific actions for this Resource.", + "longDescription": "This property shall contain the available OEM-specific actions for this Resource." } }, "type": "object" }, "OemActions": { "additionalProperties": true, - "description": "The available OEM specific actions for this resource.", - "longDescription": "This type shall contain any additional OEM actions for this resource.", + "description": "The available OEM-specific actions for this Resource.", + "longDescription": "This type shall contain the available OEM-specific actions for this Resource.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -53,10 +54,10 @@ }, "SoftwareInventory": { "additionalProperties": false, - "description": "This schema defines an inventory of software components.", - "longDescription": "This resource shall be used to represent a single software component managed by this Redfish Service.", + "description": "The SoftwareInventory schema contains an inventory of software components. This can include software components such as BIOS, BMC firmware, firmware for other devices, system drivers, or provider software.", + "longDescription": "This Resource contains a single software component that this Redfish Service manages.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -71,21 +72,21 @@ }, "properties": { "@odata.context": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/context" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/context" }, "@odata.etag": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/etag" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/etag" }, "@odata.id": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/id" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/id" }, "@odata.type": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/type" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/type" }, "Actions": { "$ref": "#/definitions/Actions", - "description": "The available actions for this resource.", - "longDescription": "The Actions property shall contain the available actions for this resource." + "description": "The available actions for this Resource.", + "longDescription": "This property shall contain the available actions for this Resource." }, "Description": { "anyOf": [ @@ -103,22 +104,24 @@ "readonly": true }, "LowestSupportedVersion": { - "description": "A string representing the lowest supported version of this software.", - "longDescription": "The value of this property shall be a string representing the lowest supported version of this software. This string is formatted using the same format used for the Version property.", + "description": "The lowest supported version of this software.", + "longDescription": "This property shall represent the lowest supported version of this software. This string is formatted using the same format used for the Version property.", "readonly": true, "type": [ "string", "null" - ] + ], + "versionAdded": "v1_1_0" }, "Manufacturer": { - "description": "A string representing the manufacturer/producer of this software.", - "longDescription": "The value of this property shall be a string representing the name of the manufacturer/producer of this software.", + "description": "The manufacturer or producer of this software.", + "longDescription": "This property shall represent the name of the manufacturer or producer of this software.", "readonly": true, "type": [ "string", "null" - ] + ], + "versionAdded": "v1_2_0" }, "Name": { "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Name", @@ -126,57 +129,61 @@ }, "Oem": { "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem", - "description": "This is the manufacturer/provider specific extension moniker used to divide the Oem object into sections.", - "longDescription": "The value of this string shall be of the format for the reserved word *Oem*." + "description": "The OEM extension property.", + "longDescription": "This property shall contain the OEM extensions. All values for properties that this object contains shall conform to the Redfish Specification-described requirements." }, "RelatedItem": { - "description": "The ID(s) of the resources associated with this software inventory item.", + "description": "The IDs of the Resources associated with this software inventory item.", "items": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/idRef" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/idRef" }, - "longDescription": "The value of this property shall be an array of IDs containing pointers consistent with JSON pointer syntax to the resource that is associated with this software inventory item.", + "longDescription": "This property shall contain an array of IDs for pointers consistent with JSON Pointer syntax to the Resource that is associated with this software inventory item.", "readonly": true, - "type": "array" + "type": "array", + "versionAdded": "v1_1_0" }, "RelatedItem@odata.count": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/count" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/count" }, "ReleaseDate": { - "description": "Release date of this software.", + "description": "The release date of this software.", "format": "date-time", - "longDescription": "The value of this property shall be the date of release or production for this software. The time of day portion of the property shall be '00:00:00Z' if the time of day is unknown.", + "longDescription": "This property shall contain the date of release or production for this software. If the time of day is unknown, the time of day portion of the property shall contain `00:00:00Z`.", "readonly": true, "type": [ "string", "null" - ] + ], + "versionAdded": "v1_2_0" }, "SoftwareId": { - "description": "A string representing the implementation-specific ID for identifying this software.", - "longDescription": "The value of this property shall be a string representing an implementation-specific ID for identifying this software. This string is used for correlation to a component repository or database.", + "description": "The implementation-specific label that identifies this software.", + "longDescription": "This property shall represent an implementation-specific label that identifies this software. This string correlates with a component repository or database.", "readonly": true, - "type": "string" + "type": "string", + "versionAdded": "v1_1_0" }, "Status": { "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Status", - "description": "This property describes the status and health of the resource and its children.", - "longDescription": "This property shall contain any status or health properties of the resource." + "description": "The status and health of the Resource and its subordinate or dependent Resources.", + "longDescription": "This property shall contain any status or health properties of the Resource." }, "UefiDevicePaths": { - "description": "A list of strings representing the UEFI Device Path(s) of the component(s) associated with this software inventory item.", + "description": "The list of UEFI device paths of the components associated with this software inventory item.", "items": { "type": [ "string", "null" ] }, - "longDescription": "The value of this property shall be a list of strings representing the UEFI Device Path(s) of the component(s) associated with this software inventory item. The UEFI Device Path string(s) shall be formatted as defined by the UEFI Specification.", + "longDescription": "This property shall contain a list UEFI device paths of the components associated with this software inventory item. The UEFI device paths shall be formatted as defined by the UEFI Specification.", "readonly": true, - "type": "array" + "type": "array", + "versionAdded": "v1_1_0" }, "Updateable": { - "description": "Indicates whether this software can be updated by the update service.", - "longDescription": "The value of this property shall be a boolean indicating whether this software can be updated by the update service. If false, this software is for reporting purpose only.", + "description": "An indication of whether the Update Service can update this software.", + "longDescription": "This property shall indicate whether the Update Service can update this software. If `true`, the Service can update this software. If `false`, the Service cannot update this software and the software is for reporting purposes only.", "readonly": true, "type": [ "boolean", @@ -184,8 +191,8 @@ ] }, "Version": { - "description": "A string representing the version of this software.", - "longDescription": "The value of this property shall be a string representing the version of this software.", + "description": "The version of this software.", + "longDescription": "This property shall contain the version of this software.", "readonly": true, "type": [ "string", @@ -203,5 +210,6 @@ } }, "owningEntity": "DMTF", - "title": "#SoftwareInventory.v1_2_1.SoftwareInventory" + "release": "2018.1", + "title": "#SoftwareInventory.v1_2_3.SoftwareInventory" } \ No newline at end of file diff --git a/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/Storage/Storage.json b/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/Storage/Storage.json index e3efbd10..581dd05e 100644 --- a/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/Storage/Storage.json +++ b/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/Storage/Storage.json @@ -1,15 +1,15 @@ { - "$id": "http://redfish.dmtf.org/schemas/v1/Storage.v1_6_0.json", + "$id": "http://redfish.dmtf.org/schemas/v1/Storage.v1_7_1.json", "$ref": "#/definitions/Storage", "$schema": "http://redfish.dmtf.org/schemas/v1/redfish-schema-v1.json", - "copyright": "Copyright 2014-2018 DMTF. For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright", + "copyright": "Copyright 2014-2019 DMTF. For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright", "definitions": { "Actions": { "additionalProperties": false, - "description": "The available actions for this resource.", - "longDescription": "This type shall contain the available actions for this resource.", + "description": "The available actions for this Resource.", + "longDescription": "This type shall contain the available actions for this Resource.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -28,18 +28,18 @@ }, "Oem": { "$ref": "#/definitions/OemActions", - "description": "This property contains the available OEM specific actions for this resource.", - "longDescription": "This property shall contain any additional OEM actions for this resource." + "description": "The available OEM-specific actions for this Resource.", + "longDescription": "This property shall contain the available OEM-specific actions for this Resource." } }, "type": "object" }, "CacheSummary": { "additionalProperties": false, - "description": "This object describes the cache memory of the storage controller in general detail.", - "longDescription": "This type shall contain properties which describe the cache memory for a storage controller.", + "description": "This type describes the cache memory of the storage controller in general detail.", + "longDescription": "This type shall contain properties that describe the cache memory for a storage controller.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -55,7 +55,7 @@ "properties": { "PersistentCacheSizeMiB": { "description": "The portion of the cache memory that is persistent, measured in MiB.", - "longDescription": "This property shall contain the amount of cache memory that is persistent as measured in mebibytes. This size shall be less than or equal to the TotalCacheSizeMib.", + "longDescription": "This property shall contain the amount of cache memory that is persistent as measured in mebibytes. This size shall be less than or equal to the TotalCacheSizeMib.", "minimum": 0, "readonly": true, "type": [ @@ -67,8 +67,8 @@ }, "Status": { "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Status", - "description": "This property describes the status and health of the resource and its children.", - "longDescription": "This property shall contain any status or health properties of the resource.", + "description": "The status and health of the Resource and its subordinate or dependent Resources.", + "longDescription": "This property shall contain any status or health properties of the Resource.", "versionAdded": "v1_5_0" }, "TotalCacheSizeMiB": { @@ -91,10 +91,10 @@ }, "Links": { "additionalProperties": false, - "description": "Contains references to other resources that are related to this resource.", - "longDescription": "This type, as described by the Redfish Specification, shall contain references to resources that are related to, but not contained by (subordinate to), this resource.", + "description": "The links to other Resources that are related to this Resource.", + "longDescription": "This Redfish Specification-described type shall contain links to Resources that are related to but are not contained by or subordinate to this Resource.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -109,31 +109,31 @@ }, "properties": { "Enclosures": { - "description": "An array of references to the chassis to which this storage subsystem is attached.", + "description": "An array of links to the chassis to which this storage subsystem is attached.", "items": { "$ref": "http://redfish.dmtf.org/schemas/v1/Chassis.json#/definitions/Chassis" }, - "longDescription": "The value of this property shall reference a resource of type Chassis that represents the physical containers attached to this resource.", + "longDescription": "This property shall link to a Resource of type Chassis that represents the physical containers attached to this Resource.", "readonly": true, "type": "array" }, "Enclosures@odata.count": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/count" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/count" }, "Oem": { "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem", - "description": "Oem extension object.", - "longDescription": "This object represents the Oem property. All values for resources described by this schema shall comply to the requirements as described in the Redfish specification." + "description": "The OEM extension property.", + "longDescription": "This property shall contain the OEM extensions. All values for properties contained in this object shall conform to the Redfish Specification-described requirements." } }, "type": "object" }, "OemActions": { "additionalProperties": true, - "description": "The available OEM specific actions for this resource.", - "longDescription": "This type shall contain any additional OEM actions for this resource.", + "description": "The available OEM-specific actions for this Resource.", + "longDescription": "This type shall contain the available OEM-specific actions for this Resource.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -149,20 +149,78 @@ "properties": {}, "type": "object" }, + "Rates": { + "additionalProperties": false, + "description": "This type describes the various controller rates used for processes such as Volume Rebuild or Consistency Checks.", + "longDescription": "This type shall contain all the rate settings available on the controller.", + "patternProperties": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { + "description": "This property shall specify a valid odata or Redfish property.", + "type": [ + "array", + "boolean", + "integer", + "number", + "null", + "object", + "string" + ] + } + }, + "properties": { + "ConsistencyCheckRatePercent": { + "description": "The percentage of controller Resources used for performing a data consistency check on volumes.", + "longDescription": "This property shall contain the percentage of controller Resources used for checking data consistency on Volumes.", + "maximum": 100, + "minimum": 0, + "readonly": false, + "type": [ + "integer", + "null" + ], + "versionAdded": "v1_7_0" + }, + "RebuildRatePercent": { + "description": "The percentage of controller Resources used for rebuilding/repairing volumes.", + "longDescription": "This property shall contain the percentage of controller Resources used for rebuilding Volumes.", + "maximum": 100, + "minimum": 0, + "readonly": false, + "type": [ + "integer", + "null" + ], + "versionAdded": "v1_7_0" + }, + "TransformationRatePercent": { + "description": "The percentage of controller Resources used for transforming volumes from one configuration to another.", + "longDescription": "This property shall contain the percentage of controller Resources used for transforming Volumes.", + "maximum": 100, + "minimum": 0, + "readonly": false, + "type": [ + "integer", + "null" + ], + "versionAdded": "v1_7_0" + } + }, + "type": "object" + }, "SetEncryptionKey": { "additionalProperties": false, - "description": "This action is used to set the encryption key for the storage subsystem.", + "description": "This action sets the encryption key for the storage subsystem.", "longDescription": "This action shall set the encryption key for the storage subsystem.", "parameters": { "EncryptionKey": { - "description": "The encryption key to set on the storage subsytem.", + "description": "The encryption key to set on the storage subsystem.", "longDescription": "This parameter shall contain the encryption key to set on the storage subsystem.", "requiredParameter": true, "type": "string" } }, "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -178,7 +236,7 @@ "properties": { "target": { "description": "Link to invoke action", - "format": "uri", + "format": "uri-reference", "type": "string" }, "title": { @@ -190,10 +248,10 @@ }, "Storage": { "additionalProperties": false, - "description": "This schema defines a storage subsystem and its respective properties. A storage subsystem represents a set of storage controllers (physical or virtual) and the resources such as volumes that can be accessed from that subsystem.", - "longDescription": "This resource shall be used to represent resources that represent a storage subsystem in the Redfish specification.", + "description": "The Storage schema defines a storage subsystem and its respective properties. A storage subsystem represents a set of physical or virtual storage controllers and the Resources, such as volumes, that can be accessed from that subsystem.", + "longDescription": "This Resource shall represent a storage subsystem in the Redfish Specification.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -208,21 +266,21 @@ }, "properties": { "@odata.context": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/context" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/context" }, "@odata.etag": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/etag" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/etag" }, "@odata.id": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/id" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/id" }, "@odata.type": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/type" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/type" }, "Actions": { "$ref": "#/definitions/Actions", - "description": "The available actions for this resource.", - "longDescription": "The Actions property shall contain the available actions for this resource." + "description": "The available actions for this Resource.", + "longDescription": "This property shall contain the available actions for this Resource." }, "Description": { "anyOf": [ @@ -236,16 +294,16 @@ "readonly": true }, "Drives": { - "description": "The set of drives attached to the storage controllers represented by this resource.", + "description": "The set of drives attached to the storage controllers that this Resource represents.", "items": { "$ref": "http://redfish.dmtf.org/schemas/v1/Drive.json#/definitions/Drive" }, - "longDescription": "A collection that indicates all the drives attached to the storage controllers that this resource represents.", + "longDescription": "This property shall contain a set of the drives attached to the storage controllers that this Resource represents.", "readonly": true, "type": "array" }, "Drives@odata.count": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/count" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/count" }, "Id": { "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Id", @@ -253,8 +311,8 @@ }, "Links": { "$ref": "#/definitions/Links", - "description": "Contains references to other resources that are related to this resource.", - "longDescription": "The Links property, as described by the Redfish Specification, shall contain references to resources that are related to, but not contained by (subordinate to), this resource." + "description": "The links to other Resources that are related to this Resource.", + "longDescription": "This property shall contain links to Resources that are related to but are not contained by or subordinate to this Resource." }, "Name": { "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Name", @@ -262,8 +320,8 @@ }, "Oem": { "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem", - "description": "This is the manufacturer/provider specific extension moniker used to divide the Oem object into sections.", - "longDescription": "The value of this string shall be of the format for the reserved word *Oem*." + "description": "The OEM extension property.", + "longDescription": "This property shall contain the OEM extensions. All values for properties that this object contains shall conform to the Redfish Specification-described requirements." }, "Redundancy": { "autoExpand": true, @@ -275,30 +333,30 @@ "type": "array" }, "Redundancy@odata.count": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/count" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/count" }, "Status": { "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Status", - "description": "This property describes the status and health of the resource and its children.", - "longDescription": "This property shall contain any status or health properties of the resource." + "description": "The status and health of the Resource and its subordinate or dependent Resources.", + "longDescription": "This property shall contain any status or health properties of the Resource." }, "StorageControllers": { "autoExpand": true, - "description": "The set of storage controllers represented by this resource.", + "description": "The set of storage controllers that this Resource represents.", "items": { "$ref": "#/definitions/StorageController" }, - "longDescription": "A collection that indicates all the storage controllers that this resource represents.", + "longDescription": "This property shall contain a set of the storage controllers that this Resource represents.", "readonly": true, "type": "array" }, "StorageControllers@odata.count": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/count" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/count" }, "Volumes": { "$ref": "http://redfish.dmtf.org/schemas/swordfish/v1/VolumeCollection.json#/definitions/VolumeCollection", - "description": "The set of volumes produced by the storage controllers represented by this resource.", - "longDescription": "A collection that indicates all the volumes produced by the storage controllers that this resource represents.", + "description": "The set of volumes that the storage controllers produce.", + "longDescription": "This property shall contain a link to a Resource of type VolumeCollection.", "readonly": true } }, @@ -312,10 +370,10 @@ }, "StorageController": { "additionalProperties": false, - "description": "This schema defines a storage controller and its respective properties. A storage controller represents a storage device (physical or virtual) that produces Volumes.", - "longDescription": "This resource shall be used to represent a resource that represents a storage controller in the Redfish specification.", + "description": "The StorageController schema describes a storage controller and its properties. A storage controller represents a physical or virtual storage device that produces volumes.", + "longDescription": "This Resource shall represent a Resource that represents a storage controller in the Redfish Specification.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -330,24 +388,24 @@ }, "properties": { "@odata.id": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/id" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/id" }, "Actions": { "$ref": "#/definitions/StorageControllerActions", - "description": "The available actions for this resource.", - "longDescription": "The Actions property shall contain the available actions for this resource.", + "description": "The available actions for this Resource.", + "longDescription": "This property shall contain the available actions for this Resource.", "versionAdded": "v1_2_0" }, "Assembly": { "$ref": "http://redfish.dmtf.org/schemas/v1/Assembly.json#/definitions/Assembly", - "description": "A reference to the Assembly resource associated with this Storage Controller.", - "longDescription": "The value of this property shall be a link to a resource of type Assembly.", + "description": "The link to the assembly associated with this storage controller.", + "longDescription": "This property shall contain a link to a Resource of type Assembly.", "readonly": true, "versionAdded": "v1_4_0" }, "AssetTag": { - "description": "The user assigned asset tag for this storage controller.", - "longDescription": "The value of this property shall be an identifying string used to track the storage controller for inventory purposes.", + "description": "The user-assigned asset tag for this storage controller.", + "longDescription": "This property shall track the storage controller for inventory purposes.", "readonly": false, "type": [ "string", @@ -356,12 +414,18 @@ }, "CacheSummary": { "$ref": "#/definitions/CacheSummary", - "description": "This object describes the cache memory of the storage controller in general detail.", - "longDescription": "This object shall contain properties which describe the cache memory for the current resource.", + "description": "The cache memory of the storage controller in general detail.", + "longDescription": "This property shall contain properties that describe the cache memory for this Resource.", "versionAdded": "v1_5_0" }, + "ControllerRates": { + "$ref": "#/definitions/Rates", + "description": "This property describes the various controller rates used for processes such as Volume Rebuild or Consistency Checks.", + "longDescription": "This object shall contain all the rate settings available on the controller.", + "versionAdded": "v1_7_0" + }, "FirmwareVersion": { - "description": "The firmware version of this storage Controller.", + "description": "The firmware version of this storage controller.", "longDescription": "This property shall contain the firwmare version as defined by the manufacturer for the associated storage controller.", "readonly": true, "type": [ @@ -379,19 +443,19 @@ }, "Links": { "$ref": "#/definitions/StorageControllerLinks", - "description": "Contains references to other resources that are related to this resource.", - "longDescription": "The Links property, as described by the Redfish Specification, shall contain references to resources that are related to, but not contained by (subordinate to), this resource.", + "description": "The links to other Resources that are related to this Resource.", + "longDescription": "This property shall contain links to Resources that are related to but are not contained by or subordinate to this Resource.", "versionAdded": "v1_1_0" }, "Location": { "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Location", - "description": "The Location of the storage controller.", + "description": "The location of the storage controller.", "longDescription": "This property shall contain location information of the associated storage controller.", "versionAdded": "v1_4_0" }, "Manufacturer": { - "description": "This is the manufacturer of this storage controller.", - "longDescription": "The value of this property shall be the name of the organization responsible for producing the storage controller. This organization might be the entity from whom the storage controller is purchased, but this is not necessarily true.", + "description": "The manufacturer of this storage controller.", + "longDescription": "This property shall contain the name of the organization responsible for producing the storage controller. This organization might be the entity from which the storage controller is purchased, but this is not necessarily true.", "readonly": true, "type": [ "string", @@ -399,14 +463,14 @@ ] }, "MemberId": { - "description": "This is the identifier for the member within the collection.", - "longDescription": "The value of this string shall uniquely identify the member within the collection.", + "description": "The identifier for the member within the collection.", + "longDescription": "This property shall uniquely identify the member within the collection. For services supporting Redfish v1.6 or higher, this value shall contain the zero-based array index.", "readonly": true, "type": "string" }, "Model": { - "description": "This is the model number for the storage controller.", - "longDescription": "The value of this property shall be the name by which the manufacturer generally refers to the storage controller.", + "description": "The model number for the storage controller.", + "longDescription": "This property shall contain the name by which the manufacturer generally refers to the storage controller.", "readonly": true, "type": [ "string", @@ -415,7 +479,7 @@ }, "Name": { "description": "The name of the Storage Controller.", - "longDescription": "The value of this property shall be the name of the Storage Controller.", + "longDescription": "This property shall contain the name of the Storage Controller.", "readonly": true, "type": [ "string", @@ -425,34 +489,34 @@ }, "Oem": { "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem", - "description": "This is the manufacturer/provider specific extension moniker used to divide the Oem object into sections.", - "longDescription": "The value of this string shall be of the format for the reserved word *Oem*." + "description": "The OEM extension property.", + "longDescription": "This property shall contain the OEM extensions. All values for properties that this object contains shall conform to the Redfish Specification-described requirements." }, "PCIeInterface": { - "anyOf": [ - { - "$ref": "http://redfish.dmtf.org/schemas/v1/PCIeDevice.json#/definitions/PCIeInterface" - }, - { - "type": "null" - } - ], + "$ref": "http://redfish.dmtf.org/schemas/v1/PCIeDevice.json#/definitions/PCIeInterface", "description": "The PCIe interface details for this controller.", - "longDescription": "This object shall contain details on the PCIe interface used to connect this PCIe-based controller to its host.", + "longDescription": "This property shall contain details on the PCIe interface that connects this PCIe-based controller to its host.", "versionAdded": "v1_5_0" }, "PartNumber": { "description": "The part number for this storage controller.", - "longDescription": "The value of this property shall be a part number assigned by the organization that is responsible for producing or manufacturing the storage controller.", + "longDescription": "This property shall contain a part number assigned by the organization that is responsible for producing or manufacturing the storage controller.", "readonly": true, "type": [ "string", "null" ] }, + "Ports": { + "$ref": "http://redfish.dmtf.org/schemas/v1/PortCollection.json#/definitions/PortCollection", + "description": "The link to the collection of Ports that exist on the storage controller.", + "longDescription": "This property shall contain a link to a Resource Collection of type PortCollection.", + "readonly": true, + "versionAdded": "v1_7_0" + }, "SKU": { - "description": "This is the SKU for this storage controller.", - "longDescription": "The value of this property shall be the stock-keeping unit number for this storage storage controller.", + "description": "The SKU for this storage controller.", + "longDescription": "This property shall contain the stock-keeping unit number for this storage storage controller.", "readonly": true, "type": [ "string", @@ -461,7 +525,7 @@ }, "SerialNumber": { "description": "The serial number for this storage controller.", - "longDescription": "The value of this property shall be a manufacturer-allocated number used to identify the storage controller.", + "longDescription": "This property shall contain a manufacturer-allocated number that identifies the storage controller.", "readonly": true, "type": [ "string", @@ -470,7 +534,7 @@ }, "SpeedGbps": { "description": "The maximum speed of the storage controller's device interface.", - "longDescription": "The value of this property shall represent the maximum supported speed of the Storage bus interface (in Gigabits per second). The interface specified connects the controller to the storage devices, not the controller to a host (e.g. SAS bus, not PCIe host bus).", + "longDescription": "This property shall represent the maximum supported speed of the storage bus interface, in Gigabits per second. The specified interface connects the controller to the storage devices, not the controller to a host. For example, SAS bus not PCIe host bus.", "minimum": 0, "readonly": true, "type": [ @@ -481,29 +545,29 @@ }, "Status": { "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Status", - "description": "This property describes the status and health of the resource and its children.", - "longDescription": "This property shall contain any status or health properties of the resource." + "description": "The status and health of the Resource and its subordinate or dependent Resources.", + "longDescription": "This property shall contain any status or health properties of the Resource." }, "SupportedControllerProtocols": { - "description": "This represents the protocols by which this storage controller can be communicated to.", + "description": "The supported set of protocols for communicating to this storage controller.", "items": { "$ref": "http://redfish.dmtf.org/schemas/v1/Protocol.json#/definitions/Protocol" }, - "longDescription": "The value of this property shall be the set of protocols this storage controller can be communicated to.", + "longDescription": "This property shall contain the supported set of protocols for communicating to this storage controller.", "readonly": true, "type": "array" }, "SupportedDeviceProtocols": { - "description": "This represents the protocols which the storage controller can use to communicate with attached devices.", + "description": "The protocols that the storage controller can use to communicate with attached devices.", "items": { "$ref": "http://redfish.dmtf.org/schemas/v1/Protocol.json#/definitions/Protocol" }, - "longDescription": "The value of this property shall be the set of protocols this storage controller can use to communicate with attached devices.", + "longDescription": "This property shall contain the set of protocols this storage controller can use to communicate with attached devices.", "readonly": true, "type": "array" }, "SupportedRAIDTypes": { - "description": "This object describes the RAID Types supported by the storage controller.", + "description": "The set of RAID types supported by the storage controller.", "items": { "anyOf": [ { @@ -514,7 +578,7 @@ } ] }, - "longDescription": "This object shall contain all the RAIDType values supported by the current resource.", + "longDescription": "This property shall contain an array of all the RAID types supported by this controller.", "readonly": true, "type": "array", "versionAdded": "v1_6_0" @@ -528,10 +592,10 @@ }, "StorageControllerActions": { "additionalProperties": false, - "description": "The available actions for this resource.", - "longDescription": "This type shall contain the available actions for this resource.", + "description": "The available actions for this Resource.", + "longDescription": "This type shall contain the available actions for this Resource.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -547,8 +611,8 @@ "properties": { "Oem": { "$ref": "#/definitions/StorageControllerOemActions", - "description": "This property contains the available OEM specific actions for this resource.", - "longDescription": "This property shall contain any additional OEM actions for this resource.", + "description": "The available OEM-specific actions for this Resource.", + "longDescription": "This property shall contain the available OEM-specific actions for this Resource.", "versionAdded": "v1_2_0" } }, @@ -556,10 +620,10 @@ }, "StorageControllerLinks": { "additionalProperties": false, - "description": "Contains references to other resources that are related to this resource.", - "longDescription": "This type, as described by the Redfish Specification, shall contain references to resources that are related to, but not contained by (subordinate to), this resource.", + "description": "The links to other Resources that are related to this Resource.", + "longDescription": "This Redfish Specification-described type shall contain links to Resources that are related to but are not contained by or subordinate to this Resource.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -574,43 +638,55 @@ }, "properties": { "Endpoints": { - "description": "An array of references to the endpoints that connect to this controller.", + "description": "An array of links to the endpoints that connect to this controller.", "items": { "$ref": "http://redfish.dmtf.org/schemas/v1/Endpoint.json#/definitions/Endpoint" }, - "longDescription": "The value of this property shall be a reference to the resources that this controller is associated with and shall reference a resource of type Endpoint.", + "longDescription": "This property shall contain a link to the Resources of the Endpoint type with which this controller is associated.", "type": "array", "versionAdded": "v1_1_0" }, "Endpoints@odata.count": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/count" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/count" }, "Oem": { "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem", - "description": "Oem extension object.", - "longDescription": "This object represents the Oem property. All values for resources described by this schema shall comply to the requirements as described in the Redfish specification." + "description": "The OEM extension property.", + "longDescription": "This property shall contain the OEM extensions. All values for properties contained in this object shall conform to the Redfish Specification-described requirements." + }, + "PCIeFunctions": { + "description": "An array of links to the PCIe functions that the stroage controller produces.", + "items": { + "$ref": "http://redfish.dmtf.org/schemas/v1/PCIeFunction.json#/definitions/PCIeFunction" + }, + "longDescription": "This property shall link to a Resource of type PCIeFunction that represents the PCIe functions associated with this Resource.", + "type": "array", + "versionAdded": "v1_7_0" + }, + "PCIeFunctions@odata.count": { + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/count" }, "StorageServices": { - "description": "An array of references to the StorageServices that connect to this controller.", + "description": "An array of links to the Storage Services that connect to this controller.", "items": { "$ref": "http://redfish.dmtf.org/schemas/swordfish/v1/StorageService.json#/definitions/StorageService" }, - "longDescription": "The value of this property shall be a reference to the resources that this controller is associated with and shall reference a resource of type StorageService.", + "longDescription": "This property shall contain a link to the Resources of the StorageService type with which this controller is associated.", "type": "array", "versionAdded": "v1_4_0" }, "StorageServices@odata.count": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/count" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/count" } }, "type": "object" }, "StorageControllerOemActions": { "additionalProperties": true, - "description": "The available OEM specific actions for this resource.", - "longDescription": "This type shall contain any additional OEM actions for this resource.", + "description": "The available OEM-specific actions for this Resource.", + "longDescription": "This type shall contain the available OEM-specific actions for this Resource.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -628,6 +704,6 @@ } }, "owningEntity": "DMTF", - "release": "2018.3", - "title": "#Storage.v1_6_0.Storage" + "release": "2019.1", + "title": "#Storage.v1_7_1.Storage" } \ No newline at end of file diff --git a/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/Switch/Switch.json b/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/Switch/Switch.json index 77838309..0792058e 100644 --- a/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/Switch/Switch.json +++ b/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/Switch/Switch.json @@ -1,14 +1,15 @@ { + "$id": "http://redfish.dmtf.org/schemas/v1/Switch.v1_2_0.json", "$ref": "#/definitions/Switch", "$schema": "http://redfish.dmtf.org/schemas/v1/redfish-schema-v1.json", - "copyright": "Copyright 2014-2018 DMTF. For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright", + "copyright": "Copyright 2014-2019 DMTF. For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright", "definitions": { "Actions": { "additionalProperties": false, - "description": "The available actions for this resource.", - "longDescription": "This type shall contain the available actions for this resource.", + "description": "The available actions for this Resource.", + "longDescription": "This type shall contain the available actions for this Resource.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -27,18 +28,18 @@ }, "Oem": { "$ref": "#/definitions/OemActions", - "description": "This property contains the available OEM specific actions for this resource.", - "longDescription": "This property shall contain any additional OEM actions for this resource." + "description": "The available OEM-specific actions for this Resource.", + "longDescription": "This property shall contain the available OEM-specific actions for this Resource." } }, "type": "object" }, "Links": { "additionalProperties": false, - "description": "Contains references to other resources that are related to this resource.", - "longDescription": "This type, as described by the Redfish Specification, shall contain references to resources that are related to, but not contained by (subordinate to), this resource.", + "description": "The links to other Resources that are related to this Resource.", + "longDescription": "The Redfish Specification-described type shall contain links to Resources related to but not subordinate to this Resource.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -54,36 +55,36 @@ "properties": { "Chassis": { "$ref": "http://redfish.dmtf.org/schemas/v1/Chassis.json#/definitions/Chassis", - "description": "A reference to the chassis which contains this switch.", - "longDescription": "The value of this property shall be a reference to the resources that this switch is associated with and shall reference a resource of type Chassis.", + "description": "The link to the chassis that contains this switch.", + "longDescription": "This property shall contain a link to the Resource of type Chassis with which this switch is associated.", "readonly": true }, "ManagedBy": { - "description": "An array of references to the managers that manage this switch.", + "description": "An array of links to the managers that manage this switch.", "items": { "$ref": "http://redfish.dmtf.org/schemas/v1/Manager.json#/definitions/Manager" }, - "longDescription": "The value of this property shall be a reference to the resources that this switch is associated with and shall reference a resource of type Manager.", + "longDescription": "This property shall contain a link to the Resource of type Manager with which this switch is associated.", "readonly": true, "type": "array" }, "ManagedBy@odata.count": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/count" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/count" }, "Oem": { "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem", - "description": "Oem extension object.", - "longDescription": "This object represents the Oem property. All values for resources described by this schema shall comply to the requirements as described in the Redfish specification." + "description": "The OEM extension property.", + "longDescription": "This property shall contain the OEM extensions. All values for properties contained in this object shall conform to the Redfish Specification-described requirements." } }, "type": "object" }, "OemActions": { "additionalProperties": true, - "description": "The available OEM specific actions for this resource.", - "longDescription": "This type shall contain any additional OEM actions for this resource.", + "description": "The available OEM-specific actions for this Resource.", + "longDescription": "This type shall contain the available OEM-specific actions for this Resource.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -101,17 +102,17 @@ }, "Reset": { "additionalProperties": false, - "description": "This action is used to reset this switch.", - "longDescription": "This action shall perform a reset of this switch.", + "description": "This action resets this switch.", + "longDescription": "This action shall reset this switch.", "parameters": { "ResetType": { "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/ResetType", - "description": "The type of reset to be performed.", - "longDescription": "This parameter shall define the type of reset to be performed. The service may accept a request without the parameter and perform an implementation specific default reset." + "description": "The type of reset.", + "longDescription": "This parameter shall contain the type of reset. The Service may accept a request without this parameter and can complete an implementation-specific default reset." } }, "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -127,7 +128,7 @@ "properties": { "target": { "description": "Link to invoke action", - "format": "uri", + "format": "uri-reference", "type": "string" }, "title": { @@ -139,10 +140,10 @@ }, "Switch": { "additionalProperties": false, - "description": "Switch contains properties describing a simple fabric switch.", - "longDescription": "This resource shall be used to represent a simple switch for a Redfish implementation.", + "description": "The Switch schema contains properties that describe a fabric switch.", + "longDescription": "This Resource contains a switch for a Redfish implementation.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -157,25 +158,25 @@ }, "properties": { "@odata.context": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/context" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/context" }, "@odata.etag": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/etag" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/etag" }, "@odata.id": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/id" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/id" }, "@odata.type": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/type" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/type" }, "Actions": { "$ref": "#/definitions/Actions", - "description": "The available actions for this resource.", - "longDescription": "The Actions property shall contain the available actions for this resource." + "description": "The available actions for this Resource.", + "longDescription": "This property shall contain the available actions for this Resource." }, "AssetTag": { - "description": "The user assigned asset tag for this switch.", - "longDescription": "The value of this property shall be an identifying string used to track the drive for inventory purposes.", + "description": "The user-assigned asset tag for this switch.", + "longDescription": "This property shall contain the user-assigned asset tag, which is an identifying string that tracks the drive for inventory purposes.", "readonly": false, "type": [ "string", @@ -194,14 +195,24 @@ "readonly": true }, "DomainID": { - "description": "The Domain ID for this switch.", - "longDescription": "The value of this property shall have a scope of uniqueness within the fabric of which the switch is a member.", + "description": "The domain ID for this switch.", + "longDescription": "This property shall contain The domain ID for this switch. This property has a scope of uniqueness within the fabric of which the switch is a member.", "readonly": true, "type": [ "integer", "null" ] }, + "FirmwareVersion": { + "description": "The firmware version of this switch.", + "longDescription": "This property shall contain the firwmare version as defined by the manufacturer for the associated switch.", + "readonly": true, + "type": [ + "string", + "null" + ], + "versionAdded": "v1_2_0" + }, "Id": { "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Id", "readonly": true @@ -215,13 +226,13 @@ "type": "null" } ], - "description": "The state of the indicator LED, used to identify the switch.", - "longDescription": "This value of this property shall contain the indicator light state for the indicator light associated with this switch.", + "description": "The state of the indicator LED, which identifies the switch.", + "longDescription": "This property shall contain the state of the indicator light associated with this switch.", "readonly": false }, "IsManaged": { - "description": "This indicates whether the switch is in a managed or unmanaged state.", - "longDescription": "The value of this property shall be a boolean indicating whether this switch is in a managed or unmanaged state.", + "description": "An indication of whether the switch is in a managed or unmanaged state.", + "longDescription": "This property shall indicate whether this switch is in a managed or unmanaged state.", "readonly": false, "type": [ "boolean", @@ -230,30 +241,24 @@ }, "Links": { "$ref": "#/definitions/Links", - "description": "Contains references to other resources that are related to this resource.", - "longDescription": "The Links property, as described by the Redfish Specification, shall contain references to resources that are related to, but not contained by (subordinate to), this resource." + "description": "The links to other Resources that are related to this Resource.", + "longDescription": "The Redfish Specification-described Links Property shall contain links to Resources related to but not subordinate to this Resource." }, "Location": { "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Location", - "description": "The Location of the switch.", - "longDescription": "This property shall contain location information of the associated switch." + "description": "The location of the switch.", + "longDescription": "This property shall contain location information of the associated switch.", + "versionAdded": "v1_1_0" }, "LogServices": { - "anyOf": [ - { - "$ref": "http://redfish.dmtf.org/schemas/v1/LogServiceCollection.json#/definitions/LogServiceCollection" - }, - { - "type": "null" - } - ], - "description": "A reference to the collection of Log Services associated with this system.", - "longDescription": "The value of this property shall be a link to a collection of type LogServiceCollection.", + "$ref": "http://redfish.dmtf.org/schemas/v1/LogServiceCollection.json#/definitions/LogServiceCollection", + "description": "The link to the collection of Log Services associated with this switch.", + "longDescription": "This property shall contain a link to a Resource Collection of type LogServiceCollection.", "readonly": true }, "Manufacturer": { - "description": "This is the manufacturer of this switch.", - "longDescription": "The value of this property shall be the name of the organization responsible for producing the switch. This organization might be the entity from whom the switch is purchased, but this is not necessarily true.", + "description": "The manufacturer of this switch.", + "longDescription": "This property shall contain the name of the organization responsible for producing the switch. This organization might be the entity from which the switch is purchased, but this is not necessarily true.", "readonly": true, "type": [ "string", @@ -262,7 +267,7 @@ }, "Model": { "description": "The product model number of this switch.", - "longDescription": "This property shall indicate the model information as provided by the manufacturer of this switch.", + "longDescription": "This property shall contain the manufacturer-provided model information of this switch.", "readonly": true, "type": [ "string", @@ -275,12 +280,12 @@ }, "Oem": { "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem", - "description": "This is the manufacturer/provider specific extension moniker used to divide the Oem object into sections.", - "longDescription": "The value of this string shall be of the format for the reserved word *Oem*." + "description": "The OEM extension property.", + "longDescription": "This property shall contain the OEM extensions. All values for properties that this object contains shall conform to the Redfish Specification-described requirements." }, "PartNumber": { "description": "The part number for this switch.", - "longDescription": "The value of this property shall be a part number assigned by the organization that is responsible for producing or manufacturing the switch.", + "longDescription": "This property shall contain the manufacturer-provided part number for the switch.", "readonly": true, "type": [ "string", @@ -289,8 +294,8 @@ }, "Ports": { "$ref": "http://redfish.dmtf.org/schemas/v1/PortCollection.json#/definitions/PortCollection", - "description": "A collection of references to the ports for this switch.", - "longDescription": "The value of this property shall be a reference to the resources that this switch contains and shall reference a resource of type Port.", + "description": "The link to the collection ports for this switch.", + "longDescription": "This property shall contain a link to a Resource Collection of type PortCollection.", "readonly": true }, "PowerState": { @@ -302,8 +307,8 @@ "type": "null" } ], - "description": "This is the current power state of the switch.", - "longDescription": "The value of this property shall contain the power state of the switch.", + "description": "The current power state of the switch.", + "longDescription": "This property shall contain the power state of the switch.", "readonly": true }, "Redundancy": { @@ -312,15 +317,15 @@ "items": { "$ref": "http://redfish.dmtf.org/schemas/v1/Redundancy.json#/definitions/Redundancy" }, - "longDescription": "The values of the properties in this array shall be used to show how this switch is grouped with other switches for form redundancy sets.", + "longDescription": "This property shall contain an array that shows how this switch is grouped with other switches for form redundancy sets.", "type": "array" }, "Redundancy@odata.count": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/count" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/count" }, "SKU": { - "description": "This is the SKU for this switch.", - "longDescription": "The value of this property shall be the stock-keeping unit number for this switch.", + "description": "The SKU for this switch.", + "longDescription": "This property shall contain the SKU number for this switch.", "readonly": true, "type": [ "string", @@ -329,7 +334,7 @@ }, "SerialNumber": { "description": "The serial number for this switch.", - "longDescription": "The value of this property shall be a manufacturer-allocated number used to identify the switch.", + "longDescription": "This property shall contain a manufacturer-allocated number that identifies the switch.", "readonly": true, "type": [ "string", @@ -338,8 +343,8 @@ }, "Status": { "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Status", - "description": "This property describes the status and health of the resource and its children.", - "longDescription": "This property shall contain any status or health properties of the resource." + "description": "The status and health of the Resource and its subordinate or dependent Resources.", + "longDescription": "This property shall contain any status or health properties of the Resource." }, "SwitchType": { "anyOf": [ @@ -350,13 +355,13 @@ "type": "null" } ], - "description": "The protocol being sent over this switch.", - "longDescription": "The value of this property shall contain the type of switch being represented by this simple switch.", + "description": "The type of switch.", + "longDescription": "This property shall contain the type of switch.", "readonly": true }, "TotalSwitchWidth": { "description": "The total number of lanes, phys, or other physical transport links that this switch contains.", - "longDescription": "The value of this property shall be the number of physical transport lanes, phys, or other physical transport links that this switch contains. For PCIe, this shall be lane count.", + "longDescription": "This property shall contain the number of physical transport lanes, phys, or other physical transport links that this switch contains. For PCIe, this value shall be the lane count.", "readonly": true, "type": [ "integer", @@ -374,5 +379,6 @@ } }, "owningEntity": "DMTF", - "title": "#Switch.v1_1_1.Switch" + "release": "2019.2", + "title": "#Switch.v1_2_0.Switch" } \ No newline at end of file diff --git a/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/Task/Task.json b/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/Task/Task.json index f0c266ec..9253c44e 100644 --- a/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/Task/Task.json +++ b/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/Task/Task.json @@ -1,15 +1,15 @@ { - "$id": "http://redfish.dmtf.org/schemas/v1/Task.v1_4_0.json", + "$id": "http://redfish.dmtf.org/schemas/v1/Task.v1_4_2.json", "$ref": "#/definitions/Task", "$schema": "http://redfish.dmtf.org/schemas/v1/redfish-schema-v1.json", - "copyright": "Copyright 2014-2018 DMTF. For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright", + "copyright": "Copyright 2014-2019 DMTF. For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright", "definitions": { "Actions": { "additionalProperties": false, - "description": "The available actions for this resource.", - "longDescription": "This type shall contain the available actions for this resource.", + "description": "The available actions for this Resource.", + "longDescription": "This type shall contain the available actions for this Resource.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -25,8 +25,8 @@ "properties": { "Oem": { "$ref": "#/definitions/OemActions", - "description": "This property contains the available OEM specific actions for this resource.", - "longDescription": "This property shall contain any additional OEM actions for this resource.", + "description": "The available OEM-specific actions for this Resource.", + "longDescription": "This property shall contain the available OEM-specific actions for this Resource.", "versionAdded": "v1_1_0" } }, @@ -34,10 +34,10 @@ }, "OemActions": { "additionalProperties": true, - "description": "The available OEM specific actions for this resource.", - "longDescription": "This type shall contain any additional OEM actions for this resource.", + "description": "The available OEM-specific actions for this Resource.", + "longDescription": "This type shall contain the available OEM-specific actions for this Resource.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -56,9 +56,9 @@ "Payload": { "additionalProperties": false, "description": "The HTTP and JSON payload details for this Task.", - "longDescription": "This object shall contain information detailing the HTTP and JSON payload information for executing this Task.", + "longDescription": "This type shall contain information detailing the HTTP and JSON payload information for executing this Task.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -73,33 +73,33 @@ }, "properties": { "HttpHeaders": { - "description": "This represents the HTTP headers used in the operation of this Task.", + "description": "An array of HTTP headers that this task includes.", "items": { "type": "string" }, - "longDescription": "The value of this property shall be an array of HTTP headers used in the execution of this Task.", + "longDescription": "This property shall contain an array of HTTP headers that this task includes.", "readonly": true, "type": "array", "versionAdded": "v1_3_0" }, "HttpOperation": { - "description": "The HTTP operation to perform to execute this Task.", - "longDescription": "This property shall contain the HTTP operation to execute for this Task.", + "description": "The HTTP operation to perform to execute this task.", + "longDescription": "This property shall contain the HTTP operation to execute for this task.", "readonly": true, "type": "string", "versionAdded": "v1_3_0" }, "JsonBody": { - "description": "This property contains the JSON payload to use in the execution of this Task.", - "longDescription": "The value of this property shall be JSON formatted payload used for this Task.", + "description": "The JSON payload to use in the execution of this task.", + "longDescription": "This property shall contain JSON formatted payload used for this task.", "readonly": true, "type": "string", "versionAdded": "v1_3_0" }, "TargetUri": { "description": "The URI of the target for this task.", - "format": "uri", - "longDescription": "This property shall contain a URI referencing a location to be used as the target for an HTTP operation.", + "format": "uri-reference", + "longDescription": "This property shall contain a link to the location to use as the target for an HTTP operation.", "readonly": true, "type": "string", "versionAdded": "v1_3_0" @@ -109,10 +109,10 @@ }, "Task": { "additionalProperties": false, - "description": "This resource contains information about a specific Task scheduled by or being executed by a Redfish service's Task Service.", - "longDescription": "This resource shall be used to represent a task for a Redfish implementation.", + "description": "The Task schema contains information about a task that the Redfish Task Service schedules or executes. Tasks represent operations that take more time than a client typically wants to wait.", + "longDescription": "This Resource contains a Task for a Redfish implementation.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -127,21 +127,21 @@ }, "properties": { "@odata.context": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/context" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/context" }, "@odata.etag": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/etag" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/etag" }, "@odata.id": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/id" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/id" }, "@odata.type": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/type" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/type" }, "Actions": { "$ref": "#/definitions/Actions", - "description": "The available actions for this resource.", - "longDescription": "The Actions property shall contain the available actions for this resource.", + "description": "The available actions for this Resource.", + "longDescription": "This property shall contain the available actions for this Resource.", "versionAdded": "v1_1_0" }, "Description": { @@ -156,15 +156,15 @@ "readonly": true }, "EndTime": { - "description": "The date-time stamp that the task was last completed.", + "description": "The date and time when the task was completed. This property will only appear when the task is complete.", "format": "date-time", - "longDescription": "The value of this property shall indicate the time the task was completed.", + "longDescription": "This property shall indicate the date and time when the task was completed. This property shall not appear if the task is running or otherwise has not been completed. This property shall appear only if the TaskState is Completed, Killed, Cancelled, or Exception.", "readonly": true, "type": "string" }, "HidePayload": { - "description": "Indicates that the contents of the Payload should be hidden from view after the Task has been created. When set to True, the Payload object will not be returned on GET.", - "longDescription": "This property shall be set to True if the Payload object shall not be returned on GET operations, and set to False if the contents can be returned normally. If this property is not specified when the Task is created, the default value shall be False.", + "description": "An indication of whether the contents of the payload should be hidden from view after the task has been created. If `true`, responses do not return the payload. If `false`, responses return the payload. If this property is not present when the task is created, the default is `false`.", + "longDescription": "This property shall indicate whether the contents of the payload should be hidden from view after the task has been created. If `true`, responses shall not return the Payload property. If `false`, responses shall return the Payload property. If this property is not present when the task is created, the default is `false`.", "readonly": true, "type": "boolean", "versionAdded": "v1_3_0" @@ -174,11 +174,11 @@ "readonly": true }, "Messages": { - "description": "This is an array of messages associated with the task.", + "description": "An array of messages associated with the task.", "items": { "$ref": "http://redfish.dmtf.org/schemas/v1/Message.json#/definitions/Message" }, - "longDescription": "The value of this property shall be an array of messages associated with the task.", + "longDescription": "This property shall contain an array of messages associated with the task.", "type": "array" }, "Name": { @@ -187,18 +187,18 @@ }, "Oem": { "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem", - "description": "This is the manufacturer/provider specific extension moniker used to divide the Oem object into sections.", - "longDescription": "The value of this string shall be of the format for the reserved word *Oem*." + "description": "The OEM extension property.", + "longDescription": "This property shall contain the OEM extensions. All values for properties that this object contains shall conform to the Redfish Specification-described requirements." }, "Payload": { "$ref": "#/definitions/Payload", "description": "The HTTP and JSON payload details for this task.", - "longDescription": "This object shall contain information detailing the HTTP and JSON payload information for executing this task. This object shall not be included in the response if the HidePayload property is set to True.", + "longDescription": "This object shall contain information detailing the HTTP and JSON payload information for executing this task. This object shall not be included in the response if the HidePayload property is `true`.", "versionAdded": "v1_3_0" }, "PercentComplete": { - "description": "The completion percentage of this Task.", - "longDescription": "The value of this property shall indicate the completion progress of the task, reported in percent of completion. If the task has not been started, the value shall be zero.", + "description": "The completion percentage of this task.", + "longDescription": "This property shall indicate the completion progress of the task, reported in percent of completion. If the task has not been started, the value shall be zero.", "readonly": true, "type": [ "integer", @@ -208,15 +208,15 @@ "versionAdded": "v1_4_0" }, "StartTime": { - "description": "The date-time stamp that the task was last started.", + "description": "The date and time when the task was started.", "format": "date-time", - "longDescription": "The value of this property shall indicate the time the task was started.", + "longDescription": "This property shall indicate the date and time when the task was started.", "readonly": true, "type": "string" }, "TaskMonitor": { "description": "The URI of the Task Monitor for this task.", - "format": "uri", + "format": "uri-reference", "longDescription": "This property shall contain a URI to Task Monitor as defined in the Redfish Specification.", "readonly": true, "type": "string", @@ -225,13 +225,13 @@ "TaskState": { "$ref": "#/definitions/TaskState", "description": "The state of the task.", - "longDescription": "The value of this property shall indicate the state of the task. New shall be used to indicate that the task is a new task which has just been instantiated and is in the initial state and indicates it has never been started. Starting shall be used to indicate that the task is moving from the New, Suspended, or Service states into the Running state. Running shall be used to indicate that the Task is running. Suspended shall be used to indicate that the Task is stopped (e.g., by a user), but can be restarted in a seamless manner. Interrupted shall be used to indicate that the Task was interrupted (e.g., by a server crash) in the middle of processing, and the user should either re-run/restart the Task. Pending shall be used to indicate that the Task has been queued and will be scheduled for processing as soon as resources are available to handle the request. Stopping shall be used to indicate that the Task is in the process of moving to a Completed, Killed, or Exception state. Completed shall be used to indicate that the task has completed normally. Killed shall be used to indicate that the task has been stopped by a Kill state change request (non-graceful shutdown). Exception shall be used to indicate that the Task is in an abnormal state that might be indicative of an error condition. Service shall be used to indicate that the Task is in a state that supports problem discovery, or resolution, or both. This state is used when a corrective action is possible.", + "longDescription": "This property shall indicate the state of the task.", "readonly": true }, "TaskStatus": { "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Health", - "description": "This is the completion status of the task.", - "longDescription": "The value of this property shall be the completion status of the task, as defined in the Status section of the Redfish specification and shall not be set until the task has completed.", + "description": "The completion status of the task.", + "longDescription": "This property shall contain the completion status of the task, as defined in the Status section of the Redfish Specification and shall not be set until the task completes.", "readonly": true } }, @@ -260,12 +260,12 @@ "Cancelled" ], "enumDeprecated": { - "Killed": "This value has been deprecated and is being replaced by the value Cancelled which has more determinate semantics." + "Killed": "This value has been deprecated and is being replaced by the Cancelled value, which has more determinate semantics." }, "enumDescriptions": { "Cancelled": "Task has been cancelled by an operator or internal process.", "Cancelling": "Task is in the process of being cancelled.", - "Completed": "Task has completed.", + "Completed": "Task was completed.", "Exception": "Task has stopped due to an exception condition.", "Interrupted": "Task has been interrupted.", "Killed": "Task was terminated.", @@ -278,19 +278,19 @@ "Suspended": "Task has been suspended." }, "enumLongDescriptions": { - "Cancelled": "This value shall represent that the operation was cancelled either through a Delete on a Task Monitor or Task Resource or by an internal process.", - "Cancelling": "This value shall represent that the operation is in the process of being cancelled.", - "Completed": "This value shall represent that the operation is complete and completed sucessfully or with warnings.", - "Exception": "This value shall represent that the operation is complete and completed with errors.", - "Interrupted": "This value shall represent that the operation has been interrupted but is expected to restart and is therefore not complete.", - "Killed": "This value shall represent that the operation is complete because the task was killed by an operator.", - "New": "This value shall represent that this task is newly created but the operation has not yet started.", - "Pending": "This value shall represent that the operation is pending some condition and has not yet begun to execute.", - "Running": "This value shall represent that the operation is executing.", - "Service": "This value shall represent that the operation is now running as a service and expected to continue operation until stopped or killed.", - "Starting": "This value shall represent that the operation is starting.", - "Stopping": "This value shall represent that the operation is stopping but is not yet complete.", - "Suspended": "This value shall represent that the operation has been suspended but is expected to restart and is therefore not complete." + "Cancelled": "This value shall represent that either a DELETE operation on a Task Monitor or Task Resource or by an internal process cancelled the task.", + "Cancelling": "This value shall represent that the task is in the process of being cancelled.", + "Completed": "This value shall represent that the task completed sucessfully or with warnings.", + "Exception": "This value shall represent that the task completed with errors.", + "Interrupted": "This value shall represent that the task has been interrupted but is expected to restart and is therefore not complete.", + "Killed": "This value shall represent that the task is complete because an operator killed it.", + "New": "This value shall represent that the task is newly created, but has not started.", + "Pending": "This value shall represent that the task is pending some condition and has not yet begun to execute.", + "Running": "This value shall represent that the task is executing.", + "Service": "This value shall represent that the task is now running as a service and expected to continue operation until stopped or killed.", + "Starting": "This value shall represent that the task is starting.", + "Stopping": "This value shall represent that the task is stopping but is not yet complete.", + "Suspended": "This value shall represent that the task has been suspended but is expected to restart and is therefore not complete." }, "enumVersionAdded": { "Cancelled": "v1_2_0", @@ -304,5 +304,5 @@ }, "owningEntity": "DMTF", "release": "2018.3", - "title": "#Task.v1_4_0.Task" + "title": "#Task.v1_4_2.Task" } \ No newline at end of file diff --git a/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/TaskService/TaskService.json b/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/TaskService/TaskService.json index c1685f58..2ce0c353 100644 --- a/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/TaskService/TaskService.json +++ b/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/TaskService/TaskService.json @@ -1,14 +1,15 @@ { + "$id": "http://redfish.dmtf.org/schemas/v1/TaskService.v1_1_4.json", "$ref": "#/definitions/TaskService", "$schema": "http://redfish.dmtf.org/schemas/v1/redfish-schema-v1.json", - "copyright": "Copyright 2014-2018 DMTF. For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright", + "copyright": "Copyright 2014-2019 DMTF. For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright", "definitions": { "Actions": { "additionalProperties": false, - "description": "The available actions for this resource.", - "longDescription": "This type shall contain the available actions for this resource.", + "description": "The available actions for this Resource.", + "longDescription": "This type shall contain the available actions for this Resource.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -24,18 +25,19 @@ "properties": { "Oem": { "$ref": "#/definitions/OemActions", - "description": "This property contains the available OEM specific actions for this resource.", - "longDescription": "This property shall contain any additional OEM actions for this resource." + "description": "The available OEM-specific actions for this Resource.", + "longDescription": "This property shall contain the available OEM-specific actions for this Resource.", + "versionAdded": "v1_1_0" } }, "type": "object" }, "OemActions": { "additionalProperties": true, - "description": "The available OEM specific actions for this resource.", - "longDescription": "This type shall contain any additional OEM actions for this resource.", + "description": "The available OEM-specific actions for this Resource.", + "longDescription": "This type shall contain the available OEM-specific actions for this Resource.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -64,10 +66,10 @@ }, "TaskService": { "additionalProperties": false, - "description": "This is the schema definition for the Task Service. It represents the properties for the service itself and has links to the actual list of tasks.", - "longDescription": "This resource shall be used to represent a task service for a Redfish implementation.", + "description": "The TaskService schema describes a Task Service that enables management of long-duration operations, includes the properties for the Task Service itself, and has links to the actual Resource Collection of Tasks.", + "longDescription": "This Resource contains a Task Service for a Redfish implementation.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -82,32 +84,33 @@ }, "properties": { "@odata.context": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/context" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/context" }, "@odata.etag": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/etag" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/etag" }, "@odata.id": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/id" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/id" }, "@odata.type": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/type" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/type" }, "Actions": { "$ref": "#/definitions/Actions", - "description": "The available actions for this resource.", - "longDescription": "The Actions property shall contain the available actions for this resource." + "description": "The available actions for this Resource.", + "longDescription": "This property shall contain the available actions for this Resource.", + "versionAdded": "v1_1_0" }, "CompletedTaskOverWritePolicy": { "$ref": "#/definitions/OverWritePolicy", - "description": "Overwrite policy of completed tasks.", - "longDescription": "The value of this property shall indicate how completed tasks are handled should the task service need to track more tasks.", + "description": "The overwrite policy for completed tasks. This property indicates whether the Task Service overwrites completed task information.", + "longDescription": "This property shall indicate how the Task Service shall handle completed tasks if the service must track more tasks. This property indicates whether the Task Service overwrites completed task information.", "readonly": true }, "DateTime": { - "description": "The current DateTime (with offset) setting that the task service is using.", + "description": "The current date and time, with UTC offset, setting that the Task Service uses.", "format": "date-time", - "longDescription": "The value of this property shall represent the current DateTime value for the TaskService, with offset from UTC, in Redfish Timestamp format.", + "longDescription": "This property shall represent the current DateTime value for the Task Service, with UTC offset, in Redfish Timestamp format.", "readonly": true, "type": [ "string", @@ -130,8 +133,8 @@ "readonly": true }, "LifeCycleEventOnTaskStateChange": { - "description": "Send an Event upon Task State Change.", - "longDescription": "The value of this property, if set to true, shall indicate that the service shall send a Life cycle event to Event Destinations Subscriptions registered for such events upon change of task state. Life cycle events are defined in the Eventing section of the Redfish Specification.", + "description": "An indication of whether a task state change sends an event.", + "longDescription": "This property shall indicate whether a task state change sends an event. The Eventing section of the Redfish Specification defines life-cycle events.", "readonly": true, "type": "boolean" }, @@ -141,12 +144,12 @@ }, "Oem": { "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem", - "description": "This is the manufacturer/provider specific extension moniker used to divide the Oem object into sections.", - "longDescription": "The value of this string shall be of the format for the reserved word *Oem*." + "description": "The OEM extension property.", + "longDescription": "This property shall contain the OEM extensions. All values for properties that this object contains shall conform to the Redfish Specification-described requirements." }, "ServiceEnabled": { - "description": "This indicates whether this service is enabled.", - "longDescription": "The value of this property shall be a boolean indicating whether this service is enabled.", + "description": "An indication of whether this service is enabled.", + "longDescription": "This property shall indicate whether this service is enabled.", "readonly": false, "type": [ "boolean", @@ -155,13 +158,13 @@ }, "Status": { "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Status", - "description": "This property describes the status and health of the resource and its children.", - "longDescription": "This property shall contain any status or health properties of the resource." + "description": "The status and health of the Resource and its subordinate or dependent Resources.", + "longDescription": "This property shall contain any status or health properties of the Resource." }, "Tasks": { "$ref": "http://redfish.dmtf.org/schemas/v1/TaskCollection.json#/definitions/TaskCollection", - "description": "References to the Tasks collection.", - "longDescription": "The value of this property shall be a link to a resource of type TaskCollection.", + "description": "The links to the Tasks collection.", + "longDescription": "This property shall contain a link to a Resource of type TaskCollection.", "readonly": true } }, @@ -175,5 +178,6 @@ } }, "owningEntity": "DMTF", - "title": "#TaskService.v1_1_2.TaskService" + "release": "2017.1", + "title": "#TaskService.v1_1_4.TaskService" } \ No newline at end of file diff --git a/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/TelemetryService/TelemetryService.json b/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/TelemetryService/TelemetryService.json index 1e4ae88e..783e010b 100644 --- a/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/TelemetryService/TelemetryService.json +++ b/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/TelemetryService/TelemetryService.json @@ -1,15 +1,15 @@ { - "$id": "http://redfish.dmtf.org/schemas/v1/TelemetryService.v1_1_0.json", + "$id": "http://redfish.dmtf.org/schemas/v1/TelemetryService.v1_1_2.json", "$ref": "#/definitions/TelemetryService", "$schema": "http://redfish.dmtf.org/schemas/v1/redfish-schema-v1.json", - "copyright": "Copyright 2014-2018 DMTF. For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright", + "copyright": "Copyright 2014-2019 DMTF. For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright", "definitions": { "Actions": { "additionalProperties": false, - "description": "The available actions for this resource.", - "longDescription": "This type shall contain the available actions for this resource.", + "description": "The available actions for this Resource.", + "longDescription": "This type shall contain the available actions for this Resource.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -28,8 +28,8 @@ }, "Oem": { "$ref": "#/definitions/OemActions", - "description": "This property contains the available OEM specific actions for this resource.", - "longDescription": "This property shall contain any additional OEM actions for this resource." + "description": "The available OEM-specific actions for this Resource.", + "longDescription": "This property shall contain the available OEM-specific actions for this Resource." } }, "type": "object" @@ -56,7 +56,7 @@ "description": "A metric value.", "longDescription": "A metric value in the context of a Metric.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -72,14 +72,14 @@ "properties": { "MetricDefinition": { "$ref": "http://redfish.dmtf.org/schemas/v1/MetricDefinition.json#/definitions/MetricDefinition", - "description": "A link to the Metric Definition.", - "longDescription": "The value shall be reference to the Metric Definition resource that describes what this Metric Report is capturing.", + "description": "The link to the metric.", + "longDescription": "The link to the Metric Definition Resource that describes what this metric report captures.", "readonly": true, "versionAdded": "v1_1_0" }, "MetricId": { "description": "The metric definitions identifier for this metric.", - "longDescription": "The value shall be the same as the Id property of the source metric within the associated MetricDefinition.", + "longDescription": "This property shall contain the same as the Id property of the source metric within the associated MetricDefinition.", "readonly": true, "type": [ "string", @@ -89,8 +89,8 @@ }, "MetricProperty": { "description": "The URI for the property from which this metric is derived.", - "format": "uri", - "longDescription": "The value shall be URI to the a property following the JSON fragment notation, as defined by RFC6901, to identify an individual property in a Redfish resource.", + "format": "uri-reference", + "longDescription": "This property shall contain the URI to the property, which follows the RFC6901-defined JSON fragment notation, to identify an individual property in a Redfish Resource.", "readonly": true, "type": [ "string", @@ -99,8 +99,8 @@ "versionAdded": "v1_1_0" }, "MetricValue": { - "description": "The value identifies this resource.", - "longDescription": "The value of the metric represented as a string.", + "description": "The metric value, as a string.", + "longDescription": "This property shall contain the metric value, as a string.", "readonly": true, "type": [ "string", @@ -109,9 +109,9 @@ "versionAdded": "v1_1_0" }, "Timestamp": { - "description": "The time when the value of the metric is obtained. A management application may establish a time series of metric data by retrieving the instances of metric value and sorting them according to their Timestamp.", + "description": "The time when the metric value is obtained. A management application may establish a time series of metric data by retrieving the instances of metric value and sorting them according to their Timestamp.", "format": "date-time", - "longDescription": "The value shall time when the metric value was obtained. Note that this may be different from the time when this instance is created.", + "longDescription": "This property shall contain the time when the metric value was obtained. Note that this may be different from the time when this instance is created.", "readonly": true, "type": [ "string", @@ -124,10 +124,10 @@ }, "OemActions": { "additionalProperties": true, - "description": "The available OEM specific actions for this resource.", - "longDescription": "This type shall contain any additional OEM actions for this resource.", + "description": "The available OEM-specific actions for this Resource.", + "longDescription": "This type shall contain the available OEM-specific actions for this Resource.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -145,8 +145,8 @@ }, "SubmitTestMetricReport": { "additionalProperties": false, - "description": "This action is used to generate a metric report.", - "longDescription": "This action shall cause the event service to immediately generate the metric report, as an Alert Event. This message should then be sent to any appropriate ListenerDestination targets.", + "description": "This action generates a metric report.", + "longDescription": "This action shall cause the Event Service to immediately generate the metric report as an alert event. Then, this message should be sent to any appropriate event destinations.", "parameters": { "GeneratedMetricReportValues": { "description": "The content of the MetricReportValues in the generated metric report.", @@ -159,21 +159,21 @@ "versionAdded": "v1_1_0" }, "MetricReportName": { - "description": "The Name property of the metric report in generated metric report.", - "longDescription": "This parameter shall be the value of the Name property in the generated metric report.", + "description": "The name of the metric report in generated metric report.", + "longDescription": "This parameter shall contain the name of the generated metric report.", "requiredParameter": true, "type": "string" }, "MetricReportValues": { - "deprecated": "This property has been Deprecated in favor of using the property 'GeneratedMetricReportValues'.", - "description": "The content of MetricReportValues array in generated metric report.", + "deprecated": "This property has been deprecated in favor of using the property 'GeneratedMetricReportValues'.", + "description": "The contents of MetricReportValues array in the generated metric report.", "longDescription": "This parameter shall contain the contents of the MetricReportValues array property in the generated metric report.", "type": "string", "versionDeprecated": "v1_1_0" } }, "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -189,7 +189,7 @@ "properties": { "target": { "description": "Link to invoke action", - "format": "uri", + "format": "uri-reference", "type": "string" }, "title": { @@ -201,10 +201,10 @@ }, "TelemetryService": { "additionalProperties": false, - "description": "This is the schema definition for the Metrics Service. It represents the properties for the service itself and has links to collections of metric definitions and metric report definitions.", - "longDescription": "This resource shall be used to represent an Metrics Service for a Redfish implementation. It represents the properties that affect the service itself.", + "description": "The TelemetryService schema describes a Telemetry Service. The Telemetry Service is used to for collecting and reporting metric data within the Redfish Service.", + "longDescription": "This Resource contains a Telemetry Service for a Redfish implementation.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -219,21 +219,21 @@ }, "properties": { "@odata.context": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/context" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/context" }, "@odata.etag": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/etag" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/etag" }, "@odata.id": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/id" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/id" }, "@odata.type": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/type" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/type" }, "Actions": { "$ref": "#/definitions/Actions", - "description": "The available actions for this resource.", - "longDescription": "The Actions property shall contain the available actions for this resource." + "description": "The available actions for this Resource.", + "longDescription": "This property shall contain the available actions for this Resource." }, "Description": { "anyOf": [ @@ -252,13 +252,13 @@ }, "LogService": { "$ref": "http://redfish.dmtf.org/schemas/v1/LogService.json#/definitions/LogService", - "description": "This is a reference to a Log Service used by the Telemetry Service.", - "longDescription": "The value of this property shall contain a reference to a LogService for the use by this Telemetry Service.", + "description": "The link to a Log Service that the Telemetry Service uses. This service may be a dedicated Log Service or a pointer a Log Service under another entity, such as Manager.", + "longDescription": "This property shall contain a link to a Log Service that this Telemetry Service uses.", "readonly": true }, "MaxReports": { - "description": "The maximum number of metric reports supported by this service.", - "longDescription": "The value shall be the maximum number of metric reports supported by this service.", + "description": "The maximum number of metric reports that this service supports.", + "longDescription": "This property shall contain the maximum number of metric reports that this service supports.", "readonly": true, "type": [ "integer", @@ -267,25 +267,25 @@ }, "MetricDefinitions": { "$ref": "http://redfish.dmtf.org/schemas/v1/MetricDefinitionCollection.json#/definitions/MetricDefinitionCollection", - "description": "A link to the collection of Metric Definitions.", - "longDescription": "The entries of shall be resources of type MetricDefinitionCollection.", + "description": "The link to the collection of metric definitions.", + "longDescription": "This property shall contain a link to a Resource Collection of type MetricDefinitionCollection.", "readonly": true }, "MetricReportDefinitions": { "$ref": "http://redfish.dmtf.org/schemas/v1/MetricReportDefinitionCollection.json#/definitions/MetricReportDefinitionCollection", - "description": "A link to the collection of Metric Report Definitions.", - "longDescription": "The value shall be a link to a resource of type MetricReportDefinitionCollection.", + "description": "The link to the collection of metric report definitions.", + "longDescription": "This property shall contain a link to a Resource Collection of type MetricReportDefinitionCollection.", "readonly": true }, "MetricReports": { "$ref": "http://redfish.dmtf.org/schemas/v1/MetricReportCollection.json#/definitions/MetricReportCollection", - "description": "A link to the collection of Metric Reports.", - "longDescription": "The value shall be a link to a resource of type MetricReportCollection.", + "description": "The link to the collection of metric reports.", + "longDescription": "This property shall contain a link to a Resource Collection of type MetricReportCollection.", "readonly": true }, "MinCollectionInterval": { - "description": "The minimum time interval between collections supported by this service.", - "longDescription": "The value shall be the minimum time interval between collections supported by this service. The value shall conform to the Duration format.", + "description": "The minimum time interval between gathering metric data that this service allows.", + "longDescription": "This property shall contain the minimum time interval between gathering metric data that this service allows.", "pattern": "-?P(\\d+D)?(T(\\d+H)?(\\d+M)?(\\d+(.\\d+)?S)?)?", "readonly": true, "type": [ @@ -299,13 +299,13 @@ }, "Oem": { "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem", - "description": "This is the manufacturer/provider specific extension moniker used to divide the Oem object into sections.", - "longDescription": "The value of this string shall be of the format for the reserved word *Oem*." + "description": "The OEM extension property.", + "longDescription": "This property shall contain the OEM extensions. All values for properties that this object contains shall conform to the Redfish Specification-described requirements." }, "Status": { "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Status", - "description": "This property describes the status and health of the resource and its children.", - "longDescription": "This property shall contain any status or health properties of the resource." + "description": "The status and health of the Resource and its subordinate or dependent Resources.", + "longDescription": "This property shall contain any status or health properties of the Resource." }, "SupportedCollectionFunctions": { "description": "The functions that can be performed over each metric.", @@ -319,14 +319,14 @@ } ] }, - "longDescription": "The value shall define the function to apply over the collection duration.", + "longDescription": "This property shall contain the function to apply over the collection duration.", "readonly": false, "type": "array" }, "Triggers": { "$ref": "http://redfish.dmtf.org/schemas/v1/TriggersCollection.json#/definitions/TriggersCollection", - "description": "A link to the collection of Triggers, which apply to metrics.", - "longDescription": "The value shall be a link to a resource of type TriggersCollection.", + "description": "The link to the collection of triggers, which apply to metrics.", + "longDescription": "This property shall contain a link to a Resource Collection of type TriggersCollection.", "readonly": true } }, @@ -341,5 +341,5 @@ }, "owningEntity": "DMTF", "release": "2018.3", - "title": "#TelemetryService.v1_1_0.TelemetryService" + "title": "#TelemetryService.v1_1_2.TelemetryService" } \ No newline at end of file diff --git a/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/Thermal/Thermal.json b/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/Thermal/Thermal.json index 4fb9acfa..8da51ffb 100644 --- a/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/Thermal/Thermal.json +++ b/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/Thermal/Thermal.json @@ -1,13 +1,13 @@ { - "$id": "http://redfish.dmtf.org/schemas/v1/Thermal.v1_5_1.json", + "$id": "http://redfish.dmtf.org/schemas/v1/Thermal.v1_5_3.json", "$ref": "#/definitions/Thermal", "$schema": "http://redfish.dmtf.org/schemas/v1/redfish-schema-v1.json", - "copyright": "Copyright 2014-2018 DMTF. For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright", + "copyright": "Copyright 2014-2019 DMTF. For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright", "definitions": { "Fan": { "additionalProperties": false, "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -22,33 +22,35 @@ }, "properties": { "@odata.id": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/id" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/id" }, "Actions": { "$ref": "#/definitions/FanActions", - "description": "The available actions for this resource.", - "longDescription": "The Actions property shall contain the available actions for this resource.", + "description": "The available actions for this Resource.", + "longDescription": "This property shall contain the available actions for this Resource.", "versionAdded": "v1_3_0" }, "Assembly": { "$ref": "http://redfish.dmtf.org/schemas/v1/Assembly.json#/definitions/Assembly", - "description": "A reference to the Assembly resource associated with this fan.", - "longDescription": "The value of this property shall be a link to a resource of type Assembly.", + "description": "The link to the assembly associated with this fan.", + "longDescription": "This property shall contain a link to a Resource of type Assembly.", "readonly": true, "versionAdded": "v1_4_0" }, "FanName": { - "description": "Name of the fan.", - "longDescription": "The value of this property shall be the name of the fan.", + "deprecated": "This property has been deprecated in favor of the Name property.", + "description": "The name of the fan.", + "longDescription": "This property shall contain the name of the fan.", "readonly": true, "type": [ "string", "null" - ] + ], + "versionDeprecated": "v1_1_0" }, "HotPluggable": { - "description": "Indicates if this device can be inserted or removed while the equipment is in operation.", - "longDescription": "The value of this property shall indicate whether the device can be inserted or removed while the underlying equipment otherwise remains in its current operational state. Devices indicated as hot-pluggable shall allow the device to become operable without altering the operational state of the underlying equipment. Devices that cannot be inserted or removed from equipment in operation, or devices that cannot become operable without affecting the operational state of that equipment, shall be indicated as not hot-pluggable.", + "description": "An indication of whether this device can be inserted or removed while the equipment is in operation.", + "longDescription": "This property shall indicate whether the device can be inserted or removed while the underlying equipment otherwise remains in its current operational state. Hot-pluggable devices can become operable without altering the operational state of the underlying equipment. Devices that cannot be inserted or removed from equipment in operation, or devices that cannot become operable without affecting the operational state of that equipment, shall be not hot-pluggable.", "readonly": true, "type": [ "boolean", @@ -65,20 +67,20 @@ "type": "null" } ], - "description": "The state of the indicator LED, used to identify this Fan.", - "longDescription": "The value of this property shall contain the indicator light state for the indicator light associated with this fan.", + "description": "The state of the indicator LED, which identifies this fan.", + "longDescription": "This property shall contain the state of the indicator light associated with this fan.", "readonly": false, "versionAdded": "v1_2_0" }, "Location": { "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Location", - "description": "The Location of the fan.", + "description": "The location of the fan.", "longDescription": "This property shall contain location information of the associated fan.", "versionAdded": "v1_4_0" }, "LowerThresholdCritical": { - "description": "Below normal range but not yet fatal.", - "longDescription": "The value of this property shall indicate the Reading is below the normal range but is not yet fatal. The units shall be the same units as the related Reading property.", + "description": "The value at which the reading is below normal range but not yet fatal.", + "longDescription": "This property shall contain the value at which the Reading property is below the normal range but is not yet fatal. The value of the property shall use the same units as the Reading property.", "readonly": true, "type": [ "integer", @@ -86,8 +88,8 @@ ] }, "LowerThresholdFatal": { - "description": "Below normal range and is fatal.", - "longDescription": "The value of this property shall indicate the Reading is below the normal range and is fatal. The units shall be the same units as the related Reading property.", + "description": "The value at which the reading is below normal range and fatal.", + "longDescription": "This property shall contain the value at which the Reading property is below the normal range and is fatal. The value of the property shall use the same units as the Reading property.", "readonly": true, "type": [ "integer", @@ -95,8 +97,8 @@ ] }, "LowerThresholdNonCritical": { - "description": "Below normal range.", - "longDescription": "The value of this property shall indicate the Reading is below the normal range but is not critical. The units shall be the same units as the related Reading property.", + "description": "The value at which the reading is below normal range.", + "longDescription": "This property shall contain the value at which the Reading property is below normal range. The value of the property shall use the same units as the Reading property.", "readonly": true, "type": [ "integer", @@ -104,8 +106,8 @@ ] }, "Manufacturer": { - "description": "This is the manufacturer of this Fan.", - "longDescription": "The value of this property shall be the name of the organization responsible for producing the fan. This organization might be the entity from whom the fan is purchased, but this is not necessarily true.", + "description": "The manufacturer of this fan.", + "longDescription": "This property shall contain the name of the organization responsible for producing the fan. This organization might be the entity from whom the fan is purchased, but this is not necessarily true.", "readonly": true, "type": [ "string", @@ -114,8 +116,8 @@ "versionAdded": "v1_2_0" }, "MaxReadingRange": { - "description": "Maximum value for Reading.", - "longDescription": "The value of this property shall indicate the highest possible value for Reading. The units shall be the same units as the related Reading property.", + "description": "Maximum value for this sensor.", + "longDescription": "This property shall indicate the highest possible value for the Reading property. The value of the property shall use the same units as the Reading property.", "readonly": true, "type": [ "integer", @@ -123,14 +125,14 @@ ] }, "MemberId": { - "description": "This is the identifier for the member within the collection.", - "longDescription": "The value of this string shall uniquely identify the member within the collection.", + "description": "The identifier for the member within the collection.", + "longDescription": "This property shall uniquely identify the member within the collection. For services supporting Redfish v1.6 or higher, this value shall contain the zero-based array index.", "readonly": true, "type": "string" }, "MinReadingRange": { - "description": "Minimum value for Reading.", - "longDescription": "The value of this property shall indicate the lowest possible value for Reading. The units shall be the same units as the related Reading property.", + "description": "Minimum value for this sensor.", + "longDescription": "This property shall indicate the lowest possible value for the Reading property. The value of the property shall use the same units as the Reading property.", "readonly": true, "type": [ "integer", @@ -138,7 +140,7 @@ ] }, "Model": { - "description": "The model number for this Fan.", + "description": "The model number for this fan.", "longDescription": "This property shall contain the model information as defined by the manufacturer for the associated fan.", "readonly": true, "type": [ @@ -149,7 +151,7 @@ }, "Name": { "description": "Name of the fan.", - "longDescription": "The value of this property shall be the name of the fan.", + "longDescription": "This property shall contain the name of the fan.", "readonly": true, "type": [ "string", @@ -159,11 +161,11 @@ }, "Oem": { "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem", - "description": "This is the manufacturer/provider specific extension moniker used to divide the Oem object into sections.", - "longDescription": "The value of this string shall be of the format for the reserved word *Oem*." + "description": "The OEM extension property.", + "longDescription": "This property shall contain the OEM extensions. All values for properties that this object contains shall conform to the Redfish Specification-described requirements." }, "PartNumber": { - "description": "The part number for this Fan.", + "description": "The part number for this fan.", "longDescription": "This property shall contain the part number as defined by the manufacturer for the associated fan.", "readonly": true, "type": [ @@ -174,13 +176,13 @@ }, "PhysicalContext": { "$ref": "http://redfish.dmtf.org/schemas/v1/PhysicalContext.json#/definitions/PhysicalContext", - "description": "Describes the area or device associated with this fan.", - "longDescription": "The value of this property shall be a description of the affected device or region within the chassis to which this fan is associated.", + "description": "The area or device associated with this fan.", + "longDescription": "This property shall contain a description of the affected device or region within the chassis with which this fan is associated.", "readonly": true }, "Reading": { - "description": "Current fan speed.", - "longDescription": "The value of this property shall be the current value of the fan sensor's reading.", + "description": "The fan speed.", + "longDescription": "This property shall contain the fan sensor reading.", "readonly": true, "type": [ "integer", @@ -196,37 +198,37 @@ "type": "null" } ], - "description": "Units in which the reading and thresholds are measured.", - "longDescription": "The value of this property shall be the units in which the fan's reading and thresholds are measured.", + "description": "The units in which the fan reading and thresholds are measured.", + "longDescription": "This property shall contain the units in which the fan reading and thresholds are measured.", "readonly": true, "versionAdded": "v1_0_1" }, "Redundancy": { - "description": "This structure is used to show redundancy for fans. The Component ids will reference the members of the redundancy groups.", + "description": "The set of redundancy groups for this fan.", "items": { "$ref": "http://redfish.dmtf.org/schemas/v1/Redundancy.json#/definitions/Redundancy" }, - "longDescription": "The values of the properties in this array shall be used to show redundancy for fans and other elements in this resource. The use of IDs within these arrays shall reference the members of the redundancy groups.", + "longDescription": "This property shall contain an array of links to the redundancy groups to which this fan belongs.", "type": "array" }, "Redundancy@odata.count": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/count" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/count" }, "RelatedItem": { - "description": "The ID(s) of the resources serviced with this fan.", + "description": "An array of IDs of the Resources that this fan services.", "items": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/idRef" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/idRef" }, - "longDescription": "The value of this property shall be an array of IDs containing pointers consistent with JSON pointer syntax to the resource that are being serviced by this fan.", + "longDescription": "This property shall contain an array of IDs for pointers consistent with JSON Pointer syntax to the Resources that this fan services.", "readonly": true, "type": "array" }, "RelatedItem@odata.count": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/count" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/count" }, "SensorNumber": { - "description": "A numerical identifier to represent the fan speed sensor.", - "longDescription": "The value of this property shall be a numerical identifier for this fan speed sensor that is unique within this resource.", + "description": "The numerical identifier for this fan speed sensor.", + "longDescription": "This property shall contain a numerical identifier for this fan speed sensor that is unique within this Resource.", "readonly": true, "type": [ "integer", @@ -235,7 +237,7 @@ "versionAdded": "v1_5_0" }, "SerialNumber": { - "description": "The serial number for this Fan.", + "description": "The serial number for this fan.", "longDescription": "This property shall contain the serial number as defined by the manufacturer for the associated fan.", "readonly": true, "type": [ @@ -245,7 +247,7 @@ "versionAdded": "v1_2_0" }, "SparePartNumber": { - "description": "The spare part number for this Fan.", + "description": "The spare part number for this fan.", "longDescription": "This property shall contain the spare or replacement part number as defined by the manufacturer for the associated fan.", "readonly": true, "type": [ @@ -256,12 +258,12 @@ }, "Status": { "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Status", - "description": "This property describes the status and health of the resource and its children.", - "longDescription": "This property shall contain any status or health properties of the resource." + "description": "The status and health of the Resource and its subordinate or dependent Resources.", + "longDescription": "This property shall contain any status or health properties of the Resource." }, "UpperThresholdCritical": { - "description": "Above normal range but not yet fatal.", - "longDescription": "The value of this property shall indicate the Reading is above the normal range but is not yet fatal. The units shall be the same units as the related Reading property.", + "description": "The value at which the reading is above normal range but not yet fatal.", + "longDescription": "This property shall contain the value at which the Reading property is above the normal range but is not yet fatal. The value of the property shall use the same units as the Reading property.", "readonly": true, "type": [ "integer", @@ -269,8 +271,8 @@ ] }, "UpperThresholdFatal": { - "description": "Above normal range and is fatal.", - "longDescription": "The value of this property shall indicate the Reading is above the normal range and is fatal. The units shall be the same units as the related Reading property.", + "description": "The value at which the reading is above normal range and fatal.", + "longDescription": "This property shall contain the value at which the Reading property is above the normal range and is fatal. The value of the property shall use the same units as the Reading property.", "readonly": true, "type": [ "integer", @@ -278,8 +280,8 @@ ] }, "UpperThresholdNonCritical": { - "description": "Above normal range.", - "longDescription": "The value of this property shall indicate the Reading is above the normal range but is not critical. The units shall be the same units as the related Reading property.", + "description": "The value at which the reading is above normal range.", + "longDescription": "This property shall contain the value at which the Reading property is above the normal range. The value of the property shall use the same units as the Reading property.", "readonly": true, "type": [ "integer", @@ -295,10 +297,10 @@ }, "FanActions": { "additionalProperties": false, - "description": "The available actions for this resource.", - "longDescription": "This type shall contain the available actions for this resource.", + "description": "The available actions for this Resource.", + "longDescription": "This type shall contain the available actions for this Resource.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -314,8 +316,8 @@ "properties": { "Oem": { "$ref": "#/definitions/FanOemActions", - "description": "This property contains the available OEM specific actions for this resource.", - "longDescription": "This property shall contain any additional OEM actions for this resource.", + "description": "The available OEM-specific actions for this Resource.", + "longDescription": "This property shall contain the available OEM-specific actions for this Resource.", "versionAdded": "v1_3_0" } }, @@ -323,10 +325,10 @@ }, "FanOemActions": { "additionalProperties": true, - "description": "The available OEM specific actions for this resource.", - "longDescription": "This type shall contain any additional OEM actions for this resource.", + "description": "The available OEM-specific actions for this Resource.", + "longDescription": "This type shall contain the available OEM-specific actions for this Resource.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -348,15 +350,15 @@ "Percent" ], "enumDescriptions": { - "Percent": "Indicates that the fan reading and thresholds are measured in percentage.", - "RPM": "Indicates that the fan reading and thresholds are measured in rotations per minute." + "Percent": "The fan reading and thresholds are measured as a percentage.", + "RPM": "The fan reading and thresholds are measured in rotations per minute." }, "type": "string" }, "Temperature": { "additionalProperties": false, "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -371,17 +373,17 @@ }, "properties": { "@odata.id": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/id" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/id" }, "Actions": { "$ref": "#/definitions/TemperatureActions", - "description": "The available actions for this resource.", - "longDescription": "The Actions property shall contain the available actions for this resource.", + "description": "The available actions for this Resource.", + "longDescription": "This property shall contain the available actions for this Resource.", "versionAdded": "v1_3_0" }, "AdjustedMaxAllowableOperatingValue": { "description": "Adjusted maximum allowable operating temperature for this equipment based on the current environmental conditions present.", - "longDescription": "The value of this property shall indicate the adjusted maximum allowable operating temperature for the equipment monitored by this temperature sensor, as specified by a standards body, manufacturer, or a combination, and adjusted based on environmental conditions present. For example, liquid inlet temperature may be adjusted based on the available liquid pressure.", + "longDescription": "This property shall indicate the adjusted maximum allowable operating temperature for the equipment monitored by this temperature sensor, as specified by a standards body, manufacturer, or a combination, and adjusted based on environmental conditions present. For example, liquid inlet temperature may be adjusted based on the available liquid pressure.", "readonly": true, "type": [ "integer", @@ -392,7 +394,7 @@ }, "AdjustedMinAllowableOperatingValue": { "description": "Adjusted minimum allowable operating temperature for this equipment based on the current environmental conditions present.", - "longDescription": "The value of this property shall indicate the adjusted minimum allowable operating temperature for the equipment monitored by this temperature sensor, as specified by a standards body, manufacturer, or a combination, and adjusted based on environmental conditions present. For example, liquid inlet temperature may be adjusted based on the available liquid pressure.", + "longDescription": "This property shall indicate the adjusted minimum allowable operating temperature for the equipment monitored by this temperature sensor, as specified by a standards body, manufacturer, or a combination, and adjusted based on environmental conditions present. For example, liquid inlet temperature may be adjusted based on the available liquid pressure.", "readonly": true, "type": [ "integer", @@ -403,14 +405,14 @@ }, "DeltaPhysicalContext": { "$ref": "http://redfish.dmtf.org/schemas/v1/PhysicalContext.json#/definitions/PhysicalContext", - "description": "Describes the area or device to which the DeltaReadingCelsius temperature measurement applies, relative to PhysicalContext.", - "longDescription": "The value of this property shall be a description of the affected device or region within the chassis to which the DeltaReadingCelsius temperature measurement applies, relative to PhysicalContext.", + "description": "The area or device to which the DeltaReadingCelsius temperature measurement applies, relative to PhysicalContext.", + "longDescription": "This property shall contain a description of the affected device or region within the chassis to which the DeltaReadingCelsius temperature measurement applies, relative to PhysicalContext.", "readonly": true, "versionAdded": "v1_4_0" }, "DeltaReadingCelsius": { "description": "Delta Temperature reading.", - "longDescription": "The value of this property shall be the delta of the values of the temperature readings across this sensor and the sensor at DeltaPhysicalContext.", + "longDescription": "This property shall contain the delta of the values of the temperature readings across this sensor and the sensor at DeltaPhysicalContext.", "readonly": true, "type": [ "number", @@ -420,8 +422,8 @@ "versionAdded": "v1_4_0" }, "LowerThresholdCritical": { - "description": "Below normal range but not yet fatal.", - "longDescription": "The value of this property shall indicate the ReadingCelsius is below the normal range but is not yet fatal. The units shall be the same units as the related ReadingCelsius property.", + "description": "The value at which the reading is below normal range but not yet fatal.", + "longDescription": "This property shall contain the value at which the ReadingCelsius property is below the normal range but is not yet fatal. The value of the property shall use the same units as the ReadingCelsius property.", "readonly": true, "type": [ "number", @@ -430,8 +432,8 @@ "units": "Cel" }, "LowerThresholdFatal": { - "description": "Below normal range and is fatal.", - "longDescription": "The value of this property shall indicate the ReadingCelsius is below the normal range and is fatal. The units shall be the same units as the related ReadingCelsius property.", + "description": "The value at which the reading is below normal range and fatal.", + "longDescription": "This property shall contain the value at which the ReadingCelsius property is below the normal range and is fatal. The value of the property shall use the same units as the ReadingCelsius property.", "readonly": true, "type": [ "number", @@ -440,8 +442,8 @@ "units": "Cel" }, "LowerThresholdNonCritical": { - "description": "Below normal range.", - "longDescription": "The value of this property shall indicate the ReadingCelsius is below the normal range but is not critical. The units shall be the same units as the related ReadingCelsius property.", + "description": "The value at which the reading is below normal range.", + "longDescription": "This property shall contain the value at which the ReadingCelsius property is below normal range. The value of the property shall use the same units as the ReadingCelsius property.", "readonly": true, "type": [ "number", @@ -451,7 +453,7 @@ }, "MaxAllowableOperatingValue": { "description": "Maximum allowable operating temperature for this equipment.", - "longDescription": "The value of this property shall indicate the maximum allowable operating temperature for the equipment monitored by this temperature sensor, as specified by a standards body, manufacturer, or a combination.", + "longDescription": "This property shall indicate the maximum allowable operating temperature for the equipment monitored by this temperature sensor, as specified by a standards body, manufacturer, or a combination.", "readonly": true, "type": [ "integer", @@ -461,8 +463,8 @@ "versionAdded": "v1_4_0" }, "MaxReadingRangeTemp": { - "description": "Maximum value for ReadingCelsius.", - "longDescription": "The value of this property shall indicate the highest possible value for ReadingCelsius. The units shall be the same units as the related ReadingCelsius property.", + "description": "Maximum value for this sensor.", + "longDescription": "This property shall indicate the highest possible value for the ReadingCelsius property. The value of the property shall use the same units as the ReadingCelsius property.", "readonly": true, "type": [ "number", @@ -471,14 +473,14 @@ "units": "Cel" }, "MemberId": { - "description": "This is the identifier for the member within the collection.", - "longDescription": "The value of this string shall uniquely identify the member within the collection.", + "description": "The identifier for the member within the collection.", + "longDescription": "This property shall uniquely identify the member within the collection. For services supporting Redfish v1.6 or higher, this value shall contain the zero-based array index.", "readonly": true, "type": "string" }, "MinAllowableOperatingValue": { "description": "Minimum allowable operating temperature for this equipment.", - "longDescription": "The value of this property shall indicate the minimum allowable operating temperature for the equipment monitored by this temperature sensor, as specified by a standards body, manufacturer, or a combination.", + "longDescription": "This property shall indicate the minimum allowable operating temperature for the equipment monitored by this temperature sensor, as specified by a standards body, manufacturer, or a combination.", "readonly": true, "type": [ "integer", @@ -488,8 +490,8 @@ "versionAdded": "v1_4_0" }, "MinReadingRangeTemp": { - "description": "Minimum value for ReadingCelsius.", - "longDescription": "The value of this property shall indicate the lowest possible value for ReadingCelsius. The units shall be the same units as the related ReadingCelsius property.", + "description": "Minimum value for this sensor.", + "longDescription": "This property shall indicate the lowest possible value for the ReadingCelsius property. The value of the property shall use the same units as the ReadingCelsius property.", "readonly": true, "type": [ "number", @@ -498,8 +500,8 @@ "units": "Cel" }, "Name": { - "description": "Temperature sensor name.", - "longDescription": "The value of this property shall be the name of the temperature sensor.", + "description": "The temperature sensor name.", + "longDescription": "This property shall contain the name of the temperature sensor.", "readonly": true, "type": [ "string", @@ -508,18 +510,18 @@ }, "Oem": { "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem", - "description": "This is the manufacturer/provider specific extension moniker used to divide the Oem object into sections.", - "longDescription": "The value of this string shall be of the format for the reserved word *Oem*." + "description": "The OEM extension property.", + "longDescription": "This property shall contain the OEM extensions. All values for properties that this object contains shall conform to the Redfish Specification-described requirements." }, "PhysicalContext": { "$ref": "http://redfish.dmtf.org/schemas/v1/PhysicalContext.json#/definitions/PhysicalContext", - "description": "Describes the area or device to which this temperature measurement applies.", - "longDescription": "The value of this property shall be a description of the affected device or region within the chassis to which this temperature measurement applies.", + "description": "The area or device to which this temperature measurement applies.", + "longDescription": "This property shall contain a description of the affected device or region within the chassis to which this temperature applies.", "readonly": true }, "ReadingCelsius": { - "description": "Temperature.", - "longDescription": "The value of this property shall be the current value of the temperature sensor's reading.", + "description": "The temperature in degrees Celsius.", + "longDescription": "This property shall contain the temperature in Celsius degrees.", "readonly": true, "type": [ "number", @@ -528,20 +530,20 @@ "units": "Cel" }, "RelatedItem": { - "description": "Describes the areas or devices to which this temperature measurement applies.", + "description": "The areas or devices to which this temperature applies.", "items": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/idRef" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/idRef" }, - "longDescription": "The value of this property shall the array of IDs of areas or devices to which this temperature measurement applies.", + "longDescription": "This array property shall contain the IDs of areas or devices to which this temperature applies.", "readonly": true, "type": "array" }, "RelatedItem@odata.count": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/count" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/count" }, "SensorNumber": { - "description": "A numerical identifier to represent the temperature sensor.", - "longDescription": "The value of this property shall be a numerical identifier for this temperature sensor that is unique within this resource.", + "description": "The numerical identifier of the temperature sensor.", + "longDescription": "This property shall contain a numerical identifier for this temperature sensor that is unique within this Resource.", "readonly": true, "type": [ "integer", @@ -550,12 +552,12 @@ }, "Status": { "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Status", - "description": "This property describes the status and health of the resource and its children.", - "longDescription": "This property shall contain any status or health properties of the resource." + "description": "The status and health of the Resource and its subordinate or dependent Resources.", + "longDescription": "This property shall contain any status or health properties of the Resource." }, "UpperThresholdCritical": { - "description": "Above normal range but not yet fatal.", - "longDescription": "The value of this property shall indicate the ReadingCelsius is above the normal range but is not yet fatal. The units shall be the same units as the related ReadingCelsius property.", + "description": "The value at which the reading is above normal range but not yet fatal.", + "longDescription": "This property shall contain the value at which the ReadingCelsius property is above the normal range but is not yet fatal. The value of the property shall use the same units as the ReadingCelsius property.", "readonly": true, "type": [ "number", @@ -564,8 +566,8 @@ "units": "Cel" }, "UpperThresholdFatal": { - "description": "Above normal range and is fatal.", - "longDescription": "The value of this property shall indicate the ReadingCelsius is above the normal range and is fatal. The units shall be the same units as the related ReadingCelsius property.", + "description": "The value at which the reading is above normal range and fatal.", + "longDescription": "This property shall contain the value at which the ReadingCelsius property is above the normal range and is fatal. The value of the property shall use the same units as the ReadingCelsius property.", "readonly": true, "type": [ "number", @@ -574,8 +576,8 @@ "units": "Cel" }, "UpperThresholdNonCritical": { - "description": "Above normal range.", - "longDescription": "The value of this property shall indicate the ReadingCelsius is above the normal range but is not critical. The units shall be the same units as the related ReadingCelsius property.", + "description": "The value at which the reading is above normal range.", + "longDescription": "This property shall contain the value at which the ReadingCelsius property is above the normal range. The value of the property shall use the same units as the ReadingCelsius property.", "readonly": true, "type": [ "number", @@ -592,10 +594,10 @@ }, "TemperatureActions": { "additionalProperties": false, - "description": "The available actions for this resource.", - "longDescription": "This type shall contain the available actions for this resource.", + "description": "The available actions for this Resource.", + "longDescription": "This type shall contain the available actions for this Resource.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -611,8 +613,8 @@ "properties": { "Oem": { "$ref": "#/definitions/TemperatureOemActions", - "description": "This property contains the available OEM specific actions for this resource.", - "longDescription": "This property shall contain any additional OEM actions for this resource.", + "description": "The available OEM-specific actions for this Resource.", + "longDescription": "This property shall contain the available OEM-specific actions for this Resource.", "versionAdded": "v1_3_0" } }, @@ -620,10 +622,10 @@ }, "TemperatureOemActions": { "additionalProperties": true, - "description": "The available OEM specific actions for this resource.", - "longDescription": "This type shall contain any additional OEM actions for this resource.", + "description": "The available OEM-specific actions for this Resource.", + "longDescription": "This type shall contain the available OEM-specific actions for this Resource.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -641,10 +643,10 @@ }, "Thermal": { "additionalProperties": false, - "description": "This is the schema definition for the Thermal properties. It represents the properties for Temperature and Cooling.", - "longDescription": "This resource shall be used to represent a thermal metrics resource for a Redfish implementation.", + "description": "The Thermal schema describes temperature monitoring and thermal management subsystems, such as cooling fans, for a computer system or similiar devices contained within a chassis.", + "longDescription": "This Resource shall contain the thermal management properties for temperature monitoring and management of cooling fans for a Redfish implementation.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -659,21 +661,21 @@ }, "properties": { "@odata.context": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/context" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/context" }, "@odata.etag": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/etag" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/etag" }, "@odata.id": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/id" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/id" }, "@odata.type": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/type" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/type" }, "Actions": { "$ref": "#/definitions/ThermalActions", - "description": "The available actions for this resource.", - "longDescription": "The Actions property shall contain the available actions for this resource.", + "description": "The available actions for this Resource.", + "longDescription": "This property shall contain the available actions for this Resource.", "versionAdded": "v1_3_0" }, "Description": { @@ -689,16 +691,16 @@ }, "Fans": { "autoExpand": true, - "description": "This is the definition for fans.", + "description": "The set of fans for this chassis.", "items": { "$ref": "#/definitions/Fan" }, - "longDescription": "These properties shall be the definition for fans for a Redfish implementation.", + "longDescription": "This property shall contain the set of fans for this chassis.", "readonly": false, "type": "array" }, "Fans@odata.count": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/count" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/count" }, "Id": { "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Id", @@ -710,38 +712,38 @@ }, "Oem": { "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem", - "description": "This is the manufacturer/provider specific extension moniker used to divide the Oem object into sections.", - "longDescription": "The value of this string shall be of the format for the reserved word *Oem*." + "description": "The OEM extension property.", + "longDescription": "This property shall contain the OEM extensions. All values for properties that this object contains shall conform to the Redfish Specification-described requirements." }, "Redundancy": { "autoExpand": true, - "description": "This structure is used to show redundancy for fans. The Component ids will reference the members of the redundancy groups.", + "description": "The redundancy information for the set of fans in this chassis.", "items": { "$ref": "http://redfish.dmtf.org/schemas/v1/Redundancy.json#/definitions/Redundancy" }, - "longDescription": "The values of the properties in this array shall be used to show redundancy for fans and other elements in this resource. The use of IDs within these arrays shall reference the members of the redundancy groups.", + "longDescription": "This property shall contain redundancy information for the fans in this chassis.", "type": "array" }, "Redundancy@odata.count": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/count" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/count" }, "Status": { "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Status", - "description": "This property describes the status and health of the resource and its children.", - "longDescription": "This property shall contain any status or health properties of the resource." + "description": "The status and health of the Resource and its subordinate or dependent Resources.", + "longDescription": "This property shall contain any status or health properties of the Resource." }, "Temperatures": { "autoExpand": true, - "description": "This is the definition for temperature sensors.", + "description": "The set of temperature sensors for this chassis.", "items": { "$ref": "#/definitions/Temperature" }, - "longDescription": "These properties shall be the definition for temperature sensors for a Redfish implementation.", + "longDescription": "This property shall contain the set of temperature sensors for this chassis.", "readonly": false, "type": "array" }, "Temperatures@odata.count": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/count" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/count" } }, "required": [ @@ -754,10 +756,10 @@ }, "ThermalActions": { "additionalProperties": false, - "description": "The available actions for this resource.", - "longDescription": "This type shall contain the available actions for this resource.", + "description": "The available actions for this Resource.", + "longDescription": "This type shall contain the available actions for this Resource.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -773,8 +775,8 @@ "properties": { "Oem": { "$ref": "#/definitions/ThermalOemActions", - "description": "This property contains the available OEM specific actions for this resource.", - "longDescription": "This property shall contain any additional OEM actions for this resource.", + "description": "The available OEM-specific actions for this Resource.", + "longDescription": "This property shall contain the available OEM-specific actions for this Resource.", "versionAdded": "v1_3_0" } }, @@ -782,10 +784,10 @@ }, "ThermalOemActions": { "additionalProperties": true, - "description": "The available OEM specific actions for this resource.", - "longDescription": "This type shall contain any additional OEM actions for this resource.", + "description": "The available OEM-specific actions for this Resource.", + "longDescription": "This type shall contain the available OEM-specific actions for this Resource.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -804,5 +806,5 @@ }, "owningEntity": "DMTF", "release": "2018.2", - "title": "#Thermal.v1_5_1.Thermal" + "title": "#Thermal.v1_5_3.Thermal" } \ No newline at end of file diff --git a/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/Triggers/Triggers.json b/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/Triggers/Triggers.json index 69fcecd3..595f2256 100644 --- a/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/Triggers/Triggers.json +++ b/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/Triggers/Triggers.json @@ -1,15 +1,15 @@ { - "$id": "http://redfish.dmtf.org/schemas/v1/Triggers.v1_0_1.json", + "$id": "http://redfish.dmtf.org/schemas/v1/Triggers.v1_1_1.json", "$ref": "#/definitions/Triggers", "$schema": "http://redfish.dmtf.org/schemas/v1/redfish-schema-v1.json", - "copyright": "Copyright 2014-2018 DMTF. For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright", + "copyright": "Copyright 2014-2019 DMTF. For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright", "definitions": { "Actions": { "additionalProperties": false, - "description": "The available actions for this resource.", - "longDescription": "This type shall contain the available actions for this resource.", + "description": "The available actions for this Resource.", + "longDescription": "This type shall contain the available actions for this Resource.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -25,23 +25,23 @@ "properties": { "Oem": { "$ref": "#/definitions/OemActions", - "description": "This property contains the available OEM specific actions for this resource.", - "longDescription": "This property shall contain any additional OEM actions for this resource." + "description": "The available OEM-specific actions for this Resource.", + "longDescription": "This property shall contain the available OEM-specific actions for this Resource." } }, "type": "object" }, "DirectionOfCrossingEnum": { - "description": "The direction of crossing which corresponds to a trigger.", + "description": "The direction of crossing that corresponds to a trigger.", "enum": [ "Increasing", "Decreasing" ], "enumDescriptions": { - "Decreasing": "A trigger occurs when the metric value crosses the trigger value while decreasing.", - "Increasing": "A trigger occurs when the metric value crosses the trigger value while increasing." + "Decreasing": "A trigger is met when the metric value crosses the trigger value while decreasing.", + "Increasing": "A trigger condition is met when the metric value crosses the trigger value while increasing." }, - "longDescription": "The value shall indicate the direction of crossing which corresponds to a trigger.", + "longDescription": "The value shall indicate the direction of crossing that corresponds to a trigger.", "type": "string" }, "DiscreteTrigger": { @@ -49,7 +49,7 @@ "description": "The characteristics of the discrete trigger.", "longDescription": "This object shall contain the characteristics of the discrete trigger.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -64,8 +64,8 @@ }, "properties": { "DwellTime": { - "description": "This time the trigger occurance persists before a trigger event has occurred.", - "longDescription": "This property shall contain the time that a trigger occurance persists before the MetricAction is performed.", + "description": "The amount of time that a trigger event persists before the metric action is performed.", + "longDescription": "This property shall contain the amount of time that a trigger event persists before the MetricAction is performed.", "pattern": "-?P(\\d+D)?(T(\\d+H)?(\\d+M)?(\\d+(.\\d+)?S)?)?", "readonly": false, "type": [ @@ -91,13 +91,13 @@ "type": "null" } ], - "description": "This property contains the value of the Severity property in the Event message.", - "longDescription": "The value of this property shall be used for the Severity property in the Event message.", + "description": "The severity of the event message.", + "longDescription": "This property shall contain the Severity property to be used in the Event message.", "readonly": false }, "Value": { - "description": "The value of the discrete metric that constitutes a trigger occurance.", - "longDescription": "This property shall contain the value discrete metric that constitutes a trigger event. The DwellTimeMilliSeconds shall be measured from this point in time.", + "description": "The discrete metric value that constitutes a trigger event.", + "longDescription": "This property shall contain the value discrete metric that constitutes a trigger event. The DwellTime shall be measured from this point in time.", "readonly": false, "type": [ "string", @@ -108,20 +108,60 @@ "type": "object" }, "DiscreteTriggerConditionEnum": { - "description": "Specifies the condition, in relationship to the discrete trigger values, which constitutes a trigger.", + "description": "The condition, in relationship to the discrete trigger values, which constitutes a trigger.", "enum": [ "Specified", "Changed" ], "enumDescriptions": { - "Changed": "A discrete trigger occures whenever the value of the metric changes.", - "Specified": "A discrete trigger occurs when the value of the metric becomes one of the values listed in the DiscreteTriggers property." + "Changed": "A discrete trigger condition is met whenever the metric value changes.", + "Specified": "A discrete trigger condition is met when the metric value becomes one of the values that the DiscreteTriggers property lists." }, - "longDescription": "The value shall specify the condition, in relationship to the discrete trigger values, which constitutes a trigger.", + "longDescription": "This type shall specify the condition, in relationship to the discrete trigger values, which constitutes a trigger.", "type": "string" }, + "Links": { + "additionalProperties": false, + "description": "The links to other Resources that are related to this Resource.", + "longDescription": "This Redfish Specification-described type shall contain links to Resources related to but not subordinate to this Resource.", + "patternProperties": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { + "description": "This property shall specify a valid odata or Redfish property.", + "type": [ + "array", + "boolean", + "integer", + "number", + "null", + "object", + "string" + ] + } + }, + "properties": { + "MetricReportDefinitions": { + "description": "The metric report definitions that generate new metric reports when a trigger condition is met and when the TriggerActions property contains `RedfishMetricReport`.", + "items": { + "$ref": "http://redfish.dmtf.org/schemas/v1/MetricReportDefinition.json#/definitions/MetricReportDefinition" + }, + "longDescription": "This property shall contain a set of links to metric report definitions that generate new metric reports when a trigger condition is met and when the TriggerActions property contains `RedfishMetricReport`.", + "readonly": false, + "type": "array", + "versionAdded": "v1_1_0" + }, + "MetricReportDefinitions@odata.count": { + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/count" + }, + "Oem": { + "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem", + "description": "The OEM extension property.", + "longDescription": "This property shall contain the OEM extensions. All values for properties contained in this object shall conform to the Redfish Specification-described requirements." + } + }, + "type": "object" + }, "MetricTypeEnum": { - "description": "Specifies the type of metric for which the trigger is configured.", + "description": "The type of metric for which the trigger is configured.", "enum": [ "Numeric", "Discrete" @@ -130,15 +170,15 @@ "Discrete": "The trigger is for a discrete sensor.", "Numeric": "The trigger is for numeric sensor." }, - "longDescription": "The value shall specify the type of metric for which the trigger is configured.", + "longDescription": "This type shall specify the type of metric for which the trigger is configured.", "type": "string" }, "OemActions": { "additionalProperties": true, - "description": "The available OEM specific actions for this resource.", - "longDescription": "This type shall contain any additional OEM actions for this resource.", + "description": "The available OEM-specific actions for this Resource.", + "longDescription": "This type shall contain the available OEM-specific actions for this Resource.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -159,7 +199,7 @@ "description": "A threshold definition for a sensor.", "longDescription": "This type shall contain the properties for an individual threshold for this sensor.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -183,12 +223,12 @@ } ], "description": "The direction of crossing that activates this threshold.", - "longDescription": "This property shall indicate the direction of crossing of the Reading value for this Sensor that triggers the threshold.", + "longDescription": "This property shall indicate the direction of crossing of the reading for this sensor that activates the threshold.", "readonly": false }, "DwellTime": { - "description": "The time interval over which the sensor reading must have passed through this Threshold value before the threshold is considered to be violated.", - "longDescription": "This property shall indicate the time interval over which the sensor reading must have passed through this Threshold value before the threshold is considered to be violated.", + "description": "The duration the sensor value must violate the threshold before the threshold is activated.", + "longDescription": "This property shall indicate the duration the sensor value must violate the threshold before the threshold is activated.", "pattern": "-?P(\\d+D)?(T(\\d+H)?(\\d+M)?(\\d+(.\\d+)?S)?)?", "readonly": false, "type": [ @@ -198,7 +238,7 @@ }, "Reading": { "description": "The threshold value.", - "longDescription": "This property shall indicate the Reading value of this Sensor that triggers the threshold. The units of this property shall follow the same units as the property described by MetricProperties.", + "longDescription": "This property shall indicate the reading for this sensor that activates the threshold. The value of the property shall use the same units as the MetricProperties property.", "readonly": false, "type": [ "number", @@ -220,18 +260,18 @@ "Increasing": "Value increases above the threshold." }, "enumLongDescriptions": { - "Decreasing": "This threshold is activated when the value of Reading changes from a value higher than the threshold to a value lower than the threshold.", + "Decreasing": "This threshold is activated when the reading changes from a value higher than the threshold to a value lower than the threshold.", "Either": "This threshold is activated when either the Increasing or Decreasing conditions are met.", - "Increasing": "This threshold is activated when the value of Reading changes from a value lower than the threshold to a value higher than the threshold." + "Increasing": "This threshold is activated when the reading changes from a value lower than the threshold to a value higher than the threshold." }, "type": "string" }, "Thresholds": { "additionalProperties": false, - "description": "The set of thresholds defined for a sensor.", - "longDescription": "This structure shall contain a set of thresholds defined for a sensor.", + "description": "The set of thresholds for a sensor.", + "longDescription": "This type shall contain a set of thresholds for a sensor.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -246,79 +286,57 @@ }, "properties": { "LowerCritical": { - "anyOf": [ - { - "$ref": "#/definitions/Threshold" - }, - { - "type": "null" - } - ], - "description": "Below normal range and requires attention.", - "longDescription": "The value of this property shall indicate the Reading is below the normal range and may require attention. The units shall be the same units as the Reading." + "$ref": "#/definitions/Threshold", + "description": "The value at which the reading is below normal range and requires attention.", + "longDescription": "This property shall contain the value at which the MetricProperties property is below the normal range and may require attention. The value of the property shall use the same units as the MetricProperties property." }, "LowerWarning": { - "anyOf": [ - { - "$ref": "#/definitions/Threshold" - }, - { - "type": "null" - } - ], - "description": "Below normal range.", - "longDescription": "The value of this property shall indicate the Reading is below the normal range. The units shall be the same units as the Reading." + "$ref": "#/definitions/Threshold", + "description": "The value at which the reading is below normal range.", + "longDescription": "This property shall contain the value at which the MetricProperties property is below the normal range. The value of the property shall use the same units as the MetricProperties property." }, "UpperCritical": { - "anyOf": [ - { - "$ref": "#/definitions/Threshold" - }, - { - "type": "null" - } - ], - "description": "Above normal range and requires attention.", - "longDescription": "The value of this property shall indicate the Reading is above the normal range and may require attention. The units shall be the same units as the Reading." + "$ref": "#/definitions/Threshold", + "description": "The value at which the reading is above normal range and requires attention.", + "longDescription": "This property shall contain the value at which the MetricProperties property is above the normal range and may require attention. The value of the property shall use the same units as the MetricProperties property." }, "UpperWarning": { - "anyOf": [ - { - "$ref": "#/definitions/Threshold" - }, - { - "type": "null" - } - ], - "description": "Above normal range.", - "longDescription": "The value of this property shall indicate the Reading is above the normal range. The units shall be the same units as the Reading." + "$ref": "#/definitions/Threshold", + "description": "The value at which the reading is above normal range.", + "longDescription": "This property shall contain the value at which the MetricProperties property is above the normal range. The value of the property shall use the same units as the MetricProperties property." } }, "type": "object" }, "TriggerActionEnum": { - "description": "Specifies the actions to perform when a trigger occurs.", + "description": "The actions to perform when a trigger condition is met.", "enum": [ "LogToLogService", - "RedfishEvent" + "RedfishEvent", + "RedfishMetricReport" ], "enumDescriptions": { - "LogToLogService": "Upon a trigger, record in a log.", - "RedfishEvent": "Upon a trigger, send a Redfish Event message of type Event." + "LogToLogService": "When a trigger condition is met, record in a log.", + "RedfishEvent": "When a trigger condition is met, the Service sends an event to subscribers.", + "RedfishMetricReport": "When a trigger condition is met, force an update of the specified metric reports." }, "enumLongDescriptions": { - "LogToLogService": "When a trigger condition is met, the service shall log the occurrence of the condition to the log indicated by the LogService property in the TelemetryService resource.", - "RedfishEvent": "When a trigger condition is met, the service shall produce a Redfish Event of type Event to matching subscribers indicated in the EventSubscription collection found on the EventService." + "LogToLogService": "This value indicates that when a trigger condition is met, the Service shall log the occurrence of the condition to the log that the LogService property in the TelemetryService Resource describes.", + "RedfishEvent": "This value indicates that when a trigger condition is met, the Service shall send an event to subscribers.", + "RedfishMetricReport": "This value indicates that when a trigger condition is met, the Service shall force the metric reports managed by the MetricReportDefinitions specified by the MetricReportDefinitions property to be updated, regardless of the MetricReportDefinitionType property value. The actions specified in the ReportActions property of each MetricReportDefinition shall be performed." }, - "longDescription": "The value shall specify the actions to perform when a trigger occurs.", + "enumVersionAdded": { + "RedfishMetricReport": "v1_1_0" + }, + "longDescription": "This type shall specify the actions to perform when a trigger condition is met.", "type": "string" }, "Triggers": { "additionalProperties": false, - "description": "Triggers which apply to a list of metrics.", - "longDescription": "This resource shall specify triggers, which apply to a list of metrics.", + "description": "The Triggers schema describes a trigger that applies to metrics.", + "longDescription": "This Resource shall contain a trigger that applies to metrics.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -333,21 +351,21 @@ }, "properties": { "@odata.context": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/context" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/context" }, "@odata.etag": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/etag" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/etag" }, "@odata.id": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/id" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/id" }, "@odata.type": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/type" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/type" }, "Actions": { "$ref": "#/definitions/Actions", - "description": "The available actions for this resource.", - "longDescription": "The Actions property shall contain the available actions for this resource." + "description": "The available actions for this Resource.", + "longDescription": "This property shall contain the available actions for this Resource." }, "Description": { "anyOf": [ @@ -369,32 +387,52 @@ "type": "null" } ], - "description": "Specifies the conditions when a discrete metric triggers.", - "longDescription": "The value of this property shall specify the conditions when a discrete metric triggers.", + "description": "The conditions when a discrete metric triggers.", + "longDescription": "This property shall contain the conditions when a discrete metric triggers.", "readonly": true }, "DiscreteTriggers": { - "description": "List of discrete triggers.", + "description": "The list of discrete triggers.", "items": { "$ref": "#/definitions/DiscreteTrigger" }, - "longDescription": "This property shall contains a list of value to which a metric reading will be compared. This property shall be present when the DiscreteTriggerCondition property has a value of 'Specified'.", + "longDescription": "This property shall contain a list of values to which to compare a metric reading. This property shall be present when the DiscreteTriggerCondition property is `Specified`.", "type": "array" }, + "EventTriggers": { + "description": "The array of MessageIds that specify when a trigger condition is met based on an event.", + "items": { + "type": [ + "string", + "null" + ] + }, + "longDescription": "This property shall contain an array of MessageIds that specify when a trigger condition is met based on an event. When the Service generates an event and if it contains a MessageId within this array, a trigger condition shall be met.", + "pattern": "^[A-Za-z0-9]+\\.\\d+\\.\\d+\\.[A-Za-z0-9.]+$", + "readonly": false, + "type": "array", + "versionAdded": "v1_1_0" + }, "Id": { "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Id", "readonly": true }, + "Links": { + "$ref": "#/definitions/Links", + "description": "The links to other Resources that are related to this Resource.", + "longDescription": "The Redfish Specification-described Links Property shall contain links to Resources related to but not subordinate to this Resource.", + "versionAdded": "v1_1_0" + }, "MetricProperties": { - "description": "A list of URIs with wildcards and property identifiers for which this trigger is defined. If a URI has wildcards, the wildcards are substituted as specified in the Wildcards array property.", - "format": "uri", + "description": "An array of URIs with wildcards and property identifiers for this trigger. Each wildcard shall be replaced with its corresponding entry in the Wildcard array property.", + "format": "uri-reference", "items": { "type": [ "string", "null" ] }, - "longDescription": "This array property shall contain a list of URIs with wildcards and property identifiers for which this trigger is defined. Each wildcard in the URI shall be delimited by a set of curly braces. Each wildcard shall be substituted as specified by the corresponding entry in the Wildcard array property. Once an URI with wildcards has had its wildcards fully substituted, it shall reference a resource property for which the metric definition applies. The property identifiers portion of the URI shall follow JSON fragment notation rules defined by RFC6901.", + "longDescription": "This property shall contain an array of URIs with wildcards and property identifiers for this trigger. Use a set of curly braces to delimit each wildcard in the URI. Replace each wildcard with its corresponding entry in the Wildcard array property. A URI that contains wildcards shall link to a Resource property to which the metric definition applies after all wildcards are replaced with their corresponding entries in the Wildcard array property. The property identifiers portion of the URI shall follow the RFC6901-defined JSON fragment notation rules.", "readonly": false, "type": "array" }, @@ -407,8 +445,8 @@ "type": "null" } ], - "description": "The type of trigger.", - "longDescription": "The value of this property shall specific the type of trigger.", + "description": "The metric type of the trigger.", + "longDescription": "This property shall contain the metric type of the trigger.", "readonly": true }, "Name": { @@ -416,49 +454,35 @@ "readonly": true }, "NumericThresholds": { - "anyOf": [ - { - "$ref": "#/definitions/Thresholds" - }, - { - "type": "null" - } - ], - "description": "Specifies the thresholds when a numeric metric triggers.", - "longDescription": "This property shall contain list of thresholds to which a numeric metric value shall be compared." + "$ref": "#/definitions/Thresholds", + "description": "The thresholds when a numeric metric triggers.", + "longDescription": "This property shall contain the list of thresholds to which to compare a numeric metric value." }, "Oem": { "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem", - "description": "This is the manufacturer/provider specific extension moniker used to divide the Oem object into sections.", - "longDescription": "The value of this string shall be of the format for the reserved word *Oem*." + "description": "The OEM extension property.", + "longDescription": "This property shall contain the OEM extensions. All values for properties that this object contains shall conform to the Redfish Specification-described requirements." }, "Status": { "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Status", - "description": "This property describes the status and health of the resource and its children.", - "longDescription": "This property shall contain any status or health properties of the resource." + "description": "The status and health of the Resource and its subordinate or dependent Resources.", + "longDescription": "This property shall contain any status and health properties of the Resource." }, "TriggerActions": { - "description": "This property specifies the actions to perform when the trigger occurs.", + "description": "The actions that the trigger initiates.", "items": { "$ref": "#/definitions/TriggerActionEnum" }, - "longDescription": "The value of this property shall specify the actions to perform when the trigger occurs.", + "longDescription": "This property shall contain the actions that the trigger initiates.", "readonly": true, "type": "array" }, "Wildcards": { - "description": "A list of wildcards and their substitution values to be applied to the entries in the MetricProperties array property.", + "description": "The wildcards and their substitution values for the entries in the MetricProperties array property.", "items": { - "anyOf": [ - { - "$ref": "#/definitions/Wildcard" - }, - { - "type": "null" - } - ] + "$ref": "#/definitions/Wildcard" }, - "longDescription": "The property shall contain a list of wildcards and their replacement strings, which are applied to the MetricProperties array property. Each wildcard shall have a corresponding entry in this array property.", + "longDescription": "This property shall contain the wildcards and their substitution values for the entries in the MetricProperties array property. Each wildcard shall have a corresponding entry in this array property.", "type": "array" } }, @@ -472,10 +496,10 @@ }, "Wildcard": { "additionalProperties": false, - "description": "Contains a wildcard and its substitution values.", + "description": "The wildcard and its substitution values.", "longDescription": "This property shall contain a wildcard and its substitution values.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -490,7 +514,7 @@ }, "properties": { "Name": { - "description": "The string used as a wildcard.", + "description": "The wildcard.", "longDescription": "This property shall contain the string used as a wildcard.", "readonly": true, "type": [ @@ -506,7 +530,7 @@ "null" ] }, - "longDescription": "This property shall contain the list of values to susubstitute for the wildcard.", + "longDescription": "This array property shall contain the list of values to substitute for the wildcard.", "readonly": true, "type": "array" } @@ -515,6 +539,6 @@ } }, "owningEntity": "DMTF", - "release": "2018.2", - "title": "#Triggers.v1_0_1.Triggers" + "release": "2019.1", + "title": "#Triggers.v1_1_1.Triggers" } \ No newline at end of file diff --git a/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/UpdateService/UpdateService.json b/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/UpdateService/UpdateService.json index 5726a4eb..203cc22f 100644 --- a/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/UpdateService/UpdateService.json +++ b/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/UpdateService/UpdateService.json @@ -1,15 +1,15 @@ { - "$id": "http://redfish.dmtf.org/schemas/v1/UpdateService.v1_4_0.json", + "$id": "http://redfish.dmtf.org/schemas/v1/UpdateService.v1_6_0.json", "$ref": "#/definitions/UpdateService", "$schema": "http://redfish.dmtf.org/schemas/v1/redfish-schema-v1.json", - "copyright": "Copyright 2014-2018 DMTF. For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright", + "copyright": "Copyright 2014-2019 DMTF. For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright", "definitions": { "Actions": { "additionalProperties": false, - "description": "The available actions for this resource.", - "longDescription": "This type shall contain the available actions for this resource.", + "description": "The available actions for this Resource.", + "longDescription": "This type shall contain the available actions for this Resource.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -28,8 +28,8 @@ }, "Oem": { "$ref": "#/definitions/OemActions", - "description": "This property contains the available OEM specific actions for this resource.", - "longDescription": "This property shall contain any additional OEM actions for this resource." + "description": "The available OEM-specific actions for this Resource.", + "longDescription": "This property shall contain the available OEM-specific actions for this Resource." } }, "type": "object" @@ -42,25 +42,25 @@ "InMaintenanceWindowOnReset" ], "enumDescriptions": { - "AtMaintenanceWindowStart": "Apply during a maintenance window as specified by an administrator.", + "AtMaintenanceWindowStart": "Apply during an administrator-specified maintenance window.", "Immediate": "Apply immediately.", - "InMaintenanceWindowOnReset": "Apply after a reset but within maintenance window as specified by an adminstrator.", + "InMaintenanceWindowOnReset": "Apply after a reset but within an administrator-specified maintenance window.", "OnReset": "Apply on a reset." }, "enumLongDescriptions": { - "AtMaintenanceWindowStart": "This ApplyTime value shall be used to indicate the software provided via HttpPushUri is applied during the maintenance window specified by the MaintenanceWindowStartTime and MaintenanceWindowDurationInSeconds properties. A service may perform resets during this maintenance window.", - "Immediate": "This ApplyTime value shall be used to indicate the software provided via HttpPushUri is applied immediately.", - "InMaintenanceWindowOnReset": "This ApplyTime value shall be used to indicate the software provided via HttpPushUri is applied during the maintenance window specified by the MaintenanceWindowStartTime and MaintenanceWindowDurationInSeconds properties, and if a reset occurs within the maintenance window.", - "OnReset": "This ApplyTime value shall be used to indicate the software provided via HttpPushUri is applied when the system or service is reset." + "AtMaintenanceWindowStart": "This value shall indicate the HttpPushUri-provided software is applied during the maintenance window specified by the MaintenanceWindowStartTime and MaintenanceWindowDurationInSeconds properties. A Service may perform resets during this maintenance window.", + "Immediate": "This value shall indicate the HttpPushUri-provided software is applied immediately.", + "InMaintenanceWindowOnReset": "This value shall indicate the HttpPushUri-provided software is applied during the maintenance window specified by the MaintenanceWindowStartTime and MaintenanceWindowDurationInSeconds properties, and if a reset occurs within the maintenance window.", + "OnReset": "This value shall indicate the HttpPushUri-provided software is applied when the system or Service is reset." }, "type": "string" }, "HttpPushUriApplyTime": { "additionalProperties": false, - "description": "This object contains settings for when software is to be applied when provided via HttpPushUri.", - "longDescription": "The properties in this object shall contain settings for when software is to be applied when provided via HttpPushUri.", + "description": "The settings for when to apply HttpPushUri-provided software.", + "longDescription": "The properties in this object shall contain settings for when to apply HttpPushUri-provided software.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -76,14 +76,14 @@ "properties": { "ApplyTime": { "$ref": "#/definitions/ApplyTime", - "description": "This property indicates when the software update invoked via HttpPushUri should be applied.", - "longDescription": "The value of this property shall indicate the preference on to when to apply the software provided via HttpPushUri.", + "description": "The time when to apply the HttpPushUri-provided software update.", + "longDescription": "This property shall indicate the time when to apply the HttpPushUri-provided software update.", "readonly": false, "versionAdded": "v1_4_0" }, "MaintenanceWindowDurationInSeconds": { - "description": "The value of this property as specified by client indicates the expiry time of maintenance window in seconds.", - "longDescription": "The value of this property shall indicate the end of the maintenance window as the number of seconds after the time specified by the HttpPushUriMaintenanceWindowStartTime property. This property shall be required if the HttpPushUriApplyTime property is specified as AtMaintenanceWindowStart or InMaintenanceWindowOnReset.", + "description": "The expiry time, in seconds, of the maintenance window.", + "longDescription": "This property shall indicate the end of the maintenance window as the number of seconds after the time specified by the HttpPushUriMaintenanceWindowStartTime property. This property shall contain required if the HttpPushUriApplyTime property value is `AtMaintenanceWindowStart` or `InMaintenanceWindowOnReset`.", "minimum": 0, "readonly": false, "type": "integer", @@ -91,9 +91,9 @@ "versionAdded": "v1_4_0" }, "MaintenanceWindowStartTime": { - "description": "The value of this property as specified by client to indicate the start time of a maintenance window.", + "description": "The start time of a maintenance window.", "format": "date-time", - "longDescription": "The value of this property shall indicate the date and time as to when the service is allowed to start applying the software provided via HttpPushUri as part of a maintenance window. This property shall be required if the HttpPushUriApplyTime property is specified as AtMaintenanceWindowStart or InMaintenanceWindowOnReset.", + "longDescription": "This property shall indicate the date and time when the Service can start to apply the HttpPushUri-provided software as part of a maintenance window. This property shall contain required if the HttpPushUriApplyTime property value is `AtMaintenanceWindowStart` or `InMaintenanceWindowOnReset`.", "readonly": false, "type": "string", "versionAdded": "v1_4_0" @@ -103,10 +103,10 @@ }, "HttpPushUriOptions": { "additionalProperties": false, - "description": "This object contains settings for software update via HttpPushUri.", - "longDescription": "The properties in this object shall contain settings and requirements of the service for software update via HttpPushUri.", + "description": "The settings for HttpPushUri-provided software updates.", + "longDescription": "The properties in this object shall contain settings and requirements of the Service for HttpPushUri-provided software updates.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -122,8 +122,8 @@ "properties": { "HttpPushUriApplyTime": { "$ref": "#/definitions/HttpPushUriApplyTime", - "description": "This property contains settings for when firmware is to be applied when provided via HttpPushUri.", - "longDescription": "The value of this property shall contain settings for when firmware is to be applied when provided via HttpPushUri.", + "description": "The settings for when to apply HttpPushUri-provided firmware.", + "longDescription": "This property shall contain settings for when to apply HttpPushUri-provided firmware.", "versionAdded": "v1_4_0" } }, @@ -131,10 +131,10 @@ }, "OemActions": { "additionalProperties": true, - "description": "The available OEM specific actions for this resource.", - "longDescription": "This type shall contain any additional OEM actions for this resource.", + "description": "The available OEM-specific actions for this Resource.", + "longDescription": "This type shall contain the available OEM-specific actions for this Resource.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -152,45 +152,45 @@ }, "SimpleUpdate": { "additionalProperties": false, - "description": "This action is used to update software components.", - "longDescription": "This action shall perform an update of installed software component(s) as contained within a software image file located at a URI referenced by the ImageURI parameter.", + "description": "This action updates software components.", + "longDescription": "This action shall update installed software components in a software image file located at an ImageURI parameter-specified URI.", "parameters": { "ImageURI": { - "description": "The URI of the software image to be installed.", - "longDescription": "This parameter shall contain a URI referencing a software image to be retreived by the UpdateService for the purpose of installing software contained within the image.", + "description": "The URI of the software image to install.", + "longDescription": "This parameter shall contain an RFC3986-defined URI that links to a software image that the Update Service retrieves to install software in that image. This URI should contain a scheme that describes the transfer protocol. If the TransferProtocol parameter is absent or not supported, and a transfer protocol is not specified by a scheme contained within this URI, the Service shall use HTTP to get the image.", "requiredParameter": true, "type": "string" }, "Password": { - "description": "The password to be used when accessing the URI specified by the ImageURI parameter.", - "longDescription": "This parameter shall contain a string representing the password to be used when accessing the URI specified by the ImageURI parameter.", + "description": "The password to access the URI specified by the ImageURI parameter.", + "longDescription": "This parameter shall represent the password to access the URI specified by the ImageURI parameter.", "type": "string", "versionAdded": "v1_4_0" }, "Targets": { - "description": "The array of URIs indicating where the update image is to be applied.", - "format": "uri", + "description": "An array of URIs that indicate where to apply the update image.", + "format": "uri-reference", "items": { "type": "string" }, - "longDescription": "This array property shall contain zero or more URIs indicating where the update image is to be applied. These targets should correspond to SoftwareInventory instances or their RelatedItems. If this property is not present or contains zero targets, the Service shall apply the software image to all applicable targets (as determined by the Service).", + "longDescription": "This array property shall contain zero or more URIs that indicate where to apply the update image. These targets should correspond to SoftwareInventory instances or their related items. If this parameter is not present or contains no targets, the Service shall apply the software image to all applicable targets, as determined by the Service.", "type": "array", "versionAdded": "v1_2_0" }, "TransferProtocol": { "$ref": "#/definitions/TransferProtocolType", - "description": "The network protocol used by the Update Service to retrieve the software image file located at the URI provided in ImageURI, if the URI does not contain a scheme.", - "longDescription": "This parameter shall contain the network protocol that the Update Service shall use to retreive the software image located at the ImageURI. If this parameter is not provided (or supported), and a transfer protocol is not specified by a scheme contained within ImageURI, the Update Service shall use HTTP to retrieve the image." + "description": "The network protocol that the Update Service uses to retrieve the software image file located at the URI provided in ImageURI, if the URI does not contain a scheme.", + "longDescription": "This parameter shall contain the network protocol that the Update Service shall use to retreive the software image located at the ImageURI. If this parameter is not provided (or supported), and a transfer protocol is not specified by a scheme contained within this URI, the Service shall use HTTP to retrieve the image." }, "Username": { - "description": "The username to be used when accessing the URI specified by the ImageURI parameter.", - "longDescription": "This parameter shall contain a string representing the username to be used when accessing the URI specified by the ImageURI parameter.", + "description": "The user name to access the URI specified by the ImageURI parameter.", + "longDescription": "This parameter shall represent the user name to access the URI specified by the ImageURI parameter.", "type": "string", "versionAdded": "v1_4_0" } }, "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -206,7 +206,7 @@ "properties": { "target": { "description": "Link to invoke action", - "format": "uri", + "format": "uri-reference", "type": "string" }, "title": { @@ -230,19 +230,19 @@ "NFS" ], "enumDeprecated": { - "NSF": "This value has been Deprecated in favor of NFS." + "NSF": "This value has been deprecated in favor of NFS." }, "enumDescriptions": { - "CIFS": "Common Internet File System protocol.", - "FTP": "File Transfer Protocol.", - "HTTP": "Hypertext Transfer Protocol.", - "HTTPS": "HTTP Secure protocol.", - "NFS": "Network File System protocol.", - "NSF": "Network File System protocol.", - "OEM": "A protocol defined by the manufacturer.", - "SCP": "Secure File Copy protocol.", - "SFTP": "Secure File Transfer Protocol.", - "TFTP": "Trivial File Transfer Protocol." + "CIFS": "Common Internet File System (CIFS).", + "FTP": "File Transfer Protocol (FTP).", + "HTTP": "Hypertext Transfer Protocol (HTTP).", + "HTTPS": "Hypertext Transfer Protocol Secure (HTTPS).", + "NFS": "Network File System (NFS).", + "NSF": "Network File System (NFS).", + "OEM": "A manufacturer-defined protocol.", + "SCP": "Secure Copy Protocol (SCP).", + "SFTP": "Secure File Transfer Protocol (SFTP).", + "TFTP": "Trivial File Transfer Protocol (TFTP)." }, "enumVersionAdded": { "NFS": "v1_3_0", @@ -253,12 +253,48 @@ }, "type": "string" }, + "UpdateParameters": { + "additionalProperties": false, + "description": "The update parameters used with MultipartHttpPushUri software update.", + "longDescription": "This type shall contain the update parameters when passing the update image when using the URI specified by the MultipartHttpPushUri property to push a software image.", + "patternProperties": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { + "description": "This property shall specify a valid odata or Redfish property.", + "type": [ + "array", + "boolean", + "integer", + "number", + "null", + "object", + "string" + ] + } + }, + "properties": { + "Targets": { + "description": "An array of URIs that indicate where to apply the update image.", + "format": "uri-reference", + "items": { + "type": [ + "string", + "null" + ] + }, + "longDescription": "This property shall contain zero or more URIs that indicate where to apply the update image when using the URI specified by the MultipartHttpPushUri property to push a software image. These targets should correspond to SoftwareInventory instances or their related items. If this property is not present or contains no targets, the Service shall apply the software image to all applicable targets, as determined by the Service.", + "readonly": true, + "type": "array", + "versionAdded": "v1_6_0" + } + }, + "type": "object" + }, "UpdateService": { "additionalProperties": false, - "description": "This is the schema definition for the Update Service. It represents the properties for the service itself and has links to collections of firmware and software inventory.", - "longDescription": "This resource shall be used to represent an Update Service for a Redfish implementation. It represents the properties that affect the service itself.", + "description": "The UpdateService schema describes the Update Service and the properties for the Service itself with links to collections of firmware and software inventory. The Update Service also provides methods for updating software and firmware of the Resources in a Redfish Service.", + "longDescription": "This Resource shall represent an Update Service and the properties that affect the Service itself for a Redfish implementation.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -273,21 +309,21 @@ }, "properties": { "@odata.context": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/context" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/context" }, "@odata.etag": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/etag" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/etag" }, "@odata.id": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/id" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/id" }, "@odata.type": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/type" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/type" }, "Actions": { "$ref": "#/definitions/Actions", - "description": "The available actions for this resource.", - "longDescription": "The Actions property shall contain the available actions for this resource." + "description": "The available actions for this Resource.", + "longDescription": "This property shall contain the available actions for this Resource." }, "Description": { "anyOf": [ @@ -301,35 +337,28 @@ "readonly": true }, "FirmwareInventory": { - "anyOf": [ - { - "$ref": "http://redfish.dmtf.org/schemas/v1/SoftwareInventoryCollection.json#/definitions/SoftwareInventoryCollection" - }, - { - "type": "null" - } - ], + "$ref": "http://redfish.dmtf.org/schemas/v1/SoftwareInventoryCollection.json#/definitions/SoftwareInventoryCollection", "description": "An inventory of firmware.", - "longDescription": "The value of this property shall be a link to a resource of type SoftwareInventoryCollection.", + "longDescription": "This property shall contain a link to a Resource of type SoftwareInventoryCollection.", "readonly": true }, "HttpPushUri": { - "description": "The URI used to perform an HTTP or HTTPS push update to the Update Service.", - "format": "uri", - "longDescription": "This property shall contain a URI at which the UpdateService supports an HTTP or HTTPS POST of a software image for the purpose of installing software contained within the image. Access to this URI shall require the same privilege as access to the Update Service.", + "description": "The URI used to perform an HTTP or HTTPS push update to the Update Service. The format of the message is vendor-specific.", + "format": "uri-reference", + "longDescription": "This property shall contain a URI at which the Update Service supports an HTTP or HTTPS POST of a software image for the purpose of installing software contained within the image. Access to this URI shall require the same privilege as access to the Update Service. If the Service requires the Content-Length header for POST requests to this URI, the service should return HTTP 411 if the client does not include this header in the POST request.", "readonly": true, "type": "string", "versionAdded": "v1_1_0" }, "HttpPushUriOptions": { "$ref": "#/definitions/HttpPushUriOptions", - "description": "This property contains options for software update via HttpPushUri.", - "longDescription": "The value of this property shall contain options and requirements of the service for software update via HttpPushUri.", + "description": "The options for HttpPushUri-provided software updates.", + "longDescription": "This property shall contain options and requirements of the Service for HttpPushUri-provided software updates.", "versionAdded": "v1_4_0" }, "HttpPushUriOptionsBusy": { - "description": "This represents if the properties of HttpPushUriOptions are reserved by any client.", - "longDescription": "This property shall be a boolean that determines when the properties within the HttpPushUriOptions object are being used by a client for software updates. A client should set this property to True when it is using any properties in HttpPushUriOptions for software update, and should set it to False when it is no longer using HttpPushUriOptions properties for updates. The property can provide multiple clients a way to negotiate ownership of HttpPushUriOptions. This will help clients to know if a firmware update using HttpPushUriOptions is used by another client. This property has no functional requirements for the Service.", + "description": "An indication of whether a client has reserved the HttpPushUriOptions properties for software updates.", + "longDescription": "This property shall indicate whether a client uses the HttpPushUriOptions properties for software updates. When a client uses any HttpPushUriOptions properties for software updates, it should set this property to `true`. When a client no longer uses HttpPushUriOptions properties for software updates, it should set this property to `false`. This property can provide multiple clients a way to negotiate ownership of HttpPushUriOptions properties. Clients can use this property to determine whether another client uses HttpPushUriOptions properties for software updates. This property has no functional requirements for the Service.", "readonly": false, "type": [ "boolean", @@ -338,22 +367,22 @@ "versionAdded": "v1_4_0" }, "HttpPushUriTargets": { - "description": "The array of URIs indicating the target for applying the update image.", - "format": "uri", + "description": "An array of URIs that indicate where to apply the update image.", + "format": "uri-reference", "items": { "type": [ "string", "null" ] }, - "longDescription": "This property shall contain zero or more URIs indicating the targets for applying the update image when using HttpPushUri to push a software image. These targets should correspond to SoftwareInventory instances or their RelatedItems. If this property is not present or contains zero targets, the Service shall apply the software image to all applicable targets (as determined by the Service).", + "longDescription": "This property shall contain zero or more URIs that indicate where to apply the update image when using the URI specified by the HttpPushUri property to push a software image. These targets should correspond to SoftwareInventory instances or their related items. If this property is not present or contains no targets, the Service shall apply the software image to all applicable targets, as determined by the Service.", "readonly": false, "type": "array", "versionAdded": "v1_2_0" }, "HttpPushUriTargetsBusy": { - "description": "This represents if the HttpPushUriTargets property is reserved by any client.", - "longDescription": "This property shall be a boolean that determines when the HttpPushUriTargets property is being used by a client for firmware updates. A client should set this property to True when it is using HttpPushUriTargets for firmware update, and should set it to False when it is no longer using HttpPushUriTargets for updates. The property can provide multiple clients a way to negotiate ownership of HttpPushUriTargets. This will help clients to know if a firmware update using HttpPushUriTargets is used by another client. This property has no functional requirements for the Service.", + "description": "An indication of whether any client has reserved the HttpPushUriTargets property.", + "longDescription": "This property shall indicate whether any client has reserved the HttpPushUriTargets property for firmware updates. A client should set this property to `true` when it uses HttpPushUriTargets for firmware updates. A client should set it to `false` when it is no longer uses HttpPushUriTargets for updates. The property can provide multiple clients a way to negotiate ownership of HttpPushUriTargets and helps clients determine whether another client is using HttpPushUriTargets to make firmware updates. This property has no functional requirements for the Service.", "readonly": false, "type": [ "boolean", @@ -365,18 +394,37 @@ "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Id", "readonly": true }, + "MaxImageSizeBytes": { + "description": "The maximum size in bytes of the software update image that this Service supports.", + "longDescription": "This property shall indicate the maximum size of the software update image that clients can send to this Update Service.", + "readonly": true, + "type": [ + "integer", + "null" + ], + "units": "By", + "versionAdded": "v1_5_0" + }, + "MultipartHttpPushUri": { + "description": "The URI used to perform a Redfish Specification-defined Multipart HTTP or HTTPS push update to the Update Service.", + "format": "uri-reference", + "longDescription": "This property shall contain a URI used to perform a Redfish Specification-defined Multipart HTTP or HTTPS POST of a software image for the purpose of installing software contained within the image.", + "readonly": true, + "type": "string", + "versionAdded": "v1_6_0" + }, "Name": { "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Name", "readonly": true }, "Oem": { "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem", - "description": "This is the manufacturer/provider specific extension moniker used to divide the Oem object into sections.", - "longDescription": "The value of this string shall be of the format for the reserved word *Oem*." + "description": "The OEM extension property.", + "longDescription": "This property shall contain the OEM extensions. All values for properties that this object contains shall conform to the Redfish Specification-described requirements." }, "ServiceEnabled": { - "description": "This indicates whether this service is enabled.", - "longDescription": "The value of this property shall be a boolean indicating whether this service is enabled.", + "description": "An indication of whether this service is enabled.", + "longDescription": "This property shall indicate whether this service is enabled.", "readonly": false, "type": [ "boolean", @@ -384,22 +432,15 @@ ] }, "SoftwareInventory": { - "anyOf": [ - { - "$ref": "http://redfish.dmtf.org/schemas/v1/SoftwareInventoryCollection.json#/definitions/SoftwareInventoryCollection" - }, - { - "type": "null" - } - ], + "$ref": "http://redfish.dmtf.org/schemas/v1/SoftwareInventoryCollection.json#/definitions/SoftwareInventoryCollection", "description": "An inventory of software.", - "longDescription": "The value of this property shall be a link to a resource of type SoftwareInventoryCollection.", + "longDescription": "This property shall contain a link to a Resource of type SoftwareInventoryCollection.", "readonly": true }, "Status": { "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Status", - "description": "This property describes the status and health of the resource and its children.", - "longDescription": "This property shall contain any status or health properties of the resource." + "description": "The status and health of the Resource and its subordinate or dependent Resources.", + "longDescription": "This property shall contain any status or health properties of the Resource." } }, "required": [ @@ -412,6 +453,6 @@ } }, "owningEntity": "DMTF", - "release": "2018.3", - "title": "#UpdateService.v1_4_0.UpdateService" + "release": "2019.2", + "title": "#UpdateService.v1_6_0.UpdateService" } \ No newline at end of file diff --git a/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/VLanNetworkInterface/VLanNetworkInterface.json b/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/VLanNetworkInterface/VLanNetworkInterface.json index b52266fb..efabbc0c 100644 --- a/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/VLanNetworkInterface/VLanNetworkInterface.json +++ b/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/VLanNetworkInterface/VLanNetworkInterface.json @@ -1,14 +1,15 @@ { + "$id": "http://redfish.dmtf.org/schemas/v1/VLanNetworkInterface.v1_1_4.json", "$ref": "#/definitions/VLanNetworkInterface", "$schema": "http://redfish.dmtf.org/schemas/v1/redfish-schema-v1.json", - "copyright": "Copyright 2014-2018 DMTF. For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright", + "copyright": "Copyright 2014-2019 DMTF. For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright", "definitions": { "Actions": { "additionalProperties": false, - "description": "The available actions for this resource.", - "longDescription": "This type shall contain the available actions for this resource.", + "description": "The available actions for this Resource.", + "longDescription": "This type shall contain the available actions for this Resource.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -24,18 +25,19 @@ "properties": { "Oem": { "$ref": "#/definitions/OemActions", - "description": "This property contains the available OEM specific actions for this resource.", - "longDescription": "This property shall contain any additional OEM actions for this resource." + "description": "The available OEM-specific actions for this Resource.", + "longDescription": "This property shall contain the available OEM-specific actions for this Resource.", + "versionAdded": "v1_1_0" } }, "type": "object" }, "OemActions": { "additionalProperties": true, - "description": "The available OEM specific actions for this resource.", - "longDescription": "This type shall contain any additional OEM actions for this resource.", + "description": "The available OEM-specific actions for this Resource.", + "longDescription": "This type shall contain the available OEM-specific actions for this Resource.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -53,10 +55,10 @@ }, "VLAN": { "additionalProperties": false, - "description": "This type describes the attributes of a Virtual LAN.", - "longDescription": "This type shall contain any attributes of a Virtual LAN.", + "description": "The attributes of a VLAN.", + "longDescription": "This type shall contain any attributes of a VLAN.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -71,8 +73,8 @@ }, "properties": { "VLANEnable": { - "description": "This indicates if this VLAN is enabled.", - "longDescription": "The value of this property shall be used to indicate if this VLAN is enabled for this interface.", + "description": "An indication of whether this VLAN is enabled for this VLAN network interface.", + "longDescription": "This property shall indicate whether this VLAN is enabled for this VLAN network interface.", "readonly": false, "type": [ "boolean", @@ -88,8 +90,8 @@ "type": "null" } ], - "description": "This indicates the VLAN identifier for this VLAN.", - "longDescription": "The value of this property shall be used to indicate the VLAN identifier for this VLAN.", + "description": "The ID for this VLAN.", + "longDescription": "This property shall contain the ID for this VLAN.", "readonly": false } }, @@ -106,10 +108,10 @@ }, "VLanNetworkInterface": { "additionalProperties": false, - "description": "This resource describes the attributes of a Virtual LAN.", - "longDescription": "This resource shall contain any attributes of a Virtual LAN.", + "description": "The attributes of a VLAN.", + "longDescription": "The VLanNetworkInterface Schema shall contain any attributes of a VLAN.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -124,21 +126,22 @@ }, "properties": { "@odata.context": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/context" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/context" }, "@odata.etag": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/etag" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/etag" }, "@odata.id": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/id" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/id" }, "@odata.type": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/type" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/type" }, "Actions": { "$ref": "#/definitions/Actions", - "description": "The available actions for this resource.", - "longDescription": "The Actions property shall contain the available actions for this resource." + "description": "The available actions for this Resource.", + "longDescription": "This property shall contain the available actions for this Resource.", + "versionAdded": "v1_1_0" }, "Description": { "anyOf": [ @@ -161,12 +164,12 @@ }, "Oem": { "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem", - "description": "This is the manufacturer/provider specific extension moniker used to divide the Oem object into sections.", - "longDescription": "The value of this string shall be of the format for the reserved word *Oem*." + "description": "The OEM extension property.", + "longDescription": "This property shall contain the OEM extensions. All values for properties that this object contains shall conform to the Redfish Specification-described requirements." }, "VLANEnable": { - "description": "This indicates if this VLAN is enabled.", - "longDescription": "The value of this property shall be used to indicate if this VLAN is enabled for this interface.", + "description": "An indication of whether this VLAN is enabled for this interface.", + "longDescription": "This property shall indicate whether this VLAN is enabled for this interface.", "readonly": false, "type": [ "boolean", @@ -182,8 +185,8 @@ "type": "null" } ], - "description": "This indicates the VLAN identifier for this VLAN.", - "longDescription": "The value of this property shall be used to indicate the VLAN identifier for this VLAN.", + "description": "The ID for this VLAN.", + "longDescription": "This property shall contain the ID for this VLAN.", "readonly": false } }, @@ -201,5 +204,6 @@ } }, "owningEntity": "DMTF", - "title": "#VLanNetworkInterface.v1_1_2.VLanNetworkInterface" + "release": "2017.1", + "title": "#VLanNetworkInterface.v1_1_4.VLanNetworkInterface" } \ No newline at end of file diff --git a/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/VirtualMedia/VirtualMedia.json b/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/VirtualMedia/VirtualMedia.json index 80536909..dcdeee99 100644 --- a/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/VirtualMedia/VirtualMedia.json +++ b/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/VirtualMedia/VirtualMedia.json @@ -1,15 +1,15 @@ { - "$id": "http://redfish.dmtf.org/schemas/v1/VirtualMedia.v1_3_0.json", + "$id": "http://redfish.dmtf.org/schemas/v1/VirtualMedia.v1_3_2.json", "$ref": "#/definitions/VirtualMedia", "$schema": "http://redfish.dmtf.org/schemas/v1/redfish-schema-v1.json", - "copyright": "Copyright 2014-2018 DMTF. For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright", + "copyright": "Copyright 2014-2019 DMTF. For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright", "definitions": { "Actions": { "additionalProperties": false, - "description": "The available actions for this resource.", - "longDescription": "This type shall contain the available actions for this resource.", + "description": "The available actions for this Resource.", + "longDescription": "This type shall contain the available actions for this Resource.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -31,8 +31,8 @@ }, "Oem": { "$ref": "#/definitions/OemActions", - "description": "This property contains the available OEM specific actions for this resource.", - "longDescription": "This property shall contain any additional OEM actions for this resource.", + "description": "The available OEM-specific actions for this Resource.", + "longDescription": "This property shall contain the available OEM-specific actions for this Resource.", "versionAdded": "v1_1_0" } }, @@ -48,18 +48,18 @@ "enumDescriptions": { "Applet": "Connected to a client application.", "NotConnected": "No current connection.", - "Oem": "Connected via an OEM-defined method.", + "Oem": "Connected through an OEM-defined method.", "URI": "Connected to a URI location." }, "type": "string" }, "EjectMedia": { "additionalProperties": false, - "description": "This action is used to detach remote media from virtual media.", - "longDescription": "This action shall detach the remote media from the virtual media. At the completion of the operation, inserted shall be set to false and the image name shall be cleared.", + "description": "This action detaches remote media from virtual media.", + "longDescription": "This action shall detach the remote media from the virtual media. At the completion of the operation, inserted shall be set to `false` and the image name shall be cleared.", "parameters": {}, "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -75,7 +75,7 @@ "properties": { "target": { "description": "Link to invoke action", - "format": "uri", + "format": "uri-reference", "type": "string" }, "title": { @@ -88,52 +88,52 @@ }, "InsertMedia": { "additionalProperties": false, - "description": "This action is used to attach remote media to virtual media.", + "description": "This action attaches remote media to virtual media.", "longDescription": "This action shall attach remote media to virtual media.", "parameters": { "Image": { "description": "The URI of the remote media to attach to the virtual media.", - "longDescription": "This value shall specify the URI of the remote media to be attached to the virtual media.", + "longDescription": "This parameter shall specify the URI of the remote media to be attached to the virtual media.", "requiredParameter": true, "type": "string" }, "Inserted": { - "description": "Indicates if the image is to be treated as inserted upon completion of the action.", - "longDescription": "This value shall specify if the image is to be treated as inserted upon completion of the action. If this parameter is not provided by the client, the service shall default this value to be true.", + "description": "An indication of whether the image is treated as inserted upon completion of the action. The default is `true`.", + "longDescription": "This parameter shall indicate whether the image is treated as inserted upon completion of the action. If the client does not provide this parameter, the service shall default this value to `true`.", "type": "boolean" }, "Password": { - "description": "The password to be used when accessing the URI specified by the Image parameter.", - "longDescription": "This parameter shall contain a string representing the password to be used when accessing the URI specified by the Image parameter.", + "description": "The password to access the Image parameter-specified URI.", + "longDescription": "This parameter shall represent the password to access the Image parameter-specified URI.", "type": "string", "versionAdded": "v1_3_0" }, "TransferMethod": { "$ref": "#/definitions/TransferMethod", - "description": "Transfer method to use with the given Image.", - "longDescription": "This parameter shall contain a value describing how the image transfer is done.", + "description": "The transfer method to use with the Image.", + "longDescription": "This parameter shall describe how the image transfer occurs.", "versionAdded": "v1_3_0" }, "TransferProtocolType": { "$ref": "#/definitions/TransferProtocolType", - "description": "Network protocol to use with the image.", - "longDescription": "This parameter shall contain a value representing the network protocol to use with the specified image URI.", + "description": "The network protocol to use with the image.", + "longDescription": "This parameter shall represent the network protocol to use with the specified image URI.", "versionAdded": "v1_3_0" }, "UserName": { - "description": "The username to be used when accessing the URI specified by the Image parameter.", - "longDescription": "This parameter shall contain a string representing the username to be used when accessing the URI specified by the Image parameter.", + "description": "The user name to access the Image parameter-specified URI.", + "longDescription": "This parameter shall contain the user name to access the Image parameter-specified URI.", "type": "string", "versionAdded": "v1_3_0" }, "WriteProtected": { - "description": "Indicates if the remote media is supposed to be treated as write protected.", - "longDescription": "This value shall specify if the remote media is supposed to be treated as write protected. If this parameter is not provided by the client, the service shall default this value to be true.", + "description": "An indication of whether the remote media is treated as write-protected. The default is `true`.", + "longDescription": "This parameter shall indicate whether the remote media is treated as write-protected. If the client does not provide this parameter, the service shall default this value to `true`.", "type": "boolean" } }, "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -149,7 +149,7 @@ "properties": { "target": { "description": "Link to invoke action", - "format": "uri", + "format": "uri-reference", "type": "string" }, "title": { @@ -177,10 +177,10 @@ }, "OemActions": { "additionalProperties": true, - "description": "The available OEM specific actions for this resource.", - "longDescription": "This type shall contain any additional OEM actions for this resource.", + "description": "The available OEM-specific actions for this Resource.", + "longDescription": "This type shall contain the available OEM-specific actions for this Resource.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -220,24 +220,24 @@ "OEM" ], "enumDescriptions": { - "CIFS": "Common Internet File System protocol.", - "FTP": "File Transfer Protocol.", - "HTTP": "Hypertext Transfer Protocol.", - "HTTPS": "HTTP Secure protocol.", - "NFS": "Network File System protocol.", - "OEM": "A protocol defined by the manufacturer.", - "SCP": "Secure File Copy protocol.", - "SFTP": "Secure File Transfer Protocol.", - "TFTP": "Trivial File Transfer Protocol." + "CIFS": "Common Internet File System (CIFS).", + "FTP": "File Transfer Protocol (FTP).", + "HTTP": "Hypertext Transfer Protocol (HTTP).", + "HTTPS": "Hypertext Transfer Protocol Secure (HTTPS).", + "NFS": "Network File System (NFS).", + "OEM": "A manufacturer-defined protocol.", + "SCP": "Secure Copy Protocol (SCP).", + "SFTP": "Secure File Transfer Protocol (SFTP).", + "TFTP": "Trivial File Transfer Protocol (TFTP)." }, "type": "string" }, "VirtualMedia": { "additionalProperties": false, - "description": "The VirtualMedia schema contains properties related to monitoring and control of an instance of virtual media such as a remote CD, DVD, or USB device. Virtual media functionality is provided by a Manager for a system or device.", - "longDescription": "This resource shall be used to represent a virtual media service for a Redfish implementation.", + "description": "The VirtualMedia schema contains properties related to the monitor and control of an instance of virtual media, such as a remote CD, DVD, or USB device. A manager for a system or device provides virtual media functionality.", + "longDescription": "This Resource shall represent a virtual media service for a Redfish implementation.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -252,21 +252,21 @@ }, "properties": { "@odata.context": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/context" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/context" }, "@odata.etag": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/etag" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/etag" }, "@odata.id": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/id" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/id" }, "@odata.type": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/type" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/type" }, "Actions": { "$ref": "#/definitions/Actions", - "description": "The available actions for this resource.", - "longDescription": "The Actions property shall contain the available actions for this resource.", + "description": "The available actions for this Resource.", + "longDescription": "This property shall contain the available actions for this Resource.", "versionAdded": "v1_1_0" }, "ConnectedVia": { @@ -278,8 +278,8 @@ "type": "null" } ], - "description": "Current virtual media connection methods.", - "longDescription": "The value of this property shall indicate the current connection method from a client to the virtual media represented by this resource. A value of NotConnected shall indicate no connection is present. A value of URI shall indicate that a remote connection via a URI reference type is being used.", + "description": "The current virtual media connection method.", + "longDescription": "This property shall contain the current connection method from a client to the virtual media that this Resource represents.", "readonly": true }, "Description": { @@ -298,9 +298,9 @@ "readonly": true }, "Image": { - "description": "A URI providing the location of the selected image.", - "format": "uri", - "longDescription": "The value of this string shall be an URI. A null value indicated no image connection.", + "description": "The URI of the location of the selected image.", + "format": "uri-reference", + "longDescription": "This property shall contain an URI. A null value indicated no image connection.", "readonly": false, "type": [ "string", @@ -309,7 +309,7 @@ }, "ImageName": { "description": "The current image name.", - "longDescription": "The value of this property shall be the name of the image.", + "longDescription": "This property shall contain the name of the image.", "readonly": true, "type": [ "string", @@ -317,8 +317,8 @@ ] }, "Inserted": { - "description": "Indicates if virtual media is inserted in the virtual device.", - "longDescription": "The value of this property shall be used to indicate if media is present in the virtual media device. This is usually only applicable to remoting of devices and not for image virtual media usage.", + "description": "An indication of whether virtual media is inserted into the virtual device.", + "longDescription": "This property shall indicate whether media is present in the virtual media device.", "readonly": false, "type": [ "boolean", @@ -326,7 +326,7 @@ ] }, "MediaTypes": { - "description": "This is the media types supported as virtual media.", + "description": "The media types supported as virtual media.", "items": { "$ref": "#/definitions/MediaType" }, @@ -340,12 +340,12 @@ }, "Oem": { "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem", - "description": "This is the manufacturer/provider specific extension moniker used to divide the Oem object into sections.", - "longDescription": "The value of this string shall be of the format for the reserved word *Oem*." + "description": "The OEM extension property.", + "longDescription": "This property shall contain the OEM extensions. All values for properties that this object contains shall conform to the Redfish Specification-described requirements." }, "Password": { - "description": "The password to be used when accessing the URI specified by the Image parameter. This property is null on a GET.", - "longDescription": "This parameter shall contain a string representing the password to be used when accessing the URI specified by the Image parameter. The value shall be null for GET requests.", + "description": "The password to access the Image parameter-specified URI. This property is null in responses.", + "longDescription": "This parameter shall represent the password to access the Image parameter-specified URI. The value shall be null in responses.", "readonly": false, "type": [ "string", @@ -362,8 +362,8 @@ "type": "null" } ], - "description": "Transfer method to use with the given Image.", - "longDescription": "This parameter shall contain a value describing how the image transfer is done.", + "description": "The transfer method to use with the Image.", + "longDescription": "This parameter shall describe how the image transfer occurs.", "readonly": false, "versionAdded": "v1_3_0" }, @@ -376,14 +376,14 @@ "type": "null" } ], - "description": "Network protocol to use with the image.", - "longDescription": "This parameter shall contain a value representing the network protocol to use with the specified image URI.", + "description": "The network protocol to use with the image.", + "longDescription": "This parameter shall represent the network protocol to use with the specified image URI.", "readonly": false, "versionAdded": "v1_3_0" }, "UserName": { - "description": "The username to be used when accessing the URI specified by the Image parameter.", - "longDescription": "This parameter shall contain a string representing the username to be used when accessing the URI specified by the Image parameter.", + "description": "The user name to access the Image parameter-specified URI.", + "longDescription": "This parameter shall represent the user name to access the Image parameter-specified URI.", "readonly": false, "type": [ "string", @@ -392,8 +392,8 @@ "versionAdded": "v1_3_0" }, "WriteProtected": { - "description": "Indicates the media is write protected.", - "longDescription": "The value of this property shall be used to indicate if the remote device media prevents writing to that media.", + "description": "An indication of whether the media is write-protected.", + "longDescription": "This property shall indicate whether the remote device media prevents writing to that media.", "readonly": false, "type": [ "boolean", @@ -412,5 +412,5 @@ }, "owningEntity": "DMTF", "release": "2018.3", - "title": "#VirtualMedia.v1_3_0.VirtualMedia" + "title": "#VirtualMedia.v1_3_2.VirtualMedia" } \ No newline at end of file diff --git a/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/Volume/Volume.json b/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/Volume/Volume.json index a3f81191..0f8d402d 100644 --- a/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/Volume/Volume.json +++ b/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/Volume/Volume.json @@ -1,328 +1,673 @@ { - "$schema": "http://redfish.dmtf.org/schemas/v1/redfish-schema.v1_2_0.json", - "title": "#Volume.v1_0_3.Volume", "$ref": "#/definitions/Volume", + "$schema": "http://redfish.dmtf.org/schemas/v1/redfish-schema-v1.json", + "copyright": "Copyright 2016-2018 Storage Networking Industry Association (SNIA), USA. All rights reserved. For the full SNIA copyright policy, see http://www.snia.org/about/corporate_info/copyright", "definitions": { - "Initialize": { + "Actions": { + "additionalProperties": false, "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", "boolean", + "integer", "number", "null", "object", "string" - ], - "description": "This property shall specify a valid odata or Redfish property." + ] } }, - "type": "object", - "additionalProperties": false, "properties": { - "title": { - "type": "string", - "description": "Friendly action name" + "#Volume.CheckConsistency": { + "$ref": "#/definitions/CheckConsistency" }, + "#Volume.Initialize": { + "$ref": "#/definitions/Initialize" + }, + "Oem": { + "$ref": "#/definitions/OemActions" + } + }, + "type": "object" + }, + "CheckConsistency": { + "additionalProperties": false, + "description": "This action is used to force a check of the Volume's parity or redundant data to ensure it matches calculated values.", + "longDescription": "This defines the name of the custom action supported on this resource.", + "parameters": {}, + "patternProperties": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "description": "This property shall specify a valid odata or Redfish property.", + "type": [ + "array", + "boolean", + "integer", + "number", + "null", + "object", + "string" + ] + } + }, + "properties": { "target": { - "type": "string", + "description": "Link to invoke action", "format": "uri", - "description": "Link to invoke action" + "type": "string" + }, + "title": { + "description": "Friendly action name", + "type": "string" } }, - "description": "This action is used to prepare the contents of the volume for use by the system.", - "longDescription": "This defines the name of the custom action supported on this resource." + "type": "object" }, "EncryptionTypes": { - "type": "string", "enum": [ "NativeDriveEncryption", "ControllerAssisted", "SoftwareAssisted" ], "enumDescriptions": { - "NativeDriveEncryption": "The volume is utilizing the native drive encryption capabilities of the drive hardware.", "ControllerAssisted": "The volume is being encrypted by the storage controller entity.", + "NativeDriveEncryption": "The volume is utilizing the native drive encryption capabilities of the drive hardware.", "SoftwareAssisted": "The volume is being encrypted by software running on the system or the operating system." - } + }, + "type": "string" }, - "Operations": { - "type": "object", + "Initialize": { + "additionalProperties": false, + "description": "This action is used to prepare the contents of the volume for use by the system. If InitializeType is not specified in the request body, the InitializeType should be Fast.", + "longDescription": "This defines the name of the custom action supported on this resource. If InitializeType is not specified in the request body, the InitializeType should be Fast.", + "parameters": { + "InitializeType": { + "$ref": "http://redfish.dmtf.org/schemas/swordfish/v1/Volume.json#/definitions/InitializeType", + "description": "The type of initialization to be performed.", + "longDescription": "This defines the property name for the action." + } + }, "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", "boolean", + "integer", "number", "null", "object", "string" + ] + } + }, + "properties": { + "target": { + "description": "Link to invoke action", + "format": "uri", + "type": "string" + }, + "title": { + "description": "Friendly action name", + "type": "string" + } + }, + "type": "object" + }, + "InitializeType": { + "enum": [ + "Fast", + "Slow" + ], + "enumDescriptions": { + "Fast": "The volume is prepared for use quickly, typically by erasing just the beginning and end of the space so that partitioning can be performed.", + "Slow": "The volume is prepared for use slowly, typically by completely erasing the volume." + }, + "type": "string" + }, + "Links": { + "additionalProperties": false, + "description": "Add ability to manage spare capacity.", + "patternProperties": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "description": "This property shall specify a valid odata or Redfish property.", + "type": [ + "array", + "boolean", + "integer", + "number", + "null", + "object", + "string" + ] + } + }, + "properties": { + "ClassOfService": { + "anyOf": [ + { + "$ref": "http://redfish.dmtf.org/schemas/swordfish/v1/ClassOfService.json#/definitions/ClassOfService" + }, + { + "type": "null" + } ], - "description": "This property shall specify a valid odata or Redfish property." + "description": "The ClassOfService that this storage volume conforms to.", + "longDescription": "This property shall contain a reference to the ClassOfService that this storage volume conforms to.", + "readonly": true + }, + "DedicatedSpareDrives": { + "description": "An array of references to the drives which are dedicated spares for this volume.", + "items": { + "$ref": "http://redfish.dmtf.org/schemas/v1/Drive.json#/definitions/Drive" + }, + "longDescription": "The value of this property shall be a reference to the resources that this volume is associated with and shall reference resources of type Drive. This property shall only contain references to Drive entities which are currently assigned as a dedicated spare and are able to support this Volume.", + "readonly": true, + "type": "array" + }, + "DedicatedSpareDrives@odata.count": { + "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/count" + }, + "Drives": { + "description": "An array of references to the drives which contain this volume. This will reference Drives that either wholly or only partly contain this volume.", + "items": { + "$ref": "http://redfish.dmtf.org/schemas/v1/Drive.json#/definitions/Drive" + }, + "longDescription": "The value of this property shall be a reference to the resources that this volume is associated with and shall reference resources of type Drive. This property shall only contain references to Drive entities which are currently members of the Volume, not hot spare Drives which are not currently a member of the volume.", + "readonly": true, + "type": "array" + }, + "Drives@odata.count": { + "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/count" + }, + "Oem": { + "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem", + "description": "Oem extension object.", + "longDescription": "This object represents the Oem property. All values for resources described by this schema shall comply to the requirements as described in the Redfish specification." + }, + "SpareResourceSets": { + "description": "An array of references to SpareResourceSets.", + "items": { + "$ref": "http://redfish.dmtf.org/schemas/swordfish/v1/SpareResourceSet.json#/definitions/SpareResourceSet" + }, + "longDescription": "Each referenced SpareResourceSet shall contain resources that may be utilized to replace the capacity provided by a failed resource having a compatible type.", + "readonly": false, + "type": "array" + }, + "SpareResourceSets@odata.count": { + "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/count" } }, + "type": "object" + }, + "OemActions": { "additionalProperties": true, + "patternProperties": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "description": "This property shall specify a valid odata or Redfish property.", + "type": [ + "array", + "boolean", + "integer", + "number", + "null", + "object", + "string" + ] + } + }, + "properties": {}, + "type": "object" + }, + "Operation": { + "additionalProperties": false, + "patternProperties": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "description": "This property shall specify a valid odata or Redfish property.", + "type": [ + "array", + "boolean", + "integer", + "number", + "null", + "object", + "string" + ] + } + }, "properties": { + "AssociatedTask": { + "$ref": "http://redfish.dmtf.org/schemas/v1/Task.json#/definitions/Task", + "description": "A reference to the task associated with the operation if any.", + "readonly": true + }, "OperationName": { + "description": "The name of the operation.", + "readonly": true, "type": [ "string", "null" - ], - "readonly": true, - "description": "The name of the operation." + ] }, "PercentageComplete": { + "description": "The percentage of the operation that has been completed.", + "readonly": true, "type": [ - "number", + "integer", "null" - ], - "readonly": true, - "description": "The percentage of the operation that has been completed." - }, - "AssociatedTask": { - "$ref": "http://redfish.dmtf.org/schemas/v1/Task.json#/definitions/Task", - "readonly": true, - "description": "A reference to the task associated with the operation if any." + ] } }, - "description": "An operation currently running on this resource.", - "longDescription": "This type shall describe a currently running operation on the resource." + "type": "object" }, - "VolumeType": { - "type": "string", + "RAIDType": { "enum": [ - "RawDevice", - "NonRedundant", - "Mirrored", - "StripedWithParity", - "SpannedMirrors", - "SpannedStripesWithParity" + "RAID0", + "RAID1", + "RAID3", + "RAID4", + "RAID5", + "RAID6", + "RAID10", + "RAID01", + "RAID6TP", + "RAID1E", + "RAID50", + "RAID60", + "RAID00", + "RAID10E", + "RAID1Triple", + "RAID10Triple" ], "enumDescriptions": { - "RawDevice": "The volume is a raw physical device without any RAID or other virtualization applied.", - "NonRedundant": "The volume is a non-redundant storage device.", - "Mirrored": "The volume is a mirrored device.", - "StripedWithParity": "The volume is a device which uses parity to retain redundant information.", - "SpannedMirrors": "The volume is a spanned set of mirrored devices.", - "SpannedStripesWithParity": "The volume is a spanned set of devices which uses parity to retain redundant information." - } + "RAID0": "A placement policy where consecutive logical blocks of data are uniformly distributed across a set of independent storage devices without offering any form of redundancy.", + "RAID00": "A placement policy that creates a RAID 0 stripe set over two or more RAID 0 sets.", + "RAID01": "A data placement policy that creates a mirrored device (RAID 1) over a set of striped devices (RAID 0).", + "RAID1": "A placement policy where each logical block of data is stored on more than one independent storage device.", + "RAID10": "A placement policy that creates a striped device (RAID 0) over a set of mirrored devices (RAID 1).", + "RAID10E": "A placement policy that uses a RAID 0 stripe set over two or more RAID 10 sets.", + "RAID10Triple": "A placement policy that uses a striped device (RAID 0) over a set of triple mirrored devices (RAID 1Triple).", + "RAID1E": "A placement policy that uses a form of mirroring implemented over a set of independent storage devices where logical blocks are duplicated on a pair of independent storage devices so that data is uniformly distributed across the storage devices.", + "RAID1Triple": "A placement policy where each logical block of data is mirrored three times across a set of three independent storage devices.", + "RAID3": "A placement policy using parity-based protection where logical bytes of data are uniformly distributed across a set of independent storage devices and where the parity is stored on a dedicated independent storage device.", + "RAID4": "A placement policy using parity-based protection where logical blocks of data are uniformly distributed across a set of independent storage devices and where the parity is stored on a dedicated independent storage device.", + "RAID5": "A placement policy using parity-based protection for storing stripes of 'n' logical blocks of data and one logical block of parity across a set of 'n+1' independent storage devices where the parity and data blocks are interleaved across the storage devices.", + "RAID50": "A placement policy that uses a RAID 0 stripe set over two or more RAID 5 sets of independent storage devices.", + "RAID6": "A placement policy using parity-based protection for storing stripes of 'n' logical blocks of data and two logical blocks of independent parity across a set of 'n+2' independent storage devices where the parity and data blocks are interleaved across the storage devices.", + "RAID60": "A placement policy that uses a RAID 0 stripe set over two or more RAID 6 sets of independent storage devices.", + "RAID6TP": "A placement policy that uses parity-based protection for storing stripes of 'n' logical blocks of data and three logical blocks of independent parity across a set of 'n+3' independent storage devices where the parity and data blocks are interleaved across the storage devices. This is commonly referred to as Triple Parity RAID. Data stored using this form of RAID is able to survive any three independent storage device failures without data loss." + }, + "enumLongDescriptions": { + "RAID0": "A placement policy where consecutive logical blocks of data are uniformly distributed across a set of independent storage devices without offering any form of redundancy. This is commonly referred to as data striping. This form of RAID will encounter data loss with the failure of any storage device in the set.", + "RAID00": "A placement policy that creates a RAID 0 stripe set over two or more RAID 0 sets. This is commonly referred to as RAID 0+0. This form of data layout is not fault tolerant; if any storage device fails there will be data loss.", + "RAID01": "A data placement policy that creates a mirrored device (RAID 1) over a set of striped devices (RAID 0). This is commonly referred to as RAID 0+1 or RAID 0/1. Data stored using this form of RAID is able to survive a single RAID 0 data set failure without data loss.", + "RAID1": "A placement policy where each logical block of data is stored on more than one independent storage device. This is commonly referred to as mirroring. Data stored using this form of RAID is able to survive a single storage device failure without data loss.", + "RAID10": "A placement policy that creates a striped device (RAID 0) over a set of mirrored devices (RAID 1). This is commonly referred to as RAID 1/0. Data stored using this form of RAID is able to survive storage device failures in each RAID 1 set without data loss.", + "RAID10E": "A placement policy that uses a RAID 0 stripe set over two or more RAID 10 sets. This is commonly referred to as Enhanced RAID 10. Data stored using this form of RAID is able to survive a single device failure within each nested RAID 1 set without data loss.", + "RAID10Triple": "A placement policy that uses a striped device (RAID 0) over a set of triple mirrored devices (RAID 1Triple). This form of RAID can survive up to two failures in each triple mirror set without data loss. ", + "RAID1E": "A placement policy that uses a form of mirroring implemented over a set of independent storage devices where logical blocks are duplicated on a pair of independent storage devices so that data is uniformly distributed across the storage devices. This is commonly referred to as RAID 1 Enhanced. Data stored using this form of RAID is able to survive a single storage device failure without data loss.", + "RAID1Triple": "A placement policy where each logical block of data is mirrored three times across a set of three independent storage devices. This is commonly referred to as three-way mirroring. This form of RAID can survive two device failures without data loss.", + "RAID3": "A placement policy using parity-based protection where logical bytes of data are uniformly distributed across a set of independent storage devices and where the parity is stored on a dedicated independent storage device. Data stored using this form of RAID is able to survive a single storage device failure without data loss. If the storage devices use rotating media, they are assumed to be rotationally synchronized, and the data stripe size should be no larger than the exported block size.", + "RAID4": "A placement policy using parity-based protection where logical blocks of data are uniformly distributed across a set of independent storage devices and where the parity is stored on a dedicated independent storage device. Data stored using this form of RAID is able to survive a single storage device failure without data loss.", + "RAID5": "A placement policy using parity-based protection for storing stripes of 'n' logical blocks of data and one logical block of parity across a set of 'n+1' independent storage devices where the parity and data blocks are interleaved across the storage devices. Data stored using this form of RAID is able to survive a single storage device failure without data loss.", + "RAID50": "A placement policy that uses a RAID 0 stripe set over two or more RAID 5 sets of independent storage devices. Data stored using this form of RAID is able to survive a single storage device failure within each RAID 5 set without data loss.", + "RAID6": "A placement policy using parity-based protection for storing stripes of 'n' logical blocks of data and two logical blocks of independent parity across a set of 'n+2' independent storage devices where the parity and data blocks are interleaved across the storage devices. Data stored using this form of RAID is able to survive any two independent storage device failures without data loss.", + "RAID60": "A placement policy that uses a RAID 0 stripe set over two or more RAID 6 sets of independent storage devices. Data stored using this form of RAID is able to survive two device failures within each RAID 6 set without data loss." + }, + "type": "string" }, "Volume": { - "type": "object", + "additionalProperties": false, + "description": "Volume contains properties used to describe a volume, virtual disk, LUN, or other logical storage entity for any system.", + "longDescription": "This resource shall be used to represent a volume, virtual disk, logical disk, LUN, or other logical storage for a Redfish implementation.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", "boolean", + "integer", "number", "null", "object", "string" - ], - "description": "This property shall specify a valid odata or Redfish property." + ] } }, - "additionalProperties": false, "properties": { "@odata.context": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.4.0.0.json#/definitions/context" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/context" + }, + "@odata.etag": { + "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/etag" }, "@odata.id": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.4.0.0.json#/definitions/id" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/id" }, "@odata.type": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.4.0.0.json#/definitions/type" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/type" }, - "Oem": { - "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem", - "description": "This is the manufacturer/provider specific extension moniker used to divide the Oem object into sections.", - "longDescription": "The value of this string shall be of the format for the reserved word *Oem*." + "AccessCapabilities": { + "description": "Supported IO access capabilities.", + "items": { + "anyOf": [ + { + "$ref": "http://redfish.dmtf.org/schemas/swordfish/v1/DataStorageLoSCapabilities.json#/definitions/StorageAccessCapability" + }, + { + "type": "null" + } + ] + }, + "longDescription": "Each entry shall specify a current storage access capability.", + "readonly": false, + "type": "array" }, - "Id": { - "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Id", - "readonly": true + "Actions": { + "$ref": "#/definitions/Actions", + "description": "The available actions for this resource.", + "longDescription": "The Actions property shall contain the available actions for this resource." }, - "Description": { + "AllocatedPools": { "anyOf": [ - {"$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Description"}, - {"type": "null"} + { + "$ref": "http://redfish.dmtf.org/schemas/swordfish/v1/StoragePoolCollection.json#/definitions/StoragePoolCollection" + }, + { + "type": "null" + } ], + "description": "An array of references to StoragePools allocated from this Volume.", + "longDescription": "The value of this property shall contain references to all storage pools allocated from this volume.", "readonly": true }, - "Name": { - "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Name", - "readonly": true + "BlockSizeBytes": { + "description": "The size of the smallest addressable unit (Block) of this volume in bytes.", + "longDescription": "This property shall contain size of the smallest addressable unit of the associated volume.", + "readonly": true, + "type": [ + "integer", + "null" + ], + "units": "By" }, - "Status": { - "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Status" + "Capacity": { + "anyOf": [ + { + "$ref": "http://redfish.dmtf.org/schemas/swordfish/v1/Capacity.json#/definitions/Capacity" + }, + { + "type": "null" + } + ], + "description": "Capacity utilization.", + "longDescription": "Information about the utilization of capacity allocated to this storage volume.", + "readonly": false }, "CapacityBytes": { + "description": "The size in bytes of this Volume.", + "longDescription": "This property shall contain the size in bytes of the associated volume.", + "readonly": true, "type": [ - "number", + "integer", "null" ], - "units": "By", - "readonly": true, - "description": "The size in bytes of this Volume.", - "longDescription": "This property shall contain the size in bytes of the associated volume." + "units": "By" }, - "VolumeType": { + "CapacitySources": { + "description": "An array of space allocations to this volume.", + "items": { + "$ref": "http://redfish.dmtf.org/schemas/swordfish/v1/Capacity.json#/definitions/CapacitySource" + }, + "longDescription": "Fully or partially consumed storage from a source resource. Each entry provides capacity allocation information from a named source resource.", + "readonly": false, + "type": "array" + }, + "CapacitySources@odata.count": { + "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/count" + }, + "Description": { "anyOf": [ - {"$ref": "#/definitions/VolumeType"}, - {"type": "null"} + { + "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Description" + }, + { + "type": "null" + } ], - "readonly": true, - "description": "The type of this volume.", - "longDescription": "This property shall contain the type of the associated Volume." + "readonly": true }, "Encrypted": { + "description": "Is this Volume encrypted.", + "longDescription": "This property shall contain a boolean indicator if the Volume is currently utilizing encryption or not.", + "readonly": false, "type": [ "boolean", "null" - ], - "readonly": false, - "description": "Is this Volume encrypted.", - "longDescription": "This property shall contain a boolean indicator if the Volume is currently utilizing encryption or not." + ] }, "EncryptionTypes": { - "type": "array", + "description": "The types of encryption used by this Volume.", "items": { "$ref": "#/definitions/EncryptionTypes" }, + "longDescription": "This property shall contain the types of encryption used by this Volume.", "readonly": false, - "description": "The types of encryption used by this Volume.", - "longDescription": "This property shall contain the types of encryption used by this Volume." + "type": "array" + }, + "IOStatistics": { + "anyOf": [ + { + "$ref": "http://redfish.dmtf.org/schemas/swordfish/v1/IOStatistics.json#/definitions/IOStatistics" + }, + { + "type": "null" + } + ], + "description": "Statistics for this volume.", + "longDescription": "The value shall represent IO statistics for this volume." + }, + "Id": { + "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Id", + "readonly": true }, "Identifiers": { - "type": "array", + "description": "The Durable names for the volume.", "items": { - "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.v1_1_0.json#/definitions/Identifier" + "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Identifier" }, - "description": "The Durable names for the volume.", - "longDescription": "This property shall contain a list of all known durable names for the associated volume." + "longDescription": "This property shall contain a list of all known durable names for the associated volume.", + "type": "array" }, - "BlockSizeBytes": { + "Links": { + "$ref": "#/definitions/Links", + "description": "Contains references to other resources that are related to this resource.", + "longDescription": "The Links property, as described by the Redfish Specification, shall contain references to resources that are related to, but not contained by (subordinate to), this resource." + }, + "LowSpaceWarningThresholdPercents": { + "description": "Low space warning.", + "items": { + "type": [ + "integer", + "null" + ] + }, + "longDescription": "Each time the following value is less than one of the values in the array the LOW_SPACE_THRESHOLD_WARNING event shall be triggered: Across all CapacitySources entries, percent = (SUM(AllocatedBytes) - SUM(ConsumedBytes))/SUM(AllocatedBytes).", + "readonly": false, + "type": "array", + "units": "%" + }, + "Manufacturer": { + "description": "The manufacturer or OEM of this storage volume.", + "longDescription": "This property shall contain a value that represents the manufacturer or implementer of the storage volume.", + "readonly": true, "type": [ - "number", + "string", + "null" + ] + }, + "MaxBlockSizeBytes": { + "description": "Max Block size in bytes.", + "longDescription": "This property shall contain size of the largest addressable unit of this storage volume.", + "readonly": true, + "type": [ + "integer", "null" ], - "units": "By", + "units": "By" + }, + "Model": { + "description": "The model number for this storage volume.", + "longDescription": "The value is assigned by the manufacturer and shall represents a specific storage volume implementation.", "readonly": true, - "description": "The size of the smallest addressible unit (Block) of this volume in bytes.", - "longDescription": "This property shall contain size of the smallest addressible unit of the associated volume." + "type": [ + "string", + "null" + ] + }, + "Name": { + "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Name", + "readonly": true + }, + "Oem": { + "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem", + "description": "This is the manufacturer/provider specific extension moniker used to divide the Oem object into sections.", + "longDescription": "The value of this string shall be of the format for the reserved word *Oem*." }, "Operations": { - "type": "array", + "description": "The operations currently running on the Volume.", "items": { - "$ref": "#/definitions/Operations" + "$ref": "#/definitions/Operation" }, - "description": "The operations currently running on the Volume.", - "longDescription": "This property shall contain a list of all currently running on the Volume." + "longDescription": "This property shall contain a list of all currently running on the Volume.", + "type": "array" }, "OptimumIOSizeBytes": { + "description": "The size in bytes of this Volume's optimum IO size.", + "longDescription": "This property shall contain the optimum IO size to use when performing IO on this volume. For logical disks, this is the stripe size. For physical disks, this describes the physical sector size.", + "readonly": true, "type": [ - "number", + "integer", "null" ], - "units": "By", - "readonly": true, - "description": "The size in bytes of this Volume's optimum IO size.", - "longDescription": "This property shall contain the optimum IO size to use when performing IO on this volume. For logical disks, this is the stripe size. For physical disks, this describes the physical sector size." + "units": "By" }, - "Links": { - "type": "object", - "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { - "type": [ - "array", - "boolean", - "number", - "null", - "object", - "string" - ], - "description": "This property shall specify a valid odata or Redfish property." - } - }, - "additionalProperties": false, - "properties": { - "Oem": { - "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem", - "description": "Oem extension object.", - "longDescription": "This object represents the Oem property. All values for resources described by this schema shall comply to the requirements as described in the Redfish specification." - }, - "Drives@odata.count": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.4.0.0.json#/definitions/count" + "RAIDType": { + "anyOf": [ + { + "$ref": "http://redfish.dmtf.org/schemas/swordfish/v1/Volume.json#/definitions/RAIDType" }, - "Drives@odata.navigationLink": { - "type": "string", - "format": "uri" + { + "type": "null" + } + ], + "description": "The RAID type of this volume.", + "longDescription": "This property shall contain the RAID type of the associated Volume.", + "readonly": true + }, + "RecoverableCapacitySourceCount": { + "description": "Current number of capacity source resources that are available as replacements.", + "longDescription": "The value is the number of available capacity source resources currently available in the event that an equivalent capacity source resource fails.", + "readonly": false, + "type": [ + "integer", + "null" + ] + }, + "RemainingCapacityPercent": { + "description": "The percentage of the capacity remaining in the StoragePool.", + "longDescription": "If present, this value shall return {[(SUM(AllocatedBytes) - SUM(ConsumedBytes)]/SUM(AllocatedBytes)}*100 represented as an integer value.", + "readonly": true, + "type": [ + "integer", + "null" + ] + }, + "ReplicaInfo": { + "anyOf": [ + { + "$ref": "http://redfish.dmtf.org/schemas/swordfish/v1/StorageReplicaInfo.json#/definitions/ReplicaInfo" }, - "Drives": { - "type": "array", - "items": { - "$ref": "http://redfish.dmtf.org/schemas/v1/Drive.json#/definitions/Drive" - }, - "readonly": true, - "description": "An array of references to the drives which contain this volume. This will reference Drives that either wholly or only partly contain this volume.", - "longDescription": "The value of this property shall be a reference to the resources that this volume is associated with and shall reference resources of type Drive. This property shall only contain references to Drive entities which are currently members of the Volume, not hot spare Drives which are not currently a member of the volume." + { + "type": "null" } + ], + "description": "Describes this storage volume in its role as a target replica.", + "longDescription": "This property shall describe the replica relationship between this storage volume and a corresponding source volume.", + "readonly": true + }, + "ReplicaTargets": { + "description": "The resources that are target replicas of this source.", + "items": { + "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/idRef" }, - "description": "Contains references to other resources that are related to this resource.", - "longDescription": "The Links property, as described by the Redfish Specification, shall contain references to resources that are related to, but not contained by (subordinate to), this resource." + "longDescription": "The value shall reference the target replicas that are sourced by this replica.", + "readonly": true, + "type": "array" }, - "Actions": { - "type": "object", - "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { - "type": [ - "array", - "boolean", - "number", - "null", - "object", - "string" - ], - "description": "This property shall specify a valid odata or Redfish property." + "ReplicaTargets@odata.count": { + "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/count" + }, + "Status": { + "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Status" + }, + "StorageGroups": { + "anyOf": [ + { + "$ref": "http://redfish.dmtf.org/schemas/swordfish/v1/StorageGroupCollection.json#/definitions/StorageGroupCollection" + }, + { + "type": "null" } - }, - "additionalProperties": false, - "properties": { - "Oem": { - "type": "object", - "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { - "type": [ - "array", - "boolean", - "number", - "null", - "object", - "string" - ], - "description": "This property shall specify a valid odata or Redfish property." - } - }, - "additionalProperties": true, - "properties": {}, - "description": "The available OEM specific actions for this resource.", - "longDescription": "This type shall contain any additional OEM actions for this resource." + ], + "description": "An array of references to Storage Groups that includes this volume.", + "longDescription": "The value of this property shall contain references to all storage groups that include this volume.", + "readonly": true + }, + "VolumeType": { + "anyOf": [ + { + "$ref": "#/definitions/VolumeType" }, - "#Volume.Initialize": { - "$ref": "#/definitions/Initialize" + { + "type": "null" } - }, - "description": "The available actions for this resource.", - "longDescription": "The Actions property shall contain the available actions for this resource." + ], + "deprecated": "Deprecated in favor of explicit use of RAIDType.", + "description": "The type of this volume.", + "longDescription": "This property shall contain the type of the associated Volume.", + "readonly": true } }, "required": [ + "@odata.id", + "@odata.type", "Id", "Name" ], - "description": "Volume contains properties used to describe a volume, virtual disk, LUN, or other logical storage entity for any system.", - "longDescription": "This resource shall be used to represent a volume, virtual disk, logical disk, LUN, or other logical storage for a Redfish implementation." + "type": "object" + }, + "VolumeType": { + "enum": [ + "RawDevice", + "NonRedundant", + "Mirrored", + "StripedWithParity", + "SpannedMirrors", + "SpannedStripesWithParity" + ], + "enumDescriptions": { + "Mirrored": "The volume is a mirrored device.", + "NonRedundant": "The volume is a non-redundant storage device.", + "RawDevice": "The volume is a raw physical device without any RAID or other virtualization applied.", + "SpannedMirrors": "The volume is a spanned set of mirrored devices.", + "SpannedStripesWithParity": "The volume is a spanned set of devices which uses parity to retain redundant information.", + "StripedWithParity": "The volume is a device which uses parity to retain redundant information." + }, + "type": "string" } }, - "copyright": "Copyright 2014-2017 Distributed Management Task Force, Inc. (DMTF). For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright" -} + "owningEntity": "SNIA", + "title": "#Volume.v1_3_1.Volume" +} \ No newline at end of file diff --git a/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/Zone/Zone.json b/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/Zone/Zone.json index 5d419d2e..5fecadde 100644 --- a/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/Zone/Zone.json +++ b/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/Zone/Zone.json @@ -1,14 +1,15 @@ { + "$id": "http://redfish.dmtf.org/schemas/v1/Zone.v1_3_1.json", "$ref": "#/definitions/Zone", "$schema": "http://redfish.dmtf.org/schemas/v1/redfish-schema-v1.json", - "copyright": "Copyright 2014-2018 DMTF. For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright", + "copyright": "Copyright 2014-2019 DMTF. For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright", "definitions": { "Actions": { "additionalProperties": false, - "description": "The available actions for this resource.", - "longDescription": "This type shall contain the available actions for this resource.", + "description": "The available actions for this Resource.", + "longDescription": "This type shall contain the available actions for this Resource.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -24,18 +25,37 @@ "properties": { "Oem": { "$ref": "#/definitions/OemActions", - "description": "This property contains the available OEM specific actions for this resource.", - "longDescription": "This property shall contain any additional OEM actions for this resource." + "description": "The available OEM-specific actions for this Resource.", + "longDescription": "This property shall contain the available OEM-specific actions for this Resource.", + "versionAdded": "v1_1_0" } }, "type": "object" }, + "ExternalAccessibility": { + "enum": [ + "GloballyAccessible", + "NonZonedAccessible", + "ZoneOnly" + ], + "enumDescriptions": { + "GloballyAccessible": "Any external entity with the correct access details, which may include authorization information, can access the endpoints that this zone lists.", + "NonZonedAccessible": "Any external entity that another zone does not explicitly list can access the endpoints that this zone lists.", + "ZoneOnly": "Only accessible by endpoints that this zone explicitly lists." + }, + "enumLongDescriptions": { + "GloballyAccessible": "This value shall indicate that any external entity with the correct access details, which may include authorization information, can access the endpoints that this zone lists, regardless of zone.", + "NonZonedAccessible": "This value shall indicate that any external entity that another zone does not explicitly list can access the endpoints that this zone lists.", + "ZoneOnly": "This value shall indicate that endpoints in this zone are only accessible by endpoints that this zone explicitly lists." + }, + "type": "string" + }, "Links": { "additionalProperties": false, - "description": "Contains references to other resources that are related to this resource.", - "longDescription": "This type, as described by the Redfish Specification, shall contain references to resources that are related to, but not contained by (subordinate to), this resource.", + "description": "The links to other Resources that are related to this Resource.", + "longDescription": "This Redfish Specification-described type shall contain links to Resources that are not contained in or subordinate to this Resource.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -50,55 +70,56 @@ }, "properties": { "Endpoints": { - "description": "Represents an array of references to the endpoints that are contained in this zone.", + "description": "The links to the endpoints that this zone contains.", "items": { "$ref": "http://redfish.dmtf.org/schemas/v1/Endpoint.json#/definitions/Endpoint" }, - "longDescription": "The value of this property shall be a reference to the resources that this zone is associated with and shall reference a resource of type Endpoint.", + "longDescription": "This property shall contain a link to the Resources of the Endpoint type that this zone contains.", "readonly": true, "type": "array" }, "Endpoints@odata.count": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/count" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/count" }, "InvolvedSwitches": { - "description": "Represents an array of references to the switches in this zone.", + "description": "The links to the collection of switches in this zone.", "items": { "$ref": "http://redfish.dmtf.org/schemas/v1/Switch.json#/definitions/Switch" }, - "longDescription": "The value of this property shall be a reference to the resources that this zone is associated with and shall reference a resource of type Switch.", + "longDescription": "This property shall contain the links to the Resource Collection of type Switch in this zone.", "readonly": true, "type": "array" }, "InvolvedSwitches@odata.count": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/count" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/count" }, "Oem": { "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem", - "description": "Oem extension object.", - "longDescription": "This object represents the Oem property. All values for resources described by this schema shall comply to the requirements as described in the Redfish specification." + "description": "The OEM extension property.", + "longDescription": "This property shall contain the OEM extensions. All values for properties contained in this object shall conform to the Redfish Specification-described requirements." }, "ResourceBlocks": { - "description": "An array of references to the Resource Blocks that are used in this Zone.", + "description": "The links to the Resource Blocks with which this zone is associated.", "items": { "$ref": "http://redfish.dmtf.org/schemas/v1/ResourceBlock.json#/definitions/ResourceBlock" }, - "longDescription": "The value of this property shall be an array of references of type ResourceBlock that are associated with this Zone.", + "longDescription": "This property shall contain an array of links to Resources of the ResourceBlock type with which this zone is associated.", "readonly": true, - "type": "array" + "type": "array", + "versionAdded": "v1_1_0" }, "ResourceBlocks@odata.count": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/count" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/count" } }, "type": "object" }, "OemActions": { "additionalProperties": true, - "description": "The available OEM specific actions for this resource.", - "longDescription": "This type shall contain any additional OEM actions for this resource.", + "description": "The available OEM-specific actions for this Resource.", + "longDescription": "This type shall contain the available OEM-specific actions for this Resource.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -116,10 +137,10 @@ }, "Zone": { "additionalProperties": false, - "description": "The Zone schema represents a fabric zone.", - "longDescription": "This resource shall be used to represent a simple zone for a Redfish implementation.", + "description": "The Zone schema describes a simple fabric zone for a Redfish implementation.", + "longDescription": "This Resource shall represent a simple fabric zone for a Redfish implementation.", "patternProperties": { - "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { "description": "This property shall specify a valid odata or Redfish property.", "type": [ "array", @@ -134,21 +155,22 @@ }, "properties": { "@odata.context": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/context" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/context" }, "@odata.etag": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/etag" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/etag" }, "@odata.id": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/id" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/id" }, "@odata.type": { - "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/type" + "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/type" }, "Actions": { "$ref": "#/definitions/Actions", - "description": "The available actions for this resource.", - "longDescription": "The Actions property shall contain the available actions for this resource." + "description": "The available actions for this Resource.", + "longDescription": "This property shall contain the available actions for this Resource.", + "versionAdded": "v1_1_0" }, "Description": { "anyOf": [ @@ -161,12 +183,26 @@ ], "readonly": true }, + "ExternalAccessibility": { + "anyOf": [ + { + "$ref": "#/definitions/ExternalAccessibility" + }, + { + "type": "null" + } + ], + "description": "Indicates accessiblity of endpoints in this zone to endpoints outside of this zone.", + "longDescription": "This property shall contain and indication of accessiblity of endpoints in this zone to endpoints outside of this zone.", + "readonly": false, + "versionAdded": "v1_3_0" + }, "Id": { "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Id", "readonly": true }, "Identifiers": { - "description": "Identifiers for this zone.", + "description": "The identifiers for this zone.", "items": { "anyOf": [ { @@ -177,13 +213,14 @@ } ] }, - "longDescription": "Identifiers for this zone shall be unique in the context of other zones.", - "type": "array" + "longDescription": "This property shall contain a Resource Collection of identifiers for this zone, which shall be unique in the context of other zones.", + "type": "array", + "versionAdded": "v1_2_0" }, "Links": { "$ref": "#/definitions/Links", - "description": "Contains references to other resources that are related to this resource.", - "longDescription": "The Links property, as described by the Redfish Specification, shall contain references to resources that are related to, but not contained by (subordinate to), this resource." + "description": "The links to Resources related to but not subordinate to this Resource.", + "longDescription": "This Redfish Specification-described property shall contain links to Resources related to but not subordinate to this Resource." }, "Name": { "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Name", @@ -191,13 +228,13 @@ }, "Oem": { "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem", - "description": "This is the manufacturer/provider specific extension moniker used to divide the Oem object into sections.", - "longDescription": "The value of this string shall be of the format for the reserved word *Oem*." + "description": "The OEM extension property.", + "longDescription": "This property shall contain the OEM extensions. All values for properties that this object contains shall conform to the Redfish Specification-described requirements." }, "Status": { "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Status", - "description": "This property describes the status and health of the resource and its children.", - "longDescription": "This property shall contain any status or health properties of the resource." + "description": "The status and health of the Resource and its subordinate or dependent Resources.", + "longDescription": "This property shall contain the status and health properties of the Resource and its children." } }, "required": [ @@ -210,5 +247,6 @@ } }, "owningEntity": "DMTF", - "title": "#Zone.v1_2_1.Zone" + "release": "2019.1", + "title": "#Zone.v1_3_1.Zone" } \ No newline at end of file diff --git a/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/index.json b/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/index.json index 7fff26af..d5159e14 100644 --- a/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/index.json +++ b/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/index.json @@ -7,262 +7,262 @@ "Members@odata.count": 86, "Members": [ { - "@odata.id": "/redfish/v1/JsonSchemas/AccelerationFunction/" + "@odata.id": "/redfish/v1/JsonSchemas/AccelerationFunction" }, { - "@odata.id": "/redfish/v1/JsonSchemas/AccountService/" + "@odata.id": "/redfish/v1/JsonSchemas/AccountService" }, { - "@odata.id": "/redfish/v1/JsonSchemas/ActionInfo/" + "@odata.id": "/redfish/v1/JsonSchemas/ActionInfo" }, { - "@odata.id": "/redfish/v1/JsonSchemas/Assembly/" + "@odata.id": "/redfish/v1/JsonSchemas/Assembly" }, { - "@odata.id": "/redfish/v1/JsonSchemas/AttributeRegistry/" + "@odata.id": "/redfish/v1/JsonSchemas/AttributeRegistry" }, { - "@odata.id": "/redfish/v1/JsonSchemas/Bios/" + "@odata.id": "/redfish/v1/JsonSchemas/Bios" }, { - "@odata.id": "/redfish/v1/JsonSchemas/BootOption/" + "@odata.id": "/redfish/v1/JsonSchemas/BootOption" }, { - "@odata.id": "/redfish/v1/JsonSchemas/Certificate/" + "@odata.id": "/redfish/v1/JsonSchemas/Certificate" }, { - "@odata.id": "/redfish/v1/JsonSchemas/CertificateLocations/" + "@odata.id": "/redfish/v1/JsonSchemas/CertificateLocations" }, { - "@odata.id": "/redfish/v1/JsonSchemas/CertificateService/" + "@odata.id": "/redfish/v1/JsonSchemas/CertificateService" }, { - "@odata.id": "/redfish/v1/JsonSchemas/Chassis/" + "@odata.id": "/redfish/v1/JsonSchemas/Chassis" }, { - "@odata.id": "/redfish/v1/JsonSchemas/CollectionCapabilities/" + "@odata.id": "/redfish/v1/JsonSchemas/CollectionCapabilities" }, { - "@odata.id": "/redfish/v1/JsonSchemas/CompositionService/" + "@odata.id": "/redfish/v1/JsonSchemas/CompositionService" }, { - "@odata.id": "/redfish/v1/JsonSchemas/ComputerSystem/" + "@odata.id": "/redfish/v1/JsonSchemas/ComputerSystem" }, { - "@odata.id": "/redfish/v1/JsonSchemas/Drive/" + "@odata.id": "/redfish/v1/JsonSchemas/Drive" }, { - "@odata.id": "/redfish/v1/JsonSchemas/Endpoint/" + "@odata.id": "/redfish/v1/JsonSchemas/Endpoint" }, { - "@odata.id": "/redfish/v1/JsonSchemas/EthernetInterface/" + "@odata.id": "/redfish/v1/JsonSchemas/EthernetInterface" }, { - "@odata.id": "/redfish/v1/JsonSchemas/Event/" + "@odata.id": "/redfish/v1/JsonSchemas/Event" }, { - "@odata.id": "/redfish/v1/JsonSchemas/EventDestination/" + "@odata.id": "/redfish/v1/JsonSchemas/EventDestination" }, { - "@odata.id": "/redfish/v1/JsonSchemas/EventService/" + "@odata.id": "/redfish/v1/JsonSchemas/EventService" }, { - "@odata.id": "/redfish/v1/JsonSchemas/ExternalAccountProvider/" + "@odata.id": "/redfish/v1/JsonSchemas/ExternalAccountProvider" }, { - "@odata.id": "/redfish/v1/JsonSchemas/Fabric/" + "@odata.id": "/redfish/v1/JsonSchemas/Fabric" }, { - "@odata.id": "/redfish/v1/JsonSchemas/HostInterface/" + "@odata.id": "/redfish/v1/JsonSchemas/HostInterface" }, { - "@odata.id": "/redfish/v1/JsonSchemas/IPAddresses/" + "@odata.id": "/redfish/v1/JsonSchemas/IPAddresses" }, { - "@odata.id": "/redfish/v1/JsonSchemas/Job/" + "@odata.id": "/redfish/v1/JsonSchemas/Job" }, { - "@odata.id": "/redfish/v1/JsonSchemas/JobService/" + "@odata.id": "/redfish/v1/JsonSchemas/JobService" }, { - "@odata.id": "/redfish/v1/JsonSchemas/JsonSchemaFile/" + "@odata.id": "/redfish/v1/JsonSchemas/JsonSchemaFile" }, { - "@odata.id": "/redfish/v1/JsonSchemas/LogEntry/" + "@odata.id": "/redfish/v1/JsonSchemas/LogEntry" }, { - "@odata.id": "/redfish/v1/JsonSchemas/LogService/" + "@odata.id": "/redfish/v1/JsonSchemas/LogService" }, { - "@odata.id": "/redfish/v1/JsonSchemas/Manager/" + "@odata.id": "/redfish/v1/JsonSchemas/Manager" }, { - "@odata.id": "/redfish/v1/JsonSchemas/ManagerAccount/" + "@odata.id": "/redfish/v1/JsonSchemas/ManagerAccount" }, { - "@odata.id": "/redfish/v1/JsonSchemas/ManagerNetworkProtocol/" + "@odata.id": "/redfish/v1/JsonSchemas/ManagerNetworkProtocol" }, { - "@odata.id": "/redfish/v1/JsonSchemas/Memory/" + "@odata.id": "/redfish/v1/JsonSchemas/Memory" }, { - "@odata.id": "/redfish/v1/JsonSchemas/MemoryChunks/" + "@odata.id": "/redfish/v1/JsonSchemas/MemoryChunks" }, { - "@odata.id": "/redfish/v1/JsonSchemas/MemoryDomain/" + "@odata.id": "/redfish/v1/JsonSchemas/MemoryDomain" }, { - "@odata.id": "/redfish/v1/JsonSchemas/MemoryMetrics/" + "@odata.id": "/redfish/v1/JsonSchemas/MemoryMetrics" }, { - "@odata.id": "/redfish/v1/JsonSchemas/Message/" + "@odata.id": "/redfish/v1/JsonSchemas/Message" }, { - "@odata.id": "/redfish/v1/JsonSchemas/MessageRegistry/" + "@odata.id": "/redfish/v1/JsonSchemas/MessageRegistry" }, { - "@odata.id": "/redfish/v1/JsonSchemas/MessageRegistryFile/" + "@odata.id": "/redfish/v1/JsonSchemas/MessageRegistryFile" }, { - "@odata.id": "/redfish/v1/JsonSchemas/MetricDefinition/" + "@odata.id": "/redfish/v1/JsonSchemas/MetricDefinition" }, { - "@odata.id": "/redfish/v1/JsonSchemas/MetricReport/" + "@odata.id": "/redfish/v1/JsonSchemas/MetricReport" }, { - "@odata.id": "/redfish/v1/JsonSchemas/MetricReportDefinition/" + "@odata.id": "/redfish/v1/JsonSchemas/MetricReportDefinition" }, { - "@odata.id": "/redfish/v1/JsonSchemas/NetworkAdapter/" + "@odata.id": "/redfish/v1/JsonSchemas/NetworkAdapter" }, { - "@odata.id": "/redfish/v1/JsonSchemas/NetworkDeviceFunction/" + "@odata.id": "/redfish/v1/JsonSchemas/NetworkDeviceFunction" }, { - "@odata.id": "/redfish/v1/JsonSchemas/NetworkInterface/" + "@odata.id": "/redfish/v1/JsonSchemas/NetworkInterface" }, { - "@odata.id": "/redfish/v1/JsonSchemas/NetworkPort/" + "@odata.id": "/redfish/v1/JsonSchemas/NetworkPort" }, { - "@odata.id": "/redfish/v1/JsonSchemas/PCIeDevice/" + "@odata.id": "/redfish/v1/JsonSchemas/PCIeDevice" }, { - "@odata.id": "/redfish/v1/JsonSchemas/PCIeFunction/" + "@odata.id": "/redfish/v1/JsonSchemas/PCIeFunction" }, { - "@odata.id": "/redfish/v1/JsonSchemas/PCIeSlots/" + "@odata.id": "/redfish/v1/JsonSchemas/PCIeSlots" }, { - "@odata.id": "/redfish/v1/JsonSchemas/PhysicalContext/" + "@odata.id": "/redfish/v1/JsonSchemas/PhysicalContext" }, { - "@odata.id": "/redfish/v1/JsonSchemas/Port/" + "@odata.id": "/redfish/v1/JsonSchemas/Port" }, { - "@odata.id": "/redfish/v1/JsonSchemas/Power/" + "@odata.id": "/redfish/v1/JsonSchemas/Power" }, { - "@odata.id": "/redfish/v1/JsonSchemas/PrivilegeRegistry/" + "@odata.id": "/redfish/v1/JsonSchemas/PrivilegeRegistry" }, { - "@odata.id": "/redfish/v1/JsonSchemas/Privileges/" + "@odata.id": "/redfish/v1/JsonSchemas/Privileges" }, { - "@odata.id": "/redfish/v1/JsonSchemas/Processor/" + "@odata.id": "/redfish/v1/JsonSchemas/Processor" }, { - "@odata.id": "/redfish/v1/JsonSchemas/ProcessorMetrics/" + "@odata.id": "/redfish/v1/JsonSchemas/ProcessorMetrics" }, { - "@odata.id": "/redfish/v1/JsonSchemas/Redundancy/" + "@odata.id": "/redfish/v1/JsonSchemas/Redundancy" }, { - "@odata.id": "/redfish/v1/JsonSchemas/Resource/" + "@odata.id": "/redfish/v1/JsonSchemas/Resource" }, { - "@odata.id": "/redfish/v1/JsonSchemas/ResourceBlock/" + "@odata.id": "/redfish/v1/JsonSchemas/ResourceBlock" }, { - "@odata.id": "/redfish/v1/JsonSchemas/Role/" + "@odata.id": "/redfish/v1/JsonSchemas/Role" }, { - "@odata.id": "/redfish/v1/JsonSchemas/Schedule/" + "@odata.id": "/redfish/v1/JsonSchemas/Schedule" }, { - "@odata.id": "/redfish/v1/JsonSchemas/SecureBoot/" + "@odata.id": "/redfish/v1/JsonSchemas/SecureBoot" }, { - "@odata.id": "/redfish/v1/JsonSchemas/Sensor/" + "@odata.id": "/redfish/v1/JsonSchemas/Sensor" }, { - "@odata.id": "/redfish/v1/JsonSchemas/SerialInterface/" + "@odata.id": "/redfish/v1/JsonSchemas/SerialInterface" }, { - "@odata.id": "/redfish/v1/JsonSchemas/ServiceRoot/" + "@odata.id": "/redfish/v1/JsonSchemas/ServiceRoot" }, { - "@odata.id": "/redfish/v1/JsonSchemas/Session/" + "@odata.id": "/redfish/v1/JsonSchemas/Session" }, { - "@odata.id": "/redfish/v1/JsonSchemas/SessionService/" + "@odata.id": "/redfish/v1/JsonSchemas/SessionService" }, { - "@odata.id": "/redfish/v1/JsonSchemas/Settings/" + "@odata.id": "/redfish/v1/JsonSchemas/Settings" }, { - "@odata.id": "/redfish/v1/JsonSchemas/SimpleStorage/" + "@odata.id": "/redfish/v1/JsonSchemas/SimpleStorage" }, { - "@odata.id": "/redfish/v1/JsonSchemas/SoftwareInventory/" + "@odata.id": "/redfish/v1/JsonSchemas/SoftwareInventory" }, { - "@odata.id": "/redfish/v1/JsonSchemas/Storage/" + "@odata.id": "/redfish/v1/JsonSchemas/Storage" }, { - "@odata.id": "/redfish/v1/JsonSchemas/Switch/" + "@odata.id": "/redfish/v1/JsonSchemas/Switch" }, { - "@odata.id": "/redfish/v1/JsonSchemas/Task/" + "@odata.id": "/redfish/v1/JsonSchemas/Task" }, { - "@odata.id": "/redfish/v1/JsonSchemas/TaskService/" + "@odata.id": "/redfish/v1/JsonSchemas/TaskService" }, { - "@odata.id": "/redfish/v1/JsonSchemas/TelemetryService/" + "@odata.id": "/redfish/v1/JsonSchemas/TelemetryService" }, { - "@odata.id": "/redfish/v1/JsonSchemas/Thermal/" + "@odata.id": "/redfish/v1/JsonSchemas/Thermal" }, { - "@odata.id": "/redfish/v1/JsonSchemas/Triggers/" + "@odata.id": "/redfish/v1/JsonSchemas/Triggers" }, { - "@odata.id": "/redfish/v1/JsonSchemas/UpdateService/" + "@odata.id": "/redfish/v1/JsonSchemas/UpdateService" }, { - "@odata.id": "/redfish/v1/JsonSchemas/VLanNetworkInterface/" + "@odata.id": "/redfish/v1/JsonSchemas/VLanNetworkInterface" }, { - "@odata.id": "/redfish/v1/JsonSchemas/VirtualMedia/" + "@odata.id": "/redfish/v1/JsonSchemas/VirtualMedia" }, { - "@odata.id": "/redfish/v1/JsonSchemas/Volume/" + "@odata.id": "/redfish/v1/JsonSchemas/Volume" }, { - "@odata.id": "/redfish/v1/JsonSchemas/Zone/" + "@odata.id": "/redfish/v1/JsonSchemas/Zone" }, { - "@odata.id": "/redfish/v1/JsonSchemas/odata/" + "@odata.id": "/redfish/v1/JsonSchemas/odata" }, { - "@odata.id": "/redfish/v1/JsonSchemas/redfish-error/" + "@odata.id": "/redfish/v1/JsonSchemas/redfish-error" }, { - "@odata.id": "/redfish/v1/JsonSchemas/redfish-payload-annotations/" + "@odata.id": "/redfish/v1/JsonSchemas/redfish-payload-annotations" }, { - "@odata.id": "/redfish/v1/JsonSchemas/redfish-schema/" + "@odata.id": "/redfish/v1/JsonSchemas/redfish-schema" } ] } \ No newline at end of file diff --git a/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/odata/odata.json b/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/odata/odata.json index a1701345..102441c2 100644 --- a/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/odata/odata.json +++ b/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/odata/odata.json @@ -1,16 +1,17 @@ { - "$schema": "http://redfish.dmtf.org/schemas/v1/redfish-schema.v1_4_0.json", + "$id": "http://redfish.dmtf.org/schemas/v1/odata-v4_0_4.json", + "$schema": "http://redfish.dmtf.org/schemas/v1/redfish-schema-v1.json", "definitions": { "context": { "type": "string", - "format": "uri", + "format": "uri-reference", "readonly": true, "description": "The OData description of a payload.", "longDescription": "The value of this property shall be the context URL that describes the resource according to OData-Protocol and shall be of the form defined in the Redfish specification." }, "id": { "type": "string", - "format": "uri", + "format": "uri-reference", "readonly": true, "description": "The unique identifier for a resource.", "longDescription": "The value of this property shall be the unique identifier for the resource and it shall be of the form defined in the Redfish specification." @@ -46,7 +47,7 @@ }, "nextLink": { "type": "string", - "format": "uri", + "format": "uri-reference", "readonly": true, "description": "The URI to the resource containing the next set of partial members.", "longDescription": "The value of this property shall be a URI to a resource, with the same @odata.type, containing the next set of partial members." diff --git a/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/redfish-error/redfish-error.json b/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/redfish-error/redfish-error.json index a4b699d0..97d4f72c 100644 --- a/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/redfish-error/redfish-error.json +++ b/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/redfish-error/redfish-error.json @@ -1,18 +1,18 @@ { - "$id": "http://redfish.dmtf.org/schemas/v1/redfish-error.v1_0_0.json", + "$id": "http://redfish.dmtf.org/schemas/v1/redfish-error.v1_0_1.json", "$ref": "#/definitions/RedfishError", "$schema": "http://redfish.dmtf.org/schemas/v1/redfish-schema-v1.json", - "copyright": "Copyright 2014-2018 Distributed Management Task Force, Inc. (DMTF). For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright", + "copyright": "Copyright 2014-2019 Distributed Management Task Force, Inc. (DMTF). For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright", "definitions": { "RedfishError": { "additionalProperties": false, - "description": "Contains an error payload from a Redfish Service.", - "longDescription": "This type, as described by the Redfish Specification, shall contain an error payload from a Redfish Service.", + "description": "The error payload from a Redfish Service.", + "longDescription": "The Redfish Specification-described type shall contain an error payload from a Redfish Service.", "properties": { "error": { "$ref": "#/definitions/RedfishErrorContents", - "description": "Contains properties used to describe an error from a Redfish Service.", - "longDescription": "This property, as described by the Redfish Specification, shall contain properties used to describe an error from a Redfish Service." + "description": "The properties that describe an error from a Redfish Service.", + "longDescription": "This property, as described by the Redfish Specification, shall contain properties that describe an error from a Redfish Service." } }, "required": [ @@ -22,24 +22,24 @@ }, "RedfishErrorContents": { "additionalProperties": false, - "description": "Contains properties used to describe an error from a Redfish Service.", - "longDescription": "This type, as described by the Redfish Specification, shall contain properties used to describe an error from a Redfish Service.", + "description": "The properties that describe an error from a Redfish Service.", + "longDescription": "The Redfish Specification-described type shall contain properties that describe an error from a Redfish Service.", "properties": { "code": { - "description": "A string indicating a specific MessageId from the message registry.", - "longDescription": "This property shall be a string indicating a specific MessageId from the message registry.", + "description": "A string indicating a specific MessageId from a Message Registry.", + "longDescription": "This property shall contain a string indicating a specific MessageId from a Message Registry.", "readonly": true, "type": "string" }, "message": { - "description": "A human-readable error message corresponding to the message in the message registry.", - "longDescription": "This property shall be a human-readable error message corresponding to the message in the message registry.", + "description": "A human-readable error message corresponding to the message in a Message Registry.", + "longDescription": "This property shall contain a human-readable error message corresponding to the message in a Message Registry.", "readonly": true, "type": "string" }, "@Message.ExtendedInfo": { - "description": "An array of message objects describing one or more error message(s).", - "longDescription": "This property shall be an array of message objects describing one or more error message(s).", + "description": "An array of messages describing one or more error messages.", + "longDescription": "This property shall be an array of message objects describing one or more error messages.", "type": "array", "items": { "$ref": "http://redfish.dmtf.org/schemas/v1/Message.json#/definitions/Message" diff --git a/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/redfish-payload-annotations/redfish-payload-annotations.json b/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/redfish-payload-annotations/redfish-payload-annotations.json index 0bfdb138..84cab6d3 100644 --- a/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/redfish-payload-annotations/redfish-payload-annotations.json +++ b/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/redfish-payload-annotations/redfish-payload-annotations.json @@ -1,47 +1,48 @@ { - "$schema": "http://redfish.dmtf.org/schemas/v1/redfish-schema.v1_4_1.json", - "copyright": "Copyright 2014-2018 Distributed Management Task Force, Inc. (DMTF). For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright", + "$id": "http://redfish.dmtf.org/schemas/v1/redfish-payload-annotations.v1_0_1.json", + "$schema": "http://redfish.dmtf.org/schemas/v1/redfish-schema-v1.json", + "copyright": "Copyright 2014-2019 Distributed Management Task Force, Inc. (DMTF). For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright", "properties": { "@Redfish.ActionInfo": { - "description": "The term can be applied to an Action to specify a URI to an ActionInfo resource which describes the parameters supported by this instance of the Action.", + "description": "The term can be applied to an action to specify a URI to an ActionInfo Resource that describes the parameters supported by this instance of the action.", "type": "string", - "format": "uri", + "format": "uri-reference", "readonly": true }, "@Redfish.Settings": { - "description": "Reference to the resource that represents the settings to be applied to this object.", + "description": "The link to the Settings Resource that represents the settings to apply to this Resource.", "$ref": "http://redfish.dmtf.org/schemas/v1/Settings.json#/definitions/Settings" }, "@Redfish.SettingsApplyTime": { - "description": "Configuration settings for when the values in the settings object are applied to a given resource.", + "description": "The configuration settings for when the values in the settings object are applied to a Resource.", "$ref": "http://redfish.dmtf.org/schemas/v1/Settings.json#/definitions/PreferredApplyTime" }, "@Redfish.OperationApplyTime": { - "description": "The requested apply time from a client when performing a Create, Delete, or Action operation.", + "description": "The requested apply time from a client when performing a create, delete, or action operation.", "$ref": "http://redfish.dmtf.org/schemas/v1/Settings.json#/definitions/OperationApplyTime" }, "@Redfish.OperationApplyTimeSupport": { - "description": "Indicates if a client is allowed to request for a specific apply time of a Create, Delete, or Action operation of a given resource via the OperationApplyTime term.", + "description": "An indication of whether a client can request an apply time for a create, delete, or action operation of a Resource through the OperationApplyTime term.", "$ref": "http://redfish.dmtf.org/schemas/v1/Settings.json#/definitions/OperationApplyTimeSupport" }, "@Redfish.MaintenanceWindow": { - "description": "Maintenance window configuration of a resource for when to apply settings or operations.", + "description": "The maintenance window configuration for a Resource for when to apply settings or operations.", "$ref": "http://redfish.dmtf.org/schemas/v1/Settings.json#/definitions/MaintenanceWindow" }, "@Redfish.CollectionCapabilities": { - "description": "Reference to the resource that represents the POST capabilities of a given collection.", + "description": "The link to the Resource that represents the POST capabilities of a collection.", "$ref": "http://redfish.dmtf.org/schemas/v1/CollectionCapabilities.json#/definitions/CollectionCapabilities" }, "@odata.context": { "type": "string", - "format": "uri", + "format": "uri-reference", "readonly": true, "description": "The OData description of a payload.", "longDescription": "The value of this property shall be the context URL that describes the resource according to OData-Protocol and shall be of the form defined in the Redfish specification." }, "@odata.id": { "type": "string", - "format": "uri", + "format": "uri-reference", "readonly": true, "description": "The unique identifier for a resource.", "longDescription": "The value of this property shall be the unique identifier for the resource and it shall be of the form defined in the Redfish specification." @@ -61,7 +62,7 @@ }, "patternProperties": { "^([a-zA-Z_][a-zA-Z0-9_]*)?@Redfish.AllowableValues$": { - "description": "The set of allowable values for a parameter or property.", + "description": "The set of allowable values for a parameter.", "type": "array", "items": { "type": "string" @@ -69,22 +70,22 @@ "readonly": true }, "^([a-zA-Z_][a-zA-Z0-9_]*)?@Redfish.RequiredOnCreate$": { - "description": "The term specifies that a property is required to be specified in the body of a POST request to create the resource.", + "description": "The term specifies that a property is required to be specified in the body of a POST request to create the Resource.", "type": "boolean", "readonly": true }, "^([a-zA-Z_][a-zA-Z0-9_]*)?@Redfish.SetOnlyOnCreate$": { - "description": "The term specifies that a property can only be set when a client is creating a new instance of a resource via POST.", + "description": "The term specifies that a property can only be set when a client creates an instance of a Resource through POST.", "type": "boolean", "readonly": true }, "^([a-zA-Z_][a-zA-Z0-9_]*)?@Redfish.OptionalOnCreate$": { - "description": "The term specifies that a property may be set when a client is creating a new instance of a resource via POST.", + "description": "The term specifies that a property may be set when a client creates an instance of a Resource through POST.", "type": "boolean", "readonly": true }, "^([a-zA-Z_][a-zA-Z0-9_]*)?@Redfish.UpdatableAfterCreate$": { - "description": "The term specifies that a property may be set by a client using PATCH after creating a new instance of a resource via POST.", + "description": "The term specifies that a property may be set by a client that uses PATCH after it creates an instance of a Resource through POST.", "type": "boolean", "readonly": true }, @@ -103,7 +104,7 @@ }, "^([a-zA-Z_][a-zA-Z0-9_]*)?@odata.nextLink$": { "type": "string", - "format": "uri", + "format": "uri-reference", "readonly": true, "description": "The URI to the resource containing the next set of partial members.", "longDescription": "The value of this property shall be a URI to a resource, with the same @odata.type, containing the next set of partial members." diff --git a/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/redfish-schema/redfish-schema.json b/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/redfish-schema/redfish-schema.json index ba60b815..ab3c143f 100644 --- a/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/redfish-schema/redfish-schema.json +++ b/Contrib-Inspur/bmcweb/static/redfish/v1/JsonSchemas/redfish-schema/redfish-schema.json @@ -1,5 +1,5 @@ { - "$id": "http://redfish.dmtf.org/schemas/v1/redfish-schema.v1_6_0", + "$id": "http://redfish.dmtf.org/schemas/v1/redfish-schema.v1_7_0", "type": "object", "$schema": "http://json-schema.org/draft-07/schema#", "title": "Redfish Schema Extension", @@ -111,6 +111,18 @@ "type": "string", "description": "Indicates a filter to apply to an array of objects when the values are copies of data elsewhere in the data model." }, + "language": { + "type": "string", + "description": "The term specifies the ISO 639-1 language code (Alpha-2) that matches the language used for the descriptive text in this schema file. If this term is not present, the default value shall be English (en)." + }, + "translation": { + "type": "string", + "description": "The term specifies a translated language (localized) version of the property name, parameter, or enumeration string. The language used shall match the 'language' value for this schema." + }, + "enumTranslations": { + "type": "object", + "description": "The term specifies a translated language (localized) version of enumeration values. The object shall contain properties with names that match the enumerations and values that contain the translation of the enumeration value. The language used shall match the 'language' value for this schema." + }, "actionResponse": { "type": "object", "description": "Contains the definition of the response body for a given action if it does not follow the Redfish Error format." @@ -201,6 +213,15 @@ "filter": { "$ref": "#/definitions/filter" }, + "language": { + "$ref": "#/definitions/language" + }, + "translation": { + "$ref": "#/definitions/translation" + }, + "enumTranslations": { + "$ref": "#/definitions/enumTranslations" + }, "actionResponse": { "$ref": "#/definitions/actionResponse" }, diff --git a/Contrib-Inspur/bmcweb/static/redfish/v1/Registries/Base/Base.1.4.0.json b/Contrib-Inspur/bmcweb/static/redfish/v1/Registries/Base/Base.1.4.0.json deleted file mode 100644 index a4013d7c..00000000 --- a/Contrib-Inspur/bmcweb/static/redfish/v1/Registries/Base/Base.1.4.0.json +++ /dev/null @@ -1,541 +0,0 @@ -{ - "@Redfish.Copyright": "Copyright 2014-2018 DMTF. All rights reserved.", - "@odata.type": "#MessageRegistry.v1_0_0.MessageRegistry", - "Id": "Base.1.4.0", - "Name": "Base Message Registry", - "Language": "en", - "Description": "This registry defines the base messages for Redfish", - "RegistryPrefix": "Base", - "RegistryVersion": "1.4.0", - "OwningEntity": "DMTF", - "Messages": { - "Success": { - "Description": "Indicates that all conditions of a successful operation have been met.", - "Message": "Successfully Completed Request", - "Severity": "OK", - "NumberOfArgs": 0, - "Resolution": "None" - }, - "GeneralError": { - "Description": "Indicates that a general error has occurred. Use in ExtendedInfo is discouraged. When used in ExtendedInfo, implementations are expected to include a Resolution property with this error to indicate how to resolve the problem.", - "Message": "A general error has occurred. See Resolution for information on how to resolve the error.", - "Severity": "Critical", - "NumberOfArgs": 0, - "Resolution": "None." - }, - "Created": { - "Description": "Indicates that all conditions of a successful creation operation have been met.", - "Message": "The resource has been created successfully", - "Severity": "OK", - "NumberOfArgs": 0, - "Resolution": "None" - }, - "NoOperation": { - "Description": "Indicates that the requested operation will not perform any changes on the service.", - "Message": "The request body submitted contain no data to act upon and no changes to the resource took place.", - "Severity": "Warning", - "NumberOfArgs": 0, - "Resolution": "Add properties in the JSON object and resubmit the request." - }, - "PropertyDuplicate": { - "Description": "Indicates that a duplicate property was included in the request body.", - "Message": "The property %1 was duplicated in the request.", - "Severity": "Warning", - "NumberOfArgs": 1, - "ParamTypes": [ - "string" - ], - "Resolution": "Remove the duplicate property from the request body and resubmit the request if the operation failed." - }, - "PropertyUnknown": { - "Description": "Indicates that an unknown property was included in the request body.", - "Message": "The property %1 is not in the list of valid properties for the resource.", - "Severity": "Warning", - "NumberOfArgs": 1, - "ParamTypes": [ - "string" - ], - "Resolution": "Remove the unknown property from the request body and resubmit the request if the operation failed." - }, - "PropertyValueTypeError": { - "Description": "Indicates that a property was given the wrong value type, such as when a number is supplied for a property that requires a string.", - "Message": "The value %1 for the property %2 is of a different type than the property can accept.", - "Severity": "Warning", - "NumberOfArgs": 2, - "ParamTypes": [ - "string", - "string" - ], - "Resolution": "Correct the value for the property in the request body and resubmit the request if the operation failed." - }, - "PropertyValueFormatError": { - "Description": "Indicates that a property was given the correct value type but the value of that property was not supported.", - "Message": "The value %1 for the property %2 is of a different format than the property can accept.", - "Severity": "Warning", - "NumberOfArgs": 2, - "ParamTypes": [ - "string", - "string" - ], - "Resolution": "Correct the value for the property in the request body and resubmit the request if the operation failed." - }, - "PropertyValueNotInList": { - "Description": "Indicates that a property was given the correct value type but the value of that property was not supported. This values not in an enumeration", - "Message": "The value %1 for the property %2 is not in the list of acceptable values.", - "Severity": "Warning", - "NumberOfArgs": 2, - "ParamTypes": [ - "string", - "string" - ], - "Resolution": "Choose a value from the enumeration list that the implementation can support and resubmit the request if the operation failed." - }, - "PropertyNotWritable": { - "Description": "Indicates that a property was given a value in the request body, but the property is a readonly property.", - "Message": "The property %1 is a read only property and cannot be assigned a value.", - "Severity": "Warning", - "NumberOfArgs": 1, - "ParamTypes": [ - "string" - ], - "Resolution": "Remove the property from the request body and resubmit the request if the operation failed." - }, - "PropertyMissing": { - "Description": "Indicates that a required property was not supplied as part of the request.", - "Message": "The property %1 is a required property and must be included in the request.", - "Severity": "Warning", - "NumberOfArgs": 1, - "ParamTypes": [ - "string" - ], - "Resolution": "Ensure that the property is in the request body and has a valid value and resubmit the request if the operation failed." - }, - "MalformedJSON": { - "Description": "Indicates that the request body was malformed JSON. Could be duplicate, syntax error,etc.", - "Message": "The request body submitted was malformed JSON and could not be parsed by the receiving service.", - "Severity": "Critical", - "NumberOfArgs": 0, - "Resolution": "Ensure that the request body is valid JSON and resubmit the request." - }, - "EmptyJSON": { - "Description": "Indicates that the request body contained an empty JSON object when one or more properties are expected in the body.", - "Message": "The request body submitted contained an empty JSON object and the service is unable to process it.", - "Severity": "Warning", - "NumberOfArgs": 0, - "Resolution": "Add properties in the JSON object and resubmit the request." - }, - "ActionNotSupported": { - "Description": "Indicates that the action supplied with the POST operation is not supported by the resource.", - "Message": "The action %1 is not supported by the resource.", - "Severity": "Critical", - "NumberOfArgs": 1, - "ParamTypes": [ - "string" - ], - "Resolution": "The action supplied cannot be resubmitted to the implementation. Perhaps the action was invalid, the wrong resource was the target or the implementation documentation may be of assistance." - }, - "ActionParameterMissing": { - "Description": "Indicates that the action requested was missing a parameter that is required to process the action.", - "Message": "The action %1 requires the parameter %2 to be present in the request body.", - "Severity": "Critical", - "NumberOfArgs": 2, - "ParamTypes": [ - "string", - "string" - ], - "Resolution": "Supply the action with the required parameter in the request body when the request is resubmitted." - }, - "ActionParameterDuplicate": { - "Description": "Indicates that the action was supplied with a duplicated parameter in the request body.", - "Message": "The action %1 was submitted with more than one value for the parameter %2.", - "Severity": "Warning", - "NumberOfArgs": 2, - "ParamTypes": [ - "string", - "string" - ], - "Resolution": "Resubmit the action with only one instance of the parameter in the request body if the operation failed." - }, - "ActionParameterUnknown": { - "Description": "Indicates that an action was submitted but a parameter supplied did not match any of the known parameters.", - "Message": "The action %1 was submitted with the invalid parameter %2.", - "Severity": "Warning", - "NumberOfArgs": 2, - "ParamTypes": [ - "string", - "string" - ], - "Resolution": "Correct the invalid parameter and resubmit the request if the operation failed." - }, - "ActionParameterValueTypeError": { - "Description": "Indicates that a parameter was given the wrong value type, such as when a number is supplied for a parameter that requires a string.", - "Message": "The value %1 for the parameter %2 in the action %3 is of a different type than the parameter can accept.", - "Severity": "Warning", - "NumberOfArgs": 3, - "ParamTypes": [ - "string", - "string", - "string" - ], - "Resolution": "Correct the value for the parameter in the request body and resubmit the request if the operation failed." - }, - "ActionParameterValueFormatError": { - "Description": "Indicates that a parameter was given the correct value type but the value of that parameter was not supported. This includes value size/length exceeded.", - "Message": "The value %1 for the parameter %2 in the action %3 is of a different format than the parameter can accept.", - "Severity": "Warning", - "NumberOfArgs": 3, - "ParamTypes": [ - "string", - "string", - "string" - ], - "Resolution": "Correct the value for the parameter in the request body and resubmit the request if the operation failed." - }, - "ActionParameterNotSupported": { - "Description": "Indicates that the parameter supplied for the action is not supported on the resource.", - "Message": "The parameter %1 for the action %2 is not supported on the target resource.", - "Severity": "Warning", - "NumberOfArgs": 2, - "ParamTypes": [ - "string", - "string" - ], - "Resolution": "Remove the parameter supplied and resubmit the request if the operation failed." - }, - "QueryParameterValueTypeError": { - "Description": "Indicates that a query parameter was given the wrong value type, such as when a number is supplied for a query parameter that requires a string.", - "Message": "The value %1 for the query parameter %2 is of a different type than the parameter can accept.", - "Severity": "Warning", - "NumberOfArgs": 2, - "ParamTypes": [ - "string", - "string" - ], - "Resolution": "Correct the value for the query parameter in the request and resubmit the request if the operation failed." - }, - "QueryParameterValueFormatError": { - "Description": "Indicates that a query parameter was given the correct value type but the value of that parameter was not supported. This includes value size/length exceeded.", - "Message": "The value %1 for the parameter %2 is of a different format than the parameter can accept.", - "Severity": "Warning", - "NumberOfArgs": 2, - "ParamTypes": [ - "string", - "string" - ], - "Resolution": "Correct the value for the query parameter in the request and resubmit the request if the operation failed." - }, - "QueryParameterOutOfRange": { - "Description": "Indicates that a query parameter was supplied that is out of range for the given resource. This can happen with values that are too low or beyond that possible for the supplied resource, such as when a page is requested that is beyond the last page.", - "Message": "The value %1 for the query parameter %2 is out of range %3.", - "Severity": "Warning", - "NumberOfArgs": 3, - "ParamTypes": [ - "string", - "string", - "string" - ], - "Resolution": "Reduce the value for the query parameter to a value that is within range, such as a start or count value that is within bounds of the number of resources in a collection or a page that is within the range of valid pages." - }, - "QueryNotSupportedOnResource": { - "Description": "Indicates that query is not supported on the given resource, such as when a start/count query is attempted on a resource that is not a collection.", - "Message": "Querying is not supported on the requested resource.", - "Severity": "Warning", - "NumberOfArgs": 0, - "Resolution": "Remove the query parameters and resubmit the request if the operation failed." - }, - "QueryNotSupported": { - "Description": "Indicates that query is not supported on the implementation.", - "Message": "Querying is not supported by the implementation.", - "Severity": "Warning", - "NumberOfArgs": 0, - "Resolution": "Remove the query parameters and resubmit the request if the operation failed." - }, - "SessionLimitExceeded": { - "Description": "Indicates that a session establishment has been requested but the operation failed due to the number of simultaneous sessions exceeding the limit of the implementation.", - "Message": "The session establishment failed due to the number of simultaneous sessions exceeding the limit of the implementation.", - "Severity": "Critical", - "NumberOfArgs": 0, - "Resolution": "Reduce the number of other sessions before trying to establish the session or increase the limit of simultaneous sessions (if supported)." - }, - "EventSubscriptionLimitExceeded": { - "Description": "Indicates that a event subscription establishment has been requested but the operation failed due to the number of simultaneous connection exceeding the limit of the implementation.", - "Message": "The event subscription failed due to the number of simultaneous subscriptions exceeding the limit of the implementation.", - "Severity": "Critical", - "NumberOfArgs": 0, - "Resolution": "Reduce the number of other subscriptions before trying to establish the event subscription or increase the limit of simultaneous subscriptions (if supported)." - }, - "ResourceCannotBeDeleted": { - "Description": "Indicates that a delete operation was attempted on a resource that cannot be deleted.", - "Message": "The delete request failed because the resource requested cannot be deleted.", - "Severity": "Critical", - "NumberOfArgs": 0, - "Resolution": "Do not attempt to delete a non-deletable resource." - }, - "ResourceInUse": { - "Description": "Indicates that a change was requested to a resource but the change was rejected due to the resource being in use or transition.", - "Message": "The change to the requested resource failed because the resource is in use or in transition.", - "Severity": "Warning", - "NumberOfArgs": 0, - "Resolution": "Remove the condition and resubmit the request if the operation failed." - }, - "ResourceAlreadyExists": { - "Description": "Indicates that a resource change or creation was attempted but that the operation cannot proceed because the resource already exists.", - "Message": "The requested resource of type %1 with the property %2 with the value %3 already exists.", - "Severity": "Critical", - "NumberOfArgs": 3, - "ParamTypes": [ - "string", - "string", - "string" - ], - "Resolution": "Do not repeat the create operation as the resource has already been created." - }, - "ResourceNotFound": { - "Description": "Indicates that the operation expected a resource identifier that corresponds to an existing resource but one was not found.", - "Message": "The requested resource of type %1 named %2 was not found.", - "Severity": "Critical", - "NumberOfArgs": 2, - "ParamTypes": [ - "string", - "string" - ], - "Resolution": "Provide a valid resource identifier and resubmit the request." - }, - "CreateFailedMissingReqProperties": { - "Description": "Indicates that a create was attempted on a resource but that properties that are required for the create operation were missing from the request.", - "Message": "The create operation failed because the required property %1 was missing from the request.", - "Severity": "Critical", - "NumberOfArgs": 1, - "ParamTypes": [ - "string" - ], - "Resolution": "Correct the body to include the required property with a valid value and resubmit the request if the operation failed." - }, - "CreateLimitReachedForResource": { - "Description": "Indicates that no more resources can be created on the resource as it has reached its create limit.", - "Message": "The create operation failed because the resource has reached the limit of possible resources.", - "Severity": "Critical", - "NumberOfArgs": 0, - "Resolution": "Either delete resources and resubmit the request if the operation failed or do not resubmit the request." - }, - "ServiceShuttingDown": { - "Description": "Indicates that the operation failed as the service is shutting down, such as when the service reboots.", - "Message": "The operation failed because the service is shutting down and can no longer take incoming requests.", - "Severity": "Critical", - "NumberOfArgs": 0, - "Resolution": "When the service becomes available, resubmit the request if the operation failed." - }, - "ServiceInUnknownState": { - "Description": "Indicates that the operation failed because the service is in an unknown state and cannot accept additional requests.", - "Message": "The operation failed because the service is in an unknown state and can no longer take incoming requests.", - "Severity": "Critical", - "NumberOfArgs": 0, - "Resolution": "Restart the service and resubmit the request if the operation failed." - }, - "NoValidSession": { - "Description": "Indicates that the operation failed because a valid session is required in order to access any resources.", - "Message": "There is no valid session established with the implementation.", - "Severity": "Critical", - "NumberOfArgs": 0, - "Resolution": "Establish as session before attempting any operations." - }, - "InsufficientPrivilege": { - "Description": "Indicates that the credentials associated with the established session do not have sufficient privileges for the requested operation", - "Message": "There are insufficient privileges for the account or credentials associated with the current session to perform the requested operation.", - "Severity": "Critical", - "NumberOfArgs": 0, - "Resolution": "Either abandon the operation or change the associated access rights and resubmit the request if the operation failed." - }, - "AccountModified": { - "Description": "Indicates that the account was successfully modified.", - "Message": "The account was successfully modified.", - "Severity": "OK", - "NumberOfArgs": 0, - "Resolution": "No resolution is required." - }, - "AccountNotModified": { - "Description": "Indicates that the modification requested for the account was not successful.", - "Message": "The account modification request failed.", - "Severity": "Warning", - "NumberOfArgs": 0, - "Resolution": "The modification may have failed due to permission issues or issues with the request body." - }, - "AccountRemoved": { - "Description": "Indicates that the account was successfully removed.", - "Message": "The account was successfully removed.", - "Severity": "OK", - "NumberOfArgs": 0, - "Resolution": "No resolution is required." - }, - "AccountForSessionNoLongerExists": { - "Description": "Indicates that the account for the session has been removed, thus the session has been removed as well.", - "Message": "The account for the current session has been removed, thus the current session has been removed as well.", - "Severity": "OK", - "NumberOfArgs": 0, - "Resolution": "Attempt to connect with a valid account." - }, - "InvalidObject": { - "Description": "Indicates that the object in question is invalid according to the implementation. Examples include a firmware update malformed URI.", - "Message": "The object at %1 is invalid.", - "Severity": "Critical", - "NumberOfArgs": 1, - "ParamTypes": [ - "string" - ], - "Resolution": "Either the object is malformed or the URI is not correct. Correct the condition and resubmit the request if it failed." - }, - "InternalError": { - "Description": "Indicates that the request failed for an unknown internal error but that the service is still operational.", - "Message": "The request failed due to an internal service error. The service is still operational.", - "Severity": "Critical", - "NumberOfArgs": 0, - "Resolution": "Resubmit the request. If the problem persists, consider resetting the service." - }, - "UnrecognizedRequestBody": { - "Description": "Indicates that the service encountered an unrecognizable request body that could not even be interpreted as malformed JSON.", - "Message": "The service detected a malformed request body that it was unable to interpret.", - "Severity": "Warning", - "NumberOfArgs": 0, - "Resolution": "Correct the request body and resubmit the request if it failed." - }, - "ResourceMissingAtURI": { - "Description": "Indicates that the operation expected an image or other resource at the provided URI but none was found. Examples of this are in requests that require URIs like Firmware Update.", - "Message": "The resource at the URI %1 was not found.", - "Severity": "Critical", - "NumberOfArgs": 1, - "ParamTypes": [ - "string" - ], - "Resolution": "Place a valid resource at the URI or correct the URI and resubmit the request." - }, - "ResourceAtUriInUnknownFormat": { - "Description": "Indicates that the URI was valid but the resource or image at that URI was in a format not supported by the service.", - "Message": "The resource at %1 is in a format not recognized by the service.", - "Severity": "Critical", - "NumberOfArgs": 1, - "ParamTypes": [ - "string" - ], - "Resolution": "Place an image or resource or file that is recognized by the service at the URI." - }, - "ResourceAtUriUnauthorized": { - "Description": "Indicates that the attempt to access the resource/file/image at the URI was unauthorized.", - "Message": "While accessing the resource at %1, the service received an authorization error %2.", - "Severity": "Critical", - "NumberOfArgs": 2, - "ParamTypes": [ - "string", - "string" - ], - "Resolution": "Ensure that the appropriate access is provided for the service in order for it to access the URI." - }, - "CouldNotEstablishConnection": { - "Description": "Indicates that the attempt to access the resource/file/image at the URI was unsuccessful because a session could not be established.", - "Message": "The service failed to establish a connection with the URI %1.", - "Severity": "Critical", - "NumberOfArgs": 1, - "ParamTypes": [ - "string" - ], - "Resolution": "Ensure that the URI contains a valid and reachable node name, protocol information and other URI components." - }, - "SourceDoesNotSupportProtocol": { - "Description": "Indicates that while attempting to access, connect to or transfer a resource/file/image from another location that the other end of the connection did not support the protocol", - "Message": "The other end of the connection at %1 does not support the specified protocol %2.", - "Severity": "Critical", - "NumberOfArgs": 2, - "ParamTypes": [ - "string", - "string" - ], - "Resolution": "Change protocols or URIs. " - }, - "AccessDenied": { - "Description": "Indicates that while attempting to access, connect to or transfer to/from another resource, the service denied access.", - "Message": "While attempting to establish a connection to %1, the service denied access.", - "Severity": "Critical", - "NumberOfArgs": 1, - "ParamTypes": [ - "string" - ], - "Resolution": "Attempt to ensure that the URI is correct and that the service has the appropriate credentials." - }, - "ServiceTemporarilyUnavailable": { - "Description": "Indicates the service is temporarily unavailable.", - "Message": "The service is temporarily unavailable. Retry in %1 seconds.", - "Severity": "Critical", - "NumberOfArgs": 1, - "ParamTypes": [ - "string" - ], - "Resolution": "Wait for the indicated retry duration and retry the operation." - }, - "InvalidIndex": { - "Description": "The Index is not valid.", - "Message": "The Index %1 is not a valid offset into the array.", - "Severity": "Warning", - "NumberOfArgs": 1, - "ParamTypes": [ - "number" - ], - "Resolution": "Verify the index value provided is within the bounds of the array." - }, - "PropertyValueModified": { - "Description": "Indicates that a property was given the correct value type but the value of that property was modified. Examples are truncated or rounded values.", - "Message": "The property %1 was assigned the value %2 due to modification by the service.", - "Severity": "Warning", - "NumberOfArgs": 2, - "ParamTypes": [ - "string", - "string" - ], - "Resolution": "No resolution is required." - }, - "ResourceInStandby": { - "Description": "Indicates that the request could not be performed because the resource is in standby.", - "Message": "The request could not be performed because the resource is in standby.", - "Severity": "Critical", - "NumberOfArgs": 0, - "Resolution": "Ensure that the resource is in the correct power state and resubmit the request." - }, - "ResourceExhaustion": { - "Description": "Indicates that a resource could not satisfy the request due to some unavailability of resources. An example is that available capacity has been allocated.", - "Message": "The resource %1 was unable to satisfy the request due to unavailability of resources.", - "Severity": "Critical", - "NumberOfArgs": 1, - "ParamTypes": [ - "string" - ], - "Resolution": "Ensure that the resources are available and resubmit the request." - }, - "StringValueTooLong": { - "Description": "Indicates that a string value passed to the given resource exceeded its length limit. An example is when a shorter limit is imposed by an implementation than that allowed by the specification.", - "Message": "The string %1 exceeds the length limit %2.", - "Severity": "Warning", - "NumberOfArgs": 2, - "ParamTypes": [ - "string", - "number" - ], - "Resolution": "Resubmit the request with an appropriate string length." - }, - "SessionTerminated": { - "Description": "Indicates that the DELETE operation on the Session resource resulted in the successful termination of the session.", - "Message": "The session was successfully terminated.", - "Severity": "OK", - "NumberOfArgs": 0, - "Resolution": "No resolution is required." - }, - "ResourceTypeIncompatible": { - "Description": "Indicates that the resource type of the operation does not match that for the operation destination. Examples of when this can happen include during a POST to a collection using the wrong resource type, an update where the @odata.types do not match or on a major version incompatability.", - "Message": "The @odata.type of the request body %1 is incompatible with the @odata.type of the resource which is %2.", - "Severity": "Critical", - "NumberOfArgs": 2, - "ParamTypes": [ - "string", - "string" - ], - "Resolution": "Resubmit the request with a payload compatible with the resource's schema." - } - } -} \ No newline at end of file diff --git a/Contrib-Inspur/bmcweb/static/redfish/v1/Registries/Base/index.json b/Contrib-Inspur/bmcweb/static/redfish/v1/Registries/Base/index.json deleted file mode 100644 index bf5ebdaf..00000000 --- a/Contrib-Inspur/bmcweb/static/redfish/v1/Registries/Base/index.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "@odata.context": "/redfish/v1/$metadata#MessageRegistryFile.MessageRegistryFile", - "@odata.id": "/redfish/v1/Registries/Base", - "@odata.type": "#MessageRegistryFile.v1_1_0.MessageRegistryFile", - "Name": "Base MessageRegistry File", - "Description": "DMTF Base MessageRegistry File Location", - "Id": "Base", - "Registry": "Base.1.4", - "Languages": [ - "en" - ], - "Languages@odata.count": 1, - "Location": [ - { - "Language": "en", - "PublicationUri": "https://redfish.dmtf.org/registries/Base.1.4.0.json", - "Uri": "/redfish/v1/Registries/Base/Base.1.4.0.json" - } - ], - "Location@odata.count": 1 -} \ No newline at end of file diff --git a/Contrib-Inspur/bmcweb/static/redfish/v1/Registries/OpenBMC/OpenBMC.0.1.0.json b/Contrib-Inspur/bmcweb/static/redfish/v1/Registries/OpenBMC/OpenBMC.0.1.0.json deleted file mode 100644 index b01b9d70..00000000 --- a/Contrib-Inspur/bmcweb/static/redfish/v1/Registries/OpenBMC/OpenBMC.0.1.0.json +++ /dev/null @@ -1,109 +0,0 @@ -{ - "@Redfish.Copyright": "Copyright 2018 Intel. All rights reserved.", - "@odata.type": "#MessageRegistry.v1_0_0.MessageRegistry", - "Id": "OpenBMC.0.1.0", - "Name": "OpenBMC Message Registry", - "Language": "en", - "Description": "This registry defines the base messages for OpenBMC", - "RegistryPrefix": "OpenBMC", - "RegistryVersion": "0.1.0", - "OwningEntity": "OpenBMC", - "Messages": { - "SensorThresholdCriticalLowGoingLow": { - "Description": "Indicates that a threshold sensor has crossed a critical low threshold going low.", - "Message": "%1 sensor crossed a critical low threshold going low. Reading=%2 Threshold=%3.", - "Severity": "Critical", - "NumberOfArgs": 3, - "ParamTypes": [ - "string", - "number", - "number" - ], - "Resolution": "Check the sensor or subsystem for errors." - }, - "SensorThresholdWarningLowGoingLow": { - "Description": "Indicates that a threshold sensor has crossed a warning low threshold going low.", - "Message": "%1 sensor crossed a warning low threshold going low. Reading=%2 Threshold=%3.", - "Severity": "Warning", - "NumberOfArgs": 3, - "ParamTypes": [ - "string", - "number", - "number" - ], - "Resolution": "Check the sensor or subsystem for errors." - }, - "SensorThresholdWarningHighGoingHigh": { - "Description": "Indicates that a threshold sensor has crossed a warning high threshold going high.", - "Message": "%1 sensor crossed a warning high threshold going high. Reading=%2 Threshold=%3.", - "Severity": "Warning", - "NumberOfArgs": 3, - "ParamTypes": [ - "string", - "number", - "number" - ], - "Resolution": "Check the sensor or subsystem for errors." - }, - "SensorThresholdCriticalHighGoingHigh": { - "Description": "Indicates that a threshold sensor has crossed a critical high threshold going high.", - "Message": "%1 sensor crossed a critical high threshold going high. Reading=%2 Threshold=%3.", - "Severity": "Critical", - "NumberOfArgs": 3, - "ParamTypes": [ - "string", - "number", - "number" - ], - "Resolution": "Check the sensor or subsystem for errors." - }, - "SensorThresholdCriticalLowGoingHigh": { - "Description": "Indicates that a threshold sensor has crossed a critical low threshold going high.", - "Message": "%1 sensor crossed a critical low threshold going high. Reading=%2 Threshold=%3.", - "Severity": "OK", - "NumberOfArgs": 3, - "ParamTypes": [ - "string", - "number", - "number" - ], - "Resolution": "None." - }, - "SensorThresholdWarningLowGoingHigh": { - "Description": "Indicates that a threshold sensor has crossed a warning low threshold going high.", - "Message": "%1 sensor crossed a warning low threshold going high. Reading=%2 Threshold=%3.", - "Severity": "OK", - "NumberOfArgs": 3, - "ParamTypes": [ - "string", - "number", - "number" - ], - "Resolution": "None." - }, - "SensorThresholdWarningHighGoingLow": { - "Description": "Indicates that a threshold sensor has crossed a warning high threshold going low.", - "Message": "%1 sensor crossed a warning high threshold going low. Reading=%2 Threshold=%3.", - "Severity": "OK", - "NumberOfArgs": 3, - "ParamTypes": [ - "string", - "number", - "number" - ], - "Resolution": "None." - }, - "SensorThresholdCriticalHighGoingLow": { - "Description": "Indicates that a threshold sensor has crossed a critical high threshold going low.", - "Message": "%1 sensor crossed a critical high threshold going low. Reading=%2 Threshold=%3.", - "Severity": "OK", - "NumberOfArgs": 3, - "ParamTypes": [ - "string", - "number", - "number" - ], - "Resolution": "None." - } - } -} \ No newline at end of file diff --git a/Contrib-Inspur/bmcweb/static/redfish/v1/Registries/OpenBMC/index.json b/Contrib-Inspur/bmcweb/static/redfish/v1/Registries/OpenBMC/index.json deleted file mode 100644 index 1e0e3da5..00000000 --- a/Contrib-Inspur/bmcweb/static/redfish/v1/Registries/OpenBMC/index.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "@odata.context": "/redfish/v1/$metadata#MessageRegistryFile.MessageRegistryFile", - "@odata.id": "/redfish/v1/Registries/OpenBMC", - "@odata.type": "#MessageRegistryFile.v1_1_0.MessageRegistryFile", - "Name": "OpenBMC MessageRegistry File", - "Description": "OpenBMC MessageRegistry File Location", - "Id": "OpenBMC", - "Registry": "OpenBMC.0.1", - "Languages": [ - "en" - ], - "Languages@odata.count": 1, - "Location": [ - { - "Language": "en", - "Uri": "/redfish/v1/Registries/OpenBMC/OpenBMC.0.1.0.json" - } - ], - "Location@odata.count": 1 -} \ No newline at end of file diff --git a/Contrib-Inspur/bmcweb/static/redfish/v1/Registries/index.json b/Contrib-Inspur/bmcweb/static/redfish/v1/Registries/index.json deleted file mode 100644 index 674cd042..00000000 --- a/Contrib-Inspur/bmcweb/static/redfish/v1/Registries/index.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "@odata.id": "/redfish/v1/Registries", - "@odata.context": "/redfish/v1/$metadata#MessageRegistryFileCollection.MessageRegistryFileCollection", - "@odata.type": "#MessageRegistryFileCollection.MessageRegistryFileCollection", - "Name": "MessageRegistryFile Collection", - "Description": "Collection of MessageRegistryFiles", - "Members@odata.count": 2, - "Members": [ - { - "@odata.id": "/redfish/v1/Registries/Base" - }, - { - "@odata.id": "/redfish/v1/Registries/OpenBMC" - } - ] -} \ No newline at end of file diff --git a/Contrib-Inspur/bmcweb/static/redfish/v1/schema/AccelerationFunctionCollection_v1.xml b/Contrib-Inspur/bmcweb/static/redfish/v1/schema/AccelerationFunctionCollection_v1.xml index 965fa36e..7557c68e 100644 --- a/Contrib-Inspur/bmcweb/static/redfish/v1/schema/AccelerationFunctionCollection_v1.xml +++ b/Contrib-Inspur/bmcweb/static/redfish/v1/schema/AccelerationFunctionCollection_v1.xml @@ -1,11 +1,11 @@ - + - + @@ -33,8 +33,8 @@ - - + + @@ -61,8 +61,8 @@ - - + + diff --git a/Contrib-Inspur/bmcweb/static/redfish/v1/schema/AccelerationFunction_v1.xml b/Contrib-Inspur/bmcweb/static/redfish/v1/schema/AccelerationFunction_v1.xml index 50a7066d..6a77bb0e 100644 --- a/Contrib-Inspur/bmcweb/static/redfish/v1/schema/AccelerationFunction_v1.xml +++ b/Contrib-Inspur/bmcweb/static/redfish/v1/schema/AccelerationFunction_v1.xml @@ -1,11 +1,11 @@ - + - + @@ -40,8 +40,8 @@ - - + + @@ -76,81 +76,81 @@ - - + + - - + + - - + + - - + + - + - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + @@ -181,5 +181,17 @@ + + + + + + + + + + + + diff --git a/Contrib-Inspur/bmcweb/static/redfish/v1/schema/AccountService_v1.xml b/Contrib-Inspur/bmcweb/static/redfish/v1/schema/AccountService_v1.xml index 192f968e..2b631597 100644 --- a/Contrib-Inspur/bmcweb/static/redfish/v1/schema/AccountService_v1.xml +++ b/Contrib-Inspur/bmcweb/static/redfish/v1/schema/AccountService_v1.xml @@ -1,11 +1,11 @@ - + - + @@ -50,8 +50,8 @@ - - + + @@ -60,7 +60,7 @@ - + @@ -84,62 +84,62 @@ - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + @@ -148,7 +148,7 @@ - + @@ -166,7 +166,7 @@ - + @@ -176,14 +176,26 @@ + + + + + + + + + + + + - - + + @@ -197,7 +209,7 @@ - + @@ -207,42 +219,54 @@ + + + + + + + + + + + + - - + + - - + + - - + + - - + + - + - + @@ -252,6 +276,18 @@ + + + + + + + + + + + + @@ -259,120 +295,141 @@ - - + + - - + + - - + + - - + + - - + + - - + + - - + + + + + + + + + + + + + + - - + + - - + + + + + + + + + + + - - + + - - + + - - - + + + - - - + + + - - + + - + - - + + - - + + - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + @@ -381,75 +438,75 @@ - + - + - + - - - - - + + + + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + @@ -461,6 +518,18 @@ + + + + + + + + + + + + @@ -468,12 +537,52 @@ - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Contrib-Inspur/bmcweb/static/redfish/v1/schema/ActionInfo_v1.xml b/Contrib-Inspur/bmcweb/static/redfish/v1/schema/ActionInfo_v1.xml index 97658cea..b0a504d7 100644 --- a/Contrib-Inspur/bmcweb/static/redfish/v1/schema/ActionInfo_v1.xml +++ b/Contrib-Inspur/bmcweb/static/redfish/v1/schema/ActionInfo_v1.xml @@ -1,11 +1,11 @@ - + - + @@ -30,8 +30,8 @@ - - + + @@ -57,46 +57,46 @@ - - + + - - + + - - + + - - + + - - + + - - + + - - + + - + @@ -134,7 +134,7 @@ - + @@ -144,6 +144,18 @@ + + + + + + + + + + + + @@ -154,15 +166,27 @@ - + - - + + + + + + + + + + + + + + diff --git a/Contrib-Inspur/bmcweb/static/redfish/v1/schema/Assembly_v1.xml b/Contrib-Inspur/bmcweb/static/redfish/v1/schema/Assembly_v1.xml index 9157cabc..288daa12 100644 --- a/Contrib-Inspur/bmcweb/static/redfish/v1/schema/Assembly_v1.xml +++ b/Contrib-Inspur/bmcweb/static/redfish/v1/schema/Assembly_v1.xml @@ -1,11 +1,11 @@ - + - + @@ -34,8 +34,8 @@ - - + + @@ -44,7 +44,7 @@ - + @@ -87,7 +87,7 @@ /redfish/v1/CompositionService/ResourceBlocks/{ResourceBlockId}/Systems/{ComputerSystemId}/Storage/{StorageId}/Assembly /redfish/v1/ResourceBlocks/{ResourceBlockId}/Storage/{StorageId}/Assembly /redfish/v1/ResourceBlocks/{ResourceBlockId}/Systems/{ComputerSystemId}/Storage/{StorageId}/Assembly - /redfish/v1/Chassis/{ChassisId}/Thermal/Fans/{FanId}/Thermal + /redfish/v1/Chassis/{ChassisId}/Thermal/Fans/{FanId}/Assembly @@ -101,114 +101,114 @@ - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + @@ -219,6 +219,18 @@ + + + + + + + + + + + + @@ -226,8 +238,8 @@ - - + + @@ -238,25 +250,49 @@ + + + + + + + + + + + + - + - - + + - - + + + + + + + + + + + + + + diff --git a/Contrib-Inspur/bmcweb/static/redfish/v1/schema/AttributeRegistry_v1.xml b/Contrib-Inspur/bmcweb/static/redfish/v1/schema/AttributeRegistry_v1.xml index 57a73363..58e25521 100644 --- a/Contrib-Inspur/bmcweb/static/redfish/v1/schema/AttributeRegistry_v1.xml +++ b/Contrib-Inspur/bmcweb/static/redfish/v1/schema/AttributeRegistry_v1.xml @@ -1,11 +1,11 @@ - + - + @@ -32,8 +32,8 @@ - - + + @@ -60,332 +60,333 @@ - - + + - - + + + - - + + - - + + - - + + - - + + - - + + - - + + - + - - + + - - + + - - + + - + - - + + - + - - + + - - + + - - + + - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - + - + - - + + - - + + - - + + - - + + - - + + - + - - + + - + - + - - + + - - - + + + - - + + - - + + - - + + - - + + - - + + - - + + - + - - + + - - + + - - + + - - + + - - + + - + - + - + - + - + - + @@ -541,44 +542,56 @@ + + + + + + + + + + + + - - + + - - + + - - + + - - + + - + - + @@ -600,6 +613,18 @@ + + + + + + + + + + + + @@ -610,23 +635,23 @@ - - + + - + - - + + - - + + @@ -643,6 +668,18 @@ + + + + + + + + + + + + @@ -650,23 +687,35 @@ - - + + - - + + - - + + + + + + + + + + + + + + diff --git a/Contrib-Inspur/bmcweb/static/redfish/v1/schema/Bios_v1.xml b/Contrib-Inspur/bmcweb/static/redfish/v1/schema/Bios_v1.xml index 34bf0c76..240c039c 100644 --- a/Contrib-Inspur/bmcweb/static/redfish/v1/schema/Bios_v1.xml +++ b/Contrib-Inspur/bmcweb/static/redfish/v1/schema/Bios_v1.xml @@ -1,11 +1,11 @@ - + - + @@ -21,8 +21,12 @@ + + + + @@ -31,8 +35,8 @@ - - + + @@ -41,7 +45,7 @@ - + @@ -60,26 +64,26 @@ - - + + - + - - + + - - + + - - + + @@ -91,39 +95,39 @@ - - + + - - + + - + - - + + - - + + - - + + - - + + @@ -150,7 +154,7 @@ - + @@ -162,9 +166,50 @@ - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Contrib-Inspur/bmcweb/static/redfish/v1/schema/BootOptionCollection_v1.xml b/Contrib-Inspur/bmcweb/static/redfish/v1/schema/BootOptionCollection_v1.xml index ea3aa830..6c13e571 100644 --- a/Contrib-Inspur/bmcweb/static/redfish/v1/schema/BootOptionCollection_v1.xml +++ b/Contrib-Inspur/bmcweb/static/redfish/v1/schema/BootOptionCollection_v1.xml @@ -1,11 +1,11 @@ - + - + @@ -33,12 +33,12 @@ - - + + - + @@ -60,8 +60,8 @@ - - + + diff --git a/Contrib-Inspur/bmcweb/static/redfish/v1/schema/BootOption_v1.xml b/Contrib-Inspur/bmcweb/static/redfish/v1/schema/BootOption_v1.xml index 5f3a8db1..daef828b 100644 --- a/Contrib-Inspur/bmcweb/static/redfish/v1/schema/BootOption_v1.xml +++ b/Contrib-Inspur/bmcweb/static/redfish/v1/schema/BootOption_v1.xml @@ -1,11 +1,11 @@ - + - + @@ -34,8 +34,8 @@ - - + + @@ -45,12 +45,13 @@ + - + @@ -69,61 +70,61 @@ - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + @@ -134,5 +135,17 @@ + + + + + + + + + + + + diff --git a/Contrib-Inspur/bmcweb/static/redfish/v1/schema/CertificateCollection_v1.xml b/Contrib-Inspur/bmcweb/static/redfish/v1/schema/CertificateCollection_v1.xml index a6dfa5b7..68982d75 100644 --- a/Contrib-Inspur/bmcweb/static/redfish/v1/schema/CertificateCollection_v1.xml +++ b/Contrib-Inspur/bmcweb/static/redfish/v1/schema/CertificateCollection_v1.xml @@ -1,11 +1,11 @@ - + - + @@ -33,12 +33,12 @@ - - + + - + @@ -62,12 +62,15 @@ /redfish/v1/Managers/{ManagerId}/RemoteAccountService/LDAP/Certificates /redfish/v1/Managers/{ManagerId}/RemoteAccountService/ExternalAccountProviders/{ExternalAccountProviderId}/Certificates /redfish/v1/Managers/{ManagerId}/NetworkProtocol/HTTPS/Certificates + /redfish/v1/Systems/{ComputerSystemId}/Boot/Certificates + /redfish/v1/CompositionService/ResourceBlocks/{ResourceBlockId}/Systems/{ComputerSystemId}/Boot/Certificates + /redfish/v1/ResourceBlocks/{ResourceBlockId}/Systems/{ComputerSystemId}/Boot/Certificates - - + + diff --git a/Contrib-Inspur/bmcweb/static/redfish/v1/schema/CertificateLocations_v1.xml b/Contrib-Inspur/bmcweb/static/redfish/v1/schema/CertificateLocations_v1.xml index b9e394b3..0c60d85d 100644 --- a/Contrib-Inspur/bmcweb/static/redfish/v1/schema/CertificateLocations_v1.xml +++ b/Contrib-Inspur/bmcweb/static/redfish/v1/schema/CertificateLocations_v1.xml @@ -1,11 +1,11 @@ - + - + @@ -34,8 +34,8 @@ - - + + @@ -65,42 +65,54 @@ - - + + - - + + - - + + - - + + - - + + - - + + - - + + + + + + + + + + + + + + diff --git a/Contrib-Inspur/bmcweb/static/redfish/v1/schema/CertificateService_v1.xml b/Contrib-Inspur/bmcweb/static/redfish/v1/schema/CertificateService_v1.xml index e6cc4a0e..e9c27d5f 100644 --- a/Contrib-Inspur/bmcweb/static/redfish/v1/schema/CertificateService_v1.xml +++ b/Contrib-Inspur/bmcweb/static/redfish/v1/schema/CertificateService_v1.xml @@ -1,11 +1,11 @@ - + - + @@ -39,8 +39,8 @@ - - + + @@ -66,102 +66,102 @@ - - + + - - + + - + - + - + - + - - + + - + - - + + - - + + - - + + - - + + - + - + - + - + - - + + - + - + - - + + - + - + - - + + - - + + @@ -171,31 +171,31 @@ - - + + - - + + - - + + - - + + - - + + @@ -204,18 +204,30 @@ - - + + - + + + + + + + + + + + + + diff --git a/Contrib-Inspur/bmcweb/static/redfish/v1/schema/Certificate_v1.xml b/Contrib-Inspur/bmcweb/static/redfish/v1/schema/Certificate_v1.xml index fda22322..9216abe7 100644 --- a/Contrib-Inspur/bmcweb/static/redfish/v1/schema/Certificate_v1.xml +++ b/Contrib-Inspur/bmcweb/static/redfish/v1/schema/Certificate_v1.xml @@ -1,11 +1,11 @@ - + - + @@ -30,8 +30,8 @@ - - + + @@ -45,7 +45,7 @@ - + @@ -59,70 +59,123 @@ /redfish/v1/Managers/{ManagerId}/RemoteAccountService/LDAP/Certificates/{CertificateId} /redfish/v1/Managers/{ManagerId}/RemoteAccountService/ExternalAccountProviders/{ExternalAccountProviderId}/Certificates/{CertificateId} /redfish/v1/Managers/{ManagerId}/NetworkProtocol/HTTPS/Certificates/{CertificateId} + /redfish/v1/Systems/{ComputerSystemId}/Boot/Certificates/{CertificateId} + /redfish/v1/CompositionService/ResourceBlocks/{ResourceBlockId}/Systems/{ComputerSystemId}/Boot/Certificates/{CertificateId} + /redfish/v1/ResourceBlocks/{ResourceBlockId}/Systems/{ComputerSystemId}/Boot/Certificates/{CertificateId} - - + + - - + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -133,7 +186,7 @@ - + @@ -144,38 +197,38 @@ - + - + - + - + - - + + - - + + - + @@ -204,7 +257,7 @@ - + @@ -215,20 +268,81 @@ - - + + - - + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Contrib-Inspur/bmcweb/static/redfish/v1/schema/ChassisCollection_v1.xml b/Contrib-Inspur/bmcweb/static/redfish/v1/schema/ChassisCollection_v1.xml index 0abe593d..82f2fc98 100644 --- a/Contrib-Inspur/bmcweb/static/redfish/v1/schema/ChassisCollection_v1.xml +++ b/Contrib-Inspur/bmcweb/static/redfish/v1/schema/ChassisCollection_v1.xml @@ -1,11 +1,11 @@ - + - + @@ -33,8 +33,8 @@ - - + + @@ -57,8 +57,8 @@ - - + + diff --git a/Contrib-Inspur/bmcweb/static/redfish/v1/schema/Chassis_v1.xml b/Contrib-Inspur/bmcweb/static/redfish/v1/schema/Chassis_v1.xml index ab8325ae..1746d913 100644 --- a/Contrib-Inspur/bmcweb/static/redfish/v1/schema/Chassis_v1.xml +++ b/Contrib-Inspur/bmcweb/static/redfish/v1/schema/Chassis_v1.xml @@ -1,11 +1,11 @@ - + - + @@ -52,6 +52,9 @@ + + + @@ -80,8 +83,8 @@ - - + + @@ -90,7 +93,7 @@ - + @@ -108,11 +111,11 @@ - - + + - - + + @@ -131,125 +134,125 @@ - + - + - + - + - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + @@ -257,7 +260,7 @@ - + @@ -266,7 +269,7 @@ - + @@ -281,7 +284,7 @@ - + @@ -290,19 +293,19 @@ - + - + - + - + - + @@ -316,7 +319,7 @@ - + @@ -327,7 +330,7 @@ - + @@ -345,29 +348,29 @@ - - + + - + - - + + - - + + - - + + @@ -380,22 +383,22 @@ - + - + - + - + - + @@ -415,7 +418,7 @@ - + @@ -427,7 +430,7 @@ - + @@ -439,10 +442,22 @@ - + + + + + + + + + + + + + @@ -450,7 +465,7 @@ - + @@ -461,26 +476,26 @@ - + - + - - + + - + - + @@ -489,10 +504,10 @@ - + - + @@ -511,7 +526,7 @@ - + @@ -523,7 +538,7 @@ - + @@ -535,16 +550,28 @@ - + + + + + + + + + + + + + - + @@ -552,20 +579,20 @@ - - + + - - + + - - + + @@ -579,7 +606,7 @@ - + @@ -591,7 +618,7 @@ - + @@ -603,10 +630,22 @@ - + + + + + + + + + + + + + @@ -622,7 +661,7 @@ - + @@ -634,7 +673,7 @@ - + @@ -646,10 +685,22 @@ - + + + + + + + + + + + + + @@ -657,35 +708,35 @@ - + - + - + - + - - + + @@ -693,16 +744,25 @@ - - + + + + + + + + + + + - + @@ -714,7 +774,7 @@ - + @@ -726,10 +786,22 @@ - + + + + + + + + + + + + + @@ -738,8 +810,8 @@ - - + + @@ -753,7 +825,7 @@ - + @@ -765,19 +837,31 @@ - + + + + + + + + + + + + + - + - - + + @@ -791,26 +875,38 @@ - + + + + + + + + + + + + + - - + + - - + + @@ -824,18 +920,30 @@ - + + + + + + + + + + + + + - - + + @@ -843,10 +951,22 @@ - + + + + + + + + + + + + + @@ -854,41 +974,67 @@ - - + + - + - + - + - + - + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Contrib-Inspur/bmcweb/static/redfish/v1/schema/CollectionCapabilities_v1.xml b/Contrib-Inspur/bmcweb/static/redfish/v1/schema/CollectionCapabilities_v1.xml index 28ab71c6..e6b756e5 100644 --- a/Contrib-Inspur/bmcweb/static/redfish/v1/schema/CollectionCapabilities_v1.xml +++ b/Contrib-Inspur/bmcweb/static/redfish/v1/schema/CollectionCapabilities_v1.xml @@ -1,11 +1,11 @@ - + - + @@ -16,6 +16,7 @@ + @@ -36,33 +37,33 @@ - + - - + + - - + + - - + + - - + + - - + + @@ -88,19 +89,19 @@ - - + + - + - - + + @@ -115,10 +116,16 @@ - + + + + + + + @@ -128,9 +135,29 @@ - + + + + + + + + + + + + + + + + + + + + + diff --git a/Contrib-Inspur/bmcweb/static/redfish/v1/schema/CompositionService_v1.xml b/Contrib-Inspur/bmcweb/static/redfish/v1/schema/CompositionService_v1.xml index 4471f9c8..e0e1dc08 100644 --- a/Contrib-Inspur/bmcweb/static/redfish/v1/schema/CompositionService_v1.xml +++ b/Contrib-Inspur/bmcweb/static/redfish/v1/schema/CompositionService_v1.xml @@ -1,11 +1,11 @@ - + - + @@ -37,8 +37,8 @@ - - + + @@ -47,7 +47,7 @@ - + @@ -70,53 +70,53 @@ - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - + @@ -126,22 +126,46 @@ + + + + + + + + + + + + - - + + - - + + + + + + + + + + + + + + diff --git a/Contrib-Inspur/bmcweb/static/redfish/v1/schema/ComputerSystemCollection_v1.xml b/Contrib-Inspur/bmcweb/static/redfish/v1/schema/ComputerSystemCollection_v1.xml index 71cd597c..e9370575 100644 --- a/Contrib-Inspur/bmcweb/static/redfish/v1/schema/ComputerSystemCollection_v1.xml +++ b/Contrib-Inspur/bmcweb/static/redfish/v1/schema/ComputerSystemCollection_v1.xml @@ -1,11 +1,11 @@ - + - + @@ -33,12 +33,12 @@ - - + + - + @@ -58,8 +58,8 @@ - - + + diff --git a/Contrib-Inspur/bmcweb/static/redfish/v1/schema/ComputerSystem_v1.xml b/Contrib-Inspur/bmcweb/static/redfish/v1/schema/ComputerSystem_v1.xml index eca1671b..d8c90bec 100644 --- a/Contrib-Inspur/bmcweb/static/redfish/v1/schema/ComputerSystem_v1.xml +++ b/Contrib-Inspur/bmcweb/static/redfish/v1/schema/ComputerSystem_v1.xml @@ -1,11 +1,11 @@ - + - + @@ -85,16 +85,24 @@ + + + + + + + + + - - - + + @@ -103,13 +111,13 @@ - + - + @@ -124,17 +132,17 @@ - - + + - - + + - - + + @@ -149,18 +157,18 @@ - + - + - + - - + + @@ -175,18 +183,18 @@ - + - + - + - - + + @@ -208,31 +216,31 @@ - + - + - + - + - + - + - + @@ -254,7 +262,7 @@ - + @@ -265,7 +273,7 @@ - + @@ -284,187 +292,185 @@ - - - - + + - - + + - - + + - + - + - + - + - + - - + + - - + + - - + + - - + + - - + + - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - + - + - + - + - + - - + + @@ -476,32 +482,31 @@ - - - + + - + - - + + - - + + - - + + @@ -513,50 +518,50 @@ - + - + - - + + - - + + - - + + - - + + - + - + - + - - + + @@ -569,15 +574,15 @@ - - + + - - + + @@ -586,8 +591,8 @@ - - + + @@ -619,7 +624,7 @@ - + @@ -631,53 +636,65 @@ - + - + - + + + + + + + + + + + + + - - + + - - + + - - + + - - + + - - + + @@ -685,14 +702,14 @@ - - + + - + @@ -708,24 +725,24 @@ - - + + - + - + - - + + @@ -733,16 +750,16 @@ - + - - + + - - + + @@ -774,7 +791,7 @@ - + @@ -786,22 +803,34 @@ - + - + - + + + + + + + + + + + + + @@ -809,52 +838,52 @@ - - + + - + - - + + - + - - + + - + - + - - + + - - + + - - + + - - + + - - + + @@ -868,8 +897,8 @@ - - + + @@ -883,7 +912,7 @@ - + @@ -895,30 +924,42 @@ - + - + - + + + + + + + + + + + + + - - + + @@ -927,13 +968,13 @@ - + - - + + @@ -943,20 +984,20 @@ - + - + - + - + @@ -968,22 +1009,34 @@ - + - + - + + + + + + + + + + + + + @@ -1002,8 +1055,8 @@ - - + + @@ -1017,59 +1070,71 @@ - + - + - + + + + + + + + + + + + + - - + + - - + + - + - - + + - - + + - - + + @@ -1085,51 +1150,51 @@ - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - + @@ -1151,7 +1216,7 @@ - + @@ -1172,16 +1237,28 @@ - + - + + + + + + + + + + + + + @@ -1189,46 +1266,101 @@ - + - - + + - - + + - + - + - + - + - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Contrib-Inspur/bmcweb/static/redfish/v1/schema/Crashdump_v1.xml b/Contrib-Inspur/bmcweb/static/redfish/v1/schema/Crashdump_v1.xml new file mode 100644 index 00000000..db9dde0e --- /dev/null +++ b/Contrib-Inspur/bmcweb/static/redfish/v1/schema/Crashdump_v1.xml @@ -0,0 +1,38 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Contrib-Inspur/bmcweb/static/redfish/v1/schema/Drive_v1.xml b/Contrib-Inspur/bmcweb/static/redfish/v1/schema/Drive_v1.xml index 9d075849..a853d667 100644 --- a/Contrib-Inspur/bmcweb/static/redfish/v1/schema/Drive_v1.xml +++ b/Contrib-Inspur/bmcweb/static/redfish/v1/schema/Drive_v1.xml @@ -1,11 +1,11 @@ - + - + @@ -45,6 +45,9 @@ + + + @@ -52,8 +55,8 @@ - - + + @@ -62,7 +65,7 @@ - + @@ -86,10 +89,27 @@ - - + + + + + + + + + + + + + + + + + + + @@ -99,43 +119,43 @@ - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + @@ -144,126 +164,126 @@ - - + + - - + + - + - + - - + + - + - + - + - - + + - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + @@ -280,28 +300,28 @@ - + - + - + - + - + - + - + @@ -313,16 +333,16 @@ - + - + - + @@ -351,16 +371,16 @@ - + - + - + - + @@ -380,13 +400,13 @@ - + - + @@ -398,10 +418,22 @@ - + + + + + + + + + + + + + @@ -416,31 +448,31 @@ - - + + - - + + - + - + - - + + @@ -454,13 +486,13 @@ - + - + @@ -472,10 +504,22 @@ - + + + + + + + + + + + + + @@ -484,8 +528,8 @@ - - + + @@ -493,7 +537,7 @@ - + @@ -505,18 +549,30 @@ - + + + + + + + + + + + + + - - + + @@ -530,16 +586,28 @@ - + + + + + + + + + + + + + - + @@ -553,36 +621,94 @@ - + + + + + + + + + + + + + - - + + - + - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Contrib-Inspur/bmcweb/static/redfish/v1/schema/EndpointCollection_v1.xml b/Contrib-Inspur/bmcweb/static/redfish/v1/schema/EndpointCollection_v1.xml index 00ba4e62..e4695478 100644 --- a/Contrib-Inspur/bmcweb/static/redfish/v1/schema/EndpointCollection_v1.xml +++ b/Contrib-Inspur/bmcweb/static/redfish/v1/schema/EndpointCollection_v1.xml @@ -1,11 +1,11 @@ - + - + @@ -33,11 +33,12 @@ - - + + - + + @@ -57,8 +58,8 @@ - - + + diff --git a/Contrib-Inspur/bmcweb/static/redfish/v1/schema/Endpoint_v1.xml b/Contrib-Inspur/bmcweb/static/redfish/v1/schema/Endpoint_v1.xml index d124ab64..9d4cfdc9 100644 --- a/Contrib-Inspur/bmcweb/static/redfish/v1/schema/Endpoint_v1.xml +++ b/Contrib-Inspur/bmcweb/static/redfish/v1/schema/Endpoint_v1.xml @@ -1,11 +1,11 @@ - + - + @@ -52,8 +52,8 @@ - - + + @@ -66,7 +66,8 @@ - + + @@ -83,107 +84,105 @@ - - - - + + - + - + - + - + - + - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - - - - + + + + + - - + + - - + + - + - + - + - + - + @@ -196,8 +195,8 @@ - - + + @@ -209,37 +208,37 @@ - + - + - + - - + + - - + + - + - + - + - + - + @@ -251,7 +250,7 @@ - + @@ -262,7 +261,7 @@ - + @@ -276,13 +275,13 @@ - + - + - + @@ -293,25 +292,25 @@ - + - + - + - + @@ -326,13 +325,13 @@ - + - + @@ -344,16 +343,28 @@ - + + + + + + + + + + + + + - - + + @@ -362,33 +373,33 @@ - - + + - - + + - + - - + + - - + + - - + + @@ -403,10 +414,22 @@ - + + + + + + + + + + + + + @@ -416,12 +439,12 @@ - + - - + + @@ -429,10 +452,22 @@ - + + + + + + + + + + + + + @@ -440,5 +475,17 @@ + + + + + + + + + + + + diff --git a/Contrib-Inspur/bmcweb/static/redfish/v1/schema/EthernetInterfaceCollection_v1.xml b/Contrib-Inspur/bmcweb/static/redfish/v1/schema/EthernetInterfaceCollection_v1.xml index 0253a2be..442dc27d 100644 --- a/Contrib-Inspur/bmcweb/static/redfish/v1/schema/EthernetInterfaceCollection_v1.xml +++ b/Contrib-Inspur/bmcweb/static/redfish/v1/schema/EthernetInterfaceCollection_v1.xml @@ -1,11 +1,11 @@ - + - + @@ -33,8 +33,8 @@ - - + + @@ -61,8 +61,8 @@ - - + + diff --git a/Contrib-Inspur/bmcweb/static/redfish/v1/schema/EthernetInterface_v1.xml b/Contrib-Inspur/bmcweb/static/redfish/v1/schema/EthernetInterface_v1.xml index 4c8ef3ed..8efeb094 100644 --- a/Contrib-Inspur/bmcweb/static/redfish/v1/schema/EthernetInterface_v1.xml +++ b/Contrib-Inspur/bmcweb/static/redfish/v1/schema/EthernetInterface_v1.xml @@ -1,11 +1,11 @@ - + - + @@ -53,8 +53,8 @@ - - + + @@ -63,7 +63,7 @@ - + @@ -90,103 +90,101 @@ - - - + - - + + - - + + - - + + - - + + + + - - - - + + - - + + - - + + - - + + - - + + - - + + - - - + + + - + - - - + + + - - + + - - - + + + - - + + - - + + - - + + @@ -197,25 +195,25 @@ - - + + - - + + - - + + - - + + @@ -224,7 +222,7 @@ - + @@ -236,13 +234,13 @@ - + - + @@ -252,18 +250,30 @@ + + + + + + + + + + + + - - + + - - + + @@ -272,20 +282,20 @@ - + - + - - + + - - + + @@ -299,13 +309,13 @@ - + - + @@ -315,6 +325,18 @@ + + + + + + + + + + + + @@ -323,8 +345,8 @@ - - + + @@ -332,13 +354,13 @@ - + - + @@ -348,45 +370,57 @@ + + + + + + + + + + + + - - + + - - + + - - + + - - + + - - + + - + @@ -396,34 +430,46 @@ + + + + + + + + + + + + - + - + - - - + + + - + - + - - + + - + - + @@ -433,33 +479,33 @@ - - + + - - + + - - + + - - + + - - + + - - + + @@ -470,38 +516,38 @@ - + - - + + - - + + - - + + - - + + - + - + @@ -511,17 +557,17 @@ - - + + - - + + - - + + @@ -529,9 +575,56 @@ - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Contrib-Inspur/bmcweb/static/redfish/v1/schema/EventDestinationCollection_v1.xml b/Contrib-Inspur/bmcweb/static/redfish/v1/schema/EventDestinationCollection_v1.xml index 21130d89..10be2361 100644 --- a/Contrib-Inspur/bmcweb/static/redfish/v1/schema/EventDestinationCollection_v1.xml +++ b/Contrib-Inspur/bmcweb/static/redfish/v1/schema/EventDestinationCollection_v1.xml @@ -1,11 +1,11 @@ - + - + @@ -33,12 +33,12 @@ - - + + - + @@ -58,8 +58,8 @@ - - + + diff --git a/Contrib-Inspur/bmcweb/static/redfish/v1/schema/EventDestination_v1.xml b/Contrib-Inspur/bmcweb/static/redfish/v1/schema/EventDestination_v1.xml index 7ea598ff..f66fd2c7 100644 --- a/Contrib-Inspur/bmcweb/static/redfish/v1/schema/EventDestination_v1.xml +++ b/Contrib-Inspur/bmcweb/static/redfish/v1/schema/EventDestination_v1.xml @@ -1,11 +1,11 @@ - + - + @@ -27,6 +27,9 @@ + + + @@ -34,8 +37,8 @@ - - + + @@ -44,12 +47,13 @@ - + - + + @@ -59,6 +63,12 @@ + + + + + + @@ -69,10 +79,10 @@ - + - + @@ -86,44 +96,52 @@ - - + + - - - + + + + + + + + + + + - + - + - - + + - + - - + + @@ -156,7 +174,7 @@ - + @@ -166,19 +184,31 @@ + + + + + + + + + + + + - - + + - - + + @@ -203,7 +233,7 @@ - + @@ -213,30 +243,42 @@ + + + + + + + + + + + + - - + + - - + + - - + + - - + + @@ -248,7 +290,7 @@ - + @@ -258,21 +300,33 @@ + + + + + + + + + + + + - - + + - + @@ -286,6 +340,18 @@ + + + + + + + + + + + + @@ -293,26 +359,85 @@ - - + + - - + + - - + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Contrib-Inspur/bmcweb/static/redfish/v1/schema/EventService_v1.xml b/Contrib-Inspur/bmcweb/static/redfish/v1/schema/EventService_v1.xml index 973c7694..86f9928c 100644 --- a/Contrib-Inspur/bmcweb/static/redfish/v1/schema/EventService_v1.xml +++ b/Contrib-Inspur/bmcweb/static/redfish/v1/schema/EventService_v1.xml @@ -1,11 +1,11 @@ - + - + @@ -43,8 +43,8 @@ - - + + @@ -69,42 +69,63 @@ - - + + - - - + + + + + + + + + + + + - - - + + + - - - + + + - - - + + + - - + + - - + + - - + + - - + + + + + + + + + + + + + + @@ -116,55 +137,64 @@ - - + + - - + + - - + + - - + + + + + + + + + + + - - + + - - + + - - + + - - + + - - + + - - + + @@ -195,7 +225,7 @@ - + @@ -211,14 +241,26 @@ + + + + + + + + + + + + - - + + @@ -230,88 +272,149 @@ + + + + + + + + + + + + - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + + + + + + + + + + - - + + - - + + - - + + - - + + - - + + - - + + - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Contrib-Inspur/bmcweb/static/redfish/v1/schema/Event_v1.xml b/Contrib-Inspur/bmcweb/static/redfish/v1/schema/Event_v1.xml index a4d1e33a..e80db69f 100644 --- a/Contrib-Inspur/bmcweb/static/redfish/v1/schema/Event_v1.xml +++ b/Contrib-Inspur/bmcweb/static/redfish/v1/schema/Event_v1.xml @@ -1,11 +1,11 @@ - + - + @@ -32,8 +32,8 @@ - - + + @@ -57,28 +57,28 @@ - + - + - + - + - + - + - - + + @@ -88,6 +88,18 @@ + + + + + + + + + + + + @@ -98,8 +110,8 @@ - - + + @@ -108,69 +120,69 @@ - - + + - + - - + + - - + + - - + + - - + + - - + + - - + + - + - + - - + + @@ -178,31 +190,31 @@ - + - + - + - + - + @@ -214,10 +226,22 @@ - + + + + + + + + + + + + + @@ -225,32 +249,32 @@ - + - + - + - + - + @@ -262,63 +286,75 @@ - + + + + + + + + + + + + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - + @@ -330,30 +366,67 @@ - + + + + + + + + + + + + + - + - - + + - + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Contrib-Inspur/bmcweb/static/redfish/v1/schema/ExternalAccountProviderCollection_v1.xml b/Contrib-Inspur/bmcweb/static/redfish/v1/schema/ExternalAccountProviderCollection_v1.xml index e7ceb3c4..caf6ed8d 100644 --- a/Contrib-Inspur/bmcweb/static/redfish/v1/schema/ExternalAccountProviderCollection_v1.xml +++ b/Contrib-Inspur/bmcweb/static/redfish/v1/schema/ExternalAccountProviderCollection_v1.xml @@ -1,11 +1,11 @@ - + - + @@ -33,12 +33,12 @@ - - + + - + @@ -59,8 +59,8 @@ - - + + diff --git a/Contrib-Inspur/bmcweb/static/redfish/v1/schema/ExternalAccountProvider_v1.xml b/Contrib-Inspur/bmcweb/static/redfish/v1/schema/ExternalAccountProvider_v1.xml index 5137f9cd..8a9e3f48 100644 --- a/Contrib-Inspur/bmcweb/static/redfish/v1/schema/ExternalAccountProvider_v1.xml +++ b/Contrib-Inspur/bmcweb/static/redfish/v1/schema/ExternalAccountProvider_v1.xml @@ -1,11 +1,11 @@ - + - + @@ -34,8 +34,8 @@ - - + + @@ -44,13 +44,13 @@ - + - + @@ -71,90 +71,90 @@ - - + + - - + + - - + + - - - + + + - - - + + + - + - - + + - - + + - + - - + + - - + + - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + @@ -163,97 +163,97 @@ - + - + - + - - - - - + + + + + - - + + - - + + - - + + - - + + - - + + - - + + - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + @@ -263,18 +263,42 @@ + + + + + + + + + + + + - - + + + + + + + + + + + + + + diff --git a/Contrib-Inspur/bmcweb/static/redfish/v1/schema/FabricCollection_v1.xml b/Contrib-Inspur/bmcweb/static/redfish/v1/schema/FabricCollection_v1.xml index d10786f1..b9264c0e 100644 --- a/Contrib-Inspur/bmcweb/static/redfish/v1/schema/FabricCollection_v1.xml +++ b/Contrib-Inspur/bmcweb/static/redfish/v1/schema/FabricCollection_v1.xml @@ -1,11 +1,11 @@ - + - + @@ -32,8 +32,8 @@ - - + + @@ -56,8 +56,8 @@ - - + + diff --git a/Contrib-Inspur/bmcweb/static/redfish/v1/schema/Fabric_v1.xml b/Contrib-Inspur/bmcweb/static/redfish/v1/schema/Fabric_v1.xml index d70be578..13786028 100644 --- a/Contrib-Inspur/bmcweb/static/redfish/v1/schema/Fabric_v1.xml +++ b/Contrib-Inspur/bmcweb/static/redfish/v1/schema/Fabric_v1.xml @@ -1,165 +1,177 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - /redfish/v1/Fabrics/{FabricId} - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + /redfish/v1/Fabrics/{FabricId} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Contrib-Inspur/bmcweb/static/redfish/v1/schema/HostInterfaceCollection_v1.xml b/Contrib-Inspur/bmcweb/static/redfish/v1/schema/HostInterfaceCollection_v1.xml index 0d1eaa6e..9f3868ce 100644 --- a/Contrib-Inspur/bmcweb/static/redfish/v1/schema/HostInterfaceCollection_v1.xml +++ b/Contrib-Inspur/bmcweb/static/redfish/v1/schema/HostInterfaceCollection_v1.xml @@ -1,11 +1,11 @@ - + - + @@ -33,8 +33,8 @@ - - + + @@ -57,8 +57,8 @@ - - + + diff --git a/Contrib-Inspur/bmcweb/static/redfish/v1/schema/HostInterface_v1.xml b/Contrib-Inspur/bmcweb/static/redfish/v1/schema/HostInterface_v1.xml index 3eaab6b1..2c1afe3d 100644 --- a/Contrib-Inspur/bmcweb/static/redfish/v1/schema/HostInterface_v1.xml +++ b/Contrib-Inspur/bmcweb/static/redfish/v1/schema/HostInterface_v1.xml @@ -1,11 +1,11 @@ - + - + @@ -46,8 +46,8 @@ - - + + @@ -56,7 +56,7 @@ - + @@ -78,75 +78,73 @@ - - - - + + - - + + - - + + - - + + - - + + - + - - + + - + - - + + - - + + - - + + - - + + - - + + @@ -172,24 +170,24 @@ - - + + - - + + - - + + - - + + @@ -198,7 +196,7 @@ - + @@ -214,36 +212,48 @@ + + + + + + + + + + + + - - + + - - + + - - + + - - + + - + @@ -259,26 +269,50 @@ + + + + + + + + + + + + - - + + - - + + + + + + + + + + + + + + diff --git a/Contrib-Inspur/bmcweb/static/redfish/v1/schema/IPAddresses_v1.xml b/Contrib-Inspur/bmcweb/static/redfish/v1/schema/IPAddresses_v1.xml index 0169b5b0..3158bc64 100644 --- a/Contrib-Inspur/bmcweb/static/redfish/v1/schema/IPAddresses_v1.xml +++ b/Contrib-Inspur/bmcweb/static/redfish/v1/schema/IPAddresses_v1.xml @@ -1,11 +1,11 @@ - + - + @@ -29,25 +29,25 @@ - + - + - + - + @@ -60,88 +60,88 @@ - - + + - - + + - - + + - + - - + + - - + + - + - - + + - + - - + + - + - + - + - + - + - + - + - + @@ -156,23 +156,23 @@ - + - + - + - + - - + + @@ -183,8 +183,8 @@ - - + + @@ -192,22 +192,22 @@ - + - + - + - + @@ -220,14 +220,19 @@ + + + + + - - + + @@ -238,11 +243,16 @@ - - + + + + + + + diff --git a/Contrib-Inspur/bmcweb/static/redfish/v1/schema/JobCollection_v1.xml b/Contrib-Inspur/bmcweb/static/redfish/v1/schema/JobCollection_v1.xml index 4d60ca70..26d58b5f 100644 --- a/Contrib-Inspur/bmcweb/static/redfish/v1/schema/JobCollection_v1.xml +++ b/Contrib-Inspur/bmcweb/static/redfish/v1/schema/JobCollection_v1.xml @@ -1,11 +1,11 @@ - + - + @@ -33,11 +33,12 @@ - - + + + @@ -52,8 +53,8 @@ - - + + diff --git a/Contrib-Inspur/bmcweb/static/redfish/v1/schema/JobService_v1.xml b/Contrib-Inspur/bmcweb/static/redfish/v1/schema/JobService_v1.xml index f0f79fef..1ba908d7 100644 --- a/Contrib-Inspur/bmcweb/static/redfish/v1/schema/JobService_v1.xml +++ b/Contrib-Inspur/bmcweb/static/redfish/v1/schema/JobService_v1.xml @@ -1,11 +1,11 @@ - + - + @@ -37,8 +37,8 @@ - - + + @@ -47,7 +47,7 @@ - + @@ -67,81 +67,91 @@ - - - - + + - - + + - - + + - - + + - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + + + + + + + + + + + + + diff --git a/Contrib-Inspur/bmcweb/static/redfish/v1/schema/Job_v1.xml b/Contrib-Inspur/bmcweb/static/redfish/v1/schema/Job_v1.xml index 7109440a..c16f31ad 100644 --- a/Contrib-Inspur/bmcweb/static/redfish/v1/schema/Job_v1.xml +++ b/Contrib-Inspur/bmcweb/static/redfish/v1/schema/Job_v1.xml @@ -1,11 +1,11 @@ - + - + @@ -43,8 +43,8 @@ - - + + @@ -53,13 +53,13 @@ - + - + @@ -79,22 +79,22 @@ - + - + - - + + - + - - + + @@ -104,45 +104,45 @@ - + - + - - + + - - + + - + - - + + - - + + - - + + - - + + @@ -176,16 +176,16 @@ - - + + - - + + - + @@ -193,7 +193,7 @@ - + @@ -207,42 +207,42 @@ - - + + - - + + - - + + - - + + - - + + - - + + - - + + @@ -252,5 +252,17 @@ + + + + + + + + + + + + diff --git a/Contrib-Inspur/bmcweb/static/redfish/v1/schema/JsonSchemaFileCollection_v1.xml b/Contrib-Inspur/bmcweb/static/redfish/v1/schema/JsonSchemaFileCollection_v1.xml index 5e1765cd..c7ca16d0 100644 --- a/Contrib-Inspur/bmcweb/static/redfish/v1/schema/JsonSchemaFileCollection_v1.xml +++ b/Contrib-Inspur/bmcweb/static/redfish/v1/schema/JsonSchemaFileCollection_v1.xml @@ -1,11 +1,11 @@ - + - + @@ -33,8 +33,8 @@ - - + + @@ -57,8 +57,8 @@ - - + + diff --git a/Contrib-Inspur/bmcweb/static/redfish/v1/schema/JsonSchemaFile_v1.xml b/Contrib-Inspur/bmcweb/static/redfish/v1/schema/JsonSchemaFile_v1.xml index 941f92df..a805462a 100644 --- a/Contrib-Inspur/bmcweb/static/redfish/v1/schema/JsonSchemaFile_v1.xml +++ b/Contrib-Inspur/bmcweb/static/redfish/v1/schema/JsonSchemaFile_v1.xml @@ -1,11 +1,11 @@ - + - + @@ -30,8 +30,8 @@ - - + + @@ -61,18 +61,16 @@ - - - - + + - + @@ -88,31 +86,31 @@ - - + + - - + + - - + + - - + + - - + + @@ -120,19 +118,19 @@ - + - + - + @@ -148,30 +146,42 @@ + + + + + + + + + + + + - - + + - - + + - - + + - - + + @@ -187,5 +197,17 @@ + + + + + + + + + + + + diff --git a/Contrib-Inspur/bmcweb/static/redfish/v1/schema/LogEntryCollection_v1.xml b/Contrib-Inspur/bmcweb/static/redfish/v1/schema/LogEntryCollection_v1.xml index 10d635e7..697a8ded 100644 --- a/Contrib-Inspur/bmcweb/static/redfish/v1/schema/LogEntryCollection_v1.xml +++ b/Contrib-Inspur/bmcweb/static/redfish/v1/schema/LogEntryCollection_v1.xml @@ -1,11 +1,11 @@ - + - + @@ -33,8 +33,8 @@ - - + + @@ -56,12 +56,14 @@ /redfish/v1/Systems/{ComputerSystemId}/LogServices/{LogServiceId}/Entries /redfish/v1/CompositionService/ResourceBlocks/{ResourceBlockId}/Systems/{ComputerSystemId}/LogServices/{LogServiceId}/Entries /redfish/v1/ResourceBlocks/{ResourceBlockId}/Systems/{ComputerSystemId}/LogServices/{LogServiceId}/Entries + /redfish/v1/JobService/Log/Entries + /redfish/v1/TelemetryService/LogService/Entries - - + + diff --git a/Contrib-Inspur/bmcweb/static/redfish/v1/schema/LogEntry_v1.xml b/Contrib-Inspur/bmcweb/static/redfish/v1/schema/LogEntry_v1.xml index 606e48df..67b5a223 100644 --- a/Contrib-Inspur/bmcweb/static/redfish/v1/schema/LogEntry_v1.xml +++ b/Contrib-Inspur/bmcweb/static/redfish/v1/schema/LogEntry_v1.xml @@ -1,11 +1,11 @@ - + - + @@ -34,8 +34,8 @@ - - + + @@ -49,7 +49,7 @@ - + @@ -58,6 +58,8 @@ /redfish/v1/Systems/{ComputerSystemId}/LogServices/{LogServiceId}/Entries/{LogEntryId} /redfish/v1/CompositionService/ResourceBlocks/{ResourceBlockId}/Systems/{ComputerSystemId}/LogServices/{LogServiceId}/Entries/{LogEntryId} /redfish/v1/ResourceBlocks/{ResourceBlockId}/Systems/{ComputerSystemId}/LogServices/{LogServiceId}/Entries/{LogEntryId} + /redfish/v1/JobService/Log/Entries/{LogEntryId} + /redfish/v1/TelemetryService/LogService/Entries/{LogEntryId} @@ -71,69 +73,69 @@ - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + @@ -143,22 +145,22 @@ - + - + - + - + - + @@ -295,19 +297,19 @@ - + - + - + - + @@ -351,7 +353,7 @@ - + @@ -371,11 +373,11 @@ - + - + @@ -387,23 +389,23 @@ - + - + - + - + - + @@ -518,11 +520,11 @@ - + - + @@ -594,7 +596,7 @@ - + @@ -630,49 +632,61 @@ - + - + - + + + + + + + + + + + + + - - + + - + - + - - + + @@ -691,67 +705,91 @@ - + - + - + + + + + + + + + + + + + - - + + - - + + - - + + - - + + - + - + - + + + + + + + + + + + + + @@ -759,29 +797,41 @@ - - + + - - + + - + - + + + + + + + + + + + + + @@ -789,17 +839,29 @@ - - + + - + + + + + + + + + + + + + diff --git a/Contrib-Inspur/bmcweb/static/redfish/v1/schema/LogServiceCollection_v1.xml b/Contrib-Inspur/bmcweb/static/redfish/v1/schema/LogServiceCollection_v1.xml index f822658a..7b572f7a 100644 --- a/Contrib-Inspur/bmcweb/static/redfish/v1/schema/LogServiceCollection_v1.xml +++ b/Contrib-Inspur/bmcweb/static/redfish/v1/schema/LogServiceCollection_v1.xml @@ -1,11 +1,11 @@ - + - + @@ -33,8 +33,8 @@ - - + + @@ -60,8 +60,8 @@ - - + + diff --git a/Contrib-Inspur/bmcweb/static/redfish/v1/schema/LogService_v1.xml b/Contrib-Inspur/bmcweb/static/redfish/v1/schema/LogService_v1.xml index bdee3cea..788d997f 100644 --- a/Contrib-Inspur/bmcweb/static/redfish/v1/schema/LogService_v1.xml +++ b/Contrib-Inspur/bmcweb/static/redfish/v1/schema/LogService_v1.xml @@ -1,11 +1,11 @@ - + - + @@ -35,8 +35,8 @@ - - + + @@ -45,7 +45,7 @@ - + @@ -59,13 +59,15 @@ /redfish/v1/Systems/{ComputerSystemId}/LogServices/{LogServiceId} /redfish/v1/CompositionService/ResourceBlocks/{ResourceBlockId}/Systems/{ComputerSystemId}/LogServices/{LogServiceId} /redfish/v1/ResourceBlocks/{ResourceBlockId}/Systems/{ComputerSystemId}/LogServices/{LogServiceId} + /redfish/v1/JobService/Log + /redfish/v1/TelemetryService/LogService - + @@ -76,65 +78,63 @@ - - - - + + - - + + - + - - + + - - - + + + - - + + - - + + - - + + - - + + - - + + - - + + @@ -142,10 +142,10 @@ - + - + @@ -171,7 +171,7 @@ - + @@ -181,6 +181,18 @@ + + + + + + + + + + + + @@ -188,20 +200,20 @@ - - + + - + - + @@ -215,5 +227,17 @@ + + + + + + + + + + + + diff --git a/Contrib-Inspur/bmcweb/static/redfish/v1/schema/ManagerAccountCollection_v1.xml b/Contrib-Inspur/bmcweb/static/redfish/v1/schema/ManagerAccountCollection_v1.xml index 1abc57fc..9d591cad 100644 --- a/Contrib-Inspur/bmcweb/static/redfish/v1/schema/ManagerAccountCollection_v1.xml +++ b/Contrib-Inspur/bmcweb/static/redfish/v1/schema/ManagerAccountCollection_v1.xml @@ -1,11 +1,11 @@ - + - + @@ -33,12 +33,12 @@ - - + + - + @@ -59,8 +59,8 @@ - - + + diff --git a/Contrib-Inspur/bmcweb/static/redfish/v1/schema/ManagerAccount_v1.xml b/Contrib-Inspur/bmcweb/static/redfish/v1/schema/ManagerAccount_v1.xml index 2f4ffcd0..04a3ab0c 100644 --- a/Contrib-Inspur/bmcweb/static/redfish/v1/schema/ManagerAccount_v1.xml +++ b/Contrib-Inspur/bmcweb/static/redfish/v1/schema/ManagerAccount_v1.xml @@ -1,11 +1,11 @@ - + - + @@ -37,8 +37,8 @@ - - + + @@ -47,13 +47,13 @@ - + - + @@ -74,44 +74,44 @@ - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + @@ -144,7 +144,7 @@ - + @@ -154,30 +154,42 @@ + + + + + + + + + + + + - - + + - - + + - - + + - - + + @@ -189,7 +201,7 @@ - + @@ -199,18 +211,60 @@ + + + + + + + + + + + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Contrib-Inspur/bmcweb/static/redfish/v1/schema/ManagerCollection_v1.xml b/Contrib-Inspur/bmcweb/static/redfish/v1/schema/ManagerCollection_v1.xml index 6f6aea59..d684fe72 100644 --- a/Contrib-Inspur/bmcweb/static/redfish/v1/schema/ManagerCollection_v1.xml +++ b/Contrib-Inspur/bmcweb/static/redfish/v1/schema/ManagerCollection_v1.xml @@ -1,11 +1,11 @@ - + - + @@ -33,8 +33,8 @@ - - + + @@ -57,8 +57,8 @@ - - + + diff --git a/Contrib-Inspur/bmcweb/static/redfish/v1/schema/ManagerNetworkProtocol_v1.xml b/Contrib-Inspur/bmcweb/static/redfish/v1/schema/ManagerNetworkProtocol_v1.xml index b11b0e7e..c02ec47c 100644 --- a/Contrib-Inspur/bmcweb/static/redfish/v1/schema/ManagerNetworkProtocol_v1.xml +++ b/Contrib-Inspur/bmcweb/static/redfish/v1/schema/ManagerNetworkProtocol_v1.xml @@ -1,11 +1,11 @@ - + - + @@ -38,8 +38,8 @@ - - + + @@ -48,7 +48,7 @@ - + @@ -72,69 +72,69 @@ - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - + - - + + - - + + @@ -143,21 +143,21 @@ - - + + - - + + - - + + @@ -165,13 +165,13 @@ - + - + - + @@ -201,13 +201,25 @@ + + + + + + + + + + + + - - + + @@ -224,17 +236,29 @@ + + + + + + + + + + + + - - + + - - + + @@ -243,24 +267,24 @@ - + - - + + - - + + - - + + @@ -270,25 +294,49 @@ + + + + + + + + + + + + - - + + - - + + - - + + + + + + + + + + + + + + @@ -297,12 +345,24 @@ - - + + + + + + + + + + + + + + diff --git a/Contrib-Inspur/bmcweb/static/redfish/v1/schema/Manager_v1.xml b/Contrib-Inspur/bmcweb/static/redfish/v1/schema/Manager_v1.xml index 4c9c90fe..dcbd7b6b 100644 --- a/Contrib-Inspur/bmcweb/static/redfish/v1/schema/Manager_v1.xml +++ b/Contrib-Inspur/bmcweb/static/redfish/v1/schema/Manager_v1.xml @@ -1,11 +1,11 @@ - + - + @@ -58,6 +58,9 @@ + + + @@ -65,8 +68,8 @@ - - + + @@ -75,7 +78,7 @@ - + @@ -93,11 +96,11 @@ - - + + - + @@ -105,22 +108,22 @@ - - + + - - + + - - + + - - + + @@ -131,156 +134,154 @@ - - - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - - + + + - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - + - + - + - + - + - + @@ -293,90 +294,90 @@ - + - - + + - - + + - + - + - + - + - + - + - + - + - + - + - - + + - - + + - - + + - - + + - - + + - - + + @@ -402,7 +403,7 @@ - + @@ -414,7 +415,7 @@ - + @@ -426,10 +427,22 @@ - + + + + + + + + + + + + + @@ -437,8 +450,8 @@ - - + + @@ -452,7 +465,7 @@ - + @@ -464,7 +477,7 @@ - + @@ -476,18 +489,30 @@ - + + + + + + + + + + + + + - - + + @@ -500,7 +525,7 @@ - + @@ -512,7 +537,7 @@ - + @@ -524,18 +549,30 @@ - + + + + + + + + + + + + + - - + + @@ -543,7 +580,7 @@ - + @@ -555,7 +592,7 @@ - + @@ -567,26 +604,38 @@ - + + + + + + + + + + + + + - - + + - - + + @@ -600,24 +649,36 @@ - + + + + + + + + + + + + + - - + + - - + + @@ -625,9 +686,42 @@ - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Contrib-Inspur/bmcweb/static/redfish/v1/schema/MemoryChunksCollection_v1.xml b/Contrib-Inspur/bmcweb/static/redfish/v1/schema/MemoryChunksCollection_v1.xml index 043d07e4..3eb48d5f 100644 --- a/Contrib-Inspur/bmcweb/static/redfish/v1/schema/MemoryChunksCollection_v1.xml +++ b/Contrib-Inspur/bmcweb/static/redfish/v1/schema/MemoryChunksCollection_v1.xml @@ -1,11 +1,11 @@ - + - + @@ -32,11 +32,12 @@ - - + + + @@ -58,8 +59,8 @@ - - + + diff --git a/Contrib-Inspur/bmcweb/static/redfish/v1/schema/MemoryChunks_v1.xml b/Contrib-Inspur/bmcweb/static/redfish/v1/schema/MemoryChunks_v1.xml index 4f2072c6..7ad92a9c 100644 --- a/Contrib-Inspur/bmcweb/static/redfish/v1/schema/MemoryChunks_v1.xml +++ b/Contrib-Inspur/bmcweb/static/redfish/v1/schema/MemoryChunks_v1.xml @@ -1,11 +1,11 @@ - + - + @@ -34,8 +34,8 @@ - - + + @@ -45,11 +45,13 @@ + + @@ -71,26 +73,26 @@ - + - + - - + + - - + + - - + + @@ -102,30 +104,30 @@ - + - + - + - + - + @@ -145,13 +147,13 @@ - + - + @@ -161,30 +163,42 @@ + + + + + + + + + + + + - - + + - - + + - - + + - - + + @@ -194,13 +208,25 @@ + + + + + + + + + + + + - - + + @@ -217,5 +243,17 @@ + + + + + + + + + + + + diff --git a/Contrib-Inspur/bmcweb/static/redfish/v1/schema/MemoryCollection_v1.xml b/Contrib-Inspur/bmcweb/static/redfish/v1/schema/MemoryCollection_v1.xml index eebe300d..405b10e4 100644 --- a/Contrib-Inspur/bmcweb/static/redfish/v1/schema/MemoryCollection_v1.xml +++ b/Contrib-Inspur/bmcweb/static/redfish/v1/schema/MemoryCollection_v1.xml @@ -1,11 +1,11 @@ - + - + @@ -32,8 +32,8 @@ - - + + @@ -58,8 +58,8 @@ - - + + diff --git a/Contrib-Inspur/bmcweb/static/redfish/v1/schema/MemoryDomainCollection_v1.xml b/Contrib-Inspur/bmcweb/static/redfish/v1/schema/MemoryDomainCollection_v1.xml index 23e6dbd0..162d16bb 100644 --- a/Contrib-Inspur/bmcweb/static/redfish/v1/schema/MemoryDomainCollection_v1.xml +++ b/Contrib-Inspur/bmcweb/static/redfish/v1/schema/MemoryDomainCollection_v1.xml @@ -1,11 +1,11 @@ - + - + @@ -32,8 +32,8 @@ - - + + @@ -58,8 +58,8 @@ - - + + diff --git a/Contrib-Inspur/bmcweb/static/redfish/v1/schema/MemoryDomain_v1.xml b/Contrib-Inspur/bmcweb/static/redfish/v1/schema/MemoryDomain_v1.xml index 614a9478..22b39c35 100644 --- a/Contrib-Inspur/bmcweb/static/redfish/v1/schema/MemoryDomain_v1.xml +++ b/Contrib-Inspur/bmcweb/static/redfish/v1/schema/MemoryDomain_v1.xml @@ -1,11 +1,11 @@ - + - + @@ -36,8 +36,8 @@ - - + + @@ -73,33 +73,33 @@ - - + + - - + + - + - - + + - - - + + + - + - - + + @@ -108,13 +108,13 @@ - + - + @@ -124,26 +124,38 @@ + + + + + + + + + + + + - - + + - - + + - + @@ -153,30 +165,42 @@ + + + + + + + + + + + + - - + + - - + + - - + + - - + + @@ -186,5 +210,17 @@ + + + + + + + + + + + + diff --git a/Contrib-Inspur/bmcweb/static/redfish/v1/schema/MemoryMetrics_v1.xml b/Contrib-Inspur/bmcweb/static/redfish/v1/schema/MemoryMetrics_v1.xml index 4f6fa7a4..69f4a82c 100644 --- a/Contrib-Inspur/bmcweb/static/redfish/v1/schema/MemoryMetrics_v1.xml +++ b/Contrib-Inspur/bmcweb/static/redfish/v1/schema/MemoryMetrics_v1.xml @@ -1,11 +1,11 @@ - + - + @@ -22,6 +22,7 @@ + @@ -33,8 +34,8 @@ - - + + @@ -53,19 +54,22 @@ + /redfish/v1/Systems/{ComputerSystemId}/MemorySummary/MemoryMetrics /redfish/v1/Systems/{ComputerSystemId}/Memory/{MemoryId}/MemoryMetrics /redfish/v1/CompositionService/ResourceBlocks/{ResourceBlockId}/Memory/{MemoryId}/MemoryMetrics /redfish/v1/CompositionService/ResourceBlocks/{ResourceBlockId}/Systems/{ComputerSystemId}/Memory/{MemoryId}/MemoryMetrics + /redfish/v1/CompositionService/ResourceBlocks/{ResourceBlockId}/Systems/{ComputerSystemId}/MemorySummary/MemoryMetrics /redfish/v1/ResourceBlocks/{ResourceBlockId}/Memory/{MemoryId}/MemoryMetrics /redfish/v1/ResourceBlocks/{ResourceBlockId}/Systems/{ComputerSystemId}/Memory/{MemoryId}/MemoryMetrics + /redfish/v1/ResourceBlocks/{ResourceBlockId}/Systems/{ComputerSystemId}/MemorySummary/MemoryMetrics - - + + @@ -77,155 +81,155 @@ - - + + - - + + - - + + - - + + - - + + + + - - + + - - + + - - + + - - + + - - + + - - - - + + - - + + - - + + - - + + - - + + - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - + - + - + @@ -235,6 +239,18 @@ + + + + + + + + + + + + @@ -252,19 +268,19 @@ - + - + - + @@ -274,5 +290,33 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Contrib-Inspur/bmcweb/static/redfish/v1/schema/Memory_v1.xml b/Contrib-Inspur/bmcweb/static/redfish/v1/schema/Memory_v1.xml index dfb53529..45b82921 100644 --- a/Contrib-Inspur/bmcweb/static/redfish/v1/schema/Memory_v1.xml +++ b/Contrib-Inspur/bmcweb/static/redfish/v1/schema/Memory_v1.xml @@ -1,11 +1,11 @@ - + - + @@ -44,8 +44,8 @@ - - + + @@ -74,36 +74,36 @@ - + - - + + - - + + - - + + - - + + - + - - + + @@ -114,12 +114,12 @@ - - + + - + @@ -128,12 +128,12 @@ - - + + - + @@ -142,14 +142,32 @@ - - + + - + + + + + + + + + + + + + + + + + + + @@ -157,86 +175,86 @@ - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - + - + - - + + - - + + - + - - + + - + @@ -244,13 +262,13 @@ - + - + @@ -258,152 +276,152 @@ - + - + - - + + - + - - + + - + - - + + - - + + - - + + - - + + - - + + - + - + - - + + - + - + - - + + - - + + - + - - + + - - + + - - + + - - + + - + - + - + - + - + - - + + @@ -577,30 +595,30 @@ - - + + - - + + - - + + - - + + - - - - - - - + + + + + + + @@ -615,58 +633,58 @@ - - - - - - - + + + + + + + - + - - - - - - - + + + + + + + - + - + - - + + - - + + - - + + - - + + @@ -675,52 +693,52 @@ - + - + - + - - + + - - + + - - + + - - + + - + - - + + - + @@ -732,10 +750,10 @@ - + - + @@ -744,75 +762,75 @@ - + - + - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - + - + - + @@ -824,30 +842,42 @@ - + + + + + + + + + + + + + - - + + - + - + @@ -859,61 +889,73 @@ - + + + + + + + + + + + + + - - + + - - + + - + - + - + - - + + - - + + - - + + - - + + @@ -921,7 +963,7 @@ - + @@ -933,10 +975,22 @@ - + + + + + + + + + + + + + @@ -944,25 +998,25 @@ - + - + - + - + @@ -970,7 +1024,7 @@ - + @@ -982,10 +1036,22 @@ - + + + + + + + + + + + + + @@ -993,35 +1059,35 @@ - + - + - + - + - + - - + + @@ -1041,10 +1107,22 @@ - + + + + + + + + + + + + + @@ -1053,8 +1131,8 @@ - - + + @@ -1067,23 +1145,47 @@ - + + + + + + + + + + + + + - + - + + + + + + + + + + + + + @@ -1091,34 +1193,52 @@ - - + + - - + + - - + + - - + + - - + + + + + + + + + + + + + + + + + + + + diff --git a/Contrib-Inspur/bmcweb/static/redfish/v1/schema/MessageRegistryCollection_v1.xml b/Contrib-Inspur/bmcweb/static/redfish/v1/schema/MessageRegistryCollection_v1.xml index b63234f3..add050f2 100644 --- a/Contrib-Inspur/bmcweb/static/redfish/v1/schema/MessageRegistryCollection_v1.xml +++ b/Contrib-Inspur/bmcweb/static/redfish/v1/schema/MessageRegistryCollection_v1.xml @@ -1,11 +1,11 @@ - + - + @@ -33,8 +33,8 @@ - - + + @@ -52,8 +52,8 @@ - - + + diff --git a/Contrib-Inspur/bmcweb/static/redfish/v1/schema/MessageRegistryFileCollection_v1.xml b/Contrib-Inspur/bmcweb/static/redfish/v1/schema/MessageRegistryFileCollection_v1.xml index c86cd19e..cbcab6b4 100644 --- a/Contrib-Inspur/bmcweb/static/redfish/v1/schema/MessageRegistryFileCollection_v1.xml +++ b/Contrib-Inspur/bmcweb/static/redfish/v1/schema/MessageRegistryFileCollection_v1.xml @@ -1,11 +1,11 @@ - + - + @@ -33,8 +33,8 @@ - - + + @@ -57,8 +57,8 @@ - - + + diff --git a/Contrib-Inspur/bmcweb/static/redfish/v1/schema/MessageRegistryFile_v1.xml b/Contrib-Inspur/bmcweb/static/redfish/v1/schema/MessageRegistryFile_v1.xml index 09c73caf..adea55cf 100644 --- a/Contrib-Inspur/bmcweb/static/redfish/v1/schema/MessageRegistryFile_v1.xml +++ b/Contrib-Inspur/bmcweb/static/redfish/v1/schema/MessageRegistryFile_v1.xml @@ -1,11 +1,11 @@ - + - + @@ -30,8 +30,8 @@ - - + + @@ -61,58 +61,56 @@ - - - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + @@ -120,19 +118,19 @@ - + - + - + @@ -142,30 +140,42 @@ + + + + + + + + + + + + - - + + - - + + - - + + - - + + @@ -175,5 +185,17 @@ + + + + + + + + + + + + diff --git a/Contrib-Inspur/bmcweb/static/redfish/v1/schema/MessageRegistry_v1.xml b/Contrib-Inspur/bmcweb/static/redfish/v1/schema/MessageRegistry_v1.xml index 9dc74ea3..f3dfc00c 100644 --- a/Contrib-Inspur/bmcweb/static/redfish/v1/schema/MessageRegistry_v1.xml +++ b/Contrib-Inspur/bmcweb/static/redfish/v1/schema/MessageRegistry_v1.xml @@ -1,11 +1,11 @@ - + - + @@ -32,8 +32,8 @@ - - + + @@ -60,39 +60,40 @@ - - + + - - + + - - + + + - - + + - - + + - - + + @@ -105,56 +106,56 @@ - - + + - - + + - + - - + + - - + + - + - + - - + + - + - + @@ -180,7 +181,7 @@ - + @@ -190,36 +191,48 @@ + + + + + + + + + + + + - - + + - - + + - - + + - - + + - + @@ -229,6 +242,18 @@ + + + + + + + + + + + + @@ -237,40 +262,84 @@ - + - + - + - - + + - - + + - - + + - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Contrib-Inspur/bmcweb/static/redfish/v1/schema/Message_v1.xml b/Contrib-Inspur/bmcweb/static/redfish/v1/schema/Message_v1.xml index 7d25e1da..67a4dbc2 100644 --- a/Contrib-Inspur/bmcweb/static/redfish/v1/schema/Message_v1.xml +++ b/Contrib-Inspur/bmcweb/static/redfish/v1/schema/Message_v1.xml @@ -1,11 +1,11 @@ - + - + @@ -32,8 +32,8 @@ - - + + @@ -45,38 +45,38 @@ - - + + - - + + - + - - + + - - + + - + - - + + @@ -84,25 +84,25 @@ - + - + - + - + @@ -112,5 +112,17 @@ + + + + + + + + + + + + diff --git a/Contrib-Inspur/bmcweb/static/redfish/v1/schema/MetricDefinitionCollection_v1.xml b/Contrib-Inspur/bmcweb/static/redfish/v1/schema/MetricDefinitionCollection_v1.xml index 46d2db71..860b004d 100644 --- a/Contrib-Inspur/bmcweb/static/redfish/v1/schema/MetricDefinitionCollection_v1.xml +++ b/Contrib-Inspur/bmcweb/static/redfish/v1/schema/MetricDefinitionCollection_v1.xml @@ -1,11 +1,11 @@ - + - + @@ -33,11 +33,12 @@ - - + + + @@ -57,8 +58,8 @@ - - + + diff --git a/Contrib-Inspur/bmcweb/static/redfish/v1/schema/MetricDefinition_v1.xml b/Contrib-Inspur/bmcweb/static/redfish/v1/schema/MetricDefinition_v1.xml index b2323171..432bebef 100644 --- a/Contrib-Inspur/bmcweb/static/redfish/v1/schema/MetricDefinition_v1.xml +++ b/Contrib-Inspur/bmcweb/static/redfish/v1/schema/MetricDefinition_v1.xml @@ -1,11 +1,11 @@ - + - + @@ -33,8 +33,8 @@ - - + + @@ -43,11 +43,13 @@ + + @@ -63,8 +65,8 @@ - - + + @@ -76,10 +78,10 @@ - + - + @@ -91,7 +93,7 @@ - + @@ -99,31 +101,31 @@ - - + + - + - + - + - + - + - + - - + + @@ -136,64 +138,61 @@ - - - - + - + - + - + - - + + - - + + - - - + + + - - - + + + - - + + - - + + - + @@ -204,27 +203,27 @@ - + - - + + - - + + - - + + - + @@ -233,39 +232,39 @@ - - + + - + - - + + - - + + - + - - + + - + @@ -281,33 +280,33 @@ - - + + - - + + - - + + - - + + - - + + - - + + @@ -317,5 +316,17 @@ + + + + + + + + + + + + diff --git a/Contrib-Inspur/bmcweb/static/redfish/v1/schema/MetricReportCollection_v1.xml b/Contrib-Inspur/bmcweb/static/redfish/v1/schema/MetricReportCollection_v1.xml index cd43f5c9..6049ea45 100644 --- a/Contrib-Inspur/bmcweb/static/redfish/v1/schema/MetricReportCollection_v1.xml +++ b/Contrib-Inspur/bmcweb/static/redfish/v1/schema/MetricReportCollection_v1.xml @@ -1,11 +1,11 @@ - + - + @@ -33,8 +33,8 @@ - - + + @@ -57,8 +57,8 @@ - - + + diff --git a/Contrib-Inspur/bmcweb/static/redfish/v1/schema/MetricReportDefinitionCollection_v1.xml b/Contrib-Inspur/bmcweb/static/redfish/v1/schema/MetricReportDefinitionCollection_v1.xml index a5739854..a2749fb6 100644 --- a/Contrib-Inspur/bmcweb/static/redfish/v1/schema/MetricReportDefinitionCollection_v1.xml +++ b/Contrib-Inspur/bmcweb/static/redfish/v1/schema/MetricReportDefinitionCollection_v1.xml @@ -1,11 +1,11 @@ - + - + @@ -33,11 +33,12 @@ - - + + + @@ -57,8 +58,8 @@ - - + + diff --git a/Contrib-Inspur/bmcweb/static/redfish/v1/schema/MetricReportDefinition_v1.xml b/Contrib-Inspur/bmcweb/static/redfish/v1/schema/MetricReportDefinition_v1.xml index cefed7e2..448f36dd 100644 --- a/Contrib-Inspur/bmcweb/static/redfish/v1/schema/MetricReportDefinition_v1.xml +++ b/Contrib-Inspur/bmcweb/static/redfish/v1/schema/MetricReportDefinition_v1.xml @@ -1,11 +1,11 @@ - + - + @@ -31,6 +31,9 @@ + + + @@ -38,8 +41,8 @@ - - + + @@ -48,11 +51,13 @@ + + @@ -71,63 +76,63 @@ - + - - + + - - + + - - + + - - + + - - + + - - - + + + - - + + - - - + + + - - + + - - + + - - + + @@ -142,7 +147,7 @@ - + @@ -151,18 +156,18 @@ - - + + - - + + - - + + @@ -172,19 +177,19 @@ - - + + - - + + - + @@ -198,83 +203,83 @@ - + - - + + - - + + - - + + - + - + - + - + - - + + - - + + - - + + - - + + - - + + - + - + - + - + - - + + - - + + - - + + @@ -284,6 +289,18 @@ + + + + + + + + + + + + @@ -298,5 +315,74 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Contrib-Inspur/bmcweb/static/redfish/v1/schema/MetricReport_v1.xml b/Contrib-Inspur/bmcweb/static/redfish/v1/schema/MetricReport_v1.xml index 1d9f54fb..0e8cae2f 100644 --- a/Contrib-Inspur/bmcweb/static/redfish/v1/schema/MetricReport_v1.xml +++ b/Contrib-Inspur/bmcweb/static/redfish/v1/schema/MetricReport_v1.xml @@ -1,11 +1,11 @@ - + - + @@ -18,6 +18,7 @@ + @@ -36,8 +37,8 @@ - - + + @@ -51,6 +52,7 @@ + @@ -68,23 +70,23 @@ - - + + - + - + - - + + @@ -95,46 +97,46 @@ - + - - + + - + - + - - + + - - + + - - + + - - + + @@ -144,6 +146,18 @@ + + + + + + + + + + + + @@ -152,10 +166,36 @@ - + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Contrib-Inspur/bmcweb/static/redfish/v1/schema/NetworkAdapterCollection_v1.xml b/Contrib-Inspur/bmcweb/static/redfish/v1/schema/NetworkAdapterCollection_v1.xml index 90ca2dd4..6c53e5a1 100644 --- a/Contrib-Inspur/bmcweb/static/redfish/v1/schema/NetworkAdapterCollection_v1.xml +++ b/Contrib-Inspur/bmcweb/static/redfish/v1/schema/NetworkAdapterCollection_v1.xml @@ -1,70 +1,70 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - /redfish/v1/Chassis/{ChassisId}/NetworkAdapters - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + /redfish/v1/Chassis/{ChassisId}/NetworkAdapters + + + + + + + + + + + + + + + diff --git a/Contrib-Inspur/bmcweb/static/redfish/v1/schema/NetworkAdapter_v1.xml b/Contrib-Inspur/bmcweb/static/redfish/v1/schema/NetworkAdapter_v1.xml index 21c433c4..3793ba10 100644 --- a/Contrib-Inspur/bmcweb/static/redfish/v1/schema/NetworkAdapter_v1.xml +++ b/Contrib-Inspur/bmcweb/static/redfish/v1/schema/NetworkAdapter_v1.xml @@ -1,370 +1,417 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - /redfish/v1/Chassis/{ChassisId}/NetworkAdapters/{NetworkAdapterId} - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + /redfish/v1/Chassis/{ChassisId}/NetworkAdapters/{NetworkAdapterId} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Contrib-Inspur/bmcweb/static/redfish/v1/schema/NetworkDeviceFunctionCollection_v1.xml b/Contrib-Inspur/bmcweb/static/redfish/v1/schema/NetworkDeviceFunctionCollection_v1.xml index 6d9e9662..d64f9d31 100644 --- a/Contrib-Inspur/bmcweb/static/redfish/v1/schema/NetworkDeviceFunctionCollection_v1.xml +++ b/Contrib-Inspur/bmcweb/static/redfish/v1/schema/NetworkDeviceFunctionCollection_v1.xml @@ -1,75 +1,75 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - /redfish/v1/Chassis/{ChassisId}/NetworkAdapters/{NetworkAdapterId}/NetworkDeviceFunctions - /redfish/v1/Systems/{ComputerSystemId}/NetworkInterfaces/{NetworkInterfaceId}/NetworkDeviceFunctions - /redfish/v1/CompositionService/ResourceBlocks/{ResourceBlockId}/NetworkInterfaces/{NetworkInterfaceId}/NetworkDeviceFunctions - /redfish/v1/CompositionService/ResourceBlocks/{ResourceBlockId}/Systems/{ComputerSystemId}/NetworkInterfaces/{NetworkInterfaceId}/NetworkDeviceFunctions - /redfish/v1/ResourceBlocks/{ResourceBlockId}/NetworkInterfaces/{NetworkInterfaceId}/NetworkDeviceFunctions - /redfish/v1/ResourceBlocks/{ResourceBlockId}/Systems/{ComputerSystemId}/NetworkInterfaces/{NetworkInterfaceId}/NetworkDeviceFunctions - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + /redfish/v1/Chassis/{ChassisId}/NetworkAdapters/{NetworkAdapterId}/NetworkDeviceFunctions + /redfish/v1/Systems/{ComputerSystemId}/NetworkInterfaces/{NetworkInterfaceId}/NetworkDeviceFunctions + /redfish/v1/CompositionService/ResourceBlocks/{ResourceBlockId}/NetworkInterfaces/{NetworkInterfaceId}/NetworkDeviceFunctions + /redfish/v1/CompositionService/ResourceBlocks/{ResourceBlockId}/Systems/{ComputerSystemId}/NetworkInterfaces/{NetworkInterfaceId}/NetworkDeviceFunctions + /redfish/v1/ResourceBlocks/{ResourceBlockId}/NetworkInterfaces/{NetworkInterfaceId}/NetworkDeviceFunctions + /redfish/v1/ResourceBlocks/{ResourceBlockId}/Systems/{ComputerSystemId}/NetworkInterfaces/{NetworkInterfaceId}/NetworkDeviceFunctions + + + + + + + + + + + + + + + diff --git a/Contrib-Inspur/bmcweb/static/redfish/v1/schema/NetworkDeviceFunction_v1.xml b/Contrib-Inspur/bmcweb/static/redfish/v1/schema/NetworkDeviceFunction_v1.xml index 8cc8466d..174409a6 100644 --- a/Contrib-Inspur/bmcweb/static/redfish/v1/schema/NetworkDeviceFunction_v1.xml +++ b/Contrib-Inspur/bmcweb/static/redfish/v1/schema/NetworkDeviceFunction_v1.xml @@ -1,620 +1,666 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - /redfish/v1/Chassis/{ChassisId}/NetworkAdapters/{NetworkAdapterId}/NetworkDeviceFunctions/{NetworkDeviceFunctionId} - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + /redfish/v1/Chassis/{ChassisId}/NetworkAdapters/{NetworkAdapterId}/NetworkDeviceFunctions/{NetworkDeviceFunctionId} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Contrib-Inspur/bmcweb/static/redfish/v1/schema/NetworkInterfaceCollection_v1.xml b/Contrib-Inspur/bmcweb/static/redfish/v1/schema/NetworkInterfaceCollection_v1.xml index d7a333bf..0ad9aa2b 100644 --- a/Contrib-Inspur/bmcweb/static/redfish/v1/schema/NetworkInterfaceCollection_v1.xml +++ b/Contrib-Inspur/bmcweb/static/redfish/v1/schema/NetworkInterfaceCollection_v1.xml @@ -1,72 +1,72 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - /redfish/v1/Systems/{ComputerSystemId}/NetworkInterfaces - /redfish/v1/CompositionService/ResourceBlocks/{ResourceBlockId}/Systems/{ComputerSystemId}/NetworkInterfaces - /redfish/v1/ResourceBlocks/{ResourceBlockId}/Systems/{ComputerSystemId}/NetworkInterfaces - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + /redfish/v1/Systems/{ComputerSystemId}/NetworkInterfaces + /redfish/v1/CompositionService/ResourceBlocks/{ResourceBlockId}/Systems/{ComputerSystemId}/NetworkInterfaces + /redfish/v1/ResourceBlocks/{ResourceBlockId}/Systems/{ComputerSystemId}/NetworkInterfaces + + + + + + + + + + + + + + + diff --git a/Contrib-Inspur/bmcweb/static/redfish/v1/schema/NetworkInterface_v1.xml b/Contrib-Inspur/bmcweb/static/redfish/v1/schema/NetworkInterface_v1.xml index 2a8b3868..86e52412 100644 --- a/Contrib-Inspur/bmcweb/static/redfish/v1/schema/NetworkInterface_v1.xml +++ b/Contrib-Inspur/bmcweb/static/redfish/v1/schema/NetworkInterface_v1.xml @@ -1,160 +1,182 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - /redfish/v1/Systems/{ComputerSystemId}/NetworkInterfaces/{NetworkInterfaceId} - /redfish/v1/CompositionService/ResourceBlocks/{ResourceBlockId}/NetworkInterfaces/{NetworkInterfaceId} - /redfish/v1/CompositionService/ResourceBlocks/{ResourceBlockId}/Systems/{ComputerSystemId}/NetworkInterfaces/{NetworkInterfaceId} - /redfish/v1/ResourceBlocks/{ResourceBlockId}/NetworkInterfaces/{NetworkInterfaceId} - /redfish/v1/ResourceBlocks/{ResourceBlockId}/Systems/{ComputerSystemId}/NetworkInterfaces/{NetworkInterfaceId} - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + /redfish/v1/Systems/{ComputerSystemId}/NetworkInterfaces/{NetworkInterfaceId} + /redfish/v1/CompositionService/ResourceBlocks/{ResourceBlockId}/NetworkInterfaces/{NetworkInterfaceId} + /redfish/v1/CompositionService/ResourceBlocks/{ResourceBlockId}/Systems/{ComputerSystemId}/NetworkInterfaces/{NetworkInterfaceId} + /redfish/v1/ResourceBlocks/{ResourceBlockId}/NetworkInterfaces/{NetworkInterfaceId} + /redfish/v1/ResourceBlocks/{ResourceBlockId}/Systems/{ComputerSystemId}/NetworkInterfaces/{NetworkInterfaceId} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Contrib-Inspur/bmcweb/static/redfish/v1/schema/NetworkPortCollection_v1.xml b/Contrib-Inspur/bmcweb/static/redfish/v1/schema/NetworkPortCollection_v1.xml index 868ca105..ffa43b39 100644 --- a/Contrib-Inspur/bmcweb/static/redfish/v1/schema/NetworkPortCollection_v1.xml +++ b/Contrib-Inspur/bmcweb/static/redfish/v1/schema/NetworkPortCollection_v1.xml @@ -1,75 +1,75 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - /redfish/v1/Chassis/{ChassisId}/NetworkAdapters/{NetworkAdapterId}/NetworkPorts - /redfish/v1/Systems/{ComputerSystemId}/NetworkInterfaces/{NetworkInterfaceId}/NetworkPorts - /redfish/v1/CompositionService/ResourceBlocks/{ResourceBlockId}/NetworkInterfaces/{NetworkInterfaceId}/NetworkPorts - /redfish/v1/CompositionService/ResourceBlocks/{ResourceBlockId}/Systems/{ComputerSystemId}/NetworkInterfaces/{NetworkInterfaceId}/NetworkPorts - /redfish/v1/ResourceBlocks/{ResourceBlockId}/NetworkInterfaces/{NetworkInterfaceId}/NetworkPorts - /redfish/v1/ResourceBlocks/{ResourceBlockId}/Systems/{ComputerSystemId}/NetworkInterfaces/{NetworkInterfaceId}/NetworkPorts - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + /redfish/v1/Chassis/{ChassisId}/NetworkAdapters/{NetworkAdapterId}/NetworkPorts + /redfish/v1/Systems/{ComputerSystemId}/NetworkInterfaces/{NetworkInterfaceId}/NetworkPorts + /redfish/v1/CompositionService/ResourceBlocks/{ResourceBlockId}/NetworkInterfaces/{NetworkInterfaceId}/NetworkPorts + /redfish/v1/CompositionService/ResourceBlocks/{ResourceBlockId}/Systems/{ComputerSystemId}/NetworkInterfaces/{NetworkInterfaceId}/NetworkPorts + /redfish/v1/ResourceBlocks/{ResourceBlockId}/NetworkInterfaces/{NetworkInterfaceId}/NetworkPorts + /redfish/v1/ResourceBlocks/{ResourceBlockId}/Systems/{ComputerSystemId}/NetworkInterfaces/{NetworkInterfaceId}/NetworkPorts + + + + + + + + + + + + + + + diff --git a/Contrib-Inspur/bmcweb/static/redfish/v1/schema/NetworkPort_v1.xml b/Contrib-Inspur/bmcweb/static/redfish/v1/schema/NetworkPort_v1.xml index 47d7b125..b310a012 100644 --- a/Contrib-Inspur/bmcweb/static/redfish/v1/schema/NetworkPort_v1.xml +++ b/Contrib-Inspur/bmcweb/static/redfish/v1/schema/NetworkPort_v1.xml @@ -1,395 +1,428 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - /redfish/v1/Chassis/{ChassisId}/NetworkAdapters/{NetworkAdapterId}/NetworkPorts/{NetworkPortId} - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + /redfish/v1/Chassis/{ChassisId}/NetworkAdapters/{NetworkAdapterId}/NetworkPorts/{NetworkPortId} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Contrib-Inspur/bmcweb/static/redfish/v1/schema/OemAccountService_v1.xml b/Contrib-Inspur/bmcweb/static/redfish/v1/schema/OemAccountService_v1.xml new file mode 100644 index 00000000..c5783ca9 --- /dev/null +++ b/Contrib-Inspur/bmcweb/static/redfish/v1/schema/OemAccountService_v1.xml @@ -0,0 +1,77 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Contrib-Inspur/bmcweb/static/redfish/v1/schema/OemComputerSystem_v1.xml b/Contrib-Inspur/bmcweb/static/redfish/v1/schema/OemComputerSystem_v1.xml new file mode 100644 index 00000000..6588f0ac --- /dev/null +++ b/Contrib-Inspur/bmcweb/static/redfish/v1/schema/OemComputerSystem_v1.xml @@ -0,0 +1,68 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Contrib-Inspur/bmcweb/static/redfish/v1/schema/OemCrashdump_v1.xml b/Contrib-Inspur/bmcweb/static/redfish/v1/schema/OemCrashdump_v1.xml new file mode 100644 index 00000000..10e5ff67 --- /dev/null +++ b/Contrib-Inspur/bmcweb/static/redfish/v1/schema/OemCrashdump_v1.xml @@ -0,0 +1,38 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Contrib-Inspur/bmcweb/static/redfish/v1/schema/OemManager_v1.xml b/Contrib-Inspur/bmcweb/static/redfish/v1/schema/OemManager_v1.xml index 8f7a6af3..9ae36ca4 100644 --- a/Contrib-Inspur/bmcweb/static/redfish/v1/schema/OemManager_v1.xml +++ b/Contrib-Inspur/bmcweb/static/redfish/v1/schema/OemManager_v1.xml @@ -21,37 +21,41 @@ - + - + - + - - + + - + - - - - - + + + + + + + + + + - + - - + @@ -59,15 +63,14 @@ - + - + - - + @@ -75,15 +78,14 @@ - + - + - - + @@ -91,15 +93,14 @@ - + - + - - + @@ -107,13 +108,7 @@ - - - + @@ -150,6 +145,14 @@ + + + + + + + + @@ -166,30 +169,30 @@ - + - + - + - + - + @@ -226,10 +229,26 @@ + + + + + + + + + + + + + + + + @@ -238,7 +257,7 @@ - + @@ -265,7 +284,11 @@ - + + + + + @@ -281,7 +304,7 @@ - + diff --git a/Contrib-Inspur/bmcweb/static/redfish/v1/schema/OemVirtualMedia_v1.xml b/Contrib-Inspur/bmcweb/static/redfish/v1/schema/OemVirtualMedia_v1.xml new file mode 100644 index 00000000..2b03a675 --- /dev/null +++ b/Contrib-Inspur/bmcweb/static/redfish/v1/schema/OemVirtualMedia_v1.xml @@ -0,0 +1,46 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Contrib-Inspur/bmcweb/static/redfish/v1/schema/PCIeDeviceCollection_v1.xml b/Contrib-Inspur/bmcweb/static/redfish/v1/schema/PCIeDeviceCollection_v1.xml new file mode 100644 index 00000000..c57da12f --- /dev/null +++ b/Contrib-Inspur/bmcweb/static/redfish/v1/schema/PCIeDeviceCollection_v1.xml @@ -0,0 +1,71 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + /redfish/v1/Chassis/{ChassisId}/PCIeDevices + /redfish/v1/Systems/{ComputerSystemId}/PCIeDevices + + + + + + + + + + + + + + + diff --git a/Contrib-Inspur/bmcweb/static/redfish/v1/schema/PCIeDevice_v1.xml b/Contrib-Inspur/bmcweb/static/redfish/v1/schema/PCIeDevice_v1.xml index 1a33372f..d7d7064a 100644 --- a/Contrib-Inspur/bmcweb/static/redfish/v1/schema/PCIeDevice_v1.xml +++ b/Contrib-Inspur/bmcweb/static/redfish/v1/schema/PCIeDevice_v1.xml @@ -1,306 +1,379 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - /redfish/v1/Chassis/{ChassisId}/PCIeDevices/{PCIeDeviceId} - /redfish/v1/Systems/{ComputerSystemId}/PCIeDevices/{PCIeDeviceId} - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + /redfish/v1/Chassis/{ChassisId}/PCIeDevices/{PCIeDeviceId} + /redfish/v1/Systems/{ComputerSystemId}/PCIeDevices/{PCIeDeviceId} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Contrib-Inspur/bmcweb/static/redfish/v1/schema/PCIeFunctionCollection_v1.xml b/Contrib-Inspur/bmcweb/static/redfish/v1/schema/PCIeFunctionCollection_v1.xml new file mode 100644 index 00000000..2b1c41bd --- /dev/null +++ b/Contrib-Inspur/bmcweb/static/redfish/v1/schema/PCIeFunctionCollection_v1.xml @@ -0,0 +1,71 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + /redfish/v1/Chassis/{ChassisId}/PCIeDevices/{PCIeDeviceId}/PCIeFunctions + /redfish/v1/Systems/{ComputerSystemId}/PCIeDevices/{PCIeDeviceId}/PCIeFunctions + + + + + + + + + + + + + + + diff --git a/Contrib-Inspur/bmcweb/static/redfish/v1/schema/PCIeFunction_v1.xml b/Contrib-Inspur/bmcweb/static/redfish/v1/schema/PCIeFunction_v1.xml index 4b2ac19d..34d02e82 100644 --- a/Contrib-Inspur/bmcweb/static/redfish/v1/schema/PCIeFunction_v1.xml +++ b/Contrib-Inspur/bmcweb/static/redfish/v1/schema/PCIeFunction_v1.xml @@ -1,350 +1,383 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - /redfish/v1/Chassis/{ChassisId}/PCIeDevices/{PCIeDeviceId}/PCIeFunctions/{PCIeFunctionId} - /redfish/v1/Systems/{ComputerSystemId}/PCIeDevices/{PCIeDeviceId}/PCIeFunctions/{PCIeFunctionId} - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + /redfish/v1/Chassis/{ChassisId}/PCIeDevices/{PCIeDeviceId}/PCIeFunctions/{PCIeFunctionId} + /redfish/v1/Systems/{ComputerSystemId}/PCIeDevices/{PCIeDeviceId}/PCIeFunctions/{PCIeFunctionId} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Contrib-Inspur/bmcweb/static/redfish/v1/schema/PCIeSlots_v1.xml b/Contrib-Inspur/bmcweb/static/redfish/v1/schema/PCIeSlots_v1.xml index 5e0e2b04..beec2019 100644 --- a/Contrib-Inspur/bmcweb/static/redfish/v1/schema/PCIeSlots_v1.xml +++ b/Contrib-Inspur/bmcweb/static/redfish/v1/schema/PCIeSlots_v1.xml @@ -1,11 +1,11 @@ - + - + @@ -35,8 +35,8 @@ - - + + @@ -66,61 +66,61 @@ - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - + - - - + + + - - + + - - + + @@ -148,20 +148,51 @@ - - + + - - + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Contrib-Inspur/bmcweb/static/redfish/v1/schema/PhysicalContext_v1.xml b/Contrib-Inspur/bmcweb/static/redfish/v1/schema/PhysicalContext_v1.xml index bedafb58..347b03a4 100644 --- a/Contrib-Inspur/bmcweb/static/redfish/v1/schema/PhysicalContext_v1.xml +++ b/Contrib-Inspur/bmcweb/static/redfish/v1/schema/PhysicalContext_v1.xml @@ -1,11 +1,11 @@ - + - + @@ -29,10 +29,10 @@ - + - + @@ -69,10 +69,10 @@ - + - + @@ -83,10 +83,10 @@ - + - + @@ -97,7 +97,7 @@ - + @@ -108,7 +108,7 @@ - + @@ -119,7 +119,7 @@ - + @@ -138,9 +138,31 @@ + + + + + + + + + + + + + + + + + + + + + + @@ -174,7 +196,7 @@ - + @@ -207,7 +229,7 @@ - + @@ -229,7 +251,7 @@ - + @@ -240,7 +262,7 @@ - + @@ -251,7 +273,7 @@ - + @@ -262,7 +284,7 @@ - + @@ -273,7 +295,7 @@ - + @@ -284,7 +306,7 @@ - + @@ -295,7 +317,7 @@ - + diff --git a/Contrib-Inspur/bmcweb/static/redfish/v1/schema/PortCollection_v1.xml b/Contrib-Inspur/bmcweb/static/redfish/v1/schema/PortCollection_v1.xml index b9d710a2..0614e2f6 100644 --- a/Contrib-Inspur/bmcweb/static/redfish/v1/schema/PortCollection_v1.xml +++ b/Contrib-Inspur/bmcweb/static/redfish/v1/schema/PortCollection_v1.xml @@ -1,11 +1,11 @@ - + - + @@ -33,8 +33,8 @@ - - + + @@ -53,12 +53,17 @@ /redfish/v1/Fabrics/{FabricId}/Switches/{SwitchId}/Ports + /redfish/v1/Systems/{ComputerSystemId}/Storage/{StorageId}/StorageControllers/{StorageControllerMemberId}/Ports + /redfish/v1/CompositionService/ResourceBlocks/{ResourceBlockId}/Storage/{StorageId}/StorageControllers/{StorageControllerMemberId}/Ports + /redfish/v1/CompositionService/ResourceBlocks/{ResourceBlockId}/Systems/{ComputerSystemId}/Storage/{StorageId}/StorageControllers/{StorageControllerMemberId}/Ports + /redfish/v1/ResourceBlocks/{ResourceBlockId}/Storage/{StorageId}/StorageControllers/{StorageControllerMemberId}/Ports + /redfish/v1/ResourceBlocks/{ResourceBlockId}/Systems/{ComputerSystemId}/Storage/{StorageId}/StorageControllers/{StorageControllerMemberId}/Ports - - + + diff --git a/Contrib-Inspur/bmcweb/static/redfish/v1/schema/Port_v1.xml b/Contrib-Inspur/bmcweb/static/redfish/v1/schema/Port_v1.xml index c58a6e83..2efdb8f8 100644 --- a/Contrib-Inspur/bmcweb/static/redfish/v1/schema/Port_v1.xml +++ b/Contrib-Inspur/bmcweb/static/redfish/v1/schema/Port_v1.xml @@ -1,236 +1,265 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - /redfish/v1/Fabrics/{FabricId}/Switches/{SwitchId}/Ports/{PortId} - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + /redfish/v1/Fabrics/{FabricId}/Switches/{SwitchId}/Ports/{PortId} + /redfish/v1/Systems/{ComputerSystemId}/Storage/{StorageId}/StorageControllers/{StorageControllerId}/Ports/{PortId} + /redfish/v1/CompositionService/ResourceBlocks/{ResourceBlockId}/Storage/{StorageId}/StorageControllers/{StorageControllerId}/Ports/{PortId} + /redfish/v1/CompositionService/ResourceBlocks/{ResourceBlockId}/Systems/{ComputerSystemId}/Storage/{StorageId}/StorageControllers/{StorageControllerId}/Ports/{PortId} + /redfish/v1/ResourceBlocks/{ResourceBlockId}/Storage/{StorageId}/StorageControllers/{StorageControllerId}/Ports/{PortId} + /redfish/v1/ResourceBlocks/{ResourceBlockId}/Systems/{ComputerSystemId}/Storage/{StorageId}/StorageControllers/{StorageControllerId}/Ports/{PortId} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Contrib-Inspur/bmcweb/static/redfish/v1/schema/Power_v1.xml b/Contrib-Inspur/bmcweb/static/redfish/v1/schema/Power_v1.xml index 1252e6cb..20f501c6 100644 --- a/Contrib-Inspur/bmcweb/static/redfish/v1/schema/Power_v1.xml +++ b/Contrib-Inspur/bmcweb/static/redfish/v1/schema/Power_v1.xml @@ -1,11 +1,11 @@ - + - + @@ -44,8 +44,8 @@ - - + + @@ -54,7 +54,7 @@ - + @@ -77,23 +77,23 @@ - - + + - - + + - - + + - - + + @@ -101,118 +101,118 @@ - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - + - - + + - + - + @@ -236,80 +236,80 @@ - + - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + @@ -318,76 +318,76 @@ - + - + - + - + - - + + - - + + - + - + - + - + - + - - + + - - + + - - + + @@ -403,7 +403,7 @@ - + @@ -418,7 +418,7 @@ - + @@ -430,7 +430,7 @@ - + @@ -442,7 +442,7 @@ - + @@ -525,13 +525,13 @@ - + - + @@ -543,7 +543,7 @@ - + @@ -555,7 +555,7 @@ - + @@ -567,10 +567,22 @@ - + + + + + + + + + + + + + @@ -579,19 +591,19 @@ - - + + - - + + - + @@ -600,39 +612,39 @@ - + - + - + - + - - + + - - + + @@ -655,7 +667,7 @@ - + @@ -667,7 +679,7 @@ - + @@ -679,10 +691,22 @@ - + + + + + + + + + + + + + @@ -691,8 +715,8 @@ - - + + @@ -706,7 +730,7 @@ - + @@ -718,7 +742,7 @@ - + @@ -730,103 +754,115 @@ - + + + + + + + + + + + + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + @@ -838,7 +874,7 @@ - + @@ -850,10 +886,22 @@ - + + + + + + + + + + + + + @@ -862,15 +910,15 @@ - - + + - + @@ -882,10 +930,22 @@ - + + + + + + + + + + + + + @@ -893,41 +953,41 @@ - + - - + + - - + + - - + + - - + + - - + + @@ -940,9 +1000,21 @@ - + + + + + + + + + + + + + diff --git a/Contrib-Inspur/bmcweb/static/redfish/v1/schema/PrivilegeRegistry_v1.xml b/Contrib-Inspur/bmcweb/static/redfish/v1/schema/PrivilegeRegistry_v1.xml index 539b3db1..5277470c 100644 --- a/Contrib-Inspur/bmcweb/static/redfish/v1/schema/PrivilegeRegistry_v1.xml +++ b/Contrib-Inspur/bmcweb/static/redfish/v1/schema/PrivilegeRegistry_v1.xml @@ -1,221 +1,243 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Contrib-Inspur/bmcweb/static/redfish/v1/schema/Privileges_v1.xml b/Contrib-Inspur/bmcweb/static/redfish/v1/schema/Privileges_v1.xml index 1cbafbd3..fc842dbd 100644 --- a/Contrib-Inspur/bmcweb/static/redfish/v1/schema/Privileges_v1.xml +++ b/Contrib-Inspur/bmcweb/static/redfish/v1/schema/Privileges_v1.xml @@ -1,11 +1,11 @@ - + - + @@ -25,19 +25,19 @@ - + - + - + - + - + @@ -48,33 +48,38 @@ - + - + - + - + - + - + - + + + + + + diff --git a/Contrib-Inspur/bmcweb/static/redfish/v1/schema/ProcessorCollection_v1.xml b/Contrib-Inspur/bmcweb/static/redfish/v1/schema/ProcessorCollection_v1.xml index 1fad1e5e..7bbd59d4 100644 --- a/Contrib-Inspur/bmcweb/static/redfish/v1/schema/ProcessorCollection_v1.xml +++ b/Contrib-Inspur/bmcweb/static/redfish/v1/schema/ProcessorCollection_v1.xml @@ -1,11 +1,11 @@ - + - + @@ -33,8 +33,8 @@ - - + + @@ -64,8 +64,8 @@ - - + + diff --git a/Contrib-Inspur/bmcweb/static/redfish/v1/schema/ProcessorMetrics_v1.xml b/Contrib-Inspur/bmcweb/static/redfish/v1/schema/ProcessorMetrics_v1.xml index b58d2ebc..c473250a 100644 --- a/Contrib-Inspur/bmcweb/static/redfish/v1/schema/ProcessorMetrics_v1.xml +++ b/Contrib-Inspur/bmcweb/static/redfish/v1/schema/ProcessorMetrics_v1.xml @@ -1,11 +1,11 @@ - + - + @@ -34,8 +34,8 @@ - - + + @@ -54,14 +54,17 @@ + /redfish/v1/Systems/{ComputerSystemId}/ProcessorSummary/ProcessorMetrics /redfish/v1/Systems/{ComputerSystemId}/Processors/{ProcessorId}/ProcessorMetrics /redfish/v1/Systems/{ComputerSystemId}/Processors/{ProcessorId}/SubProcessors/{ProcessorId2}/ProcessorMetrics /redfish/v1/CompositionService/ResourceBlocks/{ResourceBlockId}/Processors/{ProcessorId}/ProcessorMetrics /redfish/v1/CompositionService/ResourceBlocks/{ResourceBlockId}/Processors/{ProcessorId}/SubProcessors/{ProcessorId2}/ProcessorMetrics + /redfish/v1/CompositionService/ResourceBlocks/{ResourceBlockId}/Systems/{ComputerSystemId}/ProcessorSummary/ProcessorMetrics /redfish/v1/CompositionService/ResourceBlocks/{ResourceBlockId}/Systems/{ComputerSystemId}/Processors/{ProcessorId}/ProcessorMetrics /redfish/v1/CompositionService/ResourceBlocks/{ResourceBlockId}/Systems/{ComputerSystemId}/Processors/{ProcessorId}/SubProcessors/{ProcessorId2}/ProcessorMetrics /redfish/v1/ResourceBlocks/{ResourceBlockId}/Processors/{ProcessorId}/ProcessorMetrics /redfish/v1/ResourceBlocks/{ResourceBlockId}/Processors/{ProcessorId}/SubProcessors/{ProcessorId2}/ProcessorMetrics + /redfish/v1/ResourceBlocks/{ResourceBlockId}/Systems/{ComputerSystemId}/ProcessorSummary/ProcessorMetrics /redfish/v1/ResourceBlocks/{ResourceBlockId}/Systems/{ComputerSystemId}/Processors/{ProcessorId}/ProcessorMetrics /redfish/v1/ResourceBlocks/{ResourceBlockId}/Systems/{ComputerSystemId}/Processors/{ProcessorId}/SubProcessors/{ProcessorId2}/ProcessorMetrics @@ -77,76 +80,76 @@ - + - + - + - + - - + + - + - + - + - + - + - + - + - + - + - - + + @@ -156,33 +159,33 @@ - + - + - + - + - + - + - + @@ -194,33 +197,33 @@ - + - + - + - + - + - + @@ -228,16 +231,16 @@ - + - - + + - + @@ -245,20 +248,32 @@ - - + + - - + + - - + + + + + + + + + + + + + + diff --git a/Contrib-Inspur/bmcweb/static/redfish/v1/schema/Processor_v1.xml b/Contrib-Inspur/bmcweb/static/redfish/v1/schema/Processor_v1.xml index b2febdc4..2567d280 100644 --- a/Contrib-Inspur/bmcweb/static/redfish/v1/schema/Processor_v1.xml +++ b/Contrib-Inspur/bmcweb/static/redfish/v1/schema/Processor_v1.xml @@ -1,11 +1,11 @@ - + - + @@ -61,8 +61,8 @@ - - + + @@ -102,41 +102,39 @@ - - - + - + - + - + - + - - + + - + @@ -151,70 +149,70 @@ - + - - + + - + - - + + - - + + - + - + - + - + - + - + - + - + - + - + @@ -225,7 +223,7 @@ - + @@ -236,7 +234,7 @@ - + @@ -334,73 +332,85 @@ - + - + - + - + - + + + + + + + + + + + + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + @@ -412,22 +422,34 @@ - + + + + + + + + + + + + + - + - - + + @@ -441,18 +463,30 @@ - + + + + + + + + + + + + + - - + + @@ -466,10 +500,22 @@ - + + + + + + + + + + + + + @@ -479,37 +525,37 @@ - + - + - + - - + + - - + + - + - - - + + + - - + + @@ -517,26 +563,26 @@ - - + + - - + + - + - - + + - - + + @@ -547,24 +593,24 @@ - - + + - + - + - + @@ -655,89 +701,89 @@ - + - + - + - + - + - + - + - + - + - - + + - - + + - - + + - + - + - - + + - - + + - + - - + + - + @@ -751,35 +797,35 @@ - + - - - + + + - - - + + + - - + + - - + + - + - - + + @@ -797,10 +843,42 @@ - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Contrib-Inspur/bmcweb/static/redfish/v1/schema/Protocol_v1.xml b/Contrib-Inspur/bmcweb/static/redfish/v1/schema/Protocol_v1.xml index 91206031..2210998f 100644 --- a/Contrib-Inspur/bmcweb/static/redfish/v1/schema/Protocol_v1.xml +++ b/Contrib-Inspur/bmcweb/static/redfish/v1/schema/Protocol_v1.xml @@ -1,11 +1,11 @@ - + - + @@ -24,51 +24,51 @@ - + - + - - + + - - + + - + - + - - + + - - + + - + - + - - + + - + @@ -80,7 +80,7 @@ - + @@ -92,39 +92,38 @@ - + - - + + - - + + - - + - - + + - - + + - - + + - - + + - - + + @@ -136,7 +135,7 @@ - + @@ -148,7 +147,7 @@ - + @@ -160,7 +159,7 @@ - + @@ -171,8 +170,8 @@ - - + + diff --git a/Contrib-Inspur/bmcweb/static/redfish/v1/schema/RedfishError_v1.xml b/Contrib-Inspur/bmcweb/static/redfish/v1/schema/RedfishError_v1.xml index 5f6f8168..7faaec3a 100644 --- a/Contrib-Inspur/bmcweb/static/redfish/v1/schema/RedfishError_v1.xml +++ b/Contrib-Inspur/bmcweb/static/redfish/v1/schema/RedfishError_v1.xml @@ -1,11 +1,11 @@ - + - + @@ -25,33 +25,38 @@ - - + + - - - + + + - - + + - - + + - - + + + + + + + diff --git a/Contrib-Inspur/bmcweb/static/redfish/v1/schema/RedfishExtensions_v1.xml b/Contrib-Inspur/bmcweb/static/redfish/v1/schema/RedfishExtensions_v1.xml index f9ebb231..a58a7bb6 100644 --- a/Contrib-Inspur/bmcweb/static/redfish/v1/schema/RedfishExtensions_v1.xml +++ b/Contrib-Inspur/bmcweb/static/redfish/v1/schema/RedfishExtensions_v1.xml @@ -1,11 +1,11 @@ - + - + @@ -37,110 +37,116 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - + + - - + + - - + + - + - + - + - + + + + + + + - + @@ -163,20 +169,20 @@ - + - - + + - + - + @@ -187,8 +193,8 @@ - - + + @@ -209,8 +215,8 @@ - - + + @@ -225,12 +231,13 @@ + - + - + diff --git a/Contrib-Inspur/bmcweb/static/redfish/v1/schema/Redundancy_v1.xml b/Contrib-Inspur/bmcweb/static/redfish/v1/schema/Redundancy_v1.xml index 638b8392..cc1b0764 100644 --- a/Contrib-Inspur/bmcweb/static/redfish/v1/schema/Redundancy_v1.xml +++ b/Contrib-Inspur/bmcweb/static/redfish/v1/schema/Redundancy_v1.xml @@ -1,11 +1,11 @@ - + - + @@ -28,8 +28,8 @@ - - + + @@ -39,40 +39,38 @@ - - - - + + - - + + - - + + - - + + - - + + - - + + @@ -83,7 +81,7 @@ - + @@ -117,25 +115,25 @@ - + - + - + - + @@ -147,31 +145,43 @@ - + + + + + + + + + + + + + - - + + - + - + @@ -183,34 +193,46 @@ - + + + + + + + + + + + + + - - + + - - + + - - + + - - + + @@ -222,10 +244,22 @@ - + + + + + + + + + + + + + @@ -241,9 +275,21 @@ - + + + + + + + + + + + + + diff --git a/Contrib-Inspur/bmcweb/static/redfish/v1/schema/ResourceBlockCollection_v1.xml b/Contrib-Inspur/bmcweb/static/redfish/v1/schema/ResourceBlockCollection_v1.xml index 68c08ad5..4e3c6f00 100644 --- a/Contrib-Inspur/bmcweb/static/redfish/v1/schema/ResourceBlockCollection_v1.xml +++ b/Contrib-Inspur/bmcweb/static/redfish/v1/schema/ResourceBlockCollection_v1.xml @@ -1,11 +1,11 @@ - + - + @@ -33,8 +33,8 @@ - - + + @@ -58,8 +58,8 @@ - - + + diff --git a/Contrib-Inspur/bmcweb/static/redfish/v1/schema/ResourceBlock_v1.xml b/Contrib-Inspur/bmcweb/static/redfish/v1/schema/ResourceBlock_v1.xml index 26f254af..1377f8aa 100644 --- a/Contrib-Inspur/bmcweb/static/redfish/v1/schema/ResourceBlock_v1.xml +++ b/Contrib-Inspur/bmcweb/static/redfish/v1/schema/ResourceBlock_v1.xml @@ -1,11 +1,11 @@ - + - + @@ -62,8 +62,8 @@ - - + + @@ -72,7 +72,7 @@ - + @@ -97,132 +97,130 @@ - - - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - + - + - + - + - + - + @@ -242,13 +240,13 @@ - - + + - - + + @@ -258,7 +256,7 @@ - + @@ -269,16 +267,16 @@ - + - + - + @@ -300,10 +298,22 @@ - + + + + + + + + + + + + + @@ -313,24 +323,24 @@ - - + + - - + + - - + + - + @@ -345,10 +355,22 @@ - + + + + + + + + + + + + + @@ -358,10 +380,22 @@ - + + + + + + + + + + + + + @@ -369,101 +403,113 @@ - - + + - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + + + + + + + + + + + + + diff --git a/Contrib-Inspur/bmcweb/static/redfish/v1/schema/Resource_v1.xml b/Contrib-Inspur/bmcweb/static/redfish/v1/schema/Resource_v1.xml index b649bd4c..cae1993c 100644 --- a/Contrib-Inspur/bmcweb/static/redfish/v1/schema/Resource_v1.xml +++ b/Contrib-Inspur/bmcweb/static/redfish/v1/schema/Resource_v1.xml @@ -1,11 +1,11 @@ - + - + @@ -26,66 +26,59 @@ - - - + + - - + + - - + + - - - + + - - + - - + + - - - + + - - - - + - - + + @@ -95,60 +88,56 @@ - - - - - + + - - + + - - + + - - + + - - + + - - + - + - + - + - + - + - + - + @@ -159,7 +148,7 @@ - + @@ -193,47 +182,45 @@ - - + - + - - + - + - + - + - + - + - + - + @@ -246,44 +233,44 @@ - - + + - - + + - - + + - - + + - - + + - + - + - + - + @@ -293,22 +280,20 @@ - - - + + - - + + - @@ -327,7 +312,6 @@ - @@ -341,8 +325,8 @@ - - + + @@ -350,17 +334,17 @@ - + - + - + @@ -370,7 +354,17 @@ - + + + + + + + + + + + @@ -380,12 +374,12 @@ - - + + - + @@ -393,62 +387,62 @@ - - + + - + - - + + - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + @@ -459,8 +453,8 @@ - - + + @@ -475,27 +469,27 @@ - + - + - + - + - + @@ -505,33 +499,43 @@ - + + + + + + + + + + + - + - + - + - + - + @@ -541,202 +545,212 @@ - + + + + + + + + + + + - - + + - - + + - - + + - - + + - - + + - + - - + + - + - - + + - + - + - + - + - + - - + + - - + + - - + + - - + + - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - + - + @@ -745,39 +759,39 @@ - + - - + + - - + + - - + + - - + + - - - - - + + + + + - + - + @@ -785,17 +799,17 @@ - + - + - + @@ -805,7 +819,17 @@ - + + + + + + + + + + + @@ -816,12 +840,12 @@ - + - + @@ -831,7 +855,17 @@ - + + + + + + + + + + + @@ -840,122 +874,122 @@ - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - + - - + + - + - - + + - - + + - + - + - + @@ -963,7 +997,7 @@ - + @@ -973,7 +1007,17 @@ - + + + + + + + + + + + @@ -984,20 +1028,20 @@ - - + + - - + + - - + + @@ -1010,26 +1054,36 @@ - + + + + + + + + + + + - + - - + + - - + + @@ -1037,34 +1091,44 @@ - + - - + + - + - + - + - + + + + + + + + + + + @@ -1073,5 +1137,15 @@ + + + + + + + + + + diff --git a/Contrib-Inspur/bmcweb/static/redfish/v1/schema/RoleCollection_v1.xml b/Contrib-Inspur/bmcweb/static/redfish/v1/schema/RoleCollection_v1.xml index 7f5d70f6..3f869fc7 100644 --- a/Contrib-Inspur/bmcweb/static/redfish/v1/schema/RoleCollection_v1.xml +++ b/Contrib-Inspur/bmcweb/static/redfish/v1/schema/RoleCollection_v1.xml @@ -1,11 +1,11 @@ - + - + @@ -33,8 +33,8 @@ - - + + @@ -58,8 +58,8 @@ - - + + diff --git a/Contrib-Inspur/bmcweb/static/redfish/v1/schema/Role_v1.xml b/Contrib-Inspur/bmcweb/static/redfish/v1/schema/Role_v1.xml index 8503732a..ac3c652c 100644 --- a/Contrib-Inspur/bmcweb/static/redfish/v1/schema/Role_v1.xml +++ b/Contrib-Inspur/bmcweb/static/redfish/v1/schema/Role_v1.xml @@ -1,11 +1,11 @@ - + - + @@ -33,8 +33,8 @@ - - + + @@ -43,7 +43,7 @@ - + @@ -66,22 +66,20 @@ - - - - + + - - + + - - + + @@ -89,7 +87,7 @@ - + @@ -105,30 +103,42 @@ + + + + + + + + + + + + - - + + - - + + - - + + - - + + @@ -144,6 +154,18 @@ + + + + + + + + + + + + @@ -151,7 +173,7 @@ - + @@ -169,5 +191,17 @@ + + + + + + + + + + + + diff --git a/Contrib-Inspur/bmcweb/static/redfish/v1/schema/Schedule_v1.xml b/Contrib-Inspur/bmcweb/static/redfish/v1/schema/Schedule_v1.xml index 8df1a9a0..d6081358 100644 --- a/Contrib-Inspur/bmcweb/static/redfish/v1/schema/Schedule_v1.xml +++ b/Contrib-Inspur/bmcweb/static/redfish/v1/schema/Schedule_v1.xml @@ -1,11 +1,11 @@ - + - + @@ -27,8 +27,8 @@ - - + + @@ -36,56 +36,56 @@ - + - + - - + + - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + @@ -109,7 +109,7 @@ - + @@ -154,16 +154,22 @@ - + + + + + + + - + @@ -172,11 +178,23 @@ + + + + + + - - + + + + + + + + diff --git a/Contrib-Inspur/bmcweb/static/redfish/v1/schema/SecureBoot_v1.xml b/Contrib-Inspur/bmcweb/static/redfish/v1/schema/SecureBoot_v1.xml index 78b12460..b0e30420 100644 --- a/Contrib-Inspur/bmcweb/static/redfish/v1/schema/SecureBoot_v1.xml +++ b/Contrib-Inspur/bmcweb/static/redfish/v1/schema/SecureBoot_v1.xml @@ -1,11 +1,11 @@ - + - + @@ -30,8 +30,8 @@ - - + + @@ -40,7 +40,7 @@ - + @@ -63,8 +63,8 @@ - - + + @@ -76,13 +76,13 @@ - - + + - + @@ -90,8 +90,8 @@ - - + + @@ -124,46 +124,46 @@ - + - + - - + + - - + + - - + + - + - + - + @@ -173,5 +173,17 @@ + + + + + + + + + + + + diff --git a/Contrib-Inspur/bmcweb/static/redfish/v1/schema/SensorCollection_v1.xml b/Contrib-Inspur/bmcweb/static/redfish/v1/schema/SensorCollection_v1.xml index e000022b..80414431 100644 --- a/Contrib-Inspur/bmcweb/static/redfish/v1/schema/SensorCollection_v1.xml +++ b/Contrib-Inspur/bmcweb/static/redfish/v1/schema/SensorCollection_v1.xml @@ -1,11 +1,11 @@ - + - + @@ -33,8 +33,8 @@ - - + + @@ -57,8 +57,8 @@ - - + + diff --git a/Contrib-Inspur/bmcweb/static/redfish/v1/schema/Sensor_v1.xml b/Contrib-Inspur/bmcweb/static/redfish/v1/schema/Sensor_v1.xml index ef8fa451..d4f6a497 100644 --- a/Contrib-Inspur/bmcweb/static/redfish/v1/schema/Sensor_v1.xml +++ b/Contrib-Inspur/bmcweb/static/redfish/v1/schema/Sensor_v1.xml @@ -1,11 +1,11 @@ - + - + @@ -17,6 +17,9 @@ + + + @@ -35,8 +38,8 @@ - - + + @@ -45,7 +48,7 @@ - + @@ -62,8 +65,8 @@ - - + + @@ -73,170 +76,165 @@ - - - - - - + + - - + + - - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - - + + - - + + - - + + - - + + + - - - - + + + - + - - + + - + - + - - + + - - + + - - + + - - + + + - + - - + + - - + + - - + + @@ -244,169 +242,169 @@ - - - - + + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - + - + - + - - + + - - + + - - + + - - + + - + - + - + - + - + - + - - + + - - + + - + - + - + - + - + - + - + - + - - + + - + - + - + - - + + - - + + - - + + @@ -465,7 +463,18 @@ + + + + + + + + + + + diff --git a/Contrib-Inspur/bmcweb/static/redfish/v1/schema/SerialInterfaceCollection_v1.xml b/Contrib-Inspur/bmcweb/static/redfish/v1/schema/SerialInterfaceCollection_v1.xml index e668e6f0..846c77ad 100644 --- a/Contrib-Inspur/bmcweb/static/redfish/v1/schema/SerialInterfaceCollection_v1.xml +++ b/Contrib-Inspur/bmcweb/static/redfish/v1/schema/SerialInterfaceCollection_v1.xml @@ -1,11 +1,11 @@ - + - + @@ -33,8 +33,8 @@ - - + + @@ -57,8 +57,8 @@ - - + + diff --git a/Contrib-Inspur/bmcweb/static/redfish/v1/schema/SerialInterface_v1.xml b/Contrib-Inspur/bmcweb/static/redfish/v1/schema/SerialInterface_v1.xml index 63d65f90..c0e2a9be 100644 --- a/Contrib-Inspur/bmcweb/static/redfish/v1/schema/SerialInterface_v1.xml +++ b/Contrib-Inspur/bmcweb/static/redfish/v1/schema/SerialInterface_v1.xml @@ -1,11 +1,11 @@ - + - + @@ -30,8 +30,8 @@ - - + + @@ -40,7 +40,7 @@ - + @@ -62,17 +62,15 @@ - - - - + + - - + + @@ -81,12 +79,12 @@ - + - + @@ -96,18 +94,18 @@ - + - + - - + + @@ -186,19 +184,19 @@ - + - + - + - + @@ -209,11 +207,11 @@ - + - + @@ -227,19 +225,19 @@ - + - + - + - + @@ -290,25 +288,25 @@ - + - + - + - + @@ -318,42 +316,54 @@ + + + + + + + + + + + + - - + + - - + + - - + + - - + + - + - + @@ -363,5 +373,17 @@ + + + + + + + + + + + + diff --git a/Contrib-Inspur/bmcweb/static/redfish/v1/schema/ServiceRoot_v1.xml b/Contrib-Inspur/bmcweb/static/redfish/v1/schema/ServiceRoot_v1.xml index 52f92b1d..ce0517fb 100644 --- a/Contrib-Inspur/bmcweb/static/redfish/v1/schema/ServiceRoot_v1.xml +++ b/Contrib-Inspur/bmcweb/static/redfish/v1/schema/ServiceRoot_v1.xml @@ -1,11 +1,11 @@ - + - + @@ -89,8 +89,8 @@ - - + + @@ -108,6 +108,7 @@ + /redfish/v1 /redfish/v1/ @@ -134,87 +135,85 @@ - - - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + @@ -224,25 +223,25 @@ - + - + - + - + @@ -258,29 +257,41 @@ + + + + + + + + + + + + - - + + - - + + - - + + - - + + @@ -302,7 +313,7 @@ - + @@ -318,6 +329,18 @@ + + + + + + + + + + + + @@ -329,8 +352,8 @@ - - + + @@ -349,6 +372,18 @@ + + + + + + + + + + + + @@ -356,61 +391,61 @@ - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + @@ -436,6 +471,18 @@ + + + + + + + + + + + + @@ -449,14 +496,14 @@ - - + + - - + + @@ -464,13 +511,13 @@ - - + + - - + + @@ -481,6 +528,18 @@ + + + + + + + + + + + + @@ -493,22 +552,35 @@ - - + + - - + + - - + + + + + + + + + + + + + + + diff --git a/Contrib-Inspur/bmcweb/static/redfish/v1/schema/SessionCollection_v1.xml b/Contrib-Inspur/bmcweb/static/redfish/v1/schema/SessionCollection_v1.xml index b735fed1..761fd546 100644 --- a/Contrib-Inspur/bmcweb/static/redfish/v1/schema/SessionCollection_v1.xml +++ b/Contrib-Inspur/bmcweb/static/redfish/v1/schema/SessionCollection_v1.xml @@ -1,11 +1,11 @@ - + - + @@ -33,12 +33,12 @@ - - + + - + @@ -58,8 +58,8 @@ - - + + diff --git a/Contrib-Inspur/bmcweb/static/redfish/v1/schema/SessionService_v1.xml b/Contrib-Inspur/bmcweb/static/redfish/v1/schema/SessionService_v1.xml index 73937001..b93b7674 100644 --- a/Contrib-Inspur/bmcweb/static/redfish/v1/schema/SessionService_v1.xml +++ b/Contrib-Inspur/bmcweb/static/redfish/v1/schema/SessionService_v1.xml @@ -1,11 +1,11 @@ - + - + @@ -38,8 +38,8 @@ - - + + @@ -48,7 +48,7 @@ - + @@ -70,29 +70,27 @@ - - - - + + - - + + - - + + - - + + @@ -100,78 +98,102 @@ - + - + - + - + + + + + + + + + + + + + - - + + - - - - - + + + + + - - + + - + - + - + - + + + + + + + + + + + + + diff --git a/Contrib-Inspur/bmcweb/static/redfish/v1/schema/Session_v1.xml b/Contrib-Inspur/bmcweb/static/redfish/v1/schema/Session_v1.xml index b0454705..8a640334 100644 --- a/Contrib-Inspur/bmcweb/static/redfish/v1/schema/Session_v1.xml +++ b/Contrib-Inspur/bmcweb/static/redfish/v1/schema/Session_v1.xml @@ -1,11 +1,11 @@ - + - + @@ -30,8 +30,8 @@ - - + + @@ -45,7 +45,7 @@ - + @@ -66,13 +66,13 @@ - + - - + + @@ -96,30 +96,42 @@ + + + + + + + + + + + + - - + + - - + + - - + + - - + + @@ -129,5 +141,68 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Contrib-Inspur/bmcweb/static/redfish/v1/schema/Settings_v1.xml b/Contrib-Inspur/bmcweb/static/redfish/v1/schema/Settings_v1.xml index 81d8ab27..b589f660 100644 --- a/Contrib-Inspur/bmcweb/static/redfish/v1/schema/Settings_v1.xml +++ b/Contrib-Inspur/bmcweb/static/redfish/v1/schema/Settings_v1.xml @@ -1,11 +1,11 @@ - + - + @@ -47,20 +47,20 @@ - - + + - - + + - - + + - - + + @@ -70,28 +70,28 @@ - - + + - - + + - - + + - - + + - - + + @@ -99,19 +99,19 @@ - + - + - + @@ -121,34 +121,40 @@ + + + + + + - - + + - - + + - - + + - - + + - - + + @@ -157,19 +163,19 @@ - + - + - + - + @@ -181,60 +187,67 @@ + + + + + + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + @@ -251,5 +264,14 @@ + + + + + + + + + diff --git a/Contrib-Inspur/bmcweb/static/redfish/v1/schema/SimpleStorageCollection_v1.xml b/Contrib-Inspur/bmcweb/static/redfish/v1/schema/SimpleStorageCollection_v1.xml index 6d342431..c4ecf16d 100644 --- a/Contrib-Inspur/bmcweb/static/redfish/v1/schema/SimpleStorageCollection_v1.xml +++ b/Contrib-Inspur/bmcweb/static/redfish/v1/schema/SimpleStorageCollection_v1.xml @@ -1,11 +1,11 @@ - + - + @@ -33,8 +33,8 @@ - - + + @@ -59,8 +59,8 @@ - - + + diff --git a/Contrib-Inspur/bmcweb/static/redfish/v1/schema/SimpleStorage_v1.xml b/Contrib-Inspur/bmcweb/static/redfish/v1/schema/SimpleStorage_v1.xml index 651bdd8a..118c1041 100644 --- a/Contrib-Inspur/bmcweb/static/redfish/v1/schema/SimpleStorage_v1.xml +++ b/Contrib-Inspur/bmcweb/static/redfish/v1/schema/SimpleStorage_v1.xml @@ -1,11 +1,11 @@ - + - + @@ -38,8 +38,8 @@ - - + + @@ -73,40 +73,38 @@ - - - - + + - - + + - - + + - - + + - - + + - - + + - - + + @@ -124,19 +122,19 @@ - + - + - + @@ -146,6 +144,18 @@ + + + + + + + + + + + + @@ -154,8 +164,8 @@ - - + + @@ -165,13 +175,13 @@ - + - + @@ -181,45 +191,57 @@ + + + + + + + + + + + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + @@ -229,5 +251,17 @@ + + + + + + + + + + + + diff --git a/Contrib-Inspur/bmcweb/static/redfish/v1/schema/SoftwareInventoryCollection_v1.xml b/Contrib-Inspur/bmcweb/static/redfish/v1/schema/SoftwareInventoryCollection_v1.xml index ea8aaf9b..5d9110eb 100644 --- a/Contrib-Inspur/bmcweb/static/redfish/v1/schema/SoftwareInventoryCollection_v1.xml +++ b/Contrib-Inspur/bmcweb/static/redfish/v1/schema/SoftwareInventoryCollection_v1.xml @@ -1,11 +1,11 @@ - + - + @@ -33,8 +33,8 @@ - - + + @@ -58,8 +58,8 @@ - - + + diff --git a/Contrib-Inspur/bmcweb/static/redfish/v1/schema/SoftwareInventory_v1.xml b/Contrib-Inspur/bmcweb/static/redfish/v1/schema/SoftwareInventory_v1.xml index f9b3ebf0..64d0fde5 100644 --- a/Contrib-Inspur/bmcweb/static/redfish/v1/schema/SoftwareInventory_v1.xml +++ b/Contrib-Inspur/bmcweb/static/redfish/v1/schema/SoftwareInventory_v1.xml @@ -1,11 +1,11 @@ - + - + @@ -31,8 +31,8 @@ - - + + @@ -63,55 +63,53 @@ - - - - + + - - + + - - + + - - + + - - + + - - + + - - + + - + - + @@ -121,29 +119,41 @@ + + + + + + + + + + + + - - + + - - + + - - + + - - + + @@ -151,7 +161,7 @@ - + @@ -161,6 +171,18 @@ + + + + + + + + + + + + @@ -168,22 +190,34 @@ - - + + - - + + - + + + + + + + + + + + + + diff --git a/Contrib-Inspur/bmcweb/static/redfish/v1/schema/StorageCollection_v1.xml b/Contrib-Inspur/bmcweb/static/redfish/v1/schema/StorageCollection_v1.xml index 54cc50f9..87d891a8 100644 --- a/Contrib-Inspur/bmcweb/static/redfish/v1/schema/StorageCollection_v1.xml +++ b/Contrib-Inspur/bmcweb/static/redfish/v1/schema/StorageCollection_v1.xml @@ -1,11 +1,11 @@ - + - + @@ -33,8 +33,8 @@ - - + + @@ -61,8 +61,8 @@ - - + + diff --git a/Contrib-Inspur/bmcweb/static/redfish/v1/schema/Storage_v1.xml b/Contrib-Inspur/bmcweb/static/redfish/v1/schema/Storage_v1.xml index 875bf8dc..a56ac6b0 100644 --- a/Contrib-Inspur/bmcweb/static/redfish/v1/schema/Storage_v1.xml +++ b/Contrib-Inspur/bmcweb/static/redfish/v1/schema/Storage_v1.xml @@ -1,11 +1,11 @@ - + - + @@ -52,6 +52,12 @@ + + + + + + @@ -65,8 +71,8 @@ - - + + @@ -75,7 +81,7 @@ - + @@ -95,17 +101,17 @@ - - + + - + - + @@ -116,37 +122,35 @@ - - - - + + - - + + - - + + - - + + - - + + - - + + @@ -156,88 +160,88 @@ - - + + - - + + - - + + - - + + - - + + - - + + - + - + - - + + - - + + - - + + - + - + - - + + - - + + - - + + @@ -260,13 +264,13 @@ - + - + @@ -278,27 +282,39 @@ - + + + + + + + + + + + + + - - + + - - + + - - + + @@ -312,13 +328,13 @@ - + - + @@ -330,41 +346,53 @@ - + + + + + + + + + + + + + - - + + - - + + - - + + - - + + - + @@ -376,10 +404,22 @@ - + + + + + + + + + + + + + @@ -388,14 +428,14 @@ - + - + @@ -407,31 +447,43 @@ - + + + + + + + + + + + + + - + - - + + - - + + @@ -445,29 +497,41 @@ - + + + + + + + + + + + + + - - + + - + - + - - + + @@ -479,13 +543,13 @@ - + - - - + + + @@ -493,10 +557,22 @@ - + + + + + + + + + + + + + @@ -504,11 +580,80 @@ - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Contrib-Inspur/bmcweb/static/redfish/v1/schema/SwitchCollection_v1.xml b/Contrib-Inspur/bmcweb/static/redfish/v1/schema/SwitchCollection_v1.xml index 76b4b567..1b04c6f1 100644 --- a/Contrib-Inspur/bmcweb/static/redfish/v1/schema/SwitchCollection_v1.xml +++ b/Contrib-Inspur/bmcweb/static/redfish/v1/schema/SwitchCollection_v1.xml @@ -1,11 +1,11 @@ - + - + @@ -33,8 +33,8 @@ - - + + @@ -57,8 +57,8 @@ - - + + diff --git a/Contrib-Inspur/bmcweb/static/redfish/v1/schema/Switch_v1.xml b/Contrib-Inspur/bmcweb/static/redfish/v1/schema/Switch_v1.xml index 29854e1e..be1aec6e 100644 --- a/Contrib-Inspur/bmcweb/static/redfish/v1/schema/Switch_v1.xml +++ b/Contrib-Inspur/bmcweb/static/redfish/v1/schema/Switch_v1.xml @@ -1,262 +1,298 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - /redfish/v1/Fabrics/{FabricId}/Switches/{SwitchId} - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + /redfish/v1/Fabrics/{FabricId}/Switches/{SwitchId} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Contrib-Inspur/bmcweb/static/redfish/v1/schema/TaskCollection_v1.xml b/Contrib-Inspur/bmcweb/static/redfish/v1/schema/TaskCollection_v1.xml index 7fc3492e..c3857eac 100644 --- a/Contrib-Inspur/bmcweb/static/redfish/v1/schema/TaskCollection_v1.xml +++ b/Contrib-Inspur/bmcweb/static/redfish/v1/schema/TaskCollection_v1.xml @@ -1,11 +1,11 @@ - + - + @@ -33,8 +33,8 @@ - - + + @@ -57,8 +57,8 @@ - - + + diff --git a/Contrib-Inspur/bmcweb/static/redfish/v1/schema/TaskService_v1.xml b/Contrib-Inspur/bmcweb/static/redfish/v1/schema/TaskService_v1.xml index c55ad7f3..3dacbb73 100644 --- a/Contrib-Inspur/bmcweb/static/redfish/v1/schema/TaskService_v1.xml +++ b/Contrib-Inspur/bmcweb/static/redfish/v1/schema/TaskService_v1.xml @@ -1,11 +1,11 @@ - + - + @@ -34,8 +34,8 @@ - - + + @@ -44,7 +44,7 @@ - + @@ -66,36 +66,34 @@ - - - - + + - - + + - - + + - - + + - - + + - - + + @@ -113,7 +111,7 @@ - + @@ -125,7 +123,7 @@ - + @@ -135,36 +133,48 @@ + + + + + + + + + + + + - - + + - - + + - - + + - - + + - + @@ -174,5 +184,17 @@ + + + + + + + + + + + + diff --git a/Contrib-Inspur/bmcweb/static/redfish/v1/schema/Task_v1.xml b/Contrib-Inspur/bmcweb/static/redfish/v1/schema/Task_v1.xml index 18af08b6..a17f8ba5 100644 --- a/Contrib-Inspur/bmcweb/static/redfish/v1/schema/Task_v1.xml +++ b/Contrib-Inspur/bmcweb/static/redfish/v1/schema/Task_v1.xml @@ -1,11 +1,11 @@ - + - + @@ -37,8 +37,8 @@ - - + + @@ -52,7 +52,7 @@ - + @@ -72,86 +72,86 @@ - + - - + + - - + + - - + + - - + + - + - + - + - + - + - + - + - - + + - + - + - + - + - + @@ -163,7 +163,7 @@ - + @@ -178,19 +178,19 @@ - + - + - + @@ -202,40 +202,52 @@ - + + + + + + + + + + + + + - - + + - - + + - - + + - - + + - + @@ -247,14 +259,26 @@ - + + + + + + + + + + + + + - + @@ -273,51 +297,63 @@ - + + + + + + + + + + + + + - + - - + + - - - + + + - + - + - - + + - - + + - - + + @@ -325,10 +361,22 @@ - + + + + + + + + + + + + + @@ -337,12 +385,24 @@ - - + + + + + + + + + + + + + + diff --git a/Contrib-Inspur/bmcweb/static/redfish/v1/schema/TelemetryService_v1.xml b/Contrib-Inspur/bmcweb/static/redfish/v1/schema/TelemetryService_v1.xml index 11a039e1..033e9e5b 100644 --- a/Contrib-Inspur/bmcweb/static/redfish/v1/schema/TelemetryService_v1.xml +++ b/Contrib-Inspur/bmcweb/static/redfish/v1/schema/TelemetryService_v1.xml @@ -1,11 +1,11 @@ - + - + @@ -49,8 +49,8 @@ - - + + @@ -59,7 +59,7 @@ - + @@ -75,22 +75,22 @@ - - + + - - + + - + - + @@ -103,7 +103,7 @@ - + @@ -116,61 +116,59 @@ - - - - + + - - + + - - + + - + - - + + - - + + - - + + - - + + - + - - + + - - + + @@ -193,21 +191,33 @@ - - + + - - + + - - + + + + + + + + + + + + + + @@ -221,32 +231,44 @@ - + - - + + - - + + - + - - + + + + + + + + + + + + + + diff --git a/Contrib-Inspur/bmcweb/static/redfish/v1/schema/Thermal_v1.xml b/Contrib-Inspur/bmcweb/static/redfish/v1/schema/Thermal_v1.xml index e0e8689d..3a4e156d 100644 --- a/Contrib-Inspur/bmcweb/static/redfish/v1/schema/Thermal_v1.xml +++ b/Contrib-Inspur/bmcweb/static/redfish/v1/schema/Thermal_v1.xml @@ -1,11 +1,11 @@ - + - + @@ -42,8 +42,8 @@ - - + + @@ -52,7 +52,7 @@ - + @@ -76,105 +76,105 @@ - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + @@ -182,81 +182,81 @@ - - + + - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + @@ -269,17 +269,17 @@ - - + + - + - + @@ -287,31 +287,31 @@ - + - + - + - + - + @@ -323,10 +323,22 @@ - + + + + + + + + + + + + + @@ -335,20 +347,20 @@ - + - + - + @@ -360,7 +372,7 @@ - + @@ -372,10 +384,22 @@ - + + + + + + + + + + + + + @@ -383,40 +407,40 @@ - - + + - + - + - + - + - - + + - + @@ -428,7 +452,7 @@ - + @@ -440,80 +464,92 @@ - + + + + + + + + + + + + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + @@ -526,7 +562,7 @@ - + @@ -538,10 +574,22 @@ - + + + + + + + + + + + + + @@ -551,36 +599,36 @@ - + - - + + - + - + - + - + @@ -588,17 +636,17 @@ - - + + - + - - + + @@ -612,10 +660,22 @@ - + + + + + + + + + + + + + @@ -623,17 +683,29 @@ - - + + - + + + + + + + + + + + + + diff --git a/Contrib-Inspur/bmcweb/static/redfish/v1/schema/TriggersCollection_v1.xml b/Contrib-Inspur/bmcweb/static/redfish/v1/schema/TriggersCollection_v1.xml index 1096261c..5af96295 100644 --- a/Contrib-Inspur/bmcweb/static/redfish/v1/schema/TriggersCollection_v1.xml +++ b/Contrib-Inspur/bmcweb/static/redfish/v1/schema/TriggersCollection_v1.xml @@ -1,11 +1,11 @@ - + - + @@ -33,11 +33,12 @@ - - + + + @@ -57,8 +58,8 @@ - - + + diff --git a/Contrib-Inspur/bmcweb/static/redfish/v1/schema/Triggers_v1.xml b/Contrib-Inspur/bmcweb/static/redfish/v1/schema/Triggers_v1.xml index 1e1113a0..5bf0c0d8 100644 --- a/Contrib-Inspur/bmcweb/static/redfish/v1/schema/Triggers_v1.xml +++ b/Contrib-Inspur/bmcweb/static/redfish/v1/schema/Triggers_v1.xml @@ -1,11 +1,11 @@ - + - + @@ -23,6 +23,10 @@ + + + + @@ -31,8 +35,8 @@ - - + + @@ -41,12 +45,13 @@ - + + @@ -62,57 +67,54 @@ - - - - - + + - - + + - - - + + + - - + + - - + + - - + + - - - + + + - - + + - - + + - - + + @@ -122,48 +124,60 @@ - - + + - - + + - - + + + + + + + + + + + + + + - - + + - + - + - - - - - + + + + + - - - + + + - - - + + + - - - + + + @@ -174,44 +188,44 @@ - + - + - - + + - - + + - - + + - - + + - + - + @@ -220,13 +234,13 @@ - - + + - + - + @@ -241,34 +255,34 @@ - - + + - - + + - - + + - + - + - + @@ -279,5 +293,52 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Contrib-Inspur/bmcweb/static/redfish/v1/schema/UpdateService_v1.xml b/Contrib-Inspur/bmcweb/static/redfish/v1/schema/UpdateService_v1.xml index 2de2c50f..0c5bf0a8 100644 --- a/Contrib-Inspur/bmcweb/static/redfish/v1/schema/UpdateService_v1.xml +++ b/Contrib-Inspur/bmcweb/static/redfish/v1/schema/UpdateService_v1.xml @@ -1,11 +1,11 @@ - + - + @@ -38,8 +38,8 @@ - - + + @@ -48,7 +48,7 @@ - + @@ -63,21 +63,23 @@ + + - - + + - - + + - - + + - - + + @@ -89,8 +91,8 @@ - - + + @@ -101,8 +103,8 @@ - - + + @@ -120,60 +122,58 @@ - - - - + + - - + + - + - + - + - + - - + + - - + + - - + + - - + + - + - + - + @@ -184,34 +184,34 @@ - + - + - + - + - + - + - + - + @@ -239,7 +239,7 @@ - + @@ -251,18 +251,30 @@ - + + + + + + + + + + + + + - - + + @@ -276,7 +288,7 @@ - + @@ -288,31 +300,43 @@ - + + + + + + + + + + + + + - - + + - - + + - + @@ -324,10 +348,22 @@ - + + + + + + + + + + + + + @@ -337,54 +373,66 @@ - + + + + + + + + + + + + + - + - - + + - - - + + + - - + + - - + + - - + + - - + + - - + + - - + + @@ -393,22 +441,79 @@ - + - + - - + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Contrib-Inspur/bmcweb/static/redfish/v1/schema/VLanNetworkInterfaceCollection_v1.xml b/Contrib-Inspur/bmcweb/static/redfish/v1/schema/VLanNetworkInterfaceCollection_v1.xml index 44e383a3..effafa62 100644 --- a/Contrib-Inspur/bmcweb/static/redfish/v1/schema/VLanNetworkInterfaceCollection_v1.xml +++ b/Contrib-Inspur/bmcweb/static/redfish/v1/schema/VLanNetworkInterfaceCollection_v1.xml @@ -1,11 +1,11 @@ - + - + @@ -33,12 +33,12 @@ - - + + - + @@ -64,8 +64,8 @@ - - + + diff --git a/Contrib-Inspur/bmcweb/static/redfish/v1/schema/VLanNetworkInterface_v1.xml b/Contrib-Inspur/bmcweb/static/redfish/v1/schema/VLanNetworkInterface_v1.xml index cc293539..b559feed 100644 --- a/Contrib-Inspur/bmcweb/static/redfish/v1/schema/VLanNetworkInterface_v1.xml +++ b/Contrib-Inspur/bmcweb/static/redfish/v1/schema/VLanNetworkInterface_v1.xml @@ -1,192 +1,217 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - /redfish/v1/Chassis/{ChassisId}/NetworkAdapters/{NetworkAdapterId}/NetworkDeviceFunctions/{NetworkDeviceFunctionId}/Ethernet/VLANs/{VLanNetworkInterfaceId} - /redfish/v1/Managers/{ManagerId}/EthernetInterfaces/{EthernetInterfaceId}/VLANs/{VLanNetworkInterfaceId} - /redfish/v1/Systems/{ComputerSystemId}/EthernetInterfaces/{EthernetInterfaceId}/VLANs/{VLanNetworkInterfaceId} - /redfish/v1/CompositionService/ResourceBlocks/{ResourceBlockId}/EthernetInterfaces/{EthernetInterfaceId}/VLANs/{VLanNetworkInterfaceId} - /redfish/v1/CompositionService/ResourceBlocks/{ResourceBlockId}/Systems/{ComputerSystemId}/EthernetInterfaces/{EthernetInterfaceId}/VLANs/{VLanNetworkInterfaceId} - /redfish/v1/ResourceBlocks/{ResourceBlockId}/EthernetInterfaces/{EthernetInterfaceId}/VLANs/{VLanNetworkInterfaceId} - /redfish/v1/ResourceBlocks/{ResourceBlockId}/Systems/{ComputerSystemId}/EthernetInterfaces/{EthernetInterfaceId}/VLANs/{VLanNetworkInterfaceId} - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + /redfish/v1/Chassis/{ChassisId}/NetworkAdapters/{NetworkAdapterId}/NetworkDeviceFunctions/{NetworkDeviceFunctionId}/Ethernet/VLANs/{VLanNetworkInterfaceId} + /redfish/v1/Managers/{ManagerId}/EthernetInterfaces/{EthernetInterfaceId}/VLANs/{VLanNetworkInterfaceId} + /redfish/v1/Systems/{ComputerSystemId}/EthernetInterfaces/{EthernetInterfaceId}/VLANs/{VLanNetworkInterfaceId} + /redfish/v1/CompositionService/ResourceBlocks/{ResourceBlockId}/EthernetInterfaces/{EthernetInterfaceId}/VLANs/{VLanNetworkInterfaceId} + /redfish/v1/CompositionService/ResourceBlocks/{ResourceBlockId}/Systems/{ComputerSystemId}/EthernetInterfaces/{EthernetInterfaceId}/VLANs/{VLanNetworkInterfaceId} + /redfish/v1/ResourceBlocks/{ResourceBlockId}/EthernetInterfaces/{EthernetInterfaceId}/VLANs/{VLanNetworkInterfaceId} + /redfish/v1/ResourceBlocks/{ResourceBlockId}/Systems/{ComputerSystemId}/EthernetInterfaces/{EthernetInterfaceId}/VLANs/{VLanNetworkInterfaceId} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Contrib-Inspur/bmcweb/static/redfish/v1/schema/VirtualMediaCollection_v1.xml b/Contrib-Inspur/bmcweb/static/redfish/v1/schema/VirtualMediaCollection_v1.xml index 16870b32..60573475 100644 --- a/Contrib-Inspur/bmcweb/static/redfish/v1/schema/VirtualMediaCollection_v1.xml +++ b/Contrib-Inspur/bmcweb/static/redfish/v1/schema/VirtualMediaCollection_v1.xml @@ -1,11 +1,11 @@ - + - + @@ -33,8 +33,8 @@ - - + + @@ -57,8 +57,8 @@ - - + + diff --git a/Contrib-Inspur/bmcweb/static/redfish/v1/schema/VirtualMedia_v1.xml b/Contrib-Inspur/bmcweb/static/redfish/v1/schema/VirtualMedia_v1.xml index 9bf99db2..74474ee6 100644 --- a/Contrib-Inspur/bmcweb/static/redfish/v1/schema/VirtualMedia_v1.xml +++ b/Contrib-Inspur/bmcweb/static/redfish/v1/schema/VirtualMedia_v1.xml @@ -1,11 +1,11 @@ - + - + @@ -30,8 +30,8 @@ - - + + @@ -40,7 +40,7 @@ - + @@ -56,7 +56,7 @@ - + @@ -69,19 +69,19 @@ - + - - + + - - + + - - + + @@ -92,8 +92,8 @@ - - + + @@ -104,8 +104,8 @@ - - + + @@ -116,8 +116,8 @@ - - + + @@ -130,8 +130,8 @@ - - + + @@ -153,33 +153,33 @@ - + - - + + - + - - + + - - + + - - + + @@ -209,7 +209,7 @@ - + @@ -235,40 +235,52 @@ - + + + + + + + + + + + + + - - + + - - + + - - + + - - + + - + @@ -280,10 +292,22 @@ - + + + + + + + + + + + + + @@ -299,65 +323,77 @@ - + + + + + + + + + + + + + - + - - + + - - + + - - + + - - + + - + - + - + - + - + - + - + - + - + @@ -371,5 +407,17 @@ + + + + + + + + + + + + diff --git a/Contrib-Inspur/bmcweb/static/redfish/v1/schema/VolumeCollection_v1.xml b/Contrib-Inspur/bmcweb/static/redfish/v1/schema/VolumeCollection_v1.xml index dee0f407..7ffb2250 100644 --- a/Contrib-Inspur/bmcweb/static/redfish/v1/schema/VolumeCollection_v1.xml +++ b/Contrib-Inspur/bmcweb/static/redfish/v1/schema/VolumeCollection_v1.xml @@ -1,11 +1,11 @@ - + - + @@ -33,12 +33,12 @@ - - + + - + @@ -62,8 +62,8 @@ - - + + diff --git a/Contrib-Inspur/bmcweb/static/redfish/v1/schema/Volume_v1.xml b/Contrib-Inspur/bmcweb/static/redfish/v1/schema/Volume_v1.xml index e3ff725b..f1a16f39 100644 --- a/Contrib-Inspur/bmcweb/static/redfish/v1/schema/Volume_v1.xml +++ b/Contrib-Inspur/bmcweb/static/redfish/v1/schema/Volume_v1.xml @@ -1,32 +1,25 @@ - - - - - - - - + + - + - + - + + + + - - - - @@ -34,41 +27,38 @@ + + + + + + + + + + + + + + + + + + + + + + + + - - + - - - - - - - - - - - - - - - - - - - - /redfish/v1/Systems/{ComputerSystemId}/Storage/{StorageId}/Volumes/{VolumeId} - /redfish/v1/CompositionService/ResourceBlocks/{ResourceBlockId}/Storage/{StorageId}/Volumes/{VolumeId} - /redfish/v1/CompositionService/ResourceBlocks/{ResourceBlockId}/Systems/{ComputerSystemId}/Storage/{StorageId}/Volumes/{VolumeId} - /redfish/v1/ResourceBlocks/{ResourceBlockId}/Storage/{StorageId}/Volumes/{VolumeId} - /redfish/v1/ResourceBlocks/{ResourceBlockId}/Systems/{ComputerSystemId}/Storage/{StorageId}/Volumes/{VolumeId} - - @@ -77,8 +67,8 @@ - - + + @@ -89,19 +79,82 @@ - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - + @@ -114,6 +167,7 @@ + @@ -125,17 +179,17 @@ - + - - + + - + @@ -156,32 +210,26 @@ - - - + - - - - - - - + @@ -232,22 +280,208 @@ - + - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Contrib-Inspur/bmcweb/static/redfish/v1/schema/ZoneCollection_v1.xml b/Contrib-Inspur/bmcweb/static/redfish/v1/schema/ZoneCollection_v1.xml index c3855e67..d2647331 100644 --- a/Contrib-Inspur/bmcweb/static/redfish/v1/schema/ZoneCollection_v1.xml +++ b/Contrib-Inspur/bmcweb/static/redfish/v1/schema/ZoneCollection_v1.xml @@ -1,11 +1,11 @@ - + - + @@ -32,8 +32,8 @@ - - + + @@ -57,8 +57,8 @@ - - + + diff --git a/Contrib-Inspur/bmcweb/static/redfish/v1/schema/Zone_v1.xml b/Contrib-Inspur/bmcweb/static/redfish/v1/schema/Zone_v1.xml index f230d306..f4a2bf1b 100644 --- a/Contrib-Inspur/bmcweb/static/redfish/v1/schema/Zone_v1.xml +++ b/Contrib-Inspur/bmcweb/static/redfish/v1/schema/Zone_v1.xml @@ -1,187 +1,256 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - /redfish/v1/Fabrics/{FabricId}/Zones/{ZoneId} - /redfish/v1/CompositionService/ResourceZones/{ZoneId} - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + /redfish/v1/Fabrics/{FabricId}/Zones/{ZoneId} + /redfish/v1/CompositionService/ResourceZones/{ZoneId} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Contrib-Inspur/openbmc/README.md b/Contrib-Inspur/openbmc/README.md index 2b034d10..5c5ae63c 100644 --- a/Contrib-Inspur/openbmc/README.md +++ b/Contrib-Inspur/openbmc/README.md @@ -50,9 +50,9 @@ Witherspoon| ```meta-ibm/meta-witherspoon/conf``` Romulus| ```meta-ibm/meta-romulus/conf``` -As an example target Palmetto +As an example target Romulus ``` -export TEMPLATECONF=meta-ibm/meta-palmetto/conf +export TEMPLATECONF=meta-ibm/meta-romulus/conf ``` ### 4) Build @@ -65,6 +65,12 @@ bitbake obmc-phosphor-image Additional details can be found in the [docs](https://github.com/openbmc/docs) repository. +## OpenBMC Development + +The OpenBMC community maintains a set of tutorials new users can go through +to get up to speed on OpenBMC development out +[here](https://github.com/openbmc/docs/blob/master/development/README.md) + ## Build Validation and Testing Commits submitted by members of the OpenBMC GitHub community are compiled and tested via our [Jenkins](https://openpower.xyz/) server. Commits are run @@ -94,6 +100,20 @@ cases. GitHub. It is recommended you search through the issues before opening a new one. +## Questions + +First, please do a search on the internet. There's a good chance your question +has already been asked. + +For general questions, please use the openbmc tag on +[Stack Overflow](https://stackoverflow.com/questions/tagged/openbmc). +Please review the [discussion](https://meta.stackexchange.com/questions/272956/a-new-code-license-the-mit-this-time-with-attribution-required?cb=1) +on Stack Overflow licensing before posting any code. + +For technical discussions, please see [contact info](#contact) below for IRC and +mailing list information. Please don't file an issue to ask a question. You'll +get faster results by using the mailing list or IRC. + ## Features of OpenBMC **Feature List** @@ -107,11 +127,11 @@ a new one. * Remote KVM * Hardware Simulation * Automated Testing +* User management +* Virtual media **Features In Progress** * OpenCompute Redfish Compliance -* User management -* Virtual media * Verified Boot **Features Requested but need help** @@ -123,6 +143,17 @@ a new one. Dive deeper into OpenBMC by opening the [docs](https://github.com/openbmc/docs) repository. +## Technical Steering Committee + +The Technical Steering Committee (TSC) guides the project. Members are: + + * Brad Bishop (chair), IBM + * Nancy Yuen, Google + * Sai Dasari, Facebook + * James Mihm, Intel + * Sagar Dharia, Microsoft + * Supreeth Venkatesh, Arm + ## Contact - Mail: openbmc@lists.ozlabs.org [https://lists.ozlabs.org/listinfo/openbmc](https://lists.ozlabs.org/listinfo/openbmc) - IRC: #openbmc on freenode.net diff --git a/Contrib-Inspur/openbmc/meta-aspeed/README.md b/Contrib-Inspur/openbmc/meta-aspeed/README.md index 6c3221ef..b97bbc78 100644 --- a/Contrib-Inspur/openbmc/meta-aspeed/README.md +++ b/Contrib-Inspur/openbmc/meta-aspeed/README.md @@ -1,9 +1,36 @@ -ASPEED -================ - -This is the ASPEED Board Support Package (BSP) layer. It supports the -AST2400 and AST2500; ARM service management SOCs made by ASPEED. More -information about the AST2400 and AST2500 can be found -[here](https://www.aspeedtech.com/products.php?fPath=20&rId=376) -and -[here](https://www.aspeedtech.com/products.php?fPath=20&rId=440). +OpenEmbedded/Yocto BSP layer for Aspeed's platforms +====================================================================== + +This layer provides support for Aspeed's platforms for use with OpenEmbedded +and/or Yocto. + +``` +This layer depends on: + +URI: git://git.openembedded.org/openembedded-core +layers: meta +branch: master +revision: HEAD +``` + +Contributing +------------ + +meta-aspeed patches are reviewed using the Gerrit instance at +https://gerrit.openbmc-project.xyz. + +Please submit patches to Gerrit. More information on using Gerrit can be found +[here](https://github.com/openbmc/docs/blob/master/CONTRIBUTING.md#submitting-changes-via-gerrit-server). +https://github.com/openbmc/meta-aspeed is a hosting mirror only and GitHub +pull requests are not monitored and will not be accepted. + +Patch checklist. Please ensure patches adhere to the following guidelines: + + - meta-aspeed uses the [OE style + guidelines](https://www.openembedded.org/wiki/Styleguide). + - follow [the seven rules of a great git commit + message](https://chris.beams.io/posts/git-commit/#seven-rules) + +For questions or help please come join us on the [mailing +list](https://lists.ozlabs.org/listinfo/openbmc) or in +[IRC](irc://freenode.net/openbmc). diff --git a/Contrib-Inspur/openbmc/meta-aspeed/conf/bblayers.conf.sample b/Contrib-Inspur/openbmc/meta-aspeed/conf/bblayers.conf.sample new file mode 100644 index 00000000..e52e6bea --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-aspeed/conf/bblayers.conf.sample @@ -0,0 +1,7 @@ +BBPATH = "${TOPDIR}" +BBFILES ?= "" + +BBLAYERS ?= " \ + ##OEROOT##/meta \ + ##OEROOT##/meta-aspeed \ + " diff --git a/Contrib-Inspur/openbmc/meta-aspeed/conf/layer.conf b/Contrib-Inspur/openbmc/meta-aspeed/conf/layer.conf index b990839b..9741d26b 100644 --- a/Contrib-Inspur/openbmc/meta-aspeed/conf/layer.conf +++ b/Contrib-Inspur/openbmc/meta-aspeed/conf/layer.conf @@ -7,6 +7,4 @@ BBFILES += "${LAYERDIR}/recipes-*/*/*.bb \ BBFILE_COLLECTIONS += "aspeed-layer" BBFILE_PATTERN_aspeed-layer := "^${LAYERDIR}/" LAYERVERSION_aspeed-layer = "1" -LAYERSERIES_COMPAT_aspeed-layer = "thud warrior" - -ASPEEDBASE = '${@os.path.normpath("${LAYERDIR}/")}' +LAYERSERIES_COMPAT_aspeed-layer = "warrior zeus" diff --git a/Contrib-Inspur/openbmc/meta-aspeed/conf/local.conf.sample b/Contrib-Inspur/openbmc/meta-aspeed/conf/local.conf.sample new file mode 100644 index 00000000..9cce6928 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-aspeed/conf/local.conf.sample @@ -0,0 +1,5 @@ +#MACHINE ?= "evb-ast2500" +MACHINE ??= "evb-ast2600" + +# Allow logging in if the user does not set the root password. +EXTRA_IMAGE_FEATURES ?= "debug-tweaks" diff --git a/Contrib-Inspur/openbmc/meta-aspeed/conf/machine/evb-ast2500.conf b/Contrib-Inspur/openbmc/meta-aspeed/conf/machine/evb-ast2500.conf new file mode 100644 index 00000000..e8aebd18 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-aspeed/conf/machine/evb-ast2500.conf @@ -0,0 +1,6 @@ +KERNEL_DEVICETREE = "aspeed-ast2500-evb.dtb" +UBOOT_MACHINE = "ast_g5_phy_config" + +require conf/machine/include/ast2500.inc + +SERIAL_CONSOLES = "115200;ttyS4" diff --git a/Contrib-Inspur/openbmc/meta-aspeed/conf/machine/evb-ast2600.conf b/Contrib-Inspur/openbmc/meta-aspeed/conf/machine/evb-ast2600.conf new file mode 100644 index 00000000..9c8c6496 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-aspeed/conf/machine/evb-ast2600.conf @@ -0,0 +1,6 @@ +KERNEL_DEVICETREE = "aspeed-ast2600-evb.dtb" +UBOOT_MACHINE = "evb-ast2600_defconfig" + +require conf/machine/include/ast2600.inc + +SERIAL_CONSOLES = "115200;ttyS4" diff --git a/Contrib-Inspur/openbmc/meta-aspeed/conf/machine/include/aspeed.inc b/Contrib-Inspur/openbmc/meta-aspeed/conf/machine/include/aspeed.inc index 36153cf5..a2316cf6 100644 --- a/Contrib-Inspur/openbmc/meta-aspeed/conf/machine/include/aspeed.inc +++ b/Contrib-Inspur/openbmc/meta-aspeed/conf/machine/include/aspeed.inc @@ -3,4 +3,28 @@ PREFERRED_PROVIDER_virtual/bootloader ?= "u-boot-aspeed" PREFERRED_PROVIDER_u-boot ?= "u-boot-aspeed" PREFERRED_PROVIDER_u-boot-fw-utils ?= "u-boot-fw-utils-aspeed" +PREFERRED_PROVIDER_virtual/bootloader_aspeed-g6 ?= "u-boot-aspeed-sdk" +PREFERRED_PROVIDER_u-boot_aspeed-g6 ?= "u-boot-aspeed-sdk" +PREFERRED_PROVIDER_u-boot-fw-utils_aspeed-g6 ?= "u-boot-fw-utils-aspeed-sdk" + +# Build a FIT image and stuff core-image-minimal in it by default. +KERNEL_IMAGETYPE ?= "fitImage" +KERNEL_CLASSES ?= "kernel-fitimage" +INITRAMFS_IMAGE ?= "aspeed-image-initramfs" +INITRAMFS_FSTYPES ?= "cpio.xz" + +MACHINE_EXTRA_RRECOMMENDS += "udev-aspeed-vuart udev-aspeed-mtd-partitions" + MACHINEOVERRIDES =. "aspeed:" + +SERIAL_CONSOLES ?= "115200;ttyS4" + +DEFAULTTUNE_aspeed-g5 ?= "arm1176jzs" +DEFAULTTUNE_aspeed-g6 ?= "armv7ahf-vfpv4d16" + +UBOOT_ENTRYPOINT_aspeed-g4 ?= "0x40001000" +UBOOT_ENTRYPOINT_aspeed-g5 ?= "0x80001000" +UBOOT_ENTRYPOINT_aspeed-g6 ?= "0x80001000" +UBOOT_LOADADDRESS_aspeed-g4 ?= "0x40001000" +UBOOT_LOADADDRESS_aspeed-g5 ?= "0x80001000" +UBOOT_LOADADDRESS_aspeed-g6 ?= "0x80001000" diff --git a/Contrib-Inspur/openbmc/meta-aspeed/conf/machine/include/ast2400.inc b/Contrib-Inspur/openbmc/meta-aspeed/conf/machine/include/ast2400.inc index a7c900aa..6284a2b6 100644 --- a/Contrib-Inspur/openbmc/meta-aspeed/conf/machine/include/ast2400.inc +++ b/Contrib-Inspur/openbmc/meta-aspeed/conf/machine/include/ast2400.inc @@ -1,16 +1,4 @@ -#@TYPE: Machine -#@NAME: Aspeed AST2400 -#@DESCRIPTION: Common machine configuration for the Aspeed AST2400 Chip - SOC_FAMILY = "aspeed-g4" include conf/machine/include/soc-family.inc require conf/machine/include/aspeed.inc require conf/machine/include/tune-arm926ejs.inc - -UBOOT_MACHINE ?= "ast_g4_ncsi_config" -UBOOT_ENTRYPOINT ?= "0x40001000" -UBOOT_LOADADDRESS ?= "0x40001000" - -MACHINE_EXTRA_RDEPENDS += "udev-aspeed-vuart" - -SERIAL_CONSOLES = "115200;ttyS4" diff --git a/Contrib-Inspur/openbmc/meta-aspeed/conf/machine/include/ast2500.inc b/Contrib-Inspur/openbmc/meta-aspeed/conf/machine/include/ast2500.inc index 49a62110..0724157a 100644 --- a/Contrib-Inspur/openbmc/meta-aspeed/conf/machine/include/ast2500.inc +++ b/Contrib-Inspur/openbmc/meta-aspeed/conf/machine/include/ast2500.inc @@ -1,18 +1,4 @@ -#@TYPE: Machine -#@NAME: Aspeed AST2500 -#@DESCRIPTION: Common machine configuration for the Aspeed AST2500 Chip - SOC_FAMILY = "aspeed-g5" include conf/machine/include/soc-family.inc require conf/machine/include/aspeed.inc - -DEFAULTTUNE ?= "arm1176jzs" require conf/machine/include/tune-arm1176jz-s.inc - -UBOOT_MACHINE ?= "ast_g5_ncsi_config" -UBOOT_ENTRYPOINT ?= "0x80001000" -UBOOT_LOADADDRESS ?= "0x80001000" - -MACHINE_EXTRA_RDEPENDS += "udev-aspeed-vuart" - -SERIAL_CONSOLES = "115200;ttyS4" diff --git a/Contrib-Inspur/openbmc/meta-aspeed/conf/machine/include/ast2600.inc b/Contrib-Inspur/openbmc/meta-aspeed/conf/machine/include/ast2600.inc new file mode 100644 index 00000000..fff5465d --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-aspeed/conf/machine/include/ast2600.inc @@ -0,0 +1,4 @@ +SOC_FAMILY = "aspeed-g6" +include conf/machine/include/soc-family.inc +require conf/machine/include/aspeed.inc +include conf/machine/include/arm/arch-armv7a.inc diff --git a/Contrib-Inspur/openbmc/meta-aspeed/conf/machine/include/tune-arm1176jz-s.inc b/Contrib-Inspur/openbmc/meta-aspeed/conf/machine/include/tune-arm1176jz-s.inc deleted file mode 100644 index 5216533e..00000000 --- a/Contrib-Inspur/openbmc/meta-aspeed/conf/machine/include/tune-arm1176jz-s.inc +++ /dev/null @@ -1,11 +0,0 @@ -DEFAULTTUNE ?= "armv6t-novfp" - -require conf/machine/include/arm/arch-armv6.inc - -TUNEVALID[arm1176jzs] = "Enable arm1176jzs specific processor optimizations" -TUNE_CCARGS += "${@bb.utils.contains("TUNE_FEATURES", "arm1176jzs", "-mtune=arm1176jz-s", "", d)}" - -AVAILTUNES += "arm1176jzs" -ARMPKGARCH_tune-arm1176jzs = "${ARMPKGARCH_tune-armv6t-novfp}" -TUNE_FEATURES_tune-arm1176jzs = "${TUNE_FEATURES_tune-armv6t-novfp} arm1176jzs" -PACKAGE_EXTRA_ARCHS_tune-arm1176jzs = "${PACKAGE_EXTRA_ARCHS_tune-armv6t-novfp}" diff --git a/Contrib-Inspur/openbmc/meta-aspeed/recipes-aspeed/images/aspeed-image-initramfs.bb b/Contrib-Inspur/openbmc/meta-aspeed/recipes-aspeed/images/aspeed-image-initramfs.bb new file mode 100644 index 00000000..9f450210 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-aspeed/recipes-aspeed/images/aspeed-image-initramfs.bb @@ -0,0 +1,3 @@ +IMAGE_FSTYPES = "${INITRAMFS_FSTYPES}" + +require recipes-core/images/core-image-minimal.bb diff --git a/Contrib-Inspur/openbmc/meta-aspeed/recipes-aspeed/images/aspeed-image-norootfs.bb b/Contrib-Inspur/openbmc/meta-aspeed/recipes-aspeed/images/aspeed-image-norootfs.bb new file mode 100644 index 00000000..54c095be --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-aspeed/recipes-aspeed/images/aspeed-image-norootfs.bb @@ -0,0 +1,40 @@ +SUMMARY = "Two partition MTD image with u-boot and kernel" +HOMEPAGE = "https://github.com/openbmc/meta-aspeed" +LICENSE = "MIT" + +inherit deploy + +UBOOT_SUFFIX ?= "bin" +ASPEED_IMAGE_KERNEL_OFFSET_KB ?= "512" +ASPEED_IMAGE_SIZE_KB ?= "32768" +ASPEED_IMAGE_KERNEL_IMAGE ?= "fitImage-${INITRAMFS_IMAGE}-${MACHINE}-${MACHINE}" +ASPEED_IMAGE_NAME ?= "aspeed-norootfs-${MACHINE}.bin" + +do_compile() { + dd if=/dev/zero bs=1k count=${ASPEED_IMAGE_SIZE_KB} | \ + tr '\000' '\377' > ${B}/aspeed-norootfs.bin + dd if=${DEPLOY_DIR_IMAGE}/u-boot.${UBOOT_SUFFIX} of=${B}/aspeed-norootfs.bin \ + conv=notrunc + dd if=${DEPLOY_DIR_IMAGE}/${ASPEED_IMAGE_KERNEL_IMAGE} \ + of=${B}/aspeed-norootfs.bin conv=notrunc \ + seek=${ASPEED_IMAGE_KERNEL_OFFSET_KB} bs=1k +} + +do_deploy() { + install -m644 -D ${B}/aspeed-norootfs.bin ${DEPLOYDIR}/${ASPEED_IMAGE_NAME} +} + +do_compile[depends] = "virtual/kernel:do_deploy u-boot:do_deploy" +do_fetch[noexec] = "1" +do_unpack[noexec] = "1" +do_patch[noexec] = "1" +do_configure[noexec] = "1" +do_install[noexec] = "1" +deltask do_populate_sysroot +do_package[noexec] = "1" +deltask do_package_qa +do_packagedata[noexec] = "1" +deltask do_package_write_ipk +deltask do_package_write_deb +deltask do_package_write_rpm +addtask deploy before do_build after do_compile diff --git a/Contrib-Inspur/openbmc/meta-aspeed/recipes-bsp/u-boot/files/0001-arm-evb-ast2600-put-environment-back-at-512KiB.patch b/Contrib-Inspur/openbmc/meta-aspeed/recipes-bsp/u-boot/files/0001-arm-evb-ast2600-put-environment-back-at-512KiB.patch new file mode 100644 index 00000000..e010f26c --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-aspeed/recipes-bsp/u-boot/files/0001-arm-evb-ast2600-put-environment-back-at-512KiB.patch @@ -0,0 +1,47 @@ +From 2add5b8d1216be2e446a3d707767c2a5ec6be9f4 Mon Sep 17 00:00:00 2001 +From: Brad Bishop +Date: Thu, 5 Sep 2019 20:39:57 -0400 +Subject: [PATCH u-boot aspeed-dev-v2019.04] arm: evb-ast2600: put environment + back at 512KiB + +Prior to 473f430b90 the environment was at 512KiB, and compatible with +OpenBMC. Restore OpenBMC compatibility by moving the environment back +to 512KiB. + +Signed-off-by: Brad Bishop +--- + include/configs/aspeed-common.h | 4 +++- + include/configs/evb_ast2600.h | 2 +- + 2 files changed, 4 insertions(+), 2 deletions(-) + +diff --git a/include/configs/aspeed-common.h b/include/configs/aspeed-common.h +index 7a730d17ad..d1eb4688e6 100644 +--- a/include/configs/aspeed-common.h ++++ b/include/configs/aspeed-common.h +@@ -52,7 +52,9 @@ + /* + * Miscellaneous configurable options + */ +-#define CONFIG_BOOTCOMMAND "bootm 200a0000" ++#ifndef CONFIG_BOOTCOMMAND ++#define CONFIG_BOOTCOMMAND "bootm 20080000" ++#endif + #define CONFIG_ENV_OVERWRITE + + #define CONFIG_SYS_BOOTM_LEN (0x800000 * 2) +diff --git a/include/configs/evb_ast2600.h b/include/configs/evb_ast2600.h +index b4de42a05a..3a12f2f0d4 100644 +--- a/include/configs/evb_ast2600.h ++++ b/include/configs/evb_ast2600.h +@@ -18,7 +18,7 @@ + + /* Environment */ + #define CONFIG_ENV_SIZE 0x10000 +-#define CONFIG_ENV_OFFSET 0x90000 ++#define CONFIG_ENV_OFFSET 0x60000 + #define CONFIG_ENV_SECT_SIZE (4 << 10) + + #endif /* __CONFIG_H */ +-- +2.21.0 + diff --git a/Contrib-Inspur/openbmc/meta-aspeed/recipes-bsp/u-boot/u-boot-aspeed-sdk/flash-131072/bootcmd.cfg b/Contrib-Inspur/openbmc/meta-aspeed/recipes-bsp/u-boot/u-boot-aspeed-sdk/flash-131072/bootcmd.cfg new file mode 100644 index 00000000..6862aaeb --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-aspeed/recipes-bsp/u-boot/u-boot-aspeed-sdk/flash-131072/bootcmd.cfg @@ -0,0 +1,2 @@ +CONFIG_USE_BOOTCOMMAND=y +CONFIG_BOOTCOMMAND="bootm 20100000" diff --git a/Contrib-Inspur/openbmc/meta-aspeed/recipes-bsp/u-boot/u-boot-aspeed-sdk_2019.04.bb b/Contrib-Inspur/openbmc/meta-aspeed/recipes-bsp/u-boot/u-boot-aspeed-sdk_2019.04.bb new file mode 100644 index 00000000..fe853385 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-aspeed/recipes-bsp/u-boot/u-boot-aspeed-sdk_2019.04.bb @@ -0,0 +1,8 @@ +require u-boot-common-aspeed-sdk_${PV}.inc + +UBOOT_MAKE_TARGET ?= "u-boot.${UBOOT_SUFFIX}" + +require recipes-bsp/u-boot/u-boot.inc + +PROVIDES += "u-boot" +DEPENDS += "bc-native dtc-native" diff --git a/Contrib-Inspur/openbmc/meta-aspeed/recipes-bsp/u-boot/u-boot-common-aspeed-sdk_2019.04.inc b/Contrib-Inspur/openbmc/meta-aspeed/recipes-bsp/u-boot/u-boot-common-aspeed-sdk_2019.04.inc new file mode 100644 index 00000000..31dc5f2c --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-aspeed/recipes-bsp/u-boot/u-boot-common-aspeed-sdk_2019.04.inc @@ -0,0 +1,24 @@ +HOMEPAGE = "https://github.com/AspeedTech-BMC/u-boot" +SECTION = "bootloaders" +DEPENDS += "flex-native bison-native" + +LICENSE = "GPLv2+" +LIC_FILES_CHKSUM = "file://Licenses/README;md5=30503fd321432fc713238f582193b78e" +PE = "1" + +# We use the revision in order to avoid having to fetch it from the +# repo during parse +SRCREV = "4d29b04c7aca4121d542b759575fbb93e52aef47" + +UBRANCH = "aspeed-dev-v2019.04" +SRC_URI = "git://github.com/AspeedTech-BMC/u-boot;branch=${UBRANCH};protocol=https" +SRC_URI += "file://0001-arm-evb-ast2600-put-environment-back-at-512KiB.patch" + +# There are different BOOTCOMMANDS for differently sized raw flash modules. +ASPEED_IMAGE_SIZE_KB ?= "32768" +MACHINEOVERRIDES .= ":flash-${ASPEED_IMAGE_SIZE_KB}" +SRC_URI_append_flash-131072 = " file://bootcmd.cfg" + +S = "${WORKDIR}/git" + +PV = "v2019.04+git${SRCPV}" diff --git a/Contrib-Inspur/openbmc/meta-aspeed/recipes-bsp/u-boot/u-boot-fw-utils-aspeed-sdk_2019.04.bb b/Contrib-Inspur/openbmc/meta-aspeed/recipes-bsp/u-boot/u-boot-fw-utils-aspeed-sdk_2019.04.bb new file mode 100644 index 00000000..59fdbdea --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-aspeed/recipes-bsp/u-boot/u-boot-fw-utils-aspeed-sdk_2019.04.bb @@ -0,0 +1,36 @@ +require u-boot-common-aspeed-sdk_${PV}.inc + +SUMMARY = "U-Boot bootloader fw_printenv/setenv utilities" +DEPENDS += "mtd-utils" + +PROVIDES += "u-boot-fw-utils" + +INSANE_SKIP_${PN} = "already-stripped" +EXTRA_OEMAKE_class-target = 'CROSS_COMPILE=${TARGET_PREFIX} CC="${CC} ${CFLAGS} ${LDFLAGS}" HOSTCC="${BUILD_CC} ${BUILD_CFLAGS} ${BUILD_LDFLAGS}" V=1' +EXTRA_OEMAKE_class-cross = 'HOSTCC="${CC} ${CFLAGS} ${LDFLAGS}" V=1' + +inherit uboot-config + +do_compile () { + oe_runmake ${UBOOT_MACHINE} + oe_runmake envtools +} + +do_install () { + install -d ${D}${base_sbindir} + install -d ${D}${sysconfdir} + install -m 755 ${S}/tools/env/fw_printenv ${D}${base_sbindir}/fw_printenv + install -m 755 ${S}/tools/env/fw_printenv ${D}${base_sbindir}/fw_setenv + install -m 0644 ${S}/tools/env/fw_env.config ${D}${sysconfdir}/fw_env.config +} + +do_install_class-cross () { + install -d ${D}${bindir_cross} + install -m 755 ${S}/tools/env/fw_printenv ${D}${bindir_cross}/fw_printenv + install -m 755 ${S}/tools/env/fw_printenv ${D}${bindir_cross}/fw_setenv +} + +SYSROOT_DIRS_append_class-cross = " ${bindir_cross}" + +PACKAGE_ARCH = "${MACHINE_ARCH}" +BBCLASSEXTEND = "cross" diff --git a/Contrib-Inspur/openbmc/meta-aspeed/recipes-kernel/linux/linux-aspeed/aspeed-g4/defconfig b/Contrib-Inspur/openbmc/meta-aspeed/recipes-kernel/linux/linux-aspeed/aspeed-g4/defconfig index d0abbf1f..939a60e9 100644 --- a/Contrib-Inspur/openbmc/meta-aspeed/recipes-kernel/linux/linux-aspeed/aspeed-g4/defconfig +++ b/Contrib-Inspur/openbmc/meta-aspeed/recipes-kernel/linux/linux-aspeed/aspeed-g4/defconfig @@ -141,6 +141,7 @@ CONFIG_I2C_MUX_PCA9541=y CONFIG_I2C_MUX_PCA954x=y CONFIG_I2C_ASPEED=y CONFIG_I2C_FSI=y +CONFIG_SPI=y CONFIG_GPIOLIB=y CONFIG_GPIO_SYSFS=y CONFIG_GPIO_ASPEED=y diff --git a/Contrib-Inspur/openbmc/meta-aspeed/recipes-kernel/linux/linux-aspeed/aspeed-g5/defconfig b/Contrib-Inspur/openbmc/meta-aspeed/recipes-kernel/linux/linux-aspeed/aspeed-g5/defconfig old mode 100755 new mode 100644 index 209ed49f..d189de89 --- a/Contrib-Inspur/openbmc/meta-aspeed/recipes-kernel/linux/linux-aspeed/aspeed-g5/defconfig +++ b/Contrib-Inspur/openbmc/meta-aspeed/recipes-kernel/linux/linux-aspeed/aspeed-g5/defconfig @@ -3,6 +3,8 @@ CONFIG_KERNEL_XZ=y CONFIG_SYSVIPC=y CONFIG_NO_HZ_IDLE=y CONFIG_HIGH_RES_TIMERS=y +CONFIG_PSI=y +CONFIG_PSI_DEFAULT_DISABLED=y CONFIG_IKCONFIG=y CONFIG_IKCONFIG_PROC=y CONFIG_LOG_BUF_SHIFT=16 @@ -138,10 +140,12 @@ CONFIG_ASPEED_BT_IPMI_BMC=y CONFIG_HW_RANDOM_TIMERIOMEM=y # CONFIG_I2C_COMPAT is not set CONFIG_I2C_CHARDEV=y +CONFIG_I2C_MUX=y CONFIG_I2C_MUX_PCA9541=y CONFIG_I2C_MUX_PCA954x=y CONFIG_I2C_ASPEED=y CONFIG_I2C_FSI=y +CONFIG_SPI=y CONFIG_GPIOLIB=y CONFIG_GPIO_SYSFS=y CONFIG_GPIO_ASPEED=y diff --git a/Contrib-Inspur/openbmc/meta-aspeed/recipes-kernel/linux/linux-aspeed/aspeed-g6/defconfig b/Contrib-Inspur/openbmc/meta-aspeed/recipes-kernel/linux/linux-aspeed/aspeed-g6/defconfig new file mode 100644 index 00000000..bf6e9527 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-aspeed/recipes-kernel/linux/linux-aspeed/aspeed-g6/defconfig @@ -0,0 +1,289 @@ +CONFIG_KERNEL_XZ=y +# CONFIG_SWAP is not set +CONFIG_SYSVIPC=y +CONFIG_NO_HZ_IDLE=y +CONFIG_HIGH_RES_TIMERS=y +CONFIG_PSI=y +CONFIG_PSI_DEFAULT_DISABLED=y +CONFIG_IKCONFIG=y +CONFIG_IKCONFIG_PROC=y +CONFIG_LOG_BUF_SHIFT=16 +CONFIG_CGROUPS=y +CONFIG_BLK_DEV_INITRD=y +# CONFIG_RD_BZIP2 is not set +# CONFIG_RD_LZO is not set +# CONFIG_RD_LZ4 is not set +# CONFIG_UID16 is not set +# CONFIG_SYSFS_SYSCALL is not set +# CONFIG_AIO is not set +CONFIG_BPF_SYSCALL=y +CONFIG_EMBEDDED=y +CONFIG_PERF_EVENTS=y +# CONFIG_COMPAT_BRK is not set +CONFIG_SLAB=y +CONFIG_SLAB_FREELIST_RANDOM=y +CONFIG_ARCH_MULTI_V6=y +CONFIG_ARCH_ASPEED=y +CONFIG_MACH_ASPEED_G6=y +# CONFIG_CACHE_L2X0 is not set +CONFIG_SMP=y +# CONFIG_ARM_CPU_TOPOLOGY is not set +CONFIG_VMSPLIT_2G=y +CONFIG_NR_CPUS=2 +CONFIG_HIGHMEM=y +CONFIG_UACCESS_WITH_MEMCPY=y +CONFIG_SECCOMP=y +# CONFIG_ATAGS is not set +CONFIG_ZBOOT_ROM_TEXT=0x0 +CONFIG_ZBOOT_ROM_BSS=0x0 +CONFIG_KEXEC=y +CONFIG_VFP=y +CONFIG_NEON=y +CONFIG_KERNEL_MODE_NEON=y +CONFIG_FIRMWARE_MEMMAP=y +CONFIG_JUMP_LABEL=y +# CONFIG_BLK_DEV_BSG is not set +# CONFIG_BLK_DEBUG_FS is not set +# CONFIG_MQ_IOSCHED_DEADLINE is not set +# CONFIG_MQ_IOSCHED_KYBER is not set +# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set +# CONFIG_COMPACTION is not set +CONFIG_NET=y +CONFIG_PACKET=y +CONFIG_PACKET_DIAG=y +CONFIG_UNIX=y +CONFIG_UNIX_DIAG=y +CONFIG_INET=y +CONFIG_IP_MULTICAST=y +CONFIG_IP_ADVANCED_ROUTER=y +CONFIG_IP_MULTIPLE_TABLES=y +CONFIG_IP_ROUTE_MULTIPATH=y +CONFIG_IP_ROUTE_VERBOSE=y +CONFIG_SYN_COOKIES=y +# CONFIG_INET_DIAG is not set +CONFIG_IPV6_ROUTER_PREF=y +CONFIG_IPV6_ROUTE_INFO=y +CONFIG_IPV6_OPTIMISTIC_DAD=y +CONFIG_IPV6_MULTIPLE_TABLES=y +CONFIG_NETFILTER=y +# CONFIG_NETFILTER_ADVANCED is not set +CONFIG_VLAN_8021Q=y +CONFIG_NET_NCSI=y +# CONFIG_WIRELESS is not set +CONFIG_DEVTMPFS=y +CONFIG_DEVTMPFS_MOUNT=y +# CONFIG_PREVENT_FIRMWARE_BUILD is not set +CONFIG_MTD=y +CONFIG_MTD_BLOCK=y +CONFIG_MTD_PARTITIONED_MASTER=y +CONFIG_MTD_SPI_NOR=y +# CONFIG_MTD_SPI_NOR_USE_4K_SECTORS is not set +CONFIG_SPI_ASPEED_SMC=y +CONFIG_MTD_UBI=y +CONFIG_MTD_UBI_FASTMAP=y +CONFIG_MTD_UBI_BLOCK=y +CONFIG_BLK_DEV_LOOP=y +CONFIG_BLK_DEV_NBD=y +CONFIG_EEPROM_AT24=y +CONFIG_MD=y +CONFIG_BLK_DEV_DM=y +CONFIG_DM_VERITY=y +CONFIG_NETDEVICES=y +CONFIG_NETCONSOLE=y +# CONFIG_NET_VENDOR_ALACRITECH is not set +# CONFIG_NET_VENDOR_AMAZON is not set +# CONFIG_NET_VENDOR_AQUANTIA is not set +# CONFIG_NET_VENDOR_ARC is not set +# CONFIG_NET_VENDOR_AURORA is not set +# CONFIG_NET_VENDOR_BROADCOM is not set +# CONFIG_NET_VENDOR_CADENCE is not set +# CONFIG_NET_VENDOR_CAVIUM is not set +# CONFIG_NET_VENDOR_CIRRUS is not set +# CONFIG_NET_VENDOR_CORTINA is not set +# CONFIG_NET_VENDOR_EZCHIP is not set +CONFIG_FTGMAC100=y +# CONFIG_NET_VENDOR_HISILICON is not set +# CONFIG_NET_VENDOR_HUAWEI is not set +# CONFIG_NET_VENDOR_INTEL is not set +# CONFIG_NET_VENDOR_MARVELL is not set +# CONFIG_NET_VENDOR_MELLANOX is not set +# CONFIG_NET_VENDOR_MICREL is not set +# CONFIG_NET_VENDOR_MICROCHIP is not set +# CONFIG_NET_VENDOR_MICROSEMI is not set +# CONFIG_NET_VENDOR_NATSEMI is not set +# CONFIG_NET_VENDOR_NETRONOME is not set +# CONFIG_NET_VENDOR_NI is not set +# CONFIG_NET_VENDOR_QUALCOMM is not set +# CONFIG_NET_VENDOR_RENESAS is not set +# CONFIG_NET_VENDOR_ROCKER is not set +# CONFIG_NET_VENDOR_SAMSUNG is not set +# CONFIG_NET_VENDOR_SEEQ is not set +# CONFIG_NET_VENDOR_SOLARFLARE is not set +# CONFIG_NET_VENDOR_SMSC is not set +# CONFIG_NET_VENDOR_SOCIONEXT is not set +# CONFIG_NET_VENDOR_STMICRO is not set +# CONFIG_NET_VENDOR_SYNOPSYS is not set +# CONFIG_NET_VENDOR_VIA is not set +# CONFIG_NET_VENDOR_WIZNET is not set +CONFIG_BROADCOM_PHY=y +CONFIG_REALTEK_PHY=y +# CONFIG_USB_NET_DRIVERS is not set +# CONFIG_WLAN is not set +CONFIG_INPUT_EVDEV=y +# CONFIG_KEYBOARD_ATKBD is not set +CONFIG_KEYBOARD_GPIO=y +CONFIG_KEYBOARD_GPIO_POLLED=y +# CONFIG_INPUT_MOUSE is not set +# CONFIG_SERIO is not set +# CONFIG_VT is not set +# CONFIG_LEGACY_PTYS is not set +CONFIG_SERIAL_8250=y +# CONFIG_SERIAL_8250_DEPRECATED_OPTIONS is not set +CONFIG_SERIAL_8250_CONSOLE=y +CONFIG_SERIAL_8250_NR_UARTS=6 +CONFIG_SERIAL_8250_RUNTIME_UARTS=6 +CONFIG_SERIAL_8250_EXTENDED=y +CONFIG_SERIAL_8250_ASPEED_VUART=y +CONFIG_SERIAL_8250_SHARE_IRQ=y +CONFIG_SERIAL_8250_DW=y +CONFIG_SERIAL_OF_PLATFORM=y +CONFIG_ASPEED_KCS_IPMI_BMC=y +CONFIG_ASPEED_BT_IPMI_BMC=y +CONFIG_HW_RANDOM_TIMERIOMEM=y +# CONFIG_I2C_COMPAT is not set +CONFIG_I2C_CHARDEV=y +CONFIG_I2C_MUX=y +CONFIG_I2C_MUX_PCA9541=y +CONFIG_I2C_MUX_PCA954x=y +CONFIG_I2C_ASPEED=y +CONFIG_I2C_FSI=y +CONFIG_SPI=y +CONFIG_GPIOLIB=y +CONFIG_GPIO_SYSFS=y +CONFIG_GPIO_ASPEED=y +CONFIG_GPIO_PCA953X=y +CONFIG_GPIO_PCA953X_IRQ=y +CONFIG_W1=y +CONFIG_W1_MASTER_GPIO=y +CONFIG_W1_SLAVE_THERM=y +CONFIG_SENSORS_ASPEED=y +CONFIG_SENSORS_IIO_HWMON=y +CONFIG_SENSORS_LM75=y +CONFIG_SENSORS_NCT7904=y +CONFIG_SENSORS_OCC_P8_I2C=y +CONFIG_SENSORS_OCC_P9_SBE=y +CONFIG_SENSORS_PECI_CPUTEMP=y +CONFIG_SENSORS_PECI_DIMMTEMP=y +CONFIG_PMBUS=y +CONFIG_SENSORS_ADM1275=y +CONFIG_SENSORS_IBM_CFFPS=y +CONFIG_SENSORS_IR35221=y +CONFIG_SENSORS_IR38064=y +CONFIG_SENSORS_ISL68137=y +CONFIG_SENSORS_LM25066=y +CONFIG_SENSORS_MAX31785=y +CONFIG_SENSORS_UCD9000=y +CONFIG_SENSORS_UCD9200=y +CONFIG_SENSORS_TMP421=y +CONFIG_SENSORS_W83773G=y +CONFIG_WATCHDOG_SYSFS=y +CONFIG_MEDIA_SUPPORT=y +CONFIG_MEDIA_CAMERA_SUPPORT=y +CONFIG_V4L_PLATFORM_DRIVERS=y +CONFIG_VIDEO_ASPEED=y +CONFIG_DRM=y +CONFIG_DRM_ASPEED_GFX=y +CONFIG_USB=y +CONFIG_USB_ANNOUNCE_NEW_DEVICES=y +CONFIG_USB_DYNAMIC_MINORS=y +CONFIG_USB_EHCI_HCD=y +CONFIG_USB_EHCI_ROOT_HUB_TT=y +CONFIG_USB_EHCI_HCD_PLATFORM=y +CONFIG_USB_GADGET=y +CONFIG_USB_ASPEED_VHUB=y +CONFIG_USB_CONFIGFS=y +CONFIG_USB_CONFIGFS_MASS_STORAGE=y +CONFIG_USB_CONFIGFS_F_HID=y +CONFIG_MMC=y +CONFIG_MMC_SDHCI=y +CONFIG_MMC_SDHCI_PLTFM=y +CONFIG_MMC_SDHCI_OF_ASPEED=y +CONFIG_NEW_LEDS=y +CONFIG_LEDS_CLASS=y +CONFIG_LEDS_CLASS_FLASH=y +CONFIG_LEDS_GPIO=y +CONFIG_LEDS_PCA955X=y +CONFIG_LEDS_PCA955X_GPIO=y +CONFIG_LEDS_TRIGGERS=y +CONFIG_LEDS_TRIGGER_TIMER=y +CONFIG_LEDS_TRIGGER_HEARTBEAT=y +CONFIG_LEDS_TRIGGER_DEFAULT_ON=y +CONFIG_EDAC=y +# CONFIG_EDAC_LEGACY_SYSFS is not set +CONFIG_EDAC_ASPEED=y +CONFIG_RTC_CLASS=y +CONFIG_RTC_DRV_DS1307=y +CONFIG_RTC_DRV_PCF8523=y +CONFIG_RTC_DRV_RV8803=y +CONFIG_RTC_DRV_ASPEED=y +# CONFIG_VIRTIO_MENU is not set +# CONFIG_IOMMU_SUPPORT is not set +CONFIG_ASPEED_LPC_CTRL=y +CONFIG_ASPEED_LPC_SNOOP=y +CONFIG_ASPEED_P2A_CTRL=y +CONFIG_IIO=y +CONFIG_ASPEED_ADC=y +CONFIG_MAX1363=y +CONFIG_BMP280=y +CONFIG_DPS310=y +CONFIG_RAS=y +CONFIG_FSI=y +CONFIG_FSI_MASTER_HUB=y +CONFIG_FSI_MASTER_ASPEED=y +CONFIG_FSI_SCOM=y +CONFIG_FSI_SBEFIFO=y +CONFIG_FSI_OCC=y +CONFIG_PECI=y +CONFIG_PECI_ASPEED=y +CONFIG_EXT4_FS=y +CONFIG_FANOTIFY=y +CONFIG_OVERLAY_FS=y +CONFIG_TMPFS=y +CONFIG_JFFS2_FS=y +# CONFIG_JFFS2_FS_WRITEBUFFER is not set +CONFIG_JFFS2_SUMMARY=y +CONFIG_JFFS2_FS_XATTR=y +CONFIG_UBIFS_FS=y +CONFIG_SQUASHFS=y +CONFIG_SQUASHFS_XZ=y +CONFIG_SQUASHFS_ZSTD=y +# CONFIG_NETWORK_FILESYSTEMS is not set +CONFIG_HARDENED_USERCOPY=y +CONFIG_FORTIFY_SOURCE=y +CONFIG_CRYPTO_HMAC=y +CONFIG_CRYPTO_SHA256=y +CONFIG_CRYPTO_USER_API_HASH=y +# CONFIG_CRYPTO_HW is not set +# CONFIG_XZ_DEC_X86 is not set +# CONFIG_XZ_DEC_POWERPC is not set +# CONFIG_XZ_DEC_IA64 is not set +# CONFIG_XZ_DEC_SPARC is not set +CONFIG_PRINTK_TIME=y +CONFIG_DYNAMIC_DEBUG=y +CONFIG_DEBUG_INFO=y +CONFIG_DEBUG_INFO_REDUCED=y +CONFIG_DEBUG_INFO_DWARF4=y +CONFIG_GDB_SCRIPTS=y +CONFIG_STRIP_ASM_SYMS=y +CONFIG_SOFTLOCKUP_DETECTOR=y +CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC=y +CONFIG_BOOTPARAM_HUNG_TASK_PANIC=y +CONFIG_WQ_WATCHDOG=y +CONFIG_PANIC_ON_OOPS=y +CONFIG_PANIC_TIMEOUT=-1 +# CONFIG_SCHED_DEBUG is not set +CONFIG_SCHED_STACK_END_CHECK=y +CONFIG_FUNCTION_TRACER=y +# CONFIG_RUNTIME_TESTING_MENU is not set +CONFIG_DEBUG_WX=y +CONFIG_DEBUG_USER=y diff --git a/Contrib-Inspur/openbmc/meta-aspeed/recipes-kernel/linux/linux-aspeed_git.bb b/Contrib-Inspur/openbmc/meta-aspeed/recipes-kernel/linux/linux-aspeed_git.bb index 09128491..b9478393 100644 --- a/Contrib-Inspur/openbmc/meta-aspeed/recipes-kernel/linux/linux-aspeed_git.bb +++ b/Contrib-Inspur/openbmc/meta-aspeed/recipes-kernel/linux/linux-aspeed_git.bb @@ -1,6 +1,6 @@ -KBRANCH ?= "dev-5.2" -LINUX_VERSION ?= "5.2" +KBRANCH ?= "dev-5.4" +LINUX_VERSION ?= "5.4.16" -SRCREV="c01e98d1513042ae46909302c0b49a5db600e4a1" +SRCREV="86f83a82c7052073cba3db4549233e9c0641484b" require linux-aspeed.inc diff --git a/Contrib-Inspur/openbmc/meta-evb/conf/layer.conf b/Contrib-Inspur/openbmc/meta-evb/conf/layer.conf index 0aca4aac..f8f2d0e3 100644 --- a/Contrib-Inspur/openbmc/meta-evb/conf/layer.conf +++ b/Contrib-Inspur/openbmc/meta-evb/conf/layer.conf @@ -3,6 +3,3 @@ BBPATH .= ":${LAYERDIR}" BBFILE_COLLECTIONS += "evb" BBFILE_PATTERN_evb = "" - -# Provide a variable that points the base of the evb layer. -EVBBASE = '${@os.path.normpath("${LAYERDIR}/")}' diff --git a/Contrib-Inspur/openbmc/meta-evb/meta-evb-enclustra/conf/layer.conf b/Contrib-Inspur/openbmc/meta-evb/meta-evb-enclustra/conf/layer.conf index ce416b09..2520e3ce 100644 --- a/Contrib-Inspur/openbmc/meta-evb/meta-evb-enclustra/conf/layer.conf +++ b/Contrib-Inspur/openbmc/meta-evb/meta-evb-enclustra/conf/layer.conf @@ -3,4 +3,4 @@ BBPATH .= ":${LAYERDIR}" BBFILE_COLLECTIONS += "evb-enclustra" BBFILE_PATTERN_evb-enclustra = "" -LAYERSERIES_COMPAT_evb-enclustra = "sumo" +LAYERSERIES_COMPAT_evb-enclustra = "thud warrior" diff --git a/Contrib-Inspur/openbmc/meta-evb/meta-evb-enclustra/meta-evb-zx3-pm3/conf/layer.conf b/Contrib-Inspur/openbmc/meta-evb/meta-evb-enclustra/meta-evb-zx3-pm3/conf/layer.conf index 1053e773..c981f73f 100644 --- a/Contrib-Inspur/openbmc/meta-evb/meta-evb-enclustra/meta-evb-zx3-pm3/conf/layer.conf +++ b/Contrib-Inspur/openbmc/meta-evb/meta-evb-enclustra/meta-evb-zx3-pm3/conf/layer.conf @@ -7,4 +7,4 @@ BBFILES += "${LAYERDIR}/recipes-*/*/*.bb \ BBFILE_COLLECTIONS += "evb-zx3-pm3" BBFILE_PATTERN_evb-zx3-pm3 = "" -LAYERSERIES_COMPAT_evb-zx3-pm3 = "sumo" +LAYERSERIES_COMPAT_evb-zx3-pm3 = "thud warrior" diff --git a/Contrib-Inspur/openbmc/meta-evb/meta-evb-enclustra/meta-evb-zx3-pm3/recipes-phosphor/leds/evb-zx3-pm3-led-manager-config-native.bb b/Contrib-Inspur/openbmc/meta-evb/meta-evb-enclustra/meta-evb-zx3-pm3/recipes-phosphor/leds/evb-zx3-pm3-led-manager-config-native.bb index 711dcc32..64e0318a 100644 --- a/Contrib-Inspur/openbmc/meta-evb/meta-evb-enclustra/meta-evb-zx3-pm3/recipes-phosphor/leds/evb-zx3-pm3-led-manager-config-native.bb +++ b/Contrib-Inspur/openbmc/meta-evb/meta-evb-enclustra/meta-evb-zx3-pm3/recipes-phosphor/leds/evb-zx3-pm3-led-manager-config-native.bb @@ -1,7 +1,7 @@ SUMMARY = "Phosphor LED Group Management for Enclustra Mars ZX3" PR = "r1" LICENSE = "Apache-2.0" -LIC_FILES_CHKSUM = "file://${EVBBASE}/COPYING.apache-2.0;md5=34400b68072d710fecd0a2940a0d1658" +LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10" inherit native diff --git a/Contrib-Inspur/openbmc/meta-facebook/MAINTAINERS b/Contrib-Inspur/openbmc/meta-facebook/MAINTAINERS new file mode 100644 index 00000000..a27fe903 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-facebook/MAINTAINERS @@ -0,0 +1,46 @@ +How to use this list: + Find the most specific section entry (described below) that matches where + your change lives and add the reviewers (R) and maintainers (M) as + reviewers. You can use the same method to track down who knows a particular + code base best. + + Your change/query may span multiple entries; that is okay. + + If you do not find an entry that describes your request at all, someone + forgot to update this list; please at least file an issue or send an email + to a maintainer, but preferably you should just update this document. + +Description of section entries: + + Section entries are structured according to the following scheme: + + X: NAME + X: ... + . + . + . + + Where REPO_NAME is the name of the repository within the OpenBMC GitHub + organization; FILE_PATH is a file path within the repository, possibly with + wildcards; X is a tag of one of the following types: + + M: Denotes maintainer; has fields NAME ; + if omitted from an entry, assume one of the maintainers from the + MAINTAINERS entry. + R: Denotes reviewer; has fields NAME ; + these people are to be added as reviewers for a change matching the repo + path. + F: Denotes forked from an external repository; has fields URL. + + Line comments are to be denoted "# SOME COMMENT" (typical shell style + comment); it is important to follow the correct syntax and semantics as we + may want to use automated tools with this file in the future. + + A change cannot be added to an OpenBMC repository without a MAINTAINER's + approval; thus, a MAINTAINER should always be listed as a reviewer. + +START OF MAINTAINERS LIST +------------------------- + +M: Amithash Prasad +M: Patrick Williams diff --git a/Contrib-Inspur/openbmc/meta-facebook/conf/layer.conf b/Contrib-Inspur/openbmc/meta-facebook/conf/layer.conf index 3e5c15cb..bc7b5dee 100644 --- a/Contrib-Inspur/openbmc/meta-facebook/conf/layer.conf +++ b/Contrib-Inspur/openbmc/meta-facebook/conf/layer.conf @@ -6,5 +6,5 @@ BBFILES += "${LAYERDIR}/recipes-*/*/*.bb \ ${LAYERDIR}/recipes-*/*/*.bbappend" BBFILE_COLLECTIONS += "facebook-layer" -BBFILE_PATTERN_facebook-layer = "" -LAYERSERIES_COMPAT_facebook-layer = "thud warrior" +BBFILE_PATTERN_facebook-layer := "^${LAYERDIR}/" +LAYERSERIES_COMPAT_facebook-layer := "warrior zeus" diff --git a/Contrib-Inspur/openbmc/meta-facebook/meta-tiogapass/conf/layer.conf b/Contrib-Inspur/openbmc/meta-facebook/meta-tiogapass/conf/layer.conf index e0be0649..022aea9d 100644 --- a/Contrib-Inspur/openbmc/meta-facebook/meta-tiogapass/conf/layer.conf +++ b/Contrib-Inspur/openbmc/meta-facebook/meta-tiogapass/conf/layer.conf @@ -6,4 +6,6 @@ BBFILES += "${LAYERDIR}/recipes-*/*/*.bb \ ${LAYERDIR}/recipes-*/*/*.bbappend" BBFILE_COLLECTIONS += "tiogapass-layer" -BBFILE_PATTERN_tiogapass-layer = "" +BBFILE_PATTERN_tiogapass-layer := "^${LAYERDIR}/" + +LAYERSERIES_COMPAT_tiogapass-layer := "warrior zeus" diff --git a/Contrib-Inspur/openbmc/meta-facebook/meta-tiogapass/conf/machine/tiogapass.conf b/Contrib-Inspur/openbmc/meta-facebook/meta-tiogapass/conf/machine/tiogapass.conf index fa4c016b..9c7a39ae 100644 --- a/Contrib-Inspur/openbmc/meta-facebook/meta-tiogapass/conf/machine/tiogapass.conf +++ b/Contrib-Inspur/openbmc/meta-facebook/meta-tiogapass/conf/machine/tiogapass.conf @@ -6,19 +6,21 @@ UBOOT_MACHINE = "ast_g5_ncsi_config" require conf/machine/include/ast2500.inc require conf/machine/include/obmc-bsp-common.inc +SERIAL_CONSOLES = "57600;ttyS4" + OBMC_MACHINE_FEATURES += "\ obmc-phosphor-fan-mgmt \ obmc-phosphor-chassis-mgmt \ obmc-phosphor-flash-mgmt \ obmc-host-ipmi \ - obmc-host-ctl \ obmc-host-state-mgmt \ obmc-chassis-state-mgmt \ obmc-bmc-state-mgmt \ " -PREFERRED_PROVIDER_virtual/obmc-host-ctl ?= "obmc-op-control-host" +PREFERRED_PROVIDER_virtual/obmc-host-ctl ?= "" PREFERRED_PROVIDER_virtual/obmc-system-mgmt = "packagegroup-fb-apps" PREFERRED_PROVIDER_virtual/obmc-host-ipmi-hw = "phosphor-ipmi-kcs" FLASH_SIZE = "32768" VIRTUAL-RUNTIME_skeleton_workbook = "${MACHINE}-config" - +VIRTUAL-RUNTIME_obmc-host-state-manager = "x86-power-control" +VIRTUAL-RUNTIME_obmc-chassis-state-manager = "x86-power-control" diff --git a/Contrib-Inspur/openbmc/meta-facebook/meta-tiogapass/recipes-extended/rsyslog/rsyslog/rotate-event-logs.service b/Contrib-Inspur/openbmc/meta-facebook/meta-tiogapass/recipes-extended/rsyslog/rsyslog/rotate-event-logs.service new file mode 100644 index 00000000..fdeefd41 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-facebook/meta-tiogapass/recipes-extended/rsyslog/rsyslog/rotate-event-logs.service @@ -0,0 +1,9 @@ +[Unit] +Description=Rotates the event logs + +[Service] +Type=oneshot +ExecStart=/usr/sbin/logrotate /etc/logrotate.d/logrotate.rsyslog + +[Install] +WantedBy=multi-user.target diff --git a/Contrib-Inspur/openbmc/meta-facebook/meta-tiogapass/recipes-extended/rsyslog/rsyslog/rotate-event-logs.timer b/Contrib-Inspur/openbmc/meta-facebook/meta-tiogapass/recipes-extended/rsyslog/rsyslog/rotate-event-logs.timer new file mode 100644 index 00000000..148f8e4a --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-facebook/meta-tiogapass/recipes-extended/rsyslog/rsyslog/rotate-event-logs.timer @@ -0,0 +1,8 @@ +[Unit] +Description=Run rotate-event-logs.service every minute + +[Timer] +OnCalendar=*-*-* *:*:00 + +[Install] +WantedBy=timers.target diff --git a/Contrib-Inspur/openbmc/meta-facebook/meta-tiogapass/recipes-extended/rsyslog/rsyslog/rsyslog.conf b/Contrib-Inspur/openbmc/meta-facebook/meta-tiogapass/recipes-extended/rsyslog/rsyslog/rsyslog.conf new file mode 100644 index 00000000..3aae03f3 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-facebook/meta-tiogapass/recipes-extended/rsyslog/rsyslog/rsyslog.conf @@ -0,0 +1,36 @@ +# if you experience problems, check +# http://www.rsyslog.com/troubleshoot for assistance + +# rsyslog v3: load input modules +# If you do not load inputs, nothing happens! +# You may need to set the module load path if modules are not found. +# +# Ported from debian's sysklogd.conf + +# Journal-style logging +# Limit to no more than 2000 entries in one minute and enable the +# journal workaround to avoid duplicate entries +module(load="imjournal" StateFile="/var/log/state" + RateLimit.Interval="60" + RateLimit.Burst="2000") + +# Template for Redfish messages +# " ," +template(name="IPMISELTemplate" type="list") { + property(name="timereported" dateFormat="rfc3339") + constant(value=" ") + property(name="$!IPMISEL_MESSAGE_ID") + constant(value=", ") + property(name="$!IPMISEL_MESSAGE_ARGS") + constant(value="\n") +} + +# If the journal entry has a Redfish MessageId, save as a Redfish event +if ($!IPMISEL_MESSAGE_ID != "") then { + action(type="omfile" file="/var/log/ipmi_sel" template="IPMISELTemplate") +} + +# +# Include all config files in /etc/rsyslog.d/ +# +$IncludeConfig /etc/rsyslog.d/*.conf diff --git a/Contrib-Inspur/openbmc/meta-facebook/meta-tiogapass/recipes-extended/rsyslog/rsyslog/rsyslog.logrotate b/Contrib-Inspur/openbmc/meta-facebook/meta-tiogapass/recipes-extended/rsyslog/rsyslog/rsyslog.logrotate new file mode 100644 index 00000000..9eddafa1 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-facebook/meta-tiogapass/recipes-extended/rsyslog/rsyslog/rsyslog.logrotate @@ -0,0 +1,12 @@ +# /etc/logrotate.d/rsyslog - Ported from Debian + +# Keep up to four 64k files for ipmi_sel (256k total) +/var/log/ipmi_sel +{ + rotate 3 + size 64k + missingok + postrotate + systemctl reload rsyslog 2> /dev/null || true + endscript +} diff --git a/Contrib-Inspur/openbmc/meta-facebook/meta-tiogapass/recipes-extended/rsyslog/rsyslog_%.bbappend b/Contrib-Inspur/openbmc/meta-facebook/meta-tiogapass/recipes-extended/rsyslog/rsyslog_%.bbappend new file mode 100644 index 00000000..03a81e2c --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-facebook/meta-tiogapass/recipes-extended/rsyslog/rsyslog_%.bbappend @@ -0,0 +1,25 @@ +FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:" + +# Pin to rsyslog v8.1904.0 for now +# v8.1903.0 has a couple issues with the imjournal module: +# 1. Enabling the "WorkAroundJournalBug" option causes rsyslogd to fail to start +# 2. Logging data especially while rotating the journal causes a double free error +PV = "8.1904.0" +SRC_URI[md5sum] = "b9398b5aa68a829bf2c18a87490d30c0" +SRC_URI[sha256sum] = "7098b459dfc3f8bfc35d5b114c56e7945614ba76efa4e513b1db9c38b0ff9c3d" + +SRC_URI += "file://rsyslog.conf \ + file://rsyslog.logrotate \ + file://rotate-event-logs.service \ + file://rotate-event-logs.timer \ +" + +PACKAGECONFIG_append = " imjournal" + +do_install_append() { + install -m 0644 ${WORKDIR}/rotate-event-logs.service ${D}${systemd_system_unitdir} + install -m 0644 ${WORKDIR}/rotate-event-logs.timer ${D}${systemd_system_unitdir} + rm ${D}${sysconfdir}/rsyslog.d/imjournal.conf +} + +SYSTEMD_SERVICE_${PN} += " rotate-event-logs.service rotate-event-logs.timer" diff --git a/Contrib-Inspur/openbmc/meta-facebook/meta-tiogapass/recipes-fbtp/fb-powerctrl/files/host-gpio.service b/Contrib-Inspur/openbmc/meta-facebook/meta-tiogapass/recipes-fbtp/fb-powerctrl/files/host-gpio.service index 00c116b7..82ba12e8 100644 --- a/Contrib-Inspur/openbmc/meta-facebook/meta-tiogapass/recipes-fbtp/fb-powerctrl/files/host-gpio.service +++ b/Contrib-Inspur/openbmc/meta-facebook/meta-tiogapass/recipes-fbtp/fb-powerctrl/files/host-gpio.service @@ -1,5 +1,5 @@ [Unit] -Description=Configure GPIOs for Host Power Control +Description=Configure GPIOs for Tiogapass [Service] Restart=no diff --git a/Contrib-Inspur/openbmc/meta-facebook/meta-tiogapass/recipes-fbtp/fb-powerctrl/files/power-util b/Contrib-Inspur/openbmc/meta-facebook/meta-tiogapass/recipes-fbtp/fb-powerctrl/files/power-util index a2261fb8..c587bcf8 100755 --- a/Contrib-Inspur/openbmc/meta-facebook/meta-tiogapass/recipes-fbtp/fb-powerctrl/files/power-util +++ b/Contrib-Inspur/openbmc/meta-facebook/meta-tiogapass/recipes-fbtp/fb-powerctrl/files/power-util @@ -5,44 +5,28 @@ function usage() { echo " power-util sled-cycle" } -GPIO_BASE=$(cat /sys/class/gpio/gpio*/base) -PWR_GPIO=$(($GPIO_BASE + 32 + 3)) -BMC_RDY_GPIO=$(($GPIO_BASE + 144 +1)) -PWR_GOOD=$(($GPIO_BASE + 8 + 6)) -PWR_RESET=$(($GPIO_BASE + 33)) - power_off() { echo "Shutting down Server $2" - echo 1 > /sys/class/gpio/gpio${PWR_GPIO}/value - sleep 1 - echo 0 > /sys/class/gpio/gpio${PWR_GPIO}/value - sleep 6 - echo 1 > /sys/class/gpio/gpio${PWR_GPIO}/value + busctl set-property xyz.openbmc_project.State.Chassis /xyz/openbmc_project/state/chassis0 xyz.openbmc_project.State.Chassis RequestedPowerTransition s xyz.openbmc_project.State.Chassis.Transition.Off } power_on() { echo "Powering on Server $2" - echo 0 > /sys/class/gpio/gpio${BMC_RDY_GPIO}/value - echo 1 > /sys/class/gpio/gpio${PWR_GPIO}/value - echo 0 > /sys/class/gpio/gpio${PWR_GPIO}/value - sleep 1 - echo 1 > /sys/class/gpio/gpio${PWR_GPIO}/value + busctl set-property xyz.openbmc_project.State.Chassis /xyz/openbmc_project/state/chassis0 xyz.openbmc_project.State.Chassis RequestedPowerTransition s xyz.openbmc_project.State.Chassis.Transition.On } power_status() { - st=$(cat /sys/class/gpio/gpio${PWR_GOOD}/value) - if [ "$st" == "0" ]; then - echo "off" - else + st=$(busctl get-property xyz.openbmc_project.State.Chassis /xyz/openbmc_project/state/chassis0 xyz.openbmc_project.State.Chassis CurrentPowerState | cut -d"." -f6) + if [ "$st" == "On\"" ]; then echo "on" + else + echo "off" fi } power_reset() { echo "Reset on server $2" - echo 0 > /sys/class/gpio/gpio${PWR_RESET}/value - sleep 0.1 - echo 1 > /sys/class/gpio/gpio${PWR_RESET}/value + busctl set-property xyz.openbmc_project.State.Chassis /xyz/openbmc_project/state/chassis0 xyz.openbmc_project.State.Chassis RequestedPowerTransition s xyz.openbmc_project.State.Chassis.Transition.Reset } sled_cycle() { diff --git a/Contrib-Inspur/openbmc/meta-facebook/meta-tiogapass/recipes-fbtp/fb-powerctrl/files/setup_gpio.sh b/Contrib-Inspur/openbmc/meta-facebook/meta-tiogapass/recipes-fbtp/fb-powerctrl/files/setup_gpio.sh index 1b1b2e3f..2624abd0 100755 --- a/Contrib-Inspur/openbmc/meta-facebook/meta-tiogapass/recipes-fbtp/fb-powerctrl/files/setup_gpio.sh +++ b/Contrib-Inspur/openbmc/meta-facebook/meta-tiogapass/recipes-fbtp/fb-powerctrl/files/setup_gpio.sh @@ -14,25 +14,9 @@ function set_gpio_active_low() { GPIO_BASE=$(cat /sys/class/gpio/gpio*/base) # FM_BMC_READY_N, GPIO S1, active low -set_gpio_active_low $((${GPIO_BASE} + 144 +1)) high - -# FM_BMC_SSB_SMI_LPC_N, GPIO Q6, active low -#set_gpio_active_low $((${GPIO_BASE} + 128 + 6)) high - -# FP_PWR_BTN_PASS_R_N, GPIO E3, active low -set_gpio_active_low $((${GPIO_BASE} + 32 + 3)) high - -# FP_PWR_GOOD, GPIO B6, active low -set_gpio_active_low $((${GPIO_BASE} + 8 + 6)) in - -# SYSRST_BTN_OUT_N, GPIO E1, active low -set_gpio_active_low $((${GPIO_BASE} + 32 + 1)) high +set_gpio_active_low $((${GPIO_BASE} + 144 +1)) low # FP_PECI_MUX, active low set_gpio_active_low $((${GPIO_BASE} + 212)) high -# Set PECI Mux to high to select Peci interface -echo 1 > /sys/class/gpio/gpio$((${GPIO_BASE} + 212))/value - - exit 0; diff --git a/Contrib-Inspur/openbmc/meta-facebook/meta-tiogapass/recipes-fbtp/ipmi/fb-ipmi-oem_git.bb b/Contrib-Inspur/openbmc/meta-facebook/meta-tiogapass/recipes-fbtp/ipmi/fb-ipmi-oem_git.bb index 7c0663ab..77d1e457 100755 --- a/Contrib-Inspur/openbmc/meta-facebook/meta-tiogapass/recipes-fbtp/ipmi/fb-ipmi-oem_git.bb +++ b/Contrib-Inspur/openbmc/meta-facebook/meta-tiogapass/recipes-fbtp/ipmi/fb-ipmi-oem_git.bb @@ -5,7 +5,7 @@ LICENSE = "Apache-2.0" LIC_FILES_CHKSUM = "file://LICENSE;md5=9e69ba356fa59848ffd865152a3ccc13" SRC_URI = "git://github.com/openbmc/fb-ipmi-oem" -SRCREV = "1b6fae3f3a3d0cd4e1c813a492e19d7edb55b4e9" +SRCREV = "317999d3ac917654950e1288171b0cd546754880" S = "${WORKDIR}/git" PV = "0.1+git${SRCPV}" @@ -21,6 +21,10 @@ LIBRARY_NAMES = "libzfboemcmds.so" HOSTIPMI_PROVIDER_LIBRARY += "${LIBRARY_NAMES}" NETIPMI_PROVIDER_LIBRARY += "${LIBRARY_NAMES}" +FILES_${PN}_append = " ${datadir}/lcd-debug/post_desc.json" +FILES_${PN}_append = " ${datadir}/lcd-debug/gpio_desc.json" +FILES_${PN}_append = " ${datadir}/lcd-debug/cri_sensors.json" + FILES_${PN}_append = " ${libdir}/ipmid-providers/lib*${SOLIBS}" FILES_${PN}_append = " ${libdir}/host-ipmid/lib*${SOLIBS}" FILES_${PN}_append = " ${libdir}/net-ipmid/lib*${SOLIBS}" diff --git a/Contrib-Inspur/openbmc/meta-facebook/meta-tiogapass/recipes-fbtp/packagegroups/packagegroup-fb-apps.bb b/Contrib-Inspur/openbmc/meta-facebook/meta-tiogapass/recipes-fbtp/packagegroups/packagegroup-fb-apps.bb index b6693e08..a5dae1d9 100644 --- a/Contrib-Inspur/openbmc/meta-facebook/meta-tiogapass/recipes-fbtp/packagegroups/packagegroup-fb-apps.bb +++ b/Contrib-Inspur/openbmc/meta-facebook/meta-tiogapass/recipes-fbtp/packagegroups/packagegroup-fb-apps.bb @@ -20,4 +20,9 @@ RDEPENDS_${PN}-system = " \ phosphor-ipmi-ipmb \ fb-ipmi-oem \ phosphor-pid-control \ + phosphor-hostlogger \ + phosphor-sel-logger \ + ipmitool \ + phosphor-post-code-manager \ + phosphor-host-postd \ " diff --git a/Contrib-Inspur/openbmc/meta-facebook/meta-tiogapass/recipes-phosphor/console/obmc-console/obmc-console.conf b/Contrib-Inspur/openbmc/meta-facebook/meta-tiogapass/recipes-phosphor/console/obmc-console/obmc-console.conf new file mode 100644 index 00000000..94f1dff8 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-facebook/meta-tiogapass/recipes-phosphor/console/obmc-console/obmc-console.conf @@ -0,0 +1,2 @@ +local-tty = ttyS2 +baud = 57600 diff --git a/Contrib-Inspur/openbmc/meta-facebook/meta-tiogapass/recipes-phosphor/console/obmc-console_%.bbappend b/Contrib-Inspur/openbmc/meta-facebook/meta-tiogapass/recipes-phosphor/console/obmc-console_%.bbappend new file mode 100644 index 00000000..24b52d73 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-facebook/meta-tiogapass/recipes-phosphor/console/obmc-console_%.bbappend @@ -0,0 +1,2 @@ +FILESEXTRAPATHS_prepend_tiogapass := "${THISDIR}/${PN}:" +OBMC_CONSOLE_HOST_TTY = "ttyS2" diff --git a/Contrib-Inspur/openbmc/meta-facebook/meta-tiogapass/recipes-phosphor/ipmi/phosphor-ipmi-config/channel_config.json b/Contrib-Inspur/openbmc/meta-facebook/meta-tiogapass/recipes-phosphor/ipmi/phosphor-ipmi-config/channel_config.json index 7964e6fa..eea3b4e2 100644 --- a/Contrib-Inspur/openbmc/meta-facebook/meta-tiogapass/recipes-phosphor/ipmi/phosphor-ipmi-config/channel_config.json +++ b/Contrib-Inspur/openbmc/meta-facebook/meta-tiogapass/recipes-phosphor/ipmi/phosphor-ipmi-config/channel_config.json @@ -11,4 +11,28 @@ "is_ipmi" : true } }, + "1" : { + "name" : "eth0", + "is_valid" : true, + "active_sessions" : 0, + "max_transfer_size" : 256, + "channel_info" : { + "medium_type" : "lan-802.3", + "protocol_type" : "ipmb-1.0", + "session_supported" : "multi-session", + "is_ipmi" : true + } + }, + "8" : { + "name" : "INTRABMC", + "is_valid" : true, + "active_sessions" : 0, + "max_transfer_size" : 256, + "channel_info" : { + "medium_type" : "oem", + "protocol_type" : "oem", + "session_supported" : "session-less", + "is_ipmi" : true + } + } } diff --git a/Contrib-Inspur/openbmc/meta-facebook/meta-tiogapass/recipes-phosphor/ipmi/phosphor-ipmi-ipmb/ipmb-channels.json b/Contrib-Inspur/openbmc/meta-facebook/meta-tiogapass/recipes-phosphor/ipmi/phosphor-ipmi-ipmb/ipmb-channels.json index 03f284e4..690f9e73 100644 --- a/Contrib-Inspur/openbmc/meta-facebook/meta-tiogapass/recipes-phosphor/ipmi/phosphor-ipmi-ipmb/ipmb-channels.json +++ b/Contrib-Inspur/openbmc/meta-facebook/meta-tiogapass/recipes-phosphor/ipmi/phosphor-ipmi-ipmb/ipmb-channels.json @@ -2,15 +2,13 @@ "channels": [ { "type": "me", - "master-path": "/dev/i2c-4", - "slave-path": "/sys/bus/i2c/devices/4-1010/slave-mqueue", + "slave-path": "/dev/ipmb-4", "bmc-addr": 32, "remote-addr": 44 }, { "type": "ipmb", - "master-path": "/dev/i2c-9", - "slave-path": "/sys/bus/i2c/devices/9-1010/slave-mqueue", + "slave-path": "/dev/ipmb-9", "bmc-addr": 32, "remote-addr": 96 } diff --git a/Contrib-Inspur/openbmc/meta-facebook/meta-tiogapass/recipes-phosphor/ipmi/phosphor-ipmi-ipmb_%.bbappend b/Contrib-Inspur/openbmc/meta-facebook/meta-tiogapass/recipes-phosphor/ipmi/phosphor-ipmi-ipmb_%.bbappend index 8a58a2da..b3205aff 100644 --- a/Contrib-Inspur/openbmc/meta-facebook/meta-tiogapass/recipes-phosphor/ipmi/phosphor-ipmi-ipmb_%.bbappend +++ b/Contrib-Inspur/openbmc/meta-facebook/meta-tiogapass/recipes-phosphor/ipmi/phosphor-ipmi-ipmb_%.bbappend @@ -1 +1,8 @@ FILESEXTRAPATHS_prepend_tiogapass := "${THISDIR}/${PN}:" + +SRC_URI_append_tiogapass = " file://ipmb-channels.json" + +do_install_append_tiogapass(){ + install -m 0644 -D ${WORKDIR}/ipmb-channels.json \ + ${D}/usr/share/ipmbbridge +} diff --git a/Contrib-Inspur/openbmc/meta-facebook/meta-tiogapass/recipes-phosphor/sel-logger/phosphor-sel-logger_%.bbappend b/Contrib-Inspur/openbmc/meta-facebook/meta-tiogapass/recipes-phosphor/sel-logger/phosphor-sel-logger_%.bbappend new file mode 100644 index 00000000..4948cb4c --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-facebook/meta-tiogapass/recipes-phosphor/sel-logger/phosphor-sel-logger_%.bbappend @@ -0,0 +1,3 @@ +# Enable threshold monitoring +EXTRA_OECMAKE += "-DSEL_LOGGER_MONITOR_THRESHOLD_EVENTS=ON" +EXTRA_OECMAKE += "-DREDFISH_LOG_MONITOR_PULSE_EVENTS=ON" diff --git a/Contrib-Inspur/openbmc/meta-facebook/meta-tiogapass/recipes-phosphor/watchdog/phosphor-watchdog/phosphor-watchdog-host-cycle.service b/Contrib-Inspur/openbmc/meta-facebook/meta-tiogapass/recipes-phosphor/watchdog/phosphor-watchdog/phosphor-watchdog-host-cycle.service new file mode 100644 index 00000000..3a22e56b --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-facebook/meta-tiogapass/recipes-phosphor/watchdog/phosphor-watchdog/phosphor-watchdog-host-cycle.service @@ -0,0 +1,12 @@ +[Unit] +Description=Power Cycle Host Server +Requires=host-gpio.service +After=host-gpio.service + +[Service] +Type=oneshot +ExecStart=busctl set-property xyz.openbmc_project.State.Chassis /xyz/openbmc_project/state/chassis0 xyz.openbmc_project.State.Chassis RequestedPowerTransition s xyz.openbmc_project.State.Chassis.Transition.Off +ExecStart=busctl set-property xyz.openbmc_project.Control.Host.RestartCause /xyz/openbmc_project/control/host0/restart_cause xyz.openbmc_project.Control.Host.RestartCause RequestedRestartCause s xyz.openbmc_project.State.Host.RestartCause.WatchdogTimer +ExecStart=sleep 6 +ExecStart=busctl set-property xyz.openbmc_project.State.Chassis /xyz/openbmc_project/state/chassis0 xyz.openbmc_project.State.Chassis RequestedPowerTransition s xyz.openbmc_project.State.Chassis.Transition.On +SyslogIdentifier=phosphor-watchdog diff --git a/Contrib-Inspur/openbmc/meta-facebook/meta-tiogapass/recipes-phosphor/watchdog/phosphor-watchdog/phosphor-watchdog-host-poweroff.service b/Contrib-Inspur/openbmc/meta-facebook/meta-tiogapass/recipes-phosphor/watchdog/phosphor-watchdog/phosphor-watchdog-host-poweroff.service new file mode 100644 index 00000000..ddcb9dc6 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-facebook/meta-tiogapass/recipes-phosphor/watchdog/phosphor-watchdog/phosphor-watchdog-host-poweroff.service @@ -0,0 +1,9 @@ +[Unit] +Description=Shutdown Host Server +Requires=host-gpio.service +After=host-gpio.service + +[Service] +Type=oneshot +ExecStart=busctl set-property xyz.openbmc_project.State.Chassis /xyz/openbmc_project/state/chassis0 xyz.openbmc_project.State.Chassis RequestedPowerTransition s xyz.openbmc_project.State.Chassis.Transition.Off +SyslogIdentifier=phosphor-watchdog diff --git a/Contrib-Inspur/openbmc/meta-facebook/meta-tiogapass/recipes-phosphor/watchdog/phosphor-watchdog/phosphor-watchdog-host-reset.service b/Contrib-Inspur/openbmc/meta-facebook/meta-tiogapass/recipes-phosphor/watchdog/phosphor-watchdog/phosphor-watchdog-host-reset.service new file mode 100644 index 00000000..f0f03a1c --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-facebook/meta-tiogapass/recipes-phosphor/watchdog/phosphor-watchdog/phosphor-watchdog-host-reset.service @@ -0,0 +1,10 @@ +[Unit] +Description=Reset Host Server +Requires=host-gpio.service +After=host-gpio.service + +[Service] +Type=oneshot +ExecStart=busctl set-property xyz.openbmc_project.State.Chassis /xyz/openbmc_project/state/chassis0 xyz.openbmc_project.State.Chassis RequestedPowerTransition s xyz.openbmc_project.State.Chassis.Transition.Reset +ExecStart=busctl set-property xyz.openbmc_project.Control.Host.RestartCause /xyz/openbmc_project/control/host0/restart_cause xyz.openbmc_project.Control.Host.RestartCause RequestedRestartCause s xyz.openbmc_project.State.Host.RestartCause.WatchdogTimer +SyslogIdentifier=phosphor-watchdog diff --git a/Contrib-Inspur/openbmc/meta-facebook/meta-tiogapass/recipes-phosphor/watchdog/phosphor-watchdog/phosphor-watchdog.service b/Contrib-Inspur/openbmc/meta-facebook/meta-tiogapass/recipes-phosphor/watchdog/phosphor-watchdog/phosphor-watchdog.service new file mode 100644 index 00000000..f7e93b82 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-facebook/meta-tiogapass/recipes-phosphor/watchdog/phosphor-watchdog/phosphor-watchdog.service @@ -0,0 +1,16 @@ +[Unit] +Description=Phosphor Watchdog + +[Service] +ExecStart=/usr/bin/env phosphor-watchdog --continue --service=xyz.openbmc_project.Watchdog \ + --path=/xyz/openbmc_project/watchdog/host0 \ + --action_target=xyz.openbmc_project.State.Watchdog.Action.HardReset=phosphor-watchdog-host-reset.service \ + --action_target=xyz.openbmc_project.State.Watchdog.Action.PowerOff=host-phosphor-watchdog-host-poweroff.service \ + --action_target=xyz.openbmc_project.State.Watchdog.Action.PowerCycle=phosphor-watchdog-host-cycle.service \ + +SyslogIdentifier=phosphor-watchdog +BusName =xyz.openbmc_project.Watchdog +Type=dbus + +[Install] +WantedBy=basic.target diff --git a/Contrib-Inspur/openbmc/meta-facebook/meta-tiogapass/recipes-phosphor/watchdog/phosphor-watchdog_%.bbappend b/Contrib-Inspur/openbmc/meta-facebook/meta-tiogapass/recipes-phosphor/watchdog/phosphor-watchdog_%.bbappend new file mode 100644 index 00000000..b0dcd093 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-facebook/meta-tiogapass/recipes-phosphor/watchdog/phosphor-watchdog_%.bbappend @@ -0,0 +1,5 @@ +FILESEXTRAPATHS_append := ":${THISDIR}/${PN}" + +# Remove the override to keep service running after DC cycle +SYSTEMD_OVERRIDE_${PN}_remove = "poweron.conf:phosphor-watchdog@poweron.service.d/poweron.conf" +SYSTEMD_SERVICE_${PN} = "phosphor-watchdog.service phosphor-watchdog-host-poweroff.service phosphor-watchdog-host-reset.service phosphor-watchdog-host-cycle.service" diff --git a/Contrib-Inspur/openbmc/meta-facebook/meta-yosemitev2/conf/bblayers.conf.sample b/Contrib-Inspur/openbmc/meta-facebook/meta-yosemitev2/conf/bblayers.conf.sample new file mode 100644 index 00000000..4e094efb --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-facebook/meta-yosemitev2/conf/bblayers.conf.sample @@ -0,0 +1,35 @@ +# LAYER_CONF_VERSION is increased each time build/conf/bblayers.conf +# changes incompatibly +LCONF_VERSION = "8" + +BBPATH = "${TOPDIR}" +BBFILES ?= "" + +BBLAYERS ?= " \ + ##OEROOT##/meta \ + ##OEROOT##/meta-poky \ + ##OEROOT##/meta-openembedded/meta-oe \ + ##OEROOT##/meta-openembedded/meta-networking \ + ##OEROOT##/meta-openembedded/meta-perl \ + ##OEROOT##/meta-openembedded/meta-python \ + ##OEROOT##/meta-openembedded/meta-webserver \ + ##OEROOT##/meta-phosphor \ + ##OEROOT##/meta-aspeed \ + ##OEROOT##/meta-openpower \ + ##OEROOT##/meta-facebook \ + ##OEROOT##/meta-facebook/meta-yosemitev2 \ + " +BBLAYERS_NON_REMOVABLE ?= " \ + ##OEROOT##/meta \ + ##OEROOT##/meta-poky \ + ##OEROOT##/meta-openembedded/meta-oe \ + ##OEROOT##/meta-openembedded/meta-networking \ + ##OEROOT##/meta-openembedded/meta-perl \ + ##OEROOT##/meta-openembedded/meta-python \ + ##OEROOT##/meta-openembedded/meta-webserver \ + ##OEROOT##/meta-phosphor \ + ##OEROOT##/meta-aspeed \ + ##OEROOT##/meta-openpower \ + ##OEROOT##/meta-facebook \ + ##OEROOT##/meta-facebook/meta-yosemitev2 \ + " diff --git a/Contrib-Inspur/openbmc/meta-ibm/meta-z/conf/conf-notes.txt b/Contrib-Inspur/openbmc/meta-facebook/meta-yosemitev2/conf/conf-notes.txt similarity index 100% rename from Contrib-Inspur/openbmc/meta-ibm/meta-z/conf/conf-notes.txt rename to Contrib-Inspur/openbmc/meta-facebook/meta-yosemitev2/conf/conf-notes.txt diff --git a/Contrib-Inspur/openbmc/meta-facebook/meta-yosemitev2/conf/layer.conf b/Contrib-Inspur/openbmc/meta-facebook/meta-yosemitev2/conf/layer.conf new file mode 100644 index 00000000..4c4571a6 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-facebook/meta-yosemitev2/conf/layer.conf @@ -0,0 +1,11 @@ +# We have a conf and classes directory, add to BBPATH +BBPATH .= ":${LAYERDIR}" + +# We have recipes-* directories, add to BBFILES +BBFILES += "${LAYERDIR}/recipes-*/*/*.bb \ + ${LAYERDIR}/recipes-*/*/*.bbappend" + +BBFILE_COLLECTIONS += "yosemitev2-layer" +BBFILE_PATTERN_yosemitev2-layer := "^${LAYERDIR}/" + +LAYERSERIES_COMPAT_tiogapass-layer := "warrior zeus" diff --git a/Contrib-Inspur/openbmc/meta-facebook/meta-yosemitev2/conf/local.conf.sample b/Contrib-Inspur/openbmc/meta-facebook/meta-yosemitev2/conf/local.conf.sample new file mode 100644 index 00000000..cbbcb84e --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-facebook/meta-yosemitev2/conf/local.conf.sample @@ -0,0 +1,223 @@ +# +# This file is your local configuration file and is where all local user settings +# are placed. The comments in this file give some guide to the options a new user +# to the system might want to change but pretty much any configuration option can +# be set in this file. +# +# Lines starting with the '#' character are commented out and in some cases the +# default values are provided as comments to show people example syntax. Enabling +# the option is a question of removing the # character and making any change to the +# variable as required. + +# +# Machine Selection +# +MACHINE ??= "yosemitev2" + +# +# Where to place downloads +# +# During a first build the system will download many different source code tarballs +# from various upstream projects. This can take a while, particularly if your network +# connection is slow. These are all stored in DL_DIR. When wiping and rebuilding you +# can preserve this directory to speed up this part of subsequent builds. This directory +# is safe to share between multiple builds on the same machine too. +# +# The default is a downloads directory under TOPDIR which is the build directory. +# +#DL_DIR ?= "${TOPDIR}/downloads" + +# +# Where to place shared-state files +# +# BitBake has the capability to accelerate builds based on previously built output. +# This is done using "shared state" files which can be thought of as cache objects +# and this option determines where those files are placed. +# +# You can wipe out TMPDIR leaving this directory intact and the build would regenerate +# from these files if no changes were made to the configuration. If changes were made +# to the configuration, only shared state files where the state was still valid would +# be used (done using checksums). +# +# The default is a sstate-cache directory under TOPDIR. +# +#SSTATE_DIR ?= "${TOPDIR}/sstate-cache" + +# +# Where to place the build output +# +# This option specifies where the bulk of the building work should be done and +# where BitBake should place its temporary files and output. Keep in mind that +# this includes the extraction and compilation of many applications and the toolchain +# which can use Gigabytes of hard disk space. +# +# The default is a tmp directory under TOPDIR. +# +#TMPDIR = "${TOPDIR}/tmp" + +# +# Default policy config +# +# The distribution setting controls which policy settings are used as defaults. +# The default value is fine for general Yocto project use, at least initially. +# Ultimately when creating custom policy, people will likely end up subclassing +# these defaults. +# +DISTRO ?= "openbmc-phosphor" +# As an example of a subclass there is a "bleeding" edge policy configuration +# where many versions are set to the absolute latest code from the upstream +# source control systems. This is just mentioned here as an example, its not +# useful to most new users. +# DISTRO ?= "poky-bleeding" + +# +# Package Management configuration +# +# This variable lists which packaging formats to enable. Multiple package backends +# can be enabled at once and the first item listed in the variable will be used +# to generate the root filesystems. +# Options are: +# - 'package_deb' for debian style deb files +# - 'package_ipk' for ipk files are used by opkg (a debian style embedded package manager) +# - 'package_rpm' for rpm style packages +# E.g.: PACKAGE_CLASSES ?= "package_rpm package_deb package_ipk" +# We default to rpm: +PACKAGE_CLASSES ?= "package_rpm" + +# +# SDK/ADT target architecture +# +# This variable specifies the architecture to build SDK/ADT items for and means +# you can build the SDK packages for architectures other than the machine you are +# running the build on (i.e. building i686 packages on an x86_64 host). +# Supported values are i686 and x86_64 +#SDKMACHINE ?= "i686" + +SANITY_TESTED_DISTROS_append ?= " *" + +# +# Extra image configuration defaults +# +# The EXTRA_IMAGE_FEATURES variable allows extra packages to be added to the generated +# images. Some of these options are added to certain image types automatically. The +# variable can contain the following options: +# "dbg-pkgs" - add -dbg packages for all installed packages +# (adds symbol information for debugging/profiling) +# "dev-pkgs" - add -dev packages for all installed packages +# (useful if you want to develop against libs in the image) +# "ptest-pkgs" - add -ptest packages for all ptest-enabled packages +# (useful if you want to run the package test suites) +# "tools-sdk" - add development tools (gcc, make, pkgconfig etc.) +# "tools-debug" - add debugging tools (gdb, strace) +# "eclipse-debug" - add Eclipse remote debugging support +# "tools-profile" - add profiling tools (oprofile, exmap, lttng, valgrind) +# "tools-testapps" - add useful testing tools (ts_print, aplay, arecord etc.) +# "debug-tweaks" - make an image suitable for development +# e.g. ssh root access has a blank password +# There are other application targets that can be used here too, see +# meta/classes/image.bbclass and meta/classes/core-image.bbclass for more details. +# We default to enabling the debugging tweaks. +EXTRA_IMAGE_FEATURES = "debug-tweaks" + +# +# Additional image features +# +# The following is a list of additional classes to use when building images which +# enable extra features. Some available options which can be included in this variable +# are: +# - 'buildstats' collect build statistics +# - 'image-mklibs' to reduce shared library files size for an image +# - 'image-prelink' in order to prelink the filesystem image +# - 'image-swab' to perform host system intrusion detection +# NOTE: if listing mklibs & prelink both, then make sure mklibs is before prelink +# NOTE: mklibs also needs to be explicitly enabled for a given image, see local.conf.extended +USER_CLASSES ?= "buildstats image-mklibs image-prelink" + +# +# Runtime testing of images +# +# The build system can test booting virtual machine images under qemu (an emulator) +# after any root filesystems are created and run tests against those images. To +# enable this uncomment this line. See classes/testimage(-auto).bbclass for +# further details. +#TEST_IMAGE = "1" +# +# Interactive shell configuration +# +# Under certain circumstances the system may need input from you and to do this it +# can launch an interactive shell. It needs to do this since the build is +# multithreaded and needs to be able to handle the case where more than one parallel +# process may require the user's attention. The default is iterate over the available +# terminal types to find one that works. +# +# Examples of the occasions this may happen are when resolving patches which cannot +# be applied, to use the devshell or the kernel menuconfig +# +# Supported values are auto, gnome, xfce, rxvt, screen, konsole (KDE 3.x only), none +# Note: currently, Konsole support only works for KDE 3.x due to the way +# newer Konsole versions behave +#OE_TERMINAL = "auto" +# By default disable interactive patch resolution (tasks will just fail instead): +PATCHRESOLVE = "noop" + +# +# Disk Space Monitoring during the build +# +# Monitor the disk space during the build. If there is less that 1GB of space or less +# than 100K inodes in any key build location (TMPDIR, DL_DIR, SSTATE_DIR), gracefully +# shutdown the build. If there is less that 100MB or 1K inodes, perform a hard abort +# of the build. The reason for this is that running completely out of space can corrupt +# files and damages the build in ways which may not be easily recoverable. +# It's necessary to monitor /tmp, if there is no space left the build will fail +# with very exotic errors. +BB_DISKMON_DIRS = "\ + STOPTASKS,${TMPDIR},1G,100K \ + STOPTASKS,${DL_DIR},1G,100K \ + STOPTASKS,${SSTATE_DIR},1G,100K \ + STOPTASKS,/tmp,100M,100K \ + ABORT,${TMPDIR},100M,1K \ + ABORT,${DL_DIR},100M,1K \ + ABORT,${SSTATE_DIR},100M,1K \ + ABORT,/tmp,10M,1K" + +# +# Shared-state files from other locations +# +# As mentioned above, shared state files are prebuilt cache data objects which can +# used to accelerate build time. This variable can be used to configure the system +# to search other mirror locations for these objects before it builds the data itself. +# +# This can be a filesystem directory, or a remote url such as http or ftp. These +# would contain the sstate-cache results from previous builds (possibly from other +# machines). This variable works like fetcher MIRRORS/PREMIRRORS and points to the +# cache locations to check for the shared objects. +# NOTE: if the mirror uses the same structure as SSTATE_DIR, you need to add PATH +# at the end as shown in the examples below. This will be substituted with the +# correct path within the directory structure. +#SSTATE_MIRRORS ?= "\ +#file://.* http://someserver.tld/share/sstate/PATH;downloadfilename=PATH \n \ +#file://.* file:///some/local/dir/sstate/PATH" + + +# +# Qemu configuration +# +# By default qemu will build with a builtin VNC server where graphical output can be +# seen. The two lines below enable the SDL backend too. This assumes there is a +# libsdl library available on your build system. +#PACKAGECONFIG_append_pn-qemu-native = " sdl" +#PACKAGECONFIG_append_pn-nativesdk-qemu = " sdl" +#ASSUME_PROVIDED += "libsdl-native" + + +# CONF_VERSION is increased each time build/conf/ changes incompatibly and is used to +# track the version of this file when it was generated. This can safely be ignored if +# this doesn't mean anything to you. +CONF_VERSION = "1" + +# Set the root password to '0penBmc' +INHERIT += "extrausers" + +EXTRA_USERS_PARAMS = " \ + usermod -p '\$1\$UGMqyqdG\$FZiylVFmRRfl9Z0Ue8G7e/' root; \ + " diff --git a/Contrib-Inspur/openbmc/meta-facebook/meta-yosemitev2/conf/machine/yosemitev2.conf b/Contrib-Inspur/openbmc/meta-facebook/meta-yosemitev2/conf/machine/yosemitev2.conf new file mode 100644 index 00000000..45538ab4 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-facebook/meta-yosemitev2/conf/machine/yosemitev2.conf @@ -0,0 +1,22 @@ +KMACHINE = "aspeed" +KERNEL_DEVICETREE = "${KMACHINE}-bmc-facebook-${MACHINE}.dtb" + +UBOOT_MACHINE = "ast_g5_ncsi_config" + +require conf/machine/include/ast2500.inc +require conf/machine/include/obmc-bsp-common.inc + +OBMC_MACHINE_FEATURES += "\ + obmc-phosphor-fan-mgmt \ + obmc-phosphor-chassis-mgmt \ + obmc-phosphor-flash-mgmt \ + obmc-host-ipmi \ + obmc-host-state-mgmt \ + obmc-chassis-state-mgmt \ + obmc-bmc-state-mgmt \ + " +PREFERRED_PROVIDER_virtual/obmc-host-ctl ?= "" +PREFERRED_PROVIDER_virtual/obmc-system-mgmt = "packagegroup-fb-apps" +FLASH_SIZE = "32768" +VIRTUAL-RUNTIME_skeleton_workbook = "${MACHINE}-config" + diff --git a/Contrib-Inspur/openbmc/meta-facebook/meta-yosemitev2/recipes-bsp/u-boot/u-boot-aspeed/0002-board-aspeed-Add-Mux-for-yosemitev2.patch b/Contrib-Inspur/openbmc/meta-facebook/meta-yosemitev2/recipes-bsp/u-boot/u-boot-aspeed/0002-board-aspeed-Add-Mux-for-yosemitev2.patch new file mode 100644 index 00000000..5634ce93 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-facebook/meta-yosemitev2/recipes-bsp/u-boot/u-boot-aspeed/0002-board-aspeed-Add-Mux-for-yosemitev2.patch @@ -0,0 +1,259 @@ +From c2e01a4cc220b9a1c1a6bb52e5f58bcc8d2edc55 Mon Sep 17 00:00:00 2001 +From: manikandan-e +Date: Wed, 30 Oct 2019 19:43:51 +0530 +Subject: [PATCH 2/2] board-aspeed-Add-Mux-for-yosemitev2 + +Signed-off-by: manikandan-e + +--- + arch/arm/mach-aspeed/platform_g5.S | 213 +++++++++++++++++++++++++++++++------ + 1 file changed, 183 insertions(+), 30 deletions(-) + +diff --git a/arch/arm/mach-aspeed/platform_g5.S b/arch/arm/mach-aspeed/platform_g5.S +index 2ac1ca4..c3ce077 100644 +--- a/arch/arm/mach-aspeed/platform_g5.S ++++ b/arch/arm/mach-aspeed/platform_g5.S +@@ -302,6 +302,156 @@ TIME_TABLE_DDR4_1600: + ldr r2, =0x00000800 + .endm + ++ .macro console_bmc ++ ldr r0, =0x1e780024 ++ldr r1, [r0] ++orr r1, r1, #0xF ++str r1, [r0] ++ ++ldr r0, =0x1e780020 ++ldr r1, [r0] ++and r1, r1, #0xFFFFFFF0 ++orr r1, r1, #0xC ++str r1, [r0] ++.endm ++ ++.macro console_sel ++ ++ // Disable SoL UARTs[1-4] ++ ldr r0, =0x1e6e2080 ++ ldr r1, [r0] ++ ldr r2, =0xBFBFFFFF ++ and r1, r1, r2 ++ str r1, [r0] ++ ++ ldr r0, =0x1e6e2084 ++ ldr r1, [r0] ++ and r1, r1, r2 ++ str r1, [r0] ++ // Enable GPIOE[0-3] Tolerant ++ ldr r0, =0x1e78003c ++ ldr r1, [r0] ++ orr r1, r1, #0xF ++ str r1, [r0] ++ ++ // Read debug card present ++ ldr r2, =0x1e780080 ++ ldr r0, [r2] ++ and r0, r0, #0x00000800 ++ ldr r1, =0x0800 ++ cmp r0, r1 ++ bne dbg_card_pres\@ ++ console_bmc ++ b case_end\@ ++ ++dbg_card_pres\@: ++ // Read key position ++ ldr r2, =0x1e7801e0 ++ ldr r0, [r2] ++ bic r1, r0, #0xFF0FFFFF ++ mov r0, r1, lsr #20 ++ //Test for position#1 ++ ldr r1, =0x00 ++ cmp r0, r1 ++ bne case_pos2\@ ++ console_bmc ++ b case_end\@ ++case_pos2\@: ++ //Test for position#2 ++ ldr r1, =0x01 ++ cmp r0, r1 ++ bne case_pos3\@ ++ console_bmc ++ b case_end\@ ++case_pos3\@: ++ //Test for position#3 ++ ldr r1, =0x02 ++ cmp r0, r1 ++ bne case_pos4\@ ++ console_bmc ++ b case_end\@ ++case_pos4\@: ++//Test for position#4 ++ ldr r1, =0x03 ++ cmp r0, r1 ++ bne case_pos5\@ ++ console_bmc ++ b case_end\@ ++case_pos5\@: ++ //Test for position#5 ++ ldr r1, =0x04 ++ cmp r0, r1 ++ bne case_pos6\@ ++ console_bmc ++ b case_end\@ ++case_pos6\@: ++ //Test for position#6 ++ ldr r1, =0x05 ++ cmp r0, r1 ++ bne case_pos7\@ ++ console_bmc ++ b case_end\@ ++case_pos7\@: ++ //Test for position#7 ++ ldr r1, =0x06 ++ cmp r0, r1 ++ bne case_pos8\@ ++ console_bmc ++ b case_end\@ ++case_pos8\@: ++ //Test for position#8 ++ ldr r1, =0x07 ++ cmp r0, r1 ++ bne case_pos9\@ ++ console_bmc ++ b case_end\@ ++case_pos9\@: ++ //Test for position#9 ++ ldr r1, =0x08 ++ cmp r0, r1 ++ bne case_pos10\@ ++ console_bmc ++ b case_end\@ ++case_pos10\@: ++ //Test for position#10 ++ ldr r1, =0x09 ++ cmp r0, r1 ++ bne case_end\@ ++ console_bmc ++ b case_end\@ ++case_end\@: ++.endm ++ ++ .macro uart_console_setup ++ console_sel ++ /* setup UART console */ ++ ldr r0, =0x1E78400C ++ mov r1, #0x83 ++ str r1, [r0] ++ ++ ldr r0, =0x1e6e202c ++ ldr r2, [r0] ++ mov r2, r2, lsr #12 ++ tst r2, #0x01 ++ ldr r0, =0x1E784000 ++ moveq r1, #0x0D @ Baudrate 115200 ++ movne r1, #0x01 @ Baudrate 115200, div13 ++ ++ str r1, [r0] ++ ++ ldr r0, =0x1E784004 ++ mov r1, #0x00 ++ str r1, [r0] ++ ++ ldr r0, =0x1E78400C ++ mov r1, #0x03 ++ str r1, [r0] ++ ++ ldr r0, =0x1E784008 ++ mov r1, #0x07 ++ str r1, [r0] ++ .endm ++ + .macro print_hex_char + and r1, r1, #0xF + cmp r1, #9 +@@ -324,6 +474,36 @@ init_dram: + /******************************************** + Initial Reset Procedure : Begin + *******************************************/ ++ /* save into SRAM */ ++ ldr r0, =0x1e720200 /* vbs.uboot_exec_address */ ++ str r4, [r0] ++ ++ uart_console_setup ++ ++ /* Debug - UART console message */ ++ ldr r0, =0x1E784000 ++ mov r1, #0x0D @ '\r' ++ str r1, [r0] ++ mov r1, #0x0A @ '\n' ++ str r1, [r0] ++ mov r1, #0x54 @ 'S' ++ str r1, [r0] ++ mov r1, #0x50 @ 'P' ++ str r1, [r0] ++ mov r1, #0x4C @ 'L' ++ str r1, [r0] ++ mov r1, #0x0D @ '\r' ++ str r1, [r0] ++ mov r1, #0x0A @ '\n' ++ str r1, [r0] ++ /* End Debug - UART console message */ ++ ++ ++ ++ ldr r0, =0x1E720204 ++ mov r1, #0x0 ++ str r1, [r0] ++ + /* Clear AHB bus lock condition */ + ldr r0, =0x1e600000 + ldr r1, =0xAEED1A03 +@@ -793,7 +973,9 @@ wait_ddr_reset: + clear_delay_timer + /* end delay 10ms */ + +-/* Debug - UART console message */ ++ uart_console_setup ++ ++ /* Debug - UART console message */ + #ifdef CONFIG_DRAM_UART_TO_UART1 + ldr r0, =0x1e78909c @ route UART5 to UART Port1, 2016.08.29 + ldr r1, =0x10000004 +@@ -806,35 +988,6 @@ wait_ddr_reset: + str r1, [r0] + #endif + +- ldr r0, =0x1e78400c +- mov r1, #0x83 +- str r1, [r0] +- +- ldr r0, =0x1e6e202c +- ldr r2, [r0] +- mov r2, r2, lsr #12 +- tst r2, #0x01 +- ldr r0, =0x1e784000 +- moveq r1, #0x0D @ Baudrate 115200 +- movne r1, #0x01 @ Baudrate 115200, div13 +-#ifdef CONFIG_DRAM_UART_38400 +- moveq r1, #0x27 @ Baudrate 38400 +- movne r1, #0x03 @ Baudrate 38400 , div13 +-#endif +- str r1, [r0] +- +- ldr r0, =0x1e784004 +- mov r1, #0x00 +- str r1, [r0] +- +- ldr r0, =0x1e78400c +- mov r1, #0x03 +- str r1, [r0] +- +- ldr r0, =0x1e784008 +- mov r1, #0x07 +- str r1, [r0] +- + ldr r0, =0x1e784000 + mov r1, #0x0D @ '\r' + str r1, [r0] +-- +2.7.4 + diff --git a/Contrib-Inspur/openbmc/meta-facebook/meta-yosemitev2/recipes-bsp/u-boot/u-boot-aspeed_%.bbappend b/Contrib-Inspur/openbmc/meta-facebook/meta-yosemitev2/recipes-bsp/u-boot/u-boot-aspeed_%.bbappend new file mode 100644 index 00000000..51d98a50 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-facebook/meta-yosemitev2/recipes-bsp/u-boot/u-boot-aspeed_%.bbappend @@ -0,0 +1,2 @@ +FILESEXTRAPATHS_prepend_yosemitev2 := "${THISDIR}/${PN}:" +SRC_URI_append_yosemitev2 = " file://0002-board-aspeed-Add-Mux-for-yosemitev2.patch" diff --git a/Contrib-Inspur/openbmc/meta-facebook/meta-yosemitev2/recipes-fbyv2/packagegroups/packagegroup-fb-apps.bb b/Contrib-Inspur/openbmc/meta-facebook/meta-yosemitev2/recipes-fbyv2/packagegroups/packagegroup-fb-apps.bb new file mode 100644 index 00000000..49cf44c2 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-facebook/meta-yosemitev2/recipes-fbyv2/packagegroups/packagegroup-fb-apps.bb @@ -0,0 +1,20 @@ +SUMMARY = "OpenBMC for Facebook - Applications" +PR = "r1" + +inherit packagegroup + +PROVIDES = "${PACKAGES}" +PACKAGES = " \ + ${PN}-system \ + " + +PROVIDES += "virtual/obmc-system-mgmt" + +RPROVIDES_${PN}-system += "virtual-obmc-system-mgmt" + +SUMMARY_${PN}-system = "Facebook system for Yosemite platform" +RDEPENDS_${PN}-system = " \ + entity-manager \ + dbus-sensors \ + phosphor-pid-control \ + " diff --git a/Contrib-Inspur/openbmc/meta-facebook/meta-yosemitev2/recipes-kernel/linux/linux-aspeed/yosemitev2.cfg b/Contrib-Inspur/openbmc/meta-facebook/meta-yosemitev2/recipes-kernel/linux/linux-aspeed/yosemitev2.cfg new file mode 100644 index 00000000..7ea8dc31 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-facebook/meta-yosemitev2/recipes-kernel/linux/linux-aspeed/yosemitev2.cfg @@ -0,0 +1,6 @@ +CONFIG_SENSORS_TMP421=y +CONFIG_SENSORS_MAX31785=y +CONFIG_RTC_DRV_RV8803=y +CONFIG_TCG_TPM=y +CONFIG_TCG_TIS_I2C_INFINEON=y +CONFIG_NCSI_OEM_CMD_GET_MAC=y diff --git a/Contrib-Inspur/openbmc/meta-facebook/meta-yosemitev2/recipes-kernel/linux/linux-aspeed_%.bbappend b/Contrib-Inspur/openbmc/meta-facebook/meta-yosemitev2/recipes-kernel/linux/linux-aspeed_%.bbappend new file mode 100644 index 00000000..9020b66f --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-facebook/meta-yosemitev2/recipes-kernel/linux/linux-aspeed_%.bbappend @@ -0,0 +1,2 @@ +FILESEXTRAPATHS_prepend := "${THISDIR}/linux-aspeed:" +SRC_URI += "file://yosemitev2.cfg" diff --git a/Contrib-Inspur/openbmc/meta-facebook/meta-yosemitev2/recipes-phosphor/fans/phosphor-pid-control_%.bbappend b/Contrib-Inspur/openbmc/meta-facebook/meta-yosemitev2/recipes-phosphor/fans/phosphor-pid-control_%.bbappend new file mode 100644 index 00000000..02e2b16c --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-facebook/meta-yosemitev2/recipes-phosphor/fans/phosphor-pid-control_%.bbappend @@ -0,0 +1,3 @@ +FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:" + +EXTRA_OECONF_append_yosemitev2 = " --enable-configure-dbus=yes" diff --git a/Contrib-Inspur/openbmc/meta-facebook/meta-yosemitev2/recipes.txt b/Contrib-Inspur/openbmc/meta-facebook/meta-yosemitev2/recipes.txt new file mode 100644 index 00000000..c2bc3f09 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-facebook/meta-yosemitev2/recipes.txt @@ -0,0 +1,3 @@ +recipes-kernel - The kernel and generic applications/libraries with strong kernel dependencies +recipes-bsp - Aspeed BSP with uboot +recipes-phosphor - Phosphor OpenBMC applications and configuration diff --git a/Contrib-Inspur/openbmc/meta-google/conf/layer.conf b/Contrib-Inspur/openbmc/meta-google/conf/layer.conf index bec624e8..982339c1 100644 --- a/Contrib-Inspur/openbmc/meta-google/conf/layer.conf +++ b/Contrib-Inspur/openbmc/meta-google/conf/layer.conf @@ -7,4 +7,4 @@ BBFILES += "${LAYERDIR}/recipes-*/*/*.bb \ BBFILE_COLLECTIONS += "google-layer" BBFILE_PATTERN_google-layer := "^${LAYERDIR}/" LAYERVERSION_google-layer = "1" -LAYERSERIES_COMPAT_google-layer = "thud warrior" +LAYERSERIES_COMPAT_google-layer = "warrior zeus" diff --git a/Contrib-Inspur/openbmc/meta-google/recipes-google/ipmi/google-ipmi-i2c_git.bb b/Contrib-Inspur/openbmc/meta-google/recipes-google/ipmi/google-ipmi-i2c_git.bb index 053a77c9..42f5a94f 100644 --- a/Contrib-Inspur/openbmc/meta-google/recipes-google/ipmi/google-ipmi-i2c_git.bb +++ b/Contrib-Inspur/openbmc/meta-google/recipes-google/ipmi/google-ipmi-i2c_git.bb @@ -14,7 +14,7 @@ DEPENDS += "phosphor-ipmi-host" S = "${WORKDIR}/git" SRC_URI = "git://github.com/openbmc/google-ipmi-i2c" -SRCREV = "605687d8a0df0d8f304c7fc7f1f654d95c956a08" +SRCREV = "14853c73362a208bb5310c40dd07c44d318f38b7" FILES_${PN}_append = " ${libdir}/ipmid-providers/lib*${SOLIBS}" FILES_${PN}_append = " ${libdir}/host-ipmid/lib*${SOLIBS}" diff --git a/Contrib-Inspur/openbmc/meta-google/recipes-google/ipmi/google-ipmi-sys_git.bb b/Contrib-Inspur/openbmc/meta-google/recipes-google/ipmi/google-ipmi-sys_git.bb index 52776704..96cf6f6c 100644 --- a/Contrib-Inspur/openbmc/meta-google/recipes-google/ipmi/google-ipmi-sys_git.bb +++ b/Contrib-Inspur/openbmc/meta-google/recipes-google/ipmi/google-ipmi-sys_git.bb @@ -18,7 +18,7 @@ DEPENDS += "nlohmann-json" S = "${WORKDIR}/git" SRC_URI = "git://github.com/openbmc/google-ipmi-sys" -SRCREV = "ba32fe4e25329f90bc8ab3d2e554dfe8615998d2" +SRCREV = "cc53c847f14dd843bd7a7488822c1af52a5add11" FILES_${PN}_append = " ${libdir}/ipmid-providers/lib*${SOLIBS}" FILES_${PN}_append = " ${libdir}/host-ipmid/lib*${SOLIBS}" diff --git a/Contrib-Inspur/openbmc/meta-hxt/conf/layer.conf b/Contrib-Inspur/openbmc/meta-hxt/conf/layer.conf index ec6913af..bc33c2b2 100644 --- a/Contrib-Inspur/openbmc/meta-hxt/conf/layer.conf +++ b/Contrib-Inspur/openbmc/meta-hxt/conf/layer.conf @@ -3,6 +3,3 @@ BBPATH .= ":${LAYERDIR}" BBFILE_COLLECTIONS += "hxt" BBFILE_PATTERN_hxt = "" - -# Provide a variable that points the base of the hxt layer. -HXTBASE = '${@os.path.normpath("${LAYERDIR}/")}' diff --git a/Contrib-Inspur/openbmc/meta-hxt/meta-stardragon4800-rep2/recipes-phosphor/console/stardragon4800-rep2-console-client.bb b/Contrib-Inspur/openbmc/meta-hxt/meta-stardragon4800-rep2/recipes-phosphor/console/stardragon4800-rep2-console-client.bb index 879f7a52..a0194c81 100644 --- a/Contrib-Inspur/openbmc/meta-hxt/meta-stardragon4800-rep2/recipes-phosphor/console/stardragon4800-rep2-console-client.bb +++ b/Contrib-Inspur/openbmc/meta-hxt/meta-stardragon4800-rep2/recipes-phosphor/console/stardragon4800-rep2-console-client.bb @@ -1,6 +1,6 @@ FILESEXTRAPATHS_prepend_stardragon4800-rep2 := "${THISDIR}/${PN}:" LICENSE = "Apache-2.0" -LIC_FILES_CHKSUM = "file://${HXTBASE}/COPYING.apache-2.0;md5=34400b68072d710fecd0a2940a0d1658" +LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10" SRC_URI += "file://stardragon4800-rep2-console-client.sh" diff --git a/Contrib-Inspur/openbmc/meta-hxt/meta-stardragon4800-rep2/recipes-phosphor/socupdate/socupdate.bb b/Contrib-Inspur/openbmc/meta-hxt/meta-stardragon4800-rep2/recipes-phosphor/socupdate/socupdate.bb index e2ae60af..66a07555 100644 --- a/Contrib-Inspur/openbmc/meta-hxt/meta-stardragon4800-rep2/recipes-phosphor/socupdate/socupdate.bb +++ b/Contrib-Inspur/openbmc/meta-hxt/meta-stardragon4800-rep2/recipes-phosphor/socupdate/socupdate.bb @@ -3,7 +3,7 @@ DESCRIPTION = "A sample script to help update the host(soc) firmware" HOMEPAGE = "" PR = "r1" LICENSE = "Apache-2.0" -LIC_FILES_CHKSUM = "file://${HXTBASE}/COPYING.apache-2.0;md5=34400b68072d710fecd0a2940a0d1658" +LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10" SRC_URI += "file://socupdate.sh" diff --git a/Contrib-Inspur/openbmc/meta-hxt/meta-stardragon4800-rep2/recipes-phosphor/workbook/stardragon4800-rep2-config.bb b/Contrib-Inspur/openbmc/meta-hxt/meta-stardragon4800-rep2/recipes-phosphor/workbook/stardragon4800-rep2-config.bb index de5f7ae4..ec8f0de1 100644 --- a/Contrib-Inspur/openbmc/meta-hxt/meta-stardragon4800-rep2/recipes-phosphor/workbook/stardragon4800-rep2-config.bb +++ b/Contrib-Inspur/openbmc/meta-hxt/meta-stardragon4800-rep2/recipes-phosphor/workbook/stardragon4800-rep2-config.bb @@ -2,7 +2,7 @@ SUMMARY = "HXT Rep board wiring" DESCRIPTION = "Board wiring information for the HXT Rep system." PR = "r1" LICENSE = "Apache-2.0" -LIC_FILES_CHKSUM = "file://${HXTBASE}/COPYING.apache-2.0;md5=34400b68072d710fecd0a2940a0d1658" +LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10" inherit allarch inherit setuptools diff --git a/Contrib-Inspur/openbmc/meta-ibm/README b/Contrib-Inspur/openbmc/meta-ibm/README index 14aa748e..6f1b695b 100644 --- a/Contrib-Inspur/openbmc/meta-ibm/README +++ b/Contrib-Inspur/openbmc/meta-ibm/README @@ -11,7 +11,6 @@ FSP-2: meta-fsp2 BSP layer(s) for the following IBM branded servers: Witherspoon: meta-witherspoon -Z: meta-z Subsequent description applies to the distro policy for IBM systems only in conf, classes, and recipes-*, for description of the BSP layers consult the diff --git a/Contrib-Inspur/openbmc/meta-ibm/conf/layer.conf b/Contrib-Inspur/openbmc/meta-ibm/conf/layer.conf index f16cdee5..4506bba6 100644 --- a/Contrib-Inspur/openbmc/meta-ibm/conf/layer.conf +++ b/Contrib-Inspur/openbmc/meta-ibm/conf/layer.conf @@ -7,7 +7,4 @@ BBFILES += "${LAYERDIR}/recipes-*/*/*.bb \ BBFILE_COLLECTIONS += "ibm-layer" BBFILE_PATTERN_ibm-layer := "^${LAYERDIR}/" -LAYERSERIES_COMPAT_ibm-layer = "thud warrior" - -# Provide a variable that points the base of the ibm layer. -IBMBASE = '${@os.path.normpath("${LAYERDIR}/")}' +LAYERSERIES_COMPAT_ibm-layer = "warrior zeus" diff --git a/Contrib-Inspur/openbmc/meta-ibm/meta-palmetto/conf/bblayers.conf.sample b/Contrib-Inspur/openbmc/meta-ibm/meta-palmetto/conf/bblayers.conf.sample index f58d39c2..3470c2d6 100644 --- a/Contrib-Inspur/openbmc/meta-ibm/meta-palmetto/conf/bblayers.conf.sample +++ b/Contrib-Inspur/openbmc/meta-ibm/meta-palmetto/conf/bblayers.conf.sample @@ -14,7 +14,6 @@ BBLAYERS ?= " \ ##OEROOT##/meta-phosphor \ ##OEROOT##/meta-aspeed \ ##OEROOT##/meta-openpower \ - ##OEROOT##/meta-ibm \ ##OEROOT##/meta-ibm/meta-palmetto \ " BBLAYERS_NON_REMOVABLE ?= " \ @@ -26,6 +25,5 @@ BBLAYERS_NON_REMOVABLE ?= " \ ##OEROOT##/meta-phosphor \ ##OEROOT##/meta-aspeed \ ##OEROOT##/meta-openpower \ - ##OEROOT##/meta-ibm \ ##OEROOT##/meta-ibm/meta-palmetto \ " diff --git a/Contrib-Inspur/openbmc/meta-ibm/meta-palmetto/conf/layer.conf b/Contrib-Inspur/openbmc/meta-ibm/meta-palmetto/conf/layer.conf index 0329e5dc..0bbb885e 100644 --- a/Contrib-Inspur/openbmc/meta-ibm/meta-palmetto/conf/layer.conf +++ b/Contrib-Inspur/openbmc/meta-ibm/meta-palmetto/conf/layer.conf @@ -7,4 +7,4 @@ BBFILES += "${LAYERDIR}/recipes-*/*/*.bb \ BBFILE_COLLECTIONS += "palmetto-layer" BBFILE_PATTERN_palmetto-layer := "^${LAYERDIR}/" -LAYERSERIES_COMPAT_palmetto-layer = "thud warrior" +LAYERSERIES_COMPAT_palmetto-layer = "warrior zeus" diff --git a/Contrib-Inspur/openbmc/meta-ibm/meta-palmetto/recipes-phosphor/configuration/palmetto-yaml-config.bb b/Contrib-Inspur/openbmc/meta-ibm/meta-palmetto/recipes-phosphor/configuration/palmetto-yaml-config.bb index 743b51fa..44b47604 100644 --- a/Contrib-Inspur/openbmc/meta-ibm/meta-palmetto/recipes-phosphor/configuration/palmetto-yaml-config.bb +++ b/Contrib-Inspur/openbmc/meta-ibm/meta-palmetto/recipes-phosphor/configuration/palmetto-yaml-config.bb @@ -1,7 +1,7 @@ SUMMARY = "YAML configuration for Palmetto" PR = "r1" LICENSE = "Apache-2.0" -LIC_FILES_CHKSUM = "file://${IBMBASE}/COPYING.apache-2.0;md5=34400b68072d710fecd0a2940a0d1658" +LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10" inherit allarch diff --git a/Contrib-Inspur/openbmc/meta-ibm/meta-palmetto/recipes-phosphor/configuration/palmetto-yaml-config/palmetto-ipmi-sensors.yaml b/Contrib-Inspur/openbmc/meta-ibm/meta-palmetto/recipes-phosphor/configuration/palmetto-yaml-config/palmetto-ipmi-sensors.yaml index 372ad2db..349b8b98 100644 --- a/Contrib-Inspur/openbmc/meta-ibm/meta-palmetto/recipes-phosphor/configuration/palmetto-yaml-config/palmetto-ipmi-sensors.yaml +++ b/Contrib-Inspur/openbmc/meta-ibm/meta-palmetto/recipes-phosphor/configuration/palmetto-yaml-config/palmetto-ipmi-sensors.yaml @@ -584,7 +584,7 @@ deassert: false type: bool mutability: Mutability::Write|Mutability::Read - path: /system/chassis/motherboard/cpu + path: /system/chassis/motherboard/cpu0 readingType: assertion sensorNamePattern: nameLeaf sensorReadingType: 111 diff --git a/Contrib-Inspur/openbmc/meta-ibm/meta-palmetto/recipes-phosphor/inventory/inventory-cleanup.bb b/Contrib-Inspur/openbmc/meta-ibm/meta-palmetto/recipes-phosphor/inventory/inventory-cleanup.bb new file mode 100644 index 00000000..0c4b56f7 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-ibm/meta-palmetto/recipes-phosphor/inventory/inventory-cleanup.bb @@ -0,0 +1,17 @@ +SUMMARY = "Copy the inventory cleanup yaml for inventory manager" +PR = "r1" +LICENSE = "Apache-2.0" +LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10" + +inherit allarch +inherit phosphor-inventory-manager + +S = "${WORKDIR}" + +SRC_URI = "file://inventory-cleanup.yaml" + +do_install() { + install -D inventory-cleanup.yaml ${D}${base_datadir}/events.d/inventory-cleanup.yaml +} + +FILES_${PN} += "${base_datadir}/events.d/inventory-cleanup.yaml" diff --git a/Contrib-Inspur/openbmc/meta-ibm/meta-palmetto/recipes-phosphor/inventory/inventory-cleanup/inventory-cleanup.yaml b/Contrib-Inspur/openbmc/meta-ibm/meta-palmetto/recipes-phosphor/inventory/inventory-cleanup/inventory-cleanup.yaml new file mode 100644 index 00000000..8fbc3816 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-ibm/meta-palmetto/recipes-phosphor/inventory/inventory-cleanup/inventory-cleanup.yaml @@ -0,0 +1,16 @@ +description: > + Palmetto inventory fixups + +events: + - name: Add Chassis interface + description: > + Add the chassis interface on the chassis inventory path + type: startup + actions: + - name: createObjects + objs: + /system/chassis: + xyz.openbmc_project.Inventory.Item.Chassis: + Type: + value: "RackMount" + type: string diff --git a/Contrib-Inspur/openbmc/meta-ibm/meta-palmetto/recipes-phosphor/inventory/phosphor-inventory-manager_%.bbappend b/Contrib-Inspur/openbmc/meta-ibm/meta-palmetto/recipes-phosphor/inventory/phosphor-inventory-manager_%.bbappend new file mode 100644 index 00000000..d552f576 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-ibm/meta-palmetto/recipes-phosphor/inventory/phosphor-inventory-manager_%.bbappend @@ -0,0 +1 @@ +DEPENDS_append = " inventory-cleanup" diff --git a/Contrib-Inspur/openbmc/meta-ibm/meta-palmetto/recipes-phosphor/leds/palmetto-led-manager-config-native.bb b/Contrib-Inspur/openbmc/meta-ibm/meta-palmetto/recipes-phosphor/leds/palmetto-led-manager-config-native.bb index a7e8c6b7..ab6d5e31 100644 --- a/Contrib-Inspur/openbmc/meta-ibm/meta-palmetto/recipes-phosphor/leds/palmetto-led-manager-config-native.bb +++ b/Contrib-Inspur/openbmc/meta-ibm/meta-palmetto/recipes-phosphor/leds/palmetto-led-manager-config-native.bb @@ -1,7 +1,7 @@ SUMMARY = "Phosphor LED Group Management for Palmetto" PR = "r1" LICENSE = "Apache-2.0" -LIC_FILES_CHKSUM = "file://${IBMBASE}/COPYING.apache-2.0;md5=34400b68072d710fecd0a2940a0d1658" +LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10" inherit native diff --git a/Contrib-Inspur/openbmc/meta-ibm/meta-palmetto/recipes-phosphor/leds/palmetto-led-manager-config/led.yaml b/Contrib-Inspur/openbmc/meta-ibm/meta-palmetto/recipes-phosphor/leds/palmetto-led-manager-config/led.yaml old mode 100755 new mode 100644 diff --git a/Contrib-Inspur/openbmc/meta-ibm/meta-palmetto/recipes-phosphor/occ/palmetto-occ-control-config-native.bb b/Contrib-Inspur/openbmc/meta-ibm/meta-palmetto/recipes-phosphor/occ/palmetto-occ-control-config-native.bb index 609c8437..db502959 100644 --- a/Contrib-Inspur/openbmc/meta-ibm/meta-palmetto/recipes-phosphor/occ/palmetto-occ-control-config-native.bb +++ b/Contrib-Inspur/openbmc/meta-ibm/meta-palmetto/recipes-phosphor/occ/palmetto-occ-control-config-native.bb @@ -1,7 +1,7 @@ SUMMARY = "Palmetto OCC Control sensor IDs" PR = "r1" LICENSE = "Apache-2.0" -LIC_FILES_CHKSUM = "file://${IBMBASE}/COPYING.apache-2.0;md5=34400b68072d710fecd0a2940a0d1658" +LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10" inherit native inherit openpower-occ-control diff --git a/Contrib-Inspur/openbmc/meta-ibm/meta-palmetto/recipes-phosphor/packagegroups/packagegroup-obmc-apps.bbappend b/Contrib-Inspur/openbmc/meta-ibm/meta-palmetto/recipes-phosphor/packagegroups/packagegroup-obmc-apps.bbappend index c0748b96..52b9468c 100644 --- a/Contrib-Inspur/openbmc/meta-ibm/meta-palmetto/recipes-phosphor/packagegroups/packagegroup-obmc-apps.bbappend +++ b/Contrib-Inspur/openbmc/meta-ibm/meta-palmetto/recipes-phosphor/packagegroups/packagegroup-obmc-apps.bbappend @@ -1 +1 @@ -RDEPENDS_${PN}-inventory_append_palmetto = " openpower-occ-control" +RDEPENDS_${PN}-inventory_append_palmetto = " openpower-occ-control phosphor-webui" diff --git a/Contrib-Inspur/openbmc/meta-ibm/meta-romulus/conf/bblayers.conf.sample b/Contrib-Inspur/openbmc/meta-ibm/meta-romulus/conf/bblayers.conf.sample index aa6ac7b7..52329db6 100644 --- a/Contrib-Inspur/openbmc/meta-ibm/meta-romulus/conf/bblayers.conf.sample +++ b/Contrib-Inspur/openbmc/meta-ibm/meta-romulus/conf/bblayers.conf.sample @@ -14,7 +14,6 @@ BBLAYERS ?= " \ ##OEROOT##/meta-phosphor \ ##OEROOT##/meta-aspeed \ ##OEROOT##/meta-openpower \ - ##OEROOT##/meta-ibm \ ##OEROOT##/meta-ibm/meta-romulus \ " BBLAYERS_NON_REMOVABLE ?= " \ @@ -26,6 +25,5 @@ BBLAYERS_NON_REMOVABLE ?= " \ ##OEROOT##/meta-phosphor \ ##OEROOT##/meta-aspeed \ ##OEROOT##/meta-openpower \ - ##OEROOT##/meta-ibm \ ##OEROOT##/meta-ibm/meta-romulus \ " diff --git a/Contrib-Inspur/openbmc/meta-ibm/meta-romulus/conf/layer.conf b/Contrib-Inspur/openbmc/meta-ibm/meta-romulus/conf/layer.conf index 13858d5a..5b20790b 100644 --- a/Contrib-Inspur/openbmc/meta-ibm/meta-romulus/conf/layer.conf +++ b/Contrib-Inspur/openbmc/meta-ibm/meta-romulus/conf/layer.conf @@ -7,4 +7,4 @@ BBFILES += "${LAYERDIR}/recipes-*/*/*.bb \ BBFILE_COLLECTIONS += "romulus-layer" BBFILE_PATTERN_romulus-layer := "^${LAYERDIR}/" -LAYERSERIES_COMPAT_romulus-layer = "thud warrior" +LAYERSERIES_COMPAT_romulus-layer = "warrior zeus" diff --git a/Contrib-Inspur/openbmc/meta-ibm/meta-romulus/recipes-phosphor/chassis/avsbus-control.bb b/Contrib-Inspur/openbmc/meta-ibm/meta-romulus/recipes-phosphor/chassis/avsbus-control.bb index ca45a1eb..f7ed4303 100644 --- a/Contrib-Inspur/openbmc/meta-ibm/meta-romulus/recipes-phosphor/chassis/avsbus-control.bb +++ b/Contrib-Inspur/openbmc/meta-ibm/meta-romulus/recipes-phosphor/chassis/avsbus-control.bb @@ -1,7 +1,7 @@ SUMMARY = "Romulus AVSBus control" PR = "r1" LICENSE = "Apache-2.0" -LIC_FILES_CHKSUM = "file://${IBMBASE}/COPYING.apache-2.0;md5=34400b68072d710fecd0a2940a0d1658" +LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10" inherit obmc-phosphor-systemd diff --git a/Contrib-Inspur/openbmc/meta-ibm/meta-romulus/recipes-phosphor/chassis/vrm-control.bb b/Contrib-Inspur/openbmc/meta-ibm/meta-romulus/recipes-phosphor/chassis/vrm-control.bb index ba38b876..f0e6eb0e 100644 --- a/Contrib-Inspur/openbmc/meta-ibm/meta-romulus/recipes-phosphor/chassis/vrm-control.bb +++ b/Contrib-Inspur/openbmc/meta-ibm/meta-romulus/recipes-phosphor/chassis/vrm-control.bb @@ -2,7 +2,7 @@ SUMMARY = "Romulus VRM Overrides" DESCRIPTION = "Sets Rolumus VRMs to custom voltages" PR = "r1" LICENSE = "Apache-2.0" -LIC_FILES_CHKSUM = "file://${IBMBASE}/COPYING.apache-2.0;md5=34400b68072d710fecd0a2940a0d1658" +LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10" inherit obmc-phosphor-systemd diff --git a/Contrib-Inspur/openbmc/meta-ibm/meta-romulus/recipes-phosphor/configuration/romulus-yaml-config.bb b/Contrib-Inspur/openbmc/meta-ibm/meta-romulus/recipes-phosphor/configuration/romulus-yaml-config.bb index a2f609ee..026471f7 100644 --- a/Contrib-Inspur/openbmc/meta-ibm/meta-romulus/recipes-phosphor/configuration/romulus-yaml-config.bb +++ b/Contrib-Inspur/openbmc/meta-ibm/meta-romulus/recipes-phosphor/configuration/romulus-yaml-config.bb @@ -1,7 +1,7 @@ SUMMARY = "YAML configuration for Romulus" PR = "r1" LICENSE = "Apache-2.0" -LIC_FILES_CHKSUM = "file://${IBMBASE}/COPYING.apache-2.0;md5=34400b68072d710fecd0a2940a0d1658" +LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10" inherit allarch diff --git a/Contrib-Inspur/openbmc/meta-ibm/meta-romulus/recipes-phosphor/fans/phosphor-fan-control-zone-conditions-config.bbappend b/Contrib-Inspur/openbmc/meta-ibm/meta-romulus/recipes-phosphor/fans/phosphor-fan-control-zone-conditions-config.bbappend deleted file mode 100644 index 781af4fc..00000000 --- a/Contrib-Inspur/openbmc/meta-ibm/meta-romulus/recipes-phosphor/fans/phosphor-fan-control-zone-conditions-config.bbappend +++ /dev/null @@ -1 +0,0 @@ -FILESEXTRAPATHS_prepend_romulus := "${THISDIR}/${BPN}:" diff --git a/Contrib-Inspur/openbmc/meta-ibm/meta-romulus/recipes-phosphor/fans/phosphor-fan_%.bbappend b/Contrib-Inspur/openbmc/meta-ibm/meta-romulus/recipes-phosphor/fans/phosphor-fan_%.bbappend deleted file mode 100644 index 3ec03194..00000000 --- a/Contrib-Inspur/openbmc/meta-ibm/meta-romulus/recipes-phosphor/fans/phosphor-fan_%.bbappend +++ /dev/null @@ -1,21 +0,0 @@ -FILESEXTRAPATHS_prepend_romulus := "${THISDIR}/${BPN}:" - -# Package configuration -FAN_PACKAGES += " \ - phosphor-cooling-type \ -" - -PACKAGECONFIG_append_romulus = " cooling-type" - -TMPL_COOLING = "phosphor-cooling-type@.service" -INSTFMT_COOLING = "phosphor-cooling-type@{0}.service" -COOLING_TGT = "multi-user.target" -FMT_COOLING = "../${TMPL_COOLING}:${COOLING_TGT}.requires/${INSTFMT_COOLING}" - -FILES_phosphor-cooling-type = "${bindir}/phosphor-cooling-type" -SYSTEMD_SERVICE_phosphor-cooling-type += "${TMPL_COOLING}" -SYSTEMD_LINK_phosphor-cooling-type += "${@compose_list(d, 'FMT_COOLING', 'OBMC_CHASSIS_INSTANCES')}" - -COOLING_ENV_FMT = "obmc/phosphor-fan/phosphor-cooling-type-{0}.conf" - -SYSTEMD_ENVIRONMENT_FILE_phosphor-cooling-type_append_romulus = " ${@compose_list(d, 'COOLING_ENV_FMT', 'OBMC_CHASSIS_INSTANCES')}" diff --git a/Contrib-Inspur/openbmc/meta-ibm/meta-romulus/recipes-phosphor/gpio/id-button.bb b/Contrib-Inspur/openbmc/meta-ibm/meta-romulus/recipes-phosphor/gpio/id-button.bb index cd2bab99..6251786c 100644 --- a/Contrib-Inspur/openbmc/meta-ibm/meta-romulus/recipes-phosphor/gpio/id-button.bb +++ b/Contrib-Inspur/openbmc/meta-ibm/meta-romulus/recipes-phosphor/gpio/id-button.bb @@ -1,7 +1,7 @@ SUMMARY = "Romulus ID Button pressed application" PR = "r1" LICENSE = "Apache-2.0" -LIC_FILES_CHKSUM = "file://${IBMBASE}/COPYING.apache-2.0;md5=34400b68072d710fecd0a2940a0d1658" +LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10" inherit obmc-phosphor-systemd diff --git a/Contrib-Inspur/openbmc/meta-ibm/meta-romulus/recipes-phosphor/inventory/inventory-cleanup.bb b/Contrib-Inspur/openbmc/meta-ibm/meta-romulus/recipes-phosphor/inventory/inventory-cleanup.bb new file mode 100644 index 00000000..0c4b56f7 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-ibm/meta-romulus/recipes-phosphor/inventory/inventory-cleanup.bb @@ -0,0 +1,17 @@ +SUMMARY = "Copy the inventory cleanup yaml for inventory manager" +PR = "r1" +LICENSE = "Apache-2.0" +LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10" + +inherit allarch +inherit phosphor-inventory-manager + +S = "${WORKDIR}" + +SRC_URI = "file://inventory-cleanup.yaml" + +do_install() { + install -D inventory-cleanup.yaml ${D}${base_datadir}/events.d/inventory-cleanup.yaml +} + +FILES_${PN} += "${base_datadir}/events.d/inventory-cleanup.yaml" diff --git a/Contrib-Inspur/openbmc/meta-ibm/meta-romulus/recipes-phosphor/inventory/inventory-cleanup/inventory-cleanup.yaml b/Contrib-Inspur/openbmc/meta-ibm/meta-romulus/recipes-phosphor/inventory/inventory-cleanup/inventory-cleanup.yaml new file mode 100644 index 00000000..0f72008c --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-ibm/meta-romulus/recipes-phosphor/inventory/inventory-cleanup/inventory-cleanup.yaml @@ -0,0 +1,16 @@ +description: > + Romulus inventory fixups + +events: + - name: Add Chassis interface + description: > + Add the chassis interface on the chassis inventory path + type: startup + actions: + - name: createObjects + objs: + /system/chassis: + xyz.openbmc_project.Inventory.Item.Chassis: + Type: + value: "RackMount" + type: string diff --git a/Contrib-Inspur/openbmc/meta-ibm/meta-romulus/recipes-phosphor/inventory/phosphor-inventory-manager_%.bbappend b/Contrib-Inspur/openbmc/meta-ibm/meta-romulus/recipes-phosphor/inventory/phosphor-inventory-manager_%.bbappend new file mode 100644 index 00000000..d552f576 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-ibm/meta-romulus/recipes-phosphor/inventory/phosphor-inventory-manager_%.bbappend @@ -0,0 +1 @@ +DEPENDS_append = " inventory-cleanup" diff --git a/Contrib-Inspur/openbmc/meta-ibm/meta-romulus/recipes-phosphor/leds/romulus-led-manager-config-native.bb b/Contrib-Inspur/openbmc/meta-ibm/meta-romulus/recipes-phosphor/leds/romulus-led-manager-config-native.bb index 9b511e01..0ffdee9c 100644 --- a/Contrib-Inspur/openbmc/meta-ibm/meta-romulus/recipes-phosphor/leds/romulus-led-manager-config-native.bb +++ b/Contrib-Inspur/openbmc/meta-ibm/meta-romulus/recipes-phosphor/leds/romulus-led-manager-config-native.bb @@ -1,7 +1,7 @@ SUMMARY = "Phosphor LED Group Management for Romulus" PR = "r1" LICENSE = "Apache-2.0" -LIC_FILES_CHKSUM = "file://${IBMBASE}/COPYING.apache-2.0;md5=34400b68072d710fecd0a2940a0d1658" +LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10" inherit native diff --git a/Contrib-Inspur/openbmc/meta-ibm/meta-romulus/recipes-phosphor/leds/romulus-led-manager-config/led.yaml b/Contrib-Inspur/openbmc/meta-ibm/meta-romulus/recipes-phosphor/leds/romulus-led-manager-config/led.yaml old mode 100755 new mode 100644 diff --git a/Contrib-Inspur/openbmc/meta-ibm/meta-romulus/recipes-phosphor/logging/romulus-phosphor-logging-callouts-native.bb b/Contrib-Inspur/openbmc/meta-ibm/meta-romulus/recipes-phosphor/logging/romulus-phosphor-logging-callouts-native.bb index a6fd5b1f..d62c2a39 100644 --- a/Contrib-Inspur/openbmc/meta-ibm/meta-romulus/recipes-phosphor/logging/romulus-phosphor-logging-callouts-native.bb +++ b/Contrib-Inspur/openbmc/meta-ibm/meta-romulus/recipes-phosphor/logging/romulus-phosphor-logging-callouts-native.bb @@ -1,7 +1,7 @@ SUMMARY = "Romulus inventory map for phosphor-ipmi-host" PR = "r1" LICENSE = "Apache-2.0" -LIC_FILES_CHKSUM = "file://${IBMBASE}/COPYING.apache-2.0;md5=34400b68072d710fecd0a2940a0d1658" +LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10" inherit native inherit phosphor-logging diff --git a/Contrib-Inspur/openbmc/meta-ibm/meta-romulus/recipes-phosphor/occ/romulus-occ-control-config-native.bb b/Contrib-Inspur/openbmc/meta-ibm/meta-romulus/recipes-phosphor/occ/romulus-occ-control-config-native.bb index ec6a39df..31fcd757 100644 --- a/Contrib-Inspur/openbmc/meta-ibm/meta-romulus/recipes-phosphor/occ/romulus-occ-control-config-native.bb +++ b/Contrib-Inspur/openbmc/meta-ibm/meta-romulus/recipes-phosphor/occ/romulus-occ-control-config-native.bb @@ -1,7 +1,7 @@ SUMMARY = "Romulus OCC Control sensor IDs" PR = "r1" LICENSE = "Apache-2.0" -LIC_FILES_CHKSUM = "file://${IBMBASE}/COPYING.apache-2.0;md5=34400b68072d710fecd0a2940a0d1658" +LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10" inherit native inherit openpower-occ-control diff --git a/Contrib-Inspur/openbmc/meta-ibm/meta-romulus/recipes-phosphor/packagegroups/packagegroup-obmc-apps.bbappend b/Contrib-Inspur/openbmc/meta-ibm/meta-romulus/recipes-phosphor/packagegroups/packagegroup-obmc-apps.bbappend index 920e529a..6380ac25 100644 --- a/Contrib-Inspur/openbmc/meta-ibm/meta-romulus/recipes-phosphor/packagegroups/packagegroup-obmc-apps.bbappend +++ b/Contrib-Inspur/openbmc/meta-ibm/meta-romulus/recipes-phosphor/packagegroups/packagegroup-obmc-apps.bbappend @@ -1,2 +1,2 @@ -RDEPENDS_${PN}-inventory_append_romulus = " openpower-occ-control phosphor-cooling-type id-button" +RDEPENDS_${PN}-inventory_append_romulus = " openpower-occ-control id-button" RDEPENDS_${PN}-extras_append_romulus = " phosphor-webui phosphor-image-signing" diff --git a/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/conf/conf-notes.txt b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/conf/conf-notes.txt index 9b3c01a5..0c78d458 100644 --- a/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/conf/conf-notes.txt +++ b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/conf/conf-notes.txt @@ -1,2 +1,12 @@ -Common targets are: - obmc-phosphor-image +Sample meta-witherspoon build invocations: + +mihawk: +DISTRO=openbmc-witherspoon MACHINE=mihawk bitbake obmc-phosphor-image +swift: +DISTRO=openbmc-witherspoon MACHINE=swift bitbake obmc-phosphor-image +witherspoon: +DISTRO=openbmc-witherspoon MACHINE=witherspoon bitbake obmc-phosphor-image +witherspoon-tacoma: +DISTRO=openbmc-openpower MACHINE=witherspoon-tacoma bitbake aspeed-image-norootfs +witherspoon-128: +DISTRO=openbmc-witherspoon MACHINE=witherspoon-128 bitbake obmc-phosphor-image diff --git a/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/conf/layer.conf b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/conf/layer.conf index 62b06787..8cac30c3 100644 --- a/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/conf/layer.conf +++ b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/conf/layer.conf @@ -7,4 +7,4 @@ BBFILES += "${LAYERDIR}/recipes-*/*/*.bb \ BBFILE_COLLECTIONS += "witherspoon-layer" BBFILE_PATTERN_witherspoon-layer := "^${LAYERDIR}/" -LAYERSERIES_COMPAT_witherspoon-layer = "thud warrior" +LAYERSERIES_COMPAT_witherspoon-layer = "warrior zeus" diff --git a/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/conf/local.conf.sample b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/conf/local.conf.sample index 8a5c738f..d3a2303f 100644 --- a/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/conf/local.conf.sample +++ b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/conf/local.conf.sample @@ -1,3 +1,6 @@ +#MACHINE ?= "mihawk" +#MACHINE ?= "swift" +#MACHINE ?= "witherspoon-128" MACHINE ??= "witherspoon" DISTRO ?= "openbmc-witherspoon" PACKAGE_CLASSES ?= "package_rpm" diff --git a/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/conf/machine/mihawk.conf b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/conf/machine/mihawk.conf new file mode 100644 index 00000000..a296e79b --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/conf/machine/mihawk.conf @@ -0,0 +1,42 @@ +KMACHINE = "aspeed" +KERNEL_DEVICETREE = "${KMACHINE}-bmc-opp-${MACHINE}.dtb" +KERNEL_FEATURES_append = " phosphor-wdt-on-panic" + +UBOOT_MACHINE = "ast_g5_ncsi_config" + +OBMC_POWER_SUPPLY_INSTANCES = "0 1" + +PREFERRED_PROVIDER_virtual/p9-vcs-workaround = '' +PREFERRED_PROVIDER_virtual/openpower-fru-vpd-layout = "mihawk-openpower-fru-vpd-layout-native" + +require conf/machine/include/ast2500.inc +require conf/machine/include/obmc-bsp-common.inc +require conf/machine/include/openpower.inc +require conf/machine/include/p9.inc +require conf/distro/include/phosphor-aspeednic-use-mac2.inc + +PHOSPHOR_MRW_LICENSE = "Apache-2.0" +PHOSPHOR_MRW_LIC_FILES_CHKSUM = "file://LICENSE;md5=86d3f3a95c324c9479bd8986968f4327" +PHOSPHOR_MRW_URI = "git://github.com/open-power/mihawk-xml" +PHOSPHOR_MRW_REV = "f6ec5aa0f9803d44b147a7670dec7ec935f59582" + + + +# Inhibit phosphor-hwmon-config-mrw +VIRTUAL-RUNTIME_phosphor-hwmon-config_df-mrw = "" + +# Inhibit phosphor-fan-presence-mrw-native +PREFERRED_PROVIDER_virtual/phosphor-fan-presence-config_df-mrw = \ + "phosphor-fan-presence-config" + +# Inhibit phosphor-fan-control-fan-config-mrw-native +PREFERRED_PROVIDER_virtual/phosphor-fan-control-fan-config_df-mrw = \ + "phosphor-fan-control-fan-config" + +# Inhibit mihawk-led-manager-config-native +PREFERRED_PROVIDER_virtual/phosphor-led-manager-config-native_df-mrw = \ + "mihawk-led-manager-config-native" + +PREFERRED_PROVIDER_virtual/phosphor-logging-callouts_df-mrw = "mihawk-phosphor-logging-callouts-native" + +PREFERRED_PROVIDER_virtual/openpower-fru-inventory_df-mrw = "mihawk-openpower-fru-inventory-native" diff --git a/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/conf/machine/rainier.conf b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/conf/machine/rainier.conf new file mode 100644 index 00000000..78ffbbc8 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/conf/machine/rainier.conf @@ -0,0 +1,26 @@ +KERNEL_DEVICETREE = "aspeed-bmc-ibm-rainier.dtb" +UBOOT_MACHINE = "evb-ast2600_defconfig" + +OBMC_POWER_SUPPLY_INSTANCES = "0 1 2 3" + +require conf/machine/include/ast2600.inc +require conf/machine/include/obmc-bsp-common.inc +require conf/machine/include/openpower.inc + +SERIAL_CONSOLES = "115200;ttyS4" + +MRW_XML = "witherspoon.xml" +PHOSPHOR_MRW_LICENSE = "Apache-2.0" +PHOSPHOR_MRW_LIC_FILES_CHKSUM = "file://LICENSE;md5=e3fc50a88d0a364313df4b21ef20c29e" +PHOSPHOR_MRW_URI = "git://github.com/open-power/witherspoon-xml" +PHOSPHOR_MRW_REV = "c622cb5a5dd3ebc2a4eef558d1b70740f914e6f7" + +VIRTUAL-RUNTIME_phosphor-hwmon-config_df-mrw = "" + +PREFERRED_PROVIDER_virtual/phosphor-fan-control-fan-config_df-mrw = \ + "phosphor-fan-control-fan-config" +PREFERRED_PROVIDER_virtual/phosphor-fan-presence-config_df-mrw = \ + "phosphor-fan-presence-config" + +FLASH_SIZE = "131072" +SKIP_BROKEN_MRW = "1" diff --git a/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/conf/machine/swift.conf b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/conf/machine/swift.conf index 077d0b55..4c0abb57 100644 --- a/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/conf/machine/swift.conf +++ b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/conf/machine/swift.conf @@ -1,13 +1,13 @@ require conf/machine/witherspoon.conf -IMAGE_FSTYPES += "ext4" +IMAGE_FSTYPES += "ext4 mmc-ext4-tar" KERNEL_DEVICETREE = "${KMACHINE}-bmc-opp-${MACHINE}.dtb" PHOSPHOR_MRW_LICENSE = "Apache-2.0" PHOSPHOR_MRW_LIC_FILES_CHKSUM = "file://LICENSE;md5=e3fc50a88d0a364313df4b21ef20c29e" PHOSPHOR_MRW_URI = "git://git@github.com/open-power/swift-xml;protocol=ssh" -PHOSPHOR_MRW_REV = "7880e778af3fca75f46aa3e94f7e9971a6ddbb1f" +PHOSPHOR_MRW_REV = "2b59e12db44e167a1652777b770674d235ec55ba" # 128MB flash size FLASH_SIZE = "131072" diff --git a/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/conf/machine/witherspoon-128.conf b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/conf/machine/witherspoon-128.conf index a3981cc4..d21b9b22 100644 --- a/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/conf/machine/witherspoon-128.conf +++ b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/conf/machine/witherspoon-128.conf @@ -1,5 +1,5 @@ +MACHINEOVERRIDES =. "witherspoon:" require conf/machine/witherspoon.conf -MACHINEOVERRIDES .= ":witherspoon" KERNEL_DEVICETREE = "${KMACHINE}-bmc-opp-${MACHINE}.dtb" diff --git a/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/conf/machine/witherspoon-tacoma.conf b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/conf/machine/witherspoon-tacoma.conf new file mode 100644 index 00000000..2184847f --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/conf/machine/witherspoon-tacoma.conf @@ -0,0 +1,27 @@ +KERNEL_DEVICETREE = "aspeed-bmc-opp-tacoma.dtb" +UBOOT_MACHINE = "evb-ast2600_defconfig" + +OBMC_POWER_SUPPLY_INSTANCES = "0 1" + +MACHINEOVERRIDES =. "ibm-ac-server:witherspoon:" +require conf/machine/include/ast2600.inc +require conf/machine/include/obmc-bsp-common.inc +require conf/machine/include/openpower.inc +require conf/machine/include/p9.inc + +SERIAL_CONSOLES = "115200;ttyS4" + +MRW_XML = "witherspoon.xml" +PHOSPHOR_MRW_LICENSE = "Apache-2.0" +PHOSPHOR_MRW_LIC_FILES_CHKSUM = "file://LICENSE;md5=e3fc50a88d0a364313df4b21ef20c29e" +PHOSPHOR_MRW_URI = "git://github.com/open-power/witherspoon-xml" +PHOSPHOR_MRW_REV = "c622cb5a5dd3ebc2a4eef558d1b70740f914e6f7" + +VIRTUAL-RUNTIME_phosphor-hwmon-config_df-mrw = "" + +PREFERRED_PROVIDER_virtual/phosphor-fan-control-fan-config_df-mrw = \ + "phosphor-fan-control-fan-config" +PREFERRED_PROVIDER_virtual/phosphor-fan-presence-config_df-mrw = \ + "phosphor-fan-presence-config" + +FLASH_SIZE = "131072" diff --git a/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/conf/machine/witherspoon.conf b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/conf/machine/witherspoon.conf index 579b00d1..20f51590 100644 --- a/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/conf/machine/witherspoon.conf +++ b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/conf/machine/witherspoon.conf @@ -8,6 +8,9 @@ OBMC_POWER_SUPPLY_INSTANCES = "0 1" PREFERRED_PROVIDER_virtual/p9-vcs-workaround = '' +# A machine override for common machine configuration for all of IBM's +# "Accelerated Computing" class of systems. +MACHINEOVERRIDES =. "ibm-ac-server:" require conf/machine/include/ast2500.inc require conf/machine/include/obmc-bsp-common.inc require conf/machine/include/openpower.inc @@ -16,7 +19,7 @@ require conf/machine/include/p9.inc PHOSPHOR_MRW_LICENSE = "Apache-2.0" PHOSPHOR_MRW_LIC_FILES_CHKSUM = "file://LICENSE;md5=e3fc50a88d0a364313df4b21ef20c29e" PHOSPHOR_MRW_URI = "git://github.com/open-power/witherspoon-xml" -PHOSPHOR_MRW_REV = "e76c2fc5aeb512a0eb33438c239746de5b629885" +PHOSPHOR_MRW_REV = "c622cb5a5dd3ebc2a4eef558d1b70740f914e6f7" # Inhibit phosphor-hwmon-config-mrw VIRTUAL-RUNTIME_phosphor-hwmon-config_df-mrw = "" diff --git a/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-core/systemd/systemd_%.bbappend b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-core/systemd/systemd_%.bbappend index 62ea76f7..500c91df 100644 --- a/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-core/systemd/systemd_%.bbappend +++ b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-core/systemd/systemd_%.bbappend @@ -1,13 +1,26 @@ FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:" -SRC_URI += "file://journald-storage-policy.conf" -SRC_URI += "file://systemd-journald-override.conf" -SRC_URI += "file://journald-size-policy.conf" +SRC_URI_append_ibm-ac-server = " file://journald-storage-policy.conf" +SRC_URI_append_ibm-ac-server = " file://systemd-journald-override.conf" +SRC_URI_append_ibm-ac-server = " file://journald-size-policy.conf" -FILES_${PN} += "${systemd_unitdir}/journald.conf.d/journald-storage-policy.conf" -FILES_${PN} += "${systemd_system_unitdir}/systemd-journald.service.d/systemd-journald-override.conf" -FILES_${PN} += "${systemd_unitdir}/journald.conf.d/journald-size-policy.conf" +SRC_URI_append_rainier = " file://journald-storage-policy.conf" +SRC_URI_append_rainier = " file://systemd-journald-override.conf" +SRC_URI_append_rainier = " file://journald-size-policy.conf" -do_install_append() { +FILES_${PN}_append_ibm-ac-server = " ${systemd_unitdir}/journald.conf.d/journald-storage-policy.conf" +FILES_${PN}_append_ibm-ac-server = " ${systemd_system_unitdir}/systemd-journald.service.d/systemd-journald-override.conf" +FILES_${PN}_append_ibm-ac-server = " ${systemd_unitdir}/journald.conf.d/journald-size-policy.conf" + +FILES_${PN}_append_rainier = " ${systemd_unitdir}/journald.conf.d/journald-storage-policy.conf" +FILES_${PN}_append_rainier = " ${systemd_system_unitdir}/systemd-journald.service.d/systemd-journald-override.conf" +FILES_${PN}_append_rainier = " ${systemd_unitdir}/journald.conf.d/journald-size-policy.conf" + +do_install_append_ibm-ac-server() { + install -m 644 -D ${WORKDIR}/journald-storage-policy.conf ${D}${systemd_unitdir}/journald.conf.d/journald-storage-policy.conf + install -m 644 -D ${WORKDIR}/systemd-journald-override.conf ${D}${systemd_system_unitdir}/systemd-journald.service.d/systemd-journald-override.conf + install -m 644 -D ${WORKDIR}/journald-size-policy.conf ${D}${systemd_unitdir}/journald.conf.d/journald-size-policy.conf +} +do_install_append_rainier() { install -m 644 -D ${WORKDIR}/journald-storage-policy.conf ${D}${systemd_unitdir}/journald.conf.d/journald-storage-policy.conf install -m 644 -D ${WORKDIR}/systemd-journald-override.conf ${D}${systemd_system_unitdir}/systemd-journald.service.d/systemd-journald-override.conf install -m 644 -D ${WORKDIR}/journald-size-policy.conf ${D}${systemd_unitdir}/journald.conf.d/journald-size-policy.conf diff --git a/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-kernel/linux/linux-aspeed/0001-ARM-dts-Aspeed-Add-witherspoon-128-machine.patch b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-kernel/linux/linux-aspeed/0001-ARM-dts-Aspeed-Add-witherspoon-128-machine.patch new file mode 100644 index 00000000..86362db1 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-kernel/linux/linux-aspeed/0001-ARM-dts-Aspeed-Add-witherspoon-128-machine.patch @@ -0,0 +1,94 @@ +From 4c69603d48eebce36aedd28fc572bb43c1146f9c Mon Sep 17 00:00:00 2001 +From: Eddie James +Date: Wed, 2 Oct 2019 10:13:36 -0500 +Subject: [PATCH] ARM: dts: Aspeed: Add witherspoon-128 machine + +Create a witherspoon machine with 128MB flash chips. + +Signed-off-by: Eddie James +--- + arch/arm/boot/dts/Makefile | 1 + + .../dts/aspeed-bmc-opp-witherspoon-128.dts | 59 +++++++++++++++++++ + 2 files changed, 60 insertions(+) + create mode 100644 arch/arm/boot/dts/aspeed-bmc-opp-witherspoon-128.dts + +diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile +index 3ad9706337a2..7f60d157ef5d 100644 +--- a/arch/arm/boot/dts/Makefile ++++ b/arch/arm/boot/dts/Makefile +@@ -1292,6 +1292,7 @@ dtb-$(CONFIG_ARCH_ASPEED) += \ + aspeed-bmc-opp-tacoma.dtb \ + aspeed-bmc-opp-vesnin.dtb \ + aspeed-bmc-opp-witherspoon.dtb \ ++ aspeed-bmc-opp-witherspoon-128.dtb \ + aspeed-bmc-opp-zaius.dtb \ + aspeed-bmc-portwell-neptune.dtb \ + aspeed-bmc-quanta-q71l.dtb +diff --git a/arch/arm/boot/dts/aspeed-bmc-opp-witherspoon-128.dts b/arch/arm/boot/dts/aspeed-bmc-opp-witherspoon-128.dts +new file mode 100644 +index 000000000000..1ba673a49334 +--- /dev/null ++++ b/arch/arm/boot/dts/aspeed-bmc-opp-witherspoon-128.dts +@@ -0,0 +1,59 @@ ++// SPDX-License-Identifier: GPL-2.0-or-later ++// Copyright 2019 IBM Corp. ++/dts-v1/; ++ ++#include "aspeed-bmc-opp-witherspoon.dts" ++ ++&fmc { ++ status = "okay"; ++ ++ flash@0 { ++ status = "okay"; ++ label = "bmc"; ++ m25p,fast-read; ++ spi-max-frequency = <100000000>; ++ ++ partitions { ++ #address-cells = < 1 >; ++ #size-cells = < 1 >; ++ compatible = "fixed-partitions"; ++ u-boot@0 { ++ reg = < 0 0x60000 >; ++ label = "u-boot"; ++ }; ++ u-boot-env@60000 { ++ reg = < 0x60000 0x20000 >; ++ label = "u-boot-env"; ++ }; ++ obmc-ubi@80000 { ++ reg = < 0x80000 0x7F80000>; ++ label = "obmc-ubi"; ++ }; ++ }; ++ }; ++ ++ flash@1 { ++ status = "okay"; ++ label = "alt-bmc"; ++ m25p,fast-read; ++ spi-max-frequency = <100000000>; ++ ++ partitions { ++ #address-cells = < 1 >; ++ #size-cells = < 1 >; ++ compatible = "fixed-partitions"; ++ u-boot@0 { ++ reg = < 0 0x60000 >; ++ label = "alt-u-boot"; ++ }; ++ u-boot-env@60000 { ++ reg = < 0x60000 0x20000 >; ++ label = "alt-u-boot-env"; ++ }; ++ obmc-ubi@80000 { ++ reg = < 0x80000 0x7F80000>; ++ label = "alt-obmc-ubi"; ++ }; ++ }; ++ }; ++}; +-- +2.23.0 + diff --git a/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-kernel/linux/linux-aspeed/0001-ARM-dts-Aspeed-Witherspoon-128-Update-BMC-partitioni.patch b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-kernel/linux/linux-aspeed/0001-ARM-dts-Aspeed-Witherspoon-128-Update-BMC-partitioni.patch deleted file mode 100644 index b0e61ccd..00000000 --- a/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-kernel/linux/linux-aspeed/0001-ARM-dts-Aspeed-Witherspoon-128-Update-BMC-partitioni.patch +++ /dev/null @@ -1,744 +0,0 @@ -From 886807887052b408717137acfeb6a8633748a210 Mon Sep 17 00:00:00 2001 -From: Adriana Kobylak -Date: Thu, 7 Feb 2019 11:23:00 -0600 -Subject: [PATCH] ARM: dts: Aspeed: Witherspoon-128: Update BMC partitioning - -Create a Witherspoon-128 dts based off Witherspoon but with 128MB -BMC flash chips. - -Signed-off-by: Adriana Kobylak ---- - arch/arm/boot/dts/Makefile | 1 + - .../boot/dts/aspeed-bmc-opp-witherspoon-128.dts | 708 +++++++++++++++++++++ - 2 files changed, 709 insertions(+) - create mode 100644 arch/arm/boot/dts/aspeed-bmc-opp-witherspoon-128.dts - -diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile -index eb6de52..833c354 100644 ---- a/arch/arm/boot/dts/Makefile -+++ b/arch/arm/boot/dts/Makefile -@@ -1280,6 +1280,7 @@ dtb-$(CONFIG_ARCH_ASPEED) += \ - aspeed-bmc-opp-swift.dtb \ - aspeed-bmc-opp-vesnin.dtb \ - aspeed-bmc-opp-witherspoon.dtb \ -+ aspeed-bmc-opp-witherspoon-128.dtb \ - aspeed-bmc-opp-zaius.dtb \ - aspeed-bmc-portwell-neptune.dtb \ - aspeed-bmc-quanta-q71l.dtb -diff --git a/arch/arm/boot/dts/aspeed-bmc-opp-witherspoon-128.dts b/arch/arm/boot/dts/aspeed-bmc-opp-witherspoon-128.dts -new file mode 100644 -index 0000000..36b4749 ---- /dev/null -+++ b/arch/arm/boot/dts/aspeed-bmc-opp-witherspoon-128.dts -@@ -0,0 +1,708 @@ -+// SPDX-License-Identifier: GPL-2.0+ -+/dts-v1/; -+#include "aspeed-g5.dtsi" -+#include -+#include -+ -+/ { -+ model = "Witherspoon BMC"; -+ compatible = "ibm,witherspoon-bmc", "aspeed,ast2500"; -+ -+ chosen { -+ stdout-path = &uart5; -+ bootargs = "console=ttyS4,115200 earlyprintk"; -+ }; -+ -+ memory@80000000 { -+ reg = <0x80000000 0x20000000>; -+ }; -+ -+ reserved-memory { -+ #address-cells = <1>; -+ #size-cells = <1>; -+ ranges; -+ -+ flash_memory: region@98000000 { -+ no-map; -+ reg = <0x98000000 0x04000000>; /* 64M */ -+ }; -+ -+ gfx_memory: framebuffer { -+ size = <0x01000000>; -+ alignment = <0x01000000>; -+ compatible = "shared-dma-pool"; -+ reusable; -+ }; -+ -+ video_engine_memory: jpegbuffer { -+ size = <0x02000000>; /* 32MM */ -+ alignment = <0x01000000>; -+ compatible = "shared-dma-pool"; -+ reusable; -+ }; -+ }; -+ -+ gpio-keys { -+ compatible = "gpio-keys"; -+ -+ air-water { -+ label = "air-water"; -+ gpios = <&gpio ASPEED_GPIO(B, 5) GPIO_ACTIVE_LOW>; -+ linux,code = ; -+ }; -+ -+ checkstop { -+ label = "checkstop"; -+ gpios = <&gpio ASPEED_GPIO(J, 2) GPIO_ACTIVE_LOW>; -+ linux,code = ; -+ }; -+ -+ ps0-presence { -+ label = "ps0-presence"; -+ gpios = <&gpio ASPEED_GPIO(P, 7) GPIO_ACTIVE_LOW>; -+ linux,code = ; -+ }; -+ -+ ps1-presence { -+ label = "ps1-presence"; -+ gpios = <&gpio ASPEED_GPIO(N, 0) GPIO_ACTIVE_LOW>; -+ linux,code = ; -+ }; -+ }; -+ -+ iio-hwmon-battery { -+ compatible = "iio-hwmon"; -+ io-channels = <&adc 12>; -+ }; -+ -+ gpio-keys-polled { -+ compatible = "gpio-keys-polled"; -+ #address-cells = <1>; -+ #size-cells = <0>; -+ poll-interval = <1000>; -+ -+ fan0-presence { -+ label = "fan0-presence"; -+ gpios = <&pca0 4 GPIO_ACTIVE_LOW>; -+ linux,code = <4>; -+ }; -+ -+ fan1-presence { -+ label = "fan1-presence"; -+ gpios = <&pca0 5 GPIO_ACTIVE_LOW>; -+ linux,code = <5>; -+ }; -+ -+ fan2-presence { -+ label = "fan2-presence"; -+ gpios = <&pca0 6 GPIO_ACTIVE_LOW>; -+ linux,code = <6>; -+ }; -+ -+ fan3-presence { -+ label = "fan3-presence"; -+ gpios = <&pca0 7 GPIO_ACTIVE_LOW>; -+ linux,code = <7>; -+ }; -+ }; -+ -+ leds { -+ compatible = "gpio-leds"; -+ -+ fan0 { -+ retain-state-shutdown; -+ default-state = "keep"; -+ gpios = <&pca0 0 GPIO_ACTIVE_LOW>; -+ }; -+ -+ fan1 { -+ retain-state-shutdown; -+ default-state = "keep"; -+ gpios = <&pca0 1 GPIO_ACTIVE_LOW>; -+ }; -+ -+ fan2 { -+ retain-state-shutdown; -+ default-state = "keep"; -+ gpios = <&pca0 2 GPIO_ACTIVE_LOW>; -+ }; -+ -+ fan3 { -+ retain-state-shutdown; -+ default-state = "keep"; -+ gpios = <&pca0 3 GPIO_ACTIVE_LOW>; -+ }; -+ -+ front-fault { -+ retain-state-shutdown; -+ default-state = "keep"; -+ gpios = <&pca0 13 GPIO_ACTIVE_LOW>; -+ }; -+ -+ front-power { -+ retain-state-shutdown; -+ default-state = "keep"; -+ gpios = <&pca0 14 GPIO_ACTIVE_LOW>; -+ }; -+ -+ front-id { -+ retain-state-shutdown; -+ default-state = "keep"; -+ gpios = <&pca0 15 GPIO_ACTIVE_LOW>; -+ }; -+ -+ rear-fault { -+ gpios = <&gpio ASPEED_GPIO(N, 2) GPIO_ACTIVE_LOW>; -+ }; -+ -+ rear-id { -+ gpios = <&gpio ASPEED_GPIO(N, 4) GPIO_ACTIVE_LOW>; -+ }; -+ -+ rear-power { -+ gpios = <&gpio ASPEED_GPIO(N, 3) GPIO_ACTIVE_LOW>; -+ }; -+ -+ power-button { -+ gpios = <&gpio ASPEED_GPIO(R, 5) GPIO_ACTIVE_LOW>; -+ }; -+ }; -+ -+ fsi: gpio-fsi { -+ compatible = "fsi-master-gpio", "fsi-master"; -+ #address-cells = <2>; -+ #size-cells = <0>; -+ no-gpio-delays; -+ -+ clock-gpios = <&gpio ASPEED_GPIO(AA, 0) GPIO_ACTIVE_HIGH>; -+ data-gpios = <&gpio ASPEED_GPIO(E, 0) GPIO_ACTIVE_HIGH>; -+ mux-gpios = <&gpio ASPEED_GPIO(A, 6) GPIO_ACTIVE_HIGH>; -+ enable-gpios = <&gpio ASPEED_GPIO(D, 0) GPIO_ACTIVE_HIGH>; -+ trans-gpios = <&gpio ASPEED_GPIO(R, 2) GPIO_ACTIVE_HIGH>; -+ }; -+ -+ iio-hwmon-dps310 { -+ compatible = "iio-hwmon"; -+ io-channels = <&dps 0>; -+ }; -+ -+ iio-hwmon-bmp280 { -+ compatible = "iio-hwmon"; -+ io-channels = <&bmp 1>; -+ }; -+ -+}; -+ -+&fmc { -+ status = "okay"; -+ -+ flash@0 { -+ status = "okay"; -+ label = "bmc"; -+ m25p,fast-read; -+ spi-max-frequency = <100000000>; -+ partitions { -+ #address-cells = < 1 >; -+ #size-cells = < 1 >; -+ compatible = "fixed-partitions"; -+ u-boot@0 { -+ reg = < 0 0x60000 >; -+ label = "u-boot"; -+ }; -+ u-boot-env@60000 { -+ reg = < 0x60000 0x20000 >; -+ label = "u-boot-env"; -+ }; -+ obmc-ubi@80000 { -+ reg = < 0x80000 0x7F80000>; -+ label = "obmc-ubi"; -+ }; -+ }; -+ }; -+ -+ flash@1 { -+ status = "okay"; -+ label = "alt-bmc"; -+ m25p,fast-read; -+ spi-max-frequency = <100000000>; -+ partitions { -+ #address-cells = < 1 >; -+ #size-cells = < 1 >; -+ compatible = "fixed-partitions"; -+ u-boot@0 { -+ reg = < 0 0x60000 >; -+ label = "alt-u-boot"; -+ }; -+ u-boot-env@60000 { -+ reg = < 0x60000 0x20000 >; -+ label = "alt-u-boot-env"; -+ }; -+ obmc-ubi@80000 { -+ reg = < 0x80000 0x7F80000>; -+ label = "alt-obmc-ubi"; -+ }; -+ }; -+ }; -+}; -+ -+&spi1 { -+ status = "okay"; -+ pinctrl-names = "default"; -+ pinctrl-0 = <&pinctrl_spi1_default>; -+ -+ flash@0 { -+ status = "okay"; -+ label = "pnor"; -+ m25p,fast-read; -+ spi-max-frequency = <100000000>; -+ }; -+}; -+ -+&uart1 { -+ /* Rear RS-232 connector */ -+ status = "okay"; -+ pinctrl-names = "default"; -+ pinctrl-0 = <&pinctrl_txd1_default -+ &pinctrl_rxd1_default -+ &pinctrl_nrts1_default -+ &pinctrl_ndtr1_default -+ &pinctrl_ndsr1_default -+ &pinctrl_ncts1_default -+ &pinctrl_ndcd1_default -+ &pinctrl_nri1_default>; -+}; -+ -+&uart2 { -+ /* APSS */ -+ status = "okay"; -+ pinctrl-names = "default"; -+ pinctrl-0 = <&pinctrl_txd2_default &pinctrl_rxd2_default>; -+}; -+ -+&uart5 { -+ status = "okay"; -+}; -+ -+&lpc_ctrl { -+ status = "okay"; -+ memory-region = <&flash_memory>; -+ flash = <&spi1>; -+}; -+ -+&mac0 { -+ status = "okay"; -+ pinctrl-names = "default"; -+ pinctrl-0 = <&pinctrl_rmii1_default>; -+ use-ncsi; -+}; -+ -+&i2c2 { -+ status = "okay"; -+ -+ /* MUX -> -+ * Samtec 1 -+ * Samtec 2 -+ */ -+}; -+ -+&i2c3 { -+ status = "okay"; -+ -+ bmp: bmp280@77 { -+ compatible = "bosch,bmp280"; -+ reg = <0x77>; -+ #io-channel-cells = <1>; -+ }; -+ -+ max31785@52 { -+ compatible = "maxim,max31785a"; -+ reg = <0x52>; -+ #address-cells = <1>; -+ #size-cells = <0>; -+ -+ fan@0 { -+ compatible = "pmbus-fan"; -+ reg = <0>; -+ tach-pulses = <2>; -+ maxim,fan-rotor-input = "tach"; -+ maxim,fan-pwm-freq = <25000>; -+ maxim,fan-dual-tach; -+ maxim,fan-no-watchdog; -+ maxim,fan-no-fault-ramp; -+ maxim,fan-ramp = <2>; -+ maxim,fan-fault-pin-mon; -+ }; -+ -+ fan@1 { -+ compatible = "pmbus-fan"; -+ reg = <1>; -+ tach-pulses = <2>; -+ maxim,fan-rotor-input = "tach"; -+ maxim,fan-pwm-freq = <25000>; -+ maxim,fan-dual-tach; -+ maxim,fan-no-watchdog; -+ maxim,fan-no-fault-ramp; -+ maxim,fan-ramp = <2>; -+ maxim,fan-fault-pin-mon; -+ }; -+ -+ fan@2 { -+ compatible = "pmbus-fan"; -+ reg = <2>; -+ tach-pulses = <2>; -+ maxim,fan-rotor-input = "tach"; -+ maxim,fan-pwm-freq = <25000>; -+ maxim,fan-dual-tach; -+ maxim,fan-no-watchdog; -+ maxim,fan-no-fault-ramp; -+ maxim,fan-ramp = <2>; -+ maxim,fan-fault-pin-mon; -+ }; -+ -+ fan@3 { -+ compatible = "pmbus-fan"; -+ reg = <3>; -+ tach-pulses = <2>; -+ maxim,fan-rotor-input = "tach"; -+ maxim,fan-pwm-freq = <25000>; -+ maxim,fan-dual-tach; -+ maxim,fan-no-watchdog; -+ maxim,fan-no-fault-ramp; -+ maxim,fan-ramp = <2>; -+ maxim,fan-fault-pin-mon; -+ }; -+ }; -+ -+ dps: dps310@76 { -+ compatible = "infineon,dps310"; -+ reg = <0x76>; -+ #io-channel-cells = <0>; -+ }; -+ -+ pca0: pca9552@60 { -+ compatible = "nxp,pca9552"; -+ reg = <0x60>; -+ #address-cells = <1>; -+ #size-cells = <0>; -+ -+ gpio-controller; -+ #gpio-cells = <2>; -+ -+ gpio@0 { -+ reg = <0>; -+ type = ; -+ }; -+ -+ gpio@1 { -+ reg = <1>; -+ type = ; -+ }; -+ -+ gpio@2 { -+ reg = <2>; -+ type = ; -+ }; -+ -+ gpio@3 { -+ reg = <3>; -+ type = ; -+ }; -+ -+ gpio@4 { -+ reg = <4>; -+ type = ; -+ }; -+ -+ gpio@5 { -+ reg = <5>; -+ type = ; -+ }; -+ -+ gpio@6 { -+ reg = <6>; -+ type = ; -+ }; -+ -+ gpio@7 { -+ reg = <7>; -+ type = ; -+ }; -+ -+ gpio@8 { -+ reg = <8>; -+ type = ; -+ }; -+ -+ gpio@9 { -+ reg = <9>; -+ type = ; -+ }; -+ -+ gpio@10 { -+ reg = <10>; -+ type = ; -+ }; -+ -+ gpio@11 { -+ reg = <11>; -+ type = ; -+ }; -+ -+ gpio@12 { -+ reg = <12>; -+ type = ; -+ }; -+ -+ gpio@13 { -+ reg = <13>; -+ type = ; -+ }; -+ -+ gpio@14 { -+ reg = <14>; -+ type = ; -+ }; -+ -+ gpio@15 { -+ reg = <15>; -+ type = ; -+ }; -+ }; -+ -+ power-supply@68 { -+ compatible = "ibm,cffps1"; -+ reg = <0x68>; -+ }; -+ -+ power-supply@69 { -+ compatible = "ibm,cffps1"; -+ reg = <0x69>; -+ }; -+}; -+ -+&i2c4 { -+ status = "okay"; -+ -+ tmp423a@4c { -+ compatible = "ti,tmp423"; -+ reg = <0x4c>; -+ }; -+ -+ ir35221@70 { -+ compatible = "infineon,ir35221"; -+ reg = <0x70>; -+ }; -+ -+ ir35221@71 { -+ compatible = "infineon,ir35221"; -+ reg = <0x71>; -+ }; -+}; -+ -+ -+&i2c5 { -+ status = "okay"; -+ -+ tmp423a@4c { -+ compatible = "ti,tmp423"; -+ reg = <0x4c>; -+ }; -+ -+ ir35221@70 { -+ compatible = "infineon,ir35221"; -+ reg = <0x70>; -+ }; -+ -+ ir35221@71 { -+ compatible = "infineon,ir35221"; -+ reg = <0x71>; -+ }; -+}; -+ -+&i2c9 { -+ status = "okay"; -+ -+ tmp275@4a { -+ compatible = "ti,tmp275"; -+ reg = <0x4a>; -+ }; -+}; -+ -+&i2c10 { -+ /* MUX -+ * -> PCIe Slot 3 -+ * -> PCIe Slot 4 -+ */ -+ status = "okay"; -+}; -+ -+&i2c11 { -+ status = "okay"; -+ -+ pca9552: pca9552@60 { -+ compatible = "nxp,pca9552"; -+ reg = <0x60>; -+ #address-cells = <1>; -+ #size-cells = <0>; -+ gpio-controller; -+ #gpio-cells = <2>; -+ -+ gpio-line-names = "PS_SMBUS_RESET_N", "APSS_RESET_N", -+ "GPU0_TH_OVERT_N_BUFF", "GPU1_TH_OVERT_N_BUFF", -+ "GPU2_TH_OVERT_N_BUFF", "GPU3_TH_OVERT_N_BUFF", -+ "GPU4_TH_OVERT_N_BUFF", "GPU5_TH_OVERT_N_BUFF", -+ "GPU0_PWR_GOOD_BUFF", "GPU1_PWR_GOOD_BUFF", -+ "GPU2_PWR_GOOD_BUFF", "GPU3_PWR_GOOD_BUFF", -+ "GPU4_PWR_GOOD_BUFF", "GPU5_PWR_GOOD_BUFF", -+ "12V_BREAKER_FLT_N", "THROTTLE_UNLATCHED_N"; -+ -+ gpio@0 { -+ reg = <0>; -+ type = ; -+ }; -+ -+ gpio@1 { -+ reg = <1>; -+ type = ; -+ }; -+ -+ gpio@2 { -+ reg = <2>; -+ type = ; -+ }; -+ -+ gpio@3 { -+ reg = <3>; -+ type = ; -+ }; -+ -+ gpio@4 { -+ reg = <4>; -+ type = ; -+ }; -+ -+ gpio@5 { -+ reg = <5>; -+ type = ; -+ }; -+ -+ gpio@6 { -+ reg = <6>; -+ type = ; -+ }; -+ -+ gpio@7 { -+ reg = <7>; -+ type = ; -+ }; -+ -+ gpio@8 { -+ reg = <8>; -+ type = ; -+ }; -+ -+ gpio@9 { -+ reg = <9>; -+ type = ; -+ }; -+ -+ gpio@10 { -+ reg = <10>; -+ type = ; -+ }; -+ -+ gpio@11 { -+ reg = <11>; -+ type = ; -+ }; -+ -+ gpio@12 { -+ reg = <12>; -+ type = ; -+ }; -+ -+ gpio@13 { -+ reg = <13>; -+ type = ; -+ }; -+ -+ gpio@14 { -+ reg = <14>; -+ type = ; -+ }; -+ -+ gpio@15 { -+ reg = <15>; -+ type = ; -+ }; -+ }; -+ -+ rtc@32 { -+ compatible = "epson,rx8900"; -+ reg = <0x32>; -+ }; -+ -+ eeprom@51 { -+ compatible = "atmel,24c64"; -+ reg = <0x51>; -+ }; -+ -+ ucd90160@64 { -+ compatible = "ti,ucd90160"; -+ reg = <0x64>; -+ }; -+}; -+ -+&i2c12 { -+ status = "okay"; -+}; -+ -+&i2c13 { -+ status = "okay"; -+}; -+ -+&vuart { -+ status = "okay"; -+}; -+ -+&gfx { -+ status = "okay"; -+ memory-region = <&gfx_memory>; -+}; -+ -+&pinctrl { -+ aspeed,external-nodes = <&gfx &lhc>; -+}; -+ -+&wdt1 { -+ aspeed,reset-type = "none"; -+ aspeed,external-signal; -+ aspeed,ext-push-pull; -+ aspeed,ext-active-high; -+ -+ pinctrl-names = "default"; -+ pinctrl-0 = <&pinctrl_wdtrst1_default>; -+}; -+ -+&wdt2 { -+ aspeed,alt-boot; -+}; -+ -+&ibt { -+ status = "okay"; -+}; -+ -+&adc { -+ status = "okay"; -+}; -+ -+&vhub { -+ status = "okay"; -+}; -+ -+&video { -+ status = "okay"; -+ memory-region = <&video_engine_memory>; -+}; -+ -+#include "ibm-power9-dual.dtsi" --- -1.8.3.1 - diff --git a/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-kernel/linux/linux-aspeed/mihawk.cfg b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-kernel/linux/linux-aspeed/mihawk.cfg new file mode 100644 index 00000000..63c39a9d --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-kernel/linux/linux-aspeed/mihawk.cfg @@ -0,0 +1,10 @@ +CONFIG_HWMON=y +CONFIG_SENSORS_IIO_HWMON=y +CONFIG_SENSORS_TMP421=y +CONFIG_SENSORS_MAX31785=y +CONFIG_SENSORS_UCD9000=y +CONFIG_RTC_DRV_RV8803=y +CONFIG_IIO=y +CONFIG_BMP280=y +CONFIG_SENSORS_TMP275=y +CONFIG_SENSORS_EMC1403=y diff --git a/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-kernel/linux/linux-aspeed/rainier.cfg b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-kernel/linux/linux-aspeed/rainier.cfg new file mode 100644 index 00000000..dc41d583 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-kernel/linux/linux-aspeed/rainier.cfg @@ -0,0 +1,7 @@ +CONFIG_SENSORS_IIO_HWMON=y +CONFIG_SENSORS_TMP421=y +CONFIG_SENSORS_MAX31785=y +CONFIG_SENSORS_UCD9000=y +CONFIG_RTC_DRV_RV8803=y +CONFIG_IIO=y +CONFIG_BMP280=y diff --git a/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-kernel/linux/linux-aspeed_%.bbappend b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-kernel/linux/linux-aspeed_%.bbappend index e41a430c..30df8a8a 100644 --- a/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-kernel/linux/linux-aspeed_%.bbappend +++ b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-kernel/linux/linux-aspeed_%.bbappend @@ -1,3 +1,5 @@ FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:" -SRC_URI += "file://witherspoon.cfg" -SRC_URI_append_witherspoon-128 = " file://0001-ARM-dts-Aspeed-Witherspoon-128-Update-BMC-partitioni.patch" +SRC_URI_append_ibm-ac-server = " file://witherspoon.cfg" +SRC_URI_append_rainier = " file://rainier.cfg" +SRC_URI_append_mihawk = " file://mihawk.cfg" +SRC_URI_append_witherspoon-128 = " file://0001-ARM-dts-Aspeed-Add-witherspoon-128-machine.patch" diff --git a/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/chassis/avsbus-control.bb b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/chassis/avsbus-control.bb index d2804dfc..2e98aaf9 100644 --- a/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/chassis/avsbus-control.bb +++ b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/chassis/avsbus-control.bb @@ -1,7 +1,7 @@ -SUMMARY = "Witherspoon AVSBus control" +SUMMARY = "AVSBus control" PR = "r1" LICENSE = "Apache-2.0" -LIC_FILES_CHKSUM = "file://${IBMBASE}/COPYING.apache-2.0;md5=34400b68072d710fecd0a2940a0d1658" +LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10" inherit allarch inherit obmc-phosphor-systemd @@ -10,15 +10,18 @@ RDEPENDS_${PN} += "i2c-tools" S = "${WORKDIR}" -SRC_URI += "file://avsbus-disable.sh \ - file://avsbus-enable.sh" +SRC_URI += "file://avsbus-enable.sh" +SRC_URI_append_witherspoon = " file://avsbus-disable.sh" do_install() { install -d ${D}${bindir} - install -m 0755 ${S}/avsbus-disable.sh ${D}${bindir}/avsbus-disable.sh install -m 0755 ${S}/avsbus-enable.sh ${D}${bindir}/avsbus-enable.sh } +do_install_append_witherspoon() { + install -m 0755 ${S}/avsbus-disable.sh ${D}${bindir}/avsbus-disable.sh +} + TMPL_EN= "avsbus-enable@.service" TMPL_DIS= "avsbus-disable@.service" INSTFMT_EN= "avsbus-enable@{0}.service" @@ -29,5 +32,5 @@ FMT_DIS = "../${TMPL_DIS}:${TGTFMT}.requires/${INSTFMT_DIS}" SYSTEMD_SERVICE_${PN} += "${TMPL_EN}" SYSTEMD_LINK_${PN} += "${@compose_list(d, 'FMT_EN', 'OBMC_CHASSIS_INSTANCES')}" -SYSTEMD_SERVICE_${PN} += "${TMPL_DIS}" -SYSTEMD_LINK_${PN} += "${@compose_list(d, 'FMT_DIS', 'OBMC_CHASSIS_INSTANCES')}" +SYSTEMD_SERVICE_${PN}_append_witherspoon = " ${TMPL_DIS}" +SYSTEMD_LINK_${PN}_append_witherspoon = " ${@compose_list(d, 'FMT_DIS', 'OBMC_CHASSIS_INSTANCES')}" diff --git a/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/chassis/avsbus-control/mihawk/avsbus-disable.sh b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/chassis/avsbus-control/mihawk/avsbus-disable.sh new file mode 100755 index 00000000..96f6cf88 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/chassis/avsbus-control/mihawk/avsbus-disable.sh @@ -0,0 +1,16 @@ +#!/bin/sh + +i2cset -y 4 0x70 0x00 0x00 b # VDD 0 - PAGE set +i2cset -y 4 0x70 0x01 0x80 b # VDD 0 +i2cset -y 4 0x70 0x00 0x01 b # VCS 0 - PAGE set +i2cset -y 4 0x70 0x01 0x80 b # VCS 0 +i2cset -y 4 0x70 0x00 0x00 b # VCS 0 - PAGE reset +i2cset -y 4 0x72 0x00 0x00 b # VDN 0 - PAGE set +i2cset -y 4 0x72 0x01 0x80 b # VDN 0 +i2cset -y 5 0x70 0x00 0x00 b # VDD 1 - PAGE set +i2cset -y 5 0x70 0x01 0x80 b # VDD 1 +i2cset -y 5 0x70 0x00 0x01 b # VCS 1 - PAGE set +i2cset -y 5 0x70 0x01 0x80 b # VCS 1 +i2cset -y 5 0x70 0x00 0x00 b # VCS 1 - PAGE reset +i2cset -y 5 0x72 0x00 0x00 b # VDN 1 - PAGE set +i2cset -y 5 0x72 0x01 0x80 b # VDN 1 diff --git a/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/chassis/avsbus-control/swift/avsbus-disable@.service b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/chassis/avsbus-control/mihawk/avsbus-disable@.service similarity index 75% rename from Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/chassis/avsbus-control/swift/avsbus-disable@.service rename to Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/chassis/avsbus-control/mihawk/avsbus-disable@.service index fbab180c..5396948b 100644 --- a/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/chassis/avsbus-control/swift/avsbus-disable@.service +++ b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/chassis/avsbus-control/mihawk/avsbus-disable@.service @@ -1,6 +1,8 @@ [Unit] Description=Disable the AVS bus on the VRMs -Before=vrm-control@%i.service +Wants=ir35221-on-unbind@%i.service +After=ir35221-on-unbind@%i.service +Before=avsbus-enable@%i.service Conflicts=obmc-chassis-poweroff@%i.target ConditionPathExists=!/run/openbmc/chassis@%i-on diff --git a/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/chassis/avsbus-control/mihawk/avsbus-enable.sh b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/chassis/avsbus-control/mihawk/avsbus-enable.sh new file mode 100755 index 00000000..67acc730 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/chassis/avsbus-control/mihawk/avsbus-enable.sh @@ -0,0 +1,16 @@ +#!/bin/sh + +i2cset -y 4 0x70 0x00 0x00 b # VDD 0 - PAGE set +i2cset -y 4 0x70 0x01 0xB0 b # VDD 0 +i2cset -y 4 0x70 0x00 0x01 b # VCS 0 - PAGE set +i2cset -y 4 0x70 0x01 0xB0 b # VCS 0 +i2cset -y 4 0x70 0x00 0x00 b # VCS 0 - PAGE reset +i2cset -y 4 0x72 0x00 0x00 b # VDN 0 - PAGE set +i2cset -y 4 0x72 0x01 0xB0 b # VDN 0 +i2cset -y 5 0x70 0x00 0x00 b # VDD 1 - PAGE set +i2cset -y 5 0x70 0x01 0xB0 b # VDD 1 +i2cset -y 5 0x70 0x00 0x01 b # VCS 1 - PAGE set +i2cset -y 5 0x70 0x01 0xB0 b # VCS 1 +i2cset -y 5 0x70 0x00 0x00 b # VCS 1 - PAGE reset +i2cset -y 5 0x72 0x00 0x00 b # VDN 1 - PAGE set +i2cset -y 5 0x72 0x01 0xB0 b # VDN 1 diff --git a/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/chassis/avsbus-control/mihawk/avsbus-enable@.service b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/chassis/avsbus-control/mihawk/avsbus-enable@.service new file mode 100644 index 00000000..34d9e4b0 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/chassis/avsbus-control/mihawk/avsbus-enable@.service @@ -0,0 +1,15 @@ +[Unit] +Description=Enable the AVS bus on VRMs +Wants=op-power-start@%i.service +After=op-power-start@%i.service +Conflicts=obmc-chassis-poweroff@%i.target +ConditionPathExists=!/run/openbmc/chassis@%i-on + +[Service] +ExecStart=/usr/bin/env avsbus-enable.sh +SyslogIdentifier=avsbus-enable.sh +Type=oneshot +RemainAfterExit=yes + +[Install] +WantedBy=obmc-chassis-poweron@%i.target diff --git a/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/chassis/avsbus-control/swift/avsbus-disable.sh b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/chassis/avsbus-control/swift/avsbus-disable.sh deleted file mode 100644 index 61d8516b..00000000 --- a/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/chassis/avsbus-control/swift/avsbus-disable.sh +++ /dev/null @@ -1,18 +0,0 @@ -#!/bin/sh -# For each AVSBus attached rail go back to using VOUT_COMMAND (PMBus voltage) -# instead of AVSBus and do *not* update VOUT_COMMAND with last voltage sent via -# AVSBus. This should be run after power-down. This is platform specific -# settings that must be updated/removed if not Swift. - -i2cset -y 9 0x70 0x00 0x00 b # VDD 0 - PAGE set -i2cset -y 9 0x70 0x01 0x80 b # VDD 0 -i2cset -y 9 0x71 0x00 0x01 b # VCS 0 - PAGE set -i2cset -y 9 0x71 0x01 0x80 b # VCS 0 -i2cset -y 9 0x71 0x00 0x00 b # VDN 0 - PAGE set -i2cset -y 9 0x71 0x01 0x80 b # VDN 0 -i2cset -y 10 0x70 0x00 0x00 b # VDD 1 - PAGE set -i2cset -y 10 0x70 0x01 0x80 b # VDD 1 -i2cset -y 10 0x71 0x00 0x01 b # VCS 1 - PAGE set -i2cset -y 10 0x71 0x01 0x80 b # VCS 1 -i2cset -y 10 0x71 0x00 0x00 b # VDN 1 - PAGE set -i2cset -y 10 0x71 0x01 0x80 b # VDN 1 diff --git a/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/chassis/avsbus-control/swift/avsbus-enable.sh b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/chassis/avsbus-control/swift/avsbus-enable.sh index d3840910..7ff607a4 100644 --- a/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/chassis/avsbus-control/swift/avsbus-enable.sh +++ b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/chassis/avsbus-control/swift/avsbus-enable.sh @@ -6,20 +6,15 @@ # updated/removed if not Swift. i2cset -y 9 0x70 0x00 0x00 b # VDD 0 - PAGE set -i2cset -y 9 0x70 0x21 0xE6 0x00 i # VDD 0 - Set default HW boot voltage to 0.9V i2cset -y 9 0x70 0x01 0xB0 b # VDD 0 i2cset -y 9 0x71 0x00 0x01 b # VCS 0 - PAGE set -i2cset -y 9 0x71 0x21 0x00 0x01 i # VCS 0 - Set default HW boot voltage to 1.0V i2cset -y 9 0x71 0x01 0xB0 b # VCS 0 i2cset -y 9 0x71 0x00 0x00 b # VDN 0 - PAGE set -i2cset -y 9 0x71 0x21 0xCD 0x00 i # VDN 0 - Set default HW boot voltage to 0.8V i2cset -y 9 0x71 0x01 0xB0 b # VDN 0 + i2cset -y 10 0x70 0x00 0x00 b # VDD 1 - PAGE set -i2cset -y 10 0x70 0x21 0xE6 0x00 i # VDD 1 - Set default HW boot voltage to 0.9V i2cset -y 10 0x70 0x01 0xB0 b # VDD 1 i2cset -y 10 0x71 0x00 0x01 b # VCS 1 - PAGE set -i2cset -y 10 0x71 0x21 0x00 0x01 i # VCS 1 - Set default HW boot voltage to 1.0V i2cset -y 10 0x71 0x01 0xB0 b # VCS 1 i2cset -y 10 0x71 0x00 0x00 b # VDN 1 - PAGE set -i2cset -y 10 0x71 0x21 0xCD 0x00 i # VDN 1 - Set default HW boot voltage to 0.8V i2cset -y 10 0x71 0x01 0xB0 b # VDN 1 diff --git a/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/chassis/avsbus-control/swift/avsbus-enable@.service b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/chassis/avsbus-control/swift/avsbus-enable@.service new file mode 100644 index 00000000..45776aa7 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/chassis/avsbus-control/swift/avsbus-enable@.service @@ -0,0 +1,15 @@ +[Unit] +Description=Enable the AVS bus on VRMs +Wants=op-power-start@%i.service +Before=op-power-start@%i.service +Conflicts=obmc-chassis-poweroff@%i.target +ConditionPathExists=!/run/openbmc/chassis@%i-on + +[Service] +ExecStart={bindir}/avsbus-enable.sh +SyslogIdentifier=avsbus-enable.sh +Type=oneshot +RemainAfterExit=yes + +[Install] +WantedBy=obmc-chassis-poweron@%i.target diff --git a/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/chassis/avsbus-control/avsbus-enable@.service b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/chassis/avsbus-control/witherspoon/avsbus-enable@.service similarity index 100% rename from Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/chassis/avsbus-control/avsbus-enable@.service rename to Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/chassis/avsbus-control/witherspoon/avsbus-enable@.service diff --git a/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/chassis/obmc-op-control-power_%/obmc/power_control b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/chassis/obmc-op-control-power_%/ibm-ac-server/obmc/power_control similarity index 100% rename from Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/chassis/obmc-op-control-power_%/obmc/power_control rename to Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/chassis/obmc-op-control-power_%/ibm-ac-server/obmc/power_control diff --git a/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/chassis/power-workarounds.bb b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/chassis/power-workarounds.bb index c5108429..af8babb5 100644 --- a/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/chassis/power-workarounds.bb +++ b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/chassis/power-workarounds.bb @@ -1,8 +1,9 @@ SUMMARY = "Power device Workarounds" PR = "r1" LICENSE = "Apache-2.0" -LIC_FILES_CHKSUM = "file://${IBMBASE}/COPYING.apache-2.0;md5=34400b68072d710fecd0a2940a0d1658" +LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10" +inherit allarch inherit obmc-phosphor-systemd RDEPENDS_${PN} += "i2c-tools" diff --git a/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/chassis/power-workarounds/witherspoon/power-workarounds@.service b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/chassis/power-workarounds/witherspoon/power-workarounds@.service index 74d8e4bf..3bd1287e 100644 --- a/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/chassis/power-workarounds/witherspoon/power-workarounds@.service +++ b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/chassis/power-workarounds/witherspoon/power-workarounds@.service @@ -3,6 +3,7 @@ Description=Perform power workarounds on VRMs Wants=ir35221-on-unbind@%i.service After=ir35221-on-unbind@%i.service Before=avsbus-disable@%i.service +Before=obmc-power-on@%i.target Conflicts=obmc-chassis-poweroff@%i.target ConditionPathExists=!/run/openbmc/chassis@%i-on diff --git a/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/chassis/vrm-control.bb b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/chassis/vrm-control.bb index 36416e94..8a0d7a6e 100644 --- a/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/chassis/vrm-control.bb +++ b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/chassis/vrm-control.bb @@ -1,23 +1,27 @@ -SUMMARY = "Witherspoon VRM Overrides" -DESCRIPTION = "Sets Witherspoon VRMs to custom voltages" +SUMMARY = "VRM Overrides" +DESCRIPTION = "Sets VRMs to custom voltages" PR = "r1" LICENSE = "Apache-2.0" -LIC_FILES_CHKSUM = "file://${IBMBASE}/COPYING.apache-2.0;md5=34400b68072d710fecd0a2940a0d1658" +LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10" +inherit allarch inherit obmc-phosphor-systemd RDEPENDS_${PN} += "i2c-tools bash" S = "${WORKDIR}" -SRC_URI += "file://vrm-control.sh \ - file://ir35221-unbind-bind.sh" +SRC_URI = "file://ir35221-unbind-bind.sh" +SRC_URI_append_ibm-ac-server = " file://vrm-control.sh" do_install() { install -d ${D}${bindir} - install -m 0755 ${WORKDIR}/vrm-control.sh ${D}${bindir}/vrm-control.sh install -m 0755 ${WORKDIR}/ir35221-unbind-bind.sh ${D}${bindir}/ir35221-unbind-bind.sh } +do_install_append_ibm-ac-server() { + install -m 0755 ${WORKDIR}/vrm-control.sh ${D}${bindir}/vrm-control.sh +} + TMPL = "vrm-control@.service" INSTFMT = "vrm-control@{0}.service" TGTFMT_ON = "obmc-chassis-poweron@{0}.target" @@ -31,7 +35,8 @@ TMPL_ON_IRUNBIND = "ir35221-on-unbind@.service" INSTFMT_ON_IRUNBIND = "ir35221-on-unbind@{0}.service" FMT_ON_IRUNBIND = "../${TMPL_ON_IRUNBIND}:${TGTFMT_ON}.requires/${INSTFMT_ON_IRUNBIND}" -SYSTEMD_SERVICE_${PN} += "${TMPL} ${TMPL_ON_IRUNBIND} ${TMPL_ON_IRBIND}" -SYSTEMD_LINK_${PN} += "${@compose_list(d, 'FMT_ON', 'OBMC_CHASSIS_INSTANCES')}" +SYSTEMD_SERVICE_${PN} += "${TMPL_ON_IRUNBIND} ${TMPL_ON_IRBIND}" +SYSTEMD_SERVICE_${PN}_append_ibm-ac-server = " ${TMPL}" +SYSTEMD_LINK_${PN}_append_ibm-ac-server = " ${@compose_list(d, 'FMT_ON', 'OBMC_CHASSIS_INSTANCES')}" SYSTEMD_LINK_${PN} += "${@compose_list(d, 'FMT_ON_IRBIND', 'OBMC_CHASSIS_INSTANCES')}" SYSTEMD_LINK_${PN} += "${@compose_list(d, 'FMT_ON_IRUNBIND', 'OBMC_CHASSIS_INSTANCES')}" diff --git a/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/chassis/vrm-control/ir35221-unbind-bind.sh b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/chassis/vrm-control/ibm-ac-server/ir35221-unbind-bind.sh similarity index 100% rename from Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/chassis/vrm-control/ir35221-unbind-bind.sh rename to Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/chassis/vrm-control/ibm-ac-server/ir35221-unbind-bind.sh diff --git a/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/chassis/vrm-control/mihawk/ir35221-unbind-bind.sh b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/chassis/vrm-control/mihawk/ir35221-unbind-bind.sh new file mode 100755 index 00000000..27ca3b9d --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/chassis/vrm-control/mihawk/ir35221-unbind-bind.sh @@ -0,0 +1,81 @@ +#!/bin/bash +# ######################################################### +# Script to run on mihawk BMC to unbind/bind the ir35221 +# driver's devices + +status=0 +max_retries=3 +driver_path="/sys/bus/i2c/drivers/ir35221/" +platform_path="/sys/devices/platform/ahb/ahb:apb/ahb:apb:bus@1e78a000/" + +unbind_driver () { + echo $1 > $driver_path/unbind +} + +bind_driver () { + device=$1 + tries=0 + + until [ $tries -ge $max_retries ]; do + tries=$((tries+1)) + ret=0 + echo $device > $driver_path/bind || ret=$? + if [ $ret -ne 0 ]; then + echo "VRM $1 bind failed. Try $tries" + sleep 1 + else + tries=$((max_retries+1)) + fi + done + + #Script will return a nonzero value if any binds fail. + if [ $ret -ne 0 ]; then + status=$ret + fi +} + +if [ "$1" = "unbind" ] +then + if [ -e $driver_path/4-0070 ] + then + unbind_driver "4-0070" + fi + + if [ -e $driver_path/4-0072 ] + then + unbind_driver "4-0072" + fi + + if [ -e $driver_path/5-0070 ] + then + unbind_driver "5-0070" + fi + + if [ -e $driver_path/5-0072 ] + then + unbind_driver "5-0072" + fi +elif [ "$1" = "bind" ] +then + if [ -e $platform_path/1e78a140.i2c-bus/i2c-4/4-0070 ] + then + bind_driver "4-0070" + fi + + if [ -e $platform_path/1e78a140.i2c-bus/i2c-4/4-0072 ] + then + bind_driver "4-0072" + fi + + if [ -e $platform_path/1e78a180.i2c-bus/i2c-5/5-0070 ] + then + bind_driver "5-0070" + fi + + if [ -e $platform_path/1e78a180.i2c-bus/i2c-5/5-0072 ] + then + bind_driver "5-0072" + fi +fi + +exit $status diff --git a/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/configuration/acx22-yaml-config.bb b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/configuration/acx22-yaml-config.bb index efe9cd5d..5ec7d456 100644 --- a/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/configuration/acx22-yaml-config.bb +++ b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/configuration/acx22-yaml-config.bb @@ -1,25 +1,26 @@ SUMMARY = "YAML configuration for ACx22 systems" PR = "r1" LICENSE = "Apache-2.0" -LIC_FILES_CHKSUM = "file://${IBMBASE}/COPYING.apache-2.0;md5=34400b68072d710fecd0a2940a0d1658" +LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10" inherit allarch inherit mrw-xml -EXTRA_SRC_URI = "" -EXTRA_SRC_URI_witherspoon = " \ - file://ac922-ipmi-extra-hwmon-sensors.yaml \ - " -SRC_URI = " \ +SRC_URI_ibm-ac-server = " \ file://acx22-ipmi-fru-bmc.yaml \ file://acx22-ipmi-fru-not-sent-by-host.yaml \ file://acx22-ipmi-hwmon-sensors.yaml \ file://acx22-ipmi-inventory-sensors.yaml \ file://acx22-ipmi-occ-sensors.yaml \ file://acx22-ipmi-sensors-mrw.yaml \ - ${EXTRA_SRC_URI} \ " - +SRC_URI_mihawk = " \ + file://acx22-ipmi-fru-bmc.yaml \ + file://acx22-ipmi-hwmon-sensors.yaml \ + file://acx22-ipmi-inventory-sensors.yaml \ + file://acx22-ipmi-occ-sensors.yaml \ + file://acx22-ipmi-sensors-mrw.yaml \ + " DEPENDS = " \ mrw-native \ mrw-perl-tools-native \ @@ -28,18 +29,16 @@ DEPENDS = " \ S = "${WORKDIR}" -ACx22_IPMI_EXTRA_FRU_READ_YAMLS = " \ +ACx22_IPMI_EXTRA_FRU_READ_YAMLS_ibm-ac-server = " \ acx22-ipmi-fru-bmc.yaml \ acx22-ipmi-fru-not-sent-by-host.yaml \ " -ACx22_IPMI_EXTRA_MACHINE_SENSOR_YAMLS = "" -ACx22_IPMI_EXTRA_MACHINE_SENSOR_YAMLS_witherspoon = " \ - ac922-ipmi-extra-hwmon-sensors.yaml \ +ACx22_IPMI_EXTRA_FRU_READ_YAMLS_mihawk = " \ + acx22-ipmi-fru-bmc.yaml \ " ACx22_IPMI_EXTRA_SENSOR_YAMLS = " \ acx22-ipmi-hwmon-sensors.yaml \ acx22-ipmi-occ-sensors.yaml \ - ${ACx22_IPMI_EXTRA_MACHINE_SENSOR_YAMLS} \ " do_install() { @@ -51,18 +50,19 @@ do_install() { # generate extra-properties.yaml from the MRW for ipmi-fru-parser $perlbin $scriptpath/gen_fru_properties.pl -m $mrw \ -c $op_configpath/ipmi-fru-properties-mrw.yaml \ - -o extra-properties.yaml + -o extra-properties.yaml ${EXTRA_MRW_SCRIPT_ARGS} # generate fru-read.yaml from the MRW, for ipmid and ipmi-fru-parser $perlbin $scriptpath/gen_ipmi_fru.pl -i $mrw \ -m $op_configpath/ipmi-hostboot-fru-mrw.yaml \ - -o fru-read-partial.yaml + -o fru-read-partial.yaml ${EXTRA_MRW_SCRIPT_ARGS} cat fru-read-partial.yaml ${ACx22_IPMI_EXTRA_FRU_READ_YAMLS} \ > fru-read.yaml # generate inventory-sensors.yaml from the MRW, for ipmid $perlbin $scriptpath/gen_ipmi_sel.pl -i $mrw \ - -m acx22-ipmi-inventory-sensors.yaml -o inventory-sensors.yaml + -m acx22-ipmi-inventory-sensors.yaml -o inventory-sensors.yaml \ + ${EXTRA_MRW_SCRIPT_ARGS} # generate sensors.yaml from the MRW, for ipmid cat acx22-ipmi-sensors-mrw.yaml \ @@ -70,7 +70,7 @@ do_install() { $op_configpath/ipmi-occ-active-sensor-mrw.yaml \ > sensors-mrw.yaml $perlbin $scriptpath/gen_ipmi_sensor.pl -i $mrw -m sensors-mrw.yaml \ - -o sensors-partial.yaml + -o sensors-partial.yaml ${EXTRA_MRW_SCRIPT_ARGS} cat sensors-partial.yaml ${ACx22_IPMI_EXTRA_SENSOR_YAMLS} \ > sensors.yaml diff --git a/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/configuration/acx22-yaml-config/acx22-ipmi-hwmon-sensors.yaml b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/configuration/acx22-yaml-config/acx22-ipmi-hwmon-sensors.yaml deleted file mode 100644 index 6d22a613..00000000 --- a/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/configuration/acx22-yaml-config/acx22-ipmi-hwmon-sensors.yaml +++ /dev/null @@ -1,462 +0,0 @@ -221: - bExp: 0 - entityID: 29 - entityInstance: 1 - interfaces: - xyz.openbmc_project.Sensor.Value: - Value: - Offsets: - 255: - type: int64_t - multiplierM: 100 - offsetB: 0 - path: /xyz/openbmc_project/sensors/fan_tach/fan0_0 - rExp: 0 - readingType: readingData - scale: 0 - sensorNamePattern: nameLeaf - sensorReadingType: 1 - sensorType: 4 - serviceInterface: org.freedesktop.DBus.Properties - unit: xyz.openbmc_project.Sensor.Value.Unit.RPMS -223: - bExp: 0 - entityID: 29 - entityInstance: 3 - interfaces: - xyz.openbmc_project.Sensor.Value: - Value: - Offsets: - 255: - type: int64_t - multiplierM: 100 - offsetB: 0 - path: /xyz/openbmc_project/sensors/fan_tach/fan1_0 - rExp: 0 - readingType: readingData - scale: 0 - sensorNamePattern: nameLeaf - sensorReadingType: 1 - sensorType: 4 - serviceInterface: org.freedesktop.DBus.Properties - unit: xyz.openbmc_project.Sensor.Value.Unit.RPMS -227: - bExp: 0 - entityID: 29 - entityInstance: 5 - interfaces: - xyz.openbmc_project.Sensor.Value: - Value: - Offsets: - 255: - type: int64_t - multiplierM: 100 - offsetB: 0 - path: /xyz/openbmc_project/sensors/fan_tach/fan2_0 - rExp: 0 - readingType: readingData - scale: 0 - sensorNamePattern: nameLeaf - sensorReadingType: 1 - sensorType: 4 - serviceInterface: org.freedesktop.DBus.Properties - unit: xyz.openbmc_project.Sensor.Value.Unit.RPMS -229: - bExp: 0 - entityID: 29 - entityInstance: 7 - interfaces: - xyz.openbmc_project.Sensor.Value: - Value: - Offsets: - 255: - type: int64_t - multiplierM: 100 - offsetB: 0 - path: /xyz/openbmc_project/sensors/fan_tach/fan3_0 - rExp: 0 - readingType: readingData - scale: 0 - sensorNamePattern: nameLeaf - sensorReadingType: 1 - sensorType: 4 - serviceInterface: org.freedesktop.DBus.Properties - unit: xyz.openbmc_project.Sensor.Value.Unit.RPMS -231: - bExp: 0 - entityID: 10 - entityInstance: 1 - interfaces: - xyz.openbmc_project.Sensor.Value: - Value: - Offsets: - 255: - type: int64_t - multiplierM: 2 - offsetB: 0 - path: /xyz/openbmc_project/sensors/power/fan_disk_power - rExp: 0 - readingType: readingData - scale: -6 - sensorNamePattern: nameLeaf - sensorReadingType: 1 - sensorType: 8 - serviceInterface: org.freedesktop.DBus.Properties - unit: xyz.openbmc_project.Sensor.Value.Unit.Watts -238: - bExp: 0 - entityID: 10 - entityInstance: 9 - interfaces: - xyz.openbmc_project.Sensor.Value: - Value: - Offsets: - 255: - type: int64_t - multiplierM: 1 - offsetB: 0 - path: /xyz/openbmc_project/sensors/power/p0_io_power - rExp: 0 - readingType: readingData - scale: -6 - sensorNamePattern: nameLeaf - sensorReadingType: 1 - sensorType: 8 - serviceInterface: org.freedesktop.DBus.Properties - unit: xyz.openbmc_project.Sensor.Value.Unit.Watts -239: - bExp: 0 - entityID: 10 - entityInstance: 10 - interfaces: - xyz.openbmc_project.Sensor.Value: - Value: - Offsets: - 255: - type: int64_t - multiplierM: 1 - offsetB: 0 - path: /xyz/openbmc_project/sensors/power/p1_io_power - rExp: 0 - readingType: readingData - scale: -6 - sensorNamePattern: nameLeaf - sensorReadingType: 1 - sensorType: 8 - serviceInterface: org.freedesktop.DBus.Properties - unit: xyz.openbmc_project.Sensor.Value.Unit.Watts -240: - bExp: 0 - entityID: 10 - entityInstance: 11 - interfaces: - xyz.openbmc_project.Sensor.Value: - Value: - Offsets: - 255: - type: int64_t - multiplierM: 2 - offsetB: 0 - path: /xyz/openbmc_project/sensors/power/p0_mem_power - rExp: 0 - readingType: readingData - scale: -6 - sensorNamePattern: nameLeaf - sensorReadingType: 1 - sensorType: 8 - serviceInterface: org.freedesktop.DBus.Properties - unit: xyz.openbmc_project.Sensor.Value.Unit.Watts -241: - bExp: 0 - entityID: 10 - entityInstance: 12 - interfaces: - xyz.openbmc_project.Sensor.Value: - Value: - Offsets: - 255: - type: int64_t - multiplierM: 2 - offsetB: 0 - path: /xyz/openbmc_project/sensors/power/p1_mem_power - rExp: 0 - readingType: readingData - scale: -6 - sensorNamePattern: nameLeaf - sensorReadingType: 1 - sensorType: 8 - serviceInterface: org.freedesktop.DBus.Properties - unit: xyz.openbmc_project.Sensor.Value.Unit.Watts -242: - bExp: 0 - entityID: 10 - entityInstance: 13 - interfaces: - xyz.openbmc_project.Sensor.Value: - Value: - Offsets: - 255: - type: int64_t - multiplierM: 2 - offsetB: 0 - path: /xyz/openbmc_project/sensors/power/p0_power - rExp: 0 - readingType: readingData - scale: -6 - sensorNamePattern: nameLeaf - sensorReadingType: 1 - sensorType: 8 - serviceInterface: org.freedesktop.DBus.Properties - unit: xyz.openbmc_project.Sensor.Value.Unit.Watts -243: - bExp: 0 - entityID: 10 - entityInstance: 14 - interfaces: - xyz.openbmc_project.Sensor.Value: - Value: - Offsets: - 255: - type: int64_t - multiplierM: 2 - offsetB: 0 - path: /xyz/openbmc_project/sensors/power/p1_power - rExp: 0 - readingType: readingData - scale: -6 - sensorNamePattern: nameLeaf - sensorReadingType: 1 - sensorType: 8 - serviceInterface: org.freedesktop.DBus.Properties - unit: xyz.openbmc_project.Sensor.Value.Unit.Watts -244: - bExp: 0 - entityID: 10 - entityInstance: 15 - interfaces: - xyz.openbmc_project.Sensor.Value: - Value: - Offsets: - 255: - type: int64_t - multiplierM: 10 - offsetB: 0 - path: /xyz/openbmc_project/sensors/power/ps0_input_power - rExp: 0 - readingType: readingData - scale: -6 - sensorNamePattern: nameLeaf - sensorReadingType: 1 - sensorType: 8 - serviceInterface: org.freedesktop.DBus.Properties - unit: xyz.openbmc_project.Sensor.Value.Unit.Watts -245: - bExp: 0 - entityID: 10 - entityInstance: 16 - interfaces: - xyz.openbmc_project.Sensor.Value: - Value: - Offsets: - 255: - type: int64_t - multiplierM: 10 - offsetB: 0 - path: /xyz/openbmc_project/sensors/power/ps1_input_power - rExp: 0 - readingType: readingData - scale: -6 - sensorNamePattern: nameLeaf - sensorReadingType: 1 - sensorType: 8 - serviceInterface: org.freedesktop.DBus.Properties - unit: xyz.openbmc_project.Sensor.Value.Unit.Watts -246: - bExp: 0 - entityID: 10 - entityInstance: 17 - interfaces: - xyz.openbmc_project.Sensor.Value: - Value: - Offsets: - 255: - type: int64_t - multiplierM: 20 - offsetB: 0 - path: /xyz/openbmc_project/sensors/power/total_power - rExp: 0 - readingType: readingData - scale: -6 - sensorNamePattern: nameLeaf - sensorReadingType: 1 - sensorType: 8 - serviceInterface: org.freedesktop.DBus.Properties - unit: xyz.openbmc_project.Sensor.Value.Unit.Watts -247: - bExp: 0 - entityID: 10 - entityInstance: 19 - interfaces: - xyz.openbmc_project.Sensor.Value: - Value: - Offsets: - 255: - type: int64_t - multiplierM: 2 - offsetB: 0 - path: /xyz/openbmc_project/sensors/voltage/ps0_input_voltage - rExp: 0 - readingType: readingData - scale: -3 - sensorNamePattern: nameLeaf - sensorReadingType: 1 - sensorType: 2 - serviceInterface: org.freedesktop.DBus.Properties - unit: xyz.openbmc_project.Sensor.Value.Unit.Volts -248: - bExp: 0 - entityID: 10 - entityInstance: 20 - interfaces: - xyz.openbmc_project.Sensor.Value: - Value: - Offsets: - 255: - type: int64_t - multiplierM: 2 - offsetB: 0 - path: /xyz/openbmc_project/sensors/voltage/ps1_input_voltage - rExp: 0 - readingType: readingData - scale: -3 - sensorNamePattern: nameLeaf - sensorReadingType: 1 - sensorType: 2 - serviceInterface: org.freedesktop.DBus.Properties - unit: xyz.openbmc_project.Sensor.Value.Unit.Volts -249: - bExp: 0 - entityID: 10 - entityInstance: 21 - interfaces: - xyz.openbmc_project.Sensor.Value: - Value: - Offsets: - 255: - type: int64_t - multiplierM: 10 - offsetB: 0 - path: /xyz/openbmc_project/sensors/voltage/ps0_output_voltage - rExp: -2 - readingType: readingData - scale: -3 - sensorNamePattern: nameLeaf - sensorReadingType: 1 - sensorType: 2 - serviceInterface: org.freedesktop.DBus.Properties - unit: xyz.openbmc_project.Sensor.Value.Unit.Volts -250: - bExp: 0 - entityID: 10 - entityInstance: 22 - interfaces: - xyz.openbmc_project.Sensor.Value: - Value: - Offsets: - 255: - type: int64_t - multiplierM: 10 - offsetB: 0 - path: /xyz/openbmc_project/sensors/voltage/ps1_output_voltage - rExp: -2 - readingType: readingData - scale: -3 - sensorNamePattern: nameLeaf - sensorReadingType: 1 - sensorType: 2 - serviceInterface: org.freedesktop.DBus.Properties - unit: xyz.openbmc_project.Sensor.Value.Unit.Volts -251: - bExp: 0 - entityID: 10 - entityInstance: 23 - interfaces: - xyz.openbmc_project.Sensor.Value: - Value: - Offsets: - 255: - type: int64_t - multiplierM: 1 - offsetB: 0 - path: /xyz/openbmc_project/sensors/current/ps0_output_current - rExp: 0 - readingType: readingData - scale: -3 - sensorNamePattern: nameLeaf - sensorReadingType: 1 - sensorType: 3 - serviceInterface: org.freedesktop.DBus.Properties - unit: xyz.openbmc_project.Sensor.Value.Unit.Amperes -252: - bExp: 0 - entityID: 10 - entityInstance: 24 - interfaces: - xyz.openbmc_project.Sensor.Value: - Value: - Offsets: - 255: - type: int64_t - multiplierM: 1 - offsetB: 0 - path: /xyz/openbmc_project/sensors/current/ps1_output_current - rExp: 0 - readingType: readingData - scale: -3 - sensorNamePattern: nameLeaf - sensorReadingType: 1 - sensorType: 3 - serviceInterface: org.freedesktop.DBus.Properties - unit: xyz.openbmc_project.Sensor.Value.Unit.Amperes -253: - bExp: 0 - entityID: 35 - entityInstance: 1 - interfaces: - xyz.openbmc_project.Sensor.Value: - Value: - Offsets: - 255: - type: int64_t - multiplierM: 30 - offsetB: 0 - path: /xyz/openbmc_project/sensors/temperature/pcie - rExp: -2 - readingType: readingData - scale: -3 - sensorNamePattern: nameLeaf - sensorReadingType: 1 - sensorType: 1 - serviceInterface: org.freedesktop.DBus.Properties - unit: xyz.openbmc_project.Sensor.Value.Unit.DegreesC -254: - bExp: 0 - entityID: 64 - entityInstance: 1 - interfaces: - xyz.openbmc_project.Sensor.Value: - Value: - Offsets: - 255: - type: int64_t - multiplierM: 20 - offsetB: 0 - path: /xyz/openbmc_project/sensors/temperature/ambient - rExp: -2 - readingType: readingData - scale: -3 - sensorNamePattern: nameLeaf - sensorReadingType: 1 - sensorType: 1 - serviceInterface: org.freedesktop.DBus.Properties - unit: xyz.openbmc_project.Sensor.Value.Unit.DegreesC diff --git a/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/configuration/acx22-yaml-config/acx22-ipmi-sensors-mrw.yaml b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/configuration/acx22-yaml-config/acx22-ipmi-sensors-mrw.yaml index 0a04d93a..419b9c86 100644 --- a/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/configuration/acx22-yaml-config/acx22-ipmi-sensors-mrw.yaml +++ b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/configuration/acx22-yaml-config/acx22-ipmi-sensors-mrw.yaml @@ -150,6 +150,7 @@ fw_boot_sensor: serviceInterface: org.freedesktop.DBus.Properties gpu_func_sensor: interfaces: + xyz.openbmc_project.Inventory.Item.Accelerator: xyz.openbmc_project.Inventory.Decorator.Replaceable: FieldReplaceable: Offsets: @@ -336,3 +337,15 @@ vrm_vdd_temp_sensor: sensorNamePattern: nameLeaf serviceInterface: org.freedesktop.DBus.Properties unit: xyz.openbmc_project.Sensor.Value.Unit.DegreesC +clear_host_security_keys: + interfaces: + org.open_power.Control.TPM.SecurityKeys: + ClearHostSecurityKeys: + Offsets: + 255: + type: uint8_t + path: /org/open_power/control/host0/ClearHostSecurityKeys + readingType: readingData + mutability: Mutability::Write|Mutability::Read + sensorNamePattern: nameLeaf + serviceInterface: org.freedesktop.DBus.Properties diff --git a/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/configuration/acx22-yaml-config/mihawk/acx22-ipmi-fru-bmc.yaml b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/configuration/acx22-yaml-config/mihawk/acx22-ipmi-fru-bmc.yaml new file mode 100644 index 00000000..57adcaf7 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/configuration/acx22-yaml-config/mihawk/acx22-ipmi-fru-bmc.yaml @@ -0,0 +1,102 @@ +50: + /system/chassis/motherboard/fan0: + entityID: 29 + entityInstance: 1 + interfaces: + xyz.openbmc_project.Inventory.Item: + PrettyName: + IPMIFruProperty: Product Name + IPMIFruSection: Product +51: + /system/chassis/motherboard/fan1: + entityID: 29 + entityInstance: 2 + interfaces: + xyz.openbmc_project.Inventory.Item: + PrettyName: + IPMIFruProperty: Product Name + IPMIFruSection: Product +52: + /system/chassis/motherboard/fan2: + entityID: 29 + entityInstance: 3 + interfaces: + xyz.openbmc_project.Inventory.Item: + PrettyName: + IPMIFruProperty: Product Name + IPMIFruSection: Product +53: + /system/chassis/motherboard/fan3: + entityID: 29 + entityInstance: 4 + interfaces: + xyz.openbmc_project.Inventory.Item: + PrettyName: + IPMIFruProperty: Product Name + IPMIFruSection: Product +54: + /system/chassis/motherboard/fan4: + entityID: 29 + entityInstance: 5 + interfaces: + xyz.openbmc_project.Inventory.Item: + PrettyName: + IPMIFruProperty: Product Name + IPMIFruSection: Product +55: + /system/chassis/motherboard/fan5: + entityID: 29 + entityInstance: 6 + interfaces: + xyz.openbmc_project.Inventory.Item: + PrettyName: + IPMIFruProperty: Product Name + IPMIFruSection: Product +75: + /system/chassis/motherboard/powersupply0: + entityID: 10 + entityInstance: 1 + interfaces: + xyz.openbmc_project.Inventory.Item: + PrettyName: + IPMIFruProperty: Board Name + IPMIFruSection: Board + PartNumber: + IPMIFruProperty: Part Number + IPMIFruSection: Board + SerialNumber: + IPMIFruProperty: Serial Number + IPMIFruSection: Board + Model: + IPMIFruProperty: Model Number + IPMIFruSection: Board + Manufacturer: + IPMIFruProperty: Manufacturer + IPMIFruSection: Board + BuildDate: + IPMIFruProperty: Mfg Date + IPMIFruSection: Board +76: + /system/chassis/motherboard/powersupply1: + entityID: 10 + entityInstance: 2 + interfaces: + xyz.openbmc_project.Inventory.Item: + PrettyName: + IPMIFruProperty: Board Name + IPMIFruSection: Board + PartNumber: + IPMIFruProperty: Part Number + IPMIFruSection: Board + SerialNumber: + IPMIFruProperty: Serial Number + IPMIFruSection: Board + Model: + IPMIFruProperty: Model Number + IPMIFruSection: Board + Manufacturer: + IPMIFruProperty: Manufacturer + IPMIFruSection: Board + BuildDate: + IPMIFruProperty: Mfg Date + IPMIFruSection: Board diff --git a/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/configuration/acx22-yaml-config/mihawk/acx22-ipmi-hwmon-sensors.yaml b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/configuration/acx22-yaml-config/mihawk/acx22-ipmi-hwmon-sensors.yaml new file mode 100644 index 00000000..1cf74785 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/configuration/acx22-yaml-config/mihawk/acx22-ipmi-hwmon-sensors.yaml @@ -0,0 +1,504 @@ +232: + bExp: 0 + entityID: 29 + entityInstance: 1 + interfaces: + xyz.openbmc_project.Sensor.Value: + Value: + Offsets: + 255: + type: int64_t + multiplierM: 100 + offsetB: 0 + path: /xyz/openbmc_project/sensors/fan_tach/fan0_0 + rExp: 0 + readingType: readingData + scale: 0 + sensorNamePattern: nameLeaf + sensorReadingType: 1 + sensorType: 4 + serviceInterface: org.freedesktop.DBus.Properties + unit: xyz.openbmc_project.Sensor.Value.Unit.RPMS +233: + bExp: 0 + entityID: 29 + entityInstance: 3 + interfaces: + xyz.openbmc_project.Sensor.Value: + Value: + Offsets: + 255: + type: int64_t + multiplierM: 100 + offsetB: 0 + path: /xyz/openbmc_project/sensors/fan_tach/fan1_0 + rExp: 0 + readingType: readingData + scale: 0 + sensorNamePattern: nameLeaf + sensorReadingType: 1 + sensorType: 4 + serviceInterface: org.freedesktop.DBus.Properties + unit: xyz.openbmc_project.Sensor.Value.Unit.RPMS +234: + bExp: 0 + entityID: 29 + entityInstance: 5 + interfaces: + xyz.openbmc_project.Sensor.Value: + Value: + Offsets: + 255: + type: int64_t + multiplierM: 100 + offsetB: 0 + path: /xyz/openbmc_project/sensors/fan_tach/fan2_0 + rExp: 0 + readingType: readingData + scale: 0 + sensorNamePattern: nameLeaf + sensorReadingType: 1 + sensorType: 4 + serviceInterface: org.freedesktop.DBus.Properties + unit: xyz.openbmc_project.Sensor.Value.Unit.RPMS +235: + bExp: 0 + entityID: 29 + entityInstance: 7 + interfaces: + xyz.openbmc_project.Sensor.Value: + Value: + Offsets: + 255: + type: int64_t + multiplierM: 100 + offsetB: 0 + path: /xyz/openbmc_project/sensors/fan_tach/fan3_0 + rExp: 0 + readingType: readingData + scale: 0 + sensorNamePattern: nameLeaf + sensorReadingType: 1 + sensorType: 4 + serviceInterface: org.freedesktop.DBus.Properties + unit: xyz.openbmc_project.Sensor.Value.Unit.RPMS +236: + bExp: 0 + entityID: 29 + entityInstance: 9 + interfaces: + xyz.openbmc_project.Sensor.Value: + Value: + Offsets: + 255: + type: int64_t + multiplierM: 100 + offsetB: 0 + path: /xyz/openbmc_project/sensors/fan_tach/fan4_0 + rExp: 0 + readingType: readingData + scale: 0 + sensorNamePattern: nameLeaf + sensorReadingType: 1 + sensorType: 4 + serviceInterface: org.freedesktop.DBus.Properties + unit: xyz.openbmc_project.Sensor.Value.Unit.RPMS +237: + bExp: 0 + entityID: 29 + entityInstance: 11 + interfaces: + xyz.openbmc_project.Sensor.Value: + Value: + Offsets: + 255: + type: int64_t + multiplierM: 100 + offsetB: 0 + path: /xyz/openbmc_project/sensors/fan_tach/fan5_0 + rExp: 0 + readingType: readingData + scale: 0 + sensorNamePattern: nameLeaf + sensorReadingType: 1 + sensorType: 4 + serviceInterface: org.freedesktop.DBus.Properties + unit: xyz.openbmc_project.Sensor.Value.Unit.RPMS +238: + bExp: 0 + entityID: 29 + entityInstance: 2 + interfaces: + xyz.openbmc_project.Sensor.Value: + Value: + Offsets: + 255: + type: int64_t + multiplierM: 100 + offsetB: 0 + path: /xyz/openbmc_project/sensors/fan_tach/fan0_1 + rExp: 0 + readingType: readingData + scale: 0 + sensorNamePattern: nameLeaf + sensorReadingType: 1 + sensorType: 4 + serviceInterface: org.freedesktop.DBus.Properties + unit: xyz.openbmc_project.Sensor.Value.Unit.RPMS +239: + bExp: 0 + entityID: 29 + entityInstance: 4 + interfaces: + xyz.openbmc_project.Sensor.Value: + Value: + Offsets: + 255: + type: int64_t + multiplierM: 100 + offsetB: 0 + path: /xyz/openbmc_project/sensors/fan_tach/fan1_1 + rExp: 0 + readingType: readingData + scale: 0 + sensorNamePattern: nameLeaf + sensorReadingType: 1 + sensorType: 4 + serviceInterface: org.freedesktop.DBus.Properties + unit: xyz.openbmc_project.Sensor.Value.Unit.RPMS +240: + bExp: 0 + entityID: 29 + entityInstance: 6 + interfaces: + xyz.openbmc_project.Sensor.Value: + Value: + Offsets: + 255: + type: int64_t + multiplierM: 100 + offsetB: 0 + path: /xyz/openbmc_project/sensors/fan_tach/fan2_1 + rExp: 0 + readingType: readingData + scale: 0 + sensorNamePattern: nameLeaf + sensorReadingType: 1 + sensorType: 4 + serviceInterface: org.freedesktop.DBus.Properties + unit: xyz.openbmc_project.Sensor.Value.Unit.RPMS +241: + bExp: 0 + entityID: 29 + entityInstance: 8 + interfaces: + xyz.openbmc_project.Sensor.Value: + Value: + Offsets: + 255: + type: int64_t + multiplierM: 100 + offsetB: 0 + path: /xyz/openbmc_project/sensors/fan_tach/fan3_1 + rExp: 0 + readingType: readingData + scale: 0 + sensorNamePattern: nameLeaf + sensorReadingType: 1 + sensorType: 4 + serviceInterface: org.freedesktop.DBus.Properties + unit: xyz.openbmc_project.Sensor.Value.Unit.RPMS +242: + bExp: 0 + entityID: 29 + entityInstance: 10 + interfaces: + xyz.openbmc_project.Sensor.Value: + Value: + Offsets: + 255: + type: int64_t + multiplierM: 100 + offsetB: 0 + path: /xyz/openbmc_project/sensors/fan_tach/fan4_1 + rExp: 0 + readingType: readingData + scale: 0 + sensorNamePattern: nameLeaf + sensorReadingType: 1 + sensorType: 4 + serviceInterface: org.freedesktop.DBus.Properties + unit: xyz.openbmc_project.Sensor.Value.Unit.RPMS +243: + bExp: 0 + entityID: 29 + entityInstance: 12 + interfaces: + xyz.openbmc_project.Sensor.Value: + Value: + Offsets: + 255: + type: int64_t + multiplierM: 100 + offsetB: 0 + path: /xyz/openbmc_project/sensors/fan_tach/fan5_1 + rExp: 0 + readingType: readingData + scale: 0 + sensorNamePattern: nameLeaf + sensorReadingType: 1 + sensorType: 4 + serviceInterface: org.freedesktop.DBus.Properties + unit: xyz.openbmc_project.Sensor.Value.Unit.RPMS +244: + bExp: 0 + entityID: 10 + entityInstance: 3 + interfaces: + xyz.openbmc_project.Sensor.Value: + Value: + Offsets: + 255: + type: int64_t + multiplierM: 2 + offsetB: 0 + path: /xyz/openbmc_project/sensors/power/p0_vdd_power + rExp: 0 + readingType: readingData + scale: -6 + sensorNamePattern: nameLeaf + sensorReadingType: 1 + sensorType: 8 + serviceInterface: org.freedesktop.DBus.Properties + unit: xyz.openbmc_project.Sensor.Value.Unit.Watts +245: + bExp: 0 + entityID: 10 + entityInstance: 4 + interfaces: + xyz.openbmc_project.Sensor.Value: + Value: + Offsets: + 255: + type: int64_t + multiplierM: 2 + offsetB: 0 + path: /xyz/openbmc_project/sensors/power/p1_vdd_power + rExp: 0 + readingType: readingData + scale: -6 + sensorNamePattern: nameLeaf + sensorReadingType: 1 + sensorType: 8 + serviceInterface: org.freedesktop.DBus.Properties + unit: xyz.openbmc_project.Sensor.Value.Unit.Watts +246: + bExp: 0 + entityID: 10 + entityInstance: 7 + interfaces: + xyz.openbmc_project.Sensor.Value: + Value: + Offsets: + 255: + type: int64_t + multiplierM: 2 + offsetB: 0 + path: /xyz/openbmc_project/sensors/power/ps0_input_power + rExp: 0 + readingType: readingData + scale: -6 + sensorNamePattern: nameLeaf + sensorReadingType: 1 + sensorType: 8 + serviceInterface: org.freedesktop.DBus.Properties + unit: xyz.openbmc_project.Sensor.Value.Unit.Watts +247: + bExp: 0 + entityID: 10 + entityInstance: 8 + interfaces: + xyz.openbmc_project.Sensor.Value: + Value: + Offsets: + 255: + type: int64_t + multiplierM: 2 + offsetB: 0 + path: /xyz/openbmc_project/sensors/power/ps1_input_power + rExp: 0 + readingType: readingData + scale: -6 + sensorNamePattern: nameLeaf + sensorReadingType: 1 + sensorType: 8 + serviceInterface: org.freedesktop.DBus.Properties + unit: xyz.openbmc_project.Sensor.Value.Unit.Watts +248: + bExp: 0 + entityID: 10 + entityInstance: 11 + interfaces: + xyz.openbmc_project.Sensor.Value: + Value: + Offsets: + 255: + type: int64_t + multiplierM: 10 + offsetB: 0 + path: /xyz/openbmc_project/sensors/voltage/ps0_output_voltage + rExp: -2 + readingType: readingData + scale: -3 + sensorNamePattern: nameLeaf + sensorReadingType: 1 + sensorType: 2 + serviceInterface: org.freedesktop.DBus.Properties + unit: xyz.openbmc_project.Sensor.Value.Unit.Volts +249: + bExp: 0 + entityID: 10 + entityInstance: 12 + interfaces: + xyz.openbmc_project.Sensor.Value: + Value: + Offsets: + 255: + type: int64_t + multiplierM: 10 + offsetB: 0 + path: /xyz/openbmc_project/sensors/voltage/ps1_output_voltage + rExp: -2 + readingType: readingData + scale: -3 + sensorNamePattern: nameLeaf + sensorReadingType: 1 + sensorType: 2 + serviceInterface: org.freedesktop.DBus.Properties + unit: xyz.openbmc_project.Sensor.Value.Unit.Volts +250: + bExp: 0 + entityID: 10 + entityInstance: 13 + interfaces: + xyz.openbmc_project.Sensor.Value: + Value: + Offsets: + 255: + type: int64_t + multiplierM: 1 + offsetB: 0 + path: /xyz/openbmc_project/sensors/current/ps0_output_current + rExp: 0 + readingType: readingData + scale: -3 + sensorNamePattern: nameLeaf + sensorReadingType: 1 + sensorType: 3 + serviceInterface: org.freedesktop.DBus.Properties + unit: xyz.openbmc_project.Sensor.Value.Unit.Amperes +251: + bExp: 0 + entityID: 10 + entityInstance: 14 + interfaces: + xyz.openbmc_project.Sensor.Value: + Value: + Offsets: + 255: + type: int64_t + multiplierM: 1 + offsetB: 0 + path: /xyz/openbmc_project/sensors/current/ps1_output_current + rExp: 0 + readingType: readingData + scale: -3 + sensorNamePattern: nameLeaf + sensorReadingType: 1 + sensorType: 3 + serviceInterface: org.freedesktop.DBus.Properties + unit: xyz.openbmc_project.Sensor.Value.Unit.Amperes +252: + bExp: 0 + entityID: 10 + entityInstance: 15 + interfaces: + xyz.openbmc_project.Sensor.Value: + Value: + Offsets: + 255: + type: int64_t + multiplierM: 20 + offsetB: 0 + path: /xyz/openbmc_project/sensors/power/total_power + rExp: 0 + readingType: readingData + scale: -6 + sensorNamePattern: nameLeaf + sensorReadingType: 1 + sensorType: 8 + serviceInterface: org.freedesktop.DBus.Properties + unit: xyz.openbmc_project.Sensor.Value.Unit.Watts +253: + bExp: 0 + entityID: 35 + entityInstance: 1 + interfaces: + xyz.openbmc_project.Sensor.Value: + Value: + Offsets: + 255: + type: int64_t + multiplierM: 30 + offsetB: 0 + path: /xyz/openbmc_project/sensors/temperature/p0_pcie_temp + rExp: -2 + readingType: readingData + scale: -3 + sensorNamePattern: nameLeaf + sensorReadingType: 1 + sensorType: 1 + serviceInterface: org.freedesktop.DBus.Properties + unit: xyz.openbmc_project.Sensor.Value.Unit.DegreesC +254: + bExp: 0 + entityID: 35 + entityInstance: 2 + interfaces: + xyz.openbmc_project.Sensor.Value: + Value: + Offsets: + 255: + type: int64_t + multiplierM: 30 + offsetB: 0 + path: /xyz/openbmc_project/sensors/temperature/p1_pcie_temp + rExp: -2 + readingType: readingData + scale: -3 + sensorNamePattern: nameLeaf + sensorReadingType: 1 + sensorType: 1 + serviceInterface: org.freedesktop.DBus.Properties + unit: xyz.openbmc_project.Sensor.Value.Unit.DegreesC +255: + bExp: 0 + entityID: 64 + entityInstance: 1 + interfaces: + xyz.openbmc_project.Sensor.Value: + Value: + Offsets: + 255: + type: int64_t + multiplierM: 20 + offsetB: 0 + path: /xyz/openbmc_project/sensors/temperature/ambient_temp + rExp: -2 + readingType: readingData + scale: -3 + sensorNamePattern: nameLeaf + sensorReadingType: 1 + sensorType: 1 + serviceInterface: org.freedesktop.DBus.Properties + unit: xyz.openbmc_project.Sensor.Value.Unit.DegreesC diff --git a/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/configuration/acx22-yaml-config/swift/acx22-ipmi-hwmon-sensors.yaml b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/configuration/acx22-yaml-config/swift/acx22-ipmi-hwmon-sensors.yaml new file mode 100644 index 00000000..38f38355 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/configuration/acx22-yaml-config/swift/acx22-ipmi-hwmon-sensors.yaml @@ -0,0 +1,484 @@ +232: + bExp: 0 + entityID: 29 + entityInstance: 1 + interfaces: + xyz.openbmc_project.Sensor.Value: + Value: + Offsets: + 255: + type: int64_t + multiplierM: 100 + offsetB: 0 + path: /xyz/openbmc_project/sensors/fan_tach/fan0_0 + rExp: 0 + readingType: readingData + scale: 0 + sensorNamePattern: nameLeaf + sensorReadingType: 1 + sensorType: 4 + serviceInterface: org.freedesktop.DBus.Properties + unit: xyz.openbmc_project.Sensor.Value.Unit.RPMS +233: + bExp: 0 + entityID: 29 + entityInstance: 3 + interfaces: + xyz.openbmc_project.Sensor.Value: + Value: + Offsets: + 255: + type: int64_t + multiplierM: 100 + offsetB: 0 + path: /xyz/openbmc_project/sensors/fan_tach/fan1_0 + rExp: 0 + readingType: readingData + scale: 0 + sensorNamePattern: nameLeaf + sensorReadingType: 1 + sensorType: 4 + serviceInterface: org.freedesktop.DBus.Properties + unit: xyz.openbmc_project.Sensor.Value.Unit.RPMS +234: + bExp: 0 + entityID: 29 + entityInstance: 5 + interfaces: + xyz.openbmc_project.Sensor.Value: + Value: + Offsets: + 255: + type: int64_t + multiplierM: 100 + offsetB: 0 + path: /xyz/openbmc_project/sensors/fan_tach/fan2_0 + rExp: 0 + readingType: readingData + scale: 0 + sensorNamePattern: nameLeaf + sensorReadingType: 1 + sensorType: 4 + serviceInterface: org.freedesktop.DBus.Properties + unit: xyz.openbmc_project.Sensor.Value.Unit.RPMS +235: + bExp: 0 + entityID: 29 + entityInstance: 7 + interfaces: + xyz.openbmc_project.Sensor.Value: + Value: + Offsets: + 255: + type: int64_t + multiplierM: 100 + offsetB: 0 + path: /xyz/openbmc_project/sensors/fan_tach/fan3_0 + rExp: 0 + readingType: readingData + scale: 0 + sensorNamePattern: nameLeaf + sensorReadingType: 1 + sensorType: 4 + serviceInterface: org.freedesktop.DBus.Properties + unit: xyz.openbmc_project.Sensor.Value.Unit.RPMS +236: + bExp: 0 + entityID: 10 + entityInstance: 1 + interfaces: + xyz.openbmc_project.Sensor.Value: + Value: + Offsets: + 255: + type: int64_t + multiplierM: 2 + offsetB: 0 + path: /xyz/openbmc_project/sensors/power/fan_disk_power + rExp: 0 + readingType: readingData + scale: -6 + sensorNamePattern: nameLeaf + sensorReadingType: 1 + sensorType: 8 + serviceInterface: org.freedesktop.DBus.Properties + unit: xyz.openbmc_project.Sensor.Value.Unit.Watts +237: + bExp: 0 + entityID: 10 + entityInstance: 9 + interfaces: + xyz.openbmc_project.Sensor.Value: + Value: + Offsets: + 255: + type: int64_t + multiplierM: 1 + offsetB: 0 + path: /xyz/openbmc_project/sensors/power/p0_io_power + rExp: 0 + readingType: readingData + scale: -6 + sensorNamePattern: nameLeaf + sensorReadingType: 1 + sensorType: 8 + serviceInterface: org.freedesktop.DBus.Properties + unit: xyz.openbmc_project.Sensor.Value.Unit.Watts +238: + bExp: 0 + entityID: 10 + entityInstance: 10 + interfaces: + xyz.openbmc_project.Sensor.Value: + Value: + Offsets: + 255: + type: int64_t + multiplierM: 1 + offsetB: 0 + path: /xyz/openbmc_project/sensors/power/p1_io_power + rExp: 0 + readingType: readingData + scale: -6 + sensorNamePattern: nameLeaf + sensorReadingType: 1 + sensorType: 8 + serviceInterface: org.freedesktop.DBus.Properties + unit: xyz.openbmc_project.Sensor.Value.Unit.Watts +239: + bExp: 0 + entityID: 10 + entityInstance: 11 + interfaces: + xyz.openbmc_project.Sensor.Value: + Value: + Offsets: + 255: + type: int64_t + multiplierM: 2 + offsetB: 0 + path: /xyz/openbmc_project/sensors/power/p0_mem_power + rExp: 0 + readingType: readingData + scale: -6 + sensorNamePattern: nameLeaf + sensorReadingType: 1 + sensorType: 8 + serviceInterface: org.freedesktop.DBus.Properties + unit: xyz.openbmc_project.Sensor.Value.Unit.Watts +240: + bExp: 0 + entityID: 10 + entityInstance: 12 + interfaces: + xyz.openbmc_project.Sensor.Value: + Value: + Offsets: + 255: + type: int64_t + multiplierM: 2 + offsetB: 0 + path: /xyz/openbmc_project/sensors/power/p1_mem_power + rExp: 0 + readingType: readingData + scale: -6 + sensorNamePattern: nameLeaf + sensorReadingType: 1 + sensorType: 8 + serviceInterface: org.freedesktop.DBus.Properties + unit: xyz.openbmc_project.Sensor.Value.Unit.Watts +241: + bExp: 0 + entityID: 10 + entityInstance: 13 + interfaces: + xyz.openbmc_project.Sensor.Value: + Value: + Offsets: + 255: + type: int64_t + multiplierM: 2 + offsetB: 0 + path: /xyz/openbmc_project/sensors/power/p0_power + rExp: 0 + readingType: readingData + scale: -6 + sensorNamePattern: nameLeaf + sensorReadingType: 1 + sensorType: 8 + serviceInterface: org.freedesktop.DBus.Properties + unit: xyz.openbmc_project.Sensor.Value.Unit.Watts +242: + bExp: 0 + entityID: 10 + entityInstance: 14 + interfaces: + xyz.openbmc_project.Sensor.Value: + Value: + Offsets: + 255: + type: int64_t + multiplierM: 2 + offsetB: 0 + path: /xyz/openbmc_project/sensors/power/p1_power + rExp: 0 + readingType: readingData + scale: -6 + sensorNamePattern: nameLeaf + sensorReadingType: 1 + sensorType: 8 + serviceInterface: org.freedesktop.DBus.Properties + unit: xyz.openbmc_project.Sensor.Value.Unit.Watts +243: + bExp: 0 + entityID: 10 + entityInstance: 15 + interfaces: + xyz.openbmc_project.Sensor.Value: + Value: + Offsets: + 255: + type: int64_t + multiplierM: 10 + offsetB: 0 + path: /xyz/openbmc_project/sensors/power/ps0_input_power + rExp: 0 + readingType: readingData + scale: -6 + sensorNamePattern: nameLeaf + sensorReadingType: 1 + sensorType: 8 + serviceInterface: org.freedesktop.DBus.Properties + unit: xyz.openbmc_project.Sensor.Value.Unit.Watts +244: + bExp: 0 + entityID: 10 + entityInstance: 16 + interfaces: + xyz.openbmc_project.Sensor.Value: + Value: + Offsets: + 255: + type: int64_t + multiplierM: 10 + offsetB: 0 + path: /xyz/openbmc_project/sensors/power/ps1_input_power + rExp: 0 + readingType: readingData + scale: -6 + sensorNamePattern: nameLeaf + sensorReadingType: 1 + sensorType: 8 + serviceInterface: org.freedesktop.DBus.Properties + unit: xyz.openbmc_project.Sensor.Value.Unit.Watts +245: + bExp: 0 + entityID: 10 + entityInstance: 17 + interfaces: + xyz.openbmc_project.Sensor.Value: + Value: + Offsets: + 255: + type: int64_t + multiplierM: 20 + offsetB: 0 + path: /xyz/openbmc_project/sensors/power/total_power + rExp: 0 + readingType: readingData + scale: -6 + sensorNamePattern: nameLeaf + sensorReadingType: 1 + sensorType: 8 + serviceInterface: org.freedesktop.DBus.Properties + unit: xyz.openbmc_project.Sensor.Value.Unit.Watts +246: + bExp: 0 + entityID: 10 + entityInstance: 19 + interfaces: + xyz.openbmc_project.Sensor.Value: + Value: + Offsets: + 255: + type: int64_t + multiplierM: 2 + offsetB: 0 + path: /xyz/openbmc_project/sensors/voltage/ps0_input_voltage + rExp: 0 + readingType: readingData + scale: -3 + sensorNamePattern: nameLeaf + sensorReadingType: 1 + sensorType: 2 + serviceInterface: org.freedesktop.DBus.Properties + unit: xyz.openbmc_project.Sensor.Value.Unit.Volts +247: + bExp: 0 + entityID: 10 + entityInstance: 20 + interfaces: + xyz.openbmc_project.Sensor.Value: + Value: + Offsets: + 255: + type: int64_t + multiplierM: 2 + offsetB: 0 + path: /xyz/openbmc_project/sensors/voltage/ps1_input_voltage + rExp: 0 + readingType: readingData + scale: -3 + sensorNamePattern: nameLeaf + sensorReadingType: 1 + sensorType: 2 + serviceInterface: org.freedesktop.DBus.Properties + unit: xyz.openbmc_project.Sensor.Value.Unit.Volts +248: + bExp: 0 + entityID: 10 + entityInstance: 21 + interfaces: + xyz.openbmc_project.Sensor.Value: + Value: + Offsets: + 255: + type: int64_t + multiplierM: 10 + offsetB: 0 + path: /xyz/openbmc_project/sensors/voltage/ps0_output_voltage + rExp: -2 + readingType: readingData + scale: -3 + sensorNamePattern: nameLeaf + sensorReadingType: 1 + sensorType: 2 + serviceInterface: org.freedesktop.DBus.Properties + unit: xyz.openbmc_project.Sensor.Value.Unit.Volts +249: + bExp: 0 + entityID: 10 + entityInstance: 22 + interfaces: + xyz.openbmc_project.Sensor.Value: + Value: + Offsets: + 255: + type: int64_t + multiplierM: 10 + offsetB: 0 + path: /xyz/openbmc_project/sensors/voltage/ps1_output_voltage + rExp: -2 + readingType: readingData + scale: -3 + sensorNamePattern: nameLeaf + sensorReadingType: 1 + sensorType: 2 + serviceInterface: org.freedesktop.DBus.Properties + unit: xyz.openbmc_project.Sensor.Value.Unit.Volts +250: + bExp: 0 + entityID: 10 + entityInstance: 23 + interfaces: + xyz.openbmc_project.Sensor.Value: + Value: + Offsets: + 255: + type: int64_t + multiplierM: 1 + offsetB: 0 + path: /xyz/openbmc_project/sensors/current/ps0_output_current + rExp: 0 + readingType: readingData + scale: -3 + sensorNamePattern: nameLeaf + sensorReadingType: 1 + sensorType: 3 + serviceInterface: org.freedesktop.DBus.Properties + unit: xyz.openbmc_project.Sensor.Value.Unit.Amperes +251: + bExp: 0 + entityID: 10 + entityInstance: 24 + interfaces: + xyz.openbmc_project.Sensor.Value: + Value: + Offsets: + 255: + type: int64_t + multiplierM: 1 + offsetB: 0 + path: /xyz/openbmc_project/sensors/current/ps1_output_current + rExp: 0 + readingType: readingData + scale: -3 + sensorNamePattern: nameLeaf + sensorReadingType: 1 + sensorType: 3 + serviceInterface: org.freedesktop.DBus.Properties + unit: xyz.openbmc_project.Sensor.Value.Unit.Amperes +252: + bExp: 0 + entityID: 35 + entityInstance: 1 + interfaces: + xyz.openbmc_project.Sensor.Value: + Value: + Offsets: + 255: + type: int64_t + multiplierM: 30 + offsetB: 0 + path: /xyz/openbmc_project/sensors/temperature/pcie0_1 + rExp: -2 + readingType: readingData + scale: -3 + sensorNamePattern: nameLeaf + sensorReadingType: 1 + sensorType: 1 + serviceInterface: org.freedesktop.DBus.Properties + unit: xyz.openbmc_project.Sensor.Value.Unit.DegreesC +253: + bExp: 0 + entityID: 35 + entityInstance: 2 + interfaces: + xyz.openbmc_project.Sensor.Value: + Value: + Offsets: + 255: + type: int64_t + multiplierM: 30 + offsetB: 0 + path: /xyz/openbmc_project/sensors/temperature/pcie2_3 + rExp: -2 + readingType: readingData + scale: -3 + sensorNamePattern: nameLeaf + sensorReadingType: 1 + sensorType: 1 + serviceInterface: org.freedesktop.DBus.Properties + unit: xyz.openbmc_project.Sensor.Value.Unit.DegreesC +254: + bExp: 0 + entityID: 64 + entityInstance: 1 + interfaces: + xyz.openbmc_project.Sensor.Value: + Value: + Offsets: + 255: + type: int64_t + multiplierM: 20 + offsetB: 0 + path: /xyz/openbmc_project/sensors/temperature/ambient0 + rExp: -2 + readingType: readingData + scale: -3 + sensorNamePattern: nameLeaf + sensorReadingType: 1 + sensorType: 1 + serviceInterface: org.freedesktop.DBus.Properties + unit: xyz.openbmc_project.Sensor.Value.Unit.DegreesC + diff --git a/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/configuration/acx22-yaml-config/witherspoon/ac922-ipmi-extra-hwmon-sensors.yaml b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/configuration/acx22-yaml-config/witherspoon/ac922-ipmi-extra-hwmon-sensors.yaml deleted file mode 100644 index 538b4c86..00000000 --- a/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/configuration/acx22-yaml-config/witherspoon/ac922-ipmi-extra-hwmon-sensors.yaml +++ /dev/null @@ -1,84 +0,0 @@ -222: - bExp: 0 - entityID: 29 - entityInstance: 2 - interfaces: - xyz.openbmc_project.Sensor.Value: - Value: - Offsets: - 255: - type: int64_t - multiplierM: 100 - offsetB: 0 - path: /xyz/openbmc_project/sensors/fan_tach/fan0_1 - rExp: 0 - readingType: readingData - scale: 0 - sensorNamePattern: nameLeaf - sensorReadingType: 1 - sensorType: 4 - serviceInterface: org.freedesktop.DBus.Properties - unit: xyz.openbmc_project.Sensor.Value.Unit.RPMS -226: - bExp: 0 - entityID: 29 - entityInstance: 4 - interfaces: - xyz.openbmc_project.Sensor.Value: - Value: - Offsets: - 255: - type: int64_t - multiplierM: 100 - offsetB: 0 - path: /xyz/openbmc_project/sensors/fan_tach/fan1_1 - rExp: 0 - readingType: readingData - scale: 0 - sensorNamePattern: nameLeaf - sensorReadingType: 1 - sensorType: 4 - serviceInterface: org.freedesktop.DBus.Properties - unit: xyz.openbmc_project.Sensor.Value.Unit.RPMS -228: - bExp: 0 - entityID: 29 - entityInstance: 6 - interfaces: - xyz.openbmc_project.Sensor.Value: - Value: - Offsets: - 255: - type: int64_t - multiplierM: 100 - offsetB: 0 - path: /xyz/openbmc_project/sensors/fan_tach/fan2_1 - rExp: 0 - readingType: readingData - scale: 0 - sensorNamePattern: nameLeaf - sensorReadingType: 1 - sensorType: 4 - serviceInterface: org.freedesktop.DBus.Properties - unit: xyz.openbmc_project.Sensor.Value.Unit.RPMS -230: - bExp: 0 - entityID: 29 - entityInstance: 8 - interfaces: - xyz.openbmc_project.Sensor.Value: - Value: - Offsets: - 255: - type: int64_t - multiplierM: 100 - offsetB: 0 - path: /xyz/openbmc_project/sensors/fan_tach/fan3_1 - rExp: 0 - readingType: readingData - scale: 0 - sensorNamePattern: nameLeaf - sensorReadingType: 1 - sensorType: 4 - serviceInterface: org.freedesktop.DBus.Properties - unit: xyz.openbmc_project.Sensor.Value.Unit.RPMS diff --git a/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/configuration/acx22-yaml-config/witherspoon/acx22-ipmi-hwmon-sensors.yaml b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/configuration/acx22-yaml-config/witherspoon/acx22-ipmi-hwmon-sensors.yaml new file mode 100644 index 00000000..803ed77a --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/configuration/acx22-yaml-config/witherspoon/acx22-ipmi-hwmon-sensors.yaml @@ -0,0 +1,546 @@ +221: + bExp: 0 + entityID: 29 + entityInstance: 1 + interfaces: + xyz.openbmc_project.Sensor.Value: + Value: + Offsets: + 255: + type: int64_t + multiplierM: 100 + offsetB: 0 + path: /xyz/openbmc_project/sensors/fan_tach/fan0_0 + rExp: 0 + readingType: readingData + scale: 0 + sensorNamePattern: nameLeaf + sensorReadingType: 1 + sensorType: 4 + serviceInterface: org.freedesktop.DBus.Properties + unit: xyz.openbmc_project.Sensor.Value.Unit.RPMS +223: + bExp: 0 + entityID: 29 + entityInstance: 3 + interfaces: + xyz.openbmc_project.Sensor.Value: + Value: + Offsets: + 255: + type: int64_t + multiplierM: 100 + offsetB: 0 + path: /xyz/openbmc_project/sensors/fan_tach/fan1_0 + rExp: 0 + readingType: readingData + scale: 0 + sensorNamePattern: nameLeaf + sensorReadingType: 1 + sensorType: 4 + serviceInterface: org.freedesktop.DBus.Properties + unit: xyz.openbmc_project.Sensor.Value.Unit.RPMS +227: + bExp: 0 + entityID: 29 + entityInstance: 5 + interfaces: + xyz.openbmc_project.Sensor.Value: + Value: + Offsets: + 255: + type: int64_t + multiplierM: 100 + offsetB: 0 + path: /xyz/openbmc_project/sensors/fan_tach/fan2_0 + rExp: 0 + readingType: readingData + scale: 0 + sensorNamePattern: nameLeaf + sensorReadingType: 1 + sensorType: 4 + serviceInterface: org.freedesktop.DBus.Properties + unit: xyz.openbmc_project.Sensor.Value.Unit.RPMS +229: + bExp: 0 + entityID: 29 + entityInstance: 7 + interfaces: + xyz.openbmc_project.Sensor.Value: + Value: + Offsets: + 255: + type: int64_t + multiplierM: 100 + offsetB: 0 + path: /xyz/openbmc_project/sensors/fan_tach/fan3_0 + rExp: 0 + readingType: readingData + scale: 0 + sensorNamePattern: nameLeaf + sensorReadingType: 1 + sensorType: 4 + serviceInterface: org.freedesktop.DBus.Properties + unit: xyz.openbmc_project.Sensor.Value.Unit.RPMS +231: + bExp: 0 + entityID: 10 + entityInstance: 1 + interfaces: + xyz.openbmc_project.Sensor.Value: + Value: + Offsets: + 255: + type: int64_t + multiplierM: 2 + offsetB: 0 + path: /xyz/openbmc_project/sensors/power/fan_disk_power + rExp: 0 + readingType: readingData + scale: -6 + sensorNamePattern: nameLeaf + sensorReadingType: 1 + sensorType: 8 + serviceInterface: org.freedesktop.DBus.Properties + unit: xyz.openbmc_project.Sensor.Value.Unit.Watts +238: + bExp: 0 + entityID: 10 + entityInstance: 9 + interfaces: + xyz.openbmc_project.Sensor.Value: + Value: + Offsets: + 255: + type: int64_t + multiplierM: 1 + offsetB: 0 + path: /xyz/openbmc_project/sensors/power/p0_io_power + rExp: 0 + readingType: readingData + scale: -6 + sensorNamePattern: nameLeaf + sensorReadingType: 1 + sensorType: 8 + serviceInterface: org.freedesktop.DBus.Properties + unit: xyz.openbmc_project.Sensor.Value.Unit.Watts +239: + bExp: 0 + entityID: 10 + entityInstance: 10 + interfaces: + xyz.openbmc_project.Sensor.Value: + Value: + Offsets: + 255: + type: int64_t + multiplierM: 1 + offsetB: 0 + path: /xyz/openbmc_project/sensors/power/p1_io_power + rExp: 0 + readingType: readingData + scale: -6 + sensorNamePattern: nameLeaf + sensorReadingType: 1 + sensorType: 8 + serviceInterface: org.freedesktop.DBus.Properties + unit: xyz.openbmc_project.Sensor.Value.Unit.Watts +240: + bExp: 0 + entityID: 10 + entityInstance: 11 + interfaces: + xyz.openbmc_project.Sensor.Value: + Value: + Offsets: + 255: + type: int64_t + multiplierM: 2 + offsetB: 0 + path: /xyz/openbmc_project/sensors/power/p0_mem_power + rExp: 0 + readingType: readingData + scale: -6 + sensorNamePattern: nameLeaf + sensorReadingType: 1 + sensorType: 8 + serviceInterface: org.freedesktop.DBus.Properties + unit: xyz.openbmc_project.Sensor.Value.Unit.Watts +241: + bExp: 0 + entityID: 10 + entityInstance: 12 + interfaces: + xyz.openbmc_project.Sensor.Value: + Value: + Offsets: + 255: + type: int64_t + multiplierM: 2 + offsetB: 0 + path: /xyz/openbmc_project/sensors/power/p1_mem_power + rExp: 0 + readingType: readingData + scale: -6 + sensorNamePattern: nameLeaf + sensorReadingType: 1 + sensorType: 8 + serviceInterface: org.freedesktop.DBus.Properties + unit: xyz.openbmc_project.Sensor.Value.Unit.Watts +242: + bExp: 0 + entityID: 10 + entityInstance: 13 + interfaces: + xyz.openbmc_project.Sensor.Value: + Value: + Offsets: + 255: + type: int64_t + multiplierM: 2 + offsetB: 0 + path: /xyz/openbmc_project/sensors/power/p0_power + rExp: 0 + readingType: readingData + scale: -6 + sensorNamePattern: nameLeaf + sensorReadingType: 1 + sensorType: 8 + serviceInterface: org.freedesktop.DBus.Properties + unit: xyz.openbmc_project.Sensor.Value.Unit.Watts +243: + bExp: 0 + entityID: 10 + entityInstance: 14 + interfaces: + xyz.openbmc_project.Sensor.Value: + Value: + Offsets: + 255: + type: int64_t + multiplierM: 2 + offsetB: 0 + path: /xyz/openbmc_project/sensors/power/p1_power + rExp: 0 + readingType: readingData + scale: -6 + sensorNamePattern: nameLeaf + sensorReadingType: 1 + sensorType: 8 + serviceInterface: org.freedesktop.DBus.Properties + unit: xyz.openbmc_project.Sensor.Value.Unit.Watts +244: + bExp: 0 + entityID: 10 + entityInstance: 15 + interfaces: + xyz.openbmc_project.Sensor.Value: + Value: + Offsets: + 255: + type: int64_t + multiplierM: 10 + offsetB: 0 + path: /xyz/openbmc_project/sensors/power/ps0_input_power + rExp: 0 + readingType: readingData + scale: -6 + sensorNamePattern: nameLeaf + sensorReadingType: 1 + sensorType: 8 + serviceInterface: org.freedesktop.DBus.Properties + unit: xyz.openbmc_project.Sensor.Value.Unit.Watts +245: + bExp: 0 + entityID: 10 + entityInstance: 16 + interfaces: + xyz.openbmc_project.Sensor.Value: + Value: + Offsets: + 255: + type: int64_t + multiplierM: 10 + offsetB: 0 + path: /xyz/openbmc_project/sensors/power/ps1_input_power + rExp: 0 + readingType: readingData + scale: -6 + sensorNamePattern: nameLeaf + sensorReadingType: 1 + sensorType: 8 + serviceInterface: org.freedesktop.DBus.Properties + unit: xyz.openbmc_project.Sensor.Value.Unit.Watts +246: + bExp: 0 + entityID: 10 + entityInstance: 17 + interfaces: + xyz.openbmc_project.Sensor.Value: + Value: + Offsets: + 255: + type: int64_t + multiplierM: 20 + offsetB: 0 + path: /xyz/openbmc_project/sensors/power/total_power + rExp: 0 + readingType: readingData + scale: -6 + sensorNamePattern: nameLeaf + sensorReadingType: 1 + sensorType: 8 + serviceInterface: org.freedesktop.DBus.Properties + unit: xyz.openbmc_project.Sensor.Value.Unit.Watts +247: + bExp: 0 + entityID: 10 + entityInstance: 19 + interfaces: + xyz.openbmc_project.Sensor.Value: + Value: + Offsets: + 255: + type: int64_t + multiplierM: 2 + offsetB: 0 + path: /xyz/openbmc_project/sensors/voltage/ps0_input_voltage + rExp: 0 + readingType: readingData + scale: -3 + sensorNamePattern: nameLeaf + sensorReadingType: 1 + sensorType: 2 + serviceInterface: org.freedesktop.DBus.Properties + unit: xyz.openbmc_project.Sensor.Value.Unit.Volts +248: + bExp: 0 + entityID: 10 + entityInstance: 20 + interfaces: + xyz.openbmc_project.Sensor.Value: + Value: + Offsets: + 255: + type: int64_t + multiplierM: 2 + offsetB: 0 + path: /xyz/openbmc_project/sensors/voltage/ps1_input_voltage + rExp: 0 + readingType: readingData + scale: -3 + sensorNamePattern: nameLeaf + sensorReadingType: 1 + sensorType: 2 + serviceInterface: org.freedesktop.DBus.Properties + unit: xyz.openbmc_project.Sensor.Value.Unit.Volts +249: + bExp: 0 + entityID: 10 + entityInstance: 21 + interfaces: + xyz.openbmc_project.Sensor.Value: + Value: + Offsets: + 255: + type: int64_t + multiplierM: 10 + offsetB: 0 + path: /xyz/openbmc_project/sensors/voltage/ps0_output_voltage + rExp: -2 + readingType: readingData + scale: -3 + sensorNamePattern: nameLeaf + sensorReadingType: 1 + sensorType: 2 + serviceInterface: org.freedesktop.DBus.Properties + unit: xyz.openbmc_project.Sensor.Value.Unit.Volts +250: + bExp: 0 + entityID: 10 + entityInstance: 22 + interfaces: + xyz.openbmc_project.Sensor.Value: + Value: + Offsets: + 255: + type: int64_t + multiplierM: 10 + offsetB: 0 + path: /xyz/openbmc_project/sensors/voltage/ps1_output_voltage + rExp: -2 + readingType: readingData + scale: -3 + sensorNamePattern: nameLeaf + sensorReadingType: 1 + sensorType: 2 + serviceInterface: org.freedesktop.DBus.Properties + unit: xyz.openbmc_project.Sensor.Value.Unit.Volts +251: + bExp: 0 + entityID: 10 + entityInstance: 23 + interfaces: + xyz.openbmc_project.Sensor.Value: + Value: + Offsets: + 255: + type: int64_t + multiplierM: 1 + offsetB: 0 + path: /xyz/openbmc_project/sensors/current/ps0_output_current + rExp: 0 + readingType: readingData + scale: -3 + sensorNamePattern: nameLeaf + sensorReadingType: 1 + sensorType: 3 + serviceInterface: org.freedesktop.DBus.Properties + unit: xyz.openbmc_project.Sensor.Value.Unit.Amperes +252: + bExp: 0 + entityID: 10 + entityInstance: 24 + interfaces: + xyz.openbmc_project.Sensor.Value: + Value: + Offsets: + 255: + type: int64_t + multiplierM: 1 + offsetB: 0 + path: /xyz/openbmc_project/sensors/current/ps1_output_current + rExp: 0 + readingType: readingData + scale: -3 + sensorNamePattern: nameLeaf + sensorReadingType: 1 + sensorType: 3 + serviceInterface: org.freedesktop.DBus.Properties + unit: xyz.openbmc_project.Sensor.Value.Unit.Amperes +253: + bExp: 0 + entityID: 35 + entityInstance: 1 + interfaces: + xyz.openbmc_project.Sensor.Value: + Value: + Offsets: + 255: + type: int64_t + multiplierM: 30 + offsetB: 0 + path: /xyz/openbmc_project/sensors/temperature/pcie + rExp: -2 + readingType: readingData + scale: -3 + sensorNamePattern: nameLeaf + sensorReadingType: 1 + sensorType: 1 + serviceInterface: org.freedesktop.DBus.Properties + unit: xyz.openbmc_project.Sensor.Value.Unit.DegreesC +254: + bExp: 0 + entityID: 64 + entityInstance: 1 + interfaces: + xyz.openbmc_project.Sensor.Value: + Value: + Offsets: + 255: + type: int64_t + multiplierM: 20 + offsetB: 0 + path: /xyz/openbmc_project/sensors/temperature/ambient + rExp: -2 + readingType: readingData + scale: -3 + sensorNamePattern: nameLeaf + sensorReadingType: 1 + sensorType: 1 + serviceInterface: org.freedesktop.DBus.Properties + unit: xyz.openbmc_project.Sensor.Value.Unit.DegreesC +222: + bExp: 0 + entityID: 29 + entityInstance: 2 + interfaces: + xyz.openbmc_project.Sensor.Value: + Value: + Offsets: + 255: + type: int64_t + multiplierM: 100 + offsetB: 0 + path: /xyz/openbmc_project/sensors/fan_tach/fan0_1 + rExp: 0 + readingType: readingData + scale: 0 + sensorNamePattern: nameLeaf + sensorReadingType: 1 + sensorType: 4 + serviceInterface: org.freedesktop.DBus.Properties + unit: xyz.openbmc_project.Sensor.Value.Unit.RPMS +226: + bExp: 0 + entityID: 29 + entityInstance: 4 + interfaces: + xyz.openbmc_project.Sensor.Value: + Value: + Offsets: + 255: + type: int64_t + multiplierM: 100 + offsetB: 0 + path: /xyz/openbmc_project/sensors/fan_tach/fan1_1 + rExp: 0 + readingType: readingData + scale: 0 + sensorNamePattern: nameLeaf + sensorReadingType: 1 + sensorType: 4 + serviceInterface: org.freedesktop.DBus.Properties + unit: xyz.openbmc_project.Sensor.Value.Unit.RPMS +228: + bExp: 0 + entityID: 29 + entityInstance: 6 + interfaces: + xyz.openbmc_project.Sensor.Value: + Value: + Offsets: + 255: + type: int64_t + multiplierM: 100 + offsetB: 0 + path: /xyz/openbmc_project/sensors/fan_tach/fan2_1 + rExp: 0 + readingType: readingData + scale: 0 + sensorNamePattern: nameLeaf + sensorReadingType: 1 + sensorType: 4 + serviceInterface: org.freedesktop.DBus.Properties + unit: xyz.openbmc_project.Sensor.Value.Unit.RPMS +230: + bExp: 0 + entityID: 29 + entityInstance: 8 + interfaces: + xyz.openbmc_project.Sensor.Value: + Value: + Offsets: + 255: + type: int64_t + multiplierM: 100 + offsetB: 0 + path: /xyz/openbmc_project/sensors/fan_tach/fan3_1 + rExp: 0 + readingType: readingData + scale: 0 + sensorNamePattern: nameLeaf + sensorReadingType: 1 + sensorType: 4 + serviceInterface: org.freedesktop.DBus.Properties + unit: xyz.openbmc_project.Sensor.Value.Unit.RPMS diff --git a/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/console/obmc-console/obmc-console.conf b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/console/obmc-console/ibm-ac-server/obmc-console.conf similarity index 100% rename from Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/console/obmc-console/obmc-console.conf rename to Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/console/obmc-console/ibm-ac-server/obmc-console.conf diff --git a/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/console/obmc-console/mihawk/obmc-console.conf b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/console/obmc-console/mihawk/obmc-console.conf new file mode 100755 index 00000000..a5ba3f32 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/console/obmc-console/mihawk/obmc-console.conf @@ -0,0 +1,4 @@ +lpc-address = 0x3f8 +sirq = 4 +local-tty = ttyS0 +local-tty-baud = 115200 diff --git a/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/dbus/events-policy.bb b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/dbus/events-policy.bb index f456e428..52cb3131 100644 --- a/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/dbus/events-policy.bb +++ b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/dbus/events-policy.bb @@ -1,7 +1,7 @@ SUMMARY = "Event policy configuration for meta-witherspoon machines" PR = "r1" LICENSE = "Apache-2.0" -LIC_FILES_CHKSUM = "file://${IBMBASE}/COPYING.apache-2.0;md5=34400b68072d710fecd0a2940a0d1658" +LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10" inherit allarch inherit phosphor-dbus-monitor diff --git a/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/dbus/fan-policy.bb b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/dbus/fan-policy.bb index 12194640..f8355053 100644 --- a/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/dbus/fan-policy.bb +++ b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/dbus/fan-policy.bb @@ -1,7 +1,7 @@ SUMMARY = "Fan policy configurations for meta-witherspoon machines" PR = "r1" LICENSE = "Apache-2.0" -LIC_FILES_CHKSUM = "file://${IBMBASE}/COPYING.apache-2.0;md5=34400b68072d710fecd0a2940a0d1658" +LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10" inherit allarch inherit phosphor-dbus-monitor @@ -9,15 +9,20 @@ inherit phosphor-dbus-monitor FILESEXTRAPATHS_prepend := "${THISDIR}/${BPN}:" SRC_URI += "file://air-cooled.yaml" -SRC_URI += "file://water-cooled.yaml" +SRC_URI_append_ibm-ac-server = " file://water-cooled.yaml" SRC_URI += "file://fan-errors.yaml" -do_install() { +do_install_append_ibm-ac-server() { install -D ${WORKDIR}/air-cooled.yaml ${D}${config_dir}/air-cooled.yaml install -D ${WORKDIR}/water-cooled.yaml ${D}${config_dir}/water-cooled.yaml install -D ${WORKDIR}/fan-errors.yaml ${D}${config_dir}/fan-errors.yaml } +do_install_append_mihawk() { + install -D ${WORKDIR}/air-cooled.yaml ${D}${config_dir}/air-cooled.yaml + install -D ${WORKDIR}/fan-errors.yaml ${D}${config_dir}/fan-errors.yaml +} + FILES_${PN} += "${config_dir}/air-cooled.yaml" -FILES_${PN} += "${config_dir}/water-cooled.yaml" +FILES_${PN}_append_ibm-ac-server = " ${config_dir}/water-cooled.yaml" FILES_${PN} += "${config_dir}/fan-errors.yaml" diff --git a/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/dbus/fan-policy/mihawk/air-cooled.yaml b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/dbus/fan-policy/mihawk/air-cooled.yaml new file mode 100644 index 00000000..52232e3f --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/dbus/fan-policy/mihawk/air-cooled.yaml @@ -0,0 +1,339 @@ +# Air cooled mihawk fan policy for PDM. +# +# An air cooled mihawk requires a minimum of three functional fans +# enclosures or six functional fan rotors across all enclosures. +# If the number of functional fan enclosures is below three, soft poweroff +# the system, whereas if the number of fan rotors drop below six, an +# immediate hard poweroff of the system occurs. + +- name: fan enclosures + description: > + 'An air cooled mihawk has 6 fan enclosures to monitor.' + class: group + group: path + members: + - meta: FAN + path: /xyz/openbmc_project/inventory/system/chassis/motherboard/fan0 + - meta: FAN + path: /xyz/openbmc_project/inventory/system/chassis/motherboard/fan1 + - meta: FAN + path: /xyz/openbmc_project/inventory/system/chassis/motherboard/fan2 + - meta: FAN + path: /xyz/openbmc_project/inventory/system/chassis/motherboard/fan3 + - meta: FAN + path: /xyz/openbmc_project/inventory/system/chassis/motherboard/fan4 + - meta: FAN + path: /xyz/openbmc_project/inventory/system/chassis/motherboard/fan5 + +- name: fan rotors + description: > + 'An air cooled Witherspoon has eight fan rotors to monitor.' + class: group + group: path + members: + - meta: FAN + path: /xyz/openbmc_project/inventory/system/chassis/motherboard/fan0/fan0_0 + - meta: FAN + path: /xyz/openbmc_project/inventory/system/chassis/motherboard/fan0/fan0_1 + - meta: FAN + path: /xyz/openbmc_project/inventory/system/chassis/motherboard/fan1/fan1_0 + - meta: FAN + path: /xyz/openbmc_project/inventory/system/chassis/motherboard/fan1/fan1_1 + - meta: FAN + path: /xyz/openbmc_project/inventory/system/chassis/motherboard/fan2/fan2_0 + - meta: FAN + path: /xyz/openbmc_project/inventory/system/chassis/motherboard/fan2/fan2_1 + - meta: FAN + path: /xyz/openbmc_project/inventory/system/chassis/motherboard/fan3/fan3_0 + - meta: FAN + path: /xyz/openbmc_project/inventory/system/chassis/motherboard/fan3/fan3_1 + - meta: FAN + path: /xyz/openbmc_project/inventory/system/chassis/motherboard/fan4/fan4_0 + - meta: FAN + path: /xyz/openbmc_project/inventory/system/chassis/motherboard/fan4/fan4_1 + - meta: FAN + path: /xyz/openbmc_project/inventory/system/chassis/motherboard/fan5/fan5_0 + - meta: FAN + path: /xyz/openbmc_project/inventory/system/chassis/motherboard/fan5/fan5_1 + +- name: chassis state + description: > + 'Witherspoon has a single chassis to monitor.' + class: group + group: path + members: + - meta: CHASSISSTATE + path: /xyz/openbmc_project/state/chassis0 + +- name: chassis + description: > + 'Witherspoon has a single chassis to monitor.' + class: group + group: path + members: + - meta: CHASSIS + path: /xyz/openbmc_project/inventory/system/chassis + +- name: fan present + description: > + 'Monitor the presence state of each fan.' + class: group + group: property + type: boolean + members: + - interface: xyz.openbmc_project.Inventory.Item + meta: PRESENT + property: Present + +- name: fan functional + description: > + 'Monitor the functional state of each fan.' + class: group + group: property + type: boolean + members: + - interface: xyz.openbmc_project.State.Decorator.OperationalStatus + meta: FUNCTIONAL + property: Functional + +- name: chassis powered + description: > + 'Monitor the chassis power state.' + class: group + group: property + type: string + members: + - interface: xyz.openbmc_project.State.Chassis + meta: CHASSIS_STATE + property: CurrentPowerState + +- name: chassis air cooled + description: > + 'Monitor the chassis cooling type.' + class: group + group: property + type: boolean + members: + - interface: xyz.openbmc_project.Inventory.Decorator.CoolingType + meta: COOLING_TYPE + property: WaterCooled + +- name: watch fan present + description: > + 'Trigger logic on fan enclosure presence state changes.' + class: watch + watch: property + paths: fan enclosures + properties: fan present + callback: check cooling type + +- name: watch fan functional + description: > + 'Trigger logic on fan enclosure functional state changes.' + class: watch + watch: property + paths: fan enclosures + properties: fan functional + callback: check cooling type + +- name: watch fan rotor functional + description: > + 'Trigger logic on fan rotor functional state changes.' + class: watch + watch: property + paths: fan rotors + properties: fan functional + callback: check cooling type + +- name: watch chassis state + description: > + 'Trigger logic on chassis power state changes.' + class: watch + watch: property + paths: chassis state + properties: chassis powered + callback: check cooling type + +- name: watch cooling type + description: > + 'Maintain a cache of the chassis cooling type.' + class: watch + watch: property + paths: chassis + properties: chassis air cooled + +- name: check cooling type + description: > + 'If this condition passes the chassis is air cooled.' + class: condition + condition: count + paths: chassis + properties: chassis air cooled + callback: check power + countop: '==' + countbound: 0 + op: '==' + bound: true + +- name: check power + description: > + 'If the chassis has power, check fans.' + class: condition + condition: count + paths: chassis state + properties: chassis powered + callback: check fans + countop: '>' + countbound: 0 + op: '==' + bound: xyz.openbmc_project.State.Chassis.PowerState.On + +- name: check fans + description: > + 'Verify there are at least three functional fan enclosures and at least + six functional fan rotors, power off if not.' + class: callback + callback: group + members: + - check group presence + - check group functional enclosures + - check group functional rotors + +- name: check group presence + description: > + 'If this condition passes more than one fan has been unplugged + for more than 25 seconds. Shut the system down. Count present + fans rather than non-present fans since the latter would pass + if the fan has not been created for some reason. + + For a more detailed definition of unplugged, consult the documentation + of xyz.openbmc_project.Inventory.Item and/or the documentation + of the fan inventory object implementation.' + class: condition + condition: count + paths: fan enclosures + properties: fan present + defer: 25000000us + callback: log and shutdown + countop: '<' + countbound: 6 + op: '==' + bound: true + +- name: check group functional enclosures + description: > + 'If this condition passes more than one fan enclosure in the group has been + marked as nonfunctional for 25 seconds. Shut the system down. + + For a more detailed definition of nonfunctional, consult the documentation + of xyz.openbmc_project.State.Decorator.OperationalStatus and/or the + documentation of the fan inventory object implementation.' + class: condition + condition: count + paths: fan enclosures + properties: fan functional + defer: 25000000us + callback: log and shutdown + countop: '>' + countbound: 1 + op: '==' + bound: false + +- name: check group functional rotors + description: > + 'If this condition passes more than two fan rotors in the group have been + marked as nonfunctional for 25 seconds. Immediately power off. + For a more detailed definition of nonfunctional, consult the documentation + of xyz.openbmc_project.State.Decorator.OperationalStatus and/or the + documentation of the fan inventory object implementation.' + class: condition + condition: count + paths: fan rotors + properties: fan functional + defer: 25000000us + callback: log and poweroff + countop: '>' + countbound: 1 + op: '==' + bound: false + +- name: log and poweroff + description: > + 'Immediately poweroff, log an event in the journal, and create an + error log.' + class: callback + callback: group + members: + - hard poweroff + - log hard poweroff + - create shutdown error + +- name: log and shutdown + description: > + 'Shut the system down, log an event in the journal, and create an + error log.' + class: callback + callback: group + members: + - shutdown + - log shutdown + - create shutdown error + +- name: hard poweroff + description: > + 'Immediately power off the system.' + class: callback + callback: method + service: org.freedesktop.systemd1 + path: /org/freedesktop/systemd1 + interface: org.freedesktop.systemd1.Manager + method: StartUnit + args: + - value: obmc-chassis-hard-poweroff@0.target + type: string + - value: replace + type: string + +- name: shutdown + description: > + 'Shut down the system.' + class: callback + callback: method + service: org.freedesktop.systemd1 + path: /org/freedesktop/systemd1 + interface: org.freedesktop.systemd1.Manager + method: StartUnit + args: + - value: obmc-host-shutdown@0.target + type: string + - value: replace + type: string + +- name: log hard poweroff + description: > + 'Log a hard poweroff event to the systemd journal.' + class: callback + callback: journal + paths: chassis state + properties: chassis powered + severity: ERR + message: Immediate poweroff of system. There are not enough functional fans. + +- name: log shutdown + description: > + 'Log a shutdown event to the systemd journal.' + class: callback + callback: journal + paths: chassis state + properties: chassis powered + severity: ERR + message: Request shutdown of system. There are not enough functional fans. + +- name: create shutdown error + description: > + 'Create a Fan Shutdown Error log.' + class: callback + callback: elog + paths: chassis state + properties: chassis powered + error: xyz::openbmc_project::State::Shutdown::Inventory::Error::Fan diff --git a/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/dbus/fan-policy/mihawk/fan-errors.yaml b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/dbus/fan-policy/mihawk/fan-errors.yaml new file mode 100644 index 00000000..65cfbeb2 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/dbus/fan-policy/mihawk/fan-errors.yaml @@ -0,0 +1,905 @@ +# Witherspoon fan error policy for PDM. +# +# * Create a NotPresent error if fan 0, 1, 2, 3, 4, or 5 is not present for more +# than 20 seconds. +# * Create a Nonfunctional error if fan 0, 1, 2, 3, 4, or 5 is not +# functional for any amount of time. +# +# The system must be powered on in both of these cases. +# Note: An error is created each time the chassis powers on. +# +# * Watch for fans to become both present and functional, and then resolve +# their errors + +- name: fan0 + class: group + group: path + members: + - meta: FAN + path: /xyz/openbmc_project/inventory/system/chassis/motherboard/fan0 + +- name: fan1 + class: group + group: path + members: + - meta: FAN + path: /xyz/openbmc_project/inventory/system/chassis/motherboard/fan1 + +- name: fan2 + class: group + group: path + members: + - meta: FAN + path: /xyz/openbmc_project/inventory/system/chassis/motherboard/fan2 + +- name: fan3 + class: group + group: path + members: + - meta: FAN + path: /xyz/openbmc_project/inventory/system/chassis/motherboard/fan3 + +- name: fan4 + class: group + group: path + members: + - meta: FAN + path: /xyz/openbmc_project/inventory/system/chassis/motherboard/fan4 + +- name: fan5 + class: group + group: path + members: + - meta: FAN + path: /xyz/openbmc_project/inventory/system/chassis/motherboard/fan5 + + +- name: chassis state + description: > + 'Witherspoon has a single chassis to monitor.' + class: group + group: path + members: + - meta: CHASSISSTATE + path: /xyz/openbmc_project/state/chassis0 + +- name: chassis + description: > + 'Witherspoon has a single chassis to monitor.' + class: group + group: path + members: + - meta: CHASSIS + path: /xyz/openbmc_project/inventory/system/chassis + + +- name: fan present + description: > + 'Monitor the presence state of each fan.' + class: group + group: property + type: boolean + members: + - interface: xyz.openbmc_project.Inventory.Item + meta: PRESENT + property: Present + +- name: fan functional + description: > + 'Monitor the functional state of each fan.' + class: group + group: property + type: boolean + members: + - interface: xyz.openbmc_project.State.Decorator.OperationalStatus + meta: FUNCTIONAL + property: Functional + +- name: fan present and functional + description: > + 'Monitor the present and functional state of each fan.' + class: group + group: property + type: boolean + members: + - interface: xyz.openbmc_project.Inventory.Item + meta: PRESENT + property: Present + - interface: xyz.openbmc_project.State.Decorator.OperationalStatus + meta: FUNCTIONAL + property: Functional + +- name: chassis powered + description: > + 'Monitor the chassis power state.' + class: group + group: property + type: string + members: + - interface: xyz.openbmc_project.State.Chassis + meta: CHASSIS_STATE + property: CurrentPowerState + +- name: chassis air cooled + description: > + 'The chassis cooling type.' + class: group + group: property + type: boolean + members: + - interface: xyz.openbmc_project.Inventory.Decorator.CoolingType + meta: COOLING_TYPE + property: WaterCooled + +- name: watch chassis state + description: > + 'Trigger logic on chassis power state changes.' + class: watch + watch: property + paths: chassis state + properties: chassis powered + callback: check power + +- name: watch fan0 presence + description: > + 'Trigger logic on fan0 presence state changes.' + class: watch + watch: property + paths: fan0 + properties: fan present + callback: check power fan0 presence + +- name: watch fan0 functional + description: > + 'Trigger logic on fan0 functional state changes.' + class: watch + watch: property + paths: fan0 + properties: fan functional + callback: check power fan0 functional + +- name: watch fan1 presence + description: > + 'Trigger logic on fan1 presence state changes.' + class: watch + watch: property + paths: fan1 + properties: fan present + callback: check power fan1 presence + +- name: watch fan1 functional + description: > + 'Trigger logic on fan1 functional state changes.' + class: watch + watch: property + paths: fan1 + properties: fan functional + callback: check power fan1 functional + +- name: watch fan2 presence + description: > + 'Trigger logic on fan2 presence state changes.' + class: watch + watch: property + paths: fan2 + properties: fan present + callback: check power fan2 presence + +- name: watch fan2 functional + description: > + 'Trigger logic on fan2 functional state changes.' + class: watch + watch: property + paths: fan2 + properties: fan functional + callback: check power fan2 functional + +- name: watch fan3 presence + description: > + 'Trigger logic on fan3 presence state changes.' + class: watch + watch: property + paths: fan3 + properties: fan present + callback: check power fan3 presence + +- name: watch fan3 functional + description: > + 'Trigger logic on fan3 functional state changes.' + class: watch + watch: property + paths: fan3 + properties: fan functional + callback: check power fan3 functional + +- name: watch fan4 presence + description: > + 'Trigger logic on fan4 presence state changes.' + class: watch + watch: property + paths: fan4 + properties: fan present + callback: check power fan4 presence + +- name: watch fan4 functional + description: > + 'Trigger logic on fan4 functional state changes.' + class: watch + watch: property + paths: fan4 + properties: fan functional + callback: check power fan4 functional + +- name: watch fan5 presence + description: > + 'Trigger logic on fan5 presence state changes.' + class: watch + watch: property + paths: fan5 + properties: fan present + callback: check power fan5 presence + +- name: watch fan5 functional + description: > + 'Trigger logic on fan5 functional state changes.' + class: watch + watch: property + paths: fan5 + properties: fan functional + callback: check power fan5 functional + +- name: watch fan0 present and functional for resolving error logs + description: > + 'On fan present or functional state changes, check if errors need to be resolved.' + class: watch + watch: property + paths: fan0 + properties: fan present and functional + callback: resolve fan0 errors if present and functional + +- name: watch fan1 present and functional for resolving error logs + description: > + 'On fan present or functional state changes, check if errors need to be resolved.' + class: watch + watch: property + paths: fan1 + properties: fan present and functional + callback: resolve fan1 errors if present and functional + +- name: watch fan2 present and functional for resolving error logs + description: > + 'On fan present or functional state changes, check if errors need to be resolved.' + class: watch + watch: property + paths: fan2 + properties: fan present and functional + callback: resolve fan2 errors if present and functional + +- name: watch fan3 present and functional for resolving error logs + description: > + 'On fan present or functional state changes, check if errors need to be resolved.' + class: watch + watch: property + paths: fan3 + properties: fan present and functional + callback: resolve fan3 errors if present and functional + +- name: watch fan4 present and functional for resolving error logs + description: > + 'On fan present or functional state changes, check if errors need to be resolved.' + class: watch + watch: property + paths: fan4 + properties: fan present and functional + callback: resolve fan4 errors if present and functional + +- name: watch fan5 present and functional for resolving error logs + description: > + 'On fan present or functional state changes, check if errors need to be resolved.' + class: watch + watch: property + paths: fan5 + properties: fan present and functional + callback: resolve fan5 errors if present and functional + +- name: check power + description: > + 'If the chassis has power, check all fans.' + class: condition + condition: count + paths: chassis state + properties: chassis powered + callback: check fans + countop: '>' + countbound: 0 + op: '==' + bound: xyz.openbmc_project.State.Chassis.PowerState.On + +- name: check power fan0 presence + description: > + 'If the chassis has power, check presence of fan0.' + class: condition + condition: count + paths: chassis state + properties: chassis powered + callback: check fan0 presence + countop: '>' + countbound: 0 + op: '==' + bound: xyz.openbmc_project.State.Chassis.PowerState.On + +- name: check power fan0 functional + description: > + 'If the chassis has power, check functional of fan0.' + class: condition + condition: count + paths: chassis state + properties: chassis powered + callback: check fan0 functional + countop: '>' + countbound: 0 + op: '==' + bound: xyz.openbmc_project.State.Chassis.PowerState.On + +- name: check power fan1 presence + description: > + 'If the chassis has power, check presence of fan1.' + class: condition + condition: count + paths: chassis state + properties: chassis powered + callback: check fan1 presence + countop: '>' + countbound: 0 + op: '==' + bound: xyz.openbmc_project.State.Chassis.PowerState.On + +- name: check power fan1 functional + description: > + 'If the chassis has power, check functional of fan1.' + class: condition + condition: count + paths: chassis state + properties: chassis powered + callback: check fan1 functional + countop: '>' + countbound: 0 + op: '==' + bound: xyz.openbmc_project.State.Chassis.PowerState.On + +- name: check power fan2 presence + description: > + 'If the chassis has power, check presence of fan2.' + class: condition + condition: count + paths: chassis state + properties: chassis powered + callback: check fan2 presence + countop: '>' + countbound: 0 + op: '==' + bound: xyz.openbmc_project.State.Chassis.PowerState.On + +- name: check power fan2 functional + description: > + 'If the chassis has power, check functional of fan2.' + class: condition + condition: count + paths: chassis state + properties: chassis powered + callback: check fan2 functional + countop: '>' + countbound: 0 + op: '==' + bound: xyz.openbmc_project.State.Chassis.PowerState.On + +- name: check power fan3 presence + description: > + 'If the chassis has power, check presence of fan3.' + class: condition + condition: count + paths: chassis state + properties: chassis powered + callback: check fan3 presence + countop: '>' + countbound: 0 + op: '==' + bound: xyz.openbmc_project.State.Chassis.PowerState.On + +- name: check power fan3 functional + description: > + 'If the chassis has power, check functional of fan3.' + class: condition + condition: count + paths: chassis state + properties: chassis powered + callback: check fan3 functional + countop: '>' + countbound: 0 + op: '==' + bound: xyz.openbmc_project.State.Chassis.PowerState.On + +- name: check power fan4 presence + description: > + 'If the chassis has power, check presence of fan4.' + class: condition + condition: count + paths: chassis state + properties: chassis powered + callback: check fan4 presence + countop: '>' + countbound: 0 + op: '==' + bound: xyz.openbmc_project.State.Chassis.PowerState.On + +- name: check power fan4 functional + description: > + 'If the chassis has power, check functional of fan4.' + class: condition + condition: count + paths: chassis state + properties: chassis powered + callback: check fan4 functional + countop: '>' + countbound: 0 + op: '==' + bound: xyz.openbmc_project.State.Chassis.PowerState.On + +- name: check power fan5 presence + description: > + 'If the chassis has power, check presence of fan5.' + class: condition + condition: count + paths: chassis state + properties: chassis powered + callback: check fan5 presence + countop: '>' + countbound: 0 + op: '==' + bound: xyz.openbmc_project.State.Chassis.PowerState.On + +- name: check power fan5 functional + description: > + 'If the chassis has power, check functional of fan5.' + class: condition + condition: count + paths: chassis state + properties: chassis powered + callback: check fan5 functional + countop: '>' + countbound: 0 + op: '==' + bound: xyz.openbmc_project.State.Chassis.PowerState.On + +- name: check fans + description: > + 'Verify each of the 12 fans are present.' + class: callback + callback: group + members: + - check fan0 presence + - check fan1 presence + - check fan2 presence + - check fan3 presence + - check fan4 presence + - check fan5 presence + - check fan0 functional + - check fan1 functional + - check fan2 functional + - check fan3 functional + - check fan4 functional + - check fan5 functional + +- name: check fan0 presence + description: > + 'If this condition passes fan0 has been unplugged for more than 20 seconds.' + class: condition + condition: count + paths: fan0 + properties: fan present + defer: 20000000us + callback: notpresent fan0 error + countop: '<' + countbound: 1 + op: '==' + bound: true + +- name: check fan0 functional + description: > + 'If this condition passes fan0 has been marked as nonfunctional.' + class: condition + condition: count + paths: fan0 + properties: fan functional + callback: nonfunctional fan0 error + countop: '>' + countbound: 0 + op: '==' + bound: false + +- name: check fan1 presence + description: > + 'If this condition passes fan1 has been unplugged for more than 20 seconds.' + class: condition + condition: count + paths: fan1 + properties: fan present + defer: 20000000us + callback: notpresent fan1 error + countop: '<' + countbound: 1 + op: '==' + bound: true + +- name: check fan1 functional + description: > + 'If this condition passes fan1 has been marked as nonfunctional.' + class: condition + condition: count + paths: fan1 + properties: fan functional + callback: nonfunctional fan1 error + countop: '>' + countbound: 0 + op: '==' + bound: false + +- name: check fan2 presence + description: > + 'If this condition passes fan2 has been unplugged for more than 20 seconds.' + class: condition + condition: count + paths: fan2 + properties: fan present + defer: 20000000us + callback: notpresent fan2 error + countop: '<' + countbound: 1 + op: '==' + bound: true + +- name: check fan2 functional + description: > + 'If this condition passes fan2 has been marked as nonfunctional.' + class: condition + condition: count + paths: fan2 + properties: fan functional + callback: nonfunctional fan2 error + countop: '>' + countbound: 0 + op: '==' + bound: false + +- name: check fan3 presence + description: > + 'If this condition passes fan3 has been unplugged for more than 20 seconds.' + class: condition + condition: count + paths: fan3 + properties: fan present + defer: 20000000us + callback: notpresent fan3 error + countop: '<' + countbound: 1 + op: '==' + bound: true + +- name: check fan3 functional + description: > + 'If this condition passes fan3 has been marked as nonfunctional.' + class: condition + condition: count + paths: fan3 + properties: fan functional + callback: nonfunctional fan3 error + countop: '>' + countbound: 0 + op: '==' + bound: false + +- name: check fan4 presence + description: > + 'If this condition passes fan4 has been unplugged for more than 20 seconds.' + class: condition + condition: count + paths: fan4 + properties: fan present + defer: 20000000us + callback: notpresent fan4 error + countop: '<' + countbound: 1 + op: '==' + bound: true + +- name: check fan4 functional + description: > + 'If this condition passes fan4 has been marked as nonfunctional.' + class: condition + condition: count + paths: fan4 + properties: fan functional + callback: nonfunctional fan4 error + countop: '>' + countbound: 0 + op: '==' + bound: false + +- name: check fan5 presence + description: > + 'If this condition passes fan5 has been unplugged for more than 20 seconds.' + class: condition + condition: count + paths: fan5 + properties: fan present + defer: 20000000us + callback: notpresent fan5 error + countop: '<' + countbound: 1 + op: '==' + bound: true + +- name: check fan5 functional + description: > + 'If this condition passes fan5 has been marked as nonfunctional.' + class: condition + condition: count + paths: fan5 + properties: fan functional + callback: nonfunctional fan5 error + countop: '>' + countbound: 0 + op: '==' + bound: false + +- name: notpresent fan0 error + class: callback + callback: elog + paths: fan0 + properties: fan present + error: xyz::openbmc_project::Inventory::Error::NotPresent + metadata: + - name: xyz::openbmc_project::Inventory::NotPresent::CALLOUT_INVENTORY_PATH + value: /xyz/openbmc_project/inventory/system/chassis/motherboard/fan0 + type: string + +- name: nonfunctional fan0 error + class: callback + callback: elog + paths: fan0 + properties: fan functional + error: xyz::openbmc_project::Inventory::Error::Nonfunctional + metadata: + - name: xyz::openbmc_project::Inventory::Nonfunctional::CALLOUT_INVENTORY_PATH + value: /xyz/openbmc_project/inventory/system/chassis/motherboard/fan0 + type: string + +- name: notpresent fan1 error + class: callback + callback: elog + paths: fan1 + properties: fan present + error: xyz::openbmc_project::Inventory::Error::NotPresent + metadata: + - name: xyz::openbmc_project::Inventory::NotPresent::CALLOUT_INVENTORY_PATH + value: /xyz/openbmc_project/inventory/system/chassis/motherboard/fan1 + type: string + +- name: nonfunctional fan1 error + class: callback + callback: elog + paths: fan1 + properties: fan functional + error: xyz::openbmc_project::Inventory::Error::Nonfunctional + metadata: + - name: xyz::openbmc_project::Inventory::Nonfunctional::CALLOUT_INVENTORY_PATH + value: /xyz/openbmc_project/inventory/system/chassis/motherboard/fan1 + type: string + +- name: notpresent fan2 error + class: callback + callback: elog + paths: fan2 + properties: fan present + error: xyz::openbmc_project::Inventory::Error::NotPresent + metadata: + - name: xyz::openbmc_project::Inventory::NotPresent::CALLOUT_INVENTORY_PATH + value: /xyz/openbmc_project/inventory/system/chassis/motherboard/fan2 + type: string + +- name: nonfunctional fan2 error + class: callback + callback: elog + paths: fan2 + properties: fan functional + error: xyz::openbmc_project::Inventory::Error::Nonfunctional + metadata: + - name: xyz::openbmc_project::Inventory::Nonfunctional::CALLOUT_INVENTORY_PATH + value: /xyz/openbmc_project/inventory/system/chassis/motherboard/fan2 + type: string + +- name: notpresent fan3 error + class: callback + callback: elog + paths: fan3 + properties: fan present + error: xyz::openbmc_project::Inventory::Error::NotPresent + metadata: + - name: xyz::openbmc_project::Inventory::NotPresent::CALLOUT_INVENTORY_PATH + value: /xyz/openbmc_project/inventory/system/chassis/motherboard/fan3 + type: string + +- name: nonfunctional fan3 error + class: callback + callback: elog + paths: fan3 + properties: fan functional + error: xyz::openbmc_project::Inventory::Error::Nonfunctional + metadata: + - name: xyz::openbmc_project::Inventory::Nonfunctional::CALLOUT_INVENTORY_PATH + value: /xyz/openbmc_project/inventory/system/chassis/motherboard/fan3 + type: string + +- name: notpresent fan4 error + class: callback + callback: elog + paths: fan4 + properties: fan present + error: xyz::openbmc_project::Inventory::Error::NotPresent + metadata: + - name: xyz::openbmc_project::Inventory::NotPresent::CALLOUT_INVENTORY_PATH + value: /xyz/openbmc_project/inventory/system/chassis/motherboard/fan4 + type: string + +- name: nonfunctional fan4 error + class: callback + callback: elog + paths: fan4 + properties: fan functional + error: xyz::openbmc_project::Inventory::Error::Nonfunctional + metadata: + - name: xyz::openbmc_project::Inventory::Nonfunctional::CALLOUT_INVENTORY_PATH + value: /xyz/openbmc_project/inventory/system/chassis/motherboard/fan4 + type: string + +- name: notpresent fan5 error + class: callback + callback: elog + paths: fan5 + properties: fan present + error: xyz::openbmc_project::Inventory::Error::NotPresent + metadata: + - name: xyz::openbmc_project::Inventory::NotPresent::CALLOUT_INVENTORY_PATH + value: /xyz/openbmc_project/inventory/system/chassis/motherboard/fan5 + type: string + +- name: nonfunctional fan5 error + class: callback + callback: elog + paths: fan5 + properties: fan functional + error: xyz::openbmc_project::Inventory::Error::Nonfunctional + metadata: + - name: xyz::openbmc_project::Inventory::Nonfunctional::CALLOUT_INVENTORY_PATH + value: /xyz/openbmc_project/inventory/system/chassis/motherboard/fan5 + type: string + +- name: resolve fan0 errors if present and functional + description: > + 'If fan0 is present and functional, call the resolve fan0 errors callback.' + class: condition + condition: count + paths: fan0 + properties: fan present and functional + callback: resolve fan0 errors + countop: '==' + countbound: 2 + op: '==' + bound: true + +- name: resolve fan1 errors if present and functional + description: > + 'If fan1 is present and functional, call the resolve fan1 errors callback.' + class: condition + condition: count + paths: fan1 + properties: fan present and functional + callback: resolve fan1 errors + countop: '==' + countbound: 2 + op: '==' + bound: true + +- name: resolve fan2 errors if present and functional + description: > + 'If fan2 is present and functional, call the resolve fan2 errors callback.' + class: condition + condition: count + paths: fan2 + properties: fan present and functional + callback: resolve fan2 errors + countop: '==' + countbound: 2 + op: '==' + bound: true + +- name: resolve fan3 errors if present and functional + description: > + 'If fan3 is present and functional, call the resolve fan3 errors callback.' + class: condition + condition: count + paths: fan3 + properties: fan present and functional + callback: resolve fan3 errors + countop: '==' + countbound: 2 + op: '==' + bound: true + +- name: resolve fan4 errors if present and functional + description: > + 'If fan4 is present and functional, call the resolve fan4 errors callback.' + class: condition + condition: count + paths: fan4 + properties: fan present and functional + callback: resolve fan4 errors + countop: '==' + countbound: 2 + op: '==' + bound: true + +- name: resolve fan5 errors if present and functional + description: > + 'If fan5 is present and functional, call the resolve fan5 errors callback.' + class: condition + condition: count + paths: fan5 + properties: fan present and functional + callback: resolve fan5 errors + countop: '==' + countbound: 2 + op: '==' + bound: true + +- name: resolve fan0 errors + class: callback + callback: resolve callout + paths: fan0 + properties: fan present and functional + callout: /xyz/openbmc_project/inventory/system/chassis/motherboard/fan0 + +- name: resolve fan1 errors + class: callback + callback: resolve callout + paths: fan1 + properties: fan present and functional + callout: /xyz/openbmc_project/inventory/system/chassis/motherboard/fan1 + +- name: resolve fan2 errors + class: callback + callback: resolve callout + paths: fan2 + properties: fan present and functional + callout: /xyz/openbmc_project/inventory/system/chassis/motherboard/fan2 + +- name: resolve fan3 errors + class: callback + callback: resolve callout + paths: fan3 + properties: fan present and functional + callout: /xyz/openbmc_project/inventory/system/chassis/motherboard/fan3 + +- name: resolve fan4 errors + class: callback + callback: resolve callout + paths: fan4 + properties: fan present and functional + callout: /xyz/openbmc_project/inventory/system/chassis/motherboard/fan4 + +- name: resolve fan5 errors + class: callback + callback: resolve callout + paths: fan5 + properties: fan present and functional + callout: /xyz/openbmc_project/inventory/system/chassis/motherboard/fan5 diff --git a/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/dbus/phosphor-dbus-interfaces_%.bbappend b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/dbus/phosphor-dbus-interfaces_%.bbappend new file mode 100644 index 00000000..bfc78978 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/dbus/phosphor-dbus-interfaces_%.bbappend @@ -0,0 +1 @@ +EXTRA_OECONF_append_rainier = " --enable-ibm-dbus-interfaces" diff --git a/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/dbus/phosphor-dbus-monitor-config.bbappend b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/dbus/phosphor-dbus-monitor-config.bbappend index b06da500..3a18960e 100644 --- a/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/dbus/phosphor-dbus-monitor-config.bbappend +++ b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/dbus/phosphor-dbus-monitor-config.bbappend @@ -1,4 +1,8 @@ -PHOSPHOR_DBUS_MONITOR_CONFIGS_append = " fan-policy" -PHOSPHOR_DBUS_MONITOR_CONFIGS_append = " thermal-policy" -PHOSPHOR_DBUS_MONITOR_CONFIGS_append = " power-supply-policy" -PHOSPHOR_DBUS_MONITOR_CONFIGS_append = " events-policy" +PHOSPHOR_DBUS_MONITOR_CONFIGS_append_ibm-ac-server = " fan-policy" +PHOSPHOR_DBUS_MONITOR_CONFIGS_append_ibm-ac-server = " thermal-policy" +PHOSPHOR_DBUS_MONITOR_CONFIGS_append_ibm-ac-server = " power-supply-policy" +PHOSPHOR_DBUS_MONITOR_CONFIGS_append_ibm-ac-server = " events-policy" +PHOSPHOR_DBUS_MONITOR_CONFIGS_append_mihawk = " fan-policy" +PHOSPHOR_DBUS_MONITOR_CONFIGS_append_mihawk = " thermal-policy" +PHOSPHOR_DBUS_MONITOR_CONFIGS_append_mihawk = " power-supply-policy" +PHOSPHOR_DBUS_MONITOR_CONFIGS_append_mihawk = " events-policy" diff --git a/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/dbus/phosphor-dbus-monitor_%.bbappend b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/dbus/phosphor-dbus-monitor_%.bbappend index e80b4990..5c9d0b15 100644 --- a/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/dbus/phosphor-dbus-monitor_%.bbappend +++ b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/dbus/phosphor-dbus-monitor_%.bbappend @@ -1 +1,2 @@ -SYSTEMD_LINK_phosphor-msl-verify = "../phosphor-msl-verify.service:obmc-chassis-poweron@0.target.requires/phosphor-msl-verify.service" +SYSTEMD_LINK_phosphor-msl-verify_append_ibm-ac-server = " ../phosphor-msl-verify.service:obmc-chassis-poweron@0.target.requires/phosphor-msl-verify.service" +SYSTEMD_LINK_phosphor-msl-verify_append_mihawk = " ../phosphor-msl-verify.service:obmc-chassis-poweron@0.target.requires/phosphor-msl-verify.service" diff --git a/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/dbus/power-supply-policy.bb b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/dbus/power-supply-policy.bb index 27d60fb3..8d3df460 100644 --- a/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/dbus/power-supply-policy.bb +++ b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/dbus/power-supply-policy.bb @@ -1,7 +1,7 @@ SUMMARY = "Power supply policy configuration for meta-witherspoon machines" PR = "r1" LICENSE = "Apache-2.0" -LIC_FILES_CHKSUM = "file://${IBMBASE}/COPYING.apache-2.0;md5=34400b68072d710fecd0a2940a0d1658" +LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10" inherit allarch inherit phosphor-dbus-monitor diff --git a/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/dbus/thermal-policy.bb b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/dbus/thermal-policy.bb index 9fb7d252..b5b38baa 100644 --- a/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/dbus/thermal-policy.bb +++ b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/dbus/thermal-policy.bb @@ -1,14 +1,14 @@ SUMMARY = "Thermal policy configuration for meta-witherspoon machines" PR = "r1" LICENSE = "Apache-2.0" -LIC_FILES_CHKSUM = "file://${IBMBASE}/COPYING.apache-2.0;md5=34400b68072d710fecd0a2940a0d1658" +LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10" inherit allarch inherit phosphor-dbus-monitor FILESEXTRAPATHS_prepend := "${THISDIR}/${BPN}:" -SRC_URI += "file://thermal-policy.yaml" +SRC_URI = "file://thermal-policy.yaml" do_install() { install -D ${WORKDIR}/thermal-policy.yaml ${D}${config_dir}/thermal-policy.yaml diff --git a/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/dbus/thermal-policy/thermal-policy.yaml b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/dbus/thermal-policy/ibm-ac-server/thermal-policy.yaml similarity index 100% rename from Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/dbus/thermal-policy/thermal-policy.yaml rename to Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/dbus/thermal-policy/ibm-ac-server/thermal-policy.yaml diff --git a/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/dbus/thermal-policy/mihawk/thermal-policy.yaml b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/dbus/thermal-policy/mihawk/thermal-policy.yaml new file mode 100644 index 00000000..727630cb --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/dbus/thermal-policy/mihawk/thermal-policy.yaml @@ -0,0 +1,345 @@ +# Mihawk thermal policy for PDM. +# +# Shut down the system if more than three cores +# have a temperature greater than 95 degrees Celcius. +# or ambient temperature greater than 45 degrees Celcius. + +- name: core sensors + description: > + 'The machine has two processor chips with 24 cores each.' + class: group + group: path + members: + - meta: SENSOR + path: /xyz/openbmc_project/sensors/temperature/p0_core0_temp + - meta: SENSOR + path: /xyz/openbmc_project/sensors/temperature/p0_core1_temp + - meta: SENSOR + path: /xyz/openbmc_project/sensors/temperature/p0_core2_temp + - meta: SENSOR + path: /xyz/openbmc_project/sensors/temperature/p0_core3_temp + - meta: SENSOR + path: /xyz/openbmc_project/sensors/temperature/p0_core4_temp + - meta: SENSOR + path: /xyz/openbmc_project/sensors/temperature/p0_core5_temp + - meta: SENSOR + path: /xyz/openbmc_project/sensors/temperature/p0_core6_temp + - meta: SENSOR + path: /xyz/openbmc_project/sensors/temperature/p0_core7_temp + - meta: SENSOR + path: /xyz/openbmc_project/sensors/temperature/p0_core8_temp + - meta: SENSOR + path: /xyz/openbmc_project/sensors/temperature/p0_core9_temp + - meta: SENSOR + path: /xyz/openbmc_project/sensors/temperature/p0_core10_temp + - meta: SENSOR + path: /xyz/openbmc_project/sensors/temperature/p0_core11_temp + - meta: SENSOR + path: /xyz/openbmc_project/sensors/temperature/p0_core12_temp + - meta: SENSOR + path: /xyz/openbmc_project/sensors/temperature/p0_core13_temp + - meta: SENSOR + path: /xyz/openbmc_project/sensors/temperature/p0_core14_temp + - meta: SENSOR + path: /xyz/openbmc_project/sensors/temperature/p0_core15_temp + - meta: SENSOR + path: /xyz/openbmc_project/sensors/temperature/p0_core16_temp + - meta: SENSOR + path: /xyz/openbmc_project/sensors/temperature/p0_core17_temp + - meta: SENSOR + path: /xyz/openbmc_project/sensors/temperature/p0_core18_temp + - meta: SENSOR + path: /xyz/openbmc_project/sensors/temperature/p0_core19_temp + - meta: SENSOR + path: /xyz/openbmc_project/sensors/temperature/p0_core20_temp + - meta: SENSOR + path: /xyz/openbmc_project/sensors/temperature/p0_core21_temp + - meta: SENSOR + path: /xyz/openbmc_project/sensors/temperature/p0_core22_temp + - meta: SENSOR + path: /xyz/openbmc_project/sensors/temperature/p0_core23_temp + - meta: SENSOR + path: /xyz/openbmc_project/sensors/temperature/p1_core0_temp + - meta: SENSOR + path: /xyz/openbmc_project/sensors/temperature/p1_core1_temp + - meta: SENSOR + path: /xyz/openbmc_project/sensors/temperature/p1_core2_temp + - meta: SENSOR + path: /xyz/openbmc_project/sensors/temperature/p1_core3_temp + - meta: SENSOR + path: /xyz/openbmc_project/sensors/temperature/p1_core4_temp + - meta: SENSOR + path: /xyz/openbmc_project/sensors/temperature/p1_core5_temp + - meta: SENSOR + path: /xyz/openbmc_project/sensors/temperature/p1_core6_temp + - meta: SENSOR + path: /xyz/openbmc_project/sensors/temperature/p1_core7_temp + - meta: SENSOR + path: /xyz/openbmc_project/sensors/temperature/p1_core8_temp + - meta: SENSOR + path: /xyz/openbmc_project/sensors/temperature/p1_core9_temp + - meta: SENSOR + path: /xyz/openbmc_project/sensors/temperature/p1_core10_temp + - meta: SENSOR + path: /xyz/openbmc_project/sensors/temperature/p1_core11_temp + - meta: SENSOR + path: /xyz/openbmc_project/sensors/temperature/p1_core12_temp + - meta: SENSOR + path: /xyz/openbmc_project/sensors/temperature/p1_core13_temp + - meta: SENSOR + path: /xyz/openbmc_project/sensors/temperature/p1_core14_temp + - meta: SENSOR + path: /xyz/openbmc_project/sensors/temperature/p1_core15_temp + - meta: SENSOR + path: /xyz/openbmc_project/sensors/temperature/p1_core16_temp + - meta: SENSOR + path: /xyz/openbmc_project/sensors/temperature/p1_core17_temp + - meta: SENSOR + path: /xyz/openbmc_project/sensors/temperature/p1_core18_temp + - meta: SENSOR + path: /xyz/openbmc_project/sensors/temperature/p1_core19_temp + - meta: SENSOR + path: /xyz/openbmc_project/sensors/temperature/p1_core20_temp + - meta: SENSOR + path: /xyz/openbmc_project/sensors/temperature/p1_core21_temp + - meta: SENSOR + path: /xyz/openbmc_project/sensors/temperature/p1_core22_temp + - meta: SENSOR + path: /xyz/openbmc_project/sensors/temperature/p1_core23_temp + +- name: ambient sensor + description: > + 'The machine has one ambient temperature sensors.' + class: group + group: path + members: + - meta: SENSOR + path: /xyz/openbmc_project/sensors/temperature/ambient_temp + +- name: gpu sensors + description: > + 'Each gpu has its own temperature sensor.' + class: group + group: path + members: + - meta: SENSOR + path: /xyz/openbmc_project/sensors/temperature/gpu0 + - meta: SENSOR + path: /xyz/openbmc_project/sensors/temperature/gpu1 + - meta: SENSOR + path: /xyz/openbmc_project/sensors/temperature/gpu2 + - meta: SENSOR + path: /xyz/openbmc_project/sensors/temperature/gpu3 + - meta: SENSOR + path: /xyz/openbmc_project/sensors/temperature/gpu4 + - meta: SENSOR + path: /xyz/openbmc_project/sensors/temperature/gpu5 + - meta: SENSOR + path: /xyz/openbmc_project/sensors/temperature/gpu6 + - meta: SENSOR + path: /xyz/openbmc_project/sensors/temperature/gpu7 + +- name: core temp + description: > + 'Monitor the temperature of each core.' + class: group + group: property + type: int64 + members: + - interface: xyz.openbmc_project.Sensor.Value + meta: TEMP + property: Value + +- name: ambient temp + description: > + 'Monitor the ambient temperature.' + class: group + group: property + type: int64 + members: + - interface: xyz.openbmc_project.Sensor.Value + meta: TEMP + property: Value + +- name: gpu temp + description: > + 'Monitor the temperature of each gpu core.' + class: group + group: property + type: int64 + members: + - interface: xyz.openbmc_project.Sensor.Value + meta: TEMP + property: Value + +- name: watch core temps + description: > + 'Trigger logic on core temp changes.' + class: watch + watch: property + paths: core sensors + properties: core temp + callback: check temps + +- name: watch ambient temp + description: > + 'Trigger logic on ambient temp changes.' + class: watch + watch: property + paths: ambient sensor + properties: ambient temp + callback: check ambient temp + +- name: watch gpu temps + description: > + 'Trigger logic on gpu core temp changes.' + class: watch + watch: property + paths: gpu sensors + properties: gpu temp + callback: check gpu temps + +- name: check temps + description: > + 'If this condition passes at least three cores are running + too hot. Shut the system down.' + class: condition + condition: count + paths: core sensors + properties: core temp + callback: log and shutdown + countop: '>=' + countbound: 3 + op: '>=' + bound: 95000 + oneshot: true + +- name: check ambient temp + description: > + 'If the ambient sensor is too hot. Shut the system down.' + class: condition + condition: count + paths: ambient sensor + properties: ambient temp + callback: ambient log and shutdown + countop: '>=' + countbound: 1 + op: '>=' + bound: 45000 + oneshot: true + +- name: check gpu temps + description: > + 'If the gpu temperature sensor is too hot. Shut the system down.' + class: condition + condition: count + paths: gpu sensors + properties: gpu temp + callback: gpu log and shutdown + countop: '>=' + countbound: 1 + op: '>=' + bound: 92 + oneshot: true + +- name: log and shutdown + description: > + 'Shut the system down and log an event.' + class: callback + callback: group + members: + - shutdown + - create criticalhigh error + - create shutdown error + +- name: ambient log and shutdown + description: > + 'Shut the system down and log an event.' + class: callback + callback: group + members: + - shutdown + - create ambient criticalhigh error + - create ambient shutdown error + +- name: gpu log and shutdown + description: > + 'Shut the system down and log an event.' + class: callback + callback: group + members: + - shutdown + - create gpu criticalhigh error + - create gpu shutdown error + +- name: shutdown + description: > + 'Shut down the system.' + class: callback + callback: method + service: org.freedesktop.systemd1 + path: /org/freedesktop/systemd1 + interface: org.freedesktop.systemd1.Manager + method: StartUnit + args: + - value: obmc-chassis-hard-poweroff@0.target + type: string + - value: replace + type: string + +- name: create criticalhigh error + description: > + 'Create a CriticalHigh Error log.' + class: callback + callback: elog_with_metadata + paths: core sensors + properties: core temp + error: xyz::openbmc_project::Sensor::Threshold::Error::CriticalHigh + metadata: xyz::openbmc_project::Sensor::Threshold::CriticalHigh::SENSOR_DATA + +- name: create ambient criticalhigh error + description: > + 'Create a Ambient CriticalHigh Error log.' + class: callback + callback: elog_with_metadata + paths: ambient sensor + properties: ambient temp + error: xyz::openbmc_project::Sensor::Threshold::Error::CriticalHigh + metadata: xyz::openbmc_project::Sensor::Threshold::CriticalHigh::SENSOR_DATA + +- name: create gpu criticalhigh error + description: > + 'Create a GPU CriticalHigh Error log.' + class: callback + callback: elog_with_metadata + paths: gpu sensors + properties: gpu temp + error: xyz::openbmc_project::Sensor::Threshold::Error::CriticalHigh + metadata: xyz::openbmc_project::Sensor::Threshold::CriticalHigh::SENSOR_DATA + +- name: create shutdown error + description: > + 'Create a SystemShutdown Error log.' + class: callback + callback: elog + paths: core sensors + properties: core temp + error: xyz::openbmc_project::State::Shutdown::ThermalEvent::Error::Processor + +- name: create ambient shutdown error + description: > + 'Create a SystemShutdown Error log.' + class: callback + callback: elog + paths: ambient sensor + properties: ambient temp + error: xyz::openbmc_project::State::Shutdown::ThermalEvent::Error::Ambient + +- name: create gpu shutdown error + description: > + 'Create a SystemShutdown Error log.' + class: callback + callback: elog + paths: gpu sensors + properties: gpu temp + error: xyz::openbmc_project::State::Shutdown::ThermalEvent::Error::GPU diff --git a/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/fans/phosphor-fan-control-events-config/mihawk/events.yaml b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/fans/phosphor-fan-control-events-config/mihawk/events.yaml new file mode 100644 index 00000000..386f4b7c --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/fans/phosphor-fan-control-events-config/mihawk/events.yaml @@ -0,0 +1,774 @@ +groups: + - name: zone0_control_mode + description: Thermal control mode for zone 0 + service: xyz.openbmc_project.Control.Thermal + type: /xyz/openbmc_project/control/thermal + members: + - /0 + - name: air_cooled_zone0_fans + description: Group of fan inventory objects for air cooled zone 0 + type: /xyz/openbmc_project/inventory + members: + - /system/chassis/motherboard/fan0 + - /system/chassis/motherboard/fan1 + - /system/chassis/motherboard/fan2 + - /system/chassis/motherboard/fan3 + - /system/chassis/motherboard/fan4 + - /system/chassis/motherboard/fan5 + - name: zone0_ambient + description: Group of ambient temperature sensors for zone 0 + type: /xyz/openbmc_project/sensors + members: + - /temperature/ambient_temp + - name: occ0_object + description: Dbus object containing OCC0 properties + type: /org/open_power/control + members: + - /occ0 + - name: occ1_object + description: Dbus object containing OCC1 properties + type: /org/open_power/control + members: + - /occ1 + - name: zone0_cores + description: Group of core temperature sensors for zone 0 + type: /xyz/openbmc_project/sensors + members: + - /temperature/p0_core0_temp + - /temperature/p0_core1_temp + - /temperature/p0_core2_temp + - /temperature/p0_core3_temp + - /temperature/p0_core4_temp + - /temperature/p0_core5_temp + - /temperature/p0_core6_temp + - /temperature/p0_core7_temp + - /temperature/p0_core8_temp + - /temperature/p0_core9_temp + - /temperature/p0_core10_temp + - /temperature/p0_core11_temp + - /temperature/p0_core12_temp + - /temperature/p0_core13_temp + - /temperature/p0_core14_temp + - /temperature/p0_core15_temp + - /temperature/p0_core16_temp + - /temperature/p0_core17_temp + - /temperature/p0_core18_temp + - /temperature/p0_core19_temp + - /temperature/p0_core20_temp + - /temperature/p0_core21_temp + - /temperature/p0_core22_temp + - /temperature/p0_core23_temp + - /temperature/p1_core0_temp + - /temperature/p1_core1_temp + - /temperature/p1_core2_temp + - /temperature/p1_core3_temp + - /temperature/p1_core4_temp + - /temperature/p1_core5_temp + - /temperature/p1_core6_temp + - /temperature/p1_core7_temp + - /temperature/p1_core8_temp + - /temperature/p1_core9_temp + - /temperature/p1_core10_temp + - /temperature/p1_core11_temp + - /temperature/p1_core12_temp + - /temperature/p1_core13_temp + - /temperature/p1_core14_temp + - /temperature/p1_core15_temp + - /temperature/p1_core16_temp + - /temperature/p1_core17_temp + - /temperature/p1_core18_temp + - /temperature/p1_core19_temp + - /temperature/p1_core20_temp + - /temperature/p1_core21_temp + - /temperature/p1_core22_temp + - /temperature/p1_core23_temp + - name: zone0_dimms + description: Group of dimm temperature sensors for zone 0 + type: /xyz/openbmc_project/sensors + members: + - /temperature/dimm0_temp + - /temperature/dimm1_temp + - /temperature/dimm2_temp + - /temperature/dimm3_temp + - /temperature/dimm4_temp + - /temperature/dimm5_temp + - /temperature/dimm6_temp + - /temperature/dimm7_temp + - /temperature/dimm8_temp + - /temperature/dimm9_temp + - /temperature/dimm10_temp + - /temperature/dimm11_temp + - /temperature/dimm12_temp + - /temperature/dimm13_temp + - /temperature/dimm14_temp + - /temperature/dimm15_temp + - /temperature/dimm16_temp + - /temperature/dimm17_temp + - /temperature/dimm18_temp + - /temperature/dimm19_temp + - /temperature/dimm20_temp + - /temperature/dimm21_temp + - /temperature/dimm22_temp + - /temperature/dimm23_temp + - /temperature/dimm24_temp + - /temperature/dimm25_temp + - /temperature/dimm26_temp + - /temperature/dimm27_temp + - /temperature/dimm28_temp + - /temperature/dimm29_temp + - /temperature/dimm30_temp + - /temperature/dimm31_temp + - name: zone0_onboard + description: Group of onboard temperature sensors for zone 0 + type: /xyz/openbmc_project/sensors + members: + - /temperature/p0_pcie_temp + - /temperature/p1_pcie_temp + - name: zone0_vrd + description: Group of vrd temperature sensors for zone 0 + type: /xyz/openbmc_project/sensors + members: + - /temperature/p0_vcs_temp + - /temperature/p0_vdn_temp + - /temperature/p1_vcs_temp + - /temperature/p1_vdn_temp + - /temperature/p0_vdd_temp + - /temperature/p1_vdd_temp + - name: zone0_gpu + description: Group of gpu temperature sensors for zone 0 + type: /xyz/openbmc_project/sensors + members: + - /temperature/gpu0 + - /temperature/gpu1 + - /temperature/gpu2 + - /temperature/gpu3 + - /temperature/gpu4 + - /temperature/gpu5 + - /temperature/gpu6 + - /temperature/gpu7 +matches: + - name: propertiesChanged + parameters: + - object + - interface + - name: interfacesAdded + parameters: + - object + - name: interfacesRemoved + parameters: + - object + - name: nameOwnerChanged + parameters: + - object + - interface + +signals: + - name: propertiesChanged + description: > + A property changed match + parameters: + - type + - object + - interface + - property + match: propertiesChanged + - name: interfacesAdded + description: > + An interfaces added match + parameters: + - type + - object + - interface + - property + match: interfacesAdded + - name: interfacesRemoved + description: > + An interfaces removed match + parameters: + - object + - interface + match: interfacesRemoved + - name: nameOwnerChanged + description: > + A name owner changed match + parameters: + match: nameOwnerChanged + +methods: + - name: getProperties + description: > + Get the property values of the given group members + by performing a `GetProperty` method call on each + parameters: + - type + - name: nameHasOwner + description: > + A NameHasOwner method call to be performed on all event group members + parameters: + +handlers: + - name: setProperty + description: > + Sets a value for the given object/interface/property + parameters: + - type + - name: setService + description: > + Sets the service name and ownership status for the given group + parameters: + - group + - name: removeInterface + description: > + Removes an interface(and all associated properties) on the + given object from use within all event actions + parameters: + - object + - interface + +preconditions: + - name: property_states_match + description: > + All defined properties must match the values given to + enable a set speed event otherwise fan speeds are set to full + parameters: + - groups + - name: services_missing_owner + description: > + Any services missing an owner enable the events given otherwise + the events are removed/disabled + parameters: + +actions: + - name: call_actions_based_on_timer + description: > + Sets up a list of actions to be invoked when the defined timer + expires (or for each expiration of a repeating timer) + parameters: + - timer + - actions + - name: default_floor_on_missing_owner + description: > + Set the fan floor to the default floor + - name: set_speed_on_missing_owner + description: > + Set fans to the given speed when any service within the group + no longer exists + parameters: + - speed + - name: set_request_speed_base_with_max + description: > + Set the base request speed of a zone to the max value of a group for + calculating a new target speed + - name: count_state_before_speed + description: Set the speed when a number of properties at a state + parameters: + - count + - property + - speed + - name: set_floor_from_average_sensor_value + description: Set floor speed from first entry with average less than key + parameters: + - map + - name: set_ceiling_from_average_sensor_value + description: Set ceiling speed based on key transition values with average + parameters: + - map + - name: set_net_increase_speed + description: > + Set the speed increase delta based on a factor applied to + the delta increase size times the given value and property's + value difference + parameters: + - property + - factor + - delta + - name: set_net_decrease_speed + description: > + Set the speed decrease delta based on a factor applied to + the delta decrease size times the given value and property's + value difference + parameters: + - property + - factor + - delta + - name: use_alternate_events_on_state + description: > + Replaces a set of default events with an alternate set of events + when all the group properties are at a given state + parameters: + - property + - defevents + - altevents + +events: + - name: default_fan_floor_on_service_fail + precondition: + name: services_missing_owner + groups: + - name: zone0_ambient + interface: xyz.openbmc_project.Sensor.Value + property: + name: Value + type: int64_t + triggers: + - name: init + method: nameHasOwner + handler: setService + - name: signal + signal: nameOwnerChanged + handler: setService + events: + - name: default_fan_floor + groups: + - name: zone0_ambient + interface: xyz.openbmc_project.Sensor.Value + property: + name: Value + type: int64_t + triggers: + - name: timer + interval: 5000000 + type: oneshot + actions: + - name: default_floor_on_missing_owner + - name: high_speed_on_occ_service_fails + groups: + - name: occ0_object + interface: org.open_power.OCC.Status + property: + name: OccActive + type: bool + - name: occ1_object + interface: org.open_power.OCC.Status + property: + name: OccActive + type: bool + triggers: + - name: init + method: nameHasOwner + handler: setService + - name: signal + signal: nameOwnerChanged + handler: setService + actions: + - name: call_actions_based_on_timer + timer: + interval: 5000000 + type: oneshot + actions: + - name: set_speed_on_missing_owner + speed: + value: 255 + type: uint64_t + - name: missing_or_fails_before_high_speed_air + groups: + - name: air_cooled_zone0_fans + zone_conditions: + - name: air_cooled_chassis + zones: + - 0 + interface: xyz.openbmc_project.Inventory.Item + property: + name: Present + type: bool + - name: air_cooled_zone0_fans + zone_conditions: + - name: air_cooled_chassis + zones: + - 0 + interface: xyz.openbmc_project.State.Decorator.OperationalStatus + property: + name: Functional + type: bool + triggers: + - name: init + method: getProperties + handler: setProperty + - name: signal + signal: propertiesChanged + handler: setProperty + actions: + - name: count_state_before_speed + count: 1 + property: + value: false + type: bool + speed: + value: 255 + type: uint64_t + - name: set_air_cooled_speed_boundaries_based_on_ambient + groups: + - name: zone0_control_mode + zone_conditions: + - name: air_cooled_chassis + zones: + - 0 + interface: xyz.openbmc_project.Control.ThermalMode + property: + name: Current + type: std::string + triggers: + - name: init + method: getProperties + handler: setProperty + - name: signal + signal: propertiesChanged + handler: setProperty + actions: + - name: use_alternate_events_on_state + property: + value: CUSTOM + type: std::string + defevents: + - name: default_floor_boundary + groups: + - name: zone0_ambient + zone_conditions: + - name: air_cooled_chassis + zones: + - 0 + interface: xyz.openbmc_project.Sensor.Value + property: + name: Value + type: int64_t + triggers: + - name: init + method: getProperties + handler: setProperty + - name: signal + signal: propertiesChanged + handler: setProperty + actions: + - name: set_floor_from_average_sensor_value + map: + value: + - 25000: 85 + - 26000: 85 + - 28000: 97 + - 31000: 116 + - 33000: 128 + - 36000: 148 + - 38000: 160 + - 41000: 255 + type: std::map + - name: set_ceiling_from_average_sensor_value + map: + value: + - 25000: 255 + - 27000: 255 + type: std::map + altevents: + - name: alternate_floor_boundary + groups: + - name: zone0_ambient + zone_conditions: + - name: air_cooled_chassis + zones: + - 0 + interface: xyz.openbmc_project.Sensor.Value + property: + name: Value + type: int64_t + triggers: + - name: init + method: getProperties + handler: setProperty + - name: signal + signal: propertiesChanged + handler: setProperty + actions: + - name: set_floor_from_average_sensor_value + map: + value: + - 25000: 255 + - 26000: 255 + - 28000: 255 + - 31000: 255 + - 33000: 255 + - 36000: 255 + - 38000: 255 + - 41000: 255 + type: std::map + - name: set_ceiling_from_average_sensor_value + map: + value: + - 25000: 255 + - 27000: 255 + type: std::map + - name: occ_active_speed_changes + precondition: + name: property_states_match + groups: + - name: occ0_object + interface: org.open_power.OCC.Status + property: + name: OccActive + type: bool + value: true + - name: occ1_object + interface: org.open_power.OCC.Status + property: + name: OccActive + type: bool + value: true + triggers: + - name: init + method: getProperties + handler: setProperty + - name: signal + signal: interfacesAdded + handler: setProperty + - name: signal + signal: propertiesChanged + handler: setProperty + events: + - name: speed_control_sensors + groups: + - name: zone0_onboard + interface: xyz.openbmc_project.Sensor.Value + property: + name: Value + type: int64_t + - name: zone0_vrd + interface: xyz.openbmc_project.Sensor.Value + property: + name: Value + type: int64_t + - name: zone0_cores + interface: xyz.openbmc_project.Sensor.Value + property: + name: Value + type: int64_t + - name: zone0_dimms + interface: xyz.openbmc_project.Sensor.Value + property: + name: Value + type: int64_t + - name: zone0_gpu + interface: xyz.openbmc_project.Sensor.Value + property: + name: Value + type: int64_t + triggers: + - name: init + method: getProperties + handler: setProperty + - name: signal + signal: interfacesAdded + handler: setProperty + - name: signal + signal: propertiesChanged + handler: setProperty + - name: signal + signal: interfacesRemoved + handler: removeInterface + - name: fails_before_high_speed_air + groups: + - name: zone0_cores + interface: xyz.openbmc_project.State.Decorator.OperationalStatus + property: + name: Functional + type: bool + - name: zone0_dimms + interface: xyz.openbmc_project.State.Decorator.OperationalStatus + property: + name: Functional + type: bool + triggers: + - name: init + method: getProperties + handler: setProperty + - name: signal + signal: interfacesAdded + handler: setProperty + - name: signal + signal: propertiesChanged + handler: setProperty + actions: + - name: count_state_before_speed + count: 1 + property: + value: false + type: bool + speed: + value: 255 + type: uint64_t + - name: 1sec_speed_change_request_sampling + triggers: + - name: timer + interval: 1000000 + type: repeating + actions: + # Speed changes based on onboard temps + - name: set_net_increase_speed + groups: + - name: zone0_onboard + interface: xyz.openbmc_project.Sensor.Value + property: + name: Value + type: int64_t + property: + value: 55000 + type: int64_t + factor: + value: 1000 + type: int64_t + delta: + value: 8 + type: uint64_t + - name: set_net_decrease_speed + groups: + - name: zone0_onboard + interface: xyz.openbmc_project.Sensor.Value + property: + name: Value + type: int64_t + property: + value: 52000 + type: int64_t + factor: + value: 1000 + type: int64_t + delta: + value: 3 + type: uint64_t + # Speed changes based on vrd temps + - name: set_net_increase_speed + groups: + - name: zone0_vrd + interface: xyz.openbmc_project.Sensor.Value + property: + name: Value + type: int64_t + property: + value: 90000 + type: int64_t + factor: + value: 1000 + type: int64_t + delta: + value: 5 + type: uint64_t + - name: set_net_decrease_speed + groups: + - name: zone0_vrd + interface: xyz.openbmc_project.Sensor.Value + property: + name: Value + type: int64_t + property: + value: 85000 + type: int64_t + factor: + value: 3000 + type: int64_t + delta: + value: 3 + type: uint64_t + # Speed changes based on core temps + - name: set_net_increase_speed + groups: + - name: zone0_cores + zone_conditions: + - name: air_cooled_chassis + zones: + - 0 + interface: xyz.openbmc_project.Sensor.Value + property: + name: Value + type: int64_t + property: + value: 75000 + type: int64_t + factor: + value: 1000 + type: int64_t + delta: + value: 13 + type: uint64_t + - name: set_net_decrease_speed + groups: + - name: zone0_cores + zone_conditions: + - name: air_cooled_chassis + zones: + - 0 + interface: xyz.openbmc_project.Sensor.Value + property: + name: Value + type: int64_t + property: + value: 70000 + type: int64_t + factor: + value: 4000 + type: int64_t + delta: + value: 5 + type: uint64_t + # Speed changes based on dimm temps + - name: set_net_increase_speed + groups: + - name: zone0_dimms + interface: xyz.openbmc_project.Sensor.Value + property: + name: Value + type: int64_t + property: + value: 80000 + type: int64_t + factor: + value: 1000 + type: int64_t + delta: + value: 8 + type: uint64_t + - name: set_net_decrease_speed + groups: + - name: zone0_dimms + interface: xyz.openbmc_project.Sensor.Value + property: + name: Value + type: int64_t + property: + value: 75000 + type: int64_t + factor: + value: 3000 + type: int64_t + delta: + value: 3 + type: uint64_t + # Speed changes based on gpu temps + - name: set_net_increase_speed + groups: + - name: zone0_gpu + interface: xyz.openbmc_project.Sensor.Value + property: + name: Value + type: int64_t + property: + value: 80 + type: int64_t + factor: + value: 1 + type: int64_t + delta: + value: 13 + type: uint64_t + - name: set_net_decrease_speed + groups: + - name: zone0_gpu + interface: xyz.openbmc_project.Sensor.Value + property: + name: Value + type: int64_t + property: + value: 77 + type: int64_t + factor: + value: 4 + type: int64_t + delta: + value: 5 + type: uint64_t diff --git a/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/fans/phosphor-fan-control-events-config/witherspoon/events.yaml b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/fans/phosphor-fan-control-events-config/witherspoon/events.yaml index 74a34e08..c1902d02 100644 --- a/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/fans/phosphor-fan-control-events-config/witherspoon/events.yaml +++ b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/fans/phosphor-fan-control-events-config/witherspoon/events.yaml @@ -1,4 +1,9 @@ groups: + - name: poweron_pgood + description: System poweron pgood state + type: /org/openbmc/control + members: + - /power0 - name: zone0_control_mode description: Thermal control mode for zone 0 service: xyz.openbmc_project.Control.Thermal @@ -292,6 +297,19 @@ actions: - property - defevents - altevents + - name: update_default_floor + description: > + Update the default fan floor to the given speed + parameters: + - property + - speed + - name: use_events_on_state + description: > + Use a set of events when all the group properties are at a given + state, otherwise remove the events + parameters: + - property + - events events: - name: default_fan_floor_on_service_fail @@ -353,26 +371,13 @@ events: speed: value: 10500 type: uint64_t - - name: missing_or_fails_before_high_speed_air + - name: set_speed_boundaries_based_on_ambient groups: - - name: air_cooled_zone0_fans - zone_conditions: - - name: air_cooled_chassis - zones: - - 0 - interface: xyz.openbmc_project.Inventory.Item - property: - name: Present - type: bool - - name: air_cooled_zone0_fans - zone_conditions: - - name: air_cooled_chassis - zones: - - 0 - interface: xyz.openbmc_project.State.Decorator.OperationalStatus + - name: zone0_control_mode + interface: xyz.openbmc_project.Control.ThermalMode property: - name: Functional - type: bool + name: Current + type: std::string triggers: - name: init method: getProperties @@ -381,75 +386,40 @@ events: signal: propertiesChanged handler: setProperty actions: - - name: count_state_before_speed - count: 1 + - name: update_default_floor property: - value: false - type: bool + value: DEFAULT + type: std::string speed: - value: 10500 + value: 8000 type: uint64_t - - name: missing_or_fails_before_high_speed_water_and_air - groups: - - name: water_and_air_cooled_zone0_fans - zone_conditions: - - name: water_and_air_cooled_chassis - zones: - - 0 - interface: xyz.openbmc_project.Inventory.Item - property: - name: Present - type: bool - - name: water_and_air_cooled_zone0_fans - zone_conditions: - - name: water_and_air_cooled_chassis - zones: - - 0 - interface: xyz.openbmc_project.State.Decorator.OperationalStatus + - name: update_default_floor property: - name: Functional - type: bool - triggers: - - name: init - method: getProperties - handler: setProperty - - name: signal - signal: propertiesChanged - handler: setProperty - actions: - - name: count_state_before_speed - count: 1 + value: CUSTOM + type: std::string + speed: + value: 8000 + type: uint64_t + - name: update_default_floor property: - value: false - type: bool + value: HEAVY_IO + type: std::string speed: value: 10500 type: uint64_t - - name: set_air_cooled_speed_boundaries_based_on_ambient - groups: - - name: zone0_control_mode - zone_conditions: - - name: air_cooled_chassis - zones: - - 0 - interface: xyz.openbmc_project.Control.ThermalMode + - name: update_default_floor property: - name: Current + value: MAX_BASE_FAN_FLOOR type: std::string - triggers: - - name: init - method: getProperties - handler: setProperty - - name: signal - signal: propertiesChanged - handler: setProperty - actions: - - name: use_alternate_events_on_state + speed: + value: 10500 + type: uint64_t + - name: use_events_on_state property: - value: CUSTOM + value: DEFAULT type: std::string - defevents: - - name: default_floor_boundary + events: + - name: default_fan_speed_boundaries groups: - name: zone0_ambient zone_conditions: @@ -482,12 +452,11 @@ events: - 25000: 7200 - 27000: 10500 type: std::map - altevents: - - name: alternate_floor_boundary + - name: default_fan_speed_boundaries groups: - name: zone0_ambient zone_conditions: - - name: air_cooled_chassis + - name: water_and_air_cooled_chassis zones: - 0 interface: xyz.openbmc_project.Sensor.Value @@ -501,6 +470,40 @@ events: - name: signal signal: propertiesChanged handler: setProperty + actions: + - name: set_floor_from_average_sensor_value + map: + value: + - 27000: 3000 + - 32000: 4300 + - 37000: 5000 + - 40000: 5800 + type: std::map + - name: set_ceiling_from_average_sensor_value + map: + value: + - 25000: 7200 + - 27000: 10500 + type: std::map + - name: use_events_on_state + property: + value: CUSTOM + type: std::string + events: + - name: custom_fan_speed_boundaries + groups: + - name: zone0_ambient + interface: xyz.openbmc_project.Sensor.Value + property: + name: Value + type: int64_t + triggers: + - name: init + method: getProperties + handler: setProperty + - name: signal + signal: propertiesChanged + handler: setProperty actions: - name: set_floor_from_average_sensor_value map: @@ -516,39 +519,164 @@ events: - 25000: 7200 - 27000: 10500 type: std::map - - name: set_water_cooled_speed_boundaries_based_on_ambient - groups: - - name: zone0_ambient - zone_conditions: - - name: water_and_air_cooled_chassis - zones: - - 0 - interface: xyz.openbmc_project.Sensor.Value + - name: use_events_on_state property: - name: Value - type: int64_t - triggers: - - name: init - method: getProperties - handler: setProperty - - name: signal - signal: propertiesChanged - handler: setProperty - actions: - - name: set_floor_from_average_sensor_value - map: - value: - - 27000: 3000 - - 32000: 4300 - - 37000: 5000 - - 40000: 5800 - type: std::map - - name: set_ceiling_from_average_sensor_value - map: - value: - - 25000: 7200 - - 27000: 10500 - type: std::map + value: HEAVY_IO + type: std::string + events: + - name: heavy_io_fan_speed_boundaries + groups: + - name: zone0_ambient + interface: xyz.openbmc_project.Sensor.Value + property: + name: Value + type: int64_t + triggers: + - name: init + method: getProperties + handler: setProperty + - name: signal + signal: propertiesChanged + handler: setProperty + actions: + - name: set_floor_from_average_sensor_value + map: + value: + - 27000: 5900 + - 32000: 6800 + - 37000: 7500 + - 40000: 8200 + type: std::map + - name: set_ceiling_from_average_sensor_value + map: + value: + - 25000: 7200 + - 27000: 10500 + type: std::map + - name: use_events_on_state + property: + value: MAX_BASE_FAN_FLOOR + type: std::string + events: + - name: max_base_fan_floor_fan_speed_boundaries + groups: + - name: zone0_ambient + interface: xyz.openbmc_project.Sensor.Value + property: + name: Value + type: int64_t + triggers: + - name: init + method: getProperties + handler: setProperty + - name: signal + signal: propertiesChanged + handler: setProperty + actions: + - name: set_floor_from_average_sensor_value + map: + value: + - 27000: 7200 + - 32000: 8800 + - 37000: 9600 + - 40000: 10500 + type: std::map + - name: set_ceiling_from_average_sensor_value + map: + value: + - 25000: 7200 + - 27000: 10500 + type: std::map + - name: full_speed_at_power_on + precondition: + name: property_states_match + groups: + - name: poweron_pgood + interface: org.openbmc.control.Power + property: + name: pgood + type: int32_t + value: 1 + triggers: + - name: init + method: getProperties + handler: setProperty + - name: signal + signal: propertiesChanged + handler: setProperty + events: + - name: missing_or_fails_before_high_speed_air + groups: + - name: air_cooled_zone0_fans + zone_conditions: + - name: air_cooled_chassis + zones: + - 0 + interface: xyz.openbmc_project.Inventory.Item + property: + name: Present + type: bool + - name: air_cooled_zone0_fans + zone_conditions: + - name: air_cooled_chassis + zones: + - 0 + interface: xyz.openbmc_project.State.Decorator.OperationalStatus + property: + name: Functional + type: bool + triggers: + - name: init + method: getProperties + handler: setProperty + - name: signal + signal: propertiesChanged + handler: setProperty + actions: + - name: count_state_before_speed + count: 1 + property: + value: false + type: bool + speed: + value: 10500 + type: uint64_t + - name: missing_or_fails_before_high_speed_water_and_air + groups: + - name: water_and_air_cooled_zone0_fans + zone_conditions: + - name: water_and_air_cooled_chassis + zones: + - 0 + interface: xyz.openbmc_project.Inventory.Item + property: + name: Present + type: bool + - name: water_and_air_cooled_zone0_fans + zone_conditions: + - name: water_and_air_cooled_chassis + zones: + - 0 + interface: xyz.openbmc_project.State.Decorator.OperationalStatus + property: + name: Functional + type: bool + triggers: + - name: init + method: getProperties + handler: setProperty + - name: signal + signal: propertiesChanged + handler: setProperty + actions: + - name: count_state_before_speed + count: 1 + property: + value: false + type: bool + speed: + value: 10500 + type: uint64_t - name: occ_active_speed_changes precondition: name: property_states_match diff --git a/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/fans/phosphor-fan-control-fan-config/mihawk/fans.yaml b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/fans/phosphor-fan-control-fan-config/mihawk/fans.yaml new file mode 100644 index 00000000..d0a09004 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/fans/phosphor-fan-control-fan-config/mihawk/fans.yaml @@ -0,0 +1,37 @@ +fans: + - inventory: /system/chassis/motherboard/fan0 + cooling_zone: 0 + sensors: + - fan0_0 + - fan0_1 + target_interface: xyz.openbmc_project.Control.FanPwm + - inventory: /system/chassis/motherboard/fan1 + cooling_zone: 0 + sensors: + - fan1_0 + - fan1_1 + target_interface: xyz.openbmc_project.Control.FanPwm + - inventory: /system/chassis/motherboard/fan2 + cooling_zone: 0 + sensors: + - fan2_0 + - fan2_1 + target_interface: xyz.openbmc_project.Control.FanPwm + - inventory: /system/chassis/motherboard/fan3 + cooling_zone: 0 + sensors: + - fan3_0 + - fan3_1 + target_interface: xyz.openbmc_project.Control.FanPwm + - inventory: /system/chassis/motherboard/fan4 + cooling_zone: 0 + sensors: + - fan4_0 + - fan4_1 + target_interface: xyz.openbmc_project.Control.FanPwm + - inventory: /system/chassis/motherboard/fan5 + cooling_zone: 0 + sensors: + - fan5_0 + - fan5_1 + target_interface: xyz.openbmc_project.Control.FanPwm diff --git a/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/fans/phosphor-fan-control-fan-config/witherspoon/fans.yaml b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/fans/phosphor-fan-control-fan-config/witherspoon/fans.yaml old mode 100755 new mode 100644 diff --git a/Contrib-Inspur/openbmc/meta-ibm/meta-romulus/recipes-phosphor/fans/phosphor-fan-control-zone-conditions-config/zone_conditions.yaml b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/fans/phosphor-fan-control-zone-conditions-config/mihawk/zone_conditions.yaml similarity index 100% rename from Contrib-Inspur/openbmc/meta-ibm/meta-romulus/recipes-phosphor/fans/phosphor-fan-control-zone-conditions-config/zone_conditions.yaml rename to Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/fans/phosphor-fan-control-zone-conditions-config/mihawk/zone_conditions.yaml diff --git a/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/fans/phosphor-fan-control-zone-config/mihawk/zones.yaml b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/fans/phosphor-fan-control-zone-config/mihawk/zones.yaml new file mode 100644 index 00000000..4deb2523 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/fans/phosphor-fan-control-zone-config/mihawk/zones.yaml @@ -0,0 +1,42 @@ +manager_configuration: + power_on_delay: 20 + +zone_configuration: + +#Air cooled zones +- zone_conditions: + - name: air_cooled_chassis + + zones: + - zone: 0 + cooling_profiles: + - air + - all + full_speed: 255 + default_floor: 195 + increase_delay: 5 + decrease_interval: 30 + interfaces: + - name: xyz.openbmc_project.Control.ThermalMode + properties: + - name: Supported + type: array[string] + values: + - value: DEFAULT + description: > + Default thermal control mode + - value: CUSTOM + description: > + Custom thermal control mode for handling the use of + optical cables located behind the GPU exhaust that + could produce overtemp warnings without this mode + enabled. + - name: Current + type: string + persist: true + values: + - value: DEFAULT + description: > + Set current thermal control mode to the + default which will be replaced on startup if + another selected mode was persisted. \ No newline at end of file diff --git a/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/fans/phosphor-fan-control-zone-config/witherspoon/zones.yaml b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/fans/phosphor-fan-control-zone-config/witherspoon/zones.yaml index d31b3044..63303d7c 100644 --- a/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/fans/phosphor-fan-control-zone-config/witherspoon/zones.yaml +++ b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/fans/phosphor-fan-control-zone-config/witherspoon/zones.yaml @@ -28,9 +28,19 @@ zone_configuration: - value: CUSTOM description: > Custom thermal control mode for handling the use of - optical cables located behind the GPU exhaust that - could produce overtemp warnings without this mode - enabled. + PCI cards located behind the GPU exhaust that + could overtemp where the default mode is not + sufficient enough. + - value: HEAVY_IO + description: > + Heavy IO thermal control mode for handling the use + of PCI cards that produce heavy IO utilization and + could overtemp. + - value: MAX_BASE_FAN_FLOOR + description: > + Maximum base fan floor mode is for handling the + use of any hardware that requires the highest + amount of cooling even when the system may be idle. - name: Current type: string persist: true @@ -63,11 +73,28 @@ zone_configuration: - value: DEFAULT description: > Default thermal control mode + - value: CUSTOM + description: > + Custom thermal control mode for handling the use of + PCI cards located behind the GPU exhaust that + could overtemp where the default mode is not + sufficient enough. + - value: HEAVY_IO + description: > + Heavy IO thermal control mode for handling the use + of PCI cards that produce heavy IO utilization and + could overtemp. + - value: MAX_BASE_FAN_FLOOR + description: > + Maximum base fan floor mode is for handling the + use of any hardware that requires the highest + amount of cooling even when the system may be idle. - name: Current type: string persist: true values: - - value: DEFAULT - description: > - Set current thermal control mode to the - default. No other modes are supported. + - value: DEFAULT + description: > + Set current thermal control mode to the + default which will be replaced on startup if + another selected mode was persisted. diff --git a/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/fans/phosphor-fan-monitor-config/mihawk/monitor.yaml b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/fans/phosphor-fan-monitor-config/mihawk/monitor.yaml new file mode 100644 index 00000000..076349de --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/fans/phosphor-fan-monitor-config/mihawk/monitor.yaml @@ -0,0 +1,96 @@ +fans: + - inventory: /system/chassis/motherboard/fan0 + allowed_out_of_range_time: 10 + deviation: 15 + num_sensors_nonfunc_for_fan_nonfunc: 1 + sensors: + - name: fan0_0 + has_target: true + target_interface: xyz.openbmc_project.Control.FanPwm + factor: 70 + offset: 1200 + - name: fan0_1 + has_target: false + target_interface: xyz.openbmc_project.Control.FanPwm + factor: 70 + offset: 1200 + + - inventory: /system/chassis/motherboard/fan1 + allowed_out_of_range_time: 10 + deviation: 15 + num_sensors_nonfunc_for_fan_nonfunc: 1 + sensors: + - name: fan1_0 + has_target: true + target_interface: xyz.openbmc_project.Control.FanPwm + factor: 70 + offset: 1200 + - name: fan1_1 + has_target: false + target_interface: xyz.openbmc_project.Control.FanPwm + factor: 70 + offset: 1200 + + - inventory: /system/chassis/motherboard/fan2 + allowed_out_of_range_time: 10 + deviation: 15 + num_sensors_nonfunc_for_fan_nonfunc: 1 + sensors: + - name: fan2_0 + has_target: true + target_interface: xyz.openbmc_project.Control.FanPwm + factor: 70 + offset: 1200 + - name: fan2_1 + has_target: false + target_interface: xyz.openbmc_project.Control.FanPwm + factor: 70 + offset: 1200 + + - inventory: /system/chassis/motherboard/fan3 + allowed_out_of_range_time: 10 + deviation: 15 + num_sensors_nonfunc_for_fan_nonfunc: 1 + sensors: + - name: fan3_0 + has_target: true + target_interface: xyz.openbmc_project.Control.FanPwm + factor: 70 + offset: 1200 + - name: fan3_1 + has_target: false + target_interface: xyz.openbmc_project.Control.FanPwm + factor: 70 + offset: 1200 + + - inventory: /system/chassis/motherboard/fan4 + allowed_out_of_range_time: 10 + deviation: 15 + num_sensors_nonfunc_for_fan_nonfunc: 1 + sensors: + - name: fan4_0 + has_target: true + target_interface: xyz.openbmc_project.Control.FanPwm + factor: 70 + offset: 1200 + - name: fan4_1 + has_target: false + target_interface: xyz.openbmc_project.Control.FanPwm + factor: 70 + offset: 1200 + + - inventory: /system/chassis/motherboard/fan5 + allowed_out_of_range_time: 10 + deviation: 15 + num_sensors_nonfunc_for_fan_nonfunc: 1 + sensors: + - name: fan5_0 + has_target: true + target_interface: xyz.openbmc_project.Control.FanPwm + factor: 70 + offset: 1200 + - name: fan5_1 + has_target: false + target_interface: xyz.openbmc_project.Control.FanPwm + factor: 70 + offset: 1200 diff --git a/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/fans/phosphor-fan-presence-config.bbappend b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/fans/phosphor-fan-presence-config.bbappend index 8f2097cc..9442477a 100644 --- a/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/fans/phosphor-fan-presence-config.bbappend +++ b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/fans/phosphor-fan-presence-config.bbappend @@ -1 +1,11 @@ FILESEXTRAPATHS_prepend := "${THISDIR}/${BPN}:" + +SRC_URI_witherspoon = "file://config.json" + +do_install_witherspoon() { + install -d ${D}/${datadir}/phosphor-fan-presence/presence/ + install -m 0644 ${WORKDIR}/config.json ${D}/${datadir}/phosphor-fan-presence/presence/ +} + +FILES_${PN}_append_witherspoon = " ${datadir}/phosphor-fan-presence/presence/config.json" +FILES_${PN}_remove_witherspoon = "${presence_datadir}/config.yaml" diff --git a/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/fans/phosphor-fan-presence-config/mihawk/config.yaml b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/fans/phosphor-fan-presence-config/mihawk/config.yaml new file mode 100644 index 00000000..9cb5ecdd --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/fans/phosphor-fan-presence-config/mihawk/config.yaml @@ -0,0 +1,47 @@ +- name: fan0 + path: /system/chassis/motherboard/fan0 + methods: + - type: gpio + key: 9 + physpath: /sys/devices/platform/ahb/ahb:apb/ahb:apb:bus@1e78a000/1e78a100.i2c-bus/i2c-3/3-0060 + devpath: /dev/input/by-path/platform-gpio-keys-polled-event + +- name: fan1 + path: /system/chassis/motherboard/fan1 + methods: + - type: gpio + key: 10 + physpath: /sys/devices/platform/ahb/ahb:apb/ahb:apb:bus@1e78a000/1e78a100.i2c-bus/i2c-3/3-0060 + devpath: /dev/input/by-path/platform-gpio-keys-polled-event + +- name: fan2 + path: /system/chassis/motherboard/fan2 + methods: + - type: gpio + key: 11 + physpath: /sys/devices/platform/ahb/ahb:apb/ahb:apb:bus@1e78a000/1e78a100.i2c-bus/i2c-3/3-0060 + devpath: /dev/input/by-path/platform-gpio-keys-polled-event + +- name: fan3 + path: /system/chassis/motherboard/fan3 + methods: + - type: gpio + key: 12 + physpath: /sys/devices/platform/ahb/ahb:apb/ahb:apb:bus@1e78a000/1e78a100.i2c-bus/i2c-3/3-0060 + devpath: /dev/input/by-path/platform-gpio-keys-polled-event + +- name: fan4 + path: /system/chassis/motherboard/fan4 + methods: + - type: gpio + key: 13 + physpath: /sys/devices/platform/ahb/ahb:apb/ahb:apb:bus@1e78a000/1e78a100.i2c-bus/i2c-3/3-0060 + devpath: /dev/input/by-path/platform-gpio-keys-polled-event + +- name: fan5 + path: /system/chassis/motherboard/fan5 + methods: + - type: gpio + key: 14 + physpath: /sys/devices/platform/ahb/ahb:apb/ahb:apb:bus@1e78a000/1e78a100.i2c-bus/i2c-3/3-0060 + devpath: /dev/input/by-path/platform-gpio-keys-polled-event diff --git a/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/fans/phosphor-fan-presence-config/witherspoon/config.json b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/fans/phosphor-fan-presence-config/witherspoon/config.json new file mode 100644 index 00000000..36cdae85 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/fans/phosphor-fan-presence-config/witherspoon/config.json @@ -0,0 +1,90 @@ +[ + { + "name": "fan0", + "path": "/system/chassis/motherboard/fan0", + "methods": [ + { + "type": "gpio", + "key": 4, + "physpath": "/sys/devices/platform/ahb/ahb:apb/ahb:apb:bus@1e78a000/1e78a100.i2c-bus/i2c-3/3-0060", + "devpath": "/dev/input/by-path/platform-gpio-keys-polled-event" + }, + { + "type": "tach", + "sensors": [ + "fan0_0", + "fan0_1" + ] + } + ], + "rpolicy": { + "type": "anyof" + } + }, + { + "name": "fan1", + "path": "/system/chassis/motherboard/fan1", + "methods": [ + { + "type": "gpio", + "key": 5, + "physpath": "/sys/devices/platform/ahb/ahb:apb/ahb:apb:bus@1e78a000/1e78a100.i2c-bus/i2c-3/3-0060", + "devpath": "/dev/input/by-path/platform-gpio-keys-polled-event" + }, + { + "type": "tach", + "sensors": [ + "fan1_0", + "fan1_1" + ] + } + ], + "rpolicy": { + "type": "anyof" + } + }, + { + "name": "fan2", + "path": "/system/chassis/motherboard/fan2", + "methods": [ + { + "type": "gpio", + "key": 6, + "physpath": "/sys/devices/platform/ahb/ahb:apb/ahb:apb:bus@1e78a000/1e78a100.i2c-bus/i2c-3/3-0060", + "devpath": "/dev/input/by-path/platform-gpio-keys-polled-event" + }, + { + "type": "tach", + "sensors": [ + "fan2_0", + "fan2_1" + ] + } + ], + "rpolicy": { + "type": "anyof" + } + }, + { + "name": "fan3", + "path": "/system/chassis/motherboard/fan3", + "methods": [ + { + "type": "gpio", + "key": 7, + "physpath": "/sys/devices/platform/ahb/ahb:apb/ahb:apb:bus@1e78a000/1e78a100.i2c-bus/i2c-3/3-0060", + "devpath": "/dev/input/by-path/platform-gpio-keys-polled-event" + }, + { + "type": "tach", + "sensors": [ + "fan3_0", + "fan3_1" + ] + } + ], + "rpolicy": { + "type": "anyof" + } + } +] diff --git a/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/fans/phosphor-fan-presence-config/witherspoon/config.yaml b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/fans/phosphor-fan-presence-config/witherspoon/config.yaml deleted file mode 100644 index 1c26fc21..00000000 --- a/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/fans/phosphor-fan-presence-config/witherspoon/config.yaml +++ /dev/null @@ -1,55 +0,0 @@ -- name: fan0 - path: /system/chassis/motherboard/fan0 - methods: - - type: gpio - key: 4 - physpath: /sys/devices/platform/ahb/ahb:apb/ahb:apb:bus@1e78a000/1e78a100.i2c-bus/i2c-3/3-0060 - devpath: /dev/input/by-path/platform-gpio-keys-polled-event - - type: tach - sensors: - - fan0_0 - - fan0_1 - rpolicy: - type: anyof - -- name: fan1 - path: /system/chassis/motherboard/fan1 - methods: - - type: gpio - key: 5 - physpath: /sys/devices/platform/ahb/ahb:apb/ahb:apb:bus@1e78a000/1e78a100.i2c-bus/i2c-3/3-0060 - devpath: /dev/input/by-path/platform-gpio-keys-polled-event - - type: tach - sensors: - - fan1_0 - - fan1_1 - rpolicy: - type: anyof - -- name: fan2 - path: /system/chassis/motherboard/fan2 - methods: - - type: gpio - key: 6 - physpath: /sys/devices/platform/ahb/ahb:apb/ahb:apb:bus@1e78a000/1e78a100.i2c-bus/i2c-3/3-0060 - devpath: /dev/input/by-path/platform-gpio-keys-polled-event - - type: tach - sensors: - - fan2_0 - - fan2_1 - rpolicy: - type: anyof - -- name: fan3 - path: /system/chassis/motherboard/fan3 - methods: - - type: gpio - key: 7 - physpath: /sys/devices/platform/ahb/ahb:apb/ahb:apb:bus@1e78a000/1e78a100.i2c-bus/i2c-3/3-0060 - devpath: /dev/input/by-path/platform-gpio-keys-polled-event - - type: tach - sensors: - - fan3_0 - - fan3_1 - rpolicy: - type: anyof diff --git a/Contrib-Inspur/openbmc/meta-ibm/meta-romulus/recipes-phosphor/fans/phosphor-fan/obmc/phosphor-fan/phosphor-cooling-type-0.conf b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/fans/phosphor-fan/mihawk/obmc/phosphor-fan/phosphor-cooling-type-0.conf similarity index 100% rename from Contrib-Inspur/openbmc/meta-ibm/meta-romulus/recipes-phosphor/fans/phosphor-fan/obmc/phosphor-fan/phosphor-cooling-type-0.conf rename to Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/fans/phosphor-fan/mihawk/obmc/phosphor-fan/phosphor-cooling-type-0.conf diff --git a/Contrib-Inspur/openbmc/meta-ibm/meta-romulus/recipes-phosphor/fans/phosphor-fan/phosphor-cooling-type@.service b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/fans/phosphor-fan/mihawk/phosphor-cooling-type@.service similarity index 100% rename from Contrib-Inspur/openbmc/meta-ibm/meta-romulus/recipes-phosphor/fans/phosphor-fan/phosphor-cooling-type@.service rename to Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/fans/phosphor-fan/mihawk/phosphor-cooling-type@.service diff --git a/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/fans/phosphor-fan/witherspoon-tacoma/obmc/phosphor-fan/phosphor-cooling-type-0.conf b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/fans/phosphor-fan/witherspoon-tacoma/obmc/phosphor-fan/phosphor-cooling-type-0.conf new file mode 100644 index 00000000..354fbe3f --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/fans/phosphor-fan/witherspoon-tacoma/obmc/phosphor-fan/phosphor-cooling-type-0.conf @@ -0,0 +1,6 @@ +OBJPATH="--path=/system/chassis" +AIR="--air" +WATER="" +DEVICE="--dev=/dev/input/by-path/platform-gpio-keys-event" +CODE="--event=135" + diff --git a/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/fans/phosphor-fan/witherspoon/phosphor-fan-control@.service b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/fans/phosphor-fan/witherspoon/phosphor-fan-control@.service new file mode 100644 index 00000000..489292bf --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/fans/phosphor-fan/witherspoon/phosphor-fan-control@.service @@ -0,0 +1,11 @@ +[Unit] +Description=Phosphor Fan Control Daemon +Requires=max31785-hwmon-helper@ahb-apb-bus\x401e78a000-i2c\x2dbus\x40100-max31785\x4052.service +After=max31785-hwmon-helper@ahb-apb-bus\x401e78a000-i2c\x2dbus\x40100-max31785\x4052.service + +[Service] +Restart=on-failure +ExecStart=/usr/bin/phosphor-fan-control --control + +[Install] +RequiredBy=obmc-chassis-poweron@%i.target diff --git a/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/fans/phosphor-fan_%.bbappend b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/fans/phosphor-fan_%.bbappend index 58c1a5f9..70bbc77d 100644 --- a/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/fans/phosphor-fan_%.bbappend +++ b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/fans/phosphor-fan_%.bbappend @@ -1,27 +1,35 @@ FILESEXTRAPATHS_prepend := "${THISDIR}/${BPN}:" # Package configuration -FAN_PACKAGES += " \ +FAN_PACKAGES_append_ibm-ac-server = " \ phosphor-cooling-type \ -" + " -PACKAGECONFIG += "cooling-type" +FAN_PACKAGES_append_mihawk = " \ + phosphor-cooling-type \ + " + +PACKAGECONFIG_append_ibm-ac-server = " cooling-type" +PACKAGECONFIG_append_mihawk = " cooling-type" TMPL_COOLING = "phosphor-cooling-type@.service" INSTFMT_COOLING = "phosphor-cooling-type@{0}.service" -COOLING_TGT = "multi-user.target" -FMT_COOLING = "../${TMPL_COOLING}:${COOLING_TGT}.requires/${INSTFMT_COOLING}" +MULTI_USR_TGT = "multi-user.target" +FMT_COOLING = "../${TMPL_COOLING}:${MULTI_USR_TGT}.requires/${INSTFMT_COOLING}" -FILES_phosphor-cooling-type = "${bindir}/phosphor-cooling-type" -SYSTEMD_SERVICE_phosphor-cooling-type += "${TMPL_COOLING}" -SYSTEMD_LINK_phosphor-cooling-type += "${@compose_list(d, 'FMT_COOLING', 'OBMC_CHASSIS_INSTANCES')}" +FILES_phosphor-cooling-type_append_ibm-ac-server = " ${bindir}/phosphor-cooling-type" +SYSTEMD_SERVICE_phosphor-cooling-type_append_ibm-ac-server = " ${TMPL_COOLING}" +SYSTEMD_LINK_phosphor-cooling-type_append_ibm-ac-server = " ${@compose_list(d, 'FMT_COOLING', 'OBMC_CHASSIS_INSTANCES')}" +FILES_phosphor-cooling-type_append_mihawk = " ${bindir}/phosphor-cooling-type" +SYSTEMD_SERVICE_phosphor-cooling-type_append_mihawk = " ${TMPL_COOLING}" +SYSTEMD_LINK_phosphor-cooling-type_append_mihawk = " ${@compose_list(d, 'FMT_COOLING', 'OBMC_CHASSIS_INSTANCES')}" COOLING_ENV_FMT = "obmc/phosphor-fan/phosphor-cooling-type-{0}.conf" -SYSTEMD_ENVIRONMENT_FILE_phosphor-cooling-type += "${@compose_list(d, 'COOLING_ENV_FMT', 'OBMC_CHASSIS_INSTANCES')}" +SYSTEMD_ENVIRONMENT_FILE_phosphor-cooling-type_append_ibm-ac-server = " ${@compose_list(d, 'COOLING_ENV_FMT', 'OBMC_CHASSIS_INSTANCES')}" +SYSTEMD_ENVIRONMENT_FILE_phosphor-cooling-type_append_mihawk = " ${@compose_list(d, 'COOLING_ENV_FMT', 'OBMC_CHASSIS_INSTANCES')}" #These services are protected by the watchdog -SYSTEMD_OVERRIDE_phosphor-fan-control_witherspoon += "fan-watchdog-monitor.conf:phosphor-fan-control-init@0.service.d/fan-watchdog-monitor.conf" SYSTEMD_OVERRIDE_phosphor-fan-control_witherspoon += "fan-watchdog-monitor.conf:phosphor-fan-control@0.service.d/fan-watchdog-monitor.conf" SYSTEMD_OVERRIDE_phosphor-fan-monitor_witherspoon += "fan-watchdog-monitor.conf:phosphor-fan-monitor-init@0.service.d/fan-watchdog-monitor.conf" SYSTEMD_OVERRIDE_phosphor-fan-monitor_witherspoon += "fan-watchdog-monitor.conf:phosphor-fan-monitor@0.service.d/fan-watchdog-monitor.conf" @@ -29,3 +37,20 @@ SYSTEMD_OVERRIDE_phosphor-fan-monitor_witherspoon += "fan-watchdog-monitor.conf: #These services need to be stopped when watchdog expires SYSTEMD_OVERRIDE_phosphor-fan-control_witherspoon += "fan-watchdog-conflicts.conf:phosphor-fan-control@0.service.d/fan-watchdog-conflicts.conf" SYSTEMD_OVERRIDE_phosphor-fan-monitor_witherspoon += "fan-watchdog-conflicts.conf:phosphor-fan-monitor@0.service.d/fan-watchdog-conflicts.conf" + +# Remove fan control init service completely +SYSTEMD_SERVICE_${PN}-control_remove_witherspoon = "${TMPL_CONTROL_INIT}" +SYSTEMD_LINK_${PN}-control_remove_witherspoon = "${@compose_list(d, 'FMT_CONTROL_INIT', 'OBMC_CHASSIS_INSTANCES')}" +# Remove fan control from being linked +SYSTEMD_LINK_${PN}-control_remove_witherspoon = "${@compose_list(d, 'FMT_CONTROL', 'OBMC_CHASSIS_INSTANCES')}" + +# Link fan control service to be started at standby +FMT_CONTROL_STDBY_witherspoon = "../${TMPL_CONTROL}:${MULTI_USR_TGT}.wants/${INSTFMT_CONTROL}" +SYSTEMD_LINK_${PN}-control_witherspoon += "${@compose_list(d, 'FMT_CONTROL_STDBY', 'OBMC_CHASSIS_INSTANCES')}" +# Link fan control service to also start at poweron +FMT_CONTROL_PWRON_witherspoon = "../${TMPL_CONTROL}:${POWERON_TGT}.requires/${INSTFMT_CONTROL}" +SYSTEMD_LINK_${PN}-control_witherspoon += "${@compose_list(d, 'FMT_CONTROL_PWRON', 'OBMC_CHASSIS_INSTANCES')}" + +# Enable the use of JSON on the fan applications that support it +EXTRA_OECONF_append_witherspoon = " --enable-json" +RDEPENDS_${PN}-presence-tach_append_witherspoon = " phosphor-fan-presence-config" diff --git a/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/fans/witherspoon-fan-watchdog.bb b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/fans/witherspoon-fan-watchdog.bb index 357de951..93c8d457 100644 --- a/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/fans/witherspoon-fan-watchdog.bb +++ b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/fans/witherspoon-fan-watchdog.bb @@ -1,7 +1,7 @@ SUMMARY = "Witherspoon fan watchdog services" PR = "r1" LICENSE = "Apache-2.0" -LIC_FILES_CHKSUM = "file://${IBMBASE}/COPYING.apache-2.0;md5=34400b68072d710fecd0a2940a0d1658" +LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10" inherit obmc-phosphor-systemd diff --git a/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/fans/witherspoon-fan-watchdog/witherspoon-fan-watchdog.service b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/fans/witherspoon-fan-watchdog/witherspoon-fan-watchdog.service index 5b59546e..597ee03c 100644 --- a/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/fans/witherspoon-fan-watchdog/witherspoon-fan-watchdog.service +++ b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/fans/witherspoon-fan-watchdog/witherspoon-fan-watchdog.service @@ -1,7 +1,7 @@ [Unit] Description=Witherspoon Fan Watchdog Daemon -Wants=phosphor-fan-control-init@0.service -Before=phosphor-fan-control-init@0.service +Wants=phosphor-fan-monitor-init@0.service +Before=phosphor-fan-monitor-init@0.service Conflicts=obmc-fan-watchdog-takeover.target [Service] diff --git a/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/fans/witherspoon-fan-watchdog/witherspoon-reset-fan-watchdog.service b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/fans/witherspoon-fan-watchdog/witherspoon-reset-fan-watchdog.service index e0ef0aee..675a6726 100644 --- a/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/fans/witherspoon-fan-watchdog/witherspoon-reset-fan-watchdog.service +++ b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/fans/witherspoon-fan-watchdog/witherspoon-reset-fan-watchdog.service @@ -1,7 +1,7 @@ [Unit] Description=Witherspoon Fan Watchdog Reset -Wants=phosphor-fan-control-init@0.service -Before=phosphor-fan-control-init@0.service +Wants=phosphor-fan-monitor-init@0.service +Before=phosphor-fan-monitor-init@0.service Conflicts=obmc-chassis-poweroff@0.target [Service] diff --git a/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/flash/openpower-software-manager_%.bbappend b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/flash/openpower-software-manager_%.bbappend index 3dcc25dd..6c1f2753 100644 --- a/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/flash/openpower-software-manager_%.bbappend +++ b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/flash/openpower-software-manager_%.bbappend @@ -1 +1,2 @@ -PACKAGECONFIG_append_df-openpower-ubi-fs = " verify_pnor_signature" +PACKAGECONFIG_append_ibm-ac-server = " verify_pnor_signature" +PACKAGECONFIG_append_mihawk = " verify_pnor_signature" diff --git a/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/flash/phosphor-software-manager_%.bbappend b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/flash/phosphor-software-manager_%.bbappend index b58fc3b0..61297c12 100644 --- a/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/flash/phosphor-software-manager_%.bbappend +++ b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/flash/phosphor-software-manager_%.bbappend @@ -1,9 +1,18 @@ -BMC_RW_MTD = "bmc" -BMC_RO_MTD = "alt-bmc+bmc" -BMC_KERNEL_MTD = "bmc" +BMC_RW_MTD_ibm-ac-server = "bmc" +BMC_RW_MTD_rainier = "bmc" +BMC_RW_MTD_mihawk = "bmc" +BMC_RO_MTD_ibm-ac-server = "alt-bmc+bmc" +BMC_RO_MTD_rainier = "bmc" +BMC_RO_MTD_mihawk = "alt-bmc+bmc" +BMC_KERNEL_MTD_ibm-ac-server = "bmc" +BMC_KERNEL_MTD_rainier = "bmc" +BMC_KERNEL_MTD_mihawk = "bmc" -# Enable signature verification by DISTRO_FEATURE obmc-ubi-fs -PACKAGECONFIG_append_df-obmc-ubi-fs = " verify_signature" +# Enable signature verification +PACKAGECONFIG_append_ibm-ac-server = " verify_signature" +PACKAGECONFIG_append_rainier = " verify_signature" +PACKAGECONFIG_append_mihawk = " verify_signature" # Enable sync of persistent files to the alternate BMC chip -PACKAGECONFIG_append_df-obmc-ubi-fs = " sync_bmc_files" +PACKAGECONFIG_append_ibm-ac-server = " sync_bmc_files" +PACKAGECONFIG_append_mihawk = " sync_bmc_files" diff --git a/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/gpio/id-button.bb b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/gpio/id-button.bb new file mode 100644 index 00000000..386a2b93 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/gpio/id-button.bb @@ -0,0 +1,30 @@ +SUMMARY = "ID Button pressed application" +PR = "r1" +LICENSE = "Apache-2.0" +LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10" + +inherit obmc-phosphor-systemd + +DEPENDS += "virtual/obmc-gpio-monitor" +RDEPENDS_${PN} += "virtual/obmc-gpio-monitor" + +S = "${WORKDIR}" +SRC_URI += "file://toggle_identify_led.sh" + +do_install() { + install -d ${D}${bindir} + install -m 0755 ${WORKDIR}/toggle_identify_led.sh \ + ${D}${bindir}/toggle_identify_led.sh +} + +SYSTEMD_ENVIRONMENT_FILE_${PN} +="obmc/gpio/id_button" + +ID_BUTTON_SERVICE = "id_button" + +TMPL = "phosphor-gpio-monitor@.service" +INSTFMT = "phosphor-gpio-monitor@{0}.service" +TGT = "multi-user.target" +FMT = "../${TMPL}:${TGT}.requires/${INSTFMT}" + +SYSTEMD_SERVICE_${PN} += "id-button-pressed.service" +SYSTEMD_LINK_${PN} += "${@compose_list(d, 'FMT', 'ID_BUTTON_SERVICE')}" diff --git a/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/gpio/id-button/id-button-pressed.service b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/gpio/id-button/id-button-pressed.service new file mode 100644 index 00000000..c4f939cc --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/gpio/id-button/id-button-pressed.service @@ -0,0 +1,9 @@ +[Unit] +Description=ID Button Pressed Service +Wants=mapper-wait@-xyz-openbmc_project-led-groups.service +After=mapper-wait@-xyz-openbmc_project-led-groups.service +StartLimitIntervalSec=0 + +[Service] +Type=oneshot +ExecStart=/usr/bin/toggle_identify_led.sh diff --git a/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/gpio/id-button/obmc/gpio/id_button b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/gpio/id-button/obmc/gpio/id_button new file mode 100644 index 00000000..370e609c --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/gpio/id-button/obmc/gpio/id_button @@ -0,0 +1,5 @@ +DEVPATH=/dev/input/by-path/platform-gpio-keys-event +KEY=41 +POLARITY=1 +TARGET=id-button-pressed.service +EXTRA_ARGS=--continue diff --git a/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/gpio/id-button/toggle_identify_led.sh b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/gpio/id-button/toggle_identify_led.sh new file mode 100644 index 00000000..cd44c4b6 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/gpio/id-button/toggle_identify_led.sh @@ -0,0 +1,27 @@ +#!/bin/sh +# Toggle the state of identify LED Group + +SERVICE="xyz.openbmc_project.LED.GroupManager" +INTERFACE="xyz.openbmc_project.Led.Group" +PROPERTY="Asserted" + +# Get current state +object=$(busctl tree $SERVICE --list | grep identify) +led=$(cat /sys/devices/platform/leds/leds/rear-id/brightness) +if [ "$led" == "0" ]; then + busctl set-property $SERVICE $object $INTERFACE $PROPERTY b false +else + busctl set-property $SERVICE $object $INTERFACE $PROPERTY b true +fi + +state=$(busctl get-property $SERVICE $object $INTERFACE $PROPERTY \ + | awk '{print $NF;}') + +if [ "$state" == "false" ]; then + target='true' +else + target='false' +fi + +# Set target state +busctl set-property $SERVICE $object $INTERFACE $PROPERTY b $target diff --git a/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/gpio/phosphor-gpio-monitor/mihawk/obmc/gpio/phosphor-power-supply-0.conf b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/gpio/phosphor-gpio-monitor/mihawk/obmc/gpio/phosphor-power-supply-0.conf new file mode 100755 index 00000000..57754879 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/gpio/phosphor-gpio-monitor/mihawk/obmc/gpio/phosphor-power-supply-0.conf @@ -0,0 +1,6 @@ +INVENTORY=/system/chassis/motherboard/powersupply0 +DEVPATH=/dev/input/by-path/platform-gpio-keys-event +KEY=200 +NAME=powersupply0 +DRIVERS=/sys/bus/i2c/drivers/ibm-cffps,3-005b +EXTRA_IFACES=xyz.openbmc_project.Inventory.Item.PowerSupply diff --git a/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/gpio/phosphor-gpio-monitor/mihawk/obmc/gpio/phosphor-power-supply-1.conf b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/gpio/phosphor-gpio-monitor/mihawk/obmc/gpio/phosphor-power-supply-1.conf new file mode 100755 index 00000000..4d76afb4 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/gpio/phosphor-gpio-monitor/mihawk/obmc/gpio/phosphor-power-supply-1.conf @@ -0,0 +1,6 @@ +INVENTORY=/system/chassis/motherboard/powersupply1 +DEVPATH=/dev/input/by-path/platform-gpio-keys-event +KEY=202 +NAME=powersupply1 +DRIVERS=/sys/bus/i2c/drivers/ibm-cffps,3-0058 +EXTRA_IFACES=xyz.openbmc_project.Inventory.Item.PowerSupply diff --git a/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/gpio/phosphor-gpio-monitor/rainier/obmc/gpio/phosphor-power-supply-0.conf b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/gpio/phosphor-gpio-monitor/rainier/obmc/gpio/phosphor-power-supply-0.conf new file mode 100644 index 00000000..07564e98 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/gpio/phosphor-gpio-monitor/rainier/obmc/gpio/phosphor-power-supply-0.conf @@ -0,0 +1,6 @@ +INVENTORY=/system/chassis/motherboard/powersupply0 +DEVPATH=/dev/input/by-path/platform-gpio-keys-event +KEY=144 +NAME=powersupply0 +DRIVERS=/sys/bus/i2c/drivers/ibm-cffps,3-0068 +EXTRA_IFACES=xyz.openbmc_project.Inventory.Item.PowerSupply diff --git a/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/gpio/phosphor-gpio-monitor/rainier/obmc/gpio/phosphor-power-supply-1.conf b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/gpio/phosphor-gpio-monitor/rainier/obmc/gpio/phosphor-power-supply-1.conf new file mode 100644 index 00000000..304442fe --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/gpio/phosphor-gpio-monitor/rainier/obmc/gpio/phosphor-power-supply-1.conf @@ -0,0 +1,6 @@ +INVENTORY=/system/chassis/motherboard/powersupply1 +DEVPATH=/dev/input/by-path/platform-gpio-keys-event +KEY=145 +NAME=powersupply1 +DRIVERS=/sys/bus/i2c/drivers/ibm-cffps,3-0069 +EXTRA_IFACES=xyz.openbmc_project.Inventory.Item.PowerSupply diff --git a/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/gpio/phosphor-gpio-monitor/rainier/obmc/gpio/phosphor-power-supply-2.conf b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/gpio/phosphor-gpio-monitor/rainier/obmc/gpio/phosphor-power-supply-2.conf new file mode 100644 index 00000000..0f2a9c4f --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/gpio/phosphor-gpio-monitor/rainier/obmc/gpio/phosphor-power-supply-2.conf @@ -0,0 +1,6 @@ +INVENTORY=/system/chassis/motherboard/powersupply2 +DEVPATH=/dev/input/by-path/platform-gpio-keys-event +KEY=146 +NAME=powersupply2 +DRIVERS=/sys/bus/i2c/drivers/ibm-cffps,3-006a +EXTRA_IFACES=xyz.openbmc_project.Inventory.Item.PowerSupply diff --git a/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/gpio/phosphor-gpio-monitor/rainier/obmc/gpio/phosphor-power-supply-3.conf b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/gpio/phosphor-gpio-monitor/rainier/obmc/gpio/phosphor-power-supply-3.conf new file mode 100644 index 00000000..3ea74aca --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/gpio/phosphor-gpio-monitor/rainier/obmc/gpio/phosphor-power-supply-3.conf @@ -0,0 +1,6 @@ +INVENTORY=/system/chassis/motherboard/powersupply3 +DEVPATH=/dev/input/by-path/platform-gpio-keys-event +KEY=147 +NAME=powersupply3 +DRIVERS=/sys/bus/i2c/drivers/ibm-cffps,3-006b +EXTRA_IFACES=xyz.openbmc_project.Inventory.Item.PowerSupply diff --git a/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/gpio/phosphor-gpio-monitor_%.bbappend b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/gpio/phosphor-gpio-monitor_%.bbappend index f5a35820..04399f83 100644 --- a/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/gpio/phosphor-gpio-monitor_%.bbappend +++ b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/gpio/phosphor-gpio-monitor_%.bbappend @@ -5,8 +5,12 @@ INSTFMT_POWERSUPPLY = "phosphor-gpio-presence@{0}.service" POWERSUPPLY_TGT = "multi-user.target" FMT_POWERSUPPLY = "../${TMPL_POWERSUPPLY}:${POWERSUPPLY_TGT}.requires/${INSTFMT_POWERSUPPLY}" -SYSTEMD_LINK_${PN}-presence += "${@compose_list(d, 'FMT_POWERSUPPLY', 'OBMC_POWER_SUPPLY_INSTANCES')}" +SYSTEMD_LINK_${PN}-presence_append_ibm-ac-server = " ${@compose_list(d, 'FMT_POWERSUPPLY', 'OBMC_POWER_SUPPLY_INSTANCES')}" +SYSTEMD_LINK_${PN}-presence_append_mihawk = " ${@compose_list(d, 'FMT_POWERSUPPLY', 'OBMC_POWER_SUPPLY_INSTANCES')}" +SYSTEMD_LINK_${PN}-presence_append_rainier = " ${@compose_list(d, 'FMT_POWERSUPPLY', 'OBMC_POWER_SUPPLY_INSTANCES')}" POWERSUPPLY_ENV_FMT = "obmc/gpio/phosphor-power-supply-{0}.conf" -SYSTEMD_ENVIRONMENT_FILE_${PN}-presence += "${@compose_list(d, 'POWERSUPPLY_ENV_FMT', 'OBMC_POWER_SUPPLY_INSTANCES')}" +SYSTEMD_ENVIRONMENT_FILE_${PN}-presence_append_ibm-ac-server = " ${@compose_list(d, 'POWERSUPPLY_ENV_FMT', 'OBMC_POWER_SUPPLY_INSTANCES')}" +SYSTEMD_ENVIRONMENT_FILE_${PN}-presence_append_mihawk = " ${@compose_list(d, 'POWERSUPPLY_ENV_FMT', 'OBMC_POWER_SUPPLY_INSTANCES')}" +SYSTEMD_ENVIRONMENT_FILE_${PN}-presence_append_rainier = " ${@compose_list(d, 'POWERSUPPLY_ENV_FMT', 'OBMC_POWER_SUPPLY_INSTANCES')}" diff --git a/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/host/p9-host-start.bbappend b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/host/p9-host-start.bbappend index 45deee59..423a9e4a 100644 --- a/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/host/p9-host-start.bbappend +++ b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/host/p9-host-start.bbappend @@ -1,4 +1,9 @@ -RDEPENDS_${PN}_witherspoon_append = ' avsbus-control' -RDEPENDS_${PN}_witherspoon_append = ' vrm-control' -RDEPENDS_${PN}_append = ' power-workarounds' -RDEPENDS_${PN}_remove += "p9-vcs-workaround" +RDEPENDS_${PN}_append_ibm-ac-server = " avsbus-control" +RDEPENDS_${PN}_append_witherspoon = " vrm-control" +RDEPENDS_${PN}_append_ibm-ac-server = " power-workarounds" +RDEPENDS_${PN}_remove_ibm-ac-server = "p9-vcs-workaround" +RDEPENDS_${PN}_append_mihawk = " avsbus-control" +RDEPENDS_${PN}_append_mihawk = " vrm-control" +RDEPENDS_${PN}_remove_mihawk = "p9-vcs-workaround" +RDEPENDS_${PN}_remove_rainier = "p9-vcs-workaround" + diff --git a/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/images/obmc-phosphor-image.bbappend b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/images/obmc-phosphor-image.bbappend index 7702d991..56267922 100644 --- a/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/images/obmc-phosphor-image.bbappend +++ b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/images/obmc-phosphor-image.bbappend @@ -1 +1,3 @@ -OBMC_IMAGE_EXTRA_INSTALL_append = " mboxd max31785-msl phosphor-msl-verify liberation-fonts uart-render-controller first-boot-set-mac first-boot-set-hostname" +OBMC_IMAGE_EXTRA_INSTALL_append_ibm-ac-server = " mboxd max31785-msl phosphor-msl-verify liberation-fonts uart-render-controller first-boot-set-mac first-boot-set-hostname" +OBMC_IMAGE_EXTRA_INSTALL_append_rainier = " mboxd" +OBMC_IMAGE_EXTRA_INSTALL_append_mihawk = " mboxd liberation-fonts uart-render-controller first-boot-set-mac" diff --git a/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/inventory/inventory-cleanup.bb b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/inventory/inventory-cleanup.bb index f68edcb6..0c4b56f7 100644 --- a/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/inventory/inventory-cleanup.bb +++ b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/inventory/inventory-cleanup.bb @@ -1,7 +1,7 @@ SUMMARY = "Copy the inventory cleanup yaml for inventory manager" PR = "r1" LICENSE = "Apache-2.0" -LIC_FILES_CHKSUM = "file://${IBMBASE}/COPYING.apache-2.0;md5=34400b68072d710fecd0a2940a0d1658" +LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10" inherit allarch inherit phosphor-inventory-manager diff --git a/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/inventory/phosphor-inventory-manager/associations.json b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/inventory/phosphor-inventory-manager/associations.json index bea5269a..accf38b1 100644 --- a/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/inventory/phosphor-inventory-manager/associations.json +++ b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/inventory/phosphor-inventory-manager/associations.json @@ -17,20 +17,6 @@ "/xyz/openbmc_project/sensors/voltage/ps0_output_voltage" ] }, - { - "types": - { - "rType": "chassis", - "fType": "all_sensors" - }, - "paths": - [ - "/xyz/openbmc_project/sensors/power/ps0_input_power", - "/xyz/openbmc_project/sensors/voltage/ps0_input_voltage", - "/xyz/openbmc_project/sensors/current/ps0_output_current", - "/xyz/openbmc_project/sensors/voltage/ps0_output_voltage" - ] - }, { "types": { @@ -62,20 +48,6 @@ "/xyz/openbmc_project/sensors/voltage/ps1_output_voltage" ] }, - { - "types": - { - "rType": "chassis", - "fType": "all_sensors" - }, - "paths": - [ - "/xyz/openbmc_project/sensors/power/ps1_input_power", - "/xyz/openbmc_project/sensors/voltage/ps1_input_voltage", - "/xyz/openbmc_project/sensors/current/ps1_output_current", - "/xyz/openbmc_project/sensors/voltage/ps1_output_voltage" - ] - }, { "types": { @@ -1581,6 +1553,15 @@ "/xyz/openbmc_project/sensors/voltage/p1_vddr_voltage", "/xyz/openbmc_project/sensors/voltage/p1_vdn_voltage", + "/xyz/openbmc_project/sensors/power/p0_vdd_power", + "/xyz/openbmc_project/sensors/power/p0_vcs_power", + "/xyz/openbmc_project/sensors/power/p0_vddr_power", + "/xyz/openbmc_project/sensors/power/p0_vdn_power", + "/xyz/openbmc_project/sensors/power/p1_vdd_power", + "/xyz/openbmc_project/sensors/power/p1_vcs_power", + "/xyz/openbmc_project/sensors/power/p1_vddr_power", + "/xyz/openbmc_project/sensors/power/p1_vdn_power", + "/xyz/openbmc_project/sensors/temperature/p0_vcs_temp", "/xyz/openbmc_project/sensors/temperature/p0_vddr_temp", "/xyz/openbmc_project/sensors/temperature/p0_vdd_temp", @@ -1599,7 +1580,26 @@ "/xyz/openbmc_project/sensors/current/p1_vdd_current", "/xyz/openbmc_project/sensors/current/p1_vdn_current", - "/xyz/openbmc_project/sensors/power/total_power" + "/xyz/openbmc_project/sensors/power/fan_disk_power", + "/xyz/openbmc_project/sensors/power/io_power", + "/xyz/openbmc_project/sensors/power/total_power", + "/xyz/openbmc_project/sensors/power/p0_io_power", + "/xyz/openbmc_project/sensors/power/p0_mem_power", + "/xyz/openbmc_project/sensors/power/p0_power", + "/xyz/openbmc_project/sensors/power/p1_io_power", + "/xyz/openbmc_project/sensors/power/p1_mem_power", + "/xyz/openbmc_project/sensors/power/p1_power", + + "/xyz/openbmc_project/sensors/voltage/ps0_input_voltage", + "/xyz/openbmc_project/sensors/voltage/ps0_output_voltage", + "/xyz/openbmc_project/sensors/voltage/ps1_input_voltage", + "/xyz/openbmc_project/sensors/voltage/ps1_output_voltage", + + "/xyz/openbmc_project/sensors/power/ps0_input_power", + "/xyz/openbmc_project/sensors/power/ps1_input_power", + + "/xyz/openbmc_project/sensors/current/ps0_output_current", + "/xyz/openbmc_project/sensors/current/ps1_output_current" ] } ] diff --git a/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/inventory/phosphor-inventory-manager_%.bbappend b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/inventory/phosphor-inventory-manager_%.bbappend index 39f87342..bdc3912d 100644 --- a/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/inventory/phosphor-inventory-manager_%.bbappend +++ b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/inventory/phosphor-inventory-manager_%.bbappend @@ -1,11 +1,11 @@ FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:" -PACKAGECONFIG_append = " associations" -SRC_URI += "file://associations.json" +PACKAGECONFIG_append_ibm-ac-server = " associations" +SRC_URI_append_ibm-ac-server = " file://associations.json" -DEPENDS_append = " inventory-cleanup" +DEPENDS_append_ibm-ac-server = " inventory-cleanup" -do_install_append() { +do_install_append_ibm-ac-server() { install -d ${D}${base_datadir} install -m 0755 ${WORKDIR}/associations.json ${D}${base_datadir}/associations.json } diff --git a/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/ipmi/openpower-ipmi-oem_%.bbappend b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/ipmi/openpower-ipmi-oem_%.bbappend index 588f23e0..fd27f7dc 100644 --- a/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/ipmi/openpower-ipmi-oem_%.bbappend +++ b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/ipmi/openpower-ipmi-oem_%.bbappend @@ -1,5 +1,9 @@ -DEPENDS_append = " acx22-yaml-config" +DEPENDS_append_ibm-ac-server = " acx22-yaml-config" +DEPENDS_append_mihawk = " acx22-yaml-config" -EXTRA_OECONF = " \ +EXTRA_OECONF_ibm-ac-server = " \ INVSENSOR_YAML_GEN=${STAGING_DIR_HOST}${datadir}/acx22-yaml-config/ipmi-inventory-sensors.yaml \ " +EXTRA_OECONF_mihawk = " \ + INVSENSOR_YAML_GEN=${STAGING_DIR_HOST}${datadir}/acx22-yaml-config/ipmi-inventory-sensors.yaml \ + " \ No newline at end of file diff --git a/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/ipmi/phosphor-ipmi-config.bbappend b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/ipmi/phosphor-ipmi-config.bbappend index 3256e834..e3e5002b 100644 --- a/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/ipmi/phosphor-ipmi-config.bbappend +++ b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/ipmi/phosphor-ipmi-config.bbappend @@ -16,7 +16,7 @@ inherit image_version unset do_patch[noexec] do_patch[depends] = "os-release:do_populate_sysroot" -python do_patch() { +python do_patch_ibm-ac-server() { import json import re from shutil import copyfile diff --git a/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/ipmi/phosphor-ipmi-config/ibm-ac-server/channel_config.json b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/ipmi/phosphor-ipmi-config/ibm-ac-server/channel_config.json new file mode 100644 index 00000000..3f4746e5 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/ipmi/phosphor-ipmi-config/ibm-ac-server/channel_config.json @@ -0,0 +1,178 @@ +{ + "0" : { + "name" : "IPMB", + "is_valid" : true, + "active_sessions" : 0, + "channel_info" : { + "medium_type" : "ipmb", + "protocol_type" : "ipmb-1.0", + "session_supported" : "session-less", + "is_ipmi" : true + } + }, + "1" : { + "name" : "eth0", + "is_valid" : true, + "active_sessions" : 0, + "channel_info" : { + "medium_type" : "lan-802.3", + "protocol_type" : "ipmb-1.0", + "session_supported" : "multi-session", + "is_ipmi" : true + } + }, + "2" : { + "name" : "RESERVED", + "is_valid" : false, + "active_sessions" : 0, + "channel_info" : { + "medium_type" : "reserved", + "protocol_type" : "na", + "session_supported" : "session-less", + "is_ipmi" : true + } + }, + "3" : { + "name" : "RESERVED", + "is_valid" : false, + "active_sessions" : 0, + "channel_info" : { + "medium_type" : "reserved", + "protocol_type" : "na", + "session_supported" : "session-less", + "is_ipmi" : true + } + }, + "4" : { + "name" : "RESERVED", + "is_valid" : false, + "active_sessions" : 0, + "channel_info" : { + "medium_type" : "reserved", + "protocol_type" : "na", + "session_supported" : "session-less", + "is_ipmi" : true + } + }, + "5" : { + "name" : "RESERVED", + "is_valid" : false, + "active_sessions" : 0, + "channel_info" : { + "medium_type" : "reserved", + "protocol_type" : "na", + "session_supported" : "session-less", + "is_ipmi" : true + } + }, + "6" : { + "name" : "RESERVED", + "is_valid" : false, + "active_sessions" : 0, + "channel_info" : { + "medium_type" : "reserved", + "protocol_type" : "na", + "session_supported" : "session-less", + "is_ipmi" : true + } + }, + "7" : { + "name" : "RESERVED", + "is_valid" : false, + "active_sessions" : 0, + "channel_info" : { + "medium_type" : "reserved", + "protocol_type" : "na", + "session_supported" : "session-less", + "is_ipmi" : true + } + }, + "8" : { + "name" : "INTRABMC", + "is_valid" : true, + "active_sessions" : 0, + "channel_info" : { + "medium_type" : "oem", + "protocol_type" : "oem", + "session_supported" : "session-less", + "is_ipmi" : true + } + }, + "9" : { + "name" : "RESERVED", + "is_valid" : false, + "active_sessions" : 0, + "channel_info" : { + "medium_type" : "reserved", + "protocol_type" : "na", + "session_supported" : "session-less", + "is_ipmi" : true + } + }, + "10" : { + "name" : "RESERVED", + "is_valid" : false, + "active_sessions" : 0, + "channel_info" : { + "medium_type" : "reserved", + "protocol_type" : "na", + "session_supported" : "session-less", + "is_ipmi" : true + } + }, + "11" : { + "name" : "RESERVED", + "is_valid" : false, + "active_sessions" : 0, + "channel_info" : { + "medium_type" : "reserved", + "protocol_type" : "na", + "session_supported" : "session-less", + "is_ipmi" : true + } + }, + "12" : { + "name" : "RESERVED", + "is_valid" : false, + "active_sessions" : 0, + "channel_info" : { + "medium_type" : "reserved", + "protocol_type" : "na", + "session_supported" : "session-less", + "is_ipmi" : true + } + }, + "13" : { + "name" : "RESERVED", + "is_valid" : false, + "active_sessions" : 0, + "channel_info" : { + "medium_type" : "reserved", + "protocol_type" : "na", + "session_supported" : "session-less", + "is_ipmi" : true + } + }, + "14" : { + "name" : "SELF", + "is_valid" : false, + "active_sessions" : 0, + "channel_info" : { + "medium_type" : "ipmb", + "protocol_type" : "ipmb-1.0", + "session_supported" : "session-less", + "is_ipmi" : true + } + }, + "15" : { + "name" : "SMS", + "is_valid" : true, + "active_sessions" : 0, + "channel_info" : { + "medium_type" : "system-interface", + "protocol_type" : "kcs", + "session_supported" : "session-less", + "is_ipmi" : true + } + } +} diff --git a/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/ipmi/phosphor-ipmi-config/dcmi_sensors.json b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/ipmi/phosphor-ipmi-config/ibm-ac-server/dcmi_sensors.json similarity index 100% rename from Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/ipmi/phosphor-ipmi-config/dcmi_sensors.json rename to Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/ipmi/phosphor-ipmi-config/ibm-ac-server/dcmi_sensors.json diff --git a/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/ipmi/phosphor-ipmi-config/dev_id.json b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/ipmi/phosphor-ipmi-config/ibm-ac-server/dev_id.json similarity index 100% rename from Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/ipmi/phosphor-ipmi-config/dev_id.json rename to Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/ipmi/phosphor-ipmi-config/ibm-ac-server/dev_id.json diff --git a/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/ipmi/phosphor-ipmi-config/power_reading.json b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/ipmi/phosphor-ipmi-config/ibm-ac-server/power_reading.json similarity index 100% rename from Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/ipmi/phosphor-ipmi-config/power_reading.json rename to Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/ipmi/phosphor-ipmi-config/ibm-ac-server/power_reading.json diff --git a/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/ipmi/phosphor-ipmi-config/mihawk/channel_config.json b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/ipmi/phosphor-ipmi-config/mihawk/channel_config.json new file mode 100644 index 00000000..7f26c247 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/ipmi/phosphor-ipmi-config/mihawk/channel_config.json @@ -0,0 +1,178 @@ +{ + "0" : { + "name" : "IPMB", + "is_valid" : true, + "active_sessions" : 0, + "channel_info" : { + "medium_type" : "ipmb", + "protocol_type" : "ipmb-1.0", + "session_supported" : "session-less", + "is_ipmi" : true + } + }, + "1" : { + "name" : "eth0", + "is_valid" : true, + "active_sessions" : 0, + "channel_info" : { + "medium_type" : "lan-802.3", + "protocol_type" : "ipmb-1.0", + "session_supported" : "multi-session", + "is_ipmi" : true + } + }, + "2" : { + "name" : "eth1", + "is_valid" : true, + "active_sessions" : 0, + "channel_info" : { + "medium_type" : "lan-802.3", + "protocol_type" : "ipmb-1.0", + "session_supported" : "multi-session", + "is_ipmi" : true + } + }, + "3" : { + "name" : "RESERVED", + "is_valid" : false, + "active_sessions" : 0, + "channel_info" : { + "medium_type" : "reserved", + "protocol_type" : "na", + "session_supported" : "session-less", + "is_ipmi" : true + } + }, + "4" : { + "name" : "RESERVED", + "is_valid" : false, + "active_sessions" : 0, + "channel_info" : { + "medium_type" : "reserved", + "protocol_type" : "na", + "session_supported" : "session-less", + "is_ipmi" : true + } + }, + "5" : { + "name" : "RESERVED", + "is_valid" : false, + "active_sessions" : 0, + "channel_info" : { + "medium_type" : "reserved", + "protocol_type" : "na", + "session_supported" : "session-less", + "is_ipmi" : true + } + }, + "6" : { + "name" : "RESERVED", + "is_valid" : false, + "active_sessions" : 0, + "channel_info" : { + "medium_type" : "reserved", + "protocol_type" : "na", + "session_supported" : "session-less", + "is_ipmi" : true + } + }, + "7" : { + "name" : "RESERVED", + "is_valid" : false, + "active_sessions" : 0, + "channel_info" : { + "medium_type" : "reserved", + "protocol_type" : "na", + "session_supported" : "session-less", + "is_ipmi" : true + } + }, + "8" : { + "name" : "INTRABMC", + "is_valid" : true, + "active_sessions" : 0, + "channel_info" : { + "medium_type" : "oem", + "protocol_type" : "oem", + "session_supported" : "session-less", + "is_ipmi" : true + } + }, + "9" : { + "name" : "RESERVED", + "is_valid" : false, + "active_sessions" : 0, + "channel_info" : { + "medium_type" : "reserved", + "protocol_type" : "na", + "session_supported" : "session-less", + "is_ipmi" : true + } + }, + "10" : { + "name" : "RESERVED", + "is_valid" : false, + "active_sessions" : 0, + "channel_info" : { + "medium_type" : "reserved", + "protocol_type" : "na", + "session_supported" : "session-less", + "is_ipmi" : true + } + }, + "11" : { + "name" : "RESERVED", + "is_valid" : false, + "active_sessions" : 0, + "channel_info" : { + "medium_type" : "reserved", + "protocol_type" : "na", + "session_supported" : "session-less", + "is_ipmi" : true + } + }, + "12" : { + "name" : "RESERVED", + "is_valid" : false, + "active_sessions" : 0, + "channel_info" : { + "medium_type" : "reserved", + "protocol_type" : "na", + "session_supported" : "session-less", + "is_ipmi" : true + } + }, + "13" : { + "name" : "RESERVED", + "is_valid" : false, + "active_sessions" : 0, + "channel_info" : { + "medium_type" : "reserved", + "protocol_type" : "na", + "session_supported" : "session-less", + "is_ipmi" : true + } + }, + "14" : { + "name" : "SELF", + "is_valid" : false, + "active_sessions" : 0, + "channel_info" : { + "medium_type" : "ipmb", + "protocol_type" : "ipmb-1.0", + "session_supported" : "session-less", + "is_ipmi" : true + } + }, + "15" : { + "name" : "SMS", + "is_valid" : true, + "active_sessions" : 0, + "channel_info" : { + "medium_type" : "system-interface", + "protocol_type" : "kcs", + "session_supported" : "session-less", + "is_ipmi" : true + } + } +} diff --git a/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/ipmi/phosphor-ipmi-config/mihawk/dcmi_sensors.json b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/ipmi/phosphor-ipmi-config/mihawk/dcmi_sensors.json new file mode 100644 index 00000000..cd72656e --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/ipmi/phosphor-ipmi-config/mihawk/dcmi_sensors.json @@ -0,0 +1,59 @@ +{ + "inlet": [ + {"instance": 1, "dbus": "/xyz/openbmc_project/sensors/temperature/ambient_temp", "record_id": 255} + ], + "baseboard": [ + {"instance": 1, "dbus": "/xyz/openbmc_project/sensors/temperature/p0_pcie_temp", "record_id": 253} + {"instance": 2, "dbus": "/xyz/openbmc_project/sensors/temperature/p1_pcie_temp", "record_id": 254} + ], + "cpu": [ + {"instance": 1, "dbus": "/xyz/openbmc_project/sensors/temperature/p0_core0_temp", "record_id": 17}, + {"instance": 2, "dbus": "/xyz/openbmc_project/sensors/temperature/p0_core1_temp", "record_id": 20}, + {"instance": 3, "dbus": "/xyz/openbmc_project/sensors/temperature/p0_core2_temp", "record_id": 23}, + {"instance": 4, "dbus": "/xyz/openbmc_project/sensors/temperature/p0_core3_temp", "record_id": 26}, + {"instance": 5, "dbus": "/xyz/openbmc_project/sensors/temperature/p0_core4_temp", "record_id": 29}, + {"instance": 6, "dbus": "/xyz/openbmc_project/sensors/temperature/p0_core5_temp", "record_id": 32}, + {"instance": 7, "dbus": "/xyz/openbmc_project/sensors/temperature/p0_core6_temp", "record_id": 35}, + {"instance": 8, "dbus": "/xyz/openbmc_project/sensors/temperature/p0_core7_temp", "record_id": 38}, + {"instance": 9, "dbus": "/xyz/openbmc_project/sensors/temperature/p0_core8_temp", "record_id": 41}, + {"instance": 10, "dbus": "/xyz/openbmc_project/sensors/temperature/p0_core9_temp", "record_id": 44}, + {"instance": 11, "dbus": "/xyz/openbmc_project/sensors/temperature/p0_core10_temp", "record_id": 47}, + {"instance": 12, "dbus": "/xyz/openbmc_project/sensors/temperature/p0_core11_temp", "record_id": 50}, + {"instance": 13, "dbus": "/xyz/openbmc_project/sensors/temperature/p0_core12_temp", "record_id": 53}, + {"instance": 14, "dbus": "/xyz/openbmc_project/sensors/temperature/p0_core13_temp", "record_id": 56}, + {"instance": 15, "dbus": "/xyz/openbmc_project/sensors/temperature/p0_core14_temp", "record_id": 59}, + {"instance": 16, "dbus": "/xyz/openbmc_project/sensors/temperature/p0_core15_temp", "record_id": 62}, + {"instance": 17, "dbus": "/xyz/openbmc_project/sensors/temperature/p0_core16_temp", "record_id": 65}, + {"instance": 18, "dbus": "/xyz/openbmc_project/sensors/temperature/p0_core17_temp", "record_id": 68}, + {"instance": 19, "dbus": "/xyz/openbmc_project/sensors/temperature/p0_core18_temp", "record_id": 71}, + {"instance": 20, "dbus": "/xyz/openbmc_project/sensors/temperature/p0_core19_temp", "record_id": 74}, + {"instance": 21, "dbus": "/xyz/openbmc_project/sensors/temperature/p0_core20_temp", "record_id": 77}, + {"instance": 22, "dbus": "/xyz/openbmc_project/sensors/temperature/p0_core21_temp", "record_id": 80}, + {"instance": 23, "dbus": "/xyz/openbmc_project/sensors/temperature/p0_core22_temp", "record_id": 83}, + {"instance": 24, "dbus": "/xyz/openbmc_project/sensors/temperature/p0_core23_temp", "record_id": 86}, + {"instance": 25, "dbus": "/xyz/openbmc_project/sensors/temperature/p1_core0_temp", "record_id": 91}, + {"instance": 26, "dbus": "/xyz/openbmc_project/sensors/temperature/p1_core1_temp", "record_id": 94}, + {"instance": 27, "dbus": "/xyz/openbmc_project/sensors/temperature/p1_core2_temp", "record_id": 97}, + {"instance": 28, "dbus": "/xyz/openbmc_project/sensors/temperature/p1_core3_temp", "record_id": 100}, + {"instance": 29, "dbus": "/xyz/openbmc_project/sensors/temperature/p1_core4_temp", "record_id": 103}, + {"instance": 30, "dbus": "/xyz/openbmc_project/sensors/temperature/p1_core5_temp", "record_id": 106}, + {"instance": 31, "dbus": "/xyz/openbmc_project/sensors/temperature/p1_core6_temp", "record_id": 109}, + {"instance": 32, "dbus": "/xyz/openbmc_project/sensors/temperature/p1_core7_temp", "record_id": 112}, + {"instance": 33, "dbus": "/xyz/openbmc_project/sensors/temperature/p1_core8_temp", "record_id": 115}, + {"instance": 34, "dbus": "/xyz/openbmc_project/sensors/temperature/p1_core9_temp", "record_id": 118}, + {"instance": 35, "dbus": "/xyz/openbmc_project/sensors/temperature/p1_core10_temp", "record_id": 121}, + {"instance": 36, "dbus": "/xyz/openbmc_project/sensors/temperature/p1_core11_temp", "record_id": 124}, + {"instance": 37, "dbus": "/xyz/openbmc_project/sensors/temperature/p1_core12_temp", "record_id": 127}, + {"instance": 38, "dbus": "/xyz/openbmc_project/sensors/temperature/p1_core13_temp", "record_id": 130}, + {"instance": 39, "dbus": "/xyz/openbmc_project/sensors/temperature/p1_core14_temp", "record_id": 133}, + {"instance": 40, "dbus": "/xyz/openbmc_project/sensors/temperature/p1_core15_temp", "record_id": 136}, + {"instance": 41, "dbus": "/xyz/openbmc_project/sensors/temperature/p1_core16_temp", "record_id": 139}, + {"instance": 42, "dbus": "/xyz/openbmc_project/sensors/temperature/p1_core17_temp", "record_id": 142}, + {"instance": 43, "dbus": "/xyz/openbmc_project/sensors/temperature/p1_core18_temp", "record_id": 145}, + {"instance": 44, "dbus": "/xyz/openbmc_project/sensors/temperature/p1_core19_temp", "record_id": 148}, + {"instance": 45, "dbus": "/xyz/openbmc_project/sensors/temperature/p1_core20_temp", "record_id": 151}, + {"instance": 46, "dbus": "/xyz/openbmc_project/sensors/temperature/p1_core21_temp", "record_id": 154}, + {"instance": 47, "dbus": "/xyz/openbmc_project/sensors/temperature/p1_core22_temp", "record_id": 157}, + {"instance": 48, "dbus": "/xyz/openbmc_project/sensors/temperature/p1_core23_temp", "record_id": 160} + ] +} diff --git a/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/ipmi/phosphor-ipmi-config/mihawk/dev_id.json b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/ipmi/phosphor-ipmi-config/mihawk/dev_id.json new file mode 100644 index 00000000..3a457193 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/ipmi/phosphor-ipmi-config/mihawk/dev_id.json @@ -0,0 +1,2 @@ +{"id": 0, "revision": 128, "addn_dev_support": 141, + "manuf_id": 42817, "prod_id": 1, "aux": 0} diff --git a/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/ipmi/phosphor-ipmi-config/mihawk/power_reading.json b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/ipmi/phosphor-ipmi-config/mihawk/power_reading.json new file mode 100644 index 00000000..97e8f32b --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/ipmi/phosphor-ipmi-config/mihawk/power_reading.json @@ -0,0 +1,3 @@ +{ + "path": "/xyz/openbmc_project/sensors/power/total_power" +} diff --git a/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/ipmi/phosphor-ipmi-fru_%.bbappend b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/ipmi/phosphor-ipmi-fru_%.bbappend index 408364c6..6efe241b 100644 --- a/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/ipmi/phosphor-ipmi-fru_%.bbappend +++ b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/ipmi/phosphor-ipmi-fru_%.bbappend @@ -1,6 +1,11 @@ -DEPENDS_append = " acx22-yaml-config" +DEPENDS_append_ibm-ac-server = " acx22-yaml-config" +DEPENDS_append_mihawk = " acx22-yaml-config" -EXTRA_OECONF = " \ +EXTRA_OECONF_ibm-ac-server = " \ + YAML_GEN=${STAGING_DIR_HOST}${datadir}/acx22-yaml-config/ipmi-fru-read.yaml \ + PROP_YAML=${STAGING_DIR_HOST}${datadir}/acx22-yaml-config/ipmi-extra-properties.yaml \ + " +EXTRA_OECONF_mihawk = " \ YAML_GEN=${STAGING_DIR_HOST}${datadir}/acx22-yaml-config/ipmi-fru-read.yaml \ PROP_YAML=${STAGING_DIR_HOST}${datadir}/acx22-yaml-config/ipmi-extra-properties.yaml \ " diff --git a/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/ipmi/phosphor-ipmi-host_%.bbappend b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/ipmi/phosphor-ipmi-host_%.bbappend index 16b1379e..8d51478a 100644 --- a/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/ipmi/phosphor-ipmi-host_%.bbappend +++ b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/ipmi/phosphor-ipmi-host_%.bbappend @@ -1,7 +1,13 @@ -DEPENDS_append = " acx22-yaml-config" +DEPENDS_append_ibm-ac-server = " acx22-yaml-config" +DEPENDS_append_mihawk = " acx22-yaml-config" -EXTRA_OECONF = " \ +EXTRA_OECONF_ibm-ac-server = " \ SENSOR_YAML_GEN=${STAGING_DIR_HOST}${datadir}/acx22-yaml-config/ipmi-sensors.yaml \ INVSENSOR_YAML_GEN=${STAGING_DIR_HOST}${datadir}/acx22-yaml-config/ipmi-inventory-sensors.yaml \ FRU_YAML_GEN=${STAGING_DIR_HOST}${datadir}/acx22-yaml-config/ipmi-fru-read.yaml \ " +EXTRA_OECONF_mihawk = " \ + SENSOR_YAML_GEN=${STAGING_DIR_HOST}${datadir}/acx22-yaml-config/ipmi-sensors.yaml \ + INVSENSOR_YAML_GEN=${STAGING_DIR_HOST}${datadir}/acx22-yaml-config/ipmi-inventory-sensors.yaml \ + FRU_YAML_GEN=${STAGING_DIR_HOST}${datadir}/acx22-yaml-config/ipmi-fru-read.yaml \ + " \ No newline at end of file diff --git a/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/ipmi/phosphor-ipmi-net_%.bbappend b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/ipmi/phosphor-ipmi-net_%.bbappend new file mode 100644 index 00000000..c847c056 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/ipmi/phosphor-ipmi-net_%.bbappend @@ -0,0 +1,6 @@ +ALT_RMCPP_IFACE_mihawk = "eth1" +SYSTEMD_SERVICE_${PN}_append_mihawk += " \ + ${PN}@${ALT_RMCPP_IFACE}.service \ + ${PN}@${ALT_RMCPP_IFACE}.socket \ + " + diff --git a/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/leds/mihawk-led-manager-config-native.bb b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/leds/mihawk-led-manager-config-native.bb new file mode 100644 index 00000000..459a3161 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/leds/mihawk-led-manager-config-native.bb @@ -0,0 +1,18 @@ +SUMMARY = "Phosphor LED Group Management for Mihawk" +PR = "r1" +LICENSE = "Apache-2.0" +LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10" + +inherit native + +PROVIDES += "virtual/phosphor-led-manager-config-native" + +SRC_URI += "file://led.yaml" +S = "${WORKDIR}" + +# Copies example led layout yaml file +do_install() { + SRC=${S} + DEST=${D}${datadir}/phosphor-led-manager + install -D ${SRC}/led.yaml ${DEST}/led.yaml +} diff --git a/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/leds/mihawk-led-manager-config/led.yaml b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/leds/mihawk-led-manager-config/led.yaml new file mode 100644 index 00000000..59693ce7 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/leds/mihawk-led-manager-config/led.yaml @@ -0,0 +1,514 @@ +BmcBooted: + power: + Action: 'Blink' + DutyOn: 50 + Period: 250 + Priority: 'On' +PowerOn: + power: + Action: 'On' + DutyOn: 50 + Period: 0 + Priority: 'On' +EnclosureFault: + fault: + Action: 'On' + DutyOn: 50 + Period: 0 + Priority: 'On' +EnclosureIdentify: + rear-id: + Action: 'On' + DutyOn: 50 + Period: 0 + Priority: 'On' +Fan0Fault: + fan0: + Action: 'On' + DutyOn: 50 + Period: 0 + Priority: 'Blink' + fault: + Action: 'On' + DutyOn: 50 + Period: 0 + Priority: 'On' +Fan1Fault: + fan1: + Action: 'On' + DutyOn: 50 + Period: 1000 + Priority: 'Blink' + fault: + Action: 'On' + DutyOn: 50 + Period: 0 + Priority: 'On' +Fan2Fault: + fan2: + Action: 'On' + DutyOn: 50 + Period: 0 + Priority: 'Blink' + fault: + Action: 'On' + DutyOn: 50 + Period: 0 + Priority: 'On' +Fan3Fault: + fan3: + Action: 'On' + DutyOn: 50 + Period: 1000 + Priority: 'Blink' + fault: + Action: 'On' + DutyOn: 50 + Period: 0 + Priority: 'On' +Fan4Fault: + fan4: + Action: 'On' + DutyOn: 50 + Period: 0 + Priority: 'Blink' + fault: + Action: 'On' + DutyOn: 50 + Period: 0 + Priority: 'On' +Fan5Fault: + fan5: + Action: 'On' + DutyOn: 50 + Period: 1000 + Priority: 'Blink' + fault: + Action: 'On' + DutyOn: 50 + Period: 0 + Priority: 'On' +Powersupply0Fault: + fault: + Action: 'On' + DutyOn: 50 + Period: 0 + Priority: 'On' +Powersupply1Fault: + fault: + Action: 'On' + DutyOn: 50 + Period: 0 + Priority: 'On' +LampTest: + fault: + Action: 'Blink' + DutyOn: 50 + Period: 1000 + Priority: 'On' + rear-id: + Action: 'Blink' + DutyOn: 50 + Period: 1000 + Priority: 'On' + power: + Action: 'Blink' + DutyOn: 50 + Period: 1000 + Priority: 'On' + fan0: + Action: 'Blink' + DutyOn: 50 + Period: 1000 + Priority: 'Blink' + fan1: + Action: 'Blink' + DutyOn: 50 + Period: 1000 + Priority: 'Blink' + fan2: + Action: 'Blink' + DutyOn: 50 + Period: 1000 + Priority: 'Blink' + fan3: + Action: 'Blink' + DutyOn: 50 + Period: 1000 + Priority: 'Blink' + fan4: + Action: 'Blink' + DutyOn: 50 + Period: 1000 + Priority: 'Blink' + fan5: + Action: 'Blink' + DutyOn: 50 + Period: 1000 + Priority: 'Blink' +core0Fault: + fault: + Action: 'On' + DutyOn: 50 + Period: 0 + Priority: 'On' +core1Fault: + fault: + Action: 'On' + DutyOn: 50 + Period: 0 + Priority: 'On' +core2Fault: + fault: + Action: 'On' + DutyOn: 50 + Period: 0 + Priority: 'On' +core3Fault: + fault: + Action: 'On' + DutyOn: 50 + Period: 0 + Priority: 'On' +core4Fault: + fault: + Action: 'On' + DutyOn: 50 + Period: 0 + Priority: 'On' +core5Fault: + fault: + Action: 'On' + DutyOn: 50 + Period: 0 + Priority: 'On' +core6Fault: + fault: + Action: 'On' + DutyOn: 50 + Period: 0 + Priority: 'On' +core7Fault: + fault: + Action: 'On' + DutyOn: 50 + Period: 0 + Priority: 'On' +core8Fault: + fault: + Action: 'On' + DutyOn: 50 + Period: 0 + Priority: 'On' +core9Fault: + fault: + Action: 'On' + DutyOn: 50 + Period: 0 + Priority: 'On' +core10Fault: + fault: + Action: 'On' + DutyOn: 50 + Period: 0 + Priority: 'On' +core11Fault: + fault: + Action: 'On' + DutyOn: 50 + Period: 0 + Priority: 'On' +core12Fault: + fault: + Action: 'On' + DutyOn: 50 + Period: 0 + Priority: 'On' +core13Fault: + fault: + Action: 'On' + DutyOn: 50 + Period: 0 + Priority: 'On' +core14Fault: + fault: + Action: 'On' + DutyOn: 50 + Period: 0 + Priority: 'On' +core15Fault: + fault: + Action: 'On' + DutyOn: 50 + Period: 0 + Priority: 'On' +core16Fault: + fault: + Action: 'On' + DutyOn: 50 + Period: 0 + Priority: 'On' +core17Fault: + fault: + Action: 'On' + DutyOn: 50 + Period: 0 + Priority: 'On' +core18Fault: + fault: + Action: 'On' + DutyOn: 50 + Period: 0 + Priority: 'On' +core19Fault: + fault: + Action: 'On' + DutyOn: 50 + Period: 0 + Priority: 'On' +core20Fault: + fault: + Action: 'On' + DutyOn: 50 + Period: 0 + Priority: 'On' +core21Fault: + fault: + Action: 'On' + DutyOn: 50 + Period: 0 + Priority: 'On' +core22Fault: + fault: + Action: 'On' + DutyOn: 50 + Period: 0 + Priority: 'On' +core23Fault: + fault: + Action: 'On' + DutyOn: 50 + Period: 0 + Priority: 'On' +cpu0Fault: + fault: + Action: 'On' + DutyOn: 50 + Period: 0 + Priority: 'On' +cpu1Fault: + fault: + Action: 'On' + DutyOn: 50 + Period: 0 + Priority: 'On' +dimm0Fault: + fault: + Action: 'On' + DutyOn: 50 + Period: 0 + Priority: 'On' +dimm1Fault: + fault: + Action: 'On' + DutyOn: 50 + Period: 0 + Priority: 'On' +dimm2Fault: + fault: + Action: 'On' + DutyOn: 50 + Period: 0 + Priority: 'On' +dimm3Fault: + fault: + Action: 'On' + DutyOn: 50 + Period: 0 + Priority: 'On' +dimm4Fault: + fault: + Action: 'On' + DutyOn: 50 + Period: 0 + Priority: 'On' +dimm5Fault: + fault: + Action: 'On' + DutyOn: 50 + Period: 0 + Priority: 'On' +dimm6Fault: + fault: + Action: 'On' + DutyOn: 50 + Period: 0 + Priority: 'On' +dimm7Fault: + fault: + Action: 'On' + DutyOn: 50 + Period: 0 + Priority: 'On' +dimm8Fault: + fault: + Action: 'On' + DutyOn: 50 + Period: 0 + Priority: 'On' +dimm9Fault: + fault: + Action: 'On' + DutyOn: 50 + Period: 0 + Priority: 'On' +dimm10Fault: + fault: + Action: 'On' + DutyOn: 50 + Period: 0 + Priority: 'On' +dimm11Fault: + fault: + Action: 'On' + DutyOn: 50 + Period: 0 + Priority: 'On' +dimm12Fault: + fault: + Action: 'On' + DutyOn: 50 + Period: 0 + Priority: 'On' +dimm13Fault: + fault: + Action: 'On' + DutyOn: 50 + Period: 0 + Priority: 'On' +dimm14Fault: + fault: + Action: 'On' + DutyOn: 50 + Period: 0 + Priority: 'On' +dimm15Fault: + fault: + Action: 'On' + DutyOn: 50 + Period: 0 + Priority: 'On' +dimm16Fault: + fault: + Action: 'On' + DutyOn: 50 + Period: 0 + Priority: 'On' +dimm17Fault: + fault: + Action: 'On' + DutyOn: 50 + Period: 0 + Priority: 'On' +dimm18Fault: + fault: + Action: 'On' + DutyOn: 50 + Period: 0 + Priority: 'On' +dimm19Fault: + fault: + Action: 'On' + DutyOn: 50 + Period: 0 + Priority: 'On' +dimm20Fault: + fault: + Action: 'On' + DutyOn: 50 + Period: 0 + Priority: 'On' +dimm21Fault: + fault: + Action: 'On' + DutyOn: 50 + Period: 0 + Priority: 'On' +dimm22Fault: + fault: + Action: 'On' + DutyOn: 50 + Period: 0 + Priority: 'On' +dimm23Fault: + fault: + Action: 'On' + DutyOn: 50 + Period: 0 + Priority: 'On' +dimm24Fault: + fault: + Action: 'On' + DutyOn: 50 + Period: 0 + Priority: 'On' +dimm25Fault: + fault: + Action: 'On' + DutyOn: 50 + Period: 0 + Priority: 'On' +dimm26Fault: + fault: + Action: 'On' + DutyOn: 50 + Period: 0 + Priority: 'On' +dimm27Fault: + fault: + Action: 'On' + DutyOn: 50 + Period: 0 + Priority: 'On' +dimm28Fault: + fault: + Action: 'On' + DutyOn: 50 + Period: 0 + Priority: 'On' +dimm29Fault: + fault: + Action: 'On' + DutyOn: 50 + Period: 0 + Priority: 'On' +dimm30Fault: + fault: + Action: 'On' + DutyOn: 50 + Period: 0 + Priority: 'On' +dimm31Fault: + fault: + Action: 'On' + DutyOn: 50 + Period: 0 + Priority: 'On' +motherboardFault: + fault: + Action: 'On' + DutyOn: 50 + Period: 0 + Priority: 'On' +occFault: + fault: + Action: 'On' + DutyOn: 50 + Period: 0 + Priority: 'On' +systemFault: + fault: + Action: 'On' + DutyOn: 50 + Period: 0 + Priority: 'On' \ No newline at end of file diff --git a/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/logging/ibm-logging/ibm-ac-server/policyTable.json b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/logging/ibm-logging/ibm-ac-server/policyTable.json new file mode 100644 index 00000000..123aa6df --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/logging/ibm-logging/ibm-ac-server/policyTable.json @@ -0,0 +1,22521 @@ +{ + "events": { + "External Software CSM||Event Type Lookup Failure": { + "AffectedLEDs": null, + "AffectedSubsystem": "Systems Management - Events / Monitoring", + "BMCMessageID": "External Software CSM", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPEM0003G", + "ComponentInstance": null, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Firmware/Software Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "CSM", + "Message": "Failed to find an alert in the CSM RAS event types table", + "ReferencedInventory": "Event Type Lookup Failure", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Warning", + "UserAction": null, + "VMMigrationFlag": false + }, + "External Software||Network Error": { + "AffectedLEDs": null, + "AffectedSubsystem": "Interconnect Networking", + "BMCMessageID": "External Software", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPIN0001M", + "ComponentInstance": null, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Communication Failure/Timeout", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Connection Error. View additional details for more information", + "ReferencedInventory": "Network Error", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": true + }, + "org.open_power.Host.Access.Error.ReadCFAM": { + "AffectedLEDs": null, + "AffectedSubsystem": "Systems Management - Core / Virtual Appliance", + "BMCMessageID": "org.open_power.Host.Access.Error.ReadCFAM", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCR0044F", + "ComponentInstance": null, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Communication Failure/Timeout", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Failure to write to host CFAM interface", + "ReferencedInventory": null, + "RelatedEventIDs": {}, + "Serviceable": false, + "Severity": "Warning", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Access.Error.WriteCFAM": { + "AffectedLEDs": null, + "AffectedSubsystem": "Systems Management - Core / Virtual Appliance", + "BMCMessageID": "org.open_power.Host.Access.Error.WriteCFAM", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCR0043F", + "ComponentInstance": null, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Communication Failure/Timeout", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Failure to read from host CFAM interface", + "ReferencedInventory": null, + "RelatedEventIDs": {}, + "Serviceable": false, + "Severity": "Warning", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Boot.Error.Checkstop": { + "AffectedLEDs": null, + "AffectedSubsystem": "Canister/Appliance", + "BMCMessageID": "org.open_power.Host.Boot.Error.Checkstop", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPAA0007G", + "ComponentInstance": null, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "A system checkstop occurred", + "ReferencedInventory": null, + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Warning", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Boot.Error.WatchdogTimedOut": { + "AffectedLEDs": null, + "AffectedSubsystem": "Systems Management - Core / Virtual Appliance", + "BMCMessageID": "org.open_power.Host.Boot.Error.WatchdogTimedOut", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCR0023M", + "ComponentInstance": null, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Firmware/Software Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Hostboot has become unresponsive", + "ReferencedInventory": null, + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.Checkstop": { + "AffectedLEDs": null, + "AffectedSubsystem": "Canister/Appliance", + "BMCMessageID": "org.open_power.Host.Error.Checkstop", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPAA0007G", + "ComponentInstance": null, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "A system checkstop occurred", + "ReferencedInventory": null, + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Warning", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.Event": { + "AffectedLEDs": null, + "AffectedSubsystem": "Canister/Appliance", + "BMCMessageID": "org.open_power.Host.Error.Event", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPAA0011M", + "ComponentInstance": null, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "An error was detected with the base platform, but was not able to be deciphered. Contact your next level of support.", + "ReferencedInventory": null, + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system": { + "AffectedLEDs": null, + "AffectedSubsystem": "Canister/Appliance", + "BMCMessageID": "org.open_power.Host.Error.Event", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPAA0008M", + "ComponentInstance": null, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Hostboot procedure callout", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "org.open_power.Host.Error.Event", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0090M", + "ComponentInstance": 0, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 0 has failed", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core0": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "org.open_power.Host.Error.Event", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0091M", + "ComponentInstance": "0,0", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 0 core 0 has failed", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core0", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core0||Critical": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "org.open_power.Host.Error.Event", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0091M", + "ComponentInstance": "0,0", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 0 core 0 has failed", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core0", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core0||Informational": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "org.open_power.Host.Error.Event", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPPU0096I", + "ComponentInstance": "0,0", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Recovery", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 0 core 0 has recovered from an error", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core0", + "RelatedEventIDs": {}, + "Serviceable": false, + "Severity": "Information", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core0||Warning": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "org.open_power.Host.Error.Event", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPPU0094G", + "ComponentInstance": "0,0", + "DateAdded": null, + "DateReviewed": null, + "EventType": "PFA", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 0 core 0 has exceeded a correctable error threshold", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core0", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Warning", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core1": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "org.open_power.Host.Error.Event", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0091M", + "ComponentInstance": "0,1", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 0 core 1 has failed", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core1", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core10": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "org.open_power.Host.Error.Event", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0091M", + "ComponentInstance": "0,10", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 0 core 10 has failed", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core10", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core10||Critical": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "org.open_power.Host.Error.Event", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0091M", + "ComponentInstance": "0,10", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 0 core 10 has failed", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core10", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core10||Informational": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "org.open_power.Host.Error.Event", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPPU0096I", + "ComponentInstance": "0,10", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Recovery", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 0 core 10 has recovered from an error", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core10", + "RelatedEventIDs": {}, + "Serviceable": false, + "Severity": "Information", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core10||Warning": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "org.open_power.Host.Error.Event", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPPU0094G", + "ComponentInstance": "0,10", + "DateAdded": null, + "DateReviewed": null, + "EventType": "PFA", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 0 core 10 has exceeded a correctable error threshold", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core10", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Warning", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core11": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "org.open_power.Host.Error.Event", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0091M", + "ComponentInstance": "0,11", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 0 core 11 has failed", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core11", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core11||Critical": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "org.open_power.Host.Error.Event", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0091M", + "ComponentInstance": "0,11", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 0 core 11 has failed", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core11", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core11||Informational": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "org.open_power.Host.Error.Event", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPPU0096I", + "ComponentInstance": "0,11", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Recovery", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 0 core 11 has recovered from an error", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core11", + "RelatedEventIDs": {}, + "Serviceable": false, + "Severity": "Information", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core11||Warning": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "org.open_power.Host.Error.Event", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPPU0094G", + "ComponentInstance": "0,11", + "DateAdded": null, + "DateReviewed": null, + "EventType": "PFA", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 0 core 11 has exceeded a correctable error threshold", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core11", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Warning", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core12": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "org.open_power.Host.Error.Event", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0091M", + "ComponentInstance": "0,12", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 0 core 12 has failed", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core12", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core12||Critical": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "org.open_power.Host.Error.Event", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0091M", + "ComponentInstance": "0,12", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 0 core 12 has failed", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core12", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core12||Informational": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "org.open_power.Host.Error.Event", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPPU0096I", + "ComponentInstance": "0,12", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Recovery", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 0 core 12 has recovered from an error", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core12", + "RelatedEventIDs": {}, + "Serviceable": false, + "Severity": "Information", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core12||Warning": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "org.open_power.Host.Error.Event", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPPU0094G", + "ComponentInstance": "0,12", + "DateAdded": null, + "DateReviewed": null, + "EventType": "PFA", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 0 core 12 has exceeded a correctable error threshold", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core12", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Warning", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core13": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "org.open_power.Host.Error.Event", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0091M", + "ComponentInstance": "0,13", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 0 core 13 has failed", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core13", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core13||Critical": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "org.open_power.Host.Error.Event", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0091M", + "ComponentInstance": "0,13", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 0 core 13 has failed", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core13", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core13||Informational": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "org.open_power.Host.Error.Event", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPPU0096I", + "ComponentInstance": "0,13", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Recovery", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 0 core 13 has recovered from an error", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core13", + "RelatedEventIDs": {}, + "Serviceable": false, + "Severity": "Information", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core13||Warning": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "org.open_power.Host.Error.Event", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPPU0094G", + "ComponentInstance": "0,13", + "DateAdded": null, + "DateReviewed": null, + "EventType": "PFA", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 0 core 13 has exceeded a correctable error threshold", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core13", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Warning", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core14": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "org.open_power.Host.Error.Event", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0091M", + "ComponentInstance": "0,14", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 0 core 14 has failed", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core14", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core14||Critical": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "org.open_power.Host.Error.Event", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0091M", + "ComponentInstance": "0,14", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 0 core 14 has failed", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core14", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core14||Informational": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "org.open_power.Host.Error.Event", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPPU0096I", + "ComponentInstance": "0,14", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Recovery", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 0 core 14 has recovered from an error", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core14", + "RelatedEventIDs": {}, + "Serviceable": false, + "Severity": "Information", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core14||Warning": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "org.open_power.Host.Error.Event", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPPU0094G", + "ComponentInstance": "0,14", + "DateAdded": null, + "DateReviewed": null, + "EventType": "PFA", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 0 core 14 has exceeded a correctable error threshold", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core14", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Warning", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core15": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "org.open_power.Host.Error.Event", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0091M", + "ComponentInstance": "0,15", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 0 core 15 has failed", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core15", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core15||Critical": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "org.open_power.Host.Error.Event", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0091M", + "ComponentInstance": "0,15", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 0 core 15 has failed", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core15", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core15||Informational": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "org.open_power.Host.Error.Event", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPPU0096I", + "ComponentInstance": "0,15", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Recovery", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 0 core 15 has recovered from an error", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core15", + "RelatedEventIDs": {}, + "Serviceable": false, + "Severity": "Information", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core15||Warning": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "org.open_power.Host.Error.Event", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPPU0094G", + "ComponentInstance": "0,15", + "DateAdded": null, + "DateReviewed": null, + "EventType": "PFA", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 0 core 15 has exceeded a correctable error threshold", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core15", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Warning", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core16": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "org.open_power.Host.Error.Event", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0091M", + "ComponentInstance": "0,16", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 0 core 16 has failed", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core16", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core16||Critical": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "org.open_power.Host.Error.Event", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0091M", + "ComponentInstance": "0,16", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 0 core 16 has failed", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core16", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core16||Informational": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "org.open_power.Host.Error.Event", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPPU0096I", + "ComponentInstance": "0,16", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Recovery", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 0 core 16 has recovered from an error", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core16", + "RelatedEventIDs": {}, + "Serviceable": false, + "Severity": "Information", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core16||Warning": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "org.open_power.Host.Error.Event", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPPU0094G", + "ComponentInstance": "0,16", + "DateAdded": null, + "DateReviewed": null, + "EventType": "PFA", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 0 core 16 has exceeded a correctable error threshold", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core16", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Warning", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core17": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "org.open_power.Host.Error.Event", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0091M", + "ComponentInstance": "0,17", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 0 core 17 has failed", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core17", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core17||Critical": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "org.open_power.Host.Error.Event", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0091M", + "ComponentInstance": "0,17", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 0 core 17 has failed", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core17", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core17||Informational": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "org.open_power.Host.Error.Event", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPPU0096I", + "ComponentInstance": "0,17", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Recovery", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 0 core 17 has recovered from an error", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core17", + "RelatedEventIDs": {}, + "Serviceable": false, + "Severity": "Information", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core17||Warning": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "org.open_power.Host.Error.Event", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPPU0094G", + "ComponentInstance": "0,17", + "DateAdded": null, + "DateReviewed": null, + "EventType": "PFA", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 0 core 17 has exceeded a correctable error threshold", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core17", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Warning", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core18": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "org.open_power.Host.Error.Event", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0091M", + "ComponentInstance": "0,18", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 0 core 18 has failed", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core18", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core18||Critical": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "org.open_power.Host.Error.Event", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0091M", + "ComponentInstance": "0,18", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 0 core 18 has failed", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core18", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core18||Informational": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "org.open_power.Host.Error.Event", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPPU0096I", + "ComponentInstance": "0,18", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Recovery", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 0 core 18 has recovered from an error", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core18", + "RelatedEventIDs": {}, + "Serviceable": false, + "Severity": "Information", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core18||Warning": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "org.open_power.Host.Error.Event", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPPU0094G", + "ComponentInstance": "0,18", + "DateAdded": null, + "DateReviewed": null, + "EventType": "PFA", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 0 core 18 has exceeded a correctable error threshold", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core18", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Warning", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core19": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "org.open_power.Host.Error.Event", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0091M", + "ComponentInstance": "0,19", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 0 core 19 has failed", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core19", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core19||Critical": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "org.open_power.Host.Error.Event", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0091M", + "ComponentInstance": "0,19", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 0 core 19 has failed", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core19", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core19||Informational": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "org.open_power.Host.Error.Event", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPPU0096I", + "ComponentInstance": "0,19", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Recovery", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 0 core 19 has recovered from an error", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core19", + "RelatedEventIDs": {}, + "Serviceable": false, + "Severity": "Information", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core19||Warning": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "org.open_power.Host.Error.Event", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPPU0094G", + "ComponentInstance": "0,19", + "DateAdded": null, + "DateReviewed": null, + "EventType": "PFA", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 0 core 19 has exceeded a correctable error threshold", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core19", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Warning", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core1||Critical": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "org.open_power.Host.Error.Event", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0091M", + "ComponentInstance": "0,1", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 0 core 1 has failed", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core1", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core1||Informational": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "org.open_power.Host.Error.Event", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPPU0096I", + "ComponentInstance": "0,1", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Recovery", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 0 core 1 has recovered from an error", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core1", + "RelatedEventIDs": {}, + "Serviceable": false, + "Severity": "Information", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core1||Warning": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "org.open_power.Host.Error.Event", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPPU0094G", + "ComponentInstance": "0,1", + "DateAdded": null, + "DateReviewed": null, + "EventType": "PFA", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 0 core 1 has exceeded a correctable error threshold", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core1", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Warning", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core2": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "org.open_power.Host.Error.Event", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0091M", + "ComponentInstance": "0,2", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 0 core 2 has failed", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core2", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core20": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "org.open_power.Host.Error.Event", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0091M", + "ComponentInstance": "0,20", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 0 core 20 has failed", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core20", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core20||Critical": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "org.open_power.Host.Error.Event", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0091M", + "ComponentInstance": "0,20", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 0 core 20 has failed", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core20", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core20||Informational": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "org.open_power.Host.Error.Event", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPPU0096I", + "ComponentInstance": "0,20", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Recovery", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 0 core 20 has recovered from an error", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core20", + "RelatedEventIDs": {}, + "Serviceable": false, + "Severity": "Information", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core20||Warning": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "org.open_power.Host.Error.Event", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPPU0094G", + "ComponentInstance": "0,20", + "DateAdded": null, + "DateReviewed": null, + "EventType": "PFA", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 0 core 20 has exceeded a correctable error threshold", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core20", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Warning", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core21": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "org.open_power.Host.Error.Event", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0091M", + "ComponentInstance": "0,21", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 0 core 21 has failed", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core21", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core21||Critical": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "org.open_power.Host.Error.Event", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0091M", + "ComponentInstance": "0,21", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 0 core 21 has failed", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core21", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core21||Informational": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "org.open_power.Host.Error.Event", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPPU0096I", + "ComponentInstance": "0,21", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Recovery", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 0 core 21 has recovered from an error", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core21", + "RelatedEventIDs": {}, + "Serviceable": false, + "Severity": "Information", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core21||Warning": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "org.open_power.Host.Error.Event", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPPU0094G", + "ComponentInstance": "0,21", + "DateAdded": null, + "DateReviewed": null, + "EventType": "PFA", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 0 core 21 has exceeded a correctable error threshold", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core21", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Warning", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core22": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "org.open_power.Host.Error.Event", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0091M", + "ComponentInstance": "0,22", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 0 core 22 has failed", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core22", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core22||Critical": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "org.open_power.Host.Error.Event", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0091M", + "ComponentInstance": "0,22", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 0 core 22 has failed", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core22", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core22||Informational": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "org.open_power.Host.Error.Event", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPPU0096I", + "ComponentInstance": "0,22", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Recovery", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 0 core 22 has recovered from an error", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core22", + "RelatedEventIDs": {}, + "Serviceable": false, + "Severity": "Information", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core22||Warning": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "org.open_power.Host.Error.Event", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPPU0094G", + "ComponentInstance": "0,22", + "DateAdded": null, + "DateReviewed": null, + "EventType": "PFA", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 0 core 22 has exceeded a correctable error threshold", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core22", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Warning", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core23": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "org.open_power.Host.Error.Event", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0091M", + "ComponentInstance": "0,23", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 0 core 23 has failed", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core23", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core23||Critical": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "org.open_power.Host.Error.Event", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0091M", + "ComponentInstance": "0,23", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 0 core 23 has failed", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core23", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core23||Informational": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "org.open_power.Host.Error.Event", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPPU0096I", + "ComponentInstance": "0,23", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Recovery", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 0 core 23 has recovered from an error", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core23", + "RelatedEventIDs": {}, + "Serviceable": false, + "Severity": "Information", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core23||Warning": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "org.open_power.Host.Error.Event", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPPU0094G", + "ComponentInstance": "0,23", + "DateAdded": null, + "DateReviewed": null, + "EventType": "PFA", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 0 core 23 has exceeded a correctable error threshold", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core23", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Warning", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core2||Critical": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "org.open_power.Host.Error.Event", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0091M", + "ComponentInstance": "0,2", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 0 core 2 has failed", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core2", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core2||Informational": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "org.open_power.Host.Error.Event", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPPU0096I", + "ComponentInstance": "0,2", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Recovery", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 0 core 2 has recovered from an error", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core2", + "RelatedEventIDs": {}, + "Serviceable": false, + "Severity": "Information", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core2||Warning": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "org.open_power.Host.Error.Event", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPPU0094G", + "ComponentInstance": "0,2", + "DateAdded": null, + "DateReviewed": null, + "EventType": "PFA", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 0 core 2 has exceeded a correctable error threshold", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core2", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Warning", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core3": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "org.open_power.Host.Error.Event", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0091M", + "ComponentInstance": "0,3", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 0 core 3 has failed", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core3", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core3||Critical": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "org.open_power.Host.Error.Event", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0091M", + "ComponentInstance": "0,3", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 0 core 3 has failed", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core3", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core3||Informational": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "org.open_power.Host.Error.Event", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPPU0096I", + "ComponentInstance": "0,3", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Recovery", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 0 core 3 has recovered from an error", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core3", + "RelatedEventIDs": {}, + "Serviceable": false, + "Severity": "Information", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core3||Warning": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "org.open_power.Host.Error.Event", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPPU0094G", + "ComponentInstance": "0,3", + "DateAdded": null, + "DateReviewed": null, + "EventType": "PFA", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 0 core 3 has exceeded a correctable error threshold", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core3", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Warning", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core4": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "org.open_power.Host.Error.Event", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0091M", + "ComponentInstance": "0,4", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 0 core 4 has failed", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core4", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core4||Critical": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "org.open_power.Host.Error.Event", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0091M", + "ComponentInstance": "0,4", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 0 core 4 has failed", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core4", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core4||Informational": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "org.open_power.Host.Error.Event", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPPU0096I", + "ComponentInstance": "0,4", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Recovery", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 0 core 4 has recovered from an error", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core4", + "RelatedEventIDs": {}, + "Serviceable": false, + "Severity": "Information", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core4||Warning": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "org.open_power.Host.Error.Event", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPPU0094G", + "ComponentInstance": "0,4", + "DateAdded": null, + "DateReviewed": null, + "EventType": "PFA", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 0 core 4 has exceeded a correctable error threshold", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core4", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Warning", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core5": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "org.open_power.Host.Error.Event", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0091M", + "ComponentInstance": "0,5", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 0 core 5 has failed", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core5", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core5||Critical": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "org.open_power.Host.Error.Event", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0091M", + "ComponentInstance": "0,5", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 0 core 5 has failed", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core5", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core5||Informational": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "org.open_power.Host.Error.Event", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPPU0096I", + "ComponentInstance": "0,5", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Recovery", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 0 core 5 has recovered from an error", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core5", + "RelatedEventIDs": {}, + "Serviceable": false, + "Severity": "Information", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core5||Warning": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "org.open_power.Host.Error.Event", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPPU0094G", + "ComponentInstance": "0,5", + "DateAdded": null, + "DateReviewed": null, + "EventType": "PFA", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 0 core 5 has exceeded a correctable error threshold", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core5", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Warning", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core6": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "org.open_power.Host.Error.Event", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0091M", + "ComponentInstance": "0,6", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 0 core 6 has failed", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core6", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core6||Critical": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "org.open_power.Host.Error.Event", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0091M", + "ComponentInstance": "0,6", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 0 core 6 has failed", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core6", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core6||Informational": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "org.open_power.Host.Error.Event", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPPU0096I", + "ComponentInstance": "0,6", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Recovery", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 0 core 6 has recovered from an error", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core6", + "RelatedEventIDs": {}, + "Serviceable": false, + "Severity": "Information", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core6||Warning": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "org.open_power.Host.Error.Event", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPPU0094G", + "ComponentInstance": "0,6", + "DateAdded": null, + "DateReviewed": null, + "EventType": "PFA", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 0 core 6 has exceeded a correctable error threshold", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core6", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Warning", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core7": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "org.open_power.Host.Error.Event", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0091M", + "ComponentInstance": "0,7", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 0 core 7 has failed", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core7", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core7||Critical": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "org.open_power.Host.Error.Event", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0091M", + "ComponentInstance": "0,7", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 0 core 7 has failed", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core7", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core7||Informational": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "org.open_power.Host.Error.Event", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPPU0096I", + "ComponentInstance": "0,7", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Recovery", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 0 core 7 has recovered from an error", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core7", + "RelatedEventIDs": {}, + "Serviceable": false, + "Severity": "Information", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core7||Warning": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "org.open_power.Host.Error.Event", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPPU0094G", + "ComponentInstance": "0,7", + "DateAdded": null, + "DateReviewed": null, + "EventType": "PFA", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 0 core 7 has exceeded a correctable error threshold", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core7", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Warning", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core8": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "org.open_power.Host.Error.Event", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0091M", + "ComponentInstance": "0,8", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 0 core 8 has failed", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core8", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core8||Critical": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "org.open_power.Host.Error.Event", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0091M", + "ComponentInstance": "0,8", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 0 core 8 has failed", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core8", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core8||Informational": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "org.open_power.Host.Error.Event", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPPU0096I", + "ComponentInstance": "0,8", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Recovery", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 0 core 8 has recovered from an error", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core8", + "RelatedEventIDs": {}, + "Serviceable": false, + "Severity": "Information", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core8||Warning": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "org.open_power.Host.Error.Event", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPPU0094G", + "ComponentInstance": "0,8", + "DateAdded": null, + "DateReviewed": null, + "EventType": "PFA", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 0 core 8 has exceeded a correctable error threshold", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core8", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Warning", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core9": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "org.open_power.Host.Error.Event", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0091M", + "ComponentInstance": "0,9", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 0 core 9 has failed", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core9", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core9||Critical": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "org.open_power.Host.Error.Event", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0091M", + "ComponentInstance": "0,9", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 0 core 9 has failed", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core9", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core9||Informational": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "org.open_power.Host.Error.Event", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPPU0096I", + "ComponentInstance": "0,9", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Recovery", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 0 core 9 has recovered from an error", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core9", + "RelatedEventIDs": {}, + "Serviceable": false, + "Severity": "Information", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core9||Warning": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "org.open_power.Host.Error.Event", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPPU0094G", + "ComponentInstance": "0,9", + "DateAdded": null, + "DateReviewed": null, + "EventType": "PFA", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 0 core 9 has exceeded a correctable error threshold", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core9", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Warning", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0||Critical": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "org.open_power.Host.Error.Event", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0090M", + "ComponentInstance": 0, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 0 has failed", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0||Informational": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "org.open_power.Host.Error.Event", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPPU0095I", + "ComponentInstance": 0, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Recovery", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 0 has recovered from an error", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0", + "RelatedEventIDs": {}, + "Serviceable": false, + "Severity": "Information", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0||Warning": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "org.open_power.Host.Error.Event", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPPU0093G", + "ComponentInstance": 0, + "DateAdded": null, + "DateReviewed": null, + "EventType": "PFA", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 0 has exceeded a correctable error threshold", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Warning", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "org.open_power.Host.Error.Event", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0090M", + "ComponentInstance": 1, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 1 has failed", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core0": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "org.open_power.Host.Error.Event", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0091M", + "ComponentInstance": "1,0", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 1 core 0 has failed", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core0", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core0||Critical": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "org.open_power.Host.Error.Event", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0091M", + "ComponentInstance": "1,0", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 1 core 0 has failed", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core0", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core0||Informational": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "org.open_power.Host.Error.Event", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPPU0096I", + "ComponentInstance": "1,0", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Recovery", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 1 core 0 has recovered from an error", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core0", + "RelatedEventIDs": {}, + "Serviceable": false, + "Severity": "Information", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core0||Warning": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "org.open_power.Host.Error.Event", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPPU0094G", + "ComponentInstance": "1,0", + "DateAdded": null, + "DateReviewed": null, + "EventType": "PFA", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 1 core 0 has exceeded a correctable error threshold", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core0", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Warning", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core1": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "org.open_power.Host.Error.Event", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0091M", + "ComponentInstance": "1,1", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 1 core 1 has failed", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core1", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core10": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "org.open_power.Host.Error.Event", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0091M", + "ComponentInstance": "1,10", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 1 core 10 has failed", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core10", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core10||Critical": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "org.open_power.Host.Error.Event", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0091M", + "ComponentInstance": "1,10", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 1 core 10 has failed", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core10", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core10||Informational": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "org.open_power.Host.Error.Event", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPPU0096I", + "ComponentInstance": "1,10", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Recovery", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 1 core 10 has recovered from an error", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core10", + "RelatedEventIDs": {}, + "Serviceable": false, + "Severity": "Information", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core10||Warning": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "org.open_power.Host.Error.Event", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPPU0094G", + "ComponentInstance": "1,10", + "DateAdded": null, + "DateReviewed": null, + "EventType": "PFA", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 1 core 10 has exceeded a correctable error threshold", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core10", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Warning", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core11": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "org.open_power.Host.Error.Event", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0091M", + "ComponentInstance": "1,11", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 1 core 11 has failed", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core11", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core11||Critical": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "org.open_power.Host.Error.Event", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0091M", + "ComponentInstance": "1,11", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 1 core 11 has failed", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core11", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core11||Informational": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "org.open_power.Host.Error.Event", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPPU0096I", + "ComponentInstance": "1,11", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Recovery", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 1 core 11 has recovered from an error", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core11", + "RelatedEventIDs": {}, + "Serviceable": false, + "Severity": "Information", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core11||Warning": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "org.open_power.Host.Error.Event", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPPU0094G", + "ComponentInstance": "1,11", + "DateAdded": null, + "DateReviewed": null, + "EventType": "PFA", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 1 core 11 has exceeded a correctable error threshold", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core11", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Warning", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core12": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "org.open_power.Host.Error.Event", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0091M", + "ComponentInstance": "1,12", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 1 core 12 has failed", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core12", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core12||Critical": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "org.open_power.Host.Error.Event", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0091M", + "ComponentInstance": "1,12", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 1 core 12 has failed", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core12", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core12||Informational": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "org.open_power.Host.Error.Event", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPPU0096I", + "ComponentInstance": "1,12", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Recovery", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 1 core 12 has recovered from an error", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core12", + "RelatedEventIDs": {}, + "Serviceable": false, + "Severity": "Information", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core12||Warning": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "org.open_power.Host.Error.Event", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPPU0094G", + "ComponentInstance": "1,12", + "DateAdded": null, + "DateReviewed": null, + "EventType": "PFA", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 1 core 12 has exceeded a correctable error threshold", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core12", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Warning", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core13": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "org.open_power.Host.Error.Event", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0091M", + "ComponentInstance": "1,13", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 1 core 13 has failed", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core13", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core13||Critical": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "org.open_power.Host.Error.Event", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0091M", + "ComponentInstance": "1,13", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 1 core 13 has failed", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core13", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core13||Informational": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "org.open_power.Host.Error.Event", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPPU0096I", + "ComponentInstance": "1,13", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Recovery", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 1 core 13 has recovered from an error", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core13", + "RelatedEventIDs": {}, + "Serviceable": false, + "Severity": "Information", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core13||Warning": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "org.open_power.Host.Error.Event", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPPU0094G", + "ComponentInstance": "1,13", + "DateAdded": null, + "DateReviewed": null, + "EventType": "PFA", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 1 core 13 has exceeded a correctable error threshold", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core13", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Warning", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core14": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "org.open_power.Host.Error.Event", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0091M", + "ComponentInstance": "1,14", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 1 core 14 has failed", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core14", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core14||Critical": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "org.open_power.Host.Error.Event", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0091M", + "ComponentInstance": "1,14", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 1 core 14 has failed", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core14", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core14||Informational": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "org.open_power.Host.Error.Event", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPPU0096I", + "ComponentInstance": "1,14", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Recovery", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 1 core 14 has recovered from an error", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core14", + "RelatedEventIDs": {}, + "Serviceable": false, + "Severity": "Information", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core14||Warning": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "org.open_power.Host.Error.Event", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPPU0094G", + "ComponentInstance": "1,14", + "DateAdded": null, + "DateReviewed": null, + "EventType": "PFA", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 1 core 14 has exceeded a correctable error threshold", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core14", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Warning", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core15": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "org.open_power.Host.Error.Event", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0091M", + "ComponentInstance": "1,15", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 1 core 15 has failed", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core15", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core15||Critical": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "org.open_power.Host.Error.Event", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0091M", + "ComponentInstance": "1,15", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 1 core 15 has failed", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core15", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core15||Informational": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "org.open_power.Host.Error.Event", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPPU0096I", + "ComponentInstance": "1,15", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Recovery", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 1 core 15 has recovered from an error", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core15", + "RelatedEventIDs": {}, + "Serviceable": false, + "Severity": "Information", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core15||Warning": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "org.open_power.Host.Error.Event", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPPU0094G", + "ComponentInstance": "1,15", + "DateAdded": null, + "DateReviewed": null, + "EventType": "PFA", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 1 core 15 has exceeded a correctable error threshold", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core15", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Warning", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core16": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "org.open_power.Host.Error.Event", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0091M", + "ComponentInstance": "1,16", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 1 core 16 has failed", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core16", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core16||Critical": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "org.open_power.Host.Error.Event", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0091M", + "ComponentInstance": "1,16", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 1 core 16 has failed", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core16", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core16||Informational": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "org.open_power.Host.Error.Event", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPPU0096I", + "ComponentInstance": "1,16", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Recovery", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 1 core 16 has recovered from an error", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core16", + "RelatedEventIDs": {}, + "Serviceable": false, + "Severity": "Information", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core16||Warning": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "org.open_power.Host.Error.Event", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPPU0094G", + "ComponentInstance": "1,16", + "DateAdded": null, + "DateReviewed": null, + "EventType": "PFA", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 1 core 16 has exceeded a correctable error threshold", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core16", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Warning", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core17": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "org.open_power.Host.Error.Event", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0091M", + "ComponentInstance": "1,17", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 1 core 17 has failed", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core17", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core17||Critical": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "org.open_power.Host.Error.Event", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0091M", + "ComponentInstance": "1,17", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 1 core 17 has failed", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core17", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core17||Informational": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "org.open_power.Host.Error.Event", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPPU0096I", + "ComponentInstance": "1,17", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Recovery", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 1 core 17 has recovered from an error", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core17", + "RelatedEventIDs": {}, + "Serviceable": false, + "Severity": "Information", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core17||Warning": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "org.open_power.Host.Error.Event", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPPU0094G", + "ComponentInstance": "1,17", + "DateAdded": null, + "DateReviewed": null, + "EventType": "PFA", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 1 core 17 has exceeded a correctable error threshold", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core17", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Warning", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core18": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "org.open_power.Host.Error.Event", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0091M", + "ComponentInstance": "1,18", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 1 core 18 has failed", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core18", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core18||Critical": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "org.open_power.Host.Error.Event", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0091M", + "ComponentInstance": "1,18", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 1 core 18 has failed", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core18", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core18||Informational": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "org.open_power.Host.Error.Event", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPPU0096I", + "ComponentInstance": "1,18", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Recovery", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 1 core 18 has recovered from an error", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core18", + "RelatedEventIDs": {}, + "Serviceable": false, + "Severity": "Information", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core18||Warning": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "org.open_power.Host.Error.Event", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPPU0094G", + "ComponentInstance": "1,18", + "DateAdded": null, + "DateReviewed": null, + "EventType": "PFA", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 1 core 18 has exceeded a correctable error threshold", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core18", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Warning", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core19": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "org.open_power.Host.Error.Event", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0091M", + "ComponentInstance": "1,19", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 1 core 19 has failed", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core19", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core19||Critical": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "org.open_power.Host.Error.Event", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0091M", + "ComponentInstance": "1,19", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 1 core 19 has failed", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core19", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core19||Informational": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "org.open_power.Host.Error.Event", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPPU0096I", + "ComponentInstance": "1,19", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Recovery", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 1 core 19 has recovered from an error", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core19", + "RelatedEventIDs": {}, + "Serviceable": false, + "Severity": "Information", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core19||Warning": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "org.open_power.Host.Error.Event", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPPU0094G", + "ComponentInstance": "1,19", + "DateAdded": null, + "DateReviewed": null, + "EventType": "PFA", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 1 core 19 has exceeded a correctable error threshold", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core19", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Warning", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core1||Critical": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "org.open_power.Host.Error.Event", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0091M", + "ComponentInstance": "1,1", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 1 core 1 has failed", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core1", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core1||Informational": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "org.open_power.Host.Error.Event", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPPU0096I", + "ComponentInstance": "1,1", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Recovery", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 1 core 1 has recovered from an error", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core1", + "RelatedEventIDs": {}, + "Serviceable": false, + "Severity": "Information", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core1||Warning": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "org.open_power.Host.Error.Event", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPPU0094G", + "ComponentInstance": "1,1", + "DateAdded": null, + "DateReviewed": null, + "EventType": "PFA", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 1 core 1 has exceeded a correctable error threshold", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core1", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Warning", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core2": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "org.open_power.Host.Error.Event", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0091M", + "ComponentInstance": "1,2", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 1 core 2 has failed", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core2", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core20": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "org.open_power.Host.Error.Event", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0091M", + "ComponentInstance": "1,20", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 1 core 20 has failed", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core20", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core20||Critical": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "org.open_power.Host.Error.Event", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0091M", + "ComponentInstance": "1,20", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 1 core 20 has failed", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core20", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core20||Informational": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "org.open_power.Host.Error.Event", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPPU0096I", + "ComponentInstance": "1,20", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Recovery", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 1 core 20 has recovered from an error", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core20", + "RelatedEventIDs": {}, + "Serviceable": false, + "Severity": "Information", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core20||Warning": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "org.open_power.Host.Error.Event", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPPU0094G", + "ComponentInstance": "1,20", + "DateAdded": null, + "DateReviewed": null, + "EventType": "PFA", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 1 core 20 has exceeded a correctable error threshold", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core20", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Warning", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core21": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "org.open_power.Host.Error.Event", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0091M", + "ComponentInstance": "1,21", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 1 core 21 has failed", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core21", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core21||Critical": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "org.open_power.Host.Error.Event", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0091M", + "ComponentInstance": "1,21", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 1 core 21 has failed", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core21", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core21||Informational": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "org.open_power.Host.Error.Event", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPPU0096I", + "ComponentInstance": "1,21", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Recovery", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 1 core 21 has recovered from an error", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core21", + "RelatedEventIDs": {}, + "Serviceable": false, + "Severity": "Information", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core21||Warning": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "org.open_power.Host.Error.Event", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPPU0094G", + "ComponentInstance": "1,21", + "DateAdded": null, + "DateReviewed": null, + "EventType": "PFA", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 1 core 21 has exceeded a correctable error threshold", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core21", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Warning", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core22": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "org.open_power.Host.Error.Event", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0091M", + "ComponentInstance": "1,22", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 1 core 22 has failed", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core22", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core22||Critical": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "org.open_power.Host.Error.Event", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0091M", + "ComponentInstance": "1,22", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 1 core 22 has failed", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core22", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core22||Informational": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "org.open_power.Host.Error.Event", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPPU0096I", + "ComponentInstance": "1,22", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Recovery", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 1 core 22 has recovered from an error", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core22", + "RelatedEventIDs": {}, + "Serviceable": false, + "Severity": "Information", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core22||Warning": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "org.open_power.Host.Error.Event", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPPU0094G", + "ComponentInstance": "1,22", + "DateAdded": null, + "DateReviewed": null, + "EventType": "PFA", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 1 core 22 has exceeded a correctable error threshold", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core22", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Warning", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core23": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "org.open_power.Host.Error.Event", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0091M", + "ComponentInstance": "1,23", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 1 core 23 has failed", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core23", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core23||Critical": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "org.open_power.Host.Error.Event", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0091M", + "ComponentInstance": "1,23", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 1 core 23 has failed", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core23", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core23||Informational": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "org.open_power.Host.Error.Event", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPPU0096I", + "ComponentInstance": "1,23", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Recovery", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 1 core 23 has recovered from an error", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core23", + "RelatedEventIDs": {}, + "Serviceable": false, + "Severity": "Information", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core23||Warning": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "org.open_power.Host.Error.Event", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPPU0094G", + "ComponentInstance": "1,23", + "DateAdded": null, + "DateReviewed": null, + "EventType": "PFA", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 1 core 23 has exceeded a correctable error threshold", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core23", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Warning", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core2||Critical": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "org.open_power.Host.Error.Event", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0091M", + "ComponentInstance": "1,2", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 1 core 2 has failed", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core2", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core2||Informational": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "org.open_power.Host.Error.Event", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPPU0096I", + "ComponentInstance": "1,2", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Recovery", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 1 core 2 has recovered from an error", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core2", + "RelatedEventIDs": {}, + "Serviceable": false, + "Severity": "Information", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core2||Warning": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "org.open_power.Host.Error.Event", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPPU0094G", + "ComponentInstance": "1,2", + "DateAdded": null, + "DateReviewed": null, + "EventType": "PFA", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 1 core 2 has exceeded a correctable error threshold", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core2", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Warning", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core3": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "org.open_power.Host.Error.Event", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0091M", + "ComponentInstance": "1,3", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 1 core 3 has failed", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core3", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core3||Critical": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "org.open_power.Host.Error.Event", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0091M", + "ComponentInstance": "1,3", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 1 core 3 has failed", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core3", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core3||Informational": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "org.open_power.Host.Error.Event", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPPU0096I", + "ComponentInstance": "1,3", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Recovery", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 1 core 3 has recovered from an error", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core3", + "RelatedEventIDs": {}, + "Serviceable": false, + "Severity": "Information", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core3||Warning": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "org.open_power.Host.Error.Event", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPPU0094G", + "ComponentInstance": "1,3", + "DateAdded": null, + "DateReviewed": null, + "EventType": "PFA", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 1 core 3 has exceeded a correctable error threshold", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core3", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Warning", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core4": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "org.open_power.Host.Error.Event", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0091M", + "ComponentInstance": "1,4", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 1 core 4 has failed", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core4", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core4||Critical": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "org.open_power.Host.Error.Event", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0091M", + "ComponentInstance": "1,4", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 1 core 4 has failed", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core4", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core4||Informational": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "org.open_power.Host.Error.Event", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPPU0096I", + "ComponentInstance": "1,4", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Recovery", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 1 core 4 has recovered from an error", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core4", + "RelatedEventIDs": {}, + "Serviceable": false, + "Severity": "Information", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core4||Warning": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "org.open_power.Host.Error.Event", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPPU0094G", + "ComponentInstance": "1,4", + "DateAdded": null, + "DateReviewed": null, + "EventType": "PFA", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 1 core 4 has exceeded a correctable error threshold", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core4", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Warning", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core5": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "org.open_power.Host.Error.Event", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0091M", + "ComponentInstance": "1,5", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 1 core 5 has failed", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core5", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core5||Critical": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "org.open_power.Host.Error.Event", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0091M", + "ComponentInstance": "1,5", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 1 core 5 has failed", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core5", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core5||Informational": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "org.open_power.Host.Error.Event", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPPU0096I", + "ComponentInstance": "1,5", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Recovery", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 1 core 5 has recovered from an error", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core5", + "RelatedEventIDs": {}, + "Serviceable": false, + "Severity": "Information", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core5||Warning": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "org.open_power.Host.Error.Event", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPPU0094G", + "ComponentInstance": "1,5", + "DateAdded": null, + "DateReviewed": null, + "EventType": "PFA", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 1 core 5 has exceeded a correctable error threshold", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core5", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Warning", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core6": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "org.open_power.Host.Error.Event", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0091M", + "ComponentInstance": "1,6", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 1 core 6 has failed", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core6", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core6||Critical": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "org.open_power.Host.Error.Event", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0091M", + "ComponentInstance": "1,6", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 1 core 6 has failed", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core6", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core6||Informational": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "org.open_power.Host.Error.Event", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPPU0096I", + "ComponentInstance": "1,6", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Recovery", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 1 core 6 has recovered from an error", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core6", + "RelatedEventIDs": {}, + "Serviceable": false, + "Severity": "Information", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core6||Warning": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "org.open_power.Host.Error.Event", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPPU0094G", + "ComponentInstance": "1,6", + "DateAdded": null, + "DateReviewed": null, + "EventType": "PFA", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 1 core 6 has exceeded a correctable error threshold", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core6", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Warning", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core7": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "org.open_power.Host.Error.Event", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0091M", + "ComponentInstance": "1,7", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 1 core 7 has failed", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core7", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core7||Critical": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "org.open_power.Host.Error.Event", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0091M", + "ComponentInstance": "1,7", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 1 core 7 has failed", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core7", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core7||Informational": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "org.open_power.Host.Error.Event", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPPU0096I", + "ComponentInstance": "1,7", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Recovery", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 1 core 7 has recovered from an error", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core7", + "RelatedEventIDs": {}, + "Serviceable": false, + "Severity": "Information", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core7||Warning": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "org.open_power.Host.Error.Event", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPPU0094G", + "ComponentInstance": "1,7", + "DateAdded": null, + "DateReviewed": null, + "EventType": "PFA", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 1 core 7 has exceeded a correctable error threshold", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core7", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Warning", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core8": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "org.open_power.Host.Error.Event", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0091M", + "ComponentInstance": "1,8", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 1 core 8 has failed", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core8", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core8||Critical": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "org.open_power.Host.Error.Event", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0091M", + "ComponentInstance": "1,8", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 1 core 8 has failed", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core8", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core8||Informational": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "org.open_power.Host.Error.Event", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPPU0096I", + "ComponentInstance": "1,8", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Recovery", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 1 core 8 has recovered from an error", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core8", + "RelatedEventIDs": {}, + "Serviceable": false, + "Severity": "Information", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core8||Warning": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "org.open_power.Host.Error.Event", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPPU0094G", + "ComponentInstance": "1,8", + "DateAdded": null, + "DateReviewed": null, + "EventType": "PFA", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 1 core 8 has exceeded a correctable error threshold", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core8", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Warning", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core9": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "org.open_power.Host.Error.Event", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0091M", + "ComponentInstance": "1,9", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 1 core 9 has failed", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core9", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core9||Critical": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "org.open_power.Host.Error.Event", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0091M", + "ComponentInstance": "1,9", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 1 core 9 has failed", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core9", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core9||Informational": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "org.open_power.Host.Error.Event", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPPU0096I", + "ComponentInstance": "1,9", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Recovery", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 1 core 9 has recovered from an error", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core9", + "RelatedEventIDs": {}, + "Serviceable": false, + "Severity": "Information", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core9||Warning": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "org.open_power.Host.Error.Event", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPPU0094G", + "ComponentInstance": "1,9", + "DateAdded": null, + "DateReviewed": null, + "EventType": "PFA", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 1 core 9 has exceeded a correctable error threshold", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core9", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Warning", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1||Critical": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "org.open_power.Host.Error.Event", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0090M", + "ComponentInstance": 1, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 1 has failed", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1||Informational": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "org.open_power.Host.Error.Event", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPPU0095I", + "ComponentInstance": 1, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Recovery", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 1 has recovered from an error", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1", + "RelatedEventIDs": {}, + "Serviceable": false, + "Severity": "Information", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1||Warning": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "org.open_power.Host.Error.Event", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPPU0093G", + "ComponentInstance": 1, + "DateAdded": null, + "DateReviewed": null, + "EventType": "PFA", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 1 has exceeded a correctable error threshold", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Warning", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm0": { + "AffectedLEDs": null, + "AffectedSubsystem": "Memory", + "BMCMessageID": "org.open_power.Host.Error.Event", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPMA0057M", + "ComponentInstance": 0, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "DIMM 0 has failed", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm0", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm0||Critical": { + "AffectedLEDs": null, + "AffectedSubsystem": "Memory", + "BMCMessageID": "org.open_power.Host.Error.Event", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPMA0057M", + "ComponentInstance": 0, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "DIMM 0 has failed", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm0", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm0||Informational": { + "AffectedLEDs": null, + "AffectedSubsystem": "Memory", + "BMCMessageID": "org.open_power.Host.Error.Event", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPMA0060I", + "ComponentInstance": 0, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Recovery", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "DIMM 0 has recovered from an error", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm0", + "RelatedEventIDs": {}, + "Serviceable": false, + "Severity": "Information", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm0||Warning": { + "AffectedLEDs": null, + "AffectedSubsystem": "Memory", + "BMCMessageID": "org.open_power.Host.Error.Event", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPMA0059G", + "ComponentInstance": 0, + "DateAdded": null, + "DateReviewed": null, + "EventType": "PFA", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "DIMM 0 has exceeded a correctable error threshold", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm0", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Warning", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm1": { + "AffectedLEDs": null, + "AffectedSubsystem": "Memory", + "BMCMessageID": "org.open_power.Host.Error.Event", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPMA0057M", + "ComponentInstance": 1, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "DIMM 1 has failed", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm1", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm10": { + "AffectedLEDs": null, + "AffectedSubsystem": "Memory", + "BMCMessageID": "org.open_power.Host.Error.Event", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPMA0057M", + "ComponentInstance": 10, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "DIMM 10 has failed", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm10", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm10||Critical": { + "AffectedLEDs": null, + "AffectedSubsystem": "Memory", + "BMCMessageID": "org.open_power.Host.Error.Event", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPMA0057M", + "ComponentInstance": 10, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "DIMM 10 has failed", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm10", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm10||Informational": { + "AffectedLEDs": null, + "AffectedSubsystem": "Memory", + "BMCMessageID": "org.open_power.Host.Error.Event", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPMA0060I", + "ComponentInstance": 10, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Recovery", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "DIMM 10 has recovered from an error", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm10", + "RelatedEventIDs": {}, + "Serviceable": false, + "Severity": "Information", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm10||Warning": { + "AffectedLEDs": null, + "AffectedSubsystem": "Memory", + "BMCMessageID": "org.open_power.Host.Error.Event", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPMA0059G", + "ComponentInstance": 10, + "DateAdded": null, + "DateReviewed": null, + "EventType": "PFA", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "DIMM 10 has exceeded a correctable error threshold", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm10", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Warning", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm11": { + "AffectedLEDs": null, + "AffectedSubsystem": "Memory", + "BMCMessageID": "org.open_power.Host.Error.Event", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPMA0057M", + "ComponentInstance": 11, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "DIMM 11 has failed", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm11", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm11||Critical": { + "AffectedLEDs": null, + "AffectedSubsystem": "Memory", + "BMCMessageID": "org.open_power.Host.Error.Event", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPMA0057M", + "ComponentInstance": 11, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "DIMM 11 has failed", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm11", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm11||Informational": { + "AffectedLEDs": null, + "AffectedSubsystem": "Memory", + "BMCMessageID": "org.open_power.Host.Error.Event", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPMA0060I", + "ComponentInstance": 11, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Recovery", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "DIMM 11 has recovered from an error", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm11", + "RelatedEventIDs": {}, + "Serviceable": false, + "Severity": "Information", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm11||Warning": { + "AffectedLEDs": null, + "AffectedSubsystem": "Memory", + "BMCMessageID": "org.open_power.Host.Error.Event", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPMA0059G", + "ComponentInstance": 11, + "DateAdded": null, + "DateReviewed": null, + "EventType": "PFA", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "DIMM 11 has exceeded a correctable error threshold", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm11", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Warning", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm12": { + "AffectedLEDs": null, + "AffectedSubsystem": "Memory", + "BMCMessageID": "org.open_power.Host.Error.Event", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPMA0057M", + "ComponentInstance": 12, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "DIMM 12 has failed", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm12", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm12||Critical": { + "AffectedLEDs": null, + "AffectedSubsystem": "Memory", + "BMCMessageID": "org.open_power.Host.Error.Event", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPMA0057M", + "ComponentInstance": 12, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "DIMM 12 has failed", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm12", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm12||Informational": { + "AffectedLEDs": null, + "AffectedSubsystem": "Memory", + "BMCMessageID": "org.open_power.Host.Error.Event", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPMA0060I", + "ComponentInstance": 12, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Recovery", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "DIMM 12 has recovered from an error", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm12", + "RelatedEventIDs": {}, + "Serviceable": false, + "Severity": "Information", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm12||Warning": { + "AffectedLEDs": null, + "AffectedSubsystem": "Memory", + "BMCMessageID": "org.open_power.Host.Error.Event", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPMA0059G", + "ComponentInstance": 12, + "DateAdded": null, + "DateReviewed": null, + "EventType": "PFA", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "DIMM 12 has exceeded a correctable error threshold", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm12", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Warning", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm13": { + "AffectedLEDs": null, + "AffectedSubsystem": "Memory", + "BMCMessageID": "org.open_power.Host.Error.Event", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPMA0057M", + "ComponentInstance": 13, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "DIMM 13 has failed", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm13", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm13||Critical": { + "AffectedLEDs": null, + "AffectedSubsystem": "Memory", + "BMCMessageID": "org.open_power.Host.Error.Event", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPMA0057M", + "ComponentInstance": 13, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "DIMM 13 has failed", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm13", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm13||Informational": { + "AffectedLEDs": null, + "AffectedSubsystem": "Memory", + "BMCMessageID": "org.open_power.Host.Error.Event", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPMA0060I", + "ComponentInstance": 13, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Recovery", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "DIMM 13 has recovered from an error", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm13", + "RelatedEventIDs": {}, + "Serviceable": false, + "Severity": "Information", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm13||Warning": { + "AffectedLEDs": null, + "AffectedSubsystem": "Memory", + "BMCMessageID": "org.open_power.Host.Error.Event", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPMA0059G", + "ComponentInstance": 13, + "DateAdded": null, + "DateReviewed": null, + "EventType": "PFA", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "DIMM 13 has exceeded a correctable error threshold", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm13", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Warning", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm14": { + "AffectedLEDs": null, + "AffectedSubsystem": "Memory", + "BMCMessageID": "org.open_power.Host.Error.Event", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPMA0057M", + "ComponentInstance": 14, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "DIMM 14 has failed", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm14", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm14||Critical": { + "AffectedLEDs": null, + "AffectedSubsystem": "Memory", + "BMCMessageID": "org.open_power.Host.Error.Event", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPMA0057M", + "ComponentInstance": 14, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "DIMM 14 has failed", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm14", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm14||Informational": { + "AffectedLEDs": null, + "AffectedSubsystem": "Memory", + "BMCMessageID": "org.open_power.Host.Error.Event", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPMA0060I", + "ComponentInstance": 14, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Recovery", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "DIMM 14 has recovered from an error", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm14", + "RelatedEventIDs": {}, + "Serviceable": false, + "Severity": "Information", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm14||Warning": { + "AffectedLEDs": null, + "AffectedSubsystem": "Memory", + "BMCMessageID": "org.open_power.Host.Error.Event", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPMA0059G", + "ComponentInstance": 14, + "DateAdded": null, + "DateReviewed": null, + "EventType": "PFA", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "DIMM 14 has exceeded a correctable error threshold", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm14", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Warning", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm15": { + "AffectedLEDs": null, + "AffectedSubsystem": "Memory", + "BMCMessageID": "org.open_power.Host.Error.Event", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPMA0057M", + "ComponentInstance": 15, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "DIMM 15 has failed", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm15", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm15||Critical": { + "AffectedLEDs": null, + "AffectedSubsystem": "Memory", + "BMCMessageID": "org.open_power.Host.Error.Event", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPMA0057M", + "ComponentInstance": 15, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "DIMM 15 has failed", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm15", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm15||Informational": { + "AffectedLEDs": null, + "AffectedSubsystem": "Memory", + "BMCMessageID": "org.open_power.Host.Error.Event", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPMA0060I", + "ComponentInstance": 15, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Recovery", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "DIMM 15 has recovered from an error", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm15", + "RelatedEventIDs": {}, + "Serviceable": false, + "Severity": "Information", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm15||Warning": { + "AffectedLEDs": null, + "AffectedSubsystem": "Memory", + "BMCMessageID": "org.open_power.Host.Error.Event", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPMA0059G", + "ComponentInstance": 15, + "DateAdded": null, + "DateReviewed": null, + "EventType": "PFA", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "DIMM 15 has exceeded a correctable error threshold", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm15", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Warning", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm1||Critical": { + "AffectedLEDs": null, + "AffectedSubsystem": "Memory", + "BMCMessageID": "org.open_power.Host.Error.Event", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPMA0057M", + "ComponentInstance": 1, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "DIMM 1 has failed", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm1", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm1||Informational": { + "AffectedLEDs": null, + "AffectedSubsystem": "Memory", + "BMCMessageID": "org.open_power.Host.Error.Event", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPMA0060I", + "ComponentInstance": 1, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Recovery", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "DIMM 1 has recovered from an error", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm1", + "RelatedEventIDs": {}, + "Serviceable": false, + "Severity": "Information", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm1||Warning": { + "AffectedLEDs": null, + "AffectedSubsystem": "Memory", + "BMCMessageID": "org.open_power.Host.Error.Event", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPMA0059G", + "ComponentInstance": 1, + "DateAdded": null, + "DateReviewed": null, + "EventType": "PFA", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "DIMM 1 has exceeded a correctable error threshold", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm1", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Warning", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm2": { + "AffectedLEDs": null, + "AffectedSubsystem": "Memory", + "BMCMessageID": "org.open_power.Host.Error.Event", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPMA0057M", + "ComponentInstance": 2, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "DIMM 2 has failed", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm2", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm2||Critical": { + "AffectedLEDs": null, + "AffectedSubsystem": "Memory", + "BMCMessageID": "org.open_power.Host.Error.Event", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPMA0057M", + "ComponentInstance": 2, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "DIMM 2 has failed", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm2", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm2||Informational": { + "AffectedLEDs": null, + "AffectedSubsystem": "Memory", + "BMCMessageID": "org.open_power.Host.Error.Event", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPMA0060I", + "ComponentInstance": 2, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Recovery", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "DIMM 2 has recovered from an error", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm2", + "RelatedEventIDs": {}, + "Serviceable": false, + "Severity": "Information", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm2||Warning": { + "AffectedLEDs": null, + "AffectedSubsystem": "Memory", + "BMCMessageID": "org.open_power.Host.Error.Event", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPMA0059G", + "ComponentInstance": 2, + "DateAdded": null, + "DateReviewed": null, + "EventType": "PFA", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "DIMM 2 has exceeded a correctable error threshold", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm2", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Warning", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm3": { + "AffectedLEDs": null, + "AffectedSubsystem": "Memory", + "BMCMessageID": "org.open_power.Host.Error.Event", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPMA0057M", + "ComponentInstance": 3, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "DIMM 3 has failed", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm3", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm3||Critical": { + "AffectedLEDs": null, + "AffectedSubsystem": "Memory", + "BMCMessageID": "org.open_power.Host.Error.Event", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPMA0057M", + "ComponentInstance": 3, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "DIMM 3 has failed", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm3", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm3||Informational": { + "AffectedLEDs": null, + "AffectedSubsystem": "Memory", + "BMCMessageID": "org.open_power.Host.Error.Event", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPMA0060I", + "ComponentInstance": 3, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Recovery", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "DIMM 3 has recovered from an error", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm3", + "RelatedEventIDs": {}, + "Serviceable": false, + "Severity": "Information", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm3||Warning": { + "AffectedLEDs": null, + "AffectedSubsystem": "Memory", + "BMCMessageID": "org.open_power.Host.Error.Event", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPMA0059G", + "ComponentInstance": 3, + "DateAdded": null, + "DateReviewed": null, + "EventType": "PFA", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "DIMM 3 has exceeded a correctable error threshold", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm3", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Warning", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm4": { + "AffectedLEDs": null, + "AffectedSubsystem": "Memory", + "BMCMessageID": "org.open_power.Host.Error.Event", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPMA0057M", + "ComponentInstance": 4, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "DIMM 4 has failed", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm4", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm4||Critical": { + "AffectedLEDs": null, + "AffectedSubsystem": "Memory", + "BMCMessageID": "org.open_power.Host.Error.Event", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPMA0057M", + "ComponentInstance": 4, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "DIMM 4 has failed", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm4", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm4||Informational": { + "AffectedLEDs": null, + "AffectedSubsystem": "Memory", + "BMCMessageID": "org.open_power.Host.Error.Event", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPMA0060I", + "ComponentInstance": 4, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Recovery", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "DIMM 4 has recovered from an error", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm4", + "RelatedEventIDs": {}, + "Serviceable": false, + "Severity": "Information", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm4||Warning": { + "AffectedLEDs": null, + "AffectedSubsystem": "Memory", + "BMCMessageID": "org.open_power.Host.Error.Event", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPMA0059G", + "ComponentInstance": 4, + "DateAdded": null, + "DateReviewed": null, + "EventType": "PFA", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "DIMM 4 has exceeded a correctable error threshold", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm4", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Warning", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm5": { + "AffectedLEDs": null, + "AffectedSubsystem": "Memory", + "BMCMessageID": "org.open_power.Host.Error.Event", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPMA0057M", + "ComponentInstance": 5, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "DIMM 5 has failed", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm5", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm5||Critical": { + "AffectedLEDs": null, + "AffectedSubsystem": "Memory", + "BMCMessageID": "org.open_power.Host.Error.Event", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPMA0057M", + "ComponentInstance": 5, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "DIMM 5 has failed", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm5", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm5||Informational": { + "AffectedLEDs": null, + "AffectedSubsystem": "Memory", + "BMCMessageID": "org.open_power.Host.Error.Event", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPMA0060I", + "ComponentInstance": 5, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Recovery", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "DIMM 5 has recovered from an error", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm5", + "RelatedEventIDs": {}, + "Serviceable": false, + "Severity": "Information", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm5||Warning": { + "AffectedLEDs": null, + "AffectedSubsystem": "Memory", + "BMCMessageID": "org.open_power.Host.Error.Event", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPMA0059G", + "ComponentInstance": 5, + "DateAdded": null, + "DateReviewed": null, + "EventType": "PFA", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "DIMM 5 has exceeded a correctable error threshold", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm5", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Warning", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm6": { + "AffectedLEDs": null, + "AffectedSubsystem": "Memory", + "BMCMessageID": "org.open_power.Host.Error.Event", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPMA0057M", + "ComponentInstance": 6, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "DIMM 6 has failed", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm6", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm6||Critical": { + "AffectedLEDs": null, + "AffectedSubsystem": "Memory", + "BMCMessageID": "org.open_power.Host.Error.Event", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPMA0057M", + "ComponentInstance": 6, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "DIMM 6 has failed", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm6", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm6||Informational": { + "AffectedLEDs": null, + "AffectedSubsystem": "Memory", + "BMCMessageID": "org.open_power.Host.Error.Event", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPMA0060I", + "ComponentInstance": 6, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Recovery", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "DIMM 6 has recovered from an error", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm6", + "RelatedEventIDs": {}, + "Serviceable": false, + "Severity": "Information", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm6||Warning": { + "AffectedLEDs": null, + "AffectedSubsystem": "Memory", + "BMCMessageID": "org.open_power.Host.Error.Event", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPMA0059G", + "ComponentInstance": 6, + "DateAdded": null, + "DateReviewed": null, + "EventType": "PFA", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "DIMM 6 has exceeded a correctable error threshold", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm6", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Warning", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm7": { + "AffectedLEDs": null, + "AffectedSubsystem": "Memory", + "BMCMessageID": "org.open_power.Host.Error.Event", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPMA0057M", + "ComponentInstance": 7, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "DIMM 7 has failed", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm7", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm7||Critical": { + "AffectedLEDs": null, + "AffectedSubsystem": "Memory", + "BMCMessageID": "org.open_power.Host.Error.Event", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPMA0057M", + "ComponentInstance": 7, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "DIMM 7 has failed", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm7", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm7||Informational": { + "AffectedLEDs": null, + "AffectedSubsystem": "Memory", + "BMCMessageID": "org.open_power.Host.Error.Event", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPMA0060I", + "ComponentInstance": 7, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Recovery", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "DIMM 7 has recovered from an error", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm7", + "RelatedEventIDs": {}, + "Serviceable": false, + "Severity": "Information", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm7||Warning": { + "AffectedLEDs": null, + "AffectedSubsystem": "Memory", + "BMCMessageID": "org.open_power.Host.Error.Event", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPMA0059G", + "ComponentInstance": 7, + "DateAdded": null, + "DateReviewed": null, + "EventType": "PFA", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "DIMM 7 has exceeded a correctable error threshold", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm7", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Warning", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm8": { + "AffectedLEDs": null, + "AffectedSubsystem": "Memory", + "BMCMessageID": "org.open_power.Host.Error.Event", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPMA0057M", + "ComponentInstance": 8, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "DIMM 8 has failed", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm8", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm8||Critical": { + "AffectedLEDs": null, + "AffectedSubsystem": "Memory", + "BMCMessageID": "org.open_power.Host.Error.Event", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPMA0057M", + "ComponentInstance": 8, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "DIMM 8 has failed", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm8", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm8||Informational": { + "AffectedLEDs": null, + "AffectedSubsystem": "Memory", + "BMCMessageID": "org.open_power.Host.Error.Event", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPMA0060I", + "ComponentInstance": 8, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Recovery", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "DIMM 8 has recovered from an error", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm8", + "RelatedEventIDs": {}, + "Serviceable": false, + "Severity": "Information", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm8||Warning": { + "AffectedLEDs": null, + "AffectedSubsystem": "Memory", + "BMCMessageID": "org.open_power.Host.Error.Event", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPMA0059G", + "ComponentInstance": 8, + "DateAdded": null, + "DateReviewed": null, + "EventType": "PFA", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "DIMM 8 has exceeded a correctable error threshold", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm8", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Warning", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm9": { + "AffectedLEDs": null, + "AffectedSubsystem": "Memory", + "BMCMessageID": "org.open_power.Host.Error.Event", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPMA0057M", + "ComponentInstance": 9, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "DIMM 9 has failed", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm9", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm9||Critical": { + "AffectedLEDs": null, + "AffectedSubsystem": "Memory", + "BMCMessageID": "org.open_power.Host.Error.Event", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPMA0057M", + "ComponentInstance": 9, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "DIMM 9 has failed", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm9", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm9||Informational": { + "AffectedLEDs": null, + "AffectedSubsystem": "Memory", + "BMCMessageID": "org.open_power.Host.Error.Event", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPMA0060I", + "ComponentInstance": 9, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Recovery", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "DIMM 9 has recovered from an error", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm9", + "RelatedEventIDs": {}, + "Serviceable": false, + "Severity": "Information", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm9||Warning": { + "AffectedLEDs": null, + "AffectedSubsystem": "Memory", + "BMCMessageID": "org.open_power.Host.Error.Event", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPMA0059G", + "ComponentInstance": 9, + "DateAdded": null, + "DateReviewed": null, + "EventType": "PFA", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "DIMM 9 has exceeded a correctable error threshold", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm9", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Warning", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard||Critical": { + "AffectedLEDs": null, + "AffectedSubsystem": "Canister/Appliance", + "BMCMessageID": "org.open_power.Host.Error.Event", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPAA0013M", + "ComponentInstance": 1, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "The system backplane has failed", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard||Informational": { + "AffectedLEDs": null, + "AffectedSubsystem": "Canister/Appliance", + "BMCMessageID": "org.open_power.Host.Error.Event", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPAA0014I", + "ComponentInstance": 1, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Recovery", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "The system backplane has recovered from an error", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard", + "RelatedEventIDs": {}, + "Serviceable": false, + "Severity": "Information", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard||Warning": { + "AffectedLEDs": null, + "AffectedSubsystem": "Canister/Appliance", + "BMCMessageID": "org.open_power.Host.Error.Event", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPAA0013G", + "ComponentInstance": 1, + "DateAdded": null, + "DateReviewed": null, + "EventType": "PFA", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "The system backplane has exceeded a correctable error threshold", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Warning", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.MaintenanceProcedure||0": { + "AffectedLEDs": null, + "AffectedSubsystem": "Systems Management - Core / Virtual Appliance", + "BMCMessageID": "org.open_power.Host.Error.MaintenanceProcedure", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPCR0003M", + "ComponentInstance": null, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Firmware/Software Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "A system firmware error occurred.", + "ReferencedInventory": 0, + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.MaintenanceProcedure||1": { + "AffectedLEDs": null, + "AffectedSubsystem": "Canister/Appliance", + "BMCMessageID": "org.open_power.Host.Error.MaintenanceProcedure", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPAA0000M", + "ComponentInstance": null, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "A vital system component has been disabled", + "ReferencedInventory": 1, + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.MaintenanceProcedure||10": { + "AffectedLEDs": null, + "AffectedSubsystem": "Canister/Appliance", + "BMCMessageID": "org.open_power.Host.Error.MaintenanceProcedure", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPAA0001M", + "ComponentInstance": null, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "An unknown problem occurred", + "ReferencedInventory": 10, + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.MaintenanceProcedure||11": { + "AffectedLEDs": null, + "AffectedSubsystem": "Systems Management - Core / Virtual Appliance", + "BMCMessageID": "org.open_power.Host.Error.MaintenanceProcedure", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCR0029M", + "ComponentInstance": null, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Firmware/Software Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": null, + "Message": "A system firmware error occurred.", + "ReferencedInventory": 11, + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.MaintenanceProcedure||16": { + "AffectedLEDs": null, + "AffectedSubsystem": "Systems Management - Core / Virtual Appliance", + "BMCMessageID": "org.open_power.Host.Error.MaintenanceProcedure", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCR0007M", + "ComponentInstance": null, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Firmware/Software Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "A system firmware error occurred.", + "ReferencedInventory": 16, + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.MaintenanceProcedure||1C": { + "AffectedLEDs": null, + "AffectedSubsystem": "Systems Management - Core / Virtual Appliance", + "BMCMessageID": "org.open_power.Host.Error.MaintenanceProcedure", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCR0008M", + "ComponentInstance": null, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Firmware/Software Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "A system firmware error occurred.", + "ReferencedInventory": "1C", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.MaintenanceProcedure||22": { + "AffectedLEDs": null, + "AffectedSubsystem": "Memory", + "BMCMessageID": "org.open_power.Host.Error.MaintenanceProcedure", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPMA0044M", + "ComponentInstance": null, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "A memory configuration error has been detected.", + "ReferencedInventory": 22, + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.MaintenanceProcedure||2D": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "org.open_power.Host.Error.MaintenanceProcedure", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0060M", + "ComponentInstance": null, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "A FSI path error has occurred.", + "ReferencedInventory": "2D", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.MaintenanceProcedure||30": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "org.open_power.Host.Error.MaintenanceProcedure", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0061M", + "ComponentInstance": null, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "An external processor interface problem has occurred", + "ReferencedInventory": 30, + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.MaintenanceProcedure||31": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "org.open_power.Host.Error.MaintenanceProcedure", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0062M", + "ComponentInstance": null, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "An internal processor interface problem has occurred", + "ReferencedInventory": 31, + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.MaintenanceProcedure||34": { + "AffectedLEDs": null, + "AffectedSubsystem": "Memory", + "BMCMessageID": "org.open_power.Host.Error.MaintenanceProcedure", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPMA0058M", + "ComponentInstance": null, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "A memory bus error occurred.", + "ReferencedInventory": 34, + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.MaintenanceProcedure||37": { + "AffectedLEDs": null, + "AffectedSubsystem": "System Board", + "BMCMessageID": "org.open_power.Host.Error.MaintenanceProcedure", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPSB0005M", + "ComponentInstance": null, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "A bus error occurred.", + "ReferencedInventory": 37, + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.MaintenanceProcedure||3F": { + "AffectedLEDs": null, + "AffectedSubsystem": "Power", + "BMCMessageID": "org.open_power.Host.Error.MaintenanceProcedure", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPPW0012M", + "ComponentInstance": null, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "A system power problem has occurred", + "ReferencedInventory": "3F", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.MaintenanceProcedure||4": { + "AffectedLEDs": null, + "AffectedSubsystem": "Systems Management - Core / Virtual Appliance", + "BMCMessageID": "org.open_power.Host.Error.MaintenanceProcedure", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCR0004M", + "ComponentInstance": null, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Firmware/Software Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "A system firmware error occurred.", + "ReferencedInventory": 4, + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.MaintenanceProcedure||4D": { + "AffectedLEDs": null, + "AffectedSubsystem": "Canister/Appliance", + "BMCMessageID": "org.open_power.Host.Error.MaintenanceProcedure", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPAA0009M", + "ComponentInstance": null, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Firmware/Software Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "System performance is degraded", + "ReferencedInventory": "4D", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.MaintenanceProcedure||4F": { + "AffectedLEDs": null, + "AffectedSubsystem": "Memory", + "BMCMessageID": "org.open_power.Host.Error.MaintenanceProcedure", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPMA0045M", + "ComponentInstance": null, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "An uncorrectable memory problem occurred.", + "ReferencedInventory": "4F", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.MaintenanceProcedure||5": { + "AffectedLEDs": null, + "AffectedSubsystem": "Systems Management - Core / Virtual Appliance", + "BMCMessageID": "org.open_power.Host.Error.MaintenanceProcedure", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCR0005M", + "ComponentInstance": null, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Firmware/Software Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "A system firmware error occurred.", + "ReferencedInventory": 5, + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.MaintenanceProcedure||55": { + "AffectedLEDs": null, + "AffectedSubsystem": "Systems Management - Core / Virtual Appliance", + "BMCMessageID": "org.open_power.Host.Error.MaintenanceProcedure", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCR0011M", + "ComponentInstance": null, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Firmware/Software Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "The service processor detected a problem during the early boot process", + "ReferencedInventory": 55, + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.MaintenanceProcedure||56": { + "AffectedLEDs": null, + "AffectedSubsystem": "Time Reference", + "BMCMessageID": "org.open_power.Host.Error.MaintenanceProcedure", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPTR0001M", + "ComponentInstance": null, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "A problem with the time of day clock and or clock function has been detected.", + "ReferencedInventory": 56, + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.MaintenanceProcedure||5C": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "org.open_power.Host.Error.MaintenanceProcedure", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPPU0063M", + "ComponentInstance": null, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "One or more processor sensors detected an over temperature condition.", + "ReferencedInventory": "5C", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.MaintenanceProcedure||5D": { + "AffectedLEDs": null, + "AffectedSubsystem": "Systems Management - Core / Virtual Appliance", + "BMCMessageID": "org.open_power.Host.Error.MaintenanceProcedure", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCR0028M", + "ComponentInstance": null, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Firmware/Software Not Valid", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Unable to verify the system firmware", + "ReferencedInventory": "5D", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.MaintenanceProcedure||5E": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "org.open_power.Host.Error.MaintenanceProcedure", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0092M", + "ComponentInstance": null, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "An error occurred with a GPU and automated isolation was not possible", + "ReferencedInventory": "5E", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.MaintenanceProcedure||8": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "org.open_power.Host.Error.MaintenanceProcedure", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0059M", + "ComponentInstance": null, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "A CPU problem was detected.", + "ReferencedInventory": 8, + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.MaintenanceProcedure||9": { + "AffectedLEDs": null, + "AffectedSubsystem": "Memory", + "BMCMessageID": "org.open_power.Host.Error.MaintenanceProcedure", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPMA0043M", + "ComponentInstance": null, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "An error occurred with a memory DIMM and automated isolation was not possible", + "ReferencedInventory": 9, + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.MaintenanceProcedure||A": { + "AffectedLEDs": null, + "AffectedSubsystem": "Systems Management - Core / Virtual Appliance", + "BMCMessageID": "org.open_power.Host.Error.MaintenanceProcedure", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCR0006M", + "ComponentInstance": null, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Firmware/Software Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "A system firmware error occurred.", + "ReferencedInventory": "A", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Error.WatchdogTimedOut": { + "AffectedLEDs": null, + "AffectedSubsystem": "Systems Management - Core / Virtual Appliance", + "BMCMessageID": "org.open_power.Host.Error.WatchdogTimedOut", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCR0023M", + "ComponentInstance": null, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Firmware/Software Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Hostboot has become unresponsive", + "ReferencedInventory": null, + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Event.Error.Event||/xyz/openbmc_project/inventory/system": { + "AffectedLEDs": null, + "AffectedSubsystem": "Canister/Appliance", + "BMCMessageID": "org.open_power.Host.Event.Error.Event", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPAA0008M", + "ComponentInstance": null, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Hostboot procedure callout", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Event.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "org.open_power.Host.Event.Error.Event", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0090M", + "ComponentInstance": 0, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 0 has failed", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Event.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core0": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "org.open_power.Host.Event.Error.Event", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0091M", + "ComponentInstance": "0,0", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 0 core 0 has failed", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core0", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Event.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core1": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "org.open_power.Host.Event.Error.Event", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0091M", + "ComponentInstance": "0,1", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 0 core 1 has failed", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core1", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Event.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core10": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "org.open_power.Host.Event.Error.Event", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0091M", + "ComponentInstance": "0,10", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 0 core 10 has failed", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core10", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Event.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core11": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "org.open_power.Host.Event.Error.Event", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0091M", + "ComponentInstance": "0,11", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 0 core 11 has failed", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core11", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Event.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core12": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "org.open_power.Host.Event.Error.Event", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0091M", + "ComponentInstance": "0,12", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 0 core 12 has failed", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core12", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Event.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core13": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "org.open_power.Host.Event.Error.Event", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0091M", + "ComponentInstance": "0,13", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 0 core 13 has failed", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core13", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Event.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core14": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "org.open_power.Host.Event.Error.Event", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0091M", + "ComponentInstance": "0,14", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 0 core 14 has failed", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core14", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Event.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core15": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "org.open_power.Host.Event.Error.Event", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0091M", + "ComponentInstance": "0,15", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 0 core 15 has failed", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core15", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Event.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core16": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "org.open_power.Host.Event.Error.Event", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0091M", + "ComponentInstance": "0,16", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 0 core 16 has failed", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core16", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Event.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core17": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "org.open_power.Host.Event.Error.Event", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0091M", + "ComponentInstance": "0,17", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 0 core 17 has failed", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core17", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Event.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core18": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "org.open_power.Host.Event.Error.Event", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0091M", + "ComponentInstance": "0,18", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 0 core 18 has failed", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core18", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Event.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core19": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "org.open_power.Host.Event.Error.Event", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0091M", + "ComponentInstance": "0,19", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 0 core 19 has failed", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core19", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Event.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core2": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "org.open_power.Host.Event.Error.Event", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0091M", + "ComponentInstance": "0,2", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 0 core 2 has failed", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core2", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Event.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core20": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "org.open_power.Host.Event.Error.Event", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0091M", + "ComponentInstance": "0,20", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 0 core 20 has failed", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core20", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Event.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core21": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "org.open_power.Host.Event.Error.Event", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0091M", + "ComponentInstance": "0,21", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 0 core 21 has failed", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core21", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Event.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core22": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "org.open_power.Host.Event.Error.Event", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0091M", + "ComponentInstance": "0,22", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 0 core 22 has failed", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core22", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Event.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core23": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "org.open_power.Host.Event.Error.Event", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0091M", + "ComponentInstance": "0,23", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 0 core 23 has failed", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core23", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Event.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core3": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "org.open_power.Host.Event.Error.Event", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0091M", + "ComponentInstance": "0,3", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 0 core 3 has failed", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core3", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Event.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core4": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "org.open_power.Host.Event.Error.Event", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0091M", + "ComponentInstance": "0,4", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 0 core 4 has failed", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core4", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Event.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core5": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "org.open_power.Host.Event.Error.Event", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0091M", + "ComponentInstance": "0,5", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 0 core 5 has failed", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core5", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Event.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core6": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "org.open_power.Host.Event.Error.Event", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0091M", + "ComponentInstance": "0,6", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 0 core 6 has failed", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core6", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Event.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core7": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "org.open_power.Host.Event.Error.Event", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0091M", + "ComponentInstance": "0,7", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 0 core 7 has failed", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core7", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Event.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core8": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "org.open_power.Host.Event.Error.Event", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0091M", + "ComponentInstance": "0,8", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 0 core 8 has failed", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core8", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Event.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core9": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "org.open_power.Host.Event.Error.Event", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0091M", + "ComponentInstance": "0,9", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 0 core 9 has failed", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core9", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Event.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "org.open_power.Host.Event.Error.Event", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0090M", + "ComponentInstance": 1, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 1 has failed", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Event.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core0": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "org.open_power.Host.Event.Error.Event", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0091M", + "ComponentInstance": "1,0", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 1 core 0 has failed", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core0", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Event.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core1": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "org.open_power.Host.Event.Error.Event", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0091M", + "ComponentInstance": "1,1", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 1 core 1 has failed", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core1", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Event.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core10": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "org.open_power.Host.Event.Error.Event", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0091M", + "ComponentInstance": "1,10", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 1 core 10 has failed", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core10", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Event.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core11": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "org.open_power.Host.Event.Error.Event", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0091M", + "ComponentInstance": "1,11", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 1 core 11 has failed", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core11", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Event.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core12": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "org.open_power.Host.Event.Error.Event", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0091M", + "ComponentInstance": "1,12", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 1 core 12 has failed", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core12", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Event.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core13": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "org.open_power.Host.Event.Error.Event", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0091M", + "ComponentInstance": "1,13", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 1 core 13 has failed", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core13", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Event.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core14": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "org.open_power.Host.Event.Error.Event", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0091M", + "ComponentInstance": "1,14", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 1 core 14 has failed", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core14", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Event.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core15": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "org.open_power.Host.Event.Error.Event", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0091M", + "ComponentInstance": "1,15", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 1 core 15 has failed", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core15", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Event.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core16": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "org.open_power.Host.Event.Error.Event", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0091M", + "ComponentInstance": "1,16", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 1 core 16 has failed", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core16", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Event.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core17": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "org.open_power.Host.Event.Error.Event", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0091M", + "ComponentInstance": "1,17", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 1 core 17 has failed", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core17", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Event.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core18": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "org.open_power.Host.Event.Error.Event", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0091M", + "ComponentInstance": "1,18", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 1 core 18 has failed", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core18", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Event.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core19": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "org.open_power.Host.Event.Error.Event", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0091M", + "ComponentInstance": "1,19", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 1 core 19 has failed", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core19", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Event.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core2": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "org.open_power.Host.Event.Error.Event", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0091M", + "ComponentInstance": "1,2", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 1 core 2 has failed", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core2", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Event.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core20": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "org.open_power.Host.Event.Error.Event", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0091M", + "ComponentInstance": "1,20", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 1 core 20 has failed", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core20", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Event.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core21": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "org.open_power.Host.Event.Error.Event", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0091M", + "ComponentInstance": "1,21", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 1 core 21 has failed", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core21", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Event.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core22": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "org.open_power.Host.Event.Error.Event", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0091M", + "ComponentInstance": "1,22", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 1 core 22 has failed", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core22", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Event.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core23": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "org.open_power.Host.Event.Error.Event", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0091M", + "ComponentInstance": "1,23", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 1 core 23 has failed", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core23", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Event.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core3": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "org.open_power.Host.Event.Error.Event", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0091M", + "ComponentInstance": "1,3", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 1 core 3 has failed", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core3", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Event.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core4": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "org.open_power.Host.Event.Error.Event", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0091M", + "ComponentInstance": "1,4", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 1 core 4 has failed", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core4", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Event.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core5": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "org.open_power.Host.Event.Error.Event", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0091M", + "ComponentInstance": "1,5", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 1 core 5 has failed", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core5", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Event.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core6": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "org.open_power.Host.Event.Error.Event", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0091M", + "ComponentInstance": "1,6", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 1 core 6 has failed", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core6", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Event.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core7": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "org.open_power.Host.Event.Error.Event", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0091M", + "ComponentInstance": "1,7", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 1 core 7 has failed", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core7", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Event.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core8": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "org.open_power.Host.Event.Error.Event", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0091M", + "ComponentInstance": "1,8", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 1 core 8 has failed", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core8", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Event.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core9": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "org.open_power.Host.Event.Error.Event", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0091M", + "ComponentInstance": "1,9", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 1 core 9 has failed", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core9", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Event.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm0": { + "AffectedLEDs": null, + "AffectedSubsystem": "Memory", + "BMCMessageID": "org.open_power.Host.Event.Error.Event", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPMA0057M", + "ComponentInstance": 0, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "DIMM 0 has failed", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm0", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Event.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm1": { + "AffectedLEDs": null, + "AffectedSubsystem": "Memory", + "BMCMessageID": "org.open_power.Host.Event.Error.Event", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPMA0057M", + "ComponentInstance": 1, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "DIMM 1 has failed", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm1", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Event.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm10": { + "AffectedLEDs": null, + "AffectedSubsystem": "Memory", + "BMCMessageID": "org.open_power.Host.Event.Error.Event", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPMA0057M", + "ComponentInstance": 10, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "DIMM 10 has failed", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm10", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Event.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm11": { + "AffectedLEDs": null, + "AffectedSubsystem": "Memory", + "BMCMessageID": "org.open_power.Host.Event.Error.Event", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPMA0057M", + "ComponentInstance": 11, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "DIMM 11 has failed", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm11", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Event.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm12": { + "AffectedLEDs": null, + "AffectedSubsystem": "Memory", + "BMCMessageID": "org.open_power.Host.Event.Error.Event", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPMA0057M", + "ComponentInstance": 12, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "DIMM 12 has failed", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm12", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Event.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm13": { + "AffectedLEDs": null, + "AffectedSubsystem": "Memory", + "BMCMessageID": "org.open_power.Host.Event.Error.Event", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPMA0057M", + "ComponentInstance": 13, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "DIMM 13 has failed", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm13", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Event.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm14": { + "AffectedLEDs": null, + "AffectedSubsystem": "Memory", + "BMCMessageID": "org.open_power.Host.Event.Error.Event", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPMA0057M", + "ComponentInstance": 14, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "DIMM 14 has failed", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm14", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Event.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm15": { + "AffectedLEDs": null, + "AffectedSubsystem": "Memory", + "BMCMessageID": "org.open_power.Host.Event.Error.Event", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPMA0057M", + "ComponentInstance": 15, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "DIMM 15 has failed", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm15", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Event.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm2": { + "AffectedLEDs": null, + "AffectedSubsystem": "Memory", + "BMCMessageID": "org.open_power.Host.Event.Error.Event", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPMA0057M", + "ComponentInstance": 2, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "DIMM 2 has failed", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm2", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Event.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm3": { + "AffectedLEDs": null, + "AffectedSubsystem": "Memory", + "BMCMessageID": "org.open_power.Host.Event.Error.Event", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPMA0057M", + "ComponentInstance": 3, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "DIMM 3 has failed", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm3", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Event.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm4": { + "AffectedLEDs": null, + "AffectedSubsystem": "Memory", + "BMCMessageID": "org.open_power.Host.Event.Error.Event", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPMA0057M", + "ComponentInstance": 4, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "DIMM 4 has failed", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm4", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Event.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm5": { + "AffectedLEDs": null, + "AffectedSubsystem": "Memory", + "BMCMessageID": "org.open_power.Host.Event.Error.Event", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPMA0057M", + "ComponentInstance": 5, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "DIMM 5 has failed", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm5", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Event.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm6": { + "AffectedLEDs": null, + "AffectedSubsystem": "Memory", + "BMCMessageID": "org.open_power.Host.Event.Error.Event", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPMA0057M", + "ComponentInstance": 6, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "DIMM 6 has failed", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm6", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Event.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm7": { + "AffectedLEDs": null, + "AffectedSubsystem": "Memory", + "BMCMessageID": "org.open_power.Host.Event.Error.Event", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPMA0057M", + "ComponentInstance": 7, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "DIMM 7 has failed", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm7", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Event.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm8": { + "AffectedLEDs": null, + "AffectedSubsystem": "Memory", + "BMCMessageID": "org.open_power.Host.Event.Error.Event", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPMA0057M", + "ComponentInstance": 8, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "DIMM 8 has failed", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm8", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Host.Event.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm9": { + "AffectedLEDs": null, + "AffectedSubsystem": "Memory", + "BMCMessageID": "org.open_power.Host.Event.Error.Event", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPMA0057M", + "ComponentInstance": 9, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "DIMM 9 has failed", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm9", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.OCC.Device.Error.ConfigFailure": { + "AffectedLEDs": null, + "AffectedSubsystem": "Systems Management - Core / Virtual Appliance", + "BMCMessageID": "org.open_power.OCC.Device.Error.ConfigFailure", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPCR0048M", + "ComponentInstance": null, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Communication Failure/Timeout", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Failure to configure OCC", + "ReferencedInventory": null, + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.OCC.Device.Error.OpenFailure": { + "AffectedLEDs": null, + "AffectedSubsystem": "Systems Management - Core / Virtual Appliance", + "BMCMessageID": "org.open_power.OCC.Device.Error.OpenFailure", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPCR0045M", + "ComponentInstance": null, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Communication Failure/Timeout", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Failed to open OCC connection", + "ReferencedInventory": null, + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.OCC.Device.Error.ReadFailure": { + "AffectedLEDs": null, + "AffectedSubsystem": "Systems Management - Core / Virtual Appliance", + "BMCMessageID": "org.open_power.OCC.Device.Error.ReadFailure", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPCR0046M", + "ComponentInstance": null, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Communication Failure/Timeout", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Failed to read from OCC", + "ReferencedInventory": null, + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.OCC.Device.Error.WriteFailure": { + "AffectedLEDs": null, + "AffectedSubsystem": "Systems Management - Core / Virtual Appliance", + "BMCMessageID": "org.open_power.OCC.Device.Error.WriteFailure", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPCR0047M", + "ComponentInstance": null, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Communication Failure/Timeout", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Failed to write to OCC", + "ReferencedInventory": null, + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.OCC.Metrics.Error.Event": { + "AffectedLEDs": null, + "AffectedSubsystem": "Systems Management - Core / Virtual Appliance", + "BMCMessageID": "org.open_power.OCC.Metrics.Error.Event", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCR0064I", + "ComponentInstance": null, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Status", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "OCC metric data collected", + "ReferencedInventory": null, + "RelatedEventIDs": {}, + "Serviceable": false, + "Severity": "Information", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Proc.FSI.Error.MasterDetectionFailure||FSI": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "org.open_power.Proc.FSI.Error.MasterDetectionFailure", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0097M", + "ComponentInstance": null, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Communication Failure/Timeout", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Unable to detect master processor on FSI bus", + "ReferencedInventory": "FSI", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Proc.FSI.Error.SlaveDetectionFailure": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "org.open_power.Proc.FSI.Error.SlaveDetectionFailure", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0098M", + "ComponentInstance": null, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Communication Failure/Timeout", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Unable to detect slave processor on FSI bus", + "ReferencedInventory": null, + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Witherspoon.Fault.Error.GPUOverTemp||/xyz/openbmc_project/inventory/system/chassis/motherboard/gpu0": { + "AffectedLEDs": null, + "AffectedSubsystem": "Cooling", + "BMCMessageID": "org.open_power.Witherspoon.Fault.Error.GPUOverTemp", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCA0066M", + "ComponentInstance": 0, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Environmental", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "GPU 0 suffered an over-temperature fault", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/gpu0", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Witherspoon.Fault.Error.GPUOverTemp||/xyz/openbmc_project/inventory/system/chassis/motherboard/gpu1": { + "AffectedLEDs": null, + "AffectedSubsystem": "Cooling", + "BMCMessageID": "org.open_power.Witherspoon.Fault.Error.GPUOverTemp", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCA0066M", + "ComponentInstance": 1, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Environmental", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "GPU 1 suffered an over-temperature fault", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/gpu1", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Witherspoon.Fault.Error.GPUOverTemp||/xyz/openbmc_project/inventory/system/chassis/motherboard/gpu2": { + "AffectedLEDs": null, + "AffectedSubsystem": "Cooling", + "BMCMessageID": "org.open_power.Witherspoon.Fault.Error.GPUOverTemp", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCA0066M", + "ComponentInstance": 2, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Environmental", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "GPU 2 suffered an over-temperature fault", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/gpu2", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Witherspoon.Fault.Error.GPUOverTemp||/xyz/openbmc_project/inventory/system/chassis/motherboard/gpu3": { + "AffectedLEDs": null, + "AffectedSubsystem": "Cooling", + "BMCMessageID": "org.open_power.Witherspoon.Fault.Error.GPUOverTemp", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCA0066M", + "ComponentInstance": 3, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Environmental", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "GPU 3 suffered an over-temperature fault", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/gpu3", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Witherspoon.Fault.Error.GPUOverTemp||/xyz/openbmc_project/inventory/system/chassis/motherboard/gpu4": { + "AffectedLEDs": null, + "AffectedSubsystem": "Cooling", + "BMCMessageID": "org.open_power.Witherspoon.Fault.Error.GPUOverTemp", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCA0066M", + "ComponentInstance": 4, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Environmental", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "GPU 4 suffered an over-temperature fault", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/gpu4", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Witherspoon.Fault.Error.GPUOverTemp||/xyz/openbmc_project/inventory/system/chassis/motherboard/gpu5": { + "AffectedLEDs": null, + "AffectedSubsystem": "Cooling", + "BMCMessageID": "org.open_power.Witherspoon.Fault.Error.GPUOverTemp", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCA0066M", + "ComponentInstance": 5, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Environmental", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "GPU 5 suffered an over-temperature fault", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/gpu5", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Witherspoon.Fault.Error.GPUOverTemp||/xyz/openbmc_project/inventory/system/chassis/motherboard/gv100card0": { + "AffectedLEDs": null, + "AffectedSubsystem": "Cooling", + "BMCMessageID": "org.open_power.Witherspoon.Fault.Error.GPUOverTemp", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCA0066M", + "ComponentInstance": null, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Environmental", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "GPU 0 suffered an over-temperature fault", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/gv100card0", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": "Cooling", + "VMMigrationFlag": null + }, + "org.open_power.Witherspoon.Fault.Error.GPUOverTemp||/xyz/openbmc_project/inventory/system/chassis/motherboard/gv100card1": { + "AffectedLEDs": null, + "AffectedSubsystem": "Cooling", + "BMCMessageID": "org.open_power.Witherspoon.Fault.Error.GPUOverTemp", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCA0066M", + "ComponentInstance": null, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Environmental", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "GPU 1 suffered an over-temperature fault", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/gv100card1", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": "Cooling", + "VMMigrationFlag": null + }, + "org.open_power.Witherspoon.Fault.Error.GPUOverTemp||/xyz/openbmc_project/inventory/system/chassis/motherboard/gv100card2": { + "AffectedLEDs": null, + "AffectedSubsystem": "Cooling", + "BMCMessageID": "org.open_power.Witherspoon.Fault.Error.GPUOverTemp", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCA0066M", + "ComponentInstance": null, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Environmental", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "GPU 2 suffered an over-temperature fault", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/gv100card2", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": "Cooling", + "VMMigrationFlag": null + }, + "org.open_power.Witherspoon.Fault.Error.GPUOverTemp||/xyz/openbmc_project/inventory/system/chassis/motherboard/gv100card3": { + "AffectedLEDs": null, + "AffectedSubsystem": "Cooling", + "BMCMessageID": "org.open_power.Witherspoon.Fault.Error.GPUOverTemp", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCA0066M", + "ComponentInstance": null, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Environmental", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "GPU 3 suffered an over-temperature fault", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/gv100card3", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": "Cooling", + "VMMigrationFlag": null + }, + "org.open_power.Witherspoon.Fault.Error.GPUOverTemp||/xyz/openbmc_project/inventory/system/chassis/motherboard/gv100card4": { + "AffectedLEDs": null, + "AffectedSubsystem": "Cooling", + "BMCMessageID": "org.open_power.Witherspoon.Fault.Error.GPUOverTemp", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCA0066M", + "ComponentInstance": null, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Environmental", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "GPU 4 suffered an over-temperature fault", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/gv100card4", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": "Cooling", + "VMMigrationFlag": null + }, + "org.open_power.Witherspoon.Fault.Error.GPUOverTemp||/xyz/openbmc_project/inventory/system/chassis/motherboard/gv100card5": { + "AffectedLEDs": null, + "AffectedSubsystem": "Cooling", + "BMCMessageID": "org.open_power.Witherspoon.Fault.Error.GPUOverTemp", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCA0066M", + "ComponentInstance": null, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Environmental", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "GPU 5 suffered an over-temperature fault", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/gv100card5", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": "Cooling", + "VMMigrationFlag": null + }, + "org.open_power.Witherspoon.Fault.Error.GPUPowerFault||/xyz/openbmc_project/inventory/system/chassis/motherboard/gpu0": { + "AffectedLEDs": null, + "AffectedSubsystem": "Power", + "BMCMessageID": "org.open_power.Witherspoon.Fault.Error.GPUPowerFault", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPPW0038M", + "ComponentInstance": 0, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Environmental", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "GPU 0 suffered a power fault", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/gpu0", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Witherspoon.Fault.Error.GPUPowerFault||/xyz/openbmc_project/inventory/system/chassis/motherboard/gpu1": { + "AffectedLEDs": null, + "AffectedSubsystem": "Power", + "BMCMessageID": "org.open_power.Witherspoon.Fault.Error.GPUPowerFault", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPPW0038M", + "ComponentInstance": 1, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Environmental", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "GPU 1 suffered a power fault", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/gpu1", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Witherspoon.Fault.Error.GPUPowerFault||/xyz/openbmc_project/inventory/system/chassis/motherboard/gpu2": { + "AffectedLEDs": null, + "AffectedSubsystem": "Power", + "BMCMessageID": "org.open_power.Witherspoon.Fault.Error.GPUPowerFault", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPPW0038M", + "ComponentInstance": 2, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Environmental", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "GPU 2 suffered a power fault", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/gpu2", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Witherspoon.Fault.Error.GPUPowerFault||/xyz/openbmc_project/inventory/system/chassis/motherboard/gpu3": { + "AffectedLEDs": null, + "AffectedSubsystem": "Power", + "BMCMessageID": "org.open_power.Witherspoon.Fault.Error.GPUPowerFault", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPPW0038M", + "ComponentInstance": 3, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Environmental", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "GPU 3 suffered a power fault", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/gpu3", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Witherspoon.Fault.Error.GPUPowerFault||/xyz/openbmc_project/inventory/system/chassis/motherboard/gpu4": { + "AffectedLEDs": null, + "AffectedSubsystem": "Power", + "BMCMessageID": "org.open_power.Witherspoon.Fault.Error.GPUPowerFault", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPPW0038M", + "ComponentInstance": 4, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Environmental", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "GPU 4 suffered a power fault", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/gpu4", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Witherspoon.Fault.Error.GPUPowerFault||/xyz/openbmc_project/inventory/system/chassis/motherboard/gpu5": { + "AffectedLEDs": null, + "AffectedSubsystem": "Power", + "BMCMessageID": "org.open_power.Witherspoon.Fault.Error.GPUPowerFault", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPPW0038M", + "ComponentInstance": 5, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Environmental", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "GPU 5 suffered a power fault", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/gpu5", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Witherspoon.Fault.Error.GPUPowerFault||/xyz/openbmc_project/inventory/system/chassis/motherboard/gv100card0": { + "AffectedLEDs": null, + "AffectedSubsystem": "Power", + "BMCMessageID": "org.open_power.Witherspoon.Fault.Error.GPUPowerFault", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPPW0038M", + "ComponentInstance": 0, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Environmental", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "GPU 0 suffered a power fault", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/gv100card0", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Witherspoon.Fault.Error.GPUPowerFault||/xyz/openbmc_project/inventory/system/chassis/motherboard/gv100card1": { + "AffectedLEDs": null, + "AffectedSubsystem": "Power", + "BMCMessageID": "org.open_power.Witherspoon.Fault.Error.GPUPowerFault", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPPW0038M", + "ComponentInstance": 1, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Environmental", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "GPU 1 suffered a power fault", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/gv100card1", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Witherspoon.Fault.Error.GPUPowerFault||/xyz/openbmc_project/inventory/system/chassis/motherboard/gv100card2": { + "AffectedLEDs": null, + "AffectedSubsystem": "Power", + "BMCMessageID": "org.open_power.Witherspoon.Fault.Error.GPUPowerFault", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPPW0038M", + "ComponentInstance": 2, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Environmental", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "GPU 2 suffered a power fault", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/gv100card2", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Witherspoon.Fault.Error.GPUPowerFault||/xyz/openbmc_project/inventory/system/chassis/motherboard/gv100card3": { + "AffectedLEDs": null, + "AffectedSubsystem": "Power", + "BMCMessageID": "org.open_power.Witherspoon.Fault.Error.GPUPowerFault", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPPW0038M", + "ComponentInstance": 3, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Environmental", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "GPU 3 suffered a power fault", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/gv100card3", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Witherspoon.Fault.Error.GPUPowerFault||/xyz/openbmc_project/inventory/system/chassis/motherboard/gv100card4": { + "AffectedLEDs": null, + "AffectedSubsystem": "Power", + "BMCMessageID": "org.open_power.Witherspoon.Fault.Error.GPUPowerFault", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPPW0038M", + "ComponentInstance": 4, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Environmental", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "GPU 4 suffered a power fault", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/gv100card4", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Witherspoon.Fault.Error.GPUPowerFault||/xyz/openbmc_project/inventory/system/chassis/motherboard/gv100card5": { + "AffectedLEDs": null, + "AffectedSubsystem": "Power", + "BMCMessageID": "org.open_power.Witherspoon.Fault.Error.GPUPowerFault", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPPW0038M", + "ComponentInstance": 5, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Environmental", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "GPU 5 suffered a power fault", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/gv100card5", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Witherspoon.Fault.Error.PowerOnFailure": { + "AffectedLEDs": null, + "AffectedSubsystem": "Power", + "BMCMessageID": "org.open_power.Witherspoon.Fault.Error.PowerOnFailure", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPPW0038F", + "ComponentInstance": null, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Environmental", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "The system power failed to turn on", + "ReferencedInventory": null, + "RelatedEventIDs": {}, + "Serviceable": false, + "Severity": "Warning", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Witherspoon.Fault.Error.PowerSequencerFault": { + "AffectedLEDs": null, + "AffectedSubsystem": "Power", + "BMCMessageID": "org.open_power.Witherspoon.Fault.Error.PowerSequencerFault", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPW0041M", + "ComponentInstance": null, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Environmental", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "The power sequencer chip detected a fault", + "ReferencedInventory": null, + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Witherspoon.Fault.Error.PowerSequencerPGOODFault||GPU_PGOOD": { + "AffectedLEDs": null, + "AffectedSubsystem": "Power", + "BMCMessageID": "org.open_power.Witherspoon.Fault.Error.PowerSequencerPGOODFault", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPW0045M", + "ComponentInstance": null, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Environmental", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "The power sequencer chip detected a GPU_PGOOD fault", + "ReferencedInventory": "GPU_PGOOD", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Witherspoon.Fault.Error.PowerSequencerPGOODFault||MEM_GOOD0": { + "AffectedLEDs": null, + "AffectedSubsystem": "Power", + "BMCMessageID": "org.open_power.Witherspoon.Fault.Error.PowerSequencerPGOODFault", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPW0043M", + "ComponentInstance": null, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Environmental", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "The power sequencer chip detected a MEM_GOOD0 fault", + "ReferencedInventory": "MEM_GOOD0", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Witherspoon.Fault.Error.PowerSequencerPGOODFault||MEM_GOOD1": { + "AffectedLEDs": null, + "AffectedSubsystem": "Power", + "BMCMessageID": "org.open_power.Witherspoon.Fault.Error.PowerSequencerPGOODFault", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPW0044M", + "ComponentInstance": null, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Environmental", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "The power sequencer chip detected a MEM_GOOD1 fault", + "ReferencedInventory": "MEM_GOOD1", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Witherspoon.Fault.Error.PowerSequencerPGOODFault||PGOOD_5P0V": { + "AffectedLEDs": null, + "AffectedSubsystem": "Power", + "BMCMessageID": "org.open_power.Witherspoon.Fault.Error.PowerSequencerPGOODFault", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPW0042M", + "ComponentInstance": null, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Environmental", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "The power sequencer chip detected a PGOOD_5P0V fault", + "ReferencedInventory": "PGOOD_5P0V", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Witherspoon.Fault.Error.PowerSequencerPGOODFault||TH_OVERT": { + "AffectedLEDs": null, + "AffectedSubsystem": "Power", + "BMCMessageID": "org.open_power.Witherspoon.Fault.Error.PowerSequencerPGOODFault", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPW0046M", + "ComponentInstance": null, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Environmental", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "The power sequencer chip detected a TH_OVERT fault", + "ReferencedInventory": "TH_OVERT", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Witherspoon.Fault.Error.PowerSequencerVoltageFault||0.9V": { + "AffectedLEDs": null, + "AffectedSubsystem": "Power", + "BMCMessageID": "org.open_power.Witherspoon.Fault.Error.PowerSequencerVoltageFault", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPW0053M", + "ComponentInstance": null, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Environmental", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "The power sequencer chip detected a fault on 0.9V rail.", + "ReferencedInventory": "0.9V", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Witherspoon.Fault.Error.PowerSequencerVoltageFault||1.0V": { + "AffectedLEDs": null, + "AffectedSubsystem": "Power", + "BMCMessageID": "org.open_power.Witherspoon.Fault.Error.PowerSequencerVoltageFault", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPW0052M", + "ComponentInstance": null, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Environmental", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "The power sequencer chip detected a fault on 1.0V rail.", + "ReferencedInventory": "1.0V", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Witherspoon.Fault.Error.PowerSequencerVoltageFault||1.1V": { + "AffectedLEDs": null, + "AffectedSubsystem": "Power", + "BMCMessageID": "org.open_power.Witherspoon.Fault.Error.PowerSequencerVoltageFault", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPW0051M", + "ComponentInstance": null, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Environmental", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "The power sequencer chip detected a fault on 1.1V rail.", + "ReferencedInventory": "1.1V", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Witherspoon.Fault.Error.PowerSequencerVoltageFault||1.8V": { + "AffectedLEDs": null, + "AffectedSubsystem": "Power", + "BMCMessageID": "org.open_power.Witherspoon.Fault.Error.PowerSequencerVoltageFault", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPW0050M", + "ComponentInstance": null, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Environmental", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "The power sequencer chip detected a fault on 1.8V rail.", + "ReferencedInventory": "1.8V", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Witherspoon.Fault.Error.PowerSequencerVoltageFault||12.0V": { + "AffectedLEDs": null, + "AffectedSubsystem": "Power", + "BMCMessageID": "org.open_power.Witherspoon.Fault.Error.PowerSequencerVoltageFault", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPW0048M", + "ComponentInstance": null, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Environmental", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "The power sequencer chip detected a fault on 12.0V rail.", + "ReferencedInventory": "12.0V", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Witherspoon.Fault.Error.PowerSequencerVoltageFault||3.3V": { + "AffectedLEDs": null, + "AffectedSubsystem": "Power", + "BMCMessageID": "org.open_power.Witherspoon.Fault.Error.PowerSequencerVoltageFault", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPW0049M", + "ComponentInstance": null, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Environmental", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "The power sequencer chip detected a fault on 3.3V rail.", + "ReferencedInventory": "3.3V", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Witherspoon.Fault.Error.PowerSequencerVoltageFault||5.0VCS": { + "AffectedLEDs": null, + "AffectedSubsystem": "Power", + "BMCMessageID": "org.open_power.Witherspoon.Fault.Error.PowerSequencerVoltageFault", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPW0047M", + "ComponentInstance": null, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Environmental", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "The power sequencer chip detected a fault on 5.0VCS rail.", + "ReferencedInventory": "5.0VCS", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Witherspoon.Fault.Error.PowerSequencerVoltageFault||AVDD": { + "AffectedLEDs": null, + "AffectedSubsystem": "Power", + "BMCMessageID": "org.open_power.Witherspoon.Fault.Error.PowerSequencerVoltageFault", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPW0056M", + "ComponentInstance": null, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Environmental", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "The power sequencer chip detected a fault on AVDD rail.", + "ReferencedInventory": "AVDD", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Witherspoon.Fault.Error.PowerSequencerVoltageFault||VCS-A": { + "AffectedLEDs": null, + "AffectedSubsystem": "Power", + "BMCMessageID": "org.open_power.Witherspoon.Fault.Error.PowerSequencerVoltageFault", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPW0061M", + "ComponentInstance": null, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Environmental", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "The power sequencer chip detected a fault on VCS-A rail.", + "ReferencedInventory": "VCS-A", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Witherspoon.Fault.Error.PowerSequencerVoltageFault||VCS-B": { + "AffectedLEDs": null, + "AffectedSubsystem": "Power", + "BMCMessageID": "org.open_power.Witherspoon.Fault.Error.PowerSequencerVoltageFault", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPW0062M", + "ComponentInstance": null, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Environmental", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "The power sequencer chip detected a fault on VCS-B rail.", + "ReferencedInventory": "VCS-B", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Witherspoon.Fault.Error.PowerSequencerVoltageFault||VDD-A": { + "AffectedLEDs": null, + "AffectedSubsystem": "Power", + "BMCMessageID": "org.open_power.Witherspoon.Fault.Error.PowerSequencerVoltageFault", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPW0059M", + "ComponentInstance": null, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Environmental", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "The power sequencer chip detected a fault on VDD-A rail.", + "ReferencedInventory": "VDD-A", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Witherspoon.Fault.Error.PowerSequencerVoltageFault||VDD-B": { + "AffectedLEDs": null, + "AffectedSubsystem": "Power", + "BMCMessageID": "org.open_power.Witherspoon.Fault.Error.PowerSequencerVoltageFault", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPW0060M", + "ComponentInstance": null, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Environmental", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "The power sequencer chip detected a fault on VDD-B rail.", + "ReferencedInventory": "VDD-B", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Witherspoon.Fault.Error.PowerSequencerVoltageFault||VDN-A": { + "AffectedLEDs": null, + "AffectedSubsystem": "Power", + "BMCMessageID": "org.open_power.Witherspoon.Fault.Error.PowerSequencerVoltageFault", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPW0054M", + "ComponentInstance": null, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Environmental", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "The power sequencer chip detected a fault on VDN-A rail.", + "ReferencedInventory": "VDN-A", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Witherspoon.Fault.Error.PowerSequencerVoltageFault||VDN-B": { + "AffectedLEDs": null, + "AffectedSubsystem": "Power", + "BMCMessageID": "org.open_power.Witherspoon.Fault.Error.PowerSequencerVoltageFault", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPW0055M", + "ComponentInstance": null, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Environmental", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "The power sequencer chip detected a fault on VDN-B rail.", + "ReferencedInventory": "VDN-B", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Witherspoon.Fault.Error.PowerSequencerVoltageFault||VIO-A": { + "AffectedLEDs": null, + "AffectedSubsystem": "Power", + "BMCMessageID": "org.open_power.Witherspoon.Fault.Error.PowerSequencerVoltageFault", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPW0057M", + "ComponentInstance": null, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Environmental", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "The power sequencer chip detected a fault on VIO-A rail.", + "ReferencedInventory": "VIO-A", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Witherspoon.Fault.Error.PowerSequencerVoltageFault||VIO-B": { + "AffectedLEDs": null, + "AffectedSubsystem": "Power", + "BMCMessageID": "org.open_power.Witherspoon.Fault.Error.PowerSequencerVoltageFault", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPW0058M", + "ComponentInstance": null, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Environmental", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "The power sequencer chip detected a fault on VIO-B rail.", + "ReferencedInventory": "VIO-B", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Witherspoon.Fault.Error.PowerSupplyFanFault||/xyz/openbmc_project/inventory/system/chassis/motherboard/powersupply0": { + "AffectedLEDs": null, + "AffectedSubsystem": "Cooling", + "BMCMessageID": "org.open_power.Witherspoon.Fault.Error.PowerSupplyFanFault", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPCA0064M", + "ComponentInstance": 0, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Power supply 0 fan has failed", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/powersupply0", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Witherspoon.Fault.Error.PowerSupplyFanFault||/xyz/openbmc_project/inventory/system/chassis/motherboard/powersupply1": { + "AffectedLEDs": null, + "AffectedSubsystem": "Cooling", + "BMCMessageID": "org.open_power.Witherspoon.Fault.Error.PowerSupplyFanFault", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPCA0064M", + "ComponentInstance": 1, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Power supply 1 fan has failed", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/powersupply1", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Witherspoon.Fault.Error.PowerSupplyFanFault||/xyz/openbmc_project/inventory/system/chassis/powersupply0": { + "AffectedLEDs": null, + "AffectedSubsystem": "Cooling", + "BMCMessageID": "org.open_power.Witherspoon.Fault.Error.PowerSupplyFanFault", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPCA0064M", + "ComponentInstance": 0, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Power supply 0 fan has failed", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/powersupply0", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Witherspoon.Fault.Error.PowerSupplyFanFault||/xyz/openbmc_project/inventory/system/chassis/powersupply1": { + "AffectedLEDs": null, + "AffectedSubsystem": "Cooling", + "BMCMessageID": "org.open_power.Witherspoon.Fault.Error.PowerSupplyFanFault", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPCA0064M", + "ComponentInstance": 1, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Power supply 1 fan has failed", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/powersupply1", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Witherspoon.Fault.Error.PowerSupplyInputFault": { + "AffectedLEDs": null, + "AffectedSubsystem": "Power", + "BMCMessageID": "org.open_power.Witherspoon.Fault.Error.PowerSupplyInputFault", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPPW0064M", + "ComponentInstance": null, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Power supply input fault detected, but unable to isolate to a specific power supply", + "ReferencedInventory": null, + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Witherspoon.Fault.Error.PowerSupplyInputFault||/xyz/openbmc_project/inventory/system/chassis/motherboard/powersupply0": { + "AffectedLEDs": null, + "AffectedSubsystem": "Power", + "BMCMessageID": "org.open_power.Witherspoon.Fault.Error.PowerSupplyInputFault", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPPW0033M", + "ComponentInstance": 0, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Power supply 0 input fault detected", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/powersupply0", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Witherspoon.Fault.Error.PowerSupplyInputFault||/xyz/openbmc_project/inventory/system/chassis/motherboard/powersupply1": { + "AffectedLEDs": null, + "AffectedSubsystem": "Power", + "BMCMessageID": "org.open_power.Witherspoon.Fault.Error.PowerSupplyInputFault", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPPW0033M", + "ComponentInstance": 1, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Power supply 1 input fault detected", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/powersupply1", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Witherspoon.Fault.Error.PowerSupplyInputFault||/xyz/openbmc_project/inventory/system/chassis/powersupply0": { + "AffectedLEDs": null, + "AffectedSubsystem": "Power", + "BMCMessageID": "org.open_power.Witherspoon.Fault.Error.PowerSupplyInputFault", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPPW0033M", + "ComponentInstance": 0, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Power supply 0 input fault detected", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/powersupply0", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Witherspoon.Fault.Error.PowerSupplyInputFault||/xyz/openbmc_project/inventory/system/chassis/powersupply1": { + "AffectedLEDs": null, + "AffectedSubsystem": "Power", + "BMCMessageID": "org.open_power.Witherspoon.Fault.Error.PowerSupplyInputFault", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPPW0033M", + "ComponentInstance": 1, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Power supply 1 input fault detected", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/powersupply1", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Witherspoon.Fault.Error.PowerSupplyOutputOvercurrent||/xyz/openbmc_project/inventory/system/chassis/motherboard/powersupply0": { + "AffectedLEDs": null, + "AffectedSubsystem": "Power", + "BMCMessageID": "org.open_power.Witherspoon.Fault.Error.PowerSupplyOutputOvercurrent", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPW0035M", + "ComponentInstance": 0, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Power supply 0 output current is too high", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/powersupply0", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Witherspoon.Fault.Error.PowerSupplyOutputOvercurrent||/xyz/openbmc_project/inventory/system/chassis/motherboard/powersupply1": { + "AffectedLEDs": null, + "AffectedSubsystem": "Power", + "BMCMessageID": "org.open_power.Witherspoon.Fault.Error.PowerSupplyOutputOvercurrent", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPW0035M", + "ComponentInstance": 1, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Power supply 1 output current is too high", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/powersupply1", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Witherspoon.Fault.Error.PowerSupplyOutputOvercurrent||/xyz/openbmc_project/inventory/system/chassis/powersupply0": { + "AffectedLEDs": null, + "AffectedSubsystem": "Power", + "BMCMessageID": "org.open_power.Witherspoon.Fault.Error.PowerSupplyOutputOvercurrent", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPW0035M", + "ComponentInstance": 0, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Power supply 0 output current is too high", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/powersupply0", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Witherspoon.Fault.Error.PowerSupplyOutputOvercurrent||/xyz/openbmc_project/inventory/system/chassis/powersupply1": { + "AffectedLEDs": null, + "AffectedSubsystem": "Power", + "BMCMessageID": "org.open_power.Witherspoon.Fault.Error.PowerSupplyOutputOvercurrent", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPW0035M", + "ComponentInstance": 1, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Power supply 1 output current is too high", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/powersupply1", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Witherspoon.Fault.Error.PowerSupplyOutputOvervoltage||/xyz/openbmc_project/inventory/system/chassis/motherboard/powersupply0": { + "AffectedLEDs": null, + "AffectedSubsystem": "Power", + "BMCMessageID": "org.open_power.Witherspoon.Fault.Error.PowerSupplyOutputOvervoltage", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPW0036M", + "ComponentInstance": 0, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Power supply 0 output voltage is too high", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/powersupply0", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Witherspoon.Fault.Error.PowerSupplyOutputOvervoltage||/xyz/openbmc_project/inventory/system/chassis/motherboard/powersupply1": { + "AffectedLEDs": null, + "AffectedSubsystem": "Power", + "BMCMessageID": "org.open_power.Witherspoon.Fault.Error.PowerSupplyOutputOvervoltage", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPW0036M", + "ComponentInstance": 1, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Power supply 1 output voltage is too high", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/powersupply1", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Witherspoon.Fault.Error.PowerSupplyOutputOvervoltage||/xyz/openbmc_project/inventory/system/chassis/powersupply0": { + "AffectedLEDs": null, + "AffectedSubsystem": "Power", + "BMCMessageID": "org.open_power.Witherspoon.Fault.Error.PowerSupplyOutputOvervoltage", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPW0036M", + "ComponentInstance": 0, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Power supply 0 output voltage is too high", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/powersupply0", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Witherspoon.Fault.Error.PowerSupplyOutputOvervoltage||/xyz/openbmc_project/inventory/system/chassis/powersupply1": { + "AffectedLEDs": null, + "AffectedSubsystem": "Power", + "BMCMessageID": "org.open_power.Witherspoon.Fault.Error.PowerSupplyOutputOvervoltage", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPW0036M", + "ComponentInstance": 1, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Power supply 1 output voltage is too high", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/powersupply1", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Witherspoon.Fault.Error.PowerSupplyShouldBeOn||/xyz/openbmc_project/inventory/system/chassis/motherboard/powersupply0": { + "AffectedLEDs": null, + "AffectedSubsystem": "Power", + "BMCMessageID": "org.open_power.Witherspoon.Fault.Error.PowerSupplyShouldBeOn", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPW0034M", + "ComponentInstance": 0, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Power supply 0 has failed to power on when it needed to", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/powersupply0", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Witherspoon.Fault.Error.PowerSupplyShouldBeOn||/xyz/openbmc_project/inventory/system/chassis/motherboard/powersupply1": { + "AffectedLEDs": null, + "AffectedSubsystem": "Power", + "BMCMessageID": "org.open_power.Witherspoon.Fault.Error.PowerSupplyShouldBeOn", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPW0034M", + "ComponentInstance": 1, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Power supply 1 has failed to power on", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/powersupply1", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Witherspoon.Fault.Error.PowerSupplyShouldBeOn||/xyz/openbmc_project/inventory/system/chassis/powersupply0": { + "AffectedLEDs": null, + "AffectedSubsystem": "Power", + "BMCMessageID": "org.open_power.Witherspoon.Fault.Error.PowerSupplyShouldBeOn", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPW0034M", + "ComponentInstance": 0, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Power supply 0 has failed to power on when it needed to", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/powersupply0", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Witherspoon.Fault.Error.PowerSupplyShouldBeOn||/xyz/openbmc_project/inventory/system/chassis/powersupply1": { + "AffectedLEDs": null, + "AffectedSubsystem": "Power", + "BMCMessageID": "org.open_power.Witherspoon.Fault.Error.PowerSupplyShouldBeOn", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPW0034M", + "ComponentInstance": 1, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Power supply 1 has failed to power on", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/powersupply1", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Witherspoon.Fault.Error.PowerSupplyTemperatureFault||/xyz/openbmc_project/inventory/system/chassis/motherboard/powersupply0": { + "AffectedLEDs": null, + "AffectedSubsystem": "Cooling", + "BMCMessageID": "org.open_power.Witherspoon.Fault.Error.PowerSupplyTemperatureFault", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCA0065M", + "ComponentInstance": 0, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Environmental", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Power supply 0 is too hot", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/powersupply0", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Witherspoon.Fault.Error.PowerSupplyTemperatureFault||/xyz/openbmc_project/inventory/system/chassis/motherboard/powersupply1": { + "AffectedLEDs": null, + "AffectedSubsystem": "Cooling", + "BMCMessageID": "org.open_power.Witherspoon.Fault.Error.PowerSupplyTemperatureFault", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCA0065M", + "ComponentInstance": 1, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Environmental", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Power supply 1 is too hot", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/powersupply1", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Witherspoon.Fault.Error.PowerSupplyTemperatureFault||/xyz/openbmc_project/inventory/system/chassis/powersupply0": { + "AffectedLEDs": null, + "AffectedSubsystem": "Cooling", + "BMCMessageID": "org.open_power.Witherspoon.Fault.Error.PowerSupplyTemperatureFault", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCA0065M", + "ComponentInstance": 0, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Environmental", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Power supply 0 is too hot", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/powersupply0", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Witherspoon.Fault.Error.PowerSupplyTemperatureFault||/xyz/openbmc_project/inventory/system/chassis/powersupply1": { + "AffectedLEDs": null, + "AffectedSubsystem": "Cooling", + "BMCMessageID": "org.open_power.Witherspoon.Fault.Error.PowerSupplyTemperatureFault", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCA0065M", + "ComponentInstance": 1, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Environmental", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Power supply 1 is too hot", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/powersupply1", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Witherspoon.Fault.Error.PowerSupplyUnderVoltageFault||/xyz/openbmc_project/inventory/system/chassis/motherboard/powersupply0": { + "AffectedLEDs": null, + "AffectedSubsystem": "Power", + "BMCMessageID": "org.open_power.Witherspoon.Fault.Error.PowerSupplyUnderVoltageFault", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPPW0009M", + "ComponentInstance": 0, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Power supply 0 input voltage out of range", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/powersupply0", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Witherspoon.Fault.Error.PowerSupplyUnderVoltageFault||/xyz/openbmc_project/inventory/system/chassis/motherboard/powersupply1": { + "AffectedLEDs": null, + "AffectedSubsystem": "Power", + "BMCMessageID": "org.open_power.Witherspoon.Fault.Error.PowerSupplyUnderVoltageFault", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPPW0009M", + "ComponentInstance": 1, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Power supply 1 input voltage out of range", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/powersupply1", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Witherspoon.Fault.Error.PowerSupplyUnderVoltageFault||/xyz/openbmc_project/inventory/system/chassis/powersupply0": { + "AffectedLEDs": null, + "AffectedSubsystem": "Power", + "BMCMessageID": "org.open_power.Witherspoon.Fault.Error.PowerSupplyUnderVoltageFault", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPPW0009M", + "ComponentInstance": 0, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Power supply 0 input voltage out of range", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/powersupply0", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Witherspoon.Fault.Error.PowerSupplyUnderVoltageFault||/xyz/openbmc_project/inventory/system/chassis/powersupply1": { + "AffectedLEDs": null, + "AffectedSubsystem": "Power", + "BMCMessageID": "org.open_power.Witherspoon.Fault.Error.PowerSupplyUnderVoltageFault", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPPW0009M", + "ComponentInstance": 1, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Power supply 1 input voltage out of range", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/powersupply1", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Witherspoon.Fault.Error.Shutdown": { + "AffectedLEDs": null, + "AffectedSubsystem": "Power", + "BMCMessageID": "org.open_power.Witherspoon.Fault.Error.Shutdown", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPPW0063G", + "ComponentInstance": null, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "The system unexpectedly shutdown.", + "ReferencedInventory": null, + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Warning", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Witherspoon.Fault.Error.Shutdown||/xyz/openbmc_project/inventory/system/chassis/motherboard/powersupply0": { + "AffectedLEDs": null, + "AffectedSubsystem": "Power", + "BMCMessageID": "org.open_power.Witherspoon.Fault.Error.Shutdown", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPW0037M", + "ComponentInstance": 0, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Power supply 0 has initiated a power off due to a failure", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/powersupply0", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Witherspoon.Fault.Error.Shutdown||/xyz/openbmc_project/inventory/system/chassis/motherboard/powersupply1": { + "AffectedLEDs": null, + "AffectedSubsystem": "Power", + "BMCMessageID": "org.open_power.Witherspoon.Fault.Error.Shutdown", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPW0037M", + "ComponentInstance": 1, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Power supply 1 has initiated a power off due to a failure", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/powersupply1", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Witherspoon.Fault.Error.Shutdown||/xyz/openbmc_project/inventory/system/chassis/powersupply0": { + "AffectedLEDs": null, + "AffectedSubsystem": "Power", + "BMCMessageID": "org.open_power.Witherspoon.Fault.Error.Shutdown", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPW0037M", + "ComponentInstance": 0, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Power supply 0 has initiated a power off due to a failure", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/powersupply0", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Witherspoon.Fault.Error.Shutdown||/xyz/openbmc_project/inventory/system/chassis/powersupply1": { + "AffectedLEDs": null, + "AffectedSubsystem": "Power", + "BMCMessageID": "org.open_power.Witherspoon.Fault.Error.Shutdown", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPW0037M", + "ComponentInstance": 1, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Power supply 1 has initiated a power off due to a failure", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/powersupply1", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Witherspoon.Fault.GPUOverTemp||/xyz/openbmc_project/inventory/system/chassis/motherboard/gpu0": { + "AffectedLEDs": null, + "AffectedSubsystem": "Cooling", + "BMCMessageID": "org.open_power.Witherspoon.Fault.GPUOverTemp", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCA0066M", + "ComponentInstance": 0, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Environmental", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "GPU 0 suffered an over-temperature fault", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/gpu0", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Witherspoon.Fault.GPUOverTemp||/xyz/openbmc_project/inventory/system/chassis/motherboard/gpu1": { + "AffectedLEDs": null, + "AffectedSubsystem": "Cooling", + "BMCMessageID": "org.open_power.Witherspoon.Fault.GPUOverTemp", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCA0066M", + "ComponentInstance": 1, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Environmental", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "GPU 1 suffered an over-temperature fault", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/gpu1", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Witherspoon.Fault.GPUOverTemp||/xyz/openbmc_project/inventory/system/chassis/motherboard/gpu2": { + "AffectedLEDs": null, + "AffectedSubsystem": "Cooling", + "BMCMessageID": "org.open_power.Witherspoon.Fault.GPUOverTemp", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCA0066M", + "ComponentInstance": 2, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Environmental", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "GPU 2 suffered an over-temperature fault", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/gpu2", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Witherspoon.Fault.GPUOverTemp||/xyz/openbmc_project/inventory/system/chassis/motherboard/gpu3": { + "AffectedLEDs": null, + "AffectedSubsystem": "Cooling", + "BMCMessageID": "org.open_power.Witherspoon.Fault.GPUOverTemp", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCA0066M", + "ComponentInstance": 3, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Environmental", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "GPU 3 suffered an over-temperature fault", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/gpu3", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Witherspoon.Fault.GPUOverTemp||/xyz/openbmc_project/inventory/system/chassis/motherboard/gpu4": { + "AffectedLEDs": null, + "AffectedSubsystem": "Cooling", + "BMCMessageID": "org.open_power.Witherspoon.Fault.GPUOverTemp", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCA0066M", + "ComponentInstance": 4, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Environmental", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "GPU 4 suffered an over-temperature fault", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/gpu4", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Witherspoon.Fault.GPUOverTemp||/xyz/openbmc_project/inventory/system/chassis/motherboard/gpu5": { + "AffectedLEDs": null, + "AffectedSubsystem": "Cooling", + "BMCMessageID": "org.open_power.Witherspoon.Fault.GPUOverTemp", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCA0066M", + "ComponentInstance": 5, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Environmental", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "GPU 5 suffered an over-temperature fault", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/gpu5", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Witherspoon.Fault.GPUPowerFault||/xyz/openbmc_project/inventory/system/chassis/motherboard/gpu0": { + "AffectedLEDs": null, + "AffectedSubsystem": "Power", + "BMCMessageID": "org.open_power.Witherspoon.Fault.GPUPowerFault", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPPW0038M", + "ComponentInstance": 0, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Environmental", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "GPU 0 suffered a power fault", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/gpu0", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Witherspoon.Fault.GPUPowerFault||/xyz/openbmc_project/inventory/system/chassis/motherboard/gpu1": { + "AffectedLEDs": null, + "AffectedSubsystem": "Power", + "BMCMessageID": "org.open_power.Witherspoon.Fault.GPUPowerFault", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPPW0038M", + "ComponentInstance": 1, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Environmental", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "GPU 1 suffered a power fault", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/gpu1", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Witherspoon.Fault.GPUPowerFault||/xyz/openbmc_project/inventory/system/chassis/motherboard/gpu2": { + "AffectedLEDs": null, + "AffectedSubsystem": "Power", + "BMCMessageID": "org.open_power.Witherspoon.Fault.GPUPowerFault", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPPW0038M", + "ComponentInstance": 2, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Environmental", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "GPU 2 suffered a power fault", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/gpu2", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Witherspoon.Fault.GPUPowerFault||/xyz/openbmc_project/inventory/system/chassis/motherboard/gpu3": { + "AffectedLEDs": null, + "AffectedSubsystem": "Power", + "BMCMessageID": "org.open_power.Witherspoon.Fault.GPUPowerFault", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPPW0038M", + "ComponentInstance": 3, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Environmental", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "GPU 3 suffered a power fault", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/gpu3", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Witherspoon.Fault.GPUPowerFault||/xyz/openbmc_project/inventory/system/chassis/motherboard/gpu4": { + "AffectedLEDs": null, + "AffectedSubsystem": "Power", + "BMCMessageID": "org.open_power.Witherspoon.Fault.GPUPowerFault", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPPW0038M", + "ComponentInstance": 4, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Environmental", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "GPU 4 suffered a power fault", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/gpu4", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "org.open_power.Witherspoon.Fault.GPUPowerFault||/xyz/openbmc_project/inventory/system/chassis/motherboard/gpu5": { + "AffectedLEDs": null, + "AffectedSubsystem": "Power", + "BMCMessageID": "org.open_power.Witherspoon.Fault.GPUPowerFault", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPPW0038M", + "ComponentInstance": 5, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Environmental", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "GPU 5 suffered a power fault", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/gpu5", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Certs.Error.InvalidCertificate": { + "AffectedLEDs": null, + "AffectedSubsystem": "Systems Management - Core / Virtual Appliance", + "BMCMessageID": "xyz.openbmc_project.Certs.Error.InvalidCertificate", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCR0075G", + "ComponentInstance": null, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Firmware/Software Failure", + "Internal": false, + "LengthyDescription": "The provided certificate is not valid. The BMC will continue operating with the old certificate.", + "LogSource": "BMC", + "Message": "The provided certificate is not valid", + "ReferencedInventory": null, + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Warning", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Certs.Install.Error.InvalidCertificate": { + "AffectedLEDs": null, + "AffectedSubsystem": "Systems Management - Core / Virtual Appliance", + "BMCMessageID": "xyz.openbmc_project.Certs.Install.Error.InvalidCertificate", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCR0075G", + "ComponentInstance": null, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Firmware/Software Failure", + "Internal": false, + "LengthyDescription": "The provided certificate is not valid. The BMC will continue operating with the old certificate.", + "LogSource": "BMC", + "Message": "The provided certificate is not valid", + "ReferencedInventory": null, + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Warning", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Common.Callout.Error.Device||FSI": { + "AffectedLEDs": null, + "AffectedSubsystem": "Systems Management - Core / Virtual Appliance", + "BMCMessageID": "xyz.openbmc_project.Common.Callout.Error.Device", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCR0042F", + "ComponentInstance": null, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Communication Failure/Timeout", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "An error occurred on the FSI interface", + "ReferencedInventory": "FSI", + "RelatedEventIDs": {}, + "Serviceable": false, + "Severity": "Warning", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Common.Callout.Error.Device||I2C": { + "AffectedLEDs": null, + "AffectedSubsystem": "Systems Management - Core / Virtual Appliance", + "BMCMessageID": "xyz.openbmc_project.Common.Callout.Error.Device", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCR0041F", + "ComponentInstance": null, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Communication Failure/Timeout", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "An error occurred on the I2C interface", + "ReferencedInventory": "I2C", + "RelatedEventIDs": {}, + "Serviceable": false, + "Severity": "Warning", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Common.Callout.Error.GPIO||GPIO": { + "AffectedLEDs": null, + "AffectedSubsystem": "Systems Management - Core / Virtual Appliance", + "BMCMessageID": "xyz.openbmc_project.Common.Callout.Error.GPIO", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCR0077F", + "ComponentInstance": null, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Communication Failure/Timeout", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "An error occurred on the GPIO interface", + "ReferencedInventory": "GPIO", + "RelatedEventIDs": {}, + "Serviceable": false, + "Severity": "Warning", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Common.Callout.Error.IIC||I2C": { + "AffectedLEDs": null, + "AffectedSubsystem": "Systems Management - Core / Virtual Appliance", + "BMCMessageID": "xyz.openbmc_project.Common.Callout.Error.IIC", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCR0041F", + "ComponentInstance": null, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Communication Failure/Timeout", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "An error occurred on the I2C interface", + "ReferencedInventory": "I2C", + "RelatedEventIDs": {}, + "Serviceable": false, + "Severity": "Warning", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Common.Callout.Error.IPMISensor||IPMI": { + "AffectedLEDs": null, + "AffectedSubsystem": "Systems Management - Core / Virtual Appliance", + "BMCMessageID": "xyz.openbmc_project.Common.Callout.Error.IPMISensor", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCR0040F", + "ComponentInstance": null, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Communication Failure/Timeout", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "An error occurred working with an IPMI sensor", + "ReferencedInventory": "IPMI", + "RelatedEventIDs": {}, + "Serviceable": false, + "Severity": "Warning", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Common.Device.Error.ReadFailure||/sys/devices/platform/ahb/ahb:apb/ahb:apb:bus@1e78a000/1e78a100.i2c-bus/i2c-11/11-0064": { + "AffectedLEDs": null, + "AffectedSubsystem": "Systems Management - Core / Virtual Appliance", + "BMCMessageID": "xyz.openbmc_project.Common.Device.Error.ReadFailure", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCR0059F", + "ComponentInstance": null, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Communication Failure/Timeout", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Failed to read from the power sequencer chip on the system backplane", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard", + "RelatedEventIDs": {}, + "Serviceable": false, + "Severity": "Warning", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Common.Device.Error.ReadFailure||/sys/devices/platform/ahb/ahb:apb/ahb:apb:bus@1e78a000/1e78a100.i2c-bus/i2c-3/3-0068": { + "AffectedLEDs": null, + "AffectedSubsystem": "Systems Management - Core / Virtual Appliance", + "BMCMessageID": "xyz.openbmc_project.Common.Device.Error.ReadFailure", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCR0060F", + "ComponentInstance": 1, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Communication Failure/Timeout", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Failed to read from power supply 1", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/powersupply1", + "RelatedEventIDs": {}, + "Serviceable": false, + "Severity": "Warning", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Common.Device.Error.ReadFailure||/sys/devices/platform/ahb/ahb:apb/ahb:apb:bus@1e78a000/1e78a100.i2c-bus/i2c-3/3-0069": { + "AffectedLEDs": null, + "AffectedSubsystem": "Systems Management - Core / Virtual Appliance", + "BMCMessageID": "xyz.openbmc_project.Common.Device.Error.ReadFailure", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCR0060F", + "ComponentInstance": 0, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Communication Failure/Timeout", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Failed to read from power supply 0", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/powersupply0", + "RelatedEventIDs": {}, + "Serviceable": false, + "Severity": "Warning", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Common.Device.Error.ReadFailure||/sys/devices/platform/ahb/ahb:apb/ahb:apb:i2c@1e78a000/1e78a100.i2c-bus/i2c-11/11-0064": { + "AffectedLEDs": null, + "AffectedSubsystem": "Systems Management - Core / Virtual Appliance", + "BMCMessageID": "xyz.openbmc_project.Common.Device.Error.ReadFailure", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCR0059F", + "ComponentInstance": null, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Communication Failure/Timeout", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Failed to read from the power sequencer chip on the system backplane", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard", + "RelatedEventIDs": {}, + "Serviceable": false, + "Severity": "Warning", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Common.Device.Error.ReadFailure||/sys/devices/platform/ahb/ahb:apb/ahb:apb:i2c@1e78a000/1e78a100.i2c-bus/i2c-3/3-0068": { + "AffectedLEDs": null, + "AffectedSubsystem": "Systems Management - Core / Virtual Appliance", + "BMCMessageID": "xyz.openbmc_project.Common.Device.Error.ReadFailure", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCR0060F", + "ComponentInstance": 1, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Communication Failure/Timeout", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Failed to read from power supply 1", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/powersupply1", + "RelatedEventIDs": {}, + "Serviceable": false, + "Severity": "Warning", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Common.Device.Error.ReadFailure||/sys/devices/platform/ahb/ahb:apb/ahb:apb:i2c@1e78a000/1e78a100.i2c-bus/i2c-3/3-0069": { + "AffectedLEDs": null, + "AffectedSubsystem": "Systems Management - Core / Virtual Appliance", + "BMCMessageID": "xyz.openbmc_project.Common.Device.Error.ReadFailure", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCR0060F", + "ComponentInstance": 0, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Communication Failure/Timeout", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Failed to read from power supply 0", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/powersupply0", + "RelatedEventIDs": {}, + "Serviceable": false, + "Severity": "Warning", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Common.Device.Error.ReadFailure||/sys/devices/platform/gpio-fsi/fsi0/slave@00:00/00:00:00:0a/fsi1/slave@01:00/raw": { + "AffectedLEDs": null, + "AffectedSubsystem": "Systems Management - Core / Virtual Appliance", + "BMCMessageID": "xyz.openbmc_project.Common.Device.Error.ReadFailure", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCR0062F", + "ComponentInstance": 1, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Communication Failure/Timeout", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Failed to read from CPU 1 over FSI", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1", + "RelatedEventIDs": {}, + "Serviceable": false, + "Severity": "Warning", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Common.Device.Error.ReadFailure||/sys/devices/platform/gpio-fsi/fsi0/slave@00:00/raw": { + "AffectedLEDs": null, + "AffectedSubsystem": "Systems Management - Core / Virtual Appliance", + "BMCMessageID": "xyz.openbmc_project.Common.Device.Error.ReadFailure", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCR0062F", + "ComponentInstance": 0, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Communication Failure/Timeout", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Failed to read from CPU 0 over FSI", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0", + "RelatedEventIDs": {}, + "Serviceable": false, + "Severity": "Warning", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Common.Device.Error.ReadFailure||FSI": { + "AffectedLEDs": null, + "AffectedSubsystem": "Systems Management - Core / Virtual Appliance", + "BMCMessageID": "xyz.openbmc_project.Common.Device.Error.ReadFailure", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCR0033G", + "ComponentInstance": null, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Communication Failure/Timeout", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Failed to read from FSI Device", + "ReferencedInventory": "FSI", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Warning", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Common.Device.Error.ReadFailure||I2C": { + "AffectedLEDs": null, + "AffectedSubsystem": "Systems Management - Core / Virtual Appliance", + "BMCMessageID": "xyz.openbmc_project.Common.Device.Error.ReadFailure", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCR0024G", + "ComponentInstance": null, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Communication Failure/Timeout", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Failed to read from I2C Device", + "ReferencedInventory": "I2C", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Warning", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Common.Device.Error.WriteFailure||/sys/devices/platform/gpio-fsi/fsi0/slave@00:00/00:00:00:0a/fsi1/slave@01:00/raw": { + "AffectedLEDs": null, + "AffectedSubsystem": "Systems Management - Core / Virtual Appliance", + "BMCMessageID": "xyz.openbmc_project.Common.Device.Error.WriteFailure", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCR0061F", + "ComponentInstance": 1, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Communication Failure/Timeout", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Failed to write to CPU 1 over FSI", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1", + "RelatedEventIDs": {}, + "Serviceable": false, + "Severity": "Warning", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Common.Device.Error.WriteFailure||/sys/devices/platform/gpio-fsi/fsi0/slave@00:00/raw": { + "AffectedLEDs": null, + "AffectedSubsystem": "Systems Management - Core / Virtual Appliance", + "BMCMessageID": "xyz.openbmc_project.Common.Device.Error.WriteFailure", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCR0061F", + "ComponentInstance": 0, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Communication Failure/Timeout", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Failed to write to CPU 0 over FSI", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0", + "RelatedEventIDs": {}, + "Serviceable": false, + "Severity": "Warning", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Common.Device.Error.WriteFailure||FSI": { + "AffectedLEDs": null, + "AffectedSubsystem": "Systems Management - Core / Virtual Appliance", + "BMCMessageID": "xyz.openbmc_project.Common.Device.Error.WriteFailure", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCR0035G", + "ComponentInstance": null, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Communication Failure/Timeout", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Failed to write to FSI Device", + "ReferencedInventory": "FSI", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Warning", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Common.Device.Error.WriteFailure||I2C": { + "AffectedLEDs": null, + "AffectedSubsystem": "Systems Management - Core / Virtual Appliance", + "BMCMessageID": "xyz.openbmc_project.Common.Device.Error.WriteFailure", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCR0034G", + "ComponentInstance": null, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Communication Failure/Timeout", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Failed to write to I2C Device", + "ReferencedInventory": "I2C", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Warning", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Common.Error.InsufficientPermission": { + "AffectedLEDs": null, + "AffectedSubsystem": "Systems Management - Core / Virtual Appliance", + "BMCMessageID": "xyz.openbmc_project.Common.Error.InsufficientPermission", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCR0022F", + "ComponentInstance": null, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Security", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "The user has insufficient privileges", + "ReferencedInventory": null, + "RelatedEventIDs": {}, + "Serviceable": false, + "Severity": "Warning", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Common.Error.InternalFailure": { + "AffectedLEDs": null, + "AffectedSubsystem": "Systems Management - Core / Virtual Appliance", + "BMCMessageID": "xyz.openbmc_project.Common.Error.InternalFailure", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCR0021F", + "ComponentInstance": null, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Firmware/Software Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "An internal failure has occurred while performing an operation.", + "ReferencedInventory": null, + "RelatedEventIDs": {}, + "Serviceable": false, + "Severity": "Warning", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Common.Error.InvalidArgument": { + "AffectedLEDs": null, + "AffectedSubsystem": "Systems Management - Core / Virtual Appliance", + "BMCMessageID": "xyz.openbmc_project.Common.Error.InvalidArgument", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCR0030F", + "ComponentInstance": null, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Firmware/Software Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "An invalid argument was provided to a command", + "ReferencedInventory": null, + "RelatedEventIDs": {}, + "Serviceable": false, + "Severity": "Warning", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Common.Error.NoCACertificate": { + "AffectedLEDs": null, + "AffectedSubsystem": "Systems Management - Core / Virtual Appliance", + "BMCMessageID": "xyz.openbmc_project.Common.Error.NoCACertificate", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCR0076G", + "ComponentInstance": null, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Firmware/Software Failure", + "Internal": false, + "LengthyDescription": "Unable to validate the Certificate Authority (CA) for an external server, such as an LDAP server.", + "LogSource": "BMC", + "Message": "Unable to verify a server's CA certificate", + "ReferencedInventory": null, + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Warning", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Common.Error.NotAllowed": { + "AffectedLEDs": null, + "AffectedSubsystem": "Systems Management - Core / Virtual Appliance", + "BMCMessageID": "xyz.openbmc_project.Common.Error.NotAllowed", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCR0074G", + "ComponentInstance": null, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Firmware/Software Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "The specified operation is not allowed", + "ReferencedInventory": null, + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Warning", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Common.Error.Timeout": { + "AffectedLEDs": null, + "AffectedSubsystem": "Systems Management - Core / Virtual Appliance", + "BMCMessageID": "xyz.openbmc_project.Common.Error.Timeout", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCR0020F", + "ComponentInstance": null, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Monitoring Agent", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "An internal operation has timed out", + "ReferencedInventory": null, + "RelatedEventIDs": {}, + "Serviceable": false, + "Severity": "Warning", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Common.File.Error.Open": { + "AffectedLEDs": null, + "AffectedSubsystem": "Systems Management - Core / Virtual Appliance", + "BMCMessageID": "xyz.openbmc_project.Common.File.Error.Open", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCR0036F", + "ComponentInstance": null, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Firmware/Software Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Unable to open a file in BMC filesystem.", + "ReferencedInventory": null, + "RelatedEventIDs": {}, + "Serviceable": false, + "Severity": "Warning", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Common.File.Error.Seek": { + "AffectedLEDs": null, + "AffectedSubsystem": "Systems Management - Core / Virtual Appliance", + "BMCMessageID": "xyz.openbmc_project.Common.File.Error.Seek", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCR0037F", + "ComponentInstance": null, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Firmware/Software Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Unable to find a file in BMC filesystem.", + "ReferencedInventory": null, + "RelatedEventIDs": {}, + "Serviceable": false, + "Severity": "Warning", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Common.File.Error.Write": { + "AffectedLEDs": null, + "AffectedSubsystem": "Systems Management - Core / Virtual Appliance", + "BMCMessageID": "xyz.openbmc_project.Common.File.Error.Write", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCR0038F", + "ComponentInstance": null, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Firmware/Software Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Unable to write a file in BMC filesystem.", + "ReferencedInventory": null, + "RelatedEventIDs": {}, + "Serviceable": false, + "Severity": "Warning", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Control.Device.Error.WriteFailure||/xyz/openbmc_project/sensors/fan_tach/fan0_0": { + "AffectedLEDs": null, + "AffectedSubsystem": "Cooling", + "BMCMessageID": "xyz.openbmc_project.Control.Device.Error.WriteFailure", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCA0057M", + "ComponentInstance": 0, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Communication Failure/Timeout", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Unable to set fan speed for fan 0", + "ReferencedInventory": "/xyz/openbmc_project/sensors/fan_tach/fan0_0", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Control.Device.Error.WriteFailure||/xyz/openbmc_project/sensors/fan_tach/fan0_1": { + "AffectedLEDs": null, + "AffectedSubsystem": "Cooling", + "BMCMessageID": "xyz.openbmc_project.Control.Device.Error.WriteFailure", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCA0057M", + "ComponentInstance": 0, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Communication Failure/Timeout", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Unable to set fan speed for fan 0", + "ReferencedInventory": "/xyz/openbmc_project/sensors/fan_tach/fan0_1", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Control.Device.Error.WriteFailure||/xyz/openbmc_project/sensors/fan_tach/fan1_0": { + "AffectedLEDs": null, + "AffectedSubsystem": "Cooling", + "BMCMessageID": "xyz.openbmc_project.Control.Device.Error.WriteFailure", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCA0057M", + "ComponentInstance": 1, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Communication Failure/Timeout", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Unable to set fan speed for fan 1", + "ReferencedInventory": "/xyz/openbmc_project/sensors/fan_tach/fan1_0", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Control.Device.Error.WriteFailure||/xyz/openbmc_project/sensors/fan_tach/fan1_1": { + "AffectedLEDs": null, + "AffectedSubsystem": "Cooling", + "BMCMessageID": "xyz.openbmc_project.Control.Device.Error.WriteFailure", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCA0057M", + "ComponentInstance": 1, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Communication Failure/Timeout", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Unable to set fan speed for fan 1", + "ReferencedInventory": "/xyz/openbmc_project/sensors/fan_tach/fan1_1", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Control.Device.Error.WriteFailure||/xyz/openbmc_project/sensors/fan_tach/fan2_0": { + "AffectedLEDs": null, + "AffectedSubsystem": "Cooling", + "BMCMessageID": "xyz.openbmc_project.Control.Device.Error.WriteFailure", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCA0057M", + "ComponentInstance": 2, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Communication Failure/Timeout", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Unable to set fan speed for fan 2", + "ReferencedInventory": "/xyz/openbmc_project/sensors/fan_tach/fan2_0", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Control.Device.Error.WriteFailure||/xyz/openbmc_project/sensors/fan_tach/fan2_1": { + "AffectedLEDs": null, + "AffectedSubsystem": "Cooling", + "BMCMessageID": "xyz.openbmc_project.Control.Device.Error.WriteFailure", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCA0057M", + "ComponentInstance": 2, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Communication Failure/Timeout", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Unable to set fan speed for fan 2", + "ReferencedInventory": "/xyz/openbmc_project/sensors/fan_tach/fan2_1", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Control.Device.Error.WriteFailure||/xyz/openbmc_project/sensors/fan_tach/fan3_0": { + "AffectedLEDs": null, + "AffectedSubsystem": "Cooling", + "BMCMessageID": "xyz.openbmc_project.Control.Device.Error.WriteFailure", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCA0057M", + "ComponentInstance": 3, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Communication Failure/Timeout", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Unable to set fan speed for fan 3", + "ReferencedInventory": "/xyz/openbmc_project/sensors/fan_tach/fan3_0", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Control.Device.Error.WriteFailure||/xyz/openbmc_project/sensors/fan_tach/fan3_1": { + "AffectedLEDs": null, + "AffectedSubsystem": "Cooling", + "BMCMessageID": "xyz.openbmc_project.Control.Device.Error.WriteFailure", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCA0057M", + "ComponentInstance": 3, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Communication Failure/Timeout", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Unable to set fan speed for fan 3", + "ReferencedInventory": "/xyz/openbmc_project/sensors/fan_tach/fan3_1", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Control.Device.WriteFailure||/xyz/openbmc_project/sensors/fan_tach/fan0_0": { + "AffectedLEDs": null, + "AffectedSubsystem": "Cooling", + "BMCMessageID": "xyz.openbmc_project.Control.Device.WriteFailure", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCA0057M", + "ComponentInstance": 0, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Communication Failure/Timeout", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Unable to set fan speed for fan 0", + "ReferencedInventory": "/xyz/openbmc_project/sensors/fan_tach/fan0_0", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Control.Device.WriteFailure||/xyz/openbmc_project/sensors/fan_tach/fan0_1": { + "AffectedLEDs": null, + "AffectedSubsystem": "Cooling", + "BMCMessageID": "xyz.openbmc_project.Control.Device.WriteFailure", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCA0057M", + "ComponentInstance": 0, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Communication Failure/Timeout", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Unable to set fan speed for fan 0", + "ReferencedInventory": "/xyz/openbmc_project/sensors/fan_tach/fan0_1", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Control.Device.WriteFailure||/xyz/openbmc_project/sensors/fan_tach/fan1_0": { + "AffectedLEDs": null, + "AffectedSubsystem": "Cooling", + "BMCMessageID": "xyz.openbmc_project.Control.Device.WriteFailure", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCA0057M", + "ComponentInstance": 1, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Communication Failure/Timeout", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Unable to set fan speed for fan 1", + "ReferencedInventory": "/xyz/openbmc_project/sensors/fan_tach/fan1_0", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Control.Device.WriteFailure||/xyz/openbmc_project/sensors/fan_tach/fan1_1": { + "AffectedLEDs": null, + "AffectedSubsystem": "Cooling", + "BMCMessageID": "xyz.openbmc_project.Control.Device.WriteFailure", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCA0057M", + "ComponentInstance": 1, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Communication Failure/Timeout", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Unable to set fan speed for fan 1", + "ReferencedInventory": "/xyz/openbmc_project/sensors/fan_tach/fan1_1", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Control.Device.WriteFailure||/xyz/openbmc_project/sensors/fan_tach/fan2_0": { + "AffectedLEDs": null, + "AffectedSubsystem": "Cooling", + "BMCMessageID": "xyz.openbmc_project.Control.Device.WriteFailure", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCA0057M", + "ComponentInstance": 2, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Communication Failure/Timeout", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Unable to set fan speed for fan 2", + "ReferencedInventory": "/xyz/openbmc_project/sensors/fan_tach/fan2_0", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Control.Device.WriteFailure||/xyz/openbmc_project/sensors/fan_tach/fan2_1": { + "AffectedLEDs": null, + "AffectedSubsystem": "Cooling", + "BMCMessageID": "xyz.openbmc_project.Control.Device.WriteFailure", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCA0057M", + "ComponentInstance": 2, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Communication Failure/Timeout", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Unable to set fan speed for fan 2", + "ReferencedInventory": "/xyz/openbmc_project/sensors/fan_tach/fan2_1", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Control.Device.WriteFailure||/xyz/openbmc_project/sensors/fan_tach/fan3_0": { + "AffectedLEDs": null, + "AffectedSubsystem": "Cooling", + "BMCMessageID": "xyz.openbmc_project.Control.Device.WriteFailure", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCA0057M", + "ComponentInstance": 3, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Communication Failure/Timeout", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Unable to set fan speed for fan 3", + "ReferencedInventory": "/xyz/openbmc_project/sensors/fan_tach/fan3_0", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Control.Device.WriteFailure||/xyz/openbmc_project/sensors/fan_tach/fan3_1": { + "AffectedLEDs": null, + "AffectedSubsystem": "Cooling", + "BMCMessageID": "xyz.openbmc_project.Control.Device.WriteFailure", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCA0057M", + "ComponentInstance": 3, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Communication Failure/Timeout", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Unable to set fan speed for fan 3", + "ReferencedInventory": "/xyz/openbmc_project/sensors/fan_tach/fan3_1", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Control.Host.Error.CommandNotSupported": { + "AffectedLEDs": null, + "AffectedSubsystem": "Systems Management - Core / Virtual Appliance", + "BMCMessageID": "xyz.openbmc_project.Control.Host.Error.CommandNotSupported", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCR0039F", + "ComponentInstance": null, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Firmware/Software Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "An invalid host system control command was provided.", + "ReferencedInventory": null, + "RelatedEventIDs": {}, + "Serviceable": false, + "Severity": "Warning", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Dump.Create.Error.Disabled": { + "AffectedLEDs": null, + "AffectedSubsystem": "Systems Management - Data Management", + "BMCMessageID": "xyz.openbmc_project.Dump.Create.Error.Disabled", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPDM0000M", + "ComponentInstance": null, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Firmware/Software Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Unable to create a BMC dump due to dumps being disabled on this system.", + "ReferencedInventory": null, + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Dump.Create.Error.QuotaExceeded": { + "AffectedLEDs": null, + "AffectedSubsystem": "Systems Management - Data Management", + "BMCMessageID": "xyz.openbmc_project.Dump.Create.Error.QuotaExceeded", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPDM0001M", + "ComponentInstance": null, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Firmware/Software Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "There is no more space available for dump files. Please delete some.", + "ReferencedInventory": null, + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Host.Error.Checkstop": { + "AffectedLEDs": null, + "AffectedSubsystem": "Canister/Appliance", + "BMCMessageID": "xyz.openbmc_project.Host.Error.Checkstop", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPAA0007G", + "ComponentInstance": null, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "A system checkstop occurred", + "ReferencedInventory": null, + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Warning", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Host.Error.WatchdogTimedOut": { + "AffectedLEDs": null, + "AffectedSubsystem": "Systems Management - Core / Virtual Appliance", + "BMCMessageID": "xyz.openbmc_project.Host.Error.WatchdogTimedOut", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCR0023M", + "ComponentInstance": null, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Firmware/Software Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Hostboot has become unresponsive", + "ReferencedInventory": null, + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Host.Event.Error.Event||/xyz/openbmc_project/inventory/system": { + "AffectedLEDs": null, + "AffectedSubsystem": "Canister/Appliance", + "BMCMessageID": "xyz.openbmc_project.Host.Event.Error.Event", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPAA0008M", + "ComponentInstance": null, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Hostboot procedure callout", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Host.Event.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "xyz.openbmc_project.Host.Event.Error.Event", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0090M", + "ComponentInstance": 0, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 0 has failed", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Host.Event.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core0": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "xyz.openbmc_project.Host.Event.Error.Event", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0091M", + "ComponentInstance": "0,0", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 0 core 0 has failed", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core0", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Host.Event.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core1": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "xyz.openbmc_project.Host.Event.Error.Event", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0091M", + "ComponentInstance": "0,1", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 0 core 1 has failed", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core1", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Host.Event.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core10": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "xyz.openbmc_project.Host.Event.Error.Event", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0091M", + "ComponentInstance": "0,10", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 0 core 10 has failed", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core10", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Host.Event.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core11": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "xyz.openbmc_project.Host.Event.Error.Event", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0091M", + "ComponentInstance": "0,11", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 0 core 11 has failed", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core11", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Host.Event.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core12": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "xyz.openbmc_project.Host.Event.Error.Event", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0091M", + "ComponentInstance": "0,12", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 0 core 12 has failed", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core12", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Host.Event.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core13": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "xyz.openbmc_project.Host.Event.Error.Event", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0091M", + "ComponentInstance": "0,13", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 0 core 13 has failed", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core13", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Host.Event.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core14": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "xyz.openbmc_project.Host.Event.Error.Event", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0091M", + "ComponentInstance": "0,14", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 0 core 14 has failed", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core14", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Host.Event.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core15": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "xyz.openbmc_project.Host.Event.Error.Event", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0091M", + "ComponentInstance": "0,15", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 0 core 15 has failed", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core15", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Host.Event.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core16": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "xyz.openbmc_project.Host.Event.Error.Event", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0091M", + "ComponentInstance": "0,16", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 0 core 16 has failed", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core16", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Host.Event.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core17": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "xyz.openbmc_project.Host.Event.Error.Event", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0091M", + "ComponentInstance": "0,17", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 0 core 17 has failed", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core17", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Host.Event.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core18": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "xyz.openbmc_project.Host.Event.Error.Event", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0091M", + "ComponentInstance": "0,18", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 0 core 18 has failed", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core18", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Host.Event.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core19": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "xyz.openbmc_project.Host.Event.Error.Event", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0091M", + "ComponentInstance": "0,19", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 0 core 19 has failed", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core19", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Host.Event.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core2": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "xyz.openbmc_project.Host.Event.Error.Event", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0091M", + "ComponentInstance": "0,2", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 0 core 2 has failed", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core2", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Host.Event.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core20": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "xyz.openbmc_project.Host.Event.Error.Event", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0091M", + "ComponentInstance": "0,20", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 0 core 20 has failed", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core20", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Host.Event.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core21": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "xyz.openbmc_project.Host.Event.Error.Event", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0091M", + "ComponentInstance": "0,21", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 0 core 21 has failed", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core21", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Host.Event.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core22": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "xyz.openbmc_project.Host.Event.Error.Event", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0091M", + "ComponentInstance": "0,22", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 0 core 22 has failed", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core22", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Host.Event.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core23": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "xyz.openbmc_project.Host.Event.Error.Event", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0091M", + "ComponentInstance": "0,23", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 0 core 23 has failed", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core23", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Host.Event.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core3": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "xyz.openbmc_project.Host.Event.Error.Event", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0091M", + "ComponentInstance": "0,3", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 0 core 3 has failed", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core3", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Host.Event.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core4": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "xyz.openbmc_project.Host.Event.Error.Event", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0091M", + "ComponentInstance": "0,4", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 0 core 4 has failed", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core4", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Host.Event.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core5": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "xyz.openbmc_project.Host.Event.Error.Event", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0091M", + "ComponentInstance": "0,5", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 0 core 5 has failed", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core5", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Host.Event.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core6": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "xyz.openbmc_project.Host.Event.Error.Event", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0091M", + "ComponentInstance": "0,6", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 0 core 6 has failed", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core6", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Host.Event.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core7": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "xyz.openbmc_project.Host.Event.Error.Event", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0091M", + "ComponentInstance": "0,7", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 0 core 7 has failed", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core7", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Host.Event.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core8": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "xyz.openbmc_project.Host.Event.Error.Event", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0091M", + "ComponentInstance": "0,8", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 0 core 8 has failed", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core8", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Host.Event.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core9": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "xyz.openbmc_project.Host.Event.Error.Event", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0091M", + "ComponentInstance": "0,9", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 0 core 9 has failed", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core9", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Host.Event.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "xyz.openbmc_project.Host.Event.Error.Event", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0090M", + "ComponentInstance": 1, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 1 has failed", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Host.Event.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core0": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "xyz.openbmc_project.Host.Event.Error.Event", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0091M", + "ComponentInstance": "1,0", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 1 core 0 has failed", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core0", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Host.Event.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core1": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "xyz.openbmc_project.Host.Event.Error.Event", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0091M", + "ComponentInstance": "1,1", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 1 core 1 has failed", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core1", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Host.Event.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core10": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "xyz.openbmc_project.Host.Event.Error.Event", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0091M", + "ComponentInstance": "1,10", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 1 core 10 has failed", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core10", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Host.Event.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core11": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "xyz.openbmc_project.Host.Event.Error.Event", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0091M", + "ComponentInstance": "1,11", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 1 core 11 has failed", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core11", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Host.Event.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core12": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "xyz.openbmc_project.Host.Event.Error.Event", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0091M", + "ComponentInstance": "1,12", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 1 core 12 has failed", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core12", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Host.Event.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core13": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "xyz.openbmc_project.Host.Event.Error.Event", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0091M", + "ComponentInstance": "1,13", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 1 core 13 has failed", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core13", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Host.Event.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core14": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "xyz.openbmc_project.Host.Event.Error.Event", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0091M", + "ComponentInstance": "1,14", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 1 core 14 has failed", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core14", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Host.Event.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core15": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "xyz.openbmc_project.Host.Event.Error.Event", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0091M", + "ComponentInstance": "1,15", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 1 core 15 has failed", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core15", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Host.Event.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core16": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "xyz.openbmc_project.Host.Event.Error.Event", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0091M", + "ComponentInstance": "1,16", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 1 core 16 has failed", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core16", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Host.Event.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core17": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "xyz.openbmc_project.Host.Event.Error.Event", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0091M", + "ComponentInstance": "1,17", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 1 core 17 has failed", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core17", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Host.Event.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core18": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "xyz.openbmc_project.Host.Event.Error.Event", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0091M", + "ComponentInstance": "1,18", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 1 core 18 has failed", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core18", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Host.Event.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core19": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "xyz.openbmc_project.Host.Event.Error.Event", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0091M", + "ComponentInstance": "1,19", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 1 core 19 has failed", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core19", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Host.Event.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core2": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "xyz.openbmc_project.Host.Event.Error.Event", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0091M", + "ComponentInstance": "1,2", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 1 core 2 has failed", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core2", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Host.Event.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core20": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "xyz.openbmc_project.Host.Event.Error.Event", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0091M", + "ComponentInstance": "1,20", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 1 core 20 has failed", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core20", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Host.Event.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core21": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "xyz.openbmc_project.Host.Event.Error.Event", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0091M", + "ComponentInstance": "1,21", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 1 core 21 has failed", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core21", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Host.Event.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core22": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "xyz.openbmc_project.Host.Event.Error.Event", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0091M", + "ComponentInstance": "1,22", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 1 core 22 has failed", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core22", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Host.Event.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core23": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "xyz.openbmc_project.Host.Event.Error.Event", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0091M", + "ComponentInstance": "1,23", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 1 core 23 has failed", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core23", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Host.Event.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core3": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "xyz.openbmc_project.Host.Event.Error.Event", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0091M", + "ComponentInstance": "1,3", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 1 core 3 has failed", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core3", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Host.Event.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core4": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "xyz.openbmc_project.Host.Event.Error.Event", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0091M", + "ComponentInstance": "1,4", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 1 core 4 has failed", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core4", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Host.Event.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core5": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "xyz.openbmc_project.Host.Event.Error.Event", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0091M", + "ComponentInstance": "1,5", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 1 core 5 has failed", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core5", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Host.Event.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core6": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "xyz.openbmc_project.Host.Event.Error.Event", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0091M", + "ComponentInstance": "1,6", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 1 core 6 has failed", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core6", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Host.Event.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core7": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "xyz.openbmc_project.Host.Event.Error.Event", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0091M", + "ComponentInstance": "1,7", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 1 core 7 has failed", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core7", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Host.Event.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core8": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "xyz.openbmc_project.Host.Event.Error.Event", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0091M", + "ComponentInstance": "1,8", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 1 core 8 has failed", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core8", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Host.Event.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core9": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "xyz.openbmc_project.Host.Event.Error.Event", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0091M", + "ComponentInstance": "1,9", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 1 core 9 has failed", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core9", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Host.Event.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm0": { + "AffectedLEDs": null, + "AffectedSubsystem": "Memory", + "BMCMessageID": "xyz.openbmc_project.Host.Event.Error.Event", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPMA0057M", + "ComponentInstance": 0, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "DIMM 0 has failed", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm0", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Host.Event.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm1": { + "AffectedLEDs": null, + "AffectedSubsystem": "Memory", + "BMCMessageID": "xyz.openbmc_project.Host.Event.Error.Event", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPMA0057M", + "ComponentInstance": 1, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "DIMM 1 has failed", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm1", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Host.Event.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm10": { + "AffectedLEDs": null, + "AffectedSubsystem": "Memory", + "BMCMessageID": "xyz.openbmc_project.Host.Event.Error.Event", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPMA0057M", + "ComponentInstance": 10, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "DIMM 10 has failed", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm10", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Host.Event.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm11": { + "AffectedLEDs": null, + "AffectedSubsystem": "Memory", + "BMCMessageID": "xyz.openbmc_project.Host.Event.Error.Event", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPMA0057M", + "ComponentInstance": 11, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "DIMM 11 has failed", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm11", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Host.Event.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm12": { + "AffectedLEDs": null, + "AffectedSubsystem": "Memory", + "BMCMessageID": "xyz.openbmc_project.Host.Event.Error.Event", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPMA0057M", + "ComponentInstance": 12, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "DIMM 12 has failed", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm12", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Host.Event.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm13": { + "AffectedLEDs": null, + "AffectedSubsystem": "Memory", + "BMCMessageID": "xyz.openbmc_project.Host.Event.Error.Event", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPMA0057M", + "ComponentInstance": 13, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "DIMM 13 has failed", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm13", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Host.Event.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm14": { + "AffectedLEDs": null, + "AffectedSubsystem": "Memory", + "BMCMessageID": "xyz.openbmc_project.Host.Event.Error.Event", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPMA0057M", + "ComponentInstance": 14, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "DIMM 14 has failed", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm14", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Host.Event.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm15": { + "AffectedLEDs": null, + "AffectedSubsystem": "Memory", + "BMCMessageID": "xyz.openbmc_project.Host.Event.Error.Event", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPMA0057M", + "ComponentInstance": 15, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "DIMM 15 has failed", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm15", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Host.Event.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm2": { + "AffectedLEDs": null, + "AffectedSubsystem": "Memory", + "BMCMessageID": "xyz.openbmc_project.Host.Event.Error.Event", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPMA0057M", + "ComponentInstance": 2, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "DIMM 2 has failed", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm2", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Host.Event.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm3": { + "AffectedLEDs": null, + "AffectedSubsystem": "Memory", + "BMCMessageID": "xyz.openbmc_project.Host.Event.Error.Event", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPMA0057M", + "ComponentInstance": 3, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "DIMM 3 has failed", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm3", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Host.Event.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm4": { + "AffectedLEDs": null, + "AffectedSubsystem": "Memory", + "BMCMessageID": "xyz.openbmc_project.Host.Event.Error.Event", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPMA0057M", + "ComponentInstance": 4, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "DIMM 4 has failed", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm4", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Host.Event.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm5": { + "AffectedLEDs": null, + "AffectedSubsystem": "Memory", + "BMCMessageID": "xyz.openbmc_project.Host.Event.Error.Event", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPMA0057M", + "ComponentInstance": 5, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "DIMM 5 has failed", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm5", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Host.Event.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm6": { + "AffectedLEDs": null, + "AffectedSubsystem": "Memory", + "BMCMessageID": "xyz.openbmc_project.Host.Event.Error.Event", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPMA0057M", + "ComponentInstance": 6, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "DIMM 6 has failed", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm6", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Host.Event.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm7": { + "AffectedLEDs": null, + "AffectedSubsystem": "Memory", + "BMCMessageID": "xyz.openbmc_project.Host.Event.Error.Event", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPMA0057M", + "ComponentInstance": 7, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "DIMM 7 has failed", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm7", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Host.Event.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm8": { + "AffectedLEDs": null, + "AffectedSubsystem": "Memory", + "BMCMessageID": "xyz.openbmc_project.Host.Event.Error.Event", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPMA0057M", + "ComponentInstance": 8, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "DIMM 8 has failed", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm8", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Host.Event.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm9": { + "AffectedLEDs": null, + "AffectedSubsystem": "Memory", + "BMCMessageID": "xyz.openbmc_project.Host.Event.Error.Event", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPMA0057M", + "ComponentInstance": 9, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "DIMM 9 has failed", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm9", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Inventory.Error.Nonfunctional||/xyz/openbmc_project/inventory/system/chassis/motherboard": { + "AffectedLEDs": null, + "AffectedSubsystem": "System Board", + "BMCMessageID": "xyz.openbmc_project.Inventory.Error.Nonfunctional", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPSB0001M", + "ComponentInstance": null, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Uncorrectable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "The system backplane has encountered a critical failure.", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Inventory.Error.Nonfunctional||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "xyz.openbmc_project.Inventory.Error.Nonfunctional", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0088M", + "ComponentInstance": 0, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Uncorrectable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 0 is not functional", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Inventory.Error.Nonfunctional||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core0": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "xyz.openbmc_project.Inventory.Error.Nonfunctional", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0089M", + "ComponentInstance": "0,0", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Uncorrectable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 0 core 0 is not functional", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core0", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Inventory.Error.Nonfunctional||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core1": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "xyz.openbmc_project.Inventory.Error.Nonfunctional", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0089M", + "ComponentInstance": "0,1", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Uncorrectable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 0 core 1 is not functional", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core1", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Inventory.Error.Nonfunctional||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core10": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "xyz.openbmc_project.Inventory.Error.Nonfunctional", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0089M", + "ComponentInstance": "0,10", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Uncorrectable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 0 core 10 is not functional", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core10", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Inventory.Error.Nonfunctional||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core11": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "xyz.openbmc_project.Inventory.Error.Nonfunctional", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0089M", + "ComponentInstance": "0,11", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Uncorrectable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 0 core 11 is not functional", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core11", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Inventory.Error.Nonfunctional||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core12": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "xyz.openbmc_project.Inventory.Error.Nonfunctional", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0089M", + "ComponentInstance": "0,12", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Uncorrectable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 0 core 12 is not functional", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core12", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Inventory.Error.Nonfunctional||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core13": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "xyz.openbmc_project.Inventory.Error.Nonfunctional", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0089M", + "ComponentInstance": "0,13", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Uncorrectable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 0 core 13 is not functional", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core13", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Inventory.Error.Nonfunctional||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core14": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "xyz.openbmc_project.Inventory.Error.Nonfunctional", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0089M", + "ComponentInstance": "0,14", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Uncorrectable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 0 core 14 is not functional", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core14", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Inventory.Error.Nonfunctional||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core15": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "xyz.openbmc_project.Inventory.Error.Nonfunctional", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0089M", + "ComponentInstance": "0,15", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Uncorrectable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 0 core 15 is not functional", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core15", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Inventory.Error.Nonfunctional||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core16": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "xyz.openbmc_project.Inventory.Error.Nonfunctional", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0089M", + "ComponentInstance": "0,16", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Uncorrectable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 0 core 16 is not functional", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core16", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Inventory.Error.Nonfunctional||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core17": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "xyz.openbmc_project.Inventory.Error.Nonfunctional", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0089M", + "ComponentInstance": "0,17", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Uncorrectable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 0 core 17 is not functional", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core17", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Inventory.Error.Nonfunctional||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core18": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "xyz.openbmc_project.Inventory.Error.Nonfunctional", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0089M", + "ComponentInstance": "0,18", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Uncorrectable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 0 core 18 is not functional", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core18", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Inventory.Error.Nonfunctional||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core19": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "xyz.openbmc_project.Inventory.Error.Nonfunctional", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0089M", + "ComponentInstance": "0,19", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Uncorrectable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 0 core 19 is not functional", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core19", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Inventory.Error.Nonfunctional||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core2": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "xyz.openbmc_project.Inventory.Error.Nonfunctional", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0089M", + "ComponentInstance": "0,2", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Uncorrectable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 0 core 2 is not functional", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core2", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Inventory.Error.Nonfunctional||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core20": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "xyz.openbmc_project.Inventory.Error.Nonfunctional", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0089M", + "ComponentInstance": "0,20", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Uncorrectable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 0 core 20 is not functional", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core20", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Inventory.Error.Nonfunctional||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core21": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "xyz.openbmc_project.Inventory.Error.Nonfunctional", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0089M", + "ComponentInstance": "0,21", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Uncorrectable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 0 core 21 is not functional", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core21", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Inventory.Error.Nonfunctional||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core22": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "xyz.openbmc_project.Inventory.Error.Nonfunctional", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0089M", + "ComponentInstance": "0,22", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Uncorrectable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 0 core 22 is not functional", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core22", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Inventory.Error.Nonfunctional||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core23": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "xyz.openbmc_project.Inventory.Error.Nonfunctional", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0089M", + "ComponentInstance": "0,23", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Uncorrectable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 0 core 23 is not functional", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core23", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Inventory.Error.Nonfunctional||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core3": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "xyz.openbmc_project.Inventory.Error.Nonfunctional", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0089M", + "ComponentInstance": "0,3", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Uncorrectable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 0 core 3 is not functional", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core3", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Inventory.Error.Nonfunctional||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core4": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "xyz.openbmc_project.Inventory.Error.Nonfunctional", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0089M", + "ComponentInstance": "0,4", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Uncorrectable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 0 core 4 is not functional", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core4", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Inventory.Error.Nonfunctional||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core5": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "xyz.openbmc_project.Inventory.Error.Nonfunctional", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0089M", + "ComponentInstance": "0,5", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Uncorrectable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 0 core 5 is not functional", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core5", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Inventory.Error.Nonfunctional||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core6": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "xyz.openbmc_project.Inventory.Error.Nonfunctional", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0089M", + "ComponentInstance": "0,6", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Uncorrectable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 0 core 6 is not functional", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core6", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Inventory.Error.Nonfunctional||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core7": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "xyz.openbmc_project.Inventory.Error.Nonfunctional", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0089M", + "ComponentInstance": "0,7", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Uncorrectable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 0 core 7 is not functional", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core7", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Inventory.Error.Nonfunctional||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core8": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "xyz.openbmc_project.Inventory.Error.Nonfunctional", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0089M", + "ComponentInstance": "0,8", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Uncorrectable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 0 core 8 is not functional", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core8", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Inventory.Error.Nonfunctional||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core9": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "xyz.openbmc_project.Inventory.Error.Nonfunctional", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0089M", + "ComponentInstance": "0,9", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Uncorrectable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 0 core 9 is not functional", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core9", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Inventory.Error.Nonfunctional||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "xyz.openbmc_project.Inventory.Error.Nonfunctional", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0088M", + "ComponentInstance": 1, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Uncorrectable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 1 is not functional", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Inventory.Error.Nonfunctional||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core0": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "xyz.openbmc_project.Inventory.Error.Nonfunctional", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0089M", + "ComponentInstance": "1,0", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Uncorrectable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 1 core 0 is not functional", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core0", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Inventory.Error.Nonfunctional||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core1": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "xyz.openbmc_project.Inventory.Error.Nonfunctional", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0089M", + "ComponentInstance": "1,1", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Uncorrectable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 1 core 1 is not functional", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core1", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Inventory.Error.Nonfunctional||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core10": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "xyz.openbmc_project.Inventory.Error.Nonfunctional", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0089M", + "ComponentInstance": "1,10", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Uncorrectable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 1 core 10 is not functional", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core10", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Inventory.Error.Nonfunctional||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core11": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "xyz.openbmc_project.Inventory.Error.Nonfunctional", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0089M", + "ComponentInstance": "1,11", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Uncorrectable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 1 core 11 is not functional", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core11", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Inventory.Error.Nonfunctional||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core12": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "xyz.openbmc_project.Inventory.Error.Nonfunctional", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0089M", + "ComponentInstance": "1,12", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Uncorrectable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 1 core 12 is not functional", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core12", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Inventory.Error.Nonfunctional||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core13": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "xyz.openbmc_project.Inventory.Error.Nonfunctional", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0089M", + "ComponentInstance": "1,13", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Uncorrectable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 1 core 13 is not functional", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core13", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Inventory.Error.Nonfunctional||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core14": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "xyz.openbmc_project.Inventory.Error.Nonfunctional", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0089M", + "ComponentInstance": "1,14", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Uncorrectable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 1 core 14 is not functional", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core14", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Inventory.Error.Nonfunctional||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core15": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "xyz.openbmc_project.Inventory.Error.Nonfunctional", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0089M", + "ComponentInstance": "1,15", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Uncorrectable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 1 core 15 is not functional", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core15", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Inventory.Error.Nonfunctional||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core16": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "xyz.openbmc_project.Inventory.Error.Nonfunctional", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0089M", + "ComponentInstance": "1,16", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Uncorrectable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 1 core 16 is not functional", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core16", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Inventory.Error.Nonfunctional||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core17": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "xyz.openbmc_project.Inventory.Error.Nonfunctional", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0089M", + "ComponentInstance": "1,17", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Uncorrectable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 1 core 17 is not functional", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core17", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Inventory.Error.Nonfunctional||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core18": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "xyz.openbmc_project.Inventory.Error.Nonfunctional", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0089M", + "ComponentInstance": "1,18", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Uncorrectable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 1 core 18 is not functional", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core18", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Inventory.Error.Nonfunctional||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core19": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "xyz.openbmc_project.Inventory.Error.Nonfunctional", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0089M", + "ComponentInstance": "1,19", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Uncorrectable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 1 core 19 is not functional", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core19", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Inventory.Error.Nonfunctional||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core2": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "xyz.openbmc_project.Inventory.Error.Nonfunctional", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0089M", + "ComponentInstance": "1,2", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Uncorrectable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 1 core 2 is not functional", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core2", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Inventory.Error.Nonfunctional||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core20": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "xyz.openbmc_project.Inventory.Error.Nonfunctional", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0089M", + "ComponentInstance": "1,20", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Uncorrectable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 1 core 20 is not functional", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core20", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Inventory.Error.Nonfunctional||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core21": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "xyz.openbmc_project.Inventory.Error.Nonfunctional", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0089M", + "ComponentInstance": "1,21", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Uncorrectable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 1 core 21 is not functional", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core21", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Inventory.Error.Nonfunctional||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core22": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "xyz.openbmc_project.Inventory.Error.Nonfunctional", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0089M", + "ComponentInstance": "1,22", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Uncorrectable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 1 core 22 is not functional", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core22", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Inventory.Error.Nonfunctional||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core23": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "xyz.openbmc_project.Inventory.Error.Nonfunctional", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0089M", + "ComponentInstance": "1,23", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Uncorrectable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 1 core 23 is not functional", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core23", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Inventory.Error.Nonfunctional||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core3": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "xyz.openbmc_project.Inventory.Error.Nonfunctional", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0089M", + "ComponentInstance": "1,3", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Uncorrectable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 1 core 3 is not functional", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core3", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Inventory.Error.Nonfunctional||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core4": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "xyz.openbmc_project.Inventory.Error.Nonfunctional", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0089M", + "ComponentInstance": "1,4", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Uncorrectable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 1 core 4 is not functional", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core4", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Inventory.Error.Nonfunctional||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core5": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "xyz.openbmc_project.Inventory.Error.Nonfunctional", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0089M", + "ComponentInstance": "1,5", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Uncorrectable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 1 core 5 is not functional", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core5", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Inventory.Error.Nonfunctional||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core6": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "xyz.openbmc_project.Inventory.Error.Nonfunctional", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0089M", + "ComponentInstance": "1,6", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Uncorrectable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 1 core 6 is not functional", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core6", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Inventory.Error.Nonfunctional||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core7": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "xyz.openbmc_project.Inventory.Error.Nonfunctional", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0089M", + "ComponentInstance": "1,7", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Uncorrectable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 1 core 7 is not functional", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core7", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Inventory.Error.Nonfunctional||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core8": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "xyz.openbmc_project.Inventory.Error.Nonfunctional", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0089M", + "ComponentInstance": "1,8", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Uncorrectable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 1 core 8 is not functional", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core8", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Inventory.Error.Nonfunctional||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core9": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "xyz.openbmc_project.Inventory.Error.Nonfunctional", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0089M", + "ComponentInstance": "1,9", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Uncorrectable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 1 core 9 is not functional", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core9", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Inventory.Error.Nonfunctional||/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm0": { + "AffectedLEDs": null, + "AffectedSubsystem": "Memory", + "BMCMessageID": "xyz.openbmc_project.Inventory.Error.Nonfunctional", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPMA0056M", + "ComponentInstance": 0, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Uncorrectable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "DIMM 0 is not functional", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm0", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Inventory.Error.Nonfunctional||/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm1": { + "AffectedLEDs": null, + "AffectedSubsystem": "Memory", + "BMCMessageID": "xyz.openbmc_project.Inventory.Error.Nonfunctional", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPMA0056M", + "ComponentInstance": 1, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Uncorrectable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "DIMM 1 is not functional", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm1", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Inventory.Error.Nonfunctional||/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm10": { + "AffectedLEDs": null, + "AffectedSubsystem": "Memory", + "BMCMessageID": "xyz.openbmc_project.Inventory.Error.Nonfunctional", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPMA0056M", + "ComponentInstance": 10, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Uncorrectable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "DIMM 10 is not functional", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm10", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Inventory.Error.Nonfunctional||/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm11": { + "AffectedLEDs": null, + "AffectedSubsystem": "Memory", + "BMCMessageID": "xyz.openbmc_project.Inventory.Error.Nonfunctional", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPMA0056M", + "ComponentInstance": 11, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Uncorrectable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "DIMM 11 is not functional", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm11", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Inventory.Error.Nonfunctional||/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm12": { + "AffectedLEDs": null, + "AffectedSubsystem": "Memory", + "BMCMessageID": "xyz.openbmc_project.Inventory.Error.Nonfunctional", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPMA0056M", + "ComponentInstance": 12, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Uncorrectable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "DIMM 12 is not functional", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm12", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Inventory.Error.Nonfunctional||/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm13": { + "AffectedLEDs": null, + "AffectedSubsystem": "Memory", + "BMCMessageID": "xyz.openbmc_project.Inventory.Error.Nonfunctional", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPMA0056M", + "ComponentInstance": 13, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Uncorrectable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "DIMM 13 is not functional", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm13", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Inventory.Error.Nonfunctional||/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm14": { + "AffectedLEDs": null, + "AffectedSubsystem": "Memory", + "BMCMessageID": "xyz.openbmc_project.Inventory.Error.Nonfunctional", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPMA0056M", + "ComponentInstance": 14, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Uncorrectable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "DIMM 14 is not functional", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm14", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Inventory.Error.Nonfunctional||/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm15": { + "AffectedLEDs": null, + "AffectedSubsystem": "Memory", + "BMCMessageID": "xyz.openbmc_project.Inventory.Error.Nonfunctional", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPMA0056M", + "ComponentInstance": 15, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Uncorrectable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "DIMM 15 is not functional", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm15", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Inventory.Error.Nonfunctional||/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm2": { + "AffectedLEDs": null, + "AffectedSubsystem": "Memory", + "BMCMessageID": "xyz.openbmc_project.Inventory.Error.Nonfunctional", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPMA0056M", + "ComponentInstance": 2, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Uncorrectable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "DIMM 2 is not functional", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm2", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Inventory.Error.Nonfunctional||/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm3": { + "AffectedLEDs": null, + "AffectedSubsystem": "Memory", + "BMCMessageID": "xyz.openbmc_project.Inventory.Error.Nonfunctional", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPMA0056M", + "ComponentInstance": 3, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Uncorrectable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "DIMM 3 is not functional", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm3", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Inventory.Error.Nonfunctional||/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm4": { + "AffectedLEDs": null, + "AffectedSubsystem": "Memory", + "BMCMessageID": "xyz.openbmc_project.Inventory.Error.Nonfunctional", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPMA0056M", + "ComponentInstance": 4, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Uncorrectable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "DIMM 4 is not functional", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm4", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Inventory.Error.Nonfunctional||/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm5": { + "AffectedLEDs": null, + "AffectedSubsystem": "Memory", + "BMCMessageID": "xyz.openbmc_project.Inventory.Error.Nonfunctional", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPMA0056M", + "ComponentInstance": 5, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Uncorrectable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "DIMM 5 is not functional", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm5", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Inventory.Error.Nonfunctional||/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm6": { + "AffectedLEDs": null, + "AffectedSubsystem": "Memory", + "BMCMessageID": "xyz.openbmc_project.Inventory.Error.Nonfunctional", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPMA0056M", + "ComponentInstance": 6, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Uncorrectable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "DIMM 6 is not functional", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm6", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Inventory.Error.Nonfunctional||/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm7": { + "AffectedLEDs": null, + "AffectedSubsystem": "Memory", + "BMCMessageID": "xyz.openbmc_project.Inventory.Error.Nonfunctional", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPMA0056M", + "ComponentInstance": 7, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Uncorrectable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "DIMM 7 is not functional", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm7", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Inventory.Error.Nonfunctional||/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm8": { + "AffectedLEDs": null, + "AffectedSubsystem": "Memory", + "BMCMessageID": "xyz.openbmc_project.Inventory.Error.Nonfunctional", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPMA0056M", + "ComponentInstance": 8, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Uncorrectable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "DIMM 8 is not functional", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm8", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Inventory.Error.Nonfunctional||/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm9": { + "AffectedLEDs": null, + "AffectedSubsystem": "Memory", + "BMCMessageID": "xyz.openbmc_project.Inventory.Error.Nonfunctional", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPMA0056M", + "ComponentInstance": 9, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Uncorrectable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "DIMM 9 is not functional", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm9", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Inventory.Error.Nonfunctional||/xyz/openbmc_project/inventory/system/chassis/motherboard/fan0": { + "AffectedLEDs": null, + "AffectedSubsystem": "Cooling", + "BMCMessageID": "xyz.openbmc_project.Inventory.Error.Nonfunctional", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPCA0056M", + "ComponentInstance": 0, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Uncorrectable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Fan 0 is not functional", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/fan0", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Inventory.Error.Nonfunctional||/xyz/openbmc_project/inventory/system/chassis/motherboard/fan1": { + "AffectedLEDs": null, + "AffectedSubsystem": "Cooling", + "BMCMessageID": "xyz.openbmc_project.Inventory.Error.Nonfunctional", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPCA0056M", + "ComponentInstance": 1, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Uncorrectable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Fan 1 is not functional", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/fan1", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Inventory.Error.Nonfunctional||/xyz/openbmc_project/inventory/system/chassis/motherboard/fan2": { + "AffectedLEDs": null, + "AffectedSubsystem": "Cooling", + "BMCMessageID": "xyz.openbmc_project.Inventory.Error.Nonfunctional", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPCA0056M", + "ComponentInstance": 2, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Uncorrectable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Fan 2 is not functional", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/fan2", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Inventory.Error.Nonfunctional||/xyz/openbmc_project/inventory/system/chassis/motherboard/fan3": { + "AffectedLEDs": null, + "AffectedSubsystem": "Cooling", + "BMCMessageID": "xyz.openbmc_project.Inventory.Error.Nonfunctional", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPCA0056M", + "ComponentInstance": 3, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Uncorrectable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Fan 3 is not functional", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/fan3", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Inventory.Error.Nonfunctional||/xyz/openbmc_project/inventory/system/chassis/power_supply0": { + "AffectedLEDs": null, + "AffectedSubsystem": "Power", + "BMCMessageID": "xyz.openbmc_project.Inventory.Error.Nonfunctional", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPW0022M", + "ComponentInstance": 0, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Uncorrectable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Power Supply 0 is not functional", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/power_supply0", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Inventory.Error.Nonfunctional||/xyz/openbmc_project/inventory/system/chassis/power_supply1": { + "AffectedLEDs": null, + "AffectedSubsystem": "Power", + "BMCMessageID": "xyz.openbmc_project.Inventory.Error.Nonfunctional", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPW0022M", + "ComponentInstance": 1, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Uncorrectable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Power Supply 1 is not functional", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/power_supply1", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Inventory.Error.NotPresent||/xyz/openbmc_project/inventory/system/chassis/motherboard": { + "AffectedLEDs": null, + "AffectedSubsystem": "System Board", + "BMCMessageID": "xyz.openbmc_project.Inventory.Error.NotPresent", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPSB0012M", + "ComponentInstance": null, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Uncorrectable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "The system backplane could not be detected", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Inventory.Error.NotPresent||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "xyz.openbmc_project.Inventory.Error.NotPresent", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0085M", + "ComponentInstance": 0, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Uncorrectable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 0 has not been detected", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Inventory.Error.NotPresent||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core0": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "xyz.openbmc_project.Inventory.Error.NotPresent", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0087M", + "ComponentInstance": "0,0", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Uncorrectable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 0 core 0 has not been detected", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core0", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Inventory.Error.NotPresent||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core1": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "xyz.openbmc_project.Inventory.Error.NotPresent", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0087M", + "ComponentInstance": "0,1", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Uncorrectable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 0 core 1 has not been detected", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core1", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Inventory.Error.NotPresent||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core10": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "xyz.openbmc_project.Inventory.Error.NotPresent", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0087M", + "ComponentInstance": "0,10", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Uncorrectable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 0 core 10 has not been detected", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core10", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Inventory.Error.NotPresent||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core11": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "xyz.openbmc_project.Inventory.Error.NotPresent", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0087M", + "ComponentInstance": "0,11", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Uncorrectable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 0 core 11 has not been detected", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core11", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Inventory.Error.NotPresent||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core12": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "xyz.openbmc_project.Inventory.Error.NotPresent", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0087M", + "ComponentInstance": "0,12", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Uncorrectable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 0 core 12 has not been detected", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core12", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Inventory.Error.NotPresent||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core13": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "xyz.openbmc_project.Inventory.Error.NotPresent", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0087M", + "ComponentInstance": "0,13", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Uncorrectable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 0 core 13 has not been detected", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core13", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Inventory.Error.NotPresent||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core14": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "xyz.openbmc_project.Inventory.Error.NotPresent", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0087M", + "ComponentInstance": "0,14", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Uncorrectable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 0 core 14 has not been detected", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core14", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Inventory.Error.NotPresent||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core15": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "xyz.openbmc_project.Inventory.Error.NotPresent", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0087M", + "ComponentInstance": "0,15", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Uncorrectable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 0 core 15 has not been detected", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core15", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Inventory.Error.NotPresent||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core16": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "xyz.openbmc_project.Inventory.Error.NotPresent", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0087M", + "ComponentInstance": "0,16", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Uncorrectable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 0 core 16 has not been detected", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core16", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Inventory.Error.NotPresent||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core17": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "xyz.openbmc_project.Inventory.Error.NotPresent", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0087M", + "ComponentInstance": "0,17", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Uncorrectable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 0 core 17 has not been detected", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core17", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Inventory.Error.NotPresent||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core18": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "xyz.openbmc_project.Inventory.Error.NotPresent", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0087M", + "ComponentInstance": "0,18", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Uncorrectable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 0 core 18 has not been detected", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core18", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Inventory.Error.NotPresent||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core19": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "xyz.openbmc_project.Inventory.Error.NotPresent", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0087M", + "ComponentInstance": "0,19", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Uncorrectable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 0 core 19 has not been detected", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core19", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Inventory.Error.NotPresent||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core2": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "xyz.openbmc_project.Inventory.Error.NotPresent", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0087M", + "ComponentInstance": "0,2", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Uncorrectable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 0 core 2 has not been detected", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core2", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Inventory.Error.NotPresent||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core20": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "xyz.openbmc_project.Inventory.Error.NotPresent", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0087M", + "ComponentInstance": "0,20", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Uncorrectable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 0 core 20 has not been detected", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core20", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Inventory.Error.NotPresent||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core21": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "xyz.openbmc_project.Inventory.Error.NotPresent", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0087M", + "ComponentInstance": "0,21", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Uncorrectable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 0 core 21 has not been detected", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core21", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Inventory.Error.NotPresent||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core22": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "xyz.openbmc_project.Inventory.Error.NotPresent", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0087M", + "ComponentInstance": "0,22", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Uncorrectable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 0 core 22 has not been detected", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core22", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Inventory.Error.NotPresent||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core23": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "xyz.openbmc_project.Inventory.Error.NotPresent", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0087M", + "ComponentInstance": "0,23", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Uncorrectable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 0 core 23 has not been detected", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core23", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Inventory.Error.NotPresent||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core3": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "xyz.openbmc_project.Inventory.Error.NotPresent", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0087M", + "ComponentInstance": "0,3", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Uncorrectable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 0 core 3 has not been detected", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core3", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Inventory.Error.NotPresent||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core4": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "xyz.openbmc_project.Inventory.Error.NotPresent", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0087M", + "ComponentInstance": "0,4", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Uncorrectable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 0 core 4 has not been detected", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core4", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Inventory.Error.NotPresent||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core5": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "xyz.openbmc_project.Inventory.Error.NotPresent", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0087M", + "ComponentInstance": "0,5", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Uncorrectable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 0 core 5 has not been detected", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core5", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Inventory.Error.NotPresent||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core6": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "xyz.openbmc_project.Inventory.Error.NotPresent", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0087M", + "ComponentInstance": "0,6", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Uncorrectable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 0 core 6 has not been detected", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core6", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Inventory.Error.NotPresent||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core7": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "xyz.openbmc_project.Inventory.Error.NotPresent", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0087M", + "ComponentInstance": "0,7", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Uncorrectable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 0 core 7 has not been detected", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core7", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Inventory.Error.NotPresent||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core8": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "xyz.openbmc_project.Inventory.Error.NotPresent", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0087M", + "ComponentInstance": "0,8", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Uncorrectable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 0 core 8 has not been detected", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core8", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Inventory.Error.NotPresent||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core9": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "xyz.openbmc_project.Inventory.Error.NotPresent", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0087M", + "ComponentInstance": "0,9", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Uncorrectable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 0 core 9 has not been detected", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core9", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Inventory.Error.NotPresent||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "xyz.openbmc_project.Inventory.Error.NotPresent", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0085M", + "ComponentInstance": 1, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Uncorrectable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 1 has not been detected", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Inventory.Error.NotPresent||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core0": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "xyz.openbmc_project.Inventory.Error.NotPresent", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0087M", + "ComponentInstance": "1,0", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Uncorrectable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 1 core 0 has not been detected", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core0", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Inventory.Error.NotPresent||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core1": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "xyz.openbmc_project.Inventory.Error.NotPresent", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0087M", + "ComponentInstance": "1,1", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Uncorrectable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 1 core 1 has not been detected", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core1", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Inventory.Error.NotPresent||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core10": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "xyz.openbmc_project.Inventory.Error.NotPresent", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0087M", + "ComponentInstance": "1,10", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Uncorrectable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 1 core 10 has not been detected", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core10", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Inventory.Error.NotPresent||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core11": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "xyz.openbmc_project.Inventory.Error.NotPresent", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0087M", + "ComponentInstance": "1,11", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Uncorrectable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 1 core 11 has not been detected", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core11", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Inventory.Error.NotPresent||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core12": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "xyz.openbmc_project.Inventory.Error.NotPresent", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0087M", + "ComponentInstance": "1,12", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Uncorrectable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 1 core 12 has not been detected", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core12", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Inventory.Error.NotPresent||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core13": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "xyz.openbmc_project.Inventory.Error.NotPresent", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0087M", + "ComponentInstance": "1,13", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Uncorrectable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 1 core 13 has not been detected", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core13", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Inventory.Error.NotPresent||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core14": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "xyz.openbmc_project.Inventory.Error.NotPresent", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0087M", + "ComponentInstance": "1,14", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Uncorrectable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 1 core 14 has not been detected", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core14", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Inventory.Error.NotPresent||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core15": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "xyz.openbmc_project.Inventory.Error.NotPresent", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0087M", + "ComponentInstance": "1,15", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Uncorrectable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 1 core 15 has not been detected", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core15", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Inventory.Error.NotPresent||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core16": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "xyz.openbmc_project.Inventory.Error.NotPresent", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0087M", + "ComponentInstance": "1,16", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Uncorrectable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 1 core 16 has not been detected", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core16", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Inventory.Error.NotPresent||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core17": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "xyz.openbmc_project.Inventory.Error.NotPresent", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0087M", + "ComponentInstance": "1,17", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Uncorrectable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 1 core 17 has not been detected", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core17", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Inventory.Error.NotPresent||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core18": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "xyz.openbmc_project.Inventory.Error.NotPresent", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0087M", + "ComponentInstance": "1,18", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Uncorrectable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 1 core 18 has not been detected", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core18", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Inventory.Error.NotPresent||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core19": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "xyz.openbmc_project.Inventory.Error.NotPresent", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0087M", + "ComponentInstance": "1,19", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Uncorrectable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 1 core 19 has not been detected", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core19", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Inventory.Error.NotPresent||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core2": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "xyz.openbmc_project.Inventory.Error.NotPresent", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0087M", + "ComponentInstance": "1,2", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Uncorrectable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 1 core 2 has not been detected", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core2", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Inventory.Error.NotPresent||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core20": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "xyz.openbmc_project.Inventory.Error.NotPresent", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0087M", + "ComponentInstance": "1,20", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Uncorrectable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 1 core 20 has not been detected", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core20", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Inventory.Error.NotPresent||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core21": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "xyz.openbmc_project.Inventory.Error.NotPresent", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0087M", + "ComponentInstance": "1,21", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Uncorrectable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 1 core 21 has not been detected", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core21", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Inventory.Error.NotPresent||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core22": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "xyz.openbmc_project.Inventory.Error.NotPresent", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0087M", + "ComponentInstance": "1,22", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Uncorrectable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 1 core 22 has not been detected", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core22", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Inventory.Error.NotPresent||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core23": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "xyz.openbmc_project.Inventory.Error.NotPresent", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0087M", + "ComponentInstance": "1,23", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Uncorrectable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 1 core 23 has not been detected", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core23", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Inventory.Error.NotPresent||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core3": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "xyz.openbmc_project.Inventory.Error.NotPresent", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0087M", + "ComponentInstance": "1,3", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Uncorrectable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 1 core 3 has not been detected", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core3", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Inventory.Error.NotPresent||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core4": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "xyz.openbmc_project.Inventory.Error.NotPresent", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0087M", + "ComponentInstance": "1,4", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Uncorrectable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 1 core 4 has not been detected", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core4", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Inventory.Error.NotPresent||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core5": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "xyz.openbmc_project.Inventory.Error.NotPresent", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0087M", + "ComponentInstance": "1,5", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Uncorrectable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 1 core 5 has not been detected", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core5", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Inventory.Error.NotPresent||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core6": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "xyz.openbmc_project.Inventory.Error.NotPresent", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0087M", + "ComponentInstance": "1,6", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Uncorrectable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 1 core 6 has not been detected", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core6", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Inventory.Error.NotPresent||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core7": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "xyz.openbmc_project.Inventory.Error.NotPresent", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0087M", + "ComponentInstance": "1,7", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Uncorrectable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 1 core 7 has not been detected", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core7", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Inventory.Error.NotPresent||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core8": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "xyz.openbmc_project.Inventory.Error.NotPresent", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0087M", + "ComponentInstance": "1,8", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Uncorrectable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 1 core 8 has not been detected", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core8", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Inventory.Error.NotPresent||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core9": { + "AffectedLEDs": null, + "AffectedSubsystem": "Processing", + "BMCMessageID": "xyz.openbmc_project.Inventory.Error.NotPresent", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPU0087M", + "ComponentInstance": "1,9", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Uncorrectable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "CPU 1 core 9 has not been detected", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core9", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Inventory.Error.NotPresent||/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm0": { + "AffectedLEDs": null, + "AffectedSubsystem": "Memory", + "BMCMessageID": "xyz.openbmc_project.Inventory.Error.NotPresent", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPMA0055M", + "ComponentInstance": 0, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Uncorrectable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "DIMM 0 has not been detected", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm0", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Inventory.Error.NotPresent||/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm1": { + "AffectedLEDs": null, + "AffectedSubsystem": "Memory", + "BMCMessageID": "xyz.openbmc_project.Inventory.Error.NotPresent", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPMA0055M", + "ComponentInstance": 1, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Uncorrectable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "DIMM 1 has not been detected", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm1", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Inventory.Error.NotPresent||/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm10": { + "AffectedLEDs": null, + "AffectedSubsystem": "Memory", + "BMCMessageID": "xyz.openbmc_project.Inventory.Error.NotPresent", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPMA0055M", + "ComponentInstance": 10, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Uncorrectable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "DIMM 10 has not been detected", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm10", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Inventory.Error.NotPresent||/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm11": { + "AffectedLEDs": null, + "AffectedSubsystem": "Memory", + "BMCMessageID": "xyz.openbmc_project.Inventory.Error.NotPresent", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPMA0055M", + "ComponentInstance": 11, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Uncorrectable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "DIMM 11 has not been detected", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm11", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Inventory.Error.NotPresent||/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm12": { + "AffectedLEDs": null, + "AffectedSubsystem": "Memory", + "BMCMessageID": "xyz.openbmc_project.Inventory.Error.NotPresent", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPMA0055M", + "ComponentInstance": 12, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Uncorrectable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "DIMM 12 has not been detected", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm12", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Inventory.Error.NotPresent||/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm13": { + "AffectedLEDs": null, + "AffectedSubsystem": "Memory", + "BMCMessageID": "xyz.openbmc_project.Inventory.Error.NotPresent", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPMA0055M", + "ComponentInstance": 13, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Uncorrectable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "DIMM 13 has not been detected", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm13", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Inventory.Error.NotPresent||/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm14": { + "AffectedLEDs": null, + "AffectedSubsystem": "Memory", + "BMCMessageID": "xyz.openbmc_project.Inventory.Error.NotPresent", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPMA0055M", + "ComponentInstance": 14, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Uncorrectable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "DIMM 14 has not been detected", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm14", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Inventory.Error.NotPresent||/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm15": { + "AffectedLEDs": null, + "AffectedSubsystem": "Memory", + "BMCMessageID": "xyz.openbmc_project.Inventory.Error.NotPresent", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPMA0055M", + "ComponentInstance": 15, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Uncorrectable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "DIMM 15 has not been detected", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm15", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Inventory.Error.NotPresent||/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm2": { + "AffectedLEDs": null, + "AffectedSubsystem": "Memory", + "BMCMessageID": "xyz.openbmc_project.Inventory.Error.NotPresent", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPMA0055M", + "ComponentInstance": 2, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Uncorrectable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "DIMM 2 has not been detected", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm2", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Inventory.Error.NotPresent||/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm3": { + "AffectedLEDs": null, + "AffectedSubsystem": "Memory", + "BMCMessageID": "xyz.openbmc_project.Inventory.Error.NotPresent", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPMA0055M", + "ComponentInstance": 3, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Uncorrectable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "DIMM 3 has not been detected", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm3", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Inventory.Error.NotPresent||/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm4": { + "AffectedLEDs": null, + "AffectedSubsystem": "Memory", + "BMCMessageID": "xyz.openbmc_project.Inventory.Error.NotPresent", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPMA0055M", + "ComponentInstance": 4, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Uncorrectable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "DIMM 4 has not been detected", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm4", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Inventory.Error.NotPresent||/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm5": { + "AffectedLEDs": null, + "AffectedSubsystem": "Memory", + "BMCMessageID": "xyz.openbmc_project.Inventory.Error.NotPresent", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPMA0055M", + "ComponentInstance": 5, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Uncorrectable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "DIMM 5 has not been detected", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm5", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Inventory.Error.NotPresent||/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm6": { + "AffectedLEDs": null, + "AffectedSubsystem": "Memory", + "BMCMessageID": "xyz.openbmc_project.Inventory.Error.NotPresent", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPMA0055M", + "ComponentInstance": 6, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Uncorrectable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "DIMM 6 has not been detected", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm6", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Inventory.Error.NotPresent||/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm7": { + "AffectedLEDs": null, + "AffectedSubsystem": "Memory", + "BMCMessageID": "xyz.openbmc_project.Inventory.Error.NotPresent", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPMA0055M", + "ComponentInstance": 7, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Uncorrectable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "DIMM 7 has not been detected", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm7", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Inventory.Error.NotPresent||/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm8": { + "AffectedLEDs": null, + "AffectedSubsystem": "Memory", + "BMCMessageID": "xyz.openbmc_project.Inventory.Error.NotPresent", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPMA0055M", + "ComponentInstance": 8, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Uncorrectable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "DIMM 8 has not been detected", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm8", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Inventory.Error.NotPresent||/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm9": { + "AffectedLEDs": null, + "AffectedSubsystem": "Memory", + "BMCMessageID": "xyz.openbmc_project.Inventory.Error.NotPresent", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPMA0055M", + "ComponentInstance": 9, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Uncorrectable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "DIMM 9 has not been detected", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm9", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Inventory.Error.NotPresent||/xyz/openbmc_project/inventory/system/chassis/motherboard/fan0": { + "AffectedLEDs": null, + "AffectedSubsystem": "Cooling", + "BMCMessageID": "xyz.openbmc_project.Inventory.Error.NotPresent", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCA0071M", + "ComponentInstance": 0, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Uncorrectable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Fan 0 has not been detected", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/fan0", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Inventory.Error.NotPresent||/xyz/openbmc_project/inventory/system/chassis/motherboard/fan1": { + "AffectedLEDs": null, + "AffectedSubsystem": "Cooling", + "BMCMessageID": "xyz.openbmc_project.Inventory.Error.NotPresent", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCA0071M", + "ComponentInstance": 1, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Uncorrectable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Fan 1 has not been detected", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/fan1", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Inventory.Error.NotPresent||/xyz/openbmc_project/inventory/system/chassis/motherboard/fan2": { + "AffectedLEDs": null, + "AffectedSubsystem": "Cooling", + "BMCMessageID": "xyz.openbmc_project.Inventory.Error.NotPresent", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCA0071M", + "ComponentInstance": 2, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Uncorrectable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Fan 2 has not been detected", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/fan2", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Inventory.Error.NotPresent||/xyz/openbmc_project/inventory/system/chassis/motherboard/fan3": { + "AffectedLEDs": null, + "AffectedSubsystem": "Cooling", + "BMCMessageID": "xyz.openbmc_project.Inventory.Error.NotPresent", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCA0071M", + "ComponentInstance": 3, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Uncorrectable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Fan 3 has not been detected", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/fan3", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Inventory.Error.NotPresent||/xyz/openbmc_project/inventory/system/chassis/motherboard/powersupply0": { + "AffectedLEDs": null, + "AffectedSubsystem": "Power", + "BMCMessageID": "xyz.openbmc_project.Inventory.Error.NotPresent", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPW0015M", + "ComponentInstance": 0, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Uncorrectable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Power supply 0 has not been detected", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/powersupply0", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Inventory.Error.NotPresent||/xyz/openbmc_project/inventory/system/chassis/motherboard/powersupply1": { + "AffectedLEDs": null, + "AffectedSubsystem": "Power", + "BMCMessageID": "xyz.openbmc_project.Inventory.Error.NotPresent", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPW0015M", + "ComponentInstance": 1, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Uncorrectable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Power supply 1 has not been detected", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/powersupply1", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Inventory.Error.NotPresent||/xyz/openbmc_project/inventory/system/chassis/power_supply0": { + "AffectedLEDs": null, + "AffectedSubsystem": "Power", + "BMCMessageID": "xyz.openbmc_project.Inventory.Error.NotPresent", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPW0015M", + "ComponentInstance": 0, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Uncorrectable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Power supply 0 has not been detected", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/power_supply0", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Inventory.Error.NotPresent||/xyz/openbmc_project/inventory/system/chassis/power_supply1": { + "AffectedLEDs": null, + "AffectedSubsystem": "Power", + "BMCMessageID": "xyz.openbmc_project.Inventory.Error.NotPresent", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPW0015M", + "ComponentInstance": 1, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Uncorrectable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Power supply 1 has not been detected", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/power_supply1", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Inventory.Error.NotPresent||/xyz/openbmc_project/inventory/system/chassis/powersupply0": { + "AffectedLEDs": null, + "AffectedSubsystem": "Power", + "BMCMessageID": "xyz.openbmc_project.Inventory.Error.NotPresent", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPW0015M", + "ComponentInstance": 0, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Uncorrectable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Power supply 0 has not been detected", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/powersupply0", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Inventory.Error.NotPresent||/xyz/openbmc_project/inventory/system/chassis/powersupply1": { + "AffectedLEDs": null, + "AffectedSubsystem": "Power", + "BMCMessageID": "xyz.openbmc_project.Inventory.Error.NotPresent", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPW0015M", + "ComponentInstance": 1, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Uncorrectable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Power supply 1 has not been detected", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/powersupply1", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Led.Fru.Monitor.Error.InventoryPathError": { + "AffectedLEDs": null, + "AffectedSubsystem": "Systems Management - Core / Virtual Appliance", + "BMCMessageID": "xyz.openbmc_project.Led.Fru.Monitor.Error.InventoryPathError", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCR0031G", + "ComponentInstance": null, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Firmware/Software Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Internal error, unable to associate LED to inventory", + "ReferencedInventory": null, + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Warning", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Led.Mapper.Error.MethodError": { + "AffectedLEDs": null, + "AffectedSubsystem": "Systems Management - Core / Virtual Appliance", + "BMCMessageID": "xyz.openbmc_project.Led.Mapper.Error.MethodError", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCR0050F", + "ComponentInstance": null, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Firmware/Software Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Internal method error with LED Mapper.", + "ReferencedInventory": null, + "RelatedEventIDs": {}, + "Serviceable": false, + "Severity": "Warning", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Led.Mapper.Error.ObjectNotFoundError": { + "AffectedLEDs": null, + "AffectedSubsystem": "Systems Management - Core / Virtual Appliance", + "BMCMessageID": "xyz.openbmc_project.Led.Mapper.Error.ObjectNotFoundError", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCR0051F", + "ComponentInstance": null, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Firmware/Software Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Internal error. LED Mapper object not found.", + "ReferencedInventory": null, + "RelatedEventIDs": {}, + "Serviceable": false, + "Severity": "Warning", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Power.Fault.Error.GPUOverTemp||/xyz/openbmc_project/inventory/system/chassis/motherboard/gpu0": { + "AffectedLEDs": null, + "AffectedSubsystem": "Cooling", + "BMCMessageID": "xyz.openbmc_project.Power.Fault.Error.GPUOverTemp", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCA0066M", + "ComponentInstance": 0, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Environmental", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "GPU 0 suffered an over-temperature fault", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/gpu0", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Power.Fault.Error.GPUOverTemp||/xyz/openbmc_project/inventory/system/chassis/motherboard/gpu1": { + "AffectedLEDs": null, + "AffectedSubsystem": "Cooling", + "BMCMessageID": "xyz.openbmc_project.Power.Fault.Error.GPUOverTemp", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCA0066M", + "ComponentInstance": 1, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Environmental", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "GPU 1 suffered an over-temperature fault", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/gpu1", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Power.Fault.Error.GPUOverTemp||/xyz/openbmc_project/inventory/system/chassis/motherboard/gpu2": { + "AffectedLEDs": null, + "AffectedSubsystem": "Cooling", + "BMCMessageID": "xyz.openbmc_project.Power.Fault.Error.GPUOverTemp", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCA0066M", + "ComponentInstance": 2, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Environmental", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "GPU 2 suffered an over-temperature fault", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/gpu2", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Power.Fault.Error.GPUOverTemp||/xyz/openbmc_project/inventory/system/chassis/motherboard/gpu3": { + "AffectedLEDs": null, + "AffectedSubsystem": "Cooling", + "BMCMessageID": "xyz.openbmc_project.Power.Fault.Error.GPUOverTemp", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCA0066M", + "ComponentInstance": 3, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Environmental", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "GPU 3 suffered an over-temperature fault", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/gpu3", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Power.Fault.Error.GPUOverTemp||/xyz/openbmc_project/inventory/system/chassis/motherboard/gpu4": { + "AffectedLEDs": null, + "AffectedSubsystem": "Cooling", + "BMCMessageID": "xyz.openbmc_project.Power.Fault.Error.GPUOverTemp", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCA0066M", + "ComponentInstance": 4, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Environmental", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "GPU 4 suffered an over-temperature fault", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/gpu4", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Power.Fault.Error.GPUOverTemp||/xyz/openbmc_project/inventory/system/chassis/motherboard/gpu5": { + "AffectedLEDs": null, + "AffectedSubsystem": "Cooling", + "BMCMessageID": "xyz.openbmc_project.Power.Fault.Error.GPUOverTemp", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCA0066M", + "ComponentInstance": 5, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Environmental", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "GPU 5 suffered an over-temperature fault", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/gpu5", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Power.Fault.Error.PowerOnFailure": { + "AffectedLEDs": null, + "AffectedSubsystem": "Power", + "BMCMessageID": "xyz.openbmc_project.Power.Fault.Error.PowerOnFailure", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPPW0038F", + "ComponentInstance": null, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Environmental", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "The system power failed to turn on", + "ReferencedInventory": null, + "RelatedEventIDs": {}, + "Serviceable": false, + "Severity": "Warning", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Power.Fault.Error.PowerSequencerFault": { + "AffectedLEDs": null, + "AffectedSubsystem": "Power", + "BMCMessageID": "xyz.openbmc_project.Power.Fault.Error.PowerSequencerFault", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPW0041M", + "ComponentInstance": null, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Environmental", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "The power sequencer chip detected a fault", + "ReferencedInventory": null, + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Power.Fault.Error.PowerSequencerPGOODFault||GPU_PGOOD": { + "AffectedLEDs": null, + "AffectedSubsystem": "Power", + "BMCMessageID": "xyz.openbmc_project.Power.Fault.Error.PowerSequencerPGOODFault", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPW0045M", + "ComponentInstance": null, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Environmental", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "The power sequencer chip detected a GPU_PGOOD fault", + "ReferencedInventory": "GPU_PGOOD", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Power.Fault.Error.PowerSequencerPGOODFault||MEM_GOOD0": { + "AffectedLEDs": null, + "AffectedSubsystem": "Power", + "BMCMessageID": "xyz.openbmc_project.Power.Fault.Error.PowerSequencerPGOODFault", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPW0043M", + "ComponentInstance": null, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Environmental", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "The power sequencer chip detected a MEM_GOOD0 fault", + "ReferencedInventory": "MEM_GOOD0", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Power.Fault.Error.PowerSequencerPGOODFault||MEM_GOOD1": { + "AffectedLEDs": null, + "AffectedSubsystem": "Power", + "BMCMessageID": "xyz.openbmc_project.Power.Fault.Error.PowerSequencerPGOODFault", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPW0044M", + "ComponentInstance": null, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Environmental", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "The power sequencer chip detected a MEM_GOOD1 fault", + "ReferencedInventory": "MEM_GOOD1", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Power.Fault.Error.PowerSequencerPGOODFault||PGOOD_5P0V": { + "AffectedLEDs": null, + "AffectedSubsystem": "Power", + "BMCMessageID": "xyz.openbmc_project.Power.Fault.Error.PowerSequencerPGOODFault", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPW0042M", + "ComponentInstance": null, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Environmental", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "The power sequencer chip detected a PGOOD_5P0V fault", + "ReferencedInventory": "PGOOD_5P0V", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Power.Fault.Error.PowerSequencerPGOODFault||TH_OVERT": { + "AffectedLEDs": null, + "AffectedSubsystem": "Power", + "BMCMessageID": "xyz.openbmc_project.Power.Fault.Error.PowerSequencerPGOODFault", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPW0046M", + "ComponentInstance": null, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Environmental", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "The power sequencer chip detected a TH_OVERT fault", + "ReferencedInventory": "TH_OVERT", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Power.Fault.Error.PowerSequencerVoltageFault||0.9V": { + "AffectedLEDs": null, + "AffectedSubsystem": "Power", + "BMCMessageID": "xyz.openbmc_project.Power.Fault.Error.PowerSequencerVoltageFault", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPW0053M", + "ComponentInstance": null, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Environmental", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "The power sequencer chip detected a fault on 0.9V rail.", + "ReferencedInventory": "0.9V", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Power.Fault.Error.PowerSequencerVoltageFault||1.0V": { + "AffectedLEDs": null, + "AffectedSubsystem": "Power", + "BMCMessageID": "xyz.openbmc_project.Power.Fault.Error.PowerSequencerVoltageFault", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPW0052M", + "ComponentInstance": null, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Environmental", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "The power sequencer chip detected a fault on 1.0V rail.", + "ReferencedInventory": "1.0V", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Power.Fault.Error.PowerSequencerVoltageFault||1.1V": { + "AffectedLEDs": null, + "AffectedSubsystem": "Power", + "BMCMessageID": "xyz.openbmc_project.Power.Fault.Error.PowerSequencerVoltageFault", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPW0051M", + "ComponentInstance": null, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Environmental", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "The power sequencer chip detected a fault on 1.1V rail.", + "ReferencedInventory": "1.1V", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Power.Fault.Error.PowerSequencerVoltageFault||1.8V": { + "AffectedLEDs": null, + "AffectedSubsystem": "Power", + "BMCMessageID": "xyz.openbmc_project.Power.Fault.Error.PowerSequencerVoltageFault", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPW0050M", + "ComponentInstance": null, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Environmental", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "The power sequencer chip detected a fault on 1.8V rail.", + "ReferencedInventory": "1.8V", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Power.Fault.Error.PowerSequencerVoltageFault||12.0V": { + "AffectedLEDs": null, + "AffectedSubsystem": "Power", + "BMCMessageID": "xyz.openbmc_project.Power.Fault.Error.PowerSequencerVoltageFault", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPW0048M", + "ComponentInstance": null, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Environmental", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "The power sequencer chip detected a fault on 12.0V rail.", + "ReferencedInventory": "12.0V", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Power.Fault.Error.PowerSequencerVoltageFault||3.3V": { + "AffectedLEDs": null, + "AffectedSubsystem": "Power", + "BMCMessageID": "xyz.openbmc_project.Power.Fault.Error.PowerSequencerVoltageFault", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPW0049M", + "ComponentInstance": null, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Environmental", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "The power sequencer chip detected a fault on 3.3V rail.", + "ReferencedInventory": "3.3V", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Power.Fault.Error.PowerSequencerVoltageFault||5.0VCS": { + "AffectedLEDs": null, + "AffectedSubsystem": "Power", + "BMCMessageID": "xyz.openbmc_project.Power.Fault.Error.PowerSequencerVoltageFault", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPW0047M", + "ComponentInstance": null, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Environmental", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "The power sequencer chip detected a fault on 5.0VCS rail.", + "ReferencedInventory": "5.0VCS", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Power.Fault.Error.PowerSequencerVoltageFault||AVDD": { + "AffectedLEDs": null, + "AffectedSubsystem": "Power", + "BMCMessageID": "xyz.openbmc_project.Power.Fault.Error.PowerSequencerVoltageFault", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPW0056M", + "ComponentInstance": null, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Environmental", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "The power sequencer chip detected a fault on AVDD rail.", + "ReferencedInventory": "AVDD", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Power.Fault.Error.PowerSequencerVoltageFault||VCS-A": { + "AffectedLEDs": null, + "AffectedSubsystem": "Power", + "BMCMessageID": "xyz.openbmc_project.Power.Fault.Error.PowerSequencerVoltageFault", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPW0061M", + "ComponentInstance": null, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Environmental", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "The power sequencer chip detected a fault on VCS-A rail.", + "ReferencedInventory": "VCS-A", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Power.Fault.Error.PowerSequencerVoltageFault||VCS-B": { + "AffectedLEDs": null, + "AffectedSubsystem": "Power", + "BMCMessageID": "xyz.openbmc_project.Power.Fault.Error.PowerSequencerVoltageFault", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPW0062M", + "ComponentInstance": null, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Environmental", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "The power sequencer chip detected a fault on VCS-B rail.", + "ReferencedInventory": "VCS-B", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Power.Fault.Error.PowerSequencerVoltageFault||VDD-A": { + "AffectedLEDs": null, + "AffectedSubsystem": "Power", + "BMCMessageID": "xyz.openbmc_project.Power.Fault.Error.PowerSequencerVoltageFault", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPW0059M", + "ComponentInstance": null, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Environmental", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "The power sequencer chip detected a fault on VDD-A rail.", + "ReferencedInventory": "VDD-A", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Power.Fault.Error.PowerSequencerVoltageFault||VDD-B": { + "AffectedLEDs": null, + "AffectedSubsystem": "Power", + "BMCMessageID": "xyz.openbmc_project.Power.Fault.Error.PowerSequencerVoltageFault", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPW0060M", + "ComponentInstance": null, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Environmental", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "The power sequencer chip detected a fault on VDD-B rail.", + "ReferencedInventory": "VDD-B", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Power.Fault.Error.PowerSequencerVoltageFault||VDN-A": { + "AffectedLEDs": null, + "AffectedSubsystem": "Power", + "BMCMessageID": "xyz.openbmc_project.Power.Fault.Error.PowerSequencerVoltageFault", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPW0054M", + "ComponentInstance": null, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Environmental", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "The power sequencer chip detected a fault on VDN-A rail.", + "ReferencedInventory": "VDN-A", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Power.Fault.Error.PowerSequencerVoltageFault||VDN-B": { + "AffectedLEDs": null, + "AffectedSubsystem": "Power", + "BMCMessageID": "xyz.openbmc_project.Power.Fault.Error.PowerSequencerVoltageFault", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPW0055M", + "ComponentInstance": null, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Environmental", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "The power sequencer chip detected a fault on VDN-B rail.", + "ReferencedInventory": "VDN-B", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Power.Fault.Error.PowerSequencerVoltageFault||VIO-A": { + "AffectedLEDs": null, + "AffectedSubsystem": "Power", + "BMCMessageID": "xyz.openbmc_project.Power.Fault.Error.PowerSequencerVoltageFault", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPW0057M", + "ComponentInstance": null, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Environmental", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "The power sequencer chip detected a fault on VIO-A rail.", + "ReferencedInventory": "VIO-A", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Power.Fault.Error.PowerSequencerVoltageFault||VIO-B": { + "AffectedLEDs": null, + "AffectedSubsystem": "Power", + "BMCMessageID": "xyz.openbmc_project.Power.Fault.Error.PowerSequencerVoltageFault", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPW0058M", + "ComponentInstance": null, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Environmental", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "The power sequencer chip detected a fault on VIO-B rail.", + "ReferencedInventory": "VIO-B", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Power.Fault.Error.PowerSupplyFanFault||/system/chassis/power_supply1": { + "AffectedLEDs": null, + "AffectedSubsystem": "Cooling", + "BMCMessageID": "xyz.openbmc_project.Power.Fault.Error.PowerSupplyFanFault", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPCA0064M", + "ComponentInstance": 1, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Power supply 1 fan has failed", + "ReferencedInventory": "/system/chassis/power_supply1", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Power.Fault.Error.PowerSupplyInputFault||/system/chassis/power_supply0": { + "AffectedLEDs": null, + "AffectedSubsystem": "Power", + "BMCMessageID": "xyz.openbmc_project.Power.Fault.Error.PowerSupplyInputFault", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPPW0033M", + "ComponentInstance": 0, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Power supply 0 input fault detected", + "ReferencedInventory": "/system/chassis/power_supply0", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Power.Fault.Error.PowerSupplyInputFault||/system/chassis/power_supply1": { + "AffectedLEDs": null, + "AffectedSubsystem": "Power", + "BMCMessageID": "xyz.openbmc_project.Power.Fault.Error.PowerSupplyInputFault", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPPW0033M", + "ComponentInstance": 1, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Power supply 1 input fault detected", + "ReferencedInventory": "/system/chassis/power_supply1", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Power.Fault.Error.PowerSupplyOutputOvercurrent||/system/chassis/power_supply0": { + "AffectedLEDs": null, + "AffectedSubsystem": "Power", + "BMCMessageID": "xyz.openbmc_project.Power.Fault.Error.PowerSupplyOutputOvercurrent", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPW0035M", + "ComponentInstance": 0, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Power supply 0 output current is too high", + "ReferencedInventory": "/system/chassis/power_supply0", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Power.Fault.Error.PowerSupplyOutputOvercurrent||/system/chassis/power_supply1": { + "AffectedLEDs": null, + "AffectedSubsystem": "Power", + "BMCMessageID": "xyz.openbmc_project.Power.Fault.Error.PowerSupplyOutputOvercurrent", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPW0035M", + "ComponentInstance": 1, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Power supply 1 output current is too high", + "ReferencedInventory": "/system/chassis/power_supply1", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Power.Fault.Error.PowerSupplyOutputOvervoltage||/system/chassis/power_supply0": { + "AffectedLEDs": null, + "AffectedSubsystem": "Power", + "BMCMessageID": "xyz.openbmc_project.Power.Fault.Error.PowerSupplyOutputOvervoltage", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPW0036M", + "ComponentInstance": 0, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Power supply 0 output voltage is too high", + "ReferencedInventory": "/system/chassis/power_supply0", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Power.Fault.Error.PowerSupplyOutputOvervoltage||/system/chassis/power_supply1": { + "AffectedLEDs": null, + "AffectedSubsystem": "Power", + "BMCMessageID": "xyz.openbmc_project.Power.Fault.Error.PowerSupplyOutputOvervoltage", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPW0036M", + "ComponentInstance": 1, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Power supply 1 output voltage is too high", + "ReferencedInventory": "/system/chassis/power_supply1", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Power.Fault.Error.PowerSupplyShouldBeOn||/system/chassis/power_supply0": { + "AffectedLEDs": null, + "AffectedSubsystem": "Power", + "BMCMessageID": "xyz.openbmc_project.Power.Fault.Error.PowerSupplyShouldBeOn", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPW0034M", + "ComponentInstance": 0, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Power supply 0 has failed to power on when it needed to", + "ReferencedInventory": "/system/chassis/power_supply0", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Power.Fault.Error.PowerSupplyShouldBeOn||/system/chassis/power_supply1": { + "AffectedLEDs": null, + "AffectedSubsystem": "Power", + "BMCMessageID": "xyz.openbmc_project.Power.Fault.Error.PowerSupplyShouldBeOn", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPW0034M", + "ComponentInstance": 1, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Power supply 1 has failed to power on", + "ReferencedInventory": "/system/chassis/power_supply1", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Power.Fault.Error.PowerSupplyTemperatureFault||/system/chassis/power_supply0": { + "AffectedLEDs": null, + "AffectedSubsystem": "Cooling", + "BMCMessageID": "xyz.openbmc_project.Power.Fault.Error.PowerSupplyTemperatureFault", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCA0065M", + "ComponentInstance": 0, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Environmental", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Power supply 0 is too hot", + "ReferencedInventory": "/system/chassis/power_supply0", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Power.Fault.Error.PowerSupplyTemperatureFault||/system/chassis/power_supply1": { + "AffectedLEDs": null, + "AffectedSubsystem": "Cooling", + "BMCMessageID": "xyz.openbmc_project.Power.Fault.Error.PowerSupplyTemperatureFault", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCA0065M", + "ComponentInstance": 1, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Environmental", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Power supply 1 is too hot", + "ReferencedInventory": "/system/chassis/power_supply1", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Power.Fault.Error.PowerSupplyUnderVoltageFault||/system/chassis/power_supply0": { + "AffectedLEDs": null, + "AffectedSubsystem": "Power", + "BMCMessageID": "xyz.openbmc_project.Power.Fault.Error.PowerSupplyUnderVoltageFault", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPPW0009M", + "ComponentInstance": 0, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Power supply 0 input voltage out of range", + "ReferencedInventory": "/system/chassis/power_supply0", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Power.Fault.Error.PowerSupplyUnderVoltageFault||/system/chassis/power_supply1": { + "AffectedLEDs": null, + "AffectedSubsystem": "Power", + "BMCMessageID": "xyz.openbmc_project.Power.Fault.Error.PowerSupplyUnderVoltageFault", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPPW0009M", + "ComponentInstance": 1, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Power supply 1 input voltage out of range", + "ReferencedInventory": "/system/chassis/power_supply1", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Power.Fault.Error.Shutdown||/system/chassis/power_supply0": { + "AffectedLEDs": null, + "AffectedSubsystem": "Power", + "BMCMessageID": "xyz.openbmc_project.Power.Fault.Error.Shutdown", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPW0037M", + "ComponentInstance": 0, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Power supply 0 has initiated a power off due to a failure", + "ReferencedInventory": "/system/chassis/power_supply0", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Power.Fault.Error.Shutdown||/system/chassis/power_supply1": { + "AffectedLEDs": null, + "AffectedSubsystem": "Power", + "BMCMessageID": "xyz.openbmc_project.Power.Fault.Error.Shutdown", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPW0037M", + "ComponentInstance": 1, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Power supply 1 has initiated a power off due to a failure", + "ReferencedInventory": "/system/chassis/power_supply1", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Power.Fault.GPUOverTemp||/xyz/openbmc_project/inventory/system/chassis/motherboard/gpu0": { + "AffectedLEDs": null, + "AffectedSubsystem": "Cooling", + "BMCMessageID": "xyz.openbmc_project.Power.Fault.GPUOverTemp", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCA0066M", + "ComponentInstance": 0, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Environmental", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "GPU 0 suffered an over-temperature fault", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/gpu0", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Power.Fault.GPUOverTemp||/xyz/openbmc_project/inventory/system/chassis/motherboard/gpu1": { + "AffectedLEDs": null, + "AffectedSubsystem": "Cooling", + "BMCMessageID": "xyz.openbmc_project.Power.Fault.GPUOverTemp", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCA0066M", + "ComponentInstance": 1, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Environmental", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "GPU 1 suffered an over-temperature fault", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/gpu1", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Power.Fault.GPUOverTemp||/xyz/openbmc_project/inventory/system/chassis/motherboard/gpu2": { + "AffectedLEDs": null, + "AffectedSubsystem": "Cooling", + "BMCMessageID": "xyz.openbmc_project.Power.Fault.GPUOverTemp", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCA0066M", + "ComponentInstance": 2, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Environmental", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "GPU 2 suffered an over-temperature fault", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/gpu2", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Power.Fault.GPUOverTemp||/xyz/openbmc_project/inventory/system/chassis/motherboard/gpu3": { + "AffectedLEDs": null, + "AffectedSubsystem": "Cooling", + "BMCMessageID": "xyz.openbmc_project.Power.Fault.GPUOverTemp", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCA0066M", + "ComponentInstance": 3, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Environmental", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "GPU 3 suffered an over-temperature fault", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/gpu3", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Power.Fault.GPUOverTemp||/xyz/openbmc_project/inventory/system/chassis/motherboard/gpu4": { + "AffectedLEDs": null, + "AffectedSubsystem": "Cooling", + "BMCMessageID": "xyz.openbmc_project.Power.Fault.GPUOverTemp", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCA0066M", + "ComponentInstance": 4, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Environmental", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "GPU 4 suffered an over-temperature fault", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/gpu4", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Power.Fault.GPUOverTemp||/xyz/openbmc_project/inventory/system/chassis/motherboard/gpu5": { + "AffectedLEDs": null, + "AffectedSubsystem": "Cooling", + "BMCMessageID": "xyz.openbmc_project.Power.Fault.GPUOverTemp", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCA0066M", + "ComponentInstance": 5, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Environmental", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "GPU 5 suffered an over-temperature fault", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/gpu5", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Power.Fault.GPUPowerFault||/xyz/openbmc_project/inventory/system/chassis/motherboard/gpu0": { + "AffectedLEDs": null, + "AffectedSubsystem": "Power", + "BMCMessageID": "xyz.openbmc_project.Power.Fault.GPUPowerFault", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPPW0038M", + "ComponentInstance": 0, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Environmental", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "GPU 0 suffered a power fault", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/gpu0", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Power.Fault.GPUPowerFault||/xyz/openbmc_project/inventory/system/chassis/motherboard/gpu1": { + "AffectedLEDs": null, + "AffectedSubsystem": "Power", + "BMCMessageID": "xyz.openbmc_project.Power.Fault.GPUPowerFault", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPPW0038M", + "ComponentInstance": 1, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Environmental", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "GPU 1 suffered a power fault", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/gpu1", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Power.Fault.GPUPowerFault||/xyz/openbmc_project/inventory/system/chassis/motherboard/gpu2": { + "AffectedLEDs": null, + "AffectedSubsystem": "Power", + "BMCMessageID": "xyz.openbmc_project.Power.Fault.GPUPowerFault", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPPW0038M", + "ComponentInstance": 2, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Environmental", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "GPU 2 suffered a power fault", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/gpu2", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Power.Fault.GPUPowerFault||/xyz/openbmc_project/inventory/system/chassis/motherboard/gpu3": { + "AffectedLEDs": null, + "AffectedSubsystem": "Power", + "BMCMessageID": "xyz.openbmc_project.Power.Fault.GPUPowerFault", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPPW0038M", + "ComponentInstance": 3, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Environmental", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "GPU 3 suffered a power fault", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/gpu3", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Power.Fault.GPUPowerFault||/xyz/openbmc_project/inventory/system/chassis/motherboard/gpu4": { + "AffectedLEDs": null, + "AffectedSubsystem": "Power", + "BMCMessageID": "xyz.openbmc_project.Power.Fault.GPUPowerFault", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPPW0038M", + "ComponentInstance": 4, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Environmental", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "GPU 4 suffered a power fault", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/gpu4", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Power.Fault.GPUPowerFault||/xyz/openbmc_project/inventory/system/chassis/motherboard/gpu5": { + "AffectedLEDs": null, + "AffectedSubsystem": "Power", + "BMCMessageID": "xyz.openbmc_project.Power.Fault.GPUPowerFault", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPPW0038M", + "ComponentInstance": 5, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Environmental", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "GPU 5 suffered a power fault", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/gpu5", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Power.Fault.PowerSupplyFanFault||/xyz/openbmc_project/inventory/system/chassis/power_supply0": { + "AffectedLEDs": null, + "AffectedSubsystem": "Cooling", + "BMCMessageID": "xyz.openbmc_project.Power.Fault.PowerSupplyFanFault", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPCA0064M", + "ComponentInstance": 0, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Power supply 0 fan has failed", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/power_supply0", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Power.Fault.PowerSupplyFanFault||/xyz/openbmc_project/inventory/system/chassis/power_supply1": { + "AffectedLEDs": null, + "AffectedSubsystem": "Cooling", + "BMCMessageID": "xyz.openbmc_project.Power.Fault.PowerSupplyFanFault", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPCA0064M", + "ComponentInstance": 1, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Power supply 1 fan has failed", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/power_supply1", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Power.Fault.PowerSupplyInputFault||/xyz/openbmc_project/inventory/system/chassis/power_supply0": { + "AffectedLEDs": null, + "AffectedSubsystem": "Power", + "BMCMessageID": "xyz.openbmc_project.Power.Fault.PowerSupplyInputFault", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPPW0033M", + "ComponentInstance": 0, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Power supply 0 input fault detected", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/power_supply0", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Power.Fault.PowerSupplyInputFault||/xyz/openbmc_project/inventory/system/chassis/power_supply1": { + "AffectedLEDs": null, + "AffectedSubsystem": "Power", + "BMCMessageID": "xyz.openbmc_project.Power.Fault.PowerSupplyInputFault", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPPW0033M", + "ComponentInstance": 1, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Power supply 1 input fault detected", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/power_supply1", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Power.Fault.PowerSupplyOutputOvercurrent||/xyz/openbmc_project/inventory/system/chassis/power_supply0": { + "AffectedLEDs": null, + "AffectedSubsystem": "Power", + "BMCMessageID": "xyz.openbmc_project.Power.Fault.PowerSupplyOutputOvercurrent", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPW0035M", + "ComponentInstance": 0, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Power supply 0 output current is too high", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/power_supply0", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Power.Fault.PowerSupplyOutputOvercurrent||/xyz/openbmc_project/inventory/system/chassis/power_supply1": { + "AffectedLEDs": null, + "AffectedSubsystem": "Power", + "BMCMessageID": "xyz.openbmc_project.Power.Fault.PowerSupplyOutputOvercurrent", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPW0035M", + "ComponentInstance": 1, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Power supply 1 output current is too high", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/power_supply1", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Power.Fault.PowerSupplyOutputOvervoltage||/xyz/openbmc_project/inventory/system/chassis/power_supply0": { + "AffectedLEDs": null, + "AffectedSubsystem": "Power", + "BMCMessageID": "xyz.openbmc_project.Power.Fault.PowerSupplyOutputOvervoltage", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPW0036M", + "ComponentInstance": 0, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Power supply 0 output voltage is too high", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/power_supply0", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Power.Fault.PowerSupplyOutputOvervoltage||/xyz/openbmc_project/inventory/system/chassis/power_supply1": { + "AffectedLEDs": null, + "AffectedSubsystem": "Power", + "BMCMessageID": "xyz.openbmc_project.Power.Fault.PowerSupplyOutputOvervoltage", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPW0036M", + "ComponentInstance": 1, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Power supply 1 output voltage is too high", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/power_supply1", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Power.Fault.PowerSupplyShouldBeOn||/xyz/openbmc_project/inventory/system/chassis/power_supply0": { + "AffectedLEDs": null, + "AffectedSubsystem": "Power", + "BMCMessageID": "xyz.openbmc_project.Power.Fault.PowerSupplyShouldBeOn", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPW0034M", + "ComponentInstance": 0, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Power supply 0 has failed to power on when it needed to", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/power_supply0", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Power.Fault.PowerSupplyShouldBeOn||/xyz/openbmc_project/inventory/system/chassis/power_supply1": { + "AffectedLEDs": null, + "AffectedSubsystem": "Power", + "BMCMessageID": "xyz.openbmc_project.Power.Fault.PowerSupplyShouldBeOn", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPW0034M", + "ComponentInstance": 1, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Power supply 1 has failed to power on", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/power_supply1", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Power.Fault.PowerSupplyTemperatureFault||/xyz/openbmc_project/inventory/system/chassis/power_supply0": { + "AffectedLEDs": null, + "AffectedSubsystem": "Cooling", + "BMCMessageID": "xyz.openbmc_project.Power.Fault.PowerSupplyTemperatureFault", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCA0065M", + "ComponentInstance": 0, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Environmental", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Power supply 0 is too hot", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/power_supply0", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Power.Fault.PowerSupplyTemperatureFault||/xyz/openbmc_project/inventory/system/chassis/power_supply1": { + "AffectedLEDs": null, + "AffectedSubsystem": "Cooling", + "BMCMessageID": "xyz.openbmc_project.Power.Fault.PowerSupplyTemperatureFault", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCA0065M", + "ComponentInstance": 1, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Environmental", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Power supply 1 is too hot", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/power_supply1", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Power.Fault.PowerSupplyUnderVoltageFault||/xyz/openbmc_project/inventory/system/chassis/power_supply0": { + "AffectedLEDs": null, + "AffectedSubsystem": "Power", + "BMCMessageID": "xyz.openbmc_project.Power.Fault.PowerSupplyUnderVoltageFault", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPPW0009M", + "ComponentInstance": 0, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Power supply 0 input voltage out of range", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/power_supply0", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Power.Fault.PowerSupplyUnderVoltageFault||/xyz/openbmc_project/inventory/system/chassis/power_supply1": { + "AffectedLEDs": null, + "AffectedSubsystem": "Power", + "BMCMessageID": "xyz.openbmc_project.Power.Fault.PowerSupplyUnderVoltageFault", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPPW0009M", + "ComponentInstance": 1, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Power supply 1 input voltage out of range", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/power_supply1", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Power.Fault.Shutdown||/xyz/openbmc_project/inventory/system/chassis/power_supply0": { + "AffectedLEDs": null, + "AffectedSubsystem": "Power", + "BMCMessageID": "xyz.openbmc_project.Power.Fault.Shutdown", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPW0037M", + "ComponentInstance": 0, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Power supply 0 has initiated a power off due to a failure", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/power_supply0", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Power.Fault.Shutdown||/xyz/openbmc_project/inventory/system/chassis/power_supply1": { + "AffectedLEDs": null, + "AffectedSubsystem": "Power", + "BMCMessageID": "xyz.openbmc_project.Power.Fault.Shutdown", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPPW0037M", + "ComponentInstance": 1, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Power supply 1 has initiated a power off due to a failure", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/power_supply1", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.SBE.SEEPROM.Error.ValidationFail": { + "AffectedLEDs": null, + "AffectedSubsystem": "Systems Management - Security", + "BMCMessageID": "xyz.openbmc_project.SBE.SEEPROM.Error.ValidationFail", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPSE0065M", + "ComponentInstance": null, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Security", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Firmware security validation failed", + "ReferencedInventory": null, + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.SBE.SEEPROM.Error.ValidationPass": { + "AffectedLEDs": null, + "AffectedSubsystem": "Systems Management - Security", + "BMCMessageID": "xyz.openbmc_project.SBE.SEEPROM.Error.ValidationPass", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPSE0066I", + "ComponentInstance": null, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Security", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Firmware security validation passed", + "ReferencedInventory": null, + "RelatedEventIDs": {}, + "Serviceable": false, + "Severity": "Information", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Sensor.Device.Error.ReadFailure||/sys/devices/platform/ahb/ahb:apb/ahb:apb:bus@1e78a000/1e78a100.i2c-bus/i2c-3/3-0052": { + "AffectedLEDs": null, + "AffectedSubsystem": "Systems Management - Core / Virtual Appliance", + "BMCMessageID": "xyz.openbmc_project.Sensor.Device.Error.ReadFailure", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCR0057F", + "ComponentInstance": null, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Communication Failure/Timeout", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Failed to read from the fan control device on the system backplane", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard", + "RelatedEventIDs": {}, + "Serviceable": false, + "Severity": "Warning", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Sensor.Device.Error.ReadFailure||/sys/devices/platform/ahb/ahb:apb/ahb:apb:bus@1e78a000/1e78a100.i2c-bus/i2c-3/3-0068": { + "AffectedLEDs": null, + "AffectedSubsystem": "Systems Management - Core / Virtual Appliance", + "BMCMessageID": "xyz.openbmc_project.Sensor.Device.Error.ReadFailure", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCR0060F", + "ComponentInstance": 1, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Communication Failure/Timeout", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Failed to read from power supply 1", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/powersupply1", + "RelatedEventIDs": {}, + "Serviceable": false, + "Severity": "Warning", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Sensor.Device.Error.ReadFailure||/sys/devices/platform/ahb/ahb:apb/ahb:apb:bus@1e78a000/1e78a100.i2c-bus/i2c-3/3-0069": { + "AffectedLEDs": null, + "AffectedSubsystem": "Systems Management - Core / Virtual Appliance", + "BMCMessageID": "xyz.openbmc_project.Sensor.Device.Error.ReadFailure", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCR0060F", + "ComponentInstance": 0, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Communication Failure/Timeout", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Failed to read from power supply 0", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/powersupply0", + "RelatedEventIDs": {}, + "Serviceable": false, + "Severity": "Warning", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Sensor.Device.Error.ReadFailure||/sys/devices/platform/ahb/ahb:apb/ahb:apb:bus@1e78a000/1e78a100.i2c-bus/i2c-3/3-0076": { + "AffectedLEDs": null, + "AffectedSubsystem": "Systems Management - Core / Virtual Appliance", + "BMCMessageID": "xyz.openbmc_project.Sensor.Device.Error.ReadFailure", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCR0053F", + "ComponentInstance": null, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Communication Failure/Timeout", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Failed to read from the ambient temperature sensor on the system backplane", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard", + "RelatedEventIDs": {}, + "Serviceable": false, + "Severity": "Warning", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Sensor.Device.Error.ReadFailure||/sys/devices/platform/ahb/ahb:apb/ahb:apb:bus@1e78a000/1e78a100.i2c-bus/i2c-3/3-0077": { + "AffectedLEDs": null, + "AffectedSubsystem": "Systems Management - Core / Virtual Appliance", + "BMCMessageID": "xyz.openbmc_project.Sensor.Device.Error.ReadFailure", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCR0052F", + "ComponentInstance": null, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Communication Failure/Timeout", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Failed to read from the ambient temperature sensor on the system backplane", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard", + "RelatedEventIDs": {}, + "Serviceable": false, + "Severity": "Warning", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Sensor.Device.Error.ReadFailure||/sys/devices/platform/ahb/ahb:apb/ahb:apb:bus@1e78a000/1e78a100.i2c-bus/i2c-4/4-0070": { + "AffectedLEDs": null, + "AffectedSubsystem": "Systems Management - Core / Virtual Appliance", + "BMCMessageID": "xyz.openbmc_project.Sensor.Device.Error.ReadFailure", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCR0054F", + "ComponentInstance": 0, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Communication Failure/Timeout", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Failed to read from the CPU 0 VDD/VCS VRM on the system backplane", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard", + "RelatedEventIDs": {}, + "Serviceable": false, + "Severity": "Warning", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Sensor.Device.Error.ReadFailure||/sys/devices/platform/ahb/ahb:apb/ahb:apb:bus@1e78a000/1e78a100.i2c-bus/i2c-4/4-0071": { + "AffectedLEDs": null, + "AffectedSubsystem": "Systems Management - Core / Virtual Appliance", + "BMCMessageID": "xyz.openbmc_project.Sensor.Device.Error.ReadFailure", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCR0055F", + "ComponentInstance": 1, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Communication Failure/Timeout", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Failed to read from the CPU 1 VDN/VDDR VRM on the system backplane", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard", + "RelatedEventIDs": {}, + "Serviceable": false, + "Severity": "Warning", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Sensor.Device.Error.ReadFailure||/sys/devices/platform/ahb/ahb:apb/ahb:apb:bus@1e78a000/1e78a100.i2c-bus/i2c-5/5-0070": { + "AffectedLEDs": null, + "AffectedSubsystem": "Systems Management - Core / Virtual Appliance", + "BMCMessageID": "xyz.openbmc_project.Sensor.Device.Error.ReadFailure", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCR0054F", + "ComponentInstance": 1, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Communication Failure/Timeout", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Failed to read from the CPU 1 VDD/VCS VRM on the system backplane", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard", + "RelatedEventIDs": {}, + "Serviceable": false, + "Severity": "Warning", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Sensor.Device.Error.ReadFailure||/sys/devices/platform/ahb/ahb:apb/ahb:apb:bus@1e78a000/1e78a100.i2c-bus/i2c-9/9-004a": { + "AffectedLEDs": null, + "AffectedSubsystem": "Systems Management - Core / Virtual Appliance", + "BMCMessageID": "xyz.openbmc_project.Sensor.Device.Error.ReadFailure", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCR0056F", + "ComponentInstance": null, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Communication Failure/Timeout", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Failed to read from the PCIE temperature sensor on the system backplane", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard", + "RelatedEventIDs": {}, + "Serviceable": false, + "Severity": "Warning", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Sensor.Device.Error.ReadFailure||/sys/devices/platform/ahb/ahb:apb/ahb:apb:i2c@1e78a000/1e78a100.i2c-bus/i2c-3/3-0052": { + "AffectedLEDs": null, + "AffectedSubsystem": "Systems Management - Core / Virtual Appliance", + "BMCMessageID": "xyz.openbmc_project.Sensor.Device.Error.ReadFailure", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCR0057F", + "ComponentInstance": null, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Communication Failure/Timeout", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Failed to read from the fan control device on the system backplane", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard", + "RelatedEventIDs": {}, + "Serviceable": false, + "Severity": "Warning", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Sensor.Device.Error.ReadFailure||/sys/devices/platform/ahb/ahb:apb/ahb:apb:i2c@1e78a000/1e78a100.i2c-bus/i2c-3/3-0068": { + "AffectedLEDs": null, + "AffectedSubsystem": "Systems Management - Core / Virtual Appliance", + "BMCMessageID": "xyz.openbmc_project.Sensor.Device.Error.ReadFailure", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCR0060F", + "ComponentInstance": 1, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Communication Failure/Timeout", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Failed to read from power supply 1", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/powersupply1", + "RelatedEventIDs": {}, + "Serviceable": false, + "Severity": "Warning", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Sensor.Device.Error.ReadFailure||/sys/devices/platform/ahb/ahb:apb/ahb:apb:i2c@1e78a000/1e78a100.i2c-bus/i2c-3/3-0069": { + "AffectedLEDs": null, + "AffectedSubsystem": "Systems Management - Core / Virtual Appliance", + "BMCMessageID": "xyz.openbmc_project.Sensor.Device.Error.ReadFailure", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCR0060F", + "ComponentInstance": 0, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Communication Failure/Timeout", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Failed to read from power supply 0", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/powersupply0", + "RelatedEventIDs": {}, + "Serviceable": false, + "Severity": "Warning", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Sensor.Device.Error.ReadFailure||/sys/devices/platform/ahb/ahb:apb/ahb:apb:i2c@1e78a000/1e78a100.i2c-bus/i2c-3/3-0076": { + "AffectedLEDs": null, + "AffectedSubsystem": "Systems Management - Core / Virtual Appliance", + "BMCMessageID": "xyz.openbmc_project.Sensor.Device.Error.ReadFailure", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCR0053F", + "ComponentInstance": null, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Communication Failure/Timeout", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Failed to read from the ambient temperature sensor on the system backplane", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard", + "RelatedEventIDs": {}, + "Serviceable": false, + "Severity": "Warning", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Sensor.Device.Error.ReadFailure||/sys/devices/platform/ahb/ahb:apb/ahb:apb:i2c@1e78a000/1e78a100.i2c-bus/i2c-3/3-0077": { + "AffectedLEDs": null, + "AffectedSubsystem": "Systems Management - Core / Virtual Appliance", + "BMCMessageID": "xyz.openbmc_project.Sensor.Device.Error.ReadFailure", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCR0052F", + "ComponentInstance": null, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Communication Failure/Timeout", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Failed to read from the ambient temperature sensor on the system backplane", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard", + "RelatedEventIDs": {}, + "Serviceable": false, + "Severity": "Warning", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Sensor.Device.Error.ReadFailure||/sys/devices/platform/ahb/ahb:apb/ahb:apb:i2c@1e78a000/1e78a100.i2c-bus/i2c-4/4-0070": { + "AffectedLEDs": null, + "AffectedSubsystem": "Systems Management - Core / Virtual Appliance", + "BMCMessageID": "xyz.openbmc_project.Sensor.Device.Error.ReadFailure", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCR0054F", + "ComponentInstance": 0, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Communication Failure/Timeout", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Failed to read from the CPU 0 VDD/VCS VRM on the system backplane", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard", + "RelatedEventIDs": {}, + "Serviceable": false, + "Severity": "Warning", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Sensor.Device.Error.ReadFailure||/sys/devices/platform/ahb/ahb:apb/ahb:apb:i2c@1e78a000/1e78a100.i2c-bus/i2c-4/4-0071": { + "AffectedLEDs": null, + "AffectedSubsystem": "Systems Management - Core / Virtual Appliance", + "BMCMessageID": "xyz.openbmc_project.Sensor.Device.Error.ReadFailure", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCR0055F", + "ComponentInstance": 1, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Communication Failure/Timeout", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Failed to read from the CPU 1 VDN/VDDR VRM on the system backplane", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard", + "RelatedEventIDs": {}, + "Serviceable": false, + "Severity": "Warning", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Sensor.Device.Error.ReadFailure||/sys/devices/platform/ahb/ahb:apb/ahb:apb:i2c@1e78a000/1e78a100.i2c-bus/i2c-5/5-0070": { + "AffectedLEDs": null, + "AffectedSubsystem": "Systems Management - Core / Virtual Appliance", + "BMCMessageID": "xyz.openbmc_project.Sensor.Device.Error.ReadFailure", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCR0054F", + "ComponentInstance": 1, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Communication Failure/Timeout", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Failed to read from the CPU 1 VDD/VCS VRM on the system backplane", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard", + "RelatedEventIDs": {}, + "Serviceable": false, + "Severity": "Warning", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Sensor.Device.Error.ReadFailure||/sys/devices/platform/ahb/ahb:apb/ahb:apb:i2c@1e78a000/1e78a100.i2c-bus/i2c-9/9-004a": { + "AffectedLEDs": null, + "AffectedSubsystem": "Systems Management - Core / Virtual Appliance", + "BMCMessageID": "xyz.openbmc_project.Sensor.Device.Error.ReadFailure", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCR0056F", + "ComponentInstance": null, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Communication Failure/Timeout", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Failed to read from the PCIE temperature sensor on the system backplane", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard", + "RelatedEventIDs": {}, + "Serviceable": false, + "Severity": "Warning", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Sensor.Device.Error.ReadFailure||/sys/devices/platform/gpio-fsi/fsi-master/fsi0/slave@00:00/00:00:00:06/sbefifo1-dev0/occ-hwmon.1": { + "AffectedLEDs": null, + "AffectedSubsystem": "Systems Management - Core / Virtual Appliance", + "BMCMessageID": "xyz.openbmc_project.Sensor.Device.Error.ReadFailure", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCR0063F", + "ComponentInstance": 0, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Communication Failure/Timeout", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Failed to read from the OCC on CPU 0", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0", + "RelatedEventIDs": {}, + "Serviceable": false, + "Severity": "Warning", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Sensor.Device.Error.ReadFailure||/sys/devices/platform/gpio-fsi/fsi-master/fsi0/slave@00:00/00:00:00:0a/fsi-master/fsi1/slave@01:00/01:01:00:06/sbefifo2-dev0/occ-hwmon.2": { + "AffectedLEDs": null, + "AffectedSubsystem": "Systems Management - Core / Virtual Appliance", + "BMCMessageID": "xyz.openbmc_project.Sensor.Device.Error.ReadFailure", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCR0063F", + "ComponentInstance": 1, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Communication Failure/Timeout", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Failed to read from the OCC on CPU 1", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1", + "RelatedEventIDs": {}, + "Serviceable": false, + "Severity": "Warning", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Sensor.Device.Error.ReadFailure||/sys/devices/platform/gpio-fsi/fsi0/slave@00:00/00:00:00:06/sbefifo1-dev0/occ-hwmon.1": { + "AffectedLEDs": null, + "AffectedSubsystem": "Systems Management - Core / Virtual Appliance", + "BMCMessageID": "xyz.openbmc_project.Sensor.Device.Error.ReadFailure", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCR0063F", + "ComponentInstance": 0, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Communication Failure/Timeout", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Failed to read from the OCC on CPU 0", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0", + "RelatedEventIDs": {}, + "Serviceable": false, + "Severity": "Warning", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Sensor.Device.Error.ReadFailure||/sys/devices/platform/gpio-fsi/fsi0/slave@00:00/00:00:00:06/sbefifo1-dev0/occ1-dev0": { + "AffectedLEDs": null, + "AffectedSubsystem": "Systems Management - Core / Virtual Appliance", + "BMCMessageID": "xyz.openbmc_project.Sensor.Device.Error.ReadFailure", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCR0063F", + "ComponentInstance": 0, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Communication Failure/Timeout", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Failed to read from the OCC on CPU 0", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0", + "RelatedEventIDs": {}, + "Serviceable": false, + "Severity": "Warning", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Sensor.Device.Error.ReadFailure||/sys/devices/platform/gpio-fsi/fsi0/slave@00:00/00:00:00:0a/fsi1/slave@01:00/01:01:00:06/sbefifo2-dev0/occ-hwmon.2": { + "AffectedLEDs": null, + "AffectedSubsystem": "Systems Management - Core / Virtual Appliance", + "BMCMessageID": "xyz.openbmc_project.Sensor.Device.Error.ReadFailure", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCR0063F", + "ComponentInstance": 1, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Communication Failure/Timeout", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Failed to read from the OCC on CPU 1", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1", + "RelatedEventIDs": {}, + "Serviceable": false, + "Severity": "Warning", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Sensor.Device.Error.ReadFailure||/sys/devices/platform/gpio-fsi/fsi0/slave@00:00/00:00:00:0a/fsi1/slave@01:00/01:01:00:06/sbefifo2-dev0/occ2-dev0": { + "AffectedLEDs": null, + "AffectedSubsystem": "Systems Management - Core / Virtual Appliance", + "BMCMessageID": "xyz.openbmc_project.Sensor.Device.Error.ReadFailure", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCR0063F", + "ComponentInstance": 1, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Communication Failure/Timeout", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Failed to read from the OCC on CPU 1", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1", + "RelatedEventIDs": {}, + "Serviceable": false, + "Severity": "Warning", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Sensor.Device.Error.ReadFailure||/xyz/openbmc_project/sensors/fan_tach/fan0_0": { + "AffectedLEDs": null, + "AffectedSubsystem": "Cooling", + "BMCMessageID": "xyz.openbmc_project.Sensor.Device.Error.ReadFailure", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCA0058M", + "ComponentInstance": "0,0", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Communication Failure/Timeout", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Unable to read fan 0 rotor 0 speed", + "ReferencedInventory": "/xyz/openbmc_project/sensors/fan_tach/fan0_0", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Sensor.Device.Error.ReadFailure||/xyz/openbmc_project/sensors/fan_tach/fan0_1": { + "AffectedLEDs": null, + "AffectedSubsystem": "Cooling", + "BMCMessageID": "xyz.openbmc_project.Sensor.Device.Error.ReadFailure", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCA0058M", + "ComponentInstance": "0,1", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Communication Failure/Timeout", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Unable to read fan 0 rotor 1 speed", + "ReferencedInventory": "/xyz/openbmc_project/sensors/fan_tach/fan0_1", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Sensor.Device.Error.ReadFailure||/xyz/openbmc_project/sensors/fan_tach/fan1_0": { + "AffectedLEDs": null, + "AffectedSubsystem": "Cooling", + "BMCMessageID": "xyz.openbmc_project.Sensor.Device.Error.ReadFailure", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCA0058M", + "ComponentInstance": "1,0", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Communication Failure/Timeout", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Unable to read fan 1 rotor 0 speed", + "ReferencedInventory": "/xyz/openbmc_project/sensors/fan_tach/fan1_0", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Sensor.Device.Error.ReadFailure||/xyz/openbmc_project/sensors/fan_tach/fan1_1": { + "AffectedLEDs": null, + "AffectedSubsystem": "Cooling", + "BMCMessageID": "xyz.openbmc_project.Sensor.Device.Error.ReadFailure", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCA0058M", + "ComponentInstance": "1,1", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Communication Failure/Timeout", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Unable to read fan 1 rotor 1 speed", + "ReferencedInventory": "/xyz/openbmc_project/sensors/fan_tach/fan1_1", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Sensor.Device.Error.ReadFailure||/xyz/openbmc_project/sensors/fan_tach/fan2_0": { + "AffectedLEDs": null, + "AffectedSubsystem": "Cooling", + "BMCMessageID": "xyz.openbmc_project.Sensor.Device.Error.ReadFailure", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCA0058M", + "ComponentInstance": "2,0", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Communication Failure/Timeout", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Unable to read fan 2 rotor 0 speed", + "ReferencedInventory": "/xyz/openbmc_project/sensors/fan_tach/fan2_0", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Sensor.Device.Error.ReadFailure||/xyz/openbmc_project/sensors/fan_tach/fan2_1": { + "AffectedLEDs": null, + "AffectedSubsystem": "Cooling", + "BMCMessageID": "xyz.openbmc_project.Sensor.Device.Error.ReadFailure", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCA0058M", + "ComponentInstance": "2,1", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Communication Failure/Timeout", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Unable to read fan 2 rotor 1 speed", + "ReferencedInventory": "/xyz/openbmc_project/sensors/fan_tach/fan2_1", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Sensor.Device.Error.ReadFailure||/xyz/openbmc_project/sensors/fan_tach/fan3_0": { + "AffectedLEDs": null, + "AffectedSubsystem": "Cooling", + "BMCMessageID": "xyz.openbmc_project.Sensor.Device.Error.ReadFailure", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCA0058M", + "ComponentInstance": "3,0", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Communication Failure/Timeout", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Unable to read fan 3 rotor 0 speed", + "ReferencedInventory": "/xyz/openbmc_project/sensors/fan_tach/fan3_0", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Sensor.Device.Error.ReadFailure||/xyz/openbmc_project/sensors/fan_tach/fan3_1": { + "AffectedLEDs": null, + "AffectedSubsystem": "Cooling", + "BMCMessageID": "xyz.openbmc_project.Sensor.Device.Error.ReadFailure", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCA0058M", + "ComponentInstance": "3,1", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Communication Failure/Timeout", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Unable to read fan 3 rotor 1 speed", + "ReferencedInventory": "/xyz/openbmc_project/sensors/fan_tach/fan3_1", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Sensor.Device.Error.ReadFailure||/xyz/openbmc_project/sensors/temperature/ambient": { + "AffectedLEDs": null, + "AffectedSubsystem": "Cooling", + "BMCMessageID": "xyz.openbmc_project.Sensor.Device.Error.ReadFailure", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCA0059M", + "ComponentInstance": null, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Communication Failure/Timeout", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Unable to read ambient temperature", + "ReferencedInventory": "/xyz/openbmc_project/sensors/temperature/ambient", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Sensor.Device.Error.ReadFailure||/xyz/openbmc_project/sensors/temperature/dimm0_temp": { + "AffectedLEDs": null, + "AffectedSubsystem": "Cooling", + "BMCMessageID": "xyz.openbmc_project.Sensor.Device.Error.ReadFailure", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCA0060M", + "ComponentInstance": 0, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Communication Failure/Timeout", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Unable to read DIMM 0 power consumption", + "ReferencedInventory": "/xyz/openbmc_project/sensors/temperature/dimm0_temp", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Sensor.Device.Error.ReadFailure||/xyz/openbmc_project/sensors/temperature/dimm10_temp": { + "AffectedLEDs": null, + "AffectedSubsystem": "Cooling", + "BMCMessageID": "xyz.openbmc_project.Sensor.Device.Error.ReadFailure", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCA0060M", + "ComponentInstance": 10, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Communication Failure/Timeout", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Unable to read DIMM 10 power consumption", + "ReferencedInventory": "/xyz/openbmc_project/sensors/temperature/dimm10_temp", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Sensor.Device.Error.ReadFailure||/xyz/openbmc_project/sensors/temperature/dimm11_temp": { + "AffectedLEDs": null, + "AffectedSubsystem": "Cooling", + "BMCMessageID": "xyz.openbmc_project.Sensor.Device.Error.ReadFailure", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCA0060M", + "ComponentInstance": 11, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Communication Failure/Timeout", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Unable to read DIMM 11 power consumption", + "ReferencedInventory": "/xyz/openbmc_project/sensors/temperature/dimm11_temp", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Sensor.Device.Error.ReadFailure||/xyz/openbmc_project/sensors/temperature/dimm12_temp": { + "AffectedLEDs": null, + "AffectedSubsystem": "Cooling", + "BMCMessageID": "xyz.openbmc_project.Sensor.Device.Error.ReadFailure", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCA0060M", + "ComponentInstance": 12, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Communication Failure/Timeout", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Unable to read DIMM 12 power consumption", + "ReferencedInventory": "/xyz/openbmc_project/sensors/temperature/dimm12_temp", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Sensor.Device.Error.ReadFailure||/xyz/openbmc_project/sensors/temperature/dimm13_temp": { + "AffectedLEDs": null, + "AffectedSubsystem": "Cooling", + "BMCMessageID": "xyz.openbmc_project.Sensor.Device.Error.ReadFailure", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCA0060M", + "ComponentInstance": 13, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Communication Failure/Timeout", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Unable to read DIMM 13 power consumption", + "ReferencedInventory": "/xyz/openbmc_project/sensors/temperature/dimm13_temp", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Sensor.Device.Error.ReadFailure||/xyz/openbmc_project/sensors/temperature/dimm14_temp": { + "AffectedLEDs": null, + "AffectedSubsystem": "Cooling", + "BMCMessageID": "xyz.openbmc_project.Sensor.Device.Error.ReadFailure", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCA0060M", + "ComponentInstance": 14, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Communication Failure/Timeout", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Unable to read DIMM 14 power consumption", + "ReferencedInventory": "/xyz/openbmc_project/sensors/temperature/dimm14_temp", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Sensor.Device.Error.ReadFailure||/xyz/openbmc_project/sensors/temperature/dimm15_temp": { + "AffectedLEDs": null, + "AffectedSubsystem": "Cooling", + "BMCMessageID": "xyz.openbmc_project.Sensor.Device.Error.ReadFailure", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCA0060M", + "ComponentInstance": 15, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Communication Failure/Timeout", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Unable to read DIMM 15 power consumption", + "ReferencedInventory": "/xyz/openbmc_project/sensors/temperature/dimm15_temp", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Sensor.Device.Error.ReadFailure||/xyz/openbmc_project/sensors/temperature/dimm1_temp": { + "AffectedLEDs": null, + "AffectedSubsystem": "Cooling", + "BMCMessageID": "xyz.openbmc_project.Sensor.Device.Error.ReadFailure", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCA0060M", + "ComponentInstance": 1, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Communication Failure/Timeout", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Unable to read DIMM 1 power consumption", + "ReferencedInventory": "/xyz/openbmc_project/sensors/temperature/dimm1_temp", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Sensor.Device.Error.ReadFailure||/xyz/openbmc_project/sensors/temperature/dimm2_temp": { + "AffectedLEDs": null, + "AffectedSubsystem": "Cooling", + "BMCMessageID": "xyz.openbmc_project.Sensor.Device.Error.ReadFailure", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCA0060M", + "ComponentInstance": 2, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Communication Failure/Timeout", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Unable to read DIMM 2 power consumption", + "ReferencedInventory": "/xyz/openbmc_project/sensors/temperature/dimm2_temp", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Sensor.Device.Error.ReadFailure||/xyz/openbmc_project/sensors/temperature/dimm3_temp": { + "AffectedLEDs": null, + "AffectedSubsystem": "Cooling", + "BMCMessageID": "xyz.openbmc_project.Sensor.Device.Error.ReadFailure", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCA0060M", + "ComponentInstance": 3, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Communication Failure/Timeout", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Unable to read DIMM 3 power consumption", + "ReferencedInventory": "/xyz/openbmc_project/sensors/temperature/dimm3_temp", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Sensor.Device.Error.ReadFailure||/xyz/openbmc_project/sensors/temperature/dimm4_temp": { + "AffectedLEDs": null, + "AffectedSubsystem": "Cooling", + "BMCMessageID": "xyz.openbmc_project.Sensor.Device.Error.ReadFailure", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCA0060M", + "ComponentInstance": 4, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Communication Failure/Timeout", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Unable to read DIMM 4 power consumption", + "ReferencedInventory": "/xyz/openbmc_project/sensors/temperature/dimm4_temp", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Sensor.Device.Error.ReadFailure||/xyz/openbmc_project/sensors/temperature/dimm5_temp": { + "AffectedLEDs": null, + "AffectedSubsystem": "Cooling", + "BMCMessageID": "xyz.openbmc_project.Sensor.Device.Error.ReadFailure", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCA0060M", + "ComponentInstance": 5, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Communication Failure/Timeout", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Unable to read DIMM 5 power consumption", + "ReferencedInventory": "/xyz/openbmc_project/sensors/temperature/dimm5_temp", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Sensor.Device.Error.ReadFailure||/xyz/openbmc_project/sensors/temperature/dimm6_temp": { + "AffectedLEDs": null, + "AffectedSubsystem": "Cooling", + "BMCMessageID": "xyz.openbmc_project.Sensor.Device.Error.ReadFailure", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCA0060M", + "ComponentInstance": 6, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Communication Failure/Timeout", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Unable to read DIMM 6 power consumption", + "ReferencedInventory": "/xyz/openbmc_project/sensors/temperature/dimm6_temp", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Sensor.Device.Error.ReadFailure||/xyz/openbmc_project/sensors/temperature/dimm7_temp": { + "AffectedLEDs": null, + "AffectedSubsystem": "Cooling", + "BMCMessageID": "xyz.openbmc_project.Sensor.Device.Error.ReadFailure", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCA0060M", + "ComponentInstance": 7, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Communication Failure/Timeout", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Unable to read DIMM 7 power consumption", + "ReferencedInventory": "/xyz/openbmc_project/sensors/temperature/dimm7_temp", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Sensor.Device.Error.ReadFailure||/xyz/openbmc_project/sensors/temperature/dimm8_temp": { + "AffectedLEDs": null, + "AffectedSubsystem": "Cooling", + "BMCMessageID": "xyz.openbmc_project.Sensor.Device.Error.ReadFailure", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCA0060M", + "ComponentInstance": 8, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Communication Failure/Timeout", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Unable to read DIMM 8 power consumption", + "ReferencedInventory": "/xyz/openbmc_project/sensors/temperature/dimm8_temp", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Sensor.Device.Error.ReadFailure||/xyz/openbmc_project/sensors/temperature/dimm9_temp": { + "AffectedLEDs": null, + "AffectedSubsystem": "Cooling", + "BMCMessageID": "xyz.openbmc_project.Sensor.Device.Error.ReadFailure", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCA0060M", + "ComponentInstance": 9, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Communication Failure/Timeout", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Unable to read DIMM 9 power consumption", + "ReferencedInventory": "/xyz/openbmc_project/sensors/temperature/dimm9_temp", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Sensor.Device.Error.ReadFailure||/xyz/openbmc_project/sensors/temperature/gpu0_core_temp": { + "AffectedLEDs": null, + "AffectedSubsystem": "Cooling", + "BMCMessageID": "xyz.openbmc_project.Sensor.Device.Error.ReadFailure", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCA0061M", + "ComponentInstance": 0, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Communication Failure/Timeout", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Unable to read GPU 0 core temperature", + "ReferencedInventory": "/xyz/openbmc_project/sensors/temperature/gpu0_core_temp", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Sensor.Device.Error.ReadFailure||/xyz/openbmc_project/sensors/temperature/gpu0_mem_temp": { + "AffectedLEDs": null, + "AffectedSubsystem": "Cooling", + "BMCMessageID": "xyz.openbmc_project.Sensor.Device.Error.ReadFailure", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCA0061M", + "ComponentInstance": 0, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Communication Failure/Timeout", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Unable to read GPU 0 memory temperature", + "ReferencedInventory": "/xyz/openbmc_project/sensors/temperature/gpu0_mem_temp", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Sensor.Device.Error.ReadFailure||/xyz/openbmc_project/sensors/temperature/gpu1_core_temp": { + "AffectedLEDs": null, + "AffectedSubsystem": "Cooling", + "BMCMessageID": "xyz.openbmc_project.Sensor.Device.Error.ReadFailure", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCA0061M", + "ComponentInstance": 1, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Communication Failure/Timeout", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Unable to read GPU 1 core temperature", + "ReferencedInventory": "/xyz/openbmc_project/sensors/temperature/gpu1_core_temp", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Sensor.Device.Error.ReadFailure||/xyz/openbmc_project/sensors/temperature/gpu1_mem_temp": { + "AffectedLEDs": null, + "AffectedSubsystem": "Cooling", + "BMCMessageID": "xyz.openbmc_project.Sensor.Device.Error.ReadFailure", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCA0061M", + "ComponentInstance": 1, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Communication Failure/Timeout", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Unable to read GPU 1 memory temperature", + "ReferencedInventory": "/xyz/openbmc_project/sensors/temperature/gpu1_mem_temp", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Sensor.Device.Error.ReadFailure||/xyz/openbmc_project/sensors/temperature/gpu2_core_temp": { + "AffectedLEDs": null, + "AffectedSubsystem": "Cooling", + "BMCMessageID": "xyz.openbmc_project.Sensor.Device.Error.ReadFailure", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCA0061M", + "ComponentInstance": 2, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Communication Failure/Timeout", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Unable to read GPU 2 core temperature", + "ReferencedInventory": "/xyz/openbmc_project/sensors/temperature/gpu2_core_temp", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Sensor.Device.Error.ReadFailure||/xyz/openbmc_project/sensors/temperature/gpu2_mem_temp": { + "AffectedLEDs": null, + "AffectedSubsystem": "Cooling", + "BMCMessageID": "xyz.openbmc_project.Sensor.Device.Error.ReadFailure", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCA0061M", + "ComponentInstance": 2, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Communication Failure/Timeout", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Unable to read GPU 2 memory temperature", + "ReferencedInventory": "/xyz/openbmc_project/sensors/temperature/gpu2_mem_temp", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Sensor.Device.Error.ReadFailure||/xyz/openbmc_project/sensors/temperature/gpu3_core_temp": { + "AffectedLEDs": null, + "AffectedSubsystem": "Cooling", + "BMCMessageID": "xyz.openbmc_project.Sensor.Device.Error.ReadFailure", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCA0061M", + "ComponentInstance": 3, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Communication Failure/Timeout", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Unable to read GPU 3 core temperature", + "ReferencedInventory": "/xyz/openbmc_project/sensors/temperature/gpu3_core_temp", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Sensor.Device.Error.ReadFailure||/xyz/openbmc_project/sensors/temperature/gpu3_mem_temp": { + "AffectedLEDs": null, + "AffectedSubsystem": "Cooling", + "BMCMessageID": "xyz.openbmc_project.Sensor.Device.Error.ReadFailure", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCA0061M", + "ComponentInstance": 3, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Communication Failure/Timeout", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Unable to read GPU 3 memory temperature", + "ReferencedInventory": "/xyz/openbmc_project/sensors/temperature/gpu3_mem_temp", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Sensor.Device.Error.ReadFailure||/xyz/openbmc_project/sensors/temperature/gpu4_core_temp": { + "AffectedLEDs": null, + "AffectedSubsystem": "Cooling", + "BMCMessageID": "xyz.openbmc_project.Sensor.Device.Error.ReadFailure", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCA0061M", + "ComponentInstance": 4, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Communication Failure/Timeout", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Unable to read GPU 4 core temperature", + "ReferencedInventory": "/xyz/openbmc_project/sensors/temperature/gpu4_core_temp", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Sensor.Device.Error.ReadFailure||/xyz/openbmc_project/sensors/temperature/gpu4_mem_temp": { + "AffectedLEDs": null, + "AffectedSubsystem": "Cooling", + "BMCMessageID": "xyz.openbmc_project.Sensor.Device.Error.ReadFailure", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCA0061M", + "ComponentInstance": 4, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Communication Failure/Timeout", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Unable to read GPU 4 memory temperature", + "ReferencedInventory": "/xyz/openbmc_project/sensors/temperature/gpu4_mem_temp", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Sensor.Device.Error.ReadFailure||/xyz/openbmc_project/sensors/temperature/gpu5_core_temp": { + "AffectedLEDs": null, + "AffectedSubsystem": "Cooling", + "BMCMessageID": "xyz.openbmc_project.Sensor.Device.Error.ReadFailure", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCA0061M", + "ComponentInstance": 5, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Communication Failure/Timeout", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Unable to read GPU 5 core temperature", + "ReferencedInventory": "/xyz/openbmc_project/sensors/temperature/gpu5_core_temp", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Sensor.Device.Error.ReadFailure||/xyz/openbmc_project/sensors/temperature/gpu5_mem_temp": { + "AffectedLEDs": null, + "AffectedSubsystem": "Cooling", + "BMCMessageID": "xyz.openbmc_project.Sensor.Device.Error.ReadFailure", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCA0061M", + "ComponentInstance": 5, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Communication Failure/Timeout", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Unable to read GPU 5 memory temperature", + "ReferencedInventory": "/xyz/openbmc_project/sensors/temperature/gpu5_mem_temp", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Sensor.Device.Error.ReadFailure||/xyz/openbmc_project/sensors/temperature/p0_core0_temp": { + "AffectedLEDs": null, + "AffectedSubsystem": "Cooling", + "BMCMessageID": "xyz.openbmc_project.Sensor.Device.Error.ReadFailure", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCA0062M", + "ComponentInstance": "0,0", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Communication Failure/Timeout", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Unable to read CPU 0 core 0 temperature", + "ReferencedInventory": "/xyz/openbmc_project/sensors/temperature/p0_core0_temp", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Sensor.Device.Error.ReadFailure||/xyz/openbmc_project/sensors/temperature/p0_core10_temp": { + "AffectedLEDs": null, + "AffectedSubsystem": "Cooling", + "BMCMessageID": "xyz.openbmc_project.Sensor.Device.Error.ReadFailure", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCA0062M", + "ComponentInstance": "0,10", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Communication Failure/Timeout", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Unable to read CPU 0 core 10 temperature", + "ReferencedInventory": "/xyz/openbmc_project/sensors/temperature/p0_core10_temp", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Sensor.Device.Error.ReadFailure||/xyz/openbmc_project/sensors/temperature/p0_core11_temp": { + "AffectedLEDs": null, + "AffectedSubsystem": "Cooling", + "BMCMessageID": "xyz.openbmc_project.Sensor.Device.Error.ReadFailure", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCA0062M", + "ComponentInstance": "0,11", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Communication Failure/Timeout", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Unable to read CPU 0 core 11 temperature", + "ReferencedInventory": "/xyz/openbmc_project/sensors/temperature/p0_core11_temp", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Sensor.Device.Error.ReadFailure||/xyz/openbmc_project/sensors/temperature/p0_core12_temp": { + "AffectedLEDs": null, + "AffectedSubsystem": "Cooling", + "BMCMessageID": "xyz.openbmc_project.Sensor.Device.Error.ReadFailure", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCA0062M", + "ComponentInstance": "0,12", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Communication Failure/Timeout", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Unable to read CPU 0 core 12 temperature", + "ReferencedInventory": "/xyz/openbmc_project/sensors/temperature/p0_core12_temp", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Sensor.Device.Error.ReadFailure||/xyz/openbmc_project/sensors/temperature/p0_core13_temp": { + "AffectedLEDs": null, + "AffectedSubsystem": "Cooling", + "BMCMessageID": "xyz.openbmc_project.Sensor.Device.Error.ReadFailure", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCA0062M", + "ComponentInstance": "0,13", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Communication Failure/Timeout", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Unable to read CPU 0 core 13 temperature", + "ReferencedInventory": "/xyz/openbmc_project/sensors/temperature/p0_core13_temp", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Sensor.Device.Error.ReadFailure||/xyz/openbmc_project/sensors/temperature/p0_core14_temp": { + "AffectedLEDs": null, + "AffectedSubsystem": "Cooling", + "BMCMessageID": "xyz.openbmc_project.Sensor.Device.Error.ReadFailure", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCA0062M", + "ComponentInstance": "0,14", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Communication Failure/Timeout", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Unable to read CPU 0 core 14 temperature", + "ReferencedInventory": "/xyz/openbmc_project/sensors/temperature/p0_core14_temp", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Sensor.Device.Error.ReadFailure||/xyz/openbmc_project/sensors/temperature/p0_core15_temp": { + "AffectedLEDs": null, + "AffectedSubsystem": "Cooling", + "BMCMessageID": "xyz.openbmc_project.Sensor.Device.Error.ReadFailure", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCA0062M", + "ComponentInstance": "0,15", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Communication Failure/Timeout", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Unable to read CPU 0 core 15 temperature", + "ReferencedInventory": "/xyz/openbmc_project/sensors/temperature/p0_core15_temp", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Sensor.Device.Error.ReadFailure||/xyz/openbmc_project/sensors/temperature/p0_core16_temp": { + "AffectedLEDs": null, + "AffectedSubsystem": "Cooling", + "BMCMessageID": "xyz.openbmc_project.Sensor.Device.Error.ReadFailure", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCA0062M", + "ComponentInstance": "0,16", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Communication Failure/Timeout", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Unable to read CPU 0 core 16 temperature", + "ReferencedInventory": "/xyz/openbmc_project/sensors/temperature/p0_core16_temp", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Sensor.Device.Error.ReadFailure||/xyz/openbmc_project/sensors/temperature/p0_core17_temp": { + "AffectedLEDs": null, + "AffectedSubsystem": "Cooling", + "BMCMessageID": "xyz.openbmc_project.Sensor.Device.Error.ReadFailure", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCA0062M", + "ComponentInstance": "0,17", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Communication Failure/Timeout", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Unable to read CPU 0 core 17 temperature", + "ReferencedInventory": "/xyz/openbmc_project/sensors/temperature/p0_core17_temp", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Sensor.Device.Error.ReadFailure||/xyz/openbmc_project/sensors/temperature/p0_core18_temp": { + "AffectedLEDs": null, + "AffectedSubsystem": "Cooling", + "BMCMessageID": "xyz.openbmc_project.Sensor.Device.Error.ReadFailure", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCA0062M", + "ComponentInstance": "0,18", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Communication Failure/Timeout", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Unable to read CPU 0 core 18 temperature", + "ReferencedInventory": "/xyz/openbmc_project/sensors/temperature/p0_core18_temp", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Sensor.Device.Error.ReadFailure||/xyz/openbmc_project/sensors/temperature/p0_core19_temp": { + "AffectedLEDs": null, + "AffectedSubsystem": "Cooling", + "BMCMessageID": "xyz.openbmc_project.Sensor.Device.Error.ReadFailure", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCA0062M", + "ComponentInstance": "0,19", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Communication Failure/Timeout", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Unable to read CPU 0 core 19 temperature", + "ReferencedInventory": "/xyz/openbmc_project/sensors/temperature/p0_core19_temp", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Sensor.Device.Error.ReadFailure||/xyz/openbmc_project/sensors/temperature/p0_core1_temp": { + "AffectedLEDs": null, + "AffectedSubsystem": "Cooling", + "BMCMessageID": "xyz.openbmc_project.Sensor.Device.Error.ReadFailure", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCA0062M", + "ComponentInstance": "0,1", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Communication Failure/Timeout", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Unable to read CPU 0 core 1 temperature", + "ReferencedInventory": "/xyz/openbmc_project/sensors/temperature/p0_core1_temp", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Sensor.Device.Error.ReadFailure||/xyz/openbmc_project/sensors/temperature/p0_core20_temp": { + "AffectedLEDs": null, + "AffectedSubsystem": "Cooling", + "BMCMessageID": "xyz.openbmc_project.Sensor.Device.Error.ReadFailure", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCA0062M", + "ComponentInstance": "0,20", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Communication Failure/Timeout", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Unable to read CPU 0 core 20 temperature", + "ReferencedInventory": "/xyz/openbmc_project/sensors/temperature/p0_core20_temp", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Sensor.Device.Error.ReadFailure||/xyz/openbmc_project/sensors/temperature/p0_core21_temp": { + "AffectedLEDs": null, + "AffectedSubsystem": "Cooling", + "BMCMessageID": "xyz.openbmc_project.Sensor.Device.Error.ReadFailure", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCA0062M", + "ComponentInstance": "0,21", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Communication Failure/Timeout", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Unable to read CPU 0 core 21 temperature", + "ReferencedInventory": "/xyz/openbmc_project/sensors/temperature/p0_core21_temp", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Sensor.Device.Error.ReadFailure||/xyz/openbmc_project/sensors/temperature/p0_core22_temp": { + "AffectedLEDs": null, + "AffectedSubsystem": "Cooling", + "BMCMessageID": "xyz.openbmc_project.Sensor.Device.Error.ReadFailure", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCA0062M", + "ComponentInstance": "0,22", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Communication Failure/Timeout", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Unable to read CPU 0 core 22 temperature", + "ReferencedInventory": "/xyz/openbmc_project/sensors/temperature/p0_core22_temp", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Sensor.Device.Error.ReadFailure||/xyz/openbmc_project/sensors/temperature/p0_core23_temp": { + "AffectedLEDs": null, + "AffectedSubsystem": "Cooling", + "BMCMessageID": "xyz.openbmc_project.Sensor.Device.Error.ReadFailure", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCA0062M", + "ComponentInstance": "0,23", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Communication Failure/Timeout", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Unable to read CPU 0 core 23 temperature", + "ReferencedInventory": "/xyz/openbmc_project/sensors/temperature/p0_core23_temp", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Sensor.Device.Error.ReadFailure||/xyz/openbmc_project/sensors/temperature/p0_core2_temp": { + "AffectedLEDs": null, + "AffectedSubsystem": "Cooling", + "BMCMessageID": "xyz.openbmc_project.Sensor.Device.Error.ReadFailure", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCA0062M", + "ComponentInstance": "0,2", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Communication Failure/Timeout", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Unable to read CPU 0 core 2 temperature", + "ReferencedInventory": "/xyz/openbmc_project/sensors/temperature/p0_core2_temp", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Sensor.Device.Error.ReadFailure||/xyz/openbmc_project/sensors/temperature/p0_core3_temp": { + "AffectedLEDs": null, + "AffectedSubsystem": "Cooling", + "BMCMessageID": "xyz.openbmc_project.Sensor.Device.Error.ReadFailure", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCA0062M", + "ComponentInstance": "0,3", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Communication Failure/Timeout", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Unable to read CPU 0 core 3 temperature", + "ReferencedInventory": "/xyz/openbmc_project/sensors/temperature/p0_core3_temp", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Sensor.Device.Error.ReadFailure||/xyz/openbmc_project/sensors/temperature/p0_core4_temp": { + "AffectedLEDs": null, + "AffectedSubsystem": "Cooling", + "BMCMessageID": "xyz.openbmc_project.Sensor.Device.Error.ReadFailure", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCA0062M", + "ComponentInstance": "0,4", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Communication Failure/Timeout", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Unable to read CPU 0 core 4 temperature", + "ReferencedInventory": "/xyz/openbmc_project/sensors/temperature/p0_core4_temp", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Sensor.Device.Error.ReadFailure||/xyz/openbmc_project/sensors/temperature/p0_core5_temp": { + "AffectedLEDs": null, + "AffectedSubsystem": "Cooling", + "BMCMessageID": "xyz.openbmc_project.Sensor.Device.Error.ReadFailure", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCA0062M", + "ComponentInstance": "0,5", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Communication Failure/Timeout", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Unable to read CPU 0 core 5 temperature", + "ReferencedInventory": "/xyz/openbmc_project/sensors/temperature/p0_core5_temp", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Sensor.Device.Error.ReadFailure||/xyz/openbmc_project/sensors/temperature/p0_core6_temp": { + "AffectedLEDs": null, + "AffectedSubsystem": "Cooling", + "BMCMessageID": "xyz.openbmc_project.Sensor.Device.Error.ReadFailure", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCA0062M", + "ComponentInstance": "0,6", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Communication Failure/Timeout", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Unable to read CPU 0 core 6 temperature", + "ReferencedInventory": "/xyz/openbmc_project/sensors/temperature/p0_core6_temp", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Sensor.Device.Error.ReadFailure||/xyz/openbmc_project/sensors/temperature/p0_core7_temp": { + "AffectedLEDs": null, + "AffectedSubsystem": "Cooling", + "BMCMessageID": "xyz.openbmc_project.Sensor.Device.Error.ReadFailure", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCA0062M", + "ComponentInstance": "0,7", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Communication Failure/Timeout", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Unable to read CPU 0 core 7 temperature", + "ReferencedInventory": "/xyz/openbmc_project/sensors/temperature/p0_core7_temp", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Sensor.Device.Error.ReadFailure||/xyz/openbmc_project/sensors/temperature/p0_core8_temp": { + "AffectedLEDs": null, + "AffectedSubsystem": "Cooling", + "BMCMessageID": "xyz.openbmc_project.Sensor.Device.Error.ReadFailure", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCA0062M", + "ComponentInstance": "0,8", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Communication Failure/Timeout", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Unable to read CPU 0 core 8 temperature", + "ReferencedInventory": "/xyz/openbmc_project/sensors/temperature/p0_core8_temp", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Sensor.Device.Error.ReadFailure||/xyz/openbmc_project/sensors/temperature/p0_core9_temp": { + "AffectedLEDs": null, + "AffectedSubsystem": "Cooling", + "BMCMessageID": "xyz.openbmc_project.Sensor.Device.Error.ReadFailure", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCA0062M", + "ComponentInstance": "0,9", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Communication Failure/Timeout", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Unable to read CPU 0 core 9 temperature", + "ReferencedInventory": "/xyz/openbmc_project/sensors/temperature/p0_core9_temp", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Sensor.Device.Error.ReadFailure||/xyz/openbmc_project/sensors/temperature/p0_vcs_temp": { + "AffectedLEDs": null, + "AffectedSubsystem": "Cooling", + "BMCMessageID": "xyz.openbmc_project.Sensor.Device.Error.ReadFailure", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCA0063M", + "ComponentInstance": 0, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Communication Failure/Timeout", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Unable to read CPU 0 VCS voltage regulator temperature", + "ReferencedInventory": "/xyz/openbmc_project/sensors/temperature/p0_vcs_temp", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Sensor.Device.Error.ReadFailure||/xyz/openbmc_project/sensors/temperature/p0_vdd_temp": { + "AffectedLEDs": null, + "AffectedSubsystem": "Cooling", + "BMCMessageID": "xyz.openbmc_project.Sensor.Device.Error.ReadFailure", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCA0063M", + "ComponentInstance": 0, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Communication Failure/Timeout", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Unable to read CPU 0 VDD voltage regulator temperature", + "ReferencedInventory": "/xyz/openbmc_project/sensors/temperature/p0_vdd_temp", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Sensor.Device.Error.ReadFailure||/xyz/openbmc_project/sensors/temperature/p0_vddr_temp": { + "AffectedLEDs": null, + "AffectedSubsystem": "Cooling", + "BMCMessageID": "xyz.openbmc_project.Sensor.Device.Error.ReadFailure", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCA0063M", + "ComponentInstance": 0, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Communication Failure/Timeout", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Unable to read CPU 0 VDDR voltage regulator temperature", + "ReferencedInventory": "/xyz/openbmc_project/sensors/temperature/p0_vddr_temp", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Sensor.Device.Error.ReadFailure||/xyz/openbmc_project/sensors/temperature/p0_vdn_temp": { + "AffectedLEDs": null, + "AffectedSubsystem": "Cooling", + "BMCMessageID": "xyz.openbmc_project.Sensor.Device.Error.ReadFailure", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCA0063M", + "ComponentInstance": 0, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Communication Failure/Timeout", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Unable to read CPU 0 VDN voltage regulator temperature", + "ReferencedInventory": "/xyz/openbmc_project/sensors/temperature/p0_vdn_temp", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Sensor.Device.Error.ReadFailure||/xyz/openbmc_project/sensors/temperature/p1_core0_temp": { + "AffectedLEDs": null, + "AffectedSubsystem": "Cooling", + "BMCMessageID": "xyz.openbmc_project.Sensor.Device.Error.ReadFailure", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCA0062M", + "ComponentInstance": "1,0", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Communication Failure/Timeout", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Unable to read CPU 1 core 0 temperature", + "ReferencedInventory": "/xyz/openbmc_project/sensors/temperature/p1_core0_temp", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Sensor.Device.Error.ReadFailure||/xyz/openbmc_project/sensors/temperature/p1_core10_temp": { + "AffectedLEDs": null, + "AffectedSubsystem": "Cooling", + "BMCMessageID": "xyz.openbmc_project.Sensor.Device.Error.ReadFailure", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCA0062M", + "ComponentInstance": "1,10", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Communication Failure/Timeout", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Unable to read CPU 1 core 10 temperature", + "ReferencedInventory": "/xyz/openbmc_project/sensors/temperature/p1_core10_temp", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Sensor.Device.Error.ReadFailure||/xyz/openbmc_project/sensors/temperature/p1_core11_temp": { + "AffectedLEDs": null, + "AffectedSubsystem": "Cooling", + "BMCMessageID": "xyz.openbmc_project.Sensor.Device.Error.ReadFailure", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCA0062M", + "ComponentInstance": "1,11", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Communication Failure/Timeout", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Unable to read CPU 1 core 11 temperature", + "ReferencedInventory": "/xyz/openbmc_project/sensors/temperature/p1_core11_temp", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Sensor.Device.Error.ReadFailure||/xyz/openbmc_project/sensors/temperature/p1_core12_temp": { + "AffectedLEDs": null, + "AffectedSubsystem": "Cooling", + "BMCMessageID": "xyz.openbmc_project.Sensor.Device.Error.ReadFailure", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCA0062M", + "ComponentInstance": "1,12", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Communication Failure/Timeout", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Unable to read CPU 1 core 12 temperature", + "ReferencedInventory": "/xyz/openbmc_project/sensors/temperature/p1_core12_temp", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Sensor.Device.Error.ReadFailure||/xyz/openbmc_project/sensors/temperature/p1_core13_temp": { + "AffectedLEDs": null, + "AffectedSubsystem": "Cooling", + "BMCMessageID": "xyz.openbmc_project.Sensor.Device.Error.ReadFailure", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCA0062M", + "ComponentInstance": "1,13", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Communication Failure/Timeout", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Unable to read CPU 1 core 13 temperature", + "ReferencedInventory": "/xyz/openbmc_project/sensors/temperature/p1_core13_temp", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Sensor.Device.Error.ReadFailure||/xyz/openbmc_project/sensors/temperature/p1_core14_temp": { + "AffectedLEDs": null, + "AffectedSubsystem": "Cooling", + "BMCMessageID": "xyz.openbmc_project.Sensor.Device.Error.ReadFailure", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCA0062M", + "ComponentInstance": "1,14", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Communication Failure/Timeout", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Unable to read CPU 1 core 14 temperature", + "ReferencedInventory": "/xyz/openbmc_project/sensors/temperature/p1_core14_temp", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Sensor.Device.Error.ReadFailure||/xyz/openbmc_project/sensors/temperature/p1_core15_temp": { + "AffectedLEDs": null, + "AffectedSubsystem": "Cooling", + "BMCMessageID": "xyz.openbmc_project.Sensor.Device.Error.ReadFailure", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCA0062M", + "ComponentInstance": "1,15", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Communication Failure/Timeout", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Unable to read CPU 1 core 15 temperature", + "ReferencedInventory": "/xyz/openbmc_project/sensors/temperature/p1_core15_temp", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Sensor.Device.Error.ReadFailure||/xyz/openbmc_project/sensors/temperature/p1_core16_temp": { + "AffectedLEDs": null, + "AffectedSubsystem": "Cooling", + "BMCMessageID": "xyz.openbmc_project.Sensor.Device.Error.ReadFailure", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCA0062M", + "ComponentInstance": "1,16", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Communication Failure/Timeout", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Unable to read CPU 1 core 16 temperature", + "ReferencedInventory": "/xyz/openbmc_project/sensors/temperature/p1_core16_temp", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Sensor.Device.Error.ReadFailure||/xyz/openbmc_project/sensors/temperature/p1_core17_temp": { + "AffectedLEDs": null, + "AffectedSubsystem": "Cooling", + "BMCMessageID": "xyz.openbmc_project.Sensor.Device.Error.ReadFailure", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCA0062M", + "ComponentInstance": "1,17", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Communication Failure/Timeout", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Unable to read CPU 1 core 17 temperature", + "ReferencedInventory": "/xyz/openbmc_project/sensors/temperature/p1_core17_temp", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Sensor.Device.Error.ReadFailure||/xyz/openbmc_project/sensors/temperature/p1_core18_temp": { + "AffectedLEDs": null, + "AffectedSubsystem": "Cooling", + "BMCMessageID": "xyz.openbmc_project.Sensor.Device.Error.ReadFailure", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCA0062M", + "ComponentInstance": "1,18", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Communication Failure/Timeout", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Unable to read CPU 1 core 18 temperature", + "ReferencedInventory": "/xyz/openbmc_project/sensors/temperature/p1_core18_temp", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Sensor.Device.Error.ReadFailure||/xyz/openbmc_project/sensors/temperature/p1_core19_temp": { + "AffectedLEDs": null, + "AffectedSubsystem": "Cooling", + "BMCMessageID": "xyz.openbmc_project.Sensor.Device.Error.ReadFailure", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCA0062M", + "ComponentInstance": "1,19", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Communication Failure/Timeout", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Unable to read CPU 1 core 19 temperature", + "ReferencedInventory": "/xyz/openbmc_project/sensors/temperature/p1_core19_temp", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Sensor.Device.Error.ReadFailure||/xyz/openbmc_project/sensors/temperature/p1_core1_temp": { + "AffectedLEDs": null, + "AffectedSubsystem": "Cooling", + "BMCMessageID": "xyz.openbmc_project.Sensor.Device.Error.ReadFailure", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCA0062M", + "ComponentInstance": "1,1", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Communication Failure/Timeout", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Unable to read CPU 1 core 1 temperature", + "ReferencedInventory": "/xyz/openbmc_project/sensors/temperature/p1_core1_temp", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Sensor.Device.Error.ReadFailure||/xyz/openbmc_project/sensors/temperature/p1_core20_temp": { + "AffectedLEDs": null, + "AffectedSubsystem": "Cooling", + "BMCMessageID": "xyz.openbmc_project.Sensor.Device.Error.ReadFailure", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCA0062M", + "ComponentInstance": "1,20", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Communication Failure/Timeout", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Unable to read CPU 1 core 20 temperature", + "ReferencedInventory": "/xyz/openbmc_project/sensors/temperature/p1_core20_temp", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Sensor.Device.Error.ReadFailure||/xyz/openbmc_project/sensors/temperature/p1_core21_temp": { + "AffectedLEDs": null, + "AffectedSubsystem": "Cooling", + "BMCMessageID": "xyz.openbmc_project.Sensor.Device.Error.ReadFailure", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCA0062M", + "ComponentInstance": "1,21", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Communication Failure/Timeout", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Unable to read CPU 1 core 21 temperature", + "ReferencedInventory": "/xyz/openbmc_project/sensors/temperature/p1_core21_temp", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Sensor.Device.Error.ReadFailure||/xyz/openbmc_project/sensors/temperature/p1_core22_temp": { + "AffectedLEDs": null, + "AffectedSubsystem": "Cooling", + "BMCMessageID": "xyz.openbmc_project.Sensor.Device.Error.ReadFailure", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCA0062M", + "ComponentInstance": "1,22", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Communication Failure/Timeout", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Unable to read CPU 1 core 22 temperature", + "ReferencedInventory": "/xyz/openbmc_project/sensors/temperature/p1_core22_temp", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Sensor.Device.Error.ReadFailure||/xyz/openbmc_project/sensors/temperature/p1_core23_temp": { + "AffectedLEDs": null, + "AffectedSubsystem": "Cooling", + "BMCMessageID": "xyz.openbmc_project.Sensor.Device.Error.ReadFailure", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCA0062M", + "ComponentInstance": "1,23", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Communication Failure/Timeout", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Unable to read CPU 1 core 23 temperature", + "ReferencedInventory": "/xyz/openbmc_project/sensors/temperature/p1_core23_temp", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Sensor.Device.Error.ReadFailure||/xyz/openbmc_project/sensors/temperature/p1_core2_temp": { + "AffectedLEDs": null, + "AffectedSubsystem": "Cooling", + "BMCMessageID": "xyz.openbmc_project.Sensor.Device.Error.ReadFailure", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCA0062M", + "ComponentInstance": "1,2", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Communication Failure/Timeout", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Unable to read CPU 1 core 2 temperature", + "ReferencedInventory": "/xyz/openbmc_project/sensors/temperature/p1_core2_temp", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Sensor.Device.Error.ReadFailure||/xyz/openbmc_project/sensors/temperature/p1_core3_temp": { + "AffectedLEDs": null, + "AffectedSubsystem": "Cooling", + "BMCMessageID": "xyz.openbmc_project.Sensor.Device.Error.ReadFailure", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCA0062M", + "ComponentInstance": "1,3", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Communication Failure/Timeout", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Unable to read CPU 1 core 3 temperature", + "ReferencedInventory": "/xyz/openbmc_project/sensors/temperature/p1_core3_temp", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Sensor.Device.Error.ReadFailure||/xyz/openbmc_project/sensors/temperature/p1_core4_temp": { + "AffectedLEDs": null, + "AffectedSubsystem": "Cooling", + "BMCMessageID": "xyz.openbmc_project.Sensor.Device.Error.ReadFailure", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCA0062M", + "ComponentInstance": "1,4", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Communication Failure/Timeout", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Unable to read CPU 1 core 4 temperature", + "ReferencedInventory": "/xyz/openbmc_project/sensors/temperature/p1_core4_temp", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Sensor.Device.Error.ReadFailure||/xyz/openbmc_project/sensors/temperature/p1_core5_temp": { + "AffectedLEDs": null, + "AffectedSubsystem": "Cooling", + "BMCMessageID": "xyz.openbmc_project.Sensor.Device.Error.ReadFailure", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCA0062M", + "ComponentInstance": "1,5", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Communication Failure/Timeout", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Unable to read CPU 1 core 5 temperature", + "ReferencedInventory": "/xyz/openbmc_project/sensors/temperature/p1_core5_temp", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Sensor.Device.Error.ReadFailure||/xyz/openbmc_project/sensors/temperature/p1_core6_temp": { + "AffectedLEDs": null, + "AffectedSubsystem": "Cooling", + "BMCMessageID": "xyz.openbmc_project.Sensor.Device.Error.ReadFailure", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCA0062M", + "ComponentInstance": "1,6", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Communication Failure/Timeout", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Unable to read CPU 1 core 6 temperature", + "ReferencedInventory": "/xyz/openbmc_project/sensors/temperature/p1_core6_temp", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Sensor.Device.Error.ReadFailure||/xyz/openbmc_project/sensors/temperature/p1_core7_temp": { + "AffectedLEDs": null, + "AffectedSubsystem": "Cooling", + "BMCMessageID": "xyz.openbmc_project.Sensor.Device.Error.ReadFailure", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCA0062M", + "ComponentInstance": "1,7", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Communication Failure/Timeout", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Unable to read CPU 1 core 7 temperature", + "ReferencedInventory": "/xyz/openbmc_project/sensors/temperature/p1_core7_temp", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Sensor.Device.Error.ReadFailure||/xyz/openbmc_project/sensors/temperature/p1_core8_temp": { + "AffectedLEDs": null, + "AffectedSubsystem": "Cooling", + "BMCMessageID": "xyz.openbmc_project.Sensor.Device.Error.ReadFailure", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCA0062M", + "ComponentInstance": "1,8", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Communication Failure/Timeout", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Unable to read CPU 1 core 8 temperature", + "ReferencedInventory": "/xyz/openbmc_project/sensors/temperature/p1_core8_temp", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Sensor.Device.Error.ReadFailure||/xyz/openbmc_project/sensors/temperature/p1_core9_temp": { + "AffectedLEDs": null, + "AffectedSubsystem": "Cooling", + "BMCMessageID": "xyz.openbmc_project.Sensor.Device.Error.ReadFailure", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCA0062M", + "ComponentInstance": "1,9", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Communication Failure/Timeout", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Unable to read CPU 1 core 9 temperature", + "ReferencedInventory": "/xyz/openbmc_project/sensors/temperature/p1_core9_temp", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Sensor.Device.Error.ReadFailure||/xyz/openbmc_project/sensors/temperature/p1_vcs_temp": { + "AffectedLEDs": null, + "AffectedSubsystem": "Cooling", + "BMCMessageID": "xyz.openbmc_project.Sensor.Device.Error.ReadFailure", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCA0063M", + "ComponentInstance": 1, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Communication Failure/Timeout", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Unable to read CPU 1 VCS voltage regulator temperature", + "ReferencedInventory": "/xyz/openbmc_project/sensors/temperature/p1_vcs_temp", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Sensor.Device.Error.ReadFailure||/xyz/openbmc_project/sensors/temperature/p1_vdd_temp": { + "AffectedLEDs": null, + "AffectedSubsystem": "Cooling", + "BMCMessageID": "xyz.openbmc_project.Sensor.Device.Error.ReadFailure", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCA0063M", + "ComponentInstance": 1, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Communication Failure/Timeout", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Unable to read CPU 1 VDD voltage regulator temperature", + "ReferencedInventory": "/xyz/openbmc_project/sensors/temperature/p1_vdd_temp", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Sensor.Device.Error.ReadFailure||/xyz/openbmc_project/sensors/temperature/p1_vddr_temp": { + "AffectedLEDs": null, + "AffectedSubsystem": "Cooling", + "BMCMessageID": "xyz.openbmc_project.Sensor.Device.Error.ReadFailure", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCA0063M", + "ComponentInstance": 1, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Communication Failure/Timeout", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Unable to read CPU 1 VDDR voltage regulator temperature", + "ReferencedInventory": "/xyz/openbmc_project/sensors/temperature/p1_vddr_temp", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Sensor.Device.Error.ReadFailure||/xyz/openbmc_project/sensors/temperature/p1_vdn_temp": { + "AffectedLEDs": null, + "AffectedSubsystem": "Cooling", + "BMCMessageID": "xyz.openbmc_project.Sensor.Device.Error.ReadFailure", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCA0063M", + "ComponentInstance": 1, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Communication Failure/Timeout", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Unable to read CPU 1 VDN voltage regulator temperature", + "ReferencedInventory": "/xyz/openbmc_project/sensors/temperature/p1_vdn_temp", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Sensor.Device.Error.ReadFailure||I2C": { + "AffectedLEDs": null, + "AffectedSubsystem": "Systems Management - Core / Virtual Appliance", + "BMCMessageID": "xyz.openbmc_project.Sensor.Device.Error.ReadFailure", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCR0024G", + "ComponentInstance": null, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Communication Failure/Timeout", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Failed to read from I2C device", + "ReferencedInventory": "I2C", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Warning", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Sensor.Device.Error.WriteFailure||/sys/devices/platform/ahb/ahb:apb/ahb:apb:bus@1e78a000/1e78a100.i2c-bus/i2c-3/3-0052": { + "AffectedLEDs": null, + "AffectedSubsystem": "Systems Management - Core / Virtual Appliance", + "BMCMessageID": "xyz.openbmc_project.Sensor.Device.Error.WriteFailure", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCR0058F", + "ComponentInstance": null, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Communication Failure/Timeout", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Failed to write to the fan control device on the system backplane", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard", + "RelatedEventIDs": {}, + "Serviceable": false, + "Severity": "Warning", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Sensor.Device.Error.WriteFailure||/sys/devices/platform/ahb/ahb:apb/ahb:apb:i2c@1e78a000/1e78a100.i2c-bus/i2c-3/3-0052": { + "AffectedLEDs": null, + "AffectedSubsystem": "Systems Management - Core / Virtual Appliance", + "BMCMessageID": "xyz.openbmc_project.Sensor.Device.Error.WriteFailure", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCR0058F", + "ComponentInstance": null, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Communication Failure/Timeout", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Failed to write to the fan control device on the system backplane", + "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard", + "RelatedEventIDs": {}, + "Serviceable": false, + "Severity": "Warning", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Sensor.Device.ReadFailure||/xyz/openbmc_project/sensors/current/ps0_output_current": { + "AffectedLEDs": null, + "AffectedSubsystem": "Power", + "BMCMessageID": "xyz.openbmc_project.Sensor.Device.ReadFailure", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPPW0023M", + "ComponentInstance": null, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Communication Failure/Timeout", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Unable to read the output current from power supply 0", + "ReferencedInventory": "/xyz/openbmc_project/sensors/current/ps0_output_current", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Sensor.Device.ReadFailure||/xyz/openbmc_project/sensors/current/ps1_output_current": { + "AffectedLEDs": null, + "AffectedSubsystem": "Power", + "BMCMessageID": "xyz.openbmc_project.Sensor.Device.ReadFailure", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPPW0023M", + "ComponentInstance": null, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Communication Failure/Timeout", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Unable to read the output current from power supply 1", + "ReferencedInventory": "/xyz/openbmc_project/sensors/current/ps1_output_current", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Sensor.Device.ReadFailure||/xyz/openbmc_project/sensors/fan_tach/fan0_0": { + "AffectedLEDs": null, + "AffectedSubsystem": "Cooling", + "BMCMessageID": "xyz.openbmc_project.Sensor.Device.ReadFailure", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCA0058M", + "ComponentInstance": "0,0", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Communication Failure/Timeout", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Unable to read fan 0 rotor 0 speed", + "ReferencedInventory": "/xyz/openbmc_project/sensors/fan_tach/fan0_0", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Sensor.Device.ReadFailure||/xyz/openbmc_project/sensors/fan_tach/fan0_1": { + "AffectedLEDs": null, + "AffectedSubsystem": "Cooling", + "BMCMessageID": "xyz.openbmc_project.Sensor.Device.ReadFailure", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCA0058M", + "ComponentInstance": "0,1", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Communication Failure/Timeout", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Unable to read fan 0 rotor 1 speed", + "ReferencedInventory": "/xyz/openbmc_project/sensors/fan_tach/fan0_1", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Sensor.Device.ReadFailure||/xyz/openbmc_project/sensors/fan_tach/fan1_0": { + "AffectedLEDs": null, + "AffectedSubsystem": "Cooling", + "BMCMessageID": "xyz.openbmc_project.Sensor.Device.ReadFailure", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCA0058M", + "ComponentInstance": "1,0", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Communication Failure/Timeout", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Unable to read fan 1 rotor 0 speed", + "ReferencedInventory": "/xyz/openbmc_project/sensors/fan_tach/fan1_0", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Sensor.Device.ReadFailure||/xyz/openbmc_project/sensors/fan_tach/fan1_1": { + "AffectedLEDs": null, + "AffectedSubsystem": "Cooling", + "BMCMessageID": "xyz.openbmc_project.Sensor.Device.ReadFailure", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCA0058M", + "ComponentInstance": "1,1", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Communication Failure/Timeout", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Unable to read fan 1 rotor 1 speed", + "ReferencedInventory": "/xyz/openbmc_project/sensors/fan_tach/fan1_1", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Sensor.Device.ReadFailure||/xyz/openbmc_project/sensors/fan_tach/fan2_0": { + "AffectedLEDs": null, + "AffectedSubsystem": "Cooling", + "BMCMessageID": "xyz.openbmc_project.Sensor.Device.ReadFailure", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCA0058M", + "ComponentInstance": "2,0", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Communication Failure/Timeout", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Unable to read fan 2 rotor 0 speed", + "ReferencedInventory": "/xyz/openbmc_project/sensors/fan_tach/fan2_0", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Sensor.Device.ReadFailure||/xyz/openbmc_project/sensors/fan_tach/fan2_1": { + "AffectedLEDs": null, + "AffectedSubsystem": "Cooling", + "BMCMessageID": "xyz.openbmc_project.Sensor.Device.ReadFailure", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCA0058M", + "ComponentInstance": "2,1", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Communication Failure/Timeout", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Unable to read fan 2 rotor 1 speed", + "ReferencedInventory": "/xyz/openbmc_project/sensors/fan_tach/fan2_1", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Sensor.Device.ReadFailure||/xyz/openbmc_project/sensors/fan_tach/fan3_0": { + "AffectedLEDs": null, + "AffectedSubsystem": "Cooling", + "BMCMessageID": "xyz.openbmc_project.Sensor.Device.ReadFailure", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCA0058M", + "ComponentInstance": "3,0", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Communication Failure/Timeout", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Unable to read fan 3 rotor 0 speed", + "ReferencedInventory": "/xyz/openbmc_project/sensors/fan_tach/fan3_0", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Sensor.Device.ReadFailure||/xyz/openbmc_project/sensors/fan_tach/fan3_1": { + "AffectedLEDs": null, + "AffectedSubsystem": "Cooling", + "BMCMessageID": "xyz.openbmc_project.Sensor.Device.ReadFailure", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCA0058M", + "ComponentInstance": "3,1", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Communication Failure/Timeout", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Unable to read fan 3 rotor 1 speed", + "ReferencedInventory": "/xyz/openbmc_project/sensors/fan_tach/fan3_1", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Sensor.Device.ReadFailure||/xyz/openbmc_project/sensors/power/p0_gpu0_power": { + "AffectedLEDs": null, + "AffectedSubsystem": "Power", + "BMCMessageID": "xyz.openbmc_project.Sensor.Device.ReadFailure", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPPW0024M", + "ComponentInstance": 0, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Communication Failure/Timeout", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Unable to read GPU 0 power", + "ReferencedInventory": "/xyz/openbmc_project/sensors/power/p0_gpu0_power", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Sensor.Device.ReadFailure||/xyz/openbmc_project/sensors/power/p0_gpu1_power": { + "AffectedLEDs": null, + "AffectedSubsystem": "Power", + "BMCMessageID": "xyz.openbmc_project.Sensor.Device.ReadFailure", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPPW0024M", + "ComponentInstance": 1, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Communication Failure/Timeout", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Unable to read GPU 1 power", + "ReferencedInventory": "/xyz/openbmc_project/sensors/power/p0_gpu1_power", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Sensor.Device.ReadFailure||/xyz/openbmc_project/sensors/power/p0_gpu2_power": { + "AffectedLEDs": null, + "AffectedSubsystem": "Power", + "BMCMessageID": "xyz.openbmc_project.Sensor.Device.ReadFailure", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPPW0024M", + "ComponentInstance": 2, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Communication Failure/Timeout", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Unable to read GPU 2 power", + "ReferencedInventory": "/xyz/openbmc_project/sensors/power/p0_gpu2_power", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Sensor.Device.ReadFailure||/xyz/openbmc_project/sensors/power/p0_io_power": { + "AffectedLEDs": null, + "AffectedSubsystem": "Power", + "BMCMessageID": "xyz.openbmc_project.Sensor.Device.ReadFailure", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPPW0025M", + "ComponentInstance": 0, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Communication Failure/Timeout", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Unable to read CPU 0 I/O power", + "ReferencedInventory": "/xyz/openbmc_project/sensors/power/p0_io_power", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Sensor.Device.ReadFailure||/xyz/openbmc_project/sensors/power/p0_mem_power": { + "AffectedLEDs": null, + "AffectedSubsystem": "Power", + "BMCMessageID": "xyz.openbmc_project.Sensor.Device.ReadFailure", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPPW0026M", + "ComponentInstance": 0, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Communication Failure/Timeout", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Unable to read CPU 0 memory power", + "ReferencedInventory": "/xyz/openbmc_project/sensors/power/p0_mem_power", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Sensor.Device.ReadFailure||/xyz/openbmc_project/sensors/power/p0_power": { + "AffectedLEDs": null, + "AffectedSubsystem": "Power", + "BMCMessageID": "xyz.openbmc_project.Sensor.Device.ReadFailure", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPPW0027M", + "ComponentInstance": 0, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Communication Failure/Timeout", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Unable to read CPU 0 power", + "ReferencedInventory": "/xyz/openbmc_project/sensors/power/p0_power", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Sensor.Device.ReadFailure||/xyz/openbmc_project/sensors/power/p1_gpu0_power": { + "AffectedLEDs": null, + "AffectedSubsystem": "Power", + "BMCMessageID": "xyz.openbmc_project.Sensor.Device.ReadFailure", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPPW0024M", + "ComponentInstance": 3, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Communication Failure/Timeout", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Unable to read GPU 3 power", + "ReferencedInventory": "/xyz/openbmc_project/sensors/power/p1_gpu0_power", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Sensor.Device.ReadFailure||/xyz/openbmc_project/sensors/power/p1_gpu1_power": { + "AffectedLEDs": null, + "AffectedSubsystem": "Power", + "BMCMessageID": "xyz.openbmc_project.Sensor.Device.ReadFailure", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPPW0024M", + "ComponentInstance": 4, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Communication Failure/Timeout", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Unable to read GPU 4 power", + "ReferencedInventory": "/xyz/openbmc_project/sensors/power/p1_gpu1_power", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Sensor.Device.ReadFailure||/xyz/openbmc_project/sensors/power/p1_gpu2_power": { + "AffectedLEDs": null, + "AffectedSubsystem": "Power", + "BMCMessageID": "xyz.openbmc_project.Sensor.Device.ReadFailure", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPPW0024M", + "ComponentInstance": 5, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Communication Failure/Timeout", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Unable to read GPU 5 power", + "ReferencedInventory": "/xyz/openbmc_project/sensors/power/p1_gpu2_power", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Sensor.Device.ReadFailure||/xyz/openbmc_project/sensors/power/p1_io_power": { + "AffectedLEDs": null, + "AffectedSubsystem": "Power", + "BMCMessageID": "xyz.openbmc_project.Sensor.Device.ReadFailure", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPPW0025M", + "ComponentInstance": 1, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Communication Failure/Timeout", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Unable to read CPU 1 I/O power", + "ReferencedInventory": "/xyz/openbmc_project/sensors/power/p1_io_power", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Sensor.Device.ReadFailure||/xyz/openbmc_project/sensors/power/p1_mem_power": { + "AffectedLEDs": null, + "AffectedSubsystem": "Power", + "BMCMessageID": "xyz.openbmc_project.Sensor.Device.ReadFailure", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPPW0026M", + "ComponentInstance": null, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Communication Failure/Timeout", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Unable to read CPU 1 memory power", + "ReferencedInventory": "/xyz/openbmc_project/sensors/power/p1_mem_power", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Sensor.Device.ReadFailure||/xyz/openbmc_project/sensors/power/p1_power": { + "AffectedLEDs": null, + "AffectedSubsystem": "Power", + "BMCMessageID": "xyz.openbmc_project.Sensor.Device.ReadFailure", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPPW0027M", + "ComponentInstance": 1, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Communication Failure/Timeout", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Unable to read CPU 1 power", + "ReferencedInventory": "/xyz/openbmc_project/sensors/power/p1_power", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Sensor.Device.ReadFailure||/xyz/openbmc_project/sensors/power/ps0_input_power": { + "AffectedLEDs": null, + "AffectedSubsystem": "Power", + "BMCMessageID": "xyz.openbmc_project.Sensor.Device.ReadFailure", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPPW0028M", + "ComponentInstance": 0, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Communication Failure/Timeout", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Unable to read power supply 0 input power", + "ReferencedInventory": "/xyz/openbmc_project/sensors/power/ps0_input_power", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Sensor.Device.ReadFailure||/xyz/openbmc_project/sensors/power/ps1_input_power": { + "AffectedLEDs": null, + "AffectedSubsystem": "Power", + "BMCMessageID": "xyz.openbmc_project.Sensor.Device.ReadFailure", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPPW0028M", + "ComponentInstance": 1, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Communication Failure/Timeout", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Unable to read power supply 1 input power", + "ReferencedInventory": "/xyz/openbmc_project/sensors/power/ps1_input_power", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Sensor.Device.ReadFailure||/xyz/openbmc_project/sensors/power/storage_a_power": { + "AffectedLEDs": null, + "AffectedSubsystem": "Power", + "BMCMessageID": "xyz.openbmc_project.Sensor.Device.ReadFailure", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPPW0029M", + "ComponentInstance": 0, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Communication Failure/Timeout", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Unable to read storage 0 power", + "ReferencedInventory": "/xyz/openbmc_project/sensors/power/storage_a_power", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Sensor.Device.ReadFailure||/xyz/openbmc_project/sensors/power/storage_b_power": { + "AffectedLEDs": null, + "AffectedSubsystem": "Power", + "BMCMessageID": "xyz.openbmc_project.Sensor.Device.ReadFailure", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPPW0029M", + "ComponentInstance": 1, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Communication Failure/Timeout", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Unable to read storage 1 power", + "ReferencedInventory": "/xyz/openbmc_project/sensors/power/storage_b_power", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Sensor.Device.ReadFailure||/xyz/openbmc_project/sensors/power/total_power": { + "AffectedLEDs": null, + "AffectedSubsystem": "Power", + "BMCMessageID": "xyz.openbmc_project.Sensor.Device.ReadFailure", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPPW0030M", + "ComponentInstance": null, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Communication Failure/Timeout", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Unable to read total power consumption", + "ReferencedInventory": "/xyz/openbmc_project/sensors/power/total_power", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Sensor.Device.ReadFailure||/xyz/openbmc_project/sensors/temperature/ambient": { + "AffectedLEDs": null, + "AffectedSubsystem": "Cooling", + "BMCMessageID": "xyz.openbmc_project.Sensor.Device.ReadFailure", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCA0059M", + "ComponentInstance": null, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Communication Failure/Timeout", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Unable to read ambient temperature", + "ReferencedInventory": "/xyz/openbmc_project/sensors/temperature/ambient", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Sensor.Device.ReadFailure||/xyz/openbmc_project/sensors/temperature/dimm0_temp": { + "AffectedLEDs": null, + "AffectedSubsystem": "Cooling", + "BMCMessageID": "xyz.openbmc_project.Sensor.Device.ReadFailure", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCA0060M", + "ComponentInstance": 0, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Communication Failure/Timeout", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Unable to read DIMM 0 power consumption", + "ReferencedInventory": "/xyz/openbmc_project/sensors/temperature/dimm0_temp", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Sensor.Device.ReadFailure||/xyz/openbmc_project/sensors/temperature/dimm10_temp": { + "AffectedLEDs": null, + "AffectedSubsystem": "Cooling", + "BMCMessageID": "xyz.openbmc_project.Sensor.Device.ReadFailure", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCA0060M", + "ComponentInstance": 10, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Communication Failure/Timeout", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Unable to read DIMM 10 power consumption", + "ReferencedInventory": "/xyz/openbmc_project/sensors/temperature/dimm10_temp", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Sensor.Device.ReadFailure||/xyz/openbmc_project/sensors/temperature/dimm11_temp": { + "AffectedLEDs": null, + "AffectedSubsystem": "Cooling", + "BMCMessageID": "xyz.openbmc_project.Sensor.Device.ReadFailure", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCA0060M", + "ComponentInstance": 11, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Communication Failure/Timeout", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Unable to read DIMM 11 power consumption", + "ReferencedInventory": "/xyz/openbmc_project/sensors/temperature/dimm11_temp", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Sensor.Device.ReadFailure||/xyz/openbmc_project/sensors/temperature/dimm12_temp": { + "AffectedLEDs": null, + "AffectedSubsystem": "Cooling", + "BMCMessageID": "xyz.openbmc_project.Sensor.Device.ReadFailure", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCA0060M", + "ComponentInstance": 12, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Communication Failure/Timeout", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Unable to read DIMM 12 power consumption", + "ReferencedInventory": "/xyz/openbmc_project/sensors/temperature/dimm12_temp", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Sensor.Device.ReadFailure||/xyz/openbmc_project/sensors/temperature/dimm13_temp": { + "AffectedLEDs": null, + "AffectedSubsystem": "Cooling", + "BMCMessageID": "xyz.openbmc_project.Sensor.Device.ReadFailure", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCA0060M", + "ComponentInstance": 13, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Communication Failure/Timeout", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Unable to read DIMM 13 power consumption", + "ReferencedInventory": "/xyz/openbmc_project/sensors/temperature/dimm13_temp", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Sensor.Device.ReadFailure||/xyz/openbmc_project/sensors/temperature/dimm14_temp": { + "AffectedLEDs": null, + "AffectedSubsystem": "Cooling", + "BMCMessageID": "xyz.openbmc_project.Sensor.Device.ReadFailure", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCA0060M", + "ComponentInstance": 14, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Communication Failure/Timeout", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Unable to read DIMM 14 power consumption", + "ReferencedInventory": "/xyz/openbmc_project/sensors/temperature/dimm14_temp", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Sensor.Device.ReadFailure||/xyz/openbmc_project/sensors/temperature/dimm15_temp": { + "AffectedLEDs": null, + "AffectedSubsystem": "Cooling", + "BMCMessageID": "xyz.openbmc_project.Sensor.Device.ReadFailure", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCA0060M", + "ComponentInstance": 15, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Communication Failure/Timeout", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Unable to read DIMM 15 power consumption", + "ReferencedInventory": "/xyz/openbmc_project/sensors/temperature/dimm15_temp", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Sensor.Device.ReadFailure||/xyz/openbmc_project/sensors/temperature/dimm1_temp": { + "AffectedLEDs": null, + "AffectedSubsystem": "Cooling", + "BMCMessageID": "xyz.openbmc_project.Sensor.Device.ReadFailure", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCA0060M", + "ComponentInstance": 1, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Communication Failure/Timeout", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Unable to read DIMM 1 power consumption", + "ReferencedInventory": "/xyz/openbmc_project/sensors/temperature/dimm1_temp", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Sensor.Device.ReadFailure||/xyz/openbmc_project/sensors/temperature/dimm2_temp": { + "AffectedLEDs": null, + "AffectedSubsystem": "Cooling", + "BMCMessageID": "xyz.openbmc_project.Sensor.Device.ReadFailure", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCA0060M", + "ComponentInstance": 2, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Communication Failure/Timeout", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Unable to read DIMM 2 power consumption", + "ReferencedInventory": "/xyz/openbmc_project/sensors/temperature/dimm2_temp", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Sensor.Device.ReadFailure||/xyz/openbmc_project/sensors/temperature/dimm3_temp": { + "AffectedLEDs": null, + "AffectedSubsystem": "Cooling", + "BMCMessageID": "xyz.openbmc_project.Sensor.Device.ReadFailure", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCA0060M", + "ComponentInstance": 3, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Communication Failure/Timeout", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Unable to read DIMM 3 power consumption", + "ReferencedInventory": "/xyz/openbmc_project/sensors/temperature/dimm3_temp", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Sensor.Device.ReadFailure||/xyz/openbmc_project/sensors/temperature/dimm4_temp": { + "AffectedLEDs": null, + "AffectedSubsystem": "Cooling", + "BMCMessageID": "xyz.openbmc_project.Sensor.Device.ReadFailure", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCA0060M", + "ComponentInstance": 4, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Communication Failure/Timeout", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Unable to read DIMM 4 power consumption", + "ReferencedInventory": "/xyz/openbmc_project/sensors/temperature/dimm4_temp", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Sensor.Device.ReadFailure||/xyz/openbmc_project/sensors/temperature/dimm5_temp": { + "AffectedLEDs": null, + "AffectedSubsystem": "Cooling", + "BMCMessageID": "xyz.openbmc_project.Sensor.Device.ReadFailure", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCA0060M", + "ComponentInstance": 5, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Communication Failure/Timeout", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Unable to read DIMM 5 power consumption", + "ReferencedInventory": "/xyz/openbmc_project/sensors/temperature/dimm5_temp", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Sensor.Device.ReadFailure||/xyz/openbmc_project/sensors/temperature/dimm6_temp": { + "AffectedLEDs": null, + "AffectedSubsystem": "Cooling", + "BMCMessageID": "xyz.openbmc_project.Sensor.Device.ReadFailure", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCA0060M", + "ComponentInstance": 6, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Communication Failure/Timeout", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Unable to read DIMM 6 power consumption", + "ReferencedInventory": "/xyz/openbmc_project/sensors/temperature/dimm6_temp", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Sensor.Device.ReadFailure||/xyz/openbmc_project/sensors/temperature/dimm7_temp": { + "AffectedLEDs": null, + "AffectedSubsystem": "Cooling", + "BMCMessageID": "xyz.openbmc_project.Sensor.Device.ReadFailure", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCA0060M", + "ComponentInstance": 7, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Communication Failure/Timeout", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Unable to read DIMM 7 power consumption", + "ReferencedInventory": "/xyz/openbmc_project/sensors/temperature/dimm7_temp", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Sensor.Device.ReadFailure||/xyz/openbmc_project/sensors/temperature/dimm8_temp": { + "AffectedLEDs": null, + "AffectedSubsystem": "Cooling", + "BMCMessageID": "xyz.openbmc_project.Sensor.Device.ReadFailure", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCA0060M", + "ComponentInstance": 8, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Communication Failure/Timeout", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Unable to read DIMM 8 power consumption", + "ReferencedInventory": "/xyz/openbmc_project/sensors/temperature/dimm8_temp", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Sensor.Device.ReadFailure||/xyz/openbmc_project/sensors/temperature/dimm9_temp": { + "AffectedLEDs": null, + "AffectedSubsystem": "Cooling", + "BMCMessageID": "xyz.openbmc_project.Sensor.Device.ReadFailure", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCA0060M", + "ComponentInstance": 9, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Communication Failure/Timeout", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Unable to read DIMM 9 power consumption", + "ReferencedInventory": "/xyz/openbmc_project/sensors/temperature/dimm9_temp", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Sensor.Device.ReadFailure||/xyz/openbmc_project/sensors/temperature/gpu0_core_temp": { + "AffectedLEDs": null, + "AffectedSubsystem": "Cooling", + "BMCMessageID": "xyz.openbmc_project.Sensor.Device.ReadFailure", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCA0061M", + "ComponentInstance": 0, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Communication Failure/Timeout", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Unable to read GPU 0 core temperature", + "ReferencedInventory": "/xyz/openbmc_project/sensors/temperature/gpu0_core_temp", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Sensor.Device.ReadFailure||/xyz/openbmc_project/sensors/temperature/gpu0_mem_temp": { + "AffectedLEDs": null, + "AffectedSubsystem": "Cooling", + "BMCMessageID": "xyz.openbmc_project.Sensor.Device.ReadFailure", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCA0061M", + "ComponentInstance": 0, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Communication Failure/Timeout", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Unable to read GPU 0 memory temperature", + "ReferencedInventory": "/xyz/openbmc_project/sensors/temperature/gpu0_mem_temp", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Sensor.Device.ReadFailure||/xyz/openbmc_project/sensors/temperature/gpu1_core_temp": { + "AffectedLEDs": null, + "AffectedSubsystem": "Cooling", + "BMCMessageID": "xyz.openbmc_project.Sensor.Device.ReadFailure", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCA0061M", + "ComponentInstance": 1, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Communication Failure/Timeout", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Unable to read GPU 1 core temperature", + "ReferencedInventory": "/xyz/openbmc_project/sensors/temperature/gpu1_core_temp", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Sensor.Device.ReadFailure||/xyz/openbmc_project/sensors/temperature/gpu1_mem_temp": { + "AffectedLEDs": null, + "AffectedSubsystem": "Cooling", + "BMCMessageID": "xyz.openbmc_project.Sensor.Device.ReadFailure", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCA0061M", + "ComponentInstance": 1, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Communication Failure/Timeout", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Unable to read GPU 1 memory temperature", + "ReferencedInventory": "/xyz/openbmc_project/sensors/temperature/gpu1_mem_temp", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Sensor.Device.ReadFailure||/xyz/openbmc_project/sensors/temperature/gpu2_core_temp": { + "AffectedLEDs": null, + "AffectedSubsystem": "Cooling", + "BMCMessageID": "xyz.openbmc_project.Sensor.Device.ReadFailure", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCA0061M", + "ComponentInstance": 2, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Communication Failure/Timeout", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Unable to read GPU 2 core temperature", + "ReferencedInventory": "/xyz/openbmc_project/sensors/temperature/gpu2_core_temp", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Sensor.Device.ReadFailure||/xyz/openbmc_project/sensors/temperature/gpu2_mem_temp": { + "AffectedLEDs": null, + "AffectedSubsystem": "Cooling", + "BMCMessageID": "xyz.openbmc_project.Sensor.Device.ReadFailure", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCA0061M", + "ComponentInstance": 2, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Communication Failure/Timeout", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Unable to read GPU 2 memory temperature", + "ReferencedInventory": "/xyz/openbmc_project/sensors/temperature/gpu2_mem_temp", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Sensor.Device.ReadFailure||/xyz/openbmc_project/sensors/temperature/gpu3_core_temp": { + "AffectedLEDs": null, + "AffectedSubsystem": "Cooling", + "BMCMessageID": "xyz.openbmc_project.Sensor.Device.ReadFailure", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCA0061M", + "ComponentInstance": 3, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Communication Failure/Timeout", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Unable to read GPU 3 core temperature", + "ReferencedInventory": "/xyz/openbmc_project/sensors/temperature/gpu3_core_temp", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Sensor.Device.ReadFailure||/xyz/openbmc_project/sensors/temperature/gpu3_mem_temp": { + "AffectedLEDs": null, + "AffectedSubsystem": "Cooling", + "BMCMessageID": "xyz.openbmc_project.Sensor.Device.ReadFailure", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCA0061M", + "ComponentInstance": 3, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Communication Failure/Timeout", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Unable to read GPU 3 memory temperature", + "ReferencedInventory": "/xyz/openbmc_project/sensors/temperature/gpu3_mem_temp", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Sensor.Device.ReadFailure||/xyz/openbmc_project/sensors/temperature/gpu4_core_temp": { + "AffectedLEDs": null, + "AffectedSubsystem": "Cooling", + "BMCMessageID": "xyz.openbmc_project.Sensor.Device.ReadFailure", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCA0061M", + "ComponentInstance": 4, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Communication Failure/Timeout", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Unable to read GPU 4 core temperature", + "ReferencedInventory": "/xyz/openbmc_project/sensors/temperature/gpu4_core_temp", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Sensor.Device.ReadFailure||/xyz/openbmc_project/sensors/temperature/gpu4_mem_temp": { + "AffectedLEDs": null, + "AffectedSubsystem": "Cooling", + "BMCMessageID": "xyz.openbmc_project.Sensor.Device.ReadFailure", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCA0061M", + "ComponentInstance": 4, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Communication Failure/Timeout", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Unable to read GPU 4 memory temperature", + "ReferencedInventory": "/xyz/openbmc_project/sensors/temperature/gpu4_mem_temp", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Sensor.Device.ReadFailure||/xyz/openbmc_project/sensors/temperature/gpu5_core_temp": { + "AffectedLEDs": null, + "AffectedSubsystem": "Cooling", + "BMCMessageID": "xyz.openbmc_project.Sensor.Device.ReadFailure", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCA0061M", + "ComponentInstance": 5, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Communication Failure/Timeout", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Unable to read GPU 5 core temperature", + "ReferencedInventory": "/xyz/openbmc_project/sensors/temperature/gpu5_core_temp", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Sensor.Device.ReadFailure||/xyz/openbmc_project/sensors/temperature/gpu5_mem_temp": { + "AffectedLEDs": null, + "AffectedSubsystem": "Cooling", + "BMCMessageID": "xyz.openbmc_project.Sensor.Device.ReadFailure", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCA0061M", + "ComponentInstance": 5, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Communication Failure/Timeout", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Unable to read GPU 5 memory temperature", + "ReferencedInventory": "/xyz/openbmc_project/sensors/temperature/gpu5_mem_temp", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Sensor.Device.ReadFailure||/xyz/openbmc_project/sensors/temperature/p0_core0_temp": { + "AffectedLEDs": null, + "AffectedSubsystem": "Cooling", + "BMCMessageID": "xyz.openbmc_project.Sensor.Device.ReadFailure", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCA0062M", + "ComponentInstance": "0,0", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Communication Failure/Timeout", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Unable to read CPU 0 core 0 temperature", + "ReferencedInventory": "/xyz/openbmc_project/sensors/temperature/p0_core0_temp", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Sensor.Device.ReadFailure||/xyz/openbmc_project/sensors/temperature/p0_core10_temp": { + "AffectedLEDs": null, + "AffectedSubsystem": "Cooling", + "BMCMessageID": "xyz.openbmc_project.Sensor.Device.ReadFailure", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCA0062M", + "ComponentInstance": "0,10", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Communication Failure/Timeout", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Unable to read CPU 0 core 10 temperature", + "ReferencedInventory": "/xyz/openbmc_project/sensors/temperature/p0_core10_temp", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Sensor.Device.ReadFailure||/xyz/openbmc_project/sensors/temperature/p0_core11_temp": { + "AffectedLEDs": null, + "AffectedSubsystem": "Cooling", + "BMCMessageID": "xyz.openbmc_project.Sensor.Device.ReadFailure", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCA0062M", + "ComponentInstance": "0,11", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Communication Failure/Timeout", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Unable to read CPU 0 core 11 temperature", + "ReferencedInventory": "/xyz/openbmc_project/sensors/temperature/p0_core11_temp", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Sensor.Device.ReadFailure||/xyz/openbmc_project/sensors/temperature/p0_core12_temp": { + "AffectedLEDs": null, + "AffectedSubsystem": "Cooling", + "BMCMessageID": "xyz.openbmc_project.Sensor.Device.ReadFailure", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCA0062M", + "ComponentInstance": "0,12", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Communication Failure/Timeout", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Unable to read CPU 0 core 12 temperature", + "ReferencedInventory": "/xyz/openbmc_project/sensors/temperature/p0_core12_temp", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Sensor.Device.ReadFailure||/xyz/openbmc_project/sensors/temperature/p0_core13_temp": { + "AffectedLEDs": null, + "AffectedSubsystem": "Cooling", + "BMCMessageID": "xyz.openbmc_project.Sensor.Device.ReadFailure", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCA0062M", + "ComponentInstance": "0,13", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Communication Failure/Timeout", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Unable to read CPU 0 core 13 temperature", + "ReferencedInventory": "/xyz/openbmc_project/sensors/temperature/p0_core13_temp", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Sensor.Device.ReadFailure||/xyz/openbmc_project/sensors/temperature/p0_core14_temp": { + "AffectedLEDs": null, + "AffectedSubsystem": "Cooling", + "BMCMessageID": "xyz.openbmc_project.Sensor.Device.ReadFailure", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCA0062M", + "ComponentInstance": "0,14", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Communication Failure/Timeout", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Unable to read CPU 0 core 14 temperature", + "ReferencedInventory": "/xyz/openbmc_project/sensors/temperature/p0_core14_temp", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Sensor.Device.ReadFailure||/xyz/openbmc_project/sensors/temperature/p0_core15_temp": { + "AffectedLEDs": null, + "AffectedSubsystem": "Cooling", + "BMCMessageID": "xyz.openbmc_project.Sensor.Device.ReadFailure", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCA0062M", + "ComponentInstance": "0,15", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Communication Failure/Timeout", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Unable to read CPU 0 core 15 temperature", + "ReferencedInventory": "/xyz/openbmc_project/sensors/temperature/p0_core15_temp", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Sensor.Device.ReadFailure||/xyz/openbmc_project/sensors/temperature/p0_core16_temp": { + "AffectedLEDs": null, + "AffectedSubsystem": "Cooling", + "BMCMessageID": "xyz.openbmc_project.Sensor.Device.ReadFailure", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCA0062M", + "ComponentInstance": "0,16", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Communication Failure/Timeout", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Unable to read CPU 0 core 16 temperature", + "ReferencedInventory": "/xyz/openbmc_project/sensors/temperature/p0_core16_temp", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Sensor.Device.ReadFailure||/xyz/openbmc_project/sensors/temperature/p0_core17_temp": { + "AffectedLEDs": null, + "AffectedSubsystem": "Cooling", + "BMCMessageID": "xyz.openbmc_project.Sensor.Device.ReadFailure", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCA0062M", + "ComponentInstance": "0,17", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Communication Failure/Timeout", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Unable to read CPU 0 core 17 temperature", + "ReferencedInventory": "/xyz/openbmc_project/sensors/temperature/p0_core17_temp", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Sensor.Device.ReadFailure||/xyz/openbmc_project/sensors/temperature/p0_core18_temp": { + "AffectedLEDs": null, + "AffectedSubsystem": "Cooling", + "BMCMessageID": "xyz.openbmc_project.Sensor.Device.ReadFailure", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCA0062M", + "ComponentInstance": "0,18", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Communication Failure/Timeout", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Unable to read CPU 0 core 18 temperature", + "ReferencedInventory": "/xyz/openbmc_project/sensors/temperature/p0_core18_temp", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Sensor.Device.ReadFailure||/xyz/openbmc_project/sensors/temperature/p0_core19_temp": { + "AffectedLEDs": null, + "AffectedSubsystem": "Cooling", + "BMCMessageID": "xyz.openbmc_project.Sensor.Device.ReadFailure", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCA0062M", + "ComponentInstance": "0,19", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Communication Failure/Timeout", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Unable to read CPU 0 core 19 temperature", + "ReferencedInventory": "/xyz/openbmc_project/sensors/temperature/p0_core19_temp", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Sensor.Device.ReadFailure||/xyz/openbmc_project/sensors/temperature/p0_core1_temp": { + "AffectedLEDs": null, + "AffectedSubsystem": "Cooling", + "BMCMessageID": "xyz.openbmc_project.Sensor.Device.ReadFailure", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCA0062M", + "ComponentInstance": "0,1", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Communication Failure/Timeout", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Unable to read CPU 0 core 1 temperature", + "ReferencedInventory": "/xyz/openbmc_project/sensors/temperature/p0_core1_temp", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Sensor.Device.ReadFailure||/xyz/openbmc_project/sensors/temperature/p0_core20_temp": { + "AffectedLEDs": null, + "AffectedSubsystem": "Cooling", + "BMCMessageID": "xyz.openbmc_project.Sensor.Device.ReadFailure", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCA0062M", + "ComponentInstance": "0,20", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Communication Failure/Timeout", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Unable to read CPU 0 core 20 temperature", + "ReferencedInventory": "/xyz/openbmc_project/sensors/temperature/p0_core20_temp", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Sensor.Device.ReadFailure||/xyz/openbmc_project/sensors/temperature/p0_core21_temp": { + "AffectedLEDs": null, + "AffectedSubsystem": "Cooling", + "BMCMessageID": "xyz.openbmc_project.Sensor.Device.ReadFailure", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCA0062M", + "ComponentInstance": "0,21", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Communication Failure/Timeout", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Unable to read CPU 0 core 21 temperature", + "ReferencedInventory": "/xyz/openbmc_project/sensors/temperature/p0_core21_temp", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Sensor.Device.ReadFailure||/xyz/openbmc_project/sensors/temperature/p0_core22_temp": { + "AffectedLEDs": null, + "AffectedSubsystem": "Cooling", + "BMCMessageID": "xyz.openbmc_project.Sensor.Device.ReadFailure", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCA0062M", + "ComponentInstance": "0,22", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Communication Failure/Timeout", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Unable to read CPU 0 core 22 temperature", + "ReferencedInventory": "/xyz/openbmc_project/sensors/temperature/p0_core22_temp", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Sensor.Device.ReadFailure||/xyz/openbmc_project/sensors/temperature/p0_core23_temp": { + "AffectedLEDs": null, + "AffectedSubsystem": "Cooling", + "BMCMessageID": "xyz.openbmc_project.Sensor.Device.ReadFailure", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCA0062M", + "ComponentInstance": "0,23", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Communication Failure/Timeout", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Unable to read CPU 0 core 23 temperature", + "ReferencedInventory": "/xyz/openbmc_project/sensors/temperature/p0_core23_temp", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Sensor.Device.ReadFailure||/xyz/openbmc_project/sensors/temperature/p0_core2_temp": { + "AffectedLEDs": null, + "AffectedSubsystem": "Cooling", + "BMCMessageID": "xyz.openbmc_project.Sensor.Device.ReadFailure", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCA0062M", + "ComponentInstance": "0,2", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Communication Failure/Timeout", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Unable to read CPU 0 core 2 temperature", + "ReferencedInventory": "/xyz/openbmc_project/sensors/temperature/p0_core2_temp", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Sensor.Device.ReadFailure||/xyz/openbmc_project/sensors/temperature/p0_core3_temp": { + "AffectedLEDs": null, + "AffectedSubsystem": "Cooling", + "BMCMessageID": "xyz.openbmc_project.Sensor.Device.ReadFailure", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCA0062M", + "ComponentInstance": "0,3", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Communication Failure/Timeout", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Unable to read CPU 0 core 3 temperature", + "ReferencedInventory": "/xyz/openbmc_project/sensors/temperature/p0_core3_temp", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Sensor.Device.ReadFailure||/xyz/openbmc_project/sensors/temperature/p0_core4_temp": { + "AffectedLEDs": null, + "AffectedSubsystem": "Cooling", + "BMCMessageID": "xyz.openbmc_project.Sensor.Device.ReadFailure", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCA0062M", + "ComponentInstance": "0,4", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Communication Failure/Timeout", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Unable to read CPU 0 core 4 temperature", + "ReferencedInventory": "/xyz/openbmc_project/sensors/temperature/p0_core4_temp", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Sensor.Device.ReadFailure||/xyz/openbmc_project/sensors/temperature/p0_core5_temp": { + "AffectedLEDs": null, + "AffectedSubsystem": "Cooling", + "BMCMessageID": "xyz.openbmc_project.Sensor.Device.ReadFailure", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCA0062M", + "ComponentInstance": "0,5", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Communication Failure/Timeout", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Unable to read CPU 0 core 5 temperature", + "ReferencedInventory": "/xyz/openbmc_project/sensors/temperature/p0_core5_temp", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Sensor.Device.ReadFailure||/xyz/openbmc_project/sensors/temperature/p0_core6_temp": { + "AffectedLEDs": null, + "AffectedSubsystem": "Cooling", + "BMCMessageID": "xyz.openbmc_project.Sensor.Device.ReadFailure", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCA0062M", + "ComponentInstance": "0,6", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Communication Failure/Timeout", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Unable to read CPU 0 core 6 temperature", + "ReferencedInventory": "/xyz/openbmc_project/sensors/temperature/p0_core6_temp", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Sensor.Device.ReadFailure||/xyz/openbmc_project/sensors/temperature/p0_core7_temp": { + "AffectedLEDs": null, + "AffectedSubsystem": "Cooling", + "BMCMessageID": "xyz.openbmc_project.Sensor.Device.ReadFailure", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCA0062M", + "ComponentInstance": "0,7", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Communication Failure/Timeout", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Unable to read CPU 0 core 7 temperature", + "ReferencedInventory": "/xyz/openbmc_project/sensors/temperature/p0_core7_temp", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Sensor.Device.ReadFailure||/xyz/openbmc_project/sensors/temperature/p0_core8_temp": { + "AffectedLEDs": null, + "AffectedSubsystem": "Cooling", + "BMCMessageID": "xyz.openbmc_project.Sensor.Device.ReadFailure", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCA0062M", + "ComponentInstance": "0,8", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Communication Failure/Timeout", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Unable to read CPU 0 core 8 temperature", + "ReferencedInventory": "/xyz/openbmc_project/sensors/temperature/p0_core8_temp", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Sensor.Device.ReadFailure||/xyz/openbmc_project/sensors/temperature/p0_core9_temp": { + "AffectedLEDs": null, + "AffectedSubsystem": "Cooling", + "BMCMessageID": "xyz.openbmc_project.Sensor.Device.ReadFailure", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCA0062M", + "ComponentInstance": "0,9", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Communication Failure/Timeout", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Unable to read CPU 0 core 9 temperature", + "ReferencedInventory": "/xyz/openbmc_project/sensors/temperature/p0_core9_temp", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Sensor.Device.ReadFailure||/xyz/openbmc_project/sensors/temperature/p0_vcs_temp": { + "AffectedLEDs": null, + "AffectedSubsystem": "Cooling", + "BMCMessageID": "xyz.openbmc_project.Sensor.Device.ReadFailure", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCA0063M", + "ComponentInstance": 0, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Communication Failure/Timeout", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Unable to read CPU 0 VCS voltage regulator temperature", + "ReferencedInventory": "/xyz/openbmc_project/sensors/temperature/p0_vcs_temp", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Sensor.Device.ReadFailure||/xyz/openbmc_project/sensors/temperature/p0_vdd_temp": { + "AffectedLEDs": null, + "AffectedSubsystem": "Cooling", + "BMCMessageID": "xyz.openbmc_project.Sensor.Device.ReadFailure", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCA0063M", + "ComponentInstance": 0, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Communication Failure/Timeout", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Unable to read CPU 0 VDD voltage regulator temperature", + "ReferencedInventory": "/xyz/openbmc_project/sensors/temperature/p0_vdd_temp", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Sensor.Device.ReadFailure||/xyz/openbmc_project/sensors/temperature/p0_vddr_temp": { + "AffectedLEDs": null, + "AffectedSubsystem": "Cooling", + "BMCMessageID": "xyz.openbmc_project.Sensor.Device.ReadFailure", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCA0063M", + "ComponentInstance": 0, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Communication Failure/Timeout", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Unable to read CPU 0 VDDR voltage regulator temperature", + "ReferencedInventory": "/xyz/openbmc_project/sensors/temperature/p0_vddr_temp", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Sensor.Device.ReadFailure||/xyz/openbmc_project/sensors/temperature/p0_vdn_temp": { + "AffectedLEDs": null, + "AffectedSubsystem": "Cooling", + "BMCMessageID": "xyz.openbmc_project.Sensor.Device.ReadFailure", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCA0063M", + "ComponentInstance": 0, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Communication Failure/Timeout", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Unable to read CPU 0 VDN voltage regulator temperature", + "ReferencedInventory": "/xyz/openbmc_project/sensors/temperature/p0_vdn_temp", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Sensor.Device.ReadFailure||/xyz/openbmc_project/sensors/temperature/p1_core0_temp": { + "AffectedLEDs": null, + "AffectedSubsystem": "Cooling", + "BMCMessageID": "xyz.openbmc_project.Sensor.Device.ReadFailure", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCA0062M", + "ComponentInstance": "1,0", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Communication Failure/Timeout", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Unable to read CPU 1 core 0 temperature", + "ReferencedInventory": "/xyz/openbmc_project/sensors/temperature/p1_core0_temp", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Sensor.Device.ReadFailure||/xyz/openbmc_project/sensors/temperature/p1_core10_temp": { + "AffectedLEDs": null, + "AffectedSubsystem": "Cooling", + "BMCMessageID": "xyz.openbmc_project.Sensor.Device.ReadFailure", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCA0062M", + "ComponentInstance": "1,10", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Communication Failure/Timeout", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Unable to read CPU 1 core 10 temperature", + "ReferencedInventory": "/xyz/openbmc_project/sensors/temperature/p1_core10_temp", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Sensor.Device.ReadFailure||/xyz/openbmc_project/sensors/temperature/p1_core11_temp": { + "AffectedLEDs": null, + "AffectedSubsystem": "Cooling", + "BMCMessageID": "xyz.openbmc_project.Sensor.Device.ReadFailure", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCA0062M", + "ComponentInstance": "1,11", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Communication Failure/Timeout", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Unable to read CPU 1 core 11 temperature", + "ReferencedInventory": "/xyz/openbmc_project/sensors/temperature/p1_core11_temp", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Sensor.Device.ReadFailure||/xyz/openbmc_project/sensors/temperature/p1_core12_temp": { + "AffectedLEDs": null, + "AffectedSubsystem": "Cooling", + "BMCMessageID": "xyz.openbmc_project.Sensor.Device.ReadFailure", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCA0062M", + "ComponentInstance": "1,12", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Communication Failure/Timeout", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Unable to read CPU 1 core 12 temperature", + "ReferencedInventory": "/xyz/openbmc_project/sensors/temperature/p1_core12_temp", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Sensor.Device.ReadFailure||/xyz/openbmc_project/sensors/temperature/p1_core13_temp": { + "AffectedLEDs": null, + "AffectedSubsystem": "Cooling", + "BMCMessageID": "xyz.openbmc_project.Sensor.Device.ReadFailure", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCA0062M", + "ComponentInstance": "1,13", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Communication Failure/Timeout", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Unable to read CPU 1 core 13 temperature", + "ReferencedInventory": "/xyz/openbmc_project/sensors/temperature/p1_core13_temp", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Sensor.Device.ReadFailure||/xyz/openbmc_project/sensors/temperature/p1_core14_temp": { + "AffectedLEDs": null, + "AffectedSubsystem": "Cooling", + "BMCMessageID": "xyz.openbmc_project.Sensor.Device.ReadFailure", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCA0062M", + "ComponentInstance": "1,14", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Communication Failure/Timeout", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Unable to read CPU 1 core 14 temperature", + "ReferencedInventory": "/xyz/openbmc_project/sensors/temperature/p1_core14_temp", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Sensor.Device.ReadFailure||/xyz/openbmc_project/sensors/temperature/p1_core15_temp": { + "AffectedLEDs": null, + "AffectedSubsystem": "Cooling", + "BMCMessageID": "xyz.openbmc_project.Sensor.Device.ReadFailure", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCA0062M", + "ComponentInstance": "1,15", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Communication Failure/Timeout", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Unable to read CPU 1 core 15 temperature", + "ReferencedInventory": "/xyz/openbmc_project/sensors/temperature/p1_core15_temp", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Sensor.Device.ReadFailure||/xyz/openbmc_project/sensors/temperature/p1_core16_temp": { + "AffectedLEDs": null, + "AffectedSubsystem": "Cooling", + "BMCMessageID": "xyz.openbmc_project.Sensor.Device.ReadFailure", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCA0062M", + "ComponentInstance": "1,16", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Communication Failure/Timeout", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Unable to read CPU 1 core 16 temperature", + "ReferencedInventory": "/xyz/openbmc_project/sensors/temperature/p1_core16_temp", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Sensor.Device.ReadFailure||/xyz/openbmc_project/sensors/temperature/p1_core17_temp": { + "AffectedLEDs": null, + "AffectedSubsystem": "Cooling", + "BMCMessageID": "xyz.openbmc_project.Sensor.Device.ReadFailure", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCA0062M", + "ComponentInstance": "1,17", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Communication Failure/Timeout", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Unable to read CPU 1 core 17 temperature", + "ReferencedInventory": "/xyz/openbmc_project/sensors/temperature/p1_core17_temp", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Sensor.Device.ReadFailure||/xyz/openbmc_project/sensors/temperature/p1_core18_temp": { + "AffectedLEDs": null, + "AffectedSubsystem": "Cooling", + "BMCMessageID": "xyz.openbmc_project.Sensor.Device.ReadFailure", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCA0062M", + "ComponentInstance": "1,18", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Communication Failure/Timeout", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Unable to read CPU 1 core 18 temperature", + "ReferencedInventory": "/xyz/openbmc_project/sensors/temperature/p1_core18_temp", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Sensor.Device.ReadFailure||/xyz/openbmc_project/sensors/temperature/p1_core19_temp": { + "AffectedLEDs": null, + "AffectedSubsystem": "Cooling", + "BMCMessageID": "xyz.openbmc_project.Sensor.Device.ReadFailure", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCA0062M", + "ComponentInstance": "1,19", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Communication Failure/Timeout", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Unable to read CPU 1 core 19 temperature", + "ReferencedInventory": "/xyz/openbmc_project/sensors/temperature/p1_core19_temp", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Sensor.Device.ReadFailure||/xyz/openbmc_project/sensors/temperature/p1_core1_temp": { + "AffectedLEDs": null, + "AffectedSubsystem": "Cooling", + "BMCMessageID": "xyz.openbmc_project.Sensor.Device.ReadFailure", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCA0062M", + "ComponentInstance": "1,1", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Communication Failure/Timeout", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Unable to read CPU 1 core 1 temperature", + "ReferencedInventory": "/xyz/openbmc_project/sensors/temperature/p1_core1_temp", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Sensor.Device.ReadFailure||/xyz/openbmc_project/sensors/temperature/p1_core20_temp": { + "AffectedLEDs": null, + "AffectedSubsystem": "Cooling", + "BMCMessageID": "xyz.openbmc_project.Sensor.Device.ReadFailure", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCA0062M", + "ComponentInstance": "1,20", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Communication Failure/Timeout", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Unable to read CPU 1 core 20 temperature", + "ReferencedInventory": "/xyz/openbmc_project/sensors/temperature/p1_core20_temp", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Sensor.Device.ReadFailure||/xyz/openbmc_project/sensors/temperature/p1_core21_temp": { + "AffectedLEDs": null, + "AffectedSubsystem": "Cooling", + "BMCMessageID": "xyz.openbmc_project.Sensor.Device.ReadFailure", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCA0062M", + "ComponentInstance": "1,21", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Communication Failure/Timeout", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Unable to read CPU 1 core 21 temperature", + "ReferencedInventory": "/xyz/openbmc_project/sensors/temperature/p1_core21_temp", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Sensor.Device.ReadFailure||/xyz/openbmc_project/sensors/temperature/p1_core22_temp": { + "AffectedLEDs": null, + "AffectedSubsystem": "Cooling", + "BMCMessageID": "xyz.openbmc_project.Sensor.Device.ReadFailure", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCA0062M", + "ComponentInstance": "1,22", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Communication Failure/Timeout", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Unable to read CPU 1 core 22 temperature", + "ReferencedInventory": "/xyz/openbmc_project/sensors/temperature/p1_core22_temp", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Sensor.Device.ReadFailure||/xyz/openbmc_project/sensors/temperature/p1_core23_temp": { + "AffectedLEDs": null, + "AffectedSubsystem": "Cooling", + "BMCMessageID": "xyz.openbmc_project.Sensor.Device.ReadFailure", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCA0062M", + "ComponentInstance": "1,23", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Communication Failure/Timeout", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Unable to read CPU 1 core 23 temperature", + "ReferencedInventory": "/xyz/openbmc_project/sensors/temperature/p1_core23_temp", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Sensor.Device.ReadFailure||/xyz/openbmc_project/sensors/temperature/p1_core2_temp": { + "AffectedLEDs": null, + "AffectedSubsystem": "Cooling", + "BMCMessageID": "xyz.openbmc_project.Sensor.Device.ReadFailure", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCA0062M", + "ComponentInstance": "1,2", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Communication Failure/Timeout", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Unable to read CPU 1 core 2 temperature", + "ReferencedInventory": "/xyz/openbmc_project/sensors/temperature/p1_core2_temp", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Sensor.Device.ReadFailure||/xyz/openbmc_project/sensors/temperature/p1_core3_temp": { + "AffectedLEDs": null, + "AffectedSubsystem": "Cooling", + "BMCMessageID": "xyz.openbmc_project.Sensor.Device.ReadFailure", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCA0062M", + "ComponentInstance": "1,3", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Communication Failure/Timeout", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Unable to read CPU 1 core 3 temperature", + "ReferencedInventory": "/xyz/openbmc_project/sensors/temperature/p1_core3_temp", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Sensor.Device.ReadFailure||/xyz/openbmc_project/sensors/temperature/p1_core4_temp": { + "AffectedLEDs": null, + "AffectedSubsystem": "Cooling", + "BMCMessageID": "xyz.openbmc_project.Sensor.Device.ReadFailure", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCA0062M", + "ComponentInstance": "1,4", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Communication Failure/Timeout", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Unable to read CPU 1 core 4 temperature", + "ReferencedInventory": "/xyz/openbmc_project/sensors/temperature/p1_core4_temp", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Sensor.Device.ReadFailure||/xyz/openbmc_project/sensors/temperature/p1_core5_temp": { + "AffectedLEDs": null, + "AffectedSubsystem": "Cooling", + "BMCMessageID": "xyz.openbmc_project.Sensor.Device.ReadFailure", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCA0062M", + "ComponentInstance": "1,5", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Communication Failure/Timeout", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Unable to read CPU 1 core 5 temperature", + "ReferencedInventory": "/xyz/openbmc_project/sensors/temperature/p1_core5_temp", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Sensor.Device.ReadFailure||/xyz/openbmc_project/sensors/temperature/p1_core6_temp": { + "AffectedLEDs": null, + "AffectedSubsystem": "Cooling", + "BMCMessageID": "xyz.openbmc_project.Sensor.Device.ReadFailure", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCA0062M", + "ComponentInstance": "1,6", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Communication Failure/Timeout", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Unable to read CPU 1 core 6 temperature", + "ReferencedInventory": "/xyz/openbmc_project/sensors/temperature/p1_core6_temp", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Sensor.Device.ReadFailure||/xyz/openbmc_project/sensors/temperature/p1_core7_temp": { + "AffectedLEDs": null, + "AffectedSubsystem": "Cooling", + "BMCMessageID": "xyz.openbmc_project.Sensor.Device.ReadFailure", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCA0062M", + "ComponentInstance": "1,7", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Communication Failure/Timeout", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Unable to read CPU 1 core 7 temperature", + "ReferencedInventory": "/xyz/openbmc_project/sensors/temperature/p1_core7_temp", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Sensor.Device.ReadFailure||/xyz/openbmc_project/sensors/temperature/p1_core8_temp": { + "AffectedLEDs": null, + "AffectedSubsystem": "Cooling", + "BMCMessageID": "xyz.openbmc_project.Sensor.Device.ReadFailure", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCA0062M", + "ComponentInstance": "1,8", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Communication Failure/Timeout", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Unable to read CPU 1 core 8 temperature", + "ReferencedInventory": "/xyz/openbmc_project/sensors/temperature/p1_core8_temp", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Sensor.Device.ReadFailure||/xyz/openbmc_project/sensors/temperature/p1_core9_temp": { + "AffectedLEDs": null, + "AffectedSubsystem": "Cooling", + "BMCMessageID": "xyz.openbmc_project.Sensor.Device.ReadFailure", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCA0062M", + "ComponentInstance": "1,9", + "DateAdded": null, + "DateReviewed": null, + "EventType": "Communication Failure/Timeout", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Unable to read CPU 1 core 9 temperature", + "ReferencedInventory": "/xyz/openbmc_project/sensors/temperature/p1_core9_temp", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Sensor.Device.ReadFailure||/xyz/openbmc_project/sensors/temperature/p1_vcs_temp": { + "AffectedLEDs": null, + "AffectedSubsystem": "Cooling", + "BMCMessageID": "xyz.openbmc_project.Sensor.Device.ReadFailure", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCA0063M", + "ComponentInstance": 1, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Communication Failure/Timeout", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Unable to read CPU 1 VCS voltage regulator temperature", + "ReferencedInventory": "/xyz/openbmc_project/sensors/temperature/p1_vcs_temp", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Sensor.Device.ReadFailure||/xyz/openbmc_project/sensors/temperature/p1_vdd_temp": { + "AffectedLEDs": null, + "AffectedSubsystem": "Cooling", + "BMCMessageID": "xyz.openbmc_project.Sensor.Device.ReadFailure", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCA0063M", + "ComponentInstance": 1, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Communication Failure/Timeout", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Unable to read CPU 1 VDD voltage regulator temperature", + "ReferencedInventory": "/xyz/openbmc_project/sensors/temperature/p1_vdd_temp", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Sensor.Device.ReadFailure||/xyz/openbmc_project/sensors/temperature/p1_vddr_temp": { + "AffectedLEDs": null, + "AffectedSubsystem": "Cooling", + "BMCMessageID": "xyz.openbmc_project.Sensor.Device.ReadFailure", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCA0063M", + "ComponentInstance": 1, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Communication Failure/Timeout", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Unable to read CPU 1 VDDR voltage regulator temperature", + "ReferencedInventory": "/xyz/openbmc_project/sensors/temperature/p1_vddr_temp", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Sensor.Device.ReadFailure||/xyz/openbmc_project/sensors/temperature/p1_vdn_temp": { + "AffectedLEDs": null, + "AffectedSubsystem": "Cooling", + "BMCMessageID": "xyz.openbmc_project.Sensor.Device.ReadFailure", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCA0063M", + "ComponentInstance": 1, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Communication Failure/Timeout", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Unable to read CPU 1 VDN voltage regulator temperature", + "ReferencedInventory": "/xyz/openbmc_project/sensors/temperature/p1_vdn_temp", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Sensor.Device.ReadFailure||/xyz/openbmc_project/sensors/voltage/ps0_input_voltage": { + "AffectedLEDs": null, + "AffectedSubsystem": "Power", + "BMCMessageID": "xyz.openbmc_project.Sensor.Device.ReadFailure", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPPW0031M", + "ComponentInstance": 0, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Communication Failure/Timeout", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Unable to read power supply 0 input voltage", + "ReferencedInventory": "/xyz/openbmc_project/sensors/voltage/ps0_input_voltage", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Sensor.Device.ReadFailure||/xyz/openbmc_project/sensors/voltage/ps0_output_voltage": { + "AffectedLEDs": null, + "AffectedSubsystem": "Power", + "BMCMessageID": "xyz.openbmc_project.Sensor.Device.ReadFailure", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPPW0032M", + "ComponentInstance": 0, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Communication Failure/Timeout", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Unable to read power supply 0 output voltage", + "ReferencedInventory": "/xyz/openbmc_project/sensors/voltage/ps0_output_voltage", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Sensor.Device.ReadFailure||/xyz/openbmc_project/sensors/voltage/ps1_input_voltage": { + "AffectedLEDs": null, + "AffectedSubsystem": "Power", + "BMCMessageID": "xyz.openbmc_project.Sensor.Device.ReadFailure", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPPW0031M", + "ComponentInstance": 1, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Communication Failure/Timeout", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Unable to read power supply 1 input voltage", + "ReferencedInventory": "/xyz/openbmc_project/sensors/voltage/ps1_input_voltage", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Sensor.Device.ReadFailure||/xyz/openbmc_project/sensors/voltage/ps1_output_voltage": { + "AffectedLEDs": null, + "AffectedSubsystem": "Power", + "BMCMessageID": "xyz.openbmc_project.Sensor.Device.ReadFailure", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPPW0032M", + "ComponentInstance": 1, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Communication Failure/Timeout", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Unable to read power supply 1 output voltage", + "ReferencedInventory": "/xyz/openbmc_project/sensors/voltage/ps1_output_voltage", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Sensor.Threshold.Error.CriticalHigh||temperature": { + "AffectedLEDs": null, + "AffectedSubsystem": "Cooling", + "BMCMessageID": "xyz.openbmc_project.Sensor.Threshold.Error.CriticalHigh", + "CallHomeCandidate": true, + "CommonEventID": "FQPSPCA0072M", + "ComponentInstance": null, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Environmental", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Three or more CPU cores have gone over temperature, initiating a thermal shutdown.", + "ReferencedInventory": "temperature", + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Software.Image.Error.InternalFailure": { + "AffectedLEDs": null, + "AffectedSubsystem": "Systems Management - Core / Virtual Appliance", + "BMCMessageID": "xyz.openbmc_project.Software.Image.Error.InternalFailure", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCR0027G", + "ComponentInstance": null, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Firmware/Software Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Unable to process the image provided", + "ReferencedInventory": null, + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Warning", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Software.Image.Error.ManifestFileFailure": { + "AffectedLEDs": null, + "AffectedSubsystem": "Systems Management - Core / Virtual Appliance", + "BMCMessageID": "xyz.openbmc_project.Software.Image.Error.ManifestFileFailure", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCR0025G", + "ComponentInstance": null, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Firmware/Software Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Unable to read the manifest file", + "ReferencedInventory": null, + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Warning", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Software.Image.Error.UnTarFailure": { + "AffectedLEDs": null, + "AffectedSubsystem": "Systems Management - Core / Virtual Appliance", + "BMCMessageID": "xyz.openbmc_project.Software.Image.Error.UnTarFailure", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCR0026G", + "ComponentInstance": null, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Firmware/Software Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Unable to decompress the tar file", + "ReferencedInventory": null, + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Warning", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Software.Version.Error.Incompatible": { + "AffectedLEDs": null, + "AffectedSubsystem": "Systems Management - Core / Virtual Appliance", + "BMCMessageID": "xyz.openbmc_project.Software.Version.Error.Incompatible", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCR0067M", + "ComponentInstance": null, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Firmware/Software Not Valid", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "The PNOR and BMC code levels are not compatible and the system will not boot", + "ReferencedInventory": null, + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Software.Version.Error.InternalFailure": { + "AffectedLEDs": null, + "AffectedSubsystem": "Systems Management - Core / Virtual Appliance", + "BMCMessageID": "xyz.openbmc_project.Software.Version.Error.InternalFailure", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCR0027G", + "ComponentInstance": null, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Firmware/Software Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Unable to process the image provided", + "ReferencedInventory": null, + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Warning", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Software.Version.Error.ManifestFileFailure": { + "AffectedLEDs": null, + "AffectedSubsystem": "Systems Management - Core / Virtual Appliance", + "BMCMessageID": "xyz.openbmc_project.Software.Version.Error.ManifestFileFailure", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCR0025G", + "ComponentInstance": null, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Firmware/Software Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Unable to read the manifest file", + "ReferencedInventory": null, + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Warning", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.Software.Version.Error.UnTarFailure": { + "AffectedLEDs": null, + "AffectedSubsystem": "Systems Management - Core / Virtual Appliance", + "BMCMessageID": "xyz.openbmc_project.Software.Version.Error.UnTarFailure", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCR0026G", + "ComponentInstance": null, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Firmware/Software Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Unable to decompress the tar file", + "ReferencedInventory": null, + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Warning", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.State.Host.Error.SoftOffTimeout": { + "AffectedLEDs": null, + "AffectedSubsystem": "Host Operating System", + "BMCMessageID": "xyz.openbmc_project.State.Host.Error.SoftOffTimeout", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPOS0000G", + "ComponentInstance": null, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Firmware/Software Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "The soft power off of the host has timed out", + "ReferencedInventory": null, + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Warning", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.State.Host.SoftOffTimeout": { + "AffectedLEDs": null, + "AffectedSubsystem": "Host Operating System", + "BMCMessageID": "xyz.openbmc_project.State.Host.SoftOffTimeout", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPOS0000G", + "ComponentInstance": null, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Firmware/Software Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "The soft power off of the host has timed out", + "ReferencedInventory": null, + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Warning", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.State.Shutdown.Inventory.Error.Fan": { + "AffectedLEDs": null, + "AffectedSubsystem": "Cooling", + "BMCMessageID": "xyz.openbmc_project.State.Shutdown.Inventory.Error.Fan", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCA0067F", + "ComponentInstance": null, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "The system shut down due to not having enough functional fans.", + "ReferencedInventory": null, + "RelatedEventIDs": {}, + "Serviceable": false, + "Severity": "Warning", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.State.Shutdown.Power.Error.Blackout": { + "AffectedLEDs": null, + "AffectedSubsystem": "Power", + "BMCMessageID": "xyz.openbmc_project.State.Shutdown.Power.Error.Blackout", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPPW0065F", + "ComponentInstance": null, + "DateAdded": "10/29/2019", + "DateReviewed": null, + "EventType": "Unrecoverable Hardware Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "All power input was lost and caused an unexpected shutdown while the host was powered on", + "ReferencedInventory": null, + "RelatedEventIDs": {}, + "Serviceable": false, + "Severity": "Warning", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.State.Shutdown.Power.Error.Fault": { + "AffectedLEDs": null, + "AffectedSubsystem": "Cooling", + "BMCMessageID": "xyz.openbmc_project.State.Shutdown.Power.Error.Fault", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCA0068F", + "ComponentInstance": null, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Environmental", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "The system was shut down due to a power fault being detected.", + "ReferencedInventory": null, + "RelatedEventIDs": {}, + "Serviceable": false, + "Severity": "Warning", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.State.Shutdown.ThermalEvent.Error.GPU": { + "AffectedLEDs": null, + "AffectedSubsystem": "Cooling", + "BMCMessageID": "xyz.openbmc_project.State.Shutdown.ThermalEvent.Error.GPU", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCA0070F", + "ComponentInstance": null, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Environmental", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "The system was shut down due to a GPU going over temperature", + "ReferencedInventory": null, + "RelatedEventIDs": {}, + "Serviceable": false, + "Severity": "Warning", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.State.Shutdown.ThermalEvent.Error.Processor": { + "AffectedLEDs": null, + "AffectedSubsystem": "Cooling", + "BMCMessageID": "xyz.openbmc_project.State.Shutdown.ThermalEvent.Error.Processor", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCA0069F", + "ComponentInstance": null, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Environmental", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "The system was shut down due to a processor going over temperature", + "ReferencedInventory": null, + "RelatedEventIDs": {}, + "Serviceable": false, + "Severity": "Warning", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.User.Common.Error.NoResource": { + "AffectedLEDs": null, + "AffectedSubsystem": "Systems Management - Core / Virtual Appliance", + "BMCMessageID": "xyz.openbmc_project.User.Common.Error.NoResource", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCR0073G", + "ComponentInstance": null, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Firmware/Software Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "Insufficient resources to modify users", + "ReferencedInventory": null, + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Warning", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.User.Common.Error.PrivilegeMappingExists": { + "AffectedLEDs": null, + "AffectedSubsystem": "Systems Management - Core / Virtual Appliance", + "BMCMessageID": "xyz.openbmc_project.User.Common.Error.PrivilegeMappingExists", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCR0068G", + "ComponentInstance": null, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Firmware/Software Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "The specified user privileges already exist", + "ReferencedInventory": null, + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Warning", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.User.Common.Error.UserNameDoesNotExist": { + "AffectedLEDs": null, + "AffectedSubsystem": "Systems Management - Core / Virtual Appliance", + "BMCMessageID": "xyz.openbmc_project.User.Common.Error.UserNameDoesNotExist", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCR0070G", + "ComponentInstance": null, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Firmware/Software Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "The specified user name does not exist", + "ReferencedInventory": null, + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Warning", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.User.Common.Error.UserNameExists": { + "AffectedLEDs": null, + "AffectedSubsystem": "Systems Management - Core / Virtual Appliance", + "BMCMessageID": "xyz.openbmc_project.User.Common.Error.UserNameExists", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCR0069G", + "ComponentInstance": null, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Firmware/Software Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "The specified user name already exists", + "ReferencedInventory": null, + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Warning", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.User.Common.Error.UserNameGroupFail": { + "AffectedLEDs": null, + "AffectedSubsystem": "Systems Management - Core / Virtual Appliance", + "BMCMessageID": "xyz.openbmc_project.User.Common.Error.UserNameGroupFail", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCR0071G", + "ComponentInstance": null, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Firmware/Software Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "The specified user name cannot be assigned to the specified group", + "ReferencedInventory": null, + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Warning", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.openbmc_project.User.Common.Error.UserNamePrivFail": { + "AffectedLEDs": null, + "AffectedSubsystem": "Systems Management - Core / Virtual Appliance", + "BMCMessageID": "xyz.openbmc_project.User.Common.Error.UserNamePrivFail", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPCR0072G", + "ComponentInstance": null, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Firmware/Software Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "The specified user does not have sufficient privileges", + "ReferencedInventory": null, + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Warning", + "UserAction": null, + "VMMigrationFlag": null + }, + "xyz.opnbmc_project.State.Host.Error.SoftOffTimeout": { + "AffectedLEDs": null, + "AffectedSubsystem": "Canister/Appliance", + "BMCMessageID": "xyz.opnbmc_project.State.Host.Error.SoftOffTimeout", + "CallHomeCandidate": false, + "CommonEventID": "FQPSPAA0010M", + "ComponentInstance": null, + "DateAdded": null, + "DateReviewed": null, + "EventType": "Firmware/Software Failure", + "Internal": false, + "LengthyDescription": null, + "LogSource": "BMC", + "Message": "The host did not shutdown within the configured time", + "ReferencedInventory": null, + "RelatedEventIDs": {}, + "Serviceable": true, + "Severity": "Critical", + "UserAction": null, + "VMMigrationFlag": null + } + }, + "fileInfo": { + "Entity": "IBM OpenBMC", + "Version": "1.8.4", + "language": "English" + } +} diff --git a/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/logging/ibm-logging/policyTable.json b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/logging/ibm-logging/mihawk/policyTable.json old mode 100644 new mode 100755 similarity index 100% rename from Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/logging/ibm-logging/policyTable.json rename to Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/logging/ibm-logging/mihawk/policyTable.json diff --git a/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/logging/ibm-logging_%.bbappend b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/logging/ibm-logging_%.bbappend index 913a0e8b..e5e6f57e 100644 --- a/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/logging/ibm-logging_%.bbappend +++ b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/logging/ibm-logging_%.bbappend @@ -1,2 +1,3 @@ FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:" -PACKAGECONFIG += "policy-interface" +PACKAGECONFIG_append_ibm-ac-server = " policy-interface" +PACKAGECONFIG_append_mihawk = " policy-interface" diff --git a/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/logging/mihawk-phosphor-logging-callouts-native.bb b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/logging/mihawk-phosphor-logging-callouts-native.bb new file mode 100644 index 00000000..a52e9376 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/logging/mihawk-phosphor-logging-callouts-native.bb @@ -0,0 +1,20 @@ +SUMMARY = "Mihawk inventory map for phosphor-ipmi-host" +PR = "r1" +LICENSE = "Apache-2.0" +LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10" + +inherit native +inherit phosphor-logging + +SRC_URI += "file://callouts.yaml" + +PROVIDES += "virtual/phosphor-logging-callouts" + +S = "${WORKDIR}" + +do_install() { + DEST=${D}${callouts_datadir} + install -d ${DEST} + install callouts.yaml ${DEST} +} + diff --git a/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/logging/mihawk-phosphor-logging-callouts/callouts.yaml b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/logging/mihawk-phosphor-logging-callouts/callouts.yaml new file mode 100755 index 00000000..4fd50604 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/logging/mihawk-phosphor-logging-callouts/callouts.yaml @@ -0,0 +1,3 @@ +/sys/devices/platform/gpio-fsi/fsi0/slave@00:00/raw: /system/chassis/motherboard/cpu0 +/sys/devices/platform/gpio-fsi/fsi0/slave@00:00/00:00:00:0a/fsi1/slave@01:00/raw: /system/chassis/motherboard/cpu1 + diff --git a/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/logging/phosphor-logging_%.bbappend b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/logging/phosphor-logging_%.bbappend new file mode 100644 index 00000000..9dff37d1 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/logging/phosphor-logging_%.bbappend @@ -0,0 +1,2 @@ +PACKAGECONFIG_append_witherspoon-128 = " openpower-pels" +PACKAGECONFIG_append_rainier = " openpower-pels" diff --git a/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/mboxd/mboxd_%.bbappend b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/mboxd/mboxd_%.bbappend index ac35ae9b..e23d8fa4 100644 --- a/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/mboxd/mboxd_%.bbappend +++ b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/mboxd/mboxd_%.bbappend @@ -1,12 +1,14 @@ -MBOXD_FLASH_SIZE = "64M" +MBOXD_FLASH_SIZE_ibm-ac-server = "64M" +MBOXD_FLASH_SIZE_mihawk = "64M" +MBOXD_FLASH_SIZE_rainier = "64M" FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:" -SYSTEMD_SERVICE_${PN} += "check-pnor-format.service" +SYSTEMD_SERVICE_${PN}_append_df-openpower-ubi-fs = " check-pnor-format.service" -SRC_URI += "file://check_pnor_format.sh" +SRC_URI_append_df-openpower-ubi-fs = " file://check_pnor_format.sh" -do_install_append() { +do_install_append_df-openpower-ubi-fs() { install -d ${D}${bindir} install -m 0755 ${WORKDIR}/check_pnor_format.sh ${D}${bindir}/check_pnor_format.sh } diff --git a/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/network/first-boot-set-mac_%.bbappend b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/network/first-boot-set-mac_%.bbappend index 29d23c8c..fc8f6b86 100644 --- a/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/network/first-boot-set-mac_%.bbappend +++ b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/network/first-boot-set-mac_%.bbappend @@ -1 +1,2 @@ -SYSTEMD_SERVICE_${PN} += "first-boot-set-mac@eth0.service" +SYSTEMD_SERVICE_${PN}_append_ibm-ac-server = " first-boot-set-mac@eth0.service" +SYSTEMD_SERVICE_${PN}_append_mihawk = " first-boot-set-mac@eth0.service first-boot-set-mac@eth1.service" \ No newline at end of file diff --git a/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/network/network/ncsi-netlink.service b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/network/network/ncsi-netlink.service index 44b34195..890551e7 100644 --- a/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/network/network/ncsi-netlink.service +++ b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/network/network/ncsi-netlink.service @@ -1,7 +1,6 @@ [Unit] Description=Stop the ethernet link failover -Wants=xyz.openbmc_project.Network.service -After=xyz.openbmc_project.Network.service +After=network.service [Service] Restart=no diff --git a/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/network/phosphor-network_%.bbappend b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/network/phosphor-network_%.bbappend index 5137f4e0..bcb2d013 100644 --- a/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/network/phosphor-network_%.bbappend +++ b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/network/phosphor-network_%.bbappend @@ -1,8 +1,15 @@ FILESEXTRAPATHS_prepend := "${THISDIR}/network:" -SRC_URI += "file://ncsi-netlink.service" -SYSTEMD_SERVICE_${PN} += "ncsi-netlink.service" +SRC_URI_append_ibm-ac-server = " file://ncsi-netlink.service" +SRC_URI_append_mihawk = " file://ncsi-netlink.service" -do_install_append() { +SYSTEMD_SERVICE_${PN}_append_ibm-ac-server = " ncsi-netlink.service" +SYSTEMD_SERVICE_${PN}_append_mihawk = " ncsi-netlink.service" + +do_install_append_ibm-ac-server() { + install -d ${D}${systemd_system_unitdir} + install -m 0644 ${WORKDIR}/ncsi-netlink.service ${D}${systemd_system_unitdir} +} +do_install_append_mihawk() { install -d ${D}${systemd_system_unitdir} install -m 0644 ${WORKDIR}/ncsi-netlink.service ${D}${systemd_system_unitdir} } diff --git a/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/packagegroups/packagegroup-obmc-apps.bbappend b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/packagegroups/packagegroup-obmc-apps.bbappend index 6e0db1e6..090912ec 100644 --- a/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/packagegroups/packagegroup-obmc-apps.bbappend +++ b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/packagegroups/packagegroup-obmc-apps.bbappend @@ -1,5 +1,16 @@ -RDEPENDS_${PN}-inventory += "openpower-fru-vpd openpower-occ-control phosphor-cooling-type virtual/obmc-gpio-presence" -RDEPENDS_${PN}-fan-control += "witherspoon-fan-watchdog" -RDEPENDS_${PN}-extras += "witherspoon-pfault-analysis witherspoon-power-supply-sync phosphor-webui" +RDEPENDS_${PN}-inventory_append_ibm-ac-server = " openpower-fru-vpd openpower-occ-control phosphor-cooling-type virtual/obmc-gpio-presence" +RDEPENDS_${PN}-inventory_append_rainier = " openpower-fru-vpd openpower-occ-control virtual/obmc-gpio-presence" +RDEPENDS_${PN}-inventory_append_mihawk = " openpower-fru-vpd openpower-occ-control virtual/obmc-gpio-presence id-button phosphor-cooling-type" +RDEPENDS_${PN}-fan-control_append_ibm-ac-server = " witherspoon-fan-watchdog" +RDEPENDS_${PN}-extras_append_ibm-ac-server = " phosphor-power phosphor-power-systemd-links witherspoon-power-supply-sync phosphor-webui" +RDEPENDS_${PN}-extras_append_rainier = " phosphor-power phosphor-power-systemd-links phosphor-webui" +RDEPENDS_${PN}-extras_append_mihawk = " phosphor-webui phosphor-image-signing" +RDEPENDS_${PN}-extras_remove_rainier = "obmc-ikvm liberation-fonts uart-render-controller" +RDEPENDS_${PN}-extras_remove_swift = "obmc-ikvm" +RDEPENDS_${PN}-extras_remove_witherspoon-tacoma = "obmc-ikvm liberation-fonts uart-render-controller" +RDEPENDS_${PN}-logging_remove_rainier = "ibm-logging" +RDEPENDS_${PN}-extras_append_rainier = " pldm" +RDEPENDS_${PN}-extras_append_witherspoon-128 = " pldm" +RDEPENDS_${PN}-extras_append_witherspoon-tacoma = " pldm" -${PN}-software-extras_df-obmc-ubi-fs += "phosphor-software-manager-sync" +${PN}-software-extras_append_ibm-ac-server = " phosphor-software-manager-sync" diff --git a/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/pldm/pldm/11.json b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/pldm/pldm/11.json new file mode 100644 index 00000000..26fdf5c0 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/pldm/pldm/11.json @@ -0,0 +1,28 @@ +{ + "entries" : [{ + "type" : 33, + "instance" : 0, + "container" : 0, + "effecters" : [{ + "set" : { + "id" : 196, + "size" : 1, + "states" : [1,2] + }, + "dbus" : "/xyz/openbmc_project/state/host0" + }] + }, + { + "type" : 45, + "instance" : 0, + "container" : 0, + "effecters" : [{ + "set" : { + "id" : 260, + "size" : 2, + "states" : [9] + }, + "dbus" : "/xyz/openbmc_project/state/chassis0" + }] + }] +} diff --git a/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/pldm/pldm/enum_attrs.json b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/pldm/pldm/enum_attrs.json new file mode 100755 index 00000000..cf20e3e3 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/pldm/pldm/enum_attrs.json @@ -0,0 +1,54 @@ +{ + "entries":[ + { + "attribute_name":"pvm-fw-boot-side", + "possible_values":[ + "Perm", + "Temp" + ], + "default_values":[ + "Perm" + ] + }, + { + "attribute_name":"pvm-os-boot-side", + "possible_values":[ + "Perm", + "Temp" + ], + "default_values":[ + "Perm" + ] + }, + { + "attribute_name":"pvm-inband-code-update", + "possible_values":[ + "Allowed", + "Not Allowed" + ], + "default_values":[ + "Allowed" + ] + }, + { + "attribute_name":"pvm-surveillance", + "possible_values":[ + "Disabled", + "Enabled" + ], + "default_values":[ + "Enabled" + ] + }, + { + "attribute_name":"pvm-pcie-error-inject", + "possible_values":[ + "Disabled", + "Enabled" + ], + "default_values":[ + "Enabled" + ] + } + ] +} diff --git a/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/pldm/pldm/fileTable.json b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/pldm/pldm/fileTable.json new file mode 100755 index 00000000..9d9750a5 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/pldm/pldm/fileTable.json @@ -0,0 +1,10 @@ +[ + { + "path":"/var/lib/pldm/PHYP-NVRAM", + "file_traits":1 + }, + { + "path":"/var/lib/pldm/PHYP-NVRAM-CKSUM", + "file_traits":4 + } +] diff --git a/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/pldm/pldm/host_eid b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/pldm/pldm/host_eid new file mode 100644 index 00000000..ec635144 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/pldm/pldm/host_eid @@ -0,0 +1 @@ +9 diff --git a/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/pldm/pldm_%.bbappend b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/pldm/pldm_%.bbappend new file mode 100644 index 00000000..335396bd --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/pldm/pldm_%.bbappend @@ -0,0 +1,19 @@ +FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:" + +EXTRA_OEMESON_append = " \ + -Doem-ibm=enabled \ + " + +SRC_URI += "file://fileTable.json" +SRC_URI += "file://enum_attrs.json" +SRC_URI += "file://11.json" +SRC_URI += "file://host_eid" + +do_install_append() { + install -d ${D}${datadir}/pldm/bios/ + install -d ${D}${datadir}/pldm/pdr/ + install -m 0644 ${WORKDIR}/fileTable.json ${D}${datadir}/pldm/ + install -m 0644 ${WORKDIR}/enum_attrs.json ${D}${datadir}/pldm/bios/ + install -m 0644 ${WORKDIR}/11.json ${D}${datadir}/pldm/pdr/ + install -m 0644 ${WORKDIR}/host_eid ${D}${datadir}/pldm/ +} diff --git a/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/power/phosphor-power/rainier/psu.json b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/power/phosphor-power/rainier/psu.json new file mode 100644 index 00000000..baa96ac2 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/power/phosphor-power/rainier/psu.json @@ -0,0 +1,31 @@ +{ + "inventoryPMBusAccessType": "HwmonDeviceDebug", + "fruConfigs": [ + { + "propertyName": "PartNumber", + "fileName": "part_number", + "interface": "xyz.openbmc_project.Inventory.Decorator.Asset" + }, + { + "propertyName": "SerialNumber", + "fileName": "serial_number", + "interface": "xyz.openbmc_project.Inventory.Decorator.Asset" + }, + { + "propertyName": "Model", + "fileName": "ccin", + "interface": "xyz.openbmc_project.Inventory.Decorator.Asset" + }, + { + "propertyName": "Version", + "fileName": "fw_version", + "interface": "xyz.openbmc_project.Software.Version" + } + ], + "psuDevices": { + "/xyz/openbmc_project/inventory/system/chassis/motherboard/powersupply0" : "/sys/bus/i2c/devices/3-0068", + "/xyz/openbmc_project/inventory/system/chassis/motherboard/powersupply1" : "/sys/bus/i2c/devices/3-0069", + "/xyz/openbmc_project/inventory/system/chassis/motherboard/powersupply2" : "/sys/bus/i2c/devices/3-006a", + "/xyz/openbmc_project/inventory/system/chassis/motherboard/powersupply3" : "/sys/bus/i2c/devices/3-006b" + } +} diff --git a/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/power/witherspoon-pfault-analysis/swift/obmc/power-supply-monitor/power-supply-monitor-0.conf b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/power/phosphor-power/swift/obmc/power-supply-monitor/power-supply-monitor-0.conf similarity index 100% rename from Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/power/witherspoon-pfault-analysis/swift/obmc/power-supply-monitor/power-supply-monitor-0.conf rename to Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/power/phosphor-power/swift/obmc/power-supply-monitor/power-supply-monitor-0.conf diff --git a/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/power/witherspoon-pfault-analysis/swift/obmc/power-supply-monitor/power-supply-monitor-1.conf b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/power/phosphor-power/swift/obmc/power-supply-monitor/power-supply-monitor-1.conf similarity index 100% rename from Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/power/witherspoon-pfault-analysis/swift/obmc/power-supply-monitor/power-supply-monitor-1.conf rename to Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/power/phosphor-power/swift/obmc/power-supply-monitor/power-supply-monitor-1.conf diff --git a/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/power/phosphor-power/swift/psu.json b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/power/phosphor-power/swift/psu.json new file mode 100644 index 00000000..94f14dd6 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/power/phosphor-power/swift/psu.json @@ -0,0 +1,29 @@ +{ + "inventoryPMBusAccessType": "HwmonDeviceDebug", + "fruConfigs": [ + { + "propertyName": "PartNumber", + "fileName": "part_number", + "interface": "xyz.openbmc_project.Inventory.Decorator.Asset" + }, + { + "propertyName": "SerialNumber", + "fileName": "serial_number", + "interface": "xyz.openbmc_project.Inventory.Decorator.Asset" + }, + { + "propertyName": "Model", + "fileName": "ccin", + "interface": "xyz.openbmc_project.Inventory.Decorator.Asset" + }, + { + "propertyName": "Version", + "fileName": "fw_version", + "interface": "xyz.openbmc_project.Software.Version" + } + ], + "psuDevices": { + "/xyz/openbmc_project/inventory/system/chassis/motherboard/powersupply0" : "/sys/bus/i2c/devices/3-0068", + "/xyz/openbmc_project/inventory/system/chassis/motherboard/powersupply1" : "/sys/bus/i2c/devices/3-0069" + } +} diff --git a/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/power/witherspoon-pfault-analysis/witherspoon/obmc/power-supply-monitor/power-supply-monitor-0.conf b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/power/phosphor-power/witherspoon/obmc/power-supply-monitor/power-supply-monitor-0.conf similarity index 100% rename from Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/power/witherspoon-pfault-analysis/witherspoon/obmc/power-supply-monitor/power-supply-monitor-0.conf rename to Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/power/phosphor-power/witherspoon/obmc/power-supply-monitor/power-supply-monitor-0.conf diff --git a/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/power/witherspoon-pfault-analysis/witherspoon/obmc/power-supply-monitor/power-supply-monitor-1.conf b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/power/phosphor-power/witherspoon/obmc/power-supply-monitor/power-supply-monitor-1.conf similarity index 100% rename from Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/power/witherspoon-pfault-analysis/witherspoon/obmc/power-supply-monitor/power-supply-monitor-1.conf rename to Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/power/phosphor-power/witherspoon/obmc/power-supply-monitor/power-supply-monitor-1.conf diff --git a/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/power/witherspoon-pfault-analysis/witherspoon/pseq-monitor-pgood.service b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/power/phosphor-power/witherspoon/pseq-monitor-pgood.service similarity index 100% rename from Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/power/witherspoon-pfault-analysis/witherspoon/pseq-monitor-pgood.service rename to Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/power/phosphor-power/witherspoon/pseq-monitor-pgood.service diff --git a/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/power/phosphor-power/witherspoon/psu.json b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/power/phosphor-power/witherspoon/psu.json new file mode 100644 index 00000000..cbabc783 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/power/phosphor-power/witherspoon/psu.json @@ -0,0 +1,29 @@ +{ + "inventoryPMBusAccessType": "HwmonDeviceDebug", + "fruConfigs": [ + { + "propertyName": "PartNumber", + "fileName": "part_number", + "interface": "xyz.openbmc_project.Inventory.Decorator.Asset" + }, + { + "propertyName": "SerialNumber", + "fileName": "serial_number", + "interface": "xyz.openbmc_project.Inventory.Decorator.Asset" + }, + { + "propertyName": "Model", + "fileName": "ccin", + "interface": "xyz.openbmc_project.Inventory.Decorator.Asset" + }, + { + "propertyName": "Version", + "fileName": "fw_version", + "interface": "xyz.openbmc_project.Software.Version" + } + ], + "psuDevices": { + "/xyz/openbmc_project/inventory/system/chassis/motherboard/powersupply0" : "/sys/bus/i2c/devices/3-0069", + "/xyz/openbmc_project/inventory/system/chassis/motherboard/powersupply1" : "/sys/bus/i2c/devices/3-0068" + } +} diff --git a/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/power/phosphor-power_%.bbappend b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/power/phosphor-power_%.bbappend new file mode 100644 index 00000000..350c996d --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/power/phosphor-power_%.bbappend @@ -0,0 +1,17 @@ +FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:" + +inherit obmc-phosphor-systemd + +SRC_URI += "file://psu.json" + +EXTRA_OEMESON += "-Ducd90160-yaml=${STAGING_DIR_HOST}${datadir}/power-sequencer/ucd90160.yaml" + +DEPENDS += " power-sequencer" + +do_install_append(){ + install -D ${WORKDIR}/psu.json ${D}${datadir}/phosphor-power/psu.json +} +FILES_${PN} += "${datadir}/phosphor-power/psu.json" + +PSU_MONITOR_ENV_FMT = "obmc/power-supply-monitor/power-supply-monitor-{0}.conf" +SYSTEMD_ENVIRONMENT_FILE_${PN}_append_ibm-ac-server += "${@compose_list(d, 'PSU_MONITOR_ENV_FMT', 'OBMC_POWER_SUPPLY_INSTANCES')}" diff --git a/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/power/power-sequencer.bb b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/power/power-sequencer.bb index f19e02ff..be5035ec 100644 --- a/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/power/power-sequencer.bb +++ b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/power/power-sequencer.bb @@ -1,7 +1,7 @@ SUMMARY = "Power sequencer data definition" PR = "r1" LICENSE = "Apache-2.0" -LIC_FILES_CHKSUM = "file://${IBMBASE}/COPYING.apache-2.0;md5=34400b68072d710fecd0a2940a0d1658" +LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10" inherit allarch diff --git a/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/power/power-sequencer/rainier/ucd90160.yaml b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/power/power-sequencer/rainier/ucd90160.yaml new file mode 100644 index 00000000..a6bba44c --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/power/power-sequencer/rainier/ucd90160.yaml @@ -0,0 +1,201 @@ +- Device: + index: 0 + # Linux sysfs path for this power sequencer (0x22 8-bit address) + path: /sys/bus/i2c/devices/i2c-8/8-0011 + RailNames: + - "12.0V" + - "5.0V_USB" + - "5.0V_DASD" + - "3.3VA" + - "3.3VB" + - "1.5V" + - "1.1V" + - "VDDA_DCM0" + - "VDDB_DCM0" + - "VDDA_DCM1" + - "VDDB_DCM1" + - "12.0VCS" + - "3.3VCS" + - "1.1V_Current" + - "5.0V_USB_Current" + - "5.0V_DASD_Current" + - "12.0VN" + - "12.0VP" + - "12.0VQ" + - "12.0VR" + - "ThermalDiode1" + - "ThermalDiode2" + - "ThermalDiode3" + - "ThermalDiode4" + GPIConfigs: + - name: PCIE_SLOT0 + gpi: 1 + pinID: 44 + poll: false + analysis: none + - name: PCIE_SLOT1 + gpi: 2 + pinID: 45 + poll: false + analysis: none + - name: PCIE_SLOT2 + gpi: 3 + pinID: 46 + poll: false + analysis: none + - name: PCIE_SLOT3 + gpi: 4 + pinID: 47 + poll: false + analysis: none + - name: PCIE_SLOT4 + gpi: 5 + pinID: 48 + poll: false + analysis: none + - name: PCIE_SLOT7 + gpi: 6 + pinID: 49 + poll: false + analysis: none + - name: PCIE_SLOT8 + gpi: 7 + pinID: 50 + poll: false + analysis: none + - name: PCIE_SLOT9 + gpi: 8 + pinID: 51 + poll: false + analysis: none + - name: PCIE_SLOT10 + gpi: 9 + pinID: 52 + poll: false + analysis: none + - name: PCIE_SLOT11 + gpi: 10 + pinID: 53 + poll: false + analysis: none + - name: SOFTWARE_PGOOD + gpi: 11 + pinID: 55 + poll: false + analysis: none + - name: PGOOD_12A + gpi: 12 + pinID: 56 + poll: false + analysis: none + - name: PGOOD_12B + gpi: 13 + pinID: 57 + poll: false + analysis: none + - name: PGOOD_12C + gpi: 14 + pinID: 58 + poll: false + analysis: none + - name: PGOOD_12D + gpi: 15 + pinID: 59 + poll: false + analysis: none + - name: PGOOD_12L + gpi: 16 + pinID: 60 + poll: false + analysis: none + - name: PGOOD_12M + gpi: 17 + pinID: 61 + poll: false + analysis: none + - name: PGOOD_12N + gpi: 18 + pinID: 62 + poll: false + analysis: none + - name: PGOOD_12P + gpi: 19 + pinID: 63 + poll: false + analysis: none + - name: PGOOD_12PCIE + gpi: 20 + pinID: 64 + poll: false + analysis: none + - name: PGOOD_12Q + gpi: 21 + pinID: 65 + poll: false + analysis: none + - name: PGOOD_12R + gpi: 22 + pinID: 66 + poll: false + analysis: none + - name: PGOOD_VDN_DCM0 + gpi: 23 + pinID: 72 + poll: false + analysis: none + - name: PGOOD_VDN_DCM1 + gpi: 24 + pinID: 73 + poll: false + analysis: none + - name: PGOOD_VCS_DCM0 + gpi: 25 + pinID: 74 + poll: false + analysis: none + - name: PGOOD_VCS_DCM1 + gpi: 26 + pinID: 75 + poll: false + analysis: none + - name: PGOOD_VIO_DCM0 + gpi: 27 + pinID: 76 + poll: false + analysis: none + - name: PGOOD_VIO_DCM1 + gpi: 28 + pinID: 77 + poll: false + analysis: none + - name: PGOOD_VPCIE_DCM0 + gpi: 29 + pinID: 78 + poll: false + analysis: none + - name: PGOOD_VPCIE_DCM1 + gpi: 30 + pinID: 79 + poll: false + analysis: none + - name: PGOOD_PSU1 + gpi: 31 + pinID: 80 + poll: false + analysis: none + - name: PGOOD_PSU2 + gpi: 32 + pinID: 81 + poll: false + analysis: none + - name: PGOOD_PSU3 + gpi: 33 + pinID: 82 + poll: false + analysis: none + - name: PGOOD_PSU4 + gpi: 34 + pinID: 83 + poll: false + analysis: none + diff --git a/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/power/power-sequencer/swift/ucd90160.yaml b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/power/power-sequencer/swift/ucd90160.yaml index 66f8a92b..abb2ce32 100644 --- a/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/power/power-sequencer/swift/ucd90160.yaml +++ b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/power/power-sequencer/swift/ucd90160.yaml @@ -1,7 +1,7 @@ - Device: index: 0 # Linux sysfs path for this power sequencer (0xC8 8-bit address) - path: /sys/devices/platform/ahb/ahb:apb/ahb:apb:bus@1e78a000/1e78a340.i2c-bus/i2c-8/8-0064 + path: /sys/bus/i2c/devices/i2c-8/8-0064 RailNames: - "12.0V" - "3.3V" @@ -52,7 +52,7 @@ GPIOAnalysis: - type: gpuPGOOD # The PCA9xxx chip device path and address (0xC0 8-bit = 0x60 7-bit) - path: /sys/devices/platform/ahb/ahb:apb/ahb:apb:bus@1e78a000/1e78a400.i2c-bus/i2c-8/8-0060 + path: /sys/bus/i2c/devices/i2c-8/8-0060 gpio_value: low # What GPIO value indicates a fault/problem? error_function: gpuPGOODError # Extra analysis function to call for this type option_flags: none @@ -72,7 +72,7 @@ callout: /system/chassis/motherboard/gv100card3 - type: gpuOverTemp # The PCA9xxx chip device path and address (0xC0 8-bit = 0x60 7-bit) - path: /sys/devices/platform/ahb/ahb:apb/ahb:apb:bus@1e78a000/1e78a400.i2c-bus/i2c-8/8-0060 + path: /sys/bus/i2c/devices/i2c-8/8-0060 gpio_value: low # What GPIO value indicates a fault/problem? error_function: gpuOverTempError # Extra analysis function to call for this type option_flags: shutdownOnFault @@ -92,7 +92,7 @@ callout: /system/chassis/motherboard/gv100card3 - type: memGOOD0 # The PCA9xxx chip device path and address (0xE8 8-bit = 0x74 7-bit) - path: /sys/devices/platform/ahb/ahb:apb/ahb:apb:bus@1e78a000/1e78a400.i2c-bus/i2c-9/9-0074 + path: /sys/bus/i2c/devices/i2c-9/9-0074 gpio_value: low # What GPIO value indicates a fault/problem? error_function: memGoodError # Extra analysis function to call for this type option_flags: none @@ -136,7 +136,7 @@ callout: /system/chassis/motherboard/dimm6 - type: memGOOD1 # The PCA9xxx chip device path and address (0xE8 8-bit = 0x74 7-bit) - path: /sys/devices/platform/ahb/ahb:apb/ahb:apb:bus@1e78a000/1e78a400.i2c-bus/i2c-10/10-0074 + path: /sys/bus/i2c/devices/i2c-10/10-0074 gpio_value: low # What GPIO value indicates a fault/problem? error_function: memGoodError # Extra analysis function to call for this type option_flags: none diff --git a/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/power/power-sequencer/witherspoon/ucd90160.yaml b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/power/power-sequencer/witherspoon/ucd90160.yaml index bf373ea9..9dd38124 100644 --- a/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/power/power-sequencer/witherspoon/ucd90160.yaml +++ b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/power/power-sequencer/witherspoon/ucd90160.yaml @@ -1,7 +1,7 @@ - Device: index: 0 # Linux sysfs path for this power sequencer (0xC8 8-bit address) - path: /sys/devices/platform/ahb/ahb:apb/ahb:apb:bus@1e78a000/1e78a400.i2c-bus/i2c-11/11-0064 + path: /sys/bus/i2c/devices/i2c-11/11-0064 RailNames: - "5.0VCS" - "12.0V" @@ -52,7 +52,7 @@ analysis: none GPIOAnalysis: - type: gpuPGOOD - path: /sys/devices/platform/ahb/ahb:apb/ahb:apb:bus@1e78a000/1e78a400.i2c-bus/i2c-11/11-0060 + path: /sys/bus/i2c/devices/i2c-11/11-0060 gpio_value: low error_function: gpuPGOODError option_flags: none @@ -77,7 +77,7 @@ callout: /system/chassis/motherboard/gv100card5 - type: gpuOverTemp # Extra analysis function to call for this type # The PCA9xxx chip device path and address (0xC0 8-bit = 0x60 7-bit) - path: /sys/devices/platform/ahb/ahb:apb/ahb:apb:bus@1e78a000/1e78a400.i2c-bus/i2c-11/11-0060 + path: /sys/bus/i2c/devices/i2c-11/11-0060 gpio_value: low # What GPIO value indicates a fault/problem? error_function: gpuOverTempError option_flags: shutdownOnFault diff --git a/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/power/witherspoon-pfault-analysis-error-native_git.bb b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/power/witherspoon-pfault-analysis-error-native_git.bb index 76781cbd..3c174c3e 100644 --- a/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/power/witherspoon-pfault-analysis-error-native_git.bb +++ b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/power/witherspoon-pfault-analysis-error-native_git.bb @@ -5,7 +5,7 @@ PV = "1.0+git${SRCPV}" inherit native inherit phosphor-dbus-yaml -require witherspoon-pfault-analysis.inc +require recipes-phosphor/power/phosphor-power.inc S = "${WORKDIR}/git" diff --git a/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/power/witherspoon-pfault-analysis.inc b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/power/witherspoon-pfault-analysis.inc deleted file mode 100644 index db7c16e5..00000000 --- a/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/power/witherspoon-pfault-analysis.inc +++ /dev/null @@ -1,5 +0,0 @@ -HOMEPAGE = "https://github.com/openbmc/witherspoon-pfault-analysis" -LICENSE = "Apache-2.0" -LIC_FILES_CHKSUM = "file://${S}/LICENSE;md5=e3fc50a88d0a364313df4b21ef20c29e" -SRC_URI += "git://github.com/openbmc/witherspoon-pfault-analysis" -SRCREV = "03c19db6a8f72d7f5408667a7daf915d82190efc" diff --git a/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/power/witherspoon-pfault-analysis/power-supply-monitor@.service b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/power/witherspoon-pfault-analysis/power-supply-monitor@.service deleted file mode 100644 index bf027582..00000000 --- a/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/power/witherspoon-pfault-analysis/power-supply-monitor@.service +++ /dev/null @@ -1,15 +0,0 @@ -[Unit] -Description=Power Supply %I Monitor -Wants=mapper-wait@-xyz-openbmc_project-inventory-system-chassis-motherboard-powersupply%i.service -After=mapper-wait@-xyz-openbmc_project-inventory-system-chassis-motherboard-powersupply%i.service -Wants=mapper-wait@-org-openbmc-control-power0.service -After=mapper-wait@-org-openbmc-control-power0.service -ConditionPathExists={envfiledir}/obmc/power-supply-monitor/power-supply-monitor-%i.conf - -[Service] -EnvironmentFile={envfiledir}/obmc/power-supply-monitor/power-supply-monitor-%i.conf -ExecStart=/usr/bin/env psu-monitor --path=${{DEVPATH}} --instance=${{INSTANCE}} --inventory=${{INVENTORY}} --num-history-records=${{NUM_HISTORY_RECORDS}} --sync-gpio-path=${{SYNC_GPIO_PATH}} --sync-gpio-num=${{SYNC_GPIO_NUM}} -SyslogIdentifier=psu-monitor - -[Install] -RequiredBy=multi-user.target diff --git a/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/power/witherspoon-pfault-analysis/pseq-monitor.service b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/power/witherspoon-pfault-analysis/pseq-monitor.service deleted file mode 100644 index 8ce3b370..00000000 --- a/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/power/witherspoon-pfault-analysis/pseq-monitor.service +++ /dev/null @@ -1,10 +0,0 @@ -[Unit] -Description=Power Sequencer Runtime Monitor -Wants=obmc-host-start-pre@0.target -Before=obmc-host-start-pre@0.target -After=obmc-power-on@0.target -Conflicts=obmc-chassis-poweroff@0.target - -[Service] -ExecStart=/usr/bin/env pseq-monitor -a runtime-monitor -i 500 -SyslogIdentifier=pseq-monitor diff --git a/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/power/witherspoon-pfault-analysis/swift/pseq-monitor-pgood.service b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/power/witherspoon-pfault-analysis/swift/pseq-monitor-pgood.service deleted file mode 100644 index 206fc660..00000000 --- a/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/power/witherspoon-pfault-analysis/swift/pseq-monitor-pgood.service +++ /dev/null @@ -1,11 +0,0 @@ -[Unit] -Description=Power Sequencer Power-on Monitor -Wants=op-power-start@0.service -After=op-power-start@0.service -Conflicts=obmc-chassis-poweroff@0.target -ConditionPathExists=!/run/openbmc/chassis@0-on - -[Service] -Type=oneshot -ExecStart=/usr/bin/env pseq-monitor -a pgood-monitor -i 5000 -SyslogIdentifier=pseq-monitor diff --git a/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/power/witherspoon-pfault-analysis_git.bb b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/power/witherspoon-pfault-analysis_git.bb deleted file mode 100644 index 802f7594..00000000 --- a/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/power/witherspoon-pfault-analysis_git.bb +++ /dev/null @@ -1,46 +0,0 @@ -SUMMARY = "Witherspoon Power Fault Analysis" -DESCRIPTION = "Analyzes power devices for faults" -PR = "r1" -PV = "1.0+git${SRCPV}" - -inherit autotools -inherit pkgconfig -inherit obmc-phosphor-systemd -inherit pythonnative - -require ${PN}.inc - -S = "${WORKDIR}/git" - -DEPENDS += " \ - phosphor-logging \ - autoconf-archive-native \ - openpower-dbus-interfaces \ - sdbus++-native \ - sdeventplus \ - power-sequencer \ - " - -EXTRA_OECONF = "UCD90160_DEF_YAML_FILE=${STAGING_DIR_HOST}${datadir}/power-sequencer/ucd90160.yaml" - -CHASSIS_ON_TGT = "obmc-chassis-poweron@0.target" -SEQ_MONITOR_SVC = "pseq-monitor.service" -SEQ_MONITOR_FMT = "../${SEQ_MONITOR_SVC}:${CHASSIS_ON_TGT}.wants/${SEQ_MONITOR_SVC}" - -SEQ_PGOOD_SVC = "pseq-monitor-pgood.service" -SEQ_PGOOD_FMT = "../${SEQ_PGOOD_SVC}:${CHASSIS_ON_TGT}.wants/${SEQ_PGOOD_SVC}" - -SYSTEMD_SERVICE_${PN} += "${SEQ_MONITOR_SVC} ${SEQ_PGOOD_SVC}" -SYSTEMD_LINK_${PN} += "${SEQ_MONITOR_FMT} ${SEQ_PGOOD_FMT}" - -PSU_MONITOR_TMPL = "power-supply-monitor@.service" -PSU_MONITOR_INSTFMT = "power-supply-monitor@{0}.service" -PSU_MONITOR_TGT = "multi-user.target" -PSU_MONITOR_FMT = "../${PSU_MONITOR_TMPL}:${PSU_MONITOR_TGT}.requires/${PSU_MONITOR_INSTFMT}" - -FILES_psu-monitor = "${bindir}/psu-monitor" -SYSTEMD_SERVICE_${PN} += "${PSU_MONITOR_TMPL}" -SYSTEMD_LINK_${PN} += "${@compose_list(d, 'PSU_MONITOR_FMT', 'OBMC_POWER_SUPPLY_INSTANCES')}" - -PSU_MONITOR_ENV_FMT = "obmc/power-supply-monitor/power-supply-monitor-{0}.conf" -SYSTEMD_ENVIRONMENT_FILE_${PN} += "${@compose_list(d, 'PSU_MONITOR_ENV_FMT', 'OBMC_POWER_SUPPLY_INSTANCES')}" diff --git a/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/power/witherspoon-power-supply-sync.bb b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/power/witherspoon-power-supply-sync.bb index a2d7e891..4f599a78 100644 --- a/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/power/witherspoon-power-supply-sync.bb +++ b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/power/witherspoon-power-supply-sync.bb @@ -2,7 +2,7 @@ SUMMARY = "Power Supply Sync" DESCRIPTION = "Synchronizes the power supplies' INPUT_HISTORY data" PR = "r1" LICENSE = "Apache-2.0" -LIC_FILES_CHKSUM = "file://${IBMBASE}/COPYING.apache-2.0;md5=34400b68072d710fecd0a2940a0d1658" +LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10" inherit obmc-phosphor-systemd diff --git a/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/70-max31785-hwmon.rules b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/70-max31785-hwmon.rules old mode 100755 new mode 100644 diff --git a/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/70-hwmon.rules b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/ibm-ac-server/70-hwmon.rules old mode 100755 new mode 100644 similarity index 100% rename from Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/70-hwmon.rules rename to Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/ibm-ac-server/70-hwmon.rules diff --git a/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/mihawk/obmc/hwmon/ahb/apb/bus@1e78a000/i2c-bus@100/power-supply@58.conf b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/mihawk/obmc/hwmon/ahb/apb/bus@1e78a000/i2c-bus@100/power-supply@58.conf new file mode 100644 index 00000000..80ff06f9 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/mihawk/obmc/hwmon/ahb/apb/bus@1e78a000/i2c-bus@100/power-supply@58.conf @@ -0,0 +1,23 @@ +LABEL_in1="ps1_input_voltage" +WARNHI_in1="264000" +WARNLO_in1="200000" +CRITHI_in1="265000" +CRITLO_in1="180000" + +LABEL_in2="ps1_output_voltage" +WARNHI_in2="12700" +WARNLO_in2="0" +CRITHI_in2="13000" +CRITLO_in2="0" + +LABEL_curr1="ps1_output_current" +WARNHI_curr1="170000" +WARNLO_curr1="0" +CRITHI_curr1="180000" +CRITLO_curr1="0" + +LABEL_power1="ps1_input_power" +WARNHI_power1="2300000000" +WARNLO_power1="0" +CRITHI_power1="2500000000" +CRITLO_power1="0" \ No newline at end of file diff --git a/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/mihawk/obmc/hwmon/ahb/apb/bus@1e78a000/i2c-bus@100/power-supply@5b.conf b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/mihawk/obmc/hwmon/ahb/apb/bus@1e78a000/i2c-bus@100/power-supply@5b.conf new file mode 100644 index 00000000..db56c888 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/mihawk/obmc/hwmon/ahb/apb/bus@1e78a000/i2c-bus@100/power-supply@5b.conf @@ -0,0 +1,23 @@ +LABEL_in1="ps0_input_voltage" +WARNHI_in1="264000" +WARNLO_in1="200000" +CRITHI_in1="265000" +CRITLO_in1="180000" + +LABEL_in2="ps0_output_voltage" +WARNHI_in2="12700" +WARNLO_in2="0" +CRITHI_in2="13000" +CRITLO_in2="0" + +LABEL_curr1="ps0_output_current" +WARNHI_curr1="170000" +WARNLO_curr1="0" +CRITHI_curr1="180000" +CRITLO_curr1="0" + +LABEL_power1="ps0_input_power" +WARNHI_power1="2300000000" +WARNLO_power1="0" +CRITHI_power1="2500000000" +CRITLO_power1="0" diff --git a/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/mihawk/obmc/hwmon/ahb/apb/bus@1e78a000/i2c-bus@140/ir35221@70.conf b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/mihawk/obmc/hwmon/ahb/apb/bus@1e78a000/i2c-bus@140/ir35221@70.conf new file mode 100644 index 00000000..3c25a4a0 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/mihawk/obmc/hwmon/ahb/apb/bus@1e78a000/i2c-bus@140/ir35221@70.conf @@ -0,0 +1,11 @@ +LABEL_temp1 = "p0_vdd_temp" +WARNHI_temp1 = "100000" +WARNLO_temp1 = "0" +CRITHI_temp1 = "105000" +CRITLO_temp1 = "0" + +LABEL_temp2 = "p0_vcs_temp" +WARNHI_temp2 = "100000" +WARNLO_temp2 = "0" +CRITHI_temp2 = "105000" +CRITLO_temp2 = "0" diff --git a/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/mihawk/obmc/hwmon/ahb/apb/bus@1e78a000/i2c-bus@140/ir35221@72.conf b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/mihawk/obmc/hwmon/ahb/apb/bus@1e78a000/i2c-bus@140/ir35221@72.conf new file mode 100644 index 00000000..7f1f4d87 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/mihawk/obmc/hwmon/ahb/apb/bus@1e78a000/i2c-bus@140/ir35221@72.conf @@ -0,0 +1,5 @@ +LABEL_temp1 = "p0_vdn_temp" +WARNHI_temp1 = "100000" +WARNLO_temp1 = "0" +CRITHI_temp1 = "105000" +CRITLO_temp1 = "0" diff --git a/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/mihawk/obmc/hwmon/ahb/apb/bus@1e78a000/i2c-bus@180/ir35221@70.conf b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/mihawk/obmc/hwmon/ahb/apb/bus@1e78a000/i2c-bus@180/ir35221@70.conf new file mode 100644 index 00000000..5f0985d7 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/mihawk/obmc/hwmon/ahb/apb/bus@1e78a000/i2c-bus@180/ir35221@70.conf @@ -0,0 +1,11 @@ +LABEL_temp1 = "p1_vdd_temp" +WARNHI_temp1 = "100000" +WARNLO_temp1 = "0" +CRITHI_temp1 = "105000" +CRITLO_temp1 = "0" + +LABEL_temp2 = "p1_vcs_temp" +WARNHI_temp2 = "100000" +WARNLO_temp2 = "0" +CRITHI_temp2 = "105000" +CRITLO_temp2 = "0" \ No newline at end of file diff --git a/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/mihawk/obmc/hwmon/ahb/apb/bus@1e78a000/i2c-bus@180/ir35221@72.conf b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/mihawk/obmc/hwmon/ahb/apb/bus@1e78a000/i2c-bus@180/ir35221@72.conf new file mode 100644 index 00000000..43837283 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/mihawk/obmc/hwmon/ahb/apb/bus@1e78a000/i2c-bus@180/ir35221@72.conf @@ -0,0 +1,5 @@ +LABEL_temp1 = "p1_vdn_temp" +WARNHI_temp1 = "100000" +WARNLO_temp1 = "0" +CRITHI_temp1 = "105000" +CRITLO_temp1 = "0" \ No newline at end of file diff --git a/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/mihawk/obmc/hwmon/ahb/apb/bus@1e78a000/i2c-bus@400/emc1403@4c.conf b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/mihawk/obmc/hwmon/ahb/apb/bus@1e78a000/i2c-bus@400/emc1403@4c.conf new file mode 100644 index 00000000..939b3c1e --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/mihawk/obmc/hwmon/ahb/apb/bus@1e78a000/i2c-bus@400/emc1403@4c.conf @@ -0,0 +1,5 @@ +LABEL_temp2 = "ambient_temp" +WARNHI_temp2 = "38000" +WARNLO_temp2 = "0" +CRITHI_temp2 = "40000" +CRITLO_temp2 = "0" diff --git a/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/mihawk/obmc/hwmon/ahb/apb/bus@1e78a000/i2c-bus@400/tmp275@48.conf b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/mihawk/obmc/hwmon/ahb/apb/bus@1e78a000/i2c-bus@400/tmp275@48.conf new file mode 100644 index 00000000..4f89e7f3 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/mihawk/obmc/hwmon/ahb/apb/bus@1e78a000/i2c-bus@400/tmp275@48.conf @@ -0,0 +1,2 @@ +LABEL_temp1 = "p1_pcie_temp" + diff --git a/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/mihawk/obmc/hwmon/ahb/apb/bus@1e78a000/i2c-bus@400/tmp275@49.conf b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/mihawk/obmc/hwmon/ahb/apb/bus@1e78a000/i2c-bus@400/tmp275@49.conf new file mode 100644 index 00000000..959c66f9 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/mihawk/obmc/hwmon/ahb/apb/bus@1e78a000/i2c-bus@400/tmp275@49.conf @@ -0,0 +1,2 @@ +LABEL_temp1 = "p0_pcie_temp" + diff --git a/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/mihawk/obmc/hwmon/ahb/apb/bus@1e78a000/i2c-bus@440/pca9545@70/i2c@3/tmp275@48.conf b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/mihawk/obmc/hwmon/ahb/apb/bus@1e78a000/i2c-bus@440/pca9545@70/i2c@3/tmp275@48.conf new file mode 100644 index 00000000..82f06581 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/mihawk/obmc/hwmon/ahb/apb/bus@1e78a000/i2c-bus@440/pca9545@70/i2c@3/tmp275@48.conf @@ -0,0 +1,2 @@ +LABEL_temp1 = "M2_riser_temp" + diff --git a/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/mihawk/obmc/hwmon/ahb/apb/pwm-tacho-controller@1e786000.conf b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/mihawk/obmc/hwmon/ahb/apb/pwm-tacho-controller@1e786000.conf new file mode 100644 index 00000000..066ebf6c --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/mihawk/obmc/hwmon/ahb/apb/pwm-tacho-controller@1e786000.conf @@ -0,0 +1,25 @@ +LABEL_fan1 = "fan0_0" +LABEL_fan2 = "fan0_1" +LABEL_fan3 = "fan1_0" +LABEL_fan4 = "fan1_1" +LABEL_fan5 = "fan2_0" +LABEL_fan6 = "fan2_1" +LABEL_fan7 = "fan3_0" +LABEL_fan8 = "fan3_1" +LABEL_fan9 = "fan4_0" +LABEL_fan10 = "fan4_1" +LABEL_fan11 = "fan5_0" +LABEL_fan12 = "fan5_1" + +PWM_TARGET_fan1 = "1" +PWM_TARGET_fan2 = "1" +PWM_TARGET_fan3 = "2" +PWM_TARGET_fan4 = "2" +PWM_TARGET_fan5 = "3" +PWM_TARGET_fan6 = "3" +PWM_TARGET_fan7 = "4" +PWM_TARGET_fan8 = "4" +PWM_TARGET_fan9 = "5" +PWM_TARGET_fan10 = "5" +PWM_TARGET_fan11 = "6" +PWM_TARGET_fan12 = "6" diff --git a/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/mihawk/obmc/hwmon/devices/platform/gpio-fsi/fsi-master/fsi0/slave@00--00/00--00--00--06/sbefifo1-dev0/occ-hwmon.1.conf b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/mihawk/obmc/hwmon/devices/platform/gpio-fsi/fsi-master/fsi0/slave@00--00/00--00--00--06/sbefifo1-dev0/occ-hwmon.1.conf new file mode 100644 index 00000000..d6d2416e --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/mihawk/obmc/hwmon/devices/platform/gpio-fsi/fsi-master/fsi0/slave@00--00/00--00--00--06/sbefifo1-dev0/occ-hwmon.1.conf @@ -0,0 +1,307 @@ +MODE_temp1 = "label" +MODE_temp2 = "label" +MODE_temp3 = "label" +MODE_temp4 = "label" +MODE_temp5 = "label" +MODE_temp6 = "label" +MODE_temp7 = "label" +MODE_temp8 = "label" +MODE_temp9 = "label" +MODE_temp10 = "label" +MODE_temp11 = "label" +MODE_temp12 = "label" +MODE_temp13 = "label" +MODE_temp14 = "label" +MODE_temp15 = "label" +MODE_temp16 = "label" +MODE_temp17 = "label" +MODE_temp18 = "label" +MODE_temp19 = "label" +MODE_temp20 = "label" +MODE_temp21 = "label" +MODE_temp22 = "label" +MODE_temp23 = "label" +MODE_temp24 = "label" +MODE_temp25 = "label" +MODE_temp26 = "label" +MODE_temp27 = "label" +MODE_temp28 = "label" +MODE_temp29 = "label" +MODE_temp30 = "label" +MODE_temp31 = "label" +MODE_temp32 = "label" +MODE_temp33 = "label" +MODE_temp34 = "label" +MODE_temp35 = "label" +MODE_temp36 = "label" +MODE_temp37 = "label" +MODE_temp38 = "label" +MODE_temp39 = "label" +MODE_temp40 = "label" + +MODE_power1 = "label" +MODE_power2 = "label" +MODE_power3 = "label" +MODE_power4 = "label" +MODE_power5 = "label" +MODE_power6 = "label" +MODE_power7 = "label" +MODE_power8 = "label" +MODE_power9 = "label" +MODE_power10 = "label" +MODE_power11 = "label" +MODE_power12 = "label" +MODE_power13 = "label" +MODE_power14 = "label" +MODE_power15 = "label" + +LABEL_temp17 = "p0_core0_temp" +WARNHI_temp17 = "85000" +WARNLO_temp17 = "0" +CRITHI_temp17 = "90000" +CRITLO_temp17 = "0" + +LABEL_temp20 = "p0_core1_temp" +WARNHI_temp20 = "85000" +WARNLO_temp20 = "0" +CRITHI_temp20 = "90000" +CRITLO_temp20 = "0" + +LABEL_temp23 = "p0_core2_temp" +WARNHI_temp23 = "85000" +WARNLO_temp23 = "0" +CRITHI_temp23 = "90000" +CRITLO_temp23 = "0" + +LABEL_temp26 = "p0_core3_temp" +WARNHI_temp26 = "85000" +WARNLO_temp26 = "0" +CRITHI_temp26 = "90000" +CRITLO_temp26 = "0" + +LABEL_temp29 = "p0_core4_temp" +WARNHI_temp29 = "85000" +WARNLO_temp29 = "0" +CRITHI_temp29 = "90000" +CRITLO_temp29 = "0" + +LABEL_temp32 = "p0_core5_temp" +WARNHI_temp32 = "85000" +WARNLO_temp32 = "0" +CRITHI_temp32 = "90000" +CRITLO_temp32 = "0" + +LABEL_temp35 = "p0_core6_temp" +WARNHI_temp35 = "85000" +WARNLO_temp35 = "0" +CRITHI_temp35 = "90000" +CRITLO_temp35 = "0" + +LABEL_temp38 = "p0_core7_temp" +WARNHI_temp38 = "85000" +WARNLO_temp38 = "0" +CRITHI_temp38 = "90000" +CRITLO_temp38 = "0" + +LABEL_temp41 = "p0_core8_temp" +WARNHI_temp41 = "85000" +WARNLO_temp41 = "0" +CRITHI_temp41 = "90000" +CRITLO_temp41 = "0" + +LABEL_temp44 = "p0_core9_temp" +WARNHI_temp44 = "85000" +WARNLO_temp44 = "0" +CRITHI_temp44 = "90000" +CRITLO_temp44 = "0" + +LABEL_temp47 = "p0_core10_temp" +WARNHI_temp47 = "85000" +WARNLO_temp47 = "0" +CRITHI_temp47 = "90000" +CRITLO_temp47 = "0" + +LABEL_temp50 = "p0_core11_temp" +WARNHI_temp50 = "85000" +WARNLO_temp50 = "0" +CRITHI_temp50 = "90000" +CRITLO_temp50 = "0" + +LABEL_temp53 = "p0_core12_temp" +WARNHI_temp53 = "85000" +WARNLO_temp53 = "0" +CRITHI_temp53 = "90000" +CRITLO_temp53 = "0" + +LABEL_temp56 = "p0_core13_temp" +WARNHI_temp56 = "85000" +WARNLO_temp56 = "0" +CRITHI_temp56 = "90000" +CRITLO_temp56 = "0" + +LABEL_temp59 = "p0_core14_temp" +WARNHI_temp59 = "85000" +WARNLO_temp59 = "0" +CRITHI_temp59 = "90000" +CRITLO_temp59 = "0" + +LABEL_temp62 = "p0_core15_temp" +WARNHI_temp62 = "85000" +WARNLO_temp62 = "0" +CRITHI_temp62 = "90000" +CRITLO_temp62 = "0" + +LABEL_temp65 = "p0_core16_temp" +WARNHI_temp65 = "85000" +WARNLO_temp65 = "0" +CRITHI_temp65 = "90000" +CRITLO_temp65 = "0" + +LABEL_temp68 = "p0_core17_temp" +WARNHI_temp68 = "85000" +WARNLO_temp68 = "0" +CRITHI_temp68 = "90000" +CRITLO_temp68 = "0" + +LABEL_temp71 = "p0_core18_temp" +WARNHI_temp71 = "85000" +WARNLO_temp71 = "0" +CRITHI_temp71 = "90000" +CRITLO_temp71 = "0" + +LABEL_temp74 = "p0_core19_temp" +WARNHI_temp74 = "85000" +WARNLO_temp74 = "0" +CRITHI_temp74 = "90000" +CRITLO_temp74 = "0" + +LABEL_temp77 = "p0_core20_temp" +WARNHI_temp77 = "85000" +WARNLO_temp77 = "0" +CRITHI_temp77 = "90000" +CRITLO_temp77 = "0" + +LABEL_temp80 = "p0_core21_temp" +WARNHI_temp80 = "85000" +WARNLO_temp80 = "0" +CRITHI_temp80 = "90000" +CRITLO_temp80 = "0" + +LABEL_temp83 = "p0_core22_temp" +WARNHI_temp83 = "85000" +WARNLO_temp83 = "0" +CRITHI_temp83 = "90000" +CRITLO_temp83 = "0" + +LABEL_temp86 = "p0_core23_temp" +WARNHI_temp86 = "85000" +WARNLO_temp86 = "0" +CRITHI_temp86 = "90000" +CRITLO_temp86 = "0" + +LABEL_temp165 = "dimm0_temp" +WARNHI_temp165 = "85000" +WARNLO_temp165 = "0" +CRITHI_temp165 = "95000" +CRITLO_temp165 = "0" + +LABEL_temp167 = "dimm1_temp" +WARNHI_temp167 = "85000" +WARNLO_temp167 = "0" +CRITHI_temp167 = "95000" +CRITLO_temp167 = "0" + +LABEL_temp169 = "dimm2_temp" +WARNHI_temp169 = "85000" +WARNLO_temp169 = "0" +CRITHI_temp169 = "95000" +CRITLO_temp169 = "0" + +LABEL_temp171 = "dimm3_temp" +WARNHI_temp171 = "85000" +WARNLO_temp171 = "0" +CRITHI_temp171 = "95000" +CRITLO_temp171 = "0" + +LABEL_temp173 = "dimm4_temp" +WARNHI_temp173 = "85000" +WARNLO_temp173 = "0" +CRITHI_temp173 = "95000" +CRITLO_temp173 = "0" + +LABEL_temp175 = "dimm5_temp" +WARNHI_temp175 = "85000" +WARNLO_temp175 = "0" +CRITHI_temp175 = "95000" +CRITLO_temp175 = "0" + +LABEL_temp177 = "dimm6_temp" +WARNHI_temp177 = "85000" +WARNLO_temp177 = "0" +CRITHI_temp177 = "95000" +CRITLO_temp177 = "0" + +LABEL_temp179 = "dimm7_temp" +WARNHI_temp179 = "85000" +WARNLO_temp179 = "0" +CRITHI_temp179 = "95000" +CRITLO_temp179 = "0" + +LABEL_temp197 = "dimm16_temp" +WARNHI_temp197 = "85000" +WARNLO_temp197 = "0" +CRITHI_temp197 = "95000" +CRITLO_temp197 = "0" + +LABEL_temp199 = "dimm17_temp" +WARNHI_temp199 = "85000" +WARNLO_temp199 = "0" +CRITHI_temp199 = "95000" +CRITLO_temp199 = "0" + +LABEL_temp201 = "dimm18_temp" +WARNHI_temp201 = "85000" +WARNLO_temp201 = "0" +CRITHI_temp201 = "95000" +CRITLO_temp201 = "0" + +LABEL_temp203 = "dimm19_temp" +WARNHI_temp203 = "85000" +WARNLO_temp203 = "0" +CRITHI_temp203 = "95000" +CRITLO_temp203 = "0" + +LABEL_temp205 = "dimm20_temp" +WARNHI_temp205 = "85000" +WARNLO_temp205 = "0" +CRITHI_temp205 = "95000" +CRITLO_temp205 = "0" + +LABEL_temp207 = "dimm21_temp" +WARNHI_temp207 = "85000" +WARNLO_temp207 = "0" +CRITHI_temp207 = "95000" +CRITLO_temp207 = "0" + +LABEL_temp209 = "dimm22_temp" +WARNHI_temp209 = "85000" +WARNLO_temp209 = "0" +CRITHI_temp209 = "95000" +CRITLO_temp209 = "0" + +LABEL_temp211 = "dimm23_temp" +WARNHI_temp211 = "85000" +WARNLO_temp211 = "0" +CRITHI_temp211 = "95000" +CRITLO_temp211 = "0" + +LABEL_power0_14_2 = "io_b_power" +LABEL_power0_13_3 = "io_a_power" +LABEL_power0_2_4 = "p1_mem_power" +LABEL_power0_6_5 = "p1_vdd_power" +LABEL_power0_1_6 = "p0_mem_power" +LABEL_power0_5_7 = "p0_vdd_power" +LABEL_power0_16_8 = "fans_power" +LABEL_power0_19_9 = "storage_b_power" +LABEL_power0_18_10 = "storage_a_power" +LABEL_powersystem = "total_power" diff --git a/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/mihawk/obmc/hwmon/devices/platform/gpio-fsi/fsi-master/fsi0/slave@00--00/00--00--00--0a/fsi-master/fsi1/slave@01--00/01--01--00--06/sbefifo2-dev0/occ-hwmon.2.conf b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/mihawk/obmc/hwmon/devices/platform/gpio-fsi/fsi-master/fsi0/slave@00--00/00--00--00--0a/fsi-master/fsi1/slave@01--00/01--01--00--06/sbefifo2-dev0/occ-hwmon.2.conf new file mode 100644 index 00000000..ba53cd95 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/mihawk/obmc/hwmon/devices/platform/gpio-fsi/fsi-master/fsi0/slave@00--00/00--00--00--0a/fsi-master/fsi1/slave@01--00/01--01--00--06/sbefifo2-dev0/occ-hwmon.2.conf @@ -0,0 +1,280 @@ +MODE_temp1 = "label" +MODE_temp2 = "label" +MODE_temp3 = "label" +MODE_temp4 = "label" +MODE_temp5 = "label" +MODE_temp6 = "label" +MODE_temp7 = "label" +MODE_temp8 = "label" +MODE_temp9 = "label" +MODE_temp10 = "label" +MODE_temp11 = "label" +MODE_temp12 = "label" +MODE_temp13 = "label" +MODE_temp14 = "label" +MODE_temp15 = "label" +MODE_temp16 = "label" +MODE_temp17 = "label" +MODE_temp18 = "label" +MODE_temp19 = "label" +MODE_temp20 = "label" +MODE_temp21 = "label" +MODE_temp22 = "label" +MODE_temp23 = "label" +MODE_temp24 = "label" +MODE_temp25 = "label" +MODE_temp26 = "label" +MODE_temp27 = "label" +MODE_temp28 = "label" +MODE_temp29 = "label" +MODE_temp30 = "label" +MODE_temp31 = "label" +MODE_temp32 = "label" +MODE_temp33 = "label" +MODE_temp34 = "label" +MODE_temp35 = "label" +MODE_temp36 = "label" +MODE_temp37 = "label" +MODE_temp38 = "label" +MODE_temp39 = "label" +MODE_temp40 = "label" +LABEL_temp91 = "p1_core0_temp" +WARNHI_temp91 = "85000" +WARNLO_temp91 = "0" +CRITHI_temp91 = "90000" +CRITLO_temp91 = "0" + +LABEL_temp94 = "p1_core1_temp" +WARNHI_temp94 = "85000" +WARNLO_temp94 = "0" +CRITHI_temp94 = "90000" +CRITLO_temp94 = "0" + +LABEL_temp97 = "p1_core2_temp" +WARNHI_temp97 = "85000" +WARNLO_temp97 = "0" +CRITHI_temp97 = "90000" +CRITLO_temp97 = "0" + +LABEL_temp100 = "p1_core3_temp" +WARNHI_temp100 = "85000" +WARNLO_temp100 = "0" +CRITHI_temp100 = "90000" +CRITLO_temp100 = "0" + +LABEL_temp103 = "p1_core4_temp" +WARNHI_temp103 = "85000" +WARNLO_temp103 = "0" +CRITHI_temp103 = "90000" +CRITLO_temp103 = "0" + +LABEL_temp106 = "p1_core5_temp" +WARNHI_temp106 = "85000" +WARNLO_temp106 = "0" +CRITHI_temp106 = "90000" +CRITLO_temp106 = "0" + +LABEL_temp109 = "p1_core6_temp" +WARNHI_temp109 = "85000" +WARNLO_temp109 = "0" +CRITHI_temp109 = "90000" +CRITLO_temp109 = "0" + +LABEL_temp112 = "p1_core7_temp" +WARNHI_temp112 = "85000" +WARNLO_temp112 = "0" +CRITHI_temp112 = "90000" +CRITLO_temp112 = "0" + +LABEL_temp115 = "p1_core8_temp" +WARNHI_temp115 = "85000" +WARNLO_temp115 = "0" +CRITHI_temp115 = "90000" +CRITLO_temp115 = "0" + +LABEL_temp118 = "p1_core9_temp" +WARNHI_temp118 = "85000" +WARNLO_temp118 = "0" +CRITHI_temp118 = "90000" +CRITLO_temp118 = "0" + +LABEL_temp121 = "p1_core10_temp" +WARNHI_temp121 = "85000" +WARNLO_temp121 = "0" +CRITHI_temp121 = "90000" +CRITLO_temp121 = "0" + +LABEL_temp124 = "p1_core11_temp" +WARNHI_temp124 = "85000" +WARNLO_temp124 = "0" +CRITHI_temp124 = "90000" +CRITLO_temp124 = "0" + +LABEL_temp127 = "p1_core12_temp" +WARNHI_temp127 = "85000" +WARNLO_temp127 = "0" +CRITHI_temp127 = "90000" +CRITLO_temp127 = "0" + +LABEL_temp130 = "p1_core13_temp" +WARNHI_temp130 = "85000" +WARNLO_temp130 = "0" +CRITHI_temp130 = "90000" +CRITLO_temp130 = "0" + +LABEL_temp133 = "p1_core14_temp" +WARNHI_temp133 = "85000" +WARNLO_temp133 = "0" +CRITHI_temp133 = "90000" +CRITLO_temp133 = "0" + +LABEL_temp136 = "p1_core15_temp" +WARNHI_temp136 = "85000" +WARNLO_temp136 = "0" +CRITHI_temp136 = "90000" +CRITLO_temp136 = "0" + +LABEL_temp139 = "p1_core16_temp" +WARNHI_temp139 = "85000" +WARNLO_temp139 = "0" +CRITHI_temp139 = "90000" +CRITLO_temp139 = "0" + +LABEL_temp142 = "p1_core17_temp" +WARNHI_temp142 = "85000" +WARNLO_temp142 = "0" +CRITHI_temp142 = "90000" +CRITLO_temp142 = "0" + +LABEL_temp145 = "p1_core18_temp" +WARNHI_temp145 = "85000" +WARNLO_temp145 = "0" +CRITHI_temp145 = "90000" +CRITLO_temp145 = "0" + +LABEL_temp148 = "p1_core19_temp" +WARNHI_temp148 = "85000" +WARNLO_temp148 = "0" +CRITHI_temp148 = "90000" +CRITLO_temp148 = "0" + +LABEL_temp151 = "p1_core20_temp" +WARNHI_temp151 = "85000" +WARNLO_temp151 = "0" +CRITHI_temp151 = "90000" +CRITLO_temp151 = "0" + +LABEL_temp154 = "p1_core21_temp" +WARNHI_temp154 = "85000" +WARNLO_temp154 = "0" +CRITHI_temp154 = "90000" +CRITLO_temp154 = "0" + +LABEL_temp157 = "p1_core22_temp" +WARNHI_temp157 = "85000" +WARNLO_temp157 = "0" +CRITHI_temp157 = "90000" +CRITLO_temp157 = "0" + +LABEL_temp160 = "p1_core23_temp" +WARNHI_temp160 = "85000" +WARNLO_temp160 = "0" +CRITHI_temp160 = "90000" +CRITLO_temp160 = "0" + +LABEL_temp181 = "dimm8_temp" +WARNHI_temp181 = "85000" +WARNLO_temp181 = "0" +CRITHI_temp181 = "95000" +CRITLO_temp181 = "0" + +LABEL_temp183 = "dimm9_temp" +WARNHI_temp183 = "85000" +WARNLO_temp183 = "0" +CRITHI_temp183 = "95000" +CRITLO_temp183 = "0" + +LABEL_temp185 = "dimm10_temp" +WARNHI_temp185 = "85000" +WARNLO_temp185 = "0" +CRITHI_temp185 = "95000" +CRITLO_temp185 = "0" + +LABEL_temp187 = "dimm11_temp" +WARNHI_temp187 = "85000" +WARNLO_temp187 = "0" +CRITHI_temp187 = "95000" +CRITLO_temp187 = "0" + +LABEL_temp189 = "dimm12_temp" +WARNHI_temp189 = "85000" +WARNLO_temp189 = "0" +CRITHI_temp189 = "95000" +CRITLO_temp189 = "0" + +LABEL_temp191 = "dimm13_temp" +WARNHI_temp191 = "85000" +WARNLO_temp191 = "0" +CRITHI_temp191 = "95000" +CRITLO_temp191 = "0" + +LABEL_temp193 = "dimm14_temp" +WARNHI_temp193 = "85000" +WARNLO_temp193 = "0" +CRITHI_temp193 = "95000" +CRITLO_temp193 = "0" + +LABEL_temp195 = "dimm15_temp" +WARNHI_temp195 = "85000" +WARNLO_temp195 = "0" +CRITHI_temp195 = "95000" +CRITLO_temp195 = "0" + +LABEL_temp213 = "dimm24_temp" +WARNHI_temp213 = "85000" +WARNLO_temp213 = "0" +CRITHI_temp213 = "95000" +CRITLO_temp213 = "0" + +LABEL_temp215 = "dimm25_temp" +WARNHI_temp215 = "85000" +WARNLO_temp215 = "0" +CRITHI_temp215 = "95000" +CRITLO_temp215 = "0" + +LABEL_temp217 = "dimm26_temp" +WARNHI_temp217 = "85000" +WARNLO_temp217 = "0" +CRITHI_temp217 = "95000" +CRITLO_temp217 = "0" + +LABEL_temp219 = "dimm27_temp" +WARNHI_temp219 = "85000" +WARNLO_temp219 = "0" +CRITHI_temp219 = "95000" +CRITLO_temp219 = "0" + +LABEL_temp221 = "dimm28_temp" +WARNHI_temp221 = "85000" +WARNLO_temp221 = "0" +CRITHI_temp221 = "95000" +CRITLO_temp221 = "0" + +LABEL_temp223 = "dimm29_temp" +WARNHI_temp223 = "85000" +WARNLO_temp223 = "0" +CRITHI_temp223 = "95000" +CRITLO_temp223 = "0" + +LABEL_temp225 = "dimm30_temp" +WARNHI_temp225 = "85000" +WARNLO_temp225 = "0" +CRITHI_temp225 = "95000" +CRITLO_temp225 = "0" + +LABEL_temp227 = "dimm31_temp" +WARNHI_temp227 = "85000" +WARNLO_temp227 = "0" +CRITHI_temp227 = "95000" +CRITLO_temp227 = "0" + diff --git a/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/mihawk/obmc/hwmon/iio-hwmon-12v.conf b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/mihawk/obmc/hwmon/iio-hwmon-12v.conf new file mode 100644 index 00000000..81d3aa51 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/mihawk/obmc/hwmon/iio-hwmon-12v.conf @@ -0,0 +1,2 @@ +LABEL_in1=12V +GAIN_in1=7.5 \ No newline at end of file diff --git a/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/mihawk/obmc/hwmon/iio-hwmon-3v.conf b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/mihawk/obmc/hwmon/iio-hwmon-3v.conf new file mode 100644 index 00000000..d7e4a92e --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/mihawk/obmc/hwmon/iio-hwmon-3v.conf @@ -0,0 +1,2 @@ +LABEL_in1=3V +GAIN_in1=3 \ No newline at end of file diff --git a/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/mihawk/obmc/hwmon/iio-hwmon-5v.conf b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/mihawk/obmc/hwmon/iio-hwmon-5v.conf new file mode 100644 index 00000000..b9ea49ef --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/mihawk/obmc/hwmon/iio-hwmon-5v.conf @@ -0,0 +1,2 @@ +LABEL_in1=5V +GAIN_in1=3 \ No newline at end of file diff --git a/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/mihawk/obmc/hwmon/iio-hwmon-battery.conf b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/mihawk/obmc/hwmon/iio-hwmon-battery.conf new file mode 100644 index 00000000..6f7341cd --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/mihawk/obmc/hwmon/iio-hwmon-battery.conf @@ -0,0 +1,9 @@ +LABEL_in1=vbat +GAIN_in1=2.368 + +# GPIOR3 needs to be pulled high for battery voltage reading +GPIOCHIP_in1=0 +GPIO_in1=139 + +# Read it every day so it does not impact battery life +INTERVAL=86400000000 \ No newline at end of file diff --git a/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/mihawk/obmc/hwmon/iio-hwmon-vcs0.conf b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/mihawk/obmc/hwmon/iio-hwmon-vcs0.conf new file mode 100644 index 00000000..4b8261f4 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/mihawk/obmc/hwmon/iio-hwmon-vcs0.conf @@ -0,0 +1,2 @@ +LABEL_in1=vcs0 +GAIN_in1=1 diff --git a/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/mihawk/obmc/hwmon/iio-hwmon-vcs1.conf b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/mihawk/obmc/hwmon/iio-hwmon-vcs1.conf new file mode 100644 index 00000000..02732c67 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/mihawk/obmc/hwmon/iio-hwmon-vcs1.conf @@ -0,0 +1,2 @@ +LABEL_in1=vcs1 +GAIN_in1=1 \ No newline at end of file diff --git a/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/mihawk/obmc/hwmon/iio-hwmon-vdd0.conf b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/mihawk/obmc/hwmon/iio-hwmon-vdd0.conf new file mode 100644 index 00000000..f9191405 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/mihawk/obmc/hwmon/iio-hwmon-vdd0.conf @@ -0,0 +1,2 @@ +LABEL_in1=vdd0 +GAIN_in1=1 diff --git a/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/mihawk/obmc/hwmon/iio-hwmon-vdd1.conf b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/mihawk/obmc/hwmon/iio-hwmon-vdd1.conf new file mode 100644 index 00000000..fe188856 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/mihawk/obmc/hwmon/iio-hwmon-vdd1.conf @@ -0,0 +1,2 @@ +LABEL_in1=vdd1 +GAIN_in1=1 \ No newline at end of file diff --git a/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/mihawk/obmc/hwmon/iio-hwmon-vddra.conf b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/mihawk/obmc/hwmon/iio-hwmon-vddra.conf new file mode 100644 index 00000000..3a11fd24 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/mihawk/obmc/hwmon/iio-hwmon-vddra.conf @@ -0,0 +1,2 @@ +LABEL_in1=vddra +GAIN_in1=1 diff --git a/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/mihawk/obmc/hwmon/iio-hwmon-vddrb.conf b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/mihawk/obmc/hwmon/iio-hwmon-vddrb.conf new file mode 100644 index 00000000..e9811cb1 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/mihawk/obmc/hwmon/iio-hwmon-vddrb.conf @@ -0,0 +1,2 @@ +LABEL_in1=vddrb +GAIN_in1=1 \ No newline at end of file diff --git a/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/mihawk/obmc/hwmon/iio-hwmon-vddrc.conf b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/mihawk/obmc/hwmon/iio-hwmon-vddrc.conf new file mode 100644 index 00000000..1753d93a --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/mihawk/obmc/hwmon/iio-hwmon-vddrc.conf @@ -0,0 +1,2 @@ +LABEL_in1=vddrc +GAIN_in1=1 diff --git a/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/mihawk/obmc/hwmon/iio-hwmon-vddrd.conf b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/mihawk/obmc/hwmon/iio-hwmon-vddrd.conf new file mode 100644 index 00000000..8fbfcd33 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/mihawk/obmc/hwmon/iio-hwmon-vddrd.conf @@ -0,0 +1,2 @@ +LABEL_in1=vddrd +GAIN_in1=1 \ No newline at end of file diff --git a/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/mihawk/obmc/hwmon/iio-hwmon-vdn0.conf b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/mihawk/obmc/hwmon/iio-hwmon-vdn0.conf new file mode 100644 index 00000000..afe6fcea --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/mihawk/obmc/hwmon/iio-hwmon-vdn0.conf @@ -0,0 +1,2 @@ +LABEL_in1=vdn0 +GAIN_in1=1 diff --git a/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/mihawk/obmc/hwmon/iio-hwmon-vdn1.conf b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/mihawk/obmc/hwmon/iio-hwmon-vdn1.conf new file mode 100644 index 00000000..5141b296 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/mihawk/obmc/hwmon/iio-hwmon-vdn1.conf @@ -0,0 +1,2 @@ +LABEL_in1=vdn1 +GAIN_in1=1 \ No newline at end of file diff --git a/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/mihawk/obmc/hwmon/iio-hwmon-vio0.conf b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/mihawk/obmc/hwmon/iio-hwmon-vio0.conf new file mode 100644 index 00000000..bf8e352e --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/mihawk/obmc/hwmon/iio-hwmon-vio0.conf @@ -0,0 +1,2 @@ +LABEL_in1=vio0 +GAIN_in1=1 diff --git a/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/mihawk/obmc/hwmon/iio-hwmon-vio1.conf b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/mihawk/obmc/hwmon/iio-hwmon-vio1.conf new file mode 100644 index 00000000..d8195853 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/mihawk/obmc/hwmon/iio-hwmon-vio1.conf @@ -0,0 +1,2 @@ +LABEL_in1=vio1 +GAIN_in1=1 \ No newline at end of file diff --git a/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/swift/obmc/hwmon/ahb/apb/bus@1e78a000/i2c-bus@100/max31785@52_air.conf b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/swift/obmc/hwmon/ahb/apb/bus@1e78a000/i2c-bus@100/max31785@52_air.conf index cddafc1a..0b97ed55 100644 --- a/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/swift/obmc/hwmon/ahb/apb/bus@1e78a000/i2c-bus@100/max31785@52_air.conf +++ b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/swift/obmc/hwmon/ahb/apb/bus@1e78a000/i2c-bus@100/max31785@52_air.conf @@ -1,17 +1,9 @@ LABEL_fan1 = "fan0_0" -CRITLO_fan1 = "3000" -CRITHI_fan1 = "12000" LABEL_fan2 = "fan1_0" -CRITLO_fan2 = "3000" -CRITHI_fan2 = "12000" LABEL_fan3 = "fan2_0" -CRITLO_fan3 = "3000" -CRITHI_fan3 = "12000" LABEL_fan4 = "fan3_0" -CRITLO_fan4 = "3000" -CRITHI_fan4 = "12000" TARGET_MODE = "RPM" diff --git a/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/swift/obmc/hwmon/ahb/apb/bus@1e78a000/i2c-bus@100/max31785@52_water.conf b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/swift/obmc/hwmon/ahb/apb/bus@1e78a000/i2c-bus@100/max31785@52_water.conf index cddafc1a..0b97ed55 100644 --- a/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/swift/obmc/hwmon/ahb/apb/bus@1e78a000/i2c-bus@100/max31785@52_water.conf +++ b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/swift/obmc/hwmon/ahb/apb/bus@1e78a000/i2c-bus@100/max31785@52_water.conf @@ -1,17 +1,9 @@ LABEL_fan1 = "fan0_0" -CRITLO_fan1 = "3000" -CRITHI_fan1 = "12000" LABEL_fan2 = "fan1_0" -CRITLO_fan2 = "3000" -CRITHI_fan2 = "12000" LABEL_fan3 = "fan2_0" -CRITLO_fan3 = "3000" -CRITHI_fan3 = "12000" LABEL_fan4 = "fan3_0" -CRITLO_fan4 = "3000" -CRITHI_fan4 = "12000" TARGET_MODE = "RPM" diff --git a/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/swift/obmc/hwmon/devices/platform/gpio-fsi/fsi0/slave@00--00/00--00--00--06/sbefifo1-dev0/occ-hwmon.1.conf b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/swift/obmc/hwmon/devices/platform/gpio-fsi/fsi-master/fsi0/slave@00--00/00--00--00--06/sbefifo1-dev0/occ-hwmon.1.conf similarity index 100% rename from Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/swift/obmc/hwmon/devices/platform/gpio-fsi/fsi0/slave@00--00/00--00--00--06/sbefifo1-dev0/occ-hwmon.1.conf rename to Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/swift/obmc/hwmon/devices/platform/gpio-fsi/fsi-master/fsi0/slave@00--00/00--00--00--06/sbefifo1-dev0/occ-hwmon.1.conf diff --git a/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/swift/obmc/hwmon/devices/platform/gpio-fsi/fsi0/slave@00--00/00--00--00--0a/fsi1/slave@01--00/01--01--00--06/sbefifo2-dev0/occ-hwmon.2.conf b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/swift/obmc/hwmon/devices/platform/gpio-fsi/fsi-master/fsi0/slave@00--00/00--00--00--0a/fsi-master/fsi1/slave@01--00/01--01--00--06/sbefifo2-dev0/occ-hwmon.2.conf similarity index 100% rename from Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/swift/obmc/hwmon/devices/platform/gpio-fsi/fsi0/slave@00--00/00--00--00--0a/fsi1/slave@01--00/01--01--00--06/sbefifo2-dev0/occ-hwmon.2.conf rename to Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/swift/obmc/hwmon/devices/platform/gpio-fsi/fsi-master/fsi0/slave@00--00/00--00--00--0a/fsi-master/fsi1/slave@01--00/01--01--00--06/sbefifo2-dev0/occ-hwmon.2.conf diff --git a/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/witherspoon-tacoma/obmc/hwmon/ahb/apb/bus@1e78a000/i2c-bus@200/bmp280@77.conf b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/witherspoon-tacoma/obmc/hwmon/ahb/apb/bus@1e78a000/i2c-bus@200/bmp280@77.conf new file mode 100644 index 00000000..cdf8b472 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/witherspoon-tacoma/obmc/hwmon/ahb/apb/bus@1e78a000/i2c-bus@200/bmp280@77.conf @@ -0,0 +1,6 @@ +LABEL_temp1 = "ambient" +WARNHI_temp1 = "25000" +WARNLO_temp1 = "0" +CRITHI_temp1 = "35000" +CRITLO_temp1 = "0" +OFFSET_temp1 = "-2000" diff --git a/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/witherspoon-tacoma/obmc/hwmon/ahb/apb/bus@1e78a000/i2c-bus@200/dps310@76.conf b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/witherspoon-tacoma/obmc/hwmon/ahb/apb/bus@1e78a000/i2c-bus@200/dps310@76.conf new file mode 100644 index 00000000..cdf8b472 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/witherspoon-tacoma/obmc/hwmon/ahb/apb/bus@1e78a000/i2c-bus@200/dps310@76.conf @@ -0,0 +1,6 @@ +LABEL_temp1 = "ambient" +WARNHI_temp1 = "25000" +WARNLO_temp1 = "0" +CRITHI_temp1 = "35000" +CRITLO_temp1 = "0" +OFFSET_temp1 = "-2000" diff --git a/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/witherspoon-tacoma/obmc/hwmon/ahb/apb/bus@1e78a000/i2c-bus@200/max31785@52_air.conf b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/witherspoon-tacoma/obmc/hwmon/ahb/apb/bus@1e78a000/i2c-bus@200/max31785@52_air.conf new file mode 100644 index 00000000..d3df2159 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/witherspoon-tacoma/obmc/hwmon/ahb/apb/bus@1e78a000/i2c-bus@200/max31785@52_air.conf @@ -0,0 +1,17 @@ +LABEL_fan1 = "fan0_0" + +LABEL_fan2 = "fan1_0" + +LABEL_fan3 = "fan2_0" + +LABEL_fan4 = "fan3_0" + +LABEL_fan5 = "fan0_1" + +LABEL_fan6 = "fan1_1" + +LABEL_fan7 = "fan2_1" + +LABEL_fan8 = "fan3_1" + +TARGET_MODE = "RPM" diff --git a/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/witherspoon-tacoma/obmc/hwmon/ahb/apb/bus@1e78a000/i2c-bus@200/max31785@52_water.conf b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/witherspoon-tacoma/obmc/hwmon/ahb/apb/bus@1e78a000/i2c-bus@200/max31785@52_water.conf new file mode 100644 index 00000000..c96bfa76 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/witherspoon-tacoma/obmc/hwmon/ahb/apb/bus@1e78a000/i2c-bus@200/max31785@52_water.conf @@ -0,0 +1,13 @@ +LABEL_fan1 = "fan0_0" + +LABEL_fan3 = "fan2_0" + +LABEL_fan4 = "fan3_0" + +LABEL_fan5 = "fan0_1" + +LABEL_fan7 = "fan2_1" + +LABEL_fan8 = "fan3_1" + +TARGET_MODE = "RPM" diff --git a/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/witherspoon-tacoma/obmc/hwmon/ahb/apb/bus@1e78a000/i2c-bus@200/power-supply@68.conf b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/witherspoon-tacoma/obmc/hwmon/ahb/apb/bus@1e78a000/i2c-bus@200/power-supply@68.conf new file mode 100644 index 00000000..e463b517 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/witherspoon-tacoma/obmc/hwmon/ahb/apb/bus@1e78a000/i2c-bus@200/power-supply@68.conf @@ -0,0 +1,23 @@ +LABEL_in1="ps1_input_voltage" +WARNHI_in1="290000" +WARNLO_in1="200000" +CRITHI_in1="300000" +CRITLO_in1="180000" + +LABEL_in2="ps1_output_voltage" +WARNHI_in2="12700" +WARNLO_in2="0" +CRITHI_in2="13000" +CRITLO_in2="0" + +LABEL_curr1="ps1_output_current" +WARNHI_curr1="170000" +WARNLO_curr1="0" +CRITHI_curr1="180000" +CRITLO_curr1="0" + +LABEL_power1="ps1_input_power" +WARNHI_power1="2350000000" +WARNLO_power1="0" +CRITHI_power1="2500000000" +CRITLO_power1="0" diff --git a/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/witherspoon-tacoma/obmc/hwmon/ahb/apb/bus@1e78a000/i2c-bus@200/power-supply@69.conf b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/witherspoon-tacoma/obmc/hwmon/ahb/apb/bus@1e78a000/i2c-bus@200/power-supply@69.conf new file mode 100644 index 00000000..2fadbdec --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/witherspoon-tacoma/obmc/hwmon/ahb/apb/bus@1e78a000/i2c-bus@200/power-supply@69.conf @@ -0,0 +1,23 @@ +LABEL_in1="ps0_input_voltage" +WARNHI_in1="290000" +WARNLO_in1="200000" +CRITHI_in1="300000" +CRITLO_in1="180000" + +LABEL_in2="ps0_output_voltage" +WARNHI_in2="12700" +WARNLO_in2="0" +CRITHI_in2="13000" +CRITLO_in2="0" + +LABEL_curr1="ps0_output_current" +WARNHI_curr1="170000" +WARNLO_curr1="0" +CRITHI_curr1="180000" +CRITLO_curr1="0" + +LABEL_power1="ps0_input_power" +WARNHI_power1="2350000000" +WARNLO_power1="0" +CRITHI_power1="2500000000" +CRITLO_power1="0" diff --git a/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/witherspoon-tacoma/obmc/hwmon/ahb/apb/bus@1e78a000/i2c-bus@280/ir35221@70.conf b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/witherspoon-tacoma/obmc/hwmon/ahb/apb/bus@1e78a000/i2c-bus@280/ir35221@70.conf new file mode 100644 index 00000000..c5344aeb --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/witherspoon-tacoma/obmc/hwmon/ahb/apb/bus@1e78a000/i2c-bus@280/ir35221@70.conf @@ -0,0 +1,65 @@ +#4-0070 +#VDD then VCS + +MODE_in1 = "label" +MODE_in2 = "label" +MODE_in3 = "label" +MODE_in4 = "label" + +MODE_curr1 = "label" +MODE_curr2 = "label" +MODE_curr3 = "label" +MODE_curr4 = "label" + +MODE_power1 = "label" +MODE_power2 = "label" +MODE_power3 = "label" +MODE_power4 = "label" + +LABEL_temp1 = "p0_vdd_temp" +WARNHI_temp1 = "80000" +WARNLO_temp1 = "0" +CRITHI_temp1 = "85000" +CRITLO_temp1 = "0" + +LABEL_curriout1 = "p0_vdd_current" +WARNLO_curriout1 = "0" +CRITLO_curriout1 = "0" +WARNHI_curriout1 = "320000" +CRITHI_curriout1 = "360000" + +LABEL_invout1 = "p0_vdd_voltage" +WARNLO_invout1 = "0" +CRITLO_invout1 = "0" +WARNHI_invout1 = "1150" +CRITHI_invout1 = "1300" + +LABEL_powerpout1 = "p0_vdd_power" +WARNLO_powerpout1 = "0" +CRITLO_powerpout1 = "0" +WARNHI_powerpout1 = "270000000" +CRITHI_powerpout1 = "290000000" + +LABEL_temp2 = "p0_vcs_temp" +WARNHI_temp2 = "80000" +WARNLO_temp2 = "0" +CRITHI_temp2 = "85000" +CRITLO_temp2 = "0" + +LABEL_curriout2 = "p0_vcs_current" +WARNLO_curriout2 = "0" +CRITLO_curriout2 = "0" +WARNHI_curriout2 = "20000" +CRITHI_curriout2 = "25000" + +LABEL_invout2 = "p0_vcs_voltage" +WARNLO_invout2 = "0" +CRITLO_invout2 = "0" +WARNHI_invout2 = "1150" +CRITHI_invout2 = "1300" + +LABEL_powerpout2 = "p0_vcs_power" +WARNLO_powerpout2 = "0" +CRITLO_powerpout2 = "0" +WARNHI_powerpout2 = "20000000" +CRITHI_powerpout2 = "25000000" diff --git a/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/witherspoon-tacoma/obmc/hwmon/ahb/apb/bus@1e78a000/i2c-bus@280/ir35221@71.conf b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/witherspoon-tacoma/obmc/hwmon/ahb/apb/bus@1e78a000/i2c-bus@280/ir35221@71.conf new file mode 100644 index 00000000..23746aa1 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/witherspoon-tacoma/obmc/hwmon/ahb/apb/bus@1e78a000/i2c-bus@280/ir35221@71.conf @@ -0,0 +1,65 @@ +#4-0071 +#VDN then VDDR + +MODE_in1 = "label" +MODE_in2 = "label" +MODE_in3 = "label" +MODE_in4 = "label" + +MODE_curr1 = "label" +MODE_curr2 = "label" +MODE_curr3 = "label" +MODE_curr4 = "label" + +MODE_power1 = "label" +MODE_power2 = "label" +MODE_power3 = "label" +MODE_power4 = "label" + +LABEL_temp1 = "p0_vdn_temp" +WARNHI_temp1 = "80000" +WARNLO_temp1 = "0" +CRITHI_temp1 = "85000" +CRITLO_temp1 = "0" + +LABEL_curriout1 = "p0_vdn_current" +WARNLO_curriout1 = "0" +CRITLO_curriout1 = "0" +WARNHI_curriout1 = "80000" +CRITHI_curriout1 = "110000" + +LABEL_invout1 = "p0_vdn_voltage" +WARNLO_invout1 = "0" +CRITLO_invout1 = "0" +WARNHI_invout1 = "1100" +CRITHI_invout1 = "1300" + +LABEL_powerpout1 = "p0_vdn_power" +WARNLO_powerpout1 = "0" +CRITLO_powerpout1 = "0" +WARNHI_powerpout1 = "88000000" +CRITHI_powerpout1 = "121000000" + +LABEL_temp2 = "p0_vddr_temp" +WARNHI_temp2 = "80000" +WARNLO_temp2 = "0" +CRITHI_temp2 = "85000" +CRITLO_temp2 = "0" + +LABEL_curriout2 = "p0_vddr_current" +WARNLO_curriout2 = "0" +CRITLO_curriout2 = "0" +WARNHI_curriout2 = "115000" +CRITHI_curriout2 = "130000" + +LABEL_invout2 = "p0_vddr_voltage" +WARNLO_invout2 = "0" +CRITLO_invout2 = "0" +WARNHI_invout2 = "1280" +CRITHI_invout2 = "1350" + +LABEL_powerpout2 = "p0_vddr_power" +WARNLO_powerpout2 = "0" +CRITLO_powerpout2 = "0" +WARNHI_powerpout2 = "139150000" +CRITHI_powerpout2 = "159900000" diff --git a/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/witherspoon-tacoma/obmc/hwmon/ahb/apb/bus@1e78a000/i2c-bus@300/ir35221@70.conf b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/witherspoon-tacoma/obmc/hwmon/ahb/apb/bus@1e78a000/i2c-bus@300/ir35221@70.conf new file mode 100644 index 00000000..e7d8aaf2 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/witherspoon-tacoma/obmc/hwmon/ahb/apb/bus@1e78a000/i2c-bus@300/ir35221@70.conf @@ -0,0 +1,65 @@ +#5-0070 +#VDD then VCS + +MODE_in1 = "label" +MODE_in2 = "label" +MODE_in3 = "label" +MODE_in4 = "label" + +MODE_curr1 = "label" +MODE_curr2 = "label" +MODE_curr3 = "label" +MODE_curr4 = "label" + +MODE_power1 = "label" +MODE_power2 = "label" +MODE_power3 = "label" +MODE_power4 = "label" + +LABEL_temp1 = "p1_vdd_temp" +WARNHI_temp1 = "80000" +WARNLO_temp1 = "0" +CRITHI_temp1 = "85000" +CRITLO_temp1 = "0" + +LABEL_curriout1 = "p1_vdd_current" +WARNLO_curriout1 = "0" +CRITLO_curriout1 = "0" +WARNHI_curriout1 = "320000" +CRITHI_curriout1 = "360000" + +LABEL_invout1 = "p1_vdd_voltage" +WARNLO_invout1 = "0" +CRITLO_invout1 = "0" +WARNHI_invout1 = "1150" +CRITHI_invout1 = "1300" + +LABEL_powerpout1 = "p1_vdd_power" +WARNLO_powerpout1 = "0" +CRITLO_powerpout1 = "0" +WARNHI_powerpout1 = "270000000" +CRITHI_powerpout1 = "290000000" + +LABEL_temp2 = "p1_vcs_temp" +WARNHI_temp2 = "80000" +WARNLO_temp2 = "0" +CRITHI_temp2 = "85000" +CRITLO_temp2 = "0" + +LABEL_curriout2 = "p1_vcs_current" +WARNLO_curriout2 = "0" +CRITLO_curriout2 = "0" +WARNHI_curriout2 = "20000" +CRITHI_curriout2 = "25000" + +LABEL_invout2 = "p1_vcs_voltage" +WARNLO_invout2 = "0" +CRITLO_invout2 = "0" +WARNHI_invout2 = "1150" +CRITHI_invout2 = "1300" + +LABEL_powerpout2 = "p1_vcs_power" +WARNLO_powerpout2 = "0" +CRITLO_powerpout2 = "0" +WARNHI_powerpout2 = "20000000" +CRITHI_powerpout2 = "25000000" diff --git a/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/witherspoon-tacoma/obmc/hwmon/ahb/apb/bus@1e78a000/i2c-bus@300/ir35221@71.conf b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/witherspoon-tacoma/obmc/hwmon/ahb/apb/bus@1e78a000/i2c-bus@300/ir35221@71.conf new file mode 100644 index 00000000..30ec05db --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/witherspoon-tacoma/obmc/hwmon/ahb/apb/bus@1e78a000/i2c-bus@300/ir35221@71.conf @@ -0,0 +1,65 @@ +#5-0071 +#VDN then VDDR + +MODE_in1 = "label" +MODE_in2 = "label" +MODE_in3 = "label" +MODE_in4 = "label" + +MODE_curr1 = "label" +MODE_curr2 = "label" +MODE_curr3 = "label" +MODE_curr4 = "label" + +MODE_power1 = "label" +MODE_power2 = "label" +MODE_power3 = "label" +MODE_power4 = "label" + +LABEL_temp1 = "p1_vdn_temp" +WARNHI_temp1 = "80000" +WARNLO_temp1 = "0" +CRITHI_temp1 = "85000" +CRITLO_temp1 = "0" + +LABEL_curriout1 = "p1_vdn_current" +WARNLO_curriout1 = "0" +CRITLO_curriout1 = "0" +WARNHI_curriout1 = "80000" +CRITHI_curriout1 = "110000" + +LABEL_invout1 = "p1_vdn_voltage" +WARNLO_invout1 = "0" +CRITLO_invout1 = "0" +WARNHI_invout1 = "1100" +CRITHI_invout1 = "1300" + +LABEL_powerpout1 = "p1_vdn_power" +WARNLO_powerpout1 = "0" +CRITLO_powerpout1 = "0" +WARNHI_powerpout1 = "88000000" +CRITHI_powerpout1 = "121000000" + +LABEL_temp2 = "p1_vddr_temp" +WARNHI_temp2 = "80000" +WARNLO_temp2 = "0" +CRITHI_temp2 = "85000" +CRITLO_temp2 = "0" + +LABEL_curriout2 = "p1_vddr_current" +WARNLO_curriout2 = "0" +CRITLO_curriout2 = "0" +WARNHI_curriout2 = "115000" +CRITHI_curriout2 = "130000" + +LABEL_invout2 = "p1_vddr_voltage" +WARNLO_invout2 = "0" +CRITLO_invout2 = "0" +WARNHI_invout2 = "1280" +CRITHI_invout2 = "1350" + +LABEL_powerpout2 = "p1_vddr_power" +WARNLO_powerpout2 = "0" +CRITLO_powerpout2 = "0" +WARNHI_powerpout2 = "139150000" +CRITHI_powerpout2 = "159900000" diff --git a/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/witherspoon-tacoma/obmc/hwmon/ahb/apb/bus@1e78a000/i2c-bus@500/tmp275@4a.conf b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/witherspoon-tacoma/obmc/hwmon/ahb/apb/bus@1e78a000/i2c-bus@500/tmp275@4a.conf new file mode 100644 index 00000000..3af09286 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/witherspoon-tacoma/obmc/hwmon/ahb/apb/bus@1e78a000/i2c-bus@500/tmp275@4a.conf @@ -0,0 +1,5 @@ +LABEL_temp1 = "pcie" +WARNHI_temp1 = "60000" +WARNLO_temp1 = "0" +CRITHI_temp1 = "70000" +CRITLO_temp1 = "0" diff --git a/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/witherspoon/obmc/hwmon/ahb/apb/bus@1e78a000/i2c-bus@100/max31785@52_air.conf b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/witherspoon/obmc/hwmon/ahb/apb/bus@1e78a000/i2c-bus@100/max31785@52_air.conf index 0aafc9b1..d3df2159 100644 --- a/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/witherspoon/obmc/hwmon/ahb/apb/bus@1e78a000/i2c-bus@100/max31785@52_air.conf +++ b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/witherspoon/obmc/hwmon/ahb/apb/bus@1e78a000/i2c-bus@100/max31785@52_air.conf @@ -1,33 +1,17 @@ LABEL_fan1 = "fan0_0" -CRITLO_fan1 = "2974" -CRITHI_fan1 = "12076" LABEL_fan2 = "fan1_0" -CRITLO_fan2 = "2974" -CRITHI_fan2 = "12076" LABEL_fan3 = "fan2_0" -CRITLO_fan3 = "2974" -CRITHI_fan3 = "12076" LABEL_fan4 = "fan3_0" -CRITLO_fan4 = "2974" -CRITHI_fan4 = "12076" LABEL_fan5 = "fan0_1" -CRITLO_fan5 = "2974" -CRITHI_fan5 = "12076" LABEL_fan6 = "fan1_1" -CRITLO_fan6 = "2974" -CRITHI_fan6 = "12076" LABEL_fan7 = "fan2_1" -CRITLO_fan7 = "2974" -CRITHI_fan7 = "12076" LABEL_fan8 = "fan3_1" -CRITLO_fan8 = "2974" -CRITHI_fan8 = "12076" TARGET_MODE = "RPM" diff --git a/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/witherspoon/obmc/hwmon/ahb/apb/bus@1e78a000/i2c-bus@100/max31785@52_water.conf b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/witherspoon/obmc/hwmon/ahb/apb/bus@1e78a000/i2c-bus@100/max31785@52_water.conf index 5c0efe42..c96bfa76 100644 --- a/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/witherspoon/obmc/hwmon/ahb/apb/bus@1e78a000/i2c-bus@100/max31785@52_water.conf +++ b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/witherspoon/obmc/hwmon/ahb/apb/bus@1e78a000/i2c-bus@100/max31785@52_water.conf @@ -1,25 +1,13 @@ LABEL_fan1 = "fan0_0" -CRITLO_fan1 = "2549" -CRITHI_fan1 = "12076" LABEL_fan3 = "fan2_0" -CRITLO_fan3 = "2549" -CRITHI_fan3 = "12076" LABEL_fan4 = "fan3_0" -CRITLO_fan4 = "2549" -CRITHI_fan4 = "12076" LABEL_fan5 = "fan0_1" -CRITLO_fan5 = "2549" -CRITHI_fan5 = "12076" LABEL_fan7 = "fan2_1" -CRITLO_fan7 = "2549" -CRITHI_fan7 = "12076" LABEL_fan8 = "fan3_1" -CRITLO_fan8 = "2549" -CRITHI_fan8 = "12076" TARGET_MODE = "RPM" diff --git a/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/witherspoon/obmc/hwmon/ahb/apb/bus@1e78a000/i2c-bus@140/ir35221@70.conf b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/witherspoon/obmc/hwmon/ahb/apb/bus@1e78a000/i2c-bus@140/ir35221@70.conf index 9ae1f1ef..c5344aeb 100644 --- a/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/witherspoon/obmc/hwmon/ahb/apb/bus@1e78a000/i2c-bus@140/ir35221@70.conf +++ b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/witherspoon/obmc/hwmon/ahb/apb/bus@1e78a000/i2c-bus@140/ir35221@70.conf @@ -1,26 +1,44 @@ +#4-0070 +#VDD then VCS + +MODE_in1 = "label" +MODE_in2 = "label" +MODE_in3 = "label" +MODE_in4 = "label" + +MODE_curr1 = "label" +MODE_curr2 = "label" +MODE_curr3 = "label" +MODE_curr4 = "label" + +MODE_power1 = "label" +MODE_power2 = "label" +MODE_power3 = "label" +MODE_power4 = "label" + LABEL_temp1 = "p0_vdd_temp" WARNHI_temp1 = "80000" WARNLO_temp1 = "0" CRITHI_temp1 = "85000" CRITLO_temp1 = "0" -LABEL_curr2 = "p0_vdd_current" -WARNLO_curr2 = "0" -CRITLO_curr2 = "0" -WARNHI_curr2 = "320000" -CRITHI_curr2 = "360000" +LABEL_curriout1 = "p0_vdd_current" +WARNLO_curriout1 = "0" +CRITLO_curriout1 = "0" +WARNHI_curriout1 = "320000" +CRITHI_curriout1 = "360000" -LABEL_in2 = "p0_vdd_voltage" -WARNLO_in2 = "0" -CRITLO_in2 = "0" -WARNHI_in2 = "1150" -CRITHI_in2 = "1300" +LABEL_invout1 = "p0_vdd_voltage" +WARNLO_invout1 = "0" +CRITLO_invout1 = "0" +WARNHI_invout1 = "1150" +CRITHI_invout1 = "1300" -LABEL_power2 = "p0_vdd_power" -WARNLO_power2 = "0" -CRITLO_power2 = "0" -WARNHI_power2 = "270000000" -CRITHI_power2 = "290000000" +LABEL_powerpout1 = "p0_vdd_power" +WARNLO_powerpout1 = "0" +CRITLO_powerpout1 = "0" +WARNHI_powerpout1 = "270000000" +CRITHI_powerpout1 = "290000000" LABEL_temp2 = "p0_vcs_temp" WARNHI_temp2 = "80000" @@ -28,20 +46,20 @@ WARNLO_temp2 = "0" CRITHI_temp2 = "85000" CRITLO_temp2 = "0" -LABEL_curr3 = "p0_vcs_current" -WARNLO_curr3 = "0" -CRITLO_curr3 = "0" -WARNHI_curr3 = "20000" -CRITHI_curr3 = "25000" - -LABEL_in3 = "p0_vcs_voltage" -WARNLO_in3 = "0" -CRITLO_in3 = "0" -WARNHI_in3 = "1150" -CRITHI_in3 = "1300" - -LABEL_power3 = "p0_vcs_power" -WARNLO_power3 = "0" -CRITLO_power3 = "0" -WARNHI_power3 = "20000000" -CRITHI_power3 = "25000000" \ No newline at end of file +LABEL_curriout2 = "p0_vcs_current" +WARNLO_curriout2 = "0" +CRITLO_curriout2 = "0" +WARNHI_curriout2 = "20000" +CRITHI_curriout2 = "25000" + +LABEL_invout2 = "p0_vcs_voltage" +WARNLO_invout2 = "0" +CRITLO_invout2 = "0" +WARNHI_invout2 = "1150" +CRITHI_invout2 = "1300" + +LABEL_powerpout2 = "p0_vcs_power" +WARNLO_powerpout2 = "0" +CRITLO_powerpout2 = "0" +WARNHI_powerpout2 = "20000000" +CRITHI_powerpout2 = "25000000" diff --git a/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/witherspoon/obmc/hwmon/ahb/apb/bus@1e78a000/i2c-bus@140/ir35221@71.conf b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/witherspoon/obmc/hwmon/ahb/apb/bus@1e78a000/i2c-bus@140/ir35221@71.conf index 723a68d6..23746aa1 100644 --- a/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/witherspoon/obmc/hwmon/ahb/apb/bus@1e78a000/i2c-bus@140/ir35221@71.conf +++ b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/witherspoon/obmc/hwmon/ahb/apb/bus@1e78a000/i2c-bus@140/ir35221@71.conf @@ -1,26 +1,44 @@ +#4-0071 +#VDN then VDDR + +MODE_in1 = "label" +MODE_in2 = "label" +MODE_in3 = "label" +MODE_in4 = "label" + +MODE_curr1 = "label" +MODE_curr2 = "label" +MODE_curr3 = "label" +MODE_curr4 = "label" + +MODE_power1 = "label" +MODE_power2 = "label" +MODE_power3 = "label" +MODE_power4 = "label" + LABEL_temp1 = "p0_vdn_temp" WARNHI_temp1 = "80000" WARNLO_temp1 = "0" CRITHI_temp1 = "85000" CRITLO_temp1 = "0" -LABEL_curr2 = "p0_vdn_current" -WARNLO_curr2 = "0" -CRITLO_curr2 = "0" -WARNHI_curr2 = "80000" -CRITHI_curr2 = "110000" +LABEL_curriout1 = "p0_vdn_current" +WARNLO_curriout1 = "0" +CRITLO_curriout1 = "0" +WARNHI_curriout1 = "80000" +CRITHI_curriout1 = "110000" -LABEL_in2 = "p0_vdn_voltage" -WARNLO_in2 = "0" -CRITLO_in2 = "0" -WARNHI_in2 = "1100" -CRITHI_in2 = "1300" +LABEL_invout1 = "p0_vdn_voltage" +WARNLO_invout1 = "0" +CRITLO_invout1 = "0" +WARNHI_invout1 = "1100" +CRITHI_invout1 = "1300" -LABEL_power2 = "p0_vdn_power" -WARNLO_power2 = "0" -CRITLO_power2 = "0" -WARNHI_power2 = "88000000" -CRITHI_power2 = "121000000" +LABEL_powerpout1 = "p0_vdn_power" +WARNLO_powerpout1 = "0" +CRITLO_powerpout1 = "0" +WARNHI_powerpout1 = "88000000" +CRITHI_powerpout1 = "121000000" LABEL_temp2 = "p0_vddr_temp" WARNHI_temp2 = "80000" @@ -28,20 +46,20 @@ WARNLO_temp2 = "0" CRITHI_temp2 = "85000" CRITLO_temp2 = "0" -LABEL_curr3 = "p0_vddr_current" -WARNLO_curr3 = "0" -CRITLO_curr3 = "0" -WARNHI_curr3 = "115000" -CRITHI_curr3 = "130000" - -LABEL_in3 = "p0_vddr_voltage" -WARNLO_in3 = "0" -CRITLO_in3 = "0" -WARNHI_in3 = "1280" -CRITHI_in3 = "1350" - -LABEL_power3 = "p0_vddr_power" -WARNLO_power3 = "0" -CRITLO_power3 = "0" -WARNHI_power3 = "139150000" -CRITHI_power3 = "159900000" \ No newline at end of file +LABEL_curriout2 = "p0_vddr_current" +WARNLO_curriout2 = "0" +CRITLO_curriout2 = "0" +WARNHI_curriout2 = "115000" +CRITHI_curriout2 = "130000" + +LABEL_invout2 = "p0_vddr_voltage" +WARNLO_invout2 = "0" +CRITLO_invout2 = "0" +WARNHI_invout2 = "1280" +CRITHI_invout2 = "1350" + +LABEL_powerpout2 = "p0_vddr_power" +WARNLO_powerpout2 = "0" +CRITLO_powerpout2 = "0" +WARNHI_powerpout2 = "139150000" +CRITHI_powerpout2 = "159900000" diff --git a/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/witherspoon/obmc/hwmon/ahb/apb/bus@1e78a000/i2c-bus@180/ir35221@70.conf b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/witherspoon/obmc/hwmon/ahb/apb/bus@1e78a000/i2c-bus@180/ir35221@70.conf index 1fa7b5a5..e7d8aaf2 100644 --- a/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/witherspoon/obmc/hwmon/ahb/apb/bus@1e78a000/i2c-bus@180/ir35221@70.conf +++ b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/witherspoon/obmc/hwmon/ahb/apb/bus@1e78a000/i2c-bus@180/ir35221@70.conf @@ -1,26 +1,44 @@ +#5-0070 +#VDD then VCS + +MODE_in1 = "label" +MODE_in2 = "label" +MODE_in3 = "label" +MODE_in4 = "label" + +MODE_curr1 = "label" +MODE_curr2 = "label" +MODE_curr3 = "label" +MODE_curr4 = "label" + +MODE_power1 = "label" +MODE_power2 = "label" +MODE_power3 = "label" +MODE_power4 = "label" + LABEL_temp1 = "p1_vdd_temp" WARNHI_temp1 = "80000" WARNLO_temp1 = "0" CRITHI_temp1 = "85000" CRITLO_temp1 = "0" -LABEL_curr2 = "p1_vdd_current" -WARNLO_curr2 = "0" -CRITLO_curr2 = "0" -WARNHI_curr2 = "320000" -CRITHI_curr2 = "360000" +LABEL_curriout1 = "p1_vdd_current" +WARNLO_curriout1 = "0" +CRITLO_curriout1 = "0" +WARNHI_curriout1 = "320000" +CRITHI_curriout1 = "360000" -LABEL_in2 = "p1_vdd_voltage" -WARNLO_in2 = "0" -CRITLO_in2 = "0" -WARNHI_in2 = "1150" -CRITHI_in2 = "1300" +LABEL_invout1 = "p1_vdd_voltage" +WARNLO_invout1 = "0" +CRITLO_invout1 = "0" +WARNHI_invout1 = "1150" +CRITHI_invout1 = "1300" -LABEL_power2 = "p1_vdd_power" -WARNLO_power2 = "0" -CRITLO_power2 = "0" -WARNHI_power2 = "270000000" -CRITHI_power2 = "290000000" +LABEL_powerpout1 = "p1_vdd_power" +WARNLO_powerpout1 = "0" +CRITLO_powerpout1 = "0" +WARNHI_powerpout1 = "270000000" +CRITHI_powerpout1 = "290000000" LABEL_temp2 = "p1_vcs_temp" WARNHI_temp2 = "80000" @@ -28,20 +46,20 @@ WARNLO_temp2 = "0" CRITHI_temp2 = "85000" CRITLO_temp2 = "0" -LABEL_curr3 = "p1_vcs_current" -WARNLO_curr3 = "0" -CRITLO_curr3 = "0" -WARNHI_curr3 = "20000" -CRITHI_curr3 = "25000" - -LABEL_in3 = "p1_vcs_voltage" -WARNLO_in3 = "0" -CRITLO_in3 = "0" -WARNHI_in3 = "1150" -CRITHI_in3 = "1300" - -LABEL_power3 = "p1_vcs_power" -WARNLO_power3 = "0" -CRITLO_power3 = "0" -WARNHI_power3 = "20000000" -CRITHI_power3 = "25000000" \ No newline at end of file +LABEL_curriout2 = "p1_vcs_current" +WARNLO_curriout2 = "0" +CRITLO_curriout2 = "0" +WARNHI_curriout2 = "20000" +CRITHI_curriout2 = "25000" + +LABEL_invout2 = "p1_vcs_voltage" +WARNLO_invout2 = "0" +CRITLO_invout2 = "0" +WARNHI_invout2 = "1150" +CRITHI_invout2 = "1300" + +LABEL_powerpout2 = "p1_vcs_power" +WARNLO_powerpout2 = "0" +CRITLO_powerpout2 = "0" +WARNHI_powerpout2 = "20000000" +CRITHI_powerpout2 = "25000000" diff --git a/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/witherspoon/obmc/hwmon/ahb/apb/bus@1e78a000/i2c-bus@180/ir35221@71.conf b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/witherspoon/obmc/hwmon/ahb/apb/bus@1e78a000/i2c-bus@180/ir35221@71.conf index d4e9326b..30ec05db 100644 --- a/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/witherspoon/obmc/hwmon/ahb/apb/bus@1e78a000/i2c-bus@180/ir35221@71.conf +++ b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/witherspoon/obmc/hwmon/ahb/apb/bus@1e78a000/i2c-bus@180/ir35221@71.conf @@ -1,26 +1,44 @@ +#5-0071 +#VDN then VDDR + +MODE_in1 = "label" +MODE_in2 = "label" +MODE_in3 = "label" +MODE_in4 = "label" + +MODE_curr1 = "label" +MODE_curr2 = "label" +MODE_curr3 = "label" +MODE_curr4 = "label" + +MODE_power1 = "label" +MODE_power2 = "label" +MODE_power3 = "label" +MODE_power4 = "label" + LABEL_temp1 = "p1_vdn_temp" WARNHI_temp1 = "80000" WARNLO_temp1 = "0" CRITHI_temp1 = "85000" CRITLO_temp1 = "0" -LABEL_curr2 = "p1_vdn_current" -WARNLO_curr2 = "0" -CRITLO_curr2 = "0" -WARNHI_curr2 = "80000" -CRITHI_curr2 = "110000" +LABEL_curriout1 = "p1_vdn_current" +WARNLO_curriout1 = "0" +CRITLO_curriout1 = "0" +WARNHI_curriout1 = "80000" +CRITHI_curriout1 = "110000" -LABEL_in2 = "p1_vdn_voltage" -WARNLO_in2 = "0" -CRITLO_in2 = "0" -WARNHI_in2 = "1100" -CRITHI_in2 = "1300" +LABEL_invout1 = "p1_vdn_voltage" +WARNLO_invout1 = "0" +CRITLO_invout1 = "0" +WARNHI_invout1 = "1100" +CRITHI_invout1 = "1300" -LABEL_power2 = "p1_vdn_power" -WARNLO_power2 = "0" -CRITLO_power2 = "0" -WARNHI_power2 = "88000000" -CRITHI_power2 = "121000000" +LABEL_powerpout1 = "p1_vdn_power" +WARNLO_powerpout1 = "0" +CRITLO_powerpout1 = "0" +WARNHI_powerpout1 = "88000000" +CRITHI_powerpout1 = "121000000" LABEL_temp2 = "p1_vddr_temp" WARNHI_temp2 = "80000" @@ -28,20 +46,20 @@ WARNLO_temp2 = "0" CRITHI_temp2 = "85000" CRITLO_temp2 = "0" -LABEL_curr3 = "p1_vddr_current" -WARNLO_curr3 = "0" -CRITLO_curr3 = "0" -WARNHI_curr3 = "115000" -CRITHI_curr3 = "130000" - -LABEL_in3 = "p1_vddr_voltage" -WARNLO_in3 = "0" -CRITLO_in3 = "0" -WARNHI_in3 = "1280" -CRITHI_in3 = "1350" - -LABEL_power3 = "p1_vddr_power" -WARNLO_power3 = "0" -CRITLO_power3 = "0" -WARNHI_power3 = "139150000" -CRITHI_power3 = "159900000" \ No newline at end of file +LABEL_curriout2 = "p1_vddr_current" +WARNLO_curriout2 = "0" +CRITLO_curriout2 = "0" +WARNHI_curriout2 = "115000" +CRITHI_curriout2 = "130000" + +LABEL_invout2 = "p1_vddr_voltage" +WARNLO_invout2 = "0" +CRITLO_invout2 = "0" +WARNHI_invout2 = "1280" +CRITHI_invout2 = "1350" + +LABEL_powerpout2 = "p1_vddr_power" +WARNLO_powerpout2 = "0" +CRITLO_powerpout2 = "0" +WARNHI_powerpout2 = "139150000" +CRITHI_powerpout2 = "159900000" diff --git a/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/witherspoon/obmc/hwmon/devices/platform/gpio-fsi/fsi0/slave@00--00/00--00--00--06/sbefifo1-dev0/occ-hwmon.1.conf b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/witherspoon/obmc/hwmon/devices/platform/gpio-fsi/fsi-master/fsi0/slave@00--00/00--00--00--06/sbefifo1-dev0/occ-hwmon.1.conf similarity index 100% rename from Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/witherspoon/obmc/hwmon/devices/platform/gpio-fsi/fsi0/slave@00--00/00--00--00--06/sbefifo1-dev0/occ-hwmon.1.conf rename to Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/witherspoon/obmc/hwmon/devices/platform/gpio-fsi/fsi-master/fsi0/slave@00--00/00--00--00--06/sbefifo1-dev0/occ-hwmon.1.conf diff --git a/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/witherspoon/obmc/hwmon/devices/platform/gpio-fsi/fsi0/slave@00--00/00--00--00--0a/fsi1/slave@01--00/01--01--00--06/sbefifo2-dev0/occ-hwmon.2.conf b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/witherspoon/obmc/hwmon/devices/platform/gpio-fsi/fsi-master/fsi0/slave@00--00/00--00--00--0a/fsi-master/fsi1/slave@01--00/01--01--00--06/sbefifo2-dev0/occ-hwmon.2.conf similarity index 100% rename from Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/witherspoon/obmc/hwmon/devices/platform/gpio-fsi/fsi0/slave@00--00/00--00--00--0a/fsi1/slave@01--00/01--01--00--06/sbefifo2-dev0/occ-hwmon.2.conf rename to Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/witherspoon/obmc/hwmon/devices/platform/gpio-fsi/fsi-master/fsi0/slave@00--00/00--00--00--0a/fsi-master/fsi1/slave@01--00/01--01--00--06/sbefifo2-dev0/occ-hwmon.2.conf diff --git a/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon_%.bbappend b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon_%.bbappend index 993ca281..36029dd7 100644 --- a/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon_%.bbappend +++ b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon_%.bbappend @@ -1,18 +1,18 @@ FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:" -SRC_URI += " \ +EXTRA_OECONF_append_mihawk = " --enable-negative-errno-on-fail" + +SRC_URI_append_ibm-ac-server = " \ file://70-hwmon.rules \ file://70-max31785-hwmon.rules \ file://start_max31785_hwmon.sh \ " -CHIPS = " \ - bus@1e78a000/i2c-bus@100/max31785@52_air \ - bus@1e78a000/i2c-bus@100/max31785@52_water \ - bus@1e78a000/i2c-bus@100/power-supply@68 \ - bus@1e78a000/i2c-bus@100/power-supply@69 \ - " -CHIPS_append_witherspoon = " \ +CHIPS_witherspoon = " \ + bus@1e78a000/i2c-bus@100/max31785@52_air \ + bus@1e78a000/i2c-bus@100/max31785@52_water \ + bus@1e78a000/i2c-bus@100/power-supply@68 \ + bus@1e78a000/i2c-bus@100/power-supply@69 \ bus@1e78a000/i2c-bus@100/bmp280@77 \ bus@1e78a000/i2c-bus@100/dps310@76 \ bus@1e78a000/i2c-bus@140/ir35221@70 \ @@ -21,7 +21,11 @@ CHIPS_append_witherspoon = " \ bus@1e78a000/i2c-bus@180/ir35221@71 \ bus@1e78a000/i2c-bus@380/tmp275@4a \ " -CHIPS_append_swift = " \ +CHIPS_swift = " \ + bus@1e78a000/i2c-bus@100/max31785@52_air \ + bus@1e78a000/i2c-bus@100/max31785@52_water \ + bus@1e78a000/i2c-bus@100/power-supply@68 \ + bus@1e78a000/i2c-bus@100/power-supply@69 \ bus@1e78a000/i2c-bus@440/tmp275@4a \ bus@1e78a000/i2c-bus@440/tmp275@48 \ bus@1e78a000/i2c-bus@300/tmp275@48 \ @@ -34,27 +38,71 @@ CHIPS_append_swift = " \ bus@1e78a000/i2c-bus@3c0/ir35221@71 \ bus@1e78a000/i2c-bus@3c0/ir35221@72 \ " +CHIPS_mihawk = " \ + bus@1e78a000/i2c-bus@100/power-supply@58 \ + bus@1e78a000/i2c-bus@100/power-supply@5b \ + bus@1e78a000/i2c-bus@140/ir35221@70 \ + bus@1e78a000/i2c-bus@140/ir35221@72 \ + bus@1e78a000/i2c-bus@180/ir35221@70 \ + bus@1e78a000/i2c-bus@180/ir35221@72 \ + bus@1e78a000/i2c-bus@400/tmp275@48 \ + bus@1e78a000/i2c-bus@400/tmp275@49 \ + pwm-tacho-controller@1e786000 \ + bus@1e78a000/i2c-bus@400/emc1403@4c \ + bus@1e78a000/i2c-bus@440/pca9545@70/i2c@3/tmp275@48 \ + " +CHIPS_witherspoon-tacoma = " \ + bus@1e78a000/i2c-bus@200/max31785@52_air \ + bus@1e78a000/i2c-bus@200/max31785@52_water \ + bus@1e78a000/i2c-bus@200/power-supply@68 \ + bus@1e78a000/i2c-bus@200/power-supply@69 \ + bus@1e78a000/i2c-bus@200/bmp280@77 \ + bus@1e78a000/i2c-bus@200/dps310@76 \ + bus@1e78a000/i2c-bus@280/ir35221@70 \ + bus@1e78a000/i2c-bus@280/ir35221@71 \ + bus@1e78a000/i2c-bus@300/ir35221@70 \ + bus@1e78a000/i2c-bus@300/ir35221@71 \ + bus@1e78a000/i2c-bus@500/tmp275@4a \ + " ITEMSFMT = "ahb/apb/{0}.conf" ITEMS = "${@compose_list(d, 'ITEMSFMT', 'CHIPS')}" +ITEMS_append_mihawk += " iio-hwmon-vdd0.conf" +ITEMS_append_mihawk += " iio-hwmon-vdd1.conf" +ITEMS_append_mihawk += " iio-hwmon-vcs0.conf" +ITEMS_append_mihawk += " iio-hwmon-vcs1.conf" +ITEMS_append_mihawk += " iio-hwmon-vdn0.conf" +ITEMS_append_mihawk += " iio-hwmon-vdn1.conf" +ITEMS_append_mihawk += " iio-hwmon-vio0.conf" +ITEMS_append_mihawk += " iio-hwmon-vio1.conf" +ITEMS_append_mihawk += " iio-hwmon-vddra.conf" +ITEMS_append_mihawk += " iio-hwmon-vddrb.conf" +ITEMS_append_mihawk += " iio-hwmon-vddrc.conf" +ITEMS_append_mihawk += " iio-hwmon-vddrd.conf" +ITEMS_append_mihawk += " iio-hwmon-12v.conf" +ITEMS_append_mihawk += " iio-hwmon-5v.conf" +ITEMS_append_mihawk += " iio-hwmon-3v.conf" +ITEMS_append_mihawk += " iio-hwmon-battery.conf" OCCS = " \ 00--00--00--06/sbefifo1-dev0/occ-hwmon.1 \ - 00--00--00--0a/fsi1/slave@01--00/01--01--00--06/sbefifo2-dev0/occ-hwmon.2 \ + 00--00--00--0a/fsi-master/fsi1/slave@01--00/01--01--00--06/sbefifo2-dev0/occ-hwmon.2 \ " -OCCSFMT = "devices/platform/gpio-fsi/fsi0/slave@00--00/{0}.conf" +OCCSFMT = "devices/platform/gpio-fsi/fsi-master/fsi0/slave@00--00/{0}.conf" OCCITEMS = "${@compose_list(d, 'OCCSFMT', 'OCCS')}" ENVS = "obmc/hwmon/{0}" -SYSTEMD_ENVIRONMENT_FILE_${PN} += "${@compose_list(d, 'ENVS', 'ITEMS')}" -SYSTEMD_ENVIRONMENT_FILE_${PN}_append = " ${@compose_list(d, 'ENVS', 'OCCITEMS')}" +SYSTEMD_ENVIRONMENT_FILE_${PN}_append_ibm-ac-server = " ${@compose_list(d, 'ENVS', 'ITEMS')}" +SYSTEMD_ENVIRONMENT_FILE_${PN}_append_ibm-ac-server = " ${@compose_list(d, 'ENVS', 'OCCITEMS')}" +SYSTEMD_ENVIRONMENT_FILE_${PN}_append_mihawk = " ${@compose_list(d, 'ENVS', 'ITEMS')}" +SYSTEMD_ENVIRONMENT_FILE_${PN}_append_mihawk = " ${@compose_list(d, 'ENVS', 'OCCITEMS')}" -SYSTEMD_ENVIRONMENT_FILE_max31785-msl += "obmc/hwmon-max31785/max31785.conf" -SYSTEMD_LINK_max31785-msl += "../phosphor-max31785-msl@.service:multi-user.target.wants/phosphor-max31785-msl@${MACHINE}.service" +SYSTEMD_ENVIRONMENT_FILE_max31785-msl_append_ibm-ac-server = " obmc/hwmon-max31785/max31785.conf" +SYSTEMD_LINK_max31785-msl_append_ibm-ac-server = " ../phosphor-max31785-msl@.service:multi-user.target.wants/phosphor-max31785-msl@${MACHINE}.service" -SYSTEMD_SERVICE_${PN} += "max31785-hwmon-helper@.service" +SYSTEMD_SERVICE_${PN}_append_ibm-ac-server = " max31785-hwmon-helper@.service" -do_install_append() { +do_install_append_ibm-ac-server() { install -d ${D}/${base_libdir}/udev/rules.d/ install ${WORKDIR}/70-max31785-hwmon.rules ${D}/${base_libdir}/udev/rules.d/ diff --git a/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/settings/phosphor-settings-manager/ClearHostSecurityKeys-default-zero.override.yml b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/settings/phosphor-settings-manager/ClearHostSecurityKeys-default-zero.override.yml new file mode 100644 index 00000000..71ed6711 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/settings/phosphor-settings-manager/ClearHostSecurityKeys-default-zero.override.yml @@ -0,0 +1,6 @@ +--- +/org/open_power/control/host0/ClearHostSecurityKeys: + - Interface: org.open_power.Control.TPM.SecurityKeys + Properties: + ClearHostSecurityKeys: + Default: 0 diff --git a/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/settings/phosphor-settings-manager_%.bbappend b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/settings/phosphor-settings-manager_%.bbappend index 02c0e94b..36e406e4 100644 --- a/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/settings/phosphor-settings-manager_%.bbappend +++ b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/settings/phosphor-settings-manager_%.bbappend @@ -1,2 +1,4 @@ FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:" -SRC_URI_append = " file://TPMEnable-default-true.override.yml" +SRC_URI_append_ibm-ac-server = " file://TPMEnable-default-true.override.yml" +SRC_URI_append_ibm-ac-server += " file://ClearHostSecurityKeys-default-zero.override.yml" +SRC_URI_append_mihawk = " file://TPMEnable-default-true.override.yml" diff --git a/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/skeleton/obmc-libobmc-intf/mihawk/gpio_defs.json b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/skeleton/obmc-libobmc-intf/mihawk/gpio_defs.json new file mode 100644 index 00000000..388ae683 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/skeleton/obmc-libobmc-intf/mihawk/gpio_defs.json @@ -0,0 +1,74 @@ +{ + "gpio_configs": { + + "power_config": { + "power_good_in": "SYS_PWROK_BUFF", + "power_up_outs": [ + {"name": "SOFTWARE_PGOOD", "polarity": true}, + {"name": "BMC_POWER_UP", "polarity": true} + ], + "reset_outs": [ + {"name": "BMC_CP0_RESET_N", "polarity": false} + ] + } + }, + + "gpio_definitions": [ + { + "name": "BMC_POWER_UP", + "pin": "D1", + "direction": "out" + }, + { + "name": "SOFTWARE_PGOOD", + "pin": "R1", + "direction": "out" + }, + { + "name": "SYS_PWROK_BUFF", + "pin": "D2", + "direction": "in" + }, + { + "name": "CHECKSTOP", + "pin": "J2", + "direction": "falling" + }, + { + "name": "BMC_CP0_RESET_N", + "pin": "A1", + "direction": "out" + }, + { + "name": "BMC_VS0_PERST_N", + "pin": "B6", + "direction": "out" + }, + { + "name": "BMC_VS1_PERST_N", + "pin": "B7", + "direction": "out" + }, + { + "name": "BMC_CP0_PERST_ENABLE_R", + "pin": "A3", + "direction": "out" + }, + { + "name": "IDBTN", + "pin": "F1", + "direction": "both" + }, + { + "name": "POWER_BUTTON", + "pin": "I3", + "direction": "both" + }, + { + "name": "RESET_BUTTON", + "pin": "J1", + "direction": "both" + } + ] +} + diff --git a/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/skeleton/obmc-libobmc-intf/rainier/gpio_defs.json b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/skeleton/obmc-libobmc-intf/rainier/gpio_defs.json new file mode 100644 index 00000000..29603950 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/skeleton/obmc-libobmc-intf/rainier/gpio_defs.json @@ -0,0 +1,30 @@ +{ + "gpio_configs": { + + "power_config": { + "power_good_in": "SYS_PWROK_BUFF", + "power_up_outs": [ + {"name": "SOFTWARE_PGOOD", "polarity": true}, + {"name": "BMC_POWER_UP", "polarity": true} + ] + } + }, + + "gpio_definitions": [ + { + "name": "BMC_POWER_UP", + "pin": "R1", + "direction": "out" + }, + { + "name": "SOFTWARE_PGOOD", + "pin": "F1", + "direction": "out" + }, + { + "name": "SYS_PWROK_BUFF", + "pin": "R2", + "direction": "in" + } + ] +} diff --git a/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/skeleton/obmc-libobmc-intf/witherspoon-tacoma/gpio_defs.json b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/skeleton/obmc-libobmc-intf/witherspoon-tacoma/gpio_defs.json new file mode 100644 index 00000000..4ea15224 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/skeleton/obmc-libobmc-intf/witherspoon-tacoma/gpio_defs.json @@ -0,0 +1,58 @@ +{ + "gpio_configs": { + + "power_config": { + "power_good_in": "SYS_PWROK_BUFF", + "power_up_outs": [ + {"name": "SOFTWARE_PGOOD", "polarity": true}, + {"name": "BMC_POWER_UP", "polarity": true} + ], + "reset_outs": [ + {"name": "BMC_CP0_RESET_N", "polarity": false} + ] + } + }, + + "gpio_definitions": [ + { + "name": "BMC_POWER_UP", + "pin": "R1", + "direction": "out" + }, + { + "name": "SOFTWARE_PGOOD", + "pin": "H5", + "direction": "out" + }, + { + "name": "SYS_PWROK_BUFF", + "pin": "R2", + "direction": "in" + }, + { + "name": "CHECKSTOP", + "pin": "E3", + "direction": "falling" + }, + { + "name": "BMC_CP0_RESET_N", + "pin": "Q0", + "direction": "out" + }, + { + "name": "BMC_VS1_PERST_N", + "pin": "R0", + "direction": "out" + }, + { + "name": "BMC_CP0_PERST_ENABLE_R", + "pin": "Q1", + "direction": "out" + }, + { + "name": "POWER_BUTTON", + "pin": "E0", + "direction": "both" + } + ] +} diff --git a/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/vpd/mihawk-openpower-fru-inventory-native.bb b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/vpd/mihawk-openpower-fru-inventory-native.bb new file mode 100644 index 00000000..2edb98d3 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/vpd/mihawk-openpower-fru-inventory-native.bb @@ -0,0 +1,19 @@ +SUMMARY = "Mihawk Inventory config for openpower-vpd-parser" +PR = "r1" +LICENSE = "Apache-2.0" +LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10" + +inherit native +inherit openpower-fru-vpd + +SRC_URI += "file://inventory" + +PROVIDES += "virtual/openpower-fru-inventory" + +S = "${WORKDIR}" + +do_install() { + DEST=${D}${inventory_datadir_native} + install -d ${DEST} + install inventory ${DEST} +} diff --git a/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/vpd/mihawk-openpower-fru-inventory/inventory b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/vpd/mihawk-openpower-fru-inventory/inventory new file mode 100644 index 00000000..5ae35ff9 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/vpd/mihawk-openpower-fru-inventory/inventory @@ -0,0 +1,3 @@ +FRUS=ETHERNET,ETHERNET1 +PATHS=/system/chassis/motherboard/bmc/eth0,/system/chassis/motherboard/bmc/eth1 +EEPROM=/sys/devices/platform/ahb/ahb:apb/ahb:apb:bus@1e78a000/1e78a340.i2c-bus/i2c-8/8-0050/eeprom diff --git a/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/vpd/mihawk-openpower-fru-vpd-layout-native.bb b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/vpd/mihawk-openpower-fru-vpd-layout-native.bb new file mode 100644 index 00000000..c2332d56 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/vpd/mihawk-openpower-fru-vpd-layout-native.bb @@ -0,0 +1,20 @@ +SUMMARY = "Mihawk VPD layout for openpower-fru-vpd" +PR = "r1" +LICENSE = "Apache-2.0" +LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10" + +inherit native +inherit openpower-fru-vpd + +SRC_URI += "file://layout.yaml" + +PROVIDES += "virtual/openpower-fru-vpd-layout" + +S = "${WORKDIR}" + +do_install() { + DEST=${D}${vpdlayout_datadir} + + install -d ${DEST} + install layout.yaml ${DEST} +} diff --git a/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/vpd/mihawk-openpower-fru-vpd-layout/layout.yaml b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/vpd/mihawk-openpower-fru-vpd-layout/layout.yaml new file mode 100644 index 00000000..5bceb2f7 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-ibm/meta-witherspoon/recipes-phosphor/vpd/mihawk-openpower-fru-vpd-layout/layout.yaml @@ -0,0 +1,17 @@ +BMC: + xyz.openbmc_project.Inventory.Decorator.Asset: + OPFR,VP: PartNumber + OPFR,VS: SerialNumber + OPFR,VN: Manufacturer + xyz.openbmc_project.Inventory.Item: + VINI,DR: PrettyName + xyz.openbmc_project.Inventory.Item.Bmc: +ETHERNET: + xyz.openbmc_project.Inventory.Item.NetworkInterface: + VINI,B1: MACAddress + xyz.openbmc_project.Inventory.Item.Ethernet: +ETHERNET1: + xyz.openbmc_project.Inventory.Item.NetworkInterface: + OPFR,B1: MACAddress + xyz.openbmc_project.Inventory.Item.Ethernet: + diff --git a/Contrib-Inspur/openbmc/meta-ibm/meta-z/conf/bblayers.conf.sample b/Contrib-Inspur/openbmc/meta-ibm/meta-z/conf/bblayers.conf.sample deleted file mode 100644 index 4a117c00..00000000 --- a/Contrib-Inspur/openbmc/meta-ibm/meta-z/conf/bblayers.conf.sample +++ /dev/null @@ -1,22 +0,0 @@ -# LAYER_CONF_VERSION is increased each time build/conf/bblayers.conf -# changes incompatibly -LCONF_VERSION = "8" - -BBPATH = "${TOPDIR}" -BBFILES ?= "" - -BBLAYERS ?= " \ - ##OEROOT##/meta \ - ##OEROOT##/meta-openembedded/meta-oe/ \ - ##OEROOT##/meta-openembedded/meta-filesystems/ \ - ##OEROOT##/meta-openembedded/meta-networking/ \ - ##OEROOT##/meta-openembedded/meta-python/ \ - ##OEROOT##/meta-phosphor \ - ##OEROOT##/meta-ibm/meta-fsp2 \ - ##OEROOT##/meta-openpower \ - ##OEROOT##/meta-ibm \ - ##OEROOT##/meta-ibm/meta-z \ -" -BBLAYERS_NON_REMOVABLE ?= " \ - ##OEROOT##/meta \ - " diff --git a/Contrib-Inspur/openbmc/meta-ibm/meta-z/conf/layer.conf b/Contrib-Inspur/openbmc/meta-ibm/meta-z/conf/layer.conf deleted file mode 100644 index 7b542303..00000000 --- a/Contrib-Inspur/openbmc/meta-ibm/meta-z/conf/layer.conf +++ /dev/null @@ -1,5 +0,0 @@ -# We have a conf and classes directory, add to BBPATH -BBPATH .= ":${LAYERDIR}" - -BBFILE_COLLECTIONS += "ibm-z-layer" -BBFILE_PATTERN_ibm-z-layer := "^${LAYERDIR}/" diff --git a/Contrib-Inspur/openbmc/meta-ibm/meta-z/conf/local.conf.sample b/Contrib-Inspur/openbmc/meta-ibm/meta-z/conf/local.conf.sample deleted file mode 100644 index bd6b65b5..00000000 --- a/Contrib-Inspur/openbmc/meta-ibm/meta-z/conf/local.conf.sample +++ /dev/null @@ -1,17 +0,0 @@ -MACHINE ??= "ibm-z" -DISTRO ?= "openbmc-phosphor" -PACKAGE_CLASSES ?= "package_rpm" -SANITY_TESTED_DISTROS_append ?= " *" -EXTRA_IMAGE_FEATURES = "debug-tweaks" -USER_CLASSES ?= "buildstats image-mklibs image-prelink" -PATCHRESOLVE = "noop" -BB_DISKMON_DIRS = "\ - STOPTASKS,${TMPDIR},1G,100K \ - STOPTASKS,${DL_DIR},1G,100K \ - STOPTASKS,${SSTATE_DIR},1G,100K \ - STOPTASKS,/tmp,100M,100K \ - ABORT,${TMPDIR},100M,1K \ - ABORT,${DL_DIR},100M,1K \ - ABORT,${SSTATE_DIR},100M,1K \ - ABORT,/tmp,10M,1K" -CONF_VERSION = "1" diff --git a/Contrib-Inspur/openbmc/meta-ibm/meta-z/conf/machine/ibm-z.conf b/Contrib-Inspur/openbmc/meta-ibm/meta-z/conf/machine/ibm-z.conf deleted file mode 100644 index b9d18245..00000000 --- a/Contrib-Inspur/openbmc/meta-ibm/meta-z/conf/machine/ibm-z.conf +++ /dev/null @@ -1,11 +0,0 @@ -MACHINE = "ibm-z" -KERNEL_DEVICETREE = "fsp2.dtb" -KBUILD_DEFCONFIG = "44x/fsp2_defconfig" - -require conf/machine/include/fsp2.inc -require conf/machine/include/obmc-bsp-common.inc -require conf/machine/include/openpower.inc - -UBOOT_MACHINE_sunray2 = "fsp2_defconfig" -UBOOT_ENTRYPOINT = "0x10000000" -UBOOT_LOADADDRESS = "0x10000000" diff --git a/Contrib-Inspur/openbmc/meta-ibm/recipes-phosphor/dbus/ibm-dbus-interfaces-mapper-config-native.bb b/Contrib-Inspur/openbmc/meta-ibm/recipes-phosphor/dbus/ibm-dbus-interfaces-mapper-config-native.bb index 381bef41..b8489d67 100644 --- a/Contrib-Inspur/openbmc/meta-ibm/recipes-phosphor/dbus/ibm-dbus-interfaces-mapper-config-native.bb +++ b/Contrib-Inspur/openbmc/meta-ibm/recipes-phosphor/dbus/ibm-dbus-interfaces-mapper-config-native.bb @@ -2,7 +2,7 @@ SUMMARY="Add /com/ibm namespace to phosphor-mapper" DESCRIPTION="Add the /com/ibm path namespace and \ com.ibm interface prefix to the mapper watch list." LICENSE = "Apache-2.0" -LIC_FILES_CHKSUM = "file://${IBMBASE}/COPYING.apache-2.0;md5=34400b68072d710fecd0a2940a0d1658" +LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10" inherit phosphor-mapper inherit native diff --git a/Contrib-Inspur/openbmc/meta-ibm/recipes-phosphor/interfaces/bmcweb_%.bbappend b/Contrib-Inspur/openbmc/meta-ibm/recipes-phosphor/interfaces/bmcweb_%.bbappend new file mode 100644 index 00000000..68b7fa2c --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-ibm/recipes-phosphor/interfaces/bmcweb_%.bbappend @@ -0,0 +1,4 @@ +inherit obmc-phosphor-discovery-service + +REGISTERED_SERVICES_${PN} += "obmc_redfish:tcp:443:" +REGISTERED_SERVICES_${PN} += "obmc_rest:tcp:443:" diff --git a/Contrib-Inspur/openbmc/meta-ibm/recipes-phosphor/logging/ibm-logging_git.bb b/Contrib-Inspur/openbmc/meta-ibm/recipes-phosphor/logging/ibm-logging_git.bb index e087408b..f98ee1c7 100644 --- a/Contrib-Inspur/openbmc/meta-ibm/recipes-phosphor/logging/ibm-logging_git.bb +++ b/Contrib-Inspur/openbmc/meta-ibm/recipes-phosphor/logging/ibm-logging_git.bb @@ -6,7 +6,7 @@ HOMEPAGE = "https://github.com/openbmc/ibm-logging" LICENSE = "Apache-2.0" LIC_FILES_CHKSUM = "file://${S}/LICENSE;md5=86d3f3a95c324c9479bd8986968f4327" SRC_URI += "git://github.com/openbmc/ibm-logging" -SRCREV = "3dd7c2e6deec6b4fe3e46b240eae53848dcc520a" +SRCREV = "4c0e8945f072f9139d0efb04e8f955663b972a84" inherit autotools inherit pkgconfig diff --git a/Contrib-Inspur/openbmc/meta-ibm/recipes-phosphor/settings/phosphor-settings-manager/ibm_settings.override.yml b/Contrib-Inspur/openbmc/meta-ibm/recipes-phosphor/settings/phosphor-settings-manager/ibm_settings.override.yml new file mode 100644 index 00000000..33a1ec78 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-ibm/recipes-phosphor/settings/phosphor-settings-manager/ibm_settings.override.yml @@ -0,0 +1,5 @@ +/xyz/openbmc_project/logging/send_event_logs_to_host: + - Interface: xyz.openbmc_project.Object.Enable + Properties: + Enabled: + Default: 'true' diff --git a/Contrib-Inspur/openbmc/meta-ibm/recipes-phosphor/settings/phosphor-settings-manager_%.bbappend b/Contrib-Inspur/openbmc/meta-ibm/recipes-phosphor/settings/phosphor-settings-manager_%.bbappend new file mode 100644 index 00000000..9dd35757 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-ibm/recipes-phosphor/settings/phosphor-settings-manager_%.bbappend @@ -0,0 +1,2 @@ +FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:" +SRC_URI_append = " file://ibm_settings.override.yml" diff --git a/Contrib-Inspur/openbmc/meta-ingrasys/conf/layer.conf b/Contrib-Inspur/openbmc/meta-ingrasys/conf/layer.conf index 8d0b76be..2686d406 100644 --- a/Contrib-Inspur/openbmc/meta-ingrasys/conf/layer.conf +++ b/Contrib-Inspur/openbmc/meta-ingrasys/conf/layer.conf @@ -3,7 +3,4 @@ BBPATH .= ":${LAYERDIR}" BBFILE_COLLECTIONS += "ingrasys" BBFILE_PATTERN_ingrasys := "^${LAYERDIR}/" -LAYERSERIES_COMPAT_ingrasys = "thud warrior" - -# Provide a variable that points the base of the ingrasys layer. -INGRASYSBASE = '${@os.path.normpath("${LAYERDIR}/")}' +LAYERSERIES_COMPAT_ingrasys = "warrior zeus" diff --git a/Contrib-Inspur/openbmc/meta-ingrasys/meta-zaius/conf/distro/openbmc-zaius.conf b/Contrib-Inspur/openbmc/meta-ingrasys/meta-zaius/conf/distro/openbmc-zaius.conf new file mode 100644 index 00000000..854e0fb7 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-ingrasys/meta-zaius/conf/distro/openbmc-zaius.conf @@ -0,0 +1,2 @@ +require conf/distro/openbmc-openpower.conf +require conf/distro/include/phosphor-aspeednic-use-mac2.inc diff --git a/Contrib-Inspur/openbmc/meta-ingrasys/meta-zaius/conf/layer.conf b/Contrib-Inspur/openbmc/meta-ingrasys/meta-zaius/conf/layer.conf index 5131c349..d78ede1a 100644 --- a/Contrib-Inspur/openbmc/meta-ingrasys/meta-zaius/conf/layer.conf +++ b/Contrib-Inspur/openbmc/meta-ingrasys/meta-zaius/conf/layer.conf @@ -7,4 +7,4 @@ BBFILES += "${LAYERDIR}/recipes-*/*/*.bb \ BBFILE_COLLECTIONS += "zaius" BBFILE_PATTERN_zaius := "^${LAYERDIR}/" -LAYERSERIES_COMPAT_zaius = "thud warrior" +LAYERSERIES_COMPAT_zaius = "warrior zeus" diff --git a/Contrib-Inspur/openbmc/meta-ingrasys/meta-zaius/conf/local.conf.sample b/Contrib-Inspur/openbmc/meta-ingrasys/meta-zaius/conf/local.conf.sample index c7ccc92b..d09389ea 100644 --- a/Contrib-Inspur/openbmc/meta-ingrasys/meta-zaius/conf/local.conf.sample +++ b/Contrib-Inspur/openbmc/meta-ingrasys/meta-zaius/conf/local.conf.sample @@ -1,5 +1,5 @@ MACHINE ??= "zaius" -DISTRO ?= "openbmc-openpower" +DISTRO ?= "openbmc-zaius" PACKAGE_CLASSES ?= "package_rpm" SANITY_TESTED_DISTROS_append ?= " *" EXTRA_IMAGE_FEATURES = "debug-tweaks" diff --git a/Contrib-Inspur/openbmc/meta-ingrasys/meta-zaius/recipes-bsp/u-boot/u-boot-aspeed/0002-board-aspeed-aspeednic-Use-MAC2-for-networking.patch b/Contrib-Inspur/openbmc/meta-ingrasys/meta-zaius/recipes-bsp/u-boot/u-boot-aspeed/0002-board-aspeed-aspeednic-Use-MAC2-for-networking.patch deleted file mode 100644 index 2de2d823..00000000 --- a/Contrib-Inspur/openbmc/meta-ingrasys/meta-zaius/recipes-bsp/u-boot/u-boot-aspeed/0002-board-aspeed-aspeednic-Use-MAC2-for-networking.patch +++ /dev/null @@ -1,43 +0,0 @@ -From cbb09e400a5283e5b543e2b01b8c0038890a5260 Mon Sep 17 00:00:00 2001 -From: Xo Wang -Date: Thu, 20 Oct 2016 17:42:13 -0700 -Subject: [PATCH 2/2] board/aspeed, aspeednic: Use MAC2 for networking - -Enable and select MAC2 for aspeednic. - -Signed-off-by: Xo Wang ---- - drivers/net/aspeednic.c | 4 ++-- - include/configs/ast-g5-ncsi.h | 1 + - 2 files changed, 3 insertions(+), 2 deletions(-) - -diff --git a/drivers/net/aspeednic.c b/drivers/net/aspeednic.c -index 8b85893..cff8370 100644 ---- a/drivers/net/aspeednic.c -+++ b/drivers/net/aspeednic.c -@@ -18,8 +18,8 @@ - /* From the board config file */ - #define CONFIG_MAC1_PHY_SETTING 2 - #define CONFIG_MAC2_PHY_SETTING 0 --#define CONFIG_ASPEED_MAC_NUMBER 1 --#define CONFIG_ASPEED_MAC_CONFIG 1 // config MAC1 -+#define CONFIG_ASPEED_MAC_NUMBER 2 -+#define CONFIG_ASPEED_MAC_CONFIG 2 // config MAC2 - #define _PHY_SETTING_CONCAT(mac) CONFIG_MAC##mac##_PHY_SETTING - #define _GET_MAC_PHY_SETTING(mac) _PHY_SETTING_CONCAT(mac) - #define CONFIG_ASPEED_MAC_PHY_SETTING \ -diff --git a/include/configs/ast-g5-ncsi.h b/include/configs/ast-g5-ncsi.h -index f73a8f1..1408618 100644 ---- a/include/configs/ast-g5-ncsi.h -+++ b/include/configs/ast-g5-ncsi.h -@@ -22,6 +22,7 @@ - /* Ethernet */ - #define CONFIG_LIB_RAND - #define CONFIG_ASPEEDNIC -+#define CONFIG_MAC2_ENABLE - - /* platform.S settings */ - #define CONFIG_DRAM_ECC_SIZE 0x10000000 --- -2.8.0.rc3.226.g39d4020 - diff --git a/Contrib-Inspur/openbmc/meta-ingrasys/meta-zaius/recipes-bsp/u-boot/u-boot-aspeed_%.bbappend b/Contrib-Inspur/openbmc/meta-ingrasys/meta-zaius/recipes-bsp/u-boot/u-boot-aspeed_%.bbappend index 1686be06..ddd2ff8d 100644 --- a/Contrib-Inspur/openbmc/meta-ingrasys/meta-zaius/recipes-bsp/u-boot/u-boot-aspeed_%.bbappend +++ b/Contrib-Inspur/openbmc/meta-ingrasys/meta-zaius/recipes-bsp/u-boot/u-boot-aspeed_%.bbappend @@ -1,3 +1,2 @@ FILESEXTRAPATHS_prepend_zaius := "${THISDIR}/${PN}:" -SRC_URI_append_zaius = " file://0001-board-aspeed-Add-reset_phy-for-Zaius.patch \ - file://0002-board-aspeed-aspeednic-Use-MAC2-for-networking.patch" +SRC_URI_append_zaius = " file://0001-board-aspeed-Add-reset_phy-for-Zaius.patch" diff --git a/Contrib-Inspur/openbmc/meta-ingrasys/meta-zaius/recipes-phosphor/chassis/avsbus-control.bb b/Contrib-Inspur/openbmc/meta-ingrasys/meta-zaius/recipes-phosphor/chassis/avsbus-control.bb index 164a9e75..dd6d6eec 100644 --- a/Contrib-Inspur/openbmc/meta-ingrasys/meta-zaius/recipes-phosphor/chassis/avsbus-control.bb +++ b/Contrib-Inspur/openbmc/meta-ingrasys/meta-zaius/recipes-phosphor/chassis/avsbus-control.bb @@ -2,7 +2,7 @@ SUMMARY = "Zaius AVSBus control" DESCRIPTION = "Voltage regulator module (VRM) AVSBus control for Zaius" PR = "r0" LICENSE = "Apache-2.0" -LIC_FILES_CHKSUM = "file://${INGRASYSBASE}/COPYING.apache-2.0;md5=34400b68072d710fecd0a2940a0d1658" +LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10" inherit obmc-phosphor-systemd diff --git a/Contrib-Inspur/openbmc/meta-ingrasys/meta-zaius/recipes-phosphor/chassis/vcs-control.bb b/Contrib-Inspur/openbmc/meta-ingrasys/meta-zaius/recipes-phosphor/chassis/vcs-control.bb index f33fe0dc..597dff4b 100644 --- a/Contrib-Inspur/openbmc/meta-ingrasys/meta-zaius/recipes-phosphor/chassis/vcs-control.bb +++ b/Contrib-Inspur/openbmc/meta-ingrasys/meta-zaius/recipes-phosphor/chassis/vcs-control.bb @@ -2,7 +2,7 @@ SUMMARY = "Zaius VCS rail control" DESCRIPTION = "VCS voltage rail control implementation for Zaius" PR = "r0" LICENSE = "Apache-2.0" -LIC_FILES_CHKSUM = "file://${INGRASYSBASE}/COPYING.apache-2.0;md5=34400b68072d710fecd0a2940a0d1658" +LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10" inherit obmc-phosphor-systemd diff --git a/Contrib-Inspur/openbmc/meta-ingrasys/meta-zaius/recipes-phosphor/configuration/zaius-yaml-config.bb b/Contrib-Inspur/openbmc/meta-ingrasys/meta-zaius/recipes-phosphor/configuration/zaius-yaml-config.bb index 98dbc15b..129938f3 100644 --- a/Contrib-Inspur/openbmc/meta-ingrasys/meta-zaius/recipes-phosphor/configuration/zaius-yaml-config.bb +++ b/Contrib-Inspur/openbmc/meta-ingrasys/meta-zaius/recipes-phosphor/configuration/zaius-yaml-config.bb @@ -1,7 +1,7 @@ SUMMARY = "YAML configuration for Zaius" PR = "r1" LICENSE = "Apache-2.0" -LIC_FILES_CHKSUM = "file://${INGRASYSBASE}/COPYING.apache-2.0;md5=34400b68072d710fecd0a2940a0d1658" +LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10" inherit allarch diff --git a/Contrib-Inspur/openbmc/meta-ingrasys/meta-zaius/recipes-phosphor/sensors/phosphor-hwmon/obmc/hwmon/devices/platform/gpio-fsi/fsi0/slave@00--00/00--00--00--06/sbefifo1-dev0/occ-hwmon.1.conf b/Contrib-Inspur/openbmc/meta-ingrasys/meta-zaius/recipes-phosphor/sensors/phosphor-hwmon/obmc/hwmon/devices/platform/gpio-fsi/fsi0/slave@00--00/00--00--00--06/sbefifo1-dev0/occ-hwmon.1.conf index 65041513..a5ccf550 100644 --- a/Contrib-Inspur/openbmc/meta-ingrasys/meta-zaius/recipes-phosphor/sensors/phosphor-hwmon/obmc/hwmon/devices/platform/gpio-fsi/fsi0/slave@00--00/00--00--00--06/sbefifo1-dev0/occ-hwmon.1.conf +++ b/Contrib-Inspur/openbmc/meta-ingrasys/meta-zaius/recipes-phosphor/sensors/phosphor-hwmon/obmc/hwmon/devices/platform/gpio-fsi/fsi0/slave@00--00/00--00--00--06/sbefifo1-dev0/occ-hwmon.1.conf @@ -1,3 +1,4 @@ +REMOVERCS = "11, 74, 90, 110" MODE_temp1 = "label" MODE_temp2 = "label" MODE_temp3 = "label" diff --git a/Contrib-Inspur/openbmc/meta-ingrasys/meta-zaius/recipes-phosphor/sensors/phosphor-hwmon/obmc/hwmon/devices/platform/gpio-fsi/fsi0/slave@00--00/00--00--00--0a/fsi1/slave@01--00/01--01--00--06/sbefifo2-dev0/occ-hwmon.2.conf b/Contrib-Inspur/openbmc/meta-ingrasys/meta-zaius/recipes-phosphor/sensors/phosphor-hwmon/obmc/hwmon/devices/platform/gpio-fsi/fsi0/slave@00--00/00--00--00--0a/fsi1/slave@01--00/01--01--00--06/sbefifo2-dev0/occ-hwmon.2.conf index ba615812..55f3f1dc 100644 --- a/Contrib-Inspur/openbmc/meta-ingrasys/meta-zaius/recipes-phosphor/sensors/phosphor-hwmon/obmc/hwmon/devices/platform/gpio-fsi/fsi0/slave@00--00/00--00--00--0a/fsi1/slave@01--00/01--01--00--06/sbefifo2-dev0/occ-hwmon.2.conf +++ b/Contrib-Inspur/openbmc/meta-ingrasys/meta-zaius/recipes-phosphor/sensors/phosphor-hwmon/obmc/hwmon/devices/platform/gpio-fsi/fsi0/slave@00--00/00--00--00--0a/fsi1/slave@01--00/01--01--00--06/sbefifo2-dev0/occ-hwmon.2.conf @@ -1,3 +1,4 @@ +REMOVERCS = "11, 74, 90, 110" MODE_temp1 = "label" MODE_temp2 = "label" MODE_temp3 = "label" diff --git a/Contrib-Inspur/openbmc/meta-inspur/conf/layer.conf b/Contrib-Inspur/openbmc/meta-inspur/conf/layer.conf index 3ba10679..ba1464ab 100644 --- a/Contrib-Inspur/openbmc/meta-inspur/conf/layer.conf +++ b/Contrib-Inspur/openbmc/meta-inspur/conf/layer.conf @@ -7,6 +7,4 @@ BBFILES += "${LAYERDIR}/recipes-*/*/*.bb \ BBFILE_COLLECTIONS += "inspur-layer" BBFILE_PATTERN_inspur-layer = "^${LAYERDIR}/" -LAYERSERIES_COMPAT_inspur-layer = "thud warrior" - -INSPURBASE = '${@os.path.normpath("${LAYERDIR}/")}' +LAYERSERIES_COMPAT_inspur-layer = "warrior zeus" diff --git a/Contrib-Inspur/openbmc/meta-inspur/meta-fp5280g2/conf/bblayers.conf.sample b/Contrib-Inspur/openbmc/meta-inspur/meta-fp5280g2/conf/bblayers.conf.sample index 85de9726..d8aa6beb 100644 --- a/Contrib-Inspur/openbmc/meta-inspur/meta-fp5280g2/conf/bblayers.conf.sample +++ b/Contrib-Inspur/openbmc/meta-inspur/meta-fp5280g2/conf/bblayers.conf.sample @@ -11,6 +11,7 @@ BBLAYERS ?= " \ ##OEROOT##/meta-openembedded/meta-networking \ ##OEROOT##/meta-openembedded/meta-perl \ ##OEROOT##/meta-openembedded/meta-python \ + ##OEROOT##/meta-openembedded/meta-webserver \ ##OEROOT##/meta-phosphor \ ##OEROOT##/meta-aspeed \ ##OEROOT##/meta-openpower \ @@ -23,6 +24,7 @@ BBLAYERS_NON_REMOVABLE ?= " \ ##OEROOT##/meta-openembedded/meta-networking \ ##OEROOT##/meta-openembedded/meta-perl \ ##OEROOT##/meta-openembedded/meta-python \ + ##OEROOT##/meta-openembedded/meta-webserver \ ##OEROOT##/meta-phosphor \ ##OEROOT##/meta-aspeed \ ##OEROOT##/meta-openpower \ diff --git a/Contrib-Inspur/openbmc/meta-inspur/meta-fp5280g2/conf/layer.conf b/Contrib-Inspur/openbmc/meta-inspur/meta-fp5280g2/conf/layer.conf index 56da4ba9..b855dbd2 100644 --- a/Contrib-Inspur/openbmc/meta-inspur/meta-fp5280g2/conf/layer.conf +++ b/Contrib-Inspur/openbmc/meta-inspur/meta-fp5280g2/conf/layer.conf @@ -7,4 +7,4 @@ BBFILES += "${LAYERDIR}/recipes-*/*/*.bb \ BBFILE_COLLECTIONS += "fp5280g2-layer" BBFILE_PATTERN_fp5280g2-layer := "^${LAYERDIR}/" -LAYERSERIES_COMPAT_fp5280g2-layer = "thud warrior" +LAYERSERIES_COMPAT_fp5280g2-layer = "warrior zeus" diff --git a/Contrib-Inspur/openbmc/meta-inspur/meta-fp5280g2/conf/machine/fp5280g2.conf b/Contrib-Inspur/openbmc/meta-inspur/meta-fp5280g2/conf/machine/fp5280g2.conf index 2e754bc1..455e22a0 100644 --- a/Contrib-Inspur/openbmc/meta-inspur/meta-fp5280g2/conf/machine/fp5280g2.conf +++ b/Contrib-Inspur/openbmc/meta-inspur/meta-fp5280g2/conf/machine/fp5280g2.conf @@ -3,7 +3,12 @@ KERNEL_DEVICETREE = "${KMACHINE}-bmc-inspur-${MACHINE}.dtb" UBOOT_MACHINE = "ast_g5_ncsi_config" +OBMC_POWER_SUPPLY_INSTANCES = "0 1" + PREFERRED_PROVIDER_virtual/p9-vcs-workaround = '' +PREFERRED_PROVIDER_virtual/openpower-fru-vpd-layout = "fp5280g2-openpower-fru-vpd-layout-native" +PREFERRED_PROVIDER_virtual/openpower-fru-inventory = "fp5280g2-openpower-fru-inventory-native" +PREFERRED_PROVIDER_virtual/phosphor-led-manager-config-native = "fp5280g2-led-manager-config-native" require conf/machine/include/ast2500.inc require conf/machine/include/obmc-bsp-common.inc diff --git a/Contrib-Inspur/openbmc/meta-inspur/meta-fp5280g2/recipes-phosphor/bmcweb/bmcweb_%.bbappend b/Contrib-Inspur/openbmc/meta-inspur/meta-fp5280g2/recipes-phosphor/bmcweb/bmcweb_%.bbappend new file mode 100644 index 00000000..934bb28d --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-inspur/meta-fp5280g2/recipes-phosphor/bmcweb/bmcweb_%.bbappend @@ -0,0 +1,3 @@ +EXTRA_OECMAKE_append = " \ + -DBMCWEB_INSECURE_ENABLE_REDFISH_FW_TFTP_UPDATE=ON \ + " diff --git a/Contrib-Inspur/openbmc/meta-inspur/meta-fp5280g2/recipes-phosphor/configuration/fp5280g2-yaml-config.bb b/Contrib-Inspur/openbmc/meta-inspur/meta-fp5280g2/recipes-phosphor/configuration/fp5280g2-yaml-config.bb index 147f3098..c10330b9 100644 --- a/Contrib-Inspur/openbmc/meta-inspur/meta-fp5280g2/recipes-phosphor/configuration/fp5280g2-yaml-config.bb +++ b/Contrib-Inspur/openbmc/meta-inspur/meta-fp5280g2/recipes-phosphor/configuration/fp5280g2-yaml-config.bb @@ -1,7 +1,7 @@ SUMMARY = "YAML configuration for FP5280G2" PR = "r1" LICENSE = "Apache-2.0" -LIC_FILES_CHKSUM = "file://${INSPURBASE}/COPYING.apache-2.0;md5=34400b68072d710fecd0a2940a0d1658" +LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10" inherit allarch diff --git a/Contrib-Inspur/openbmc/meta-inspur/meta-fp5280g2/recipes-phosphor/configuration/fp5280g2-yaml-config/fp5280g2-ipmi-fru-properties.yaml b/Contrib-Inspur/openbmc/meta-inspur/meta-fp5280g2/recipes-phosphor/configuration/fp5280g2-yaml-config/fp5280g2-ipmi-fru-properties.yaml index a4eab8a6..c4445046 100644 --- a/Contrib-Inspur/openbmc/meta-inspur/meta-fp5280g2/recipes-phosphor/configuration/fp5280g2-yaml-config/fp5280g2-ipmi-fru-properties.yaml +++ b/Contrib-Inspur/openbmc/meta-inspur/meta-fp5280g2/recipes-phosphor/configuration/fp5280g2-yaml-config/fp5280g2-ipmi-fru-properties.yaml @@ -17,124 +17,124 @@ Cached: 'true' xyz.openbmc_project.Inventory.Decorator.Replaceable: FieldReplaceable: 'true' - xyz.openbmc_project.Inventory.Item: + xyz.openbmc_project.Inventory.Item.Cpu: Present: 'true' /system/chassis/motherboard/cpu1: xyz.openbmc_project.Inventory.Decorator.Cacheable: Cached: 'true' xyz.openbmc_project.Inventory.Decorator.Replaceable: FieldReplaceable: 'true' - xyz.openbmc_project.Inventory.Item: + xyz.openbmc_project.Inventory.Item.Cpu: Present: 'true' /system/chassis/motherboard/dimm0: xyz.openbmc_project.Inventory.Decorator.Cacheable: Cached: 'true' xyz.openbmc_project.Inventory.Decorator.Replaceable: FieldReplaceable: 'true' - xyz.openbmc_project.Inventory.Item: + xyz.openbmc_project.Inventory.Item.Dimm: Present: 'true' /system/chassis/motherboard/dimm1: xyz.openbmc_project.Inventory.Decorator.Cacheable: Cached: 'true' xyz.openbmc_project.Inventory.Decorator.Replaceable: FieldReplaceable: 'true' - xyz.openbmc_project.Inventory.Item: + xyz.openbmc_project.Inventory.Item.Dimm: Present: 'true' /system/chassis/motherboard/dimm10: xyz.openbmc_project.Inventory.Decorator.Cacheable: Cached: 'true' xyz.openbmc_project.Inventory.Decorator.Replaceable: FieldReplaceable: 'true' - xyz.openbmc_project.Inventory.Item: + xyz.openbmc_project.Inventory.Item.Dimm: Present: 'true' /system/chassis/motherboard/dimm11: xyz.openbmc_project.Inventory.Decorator.Cacheable: Cached: 'true' xyz.openbmc_project.Inventory.Decorator.Replaceable: FieldReplaceable: 'true' - xyz.openbmc_project.Inventory.Item: + xyz.openbmc_project.Inventory.Item.Dimm: Present: 'true' /system/chassis/motherboard/dimm12: xyz.openbmc_project.Inventory.Decorator.Cacheable: Cached: 'true' xyz.openbmc_project.Inventory.Decorator.Replaceable: FieldReplaceable: 'true' - xyz.openbmc_project.Inventory.Item: + xyz.openbmc_project.Inventory.Item.Dimm: Present: 'true' /system/chassis/motherboard/dimm13: xyz.openbmc_project.Inventory.Decorator.Cacheable: Cached: 'true' xyz.openbmc_project.Inventory.Decorator.Replaceable: FieldReplaceable: 'true' - xyz.openbmc_project.Inventory.Item: + xyz.openbmc_project.Inventory.Item.Dimm: Present: 'true' /system/chassis/motherboard/dimm14: xyz.openbmc_project.Inventory.Decorator.Cacheable: Cached: 'true' xyz.openbmc_project.Inventory.Decorator.Replaceable: FieldReplaceable: 'true' - xyz.openbmc_project.Inventory.Item: + xyz.openbmc_project.Inventory.Item.Dimm: Present: 'true' /system/chassis/motherboard/dimm15: xyz.openbmc_project.Inventory.Decorator.Cacheable: Cached: 'true' xyz.openbmc_project.Inventory.Decorator.Replaceable: FieldReplaceable: 'true' - xyz.openbmc_project.Inventory.Item: + xyz.openbmc_project.Inventory.Item.Dimm: Present: 'true' /system/chassis/motherboard/dimm2: xyz.openbmc_project.Inventory.Decorator.Cacheable: Cached: 'true' xyz.openbmc_project.Inventory.Decorator.Replaceable: FieldReplaceable: 'true' - xyz.openbmc_project.Inventory.Item: + xyz.openbmc_project.Inventory.Item.Dimm: Present: 'true' /system/chassis/motherboard/dimm3: xyz.openbmc_project.Inventory.Decorator.Cacheable: Cached: 'true' xyz.openbmc_project.Inventory.Decorator.Replaceable: FieldReplaceable: 'true' - xyz.openbmc_project.Inventory.Item: + xyz.openbmc_project.Inventory.Item.Dimm: Present: 'true' /system/chassis/motherboard/dimm4: xyz.openbmc_project.Inventory.Decorator.Cacheable: Cached: 'true' xyz.openbmc_project.Inventory.Decorator.Replaceable: FieldReplaceable: 'true' - xyz.openbmc_project.Inventory.Item: + xyz.openbmc_project.Inventory.Item.Dimm: Present: 'true' /system/chassis/motherboard/dimm5: xyz.openbmc_project.Inventory.Decorator.Cacheable: Cached: 'true' xyz.openbmc_project.Inventory.Decorator.Replaceable: FieldReplaceable: 'true' - xyz.openbmc_project.Inventory.Item: + xyz.openbmc_project.Inventory.Item.Dimm: Present: 'true' /system/chassis/motherboard/dimm6: xyz.openbmc_project.Inventory.Decorator.Cacheable: Cached: 'true' xyz.openbmc_project.Inventory.Decorator.Replaceable: FieldReplaceable: 'true' - xyz.openbmc_project.Inventory.Item: + xyz.openbmc_project.Inventory.Item.Dimm: Present: 'true' /system/chassis/motherboard/dimm7: xyz.openbmc_project.Inventory.Decorator.Cacheable: Cached: 'true' xyz.openbmc_project.Inventory.Decorator.Replaceable: FieldReplaceable: 'true' - xyz.openbmc_project.Inventory.Item: + xyz.openbmc_project.Inventory.Item.Dimm: Present: 'true' /system/chassis/motherboard/dimm8: xyz.openbmc_project.Inventory.Decorator.Cacheable: Cached: 'true' xyz.openbmc_project.Inventory.Decorator.Replaceable: FieldReplaceable: 'true' - xyz.openbmc_project.Inventory.Item: + xyz.openbmc_project.Inventory.Item.Dimm: Present: 'true' /system/chassis/motherboard/dimm9: xyz.openbmc_project.Inventory.Decorator.Cacheable: Cached: 'true' xyz.openbmc_project.Inventory.Decorator.Replaceable: FieldReplaceable: 'true' - xyz.openbmc_project.Inventory.Item: + xyz.openbmc_project.Inventory.Item.Dimm: Present: 'true' diff --git a/Contrib-Inspur/openbmc/meta-inspur/meta-fp5280g2/recipes-phosphor/configuration/fp5280g2-yaml-config/fp5280g2-ipmi-fru.yaml b/Contrib-Inspur/openbmc/meta-inspur/meta-fp5280g2/recipes-phosphor/configuration/fp5280g2-yaml-config/fp5280g2-ipmi-fru.yaml index 901914c1..19859fb2 100644 --- a/Contrib-Inspur/openbmc/meta-inspur/meta-fp5280g2/recipes-phosphor/configuration/fp5280g2-yaml-config/fp5280g2-ipmi-fru.yaml +++ b/Contrib-Inspur/openbmc/meta-inspur/meta-fp5280g2/recipes-phosphor/configuration/fp5280g2-yaml-config/fp5280g2-ipmi-fru.yaml @@ -55,7 +55,7 @@ Value: false 3: /system: - entityID: 7 + entityID: 6 entityInstance: 1 interfaces: xyz.openbmc_project.Inventory.Decorator.Asset: @@ -65,7 +65,7 @@ SerialNumber: IPMIFruProperty: Serial Number IPMIFruSection: Chassis - /system/chassis/motherboard: + /system/chassis/motherboard/bmc: entityID: 7 entityInstance: 1 interfaces: @@ -534,3 +534,13 @@ PrettyName: IPMIFruProperty: Name IPMIFruSection: Product +20: + /system/chassis/motherboard/bmc/ethernet: + entityID: 7 + entityInstance: 2 + interfaces: + xyz.openbmc_project.Inventory.Item.NetworkInterface: + MACAddress: + IPMIFruProperty: MACAddress + IPMIFruSection: Product + xyz.openbmc_project.Inventory.Item.Ethernet: diff --git a/Contrib-Inspur/openbmc/meta-inspur/meta-fp5280g2/recipes-phosphor/configuration/fp5280g2-yaml-config/fp5280g2-ipmi-sensors.yaml b/Contrib-Inspur/openbmc/meta-inspur/meta-fp5280g2/recipes-phosphor/configuration/fp5280g2-yaml-config/fp5280g2-ipmi-sensors.yaml index bd1059f9..420c5ecb 100644 --- a/Contrib-Inspur/openbmc/meta-inspur/meta-fp5280g2/recipes-phosphor/configuration/fp5280g2-yaml-config/fp5280g2-ipmi-sensors.yaml +++ b/Contrib-Inspur/openbmc/meta-inspur/meta-fp5280g2/recipes-phosphor/configuration/fp5280g2-yaml-config/fp5280g2-ipmi-sensors.yaml @@ -3918,6 +3918,174 @@ sensorType: 2 serviceInterface: org.freedesktop.DBus.Properties unit: xyz.openbmc_project.Sensor.Value.Unit.Volts +178: + bExp: 0 + entityID: 10 + entityInstance: 13 + interfaces: + xyz.openbmc_project.Sensor.Value: + Value: + Offsets: + 0xFF: + type: int64_t + mutability: Mutability::Write|Mutability::Read + multiplierM: 1 + path: /xyz/openbmc_project/sensors/power/psu0_pin + rExp: 0 + readingType: readingData + scale: -6 + sensorNamePattern: nameLeaf + sensorReadingType: 1 + sensorType: 8 + serviceInterface: org.freedesktop.DBus.Properties + unit: xyz.openbmc_project.Sensor.Value.Unit.Watts +179: + bExp: 0 + entityID: 10 + entityInstance: 14 + interfaces: + xyz.openbmc_project.Sensor.Value: + Value: + Offsets: + 0xFF: + type: int64_t + mutability: Mutability::Write|Mutability::Read + multiplierM: 1 + path: /xyz/openbmc_project/sensors/power/psu1_pin + rExp: 0 + readingType: readingData + scale: -6 + sensorNamePattern: nameLeaf + sensorReadingType: 1 + sensorType: 8 + serviceInterface: org.freedesktop.DBus.Properties + unit: xyz.openbmc_project.Sensor.Value.Unit.Watts +180: + bExp: 0 + entityID: 10 + entityInstance: 15 + interfaces: + xyz.openbmc_project.Sensor.Value: + Value: + Offsets: + 0xFF: + type: int64_t + mutability: Mutability::Write|Mutability::Read + multiplierM: 1 + path: /xyz/openbmc_project/sensors/power/psu0_pout + rExp: 0 + readingType: readingData + scale: -6 + sensorNamePattern: nameLeaf + sensorReadingType: 1 + sensorType: 8 + serviceInterface: org.freedesktop.DBus.Properties + unit: xyz.openbmc_project.Sensor.Value.Unit.Watts +181: + bExp: 0 + entityID: 10 + entityInstance: 16 + interfaces: + xyz.openbmc_project.Sensor.Value: + Value: + Offsets: + 0xFF: + type: int64_t + mutability: Mutability::Write|Mutability::Read + multiplierM: 1 + path: /xyz/openbmc_project/sensors/power/psu1_pout + rExp: 0 + readingType: readingData + scale: -6 + sensorNamePattern: nameLeaf + sensorReadingType: 1 + sensorType: 8 + serviceInterface: org.freedesktop.DBus.Properties + unit: xyz.openbmc_project.Sensor.Value.Unit.Watts +182: + bExp: 0 + entityID: 10 + entityInstance: 17 + interfaces: + xyz.openbmc_project.Sensor.Value: + Value: + Offsets: + 0xFF: + type: int64_t + mutability: Mutability::Write|Mutability::Read + multiplierM: 1 + path: /xyz/openbmc_project/sensors/voltage/psu0_vin + rExp: 0 + readingType: readingData + scale: -3 + sensorNamePattern: nameLeaf + sensorReadingType: 1 + sensorType: 8 + serviceInterface: org.freedesktop.DBus.Properties + unit: xyz.openbmc_project.Sensor.Value.Unit.Volts +183: + bExp: 0 + entityID: 10 + entityInstance: 18 + interfaces: + xyz.openbmc_project.Sensor.Value: + Value: + Offsets: + 0xFF: + type: int64_t + mutability: Mutability::Write|Mutability::Read + multiplierM: 1 + path: /xyz/openbmc_project/sensors/voltage/psu1_vin + rExp: 0 + readingType: readingData + scale: -3 + sensorNamePattern: nameLeaf + sensorReadingType: 1 + sensorType: 8 + serviceInterface: org.freedesktop.DBus.Properties + unit: xyz.openbmc_project.Sensor.Value.Unit.Volts +186: + bExp: 0 + entityID: 10 + entityInstance: 21 + interfaces: + xyz.openbmc_project.Sensor.Value: + Value: + Offsets: + 0xFF: + type: int64_t + mutability: Mutability::Write|Mutability::Read + multiplierM: 1 + path: /xyz/openbmc_project/sensors/voltage/psu0_vout + rExp: 0 + readingType: readingData + scale: -3 + sensorNamePattern: nameLeaf + sensorReadingType: 1 + sensorType: 8 + serviceInterface: org.freedesktop.DBus.Properties + unit: xyz.openbmc_project.Sensor.Value.Unit.Volts +187: + bExp: 0 + entityID: 10 + entityInstance: 22 + interfaces: + xyz.openbmc_project.Sensor.Value: + Value: + Offsets: + 0xFF: + type: int64_t + mutability: Mutability::Write|Mutability::Read + multiplierM: 1 + path: /xyz/openbmc_project/sensors/voltage/psu1_vout + rExp: 0 + readingType: readingData + scale: -3 + sensorNamePattern: nameLeaf + sensorReadingType: 1 + sensorType: 8 + serviceInterface: org.freedesktop.DBus.Properties + unit: xyz.openbmc_project.Sensor.Value.Unit.Volts 205: bExp: 0 entityID: 10 @@ -4172,4 +4340,4 @@ sensorReadingType: 1 sensorType: 4 serviceInterface: org.freedesktop.DBus.Properties - unit: xyz.openbmc_project.Sensor.Value.Unit.RPMS \ No newline at end of file + unit: xyz.openbmc_project.Sensor.Value.Unit.RPMS diff --git a/Contrib-Inspur/openbmc/meta-inspur/meta-fp5280g2/recipes-phosphor/flash/openpower-software-manager_%.bbappend b/Contrib-Inspur/openbmc/meta-inspur/meta-fp5280g2/recipes-phosphor/flash/openpower-software-manager_%.bbappend new file mode 100644 index 00000000..a6cbb74b --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-inspur/meta-fp5280g2/recipes-phosphor/flash/openpower-software-manager_%.bbappend @@ -0,0 +1 @@ +PACKAGECONFIG_append_fp5280g2 = " verify_pnor_signature" diff --git a/Contrib-Inspur/openbmc/meta-inspur/meta-fp5280g2/recipes-phosphor/flash/phosphor-software-manager_%.bbappend b/Contrib-Inspur/openbmc/meta-inspur/meta-fp5280g2/recipes-phosphor/flash/phosphor-software-manager_%.bbappend new file mode 100644 index 00000000..77ec086f --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-inspur/meta-fp5280g2/recipes-phosphor/flash/phosphor-software-manager_%.bbappend @@ -0,0 +1 @@ +PACKAGECONFIG_append_fp5280g2 = " verify_signature" diff --git a/Contrib-Inspur/openbmc/meta-inspur/meta-fp5280g2/recipes-phosphor/gpio/phosphor-gpio-monitor/obmc/gpio/phosphor-power-supply-0.conf b/Contrib-Inspur/openbmc/meta-inspur/meta-fp5280g2/recipes-phosphor/gpio/phosphor-gpio-monitor/obmc/gpio/phosphor-power-supply-0.conf new file mode 100644 index 00000000..f97d8398 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-inspur/meta-fp5280g2/recipes-phosphor/gpio/phosphor-gpio-monitor/obmc/gpio/phosphor-power-supply-0.conf @@ -0,0 +1,6 @@ +INVENTORY=/system/chassis/motherboard/powersupply0 +DEVPATH=/dev/input/by-path/platform-gpio-keys-event +KEY=40 +NAME=powersupply0 +DRIVERS=/sys/bus/i2c/drivers/pmbus,11-0058 +EXTRA_IFACES=xyz.openbmc_project.Inventory.Item.PowerSupply diff --git a/Contrib-Inspur/openbmc/meta-inspur/meta-fp5280g2/recipes-phosphor/gpio/phosphor-gpio-monitor/obmc/gpio/phosphor-power-supply-1.conf b/Contrib-Inspur/openbmc/meta-inspur/meta-fp5280g2/recipes-phosphor/gpio/phosphor-gpio-monitor/obmc/gpio/phosphor-power-supply-1.conf new file mode 100644 index 00000000..78c66583 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-inspur/meta-fp5280g2/recipes-phosphor/gpio/phosphor-gpio-monitor/obmc/gpio/phosphor-power-supply-1.conf @@ -0,0 +1,6 @@ +INVENTORY=/system/chassis/motherboard/powersupply1 +DEVPATH=/dev/input/by-path/platform-gpio-keys-event +KEY=41 +NAME=powersupply1 +DRIVERS=/sys/bus/i2c/drivers/pmbus,11-0059 +EXTRA_IFACES=xyz.openbmc_project.Inventory.Item.PowerSupply diff --git a/Contrib-Inspur/openbmc/meta-inspur/meta-fp5280g2/recipes-phosphor/gpio/phosphor-gpio-monitor_%.bbappend b/Contrib-Inspur/openbmc/meta-inspur/meta-fp5280g2/recipes-phosphor/gpio/phosphor-gpio-monitor_%.bbappend new file mode 100644 index 00000000..04d1c07c --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-inspur/meta-fp5280g2/recipes-phosphor/gpio/phosphor-gpio-monitor_%.bbappend @@ -0,0 +1,12 @@ +FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:" + +TMPL_POWERSUPPLY = "phosphor-gpio-presence@.service" +INSTFMT_POWERSUPPLY = "phosphor-gpio-presence@{0}.service" +POWERSUPPLY_TGT = "multi-user.target" +FMT_POWERSUPPLY = "../${TMPL_POWERSUPPLY}:${POWERSUPPLY_TGT}.requires/${INSTFMT_POWERSUPPLY}" + +SYSTEMD_LINK_${PN}-presence_append_fp5280g2 = " ${@compose_list(d, 'FMT_POWERSUPPLY', 'OBMC_POWER_SUPPLY_INSTANCES')}" + +POWERSUPPLY_ENV_FMT = "obmc/gpio/phosphor-power-supply-{0}.conf" + +SYSTEMD_ENVIRONMENT_FILE_${PN}-presence_append_fp5280g2 = " ${@compose_list(d, 'POWERSUPPLY_ENV_FMT', 'OBMC_POWER_SUPPLY_INSTANCES')}" diff --git a/Contrib-Inspur/openbmc/meta-inspur/meta-fp5280g2/recipes-phosphor/images/obmc-phosphor-image.bbappend b/Contrib-Inspur/openbmc/meta-inspur/meta-fp5280g2/recipes-phosphor/images/obmc-phosphor-image.bbappend index a19860e1..5248c34a 100644 --- a/Contrib-Inspur/openbmc/meta-inspur/meta-fp5280g2/recipes-phosphor/images/obmc-phosphor-image.bbappend +++ b/Contrib-Inspur/openbmc/meta-inspur/meta-fp5280g2/recipes-phosphor/images/obmc-phosphor-image.bbappend @@ -1 +1 @@ -OBMC_IMAGE_EXTRA_INSTALL_append_fp5280g2 = " mboxd liberation-fonts uart-render-controller" +OBMC_IMAGE_EXTRA_INSTALL_append_fp5280g2 = " mboxd liberation-fonts uart-render-controller first-boot-set-mac" diff --git a/Contrib-Inspur/openbmc/meta-inspur/meta-fp5280g2/recipes-phosphor/leds/fp5280g2-led-manager-config-native.bb b/Contrib-Inspur/openbmc/meta-inspur/meta-fp5280g2/recipes-phosphor/leds/fp5280g2-led-manager-config-native.bb new file mode 100644 index 00000000..22aadad8 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-inspur/meta-fp5280g2/recipes-phosphor/leds/fp5280g2-led-manager-config-native.bb @@ -0,0 +1,19 @@ +SUMMARY = "Phosphor LED Group Management for fp5280g2" +PR = "r1" +LICENSE = "Apache-2.0" +LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10" + +inherit native + +PROVIDES += "virtual/phosphor-led-manager-config-native" + +SRC_URI += "file://led.yaml" +S = "${WORKDIR}" + +# Overwrite the example led layout yaml file prior +# to building the phosphor-led-manager package +do_install() { + SRC=${S} + DEST=${D}${datadir}/phosphor-led-manager + install -D ${SRC}/led.yaml ${DEST}/led.yaml +} diff --git a/Contrib-Inspur/openbmc/meta-inspur/meta-fp5280g2/recipes-phosphor/leds/fp5280g2-led-manager-config/led.yaml b/Contrib-Inspur/openbmc/meta-inspur/meta-fp5280g2/recipes-phosphor/leds/fp5280g2-led-manager-config/led.yaml new file mode 100644 index 00000000..922d67bb --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-inspur/meta-fp5280g2/recipes-phosphor/leds/fp5280g2-led-manager-config/led.yaml @@ -0,0 +1,20 @@ +bmc_booted: + power: + Action: 'Blink' + DutyOn: 50 + Period: 1000 + Priority: 'On' + init-ok: + Action: 'On' + DutyOn: 50 + Period: 0 + Priority: 'On' + +#fp5280g2 does not use "power" and "power_on". but the led.yaml needs it, otherwise the machine won't power on. +power_on: + power: + Action: 'On' + DutyOn: 50 + Period: 0 + Priority: 'On' + diff --git a/Contrib-Inspur/openbmc/meta-inspur/meta-fp5280g2/recipes-phosphor/network/first-boot-set-mac_%.bbappend b/Contrib-Inspur/openbmc/meta-inspur/meta-fp5280g2/recipes-phosphor/network/first-boot-set-mac_%.bbappend new file mode 100644 index 00000000..934b328c --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-inspur/meta-fp5280g2/recipes-phosphor/network/first-boot-set-mac_%.bbappend @@ -0,0 +1 @@ +SYSTEMD_SERVICE_${PN} += " first-boot-set-mac@eth0.service first-boot-set-mac@eth1.service" diff --git a/Contrib-Inspur/openbmc/meta-inspur/meta-fp5280g2/recipes-phosphor/occ/fp5280g2-occ-control-config-native.bb b/Contrib-Inspur/openbmc/meta-inspur/meta-fp5280g2/recipes-phosphor/occ/fp5280g2-occ-control-config-native.bb index ba31df37..4cf26779 100644 --- a/Contrib-Inspur/openbmc/meta-inspur/meta-fp5280g2/recipes-phosphor/occ/fp5280g2-occ-control-config-native.bb +++ b/Contrib-Inspur/openbmc/meta-inspur/meta-fp5280g2/recipes-phosphor/occ/fp5280g2-occ-control-config-native.bb @@ -1,7 +1,7 @@ SUMMARY = "Fp5280g2 OCC Control sensor IDs" PR = "r1" LICENSE = "Apache-2.0" -LIC_FILES_CHKSUM = "file://${INSPURBASE}/COPYING.apache-2.0;md5=34400b68072d710fecd0a2940a0d1658" +LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10" inherit native inherit openpower-occ-control diff --git a/Contrib-Inspur/openbmc/meta-inspur/meta-fp5280g2/recipes-phosphor/packagegroups/packagegroup-obmc-apps.bbappend b/Contrib-Inspur/openbmc/meta-inspur/meta-fp5280g2/recipes-phosphor/packagegroups/packagegroup-obmc-apps.bbappend index 755b9ea9..9f8035b5 100644 --- a/Contrib-Inspur/openbmc/meta-inspur/meta-fp5280g2/recipes-phosphor/packagegroups/packagegroup-obmc-apps.bbappend +++ b/Contrib-Inspur/openbmc/meta-inspur/meta-fp5280g2/recipes-phosphor/packagegroups/packagegroup-obmc-apps.bbappend @@ -1,2 +1,2 @@ -RDEPENDS_${PN}-inventory_append_fp5280g2 = " openpower-occ-control phosphor-cooling-type" -RDEPENDS_${PN}-extras_append_fp5280g2 = " phosphor-webui" +RDEPENDS_${PN}-inventory_append_fp5280g2 = " openpower-fru-vpd openpower-occ-control phosphor-cooling-type virtual/obmc-gpio-presence" +RDEPENDS_${PN}-extras_append_fp5280g2 = " phosphor-power phosphor-power-systemd-links phosphor-webui" diff --git a/Contrib-Inspur/openbmc/meta-inspur/meta-fp5280g2/recipes-phosphor/power/phosphor-power/obmc/power-supply-monitor/power-supply-monitor-0.conf b/Contrib-Inspur/openbmc/meta-inspur/meta-fp5280g2/recipes-phosphor/power/phosphor-power/obmc/power-supply-monitor/power-supply-monitor-0.conf new file mode 100644 index 00000000..fa80045e --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-inspur/meta-fp5280g2/recipes-phosphor/power/phosphor-power/obmc/power-supply-monitor/power-supply-monitor-0.conf @@ -0,0 +1,3 @@ +DEVPATH=/sys/bus/i2c/devices/11-0058 +INSTANCE=0 +INVENTORY=/system/chassis/motherboard/powersupply0 diff --git a/Contrib-Inspur/openbmc/meta-inspur/meta-fp5280g2/recipes-phosphor/power/phosphor-power/obmc/power-supply-monitor/power-supply-monitor-1.conf b/Contrib-Inspur/openbmc/meta-inspur/meta-fp5280g2/recipes-phosphor/power/phosphor-power/obmc/power-supply-monitor/power-supply-monitor-1.conf new file mode 100644 index 00000000..de4b1194 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-inspur/meta-fp5280g2/recipes-phosphor/power/phosphor-power/obmc/power-supply-monitor/power-supply-monitor-1.conf @@ -0,0 +1,3 @@ +DEVPATH=/sys/bus/i2c/devices/11-0059 +INSTANCE=1 +INVENTORY=/system/chassis/motherboard/powersupply1 diff --git a/Contrib-Inspur/openbmc/meta-inspur/meta-fp5280g2/recipes-phosphor/power/phosphor-power/psu.json b/Contrib-Inspur/openbmc/meta-inspur/meta-fp5280g2/recipes-phosphor/power/phosphor-power/psu.json new file mode 100644 index 00000000..3669ea32 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-inspur/meta-fp5280g2/recipes-phosphor/power/phosphor-power/psu.json @@ -0,0 +1,34 @@ +{ + "inventoryPMBusAccessType": "Hwmon", + "fruConfigs": [ + { + "propertyName": "PartNumber", + "fileName": "part_number", + "interface": "xyz.openbmc_project.Inventory.Decorator.Asset" + }, + { + "propertyName": "SerialNumber", + "fileName": "serial_number", + "interface": "xyz.openbmc_project.Inventory.Decorator.Asset" + }, + { + "propertyName": "Manufacturer", + "fileName": "manufacturer", + "interface": "xyz.openbmc_project.Inventory.Decorator.Asset" + }, + { + "propertyName": "Model", + "fileName": "model", + "interface": "xyz.openbmc_project.Inventory.Decorator.Asset" + }, + { + "propertyName": "Version", + "fileName": "fw_version", + "interface": "xyz.openbmc_project.Software.Version" + } + ], + "psuDevices": { + "/xyz/openbmc_project/inventory/system/chassis/motherboard/powersupply0" : "/sys/bus/i2c/devices/11-0058", + "/xyz/openbmc_project/inventory/system/chassis/motherboard/powersupply1" : "/sys/bus/i2c/devices/11-0059" + } +} diff --git a/Contrib-Inspur/openbmc/meta-inspur/meta-fp5280g2/recipes-phosphor/power/phosphor-power_%.bbappend b/Contrib-Inspur/openbmc/meta-inspur/meta-fp5280g2/recipes-phosphor/power/phosphor-power_%.bbappend new file mode 100644 index 00000000..02f0d2bc --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-inspur/meta-fp5280g2/recipes-phosphor/power/phosphor-power_%.bbappend @@ -0,0 +1,14 @@ +FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:" + +inherit obmc-phosphor-systemd + +SRC_URI += "file://psu.json" + +PSU_MONITOR_ENV_FMT = "obmc/power-supply-monitor/power-supply-monitor-{0}.conf" +SYSTEMD_ENVIRONMENT_FILE_${PN} += "${@compose_list(d, 'PSU_MONITOR_ENV_FMT', 'OBMC_POWER_SUPPLY_INSTANCES')}" + +do_install_append() { + install -D ${WORKDIR}/psu.json ${D}${datadir}/phosphor-power/psu.json +} + +FILES_${PN} += "${datadir}/phosphor-power/psu.json" diff --git a/Contrib-Inspur/openbmc/meta-inspur/meta-fp5280g2/recipes-phosphor/sensors/phosphor-hwmon/obmc/hwmon/ahb/apb/bus@1e78a000/i2c-bus@400/power-supply@58.conf b/Contrib-Inspur/openbmc/meta-inspur/meta-fp5280g2/recipes-phosphor/sensors/phosphor-hwmon/obmc/hwmon/ahb/apb/bus@1e78a000/i2c-bus@400/power-supply@58.conf new file mode 100644 index 00000000..362b4b01 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-inspur/meta-fp5280g2/recipes-phosphor/sensors/phosphor-hwmon/obmc/hwmon/ahb/apb/bus@1e78a000/i2c-bus@400/power-supply@58.conf @@ -0,0 +1,4 @@ +LABEL_in1 = "psu0_vin" +LABEL_in2 = "psu0_vout" +LABEL_power1 = "psu0_pin" +LABEL_power2 = "psu0_pout" diff --git a/Contrib-Inspur/openbmc/meta-inspur/meta-fp5280g2/recipes-phosphor/sensors/phosphor-hwmon/obmc/hwmon/ahb/apb/bus@1e78a000/i2c-bus@400/power-supply@59.conf b/Contrib-Inspur/openbmc/meta-inspur/meta-fp5280g2/recipes-phosphor/sensors/phosphor-hwmon/obmc/hwmon/ahb/apb/bus@1e78a000/i2c-bus@400/power-supply@59.conf new file mode 100644 index 00000000..8ffe4417 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-inspur/meta-fp5280g2/recipes-phosphor/sensors/phosphor-hwmon/obmc/hwmon/ahb/apb/bus@1e78a000/i2c-bus@400/power-supply@59.conf @@ -0,0 +1,4 @@ +LABEL_in1 = "psu1_vin" +LABEL_in2 = "psu1_vout" +LABEL_power1 = "psu1_pin" +LABEL_power2 = "psu1_pout" diff --git a/Contrib-Inspur/openbmc/meta-inspur/meta-fp5280g2/recipes-phosphor/sensors/phosphor-hwmon_%.bbappend b/Contrib-Inspur/openbmc/meta-inspur/meta-fp5280g2/recipes-phosphor/sensors/phosphor-hwmon_%.bbappend index ed2bf19d..2dd9ee5c 100644 --- a/Contrib-Inspur/openbmc/meta-inspur/meta-fp5280g2/recipes-phosphor/sensors/phosphor-hwmon_%.bbappend +++ b/Contrib-Inspur/openbmc/meta-inspur/meta-fp5280g2/recipes-phosphor/sensors/phosphor-hwmon_%.bbappend @@ -8,6 +8,8 @@ CHIPS = " \ bus@1e78a000/i2c-bus@c0/i2c-switch@70/i2c@0/tmp112@4a \ bus@1e78a000/i2c-bus@c0/i2c-switch@70/i2c@1/tmp112@4a \ bus@1e78a000/i2c-bus@c0/i2c-switch@70/i2c@2/tmp112@4a \ + bus@1e78a000/i2c-bus@400/power-supply@58 \ + bus@1e78a000/i2c-bus@400/power-supply@59 \ pwm-tacho-controller@1e786000 \ " ITEMSFMT = "ahb/apb/{0}.conf" diff --git a/Contrib-Inspur/openbmc/meta-inspur/meta-fp5280g2/recipes-phosphor/vpd/fp5280g2-openpower-fru-inventory-native.bb b/Contrib-Inspur/openbmc/meta-inspur/meta-fp5280g2/recipes-phosphor/vpd/fp5280g2-openpower-fru-inventory-native.bb new file mode 100644 index 00000000..f731bfe5 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-inspur/meta-fp5280g2/recipes-phosphor/vpd/fp5280g2-openpower-fru-inventory-native.bb @@ -0,0 +1,19 @@ +SUMMARY = "Inspur FP5280G2 Inventory config for openpower-vpd-parser" +PR = "r1" +LICENSE = "Apache-2.0" +LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10" + +inherit native +inherit openpower-fru-vpd + +SRC_URI += "file://inventory" + +PROVIDES += "virtual/openpower-fru-inventory" + +S = "${WORKDIR}" + +do_install() { + DEST=${D}${inventory_datadir_native} + install -d ${DEST} + install inventory ${DEST} +} diff --git a/Contrib-Inspur/openbmc/meta-inspur/meta-fp5280g2/recipes-phosphor/vpd/fp5280g2-openpower-fru-inventory/inventory b/Contrib-Inspur/openbmc/meta-inspur/meta-fp5280g2/recipes-phosphor/vpd/fp5280g2-openpower-fru-inventory/inventory new file mode 100644 index 00000000..c4ba3ad2 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-inspur/meta-fp5280g2/recipes-phosphor/vpd/fp5280g2-openpower-fru-inventory/inventory @@ -0,0 +1,3 @@ +FRUS=BMC,ETHERNET,ETHERNET1 +PATHS=/system/chassis/motherboard/bmc,/system/chassis/motherboard/bmc/eth0,/system/chassis/motherboard/bmc/eth1 +EEPROM=/sys/devices/platform/ahb/ahb:apb/ahb:apb:bus@1e78a000/1e78a080.i2c-bus/i2c-1/1-0050/eeprom diff --git a/Contrib-Inspur/openbmc/meta-inspur/meta-fp5280g2/recipes-phosphor/vpd/fp5280g2-openpower-fru-vpd-layout-native.bb b/Contrib-Inspur/openbmc/meta-inspur/meta-fp5280g2/recipes-phosphor/vpd/fp5280g2-openpower-fru-vpd-layout-native.bb new file mode 100644 index 00000000..ba684fb8 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-inspur/meta-fp5280g2/recipes-phosphor/vpd/fp5280g2-openpower-fru-vpd-layout-native.bb @@ -0,0 +1,20 @@ +SUMMARY = "Inspur FP5280G2 VPD layout for openpower-fru-vpd" +PR = "r1" +LICENSE = "Apache-2.0" +LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10" + +inherit native +inherit openpower-fru-vpd + +SRC_URI += "file://layout.yaml" + +PROVIDES += "virtual/openpower-fru-vpd-layout" + +S = "${WORKDIR}" + +do_install() { + DEST=${D}${vpdlayout_datadir} + + install -d ${DEST} + install layout.yaml ${DEST} +} diff --git a/Contrib-Inspur/openbmc/meta-inspur/meta-fp5280g2/recipes-phosphor/vpd/fp5280g2-openpower-fru-vpd-layout/layout.yaml b/Contrib-Inspur/openbmc/meta-inspur/meta-fp5280g2/recipes-phosphor/vpd/fp5280g2-openpower-fru-vpd-layout/layout.yaml new file mode 100644 index 00000000..c26af4fd --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-inspur/meta-fp5280g2/recipes-phosphor/vpd/fp5280g2-openpower-fru-vpd-layout/layout.yaml @@ -0,0 +1,16 @@ +BMC: + xyz.openbmc_project.Inventory.Decorator.Asset: + OPFR,VP: PartNumber + OPFR,VS: SerialNumber + OPFR,VN: Manufacturer + xyz.openbmc_project.Inventory.Item: + VINI,DR: PrettyName + xyz.openbmc_project.Inventory.Item.Bmc: +ETHERNET: + xyz.openbmc_project.Inventory.Item.NetworkInterface: + OPFR,B1: MACAddress + xyz.openbmc_project.Inventory.Item.Ethernet: +ETHERNET1: + xyz.openbmc_project.Inventory.Item.NetworkInterface: + VINI,B1: MACAddress + xyz.openbmc_project.Inventory.Item.Ethernet: diff --git a/Contrib-Inspur/openbmc/meta-inspur/meta-i9000/conf/bblayers.conf.sample b/Contrib-Inspur/openbmc/meta-inspur/meta-i9000/conf/bblayers.conf.sample new file mode 100755 index 00000000..ea418c78 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-inspur/meta-i9000/conf/bblayers.conf.sample @@ -0,0 +1,29 @@ +# LAYER_CONF_VERSION is increased each time build/conf/bblayers.conf +# changes incompatibly +LCONF_VERSION = "8" + +BBPATH = "${TOPDIR}" +BBFILES ?= "" + +BBLAYERS ?= " \ + ##OEROOT##/meta \ + ##OEROOT##/meta-openembedded/meta-oe \ + ##OEROOT##/meta-openembedded/meta-networking \ + ##OEROOT##/meta-openembedded/meta-perl \ + ##OEROOT##/meta-openembedded/meta-python \ + ##OEROOT##/meta-phosphor \ + ##OEROOT##/meta-aspeed \ + ##OEROOT##/meta-inspur \ + ##OEROOT##/meta-inspur/meta-i9000 \ + " +BBLAYERS_NON_REMOVABLE ?= " \ + ##OEROOT##/meta \ + ##OEROOT##/meta-openembedded/meta-oe \ + ##OEROOT##/meta-openembedded/meta-networking \ + ##OEROOT##/meta-openembedded/meta-perl \ + ##OEROOT##/meta-openembedded/meta-python \ + ##OEROOT##/meta-phosphor \ + ##OEROOT##/meta-aspeed \ + ##OEROOT##/meta-inspur \ + ##OEROOT##/meta-inspur/meta-i9000 \ + " diff --git a/Contrib-Inspur/openbmc/meta-inspur/meta-i9000/conf/conf-notes.txt b/Contrib-Inspur/openbmc/meta-inspur/meta-i9000/conf/conf-notes.txt new file mode 100644 index 00000000..5314bf4e --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-inspur/meta-i9000/conf/conf-notes.txt @@ -0,0 +1,4 @@ +Common targets are: + obmc-phosphor-image + virtual/kernel + phosphor-ipmi-host diff --git a/Contrib-Inspur/openbmc/meta-inspur/meta-i9000/conf/layer.conf b/Contrib-Inspur/openbmc/meta-inspur/meta-i9000/conf/layer.conf new file mode 100755 index 00000000..3f50915e --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-inspur/meta-i9000/conf/layer.conf @@ -0,0 +1,14 @@ +# We have a conf and classes directory, add to BBPATH +BBPATH .= ":${LAYERDIR}" + +# We have recipes-* directories, add to BBFILES +BBFILES += "${LAYERDIR}/recipes-*/*/*.bb \ + ${LAYERDIR}/recipes-*/*/*.bbappend" + +BBFILE_COLLECTIONS += "i9000-layer" +BBFILE_PATTERN_i9000-layer = "^${LAYERDIR}/" +BBFILE_PRIORITY_i9000-layer = "6" + +LAYERSERIES_COMPAT_i9000-layer = "warrior zeus" + +INSPURBASE = '${@os.path.normpath("${LAYERDIR}/")}' diff --git a/Contrib-Inspur/openbmc/meta-inspur/meta-i9000/conf/local.conf.sample b/Contrib-Inspur/openbmc/meta-inspur/meta-i9000/conf/local.conf.sample new file mode 100644 index 00000000..7ba57fc7 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-inspur/meta-i9000/conf/local.conf.sample @@ -0,0 +1,241 @@ +# +# This file is your local configuration file and is where all local user settings +# are placed. The comments in this file give some guide to the options a new user +# to the system might want to change but pretty much any configuration option can +# be set in this file. More adventurous users can look at local.conf.extended +# which contains other examples of configuration which can be placed in this file +# but new users likely won't need any of them initially. +# +# Lines starting with the '#' character are commented out and in some cases the +# default values are provided as comments to show people example syntax. Enabling +# the option is a question of removing the # character and making any change to the +# variable as required. + +# +# Machine Selection +# +# You need to select a specific machine to target the build with. There are a selection +# of emulated machines available which can boot and run in the QEMU emulator: +# +#MACHINE ?= "qemuarm" +#MACHINE ?= "qemuarm64" +#MACHINE ?= "qemumips" +#MACHINE ?= "qemuppc" +#MACHINE ?= "qemux86" +#MACHINE ?= "qemux86-64" +# +# There are also the following hardware board target machines included for +# demonstration purposes: +# +#MACHINE ?= "beaglebone" +#MACHINE ?= "genericx86" +#MACHINE ?= "genericx86-64" +#MACHINE ?= "mpc8315e-rdb" +#MACHINE ?= "edgerouter" +# +# This sets the default machine to be qemux86 if no other machine is selected: + +MACHINE ?= "i9000" + +# +# Where to place downloads +# +# During a first build the system will download many different source code tarballs +# from various upstream projects. This can take a while, particularly if your network +# connection is slow. These are all stored in DL_DIR. When wiping and rebuilding you +# can preserve this directory to speed up this part of subsequent builds. This directory +# is safe to share between multiple builds on the same machine too. +# +# The default is a downloads directory under TOPDIR which is the build directory. +# +#DL_DIR ?= "${TOPDIR}/downloads" +# +# Where to place shared-state files +# +# BitBake has the capability to accelerate builds based on previously built output. +# This is done using "shared state" files which can be thought of as cache objects +# and this option determines where those files are placed. +# +# You can wipe out TMPDIR leaving this directory intact and the build would regenerate +# from these files if no changes were made to the configuration. If changes were made +# to the configuration, only shared state files where the state was still valid would +# be used (done using checksums). +# +# The default is a sstate-cache directory under TOPDIR. +# +#SSTATE_DIR ?= "${TOPDIR}/sstate-cache" + +# +# Where to place the build output +# +# This option specifies where the bulk of the building work should be done and +# where BitBake should place its temporary files and output. Keep in mind that +# this includes the extraction and compilation of many applications and the toolchain +# which can use Gigabytes of hard disk space. +# +# The default is a tmp directory under TOPDIR. +# +#TMPDIR = "${TOPDIR}/tmp" + +# +# Default policy config +# +# The distribution setting controls which policy settings are used as defaults. +# The default value is fine for general Yocto project use, at least initially. +# Ultimately when creating custom policy, people will likely end up subclassing +# these defaults. +# +DISTRO ?= "openbmc-phosphor" +# As an example of a subclass there is a "bleeding" edge policy configuration +# where many versions are set to the absolute latest code from the upstream +# source control systems. This is just mentioned here as an example, its not +# useful to most new users. +# DISTRO ?= "poky-bleeding" + +# +# Package Management configuration +# +# This variable lists which packaging formats to enable. Multiple package backends +# can be enabled at once and the first item listed in the variable will be used +# to generate the root filesystems. +# Options are: +# - 'package_deb' for debian style deb files +# - 'package_ipk' for ipk files are used by opkg (a debian style embedded package manager) +# - 'package_rpm' for rpm style packages +# E.g.: PACKAGE_CLASSES ?= "package_rpm package_deb package_ipk" +# We default to rpm: +PACKAGE_CLASSES ?= "package_rpm" + +# +# SDK/ADT target architecture +# +# This variable specifies the architecture to build SDK/ADT items for and means +# you can build the SDK packages for architectures other than the machine you are +# running the build on (i.e. building i686 packages on an x86_64 host). +# Supported values are i686 and x86_64 +#SDKMACHINE ?= "i686" +SANITY_TESTED_DISTROS_append ?= " RedHatEnterpriseWorkstation-6.*" + +# +# Extra image configuration defaults +# +# The EXTRA_IMAGE_FEATURES variable allows extra packages to be added to the generated +# images. Some of these options are added to certain image types automatically. The +# variable can contain the following options: +# "dbg-pkgs" - add -dbg packages for all installed packages +# (adds symbol information for debugging/profiling) +# "dev-pkgs" - add -dev packages for all installed packages +# (useful if you want to develop against libs in the image) +# "ptest-pkgs" - add -ptest packages for all ptest-enabled packages +# (useful if you want to run the package test suites) +# "tools-sdk" - add development tools (gcc, make, pkgconfig etc.) +# "tools-debug" - add debugging tools (gdb, strace) +# "eclipse-debug" - add Eclipse remote debugging support +# "tools-profile" - add profiling tools (oprofile, exmap, lttng, valgrind) +# "tools-testapps" - add useful testing tools (ts_print, aplay, arecord etc.) +# "debug-tweaks" - make an image suitable for development +# e.g. ssh root access has a blank password +# There are other application targets that can be used here too, see +# meta/classes/image.bbclass and meta/classes/core-image.bbclass for more details. +# We default to enabling the debugging tweaks. +EXTRA_IMAGE_FEATURES = "debug-tweaks" + +# +# Additional image features +# +# The following is a list of additional classes to use when building images which +# enable extra features. Some available options which can be included in this variable +# are: +# - 'buildstats' collect build statistics +# - 'image-mklibs' to reduce shared library files size for an image +# - 'image-prelink' in order to prelink the filesystem image +# - 'image-swab' to perform host system intrusion detection +# NOTE: if listing mklibs & prelink both, then make sure mklibs is before prelink +# NOTE: mklibs also needs to be explicitly enabled for a given image, see local.conf.extended +USER_CLASSES ?= "buildstats image-mklibs image-prelink" + +# +# Runtime testing of images +# +# The build system can test booting virtual machine images under qemu (an emulator) +# after any root filesystems are created and run tests against those images. To +# enable this uncomment this line. See classes/testimage(-auto).bbclass for +# further details. +#TEST_IMAGE = "1" +# +# Interactive shell configuration +# +# Under certain circumstances the system may need input from you and to do this it +# can launch an interactive shell. It needs to do this since the build is +# multithreaded and needs to be able to handle the case where more than one parallel +# process may require the user's attention. The default is iterate over the available +# terminal types to find one that works. +# +# Examples of the occasions this may happen are when resolving patches which cannot +# be applied, to use the devshell or the kernel menuconfig +# +# Supported values are auto, gnome, xfce, rxvt, screen, konsole (KDE 3.x only), none +# Note: currently, Konsole support only works for KDE 3.x due to the way +# newer Konsole versions behave +#OE_TERMINAL = "auto" +# By default disable interactive patch resolution (tasks will just fail instead): +PATCHRESOLVE = "noop" + +# +# Disk Space Monitoring during the build +# +# Monitor the disk space during the build. If there is less that 1GB of space or less +# than 100K inodes in any key build location (TMPDIR, DL_DIR, SSTATE_DIR), gracefully +# shutdown the build. If there is less that 100MB or 1K inodes, perform a hard abort +# of the build. The reason for this is that running completely out of space can corrupt +# files and damages the build in ways which may not be easily recoverable. +# It's necessary to monitor /tmp, if there is no space left the build will fail +# with very exotic errors. +BB_DISKMON_DIRS = "\ + STOPTASKS,${TMPDIR},1G,100K \ + STOPTASKS,${DL_DIR},1G,100K \ + STOPTASKS,${SSTATE_DIR},1G,100K \ + STOPTASKS,/tmp,100M,100K \ + ABORT,${TMPDIR},100M,1K \ + ABORT,${DL_DIR},100M,1K \ + ABORT,${SSTATE_DIR},100M,1K \ + ABORT,/tmp,10M,1K" + +# +# Shared-state files from other locations +# +# As mentioned above, shared state files are prebuilt cache data objects which can +# used to accelerate build time. This variable can be used to configure the system +# to search other mirror locations for these objects before it builds the data itself. +# +# This can be a filesystem directory, or a remote url such as http or ftp. These +# would contain the sstate-cache results from previous builds (possibly from other +# machines). This variable works like fetcher MIRRORS/PREMIRRORS and points to the +# cache locations to check for the shared objects. +# NOTE: if the mirror uses the same structure as SSTATE_DIR, you need to add PATH +# at the end as shown in the examples below. This will be substituted with the +# correct path within the directory structure. +#SSTATE_MIRRORS ?= "\ +#file://.* http://someserver.tld/share/sstate/PATH;downloadfilename=PATH \n \ +#file://.* file:///some/local/dir/sstate/PATH" + +# +# Qemu configuration +# +# By default qemu will build with a builtin VNC server where graphical output can be +# seen. The two lines below enable the SDL backend too. This assumes there is a +# libsdl library available on your build system. +PACKAGECONFIG_append_pn-qemu-native = " sdl" +PACKAGECONFIG_append_pn-nativesdk-qemu = " sdl" +#ASSUME_PROVIDED += "libsdl-native" + +# CONF_VERSION is increased each time build/conf/ changes incompatibly and is used to +# track the version of this file when it was generated. This can safely be ignored if +# this doesn't mean anything to you. +CONF_VERSION = "1" + +# Set the root password to '0penBmc' +INHERIT += "extrausers" +EXTRA_USERS_PARAMS = " \ + usermod -p '\$1\$UGMqyqdG\$FZiylVFmRRfl9Z0Ue8G7e/' root; \ + " diff --git a/Contrib-Inspur/openbmc/meta-inspur/meta-i9000/conf/machine/i9000.conf b/Contrib-Inspur/openbmc/meta-inspur/meta-i9000/conf/machine/i9000.conf new file mode 100755 index 00000000..9944941b --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-inspur/meta-i9000/conf/machine/i9000.conf @@ -0,0 +1,14 @@ +KMACHINE = "aspeed" +KERNEL_DEVICETREE = "${KMACHINE}-bmc-inspur-${MACHINE}.dtb" + +require conf/machine/include/ast2400.inc +require conf/machine/include/obmc-bsp-common.inc +require inspur.inc + +UBOOT_MACHINE_i9000 = "ast_g4_phy_config" +UBOOT_ENTRYPOINT = "0x40008000" +UBOOT_LOADADDRESS = "0x40008000" + +FLASH_SIZE = "32768" + +#VIRTUAL-RUNTIME_skeleton_workbook = "${MACHINE}-config" diff --git a/Contrib-Inspur/openbmc/meta-inspur/meta-i9000/conf/machine/inspur.inc b/Contrib-Inspur/openbmc/meta-inspur/meta-i9000/conf/machine/inspur.inc new file mode 100644 index 00000000..88e9890b --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-inspur/meta-i9000/conf/machine/inspur.inc @@ -0,0 +1,23 @@ +OBMC_MACHINE_FEATURES += "\ + obmc-phosphor-fan-mgmt \ + obmc-phosphor-chassis-mgmt \ + obmc-phosphor-flash-mgmt \ + obmc-host-ipmi \ + obmc-host-ctl \ + obmc-host-state-mgmt \ + obmc-chassis-state-mgmt \ + obmc-bmc-state-mgmt \ + " + +VIRTUAL-RUNTIME_skeleton_workbook = "${MACHINE}-config" + +PREFERRED_PROVIDER_virtual/obmc-chassis-mgmt = "packagegroup-inspur-apps" +PREFERRED_PROVIDER_virtual/obmc-fan-mgmt = "packagegroup-inspur-apps" +PREFERRED_PROVIDER_virtual/obmc-flash-mgmt = "packagegroup-inspur-apps" +PREFERRED_PROVIDER_virtual/obmc-system-mgmt = "packagegroup-inspur-apps" +PREFERRED_PROVIDER_virtual/obmc-host-ctl ?= "obmc-op-control-host" +PREFERRED_PROVIDER_virtual/obmc-inventory-data ?= "${VIRTUAL-RUNTIME_skeleton_workbook}" +PREFERRED_PROVIDER_virtual/obmc-host-ipmi-hw = "phosphor-ipmi-kcs" +#PREFERRED_PROVIDER_virtual/obmc-gpio-monitor ?= "phosphor-gpio-monitor" + +OVERRIDES .= ":inspur" diff --git a/Contrib-Inspur/openbmc/meta-inspur/meta-i9000/recipes-inspur/packagegroups/packagegroup-inspur-apps.bb b/Contrib-Inspur/openbmc/meta-inspur/meta-i9000/recipes-inspur/packagegroups/packagegroup-inspur-apps.bb new file mode 100644 index 00000000..7df7fb71 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-inspur/meta-i9000/recipes-inspur/packagegroups/packagegroup-inspur-apps.bb @@ -0,0 +1,48 @@ +SUMMARY = "OpenBMC for Inspur - Applications" +PR = "r1" + +inherit packagegroup + +PROVIDES = "${PACKAGES}" +PACKAGES = " \ + ${PN}-chassis \ + ${PN}-fans \ + ${PN}-flash \ + ${PN}-system \ + " + +PROVIDES += "virtual/obmc-chassis-mgmt" +PROVIDES += "virtual/obmc-fan-mgmt" +PROVIDES += "virtual/obmc-flash-mgmt" +PROVIDES += "virtual/obmc-system-mgmt" + +RPROVIDES_${PN}-chassis += "virtual-obmc-chassis-mgmt" +RPROVIDES_${PN}-fans += "virtual-obmc-fan-mgmt" +RPROVIDES_${PN}-flash += "virtual-obmc-flash-mgmt" +RPROVIDES_${PN}-system += "virtual-obmc-system-mgmt" + +SUMMARY_${PN}-chassis = "Inspur Chassis" +RDEPENDS_${PN}-chassis = " \ + obmc-control-chassis \ + obmc-op-control-power \ + obmc-host-failure-reboots \ + " + +SUMMARY_${PN}-fans = "Intel Fans" +RDEPENDS_${PN}-fans = " \ + phosphor-pid-control \ + " + +SUMMARY_${PN}-flash = "Inspur Flash" +RDEPENDS_${PN}-flash = " \ + obmc-flash-bmc \ + obmc-mgr-download \ + obmc-control-bmc \ + " + +SUMMARY_${PN}-system = "Inspur System" +RDEPENDS_${PN}-system = " \ + bmcweb \ + entity-manager \ + phosphor-webui \ + " diff --git a/Contrib-Inspur/openbmc/meta-inspur/meta-i9000/recipes-kernel/linux/linux-aspeed/0001-Add-i9000-dts-file.patch b/Contrib-Inspur/openbmc/meta-inspur/meta-i9000/recipes-kernel/linux/linux-aspeed/0001-Add-i9000-dts-file.patch new file mode 100644 index 00000000..c02efb42 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-inspur/meta-i9000/recipes-kernel/linux/linux-aspeed/0001-Add-i9000-dts-file.patch @@ -0,0 +1,441 @@ +From c5fad0b973541761e75ab79e05c6e8b6dbe9141a Mon Sep 17 00:00:00 2001 +From: Yaohui-Meng +Date: Wed, 21 Oct 2020 18:39:23 +0800 +Subject: [PATCH] Add i9000 dts file + +Signed-off-by: Yaohui-Meng +--- + arch/arm/boot/dts/Makefile | 1 + + arch/arm/boot/dts/aspeed-bmc-inspur-i9000.dts | 408 ++++++++++++++++++ + 2 files changed, 409 insertions(+) + create mode 100644 arch/arm/boot/dts/aspeed-bmc-inspur-i9000.dts + +diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile +index fcd607ffe8d9..9dbd1aaee27f 100644 +--- a/arch/arm/boot/dts/Makefile ++++ b/arch/arm/boot/dts/Makefile +@@ -1292,6 +1292,7 @@ dtb-$(CONFIG_ARCH_ASPEED) += \ + aspeed-bmc-ibm-rainier.dtb \ + aspeed-bmc-intel-s2600wf.dtb \ + aspeed-bmc-inspur-fp5280g2.dtb \ ++ aspeed-bmc-inspur-i9000.dtb \ + aspeed-bmc-lenovo-hr630.dtb \ + aspeed-bmc-lenovo-hr855xg2.dtb \ + aspeed-bmc-microsoft-olympus.dtb \ +diff --git a/arch/arm/boot/dts/aspeed-bmc-inspur-i9000.dts b/arch/arm/boot/dts/aspeed-bmc-inspur-i9000.dts +new file mode 100644 +index 000000000000..566ec283adce +--- /dev/null ++++ b/arch/arm/boot/dts/aspeed-bmc-inspur-i9000.dts +@@ -0,0 +1,408 @@ ++// SPDX-License-Identifier: GPL-2.0+ ++/dts-v1/; ++ ++#include "aspeed-g4.dtsi" ++#include ++ ++/ { ++ model = "I9000 BMC"; ++ compatible = "inspur,i9000-bmc", "aspeed,ast2400"; ++ ++ chosen { ++ stdout-path = &uart5; ++ bootargs = "console=ttyS4,115200 earlyprintk"; ++ }; ++ ++ memory@40000000 { ++ reg = <0x40000000 0x20000000>; ++ }; ++ ++ reserved-memory { ++ #address-cells = <1>; ++ #size-cells = <1>; ++ ranges; ++ ++ vga_memory: framebuffer@5f000000 { ++ no-map; ++ reg = <0x5f000000 0x01000000>; /* 16M */ ++ }; ++ ++ coldfire_memory: codefire_memory@5ee00000 { ++ reg = <0x5ee00000 0x00200000>; ++ no-map; ++ }; ++ ++ flash_memory: region@5c000000 { ++ no-map; ++ reg = <0x5C000000 0x02000000>; /* 32MB */ ++ }; ++ }; ++ ++ leds { ++ compatible = "gpio-leds"; ++ ++ heartbeat { ++ gpios = <&gpio ASPEED_GPIO(R, 4) GPIO_ACTIVE_LOW>; ++ }; ++ ++ power { ++ gpios = <&gpio ASPEED_GPIO(R, 5) GPIO_ACTIVE_LOW>; ++ }; ++ ++ identify { ++ gpios = <&gpio ASPEED_GPIO(A, 2) GPIO_ACTIVE_LOW>; ++ }; ++ }; ++ ++ fsi: gpio-fsi { ++ compatible = "aspeed,ast2400-cf-fsi-master", "fsi-master"; ++ #address-cells = <2>; ++ #size-cells = <0>; ++ ++ memory-region = <&coldfire_memory>; ++ aspeed,sram = <&sram>; ++ aspeed,cvic = <&cvic>; ++ ++ clock-gpios = <&gpio ASPEED_GPIO(A, 4) GPIO_ACTIVE_HIGH>; ++ data-gpios = <&gpio ASPEED_GPIO(A, 5) GPIO_ACTIVE_HIGH>; ++ mux-gpios = <&gpio ASPEED_GPIO(A, 6) GPIO_ACTIVE_HIGH>; ++ enable-gpios = <&gpio ASPEED_GPIO(D, 0) GPIO_ACTIVE_HIGH>; ++ trans-gpios = <&gpio ASPEED_GPIO(H, 6) GPIO_ACTIVE_HIGH>; ++ }; ++ ++ gpio-keys { ++ compatible = "gpio-keys"; ++ ++ checkstop { ++ label = "checkstop"; ++ gpios = <&gpio ASPEED_GPIO(P, 5) GPIO_ACTIVE_LOW>; ++ linux,code = ; ++ }; ++ ++ ps0-presence { ++ label = "ps0-presence"; ++ gpios = <&gpio ASPEED_GPIO(I, 0) GPIO_ACTIVE_LOW>; ++ linux,code = ; ++ }; ++ ++ ps1-presence { ++ label = "ps1-presence"; ++ gpios = <&gpio ASPEED_GPIO(I, 1) GPIO_ACTIVE_LOW>; ++ linux,code = ; ++ }; ++ ++ ps2-presence { ++ label = "ps2-presence"; ++ gpios = <&gpio ASPEED_GPIO(I, 2) GPIO_ACTIVE_LOW>; ++ linux,code = ; ++ }; ++ ++ ps3-presence { ++ label = "ps3-presence"; ++ gpios = <&gpio ASPEED_GPIO(I, 3) GPIO_ACTIVE_LOW>; ++ linux,code = ; ++ }; ++ ++ ps4-presence { ++ label = "ps4-presence"; ++ gpios = <&gpio ASPEED_GPIO(I, 4) GPIO_ACTIVE_LOW>; ++ linux,code = ; ++ }; ++ ++ ps5-presence { ++ label = "ps5-presence"; ++ gpios = <&gpio ASPEED_GPIO(I, 5) GPIO_ACTIVE_LOW>; ++ linux,code = ; ++ }; ++ }; ++}; ++ ++&fmc { ++ status = "okay"; ++ flash@0 { ++ status = "okay"; ++ m25p,fast-read; ++ label = "bmc"; ++ spi-max-frequency = <50000000>; ++#include "openbmc-flash-layout.dtsi" ++ }; ++}; ++ ++&spi { ++ status = "okay"; ++ pinctrl-names = "default"; ++ pinctrl-0 = <&pinctrl_spi1debug_default>; ++ ++ flash@0 { ++ status = "okay"; ++ m25p,fast-read; ++ spi-max-frequency = <50000000>; ++ label = "pnor"; ++ }; ++}; ++ ++&pinctrl { ++ pinctrl-names = "default"; ++ pinctrl-0 = <&pinctrl_flbusy_default &pinctrl_flwp_default ++ ++ &pinctrl_vgahs_default &pinctrl_vgavs_default ++ &pinctrl_ddcclk_default &pinctrl_ddcdat_default>; ++}; ++ ++&uart1 { ++ /* Rear RS-232 connector */ ++ status = "okay"; ++ ++ pinctrl-names = "default"; ++ pinctrl-0 = <&pinctrl_txd1_default ++ &pinctrl_rxd1_default ++ &pinctrl_nrts1_default ++ &pinctrl_ndtr1_default ++ &pinctrl_ndsr1_default ++ &pinctrl_ncts1_default ++ &pinctrl_ndcd1_default ++ &pinctrl_nri1_default>; ++}; ++ ++&uart5 { ++ status = "okay"; ++}; ++ ++&mac1 { ++ status = "okay"; ++ no-hw-checksum; ++ pinctrl-names = "default"; ++ pinctrl-0 = <&pinctrl_rgmii2_default &pinctrl_mdio2_default>; ++}; ++ ++&i2c0 { ++ status = "okay"; ++ ++ eeprom@50 { ++ compatible = "atmel,24c256"; ++ reg = <0x50>; ++ pagesize = <64>; ++ }; ++ ++ rtc@68 { ++ compatible = "dallas,ds3231"; ++ reg = <0x68>; ++ }; ++}; ++ ++&i2c1 { ++ status = "okay"; ++}; ++ ++&i2c2 { ++ status = "okay"; ++ ++ tmp423@4c { ++ compatible = "ti,tmp423"; ++ reg = <0x4c>; ++ }; ++}; ++ ++&i2c3 { ++ status = "okay"; ++ ++ occ-hwmon@50 { ++ compatible = "ibm,p8-occ-hwmon"; ++ reg = <0x50>; ++ }; ++}; ++ ++&i2c4 { ++ status = "okay"; ++}; ++ ++&i2c5 { ++ status = "okay"; ++}; ++ ++&i2c6 { ++ status = "okay"; ++}; ++ ++&i2c7 { ++ status = "okay"; ++}; ++ ++&vuart { ++ status = "okay"; ++}; ++ ++&ibt { ++ status = "okay"; ++}; ++ ++&lpc_ctrl { ++ status = "okay"; ++ memory-region = <&flash_memory>; ++ flash = <&spi>; ++}; ++ ++&gpio { ++ pin_func_mode0 { ++ gpio-hog; ++ gpios = ; ++ output-low; ++ line-name = "func_mode0"; ++ }; ++ ++ pin_func_mode1 { ++ gpio-hog; ++ gpios = ; ++ output-low; ++ line-name = "func_mode1"; ++ }; ++ ++ pin_func_mode2 { ++ gpio-hog; ++ gpios = ; ++ output-low; ++ line-name = "func_mode2"; ++ }; ++ ++ pin_gpio_a0 { ++ gpio-hog; ++ gpios = ; ++ input; ++ line-name = "BMC_FAN_RESERVED_N"; ++ }; ++ ++ pin_gpio_a1 { ++ gpio-hog; ++ gpios = ; ++ output-high; ++ line-name = "APSS_WDT_N"; ++ }; ++ ++ pin_gpio_b1 { ++ gpio-hog; ++ gpios = ; ++ output-high; ++ line-name = "APSS_BOOT_MODE"; ++ }; ++ ++ pin_gpio_b2 { ++ gpio-hog; ++ gpios = ; ++ output-high; ++ line-name = "APSS_RESET_N"; ++ }; ++ ++ pin_gpio_b7 { ++ gpio-hog; ++ gpios = ; ++ output-high; ++ line-name = "SPIVID_STBY_RESET_N"; ++ }; ++ ++ pin_gpio_d1 { ++ gpio-hog; ++ gpios = ; ++ output-high; ++ line-name = "BMC_POWER_UP"; ++ }; ++ ++ pin_gpio_f1 { ++ gpio-hog; ++ gpios = ; ++ input; ++ line-name = "BMC_BATTERY_TEST"; ++ }; ++ ++ pin_gpio_f4 { ++ gpio-hog; ++ gpios = ; ++ input; ++ line-name = "AST_HW_FAULT_N"; ++ }; ++ ++ pin_gpio_f5 { ++ gpio-hog; ++ gpios = ; ++ input; ++ line-name = "AST_SYS_FAULT_N"; ++ }; ++ ++ pin_gpio_f7 { ++ gpio-hog; ++ gpios = ; ++ output-high; ++ line-name = "BMC_FULL_SPEED_N"; ++ }; ++ ++ pin_gpio_g3 { ++ gpio-hog; ++ gpios = ; ++ output-high; ++ line-name = "BMC_FAN_ERROR_N"; ++ }; ++ ++ pin_gpio_g4 { ++ gpio-hog; ++ gpios = ; ++ input; ++ line-name = "BMC_WDT_RST1_P"; ++ }; ++ ++ pin_gpio_g5 { ++ gpio-hog; ++ gpios = ; ++ input; ++ line-name = "BMC_WDT_RST2_P"; ++ }; ++ ++ pin_gpio_h0 { ++ gpio-hog; ++ gpios = ; ++ input; ++ line-name = "PE_SLOT_TEST_EN_N"; ++ }; ++ ++ pin_gpio_h1 { ++ gpio-hog; ++ gpios = ; ++ input; ++ line-name = "BMC_RTCRST_N"; ++ }; ++ ++ pin_gpio_h2 { ++ gpio-hog; ++ gpios = ; ++ output-high; ++ line-name = "SYS_PWROK_BMC"; ++ }; ++ ++ pin_gpio_h7 { ++ gpio-hog; ++ gpios = ; ++ output-high; ++ line-name = "BMC_TPM_INT_N"; ++ }; ++ ++}; ++ ++&fsi { ++ cfam@0,0 { ++ reg = <0 0>; ++ #address-cells = <1>; ++ #size-cells = <1>; ++ chip-id = <0>; ++ ++ scom@1000 { ++ compatible = "ibm,fsi2pib"; ++ reg = <0x1000 0x400>; ++ }; ++ ++ fsi_hub0: hub@3400 { ++ compatible = "ibm,fsi-master-hub"; ++ reg = <0x3400 0x400>; ++ #address-cells = <2>; ++ #size-cells = <0>; ++ no-scan-on-init; ++ }; ++ }; ++}; +-- +2.17.1 + diff --git a/Contrib-Inspur/openbmc/meta-inspur/meta-i9000/recipes-kernel/linux/linux-aspeed/i9000.cfg b/Contrib-Inspur/openbmc/meta-inspur/meta-i9000/recipes-kernel/linux/linux-aspeed/i9000.cfg new file mode 100644 index 00000000..5bf0ab86 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-inspur/meta-i9000/recipes-kernel/linux/linux-aspeed/i9000.cfg @@ -0,0 +1,9 @@ +CONFIG_EEPROM_AT24=y +CONFIG_SENSORS_TMP421=y +CONFIG_VLAN_8021Q=y +CONFIG_NET_NCSI=y +CONFIG_FTGMAC100=y +CONFIG_NET_VENDOR_INTEL=y +CONFIG_REALTEK_PHY=y +CONFIG_NETDEVICES=y +CONFIG_NETCONSOLE=y diff --git a/Contrib-Inspur/openbmc/meta-inspur/meta-i9000/recipes-kernel/linux/linux-aspeed_%.bbappend b/Contrib-Inspur/openbmc/meta-inspur/meta-i9000/recipes-kernel/linux/linux-aspeed_%.bbappend new file mode 100644 index 00000000..55e2b0c0 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-inspur/meta-i9000/recipes-kernel/linux/linux-aspeed_%.bbappend @@ -0,0 +1,4 @@ +FILESEXTRAPATHS_prepend_i9000 := "${THISDIR}/${PN}:" +SRC_URI += "file://i9000.cfg \ + file://0001-Add-i9000-dts-file.patch \ + " diff --git a/Contrib-Inspur/openbmc/meta-inspur/meta-i9000/recipes-phosphor/bmcweb/bmcweb_%.bbappend b/Contrib-Inspur/openbmc/meta-inspur/meta-i9000/recipes-phosphor/bmcweb/bmcweb_%.bbappend new file mode 100644 index 00000000..964e19a5 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-inspur/meta-i9000/recipes-phosphor/bmcweb/bmcweb_%.bbappend @@ -0,0 +1,11 @@ +FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:" +PV = "1.0" +SRC_URI = "git://github.com/inspur-bmc/ocp-i9000-bmcweb;protocol=https" +SRCREV = "f3cc7255951cbf745b1bbb2c917e7af149466c27" +S = "${WORKDIR}/build" +LICENSE = "CLOSED" +DEPENDS += "libevdev" +EXTRA_OECMAKE_append = " \ + -DBMCWEB_ENABLE_REDFISH_RMC=ON \ + -DBMCWEB_ENABLE_REDFISH_BMC_JOURNAL=ON \ +" diff --git a/Contrib-Inspur/openbmc/meta-inspur/meta-i9000/recipes-phosphor/ipmi/phosphor-ipmi-config.bbappend b/Contrib-Inspur/openbmc/meta-inspur/meta-i9000/recipes-phosphor/ipmi/phosphor-ipmi-config.bbappend new file mode 100644 index 00000000..16e91b82 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-inspur/meta-i9000/recipes-phosphor/ipmi/phosphor-ipmi-config.bbappend @@ -0,0 +1 @@ +FILESEXTRAPATHS_prepend_i9000 := "${THISDIR}/${PN}:" diff --git a/Contrib-Inspur/openbmc/meta-inspur/meta-i9000/recipes-phosphor/ipmi/phosphor-ipmi-config/channel_config.json b/Contrib-Inspur/openbmc/meta-inspur/meta-i9000/recipes-phosphor/ipmi/phosphor-ipmi-config/channel_config.json new file mode 100644 index 00000000..2e80d530 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-inspur/meta-i9000/recipes-phosphor/ipmi/phosphor-ipmi-config/channel_config.json @@ -0,0 +1,36 @@ +{ + "0" : { + "name" : "IPMB", + "is_valid" : true, + "active_sessions" : 0, + "max_transfer_size" : 256, + "channel_info" : { + "medium_type" : "ipmb", + "protocol_type" : "ipmb-1.0", + "session_supported" : "session-less", + "is_ipmi" : true + } + }, + "1" : { + "name" : "eth0", + "is_valid" : true, + "active_sessions" : 0, + "channel_info" : { + "medium_type" : "lan-802.3", + "protocol_type" : "ipmb-1.0", + "session_supported" : "multi-session", + "is_ipmi" : true + } + }, + "2" : { + "name" : "eth1", + "is_valid" : true, + "active_sessions" : 0, + "channel_info" : { + "medium_type" : "lan-802.3", + "protocol_type" : "ipmb-1.0", + "session_supported" : "multi-session", + "is_ipmi" : true + } + }, +} diff --git a/Contrib-Inspur/openbmc/meta-inspur/meta-i9000/recipes-phosphor/sensors/phosphor-hwmon/obmc/hwmon/ahb/apb/bus@1e78a000/i2c-bus@1c0/tmp112@48.conf b/Contrib-Inspur/openbmc/meta-inspur/meta-i9000/recipes-phosphor/sensors/phosphor-hwmon/obmc/hwmon/ahb/apb/bus@1e78a000/i2c-bus@1c0/tmp112@48.conf new file mode 100644 index 00000000..eebfaedf --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-inspur/meta-i9000/recipes-phosphor/sensors/phosphor-hwmon/obmc/hwmon/ahb/apb/bus@1e78a000/i2c-bus@1c0/tmp112@48.conf @@ -0,0 +1,5 @@ +LABEL_temp1 = "inlet" +WARNHI_temp1 = "60000" +WARNLO_temp1 = "0" +CRITHI_temp1 = "70000" +CRITLO_temp1 = "0" diff --git a/Contrib-Inspur/openbmc/meta-inspur/meta-i9000/recipes-phosphor/sensors/phosphor-hwmon/obmc/hwmon/ahb/apb/bus@1e78a000/i2c-bus@1c0/tmp421@4e.conf b/Contrib-Inspur/openbmc/meta-inspur/meta-i9000/recipes-phosphor/sensors/phosphor-hwmon/obmc/hwmon/ahb/apb/bus@1e78a000/i2c-bus@1c0/tmp421@4e.conf new file mode 100644 index 00000000..f2bf06d5 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-inspur/meta-i9000/recipes-phosphor/sensors/phosphor-hwmon/obmc/hwmon/ahb/apb/bus@1e78a000/i2c-bus@1c0/tmp421@4e.conf @@ -0,0 +1,7 @@ +LABEL_temp1 = "outlet" +CRITLO_temp1 = "0" +CRITHI_temp1 = "100000" + +LABEL_temp2 = "outlet2" +CRITLO_temp2 = "0" +CRITHI_temp2 = "100000" diff --git a/Contrib-Inspur/openbmc/meta-inspur/meta-i9000/recipes-phosphor/sensors/phosphor-hwmon/obmc/hwmon/ahb/apb/bus@1e78a000/i2c-bus@300/adm1278@11.conf b/Contrib-Inspur/openbmc/meta-inspur/meta-i9000/recipes-phosphor/sensors/phosphor-hwmon/obmc/hwmon/ahb/apb/bus@1e78a000/i2c-bus@300/adm1278@11.conf new file mode 100644 index 00000000..b6da9d7c --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-inspur/meta-i9000/recipes-phosphor/sensors/phosphor-hwmon/obmc/hwmon/ahb/apb/bus@1e78a000/i2c-bus@300/adm1278@11.conf @@ -0,0 +1,4 @@ +LABEL_in1 = "vin" +LABEL_in2 = "vout" +LABEL_curr1 = "iout1" +LABEL_power1 = "pin" diff --git a/Contrib-Inspur/openbmc/meta-inspur/meta-i9000/recipes-phosphor/sensors/phosphor-hwmon/obmc/hwmon/ahb/apb/pwm-tacho-controller@1e786000.conf b/Contrib-Inspur/openbmc/meta-inspur/meta-i9000/recipes-phosphor/sensors/phosphor-hwmon/obmc/hwmon/ahb/apb/pwm-tacho-controller@1e786000.conf new file mode 100644 index 00000000..1523539b --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-inspur/meta-i9000/recipes-phosphor/sensors/phosphor-hwmon/obmc/hwmon/ahb/apb/pwm-tacho-controller@1e786000.conf @@ -0,0 +1,9 @@ +LABEL_fan1 = "fan0" +LABEL_fan2 = "fan1" +LABEL_fan3 = "fan2" +LABEL_fan4 = "fan3" + +PWM_TARGET_fan1 = "1" +PWM_TARGET_fan2 = "1" +PWM_TARGET_fan3 = "2" +PWM_TARGET_fan4 = "2" diff --git a/Contrib-Inspur/openbmc/meta-inspur/meta-i9000/recipes-phosphor/sensors/phosphor-hwmon/obmc/hwmon/iio-hwmon.conf b/Contrib-Inspur/openbmc/meta-inspur/meta-i9000/recipes-phosphor/sensors/phosphor-hwmon/obmc/hwmon/iio-hwmon.conf new file mode 100644 index 00000000..fba435e9 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-inspur/meta-i9000/recipes-phosphor/sensors/phosphor-hwmon/obmc/hwmon/iio-hwmon.conf @@ -0,0 +1,8 @@ +LABEL_in1="P3V3" +GAIN_in1 = 2.0 +LABEL_in2="P5V" +GAIN_in2 = 3.7 +LABEL_in3="P12V_STBY" +GAIN_in3 = 9.2 +LABEL_in4="P1V05" +LABEL_in5="PVNN" diff --git a/Contrib-Inspur/openbmc/meta-inspur/meta-i9000/recipes-phosphor/sensors/phosphor-hwmon_%.bbappend b/Contrib-Inspur/openbmc/meta-inspur/meta-i9000/recipes-phosphor/sensors/phosphor-hwmon_%.bbappend new file mode 100644 index 00000000..67c92a46 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-inspur/meta-i9000/recipes-phosphor/sensors/phosphor-hwmon_%.bbappend @@ -0,0 +1,19 @@ +FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:" + +EXTRA_OECONF_append_openrmc= " --enable-negative-errno-on-fail" + +CHIPS = " \ + bus@1e78a000/i2c-bus@1c0/tmp112@48 \ + bus@1e78a000/i2c-bus@1c0/tmp421@4e \ + bus@1e78a000/i2c-bus@300/adm1278@11 \ + pwm-tacho-controller@1e786000 \ + " +ITEMSFMT = "ahb/apb/{0}.conf" + +ITEMS = "${@compose_list(d, 'ITEMSFMT', 'CHIPS')}" + +ITEMS += "iio-hwmon.conf" + + +ENVS = "obmc/hwmon/{0}" +SYSTEMD_ENVIRONMENT_FILE_${PN} += "${@compose_list(d, 'ENVS', 'ITEMS')}" diff --git a/Contrib-Inspur/openbmc/meta-inspur/meta-i9000/recipes-phosphor/webui/phosphor-webui_%.bbappend b/Contrib-Inspur/openbmc/meta-inspur/meta-i9000/recipes-phosphor/webui/phosphor-webui_%.bbappend new file mode 100644 index 00000000..f7c4db77 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-inspur/meta-i9000/recipes-phosphor/webui/phosphor-webui_%.bbappend @@ -0,0 +1,4 @@ +FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:" + +SRC_URI = "git://github.com/inspur-bmc/ocp-i9000-webui;protocol=https" +SRCREV = "87ae9c70f544573f5e7f2f46db3618d3c5c31547" diff --git a/Contrib-Inspur/openbmc/meta-inspur/meta-on5263m5/conf/layer.conf b/Contrib-Inspur/openbmc/meta-inspur/meta-on5263m5/conf/layer.conf index b49d300b..b2d39351 100644 --- a/Contrib-Inspur/openbmc/meta-inspur/meta-on5263m5/conf/layer.conf +++ b/Contrib-Inspur/openbmc/meta-inspur/meta-on5263m5/conf/layer.conf @@ -7,4 +7,4 @@ BBFILES += "${LAYERDIR}/recipes-*/*/*.bb \ BBFILE_COLLECTIONS += "on5263m5-layer" BBFILE_PATTERN_on5263m5-layer = "^${LAYERDIR}/" -LAYERSERIES_COMPAT_on5263m5-layer = "thud warrior" +LAYERSERIES_COMPAT_on5263m5-layer = "warrior zeus" diff --git a/Contrib-Inspur/openbmc/meta-intel/conf/layer.conf b/Contrib-Inspur/openbmc/meta-intel/conf/layer.conf index 99a6df06..c753477a 100644 --- a/Contrib-Inspur/openbmc/meta-intel/conf/layer.conf +++ b/Contrib-Inspur/openbmc/meta-intel/conf/layer.conf @@ -6,9 +6,7 @@ BBFILES += "${LAYERDIR}/meta-common/recipes-*/*/*.bb \ ${LAYERDIR}/meta-common/recipes-*/*/*.bbappend" BBFILE_COLLECTIONS += "intel" -BBFILE_PATTERN_intel = "" +BBFILE_PATTERN_intel = "^${LAYERDIR}/" LAYERVERSION_intel = "1" -LAYERSERIES_COMPAT_intel = "thud warrior" - -# Provide a variable that points the base of the intel layer. -INTELBASE = '${@os.path.normpath("${LAYERDIR}/")}' +LAYERSERIES_COMPAT_intel = "warrior zeus" +LAYERDEPENDS_intel = "phosphor-layer" diff --git a/Contrib-Inspur/openbmc/meta-intel/conf/machine/include/intel.inc b/Contrib-Inspur/openbmc/meta-intel/conf/machine/include/intel.inc index db6b0c10..738d103e 100644 --- a/Contrib-Inspur/openbmc/meta-intel/conf/machine/include/intel.inc +++ b/Contrib-Inspur/openbmc/meta-intel/conf/machine/include/intel.inc @@ -19,3 +19,5 @@ PREFERRED_PROVIDER_virtual/obmc-host-ctl ?= "obmc-op-control-host" PREFERRED_PROVIDER_virtual/obmc-inventory-data ?= "${VIRTUAL-RUNTIME_skeleton_workbook}" PREFERRED_PROVIDER_virtual/obmc-host-ipmi-hw = "phosphor-ipmi-kcs" #PREFERRED_PROVIDER_virtual/obmc-gpio-monitor ?= "phosphor-gpio-monitor" + +OVERRIDES .= ":intel" diff --git a/Contrib-Inspur/openbmc/meta-intel/meta-common/recipes-core/systemd/obmc-targets.bbappend b/Contrib-Inspur/openbmc/meta-intel/meta-common/recipes-core/systemd/obmc-targets.bbappend index 3fe1c3f3..090b40e4 100644 --- a/Contrib-Inspur/openbmc/meta-intel/meta-common/recipes-core/systemd/obmc-targets.bbappend +++ b/Contrib-Inspur/openbmc/meta-intel/meta-common/recipes-core/systemd/obmc-targets.bbappend @@ -1,9 +1,9 @@ # Remove these files since they are provided by obmc-intel-targets -SYSTEMD_SERVICE_${PN}_remove += " obmc-host-start@.target" -SYSTEMD_SERVICE_${PN}_remove += " obmc-host-stop@.target" -SYSTEMD_SERVICE_${PN}_remove += " obmc-host-reboot@.target" -SYSTEMD_SERVICE_${PN}_remove += " obmc-host-startmin@.target" -SYSTEMD_SERVICE_${PN}_remove += " obmc-chassis-poweron@.target" -SYSTEMD_SERVICE_${PN}_remove += " obmc-chassis-poweroff@.target" -SYSTEMD_SERVICE_${PN}_remove += " obmc-chassis-hard-poweroff@.target" -SYSTEMD_SERVICE_${PN}_remove += " obmc-chassis-powerreset@.target" +SYSTEMD_SERVICE_${PN}_remove_intel += " obmc-host-start@.target" +SYSTEMD_SERVICE_${PN}_remove_intel += " obmc-host-stop@.target" +SYSTEMD_SERVICE_${PN}_remove_intel += " obmc-host-reboot@.target" +SYSTEMD_SERVICE_${PN}_remove_intel += " obmc-host-startmin@.target" +SYSTEMD_SERVICE_${PN}_remove_intel += " obmc-chassis-poweron@.target" +SYSTEMD_SERVICE_${PN}_remove_intel += " obmc-chassis-poweroff@.target" +SYSTEMD_SERVICE_${PN}_remove_intel += " obmc-chassis-hard-poweroff@.target" +SYSTEMD_SERVICE_${PN}_remove_intel += " obmc-chassis-powerreset@.target" diff --git a/Contrib-Inspur/openbmc/meta-intel/meta-common/recipes-extended/rsyslog/rsyslog/rotate-event-logs.service b/Contrib-Inspur/openbmc/meta-intel/meta-common/recipes-extended/rsyslog/rsyslog/rotate-event-logs.service new file mode 100644 index 00000000..fdeefd41 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-intel/meta-common/recipes-extended/rsyslog/rsyslog/rotate-event-logs.service @@ -0,0 +1,9 @@ +[Unit] +Description=Rotates the event logs + +[Service] +Type=oneshot +ExecStart=/usr/sbin/logrotate /etc/logrotate.d/logrotate.rsyslog + +[Install] +WantedBy=multi-user.target diff --git a/Contrib-Inspur/openbmc/meta-intel/meta-common/recipes-extended/rsyslog/rsyslog/rotate-event-logs.timer b/Contrib-Inspur/openbmc/meta-intel/meta-common/recipes-extended/rsyslog/rsyslog/rotate-event-logs.timer new file mode 100644 index 00000000..ae1185e4 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-intel/meta-common/recipes-extended/rsyslog/rsyslog/rotate-event-logs.timer @@ -0,0 +1,9 @@ +[Unit] +Description=Run rotate-event-logs.service every minute + +[Timer] +OnActiveSec=60 +OnUnitActiveSec=60 + +[Install] +WantedBy=timers.target diff --git a/Contrib-Inspur/openbmc/meta-intel/meta-common/recipes-extended/rsyslog/rsyslog/rsyslog-override.conf b/Contrib-Inspur/openbmc/meta-intel/meta-common/recipes-extended/rsyslog/rsyslog/rsyslog-override.conf new file mode 100644 index 00000000..14bcc078 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-intel/meta-common/recipes-extended/rsyslog/rsyslog/rsyslog-override.conf @@ -0,0 +1,2 @@ +[Service] +ExecReload=/bin/kill -HUP $MAINPID diff --git a/Contrib-Inspur/openbmc/meta-intel/meta-common/recipes-extended/rsyslog/rsyslog/rsyslog.conf b/Contrib-Inspur/openbmc/meta-intel/meta-common/recipes-extended/rsyslog/rsyslog/rsyslog.conf new file mode 100644 index 00000000..46a287ee --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-intel/meta-common/recipes-extended/rsyslog/rsyslog/rsyslog.conf @@ -0,0 +1,79 @@ +# if you experience problems, check +# http://www.rsyslog.com/troubleshoot for assistance + +# rsyslog v3: load input modules +# If you do not load inputs, nothing happens! +# You may need to set the module load path if modules are not found. +# +# Ported from debian's sysklogd.conf + +# Journal-style logging +# Limit to no more than 2000 entries in one minute and enable the +# journal workaround to avoid duplicate entries +module(load="imjournal" StateFile="/var/log/state" + RateLimit.Interval="60" + RateLimit.Burst="2000") + +# Template for IPMI SEL messages +# " ,,,[,,]" +template(name="IPMISELTemplate" type="list") { + property(name="timereported" dateFormat="rfc3339") + constant(value=" ") + property(name="$!IPMI_SEL_RECORD_ID") + constant(value=",") + property(name="$!IPMI_SEL_RECORD_TYPE") + constant(value=",") + property(name="$!IPMI_SEL_DATA") + constant(value=",") + property(name="$!IPMI_SEL_GENERATOR_ID") + constant(value=",") + property(name="$!IPMI_SEL_SENSOR_PATH") + constant(value=",") + property(name="$!IPMI_SEL_EVENT_DIR") + constant(value="\n") +} + +# Template for Redfish messages +# " ," +template(name="RedfishTemplate" type="list") { + property(name="timereported" dateFormat="rfc3339") + constant(value=" ") + property(name="$!REDFISH_MESSAGE_ID") + constant(value=",") + property(name="$!REDFISH_MESSAGE_ARGS") + constant(value="\n") +} + +# Template for Application Crashes +# " ," +template(name="CrashTemplate" type="list") { + property(name="timereported" dateFormat="rfc3339") + constant(value=" ") + constant(value="OpenBMC.0.1.ServiceFailure") + constant(value=",") + property(name="$!UNIT") + constant(value="\n") +} + + +# If the journal entry has the IPMI SEL MESSAGE_ID, save as IPMI SEL +# The MESSAGE_ID string is generated using journalctl and must match the +# MESSAGE_ID used in IPMI to correctly find the SEL entries. +if ($!MESSAGE_ID == "b370836ccf2f4850ac5bee185b77893a") then { + action(type="omfile" file="/var/log/ipmi_sel" template="IPMISELTemplate") +} + +# If the journal entry has a Redfish MessageId, save as a Redfish event +if ($!REDFISH_MESSAGE_ID != "") then { + action(type="omfile" file="/var/log/redfish" template="RedfishTemplate") +} + +# If the journal entry has a Exit Code, save as a Redfish event +if ($!EXIT_STATUS != "" and $!EXIT_STATUS != "0") then { + action(type="omfile" file="/var/log/redfish" template="CrashTemplate") +} + +# +# Include all config files in /etc/rsyslog.d/ +# +$IncludeConfig /etc/rsyslog.d/*.conf diff --git a/Contrib-Inspur/openbmc/meta-intel/meta-common/recipes-extended/rsyslog/rsyslog/rsyslog.logrotate b/Contrib-Inspur/openbmc/meta-intel/meta-common/recipes-extended/rsyslog/rsyslog/rsyslog.logrotate new file mode 100644 index 00000000..a6ba28d8 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-intel/meta-common/recipes-extended/rsyslog/rsyslog/rsyslog.logrotate @@ -0,0 +1,22 @@ +# /etc/logrotate.d/rsyslog - Ported from Debian + +# Keep up to four 64k files for ipmi_sel (256k total) +/var/log/ipmi_sel +{ + rotate 3 + size 64k + missingok + postrotate + systemctl reload rsyslog 2> /dev/null || true + endscript +} +# Keep up to four 64k files for redfish (256k total) +/var/log/redfish +{ + rotate 3 + size 64k + missingok + postrotate + systemctl reload rsyslog 2> /dev/null || true + endscript +} diff --git a/Contrib-Inspur/openbmc/meta-intel/meta-common/recipes-extended/rsyslog/rsyslog_%.bbappend b/Contrib-Inspur/openbmc/meta-intel/meta-common/recipes-extended/rsyslog/rsyslog_%.bbappend new file mode 100644 index 00000000..7e282804 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-intel/meta-common/recipes-extended/rsyslog/rsyslog_%.bbappend @@ -0,0 +1,23 @@ +FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:" + +SRC_URI += "file://rsyslog.conf \ + file://rsyslog.logrotate \ + file://rotate-event-logs.service \ + file://rotate-event-logs.timer \ + file://rsyslog-override.conf \ +" + +FILES_${PN} += "${systemd_system_unitdir}/rsyslog.service.d/rsyslog-override.conf" + +PACKAGECONFIG_append = " imjournal" + +do_install_append() { + install -m 0644 ${WORKDIR}/rotate-event-logs.service ${D}${systemd_system_unitdir} + install -m 0644 ${WORKDIR}/rotate-event-logs.timer ${D}${systemd_system_unitdir} + install -d ${D}${systemd_system_unitdir}/rsyslog.service.d + install -m 0644 ${WORKDIR}/rsyslog-override.conf \ + ${D}${systemd_system_unitdir}/rsyslog.service.d/rsyslog-override.conf + rm ${D}${sysconfdir}/rsyslog.d/imjournal.conf +} + +SYSTEMD_SERVICE_${PN} += " rotate-event-logs.service rotate-event-logs.timer" diff --git a/Contrib-Inspur/openbmc/meta-intel/meta-common/recipes-intel/chassis/x86-power-control_git.bb b/Contrib-Inspur/openbmc/meta-intel/meta-common/recipes-intel/chassis/x86-power-control_git.bb index b2d8a1f9..8a92d7fd 100755 --- a/Contrib-Inspur/openbmc/meta-intel/meta-common/recipes-intel/chassis/x86-power-control_git.bb +++ b/Contrib-Inspur/openbmc/meta-intel/meta-common/recipes-intel/chassis/x86-power-control_git.bb @@ -1,170 +1,24 @@ -SUMMARY = "Power Control service for Intel based platform" -DESCRIPTION = "Power Control service for Intel based platfrom" -PR = "r1" -PV = "1.0+git${SRCPV}" -LICENSE = "Apache-2.0" -LIC_FILES_CHKSUM = "file://LICENSE;md5=86d3f3a95c324c9479bd8986968f4327" - -S = "${WORKDIR}/git" -SRC_URI += "git://github.com/openbmc/x86-power-control.git" -SRCREV = "2c714052d62b1e8fdd19951bbd340ec41fd7ac5b" - -inherit cmake pkgconfig pythonnative systemd - -SYSTEMD_SERVICE_${PN} += "xyz.openbmc_project.Chassis.Control.Power@.service" - -# Force the standby target to run these services -SYSD_TGT = "multi-user.target" - -POWER_TMPL_CTRL = "xyz.openbmc_project.Chassis.Control.Power@.service" -#SYSD_TGT = "multi-user.target" -POWER_INSTFMT_CTRL = "xyz.openbmc_project.Chassis.Control.Power@{0}.service" -POWER_FMT_CTRL = "../${POWER_TMPL_CTRL}:${SYSD_TGT}.wants/${POWER_INSTFMT_CTRL}" -SYSTEMD_LINK_${PN} += "${@compose_list_zip(d, 'POWER_FMT_CTRL', 'OBMC_HOST_INSTANCES')}" - -SYSTEMD_SERVICE_${PN} += " \ - obmc-host-start@.target \ - obmc-host-startmin@.target \ - obmc-host-stop@.target \ - obmc-host-reboot@.target \ - obmc-chassis-poweroff@.target \ - obmc-chassis-poweron@.target \ - obmc-chassis-hard-poweroff@.target \ - obmc-host-soft-reboot@.target \ - obmc-host-warm-reset@.target \ - obmc-chassis-powerreset@.target \ - " - -RESET_TGTFMT = "obmc-chassis-powerreset@{0}.target" - -RESET_ON_TMPL = "op-reset-chassis-running@.service" -RESET_ON_INSTFMT = "op-reset-chassis-running@{0}.service" -RESET_ON_FMT = "../${RESET_ON_TMPL}:${RESET_TGTFMT}.requires/${RESET_ON_INSTFMT}" -SYSTEMD_SERVICE_${PN} += "${RESET_ON_TMPL}" -SYSTEMD_LINK_${PN} += "${@compose_list_zip(d, 'RESET_ON_FMT', 'OBMC_CHASSIS_INSTANCES')}" - -RESET_ON_CHASSIS_TMPL = "op-reset-chassis-on@.service" -RESET_ON_CHASSIS_INSTFMT = "op-reset-chassis-on@{0}.service" -RESET_ON_CHASSIS_FMT = "../${RESET_ON_CHASSIS_TMPL}:${RESET_TGTFMT}.requires/${RESET_ON_CHASSIS_INSTFMT}" -SYSTEMD_SERVICE_${PN} += "${RESET_ON_CHASSIS_TMPL}" -SYSTEMD_LINK_${PN} += "${@compose_list_zip(d, 'RESET_ON_CHASSIS_FMT', 'OBMC_CHASSIS_INSTANCES')}" - -# Force the standby target to run the chassis reset check target -RESET_TMPL_CTRL = "obmc-chassis-powerreset@.target" -SYSD_TGT = "multi-user.target" -RESET_INSTFMT_CTRL = "obmc-chassis-powerreset@{0}.target" -RESET_FMT_CTRL = "../${RESET_TMPL_CTRL}:${SYSD_TGT}.wants/${RESET_INSTFMT_CTRL}" -SYSTEMD_LINK_${PN} += "${@compose_list_zip(d, 'RESET_FMT_CTRL', 'OBMC_CHASSIS_INSTANCES')}" +SUMMARY = "Chassis Power Control service for Intel based platforms" +DESCRIPTION = "Chassis Power Control service for Intel based platforms" -START_TMPL = "intel-power-start@.service" -START_TGTFMT = "obmc-chassis-poweron@{0}.target" -START_INSTFMT = "intel-power-start@{0}.service" -START_FMT = "../${START_TMPL}:${START_TGTFMT}.requires/${START_INSTFMT}" -SYSTEMD_SERVICE_${PN} += "${START_TMPL}" +SRC_URI = "git://github.com/openbmc/x86-power-control.git;protocol=ssh" +SRCREV = "89f613129b112d7b4595410e99eac0db4e92bb8e" -STOP_TMPL = "intel-power-stop@.service" -STOP_TGTFMT = "obmc-chassis-poweroff@{0}.target" -STOP_INSTFMT = "intel-power-stop@{0}.service" -STOP_FMT = "../${STOP_TMPL}:${STOP_TGTFMT}.requires/${STOP_INSTFMT}" -SYSTEMD_SERVICE_${PN} += "${STOP_TMPL}" - -WARM_RESET_TMPL = "intel-power-warm-reset@.service" -WARM_RESET_TGTFMT = "obmc-host-warm-reset@{0}.target" -WARM_RESET_INSTFMT = "intel-power-warm-reset@{0}.service" -WARM_RESET_FMT = "../${WARM_RESET_TMPL}:${WARM_RESET_TGTFMT}.requires/${WARM_RESET_INSTFMT}" -SYSTEMD_SERVICE_${PN} += "${WARM_RESET_TMPL}" - -# Build up requires relationship for START_TGTFMT and STOP_TGTFMT -SYSTEMD_LINK_${PN} += "${@compose_list(d, 'START_FMT', 'OBMC_CHASSIS_INSTANCES')}" -SYSTEMD_LINK_${PN} += "${@compose_list(d, 'STOP_FMT', 'OBMC_CHASSIS_INSTANCES')}" -SYSTEMD_LINK_${PN} += "${@compose_list(d, 'WARM_RESET_FMT', 'OBMC_CHASSIS_INSTANCES')}" - -#The main control target requires these power targets -START_TMPL_CTRL = "obmc-chassis-poweron@.target" -START_TGTFMT_CTRL = "obmc-host-startmin@{0}.target" -START_INSTFMT_CTRL = "obmc-chassis-poweron@{0}.target" -START_FMT_CTRL = "../${START_TMPL_CTRL}:${START_TGTFMT_CTRL}.requires/${START_INSTFMT_CTRL}" -SYSTEMD_LINK_${PN} += "${@compose_list(d, 'START_FMT_CTRL', 'OBMC_CHASSIS_INSTANCES')}" - -# Chassis off requires host off -STOP_TMPL_CTRL = "obmc-host-stop@.target" -STOP_TGTFMT_CTRL = "obmc-chassis-poweroff@{0}.target" -STOP_INSTFMT_CTRL = "obmc-host-stop@{0}.target" -STOP_FMT_CTRL = "../${STOP_TMPL_CTRL}:${STOP_TGTFMT_CTRL}.requires/${STOP_INSTFMT_CTRL}" -SYSTEMD_LINK_${PN} += "${@compose_list(d, 'STOP_FMT_CTRL', 'OBMC_CHASSIS_INSTANCES')}" - -# Hard power off requires chassis off -HARD_OFF_TMPL_CTRL = "obmc-chassis-poweroff@.target" -HARD_OFF_TGTFMT_CTRL = "obmc-chassis-hard-poweroff@{0}.target" -HARD_OFF_INSTFMT_CTRL = "obmc-chassis-poweroff@{0}.target" -HARD_OFF_FMT_CTRL = "../${HARD_OFF_TMPL_CTRL}:${HARD_OFF_TGTFMT_CTRL}.requires/${HARD_OFF_INSTFMT_CTRL}" -SYSTEMD_LINK_${PN} += "${@compose_list_zip(d, 'HARD_OFF_FMT_CTRL', 'OBMC_CHASSIS_INSTANCES')}" - -# Host soft reboot to run the shutdown target -HOST_SHUTDOWN_TMPL = "obmc-host-shutdown@.target" -HOST_SOFT_REBOOT_TMPL = "obmc-host-soft-reboot@.target" -HOST_SOFT_REBOOT_TGTFMT = "obmc-host-soft-reboot@{0}.target" -HOST_SHUTDOWN_INSTFMT = "obmc-host-shutdown@{0}.target" -HOST_SOFT_REBOOT_FMT = "../${HOST_SHUTDOWN_TMPL}:${HOST_SOFT_REBOOT_TGTFMT}.requires/${HOST_SHUTDOWN_INSTFMT}" -SYSTEMD_LINK_${PN} += "${@compose_list_zip(d, 'HOST_SOFT_REBOOT_FMT', 'OBMC_HOST_INSTANCES')}" -# And also to call the host startmin service -HOST_SOFT_REBOOT_SVC = "phosphor-reboot-host@.service" -HOST_SOFT_REBOOT_SVC_INST = "phosphor-reboot-host@{0}.service" -HOST_SOFT_REBOOT_SVC_FMT = "../${HOST_SOFT_REBOOT_SVC}:${HOST_SOFT_REBOOT_TGTFMT}.requires/${HOST_SOFT_REBOOT_SVC_INST}" -SYSTEMD_LINK_${PN} += "${@compose_list_zip(d, 'HOST_SOFT_REBOOT_SVC_FMT', 'OBMC_HOST_INSTANCES')}" - -#Broadcast Host state -PRE_HOST_START_TMPL = "obmc-send-signal-pre-host-start@.service" -PRE_HOST_START_TGTFMT = "obmc-host-start-pre@{0}.target" -PRE_HOST_START_INSTFMT = "obmc-send-signal-pre-host-start@{0}.service" -PRE_HOST_START_FMT = "../${PRE_HOST_START_TMPL}:${PRE_HOST_START_TGTFMT}.requires/${PRE_HOST_START_INSTFMT}" -SYSTEMD_SERVICE_${PN} += "${PRE_HOST_START_TMPL}" -SYSTEMD_LINK_${PN} += "${@compose_list_zip(d, 'PRE_HOST_START_FMT', 'OBMC_HOST_INSTANCES')}" - -POST_HOST_START_TMPL = "obmc-send-signal-post-host-start@.service" -POST_HOST_START_TGTFMT = "obmc-host-started@{0}.target" -POST_HOST_START_INSTFMT = "obmc-send-signal-post-host-start@{0}.service" -POST_HOST_START_FMT = "../${POST_HOST_START_TMPL}:${POST_HOST_START_TGTFMT}.requires/${POST_HOST_START_INSTFMT}" -SYSTEMD_SERVICE_${PN} += "${POST_HOST_START_TMPL}" -SYSTEMD_LINK_${PN} += "${@compose_list_zip(d, 'POST_HOST_START_FMT', 'OBMC_HOST_INSTANCES')}" +PV = "1.0+git${SRCPV}" -HOST_STARTING_TMPL = "obmc-send-signal-host-starting@.service" -HOST_STARTING_TGTFMT = "obmc-host-starting@{0}.target" -HOST_STARTING_INSTFMT = "obmc-send-signal-host-starting@{0}.service" -HOST_STARTING_FMT = "../${HOST_STARTING_TMPL}:${HOST_STARTING_TGTFMT}.requires/${HOST_STARTING_INSTFMT}" -SYSTEMD_SERVICE_${PN} += "${HOST_STARTING_TMPL}" -SYSTEMD_LINK_${PN} += "${@compose_list_zip(d, 'HOST_STARTING_FMT', 'OBMC_HOST_INSTANCES')}" +S = "${WORKDIR}/git" -PRE_HOST_STOP_TMPL = "obmc-send-signal-pre-host-stop@.service" -PRE_HOST_STOP_TGTFMT = "obmc-host-stop-pre@{0}.target" -PRE_HOST_STOP_INSTFMT = "obmc-send-signal-pre-host-stop@{0}.service" -PRE_HOST_STOP_FMT = "../${PRE_HOST_STOP_TMPL}:${PRE_HOST_STOP_TGTFMT}.requires/${PRE_HOST_STOP_INSTFMT}" -SYSTEMD_SERVICE_${PN} += "${PRE_HOST_STOP_TMPL}" -SYSTEMD_LINK_${PN} += "${@compose_list_zip(d, 'PRE_HOST_STOP_FMT', 'OBMC_HOST_INSTANCES')}" +LICENSE = "Apache-2.0" +LIC_FILES_CHKSUM = "file://LICENSE;md5=86d3f3a95c324c9479bd8986968f4327" -POST_HOST_STOP_TMPL = "obmc-send-signal-post-host-stop@.service" -POST_HOST_STOP_TGTFMT = "obmc-host-stopped@{0}.target" -POST_HOST_STOP_INSTFMT = "obmc-send-signal-post-host-stop@{0}.service" -POST_HOST_STOP_FMT = "../${POST_HOST_STOP_TMPL}:${POST_HOST_STOP_TGTFMT}.requires/${POST_HOST_STOP_INSTFMT}" -SYSTEMD_SERVICE_${PN} += "${POST_HOST_STOP_TMPL}" -SYSTEMD_LINK_${PN} += "${@compose_list_zip(d, 'POST_HOST_STOP_FMT', 'OBMC_HOST_INSTANCES')}" +inherit cmake systemd -HOST_STOPPING_TMPL = "obmc-send-signal-host-stopping@.service" -HOST_STOPPING_TGTFMT = "obmc-host-stopping@{0}.target" -HOST_STOPPING_INSTFMT = "obmc-send-signal-host-stopping@{0}.service" -HOST_STOPPING_FMT = "../${HOST_STOPPING_TMPL}:${HOST_STOPPING_TGTFMT}.requires/${HOST_STOPPING_INSTFMT}" -SYSTEMD_SERVICE_${PN} += "${HOST_STOPPING_TMPL}" -SYSTEMD_LINK_${PN} += "${@compose_list_zip(d, 'HOST_STOPPING_FMT', 'OBMC_HOST_INSTANCES')}" +SYSTEMD_SERVICE_${PN} += "xyz.openbmc_project.Chassis.Control.Power.service" DEPENDS += " \ - autoconf-archive-native \ boost \ - systemd \ + i2c-tools \ + libgpiod \ sdbusplus \ - sdbusplus-native \ - phosphor-dbus-interfaces \ - phosphor-dbus-interfaces-native \ phosphor-logging \ - " - -EXTRA_OECMAKE = " -DENABLE_GTEST=OFF " + " diff --git a/Contrib-Inspur/openbmc/meta-intel/meta-common/recipes-intel/ipmi/intel-ipmi-oem_git.bb b/Contrib-Inspur/openbmc/meta-intel/meta-common/recipes-intel/ipmi/intel-ipmi-oem_git.bb index 29e021fa..dd3ad9f2 100755 --- a/Contrib-Inspur/openbmc/meta-intel/meta-common/recipes-intel/ipmi/intel-ipmi-oem_git.bb +++ b/Contrib-Inspur/openbmc/meta-intel/meta-common/recipes-intel/ipmi/intel-ipmi-oem_git.bb @@ -5,12 +5,12 @@ LICENSE = "Apache-2.0" LIC_FILES_CHKSUM = "file://LICENSE;md5=a6a4edad4aed50f39a66d098d74b265b" SRC_URI = "git://github.com/openbmc/intel-ipmi-oem" -SRCREV = "3104b3f4744970bccbec75078d938c0446746d47" +SRCREV = "963a95b6a331e922e0806adc3cb05397e3e278a4" S = "${WORKDIR}/git" PV = "0.1+git${SRCPV}" -DEPENDS = "boost phosphor-ipmi-host phosphor-logging systemd intel-dbus-interfaces" +DEPENDS = "boost phosphor-ipmi-host phosphor-logging systemd intel-dbus-interfaces libgpiod" inherit cmake obmc-phosphor-ipmiprovider-symlink diff --git a/Contrib-Inspur/openbmc/meta-intel/meta-common/recipes-intel/libtinyxml2/libtinyxml2_%.bbappend b/Contrib-Inspur/openbmc/meta-intel/meta-common/recipes-intel/libtinyxml2/libtinyxml2_%.bbappend deleted file mode 100644 index 60cfe5e9..00000000 --- a/Contrib-Inspur/openbmc/meta-intel/meta-common/recipes-intel/libtinyxml2/libtinyxml2_%.bbappend +++ /dev/null @@ -1,3 +0,0 @@ -# update libtinyxml2 to version 6.0.0 -SRCREV = "8c8293ba8969a46947606a93ff0cb5a083aab47a" -FILES_${PN}-dev += "${libdir}/cmake/tinyxml2/*" diff --git a/Contrib-Inspur/openbmc/meta-intel/meta-common/recipes-phosphor/dbus/intel-dbus-interfaces-mapper-config-native.bb b/Contrib-Inspur/openbmc/meta-intel/meta-common/recipes-phosphor/dbus/intel-dbus-interfaces-mapper-config-native.bb index ce95082c..0d1d016f 100644 --- a/Contrib-Inspur/openbmc/meta-intel/meta-common/recipes-phosphor/dbus/intel-dbus-interfaces-mapper-config-native.bb +++ b/Contrib-Inspur/openbmc/meta-intel/meta-common/recipes-phosphor/dbus/intel-dbus-interfaces-mapper-config-native.bb @@ -2,7 +2,7 @@ SUMMARY="Add /com/intel namespace to phosphor-mapper" DESCRIPTION="Add the /com/intel path namespace and \ com.intel interface prefix to the mapper watch list." LICENSE = "Apache-2.0" -LIC_FILES_CHKSUM = "file://${INTELBASE}/COPYING.apache-2.0;md5=34400b68072d710fecd0a2940a0d1658" +LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10" inherit phosphor-mapper inherit native diff --git a/Contrib-Inspur/openbmc/meta-intel/meta-common/recipes-phosphor/dbus/phosphor-mapper-config-native.bbappend b/Contrib-Inspur/openbmc/meta-intel/meta-common/recipes-phosphor/dbus/phosphor-mapper-config-native.bbappend index 43553187..ef991a58 100644 --- a/Contrib-Inspur/openbmc/meta-intel/meta-common/recipes-phosphor/dbus/phosphor-mapper-config-native.bbappend +++ b/Contrib-Inspur/openbmc/meta-intel/meta-common/recipes-phosphor/dbus/phosphor-mapper-config-native.bbappend @@ -1 +1 @@ -PHOSPHOR_MAPPER_CONFIGS_append = " intel-dbus-interfaces-mapper-config-native" +PHOSPHOR_MAPPER_CONFIGS_append_intel = " intel-dbus-interfaces-mapper-config-native" diff --git a/Contrib-Inspur/openbmc/meta-intel/meta-common/recipes-phosphor/fans/phosphor-pid-control_%.bbappend b/Contrib-Inspur/openbmc/meta-intel/meta-common/recipes-phosphor/fans/phosphor-pid-control_%.bbappend index 3e89746b..4521fe8f 100644 --- a/Contrib-Inspur/openbmc/meta-intel/meta-common/recipes-phosphor/fans/phosphor-pid-control_%.bbappend +++ b/Contrib-Inspur/openbmc/meta-intel/meta-common/recipes-phosphor/fans/phosphor-pid-control_%.bbappend @@ -1,5 +1,5 @@ -FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:" +FILESEXTRAPATHS_prepend_intel := "${THISDIR}/${PN}:" inherit obmc-phosphor-systemd -SYSTEMD_SERVICE_${PN} = "phosphor-pid-control.service" -EXTRA_OECONF = "--enable-configure-dbus=yes" +SYSTEMD_SERVICE_${PN}_intel = "phosphor-pid-control.service" +EXTRA_OECONF_intel = "--enable-configure-dbus=yes" diff --git a/Contrib-Inspur/openbmc/meta-intel/meta-common/recipes-phosphor/ipmi/phosphor-ipmi-host_%.bbappend b/Contrib-Inspur/openbmc/meta-intel/meta-common/recipes-phosphor/ipmi/phosphor-ipmi-host_%.bbappend index e5f63fbd..876567f9 100644 --- a/Contrib-Inspur/openbmc/meta-intel/meta-common/recipes-phosphor/ipmi/phosphor-ipmi-host_%.bbappend +++ b/Contrib-Inspur/openbmc/meta-intel/meta-common/recipes-phosphor/ipmi/phosphor-ipmi-host_%.bbappend @@ -1,4 +1,4 @@ -do_install_append(){ +do_install_append_intel(){ install -d ${D}${includedir}/phosphor-ipmi-host install -m 0644 -D ${S}/sensorhandler.hpp ${D}${includedir}/phosphor-ipmi-host install -m 0644 -D ${S}/selutility.hpp ${D}${includedir}/phosphor-ipmi-host diff --git a/Contrib-Inspur/openbmc/meta-intel/meta-common/recipes-phosphor/leds/intel-led-manager-config-native.bb b/Contrib-Inspur/openbmc/meta-intel/meta-common/recipes-phosphor/leds/intel-led-manager-config-native.bb index 8ef3a5df..20df1185 100644 --- a/Contrib-Inspur/openbmc/meta-intel/meta-common/recipes-phosphor/leds/intel-led-manager-config-native.bb +++ b/Contrib-Inspur/openbmc/meta-intel/meta-common/recipes-phosphor/leds/intel-led-manager-config-native.bb @@ -5,7 +5,7 @@ inherit native inherit obmc-phosphor-utils LICENSE = "Apache-2.0" -LIC_FILES_CHKSUM = "file://${INTELBASE}/COPYING.apache-2.0;md5=34400b68072d710fecd0a2940a0d1658" +LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10" PROVIDES += "virtual/phosphor-led-manager-config-native" diff --git a/Contrib-Inspur/openbmc/meta-intel/meta-common/recipes-phosphor/sel-logger/phosphor-sel-logger_%.bbappend b/Contrib-Inspur/openbmc/meta-intel/meta-common/recipes-phosphor/sel-logger/phosphor-sel-logger_%.bbappend index 4be8ddbd..3e769e17 100644 --- a/Contrib-Inspur/openbmc/meta-intel/meta-common/recipes-phosphor/sel-logger/phosphor-sel-logger_%.bbappend +++ b/Contrib-Inspur/openbmc/meta-intel/meta-common/recipes-phosphor/sel-logger/phosphor-sel-logger_%.bbappend @@ -1,2 +1,2 @@ # Enable threshold monitoring -EXTRA_OECMAKE += "-DSEL_LOGGER_MONITOR_THRESHOLD_EVENTS=ON" +EXTRA_OECMAKE_intel += "-DSEL_LOGGER_MONITOR_THRESHOLD_EVENTS=ON" diff --git a/Contrib-Inspur/openbmc/meta-intel/meta-common/recipes-phosphor/webui/phosphor-webui_%.bbappend b/Contrib-Inspur/openbmc/meta-intel/meta-common/recipes-phosphor/webui/phosphor-webui_%.bbappend index ff1bfdb0..590e9e62 100644 --- a/Contrib-Inspur/openbmc/meta-intel/meta-common/recipes-phosphor/webui/phosphor-webui_%.bbappend +++ b/Contrib-Inspur/openbmc/meta-intel/meta-common/recipes-phosphor/webui/phosphor-webui_%.bbappend @@ -1,8 +1,8 @@ -FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:" +FILESEXTRAPATHS_prepend_intel := "${THISDIR}/${PN}:" -SRC_URI_append = " file://config.json" +SRC_URI_append_intel = " file://config.json" -do_compile_prepend() { +do_compile_prepend_intel() { cp -r ${WORKDIR}/config.json ${S}/ } diff --git a/Contrib-Inspur/openbmc/meta-intel/meta-s2600wf/conf/bblayers.conf.sample b/Contrib-Inspur/openbmc/meta-intel/meta-s2600wf/conf/bblayers.conf.sample index 9bb77432..900caca7 100644 --- a/Contrib-Inspur/openbmc/meta-intel/meta-s2600wf/conf/bblayers.conf.sample +++ b/Contrib-Inspur/openbmc/meta-intel/meta-s2600wf/conf/bblayers.conf.sample @@ -15,7 +15,6 @@ BBLAYERS ?= " \ ##OEROOT##/meta-openembedded/meta-webserver \ ##OEROOT##/meta-phosphor \ ##OEROOT##/meta-aspeed \ - ##OEROOT##/meta-x86 \ ##OEROOT##/meta-intel \ ##OEROOT##/meta-intel/meta-s2600wf \ " diff --git a/Contrib-Inspur/openbmc/meta-intel/meta-s2600wf/conf/layer.conf b/Contrib-Inspur/openbmc/meta-intel/meta-s2600wf/conf/layer.conf index 3fb9534d..13dfe21f 100644 --- a/Contrib-Inspur/openbmc/meta-intel/meta-s2600wf/conf/layer.conf +++ b/Contrib-Inspur/openbmc/meta-intel/meta-s2600wf/conf/layer.conf @@ -8,4 +8,4 @@ BBFILES += "${LAYERDIR}/recipes-*/*/*.bb \ BBFILE_COLLECTIONS += "s2600wf" BBFILE_PATTERN_s2600wf = "" BBFILE_PRIORITY_s2600wf = "5" -LAYERSERIES_COMPAT_s2600wf = "thud warrior" +LAYERSERIES_COMPAT_s2600wf = "warrior zeus" diff --git a/Contrib-Inspur/openbmc/meta-intel/meta-s2600wf/recipes-phosphor/skeleton/obmc-libobmc-intf_%.bbappend b/Contrib-Inspur/openbmc/meta-intel/meta-s2600wf/recipes-phosphor/skeleton/obmc-libobmc-intf_%.bbappend index 72d991c7..410b21b4 100644 --- a/Contrib-Inspur/openbmc/meta-intel/meta-s2600wf/recipes-phosphor/skeleton/obmc-libobmc-intf_%.bbappend +++ b/Contrib-Inspur/openbmc/meta-intel/meta-s2600wf/recipes-phosphor/skeleton/obmc-libobmc-intf_%.bbappend @@ -1 +1 @@ -FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:" +FILESEXTRAPATHS_prepend_s2600wf := "${THISDIR}/${PN}:" diff --git a/Contrib-Inspur/openbmc/meta-inventec/conf/layer.conf b/Contrib-Inspur/openbmc/meta-inventec/conf/layer.conf index 3c284f8c..de22db1e 100644 --- a/Contrib-Inspur/openbmc/meta-inventec/conf/layer.conf +++ b/Contrib-Inspur/openbmc/meta-inventec/conf/layer.conf @@ -3,6 +3,3 @@ BBPATH .= ":${LAYERDIR}" BBFILE_COLLECTIONS += "inventec" BBFILE_PATTERN_inventec = "" - -# Provide a variable that points the base of the inventec layer. -INVENTECBASE = '${@os.path.normpath("${LAYERDIR}/")}' diff --git a/Contrib-Inspur/openbmc/meta-inventec/meta-lanyang/recipes-phosphor/chassis/avsbus-control.bb b/Contrib-Inspur/openbmc/meta-inventec/meta-lanyang/recipes-phosphor/chassis/avsbus-control.bb index 767da632..956a6237 100644 --- a/Contrib-Inspur/openbmc/meta-inventec/meta-lanyang/recipes-phosphor/chassis/avsbus-control.bb +++ b/Contrib-Inspur/openbmc/meta-inventec/meta-lanyang/recipes-phosphor/chassis/avsbus-control.bb @@ -2,7 +2,7 @@ SUMMARY = "Lanyang AVSBus control" DESCRIPTION = "Voltage regulator module (VRM) AVSBus control for Lanyang" PR = "r0" LICENSE = "Apache-2.0" -LIC_FILES_CHKSUM = "file://${INVENTECBASE}/COPYING.apache-2.0;md5=34400b68072d710fecd0a2940a0d1658" +LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10" inherit obmc-phosphor-systemd diff --git a/Contrib-Inspur/openbmc/meta-inventec/meta-lanyang/recipes-phosphor/ipmi/lanyang-ipmi-inventory-map-native.bb b/Contrib-Inspur/openbmc/meta-inventec/meta-lanyang/recipes-phosphor/ipmi/lanyang-ipmi-inventory-map-native.bb index b74f8f67..56e5dd25 100644 --- a/Contrib-Inspur/openbmc/meta-inventec/meta-lanyang/recipes-phosphor/ipmi/lanyang-ipmi-inventory-map-native.bb +++ b/Contrib-Inspur/openbmc/meta-inventec/meta-lanyang/recipes-phosphor/ipmi/lanyang-ipmi-inventory-map-native.bb @@ -1,7 +1,7 @@ SUMMARY = "Lanyang IPMI to DBus Inventory mapping." PR = "r1" LICENSE = "Apache-2.0" -LIC_FILES_CHKSUM = "file://${INVENTECBASE}/COPYING.apache-2.0;md5=34400b68072d710fecd0a2940a0d1658" +LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10" inherit native inherit phosphor-ipmi-fru diff --git a/Contrib-Inspur/openbmc/meta-inventec/meta-lanyang/recipes-phosphor/leds/lanyang-led-manager-config-native.bb b/Contrib-Inspur/openbmc/meta-inventec/meta-lanyang/recipes-phosphor/leds/lanyang-led-manager-config-native.bb index b4e05606..81c6731d 100644 --- a/Contrib-Inspur/openbmc/meta-inventec/meta-lanyang/recipes-phosphor/leds/lanyang-led-manager-config-native.bb +++ b/Contrib-Inspur/openbmc/meta-inventec/meta-lanyang/recipes-phosphor/leds/lanyang-led-manager-config-native.bb @@ -1,7 +1,7 @@ SUMMARY = "Phosphor LED Group Management for Lanyang" PR = "r1" LICENSE = "Apache-2.0" -LIC_FILES_CHKSUM = "file://${INVENTECBASE}/COPYING.apache-2.0;md5=34400b68072d710fecd0a2940a0d1658" +LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10" inherit native diff --git a/Contrib-Inspur/openbmc/meta-lenovo/MAINTAINERS b/Contrib-Inspur/openbmc/meta-lenovo/MAINTAINERS new file mode 100644 index 00000000..db50e298 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-lenovo/MAINTAINERS @@ -0,0 +1,46 @@ +How to use this list: + Find the most specific section entry (described below) that matches where + your change lives and add the reviewers (R) and maintainers (M) as + reviewers. You can use the same method to track down who knows a particular + code base best. + + Your change/query may span multiple entries; that is okay. + + If you do not find an entry that describes your request at all, someone + forgot to update this list; please at least file an issue or send an email + to a maintainer, but preferably you should just update this document. + +Description of section entries: + + Section entries are structured according to the following scheme: + + X: NAME + X: ... + . + . + . + + Where REPO_NAME is the name of the repository within the OpenBMC GitHub + organization; FILE_PATH is a file path within the repository, possibly with + wildcards; X is a tag of one of the following types: + + M: Denotes maintainer; has fields NAME ; + if omitted from an entry, assume one of the maintainers from the + MAINTAINERS entry. + R: Denotes reviewer; has fields NAME ; + these people are to be added as reviewers for a change matching the repo + path. + F: Denotes forked from an external repository; has fields URL. + + Line comments are to be denoted "# SOME COMMENT" (typical shell style + comment); it is important to follow the correct syntax and semantics as we + may want to use automated tools with this file in the future. + + A change cannot be added to an OpenBMC repository without a MAINTAINER's + approval; thus, a MAINTAINER should always be listed as a reviewer. + +START OF MAINTAINERS LIST +------------------------- + +M: Benjamin Fair +M: Lisa Liu diff --git a/Contrib-Inspur/openbmc/meta-lenovo/meta-hr855xg2/recipes-phosphor/ipmi/phosphor-ipmi-flash_%.bbappend b/Contrib-Inspur/openbmc/meta-lenovo/meta-hr855xg2/recipes-phosphor/ipmi/phosphor-ipmi-flash_%.bbappend index 229e26d6..58525066 100644 --- a/Contrib-Inspur/openbmc/meta-lenovo/meta-hr855xg2/recipes-phosphor/ipmi/phosphor-ipmi-flash_%.bbappend +++ b/Contrib-Inspur/openbmc/meta-lenovo/meta-hr855xg2/recipes-phosphor/ipmi/phosphor-ipmi-flash_%.bbappend @@ -1,5 +1,7 @@ #"Copyright (c) 2019-present Lenovo #Licensed under BSD-3, see COPYING.BSD file for details." -FILESEXTRAPATHS_prepend_hr855xg2 := "${THISDIR}/${PN}:" -EXTRA_OECONF_append_hr855xg2 = " --enable-static-layout --enable-lpc-bridge --enable-aspeed-lpc --enable-reboot-update MAPPED_ADDRESS=0x98000000" +PACKAGECONFIG_append_hr855xg2 = " static-bmc" +PACKAGECONFIG_append_hr855xg2 = " aspeed-lpc" +PACKAGECONFIG_append_hr855xg2 = " reboot-update" +IPMI_FLASH_BMC_ADDRESS_hr855xg2 = "0x98000000" diff --git a/Contrib-Inspur/openbmc/meta-nuvoton/MAINTAINERS b/Contrib-Inspur/openbmc/meta-nuvoton/MAINTAINERS new file mode 100644 index 00000000..3bc2ef64 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-nuvoton/MAINTAINERS @@ -0,0 +1,45 @@ +How to use this list: + Find the most specific section entry (described below) that matches where + your change lives and add the reviewers (R) and maintainers (M) as + reviewers. You can use the same method to track down who knows a particular + code base best. + + Your change/query may span multiple entries; that is okay. + + If you do not find an entry that describes your request at all, someone + forgot to update this list; please at least file an issue or send an email + to a maintainer, but preferably you should just update this document. + +Description of section entries: + + Section entries are structured according to the following scheme: + + X: NAME + X: ... + . + . + . + + Where REPO_NAME is the name of the repository within the OpenBMC GitHub + organization; FILE_PATH is a file path within the repository, possibly with + wildcards; X is a tag of one of the following types: + + M: Denotes maintainer; has fields NAME ; + if omitted from an entry, assume one of the maintainers from the + MAINTAINERS entry. + R: Denotes reviewer; has fields NAME ; + these people are to be added as reviewers for a change matching the repo + path. + F: Denotes forked from an external repository; has fields URL. + + Line comments are to be denoted "# SOME COMMENT" (typical shell style + comment); it is important to follow the correct syntax and semantics as we + may want to use automated tools with this file in the future. + + A change cannot be added to an OpenBMC repository without a MAINTAINER's + approval; thus, a MAINTAINER should always be listed as a reviewer. + +START OF MAINTAINERS LIST +------------------------- + +M: Benjamin Fair diff --git a/Contrib-Inspur/openbmc/meta-nuvoton/conf/layer.conf b/Contrib-Inspur/openbmc/meta-nuvoton/conf/layer.conf index a592301c..0ca32584 100644 --- a/Contrib-Inspur/openbmc/meta-nuvoton/conf/layer.conf +++ b/Contrib-Inspur/openbmc/meta-nuvoton/conf/layer.conf @@ -7,4 +7,4 @@ BBFILES += "${LAYERDIR}/recipes-*/*/*.bb \ BBFILE_COLLECTIONS += "nuvoton-layer" BBFILE_PATTERN_nuvoton-layer = "" LAYERVERSION_nuvoton-layer = "1" -LAYERSERIES_COMPAT_nuvoton-layer = "thud warrior" +LAYERSERIES_COMPAT_nuvoton-layer = "warrior zeus" diff --git a/Contrib-Inspur/openbmc/meta-nuvoton/recipes-bsp/images/files/BootBlockAndHeader_EB.xml b/Contrib-Inspur/openbmc/meta-nuvoton/recipes-bsp/images/files/BootBlockAndHeader_EB.xml deleted file mode 100644 index 03deb302..00000000 --- a/Contrib-Inspur/openbmc/meta-nuvoton/recipes-bsp/images/files/BootBlockAndHeader_EB.xml +++ /dev/null @@ -1,276 +0,0 @@ - - - - - - - - 0 - 0xFF - - - - - StartTag - - 0 - 0x8 - - 0x50 0x07 0x55 0xAA 0x54 0x4F 0x4F 0x42 - - - - - DestAddr - - 0x140 - 0x4 - - 0xFFFD5E00 - - - - - CodeSize - - 0x144 - 0x4 - - Poleg_bootblock.bin - - - - - Code - - 0x200 - Poleg_bootblock.bin - - Poleg_bootblock.bin - - - - - - FIU0_DRD_CFG_Set - - 0x108 - 0x4 - - 0x030011BB - - - - - FIU_Clk_Divider - - 0x10C - 0x1 - - 4 - - - - - Version - - 0x148 - 0x4 - - 0x0201 - - - - - BOARD_VENDOR - - 0x14C - 0x4 - - 100 - - - - - BOARD_TYPE - - 0x150 - 0x4 - - 0x02 - - - - - - MC_FREQ_IN_MHZ - - 0x11C - 0x2 - - 800 - - - - CPU_FREQ_IN_MHZ - - 0x154 - 0x2 - - 800 - - - - - MC_CONFIG - - 0x156 - 0x1 - - 0x00 - - - - - HOST_IF - - 0x157 - 0x1 - - 0x00 - - - - - SECURITY_LEVEL_T - - 0x15C - 0x1 - - 0xFF - - - - - SECURITY_REVOKE_KEYS - - 0x1D7 - 0x1 - - 0x00 - - - - - SECURITY_LOG - - 0x1D8 - 0x4 - - 0x090000 - - - - SECURITY_LOG_SIZE - - 0x1DC - 0x4 - - 0x3000 - - - - - - HOLE0 - - 0x1E0 - 0x4 - - 0x0A0000 - - - - HOLE0_SIZE - - 0x1E4 - 0x4 - - 0xF70000 - - - - - HOLE1 - - 0x1E8 - 0x4 - - 0 - - - - HOLE1_SIZE - - 0x1EC - 0x4 - - 0 - - - - - - HOLE2 - - 0x1F0 - 0x4 - - 0xFFFFFFFF - - - - HOLE2_SIZE - - 0x1F4 - 0x4 - - 0 - - - - - HOLE3 - - 0x1F8 - 0x4 - - 0 - - - - HOLE3_SIZE - - 0x1FC - 0x4 - - 0 - - - diff --git a/Contrib-Inspur/openbmc/meta-nuvoton/recipes-bsp/images/files/UbootHeader_EB.xml b/Contrib-Inspur/openbmc/meta-nuvoton/recipes-bsp/images/files/UbootHeader_EB.xml deleted file mode 100644 index 2e648599..00000000 --- a/Contrib-Inspur/openbmc/meta-nuvoton/recipes-bsp/images/files/UbootHeader_EB.xml +++ /dev/null @@ -1,194 +0,0 @@ - - - - - - - - 0 - 0xFF - - - - - StartTag - - 0 - 0x8 - - 0x55 0x42 0x4F 0x4F 0x54 0x42 0x4C 0x4B - - - - - DestAddr - - 0x140 - 0x4 - - 0x8000 - - - - - CodeSize - - 0x144 - 0x4 - - u-boot.bin - - - - - Code - - 0x200 - u-boot.bin - - u-boot.bin - - - - - - FIU0_DRD_CFG_Set - - 0x108 - 0x4 - - 0x030111BC - - - - - FIU0_Clk_Divider - - 0x10C - 0x1 - - 0 - - - - - fiu0_cs1_en - - 0x10D - 0x1 - - 0x0 - - - - - fiu0_cs2_en - - 0x10E - 0x1 - - 0x0 - - - - - fiu0_cs3_en - - 0x10F - 0x1 - - 0x0 - - - - - - FIU3_DRD_CFG_Set - - 0x110 - 0x4 - - 0x0 - - - - - - FIU3_DWR_CFG_Set - - 0x114 - 0x4 - - 0x0 - - - - - FIU3_Clk_Divider - - 0x118 - 0x1 - - 0x0 - - - - - - fiu3_cs1_en - - 0x119 - 0x1 - - 0x0 - - - - - fiu3_cs2_en - - 0x11A - 0x1 - - 0x0 - - - - - fiu3_cs3_en - - 0x11B - 0x1 - - 0x0 - - - - - Version - - 0x148 - 0x4 - - 0 - - - - - - FIU0_DWR_CFG_Set - - 0x14C - 0x4 - - 0x03001102 - - - - diff --git a/Contrib-Inspur/openbmc/meta-nuvoton/recipes-bsp/images/files/mergedBootBlockAndUboot.xml b/Contrib-Inspur/openbmc/meta-nuvoton/recipes-bsp/images/files/mergedBootBlockAndUboot.xml deleted file mode 100644 index 03529dca..00000000 --- a/Contrib-Inspur/openbmc/meta-nuvoton/recipes-bsp/images/files/mergedBootBlockAndUboot.xml +++ /dev/null @@ -1,35 +0,0 @@ - - - - - - - - 0 - 0xFF - - - - BootBlock - - 0 - Poleg_bootblock.bin.full - - Poleg_bootblock.bin.full - - - - u-boot - - Poleg_bootblock.bin.full - u-boot.bin.full - - u-boot.bin.full - - - diff --git a/Contrib-Inspur/openbmc/meta-nuvoton/recipes-bsp/images/npcm7xx-bingo-native.bb b/Contrib-Inspur/openbmc/meta-nuvoton/recipes-bsp/images/npcm7xx-bingo-native.bb deleted file mode 100644 index 1ce19433..00000000 --- a/Contrib-Inspur/openbmc/meta-nuvoton/recipes-bsp/images/npcm7xx-bingo-native.bb +++ /dev/null @@ -1,20 +0,0 @@ -LICENSE = "Apache-2.0" -LIC_FILES_CHKSUM = "file://LICENSE;md5=b234ee4d69f5fce4486a80fdaf4a4263" - -SRC_URI += "git://github.com/Nuvoton-Israel/bingo" -SRC_URI += "file://BootBlockAndHeader_EB.xml" -SRC_URI += "file://UbootHeader_EB.xml" -SRC_URI += "file://mergedBootBlockAndUboot.xml" - -SRCREV = "4f102ff7851da9fd11965857edd1b3046c187b7a" - -S = "${WORKDIR}/git" - -do_install () { - - install -d "${D}${bindir}" - install deliverables/linux/Release/bingo ${D}${bindir} - install ${WORKDIR}/*.xml ${D}${bindir} -} - -inherit native diff --git a/Contrib-Inspur/openbmc/meta-nuvoton/recipes-bsp/images/npcm7xx-bingo-native_git.bb b/Contrib-Inspur/openbmc/meta-nuvoton/recipes-bsp/images/npcm7xx-bingo-native_git.bb new file mode 100644 index 00000000..bff1c015 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-nuvoton/recipes-bsp/images/npcm7xx-bingo-native_git.bb @@ -0,0 +1,20 @@ +SUMMARY = "XML-based binary image generator" +DESCRIPTION = "XML-based binary image generator" +HOMEPAGE = "https://github.com/Nuvoton-Israel/bingo" +PR = "r1" +PV = "0.1+git${SRCPV}" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://LICENSE;md5=b234ee4d69f5fce4486a80fdaf4a4263" + +SRC_URI += "git://github.com/Nuvoton-Israel/bingo" +SRCREV = "4f102ff7851da9fd11965857edd1b3046c187b7a" + +S = "${WORKDIR}/git" + +do_install () { + + install -d "${D}${bindir}" + install deliverables/linux/Release/bingo ${D}${bindir} +} + +inherit native diff --git a/Contrib-Inspur/openbmc/meta-nuvoton/recipes-bsp/images/npcm7xx-bootblock.bb b/Contrib-Inspur/openbmc/meta-nuvoton/recipes-bsp/images/npcm7xx-bootblock.bb deleted file mode 100644 index 85b80708..00000000 --- a/Contrib-Inspur/openbmc/meta-nuvoton/recipes-bsp/images/npcm7xx-bootblock.bb +++ /dev/null @@ -1,19 +0,0 @@ -LICENSE = "CLOSED" -LIC_FILES_CHKSUM = "" - -SRCREV = "10.09.05" -FILENAME = "Poleg_bootblock.bin" - -SRC_URI = "git://github.com/Nuvoton-Israel/npcm7xx-bootblock;protocol=git" -SRC_URI[md5sum] = "cf8daa5f4636ed1ff952618e435af028" - -S = "${WORKDIR}/git" - -inherit deploy - -do_deploy () { - install -d ${DEPLOYDIR} - install -m 644 ${FILENAME} ${DEPLOYDIR}/ -} - -addtask deploy before do_build after do_compile diff --git a/Contrib-Inspur/openbmc/meta-nuvoton/recipes-bsp/images/npcm7xx-bootblock_10.10.09.bb b/Contrib-Inspur/openbmc/meta-nuvoton/recipes-bsp/images/npcm7xx-bootblock_10.10.09.bb new file mode 100644 index 00000000..22774cf6 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-nuvoton/recipes-bsp/images/npcm7xx-bootblock_10.10.09.bb @@ -0,0 +1,26 @@ +SUMMARY = "Primary bootloader for NPCM7XX (Poleg) devices" +DESCRIPTION = "Primary bootloader for NPCM7XX (Poleg) devices" +HOMEPAGE = "https://github.com/Nuvoton-Israel/npcm7xx-bootblock" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://LICENSE;md5=b234ee4d69f5fce4486a80fdaf4a4263" + +FILENAME = "Poleg_bootblock_${PV}.bin" + +S = "${WORKDIR}" + +SRCREV = "7bfef99f7a0354395519c4975f96d66cdda1fb67" +SRC_URI = " \ + https://raw.githubusercontent.com/Nuvoton-Israel/bootblock/${SRCREV}/LICENSE;name=lic \ + https://github.com/Nuvoton-Israel/bootblock/releases/download/BootBlock_${PV}/Poleg_bootblock_basic.bin;downloadfilename=${FILENAME};name=bin \ +" + +SRC_URI[lic.md5sum] = "b234ee4d69f5fce4486a80fdaf4a4263" +SRC_URI[bin.sha256sum] = "05f71da6ebb7798679fcffdcc928fbada8f941bd8e7a374ebc826131a0803e58" + +inherit deploy + +do_deploy () { + install -D -m 644 ${WORKDIR}/${FILENAME} ${DEPLOYDIR}/Poleg_bootblock.bin +} + +addtask deploy before do_build after do_compile diff --git a/Contrib-Inspur/openbmc/meta-nuvoton/recipes-bsp/images/npcm7xx-igps-native_02.01.12.bb b/Contrib-Inspur/openbmc/meta-nuvoton/recipes-bsp/images/npcm7xx-igps-native_02.01.12.bb new file mode 100644 index 00000000..c04d92a0 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-nuvoton/recipes-bsp/images/npcm7xx-igps-native_02.01.12.bb @@ -0,0 +1,25 @@ +SUMMARY = "Image Generation and Programming Scripts for NPCM7XX (Poleg) devices" +DESCRIPTION = "Image Generation and Programming Scripts for NPCM7XX (Poleg) devices" +HOMEPAGE = "https://github.com/Nuvoton-Israel/igps" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://LICENSE;md5=b234ee4d69f5fce4486a80fdaf4a4263" + +SRC_URI = " \ + git://github.com/Nuvoton-Israel/igps \ + file://0001-Adjust-paths-for-use-with-Bitbake.patch \ +" +# tag IGPS_02.01.12 +SRCREV = "2fb1a3b0d61164ed1157e27889a4ec2292cbc760" + +S = "${WORKDIR}/git" + +DEST = "${D}${datadir}/${BPN}" + +do_install() { + install -d ${DEST} + install ImageGeneration/references/BootBlockAndHeader_${IGPS_MACHINE}.xml ${DEST} + install ImageGeneration/references/UbootHeader_${IGPS_MACHINE}.xml ${DEST} + install ImageGeneration/inputs/mergedBootBlockAndUboot.xml ${DEST} +} + +inherit native diff --git a/Contrib-Inspur/openbmc/meta-nuvoton/recipes-bsp/images/npcm7xx-igps/0001-Adjust-paths-for-use-with-Bitbake.patch b/Contrib-Inspur/openbmc/meta-nuvoton/recipes-bsp/images/npcm7xx-igps/0001-Adjust-paths-for-use-with-Bitbake.patch new file mode 100644 index 00000000..118f1996 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-nuvoton/recipes-bsp/images/npcm7xx-igps/0001-Adjust-paths-for-use-with-Bitbake.patch @@ -0,0 +1,145 @@ +From 215a2d9660a929beae8bc420239467fc9e135b4f Mon Sep 17 00:00:00 2001 +From: Benjamin Fair +Date: Wed, 23 Oct 2019 14:23:08 -0700 +Subject: [PATCH] Adjust paths for use with Bitbake + +Signed-off-by: Benjamin Fair +--- + ImageGeneration/inputs/mergedBootBlockAndUboot.xml | 10 +++++----- + ImageGeneration/references/BootBlockAndHeader_EB.xml | 6 +++--- + .../references/BootBlockAndHeader_RunBMC.xml | 6 +++--- + ImageGeneration/references/UbootHeader_EB.xml | 6 +++--- + ImageGeneration/references/UbootHeader_RunBMC.xml | 6 +++--- + 5 files changed, 17 insertions(+), 17 deletions(-) + +diff --git a/ImageGeneration/inputs/mergedBootBlockAndUboot.xml b/ImageGeneration/inputs/mergedBootBlockAndUboot.xml +index d832f96..f4c7756 100644 +--- a/ImageGeneration/inputs/mergedBootBlockAndUboot.xml ++++ b/ImageGeneration/inputs/mergedBootBlockAndUboot.xml +@@ -18,18 +18,18 @@ + BootBlock + + 0 +- output_binaries/BootBlockAndHeader.bin ++ Poleg_bootblock.bin.full + +- output_binaries/BootBlockAndHeader.bin ++ Poleg_bootblock.bin.full + + + + u-boot + +- output_binaries/BootBlockAndHeader.bin +- output_binaries/UbootAndHeader.bin ++ Poleg_bootblock.bin.full ++ u-boot.bin.full + +- output_binaries/UbootAndHeader.bin ++ u-boot.bin.full + + + +diff --git a/ImageGeneration/references/BootBlockAndHeader_EB.xml b/ImageGeneration/references/BootBlockAndHeader_EB.xml +index 775534f..157535d 100644 +--- a/ImageGeneration/references/BootBlockAndHeader_EB.xml ++++ b/ImageGeneration/references/BootBlockAndHeader_EB.xml +@@ -42,7 +42,7 @@ + 0x144 + 0x4 + +- inputs/Poleg_bootblock.bin ++ Poleg_bootblock.bin + + + +@@ -50,9 +50,9 @@ + Code + + 0x200 +- inputs/Poleg_bootblock.bin ++ Poleg_bootblock.bin + +- inputs/Poleg_bootblock.bin ++ Poleg_bootblock.bin + + + +diff --git a/ImageGeneration/references/BootBlockAndHeader_RunBMC.xml b/ImageGeneration/references/BootBlockAndHeader_RunBMC.xml +index cc719e9..4d1e972 100644 +--- a/ImageGeneration/references/BootBlockAndHeader_RunBMC.xml ++++ b/ImageGeneration/references/BootBlockAndHeader_RunBMC.xml +@@ -42,7 +42,7 @@ + 0x144 + 0x4 + +- inputs/Poleg_bootblock.bin ++ Poleg_bootblock.bin + + + +@@ -50,9 +50,9 @@ + Code + + 0x200 +- inputs/Poleg_bootblock.bin ++ Poleg_bootblock.bin + +- inputs/Poleg_bootblock.bin ++ Poleg_bootblock.bin + + + +diff --git a/ImageGeneration/references/UbootHeader_EB.xml b/ImageGeneration/references/UbootHeader_EB.xml +index 1e72e22..475ec45 100644 +--- a/ImageGeneration/references/UbootHeader_EB.xml ++++ b/ImageGeneration/references/UbootHeader_EB.xml +@@ -42,7 +42,7 @@ + 0x144 + 0x4 + +- inputs/u-boot.bin ++ u-boot.bin + + + +@@ -50,9 +50,9 @@ + Code + + 0x200 +- inputs/u-boot.bin ++ u-boot.bin + +- inputs/u-boot.bin ++ u-boot.bin + + + +diff --git a/ImageGeneration/references/UbootHeader_RunBMC.xml b/ImageGeneration/references/UbootHeader_RunBMC.xml +index 7eb3076..481ed2f 100644 +--- a/ImageGeneration/references/UbootHeader_RunBMC.xml ++++ b/ImageGeneration/references/UbootHeader_RunBMC.xml +@@ -42,7 +42,7 @@ + 0x144 + 0x4 + +- inputs/u-boot.bin ++ u-boot.bin + + + +@@ -50,9 +50,9 @@ + Code + + 0x200 +- inputs/u-boot.bin ++ u-boot.bin + +- inputs/u-boot.bin ++ u-boot.bin + + + +-- +2.24.0.rc0.303.g954a862665-goog + diff --git a/Contrib-Inspur/openbmc/meta-nuvoton/recipes-bsp/u-boot/u-boot-common-nuvoton.inc b/Contrib-Inspur/openbmc/meta-nuvoton/recipes-bsp/u-boot/u-boot-common-nuvoton.inc index d11327d8..7ab0dedb 100644 --- a/Contrib-Inspur/openbmc/meta-nuvoton/recipes-bsp/u-boot/u-boot-common-nuvoton.inc +++ b/Contrib-Inspur/openbmc/meta-nuvoton/recipes-bsp/u-boot/u-boot-common-nuvoton.inc @@ -7,7 +7,7 @@ LIC_FILES_CHKSUM = "file://Licenses/README;md5=30503fd321432fc713238f582193b78e" UBRANCH = "npcm7xx-v2019.01" SRC_URI = "git://github.com/Nuvoton-Israel/u-boot.git;branch=${UBRANCH}" -SRCREV = "d8d75f72b9e324f47b0657dcaac9edf4433267ea" +SRCREV = "adb4ac1af3f952ee6248e839af0c8600a0642d4b" S = "${WORKDIR}/git" diff --git a/Contrib-Inspur/openbmc/meta-nuvoton/recipes-kernel/linux/linux-nuvoton_git.bb b/Contrib-Inspur/openbmc/meta-nuvoton/recipes-kernel/linux/linux-nuvoton_git.bb index aaef9bca..2d33e378 100644 --- a/Contrib-Inspur/openbmc/meta-nuvoton/recipes-kernel/linux/linux-nuvoton_git.bb +++ b/Contrib-Inspur/openbmc/meta-nuvoton/recipes-kernel/linux/linux-nuvoton_git.bb @@ -1,6 +1,6 @@ -KBRANCH ?= "dev-5.1" -LINUX_VERSION ?= "5.1.7" +KBRANCH ?= "dev-5.4" +LINUX_VERSION ?= "5.4.4" -SRCREV="a17b8ac585d7faa27799f425fa4326c7a1e7ae71" +SRCREV="6d96543a7ed844fd3923ad30c93db48d3f7f00d0" require linux-nuvoton.inc diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-filesystems/conf/layer.conf b/Contrib-Inspur/openbmc/meta-openembedded/meta-filesystems/conf/layer.conf index 5aa2b0c2..e8bd3628 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-filesystems/conf/layer.conf +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-filesystems/conf/layer.conf @@ -15,4 +15,4 @@ LAYERVERSION_filesystems-layer = "1" LAYERDEPENDS_filesystems-layer = "core openembedded-layer" -LAYERSERIES_COMPAT_filesystems-layer = "thud warrior" +LAYERSERIES_COMPAT_filesystems-layer = "thud warrior zeus" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-filesystems/recipes-filesystems/fuse-exfat/fuse-exfat_1.2.3.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-filesystems/recipes-filesystems/fuse-exfat/fuse-exfat_1.2.3.bb deleted file mode 100644 index 18fc9cd6..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-filesystems/recipes-filesystems/fuse-exfat/fuse-exfat_1.2.3.bb +++ /dev/null @@ -1,20 +0,0 @@ -SUMMARY = "read and write exFAT driver for FUSE" -DESCRIPTION = "fuse-exfat is a read and write driver implementing the \ -extended file allocation table as a filesystem in userspace. A mounthelper \ -is provided under the name mount.exfat-fuse. \ -" -HOMEPAGE = "http://code.google.com/p/exfat/" -SECTION = "universe/otherosfs" -LICENSE = "GPLv2+" -LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263" -SRC_URI = "${DEBIAN_MIRROR}/main/f/fuse-exfat/fuse-exfat_${PV}.orig.tar.gz \ -" -DEPENDS = "fuse virtual/libc" -RRECOMMENDS_${PN} = "util-linux-mount" - -inherit autotools pkgconfig - -SRC_URI[md5sum] = "fca71e6598f79d037a3c7c969cb5710c" -SRC_URI[sha256sum] = "f2e06eba5a21c621aac1d6da21b12a5a324fdd1e20f9c8acd357dd463c2355d9" - -EXTRA_OECONF += "sbindir=${base_sbindir}" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-filesystems/recipes-filesystems/fuse-exfat/fuse-exfat_1.3.0.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-filesystems/recipes-filesystems/fuse-exfat/fuse-exfat_1.3.0.bb new file mode 100644 index 00000000..57204307 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-filesystems/recipes-filesystems/fuse-exfat/fuse-exfat_1.3.0.bb @@ -0,0 +1,20 @@ +SUMMARY = "read and write exFAT driver for FUSE" +DESCRIPTION = "fuse-exfat is a read and write driver implementing the \ +extended file allocation table as a filesystem in userspace. A mounthelper \ +is provided under the name mount.exfat-fuse. \ +" +HOMEPAGE = "https://github.com/relan/exfat" +SECTION = "universe/otherosfs" +LICENSE = "GPLv2+" +LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263" +SRC_URI = "https://github.com/relan/exfat/releases/download/v${PV}/${BP}.tar.gz" + +DEPENDS = "fuse virtual/libc" +RRECOMMENDS_${PN} = "util-linux-mount" + +inherit autotools pkgconfig + +SRC_URI[md5sum] = "846b8c36bfa4684719f9e08e9d3a6bff" +SRC_URI[sha256sum] = "07652136064da5e4d32df5555f88c138ffa4835a23b88a5bae2015f21006e0d3" + +EXTRA_OECONF += "sbindir=${base_sbindir}" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-filesystems/recipes-filesystems/ntfs-3g-ntfsprogs/files/0001-Make-build-support-usrmerge.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-filesystems/recipes-filesystems/ntfs-3g-ntfsprogs/files/0001-Make-build-support-usrmerge.patch new file mode 100644 index 00000000..fce10b99 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-filesystems/recipes-filesystems/ntfs-3g-ntfsprogs/files/0001-Make-build-support-usrmerge.patch @@ -0,0 +1,43 @@ +From 33f678bf74367aab8ddc2858a9f7797455ea9b9f Mon Sep 17 00:00:00 2001 +From: Changqing Li +Date: Thu, 29 Aug 2019 10:21:58 +0800 +Subject: [PATCH] Make build support usrmerge + +Upstream-Status: Inappropriate[oe-specific] + +Signed-off-by: Changqing Li +--- + ntfsprogs/Makefile.am | 2 -- + src/Makefile.am | 3 --- + 2 files changed, 5 deletions(-) + +diff --git a/ntfsprogs/Makefile.am b/ntfsprogs/Makefile.am +index f4f9d1b..1f6a673 100644 +--- a/ntfsprogs/Makefile.am ++++ b/ntfsprogs/Makefile.am +@@ -165,8 +165,6 @@ extras: libs $(EXTRA_PROGRAMS) + + if ENABLE_MOUNT_HELPER + install-exec-hook: +- $(INSTALL) -d $(DESTDIR)/sbin +- $(LN_S) -f $(sbindir)/mkntfs $(DESTDIR)/sbin/mkfs.ntfs + + install-data-hook: + $(INSTALL) -d $(DESTDIR)$(man8dir) +diff --git a/src/Makefile.am b/src/Makefile.am +index 8d98408..d0a6a45 100644 +--- a/src/Makefile.am ++++ b/src/Makefile.am +@@ -66,9 +66,6 @@ endif + + if ENABLE_MOUNT_HELPER + install-exec-local: install-rootbinPROGRAMS +- $(MKDIR_P) "$(DESTDIR)/sbin" +- $(LN_S) -f "$(rootbindir)/ntfs-3g" "$(DESTDIR)/sbin/mount.ntfs-3g" +- $(LN_S) -f "$(rootbindir)/lowntfs-3g" "$(DESTDIR)/sbin/mount.lowntfs-3g" + + install-data-local: install-man8 + $(LN_S) -f ntfs-3g.8 "$(DESTDIR)$(man8dir)/mount.ntfs-3g.8" +-- +2.7.4 + diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-filesystems/recipes-filesystems/ntfs-3g-ntfsprogs/ntfs-3g-ntfsprogs_2017.3.23.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-filesystems/recipes-filesystems/ntfs-3g-ntfsprogs/ntfs-3g-ntfsprogs_2017.3.23.bb index addb4d35..1559bfd3 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-filesystems/recipes-filesystems/ntfs-3g-ntfsprogs/ntfs-3g-ntfsprogs_2017.3.23.bb +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-filesystems/recipes-filesystems/ntfs-3g-ntfsprogs/ntfs-3g-ntfsprogs_2017.3.23.bb @@ -8,6 +8,7 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552 \ SRC_URI = "http://tuxera.com/opensource/ntfs-3g_ntfsprogs-${PV}.tgz \ file://0001-libntfs-3g-Makefile.am-fix-install-failed-while-host.patch \ + ${@bb.utils.contains('DISTRO_FEATURES','usrmerge','file://0001-Make-build-support-usrmerge.patch','',d)} \ " S = "${WORKDIR}/ntfs-3g_ntfsprogs-${PV}" SRC_URI[md5sum] = "d97474ae1954f772c6d2fa386a6f462c" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-filesystems/recipes-filesystems/owfs/owfs/0001-Add-build-rule-for-README.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-filesystems/recipes-filesystems/owfs/owfs/0001-Add-build-rule-for-README.patch new file mode 100644 index 00000000..e4d52a80 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-filesystems/recipes-filesystems/owfs/owfs/0001-Add-build-rule-for-README.patch @@ -0,0 +1,25 @@ +From dfeadd4eb43e829aafb0d10f611fa22ae81bfca4 Mon Sep 17 00:00:00 2001 +From: Zheng Ruoqin +Date: Sun, 20 Oct 2019 17:00:45 +0900 +Subject: [PATCH] Add build rule for README. + +fix do_configure error: +Makefile.am: required file `./README' not found + +Signed-off-by: Zheng Ruoqin +--- + Makefile.am | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/Makefile.am b/Makefile.am +index e0c4ad6..0449321 100644 +--- a/Makefile.am ++++ b/Makefile.am +@@ -35,3 +35,4 @@ rpmcvs: preparerpm + @LN_S@ -f `pwd`/@PACKAGE@-@VERSION@.tar.gz ${RPMDIR}/SOURCES/@PACKAGE@-@VERSION@_cvs_`date +"%Y%m%d"`.tar.gz + cd ${RPMDIR}/SPECS && @RPMBUILD@ -ba @PACKAGE@.spec --define 'cvs 1' + ++README: README.md +-- +2.7.4 + diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-filesystems/recipes-filesystems/owfs/owfs/0001-include-sys-sysmacros.h-for-major.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-filesystems/recipes-filesystems/owfs/owfs/0001-include-sys-sysmacros.h-for-major.patch deleted file mode 100644 index 0a990ac6..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-filesystems/recipes-filesystems/owfs/owfs/0001-include-sys-sysmacros.h-for-major.patch +++ /dev/null @@ -1,46 +0,0 @@ -From dd1af7541f18399bcdcb129a8b6618c18ebd9d63 Mon Sep 17 00:00:00 2001 -From: Tomasz Torcz -Date: Sat, 17 Mar 2018 12:56:04 +0100 -Subject: [PATCH] include for major() - - Linux glibc ceased to include it in sys/types.h: -https://sourceware.org/ml/libc-alpha/2015-11/msg00253.html - -Upstream-Status: Backport -Signed-off-by: Khem Raj ---- - configure.ac | 2 +- - module/owlib/src/include/ow.h | 6 +++++- - 2 files changed, 6 insertions(+), 2 deletions(-) - -diff --git a/configure.ac b/configure.ac -index 86751bf7..d625d3f0 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -180,7 +180,7 @@ m4_include([src/scripts/m4/acx_pthread.m4]) - # Checks for header files. - AC_HEADER_DIRENT - AC_HEADER_STDC --AC_CHECK_HEADERS([asm/types.h arpa/inet.h sys/ioctl.h sys/mkdev.h sys/socket.h sys/time.h sys/times.h sys/types.h sys/param.h sys/uio.h feature_tests.h fcntl.h netinet/in.h stdlib.h string.h strings.h sys/file.h syslog.h termios.h unistd.h limits.h stdint.h features.h getopt.h resolv.h semaphore.h]) -+AC_CHECK_HEADERS([asm/types.h arpa/inet.h sys/ioctl.h sys/mkdev.h sys/socket.h sys/sysmacros.h sys/time.h sys/times.h sys/types.h sys/param.h sys/uio.h feature_tests.h fcntl.h netinet/in.h stdlib.h string.h strings.h sys/file.h syslog.h termios.h unistd.h limits.h stdint.h features.h getopt.h resolv.h semaphore.h]) - AC_CHECK_HEADERS([linux/limits.h linux/types.h netdb.h dlfcn.h]) - AC_CHECK_HEADERS(sys/event.h sys/inotify.h) - -diff --git a/module/owlib/src/include/ow.h b/module/owlib/src/include/ow.h -index 9dbec5f3..0a310552 100644 ---- a/module/owlib/src/include/ow.h -+++ b/module/owlib/src/include/ow.h -@@ -188,8 +188,12 @@ - #include /* for getaddrinfo */ - #endif /* HAVE_NETDB_H */ - -+#ifdef HAVE_SYS_SYSMACROS_H -+#include /* for major() */ -+#endif /* HAVE_SYS_SYSMACROS_H */ -+ - #ifdef HAVE_SYS_MKDEV_H --#include /* for major() */ -+#include /* for major() on Solaris */ - #endif /* HAVE_SYS_MKDEV_H */ - - #include // for offsetof() diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-filesystems/recipes-filesystems/owfs/owfs_3.2p2.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-filesystems/recipes-filesystems/owfs/owfs_3.2p2.bb deleted file mode 100644 index 857aaf21..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-filesystems/recipes-filesystems/owfs/owfs_3.2p2.bb +++ /dev/null @@ -1,80 +0,0 @@ -SUMMARY = "1-Wire file system" -DESCRIPTION = "OWFS is an easy way to use the powerful 1-wire system of Dallas/Maxim" -HOMEPAGE = "http://www.owfs.org/" -SECTION = "console/network" - -LICENSE = "GPLv2 & LGPLv2" -LIC_FILES_CHKSUM = "file://COPYING;md5=12a64df1cc87275e940cab05ee75c37d \ - file://COPYING.LIB;md5=16ff3ffebed582e19ea7a4f48ec77b42" - -DEPENDS = "fuse virtual/libusb0" -# v3.2p2 -SRCREV = "93c1f36d9ac481075287da331d5184f590f8c0fa" -SRC_URI = "git://github.com/owfs/owfs \ - file://owhttpd \ - file://owserver \ - file://0001-include-sys-sysmacros.h-for-major.patch \ - " - -S = "${WORKDIR}/git" - -inherit autotools-brokensep update-rc.d pkgconfig systemd - -EXTRA_OECONF = " \ - --with-fuseinclude=${STAGING_INCDIR} \ - --with-fuselib=${STAGING_LIBDIR} \ - --enable-owfs \ - --enable-owhttpd \ - --enable-w1 \ - --disable-swig \ - --disable-owtcl \ - --disable-owphp \ - --disable-owpython \ - --disable-owperl \ -" - -do_install_prepend() { - install -d ${D}${sysconfdir}/default/ - install -d ${D}${sysconfdir}/init.d/ - install -m 0755 ${WORKDIR}/owhttpd ${D}${sysconfdir}/init.d/owhttpd - install -m 0755 ${WORKDIR}/owserver ${D}${sysconfdir}/init.d/owserver -} - -PACKAGES =+ "owftpd owhttpd owserver owshell libowcapi libow libownet owmon owtap" - -DESCRIPTION_owftpd = "Anoymous FTP server for 1-wire access" -DESCRIPTION_owhttpd = "Tiny webserver for 1-wire control" -DESCRIPTION_owserver = "Backend server (daemon) for 1-wire control" -DESCRIPTION_owshell = "owdir owread owwrite owpresent owget - lightweight owserver access" -DESCRIPTION_libowcapi = "easy C-language 1-wire interface " -DESCRIPTION_libow = "easy C-language 1-wire interface to the owserver protocol" -DESCRIPTION_libownet = "easy C-language 1-wire interface to the owserver protocol" -DESCRIPTION_owmon = "Monitor for owserver settings and statistics" -DESCRIPTION_owtap = "Packet sniffer for the owserver protocol" - -FILES_owftpd = "${bindir}/owftpd ${systemd_system_unitdir}/owftpd.service" -FILES_owhttpd = "${bindir}/owhttpd ${sysconfdir}/init.d/owhttpd \ - ${systemd_system_unitdir}/owhttpd.service" -FILES_owserver = "${bindir}/owserver ${sysconfdir}/init.d/owserver \ - ${systemd_system_unitdir}/owserver.service \ - ${systemd_system_unitdir}/owserver.socket" -FILES_owshell = "${bindir}/owread ${bindir}/owwrite \ - ${bindir}/owdir ${bindir}/owpresent \ - ${bindir}/owget ${bindir}/owside" -FILES_owmon = "${bindir}/owmon" -FILES_owtap = "${bindir}/owtap" -FILES_libowcapi = "${libdir}/libowcapi-*" -FILES_libow = "${libdir}/libow-*" -FILES_libownet = "${libdir}/libownet-*" -FILES_${PN} += "${systemd_system_unitdir}/owfs.service" - -INITSCRIPT_PACKAGES = "owhttpd owserver" -INITSCRIPT_NAME_owserver = "owserver" -INITSCRIPT_NAME_owhttpd = "owhttpd" -INITSCRIPT_PARAMS_owserver = "defaults 20" -INITSCRIPT_PARAMS_owhttpd = "defaults 21" - -SYSTEMD_SERVICE_${PN} = "owfs.service" -SYSTEMD_SERVICE_${PN}-owftpd = "owftpd.service" -SYSTEMD_SERVICE_${PN}-owhttpd = "owhttpd.service" -SYSTEMD_SERVICE_${PN}-owserver = "owserver.service owserver.socket" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-filesystems/recipes-filesystems/owfs/owfs_3.2p3.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-filesystems/recipes-filesystems/owfs/owfs_3.2p3.bb new file mode 100644 index 00000000..41408444 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-filesystems/recipes-filesystems/owfs/owfs_3.2p3.bb @@ -0,0 +1,80 @@ +SUMMARY = "1-Wire file system" +DESCRIPTION = "OWFS is an easy way to use the powerful 1-wire system of Dallas/Maxim" +HOMEPAGE = "http://www.owfs.org/" +SECTION = "console/network" + +LICENSE = "GPLv2 & LGPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=628b867016631792781a8735a04760e5 \ + file://COPYING.LIB;md5=9021b7435efdd9fb22beef8291134099" + +DEPENDS = "fuse virtual/libusb0" +# v3.2p3 +SRCREV = "3744375dfaa350e31c9b360eb1e1a517bbeb5c47" +SRC_URI = "git://github.com/owfs/owfs \ + file://0001-Add-build-rule-for-README.patch \ + file://owhttpd \ + file://owserver \ + " + +S = "${WORKDIR}/git" + +inherit autotools-brokensep update-rc.d pkgconfig systemd + +EXTRA_OECONF = " \ + --with-fuseinclude=${STAGING_INCDIR} \ + --with-fuselib=${STAGING_LIBDIR} \ + --enable-owfs \ + --enable-owhttpd \ + --enable-w1 \ + --disable-swig \ + --disable-owtcl \ + --disable-owphp \ + --disable-owpython \ + --disable-owperl \ +" + +do_install_prepend() { + install -d ${D}${sysconfdir}/default/ + install -d ${D}${sysconfdir}/init.d/ + install -m 0755 ${WORKDIR}/owhttpd ${D}${sysconfdir}/init.d/owhttpd + install -m 0755 ${WORKDIR}/owserver ${D}${sysconfdir}/init.d/owserver +} + +PACKAGES =+ "owftpd owhttpd owserver owshell libowcapi libow libownet owmon owtap" + +DESCRIPTION_owftpd = "Anoymous FTP server for 1-wire access" +DESCRIPTION_owhttpd = "Tiny webserver for 1-wire control" +DESCRIPTION_owserver = "Backend server (daemon) for 1-wire control" +DESCRIPTION_owshell = "owdir owread owwrite owpresent owget - lightweight owserver access" +DESCRIPTION_libowcapi = "easy C-language 1-wire interface " +DESCRIPTION_libow = "easy C-language 1-wire interface to the owserver protocol" +DESCRIPTION_libownet = "easy C-language 1-wire interface to the owserver protocol" +DESCRIPTION_owmon = "Monitor for owserver settings and statistics" +DESCRIPTION_owtap = "Packet sniffer for the owserver protocol" + +FILES_owftpd = "${bindir}/owftpd ${systemd_system_unitdir}/owftpd.service" +FILES_owhttpd = "${bindir}/owhttpd ${sysconfdir}/init.d/owhttpd \ + ${systemd_system_unitdir}/owhttpd.service" +FILES_owserver = "${bindir}/owserver ${sysconfdir}/init.d/owserver \ + ${systemd_system_unitdir}/owserver.service \ + ${systemd_system_unitdir}/owserver.socket" +FILES_owshell = "${bindir}/owread ${bindir}/owwrite \ + ${bindir}/owdir ${bindir}/owpresent \ + ${bindir}/owget ${bindir}/owside" +FILES_owmon = "${bindir}/owmon" +FILES_owtap = "${bindir}/owtap" +FILES_libowcapi = "${libdir}/libowcapi-*" +FILES_libow = "${libdir}/libow-*" +FILES_libownet = "${libdir}/libownet-*" +FILES_${PN} += "${systemd_system_unitdir}/owfs.service" + +INITSCRIPT_PACKAGES = "owhttpd owserver" +INITSCRIPT_NAME_owserver = "owserver" +INITSCRIPT_NAME_owhttpd = "owhttpd" +INITSCRIPT_PARAMS_owserver = "defaults 20" +INITSCRIPT_PARAMS_owhttpd = "defaults 21" + +SYSTEMD_SERVICE_${PN} = "owfs.service" +SYSTEMD_SERVICE_${PN}-owftpd = "owftpd.service" +SYSTEMD_SERVICE_${PN}-owhttpd = "owhttpd.service" +SYSTEMD_SERVICE_${PN}-owserver = "owserver.service owserver.socket" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-filesystems/recipes-filesystems/simple-mtpfs/simple-mtpfs_git.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-filesystems/recipes-filesystems/simple-mtpfs/simple-mtpfs_git.bb index f85977fd..595b3490 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-filesystems/recipes-filesystems/simple-mtpfs/simple-mtpfs_git.bb +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-filesystems/recipes-filesystems/simple-mtpfs/simple-mtpfs_git.bb @@ -7,7 +7,8 @@ DEPENDS = "fuse libmtp" inherit autotools pkgconfig +# 0.3.0 SRC_URI = "git://github.com/phatina/simple-mtpfs.git;protocol=https;branch=master" -SRCREV = "a7ab64c7e4d7aca155cbc7ce9412aaf68ef6e404" +SRCREV = "c9a691fc52fafaa55d26ac629856153c0514015a" S = "${WORKDIR}/git" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-filesystems/recipes-filesystems/smbnetfs/smbnetfs/configure.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-filesystems/recipes-filesystems/smbnetfs/smbnetfs/configure.patch index 55275669..f22b389b 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-filesystems/recipes-filesystems/smbnetfs/smbnetfs/configure.patch +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-filesystems/recipes-filesystems/smbnetfs/smbnetfs/configure.patch @@ -1,9 +1,7 @@ -Index: git/configure.in -=================================================================== ---- git.orig/configure.ac 2014-06-18 16:06:16.040721349 +0000 -+++ git/configure.ac 2014-07-18 07:49:17.085552256 +0000 +--- a/configure.ac ++++ b/configure.ac @@ -1,5 +1,5 @@ - AC_INIT([SMBNetFS],[0.6.1]) + AC_INIT([SMBNetFS],[0.6.2]) -AM_INIT_AUTOMAKE +AM_INIT_AUTOMAKE([foreign]) AC_CONFIG_HEADERS([src/config.h]) diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-filesystems/recipes-filesystems/smbnetfs/smbnetfs_git.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-filesystems/recipes-filesystems/smbnetfs/smbnetfs_git.bb index c72936c0..d94603b4 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-filesystems/recipes-filesystems/smbnetfs/smbnetfs_git.bb +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-filesystems/recipes-filesystems/smbnetfs/smbnetfs_git.bb @@ -11,15 +11,14 @@ HOMEPAGE ="http://sourceforge.net/projects/smbnetfs" DEPENDS = "fuse samba" DEPENDS_append_libc-musl = " libexecinfo" +inherit autotools pkgconfig features_check + # samba depends on libpam -inherit distro_features_check REQUIRED_DISTRO_FEATURES = "pam" -inherit autotools gitpkgv pkgconfig - -PKGV = "${GITPKGVTAG}" +PV = "0.6.1+git${SRCPV}" -SRCREV = "bc6b94b015fdaf7c4dab56ccb996eecea8bc4373" +SRCREV = "a117eec8de7ed7249871da73dcc350283ce72069" SRC_URI = "git://smbnetfs.git.sourceforge.net/gitroot/smbnetfs/smbnetfs;branch=master \ file://configure.patch \ diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-filesystems/recipes-filesystems/sshfs-fuse/sshfs-fuse_2.10.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-filesystems/recipes-filesystems/sshfs-fuse/sshfs-fuse_2.10.bb deleted file mode 100644 index 582e2184..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-filesystems/recipes-filesystems/sshfs-fuse/sshfs-fuse_2.10.bb +++ /dev/null @@ -1,16 +0,0 @@ -SUMMARY = "This is a filesystem client based on the SSH File Transfer Protocol using FUSE" -AUTHOR = "Miklos Szeredi " -HOMEPAGE = "http://fuse.sourceforge.net/sshfs.html" -SECTION = "console/network" -LICENSE = "GPLv2" -DEPENDS = "glib-2.0 fuse" -LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263" - -SRC_URI = "git://github.com/libfuse/sshfs;branch=sshfs_2.x \ -" -SRCREV = "42dfaf9a5bdc1ee429c7718e8788ca37a5763e0d" -S = "${WORKDIR}/git" - -inherit autotools pkgconfig - -FILES_${PN} += "${libdir}/sshnodelay.so" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-filesystems/recipes-filesystems/sshfs-fuse/sshfs-fuse_3.6.0.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-filesystems/recipes-filesystems/sshfs-fuse/sshfs-fuse_3.6.0.bb new file mode 100644 index 00000000..2515d07d --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-filesystems/recipes-filesystems/sshfs-fuse/sshfs-fuse_3.6.0.bb @@ -0,0 +1,13 @@ +SUMMARY = "This is a filesystem client based on the SSH File Transfer Protocol using FUSE" +AUTHOR = "Miklos Szeredi " +HOMEPAGE = "https://github.com/libfuse/sshfs" +SECTION = "console/network" +LICENSE = "GPLv2" +DEPENDS = "glib-2.0 fuse3" +LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263" + +SRC_URI = "git://github.com/libfuse/sshfs" +SRCREV = "a1e5f12c530ccf59434a7d59a34a049f160b3559" +S = "${WORKDIR}/git" + +inherit meson diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-filesystems/recipes-support/fuse/fuse3_3.9.0.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-filesystems/recipes-support/fuse/fuse3_3.9.0.bb new file mode 100644 index 00000000..19a3499a --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-filesystems/recipes-support/fuse/fuse3_3.9.0.bb @@ -0,0 +1,48 @@ +SUMMARY = "Implementation of a fully functional filesystem in a userspace program" +DESCRIPTION = "FUSE (Filesystem in Userspace) is a simple interface for userspace \ + programs to export a virtual filesystem to the Linux kernel. FUSE \ + also aims to provide a secure method for non privileged users to \ + create and mount their own filesystem implementations. \ + " +HOMEPAGE = "https://github.com/libfuse/libfuse" +SECTION = "libs" +LICENSE = "GPLv2 & LGPLv2" +LIC_FILES_CHKSUM = "file://GPL2.txt;md5=b234ee4d69f5fce4486a80fdaf4a4263 \ + file://LGPL2.txt;md5=4fbd65380cdd255951079008b364516c \ + file://LICENSE;md5=a55c12a2d7d742ecb41ca9ae0a6ddc66" + +SRC_URI = "https://github.com/libfuse/libfuse/releases/download/fuse-${PV}/fuse-${PV}.tar.xz \ +" +SRC_URI[md5sum] = "5dc2be21c0d06c7eace340996e8a37e2" +SRC_URI[sha256sum] = "fcb7079a1bb4e510377b427d1c5c37c349281d498e249ae0c2379b4cf50059c2" + +S = "${WORKDIR}/fuse-${PV}" + +UPSTREAM_CHECK_URI = "https://github.com/libfuse/libfuse/releases" +UPSTREAM_CHECK_REGEX = "fuse\-(?P3(\.\d+)+).tar.xz" + +inherit meson pkgconfig + +DEPENDS = "udev" + +PACKAGES =+ "fuse3-utils" + +RPROVIDES_${PN}-dbg += "fuse3-utils-dbg" + +RRECOMMENDS_${PN}_class-target = "kernel-module-fuse fuse3-utils" + +FILES_${PN} += "${libdir}/libfuse3.so.*" +FILES_${PN}-dev += "${libdir}/libfuse3*.la" + +EXTRA_OEMESON += " \ + -Dexamples=false \ +" + +# Forbid auto-renaming to libfuse3-utils +FILES_fuse3-utils = "${bindir} ${base_sbindir}" +DEBIAN_NOAUTONAME_fuse3-utils = "1" +DEBIAN_NOAUTONAME_${PN}-dbg = "1" + +do_install_append() { + rm -rf ${D}${base_prefix}/dev +} diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-filesystems/recipes-support/fuse/fuse_2.9.9.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-filesystems/recipes-support/fuse/fuse_2.9.9.bb index c83e7f6d..95e87069 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-filesystems/recipes-support/fuse/fuse_2.9.9.bb +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-filesystems/recipes-support/fuse/fuse_2.9.9.bb @@ -54,7 +54,7 @@ do_configure_prepend() { } do_install_append() { - rm -rf ${D}${base_prefix}/dev + rm -rf ${D}/dev # systemd class remove the sysv_initddir only if systemd_system_unitdir # contains anything, but it's not needed if sysvinit is not in DISTRO_FEATURES @@ -69,4 +69,10 @@ do_install_append() { fi } +do_install_append_class-nativesdk() { + install -d ${D}${sysconfdir} + mv ${D}/etc/* ${D}${sysconfdir}/ + rmdir ${D}/etc +} + BBCLASSEXTEND = "native nativesdk" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-filesystems/recipes-utils/exfat-utils/exfat-utils_1.2.3.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-filesystems/recipes-utils/exfat-utils/exfat-utils_1.2.3.bb deleted file mode 100644 index 440f3361..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-filesystems/recipes-utils/exfat-utils/exfat-utils_1.2.3.bb +++ /dev/null @@ -1,22 +0,0 @@ -SUMMARY = "utilities to create, check, label and dump exFAT filesystem" -DESCRIPTION = "Utilities to manage extended file allocation table filesystem. \ -This package provides tools to create, check and label the filesystem. It \ -contains \ - - dumpexfat to dump properties of the filesystem \ - - exfatfsck / fsck.exfat to report errors found on a exFAT filesystem \ - - exfatlabel to label a exFAT filesystem \ - - mkexfatfs / mkfs.exfat to create a exFAT filesystem. \ -" -HOMEPAGE = "http://code.google.com/p/exfat/" -SECTION = "universe/otherosfs" -LICENSE = "GPLv2" -LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263" - -SRC_URI = "https://github.com/relan/exfat/releases/download/v${PV}/${BP}.tar.gz" - -DEPENDS = "virtual/libc" - -inherit pkgconfig autotools - -SRC_URI[md5sum] = "f4e564450aa8159e26dde2869563d242" -SRC_URI[sha256sum] = "80d3b3f21242d60d36a38a4ddb05cb7cc3a7d4eef5793e8314814937b938fcea" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-filesystems/recipes-utils/exfat-utils/exfat-utils_1.3.0.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-filesystems/recipes-utils/exfat-utils/exfat-utils_1.3.0.bb new file mode 100644 index 00000000..1f2bfa6a --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-filesystems/recipes-utils/exfat-utils/exfat-utils_1.3.0.bb @@ -0,0 +1,22 @@ +SUMMARY = "utilities to create, check, label and dump exFAT filesystem" +DESCRIPTION = "Utilities to manage extended file allocation table filesystem. \ +This package provides tools to create, check and label the filesystem. It \ +contains \ + - dumpexfat to dump properties of the filesystem \ + - exfatfsck / fsck.exfat to report errors found on a exFAT filesystem \ + - exfatlabel to label a exFAT filesystem \ + - mkexfatfs / mkfs.exfat to create a exFAT filesystem. \ +" +HOMEPAGE = "https://github.com/relan/exfat" +SECTION = "universe/otherosfs" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263" + +SRC_URI = "https://github.com/relan/exfat/releases/download/v${PV}/${BP}.tar.gz" + +DEPENDS = "virtual/libc" + +inherit pkgconfig autotools + +SRC_URI[md5sum] = "f8928571b152455e828ca0bd42af8b73" +SRC_URI[sha256sum] = "dfebd07a7b907e2d603d3a9626e6440bd43ec6c4e8c07ccfc57ce9502b724835" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-filesystems/recipes-utils/f2fs-tools/f2fs-tools/0001-Remove-AC_CHECK_FILE-for-cross-compilation.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-filesystems/recipes-utils/f2fs-tools/f2fs-tools/0001-Remove-AC_CHECK_FILE-for-cross-compilation.patch deleted file mode 100644 index cf844bf8..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-filesystems/recipes-utils/f2fs-tools/f2fs-tools/0001-Remove-AC_CHECK_FILE-for-cross-compilation.patch +++ /dev/null @@ -1,32 +0,0 @@ -From 3b3c6e6376babcd9a0b0db312b0e1e3bb3ab833e Mon Sep 17 00:00:00 2001 -From: Sven Ebenfeld -Date: Wed, 26 Nov 2014 10:36:44 +0100 -Subject: [PATCH] Remove AC_CHECK_FILE for cross compilation - ---- - configure.ac | 7 +------ - 1 file changed, 1 insertion(+), 6 deletions(-) - -diff --git a/configure.ac b/configure.ac -index 0111e72..8c286d4 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -20,14 +20,9 @@ AC_DEFINE([F2FS_MINOR_VERSION], m4_bpatsubst(f2fs_tools_version, - [\([0-9]*\).\([0-9]*\)\(\w\|\W\)*], [\2]), - [Minor version for f2fs-tools]) - --AC_CHECK_FILE(.git, -- AC_DEFINE([F2FS_TOOLS_DATE], -- "m4_bpatsubst(f2fs_tools_gitdate, -- [\([0-9-]*\)\(\w\|\W\)*], [\1])", -- [f2fs-tools date based on Git commits]), - AC_DEFINE([F2FS_TOOLS_DATE], - "f2fs_tools_date", -- [f2fs-tools date based on Source releases])) -+ [f2fs-tools date based on Source releases]) - - AC_CONFIG_SRCDIR([config.h.in]) - AC_CONFIG_HEADER([config.h]) --- -1.8.1.rc3 - diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-filesystems/recipes-utils/f2fs-tools/f2fs-tools_1.11.0.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-filesystems/recipes-utils/f2fs-tools/f2fs-tools_1.11.0.bb deleted file mode 100644 index 2240049d..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-filesystems/recipes-utils/f2fs-tools/f2fs-tools_1.11.0.bb +++ /dev/null @@ -1,20 +0,0 @@ -SUMMARY = "Tools for Flash-Friendly File System (F2FS)" -HOMEPAGE = "http://sourceforge.net/projects/f2fs-tools/" - -LICENSE = "GPLv2" -LIC_FILES_CHKSUM = "file://COPYING;md5=362b4b2594cd362b874a97718faa51d3" - -# to provide libuuid -DEPENDS = "util-linux" - -# v1.11.0 -SRCREV = "b98fab3666e498c2e27ad9dcda6874c9b683f06b" -SRC_URI = "git://git.kernel.org/pub/scm/linux/kernel/git/jaegeuk/f2fs-tools.git \ - file://0001-Remove-AC_CHECK_FILE-for-cross-compilation.patch \ - file://0001-f2fs-tools-Use-srcdir-prefix-to-denote-include-path.patch \ - " -S = "${WORKDIR}/git" - -inherit pkgconfig autotools - -BBCLASSEXTEND = "native" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-filesystems/recipes-utils/f2fs-tools/f2fs-tools_1.13.0.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-filesystems/recipes-utils/f2fs-tools/f2fs-tools_1.13.0.bb new file mode 100644 index 00000000..98bd478f --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-filesystems/recipes-utils/f2fs-tools/f2fs-tools_1.13.0.bb @@ -0,0 +1,19 @@ +SUMMARY = "Tools for Flash-Friendly File System (F2FS)" +HOMEPAGE = "https://git.kernel.org/pub/scm/linux/kernel/git/jaegeuk/f2fs-tools.git" + +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=362b4b2594cd362b874a97718faa51d3" + +# to provide libuuid +DEPENDS = "util-linux" + +# v1.13.0 +SRCREV = "284f77f0075a16a2ad1f3b0fb89b7f64a1bc755d" +SRC_URI = "git://git.kernel.org/pub/scm/linux/kernel/git/jaegeuk/f2fs-tools.git \ + file://0001-f2fs-tools-Use-srcdir-prefix-to-denote-include-path.patch \ + " +S = "${WORKDIR}/git" + +inherit pkgconfig autotools + +BBCLASSEXTEND = "native" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-filesystems/recipes-utils/ufs-utils/ufs-utils/0001-Replace-u_intXX_t-with-kernel-typedefs.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-filesystems/recipes-utils/ufs-utils/ufs-utils/0001-Replace-u_intXX_t-with-kernel-typedefs.patch new file mode 100644 index 00000000..e69a3cf1 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-filesystems/recipes-utils/ufs-utils/ufs-utils/0001-Replace-u_intXX_t-with-kernel-typedefs.patch @@ -0,0 +1,54 @@ +From 6cf6f5b9c39dfd0d46f2069c3baeab92ae980367 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Sun, 15 Dec 2019 00:58:13 -0800 +Subject: [PATCH] Replace u_intXX_t with kernel typedefs + +u_intXX_t requires including sys/types.h which might not work in kernel +code, if this header is used in a kernel module + +Fixes +| In file included from ufs.c:16: +| In file included from ./ufs.h:9: +| ./scsi_bsg_util.h:131:2: error: unknown type name 'u_int16_t'; did you mean 'uint16_t'? +| u_int16_t result; +| ^~~~~~~~~ + +Upstream-Status: Submitted [https://github.com/westerndigitalcorporation/ufs-utils/pull/23] + +Signed-off-by: Khem Raj +--- + scsi_bsg_util.h | 18 +++++++++--------- + 1 file changed, 9 insertions(+), 9 deletions(-) + +diff --git a/scsi_bsg_util.h b/scsi_bsg_util.h +index 3f8a482..497c3ae 100644 +--- a/scsi_bsg_util.h ++++ b/scsi_bsg_util.h +@@ -121,15 +121,15 @@ struct ufs_bsg_reply { + #endif /* SCSI_BSG_UFS_H.*/ + + struct rpmb_frame { +- u_int8_t stuff[196]; +- u_int8_t key_mac[32]; +- u_int8_t data[256]; +- u_int8_t nonce[16]; +- u_int32_t write_counter; +- u_int16_t addr; +- u_int16_t block_count; +- u_int16_t result; +- u_int16_t req_resp; ++ __u8 stuff[196]; ++ __u8 key_mac[32]; ++ __u8 data[256]; ++ __u8 nonce[16]; ++ __u32 write_counter; ++ __u16 addr; ++ __u16 block_count; ++ __u16 result; ++ __u16 req_resp; + }; + + #define BSG_REPLY_SZ (sizeof(struct ufs_bsg_reply)) +-- +2.24.1 + diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-filesystems/recipes-utils/ufs-utils/ufs-utils_git.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-filesystems/recipes-utils/ufs-utils/ufs-utils_git.bb new file mode 100644 index 00000000..5fdd089a --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-filesystems/recipes-utils/ufs-utils/ufs-utils_git.bb @@ -0,0 +1,32 @@ +SUMMARY = "Tool to access UFS (Universal Flash Storage) devices" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552" + +PV = "1.6+git${SRCPV}" + +BRANCH ?= "dev" + +SRCREV = "a3cf93b66f4606a46354cf884d24aa966661f848" + +SRC_URI = "git://github.com/westerndigitalcorporation/ufs-utils.git;protocol=git;branch=${BRANCH} \ + file://0001-Replace-u_intXX_t-with-kernel-typedefs.patch \ +" + +S = "${WORKDIR}/git" + +EXTRA_OEMAKE = "CROSS_COMPILE=${TARGET_PREFIX} CC="${CC}" CFLAGS="${CFLAGS}"" + +CFLAGS_append_mipsarchn64 = " -D__SANE_USERSPACE_TYPES__ -D_GNU_SOURCE" + +do_configure() { + sed -i -e "s|-static$||g" ${S}/Makefile +} + +do_install() { + install -D -m 755 ${S}/ufs-utils ${D}${bindir}/ufs-utils +} + +PROVIDES += "ufs-tool" + +RPROVIDES_${PN} += "ufs-tool" + diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-filesystems/recipes-utils/xfsdump/files/0001-xfsdump-support-usrmerge.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-filesystems/recipes-utils/xfsdump/files/0001-xfsdump-support-usrmerge.patch new file mode 100644 index 00000000..04ec7b34 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-filesystems/recipes-utils/xfsdump/files/0001-xfsdump-support-usrmerge.patch @@ -0,0 +1,48 @@ +From 2da4cfe17b994d7f10017561ca8efe6b6bd5f3cf Mon Sep 17 00:00:00 2001 +From: Changqing Li +Date: Thu, 5 Sep 2019 11:17:15 +0800 +Subject: [PATCH] xfsdump: support usrmerge + +Upstream-Status: Inappropriate [oe-specific] + +Signed-off-by: Changqing Li +--- + dump/Makefile | 4 +--- + restore/Makefile | 4 +--- + 2 files changed, 2 insertions(+), 6 deletions(-) + +diff --git a/dump/Makefile b/dump/Makefile +index 97879fa..14da664 100644 +--- a/dump/Makefile ++++ b/dump/Makefile +@@ -97,10 +97,8 @@ default: depend $(LTCOMMAND) + include $(BUILDRULES) + + install: default +- $(INSTALL) -m 755 -d $(PKG_ROOT_SBIN_DIR) +- $(LTINSTALL) -m 755 $(LTCOMMAND) $(PKG_ROOT_SBIN_DIR) + $(INSTALL) -m 755 -d $(PKG_SBIN_DIR) +- $(INSTALL) -S $(PKG_ROOT_SBIN_DIR)/$(LTCOMMAND) $(PKG_SBIN_DIR)/$(LTCOMMAND) ++ $(LTINSTALL) -m 755 $(LTCOMMAND) $(PKG_SBIN_DIR) + install-dev: + + .dep: $(COMMINCL) $(COMMON) $(INVINCL) $(INVCOMMON) +diff --git a/restore/Makefile b/restore/Makefile +index c6f3f25..7835ecc 100644 +--- a/restore/Makefile ++++ b/restore/Makefile +@@ -107,10 +107,8 @@ default: depend $(LTCOMMAND) + include $(BUILDRULES) + + install: default +- $(INSTALL) -m 755 -d $(PKG_ROOT_SBIN_DIR) +- $(LTINSTALL) -m 755 $(LTCOMMAND) $(PKG_ROOT_SBIN_DIR) + $(INSTALL) -m 755 -d $(PKG_SBIN_DIR) +- $(INSTALL) -S $(PKG_ROOT_SBIN_DIR)/$(LTCOMMAND) $(PKG_SBIN_DIR)/$(LTCOMMAND) ++ $(LTINSTALL) -m 755 $(LTCOMMAND) $(PKG_SBIN_DIR) + install-dev: + + .dep: $(COMMINCL) $(COMMON) $(INVINCL) $(INVCOMMON) +-- +2.7.4 + diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-filesystems/recipes-utils/xfsdump/files/work-with-new-version-of-xfsprogs.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-filesystems/recipes-utils/xfsdump/files/work-with-new-version-of-xfsprogs.patch new file mode 100644 index 00000000..4ce23d71 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-filesystems/recipes-utils/xfsdump/files/work-with-new-version-of-xfsprogs.patch @@ -0,0 +1,28 @@ +Make it work with xfsprogs 5.2.0. + +"xfs_fsop_geom_v1_t" has changed to "struct xfs_fsop_geom_v1" +in xfsprogs since version 5.2.0. + +Upstream-Status: Pending + +Signed-off-by: Yuan Chao +--- + common/fs.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/common/fs.c b/common/fs.c +index 60cf0fd..2cc7031 100644 +--- a/common/fs.c ++++ b/common/fs.c +@@ -204,7 +204,7 @@ fs_mounted( char *typs, char *chrs, char *mnts, uuid_t *idp ) + int + fs_getid( char *mnts, uuid_t *idb ) + { +- xfs_fsop_geom_v1_t geo; ++ struct xfs_fsop_geom_v1 geo; + int fd; + + fd = open( mnts, O_RDONLY ); +-- +2.7.4 + diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-filesystems/recipes-utils/xfsdump/xfsdump_3.1.8.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-filesystems/recipes-utils/xfsdump/xfsdump_3.1.8.bb index 54ab30cb..9c575586 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-filesystems/recipes-utils/xfsdump/xfsdump_3.1.8.bb +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-filesystems/recipes-utils/xfsdump/xfsdump_3.1.8.bb @@ -12,6 +12,8 @@ DEPENDS = "xfsprogs attr" SRC_URI = "https://www.kernel.org/pub/linux/utils/fs/xfs/xfsdump/${BP}.tar.xz \ file://remove-install-as-user.patch \ + file://work-with-new-version-of-xfsprogs.patch \ + ${@bb.utils.contains('DISTRO_FEATURES','usrmerge','file://0001-xfsdump-support-usrmerge.patch','',d)} \ " SRC_URI[md5sum] = "84d3bc287b4a2bb5d16b2320a47049a7" SRC_URI[sha256sum] = "ed14e67ae5b273c2698e767b43a46f033d361e540fe13feaaf9b110ee0edc585" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-filesystems/recipes-utils/xfsprogs/files/0001-build-Check-for-sync_file_range-libc-function.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-filesystems/recipes-utils/xfsprogs/files/0001-build-Check-for-sync_file_range-libc-function.patch deleted file mode 100644 index b5071aea..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-filesystems/recipes-utils/xfsprogs/files/0001-build-Check-for-sync_file_range-libc-function.patch +++ /dev/null @@ -1,79 +0,0 @@ -From 1a4c9ebbb8731f2e3631d77b7eeaf3c373141d88 Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Wed, 31 Jan 2018 21:28:53 -0800 -Subject: [PATCH] build: Check for sync_file_range libc function - -glibc 2.27 now has sync_file_range() - -Upstream-Status: Pending - -Signed-off-by: Khem Raj ---- - include/builddefs.in | 1 + - io/Makefile | 5 ++++- - io/io.h | 2 +- - io/sync_file_range.c | 3 +++ - 4 files changed, 9 insertions(+), 2 deletions(-) - -diff --git a/include/builddefs.in b/include/builddefs.in -index d38dc7e..706eca6 100644 ---- a/include/builddefs.in -+++ b/include/builddefs.in -@@ -94,6 +94,7 @@ HAVE_FIEMAP = @have_fiemap@ - HAVE_PREADV = @have_preadv@ - HAVE_PWRITEV2 = @have_pwritev2@ - HAVE_COPY_FILE_RANGE = @have_copy_file_range@ -+HAVE_NR_COPY_FILE_RANGE = @have_nr_copy_file_range@ - HAVE_SYNC_FILE_RANGE = @have_sync_file_range@ - HAVE_SYNCFS = @have_syncfs@ - HAVE_READDIR = @have_readdir@ -diff --git a/io/Makefile b/io/Makefile -index 484e2b5..2751dcb 100644 ---- a/io/Makefile -+++ b/io/Makefile -@@ -53,10 +53,13 @@ else - LSRCFILES += fiemap.c - endif - --ifeq ($(HAVE_COPY_FILE_RANGE),yes) -+ifeq ($(HAVE_NR_COPY_FILE_RANGE),yes) - CFILES += copy_file_range.c -+LCFLAGS += -DHAVE_NR_COPY_FILE_RANGE -+ifeq ($(HAVE_COPY_FILE_RANGE),yes) - LCFLAGS += -DHAVE_COPY_FILE_RANGE - endif -+endif - - ifeq ($(HAVE_SYNC_FILE_RANGE),yes) - CFILES += sync_file_range.c -diff --git a/io/io.h b/io/io.h -index 6469179..678b3d7 100644 ---- a/io/io.h -+++ b/io/io.h -@@ -146,7 +146,7 @@ extern void fiemap_init(void); - #define fiemap_init() do { } while (0) - #endif - --#ifdef HAVE_COPY_FILE_RANGE -+#if defined(HAVE_NR_COPY_FILE_RANGE) && !defined(HAVE_COPY_FILE_RANGE) - extern void copy_range_init(void); - #else - #define copy_range_init() do { } while (0) -diff --git a/io/sync_file_range.c b/io/sync_file_range.c -index 30bbc93..6c49d73 100644 ---- a/io/sync_file_range.c -+++ b/io/sync_file_range.c -@@ -4,6 +4,7 @@ - * All Rights Reserved. - */ - -+#ifndef HAVE_COPY_FILE_RANGE - #include "command.h" - #include "input.h" - #include "init.h" -@@ -92,3 +93,5 @@ sync_range_init(void) - - add_command(&sync_range_cmd); - } -+ -+#endif diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-filesystems/recipes-utils/xfsprogs/files/0001-support-usrmerge.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-filesystems/recipes-utils/xfsprogs/files/0001-support-usrmerge.patch new file mode 100644 index 00000000..84f4f88e --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-filesystems/recipes-utils/xfsprogs/files/0001-support-usrmerge.patch @@ -0,0 +1,40 @@ +From e81633a276dd6a9f919e5e5c15481ac50a8e485d Mon Sep 17 00:00:00 2001 +From: Changqing Li +Date: Fri, 30 Aug 2019 14:59:06 +0800 +Subject: [PATCH] support usrmerge + +Upstream-Status: Inappropriate [oe-specific] + +Signed-off-by: Changqing Li +--- + configure.ac | 7 +++---- + 1 file changed, 3 insertions(+), 4 deletions(-) + +diff --git a/configure.ac b/configure.ac +index 4b7e4c8..f1afbd6 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -110,8 +110,7 @@ AC_ARG_ENABLE(libicu, + # If the user specified a libdir ending in lib64 do not append another + # 64 to the library names. + # +-base_libdir=`basename "$libdir"` +-case $base_libdir in ++case `basename "$libdir"` in + lib64) + enable_lib64=no + esac +@@ -125,8 +124,8 @@ esac + # + case $exec_prefix:$prefix in + NONE:NONE | NONE:/usr | /usr:*) +- root_sbindir='/sbin' +- root_libdir="/${base_libdir}" ++ root_sbindir="${base_sbindir}" ++ root_libdir="${base_libdir}" + ;; + *) + root_sbindir="${sbindir}" +-- +2.7.4 + diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-filesystems/recipes-utils/xfsprogs/xfsprogs_5.0.0.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-filesystems/recipes-utils/xfsprogs/xfsprogs_5.0.0.bb deleted file mode 100644 index 188c5668..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-filesystems/recipes-utils/xfsprogs/xfsprogs_5.0.0.bb +++ /dev/null @@ -1,73 +0,0 @@ -SUMMARY = "XFS Filesystem Utilities" -HOMEPAGE = "http://oss.sgi.com/projects/xfs" -SECTION = "base" -LICENSE = "GPLv2 & LGPLv2.1" -LICENSE_libhandle = "LGPLv2.1" -LIC_FILES_CHKSUM = "file://LICENSES/GPL-2.0;md5=74274e8a218423e49eefdea80bc55038 \ - file://LICENSES/LGPL-2.1;md5=b370887980db5dd40659b50909238dbd" -DEPENDS = "util-linux util-linux-native" -SRC_URI = "https://www.kernel.org/pub/linux/utils/fs/xfs/xfsprogs/${BP}.tar.xz \ - file://remove_flags_from_build_flags.patch \ - file://0001-build-Check-for-sync_file_range-libc-function.patch \ - file://0001-Check-for-MAP_SYNC-in-sys-mman.h.patch \ - file://0002-include-include-xfs-linux.h-after-sys-mman.h.patch \ - " -SRC_URI[md5sum] = "b6acc4aa93a952595fc8f2e7447be6f2" -SRC_URI[sha256sum] = "fcc2e6478aed55408a341567c0459f514e575296d8827d9004cae8aa0367dc4a" - -inherit autotools-brokensep - -PACKAGES =+ "${PN}-fsck ${PN}-mkfs ${PN}-repair libhandle" - -DEPENDS += "util-linux" - -RDEPENDS_${PN} = "${PN}-fsck ${PN}-mkfs ${PN}-repair" - -FILES_${PN}-fsck = "${base_sbindir}/fsck.xfs" -FILES_${PN}-mkfs = "${base_sbindir}/mkfs.xfs" -FILES_${PN}-repair = "${base_sbindir}/xfs_repair" - -FILES_libhandle = "${base_libdir}/libhandle${SOLIBS}" - -EXTRA_OECONF = "--enable-gettext=no \ - --enable-scrub=no \ - INSTALL_USER=root \ - INSTALL_GROUP=root \ - ac_cv_header_aio_h=yes \ - ac_cv_lib_rt_lio_listio=yes \ -" - -DISABLE_STATIC = "" -EXTRA_AUTORECONF += "-I ${S}/m4 --exclude=autoheader" - -PACKAGECONFIG ??= "readline blkid" - -PACKAGECONFIG[readline] = "--enable-readline=yes,--enable-readline=no,readline" -PACKAGECONFIG[blkid] = "--enable-blkid=yes,--enable-blkid=no,util-linux" - -export DEBUG="-DNDEBUG" -export BUILD_VERBOSE="1" -export tagname="CC" - -EXTRA_OEMAKE = "DIST_ROOT='${D}'" - -do_configure () { - export BUILD_CC="${BUILD_CC} ${BUILD_CFLAGS}" - # Prevent Makefile from calling configure without arguments, - # when do_configure gets called for a second time. - rm -f ${B}/include/builddefs ${B}/include/platform_defs.h ${B}/configure - # Recreate configure script. - oe_runmake configure - install -m 0755 ${STAGING_DATADIR_NATIVE}/gnu-config/config.guess ${S} - install -m 0755 ${STAGING_DATADIR_NATIVE}/gnu-config/config.sub ${S} - oe_runconf -} - -do_install_append() { - oe_runmake 'DESTDIR=${D}' install-dev - rm ${D}${libdir}/*.la - rmdir --ignore-fail-on-non-empty ${D}${libdir} - - ln -sf -r ${D}${libdir}/libhandle.a ${D}${base_libdir}/libhandle.a - ln -sf -r ${D}${base_libdir}/libhandle.so ${D}${libdir}/libhandle.so -} diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-filesystems/recipes-utils/xfsprogs/xfsprogs_5.2.1.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-filesystems/recipes-utils/xfsprogs/xfsprogs_5.2.1.bb new file mode 100644 index 00000000..34b33864 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-filesystems/recipes-utils/xfsprogs/xfsprogs_5.2.1.bb @@ -0,0 +1,75 @@ +SUMMARY = "XFS Filesystem Utilities" +HOMEPAGE = "http://oss.sgi.com/projects/xfs" +SECTION = "base" +LICENSE = "GPLv2 & LGPLv2.1" +LICENSE_libhandle = "LGPLv2.1" +LIC_FILES_CHKSUM = "file://LICENSES/GPL-2.0;md5=74274e8a218423e49eefdea80bc55038 \ + file://LICENSES/LGPL-2.1;md5=b370887980db5dd40659b50909238dbd" +DEPENDS = "util-linux util-linux-native" +SRC_URI = "https://www.kernel.org/pub/linux/utils/fs/xfs/xfsprogs/${BP}.tar.xz \ + file://remove_flags_from_build_flags.patch \ + file://0001-Check-for-MAP_SYNC-in-sys-mman.h.patch \ + file://0002-include-include-xfs-linux.h-after-sys-mman.h.patch \ + file://0001-support-usrmerge.patch \ + " +SRC_URI[md5sum] = "5ca3f79e76e3fb984a03d1b42a2e60ba" +SRC_URI[sha256sum] = "7b500e148cebd08f99e37cf744c7843817b37e7be2a32c4dc57d6ea16e3019ae" + +inherit autotools-brokensep + +PACKAGES =+ "${PN}-fsck ${PN}-mkfs ${PN}-repair libhandle" + +DEPENDS += "util-linux" + +RDEPENDS_${PN} = "${PN}-fsck ${PN}-mkfs ${PN}-repair" + +FILES_${PN}-fsck = "${base_sbindir}/fsck.xfs" +FILES_${PN}-mkfs = "${base_sbindir}/mkfs.xfs" +FILES_${PN}-repair = "${base_sbindir}/xfs_repair" + +FILES_libhandle = "${base_libdir}/libhandle${SOLIBS}" + +EXTRA_OECONF = "--enable-gettext=no \ + --enable-scrub=no \ + INSTALL_USER=root \ + INSTALL_GROUP=root \ + ac_cv_header_aio_h=yes \ + ac_cv_lib_rt_lio_listio=yes \ +" + +DISABLE_STATIC = "" +EXTRA_AUTORECONF += "-I ${S}/m4 --exclude=autoheader" + +PACKAGECONFIG ??= "readline blkid" + +PACKAGECONFIG[readline] = "--enable-readline=yes,--enable-readline=no,readline" +PACKAGECONFIG[blkid] = "--enable-blkid=yes,--enable-blkid=no,util-linux" + +export DEBUG="-DNDEBUG" +export BUILD_VERBOSE="1" +export tagname="CC" + +EXTRA_OEMAKE = "DIST_ROOT='${D}'" + +do_configure () { + export BUILD_CC="${BUILD_CC} ${BUILD_CFLAGS}" + # Prevent Makefile from calling configure without arguments, + # when do_configure gets called for a second time. + rm -f ${B}/include/builddefs ${B}/include/platform_defs.h ${B}/configure + # Recreate configure script. + oe_runmake configure + install -m 0755 ${STAGING_DATADIR_NATIVE}/gnu-config/config.guess ${S} + install -m 0755 ${STAGING_DATADIR_NATIVE}/gnu-config/config.sub ${S} + oe_runconf +} + +do_install_append() { + oe_runmake 'DESTDIR=${D}' install-dev + rm ${D}${libdir}/*.la + rmdir --ignore-fail-on-non-empty ${D}${libdir} + + if [ ${libdir} != ${base_libdir} ];then + ln -sf -r ${D}${libdir}/libhandle.a ${D}${base_libdir}/libhandle.a + ln -sf -r ${D}${base_libdir}/libhandle.so ${D}${libdir}/libhandle.so + fi +} diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-filesystems/recipes-utils/xorriso/xorriso_1.4.0.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-filesystems/recipes-utils/xorriso/xorriso_1.4.0.bb deleted file mode 100644 index b26709e9..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-filesystems/recipes-utils/xorriso/xorriso_1.4.0.bb +++ /dev/null @@ -1,29 +0,0 @@ -DESCRIPTION = "xorriso copies file objects from POSIX compliant filesystems \ -into Rock Ridge enhanced ISO 9660 filesystems and allows session-wise \ -manipulation of such filesystems" - -LICENSE = "GPLv3" -LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504" - -SRC_URI = "http://www.gnu.org/software/${BPN}/${BPN}-${PV}.tar.gz" - -SRC_URI[md5sum] = "ec79fd2736b8da76e7a870e27cadf6fa" -SRC_URI[sha256sum] = "0bd1e085015b28c24f57697d6def2fe84517967dc417554c0c3ccf1685ed0e56" - -PACKAGECONFIG ??= "acl attr zlib bzip2 readline" -PACKAGECONFIG[acl] = "--enable-libacl,--disable-libacl,acl," -PACKAGECONFIG[attr] = "--enable-xattr,--disable-xattr,attr," -PACKAGECONFIG[zlib] = "--enable-zlib,--disable-zlib,zlib," -PACKAGECONFIG[bzip2] = "--enable-libbz2,--disable-libbz2,bzip2," -PACKAGECONFIG[readline] = "--enable-libreadline,--disable-libreadline,readline," - -inherit autotools-brokensep pkgconfig distro_features_check - -do_configure_prepend () { - touch NEWS -} - -RDEPENDS_${PN} = "tk" -REQUIRED_DISTRO_FEATURES = "x11" - -BBCLASSEXTEND = "native" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-filesystems/recipes-utils/xorriso/xorriso_1.5.3.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-filesystems/recipes-utils/xorriso/xorriso_1.5.3.bb new file mode 100644 index 00000000..30224c20 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-filesystems/recipes-utils/xorriso/xorriso_1.5.3.bb @@ -0,0 +1,29 @@ +DESCRIPTION = "xorriso copies file objects from POSIX compliant filesystems \ +into Rock Ridge enhanced ISO 9660 filesystems and allows session-wise \ +manipulation of such filesystems" + +LICENSE = "GPLv3" +LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504" + +SRC_URI = "http://www.gnu.org/software/${BPN}/${BPN}-${PV}.tar.gz" + +SRC_URI[md5sum] = "d6b16763a2ca23eec718cfac1761b40f" +SRC_URI[sha256sum] = "97a9c9831fa1b053f781f74a17b79327e7402c6163f5c7973453ba881616aeb4" + +PACKAGECONFIG ??= "acl attr zlib bzip2 readline" +PACKAGECONFIG[acl] = "--enable-libacl,--disable-libacl,acl," +PACKAGECONFIG[attr] = "--enable-xattr,--disable-xattr,attr," +PACKAGECONFIG[zlib] = "--enable-zlib,--disable-zlib,zlib," +PACKAGECONFIG[bzip2] = "--enable-libbz2,--disable-libbz2,bzip2," +PACKAGECONFIG[readline] = "--enable-libreadline,--disable-libreadline,readline," + +inherit autotools-brokensep pkgconfig features_check + +do_configure_prepend () { + touch NEWS +} + +RDEPENDS_${PN} = "tk" +REQUIRED_DISTRO_FEATURES = "x11" + +BBCLASSEXTEND = "native" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/README b/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/README index 2a682e72..3c5b4c5f 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/README +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/README @@ -1,23 +1,3 @@ -meta-gnome -=========== - -The recipe in this layer needs to have 'x11' in DISTRO_FEATURES -to have effect. To enable them, add in configuration file the following line. - - DISTRO_FEATURES_append = " x11" - -If meta-gnome is included, but x11 is not enabled as a -distro feature a warning is printed at parse time: - - You have included the meta-gnome layer, but - 'x11' has not been enabled in your DISTRO_FEATURES. - -If you know what you are doing, this warning can be disabled by setting the following -variable in your configuration: - - SKIP_META_GNOME_SANITY_CHECK = 1 - - Dependencies ------------ This layer depends on: diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/classes/gnome-help.bbclass b/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/classes/gnome-help.bbclass new file mode 100644 index 00000000..967091ba --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/classes/gnome-help.bbclass @@ -0,0 +1,69 @@ +# Class to pack gnome help files or delete them during install +# There are the following cases: +# +# if 'helpfiles' not in DISTRO_FEATURES +# delete all help contants during install +# else +# if PACKAGE_NO_HELP_SPLIT == 1 +# pack all help files to ${PN}-help +# else +# pack all help files to ${PN}-help- + +FILES_${PN}-help = "${datadir}/*/translations" + +# Dummy to get yelp build & PACKAGE_NO_HELP_SPLIT set 1 +PACKAGES_append = " ${PN}-help" +FILES_${PN}-help = "${datadir}/help" +RRECOMMENDS_${PN}-help = "${@bb.utils.contains('DISTRO_FEATURES','helpfiles','yelp','',d)}" + +do_install_append() { + if ${@bb.utils.contains('DISTRO_FEATURES','helpfiles','false','true',d)}; then + rm -rf ${D}${datadir}/help/* + fi +} + +python gnome_do_split_help() { + if bb.utils.contains('DISTRO_FEATURES', 'helpfiles', False, True, d): + return + + if (d.getVar('PACKAGE_NO_HELP_SPLIT') == '1'): + # all help files go to ${ + bb.debug(1, "package requested not splitting help-files") + return + + packages = (d.getVar('PACKAGES') or "").split() + datadir = d.getVar('datadir') + dvar = d.getVar('PKGD') + pn = d.getVar('PN') + + if pn + '-help' in packages: + packages.remove(pn + '-help') + + helpdir = os.path.join(dvar + datadir, 'help') + + if not cpath.isdir(helpdir): + bb.warn("No help files in this package - remove gnome-help from inherit?") + return + + helps = os.listdir(helpdir) + + summary = d.getVar('SUMMARY') or pn + description = d.getVar('DESCRIPTION') or "" + locale_section = d.getVar('LOCALE_SECTION') + mlprefix = d.getVar('MLPREFIX') or "" + for l in sorted(helps): + ln = legitimize_package_name(l) + pkg = pn + '-help-' + ln + packages.append(pkg) + d.setVar('FILES_' + pkg, os.path.join(datadir, 'help', l)) + d.setVar('RRECOMMENDS_' + pkg, '%syelp' % mlprefix) + d.setVar('SUMMARY_' + pkg, '%s - %s help' % (summary, l)) + d.setVar('DESCRIPTION_' + pkg, '%s This package contains language help files for the %s locale.' % (description, l)) + if locale_section: + d.setVar('SECTION_' + pkg, locale_section) + + d.setVar('PACKAGES', ' '.join(packages)) +} + +PACKAGESPLITFUNCS_prepend = "gnome_do_split_help " + diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/classes/sanity-meta-gnome.bbclass b/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/classes/sanity-meta-gnome.bbclass deleted file mode 100644 index 331ea193..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/classes/sanity-meta-gnome.bbclass +++ /dev/null @@ -1,10 +0,0 @@ -addhandler gnome_bbappend_distrocheck -gnome_bbappend_distrocheck[eventmask] = "bb.event.SanityCheck" -python gnome_bbappend_distrocheck() { - skip_check = e.data.getVar('SKIP_META_GNOME_SANITY_CHECK') == "1" - if 'x11' not in e.data.getVar('DISTRO_FEATURES').split() and not skip_check: - bb.warn("You have included the meta-gnome layer, but \ -'x11' has not been enabled in your DISTRO_FEATURES. Some bbappend files \ -may not take effect. See the meta-gnome README for details on enabling \ -meta-gnome support.") -} diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/conf/layer.conf b/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/conf/layer.conf index 0b68232d..d381fdf0 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/conf/layer.conf +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/conf/layer.conf @@ -8,14 +8,13 @@ BBFILE_COLLECTIONS += "gnome-layer" BBFILE_PATTERN_gnome-layer := "^${LAYERDIR}/" BBFILE_PRIORITY_gnome-layer = "7" +# auto-pack gnome help files +IMAGE_LINGUAS_COMPLEMENTARY_append = " ${@bb.utils.contains('DISTRO_FEATURES','helpfiles','*-help-%s','',d)}" + # This should only be incremented on significant changes that will # cause compatibility issues with other layers LAYERVERSION_gnome-layer = "1" LAYERDEPENDS_gnome-layer = "core openembedded-layer networking-layer" -LAYERSERIES_COMPAT_gnome-layer = "thud warrior" - -# Sanity check for meta-gnome layer. -# Setting SKIP_META_GNOME_SANITY_CHECK to "1" would skip the bbappend files check. -INHERIT += "sanity-meta-gnome" +LAYERSERIES_COMPAT_gnome-layer = "thud warrior zeus" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-apps/pinpoint/pinpoint_git.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-apps/pinpoint/pinpoint_git.bb deleted file mode 100644 index bf5178cf..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-apps/pinpoint/pinpoint_git.bb +++ /dev/null @@ -1,24 +0,0 @@ -SUMMARY = "A simple presentation tool for hackers" -DESCRIPTION = "Pinpoint is a simple presentation tool that hopes to avoid audience death \ - by bullet point and instead encourage presentations containing beautiful \ - images and small amounts of concise text in slides." -SECTION = "x11/multimedia" -LICENSE = "LGPLv2.1" -LIC_FILES_CHKSUM = "file://COPYING;md5=fbc093901857fcd118f065f900982c24 \ - file://pinpoint.c;beginline=6;endline=17;md5=201d438283607da393fae6aca085454c" - -DEPENDS = "glib-2.0 gdk-pixbuf cogl-1.0 clutter-1.0 clutter-gst-3.0 librsvg" - -inherit autotools gettext pkgconfig distro_features_check - -# cogl requires opengl -REQUIRED_DISTRO_FEATURES = "opengl" - -SRC_URI = "git://git.gnome.org/pinpoint" - -SRCREV = "80a056c57e819d0b75035424638813b0670830e1" -PV = "0.1.4+gitr${SRCPV}" - -S = "${WORKDIR}/git" - -RRECOMMENDS_${PN} = "gdk-pixbuf-loader-jpeg gdk-pixbuf-loader-png" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-connectivity/network-manager-applet/network-manager-applet_1.8.20.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-connectivity/network-manager-applet/network-manager-applet_1.8.20.bb deleted file mode 100644 index 80aafc87..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-connectivity/network-manager-applet/network-manager-applet_1.8.20.bb +++ /dev/null @@ -1,51 +0,0 @@ -SUMMARY = "GTK+ applet for NetworkManager" -LICENSE = "GPLv2" -LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552" - -DEPENDS = "gtk+3 libnotify libsecret networkmanager \ - gconf libgnome-keyring iso-codes nss \ - intltool-native \ -" - -GNOMEBASEBUILDCLASS = "autotools-brokensep" -inherit distro_features_check gnomebase gsettings gtk-icon-cache gobject-introspection - -REQUIRED_DISTRO_FEATURES = "x11" - -SRC_URI[archive.md5sum] = "06aafa851762146034351aa72ebb23d4" -SRC_URI[archive.sha256sum] = "050dbb155566c715239dc0378844d8beed10954e64e71014ecef8ca912df34ec" - -PACKAGECONFIG[modemmanager] = "--with-wwan,--without-wwan,modemmanager" -PACKAGECONFIG[mobile-provider-info] = "--enable-mobile-broadband-provider-info,--disable-mobile-broadband-provider-info,mobile-broadband-provider-info,mobile-broadband-provider-info" -PACKAGECONFIG ??= "" - -EXTRA_OECONF = " \ - --without-selinux \ -" - -do_configure_append() { - # Sigh... --enable-compile-warnings=no doesn't actually turn off -Werror - for i in $(find ${B} -name "Makefile") ; do - sed -i -e s%-Werror[^[:space:]]*%%g $i - done -} - -# gobject-introspection related -GI_DATA_ENABLED_libc-musl = "False" - -do_compile_prepend() { - export GIR_EXTRA_LIBS_PATH="${B}/src/libnma/.libs" -} - -RDEPENDS_${PN} =+ "networkmanager" - -FILES_${PN} += " \ - ${datadir}/nm-applet/ \ - ${datadir}/libnma/wifi.ui \ - ${datadir}/metainfo \ -" - -# musl builds generate gir files which otherwise go un-packaged -FILES_${PN}-dev += " \ - ${datadir}/gir-1.0 \ -" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-connectivity/network-manager-applet/network-manager-applet_1.8.24.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-connectivity/network-manager-applet/network-manager-applet_1.8.24.bb new file mode 100644 index 00000000..0853407c --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-connectivity/network-manager-applet/network-manager-applet_1.8.24.bb @@ -0,0 +1,29 @@ +SUMMARY = "GTK+ applet for NetworkManager" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552" + +DEPENDS = "gtk+3 libnotify libsecret networkmanager iso-codes nss" + +GNOMEBASEBUILDCLASS = "meson" +inherit features_check gnomebase gsettings gtk-doc gtk-icon-cache gobject-introspection gettext + +REQUIRED_DISTRO_FEATURES = "x11" + +SRC_URI[archive.md5sum] = "5c1bf351fde5adc12200345550516050" +SRC_URI[archive.sha256sum] = "118bbb8a5027634b62e8b45b16ceafce74441529c99bf230654e3bec38f9fbbf" + +GTKDOC_MESON_OPTION = "gtk_doc" + +PACKAGECONFIG ??= "" +PACKAGECONFIG[gcr] = "-Dgcr=true, -Dgcr=false, gcr" +PACKAGECONFIG[modemmanager] = "-Dwwan=true, -Dwwan=false, modemmanager" +PACKAGECONFIG[mobile-provider-info] = "-Dmobile_broadband_provider_info=true, -Dmobile_broadband_provider_info=false, mobile-broadband-provider-info,mobile-broadband-provider-info" +PACKAGECONFIG[selinux] = "-Dselinux=true, -Dselinux=false, libselinux" + +RDEPENDS_${PN} =+ "networkmanager" + +FILES_${PN} += " \ + ${datadir}/nm-applet/ \ + ${datadir}/libnma/wifi.ui \ + ${datadir}/metainfo \ +" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-extended/gparted/gparted_0.33.0.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-extended/gparted/gparted_0.33.0.bb index a9f6993f..aff994af 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-extended/gparted/gparted_0.33.0.bb +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-extended/gparted/gparted_0.33.0.bb @@ -3,7 +3,7 @@ HOMEPAGE = "http://gparted.org/index.php" LICENSE = "GPLv2" LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f" -inherit distro_features_check autotools pkgconfig gtk-icon-cache +inherit features_check autotools pkgconfig gtk-icon-cache REQUIRED_DISTRO_FEATURES = "x11" @@ -15,7 +15,7 @@ SRC_URI = " \ SRC_URI[md5sum] = "2f481ad34decb7021ca04ca305e79e7d" SRC_URI[sha256sum] = "5023b8c983f88a22e65bf6f09a12ea09369defc008981b52ee8b96a3879f81d6" -DEPENDS = "glib-2.0 glib-2.0-native gtkmm parted gnome-doc-utils intltool-native" +DEPENDS += "glib-2.0 glib-2.0-native gtkmm parted gnome-doc-utils intltool-native" do_install_append() { # Add a script which checks if polkit is installed. diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/abiword/abiword/0001-Bug-13770-Require-C-11-from-now-on.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/abiword/abiword/0001-Bug-13770-Require-C-11-from-now-on.patch deleted file mode 100644 index 3731a23f..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/abiword/abiword/0001-Bug-13770-Require-C-11-from-now-on.patch +++ /dev/null @@ -1,180 +0,0 @@ -From f6d0dc338fe867c1b064682ae7f15bffe019b306 Mon Sep 17 00:00:00 2001 -From: Hubert Figuiere -Date: Tue, 12 Apr 2016 02:55:47 +0000 -Subject: [PATCH] Bug 13770 - Require C++11 from now on. - -git-svn-id: svn+ssh://svn.abisource.com/svnroot/abiword/trunk@35197 bcba8976-2d24-0410-9c9c-aab3bd5fdfd6 - -Upstream-Status: Backport -Signed-off-by: Khem Raj ---- - ax_cxx_compile_stdcxx_11.m4 | 133 +++++++++++++++++++++++++++++++++++ - configure.ac | 1 + - src/wp/ap/gtk/ap_UnixApp.cpp | 2 +- - 3 files changed, 135 insertions(+), 1 deletion(-) - create mode 100644 ax_cxx_compile_stdcxx_11.m4 - -diff --git a/ax_cxx_compile_stdcxx_11.m4 b/ax_cxx_compile_stdcxx_11.m4 -new file mode 100644 -index 0000000..af37acd ---- /dev/null -+++ b/ax_cxx_compile_stdcxx_11.m4 -@@ -0,0 +1,133 @@ -+# ============================================================================ -+# http://www.gnu.org/software/autoconf-archive/ax_cxx_compile_stdcxx_11.html -+# ============================================================================ -+# -+# SYNOPSIS -+# -+# AX_CXX_COMPILE_STDCXX_11([ext|noext],[mandatory|optional]) -+# -+# DESCRIPTION -+# -+# Check for baseline language coverage in the compiler for the C++11 -+# standard; if necessary, add switches to CXXFLAGS to enable support. -+# -+# The first argument, if specified, indicates whether you insist on an -+# extended mode (e.g. -std=gnu++11) or a strict conformance mode (e.g. -+# -std=c++11). If neither is specified, you get whatever works, with -+# preference for an extended mode. -+# -+# The second argument, if specified 'mandatory' or if left unspecified, -+# indicates that baseline C++11 support is required and that the macro -+# should error out if no mode with that support is found. If specified -+# 'optional', then configuration proceeds regardless, after defining -+# HAVE_CXX11 if and only if a supporting mode is found. -+# -+# LICENSE -+# -+# Copyright (c) 2008 Benjamin Kosnik -+# Copyright (c) 2012 Zack Weinberg -+# Copyright (c) 2013 Roy Stogner -+# -+# Copying and distribution of this file, with or without modification, are -+# permitted in any medium without royalty provided the copyright notice -+# and this notice are preserved. This file is offered as-is, without any -+# warranty. -+ -+#serial 3 -+ -+m4_define([_AX_CXX_COMPILE_STDCXX_11_testbody], [ -+ template -+ struct check -+ { -+ static_assert(sizeof(int) <= sizeof(T), "not big enough"); -+ }; -+ -+ typedef check> right_angle_brackets; -+ -+ int a; -+ decltype(a) b; -+ -+ typedef check check_type; -+ check_type c; -+ check_type&& cr = static_cast(c); -+ -+ auto d = a; -+]) -+ -+AC_DEFUN([AX_CXX_COMPILE_STDCXX_11], [dnl -+ m4_if([$1], [], [], -+ [$1], [ext], [], -+ [$1], [noext], [], -+ [m4_fatal([invalid argument `$1' to AX_CXX_COMPILE_STDCXX_11])])dnl -+ m4_if([$2], [], [ax_cxx_compile_cxx11_required=true], -+ [$2], [mandatory], [ax_cxx_compile_cxx11_required=true], -+ [$2], [optional], [ax_cxx_compile_cxx11_required=false], -+ [m4_fatal([invalid second argument `$2' to AX_CXX_COMPILE_STDCXX_11])])dnl -+ AC_LANG_PUSH([C++])dnl -+ ac_success=no -+ AC_CACHE_CHECK(whether $CXX supports C++11 features by default, -+ ax_cv_cxx_compile_cxx11, -+ [AC_COMPILE_IFELSE([AC_LANG_SOURCE([_AX_CXX_COMPILE_STDCXX_11_testbody])], -+ [ax_cv_cxx_compile_cxx11=yes], -+ [ax_cv_cxx_compile_cxx11=no])]) -+ if test x$ax_cv_cxx_compile_cxx11 = xyes; then -+ ac_success=yes -+ fi -+ -+ m4_if([$1], [noext], [], [dnl -+ if test x$ac_success = xno; then -+ for switch in -std=gnu++11 -std=gnu++0x; do -+ cachevar=AS_TR_SH([ax_cv_cxx_compile_cxx11_$switch]) -+ AC_CACHE_CHECK(whether $CXX supports C++11 features with $switch, -+ $cachevar, -+ [ac_save_CXXFLAGS="$CXXFLAGS" -+ CXXFLAGS="$CXXFLAGS $switch" -+ AC_COMPILE_IFELSE([AC_LANG_SOURCE([_AX_CXX_COMPILE_STDCXX_11_testbody])], -+ [eval $cachevar=yes], -+ [eval $cachevar=no]) -+ CXXFLAGS="$ac_save_CXXFLAGS"]) -+ if eval test x\$$cachevar = xyes; then -+ CXXFLAGS="$CXXFLAGS $switch" -+ ac_success=yes -+ break -+ fi -+ done -+ fi]) -+ -+ m4_if([$1], [ext], [], [dnl -+ if test x$ac_success = xno; then -+ for switch in -std=c++11 -std=c++0x; do -+ cachevar=AS_TR_SH([ax_cv_cxx_compile_cxx11_$switch]) -+ AC_CACHE_CHECK(whether $CXX supports C++11 features with $switch, -+ $cachevar, -+ [ac_save_CXXFLAGS="$CXXFLAGS" -+ CXXFLAGS="$CXXFLAGS $switch" -+ AC_COMPILE_IFELSE([AC_LANG_SOURCE([_AX_CXX_COMPILE_STDCXX_11_testbody])], -+ [eval $cachevar=yes], -+ [eval $cachevar=no]) -+ CXXFLAGS="$ac_save_CXXFLAGS"]) -+ if eval test x\$$cachevar = xyes; then -+ CXXFLAGS="$CXXFLAGS $switch" -+ ac_success=yes -+ break -+ fi -+ done -+ fi]) -+ AC_LANG_POP([C++]) -+ if test x$ax_cxx_compile_cxx11_required = xtrue; then -+ if test x$ac_success = xno; then -+ AC_MSG_ERROR([*** A compiler with support for C++11 language features is required.]) -+ fi -+ else -+ if test x$ac_success = xno; then -+ HAVE_CXX11=0 -+ AC_MSG_NOTICE([No compiler with C++11 support was found]) -+ else -+ HAVE_CXX11=1 -+ AC_DEFINE(HAVE_CXX11,1, -+ [define if the compiler supports basic C++11 syntax]) -+ fi -+ -+ AC_SUBST(HAVE_CXX11) -+ fi -+]) -diff --git a/configure.ac b/configure.ac -index 48228be..f7be7de 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -131,6 +131,7 @@ win_pkgs="$enchant_req" - - AC_PROG_CC - AC_PROG_CXX -+AX_CXX_COMPILE_STDCXX_11(noext,mandatory) - #AC_PROG_OBJC - AC_PROG_INSTALL - # For libtool 1.5.x compatability (AC_PROG_LIBTOOL is deprecated version of LT_INIT) -diff --git a/src/wp/ap/gtk/ap_UnixApp.cpp b/src/wp/ap/gtk/ap_UnixApp.cpp -index 061a304..260f8e5 100644 ---- a/src/wp/ap/gtk/ap_UnixApp.cpp -+++ b/src/wp/ap/gtk/ap_UnixApp.cpp -@@ -863,7 +863,7 @@ static bool is_so (const char *file) { - if (len < (strlen(G_MODULE_SUFFIX) + 2)) // this is ".so" and at least one char for the filename - return false; - const char *suffix = file+(len-3); -- if(0 == strcmp (suffix, "."G_MODULE_SUFFIX)) -+ if(0 == strcmp (suffix, "." G_MODULE_SUFFIX)) - return true; - return false; - } diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/abiword/abiword/0001-plugins-aiksaurus-Makefile.am-remove-uncomplete-opti.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/abiword/abiword/0001-plugins-aiksaurus-Makefile.am-remove-uncomplete-opti.patch deleted file mode 100644 index 0dff1411..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/abiword/abiword/0001-plugins-aiksaurus-Makefile.am-remove-uncomplete-opti.patch +++ /dev/null @@ -1,39 +0,0 @@ -From c646159ce817506131b58fdab1cdc1cd6364df7a Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Andreas=20M=C3=BCller?= -Date: Sun, 7 Feb 2016 21:45:20 +0100 -Subject: [PATCH] plugins/aiksaurus/Makefile.am: remove uncomplete options - WITH_BUILTIN_AIKSAURUS_GTK -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -* with gtk2 we won't use it -* it is missing in configure.ac causing - -| plugins/aiksaurus/Makefile.am:5: error: WITH_BUILTIN_AIKSAURUS_GTK does not appear in AM_CONDITIONAL - -Upstream-Status: Pending - -Signed-off-by: Andreas Müller ---- - plugins/aiksaurus/Makefile.am | 4 ---- - 1 file changed, 4 deletions(-) - -diff --git a/plugins/aiksaurus/Makefile.am b/plugins/aiksaurus/Makefile.am -index d402c58..1034e2a 100644 ---- a/plugins/aiksaurus/Makefile.am -+++ b/plugins/aiksaurus/Makefile.am -@@ -2,10 +2,6 @@ SUBDIRS = - - if TOOLKIT_GTK - --if WITH_BUILTIN_AIKSAURUS_GTK --SUBDIRS += aiksaurusgtk3 --platform_lib = aiksaurusgtk3/libAiksaurusGtk3.la --endif - - endif - --- -2.5.0 - diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/abiword/abiword_3.0.2.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/abiword/abiword_3.0.2.bb deleted file mode 100644 index 36b056fd..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/abiword/abiword_3.0.2.bb +++ /dev/null @@ -1,142 +0,0 @@ -SUMMARY = "AbiWord is free word processing program similar to Microsoft(r) Word" -HOMEPAGE = "http://www.abiword.org" -SECTION = "x11/office" -LICENSE = "GPLv2" -LIC_FILES_CHKSUM = "file://COPYING;md5=ecd3ac329fca77e2d0e412bec38e1c20" -DEPENDS = " \ - perl-native \ - gtk+ \ - gtkmathview \ - wv \ - fribidi \ - jpeg \ - libpng \ - librsvg \ - libwmf-native \ - asio \ - evolution-data-server \ - libxslt \ - ${@bb.utils.contains('BBFILE_COLLECTIONS', 'office-layer', 'redland rasqal', '', d)} \ -" -RDEPENDS_${PN}_append_libc-glibc = " \ - glibc-gconv-ibm850 glibc-gconv-cp1252 \ - glibc-gconv-iso8859-15 glibc-gconv-iso8859-1 \ -" -RCONFLICTS_${PN} = "${PN}-embedded" - -SRC_URI = "http://www.abisource.com/downloads/${BPN}/${PV}/source/${BP}.tar.gz \ - file://0001-plugins-aiksaurus-Makefile.am-remove-uncomplete-opti.patch \ - file://0001-Bug-13770-Require-C-11-from-now-on.patch \ - " - -LIC_FILES_CHKSUM = "file://COPYING;md5=c5edcc3ccd864b19004d14e9c1c9a26a" - -SRC_URI[md5sum] = "cda6dd58c747c133b421cc7eb18f5796" -SRC_URI[sha256sum] = "afbfd458fd02989d8b0c6362ba8a4c14686d89666f54cfdb5501bd2090cf3522" - -#want 3.x from 3.x.y for the installation directory -SHRT_VER = "${@d.getVar('PV').split('.')[0]}.${@d.getVar('PV').split('.')[1]}" - -inherit distro_features_check autotools-brokensep pkgconfig - -REQUIRED_DISTRO_FEATURES = "x11" - -PACKAGECONFIG ??= " \ - collab-backend-xmpp collab-backend-tcp \ - ${@bb.utils.contains('BBFILE_COLLECTIONS', 'office-layer', 'libical', '', d)} \ -" -PACKAGECONFIG[libical] = "--with-libical,--without-libical,libical raptor2" -PACKAGECONFIG[spell] = "--enable-spell,--disable-spell,enchant" -PACKAGECONFIG[collab-backend-xmpp] = "--enable-collab-backend-xmpp,--disable-collab-backend-xmpp,libgsf libxml2 loudmouth" -PACKAGECONFIG[collab-backend-tcp] = "--enable-collab-backend-tcp,--disable-collab-backend-tcp,libgsf libxml2" -PACKAGECONFIG[collab-backend-service] = "--enable-collab-backend-service,--disable-collab-backend-service,libgsf libxml2 libsoup-2.4 gnutls" -PACKAGECONFIG[collab-backend-telepathy] = "--enable-collab-backend-telepathy,--disable-collab-backend-telepathy,libgsf libxml2 telepathy-glib telepathy-mission-control" -PACKAGECONFIG[collab-backend-sugar] = "--enable-collab-backend-sugar,--disable-collab-backend-sugar,libgsf libxml2 dbus-glib" - -EXTRA_OECONF = " --disable-static \ - --enable-plugins \ - --enable-clipart \ - --enable-templates \ - --without-gnomevfs \ - --with-gtk2 \ - --with-libwmf-config=${STAGING_DIR} \ -" - -LDFLAGS += "-lgmodule-2.0" - -do_compile() { - cd goffice-bits2 - make goffice-paths.h - make libgoffice.la - cd ${B} - oe_runmake -} - -PACKAGES += " ${PN}-clipart ${PN}-strings ${PN}-systemprofiles ${PN}-templates " - -FILES_${PN} += " \ - ${libdir}/lib${PN}-*.so \ - ${datadir}/mime-info \ - ${datadir}/icons/* \ - ${datadir}/${PN}-${SHRT_VER}/glade \ - ${datadir}/${PN}-${SHRT_VER}/scripts \ - ${datadir}/${PN}-${SHRT_VER}/system.profile-en \ - ${datadir}/${PN}-${SHRT_VER}/system.profile-en_GB \ - ${datadir}/${PN}-${SHRT_VER}/templates/normal.awt \ - ${datadir}/${PN}-${SHRT_VER}/templates/normal.awt-en_GB \ - ${datadir}/${PN}-${SHRT_VER}/templates/Employee-Directory.awt \ - ${datadir}/${PN}-${SHRT_VER}/templates/Business-Report.awt \ - ${datadir}/${PN}-${SHRT_VER}/templates/Fax-Coversheet.awt \ - ${datadir}/${PN}-${SHRT_VER}/templates/Resume.awt \ - ${datadir}/${PN}-${SHRT_VER}/templates/Two-Columns.awt \ - ${datadir}/${PN}-${SHRT_VER}/templates/Memo.awt \ - ${datadir}/${PN}-${SHRT_VER}/templates/Press-Release.awt \ - ${datadir}/${PN}-${SHRT_VER}/certs \ - ${datadir}/${PN}-${SHRT_VER}/ui \ - ${datadir}/${PN}-${SHRT_VER}/xsl* \ - ${datadir}/${PN}-${SHRT_VER}/mime-info \ - ${datadir}/${PN}-${SHRT_VER}/Pr*.xml \ -" - -# don't steal /usr/lib/libabiword-3.0.so from ${PN} -# in this case it's needed in ${PN} -FILES_${PN}-dev = " \ - ${includedir} \ - ${libdir}/pkgconfig \ - ${libdir}/${PN}*.la \ - ${libdir}/lib${PN}*.la \ - ${libdir}/${PN}-${SHRT_VER}/plugins/*.la \ -" -FILES_${PN}-dbg += "${libdir}/${PN}-${SHRT_VER}/plugins/.debug" -FILES_${PN}-doc += "${datadir}/${PN}-*/readme*" - -FILES_${PN}-strings += "${datadir}/${PN}-${SHRT_VER}/strings" -FILES_${PN}-systemprofiles += "${datadir}/${PN}-${SHRT_VER}/system.profile*" -FILES_${PN}-clipart += "${datadir}/${PN}-${SHRT_VER}/clipart" -FILES_${PN}-strings += "${datadir}/${PN}-${SHRT_VER}/AbiWord/strings" -FILES_${PN}-systemprofiles += "${datadir}/${PN}-${SHRT_VER}/AbiWord/system.profile*" -FILES_${PN}-templates += "${datadir}/${PN}-${SHRT_VER}/templates" - -PACKAGES_DYNAMIC += "^${PN}-meta.* ^${PN}-plugin-.*" - -python populate_packages_prepend () { - abiword_libdir = d.expand('${libdir}/${PN}-${SHRT_VER}/plugins') - do_split_packages(d, abiword_libdir, '(.*)\.so$', 'abiword-plugin-%s', 'Abiword plugin for %s', extra_depends='') - - metapkg = "abiword-meta" - d.setVar('ALLOW_EMPTY_' + metapkg, "1") - d.setVar('FILES_' + metapkg, "") - blacklist = [ 'abiword-plugins-dbg', 'abiword-plugins', 'abiword-plugins-doc', 'abiword-plugins-dev', 'abiword-plugins-locale' ] - metapkg_rdepends = [] - packages = d.getVar('PACKAGES').split() - for pkg in packages[1:]: - if not pkg in blacklist and not pkg in metapkg_rdepends and not pkg.count("-dev") and not pkg.count("-dbg") and not pkg.count("static") and not pkg.count("locale") and not pkg.count("abiword-doc"): - print("Modifying %s" % pkg) - metapkg_rdepends.append(pkg) - d.setVar('RDEPENDS_' + metapkg, ' '.join(metapkg_rdepends)) - d.setVar('DESCRIPTION_' + metapkg, 'abiword-plugin meta package') - packages.append(metapkg) - d.setVar('PACKAGES', ' '.join(packages)) -} - -FILES_${PN}-plugin-openxml += "${datadir}/${PN}-${SHRT_VER}/omml_xslt" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/dconf/dconf-editor_3.32.0.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/dconf/dconf-editor_3.32.0.bb deleted file mode 100644 index 999ed041..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/dconf/dconf-editor_3.32.0.bb +++ /dev/null @@ -1,17 +0,0 @@ -SUMMARY = "Configuration editor for dconf" -LICENSE = "GPLv3" -LIC_FILES_CHKSUM = "file://COPYING;md5=1ebbd3e34237af26da5dc08a4e440464" - -GNOMEBASEBUILDCLASS = "meson" - -DEPENDS = "dconf gtk+3" - -inherit gnomebase vala gettext gsettings bash-completion - -SRC_URI[archive.md5sum] = "331a3603c0f8a9913e3a3c0f178b5310" -SRC_URI[archive.sha256sum] = "f19d1332ac27e23ef3dc2ed07ba4e4646d9d7f05e2e78748aa525a1320adbaba" - -FILES_${PN} += " \ - ${datadir}/dbus-1 \ - ${datadir}/metainfo \ -" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/dconf/dconf-editor_3.34.2.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/dconf/dconf-editor_3.34.2.bb new file mode 100644 index 00000000..699511f7 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/dconf/dconf-editor_3.34.2.bb @@ -0,0 +1,17 @@ +SUMMARY = "Configuration editor for dconf" +LICENSE = "GPLv3" +LIC_FILES_CHKSUM = "file://COPYING;md5=1ebbd3e34237af26da5dc08a4e440464" + +GNOMEBASEBUILDCLASS = "meson" + +DEPENDS = "dconf gtk+3" + +inherit gnomebase vala gettext gsettings bash-completion + +SRC_URI[archive.md5sum] = "2907205ad1a0e2774c981932cb7ff25b" +SRC_URI[archive.sha256sum] = "cecc2a5cb44af68be80e970e83fb9e3e92e2a74df7c90b63324e6da19a929d5f" + +FILES_${PN} += " \ + ${datadir}/dbus-1 \ + ${datadir}/metainfo \ +" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/dconf/dconf/fix-meson-0.52.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/dconf/dconf/fix-meson-0.52.patch new file mode 100644 index 00000000..485c4650 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/dconf/dconf/fix-meson-0.52.patch @@ -0,0 +1,25 @@ +With meson 0.52 the build fails due to duplicate symbols. There is a fix +to meson but the dconf build also needs tweaking. + +https://gitlab.gnome.org/GNOME/dconf/issues/59 +https://github.com/mesonbuild/meson/pull/5936 + +Despite the comments there about this being incorrect, libdconf is unchanged +between 0.51 and 0.52 and this patch. + +Upstream-Status: Pending [under discussion, see above links] +Signed-off-by: Richard Purdie + +Index: dconf-0.34.0/client/meson.build +=================================================================== +--- dconf-0.34.0.orig/client/meson.build ++++ dconf-0.34.0/client/meson.build +@@ -28,7 +28,7 @@ libdconf_client = static_library( + + libdconf_client_dep = declare_dependency( + dependencies: gio_dep, +- link_whole: libdconf_client, ++ link_with: libdconf_client, + ) + + libdconf = shared_library( diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/dconf/dconf_0.32.0.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/dconf/dconf_0.32.0.bb deleted file mode 100644 index 8d1bbdfd..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/dconf/dconf_0.32.0.bb +++ /dev/null @@ -1,21 +0,0 @@ -SUMMARY = "configuation database system" -LICENSE = "LGPLv2.1" -LIC_FILES_CHKSUM = "file://COPYING;md5=2d5025d4aa3495befef8f17206a5b0a1" -SECTION = "x11/gnome" - -SRC_URI[archive.md5sum] = "e1ac0b6285abefeed69ca9e380e44f5a" -SRC_URI[archive.sha256sum] = "68bce78b19bc94cb2c3bb8587e37f9e5e338568c3a674f86edde9c9f1624ffab" - -DEPENDS = "dbus glib-2.0 intltool-native" - -GNOMEBASEBUILDCLASS = "meson" - -inherit gnomebase bash-completion vala - -# I/O error : Attempt to load network entity http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl -EXTRA_OEMESON = "-Dman=false" - -FILES_${PN} += " \ - ${datadir}/dbus-1 \ - ${libdir}/gio/modules/*.so \ -" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/dconf/dconf_0.34.0.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/dconf/dconf_0.34.0.bb new file mode 100644 index 00000000..3c3802f3 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/dconf/dconf_0.34.0.bb @@ -0,0 +1,27 @@ +SUMMARY = "configuation database system" +LICENSE = "LGPLv2.1" +LIC_FILES_CHKSUM = "file://COPYING;md5=2d5025d4aa3495befef8f17206a5b0a1" +SECTION = "x11/gnome" + +SRC_URI[archive.md5sum] = "a3ab18ed51a0494a1c8436fef20cc1b0" +SRC_URI[archive.sha256sum] = "943a94ab16121de5580ceaed2605b87444d1bca1c6cd8beefb778bcb0aa2da52" + +DEPENDS = "dbus glib-2.0 intltool-native" + +GNOMEBASEBUILDCLASS = "meson" + +inherit gnomebase bash-completion vala + +SRC_URI += "file://fix-meson-0.52.patch" + +# I/O error : Attempt to load network entity http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl +EXTRA_OEMESON = "-Dman=false" +# no bash-completion for native +EXTRA_OEMESON_append_class-native = "-Dbash_completion=false" + +FILES_${PN} += " \ + ${datadir}/dbus-1 \ + ${libdir}/gio/modules/*.so \ +" + +BBCLASSEXTEND = "native" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/devilspie/devilspie2_0.43.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/devilspie/devilspie2_0.43.bb index 6ef8e8a6..69c23d56 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/devilspie/devilspie2_0.43.bb +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/devilspie/devilspie2_0.43.bb @@ -14,7 +14,7 @@ SRC_URI = " \ SRC_URI[md5sum] = "26eed0b5b4af5c7e13c551eceaeab832" SRC_URI[sha256sum] = "ecffc17c62b41e196b72340192a90c4223329df041f135e74c0990860595f828" -inherit distro_features_check pkgconfig gettext +inherit features_check pkgconfig gettext REQUIRED_DISTRO_FEATURES = "x11" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/eds/evolution-data-server/0001-CMakeLists.txt-Remove-TRY_RUN-for-iconv.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/eds/evolution-data-server/0001-CMakeLists.txt-Remove-TRY_RUN-for-iconv.patch deleted file mode 100644 index a821a14a..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/eds/evolution-data-server/0001-CMakeLists.txt-Remove-TRY_RUN-for-iconv.patch +++ /dev/null @@ -1,39 +0,0 @@ -From 131b88a81aba3d72d566bc8a9d968941a98e0007 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Andreas=20M=C3=BCller?= -Date: Tue, 19 Dec 2017 16:37:20 +0100 -Subject: [PATCH] CMakeLists.txt: Remove TRY_RUN for iconv -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -| CMake Error: TRY_RUN() invoked in cross-compiling mode, please set the following cache variables appropriately: -| _correct_iconv_EXITCODE (advanced) - -Upstream-Status: Inappropriate [OE specific] - -Signed-off-by: Andreas Müller ---- - CMakeLists.txt | 5 ----- - 1 file changed, 5 deletions(-) - -diff --git a/CMakeLists.txt b/CMakeLists.txt -index 8d07772..a2396f2 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -521,13 +521,8 @@ if(NOT HAVE_ICONV) - endif(NOT HAVE_ICONV) - - set(CMAKE_REQUIRED_LIBRARIES ${ICONV_LIBS}) --CHECK_C_SOURCE_RUNS("#include \"${CMAKE_SOURCE_DIR}/iconv-detect.c\"" _correct_iconv) - unset(CMAKE_REQUIRED_LIBRARIES) - --if(NOT _correct_iconv) -- message(FATAL_ERROR "You need to install a working iconv implementation, such as ftp://ftp.gnu.org/pub/gnu/libiconv") --endif(NOT _correct_iconv) -- - # ****************************** - # Backtraces for debugging - # ****************************** --- -2.14.3 - diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/eds/evolution-data-server/0004-Use-recommended-way-to-handle-the-icu-namespace.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/eds/evolution-data-server/0004-Use-recommended-way-to-handle-the-icu-namespace.patch deleted file mode 100644 index d3b0ac67..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/eds/evolution-data-server/0004-Use-recommended-way-to-handle-the-icu-namespace.patch +++ /dev/null @@ -1,46 +0,0 @@ -From 698a0e104dcbe4b630df848fd4af7c59f76cdc37 Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Sat, 5 May 2018 17:46:52 -0700 -Subject: [PATCH] Use recommended way to handle the icu namespace - -Fixes build with icu >= 61 - -Upstream-Status: Pending - -Signed-off-by: Khem Raj ---- - src/libedataserver/e-alphabet-index-private.cpp | 2 ++ - src/libedataserver/e-transliterator-private.cpp | 2 ++ - 2 files changed, 4 insertions(+) - -diff --git a/src/libedataserver/e-alphabet-index-private.cpp b/src/libedataserver/e-alphabet-index-private.cpp -index d3e44f4..ddffd99 100644 ---- a/src/libedataserver/e-alphabet-index-private.cpp -+++ b/src/libedataserver/e-alphabet-index-private.cpp -@@ -33,9 +33,11 @@ - - /* ICU headers */ - #include -+#include - - using icu::AlphabeticIndex; - using icu::Locale; -+using U_ICU_NAMESPACE::UnicodeString; - - struct _EAlphabetIndex { - AlphabeticIndex *priv; -diff --git a/src/libedataserver/e-transliterator-private.cpp b/src/libedataserver/e-transliterator-private.cpp -index bb15593..573446f 100644 ---- a/src/libedataserver/e-transliterator-private.cpp -+++ b/src/libedataserver/e-transliterator-private.cpp -@@ -33,8 +33,10 @@ - - /* ICU headers */ - #include -+#include - - using icu::Transliterator; -+using U_ICU_NAMESPACE::UnicodeString; - - struct _ETransliterator { - Transliterator *priv; diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/eds/evolution-data-server_3.26.6.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/eds/evolution-data-server_3.26.6.bb deleted file mode 100644 index 1949fc7f..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/eds/evolution-data-server_3.26.6.bb +++ /dev/null @@ -1,132 +0,0 @@ -SUMMARY = "Evolution database backend server" -HOMEPAGE = "http://www.gnome.org/projects/evolution/" -BUGTRACKER = "https://bugzilla.gnome.org/" - -LICENSE = "LGPLv2 & LGPLv2+" -LIC_FILES_CHKSUM = "file://COPYING;md5=6a6e689d19255cf0557f3fe7d7068212 \ - file://src/camel/camel.h;endline=24;md5=342fc5e9357254bc30c24e43ae47d9a1 \ - file://src/libedataserver/e-data-server-util.h;endline=20;md5=8f21a9c80ea82a4fb80b5f959f672543 \ - file://src/calendar/libecal/e-cal.h;endline=24;md5=e699ec3866f73f129f7a4ffffdcfc196" - -DEPENDS = " \ - intltool-native gperf-native \ - glib-2.0 gtk+3 gconf libgnome-keyring libgdata \ - dbus db virtual/libiconv zlib libsoup-2.4 libical nss libsecret \ -" - -inherit distro_features_check gnomebase cmake gtk-doc gettext gobject-introspection perlnative pythonnative - -REQUIRED_DISTRO_FEATURES = "x11" - -SRC_URI = "${GNOME_MIRROR}/${GNOMEBN}/${@gnome_verdir("${PV}")}/${GNOMEBN}-${PV}.tar.${GNOME_COMPRESS_TYPE};name=archive \ - file://0001-CMakeLists.txt-Remove-TRY_RUN-for-iconv.patch \ - file://0002-CMakeLists.txt-remove-CHECK_C_SOURCE_RUNS-check.patch \ - file://0003-contact-Replace-the-Novell-sample-contact-with-somet.patch \ - file://iconv-detect.h \ - file://0004-Use-recommended-way-to-handle-the-icu-namespace.patch \ - " -SRC_URI[archive.md5sum] = "ae7bbf543b2c3ff79af27e0edea5d472" -SRC_URI[archive.sha256sum] = "e43aa1847ddc02965f560261ef88d18fb8704eddaa55555bf96b884a33e510ec" - -LKSTRFTIME = "HAVE_LKSTRFTIME=ON" -LKSTRFTIME_libc-musl = "HAVE_LKSTRFTIME=OFF" - -EXTRA_OECMAKE = " \ - -DWITH_KRB5=OFF \ - -DENABLE_GOA=OFF \ - -DENABLE_UOA=OFF \ - -DENABLE_GOOGLE_AUTH=OFF \ - -DENABLE_WEATHER=OFF \ - -D${LKSTRFTIME} \ - -DLIB_SUFFIX=${@d.getVar('baselib').replace('lib', '')} \ -" - -PACKAGECONFIG ??= "" -PACKAGECONFIG[openldap] = "-DWITH_OPENLDAP=ON,-DWITH_OPENLDAP=OFF,openldap" - -EXTRA_OECONF = "--with-libdb=${STAGING_DIR_HOST}${prefix} \ - --disable-nntp --disable-gtk-doc" - -# -ldb needs this on some platforms -LDFLAGS += "-lpthread -lgmodule-2.0 -lgthread-2.0" - -do_configure_append () { - cp ${WORKDIR}/iconv-detect.h ${S}/src - - # fix native perl shebang - sed -i 's:${STAGING_BINDIR_NATIVE}/perl-native:${bindir}:' ${B}/src/tools/addressbook-export/csv2vcard -} - -do_compile_prepend() { - export GIR_EXTRA_LIBS_PATH="${B}/camel/.libs:${B}/libedataserver/.libs" -} - - -PACKAGES =+ "libcamel libcamel-dev libebook libebook-dev libecal libecal-dev \ - libedata-book libedata-book-dev libedata-cal libedata-cal-dev \ - libedataserver libedataserver-dev \ - libedataserverui libedataserverui-dev" - -FILES_${PN} =+ "${systemd_user_unitdir} \ - ${datadir}/dbus-1 \ - ${datadir}/evolution-data-server-*/ui/" -RDEPENDS_${PN} += "perl" - -FILES_${PN}-dev =+ "${libdir}/pkgconfig/evolution-data-server-*.pc" -FILES_${PN}-dbg =+ "${libdir}/evolution-data-server*/camel-providers/.debug \ - ${libdir}/evolution-data-server*/calendar-backends/.debug \ - ${libdir}/evolution-data-server*/addressbook-backends/.debug \ - ${libdir}/evolution-data-server*/extensions/.debug/" - -RRECOMMENDS_${PN}-dev += "libecal-dev libebook-dev" - -FILES_libcamel = "${libdir}/libcamel-*.so.* \ - ${libdir}/libcamel-provider-*.so.* \ - ${libdir}/evolution-data-server*/camel-providers/*.so \ - ${libdir}/evolution-data-server*/camel-providers/*.urls" -FILES_libcamel-dev = "${libdir}/libcamel-*.so ${libdir}/libcamel-provider-*.so \ - ${libdir}/pkgconfig/camel*pc \ - ${libdir}/evolution-data-server*/camel-providers/*.la \ - ${includedir}/evolution-data-server*/camel" - -FILES_libebook = "${libdir}/libebook-*.so.*" -FILES_libebook-dev = "${libdir}/libebook-1.2.so \ - ${libdir}/pkgconfig/libebook-*.pc \ - ${includedir}/evolution-data-server*/libebook/*.h" -RRECOMMENDS_libebook = "libedata-book" - -FILES_libecal = "${libdir}/libecal-*.so.* \ - ${datadir}/evolution-data-server-1.4/zoneinfo" -FILES_libecal-dev = "${libdir}/libecal-*.so ${libdir}/pkgconfig/libecal-*.pc \ - ${includedir}/evolution-data-server*/libecal/*.h \ - ${includedir}/evolution-data-server*/libical/*.h" -RRECOMMENDS_libecal = "libedata-cal tzdata" - -FILES_libedata-book = "${libexecdir}/e-addressbook-factory \ - ${datadir}/dbus-1/services/*.AddressBook.service \ - ${libdir}/libedata-book-*.so.* \ - ${libdir}/evolution-data-server-*/extensions/libebook*.so \ - ${datadir}/evolution-data-server-1.4/weather/Locations.xml" -FILES_libedata-book-dev = "${libdir}/libedata-book-*.so \ - ${libdir}/pkgconfig/libedata-book-*.pc \ - ${libdir}/evolution-data-server-*/extensions/libebook*.la \ - ${includedir}/evolution-data-server-*/libedata-book" - -FILES_libedata-cal = "${libexecdir}/e-calendar-factory \ - ${datadir}/dbus-1/services/*.Calendar.service \ - ${libdir}/libedata-cal-*.so.* \ - ${libdir}/evolution-data-server-*/extensions/libecal*.so" -FILES_libedata-cal-dev = "${libdir}/libedata-cal-*.so \ - ${libdir}/pkgconfig/libedata-cal-*.pc \ - ${includedir}/evolution-data-server-*/libedata-cal \ - ${libdir}/evolution-data-server-*/extensions/libecal*.la" - -FILES_libedataserver = "${libdir}/libedataserver-*.so.*" -FILES_libedataserver-dev = "${libdir}/libedataserver-*.so \ - ${libdir}/pkgconfig/libedataserver-*.pc \ - ${includedir}/evolution-data-server-*/libedataserver/*.h" - -FILES_libedataserverui = "${libdir}/libedataserverui-*.so.* ${datadir}/evolution-data-server-1.4/glade/*.glade" -FILES_libedataserverui-dev = "${libdir}/libedataserverui-*.so \ - ${libdir}/pkgconfig/libedataserverui-*.pc \ - ${includedir}/evolution-data-server-*/libedataserverui/*.h" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/evince/evince/0001-Add-format-attribute-to-_synctex_malloc.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/evince/evince/0001-Add-format-attribute-to-_synctex_malloc.patch index de739c5b..32ca073f 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/evince/evince/0001-Add-format-attribute-to-_synctex_malloc.patch +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/evince/evince/0001-Add-format-attribute-to-_synctex_malloc.patch @@ -11,17 +11,17 @@ Signed-off-by: Khem Raj 1 file changed, 1 insertion(+) diff --git a/cut-n-paste/synctex/synctex_parser_utils.c b/cut-n-paste/synctex/synctex_parser_utils.c -index f8a9f6f..9459b2d 100644 +index 08053f0..0519b38 100644 --- a/cut-n-paste/synctex/synctex_parser_utils.c +++ b/cut-n-paste/synctex/synctex_parser_utils.c -@@ -78,6 +78,7 @@ void *_synctex_malloc(size_t size) { - return (void *)ptr; +@@ -136,6 +136,7 @@ int _synctex_log(int level, const char * prompt, const char * reason,va_list arg + return result; } +__attribute__((__format__ (__printf__, 1, 0))) int _synctex_error(const char * reason,...) { - va_list arg; - int result; + va_list arg; + int result; -- -2.12.2 +2.20.1 diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/evince/evince/0001-add-a-formatting-attribute-check.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/evince/evince/0001-add-a-formatting-attribute-check.patch deleted file mode 100644 index e87da90b..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/evince/evince/0001-add-a-formatting-attribute-check.patch +++ /dev/null @@ -1,34 +0,0 @@ -From ef170dda7fbab53682c9bc287dec93fa86130bc9 Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Sun, 9 Sep 2018 21:49:59 -0700 -Subject: [PATCH] add a formatting attribute check - -Tell Clang that parameter is a printf style format using the -attribute flag - -This helps in avoiding below warnings seen with clang - -unarr.c:106:22: error: format string is not a string literal -[-Werror,-Wformat-nonliteral] -| vfprintf(stderr, msg, args); -| ^~~ - -Upstream-Status: Pending -Signed-off-by: Khem Raj ---- - cut-n-paste/unarr/common/unarr.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/cut-n-paste/unarr/common/unarr.c b/cut-n-paste/unarr/common/unarr.c -index 97ec92a..9e6e3ad 100644 ---- a/cut-n-paste/unarr/common/unarr.c -+++ b/cut-n-paste/unarr/common/unarr.c -@@ -92,7 +92,7 @@ size_t ar_get_global_comment(ar_archive *ar, void *buffer, size_t count) - return ar->get_comment(ar, buffer, count); - } - --void ar_log(const char *prefix, const char *file, int line, const char *msg, ...) -+void __attribute__((__format__ (__printf__, 4, 0))) ar_log(const char *prefix, const char *file, int line, const char *msg, ...) - { - va_list args; - va_start(args, msg); diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/evince/evince/0001-help-remove-YELP-macro.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/evince/evince/0001-help-remove-YELP-macro.patch deleted file mode 100644 index 592f4660..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/evince/evince/0001-help-remove-YELP-macro.patch +++ /dev/null @@ -1,24 +0,0 @@ -From 40921037d8e7205a3889d529fb4e06f79e1e88b0 Mon Sep 17 00:00:00 2001 -From: Alexander Kanavin -Date: Fri, 19 Feb 2016 16:52:18 +0200 -Subject: [PATCH] help: remove YELP macro - -Upstream-Status: Inappropriate [embedded-specific] -Signed-off-by: Alexander Kanavin ---- - help/Makefile.am | 2 -- - 1 file changed, 2 deletions(-) - -diff --git a/help/Makefile.am b/help/Makefile.am -index 7835810..37c88ce 100644 ---- a/help/Makefile.am -+++ b/help/Makefile.am -@@ -1,5 +1,3 @@ --@YELP_HELP_RULES@ -- - SUBDIRS = reference - - HELP_ID = evince --- -2.7.0 - diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/evince/evince/0001-libview-Remove-EvDocumentModel-get-type-function-dec.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/evince/evince/0001-libview-Remove-EvDocumentModel-get-type-function-dec.patch deleted file mode 100644 index dcc4a4e9..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/evince/evince/0001-libview-Remove-EvDocumentModel-get-type-function-dec.patch +++ /dev/null @@ -1,33 +0,0 @@ -From 0cdce687d3edfa5ac0fd19539ba1815d039026d5 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?I=C3=B1igo=20Mart=C3=ADnez?= -Date: Fri, 7 Sep 2018 22:34:29 +0200 -Subject: [PATCH] libview: Remove EvDocumentModel get type function declaration - -The EvDocumentModel class declares the `ev_document_model_get_type` -function as part of the `GObject` boilerplate code. - -However, this declaration is not necessary and also causes a warning -when introspection data file, `EvinceView-3.0.gir`, is generated. - -Upstream-Status: Applied [1] - - ---- - libview/ev-document-model.h | 1 - - 1 file changed, 1 deletion(-) - -diff --git a/libview/ev-document-model.h b/libview/ev-document-model.h -index 784e27d6..6a99e43a 100644 ---- a/libview/ev-document-model.h -+++ b/libview/ev-document-model.h -@@ -54,7 +54,6 @@ typedef enum { - EV_PAGE_LAYOUT_AUTOMATIC - } EvPageLayout; - --GType ev_document_model_get_type (void) G_GNUC_CONST; - EvDocumentModel *ev_document_model_new (void); - EvDocumentModel *ev_document_model_new_with_document (EvDocument *document); - --- -2.20.1 - diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/evince/evince/0002-add-a-formatting-attribute-check.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/evince/evince/0002-add-a-formatting-attribute-check.patch new file mode 100644 index 00000000..c374fc94 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/evince/evince/0002-add-a-formatting-attribute-check.patch @@ -0,0 +1,122 @@ +From ef170dda7fbab53682c9bc287dec93fa86130bc9 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Sun, 9 Sep 2018 21:49:59 -0700 +Subject: [PATCH] add a formatting attribute check + +Tell Clang that parameter is a printf style format using the +attribute flag + +This helps in avoiding below warnings seen with clang + +unarr.c:106:22: error: format string is not a string literal +[-Werror,-Wformat-nonliteral] +| vfprintf(stderr, msg, args); +| ^~~ + +Upstream-Status: Pending +Signed-off-by: Khem Raj +--- + cut-n-paste/unarr/common/unarr.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/cut-n-paste/unarr/common/unarr.c ++++ b/cut-n-paste/unarr/common/unarr.c +@@ -92,7 +92,7 @@ size_t ar_get_global_comment(ar_archive + return ar->get_comment(ar, buffer, count); + } + +-void ar_log(const char *prefix, const char *file, int line, const char *msg, ...) ++void __attribute__((__format__ (__printf__, 4, 5))) ar_log(const char *prefix, const char *file, int line, const char *msg, ...) + { + va_list args; + va_start(args, msg); +--- a/cut-n-paste/synctex/synctex_parser_utils.c ++++ b/cut-n-paste/synctex/synctex_parser_utils.c +@@ -87,11 +87,11 @@ void _synctex_free(void * ptr) { + # include + #endif + +-int _synctex_error(const char * reason, ...) __attribute__((__format__ (__printf__, 1, 2))); +-int _synctex_log(int level, const char * prompt, const char * reason, va_list arg) __attribute__((__format__ (__printf__, 3, 0))); +- +-int _synctex_log(int level, const char * prompt, const char * reason,va_list arg) { ++static int _synctex_log(int level, const char * prompt, const char * reason, ...) SYNCTEX_PRINTF_FORMAT(3, 0); ++static int _synctex_log(int level, const char * prompt, const char * reason, ...) { ++ va_list arg; + int result; ++ va_start(arg, reason); + # ifdef SYNCTEX_RECENT_WINDOWS + {/* This code is contributed by William Blum. + As it does not work on some older computers, +@@ -133,10 +133,10 @@ int _synctex_log(int level, const char * + result += vfprintf(where, reason, arg); + result += fprintf(where,"\n"); + # endif ++ va_end(arg); + return result; + } + +-__attribute__((__format__ (__printf__, 1, 0))) + int _synctex_error(const char * reason,...) { + va_list arg; + int result; +@@ -355,6 +355,7 @@ char * _synctex_merge_strings(const char + size_t len = strlen(temp); + if(UINT_MAX-len +Date: Sun, 31 Mar 2019 18:11:55 +0200 +Subject: [PATCH] CMakeLists.txt: Remove TRY_RUN for iconv +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +| CMake Error: TRY_RUN() invoked in cross-compiling mode, please set the following cache variables appropriately: +| _correct_iconv_EXITCODE (advanced) + +Upstream-Status: Inappropriate [OE specific] + +Signed-off-by: Andreas Müller +--- + CMakeLists.txt | 11 ----------- + 1 file changed, 11 deletions(-) + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 1672daf..0b3e4e0 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -524,17 +524,6 @@ if(NOT HAVE_ICONV) + message(FATAL_ERROR "You need to install a working iconv implementation, such as ftp://ftp.gnu.org/pub/gnu/libiconv") + endif(NOT HAVE_ICONV) + +-set(CMAKE_REQUIRED_LIBRARIES ${ICONV_LIBS}) +-file(TO_NATIVE_PATH "${CMAKE_BINARY_DIR}/" _binary_dir_with_separator) +-CHECK_C_SOURCE_RUNS("#define ICONV_DETECT_BUILD_DIR \"${_binary_dir_with_separator}\" +- #include \"${CMAKE_SOURCE_DIR}/iconv-detect.c\"" _correct_iconv) +-unset(_binary_dir_with_separator) +-unset(CMAKE_REQUIRED_LIBRARIES) +- +-if(NOT _correct_iconv) +- message(FATAL_ERROR "You need to install a working iconv implementation, such as ftp://ftp.gnu.org/pub/gnu/libiconv") +-endif(NOT _correct_iconv) +- + # ****************************** + # Backtraces for debugging + # ****************************** +-- +2.20.1 + diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/eds/evolution-data-server/0002-CMakeLists.txt-remove-CHECK_C_SOURCE_RUNS-check.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/evolution-data-server/evolution-data-server/0002-CMakeLists.txt-remove-CHECK_C_SOURCE_RUNS-check.patch similarity index 85% rename from Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/eds/evolution-data-server/0002-CMakeLists.txt-remove-CHECK_C_SOURCE_RUNS-check.patch rename to Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/evolution-data-server/evolution-data-server/0002-CMakeLists.txt-remove-CHECK_C_SOURCE_RUNS-check.patch index c8dc7e12..23c3a96d 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/eds/evolution-data-server/0002-CMakeLists.txt-remove-CHECK_C_SOURCE_RUNS-check.patch +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/evolution-data-server/evolution-data-server/0002-CMakeLists.txt-remove-CHECK_C_SOURCE_RUNS-check.patch @@ -1,7 +1,7 @@ -From 210b204d9edd71202454ff04013cc52b23c598e4 Mon Sep 17 00:00:00 2001 +From 20bd8946a5c73290d961df151e82033171639c0d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20M=C3=BCller?= Date: Tue, 19 Dec 2017 16:55:13 +0100 -Subject: [PATCH] CMakeLists.txt: remove CHECK_C_SOURCE_RUNS check +Subject: [PATCH 2/7] CMakeLists.txt: remove CHECK_C_SOURCE_RUNS check MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -15,10 +15,10 @@ Signed-off-by: Andreas Müller 1 file changed, 23 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt -index a2396f2..f3b271b 100644 +index ed99904..9a2e99f 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt -@@ -573,29 +573,6 @@ CHECK_C_SOURCE_COMPILES("#include +@@ -579,29 +579,6 @@ CHECK_C_SOURCE_COMPILES("#include CHECK_C_SOURCE_COMPILES("#include int main(void) { char *detail = nl_langinfo (_NL_ADDRESS_COUNTRY_AB2); return 0; }" HAVE__NL_ADDRESS_COUNTRY_AB2) @@ -49,5 +49,5 @@ index a2396f2..f3b271b 100644 # system mail stuff # ****************************** -- -2.14.3 +2.21.0 diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/eds/evolution-data-server/0003-contact-Replace-the-Novell-sample-contact-with-somet.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/evolution-data-server/evolution-data-server/0003-contact-Replace-the-Novell-sample-contact-with-somet.patch similarity index 98% rename from Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/eds/evolution-data-server/0003-contact-Replace-the-Novell-sample-contact-with-somet.patch rename to Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/evolution-data-server/evolution-data-server/0003-contact-Replace-the-Novell-sample-contact-with-somet.patch index 3cdfa8b6..c9e6f96f 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/eds/evolution-data-server/0003-contact-Replace-the-Novell-sample-contact-with-somet.patch +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/evolution-data-server/evolution-data-server/0003-contact-Replace-the-Novell-sample-contact-with-somet.patch @@ -1,14 +1,14 @@ -From 4df8bd8ae4258289663b27af1207027c7ee06340 Mon Sep 17 00:00:00 2001 +From d616eddf3a214a49900344f4455155879d3b82db Mon Sep 17 00:00:00 2001 From: Martin Jansa Date: Sun, 4 Aug 2013 09:13:25 +0200 -Subject: [PATCH 1/5] contact: Replace the Novell sample contact with something +Subject: [PATCH 3/7] contact: Replace the Novell sample contact with something more appropriate Upstream-Status: Inappropriate [configuration] Signed-off-by: Martin Jansa --- - src/addressbook/libedata-book/ximian-vcard.h | 179 ++++++++++++++++++------------- - 2 files changed, 103 insertions(+), 77 deletions(-) + src/addressbook/libedata-book/ximian-vcard.h | 179 +++++++++++-------- + 1 file changed, 102 insertions(+), 77 deletions(-) diff --git a/src/addressbook/libedata-book/ximian-vcard.h b/src/addressbook/libedata-book/ximian-vcard.h index 782d37b..5b0b250 100644 @@ -198,5 +198,5 @@ index 782d37b..5b0b250 100644 +" gQIUKE+H+C/wMGX8Ias1s6CQAAAABJRU5ErkJggg==\n" \ "END:VCARD" -- -1.8.3.2 +2.21.0 diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/evolution-data-server/evolution-data-server/0004-call-native-helpers.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/evolution-data-server/evolution-data-server/0004-call-native-helpers.patch new file mode 100644 index 00000000..e320f634 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/evolution-data-server/evolution-data-server/0004-call-native-helpers.patch @@ -0,0 +1,45 @@ +From 9c375e3fcf8ff778a5010a07a7da4b6a58adec7c Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Andreas=20M=C3=BCller?= +Date: Sun, 31 Mar 2019 19:11:31 +0200 +Subject: [PATCH] call native helpers +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Upstream-Status: Inappropriate[oe-specific] + +Signed-off-by: Andreas Müller +--- + src/addressbook/libebook-contacts/CMakeLists.txt | 2 +- + src/camel/CMakeLists.txt | 2 +- + 2 files changed, 2 insertions(+), 2 deletions(-) + +diff --git a/src/addressbook/libebook-contacts/CMakeLists.txt b/src/addressbook/libebook-contacts/CMakeLists.txt +index e9e3259..e749d1b 100644 +--- a/src/addressbook/libebook-contacts/CMakeLists.txt ++++ b/src/addressbook/libebook-contacts/CMakeLists.txt +@@ -25,7 +25,7 @@ target_link_libraries(gen-western-table + + add_custom_command( + OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/e-name-western-tables.h +- COMMAND ${CMAKE_CURRENT_BINARY_DIR}/gen-western-table "${CMAKE_CURRENT_SOURCE_DIR}/e-name-western-tables.h.in" >${CMAKE_CURRENT_BINARY_DIR}/e-name-western-tables.h ++ COMMAND gen-western-table "${CMAKE_CURRENT_SOURCE_DIR}/e-name-western-tables.h.in" >${CMAKE_CURRENT_BINARY_DIR}/e-name-western-tables.h + DEPENDS gen-western-table e-name-western-tables.h.in + ) + +diff --git a/src/camel/CMakeLists.txt b/src/camel/CMakeLists.txt +index be626a8..14ac8b8 100644 +--- a/src/camel/CMakeLists.txt ++++ b/src/camel/CMakeLists.txt +@@ -10,7 +10,7 @@ target_include_directories(camel-gen-tables PUBLIC + + add_custom_command( + OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/camel-mime-tables.c +- COMMAND ${CMAKE_CURRENT_BINARY_DIR}/camel-gen-tables >${CMAKE_CURRENT_BINARY_DIR}/camel-mime-tables.c ++ COMMAND camel-gen-tables >${CMAKE_CURRENT_BINARY_DIR}/camel-mime-tables.c + DEPENDS camel-gen-tables + ) + +-- +2.20.1 + diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/eds/evolution-data-server/iconv-detect.h b/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/evolution-data-server/evolution-data-server/iconv-detect.h similarity index 100% rename from Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/eds/evolution-data-server/iconv-detect.h rename to Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/evolution-data-server/evolution-data-server/iconv-detect.h diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/file-roller/file-roller_3.32.3.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/file-roller/file-roller_3.32.3.bb new file mode 100644 index 00000000..3ab9668e --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/file-roller/file-roller_3.32.3.bb @@ -0,0 +1,25 @@ +SUMMARY = "An archive manager utility for the GNOME Environment" +LICENSE="GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552" + +GNOMEBASEBUILDCLASS = "meson" + +DEPENDS = " \ + glib-2.0-native \ + gtk+3 \ + libarchive \ + libnotify \ +" + +inherit gnomebase gsettings itstool gnome-help gettext upstream-version-is-even + +SRC_URI[archive.md5sum] = "5e098bb254d34f48a9b5761b468f4240" +SRC_URI[archive.sha256sum] = "be111fb877dc1eb487ec5d6e2b72ba5defe1ab8033a6a6b9b9044a2a7787e22a" + +PACKAGECONFIG[nautilus] = "-Dnautilus-actions=true,-Dnautilus-actions=false,nautilus" + +FILES_${PN} += " \ + ${datadir}/dbus-1 \ + ${datadir}/metainfo \ + ${libdir}/nautilus \ +" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/gdm/gdm/0001-Ensure-pam-file-installation.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/gdm/gdm/0001-Ensure-pam-file-installation.patch new file mode 100644 index 00000000..6362d5ee --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/gdm/gdm/0001-Ensure-pam-file-installation.patch @@ -0,0 +1,48 @@ +From f7bba53adf8a26f900442a05bb98326747c392b4 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Andreas=20M=C3=BCller?= +Date: Tue, 3 Dec 2019 00:24:27 +0100 +Subject: [PATCH] Ensure pam-file installation +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +All the detection magic does not work for us + +Upstream-Status: Inappropriate [OE-specific] + +Signed-off-by: Andreas Müller +--- + data/Makefile.am | 12 +----------- + 1 file changed, 1 insertion(+), 11 deletions(-) + +diff --git a/data/Makefile.am b/data/Makefile.am +index bda9160..dbc3ea3 100644 +--- a/data/Makefile.am ++++ b/data/Makefile.am +@@ -296,22 +296,12 @@ endif + chown root:root $(DESTDIR)$(logdir) || : ; \ + fi + +- system=`uname`; \ +- if test -f /usr/include/security/pam_appl.h; then \ +- if test '!' -d $(DESTDIR)$(PAM_PREFIX)/pam.d; then \ + $(mkinstalldirs) $(DESTDIR)$(PAM_PREFIX)/pam.d; \ + chmod 755 $(DESTDIR)$(PAM_PREFIX)/pam.d; \ +- fi; \ +- if test $$system = Linux; then \ + for pamfile in $(pam_files); do \ + bn=$$(basename $$pamfile .pam); \ + $(INSTALL_DATA) $(srcdir)/$$pamfile $(DESTDIR)$(PAM_PREFIX)/pam.d/$$bn; \ +- done; \ +- fi; \ +- if test $$system = SunOS; then \ +- echo "Please add PAM authentication for gdm, gdm-autologin and gdm-welcome in $(PAM_PREFIX)/pam.conf!"; \ +- fi; \ +- fi ++ done; + + if test '!' -d $(DESTDIR)$(xauthdir); then \ + $(mkinstalldirs) $(DESTDIR)$(xauthdir); \ +-- +2.21.0 + diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/gdm/gdm_3.34.1.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/gdm/gdm_3.34.1.bb new file mode 100644 index 00000000..a47bf6fc --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/gdm/gdm_3.34.1.bb @@ -0,0 +1,56 @@ +SUMMARY = "GNOME Display Manager" +LICENSE="GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263" + +DEPENDS = " \ + dconf-native \ + gtk+3 \ + accountsservice \ + libcanberra \ + libpam \ +" + +REQUIRED_DISTRO_FEATURES = "x11 systemd pam" + +inherit gnomebase gsettings gobject-introspection gettext systemd useradd upstream-version-is-even features_check + +SRC_URI[archive.md5sum] = "65d1fd4bb85e8b133d1cbffb80ecf62e" +SRC_URI[archive.sha256sum] = "e85df657aa8d9361af4fb122014d8f123a93bfe45a7662fba2b373d839dbd8d3" +SRC_URI += "file://0001-Ensure-pam-file-installation.patch" + +EXTRA_OECONF = " \ + --without-plymouth \ + --with-default-pam-config=openembedded \ + --with-pam-mod-dir=${base_libdir}/security \ +" + +do_install_append() { + rm -rf ${D}/run ${D}${localstatedir}/run +} + +USERADD_PACKAGES = "${PN}" +USERADD_PARAM_${PN} = "--system --no-create-home --home ${localstatedir}/lib/gdm --user-group gdm" + +SYSTEMD_SERVICE_${PN} = "${BPN}.service" + +# Some gnome components - as gnome-panel and gnome-shell (!!) - require gdm +# components. To allow gnome-images using different display-manager, split them +# out into a seperate package. +PACKAGE_BEFORE_PN = "${PN}-base" +FILES_${PN}-base = " \ + ${datadir}/glib-2.0 \ + ${datadir}/gnome-session \ + ${libdir}/lib*${SOLIBS} \ + ${libdir}/girepository-1.0 \ +" + +CONFFILES_${PN} += "${sysconfdir}/gdm/custom.conf" +FILES_${PN} += " \ + ${datadir}/dconf \ + ${base_libdir}/security/pam_gdm.so \ + ${localstatedir} \ + ${systemd_unitdir} \ +" + +RDEPENDS_${PN} += "${PN}-base" + diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/gedit/files/0001-Remove-help-directory-from-build.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/gedit/files/0001-Remove-help-directory-from-build.patch deleted file mode 100644 index 4ad57eff..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/gedit/files/0001-Remove-help-directory-from-build.patch +++ /dev/null @@ -1,29 +0,0 @@ -From 1d2e6165e3154e27ecde329a40c05f0880afb9e0 Mon Sep 17 00:00:00 2001 -From: Alexander Kanavin -Date: Tue, 17 May 2016 14:14:03 +0300 -Subject: [PATCH] Remove help directory from build - -It hardcodes the use of xml2po utility, which is provided by obsolete gnome-doc-utils - -Signed-off-by: Alexander Kanavin ---- - Makefile.am | 3 --- - 1 file changed, 3 deletions(-) - -diff --git a/Makefile.am b/Makefile.am -index e57b203..a88152d 100644 ---- a/Makefile.am -+++ b/Makefile.am -@@ -3,9 +3,6 @@ ACLOCAL_AMFLAGS = -I m4 - - SUBDIRS = gedit pixmaps po data plugin-loaders plugins docs tests win32 osx - --if !OS_OSX --SUBDIRS += help --endif - - distuninstallcheck_listfiles = find . -type f -print | grep -v scrollkeeper - --- -2.8.1 - diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/gedit/files/0001-gedit-utils-qualify-handle_builder_error-with-format.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/gedit/files/0001-gedit-utils-qualify-handle_builder_error-with-format.patch deleted file mode 100644 index 4885c451..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/gedit/files/0001-gedit-utils-qualify-handle_builder_error-with-format.patch +++ /dev/null @@ -1,31 +0,0 @@ -From 623ffac1f6e7725041b386e0f2933fe36809b5a9 Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Sat, 26 Aug 2017 09:04:30 -0700 -Subject: [PATCH] gedit-utils: qualify handle_builder_error() with format - string parameters - -gedit-utils.c:1063:32: error: format string is not a string literal [-Werror,-Wformat-nonliteral] - msg_plain = g_strdup_vprintf (message, args); - ^~~~~~~ - -Signed-off-by: Khem Raj ---- - gedit/gedit-utils.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/gedit/gedit-utils.c b/gedit/gedit-utils.c -index 41a5afd..c800828 100644 ---- a/gedit/gedit-utils.c -+++ b/gedit/gedit-utils.c -@@ -1051,7 +1051,7 @@ gedit_utils_is_valid_uri (const gchar *uri) - return TRUE; - } - --static GtkWidget * -+static G_GNUC_PRINTF(1, 2) GtkWidget * - handle_builder_error (const gchar *message, ...) - { - GtkWidget *label; --- -2.14.1 - diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/gedit/files/0001-tests-document-saver.c-Define-ACCESSPERMS-if-not-def.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/gedit/files/0001-tests-document-saver.c-Define-ACCESSPERMS-if-not-def.patch deleted file mode 100644 index 11afe75c..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/gedit/files/0001-tests-document-saver.c-Define-ACCESSPERMS-if-not-def.patch +++ /dev/null @@ -1,31 +0,0 @@ -From ee43bcc3c8d69fe56a64c3487e2d3c780ea5d25e Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Thu, 13 Jul 2017 06:53:35 -0700 -Subject: [PATCH] tests/document-saver.c: Define ACCESSPERMS if not defined - already - -Helps compile with musl - -Signed-off-by: Khem Raj ---- - tests/document-saver.c | 4 ++++ - 1 file changed, 4 insertions(+) - -diff --git a/tests/document-saver.c b/tests/document-saver.c -index 9f44d5a..811ade6 100644 ---- a/tests/document-saver.c -+++ b/tests/document-saver.c -@@ -41,6 +41,10 @@ - #define UNOWNED_GROUP_LOCAL_URI "/tmp/gedit-document-saver-unowned-group.txt" - #define UNOWNED_GROUP_REMOTE_URI "sftp://localhost/tmp/gedit-document-saver-unowned-group.txt" - -+#if !defined(ACCESSPERMS) -+#define ACCESSPERMS (S_IRWXU|S_IRWXG|S_IRWXO) /* 0777 */ -+#endif -+ - static gboolean test_completed; - static gboolean mount_completed; - static gboolean mount_success; --- -2.13.2 - diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/gedit/files/0001-workaround-void-pointer-arithmetic.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/gedit/files/0001-workaround-void-pointer-arithmetic.patch deleted file mode 100644 index a28808b8..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/gedit/files/0001-workaround-void-pointer-arithmetic.patch +++ /dev/null @@ -1,57 +0,0 @@ -From 8e0cbfac142d38320dd02416601e14c65585cd17 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Andreas=20M=C3=BCller?= -Date: Sat, 9 Mar 2013 12:47:06 +0100 -Subject: [PATCH] workaround void pointer arithmetic -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -fixes errors like: -error: pointer of type 'void *' used in arithmetic [-Werror=pointer-arith] - -Upstream-Status: Inappropriate [configuration] - -Signed-off-by: Andreas Müller ---- - gedit/gedit-document-input-stream.c | 4 ++-- - gedit/gedit-smart-charset-converter.c | 2 +- - 2 files changed, 3 insertions(+), 3 deletions(-) - -diff --git a/gedit/gedit-document-input-stream.c b/gedit/gedit-document-input-stream.c -index 5a1f961..38316e7 100644 ---- a/gedit/gedit-document-input-stream.c -+++ b/gedit/gedit-document-input-stream.c -@@ -426,7 +426,7 @@ gedit_document_input_stream_read (GInputStream *stream, - - do - { -- n = read_line (dstream, buffer + read, space_left); -+ n = read_line (dstream, ((char*)buffer) + read, space_left); - read += n; - space_left -= n; - } while (space_left > 0 && n != 0 && dstream->priv->bytes_partial == 0); -@@ -451,7 +451,7 @@ gedit_document_input_stream_read (GInputStream *stream, - - newline = get_new_line (dstream); - -- memcpy (buffer + read, newline, newline_size); -+ memcpy (((char*)buffer) + read, newline, newline_size); - - read += newline_size; - dstream->priv->newline_added = TRUE; -diff --git a/gedit/gedit-smart-charset-converter.c b/gedit/gedit-smart-charset-converter.c -index e32b0b1..6745ce3 100644 ---- a/gedit/gedit-smart-charset-converter.c -+++ b/gedit/gedit-smart-charset-converter.c -@@ -153,7 +153,7 @@ try_convert (GCharsetConverter *converter, - do - { - res = g_converter_convert (G_CONVERTER (converter), -- inbuf + nread, -+ ((const char*)inbuf) + nread, - inbuf_size - nread, - out + nwritten, - out_size - nwritten, --- -1.7.4.4 - diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/gedit/files/0002-suppress-string-format-literal-warning-to-fix-build-.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/gedit/files/0002-suppress-string-format-literal-warning-to-fix-build-.patch deleted file mode 100644 index a5d23101..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/gedit/files/0002-suppress-string-format-literal-warning-to-fix-build-.patch +++ /dev/null @@ -1,38 +0,0 @@ -From 4ebdf8023f763f75a7e1b548894de2e8b784f4a8 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Andreas=20M=C3=BCller?= -Date: Fri, 29 Jul 2016 23:19:40 +0200 -Subject: [PATCH] suppress string format literal warning to fix build with gcc6 -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Upstream-Status: Pending - -Signed-off-by: Andreas Müller ---- - plugins/time/gedit-time-plugin.c | 3 +++ - 1 file changed, 3 insertions(+) - -diff --git a/plugins/time/gedit-time-plugin.c b/plugins/time/gedit-time-plugin.c -index d2ffdb9..441d9f9 100644 ---- a/plugins/time/gedit-time-plugin.c -+++ b/plugins/time/gedit-time-plugin.c -@@ -473,12 +473,15 @@ get_time (const gchar* format) - clock = time (NULL); - now = localtime (&clock); - -+#pragma GCC diagnostic push -+#pragma GCC diagnostic ignored "-Wformat-nonliteral" - do - { - out_length += 255; - out = g_realloc (out, out_length); - } - while (strftime (out, out_length, locale_format, now) == 0); -+#pragma GCC diagnostic pop - - g_free (locale_format); - --- -2.5.5 - diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/gedit/gedit_2.30.4.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/gedit/gedit_2.30.4.bb deleted file mode 100644 index ea6439d9..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/gedit/gedit_2.30.4.bb +++ /dev/null @@ -1,33 +0,0 @@ -SUMMARY = "GNOME editor" -SECTION = "x11/gnome" -LICENSE = "GPLv2+" -PR = "r2" - -DEPENDS = "gvfs enchant gconf gnome-doc-utils glib-2.0 gtk+ \ - gtksourceview2 iso-codes intltool-native gnome-common-native \ - libice python3-six-native" - -LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f" - -inherit distro_features_check gnome gettext python3native - -REQUIRED_DISTRO_FEATURES = "x11" - -SRC_URI = "${GNOME_MIRROR}/${GNOMEBN}/${@gnome_verdir("${PV}")}/${GNOMEBN}-${PV}.tar.${GNOME_COMPRESS_TYPE};name=archive \ - file://0001-workaround-void-pointer-arithmetic.patch \ - file://0001-Remove-help-directory-from-build.patch \ - file://0002-suppress-string-format-literal-warning-to-fix-build-.patch \ - file://0001-tests-document-saver.c-Define-ACCESSPERMS-if-not-def.patch \ - file://0001-gedit-utils-qualify-handle_builder_error-with-format.patch \ - " -SRC_URI[archive.md5sum] = "e1eecb0a92a1a363b3d375ec5ac0fb3b" -SRC_URI[archive.sha256sum] = "a561fe3dd1d199baede1bd07c4ee65f06fc7c494dd4d3327117f04149a608e3c" -GNOME_COMPRESS_TYPE="bz2" - -EXTRA_OECONF = "--disable-scrollkeeper \ - --enable-gvfs-metadata" - -LDFLAGS += "-lgmodule-2.0 -lICE" - -FILES_${PN} += "${libdir}/gedit-2/plugin* ${datadir}/gedit-2" -FILES_${PN}-dbg += "${libdir}/gedit-2/plugin-loaders/.debug ${libdir}/gedit-2/plugins/.debug" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/gedit/gedit_3.34.1.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/gedit/gedit_3.34.1.bb new file mode 100644 index 00000000..20806bd5 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/gedit/gedit_3.34.1.bb @@ -0,0 +1,44 @@ +SUMMARY = "GNOME editor" +SECTION = "x11/gnome" +LICENSE = "GPLv2+" +LIC_FILES_CHKSUM = "file://COPYING;md5=75859989545e37968a99b631ef42722e" + +GNOMEBASEBUILDCLASS = "meson" + +DEPENDS = " \ + yelp-tools-native \ + libxml2-native \ + gdk-pixbuf-native \ + iso-codes \ + gtk+3 \ + gsettings-desktop-schemas \ + gtksourceview4 \ + libpeas \ + libsoup-2.4 \ + gspell \ + gtksourceview4 \ +" + +inherit gnomebase gsettings itstool gnome-help gobject-introspection gtk-doc vala gettext features_check upstream-version-is-even + +REQUIRED_DISTRO_FEATURES = "x11" + +SRC_URI[archive.md5sum] = "4bca1d0a13db186cd84619b4bff42238" +SRC_URI[archive.sha256sum] = "ebf9ef4e19831699d26bb93ce029edfed65416d7c11147835fc370d73428d5c6" + +GTKDOC_MESON_OPTION = "documentation" + +PACKAGECONFIG ??= "gvfs" +PACKAGECONFIG[gvfs] = "-Denable-gvfs-metadata=yes,-Denable-gvfs-metadata=no,,gvfs" + +PACKAGES += "${PN}-python" + +FILES_${PN} += " \ + ${datadir}/dbus-1 \ + ${datadir}/metainfo \ +" + +FILES_${PN}-python += " \ + ${PYTHON_SITEPACKAGES_DIR} \ +" + diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/geocode-glib/geocode-glib_3.26.1.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/geocode-glib/geocode-glib_3.26.1.bb new file mode 100644 index 00000000..dc218f3a --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/geocode-glib/geocode-glib_3.26.1.bb @@ -0,0 +1,20 @@ +SUMMARY = "A convenience library for the geocoding" + +LICENSE = "LGPLv2" +LIC_FILES_CHKSUM = "file://COPYING.LIB;md5=55ca817ccb7d5b5b66355690e9abc605" + +GNOMEBASEBUILDCLASS = "meson" +GIR_MESON_OPTION = "enable-introspection" +GTKDOC_MESON_OPTION = "enable-gtk-doc" + +inherit gnomebase gobject-introspection gettext gtk-doc upstream-version-is-even + +DEPENDS = " \ + json-glib \ + libsoup-2.4 \ +" + +SRC_URI[archive.md5sum] = "21094494e66c86368add6a55bf480049" +SRC_URI[archive.sha256sum] = "5baa6ab76a76c9fc567e4c32c3af2cd1d1784934c255bc5a62c512e6af6bde1c" + +EXTRA_OEMESON = "-Denable-installed-tests=false" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/gexiv2/gexiv2_0.12.0.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/gexiv2/gexiv2_0.12.0.bb new file mode 100644 index 00000000..458eaeaa --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/gexiv2/gexiv2_0.12.0.bb @@ -0,0 +1,19 @@ +SUMMARY = "A GObject-based Exiv2 wrapper" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=625f055f41728f84a8d7938acc35bdc2" + +DEPENDS = "exiv2" + +GNOMEBASEBUILDCLASS = "meson" +GTKDOC_MESON_OPTION = "gtk_doc" + +inherit gnomebase gobject-introspection gtk-doc + +SRC_URI[archive.md5sum] = "0a618c5b053106d1801d89cc77385419" +SRC_URI[archive.sha256sum] = "58f539b0386f36300b76f3afea3a508de4914b27e78f58ee4d142486a42f926a" + +EXTRA_OEMESON = " \ + -Dvapi=false \ + -Dpython2_girdir=no \ + -Dpython3_girdir=no \ +" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/gjs/gjs/0001-Disable-tests-on-host.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/gjs/gjs/0001-Disable-tests-on-host.patch new file mode 100644 index 00000000..0953214f --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/gjs/gjs/0001-Disable-tests-on-host.patch @@ -0,0 +1,33 @@ +From 95379de2132786f855e8caec1fd5869225774d02 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Andreas=20M=C3=BCller?= +Date: Sat, 18 May 2019 01:14:07 +0200 +Subject: [PATCH] Disable tests on host +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Upstream-Status: Inappropriate [OE-specific] + +Signed-off-by: Andreas Müller +--- + configure.ac | 4 +--- + 1 file changed, 1 insertion(+), 3 deletions(-) + +diff --git a/configure.ac b/configure.ac +index fa4e136..056e96e 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -335,9 +335,7 @@ AS_IF([test "x$with_dbus_tests" != "xno"], [ + ]) + AM_CONDITIONAL([DBUS_TESTS], [test "x$with_dbus_tests" != "xno"]) + +-AC_MSG_CHECKING([for a suitable UTF-8 locale to run the tests in]) +-TESTS_LOCALE=$($srcdir/build/choose-tests-locale.sh) +-AC_MSG_RESULT([$TESTS_LOCALE]) ++TESTS_LOCALE=C + AC_SUBST([TESTS_LOCALE]) + + AC_SUBST([gjsjsdir], [\${datadir}/gjs-1.0]) +-- +2.20.1 + diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/gjs/gjs_1.58.4.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/gjs/gjs_1.58.4.bb new file mode 100644 index 00000000..eb7d323a --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/gjs/gjs_1.58.4.bb @@ -0,0 +1,37 @@ +SUMMARY = "Javascript bindings for GNOME" +LICENSE = "MIT & LGPLv2+" +LIC_FILES_CHKSUM = " \ + file://COPYING;md5=beb29cf17fabe736f0639b09ee6e76fa \ + file://COPYING.LGPL;md5=3bf50002aefd002f49e7bb854063f7e7 \ +" + +GNOMEBASEBUILDCLASS = "autotools" + +DEPENDS = "mozjs gtk+3" + +inherit gnomebase gsettings gobject-introspection vala gettext features_check upstream-version-is-even + +SRC_URI[archive.md5sum] = "385f4baa266991a08d3e425bc69ee962" +SRC_URI[archive.sha256sum] = "261a3f666c771d7744965fe71b804fc2c3a3d46a8e3e8d4f7ed5ef97967ebd5f" +SRC_URI += "file://0001-Disable-tests-on-host.patch" + +# gobject-introspection is mandatory and cannot be configured +REQUIRED_DISTRO_FEATURES = "gobject-introspection-data" +UNKNOWN_CONFIGURE_WHITELIST_append = " --enable-introspection --disable-introspection" + +EXTRA_OECONF = " \ + --without-dbus-tests \ + --disable-installed-tests \ +" + +do_configure_prepend() { + # make configure find gobject-introspection test code. Although we set + # --disable-installed-tests gjs builds them + sed -i 's|:$GI_DATADIR|:${STAGING_DIR_NATIVE}$GI_DATADIR|g' ${S}/configure.ac +} + +FILES_${PN} += "${datadir}/gjs-1.0/lsan" + +PACKAGES =+ "${PN}-valgrind" +FILES_${PN}-valgrind = "${datadir}/gjs-1.0/valgrind" +RSEPENDS_${PN}-valgrind += "valgrind" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/gnome-autoar/gnome-autoar_0.2.4.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/gnome-autoar/gnome-autoar_0.2.4.bb new file mode 100644 index 00000000..afeda3e9 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/gnome-autoar/gnome-autoar_0.2.4.bb @@ -0,0 +1,17 @@ +SUMMARY = "GNOME archive library" +LICENSE = "LGPLv2.1" +LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c" + +DEPENDS = " \ + gtk+3 \ + libarchive \ +" + +inherit gnomebase gobject-introspection gtk-doc vala + +SRC_URI[archive.md5sum] = "36ab263f477eeee3c95c9381766eb3c2" +SRC_URI[archive.sha256sum] = "0a34c377f8841abbf4c29bc848b301fbd8e4e20c03d7318c777c58432033657a" + +do_compile_prepend() { + export GIR_EXTRA_LIBS_PATH="${B}/gnome-autoar/.libs" +} diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/gnome-backgrounds/gnome-backgrounds_3.34.0.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/gnome-backgrounds/gnome-backgrounds_3.34.0.bb new file mode 100644 index 00000000..2350a7df --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/gnome-backgrounds/gnome-backgrounds_3.34.0.bb @@ -0,0 +1,17 @@ +SUMMARY = "GNOME wallpapers" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=75859989545e37968a99b631ef42722e" + +SECTION = "x11/gnome" + +GNOMEBASEBUILDCLASS = "meson" + +inherit gnomebase allarch gettext upstream-version-is-even allarch + +SRC_URI[archive.md5sum] = "f350804df16cdc9ef5306087157cf31b" +SRC_URI[archive.sha256sum] = "c2b7fb6db98c05e205053daaa7f58c7f06ff91b45c4006052af17c578ae7b47f" + +FILES_${PN} += " \ + ${datadir}/backgrounds \ + ${datadir}/gnome-background-properties \ +" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/gnome-bluetooth/gnome-bluetooth_3.18.2.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/gnome-bluetooth/gnome-bluetooth_3.18.2.bb deleted file mode 100644 index 8cfd65af..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/gnome-bluetooth/gnome-bluetooth_3.18.2.bb +++ /dev/null @@ -1,19 +0,0 @@ -SUMMARY = "GNOME bluetooth manager" -LICENSE = "GPLv2 & LGPLv2.1" -LIC_FILES_CHKSUM = "file://COPYING;md5=eb723b61539feef013de476e68b5c50a \ - file://COPYING.LIB;md5=a6f89e2100d9b6cdffcea4f398e37343 \ -" - -SECTION = "x11/gnome" - -DEPENDS = "udev gtk+3 libnotify libcanberra intltool-native gnome-common-native \ - ${@bb.utils.contains('DISTRO_FEATURES','bluez5','bluez5','bluez4',d)} \ -" - -inherit gnomebase gtk-icon-cache gobject-introspection distro_features_check -REQUIRED_DISTRO_FEATURES = "x11" - -SRC_URI[archive.md5sum] = "75d09c924468ec0c687f9ab3acf7f113" -SRC_URI[archive.sha256sum] = "d8df073c331df0f97261869fb77ffcdbf4e3e4eaf460d3c3ed2b16e03d9c5398" - -FILES_${PN}-dbg += "${libdir}/gnome-bluetooth/plugins/.debug/" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/gnome-bluetooth/gnome-bluetooth_3.34.0.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/gnome-bluetooth/gnome-bluetooth_3.34.0.bb new file mode 100644 index 00000000..ae6587be --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/gnome-bluetooth/gnome-bluetooth_3.34.0.bb @@ -0,0 +1,22 @@ +SUMMARY = "GNOME bluetooth manager" +LICENSE = "GPLv2 & LGPLv2.1" +LIC_FILES_CHKSUM = "file://COPYING;md5=eb723b61539feef013de476e68b5c50a \ + file://COPYING.LIB;md5=a6f89e2100d9b6cdffcea4f398e37343 \ +" + +SECTION = "x11/gnome" + +DEPENDS = "udev gtk+3 libnotify libcanberra bluez5" + +GNOMEBASEBUILDCLASS = "meson" +GTKDOC_MESON_OPTION = "gtk_doc" + +inherit gnomebase gtk-icon-cache gtk-doc gobject-introspection upstream-version-is-even + +# gtk-icon-cache bbclass will take care of this for us. +EXTRA_OEMESON = "-Dicon_update=false" + +SRC_URI[archive.md5sum] = "0c567e124a52e8ddc31c8bed0c3e57a1" +SRC_URI[archive.sha256sum] = "e867e67423e1dc78c56c2ea11dec066ce0254238d559e4777c80fa2935eb6baf" + +RDEPENDS_${PN} += "bluez5" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/gnome-calculator/gnome-calculator_3.34.1.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/gnome-calculator/gnome-calculator_3.34.1.bb new file mode 100644 index 00000000..b09e34d4 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/gnome-calculator/gnome-calculator_3.34.1.bb @@ -0,0 +1,33 @@ +SUMMARY = "GNOME calculator" +LICENSE = "GPLv3" +LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504" + +SECTION = "x11/gnome" + +DEPENDS = " \ + yelp-tools-native \ + gtk+3 \ + libsoup-2.4 \ + libgee \ + libmpc \ + gtksourceview4 \ +" + +GIR_MESON_OPTION = 'disable-introspection' +GIR_MESON_ENABLE_FLAG = 'false' +GIR_MESON_DISABLE_FLAG = 'true' + +GNOMEBASEBUILDCLASS = "meson" + +inherit gnomebase gobject-introspection gnome-help vala gtk-icon-cache gettext features_check upstream-version-is-even + +REQUIRED_DISTRO_FEATURES = "x11" + +SRC_URI[archive.md5sum] = "9157b93a3f41fdad80df26c062b95c7b" +SRC_URI[archive.sha256sum] = "4d5348c2fbf01d040a2cb5e84de812c503911e1ea498a83e7eefff52c4417051" + +FILES_${PN} += " \ + ${datadir}/dbus-1 \ + ${datadir}/metainfo \ + ${datadir}/gnome-shell \ +" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/gnome-control-center/gnome-control-center/0001-Add-meson-option-to-pass-sysroot.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/gnome-control-center/gnome-control-center/0001-Add-meson-option-to-pass-sysroot.patch new file mode 100644 index 00000000..7f82a152 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/gnome-control-center/gnome-control-center/0001-Add-meson-option-to-pass-sysroot.patch @@ -0,0 +1,45 @@ +From ba8aebe1259ae3f7f5a4827e5a47bb95c568b218 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Andreas=20M=C3=BCller?= +Date: Tue, 21 May 2019 16:07:46 +0200 +Subject: [PATCH] Add meson option to pass sysroot +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +We need to pass this to meson to help it finding gdesktop-enums.h: + +| panels/background/meson.build:38:0: ERROR: File /usr/include/gsettings-desktop-schemas/gdesktop-enums.h does not exist. + +Upstream-Status: Inappropriate [OE specific] + +Signed-off-by: Andreas Müller +--- + meson_options.txt | 1 + + panels/background/meson.build | 2 +- + 2 files changed, 2 insertions(+), 1 deletion(-) + +diff --git a/meson_options.txt b/meson_options.txt +index a347168..2cd8121 100644 +--- a/meson_options.txt ++++ b/meson_options.txt +@@ -1,3 +1,4 @@ ++option('oe_sysroot', type: 'string', value: '', description: 'Directory for OE-sysroot') + option('cheese', type: 'boolean', value: true, description: 'build with cheese webcam support') + option('documentation', type: 'boolean', value: false, description: 'build documentation') + option('gnome_session_libexecdir', type: 'string', value: '', description: 'Directory for gnome-session\'s libexecdir') +diff --git a/panels/background/meson.build b/panels/background/meson.build +index bb34b69..f22722e 100644 +--- a/panels/background/meson.build ++++ b/panels/background/meson.build +@@ -36,7 +36,7 @@ common_sources = [] + + enums = 'gdesktop-enums-types' + enums_header = files( +- gsettings_desktop_dep.get_pkgconfig_variable('prefix') + '/include/gsettings-desktop-schemas/gdesktop-enums.h', ++ get_option('oe_sysroot') + gsettings_desktop_dep.get_pkgconfig_variable('prefix') + '/include/gsettings-desktop-schemas/gdesktop-enums.h', + 'cc-background-item.h' + ) + +-- +2.20.1 + diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/gnome-control-center/gnome-control-center_3.34.2.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/gnome-control-center/gnome-control-center_3.34.2.bb new file mode 100644 index 00000000..9e6e92ae --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/gnome-control-center/gnome-control-center_3.34.2.bb @@ -0,0 +1,55 @@ +SUMMARY = "GNOME Settings" +DESCRIPTION = "GNOME Settings is GNOME's main interface for configuration of various aspects of your desktop" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=75859989545e37968a99b631ef42722e" + +GNOMEBASEBUILDCLASS = "meson" + +inherit gnomebase gsettings gettext vala upstream-version-is-even bash-completion features_check + +DEPENDS = " \ + gdk-pixbuf-native \ + colord-gtk \ + udisks2 \ + upower \ + polkit \ + pulseaudio \ + accountsservice \ + samba \ + gsettings-desktop-schemas \ + gnome-settings-daemon \ + gnome-desktop3 \ + gnome-online-accounts \ + network-manager-applet \ + gnome-bluetooth \ + grilo \ + libgtop \ + gsound \ + libpwquality \ +" + +REQUIRED_DISTRO_FEATURES += "polkit pulseaudio systemd x11" + +SRC_URI[archive.md5sum] = "a960a7d3e9f1c4f341bae42da7fbf23a" +SRC_URI[archive.sha256sum] = "a85ffaf5885a8c70c019013d73792bf4cc75f643e97f6e8b52f7fbba9f7a9114" +SRC_URI += "file://0001-Add-meson-option-to-pass-sysroot.patch" + +PACKAGECONFIG ??= "ibus ${@bb.utils.filter('DISTRO_FEATURES', 'wayland', d)}" +PACKAGECONFIG[ibus] = "-Dibus=true, -Dibus=false, ibus" +PACKAGECONFIG[wayland] = "-Dwayland=true, -Dwayland=false, wayland" + +# Once we have (lib)cheese we can make cheese a PACKAGECONFIG +EXTRA_OEMESON = " \ + -Doe_sysroot=${STAGING_DIR_HOST} \ + -Dcheese=false \ +" + +FILES_${PN} += " \ + ${datadir}/dbus-1 \ + ${datadir}/gnome-shell \ + ${datadir}/metainfo \ +" + +FILES_${PN}-dev += "${datadir}/gettext" + +RDEPENDS_${PN} += "gsettings-desktop-schemas" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/gnome-desktop/gnome-desktop/0001-meson.build-Disable-libseccomp-for-all-archs.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/gnome-desktop/gnome-desktop/0001-meson.build-Disable-libseccomp-for-all-archs.patch index e93d5b67..4b3894f0 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/gnome-desktop/gnome-desktop/0001-meson.build-Disable-libseccomp-for-all-archs.patch +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/gnome-desktop/gnome-desktop/0001-meson.build-Disable-libseccomp-for-all-archs.patch @@ -18,14 +18,14 @@ Signed-off-by: Andreas Müller 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/meson.build b/meson.build -index 83407b4..80eab84 100644 +index 2e7160d..f83677d 100644 --- a/meson.build +++ b/meson.build -@@ -53,12 +53,7 @@ udev_dep = dependency('libudev', required: get_option('udev')) +@@ -58,12 +58,7 @@ udev_dep = dependency('libudev', required: get_option('udev')) host_os = host_machine.system() host_cpu = host_machine.cpu() supported_os = ['linux'] --unsupported_cpus = ['alpha', 'ia64', 'm68k', 'sh4', 'sparc', 'sparc64'] +-unsupported_cpus = ['alpha', 'ia64', 'm68k', 'riscv64', 'sh4', 'sparc', 'sparc64'] -if supported_os.contains(host_os) and not unsupported_cpus.contains(host_cpu) - seccomp_dep = dependency('libseccomp') -else diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/gnome-desktop/gnome-desktop3_3.32.0.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/gnome-desktop/gnome-desktop3_3.32.0.bb deleted file mode 100644 index 0acbb211..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/gnome-desktop/gnome-desktop3_3.32.0.bb +++ /dev/null @@ -1,36 +0,0 @@ -SUMMARY = "GNOME library for reading .desktop files" -SECTION = "x11/gnome" -LICENSE = "GPLv2 & LGPLv2" -LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \ - file://COPYING.LIB;md5=5f30f0716dfdd0d91eb439ebec522ec2" - -BPN = "gnome-desktop" - -GNOMEBASEBUILDCLASS = "meson" - -inherit gnome pkgconfig upstream-version-is-even gobject-introspection distro_features_check - -# gobject-introspection is mandatory and cannot be configured -REQUIRED_DISTRO_FEATURES = "gobject-introspection-data" -UNKNOWN_CONFIGURE_WHITELIST_append = " introspection" - -SRC_URI[archive.md5sum] = "e423ed6d648c6c4f9798fa9cd9ea8d99" -SRC_URI[archive.sha256sum] = "a6393dc5fc29fc0652ac84c73b3da205d0b0168128c4cf6d27797a08f3d07b54" - -SRC_URI += " \ - file://gnome-desktop-thumbnail-don-t-assume-time_t-is-long.patch \ - file://0001-meson.build-Disable-libseccomp-for-all-archs.patch \ -" - -DEPENDS += "itstool-native gsettings-desktop-schemas virtual/libx11 gtk+3 startup-notification xkeyboard-config iso-codes udev" - -inherit distro_features_check gtk-doc -REQUIRED_DISTRO_FEATURES = "x11" - -GTKDOC_MESON_OPTION = "gtk_doc" -EXTRA_OEMESON = "-Ddesktop_docs=false" - -PACKAGES =+ "libgnome-desktop3" -FILES_libgnome-desktop3 = "${libdir}/lib*${SOLIBS} ${datadir}/libgnome-desktop*/pnp.ids ${datadir}/gnome/*xml" - -RRECOMMENDS_libgnome-desktop3 += "gsettings-desktop-schemas" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/gnome-desktop/gnome-desktop3_3.34.3.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/gnome-desktop/gnome-desktop3_3.34.3.bb new file mode 100644 index 00000000..cdd11aa9 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/gnome-desktop/gnome-desktop3_3.34.3.bb @@ -0,0 +1,36 @@ +SUMMARY = "GNOME library for reading .desktop files" +SECTION = "x11/gnome" +LICENSE = "GPLv2 & LGPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \ + file://COPYING.LIB;md5=5f30f0716dfdd0d91eb439ebec522ec2" + +BPN = "gnome-desktop" + +GNOMEBASEBUILDCLASS = "meson" + +inherit gnomebase itstool pkgconfig upstream-version-is-even gobject-introspection features_check + +# gobject-introspection is mandatory and cannot be configured +REQUIRED_DISTRO_FEATURES = "gobject-introspection-data" +UNKNOWN_CONFIGURE_WHITELIST_append = " introspection" + +SRC_URI[archive.md5sum] = "cdcd3006f55d8c8813315bef6f4f6b71" +SRC_URI[archive.sha256sum] = "acc2efc847574fd21d8f200679f111c2b1eb5ae2c041e0034e7c18450a7d9c6d" + +SRC_URI += " \ + file://gnome-desktop-thumbnail-don-t-assume-time_t-is-long.patch \ + file://0001-meson.build-Disable-libseccomp-for-all-archs.patch \ +" + +DEPENDS += "gsettings-desktop-schemas virtual/libx11 gtk+3 startup-notification xkeyboard-config iso-codes udev" + +inherit features_check gtk-doc +REQUIRED_DISTRO_FEATURES += "x11" + +GTKDOC_MESON_OPTION = "gtk_doc" +EXTRA_OEMESON = "-Ddesktop_docs=false" + +PACKAGES =+ "libgnome-desktop3" +FILES_libgnome-desktop3 = "${libdir}/lib*${SOLIBS} ${datadir}/libgnome-desktop*/pnp.ids ${datadir}/gnome/*xml" + +RRECOMMENDS_libgnome-desktop3 += "gsettings-desktop-schemas" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/gnome-flashback/gnome-flashback_3.34.2.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/gnome-flashback/gnome-flashback_3.34.2.bb new file mode 100644 index 00000000..3da8629c --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/gnome-flashback/gnome-flashback_3.34.2.bb @@ -0,0 +1,34 @@ +SUMMARY = "GNOME Flashback (GNOME 2) session" +LICENSE = "GPLv3" +LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504" + +inherit gnomebase gsettings gtk-icon-cache gettext upstream-version-is-even features_check + +REQUIRED_DISTRO_FEATURES = "x11 polkit systemd pam" + +DEPENDS += " \ + upower \ + ibus \ + libxkbfile \ + polkit \ + metacity \ + gnome-desktop3 \ + gnome-bluetooth \ +" + +SRC_URI[archive.md5sum] = "251b51bad322c41d34d06fdb8f1799d4" +SRC_URI[archive.sha256sum] = "3be65388cd2c8f39741bcc05da87ef40035183a9a39502d67696242c2aeb469c" + +do_install_append() { + # no oe-layer has compiz -> remove dead session + rm -f ${D}${datadir}/xsessions/gnome-flashback-compiz.desktop +} + +FILES_${PN} += " \ + ${datadir}/xsessions \ + ${datadir}/desktop-directories \ + ${datadir}/gnome-session \ + ${systemd_user_unitdir} \ +" + +RDEPENDS_${PN} += "metacity gnome-panel" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/gnome-font-viewer/gnome-font-viewer_3.34.0.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/gnome-font-viewer/gnome-font-viewer_3.34.0.bb new file mode 100644 index 00000000..d8f7e301 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/gnome-font-viewer/gnome-font-viewer_3.34.0.bb @@ -0,0 +1,25 @@ +SUMMARY = "GNOME font viewer" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f" + +SECTION = "x11/gnome" + +DEPENDS = " \ + gtk+3 \ + gnome-desktop3 \ +" + +GNOMEBASEBUILDCLASS = "meson" + +inherit gnomebase gtk-icon-cache gettext features_check upstream-version-is-even + +REQUIRED_DISTRO_FEATURES = "x11" + +SRC_URI[archive.md5sum] = "76004a8986ea622b09c408b01a6f42e5" +SRC_URI[archive.sha256sum] = "aa6f0583e5f93aec095e537f0638b29de3d02491f0131ef584a7c55d39d6b98b" + +FILES_${PN} += " \ + ${datadir}/dbus-1 \ + ${datadir}/metainfo \ + ${datadir}/thumbnailers \ +" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/gnome-keyring/gnome-keyring/0001-Set-paths-to-ssh-agent-and-ssh-add-by-configure-opti.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/gnome-keyring/gnome-keyring/0001-Set-paths-to-ssh-agent-and-ssh-add-by-configure-opti.patch new file mode 100644 index 00000000..32eecf8f --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/gnome-keyring/gnome-keyring/0001-Set-paths-to-ssh-agent-and-ssh-add-by-configure-opti.patch @@ -0,0 +1,42 @@ +From e6464e01bc1cdf5496be2942d1bac41aa609f47e Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Andreas=20M=C3=BCller?= +Date: Thu, 23 May 2019 23:44:06 +0200 +Subject: [PATCH] Set paths to ssh-agent and ssh-add by configure options +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +We have no executables in our sysroot so configuration won't find them. + +Upstream-Status: Inappropriate [OE specific] + +Signed-off-by: Andreas Müller +--- + configure.ac | 11 +++++++++-- + 1 file changed, 9 insertions(+), 2 deletions(-) + +diff --git a/configure.ac b/configure.ac +index 4b83664..eda0c96 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -351,8 +351,15 @@ if test "$enable_ssh_agent" = "no"; then + SSH_AGENT=false + SSH_ADD=false + else +- AC_PATH_PROG([SSH_AGENT], [ssh-agent], [no]) +- AC_PATH_PROG([SSH_ADD], [ssh-add], [no]) ++ AC_ARG_WITH([ssh-agent-path], ++ [AC_HELP_STRING([--with-ssh-agent-path=PATH], ++ [path to ssh-agent])], ++ [SSH_AGENT=$with_ssh_agent_path], [SSH_AGENT=no]) ++ AC_ARG_WITH([ssh-add-path], ++ [AC_HELP_STRING([--with-ssh-add-path=PATH], ++ [path to ssh-add])], ++ [SSH_ADD=$with_ssh_add_path], [SSH_ADD=no]) ++ + if test "$SSH_AGENT" = "no" -o "$SSH_ADD" = "no"; then + AC_MSG_ERROR([the ssh-agent and ssh-add commands were not found]) + else +-- +2.20.1 + diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/gnome-keyring/gnome-keyring_3.20.0.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/gnome-keyring/gnome-keyring_3.20.0.bb deleted file mode 100644 index 55640625..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/gnome-keyring/gnome-keyring_3.20.0.bb +++ /dev/null @@ -1,42 +0,0 @@ -SUMMARY = "Password and keyring managing daemon" -HOMEPAGE = "http://www.gnome.org/" -BUGTRACKER = "https://bugzilla.gnome.org/" -SECTION = "x11/gnome" - -LICENSE = "GPLv2+ & LGPLv2+ & LGPLv2.1+" -LIC_FILES_CHKSUM = " \ - file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \ - file://COPYING.LIB;md5=4fbd65380cdd255951079008b364516c \ -" - -inherit distro_features_check gnomebase remove-libtool - -DEPENDS = " \ - intltool-native \ - glib-2.0-native \ - gtk+3 \ - gcr \ - libgcrypt \ - ${@bb.utils.contains('DISTRO_FEATURES', 'pam', 'libpam', '', d)} \ -" - -SRC_URI[archive.md5sum] = "e09efe8021944dae404736b5a2adb98e" -SRC_URI[archive.sha256sum] = "bc17cecd748a0e46e302171d11c3ae3d76bba5258c441fabec3786f418e7ec99" -SRC_URI += "file://musl.patch" - -REQUIRED_DISTRO_FEATURES = "x11" - -RDEPENDS_${PN} = "libgnome-keyring glib-2.0-utils" - -EXTRA_OECONF = " \ - --disable-doc \ - ${@bb.utils.contains('DISTRO_FEATURES', 'pam', '--enable-pam --with-pam-dir=${base_libdir}/security', '--disable-pam', d)} \ -" - - -FILES_${PN} += " \ - ${datadir}/dbus-1/services \ - ${datadir}/p11-kit \ - ${base_libdir}/security/*${SOLIBSDEV} \ - ${libdir}/pkcs11/gnome-keyring-pkcs11.so \ -" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/gnome-keyring/gnome-keyring_3.34.0.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/gnome-keyring/gnome-keyring_3.34.0.bb new file mode 100644 index 00000000..52c254b2 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/gnome-keyring/gnome-keyring_3.34.0.bb @@ -0,0 +1,51 @@ +SUMMARY = "Password and keyring managing daemon" +HOMEPAGE = "http://www.gnome.org/" +BUGTRACKER = "https://bugzilla.gnome.org/" +SECTION = "x11/gnome" + +LICENSE = "GPLv2+ & LGPLv2+ & LGPLv2.1+" +LIC_FILES_CHKSUM = " \ + file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \ + file://COPYING.LIB;md5=4fbd65380cdd255951079008b364516c \ +" + +DEPENDS = " \ + glib-2.0-native \ + gtk+3 \ + gcr \ + libgcrypt \ + ${@bb.utils.contains('DISTRO_FEATURES', 'pam', 'libpam', '', d)} \ +" + +inherit gnomebase gsettings features_check remove-libtool gettext upstream-version-is-even + +REQUIRED_DISTRO_FEATURES = "x11" + +SRC_URI[archive.md5sum] = "7c8fd85e46ed4ba1add0288b2ead9aec" +SRC_URI[archive.sha256sum] = "e9cda9542a3e37c61636145e7e9e2513c569092ea8020752a834e1f40ad41943" +SRC_URI += " \ + file://0001-Set-paths-to-ssh-agent-and-ssh-add-by-configure-opti.patch \ + file://musl.patch \ +" + +PACKAGECONFIG ??= "ssh-agent" +PACKAGECONFIG[ssh-agent] = "--enable-ssh-agent --with-ssh-agent-path=${bindir}/ssh-agent --with-ssh-add-path=${bindir}/ssh-add,--disable-ssh-agent,,openssh-misc" + +EXTRA_OECONF = " \ + --disable-doc \ + ${@bb.utils.contains('DISTRO_FEATURES', 'pam', '--enable-pam --with-pam-dir=${base_libdir}/security', '--disable-pam', d)} \ +" + +FILES_${PN} += " \ + ${datadir}/dbus-1/services \ + ${datadir}/p11-kit \ + ${base_libdir}/security/*${SOLIBSDEV} \ + ${libdir}/pkcs11/gnome-keyring-pkcs11.so \ +" + +# fix | gnome-keyring-daemon: insufficient process capabilities, unsecure memory might get used +# This does not make it through pseudo so perform on-target - sigh +pkg_postinst_ontarget_${PN} () { + setcap cap_ipc_lock+ep `which gnome-keyring-daemon` +} +RDEPENDS_${PN} += "libcap-bin" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/gnome-keyring/libgnome-keyring_3.12.0.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/gnome-keyring/libgnome-keyring_3.12.0.bb deleted file mode 100644 index ba69e2e0..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/gnome-keyring/libgnome-keyring_3.12.0.bb +++ /dev/null @@ -1,29 +0,0 @@ -SUMMARY = "Compatibility library for accessing secrets" -HOMEPAGE = "http://www.gnome.org/" -BUGTRACKER = "https://bugzilla.gnome.org/" - -LICENSE = "GPLv2 & LGPLv2" -LIC_FILES_CHKSUM = " \ - file://COPYING;md5=0914b9d3ebaba41ef2e3e0ae16f296cf \ - file://COPYING.GPL;md5=94d55d512a9ba36caa9b7df079bae19f \ -" -SECTION = "x11/gnome/libs" - -inherit gnomebase gtk-doc gobject-introspection - -DEPENDS = "dbus libgcrypt glib-2.0 glib-2.0-native intltool-native" - -SRC_URI[archive.md5sum] = "6696e4f2e9aed4625cdc3af30bd8c238" -SRC_URI[archive.sha256sum] = "c4c178fbb05f72acc484d22ddb0568f7532c409b0a13e06513ff54b91e947783" - - -# Fails to build with thumb-1 (qemuarm) -#| {standard input}: Assembler messages: -#| {standard input}:823: Error: shifts in CMP/MOV instructions are only supported in unified syntax -- `mov r12,r12,ror#3' -#| {standard input}:823: Error: shifts in CMP/MOV instructions are only supported in unified syntax -- `mov r12,r12,ror#13' -#| {standard input}:824: Error: shifts in CMP/MOV instructions are only supported in unified syntax -- `mov r12,r12,ror#29' -#| {standard input}:824: Error: shifts in CMP/MOV instructions are only supported in unified syntax -- `mov r12,r12,ror#19' -#| {standard input}:825: Error: lo register required -- `orr r10,r10,r10' -ARM_INSTRUCTION_SET_armv5 = "arm" -ARM_INSTRUCTION_SET_armv4 = "arm" - diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/gnome-menus/gnome-menus3_3.10.1.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/gnome-menus/gnome-menus3_3.10.1.bb deleted file mode 100644 index 647ae914..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/gnome-menus/gnome-menus3_3.10.1.bb +++ /dev/null @@ -1,21 +0,0 @@ -SUMMARY = "GNOME menus" -SECTION = "x11/gnome" -LICENSE = "GPLv2 & LGPLv2" -LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \ - file://COPYING.LIB;md5=5f30f0716dfdd0d91eb439ebec522ec2" - -DEPENDS = "python libxml2 gconf popt gtk+3 intltool-native gnome-common-native" - -inherit distro_features_check gnomebase pkgconfig python-dir pythonnative gobject-introspection - -REQUIRED_DISTRO_FEATURES = "x11" - -BPN = "gnome-menus" - -SHRT_VER = "${@d.getVar('PV').split('.')[0]}.${@d.getVar('PV').split('.')[1]}" -SRC_URI = "${GNOME_MIRROR}/${BPN}/${SHRT_VER}/${BPN}-${PV}.tar.xz" - -SRC_URI[md5sum] = "6db025e79e2b69f39fc7aa0753f43081" -SRC_URI[sha256sum] = "46950aba274c1ad58234374fa9b235258650737307f3bc396af48eb983668a71" - -FILES_${PN} += "${datadir}/desktop-directories/" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/gnome-menus/gnome-menus3_3.32.0.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/gnome-menus/gnome-menus3_3.32.0.bb new file mode 100644 index 00000000..3f441d91 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/gnome-menus/gnome-menus3_3.32.0.bb @@ -0,0 +1,18 @@ +SUMMARY = "GNOME menus" +SECTION = "x11/gnome" +LICENSE = "GPLv2 & LGPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \ + file://COPYING.LIB;md5=5f30f0716dfdd0d91eb439ebec522ec2" + +DEPENDS = "python libxml2 popt gtk+3 gnome-common-native" + +inherit features_check gnomebase gettext pkgconfig gobject-introspection upstream-version-is-even + +REQUIRED_DISTRO_FEATURES = "x11" + +BPN = "gnome-menus" + +SRC_URI[archive.md5sum] = "4262208c13f266d9ada7d356aada9e1b" +SRC_URI[archive.sha256sum] = "c850c64b2074265fe59e099a340b8689cf3dd4658dc9feddd2ab5e95f1a74b74" + +FILES_${PN} += "${datadir}/desktop-directories/" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/gnome-online-accounts/gnome-online-accounts_3.34.1.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/gnome-online-accounts/gnome-online-accounts_3.34.1.bb new file mode 100644 index 00000000..74d71ec8 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/gnome-online-accounts/gnome-online-accounts_3.34.1.bb @@ -0,0 +1,35 @@ +SUMMARY = "GNOME Online Accounts - Single sign-on framework for GNOME" +LICENSE = "LGPLv2+" +LIC_FILES_CHKSUM = "file://COPYING;md5=34c88b124db5fb2762c1676be7dadd36" + +GNOMEBASEBUILDCLASS = "autotools" + +inherit gnomebase gsettings gobject-introspection gsettings gtk-doc vala gettext upstream-version-is-even features_check + +# for webkitgtk +REQUIRED_DISTRO_FEATURES = "x11" + +DEPENDS = "glib-2.0" + +SRC_URI[archive.md5sum] = "aa94d1dd07ca53729a036b5df1c78c05" +SRC_URI[archive.sha256sum] = "4832ca8e48d3a497fc676e7b6f146009ab4206995362977b9805aa39f164783a" + +# backend is required for gnome-control-center +PACKAGECONFIG = "backend other" + +PACKAGECONFIG[backend] = "--enable-backend,--disable-backend,gtk+3 webkitgtk libsoup-2.4 json-glib libsecret rest libxml2" +PACKAGECONFIG[krb5] = "--enable-kerberos, --disable-kerberos , krb5 gcr" + +# no extra dependencies! +PACKAGECONFIG[other] = " \ + --enable-facebook --enable-foursquare --enable-exchange --enable-flickr --enable-google --enable-imap-smtp --enable-owncloud --enable-windows-live,\ + --disable-facebook --disable-foursquare --disable-exchange --disable-flickr --disable-google --disable-imap-smtp --disable-owncloud --disable-windows-live, \ +" + +FILES_${PN} += " \ + ${datadir}/dbus-1 \ + ${libdir}/goa-1.0/web-extensions/*.so \ +" + +# looked into pkg-config file: it is not a bug - they mean it +FILES_${PN}-dev += "${libdir}/goa-1.0/include" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/gnome-panel/gnome-panel/0001-Do-not-try-to-find-ZONEINFO-it-tries-to-run-compiled.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/gnome-panel/gnome-panel/0001-Do-not-try-to-find-ZONEINFO-it-tries-to-run-compiled.patch new file mode 100644 index 00000000..6ab4daf0 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/gnome-panel/gnome-panel/0001-Do-not-try-to-find-ZONEINFO-it-tries-to-run-compiled.patch @@ -0,0 +1,37 @@ +From d4b2f0922dfdd6040e5e9f62a2565452cf855c42 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Andreas=20M=C3=BCller?= +Date: Mon, 21 Oct 2019 22:10:56 +0200 +Subject: [PATCH] Do not try to find ZONEINFO - it tries to run compiled code +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Missing configutation does not cause issues: The fallback in modules/clock/system-timezone.c +matches our default. + +Inappropriate [embedded specific] + +Signed-off-by: Andreas Müller +--- + configure.ac | 5 ----- + 1 file changed, 5 deletions(-) + +diff --git a/configure.ac b/configure.ac +index c75a9fa..0c9d945 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -249,11 +249,6 @@ dnl yelp-tools stuff + + YELP_HELP_INIT + +-dnl ************************************************************************** +-dnl Find zoneinfo directory +-dnl ************************************************************************** +- +-AX_ZONEINFO + + dnl ************************************************************************** + dnl Process .in files +-- +2.21.0 + diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/gnome-panel/gnome-panel_3.34.1.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/gnome-panel/gnome-panel_3.34.1.bb new file mode 100644 index 00000000..4d5fdb65 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/gnome-panel/gnome-panel_3.34.1.bb @@ -0,0 +1,28 @@ +SUMMARY = "GNOME flashback panel" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263" + +inherit gnomebase gsettings itstool gnome-help gtk-icon-cache gtk-doc gettext upstream-version-is-even features_check + +REQUIRED_DISTRO_FEATURES = "x11 polkit systemd pam" + +DEPENDS += " \ + yelp-tools-native \ + libwnck3 \ + polkit \ + dconf \ + libgweather \ + gnome-menus3 \ + gnome-desktop3 \ + gdm \ +" + +SRC_URI[archive.md5sum] = "cfd5d3fd548a2afdd8bd3bbdf9646bbd" +SRC_URI[archive.sha256sum] = "a6bc0255252eeb4b964bcbe55fd7908b69f914c062c5ec8dff5ac0262d29b90d" +SRC_URI += " \ + file://0001-Do-not-try-to-find-ZONEINFO-it-tries-to-run-compiled.patch \ +" + +PACKAGECONFIG[eds] = "--enable-eds,--disable-eds,evolution-data-server" + +RDEPENDS_${PN} += "gdm-base" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/gnome-session/gnome-session_3.34.2.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/gnome-session/gnome-session_3.34.2.bb new file mode 100644 index 00000000..15bf489c --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/gnome-session/gnome-session_3.34.2.bb @@ -0,0 +1,39 @@ +SUMMARY = "GNOME session" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263" + +DEPENDS = " \ + glib-2.0-native \ + libxslt-native \ + xmlto-native \ + xtrans \ + libice \ + libsm \ + virtual/libx11 \ + gtk+3 \ + gnome-desktop3 \ + gsettings-desktop-schemas \ + json-glib \ +" + +GNOMEBASEBUILDCLASS = "meson" + +inherit gnomebase gettext gsettings upstream-version-is-even features_check + +REQUIRED_DISTRO_FEATURES = "x11 polkit systemd pam gobject-introspection-data" + +SRC_URI[archive.md5sum] = "38dcdb844a0349cc2fb10998095543e4" +SRC_URI[archive.sha256sum] = "8bb77381650a03ae4be7260751363bd27da93f09bac1ddbc885f4ce44ebaf8e1" + +PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'systemd', 'consolekit',d)}" + +PACKAGECONFIG[consolekit] = "-Dconsolekit=true, -Dconsolekit=false, consolekit" +PACKAGECONFIG[systemd] = "-Dsystemd=true -Dsystemd_journal=true, -Dsystemd=false -Dsystemd_journal=false, systemd" + +FILES_${PN} += " \ + ${datadir}/xsessions \ + ${datadir}/wayland-sessions \ + ${systemd_user_unitdir} \ +" + +RDEPENDS_${PN} += "gnome-shell gnome-settings-daemon gsettings-desktop-schemas" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/gnome-settings-daemon/gnome-settings-daemon_3.34.2.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/gnome-settings-daemon/gnome-settings-daemon_3.34.2.bb new file mode 100644 index 00000000..0b6865d2 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/gnome-settings-daemon/gnome-settings-daemon_3.34.2.bb @@ -0,0 +1,59 @@ +SUMMARY = "Window navigation construction toolkit" +LICENSE = "LGPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552" + +GNOMEBASEBUILDCLASS = "meson" + +inherit gnomebase gsettings gobject-introspection gettext features_check upstream-version-is-even + +SRC_URI[archive.md5sum] = "528b0b7cc2dd22c6026a9c8739c71fa7" +SRC_URI[archive.sha256sum] = "7ce4979817866911a94ecb75b36db56797e038c0c524c5c1a81aefccafc17337" + +DEPENDS = " \ + colord \ + geocode-glib \ + gcr \ + gnome-desktop3 \ + libgweather \ + lcms \ + libcanberra \ + geoclue \ + libnotify \ + upower \ + libwacom \ + virtual/libx11 \ +" + +# all these are mandatory +REQUIRED_DISTRO_FEATURES = "x11 polkit pulseaudio systemd gobject-introspection-data" +UNKNOWN_CONFIGURE_WHITELIST_append = " introspection" + +SRC_URI[archive.md5sum] = "493332fa0f36645188468fed41c0060b" +SRC_URI[archive.sha256sum] = "9fbae67e217e53b99e4f9e7d392c91ffbe31253941c9b136ef09c2d9db7ad7ed" + +# allow cross build mixed with build of native tools +do_write_config_append() { + cat >${WORKDIR}/meson.native < -Date: Sun, 24 Mar 2019 02:46:07 +0100 -Subject: [PATCH] Do not build help - we do not have yelp yet -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Upstream-Status: Inappropriate [embedded-specific] - -Signed-off-by: Andreas Müller ---- - meson.build | 1 - - 1 file changed, 1 deletion(-) - -diff --git a/meson.build b/meson.build -index d60ced7..6a0ab4b 100644 ---- a/meson.build -+++ b/meson.build -@@ -183,7 +183,6 @@ subdir('data') - subdir('po') - subdir('scripts') - subdir('src') --subdir('help') - - - message('\n'.join(['', --- -2.20.1 - diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/gnome-system-monitor/gnome-system-monitor_3.32.0.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/gnome-system-monitor/gnome-system-monitor_3.32.0.bb deleted file mode 100644 index c2432a32..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/gnome-system-monitor/gnome-system-monitor_3.32.0.bb +++ /dev/null @@ -1,33 +0,0 @@ -SUMMARY = "Gnome system monitor" -LICENSE = "GPLv2" -LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe" - -DEPENDS = " \ - itstool-native \ - gnome-common-native \ - libxml2-native \ - glib-2.0-native \ - gtkmm3 \ - libgtop \ - librsvg \ -" - -GNOMEBASEBUILDCLASS = "meson" - -inherit gnomebase gtk-icon-cache distro_features_check gettext - -REQUIRED_DISTRO_FEATURES = "x11" - -SRC_URI[archive.md5sum] = "6c2c5c5bf8f15d3e6985faacbd3055dd" -SRC_URI[archive.sha256sum] = "af00c4a42dd1db17d9abe88edb11c7751b20982db1a8a2a467bab206fd8a77e3" -SRC_URI += "file://0001-Do-not-build-help-we-do-not-have-yelp-yet.patch" - -PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)}" -PACKAGECONFIG[systemd] = "-Dsystemd=true, -Dsystemd=false, systemd" - -RRECOMMENDS_${PN} = "adwaita-icon-theme" - -FILES_${PN} += " \ - ${datadir}/dbus-1 \ - ${datadir}/metainfo \ -" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/gnome-system-monitor/gnome-system-monitor_3.32.1.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/gnome-system-monitor/gnome-system-monitor_3.32.1.bb new file mode 100644 index 00000000..f30edee6 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/gnome-system-monitor/gnome-system-monitor_3.32.1.bb @@ -0,0 +1,32 @@ +SUMMARY = "Gnome system monitor" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe" + +DEPENDS = " \ + gnome-common-native \ + libxml2-native \ + glib-2.0-native \ + gtkmm3 \ + libgtop \ + librsvg \ + polkit \ +" + +GNOMEBASEBUILDCLASS = "meson" + +inherit gnomebase gsettings gnome-help itstool gtk-icon-cache features_check gettext upstream-version-is-even + +REQUIRED_DISTRO_FEATURES = "x11 polkit" + +SRC_URI[archive.md5sum] = "37356a1b8c20939adc6f47f739d2e49a" +SRC_URI[archive.sha256sum] = "48c131335091bd927862f40ef56400f997981df2acfc82abea662bf91a1ea4f1" + +PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)}" +PACKAGECONFIG[systemd] = "-Dsystemd=true, -Dsystemd=false, systemd" + +RRECOMMENDS_${PN} = "adwaita-icon-theme" + +FILES_${PN} += " \ + ${datadir}/dbus-1 \ + ${datadir}/metainfo \ +" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/gnome-terminal/gnome-terminal/0001-Add-W_EXITCODE-macro-for-non-glibc-systems.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/gnome-terminal/gnome-terminal/0001-Add-W_EXITCODE-macro-for-non-glibc-systems.patch new file mode 100644 index 00000000..a69390eb --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/gnome-terminal/gnome-terminal/0001-Add-W_EXITCODE-macro-for-non-glibc-systems.patch @@ -0,0 +1,35 @@ +From f231cecc151930fd5b6309da317a8c5bc6001f38 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Andreas=20M=C3=BCller?= +Date: Sun, 17 Nov 2019 15:55:54 +0100 +Subject: [PATCH] Add W_EXITCODE macro for non-glibc systems +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Upstream-Status: Pending + +Signed-off-by: Andreas Müller +--- + src/terminal.c | 6 ++++++ + 1 file changed, 6 insertions(+) + +diff --git a/src/terminal.c b/src/terminal.c +index d06ce35..6284e4c 100644 +--- a/src/terminal.c ++++ b/src/terminal.c +@@ -47,6 +47,12 @@ + GS_DEFINE_CLEANUP_FUNCTION0(TerminalOptions*, gs_local_options_free, terminal_options_free) + #define gs_free_options __attribute__ ((cleanup(gs_local_options_free))) + ++/* fix for musl */ ++#ifndef W_EXITCODE ++#define W_EXITCODE(ret, sig) ((ret) << 8 | (sig)) ++#endif ++ ++ + /* Wait-for-exit helper */ + + typedef struct { +-- +2.21.0 + diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/gnome-terminal/gnome-terminal_3.34.2.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/gnome-terminal/gnome-terminal_3.34.2.bb new file mode 100644 index 00000000..ba9a79d8 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/gnome-terminal/gnome-terminal_3.34.2.bb @@ -0,0 +1,37 @@ +SUMMARY = "GNOME terminal" +LICENSE = "GPLv3 & GFDL-1.3" +LIC_FILES_CHKSUM = " \ + file://COPYING;md5=f27defe1e96c2e1ecd4e0c9be8967949 \ + file://COPYING.GFDL;md5=a22d0be1ce2284b67950a4d1673dd1b0 \ +" + +inherit gnomebase gsettings gnome-help gettext itstool upstream-version-is-even + +DEPENDS = " \ + glib-2.0-native \ + intltool-native \ + yelp-tools-native \ + desktop-file-utils-native \ + gtk+3 \ + gsettings-desktop-schemas \ + vte \ + dconf \ + libpcre2 \ +" + +SRC_URI[archive.md5sum] = "13fa9f5f459481c7f05b6964c470ef16" +SRC_URI[archive.sha256sum] = "3bd723f4058ec014da4715db4181b7d73eccc797b85ad5e6236996951c01803d" +SRC_URI += "file://0001-Add-W_EXITCODE-macro-for-non-glibc-systems.patch" + +EXTRA_OECONF += " \ + --disable-search-provider \ + --without-nautilus-extension \ +" + +FILES_${PN} += " \ + ${datadir}/metainfo \ + ${datadir}/dbus-1 \ + ${systemd_user_unitdir} \ +" + +RRECOMMENDS_${PN} += "vte-prompt gsettings-desktop-schemas" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/gnome-tweaks/gnome-tweaks/0001-Make-python-path-configurable.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/gnome-tweaks/gnome-tweaks/0001-Make-python-path-configurable.patch new file mode 100644 index 00000000..8129f85a --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/gnome-tweaks/gnome-tweaks/0001-Make-python-path-configurable.patch @@ -0,0 +1,41 @@ +From db94983c93f38bd8494b47d9fa1b3e5368dc9abe Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Andreas=20M=C3=BCller?= +Date: Wed, 11 Dec 2019 01:34:01 +0100 +Subject: [PATCH] Make python path configurable +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Upstream-Status: Inappropriate [Configuration] + +Signed-off-by: Andreas Müller +--- + meson.build | 2 +- + meson_options.txt | 2 ++ + 2 files changed, 3 insertions(+), 1 deletion(-) + create mode 100644 meson_options.txt + +diff --git a/meson.build b/meson.build +index b7da518..d58fb5b 100644 +--- a/meson.build ++++ b/meson.build +@@ -13,7 +13,7 @@ bindir = join_paths(prefix, get_option('bindir')) + datadir = join_paths(prefix, get_option('datadir')) + libexecdir = join_paths(prefix, get_option('libexecdir')) + localedir = join_paths(prefix, get_option('localedir')) +-pythondir = join_paths(prefix, python3.sysconfig_path('purelib')) ++pythondir = get_option('python_site_dir') + + pkgdatadir = join_paths(datadir, meson.project_name()) + +diff --git a/meson_options.txt b/meson_options.txt +new file mode 100644 +index 0000000..03455ca +--- /dev/null ++++ b/meson_options.txt +@@ -0,0 +1,2 @@ ++option('python_site_dir', type: 'string', value: '') ++ +-- +2.21.0 + diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/gnome-tweaks/gnome-tweaks_3.34.0.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/gnome-tweaks/gnome-tweaks_3.34.0.bb new file mode 100644 index 00000000..af4c8c64 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/gnome-tweaks/gnome-tweaks_3.34.0.bb @@ -0,0 +1,32 @@ +SUMMARY = "GNOME tweaks: Advanced options for GNOME 3 session" +LICENSE = "GPLv3 & CC0-1.0" +LIC_FILES_CHKSUM = " \ + file://LICENSES/CC0-1.0;md5=65d3616852dbf7b1a6d4b53b00626032 \ + file://LICENSES/GPL-3.0;md5=9eef91148a9b14ec7f9df333daebc746 \ +" + +DEPENDS = "libhandy" + +GNOMEBASEBUILDCLASS = "meson" + +inherit gnomebase gtk-icon-cache gobject-introspection features_check upstream-version-is-even + +# same as gnome-shell +REQUIRED_DISTRO_FEATURES = "x11 polkit systemd pam" + +# gobject-introspection is mandatory and cannot be configured +REQUIRED_DISTRO_FEATURES += "gobject-introspection-data" +UNKNOWN_CONFIGURE_WHITELIST_append = " introspection" + +SRC_URI[archive.md5sum] = "a625d8b167c5549c68e1c6ac7a87d369" +SRC_URI[archive.sha256sum] = "003326fab46e6faad9485924bca503f0c583e3b4553d6f673406eda396205250" +SRC_URI += "file://0001-Make-python-path-configurable.patch" + +EXTRA_OEMESON = "-Dpython_site_dir=${PYTHON_SITEPACKAGES_DIR}" + +FILES_${PN} += " \ + ${datadir}/metainfo \ + ${PYTHON_SITEPACKAGES_DIR} \ +" + +RDEPENDS_${PN} += "gnome-shell python3-core python3-logging libhandy" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/grilo/grilo_0.3.10.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/grilo/grilo_0.3.10.bb new file mode 100644 index 00000000..e3fd6717 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/grilo/grilo_0.3.10.bb @@ -0,0 +1,29 @@ +SUMMARY = "Grilo is a framework forsearching media content from various sources" +LICENSE = "LGPLv2.1" +LIC_FILES_CHKSUM = "file://COPYING;md5=fbc093901857fcd118f065f900982c24" + +DEPENDS = " \ + libxml2 \ + glib-2.0 \ +" + +GNOMEBASEBUILDCLASS = "meson" + +inherit gnomebase gobject-introspection gtk-doc gettext vala + +SRC_URI[archive.md5sum] = "f02bf585d1a48dc65be8b90ae3b08330" +SRC_URI[archive.sha256sum] = "7e44b2e74c31ed24eb97e43265a9e41effe8660287b02295111805c7bda7f1e8" + +GIR_MESON_OPTION = "enable-introspection" +GTKDOC_MESON_OPTION = "enable-gtk-doc" + +# Note: removing 'net' from PACKAGECONFIG causes +# | bindings/vala/meson.build:15:0: ERROR: Unknown variable "grlnet_gir". +PACKAGECONFIG ??= "net" + +PACKAGECONFIG[net] = "-Denable-grl-net=true, -Denable-grl-net=false, libsoup-2.4" +PACKAGECONFIG[test-ui] = "-Denable-test-ui=true, -Denable-test-ui=false, gtk+3 liboauth" + +# Once we have a recipe for 'totem-plparser' this can turn into a PACKAGECONFIG +EXTRA_OEMESON = "-Denable-grl-pls=false" + diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/gsound/gsound_1.0.2.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/gsound/gsound_1.0.2.bb new file mode 100644 index 00000000..e4478e14 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/gsound/gsound_1.0.2.bb @@ -0,0 +1,13 @@ +SUMMARY = "Small gobject library for playing system sounds" +LICENSE = "LGPLv2.1" +LIC_FILES_CHKSUM = "file://COPYING;md5=447b837ae57f08b7060593ac6256163f" + +DEPENDS = " \ + glib-2.0 \ + libcanberra \ +" + +inherit gnomebase gettext gobject-introspection vala + +SRC_URI[archive.md5sum] = "c26fd21c21b9ef6533a202a73fab21db" +SRC_URI[archive.sha256sum] = "bba8ff30eea815037e53bee727bbd5f0b6a2e74d452a7711b819a7c444e78e53" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/gspell/gspell_1.8.1.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/gspell/gspell_1.8.1.bb deleted file mode 100644 index 9de298c4..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/gspell/gspell_1.8.1.bb +++ /dev/null @@ -1,11 +0,0 @@ -SUMMARY = "spell adds spell-checking to a GTK+ applications" -HOMEPAGE = "https://wiki.gnome.org/Projects/gspell" -LICENSE = "LGPLv2.1" -LIC_FILES_CHKSUM = "file://COPYING;md5=8c2e1ec1540fb3e0beb68361344cba7e" - -DEPENDS = "gtk+3 iso-codes enchant2" - -inherit gnomebase gettext gobject-introspection - -SRC_URI[archive.md5sum] = "8269918ea5ff798e49943e7daf6a32b9" -SRC_URI[archive.sha256sum] = "819a1d23c7603000e73f5e738bdd284342e0cd345fb0c7650999c31ec741bbe5" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/gspell/gspell_1.8.2.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/gspell/gspell_1.8.2.bb new file mode 100644 index 00000000..128a89f5 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/gspell/gspell_1.8.2.bb @@ -0,0 +1,11 @@ +SUMMARY = "gspell adds spell-checking to a GTK+ applications" +HOMEPAGE = "https://wiki.gnome.org/Projects/gspell" +LICENSE = "LGPLv2.1" +LIC_FILES_CHKSUM = "file://COPYING;md5=8c2e1ec1540fb3e0beb68361344cba7e" + +DEPENDS = "gtk+3 iso-codes enchant2" + +inherit gnomebase gettext gobject-introspection + +SRC_URI[archive.md5sum] = "4f857382bc9d8d4afe1e67e5b5b9dbff" +SRC_URI[archive.sha256sum] = "bb9195c3a95bacf556d0203e9691f7489e0d3bc5ae1e5a440c89b2f2435d3ed6" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/gtksourceview/gtksourceview-classic-light_1.0.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/gtksourceview/gtksourceview-classic-light_1.0.bb index 7dabd1e3..bcc3106d 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/gtksourceview/gtksourceview-classic-light_1.0.bb +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/gtksourceview/gtksourceview-classic-light_1.0.bb @@ -9,8 +9,6 @@ SRC_URI = "file://classic-light.xml" S = "${WORKDIR}" do_install() { - install -d ${D}${datadir}/gtksourceview-2.0/styles - install -m 0644 ${WORKDIR}/classic-light.xml ${D}${datadir}/gtksourceview-2.0/styles/ install -d ${D}${datadir}/gtksourceview-3.0/styles install -m 0644 ${WORKDIR}/classic-light.xml ${D}${datadir}/gtksourceview-3.0/styles/ install -d ${D}${datadir}/gtksourceview-4/styles @@ -18,7 +16,6 @@ do_install() { } FILES_${PN} = " \ - ${datadir}/gtksourceview-2.0/styles \ ${datadir}/gtksourceview-3.0/styles \ ${datadir}/gtksourceview-4/styles \ " diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/gtksourceview/gtksourceview2_2.10.5.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/gtksourceview/gtksourceview2_2.10.5.bb deleted file mode 100644 index 012f8e3b..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/gtksourceview/gtksourceview2_2.10.5.bb +++ /dev/null @@ -1,32 +0,0 @@ -SUMMARY = "Portable C library for multiline text editing" -HOMEPAGE = "http://projects.gnome.org/gtksourceview/" - -LICENSE = "GPLv2" -LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f" - -DEPENDS = "gtk+ libxml2 intltool-native gnome-common-native glib-2.0-native" - -PNAME = "gtksourceview" - -S = "${WORKDIR}/${PNAME}-${PV}" - -inherit gnomebase lib_package gettext distro_features_check - -REQUIRED_DISTRO_FEATURES = "x11" - -# overrule SRC_URI from gnome.conf -SRC_URI = "${GNOME_MIRROR}/${PNAME}/${@gnome_verdir("${PV}")}/${PNAME}-${PV}.tar.bz2;name=archive \ - file://gtk-doc.make \ - file://suppress-string-format-literal-warning.patch \ - file://0001-test-widget.c-fix-non-literal-format-string-issues.patch \ - " -SRC_URI[archive.md5sum] = "1219ad1694df136f126507466aeb41aa" -SRC_URI[archive.sha256sum] = "c585773743b1df8a04b1be7f7d90eecdf22681490d6810be54c81a7ae152191e" - -do_configure_prepend() { - cp ${WORKDIR}/gtk-doc.make ${S}/ - sed -i -e s:docs::g ${S}/Makefile.am - echo "EXTRA_DIST = version.xml" > gnome-doc-utils.make -} - -FILES_${PN} += " ${datadir}/gtksourceview-2.0" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/gtksourceview/gtksourceview3_3.24.10.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/gtksourceview/gtksourceview3_3.24.10.bb deleted file mode 100644 index d91e479d..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/gtksourceview/gtksourceview3_3.24.10.bb +++ /dev/null @@ -1,21 +0,0 @@ -SUMMARY = "Portable C library for multiline text editing" -HOMEPAGE = "http://projects.gnome.org/gtksourceview/" - -LICENSE = "LGPLv2.1" -LIC_FILES_CHKSUM = "file://COPYING;md5=fbc093901857fcd118f065f900982c24" - -DEPENDS = "gtk+3 libxml2 intltool-native gnome-common-native glib-2.0-native" - -PNAME = "gtksourceview" - -S = "${WORKDIR}/${PNAME}-${PV}" - -inherit gnomebase lib_package gettext distro_features_check gtk-doc gobject-introspection - -REQUIRED_DISTRO_FEATURES = "x11" - -SRC_URI = "http://ftp.gnome.org/pub/gnome/sources/gtksourceview/3.24/${PNAME}-${PV}.tar.xz" -SRC_URI[md5sum] = "e43337d17c40eae440a76630db76c54e" -SRC_URI[sha256sum] = "ab5406cdd0bdcf66afcd52b1e048a2f43c0f3ab391644ee30d9ac419b93cd59b" - -FILES_${PN} += " ${datadir}/gtksourceview-3.0" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/gtksourceview/gtksourceview3_3.24.11.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/gtksourceview/gtksourceview3_3.24.11.bb new file mode 100644 index 00000000..13f81b4c --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/gtksourceview/gtksourceview3_3.24.11.bb @@ -0,0 +1,21 @@ +SUMMARY = "Portable C library for multiline text editing" +HOMEPAGE = "http://projects.gnome.org/gtksourceview/" + +LICENSE = "LGPLv2.1" +LIC_FILES_CHKSUM = "file://COPYING;md5=fbc093901857fcd118f065f900982c24" + +DEPENDS = "gtk+3 libxml2 intltool-native gnome-common-native glib-2.0-native" + +PNAME = "gtksourceview" + +S = "${WORKDIR}/${PNAME}-${PV}" + +inherit gnomebase lib_package gettext features_check gtk-doc gobject-introspection upstream-version-is-even + +REQUIRED_DISTRO_FEATURES = "x11" + +SRC_URI = "http://ftp.gnome.org/pub/gnome/sources/gtksourceview/3.24/${PNAME}-${PV}.tar.xz" +SRC_URI[md5sum] = "b748da426a7d64e1304f0c532b0f2a67" +SRC_URI[sha256sum] = "691b074a37b2a307f7f48edc5b8c7afa7301709be56378ccf9cc9735909077fd" + +FILES_${PN} += " ${datadir}/gtksourceview-3.0" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/gtksourceview/gtksourceview4_4.2.0.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/gtksourceview/gtksourceview4_4.2.0.bb deleted file mode 100644 index 10deaffb..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/gtksourceview/gtksourceview4_4.2.0.bb +++ /dev/null @@ -1,21 +0,0 @@ -SUMMARY = "Portable C library for multiline text editing" -HOMEPAGE = "http://projects.gnome.org/gtksourceview/" - -LICENSE = "LGPLv2.1" -LIC_FILES_CHKSUM = "file://COPYING;md5=fbc093901857fcd118f065f900982c24" - -DEPENDS = "gtk+3 libxml2 intltool-native gnome-common-native glib-2.0-native" - -PNAME = "gtksourceview" - -S = "${WORKDIR}/${PNAME}-${PV}" - -inherit gnomebase lib_package gettext distro_features_check gtk-doc gobject-introspection - -REQUIRED_DISTRO_FEATURES = "x11" - -SRC_URI = "http://ftp.gnome.org/pub/gnome/sources/gtksourceview/4.2/${PNAME}-${PV}.tar.xz" -SRC_URI[md5sum] = "c9e6913c2fd30ca2fcdd71482faf8b99" -SRC_URI[sha256sum] = "c431eb234dc83c7819e58f77dd2af973252c7750da1c9d125ddc94268f94f675" - -FILES_${PN} += "${datadir}/gtksourceview-4" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/gtksourceview/gtksourceview4_4.4.0.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/gtksourceview/gtksourceview4_4.4.0.bb new file mode 100644 index 00000000..bb49550c --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/gtksourceview/gtksourceview4_4.4.0.bb @@ -0,0 +1,26 @@ +SUMMARY = "Portable C library for multiline text editing" +HOMEPAGE = "http://projects.gnome.org/gtksourceview/" + +LICENSE = "LGPLv2.1" +LIC_FILES_CHKSUM = "file://COPYING;md5=fbc093901857fcd118f065f900982c24" + +DEPENDS = "gtk+3 libxml2 intltool-native gnome-common-native glib-2.0-native" + +PNAME = "gtksourceview" + +S = "${WORKDIR}/${PNAME}-${PV}" + +GNOMEBASEBUILDCLASS = "meson" + +inherit gnomebase lib_package gettext features_check gtk-doc gobject-introspection vala + +REQUIRED_DISTRO_FEATURES = "x11" + +SRC_URI = "http://ftp.gnome.org/pub/gnome/sources/gtksourceview/4.4/${PNAME}-${PV}.tar.xz" +SRC_URI[md5sum] = "5c47e314517692f2622a0b724c65e628" +SRC_URI[sha256sum] = "9ddb914aef70a29a66acd93b4f762d5681202e44094d2d6370e51c9e389e689a" + +GIR_MESON_OPTION = 'gir' +GTKDOC_MESON_OPTION = "gtk_doc" + +FILES_${PN} += "${datadir}/gtksourceview-4" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/gvfs/gvfs_1.40.0.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/gvfs/gvfs_1.40.0.bb deleted file mode 100644 index 7caee277..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/gvfs/gvfs_1.40.0.bb +++ /dev/null @@ -1,76 +0,0 @@ -DESCRIPTION = "gvfs is a userspace virtual filesystem" -LICENSE = "LGPLv2" -LIC_FILES_CHKSUM = "file://COPYING;md5=05df38dd77c35ec8431f212410a3329e" - -GNOMEBASEBUILDCLASS = "meson" -inherit gnome bash-completion gettext upstream-version-is-even - -DEPENDS += "libsecret glib-2.0 gconf libgudev udisks2 polkit shadow-native" - -SRC_URI = "https://download.gnome.org/sources/${BPN}/${@gnome_verdir("${PV}")}/${BPN}-${PV}.tar.xz;name=archive" - -SRC_URI[archive.md5sum] = "96ef53ed613e4d223e0db3a7acea44f0" -SRC_URI[archive.sha256sum] = "3739d64b79c95a9f0f9faf2c5f9e5298b4b2ebdd6431435ce656ecd19b31e2f2" - - -EXTRA_OEMESON = " \ - -Dbluray=false \ - -Dgoa=false \ - -Dgoogle=false \ - -Dnfs=false \ - -Dudisks2=true \ -" - -PACKAGES =+ "gvfsd-ftp gvfsd-sftp gvfsd-trash" - -FILES_${PN} += " \ - ${datadir}/glib-2.0 \ - ${datadir}/GConf \ - ${datadir}/dbus-1/services \ - ${libdir}/gio/modules/*.so \ - ${libdir}/tmpfiles.d \ - ${systemd_user_unitdir} \ -" -RDEPENDS_${PN} = "udisks2" - -FILES_${PN}-dbg += "${libdir}/gio/modules/.debug/*" -FILES_${PN}-dev += "${libdir}/gio/modules/*.la" - -FILES_gvfsd-ftp = "${libexecdir}/gvfsd-ftp ${datadir}/gvfs/mounts/ftp.mount" -FILES_gvfsd-sftp = "${libexecdir}/gvfsd-sftp ${datadir}/gvfs/mounts/sftp.mount" -FILES_gvfsd-trash = "${libexecdir}/gvfsd-trash ${datadir}/gvfs/mounts/trash.mount" - -RRECOMMENDS_gvfsd-ftp += "openssh-sftp openssh-ssh" - -PACKAGECONFIG ?= "libgphoto2 ${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)}" - -PACKAGECONFIG[afc] = "-Dafc=true, -Dafc=false, libimobiledevice libplist" -PACKAGECONFIG[archive] = "-Darchive=true, -Darchive=false, libarchive" -PACKAGECONFIG[dnssd] = "-Ddnssd=true, -Ddnssd=false, avahi" -PACKAGECONFIG[gcr] = "-Dgcr=true, -Dgcr=false, gcr" -PACKAGECONFIG[http] = "-Dhttp=true, -Dhttp=false, libsoup-2.4" -PACKAGECONFIG[libmtp] = "-Dmtp=true, -Dmtp=false, libmtp" -PACKAGECONFIG[logind] = "-Dlogind=true, -Dlogind=false, systemd" -PACKAGECONFIG[libgphoto2] = "-Dgphoto2=true, -Dgphoto2=false, libgphoto2" -PACKAGECONFIG[samba] = "-Dsmb=true, -Dsmb=false, samba" -PACKAGECONFIG[systemd] = "-Dsystemduserunitdir=${systemd_user_unitdir} -Dtmpfilesdir=${libdir}/tmpfiles.d, -Dsystemduserunitdir=no -Dtmpfilesdir=no, systemd" - -# needs meta-filesystems -PACKAGECONFIG[fuse] = "-Dfuse=true, -Dfuse=false, fuse" - -# libcdio-paranoia recipe doesn't exist yet -PACKAGECONFIG[cdda] = "-Dcdda=true, -Dcdda=false, libcdio-paranoia" - -do_install_append() { - # Fix up permissions on polkit rules.d to work with rpm4 constraints - chmod 700 ${D}/${datadir}/polkit-1/rules.d - chown polkitd:root ${D}/${datadir}/polkit-1/rules.d - - # After rebuilds (not from scracth) it can happen that the executables in - # libexec ar missing executable permission flag. Not sure but it came up - # during transition to meson. Looked into build files and logs but could - # not find suspicious - for exe in `find ${D}/${libexecdir}`; do - chmod +x $exe - done -} diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/gvfs/gvfs_1.42.2.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/gvfs/gvfs_1.42.2.bb new file mode 100644 index 00000000..f04246f1 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/gvfs/gvfs_1.42.2.bb @@ -0,0 +1,87 @@ +DESCRIPTION = "gvfs is a userspace virtual filesystem" +LICENSE = "LGPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=05df38dd77c35ec8431f212410a3329e" + +GNOMEBASEBUILDCLASS = "meson" +inherit gnomebase gsettings bash-completion gettext upstream-version-is-even features_check useradd + +DEPENDS += "libsecret glib-2.0 glib-2.0-native libgudev shadow-native \ + gsettings-desktop-schemas dbus" + +SRC_URI = "https://download.gnome.org/sources/${BPN}/${@gnome_verdir("${PV}")}/${BPN}-${PV}.tar.xz;name=archive" +SRC_URI[archive.md5sum] = "8dea2f6a3f327a814a347758d4350e4b" +SRC_URI[archive.sha256sum] = "b57af97573bd295aa50037eed29c6ba7a36188230c515e007c3018855a5cf949" + +# depends on gsettings-desktop-schemas->gcr->gtk+3-> x11 +REQUIRED_DISTRO_FEATURES = "x11" + +EXTRA_OEMESON = " \ + -Dbluray=false \ + -Dgoa=false \ + -Dgoogle=false \ + -Dnfs=false \ +" + +PACKAGES =+ "gvfsd-ftp gvfsd-sftp gvfsd-trash" + +FILES_${PN} += " \ + ${datadir}/glib-2.0 \ + ${datadir}/GConf \ + ${datadir}/dbus-1/services \ + ${libdir}/gio/modules/*.so \ + ${libdir}/tmpfiles.d \ + ${systemd_user_unitdir} \ +" + +FILES_${PN}-dbg += "${libdir}/gio/modules/.debug/*" +FILES_${PN}-dev += "${libdir}/gio/modules/*.la" + +FILES_gvfsd-ftp = "${libexecdir}/gvfsd-ftp ${datadir}/gvfs/mounts/ftp.mount" +FILES_gvfsd-sftp = "${libexecdir}/gvfsd-sftp ${datadir}/gvfs/mounts/sftp.mount" +FILES_gvfsd-trash = "${libexecdir}/gvfsd-trash ${datadir}/gvfs/mounts/trash.mount" + +RRECOMMENDS_gvfsd-ftp += "openssh-sftp openssh-ssh" + +PACKAGECONFIG ?= "libgphoto2 \ + ${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)} \ + ${@bb.utils.contains('DISTRO_FEATURES','polkit','udisks2','',d)} \ + ${@bb.utils.contains('DISTRO_FEATURES','polkit','admin','',d)} \ + " + +PACKAGECONFIG[udisks2] = "-Dudisks2=true, -Dudisks2=false, udisks2, udisks2" +PACKAGECONFIG[admin] = "-Dadmin=true, -Dadmin=false, libcap polkit" +PACKAGECONFIG[afc] = "-Dafc=true, -Dafc=false, libimobiledevice libplist" +PACKAGECONFIG[archive] = "-Darchive=true, -Darchive=false, libarchive" +PACKAGECONFIG[dnssd] = "-Ddnssd=true, -Ddnssd=false, avahi" +PACKAGECONFIG[gcr] = "-Dgcr=true, -Dgcr=false, gcr" +PACKAGECONFIG[http] = "-Dhttp=true, -Dhttp=false, libsoup-2.4" +PACKAGECONFIG[libmtp] = "-Dmtp=true, -Dmtp=false, libmtp" +PACKAGECONFIG[logind] = "-Dlogind=true, -Dlogind=false, systemd" +PACKAGECONFIG[libgphoto2] = "-Dgphoto2=true, -Dgphoto2=false, libgphoto2" +PACKAGECONFIG[samba] = "-Dsmb=true, -Dsmb=false, samba" +PACKAGECONFIG[systemd] = "-Dsystemduserunitdir=${systemd_user_unitdir} -Dtmpfilesdir=${libdir}/tmpfiles.d, -Dsystemduserunitdir=no -Dtmpfilesdir=no, systemd" + +# needs meta-filesystems +PACKAGECONFIG[fuse] = "-Dfuse=true, -Dfuse=false, fuse" + +# libcdio-paranoia recipe doesn't exist yet +PACKAGECONFIG[cdda] = "-Dcdda=true, -Dcdda=false, libcdio-paranoia" + +USERADD_PACKAGES = "${PN}" +USERADD_PARAM_${PN} = "--system --no-create-home --user-group --home-dir ${sysconfdir}/${BPN}-1 polkitd" + +do_install_append() { + if ${@bb.utils.contains('DISTRO_FEATURES', 'polkit', 'true', 'false', d)}; then + # Fix up permissions on polkit rules.d to work with rpm4 constraints + chmod 700 ${D}/${datadir}/polkit-1/rules.d + chown polkitd:root ${D}/${datadir}/polkit-1/rules.d + fi + + # After rebuilds (not from scracth) it can happen that the executables in + # libexec ar missing executable permission flag. Not sure but it came up + # during transition to meson. Looked into build files and logs but could + # not find suspicious + for exe in `find ${D}/${libexecdir}`; do + chmod +x $exe + done +} diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/libgdata/libgdata_0.16.1.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/libgdata/libgdata_0.16.1.bb deleted file mode 100644 index 80cbae39..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/libgdata/libgdata_0.16.1.bb +++ /dev/null @@ -1,33 +0,0 @@ -SUMMARY = "GLib-based library for accessing online service APIs using the GData protocol" -HOMEPAGE = "http://live.gnome.org/libgdata" -BUGTRACKER = "https://bugzilla.gnome.org/" - -LICENSE = "LGPLv2.1" -LIC_FILES_CHKSUM = "file://COPYING;md5=fbc093901857fcd118f065f900982c24 \ - file://gdata/gdata.h;endline=20;md5=079a554efcf65d46f96a515806e7e99a \ - file://gdata/gdata-types.h;endline=20;md5=7399b111aac8718da13888fc634be6ef" - -DEPENDS = "gnome-common-native libxml2 glib-2.0 libsoup-2.4 intltool-native liboauth gcr json-glib" - -inherit distro_features_check gnomebase pkgconfig autotools-brokensep gettext gtk-doc vala gobject-introspection - -REQUIRED_DISTRO_FEATURES = "x11" - -do_configure_prepend_class-target () { - # introspection.m4 pre-packaged with upstream tarballs does not yet - # have our fixes - rm -f ${S}/introspection.m4 - - # remove the pre-built gtk-doc files, as they're installed (or attempted to be installed) - # even if gtk-doc is explicitly disabled - rm -rf ${S}/docs/reference/html -} - -do_compile_prepend() { - export GIR_EXTRA_LIBS_PATH="${B}/gdata/.libs" -} - -EXTRA_OECONF += "--disable-goa --disable-tests --disable-gtk-doc" - -SRC_URI[archive.md5sum] = "eb552a8a8482e4231a3d1baf7262e64d" -SRC_URI[archive.sha256sum] = "8740e071ecb2ae0d2a4b9f180d2ae5fdf9dc4c41e7ff9dc7e057f62442800827" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/libgdata/libgdata_0.17.11.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/libgdata/libgdata_0.17.11.bb new file mode 100644 index 00000000..197a05d3 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/libgdata/libgdata_0.17.11.bb @@ -0,0 +1,33 @@ +SUMMARY = "GLib-based library for accessing online service APIs using the GData protocol" +HOMEPAGE = "http://live.gnome.org/libgdata" +BUGTRACKER = "https://bugzilla.gnome.org/" + +LICENSE = "LGPLv2.1" +LIC_FILES_CHKSUM = "file://COPYING;md5=fbc093901857fcd118f065f900982c24 \ + file://gdata/gdata.h;endline=20;md5=079a554efcf65d46f96a515806e7e99a \ + file://gdata/gdata-types.h;endline=20;md5=7399b111aac8718da13888fc634be6ef" + +DEPENDS = "libxml2 glib-2.0 libsoup-2.4 intltool-native liboauth gcr json-glib" + +GTKDOC_MESON_OPTION = "gtk_doc" +GNOMEBASEBUILDCLASS = "meson" + +inherit gnomebase pkgconfig gettext gtk-doc vala gobject-introspection manpages features_check + +# gcr +REQUIRED_DISTRO_FEATURES = "x11" + +do_compile_prepend() { + export GIR_EXTRA_LIBS_PATH="${B}/gdata/.libs" +} + +PACKAGECONFIG ??= "" +PACKAGECONFIG[manpages] = "-Dman=true,-Dman=false" +PACKAGECONFIG[goa] = "-Dgoa=enabled,-Dgoa=disabled,gnome-online-accounts" +PACKAGECONFIG[gtk] = "-Dgtk=enabled,-Dgtk=disabled,gtk+3" +PACKAGECONFIG[vala] = "-Dvapi=true,-Dvapi=false" + +EXTRA_OEMESON = "-Dalways_build_tests=false" + +SRC_URI[archive.md5sum] = "7b98e9059255d8a2fb147c4e727230a8" +SRC_URI[archive.sha256sum] = "6b9917122e4def6e6f78bcb660e49e146540832e296abcb5cde99829a04ea986" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/libgnome/libgnomekbd_3.26.1.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/libgnome/libgnomekbd_3.26.1.bb index 3a7379f9..2a2db9c1 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/libgnome/libgnomekbd_3.26.1.bb +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/libgnome/libgnomekbd_3.26.1.bb @@ -4,16 +4,11 @@ LIC_FILES_CHKSUM = "file://COPYING.LIB;md5=6e29c688d912da12b66b73e32b03d812" SECTION = "x11/gnome/libs" -DEPENDS = "gconf glib-2.0 libxklavier gtk+3 intltool-native" +DEPENDS = "glib-2.0 gtk+3 libxklavier" -inherit distro_features_check gnome gobject-introspection gettext +inherit features_check gnomebase gobject-introspection gsettings gettext REQUIRED_DISTRO_FEATURES = "x11" -GNOME_COMPRESS_TYPE = "xz" - SRC_URI[archive.md5sum] = "98040022484406e7ebe25f82cef93344" SRC_URI[archive.sha256sum] = "f7ca02631576e9b88aee1b1bae37ac1488b80ee7975f20a97f29e761a7172679" - -EXTRA_OECONF_remove = "--disable-schemas-install" - diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/libgsf/files/0001-configure.ac-drop-a-copy-paste-of-introspection.m4-m.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/libgsf/libgsf/0001-configure.ac-drop-a-copy-paste-of-introspection.m4-m.patch similarity index 100% rename from Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/libgsf/files/0001-configure.ac-drop-a-copy-paste-of-introspection.m4-m.patch rename to Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/libgsf/libgsf/0001-configure.ac-drop-a-copy-paste-of-introspection.m4-m.patch diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/libgsf/libgsf_1.14.45.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/libgsf/libgsf_1.14.45.bb deleted file mode 100644 index e63e26e7..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/libgsf/libgsf_1.14.45.bb +++ /dev/null @@ -1,29 +0,0 @@ -SUMMARY = "GNOME Structured File Library" -LICENSE = "GPLv2 & LGPLv2.1" -LIC_FILES_CHKSUM = "file://COPYING;md5=dc7371b50816c96e145fa0f8ade8e24d \ - file://COPYING.LIB;md5=61464cfe342798eeced82efe9ae55f63" - -SECTION = "libs" - -DEPENDS= "libxml2 bzip2 glib-2.0 zlib intltool-native gnome-common-native" - -inherit autotools pkgconfig gnome gconf gobject-introspection - -SRC_URI += "file://0001-configure.ac-drop-a-copy-paste-of-introspection.m4-m.patch" - -SRC_URI[archive.md5sum] = "e45cc8aa9c49516d540b7d7307f755f1" -SRC_URI[archive.sha256sum] = "5cbc2c0f1dc44d202fa0c6e3a51e9f17b0c2deb8711ba650432bfde3180b69fa" - -GNOME_COMPRESS_TYPE = "xz" - -PACKAGECONFIG ??= "" -PACKAGECONFIG[gdk-pixbuf] = "--with-gdk-pixbuf,--without-gdk-pixbuf,gdk-pixbuf" - -EXTRA_OECONF = "\ - --disable-gtk-doc \ - --with-bz2 \ -" - -RDEPENDS_${PN} = "gconf" - -FILES_${PN} += "${datadir}/thumbnailers" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/libgsf/libgsf_1.14.46.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/libgsf/libgsf_1.14.46.bb new file mode 100644 index 00000000..049320af --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/libgsf/libgsf_1.14.46.bb @@ -0,0 +1,23 @@ +SUMMARY = "GNOME Structured File Library" +LICENSE = "GPLv2 & LGPLv2.1" +LIC_FILES_CHKSUM = "file://COPYING;md5=dc7371b50816c96e145fa0f8ade8e24d \ + file://COPYING.LIB;md5=61464cfe342798eeced82efe9ae55f63" + +SECTION = "libs" + +DEPENDS= "libxml2 bzip2 glib-2.0 zlib gnome-common-native" + +inherit gnomebase gobject-introspection gettext gtk-doc + +SRC_URI[archive.md5sum] = "5bc6d1d6394f0ed5a58e8f2e5e4ead7f" +SRC_URI[archive.sha256sum] = "ea36959b1421fc8e72caa222f30ec3234d0ed95990e2bf28943a85f33eadad2d" +SRC_URI += "file://0001-configure.ac-drop-a-copy-paste-of-introspection.m4-m.patch" + +PACKAGECONFIG ??= "" +PACKAGECONFIG[gdk-pixbuf] = "--with-gdk-pixbuf,--without-gdk-pixbuf,gdk-pixbuf" + +EXTRA_OECONF = "\ + --with-bz2 \ +" + +FILES_${PN} += "${datadir}/thumbnailers" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/libgtkstylus/libgtkstylus_0.5.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/libgtkstylus/libgtkstylus_0.5.bb index a7c8a6fc..a990bfcf 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/libgtkstylus/libgtkstylus_0.5.bb +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/libgtkstylus/libgtkstylus_0.5.bb @@ -5,7 +5,7 @@ LICENSE = "LGPL-2.0+" LIC_FILES_CHKSUM = "file://tap.c;beginline=1;endline=20;md5=71756eeb144e9eeb177c69aa672b1635" PR = "r4" -inherit distro_features_check autotools pkgconfig +inherit features_check autotools pkgconfig REQUIRED_DISTRO_FEATURES = "x11" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/libgtop/libgtop_2.40.0.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/libgtop/libgtop_2.40.0.bb index b594198a..f0c9cdb0 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/libgtop/libgtop_2.40.0.bb +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/libgtop/libgtop_2.40.0.bb @@ -5,7 +5,7 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552" inherit gnomebase lib_package gtk-doc gobject-introspection gettext upstream-version-is-even # depends on libxau -inherit distro_features_check +inherit features_check REQUIRED_DISTRO_FEATURES = "x11" SRC_URI[archive.md5sum] = "c6d67325cd97b2208b41e07e6cc7b947" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/libgweather/libgweather_3.34.0.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/libgweather/libgweather_3.34.0.bb new file mode 100644 index 00000000..d72b6ce2 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/libgweather/libgweather_3.34.0.bb @@ -0,0 +1,24 @@ +SUMMARY = "A library to access weather information from online services" + +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263" + +GNOMEBASEBUILDCLASS = "meson" + +inherit gnomebase gsettings gobject-introspection gettext gtk-doc vala features_check upstream-version-is-even + +SRC_URI[archive.md5sum] = "52c3b1e27887fc88f862c92c42d930c1" +SRC_URI[archive.sha256sum] = "02245395d639d9749fe2d19b7e66b64a152b9509ab0e5aad92514538b9c6f1b9" + +# gobject-introspection is mandatory and cannot be configured +REQUIRED_DISTRO_FEATURES = "gobject-introspection-data" +UNKNOWN_CONFIGURE_WHITELIST_append = " introspection" + +GTKDOC_MESON_OPTION = "gtk_doc" + +DEPENDS = " \ + gtk+3 \ + json-glib \ + libsoup-2.4 \ + geocode-glib \ +" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/libtimezonemap/libtimezonemap_0.4.6.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/libtimezonemap/libtimezonemap_0.4.6.bb index 7f52c42c..a0874521 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/libtimezonemap/libtimezonemap_0.4.6.bb +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/libtimezonemap/libtimezonemap_0.4.6.bb @@ -12,7 +12,7 @@ DEPENDS = "gtk+3 gdk-pixbuf libsoup-2.4 json-glib gnome-common-native" B = "${S}" -inherit distro_features_check autotools pkgconfig gobject-introspection +inherit features_check autotools pkgconfig gobject-introspection REQUIRED_DISTRO_FEATURES = "x11" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/libwnck/libwnck3_3.32.0.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/libwnck/libwnck3_3.32.0.bb index e4829ea8..d88161a3 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/libwnck/libwnck3_3.32.0.bb +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/libwnck/libwnck3_3.32.0.bb @@ -15,7 +15,7 @@ GTKDOC_MESON_OPTION = "gtk_doc" GIR_MESON_ENABLE_FLAG = 'enabled' GIR_MESON_DISABLE_FLAG = 'disabled' -inherit gnomebase gobject-introspection gtk-doc gettext distro_features_check +inherit gnomebase gobject-introspection gtk-doc gettext features_check SRC_URI[archive.md5sum] = "89dbe5a1843fd3745b8b64b34a2ef55d" SRC_URI[archive.sha256sum] = "9595835cf28d0fc6af5526a18f77f2fcf3ca8c09e36741bb33915b6e69b8e3ca" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/libwnck/libwnck_2.31.0.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/libwnck/libwnck_2.31.0.bb index ea4c8df5..9eb041c2 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/libwnck/libwnck_2.31.0.bb +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/libwnck/libwnck_2.31.0.bb @@ -8,10 +8,9 @@ DEPENDS = "intltool-native gnome-common-native gtk+ gdk-pixbuf-native libxres" PACKAGECONFIG ??= "startup-notification" PACKAGECONFIG[startup-notification] = "--enable-startup-notification,--disable-startup-notification,startup-notification" -inherit gnomebase gobject-introspection distro_features_check +inherit gnomebase gobject-introspection features_check REQUIRED_DISTRO_FEATURES = "x11" -GNOME_COMPRESS_TYPE = "xz" SRC_URI[archive.md5sum] = "f03e1139296e2a3a92e3b65a3080cd32" SRC_URI[archive.sha256sum] = "83f732d20781fc88b22cdc6aaf2d4f388db6d3d4ff28d1a8fd45be9fb7743a9e" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/libxklavier/libxklavier_5.4.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/libxklavier/libxklavier_5.4.bb index 501a4497..3cef0d2e 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/libxklavier/libxklavier_5.4.bb +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/libxklavier/libxklavier_5.4.bb @@ -4,7 +4,7 @@ LIC_FILES_CHKSUM = "file://COPYING.LIB;md5=6e29c688d912da12b66b73e32b03d812" DEPENDS = "xkbcomp gtk+ iso-codes libxi libxml2" -inherit autotools pkgconfig gettext gobject-introspection distro_features_check +inherit autotools pkgconfig gettext gobject-introspection features_check REQUIRED_DISTRO_FEATURES = "x11" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/metacity/metacity_3.30.1.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/metacity/metacity_3.30.1.bb deleted file mode 100644 index 253f7ef3..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/metacity/metacity_3.30.1.bb +++ /dev/null @@ -1,41 +0,0 @@ -SECTION = "x11/wm" -SUMMARY = "Metacity is the boring window manager for the adult in you" -LICENSE = "GPLv2+" -LIC_FILES_CHKSUM = "file://COPYING;md5=b4cce53560b8e619ffa7c830fb8761aa \ - file://src/include/main.h;endline=24;md5=72148ede07a6dadd01de6a882d20a9ad" - -PE = "1" - -DEPENDS = "gsettings-desktop-schemas startup-notification \ - gnome-doc-utils gdk-pixbuf-native \ - gtk+3 glib-2.0 libcanberra libgtop intltool-native" - -inherit autotools gettext gnomebase distro_features_check -# depends on startup-notification which depends on virtual/libx11 -REQUIRED_DISTRO_FEATURES = "x11" - -SRC_URI = "git://github.com/GNOME/metacity.git;branch=master \ - file://0001-drop-zenity-detection.patch \ -" - -S = "${WORKDIR}/git" -SRCREV = "d69fba052cdd0aa8348dc1bbbbb1ecbadfbebbd8" - -EXTRA_OECONF += "--disable-xinerama" - -PACKAGECONFIG ?= "" - -# enable as neccessary until new warnings are dealt with -PACKAGECONFIG[werror] = "--enable-Werror,--disable-Werror,," - -do_configure_prepend() { - cd ${S} - aclocal --install || exit 1 - autoreconf --verbose --force --install -Wno-portability || exit 1 - cd - - -} - -FILES_${PN} += "${datadir}/themes ${datadir}/gnome-control-center ${datadir}/gnome" -RDEPENDS_${PN} += "gsettings-desktop-schemas" - diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/metacity/metacity_3.34.1.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/metacity/metacity_3.34.1.bb new file mode 100644 index 00000000..d8c8b538 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/metacity/metacity_3.34.1.bb @@ -0,0 +1,38 @@ +SECTION = "x11/wm" +SUMMARY = "Metacity is the boring window manager for the adult in you" +LICENSE = "GPLv2+" +LIC_FILES_CHKSUM = "file://COPYING;md5=b4cce53560b8e619ffa7c830fb8761aa \ + file://src/include/main.h;endline=24;md5=72148ede07a6dadd01de6a882d20a9ad" + +PE = "1" + +DEPENDS = " \ + gdk-pixbuf-native \ + gtk+3 \ + gsettings-desktop-schemas \ + startup-notification \ + libcanberra \ + libgtop \ +" + + +# depends on startup-notification which depends on virtual/libx11 +REQUIRED_DISTRO_FEATURES = "x11" + +inherit gnomebase gsettings gettext upstream-version-is-even features_check + +SRC_URI[archive.md5sum] = "c0c10204e4d6d024cb413042c1de316b" +SRC_URI[archive.sha256sum] = "31c7d1045c390afb3bf405735b0b26c459197cbf43af37c469eb8918ce3a453d" +SRC_URI += "file://0001-drop-zenity-detection.patch" + +PACKAGECONFIG[xinerama] = "--enable-xinerama,--disable-xinerama,libxinerama" +# enable as neccessary until new warnings are dealt with +PACKAGECONFIG[werror] = "--enable-Werror,--disable-Werror,," + +FILES_${PN} += " \ + ${datadir}/themes \ + ${datadir}/gnome-control-center \ + ${datadir}/gnome\ +" + +RDEPENDS_${PN} += "gsettings-desktop-schemas" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/mutter/mutter/0001-cogl-Fix-GLES2-fallback.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/mutter/mutter/0001-cogl-Fix-GLES2-fallback.patch new file mode 100644 index 00000000..ec920004 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/mutter/mutter/0001-cogl-Fix-GLES2-fallback.patch @@ -0,0 +1,37 @@ +From f4f7e31303d78b2a8a0881b61311b8d750301b8f Mon Sep 17 00:00:00 2001 +From: Adam Jackson +Date: Tue, 29 Oct 2019 11:53:27 -0400 +Subject: [PATCH] cogl: Fix GLES2 fallback + +Say you're using intel gen3, you poor soul. Your big-GL maxes out at 1.5 +unless you use dirty tricks, but you do have GLES2. We try to fall back +to GLES in this case, but we only ever say eglBindAPI(EGL_OPENGL_API). +So when we go to do CreateContext, even though we think we've requested +GLES 2.0, the driver will compare that "2.0" against the maximum big-GL +version, and things will fail. + +Fix this by binding EGL_OPENGL_ES_API before trying a GLES context. + +https://gitlab.gnome.org/GNOME/mutter/issues/635 + +Upstream-Status: Applied +--- + cogl/cogl/winsys/cogl-winsys-egl.c | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/cogl/cogl/winsys/cogl-winsys-egl.c b/cogl/cogl/winsys/cogl-winsys-egl.c +index 99dcb8bf3..f2b439a67 100644 +--- a/cogl/cogl/winsys/cogl-winsys-egl.c ++++ b/cogl/cogl/winsys/cogl-winsys-egl.c +@@ -329,6 +329,8 @@ try_create_context (CoglDisplay *display, + if (renderer->driver == COGL_DRIVER_GL || + renderer->driver == COGL_DRIVER_GL3) + eglBindAPI (EGL_OPENGL_API); ++ else if (renderer->driver == COGL_DRIVER_GLES2) ++ eglBindAPI (EGL_OPENGL_ES_API); + + egl_attributes_from_framebuffer_config (display, + &display->onscreen_template->config, +-- +2.21.0 + diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/mutter/mutter_3.34.3.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/mutter/mutter_3.34.3.bb new file mode 100644 index 00000000..9afa269e --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/mutter/mutter_3.34.3.bb @@ -0,0 +1,96 @@ +SUMMARY = "Window and compositing manager based on Clutter" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263" + +DEPENDS = " \ + xserver-xorg-cvt-native \ + virtual/libx11 \ + gtk+3 \ + gdk-pixbuf \ + cairo \ + pango \ + gsettings-desktop-schemas \ + json-glib \ + gnome-desktop3 \ + gnome-settings-daemon \ + libxtst \ + libxkbfile \ + xinerama \ +" + +GNOMEBASEBUILDCLASS = "meson" + +inherit gnomebase gsettings gobject-introspection gettext upstream-version-is-even features_check + +SRC_URI[archive.md5sum] = "c3ee46ae7b84d9d0e8dd3f9e04a61ab1" +SRC_URI[archive.sha256sum] = "cdf57ddd0bc35db952b732b77c796760e65d1ce2f7df31273e5c8d4759ed4a89" +SRC_URI += "file://0001-cogl-Fix-GLES2-fallback.patch" + +# x11 is still manadatory - see meson.build +REQUIRED_DISTRO_FEATURES = "x11" + +# systemd can be replaced by libelogind (not available atow - make systemd +# mandatory distro feature) +LOGIND ?= "systemd" +REQUIRED_DISTRO_FEATURES += "systemd" + +# profiler requires sysprof 3.34 which is not willing to build atow +PACKAGECONFIG ??= " \ + native-backend \ + ${@bb.utils.contains('DISTRO_FEATURES', 'opengl x11', 'opengl glx', '', d)} \ + sm \ + startup-notification \ + ${@bb.utils.contains('DISTRO_FEATURES', 'opengl wayland', 'wayland', '', d)} \ +" + +EXTRA_OEMESON += " \ + -Dxwayland_path=${bindir}/Xwayland \ +" + +# combi-config - see meson_options.txt for more details +PACKAGECONFIG[native-backend] = "-Dnative_backend=true -Dudev=true, -Dnative_backend=false -Dudev=false, libdrm virtual/libgbm libinput ${LOGIND} virtual/egl virtual/libgles2 udev" +PACKAGECONFIG[opengl] = "-Dopengl=true, -Dopengl=true, virtual/libgl" +PACKAGECONFIG[glx] = "-Dglx=true, -Dglx=false" +PACKAGECONFIG[libwacom] = "-Dlibwacom=true, -Dlibwacom=false, libwacom" +PACKAGECONFIG[remote-desktop] = "-Dremote_desktop=true, -Dremote_desktop=false, pipewire" +PACKAGECONFIG[sm] = "-Dsm=true, -Dsm=false, libsm" +PACKAGECONFIG[profiler] = "-Dprofiler=true,-Dprofiler=false,sysprof" +PACKAGECONFIG[startup-notification] = "-Dstartup_notification=true, -Dstartup_notification=false, startup-notification, startup-notification" +PACKAGECONFIG[wayland] = "-Dwayland=true,-Dwayland=false,wayland wayland-native, xserver-xorg-xwayland" +PACKAGECONFIG[wayland-eglstream] = "-Dwayland_eglstream=true,-Dwayland_eglstream=false" + +# yes they changed from mutter-4 -> mutter-5 recently so be perpared +MUTTER_API_NAME = "mutter-5" + +do_install_append() { + # Add gir links in standard paths. That makes dependents life much easier + # to find them + install -d ${D}${datadir}/gir-1.0 + for gir_full in `find ${D}${libdir}/${MUTTER_API_NAME} -name '*.gir'`; do + gir=`basename "$gir_full"` + ln -sr "${D}${libdir}/${MUTTER_API_NAME}/$gir" "${D}${datadir}/gir-1.0/$gir" + done +} + +PACKAGES =+ "${PN}-tests" + +FILES_${PN} += " \ + ${datadir}/gnome-control-center \ + ${libdir}/${MUTTER_API_NAME}/lib*${SOLIBS} \ + ${libdir}/${MUTTER_API_NAME}/*.typelib \ + ${libdir}/${MUTTER_API_NAME}/plugins \ +" + +FILES_${PN}-tests += " \ + ${datadir}/installed-tests \ + ${datadir}/${MUTTER_API_NAME}/tests \ + ${libexecdir}/installed-tests/${MUTTER_API_NAME} \ +" + +FILES_${PN}-dev += " \ + ${libdir}/${MUTTER_API_NAME}/*.gir \ + ${libdir}/${MUTTER_API_NAME}/lib*.so \ +" + +RDEPENDS_${PN} += "zenity" + diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/nautilus/nautilus/0001-nautilus-drop-gnome-desktop-thumbnail-API-with-new-g.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/nautilus/nautilus/0001-nautilus-drop-gnome-desktop-thumbnail-API-with-new-g.patch deleted file mode 100644 index f19eb497..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/nautilus/nautilus/0001-nautilus-drop-gnome-desktop-thumbnail-API-with-new-g.patch +++ /dev/null @@ -1,40 +0,0 @@ -From a4ed38e95cbe07f02028249b8b315565a5ac1e43 Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Sat, 5 May 2018 22:32:45 -0700 -Subject: [PATCH] nautilus: drop gnome-desktop thumbnail API with new - gdk-pixbuf -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -If gdk-pixbuf >= 2.36.5 is available, its scaling API can do what we -want, so we don’t need to use the deprecated gnome-desktop one. - -Also fixes compile errors seen on master -nautilus-properties-window.c:5101: undefined reference to `gnome_desktop_thumbnail_scale_down_pixbuf' - -Upstream-Status: Backport - -Signed-off-by: Khem Raj ---- - src/nautilus-properties-window.c | 5 +++-- - 1 file changed, 3 insertions(+), 2 deletions(-) - -diff --git a/src/nautilus-properties-window.c b/src/nautilus-properties-window.c -index dea8b0f..fad9bd1 100644 ---- a/src/nautilus-properties-window.c -+++ b/src/nautilus-properties-window.c -@@ -5098,10 +5098,11 @@ update_preview_callback (GtkFileChooser *icon_chooser, - scale = (double)gdk_pixbuf_get_height (pixbuf) / - gdk_pixbuf_get_width (pixbuf); - -- scaled_pixbuf = gnome_desktop_thumbnail_scale_down_pixbuf -+ scaled_pixbuf = gdk_pixbuf_scale_simple - (pixbuf, - PREVIEW_IMAGE_WIDTH, -- scale * PREVIEW_IMAGE_WIDTH); -+ scale * PREVIEW_IMAGE_WIDTH, -+ GDK_INTERP_HYPER); - g_object_unref (pixbuf); - pixbuf = scaled_pixbuf; - } diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/nautilus/nautilus_3.18.5.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/nautilus/nautilus_3.18.5.bb deleted file mode 100644 index bdb2f3c8..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/nautilus/nautilus_3.18.5.bb +++ /dev/null @@ -1,33 +0,0 @@ -SUMMARY = "File manager for GNOME" -SECTION = "x11/gnome" - -LICENSE="GPLv2" -LIC_FILES_CHKSUM = "file://COPYING;md5=36cf660aea2b8beffba7945f44a7e748 \ - file://COPYING.EXTENSIONS;md5=7579d6678402a1868631bf82c93ff0d4 \ - file://COPYING.LIB;md5=f30a9716ef3762e3467a2f62bf790f0a" - -inherit distro_features_check autotools pkgconfig gobject-introspection - -MAJ_VER = "${@oe.utils.trim_version("${PV}", 2)}" -SRC_URI = "http://ftp.gnome.org/pub/GNOME/sources/nautilus/${MAJ_VER}/nautilus-${PV}.tar.xz \ - file://0001-nautilus-drop-gnome-desktop-thumbnail-API-with-new-g.patch \ - " - -SRC_URI[md5sum] = "0f578bda5655c0ce204befafca5803d7" -SRC_URI[sha256sum] = "60a927c0522b4cced9d8f62baed2ee5e2fd4305be4523eb5bc44805971a6cc15" - -DEPENDS = "gtk+3 gnome-desktop3 gsettings-desktop-schemas glib-2.0-native intltool-native pango" - -REQUIRED_DISTRO_FEATURES = "x11" - -EXTRA_OECONF = " \ - --disable-gtk-doc \ - --disable-update-mimedb \ - --disable-nst-extension \ - --enable-tracker=no \ - --disable-schemas-compile \ - --enable-xmp=no \ - --enable-libexif=no \ -" - -FILES_${PN} += "${datadir}/*" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/nautilus/nautilus_3.34.2.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/nautilus/nautilus_3.34.2.bb new file mode 100644 index 00000000..bacc967a --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/nautilus/nautilus_3.34.2.bb @@ -0,0 +1,36 @@ +SUMMARY = "File manager for GNOME" +SECTION = "x11/gnome" + +LICENSE="GPLv3" +LIC_FILES_CHKSUM = "file://LICENSE;md5=d32239bcb673463ab874e80d47fae504" + +GNOMEBASEBUILDCLASS = "meson" + +DEPENDS = " \ + fontconfig \ + gtk+3 \ + gnome-desktop3 \ + gsettings-desktop-schemas \ + gnome-autoar \ + tracker \ +" + +inherit gnomebase gsettings gobject-introspection gtk-doc gettext features_check upstream-version-is-even + +SRC_URI[archive.md5sum] = "88573061544040c0ff960f934aa83719" +SRC_URI[archive.sha256sum] = "bb06e226b965f479a0b8668c19c8e1762b9d8f039af6817961cc7a8f09e6f8a7" + +REQUIRED_DISTRO_FEATURES = "x11" + +PACKAGECONFIG = "extensions" +PACKAGECONFIG[extensions] = "-Dextensions=true,-Dextensions=false, gexiv2 gstreamer1.0-plugins-base" + +FILES_${PN} += " \ + ${datadir}/dbus-1 \ + ${datadir}/metainfo \ + ${datadir}/gnome-shell \ +" + +# mandatory - not checked during configuration: +# | (org.gnome.Nautilus:863): GLib-GIO-ERROR **: 21:03:52.326: Settings schema 'org.freedesktop.Tracker.Miner.Files' is not installed +RDEPENDS_${PN} += "tracker-miners" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/rest/rest_0.8.1.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/rest/rest_0.8.1.bb new file mode 100644 index 00000000..33b8744e --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/rest/rest_0.8.1.bb @@ -0,0 +1,33 @@ +SUMMARY = "library to access web services that claim to be "RESTful"" +HOMPAGE = "https://wiki.gnome.org/Projects/Librest" +LICENSE = "LGPLv2.1" +LIC_FILES_CHKSUM = "file://COPYING;md5=2d5025d4aa3495befef8f17206a5b0a1" + +GNOMEBASEBUILDCLASS = "autotools" + +DEPENDS = " \ + libxml2-native \ + glib-2.0-native \ + glib-2.0 \ + libsoup-2.4 \ +" + +inherit gnomebase gobject-introspection gtk-doc vala + +SRC_URI[archive.md5sum] = "ece4547298a81105f307369d73c21b9d" +SRC_URI[archive.sha256sum] = "0513aad38e5d3cedd4ae3c551634e3be1b9baaa79775e53b2dba9456f15b01c9" + +# * gnome environment requires libsoup build with in gnome PACKAGECONFIG +# * libsoup-gnome support was removed upstream three years ago [1] +# [1] https://gitlab.gnome.org/GNOME/librest/commit/8f904a8e2bb38a7bf72245cdf2f1ecad17e9a720 +EXTRA_OECONF = "--without-gnome" + +do_configure_prepend() { + # rest expects introspection.m4 at custom location (see aclocal.m4). + cp -f ${STAGING_DIR_TARGET}/${datadir}/aclocal/introspection.m4 ${S}/build +} + +do_compile_prepend() { + export GIR_EXTRA_LIBS_PATH="${B}/rest/.libs" +} + diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/tracker/tracker-miners/0001-meson.build-Just-warn-if-we-build-without-libseccomp.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/tracker/tracker-miners/0001-meson.build-Just-warn-if-we-build-without-libseccomp.patch new file mode 100644 index 00000000..c9eb7994 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/tracker/tracker-miners/0001-meson.build-Just-warn-if-we-build-without-libseccomp.patch @@ -0,0 +1,37 @@ +From 54ea2cabf85ad1bd5695cdbd1935115c9495e80c Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Andreas=20M=C3=BCller?= +Date: Sun, 1 Dec 2019 17:06:59 +0100 +Subject: [PATCH] meson.build: Just warn if we build without libseccomp +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +libseccomp lives in meta-security currently and we cannot make it a mandatory +dependency. Once somebody moves libseccomp to meta-oe and adjusts all the +target specific knobs this patch can go. For discussion see [1]. + +[1] http://lists.openembedded.org/pipermail/openembedded-devel/2019-November/203234.html + +Upstream-Status: Inappropriate [embedded specific] + +Signed-off-by: Andreas Müller +--- + meson.build | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/meson.build b/meson.build +index 71a9df4..1eaa1a0 100644 +--- a/meson.build ++++ b/meson.build +@@ -279,7 +279,7 @@ cpu_supports_seccomp = not unsupported_cpus.contains(host_cpu) + seccomp_required = system_supports_seccomp and cpu_supports_seccomp + + if not libseccomp.found() and seccomp_required +- error('Libseccomp is mandatory for sandboxed metadata extraction') ++ warning('Building without Libseccomp might cause security issues!') + endif + + #################################################################### +-- +2.21.0 + diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/tracker/tracker-miners_2.3.1.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/tracker/tracker-miners_2.3.1.bb new file mode 100644 index 00000000..3dbbcafb --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/tracker/tracker-miners_2.3.1.bb @@ -0,0 +1,68 @@ +SUMMARY = "Tracker miners and metadata extractors" +LICENSE = "GPLv2 & LGPLv2.1" +LIC_FILES_CHKSUM = " \ + file://COPYING.GPL;md5=ee31012bf90e7b8c108c69f197f3e3a4 \ + file://COPYING.LGPL;md5=2d5025d4aa3495befef8f17206a5b0a1 \ +" + +DEPENDS = " \ + intltool-native \ + tracker \ + zlib \ +" + +GNOMEBASEBUILDCLASS = "meson" + +inherit gnomebase gsettings gobject-introspection vala gtk-doc manpages bash-completion features_check + +SRC_URI[archive.md5sum] = "0321d8f4ad27e3fccdbc8384e5b3cb83" +SRC_URI[archive.sha256sum] = "7b1de06a7a79ea1c7813c8a21f8cd1c55f2b95f799cf9f47f0204f3be8a590e0" +SRC_URI += "file://0001-meson.build-Just-warn-if-we-build-without-libseccomp.patch" + +# gobject-introspection is mandatory and cannot be configured +REQUIRED_DISTRO_FEATURES = "gobject-introspection-data" +UNKNOWN_CONFIGURE_WHITELIST_append = " introspection" + +PACKAGECONFIG ??= " \ + ffmpeg \ + flac \ + gexiv2 \ + gstreamer \ + icu \ + libexif \ + libgsf \ + jpeg \ + png \ + tiff \ + xml \ + pdf \ +" + +PACKAGECONFIG[ffmpeg] = ",,ffmpeg" +PACKAGECONFIG[flac] = "-Dflac=enabled,-Dflac=disabled,flac" +PACKAGECONFIG[gexiv2] = ",,gexiv2" +PACKAGECONFIG[gstreamer] = ",,gstreamer1.0 gstreamer1.0-plugins-base" +PACKAGECONFIG[gupnp] = ",,gupnp-dlna" +PACKAGECONFIG[icu] = ",,icu" +PACKAGECONFIG[libexif] = "-Dexif=enabled,-Dexif=disabled,libexif" +PACKAGECONFIG[libgsf] = "-Dgsf=enabled,-Dgsf=disabled,libgsf" +PACKAGECONFIG[jpeg] = "-Djpeg=enabled,-Djpeg=disabled,jpeg" +PACKAGECONFIG[png] = "-Dpng=enabled,-Dpng=disabled,libpng" +PACKAGECONFIG[tiff] = "-Dtiff=enabled,-Dtiff=disabled,tiff" +PACKAGECONFIG[xml] = "-Dxml=enabled,-Dxml=disabled,libxml2" +PACKAGECONFIG[vorbis] = "-Dvorbis=enabled,-Dvorbis=disabled,libvorbis" +PACKAGECONFIG[pdf] = "-Dpdf=enabled,-Dpdf=disabled,poppler" +PACKAGECONFIG[upower] = ",,upower" + +# For security reasons it is strongly recommended to set add meta-security in +# your layers and 'libseccomp' to PACKAGECONFIG". +PACKAGECONFIG[libseccomp] = ",,libseccomp" +# not yet in meta-gnome +PACKAGECONFIG[rss] = "-Dminer_rss=true,-Dminer_rss=false,libgrss" + +FILES_${PN} += " \ + ${datadir}/dbus-1 \ + ${datadir}/tracker \ + ${libdir}/tracker-miners-2.0 \ + ${systemd_user_unitdir} \ +" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/tracker/tracker_2.3.1.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/tracker/tracker_2.3.1.bb new file mode 100644 index 00000000..590d7bda --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/tracker/tracker_2.3.1.bb @@ -0,0 +1,50 @@ +SUMMARY = "Tracker is a file search engine" +LICENSE = "GPLv2 & LGPLv2.1" +LIC_FILES_CHKSUM = " \ + file://COPYING.GPL;md5=ee31012bf90e7b8c108c69f197f3e3a4 \ + file://COPYING.LGPL;md5=2d5025d4aa3495befef8f17206a5b0a1 \ +" + +DEPENDS = " \ + libxml2-native \ + dbus-native \ + glib-2.0 \ + sqlite3 \ + libarchive \ + dbus \ + icu \ + json-glib \ + libsoup-2.4 \ + libstemmer \ +" + +GNOMEBASEBUILDCLASS = "meson" + +inherit gnomebase gsettings gobject-introspection vala gtk-doc manpages bash-completion features_check + +SRC_URI[archive.md5sum] = "5e75b611b190c4cebf53e3de15266429" +SRC_URI[archive.sha256sum] = "b6748726e465ad2f4d991560634b1fd0df8841f3d981b3b837c4162abedf08a1" + +# gobject-introspection is mandatory and cannot be configured +REQUIRED_DISTRO_FEATURES = "gobject-introspection-data" +UNKNOWN_CONFIGURE_WHITELIST_append = " introspection" + +PACKAGECONFIG ??= "fts" +PACKAGECONFIG[networkmanager] = "-Dnetwork_manager=enabled,-Dnetwork_manager=disabled,networkmanger" +# full text search requires sqlite3 build with PACKAGECONFIG[fts5] set +PACKAGECONFIG[fts] = "-Dfts=true,-Dfts=false" + +# set required cross property sqlite3_has_fts5 +do_write_config[vardeps] += "PACKAGECONFIG" +do_write_config_append() { + echo "[properties]" > ${WORKDIR}/meson-tracker.cross + echo "sqlite3_has_fts5 = '${@bb.utils.contains('PACKAGECONFIG', 'fts', 'true', 'false', d)}'" >> ${WORKDIR}/meson-tracker.cross +} + +EXTRA_OEMESON = "--cross-file ${WORKDIR}/meson-tracker.cross" + +FILES_${PN} += " \ + ${datadir}/dbus-1 \ + ${libdir}/tracker-2.0 \ + ${systemd_user_unitdir} \ +" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/wv/wv/0001-configure-use-foreign-mode-to-avoid-errors-with-miss.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/wv/wv/0001-configure-use-foreign-mode-to-avoid-errors-with-miss.patch deleted file mode 100644 index a8c5bc79..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/wv/wv/0001-configure-use-foreign-mode-to-avoid-errors-with-miss.patch +++ /dev/null @@ -1,29 +0,0 @@ -From eebe1f27f4b27b05eb4b9b55f9df1124acf4d092 Mon Sep 17 00:00:00 2001 -From: Koen Kooi -Date: Fri, 1 Aug 2014 12:25:24 +0200 -Subject: [PATCH] configure: use 'foreign' mode to avoid errors with missing - NEWS/AUTHORS/etc - -Upstream-status: Pending - -Signed-off-by: Koen Kooi ---- - configure.ac | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/configure.ac b/configure.ac -index 3d7eef6..1784bdd 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -41,7 +41,7 @@ VERSION=$WV_VERSION - PACKAGE=wv - - dnl Initialize automake stuff --AM_INIT_AUTOMAKE($PACKAGE, $VERSION) -+AM_INIT_AUTOMAKE([foreign]) - - # Specify a configuration file - AM_CONFIG_HEADER(config.h) --- -1.9.0 - diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/wv/wv/0001-wvRTF.c-Specify-print-format-in-rtf_output.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/wv/wv/0001-wvRTF.c-Specify-print-format-in-rtf_output.patch deleted file mode 100644 index 2fc3f367..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/wv/wv/0001-wvRTF.c-Specify-print-format-in-rtf_output.patch +++ /dev/null @@ -1,26 +0,0 @@ -From 079529b8d5e339e2211fa2f8c15543a738a627bc Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Tue, 27 Jun 2017 14:50:51 -0700 -Subject: [PATCH] wvRTF.c: Specify print format in rtf_output() - -Signed-off-by: Khem Raj ---- - wvRTF.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/wvRTF.c b/wvRTF.c -index 361d258..4f24b30 100644 ---- a/wvRTF.c -+++ b/wvRTF.c -@@ -192,7 +192,7 @@ output_rtfUserData (rtfUserData * ud) - rtf_output_char ('{'); - - /* font color */ -- rtf_output (rtfColors[ud->cCol]); -+ rtf_output ("%s", rtfColors[ud->cCol]); - - /* font face */ - rtf_output ("\\f%d", ud->cFont); --- -2.13.2 - diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/wv/wv_1.2.9.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/wv/wv_1.2.9.bb deleted file mode 100644 index 72b8508a..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/wv/wv_1.2.9.bb +++ /dev/null @@ -1,18 +0,0 @@ -SUMMARY = "Programs for accessing Microsoft Word documents" -HOMEPAGE = "http://wvware.sourceforge.net/" -LICENSE = "GPLv2" -LIC_FILES_CHKSUM = "file://COPYING;md5=6cbca01f1c9178aca280e8ff64d85b2f" - -DEPENDS = "libgsf glib-2.0 libpng" - -SRC_URI = "https://www.abisource.com/downloads/wv/${PV}/${BP}.tar.gz \ - file://0001-configure-use-foreign-mode-to-avoid-errors-with-miss.patch \ - file://0001-wvRTF.c-Specify-print-format-in-rtf_output.patch \ - " - -SRC_URI[md5sum] = "dbccf2e9f747e50c913b7e3d126b73f7" -SRC_URI[sha256sum] = "4c730d3b325c0785450dd3a043eeb53e1518598c4f41f155558385dd2635c19d" - -inherit autotools pkgconfig - -EXTRA_OECONF = "" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/yelp/yelp-tools_3.32.2.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/yelp/yelp-tools_3.32.2.bb new file mode 100644 index 00000000..af2bab38 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/yelp/yelp-tools_3.32.2.bb @@ -0,0 +1,21 @@ +SUMMARY = "Collection of scripts and build utilities for documentation" +LICENSE = "GPLv2+" +LIC_FILES_CHKSUM = " \ + file://COPYING;md5=d67c6f9f1515506abfea4f0d920c0774 \ + file://COPYING.GPL;md5=eb723b61539feef013de476e68b5c50a \ +" + +inherit gnomebase itstool + +DEPENDS += " \ + libxslt-native \ + libxml2-native \ + yelp-xsl \ +" + +SRC_URI[archive.md5sum] = "7856f9ad0492aaf9adf097f5058bfc2e" +SRC_URI[archive.sha256sum] = "183856b5ed0b0bb2c05dd1204af023946ed436943e35e789afb0295e5e71e8f9" + +RDEPENDS_${PN} += "yelp-xsl" + +BBCLASSEXTEND = "native" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/yelp/yelp-xsl_3.34.2.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/yelp/yelp-xsl_3.34.2.bb new file mode 100644 index 00000000..38947d1b --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/yelp/yelp-xsl_3.34.2.bb @@ -0,0 +1,21 @@ +SUMMARY = "XSL stylesheets for the yelp help browser" +LICENSE = "LGPLv2.1 & GPLv2" +LIC_FILES_CHKSUM = " \ + file://COPYING;md5=3e2bad3c5e3990988f9fa1bc5785b147 \ + file://COPYING.GPL;md5=eb723b61539feef013de476e68b5c50a \ + file://COPYING.LGPL;md5=a6f89e2100d9b6cdffcea4f398e37343 \ +" + +inherit gnomebase gettext itstool + +DEPENDS += "libxml2" + +SRC_URI[archive.md5sum] = "b9c1c53a9114b42054789f212ab37f59" +SRC_URI[archive.sha256sum] = "0c3fe6146113df26fb1295901b1c7baed9f0fe67a87f4345e11543aefe7cb7ad" + +RDEPENDS_${PN}_append_class-target = " libxml2 itstool" + +# ensure our native consumers are forced to inherit itstool +RDEPENDS_${PN}_append_class-native = " libxml2" + +BBCLASSEXTEND = "native" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/yelp/yelp_3.34.0.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/yelp/yelp_3.34.0.bb new file mode 100644 index 00000000..348727e4 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/yelp/yelp_3.34.0.bb @@ -0,0 +1,35 @@ +SUMMARY = "Help browser for the GNOME desktop" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = " \ + file://COPYING;md5=6e1b9cb787e76d7e6946887a65caa754 \ +" + +inherit gnomebase itstool autotools-brokensep gsettings gettext gtk-doc features_check + +# for webkitgtk +REQUIRED_DISTRO_FEATURES = "x11" + +SRC_URI[archive.md5sum] = "776e29bd16424c8712cbf340cfe6429b" +SRC_URI[archive.sha256sum] = "e3d6527c5963d73206891b32f1f23363164be57de248555513bd0be77a7bd045" + +DEPENDS += " \ + libxml2-native \ + glib-2.0-native \ + gtk+3 \ + appstream-glib \ + libxslt \ + sqlite3 \ + webkitgtk \ + yelp-xsl \ +" + +do_configure_prepend() { + export ITSTOOL=${STAGING_BINDIR_NATIVE}/itstool +} + +FILES_${PN} += " \ + ${datadir}/metainfo \ + ${datadir}/yelp-xsl \ +" + +RDEPENDS_${PN} += "yelp-xsl" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/zenity/zenity_3.32.0.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/zenity/zenity_3.32.0.bb new file mode 100644 index 00000000..c6883ae4 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-gnome/zenity/zenity_3.32.0.bb @@ -0,0 +1,22 @@ +SUMMARY = "Display dialog boxes from the command line and shell scripts" +SECTION = "x11/gnome" +LICENSE = "GPLv2+" + +LIC_FILES_CHKSUM = "file://COPYING;md5=3bf50002aefd002f49e7bb854063f7e7" + +inherit gnomebase itstool gnome-help features_check gettext + +DEPENDS = " \ + yelp-tools-native \ + gtk+3 \ +" + +REQUIRED_DISTRO_FEATURES = "x11" + +SRC_URI[archive.md5sum] = "ba2b2a13248773b4ec0fd323d95e6d5a" +SRC_URI[archive.sha256sum] = "e786e733569c97372c3ef1776e71be7e7599ebe87e11e8ad67dcc2e63a82cd95" + +do_install_append() { + # Remove gdialog compatibility helper - we don't want to pull in perl + rm ${D}${bindir}/gdialog +} diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-kernel/sysprof/files/0001-libsysprof-ui-Rename-environ-to-sys_environ.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-kernel/sysprof/files/0001-libsysprof-ui-Rename-environ-to-sys_environ.patch new file mode 100644 index 00000000..1e2b3c92 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-kernel/sysprof/files/0001-libsysprof-ui-Rename-environ-to-sys_environ.patch @@ -0,0 +1,63 @@ +From 4bd0d5d5dd6841fbac8385527617d18e7731244d Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Wed, 15 Jan 2020 13:17:58 -0800 +Subject: [PATCH] libsysprof-ui: Rename environ to sys_environ + +This helps avoid namesapace conflict with glibc headers + +Fixes +/usr/include/unistd.h:545:15: note: previous declaration is here + +extern char **environ; + +Upstream-Status: Pending +Signed-off-by: Khem Raj +--- + src/libsysprof-ui/sysprof-profiler-assistant.c | 10 +++++----- + 1 file changed, 5 insertions(+), 5 deletions(-) + +diff --git a/src/libsysprof-ui/sysprof-profiler-assistant.c b/src/libsysprof-ui/sysprof-profiler-assistant.c +index 22e3e24..c55d551 100644 +--- a/src/libsysprof-ui/sysprof-profiler-assistant.c ++++ b/src/libsysprof-ui/sysprof-profiler-assistant.c +@@ -235,7 +235,7 @@ sysprof_profiler_assistant_record_clicked_cb (SysprofProfilerAssistant *self, + { + g_auto(GStrv) argv = NULL; + g_auto(GStrv) env = NULL; +- SysprofEnviron *environ; ++ SysprofEnviron *sys_environ; + const gchar *command; + gint argc; + +@@ -245,8 +245,8 @@ sysprof_profiler_assistant_record_clicked_cb (SysprofProfilerAssistant *self, + sysprof_profiler_set_spawn (profiler, TRUE); + sysprof_profiler_set_spawn_argv (profiler, (const gchar * const *)argv); + +- environ = sysprof_environ_editor_get_environ (self->environ_editor); +- env = sysprof_environ_get_environ (environ); ++ sys_environ = sysprof_environ_editor_get_environ (self->environ_editor); ++ env = sysprof_environ_get_environ (sys_environ); + sysprof_profiler_set_spawn_env (profiler, (const gchar * const *)env); + + sysprof_profiler_set_spawn_inherit_environ (profiler, +@@ -405,7 +405,7 @@ sysprof_profiler_assistant_class_init (SysprofProfilerAssistantClass *klass) + static void + sysprof_profiler_assistant_init (SysprofProfilerAssistant *self) + { +- g_autoptr(SysprofEnviron) environ = sysprof_environ_new (); ++ g_autoptr(SysprofEnviron) sys_environ = sysprof_environ_new (); + + gtk_widget_init_template (GTK_WIDGET (self)); + +@@ -445,7 +445,7 @@ sysprof_profiler_assistant_init (SysprofProfilerAssistant *self) + self, + G_CONNECT_SWAPPED); + +- sysprof_environ_editor_set_environ (self->environ_editor, environ); ++ sysprof_environ_editor_set_environ (self->environ_editor, sys_environ); + } + + void +-- +2.25.0 + diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-kernel/sysprof/files/0001-meson.build-do-not-hardcode-linux-as-host_machine-.s.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-kernel/sysprof/files/0001-meson.build-do-not-hardcode-linux-as-host_machine-.s.patch new file mode 100644 index 00000000..23548922 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-kernel/sysprof/files/0001-meson.build-do-not-hardcode-linux-as-host_machine-.s.patch @@ -0,0 +1,42 @@ +From 43c39b5685445242d071b3706af2903efa508b4a Mon Sep 17 00:00:00 2001 +From: Alexander Kanavin +Date: Tue, 14 Jan 2020 12:58:27 +0100 +Subject: [PATCH] meson.build: do not hardcode 'linux' as + host_machine().system() value + +In some build environmets such as OpenEmbedded this can be 'linux-gnueabi' +or otherwise not exactly 'linux'. + +Upstream-Status: Pending +Signed-off-by: Alexander Kanavin +--- + src/libsysprof/meson.build | 2 +- + src/tools/meson.build | 2 +- + 2 files changed, 2 insertions(+), 2 deletions(-) + +diff --git a/src/libsysprof/meson.build b/src/libsysprof/meson.build +index 3449961..3c2d186 100644 +--- a/src/libsysprof/meson.build ++++ b/src/libsysprof/meson.build +@@ -84,7 +84,7 @@ libsysprof_deps = [ + polkit_dep, + ] + +-if host_machine.system() == 'linux' ++if host_machine.system().contains('linux') + libsysprof_public_sources += [ + 'sysprof-memory-source.c', + 'sysprof-perf-counter.c', +diff --git a/src/tools/meson.build b/src/tools/meson.build +index 670052a..3fb7f0c 100644 +--- a/src/tools/meson.build ++++ b/src/tools/meson.build +@@ -2,7 +2,7 @@ tools_deps = [ + libsysprof_capture_dep, + ] + +-if get_option('libsysprof') and host_machine.system() == 'linux' ++if get_option('libsysprof') and host_machine.system().contains('linux') + polkit_agent_dep = dependency('polkit-agent-1') + sysprof_cli = executable('sysprof-cli', 'sysprof-cli.c', + dependencies: tools_deps + [libsysprof_dep, polkit_dep, polkit_agent_dep], diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-kernel/sysprof/files/0001-sysprof-Define-NT_GNU_BUILD_ID-if-undefined.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-kernel/sysprof/files/0001-sysprof-Define-NT_GNU_BUILD_ID-if-undefined.patch new file mode 100644 index 00000000..75aa86cd --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-kernel/sysprof/files/0001-sysprof-Define-NT_GNU_BUILD_ID-if-undefined.patch @@ -0,0 +1,35 @@ +From 3025d80aaacc5f67aa9eb1e6fde30f71d9c5b04b Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Mon, 18 Jul 2011 16:00:17 -0700 +Subject: [PATCH 1/2] sysprof: Define NT_GNU_BUILD_ID if undefined + +On uclibc elf.h does not have GNU extentions but we need this define +so we define it locally if its not getting it from elf.h + +Signed-off-by: Khem Raj + +Upstream-Status: Pending + +%% original patch: define-NT_GNU_BUILD_ID.patch +--- + src/libsysprof/elfparser.h | 4 ++++ + 1 file changed, 4 insertions(+) + +diff --git a/src/libsysprof/elfparser.h b/src/libsysprof/elfparser.h +index 160e4c9..94fa5c0 100644 +--- a/src/libsysprof/elfparser.h ++++ b/src/libsysprof/elfparser.h +@@ -18,6 +18,10 @@ + + #include + ++#ifndef NT_GNU_BUILD_ID ++#define NT_GNU_BUILD_ID 3 ++#endif ++ + typedef struct ElfSym ElfSym; + typedef struct ElfParser ElfParser; + +-- +2.17.1 + diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-kernel/sysprof/sysprof_3.34.1.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-kernel/sysprof/sysprof_3.34.1.bb new file mode 100644 index 00000000..1e530efb --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-kernel/sysprof/sysprof_3.34.1.bb @@ -0,0 +1,37 @@ +SUMMARY = "System-wide Performance Profiler for Linux" +HOMEPAGE = "http://www.sysprof.com" +LICENSE = "GPLv3+" +LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504 \ + file://src/sysprof/sysprof-application.c;endline=17;md5=a3de8df3b0f8876dd01e1388d2d4b607" + +GNOMEBASEBUILDCLASS = "meson" +inherit gnomebase gettext systemd upstream-version-is-even gsettings + +DEPENDS = "glib-2.0 libxml2-native glib-2.0-native" + +SRC_URI[archive.md5sum] = "cc32455277b31afb1965d627ae3e3629" +SRC_URI[archive.sha256sum] = "844bbb8d8b65071b3bca96f8e921319ceef81f2d2c51fcc9da63a4b355c893d0" +SRC_URI += "file://0001-sysprof-Define-NT_GNU_BUILD_ID-if-undefined.patch \ + file://0001-meson.build-do-not-hardcode-linux-as-host_machine-.s.patch \ + file://0001-libsysprof-ui-Rename-environ-to-sys_environ.patch \ + " + +PACKAGECONFIG ?= "sysprofd libsysprof ${@bb.utils.contains_any('DISTRO_FEATURES', '${GTK3DISTROFEATURES}', 'gtk', '', d)}" +PACKAGECONFIG[gtk] = "-Denable_gtk=true,-Denable_gtk=false,gtk+3 libdazzle" +PACKAGECONFIG[sysprofd] = "-Dwith_sysprofd=bundled,-Dwith_sysprofd=none,polkit" +PACKAGECONFIG[libsysprof] = "-Dlibsysprof=true,-Dlibsysprof=false,polkit" + +# Enablig this requries yelp +EXTRA_OEMESON += "-Dhelp=false -Dsystemdunitdir=${systemd_unitdir}/system" + +SOLIBS = ".so" +FILES_SOLIBSDEV = "" + +SYSTEMD_SERVICE_${PN} = "${@bb.utils.contains('PACKAGECONFIG', 'sysprofd', 'sysprof2.service sysprof3.service', '', d)}" + +FILES_${PN} += " \ + ${datadir}/dbus-1/system-services \ + ${datadir}/dbus-1/system.d \ + ${datadir}/dbus-1/interfaces \ + ${datadir}/metainfo \ + " diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-support/accountsservice/accountsservice/0001-musl-Hack-to-fix-build.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-support/accountsservice/accountsservice/0001-musl-Hack-to-fix-build.patch new file mode 100644 index 00000000..c2310fe4 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-support/accountsservice/accountsservice/0001-musl-Hack-to-fix-build.patch @@ -0,0 +1,36 @@ +From 2a1c7103839c20df5ca9ce2fa863535d802f8f3a Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Andreas=20M=C3=BCller?= +Date: Sun, 8 Dec 2019 23:42:00 +0100 +Subject: [PATCH] musl: Hack to fix configure +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +--- + meson.build | 10 ++++++++-- + 1 file changed, 8 insertions(+), 2 deletions(-) + +diff --git a/meson.build b/meson.build +index 4465a26..726c9fe 100644 +--- a/meson.build ++++ b/meson.build +@@ -82,8 +82,14 @@ if cc.has_header_symbol('utmpx.h', 'WTMPX_FILENAME', prefix: '#define _GNU_SOURC + elif cc.has_header_symbol('paths.h', '_PATH_WTMPX') + config_h.set('PATH_WTMP', '_PATH_WTMPX') + else +- assert(run_command('test', '-e', '/var/log/utx.log').returncode() == 0, 'Do not know which filename to watch for wtmp changes') +- config_h.set_quoted('PATH_WTMP', '/var/log/utx.log') ++ # musl: This is just a build fix hack. ++ # As usual they know better, consider all other projects crap and offer zero ++ # alternatives: So wtmp is a dead stub only [1] (= /dev/null/wtmp - taken ++ # from musl sources). ++ # Maybe a hero comes along and adds utmps [2] to make accountsservice useful for musl ++ # [1] https://wiki.musl-libc.org/faq.html#Q:-Why-is-the-utmp/wtmp-functionality-only-implemented-as-stubs? ++ # [2] https://github.com/skarnet/utmps ++ config_h.set_quoted('PATH_WTMP', '/dev/null/wtmp') + endif + + # compiler flags +-- +2.21.0 + diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-support/accountsservice/accountsservice/0002-musl-add-missing-fgetspent_r.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-support/accountsservice/accountsservice/0002-musl-add-missing-fgetspent_r.patch new file mode 100644 index 00000000..14161804 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-support/accountsservice/accountsservice/0002-musl-add-missing-fgetspent_r.patch @@ -0,0 +1,46 @@ +From 820249ea8e38c568e6a36fbd9c852718c7665b56 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Andreas=20M=C3=BCller?= +Date: Mon, 9 Dec 2019 00:12:08 +0100 +Subject: [PATCH] musl: add missing fgetspent_r + +Stolen from void-linux + +Upstream-Status: Inappropriate [musl-specific] +--- + src/daemon.c | 20 ++++++++++++++++++++ + 1 file changed, 20 insertions(+) + +diff --git a/src/daemon.c b/src/daemon.c +index c52bda3..a7676fe 100644 +--- a/src/daemon.c ++++ b/src/daemon.c +@@ -164,6 +164,26 @@ remove_cache_files (const gchar *user_name) + g_remove (icon_filename); + } + ++/* Musl libc does not support fgetspent_r(), write own ++ * wrapper ++ */ ++static int fgetspent_r(FILE *fp, struct spwd *spbuf, char *buf, size_t buflen, struct spwd **spbufp) { ++ struct spwd *shadow_entry = fgetspent(fp); ++ if(!shadow_entry) ++ return -1; ++ size_t namplen = strlen(shadow_entry->sp_namp); ++ size_t pwdplen = strlen(shadow_entry->sp_pwdp); ++ ++ if(namplen + pwdplen + 2 > buflen) ++ return -1; ++ ++ *spbufp = memcpy(spbuf, shadow_entry, sizeof(struct spwd)); ++ spbuf->sp_namp = strncpy(buf, shadow_entry->sp_namp, namplen + 1); ++ spbuf->sp_pwdp = strncpy(buf + namplen + 1, shadow_entry->sp_pwdp, pwdplen + 1); ++ ++ return 0; ++} ++ + static struct passwd * + entry_generator_fgetpwent (Daemon *daemon, + GHashTable *users, +-- +2.21.0 + diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-support/accountsservice/accountsservice_0.6.55.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-support/accountsservice/accountsservice_0.6.55.bb new file mode 100644 index 00000000..edc48900 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-support/accountsservice/accountsservice_0.6.55.bb @@ -0,0 +1,33 @@ +DESCRIPTION = "D-Bus interfaces for querying and manipulating user account information" +HOMEPAGE = "https://www.freedesktop.org/wiki/Software/AccountsService/" +LICENSE = "GPLv3" +LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504" + +DEPENDS = " \ + dbus \ + polkit \ +" + +inherit meson gobject-introspection gtk-doc features_check systemd + +REQUIRED_DISTRO_FEATURES = "polkit" + +SRC_URI = "https://www.freedesktop.org/software/${BPN}/${BPN}-${PV}.tar.xz" +SRC_URI_append_libc-musl = " \ + file://0001-musl-Hack-to-fix-build.patch \ + file://0002-musl-add-missing-fgetspent_r.patch \ +" +SRC_URI[md5sum] = "6e4c6fbd490260cfe17de2e76f5d803a" +SRC_URI[sha256sum] = "ff2b2419a7e06bd9cb335ffe391c7409b49a0f0130b890bd54692a3986699c9b" + +GTKDOC_MESON_OPTION = "gtk_doc" + +PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)}" +PACKAGECONFIG[systemd] = "-Dsystemd=true, -Dsystemd=false -Dsystemdsystemunitdir='no', systemd" + +SYSTEMD_SERVICE_${PN} = "accounts-daemon.service" + +FILES_${PN} += " \ + ${datadir}/dbus-1 \ + ${datadir}/polkit-1 \ +" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-support/appstream-glib/appstream-glib_0.7.16.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-support/appstream-glib/appstream-glib_0.7.16.bb new file mode 100644 index 00000000..ec3e4a3d --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-support/appstream-glib/appstream-glib_0.7.16.bb @@ -0,0 +1,37 @@ +SUMMARY = "Objects and helper methods to help reading and writing AppStream metadata" +HOMEPAGE = "https://people.freedesktop.org/~hughsient/appstream-glib/index.htm" +LICENSE = "LGPLv2.1" +LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c" + +DEPENDS = " \ + gperf-native \ + glib-2.0 \ + gtk+3 \ + libyaml \ + libarchive \ + libsoup-2.4 \ + json-glib \ + gdk-pixbuf \ + freetype \ + fontconfig \ + libstemmer \ +" + +inherit meson gobject-introspection gettext bash-completion + +SRC_URI = "https://people.freedesktop.org/~hughsient/${BPN}/releases/${BP}.tar.xz" +SRC_URI[md5sum] = "78306049412396a72746186452abdf66" +SRC_URI[sha256sum] = "04f290d73bc865071112076b8a3345df2730783a16af976fe3becfd2f50d5992" + +EXTRA_OEMESON = " \ + -Drpm=false \ +" + +FILES_${PN} += "${libdir}/asb-plugins-5" + +FILES_${PN}-dev += " \ + ${datadir}/installed-tests \ + ${datadir}/gettext \ +" + +BBCLASSEXTEND = "native" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-support/colord-gtk/colord-gtk_0.2.0.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-support/colord-gtk/colord-gtk_0.2.0.bb new file mode 100644 index 00000000..7845509b --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-support/colord-gtk/colord-gtk_0.2.0.bb @@ -0,0 +1,25 @@ +SUMMARY = "GTK support library for colord" +HOMEPAGE = "https://www.freedesktop.org/software/colord/" +LICENSE = "LGPLv3" +LIC_FILES_CHKSUM = "file://COPYING;md5=e6a600fd5e1d9cbde2d983680233ad02" + +inherit meson gobject-introspection gettext gtk-doc features_check + +DEPENDS = " \ + gtk+3 \ + colord \ +" + +SRC_URI = "http://www.freedesktop.org/software/colord/releases/${BPN}-${PV}.tar.xz" +SRC_URI[md5sum] = "66d048803c8b89e5e63da4b461484933" +SRC_URI[sha256sum] = "2a4cfae08bc69f000f40374934cd26f4ae86d286ce7de89f1622abc59644c717" + +EXTRA_OEMESON = "-Dman=false" + +# gobject-introspection is mandatory and cannot be configured +REQUIRED_DISTRO_FEATURES = "gobject-introspection-data" + +# colord +REQUIRED_DISTRO_FEATURES += "polkit" + +UNKNOWN_CONFIGURE_WHITELIST_append = " introspection" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-support/ibus/ibus-native.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-support/ibus/ibus-native.bb new file mode 100644 index 00000000..ca65114c --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-support/ibus/ibus-native.bb @@ -0,0 +1,34 @@ +require ${BPN}.inc + +inherit native + +DEPENDS += " \ + glib-2.0-native \ + dbus-native \ + iso-codes \ +" + +PACKAGECONFIG = "" + +# for allarch iso-codes +EXTRA_NATIVE_PKGCONFIG_PATH = ":${RECIPE_SYSROOT}${datadir_native}/pkgconfig" +# for allarch unicode-ucd - just to make configure happy +EXTRA_OECONF += "--with-ucd-dir=${RECIPE_SYSROOT}${datadir_native}/unicode/ucd" + +do_compile() { + cd src + # seems by moving to src we break dependency tracking so build what's + # necessary step by step + oe_runmake ibusenumtypes.h + oe_runmake ibusmarshalers.h + oe_runmake ibusenumtypes.c + oe_runmake unicode-parser +} + +do_install() { + install -d ${D}/${libdir} + install -m 755 ${S}/src/.libs/libibus-*.so* ${D}/${libdir} + + install -d ${D}/${bindir} + install -m 755 ${S}/src/.libs/unicode-parser ${D}/${bindir} +} diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-support/ibus/ibus.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-support/ibus/ibus.bb new file mode 100644 index 00000000..caec455b --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-support/ibus/ibus.bb @@ -0,0 +1,37 @@ +require ${BPN}.inc + +DEPENDS += " \ + ${BPN}-native \ + glib-2.0-native \ + glib-2.0 \ + dbus \ + iso-codes \ +" + +inherit gtk-icon-cache bash-completion + +# for unicode-ucd +EXTRA_OECONF += "--with-ucd-dir=${STAGING_DATADIR}/unicode/ucd" + +PACKAGECONFIG ??= " \ + dconf vala \ + ${@bb.utils.contains_any('DISTRO_FEATURES', [ 'wayland', 'x11' ], 'gtk3', '', d)} \ + ${@bb.utils.filter('DISTRO_FEATURES', 'wayland x11', d)} \ +" + +do_configure_prepend() { + # run native unicode-parser + sed -i 's:$(builddir)/unicode-parser:unicode-parser:g' ${S}/src/Makefile.am +} + +FILES_${PN} += " \ + ${datadir}/dbus-1 \ + ${datadir}/GConf \ + ${datadir}/glib-2.0 \ + ${libdir}/gtk-3.0 \ +" + +FILES_${PN}-dev += " \ + ${datadir}/gettext \ +" + diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-support/ibus/ibus.inc b/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-support/ibus/ibus.inc new file mode 100644 index 00000000..0f4ae7d0 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-support/ibus/ibus.inc @@ -0,0 +1,36 @@ +SUMMARY = "Intelligent Input Bus for Linux/Unix" +HOMEPAGE = "https://github.com/ibus/ibus/wiki" +LICENSE = "LGPLv2.1" +LIC_FILES_CHKSUM = "file://COPYING;md5=fbc093901857fcd118f065f900982c24" + +inherit autotools-brokensep pkgconfig gobject-introspection gettext gtk-doc vala + +PV = "1.5.21" + +DEPENDS = "unicode-ucd" + +SRC_URI = " \ + git://github.com/ibus/ibus.git \ + file://0001-Do-not-try-to-start-dbus-we-do-not-have-dbus-lauch.patch \ +" +SRCREV = "ae0040c73466bb6e78fce5e669a55fcce6ffd16d" +S = "${WORKDIR}/git" + +PACKAGECONFIG[appindicator] = "--enable-appindicator,--disable-appindicator,qtbase" +PACKAGECONFIG[dconf] = "--enable-dconf,--disable-dconf,dconf" +PACKAGECONFIG[gtk2] = "--enable-gtk2,--disable-gtk2,gtk+" +PACKAGECONFIG[gtk3] = "--enable-gtk3,--disable-gtk3,gtk+3" +PACKAGECONFIG[wayland] = "--enable-wayland,--disable-wayland,wayland" +PACKAGECONFIG[vala] = "--enable-vala,--disable-vala" +PACKAGECONFIG[x11] = "--enable-xim --enable-ui,--disable-xim --disable-ui,virtual/libx11" + +EXTRA_OECONF = " \ + --disable-tests \ + --disable-emoji-dict \ + --disable-python2 \ +" + +do_configure_prepend() { + touch ${S}/ChangeLog + touch ${S}/ABOUT-NLS +} diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-support/ibus/ibus/0001-Do-not-try-to-start-dbus-we-do-not-have-dbus-lauch.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-support/ibus/ibus/0001-Do-not-try-to-start-dbus-we-do-not-have-dbus-lauch.patch new file mode 100644 index 00000000..3701d19f --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-support/ibus/ibus/0001-Do-not-try-to-start-dbus-we-do-not-have-dbus-lauch.patch @@ -0,0 +1,39 @@ +From f567bcbc2108d722faa90afeb03d3a3bcdf5f58b Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Andreas=20M=C3=BCller?= +Date: Fri, 10 May 2019 14:30:08 +0200 +Subject: [PATCH] Do not try to start dbus - we do not have dbus-lauch +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Upstream-Status: Inappropriate [OE specific] + +Signed-off-by: Andreas Müller +--- + data/dconf/make-dconf-override-db.sh | 6 ------ + 1 file changed, 6 deletions(-) + +diff --git a/data/dconf/make-dconf-override-db.sh b/data/dconf/make-dconf-override-db.sh +index 9c650e97..02fbf059 100755 +--- a/data/dconf/make-dconf-override-db.sh ++++ b/data/dconf/make-dconf-override-db.sh +@@ -12,10 +12,6 @@ export XDG_CACHE_HOME="$TMPDIR/cache" + export GSETTINGS_SCHEMA_DIR="$TMPDIR/schemas" + mkdir -p $XDG_CONFIG_HOME $XDG_CACHE_HOME $GSETTINGS_SCHEMA_DIR + +-eval `dbus-launch --sh-syntax` +- +-trap 'rm -rf $TMPDIR; kill $DBUS_SESSION_BUS_PID' ERR +- + # in case that schema is not installed on the system + glib-compile-schemas --targetdir "$GSETTINGS_SCHEMA_DIR" "$PWD" + +@@ -46,5 +42,3 @@ for schema in $schemas; do + done + + rm -rf $TMPDIR +- +-kill $DBUS_SESSION_BUS_PID +-- +2.20.1 + diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-support/keybinder/keybinder_3.0.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-support/keybinder/keybinder_3.0.bb index 0a0a3e6b..d567d00d 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-support/keybinder/keybinder_3.0.bb +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-support/keybinder/keybinder_3.0.bb @@ -18,7 +18,7 @@ SRC_URI = "git://github.com/engla/keybinder.git;branch=keybinder-3.0 \ RDEPENDS_${PN} = "gtk+" -inherit distro_features_check autotools gtk-doc gobject-introspection +inherit features_check autotools gtk-doc gobject-introspection REQUIRED_DISTRO_FEATURES = "x11" do_configure_prepend() { diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-support/libhandy/libhandy_git.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-support/libhandy/libhandy_git.bb new file mode 100644 index 00000000..8c6159f9 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-support/libhandy/libhandy_git.bb @@ -0,0 +1,21 @@ +SUMMARY = "A library full of GTK+ widgets for mobile phones" +LICENSE = "LGPLv2.1" +LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c" + +SRC_URI = "git://source.puri.sm/Librem5/${BPN}.git;protocol=https" +SRCREV = "ef7c4bf75ae239495141ada83d2fbaf034315563" +S = "${WORKDIR}/git" +PV = "0.0.12" + +GIR_MESON_ENABLE_FLAG = 'enabled' +GIR_MESON_DISABLE_FLAG = 'disabled' +GTKDOC_MESON_OPTION = 'gtk_doc' + +inherit meson gobject-introspection vala gettext gtk-doc features_check + +ANY_OF_DISTRO_FEATURES = "${GTK3DISTROFEATURES}" + +DEPENDS += "gtk+3" + +PACKAGES =+ "${PN}-examples" +FILES_${PN}-examples = "${bindir}" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-support/libstemmer/libstemmer/0001-Build-so-lib.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-support/libstemmer/libstemmer/0001-Build-so-lib.patch new file mode 100644 index 00000000..73ebeb48 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-support/libstemmer/libstemmer/0001-Build-so-lib.patch @@ -0,0 +1,63 @@ +From eacc9e9c62a3857ce1e2e24b81fc22d8ae91f422 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Andreas=20M=C3=BCller?= +Date: Thu, 9 May 2019 22:06:48 +0200 +Subject: [PATCH] Build so-lib +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Stolen from [1] + +[1] https://aur.archlinux.org/cgit/aur.git/commit/dynamiclib.patch?h=snowball-git&id=a9cbf4f42f3661e4b8f791cd4374233821716ea1 + +Upstream-Status: Pending + +Signed-off-by: Andreas Müller +--- + GNUmakefile | 7 +++++-- + libstemmer/symbol.map | 6 ++++++ + 2 files changed, 11 insertions(+), 2 deletions(-) + create mode 100644 libstemmer/symbol.map + +diff --git a/GNUmakefile b/GNUmakefile +index cbd6ff7..a85230b 100644 +--- a/GNUmakefile ++++ b/GNUmakefile +@@ -142,10 +142,10 @@ C_OTHER_OBJECTS = $(C_OTHER_SOURCES:.c=.o) + JAVA_CLASSES = $(JAVA_SOURCES:.java=.class) + JAVA_RUNTIME_CLASSES=$(JAVARUNTIME_SOURCES:.java=.class) + +-CFLAGS=-O2 -W -Wall -Wmissing-prototypes -Wmissing-declarations ++CFLAGS=-O2 -fPIC -W -Wall -Wmissing-prototypes -Wmissing-declarations + CPPFLAGS=-Iinclude + +-all: snowball libstemmer.o stemwords $(C_OTHER_SOURCES) $(C_OTHER_HEADERS) $(C_OTHER_OBJECTS) ++all: snowball libstemmer.o libstemmer.so stemwords $(C_OTHER_SOURCES) $(C_OTHER_HEADERS) $(C_OTHER_OBJECTS) + + clean: + rm -f $(COMPILER_OBJECTS) $(RUNTIME_OBJECTS) \ +@@ -192,6 +192,9 @@ libstemmer/libstemmer.o: libstemmer/modules.h $(C_LIB_HEADERS) + libstemmer.o: libstemmer/libstemmer.o $(RUNTIME_OBJECTS) $(C_LIB_OBJECTS) + $(AR) -cru $@ $^ + ++libstemmer.so: libstemmer/libstemmer.o $(RUNTIME_OBJECTS) $(C_LIB_OBJECTS) ++ $(CC) $(CFLAGS) -shared $(LDFLAGS) -Wl,-soname,libstemmer.so.0,-version-script,libstemmer/symbol.map -o $@.0.0.0 $^ ++ + stemwords: $(STEMWORDS_OBJECTS) libstemmer.o + $(CC) $(CFLAGS) -o $@ $^ + +diff --git a/libstemmer/symbol.map b/libstemmer/symbol.map +new file mode 100644 +index 0000000..7a3d423 +--- /dev/null ++++ b/libstemmer/symbol.map +@@ -0,0 +1,6 @@ ++SB_STEMMER_0 { ++ global: ++ sb_stemmer_*; ++ local: ++ *; ++}; +-- +2.20.1 + diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-support/libstemmer/libstemmer/0002-snowball-stemwords-do-link-with-LDFLAGS-set-by-build.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-support/libstemmer/libstemmer/0002-snowball-stemwords-do-link-with-LDFLAGS-set-by-build.patch new file mode 100644 index 00000000..69c1d670 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-support/libstemmer/libstemmer/0002-snowball-stemwords-do-link-with-LDFLAGS-set-by-build.patch @@ -0,0 +1,46 @@ +From 23eacfbcc10c777ce47283a5285455ec83c8aa41 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Andreas=20M=C3=BCller?= +Date: Sun, 6 Oct 2019 13:05:08 +0200 +Subject: [PATCH] snowball/stemwords: do link with LDFLAGS set by build + environment +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Some (cross-)build systems as OpeneEmbedded are picky (for certain reasons) if +their LDFLAGS are ignored. + +Upstream-Status: Submitted [1] + +[1] https://github.com/snowballstem/snowball/pull/120 + +Signed-off-by: Andreas Müller +--- + GNUmakefile | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/GNUmakefile b/GNUmakefile +index 76f6ae9..47c6077 100644 +--- a/GNUmakefile ++++ b/GNUmakefile +@@ -179,7 +179,7 @@ clean: + -rmdir $(js_output_dir) + + snowball: $(COMPILER_OBJECTS) +- $(CC) $(CFLAGS) -o $@ $^ ++ $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $^ + + $(COMPILER_OBJECTS): $(COMPILER_HEADERS) + +@@ -204,7 +204,7 @@ libstemmer.so: libstemmer/libstemmer.o $(RUNTIME_OBJECTS) $(C_LIB_OBJECTS) + $(CC) $(CFLAGS) -shared $(LDFLAGS) -Wl,-soname,libstemmer.so.0,-version-script,libstemmer/symbol.map -o $@.0.0.0 $^ + + stemwords: $(STEMWORDS_OBJECTS) libstemmer.o +- $(CC) $(CFLAGS) -o $@ $^ ++ $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $^ + + csharp_stemwords: $(CSHARP_STEMWORDS_SOURCES) $(CSHARP_RUNTIME_SOURCES) $(CSHARP_SOURCES) + $(MCS) -unsafe -target:exe -out:$@ $(CSHARP_STEMWORDS_SOURCES) $(CSHARP_RUNTIME_SOURCES) $(CSHARP_SOURCES) +-- +2.21.0 + diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-support/libstemmer/libstemmer_git.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-support/libstemmer/libstemmer_git.bb new file mode 100644 index 00000000..96dd880b --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-support/libstemmer/libstemmer_git.bb @@ -0,0 +1,39 @@ +SUMMARY = "Snowball compiler and stemming algorithms" +HOMEPAGE = "https://snowballstem.org/" +LICENSE = "BSD-3-Clause" +LIC_FILES_CHKSUM = "file://COPYING;md5=2750797da77c1d784e7626b3f7d7ff3e" + +DEPENDS_class-target = "${BPN}-native" + +SRC_URI = "\ + git://github.com/snowballstem/snowball.git \ + file://0001-Build-so-lib.patch \ + file://0002-snowball-stemwords-do-link-with-LDFLAGS-set-by-build.patch \ +" +SRCREV = "c70ed64f9d41c1032fba4e962b054f8e9d489a74" +S = "${WORKDIR}/git" +PV = "2.0.0" +LIBVER = "0.0.0" + +inherit lib_package + +BBCLASSEXTEND = "native" + +do_compile_prepend_class-target() { + # use native tools + sed -i 's:./snowball :snowball :g' ${S}/GNUmakefile +} + +do_install() { + install -d ${D}${bindir} + install -m 755 ${S}/snowball ${D}${bindir} + install -m 755 ${S}/stemwords ${D}${bindir} + + install -d ${D}${libdir} + install -m 755 ${S}/libstemmer.so.${LIBVER} ${D}${libdir}/ + ln -s libstemmer.so.${LIBVER} ${D}${libdir}/libstemmer.so.0 + ln -s libstemmer.so.${LIBVER} ${D}${libdir}/libstemmer.so + + install -d ${D}${includedir} + install -m 644 ${S}/include/*.h ${D}${includedir} +} diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-support/libuser/libuser/0001-Check-for-issetugid.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-support/libuser/libuser/0001-Check-for-issetugid.patch deleted file mode 100644 index 79756b9a..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-support/libuser/libuser/0001-Check-for-issetugid.patch +++ /dev/null @@ -1,62 +0,0 @@ -From d0537cb7f2dc5877700ad78dfd191515379d4edc Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Thu, 7 Jan 2016 02:22:51 +0000 -Subject: [PATCH 1/2] Check for issetugid() - -If secure version of getenv is not there then we can use -issetugid() as aid to call getenv() - -Signed-off-by: Khem Raj ---- -Upstream-Status: Pending - - configure.ac | 1 + - lib/config.c | 12 +++++++++++- - 2 files changed, 12 insertions(+), 1 deletion(-) - -diff --git a/configure.ac b/configure.ac -index 1ded1a2..ee19e1f 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -125,6 +125,7 @@ AC_TYPE_OFF_T - AC_TYPE_SIZE_T - - AC_CHECK_FUNCS([__secure_getenv secure_getenv]) -+AC_CHECK_FUNCS([issetugid]) - - # Modify CFLAGS after all tests are run (some of them could fail because - # of the -Werror). -diff --git a/lib/config.c b/lib/config.c -index 29e7120..30f9daf 100644 ---- a/lib/config.c -+++ b/lib/config.c -@@ -44,8 +44,10 @@ - # define safe_getenv(string) secure_getenv(string) - #elif defined(HAVE___SECURE_GETENV) - # define safe_getenv(string) __secure_getenv(string) -+#elif defined(HAVE_ISSETUGID) -+# define safe_getenv(string) safe_getenv_issetugid(string) - #else --# error Neither secure_getenv not __secure_getenv are available -+# error None of secure_getenv, __secure_getenv, or issetugid is available - #endif - - struct config_config { -@@ -59,6 +61,14 @@ struct config_key { - GList *values; - }; - -+static const char* -+safe_getenv_issetugid(const char* name) -+{ -+ if (issetugid ()) -+ return 0; -+ return getenv (name); -+} -+ - /* Compare two section names */ - static int - compare_section_names(gconstpointer a, gconstpointer b) --- -2.7.0 - diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-support/libuser/libuser_0.62.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-support/libuser/libuser_0.62.bb index 7ec54eb1..2c580f87 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-support/libuser/libuser_0.62.bb +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-support/libuser/libuser_0.62.bb @@ -12,7 +12,6 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=5f30f0716dfdd0d91eb439ebec522ec2 \ SECTION = "base" SRC_URI = "https://releases.pagure.org/libuser/libuser-${PV}.tar.xz \ - file://0001-Check-for-issetugid.patch \ file://0002-remove-unused-execinfo.h.patch \ file://0001-modules-files.c-parse_field-fix-string-formating-in-.patch \ " @@ -22,7 +21,7 @@ SRC_URI[sha256sum] = "a58ff4fabb01a25043b142185a33eeea961109dd60d4b40b6a9df4fa3c DEPENDS = "popt libpam glib-2.0 python3" -inherit distro_features_check +inherit features_check REQUIRED_DISTRO_FEATURES = "pam" inherit autotools gettext python3native python3-dir pkgconfig gtk-doc diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-support/libwacom/libwacom_0.33.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-support/libwacom/libwacom_0.33.bb new file mode 100644 index 00000000..6fb3b82e --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-support/libwacom/libwacom_0.33.bb @@ -0,0 +1,14 @@ +SUMMARY = "A tablet description library" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://COPYING;md5=40a21fffb367c82f39fd91a3b137c36e" + +DEPENDS = " \ + libxml2-native \ + libgudev \ +" + +inherit autotools pkgconfig + +SRC_URI = "git://github.com/linuxwacom/libwacom.git" +SRCREV = "87cc710e21a6220e267dd08936bbec2932aa3658" +S = "${WORKDIR}/git" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-support/onboard/onboard_1.4.1.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-support/onboard/onboard_1.4.1.bb index 4e49becc..03fd0517 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-support/onboard/onboard_1.4.1.bb +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-support/onboard/onboard_1.4.1.bb @@ -10,7 +10,7 @@ SRC_URI = "https://launchpad.net/onboard/1.4/${PV}/+download/${BPN}-${PV}.tar.gz SRC_URI[md5sum] = "1a2fbe82e934f5b37841d17ff51e80e8" SRC_URI[sha256sum] = "01cae1ac5b1ef1ab985bd2d2d79ded6fc99ee04b1535cc1bb191e43a231a3865" -inherit distro_features_check setuptools3 pkgconfig gtk-icon-cache gsettings +inherit features_check setuptools3 pkgconfig gtk-icon-cache gsettings REQUIRED_DISTRO_FEATURES = "x11" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-support/packagegroups/packagegroup-gnome-apps.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-support/packagegroups/packagegroup-gnome-apps.bb new file mode 100644 index 00000000..522e9e9a --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-support/packagegroups/packagegroup-gnome-apps.bb @@ -0,0 +1,20 @@ +SUMMARY = "GNOME applications" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302" + +inherit packagegroup features_check + +REQUIRED_DISTRO_FEATURES = "x11" + +RDEPENDS_${PN} = " \ + evolution-data-server \ + evince \ + file-roller \ + gedit \ + gnome-calculator \ + gnome-font-viewer \ + gnome-terminal \ + libwnck3 \ + nautilus \ + ${@bb.utils.contains('DISTRO_FEATURES', 'polkit', 'gnome-system-monitor', '', d)} \ +" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-support/packagegroups/packagegroup-gnome-desktop.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-support/packagegroups/packagegroup-gnome-desktop.bb new file mode 100644 index 00000000..3c333fe0 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-support/packagegroups/packagegroup-gnome-desktop.bb @@ -0,0 +1,27 @@ +SUMMARY = "Basic GNOME desktop" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302" + +inherit packagegroup features_check + +REQUIRED_DISTRO_FEATURES = "x11 polkit systemd pam gobject-introspection-data" + +RDEPENDS_${PN} = " \ + adwaita-icon-theme \ + adwaita-icon-theme-cursors \ + evolution-data-server \ + gnome-backgrounds \ + gnome-bluetooth \ + gnome-control-center \ + gnome-desktop3 \ + gnome-flashback \ + gnome-keyring \ + gnome-menus3 \ + gnome-session \ + gnome-settings-daemon \ + gnome-shell \ + gnome-shell-extensions \ + gnome-tweaks \ + gmime \ + gvfs gvfsd-ftp gvfsd-sftp gvfsd-trash \ +" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-support/usermode/usermode_1.113.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-support/usermode/usermode_1.113.bb index 05278362..a94440c9 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-support/usermode/usermode_1.113.bb +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-gnome/recipes-support/usermode/usermode_1.113.bb @@ -22,7 +22,7 @@ SRC_URI[sha256sum] = "99fbfd248b411ed0e7c44d1957b0ecde699b5a968a4db5d37228e82e7b LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552" -inherit distro_features_check autotools gettext pkgconfig +inherit features_check autotools gettext pkgconfig EXTRA_OEMAKE += "INSTALL='install -p'" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-initramfs/conf/layer.conf b/Contrib-Inspur/openbmc/meta-openembedded/meta-initramfs/conf/layer.conf index 6e0b00db..93220b12 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-initramfs/conf/layer.conf +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-initramfs/conf/layer.conf @@ -16,7 +16,7 @@ BBFILE_PATTERN_meta-initramfs := "^${LAYERDIR}/" BBFILE_PRIORITY_meta-initramfs = "8" LAYERDEPENDS_meta-initramfs = "core" -LAYERSERIES_COMPAT_meta-initramfs = "thud warrior" +LAYERSERIES_COMPAT_meta-initramfs = "thud warrior zeus" SIGGEN_EXCLUDE_SAFE_RECIPE_DEPS += " \ dracut->virtual/kernel \ diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-initramfs/recipes-bsp/images/initramfs-kexecboot-image.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-initramfs/recipes-bsp/images/initramfs-kexecboot-image.bb index 2573eb48..9a686f36 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-initramfs/recipes-bsp/images/initramfs-kexecboot-image.bb +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-initramfs/recipes-bsp/images/initramfs-kexecboot-image.bb @@ -1,7 +1,5 @@ SUMMARY = "Initramfs image for kexecboot kernel" DESCRIPTION = "This image provides kexecboot (linux as bootloader) and helpers." -LICENSE = "MIT" -LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302" inherit image diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-initramfs/recipes-devtools/grubby/grubby_8.40.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-initramfs/recipes-devtools/grubby/grubby_8.40.bb index dc3a70bb..7403cf64 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-initramfs/recipes-devtools/grubby/grubby_8.40.bb +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-initramfs/recipes-devtools/grubby/grubby_8.40.bb @@ -35,6 +35,7 @@ do_install_ptest() { sed -i 's|./grubby|grubby|' ${D}${PTEST_PATH}/test.sh } +RDEPENDS_${PN} += "bash" RDEPENDS_${PN}-ptest = "util-linux-getopt bash" COMPATIBLE_HOST = '(x86_64.*|i.86.*)-(linux|freebsd.*)' diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-initramfs/recipes-devtools/grubby/grubby_git.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-initramfs/recipes-devtools/grubby/grubby_git.bb index 8430b7e1..7248147a 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-initramfs/recipes-devtools/grubby/grubby_git.bb +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-initramfs/recipes-devtools/grubby/grubby_git.bb @@ -25,7 +25,7 @@ RDEPENDS_${PN} += "dracut" inherit autotools-brokensep ptest -EXTRA_OEMAKE = "-e 'CC=${CC}' 'LDFLAGS=${LDFLAGS}' LIBS='${LIBS}'" +EXTRA_OEMAKE = "-e 'CC=${CC}' 'LDFLAGS=${LDFLAGS}' LIBS='${LIBS}' 'PREFIX'=${@bb.utils.contains('DISTRO_FEATURES','usrmerge','/usr','',d)}" LIBS_libc-musl = "-lexecinfo" LIBS ?= "" @@ -35,6 +35,7 @@ do_install_ptest() { sed -i 's|./grubby|grubby|' ${D}${PTEST_PATH}/test.sh } +RDEPENDS_${PN} += "bash" RDEPENDS_${PN}-ptest = "util-linux-getopt bash" COMPATIBLE_HOST = '(x86_64.*|i.86.*)-(linux|freebsd.*)' diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-initramfs/recipes-devtools/klibc/files/klcc-cross-accept-clang-options.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-initramfs/recipes-devtools/klibc/files/klcc-cross-accept-clang-options.patch index 07703aa5..3b7031e9 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-initramfs/recipes-devtools/klibc/files/klcc-cross-accept-clang-options.patch +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-initramfs/recipes-devtools/klibc/files/klcc-cross-accept-clang-options.patch @@ -3,16 +3,17 @@ meta-clang passes this option to compiler defaults Upstream-Status: Pending Signed-off-by: Khem Raj -Index: git/klcc/klcc.in -=================================================================== ---- git.orig/klcc/klcc.in -+++ git/klcc/klcc.in -@@ -207,6 +207,9 @@ while ( defined($a = shift(@ARGV)) ) { +--- a/klcc/klcc.in ++++ b/klcc/klcc.in +@@ -207,6 +207,12 @@ while ( defined($a = shift(@ARGV)) ) { } elsif ( $a =~ /^--([sysroot=])(.*)$/ ) { # Override gcc encoded sysroot push(@ccopt, $a); + } elsif ( $a eq '-no-integrated-as' ) { + # Allow clang options ++ push(@ccopt, $a); ++ } elsif ( $a =~ '--unwindlib=.*' ) { ++ # Allow clang options + push(@ccopt, $a); } else { die "$0: unknown option: $a\n"; diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-initramfs/recipes-devtools/klibc/files/klibc-config-eabi.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-initramfs/recipes-devtools/klibc/files/klibc-config-eabi.patch deleted file mode 100644 index a6998f86..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-initramfs/recipes-devtools/klibc/files/klibc-config-eabi.patch +++ /dev/null @@ -1,23 +0,0 @@ -From 1118cc971917abe19ddb029aa80417f6fd6bb343 Mon Sep 17 00:00:00 2001 -From: Thomas Kunze -Date: Sat, 6 Aug 2011 05:30:14 +0000 -Subject: [PATCH] klibc: initial commit of version 1.5.24 - -Patch was imported from the OpenEmbedded git server -(git://git.openembedded.org/openembedded) -as of commit id b6764cf32ec93547531130dca364fb95e1c495f4 -Signed-off-by: Thomas Kunze - ---- - defconfig | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - ---- a/defconfig -+++ b/defconfig -@@ -6,5 +6,5 @@ CONFIG_KLIBC_ZLIB=y - CONFIG_REGPARM=y - # ARM options - # CONFIG_KLIBC_THUMB is not set --# CONFIG_AEABI is not set -+CONFIG_AEABI=y - # CONFIG_DEBUG_INFO is not set diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-initramfs/recipes-devtools/klibc/klcc-cross_2.0.6.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-initramfs/recipes-devtools/klibc/klcc-cross_2.0.7.bb similarity index 100% rename from Contrib-Inspur/openbmc/meta-openembedded/meta-initramfs/recipes-devtools/klibc/klcc-cross_2.0.6.bb rename to Contrib-Inspur/openbmc/meta-openembedded/meta-initramfs/recipes-devtools/klibc/klcc-cross_2.0.7.bb diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-initramfs/recipes-devtools/klibc/klibc-static-utils_2.0.6.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-initramfs/recipes-devtools/klibc/klibc-static-utils_2.0.7.bb similarity index 100% rename from Contrib-Inspur/openbmc/meta-openembedded/meta-initramfs/recipes-devtools/klibc/klibc-static-utils_2.0.6.bb rename to Contrib-Inspur/openbmc/meta-openembedded/meta-initramfs/recipes-devtools/klibc/klibc-static-utils_2.0.7.bb diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-initramfs/recipes-devtools/klibc/klibc-utils_2.0.6.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-initramfs/recipes-devtools/klibc/klibc-utils_2.0.7.bb similarity index 100% rename from Contrib-Inspur/openbmc/meta-openembedded/meta-initramfs/recipes-devtools/klibc/klibc-utils_2.0.6.bb rename to Contrib-Inspur/openbmc/meta-openembedded/meta-initramfs/recipes-devtools/klibc/klibc-utils_2.0.7.bb diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-initramfs/recipes-devtools/klibc/klibc.inc b/Contrib-Inspur/openbmc/meta-openembedded/meta-initramfs/recipes-devtools/klibc/klibc.inc index 58054486..289288d4 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-initramfs/recipes-devtools/klibc/klibc.inc +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-initramfs/recipes-devtools/klibc/klibc.inc @@ -5,9 +5,8 @@ SECTION = "libs" LICENSE = "BSD-3-Clause & GPL-2.0 & MIT & Zlib" LIC_FILES_CHKSUM = "file://usr/klibc/LICENSE;md5=d75181f10e998c21eb147f6d2e43ce8b" DEPENDS = "linux-libc-headers perl-native" -SRCREV = "22b36d1ae34416bc48869619cbb0cccb2070f48f" -SRC_URI = "git://git.kernel.org/pub/scm/libs/klibc/klibc.git \ +SRC_URI = "${KERNELORG_MIRROR}/linux/libs/klibc/2.0/klibc-${PV}.tar.xz \ ${ARMPATCHES} \ file://klcc-consider-sysroot.patch \ file://klcc-cross-accept-clang-options.patch \ @@ -27,11 +26,18 @@ SRC_URI = "git://git.kernel.org/pub/scm/libs/klibc/klibc.git \ ARMPATCHES ?= "" -ARMPATCHES_arm = "file://klibc-config-eabi.patch \ +ARMPATCHES_arm = " \ file://armv4-fix-v4bx.patch \ " -S = "${WORKDIR}/git" +SRC_URI[md5sum] = "712f8bc1a069e03d92584b7f5380c521" +SRC_URI[sha256sum] = "abef2637ca823485d9c90ce9512e2b08a65047ec4da204635eeaef95a41a9122" + +S = "${WORKDIR}/klibc-${PV}" + +OPTFLAGS = "${TUNE_CCARGS} -Os" +OPTFLAGS_append_toolchain-clang = " -fno-builtin-bcmp" +OPTFLAGS_append_toolchain-clang_mipsarch = " -no-integrated-as" PARALLEL_MAKE = "" EXTRA_OEMAKE = "'KLIBCARCH=${KLIBC_ARCH}' \ @@ -43,7 +49,7 @@ EXTRA_OEMAKE = "'KLIBCARCH=${KLIBC_ARCH}' \ 'INSTALLDIR=${libdir}/klibc' \ 'SHLIBDIR=${libdir}' \ '${KLIBCTHUMB}' \ - 'KLIBCOPTFLAGS=${TUNE_CCARGS} -Os' \ + 'KLIBCOPTFLAGS=${OPTFLAGS}' \ V=1 \ " diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-initramfs/recipes-devtools/klibc/klibc_2.0.6.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-initramfs/recipes-devtools/klibc/klibc_2.0.7.bb similarity index 100% rename from Contrib-Inspur/openbmc/meta-openembedded/meta-initramfs/recipes-devtools/klibc/klibc_2.0.6.bb rename to Contrib-Inspur/openbmc/meta-openembedded/meta-initramfs/recipes-devtools/klibc/klibc_2.0.7.bb diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/0001-force-static-build.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/0001-force-static-build.patch index 4744e7a3..34826bae 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/0001-force-static-build.patch +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/0001-force-static-build.patch @@ -1,4 +1,4 @@ -From d6af515cfcc8185f423860f80ff28719975b701f Mon Sep 17 00:00:00 2001 +From 2a62d7623e3d4c0eaa44434ab678274fe3a9edb1 Mon Sep 17 00:00:00 2001 From: OpenEmbedded Date: Wed, 11 Apr 2018 22:51:00 +0200 Subject: [PATCH] force static build @@ -11,7 +11,7 @@ Signed-off-by: Andrea Adami 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Makefile.in b/Makefile.in -index 54c206f..79188d8 100644 +index fb01134..dbf1fb6 100644 --- a/Makefile.in +++ b/Makefile.in @@ -47,7 +47,7 @@ TARGET_CFLAGS = @TARGET_CFLAGS@ diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/0002-Adjust-the-order-of-headers-to-fix-build-for-musl.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/0002-Adjust-the-order-of-headers-to-fix-build-for-musl.patch index 1d96a2b3..ec456f38 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/0002-Adjust-the-order-of-headers-to-fix-build-for-musl.patch +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/0002-Adjust-the-order-of-headers-to-fix-build-for-musl.patch @@ -1,4 +1,4 @@ -From 0976d2d5be1ed44c2324b609c7d16c1e93181c4b Mon Sep 17 00:00:00 2001 +From 6843cefb1d1d0017a714a2752bb008efd844f3e4 Mon Sep 17 00:00:00 2001 From: Khem Raj Date: Thu, 13 Jul 2017 16:20:08 -0700 Subject: [PATCH] Adjust the order of headers to fix build for musl diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/0003-kexec-elf-rel-use-our-elf.h.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/0003-kexec-elf-rel-use-our-elf.h.patch index ae9e7bbc..32035ca1 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/0003-kexec-elf-rel-use-our-elf.h.patch +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/0003-kexec-elf-rel-use-our-elf.h.patch @@ -1,4 +1,4 @@ -From 7f91875d65778154709e4fa0ccb23f3b2a98b0dc Mon Sep 17 00:00:00 2001 +From 7e202ea55e8dd803278d9d1eac7ffd355344d6be Mon Sep 17 00:00:00 2001 From: OpenEmbedded Date: Wed, 11 Apr 2018 22:51:00 +0200 Subject: [PATCH] kexec-elf-rel: use our elf.h @@ -56,7 +56,7 @@ index 1acbd86..a60c66c 100644 #include "../../kexec-elf.h" diff --git a/kexec/arch/ppc64/kexec-elf-rel-ppc64.c b/kexec/arch/ppc64/kexec-elf-rel-ppc64.c -index 5f8e3f2..765bf6e 100644 +index 51b1354..c85f421 100644 --- a/kexec/arch/ppc64/kexec-elf-rel-ppc64.c +++ b/kexec/arch/ppc64/kexec-elf-rel-ppc64.c @@ -1,5 +1,5 @@ @@ -67,7 +67,7 @@ index 5f8e3f2..765bf6e 100644 #include "../../kexec.h" #include "../../kexec-elf.h" diff --git a/kexec/arch/x86_64/kexec-elf-rel-x86_64.c b/kexec/arch/x86_64/kexec-elf-rel-x86_64.c -index 7fdde73..cd5d729 100644 +index db85b44..761a4ed 100644 --- a/kexec/arch/x86_64/kexec-elf-rel-x86_64.c +++ b/kexec/arch/x86_64/kexec-elf-rel-x86_64.c @@ -1,5 +1,5 @@ diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/0004-kexec-elf-exec.c-replace-with-our-err.h.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/0004-kexec-elf-exec.c-replace-with-our-err.h.patch index 1080e8bb..27a1cc7a 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/0004-kexec-elf-exec.c-replace-with-our-err.h.patch +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/0004-kexec-elf-exec.c-replace-with-our-err.h.patch @@ -1,4 +1,4 @@ -From 8b9da93ac9a4ea79ae953f80f6fe6e4f080341f2 Mon Sep 17 00:00:00 2001 +From 720e24029fca7dcd8e1cd0b556f37aa1dc2b8fe8 Mon Sep 17 00:00:00 2001 From: Andrea Adami Date: Tue, 17 Apr 2018 10:57:23 +0200 Subject: [PATCH] kexec-elf-exec.c: replace with our elf.h diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/0005-crashdump-elf.c-work-around-for-sysconf-_SC_NPROCESS.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/0005-crashdump-elf.c-work-around-for-sysconf-_SC_NPROCESS.patch index 4f7506d4..4604c2a5 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/0005-crashdump-elf.c-work-around-for-sysconf-_SC_NPROCESS.patch +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/0005-crashdump-elf.c-work-around-for-sysconf-_SC_NPROCESS.patch @@ -1,4 +1,4 @@ -From 1cfee75d9662c3382bb7cb8f1c952333837598ae Mon Sep 17 00:00:00 2001 +From 43fb9cec1749b337bfa252fc2c1b0288847e8fa7 Mon Sep 17 00:00:00 2001 From: Andrea Adami Date: Wed, 18 Apr 2018 02:21:30 +0200 Subject: [PATCH] crashdump-elf.c: work around for _SC_NPROCESSORS_CONF @@ -18,7 +18,7 @@ Upstream-Status: Inappropriate [klibc specific] Signed-off-by: Andrea Adami --- - kexec/crashdump-elf.c | 92 +++++++++++++++++++++++++++++++++++++++++++++++++++ + kexec/crashdump-elf.c | 92 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 92 insertions(+) diff --git a/kexec/crashdump-elf.c b/kexec/crashdump-elf.c diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/0006-kexec-syscall.h-work-around-missing-syscall-wrapper.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/0006-kexec-syscall.h-work-around-missing-syscall-wrapper.patch index 3020f767..a607ce77 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/0006-kexec-syscall.h-work-around-missing-syscall-wrapper.patch +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/0006-kexec-syscall.h-work-around-missing-syscall-wrapper.patch @@ -1,4 +1,4 @@ -From 45a80fe7d247898d83edfeabe32b9de80a50a6be Mon Sep 17 00:00:00 2001 +From ab24f236cbc0aa8a3eadde5d71d9d7ea1d979a51 Mon Sep 17 00:00:00 2001 From: Andrea Adami Date: Fri, 31 Aug 2018 11:33:51 +0200 Subject: [PATCH] kexec-syscall.h: work around missing syscall() wrapper @@ -16,10 +16,10 @@ Signed-off-by: Andrea Adami 1 file changed, 21 insertions(+) diff --git a/kexec/kexec-syscall.h b/kexec/kexec-syscall.h -index 33638c2..204007d 100644 +index b96e02a..2a3794d 100644 --- a/kexec/kexec-syscall.h +++ b/kexec/kexec-syscall.h -@@ -74,11 +74,16 @@ +@@ -77,11 +77,16 @@ struct kexec_segment; @@ -36,7 +36,7 @@ index 33638c2..204007d 100644 static inline int is_kexec_file_load_implemented(void) { if (__NR_kexec_file_load != 0xffffffff) -@@ -86,6 +91,21 @@ static inline int is_kexec_file_load_implemented(void) { +@@ -89,6 +94,21 @@ static inline int is_kexec_file_load_implemented(void) { return 0; } @@ -58,7 +58,7 @@ index 33638c2..204007d 100644 static inline long kexec_file_load(int kernel_fd, int initrd_fd, unsigned long cmdline_len, const char *cmdline_ptr, unsigned long flags) -@@ -93,6 +113,7 @@ static inline long kexec_file_load(int kernel_fd, int initrd_fd, +@@ -96,6 +116,7 @@ static inline long kexec_file_load(int kernel_fd, int initrd_fd, return (long) syscall(__NR_kexec_file_load, kernel_fd, initrd_fd, cmdline_len, cmdline_ptr, flags); } @@ -66,6 +66,3 @@ index 33638c2..204007d 100644 #define KEXEC_ON_CRASH 0x00000001 #define KEXEC_PRESERVE_CONTEXT 0x00000002 --- -2.7.4 - diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/0007-kexec.c-add-guard-around-ENOTSUP.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/0007-kexec.c-add-guard-around-ENOTSUP.patch index 3d446839..0ae90016 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/0007-kexec.c-add-guard-around-ENOTSUP.patch +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/0007-kexec.c-add-guard-around-ENOTSUP.patch @@ -1,4 +1,4 @@ -From e6bd7a1bcfbd3e54efc81fbd7d60d915f9af0632 Mon Sep 17 00:00:00 2001 +From 17e9da8d3c3c69f84e11c0457bd9fb8c4ee4274b Mon Sep 17 00:00:00 2001 From: Andrea Adami Date: Tue, 17 Apr 2018 11:35:14 +0200 Subject: [PATCH] kexec.c: add guard around ENOTSUP @@ -16,10 +16,10 @@ Signed-off-by: Andrea Adami 1 file changed, 2 insertions(+) diff --git a/kexec/kexec.c b/kexec/kexec.c -index 313d9fe..b5a8a1e 100644 +index 32ae56c..0764e85 100644 --- a/kexec/kexec.c +++ b/kexec/kexec.c -@@ -1501,6 +1501,7 @@ int main(int argc, char *argv[]) +@@ -1517,6 +1517,7 @@ int main(int argc, char *argv[]) */ case -EINVAL: case -ENOEXEC: @@ -27,7 +27,7 @@ index 313d9fe..b5a8a1e 100644 /* * ENOTSUP can be unsupported image * type or unsupported PE signature -@@ -1513,6 +1514,7 @@ int main(int argc, char *argv[]) +@@ -1529,6 +1530,7 @@ int main(int argc, char *argv[]) * kernel bug */ case -ENOTSUP: diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/0008-kexec.c-replace-mising-BLKGETSIZE64.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/0008-kexec.c-replace-mising-BLKGETSIZE64.patch index cfc51cf7..0ab7a1d7 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/0008-kexec.c-replace-mising-BLKGETSIZE64.patch +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/0008-kexec.c-replace-mising-BLKGETSIZE64.patch @@ -1,4 +1,4 @@ -From 12c7b09c3152f2b3475d081691a26bd1a5633256 Mon Sep 17 00:00:00 2001 +From 30b61da180286643bea68b09b092744346011801 Mon Sep 17 00:00:00 2001 From: Andrea Adami Date: Tue, 17 Apr 2018 11:38:42 +0200 Subject: [PATCH] kexec.c: replace missing BLKGETSIZE64 @@ -16,10 +16,10 @@ Signed-off-by: Andrea Adami 1 file changed, 4 insertions(+) diff --git a/kexec/kexec.c b/kexec/kexec.c -index b5a8a1e..7842f8b 100644 +index 0764e85..157c577 100644 --- a/kexec/kexec.c +++ b/kexec/kexec.c -@@ -54,6 +54,10 @@ +@@ -55,6 +55,10 @@ #define KEXEC_LOADED_PATH "/sys/kernel/kexec_loaded" #define KEXEC_CRASH_LOADED_PATH "/sys/kernel/kexec_crash_loaded" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/0009-vmcore-dmesg.c-work-around-missing-imaxdiv.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/0009-vmcore-dmesg.c-work-around-missing-imaxdiv.patch index df980b11..8bc473cb 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/0009-vmcore-dmesg.c-work-around-missing-imaxdiv.patch +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/0009-vmcore-dmesg.c-work-around-missing-imaxdiv.patch @@ -1,4 +1,4 @@ -From ad598a71ffff6f86462211f252ac0c7b5de53869 Mon Sep 17 00:00:00 2001 +From 20e2c61fc04a291250acee649c2523d2546cedea Mon Sep 17 00:00:00 2001 From: Andrea Adami Date: Tue, 17 Apr 2018 13:14:12 +0200 Subject: [PATCH] vmcore-dmesg.c: work around missing imaxdiv() @@ -18,7 +18,7 @@ Signed-off-by: Andrea Adami 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/vmcore-dmesg/vmcore-dmesg.c b/vmcore-dmesg/vmcore-dmesg.c -index e340ef4..1b27b71 100644 +index 7972788..c63ac4f 100644 --- a/vmcore-dmesg/vmcore-dmesg.c +++ b/vmcore-dmesg/vmcore-dmesg.c @@ -575,8 +575,11 @@ static void dump_dmesg_structured(int fd) diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/0010-fs2dt.c-work-around-missing-getline.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/0010-fs2dt.c-work-around-missing-getline.patch index cff1485e..4652f10a 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/0010-fs2dt.c-work-around-missing-getline.patch +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/0010-fs2dt.c-work-around-missing-getline.patch @@ -1,4 +1,4 @@ -From edefda702d906d472ee7a675f6b506d5cfca7ac8 Mon Sep 17 00:00:00 2001 +From 14d4dbd293c75bc81a0dde6e678f9bbefb40b6f1 Mon Sep 17 00:00:00 2001 From: Andrea Adami Date: Tue, 17 Apr 2018 13:48:25 +0200 Subject: [PATCH] fs2dt.c: work around missing getline() diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/0011-purgatory-Makefile-adapt-to-klcc.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/0011-purgatory-Makefile-adapt-to-klcc.patch index 636151be..5bbb178b 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/0011-purgatory-Makefile-adapt-to-klcc.patch +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/0011-purgatory-Makefile-adapt-to-klcc.patch @@ -1,16 +1,17 @@ -From 9b6866b106eb3ad11115bd591a23e65a68dd847d Mon Sep 17 00:00:00 2001 +From b6ebe05dc389b9457e3707401411fd075230b10e Mon Sep 17 00:00:00 2001 From: Andrea Adami Date: Tue, 21 Aug 2018 16:31:44 +0200 -Subject: [PATCH 11/11] purgatory Makefile: adapt to klcc +Subject: [PATCH] purgatory Makefile: adapt to klcc Upstream-Status: Inappropriate [klibc specific] Signed-off-by: Andrea Adami + --- purgatory/Makefile | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/purgatory/Makefile b/purgatory/Makefile -index 49ce80a..72eefaa 100644 +index 49ce80a..1542b3a 100644 --- a/purgatory/Makefile +++ b/purgatory/Makefile @@ -47,7 +47,7 @@ purgatory/sha256.o: $(srcdir)/util_lib/sha256.c @@ -33,6 +34,3 @@ index 49ce80a..72eefaa 100644 -Wl,-Map=$(PURGATORY_MAP) $(PURGATORY): $(PURGATORY_OBJS) --- -2.7.4 - diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/0012-purgatory-string.c-avoid-inclusion-of-string.h.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/0012-purgatory-string.c-avoid-inclusion-of-string.h.patch index 20934da8..db0d7631 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/0012-purgatory-string.c-avoid-inclusion-of-string.h.patch +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/0012-purgatory-string.c-avoid-inclusion-of-string.h.patch @@ -1,4 +1,4 @@ -From 2d2ad16f9328a7cbb3f5b8479ae93eb923a0727f Mon Sep 17 00:00:00 2001 +From 9bb386018257e1e18ffe0e925201946515b31080 Mon Sep 17 00:00:00 2001 From: Andrea Adami Date: Thu, 19 Apr 2018 00:28:14 +0200 Subject: [PATCH] purgatory/string.c: avoid inclusion of string.h @@ -26,6 +26,3 @@ index f06c460..c5e978a 100644 size_t strnlen(const char *s, size_t max) { --- -2.7.4 - diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/0013-sha256.h-avoid-inclusion-of-sys-types.h.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/0013-sha256.h-avoid-inclusion-of-sys-types.h.patch index 5d1664f7..777cbcf9 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/0013-sha256.h-avoid-inclusion-of-sys-types.h.patch +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/0013-sha256.h-avoid-inclusion-of-sys-types.h.patch @@ -1,4 +1,4 @@ -From ec6000b9f287e62cb0746e26cfa4372c7ea528f4 Mon Sep 17 00:00:00 2001 +From 60098810e1c04be677794bff6a3935011af98934 Mon Sep 17 00:00:00 2001 From: Andrea Adami Date: Thu, 19 Apr 2018 23:26:43 +0200 Subject: [PATCH] sha256.h: avoid inclusion of sys/types.h @@ -31,6 +31,3 @@ index 467fb22..40fd3ed 100644 #include typedef struct --- -2.7.4 - diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/0014-add-if_nameindex-from-musl.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/0014-add-if_nameindex-from-musl.patch index ad212669..f4d0d5d9 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/0014-add-if_nameindex-from-musl.patch +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/0014-add-if_nameindex-from-musl.patch @@ -1,7 +1,7 @@ -From b15e9610b4ab52c381e712241d50dea96d50d873 Mon Sep 17 00:00:00 2001 +From 04eec97b390621f2b3794b0d774b77429eb88cfd Mon Sep 17 00:00:00 2001 From: Andrea Adami Date: Wed, 2 May 2018 23:14:19 +0200 -Subject: [PATCH 14/14] add if_nameindex from musl +Subject: [PATCH] add if_nameindex from musl Taken from musl, minimal changes. klibc lacks struct and func @@ -20,10 +20,11 @@ to fix : #define __bitwise __bitwise__ Signed-off-by: Andrea Adami + --- kexec/Makefile | 2 +- - kexec/if_nameindex.c | 64 ++++++++++++++++++++++++++++++++++++++++++++++++++++ - kexec/if_nameindex.h | 15 ++++++++++++ + kexec/if_nameindex.c | 64 ++++++++++++++++++++++++++++++++++++++++++++ + kexec/if_nameindex.h | 15 +++++++++++ kexec/ifdown.c | 3 +++ 4 files changed, 83 insertions(+), 1 deletion(-) create mode 100644 kexec/if_nameindex.c @@ -114,7 +115,7 @@ index 0000000..e586e41 +} diff --git a/kexec/if_nameindex.h b/kexec/if_nameindex.h new file mode 100644 -index 0000000..1725fbd +index 0000000..cf1c061 --- /dev/null +++ b/kexec/if_nameindex.h @@ -0,0 +1,15 @@ @@ -147,6 +148,3 @@ index 82c6141..cc3ca9f 100644 /* * First, we find all shaper devices and down them. Then we --- -2.7.4 - diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/0015-vmcore-dmesg-fix-warning.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/0015-vmcore-dmesg-fix-warning.patch index 0b88b94c..9b8107ae 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/0015-vmcore-dmesg-fix-warning.patch +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/0015-vmcore-dmesg-fix-warning.patch @@ -1,17 +1,18 @@ -From 3294266c6a875c5009065c1ae5d0b86200c4147c Mon Sep 17 00:00:00 2001 +From a2679731a56748de58a4cf0a46b7a15d75543a88 Mon Sep 17 00:00:00 2001 From: Andrea Adami Date: Sun, 29 Apr 2018 00:52:31 +0200 -Subject: [PATCH 6/6] vmcore-dmesg: fix warning +Subject: [PATCH] vmcore-dmesg: fix warning # define __bitwise Signed-off-by: Andrea Adami + --- vmcore-dmesg/vmcore-dmesg.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/vmcore-dmesg/vmcore-dmesg.c b/vmcore-dmesg/vmcore-dmesg.c -index e340ef4..91e4789 100644 +index c63ac4f..a4e3014 100644 --- a/vmcore-dmesg/vmcore-dmesg.c +++ b/vmcore-dmesg/vmcore-dmesg.c @@ -2,6 +2,9 @@ @@ -24,6 +25,3 @@ index e340ef4..91e4789 100644 #include #include #include --- -2.7.4 - diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/140-mips_disable_devicetree_support.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/140-mips_disable_devicetree_support.patch index b3ef3c82..bd728ccb 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/140-mips_disable_devicetree_support.patch +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/140-mips_disable_devicetree_support.patch @@ -1,4 +1,4 @@ -From 5ea7cd78cd252ffd3a9f3fbc8dc795d6e1596084 Mon Sep 17 00:00:00 2001 +From 7bd94a64cd5424e74ad49dbda65a15e83670268f Mon Sep 17 00:00:00 2001 From: Andrea Adami Date: Mon, 17 Dec 2018 11:25:20 +0100 Subject: [PATCH] kexec-tools: fix non-device tree devices on mips @@ -14,6 +14,7 @@ Removed ppc change (unwanted ?) Signed-off-by: Konstantin Kuzov Signed-off-by: Andrea Adami + --- kexec/arch/mips/include/arch/options.h | 4 +- kexec/arch/mips/kexec-elf-mips.c | 58 ++++++++++++++------------ @@ -158,6 +159,3 @@ index 222c815..90b21c3 100644 }; extern struct memory_ranges usablemem_rgns; --- -2.17.1 - diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/arm64-crashdump-arm64.c-fix-warning.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/arm64-crashdump-arm64.c-fix-warning.patch index 24be4dd7..c2418d8f 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/arm64-crashdump-arm64.c-fix-warning.patch +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/arm64-crashdump-arm64.c-fix-warning.patch @@ -1,7 +1,7 @@ -From 6f69f489a442b3a192e4c08748ee8c4d31c75dae Mon Sep 17 00:00:00 2001 +From 3fd4db2ce1710f45eb297ae6b2c10726b33204f3 Mon Sep 17 00:00:00 2001 From: Andrea Adami Date: Sun, 29 Apr 2018 00:46:16 +0200 -Subject: [PATCH 5/6] arm64: crashdump-arm64.c: fix warning +Subject: [PATCH] arm64: crashdump-arm64.c: fix warning from ../git/kexec/kexec.h:6, from ../git/kexec/arch/arm64/crashdump-arm64.c:18: @@ -11,6 +11,7 @@ ng: "__bitwise" redefined # define __bitwise Signed-off-by: Andrea Adami + --- kexec/arch/arm64/crashdump-arm64.c | 3 +++ 1 file changed, 3 insertions(+) @@ -29,6 +30,3 @@ index 4fd7aa8..890d88f 100644 #include #include "kexec.h" --- -2.7.4 - diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/arm64_kexec-arm64.c-workaround-for-getrandom-syscall.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/arm64_kexec-arm64.c-workaround-for-getrandom-syscall.patch index b22ac3ac..df7b0a77 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/arm64_kexec-arm64.c-workaround-for-getrandom-syscall.patch +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/arm64_kexec-arm64.c-workaround-for-getrandom-syscall.patch @@ -1,4 +1,4 @@ -From 10afeecd10499fbd64b2c68d3b076c6906df441f Mon Sep 17 00:00:00 2001 +From a99fc685214452aedabf9ac105bb99357006aa26 Mon Sep 17 00:00:00 2001 From: Andrea Adami Date: Wed, 5 Sep 2018 17:07:48 +0200 Subject: [PATCH] kexec-arm64.c: workaround for getrandom() syscall @@ -15,15 +15,15 @@ and | ../git/kexec/arch/arm64/kexec-arm64.c:499:12: warning: implicit declaration of function 'getrandom'; did you mean 'srandom'? [-Wimplicit-function-declaration] | result = getrandom(&fdt_val64, - Upstream-Status: Inappropriate [klibc specific] Signed-off-by: Andrea Adami + --- kexec/arch/arm64/kexec-arm64.c | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/kexec/arch/arm64/kexec-arm64.c b/kexec/arch/arm64/kexec-arm64.c -index 7a12479..8a7f5c5 100644 +index b143e86..88d4168 100644 --- a/kexec/arch/arm64/kexec-arm64.c +++ b/kexec/arch/arm64/kexec-arm64.c @@ -16,7 +16,11 @@ @@ -54,8 +54,5 @@ index 7a12479..8a7f5c5 100644 + GRND_NONBLOCK); +#endif if(result == -1) { - dbgprintf("%s: Reading random bytes failed.\n", + fprintf(stderr, "%s: Reading random bytes failed.\n", __func__); --- -2.7.4 - diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/arm64_kexec-image-header.h-add-missing-le64toh.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/arm64_kexec-image-header.h-add-missing-le64toh.patch index 7decbac4..cdcecdf4 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/arm64_kexec-image-header.h-add-missing-le64toh.patch +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/arm64_kexec-image-header.h-add-missing-le64toh.patch @@ -1,7 +1,7 @@ -From af7d06a753a4c377b7ffe587da67a6ba56048bea Mon Sep 17 00:00:00 2001 +From c5e7928217ee73640d25c6471c4619601cb1ba19 Mon Sep 17 00:00:00 2001 From: Andrea Adami Date: Thu, 19 Apr 2018 10:47:17 +0200 -Subject: [PATCH 2/2] kexec/arm64: image-header.h: add macro for le64toh +Subject: [PATCH] kexec/arm64: image-header.h: add macro for le64toh Fix @@ -35,6 +35,3 @@ index 158d411..10ed2d6 100644 /** * struct arm64_image_header - arm64 kernel image header. * --- -2.7.4 - diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/arm_crashdump-fix-buffer-align.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/arm_crashdump-fix-buffer-align.patch index c6afdfae..5323a81e 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/arm_crashdump-fix-buffer-align.patch +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/arm_crashdump-fix-buffer-align.patch @@ -1,15 +1,16 @@ -From 06b0d43c20f7c6200902d4c6db3d33416877f71c Mon Sep 17 00:00:00 2001 +From edf186f45d543e318400195cc25175387ff3f5c4 Mon Sep 17 00:00:00 2001 From: Andrea Adami Date: Sun, 26 Aug 2018 21:40:06 +0200 -Subject: [PATCH 1/1] arm- backport from oe-core +Subject: [PATCH] arm- backport from oe-core Signed-off-by: Andrea Adami + --- kexec/arch/arm/crashdump-arm.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/kexec/arch/arm/crashdump-arm.c b/kexec/arch/arm/crashdump-arm.c -index 2530b29..af2600d 100644 +index daa4788..3f72b38 100644 --- a/kexec/arch/arm/crashdump-arm.c +++ b/kexec/arch/arm/crashdump-arm.c @@ -240,6 +240,7 @@ int load_crashdump_segments(struct kexec_info *info, char *mod_cmdline) @@ -39,6 +40,3 @@ index 2530b29..af2600d 100644 crash_kernel_mem.start, crash_kernel_mem.end, -1, 0); --- -2.7.4 - diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/arm_crashdump.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/arm_crashdump.patch index 95962636..2d1d64db 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/arm_crashdump.patch +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/arm_crashdump.patch @@ -1,4 +1,4 @@ -From 6dae4752a53973c152b3e91e8a4ca74a486dae8b Mon Sep 17 00:00:00 2001 +From 8ee92bc915d650e188caaa3df0a798ac2002f64e Mon Sep 17 00:00:00 2001 From: OpenEmbedded Date: Wed, 11 Apr 2018 22:51:00 +0200 Subject: [PATCH] use our elf.h header @@ -17,7 +17,7 @@ Signed-off-by: Andrea Adami 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/kexec/arch/arm/crashdump-arm.c b/kexec/arch/arm/crashdump-arm.c -index daa4788..2530b29 100644 +index 3f72b38..af2600d 100644 --- a/kexec/arch/arm/crashdump-arm.c +++ b/kexec/arch/arm/crashdump-arm.c @@ -21,7 +21,7 @@ diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/kexec-x32.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/kexec-x32.patch index 26d18eb6..3c2594a5 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/kexec-x32.patch +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/kexec-x32.patch @@ -1,4 +1,10 @@ -x86_64: Add support to build kexec-tools with x32 ABI +From fd40eee42273220fb0050fe10744b10067adc0a7 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?An=C3=ADbal=20Lim=C3=B3n?= +Date: Fri, 31 Aug 2018 17:31:50 +0200 +Subject: [PATCH] x86_64: Add support to build kexec-tools with x32 ABI +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit Summary of changes, @@ -21,11 +27,11 @@ Signed-off-by: Mariano Lopez purgatory/arch/x86_64/Makefile | 4 +++- 4 files changed, 20 insertions(+), 1 deletion(-) -Index: kexec-tools-2.0.10/configure.ac -=================================================================== ---- kexec-tools-2.0.10.orig/configure.ac -+++ kexec-tools-2.0.10/configure.ac -@@ -56,6 +56,15 @@ case $target_cpu in +diff --git a/configure.ac b/configure.ac +index e05d601..c428146 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -54,6 +54,15 @@ case $target_cpu in ;; ia64|x86_64|alpha|m68k ) ARCH="$target_cpu" @@ -41,11 +47,11 @@ Index: kexec-tools-2.0.10/configure.ac ;; * ) AC_MSG_ERROR([unsupported architecture $target_cpu]) -Index: kexec-tools-2.0.10/kexec/arch/x86_64/kexec-elf-rel-x86_64.c -=================================================================== ---- kexec-tools-2.0.10.orig/kexec/arch/x86_64/kexec-elf-rel-x86_64.c -+++ kexec-tools-2.0.10/kexec/arch/x86_64/kexec-elf-rel-x86_64.c -@@ -8,7 +8,11 @@ int machine_verify_elf_rel(struct mem_eh +diff --git a/kexec/arch/x86_64/kexec-elf-rel-x86_64.c b/kexec/arch/x86_64/kexec-elf-rel-x86_64.c +index 761a4ed..1c0e3f8 100644 +--- a/kexec/arch/x86_64/kexec-elf-rel-x86_64.c ++++ b/kexec/arch/x86_64/kexec-elf-rel-x86_64.c +@@ -8,7 +8,11 @@ int machine_verify_elf_rel(struct mem_ehdr *ehdr) if (ehdr->ei_data != ELFDATA2LSB) { return 0; } @@ -57,10 +63,10 @@ Index: kexec-tools-2.0.10/kexec/arch/x86_64/kexec-elf-rel-x86_64.c return 0; } if (ehdr->e_machine != EM_X86_64) { -Index: kexec-tools-2.0.10/kexec/kexec-syscall.h -=================================================================== ---- kexec-tools-2.0.10.orig/kexec/kexec-syscall.h -+++ kexec-tools-2.0.10/kexec/kexec-syscall.h +diff --git a/kexec/kexec-syscall.h b/kexec/kexec-syscall.h +index 2a3794d..3e67078 100644 +--- a/kexec/kexec-syscall.h ++++ b/kexec/kexec-syscall.h @@ -31,8 +31,12 @@ #define __NR_kexec_load 268 #endif @@ -74,11 +80,11 @@ Index: kexec-tools-2.0.10/kexec/kexec-syscall.h #ifdef __s390x__ #define __NR_kexec_load 277 #endif -Index: kexec-tools-2.0.10/purgatory/arch/x86_64/Makefile -=================================================================== ---- kexec-tools-2.0.10.orig/purgatory/arch/x86_64/Makefile -+++ kexec-tools-2.0.10/purgatory/arch/x86_64/Makefile -@@ -23,4 +23,6 @@ x86_64_PURGATORY_SRCS += purgatory/arch/ +diff --git a/purgatory/arch/x86_64/Makefile b/purgatory/arch/x86_64/Makefile +index 7300937..4af11e4 100644 +--- a/purgatory/arch/x86_64/Makefile ++++ b/purgatory/arch/x86_64/Makefile +@@ -23,4 +23,6 @@ x86_64_PURGATORY_SRCS += purgatory/arch/i386/console-x86.c x86_64_PURGATORY_SRCS += purgatory/arch/i386/vga.c x86_64_PURGATORY_SRCS += purgatory/arch/i386/pic.c diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/klibc-reboot.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/klibc-reboot.patch index be1301df..6497fb41 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/klibc-reboot.patch +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/klibc-reboot.patch @@ -1,3 +1,13 @@ +From 9c99b0748dd0ea1aaf3836378ee75fa5af099a19 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Fri, 15 Mar 2019 00:22:40 -0700 + +--- + kexec/kexec.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/kexec/kexec.c b/kexec/kexec.c +index 157c577..5da0d67 100644 --- a/kexec/kexec.c +++ b/kexec/kexec.c @@ -901,7 +901,7 @@ static int my_exec(void) diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/powerpc-purgatory-Makefile-remove-unknown-flags.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/powerpc-purgatory-Makefile-remove-unknown-flags.patch index c3b2071b..8fb9f443 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/powerpc-purgatory-Makefile-remove-unknown-flags.patch +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/powerpc-purgatory-Makefile-remove-unknown-flags.patch @@ -1,8 +1,7 @@ -From 709dfe457c07aa0275f3da14634cbce5cf1029dc Mon Sep 17 00:00:00 2001 +From 3683b3f3e318fa711f6018f154d950c51d5b597a Mon Sep 17 00:00:00 2001 From: Andrea Adami Date: Thu, 19 Apr 2018 19:26:53 +0200 -Subject: [PATCH 3/3] powerpc/purgatory: Makefile: remove unknown flags for - powerpc +Subject: [PATCH] powerpc/purgatory: Makefile: remove unknown flags for powerpc Fix @@ -12,6 +11,7 @@ Fix Upstream-Status: Inappropriate [klibc specific] Signed-off-by: Andrea Adami + --- purgatory/arch/ppc/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) @@ -29,6 +29,3 @@ index c85c58a..cd44a16 100644 dist += purgatory/arch/ppc/Makefile $(ppc_PURGATORY_SRCS) \ purgatory/arch/ppc/purgatory-ppc.h purgatory/arch/ppc/ppc_asm.h --- -2.7.4 - diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/powerpc_change-the-memory-size-limit.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/powerpc_change-the-memory-size-limit.patch index dc97d930..67a3cac1 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/powerpc_change-the-memory-size-limit.patch +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/powerpc_change-the-memory-size-limit.patch @@ -1,4 +1,4 @@ -From b19b68eab567aa534cf8dec79fe18e3dc0e14043 Mon Sep 17 00:00:00 2001 +From 6fec72bd7264478c214169b0f30f649304bd39ea Mon Sep 17 00:00:00 2001 From: Quanyang Wang Date: Tue, 16 Jun 2015 12:59:57 +0800 Subject: [PATCH] powerpc: change the memory size limit @@ -16,15 +16,16 @@ locate_hole failed Upstream-Status: Pending Signed-off-by: Quanyang Wang + --- kexec/arch/ppc/kexec-ppc.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) -Index: kexec-tools-2.0.10/kexec/arch/ppc/kexec-ppc.h -=================================================================== ---- kexec-tools-2.0.10.orig/kexec/arch/ppc/kexec-ppc.h -+++ kexec-tools-2.0.10/kexec/arch/ppc/kexec-ppc.h -@@ -42,7 +42,7 @@ void dol_ppc_usage(void); +diff --git a/kexec/arch/ppc/kexec-ppc.h b/kexec/arch/ppc/kexec-ppc.h +index 04e728e..6bae9ec 100644 +--- a/kexec/arch/ppc/kexec-ppc.h ++++ b/kexec/arch/ppc/kexec-ppc.h +@@ -44,7 +44,7 @@ void dol_ppc_usage(void); * During inital setup the kernel does not map the whole memory but a part of * it. On Book-E that is 64MiB, 601 24MiB or 256MiB (if possible). */ diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/x86_basename.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/x86_basename.patch index 0d0ed23c..568f1975 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/x86_basename.patch +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/x86_basename.patch @@ -1,4 +1,4 @@ -From 5f47c30759684cea9a7a409646686c1a358b78ac Mon Sep 17 00:00:00 2001 +From 7823956149c78e1996c567d1965803456df090f8 Mon Sep 17 00:00:00 2001 From: OpenEmbedded Date: Wed, 11 Apr 2018 22:51:05 +0200 Subject: [PATCH] replace basename() with sscanf() @@ -13,7 +13,7 @@ Signed-off-by: Andrea Adami 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/kexec/arch/i386/x86-linux-setup.c b/kexec/arch/i386/x86-linux-setup.c -index 6c7d260..7850083 100644 +index 6cda12c..5514c1c 100644 --- a/kexec/arch/i386/x86-linux-setup.c +++ b/kexec/arch/i386/x86-linux-setup.c @@ -304,9 +304,9 @@ static int add_edd_entry(struct x86_linux_param_header *real_mode, diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/x86_kexec_test.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/x86_kexec_test.patch index 1c471f55..ecb0d85e 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/x86_kexec_test.patch +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/x86_kexec_test.patch @@ -1,4 +1,4 @@ -From 9de68ec5af8db2eff352f12da28145fe5e96244d Mon Sep 17 00:00:00 2001 +From e26fe77b0ac9acc2c8086586d267aa7160969d2d Mon Sep 17 00:00:00 2001 From: OpenEmbedded Date: Wed, 11 Apr 2018 22:51:05 +0200 Subject: [PATCH] do not build test @@ -14,7 +14,7 @@ Signed-off-by: Andrea Adami 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Makefile.in b/Makefile.in -index fb01134..440730d 100644 +index dbf1fb6..440730d 100644 --- a/Makefile.in +++ b/Makefile.in @@ -173,8 +173,8 @@ PSRCS:=$(foreach s, $(SRCS), $(PACKAGE_NAME)-$(PACKAGE_VERSION)/$(s)) diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/x86_sys_io.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/x86_sys_io.patch index 493f298a..ef9a411b 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/x86_sys_io.patch +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/x86_sys_io.patch @@ -1,4 +1,4 @@ -From a992ee014efacdc98d5658be9930dcab0eaadfd7 Mon Sep 17 00:00:00 2001 +From 444160260a11022ecd84cd605fe8c22b316e6546 Mon Sep 17 00:00:00 2001 From: OpenEmbedded Date: Wed, 11 Apr 2018 22:51:04 +0200 Subject: [PATCH] i386: replace with our io.h diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/x86_vfscanf.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/x86_vfscanf.patch index 2f0ad2ea..af8467a2 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/x86_vfscanf.patch +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/x86_vfscanf.patch @@ -1,4 +1,4 @@ -From 423c3f6f41fe04f4512e2a97a130f072d53dd4cf Mon Sep 17 00:00:00 2001 +From c6934455ec2337e6da7ea9fbc3486ce9beeb5d82 Mon Sep 17 00:00:00 2001 From: OpenEmbedded Date: Wed, 11 Apr 2018 22:51:05 +0200 Subject: [PATCH] x86-linux-setup.c: replace vfscanf() with vsscanf() @@ -13,7 +13,7 @@ Signed-off-by: Andrea Adami 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/kexec/arch/i386/x86-linux-setup.c b/kexec/arch/i386/x86-linux-setup.c -index 7850083..e190356 100644 +index 5514c1c..bdb28c6 100644 --- a/kexec/arch/i386/x86-linux-setup.c +++ b/kexec/arch/i386/x86-linux-setup.c @@ -200,6 +200,8 @@ static int file_scanf(const char *dir, const char *file, const char *scanf_line, diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-multimedia/conf/layer.conf b/Contrib-Inspur/openbmc/meta-openembedded/meta-multimedia/conf/layer.conf index e05a6525..74dd4a1b 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-multimedia/conf/layer.conf +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-multimedia/conf/layer.conf @@ -29,6 +29,6 @@ BBFILE_PRIORITY_multimedia-layer = "6" # cause compatibility issues with other layers LAYERVERSION_multimedia-layer = "1" -LAYERDEPENDS_multimedia-layer = "core" +LAYERDEPENDS_multimedia-layer = "core meta-python" -LAYERSERIES_COMPAT_multimedia-layer = "thud warrior" +LAYERSERIES_COMPAT_multimedia-layer = "thud warrior zeus" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-multimedia/recipes-connectivity/gupnp/gssdp.inc b/Contrib-Inspur/openbmc/meta-openembedded/meta-multimedia/recipes-connectivity/gupnp/gssdp.inc deleted file mode 100644 index 23f17edd..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-multimedia/recipes-connectivity/gupnp/gssdp.inc +++ /dev/null @@ -1,20 +0,0 @@ -SUMMARY = "Resource discovery and announcement over SSDP" -DESCRIPTION = "GSSDP implements resource discovery and announcement over SSDP (Simpe Service Discovery Protocol)." -LICENSE = "LGPLv2" -LIC_FILES_CHKSUM = "file://COPYING;md5=3bf50002aefd002f49e7bb854063f7e7" -DEPENDS = "glib-2.0 libsoup-2.4" - -inherit autotools pkgconfig gobject-introspection vala - -# Copy vapigen.m4 so that it doesn't get removed by vala class -# (normally this would be the right thing to do, but in gssdp the vapigen.m4 has only a custom macro) -do_configure_prepend() { - cp -f ${S}/m4/vapigen.m4 ${S}/m4/vapigen-custom.m4 || true -} - -PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'gtk', '', d)}" -PACKAGECONFIG[gtk] = "--with-gtk,--without-gtk,gtk+" - -PACKAGES =+ "gssdp-tools" - -FILES_gssdp-tools = "${bindir}/gssdp* ${datadir}/gssdp/*.glade" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-multimedia/recipes-connectivity/gupnp/gssdp_1.0.2.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-multimedia/recipes-connectivity/gupnp/gssdp_1.0.2.bb index b60d1ea4..6088ef19 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-multimedia/recipes-connectivity/gupnp/gssdp_1.0.2.bb +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-multimedia/recipes-connectivity/gupnp/gssdp_1.0.2.bb @@ -1,9 +1,24 @@ -require gssdp.inc - -inherit gtk-doc - -PACKAGECONFIG[gtk] = "--with-gtk,--without-gtk,gtk+3" +SUMMARY = "Resource discovery and announcement over SSDP" +DESCRIPTION = "GSSDP implements resource discovery and announcement over SSDP (Simpe Service Discovery Protocol)." +LICENSE = "LGPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=3bf50002aefd002f49e7bb854063f7e7" +DEPENDS = "glib-2.0 libsoup-2.4" SRC_URI = "${GNOME_MIRROR}/${BPN}/1.0/${BPN}-${PV}.tar.xz" SRC_URI[md5sum] = "b30c9a406853c6a3a012d151d6e7ad2c" SRC_URI[sha256sum] = "a1e17c09c7e1a185b0bd84fd6ff3794045a3cd729b707c23e422ff66471535dc" + +inherit autotools pkgconfig gobject-introspection vala gtk-doc + +# Copy vapigen.m4 so that it doesn't get removed by vala class +# (normally this would be the right thing to do, but in gssdp the vapigen.m4 has only a custom macro) +do_configure_prepend() { + cp -f ${S}/m4/vapigen.m4 ${S}/m4/vapigen-custom.m4 || true +} + +PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'gtk', '', d)}" +PACKAGECONFIG[gtk] = "--with-gtk,--without-gtk,gtk+3" + +PACKAGES =+ "gssdp-tools" + +FILES_gssdp-tools = "${bindir}/gssdp* ${datadir}/gssdp/*.glade" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-multimedia/recipes-connectivity/gupnp/gupnp-tools_0.8.13.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-multimedia/recipes-connectivity/gupnp/gupnp-tools_0.8.13.bb index 3ddb818d..7a6b872f 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-multimedia/recipes-connectivity/gupnp/gupnp-tools_0.8.13.bb +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-multimedia/recipes-connectivity/gupnp/gupnp-tools_0.8.13.bb @@ -8,6 +8,6 @@ RRECOMMENDS_${PN} = "adwaita-icon-theme" SRC_URI = "http://download.gnome.org/sources/${BPN}/0.8/${BPN}-${PV}.tar.xz" SRC_URI[md5sum] = "212d85ebce89b32468b59e1164050d40" SRC_URI[sha256sum] = "aa3decb9d532c0e2e505adc592f431fd81c0231ded2981129e87da13712479ed" -inherit distro_features_check autotools pkgconfig gettext +inherit features_check autotools pkgconfig gettext REQUIRED_DISTRO_FEATURES = "x11" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-multimedia/recipes-connectivity/rygel/rygel_0.37.0.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-multimedia/recipes-connectivity/rygel/rygel_0.37.0.bb index 4869d866..6ee02fcc 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-multimedia/recipes-connectivity/rygel/rygel_0.37.0.bb +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-multimedia/recipes-connectivity/rygel/rygel_0.37.0.bb @@ -12,7 +12,6 @@ DEPENDS = "libxml2 glib-2.0 gssdp gupnp gupnp-av gupnp-dlna gstreamer1.0 gstream RDEPENDS_${PN} = "gstreamer1.0-plugins-base-playback shared-mime-info" RRECOMMENDS_${PN} = "rygel-plugin-media-export" -GNOME_COMPRESS_TYPE = "xz" SRC_URI[archive.md5sum] = "f897167ad82e2e741582f2c393a76843" SRC_URI[archive.sha256sum] = "dfd3d885da3ac383ba0cfbf119995f4a0c2bca2cc8f8cfcd3df10cfec8f35cd7" @@ -38,10 +37,12 @@ do_install_append() { # Remove .la files for loadable modules rm -f ${D}/${libdir}/rygel-${LIBV}/engines/*.la rm -f ${D}/${libdir}/rygel-${LIBV}/plugins/*.la - if [ -e ${D}${libdir}/systemd/user/rygel.service ]; then + if [ -e ${D}${nonarch_libdir}/systemd/user/rygel.service ]; then mkdir -p ${D}${systemd_unitdir}/system - mv ${D}${libdir}/systemd/user/rygel.service ${D}${systemd_unitdir}/system - rmdir ${D}${libdir}/systemd/user ${D}${libdir}/systemd + mv ${D}${nonarch_libdir}/systemd/user/rygel.service ${D}${systemd_unitdir}/system + rmdir --ignore-fail-on-non-empty ${D}${nonarch_libdir}/systemd/user \ + ${D}${nonarch_libdir}/systemd \ + ${D}${nonarch_libdir} fi } diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-multimedia/recipes-dvb/tvheadend/tvheadend/0001-adjust-for-64bit-time_t.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-multimedia/recipes-dvb/tvheadend/tvheadend/0001-adjust-for-64bit-time_t.patch new file mode 100644 index 00000000..59bd4ef0 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-multimedia/recipes-dvb/tvheadend/tvheadend/0001-adjust-for-64bit-time_t.patch @@ -0,0 +1,176 @@ +From 81f29b028473a3d8ac0aaeb126fc0336a98bb077 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Tue, 12 Nov 2019 11:03:16 -0800 +Subject: [PATCH] adjust for 64bit time_t + +Break assumption about time_t being of certain size, and use intmax_t to +print it where needed + +Upstream-Status: Pending +Signed-off-by: Khem Raj +--- + src/cron.c | 4 ++-- + src/epggrab/module/psip.c | 2 +- + src/epggrab/otamux.c | 2 +- + src/parsers/parser_teletext.c | 2 +- + src/tvheadend.h | 6 +----- + src/webui/webui.c | 4 ++-- + 6 files changed, 8 insertions(+), 12 deletions(-) + +--- a/src/cron.c ++++ b/src/cron.c +@@ -329,9 +329,9 @@ cron_next ( cron_t *c, const time_t now, + *ret = mktime(&tmp); + if (*ret <= now) { + #ifndef CRON_TEST +- tvherror(LS_CRON, "invalid time, now %"PRItime_t", result %"PRItime_t, now, *ret); ++ tvherror(LS_CRON, "invalid time, now %"PRItime_t", result %"PRItime_t, (intmax_t)now, (intmax_t)*ret); + #else +- printf("ERROR: invalid time, now %"PRItime_t", result %"PRItime_t"\n", now, *ret); ++ printf("ERROR: invalid time, now %"PRItime_t", result %"PRItime_t"\n", (intmax_t)now, (intmax_t)*ret); + #endif + *ret = now + 600; + } +--- a/src/epggrab/module/psip.c ++++ b/src/epggrab/module/psip.c +@@ -383,14 +383,14 @@ _psip_eit_callback_channel + + tvhtrace(LS_PSIP, " %03d: [%s] eventid 0x%04x at %"PRItime_t", duration %d, title: '%s' (%d bytes)", + i, ch ? channel_get_name(ch, channel_blank_name) : "(null)", +- eventid, start, length, ++ eventid, (intmax_t)start, length, + lang_str_get(title, NULL), titlelen); + + save2 = changes2 = 0; + + ebc = epg_broadcast_find_by_time(ch, mod, start, stop, 1, &save2, &changes2); + tvhtrace(LS_PSIP, " eid=%5d, start=%"PRItime_t", stop=%"PRItime_t", ebc=%p", +- eventid, start, stop, ebc); ++ eventid, (intmax_t)start, (intmax_t)stop, ebc); + if (!ebc) goto next; + + save2 |= epg_broadcast_set_dvb_eid(ebc, eventid, &changes2); +--- a/src/epggrab/otamux.c ++++ b/src/epggrab/otamux.c +@@ -719,7 +719,7 @@ epggrab_ota_start_cb ( void *p ); + static void + epggrab_ota_next_arm( time_t next ) + { +- tvhtrace(LS_EPGGRAB, "next ota start event in %li seconds", next - time(NULL)); ++ tvhtrace(LS_EPGGRAB, "next ota start event in %jd seconds", (intmax_t)(next - time(NULL))); + gtimer_arm_absn(&epggrab_ota_start_timer, epggrab_ota_start_cb, NULL, next); + dbus_emit_signal_s64("/epggrab/ota", "next", next); + } +--- a/src/parsers/parser_teletext.c ++++ b/src/parsers/parser_teletext.c +@@ -625,7 +625,7 @@ tt_construct_unix_time(uint8_t *buf) + r[2] = mktime(&tm); + + for(i = 0; i < 3; i++) +- v[i] = labs(r[i] - t); ++ v[i] = (time_t)llabs((long long)(r[i] - t)); + + if(v[0] < v[1] && v[0] < v[2]) + return r[0]; +--- a/src/tvheadend.h ++++ b/src/tvheadend.h +@@ -332,11 +332,7 @@ void tvh_qsort_r(void *base, size_t nmem + # endif /* ULONG_MAX */ + #endif /* __WORDSIZE */ + +-#if __WORDSIZE == 32 && defined(PLATFORM_FREEBSD) +-#define PRItime_t "d" +-#else +-#define PRItime_t "ld" +-#endif ++#define PRItime_t "jd" + + /* transcoding */ + #define TVH_NAME_LEN 32 +--- a/src/webui/webui.c ++++ b/src/webui/webui.c +@@ -886,9 +886,9 @@ http_dvr_list_playlist(http_connection_t + bandwidth = ((8*fsize) / (durration*1024.0)); + strftime(buf, sizeof(buf), "%FT%T%z", localtime_r(&(de->de_start), &tm)); + +- htsbuf_qprintf(hq, "#EXTINF:%"PRItime_t",%s\n", durration, lang_str_get(de->de_title, NULL)); ++ htsbuf_qprintf(hq, "#EXTINF:%"PRItime_t",%s\n", (intmax_t)durration, lang_str_get(de->de_title, NULL)); + +- htsbuf_qprintf(hq, "#EXT-X-TARGETDURATION:%"PRItime_t"\n", durration); ++ htsbuf_qprintf(hq, "#EXT-X-TARGETDURATION:%"PRItime_t"\n", (intmax_t)durration); + uuid = idnode_uuid_as_str(&de->de_id, ubuf); + htsbuf_qprintf(hq, "#EXT-X-STREAM-INF:PROGRAM-ID=%s,BANDWIDTH=%d\n", uuid, bandwidth); + htsbuf_qprintf(hq, "#EXT-X-PROGRAM-DATE-TIME:%s\n", buf); +@@ -944,9 +944,9 @@ http_dvr_playlist(http_connection_t *hc, + strftime(buf, sizeof(buf), "%FT%T%z", localtime_r(&(de->de_start), &tm)); + + htsbuf_append_str(hq, "#EXTM3U\n"); +- htsbuf_qprintf(hq, "#EXTINF:%"PRItime_t",%s\n", durration, lang_str_get(de->de_title, NULL)); ++ htsbuf_qprintf(hq, "#EXTINF:%"PRItime_t",%s\n", (intmax_t)durration, lang_str_get(de->de_title, NULL)); + +- htsbuf_qprintf(hq, "#EXT-X-TARGETDURATION:%"PRItime_t"\n", durration); ++ htsbuf_qprintf(hq, "#EXT-X-TARGETDURATION:%"PRItime_t"\n", (intmax_t)durration); + uuid = idnode_uuid_as_str(&de->de_id, ubuf); + htsbuf_qprintf(hq, "#EXT-X-STREAM-INF:PROGRAM-ID=%s,BANDWIDTH=%d\n", uuid, bandwidth); + htsbuf_qprintf(hq, "#EXT-X-PROGRAM-DATE-TIME:%s\n", buf); +--- a/src/dvr/dvr_rec.c ++++ b/src/dvr/dvr_rec.c +@@ -723,7 +723,7 @@ static const char * + dvr_sub_start(const char *id, const char *fmt, const void *aux, char *tmp, size_t tmplen) + { + char buf[16]; +- snprintf(buf, sizeof(buf), "%"PRItime_t, (time_t)dvr_entry_get_start_time((dvr_entry_t *)aux, 0)); ++ snprintf(buf, sizeof(buf), "%"PRItime_t, (intmax_t)dvr_entry_get_start_time((dvr_entry_t *)aux, 0)); + return dvr_do_prefix(id, fmt, buf, tmp, tmplen); + } + +@@ -747,7 +747,7 @@ static const char * + dvr_sub_stop(const char *id, const char *fmt, const void *aux, char *tmp, size_t tmplen) + { + char buf[16]; +- snprintf(buf, sizeof(buf), "%"PRItime_t, (time_t)dvr_entry_get_stop_time((dvr_entry_t *)aux)); ++ snprintf(buf, sizeof(buf), "%"PRItime_t, (intmax_t)dvr_entry_get_stop_time((dvr_entry_t *)aux)); + return dvr_do_prefix(id, fmt, buf, tmp, tmplen); + } + +--- a/src/epggrab/module.c ++++ b/src/epggrab/module.c +@@ -582,7 +582,7 @@ static void _epggrab_socket_handler ( ep + + /* Process */ + if ( data ) { +- tvhinfo(mod->subsys, "%s: grab took %"PRItime_t" seconds", mod->id, tm2 - tm1); ++ tvhinfo(mod->subsys, "%s: grab took %"PRItime_t" seconds", mod->id, (intmax_t)(tm2 - tm1)); + epggrab_module_parse(mod, data); + + /* Failed */ +--- a/src/epggrab/module/opentv.c ++++ b/src/epggrab/module/opentv.c +@@ -486,7 +486,7 @@ opentv_parse_event_section_one + 1, &save, &changes); + tvhdebug(LS_OPENTV, "find by time start %"PRItime_t " stop " + "%"PRItime_t " eid %d = %p", +- ev.start, ev.stop, ev.eid, ebc); ++ (intmax_t)ev.start, (intmax_t)ev.stop, ev.eid, ebc); + save |= epg_broadcast_set_dvb_eid(ebc, ev.eid, &changes); + } else { + ebc = epg_broadcast_find_by_eid(ch, ev.eid); +--- a/src/webui/simpleui.c ++++ b/src/webui/simpleui.c +@@ -556,12 +556,12 @@ page_status(http_connection_t *hc, + "%s\n", + a.tm_year + 1900, a.tm_mon + 1, a.tm_mday, + a.tm_hour, a.tm_min, +- de->de_start, +- (time_t)dvr_entry_get_extra_time_pre(de), ++ (intmax_t)de->de_start, ++ (intmax_t)dvr_entry_get_extra_time_pre(de), + b.tm_year+1900, b.tm_mon + 1, b.tm_mday, + b.tm_hour, b.tm_min, +- de->de_stop, +- (time_t)dvr_entry_get_extra_time_post(de), ++ (intmax_t)de->de_stop, ++ (intmax_t)dvr_entry_get_extra_time_post(de), + buf); + + rstatus = val2str(de->de_sched_state, recstatustxt); diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-multimedia/recipes-dvb/tvheadend/tvheadend/0001-allocate-space-for-buf-on-heap.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-multimedia/recipes-dvb/tvheadend/tvheadend/0001-allocate-space-for-buf-on-heap.patch new file mode 100644 index 00000000..cbd76b6a --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-multimedia/recipes-dvb/tvheadend/tvheadend/0001-allocate-space-for-buf-on-heap.patch @@ -0,0 +1,46 @@ +From d4a405f87fc215c14e610a25b5a6b14060c1ef15 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Wed, 25 Dec 2019 13:53:52 -0800 +Subject: [PATCH] allocate space for buf on heap + +Avoids +| src/epggrab/module/xmltv.c:204:47: error: '%s' directive output may be truncated writing between 2 and 2147483645 bytes into a region of size 115 [-Werror=format-truncation=] +| 204 | snprintf(buf, sizeof(buf)-1, "ddprogid://%s/%s", mod->id, s); +| | ^~ + +Upstream-Status: Submitted [https://github.com/tvheadend/tvheadend/pull/1324] +Signed-off-by: Khem Raj +--- + src/epggrab/module/xmltv.c | 6 ++++-- + 1 file changed, 4 insertions(+), 2 deletions(-) + +diff --git a/src/epggrab/module/xmltv.c b/src/epggrab/module/xmltv.c +index 34ab05bdb..b1a956614 100644 +--- a/src/epggrab/module/xmltv.c ++++ b/src/epggrab/module/xmltv.c +@@ -197,11 +197,12 @@ static void parse_xmltv_dd_progid + (epggrab_module_t *mod, const char *s, char **uri, char **suri, + epg_episode_num_t *epnum) + { +- char buf[128]; + if (strlen(s) < 2) return; + ++ char* buf = (char *)malloc(strlen(s) + strlen(mod->id) + 13); ++ buf[strlen(s) + strlen(mod->id) + 12] = '\0'; + /* Raw URI */ +- snprintf(buf, sizeof(buf)-1, "ddprogid://%s/%s", mod->id, s); ++ snprintf(buf, strlen(s) + strlen(mod->id) + 12, "ddprogid://%s/%s", mod->id, s); + + /* SH - series without episode id so ignore */ + if (strncmp("SH", s, 2)) +@@ -219,6 +220,7 @@ static void parse_xmltv_dd_progid + if (buf[e+1]) sscanf(&buf[e+1], "%hu", &(epnum->e_num)); + } + } ++ free(buf); + } + + /** +-- +2.24.1 + diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-multimedia/recipes-dvb/tvheadend/tvheadend_git.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-multimedia/recipes-dvb/tvheadend/tvheadend_git.bb index dc6cd46b..20faef04 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-multimedia/recipes-dvb/tvheadend/tvheadend_git.bb +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-multimedia/recipes-dvb/tvheadend/tvheadend_git.bb @@ -8,9 +8,12 @@ DEPENDS = "avahi cmake-native dvb-apps libdvbcsa libpcre2 openssl uriparser zlib LICENSE = "GPLv3+" LIC_FILES_CHKSUM = "file://LICENSE.md;md5=9cae5acac2e9ee2fc3aec01ac88ce5db" -SRC_URI = "git://github.com/tvheadend/tvheadend.git" +SRC_URI = "git://github.com/tvheadend/tvheadend.git \ + file://0001-adjust-for-64bit-time_t.patch \ + file://0001-allocate-space-for-buf-on-heap.patch \ + " -SRCREV = "bdc2ae9e19520a10cdf0bec0fcc0050b32bc75ff" +SRCREV = "fda89e85e0b6ae796d8a09e178d3937aa7869270" PV = "4.3+git${SRCPV}" PKGV = "4.3+git${GITPKGV}" @@ -20,4 +23,8 @@ EXTRA_OECONF += "--arch=${TARGET_ARCH} \ --disable-hdhomerun_static \ --disable-ffmpeg_static \ --disable-libav \ + --python=python3 \ " + +CLEANBROKEN = "1" + diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-multimedia/recipes-multimedia/dca/dcadec/0001-define-BASELIB-make-variable.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-multimedia/recipes-multimedia/dca/dcadec/0001-define-BASELIB-make-variable.patch new file mode 100644 index 00000000..adce802b --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-multimedia/recipes-multimedia/dca/dcadec/0001-define-BASELIB-make-variable.patch @@ -0,0 +1,31 @@ +From 18cc69460d2a0c756880bd54fda36afb0173ea02 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Thu, 19 Dec 2019 19:47:36 -0800 +Subject: [PATCH] define BASELIB make variable + +This helps to override the default libdir from environment + +Upstream-Status: Submitted [https://github.com/foo86/dcadec/pull/61] +Signed-off-by: Khem Raj +--- + Makefile | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +diff --git a/Makefile b/Makefile +index a503698..8f323be 100644 +--- a/Makefile ++++ b/Makefile +@@ -7,8 +7,9 @@ API_PATCH = 0 + CFLAGS := -std=gnu99 -D_FILE_OFFSET_BITS=64 -Wall -Wextra -O3 -ffast-math -g -MMD $(CFLAGS) + + PREFIX ?= /usr/local ++BASELIB ?= lib + BINDIR ?= $(PREFIX)/bin +-LIBDIR ?= $(PREFIX)/lib ++LIBDIR ?= $(PREFIX)/$(BASELIB) + INCLUDEDIR ?= $(PREFIX)/include + + SRC_DIR := $(realpath $(dir $(lastword $(MAKEFILE_LIST)))) +-- +2.24.1 + diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-multimedia/recipes-multimedia/dca/dcadec_0.2.0.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-multimedia/recipes-multimedia/dca/dcadec_0.2.0.bb index 45b53c11..1a51abc3 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-multimedia/recipes-multimedia/dca/dcadec_0.2.0.bb +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-multimedia/recipes-multimedia/dca/dcadec_0.2.0.bb @@ -4,14 +4,16 @@ LICENSE = "LGPLv2.1" LIC_FILES_CHKSUM = "file://COPYING.LGPLv2.1;md5=4fbd65380cdd255951079008b364516c" SRCREV = "b93deed1a231dd6dd7e39b9fe7d2abe05aa00158" -SRC_URI = "git://github.com/foo86/dcadec.git;protocol=http" +SRC_URI = "git://github.com/foo86/dcadec.git;protocol=https \ + file://0001-define-BASELIB-make-variable.patch \ + " S = "${WORKDIR}/git" inherit lib_package -EXTRA_OEMAKE = "CONFIG_SHARED=1" +EXTRA_OEMAKE = "CONFIG_SHARED=1 PREFIX=${prefix} BASELIB=${baselib}" do_install() { - oe_runmake install DESTDIR="${D}" PREFIX="${prefix}" + oe_runmake install DESTDIR="${D}" } diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-multimedia/recipes-multimedia/dvb-apps/dvb-apps_1.1.1.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-multimedia/recipes-multimedia/dvb-apps/dvb-apps_1.1.1.bb index 3f491181..f354ef38 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-multimedia/recipes-multimedia/dvb-apps/dvb-apps_1.1.1.bb +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-multimedia/recipes-multimedia/dvb-apps/dvb-apps_1.1.1.bb @@ -11,6 +11,7 @@ SRC_URI = "hg://linuxtv.org/hg;module=dvb-apps;protocol=http \ file://0004-Makefile-remove-test.patch \ file://0005-libucsi-optimization-removal.patch \ file://0006-CA_SET_PID.patch \ + file://0001-dvbdate-Remove-Obsoleted-stime-API-calls.patch \ " S = "${WORKDIR}/${BPN}" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-multimedia/recipes-multimedia/dvb-apps/files/0001-dvbdate-Remove-Obsoleted-stime-API-calls.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-multimedia/recipes-multimedia/dvb-apps/files/0001-dvbdate-Remove-Obsoleted-stime-API-calls.patch new file mode 100644 index 00000000..9035b56f --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-multimedia/recipes-multimedia/dvb-apps/files/0001-dvbdate-Remove-Obsoleted-stime-API-calls.patch @@ -0,0 +1,32 @@ +From d6817dbaf407f65dd4af12c51736153fae8b217f Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Sat, 21 Dec 2019 08:36:11 -0800 +Subject: [PATCH] dvbdate: Remove Obsoleted stime API calls + +stime() has been deprecated in glibc 2.31+ its recommended to +replaced with clock_settime() + +Signed-off-by: Khem Raj +--- + util/dvbdate/dvbdate.c | 5 ++++- + 1 file changed, 4 insertions(+), 1 deletion(-) + +diff --git a/util/dvbdate/dvbdate.c b/util/dvbdate/dvbdate.c +index f0df437..492ed79 100644 +--- a/util/dvbdate/dvbdate.c ++++ b/util/dvbdate/dvbdate.c +@@ -309,7 +309,10 @@ int atsc_scan_date(time_t *rx_time, unsigned int to) + */ + int set_time(time_t * new_time) + { +- if (stime(new_time)) { ++ struct timespec ts; ++ ts.tv_sec = &new_time; ++ ts.tv_nsec = 0; ++ if (clock_settime(CLOCK_REALTIME, &ts)) { + perror("Unable to set time"); + return -1; + } +-- +2.24.1 + diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-multimedia/recipes-multimedia/fluidsynth/fluidsynth.inc b/Contrib-Inspur/openbmc/meta-openembedded/meta-multimedia/recipes-multimedia/fluidsynth/fluidsynth.inc index 234be02c..9ce65064 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-multimedia/recipes-multimedia/fluidsynth/fluidsynth.inc +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-multimedia/recipes-multimedia/fluidsynth/fluidsynth.inc @@ -5,8 +5,8 @@ LICENSE = "LGPL-2.1" LIC_FILES_CHKSUM = "file://LICENSE;md5=fc178bcd425090939a8b634d1d6a9594" SRC_URI = "git://github.com/FluidSynth/fluidsynth.git" -SRCREV = "7f11a9bf5c7304e04309a6ec9fc515ee815524bf" +SRCREV = "37c9ae2bf431a764032f023b3b2c0c0b86b7c272" S = "${WORKDIR}/git" -PV = "2.0.5" +PV = "2.1.0" inherit cmake pkgconfig lib_package diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-multimedia/recipes-multimedia/fluidsynth/fluidsynth_git.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-multimedia/recipes-multimedia/fluidsynth/fluidsynth_git.bb index 4f600a21..ba1ef6b1 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-multimedia/recipes-multimedia/fluidsynth/fluidsynth_git.bb +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-multimedia/recipes-multimedia/fluidsynth/fluidsynth_git.bb @@ -20,3 +20,4 @@ PACKAGECONFIG[jack] = "-Denable-jack=ON,-Denable-jack=OFF,jack" PACKAGECONFIG[pulseaudio] = "-Denable-pulseaudio=ON,-Denable-pulseaudio=OFF,pulseaudio" PACKAGECONFIG[portaudio] = "-Denable-portaudio=ON,-Denable-portaudio=OFF,portaudio-v19" PACKAGECONFIG[profiling] = "-Denable-profiling=ON,-Denable-profiling=OFF" +PACKAGECONFIG[readline] = "-Denable-readline=ON,-Denable-readline=OFF,readline" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-multimedia/recipes-multimedia/gerbera/files/gerbera.service b/Contrib-Inspur/openbmc/meta-openembedded/meta-multimedia/recipes-multimedia/gerbera/files/gerbera.service deleted file mode 100644 index 1b5a3ad3..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-multimedia/recipes-multimedia/gerbera/files/gerbera.service +++ /dev/null @@ -1,13 +0,0 @@ -[Unit] -Description=Start Gerbera, an UPnP media server -After=multi-user.target network-online.target -Wants=network-online.target - -[Service] -ExecStart=/usr/bin/gerbera -Environment='HOME=/root' -Type=simple -RemainAfterExit=yes - -[Install] -WantedBy=multi-user.target \ No newline at end of file diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-multimedia/recipes-multimedia/gerbera/gerbera_git.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-multimedia/recipes-multimedia/gerbera/gerbera_git.bb index 9c78da0d..c96e4c52 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-multimedia/recipes-multimedia/gerbera/gerbera_git.bb +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-multimedia/recipes-multimedia/gerbera/gerbera_git.bb @@ -4,12 +4,10 @@ LICENSE = "GPLv2" LIC_FILES_CHKSUM = "file://LICENSE.md;md5=25cdec9afe3f1f26212ead6bd2f7fac8" SRC_URI = "git://github.com/v00d00/gerbera.git;protocol=https \ - file://gerbera.service \ " -PV = "1.3.0+git${SRCPV}" -# v1.3.0 -SRCREV = "c7a81fb41e446ee67b3eac90e2caecd6de651a16" +PV = "1.3.2" +SRCREV = "42b035ea9098c02af503d6391a0ed56d973aaf23" S = "${WORKDIR}/git" @@ -26,8 +24,6 @@ EXTRA_OECMAKE = "-DWITH_JS=FALSE -DWITH_MAGIC=FALSE -DWITH_EXIF=FALSE -DLIBUUID_ do_install_append() { install -d ${D}/root/.config/ - install -d ${D}${systemd_system_unitdir} - install -m 0644 ${WORKDIR}/gerbera.service ${D}${systemd_system_unitdir}/ } FILES_${PN} += "/root/.config/" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-1.0/gst-shark_0.2.1.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-1.0/gst-shark_0.2.1.bb deleted file mode 100644 index 5409f320..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-1.0/gst-shark_0.2.1.bb +++ /dev/null @@ -1,38 +0,0 @@ -SUMMARY = "Gst-Shark Tracers" -DESCRIPTION = "Benchmarks and profiling tools for GStreamer" -HOMEPAGE = "https://developer.ridgerun.com/wiki/index.php?title=GstShark" -SECTION = "multimedia" -LICENSE = "GPLv2+" - -LIC_FILES_CHKSUM = "file://COPYING;md5=e1caa368743492879002ad032445fa97" - -DEPENDS = "gstreamer1.0 gstreamer1.0-plugins-base gstreamer1.0-plugins-bad " - -SRCBRANCH ?= "master" - -SRCREV_base = "a60b3996fe3376d42334fc89014e9d6f6af62899" -SRCREV_common = "b64f03f6090245624608beb5d2fff335e23a01c0" - -SRC_URI = " \ - git://github.com/RidgeRun/gst-shark.git;protocol=https;branch=${SRCBRANCH};name=base \ - git://anongit.freedesktop.org/git/gstreamer/common.git;protocol=https;destsuffix=git/common;name=common; \ - " - -S = "${WORKDIR}/git" - -PACKAGECONFIG_CONFARGS = " \ - --disable-graphviz \ - --enable-gtk-doc=no \ -" - -FILES_${PN} += "\ - ${libdir}/gstreamer-1.0/libgstsharktracers.so \ - ${libdir}/gstreamer-1.0/libgstsharktracers.la \ -" - -inherit autotools gettext - -do_configure() { - ${S}/autogen.sh --noconfigure - oe_runconf -} diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-1.0/gst-shark_git.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-1.0/gst-shark_git.bb new file mode 100644 index 00000000..d047caef --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-1.0/gst-shark_git.bb @@ -0,0 +1,40 @@ +SUMMARY = "Gst-Shark Tracers" +DESCRIPTION = "Benchmarks and profiling tools for GStreamer" +HOMEPAGE = "https://developer.ridgerun.com/wiki/index.php?title=GstShark" +SECTION = "multimedia" +LICENSE = "GPLv2+" + +LIC_FILES_CHKSUM = "file://COPYING;md5=e1caa368743492879002ad032445fa97" + +DEPENDS = "gstreamer1.0 gstreamer1.0-plugins-base gstreamer1.0-plugins-bad " + +SRCBRANCH ?= "master" + +PV = "0.6.1" + +SRCREV_base = "c41a05cc9e2310c2f73eda4b4f0b4477bf4479c5" +SRCREV_common = "88e512ca7197a45c4114f7fa993108f23245bf50" + +SRC_URI = " \ + git://github.com/RidgeRun/gst-shark.git;protocol=https;branch=${SRCBRANCH};name=base \ + git://gitlab.freedesktop.org/gstreamer/common.git;protocol=https;destsuffix=git/common;name=common; \ + " + +S = "${WORKDIR}/git" + +PACKAGECONFIG_CONFARGS = " \ + --disable-graphviz \ + --enable-gtk-doc=no \ +" + +FILES_${PN} += "\ + ${libdir}/gstreamer-1.0/libgstsharktracers.so \ + ${libdir}/gstreamer-1.0/libgstsharktracers.la \ +" + +inherit autotools gettext + +do_configure() { + ${S}/autogen.sh --noconfigure + oe_runconf +} diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-1.0/gstd.inc b/Contrib-Inspur/openbmc/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-1.0/gstd.inc deleted file mode 100644 index 455d8968..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-1.0/gstd.inc +++ /dev/null @@ -1,21 +0,0 @@ -DESCRIPTION = "Gstreamer Daemon 1.0" -SUMMARY = "GStreamer framework for controlling audio and video streaming using TCP connection messages" -HOMEPAGE = "https://developer.ridgerun.com/wiki/index.php?title=Gstd-1.0" -SECTION = "multimedia" -LICENSE = "GPLv2+" - -DEPENDS = "gstreamer1.0 gstreamer1.0-plugins-base gstreamer1.0-plugins-bad gstreamer1.0-rtsp-server json-glib libdaemon" - -SRCBRANCH ?= "master" -SRCREV = "3526d0ffdbccc375db7d5fe33a72c68b134657c2" -SRC_URI = "git://git@github.com/RidgeRun/gstd-1.x.git;protocol=https;branch=${SRCBRANCH} \ - file://0001-gstd-yocto-compatibility.patch \ - file://0001-Look-for-gtk-doc.make-in-builddir.patch \ - " -S = "${WORKDIR}/git" - -inherit autotools pkgconfig gettext gtk-doc - -do_configure_prepend() { - sed -i -e "s|include \$(top_builddir)/docs/gtk-doc.make||g" ${S}/docs/reference/gstd/Makefile.am -} diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-1.0/gstd/0001-Look-for-gtk-doc.make-in-builddir.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-1.0/gstd/0001-Look-for-gtk-doc.make-in-builddir.patch deleted file mode 100644 index 5a286164..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-1.0/gstd/0001-Look-for-gtk-doc.make-in-builddir.patch +++ /dev/null @@ -1,32 +0,0 @@ -From a84e9a6e1dca685eda072d58b58556b5b35cb4c8 Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Mon, 10 Sep 2018 21:16:50 -0700 -Subject: [PATCH] Look for gtk-doc.make in builddir - -this is evident when S != B because gtkdocize -generates this file and its actually built into -build area - -Upstream-Status: Submitted [https://github.com/RidgeRun/gstd-1.x/pull/39] - -Signed-off-by: Khem Raj ---- - docs/reference/gstd/Makefile.am | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/docs/reference/gstd/Makefile.am b/docs/reference/gstd/Makefile.am -index f860fa1..62870da 100644 ---- a/docs/reference/gstd/Makefile.am -+++ b/docs/reference/gstd/Makefile.am -@@ -66,7 +66,7 @@ GTKDOC_LIBS=$(top_builddir)/gstd/libgstd-core.la - - - # This includes the standard gtk-doc make rules, copied by gtkdocize. --include $(top_srcdir)/docs/gtk-doc.make -+include $(top_builddir)/docs/gtk-doc.make - - # Comment this out if you want 'make check' to test you doc status - # and run some sanity checks --- -2.18.0 - diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-1.0/gstd/0001-gstd-yocto-compatibility.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-1.0/gstd/0001-gstd-yocto-compatibility.patch index ffcc6ea9..c1c88999 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-1.0/gstd/0001-gstd-yocto-compatibility.patch +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-1.0/gstd/0001-gstd-yocto-compatibility.patch @@ -7,19 +7,14 @@ Subject: [PATCH] gstd:yocto compatibility gstd/Makefile.am | 2 +- 3 files changed, 9 insertions(+), 3 deletions(-) -diff --git a/gstd/Makefile.am b/gstd/Makefile.am -index 13c551d..11fe202 100644 --- a/gstd/Makefile.am +++ b/gstd/Makefile.am -@@ -49,7 +49,7 @@ bin_PROGRAMS = gstd +@@ -74,7 +74,7 @@ gstd_CFLAGS = $(GST_CFLAGS) \ + -DGSTD_LOG_STATE_DIR=\"$(gstdlogstatedir)\" \ + -DGSTD_RUN_STATE_DIR=\"$(gstdrunstatedir)\" - gstd_SOURCES = gstd.c - gstd_CFLAGS = $(GST_CFLAGS) $(GIO_CFLAGS) $(GJSON_CFLAGS) --gstd_LDFLAGS = $(GST_LIBS) $(GIO_LIBS) $(GJSON_LIBS) -Wl,-rpath -Wl,$(libdir) -+gstd_LDFLAGS = $(GST_LIBS) $(GIO_LIBS) $(GJSON_LIBS) +-gstd_LDFLAGS = $(GST_LIBS) $(GIO_LIBS) $(GIO_UNIX_LIBS) $(GJSON_LIBS) $(LIBD_LIBS) -Wl,-rpath -Wl,$(libdir) ++gstd_LDFLAGS = $(GST_LIBS) $(GIO_LIBS) $(GIO_UNIX_LIBS) $(GJSON_LIBS) $(LIBD_LIBS) gstd_LDADD = libgstd-core.la gstdincludedir = $(includedir)/gstd --- -1.9.1 - diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-1.0/gstd_1.0.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-1.0/gstd_1.0.bb deleted file mode 100644 index 94f6b575..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-1.0/gstd_1.0.bb +++ /dev/null @@ -1,3 +0,0 @@ -require gstd.inc - -LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-1.0/gstd_git.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-1.0/gstd_git.bb new file mode 100644 index 00000000..1834a836 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-1.0/gstd_git.bb @@ -0,0 +1,33 @@ +DESCRIPTION = "Gstreamer Daemon" +SUMMARY = "GStreamer framework for controlling audio and video streaming using TCP connection messages" +HOMEPAGE = "https://developer.ridgerun.com/wiki/index.php?title=Gstd-1.0" +SECTION = "multimedia" +LICENSE = "GPLv2+" +LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263" + +DEPENDS = "gstreamer1.0 gstreamer1.0-plugins-base gstreamer1.0-plugins-bad gstreamer1.0-rtsp-server json-glib libdaemon jansson" + +SRCBRANCH ?= "master" +SRCREV = "a6621a5778b234651aa2adbbe304d906a3fa64d1" +SRC_URI = "git://git@github.com/RidgeRun/gstd-1.x.git;protocol=https;branch=${SRCBRANCH} \ + file://0001-gstd-yocto-compatibility.patch \ + " +S = "${WORKDIR}/git" + +# Remove the +really when upstream version is > 1.0 +PV = "1.0+really0.8.0" + +inherit autotools pkgconfig gettext gtk-doc + +do_install_append() { + rm -fr ${D}${localstatedir}/run ${D}/run ${D}${bindir}/gst-client ${D}${bindir}/gstd-client + if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then + install -d ${D}${sysconfdir}/tmpfiles.d + echo "d /run/${BPN} - - - -" \ + > ${D}${sysconfdir}/tmpfiles.d/${BPN}.conf + echo "d /${localstatedir}/log/${BPN} 0755 root root -" \ + >> ${D}${sysconfdir}/tmpfiles.d/${BPN}.conf + fi + ln -sf gst-client-1.0 ${D}${bindir}/gst-client + ln -sf gst-client-1.0 ${D}${bindir}/gstd-client +} diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-multimedia/recipes-multimedia/juce/nativesdk-projucer_git.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-multimedia/recipes-multimedia/juce/nativesdk-projucer_git.bb deleted file mode 100644 index 7836bae6..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-multimedia/recipes-multimedia/juce/nativesdk-projucer_git.bb +++ /dev/null @@ -1,3 +0,0 @@ -inherit nativesdk -include projucer.inc -BBCLASSEXTEND = "nativesdk" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-multimedia/recipes-multimedia/juce/projucer-native_git.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-multimedia/recipes-multimedia/juce/projucer-native_git.bb deleted file mode 100644 index fb54fb9e..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-multimedia/recipes-multimedia/juce/projucer-native_git.bb +++ /dev/null @@ -1,3 +0,0 @@ -inherit native -include projucer.inc -BBCLASSEXTEND = "native" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-multimedia/recipes-multimedia/juce/projucer.inc b/Contrib-Inspur/openbmc/meta-openembedded/meta-multimedia/recipes-multimedia/juce/projucer.inc index 63ed9e90..fc8baa45 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-multimedia/recipes-multimedia/juce/projucer.inc +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-multimedia/recipes-multimedia/juce/projucer.inc @@ -4,23 +4,38 @@ JUCE supported platforms, including Linux and Embedded Linux." SECTION = "utils" HOMEPAGE = "http://juce.com/" LICENSE = "GPLv3" -LIC_FILES_CHKSUM = "file://README.md;md5=65c50b4ff3522b99436da100536ccd1c" +LIC_FILES_CHKSUM = "file://LICENSE.md;md5=a20f91622a47d4e4af9340d5d3f1a2d8" -inherit pkgconfig +inherit pkgconfig features_check -DEPENDS = "libx11 libxext libxinerama libxrandr libxcursor freetype alsa-lib curl" +REQUIRED_DISTRO_FEATURES = "x11" -SRCREV = "4f41f28b47d01b939559123d145b4e5860528bb7" +DEPENDS = "libx11 libxext libxinerama libxrandr libxcursor freetype alsa-lib curl bzip2 libpng harfbuzz glib-2.0 libpcre" +DEPENDS_append_libc-musl = " libexecinfo" + +SRCREV = "724ae27c71ef809b836df06713cf9e50bc14162b" BRANCH = "master" -SRC_URI = "git://github.com/WeAreROLI/JUCE.git;protocol=https;branch=${BRANCH}" +SRC_URI = "git://github.com/WeAreROLI/JUCE.git;protocol=https;branch=${BRANCH} \ + file://0001-Disable-webkit-component.patch \ +" S = "${WORKDIR}/git" -PV = "5.0.1" +PV = "5.4.5" JUCE_PROJUCER_BUILD_PATH = "${B}/extras/Projucer/Builds" JUCE_PROJUCER_MAKEFILE_PATH = "${JUCE_PROJUCER_BUILD_PATH}/LinuxMakefile" JUCE_PROJUCER = "${JUCE_PROJUCER_MAKEFILE_PATH}/build/Projucer" +# export dummy TARGET_ARCH that doesn't do much, +# but disables "-march=native" optimization which does +# not work on cross builds +EXTRA_OEMAKE = "V=1 JUCE_ARCH_LABEL=${TARGET_ARCH} TARGET_ARCH='-g'" + +LDFLAGS_append_mipsarcho32 = " -latomic" +LDFLAGS_append_powerpc = " -latomic" +LDFLAGS_append_riscv64 = " -latomic" +LDFLAGS_append_armv5 = " -latomic" + do_configure() { cd ${JUCE_PROJUCER_MAKEFILE_PATH} CONFIG=Release oe_runmake clean @@ -35,3 +50,5 @@ do_install() { install -d ${D}${bindir} install -m 0755 ${JUCE_PROJUCER} ${D}${bindir} } +# error: '_NL_IDENTIFICATION_LANGUAGE' was not declared in this scope +COMPATIBLE_HOST_libc-musl = "null" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-multimedia/recipes-multimedia/juce/projucer/0001-Disable-webkit-component.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-multimedia/recipes-multimedia/juce/projucer/0001-Disable-webkit-component.patch new file mode 100644 index 00000000..3728439c --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-multimedia/recipes-multimedia/juce/projucer/0001-Disable-webkit-component.patch @@ -0,0 +1,83 @@ +From df7190f430f30ee522f56f9714d42ee796f0d5ff Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Mon, 2 Dec 2019 22:18:41 -0800 +Subject: [PATCH] Disable webkit component + +It asks for enable JUCER_ENABLE_GPL_MODE + +Signed-off-by: Khem Raj +--- + extras/Projucer/Builds/LinuxMakefile/Makefile | 10 +++++----- + extras/Projucer/JuceLibraryCode/AppConfig.h | 4 ++-- + 2 files changed, 7 insertions(+), 7 deletions(-) + +diff --git a/extras/Projucer/Builds/LinuxMakefile/Makefile b/extras/Projucer/Builds/LinuxMakefile/Makefile +index 25b490460..8960f5bc6 100644 +--- a/extras/Projucer/Builds/LinuxMakefile/Makefile ++++ b/extras/Projucer/Builds/LinuxMakefile/Makefile +@@ -35,13 +35,13 @@ ifeq ($(CONFIG),Debug) + TARGET_ARCH := -march=native + endif + +- JUCE_CPPFLAGS := $(DEPFLAGS) -DLINUX=1 -DDEBUG=1 -D_DEBUG=1 -DJUCER_LINUX_MAKE_6D53C8B4=1 -DJUCE_APP_VERSION=5.4.5 -DJUCE_APP_VERSION_HEX=0x50405 $(shell pkg-config --cflags x11 xinerama xext freetype2 webkit2gtk-4.0 gtk+-x11-3.0) -pthread -I../../JuceLibraryCode -I../../../../modules $(CPPFLAGS) ++ JUCE_CPPFLAGS := $(DEPFLAGS) -DLINUX=1 -DDEBUG=1 -D_DEBUG=1 -DJUCER_LINUX_MAKE_6D53C8B4=1 -DJUCE_APP_VERSION=5.4.5 -DJUCE_APP_VERSION_HEX=0x50405 $(shell pkg-config --cflags x11 xinerama xext freetype2) -pthread -I../../JuceLibraryCode -I../../../../modules $(CPPFLAGS) + JUCE_CPPFLAGS_APP := -DJucePlugin_Build_VST=0 -DJucePlugin_Build_VST3=0 -DJucePlugin_Build_AU=0 -DJucePlugin_Build_AUv3=0 -DJucePlugin_Build_RTAS=0 -DJucePlugin_Build_AAX=0 -DJucePlugin_Build_Standalone=0 -DJucePlugin_Build_Unity=0 + JUCE_TARGET_APP := Projucer + + JUCE_CFLAGS += $(JUCE_CPPFLAGS) $(TARGET_ARCH) -g -ggdb -O0 $(CFLAGS) + JUCE_CXXFLAGS += $(JUCE_CFLAGS) -std=c++11 $(CXXFLAGS) +- JUCE_LDFLAGS += $(TARGET_ARCH) -L$(JUCE_BINDIR) -L$(JUCE_LIBDIR) $(shell pkg-config --libs x11 xinerama xext freetype2 webkit2gtk-4.0 gtk+-x11-3.0) -lrt -ldl -lpthread $(LDFLAGS) ++ JUCE_LDFLAGS += $(TARGET_ARCH) -L$(JUCE_BINDIR) -L$(JUCE_LIBDIR) $(shell pkg-config --libs x11 xinerama xext freetype2) -lrt -ldl -lpthread $(LDFLAGS) + + CLEANCMD = rm -rf $(JUCE_OUTDIR)/$(TARGET) $(JUCE_OBJDIR) + endif +@@ -56,13 +56,13 @@ ifeq ($(CONFIG),Release) + TARGET_ARCH := -march=native + endif + +- JUCE_CPPFLAGS := $(DEPFLAGS) -DLINUX=1 -DNDEBUG=1 -DJUCER_LINUX_MAKE_6D53C8B4=1 -DJUCE_APP_VERSION=5.4.5 -DJUCE_APP_VERSION_HEX=0x50405 $(shell pkg-config --cflags x11 xinerama xext freetype2 webkit2gtk-4.0 gtk+-x11-3.0) -pthread -I../../JuceLibraryCode -I../../../../modules $(CPPFLAGS) ++ JUCE_CPPFLAGS := $(DEPFLAGS) -DLINUX=1 -DNDEBUG=1 -DJUCER_LINUX_MAKE_6D53C8B4=1 -DJUCE_APP_VERSION=5.4.5 -DJUCE_APP_VERSION_HEX=0x50405 $(shell pkg-config --cflags x11 xinerama xext freetype2) -pthread -I../../JuceLibraryCode -I../../../../modules $(CPPFLAGS) + JUCE_CPPFLAGS_APP := -DJucePlugin_Build_VST=0 -DJucePlugin_Build_VST3=0 -DJucePlugin_Build_AU=0 -DJucePlugin_Build_AUv3=0 -DJucePlugin_Build_RTAS=0 -DJucePlugin_Build_AAX=0 -DJucePlugin_Build_Standalone=0 -DJucePlugin_Build_Unity=0 + JUCE_TARGET_APP := Projucer + + JUCE_CFLAGS += $(JUCE_CPPFLAGS) $(TARGET_ARCH) -O3 $(CFLAGS) + JUCE_CXXFLAGS += $(JUCE_CFLAGS) -std=c++11 $(CXXFLAGS) +- JUCE_LDFLAGS += $(TARGET_ARCH) -L$(JUCE_BINDIR) -L$(JUCE_LIBDIR) $(shell pkg-config --libs x11 xinerama xext freetype2 webkit2gtk-4.0 gtk+-x11-3.0) -fvisibility=hidden -lrt -ldl -lpthread $(LDFLAGS) ++ JUCE_LDFLAGS += $(TARGET_ARCH) -L$(JUCE_BINDIR) -L$(JUCE_LIBDIR) $(shell pkg-config --libs x11 xinerama xext freetype2) -fvisibility=hidden -lrt -ldl -lpthread $(LDFLAGS) + + CLEANCMD = rm -rf $(JUCE_OUTDIR)/$(TARGET) $(JUCE_OBJDIR) + endif +@@ -136,7 +136,7 @@ all : $(JUCE_OUTDIR)/$(JUCE_TARGET_APP) + + $(JUCE_OUTDIR)/$(JUCE_TARGET_APP) : $(OBJECTS_APP) $(RESOURCES) + @command -v pkg-config >/dev/null 2>&1 || { echo >&2 "pkg-config not installed. Please, install it."; exit 1; } +- @pkg-config --print-errors x11 xinerama xext freetype2 webkit2gtk-4.0 gtk+-x11-3.0 ++ @pkg-config --print-errors x11 xinerama xext freetype2 + @echo Linking "Projucer - App" + -$(V_AT)mkdir -p $(JUCE_BINDIR) + -$(V_AT)mkdir -p $(JUCE_LIBDIR) +diff --git a/extras/Projucer/JuceLibraryCode/AppConfig.h b/extras/Projucer/JuceLibraryCode/AppConfig.h +index dffd5af75..53302bd24 100644 +--- a/extras/Projucer/JuceLibraryCode/AppConfig.h ++++ b/extras/Projucer/JuceLibraryCode/AppConfig.h +@@ -32,7 +32,7 @@ + // BEGIN SECTION A + + #ifndef JUCER_ENABLE_GPL_MODE +- #define JUCER_ENABLE_GPL_MODE 0 ++ #define JUCER_ENABLE_GPL_MODE 1 + #endif + + // END SECTION A +@@ -180,7 +180,7 @@ + // juce_gui_extra flags: + + #ifndef JUCE_WEB_BROWSER +- //#define JUCE_WEB_BROWSER 1 ++ #define JUCE_WEB_BROWSER 0 + #endif + + #ifndef JUCE_ENABLE_LIVE_CONSTANT_EDITOR +-- +2.24.0 + diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-multimedia/recipes-multimedia/juce/projucer_git.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-multimedia/recipes-multimedia/juce/projucer_git.bb new file mode 100644 index 00000000..f408f6f1 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-multimedia/recipes-multimedia/juce/projucer_git.bb @@ -0,0 +1,2 @@ +include projucer.inc +BBCLASSEXTEND = "native nativesdk" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-multimedia/recipes-multimedia/libao/libao_1.2.0.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-multimedia/recipes-multimedia/libao/libao_1.2.0.bb index 4c0976e4..05134614 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-multimedia/recipes-multimedia/libao/libao_1.2.0.bb +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-multimedia/recipes-multimedia/libao/libao_1.2.0.bb @@ -28,7 +28,6 @@ python populate_packages_prepend () { } PACKAGECONFIG ?= "${@bb.utils.filter('DISTRO_FEATURES', 'alsa pulseaudio', d)}" -PACKAGECONFIG[esound] = "--enable-esd,--disable-esd,esound" PACKAGECONFIG[alsa] = "--enable-alsa,--disable-alsa,alsa-lib" PACKAGECONFIG[pulseaudio] = "--enable-pulse,--disable-pulse,pulseaudio" FILES_${BPN}-ckport = "${libdir}/ckport" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-multimedia/recipes-multimedia/libcamera/files/0001-meson-import-python3-to-use-also-from-sysroot.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-multimedia/recipes-multimedia/libcamera/files/0001-meson-import-python3-to-use-also-from-sysroot.patch new file mode 100644 index 00000000..fc56a685 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-multimedia/recipes-multimedia/libcamera/files/0001-meson-import-python3-to-use-also-from-sysroot.patch @@ -0,0 +1,61 @@ +From ea47e53911213d71e997eb34848ae72735bacc82 Mon Sep 17 00:00:00 2001 +From: madhavank27 +Date: Thu, 9 Jan 2020 07:42:18 +0100 +Subject: [PATCH] meson: import python3 to use also from sysroot + +importing python module can provide the exact path +which can be used in desktop build as well as from +any build system + +Upstream-Status: Pending +Signed-off-by: madhavank27 +--- + include/libcamera/meson.build | 4 +++- + src/libcamera/meson.build | 4 +++- + 2 files changed, 6 insertions(+), 2 deletions(-) + +diff --git a/include/libcamera/meson.build b/include/libcamera/meson.build +index 99abf06..83525e2 100644 +--- a/include/libcamera/meson.build ++++ b/include/libcamera/meson.build +@@ -21,13 +21,15 @@ include_dir = join_paths(libcamera_include_dir, 'libcamera') + install_headers(libcamera_api, + subdir : include_dir) + ++python_mod = import('python3').find_python() ++ + gen_controls = files('../../src/libcamera/gen-controls.py') + + control_ids_h = custom_target('control_ids_h', + input : files('../../src/libcamera/control_ids.yaml', 'control_ids.h.in'), + output : 'control_ids.h', + depend_files : gen_controls, +- command : [gen_controls, '-o', '@OUTPUT@', '@INPUT@'], ++ command : [python_mod, gen_controls, '-o', '@OUTPUT@', '@INPUT@'], + install : true, + install_dir : join_paths('include', include_dir)) + +diff --git a/src/libcamera/meson.build b/src/libcamera/meson.build +index c4f965b..243935b 100644 +--- a/src/libcamera/meson.build ++++ b/src/libcamera/meson.build +@@ -65,13 +65,15 @@ if libudev.found() + ]) + endif + ++python_mod = import('python3').find_python() ++ + gen_controls = files('gen-controls.py') + + control_ids_cpp = custom_target('control_ids_cpp', + input : files('control_ids.yaml', 'control_ids.cpp.in'), + output : 'control_ids.cpp', + depend_files : gen_controls, +- command : [gen_controls, '-o', '@OUTPUT@', '@INPUT@']) ++ command : [python_mod, gen_controls, '-o', '@OUTPUT@', '@INPUT@']) + + libcamera_sources += control_ids_cpp + libcamera_sources += control_ids_h +-- +2.7.4 + diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-multimedia/recipes-multimedia/libcamera/libcamera.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-multimedia/recipes-multimedia/libcamera/libcamera.bb new file mode 100644 index 00000000..b95bf6d0 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-multimedia/recipes-multimedia/libcamera/libcamera.bb @@ -0,0 +1,31 @@ +SUMMARY = "Linux libcamera framework" +SECTION = "libs" + +LICENSE = "GPL-2.0 & LGPL-2.1" + +LIC_FILES_CHKSUM = "\ + file://licenses/gnu-gpl-2.0.txt;md5=b234ee4d69f5fce4486a80fdaf4a4263 \ + file://licenses/gnu-lgpl-2.1.txt;md5=4b54a1fd55a448865a0b32d41598759d \ +" + +SRC_URI = " \ + git://linuxtv.org/libcamera.git;protocol=git \ + file://0001-meson-import-python3-to-use-also-from-sysroot.patch \ +" + +SRCREV = "53eab996809e826bc914e4c34c78fe74d86f8dc4" + +PV = "201910+git${SRCPV}" + +S = "${WORKDIR}/git" + +DEPENDS = "python3-pyyaml-native udev" +DEPENDS += "${@bb.utils.contains('DISTRO_FEATURES', 'qt', 'qtbase qtbase-native', '', d)}" + +RDEPENDS_${PN} = "${@bb.utils.contains('DISTRO_FEATURES', 'wayland qt', 'qtwayland', '', d)}" + +inherit meson pkgconfig python3native + +FILES_${PN}-dev = "${includedir} ${libdir}/pkgconfig" +FILES_${PN} += " ${libdir}/libcamera.so" + diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-multimedia/recipes-multimedia/libdc1394/libdc1394_2.2.6.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-multimedia/recipes-multimedia/libdc1394/libdc1394_2.2.6.bb new file mode 100755 index 00000000..c9ade4ac --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-multimedia/recipes-multimedia/libdc1394/libdc1394_2.2.6.bb @@ -0,0 +1,21 @@ +SUMMARY = "Capture and control API for IIDC compliant cameras" +HOMEPAGE = "http://sourceforge.net/projects/libdc1394/" +SECTION = "libs" +LICENSE = "LGPL-2.0" +LIC_FILES_CHKSUM = "file://COPYING;md5=c848e78d9a4a5cc69906178e4d6fbd64" + +# libsdl to provide sdl.m4 with AM_PATH_SDL +DEPENDS += "libusb1 libraw1394 libsdl \ + ${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'libxv virtual/libx11', '', d)} \ + ${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'virtual/libgl', '', d)} \ + ${@bb.utils.contains('DISTRO_FEATURES', 'opengl x11', 'libglu', '', d)} \ +" + +SRC_URI = "${SOURCEFORGE_MIRROR}/${BPN}/${BP}.tar.gz \ + file://install_examples.patch \ + " +SRC_URI[md5sum] = "9fad67bbff08fe2818d5ec81802ec89f" +SRC_URI[sha256sum] = "2b905fc9aa4eec6bdcf6a2ae5f5ba021232739f5be047dec8fe8dd6049c10fed" +inherit autotools pkgconfig + +EXTRA_OECONF += "--disable-doxygen-doc --disable-examples" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-multimedia/recipes-multimedia/libdc1394/libdc1394_git.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-multimedia/recipes-multimedia/libdc1394/libdc1394_git.bb deleted file mode 100755 index 3b3ac83e..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-multimedia/recipes-multimedia/libdc1394/libdc1394_git.bb +++ /dev/null @@ -1,26 +0,0 @@ -SUMMARY = "Capture and control API for IIDC compliant cameras" -HOMEPAGE = "http://sourceforge.net/projects/libdc1394/" -SECTION = "libs" -LICENSE = "LGPL-2.0" -LIC_FILES_CHKSUM = "file://COPYING;md5=c848e78d9a4a5cc69906178e4d6fbd64" - -# libsdl to provide sdl.m4 with AM_PATH_SDL -DEPENDS += "libusb1 libraw1394 libsdl \ - ${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'libxv virtual/libx11', '', d)} \ - ${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'virtual/libgl', '', d)} \ - ${@bb.utils.contains('DISTRO_FEATURES', 'opengl x11', 'libglu', '', d)} \ -" - -PV = "2.2.5+gitr${SRCPV}" - -SRCREV = "5e78f51936fd09db0c0f742c7d2c0e5bdbbeed56" - -SRC_URI = "git://git.code.sf.net/p/libdc1394/code;branch=master;protocol=git \ - file://install_examples.patch \ - " - -S = "${WORKDIR}/git/${BPN}" - -inherit autotools-brokensep pkgconfig - -EXTRA_OECONF += "--disable-doxygen-doc --disable-examples" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-multimedia/recipes-multimedia/mimic/mimic_1.2.0.2.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-multimedia/recipes-multimedia/mimic/mimic_1.2.0.2.bb index cb4b1b36..b313b110 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-multimedia/recipes-multimedia/mimic/mimic_1.2.0.2.bb +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-multimedia/recipes-multimedia/mimic/mimic_1.2.0.2.bb @@ -25,3 +25,5 @@ SRC_URI = "git://github.com/MycroftAI/mimic.git" inherit autotools S = "${WORKDIR}/git" + +CPPFLAGS_append = " -Wno-error" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-multimedia/recipes-multimedia/musicpd/libmpdclient_2.16.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-multimedia/recipes-multimedia/musicpd/libmpdclient_2.16.bb index 455e76fc..235e63e4 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-multimedia/recipes-multimedia/musicpd/libmpdclient_2.16.bb +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-multimedia/recipes-multimedia/musicpd/libmpdclient_2.16.bb @@ -1,5 +1,5 @@ SUMMARY = "C client library for the Music Player Daemon" -LICENSE = "BSD" +LICENSE = "BSD-3-Clause" LIC_FILES_CHKSUM = "file://COPYING;md5=06b9dfd2f197dc514d8ef06549684b77" HOMEPAGE = "https://www.musicpd.org/libs/libmpdclient/" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-multimedia/recipes-multimedia/musicpd/mpd/0001-StringBuffer-Include-cstddef-for-size_t.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-multimedia/recipes-multimedia/musicpd/mpd/0001-StringBuffer-Include-cstddef-for-size_t.patch new file mode 100644 index 00000000..1d869aa8 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-multimedia/recipes-multimedia/musicpd/mpd/0001-StringBuffer-Include-cstddef-for-size_t.patch @@ -0,0 +1,27 @@ +From c14877071f14b218835f7fb034dea11bd1ba56f5 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Wed, 25 Dec 2019 09:40:16 -0800 +Subject: [PATCH] StringBuffer: Include cstddef for size_t + +Fixes +a.cpp:3:1: error: 'size_t' does not name a type + 3 | size_t s; + | ^~~~~~ +a.cpp:2:1: note: 'size_t' is defined in header ''; did you forget to '#include '? + +Upstream-Status: Submitted [https://github.com/MusicPlayerDaemon/MPD/pull/697] +Signed-off-by: Khem Raj +--- + src/util/StringBuffer.hxx | 1 + + 1 file changed, 1 insertion(+) + +--- a/src/util/StringBuffer.hxx ++++ b/src/util/StringBuffer.hxx +@@ -31,6 +31,7 @@ + #define STRING_BUFFER_HPP + + #include ++#include + + /** + * A statically allocated string buffer. diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-multimedia/recipes-multimedia/musicpd/mpd/0002-Include-stdexcept-for-runtime_error.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-multimedia/recipes-multimedia/musicpd/mpd/0002-Include-stdexcept-for-runtime_error.patch new file mode 100644 index 00000000..1f118671 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-multimedia/recipes-multimedia/musicpd/mpd/0002-Include-stdexcept-for-runtime_error.patch @@ -0,0 +1,38 @@ +From 06f78ced45f6622a2e02cd09e6a2c0c22a98b89e Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Wed, 25 Dec 2019 09:41:55 -0800 +Subject: [PATCH 2/2] Include for runtime_error + +Fixes + +../git/src/LocateUri.cxx:65:14: error: 'runtime_error' is not a member of 'std' + 65 | throw std::runtime_error("Unsupported URI scheme"); + | ^~~~~~~~~~~~~ + +Upstream-Status: Inappropriate [ Fixed differently upstream ] +Signed-off-by: Khem Raj +--- + src/LocateUri.cxx | 1 + + src/pcm/PcmConvert.cxx | 1 + + 2 files changed, 2 insertions(+) + +--- a/src/LocateUri.cxx ++++ b/src/LocateUri.cxx +@@ -17,6 +17,7 @@ + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + */ + ++#include + #include "config.h" + #include "LocateUri.hxx" + #include "client/Client.hxx" +--- a/src/pcm/PcmConvert.cxx ++++ b/src/pcm/PcmConvert.cxx +@@ -17,6 +17,7 @@ + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + */ + ++#include + #include "config.h" + #include "PcmConvert.hxx" + #include "ConfiguredResampler.hxx" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-multimedia/recipes-multimedia/musicpd/mpd_0.20.22.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-multimedia/recipes-multimedia/musicpd/mpd_0.20.22.bb index 6c6ad423..133ee6e7 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-multimedia/recipes-multimedia/musicpd/mpd_0.20.22.bb +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-multimedia/recipes-multimedia/musicpd/mpd_0.20.22.bb @@ -19,6 +19,8 @@ DEPENDS += " \ SRC_URI = " \ git://github.com/MusicPlayerDaemon/MPD;branch=v0.20.x \ file://mpd.conf.in \ + file://0001-StringBuffer-Include-cstddef-for-size_t.patch \ + file://0002-Include-stdexcept-for-runtime_error.patch \ " SRCREV = "9274bc15bc41bbe490fde847f8422468cc20375d" S = "${WORKDIR}/git" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-multimedia/recipes-multimedia/musicpd/ncmpc_0.33.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-multimedia/recipes-multimedia/musicpd/ncmpc_0.33.bb deleted file mode 100644 index d4ebe176..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-multimedia/recipes-multimedia/musicpd/ncmpc_0.33.bb +++ /dev/null @@ -1,37 +0,0 @@ -SUMMARY = "A curses client for the Music Player Daemon" -LICENSE = "GPLv2" -LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe" -HOMEPAGE = "https://www.musicpd.org/clients/ncmpc/" - -inherit meson - -DEPENDS += " \ - boost \ - ncurses \ - libmpdclient \ -" - -PACKAGECONFIG ??= "colors locale mouse nls regex help_screen library_screen search_screen song_screen key_screen lyrics_screen outputs_screen" - -PACKAGECONFIG[colors] = "-Dcolors=true,-Dcolors=false" -PACKAGECONFIG[lirc] = "-Dlirc=enabled,-Dlirc=disabled,lirc" -PACKAGECONFIG[locale] = "-Dlocale=enabled,-Dlocale=disabled" -PACKAGECONFIG[mini] = "-Dmini=true,-Dmini=false" -PACKAGECONFIG[mouse] = "-Dmouse=enabled,-Dmouse=disabled" -PACKAGECONFIG[nls] = "-Dnls=enabled,-Dnls=disabled,gettext-native" -PACKAGECONFIG[regex] = "-Dregex=enabled,-Dregex=disabled,pcre" - -PACKAGECONFIG[help_screen] = "-Dhelp_screen=true,-Dhelp_screen=false" -PACKAGECONFIG[library_screen] = "-Dlibrary_screen=true,-Dlibrary_screen=false" -PACKAGECONFIG[search_screen] = "-Dsearch_screen=true,-Dsearch_screen=false" -PACKAGECONFIG[song_screen] = "-Dsong_screen=true,-Dsong_screen=false" -PACKAGECONFIG[key_screen] = "-Dkey_screen=true,-Dkey_screen=false" -PACKAGECONFIG[lyrics_screen] = "-Dlyrics_screen=true,-Dlyrics_screen=false" -PACKAGECONFIG[outputs_screen] = "-Doutputs_screen=true,-Doutputs_screen=false" -PACKAGECONFIG[chat_screen] = "-Dchat_screen=true,-Dchat_screen=false" - -SRC_URI = " \ - git://github.com/MusicPlayerDaemon/ncmpc \ -" -SRCREV = "8e98f89ff07b140e6357dab2a9a9f6432ae0e521" -S = "${WORKDIR}/git" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-multimedia/recipes-multimedia/musicpd/ncmpc_0.34.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-multimedia/recipes-multimedia/musicpd/ncmpc_0.34.bb new file mode 100644 index 00000000..0c99c7c6 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-multimedia/recipes-multimedia/musicpd/ncmpc_0.34.bb @@ -0,0 +1,37 @@ +SUMMARY = "A curses client for the Music Player Daemon" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe" +HOMEPAGE = "https://www.musicpd.org/clients/ncmpc/" + +inherit meson + +DEPENDS += " \ + boost \ + ncurses \ + libmpdclient \ +" + +PACKAGECONFIG ??= "colors locale mouse nls regex help_screen library_screen search_screen song_screen key_screen lyrics_screen outputs_screen" + +PACKAGECONFIG[colors] = "-Dcolors=true,-Dcolors=false" +PACKAGECONFIG[lirc] = "-Dlirc=enabled,-Dlirc=disabled,lirc" +PACKAGECONFIG[locale] = "-Dlocale=enabled,-Dlocale=disabled" +PACKAGECONFIG[mini] = "-Dmini=true,-Dmini=false" +PACKAGECONFIG[mouse] = "-Dmouse=enabled,-Dmouse=disabled" +PACKAGECONFIG[nls] = "-Dnls=enabled,-Dnls=disabled,gettext-native" +PACKAGECONFIG[regex] = "-Dregex=enabled,-Dregex=disabled,pcre" + +PACKAGECONFIG[help_screen] = "-Dhelp_screen=true,-Dhelp_screen=false" +PACKAGECONFIG[library_screen] = "-Dlibrary_screen=true,-Dlibrary_screen=false" +PACKAGECONFIG[search_screen] = "-Dsearch_screen=true,-Dsearch_screen=false" +PACKAGECONFIG[song_screen] = "-Dsong_screen=true,-Dsong_screen=false" +PACKAGECONFIG[key_screen] = "-Dkey_screen=true,-Dkey_screen=false" +PACKAGECONFIG[lyrics_screen] = "-Dlyrics_screen=true,-Dlyrics_screen=false" +PACKAGECONFIG[outputs_screen] = "-Doutputs_screen=true,-Doutputs_screen=false" +PACKAGECONFIG[chat_screen] = "-Dchat_screen=true,-Dchat_screen=false" + +SRC_URI = " \ + git://github.com/MusicPlayerDaemon/ncmpc \ +" +SRCREV = "79cf9905355f25bc5cc6d5a05d2846d75342f554" +S = "${WORKDIR}/git" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-multimedia/recipes-multimedia/mycroft/files/0001-Remove-python-venv.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-multimedia/recipes-multimedia/mycroft/files/0001-Remove-python-venv.patch index c03bccd3..245785c8 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-multimedia/recipes-multimedia/mycroft/files/0001-Remove-python-venv.patch +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-multimedia/recipes-multimedia/mycroft/files/0001-Remove-python-venv.patch @@ -1,7 +1,7 @@ -From 6272f36080bd440a5825b526f4c06223c5bb9fbb Mon Sep 17 00:00:00 2001 +From 07fce2101d83b5334de78e661ba0361c2874ebdf Mon Sep 17 00:00:00 2001 From: Alistair Francis Date: Mon, 18 Mar 2019 16:30:45 -0700 -Subject: [PATCH 1/5] Remove python venv +Subject: [PATCH 1/7] Remove python venv Remove the python venv requirements and instead just use the native python and pip pacakges. @@ -9,75 +9,77 @@ python and pip pacakges. Signed-off-by: Alistair Francis Upstream-Status: Inappropriate [embedded specific] --- - dev_setup.sh | 36 ------------------------------------ + dev_setup.sh | 39 --------------------------------------- start-mycroft.sh | 13 ------------- venv-activate.sh | 44 +------------------------------------------- - 3 files changed, 1 insertion(+), 92 deletions(-) + 3 files changed, 1 insertion(+), 95 deletions(-) diff --git a/dev_setup.sh b/dev_setup.sh -index e0b07bf25cf..aed54b2167a 100755 +index cf81ed25f0f..99a44bfd8a7 100755 --- a/dev_setup.sh +++ b/dev_setup.sh -@@ -310,18 +310,6 @@ function install_deps() { +@@ -338,18 +338,6 @@ ${YELLOW}Make sure to manually install:$BLUE git python3 python-setuptools pytho fi } -VIRTUALENV_ROOT=${VIRTUALENV_ROOT:-"${TOP}/.venv"} - -function install_venv() { -- ${opt_python} -m venv "${VIRTUALENV_ROOT}/" --without-pip +- $opt_python -m venv "${VIRTUALENV_ROOT}/" --without-pip - # Force version of pip for reproducability, but there is nothing special - # about this version. Update whenever a new version is released and - # verified functional. - curl https://bootstrap.pypa.io/3.3/get-pip.py | "${VIRTUALENV_ROOT}/bin/python" - 'pip==18.0.0' - # Function status depending on if pip exists -- [ -x "${VIRTUALENV_ROOT}/bin/pip" ] +- [[ -x ${VIRTUALENV_ROOT}/bin/pip ]] -} - install_deps # Configure to use the standard commit template for -@@ -355,15 +343,7 @@ else +@@ -383,17 +371,6 @@ else fi fi --if [ ! -x "${VIRTUALENV_ROOT}/bin/activate" ] ; then +-if [[ ! -x ${VIRTUALENV_ROOT}/bin/activate ]] ; then - if ! install_venv ; then -- echo "Failed to set up virtualenv for mycroft, exiting setup." +- echo 'Failed to set up virtualenv for mycroft, exiting setup.' - exit 1 - fi -fi - - # Start the virtual environment +-# Start the virtual environment -source "${VIRTUALENV_ROOT}/bin/activate" - cd "${TOP}" - +-cd "$TOP" +- # Install pep8 pre-commit hook -@@ -380,22 +360,6 @@ fi + HOOK_FILE='./.git/hooks/pre-commit' + if [[ -n $INSTALL_PRECOMMIT_HOOK ]] || grep -q 'MYCROFT DEV SETUP' $HOOK_FILE; then +@@ -408,22 +385,6 @@ fi - PYTHON=$( python -c "import sys;print('python{}.{}'.format(sys.version_info[0], sys.version_info[1]))" ) + PYTHON=$(python -c "import sys;print('python{}.{}'.format(sys.version_info[0], sys.version_info[1]))") -# Add mycroft-core to the virtualenv path -# (This is equivalent to typing 'add2virtualenv $TOP', except -# you can't invoke that shell function from inside a script) -VENV_PATH_FILE="${VIRTUALENV_ROOT}/lib/$PYTHON/site-packages/_virtualenv_path_extensions.pth" --if [ ! -f "$VENV_PATH_FILE" ] ; then -- echo "import sys; sys.__plen = len(sys.path)" > "$VENV_PATH_FILE" || return 1 +-if [[ ! -f $VENV_PATH_FILE ]] ; then +- echo 'import sys; sys.__plen = len(sys.path)' > "$VENV_PATH_FILE" || return 1 - echo "import sys; new=sys.path[sys.__plen:]; del sys.path[sys.__plen:]; p=getattr(sys,'__egginsert',0); sys.path[p:p]=new; sys.__egginsert = p+len(new)" >> "$VENV_PATH_FILE" || return 1 -fi - -if ! grep -q "$TOP" $VENV_PATH_FILE ; then -- echo "Adding mycroft-core to virtualenv path" +- echo 'Adding mycroft-core to virtualenv path' - sed -i.tmp '1 a\ -'"$TOP"' --' "${VENV_PATH_FILE}" +-' "$VENV_PATH_FILE" -fi - # install required python modules if ! pip install -r requirements.txt ; then - echo "Warning: Failed to install all requirements. Continue? y/N" + echo 'Warning: Failed to install all requirements. Continue? y/N' diff --git a/start-mycroft.sh b/start-mycroft.sh -index b9514a61ba5..64e0216a62f 100755 +index 0f88430982e..3aed2f189d4 100755 --- a/start-mycroft.sh +++ b/start-mycroft.sh @@ -20,7 +20,6 @@ script=${0} @@ -130,7 +132,7 @@ index b9514a61ba5..64e0216a62f 100755 "sdkdoc") - source-venv cd doc - make ${opt} + make ${_params} cd .. diff --git a/venv-activate.sh b/venv-activate.sh index d1e7bcb44e7..10b46d4de3b 100644 @@ -188,5 +190,5 @@ index d1e7bcb44e7..10b46d4de3b 100644 main $@ -- -2.21.0 +2.23.0 diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-multimedia/recipes-multimedia/mycroft/files/0002-dev_setup.sh-Remove-the-git-dependency.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-multimedia/recipes-multimedia/mycroft/files/0002-dev_setup.sh-Remove-the-git-dependency.patch new file mode 100644 index 00000000..637854fd --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-multimedia/recipes-multimedia/mycroft/files/0002-dev_setup.sh-Remove-the-git-dependency.patch @@ -0,0 +1,48 @@ +From 88696037af52d6a7f57bc0fb82598de1a25365cc Mon Sep 17 00:00:00 2001 +From: Alistair Francis +Date: Fri, 29 Mar 2019 16:09:57 -0700 +Subject: [PATCH 2/7] dev_setup.sh: Remove the git dependency + +Signed-off-by: Alistair Francis +Upstream-Status: Inappropriate [embedded specific] +--- + dev_setup.sh | 16 ---------------- + 1 file changed, 16 deletions(-) + +diff --git a/dev_setup.sh b/dev_setup.sh +index 99a44bfd8a7..672b27080c2 100755 +--- a/dev_setup.sh ++++ b/dev_setup.sh +@@ -340,10 +340,6 @@ ${YELLOW}Make sure to manually install:$BLUE git python3 python-setuptools pytho + + install_deps + +-# Configure to use the standard commit template for +-# this repo only. +-git config commit.template .gitmessage +- + # Check whether to build mimic (it takes a really long time!) + build_mimic='n' + if [[ $opt_forcemimicbuild == true ]] ; then +@@ -371,18 +367,6 @@ else + fi + fi + +-# Install pep8 pre-commit hook +-HOOK_FILE='./.git/hooks/pre-commit' +-if [[ -n $INSTALL_PRECOMMIT_HOOK ]] || grep -q 'MYCROFT DEV SETUP' $HOOK_FILE; then +- if [[ ! -f $HOOK_FILE ]] || grep -q 'MYCROFT DEV SETUP' $HOOK_FILE; then +- echo 'Installing PEP8 check as precommit-hook' +- echo "#! $(which python)" > $HOOK_FILE +- echo '# MYCROFT DEV SETUP' >> $HOOK_FILE +- cat ./scripts/pre-commit >> $HOOK_FILE +- chmod +x $HOOK_FILE +- fi +-fi +- + PYTHON=$(python -c "import sys;print('python{}.{}'.format(sys.version_info[0], sys.version_info[1]))") + + # install required python modules +-- +2.23.0 + diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-multimedia/recipes-multimedia/mycroft/files/0002-pip-requirements-Remove-ones-installed-by-OE.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-multimedia/recipes-multimedia/mycroft/files/0002-pip-requirements-Remove-ones-installed-by-OE.patch deleted file mode 100644 index ca79d00b..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-multimedia/recipes-multimedia/mycroft/files/0002-pip-requirements-Remove-ones-installed-by-OE.patch +++ /dev/null @@ -1,62 +0,0 @@ -From 142bc3912ea9e1a4ecf4db0e2bec3049aa416464 Mon Sep 17 00:00:00 2001 -From: Alistair Francis -Date: Tue, 19 Mar 2019 13:32:54 -0700 -Subject: [PATCH 2/5] pip requirements: Remove ones installed by OE - -Signed-off-by: Alistair Francis -Upstream-Status: Inappropriate [embedded specific] ---- - requirements.txt | 14 -------------- - test-requirements.txt | 1 - - 2 files changed, 15 deletions(-) - -diff --git a/requirements.txt b/requirements.txt -index 7e4faf48182..29536e990ac 100644 ---- a/requirements.txt -+++ b/requirements.txt -@@ -1,20 +1,10 @@ --six==1.10.0 --requests==2.20.0 - gTTS==2.0.3 - gTTS-token==1.1.3 --PyAudio==0.2.11 - pyee==5.0.0 - SpeechRecognition==3.8.1 --tornado==4.5.3 - websocket-client==0.54.0 - requests-futures==0.9.5 --pyalsaaudio==0.8.2 - xmlrunner==1.7.7 --pyserial==3.0 --psutil==5.2.1 --pocketsphinx==0.1.0 --inflection==0.3.1 --pillow==4.1.1 - python-dateutil==2.6.0 - pychromecast==0.7.7 - python-vlc==1.1.2 -@@ -26,10 +16,6 @@ msm==0.7.3 - msk==0.3.12 - adapt-parser==0.3.2 - padatious==0.4.6 --fann2==1.0.7 - padaos==0.1.9 - precise-runner==0.2.1 - petact==0.1.2 -- --# dev setup tools --pep8==1.7.0 -diff --git a/test-requirements.txt b/test-requirements.txt -index 8ada8157c95..eb4e364a9b4 100644 ---- a/test-requirements.txt -+++ b/test-requirements.txt -@@ -1,6 +1,5 @@ - pep8==1.7.0 - coveralls==1.5.0 --pytest==3.5.0 - pytest-cov==2.5.1 - cov-core==1.15.0 - mock==2.0.0 --- -2.21.0 - diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-multimedia/recipes-multimedia/mycroft/files/0003-Use-python3-and-pip3-instead-of-python-and-pip.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-multimedia/recipes-multimedia/mycroft/files/0003-Use-python3-and-pip3-instead-of-python-and-pip.patch deleted file mode 100644 index a1f04b4b..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-multimedia/recipes-multimedia/mycroft/files/0003-Use-python3-and-pip3-instead-of-python-and-pip.patch +++ /dev/null @@ -1,135 +0,0 @@ -From 87b94e54fefa1f83b41030444fc87b421c97b2c5 Mon Sep 17 00:00:00 2001 -From: Alistair Francis -Date: Tue, 19 Mar 2019 13:38:44 -0700 -Subject: [PATCH 3/5] Use python3 and pip3 instead of python and pip - -Signed-off-by: Alistair Francis -Upstream-Status: Inappropriate [embedded specific] ---- - bin/mycroft-cli-client | 2 +- - bin/mycroft-pip | 2 +- - bin/mycroft-say-to | 2 +- - bin/mycroft-skill-testrunner | 4 ++-- - bin/mycroft-speak | 2 +- - dev_setup.sh | 10 +++++----- - scripts/install-pocketsphinx.sh | 2 +- - 7 files changed, 12 insertions(+), 12 deletions(-) - -diff --git a/bin/mycroft-cli-client b/bin/mycroft-cli-client -index f40a316e3f6..de2040d9e67 100755 ---- a/bin/mycroft-cli-client -+++ b/bin/mycroft-cli-client -@@ -21,4 +21,4 @@ DIR="$( dirname "$SOURCE" )" - source "$DIR/../venv-activate.sh" -q - - # Invoke the Command Line Interface --python -m mycroft.client.text $@ -+python3 -m mycroft.client.text $@ -diff --git a/bin/mycroft-pip b/bin/mycroft-pip -index a42b16b847a..81bd5bfb3cf 100755 ---- a/bin/mycroft-pip -+++ b/bin/mycroft-pip -@@ -21,4 +21,4 @@ DIR="$( dirname "$SOURCE" )" - source "$DIR/../venv-activate.sh" -q - - # Install pip packages within the Mycroft venv --pip $@ -\ No newline at end of file -+pip3 $@ -\ No newline at end of file -diff --git a/bin/mycroft-say-to b/bin/mycroft-say-to -index 964e16eb0c5..5575969715c 100755 ---- a/bin/mycroft-say-to -+++ b/bin/mycroft-say-to -@@ -22,4 +22,4 @@ DIR="$( pwd )" - source "$DIR/../venv-activate.sh" -q - - # Send a message to be spoken --output=$(python -m mycroft.messagebus.send "recognizer_loop:utterance" "{\"utterances\": [\"$@\"], \"lang\": \"en-us\"}") -+output=$(python3 -m mycroft.messagebus.send "recognizer_loop:utterance" "{\"utterances\": [\"$@\"], \"lang\": \"en-us\"}") -diff --git a/bin/mycroft-skill-testrunner b/bin/mycroft-skill-testrunner -index 9699a4d138f..282f5ca65b0 100755 ---- a/bin/mycroft-skill-testrunner -+++ b/bin/mycroft-skill-testrunner -@@ -22,7 +22,7 @@ source "$DIR/../venv-activate.sh" -q - - # Invoke the individual skill tester - if [ "$#" -eq 0 ] ; then -- python -m test.integrationtests.skills.runner . -+ python3 -m test.integrationtests.skills.runner . - else -- python -m test.integrationtests.skills.runner $@ -+ python3 -m test.integrationtests.skills.runner $@ - fi -\ No newline at end of file -diff --git a/bin/mycroft-speak b/bin/mycroft-speak -index 51facf29189..c65556f1173 100755 ---- a/bin/mycroft-speak -+++ b/bin/mycroft-speak -@@ -22,4 +22,4 @@ DIR="$( pwd )" - source "$DIR/../venv-activate.sh" -q - - # Send a message to be spoken --output=$(python -m mycroft.messagebus.send "speak" "{\"utterance\": \"$@\"}") -\ No newline at end of file -+output=$(python3 -m mycroft.messagebus.send "speak" "{\"utterance\": \"$@\"}") -\ No newline at end of file -diff --git a/dev_setup.sh b/dev_setup.sh -index aed54b2167a..dd391181f19 100755 ---- a/dev_setup.sh -+++ b/dev_setup.sh -@@ -48,7 +48,7 @@ param="" - - for var in "$@" ; do - # Check if parameter should be read -- if [[ ${param} == "python" ]] ; then -+ if [[ ${param} == "python3" ]] ; then - opt_python=${var} - param="" - continue -@@ -351,17 +351,17 @@ if [ -z ${INSTALL_PRECOMMIT_HOOK} ] ; then - HOOK_FILE="./.git/hooks/pre-commit" - if [ ! -f ${HOOK_FILE} ] || grep -q "MYCROFT DEV SETUP" ${HOOK_FILE} ; then - echo "Installing PEP8 check as precommit-hook" -- echo "#! $( which python )" > ${HOOK_FILE} -+ echo "#! $( which python3 )" > ${HOOK_FILE} - echo "# MYCROFT DEV SETUP" >> ${HOOK_FILE} - cat ./scripts/pre-commit >> ${HOOK_FILE} - chmod +x ${HOOK_FILE} - fi - fi - --PYTHON=$( python -c "import sys;print('python{}.{}'.format(sys.version_info[0], sys.version_info[1]))" ) -+PYTHON=$( python3 -c "import sys;print('python{}.{}'.format(sys.version_info[0], sys.version_info[1]))" ) - - # install required python modules --if ! pip install -r requirements.txt ; then -+if ! pip3 install -r requirements.txt ; then - echo "Warning: Failed to install all requirements. Continue? y/N" - read -n1 continue - if [[ "$continue" != "y" ]] ; then -@@ -369,7 +369,7 @@ if ! pip install -r requirements.txt ; then - fi - fi - --if ! pip install -r test-requirements.txt ; then -+if ! pip3 install -r test-requirements.txt ; then - echo "Warning test requirements wasn't installed, Note: normal operation should still work fine..." - fi - -diff --git a/scripts/install-pocketsphinx.sh b/scripts/install-pocketsphinx.sh -index 44d329b7985..d45f5c22747 100755 ---- a/scripts/install-pocketsphinx.sh -+++ b/scripts/install-pocketsphinx.sh -@@ -47,7 +47,7 @@ function install_pocketsphinx() { - - # build and install pocketsphinx python bindings - cd ${TOP}/pocketsphinx-python -- python setup.py install -+ python3 setup.py install - } - - if [ "$1" = "-q" ] ; then --- -2.21.0 - diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-multimedia/recipes-multimedia/mycroft/files/0003-dev_setup.sh-Remove-the-TERM-dependency.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-multimedia/recipes-multimedia/mycroft/files/0003-dev_setup.sh-Remove-the-TERM-dependency.patch new file mode 100644 index 00000000..d803f526 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-multimedia/recipes-multimedia/mycroft/files/0003-dev_setup.sh-Remove-the-TERM-dependency.patch @@ -0,0 +1,37 @@ +From 5ef52cdea278a1dff966a912549cb6708f2cb699 Mon Sep 17 00:00:00 2001 +From: Alistair Francis +Date: Tue, 17 Sep 2019 11:31:47 -0700 +Subject: [PATCH 3/7] dev_setup.sh: Remove the TERM dependency + +Signed-off-by: Alistair Francis +Upstream-Status: Inappropriate [embedded specific] +--- + dev_setup.sh | 12 ------------ + 1 file changed, 12 deletions(-) + +diff --git a/dev_setup.sh b/dev_setup.sh +index 672b27080c2..72f734f36bf 100755 +--- a/dev_setup.sh ++++ b/dev_setup.sh +@@ -115,18 +115,6 @@ function get_YN() { + done + } + +-# If tput is available and can handle multiple colors +-if found_exe tput ; then +- if [[ $(tput colors) != "-1" ]]; then +- GREEN=$(tput setaf 2) +- BLUE=$(tput setaf 4) +- CYAN=$(tput setaf 6) +- YELLOW=$(tput setaf 3) +- RESET=$(tput sgr0) +- HIGHLIGHT=$YELLOW +- fi +-fi +- + # Run a setup wizard the very first time that guides the user through some decisions + if [[ ! -f .dev_opts.json && -z $CI ]] ; then + echo " +-- +2.23.0 + diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-multimedia/recipes-multimedia/mycroft/files/0004-dev_setup.sh-Ignore-missing-package-manager.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-multimedia/recipes-multimedia/mycroft/files/0004-dev_setup.sh-Ignore-missing-package-manager.patch new file mode 100644 index 00000000..d2dc179c --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-multimedia/recipes-multimedia/mycroft/files/0004-dev_setup.sh-Ignore-missing-package-manager.patch @@ -0,0 +1,31 @@ +From e3b6ca995caca22e65d012a54bc2aeb08eb7e9d4 Mon Sep 17 00:00:00 2001 +From: Alistair Francis +Date: Tue, 15 Oct 2019 17:09:06 -0700 +Subject: [PATCH 4/7] dev_setup.sh: Ignore missing package manager + +Signed-off-by: Alistair Francis +Upstream-Status: Inappropriate [embedded specific] +--- + dev_setup.sh | 6 ------ + 1 file changed, 6 deletions(-) + +diff --git a/dev_setup.sh b/dev_setup.sh +index 72f734f36bf..0c8e11b8170 100755 +--- a/dev_setup.sh ++++ b/dev_setup.sh +@@ -317,12 +317,6 @@ Please review the following package changes carefully." + echo -e "${YELLOW}Could not find package manager + ${YELLOW}Make sure to manually install:$BLUE git python3 python-setuptools python-venv pygobject libtool libffi libjpg openssl autoconf bison swig glib2.0 portaudio19 mpg123 flac curl fann g++ jq\n$RESET" + +- echo 'Warning: Failed to install all dependencies. Continue? y/N' +- read -n1 continue +- if [[ $continue != 'y' ]] ; then +- exit 1 +- fi +- + fi + } + +-- +2.23.0 + diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-multimedia/recipes-multimedia/mycroft/files/0004-dev_setup.sh-Remove-the-git-dependency.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-multimedia/recipes-multimedia/mycroft/files/0004-dev_setup.sh-Remove-the-git-dependency.patch deleted file mode 100644 index b7ca1601..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-multimedia/recipes-multimedia/mycroft/files/0004-dev_setup.sh-Remove-the-git-dependency.patch +++ /dev/null @@ -1,48 +0,0 @@ -From a480dde949f820fda6e46c13261883e851f5a430 Mon Sep 17 00:00:00 2001 -From: Alistair Francis -Date: Fri, 29 Mar 2019 16:09:57 -0700 -Subject: [PATCH 4/5] dev_setup.sh: Remove the git dependency - -Signed-off-by: Alistair Francis -Upstream-Status: Inappropriate [embedded specific] ---- - dev_setup.sh | 16 ---------------- - 1 file changed, 16 deletions(-) - -diff --git a/dev_setup.sh b/dev_setup.sh -index dd391181f19..c6aa783e1ef 100755 ---- a/dev_setup.sh -+++ b/dev_setup.sh -@@ -312,10 +312,6 @@ function install_deps() { - - install_deps - --# Configure to use the standard commit template for --# this repo only. --git config commit.template .gitmessage -- - # Check whether to build mimic (it takes a really long time!) - build_mimic="n" - if [[ ${opt_forcemimicbuild} == true ]] ; then -@@ -346,18 +342,6 @@ fi - # Start the virtual environment - cd "${TOP}" - --# Install pep8 pre-commit hook --if [ -z ${INSTALL_PRECOMMIT_HOOK} ] ; then -- HOOK_FILE="./.git/hooks/pre-commit" -- if [ ! -f ${HOOK_FILE} ] || grep -q "MYCROFT DEV SETUP" ${HOOK_FILE} ; then -- echo "Installing PEP8 check as precommit-hook" -- echo "#! $( which python3 )" > ${HOOK_FILE} -- echo "# MYCROFT DEV SETUP" >> ${HOOK_FILE} -- cat ./scripts/pre-commit >> ${HOOK_FILE} -- chmod +x ${HOOK_FILE} -- fi --fi -- - PYTHON=$( python3 -c "import sys;print('python{}.{}'.format(sys.version_info[0], sys.version_info[1]))" ) - - # install required python modules --- -2.21.0 - diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-multimedia/recipes-multimedia/mycroft/files/0005-dev_setup.sh-Remove-the-test-setup-dependency.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-multimedia/recipes-multimedia/mycroft/files/0005-dev_setup.sh-Remove-the-test-setup-dependency.patch deleted file mode 100644 index 5ae86837..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-multimedia/recipes-multimedia/mycroft/files/0005-dev_setup.sh-Remove-the-test-setup-dependency.patch +++ /dev/null @@ -1,31 +0,0 @@ -From 7fc38ae0dec30789fa0d365f1764f4950b700a98 Mon Sep 17 00:00:00 2001 -From: Alistair Francis -Date: Tue, 2 Apr 2019 16:52:44 -0700 -Subject: [PATCH 5/5] dev_setup.sh: Remove the test setup dependency - -Signed-off-by: Alistair Francis -Upstream-Status: Inappropriate [embedded specific] - -Signed-off-by: Alistair Francis ---- - dev_setup.sh | 4 ---- - 1 file changed, 4 deletions(-) - -diff --git a/dev_setup.sh b/dev_setup.sh -index c6aa783e1ef..bcfaa0c16c2 100755 ---- a/dev_setup.sh -+++ b/dev_setup.sh -@@ -353,10 +353,6 @@ if ! pip3 install -r requirements.txt ; then - fi - fi - --if ! pip3 install -r test-requirements.txt ; then -- echo "Warning test requirements wasn't installed, Note: normal operation should still work fine..." --fi -- - SYSMEM=$( free | awk '/^Mem:/ { print $2 }' ) - MAXCORES=$(($SYSMEM / 512000)) - MINCORES=1 --- -2.21.0 - diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-multimedia/recipes-multimedia/mycroft/files/0005-pip-requirements-Don-t-install-requirements-with-pip.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-multimedia/recipes-multimedia/mycroft/files/0005-pip-requirements-Don-t-install-requirements-with-pip.patch new file mode 100644 index 00000000..7f63ea13 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-multimedia/recipes-multimedia/mycroft/files/0005-pip-requirements-Don-t-install-requirements-with-pip.patch @@ -0,0 +1,103 @@ +From 04b14c4569309f1a433d955773aeb8a3607a1360 Mon Sep 17 00:00:00 2001 +From: Alistair Francis +Date: Tue, 19 Mar 2019 13:32:54 -0700 +Subject: [PATCH 5/7] pip requirements: Don't install requirements with pip + +Signed-off-by: Alistair Francis +Upstream-Status: Inappropriate [embedded specific] +--- + dev_setup.sh | 15 +-------------- + requirements.txt | 36 ------------------------------------ + test-requirements.txt | 7 ------- + 3 files changed, 1 insertion(+), 57 deletions(-) + delete mode 100644 requirements.txt + delete mode 100644 test-requirements.txt + +diff --git a/dev_setup.sh b/dev_setup.sh +index 0c8e11b8170..be4a19de0c3 100755 +--- a/dev_setup.sh ++++ b/dev_setup.sh +@@ -351,19 +351,6 @@ fi + + PYTHON=$(python -c "import sys;print('python{}.{}'.format(sys.version_info[0], sys.version_info[1]))") + +-# install required python modules +-if ! pip install -r requirements.txt ; then +- echo 'Warning: Failed to install all requirements. Continue? y/N' +- read -n1 continue +- if [[ $continue != 'y' ]] ; then +- exit 1 +- fi +-fi +- +-if ! pip install -r test-requirements.txt ; then +- echo "Warning test requirements wasn't installed, Note: normal operation should still work fine..." +-fi +- + SYSMEM=$(free | awk '/^Mem:/ { print $2 }') + MAXCORES=$(($SYSMEM / 512000)) + MINCORES=1 +@@ -420,4 +407,4 @@ if [[ ! -w /var/log/mycroft/ ]] ; then + fi + + #Store a fingerprint of setup +-md5sum requirements.txt test-requirements.txt dev_setup.sh > .installed ++md5sum dev_setup.sh > .installed +diff --git a/requirements.txt b/requirements.txt +deleted file mode 100644 +index 0140d5465dc..00000000000 +--- a/requirements.txt ++++ /dev/null +@@ -1,36 +0,0 @@ +-six==1.10.0 +-cryptography==2.6.1 +-requests==2.20.0 +-gTTS==2.0.3 +-gTTS-token==1.1.3 +-PyAudio==0.2.11 +-pyee==5.0.0 +-SpeechRecognition==3.8.1 +-tornado==4.5.3 +-websocket-client==0.54.0 +-requests-futures==0.9.5 +-pyalsaaudio==0.8.2 +-xmlrunner==1.7.7 +-pyserial==3.0 +-psutil==5.2.1 +-pocketsphinx==0.1.0 +-inflection==0.3.1 +-pillow==4.1.1 +-python-dateutil==2.6.0 +-pychromecast==3.2.2 +-python-vlc==1.1.2 +-google-api-python-client==1.6.4 +-fasteners==0.14.1 +-PyYAML==3.13 +- +-msm==0.8.3 +-msk==0.3.13 +-adapt-parser==0.3.3 +-padatious==0.4.6 +-fann2==1.0.7 +-padaos==0.1.9 +-precise-runner==0.2.1 +-petact==0.1.2 +- +-# dev setup tools +-pep8==1.7.0 +diff --git a/test-requirements.txt b/test-requirements.txt +deleted file mode 100644 +index fd129e3f66d..00000000000 +--- a/test-requirements.txt ++++ /dev/null +@@ -1,7 +0,0 @@ +-pycodestyle===2.5.0 +-coveralls==1.5.0 +-pytest==3.5.0 +-pytest-cov==2.5.1 +-cov-core==1.15.0 +-sphinx==1.8.2 +-sphinx-rtd-theme==0.4.2 +-- +2.23.0 + diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-multimedia/recipes-multimedia/mycroft/files/0006-Use-python3-and-pip3-instead-of-python-and-pip.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-multimedia/recipes-multimedia/mycroft/files/0006-Use-python3-and-pip3-instead-of-python-and-pip.patch new file mode 100644 index 00000000..6f1f6f78 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-multimedia/recipes-multimedia/mycroft/files/0006-Use-python3-and-pip3-instead-of-python-and-pip.patch @@ -0,0 +1,121 @@ +From 86a1d18d96f827baa0c1029c85a53fc89d436e17 Mon Sep 17 00:00:00 2001 +From: Alistair Francis +Date: Tue, 19 Mar 2019 13:38:44 -0700 +Subject: [PATCH 6/7] Use python3 and pip3 instead of python and pip + +Signed-off-by: Alistair Francis +Upstream-Status: Inappropriate [embedded specific] +--- + bin/mycroft-cli-client | 2 +- + bin/mycroft-pip | 2 +- + bin/mycroft-say-to | 2 +- + bin/mycroft-skill-testrunner | 4 ++-- + bin/mycroft-speak | 2 +- + dev_setup.sh | 6 +++--- + scripts/install-pocketsphinx.sh | 2 +- + 7 files changed, 10 insertions(+), 10 deletions(-) + +diff --git a/bin/mycroft-cli-client b/bin/mycroft-cli-client +index f40a316e3f6..de2040d9e67 100755 +--- a/bin/mycroft-cli-client ++++ b/bin/mycroft-cli-client +@@ -21,4 +21,4 @@ DIR="$( dirname "$SOURCE" )" + source "$DIR/../venv-activate.sh" -q + + # Invoke the Command Line Interface +-python -m mycroft.client.text $@ ++python3 -m mycroft.client.text $@ +diff --git a/bin/mycroft-pip b/bin/mycroft-pip +index a42b16b847a..81bd5bfb3cf 100755 +--- a/bin/mycroft-pip ++++ b/bin/mycroft-pip +@@ -21,4 +21,4 @@ DIR="$( dirname "$SOURCE" )" + source "$DIR/../venv-activate.sh" -q + + # Install pip packages within the Mycroft venv +-pip $@ +\ No newline at end of file ++pip3 $@ +\ No newline at end of file +diff --git a/bin/mycroft-say-to b/bin/mycroft-say-to +index 4ae597f3062..8bb4039996d 100755 +--- a/bin/mycroft-say-to ++++ b/bin/mycroft-say-to +@@ -26,4 +26,4 @@ set -- "${1:-$( +Date: Wed, 16 Oct 2019 09:18:39 -0700 +Subject: [PATCH 7/7] mycroft.conf: Use pocketsphinx by default + +precise only works on certain architectures, to make Mycroft more +versitle use pocketsphinx as it is architecture independent. + +Signed-off-by: Alistair Francis +Upstream-Status: Inappropriate [embedded specific] +--- + mycroft/configuration/mycroft.conf | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/mycroft/configuration/mycroft.conf b/mycroft/configuration/mycroft.conf +index 1d0be0dcd2b..d2dc75dac44 100644 +--- a/mycroft/configuration/mycroft.conf ++++ b/mycroft/configuration/mycroft.conf +@@ -196,7 +196,7 @@ + // Hotword configurations + "hotwords": { + "hey mycroft": { +- "module": "precise", ++ "module": "pocketsphinx", + "phonemes": "HH EY . M AY K R AO F T", + "threshold": 1e-90, + "lang": "en-us" +-- +2.23.0 + diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-multimedia/recipes-multimedia/mycroft/files/mycroft-setup.service b/Contrib-Inspur/openbmc/meta-openembedded/meta-multimedia/recipes-multimedia/mycroft/files/mycroft-setup.service index 07598235..4b4bcdd7 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-multimedia/recipes-multimedia/mycroft/files/mycroft-setup.service +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-multimedia/recipes-multimedia/mycroft/files/mycroft-setup.service @@ -5,7 +5,8 @@ After=systemd-user-sessions.service [Service] Type=oneshot -ExecStart=@LIBDIR@/mycroft/dev_setup.sh --allow-root +ExecStart=cp -rf @LIBDIR@/mycroft /var/ +ExecStart=/var/mycroft/dev_setup.sh --allow-root [Install] WantedBy=multi-user.target diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-multimedia/recipes-multimedia/mycroft/files/mycroft.service b/Contrib-Inspur/openbmc/meta-openembedded/meta-multimedia/recipes-multimedia/mycroft/files/mycroft.service index 28729f6b..c7f477f1 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-multimedia/recipes-multimedia/mycroft/files/mycroft.service +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-multimedia/recipes-multimedia/mycroft/files/mycroft.service @@ -5,10 +5,10 @@ After=mycroft-setup.service [Service] Type=forking -WorkingDirectory=@LIBDIR@/mycroft +WorkingDirectory=/var/mycroft ExecStartPre=mkdir -p /var/log/mycroft -ExecStart=@LIBDIR@/mycroft/start-mycroft.sh all -ExecStop=@LIBDIR@/mycroft/stop-mycroft.sh all +ExecStart=/var/mycroft/start-mycroft.sh all +ExecStop=/var/mycroft/stop-mycroft.sh all [Install] WantedBy=multi-user.target diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-multimedia/recipes-multimedia/mycroft/mycroft_19.2.3.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-multimedia/recipes-multimedia/mycroft/mycroft_19.2.3.bb deleted file mode 100644 index becd0bf7..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-multimedia/recipes-multimedia/mycroft/mycroft_19.2.3.bb +++ /dev/null @@ -1,74 +0,0 @@ -SUMMARY = "Mycroft is a hackable open source voice assistant." -DESCRIPTION = "Mycroft is the world’s first open source assistant. " -HOMEPAGE = "https://mycroft.ai/" -SECTION = "multimedia" - -LICENSE = "Apache-2.0" -LIC_FILES_CHKSUM = "file://LICENSE.md;md5=79aa497b11564d1d419ee889e7b498f6" - -SRCREV = "4b45db34ecd95b62ef2b66a8e5180c66ca791a21" -SRC_URI = "git://github.com/MycroftAI/mycroft-core.git;branch=master \ - file://0001-Remove-python-venv.patch \ - file://0002-pip-requirements-Remove-ones-installed-by-OE.patch \ - file://0003-Use-python3-and-pip3-instead-of-python-and-pip.patch \ - file://0004-dev_setup.sh-Remove-the-git-dependency.patch \ - file://0005-dev_setup.sh-Remove-the-test-setup-dependency.patch \ - file://dev_opts.json \ - file://mycroft-setup.service \ - file://mycroft.service \ - " - -S = "${WORKDIR}/git" - -inherit systemd - -# Mycroft installs itself on the host -# Just copy the setup files to the rootfs -do_install() { - install -d ${D}${libdir}/ - cp -r ${B} ${D}${libdir}/mycroft - rm -r ${D}${libdir}/mycroft/.git - - # Install the dev opts so it doesn't ask us on initial setup. - install -m 644 ${WORKDIR}/dev_opts.json ${D}${libdir}/mycroft/.dev_opts.json - - if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then - install -d ${D}${systemd_unitdir}/system - install -m 644 ${WORKDIR}/mycroft-setup.service ${D}${systemd_unitdir}/system - sed -i -e 's,@LIBDIR@,${libdir},g' ${D}${systemd_unitdir}/system/mycroft-setup.service - fi - - if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then - install -d ${D}${systemd_unitdir}/system - install -m 644 ${WORKDIR}/mycroft.service ${D}${systemd_unitdir}/system - sed -i -e 's,@LIBDIR@,${libdir},g' ${D}${systemd_unitdir}/system/mycroft.service - fi -} - -FILES_${PN} += "${libdir}/mycroft" - -RDEPENDS_${PN} = "python3" - -# Install as many Python packages as we can. -# We don't yet have all the packages in meta-python. -# Install as many as we can and we will install the rest on the target with pip. -# TODO: Add all the remaining packages and remove pip -RDEPENDS_${PN} += "python3-pip \ - python3-requests python3-pillow \ - python3-tornado python3-pyyaml \ - python3-pyalsaaudio python3-inflection \ - python3-pyserial python3-psutil \ - python3-pyaudio python3-fann2 \ - python3-pocketsphinx \ - python3-xxhash \ - " - -# Mycroft uses Alsa, PulseAudio and Flac -RDEPENDS_${PN} += "alsa-oss alsa-utils alsa-plugins alsa-tools" -RDEPENDS_${PN} += "pulseaudio pulseaudio-misc pulseaudio-server" -RDEPENDS_${PN} += "flac" - -# Mycroft can do this itself on the target, but it's quicker to do it here -RDEPENDS_${PN} += "mimic" - -SYSTEMD_SERVICE_${PN} = "mycroft-setup.service mycroft.service" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-multimedia/recipes-multimedia/mycroft/mycroft_19.8.1.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-multimedia/recipes-multimedia/mycroft/mycroft_19.8.1.bb new file mode 100644 index 00000000..62d1ad7f --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-multimedia/recipes-multimedia/mycroft/mycroft_19.8.1.bb @@ -0,0 +1,87 @@ +SUMMARY = "Mycroft is a hackable open source voice assistant." +DESCRIPTION = "Mycroft is the world’s first open source assistant. " +HOMEPAGE = "https://mycroft.ai/" +SECTION = "multimedia" + +LICENSE = "Apache-2.0" +LIC_FILES_CHKSUM = "file://LICENSE.md;md5=79aa497b11564d1d419ee889e7b498f6" + +SRCREV = "913f29d3d550637934f9abf43a097eb2c30d76fc" +SRC_URI = "git://github.com/MycroftAI/mycroft-core.git;branch=master \ + file://0001-Remove-python-venv.patch \ + file://0002-dev_setup.sh-Remove-the-git-dependency.patch \ + file://0003-dev_setup.sh-Remove-the-TERM-dependency.patch \ + file://0004-dev_setup.sh-Ignore-missing-package-manager.patch \ + file://0005-pip-requirements-Don-t-install-requirements-with-pip.patch \ + file://0006-Use-python3-and-pip3-instead-of-python-and-pip.patch \ + file://0007-mycroft.conf-Use-pocketsphinx-by-default.patch \ + file://dev_opts.json \ + file://mycroft-setup.service \ + file://mycroft.service \ + " + +S = "${WORKDIR}/git" + +inherit systemd + +# Mycroft installs itself on the host +# Just copy the setup files to the rootfs +# The mycroft-setup service will copy the files to /var/ where we run them from +do_install() { + install -d ${D}${libdir}/ + cp -r ${B} ${D}${libdir}/mycroft + rm -r ${D}${libdir}/mycroft/.git + + # Install the dev opts so it doesn't ask us on initial setup. + install -m 644 ${WORKDIR}/dev_opts.json ${D}${libdir}/mycroft/.dev_opts.json + + if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then + install -d ${D}${systemd_unitdir}/system + install -m 644 ${WORKDIR}/mycroft-setup.service ${D}${systemd_unitdir}/system + sed -i -e 's,@LIBDIR@,${libdir},g' ${D}${systemd_unitdir}/system/mycroft-setup.service + fi + + if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then + install -d ${D}${systemd_unitdir}/system + install -m 644 ${WORKDIR}/mycroft.service ${D}${systemd_unitdir}/system + sed -i -e 's,@LIBDIR@,${libdir},g' ${D}${systemd_unitdir}/system/mycroft.service + fi +} + +FILES_${PN} += "${libdir}/mycroft" + +RDEPENDS_${PN} = "python3" + +RDEPENDS_${PN} += "python3-requests python3-pillow \ + python3-tornado python3-pyyaml \ + python3-pyalsaaudio python3-inflection \ + python3-pyserial python3-psutil \ + python3-pyaudio python3-fann2 \ + python3-pocketsphinx \ + python3-xxhash python3-pako \ + python3-six python3-cryptography \ + python3-requests-futures \ + python3-xmlrunner python3-fasteners \ + python3-python-vlc \ + python3-padatious python3-padaos \ + python3-petact python3-precise-runner \ + python3-pulsectl python3-pychromecast \ + python3-msm python3-msk \ + python3-websocket-client \ + python3-google-api-python-client \ + " + +# These packages need to be installed on the target +# python3-speechrecognition python3-pyee==5.0.0 python3-six==1.10.0 +# python3-websocket-client==0.54.0 python3-gtts python3-gtts-token +# python3-python-dateutil python3-adapt-parser python3-lazy + +# Mycroft uses Alsa, PulseAudio and Flac +RDEPENDS_${PN} += "alsa-utils alsa-plugins alsa-tools" +RDEPENDS_${PN} += "pulseaudio pulseaudio-misc pulseaudio-server" +RDEPENDS_${PN} += "flac mpg123" + +# Mycroft can do this itself on the target, but it's quicker to do it here +RDEPENDS_${PN} += "mimic" + +SYSTEMD_SERVICE_${PN} = "mycroft-setup.service mycroft.service" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-multimedia/recipes-multimedia/packagegroups/packagegroup-meta-multimedia.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-multimedia/recipes-multimedia/packagegroups/packagegroup-meta-multimedia.bb index 365618d9..cef45f9d 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-multimedia/recipes-multimedia/packagegroups/packagegroup-meta-multimedia.bb +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-multimedia/recipes-multimedia/packagegroups/packagegroup-meta-multimedia.bb @@ -27,7 +27,7 @@ RDEPENDS_packagegroup-meta-multimedia = "\ fluidsynth cdparanoia vorbis-tools tremor caps libao libavc1394 \ opusfile gerbera libdvdcss webrtc-audio-processing \ rtmpdump libopenmpt schroedinger mpd mpc libmpdclient \ - ncmpc libmpd libsquish dcadec libiec61883 \ + ncmpc libmpd dcadec libiec61883 \ ${@bb.utils.contains("DISTRO_FEATURES", "pam", "", "", d)} \ ${@bb.utils.contains("LICENSE_FLAGS_WHITELIST", "commercial", "minidlna gst-fluendo-mpegdemux vlc", "", d)} \ ${@bb.utils.contains("LICENSE_FLAGS_WHITELIST", "commercial", "vo-aacenc sox libde265 gst-openmax", "", d)} \ diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-multimedia/recipes-multimedia/sample-content/bigbuckbunny-1080p.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-multimedia/recipes-multimedia/sample-content/bigbuckbunny-1080p.bb index a80fc10a..cee386c2 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-multimedia/recipes-multimedia/sample-content/bigbuckbunny-1080p.bb +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-multimedia/recipes-multimedia/sample-content/bigbuckbunny-1080p.bb @@ -3,7 +3,7 @@ LICENSE = "CC-BY-3.0" # http://www.bigbuckbunny.org/index.php/about/ LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/CC-BY-3.0;md5=dfa02b5755629022e267f10b9c0a2ab7" -SRC_URI = "http://download.blender.org/peach/bigbuckbunny_movies/big_buck_bunny_1080p_surround.avi" +SRC_URI = "http://themazzone.com/big_buck_bunny_1080p_surround.avi" SRC_URI[md5sum] = "223991c8b33564eb77988a4c13c1c76a" SRC_URI[sha256sum] = "69fe2cfe7154a6e752688e3a0d7d6b07b1605bbaf75b56f6470dc7b4c20c06ea" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-multimedia/recipes-multimedia/sample-content/bigbuckbunny-480p.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-multimedia/recipes-multimedia/sample-content/bigbuckbunny-480p.bb index 59ac4788..d395b920 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-multimedia/recipes-multimedia/sample-content/bigbuckbunny-480p.bb +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-multimedia/recipes-multimedia/sample-content/bigbuckbunny-480p.bb @@ -3,7 +3,7 @@ LICENSE = "CC-BY-3.0" # http://www.bigbuckbunny.org/index.php/about/ LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/CC-BY-3.0;md5=dfa02b5755629022e267f10b9c0a2ab7" -SRC_URI = "http://download.blender.org/peach/bigbuckbunny_movies/big_buck_bunny_480p_surround-fix.avi" +SRC_URI = "https://archive.org/download/BigBuckBunny/big_buck_bunny_480p_surround-fix.avi" SRC_URI[md5sum] = "ed7ed01e9aefba8ddd77c13332cec120" SRC_URI[sha256sum] = "40d1cf5bc8e1b0e55dac7bb2e3fbc2aea05b6679444864781299b24db044634f" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-multimedia/recipes-multimedia/sample-content/bigbuckbunny-720p.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-multimedia/recipes-multimedia/sample-content/bigbuckbunny-720p.bb index 21b8f8f0..20d56274 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-multimedia/recipes-multimedia/sample-content/bigbuckbunny-720p.bb +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-multimedia/recipes-multimedia/sample-content/bigbuckbunny-720p.bb @@ -3,7 +3,7 @@ LICENSE = "CC-BY-3.0" # http://www.bigbuckbunny.org/index.php/about/ LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/CC-BY-3.0;md5=dfa02b5755629022e267f10b9c0a2ab7" -SRC_URI = "http://download.blender.org/peach/bigbuckbunny_movies/big_buck_bunny_720p_surround.avi" +SRC_URI = "https://archive.org/download/BigBuckBunny/big_buck_bunny_720p_surround.avi" SRC_URI[md5sum] = "0da8fe124595f5b206d64cb1400bbefc" SRC_URI[sha256sum] = "b957d6e6212638441b52d3b620af157cc8d40c2a0342669294854a06edcd528c" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-multimedia/recipes-multimedia/tinyalsa/tinyalsa.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-multimedia/recipes-multimedia/tinyalsa/tinyalsa.bb index 157e4c91..06209689 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-multimedia/recipes-multimedia/tinyalsa/tinyalsa.bb +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-multimedia/recipes-multimedia/tinyalsa/tinyalsa.bb @@ -6,8 +6,10 @@ SECTION = "libs/multimedia" LICENSE = "BSD-3-Clause" LIC_FILES_CHKSUM = "file://NOTICE;md5=dbdefe400d894b510a9de14813181d0b" -SRCREV = "67b9210d344c34e8d1aa0cfe638abce71c5221ca" -SRC_URI = "git://github.com/tinyalsa/tinyalsa" +SRCREV = "8449529c7e50f432091539ba7b438e79b04059b5" +SRC_URI = "git://github.com/tinyalsa/tinyalsa \ + file://0001-Use-CMAKE_INSTALL_-path-instead-of-hardcoding-bin-li.patch \ + " PV = "1.1.1+git${SRCPV}" S = "${WORKDIR}/git" @@ -19,6 +21,3 @@ inherit cmake # # unresolvable R_AARCH64_ADR_PREL_PG_HI21 relocation against symbol `stderr@@GLIBC_2.17' CFLAGS += " -fPIC -DPIC " - -PACKAGES =+ "${PN}-tools" -FILES_${PN}-tools = "${bindir}/*" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-multimedia/recipes-multimedia/tinyalsa/tinyalsa/0001-Use-CMAKE_INSTALL_-path-instead-of-hardcoding-bin-li.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-multimedia/recipes-multimedia/tinyalsa/tinyalsa/0001-Use-CMAKE_INSTALL_-path-instead-of-hardcoding-bin-li.patch new file mode 100644 index 00000000..6f9c3999 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-multimedia/recipes-multimedia/tinyalsa/tinyalsa/0001-Use-CMAKE_INSTALL_-path-instead-of-hardcoding-bin-li.patch @@ -0,0 +1,46 @@ +From fe4f3c2a37a81201f463ff962364f014f50c9896 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Mon, 16 Dec 2019 22:58:41 -0800 +Subject: [PATCH] Use CMAKE_INSTALL_ instead of hardcoding bin/lib/ + install paths + +Helps fix build/packaging issues on machines where default libdir is not +lib but say lib64 + +Upstream-Status: Submitted [https://github.com/tinyalsa/tinyalsa/pull/143] +Signed-off-by: Khem Raj +--- + CMakeLists.txt | 14 +++++++++++--- + 1 file changed, 11 insertions(+), 3 deletions(-) + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index cb31c58..1cc4a85 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -41,12 +41,20 @@ add_util("tinymix" "utils/tinymix.c") + install(FILES ${HDRS} + DESTINATION "include/tinyalsa") + ++if(NOT DEFINED CMAKE_INSTALL_LIBDIR) ++ set(CMAKE_INSTALL_LIBDIR lib) ++endif() ++ ++if(NOT DEFINED CMAKE_INSTALL_BINDIR) ++ set(CMAKE_INSTALL_BINDIR bin) ++endif() ++ + install(TARGETS "tinyalsa" + "tinyplay" + "tinycap" + "tinymix" + "tinypcminfo" +- RUNTIME DESTINATION "bin" +- ARCHIVE DESTINATION "lib" +- LIBRARY DESTINATION "lib") ++ RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} ++ ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} ++ LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}) + +-- +2.24.1 + diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-multimedia/recipes-multimedia/tremor/tremor_20150107.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-multimedia/recipes-multimedia/tremor/tremor_20150107.bb deleted file mode 100644 index 937894a7..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-multimedia/recipes-multimedia/tremor/tremor_20150107.bb +++ /dev/null @@ -1,27 +0,0 @@ -SUMMARY = "Fixed-point decoder" -DESCRIPTION = "tremor is a fixed point implementation of the vorbis codec." -SECTION = "libs" -LICENSE = "BSD" -LIC_FILES_CHKSUM = "file://COPYING;md5=db1b7a668b2a6f47b2af88fb008ad555 \ - file://os.h;beginline=3;endline=14;md5=5c0af5e1bedef3ce8178c89f48cd6f1f" -DEPENDS = "libogg" -SRCDATE = "${PV}" -PR = "r1" - -# SVN support for upstream version check isn't implemented yet -RECIPE_UPSTREAM_VERSION = "20150107" -RECIPE_UPSTREAM_DATE = "Jan 07, 2015" -CHECK_DATE = "Aug 12, 2015" - -SRC_URI = "svn://svn.xiph.org/trunk;module=Tremor;rev=19427;protocol=http \ - file://obsolete_automake_macros.patch;striplevel=0 \ - file://tremor-arm-thumb2.patch \ -" - -S = "${WORKDIR}/Tremor" - -inherit autotools pkgconfig - -EXTRA_OECONF = "--enable-shared" - -ARM_INSTRUCTION_SET = "arm" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-multimedia/recipes-multimedia/tremor/tremor_20180319.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-multimedia/recipes-multimedia/tremor/tremor_20180319.bb new file mode 100644 index 00000000..28bb5d92 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-multimedia/recipes-multimedia/tremor/tremor_20180319.bb @@ -0,0 +1,21 @@ +SUMMARY = "Fixed-point decoder" +DESCRIPTION = "tremor is a fixed point implementation of the vorbis codec." +SECTION = "libs" +LICENSE = "BSD-3-Clause" +LIC_FILES_CHKSUM = "file://COPYING;md5=db1b7a668b2a6f47b2af88fb008ad555 \ + file://os.h;beginline=3;endline=14;md5=5c0af5e1bedef3ce8178c89f48cd6f1f" +DEPENDS = "libogg" + +SRC_URI = "git://git.xiph.org/tremor.git;protocol=https \ + file://obsolete_automake_macros.patch;striplevel=0 \ + file://tremor-arm-thumb2.patch \ +" +SRCREV = "7c30a66346199f3f09017a09567c6c8a3a0eedc8" + +S = "${WORKDIR}/git" + +inherit autotools pkgconfig + +EXTRA_OECONF = "--enable-shared" + +ARM_INSTRUCTION_SET = "arm" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-multimedia/recipes-multimedia/vlc/vlc.inc b/Contrib-Inspur/openbmc/meta-openembedded/meta-multimedia/recipes-multimedia/vlc/vlc.inc deleted file mode 100644 index 9bbc6685..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-multimedia/recipes-multimedia/vlc/vlc.inc +++ /dev/null @@ -1,119 +0,0 @@ -DESCRIPTION = "Video player and streamer - davinci edition" -HOMEPAGE = "http://www.videolan.org" -SECTION = "multimedia" - -LICENSE = "GPL-2.0" -LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263" - -DEPENDS = "coreutils-native fribidi libtool libgcrypt libgcrypt-native \ - dbus dbus-glib libxml2 gnutls \ - tremor faad2 ffmpeg flac fluidsynth alsa-lib \ - lua-native lua libidn \ - avahi jpeg xz libmodplug mpeg2dec \ - libmtp libopus orc libsamplerate0 libusb1 schroedinger taglib \ - tiff" - -# While this item does not require it, it depends on ffmpeg which does -LICENSE_FLAGS = "commercial" - -SRC_URI = "http://download.videolan.org/pub/videolan/${BPN}/${PV}/${BP}.tar.xz" - -inherit autotools gettext pkgconfig distro_features_check - -ARM_INSTRUCTION_SET = "arm" -export BUILDCC = "${BUILD_CC}" -EXTRA_OECONF = "\ - --enable-run-as-root \ - --enable-xvideo \ - --disable-screen --disable-caca \ - --enable-vlm \ - --enable-freetype \ - --enable-tremor \ - --enable-v4l2 --disable-aa --disable-faad \ - --enable-dbus \ - --without-contrib \ - --without-kde-solid \ - --enable-realrtsp \ - --disable-libtar \ - --enable-avcodec \ - ac_cv_path_MOC=${STAGING_BINDIR_NATIVE}${QT_DIR_NAME}/moc \ - ac_cv_path_RCC=${STAGING_BINDIR_NATIVE}${QT_DIR_NAME}/rcc \ - ac_cv_path_UIC=${STAGING_BINDIR_NATIVE}${QT_DIR_NAME}/uic \ -" - -PACKAGECONFIG ?= " \ - live555 dc1394 dv1394 notify fontconfig freetype dvdread png \ - ${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'x11', '', d)} \ -" - -inherit ${@bb.utils.contains('PACKAGECONFIG', 'qt5', 'qmake5_paths', '', d)} - -PACKAGECONFIG[mad] = "--enable-mad,--disable-mad,libmad" -PACKAGECONFIG[a52] = "--enable-a52,--disable-a52,liba52" -PACKAGECONFIG[jack] = "--enable-jack,--disable-jack,jack" -PACKAGECONFIG[live555] = "--enable-live555,--disable-live555,live555" -PACKAGECONFIG[libass] = "--enable-libass,--disable-libass,libass" -PACKAGECONFIG[postproc] = "--enable-postproc,--disable-postproc,libpostproc" -PACKAGECONFIG[libva] = "--enable-libva,--disable-libva,libva" -PACKAGECONFIG[opencv] = "--enable-opencv,--disable-opencv,opencv" -PACKAGECONFIG[speex] = "--enable-speex,--disable-speex,speex" -PACKAGECONFIG[gstreamer] = "--enable-gst-decode,--disable-gst-decode,gstreamer1.0 gstreamer1.0-plugins-base gst-plugins-bad" -PACKAGECONFIG[vpx] = "--enable-vpx,--disable-vpx, libvpx" -PACKAGECONFIG[qt5] = "--enable-qt,--disable-qt, qtbase-native qtx11extras qtsvg" -PACKAGECONFIG[freerdp] = "--enable-freerdp,--disable-freerdp, freerdp" -PACKAGECONFIG[dvbpsi] = "--enable-dvbpsi,--disable-dvbpsi, libdvbpsi" -PACKAGECONFIG[samba] = "--enable-smbclient,--disable-smbclient, samba" -PACKAGECONFIG[upnp] = "--enable-upnp,--disable-upnp,libupnp" -PACKAGECONFIG[dvdnav] = "--enable-dvdnav,--disable-dvdnav,libdvdnav libdvdcss" -PACKAGECONFIG[sftp] = "--enable-sftp,--disable-sftp,libssh2" -PACKAGECONFIG[vorbis] = "--enable-vorbis,--disable-vorbis,libvorbis libogg" -PACKAGECONFIG[ogg] = "--enable-ogg,--disable-ogg,libvorbis libogg" -PACKAGECONFIG[dc1394] = "--enable-dc1394,--disable-dc1394,libdc1394" -PACKAGECONFIG[dv1394] = "--enable-dv1394,--disable-dv1394,libraw1394 libavc1394" -PACKAGECONFIG[svg] = "--enable-svg,--disable-svg,librsvg" -PACKAGECONFIG[svgdec] = "--enable-svgdec,--disable-svgdec,librsvg cairo" -PACKAGECONFIG[notify] = "--enable-notify,--disable-notify, libnotify gtk+" -PACKAGECONFIG[fontconfig] = "--enable-fontconfig,--disable-fontconfig, fontconfig" -PACKAGECONFIG[freetype] = "--enable-freetype,--disable-freetype, freetype" -PACKAGECONFIG[dvdread] = "--enable-dvdread,--disable-dvdread, libdvdread libdvdcss" -PACKAGECONFIG[vnc] = "--enable-vnc,--disable-vnc, libvncserver" -PACKAGECONFIG[x11] = "--with-x --enable-xcb,--without-x --disable-xcb, xcb-util-keysyms libxpm libxinerama" -PACKAGECONFIG[png] = "--enable-png,--disable-png,libpng" -PACKAGECONFIG[vdpau] = "--enable-vdpau,--disable-vdpau,libvdpau" - -do_configure_append() { - sed -i -e s:'${top_builddir_slash}libtool':'${top_builddir_slash}'${TARGET_SYS}-libtool:g ${B}/doltlibtool - - # moc needs support: precreate build paths - for qtpath in adapters components/epg components/playlist components/sout dialogs managers styles util/buttons; do - mkdir -p "${B}/modules/gui/qt/$qtpath" - done -} - -# This recipe packages vlc as a library as well, so qt4 dependencies -# can be avoided when only the library is installed. -PACKAGES =+ "libvlc" - -LEAD_SONAME_libvlc = "libvlc.so.5" -FILES_libvlc = "${libdir}/lib*.so.*" - -FILES_${PN} += "\ - ${bindir}/vlc \ - ${libdir}/vlc/vlc/libvlc_vdpau.so \ - ${datadir}/applications \ - ${datadir}/vlc/ \ - ${datadir}/icons \ - ${datadir}/metainfo/vlc.appdata.xml \ -" - -FILES_${PN}-dbg += "\ - ${libdir}/vlc/*/.debug \ - ${libdir}/vlc/plugins/*/.debug \ -" - -FILES_${PN}-staticdev += "\ - ${libdir}/vlc/plugins/*/*.a \ -" - -INSANE_SKIP_${PN} = "dev-so" - diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-multimedia/recipes-multimedia/vlc/vlc_3.0.6.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-multimedia/recipes-multimedia/vlc/vlc_3.0.6.bb deleted file mode 100644 index fcd321cb..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-multimedia/recipes-multimedia/vlc/vlc_3.0.6.bb +++ /dev/null @@ -1,11 +0,0 @@ -require ${BPN}.inc - -LDFLAGS_append_riscv64 = " -pthread" - -SRC_URI += " \ - file://0006-make-opencv-configurable.patch \ - file://0007-use-vorbisidec.patch \ - file://0008-fix-luaL-checkint.patch \ -" -SRC_URI[md5sum] = "4ff71d262e070fd19f86a1c3542c7b4e" -SRC_URI[sha256sum] = "18c16d4be0f34861d0aa51fbd274fb87f0cab3b7119757ead93f3db3a1f27ed3" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-multimedia/recipes-multimedia/vlc/vlc_3.0.8.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-multimedia/recipes-multimedia/vlc/vlc_3.0.8.bb new file mode 100644 index 00000000..fa7174d3 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-multimedia/recipes-multimedia/vlc/vlc_3.0.8.bb @@ -0,0 +1,125 @@ +DESCRIPTION = "Video player and streamer - davinci edition" +HOMEPAGE = "http://www.videolan.org" +SECTION = "multimedia" + +LICENSE = "GPL-2.0" +LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263" + +DEPENDS = "coreutils-native fribidi libtool libgcrypt libgcrypt-native \ + dbus libxml2 gnutls \ + tremor faad2 ffmpeg flac fluidsynth alsa-lib \ + lua-native lua libidn \ + avahi jpeg xz libmodplug mpeg2dec \ + libmtp libopus orc libsamplerate0 libusb1 schroedinger taglib \ + tiff" + +# While this item does not require it, it depends on ffmpeg which does +LICENSE_FLAGS = "commercial" + +SRC_URI = "http://download.videolan.org/pub/videolan/${BPN}/${PV}/${BP}.tar.xz \ + file://0006-make-opencv-configurable.patch \ + file://0007-use-vorbisidec.patch \ + file://0008-fix-luaL-checkint.patch \ +" +SRC_URI[md5sum] = "744442ec0c145453ea1d257914c8072e" +SRC_URI[sha256sum] = "e0149ef4a20a19b9ecd87309c2d27787ee3f47dfd47c6639644bc1f6fd95bdf6" + +inherit autotools gettext pkgconfig features_check + +ARM_INSTRUCTION_SET = "arm" +export BUILDCC = "${BUILD_CC}" +EXTRA_OECONF = "\ + --enable-run-as-root \ + --enable-xvideo \ + --disable-screen --disable-caca \ + --enable-vlm \ + --enable-freetype \ + --enable-tremor \ + --enable-v4l2 --disable-aa --disable-faad \ + --enable-dbus \ + --without-contrib \ + --without-kde-solid \ + --enable-realrtsp \ + --disable-libtar \ + --enable-avcodec \ + ac_cv_path_MOC=${STAGING_BINDIR_NATIVE}${QT_DIR_NAME}/moc \ + ac_cv_path_RCC=${STAGING_BINDIR_NATIVE}${QT_DIR_NAME}/rcc \ + ac_cv_path_UIC=${STAGING_BINDIR_NATIVE}${QT_DIR_NAME}/uic \ +" + +PACKAGECONFIG ?= " \ + live555 dc1394 dv1394 notify fontconfig freetype dvdread png \ + ${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'x11', '', d)} \ +" + +inherit ${@bb.utils.contains('PACKAGECONFIG', 'qt5', 'qmake5_paths', '', d)} + +PACKAGECONFIG[mad] = "--enable-mad,--disable-mad,libmad" +PACKAGECONFIG[a52] = "--enable-a52,--disable-a52,liba52" +PACKAGECONFIG[jack] = "--enable-jack,--disable-jack,jack" +PACKAGECONFIG[live555] = "--enable-live555 LIVE555_PREFIX=${STAGING_DIR_HOST}${prefix},--disable-live555,live555" +PACKAGECONFIG[libass] = "--enable-libass,--disable-libass,libass" +PACKAGECONFIG[postproc] = "--enable-postproc,--disable-postproc,libpostproc" +PACKAGECONFIG[libva] = "--enable-libva,--disable-libva,libva" +PACKAGECONFIG[opencv] = "--enable-opencv,--disable-opencv,opencv" +PACKAGECONFIG[speex] = "--enable-speex,--disable-speex,speex" +PACKAGECONFIG[gstreamer] = "--enable-gst-decode,--disable-gst-decode,gstreamer1.0 gstreamer1.0-plugins-base gst-plugins-bad" +PACKAGECONFIG[vpx] = "--enable-vpx,--disable-vpx, libvpx" +PACKAGECONFIG[qt5] = "--enable-qt,--disable-qt, qtbase-native qtx11extras qtsvg" +PACKAGECONFIG[freerdp] = "--enable-freerdp,--disable-freerdp, freerdp" +PACKAGECONFIG[dvbpsi] = "--enable-dvbpsi,--disable-dvbpsi, libdvbpsi" +PACKAGECONFIG[samba] = "--enable-smbclient,--disable-smbclient, samba" +PACKAGECONFIG[upnp] = "--enable-upnp,--disable-upnp,libupnp" +PACKAGECONFIG[dvdnav] = "--enable-dvdnav,--disable-dvdnav,libdvdnav libdvdcss" +PACKAGECONFIG[sftp] = "--enable-sftp,--disable-sftp,libssh2" +PACKAGECONFIG[vorbis] = "--enable-vorbis,--disable-vorbis,libvorbis libogg" +PACKAGECONFIG[ogg] = "--enable-ogg,--disable-ogg,libvorbis libogg" +PACKAGECONFIG[dc1394] = "--enable-dc1394,--disable-dc1394,libdc1394" +PACKAGECONFIG[dv1394] = "--enable-dv1394,--disable-dv1394,libraw1394 libavc1394" +PACKAGECONFIG[svg] = "--enable-svg,--disable-svg,librsvg" +PACKAGECONFIG[svgdec] = "--enable-svgdec,--disable-svgdec,librsvg cairo" +PACKAGECONFIG[notify] = "--enable-notify,--disable-notify, libnotify gtk+3" +PACKAGECONFIG[fontconfig] = "--enable-fontconfig,--disable-fontconfig, fontconfig" +PACKAGECONFIG[freetype] = "--enable-freetype,--disable-freetype, freetype" +PACKAGECONFIG[dvdread] = "--enable-dvdread,--disable-dvdread, libdvdread libdvdcss" +PACKAGECONFIG[vnc] = "--enable-vnc,--disable-vnc, libvncserver" +PACKAGECONFIG[x11] = "--with-x --enable-xcb,--without-x --disable-xcb, xcb-util-keysyms libxpm libxinerama" +PACKAGECONFIG[png] = "--enable-png,--disable-png,libpng" +PACKAGECONFIG[vdpau] = "--enable-vdpau,--disable-vdpau,libvdpau" + +do_configure_append() { + sed -i -e s:'${top_builddir_slash}libtool':'${top_builddir_slash}'${TARGET_SYS}-libtool:g ${B}/doltlibtool + + # moc needs support: precreate build paths + for qtpath in adapters components/epg components/playlist components/sout dialogs managers styles util/buttons; do + mkdir -p "${B}/modules/gui/qt/$qtpath" + done +} + +# This recipe packages vlc as a library as well, so qt4 dependencies +# can be avoided when only the library is installed. +PACKAGES =+ "libvlc" + +LEAD_SONAME_libvlc = "libvlc.so.5" +FILES_libvlc = "${libdir}/lib*.so.*" + +FILES_${PN} += "\ + ${bindir}/vlc \ + ${libdir}/vlc/vlc/libvlc_vdpau.so \ + ${datadir}/applications \ + ${datadir}/vlc/ \ + ${datadir}/icons \ + ${datadir}/metainfo/vlc.appdata.xml \ +" + +FILES_${PN}-dbg += "\ + ${libdir}/vlc/*/.debug \ + ${libdir}/vlc/plugins/*/.debug \ +" + +FILES_${PN}-staticdev += "\ + ${libdir}/vlc/plugins/*/*.a \ +" + +INSANE_SKIP_${PN} = "dev-so" + diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-multimedia/recipes-multimedia/vorbis-tools/vorbis-tools/gettext.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-multimedia/recipes-multimedia/vorbis-tools/vorbis-tools/gettext.patch new file mode 100644 index 00000000..b61ce7c1 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-multimedia/recipes-multimedia/vorbis-tools/vorbis-tools/gettext.patch @@ -0,0 +1,37 @@ +Fix build with gettext 0.20.x + +Upstream-Status: Pending +Signed-off-by: Khem Raj + +--- a/Makefile.am ++++ b/Makefile.am +@@ -2,8 +2,8 @@ + + AUTOMAKE_OPTIONS = foreign dist-zip + +-SUBDIRS = po intl include share debian win32 @OPT_SUBDIRS@ +-DIST_SUBDIRS = po intl include share debian win32 ogg123 oggenc oggdec ogginfo \ ++SUBDIRS = po include share debian win32 @OPT_SUBDIRS@ ++DIST_SUBDIRS = po include share debian win32 ogg123 oggenc oggdec ogginfo \ + vcut vorbiscomment m4 + + EXTRA_DIST = config.rpath README AUTHORS COPYING CHANGES vorbis-tools.spec config.h mkinstalldirs +--- a/configure.ac ++++ b/configure.ac +@@ -31,7 +31,7 @@ CFLAGS="$cflags_save" + AC_PROG_LIBTOOL + + ALL_LINGUAS="be cs da en_GB eo es fr hr hu nl pl ro ru sk sv uk vi" +-AM_GNU_GETTEXT ++AM_GNU_GETTEXT([external]) + + dnl -------------------------------------------------- + dnl System checks +@@ -383,7 +383,6 @@ AC_OUTPUT([ + Makefile + m4/Makefile + po/Makefile.in +-intl/Makefile + include/Makefile + share/Makefile + win32/Makefile diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-multimedia/recipes-multimedia/vorbis-tools/vorbis-tools_1.4.0.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-multimedia/recipes-multimedia/vorbis-tools/vorbis-tools_1.4.0.bb index 8e9914b4..89e66528 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-multimedia/recipes-multimedia/vorbis-tools/vorbis-tools_1.4.0.bb +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-multimedia/recipes-multimedia/vorbis-tools/vorbis-tools_1.4.0.bb @@ -13,6 +13,7 @@ DEPENDS = "libogg libvorbis" SRC_URI = "http://downloads.xiph.org/releases/vorbis/${BP}.tar.gz \ file://0001-oggenc-Fix-large-alloca-on-bad-AIFF-input.patch \ file://0004-Fix-format-error-blocking-compilation-with-hardening.patch \ + file://gettext.patch \ " SRC_URI[md5sum] = "567e0fb8d321b2cd7124f8208b8b90e6" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-multimedia/recipes-multimedia/webrtc-audio-processing/webrtc-audio-processing/0001-build-Protect-against-unsupported-CPU-types.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-multimedia/recipes-multimedia/webrtc-audio-processing/webrtc-audio-processing/0001-build-Protect-against-unsupported-CPU-types.patch deleted file mode 100644 index 7668df35..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-multimedia/recipes-multimedia/webrtc-audio-processing/webrtc-audio-processing/0001-build-Protect-against-unsupported-CPU-types.patch +++ /dev/null @@ -1,29 +0,0 @@ -From 4945dca11bc4ddec60bd858f45212dc8f39638e0 Mon Sep 17 00:00:00 2001 -From: Nicolas Dufresne -Date: Tue, 5 Jul 2016 18:07:45 -0400 -Subject: [PATCH 1/6] build: Protect against unsupported CPU types - -Signed-off-by: Tanu Kaskinen -Upstream-Status: Accepted [expected in 0.4] ---- - configure.ac | 3 ++- - 1 file changed, 2 insertions(+), 1 deletion(-) - -diff --git a/configure.ac b/configure.ac -index 6f9553b..f5304b8 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -70,8 +70,9 @@ AS_CASE(["${host_cpu}"], - [ - HAVE_ARM=1 - ARCH_CFLAGS="-DWEBRTC_ARCH_ARM" -- ] -+ ], - # FIXME: Add MIPS support, see webrtc/BUILD.gn for defines -+ [AC_MSG_ERROR([Unsupported CPU type $host_cpu])] - ) - AM_CONDITIONAL(HAVE_X86, [test "x${HAVE_X86}" = "x1"]) - AM_CONDITIONAL(HAVE_ARM, [test "x${HAVE_ARM}" = "x1"]) --- -2.11.0 - diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-multimedia/recipes-multimedia/webrtc-audio-processing/webrtc-audio-processing/0002-build-Add-ARM-64bit-support.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-multimedia/recipes-multimedia/webrtc-audio-processing/webrtc-audio-processing/0002-build-Add-ARM-64bit-support.patch deleted file mode 100644 index 2e202b03..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-multimedia/recipes-multimedia/webrtc-audio-processing/webrtc-audio-processing/0002-build-Add-ARM-64bit-support.patch +++ /dev/null @@ -1,30 +0,0 @@ -From b5bda3431159b6505dcd069641c863018c4d4309 Mon Sep 17 00:00:00 2001 -From: Nicolas Dufresne -Date: Wed, 6 Jul 2016 15:18:15 -0400 -Subject: [PATCH 2/6] build: Add ARM 64bit support - -Signed-off-by: Tanu Kaskinen -Upstream-Status: Accepted [expected in 0.4] ---- - configure.ac | 5 +++++ - 1 file changed, 5 insertions(+) - -diff --git a/configure.ac b/configure.ac -index f5304b8..be20514 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -71,6 +71,11 @@ AS_CASE(["${host_cpu}"], - HAVE_ARM=1 - ARCH_CFLAGS="-DWEBRTC_ARCH_ARM" - ], -+ [aarch64*], -+ [ -+ HAVE_NEON=1 -+ ARCH_CFLAGS="-DWEBRTC_HAS_NEON -DWEBRTC_ARCH_ARM64" -+ ], - # FIXME: Add MIPS support, see webrtc/BUILD.gn for defines - [AC_MSG_ERROR([Unsupported CPU type $host_cpu])] - ) --- -2.11.0 - diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-multimedia/recipes-multimedia/webrtc-audio-processing/webrtc-audio-processing/0003-build-fix-architecture-detection.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-multimedia/recipes-multimedia/webrtc-audio-processing/webrtc-audio-processing/0003-build-fix-architecture-detection.patch deleted file mode 100644 index 82e270fa..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-multimedia/recipes-multimedia/webrtc-audio-processing/webrtc-audio-processing/0003-build-fix-architecture-detection.patch +++ /dev/null @@ -1,96 +0,0 @@ -From 7722fb8a3189fea0f6381f02a0e4f63c847f0393 Mon Sep 17 00:00:00 2001 -From: Thomas Petazzoni -Date: Sat, 6 Aug 2016 11:02:43 +0200 -Subject: [PATCH 3/6] build: fix architecture detection - -The current architecture detection, based on the "host_cpu" part of the -tuple does not work properly for a number of reason: - - - The code assumes that if host_cpu starts with "arm" then ARM - instructions are available, which is incorrect. Indeed, Cortex-M - platforms can run Linux, they are ARM platforms (so host_cpu = arm), - but they don't support ARM instructions: they support only the - Thumb-2 instruction set. - - - The armv7 case is also not very useful, as it is not standard at all - to pass armv7 as host_cpu even if the host system is actually ARMv7 - based. - - - For the same reason, the armv8 case is not very useful: ARMv8 is - AArch64, and there is already a separate case to handle this - architecture. - -So, this commit moves away from a host_cpu based logic, and instead -tests using AC_CHECK_DECLS() the built-in definitions of the compiler: - - - If we have __ARM_ARCH_ISA_ARM defined, then it's an ARM processor - that supports the ARM instruction set (this allows to exclude Thumb-2 - only processors). - - - If we have __ARM_ARCH_7A__, then we have an ARMv7-A processor, and - we can enable the corresponding optimizations - - - Same for __aarch64__, __i386__ and __x86_64__. - -In addition, we remove the AC_MSG_ERROR() that makes the build fail for -all architectures but the ones that are explicitly supported. Indeed, -webrtc-audio-processing builds just fine for other architectures (tested -on MIPS), it's just that none of the architecture-specific optimizations -will be used. - -Signed-off-by: Thomas Petazzoni -Signed-off-by: Tanu Kaskinen -Upstream-Status: Accepted [expected in 0.4] ---- - configure.ac | 35 +++++++++++------------------------ - 1 file changed, 11 insertions(+), 24 deletions(-) - -diff --git a/configure.ac b/configure.ac -index be20514..e898014 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -55,30 +55,17 @@ AS_CASE(["${host}"], - ) - AC_SUBST(PLATFORM_CFLAGS) - --AS_CASE(["${host_cpu}"], -- [i?86|x86_64], -- [ -- HAVE_X86=1 -- ], -- [armv7*|armv8*], -- [ -- HAVE_ARM=1 -- HAVE_ARMV7=1 -- ARCH_CFLAGS="-DWEBRTC_ARCH_ARM -DWEBRTC_ARCH_ARM_V7" -- ], -- [arm*], -- [ -- HAVE_ARM=1 -- ARCH_CFLAGS="-DWEBRTC_ARCH_ARM" -- ], -- [aarch64*], -- [ -- HAVE_NEON=1 -- ARCH_CFLAGS="-DWEBRTC_HAS_NEON -DWEBRTC_ARCH_ARM64" -- ], -- # FIXME: Add MIPS support, see webrtc/BUILD.gn for defines -- [AC_MSG_ERROR([Unsupported CPU type $host_cpu])] --) -+# Testing __ARM_ARCH_ISA_ARM since the code contains ARM instructions, -+# which don't work on Thumb-2 only platforms (ARMv7-M). -+AC_CHECK_DECLS([__ARM_ARCH_ISA_ARM], -+ [HAVE_ARM=1; ARCH_CFLAGS="${ARCH_CFLAGS} -DWEBRTC_ARCH_ARM"]) -+AC_CHECK_DECLS([__ARM_ARCH_7A__], -+ [HAVE_ARMV7=1; ARCH_CFLAGS="${ARCH_CFLAGS} -DWEBRTC_ARCH_ARM_V7"]) -+AC_CHECK_DECLS([__aarch64__], -+ [HAVE_NEON=1; ARCH_CFLAGS="${ARCH_CFLAGS} -DWEBRTC_HAS_NEON -DWEBRTC_ARCH_ARM64"]) -+AC_CHECK_DECLS([__i386__], [HAVE_X86=1]) -+AC_CHECK_DECLS([__x86_64__], [HAVE_X86=1]) -+ - AM_CONDITIONAL(HAVE_X86, [test "x${HAVE_X86}" = "x1"]) - AM_CONDITIONAL(HAVE_ARM, [test "x${HAVE_ARM}" = "x1"]) - AM_CONDITIONAL(HAVE_ARMV7, [test "x${HAVE_ARMV7}" = "x1"]) --- -2.11.0 - diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-multimedia/recipes-multimedia/webrtc-audio-processing/webrtc-audio-processing_0.3.1.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-multimedia/recipes-multimedia/webrtc-audio-processing/webrtc-audio-processing_0.3.1.bb new file mode 100644 index 00000000..b94dcf9f --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-multimedia/recipes-multimedia/webrtc-audio-processing/webrtc-audio-processing_0.3.1.bb @@ -0,0 +1,23 @@ +DESCRIPTION = "Audio processing bits of the WebRTC reference implementation" +HOMEPAGE = "https://www.freedesktop.org/software/pulseaudio/webrtc-audio-processing/" +SECTION = "audio" + +DEPENDS_append_libc-musl = " libexecinfo" + +LICENSE = "BSD-3-Clause" +LIC_FILES_CHKSUM = "file://COPYING;md5=da08a38a32a340c5d91e13ee86a118f2 \ + file://webrtc/common.h;beginline=1;endline=9;md5=41f7322d91deabaf0acbbd0b8d0bc548 \ +" + +SRC_URI = "http://freedesktop.org/software/pulseaudio/webrtc-audio-processing/${BP}.tar.xz \ + file://0004-typedefs.h-add-support-for-64-bit-and-big-endian-MIP.patch \ + file://0005-typedefs.h-add-support-for-PowerPC.patch \ + file://0006-common_audio-implement-endianness-conversion-in-wav-.patch \ + file://riscv_support.patch \ +" + +SRC_URI[md5sum] = "6e10724ca34bcbc715a4c208273acb0c" +SRC_URI[sha256sum] = "a0fdd938fd85272d67e81572c5a4d9e200a0c104753cb3c209ded175ce3c5dbf" + +LDFLAGS_append_libc-musl = " -lexecinfo" +inherit autotools pkgconfig diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-multimedia/recipes-multimedia/webrtc-audio-processing/webrtc-audio-processing_0.3.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-multimedia/recipes-multimedia/webrtc-audio-processing/webrtc-audio-processing_0.3.bb deleted file mode 100644 index dbba2f48..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-multimedia/recipes-multimedia/webrtc-audio-processing/webrtc-audio-processing_0.3.bb +++ /dev/null @@ -1,29 +0,0 @@ -DESCRIPTION = "Audio processing bits of the WebRTC reference implementation" -HOMEPAGE = "https://www.freedesktop.org/software/pulseaudio/webrtc-audio-processing/" -SECTION = "audio" - -DEPENDS_append_libc-musl = " libexecinfo" - -LICENSE = "BSD-3-Clause" -LIC_FILES_CHKSUM = "file://COPYING;md5=da08a38a32a340c5d91e13ee86a118f2 \ - file://webrtc/common.h;beginline=1;endline=9;md5=41f7322d91deabaf0acbbd0b8d0bc548 \ -" - -# Note that patch 3 effectively reverts patches 1 and 2. The only reason -# why patches 1 and 2 are included is that otherwise patch 3 wouldn't -# apply cleanly. -SRC_URI = "http://freedesktop.org/software/pulseaudio/webrtc-audio-processing/${BP}.tar.xz \ - file://0001-build-Protect-against-unsupported-CPU-types.patch \ - file://0002-build-Add-ARM-64bit-support.patch \ - file://0003-build-fix-architecture-detection.patch \ - file://0004-typedefs.h-add-support-for-64-bit-and-big-endian-MIP.patch \ - file://0005-typedefs.h-add-support-for-PowerPC.patch \ - file://0006-common_audio-implement-endianness-conversion-in-wav-.patch \ - file://riscv_support.patch \ -" - -SRC_URI[md5sum] = "336ae032f608e65808ac577cde0ab72c" -SRC_URI[sha256sum] = "756e291d4f557d88cd50c4fe3b8454ec238362d22cedb3e6173240d90f0a80fa" - -LDFLAGS_append_libc-musl = " -lexecinfo" -inherit autotools diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-multimedia/recipes-support/libmediaart/libmediaart.inc b/Contrib-Inspur/openbmc/meta-openembedded/meta-multimedia/recipes-support/libmediaart/libmediaart.inc index 57dca9c1..c7b368de 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-multimedia/recipes-support/libmediaart/libmediaart.inc +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-multimedia/recipes-support/libmediaart/libmediaart.inc @@ -7,8 +7,6 @@ LIC_FILES_CHKSUM = "file://COPYING.LESSER;md5=4fbd65380cdd255951079008b364516c \ DEPENDS = "glib-2.0 gdk-pixbuf" -GNOME_COMPRESS_TYPE = "xz" - inherit gnomebase gtk-doc gobject-introspection EXTRA_OECONF = "--disable-qt --enable-gdkpixbuf" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-networking/classes/waf-samba.bbclass b/Contrib-Inspur/openbmc/meta-openembedded/meta-networking/classes/waf-samba.bbclass index 1632c3c6..9c32952f 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-networking/classes/waf-samba.bbclass +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-networking/classes/waf-samba.bbclass @@ -1,9 +1,9 @@ # waf is a build system which is used by samba related project. # Obtain details from https://wiki.samba.org/index.php/Waf # -inherit qemu pythonnative +inherit qemu python3native -DEPENDS += "qemu-native libxslt-native docbook-xsl-stylesheets-native python" +DEPENDS += "qemu-native libxslt-native docbook-xsl-stylesheets-native python3" CONFIGUREOPTS = " --prefix=${prefix} \ --bindir=${bindir} \ @@ -111,7 +111,7 @@ do_configure() { do_compile[progress] = "outof:^\[\s*(\d+)/\s*(\d+)\]\s+" do_compile () { - python ./buildtools/bin/waf ${@oe.utils.parallel_make_argument(d, '-j%d', limit=64)} + python3 ./buildtools/bin/waf ${@oe.utils.parallel_make_argument(d, '-j%d', limit=64)} } do_install() { diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-networking/conf/layer.conf b/Contrib-Inspur/openbmc/meta-openembedded/meta-networking/conf/layer.conf index 67f58bcc..866bda75 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-networking/conf/layer.conf +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-networking/conf/layer.conf @@ -17,10 +17,11 @@ LAYERDEPENDS_networking-layer = "core" LAYERDEPENDS_networking-layer += "openembedded-layer" LAYERDEPENDS_networking-layer += "meta-python" -LAYERSERIES_COMPAT_networking-layer = "thud warrior" +LAYERSERIES_COMPAT_networking-layer = "thud warrior zeus" LICENSE_PATH += "${LAYERDIR}/licenses" SIGGEN_EXCLUDE_SAFE_RECIPE_DEPS += " \ wireguard-tools->wireguard-module \ + wireless-regdb->crda \ " diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-networking/files/waf-cross-answers/cross-answers-aarch64.txt b/Contrib-Inspur/openbmc/meta-openembedded/meta-networking/files/waf-cross-answers/cross-answers-aarch64.txt index 1023f6af..fc0400df 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-networking/files/waf-cross-answers/cross-answers-aarch64.txt +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-networking/files/waf-cross-answers/cross-answers-aarch64.txt @@ -37,3 +37,4 @@ Checking for small off_t: NO Checking whether blkcnt_t is 32 bit: NO Checking whether blkcnt_t is 64 bit: OK Checking whether fcntl lock supports open file description locks: OK +Checking for a 64-bit host to support lmdb: OK diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-networking/files/waf-cross-answers/cross-answers-aarch64_be.txt b/Contrib-Inspur/openbmc/meta-openembedded/meta-networking/files/waf-cross-answers/cross-answers-aarch64_be.txt index 1023f6af..fc0400df 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-networking/files/waf-cross-answers/cross-answers-aarch64_be.txt +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-networking/files/waf-cross-answers/cross-answers-aarch64_be.txt @@ -37,3 +37,4 @@ Checking for small off_t: NO Checking whether blkcnt_t is 32 bit: NO Checking whether blkcnt_t is 64 bit: OK Checking whether fcntl lock supports open file description locks: OK +Checking for a 64-bit host to support lmdb: OK diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-networking/files/waf-cross-answers/cross-answers-arm.txt b/Contrib-Inspur/openbmc/meta-openembedded/meta-networking/files/waf-cross-answers/cross-answers-arm.txt index a5cd9981..759afe8f 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-networking/files/waf-cross-answers/cross-answers-arm.txt +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-networking/files/waf-cross-answers/cross-answers-arm.txt @@ -38,3 +38,4 @@ Checking for small off_t: NO Checking whether blkcnt_t is 32 bit: NO Checking whether blkcnt_t is 64 bit: OK Checking whether fcntl lock supports open file description locks: OK +Checking for a 64-bit host to support lmdb: NO diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-networking/files/waf-cross-answers/cross-answers-armeb.txt b/Contrib-Inspur/openbmc/meta-openembedded/meta-networking/files/waf-cross-answers/cross-answers-armeb.txt index a5cd9981..759afe8f 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-networking/files/waf-cross-answers/cross-answers-armeb.txt +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-networking/files/waf-cross-answers/cross-answers-armeb.txt @@ -38,3 +38,4 @@ Checking for small off_t: NO Checking whether blkcnt_t is 32 bit: NO Checking whether blkcnt_t is 64 bit: OK Checking whether fcntl lock supports open file description locks: OK +Checking for a 64-bit host to support lmdb: NO diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-networking/files/waf-cross-answers/cross-answers-i586.txt b/Contrib-Inspur/openbmc/meta-openembedded/meta-networking/files/waf-cross-answers/cross-answers-i586.txt index a5cd9981..759afe8f 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-networking/files/waf-cross-answers/cross-answers-i586.txt +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-networking/files/waf-cross-answers/cross-answers-i586.txt @@ -38,3 +38,4 @@ Checking for small off_t: NO Checking whether blkcnt_t is 32 bit: NO Checking whether blkcnt_t is 64 bit: OK Checking whether fcntl lock supports open file description locks: OK +Checking for a 64-bit host to support lmdb: NO diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-networking/files/waf-cross-answers/cross-answers-i686.txt b/Contrib-Inspur/openbmc/meta-openembedded/meta-networking/files/waf-cross-answers/cross-answers-i686.txt index a5cd9981..759afe8f 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-networking/files/waf-cross-answers/cross-answers-i686.txt +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-networking/files/waf-cross-answers/cross-answers-i686.txt @@ -38,3 +38,4 @@ Checking for small off_t: NO Checking whether blkcnt_t is 32 bit: NO Checking whether blkcnt_t is 64 bit: OK Checking whether fcntl lock supports open file description locks: OK +Checking for a 64-bit host to support lmdb: NO diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-networking/files/waf-cross-answers/cross-answers-mips.txt b/Contrib-Inspur/openbmc/meta-openembedded/meta-networking/files/waf-cross-answers/cross-answers-mips.txt index 3e239e72..c989f270 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-networking/files/waf-cross-answers/cross-answers-mips.txt +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-networking/files/waf-cross-answers/cross-answers-mips.txt @@ -38,3 +38,4 @@ Checking for small off_t: NO Checking whether blkcnt_t is 32 bit: NO Checking whether blkcnt_t is 64 bit: OK Checking whether fcntl lock supports open file description locks: OK +Checking for a 64-bit host to support lmdb: NO diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-networking/files/waf-cross-answers/cross-answers-mips64.txt b/Contrib-Inspur/openbmc/meta-openembedded/meta-networking/files/waf-cross-answers/cross-answers-mips64.txt index 82e694fd..215f5748 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-networking/files/waf-cross-answers/cross-answers-mips64.txt +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-networking/files/waf-cross-answers/cross-answers-mips64.txt @@ -37,3 +37,4 @@ Checking for small off_t: NO Checking whether blkcnt_t is 32 bit: NO Checking whether blkcnt_t is 64 bit: OK Checking whether fcntl lock supports open file description locks: OK +Checking for a 64-bit host to support lmdb: OK diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-networking/files/waf-cross-answers/cross-answers-mips64el.txt b/Contrib-Inspur/openbmc/meta-openembedded/meta-networking/files/waf-cross-answers/cross-answers-mips64el.txt index 82e694fd..215f5748 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-networking/files/waf-cross-answers/cross-answers-mips64el.txt +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-networking/files/waf-cross-answers/cross-answers-mips64el.txt @@ -37,3 +37,4 @@ Checking for small off_t: NO Checking whether blkcnt_t is 32 bit: NO Checking whether blkcnt_t is 64 bit: OK Checking whether fcntl lock supports open file description locks: OK +Checking for a 64-bit host to support lmdb: OK diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-networking/files/waf-cross-answers/cross-answers-mipsel.txt b/Contrib-Inspur/openbmc/meta-openembedded/meta-networking/files/waf-cross-answers/cross-answers-mipsel.txt index 3e239e72..c989f270 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-networking/files/waf-cross-answers/cross-answers-mipsel.txt +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-networking/files/waf-cross-answers/cross-answers-mipsel.txt @@ -38,3 +38,4 @@ Checking for small off_t: NO Checking whether blkcnt_t is 32 bit: NO Checking whether blkcnt_t is 64 bit: OK Checking whether fcntl lock supports open file description locks: OK +Checking for a 64-bit host to support lmdb: NO diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-networking/files/waf-cross-answers/cross-answers-powerpc.txt b/Contrib-Inspur/openbmc/meta-openembedded/meta-networking/files/waf-cross-answers/cross-answers-powerpc.txt index 27b9378a..f1079749 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-networking/files/waf-cross-answers/cross-answers-powerpc.txt +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-networking/files/waf-cross-answers/cross-answers-powerpc.txt @@ -38,3 +38,4 @@ Checking for small off_t: NO Checking whether blkcnt_t is 32 bit: NO Checking whether blkcnt_t is 64 bit: OK Checking whether fcntl lock supports open file description locks: OK +Checking for a 64-bit host to support lmdb: NO diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-networking/files/waf-cross-answers/cross-answers-powerpc64.txt b/Contrib-Inspur/openbmc/meta-openembedded/meta-networking/files/waf-cross-answers/cross-answers-powerpc64.txt index 7fd3092c..7a443cc0 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-networking/files/waf-cross-answers/cross-answers-powerpc64.txt +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-networking/files/waf-cross-answers/cross-answers-powerpc64.txt @@ -38,3 +38,4 @@ Checking for small off_t: NO Checking whether blkcnt_t is 32 bit: NO Checking whether blkcnt_t is 64 bit: OK Checking whether fcntl lock supports open file description locks: OK +Checking for a 64-bit host to support lmdb: OK diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-networking/files/waf-cross-answers/cross-answers-riscv64.txt b/Contrib-Inspur/openbmc/meta-openembedded/meta-networking/files/waf-cross-answers/cross-answers-riscv64.txt index 1023f6af..fc0400df 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-networking/files/waf-cross-answers/cross-answers-riscv64.txt +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-networking/files/waf-cross-answers/cross-answers-riscv64.txt @@ -37,3 +37,4 @@ Checking for small off_t: NO Checking whether blkcnt_t is 32 bit: NO Checking whether blkcnt_t is 64 bit: OK Checking whether fcntl lock supports open file description locks: OK +Checking for a 64-bit host to support lmdb: OK diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-networking/files/waf-cross-answers/cross-answers-x86_64.txt b/Contrib-Inspur/openbmc/meta-openembedded/meta-networking/files/waf-cross-answers/cross-answers-x86_64.txt index 1023f6af..fc0400df 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-networking/files/waf-cross-answers/cross-answers-x86_64.txt +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-networking/files/waf-cross-answers/cross-answers-x86_64.txt @@ -37,3 +37,4 @@ Checking for small off_t: NO Checking whether blkcnt_t is 32 bit: NO Checking whether blkcnt_t is 64 bit: OK Checking whether fcntl lock supports open file description locks: OK +Checking for a 64-bit host to support lmdb: OK diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-networking/recipes-connectivity/adcli/adcli_0.8.2.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-networking/recipes-connectivity/adcli/adcli_0.8.2.bb new file mode 100644 index 00000000..75f30306 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-networking/recipes-connectivity/adcli/adcli_0.8.2.bb @@ -0,0 +1,27 @@ +SUMMARY = "Active Directory enrollment" +DESCRIPTION = "A helper library and tools for Active Directory client operations." + +HOMEPAGE = "http://cgit.freedesktop.org/realmd/adcli" +SECTION = "net" + +SRCREV = "cc3ef52884a48863a81acbfc741735fe09cd85f7" + +SRC_URI = "git://gitlab.freedesktop.org/realmd/adcli;branch=master \ + file://Fixed-build-error-on-musl.patch \ + " + +S = "${WORKDIR}/git" + +LICENSE = "LGPLv2+" +LIC_FILES_CHKSUM = "file://COPYING;md5=23c2a5e0106b99d75238986559bb5fc6" + +inherit autotools xmlcatalog + +DEPENDS += "virtual/crypt krb5 openldap gettext libxslt xmlto libxml2-native \ + cyrus-sasl libxslt-native xmlto-native coreutils-native\ + " + +EXTRA_OECONF += "--disable-static \ + --disable-silent-rules \ + --disable-doc \ + " diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-networking/recipes-connectivity/adcli/files/Fixed-build-error-on-musl.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-networking/recipes-connectivity/adcli/files/Fixed-build-error-on-musl.patch new file mode 100644 index 00000000..87bcdfeb --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-networking/recipes-connectivity/adcli/files/Fixed-build-error-on-musl.patch @@ -0,0 +1,26 @@ +From 0e64782a45cba9753d1210ee7d7c9dbd42f74ceb Mon Sep 17 00:00:00 2001 +From: Zang Ruochen +Date: Fri, 12 Jul 2019 12:46:54 +0800 +Subject: [PATCH] Fixed build error on musl. + +Signed-off-by: Khem Raj +Signed-off-by: Zang Ruochen +--- + library/adutil.c | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/library/adutil.c b/library/adutil.c +index 9b0c47f..b673edd 100644 +--- a/library/adutil.c ++++ b/library/adutil.c +@@ -30,6 +30,7 @@ + #include + #include + #include ++#include + #include + #include + #include +-- +2.20.1 + diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-networking/recipes-connectivity/blueman/blueman/0002-fix-fail-to-enable-bluetooth.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-networking/recipes-connectivity/blueman/blueman/0002-fix-fail-to-enable-bluetooth.patch new file mode 100644 index 00000000..00115cfc --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-networking/recipes-connectivity/blueman/blueman/0002-fix-fail-to-enable-bluetooth.patch @@ -0,0 +1,81 @@ +Fix fail to enable bluetooth issue + +When launch blueman-manager while bluetooth is disable, it may fails +with error: + + Failed to enable bluetooth + +Because when get bluetooth status right after change its status, the +status may not be updated that plugin applet/KillSwitch.py sets the +bluetooth status via method of another dbus service which doesn't return +immediately. + +Provides a new dbus method for PowerManager which checks whether dbus +method SetBluetoothStatus() has finished. Then it makes sure to get +right bluetooth status. + +Upstream-Status: Inappropriate +Send to upstream but not accepted: +https://github.com/blueman-project/blueman/pull/1121 + +Signed-off-by: Kai Kang +--- + blueman/Functions.py | 12 +++++++++++- + blueman/plugins/applet/PowerManager.py | 4 ++++ + 2 files changed, 15 insertions(+), 1 deletion(-) + +diff --git a/blueman/Functions.py b/blueman/Functions.py +index 3b76271..c5eeb27 100644 +--- a/blueman/Functions.py ++++ b/blueman/Functions.py +@@ -17,7 +17,7 @@ + # You should have received a copy of the GNU General Public License + # along with this program. If not, see . + # +-from time import sleep ++from time import sleep, time + import re + import os + import signal +@@ -86,6 +86,16 @@ def check_bluetooth_status(message, exitfunc): + return + + applet.SetBluetoothStatus('(b)', True) ++ ++ timeout = time() + 10 ++ while applet.GetRequestStatus(): ++ sleep(0.1) ++ if time() > timeout: ++ # timeout 5s has been set in applet/PowerManager.py ++ # so it should NOT reach timeout here ++ logging.warning('Should NOT reach timeout.') ++ break ++ + if not applet.GetBluetoothStatus(): + print('Failed to enable bluetooth') + exitfunc() +diff --git a/blueman/plugins/applet/PowerManager.py b/blueman/plugins/applet/PowerManager.py +index 8ec9fc4..29a0fb0 100644 +--- a/blueman/plugins/applet/PowerManager.py ++++ b/blueman/plugins/applet/PowerManager.py +@@ -48,6 +48,7 @@ class PowerManager(AppletPlugin): + self._add_dbus_signal("BluetoothStatusChanged", "b") + self._add_dbus_method("SetBluetoothStatus", ("b",), "", self.request_power_state) + self._add_dbus_method("GetBluetoothStatus", (), "b", self.get_bluetooth_status) ++ self._add_dbus_method("GetRequestStatus", (), "b", self.get_request_status) + + def on_unload(self): + self.parent.Plugins.Menu.unregister(self) +@@ -182,6 +183,9 @@ class PowerManager(AppletPlugin): + def get_bluetooth_status(self): + return self.current_state + ++ def get_request_status(self): ++ return self.request_in_progress ++ + def on_adapter_property_changed(self, _path, key, value): + if key == "Powered": + if value and not self.current_state: +-- +2.20.1 + diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-networking/recipes-connectivity/blueman/blueman_2.1.1.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-networking/recipes-connectivity/blueman/blueman_2.1.1.bb new file mode 100644 index 00000000..0ea7f6de --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-networking/recipes-connectivity/blueman/blueman_2.1.1.bb @@ -0,0 +1,60 @@ +DESCRIPTION = "Blueman is a GTK+ Bluetooth Manager" +LICENSE = "GPLv3" +LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504" + +DEPENDS = "bluez5 python3-pygobject python3-cython-native python3-setuptools-native intltool-native" + +inherit autotools systemd gsettings python3native gtk-icon-cache + +SRC_URI = " \ + https://github.com/blueman-project/blueman/releases/download/${PV}/blueman-${PV}.tar.xz \ + file://0001-Search-for-cython3.patch \ + file://0002-fix-fail-to-enable-bluetooth.patch \ +" +SRC_URI[md5sum] = "9de89abb31be45bdbf11f7884764a2dc" +SRC_URI[sha256sum] = "f1eab2334e5a1587defa80900901048d14c2e8ffa8c0cff7240bc9937a61dbc3" + +EXTRA_OECONF = " \ + --disable-appindicator \ + --disable-runtime-deps-check \ + --disable-schemas-compile \ +" + +SYSTEMD_SERVICE_${PN} = "${BPN}-mechanism.service" +SYSTEMD_AUTO_ENABLE_${PN} = "disable" + +RRECOMENDS_${PN} += "adwaita-icon-theme" +RDEPENDS_${PN} += " \ + python3-core \ + python3-dbus \ + packagegroup-tools-bluetooth \ +" + +PACKAGECONFIG ??= "thunar" +PACKAGECONFIG[thunar] = "--enable-thunar-sendto,--disable-thunar-sendto" + +FILES_${PN} += " \ + ${datadir}/dbus-1 \ + ${datadir}/Thunar \ + ${systemd_user_unitdir} \ + ${exec_prefix}${systemd_system_unitdir} \ + ${PYTHON_SITEPACKAGES_DIR} \ +" + +FILES_${PN}-staticdev += "${PYTHON_SITEPACKAGES_DIR}/_blueman.a" + +# In code, path to python is a variable that is replaced with path to native version of it +# during the configure stage, e.g ../recipe-sysroot-native/usr/bin/python3-native/python3. +# Replace it with #!/usr/bin/env python3 +do_install_append() { + sed -i "1s/.*/#!\/usr\/bin\/env python3/" ${D}${prefix}/libexec/blueman-rfcomm-watcher \ + ${D}${prefix}/libexec/blueman-mechanism \ + ${D}${bindir}/blueman-tray \ + ${D}${bindir}/blueman-services \ + ${D}${bindir}/blueman-sendto \ + ${D}${bindir}/blueman-report \ + ${D}${bindir}/blueman-manager \ + ${D}${bindir}/blueman-assistant \ + ${D}${bindir}/blueman-applet \ + ${D}${bindir}/blueman-adapters +} diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-networking/recipes-connectivity/blueman/blueman_git.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-networking/recipes-connectivity/blueman/blueman_git.bb deleted file mode 100644 index 947db783..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-networking/recipes-connectivity/blueman/blueman_git.bb +++ /dev/null @@ -1,41 +0,0 @@ -DESCRIPTION = "Blueman is a GTK+ Bluetooth Manager" -LICENSE = "GPLv3" -LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504" - -DEPENDS = "bluez5 python3-pygobject python3-cython-native python3-setuptools-native intltool-native" - -inherit autotools systemd gsettings python3native gtk-icon-cache - -SRC_URI = " \ - git://github.com/blueman-project/blueman.git \ - file://0001-Search-for-cython3.patch \ -" -SRCREV = "c4a03417e81e21543d4568e8e7f7de307582eb50" -PV = "2.0.5+git${SRCPV}" -S = "${WORKDIR}/git" - -EXTRA_OECONF = " \ - --disable-runtime-deps-check \ - --disable-schemas-compile \ -" - -SYSTEMD_SERVICE_${PN} = "${BPN}-mechanism.service" -SYSTEMD_AUTO_ENABLE_${PN} = "disable" - -RRECOMENDS_${PN} += "adwaita-icon-theme" -RDEPENDS_${PN} += " \ - python3-dbus \ - packagegroup-tools-bluetooth \ -" - -PACKAGECONFIG[thunar] = "--enable-thunar-sendto,--disable-thunar-sendto,,thunar" - -FILES_${PN} += " \ - ${datadir}/dbus-1 \ - ${datadir}/Thunar \ - ${systemd_user_unitdir} \ - ${exec_prefix}${systemd_system_unitdir} \ - ${PYTHON_SITEPACKAGES_DIR} \ -" - -FILES_${PN}-staticdev += "${PYTHON_SITEPACKAGES_DIR}/_blueman.a" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-networking/recipes-connectivity/cannelloni/cannelloni/0001-Use-GNUInstallDirs-instead-of-hard-coding-paths.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-networking/recipes-connectivity/cannelloni/cannelloni/0001-Use-GNUInstallDirs-instead-of-hard-coding-paths.patch new file mode 100644 index 00000000..b78f0b32 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-networking/recipes-connectivity/cannelloni/cannelloni/0001-Use-GNUInstallDirs-instead-of-hard-coding-paths.patch @@ -0,0 +1,43 @@ +From c74f04dbab4d586287347b1d5517f36e2f0c3d8e Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Thu, 19 Dec 2019 15:52:34 -0800 +Subject: [PATCH] Use GNUInstallDirs instead of hard-coding paths + +Bump minimum cmake version to be >= 3.1 + +Upstream-Status: Submitted [https://github.com/mguentner/cannelloni/pull/22] +Signed-off-by: Khem Raj +--- + CMakeLists.txt | 8 +++++--- + 1 file changed, 5 insertions(+), 3 deletions(-) + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 51b354f..958e0eb 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -1,4 +1,4 @@ +-cmake_minimum_required(VERSION 2.6) ++cmake_minimum_required(VERSION 3.1) + project(cannelloni) + + list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake/modules") +@@ -60,6 +60,8 @@ set_target_properties ( cannelloni-common + SOVERSION 0 + ) + ++include(GNUInstallDirs) ++ + if(SCTP_SUPPORT) + add_library(sctpthread STATIC sctpthread.cpp) + target_link_libraries(sctpthread addsources sctp) +@@ -68,5 +70,5 @@ endif(SCTP_SUPPORT) + set_target_properties(addsources PROPERTIES LIBRARY_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}) + target_link_libraries(cannelloni addsources cannelloni-common pthread) + +-install(TARGETS cannelloni DESTINATION bin) +-install(TARGETS cannelloni-common DESTINATION lib) ++install(TARGETS cannelloni DESTINATION ${CMAKE_INSTALL_BINDIR}) ++install(TARGETS cannelloni-common DESTINATION ${CMAKE_INSTALL_LIBDIR}) +-- +2.24.1 + diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-networking/recipes-connectivity/cannelloni/cannelloni/0002-include-missing-stdexcept-for-runtime_error.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-networking/recipes-connectivity/cannelloni/cannelloni/0002-include-missing-stdexcept-for-runtime_error.patch new file mode 100644 index 00000000..55f28dd6 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-networking/recipes-connectivity/cannelloni/cannelloni/0002-include-missing-stdexcept-for-runtime_error.patch @@ -0,0 +1,32 @@ +From 1788762863cd1f657697575f6e73a22e661ccb43 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Mon, 23 Dec 2019 10:32:54 -0800 +Subject: [PATCH 2/2] include missing for runtime_error +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Fixes +error: ‘runtime_error’ is not a member of ‘std’ + +Upstream-Status: Submitted [https://github.com/mguentner/cannelloni/pull/22] +Signed-off-by: Khem Raj +--- + parser.cpp | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/parser.cpp b/parser.cpp +index 4afb9e0..5bcdbde 100644 +--- a/parser.cpp ++++ b/parser.cpp +@@ -2,6 +2,7 @@ + + #include + #include ++#include + + void parseFrames(uint16_t len, const uint8_t* buffer, std::function frameAllocator, + std::function frameReceiver) +-- +2.24.1 + diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-networking/recipes-connectivity/cannelloni/cannelloni_git.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-networking/recipes-connectivity/cannelloni/cannelloni_git.bb index df75e634..d4a62bd9 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-networking/recipes-connectivity/cannelloni/cannelloni_git.bb +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-networking/recipes-connectivity/cannelloni/cannelloni_git.bb @@ -2,8 +2,11 @@ SUMMARY = "a SocketCAN over Ethernet tunnel" HOMEPAGE = "https://github.com/mguentner/cannelloni" LICENSE = "GPLv2" -SRC_URI = "git://github.com/mguentner/cannelloni.git;protocol=https" -SRCREV = "44080bb021d1a143e6906f2ec4610513c4e1cece" +SRC_URI = "git://github.com/mguentner/cannelloni.git;protocol=https \ + file://0001-Use-GNUInstallDirs-instead-of-hard-coding-paths.patch \ + file://0002-include-missing-stdexcept-for-runtime_error.patch \ + " +SRCREV = "82aa49b417b96fe46bb3f017ae1bfea928f20f9a" PV = "20160414+${SRCPV}" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-networking/recipes-connectivity/civetweb/civetweb_git.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-networking/recipes-connectivity/civetweb/civetweb_git.bb index c8fe24c6..71368c1a 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-networking/recipes-connectivity/civetweb/civetweb_git.bb +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-networking/recipes-connectivity/civetweb/civetweb_git.bb @@ -4,7 +4,7 @@ HOMEPAGE = "https://github.com/civetweb/civetweb" LICENSE = "MIT" LIC_FILES_CHKSUM = "file://LICENSE.md;md5=6f28fdcba0dda735eed62bac6a397562" -SRCREV = "ce8f6d38a60eb16c996afee1e5340f76ef4d0923" +SRCREV = "6423faea4800f6cd4055750a7af2da85cdbe4e96" PV = "1.11+git${SRCPV}" SRC_URI = "git://github.com/civetweb/civetweb.git \ file://0001-Unittest-Link-librt-and-libm-using-l-option.patch \ diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-networking/recipes-connectivity/crda/crda_3.18.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-networking/recipes-connectivity/crda/crda_3.18.bb index c93905ea..7c925b25 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-networking/recipes-connectivity/crda/crda_3.18.bb +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-networking/recipes-connectivity/crda/crda_3.18.bb @@ -22,7 +22,7 @@ inherit python-dir pythonnative siteinfo # Recursive make problem EXTRA_OEMAKE = "MAKEFLAGS= DESTDIR=${D} LIBDIR=${libdir}/crda LDLIBREG='-Wl,-rpath,${libdir}/crda -lreg' \ - UDEV_RULE_DIR=${nonarch_libdir}/udev/rules.d/" + UDEV_RULE_DIR=${nonarch_base_libdir}/udev/rules.d/" TARGET_BITS = "${SITEINFO_BITS}" export TARGET_BITS diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-networking/recipes-connectivity/dhcpcd/dhcpcd_7.0.8.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-networking/recipes-connectivity/dhcpcd/dhcpcd_7.0.8.bb deleted file mode 100644 index 84c3db7a..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-networking/recipes-connectivity/dhcpcd/dhcpcd_7.0.8.bb +++ /dev/null @@ -1,26 +0,0 @@ -SECTION = "console/network" -SUMMARY = "dhcpcd - a DHCP client" -DESCRIPTION = "dhcpcd runs on your machine and silently configures your computer to work on the attached networks without trouble and mostly without configuration." - -HOMEPAGE = "http://roy.marples.name/projects/dhcpcd/" - -LICENSE = "BSD-2-Clause" -LIC_FILES_CHKSUM = "file://LICENSE;md5=1e8f17e4edcccc38152ccf60374e0f89" - -SRC_URI = "http://roy.marples.name/downloads/${BPN}/${BPN}-${PV}.tar.xz" - -SRC_URI[md5sum] = "77bbb1d73b6f30d6ddcc8b0fd3eae266" -SRC_URI[sha256sum] = "96968e883369ab4afd11eba9dfd9bb109f5dfff65b2814ce6c432f36362dc9b5" - -SRC_URI += "file://0001-remove-INCLUDEDIR-to-prevent-build-issues.patch" - -inherit autotools-brokensep - -PACKAGECONFIG ?= "udev ${@bb.utils.filter('DISTRO_FEATURES', 'ipv6', d)}" - -PACKAGECONFIG[udev] = "--with-udev,--without-udev,udev,udev" -PACKAGECONFIG[ipv6] = "--enable-ipv6,--disable-ipv6" - -EXTRA_OECONF = "--enable-ipv4" - -FILES_${PN}-dbg += "${libdir}/dhcpcd/dev/.debug" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-networking/recipes-connectivity/dhcpcd/dhcpcd_8.1.5.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-networking/recipes-connectivity/dhcpcd/dhcpcd_8.1.5.bb new file mode 100644 index 00000000..3349ca15 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-networking/recipes-connectivity/dhcpcd/dhcpcd_8.1.5.bb @@ -0,0 +1,27 @@ +SECTION = "console/network" +SUMMARY = "dhcpcd - a DHCP client" +DESCRIPTION = "dhcpcd runs on your machine and silently configures your computer to work on the attached networks without trouble and mostly without configuration." + +HOMEPAGE = "http://roy.marples.name/projects/dhcpcd/" + +LICENSE = "BSD-2-Clause" +LIC_FILES_CHKSUM = "file://LICENSE;md5=0531457992a97ecebc6975914a874a9d" + +UPSTREAM_CHECK_URI = "https://roy.marples.name/downloads/dhcpcd/" + +SRC_URI = "http://roy.marples.name/downloads/${BPN}/${BPN}-${PV}.tar.xz \ + file://0001-remove-INCLUDEDIR-to-prevent-build-issues.patch" + +SRC_URI[md5sum] = "57fd5dd4ff9722773ec67239db34d3b5" +SRC_URI[sha256sum] = "c5cbe15069cef347e72d0bf7a19b0255571ee0c184c6705859a09588a50a8ebd" + +inherit pkgconfig autotools-brokensep + +PACKAGECONFIG ?= "udev ${@bb.utils.filter('DISTRO_FEATURES', 'ipv6', d)}" + +PACKAGECONFIG[udev] = "--with-udev,--without-udev,udev,udev" +PACKAGECONFIG[ipv6] = "--enable-ipv6,--disable-ipv6" + +EXTRA_OECONF = "--enable-ipv4" + +FILES_${PN}-dbg += "${libdir}/dhcpcd/dev/.debug" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-networking/recipes-connectivity/firewalld/files/0001-fix-building-in-a-separate-directory-outside-the-sou.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-networking/recipes-connectivity/firewalld/files/0001-fix-building-in-a-separate-directory-outside-the-sou.patch deleted file mode 100644 index 3f34ff2e..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-networking/recipes-connectivity/firewalld/files/0001-fix-building-in-a-separate-directory-outside-the-sou.patch +++ /dev/null @@ -1,77 +0,0 @@ -firewalld: fix building in a separate directory outside the source tree - -Upstream-Status: Submitted [https://github.com/firewalld/firewalld/pull/456] -Signed-off-by: Dan Callaghan - -diff --git a/config/Makefile.am b/config/Makefile.am -index 7048d2ee..5270d408 100644 ---- a/config/Makefile.am -+++ b/config/Makefile.am -@@ -377,11 +377,11 @@ install-config: - $(MKDIR_P) $(DESTDIR)$(sconfdir)/zones - $(MKDIR_P) $(DESTDIR)$(sconfdir)/helpers - $(MKDIR_P) $(DESTDIR)$(prefixlibdir) -- cp -r icmptypes $(DESTDIR)$(prefixlibdir) -- cp -r ipsets $(DESTDIR)$(prefixlibdir) -- cp -r services $(DESTDIR)$(prefixlibdir) -- cp -r zones $(DESTDIR)$(prefixlibdir) -- cp -r helpers $(DESTDIR)$(prefixlibdir) -+ cp -r $(srcdir)/icmptypes $(DESTDIR)$(prefixlibdir) -+ cp -r $(srcdir)/ipsets $(DESTDIR)$(prefixlibdir) -+ cp -r $(srcdir)/services $(DESTDIR)$(prefixlibdir) -+ cp -r $(srcdir)/zones $(DESTDIR)$(prefixlibdir) -+ cp -r $(srcdir)/helpers $(DESTDIR)$(prefixlibdir) - - uninstall-config: - rmdir $(DESTDIR)$(sconfdir)/icmptypes -diff --git a/doc/xml/Makefile.am b/doc/xml/Makefile.am -index 8c93ab9c..d0313e3e 100644 ---- a/doc/xml/Makefile.am -+++ b/doc/xml/Makefile.am -@@ -69,7 +69,8 @@ edit = sed \ - -e 's|\@PREFIX\@|$(prefix)|' \ - -e 's|\@SYSCONFDIR\@|$(sysconfdir)|' \ - -e 's|\@PACKAGE_STRING\@|$(PACKAGE_STRING)|' \ -- -e 's|\@IFCFGDIR\@|$(IFCFGDIR)|' -+ -e 's|\@IFCFGDIR\@|$(IFCFGDIR)|' \ -+ -e 's|@SRCDIR@|$(srcdir)|' - - transform-man.xsl: transform-man.xsl.in - $(edit) $< >$@ -diff --git a/doc/xml/firewall-cmd.xml.in b/doc/xml/firewall-cmd.xml.in -index c2606553..24d77858 100644 ---- a/doc/xml/firewall-cmd.xml.in -+++ b/doc/xml/firewall-cmd.xml.in -@@ -1,9 +1,9 @@ - - -- -- -+ -+ -+ - - ]> - -diff --git a/doc/xml/firewalld.xml.in b/doc/xml/firewalld.xml.in -index de802059..3d319b04 100644 ---- a/doc/xml/firewalld.xml.in -+++ b/doc/xml/firewalld.xml.in -@@ -1,9 +1,9 @@ - - -- -- -+ -+ -+ - ]> - - - - - - - - - - camera - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - camera - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - camera - - - - - portable_audio_player - - - - - portable_audio_player - - - - - camera - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - portable_audio_player - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - portable_audio_player - - - - - portable_audio_player - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - camera - - - - - portable_audio_player - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - portable_audio_player - - - - - camera - - - - - camera - - - - - portable_audio_player - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - camera - - - - - camera - - - - - camera - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - camera - - - - - camera - - - - - camera - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - camera - - - - - camera - - - - - camera - - - - - portable_audio_player - - - - - portable_audio_player - - - - - camera - - - - - camera - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - camera - - - - - camera - - - - - portable_audio_player - - - - - camera - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - camera - - - - - portable_audio_player - - - - - portable_audio_player - - - - - camera - - - - - camera - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - camera - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - camera - - - - - camera - - - - - camera - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - camera - - - - - camera - - - - - portable_audio_player - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - portable_audio_player - - - - - camera - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - camera - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - camera - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - camera - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - camera - - - - - camera - - - - - portable_audio_player - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - portable_audio_player - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - portable_audio_player - - - - - portable_audio_player - - - - - camera - - - - - camera - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - camera - - - - - camera - - - - - camera - - - - - portable_audio_player - - - - - portable_audio_player - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - portable_audio_player - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - camera - - - - - camera - - - - - camera - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - camera - - - - - portable_audio_player - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - portable_audio_player - - - - - portable_audio_player - - - - - camera - - - - - portable_audio_player - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - portable_audio_player - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - camera - - - - - camera - - - - - portable_audio_player - - - - - camera - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - portable_audio_player - - - - - camera - - - - - camera - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - camera - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - camera - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - camera - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - portable_audio_player - - - - - diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/gphoto2/libgphoto2/10-camera-libgphoto2.fdi b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/gphoto2/libgphoto2/10-camera-libgphoto2.fdi deleted file mode 100644 index 00427e7d..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/gphoto2/libgphoto2/10-camera-libgphoto2.fdi +++ /dev/null @@ -1,19018 +0,0 @@ - - - - - - - - - camera - camera - proprietary - JL2005B/C/D camera - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Acer E350 Liquid Gallant Duo (ID1) - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Acer E350 Liquid Gallant Duo (ID2) - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Acer E39 - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Acer Iconia A1-810 - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Acer Iconia A1-840FHD - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Acer Iconia A3-A11 - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Acer Iconia TAB A100 (ID1) - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Acer Iconia TAB A100 (ID2) - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Acer Iconia TAB A101 (ID1) - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Acer Iconia TAB A110 - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Acer Iconia TAB A200 (ID1) - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Acer Iconia TAB A200 (ID2) - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Acer Iconia TAB A210 - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Acer Iconia TAB A500 (ID1) - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Acer Iconia TAB A500 (ID2) - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Acer Iconia TAB A501 (ID1) - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Acer Iconia TAB A501 (ID2) - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Acer Iconia TAB A510 (ID1) - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Acer Iconia TAB A510 (ID2) - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Acer Iconia TAB A700 - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Acer Liquid E2 - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Acer Liquid E3 - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Acer liquid e700 - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Acer Liquid S56 - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Acer Liquid X1 - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Acer Liquid Z120 MT65xx Android Phone - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Acer Liquid Z130 MT65xx Android Phone - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Acer One 7 - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Acer S500 CloudMobile - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Acer Z150 - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Acer Z160 - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Acromag Inc. XO Learning Tablet (MTP) - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Acromag Inc. XO Learning Tablet (MTP+ADB) - true - - - - - camera - camera - proprietary - AEG Snap 300 - true - - - - - camera - camera - proprietary - Agfa ePhoto CL18 - true - - - - - camera - camera - proprietary - Agfa ePhoto CL20 - true - - - - - camera - camera - proprietary - Aiptek 1.3 mega PocketCam - true - - - - - camera - camera - proprietary - Aiptek PalmCam Trio - true - - - - - camera - camera - proprietary - Aiptek Pencam - true - - - - - camera - camera - proprietary - Aiptek PenCam Trio - true - - - - - camera - camera - proprietary - Aiptek PenCam VGA+ - true - - - - - camera - camera - proprietary - Aiptek Pencam without flash - true - - - - - camera - camera - proprietary - Aiptek Smart Megacam - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Alcatel 6030a - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Alcatel One Touch 997D (MTP) - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Alcatel One Touch 997D (MTP+ADB) - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Alcatel OneTouch 5042D (MTP) - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Alcatel OneTouch 6034R - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Alcatel/Bouygues BS472 - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Alcatel/TCT 6010D/TCL S950 - true - - - - - camera - camera - proprietary - Amazing Spiderman - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Amazon Fire Phone - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Amazon Kindle Fire (ID1) - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Amazon Kindle Fire (ID2) - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Amazon Kindle Fire (ID3) - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Amazon Kindle Fire (ID4) - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Amazon Kindle Fire (ID5) - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Amazon Kindle Fire (ID6) - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Amazon Kindle Fire (ID7) - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Amazon Kindle Fire 2G (ID1) - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Amazon Kindle Fire HD6 - true - - - - - camera - camera - proprietary - American Idol Keychain Camera - true - - - - - - - - camera - camera - ptp - Apple iPad (PTP mode) - true - - - - - - - - - - - camera - camera - ptp - Apple iPad Air - true - - - - - - - - - - - camera - camera - ptp - Apple iPhone (PTP mode) - true - - - - - - - - - - - camera - camera - ptp - Apple iPhone 3G (PTP mode) - true - - - - - - - - - - - camera - camera - ptp - Apple iPhone 3GS (PTP mode) - true - - - - - - - - - - - camera - camera - ptp - Apple iPhone 4 (PTP mode) - true - - - - - - - - - - - camera - camera - ptp - Apple iPhone 4S (PTP mode) - true - - - - - - - - - - - camera - camera - ptp - Apple iPhone 5 (PTP mode) - true - - - - - - - - - - - camera - camera - ptp - Apple iPod Touch (PTP mode) - true - - - - - - - - - - - camera - camera - ptp - Apple iPod Touch 2G (PTP mode) - true - - - - - - - - - - - camera - camera - ptp - Apple iPod Touch 3rd Gen (PTP mode) - true - - - - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Archos (for Tesco) Hudl (ID1) - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Archos (for Tesco) Hudl (ID2) - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Archos 101 G4 - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Archos 101 G9 (ID1) - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Archos 101 G9 (ID2) - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Archos 101 G9 Turbo - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Archos 101 G9 Turbo 250 HD - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Archos 101 Titanium - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Archos 101 XS - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Archos 104 (MTP mode) - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Archos 105 (MTP mode) - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Archos 204 (MTP mode) - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Archos 404 (MTP mode) - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Archos 404CAM (MTP mode) - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Archos 405 (MTP mode) - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Archos 405HDD (MTP mode) - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Archos 45 Neon - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Archos 5 (MTP mode 1) - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Archos 5 (MTP mode 2) - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Archos 50 Diamond - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Archos 504 (MTP mode) - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Archos 50c - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Archos 5H IT (MTP mode) - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Archos 5S IT (MTP mode) - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Archos 604 (MTP mode) - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Archos 604WIFI (MTP mode) - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Archos 605 (MTP mode) - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Archos 605F (MTP mode) - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Archos 7 (MTP mode) - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Archos 704 mobile dvr - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Archos 704TV (MTP mode) - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Archos 705 (MTP mode) - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Archos 70b Titanium - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Archos 70it2 (ID 1) - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Archos 70it2 (ID 2) - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Archos 80 Titanium - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Archos 80G9 - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Archos 8o G9 (MTP mode) - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Archos 8o G9 Turbo (MTP mode) - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Archos 97 Titanium - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Archos 97 Xenon - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Archos Arnova 10bG3 Tablet - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Archos Arnova 8c G3 - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Archos Arnova Childpad - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Archos C40 - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Archos Gmini XS100 - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Archos SPOD (MTP mode) - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Archos TV+ (MTP mode) - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Archos XS202 (MTP mode) - true - - - - - camera - camera - proprietary - Argus Bean Sprout - true - - - - - camera - camera - proprietary - Argus DC-1500 - true - - - - - camera - camera - proprietary - Argus DC-1510 - true - - - - - camera - camera - proprietary - Argus DC-1610 - true - - - - - camera - camera - proprietary - Argus DC-1620 - true - - - - - camera - camera - proprietary - Argus DC-1730 - true - - - - - camera - camera - proprietary - Argus DC-2200 - true - - - - - camera - camera - proprietary - Argus DC1512e - true - - - - - camera - camera - proprietary - Argus QuickClix - true - - - - - camera - camera - proprietary - Aries ATC-0017 - true - - - - - camera - camera - proprietary - Aries Digital Keychain Camera, I - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Asus A450CG (MTP) - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Asus Asus Fonepad Note 6 (MTP) - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Asus Asus Fonepad Note 6 (MTP+ADB) - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Asus Fonepad - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Asus Fonepad 7 (FE375CXG) - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Asus Fonepad 7 LTE ME372CL (MTP) - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Asus Fonepad 7 LTE ME372CL (MTP+ADB) - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Asus K00E (MTP+ADB) - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Asus K010 (MTP) - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Asus ME301T MeMo Pad Smart 10 (MTP) - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Asus ME301T MeMo Pad Smart 10 (MTP+ADB) - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Asus ME302C MemoPad (MTP) - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Asus ME302C MemoPad (MTP+?) - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Asus ME302KL MeMo Pad FHD10 (MTP) - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Asus ME302KL MeMo Pad FHD10 (MTP+ADB) - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Asus Memo K00F (MTP) - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Asus Memo K00F (MTP+ADB) - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Asus Memo ME172V (MTP) - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Asus Memo ME173X (MTP) - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Asus Memo ME173X (MTP+ADB) - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Asus Memo Pad 8 (MTP) - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Asus MemoPad 7 (ME572CL) - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Asus MemoPad 7 (MTP+ADB) - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Asus MemoPad 8 ME181 CX (MTP) - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Asus PadFone (MTP) - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Asus PadFone (MTP+ADB) - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Asus PadFone 2 (MTP) - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Asus PadFone 2 (MTP+ADB) - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Asus PadFone 2 (PTP) - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Asus PadFone Infinity (2nd ID) (MTP) - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Asus PadFone Infinity (2nd ID) (MTP+ADB) - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Asus PadFone Infinity (MTP) - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Asus PadFone Infinity (MTP+ADB) - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Asus SL101 (MTP) - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Asus SL101 (MTP+ADB) - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Asus TF101 Eeepad Transformer (MTP) - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Asus TF101 Eeepad Transformer (MTP+ADB) - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Asus TF201 Transformer Prime (keyboard dock) - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Asus TF201 Transformer Prime (tablet only) - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Asus TF300 Transformer (MTP) - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Asus TF300 Transformer (MTP+ADB) - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Asus TF700 Transformer (MTP) - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Asus TF700 Transformer (MTP+ADB) - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Asus TF701T Transformer Pad (MTP) - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Asus TF701T Transformer Pad (MTP+ADB) - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Asus TX201LA (MTP) - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Asus Zenfone 2 ZE550ML (MTP) - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Asus ZenFone 4 (MTP) - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Asus ZenFone 4 A400CG (MTP) - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Asus ZenFone 5 (MTP) - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Asus ZenFone 5 (MTP+ADB) - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Asus ZenFone 5 A500KL (MTP+ADB) - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Asus ZenFone 6 (MTP) - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Asus ZenFone 6 (MTP+ADB) - true - - - - - camera - camera - proprietary - Barbie Camera (Digital Blue) - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Barnes&Noble Nook HD - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Barnes&Noble Nook HD+ - true - - - - - camera - camera - proprietary - Benq DC1300 - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - BenQ F5 - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - bq Aquarius E5-4G - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - bq Krillin (MTP) - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - bq Krillin (MTP+ADB) - true - - - - - camera - camera - proprietary - Canon Digital IXUS - true - - - - - camera - camera - ptp - Canon Digital IXUS 100 IS - true - - - - - camera - camera - ptp - Canon Digital IXUS 110 IS - true - - - - - camera - camera - ptp - Canon Digital IXUS 120 IS - true - - - - - camera - camera - ptp - Canon Digital IXUS 130 - true - - - - - camera - camera - ptp - Canon Digital IXUS 255HS - true - - - - - camera - camera - ptp - Canon Digital IXUS 30 (PTP mode) - true - - - - - camera - camera - proprietary - Canon Digital IXUS 300 - true - - - - - camera - camera - ptp - Canon Digital IXUS 300 HS - true - - - - - camera - camera - proprietary - Canon Digital IXUS 330 - true - - - - - camera - camera - ptp - Canon Digital IXUS 40 (PTP mode) - true - - - - - camera - camera - ptp - Canon Digital IXUS 400 (PTP mode) - true - - - - - camera - camera - ptp - Canon Digital IXUS 430 (PTP mode) - true - - - - - camera - camera - ptp - Canon Digital IXUS 50 (PTP mode) - true - - - - - camera - camera - ptp - Canon Digital IXUS 500 (PTP mode) - true - - - - - camera - camera - ptp - Canon Digital IXUS 55 (PTP mode) - true - - - - - camera - camera - ptp - Canon Digital IXUS 60 (PTP mode) - true - - - - - camera - camera - ptp - Canon Digital IXUS 65 (PTP mode) - true - - - - - camera - camera - ptp - Canon Digital IXUS 70 (PTP mode) - true - - - - - camera - camera - ptp - Canon Digital IXUS 700 (PTP mode) - true - - - - - camera - camera - ptp - Canon Digital IXUS 75 (PTP mode) - true - - - - - camera - camera - ptp - Canon Digital IXUS 750 (PTP mode) - true - - - - - camera - camera - ptp - Canon Digital IXUS 80 IS - true - - - - - camera - camera - ptp - Canon Digital IXUS 800 (PTP mode) - true - - - - - camera - camera - ptp - Canon Digital IXUS 85 IS - true - - - - - camera - camera - ptp - Canon Digital IXUS 850 IS (PTP mode) - true - - - - - camera - camera - ptp - Canon Digital IXUS 860 IS - true - - - - - camera - camera - ptp - Canon Digital IXUS 90 IS - true - - - - - camera - camera - ptp - Canon Digital IXUS 900Ti (PTP mode) - true - - - - - camera - camera - ptp - Canon Digital IXUS 95 IS - true - - - - - camera - camera - ptp - Canon Digital IXUS 950 IS (PTP mode) - true - - - - - camera - camera - ptp - Canon Digital IXUS 960 IS (PTP mode) - true - - - - - camera - camera - ptp - Canon Digital IXUS 970 IS - true - - - - - camera - camera - ptp - Canon Digital IXUS 980 IS - true - - - - - camera - camera - ptp - Canon Digital IXUS 990 IS - true - - - - - camera - camera - proprietary - Canon Digital IXUS i (normal mode) - true - - - - - camera - camera - ptp - Canon Digital IXUS i (PTP mode) - true - - - - - camera - camera - proprietary - Canon Digital IXUS i5 (normal mode) - true - - - - - camera - camera - ptp - Canon Digital IXUS II (PTP mode) - true - - - - - camera - camera - ptp - Canon Digital IXUS IIs (PTP mode) - true - - - - - camera - camera - ptp - Canon Digital IXUS iZ (PTP mode) - true - - - - - camera - camera - proprietary - Canon Digital IXUS v - true - - - - - camera - camera - proprietary - Canon Digital IXUS v2 - true - - - - - camera - camera - proprietary - Canon Digital IXUS v3 (normal mode) - true - - - - - camera - camera - ptp - Canon Digital IXUS v3 (PTP mode) - true - - - - - camera - camera - ptp - Canon Digital IXUS Wireless (PTP mode) - true - - - - - camera - camera - proprietary - Canon Digital Rebel XT (normal mode) - true - - - - - camera - camera - proprietary - Canon Digital unknown 3 - true - - - - - camera - camera - proprietary - Canon Elura 50 (normal mode) - true - - - - - camera - camera - ptp - Canon Elura 50 (PTP mode) - true - - - - - camera - camera - ptp - Canon Elura 65 (PTP mode) - true - - - - - camera - camera - ptp - Canon EOS 1000D - true - - - - - camera - camera - ptp - Canon EOS 100D - true - - - - - camera - camera - proprietary - Canon EOS 10D - true - - - - - camera - camera - ptp - Canon EOS 10D (PTP mode) - true - - - - - camera - camera - ptp - Canon EOS 1100D - true - - - - - camera - camera - ptp - Canon EOS 1200D - true - - - - - camera - camera - ptp - Canon EOS 1D Mark II (PTP mode) - true - - - - - camera - camera - ptp - Canon EOS 1D Mark III (PTP mode) - true - - - - - camera - camera - ptp - Canon EOS 1D Mark IV - true - - - - - camera - camera - ptp - Canon EOS 1D X - true - - - - - camera - camera - proprietary - Canon EOS 20D (normal mode) - true - - - - - camera - camera - ptp - Canon EOS 20D (PTP mode) - true - - - - - camera - camera - proprietary - Canon EOS 300D (normal mode) - true - - - - - camera - camera - ptp - Canon EOS 300D (PTP mode) - true - - - - - camera - camera - ptp - Canon EOS 30D (PTP mode) - true - - - - - camera - camera - ptp - Canon EOS 350D - true - - - - - camera - camera - proprietary - Canon EOS 350D (normal mode) - true - - - - - camera - camera - ptp - Canon EOS 350D (PTP mode) - true - - - - - camera - camera - ptp - Canon EOS 400D (PTP mode) - true - - - - - camera - camera - ptp - Canon EOS 40D (PTP mode) - true - - - - - camera - camera - ptp - Canon EOS 450D (PTP mode) - true - - - - - camera - camera - ptp - Canon EOS 500D - true - - - - - camera - camera - ptp - Canon EOS 50D - true - - - - - camera - camera - ptp - Canon EOS 550D - true - - - - - camera - camera - proprietary - Canon EOS 5D (normal mode) - true - - - - - camera - camera - ptp - Canon EOS 5D (PTP mode) - true - - - - - camera - camera - ptp - Canon EOS 5D Mark II - true - - - - - camera - camera - ptp - Canon EOS 5D Mark III - true - - - - - camera - camera - ptp - Canon EOS 600D - true - - - - - camera - camera - ptp - Canon EOS 60D - true - - - - - camera - camera - ptp - Canon EOS 650D - true - - - - - camera - camera - ptp - Canon EOS 6D - true - - - - - camera - camera - ptp - Canon EOS 700D - true - - - - - camera - camera - ptp - Canon EOS 70D - true - - - - - camera - camera - ptp - Canon EOS 7D - true - - - - - camera - camera - ptp - Canon EOS 7D MarkII - true - - - - - camera - camera - proprietary - Canon EOS D30 - true - - - - - camera - camera - proprietary - Canon EOS D60 - true - - - - - camera - camera - proprietary - Canon EOS Digital Rebel (normal mode) - true - - - - - camera - camera - ptp - Canon EOS Digital Rebel (PTP mode) - true - - - - - camera - camera - ptp - Canon EOS Digital Rebel XTi (PTP mode) - true - - - - - camera - camera - proprietary - Canon EOS Kiss Digital (normal mode) - true - - - - - camera - camera - ptp - Canon EOS Kiss Digital (PTP mode) - true - - - - - camera - camera - proprietary - Canon EOS Kiss Digital N (normal mode) - true - - - - - camera - camera - ptp - Canon EOS Kiss Digital X (PTP mode) - true - - - - - camera - camera - ptp - Canon EOS Kiss X2 (PTP mode) - true - - - - - camera - camera - ptp - Canon EOS Kiss X3 - true - - - - - camera - camera - ptp - Canon EOS M - true - - - - - camera - camera - ptp - Canon EOS M3 - true - - - - - camera - camera - ptp - Canon EOS Rebel T1i - true - - - - - camera - camera - ptp - Canon EOS Rebel XSi (PTP mode) - true - - - - - camera - camera - proprietary - Canon FV M1 (normal mode) - true - - - - - camera - camera - ptp - Canon IXUS 125HS - true - - - - - camera - camera - ptp - Canon IXUS 165 - true - - - - - camera - camera - ptp - Canon IXUS 310IS - true - - - - - camera - camera - ptp - Canon IXY 220 IS - true - - - - - camera - camera - ptp - Canon IXY 3000 IS - true - - - - - camera - camera - proprietary - Canon IXY DIGITAL - true - - - - - camera - camera - proprietary - Canon IXY DIGITAL 300 - true - - - - - camera - camera - proprietary - Canon IXY Digital L2 (normal mode) - true - - - - - camera - camera - proprietary - Canon IXY DV M - true - - - - - camera - camera - proprietary - Canon IXY DV M2 (normal mode) - true - - - - - camera - camera - proprietary - Canon MV630i (normal mode) - true - - - - - camera - camera - proprietary - Canon MV650i (normal mode) - true - - - - - camera - camera - ptp - Canon MV750i (PTP mode) - true - - - - - camera - camera - proprietary - Canon MVX 10i (normal mode) - true - - - - - camera - camera - proprietary - Canon MVX 3i (normal mode) - true - - - - - camera - camera - proprietary - Canon MVX100i - true - - - - - camera - camera - proprietary - Canon MVX150i (normal mode) - true - - - - - camera - camera - proprietary - Canon MVX25i (normal mode) - true - - - - - camera - camera - proprietary - Canon MVX2i - true - - - - - camera - camera - ptp - Canon MVX3i (PTP mode) - true - - - - - camera - camera - proprietary - Canon Optura 10 - true - - - - - camera - camera - proprietary - Canon Optura 20 - true - - - - - camera - camera - proprietary - Canon Optura 20 (normal mode) - true - - - - - camera - camera - proprietary - Canon Optura 200 MC - true - - - - - camera - camera - proprietary - Canon Optura 300 (normal mode) - true - - - - - camera - camera - proprietary - Canon Optura 40 (normal mode) - true - - - - - camera - camera - ptp - Canon Optura 600 (PTP mode) - true - - - - - camera - camera - proprietary - Canon Optura Xi (normal mode) - true - - - - - camera - camera - proprietary - Canon PowerShot A10 - true - - - - - camera - camera - proprietary - Canon PowerShot A100 - true - - - - - camera - camera - ptp - Canon PowerShot A1000 IS - true - - - - - camera - camera - ptp - Canon PowerShot A1100 IS - true - - - - - camera - camera - ptp - Canon PowerShot A1300IS - true - - - - - camera - camera - ptp - Canon PowerShot A1400 - true - - - - - camera - camera - proprietary - Canon PowerShot A20 - true - - - - - camera - camera - proprietary - Canon PowerShot A200 - true - - - - - camera - camera - ptp - Canon PowerShot A2000 IS - true - - - - - camera - camera - ptp - Canon PowerShot A2100 IS - true - - - - - camera - camera - ptp - Canon PowerShot A2200 - true - - - - - camera - camera - ptp - Canon PowerShot A2300IS - true - - - - - camera - camera - ptp - Canon PowerShot A2400IS - true - - - - - camera - camera - ptp - Canon PowerShot A2500 - true - - - - - camera - camera - ptp - Canon PowerShot A2600 - true - - - - - camera - camera - proprietary - Canon PowerShot A30 - true - - - - - camera - camera - ptp - Canon PowerShot A300 (PTP mode) - true - - - - - camera - camera - ptp - Canon PowerShot A3000 IS - true - - - - - camera - camera - ptp - Canon PowerShot A310 (PTP mode) - true - - - - - camera - camera - ptp - Canon PowerShot A3100 IS - true - - - - - camera - camera - ptp - Canon PowerShot A3500IS - true - - - - - camera - camera - proprietary - Canon PowerShot A40 - true - - - - - camera - camera - ptp - Canon PowerShot A400 (PTP mode) - true - - - - - camera - camera - ptp - Canon PowerShot A4000IS - true - - - - - camera - camera - ptp - Canon PowerShot A410 (PTP mode) - true - - - - - camera - camera - ptp - Canon PowerShot A420 (PTP mode) - true - - - - - camera - camera - ptp - Canon PowerShot A430 (PTP mode) - true - - - - - camera - camera - ptp - Canon PowerShot A450 (PTP mode) - true - - - - - camera - camera - ptp - Canon PowerShot A460 (PTP mode) - true - - - - - camera - camera - ptp - Canon PowerShot A470 - true - - - - - camera - camera - ptp - Canon PowerShot A480 - true - - - - - camera - camera - ptp - Canon Powershot A495 - true - - - - - camera - camera - ptp - Canon PowerShot A510 (PTP mode) - true - - - - - camera - camera - ptp - Canon PowerShot A520 (PTP mode) - true - - - - - camera - camera - ptp - Canon PowerShot A530 (PTP mode) - true - - - - - camera - camera - ptp - Canon PowerShot A540 (PTP mode) - true - - - - - camera - camera - ptp - Canon PowerShot A550 (PTP mode) - true - - - - - camera - camera - ptp - Canon PowerShot A560 (PTP mode) - true - - - - - camera - camera - ptp - Canon PowerShot A570 IS (PTP mode) - true - - - - - camera - camera - ptp - Canon PowerShot A580 - true - - - - - camera - camera - ptp - Canon PowerShot A590 IS - true - - - - - camera - camera - ptp - Canon PowerShot A60 (PTP) - true - - - - - camera - camera - ptp - Canon PowerShot A610 (PTP mode) - true - - - - - camera - camera - ptp - Canon PowerShot A620 (PTP mode) - true - - - - - camera - camera - ptp - Canon PowerShot A630 (PTP mode) - true - - - - - camera - camera - ptp - Canon PowerShot A640 (PTP mode) - true - - - - - camera - camera - ptp - Canon PowerShot A650IS (PTP mode) - true - - - - - camera - camera - ptp - Canon PowerShot A70 (PTP) - true - - - - - camera - camera - ptp - Canon PowerShot A700 (PTP mode) - true - - - - - camera - camera - ptp - Canon PowerShot A710 IS (PTP mode) - true - - - - - camera - camera - ptp - Canon PowerShot A720 IS (PTP mode) - true - - - - - camera - camera - ptp - Canon PowerShot A75 (PTP mode) - true - - - - - camera - camera - ptp - Canon PowerShot A80 (PTP) - true - - - - - camera - camera - ptp - Canon PowerShot A800 - true - - - - - camera - camera - ptp - Canon PowerShot A810 - true - - - - - camera - camera - ptp - Canon PowerShot A85 (PTP mode) - true - - - - - camera - camera - ptp - Canon PowerShot A95 (PTP mode) - true - - - - - camera - camera - ptp - Canon PowerShot D10 - true - - - - - camera - camera - ptp - Canon PowerShot Elph135 - true - - - - - camera - camera - ptp - Canon PowerShot Elph340HS - true - - - - - camera - camera - proprietary - Canon PowerShot G1 - true - - - - - camera - camera - ptp - Canon PowerShot G1 X - true - - - - - camera - camera - ptp - Canon PowerShot G10 - true - - - - - camera - camera - ptp - Canon PowerShot G11 - true - - - - - camera - camera - ptp - Canon PowerShot G15 - true - - - - - camera - camera - proprietary - Canon PowerShot G2 - true - - - - - camera - camera - proprietary - Canon PowerShot G3 (normal mode) - true - - - - - camera - camera - ptp - Canon PowerShot G3 (PTP mode) - true - - - - - camera - camera - ptp - Canon PowerShot G5 (PTP mode) - true - - - - - camera - camera - ptp - Canon Powershot G6 (PTP mode) - true - - - - - camera - camera - ptp - Canon PowerShot G7 (PTP mode) - true - - - - - camera - camera - ptp - Canon PowerShot G9 (PTP mode) - true - - - - - camera - camera - proprietary - Canon PowerShot IXY Digital L (normal mode) - true - - - - - camera - camera - proprietary - Canon PowerShot Pro90 IS - true - - - - - camera - camera - ptp - Canon PowerShot S1 IS (PTP mode) - true - - - - - camera - camera - proprietary - Canon PowerShot S10 - true - - - - - camera - camera - ptp - Canon PowerShot S100 - true - - - - - camera - camera - proprietary - Canon PowerShot S100 (2000) - true - - - - - camera - camera - proprietary - Canon PowerShot S110 (2001) - true - - - - - camera - camera - ptp - Canon PowerShot S110 (PTP Mode) - true - - - - - camera - camera - ptp - Canon PowerShot S120 - true - - - - - camera - camera - ptp - Canon PowerShot S2 IS (PTP mode) - true - - - - - camera - camera - proprietary - Canon PowerShot S20 - true - - - - - camera - camera - proprietary - Canon PowerShot S200 - true - - - - - camera - camera - proprietary - Canon PowerShot S230 (normal mode) - true - - - - - camera - camera - ptp - Canon PowerShot S230 (PTP mode) - true - - - - - camera - camera - ptp - Canon PowerShot S3 IS (PTP mode) - true - - - - - camera - camera - proprietary - Canon PowerShot S30 - true - - - - - camera - camera - proprietary - Canon PowerShot S300 - true - - - - - camera - camera - proprietary - Canon PowerShot S330 - true - - - - - camera - camera - proprietary - Canon PowerShot S40 - true - - - - - camera - camera - ptp - Canon PowerShot S400 (PTP mode) - true - - - - - camera - camera - ptp - Canon PowerShot S410 (PTP mode) - true - - - - - camera - camera - proprietary - Canon PowerShot S45 (normal mode) - true - - - - - camera - camera - ptp - Canon PowerShot S45 (PTP mode) - true - - - - - camera - camera - ptp - Canon PowerShot S5 IS (PTP mode) - true - - - - - camera - camera - ptp - Canon PowerShot S50 (PTP mode) - true - - - - - camera - camera - ptp - Canon PowerShot S500 (PTP mode) - true - - - - - camera - camera - ptp - Canon Powershot S60 (PTP mode) - true - - - - - camera - camera - ptp - Canon Powershot S70 (PTP mode) - true - - - - - camera - camera - ptp - Canon PowerShot S80 (PTP mode) - true - - - - - camera - camera - ptp - Canon PowerShot S95 - true - - - - - camera - camera - proprietary - Canon PowerShot SD10 Digital ELPH (normal mode) - true - - - - - camera - camera - ptp - Canon PowerShot SD100 (PTP mode) - true - - - - - camera - camera - ptp - Canon PowerShot SD1000 (PTP mode) - true - - - - - camera - camera - ptp - Canon PowerShot SD110 (PTP mode) - true - - - - - camera - camera - ptp - Canon Powershot SD1100 IS - true - - - - - camera - camera - ptp - Canon Powershot SD1200 IS - true - - - - - camera - camera - ptp - Canon PowerShot SD1300 IS - true - - - - - camera - camera - proprietary - Canon PowerShot SD20 (normal mode) - true - - - - - camera - camera - ptp - Canon PowerShot SD200 (PTP mode) - true - - - - - camera - camera - ptp - Canon PowerShot SD40 (PTP mode) - true - - - - - camera - camera - ptp - Canon PowerShot SD430 (PTP mode) - true - - - - - camera - camera - ptp - Canon PowerShot SD450 (PTP mode) - true - - - - - camera - camera - ptp - Canon PowerShot SD500 (PTP mode) - true - - - - - camera - camera - ptp - Canon PowerShot SD600 (PTP mode) - true - - - - - camera - camera - ptp - Canon PowerShot SD630 (PTP mode) - true - - - - - camera - camera - ptp - Canon PowerShot SD700 (PTP mode) - true - - - - - camera - camera - ptp - Canon PowerShot SD750 (PTP mode) - true - - - - - camera - camera - ptp - Canon PowerShot SD770 IS - true - - - - - camera - camera - ptp - Canon PowerShot SD780 IS - true - - - - - camera - camera - ptp - Canon Powershot SD790 IS - true - - - - - camera - camera - ptp - Canon PowerShot SD850 (PTP mode) - true - - - - - camera - camera - ptp - Canon PowerShot SD880 IS - true - - - - - camera - camera - ptp - Canon PowerShot SD900 (PTP mode) - true - - - - - camera - camera - ptp - Canon PowerShot SD940 IS - true - - - - - camera - camera - ptp - Canon PowerShot SD970 IS - true - - - - - camera - camera - ptp - Canon PowerShot SD990 - true - - - - - camera - camera - ptp - Canon PowerShot SX10 IS - true - - - - - camera - camera - ptp - Canon Powershot SX100 IS (PTP mode) - true - - - - - camera - camera - ptp - Canon PowerShot SX110 IS - true - - - - - camera - camera - ptp - Canon PowerShot SX120 IS - true - - - - - camera - camera - ptp - Canon PowerShot SX130 IS - true - - - - - camera - camera - ptp - Canon PowerShot SX150 IS - true - - - - - camera - camera - ptp - Canon PowerShot SX160IS - true - - - - - camera - camera - ptp - Canon PowerShot SX170 IS - true - - - - - camera - camera - ptp - Canon PowerShot SX20 IS - true - - - - - camera - camera - ptp - Canon PowerShot SX200 IS - true - - - - - camera - camera - ptp - Canon PowerShot SX210 IS - true - - - - - camera - camera - ptp - Canon PowerShot SX220HS - true - - - - - camera - camera - ptp - Canon PowerShot SX230HS - true - - - - - camera - camera - ptp - Canon PowerShot SX240HS - true - - - - - camera - camera - ptp - Canon PowerShot SX260HS - true - - - - - camera - camera - ptp - Canon PowerShot SX280HS - true - - - - - camera - camera - ptp - Canon PowerShot SX40HS - true - - - - - camera - camera - ptp - Canon PowerShot SX500IS - true - - - - - camera - camera - ptp - Canon PowerShot SX510 HS - true - - - - - camera - camera - ptp - Canon PowerShot SX520 HS - true - - - - - camera - camera - proprietary - Canon PowerShot unknown 1 - true - - - - - camera - camera - proprietary - Canon PowerShot unknown 2 - true - - - - - camera - camera - ptp - Canon Rebel T2i - true - - - - - camera - camera - ptp - Canon Rebel T3 - true - - - - - camera - camera - ptp - Canon Rebel T4i - true - - - - - camera - camera - proprietary - Canon ZR70MC (normal mode) - true - - - - - camera - camera - ptp - Casio EX-S770 - true - - - - - camera - camera - ptp - Casio EX-Z120 - true - - - - - camera - camera - ptp - Casio EX-Z65 - true - - - - - camera - camera - ptp - Casio EX-Z700 - true - - - - - camera - camera - ptp - Casio EX-ZR700 - true - - - - - camera - camera - proprietary - Casio LV 10 - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Caterpillar Cat S50 - true - - - - - camera - camera - proprietary - Che-ez Snap - true - - - - - camera - camera - proprietary - Che-Ez Snap SNAP-U - true - - - - - camera - camera - proprietary - Che-ez! Babe - true - - - - - camera - camera - proprietary - Che-ez! Splash - true - - - - - camera - camera - proprietary - Che-ez! SPYZ - true - - - - - camera - camera - proprietary - Clever CAM 360 - true - - - - - camera - camera - proprietary - Cobra DC125 - true - - - - - camera - camera - proprietary - Cobra Digital Camera DC150 - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Coby COBY MP705 - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Conceptronic CMTD2 - true - - - - - camera - camera - proprietary - Concord Eye-Q Duo - true - - - - - camera - camera - proprietary - Concord Eye-Q Easy - true - - - - - camera - camera - proprietary - Concord EyeQ 4330 - true - - - - - camera - camera - proprietary - Concord EyeQMini_1 - true - - - - - camera - camera - proprietary - Concord EyeQMini_2 - true - - - - - camera - camera - proprietary - CoolCam CP086 - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Cowon iAudio 10 (MTP mode) - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Cowon iAudio 6 (MTP mode) - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Cowon iAudio 7 (MTP mode) - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Cowon iAudio 9 (MTP mode) - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Cowon iAudio C2 (MTP mode) - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Cowon iAudio D2 (MTP mode) - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Cowon iAudio D2+ DAB FW 4.x (MTP mode) - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Cowon iAudio D2+ DMB FW 1.x (MTP mode) - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Cowon iAudio D2+ FW 2.x (MTP mode) - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Cowon iAudio D2+ FW 3.x (MTP mode) - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Cowon iAudio J3 (MTP mode) - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Cowon iAudio S9 (MTP mode) - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Cowon iAudio U3 (MTP mode) - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Cowon iAudio U5 (MTP mode) - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Cowon iAudio X7 (MTP mode) - true - - - - - camera - camera - proprietary - Creative CardCam - true - - - - - camera - camera - proprietary - Creative Go Mini - true - - - - - camera - camera - proprietary - Creative PC-CAM 300 - true - - - - - camera - camera - proprietary - Creative PC-CAM350 - true - - - - - camera - camera - proprietary - Creative PC-CAM600 - true - - - - - camera - camera - proprietary - Creative PC-CAM750 - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Creative Portable Media Center - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Creative ZEN - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Creative ZEN Micro (MTP mode) - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Creative ZEN MicroPhoto - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Creative ZEN MicroPhoto (alternate version) - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Creative ZEN Mozaic - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Creative ZEN Sleek (MTP mode) - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Creative ZEN Sleek Photo - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Creative ZEN Touch (MTP mode) - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Creative ZEN V - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Creative ZEN V 2GB - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Creative ZEN V Plus - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Creative ZEN Vision - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Creative ZEN Vision W - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Creative ZEN Vision:M - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Creative ZEN Vision:M (DVP-HD0004) - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Creative ZEN X-Fi - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Creative ZEN X-Fi 3 - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Creative ZEN Xtra (MTP mode) - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Curitel Communications, Inc. Verizon Wireless Device - true - - - - - camera - camera - proprietary - D-Link DSC 350+ - true - - - - - camera - camera - proprietary - D-Link DSC 350F - true - - - - - camera - camera - proprietary - D-MAX DM3588 - true - - - - - camera - camera - proprietary - DC-N130t - true - - - - - camera - camera - proprietary - DC-N130ta - true - - - - - camera - camera - proprietary - DC31VC - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Dell Dell Pocket DJ (MTP mode) - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Dell DJ (2nd generation) - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Dell Inc Dell Streak 7 - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Dell Inc Dell Venue 7 inch - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Dell Inc Dell Venue 7 inch (2nd ID) - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Dell Inc DJ Itty - true - - - - - camera - camera - proprietary - Digigr8 - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - DigiLand DL701Q - true - - - - - camera - camera - proprietary - Digital camera, CD302N - true - - - - - camera - camera - proprietary - DIGITAL MID#0020509 (no-name camera) - true - - - - - camera - camera - proprietary - DigitalDream Enigma1.3 - true - - - - - camera - camera - proprietary - DigitalDream l'elegante - true - - - - - camera - camera - proprietary - DigitalDream l'elite - true - - - - - camera - camera - proprietary - DigitalDream l'espion - true - - - - - camera - camera - proprietary - DigitalDream l'espion XS - true - - - - - camera - camera - proprietary - DigitalDream l'espion xtra - true - - - - - camera - camera - proprietary - DigitalDream l'esprit - true - - - - - camera - camera - proprietary - DigitalDream la ronde - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Disney MixMax - true - - - - - camera - camera - proprietary - Disney pix micro - true - - - - - camera - camera - proprietary - Disney pix micro 2 - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Dunlop MP3 player 1GB / EGOMAN MD223AFD - true - - - - - camera - camera - proprietary - Elta Medi@ digi-cam - true - - - - - camera - camera - proprietary - Emprex PCD3600 - true - - - - - camera - camera - proprietary - Epson PhotoPC 3000z - true - - - - - camera - camera - proprietary - Epson PhotoPC 850z - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Fly Evo Tech 4 - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Fly iq4415 era style 3 - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Fly iq449 - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - FOMA D905i - true - - - - - camera - camera - proprietary - Fuji Axia Eyeplate - true - - - - - camera - camera - proprietary - Fuji Axia Slimshot - true - - - - - camera - camera - ptp - Fuji FinePix A330 - true - - - - - camera - camera - ptp - Fuji FinePix A800 - true - - - - - camera - camera - ptp - Fuji FinePix A820 - true - - - - - camera - camera - ptp - Fuji FinePix A920 - true - - - - - camera - camera - ptp - Fuji FinePix AV-150 - true - - - - - camera - camera - ptp - Fuji FinePix E900 - true - - - - - camera - camera - ptp - Fuji FinePix F100fd - true - - - - - camera - camera - ptp - Fuji FinePix F20 - true - - - - - camera - camera - ptp - Fuji FinePix F200 EXR - true - - - - - camera - camera - ptp - Fuji FinePix F30 - true - - - - - camera - camera - ptp - Fuji FinePix F31fd - true - - - - - camera - camera - ptp - Fuji FinePix F40fd - true - - - - - camera - camera - ptp - Fuji FinePix F50fd - true - - - - - camera - camera - ptp - Fuji FinePix F60fd - true - - - - - camera - camera - ptp - Fuji FinePix F70 EXR - true - - - - - camera - camera - ptp - Fuji FinePix F80EXR - true - - - - - camera - camera - ptp - Fuji FinePix H20EXR - true - - - - - camera - camera - ptp - Fuji FinePix HS30EXR - true - - - - - camera - camera - ptp - Fuji FinePix JX370 - true - - - - - camera - camera - ptp - Fuji FinePix S1000fd - true - - - - - camera - camera - ptp - Fuji FinePix S100fs - true - - - - - camera - camera - ptp - Fuji FinePix S1500 - true - - - - - camera - camera - ptp - Fuji FinePix S1800 - true - - - - - camera - camera - ptp - Fuji FinePix S2000HD - true - - - - - camera - camera - ptp - Fuji FinePix S2500HD - true - - - - - camera - camera - ptp - Fuji FinePix S2950 - true - - - - - camera - camera - ptp - Fuji FinePix S2980 - true - - - - - camera - camera - ptp - Fuji FinePix S4300 - true - - - - - camera - camera - ptp - Fuji FinePix S4850 - true - - - - - camera - camera - ptp - Fuji FinePix S5700 - true - - - - - camera - camera - ptp - Fuji FinePix S5800 - true - - - - - camera - camera - ptp - Fuji FinePix S6500fd - true - - - - - camera - camera - ptp - Fuji FinePix S7000 - true - - - - - camera - camera - ptp - Fuji FinePix S9500 - true - - - - - camera - camera - ptp - Fuji FinePix SL1000 - true - - - - - camera - camera - ptp - Fuji FinePix T200 - true - - - - - camera - camera - ptp - Fuji FinePix X-S1 - true - - - - - camera - camera - ptp - Fuji FinePix X10 - true - - - - - camera - camera - ptp - Fuji FinePix X20 - true - - - - - camera - camera - ptp - Fuji FinePix XF1 - true - - - - - camera - camera - ptp - Fuji FinePix Z100fd - true - - - - - camera - camera - ptp - Fuji FinePix Z35 - true - - - - - camera - camera - ptp - Fuji FinePix Z700EXR - true - - - - - camera - camera - ptp - Fuji Fujifilm A220 - true - - - - - camera - camera - ptp - Fuji Fujifilm X-E2 - true - - - - - camera - camera - proprietary - Fuji IX-1 - true - - - - - camera - camera - ptp - Fuji S5 Pro - true - - - - - camera - camera - proprietary - FujiFilm @xia ix-100 - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Fujitsu, Ltd F903iX HIGH-SPEED - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Fujitsu, Ltd STYLISTIC M532 - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Garmin Monterra - true - - - - - camera - camera - proprietary - Gear to go - true - - - - - camera - camera - proprietary - Generic SoundVision Clarity2 - true - - - - - camera - camera - proprietary - Genius Smart 300, version 2 - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Gensis GT-7305 - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Gigabyte RCT6773W22 (MTP) - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Gigabyte RCT6773W22 (MTP+ADB) - true - - - - - camera - camera - proprietary - Global Point 3 in 1 Digital Fun Graffiti 00044 - true - - - - - camera - camera - proprietary - Global Point Clipster - true - - - - - camera - camera - proprietary - Global Point Splash Mini (underwater camera) - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Google Inc (for Ainol Novo) Fire/Flame - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Google Inc (for Allwinner) A31 SoC - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Google Inc (for Asus) Nexus 7 (MTP) - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Google Inc (for Asus) Nexus 7 (MTP+ADB) - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Google Inc (for Asus) TF101 Transformer - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Google Inc (for Asus) TF201 Transformer - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Google Inc (for Barnes & Noble) Nook Color - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Google Inc (for Lenovo) Ideapad K1 - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Google Inc (for LG Electronics) P990/Optimus - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Google Inc (for LG Electronics) P990/Optimus (Cyanogen) - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Google Inc (for LG Electronics/Samsung) Nexus 4/5/7/10 (MTP) - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Google Inc (for LG Electronics/Samsung) Nexus 4/5/7/10 (MTP+ADB) - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Google Inc (for Medion) MD99000 (P9514) - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Google Inc (for Motorola) Xoom (MZ604) - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Google Inc (for Samsung) Nexus S (MTP) - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Google Inc (for Samsung) Nexus S (MTP+ADB) - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Google Inc (for Sony) S1 - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Google Inc (for Toshiba) Thrive 7/AT105 - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Google Nexus 5 (MTP) - true - - - - - camera - camera - ptp - GoPro HERO3+ - true - - - - - camera - camera - proprietary - GrandTek ScopeCam - true - - - - - camera - camera - proprietary - GTW Electronics - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Haier Ibiza Rhapsody 1 - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Haier Ibiza Rhapsody 2 - true - - - - - camera - camera - proprietary - Haimei Electronics HE-501A - true - - - - - camera - camera - proprietary - Hawking DC120 Pocketcam - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Hewlett-Packard Slate 10 HD - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Hewlett-Packard Slate 7 2800 - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Hewlett-Packard Slate 7 4600 - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Hisense E860 (ID1) - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Hisense E860 (ID2) - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - HiSense Sero 7 Pro - true - - - - - camera - camera - ptp - HP PhotoSmart 120 (PTP mode) - true - - - - - camera - camera - proprietary - HP PhotoSmart 215 - true - - - - - camera - camera - ptp - HP PhotoSmart 217 (PTP mode) - true - - - - - camera - camera - ptp - HP PhotoSmart 317 (PTP mode) - true - - - - - camera - camera - ptp - HP PhotoSmart 318 (PTP mode) - true - - - - - camera - camera - ptp - HP PhotoSmart 320 (PTP mode) - true - - - - - camera - camera - ptp - HP PhotoSmart 407 (PTP mode) - true - - - - - camera - camera - ptp - HP PhotoSmart 417 (PTP mode) - true - - - - - camera - camera - ptp - HP PhotoSmart 43x (PTP mode) - true - - - - - camera - camera - ptp - HP PhotoSmart 507 (PTP mode) - true - - - - - camera - camera - ptp - HP PhotoSmart 517 (PTP mode) - true - - - - - camera - camera - ptp - HP PhotoSmart 607 (PTP mode) - true - - - - - camera - camera - ptp - HP PhotoSmart 612 (PTP mode) - true - - - - - camera - camera - proprietary - HP PhotoSmart 618 - true - - - - - camera - camera - ptp - HP PhotoSmart 620 (PTP mode) - true - - - - - camera - camera - ptp - HP PhotoSmart 635 (PTP mode) - true - - - - - camera - camera - ptp - HP PhotoSmart 707 (PTP mode) - true - - - - - camera - camera - ptp - HP PhotoSmart 715 (PTP mode) - true - - - - - camera - camera - ptp - HP PhotoSmart 717 (PTP mode) - true - - - - - camera - camera - ptp - HP PhotoSmart 720 (PTP mode) - true - - - - - camera - camera - ptp - HP PhotoSmart 733 (PTP mode) - true - - - - - camera - camera - ptp - HP PhotoSmart 735 (PTP mode) - true - - - - - camera - camera - ptp - HP PhotoSmart 812 (PTP mode) - true - - - - - camera - camera - ptp - HP PhotoSmart 817 (PTP mode) - true - - - - - camera - camera - ptp - HP PhotoSmart 818 (PTP mode) - true - - - - - camera - camera - ptp - HP PhotoSmart 850 (PTP mode) - true - - - - - camera - camera - proprietary - HP PhotoSmart 912 - true - - - - - camera - camera - ptp - HP PhotoSmart 935 (PTP mode) - true - - - - - camera - camera - ptp - HP PhotoSmart 945 (PTP mode) - true - - - - - camera - camera - proprietary - HP PhotoSmart C500 - true - - - - - camera - camera - ptp - HP PhotoSmart C500 (PTP mode) - true - - - - - camera - camera - proprietary - HP PhotoSmart C500 2 - true - - - - - camera - camera - ptp - HP PhotoSmart E327 (PTP mode) - true - - - - - camera - camera - ptp - HP PhotoSmart E427 (PTP mode) - true - - - - - camera - camera - ptp - HP PhotoSmart M22 (PTP mode) - true - - - - - camera - camera - ptp - HP PhotoSmart M23 (PTP mode) - true - - - - - camera - camera - ptp - HP PhotoSmart M307 (PTP mode) - true - - - - - camera - camera - ptp - HP PhotoSmart M415 (PTP mode) - true - - - - - camera - camera - ptp - HP PhotoSmart M425 (PTP mode) - true - - - - - camera - camera - ptp - HP PhotoSmart M525 (PTP mode) - true - - - - - camera - camera - ptp - HP PhotoSmart M527 (PTP mode) - true - - - - - camera - camera - ptp - HP PhotoSmart M547 (PTP mode) - true - - - - - camera - camera - ptp - HP PhotoSmart M725 (PTP mode) - true - - - - - camera - camera - ptp - HP PhotoSmart M727 (PTP mode) - true - - - - - camera - camera - ptp - HP PhotoSmart M737 (PTP mode) - true - - - - - camera - camera - ptp - HP PhotoSmart R742 (PTP mode) - true - - - - - camera - camera - ptp - HP PhotoSmart R927 (PTP mode) - true - - - - - camera - camera - ptp - HP PhotoSmart R967 (PTP mode) - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - HTC (for Hewlett-Packard) HP Touchpad (MTP) - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - HTC (for Hewlett-Packard) HP Touchpad (MTP+ADB) - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - HTC Android Device ID1 (Zopo, HD2, Bird...) - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - HTC Android Device ID2 (Zopo, HD2...) - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - HTC Desire 310 (MTP) - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - HTC Droid DNA (MTP+UMS) - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - HTC Droid DNA (MTP+UMS+ADB) - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - HTC EVO 4G LTE/One V (ID1) - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - HTC EVO 4G LTE/One V (ID2) - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - HTC HTC Butterfly (ID1) - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - HTC HTC Butterfly X290d - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - HTC HTC Desire 510 (MTP+ADB) - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - HTC HTC Desire X - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - HTC HTC Droid Incredible 4G LTE (MTP) - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - HTC HTC Droid Incredible 4G LTE (MTP+ADB) - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - HTC HTC Evo 4G LTE (ID1) - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - HTC HTC One (HTC6500LVW) - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - HTC HTC One (ID1) - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - HTC HTC One (ID3) - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - HTC HTC One (MTP) - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - HTC HTC One (MTP+ADB) - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - HTC HTC One (MTP+ADB+?) - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - HTC HTC One (MTP+ADB+CDC) - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - HTC HTC One (MTP+CDC) - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - HTC HTC One (MTP+UMS+ADB) - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - HTC HTC One 802w (ID1) - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - HTC HTC One M8 (HTC6525LVW) - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - HTC HTC One M8 (MTP) - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - HTC HTC One M8 (MTP+ADB) - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - HTC HTC One M8 (MTP+ADB+UMS) - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - HTC HTC One M8 (MTP+UMS) - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - HTC HTC One M8 (Verizon) (HTC6525LVW) - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - HTC HTC One Remix (HTC6515LVW) - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - HTC HTC One S (ID1) - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - HTC HTC One S (ID2) - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - HTC HTC One S (ID3) - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - HTC HTC One X (ID1) - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - HTC HTC One X (ID2) - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - HTC HTC One X (ID3) - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - HTC HTC One X (ID4) - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - HTC HTC6515LVW/One Remix - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - HTC Motorola Razr D1 - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - HTC One M8 Google Play Edition (MTP+ADB) - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - HTC One Mini (ID1) - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - HTC Windows Phone 8s ID1 - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - HTC Windows Phone 8X ID1 - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - HTC Windows Phone 8X ID2 - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Huawei Ascend P8 - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Huawei Mediapad (mode 0) - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Huawei Mediapad (mode 1) - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Huawei MTP device (ID1) - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Huawei MTP device (ID2) - true - - - - - camera - camera - proprietary - iClick 5X - true - - - - - camera - camera - proprietary - iConcepts digital camera - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - InFocus M810 - true - - - - - camera - camera - proprietary - INNOVAGE Mini Digital, CD302N - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Insignia NS-DV45 - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Insignia Pilot 4GB - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Insignia Sport Player - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Intel Chuwi vi8 - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Intel Foxconn iView i700 - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Intel Noblex T7A21 - true - - - - - camera - camera - proprietary - Intel Pocket PC Camera - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Intel Telcast Air 3G - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Intel Xolo 900/AZ210A - true - - - - - camera - camera - proprietary - IOMagic MagicImage 400 - true - - - - - camera - camera - proprietary - ION digital camera - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - iRiver Clix - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - iRiver Clix2 - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - iRiver E100 - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - iRiver E100 v2/Lplayer - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - iRiver E150 - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - iRiver E30 - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - iRiver E50 - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - iRiver H10 20GB - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - iRiver H10 5.6GB - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - iRiver H10 5GB - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - iRiver H300 Series MTP - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - iRiver iFP-880 - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - iRiver N12 - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - iRiver Portable Media Center 1 - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - iRiver Portable Media Center 2 - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - iRiver Spinn - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - iRiver T10 - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - iRiver T10 2GB - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - iRiver T10b - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - iRiver T20 - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - iRiver T20 FM - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - iRiver T20b - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - iRiver T30 - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - iRiver T5 - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - iRiver T60 - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - iRiver T7 Volcano - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - iRiver Tolino Tab 7 - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - iRiver U10 - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - iRiver X20 - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Isabella Her Prototype - true - - - - - camera - camera - proprietary - Ixla DualCam 640 - true - - - - - camera - camera - proprietary - Jazwares Star Wars no. 15256 - true - - - - - camera - camera - proprietary - Jazz JDC9 - true - - - - - camera - camera - proprietary - Jazz JDK235 - true - - - - - camera - camera - proprietary - Jenoptik JD-3300z3 - true - - - - - camera - camera - proprietary - Jenoptik JD-4100z3 - true - - - - - camera - camera - proprietary - Jenoptik JD350 entrance - true - - - - - camera - camera - proprietary - Jenoptik JD350 video - true - - - - - camera - camera - proprietary - Jenoptik JDC 350 - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Jolla Sailfish (ID1) - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Jolla Sailfish (ID2) - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - JVC Alneo XA-HD500 - true - - - - - camera - camera - proprietary - KBGear JamCam - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Kenwood Media Keg HD10GB7 Sport Player - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Kobo Arc (ID1) - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Kobo Arc (ID2) - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Kobo Arc 7 HD - true - - - - - camera - camera - ptp - Kodak C1530 - true - - - - - camera - camera - ptp - Kodak C183 - true - - - - - camera - camera - ptp - Kodak C300 - true - - - - - camera - camera - ptp - Kodak C310 - true - - - - - camera - camera - ptp - Kodak C330 - true - - - - - camera - camera - ptp - Kodak C340 - true - - - - - camera - camera - ptp - Kodak C360 - true - - - - - camera - camera - ptp - Kodak C433 - true - - - - - camera - camera - ptp - Kodak C530 - true - - - - - camera - camera - ptp - Kodak C533 - true - - - - - camera - camera - ptp - Kodak C613 - true - - - - - camera - camera - ptp - Kodak C633 - true - - - - - camera - camera - ptp - Kodak C643 - true - - - - - camera - camera - ptp - Kodak C653 - true - - - - - camera - camera - ptp - Kodak C743 - true - - - - - camera - camera - ptp - Kodak C813 - true - - - - - camera - camera - ptp - Kodak C875 - true - - - - - camera - camera - ptp - Kodak C913 - true - - - - - camera - camera - ptp - Kodak CD33 - true - - - - - camera - camera - ptp - Kodak CX4200 - true - - - - - camera - camera - ptp - Kodak CX4210 - true - - - - - camera - camera - ptp - Kodak CX4230 - true - - - - - camera - camera - ptp - Kodak CX4300 - true - - - - - camera - camera - ptp - Kodak CX4310 - true - - - - - camera - camera - ptp - Kodak CX6200 - true - - - - - camera - camera - ptp - Kodak CX6230 - true - - - - - camera - camera - ptp - Kodak CX6330 - true - - - - - camera - camera - ptp - Kodak CX6445 - true - - - - - camera - camera - ptp - Kodak CX7220 - true - - - - - camera - camera - ptp - Kodak CX7300 - true - - - - - camera - camera - ptp - Kodak CX7310 - true - - - - - camera - camera - ptp - Kodak CX7330 - true - - - - - camera - camera - ptp - Kodak CX7430 - true - - - - - camera - camera - ptp - Kodak CX7525 - true - - - - - camera - camera - ptp - Kodak CX7530 - true - - - - - camera - camera - proprietary - Kodak DC220 - true - - - - - camera - camera - proprietary - Kodak DC240 - true - - - - - camera - camera - ptp - Kodak DC240 (PTP mode) - true - - - - - camera - camera - proprietary - Kodak DC260 - true - - - - - camera - camera - proprietary - Kodak DC265 - true - - - - - camera - camera - proprietary - Kodak DC280 - true - - - - - camera - camera - proprietary - Kodak DC290 - true - - - - - camera - camera - proprietary - Kodak DC3400 - true - - - - - camera - camera - ptp - Kodak DC4800 - true - - - - - camera - camera - proprietary - Kodak DC5000 - true - - - - - camera - camera - ptp - Kodak DX3215 - true - - - - - camera - camera - ptp - Kodak DX3500 - true - - - - - camera - camera - ptp - Kodak DX3600 - true - - - - - camera - camera - ptp - Kodak DX3700 - true - - - - - camera - camera - ptp - Kodak DX3900 - true - - - - - camera - camera - ptp - Kodak DX4330 - true - - - - - camera - camera - ptp - Kodak DX4530 - true - - - - - camera - camera - ptp - Kodak DX4900 - true - - - - - camera - camera - ptp - Kodak DX6340 - true - - - - - camera - camera - ptp - Kodak DX6440 - true - - - - - camera - camera - ptp - Kodak DX6490 - true - - - - - camera - camera - ptp - Kodak DX7440 - true - - - - - camera - camera - ptp - Kodak DX7590 - true - - - - - camera - camera - ptp - Kodak DX7630 - true - - - - - camera - camera - proprietary - Kodak EZ200 - true - - - - - camera - camera - ptp - Kodak LS420 - true - - - - - camera - camera - ptp - Kodak LS443 - true - - - - - camera - camera - ptp - Kodak LS663 - true - - - - - camera - camera - ptp - Kodak LS743 - true - - - - - camera - camera - ptp - Kodak LS753 - true - - - - - camera - camera - ptp - Kodak M1063 - true - - - - - camera - camera - ptp - Kodak M531 - true - - - - - camera - camera - ptp - Kodak M753 - true - - - - - camera - camera - ptp - Kodak M863 - true - - - - - camera - camera - ptp - Kodak M883 - true - - - - - camera - camera - ptp - Kodak M893 IS - true - - - - - camera - camera - ptp - Kodak MC3 - true - - - - - camera - camera - ptp - Kodak P850 - true - - - - - camera - camera - ptp - Kodak P880 - true - - - - - camera - camera - ptp - Kodak V530 - true - - - - - camera - camera - ptp - Kodak V550 - true - - - - - camera - camera - ptp - Kodak V570 - true - - - - - camera - camera - ptp - Kodak V603 - true - - - - - camera - camera - ptp - Kodak V610 - true - - - - - camera - camera - ptp - Kodak V705 - true - - - - - camera - camera - ptp - Kodak V803 - true - - - - - camera - camera - ptp - Kodak Z612 - true - - - - - camera - camera - ptp - Kodak Z650 - true - - - - - camera - camera - ptp - Kodak Z700 - true - - - - - camera - camera - ptp - Kodak Z710 - true - - - - - camera - camera - ptp - Kodak Z712 IS - true - - - - - camera - camera - ptp - Kodak Z730 - true - - - - - camera - camera - ptp - Kodak Z740 - true - - - - - camera - camera - ptp - Kodak Z7590 - true - - - - - camera - camera - ptp - Kodak Z812 IS - true - - - - - camera - camera - ptp - Kodak Z8612 IS - true - - - - - camera - camera - ptp - Kodak Z915 - true - - - - - camera - camera - ptp - Kodak Z950 - true - - - - - camera - camera - ptp - Kodak ZD710 - true - - - - - camera - camera - proprietary - Konica e-mini - true - - - - - camera - camera - ptp - Konica-Minolta DiMAGE A2 (PTP mode) - true - - - - - camera - camera - ptp - Konica-Minolta DiMAGE A200 (PictBridge mode) - true - - - - - camera - camera - ptp - Konica-Minolta DiMAGE X21 (PictBridge mode) - true - - - - - camera - camera - ptp - Konica-Minolta DiMAGE Z2 (PictBridge mode) - true - - - - - camera - camera - ptp - Konica-Minolta DiMAGE Z3 (PictBridge mode) - true - - - - - camera - camera - ptp - Konica-Minolta DiMAGE Z5 (PictBridge mode) - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Kurio 7S - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Kyocera DuraForce - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Kyocera KYL22 - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Kyocera Rise - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Kyocera Torque Model E6715 - true - - - - - camera - camera - proprietary - Lego Bionicle - true - - - - - camera - camera - ptp - Leica D-LUX 2 - true - - - - - camera - camera - ptp - Leica M9 - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Lenovo A3500-F - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Lenovo A5500-F - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Lenovo A820 - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Lenovo IdeaPad A3000 (ID1) - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Lenovo IdeaPad A3000 (ID2) - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Lenovo IdeaTab A2109A - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Lenovo IdeaTab S2210a - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Lenovo IdeaTab S5000 - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Lenovo K1 - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Lenovo K3 Note - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Lenovo K900 (ID1) - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Lenovo LifeTab E733X - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Lenovo Lifetab S9512 - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Lenovo P70-A - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Lenovo P700 - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Lenovo P780 - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Lenovo S660 - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Lenovo S930 - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Lenovo ThinkPad Tablet - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Lenovo Toga Tablet B6000-F - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Lenovo Vibe Z2 - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Lenovo Yoga Tablet 10 B8000-H - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Lenovo Yoga Tablet 2 Pro - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - LG Electronics Inc. Android phone (ID1) - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - LG Electronics Inc. Android phone (ID2) - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - LG Electronics Inc. G3 - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - LG Electronics Inc. G3 (VS985) - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - LG Electronics Inc. GR-500 Music Player - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - LG Electronics Inc. KC910 Renoir Mobile Phone - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - LG Electronics Inc. KM900 - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - LG Electronics Inc. LG G Flex 2 - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - LG Electronics Inc. LG VS870 - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - LG Electronics Inc. LG VS890 - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - LG Electronics Inc. LG VS980 - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - LG Electronics Inc. LG2 Optimus - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - LG Electronics Inc. LG8575 - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - LG Electronics Inc. T54 - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - LG Electronics Inc. UP3 - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - LG Electronics Inc. Various E and P models - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - LG Electronics Inc. VK810 - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - LG Electronics Inc. VX8550 V CAST Mobile Phone - true - - - - - camera - camera - proprietary - LG T5100 - true - - - - - camera - camera - proprietary - Lifetec LT 5995 - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Logik LOG DAX MP3 and DAB Player - true - - - - - camera - camera - proprietary - Logitech Clicksmart 310 - true - - - - - camera - camera - proprietary - Logitech Pocket Digital - true - - - - - camera - camera - proprietary - Maginon SX-410z - true - - - - - camera - camera - proprietary - Maginon SX330z - true - - - - - camera - camera - proprietary - Magpix B350 - true - - - - - camera - camera - proprietary - Maxell Max Pocket - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Maxfield G-Flash NG 1GB - true - - - - - camera - camera - proprietary - Media-Tech mt-406 - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - MediaTek Inc MT5xx and MT6xx SoCs - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Medion Lifetab P9514 - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Medion Lifetab P9516 - true - - - - - camera - camera - proprietary - Medion MD 5319 - true - - - - - camera - camera - proprietary - Medion MD 6000 - true - - - - - camera - camera - proprietary - Medion MD 6126 - true - - - - - camera - camera - proprietary - Medion MD 9700 - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Medion MD8333 (ID1) - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Medion MD8333 (ID2) - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Medion MD99000 (P9514)/Olivetti Olipad 110 - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Megafon Login+ - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Megafon MFLogin3T - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Meizu MX Phone (MTP) - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Meizu MX Phone (MTP+ADB) - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Memorex or iRiver MMP 8585/8586 or iRiver E200 - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Micro-Star International P610/Model MS-5557 - true - - - - - camera - camera - proprietary - Micromaxx Digital Camera - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Microsoft Kin 1 - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Microsoft Windows MTP Simulator - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Microsoft Windows Phone - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Microsoft Zune - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Microsoft Zune HD - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Microsoft/HTC HTC 8S - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Microsoft/Intel Bandon Portable Media Center - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Microsoft/Sharp/nVidia Kin TwoM - true - - - - - camera - camera - proprietary - Mini Shotz ms-350 - true - - - - - camera - camera - proprietary - Minton S-Cam F5 - true - - - - - camera - camera - proprietary - Mitek CD10 - true - - - - - camera - camera - proprietary - Mitek CD30P - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Motorola A1200 - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Motorola Atrix MB860 (MTP) - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Motorola Atrix XT687 (MTP) - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Motorola Atrix/Razr HD (MTP) - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Motorola Atrix/Razr HD (MTP+ADB) - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Motorola Droid Maxx (XT1080) - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Motorola Droid Turbo (XT1254) - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Motorola Droid Turbo Verizon - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Motorola Droid Ultra - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Motorola Droid X/MB525 (Defy) - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Motorola DROID2 (ID1) - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Motorola DROID2 (ID2) - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Motorola DROID4 - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Motorola DROID4 (PTP) - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Motorola IdeaPad K1 - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Motorola Milestone / Verizon Droid - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Motorola Milestone X2 - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Motorola Moto G (ID1) - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Motorola Moto G (ID2) - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Motorola Moto G (XT1032) - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Motorola Moto X (XT1053) - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Motorola Moto X (XT1058) - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Motorola Moto X (XT1080) - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Motorola MTP Test Command Interface - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Motorola Razr D1/D3/i (MTP) - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Motorola Razr D1/D3/i (MTP+?) - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Motorola RAZR M XT907 (MTP) - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Motorola RAZR M XT907 (MTP+ADB) - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Motorola RAZR2 V8/U9/Z6 - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Motorola V3m/V750 verizon - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Motorola Xoom (Factory test) - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Motorola Xoom (MTP) - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Motorola Xoom (MTP+ADB) - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Motorola Xoom 2 Media Edition - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Motorola Xoom 2 Media Edition (ID2) - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Motorola Xoom 2 Media Edition (ID3) - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Motorola XT890/907/Razr (MTP) - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Motorola XT890/907/Razr (MTP+ADB) - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Motorola XT912/XT928 - true - - - - - camera - camera - proprietary - Mustek gSmart 300 - true - - - - - camera - camera - proprietary - Mustek gSmart 350 - true - - - - - camera - camera - proprietary - Mustek gSmart mini - true - - - - - camera - camera - proprietary - Mustek gSmart mini 2 - true - - - - - camera - camera - proprietary - Mustek gSmart mini 3 - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - MyMusix PD-6070 - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - NEC Casio C811 - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - NEC Casio CA-201L - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - NEC FOMA N01A - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Nextar MA715A-8R - true - - - - - camera - camera - proprietary - Nexxtech Mini Digital Camera - true - - - - - camera - camera - ptp - Nikon Coolpix 2000 (PTP mode) - true - - - - - camera - camera - ptp - Nikon Coolpix 2100 (PTP mode) - true - - - - - camera - camera - ptp - Nikon Coolpix 2200 (PTP mode) - true - - - - - camera - camera - ptp - Nikon Coolpix 2200v1.1 (PTP mode) - true - - - - - camera - camera - ptp - Nikon Coolpix 2500 (PTP mode) - true - - - - - camera - camera - ptp - Nikon Coolpix 3100 (PTP mode) - true - - - - - camera - camera - ptp - Nikon Coolpix 3200 (PTP mode) - true - - - - - camera - camera - ptp - Nikon Coolpix 3500 (PTP mode) - true - - - - - camera - camera - ptp - Nikon Coolpix 3700 (PTP mode) - true - - - - - camera - camera - ptp - Nikon Coolpix 4100 (PTP mode) - true - - - - - camera - camera - ptp - Nikon Coolpix 4200 (PTP mode) - true - - - - - camera - camera - ptp - Nikon Coolpix 4300 (PTP mode) - true - - - - - camera - camera - ptp - Nikon Coolpix 4500 (PTP mode) - true - - - - - camera - camera - ptp - Nikon Coolpix 4600 (PTP mode) - true - - - - - camera - camera - ptp - Nikon Coolpix 4600a (PTP mode) - true - - - - - camera - camera - ptp - Nikon Coolpix 4800 (PTP mode) - true - - - - - camera - camera - ptp - Nikon Coolpix 5000 (PTP mode) - true - - - - - camera - camera - ptp - Nikon Coolpix 5200 (PTP mode) - true - - - - - camera - camera - ptp - Nikon Coolpix 5400 (PTP mode) - true - - - - - camera - camera - ptp - Nikon Coolpix 5600 (PTP mode) - true - - - - - camera - camera - ptp - Nikon Coolpix 5700 (PTP mode) - true - - - - - camera - camera - ptp - Nikon Coolpix 5900 (PTP mode) - true - - - - - camera - camera - ptp - Nikon Coolpix 7600 (PTP mode) - true - - - - - camera - camera - ptp - Nikon Coolpix 7900 (PTP mode) - true - - - - - camera - camera - ptp - Nikon Coolpix 8700 (PTP mode) - true - - - - - camera - camera - proprietary - Nikon CoolPix 880 - true - - - - - camera - camera - ptp - Nikon Coolpix 8800 (PTP mode) - true - - - - - camera - camera - ptp - Nikon Coolpix 885 (PTP mode) - true - - - - - camera - camera - ptp - Nikon Coolpix 9400 (PTP mode) - true - - - - - camera - camera - proprietary - Nikon CoolPix 990 - true - - - - - camera - camera - ptp - Nikon Coolpix A (PTP mode) - true - - - - - camera - camera - ptp - Nikon Coolpix AW100 (PTP mode) - true - - - - - camera - camera - ptp - Nikon Coolpix L1 (PTP mode) - true - - - - - camera - camera - ptp - Nikon Coolpix L10 (PTP mode) - true - - - - - camera - camera - ptp - Nikon Coolpix L11 (PTP mode) - true - - - - - camera - camera - ptp - Nikon Coolpix L110 (PTP mode) - true - - - - - camera - camera - ptp - Nikon Coolpix L12 (PTP mode) - true - - - - - camera - camera - ptp - Nikon Coolpix L120 (PTP mode) - true - - - - - camera - camera - ptp - Nikon Coolpix L16 (PTP mode) - true - - - - - camera - camera - ptp - Nikon Coolpix L19 (PTP mode) - true - - - - - camera - camera - ptp - Nikon Coolpix L20 (PTP mode) - true - - - - - camera - camera - ptp - Nikon Coolpix L23 (PTP mode) - true - - - - - camera - camera - ptp - Nikon Coolpix L27 - true - - - - - camera - camera - ptp - Nikon Coolpix L4 (PTP mode) - true - - - - - camera - camera - ptp - Nikon Coolpix L820 (PTP mode) - true - - - - - camera - camera - ptp - Nikon Coolpix P1 (PTP mode) - true - - - - - camera - camera - ptp - Nikon Coolpix P100 (PTP mode) - true - - - - - camera - camera - ptp - Nikon Coolpix P2 (PTP mode) - true - - - - - camera - camera - ptp - Nikon Coolpix P300 (PTP mode) - true - - - - - camera - camera - ptp - Nikon Coolpix P330 (PTP mode) - true - - - - - camera - camera - ptp - Nikon Coolpix P4 (PTP mode) - true - - - - - camera - camera - ptp - Nikon Coolpix P50 (PTP mode) - true - - - - - camera - camera - ptp - Nikon Coolpix P500 (PTP mode) - true - - - - - camera - camera - ptp - Nikon Coolpix P5000 (PTP mode) - true - - - - - camera - camera - ptp - Nikon Coolpix P510 (PTP mode) - true - - - - - camera - camera - ptp - Nikon Coolpix P5100 (PTP mode) - true - - - - - camera - camera - ptp - Nikon Coolpix P520 (PTP mode) - true - - - - - camera - camera - ptp - Nikon Coolpix P60 (PTP mode) - true - - - - - camera - camera - ptp - Nikon Coolpix P6000 (PTP mode) - true - - - - - camera - camera - ptp - Nikon Coolpix P7000 (PTP mode) - true - - - - - camera - camera - ptp - Nikon Coolpix P7100 (PTP mode) - true - - - - - camera - camera - ptp - Nikon Coolpix P7700 (PTP mode) - true - - - - - camera - camera - ptp - Nikon Coolpix P7800 (PTP mode) - true - - - - - camera - camera - ptp - Nikon Coolpix P80 (PTP mode) - true - - - - - camera - camera - ptp - Nikon Coolpix P80 v1.1 (PTP mode) - true - - - - - camera - camera - ptp - Nikon Coolpix P90 (PTP mode) - true - - - - - camera - camera - ptp - Nikon Coolpix S01 - true - - - - - camera - camera - ptp - Nikon Coolpix S02 - true - - - - - camera - camera - ptp - Nikon Coolpix S2 (PTP mode) - true - - - - - camera - camera - ptp - Nikon Coolpix S200 (PTP mode) - true - - - - - camera - camera - ptp - Nikon Coolpix S220 (PTP mode) - true - - - - - camera - camera - ptp - Nikon Coolpix S225 (PTP mode) - true - - - - - camera - camera - ptp - Nikon Coolpix S2500 (PTP mode) - true - - - - - camera - camera - ptp - Nikon Coolpix S2600 (PTP mode) - true - - - - - camera - camera - ptp - Nikon Coolpix S2700 - true - - - - - camera - camera - ptp - Nikon Coolpix S3000 (PTP mode) - true - - - - - camera - camera - ptp - Nikon Coolpix S3100 (PTP mode) - true - - - - - camera - camera - ptp - Nikon Coolpix S3200 - true - - - - - camera - camera - ptp - Nikon Coolpix S3300 (PTP mode) - true - - - - - camera - camera - ptp - Nikon Coolpix S4 (PTP mode) - true - - - - - camera - camera - ptp - Nikon Coolpix S4300 (PTP mode) - true - - - - - camera - camera - ptp - Nikon Coolpix S500 (PTP mode) - true - - - - - camera - camera - ptp - Nikon Coolpix S5100 (PTP mode) - true - - - - - camera - camera - ptp - Nikon Coolpix S6 (PTP mode) - true - - - - - camera - camera - ptp - Nikon Coolpix S60 (PTP mode) - true - - - - - camera - camera - ptp - Nikon Coolpix S6000 (PTP mode) - true - - - - - camera - camera - ptp - Nikon Coolpix S620 (PTP mode) - true - - - - - camera - camera - ptp - Nikon Coolpix S7c (PTP mode) - true - - - - - camera - camera - ptp - Nikon Coolpix S8000 (PTP mode) - true - - - - - camera - camera - ptp - Nikon Coolpix S8200 - true - - - - - camera - camera - ptp - Nikon Coolpix S9100 (PTP mode) - true - - - - - camera - camera - ptp - Nikon Coolpix S9500 (PTP mode) - true - - - - - camera - camera - ptp - Nikon Coolpix S9700 - true - - - - - camera - camera - ptp - Nikon Coolpix SQ (PTP mode) - true - - - - - camera - camera - ptp - Nikon D2H SLR (PTP mode) - true - - - - - camera - camera - ptp - Nikon D2Hs (PTP mode) - true - - - - - camera - camera - ptp - Nikon D2X SLR (PTP mode) - true - - - - - camera - camera - ptp - Nikon D3 (PTP mode) - true - - - - - camera - camera - ptp - Nikon D50 (PTP mode) - true - - - - - camera - camera - ptp - Nikon DSC D100 (PTP mode) - true - - - - - camera - camera - ptp - Nikon DSC D200 (PTP mode) - true - - - - - camera - camera - ptp - Nikon DSC D2Xs (PTP mode) - true - - - - - camera - camera - ptp - Nikon DSC D300 (PTP mode) - true - - - - - camera - camera - ptp - Nikon DSC D3000 (PTP mode) - true - - - - - camera - camera - ptp - Nikon DSC D300s (PTP mode) - true - - - - - camera - camera - ptp - Nikon DSC D3100 (PTP mode) - true - - - - - camera - camera - ptp - Nikon DSC D3200 - true - - - - - camera - camera - ptp - Nikon DSC D3300 - true - - - - - camera - camera - ptp - Nikon DSC D3s (PTP mode) - true - - - - - camera - camera - ptp - Nikon DSC D3x (PTP mode) - true - - - - - camera - camera - ptp - Nikon DSC D4 - true - - - - - camera - camera - ptp - Nikon DSC D40 (PTP mode) - true - - - - - camera - camera - ptp - Nikon DSC D40x (PTP mode) - true - - - - - camera - camera - ptp - Nikon DSC D4s - true - - - - - camera - camera - ptp - Nikon DSC D5000 (PTP mode) - true - - - - - camera - camera - ptp - Nikon DSC D5100 (PTP mode) - true - - - - - camera - camera - ptp - Nikon DSC D5200 - true - - - - - camera - camera - ptp - Nikon DSC D5300 - true - - - - - camera - camera - ptp - Nikon DSC D60 (PTP mode) - true - - - - - camera - camera - ptp - Nikon DSC D600 - true - - - - - camera - camera - ptp - Nikon DSC D610 - true - - - - - camera - camera - ptp - Nikon DSC D70 (PTP mode) - true - - - - - camera - camera - ptp - Nikon DSC D700 (PTP mode) - true - - - - - camera - camera - ptp - Nikon DSC D7000 (PTP mode) - true - - - - - camera - camera - ptp - Nikon DSC D70s (PTP mode) - true - - - - - camera - camera - ptp - Nikon DSC D7100 - true - - - - - camera - camera - ptp - Nikon DSC D750 - true - - - - - camera - camera - ptp - Nikon DSC D80 (PTP mode) - true - - - - - camera - camera - ptp - Nikon DSC D800 - true - - - - - camera - camera - ptp - Nikon DSC D800E - true - - - - - camera - camera - ptp - Nikon DSC D810 - true - - - - - camera - camera - ptp - Nikon DSC D90 (PTP mode) - true - - - - - camera - camera - ptp - Nikon J1 - true - - - - - camera - camera - ptp - Nikon J2 - true - - - - - camera - camera - ptp - Nikon J3 - true - - - - - camera - camera - ptp - Nikon J4 - true - - - - - camera - camera - ptp - Nikon S1 - true - - - - - camera - camera - ptp - Nikon V1 - true - - - - - camera - camera - ptp - Nikon V2 - true - - - - - camera - camera - proprietary - nisis Quickpix Qp3 - true - - - - - camera - camera - proprietary - NogaNet TDC-15 - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Nokia 2710 - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Nokia 3109c Mobile Phone - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Nokia 3110c Mobile Phone - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Nokia 3250 Mobile Phone - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Nokia 3710 - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Nokia 5130 XpressMusic - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Nokia 5200 Mobile Phone - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Nokia 5230 - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Nokia 5300 Mobile Phone - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Nokia 5310 XpressMusic - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Nokia 5320 XpressMusic - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Nokia 5500 Sport Mobile Phone - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Nokia 5530 - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Nokia 5700 XpressMusic Mobile Phone - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Nokia 5800 XpressMusic - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Nokia 5800 XpressMusic v2 - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Nokia 5800 XpressMusic v3 - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Nokia 6120c Classic Mobile Phone - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Nokia 6210 Navigator - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Nokia 6220 Classic - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Nokia 6500c Classic Mobile Phone - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Nokia 6600i - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Nokia 808 PureView - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Nokia C5-00 - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Nokia C7 - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Nokia C7 (ID2) - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Nokia E52 - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Nokia E6 - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Nokia E63 - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Nokia E66 - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Nokia E7 - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Nokia E7 (Ovi mode) - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Nokia E71 - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Nokia E71x - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Nokia E72 - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Nokia Lumia (RM-975) - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Nokia Lumia 301 - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Nokia Lumia WP8 - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Nokia N300 - true - - - - - camera - camera - ptp - Nokia N73 - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Nokia N73 Mobile Phone - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Nokia N75 Mobile Phone - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Nokia N78 Mobile Phone - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Nokia N79 - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Nokia N8 - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Nokia N8 (Ovi mode) - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Nokia N80 Internet Edition (Media Player) - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Nokia N81 Mobile Phone - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Nokia N82 Mobile Phone - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Nokia N85 Mobile Phone - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Nokia N9 - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Nokia N91 Mobile Phone - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Nokia N93 Mobile Phone - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Nokia N93i Mobile Phone - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Nokia N95 Mobile Phone - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Nokia N95 Mobile Phone 8GB - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Nokia N950 - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Nokia N96 Mobile Phone - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Nokia N97 - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Nokia N97 mini - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Nokia N97-1 - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Nokia X6 - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Nokia XL - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - NormSoft, Inc. Pocket Tunes - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - NormSoft, Inc. Pocket Tunes 4 - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - nVidia CM9-Adam - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - nVidia Shield (ID1) - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - nVidia Shield (ID2) - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - nVidia Tegra Note - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - nVidia Various tablets (ID1) - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - nVidia Various tablets (ID2) - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - O2 Sistemas ZoltarTV - true - - - - - camera - camera - proprietary - Olympus C-2100UZ - true - - - - - camera - camera - proprietary - Olympus C-3000Z - true - - - - - camera - camera - proprietary - Olympus C-3030Z - true - - - - - camera - camera - ptp - Olympus C-310Z - true - - - - - camera - camera - ptp - Olympus C-350Z - true - - - - - camera - camera - ptp - Olympus C-5500Z - true - - - - - camera - camera - ptp - Olympus C-55Z - true - - - - - camera - camera - ptp - Olympus D-540Z - true - - - - - camera - camera - ptp - Olympus D-560Z - true - - - - - camera - camera - ptp - Olympus E series (Control) - true - - - - - camera - camera - ptp - Olympus E-M5 - true - - - - - camera - camera - ptp - Olympus E-PL5 - true - - - - - camera - camera - ptp - Olympus FE4000 - true - - - - - camera - camera - ptp - Olympus IR-300 - true - - - - - camera - camera - ptp - Olympus mju 500 - true - - - - - camera - camera - ptp - Olympus SP-720UZ - true - - - - - camera - camera - ptp - Olympus X-100 - true - - - - - camera - camera - ptp - Olympus X-250 - true - - - - - camera - camera - ptp - Olympus X920 - true - - - - - camera - camera - ptp - Olympus X925 - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Oppo Find 7 (ID 1) - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Oppo Find 7 (ID 2) - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Oppo X9006 - true - - - - - camera - camera - proprietary - Oregon Scientific DShot II - true - - - - - camera - camera - proprietary - Oregon Scientific DShot III - true - - - - - camera - camera - ptp - Panasonic DMC-FS62 - true - - - - - camera - camera - ptp - Panasonic DMC-FZ20 - true - - - - - camera - camera - ptp - Panasonic DMC-FZ38 - true - - - - - camera - camera - ptp - Panasonic DMC-FZ45 - true - - - - - camera - camera - ptp - Panasonic DMC-FZ50 - true - - - - - camera - camera - ptp - Panasonic DMC-GF1 - true - - - - - camera - camera - ptp - Panasonic DMC-LS2 - true - - - - - camera - camera - ptp - Panasonic DMC-LS3 - true - - - - - camera - camera - ptp - Panasonic DMC-LX7 - true - - - - - camera - camera - ptp - Panasonic DMC-TZ15 - true - - - - - camera - camera - ptp - Panasonic DMC-TZ18 - true - - - - - camera - camera - ptp - Panasonic DMC-TZ8 - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Panasonic P905i - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Panasonic P906i - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Pantech Crux - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Pegatron Chagall - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Pegatron Chagall (ADB) - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Pegatron Hudl 2 - true - - - - - camera - camera - proprietary - Pencam TEVION MD 9456 - true - - - - - camera - camera - ptp - Pentax K3 (PTP Mode) - true - - - - - camera - camera - ptp - Pentax Optio 43WR - true - - - - - camera - camera - ptp - Pentax Optio W90 - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Perception Digital, Ltd Gigaware GX400 - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Philips GoGear Aria - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Philips GoGear Ariaz - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Philips GoGear Ariaz/97 - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Philips GoGear Audio - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Philips GoGear Muse - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Philips GoGear SA1VBE08KX/78 - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Philips GoGear SA3345 - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Philips GoGear SA5145 - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Philips GoGear SA6014/SA6015/SA6024/SA6025/SA6044/SA6045 - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Philips GoGear SA6125/SA6145/SA6185 - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Philips GoGear SA9200 - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Philips GoGear ViBE SA1VBE04 - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Philips GoGear ViBE SA1VBE04/08 - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Philips GoGear VIBE SA2VBE[08|16]K/02 - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Philips GoGear Vibe/02 - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Philips HDD085/00 or HDD082/17 - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Philips HDD14XX,HDD1620 or HDD1630/17 - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Philips HDD6320 - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Philips HDD6320/00 or HDD6330/17 - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Philips i908 - true - - - - - camera - camera - proprietary - Philips P44417B keychain camera - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Philips PI3900B2/58 - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Philips PSA235 - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Philips PSA610 - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Philips SA1115/55 - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Philips SA5285 - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Philips Shoqbox - true - - - - - camera - camera - proprietary - Phoebe Smartcam - true - - - - - camera - camera - ptp - Pioneer DVR-LX60D - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Pioneer XMP3 - true - - - - - camera - camera - proprietary - Pixart Gemini Keychain Camera - true - - - - - camera - camera - proprietary - Pixie Princess Jelly-Soft - true - - - - - camera - camera - proprietary - PockCam - true - - - - - camera - camera - proprietary - Polaroid DC700 - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Polaroid Freescape/MPU-433158 - true - - - - - camera - camera - proprietary - Polaroid PDC 2300Z - true - - - - - camera - camera - proprietary - Praktica Slimpix - true - - - - - camera - camera - proprietary - Precision Mini Digital Camera - true - - - - - camera - camera - proprietary - Precision Mini, Model HA513A - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Prestigio 5504 DUO - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Prestigio 5505 DUO - true - - - - - camera - camera - proprietary - Pretec dc530 - true - - - - - camera - camera - proprietary - PureDigital Ritz Disposable - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Qualcomm (for Gigabyte) GSmart G1342 - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Qualcomm (for Highscreen) Omega Prime S - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Qualcomm (for Nokia) 5530 Xpressmusic - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Qualcomm (for Nokia/Verizon) 6205 Balboa/Verizon Music Phone - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Qualcomm (for OnePlus) One (MTP) - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Qualcomm (for OnePlus) One (MTP+ADB) - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Qualcomm (for PhiComm) C230w (MTP) - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Qualcomm (for Smartfren) Andromax U - true - - - - - camera - camera - proprietary - QuickPix QP1 - true - - - - - camera - camera - proprietary - Radioshack Flatfoto - true - - - - - camera - camera - proprietary - RCA CDS1005 - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Redmi 1S (MTP) - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Redmi HM 1S (MTP) - true - - - - - camera - camera - proprietary - Request Ultra Slim - true - - - - - camera - camera - proprietary - Ricoh Capilo RX - true - - - - - camera - camera - proprietary - Ricoh Caplio 300G - true - - - - - camera - camera - proprietary - Ricoh Caplio G3 - true - - - - - camera - camera - proprietary - Ricoh Caplio G4 - true - - - - - camera - camera - proprietary - Ricoh Caplio GX - true - - - - - camera - camera - ptp - Ricoh Caplio GX (PTP mode) - true - - - - - camera - camera - proprietary - Ricoh Caplio GX 8 - true - - - - - camera - camera - ptp - Ricoh Caplio GX 8 (PTP mode) - true - - - - - camera - camera - proprietary - Ricoh Caplio R1 - true - - - - - camera - camera - proprietary - Ricoh Caplio R1v - true - - - - - camera - camera - ptp - Ricoh Caplio R1v (PTP mode) - true - - - - - camera - camera - proprietary - Ricoh Caplio R2 - true - - - - - camera - camera - proprietary - Ricoh Caplio R3 - true - - - - - camera - camera - ptp - Ricoh Caplio R3 (PTP mode) - true - - - - - camera - camera - proprietary - Ricoh Caplio R4 - true - - - - - camera - camera - proprietary - Ricoh Caplio R5 - true - - - - - camera - camera - ptp - Ricoh Caplio R5 (PTP mode) - true - - - - - camera - camera - proprietary - Ricoh Caplio RR30 - true - - - - - camera - camera - ptp - Ricoh Caplio RR750 (PTP mode) - true - - - - - camera - camera - proprietary - Ricoh Caplio RZ1 - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - RIM BlackBerry Storm/9650 - true - - - - - camera - camera - proprietary - Rollei dr5 - true - - - - - camera - camera - ptp - Rollei dr5 (PTP mode) - true - - - - - camera - camera - proprietary - Sakar 23070 Crayola Digital Cam - true - - - - - camera - camera - proprietary - Sakar 28290 and 28292 Digital C - true - - - - - camera - camera - proprietary - Sakar 92045 Spiderman - true - - - - - camera - camera - proprietary - Sakar clipshot no. 1169x - true - - - - - camera - camera - proprietary - Sakar Digital Keychain 11199 - true - - - - - camera - camera - proprietary - Sakar Digital no, 6637x - true - - - - - camera - camera - proprietary - Sakar Digital no, 67480 - true - - - - - camera - camera - proprietary - Sakar Digital no. 56379 Spyshot - true - - - - - camera - camera - proprietary - Sakar Digital no. 77379 - true - - - - - camera - camera - proprietary - Sakar Dora the Explorer no. 88067 - true - - - - - camera - camera - proprietary - Sakar Hello Kitty no. 94009 - true - - - - - camera - camera - proprietary - Sakar Kidz Cam 86379 - true - - - - - camera - camera - proprietary - Sakar Kidz-Cam no. 88379 - true - - - - - camera - camera - proprietary - Sakar Micro Digital 2428x - true - - - - - camera - camera - proprietary - Sakar Nickelodeon iCarly no. 88061 - true - - - - - camera - camera - proprietary - Sakar no. 1638x CyberPix - true - - - - - camera - camera - proprietary - Sakar no. 75379 - true - - - - - camera - camera - proprietary - Sakar no. 81890 - true - - - - - camera - camera - proprietary - Sakar no. 91379 - true - - - - - camera - camera - proprietary - Sakar no. 98379 - true - - - - - camera - camera - proprietary - Sakar Star Wars kit no. 92022 - true - - - - - camera - camera - proprietary - Sakar Sticker Wizard no. 59379 - true - - - - - camera - camera - ptp - Samsung EK-GC100 - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Samsung F250 Mobile Phone - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Samsung Galaxy models (MTP) - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Samsung Galaxy models (MTP+ADB) - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Samsung Galaxy models Kies mode - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Samsung GT-B2700 - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Samsung GT-B2710/Xcover 271 - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Samsung GT-S5230 - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Samsung GT-S8500 - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Samsung I550W Phone - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Samsung Jet S8000 - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Samsung Juke (SCH-U470) - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Samsung M7600 Beat/GT-S8300T/SGH-F490/S8300 - true - - - - - camera - camera - ptp - Samsung NX1 - true - - - - - camera - camera - ptp - Samsung NX1000 - true - - - - - camera - camera - ptp - Samsung S5620 - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Samsung SAMSUNG Trance - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Samsung U600 Mobile Phone - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Samsung Vibrant SGH-T959/Captivate/Media player mode - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Samsung X830 Mobile Phone - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Samsung YH-820 - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Samsung YH-920 (501d) - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Samsung YH-920 (5022) - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Samsung YH-925(-GS) - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Samsung YH-925GS - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Samsung YH-999 Portable Media Center/SGH-A707/SGH-L760V/SGH-U900/Verizon Intensity/Fascinate - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Samsung YH-J70J - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Samsung YP-900 - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Samsung YP-F2J - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Samsung YP-K3 - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Samsung YP-K5 - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Samsung YP-M1 - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Samsung YP-P2 - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Samsung YP-P3 - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Samsung YP-Q1 - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Samsung YP-Q2 - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Samsung YP-Q3 - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Samsung YP-R0 - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Samsung YP-R1 - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Samsung YP-R2 - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Samsung YP-S3 - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Samsung YP-S5 - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Samsung YP-T10 - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Samsung YP-T7J - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Samsung YP-T9 - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Samsung YP-U2J (YP-U2JXB/XAA) - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Samsung YP-U3 - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Samsung YP-U4 - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Samsung YP-U5 - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Samsung YP-Z3 - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Samsung YP-Z5 - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - SanDisk Sansa c150 - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - SanDisk Sansa c240/c250 - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - SanDisk Sansa c250 v2 - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - SanDisk Sansa Clip - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - SanDisk Sansa Clip v2 - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - SanDisk Sansa Clip Zip - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - SanDisk Sansa Clip+ - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - SanDisk Sansa Connect - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - SanDisk Sansa e200/e250/e260/e270/e280 - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - SanDisk Sansa e260/e280 v2 - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - SanDisk Sansa Express - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - SanDisk Sansa Fuze - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - SanDisk Sansa Fuze v2 - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - SanDisk Sansa Fuze+ - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - SanDisk Sansa m200-tcc (MTP mode) - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - SanDisk Sansa m230/m240 - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - SanDisk Sansa m240/m250 - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - SanDisk Sansa View - true - - - - - camera - camera - ptp - Sanyo VPC-C5 (PTP mode) - true - - - - - camera - camera - proprietary - ScanHex SX-35a - true - - - - - camera - camera - proprietary - ScanHex SX-35b - true - - - - - camera - camera - proprietary - ScanHex SX-35c - true - - - - - camera - camera - proprietary - ScanHex SX-35d - true - - - - - camera - camera - proprietary - Scott APX 30 - true - - - - - camera - camera - ptp - Sea & Sea 2G (PTP mode) - true - - - - - camera - camera - proprietary - Sea & Sea 5000G - true - - - - - camera - camera - ptp - Sea & Sea 5000G (PTP mode) - true - - - - - camera - camera - proprietary - Shark 2-in-1 Mini - true - - - - - camera - camera - proprietary - Shark SDC-513 - true - - - - - camera - camera - proprietary - Shark SDC-519 - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - SHARP Corporation SBM203SH - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - SHARP Corporation SH-06E - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - SHARP Corporation SH930W - true - - - - - camera - camera - proprietary - Shift3 - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - SigmaTel Inc. MTPMSCN Audio Player - true - - - - - camera - camera - proprietary - SiPix Blink 2 - true - - - - - camera - camera - proprietary - SiPix CAMeleon - true - - - - - camera - camera - proprietary - SiPix SC2100 - true - - - - - camera - camera - proprietary - SiPix Snap - true - - - - - camera - camera - proprietary - SiPix Stylecam - true - - - - - camera - camera - proprietary - SiPix Web2 - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Sirius Stiletto - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Sirius Stiletto 2 - true - - - - - camera - camera - proprietary - Skanhex SX-330z - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Slacker Inc. Slacker Portable Media Player - true - - - - - camera - camera - proprietary - SMaL Ultra-Pocket - true - - - - - camera - camera - proprietary - So. Show 301 - true - - - - - camera - camera - ptp - Sony Alpha-A3000 - true - - - - - camera - camera - ptp - Sony Alpha-A5000 (Control) - true - - - - - camera - camera - ptp - Sony Alpha-A5100 (Control) - true - - - - - camera - camera - ptp - Sony Alpha-A5100 (MTP) - true - - - - - camera - camera - ptp - Sony Alpha-A6000 (Control) - true - - - - - camera - camera - ptp - Sony Alpha-A6000 (MTP) - true - - - - - camera - camera - ptp - Sony Alpha-A77 M2 (Control) - true - - - - - camera - camera - ptp - Sony Alpha-A7r (Control) - true - - - - - camera - camera - ptp - Sony Alpha-A7S (Control) - true - - - - - camera - camera - ptp - Sony Alpha-A7S (MTP) - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Sony DCR-SR75 - true - - - - - camera - camera - ptp - Sony DSC-A100 (PTP mode) - true - - - - - camera - camera - ptp - Sony DSC-A900 (PTP mode) - true - - - - - camera - camera - ptp - Sony DSC-F707V (PTP mode) - true - - - - - camera - camera - ptp - Sony DSC-F717 (PTP mode) - true - - - - - camera - camera - ptp - Sony DSC-F828 (PTP mode) - true - - - - - camera - camera - ptp - Sony DSC-H1 (PTP mode) - true - - - - - camera - camera - ptp - Sony DSC-H2 (PTP mode) - true - - - - - camera - camera - ptp - Sony DSC-H5 (PTP mode) - true - - - - - camera - camera - ptp - Sony DSC-HX100V (PTP mode) - true - - - - - camera - camera - ptp - Sony DSC-HX200V (PTP mode) - true - - - - - camera - camera - ptp - Sony DSC-HX300 (PTP mode) - true - - - - - camera - camera - ptp - Sony DSC-HX5V (PTP mode) - true - - - - - camera - camera - ptp - Sony DSC-HX60V (MTP) - true - - - - - camera - camera - ptp - Sony DSC-N2 (PTP mode) - true - - - - - camera - camera - ptp - Sony DSC-P10 (PTP mode) - true - - - - - camera - camera - ptp - Sony DSC-P100 (PTP mode) - true - - - - - camera - camera - ptp - Sony DSC-P120 (PTP mode) - true - - - - - camera - camera - ptp - Sony DSC-P200 (PTP mode) - true - - - - - camera - camera - ptp - Sony DSC-P30 (PTP mode) - true - - - - - camera - camera - ptp - Sony DSC-P31 (PTP mode) - true - - - - - camera - camera - ptp - Sony DSC-P32 (PTP mode) - true - - - - - camera - camera - ptp - Sony DSC-P41 (PTP mode) - true - - - - - camera - camera - ptp - Sony DSC-P43 (PTP mode) - true - - - - - camera - camera - ptp - Sony DSC-P5 (PTP mode) - true - - - - - camera - camera - ptp - Sony DSC-P50 (PTP mode) - true - - - - - camera - camera - ptp - Sony DSC-P51 (PTP mode) - true - - - - - camera - camera - ptp - Sony DSC-P52 (PTP mode) - true - - - - - camera - camera - ptp - Sony DSC-P71 (PTP mode) - true - - - - - camera - camera - ptp - Sony DSC-P72 (PTP mode) - true - - - - - camera - camera - ptp - Sony DSC-P73 (PTP mode) - true - - - - - camera - camera - ptp - Sony DSC-P92 (PTP mode) - true - - - - - camera - camera - ptp - Sony DSC-P93 (PTP mode) - true - - - - - camera - camera - ptp - Sony DSC-R1 (PTP mode) - true - - - - - camera - camera - ptp - Sony DSC-RX1 (PTP mode) - true - - - - - camera - camera - ptp - Sony DSC-RX100 (PTP mode) - true - - - - - camera - camera - ptp - Sony DSC-RX100M2 - true - - - - - camera - camera - ptp - Sony DSC-S40 (PTP mode) - true - - - - - camera - camera - ptp - Sony DSC-S60 (PTP mode) - true - - - - - camera - camera - ptp - Sony DSC-S730 (PTP mode) - true - - - - - camera - camera - ptp - Sony DSC-S75 (PTP mode) - true - - - - - camera - camera - ptp - Sony DSC-S780 (PTP mode) - true - - - - - camera - camera - ptp - Sony DSC-S85 (PTP mode) - true - - - - - camera - camera - ptp - Sony DSC-T1 (PTP mode) - true - - - - - camera - camera - ptp - Sony DSC-T10 (PTP mode) - true - - - - - camera - camera - ptp - Sony DSC-T3 (PTP mode) - true - - - - - camera - camera - ptp - Sony DSC-U10 (PTP mode) - true - - - - - camera - camera - ptp - Sony DSC-U20 (PTP mode) - true - - - - - camera - camera - ptp - Sony DSC-V1 (PTP mode) - true - - - - - camera - camera - ptp - Sony DSC-W1 (PTP mode) - true - - - - - camera - camera - ptp - Sony DSC-W12 (PTP mode) - true - - - - - camera - camera - ptp - Sony DSC-W130 (PTP mode) - true - - - - - camera - camera - ptp - Sony DSC-W200 (PTP mode) - true - - - - - camera - camera - ptp - Sony DSC-W35 (PTP mode) - true - - - - - camera - camera - ptp - Sony DSC-W510 (PTP mode) - true - - - - - camera - camera - ptp - Sony DSC-W55 (PTP mode) - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - SONY IS12S Xperia Acro HD MTP+ADB - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - SONY IS12S Xperia Acro HD MTP+UMS - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - SONY IS12S Xperia Acro MTP+UMS+ADB - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - SONY LT22i Xperia P MTP - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - SONY LT22i Xperia P MTP+ADB - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - SONY LT22i Xperia P MTP+CDROM - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - SONY LT25i Xperia V MTP - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - SONY LT25i Xperia V MTP+ADB - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - SONY LT25i Xperia V MTP+CDROM - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - SONY LT26i Xperia S MTP - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - SONY LT26i Xperia S MTP+ADB - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - SONY LT26i Xperia S MTP+CDROM - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - SONY LT26w Xperia Acro HD IS12S MTP - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - SONY LT26w Xperia Acro HD IS12S MTP+CDROM - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - SONY LT26w Xperia Acro HD SO-03D MTP - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - SONY LT26w Xperia Acro HD SO-03D MTP+CDROM - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - SONY LT28at Xperia Ion MTP - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - SONY LT28at Xperia Ion MTP+ADB - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - SONY LT28at Xperia Ion MTP+CDROM - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - SONY LT28at Xperia Ion MTP+UMS - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - SONY LT28at Xperia Ion MTP+UMS+ADB - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - SONY LT29i Xperia GX MTP - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - SONY LT29i Xperia GX MTP+ADB - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - SONY LT29i Xperia GX MTP+CDROM - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - SONY LT30p Xperia T MTP - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - SONY LT30p Xperia T MTP+ADB - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - SONY LT30p Xperia T MTP+CDROM - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - SONY MT27i Xperia Sola MTP - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - SONY MT27i Xperia Sola MTP+ADB - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - SONY MT27i Xperia Sola MTP+CDROM - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - SONY MT27i Xperia Sola MTP+UMS - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - SONY MT27i Xperia Sola MTP+UMS+ADB - true - - - - - camera - camera - ptp - Sony MVC-CD300 (PTP mode) - true - - - - - camera - camera - ptp - Sony MVC-CD500 (PTP mode) - true - - - - - camera - camera - ptp - Sony NEX-3N (PTP mode) - true - - - - - camera - camera - ptp - Sony NEX-6 - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Sony NWZ-A726/NWZ-A728/NWZ-A768 - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Sony NWZ-A815/NWZ-A818 - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Sony NWZ-A826/NWZ-A828/NWZ-A829 - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Sony NWZ-A845 - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Sony NWZ-B135 - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Sony NWZ-B142F - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Sony NWZ-B153F - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Sony NWZ-B163F - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Sony NWZ-B173F - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Sony NWZ-E344/E345 - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Sony NWZ-E354 - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Sony NWZ-E436F - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Sony NWZ-E445 - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Sony NWZ-E464 - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Sony NWZ-S516 - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Sony NWZ-S545 - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Sony NWZ-S615F/NWZ-S616F/NWZ-S618F - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Sony NWZ-S638F - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Sony NWZ-S716F - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Sony NWZ-S739F - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Sony NWZ-S754 - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Sony NWZ-S765 - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Sony NWZ-W202 - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Sony NWZ-W252B - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Sony NWZ-X1050B/NWZ-X1060B - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Sony NWZ-X1051/NWZ-X1061 - true - - - - - camera - camera - ptp - Sony PTP - true - - - - - camera - camera - ptp - Sony SLT-A35 (PTP mode) - true - - - - - camera - camera - ptp - Sony SLT-A350 (PTP mode) - true - - - - - camera - camera - ptp - Sony SLT-A55 (PTP mode) - true - - - - - camera - camera - ptp - Sony SLT-A57 - true - - - - - camera - camera - ptp - Sony SLT-A58 - true - - - - - camera - camera - ptp - Sony SLT-A58 (Control) - true - - - - - camera - camera - ptp - Sony SLT-A65V (PTP mode) - true - - - - - camera - camera - ptp - Sony SLT-A99v - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - SONY SO-03D Xperia Acro HD MTP+ADB - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - SONY SO-03D Xperia Acro HD MTP+UMS - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - SONY SO-03D Xperia Acro MTP+UMS+ADB - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - SONY SO-05D Xperia SX MTP - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - SONY SO-05D Xperia SX MTP+ADB - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - SONY SO-05D Xperia SX MTP+CDROM - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Sony Sony Tablet P1 - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Sony Sony Tablet S - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Sony Sony Tablet S1 - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - SONY ST15i Xperia U MTP - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - SONY ST21i Xperia Tipo MTP - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - SONY ST21i Xperia Tipo MTP+ADB - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - SONY ST21i Xperia Tipo MTP+CDROM - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - SONY ST23i Xperia Miro MTP - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - SONY ST23i Xperia Miro MTP+ADB - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - SONY ST23i Xperia Miro MTP+CDROM - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - SONY ST25i Xperia U MTP+ADB - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - SONY ST25i Xperia U MTP+CDROM - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - SONY ST27i/ST27a Xperia go MTP - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - SONY ST27i/ST27a Xperia go MTP+ADB - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - SONY ST27i/ST27a Xperia go MTP+CDROM - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - SONY ST27i/ST27a Xperia go MTP+UMS - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - SONY ST27i/ST27a Xperia go MTP+UMS+ADB - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - SONY WT19i Live Walkman MTP - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - SONY Xperia A MTP - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - SONY Xperia A MTP+ADB - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - SONY Xperia C MTP - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - SONY Xperia C MTP+ADB - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - SONY Xperia C MTP+CDROM - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - SONY Xperia E MTP - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - SONY Xperia E MTP+ADB - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - SONY Xperia E MTP+CDROM - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - SONY Xperia E3 MTP - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - SONY Xperia E3 MTP+ADB - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - SONY Xperia E3 MTP+CDROM - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - SONY XPeria E4g MTP - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - SONY XPeria E4g MTP+ADB - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - SONY XPeria E4g MTP+CDROM - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - SONY Xperia J MTP - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - SONY Xperia J MTP+ADB - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - SONY Xperia J MTP+CDROM - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - SONY Xperia L MTP - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - SONY Xperia L MTP+ADB - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - SONY Xperia L MTP+CDROM - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - SONY Xperia M MTP - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - SONY Xperia M MTP+ADB - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - SONY Xperia M MTP+CDROM - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - SONY Xperia M2 Dual MTP - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - SONY Xperia M2 Dual MTP+ADB - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - SONY Xperia M2 Dual MTP+CDROM - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - SONY Xperia M2 MTP - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - SONY Xperia M2 MTP+ADB - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - SONY Xperia M2 MTP+CDROM - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - SONY Xperia SP MTP - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - SONY Xperia SP MTP+ADB - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - SONY Xperia SP MTP+CDROM - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - SONY Xperia Tablet Z MTP 1 - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - SONY Xperia Tablet Z MTP 2 - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - SONY Xperia Tablet Z MTP+ADB 1 - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - SONY Xperia Tablet Z MTP+ADB 2 - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - SONY Xperia Tablet Z MTP+CDROM 1 - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - SONY Xperia Tablet Z MTP+CDROM 2 - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - SONY Xperia Z MTP - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - SONY Xperia Z MTP+ADB - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - SONY Xperia Z MTP+CDROM - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - SONY Xperia Z Ultra MTP - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - SONY Xperia Z Ultra MTP (ID2) - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - SONY Xperia Z Ultra MTP (ID3) - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - SONY Xperia Z Ultra MTP+ADB - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - SONY Xperia Z Ultra MTP+ADB (ID2) - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - SONY Xperia Z Ultra MTP+ADB (ID3) - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - SONY Xperia Z Ultra MTP+CDROM (ID3) - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - SONY Xperia Z1 Compact D5503 - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - SONY Xperia Z1 Compact D5503 MTP+CDROM - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - SONY Xperia Z1 Compact MTP+ADB - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - SONY Xperia Z1 MTP - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - SONY Xperia Z1 MTP+ADB - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - SONY Xperia Z1 MTP+CDROM - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - SONY Xperia Z2 MTP - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - SONY Xperia Z2 MTP+ADB - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - SONY Xperia Z2 MTP+CDROM - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - SONY Xperia Z3 Compact MTP - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - SONY Xperia Z3 Compact MTP+ADB - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - SONY Xperia Z3 Compact MTP+CDROM - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - SONY Xperia Z3 MTP - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - SONY Xperia Z3 MTP+ADB - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - SONY Xperia Z3 MTP+CDROM - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - SONY Xperia ZL MTP - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - SONY Xperia ZL MTP+ADB - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - SONY Xperia ZL MTP+CDROM - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - SONY Xperia ZR MTP - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - SONY Xperia ZR MTP+ADB - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - SonyEricsson c1605 Xperia Dual E MTP - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - SonyEricsson c1605 Xperia Dual E MTP+ADB - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - SonyEricsson C702 - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - SonyEricsson C902 - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - SonyEricsson C905 - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - SonyEricsson IS12S Xperia Acro MTP - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - SonyEricsson IS12S Xperia Acro MTP+ADB - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - SonyEricsson IS12S Xperia Acro MTP+CDROM - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - SonyEricsson j108i (Cedar) - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - SonyEricsson j10i (Elm) - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - SonyEricsson j10i2 (Elm) - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - SonyEricsson K550i - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - SonyEricsson K850i - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - SonyEricsson LT15i Xperia Arc MTP+ADB - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - SonyEricsson LT15i Xperia arc S MTP - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - SonyEricsson MK16i Xperia MTP - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - SonyEricsson MK16i Xperia MTP+ADB - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - SonyEricsson MT11i Xperia Neo MTP - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - SonyEricsson MT11i Xperia Neo MTP+ADB - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - SonyEricsson R800/R88i Xperia Play MTP - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - SonyEricsson R800/R88i Xperia Play MTP+ADB - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - SonyEricsson SK17i Xperia Mini Pro MTP - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - SonyEricsson SK17i Xperia Mini Pro MTP+ADB - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - SonyEricsson ST15i Xperia Mini MTP - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - SonyEricsson ST15i Xperia Mini MTP+ADB - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - SonyEricsson ST17i Xperia Active MTP - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - SonyEricsson ST17i Xperia Active MTP+ADB - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - SonyEricsson ST17i Xperia Active MTP+CDROM - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - SonyEricsson ST18a Xperia Ray MTP - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - SonyEricsson ST18i Xperia Ray MTP+ADB - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - SonyEricsson T700 - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - SonyEricsson U5 - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - SonyEricsson U8i - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - SonyEricsson W302 - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - SonyEricsson W595 - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - SonyEricsson W705/W715 - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - SonyEricsson W760i - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - SonyEricsson W890i - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - SonyEricsson W902 - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - SonyEricsson W910 - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - SonyEricsson W980 - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - SonyEricsson W995 - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - SonyEricsson WT19i Live Walkman MTP+ADB - true - - - - - camera - camera - proprietary - Soundstar TDC-35 - true - - - - - camera - camera - proprietary - SpyPen Axys - true - - - - - camera - camera - proprietary - SpyPen Cleo - true - - - - - camera - camera - proprietary - SpyPen Luxo - true - - - - - camera - camera - proprietary - SpyPen Memo - true - - - - - camera - camera - proprietary - SpyPen Xion - true - - - - - camera - camera - proprietary - SQ chip camera - true - - - - - camera - camera - proprietary - StarCam CP086 - true - - - - - camera - camera - proprietary - STM USB Dual-mode camera - true - - - - - camera - camera - proprietary - Stop & Shop 87096 - true - - - - - camera - camera - proprietary - STV0680 - true - - - - - camera - camera - proprietary - Suprema Digital Keychain Camera - true - - - - - camera - camera - proprietary - SY-2107C - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - TCL Alcatel one touch 986+ - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Technika MP-709 - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Tevion MD 81488 - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Thomson / RCA Lyra HC308A - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Thomson / RCA Opal / Lyra MC4002 - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Thomson EM28 Series - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Thomson Lyra MC5104B (M51 Series) - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Thomson RCA H106 - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Thomson scenium E308 - true - - - - - camera - camera - proprietary - Tiger Fast Flicks - true - - - - - camera - camera - proprietary - Timlex CP075 - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - TomTom Rider 40 - true - - - - - camera - camera - proprietary - Topfield TF5000PVR - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Toshiba Excite AT300 - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Toshiba Gigabeat - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Toshiba Gigabeat MEGF-40 - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Toshiba Gigabeat MET401 - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Toshiba Gigabeat MEU201 - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Toshiba Gigabeat MEU202 - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Toshiba Gigabeat P10 - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Toshiba Gigabeat P20 - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Toshiba Gigabeat S - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Toshiba Gigabeat T - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Toshiba Gigabeat U - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Toshiba Gigabeat V30 - true - - - - - camera - camera - proprietary - Toshiba PDR-M11 - true - - - - - camera - camera - proprietary - Toshiba PDR-M60 - true - - - - - camera - camera - proprietary - Toshiba PDR-M61 - true - - - - - camera - camera - proprietary - Toshiba PDR-M65 - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Toshiba Thrive AT100/AT105 - true - - - - - camera - camera - proprietary - Traveler SX330z - true - - - - - camera - camera - proprietary - Traveler SX410z - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - TrekStor i.Beat Organix 2.0 - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - TrekStor i.Beat Sweez FM - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - TrekStor Vibez 8/12GB - true - - - - - camera - camera - proprietary - Trust Familycam 300 - true - - - - - camera - camera - proprietary - Trust PowerC@m 350FS - true - - - - - camera - camera - proprietary - Trust PowerC@m 350FT - true - - - - - camera - camera - proprietary - Trust Spyc@m 100 - true - - - - - camera - camera - proprietary - Trust Spyc@m 500F FLASH - true - - - - - camera - camera - proprietary - Typhoon StyloCam - true - - - - - camera - camera - proprietary - UMAX AstraPen - true - - - - - camera - camera - proprietary - UMAX AstraPix 320s - true - - - - - - camera - camera - ptp - USB PTP Class Camera - true - - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Various Viewpia DR/bq Kepler - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Various Viewpia DR/bq Kepler Debugging - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Verizon Ellipsis 7 - true - - - - - camera - camera - proprietary - ViviCam3350 - true - - - - - camera - camera - proprietary - ViviCam5B - true - - - - - camera - camera - proprietary - Vivitar Freelance - true - - - - - camera - camera - proprietary - Vivitar Mini Digital Camera - true - - - - - camera - camera - proprietary - Vivitar Vivicam 55 - true - - - - - camera - camera - proprietary - Vivitar Vivicam3350B - true - - - - - camera - camera - proprietary - Vivitar Vivicam35 - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Vizio (for Lenovo) LIFETAB S9714 - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Vizio Unknown 1 - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Vizio VTAB1008 - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Wacom Cintiq Companion Hybrid (MTP+ADB) - true - - - - - camera - camera - proprietary - Wild Planet Digital Spy Camera 70137 - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Wyplay Wyplayer - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Xiaomi HM NOTE 1LTEW MIUI (MTP) - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Xiaomi Hongmi (MTP) - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Xiaomi Hongmi (MTP+ADB) - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Xiaomi Mi-2 (MTP) - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Xiaomi Mi-2 (MTP+ADB) - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Xiaomi Mi-2s (MTP) - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Xiaomi Mi-3 (MTP) - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Xiaomi Mi-3w (MTP) - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Xiaomi MiPad (MTP) - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - YiFang BQ Tesla - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Yota Phone 2 - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - Yota Phone 2 (ID2) - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - YU Yureka Vodafone smart turbo 4 - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - ZiiLABS Zii EGG - true - - - - - camera - camera - proprietary - ZINA Mini Digital Keychain Camer - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - ZTE Grand X In - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - ZTE V5 - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - ZTE V55 ID 1 - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - ZTE V55 ID 2 - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - ZTE V790/Blade 3 - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - ZTE V880E - true - - - - - portable_audio_player - portable_audio_player - user - mtp - audio/mpeg - ZTE V985 - true - - - - - diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/gphoto2/libgphoto2_2.5.17.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/gphoto2/libgphoto2_2.5.17.bb deleted file mode 100644 index 91c5ed21..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/gphoto2/libgphoto2_2.5.17.bb +++ /dev/null @@ -1,54 +0,0 @@ -SUMMARY = "libgphoto2 allows you to access digital cameras" -SECTION = "libs" -LICENSE = "LGPLv2.1" -LIC_FILES_CHKSUM = "file://COPYING;md5=0448d3676bc0de00406af227d341a4d1" - -DEPENDS = "libtool jpeg virtual/libusb0 libexif zlib libxml2" - -# The .fdi and .rules files were generated with: -# libgphoto2-2.5.8/packaging/generic$ qemu-arm -s 1048576 -r 2.6.24 -L /OE/angstrom-dev/staging/armv5te-angstrom-linux-gnueabi/ .libs/print-camera-list -# They are release specific, so please regen when adding new releases - -SRC_URI = "${SOURCEFORGE_MIRROR}/gphoto/libgphoto2-${PV}.tar.bz2;name=libgphoto2 \ - file://10-camera-libgphoto2-device.fdi \ - file://10-camera-libgphoto2.fdi \ - file://40-libgphoto2.rules \ - file://0001-configure.ac-remove-AM_PO_SUBDIRS.patch \ -" - -SRC_URI[libgphoto2.md5sum] = "ae78e7a7936a6962c3a22b256bee1869" -SRC_URI[libgphoto2.sha256sum] = "417464f0a313fa937e8a71cdf18a371cf01e750830195cd63ae31da0d092b555" - -inherit autotools pkgconfig gettext lib_package - -EXTRA_OECONF = " --with-drivers=all udevscriptdir=${nonarch_base_libdir}/udev ac_cv_lib_ltdl_lt_dlcaller_register=yes" - -PACKAGECONFIG ??= "" -PACKAGECONFIG[gd] = ",--without-gdlib,gd" -PACKAGECONFIG[serial] = "--enable-serial,--disable-serial,lockdev" - -do_configure_append() { - cp ${STAGING_DATADIR_NATIVE}/gettext/po/Makefile.in.in ${S}/libgphoto2_port/po/ - cd ${S}/libgphoto2_port/ - autoreconf -Wcross --verbose --install --force ${EXTRA_AUTORECONF} $acpaths - cd ${S} -} - -do_install_append() { - install -d ${D}${datadir}/hal/fdi/information/20thirdparty - install -m 0644 ${WORKDIR}/*.fdi ${D}${datadir}/hal/fdi/information/20thirdparty/ - - install -d ${D}${sysconfdir}/udev/rules.d/ - install -m 0755 ${WORKDIR}/*.rules ${D}${sysconfdir}/udev/rules.d/ -} - -PACKAGES =+ "libgphotoport libgphoto2-camlibs" -FILES_libgphoto2-camlibs = "${libdir}/libgphoto2*/*/*.so*" -RRECOMMENDS_${PN} = "libgphoto2-camlibs" - -FILES_libgphotoport = "${libdir}/libgphoto2_port.so.*" - -FILES_${PN} += "${nonarch_base_libdir}/udev/* ${datadir}/hal" -FILES_${PN}-dbg += "${libdir}/*/*/.debug" -FILES_${PN}-dev += "${libdir}/*/*/*.la" -FILES_${PN}-doc += "${datadir}/libgphoto2_port/0.12.0/vcamera/README.txt" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/gphoto2/libgphoto2_2.5.23.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/gphoto2/libgphoto2_2.5.23.bb new file mode 100644 index 00000000..a3bdf9ce --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/gphoto2/libgphoto2_2.5.23.bb @@ -0,0 +1,49 @@ +SUMMARY = "libgphoto2 allows you to access digital cameras" +SECTION = "libs" +LICENSE = "LGPLv2.1" +LIC_FILES_CHKSUM = "file://COPYING;md5=0448d3676bc0de00406af227d341a4d1" + +DEPENDS = "libtool jpeg virtual/libusb0 libexif zlib libxml2" + +# The .fdi and .rules files were generated with: +# libgphoto2-2.5.8/packaging/generic$ qemu-arm -s 1048576 -r 2.6.24 -L /OE/angstrom-dev/staging/armv5te-angstrom-linux-gnueabi/ .libs/print-camera-list +# They are release specific, so please regen when adding new releases + +SRC_URI = "${SOURCEFORGE_MIRROR}/gphoto/libgphoto2-${PV}.tar.bz2;name=libgphoto2 \ + file://40-libgphoto2.rules \ + file://0001-configure.ac-remove-AM_PO_SUBDIRS.patch \ +" + +SRC_URI[libgphoto2.md5sum] = "bf052ce815e607dc781c5b0f3c5ca5c0" +SRC_URI[libgphoto2.sha256sum] = "d8af23364aa40fd8607f7e073df74e7ace05582f4ba13f1724d12d3c97e8852d" + +inherit autotools pkgconfig gettext lib_package + +EXTRA_OECONF = " --with-drivers=all udevscriptdir=${nonarch_base_libdir}/udev ac_cv_lib_ltdl_lt_dlcaller_register=yes" + +PACKAGECONFIG ??= "" +PACKAGECONFIG[gd] = ",--without-gdlib,gd" +PACKAGECONFIG[serial] = "--enable-serial,--disable-serial,lockdev" + +do_configure_append() { + cp ${STAGING_DATADIR_NATIVE}/gettext/po/Makefile.in.in ${S}/libgphoto2_port/po/ + cd ${S}/libgphoto2_port/ + autoreconf -Wcross --verbose --install --force ${EXTRA_AUTORECONF} $acpaths + cd ${S} +} + +do_install_append() { + install -d ${D}${sysconfdir}/udev/rules.d/ + install -m 0755 ${WORKDIR}/*.rules ${D}${sysconfdir}/udev/rules.d/ +} + +PACKAGES =+ "libgphotoport libgphoto2-camlibs" +FILES_libgphoto2-camlibs = "${libdir}/libgphoto2*/*/*.so*" +RRECOMMENDS_${PN} = "libgphoto2-camlibs" + +FILES_libgphotoport = "${libdir}/libgphoto2_port.so.*" + +FILES_${PN} += "${nonarch_base_libdir}/udev/*" +FILES_${PN}-dbg += "${libdir}/*/*/.debug" +FILES_${PN}-dev += "${libdir}/*/*/*.la" +FILES_${PN}-doc += "${datadir}/libgphoto2_port/0.12.0/vcamera/README.txt" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/graphviz/graphviz/0001-Set-use_tcl-to-be-empty-string-if-tcl-is-disabled.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/graphviz/graphviz/0001-Set-use_tcl-to-be-empty-string-if-tcl-is-disabled.patch new file mode 100644 index 00000000..21bf1bcd --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/graphviz/graphviz/0001-Set-use_tcl-to-be-empty-string-if-tcl-is-disabled.patch @@ -0,0 +1,33 @@ +From 564901ab78da2b2b1bed92351dc3c102dc0a8154 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Tue, 6 Aug 2019 17:51:39 -0700 +Subject: [PATCH] Set use_tcl to be empty string if tcl is disabled + +Upstream-Status: Inappropriate [Cross-compile specific] +Signed-off-by: Khem Raj +--- + configure.ac | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/configure.ac ++++ b/configure.ac +@@ -1676,7 +1676,7 @@ AC_ARG_ENABLE(tcl, + [], [enable_tcl=yes]) + + if test "x$enable_tcl" != "xyes"; then +- use_tcl="No (disabled)" ++ use_tcl="" + fi + + if test "x$use_tcl" = "x"; then +--- a/Makefile.am ++++ b/Makefile.am +@@ -19,7 +19,7 @@ pkginclude_HEADERS = $(top_builddir)/gra + man_MANS = graphviz.7 + + # $(subdirs) contains the list from: AC_CONFIG_SUBDIRS +-SUBDIRS = $(subdirs) lib plugin cmd tclpkg doc contrib share graphs rtest tests ++SUBDIRS = $(subdirs) lib plugin cmd doc contrib share graphs rtest tests + + .PHONY: doxygen + doxygen: diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/graphviz/graphviz/0001-plugin-pango-Include-freetype-headers-explicitly.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/graphviz/graphviz/0001-plugin-pango-Include-freetype-headers-explicitly.patch new file mode 100644 index 00000000..a9b03524 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/graphviz/graphviz/0001-plugin-pango-Include-freetype-headers-explicitly.patch @@ -0,0 +1,38 @@ +From 926d9285f3367ae1bdb9ce1dce95f7de73b3a980 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Tue, 6 Aug 2019 12:42:19 -0700 +Subject: [PATCH] plugin/pango: Include freetype headers explicitly +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Do not depend on pango automatically adding these headers +Fixes +| gvtextlayout_pango.c:140:10: error: unknown type name ‘FT_Face’ +| FT_Face face; +| ^~~~~~~ + +Upstream-Status: Pending +Signed-off-by: Khem Raj +--- + plugin/pango/gvtextlayout_pango.c | 4 ++++ + 1 file changed, 4 insertions(+) + +diff --git a/plugin/pango/gvtextlayout_pango.c b/plugin/pango/gvtextlayout_pango.c +index d620b29..b0da11c 100644 +--- a/plugin/pango/gvtextlayout_pango.c ++++ b/plugin/pango/gvtextlayout_pango.c +@@ -15,6 +15,10 @@ + + #include + #include ++ ++#include ++#include FT_FREETYPE_H ++ + #include "gvplugin_render.h" + #include "agxbuf.h" + #include "utils.h" +-- +2.22.0 + diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/graphviz/graphviz_2.40.1.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/graphviz/graphviz_2.40.1.bb index a9efffac..176cf449 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/graphviz/graphviz_2.40.1.bb +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/graphviz/graphviz_2.40.1.bb @@ -26,9 +26,13 @@ inherit autotools-brokensep pkgconfig gettext # source - see https://src.fedoraproject.org/cgit/rpms/graphviz.git/tree/graphviz.spec SRC_URI = "https://gitlab.com/graphviz/graphviz/-/archive/stable_release_${PV}/graphviz-stable_release_${PV}.tar.gz \ + file://0001-plugin-pango-Include-freetype-headers-explicitly.patch \ " # Use native mkdefs -SRC_URI_append_class-target = " file://0001-Use-native-mkdefs.patch" +SRC_URI_append_class-target = "\ + file://0001-Use-native-mkdefs.patch \ + file://0001-Set-use_tcl-to-be-empty-string-if-tcl-is-disabled.patch \ +" SRC_URI[md5sum] = "2acf30ca8e6cc8b001b0334db65fd072" SRC_URI[sha256sum] = "e6c3f8dbfde1c4523055403927bef29f97f9fc12715c1042b5dcf648a2c1c62a" @@ -39,6 +43,7 @@ EXTRA_OECONF_class-target = "\ --with-expatlibdir=${STAGING_LIBDIR} \ --without-included-ltdl \ --disable-java \ + --disable-tcl \ --disable-r \ --disable-sharp \ " @@ -54,6 +59,19 @@ do_install_append_class-native() { install -m755 ${B}/lib/gvpr/mkdefs ${D}${bindir} } +PACKAGES =+ "${PN}-python ${PN}-perl ${PN}-demo" + +FILES_${PN}-python += "${libdir}/python*/site-packages/ ${libdir}/graphviz/python/" +FILES_${PN}-perl += "${libdir}/perl5/*/vendor_perl/ ${libdir}/graphviz/perl/" +FILES_${PN}-demo += "${datadir}/graphviz/demo/" + +RDEPENDS_${PN}-perl += "perl" +RDEPENDS_${PN}-python += "python" +RDEPENDS_${PN}-demo += "python perl" + +INSANE_SKIP_${PN}-perl = "dev-so" +INSANE_SKIP_${PN}-python = "dev-so" + FILES_SOLIBSDEV_append = " ${libdir}/graphviz/lib*${SOLIBSDEV}" BBCLASSEXTEND = "native" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/gtkperf/gtkperf/gettext.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/gtkperf/gtkperf/gettext.patch new file mode 100644 index 00000000..4a727d3c --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/gtkperf/gtkperf/gettext.patch @@ -0,0 +1,36 @@ +Fix build with gettext 0.20.x + +Upstream-Status: Pending +Signed-off-by: Khem Raj + +--- a/Makefile.am ++++ b/Makefile.am +@@ -3,7 +3,7 @@ + ## If you don't want it to overwrite it, + ## Please disable it in the Anjuta project configuration + +-SUBDIRS = intl po src pixmaps ++SUBDIRS = po src pixmaps + + gtkperfdocdir = ${prefix}/doc/gtkperf + gtkperfdoc_DATA = \ +--- a/configure.in ++++ b/configure.in +@@ -31,8 +31,7 @@ AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE, "$GE + + dnl Languages which your application supports + ALL_LINGUAS="" +-AM_GNU_GETTEXT +-AM_GNU_GETTEXT_VERSION(0.10.40) ++AM_GNU_GETTEXT([external]) + + dnl Set PACKAGE_LOCALE_DIR in config.h. + if test "x${prefix}" = "xNONE"; then +@@ -100,7 +99,6 @@ AC_DEFINE_UNQUOTED(PACKAGE_SOURCE_DIR, " + + AC_OUTPUT([ + Makefile +-intl/Makefile + po/Makefile.in + src/Makefile + pixmaps/Makefile diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/gtkperf/gtkperf_0.40.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/gtkperf/gtkperf_0.40.bb index 4094513b..b4d94ff6 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/gtkperf/gtkperf_0.40.bb +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/gtkperf/gtkperf_0.40.bb @@ -7,6 +7,7 @@ SRC_URI = "http://prdownloads.sourceforge.net/${BPN}/${BPN}_${PV}.tar.gz \ file://Makevars \ file://0001-Include-stdlib.h-for-exit-API.patch \ file://0002-timing.c-Fix-format-security-errors.patch \ + file://gettext.patch \ " SRC_URI[md5sum] = "4331dde4bb83865e15482885fcb0cc53" @@ -16,7 +17,7 @@ DEPENDS = "gtk+" S = "${WORKDIR}/${BPN}" -inherit distro_features_check autotools binconfig pkgconfig gettext +inherit features_check autotools binconfig pkgconfig gettext REQUIRED_DISTRO_FEATURES = "x11" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/gtkwave/gtkwave_3.3.103.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/gtkwave/gtkwave_3.3.103.bb new file mode 100644 index 00000000..286d9aa6 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/gtkwave/gtkwave_3.3.103.bb @@ -0,0 +1,23 @@ +SUMMARY = "VCD (Value Change Dump) file waveform viewer" +DESCRIPTION = "gtkwave is a viewer for VCD (Value Change Dump) files which are usually created by digital circuit simulators. (These files have no connection to video CDs!) " +HOMEPAGE = "http://gtkwave.sourceforge.net/" + +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=75859989545e37968a99b631ef42722e" + +SRC_URI = "http://gtkwave.sourceforge.net/${BP}.tar.gz" + +SRC_URI[md5sum] = "5a9a5913f9a02a333b2b23626f153fd7" +SRC_URI[sha256sum] = "c325abf7cf26c53309a67c0ecaaf196774fa982a717a102c599ac8a516eeeaf7" + +inherit pkgconfig autotools gettext texinfo +DEPENDS = "tcl tk gperf-native bzip2 xz pango zlib gtk+ gdk-pixbuf glib-2.0" +RDEPENDS_${PN} = "tk-lib" + +# depends on gtk+ which has this restriction +inherit features_check +ANY_OF_DISTRO_FEATURES = "${GTK2DISTROFEATURES}" + +EXTRA_OECONF = "--with-tcl=${STAGING_BINDIR_CROSS} --with-tk=${STAGING_BINDIR_CROSS} --with-tirpc" + +FILES_${PN} = "${bindir} ${datadir}" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/gtkwave/gtkwave_3.3.98.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/gtkwave/gtkwave_3.3.98.bb deleted file mode 100644 index b9aae0f6..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/gtkwave/gtkwave_3.3.98.bb +++ /dev/null @@ -1,23 +0,0 @@ -SUMMARY = "VCD (Value Change Dump) file waveform viewer" -DESCRIPTION = "gtkwave is a viewer for VCD (Value Change Dump) files which are usually created by digital circuit simulators. (These files have no connection to video CDs!) " -HOMEPAGE = "http://gtkwave.sourceforge.net/" - -LICENSE = "GPLv2" -LIC_FILES_CHKSUM = "file://COPYING;md5=75859989545e37968a99b631ef42722e" - -SRC_URI = "http://gtkwave.sourceforge.net/${PN}-${PV}.tar.gz" - -SRC_URI[md5sum] = "eac3073ef381e0c09da33590296ca37f" -SRC_URI[sha256sum] = "efa6bbbeb3bd54104425a69a2aa0d079bb5c3ecc1c420ba57dcaa1c97c5a22f6" - -inherit pkgconfig autotools gettext texinfo -DEPENDS = "tcl tk gperf-native bzip2 xz pango zlib gtk+ gdk-pixbuf glib-2.0" -RDEPENDS_${PN} = "tk-lib" - -# depends on gtk+ which has this restriction -inherit distro_features_check -ANY_OF_DISTRO_FEATURES = "${GTK2DISTROFEATURES}" - -EXTRA_OECONF = "--with-tcl=${STAGING_BINDIR_CROSS} --with-tk=${STAGING_BINDIR_CROSS}" - -FILES_${PN} = "${bindir} ${datadir}" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/jasper/jasper_1.900.1.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/jasper/jasper_1.900.1.bb deleted file mode 100644 index cc6a694c..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/jasper/jasper_1.900.1.bb +++ /dev/null @@ -1,18 +0,0 @@ -SUMMARY = "Jpeg 2000 implementation" -LICENSE = "MIT" -LIC_FILES_CHKSUM = "file://LICENSE;md5=baa697d7510288a9cdcce9bd7edaf9bc" - -PR = "r1" - -SRC_URI = "http://www.ece.uvic.ca/~mdadams/jasper/software/jasper-${PV}.zip" - -inherit autotools lib_package - -PACKAGECONFIG ??= "" -PACKAGECONFIG[jpeg] = "--enable-libjpeg,--disable-libjpeg,jpeg" -PACKAGECONFIG[opengl] = "--enable-opengl,--disable-opengl,freeglut" - -EXTRA_OECONF = "--enable-shared" - -SRC_URI[md5sum] = "a342b2b4495b3e1394e161eb5d85d754" -SRC_URI[sha256sum] = "6b905a9c2aca2e275544212666eefc4eb44d95d0a57e4305457b407fe63f9494" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/jasper/jasper_2.0.16.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/jasper/jasper_2.0.16.bb new file mode 100644 index 00000000..1d5a2943 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/jasper/jasper_2.0.16.bb @@ -0,0 +1,24 @@ +SUMMARY = "Jpeg 2000 implementation" +HOMEPAGE = "https://github.com/mdadams/jasper" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://LICENSE;md5=a80440d1d8f17d041c71c7271d6e06eb" + +SRC_URI = "git://github.com/mdadams/jasper.git;protocol=https" +SRCREV = "9aef6d91a82a8a6aecb575cbee57f74470603cc2" + +S = "${WORKDIR}/git" + +inherit cmake + +PACKAGECONFIG ??= "" +PACKAGECONFIG[jpeg] = "-DJAS_ENABLE_LIBJPEG=true, -DJAS_ENABLE_LIBJPEG=false, jpeg" +PACKAGECONFIG[opengl] = "-DJAS_ENABLE_OPENGL=true, -DJAS_ENABLE_OPENGL=false, freeglut" + +EXTRA_OECMAKE_append = " -DJAS_ENABLE_SHARED=true" + +do_install_append() { + chrpath -d ${D}${bindir}/jasper + chrpath -d ${D}${bindir}/imginfo + chrpath -d ${D}${bindir}/imgcmp + chrpath -d ${D}${libdir}/libjasper.so.* +} diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/libforms/libforms_1.2.3.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/libforms/libforms_1.2.3.bb index 5d331859..999d53d4 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/libforms/libforms_1.2.3.bb +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/libforms/libforms_1.2.3.bb @@ -14,7 +14,7 @@ SRC_URI = "http://download.savannah.nongnu.org/releases/xforms/xforms-${PV}.tar. SRC_URI[md5sum] = "235720a758a8b8d9e6e452dc67190e9b" SRC_URI[sha256sum] = "7989b39598c769820ad451ad91e5cb0de29946940c8240aac94ca8238c2def61" -inherit autotools distro_features_check +inherit autotools features_check REQUIRED_DISTRO_FEATURES = "opengl x11" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/libsdl/libsdl-1.2.15/0001-build-Pass-tag-CC-explictly-when-using-libtool.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/libsdl/libsdl-1.2.15/0001-build-Pass-tag-CC-explictly-when-using-libtool.patch similarity index 100% rename from Contrib-Inspur/openbmc/poky/meta/recipes-graphics/libsdl/libsdl-1.2.15/0001-build-Pass-tag-CC-explictly-when-using-libtool.patch rename to Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/libsdl/libsdl-1.2.15/0001-build-Pass-tag-CC-explictly-when-using-libtool.patch diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/libsdl/libsdl-1.2.15/CVE-2019-7572.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/libsdl/libsdl-1.2.15/CVE-2019-7572.patch new file mode 100644 index 00000000..c41c2de0 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/libsdl/libsdl-1.2.15/CVE-2019-7572.patch @@ -0,0 +1,114 @@ +# HG changeset patch +# User Petr Písař +# Date 1560182231 25200 +# Mon Jun 10 08:57:11 2019 -0700 +# Branch SDL-1.2 +# Node ID a8afedbcaea0e84921dc770195c4699bda3ccdc5 +# Parent faf9abbcfb5fe0d0ca23c4bf0394aa226ceccf02 +CVE-2019-7572: Fix a buffer overwrite in IMA_ADPCM_decode +If data chunk was longer than expected based on a WAV format +definition, IMA_ADPCM_decode() tried to write past the output +buffer. This patch fixes it. + +Based on patch from +. + +CVE-2019-7572 +https://bugzilla.libsdl.org/show_bug.cgi?id=4495 + +Signed-off-by: Petr Písař + +# HG changeset patch +# User Petr Písař +# Date 1560041863 25200 +# Sat Jun 08 17:57:43 2019 -0700 +# Branch SDL-1.2 +# Node ID e52413f5258600878f9a10d2f92605a729aa8976 +# Parent 4e73be7b47877ae11d2279bd916910d469d18f8e +CVE-2019-7572: Fix a buffer overread in IMA_ADPCM_nibble +If an IMA ADPCM block contained an initial index out of step table +range (loaded in IMA_ADPCM_decode()), IMA_ADPCM_nibble() blindly used +this bogus value and that lead to a buffer overread. + +This patch fixes it by moving clamping the index value at the +beginning of IMA_ADPCM_nibble() function instead of the end after +an update. + +CVE-2019-7572 +https://bugzilla.libsdl.org/show_bug.cgi?id=4495 + +Signed-off-by: Petr Písař + +CVE: CVE-2019-7572 +Upstream-Status: Backport +Signed-off-by: Anuj Mittal + +diff -r faf9abbcfb5f -r a8afedbcaea0 src/audio/SDL_wave.c +--- a/src/audio/SDL_wave.c Mon Jun 10 08:54:29 2019 -0700 ++++ b/src/audio/SDL_wave.c Mon Jun 10 08:57:11 2019 -0700 +@@ -346,7 +346,7 @@ + static int IMA_ADPCM_decode(Uint8 **audio_buf, Uint32 *audio_len) + { + struct IMA_ADPCM_decodestate *state; +- Uint8 *freeable, *encoded, *encoded_end, *decoded; ++ Uint8 *freeable, *encoded, *encoded_end, *decoded, *decoded_end; + Sint32 encoded_len, samplesleft; + unsigned int c, channels; + +@@ -373,6 +373,7 @@ + return(-1); + } + decoded = *audio_buf; ++ decoded_end = decoded + *audio_len; + + /* Get ready... Go! */ + while ( encoded_len >= IMA_ADPCM_state.wavefmt.blockalign ) { +@@ -392,6 +393,7 @@ + } + + /* Store the initial sample we start with */ ++ if (decoded + 2 > decoded_end) goto invalid_size; + decoded[0] = (Uint8)(state[c].sample&0xFF); + decoded[1] = (Uint8)(state[c].sample>>8); + decoded += 2; +@@ -402,6 +404,8 @@ + while ( samplesleft > 0 ) { + for ( c=0; c encoded_end) goto invalid_size; ++ if (decoded + 4 * 4 * channels > decoded_end) ++ goto invalid_size; + Fill_IMA_ADPCM_block(decoded, encoded, + c, channels, &state[c]); + encoded += 4; + +diff -r 4e73be7b4787 -r e52413f52586 src/audio/SDL_wave.c +--- a/src/audio/SDL_wave.c Sat Jun 01 18:27:46 2019 +0100 ++++ b/src/audio/SDL_wave.c Sat Jun 08 17:57:43 2019 -0700 +@@ -264,6 +264,14 @@ + }; + Sint32 delta, step; + ++ /* Clamp index value. The inital value can be invalid. */ ++ if ( state->index > 88 ) { ++ state->index = 88; ++ } else ++ if ( state->index < 0 ) { ++ state->index = 0; ++ } ++ + /* Compute difference and new sample value */ + step = step_table[state->index]; + delta = step >> 3; +@@ -275,12 +283,6 @@ + + /* Update index value */ + state->index += index_table[nybble]; +- if ( state->index > 88 ) { +- state->index = 88; +- } else +- if ( state->index < 0 ) { +- state->index = 0; +- } + + /* Clamp output sample */ + if ( state->sample > max_audioval ) { diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/libsdl/libsdl-1.2.15/CVE-2019-7574.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/libsdl/libsdl-1.2.15/CVE-2019-7574.patch new file mode 100644 index 00000000..9fd53da2 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/libsdl/libsdl-1.2.15/CVE-2019-7574.patch @@ -0,0 +1,68 @@ +# HG changeset patch +# User Petr Písař +# Date 1560181859 25200 +# Mon Jun 10 08:50:59 2019 -0700 +# Branch SDL-1.2 +# Node ID a6e3d2f5183e1cc300ad993e10e9ce077e13bd9c +# Parent 388987dff7bf8f1e214e69c2e4f1aa31e06396b5 +CVE-2019-7574: Fix a buffer overread in IMA_ADPCM_decode +If data chunk was shorter than expected based on a WAV format +definition, IMA_ADPCM_decode() tried to read past the data chunk +buffer. This patch fixes it. + +CVE-2019-7574 +https://bugzilla.libsdl.org/show_bug.cgi?id=4496 + +Signed-off-by: Petr Písař + +CVE: CVE-2019-7574 +Upstream-Status: Backport +Signed-off-by: Anuj Mittal + +diff -r 388987dff7bf -r a6e3d2f5183e src/audio/SDL_wave.c +--- a/src/audio/SDL_wave.c Sat Jun 08 18:02:09 2019 -0700 ++++ b/src/audio/SDL_wave.c Mon Jun 10 08:50:59 2019 -0700 +@@ -331,7 +331,7 @@ + static int IMA_ADPCM_decode(Uint8 **audio_buf, Uint32 *audio_len) + { + struct IMA_ADPCM_decodestate *state; +- Uint8 *freeable, *encoded, *decoded; ++ Uint8 *freeable, *encoded, *encoded_end, *decoded; + Sint32 encoded_len, samplesleft; + unsigned int c, channels; + +@@ -347,6 +347,7 @@ + /* Allocate the proper sized output buffer */ + encoded_len = *audio_len; + encoded = *audio_buf; ++ encoded_end = encoded + encoded_len; + freeable = *audio_buf; + *audio_len = (encoded_len/IMA_ADPCM_state.wavefmt.blockalign) * + IMA_ADPCM_state.wSamplesPerBlock* +@@ -362,6 +363,7 @@ + while ( encoded_len >= IMA_ADPCM_state.wavefmt.blockalign ) { + /* Grab the initial information for this block */ + for ( c=0; c encoded_end) goto invalid_size; + /* Fill the state information for this block */ + state[c].sample = ((encoded[1]<<8)|encoded[0]); + encoded += 2; +@@ -384,6 +386,7 @@ + samplesleft = (IMA_ADPCM_state.wSamplesPerBlock-1)*channels; + while ( samplesleft > 0 ) { + for ( c=0; c encoded_end) goto invalid_size; + Fill_IMA_ADPCM_block(decoded, encoded, + c, channels, &state[c]); + encoded += 4; +@@ -395,6 +398,10 @@ + } + SDL_free(freeable); + return(0); ++invalid_size: ++ SDL_SetError("Unexpected chunk length for an IMA ADPCM decoder"); ++ SDL_free(freeable); ++ return(-1); + } + + SDL_AudioSpec * SDL_LoadWAV_RW (SDL_RWops *src, int freesrc, diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/libsdl/libsdl-1.2.15/CVE-2019-7575.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/libsdl/libsdl-1.2.15/CVE-2019-7575.patch new file mode 100644 index 00000000..a3e8416d --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/libsdl/libsdl-1.2.15/CVE-2019-7575.patch @@ -0,0 +1,81 @@ +# HG changeset patch +# User Petr Písař +# Date 1560183905 25200 +# Mon Jun 10 09:25:05 2019 -0700 +# Branch SDL-1.2 +# Node ID a936f9bd3e381d67d8ddee8b9243f85799ea4798 +# Parent fcbecae427951bac1684baaba2ade68221315140 +CVE-2019-7575: Fix a buffer overwrite in MS_ADPCM_decode +If a WAV format defines shorter audio stream and decoded MS ADPCM data chunk +is longer, decoding continued past the output audio buffer. + +This fix is based on a patch from +. + +https://bugzilla.libsdl.org/show_bug.cgi?id=4493 +CVE-2019-7575 + +Signed-off-by: Petr Písař + +CVE: CVE-2019-7575 +Upstream-Status: Backport +Signed-off-by: Anuj Mittal + +diff -r fcbecae42795 -r a936f9bd3e38 src/audio/SDL_wave.c +--- a/src/audio/SDL_wave.c Mon Jun 10 09:06:23 2019 -0700 ++++ b/src/audio/SDL_wave.c Mon Jun 10 09:25:05 2019 -0700 +@@ -122,7 +122,7 @@ + static int MS_ADPCM_decode(Uint8 **audio_buf, Uint32 *audio_len) + { + struct MS_ADPCM_decodestate *state[2]; +- Uint8 *freeable, *encoded, *encoded_end, *decoded; ++ Uint8 *freeable, *encoded, *encoded_end, *decoded, *decoded_end; + Sint32 encoded_len, samplesleft; + Sint8 nybble, stereo; + Sint16 *coeff[2]; +@@ -142,6 +142,7 @@ + return(-1); + } + decoded = *audio_buf; ++ decoded_end = decoded + *audio_len; + + /* Get ready... Go! */ + stereo = (MS_ADPCM_state.wavefmt.channels == 2); +@@ -149,7 +150,7 @@ + state[1] = &MS_ADPCM_state.state[stereo]; + while ( encoded_len >= MS_ADPCM_state.wavefmt.blockalign ) { + /* Grab the initial information for this block */ +- if (encoded + 7 + (stereo ? 7 : 0) > encoded_end) goto too_short; ++ if (encoded + 7 + (stereo ? 7 : 0) > encoded_end) goto invalid_size; + state[0]->hPredictor = *encoded++; + if ( stereo ) { + state[1]->hPredictor = *encoded++; +@@ -179,6 +180,7 @@ + coeff[1] = MS_ADPCM_state.aCoeff[state[1]->hPredictor]; + + /* Store the two initial samples we start with */ ++ if (decoded + 4 + (stereo ? 4 : 0) > decoded_end) goto invalid_size; + decoded[0] = state[0]->iSamp2&0xFF; + decoded[1] = state[0]->iSamp2>>8; + decoded += 2; +@@ -200,7 +202,8 @@ + samplesleft = (MS_ADPCM_state.wSamplesPerBlock-2)* + MS_ADPCM_state.wavefmt.channels; + while ( samplesleft > 0 ) { +- if (encoded + 1 > encoded_end) goto too_short; ++ if (encoded + 1 > encoded_end) goto invalid_size; ++ if (decoded + 4 > decoded_end) goto invalid_size; + + nybble = (*encoded)>>4; + new_sample = MS_ADPCM_nibble(state[0],nybble,coeff[0]); +@@ -223,8 +226,8 @@ + } + SDL_free(freeable); + return(0); +-too_short: +- SDL_SetError("Too short chunk for a MS ADPCM decoder"); ++invalid_size: ++ SDL_SetError("Unexpected chunk length for a MS ADPCM decoder"); + SDL_free(freeable); + return(-1); + invalid_predictor: diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/libsdl/libsdl-1.2.15/CVE-2019-7576.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/libsdl/libsdl-1.2.15/CVE-2019-7576.patch new file mode 100644 index 00000000..d9a50521 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/libsdl/libsdl-1.2.15/CVE-2019-7576.patch @@ -0,0 +1,80 @@ +# HG changeset patch +# User Petr Písař +# Date 1560182783 25200 +# Mon Jun 10 09:06:23 2019 -0700 +# Branch SDL-1.2 +# Node ID fcbecae427951bac1684baaba2ade68221315140 +# Parent a8afedbcaea0e84921dc770195c4699bda3ccdc5 +CVE-2019-7573, CVE-2019-7576: Fix buffer overreads in InitMS_ADPCM +If MS ADPCM format chunk was too short, InitMS_ADPCM() parsing it +could read past the end of chunk data. This patch fixes it. + +CVE-2019-7573 +https://bugzilla.libsdl.org/show_bug.cgi?id=4491 +CVE-2019-7576 +https://bugzilla.libsdl.org/show_bug.cgi?id=4490 + +Signed-off-by: Petr Písař + +CVE: CVE-2019-7573 +CVE: CVE-2019-7576 +Upstream-Status: Backport +Signed-off-by: Anuj Mittal + +diff -r a8afedbcaea0 -r fcbecae42795 src/audio/SDL_wave.c +--- a/src/audio/SDL_wave.c Mon Jun 10 08:57:11 2019 -0700 ++++ b/src/audio/SDL_wave.c Mon Jun 10 09:06:23 2019 -0700 +@@ -44,12 +44,13 @@ + struct MS_ADPCM_decodestate state[2]; + } MS_ADPCM_state; + +-static int InitMS_ADPCM(WaveFMT *format) ++static int InitMS_ADPCM(WaveFMT *format, int length) + { +- Uint8 *rogue_feel; ++ Uint8 *rogue_feel, *rogue_feel_end; + int i; + + /* Set the rogue pointer to the MS_ADPCM specific data */ ++ if (length < sizeof(*format)) goto too_short; + MS_ADPCM_state.wavefmt.encoding = SDL_SwapLE16(format->encoding); + MS_ADPCM_state.wavefmt.channels = SDL_SwapLE16(format->channels); + MS_ADPCM_state.wavefmt.frequency = SDL_SwapLE32(format->frequency); +@@ -58,9 +59,11 @@ + MS_ADPCM_state.wavefmt.bitspersample = + SDL_SwapLE16(format->bitspersample); + rogue_feel = (Uint8 *)format+sizeof(*format); ++ rogue_feel_end = (Uint8 *)format + length; + if ( sizeof(*format) == 16 ) { + rogue_feel += sizeof(Uint16); + } ++ if (rogue_feel + 4 > rogue_feel_end) goto too_short; + MS_ADPCM_state.wSamplesPerBlock = ((rogue_feel[1]<<8)|rogue_feel[0]); + rogue_feel += sizeof(Uint16); + MS_ADPCM_state.wNumCoef = ((rogue_feel[1]<<8)|rogue_feel[0]); +@@ -70,12 +73,16 @@ + return(-1); + } + for ( i=0; i rogue_feel_end) goto too_short; + MS_ADPCM_state.aCoeff[i][0] = ((rogue_feel[1]<<8)|rogue_feel[0]); + rogue_feel += sizeof(Uint16); + MS_ADPCM_state.aCoeff[i][1] = ((rogue_feel[1]<<8)|rogue_feel[0]); + rogue_feel += sizeof(Uint16); + } + return(0); ++too_short: ++ SDL_SetError("Unexpected length of a chunk with a MS ADPCM format"); ++ return(-1); + } + + static Sint32 MS_ADPCM_nibble(struct MS_ADPCM_decodestate *state, +@@ -495,7 +502,7 @@ + break; + case MS_ADPCM_CODE: + /* Try to understand this */ +- if ( InitMS_ADPCM(format) < 0 ) { ++ if ( InitMS_ADPCM(format, lenread) < 0 ) { + was_error = 1; + goto done; + } diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/libsdl/libsdl-1.2.15/CVE-2019-7577.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/libsdl/libsdl-1.2.15/CVE-2019-7577.patch new file mode 100644 index 00000000..63680b8b --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/libsdl/libsdl-1.2.15/CVE-2019-7577.patch @@ -0,0 +1,118 @@ +# HG changeset patch +# User Petr Písař +# Date 1560182051 25200 +# Mon Jun 10 08:54:11 2019 -0700 +# Branch SDL-1.2 +# Node ID 416136310b88cbeeff8773e573e90ac1e22b3526 +# Parent a6e3d2f5183e1cc300ad993e10e9ce077e13bd9c +CVE-2019-7577: Fix a buffer overread in MS_ADPCM_decode +If RIFF/WAV data chunk length is shorter then expected for an audio +format defined in preceeding RIFF/WAV format headers, a buffer +overread can happen. + +This patch fixes it by checking a MS ADPCM data to be decoded are not +past the initialized buffer. + +CVE-2019-7577 +Reproducer: https://bugzilla.libsdl.org/show_bug.cgi?id=4492 + +Signed-off-by: Petr Písař + +# HG changeset patch +# User Petr Písař +# Date 1560182069 25200 +# Mon Jun 10 08:54:29 2019 -0700 +# Branch SDL-1.2 +# Node ID faf9abbcfb5fe0d0ca23c4bf0394aa226ceccf02 +# Parent 416136310b88cbeeff8773e573e90ac1e22b3526 +CVE-2019-7577: Fix a buffer overread in MS_ADPCM_nibble and MS_ADPCM_decode +If a chunk of RIFF/WAV file with MS ADPCM encoding contains an invalid +predictor (a valid predictor's value is between 0 and 6 inclusive), +a buffer overread can happen when the predictor is used as an index +into an array of MS ADPCM coefficients. + +The overead happens when indexing MS_ADPCM_state.aCoeff[] array in +MS_ADPCM_decode() and later when dereferencing a coef pointer in +MS_ADPCM_nibble(). + +This patch fixes it by checking the MS ADPCM predictor values fit +into the valid range. + +CVE-2019-7577 +Reproducer: https://bugzilla.libsdl.org/show_bug.cgi?id=4492 + +Signed-off-by: Petr Písař + +CVE: CVE-2019-7577 +Upstream-Status: Backport +Signed-off-by: Anuj Mittal + +Refresh CVE-2019-7577.patch as it can't be applyed when using PATCHTOOL = "patch". +Signed-off-by: Zheng Ruoqin +--- + src/audio/SDL_wave.c | 17 ++++++++++++++++- + 1 file changed, 16 insertions(+), 1 deletion(-) + +diff --git a/src/audio/SDL_wave.c b/src/audio/SDL_wave.c +index b4ad6c7..0bcf7e2 100644 +--- a/src/audio/SDL_wave.c ++++ b/src/audio/SDL_wave.c +@@ -115,7 +115,7 @@ static Sint32 MS_ADPCM_nibble(struct MS_ADPCM_decodestate *state, + static int MS_ADPCM_decode(Uint8 **audio_buf, Uint32 *audio_len) + { + struct MS_ADPCM_decodestate *state[2]; +- Uint8 *freeable, *encoded, *decoded; ++ Uint8 *freeable, *encoded, *encoded_end, *decoded; + Sint32 encoded_len, samplesleft; + Sint8 nybble, stereo; + Sint16 *coeff[2]; +@@ -124,6 +124,7 @@ static int MS_ADPCM_decode(Uint8 **audio_buf, Uint32 *audio_len) + /* Allocate the proper sized output buffer */ + encoded_len = *audio_len; + encoded = *audio_buf; ++ encoded_end = encoded + encoded_len; + freeable = *audio_buf; + *audio_len = (encoded_len/MS_ADPCM_state.wavefmt.blockalign) * + MS_ADPCM_state.wSamplesPerBlock* +@@ -141,10 +142,14 @@ static int MS_ADPCM_decode(Uint8 **audio_buf, Uint32 *audio_len) + state[1] = &MS_ADPCM_state.state[stereo]; + while ( encoded_len >= MS_ADPCM_state.wavefmt.blockalign ) { + /* Grab the initial information for this block */ ++ if (encoded + 7 + (stereo ? 7 : 0) > encoded_end) goto too_short; + state[0]->hPredictor = *encoded++; + if ( stereo ) { + state[1]->hPredictor = *encoded++; + } ++ if (state[0]->hPredictor >= 7 || state[1]->hPredictor >= 7) { ++ goto invalid_predictor; ++ } + state[0]->iDelta = ((encoded[1]<<8)|encoded[0]); + encoded += sizeof(Sint16); + if ( stereo ) { +@@ -188,6 +193,8 @@ static int MS_ADPCM_decode(Uint8 **audio_buf, Uint32 *audio_len) + samplesleft = (MS_ADPCM_state.wSamplesPerBlock-2)* + MS_ADPCM_state.wavefmt.channels; + while ( samplesleft > 0 ) { ++ if (encoded + 1 > encoded_end) goto too_short; ++ + nybble = (*encoded)>>4; + new_sample = MS_ADPCM_nibble(state[0],nybble,coeff[0]); + decoded[0] = new_sample&0xFF; +@@ -209,6 +216,14 @@ static int MS_ADPCM_decode(Uint8 **audio_buf, Uint32 *audio_len) + } + SDL_free(freeable); + return(0); ++too_short: ++ SDL_SetError("Too short chunk for a MS ADPCM decoder"); ++ SDL_free(freeable); ++ return(-1); ++invalid_predictor: ++ SDL_SetError("Invalid predictor value for a MS ADPCM decoder"); ++ SDL_free(freeable); ++ return(-1); + } + + struct IMA_ADPCM_decodestate { +-- +2.7.4 + diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/libsdl/libsdl-1.2.15/CVE-2019-7578.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/libsdl/libsdl-1.2.15/CVE-2019-7578.patch new file mode 100644 index 00000000..70288903 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/libsdl/libsdl-1.2.15/CVE-2019-7578.patch @@ -0,0 +1,64 @@ +# HG changeset patch +# User Petr Písař +# Date 1560042129 25200 +# Sat Jun 08 18:02:09 2019 -0700 +# Branch SDL-1.2 +# Node ID 388987dff7bf8f1e214e69c2e4f1aa31e06396b5 +# Parent e52413f5258600878f9a10d2f92605a729aa8976 +CVE-2019-7578: Fix a buffer overread in InitIMA_ADPCM +If IMA ADPCM format chunk was too short, InitIMA_ADPCM() parsing it +could read past the end of chunk data. This patch fixes it. + +CVE-2019-7578 +https://bugzilla.libsdl.org/show_bug.cgi?id=4494 + +Signed-off-by: Petr Písař + +CVE: CVE-2019-7578 +Upstream-Status: Backport +Signed-off-by: Anuj Mittal + +diff -r e52413f52586 -r 388987dff7bf src/audio/SDL_wave.c +--- a/src/audio/SDL_wave.c Sat Jun 08 17:57:43 2019 -0700 ++++ b/src/audio/SDL_wave.c Sat Jun 08 18:02:09 2019 -0700 +@@ -222,11 +222,12 @@ + struct IMA_ADPCM_decodestate state[2]; + } IMA_ADPCM_state; + +-static int InitIMA_ADPCM(WaveFMT *format) ++static int InitIMA_ADPCM(WaveFMT *format, int length) + { +- Uint8 *rogue_feel; ++ Uint8 *rogue_feel, *rogue_feel_end; + + /* Set the rogue pointer to the IMA_ADPCM specific data */ ++ if (length < sizeof(*format)) goto too_short; + IMA_ADPCM_state.wavefmt.encoding = SDL_SwapLE16(format->encoding); + IMA_ADPCM_state.wavefmt.channels = SDL_SwapLE16(format->channels); + IMA_ADPCM_state.wavefmt.frequency = SDL_SwapLE32(format->frequency); +@@ -235,11 +236,16 @@ + IMA_ADPCM_state.wavefmt.bitspersample = + SDL_SwapLE16(format->bitspersample); + rogue_feel = (Uint8 *)format+sizeof(*format); ++ rogue_feel_end = (Uint8 *)format + length; + if ( sizeof(*format) == 16 ) { + rogue_feel += sizeof(Uint16); + } ++ if (rogue_feel + 2 > rogue_feel_end) goto too_short; + IMA_ADPCM_state.wSamplesPerBlock = ((rogue_feel[1]<<8)|rogue_feel[0]); + return(0); ++too_short: ++ SDL_SetError("Unexpected length of a chunk with an IMA ADPCM format"); ++ return(-1); + } + + static Sint32 IMA_ADPCM_nibble(struct IMA_ADPCM_decodestate *state,Uint8 nybble) +@@ -471,7 +477,7 @@ + break; + case IMA_ADPCM_CODE: + /* Try to understand this */ +- if ( InitIMA_ADPCM(format) < 0 ) { ++ if ( InitIMA_ADPCM(format, lenread) < 0 ) { + was_error = 1; + goto done; + } diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/libsdl/libsdl-1.2.15/CVE-2019-7635.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/libsdl/libsdl-1.2.15/CVE-2019-7635.patch new file mode 100644 index 00000000..78af1b06 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/libsdl/libsdl-1.2.15/CVE-2019-7635.patch @@ -0,0 +1,63 @@ +# HG changeset patch +# User Petr Písař +# Date 1560259692 25200 +# Tue Jun 11 06:28:12 2019 -0700 +# Branch SDL-1.2 +# Node ID f1f5878be5dbf63c1161a8ee52b8a86ece30e552 +# Parent a936f9bd3e381d67d8ddee8b9243f85799ea4798 +CVE-2019-7635: Reject BMP images with pixel colors out the palette +If a 1-, 4-, or 8-bit per pixel BMP image declares less used colors +than the palette offers an SDL_Surface with a palette of the indicated +number of used colors is created. If some of the image's pixel +refer to a color number higher then the maximal used colors, a subsequent +bliting operation on the surface will look up a color past a blit map +(that is based on the palette) memory. I.e. passing such SDL_Surface +to e.g. an SDL_DisplayFormat() function will result in a buffer overread in +a blit function. + +This patch fixes it by validing each pixel's color to be less than the +maximal color number in the palette. A validation failure raises an +error from a SDL_LoadBMP_RW() function. + +CVE-2019-7635 +https://bugzilla.libsdl.org/show_bug.cgi?id=4498 + +Signed-off-by: Petr Písař + +CVE: CVE-2019-7635 +Upstream-Status: Backport +Signed-off-by: Anuj Mittal + +diff -r a936f9bd3e38 -r f1f5878be5db src/video/SDL_bmp.c +--- a/src/video/SDL_bmp.c Mon Jun 10 09:25:05 2019 -0700 ++++ b/src/video/SDL_bmp.c Tue Jun 11 06:28:12 2019 -0700 +@@ -308,6 +308,12 @@ + } + *(bits+i) = (pixel>>shift); + pixel <<= ExpandBMP; ++ if ( bits[i] >= biClrUsed ) { ++ SDL_SetError( ++ "A BMP image contains a pixel with a color out of the palette"); ++ was_error = SDL_TRUE; ++ goto done; ++ } + } } + break; + +@@ -318,6 +324,16 @@ + was_error = SDL_TRUE; + goto done; + } ++ if ( 8 == biBitCount && palette && biClrUsed < (1 << biBitCount ) ) { ++ for ( i=0; iw; ++i ) { ++ if ( bits[i] >= biClrUsed ) { ++ SDL_SetError( ++ "A BMP image contains a pixel with a color out of the palette"); ++ was_error = SDL_TRUE; ++ goto done; ++ } ++ } ++ } + #if SDL_BYTEORDER == SDL_BIG_ENDIAN + /* Byte-swap the pixels if needed. Note that the 24bpp + case has already been taken care of above. */ diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/libsdl/libsdl-1.2.15/CVE-2019-7637.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/libsdl/libsdl-1.2.15/CVE-2019-7637.patch new file mode 100644 index 00000000..c95338e6 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/libsdl/libsdl-1.2.15/CVE-2019-7637.patch @@ -0,0 +1,192 @@ +# HG changeset patch +# User Petr Písař +# Date 1552788984 25200 +# Sat Mar 16 19:16:24 2019 -0700 +# Branch SDL-1.2 +# Node ID 9b0e5c555c0f5ce6d2c3c19da6cc2c7fb5048bf2 +# Parent 4646533663ae1d80c2cc6b2d6dbfb37c62491c1e +CVE-2019-7637: Fix in integer overflow in SDL_CalculatePitch +If a too large width is passed to SDL_SetVideoMode() the width travels +to SDL_CalculatePitch() where the width (e.g. 65535) is multiplied by +BytesPerPixel (e.g. 4) and the result is stored into Uint16 pitch +variable. During this arithmetics an integer overflow can happen (e.g. +the value is clamped as 65532). As a result SDL_Surface with a pitch +smaller than width * BytesPerPixel is created, too small pixel buffer +is allocated and when the SDL_Surface is processed in SDL_FillRect() +a buffer overflow occurs. + +This can be reproduced with "./graywin -width 21312312313123213213213" +command. + +This patch fixes is by using a very careful arithmetics in +SDL_CalculatePitch(). If an overflow is detected, an error is reported +back as a special 0 value. We assume that 0-width surfaces do not +occur in the wild. Since SDL_CalculatePitch() is a private function, +we can change the semantics. + +CVE-2019-7637 +https://bugzilla.libsdl.org/show_bug.cgi?id=4497 + +Signed-off-by: Petr Písař + +CVE: CVE-2019-7637 +Upstream-Status: Backport +Signed-off-by: Anuj Mittal + +diff -r 4646533663ae -r 9b0e5c555c0f src/video/SDL_pixels.c +--- a/src/video/SDL_pixels.c Sat Mar 16 18:35:33 2019 -0700 ++++ b/src/video/SDL_pixels.c Sat Mar 16 19:16:24 2019 -0700 +@@ -286,26 +286,53 @@ + } + } + /* +- * Calculate the pad-aligned scanline width of a surface ++ * Calculate the pad-aligned scanline width of a surface. Return 0 in case of ++ * an error. + */ + Uint16 SDL_CalculatePitch(SDL_Surface *surface) + { +- Uint16 pitch; ++ unsigned int pitch = 0; + + /* Surface should be 4-byte aligned for speed */ +- pitch = surface->w*surface->format->BytesPerPixel; ++ /* The code tries to prevent from an Uint16 overflow. */; ++ for (Uint8 byte = surface->format->BytesPerPixel; byte; byte--) { ++ pitch += (unsigned int)surface->w; ++ if (pitch < surface->w) { ++ SDL_SetError("A scanline is too wide"); ++ return(0); ++ } ++ } + switch (surface->format->BitsPerPixel) { + case 1: +- pitch = (pitch+7)/8; ++ if (pitch % 8) { ++ pitch = pitch / 8 + 1; ++ } else { ++ pitch = pitch / 8; ++ } + break; + case 4: +- pitch = (pitch+1)/2; ++ if (pitch % 2) { ++ pitch = pitch / 2 + 1; ++ } else { ++ pitch = pitch / 2; ++ } + break; + default: + break; + } +- pitch = (pitch + 3) & ~3; /* 4-byte aligning */ +- return(pitch); ++ /* 4-byte aligning */ ++ if (pitch & 3) { ++ if (pitch + 3 < pitch) { ++ SDL_SetError("A scanline is too wide"); ++ return(0); ++ } ++ pitch = (pitch + 3) & ~3; ++ } ++ if (pitch > 0xFFFF) { ++ SDL_SetError("A scanline is too wide"); ++ return(0); ++ } ++ return((Uint16)pitch); + } + /* + * Match an RGB value to a particular palette index +diff -r 4646533663ae -r 9b0e5c555c0f src/video/gapi/SDL_gapivideo.c +--- a/src/video/gapi/SDL_gapivideo.c Sat Mar 16 18:35:33 2019 -0700 ++++ b/src/video/gapi/SDL_gapivideo.c Sat Mar 16 19:16:24 2019 -0700 +@@ -733,6 +733,9 @@ + video->w = gapi->w = width; + video->h = gapi->h = height; + video->pitch = SDL_CalculatePitch(video); ++ if (!current->pitch) { ++ return(NULL); ++ } + + /* Small fix for WinCE/Win32 - when activating window + SDL_VideoSurface is equal to zero, so activating code +diff -r 4646533663ae -r 9b0e5c555c0f src/video/nanox/SDL_nxvideo.c +--- a/src/video/nanox/SDL_nxvideo.c Sat Mar 16 18:35:33 2019 -0700 ++++ b/src/video/nanox/SDL_nxvideo.c Sat Mar 16 19:16:24 2019 -0700 +@@ -378,6 +378,10 @@ + current -> w = width ; + current -> h = height ; + current -> pitch = SDL_CalculatePitch (current) ; ++ if (!current->pitch) { ++ current = NULL; ++ goto done; ++ } + NX_ResizeImage (this, current, flags) ; + } + +diff -r 4646533663ae -r 9b0e5c555c0f src/video/ps2gs/SDL_gsvideo.c +--- a/src/video/ps2gs/SDL_gsvideo.c Sat Mar 16 18:35:33 2019 -0700 ++++ b/src/video/ps2gs/SDL_gsvideo.c Sat Mar 16 19:16:24 2019 -0700 +@@ -479,6 +479,9 @@ + current->w = width; + current->h = height; + current->pitch = SDL_CalculatePitch(current); ++ if (!current->pitch) { ++ return(NULL); ++ } + + /* Memory map the DMA area for block memory transfer */ + if ( ! mapped_mem ) { +diff -r 4646533663ae -r 9b0e5c555c0f src/video/ps3/SDL_ps3video.c +--- a/src/video/ps3/SDL_ps3video.c Sat Mar 16 18:35:33 2019 -0700 ++++ b/src/video/ps3/SDL_ps3video.c Sat Mar 16 19:16:24 2019 -0700 +@@ -339,6 +339,9 @@ + current->w = width; + current->h = height; + current->pitch = SDL_CalculatePitch(current); ++ if (!current->pitch) { ++ return(NULL); ++ } + + /* Alloc aligned mem for current->pixels */ + s_pixels = memalign(16, current->h * current->pitch); +diff -r 4646533663ae -r 9b0e5c555c0f src/video/windib/SDL_dibvideo.c +--- a/src/video/windib/SDL_dibvideo.c Sat Mar 16 18:35:33 2019 -0700 ++++ b/src/video/windib/SDL_dibvideo.c Sat Mar 16 19:16:24 2019 -0700 +@@ -675,6 +675,9 @@ + video->w = width; + video->h = height; + video->pitch = SDL_CalculatePitch(video); ++ if (!current->pitch) { ++ return(NULL); ++ } + + /* Small fix for WinCE/Win32 - when activating window + SDL_VideoSurface is equal to zero, so activating code +diff -r 4646533663ae -r 9b0e5c555c0f src/video/windx5/SDL_dx5video.c +--- a/src/video/windx5/SDL_dx5video.c Sat Mar 16 18:35:33 2019 -0700 ++++ b/src/video/windx5/SDL_dx5video.c Sat Mar 16 19:16:24 2019 -0700 +@@ -1127,6 +1127,9 @@ + video->w = width; + video->h = height; + video->pitch = SDL_CalculatePitch(video); ++ if (!current->pitch) { ++ return(NULL); ++ } + + #ifndef NO_CHANGEDISPLAYSETTINGS + /* Set fullscreen mode if appropriate. +diff -r 4646533663ae -r 9b0e5c555c0f src/video/x11/SDL_x11video.c +--- a/src/video/x11/SDL_x11video.c Sat Mar 16 18:35:33 2019 -0700 ++++ b/src/video/x11/SDL_x11video.c Sat Mar 16 19:16:24 2019 -0700 +@@ -1225,6 +1225,10 @@ + current->w = width; + current->h = height; + current->pitch = SDL_CalculatePitch(current); ++ if (!current->pitch) { ++ current = NULL; ++ goto done; ++ } + if (X11_ResizeImage(this, current, flags) < 0) { + current = NULL; + goto done; diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/libsdl/libsdl-1.2.15/CVE-2019-7638.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/libsdl/libsdl-1.2.15/CVE-2019-7638.patch new file mode 100644 index 00000000..dab9aaeb --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/libsdl/libsdl-1.2.15/CVE-2019-7638.patch @@ -0,0 +1,38 @@ +# HG changeset patch +# User Sam Lantinga +# Date 1550504903 28800 +# Mon Feb 18 07:48:23 2019 -0800 +# Branch SDL-1.2 +# Node ID 19d8c3b9c25143f71a34ff40ce1df91b4b3e3b78 +# Parent 8586f153eedec4c4e07066d6248ebdf67f10a229 +Fixed bug 4500 - Heap-Buffer Overflow in Map1toN pertaining to SDL_pixels.c + +Petr Pisar + +The reproducer has these data in BITMAPINFOHEADER: + +biSize = 40 +biBitCount = 8 +biClrUsed = 131075 + +SDL_LoadBMP_RW() function passes biBitCount as a color depth to SDL_CreateRGBSurface(), thus 256-color pallete is allocated. But then biClrUsed colors are read from a file and stored into the palette. SDL_LoadBMP_RW should report an error if biClrUsed is greater than 2^biBitCount. + +CVE: CVE-2019-7638 +CVE: CVE-2019-7636 +Upstream-Status: Backport +Signed-off-by: Anuj Mittal + +diff -r 8586f153eede -r 19d8c3b9c251 src/video/SDL_bmp.c +--- a/src/video/SDL_bmp.c Sun Jan 13 15:27:50 2019 +0100 ++++ b/src/video/SDL_bmp.c Mon Feb 18 07:48:23 2019 -0800 +@@ -233,6 +233,10 @@ + if ( palette ) { + if ( biClrUsed == 0 ) { + biClrUsed = 1 << biBitCount; ++ } else if ( biClrUsed > (1 << biBitCount) ) { ++ SDL_SetError("BMP file has an invalid number of colors"); ++ was_error = SDL_TRUE; ++ goto done; + } + if ( biSize == 12 ) { + for ( i = 0; i < (int)biClrUsed; ++i ) { diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/libsdl/libsdl-1.2.15/libsdl-1.2.15-xdata32.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/libsdl/libsdl-1.2.15/libsdl-1.2.15-xdata32.patch similarity index 100% rename from Contrib-Inspur/openbmc/poky/meta/recipes-graphics/libsdl/libsdl-1.2.15/libsdl-1.2.15-xdata32.patch rename to Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/libsdl/libsdl-1.2.15/libsdl-1.2.15-xdata32.patch diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/libsdl/libsdl-1.2.15/pkgconfig.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/libsdl/libsdl-1.2.15/pkgconfig.patch similarity index 100% rename from Contrib-Inspur/openbmc/poky/meta/recipes-graphics/libsdl/libsdl-1.2.15/pkgconfig.patch rename to Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/libsdl/libsdl-1.2.15/pkgconfig.patch diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/libsdl/libsdl2-image_2.0.3.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/libsdl/libsdl2-image_2.0.3.bb deleted file mode 100644 index 6deb352e..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/libsdl/libsdl2-image_2.0.3.bb +++ /dev/null @@ -1,31 +0,0 @@ -SUMMARY = "Simple DirectMedia Layer image library v2" -SECTION = "libs" - -LICENSE = "Zlib" -LIC_FILES_CHKSUM = "file://COPYING.txt;md5=a855a9eb5507fc556e672080c4b428ca" - -DEPENDS = "tiff zlib libpng jpeg virtual/libsdl2 libwebp" - -SRC_URI = "http://www.libsdl.org/projects/SDL_image/release/SDL2_image-${PV}.tar.gz" -SRC_URI[md5sum] = "c6baf6dfa80fa8a66853661a36a6034e" -SRC_URI[sha256sum] = "3510c25da735ffcd8ce3b65073150ff4f7f9493b866e85b83738083b556d2368" - -S = "${WORKDIR}/SDL2_image-${PV}" - -inherit autotools pkgconfig - -# Disable the run-time loading of the libs and bring back the soname dependencies. -EXTRA_OECONF += "--disable-jpg-shared --disable-png-shared -disable-tif-shared" - -do_configure_prepend() { - # make autoreconf happy - touch ${S}/NEWS ${S}/README ${S}/AUTHORS ${S}/ChangeLog - # Removing these files fixes a libtool version mismatch. - rm -f ${S}/acinclude/libtool.m4 - rm -f ${S}/acinclude/sdl2.m4 - rm -f ${S}/acinclude/pkg.m4 - rm -f ${S}/acinclude/lt~obsolete.m4 - rm -f ${S}/acinclude/ltoptions.m4 - rm -f ${S}/acinclude/ltsugar.m4 - rm -f ${S}/acinclude/ltversion.m4 -} diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/libsdl/libsdl2-image_2.0.5.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/libsdl/libsdl2-image_2.0.5.bb new file mode 100644 index 00000000..0a346bd9 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/libsdl/libsdl2-image_2.0.5.bb @@ -0,0 +1,31 @@ +SUMMARY = "Simple DirectMedia Layer image library v2" +SECTION = "libs" + +LICENSE = "Zlib" +LIC_FILES_CHKSUM = "file://COPYING.txt;md5=822edb694b20ff16ceef85b27f61c11f" + +DEPENDS = "tiff zlib libpng jpeg virtual/libsdl2 libwebp" + +SRC_URI = "http://www.libsdl.org/projects/SDL_image/release/SDL2_image-${PV}.tar.gz" +SRC_URI[md5sum] = "f26f3a153360a8f09ed5220ef7b07aea" +SRC_URI[sha256sum] = "bdd5f6e026682f7d7e1be0b6051b209da2f402a2dd8bd1c4bd9c25ad263108d0" + +S = "${WORKDIR}/SDL2_image-${PV}" + +inherit autotools pkgconfig + +# Disable the run-time loading of the libs and bring back the soname dependencies. +EXTRA_OECONF += "--disable-jpg-shared --disable-png-shared -disable-tif-shared" + +do_configure_prepend() { + # make autoreconf happy + touch ${S}/NEWS ${S}/README ${S}/AUTHORS ${S}/ChangeLog + # Removing these files fixes a libtool version mismatch. + rm -f ${S}/acinclude/libtool.m4 + rm -f ${S}/acinclude/sdl2.m4 + rm -f ${S}/acinclude/pkg.m4 + rm -f ${S}/acinclude/lt~obsolete.m4 + rm -f ${S}/acinclude/ltoptions.m4 + rm -f ${S}/acinclude/ltsugar.m4 + rm -f ${S}/acinclude/ltversion.m4 +} diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/libsdl/libsdl2-mixer_2.0.2.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/libsdl/libsdl2-mixer_2.0.2.bb deleted file mode 100644 index 718f3f5f..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/libsdl/libsdl2-mixer_2.0.2.bb +++ /dev/null @@ -1,27 +0,0 @@ -SUMMARY = "Simple DirectMedia Layer mixer library V2" -SECTION = "libs" -DEPENDS = "virtual/libsdl2 flac libmikmod libvorbis" -LICENSE = "Zlib" -LIC_FILES_CHKSUM = "file://COPYING.txt;md5=95e0c3cf63f71b950911e698a54b7fc5" - -SRC_URI = "http://www.libsdl.org/projects/SDL_mixer/release/SDL2_mixer-${PV}.tar.gz" - -SRC_URI[md5sum] = "aaa0551393993c14a13f72b339c0ed6c" -SRC_URI[sha256sum] = "4e615e27efca4f439df9af6aa2c6de84150d17cbfd12174b54868c12f19c83bb" - -S = "${WORKDIR}/SDL2_mixer-${PV}" - -inherit autotools-brokensep pkgconfig - -EXTRA_AUTORECONF += "--include=acinclude" -EXTRA_OECONF = "--disable-music-mp3 --enable-music-ogg --enable-music-ogg-tremor LIBS=-L${STAGING_LIBDIR}" - -PACKAGECONFIG[mad] = "--enable-music-mp3-mad-gpl,--disable-music-mp3-mad-gpl,libmad" - -do_configure_prepend () { - # Remove old libtool macros. - MACROS="libtool.m4 lt~obsolete.m4 ltoptions.m4 ltsugar.m4 ltversion.m4" - for i in ${MACROS}; do - rm -f acinclude/$i - done -} diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/libsdl/libsdl2-mixer_2.0.4.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/libsdl/libsdl2-mixer_2.0.4.bb new file mode 100644 index 00000000..aa246f99 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/libsdl/libsdl2-mixer_2.0.4.bb @@ -0,0 +1,27 @@ +SUMMARY = "Simple DirectMedia Layer mixer library V2" +SECTION = "libs" +DEPENDS = "virtual/libsdl2 flac libmikmod libvorbis" +LICENSE = "Zlib" +LIC_FILES_CHKSUM = "file://COPYING.txt;md5=516daf7a177ad4c8874bb9efa1a69c1f" + +SRC_URI = "http://www.libsdl.org/projects/SDL_mixer/release/SDL2_mixer-${PV}.tar.gz" + +SRC_URI[md5sum] = "a36e8410cac46b00a4d01752b32c3eb1" +SRC_URI[sha256sum] = "b4cf5a382c061cd75081cf246c2aa2f9df8db04bdda8dcdc6b6cca55bede2419" + +S = "${WORKDIR}/SDL2_mixer-${PV}" + +inherit autotools-brokensep pkgconfig + +EXTRA_AUTORECONF += "--include=acinclude" +EXTRA_OECONF = "--disable-music-mp3 --enable-music-ogg --enable-music-ogg-tremor LIBS=-L${STAGING_LIBDIR}" + +PACKAGECONFIG[mad] = "--enable-music-mp3-mad-gpl,--disable-music-mp3-mad-gpl,libmad" + +do_configure_prepend () { + # Remove old libtool macros. + MACROS="libtool.m4 lt~obsolete.m4 ltoptions.m4 ltsugar.m4 ltversion.m4" + for i in ${MACROS}; do + rm -f acinclude/$i + done +} diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/libsdl/libsdl2-ttf/use.pkg-config.for.freetype2.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/libsdl/libsdl2-ttf/use.pkg-config.for.freetype2.patch deleted file mode 100644 index 1dfbec6e..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/libsdl/libsdl2-ttf/use.pkg-config.for.freetype2.patch +++ /dev/null @@ -1,62 +0,0 @@ -From e6d2c0e130811c15b5f5cc10221fae182cb8609e Mon Sep 17 00:00:00 2001 -From: Richard Purdie -Date: Thu, 22 May 2014 10:59:33 +0100 -Subject: [PATCH] freetype-config was removed from oe-core in - -commit 5870bd272b0b077d0826fb900b251884c1c05061 - - binconfig-disabled: Add class and use - ---- - configure.in | 38 +++++--------------------------------- - 1 file changed, 5 insertions(+), 33 deletions(-) - -diff --git a/configure.in b/configure.in -index 9b36e15..f300cae 100644 ---- a/configure.in -+++ b/configure.in -@@ -86,39 +86,11 @@ case "$host" in - esac - AM_CONDITIONAL(USE_VERSION_RC, test x$use_version_rc = xtrue) - --dnl Check for the FreeType 2 library --dnl --dnl Get the cflags and libraries from the freetype-config script --dnl --AC_ARG_WITH(freetype-prefix,[ --with-freetype-prefix=PFX Prefix where FREETYPE is --installed (optional)], -- freetype_prefix="$withval", freetype_prefix="") --AC_ARG_WITH(freetype-exec-prefix,[ --with-freetype-exec-prefix=PFX Exec prefix --where FREETYPE is installed (optional)], -- freetype_exec_prefix="$withval", freetype_exec_prefix="") -- --if test x$freetype_exec_prefix != x ; then -- freetype_args="$freetype_args --exec-prefix=$freetype_exec_prefix" -- if test x${FREETYPE_CONFIG+set} != xset ; then -- FREETYPE_CONFIG=$freetype_exec_prefix/bin/freetype-config -- fi --fi --if test x$freetype_prefix != x ; then -- freetype_args="$freetype_args --prefix=$freetype_prefix" -- if test x${FREETYPE_CONFIG+set} != xset ; then -- FREETYPE_CONFIG=$freetype_prefix/bin/freetype-config -- fi --fi --AC_PATH_PROG(FREETYPE_CONFIG, freetype-config, no) --no_freetype="" --if test "$FREETYPE_CONFIG" = "no" ; then -- AC_MSG_ERROR([ --*** Unable to find FreeType2 library (http://www.freetype.org/) --]) --else -- CFLAGS="$CFLAGS `$FREETYPE_CONFIG $freetypeconf_args --cflags`" -- LIBS="$LIBS `$FREETYPE_CONFIG $freetypeconf_args --libs`" --fi -+PKG_CHECK_MODULES(FREETYPE2, freetype2, -+ CFLAGS="$CFLAGS $FREETYPE2_CFLAGS" -+ LIBS="$LIBS $FREETYPE2_LIBS", -+ AC_MSG_ERROR([*** Unable to find FreeType2 library (http://www.freetype.org/)]) -+) - - dnl Check for SDL - SDL_VERSION=2.0.0 diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/libsdl/libsdl2-ttf_2.0.14.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/libsdl/libsdl2-ttf_2.0.14.bb deleted file mode 100644 index 4601593a..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/libsdl/libsdl2-ttf_2.0.14.bb +++ /dev/null @@ -1,30 +0,0 @@ -SUMMARY = "Simple DirectMedia Layer truetype font library" -SECTION = "libs" -DEPENDS = "virtual/libsdl2 freetype virtual/libgl" -LICENSE = "Zlib" -LIC_FILES_CHKSUM = "file://COPYING.txt;md5=cb33e7c4df9fbde389f149ad6bc93ce5" - -SRC_URI = " \ - http://www.libsdl.org/projects/SDL_ttf/release/SDL2_ttf-${PV}.tar.gz \ - file://use.pkg-config.for.freetype2.patch \ - file://automake_foreign.patch \ -" -SRC_URI[md5sum] = "e53c05e1e7f1382c316afd6c763388b1" -SRC_URI[sha256sum] = "34db5e20bcf64e7071fe9ae25acaa7d72bdc4f11ab3ce59acc768ab62fe39276" - -S = "${WORKDIR}/SDL2_ttf-${PV}" - -inherit autotools pkgconfig distro_features_check - -# links to libGL.so -REQUIRED_DISTRO_FEATURES += "x11 opengl" - -do_configure_prepend() { - # Removing these files fixes a libtool version mismatch. - MACROS="libtool.m4 lt~obsolete.m4 ltoptions.m4 ltsugar.m4 ltversion.m4" - - for i in ${MACROS}; do - rm -f ${S}/acinclude/$i - done -} -ASNEEDED = "" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/libsdl/libsdl2-ttf_2.0.15.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/libsdl/libsdl2-ttf_2.0.15.bb new file mode 100644 index 00000000..7d896cf0 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/libsdl/libsdl2-ttf_2.0.15.bb @@ -0,0 +1,29 @@ +SUMMARY = "Simple DirectMedia Layer truetype font library" +SECTION = "libs" +DEPENDS = "virtual/libsdl2 freetype virtual/libgl" +LICENSE = "Zlib" +LIC_FILES_CHKSUM = "file://COPYING.txt;md5=4bb27d550fdafcd8f8e4fb8cbb2775ef" + +SRC_URI = " \ + http://www.libsdl.org/projects/SDL_ttf/release/SDL2_ttf-${PV}.tar.gz \ + file://automake_foreign.patch \ +" +SRC_URI[md5sum] = "04fe06ff7623d7bdcb704e82f5f88391" +SRC_URI[sha256sum] = "a9eceb1ad88c1f1545cd7bd28e7cbc0b2c14191d40238f531a15b01b1b22cd33" + +S = "${WORKDIR}/SDL2_ttf-${PV}" + +inherit autotools pkgconfig features_check + +# links to libGL.so +REQUIRED_DISTRO_FEATURES += "x11 opengl" + +do_configure_prepend() { + # Removing these files fixes a libtool version mismatch. + MACROS="libtool.m4 lt~obsolete.m4 ltoptions.m4 ltsugar.m4 ltversion.m4" + + for i in ${MACROS}; do + rm -f ${S}/acinclude/$i + done +} +ASNEEDED = "" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/libsdl/libsdl_1.2.15.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/libsdl/libsdl_1.2.15.bb similarity index 89% rename from Contrib-Inspur/openbmc/poky/meta/recipes-graphics/libsdl/libsdl_1.2.15.bb rename to Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/libsdl/libsdl_1.2.15.bb index 7718d119..7a019083 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/libsdl/libsdl_1.2.15.bb +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/libsdl/libsdl_1.2.15.bb @@ -18,6 +18,15 @@ SRC_URI = "http://www.libsdl.org/release/SDL-${PV}.tar.gz \ file://libsdl-1.2.15-xdata32.patch \ file://pkgconfig.patch \ file://0001-build-Pass-tag-CC-explictly-when-using-libtool.patch \ + file://CVE-2019-7577.patch \ + file://CVE-2019-7574.patch \ + file://CVE-2019-7572.patch \ + file://CVE-2019-7578.patch \ + file://CVE-2019-7575.patch \ + file://CVE-2019-7635.patch \ + file://CVE-2019-7637.patch \ + file://CVE-2019-7638.patch \ + file://CVE-2019-7576.patch \ " UPSTREAM_CHECK_REGEX = "SDL-(?P\d+(\.\d+)+)\.tar" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/libvncserver/libvncserver_0.9.12.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/libvncserver/libvncserver_0.9.12.bb new file mode 100644 index 00000000..22fc83a6 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/libvncserver/libvncserver_0.9.12.bb @@ -0,0 +1,54 @@ +DESCRIPTION = "library for easy implementation of a RDP/VNC server" +HOMEPAGE = "https://libvnc.github.io" +SECTION = "libs" +PRIORITY = "optional" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=361b6b837cad26c6900a926b62aada5f" + +PACKAGECONFIG ??= " \ + 24bpp \ + filetransfer \ + ${@bb.utils.contains('LICENSE_FLAGS_WHITELIST','commercial','ffmpeg','',d)} \ + gcrypt \ + gnutls \ + jpeg \ + lzo \ + png \ + pthread \ + ${@bb.utils.contains('DISTRO_FEATURES','systemd','systemd','',d)} \ + ${@bb.utils.contains('DISTRO_FEATURES', 'ipv6', 'ipv6', '',d)} \ + sasl \ + sdl \ + websockets \ + zlib \ +" + +PACKAGECONFIG[24bpp] = "-DWITH_24BPP=ON,-DWITH_24BPP=OFF," +PACKAGECONFIG[filetransfer] = "-DWITH_TIGHTVNC_FILETRANSFER=ON,-DWITH_TIGHTVNC_FILETRANSFER=OFF," +PACKAGECONFIG[ffmpeg] = "-DWITH_FFMPEG=ON,-DWITH_FFMPEG=OFF,ffmpeg,ffmpeg" +PACKAGECONFIG[gcrypt] = "-DWITH_GCRYPT=ON,-DWITH_GCRYPT=OFF,libgcrypt,libgcrypt" +PACKAGECONFIG[gnutls] = "-DWITH_GNUTLS=ON,-DWITH_GNUTLS=OFF,gnutls" +PACKAGECONFIG[jpeg] = "-DWITH_JPEG=ON,-DWITH_JPEG=OFF,jpeg" +PACKAGECONFIG[ipv6] = "-DWITH_IPv6=ON,-DWITH_IPv6=OFF," +PACKAGECONFIG[lzo] = "-DWITH_LZO=ON,-DWITH_LZO=OFF,lzo" +PACKAGECONFIG[openssl] = "-DWITH_OPENSSL=ON,-DWITH_OPENSSL=OFF,openssl" +PACKAGECONFIG[png] = "-DWITH_PNG=ON,-DWITH_PNG=OFF,libpng,libpng" +PACKAGECONFIG[pthread] = "-DWITH_THREADS=ON,-DWITH_THREADS=OFF," +PACKAGECONFIG[systemd] = "-DWITH_SYSTEMD=ON,-DWITH_SYSTEMD=OFF,systemd" +PACKAGECONFIG[sasl] = "-DWITH_SASL=ON,-DWITH_SASL=OFF,cyrus-sasl" +PACKAGECONFIG[sdl] = "-DWITH_SDL=ON,-DWITH_SDL=OFF,libsdl2" +PACKAGECONFIG[websockets] = "-DWITH_WEBSOCKETS=ON,-DWITH_WEBSOCKETS=OFF," +PACKAGECONFIG[zlib] = "-DWITH_ZLIB=ON,-DWITH_ZLIB=OFF,zlib" + +PACKAGE_BEFORE_PN = "libvncclient" +FILES_libvncclient = "${libdir}/libvncclient.*" + +inherit cmake + +SRC_URI = "git://github.com/LibVNC/libvncserver" +SRCREV = "1354f7f1bb6962dab209eddb9d6aac1f03408110" +PV .= "+git${SRCPV}" + +S = "${WORKDIR}/git" + +EXTRA_OECMAKE = "-DMAKE_INSTALL_LIBDIR=${libdir}" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/libvncserver/libvncserver_git.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/libvncserver/libvncserver_git.bb deleted file mode 100644 index bc47a3f1..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/libvncserver/libvncserver_git.bb +++ /dev/null @@ -1,37 +0,0 @@ -DESCRIPTION = "library for easy implementation of a RDP/VNC server" -HOMEPAGE = "https://libvnc.github.io" -SECTION = "libs" -PRIORITY = "optional" -LICENSE = "GPLv2" -LIC_FILES_CHKSUM = "file://COPYING;md5=361b6b837cad26c6900a926b62aada5f" - -PACKAGECONFIG ??= " \ - gcrypt \ - gnutls \ - jpeg \ - lzo \ - png \ - ${@bb.utils.contains('DISTRO_FEATURES','systemd','systemd','',d)} \ - sdl \ - zlib \ -" -PACKAGECONFIG[gcrypt] = "-DWITH_GCRYPT=ON,-DWITH_GCRYPT=OFF,libgcrypt,libgcrypt" -PACKAGECONFIG[gnutls] = "-DWITH_GNUTLS=ON,-DWITH_GNUTLS=OFF,gnutls" -PACKAGECONFIG[jpeg] = "-DWITH_JPEG=ON,-DWITH_JPEG=OFF,jpeg" -PACKAGECONFIG[lzo] = "-DWITH_LZO=ON,-DWITH_LZO=OFF,lzo" -PACKAGECONFIG[openssl] = "-DWITH_OPENSSL=ON,-DWITH_OPENSSL=OFF,openssl" -PACKAGECONFIG[png] = "-DWITH_PNG=ON,-DWITH_PNG=OFF,libpng,libpng" -PACKAGECONFIG[systemd] = "-DWITH_SYSTEMD=ON,-DWITH_SYSTEMD=OFF,systemd" -PACKAGECONFIG[sdl] = "-DWITH_SDL=ON,-DWITH_SDL=OFF,libsdl2" -PACKAGECONFIG[zlib] = "-DWITH_ZLIB=ON,-DWITH_ZLIB=OFF,zlib" - -PACKAGE_BEFORE_PN = "libvncclient" -FILES_libvncclient = "${libdir}/libvncclient.*" - -inherit cmake - -SRC_URI = "git://github.com/LibVNC/libvncserver" -SRCREV = "c0a23857a5c42b45b6d22ccf7218becd1fa69402" -PV = "0.9.12+git${SRCPV}" - -S = "${WORKDIR}/git" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/libyui/libyui-ncurses/0001-Use-override-consistently.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/libyui/libyui-ncurses/0001-Use-override-consistently.patch deleted file mode 100644 index 6d4bdc2a..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/libyui/libyui-ncurses/0001-Use-override-consistently.patch +++ /dev/null @@ -1,147 +0,0 @@ -From 0acfb67f99fd8d6af323311fee8c08116295b148 Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Wed, 5 Sep 2018 18:21:19 -0700 -Subject: [PATCH 1/2] Use override consistently - -Make clang++ happy -error: 'setApplicationTitle' overrides a member function but is not marked 'override' [-Werror,-Winconsistent-missing-over ride] - -Upstream-Status: Submitted [https://github.com/libyui/libyui-ncurses/pull/69] -Signed-off-by: Khem Raj ---- - src/NCApplication.h | 46 ++++++++++++++++++++++----------------------- - 1 file changed, 23 insertions(+), 23 deletions(-) - -diff --git a/src/NCApplication.h b/src/NCApplication.h -index e24c3eb..09e4708 100644 ---- a/src/NCApplication.h -+++ b/src/NCApplication.h -@@ -60,7 +60,7 @@ public: - * Reimplemented from YApplication. - **/ - virtual void setLanguage( const std::string & language, -- const std::string & encoding = std::string() ); -+ const std::string & encoding = std::string() ) override; - - /** - * Open a directory selection box and prompt the user for an existing -@@ -77,7 +77,7 @@ public: - * Implemented from YApplication. - **/ - virtual std::string askForExistingDirectory( const std::string & startDir, -- const std::string & headline ); -+ const std::string & headline ) override; - - /** - * Open a file selection box and prompt the user for an existing file. -@@ -97,7 +97,7 @@ public: - **/ - virtual std::string askForExistingFile( const std::string & startWith, - const std::string & filter, -- const std::string & headline ); -+ const std::string & headline ) override; - - /** - * Open a file selection box and prompt the user for a file to save data -@@ -119,28 +119,28 @@ public: - **/ - virtual std::string askForSaveFileName( const std::string & startWith, - const std::string & filter, -- const std::string & headline ); -+ const std::string & headline ) override; - - /** - * Beep. - * - * Reimplemented from YApplication. - **/ -- virtual void beep(); -+ virtual void beep() override; - - /** - * Redraw the screen. - * - * Reimplemented from YApplication. - **/ -- virtual void redrawScreen(); -+ virtual void redrawScreen() override; - - /** - * Initialize the (text) console keyboard. - * - * Reimplemented from YApplication. - **/ -- virtual void initConsoleKeyboard(); -+ virtual void initConsoleKeyboard() override; - - /** - * Set the (text) console font according to the current encoding etc. -@@ -152,7 +152,7 @@ public: - const std::string & font, - const std::string & screen_map, - const std::string & unicode_map, -- const std::string & language ); -+ const std::string & language ) override; - - /** - * Run a shell command (typically an interactive program using NCurses) -@@ -165,7 +165,7 @@ public: - * - * Reimplemented from YApplication. - **/ -- virtual int runInTerminal( const std::string & command ); -+ virtual int runInTerminal( const std::string & command ) override; - - - /// @{ -@@ -183,33 +183,33 @@ public: - // - // All implemented from YApplication. - -- virtual int displayWidth(); -- virtual int displayHeight(); -- virtual int displayDepth(); -- virtual long displayColors(); -+ virtual int displayWidth() override; -+ virtual int displayHeight() override; -+ virtual int displayDepth() override; -+ virtual long displayColors() override; - -- virtual int defaultWidth(); -- virtual int defaultHeight(); -+ virtual int defaultWidth() override; -+ virtual int defaultHeight() override; - -- virtual bool isTextMode() { return true; } -+ virtual bool isTextMode() override { return true; } - -- virtual bool hasImageSupport() { return false; } -+ virtual bool hasImageSupport() override { return false; } - -- virtual bool hasIconSupport() { return false; } -+ virtual bool hasIconSupport() override { return false; } - -- virtual bool hasAnimationSupport() { return false; } -+ virtual bool hasAnimationSupport() override { return false; } - -- virtual bool hasFullUtf8Support(); -- virtual bool richTextSupportsTable() { return false; } -+ virtual bool hasFullUtf8Support() override; -+ virtual bool richTextSupportsTable() override { return false; } - -- virtual bool leftHandedMouse() { return false; } -+ virtual bool leftHandedMouse() override { return false; } - - /** - * Set the application title - * - * Reimplemented from YApplication. - **/ -- virtual void setApplicationTitle(const std::string& title); -+ virtual void setApplicationTitle(const std::string& title) override; - }; - - --- -2.18.0 - diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/libyui/libyui-ncurses/0002-Define-own-resize-in-NCPad-and-fix-param-type-of-Set.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/libyui/libyui-ncurses/0002-Define-own-resize-in-NCPad-and-fix-param-type-of-Set.patch deleted file mode 100644 index f65cbe66..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/libyui/libyui-ncurses/0002-Define-own-resize-in-NCPad-and-fix-param-type-of-Set.patch +++ /dev/null @@ -1,49 +0,0 @@ -From 162a0899f1dacd83007c4e82b9034f55610d8c20 Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Wed, 5 Sep 2018 19:01:51 -0700 -Subject: [PATCH 2/2] Define own resize in NCPad and fix param type of - SetLabel() - -Explicitly override resize() to avoid conflicts from NCursesWindow -definition since there is another resize definition as well - -Fixes -src/NCPad.h:164:18: error: 'NCPad::resize' hides overloaded virtual function [-Werror,-Woverloaded-virtual] - -NCTablePad.h:132:18: error: 'NCTableTag::SetLabel' hides overloaded virtual function [-Werror,-Woverloaded-virtual] - -Upstream-Status: Submitted [https://github.com/libyui/libyui-ncurses/pull/69] -Signed-off-by: Khem Raj ---- - src/NCPad.h | 1 + - src/NCTablePad.h | 2 +- - 2 files changed, 2 insertions(+), 1 deletion(-) - -diff --git a/src/NCPad.h b/src/NCPad.h -index 328c4aa..d8fb324 100644 ---- a/src/NCPad.h -+++ b/src/NCPad.h -@@ -162,6 +162,7 @@ public: - virtual void Destwin( NCursesWindow * dwin ); - - virtual void resize( wsze nsze ); -+ virtual int resize( int lines, int columns ) { return NCursesWindow::resize(lines, columns );} - virtual void wRecoded(); - virtual void setDirty() { dirty = true; } - -diff --git a/src/NCTablePad.h b/src/NCTablePad.h -index c450529..3756796 100644 ---- a/src/NCTablePad.h -+++ b/src/NCTablePad.h -@@ -129,7 +129,7 @@ public: - - virtual ~NCTableTag() {} - -- virtual void SetLabel( const NCstring & ) { /*NOOP*/; } -+ virtual void SetLabel( const NClabel & ) { /*NOOP*/; } - - virtual void DrawAt( NCursesWindow & w, const wrect at, - NCTableStyle & tableStyle, --- -2.18.0 - diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/libyui/libyui-ncurses_2.52.0.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/libyui/libyui-ncurses_2.52.0.bb new file mode 100644 index 00000000..dae5c342 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/libyui/libyui-ncurses_2.52.0.bb @@ -0,0 +1,48 @@ +SUMMARY = "Character Based User Interface for libyui" +LICENSE = "LGPLv3" +LIC_FILES_CHKSUM = "file://COPYING.lgpl-3;md5=e6a600fd5e1d9cbde2d983680233ad02 \ + file://COPYING.lgpl-2.1;md5=4fbd65380cdd255951079008b364516c \ +" + +SRC_URI = "git://github.com/libyui/libyui-ncurses.git \ + file://0003-Simplify-ncurses-finding-module.patch \ + " + +SRC_URI_append_class-target = " file://0001-Fix-the-error-of-can-t-find-header-file.patch" + +SRCREV = "d5b64b6291b6f292871ad5c6df25c4f6896f7d50" + +S = "${WORKDIR}/git" + +inherit cmake gettext pkgconfig + +DEPENDS += "boost libyui ncurses" + +BBCLASSEXTEND = "nativesdk" + +do_configure_prepend () { + cd ${S} + git checkout bootstrap.sh + sed -i "s#/usr#${PKG_CONFIG_SYSROOT_DIR}${base_prefix}&#" bootstrap.sh + ./bootstrap.sh + mkdir -p ${PKG_CONFIG_SYSROOT_DIR}${base_prefix}/usr/lib64/ + cp ${PKG_CONFIG_SYSROOT_DIR}${base_prefix}/usr/lib/libyui.so* ${PKG_CONFIG_SYSROOT_DIR}${base_prefix}/usr/lib64/ + cd - + sed -i -e "s#\${YPREFIX}#\${PKG_CONFIG_SYSROOT_DIR}${base_prefix}&#" ${S}/CMakeLists.txt + sed -i -e "s#/usr#${PKG_CONFIG_SYSROOT_DIR}${base_prefix}&#" ${PKG_CONFIG_SYSROOT_DIR}${libdir}/cmake/libyui/LibyuiLibraryDepends-release.cmake +} + +do_install_append () { + if [ "${libdir}" = "${base_prefix}/usr/lib" ] && [ -d ${D}/usr/lib64 ]; then + mv ${D}/usr/lib64 ${D}/usr/lib + fi +} + +do_install_append_class-nativesdk () { + mkdir -p ${D}/${base_prefix} + mv ${D}/usr ${D}/${base_prefix} +} + +FILES_${PN} += "${datadir}/*" + +FILES_${PN}-dev += "${libdir}/*" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/libyui/libyui-ncurses_git.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/libyui/libyui-ncurses_git.bb deleted file mode 100644 index 18ea2e82..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/libyui/libyui-ncurses_git.bb +++ /dev/null @@ -1,51 +0,0 @@ -SUMMARY = "Character Based User Interface for libyui" -LICENSE = "LGPLv3" -LIC_FILES_CHKSUM = "file://COPYING.lgpl-3;md5=e6a600fd5e1d9cbde2d983680233ad02 \ - file://COPYING.lgpl-2.1;md5=4fbd65380cdd255951079008b364516c \ -" - -SRC_URI = "git://github.com/libyui/libyui-ncurses.git \ - file://0001-Use-override-consistently.patch \ - file://0002-Define-own-resize-in-NCPad-and-fix-param-type-of-Set.patch \ - file://0003-Simplify-ncurses-finding-module.patch \ - " - -SRC_URI_append_class-target = " file://0001-Fix-the-error-of-can-t-find-header-file.patch" - -PV = "2.48.3+git${SRCPV}" -SRCREV = "c941b32246e8b2952fce4fd5743f8e318222ab98" - -S = "${WORKDIR}/git" - -inherit cmake gettext pkgconfig - -DEPENDS += "boost libyui ncurses" - -BBCLASSEXTEND = "nativesdk" - -do_configure_prepend () { - cd ${S} - git checkout bootstrap.sh - sed -i "s#/usr#${PKG_CONFIG_SYSROOT_DIR}${base_prefix}&#" bootstrap.sh - ./bootstrap.sh - mkdir -p ${PKG_CONFIG_SYSROOT_DIR}${base_prefix}/usr/lib64/ - cp ${PKG_CONFIG_SYSROOT_DIR}${base_prefix}/usr/lib/libyui.so* ${PKG_CONFIG_SYSROOT_DIR}${base_prefix}/usr/lib64/ - cd - - sed -i -e "s#\${YPREFIX}#\${PKG_CONFIG_SYSROOT_DIR}${base_prefix}&#" ${S}/CMakeLists.txt - sed -i -e "s#/usr#${PKG_CONFIG_SYSROOT_DIR}${base_prefix}&#" ${PKG_CONFIG_SYSROOT_DIR}${libdir}/cmake/libyui/LibyuiLibraryDepends-release.cmake -} - -do_install_append () { - if [ "${libdir}" = "${base_prefix}/usr/lib" ] && [ -d ${D}/usr/lib64 ]; then - mv ${D}/usr/lib64 ${D}/usr/lib - fi -} - -do_install_append_class-nativesdk () { - mkdir -p ${D}/${base_prefix} - mv ${D}/usr ${D}/${base_prefix} -} - -FILES_${PN} += "${datadir}/*" - -FILES_${PN}-dev += "${libdir}/*" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/libyui/libyui/0001-Fix-build-with-clang.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/libyui/libyui/0001-Fix-build-with-clang.patch index 42690181..b03723ac 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/libyui/libyui/0001-Fix-build-with-clang.patch +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/libyui/libyui/0001-Fix-build-with-clang.patch @@ -65,8 +65,6 @@ Upstream-Status: Submitted [https://github.com/libyui/libyui/pull/123] src/YWizard.h | 2 +- 47 files changed, 48 insertions(+), 48 deletions(-) -diff --git a/src/YAlignment.h b/src/YAlignment.h -index d716c77..7276944 100644 --- a/src/YAlignment.h +++ b/src/YAlignment.h @@ -28,7 +28,7 @@ @@ -78,8 +76,6 @@ index d716c77..7276944 100644 /** * Implementation of all the alignment widgets: -diff --git a/src/YBarGraph.h b/src/YBarGraph.h -index 29f7f26..d7eaad2 100644 --- a/src/YBarGraph.h +++ b/src/YBarGraph.h @@ -29,7 +29,7 @@ @@ -91,8 +87,6 @@ index 29f7f26..d7eaad2 100644 class YBarGraphSegment; /** -diff --git a/src/YBusyIndicator.h b/src/YBusyIndicator.h -index 9530fa5..75297d8 100644 --- a/src/YBusyIndicator.h +++ b/src/YBusyIndicator.h @@ -27,7 +27,7 @@ @@ -104,8 +98,6 @@ index 9530fa5..75297d8 100644 /** -diff --git a/src/YButtonBox.h b/src/YButtonBox.h -index 84f8dbb..ca51f57 100644 --- a/src/YButtonBox.h +++ b/src/YButtonBox.h @@ -30,7 +30,7 @@ @@ -126,8 +118,6 @@ index 84f8dbb..ca51f57 100644 protected: /** -diff --git a/src/YCheckBox.h b/src/YCheckBox.h -index 793cc77..03f3faa 100644 --- a/src/YCheckBox.h +++ b/src/YCheckBox.h @@ -30,7 +30,7 @@ @@ -139,8 +129,6 @@ index 793cc77..03f3faa 100644 enum YCheckBoxState { -diff --git a/src/YCheckBoxFrame.h b/src/YCheckBoxFrame.h -index 243f1a0..7017110 100644 --- a/src/YCheckBoxFrame.h +++ b/src/YCheckBoxFrame.h @@ -29,7 +29,7 @@ @@ -152,8 +140,6 @@ index 243f1a0..7017110 100644 /** -diff --git a/src/YComboBox.h b/src/YComboBox.h -index 416359a..ad0e550 100644 --- a/src/YComboBox.h +++ b/src/YComboBox.h @@ -27,7 +27,7 @@ @@ -165,8 +151,6 @@ index 416359a..ad0e550 100644 /** -diff --git a/src/YCommandLine.h b/src/YCommandLine.h -index 70cb4fe..f344a3b 100644 --- a/src/YCommandLine.h +++ b/src/YCommandLine.h @@ -28,7 +28,7 @@ @@ -178,8 +162,6 @@ index 70cb4fe..f344a3b 100644 /** -diff --git a/src/YContextMenu.h b/src/YContextMenu.h -index a4acb1c..1253002 100644 --- a/src/YContextMenu.h +++ b/src/YContextMenu.h @@ -29,7 +29,7 @@ @@ -191,8 +173,6 @@ index a4acb1c..1253002 100644 /** -diff --git a/src/YDateField.h b/src/YDateField.h -index e5a468d..6164fba 100644 --- a/src/YDateField.h +++ b/src/YDateField.h @@ -27,7 +27,7 @@ @@ -204,8 +184,6 @@ index e5a468d..6164fba 100644 /** * Input field for entering a date. -diff --git a/src/YDialog.h b/src/YDialog.h -index 66c25c0..371209b 100644 --- a/src/YDialog.h +++ b/src/YDialog.h @@ -32,7 +32,7 @@ @@ -217,8 +195,6 @@ index 66c25c0..371209b 100644 class YEvent; class YEventFilter; -diff --git a/src/YDownloadProgress.h b/src/YDownloadProgress.h -index c47ec4f..fe09a9d 100644 --- a/src/YDownloadProgress.h +++ b/src/YDownloadProgress.h @@ -28,7 +28,7 @@ @@ -230,8 +206,6 @@ index c47ec4f..fe09a9d 100644 /** * DownloadProgress: A progress bar that monitors downloading a file by -diff --git a/src/YDumbTab.h b/src/YDumbTab.h -index aec17a3..f8fb250 100644 --- a/src/YDumbTab.h +++ b/src/YDumbTab.h @@ -27,7 +27,7 @@ @@ -243,8 +217,6 @@ index aec17a3..f8fb250 100644 /** * DumbTab: A very simple tab widget that can display and switch between a -diff --git a/src/YEmpty.h b/src/YEmpty.h -index 9a3cb36..9b88fbc 100644 --- a/src/YEmpty.h +++ b/src/YEmpty.h @@ -29,7 +29,7 @@ @@ -256,8 +228,6 @@ index 9a3cb36..9b88fbc 100644 /** * A widget with zero size, useful as a placeholder. -diff --git a/src/YEventFilter.h b/src/YEventFilter.h -index 3dc1803..74aa62d 100644 --- a/src/YEventFilter.h +++ b/src/YEventFilter.h @@ -32,7 +32,7 @@ @@ -269,8 +239,6 @@ index 3dc1803..74aa62d 100644 /** -diff --git a/src/YFrame.h b/src/YFrame.h -index 111e8ec..4f8c61e 100644 --- a/src/YFrame.h +++ b/src/YFrame.h @@ -29,7 +29,7 @@ @@ -282,8 +250,6 @@ index 111e8ec..4f8c61e 100644 /** -diff --git a/src/YGraph.h b/src/YGraph.h -index d90d1ae..287d800 100644 --- a/src/YGraph.h +++ b/src/YGraph.h @@ -37,7 +37,7 @@ @@ -295,8 +261,6 @@ index d90d1ae..287d800 100644 /** * A graph with nodes and edges, rendered with Graphviz. -diff --git a/src/YImage.h b/src/YImage.h -index 17bea21..84eb674 100644 --- a/src/YImage.h +++ b/src/YImage.h @@ -29,7 +29,7 @@ @@ -308,8 +272,6 @@ index 17bea21..84eb674 100644 /** * A picture, possibly animated, loaded from a file. -diff --git a/src/YInputField.h b/src/YInputField.h -index 70641ce..fa29b42 100644 --- a/src/YInputField.h +++ b/src/YInputField.h @@ -28,7 +28,7 @@ @@ -321,8 +283,6 @@ index 70641ce..fa29b42 100644 -diff --git a/src/YIntField.h b/src/YIntField.h -index 9da0537..8ad2949 100644 --- a/src/YIntField.h +++ b/src/YIntField.h @@ -27,7 +27,7 @@ @@ -334,8 +294,6 @@ index 9da0537..8ad2949 100644 -diff --git a/src/YLabel.h b/src/YLabel.h -index d2fff61..bf06d8b 100644 --- a/src/YLabel.h +++ b/src/YLabel.h @@ -30,7 +30,7 @@ @@ -347,8 +305,6 @@ index d2fff61..bf06d8b 100644 /** * Implementation of the Label, Heading and OutputField widgets -diff --git a/src/YLayoutBox.h b/src/YLayoutBox.h -index e652a45..070eaff 100644 --- a/src/YLayoutBox.h +++ b/src/YLayoutBox.h @@ -29,7 +29,7 @@ @@ -360,8 +316,6 @@ index e652a45..070eaff 100644 /** * A vertical or horizontal stacking of widgets, implementing HBox and VBox. -diff --git a/src/YLogView.h b/src/YLogView.h -index 53fb9ee..5b44229 100644 --- a/src/YLogView.h +++ b/src/YLogView.h @@ -27,7 +27,7 @@ @@ -373,8 +327,6 @@ index 53fb9ee..5b44229 100644 /** -diff --git a/src/YMenuButton.h b/src/YMenuButton.h -index 205e730..5df7efb 100644 --- a/src/YMenuButton.h +++ b/src/YMenuButton.h @@ -29,7 +29,7 @@ @@ -386,8 +338,6 @@ index 205e730..5df7efb 100644 /** -diff --git a/src/YMultiLineEdit.h b/src/YMultiLineEdit.h -index c52a6ae..1f792f8 100644 --- a/src/YMultiLineEdit.h +++ b/src/YMultiLineEdit.h @@ -27,7 +27,7 @@ @@ -399,8 +349,6 @@ index c52a6ae..1f792f8 100644 /** * A multi-line plain-text area -diff --git a/src/YMultiProgressMeter.h b/src/YMultiProgressMeter.h -index 57c758d..f6bec91 100644 --- a/src/YMultiProgressMeter.h +++ b/src/YMultiProgressMeter.h @@ -28,7 +28,7 @@ @@ -412,8 +360,6 @@ index 57c758d..f6bec91 100644 /** -diff --git a/src/YMultiSelectionBox.h b/src/YMultiSelectionBox.h -index bbe5a20..f3a2947 100644 --- a/src/YMultiSelectionBox.h +++ b/src/YMultiSelectionBox.h @@ -27,7 +27,7 @@ @@ -425,8 +371,6 @@ index bbe5a20..f3a2947 100644 /** -diff --git a/src/YPartitionSplitter.h b/src/YPartitionSplitter.h -index 2839bbc..9de1174 100644 --- a/src/YPartitionSplitter.h +++ b/src/YPartitionSplitter.h @@ -28,7 +28,7 @@ @@ -438,8 +382,6 @@ index 2839bbc..9de1174 100644 /** -diff --git a/src/YProgressBar.h b/src/YProgressBar.h -index 718352f..baab662 100644 --- a/src/YProgressBar.h +++ b/src/YProgressBar.h @@ -27,7 +27,7 @@ @@ -451,8 +393,6 @@ index 718352f..baab662 100644 /** -diff --git a/src/YPushButton.h b/src/YPushButton.h -index 5b65c98..e288252 100644 --- a/src/YPushButton.h +++ b/src/YPushButton.h @@ -27,7 +27,7 @@ @@ -464,8 +404,6 @@ index 5b65c98..e288252 100644 -diff --git a/src/YRadioButton.h b/src/YRadioButton.h -index 9dc62de..5a7c0dd 100644 --- a/src/YRadioButton.h +++ b/src/YRadioButton.h @@ -28,7 +28,7 @@ @@ -477,8 +415,6 @@ index 9dc62de..5a7c0dd 100644 /** -diff --git a/src/YRadioButtonGroup.h b/src/YRadioButtonGroup.h -index 063a52e..671a257 100644 --- a/src/YRadioButtonGroup.h +++ b/src/YRadioButtonGroup.h @@ -28,7 +28,7 @@ @@ -490,8 +426,6 @@ index 063a52e..671a257 100644 typedef std::list YRadioButtonList; typedef YRadioButtonList::iterator YRadioButtonListIterator; -diff --git a/src/YRichText.h b/src/YRichText.h -index 149bfb3..86b3f80 100644 --- a/src/YRichText.h +++ b/src/YRichText.h @@ -30,7 +30,7 @@ @@ -503,8 +437,6 @@ index 149bfb3..86b3f80 100644 /** -diff --git a/src/YSelectionBox.h b/src/YSelectionBox.h -index 7fc4fb8..9bbf9f3 100644 --- a/src/YSelectionBox.h +++ b/src/YSelectionBox.h @@ -27,7 +27,7 @@ @@ -516,8 +448,6 @@ index 7fc4fb8..9bbf9f3 100644 /** -diff --git a/src/YSelectionWidget.h b/src/YSelectionWidget.h -index abbdfb4..cf05afd 100644 --- a/src/YSelectionWidget.h +++ b/src/YSelectionWidget.h @@ -29,7 +29,7 @@ @@ -529,8 +459,6 @@ index abbdfb4..cf05afd 100644 /** * Base class for various kinds of multi-value widgets. -diff --git a/src/YSimpleInputField.h b/src/YSimpleInputField.h -index 6d926d4..b93fe6b 100644 --- a/src/YSimpleInputField.h +++ b/src/YSimpleInputField.h @@ -27,7 +27,7 @@ @@ -542,8 +470,6 @@ index 6d926d4..b93fe6b 100644 /** -diff --git a/src/YSlider.h b/src/YSlider.h -index d29f6b8..4bcd7d3 100644 --- a/src/YSlider.h +++ b/src/YSlider.h @@ -27,7 +27,7 @@ @@ -555,8 +481,6 @@ index d29f6b8..4bcd7d3 100644 /** -diff --git a/src/YSpacing.h b/src/YSpacing.h -index e8aafd3..066cd68 100644 --- a/src/YSpacing.h +++ b/src/YSpacing.h @@ -28,7 +28,7 @@ @@ -568,8 +492,6 @@ index e8aafd3..066cd68 100644 /** -diff --git a/src/YSquash.h b/src/YSquash.h -index 4bd0fb6..3804cc4 100644 --- a/src/YSquash.h +++ b/src/YSquash.h @@ -29,7 +29,7 @@ @@ -581,8 +503,6 @@ index 4bd0fb6..3804cc4 100644 /** * HSquash, VSquash HVSquash: reduce child to its preferred size. -diff --git a/src/YTable.h b/src/YTable.h -index 6694f10..469b8ca 100644 --- a/src/YTable.h +++ b/src/YTable.h @@ -30,7 +30,7 @@ @@ -594,8 +514,6 @@ index 6694f10..469b8ca 100644 -diff --git a/src/YTableHeader.h b/src/YTableHeader.h -index 70166c2..4ae99b4 100644 --- a/src/YTableHeader.h +++ b/src/YTableHeader.h @@ -31,7 +31,7 @@ @@ -607,8 +525,6 @@ index 70166c2..4ae99b4 100644 /** * Helper class for YTable for table column properties: -diff --git a/src/YTimeField.h b/src/YTimeField.h -index ab2f9a3..f3a7b94 100644 --- a/src/YTimeField.h +++ b/src/YTimeField.h @@ -27,7 +27,7 @@ @@ -620,8 +536,6 @@ index ab2f9a3..f3a7b94 100644 /** -diff --git a/src/YTimezoneSelector.cc b/src/YTimezoneSelector.cc -index 9259b64..e2f9b6f 100644 --- a/src/YTimezoneSelector.cc +++ b/src/YTimezoneSelector.cc @@ -32,7 +32,7 @@ @@ -633,8 +547,6 @@ index 9259b64..e2f9b6f 100644 }; -diff --git a/src/YTree.h b/src/YTree.h -index 14fa279..70e1364 100644 --- a/src/YTree.h +++ b/src/YTree.h @@ -28,7 +28,7 @@ @@ -646,8 +558,6 @@ index 14fa279..70e1364 100644 /** -diff --git a/src/YUILog.h b/src/YUILog.h -index 0890bc5..4a927a7 100644 --- a/src/YUILog.h +++ b/src/YUILog.h @@ -64,7 +64,7 @@ @@ -659,11 +569,9 @@ index 0890bc5..4a927a7 100644 enum YUILogLevel_t { -diff --git a/src/YWidget.h b/src/YWidget.h -index 5b285d0..636a41b 100644 --- a/src/YWidget.h +++ b/src/YWidget.h -@@ -45,7 +45,7 @@ typedef YChildrenManager YWidgetChildrenManager; +@@ -45,7 +45,7 @@ typedef YChildrenManager YWidge typedef YSingleChildManager YSingleWidgetChildManager; typedef YChildrenRejector YWidgetChildrenRejector; @@ -672,8 +580,6 @@ index 5b285d0..636a41b 100644 /** -diff --git a/src/YWizard.h b/src/YWizard.h -index 7671cbf..975b597 100644 --- a/src/YWizard.h +++ b/src/YWizard.h @@ -28,7 +28,7 @@ diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/libyui/libyui/0001-Use-curly-braces-for-MAKE-variable.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/libyui/libyui/0001-Use-curly-braces-for-MAKE-variable.patch deleted file mode 100644 index dbe24170..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/libyui/libyui/0001-Use-curly-braces-for-MAKE-variable.patch +++ /dev/null @@ -1,32 +0,0 @@ -From 4eed37b1a61458fc8e5251f7cb7c6d64e8e9da8d Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Wed, 5 Sep 2018 17:48:09 -0700 -Subject: [PATCH] Use curly braces for MAKE variable - -Fixes errors with ninja -| ninja: error: build.ninja:142: bad $-escape (literal $ must be written as $$) - -Upstream-Status: Submitted [https://github.com/libyui/libyui/pull/137] -Signed-off-by: Khem Raj ---- - buildtools/LibyuiCommon.cmake | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/buildtools/LibyuiCommon.cmake b/buildtools/LibyuiCommon.cmake -index cb93307..e6fbefd 100644 ---- a/buildtools/LibyuiCommon.cmake -+++ b/buildtools/LibyuiCommon.cmake -@@ -122,8 +122,8 @@ MACRO( SET_BUILD_FLAGS ) # setup compiler-flags depending on CMAKE_BUILD_TYPE - ENABLE_TESTING() - # add a wrapper "tests" target, the builtin "test" cannot be extended :-( - ADD_CUSTOM_TARGET(tests -- $(MAKE) -- COMMAND $(MAKE) test -+ ${MAKE} -+ COMMAND ${MAKE} test - ) - ENDIF ( ENABLE_TESTS OR ENABLE_CODE_COVERAGE) - --- -2.18.0 - diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/libyui/libyui_3.6.0.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/libyui/libyui_3.6.0.bb new file mode 100644 index 00000000..7c6f4c13 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/libyui/libyui_3.6.0.bb @@ -0,0 +1,42 @@ +SUMMARY = "Libyui is a widget abstraction library providing Qt, GTK and ncurses frontends." +LICENSE = "LGPLv3" +LIC_FILES_CHKSUM = "file://COPYING.gpl-3;md5=d32239bcb673463ab874e80d47fae504 \ + file://COPYING.lgpl-2.1;md5=4fbd65380cdd255951079008b364516c \ + file://COPYING.lgpl-3;md5=e6a600fd5e1d9cbde2d983680233ad02 \ + " + +SRC_URI = "git://github.com/libyui/libyui.git \ + file://0001-Fix-build-with-clang.patch \ + file://0001-Use-relative-install-paths-for-CMake.patch \ + " + +SRCREV = "8459235919f592b1bc099ecf9a947cb6344b6fa5" +SRCREV_FORMAT = "default" +S = "${WORKDIR}/git" + +inherit cmake gettext pkgconfig + +DEPENDS += "boost" + +EXTRA_OECMAKE += "-DENABLE_WERROR=OFF" + +BBCLASSEXTEND = "native nativesdk" + +do_configure_prepend () { + (cd ${S} && + ./bootstrap.sh && + cd -) +} + +do_install_append () { + if [ "${libdir}" = "${base_prefix}/usr/lib" ] && [ -d ${D}/usr/lib64 ]; then + mv ${D}/usr/lib64 ${D}/usr/lib + fi +} + +do_install_append_class-nativesdk () { + mkdir -p ${D}/${base_prefix} + mv ${D}/usr ${D}/${base_prefix} +} + +FILES_${PN}-dev = "${libdir}/* ${includedir}/yui*" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/libyui/libyui_git.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/libyui/libyui_git.bb deleted file mode 100644 index d313fb02..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/libyui/libyui_git.bb +++ /dev/null @@ -1,42 +0,0 @@ -SUMMARY = "Libyui is a widget abstraction library providing Qt, GTK and ncurses frontends." -LICENSE = "LGPLv3" -LIC_FILES_CHKSUM = "file://COPYING.gpl-3;md5=d32239bcb673463ab874e80d47fae504 \ - file://COPYING.lgpl-2.1;md5=4fbd65380cdd255951079008b364516c \ - file://COPYING.lgpl-3;md5=e6a600fd5e1d9cbde2d983680233ad02 \ - " - -SRC_URI = "git://github.com/libyui/libyui.git \ - file://0001-Fix-build-with-clang.patch \ - file://0001-Use-curly-braces-for-MAKE-variable.patch \ - file://0001-Use-relative-install-paths-for-CMake.patch \ - " - -PV = "3.3.3+git" -SRCREV = "50672da835ec9d52766320a44a2677e08a24c99c" -SRCREV_FORMAT = "default" -S = "${WORKDIR}/git" - -inherit cmake gettext pkgconfig - -DEPENDS += "boost" - -BBCLASSEXTEND = "native nativesdk" - -do_configure_prepend () { - (cd ${S} && - ./bootstrap.sh && - cd -) -} - -do_install_append () { - if [ "${libdir}" = "${base_prefix}/usr/lib" ] && [ -d ${D}/usr/lib64 ]; then - mv ${D}/usr/lib64 ${D}/usr/lib - fi -} - -do_install_append_class-nativesdk () { - mkdir -p ${D}/${base_prefix} - mv ${D}/usr ${D}/${base_prefix} -} - -FILES_${PN}-dev = "${libdir}/* ${includedir}/yui*" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/lxdm/lxdm_0.5.3.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/lxdm/lxdm_0.5.3.bb index 701266bc..db4767bb 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/lxdm/lxdm_0.5.3.bb +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/lxdm/lxdm_0.5.3.bb @@ -22,7 +22,7 @@ DEPENDS_append_libc-musl = " libexecinfo" # combine oe-core way with angstrom DISTRO_TYPE DISTRO_TYPE ?= "${@bb.utils.contains("IMAGE_FEATURES", "debug-tweaks", "debug", "",d)}" -inherit autotools pkgconfig gettext systemd distro_features_check +inherit autotools pkgconfig gettext systemd features_check # depends on virtual/libx11 REQUIRED_DISTRO_FEATURES = "x11" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/numlockx/numlockx_1.2.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/numlockx/numlockx_1.2.bb index 08d7f5b5..ac2634d8 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/numlockx/numlockx_1.2.bb +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/numlockx/numlockx_1.2.bb @@ -10,7 +10,7 @@ SRC_URI = "http://pkgs.fedoraproject.org/repo/pkgs/numlockx/numlockx-${PV}.tar.g SRC_URI[md5sum] = "be9109370447eae23f6f3f8527bb1a67" SRC_URI[sha256sum] = "e468eb9121c94c9089dc6a287eeb347e900ce04a14be37da29d7696cbce772e4" -inherit autotools distro_features_check +inherit autotools features_check # depends on virtual/libx11 REQUIRED_DISTRO_FEATURES = "x11" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/openbox/openbox_3.6.1.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/openbox/openbox_3.6.1.bb index 9af3798a..33f34e42 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/openbox/openbox_3.6.1.bb +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/openbox/openbox_3.6.1.bb @@ -12,7 +12,7 @@ SRC_URI = " \ SRC_URI[md5sum] = "b72794996c6a3ad94634727b95f9d204" SRC_URI[sha256sum] = "8b4ac0760018c77c0044fab06a4f0c510ba87eae934d9983b10878483bde7ef7" -inherit autotools gettext update-alternatives pkgconfig distro_features_check +inherit autotools gettext update-alternatives pkgconfig features_check # depends on virtual/libx11 REQUIRED_DISTRO_FEATURES = "x11" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/openjpeg/openjpeg/0001-Ensure-cmake-files-are-installed-at-common-location.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/openjpeg/openjpeg/0001-Ensure-cmake-files-are-installed-at-common-location.patch deleted file mode 100644 index 5c5fe64f..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/openjpeg/openjpeg/0001-Ensure-cmake-files-are-installed-at-common-location.patch +++ /dev/null @@ -1,48 +0,0 @@ -From fe491c0919f5adc8d626cb98c5ec19d0b99dfe20 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Andreas=20M=C3=BCller?= -Date: Thu, 27 Sep 2018 23:45:04 +0200 -Subject: [PATCH] Ensure cmake files are installed at common location -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -* Otherwise recent poppler is not able to find them -* Include path needs adjustment with this change - -Upstream-Status: Inappropriate [Configuration] - -Signed-off-by: Andreas Müller ---- - CMakeLists.txt | 2 +- - cmake/OpenJPEGConfig.cmake.in | 2 +- - 2 files changed, 2 insertions(+), 2 deletions(-) - -diff --git a/CMakeLists.txt b/CMakeLists.txt -index ff70a06f..23d2fac4 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -150,7 +150,7 @@ if(NOT OPENJPEG_INSTALL_PACKAGE_DIR) - # We could install *.cmake files in share/ however those files contains - # hardcoded path to libraries on a multi-arch system (fedora/debian) those - # path will be different (lib/i386-linux-gnu vs lib/x86_64-linux-gnu) -- set(OPENJPEG_INSTALL_PACKAGE_DIR "${OPENJPEG_INSTALL_LIB_DIR}/${OPENJPEG_INSTALL_SUBDIR}") -+ set(OPENJPEG_INSTALL_PACKAGE_DIR "${OPENJPEG_INSTALL_LIB_DIR}/cmake/${OPENJPEG_INSTALL_SUBDIR}") - endif() - - if (APPLE) -diff --git a/cmake/OpenJPEGConfig.cmake.in b/cmake/OpenJPEGConfig.cmake.in -index b20294ca..6a2f4baf 100644 ---- a/cmake/OpenJPEGConfig.cmake.in -+++ b/cmake/OpenJPEGConfig.cmake.in -@@ -26,7 +26,7 @@ get_filename_component(SELF_DIR "${CMAKE_CURRENT_LIST_FILE}" PATH) - if(EXISTS ${SELF_DIR}/OpenJPEGTargets.cmake) - # This is an install tree - include(${SELF_DIR}/OpenJPEGTargets.cmake) -- get_filename_component(OPENJPEG_INCLUDE_ROOT "${SELF_DIR}/../../@OPENJPEG_INSTALL_INCLUDE_DIR@" ABSOLUTE) -+ get_filename_component(OPENJPEG_INCLUDE_ROOT "${SELF_DIR}/../../../@OPENJPEG_INSTALL_INCLUDE_DIR@" ABSOLUTE) - set(OPENJPEG_INCLUDE_DIRS ${OPENJPEG_INCLUDE_ROOT}) - - else() --- -2.14.4 - diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/openjpeg/openjpeg_2.3.0.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/openjpeg/openjpeg_2.3.0.bb deleted file mode 100644 index d30ff482..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/openjpeg/openjpeg_2.3.0.bb +++ /dev/null @@ -1,19 +0,0 @@ -DESCRIPTION = "OpenJPEG library is an open-source JPEG 2000 codec" -HOMEPAGE = "http://www.openjpeg.org" -LICENSE = "BSD" -LIC_FILES_CHKSUM = "file://LICENSE;md5=c648878b4840d7babaade1303e7f108c" - -DEPENDS = "libpng tiff lcms zlib" - -SRC_URI = " \ - git://github.com/uclouvain/openjpeg.git \ - file://0001-Ensure-cmake-files-are-installed-at-common-location.patch \ - file://0002-Do-not-ask-cmake-to-export-binaries-they-don-t-make-.patch \ -" -SRCREV = "081de4b15f54cb4482035b7bf5e3fb443e4bc84b" -S = "${WORKDIR}/git" - -inherit cmake - -# for multilib -EXTRA_OECMAKE += "-DOPENJPEG_INSTALL_LIB_DIR=${@d.getVar('baselib').replace('/', '')}" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/openjpeg/openjpeg_2.3.1.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/openjpeg/openjpeg_2.3.1.bb new file mode 100644 index 00000000..ffd4099b --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/openjpeg/openjpeg_2.3.1.bb @@ -0,0 +1,20 @@ +DESCRIPTION = "OpenJPEG library is an open-source JPEG 2000 codec" +HOMEPAGE = "http://www.openjpeg.org" +LICENSE = "BSD-2-Clause" +LIC_FILES_CHKSUM = "file://LICENSE;md5=c648878b4840d7babaade1303e7f108c" + +DEPENDS = "libpng tiff lcms zlib" + +SRC_URI = " \ + git://github.com/uclouvain/openjpeg.git \ + file://0002-Do-not-ask-cmake-to-export-binaries-they-don-t-make-.patch \ +" +SRCREV = "57096325457f96d8cd07bd3af04fe81d7a2ba788" +S = "${WORKDIR}/git" + +inherit cmake + +# for multilib +EXTRA_OECMAKE += "-DOPENJPEG_INSTALL_LIB_DIR=${@d.getVar('baselib').replace('/', '')}" + +FILES_${PN} += "${libdir}/openjpeg*" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/pango/pangomm_2.42.0.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/pango/pangomm_2.42.0.bb index 8a85db47..35e71ab4 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/pango/pangomm_2.42.0.bb +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/pango/pangomm_2.42.0.bb @@ -12,7 +12,7 @@ SRC_URI = "http://ftp.gnome.org/pub/GNOME/sources/pangomm/${SHRT_VER}/pangomm-${ SRC_URI[md5sum] = "6cffedf2225c4e72645a7d757fb5b832" SRC_URI[sha256sum] = "ca6da067ff93a6445780c0b4b226eb84f484ab104b8391fb744a45cbc7edbf56" -inherit distro_features_check autotools pkgconfig +inherit features_check autotools pkgconfig REQUIRED_DISTRO_FEATURES = "x11" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/renderdoc/renderdoc/0001-Remove-glslang-pool_allocator-setAllocator.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/renderdoc/renderdoc/0001-Remove-glslang-pool_allocator-setAllocator.patch new file mode 100644 index 00000000..6ba1e426 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/renderdoc/renderdoc/0001-Remove-glslang-pool_allocator-setAllocator.patch @@ -0,0 +1,31 @@ +From 49dd914109fd1ee9e1e917890bf18f85dd95ff31 Mon Sep 17 00:00:00 2001 +From: Reid Kleckner +Date: Sun, 29 Dec 2019 23:17:16 -0800 +Subject: [PATCH] Remove glslang::pool_allocator::setAllocator + +TPoolAllocator is not copy assignable, so this setter could never have +been used. After a recent change (878a24ee2), new versions of Clang +reject this code outright. + +Upstream-Status: Backport [https://github.com/KhronosGroup/glslang/commit/0de87ee9a5bf5d094a3faa1a71fd9080e80b6be0] + +Signed-off-by: Khem Raj +--- + renderdoc/3rdparty/glslang/glslang/Include/PoolAlloc.h | 1 - + 1 file changed, 1 deletion(-) + +diff --git a/renderdoc/3rdparty/glslang/glslang/Include/PoolAlloc.h b/renderdoc/3rdparty/glslang/glslang/Include/PoolAlloc.h +index 0e237a6a2..b8eccb883 100644 +--- a/renderdoc/3rdparty/glslang/glslang/Include/PoolAlloc.h ++++ b/renderdoc/3rdparty/glslang/glslang/Include/PoolAlloc.h +@@ -304,7 +304,6 @@ public: + size_type max_size() const { return static_cast(-1) / sizeof(T); } + size_type max_size(int size) const { return static_cast(-1) / size; } + +- void setAllocator(TPoolAllocator* a) { allocator = *a; } + TPoolAllocator& getAllocator() const { return allocator; } + + protected: +-- +2.24.1 + diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/renderdoc/renderdoc/0001-renderdoc-use-xxd-instead-of-cross-compiling-shim-bi.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/renderdoc/renderdoc/0001-renderdoc-use-xxd-instead-of-cross-compiling-shim-bi.patch new file mode 100644 index 00000000..e96dedfc --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/renderdoc/renderdoc/0001-renderdoc-use-xxd-instead-of-cross-compiling-shim-bi.patch @@ -0,0 +1,57 @@ +From 41a8c9b5ac13066770baee476ebf9828371f4dad Mon Sep 17 00:00:00 2001 +From: Adrian Ratiu +Date: Tue, 24 Sep 2019 16:07:18 +0300 +Subject: [PATCH] renderdoc: use xxd instead of cross-compiling shim binary + +Renderdoc's attempt to cross compile an xxd replacement by directly +calling a host cross-compiler breaks under OE's recipe specific +sysroots protection because this is not a native recipe, so we just +use xxd-native instead. + +Upstream-Status: Inappropriate [embedded-specific] + +--- + renderdoc/CMakeLists.txt | 23 +---------------------- + 1 file changed, 1 insertion(+), 22 deletions(-) + +diff --git a/renderdoc/CMakeLists.txt b/renderdoc/CMakeLists.txt +index 5cb7440a4..453a034ba 100644 +--- a/renderdoc/CMakeLists.txt ++++ b/renderdoc/CMakeLists.txt +@@ -370,26 +370,6 @@ set(data + set(data_objects) + + if(UNIX) +- # If we're cross-compiling, include-bin will get built for the target and we +- # then can't execute it. Instead, we force calling c++ (which we can safely +- # assume is present) directly to build the binary +- +- if(CMAKE_CROSSCOMPILING) +- set(HOST_NATIVE_CPP_COMPILER c++ CACHE STRING "Command to run to compile a .cpp into an executable. Default is just c++") +- +- add_custom_command(OUTPUT ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/include-bin +- WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} +- COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_RUNTIME_OUTPUT_DIRECTORY} +- COMMAND ${HOST_NATIVE_CPP_COMPILER} 3rdparty/include-bin/main.cpp -o ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/include-bin +- DEPENDS 3rdparty/include-bin/main.cpp) +- set(INCLUDE_BIN_EXE "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/include-bin") +- set(INCLUDE_BIN_DEP "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/include-bin") +- else() +- add_executable(include-bin 3rdparty/include-bin/main.cpp) +- set(INCLUDE_BIN_EXE $) +- set(INCLUDE_BIN_DEP include-bin) +- endif() +- + foreach(res ${data}) + set(in ${res}) + set(working_dir ${CMAKE_CURRENT_SOURCE_DIR}) +@@ -399,8 +379,7 @@ if(UNIX) + add_custom_command(OUTPUT ${out_src} + WORKING_DIRECTORY ${working_dir} + COMMAND ${CMAKE_COMMAND} -E make_directory ${out_src_dir} +- COMMAND ${INCLUDE_BIN_EXE} ${in} ${out_src} +- DEPENDS ${INCLUDE_BIN_DEP} ++ COMMAND xxd -i ${in} ${out_src} + DEPENDS ${res}) + + list(APPEND data_objects ${out_src}) diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/renderdoc/renderdoc_1.5.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/renderdoc/renderdoc_1.5.bb new file mode 100644 index 00000000..5f81e841 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/renderdoc/renderdoc_1.5.bb @@ -0,0 +1,38 @@ +SUMMARY = "RenderDoc recipe providing renderdoccmd" +DESCRIPTION = "RenderDoc is a frame-capture based graphics debugger" +HOMEPAGE = "https://github.com/baldurk/renderdoc" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://LICENSE.md;md5=9753b1b4fba3261c27d1ce5c1acef667" + +SRCREV = "a94f238e37cfe2f142093eb8e5da7775abaa88c6" +SRC_URI = "git://github.com/baldurk/${BPN}.git;protocol=http;branch=v1.x \ + file://0001-renderdoc-use-xxd-instead-of-cross-compiling-shim-bi.patch \ + file://0001-Remove-glslang-pool_allocator-setAllocator.patch \ +" +S = "${WORKDIR}/git" + +DEPENDS += "virtual/libx11 virtual/libgl libxcb xcb-util-keysyms vim-native" + +RDEPENDS_${PN} = "libxcb xcb-util-keysyms" + +inherit cmake python3native features_check + +REQUIRED_DISTRO_FEATURES = "x11 opengl" + +python __anonymous () { + # only works on glibc systems + if d.getVar('TCLIBC') != "glibc": + raise bb.parse.SkipRecipe("incompatible with %s C library" % d.getVar('TCLIBC')) +} + +COMPATIBLE_HOST = "(x86_64|i.86|arm|aarch64).*-linux" + +EXTRA_OECMAKE += "\ + -DENABLE_QRENDERDOC=OFF \ + -DENABLE_PYRENDERDOC=OFF \ + -DENABLE_RENDERDOCCMD=ON \ + -DCMAKE_BUILD_TYPE=Release \ +" + +FILES_${PN} += "${libdir}" +FILES_${PN}-dev = "${includedir}" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/spir/files/0001-Avoid-pessimizing-std-move-3124.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/spir/files/0001-Avoid-pessimizing-std-move-3124.patch new file mode 100644 index 00000000..9b48cdcd --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/spir/files/0001-Avoid-pessimizing-std-move-3124.patch @@ -0,0 +1,50 @@ +From 4fffcd275b50d08b54b0411679ead98970651bad Mon Sep 17 00:00:00 2001 +From: David Neto +Date: Fri, 27 Dec 2019 12:05:58 -0500 +Subject: [PATCH] Avoid pessimizing std::move (#3124) + +Should fix a warning + +Upstream-Status: Backport [https://github.com/KhronosGroup/SPIRV-Tools/commit/8aa423930db37e37086665efcc55944d577c06e5] +Signed-off-by: Khem Raj +--- + test/opt/pass_fixture.h | 9 +++------ + 1 file changed, 3 insertions(+), 6 deletions(-) + +diff --git a/test/opt/pass_fixture.h b/test/opt/pass_fixture.h +index 53fb206f..64c089d8 100644 +--- a/test/opt/pass_fixture.h ++++ b/test/opt/pass_fixture.h +@@ -60,8 +60,7 @@ class PassTest : public TestT { + // from pass Process() function. + std::tuple, Pass::Status> OptimizeToBinary( + Pass* pass, const std::string& original, bool skip_nop) { +- context_ = +- std::move(BuildModule(env_, consumer_, original, assemble_options_)); ++ context_ = BuildModule(env_, consumer_, original, assemble_options_); + EXPECT_NE(nullptr, context()) << "Assembling failed for shader:\n" + << original << std::endl; + if (!context()) { +@@ -197,8 +196,7 @@ class PassTest : public TestT { + // messages. + template + void SinglePassRunAndFail(const std::string& original, Args&&... args) { +- context_ = +- std::move(BuildModule(env_, consumer_, original, assemble_options_)); ++ context_ = BuildModule(env_, consumer_, original, assemble_options_); + EXPECT_NE(nullptr, context()) << "Assembling failed for shader:\n" + << original << std::endl; + std::ostringstream errs; +@@ -235,8 +233,7 @@ class PassTest : public TestT { + void RunAndCheck(const std::string& original, const std::string& expected) { + assert(manager_->NumPasses()); + +- context_ = +- std::move(BuildModule(env_, nullptr, original, assemble_options_)); ++ context_ = BuildModule(env_, nullptr, original, assemble_options_); + ASSERT_NE(nullptr, context()); + + context()->set_preserve_bindings(OptimizerOptions()->preserve_bindings_); +-- +2.24.1 + diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/spir/files/0001-Respect-CMAKE_INSTALL_LIBDIR-in-installed-CMake-file.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/spir/files/0001-Respect-CMAKE_INSTALL_LIBDIR-in-installed-CMake-file.patch new file mode 100644 index 00000000..5d37da8f --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/spir/files/0001-Respect-CMAKE_INSTALL_LIBDIR-in-installed-CMake-file.patch @@ -0,0 +1,35 @@ +From caf59c46ea5dc49e4dbf756c642b03e52c1b5468 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Fri, 20 Dec 2019 07:02:24 -0800 +Subject: [PATCH] Respect CMAKE_INSTALL_LIBDIR in installed CMake files + +Upstream-Status: Submitted [https://github.com/google/effcee/pull/36] +Signed-off-by: Khem Raj +--- + CMakeLists.txt | 1 + + effcee/CMakeLists.txt | 4 ++-- + 2 files changed, 3 insertions(+), 2 deletions(-) + +--- a/external/effcee/CMakeLists.txt ++++ b/external/effcee/CMakeLists.txt +@@ -27,6 +27,7 @@ endif() + + include(cmake/setup_build.cmake) + include(cmake/utils.cmake) ++include(GNUInstallDirs) + + add_subdirectory(third_party) + add_subdirectory(effcee) +--- a/external/effcee/effcee/CMakeLists.txt ++++ b/external/effcee/effcee/CMakeLists.txt +@@ -14,8 +14,8 @@ install( + DESTINATION + include/effcee) + install(TARGETS effcee +- LIBRARY DESTINATION lib +- ARCHIVE DESTINATION lib) ++ LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ++ ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}) + + if(EFFCEE_BUILD_TESTING) + add_executable(effcee-test diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/spir/files/0001-tools-lesspipe-Allow-generic-shell.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/spir/files/0001-tools-lesspipe-Allow-generic-shell.patch deleted file mode 100644 index e9a45c24..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/spir/files/0001-tools-lesspipe-Allow-generic-shell.patch +++ /dev/null @@ -1,24 +0,0 @@ -From 03127fd5a6eff5ae2ebea2e9c6c01fbf1a0a421a Mon Sep 17 00:00:00 2001 -From: Ankit Navik -Date: Tue, 25 Dec 2018 14:34:09 +0530 -Subject: [PATCH] tools/lesspipe: Allow generic shell - -Upstream-Status: Submitted [https://github.com/KhronosGroup/SPIRV-Tools/pull/2255] -Signed-off-by: Ankit Navik ---- - tools/lesspipe/spirv-lesspipe.sh | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/tools/lesspipe/spirv-lesspipe.sh b/tools/lesspipe/spirv-lesspipe.sh -index 81e3355..f955259 100644 ---- a/tools/lesspipe/spirv-lesspipe.sh -+++ b/tools/lesspipe/spirv-lesspipe.sh -@@ -1,4 +1,4 @@ --#!/bin/bash -+#!/usr/bin/env sh - # Copyright (c) 2016 The Khronos Group Inc. - - # Licensed under the Apache License, Version 2.0 (the "License"); --- -2.7.4 - diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/spir/spirv-tools_git.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/spir/spirv-tools_git.bb index aae11dff..8e8388e8 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/spir/spirv-tools_git.bb +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/spir/spirv-tools_git.bb @@ -9,20 +9,23 @@ SECTION = "graphics" S = "${WORKDIR}/git" DEST_DIR = "${S}/external" SRC_URI = "git://github.com/KhronosGroup/SPIRV-Tools.git;name=spirv-tools \ - file://0001-tools-lesspipe-Allow-generic-shell.patch \ git://github.com/KhronosGroup/SPIRV-Headers.git;name=spirv-headers;destsuffix=${DEST_DIR}/spirv-headers \ git://github.com/google/effcee.git;name=effcee;destsuffix=${DEST_DIR}/effcee \ git://github.com/google/re2.git;name=re2;destsuffix=${DEST_DIR}/re2 \ git://github.com/google/googletest.git;name=googletest;destsuffix=${DEST_DIR}/googletest \ + file://0001-Respect-CMAKE_INSTALL_LIBDIR-in-installed-CMake-file.patch \ + file://0001-Avoid-pessimizing-std-move-3124.patch \ " -SRCREV_spirv-tools = "167f1270a9ee641b17c016a545741e4aadfabe86" -SRCREV_spirv-headers = "4618b86e9e4b027a22040732dfee35e399cd2c47" -SRCREV_effcee = "8f0a61dc95e0df18c18e0ac56d83b3fa9d2fe90b" -SRCREV_re2 = "2cf86e5ab6dcfe045a1f510c2b9a8b012a4158cd" -SRCREV_googletest = "150613166524c474a8a97df4c01d46b72050c495" +SRCREV_spirv-tools = "c413b982c316b14e784f50d941814fc737b55b4a" +SRCREV_spirv-headers = "af64a9e826bf5bb5fcd2434dd71be1e41e922563" +SRCREV_effcee = "cd25ec17e9382f99a895b9ef53ff3c277464d07d" +SRCREV_re2 = "5bd613749fd530b576b890283bfb6bc6ea6246cb" +SRCREV_googletest = "f2fb48c3b3d79a75a88a99fba6576b25d42ec528" inherit cmake python3native +EXTRA_OECMAKE += "-DSPIRV_WERROR=OFF" + do_install_append() { install -d ${D}/${includedir}/spirv install -m 0644 ${DEST_DIR}/spirv-headers/include/spirv/1.2/* ${D}/${includedir}/spirv diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/stalonetray/stalonetray_0.8.3.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/stalonetray/stalonetray_0.8.3.bb new file mode 100644 index 00000000..7db70ec9 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/stalonetray/stalonetray_0.8.3.bb @@ -0,0 +1,16 @@ +SUMMARY = "Stand-alone system tray" +DESCRIPTION = "Stalonetray is a stand-alone freedesktop.org and KDE system tray" +SECTION = "x11/graphics" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f" + +DEPENDS = "virtual/libx11" + +SRC_URI = "${SOURCEFORGE_MIRROR}/${BPN}/${BPN}-${PV}.tar.bz2" + +SRC_URI[md5sum] = "ae95dbbacc2620e032acea8abab8c9ef" +SRC_URI[sha256sum] = "36548a588b2d466913423245dda6ffb6313132cd0cec635a117d37b3dab5fd4c" + +inherit autotools features_check + +REQUIRED_DISTRO_FEATURES = "x11" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/surf/surf/0001-config.mk-Fix-compiler-and-linker.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/surf/surf/0001-config.mk-Fix-compiler-and-linker.patch new file mode 100644 index 00000000..fb90432e --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/surf/surf/0001-config.mk-Fix-compiler-and-linker.patch @@ -0,0 +1,41 @@ +From e97bb73851f5bbd94260da553a222526485cdfb1 Mon Sep 17 00:00:00 2001 +From: Leon Anavi +Date: Fri, 15 Nov 2019 18:24:42 +0000 +Subject: [PATCH] config.mk: Fix compiler and linker + +Do not set explicitly compiler and linker. + +Signed-off-by: Leon Anavi +--- + config.mk | 8 ++++---- + 1 file changed, 4 insertions(+), 4 deletions(-) + +diff --git a/config.mk b/config.mk +index df6e812..5deb991 100644 +--- a/config.mk ++++ b/config.mk +@@ -15,17 +15,17 @@ GTKINC = `pkg-config --cflags gtk+-3.0 webkit2gtk-4.0` + GTKLIB = `pkg-config --libs gtk+-3.0 webkit2gtk-4.0` + + # includes and libs +-INCS = -I. -I/usr/include -I${X11INC} ${GTKINC} +-LIBS = -L/usr/lib -lc -L${X11LIB} -lX11 ${GTKLIB} -lgthread-2.0 ++INCS = ${GTKINC} ++LIBS = -lc -lX11 ${GTKLIB} -lgthread-2.0 + + # flags + CPPFLAGS = -DVERSION=\"${VERSION}\" -DWEBEXTDIR=\"${LIBPREFIX}\" -D_DEFAULT_SOURCE + CFLAGS = -std=c99 -pedantic -Wall -Os ${INCS} ${CPPFLAGS} +-LDFLAGS = -s ${LIBS} ++LDFLAGS = ${LIBS} + + # Solaris + #CFLAGS = -fast ${INCS} -DVERSION=\"${VERSION}\" + #LDFLAGS = ${LIBS} + + # compiler and linker +-CC = cc ++CC ?= cc +-- +2.7.4 + diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/surf/surf_2.0.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/surf/surf_2.0.bb new file mode 100644 index 00000000..98973018 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/surf/surf_2.0.bb @@ -0,0 +1,25 @@ +SUMMARY = "Simple web browser" +DESCRIPTION = "Simple open source web browser based on WebKit2/GTK" +HOMEPAGE = "https://surf.suckless.org/" +SECTION = "x11/graphics" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://LICENSE;md5=b57e7f7720307a02d5a6598b00fe3afa" + +DEPENDS = "webkitgtk gtk+3 glib-2.0" + +REQUIRED_DISTRO_FEATURES = "x11 opengl" + +SRC_URI = "git://git.suckless.org/surf;branch=surf-webkit2 \ + file://0001-config.mk-Fix-compiler-and-linker.patch \ +" +SRCREV = "b814567e2bf8bda07cea8de1c7a062f4aa437b65" + +S = "${WORKDIR}/git" + +inherit pkgconfig features_check + +TARGET_CC_ARCH += "${LDFLAGS}" + +do_install () { + install -D -m 0755 ${S}/surf ${D}${bindir}/surf +} diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract-lang_4.0.0.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract-lang_4.0.0.bb new file mode 100644 index 00000000..75c2bc00 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract-lang_4.0.0.bb @@ -0,0 +1,26 @@ +SUMMARY = "tesseract-ocr language files" + +LICENSE = "Apache-2.0" +LIC_FILES_CHKSUM = "file://COPYING;md5=9648bd7af63bd3cc4f5ac046d12c49e4" + +SRCREV = "590567f20dc044f6948a8e2c61afc714c360ad0e" +SRC_URI = "git://github.com/tesseract-ocr/tessdata.git" + +S = "${WORKDIR}/git" + +inherit allarch + +do_install() { + install -d ${D}${datadir}/tessdata + cp -R --no-dereference --preserve=mode,links -v ${S}/*.traineddata ${D}${datadir}/tessdata +} + +python populate_packages_prepend () { + tessdata_dir= d.expand('${datadir}/tessdata') + pkgs = do_split_packages(d, tessdata_dir, '^([a-z_]*)\.*', '${BPN}-%s', 'tesseract-ocr language files for %s', extra_depends='') + pn = d.getVar('PN') + d.appendVar('RDEPENDS_' + pn, ' '+' '.join(pkgs)) +} + +PACKAGES_DYNAMIC += "^${BPN}-.*" +ALLOW_EMPTY_${PN} = "1" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract-lang_git.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract-lang_git.bb deleted file mode 100644 index ac36a91a..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract-lang_git.bb +++ /dev/null @@ -1,26 +0,0 @@ -SUMMARY = "tesseract-ocr language files" - -LICENSE = "Apache-2.0" -LIC_FILES_CHKSUM = "file://COPYING;md5=9648bd7af63bd3cc4f5ac046d12c49e4" - -PV = "3.04.00+git${SRCPV}" -SRCREV = "3cf1e2df1fe1d1da29295c9ef0983796c7958b7d" -SRC_URI = "git://github.com/tesseract-ocr/tessdata.git" -S = "${WORKDIR}/git" - -inherit allarch - -do_install() { - install -d ${D}${datadir}/tessdata - cp -R --no-dereference --preserve=mode,links -v ${S}/*.traineddata ${S}/*.cube.* ${S}/*.tesseract_cube.* ${D}${datadir}/tessdata -} - -python populate_packages_prepend () { - tessdata_dir= d.expand('${datadir}/tessdata') - pkgs = do_split_packages(d, tessdata_dir, '^([a-z_]*)\.*', '${BPN}-%s', 'tesseract-ocr language files for %s', extra_depends='') - pn = d.getVar('PN') - d.appendVar('RDEPENDS_' + pn, ' '+' '.join(pkgs)) -} - -PACKAGES_DYNAMIC += "^${BPN}-.*" -ALLOW_EMPTY_${PN} = "1" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/tigervnc/tigervnc_1.10.1.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/tigervnc/tigervnc_1.10.1.bb new file mode 100644 index 00000000..16937792 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/tigervnc/tigervnc_1.10.1.bb @@ -0,0 +1,130 @@ +DESCRIPTION = "TigerVNC remote display system" +HOMEPAGE = "http://www.tigervnc.com/" +LICENSE = "GPLv2+" +SECTION = "x11/utils" +DEPENDS = "xserver-xorg gnutls jpeg libxtst gettext-native fltk" +RDEPENDS_${PN} = "chkconfig coreutils hicolor-icon-theme perl" + +LIC_FILES_CHKSUM = "file://LICENCE.TXT;md5=75b02c2872421380bbd47781d2bd75d3" + +S = "${WORKDIR}/git" + +inherit features_check +REQUIRED_DISTRO_FEATURES = "x11" + +inherit autotools cmake +B = "${S}" + +SRCREV = "4739493b635372bd40a34640a719f79fa90e4dba" + +SRC_URI = "git://github.com/TigerVNC/tigervnc.git;branch=1.10-branch \ + file://0002-do-not-build-tests-sub-directory.patch \ + file://0003-add-missing-dynamic-library-to-FLTK_LIBRARIES.patch \ + file://0004-tigervnc-add-fPIC-option-to-COMPILE_FLAGS.patch \ +" + +# Keep sync with xorg-server in oe-core +XORG_PN ?= "xorg-server" +XORG_PV ?= "1.20.6" +SRC_URI += "${XORG_MIRROR}/individual/xserver/${XORG_PN}-${XORG_PV}.tar.bz2;name=xorg" +XORG_S = "${WORKDIR}/${XORG_PN}-${XORG_PV}" +SRC_URI[xorg.md5sum] = "a98170084f2c8fed480d2ff601f8a14b" +SRC_URI[xorg.sha256sum] = "6316146304e6e8a36d5904987ae2917b5d5b195dc9fc63d67f7aca137e5a51d1" + +# It is the directory containing the Xorg source for the +# machine on which you are building TigerVNC. +XSERVER_SOURCE_DIR="${S}/unix/xserver" + +do_patch[postfuncs] += "do_patch_xserver" +do_patch_xserver () { + for subdir in Xext xkb GL hw/xquartz/bundle hw/xfree86/common; do + install -d ${XSERVER_SOURCE_DIR}/$subdir + done + + for subdir in hw/dmx/doc man doc hw/dmx/doxygen; do + install -d ${XSERVER_SOURCE_DIR}/$subdir + done + + sources="hw/xquartz/bundle/cpprules.in man/Xserver.man doc/smartsched \ + hw/dmx/doxygen/doxygen.conf.in xserver.ent.in xkb/README.compiled \ + hw/xfree86/xorgconf.cpp hw/xfree86/Xorg.sh.in" + for i in ${sources}; do + install -m 0644 ${XORG_S}/$i ${XSERVER_SOURCE_DIR}/$i; + done + + cd ${XORG_S} + find . -type f | egrep '.*\.(c|h|am|ac|inc|m4|h.in|pc.in|man.pre|pl|txt)$' | \ + xargs tar cf - | (cd ${XSERVER_SOURCE_DIR} && tar xf -) + + cd ${XSERVER_SOURCE_DIR} + xserverpatch="${S}/unix/xserver120.patch" + echo "Apply $xserverpatch" + patch -p1 -b --suffix .vnc < $xserverpatch +} + +EXTRA_OECONF = "--disable-xorg --disable-xnest --disable-xvfb --disable-dmx \ + --disable-xwin --disable-xephyr --disable-kdrive --with-pic \ + --disable-static --disable-xinerama \ + --with-xkb-output=${localstatedir}/lib/xkb \ + --disable-glx --disable-dri --disable-dri2 \ + --disable-config-hal \ + --disable-config-udev \ + --without-dtrace \ + --disable-unit-tests \ + --disable-devel-docs \ + --disable-selective-werror \ + --disable-xshmfence \ + --disable-config-udev \ + --disable-dri3 \ + --disable-libunwind \ + --without-xmlto \ + --enable-systemd-logind=no \ + --disable-xinerama \ + --disable-xwayland \ +" + +do_configure_append () { + olddir=`pwd` + cd ${XSERVER_SOURCE_DIR} + + rm -rf aclocal-copy/ + rm -f aclocal.m4 + + export ACLOCALDIR="${XSERVER_SOURCE_DIR}/aclocal-copy" + mkdir -p ${ACLOCALDIR}/ + if [ -d ${STAGING_DATADIR_NATIVE}/aclocal ]; then + cp-noerror ${STAGING_DATADIR_NATIVE}/aclocal/ ${ACLOCALDIR}/ + fi + if [ -d ${STAGING_DATADIR}/aclocal -a "${STAGING_DATADIR_NATIVE}/aclocal" != "${STAGING_DATADIR}/aclocal" ]; then + cp-noerror ${STAGING_DATADIR}/aclocal/ ${ACLOCALDIR}/ + fi + ACLOCAL="aclocal --system-acdir=${ACLOCALDIR}/" autoreconf -Wcross --verbose --install --force ${EXTRA_AUTORECONF} $acpaths || bbfatal "autoreconf execution failed." + chmod +x ./configure + ${CACHED_CONFIGUREVARS} ./configure ${CONFIGUREOPTS} ${EXTRA_OECONF} + cd $olddir +} + +do_compile_append () { + olddir=`pwd` + cd ${XSERVER_SOURCE_DIR} + + oe_runmake + + cd $olddir +} + +do_install_append() { + olddir=`pwd` + cd ${XSERVER_SOURCE_DIR}/hw/vnc + + oe_runmake 'DESTDIR=${D}' install + + cd $olddir +} + +FILES_${PN} += " \ + ${libdir}/xorg/modules/extensions \ + ${datadir}/icons \ +" + +FILES_${PN}-dbg += "${libdir}/xorg/modules/extensions/.debug" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/tigervnc/tigervnc_1.9.0.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/tigervnc/tigervnc_1.9.0.bb deleted file mode 100644 index f3dc8997..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/tigervnc/tigervnc_1.9.0.bb +++ /dev/null @@ -1,131 +0,0 @@ -DESCRIPTION = "TigerVNC remote display system" -HOMEPAGE = "http://www.tigervnc.com/" -LICENSE = "GPLv2+" -SECTION = "x11/utils" -DEPENDS = "xserver-xorg gnutls jpeg libxtst gettext-native fltk" -RDEPENDS_${PN} = "chkconfig coreutils hicolor-icon-theme" - -LIC_FILES_CHKSUM = "file://LICENCE.TXT;md5=75b02c2872421380bbd47781d2bd75d3" - -S = "${WORKDIR}/git" - -inherit distro_features_check -REQUIRED_DISTRO_FEATURES = "x11" - -inherit autotools cmake -B = "${S}" - -SRCREV = "6f2301d08e64a965ad36b401ec8dc2b24bc47075" - -SRC_URI = "git://github.com/TigerVNC/tigervnc.git;branch=1.9-branch \ - file://0001-tigervnc-remove-includedir.patch \ - file://0002-do-not-build-tests-sub-directory.patch \ - file://0003-add-missing-dynamic-library-to-FLTK_LIBRARIES.patch \ - file://0004-tigervnc-add-fPIC-option-to-COMPILE_FLAGS.patch \ -" - -# Keep sync with xorg-server in oe-core -XORG_PN ?= "xorg-server" -XORG_PV ?= "1.19.6" -SRC_URI += "${XORG_MIRROR}/individual/xserver/${XORG_PN}-${XORG_PV}.tar.bz2;name=xorg" -XORG_S = "${WORKDIR}/${XORG_PN}-${XORG_PV}" -SRC_URI[xorg.md5sum] = "3e47777ff034a331aed2322b078694a8" -SRC_URI[xorg.sha256sum] = "a732502f1db000cf36a376cd0c010ffdbf32ecdd7f1fa08ba7f5bdf9601cc197" - -# It is the directory containing the Xorg source for the -# machine on which you are building TigerVNC. -XSERVER_SOURCE_DIR="${S}/unix/xserver" - -do_patch[postfuncs] += "do_patch_xserver" -do_patch_xserver () { - for subdir in Xext xkb GL hw/xquartz/bundle hw/xfree86/common; do - install -d ${XSERVER_SOURCE_DIR}/$subdir - done - - for subdir in hw/dmx/doc man doc hw/dmx/doxygen; do - install -d ${XSERVER_SOURCE_DIR}/$subdir - done - - sources="hw/xquartz/bundle/cpprules.in man/Xserver.man doc/smartsched \ - hw/dmx/doxygen/doxygen.conf.in xserver.ent.in xkb/README.compiled \ - hw/xfree86/xorgconf.cpp hw/xfree86/Xorg.sh.in" - for i in ${sources}; do - install -m 0644 ${XORG_S}/$i ${XSERVER_SOURCE_DIR}/$i; - done - - cd ${XORG_S} - find . -type f | egrep '.*\.(c|h|am|ac|inc|m4|h.in|pc.in|man.pre|pl|txt)$' | \ - xargs tar cf - | (cd ${XSERVER_SOURCE_DIR} && tar xf -) - - cd ${XSERVER_SOURCE_DIR} - xserverpatch="${S}/unix/xserver119.patch" - echo "Apply $xserverpatch" - patch -p1 -b --suffix .vnc < $xserverpatch -} - -EXTRA_OECONF = "--disable-xorg --disable-xnest --disable-xvfb --disable-dmx \ - --disable-xwin --disable-xephyr --disable-kdrive --with-pic \ - --disable-static --disable-xinerama \ - --with-xkb-output=${localstatedir}/lib/xkb \ - --disable-glx --disable-dri --disable-dri2 \ - --disable-config-hal \ - --disable-config-udev \ - --without-dtrace \ - --disable-unit-tests \ - --disable-devel-docs \ - --disable-selective-werror \ - --disable-xshmfence \ - --disable-config-udev \ - --disable-dri3 \ - --disable-libunwind \ - --without-xmlto \ - --enable-systemd-logind=no \ - --disable-xinerama \ - --disable-xwayland \ -" - -do_configure_append () { - olddir=`pwd` - cd ${XSERVER_SOURCE_DIR} - - rm -rf aclocal-copy/ - rm -f aclocal.m4 - - export ACLOCALDIR="${XSERVER_SOURCE_DIR}/aclocal-copy" - mkdir -p ${ACLOCALDIR}/ - if [ -d ${STAGING_DATADIR_NATIVE}/aclocal ]; then - cp-noerror ${STAGING_DATADIR_NATIVE}/aclocal/ ${ACLOCALDIR}/ - fi - if [ -d ${STAGING_DATADIR}/aclocal -a "${STAGING_DATADIR_NATIVE}/aclocal" != "${STAGING_DATADIR}/aclocal" ]; then - cp-noerror ${STAGING_DATADIR}/aclocal/ ${ACLOCALDIR}/ - fi - ACLOCAL="aclocal --system-acdir=${ACLOCALDIR}/" autoreconf -Wcross --verbose --install --force ${EXTRA_AUTORECONF} $acpaths || bbfatal "autoreconf execution failed." - chmod +x ./configure - ${CACHED_CONFIGUREVARS} ./configure ${CONFIGUREOPTS} ${EXTRA_OECONF} - cd $olddir -} - -do_compile_append () { - olddir=`pwd` - cd ${XSERVER_SOURCE_DIR} - - oe_runmake - - cd $olddir -} - -do_install_append() { - olddir=`pwd` - cd ${XSERVER_SOURCE_DIR}/hw/vnc - - oe_runmake 'DESTDIR=${D}' install - - cd $olddir -} - -FILES_${PN} += " \ - ${libdir}/xorg/modules/extensions \ - ${datadir}/icons \ -" - -FILES_${PN}-dbg += "${libdir}/xorg/modules/extensions/.debug" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/tslib/tslib/0001-Fix-build-on-32bit-arches-with-64bit-time_t.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/tslib/tslib/0001-Fix-build-on-32bit-arches-with-64bit-time_t.patch new file mode 100644 index 00000000..59bd97a0 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/tslib/tslib/0001-Fix-build-on-32bit-arches-with-64bit-time_t.patch @@ -0,0 +1,389 @@ +From 5455055660700be18eb8800e56e2423031ed4c76 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Sat, 30 Nov 2019 19:59:29 -0800 +Subject: [PATCH] Fix build on 32bit arches with 64bit time_t + +time element is deprecated on new input_event structure in kernel's +input.h [1] + +[1] https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit?id=152194fe9c3f + +Upstream-Status: Submitted [https://github.com/libts/tslib/pull/162] + +Signed-off-by: Khem Raj +--- + plugins/input-raw.c | 59 +++++++++++++++++++++++++++------------- + tools/ts_uinput.c | 66 ++++++++++++++++++++++++++++++--------------- + 2 files changed, 85 insertions(+), 40 deletions(-) + +diff --git a/plugins/input-raw.c b/plugins/input-raw.c +index 64f0156..f030836 100644 +--- a/plugins/input-raw.c ++++ b/plugins/input-raw.c +@@ -40,6 +40,11 @@ + # include + #endif + ++#ifndef input_event_sec ++#define input_event_sec time.tv_sec ++#define input_event_usec time.tv_usec ++#endif ++ + #ifndef EV_SYN /* 2.4 kernel headers */ + # define EV_SYN 0x00 + #endif +@@ -384,7 +389,8 @@ static int ts_input_read(struct tslib_module_info *inf, + samp->y = i->current_y; + samp->pressure = i->current_p; + } +- samp->tv = ev.time; ++ samp->tv.tv_sec = ev.input_event_sec; ++ samp->tv.tv_usec = ev.input_event_usec; + #ifdef DEBUG + fprintf(stderr, + "RAW---------------------> %d %d %d %ld.%ld\n", +@@ -519,7 +525,8 @@ static int ts_input_read(struct tslib_module_info *inf, + samp->pressure = i->current_p = ev.value; + break; + } +- samp->tv = ev.time; ++ samp->tv.tv_sec = ev.input_event_sec; ++ samp->tv.tv_usec = ev.input_event_usec; + #ifdef DEBUG + fprintf(stderr, + "RAW---------------------------> %d %d %d\n", +@@ -536,7 +543,8 @@ static int ts_input_read(struct tslib_module_info *inf, + samp->x = 0; + samp->y = 0; + samp->pressure = 0; +- samp->tv = ev.time; ++ samp->tv.tv_sec = ev.input_event_sec; ++ samp->tv.tv_usec = ev.input_event_usec; + samp++; + total++; + } +@@ -651,7 +659,8 @@ static int ts_input_read_mt(struct tslib_module_info *inf, + switch (i->ev[it].code) { + case BTN_TOUCH: + i->buf[total][i->slot].pen_down = i->ev[it].value; +- i->buf[total][i->slot].tv = i->ev[it].time; ++ i->buf[total][i->slot].tv.tv_sec = i->ev[it].input_event_sec; ++ i->buf[total][i->slot].tv.tv_usec = i->ev[it].input_event_usec; + i->buf[total][i->slot].valid |= TSLIB_MT_VALID; + if (i->ev[it].value == 0) + pen_up = 1; +@@ -751,7 +760,8 @@ static int ts_input_read_mt(struct tslib_module_info *inf, + // fall through + case ABS_MT_POSITION_X: + i->buf[total][i->slot].x = i->ev[it].value; +- i->buf[total][i->slot].tv = i->ev[it].time; ++ i->buf[total][i->slot].tv.tv_sec = i->ev[it].input_event_sec; ++ i->buf[total][i->slot].tv.tv_usec = i->ev[it].input_event_usec; + i->buf[total][i->slot].valid |= TSLIB_MT_VALID; + break; + case ABS_Y: +@@ -760,7 +770,8 @@ static int ts_input_read_mt(struct tslib_module_info *inf, + // fall through + case ABS_MT_POSITION_Y: + i->buf[total][i->slot].y = i->ev[it].value; +- i->buf[total][i->slot].tv = i->ev[it].time; ++ i->buf[total][i->slot].tv.tv_sec = i->ev[it].input_event_sec; ++ i->buf[total][i->slot].tv.tv_usec = i->ev[it].input_event_usec; + i->buf[total][i->slot].valid |= TSLIB_MT_VALID; + break; + case ABS_PRESSURE: +@@ -769,12 +780,14 @@ static int ts_input_read_mt(struct tslib_module_info *inf, + // fall through + case ABS_MT_PRESSURE: + i->buf[total][i->slot].pressure = i->ev[it].value; +- i->buf[total][i->slot].tv = i->ev[it].time; ++ i->buf[total][i->slot].tv.tv_sec = i->ev[it].input_event_sec; ++ i->buf[total][i->slot].tv.tv_usec = i->ev[it].input_event_usec; + i->buf[total][i->slot].valid |= TSLIB_MT_VALID; + break; + case ABS_MT_TOOL_X: + i->buf[total][i->slot].tool_x = i->ev[it].value; +- i->buf[total][i->slot].tv = i->ev[it].time; ++ i->buf[total][i->slot].tv.tv_sec = i->ev[it].input_event_sec; ++ i->buf[total][i->slot].tv.tv_usec = i->ev[it].input_event_usec; + i->buf[total][i->slot].valid |= TSLIB_MT_VALID; + /* for future use + * i->buf[total][i->slot].valid |= TSLIB_MT_VALID_TOOL; +@@ -782,7 +795,8 @@ static int ts_input_read_mt(struct tslib_module_info *inf, + break; + case ABS_MT_TOOL_Y: + i->buf[total][i->slot].tool_y = i->ev[it].value; +- i->buf[total][i->slot].tv = i->ev[it].time; ++ i->buf[total][i->slot].tv.tv_sec = i->ev[it].input_event_sec; ++ i->buf[total][i->slot].tv.tv_usec = i->ev[it].input_event_usec; + i->buf[total][i->slot].valid |= TSLIB_MT_VALID; + /* for future use + * i->buf[total][i->slot].valid |= TSLIB_MT_VALID_TOOL; +@@ -790,7 +804,8 @@ static int ts_input_read_mt(struct tslib_module_info *inf, + break; + case ABS_MT_TOOL_TYPE: + i->buf[total][i->slot].tool_type = i->ev[it].value; +- i->buf[total][i->slot].tv = i->ev[it].time; ++ i->buf[total][i->slot].tv.tv_sec = i->ev[it].input_event_sec; ++ i->buf[total][i->slot].tv.tv_usec = i->ev[it].input_event_usec; + i->buf[total][i->slot].valid |= TSLIB_MT_VALID; + /* for future use + * i->buf[total][i->slot].valid |= TSLIB_MT_VALID_TOOL; +@@ -798,12 +813,14 @@ static int ts_input_read_mt(struct tslib_module_info *inf, + break; + case ABS_MT_ORIENTATION: + i->buf[total][i->slot].orientation = i->ev[it].value; +- i->buf[total][i->slot].tv = i->ev[it].time; ++ i->buf[total][i->slot].tv.tv_sec = i->ev[it].input_event_sec; ++ i->buf[total][i->slot].tv.tv_usec = i->ev[it].input_event_usec; + i->buf[total][i->slot].valid |= TSLIB_MT_VALID; + break; + case ABS_MT_DISTANCE: + i->buf[total][i->slot].distance = i->ev[it].value; +- i->buf[total][i->slot].tv = i->ev[it].time; ++ i->buf[total][i->slot].tv.tv_sec = i->ev[it].input_event_sec; ++ i->buf[total][i->slot].tv.tv_usec = i->ev[it].input_event_usec; + i->buf[total][i->slot].valid |= TSLIB_MT_VALID; + + if (i->special_device == EGALAX_VERSION_210) { +@@ -816,34 +833,40 @@ static int ts_input_read_mt(struct tslib_module_info *inf, + break; + case ABS_MT_BLOB_ID: + i->buf[total][i->slot].blob_id = i->ev[it].value; +- i->buf[total][i->slot].tv = i->ev[it].time; ++ i->buf[total][i->slot].tv.tv_sec = i->ev[it].input_event_sec; ++ i->buf[total][i->slot].tv.tv_usec = i->ev[it].input_event_usec; + i->buf[total][i->slot].valid |= TSLIB_MT_VALID; + break; + case ABS_MT_TOUCH_MAJOR: + i->buf[total][i->slot].touch_major = i->ev[it].value; +- i->buf[total][i->slot].tv = i->ev[it].time; ++ i->buf[total][i->slot].tv.tv_sec = i->ev[it].input_event_sec; ++ i->buf[total][i->slot].tv.tv_usec = i->ev[it].input_event_usec; + i->buf[total][i->slot].valid |= TSLIB_MT_VALID; + if (i->ev[it].value == 0) + i->buf[total][i->slot].pressure = 0; + break; + case ABS_MT_WIDTH_MAJOR: + i->buf[total][i->slot].width_major = i->ev[it].value; +- i->buf[total][i->slot].tv = i->ev[it].time; ++ i->buf[total][i->slot].tv.tv_sec = i->ev[it].input_event_sec; ++ i->buf[total][i->slot].tv.tv_usec = i->ev[it].input_event_usec; + i->buf[total][i->slot].valid |= TSLIB_MT_VALID; + break; + case ABS_MT_TOUCH_MINOR: + i->buf[total][i->slot].touch_minor = i->ev[it].value; +- i->buf[total][i->slot].tv = i->ev[it].time; ++ i->buf[total][i->slot].tv.tv_sec = i->ev[it].input_event_sec; ++ i->buf[total][i->slot].tv.tv_usec = i->ev[it].input_event_usec; + i->buf[total][i->slot].valid |= TSLIB_MT_VALID; + break; + case ABS_MT_WIDTH_MINOR: + i->buf[total][i->slot].width_minor = i->ev[it].value; +- i->buf[total][i->slot].tv = i->ev[it].time; ++ i->buf[total][i->slot].tv.tv_sec = i->ev[it].input_event_sec; ++ i->buf[total][i->slot].tv.tv_usec = i->ev[it].input_event_usec; + i->buf[total][i->slot].valid |= TSLIB_MT_VALID; + break; + case ABS_MT_TRACKING_ID: + i->buf[total][i->slot].tracking_id = i->ev[it].value; +- i->buf[total][i->slot].tv = i->ev[it].time; ++ i->buf[total][i->slot].tv.tv_sec = i->ev[it].input_event_sec; ++ i->buf[total][i->slot].tv.tv_usec = i->ev[it].input_event_usec; + i->buf[total][i->slot].valid |= TSLIB_MT_VALID; + if (i->ev[it].value == -1) + i->buf[total][i->slot].pressure = 0; +diff --git a/tools/ts_uinput.c b/tools/ts_uinput.c +index 6ca4c3d..1832a07 100644 +--- a/tools/ts_uinput.c ++++ b/tools/ts_uinput.c +@@ -170,14 +170,16 @@ static int send_touch_events(struct data_t *data, struct ts_sample_mt **s, + continue; + + if (s[j][i].pen_down == 1) { +- data->ev[c].time = s[j][i].tv; ++ data->ev[c].input_event_sec = s[j][i].tv.tv_sec; ++ data->ev[c].input_event_usec = s[j][i].tv.tv_usec; + data->ev[c].type = EV_KEY; + data->ev[c].code = BTN_TOUCH; + data->ev[c].value = s[j][i].pen_down; + c++; + } + +- data->ev[c].time = s[j][i].tv; ++ data->ev[c].input_event_sec = s[j][i].tv.tv_sec; ++ data->ev[c].input_event_usec = s[j][i].tv.tv_usec; + data->ev[c].type = EV_ABS; + data->ev[c].code = ABS_MT_SLOT; + data->ev[c].value = s[j][i].slot; +@@ -190,111 +192,129 @@ static int send_touch_events(struct data_t *data, struct ts_sample_mt **s, + * we should use slot 1 and so on. + */ + if (i == 0) { +- data->ev[c].time = s[j][i].tv; ++ data->ev[c].input_event_sec = s[j][i].tv.tv_sec; ++ data->ev[c].input_event_usec = s[j][i].tv.tv_usec; + data->ev[c].type = EV_ABS; + data->ev[c].code = ABS_X; + data->ev[c].value = s[j][i].x; + c++; + +- data->ev[c].time = s[j][i].tv; ++ data->ev[c].input_event_sec = s[j][i].tv.tv_sec; ++ data->ev[c].input_event_usec = s[j][i].tv.tv_usec; + data->ev[c].type = EV_ABS; + data->ev[c].code = ABS_Y; + data->ev[c].value = s[j][i].y; + c++; + +- data->ev[c].time = s[j][i].tv; ++ data->ev[c].input_event_sec = s[j][i].tv.tv_sec; ++ data->ev[c].input_event_usec = s[j][i].tv.tv_usec; + data->ev[c].type = EV_ABS; + data->ev[c].code = ABS_PRESSURE; + data->ev[c].value = s[j][i].pressure; + c++; + } + +- data->ev[c].time = s[j][i].tv; ++ data->ev[c].input_event_sec = s[j][i].tv.tv_sec; ++ data->ev[c].input_event_usec = s[j][i].tv.tv_usec; + data->ev[c].type = EV_ABS; + data->ev[c].code = ABS_MT_POSITION_X; + data->ev[c].value = s[j][i].x; + c++; + +- data->ev[c].time = s[j][i].tv; ++ data->ev[c].input_event_sec = s[j][i].tv.tv_sec; ++ data->ev[c].input_event_usec = s[j][i].tv.tv_usec; + data->ev[c].type = EV_ABS; + data->ev[c].code = ABS_MT_POSITION_Y; + data->ev[c].value = s[j][i].y; + c++; + +- data->ev[c].time = s[j][i].tv; ++ data->ev[c].input_event_sec = s[j][i].tv.tv_sec; ++ data->ev[c].input_event_usec = s[j][i].tv.tv_usec; + data->ev[c].type = EV_ABS; + data->ev[c].code = ABS_MT_PRESSURE; + data->ev[c].value = s[j][i].pressure; + c++; + +- data->ev[c].time = s[j][i].tv; ++ data->ev[c].input_event_sec = s[j][i].tv.tv_sec; ++ data->ev[c].input_event_usec = s[j][i].tv.tv_usec; + data->ev[c].type = EV_ABS; + data->ev[c].code = ABS_MT_TOUCH_MAJOR; + data->ev[c].value = s[j][i].touch_major; + c++; + +- data->ev[c].time = s[j][i].tv; ++ data->ev[c].input_event_sec = s[j][i].tv.tv_sec; ++ data->ev[c].input_event_usec = s[j][i].tv.tv_usec; + data->ev[c].type = EV_ABS; + data->ev[c].code = ABS_MT_WIDTH_MAJOR; + data->ev[c].value = s[j][i].width_major; + c++; + +- data->ev[c].time = s[j][i].tv; ++ data->ev[c].input_event_sec = s[j][i].tv.tv_sec; ++ data->ev[c].input_event_usec = s[j][i].tv.tv_usec; + data->ev[c].type = EV_ABS; + data->ev[c].code = ABS_MT_TOUCH_MINOR; + data->ev[c].value = s[j][i].touch_minor; + c++; + +- data->ev[c].time = s[j][i].tv; ++ data->ev[c].input_event_sec = s[j][i].tv.tv_sec; ++ data->ev[c].input_event_usec = s[j][i].tv.tv_usec; + data->ev[c].type = EV_ABS; + data->ev[c].code = ABS_MT_WIDTH_MINOR; + data->ev[c].value = s[j][i].width_minor; + c++; + +- data->ev[c].time = s[j][i].tv; ++ data->ev[c].input_event_sec = s[j][i].tv.tv_sec; ++ data->ev[c].input_event_usec = s[j][i].tv.tv_usec; + data->ev[c].type = EV_ABS; + data->ev[c].code = ABS_MT_TOOL_TYPE; + data->ev[c].value = s[j][i].tool_type; + c++; + +- data->ev[c].time = s[j][i].tv; ++ data->ev[c].input_event_sec = s[j][i].tv.tv_sec; ++ data->ev[c].input_event_usec = s[j][i].tv.tv_usec; + data->ev[c].type = EV_ABS; + data->ev[c].code = ABS_MT_TOOL_X; + data->ev[c].value = s[j][i].tool_x; + c++; + +- data->ev[c].time = s[j][i].tv; ++ data->ev[c].input_event_sec = s[j][i].tv.tv_sec; ++ data->ev[c].input_event_usec = s[j][i].tv.tv_usec; + data->ev[c].type = EV_ABS; + data->ev[c].code = ABS_MT_TOOL_Y; + data->ev[c].value = s[j][i].tool_y; + c++; + +- data->ev[c].time = s[j][i].tv; ++ data->ev[c].input_event_sec = s[j][i].tv.tv_sec; ++ data->ev[c].input_event_usec = s[j][i].tv.tv_usec; + data->ev[c].type = EV_ABS; + data->ev[c].code = ABS_MT_ORIENTATION; + data->ev[c].value = s[j][i].orientation; + c++; + +- data->ev[c].time = s[j][i].tv; ++ data->ev[c].input_event_sec = s[j][i].tv.tv_sec; ++ data->ev[c].input_event_usec = s[j][i].tv.tv_usec; + data->ev[c].type = EV_ABS; + data->ev[c].code = ABS_MT_DISTANCE; + data->ev[c].value = s[j][i].distance; + c++; + +- data->ev[c].time = s[j][i].tv; ++ data->ev[c].input_event_sec = s[j][i].tv.tv_sec; ++ data->ev[c].input_event_usec = s[j][i].tv.tv_usec; + data->ev[c].type = EV_ABS; + data->ev[c].code = ABS_MT_BLOB_ID; + data->ev[c].value = s[j][i].blob_id; + c++; + +- data->ev[c].time = s[j][i].tv; ++ data->ev[c].input_event_sec = s[j][i].tv.tv_sec; ++ data->ev[c].input_event_usec = s[j][i].tv.tv_usec; + data->ev[c].type = EV_ABS; + data->ev[c].code = ABS_MT_TRACKING_ID; + data->ev[c].value = s[j][i].tracking_id; + c++; + + if (data->mt_type_a == 1) { +- data->ev[c].time = s[j][i].tv; ++ data->ev[c].input_event_sec = s[j][i].tv.tv_sec; ++ data->ev[c].input_event_usec = s[j][i].tv.tv_usec; + data->ev[c].type = EV_SYN; + data->ev[c].code = SYN_MT_REPORT; + data->ev[c].value = 0; +@@ -302,7 +322,8 @@ static int send_touch_events(struct data_t *data, struct ts_sample_mt **s, + } + + if (s[j][i].pen_down == 0) { +- data->ev[c].time = s[j][i].tv; ++ data->ev[c].input_event_sec = s[j][i].tv.tv_sec; ++ data->ev[c].input_event_usec = s[j][i].tv.tv_usec; + data->ev[c].type = EV_KEY; + data->ev[c].code = BTN_TOUCH; + data->ev[c].value = s[j][i].pen_down; +@@ -312,7 +333,8 @@ static int send_touch_events(struct data_t *data, struct ts_sample_mt **s, + } + + if (c > 0) { +- data->ev[c].time = s[j][i].tv; ++ data->ev[c].input_event_sec = s[j][i].tv.tv_sec; ++ data->ev[c].input_event_usec = s[j][i].tv.tv_usec; + data->ev[c].type = EV_SYN; + data->ev[c].code = SYN_REPORT; + data->ev[c].value = 0; +-- +2.24.0 + diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/tslib/tslib_1.16.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/tslib/tslib_1.16.bb deleted file mode 100644 index 8d23bd5e..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/tslib/tslib_1.16.bb +++ /dev/null @@ -1,82 +0,0 @@ -SUMMARY = "An abstraction layer for touchscreen panel events" -DESCRIPTION = "Tslib is an abstraction layer for touchscreen panel \ -events, as well as a filter stack for the manipulation of those events. \ -Tslib is generally used on embedded devices to provide a common user \ -space interface to touchscreen functionality." -HOMEPAGE = "http://tslib.org/" - -AUTHOR = "Martin Kepplinger " -SECTION = "base" -LICENSE = "LGPLv2+ & GPLv2+" -LIC_FILES_CHKSUM = "\ - file://COPYING;md5=fc178bcd425090939a8b634d1d6a9594 \ - file://tests/COPYING;md5=a23a74b3f4caf9616230789d94217acb \ -" - -SRC_URI = "https://github.com/kergoth/tslib/releases/download/${PV}/tslib-${PV}.tar.xz;downloadfilename=tslib-${PV}.tar.xz \ - file://ts.conf \ - file://tslib.sh \ -" -SRC_URI[md5sum] = "254a022fc8aa89d164840fe8869c2441" -SRC_URI[sha256sum] = "c9a54651337a701a66b074c603c313225579995a7910e519bbc7b1dcdab9a755" - -UPSTREAM_CHECK_URI = "https://github.com/kergoth/tslib/releases" - -inherit autotools pkgconfig - -PACKAGECONFIG ??= "debounce dejitter iir linear median pthres skip lowpass invert variance input touchkit waveshare" -PACKAGECONFIG[debounce] = "--enable-debounce,--disable-debounce" -PACKAGECONFIG[dejitter] = "--enable-dejitter,--disable-dejitter" -PACKAGECONFIG[iir] = "--enable-iir,--disable-iir" -PACKAGECONFIG[linear] = "--enable-linear,--disable-linear" -PACKAGECONFIG[median] = "--enable-median,--disable-median" -PACKAGECONFIG[pthres] = "--enable-pthres,--disable-pthres" -PACKAGECONFIG[skip] = "--enable-skip,--disable-skip" -PACKAGECONFIG[lowpass] = "--enable-lowpass,--disable-lowpass" -PACKAGECONFIG[invert] = "--enable-invert,--disable-invert" -PACKAGECONFIG[variance] = "--enable-variance,--disable-variance" -PACKAGECONFIG[input] = "--enable-input,--disable-input" -PACKAGECONFIG[tatung] = "--enable-tatung,--disable-tatung" -PACKAGECONFIG[touchkit] = "--enable-touchkit,--disable-touchkit" -PACKAGECONFIG[waveshare] = "--enable-waveshare,--disable-waveshare" -PACKAGECONFIG[ucb1x00] = "--enable-ucb1x00,--disable-ucb1x00" -PACKAGECONFIG[mk712] = "--enable-mk712,--disable-mk712" -PACKAGECONFIG[h3600] = "--enable-h3600,--disable-h3600" -PACKAGECONFIG[dmc] = "--enable-dmc,--disable-dmc" -PACKAGECONFIG[linear-h2200] = "--enable-linear-h2200,--disable-linear-h2200" -PACKAGECONFIG[corgi] = "--enable-corgi,--disable-corgi" -PACKAGECONFIG[collie] = "--enable-collie,--disable-collie" -PACKAGECONFIG[arctic2] = "--enable-arctic2,--disable-arctic2" -PACKAGECONFIG[dmc_dus3000] = "--enable-dmc_dus3000,--disable-dmc_dus3000" -PACKAGECONFIG[cy8mrln-palmpre] = "--enable-cy8mrln-palmpre,--disable-cy8mrln-palmpre" -PACKAGECONFIG[galax] = "--enable-galax,--disable-galax" -PACKAGECONFIG[debug] = "--enable-debug,--disable-debug" - -do_install_prepend() { - install -m 0644 ${WORKDIR}/ts.conf ${S}/etc/ts.conf -} - -do_install_append() { - install -d ${D}${sysconfdir}/profile.d/ - install -m 0755 ${WORKDIR}/tslib.sh ${D}${sysconfdir}/profile.d/ -} - -RPROVIDES_tslib-conf = "libts-0.0-conf" - -PACKAGES =+ "tslib-conf tslib-tests tslib-calibrate tslib-uinput" -DEBIAN_NOAUTONAME_tslib-conf = "1" -DEBIAN_NOAUTONAME_tslib-tests = "1" -DEBIAN_NOAUTONAME_tslib-calibrate = "1" -DEBIAN_NOAUTONAME_tslib-uinput = "1" - -RDEPENDS_${PN} = "tslib-conf" -RRECOMMENDS_${PN} = "pointercal" - -FILES_${PN}-dev += "${libdir}/ts/*.la" -FILES_tslib-conf = "${sysconfdir}/ts.conf ${sysconfdir}/profile.d/tslib.sh ${datadir}/tslib" -FILES_${PN} = "${libdir}/*.so.* ${libdir}/ts/*.so*" -FILES_tslib-calibrate += "${bindir}/ts_calibrate" -FILES_tslib-uinput += "${bindir}/ts_uinput" - -FILES_tslib-tests = "${bindir}/ts_harvest ${bindir}/ts_print ${bindir}/ts_print_raw ${bindir}/ts_print_mt \ - ${bindir}/ts_test ${bindir}/ts_test_mt ${bindir}/ts_verify ${bindir}/ts_finddev" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/tslib/tslib_1.21.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/tslib/tslib_1.21.bb new file mode 100644 index 00000000..bb28ee41 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/tslib/tslib_1.21.bb @@ -0,0 +1,83 @@ +SUMMARY = "An abstraction layer for touchscreen panel events" +DESCRIPTION = "Tslib is an abstraction layer for touchscreen panel \ +events, as well as a filter stack for the manipulation of those events. \ +Tslib is generally used on embedded devices to provide a common user \ +space interface to touchscreen functionality." +HOMEPAGE = "http://tslib.org/" + +AUTHOR = "Martin Kepplinger " +SECTION = "base" +LICENSE = "LGPLv2+ & GPLv2+" +LIC_FILES_CHKSUM = "\ + file://COPYING;md5=fc178bcd425090939a8b634d1d6a9594 \ + file://tests/COPYING;md5=a23a74b3f4caf9616230789d94217acb \ +" + +SRC_URI = "https://github.com/kergoth/tslib/releases/download/${PV}/tslib-${PV}.tar.xz;downloadfilename=tslib-${PV}.tar.xz \ + file://0001-Fix-build-on-32bit-arches-with-64bit-time_t.patch \ + file://ts.conf \ + file://tslib.sh \ +" +SRC_URI[md5sum] = "b2b20d3ed520128513f8d3135b42e142" +SRC_URI[sha256sum] = "d2a57b823ea59e53a3b130eef05dfed1190b857854f886eec764e1ca1957cf56" + +UPSTREAM_CHECK_URI = "https://github.com/kergoth/tslib/releases" + +inherit autotools pkgconfig + +PACKAGECONFIG ??= "debounce dejitter iir linear median pthres skip lowpass invert variance input touchkit waveshare" +PACKAGECONFIG[debounce] = "--enable-debounce,--disable-debounce" +PACKAGECONFIG[dejitter] = "--enable-dejitter,--disable-dejitter" +PACKAGECONFIG[iir] = "--enable-iir,--disable-iir" +PACKAGECONFIG[linear] = "--enable-linear,--disable-linear" +PACKAGECONFIG[median] = "--enable-median,--disable-median" +PACKAGECONFIG[pthres] = "--enable-pthres,--disable-pthres" +PACKAGECONFIG[skip] = "--enable-skip,--disable-skip" +PACKAGECONFIG[lowpass] = "--enable-lowpass,--disable-lowpass" +PACKAGECONFIG[invert] = "--enable-invert,--disable-invert" +PACKAGECONFIG[variance] = "--enable-variance,--disable-variance" +PACKAGECONFIG[input] = "--enable-input,--disable-input" +PACKAGECONFIG[tatung] = "--enable-tatung,--disable-tatung" +PACKAGECONFIG[touchkit] = "--enable-touchkit,--disable-touchkit" +PACKAGECONFIG[waveshare] = "--enable-waveshare,--disable-waveshare" +PACKAGECONFIG[ucb1x00] = "--enable-ucb1x00,--disable-ucb1x00" +PACKAGECONFIG[mk712] = "--enable-mk712,--disable-mk712" +PACKAGECONFIG[h3600] = "--enable-h3600,--disable-h3600" +PACKAGECONFIG[dmc] = "--enable-dmc,--disable-dmc" +PACKAGECONFIG[linear-h2200] = "--enable-linear-h2200,--disable-linear-h2200" +PACKAGECONFIG[corgi] = "--enable-corgi,--disable-corgi" +PACKAGECONFIG[collie] = "--enable-collie,--disable-collie" +PACKAGECONFIG[arctic2] = "--enable-arctic2,--disable-arctic2" +PACKAGECONFIG[dmc_dus3000] = "--enable-dmc_dus3000,--disable-dmc_dus3000" +PACKAGECONFIG[cy8mrln-palmpre] = "--enable-cy8mrln-palmpre,--disable-cy8mrln-palmpre" +PACKAGECONFIG[galax] = "--enable-galax,--disable-galax" +PACKAGECONFIG[debug] = "--enable-debug,--disable-debug" + +do_install_prepend() { + install -m 0644 ${WORKDIR}/ts.conf ${S}/etc/ts.conf +} + +do_install_append() { + install -d ${D}${sysconfdir}/profile.d/ + install -m 0755 ${WORKDIR}/tslib.sh ${D}${sysconfdir}/profile.d/ +} + +RPROVIDES_tslib-conf = "libts-0.0-conf" + +PACKAGES =+ "tslib-conf tslib-tests tslib-calibrate tslib-uinput" +DEBIAN_NOAUTONAME_tslib-conf = "1" +DEBIAN_NOAUTONAME_tslib-tests = "1" +DEBIAN_NOAUTONAME_tslib-calibrate = "1" +DEBIAN_NOAUTONAME_tslib-uinput = "1" + +RDEPENDS_${PN} = "tslib-conf" +RRECOMMENDS_${PN} = "pointercal" + +FILES_${PN}-dev += "${libdir}/ts/*.la" +FILES_tslib-conf = "${sysconfdir}/ts.conf ${sysconfdir}/profile.d/tslib.sh ${datadir}/tslib" +FILES_${PN} = "${libdir}/*.so.* ${libdir}/ts/*.so*" +FILES_tslib-calibrate += "${bindir}/ts_calibrate" +FILES_tslib-uinput += "${bindir}/ts_uinput" + +FILES_tslib-tests = "${bindir}/ts_harvest ${bindir}/ts_print ${bindir}/ts_print_raw ${bindir}/ts_print_mt \ + ${bindir}/ts_test ${bindir}/ts_test_mt ${bindir}/ts_verify ${bindir}/ts_finddev ${bindir}/ts_conf" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/ttf-fonts/ttf-gentium_1.02.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/ttf-fonts/ttf-gentium_1.02.bb index 6a6258ad..e030bd19 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/ttf-fonts/ttf-gentium_1.02.bb +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/ttf-fonts/ttf-gentium_1.02.bb @@ -2,7 +2,7 @@ require ttf.inc SUMMARY = "Gentium fonts - TTF Version" HOMEPAGE = "http://scripts.sil.org/gentium" -LICENSE = "OFL" +LICENSE = "OFL-1.0" LICENSE_URL = "http://scripts.sil.org/cms/scripts/page.php?site_id=nrsi&item_id=OFL" LIC_FILES_CHKSUM = "file://OFL;md5=33a5bf7b98a9c0ae87430760ba762295 \ " diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/ttf-fonts/ttf-hunkyfonts_0.3.0.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/ttf-fonts/ttf-hunkyfonts_0.3.0.bb index 5cd9935d..bd552c08 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/ttf-fonts/ttf-hunkyfonts_0.3.0.bb +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/ttf-fonts/ttf-hunkyfonts_0.3.0.bb @@ -2,7 +2,7 @@ require ttf.inc SUMMARY = "Hunky fonts - TTF Version" HOMEPAGE = "http://sourceforge.net/projects/hunkyfonts" -LICENSE = "LGPL" +LICENSE = "LGPL-2.1+" LIC_FILES_CHKSUM = "file://../LICENSE;md5=7fbc338309ac38fefcd64b04bb903e34" PR = "r7" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/ttf-fonts/ttf-roboto_2.138.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/ttf-fonts/ttf-roboto_2.138.bb new file mode 100644 index 00000000..521caff7 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/ttf-fonts/ttf-roboto_2.138.bb @@ -0,0 +1,14 @@ +require ttf.inc + +SUMMARY = "Roboto fonts" +HOMEPAGE = "https://fonts.google.com/specimen/Roboto" +LICENSE = "Apache-2.0" +LIC_FILES_CHKSUM = "file://LICENSE;md5=86d3f3a95c324c9479bd8986968f4327" + +SRC_URI = "https://github.com/google/roboto/releases/download/v${PV}/roboto-android.zip" +SRC_URI[md5sum] = "3b43a5cb33196ec25e44d5fcb40219e1" +SRC_URI[sha256sum] = "c825453253f590cfe62557733e7173f9a421fff103b00f57d33c4ad28ae53baf" + +S = "${WORKDIR}" + +FILES_${PN} = "${datadir}/fonts/truetype/*.ttf" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/unclutter-xfixes/unclutter-xfixes/0001-build-use-autotools.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/unclutter-xfixes/unclutter-xfixes/0001-build-use-autotools.patch new file mode 100644 index 00000000..25771168 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/unclutter-xfixes/unclutter-xfixes/0001-build-use-autotools.patch @@ -0,0 +1,238 @@ +From 2a5cf5021b56bc92c9953d2c82e8c90502d22c97 Mon Sep 17 00:00:00 2001 +From: Bartosz Golaszewski +Date: Fri, 13 Sep 2019 10:20:53 +0200 +Subject: [PATCH] build: use autotools + +This removes the hand-crafted Makefile in favor of standardized autotools +build configuration. This is done to allow for easy cross-compilation of +this project. + +Upstream-Status: Submitted + +Signed-off-by: Bartosz Golaszewski +--- + .gitignore | 17 ++++++++++++ + Makefile | 66 --------------------------------------------- + Makefile.am | 10 +++++++ + configure.ac | 36 +++++++++++++++++++++++++ + include/Makefile.am | 9 +++++++ + man/Makefile.am | 7 +++++ + obj/.gitkeep | 0 + src/Makefile.am | 13 +++++++++ + 8 files changed, 92 insertions(+), 66 deletions(-) + delete mode 100644 Makefile + create mode 100644 Makefile.am + create mode 100644 configure.ac + create mode 100644 include/Makefile.am + create mode 100644 man/Makefile.am + delete mode 100644 obj/.gitkeep + create mode 100644 src/Makefile.am + +diff --git a/.gitignore b/.gitignore +index af88e94..4e7355a 100644 +--- a/.gitignore ++++ b/.gitignore +@@ -3,3 +3,20 @@ obj/*.o + man/*.1 + man/*.xml + test/GLOB* ++*.o ++ ++# autotools stuff ++.deps/ ++Makefile ++Makefile.in ++aclocal.m4 ++autom4te.cache/ ++autostuff/ ++config.h ++config.h.in ++config.h.in~ ++config.log ++config.status ++configure ++m4/ ++stamp-h1 +diff --git a/Makefile b/Makefile +deleted file mode 100644 +index 6264da0..0000000 +--- a/Makefile ++++ /dev/null +@@ -1,66 +0,0 @@ +-TARGET = unclutter +-VERSION = 1.5 +-SDIR = src +-IDIR = include +-ODIR = obj +- +-INSTALL = install +-PREFIX = /usr +- +-BINDIR = $(PREFIX)/bin +-MANDIR = $(PREFIX)/share/man/man1 +-LICENSEDIR = $(PREFIX)/share/licenses/$(TARGET) +- +-CC = gcc +-LD = $(CC) +-PKG_CONFIG = pkg-config +- +-CPPFLAGS += -D'__VERSION="${VERSION}"' "-I$(IDIR)" +- +-CFLAGS += -std=gnu99 +-CFLAGS += -Wall -Wundef -Wshadow -Wformat-security +- +-LDFLAGS += $(shell $(PKG_CONFIG) --libs x11 xi xfixes) +-# libev has no pkg-config support +-LDFLAGS += -lev +- +-INCS = $(wildcard $(IDIR)/*.h) +-SRCS = $(wildcard $(SDIR)/*.c) +-OBJS = $(patsubst %,$(ODIR)/%,$(notdir $(SRCS:.c=.o))) +- +-MANS = man/unclutter-xfixes.1 +- +-.NOTPARALLEL: +- +-.PHONY: all +-all: clean $(TARGET) mans +- +-.PHONY: $(TARGET) +-$(TARGET): $(OBJS) +- $(LD) $(OBJS) $(LDFLAGS) -o "$(TARGET)" +- +-$(ODIR)/%.o: $(SDIR)/%.c $(INCS) +- $(CC) $(CPPFLAGS) $(CFLAGS) -o "$@" -c "$<" +- +-.PHONY: install +-install: $(TARGET) mans +- $(INSTALL) -Dm 0755 "$(TARGET)" "$(DESTDIR)$(BINDIR)/$(TARGET)" +- $(INSTALL) -Dm 0644 man/unclutter-xfixes.1 "$(DESTDIR)$(MANDIR)/unclutter.1" +- $(INSTALL) -Dm 0644 -t "$(DESTDIR)$(LICENSEDIR)/" LICENSE +- +-.PHONY: uninstall +-uninstall: +- $(RM) "$(DESTDIR)$(BINDIR)/$(TARGET)" +- $(RM) "$(DESTDIR)$(MANDIR)/unclutter.1" +- $(RM) "$(DESTDIR)$(LICENSEDIR)/LICENSE" +- +-.PHONY: mans +-mans: $(MANS) +- +-$(MANS): %.1: %.man +- a2x --no-xmllint -f manpage "$<" +- +-.PHONY: clean +-clean: +- $(RM) $(TARGET) $(OBJS) +- $(RM) man/*.1 man/*.xml +diff --git a/Makefile.am b/Makefile.am +new file mode 100644 +index 0000000..38ecaa1 +--- /dev/null ++++ b/Makefile.am +@@ -0,0 +1,10 @@ ++ACLOCAL_AMFLAGS = -I m4 ++AUTOMAKE_OPTIONS = foreign ++SUBDIRS = include src ++ ++if HAS_A2X ++SUBDIRS += man ++endif ++ ++licensedir = $(datadir)/licenses/unclutter ++license_DATA = LICENSE +diff --git a/configure.ac b/configure.ac +new file mode 100644 +index 0000000..1d59197 +--- /dev/null ++++ b/configure.ac +@@ -0,0 +1,36 @@ ++AC_PREREQ(2.61) ++ ++AC_INIT([unclutter-xfixes], 1.6) ++AC_DEFINE_UNQUOTED([VERSION], ["$PACKAGE_VERSION"]) ++ ++AC_CONFIG_AUX_DIR([autostuff]) ++AC_CONFIG_MACRO_DIRS([m4]) ++AM_INIT_AUTOMAKE([foreign subdir-objects]) ++ ++m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])]) ++ ++AC_CONFIG_SRCDIR([src]) ++AC_CONFIG_HEADER([config.h]) ++ ++AM_PROG_AR ++AC_PROG_CC ++AC_PROG_INSTALL ++ ++# libev has no pkg-config support ++AC_CHECK_HEADERS([ev.h], [], [AC_MSG_ERROR([ev.h not found - please install libev])]) ++ ++PKG_CHECK_MODULES([X11], [x11 xi xfixes]) ++ ++AC_CHECK_PROG([has_a2x], [a2x], [true], [false]) ++AM_CONDITIONAL([HAS_A2X], [test "x$has_a2x" = xtrue]) ++if test "x$has_a2x" = xfalse ++then ++ AC_MSG_NOTICE([a2x not found - needed to generate man pages]) ++fi ++ ++AC_CONFIG_FILES([Makefile ++ include/Makefile ++ src/Makefile ++ man/Makefile]) ++ ++AC_OUTPUT +diff --git a/include/Makefile.am b/include/Makefile.am +new file mode 100644 +index 0000000..90d8bbc +--- /dev/null ++++ b/include/Makefile.am +@@ -0,0 +1,9 @@ ++noinst_HEADERS = \ ++ all.h \ ++ cursor.h \ ++ event.h \ ++ extensions.h \ ++ externals.h \ ++ globals.h \ ++ types.h \ ++ util.h +diff --git a/man/Makefile.am b/man/Makefile.am +new file mode 100644 +index 0000000..7856e6a +--- /dev/null ++++ b/man/Makefile.am +@@ -0,0 +1,7 @@ ++unclutter-xfixes.1: ++ a2x --no-xmllint -f manpage unclutter-xfixes.man ++ ++dist_man1_MANS = unclutter-xfixes.1 ++ ++clean-local: ++ rm -f unclutter-xfixes.1 +diff --git a/obj/.gitkeep b/obj/.gitkeep +deleted file mode 100644 +index e69de29..0000000 +diff --git a/src/Makefile.am b/src/Makefile.am +new file mode 100644 +index 0000000..c7f0729 +--- /dev/null ++++ b/src/Makefile.am +@@ -0,0 +1,13 @@ ++AM_CFLAGS = -D'__VERSION="${VERSION}"' "-I$(top_srcdir)/include" ++AM_CFLAGS += -std=gnu99 -Wall -Wundef -Wshadow -Wformat-security ++AM_CFLAGS += $(X11_CFLAGS) ++AM_LDFLAGS = -lev $(X11_LIBS) ++ ++bin_PROGRAMS = unclutter ++ ++unclutter_SOURCES = \ ++ cursor.c \ ++ event.c \ ++ extensions.c \ ++ unclutter.c \ ++ util.c +-- +2.21.0 + diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/unclutter-xfixes/unclutter-xfixes_1.5.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/unclutter-xfixes/unclutter-xfixes_1.5.bb new file mode 100644 index 00000000..7e22038f --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/unclutter-xfixes/unclutter-xfixes_1.5.bb @@ -0,0 +1,23 @@ +SUMMARY = "Remove idle cursor image from screen." +DESCRIPTION = "This is a rewrite of the popular tool unclutter, but using the x11-xfixes extension." +AUTHOR = "Ingo Bürk" + +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://LICENSE;md5=b25d2c4cca175f44120d1b8e67cb358d" + +SRC_URI = "git://github.com/Airblader/unclutter-xfixes.git \ + file://0001-build-use-autotools.patch" +SRCREV = "10fd337bb77e4e93c3380f630a0555372778a948" + +inherit autotools pkgconfig features_check + +REQUIRED_DISTRO_FEATURES = "x11" + +DEPENDS = "libev libx11 libxi libxfixes" + +S = "${WORKDIR}/git" + +do_install_append() { + # LICENSE is installed to /usr/share/licenses but we don't want it in the package + rm -rf ${D}${datadir} +} diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/vdpau/libvdpau_1.3.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/vdpau/libvdpau_1.3.bb new file mode 100644 index 00000000..240949f5 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/vdpau/libvdpau_1.3.bb @@ -0,0 +1,23 @@ +SUMMARY = "Video Decode and Presentation API for UNIX" + +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://COPYING;md5=83af8811a28727a13f04132cc33b7f58" + +DEPENDS = "virtual/libx11 libxext xorgproto" + +SRCREV = "f57a9904c43ef5d726320c77baa91d0c38361ed4" +SRC_URI = "git://anongit.freedesktop.org/vdpau/libvdpau" + +S = "${WORKDIR}/git" + +inherit features_check meson + +REQUIRED_DISTRO_FEATURES = "x11" + +do_install_append() { + rm -f ${D}${libdir}/*/*.la +} + +FILES_${PN}-dbg += "${libdir}/vdpau/.debug" +FILES_${PN}-dev += "${libdir}/vdpau/lib*${SOLIBSDEV}" +FILES_${PN} += "${libdir}/vdpau/lib*${SOLIBS}" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/vdpau/libvdpau_git.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/vdpau/libvdpau_git.bb deleted file mode 100644 index b79a562c..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/vdpau/libvdpau_git.bb +++ /dev/null @@ -1,25 +0,0 @@ -SUMMARY = "Video Decode and Presentation API for UNIX" - -LICENSE = "MIT" -LIC_FILES_CHKSUM = "file://COPYING;md5=83af8811a28727a13f04132cc33b7f58" - -DEPENDS = "virtual/libx11 libxext xorgproto" - -PV = "1.1.1+git${SRCPV}" - -SRCREV = "a21bf7aa438f5dd40d0a300a3167aa3d6f26dccc" -SRC_URI = "git://anongit.freedesktop.org/vdpau/libvdpau" - -S = "${WORKDIR}/git" - -inherit distro_features_check autotools pkgconfig - -REQUIRED_DISTRO_FEATURES = "x11" - -do_install_append() { - rm -f ${D}${libdir}/*/*.la -} - -FILES_${PN}-dbg += "${libdir}/vdpau/.debug" -FILES_${PN}-dev += "${libdir}/vdpau/lib*${SOLIBSDEV}" -FILES_${PN} += "${libdir}/vdpau/lib*${SOLIBS}" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/x11vnc/files/0001-Fix-build-on-32bit-arches-with-64bit-time_t.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/x11vnc/files/0001-Fix-build-on-32bit-arches-with-64bit-time_t.patch new file mode 100644 index 00000000..d44445fa --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/x11vnc/files/0001-Fix-build-on-32bit-arches-with-64bit-time_t.patch @@ -0,0 +1,111 @@ +From 8ab672ccc67b64058cffac2cd19a0d3b75d5aa25 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Sat, 30 Nov 2019 11:43:32 -0800 +Subject: [PATCH] Fix build on 32bit arches with 64bit time_t + +time element is deprecated on new input_event structure in kernel's +input.h [1] + +[1] https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit?id=152194fe9c3f + +Upstream-Status: Submitted [https://github.com/LibVNC/x11vnc/pull/117] +Signed-off-by: Khem Raj +--- + src/uinput.c | 28 ++++++++++++++++++++++++---- + 1 file changed, 24 insertions(+), 4 deletions(-) + +diff --git a/src/uinput.c b/src/uinput.c +index 28fbad3..343b7c5 100644 +--- a/src/uinput.c ++++ b/src/uinput.c +@@ -54,6 +54,11 @@ so, delete this exception statement from your version. + #include + #include + ++#ifndef input_event_sec ++#define input_event_sec time.tv_sec ++#define input_event_usec time.tv_usec ++#endif ++ + #if !defined(EV_SYN) || !defined(SYN_REPORT) + #undef UINPUT_OK + #endif +@@ -710,6 +715,7 @@ void parse_uinput_str(char *in) { + static void ptr_move(int dx, int dy) { + #ifdef UINPUT_OK + struct input_event ev; ++ struct timeval tval; + int d = direct_rel_fd < 0 ? fd : direct_rel_fd; + + if (injectable && strchr(injectable, 'M') == NULL) { +@@ -720,7 +726,9 @@ static void ptr_move(int dx, int dy) { + + if (db) fprintf(stderr, "ptr_move(%d, %d) fd=%d\n", dx, dy, d); + +- gettimeofday(&ev.time, NULL); ++ gettimeofday(&tval, NULL); ++ ev.input_event_sec = tval.tv_sec; ++ ev.input_event_usec = tval.tv_usec; + ev.type = EV_REL; + ev.code = REL_Y; + ev.value = dy; +@@ -755,6 +763,7 @@ static void apply_tslib(int *x, int *y) { + static void ptr_abs(int x, int y, int p) { + #ifdef UINPUT_OK + struct input_event ev; ++ struct timeval tval; + int x0, y0; + int d = direct_abs_fd < 0 ? fd : direct_abs_fd; + +@@ -773,7 +782,9 @@ static void ptr_abs(int x, int y, int p) { + + if (db) fprintf(stderr, "ptr_abs(%d, %d => %d %d, p=%d) fd=%d\n", x0, y0, x, y, p, d); + +- gettimeofday(&ev.time, NULL); ++ gettimeofday(&tval, NULL); ++ ev.input_event_sec = tval.tv_sec; ++ ev.input_event_usec = tval.tv_usec; + ev.type = EV_ABS; + ev.code = ABS_Y; + ev.value = y; +@@ -950,6 +961,7 @@ if (0) {usleep(100*1000) ;} + static void button_click(int down, int btn) { + #ifdef UINPUT_OK + struct input_event ev; ++ struct timeval tval; + int d = direct_btn_fd < 0 ? fd : direct_btn_fd; + + if (injectable && strchr(injectable, 'B') == NULL) { +@@ -959,7 +971,12 @@ static void button_click(int down, int btn) { + if (db) fprintf(stderr, "button_click: btn %d %s fd=%d\n", btn, down ? "down" : "up", d); + + memset(&ev, 0, sizeof(ev)); +- gettimeofday(&ev.time, NULL); ++ gettimeofday(&tval, NULL); ++ gettimeofday(&tval, NULL); ++ ev.input_event_sec = tval.tv_sec; ++ ev.input_event_usec = tval.tv_usec; ++ ev.input_event_sec = tval.tv_sec; ++ ev.input_event_usec = tval.tv_usec; + ev.type = EV_KEY; + ev.value = down; + +@@ -1230,6 +1247,7 @@ void uinput_pointer_command(int mask, int x, int y, rfbClientPtr client) { + void uinput_key_command(int down, int keysym, rfbClientPtr client) { + #ifdef UINPUT_OK + struct input_event ev; ++ struct timeval tval; + int scancode; + allowed_input_t input; + int d = direct_key_fd < 0 ? fd : direct_key_fd; +@@ -1253,7 +1271,9 @@ void uinput_key_command(int down, int keysym, rfbClientPtr client) { + if (db) fprintf(stderr, "uinput_key_command: %d -> %d %s fd=%d\n", keysym, scancode, down ? "down" : "up", d); + + memset(&ev, 0, sizeof(ev)); +- gettimeofday(&ev.time, NULL); ++ gettimeofday(&tval, NULL); ++ ev.input_event_sec = tval.tv_sec; ++ ev.input_event_usec = tval.tv_usec; + ev.type = EV_KEY; + ev.code = (unsigned char) scancode; + ev.value = down; diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/x11vnc/x11vnc_0.9.16.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/x11vnc/x11vnc_0.9.16.bb index 1aace020..0d84c420 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/x11vnc/x11vnc_0.9.16.bb +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/x11vnc/x11vnc_0.9.16.bb @@ -7,13 +7,13 @@ LICENSE = "GPLv2+" LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \ file://src/x11vnc.h;endline=31;md5=e871a2ad004776794b616822dcab6314" -SRC_URI = "https://github.com/LibVNC/x11vnc/archive/${PV}.tar.gz;downloadfilename=x11vnc-${PV}.tar.gz\ +SRCREV = "4ca006fed80410bd9b061a1519bd5d9366bb0bc8" +SRC_URI = "git://github.com/LibVNC/x11vnc \ file://starting-fix.patch \ - file://0001-misc-Makefile.am-don-t-install-Xdummy-when-configure.patch \ -" - -SRC_URI[md5sum] = "64172e8f896389ec963fff93415f0d93" -SRC_URI[sha256sum] = "885e5b5f5f25eec6f9e4a1e8be3d0ac71a686331ee1cfb442dba391111bd32bd" + file://0001-misc-Makefile.am-don-t-install-Xdummy-when-configure.patch \ + file://0001-Fix-build-on-32bit-arches-with-64bit-time_t.patch \ + " +S = "${WORKDIR}/git" DEPENDS = "\ jpeg \ @@ -24,7 +24,7 @@ DEPENDS = "\ zlib \ " -inherit pkgconfig autotools distro_features_check +inherit pkgconfig autotools features_check ANY_OF_DISTRO_FEATURES = "x11 fbdev" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/xcursorgen/xcursorgen_1.0.5.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/xcursorgen/xcursorgen_1.0.5.bb deleted file mode 100644 index a21dc42a..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/xcursorgen/xcursorgen_1.0.5.bb +++ /dev/null @@ -1,14 +0,0 @@ -LICENSE = "ManishSingh" -LIC_FILES_CHKSUM = "file://COPYING;md5=bd1fb9ee90eead85f7b171807b3ab4f2" - -DEPENDS = "libpng libxcursor" - -SRC_URI = "http://xorg.freedesktop.org/archive/individual/app/${BPN}-${PV}.tar.bz2" -SRC_URI[md5sum] = "09f56978a62854534deacc8aa8ff3031" -SRC_URI[sha256sum] = "bc7171a0fa212da866fca2301241630e2009aea8c4ddb75f21b51a31c2e4c581" - -inherit distro_features_check autotools pkgconfig - -REQUIRED_DISTRO_FEATURES = "x11" - -BBCLASSEXTEND = "native" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/xcursorgen/xcursorgen_1.0.7.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/xcursorgen/xcursorgen_1.0.7.bb new file mode 100644 index 00000000..936d71b1 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/xcursorgen/xcursorgen_1.0.7.bb @@ -0,0 +1,14 @@ +LICENSE = "ManishSingh" +LIC_FILES_CHKSUM = "file://COPYING;md5=bd1fb9ee90eead85f7b171807b3ab4f2" + +DEPENDS = "libpng libxcursor" + +SRC_URI = "http://xorg.freedesktop.org/archive/individual/app/${BPN}-${PV}.tar.bz2" +SRC_URI[md5sum] = "25cc7ca1ce5dcbb61c2b471c55e686b5" +SRC_URI[sha256sum] = "35b6f844b24f1776e9006c880a745728800764dbe3b327a128772b4610d8eb3d" + +inherit features_check autotools pkgconfig + +REQUIRED_DISTRO_FEATURES = "x11" + +BBCLASSEXTEND = "native" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/xdotool/xdotool_1.20100416.2809.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/xdotool/xdotool_1.20100416.2809.bb index b68e994a..aeae071d 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/xdotool/xdotool_1.20100416.2809.bb +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/xdotool/xdotool_1.20100416.2809.bb @@ -7,7 +7,7 @@ DEPENDS = "virtual/libx11 libxtst" PR = "r1" -inherit distro_features_check pkgconfig +inherit features_check pkgconfig # depends on virtual/libx11 REQUIRED_DISTRO_FEATURES = "x11" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/xorg-app/sessreg_1.1.1.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/xorg-app/sessreg_1.1.1.bb deleted file mode 100644 index d2afa78f..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/xorg-app/sessreg_1.1.1.bb +++ /dev/null @@ -1,11 +0,0 @@ -require recipes-graphics/xorg-app/xorg-app-common.inc - -SUMMARY = "a simple program for managing utmp/wtmp entries" -LICENSE = "MIT" -LIC_FILES_CHKSUM = "file://COPYING;md5=d938a70c8280c265a1ccd2954365d185" -SRC_URI += "file://0001-Makefile.am-Error-Fix.patch" -SRC_URI[md5sum] = "e475167a892b589da23edf8edf8c942d" -SRC_URI[sha256sum] = "78a76ae3f3f6a26547a34630d1b740f42344848b5fb6d7c9c7f7da255e35a6e1" - -CFLAGS_append_libc-musl = " -D_WTMPX_FILE=WTMP_FILE -D_PATH_WTMPX=_PATH_WTMP -D_UTMPX_FILE=UTMP_FILE -D_PATH_UTMPX=_PATH_UTMP " - diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/xorg-app/sessreg_1.1.2.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/xorg-app/sessreg_1.1.2.bb new file mode 100644 index 00000000..ad6bd17a --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/xorg-app/sessreg_1.1.2.bb @@ -0,0 +1,11 @@ +require recipes-graphics/xorg-app/xorg-app-common.inc + +SUMMARY = "a simple program for managing utmp/wtmp entries" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://COPYING;md5=d938a70c8280c265a1ccd2954365d185" +SRC_URI += "file://0001-Makefile.am-Error-Fix.patch" +SRC_URI[md5sum] = "92be564d4be7d8aa7b5024057b715210" +SRC_URI[sha256sum] = "dfcb9e954273ace63879aec053c7880466f8755752a35aa9ced3fa5f04fd2c33" + +CFLAGS_append_libc-musl = " -D_WTMPX_FILE=WTMP_FILE -D_PATH_WTMPX=_PATH_WTMP -D_UTMPX_FILE=UTMP_FILE -D_PATH_UTMPX=_PATH_UTMP " + diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/xorg-app/setxkbmap_1.3.1.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/xorg-app/setxkbmap_1.3.1.bb deleted file mode 100644 index 84027538..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/xorg-app/setxkbmap_1.3.1.bb +++ /dev/null @@ -1,19 +0,0 @@ -require recipes-graphics/xorg-app/xorg-app-common.inc - -SUMMARY = "A program to compile XKB keyboard description" - -DESCRIPTION = "The xkbcomp keymap compiler converts a description of an \ -XKB keymap into one of several output formats. The most common use for \ -xkbcomp is to create a compiled keymap file (.xkm extension) which can \ -be read directly by XKB-capable X servers or utilities." - -LIC_FILES_CHKSUM = "file://COPYING;md5=5feafdbe6dfe9e2bd32325be0cfc86f8" - -PE = "1" - -DEPENDS += "libxkbfile" - -BBCLASSEXTEND = "native" - -SRC_URI[md5sum] = "2c47a1b8e268df73963c4eb2316b1a89" -SRC_URI[sha256sum] = "a9ddb3963f263ba13f0ea105d8c45a531832140530217cc559587bb94f02d3e1" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/xorg-app/setxkbmap_1.3.2.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/xorg-app/setxkbmap_1.3.2.bb new file mode 100644 index 00000000..30fbd1b8 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/xorg-app/setxkbmap_1.3.2.bb @@ -0,0 +1,19 @@ +require recipes-graphics/xorg-app/xorg-app-common.inc + +SUMMARY = "A program to compile XKB keyboard description" + +DESCRIPTION = "The xkbcomp keymap compiler converts a description of an \ +XKB keymap into one of several output formats. The most common use for \ +xkbcomp is to create a compiled keymap file (.xkm extension) which can \ +be read directly by XKB-capable X servers or utilities." + +LIC_FILES_CHKSUM = "file://COPYING;md5=5feafdbe6dfe9e2bd32325be0cfc86f8" + +PE = "1" + +DEPENDS += "libxkbfile" + +BBCLASSEXTEND = "native" + +SRC_URI[md5sum] = "93e736c98fb75856ee8227a0c49a128d" +SRC_URI[sha256sum] = "8ff27486442725e50b02d7049152f51d125ecad71b7ce503cfa09d5d8ceeb9f5" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/xorg-app/xclock_1.0.5.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/xorg-app/xclock_1.0.5.bb deleted file mode 100644 index cf970d5d..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/xorg-app/xclock_1.0.5.bb +++ /dev/null @@ -1,11 +0,0 @@ -require recipes-graphics/xorg-app/xorg-app-common.inc - -SUMMARY = "analog / digital clock for X" -LICENSE = "MIT" -LIC_FILES_CHKSUM = "file://COPYING;md5=857759ade8f2ddde5c7b32ef7356ea36" - -DEPENDS += " libxaw libxrender libxft libxkbfile libxt" - -SRC_URI[md5sum] = "eaf124bbc9d13e1a12a29faaa2ed3612" -SRC_URI[sha256sum] = "53a9169e24f3814fbfcfee3ca0b98637840a3156ed7c7e36ae03940fabae4c9a" - diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/xorg-app/xclock_1.0.9.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/xorg-app/xclock_1.0.9.bb new file mode 100644 index 00000000..31c553ee --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/xorg-app/xclock_1.0.9.bb @@ -0,0 +1,10 @@ +require recipes-graphics/xorg-app/xorg-app-common.inc + +SUMMARY = "analog / digital clock for X" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://COPYING;md5=857759ade8f2ddde5c7b32ef7356ea36" + +DEPENDS += " libxaw libxrender libxft libxkbfile libxt" + +SRC_URI[md5sum] = "437522a96f424f68fc64ed34ece9b211" +SRC_URI[sha256sum] = "cf461fb2c6f2ac42c54d8429ee2010fdb9a1442a370adfbfe8a7bfaf33c123bb" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/xorg-app/xfontsel_1.0.5.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/xorg-app/xfontsel_1.0.5.bb deleted file mode 100644 index c74b2919..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/xorg-app/xfontsel_1.0.5.bb +++ /dev/null @@ -1,13 +0,0 @@ -require recipes-graphics/xorg-app/xorg-app-common.inc - -SUMMARY = "xfontsel provides point and click selection of X11 font names" -HOMEPAGE = "http://cgit.freedesktop.org/xorg/app/xfontsel/" -SECTION = "x11/app" -LICENSE = "MIT" -LIC_FILES_CHKSUM = "file://COPYING;md5=4669d2703c60d585cc29ba7e9a69bcb3" -DEPENDS += " libxaw" - -LIC_FILES_CHKSUM = "file://COPYING;md5=4669d2703c60d585cc29ba7e9a69bcb3" - -SRC_URI[md5sum] = "a40302b88c599b63e3d3d412e02871e6" -SRC_URI[sha256sum] = "170d8550b96fb47b04db6181b947e6f6b8b97f4df5d691c351a278480cc931bf" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/xorg-app/xfontsel_1.0.6.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/xorg-app/xfontsel_1.0.6.bb new file mode 100644 index 00000000..e9260240 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/xorg-app/xfontsel_1.0.6.bb @@ -0,0 +1,13 @@ +require recipes-graphics/xorg-app/xorg-app-common.inc + +SUMMARY = "xfontsel provides point and click selection of X11 font names" +HOMEPAGE = "http://cgit.freedesktop.org/xorg/app/xfontsel/" +SECTION = "x11/app" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://COPYING;md5=4669d2703c60d585cc29ba7e9a69bcb3" +DEPENDS += " libxaw" + +LIC_FILES_CHKSUM = "file://COPYING;md5=4669d2703c60d585cc29ba7e9a69bcb3" + +SRC_URI[md5sum] = "13150ff98846bf6d9a14bee00697fa47" +SRC_URI[sha256sum] = "25aa0b7c4262f5e99c07c2b96e00e4eb25b7e53f94fa803942af9d0e8da3001c" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/xorg-app/xkbprint_1.0.4.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/xorg-app/xkbprint_1.0.4.bb deleted file mode 100644 index 26977bea..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/xorg-app/xkbprint_1.0.4.bb +++ /dev/null @@ -1,13 +0,0 @@ -require recipes-graphics/xorg-app/xorg-app-common.inc -SUMMARY = "A program to compile XKB keyboard description" -DESCRIPTION = "xkbprint generates a printable or encapsulated PostScript \ -description of an XKB keyboard description." - -LIC_FILES_CHKSUM = "file://COPYING;md5=20f28f97555b220fde762bc2a4406a8f" - -DEPENDS += "libxkbfile" - -BBCLASSEXTEND = "native" - -SRC_URI[md5sum] = "3c25b40de530112c08bf7d229c5c6a28" -SRC_URI[sha256sum] = "0b3faab8fefad03dfb7e866f634cf859822801de6b5fc6cf5e0a62857ed93e12" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/xorg-app/xkbprint_1.0.5.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/xorg-app/xkbprint_1.0.5.bb new file mode 100644 index 00000000..7b6ef968 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/xorg-app/xkbprint_1.0.5.bb @@ -0,0 +1,13 @@ +require recipes-graphics/xorg-app/xorg-app-common.inc +SUMMARY = "A program to compile XKB keyboard description" +DESCRIPTION = "xkbprint generates a printable or encapsulated PostScript \ +description of an XKB keyboard description." + +LIC_FILES_CHKSUM = "file://COPYING;md5=20f28f97555b220fde762bc2a4406a8f" + +DEPENDS += "libxkbfile" + +BBCLASSEXTEND = "native" + +SRC_URI[md5sum] = "9c34da77363dc3d0f616980da87244bf" +SRC_URI[sha256sum] = "5b58fe834f0822f06d63d283fac404098c6d3f6acce61888b81016f1c41023fa" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/xorg-app/xmag_1.0.5.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/xorg-app/xmag_1.0.5.bb deleted file mode 100644 index d5774218..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/xorg-app/xmag_1.0.5.bb +++ /dev/null @@ -1,11 +0,0 @@ -require recipes-graphics/xorg-app/xorg-app-common.inc - -SUMMARY = "xmag is a tool to magnify parts of the screen" -HOMEPAGE = "http://cgit.freedesktop.org/xorg/app/xmag/" -SECTION = "x11/app" -LICENSE = "MIT" -LIC_FILES_CHKSUM = "file://COPYING;md5=3413fe6832380b44b69b172d2d1b2387" -DEPENDS += " libxaw libxt" - -SRC_URI[md5sum] = "280b81cb09d1903aa868a058d90128ad" -SRC_URI[sha256sum] = "4ace8795cf756be4ba387f30366045594ce26adda2f5ffe1f8e896825d0932c6" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/xorg-app/xmag_1.0.6.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/xorg-app/xmag_1.0.6.bb new file mode 100644 index 00000000..ab74f5bd --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/xorg-app/xmag_1.0.6.bb @@ -0,0 +1,11 @@ +require recipes-graphics/xorg-app/xorg-app-common.inc + +SUMMARY = "xmag is a tool to magnify parts of the screen" +HOMEPAGE = "http://cgit.freedesktop.org/xorg/app/xmag/" +SECTION = "x11/app" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://COPYING;md5=3413fe6832380b44b69b172d2d1b2387" +DEPENDS += " libxaw libxt" + +SRC_URI[md5sum] = "8aaa41374935d697ee55d7dc9de70781" +SRC_URI[sha256sum] = "87a2bc23b251e2d8f8370d3283a4d6c8dac98a30cb5749a04336cdb55c14e161" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/xorg-app/xmessage_1.0.4.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/xorg-app/xmessage_1.0.4.bb deleted file mode 100644 index 9960706d..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/xorg-app/xmessage_1.0.4.bb +++ /dev/null @@ -1,10 +0,0 @@ -require recipes-graphics/xorg-app/xorg-app-common.inc - -SUMMARY = "Display a message or query in a window" -LICENSE = "MIT" -LIC_FILES_CHKSUM = "file://COPYING;md5=73c7f696a728de728d7446cbca814cc5" - -DEPENDS += "libxaw" - -SRC_URI[md5sum] = "2dd5ae46fa18abc9331bc26250a25005" -SRC_URI[sha256sum] = "bcdf4b461c439bb3ade6e1e41c47d6218b912da8e9396b7ad70856db2f95ab68" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/xorg-app/xmessage_1.0.5.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/xorg-app/xmessage_1.0.5.bb new file mode 100644 index 00000000..23cfb26c --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/xorg-app/xmessage_1.0.5.bb @@ -0,0 +1,10 @@ +require recipes-graphics/xorg-app/xorg-app-common.inc + +SUMMARY = "Display a message or query in a window" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://COPYING;md5=73c7f696a728de728d7446cbca814cc5" + +DEPENDS += "libxaw" + +SRC_URI[md5sum] = "e50ffae17eeb3943079620cb78f5ce0b" +SRC_URI[sha256sum] = "373dfb81e7a6f06d3d22485a12fcde6e255d58c6dee1bbaeb00c7d0caa9b2029" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/xorg-app/xterm/0001-Add-configure-time-check-for-setsid.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/xorg-app/xterm/0001-Add-configure-time-check-for-setsid.patch new file mode 100644 index 00000000..d3beea8b --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/xorg-app/xterm/0001-Add-configure-time-check-for-setsid.patch @@ -0,0 +1,77 @@ +From 3730a38efad969fb6f8227df07eb4461a078f5a3 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Fri, 13 Dec 2019 12:59:26 -0800 +Subject: [PATCH] Add configure time check for setsid + +Do not assume glibc == linux + +Upstream-Status: Pending +Signed-off-by: Khem Raj +--- + configure | 1 + + configure.in | 1 + + main.c | 4 ++-- + xtermcfg.hin | 1 + + 5 files changed, 6 insertions(+), 2 deletions(-) + +diff --git a/configure b/configure +index 0aafefc..03e8df0 100755 +--- a/configure ++++ b/configure +@@ -5411,6 +5411,7 @@ for ac_func in \ + unsetenv \ + sched_yield \ + setpgid \ ++ setsid \ + strftime \ + tcgetattr \ + waitpid \ +diff --git a/configure.in b/configure.in +index d2fee88..74d65df 100644 +--- a/configure.in ++++ b/configure.in +@@ -99,6 +99,7 @@ AC_CHECK_FUNCS( \ + unsetenv \ + sched_yield \ + setpgid \ ++ setsid \ + strftime \ + tcgetattr \ + waitpid \ +diff --git a/main.c b/main.c +index 5e60589..b81d2be 100644 +--- a/main.c ++++ b/main.c +@@ -2868,7 +2868,7 @@ main(int argc, char *argv[]ENVP_ARG) + } + } + +-#if defined(__osf__) || (defined(__GLIBC__) && !defined(USE_USG_PTYS)) || defined(__DragonFly__) || defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__) || defined(__APPLE__) ++#if defined(__osf__) || (defined(__linux__) && !defined(USE_USG_PTYS)) || defined(__DragonFly__) || defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__) || defined(__APPLE__) + #define USE_OPENPTY 1 + static int opened_tty = -1; + #endif +@@ -4040,7 +4040,7 @@ spawnXTerm(XtermWidget xw, unsigned line_speed) + /* + * now in child process + */ +-#if defined(_POSIX_SOURCE) || defined(SVR4) || defined(__convex__) || defined(__SCO__) || defined(__QNX__) ++#if HAVE_SETSID + int pgrp = setsid(); /* variable may not be used... */ + #else + int pgrp = getpid(); +diff --git a/xtermcfg.hin b/xtermcfg.hin +index 1dbc3b8..4f3ff5b 100644 +--- a/xtermcfg.hin ++++ b/xtermcfg.hin +@@ -96,6 +96,7 @@ + #undef HAVE_PUTENV /* AC_CHECK_FUNCS(putenv) */ + #undef HAVE_SCHED_YIELD /* AC_CHECK_FUNCS(sched_yield) */ + #undef HAVE_SETPGID /* AC_CHECK_FUNCS(setpgid) */ ++#undef HAVE_SETSID /* AC_CHECK_FUNCS(setsid) */ + #undef HAVE_STDINT_H /* AC_PROG_CC_STDC */ + #undef HAVE_STDLIB_H /* AC_CHECK_HEADERS(stdlib.h) */ + #undef HAVE_STRFTIME /* AC_CHECK_FUNCS(strftime) */ +-- +2.24.1 + diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/xorg-app/xterm_330.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/xorg-app/xterm_330.bb deleted file mode 100644 index c2feb810..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/xorg-app/xterm_330.bb +++ /dev/null @@ -1,34 +0,0 @@ -require recipes-graphics/xorg-app/xorg-app-common.inc -SUMMARY = "xterm is the standard terminal emulator for the X Window System" -DEPENDS = "libxaw xorgproto libxext libxau libxinerama libxpm ncurses" - -LIC_FILES_CHKSUM = "file://xterm.h;beginline=3;endline=31;md5=f02ab9ebda87b770ecf711dbb3784a33" - -SRC_URI = "http://invisible-mirror.net/archives/${BPN}/${BP}.tgz" - -SRC_URI[md5sum] = "9a6db7974aa4ccbb50eabebf72618467" -SRC_URI[sha256sum] = "7aeef9f29f6b95e09f481173c8c3053357bf5ffe162585647f690fd1707556df" -PACKAGECONFIG ?= "" -PACKAGECONFIG[xft] = "--enable-freetype,--disable-freetype,libxft fontconfig freetype-native" - -EXTRA_OECONF = " --x-includes=${STAGING_INCDIR} \ - --x-libraries=${STAGING_LIBDIR} \ - FREETYPE_CONFIG=${STAGING_BINDIR_CROSS}/freetype-config \ - --disable-imake \ - --disable-rpath-hack \ - --disable-setuid" - -B = "${S}" - -do_configure() { - gnu-configize --force - sed -e "s%/usr/contrib/X11R6%${STAGING_LIBDIR}%g" -i configure - oe_runconf -} - -FILES_${PN} += "/usr/lib/X11" - -# busybox can supply resize too -inherit update-alternatives - -ALTERNATIVE_${PN} = "resize" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/xorg-app/xterm_351.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/xorg-app/xterm_351.bb new file mode 100644 index 00000000..40ee555d --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/xorg-app/xterm_351.bb @@ -0,0 +1,36 @@ +require recipes-graphics/xorg-app/xorg-app-common.inc +SUMMARY = "xterm is the standard terminal emulator for the X Window System" +DEPENDS = "libxaw xorgproto libxext libxau libxinerama libxpm ncurses" + +LIC_FILES_CHKSUM = "file://xterm.h;beginline=3;endline=31;md5=c7faceb872d90115e7c0ad90e90c390d" + +SRC_URI = "http://invisible-mirror.net/archives/${BPN}/${BP}.tgz \ + file://0001-Add-configure-time-check-for-setsid.patch \ + " + +SRC_URI[md5sum] = "a07edfbee2e2f4c6a9ddbf834fa4bbec" +SRC_URI[sha256sum] = "760a8a10221c9c9744afd86db87c7ad95bbf9be4f5f525fecf39125f0d2a6e16" +PACKAGECONFIG ?= "" +PACKAGECONFIG[xft] = "--enable-freetype,--disable-freetype,libxft fontconfig freetype-native" + +EXTRA_OECONF = " --x-includes=${STAGING_INCDIR} \ + --x-libraries=${STAGING_LIBDIR} \ + FREETYPE_CONFIG=${STAGING_BINDIR_CROSS}/freetype-config \ + --disable-imake \ + --disable-rpath-hack \ + --disable-setuid \ + --with-app-defaults=${datadir}/X11/app-defaults \ + " + +B = "${S}" + +do_configure() { + gnu-configize --force + sed -e "s%/usr/contrib/X11R6%${STAGING_LIBDIR}%g" -i configure + oe_runconf +} + +# busybox can supply resize too +inherit update-alternatives + +ALTERNATIVE_${PN} = "resize" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/xorg-data/xorg-data-common.inc b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/xorg-data/xorg-data-common.inc index cb6b5ac7..958fecc1 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/xorg-data/xorg-data-common.inc +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/xorg-data/xorg-data-common.inc @@ -7,6 +7,6 @@ XORG_PN = "${BPN}" SRC_URI = "${XORG_MIRROR}/individual/data/${BP}.tar.bz2" S = "${WORKDIR}/${XORG_PN}-${PV}" -inherit distro_features_check autotools pkgconfig +inherit features_check autotools pkgconfig REQUIRED_DISTRO_FEATURES = "x11" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/xorg-doc/xorg-sgml-doctools_1.11.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/xorg-doc/xorg-sgml-doctools_1.11.bb new file mode 100644 index 00000000..85687611 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/xorg-doc/xorg-sgml-doctools_1.11.bb @@ -0,0 +1,12 @@ +require xorg-doc-common.inc +PE = "1" +PR = "${INC_PR}.0" + +DEPENDS += "util-macros" + +LIC_FILES_CHKSUM = "file://COPYING;md5=c8c6c808cd3c797a07b24e443af1c449" + +SRC_URI[md5sum] = "ee6dc0a8a693a908857af328b2462661" +SRC_URI[sha256sum] = "e71ce1df82dcc51eb14be6f42171dcc6bdd11ef46c0c605d6da8af12bd73b74c" + +FILES_${PN} += " /usr/share/sgml/X11" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/xorg-doc/xorg-sgml-doctools_1.7.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/xorg-doc/xorg-sgml-doctools_1.7.bb deleted file mode 100644 index 80f1f008..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/xorg-doc/xorg-sgml-doctools_1.7.bb +++ /dev/null @@ -1,12 +0,0 @@ -require xorg-doc-common.inc -PE = "1" -PR = "${INC_PR}.0" - -DEPENDS += "util-macros" - -LIC_FILES_CHKSUM = "file://COPYING;md5=c8c6c808cd3c797a07b24e443af1c449" - -SRC_URI[md5sum] = "2588efb3f49f7fc6ecf41ce42e0b2e5e" -SRC_URI[sha256sum] = "84fd94e5c50556e6f77501485f8a48724cf3c95c6d58480bc280258ba14580c8" - -FILES_${PN} += " /usr/share/sgml/X11" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/xorg-driver/xf86-input-tslib/10-x11-input-tslib.fdi b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/xorg-driver/xf86-input-tslib/10-x11-input-tslib.fdi deleted file mode 100644 index 90604394..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/xorg-driver/xf86-input-tslib/10-x11-input-tslib.fdi +++ /dev/null @@ -1,11 +0,0 @@ - - - - - tslib - - - tslib - - - diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/xorg-driver/xf86-input-tslib/double-free-crash.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/xorg-driver/xf86-input-tslib/double-free-crash.patch deleted file mode 100644 index 07754731..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/xorg-driver/xf86-input-tslib/double-free-crash.patch +++ /dev/null @@ -1,20 +0,0 @@ -xorg-server-1.7.3/hw/xfree86/common/xf86Helper.c contains this code -causing a double free crash on chvt or exit: - - /* This should *really* be handled in drv->UnInit(dev) call instead, but - * if the driver forgets about it make sure we free it or at least crash - * with flying colors */ - if (pInp->private) - xfree(pInp->private); -Index: xf86-input-tslib-0.0.6/src/tslib.c -=================================================================== ---- xf86-input-tslib-0.0.6.orig/src/tslib.c -+++ xf86-input-tslib-0.0.6/src/tslib.c -@@ -435,6 +435,7 @@ xf86TslibUninit(InputDriverPtr drv, Inpu - xf86TslibControlProc(pInfo->dev, DEVICE_OFF); - ts_close(priv->ts); - xfree(pInfo->private); -+ pInfo->private = NULL; - xf86DeleteInput(pInfo, 0); - } - diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/xorg-driver/xf86-input-tslib/xf86-input-tslib-0.0.6-xf86XInputSetScreen.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/xorg-driver/xf86-input-tslib/xf86-input-tslib-0.0.6-xf86XInputSetScreen.patch deleted file mode 100644 index d16b4a53..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/xorg-driver/xf86-input-tslib/xf86-input-tslib-0.0.6-xf86XInputSetScreen.patch +++ /dev/null @@ -1,31 +0,0 @@ -Fixes crash when a touchscreen event is received with xserver 1.12 and later: -X: symbol lookup error: /usr/lib/xorg/modules/input/tslib_drv.so: undefined symbol: xf86XInputSetScreen - -Upstream-Status: Pending - -Taken from Gentoo: -https://bugs.gentoo.org/show_bug.cgi?id=446432 - -diff -ur xf86-input-tslib-0.0.6.orig/src/tslib.c xf86-input-tslib-0.0.6/src/tslib.c ---- xf86-input-tslib-0.0.6.orig/src/tslib.c 2012-12-05 01:12:16.286597071 +0100 -+++ xf86-input-tslib-0.0.6/src/tslib.c 2012-12-05 01:11:02.686598595 +0100 -@@ -75,6 +75,19 @@ - #define COLLECT_INPUT_OPTIONS(pInfo, options) xf86CollectInputOptions((pInfo), (options)) - #endif - -+#if GET_ABI_MAJOR(ABI_XINPUT_VERSION) > 13 -+static void -+xf86XInputSetScreen(InputInfoPtr pInfo, -+ int screen_number, -+ int x, -+ int y) -+{ -+ if (miPointerGetScreen(pInfo->dev) != -+ screenInfo.screens[screen_number]) { -+ miPointerSetScreen(pInfo->dev, screen_number, x, y); -+ } -+} -+#endif - - enum { TSLIB_ROTATE_NONE=0, TSLIB_ROTATE_CW=270, TSLIB_ROTATE_UD=180, TSLIB_ROTATE_CCW=90 }; - diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/xorg-driver/xf86-input-tslib/xf86-input-tslib-port-ABI-12-r48.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/xorg-driver/xf86-input-tslib/xf86-input-tslib-port-ABI-12-r48.patch deleted file mode 100644 index 6a6d5b92..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/xorg-driver/xf86-input-tslib/xf86-input-tslib-port-ABI-12-r48.patch +++ /dev/null @@ -1,196 +0,0 @@ -Upstream-Status: Pending - -Taken from debian: -http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=627075 - -Index: xf86-input-tslib-trunk/src/tslib.c -=================================================================== ---- xf86-input-tslib-trunk/src/tslib.c (revision 48) -+++ xf86-input-tslib-trunk/src/tslib.c (working copy) -@@ -69,6 +69,13 @@ - #define DEFAULT_HEIGHT 240 - #define DEFAULT_WIDTH 320 - -+#if GET_ABI_MAJOR(ABI_XINPUT_VERSION) < 12 -+#define COLLECT_INPUT_OPTIONS(pInfo, options) xf86CollectInputOptions((pInfo), (options), NULL) -+#else -+#define COLLECT_INPUT_OPTIONS(pInfo, options) xf86CollectInputOptions((pInfo), (options)) -+#endif -+ -+ - enum { TSLIB_ROTATE_NONE=0, TSLIB_ROTATE_CW=270, TSLIB_ROTATE_UD=180, TSLIB_ROTATE_CCW=90 }; - - enum button_state { BUTTON_NOT_PRESSED = 0, BUTTON_1_PRESSED = 1, BUTTON_3_CLICK = 3, BUTTON_3_CLICKED=4, BUTTON_EMULATION_OFF=-1 }; -@@ -106,7 +113,7 @@ - } - - static Bool --ConvertProc( LocalDevicePtr local, -+ConvertProc( InputInfoPtr local, - int first, - int num, - int v0, -@@ -135,7 +142,7 @@ - return t; - } - --static void ReadInput (LocalDevicePtr local) -+static void ReadInput (InputInfoPtr local) - { - struct ts_priv *priv = (struct ts_priv *) (local->private); - struct ts_sample samp; -@@ -382,7 +389,11 @@ - axiswidth - 1, /* max val */ - axiswidth, /* resolution */ - 0, /* min_res */ -- axiswidth); /* max_res */ -+ axiswidth /* max_res */ -+#if GET_ABI_MAJOR(ABI_XINPUT_VERSION) >= 12 -+ ,Absolute -+#endif -+ ); - - InitValuatorAxisStruct(device, 1, - #if GET_ABI_MAJOR(ABI_XINPUT_VERSION) >= 7 -@@ -392,7 +403,11 @@ - axisheight - 1, /* max val */ - axisheight, /* resolution */ - 0, /* min_res */ -- axisheight); /* max_res */ -+ axisheight /* max_res */ -+#if GET_ABI_MAJOR(ABI_XINPUT_VERSION) >= 12 -+ ,Absolute -+#endif -+ ); - - if (InitProximityClassDeviceStruct (device) == FALSE) { - ErrorF ("Unable to allocate EVTouch touchscreen ProximityClassDeviceStruct\n"); -@@ -434,7 +449,7 @@ - ErrorF("%s\n", __FUNCTION__); - xf86TslibControlProc(pInfo->dev, DEVICE_OFF); - ts_close(priv->ts); -- xfree(pInfo->private); -+ free(pInfo->private); - pInfo->private = NULL; - xf86DeleteInput(pInfo, 0); - } -@@ -444,47 +459,57 @@ - * - * called when the module subsection is found in XF86Config - */ -+#if GET_ABI_MAJOR(ABI_XINPUT_VERSION) >= 12 -+static int -+xf86TslibInit(InputDriverPtr drv, InputInfoPtr pInfo, int flags) -+#else - static InputInfoPtr - xf86TslibInit(InputDriverPtr drv, IDevPtr dev, int flags) -+#endif - { - struct ts_priv *priv; - char *s; -+#if GET_ABI_MAJOR(ABI_XINPUT_VERSION) < 12 - InputInfoPtr pInfo; -+#endif - -- priv = xcalloc (1, sizeof (struct ts_priv)); -+ priv = calloc (1, sizeof (struct ts_priv)); - if (!priv) -- return NULL; -+ return BadValue; - -+#if GET_ABI_MAJOR(ABI_XINPUT_VERSION) < 12 - if (!(pInfo = xf86AllocateInput(drv, 0))) { -- xfree(priv); -- return NULL; -+ free(priv); -+ return BadValue; - } - - /* Initialise the InputInfoRec. */ - pInfo->name = dev->identifier; -- pInfo->type_name = XI_TOUCHSCREEN; - pInfo->flags = - XI86_KEYBOARD_CAPABLE | XI86_POINTER_CAPABLE | - XI86_SEND_DRAG_EVENTS; -- pInfo->device_control = xf86TslibControlProc; -- pInfo->read_input = ReadInput; - #if GET_ABI_MAJOR(ABI_XINPUT_VERSION) == 0 - pInfo->motion_history_proc = xf86GetMotionEvents; - pInfo->history_size = 0; - #endif -- pInfo->control_proc = NULL; -+ pInfo->conf_idev = dev; - pInfo->close_proc = NULL; -- pInfo->switch_mode = NULL; - pInfo->conversion_proc = ConvertProc; - pInfo->reverse_conversion_proc = NULL; -- pInfo->dev = NULL; - pInfo->private_flags = 0; - pInfo->always_core_feedback = 0; -- pInfo->conf_idev = dev; -+#endif -+ -+ pInfo->type_name = XI_TOUCHSCREEN; -+ pInfo->control_proc = NULL; -+ pInfo->read_input = ReadInput; -+ pInfo->device_control = xf86TslibControlProc; -+ pInfo->switch_mode = NULL; - pInfo->private = priv; -+ pInfo->dev = NULL; - - /* Collect the options, and process the common options. */ -- xf86CollectInputOptions(pInfo, NULL, NULL); -+ COLLECT_INPUT_OPTIONS(pInfo, NULL); - xf86ProcessCommonOptions(pInfo, pInfo->options); - - priv->screen_num = xf86SetIntOption(pInfo->options, "ScreenNumber", 0 ); -@@ -510,23 +535,31 @@ - priv->rotate = TSLIB_ROTATE_NONE; - } - -+#if GET_ABI_MAJOR(ABI_XINPUT_VERSION) < 12 - s = xf86CheckStrOption(dev->commonOptions, "path", NULL); -+#else -+ s = xf86CheckStrOption(pInfo->options, "path", NULL); -+#endif - if (!s) -+#if GET_ABI_MAJOR(ABI_XINPUT_VERSION) < 12 - s = xf86CheckStrOption(dev->commonOptions, "Device", NULL); -+#else -+ s = xf86CheckStrOption(pInfo->options, "Device", NULL); -+#endif - - priv->ts = ts_open(s, 1); -- xfree(s); -+ free(s); - - if (!priv->ts) { - ErrorF("ts_open failed (device=%s)\n",s); - xf86DeleteInput(pInfo, 0); -- return NULL; -+ return BadValue; - } - - if (ts_config(priv->ts)) { - ErrorF("ts_config failed\n"); - xf86DeleteInput(pInfo, 0); -- return NULL; -+ return BadValue; - } - - pInfo->fd = ts_fd(priv->ts); -@@ -536,11 +569,13 @@ - priv->state = BUTTON_EMULATION_OFF; - } - -+#if GET_ABI_MAJOR(ABI_XINPUT_VERSION) < 12 - /* Mark the device configured */ - pInfo->flags |= XI86_CONFIGURED; -+#endif - - /* Return the configured device */ -- return (pInfo); -+ return Success; - } - - _X_EXPORT InputDriverRec TSLIB = { diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/xorg-driver/xf86-input-tslib/xserver-174-XGetPointerControl.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/xorg-driver/xf86-input-tslib/xserver-174-XGetPointerControl.patch deleted file mode 100644 index a1f6ba8f..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/xorg-driver/xf86-input-tslib/xserver-174-XGetPointerControl.patch +++ /dev/null @@ -1,34 +0,0 @@ -From Grazvydas Ignotas - -At least xserver 1.7.4 crashes on XGetPointerControl request because of xf86-input-tslib: - -Program received signal SIGSEGV, Segmentation fault. -#0 0x000355e0 in ProcGetPointerControl (client=0x4a2e58) at devices.c:2122 -#1 0x00062fa8 in Dispatch () at dispatch.c:439 -#2 0x00022444 in main (argc=4, argv=0xbeebedc4, envp=0xbeebedd8) at main.c:285 - -This happens because ptrfeed field is not set in device structure from tslib. -To fix this, call InitPtrFeedbackClassDeviceStruct() during DEVICE_INIT to get necessary setup done (as done in other input drivers). - ---- -diff -ur xf86-input-tslib-0.0.6/src/tslib.c xf86-input-tslib-0.0.6_/src/tslib.c ---- xf86-input-tslib-0.0.6/src/tslib.c 2010-02-09 12:23:22.000000000 +0200 -+++ xf86-input-tslib-0.0.6_/src/tslib.c 2010-02-09 12:37:33.000000000 +0200 -@@ -103,8 +103,6 @@ - static void - PointerControlProc(DeviceIntPtr dev, PtrCtrl * ctrl) - { -- ErrorF("%s\n", __FUNCTION__); -- return; - } - - static Bool -@@ -406,6 +404,8 @@ - xf86MotionHistoryAllocate(pInfo); - #endif - -+ if (!InitPtrFeedbackClassDeviceStruct(device, PointerControlProc)) -+ return !Success; - break; - - case DEVICE_ON: diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/xorg-driver/xf86-input-tslib_0.0.6.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/xorg-driver/xf86-input-tslib_0.0.6.bb deleted file mode 100644 index 6a3689a2..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/xorg-driver/xf86-input-tslib_0.0.6.bb +++ /dev/null @@ -1,35 +0,0 @@ -require recipes-graphics/xorg-driver/xorg-driver-input.inc -SUMMARY = "X.Org X server -- tslib input driver" -DEPENDS += "tslib" -RRECOMMENDS_${PN} += "tslib-calibrate" -RSUGGESTS_${PN} += "hal" - -# derived from xf86-input-void, that's why I kept MIT-X, but it's not clear, see COPYING -LIC_FILES_CHKSUM = "file://src/tslib.c;endline=28;md5=bd62eaef222dcf5cd59e490a12bd795e \ - file://COPYING;md5=4641deddaa80fe7ca88e944e1fd94a94" - -PR = "${INC_PR}.1" - -SRC_URI = "http://www.pengutronix.de/software/xf86-input-tslib/download/xf86-input-tslib-${PV}.tar.bz2 \ - file://double-free-crash.patch \ - file://10-x11-input-tslib.fdi \ - file://xserver-174-XGetPointerControl.patch \ - file://99-xf86-input-tslib.rules \ - file://xf86-input-tslib-port-ABI-12-r48.patch \ - file://xf86-input-tslib-0.0.6-xf86XInputSetScreen.patch \ -" - -SRC_URI[md5sum] = "b7a4d2f11637ee3fcf432e044b1d017f" -SRC_URI[sha256sum] = "5f46fdef095a6e44a69e0f0b57c7d665224b26d990d006611236d8332e85b105" - -do_configure_prepend() { - rm -rf ${S}/m4/ || true -} -do_install_append() { - install -d ${D}/${datadir}/hal/fdi/policy/20thirdparty - install -m 0644 ${WORKDIR}/10-x11-input-tslib.fdi ${D}/${datadir}/hal/fdi/policy/20thirdparty - install -d ${D}${nonarch_base_libdir}/udev/rules.d - install -m 0644 ${WORKDIR}/99-xf86-input-tslib.rules ${D}${nonarch_base_libdir}/udev/rules.d/ -} - -FILES_${PN} += "${datadir}/hal ${nonarch_base_libdir}/udev" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/xorg-driver/xf86-input-tslib_0.0.7.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/xorg-driver/xf86-input-tslib_0.0.7.bb new file mode 100644 index 00000000..1f63047c --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/xorg-driver/xf86-input-tslib_0.0.7.bb @@ -0,0 +1,20 @@ +require recipes-graphics/xorg-driver/xorg-driver-input.inc +SUMMARY = "X.Org X server -- tslib input driver" +DEPENDS += "tslib" +RRECOMMENDS_${PN} += "tslib-calibrate" + +LIC_FILES_CHKSUM = "file://COPYING;md5=f1524518264f7776a9707c19c8affbbf" + +SRC_URI = "https://github.com/merge/xf86-input-tslib/releases/download/${PV}/xf86-input-tslib-${PV}.tar.xz \ + file://99-xf86-input-tslib.rules \ +" + +SRC_URI[md5sum] = "c5ffb03bccccfa1c4ba11079fef0036e" +SRC_URI[sha256sum] = "1439a9efa50eb481e6a0ab5319ab0765d457732e7da64e3c15f3c0cd13b44297" + +do_install_append() { + install -d ${D}${nonarch_base_libdir}/udev/rules.d + install -m 0644 ${WORKDIR}/99-xf86-input-tslib.rules ${D}${nonarch_base_libdir}/udev/rules.d/ +} + +FILES_${PN} += "${nonarch_base_libdir}/udev" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/xorg-driver/xf86-video-ati_19.0.1.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/xorg-driver/xf86-video-ati_19.0.1.bb index 971de731..4042150b 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/xorg-driver/xf86-video-ati_19.0.1.bb +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/xorg-driver/xf86-video-ati_19.0.1.bb @@ -9,7 +9,7 @@ DESCRIPTION = "Open-source X.org graphics driver for ATI Radeon graphics" DEPENDS += "virtual/libx11 libxvmc drm \ virtual/libgl xorgproto libpciaccess" -inherit distro_features_check +inherit features_check REQUIRED_DISTRO_FEATURES += "opengl" SRC_URI[md5sum] = "47eccf71823206ade9629cba69de7ef6" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/xorg-driver/xf86-video-nouveau_1.0.15.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/xorg-driver/xf86-video-nouveau_1.0.15.bb deleted file mode 100644 index 2b1b87c4..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/xorg-driver/xf86-video-nouveau_1.0.15.bb +++ /dev/null @@ -1,20 +0,0 @@ -require recipes-graphics/xorg-driver/xorg-driver-video.inc - -LIC_FILES_CHKSUM = "file://COPYING;md5=4641deddaa80fe7ca88e944e1fd94a94" - -SUMMARY = "X.Org X server -- nouveau video driver" - -DESCRIPTION = "Open-source X.org graphics driver for NVIDIA graphics" - -DEPENDS += "virtual/libx11 libxvmc drm xorgproto \ - virtual/libgl libpciaccess" -RDEPENDS_${PN} += "xserver-xorg-module-exa" - -inherit distro_features_check -REQUIRED_DISTRO_FEATURES += "opengl" - -COMPATIBLE_HOST = '(i.86|x86_64).*-linux' - -SRC_URI[md5sum] = "717203cb87029cddcbccf7398f9ad8c3" -SRC_URI[sha256sum] = "aede10fd395610a328697adca3434fb14e9afbd79911d6c8545cfa2c0e541d4c" - diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/xorg-driver/xf86-video-nouveau_1.0.16.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/xorg-driver/xf86-video-nouveau_1.0.16.bb new file mode 100644 index 00000000..5c9061a0 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/xorg-driver/xf86-video-nouveau_1.0.16.bb @@ -0,0 +1,19 @@ +require recipes-graphics/xorg-driver/xorg-driver-video.inc + +LIC_FILES_CHKSUM = "file://COPYING;md5=4641deddaa80fe7ca88e944e1fd94a94" + +SUMMARY = "X.Org X server -- nouveau video driver" + +DESCRIPTION = "Open-source X.org graphics driver for NVIDIA graphics" + +DEPENDS += "virtual/libx11 libxvmc drm xorgproto \ + virtual/libgl libpciaccess" +RDEPENDS_${PN} += "xserver-xorg-module-exa" + +inherit features_check +REQUIRED_DISTRO_FEATURES += "opengl" + +COMPATIBLE_HOST = '(i.86|x86_64).*-linux' + +SRC_URI[md5sum] = "ecd9be89d853301167e3d564c49f7a8e" +SRC_URI[sha256sum] = "304060806415579cdb5c1f71f1c54d11cacb431b5552b170decbc883ed43bf06" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/xorg-font/font-adobe-100dpi_1.0.3.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/xorg-font/font-adobe-100dpi_1.0.3.bb index 29229bb5..d7dd1093 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/xorg-font/font-adobe-100dpi_1.0.3.bb +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/xorg-font/font-adobe-100dpi_1.0.3.bb @@ -10,7 +10,7 @@ DEPENDS = "util-macros-native font-util-native bdftopcf-native font-util" RDEPENDS_${PN} = "encodings font-util" RDEPENDS_${PN}_class-native = "font-util-native" -inherit distro_features_check +inherit features_check # depends on bdftopcf-native -> virtual/libx11 REQUIRED_DISTRO_FEATURES = "x11" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/xorg-font/font-adobe-utopia-100dpi_1.0.4.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/xorg-font/font-adobe-utopia-100dpi_1.0.4.bb index 898850bb..5c00b4b6 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/xorg-font/font-adobe-utopia-100dpi_1.0.4.bb +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/xorg-font/font-adobe-utopia-100dpi_1.0.4.bb @@ -10,7 +10,7 @@ DEPENDS = "util-macros-native font-util-native bdftopcf-native font-util" RDEPENDS_${PN} = "encodings font-util" RDEPENDS_${PN}_class-native = "font-util-native" -inherit distro_features_check +inherit features_check # depends on bdftopcf-native -> virtual/libx11 REQUIRED_DISTRO_FEATURES = "x11" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/xorg-font/font-bh-100dpi_1.0.3.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/xorg-font/font-bh-100dpi_1.0.3.bb index 4976e527..f9bdaf36 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/xorg-font/font-bh-100dpi_1.0.3.bb +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/xorg-font/font-bh-100dpi_1.0.3.bb @@ -10,7 +10,7 @@ DEPENDS += "util-macros-native font-util-native bdftopcf-native font-util" RDEPENDS_${PN} = "encodings font-util" RDEPENDS_${PN}_class-native = "font-util-native" -inherit distro_features_check +inherit features_check # depends on bdftopcf-native -> virtual/libx11 REQUIRED_DISTRO_FEATURES = "x11" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/xorg-font/font-bh-lucidatypewriter-100dpi_1.0.3.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/xorg-font/font-bh-lucidatypewriter-100dpi_1.0.3.bb index 6e0b33ca..872ef4d0 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/xorg-font/font-bh-lucidatypewriter-100dpi_1.0.3.bb +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/xorg-font/font-bh-lucidatypewriter-100dpi_1.0.3.bb @@ -10,7 +10,7 @@ DEPENDS = "util-macros-native font-util-native bdftopcf-native font-util" RDEPENDS_${PN} = "encodings font-util" RDEPENDS_${PN}_class-native = "font-util-native" -inherit distro_features_check +inherit features_check # depends on bdftopcf-native -> virtual/libx11 REQUIRED_DISTRO_FEATURES = "x11" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/xorg-font/font-bitstream-100dpi_1.0.3.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/xorg-font/font-bitstream-100dpi_1.0.3.bb index e8cfb615..a4ae91a3 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/xorg-font/font-bitstream-100dpi_1.0.3.bb +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/xorg-font/font-bitstream-100dpi_1.0.3.bb @@ -10,7 +10,7 @@ DEPENDS = "util-macros-native font-util-native bdftopcf-native" RDEPENDS_${PN} = "encodings font-util" RDEPENDS_${PN}_class-native = "font-util-native" -inherit distro_features_check +inherit features_check # depends on bdftopcf-native -> virtual/libx11 REQUIRED_DISTRO_FEATURES = "x11" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/xorg-font/font-cursor-misc_1.0.3.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/xorg-font/font-cursor-misc_1.0.3.bb index d425ce51..ee8cb360 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/xorg-font/font-cursor-misc_1.0.3.bb +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/xorg-font/font-cursor-misc_1.0.3.bb @@ -9,7 +9,7 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=8b32ccac3ad25e75e68478deb7780265" DEPENDS = "util-macros-native font-util-native bdftopcf-native" RDEPENDS_${PN} = "encodings font-util" -inherit distro_features_check +inherit features_check # depends on bdftopcf-native -> virtual/libx11 REQUIRED_DISTRO_FEATURES = "x11" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/xorg-font/font-misc-misc_1.1.2.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/xorg-font/font-misc-misc_1.1.2.bb index e4cd90a7..355fb528 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/xorg-font/font-misc-misc_1.1.2.bb +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/xorg-font/font-misc-misc_1.1.2.bb @@ -9,7 +9,7 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=200c507f595ee97008c7c5c3e94ab9a8" DEPENDS = "util-macros-native font-util-native bdftopcf-native font-util" RDEPENDS_${PN} = "encodings font-util" -inherit distro_features_check +inherit features_check # depends on bdftopcf-native -> virtual/libx11 REQUIRED_DISTRO_FEATURES = "x11" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/xorg-font/xorg-fonts-100dpi.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/xorg-font/xorg-fonts-100dpi.bb index 45e3f7b5..06778b3e 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/xorg-font/xorg-fonts-100dpi.bb +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/xorg-font/xorg-fonts-100dpi.bb @@ -1,7 +1,7 @@ SUMMARY = "Xorg 100 DPI font set" -LICENSE = "Custom" +LICENSE = "MIT" -inherit packagegroup distro_features_check +inherit packagegroup features_check # rdepends on font recipes with this restriction REQUIRED_DISTRO_FEATURES = "x11" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/xscreensaver/xscreensaver_5.39.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/xscreensaver/xscreensaver_5.39.bb index 3a88f12e..b8c1881d 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/xscreensaver/xscreensaver_5.39.bb +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/xscreensaver/xscreensaver_5.39.bb @@ -1,6 +1,6 @@ SUMMARY = "X screen saver and locker" -LICENSE = "BSD" +LICENSE = "BSD-0-Clause" LIC_FILES_CHKSUM = "file://driver/xscreensaver.h;endline=10;md5=e141ab5822fb2d43694e1e47b59fc0df" SRC_URI = "https://www.jwz.org/${BPN}/${BP}.tar.gz" @@ -15,9 +15,9 @@ SRC_URI += " \ DEPENDS = "intltool-native libx11 libxext libxt libxft glib-2.0-native bc-native" # These are only needed as part of the stopgap screensaver implementation: -RDEPENDS_${PN} += "xserver-nodm-init liberation-fonts" +RDEPENDS_${PN} += "liberation-fonts" -inherit systemd perlnative pkgconfig gettext autotools-brokensep distro_features_check +inherit systemd perlnative pkgconfig gettext autotools-brokensep features_check EXTRA_OECONF += "--with-x-app-defaults=${datadir}/X11/app-defaults" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/xserver-common/xserver-common_1.34.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/xserver-common/xserver-common_1.34.bb index a5ed21d4..2c09a485 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/xserver-common/xserver-common_1.34.bb +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/xserver-common/xserver-common_1.34.bb @@ -5,7 +5,7 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe" PR = "r9" # we are using a gpe-style Makefile -inherit distro_features_check gpe +inherit features_check gpe REQUIRED_DISTRO_FEATURES = "x11" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/yad/yad_5.0.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/yad/yad_5.0.bb new file mode 100644 index 00000000..e53c04bb --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-graphics/yad/yad_5.0.bb @@ -0,0 +1,17 @@ +SUMMARY = "Yet Another Dialog" +DESCRIPTION = "Program allowing you to display GTK+ dialog boxes from command line or shell scripts." +AUTHOR = "Victor Ananjevsky" + +LICENSE = "GPLv3" +LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504" + +SRC_URI = "git://github.com/v1cont/yad.git" +SRCREV = "c8eac89cc20d915cb5ed185f423091a291c8af24" + +inherit autotools gsettings + +DEPENDS = "gtk+3 glib-2.0-native intltool-native" + +S = "${WORKDIR}/git" + +FILES_${PN} += "${datadir}/icons/" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-kernel/agent-proxy/agent-proxy_1.97.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-kernel/agent-proxy/agent-proxy_1.97.bb new file mode 100644 index 00000000..2eb19206 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-kernel/agent-proxy/agent-proxy_1.97.bb @@ -0,0 +1,24 @@ +SUMMARY = "Proxy for UDP/TCP debug connections" +DESCRIPTION = "The agent-proxy will forward tcp or udp connections as well as allow for script multiplexing of terminal sessions." +HOMEPAGE = "http://kgdb.wiki.kernel.org/" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=eb723b61539feef013de476e68b5c50a" + +SECTION = "devel" + +EXTRA_OEMAKE = "'CC=${CC}'" + +SRCREV = "468fe4c31e6c62c9bbb328b06ba71eaf7be0b76a" + +SRC_URI = "git://git.kernel.org/pub/scm/utils/kernel/kgdb/agent-proxy.git;protocol=git \ + file://0001-Makefile-Add-LDFLAGS-variable.patch \ +" + +BBCLASSEXTEND = "native nativesdk" + +S = "${WORKDIR}/git" + +do_install () { + install -d ${D}${bindir} + install -m 0755 agent-proxy ${D}${bindir} +} diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-kernel/agent-proxy/agent-proxy_git.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-kernel/agent-proxy/agent-proxy_git.bb deleted file mode 100644 index 8e370f96..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-kernel/agent-proxy/agent-proxy_git.bb +++ /dev/null @@ -1,25 +0,0 @@ -SUMMARY = "Proxy for UDP/TCP debug connections" -DESCRIPTION = "The agent-proxy will forward tcp or udp connections as well as allow for script multiplexing of terminal sessions." -HOMEPAGE = "http://kgdb.wiki.kernel.org/" -LICENSE = "GPLv2" -LIC_FILES_CHKSUM = "file://COPYING;md5=eb723b61539feef013de476e68b5c50a" - -SECTION = "devel" - -EXTRA_OEMAKE = "'CC=${CC}'" - -SRCREV = "e6c9d3d996bd55e7ab14dbd74deb7841e0c3a4f1" -PV = "1.96+git${SRCPV}" - -SRC_URI = "git://git.kernel.org/pub/scm/utils/kernel/kgdb/agent-proxy.git;protocol=git \ - file://0001-Makefile-Add-LDFLAGS-variable.patch \ -" - -BBCLASSEXTEND = "native nativesdk" - -S = "${WORKDIR}/git" - -do_install () { - install -d ${D}${bindir} - install -m 0755 agent-proxy ${D}${bindir} -} diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-kernel/bpftool/bpftool.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-kernel/bpftool/bpftool.bb index 39c478a9..6683eccf 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-kernel/bpftool/bpftool.bb +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-kernel/bpftool/bpftool.bb @@ -9,7 +9,9 @@ inherit bash-completion kernelsrc kernel-arch do_populate_lic[depends] += "virtual/kernel:do_patch" -EXTRA_OEMAKE = "-C ${S}/tools/bpf/bpftool O=${B} CROSS=${TARGET_PREFIX} CC="${CC}" LD="${LD}" AR=${AR} ARCH=${ARCH}" +EXTRA_OEMAKE = "V=1 -C ${S}/tools/bpf/bpftool O=${B} CROSS=${TARGET_PREFIX} CC="${CC}" LD="${LD}" AR=${AR} ARCH=${ARCH}" + +SECURITY_CFLAGS = "" do_configure[depends] += "virtual/kernel:do_shared_workdir" @@ -30,3 +32,4 @@ python do_package_prepend() { } B = "${WORKDIR}/${BPN}-${PV}" +PNBLACKLIST[bpftool] = "Needs forward porting to kernel 5.2+" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-kernel/crash/crash_7.2.5.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-kernel/crash/crash_7.2.5.bb deleted file mode 100644 index e124db19..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-kernel/crash/crash_7.2.5.bb +++ /dev/null @@ -1,120 +0,0 @@ -SUMMARY = "Kernel analysis utility for live systems, netdump, diskdump, kdump, LKCD or mcore dumpfiles" -DESCRIPTION = "The core analysis suite is a self-contained tool that can be used to\ -investigate either live systems, kernel core dumps created from the\ -netdump, diskdump and kdump packages from Red Hat Linux, the mcore kernel patch\ -offered by Mission Critical Linux, or the LKCD kernel patch." - -HOMEPAGE = "http://people.redhat.com/anderson" -SECTION = "devel" - -LICENSE = "GPLv3" -LIC_FILES_CHKSUM = "file://COPYING3;md5=d32239bcb673463ab874e80d47fae504" - -DEPENDS = "zlib readline coreutils-native" - -S = "${WORKDIR}/git" -SRC_URI = "git://github.com/crash-utility/${BPN}.git \ - http://ftp.gnu.org/gnu/gdb/gdb-7.6.tar.gz;name=gdb;subdir=git \ - file://7001force_define_architecture.patch \ - file://7003cross_ranlib.patch \ - file://0001-cross_add_configure_option.patch \ - file://sim-ppc-drop-LIBS-from-psim-dependency.patch \ - file://sim-common-sim-arange-fix-extern-inline-handling.patch \ - file://donnot-extract-gdb-during-do-compile.patch \ - file://gdb_build_jobs_and_not_write_crash_target.patch \ - file://remove-unrecognized-gcc-option-m32-for-mips.patch \ - file://0002-crash-fix-build-error-unknown-type-name-gdb_fpregset.patch \ - file://0003-crash-detect-the-sysroot-s-glibc-header-file.patch \ - " -SRCREV = "c0a2fc9d322cf0c5f569ce54e9201d2f586edb0c" - -SRC_URI[gdb.md5sum] = "a9836707337e5f7bf76a009a8904f470" -SRC_URI[gdb.sha256sum] = "8070389a5dcc104eb0be483d582729f98ed4d761ad19cedd3f17b5d2502faa36" - -UPSTREAM_CHECK_URI = "https://github.com/crash-utility/crash/releases" - -inherit gettext - -BBCLASSEXTEND = "native cross" -TARGET_CC_ARCH_append = " ${SELECTED_OPTIMIZATION}" - -# crash 7.1.3 and before don't support mips64 -COMPATIBLE_HOST = "^(?!mips64).*" - -EXTRA_OEMAKE = 'RPMPKG="${PV}" \ - GDB_TARGET="${TARGET_SYS}" \ - GDB_HOST="${BUILD_SYS}" \ - GDB_MAKE_JOBS="${PARALLEL_MAKE}" \ - LDFLAGS="${LDFLAGS}" \ - ' - -EXTRA_OEMAKE_class-cross = 'RPMPKG="${PV}" \ - GDB_TARGET="${BUILD_SYS} \ - \${GDB_CONF_FLAGS} \ - --target=${TARGET_SYS}" \ - GDB_HOST="${BUILD_SYS}" \ - GDB_MAKE_JOBS="${PARALLEL_MAKE}" \ - ' - -EXTRA_OEMAKE_append_class-native = " LDFLAGS='${BUILD_LDFLAGS}'" -EXTRA_OEMAKE_append_class-cross = " LDFLAGS='${BUILD_LDFLAGS}'" - -REMOVE_M32 = "sed -i -e 's/#define TARGET_CFLAGS_ARM_ON_X86_64.*/#define TARGET_CFLAGS_ARM_ON_X86_64\t\"TARGET_CFLAGS=-D_FILE_OFFSET_BITS=64\"/g' ${S}/configure.c" - -REMOVE_M32_class-cross = "" - -do_configure() { - : -} - -do_compile_prepend() { - case ${TARGET_ARCH} in - aarch64*) ARCH=ARM64 ;; - arm*) ARCH=ARM ;; - i*86*) ARCH=X86 ;; - x86_64*) ARCH=X86_64 ;; - powerpc64*) ARCH=PPC64 ;; - powerpc*) ARCH=PPC ;; - mips*) ARCH=MIPS ;; - esac - - sed -i s/FORCE_DEFINE_ARCH/"${ARCH}"/g ${S}/configure.c - ${REMOVE_M32} - sed -i 's/>/>/g' ${S}/Makefile -} - -do_compile() { - oe_runmake ${EXTRA_OEMAKE} RECIPE_SYSROOT=${RECIPE_SYSROOT} -} - -do_install_prepend () { - install -d ${D}${bindir} - install -d ${D}/${mandir}/man8 - install -d ${D}${includedir}/crash - - install -m 0644 ${S}/crash.8 ${D}/${mandir}/man8/ - install -m 0644 ${S}/defs.h ${D}${includedir}/crash -} - -do_install_class-target () { - oe_runmake DESTDIR=${D} install -} - -do_install_class-native () { - oe_runmake DESTDIR=${D}${STAGING_DIR_NATIVE} install -} - -do_install_class-cross () { - install -m 0755 ${S}/crash ${D}/${bindir} -} - -RDEPENDS_${PN} += "liblzma" -RDEPENDS_${PN}_class-native = "" -RDEPENDS_${PN}_class-cross = "" - -# Causes gcc to get stuck and eat all available memory in qemuarm builds -# jenkins 15161 100 12.5 10389596 10321284 ? R 11:40 28:17 /home/jenkins/oe/world/shr-core/tmp-glibc/sysroots/x86_64-linux/usr/libexec/arm-oe-linux-gnueabi/gcc/arm-oe-linux-gnueabi/4.9.2/cc1 -quiet -I . -I . -I ./common -I ./config -I ./../include/opcode -I ./../opcodes/.. -I ./../readline/.. -I ../bfd -I ./../bfd -I ./../include -I ../libdecnumber -I ./../libdecnumber -I ./gnulib/import -I build-gnulib/import -isysroot /home/jenkins/oe/world/shr-core/tmp-glibc/sysroots/qemuarm -MMD eval.d -MF .deps/eval.Tpo -MP -MT eval.o -D LOCALEDIR="/usr/local/share/locale" -D CRASH_MERGE -D HAVE_CONFIG_H -D TUI=1 eval.c -quiet -dumpbase eval.c -march=armv5te -mthumb -mthumb-interwork -mtls-dialect=gnu -auxbase-strip eval.o -g -O2 -Wall -Wpointer-arith -Wformat-nonliteral -Wno-pointer-sign -Wno-unused -Wunused-value -Wunused-function -Wno-switch -Wno-char-subscripts -Wmissing-prototypes -Wdeclaration-after-statement -Wempty-body -feliminate-unused-debug-types -o - -ARM_INSTRUCTION_SET = "arm" - -# http://errors.yoctoproject.org/Errors/Details/186964/ -EXCLUDE_FROM_WORLD_libc-musl = "1" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-kernel/crash/crash_7.2.7.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-kernel/crash/crash_7.2.7.bb new file mode 100644 index 00000000..8098d096 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-kernel/crash/crash_7.2.7.bb @@ -0,0 +1,120 @@ +SUMMARY = "Kernel analysis utility for live systems, netdump, diskdump, kdump, LKCD or mcore dumpfiles" +DESCRIPTION = "The core analysis suite is a self-contained tool that can be used to\ +investigate either live systems, kernel core dumps created from the\ +netdump, diskdump and kdump packages from Red Hat Linux, the mcore kernel patch\ +offered by Mission Critical Linux, or the LKCD kernel patch." + +HOMEPAGE = "http://people.redhat.com/anderson" +SECTION = "devel" + +LICENSE = "GPLv3" +LIC_FILES_CHKSUM = "file://COPYING3;md5=d32239bcb673463ab874e80d47fae504" + +DEPENDS = "zlib readline coreutils-native" + +S = "${WORKDIR}/git" +SRC_URI = "git://github.com/crash-utility/${BPN}.git \ + ${GNU_MIRROR}/gdb/gdb-7.6.tar.gz;name=gdb;subdir=git \ + file://7001force_define_architecture.patch \ + file://7003cross_ranlib.patch \ + file://0001-cross_add_configure_option.patch \ + file://sim-ppc-drop-LIBS-from-psim-dependency.patch \ + file://sim-common-sim-arange-fix-extern-inline-handling.patch \ + file://donnot-extract-gdb-during-do-compile.patch \ + file://gdb_build_jobs_and_not_write_crash_target.patch \ + file://remove-unrecognized-gcc-option-m32-for-mips.patch \ + file://0002-crash-fix-build-error-unknown-type-name-gdb_fpregset.patch \ + file://0003-crash-detect-the-sysroot-s-glibc-header-file.patch \ + " +SRCREV = "5b0e3777ccbb571678791903e93446ccd0aba03a" + +SRC_URI[gdb.md5sum] = "a9836707337e5f7bf76a009a8904f470" +SRC_URI[gdb.sha256sum] = "8070389a5dcc104eb0be483d582729f98ed4d761ad19cedd3f17b5d2502faa36" + +UPSTREAM_CHECK_URI = "https://github.com/crash-utility/crash/releases" + +inherit gettext + +BBCLASSEXTEND = "native cross" +TARGET_CC_ARCH_append = " ${SELECTED_OPTIMIZATION}" + +# crash 7.1.3 and before don't support mips64 +COMPATIBLE_HOST = "^(?!mips64).*" + +EXTRA_OEMAKE = 'RPMPKG="${PV}" \ + GDB_TARGET="${TARGET_SYS}" \ + GDB_HOST="${BUILD_SYS}" \ + GDB_MAKE_JOBS="${PARALLEL_MAKE}" \ + LDFLAGS="${LDFLAGS}" \ + ' + +EXTRA_OEMAKE_class-cross = 'RPMPKG="${PV}" \ + GDB_TARGET="${BUILD_SYS} \ + \${GDB_CONF_FLAGS} \ + --target=${TARGET_SYS}" \ + GDB_HOST="${BUILD_SYS}" \ + GDB_MAKE_JOBS="${PARALLEL_MAKE}" \ + ' + +EXTRA_OEMAKE_append_class-native = " LDFLAGS='${BUILD_LDFLAGS}'" +EXTRA_OEMAKE_append_class-cross = " LDFLAGS='${BUILD_LDFLAGS}'" + +REMOVE_M32 = "sed -i -e 's/#define TARGET_CFLAGS_ARM_ON_X86_64.*/#define TARGET_CFLAGS_ARM_ON_X86_64\t\"TARGET_CFLAGS=-D_FILE_OFFSET_BITS=64\"/g' ${S}/configure.c" + +REMOVE_M32_class-cross = "" + +do_configure() { + : +} + +do_compile_prepend() { + case ${TARGET_ARCH} in + aarch64*) ARCH=ARM64 ;; + arm*) ARCH=ARM ;; + i*86*) ARCH=X86 ;; + x86_64*) ARCH=X86_64 ;; + powerpc64*) ARCH=PPC64 ;; + powerpc*) ARCH=PPC ;; + mips*) ARCH=MIPS ;; + esac + + sed -i s/FORCE_DEFINE_ARCH/"${ARCH}"/g ${S}/configure.c + ${REMOVE_M32} + sed -i 's/>/>/g' ${S}/Makefile +} + +do_compile() { + oe_runmake ${EXTRA_OEMAKE} RECIPE_SYSROOT=${RECIPE_SYSROOT} +} + +do_install_prepend () { + install -d ${D}${bindir} + install -d ${D}/${mandir}/man8 + install -d ${D}${includedir}/crash + + install -m 0644 ${S}/crash.8 ${D}/${mandir}/man8/ + install -m 0644 ${S}/defs.h ${D}${includedir}/crash +} + +do_install_class-target () { + oe_runmake DESTDIR=${D} install +} + +do_install_class-native () { + oe_runmake DESTDIR=${D}${STAGING_DIR_NATIVE} install +} + +do_install_class-cross () { + install -m 0755 ${S}/crash ${D}/${bindir} +} + +RDEPENDS_${PN} += "liblzma" +RDEPENDS_${PN}_class-native = "" +RDEPENDS_${PN}_class-cross = "" + +# Causes gcc to get stuck and eat all available memory in qemuarm builds +# jenkins 15161 100 12.5 10389596 10321284 ? R 11:40 28:17 /home/jenkins/oe/world/shr-core/tmp-glibc/sysroots/x86_64-linux/usr/libexec/arm-oe-linux-gnueabi/gcc/arm-oe-linux-gnueabi/4.9.2/cc1 -quiet -I . -I . -I ./common -I ./config -I ./../include/opcode -I ./../opcodes/.. -I ./../readline/.. -I ../bfd -I ./../bfd -I ./../include -I ../libdecnumber -I ./../libdecnumber -I ./gnulib/import -I build-gnulib/import -isysroot /home/jenkins/oe/world/shr-core/tmp-glibc/sysroots/qemuarm -MMD eval.d -MF .deps/eval.Tpo -MP -MT eval.o -D LOCALEDIR="/usr/local/share/locale" -D CRASH_MERGE -D HAVE_CONFIG_H -D TUI=1 eval.c -quiet -dumpbase eval.c -march=armv5te -mthumb -mthumb-interwork -mtls-dialect=gnu -auxbase-strip eval.o -g -O2 -Wall -Wpointer-arith -Wformat-nonliteral -Wno-pointer-sign -Wno-unused -Wunused-value -Wunused-function -Wno-switch -Wno-char-subscripts -Wmissing-prototypes -Wdeclaration-after-statement -Wempty-body -feliminate-unused-debug-types -o - +ARM_INSTRUCTION_SET = "arm" + +# http://errors.yoctoproject.org/Errors/Details/186964/ +COMPATIBLE_HOST_libc-musl = 'null' diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-kernel/ipmiutil/ipmiutil_3.0.5.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-kernel/ipmiutil/ipmiutil_3.0.5.bb deleted file mode 100644 index 338cafd5..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-kernel/ipmiutil/ipmiutil_3.0.5.bb +++ /dev/null @@ -1,46 +0,0 @@ -SUMMARY = "ipmiutil is an easy-to-use set of IPMI server management utilities.\ -It can get/set sensor thresholds, automate SEL management, do SOL console, etc." - -DESCRIPTION = "The IPMI Management Utilities currently work with platforms that \ -support the IPMI 1.5 or 2.0 specification. IPMI servers can be managed\ -locally, or remotely via IPMI LAN, even when the OS or main CPU is not\ -functional.\n \ -The ipmiutil utilities will use an IPMI Driver, either the Intel IPMI package \ -(ipmidrvr, /dev/imb), MontaVista OpenIPMI (/dev/ipmi0), the valinux IPMI \ -Driver (/dev/ipmikcs), or the LANDesk ldipmi daemon. The ipmiutil utilities \ -can also use direct user-space I/Os in Linux or FreeBSD if no IPMI driver \ -is detected." - -HOMEPAGE = "http://ipmiutil.sourceforge.net" -LICENSE = "BSD-2-Clause" -LIC_FILES_CHKSUM = "file://COPYING;md5=626a5970304daa1fcb87f757fb42b795" - -DEPENDS += "openssl" - -PARALLEL_MAKE = "" - -SRC_URI = "${SOURCEFORGE_MIRROR}/ipmiutil/ipmiutil-${PV}.tar.gz \ - file://fix_systemd_path.patch \ - " -SRC_URI[md5sum] = "5feaf6a827205792e057bb4ff5c4e842" -SRC_URI[sha256sum] = "b2d7f72535131c7832ba4be13dc33c81513fc3ee43fe797b4b52014600ecee5e" - -inherit autotools-brokensep pkgconfig systemd - -PACKAGECONFIG ?= "lanplus gpl" -PACKAGECONFIG += "${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)}" -PACKAGECONFIG[systemd] = "--enable-systemd=${datadir}/${BPN}, --enable-systemd=no" -PACKAGECONFIG[sha256] = "--enable-sha256, --enable-sha256=no, openssl-native, openssl" -PACKAGECONFIG[lanplus] = "--enable-lanplus, --enable-lanplus=no, openssl-native, openssl" -PACKAGECONFIG[landesk] = "--enable-landesk, --enable-landesk=no" -PACKAGECONFIG[sensors] = "--enable-libsensors, --enable-libsensors=no" - -#build with some GPL code -PACKAGECONFIG[gpl] = "--enable-gpl, --enable-gpl=no" -#no GPL or LanPlus libs -PACKAGECONFIG[standalone] = "--enable-standalone, --enable-standalone=no" - -CFLAGS += "-I${STAGING_INCDIR}" -LDFLAGS += "-L${STAGING_LIBDIR}" - -COMPATIBLE_HOST = '(x86_64|i.86).*-linux' diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-kernel/ipmiutil/ipmiutil_3.1.5.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-kernel/ipmiutil/ipmiutil_3.1.5.bb new file mode 100644 index 00000000..3e263402 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-kernel/ipmiutil/ipmiutil_3.1.5.bb @@ -0,0 +1,46 @@ +SUMMARY = "ipmiutil is an easy-to-use set of IPMI server management utilities.\ +It can get/set sensor thresholds, automate SEL management, do SOL console, etc." + +DESCRIPTION = "The IPMI Management Utilities currently work with platforms that \ +support the IPMI 1.5 or 2.0 specification. IPMI servers can be managed\ +locally, or remotely via IPMI LAN, even when the OS or main CPU is not\ +functional.\n \ +The ipmiutil utilities will use an IPMI Driver, either the Intel IPMI package \ +(ipmidrvr, /dev/imb), MontaVista OpenIPMI (/dev/ipmi0), the valinux IPMI \ +Driver (/dev/ipmikcs), or the LANDesk ldipmi daemon. The ipmiutil utilities \ +can also use direct user-space I/Os in Linux or FreeBSD if no IPMI driver \ +is detected." + +HOMEPAGE = "http://ipmiutil.sourceforge.net" +LICENSE = "BSD-2-Clause" +LIC_FILES_CHKSUM = "file://COPYING;md5=626a5970304daa1fcb87f757fb42b795" + +DEPENDS += "openssl" + +PARALLEL_MAKE = "" + +SRC_URI = "${SOURCEFORGE_MIRROR}/ipmiutil/ipmiutil-${PV}.tar.gz \ + file://fix_systemd_path.patch \ + " +SRC_URI[md5sum] = "292d6df25cad678bb27e5c8cdc6748f9" +SRC_URI[sha256sum] = "58ccdbd5755d7dd72478756715af09e9c73330dfad2b91dbf03d2ac504b301a3" + +inherit autotools-brokensep pkgconfig systemd + +PACKAGECONFIG ?= "lanplus gpl" +PACKAGECONFIG += "${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)}" +PACKAGECONFIG[systemd] = "--enable-systemd=${datadir}/${BPN}, --enable-systemd=no" +PACKAGECONFIG[sha256] = "--enable-sha256, --enable-sha256=no, openssl-native, openssl" +PACKAGECONFIG[lanplus] = "--enable-lanplus, --enable-lanplus=no, openssl-native, openssl" +PACKAGECONFIG[landesk] = "--enable-landesk, --enable-landesk=no" +PACKAGECONFIG[sensors] = "--enable-libsensors, --enable-libsensors=no" + +#build with some GPL code +PACKAGECONFIG[gpl] = "--enable-gpl, --enable-gpl=no" +#no GPL or LanPlus libs +PACKAGECONFIG[standalone] = "--enable-standalone, --enable-standalone=no" + +CFLAGS += "-I${STAGING_INCDIR}" +LDFLAGS += "-L${STAGING_LIBDIR}" + +COMPATIBLE_HOST = '(x86_64|i.86).*-linux' diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-kernel/kernel-selftest/kernel-selftest.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-kernel/kernel-selftest/kernel-selftest.bb index 181e97ca..02c56bee 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-kernel/kernel-selftest/kernel-selftest.bb +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-kernel/kernel-selftest/kernel-selftest.bb @@ -33,12 +33,14 @@ S = "${WORKDIR}/${BP}" TEST_LIST = "\ ${@bb.utils.filter('PACKAGECONFIG', 'bpf vm', d)} \ + rtc \ " EXTRA_OEMAKE = '\ CROSS_COMPILE=${TARGET_PREFIX} \ ARCH=${ARCH} \ CC="${CC}" \ + CLANG="clang -fno-stack-protector" \ AR="${AR}" \ LD="${LD}" \ DESTDIR="${D}" \ @@ -52,20 +54,11 @@ KERNEL_SELFTEST_SRC ?= "Makefile \ LICENSES \ " -python __anonymous () { - import re - - var = d.getVar('TARGET_CC_ARCH') - pattern = '_FORTIFY_SOURCE=[^0]' - - if re.search(pattern, var): - d.appendVar('TARGET_CC_ARCH', " -O") -} - do_compile() { - bbwarn "clang >= 6.0 with bpf support is needed with kernel 4.18+ so \ -either install it and add it to HOSTTOOLS, or add \ -clang-native from meta-clang to dependency" + if [ ${@bb.utils.contains('DEPENDS', 'clang-native', 'True', 'False', d)} = 'False' ]; then + bbwarn "clang >= 6.0 with bpf support is needed with kernel 4.18+ so +either install it and add it to HOSTTOOLS, or add clang-native from meta-clang to dependency" + fi for i in ${TEST_LIST} do oe_runmake -C ${S}/tools/testing/selftests/${i} @@ -121,3 +114,11 @@ FILES_${PN} += "/usr/kernel-selftest" RDEPENDS_${PN} += "python3" # tools/testing/selftests/vm/Makefile doesn't respect LDFLAGS and tools/testing/selftests/Makefile explicitly overrides to empty INSANE_SKIP_${PN} += "ldflags" + +SECURITY_CFLAGS = "" +COMPATIBLE_HOST_libc-musl = 'null' + +# It has native clang/llvm dependency, poky distro is reluctant to include them as deps +# this helps with world builds on AB +EXCLUDE_FROM_WORLD = "1" + diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-kernel/kpatch/kpatch.inc b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-kernel/kpatch/kpatch.inc index cd819f31..1f70f720 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-kernel/kpatch/kpatch.inc +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-kernel/kpatch/kpatch.inc @@ -15,7 +15,9 @@ EXTRA_OEMAKE = " \ LIBDIR=${D}${libdir} \ MANDIR=${D}${mandir}/man1 \ SYSTEMDDIR=${D}${systemd_system_unitdir} \ + UPSTARTDIR=${D}${sysconfdir}/init \ DESTDIR=${D} \ + ARCH=${TARGET_ARCH} \ BUILDMOD=no \ CC='${CC}' \ " diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-kernel/kpatch/kpatch/0001-kpatch-build-add-cross-compilation-support.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-kernel/kpatch/kpatch/0001-kpatch-build-add-cross-compilation-support.patch index ab3b1276..348d82ac 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-kernel/kpatch/kpatch/0001-kpatch-build-add-cross-compilation-support.patch +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-kernel/kpatch/kpatch/0001-kpatch-build-add-cross-compilation-support.patch @@ -1,6 +1,6 @@ -From 70de3fecbc551907c4fd504cfff385c73be8db75 Mon Sep 17 00:00:00 2001 -From: Ruslan Bilovol -Date: Tue, 19 Dec 2017 15:59:04 +0200 +From 21909e3f9096fa8e4825df8c65114ee92ab3d532 Mon Sep 17 00:00:00 2001 +From: Zang Ruochen +Date: Wed, 7 Aug 2019 02:57:35 +0900 Subject: [PATCH] kpatch-build: add cross-compilation support This patch introduces new option for kpatch-build @@ -17,44 +17,45 @@ possible to pass multy-component strings like Upstream-Status: Pending Signed-off-by: Ruslan Bilovol - --- kpatch-build/kpatch-build | 13 +++++++++++-- kpatch-build/kpatch-gcc | 4 ++-- 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/kpatch-build/kpatch-build b/kpatch-build/kpatch-build -index a76913f..4a011aa 100755 +index 9ef3809..463dab1 100755 --- a/kpatch-build/kpatch-build +++ b/kpatch-build/kpatch-build -@@ -197,7 +197,7 @@ gcc_version_check() { +@@ -198,7 +198,7 @@ gcc_version_check() { # gcc --version varies between distributions therefore extract version # by compiling a test file and compare it to vmlinux's version. echo 'void main(void) {}' > "$c" - out="$(gcc -c -pg -ffunction-sections -o "$o" "$c" 2>&1)" + out="$(${KPATCH_CROSS_COMPILE}gcc -c -pg -ffunction-sections -o "$o" "$c" 2>&1)" gccver="$(gcc_version_from_file "$o")" - kgccver="$(gcc_version_from_file "$VMLINUX")" - rm -f "$c" "$o" -@@ -392,12 +392,14 @@ usage() { - echo " -d, --debug Enable 'xtrace' and keep scratch files" >&2 - echo " in /tmp" >&2 + if [[ -n "$OOT_MODULE" ]]; then + kgccver="$(gcc_version_from_file "$OOT_MODULE")" +@@ -411,6 +411,8 @@ usage() { echo " (can be specified multiple times)" >&2 + echo " -e, --oot-module Enable patching out-of-tree module," >&2 + echo " specify current version of module" >&2 + echo " --cross-compile Specify the prefix used for all executables" >&2 + echo " used during compilation" >&2 echo " --skip-cleanup Skip post-build cleanup" >&2 - echo " --skip-gcc-check Skip gcc version matching check" >&2 + echo " --skip-gcc-check Skip gcc version matching check" >&2 + echo " (not recommended)" >&2 +@@ -416,7 +418,7 @@ usage() { echo " (not recommended)" >&2 } --options="$(getopt -o ha:r:s:c:v:j:t:n:o:d -l "help,archversion:,sourcerpm:,sourcedir:,config:,vmlinux:,jobs:,target:,name:,output:,debug,skip-gcc-check,skip-cleanup" -- "$@")" || die "getopt failed" -+options="$(getopt -o ha:r:s:c:v:j:t:n:o:d -l "help,archversion:,sourcerpm:,sourcedir:,config:,vmlinux:,jobs:,target:,name:,output:,debug,cross-compile:,skip-gcc-check,skip-cleanup" -- "$@")" || die "getopt failed" +-options="$(getopt -o ha:r:s:c:v:j:t:n:o:de: -l "help,archversion:,sourcerpm:,sourcedir:,config:,vmlinux:,jobs:,target:,name:,output:,oot-module:,debug,skip-gcc-check,skip-cleanup" -- "$@")" || die "getopt failed" ++options="$(getopt -o ha:r:s:c:v:j:t:n:o:de: -l "help,archversion:,sourcerpm:,sourcedir:,config:,vmlinux:,jobs:,target:,name:,output:,oot-module:,debug,cross-compile:,skip-gcc-check,skip-cleanup" -- "$@")" || die "getopt failed" eval set -- "$options" -@@ -455,6 +457,10 @@ while [[ $# -gt 0 ]]; do - echo "DEBUG mode enabled" - fi +@@ -479,6 +481,10 @@ while [[ $# -gt 0 ]]; do + OOT_MODULE="$(readlink -f "$2")" + shift ;; + --cross-compile) + KPATCH_CROSS_COMPILE="$2" @@ -63,17 +64,17 @@ index a76913f..4a011aa 100755 --skip-cleanup) echo "Skipping cleanup" SKIPCLEANUP=1 -@@ -710,6 +716,8 @@ if [[ $DEBUG -ge 4 ]]; then +@@ -757,6 +763,8 @@ if [[ $DEBUG -ge 4 ]]; then export KPATCH_GCC_DEBUG=1 fi +export KPATCH_CROSS_COMPILE + - echo "Building original kernel" - ./scripts/setlocalversion --save-scmversion || die + echo "Building original source" + [[ -n "$OOT_MODULE" ]] || ./scripts/setlocalversion --save-scmversion || die unset KPATCH_GCC_TEMPDIR -@@ -874,6 +882,7 @@ cd "$TEMPDIR/patch" || die - KPATCH_BUILD="$SRCDIR" KPATCH_NAME="$MODNAME" \ +@@ -940,6 +948,7 @@ fi + KPATCH_BUILD="$KPATCH_BUILD" KPATCH_NAME="$MODNAME" \ KBUILD_EXTRA_SYMBOLS="$KBUILD_EXTRA_SYMBOLS" \ KPATCH_LDFLAGS="$KPATCH_LDFLAGS" \ +CROSS_COMPILE="$KPATCH_CROSS_COMPILE" \ @@ -81,7 +82,7 @@ index a76913f..4a011aa 100755 if ! "$KPATCH_MODULE"; then diff --git a/kpatch-build/kpatch-gcc b/kpatch-build/kpatch-gcc -index 2d56da1..59a4255 100755 +index 9663290..56e6c8f 100755 --- a/kpatch-build/kpatch-gcc +++ b/kpatch-build/kpatch-gcc @@ -8,7 +8,7 @@ TOOLCHAINCMD="$1" @@ -93,9 +94,12 @@ index 2d56da1..59a4255 100755 fi declare -a args=("$@") -@@ -82,4 +82,4 @@ elif [[ "$TOOLCHAINCMD" = "ld" ]] ; then +@@ -84,4 +84,4 @@ elif [[ "$TOOLCHAINCMD" = "ld" ]] ; then done fi -exec "$TOOLCHAINCMD" "${args[@]}" +exec ${KPATCH_CROSS_COMPILE}${TOOLCHAINCMD} "${args[@]}" +-- +2.7.4 + diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-kernel/kpatch/kpatch/0002-kpatch-build-allow-overriding-of-distro-name.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-kernel/kpatch/kpatch/0002-kpatch-build-allow-overriding-of-distro-name.patch index 13cdc6bf..603a1475 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-kernel/kpatch/kpatch/0002-kpatch-build-allow-overriding-of-distro-name.patch +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-kernel/kpatch/kpatch/0002-kpatch-build-allow-overriding-of-distro-name.patch @@ -1,6 +1,6 @@ -From 15838a86d5ea94fa05976ea32fd847b18261b403 Mon Sep 17 00:00:00 2001 -From: Ruslan Bilovol -Date: Tue, 2 Jan 2018 14:50:03 +0200 +From 4143fa0092fe4cafee10b24a97d3ad0b41ab7a30 Mon Sep 17 00:00:00 2001 +From: Zang Ruochen +Date: Wed, 7 Aug 2019 03:24:39 +0900 Subject: [PATCH] kpatch-build: allow overriding of distro name It is sometimes useful to have ability to override @@ -14,17 +14,16 @@ implements all needed functionality Upstream-Status: Pending Signed-off-by: Ruslan Bilovol - --- kpatch-build/kpatch-build | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/kpatch-build/kpatch-build b/kpatch-build/kpatch-build -index 4a011aa..eb6cd64 100755 +index 39933fc..c0258a2 100755 --- a/kpatch-build/kpatch-build +++ b/kpatch-build/kpatch-build -@@ -394,12 +394,13 @@ usage() { - echo " (can be specified multiple times)" >&2 +@@ -413,12 +413,13 @@ usage() { + echo " specify current version of module" >&2 echo " --cross-compile Specify the prefix used for all executables" >&2 echo " used during compilation" >&2 + echo " --distro Override distro name" >&2 @@ -33,12 +32,12 @@ index 4a011aa..eb6cd64 100755 echo " (not recommended)" >&2 } --options="$(getopt -o ha:r:s:c:v:j:t:n:o:d -l "help,archversion:,sourcerpm:,sourcedir:,config:,vmlinux:,jobs:,target:,name:,output:,debug,cross-compile:,skip-gcc-check,skip-cleanup" -- "$@")" || die "getopt failed" -+options="$(getopt -o ha:r:s:c:v:j:t:n:o:d -l "help,archversion:,sourcerpm:,sourcedir:,config:,vmlinux:,jobs:,target:,name:,output:,debug,cross-compile:,distro:,skip-gcc-check,skip-cleanup" -- "$@")" || die "getopt failed" +-options="$(getopt -o ha:r:s:c:v:j:t:n:o:de: -l "help,archversion:,sourcerpm:,sourcedir:,config:,vmlinux:,jobs:,target:,name:,output:,oot-module:,debug,cross-compile:,skip-gcc-check,skip-cleanup" -- "$@")" || die "getopt failed" ++options="$(getopt -o ha:r:s:c:v:j:t:n:o:de: -l "help,archversion:,sourcerpm:,sourcedir:,config:,vmlinux:,jobs:,target:,name:,output:,oot-module:,debug,cross-compile:,distro:,skip-gcc-check,skip-cleanup" -- "$@")" || die "getopt failed" eval set -- "$options" -@@ -461,6 +462,10 @@ while [[ $# -gt 0 ]]; do +@@ -485,6 +486,10 @@ while [[ $# -gt 0 ]]; do KPATCH_CROSS_COMPILE="$2" shift ;; @@ -49,7 +48,7 @@ index 4a011aa..eb6cd64 100755 --skip-cleanup) echo "Skipping cleanup" SKIPCLEANUP=1 -@@ -539,7 +544,7 @@ fi +@@ -571,7 +576,7 @@ fi # Don't check external file. # shellcheck disable=SC1091 source /etc/os-release @@ -58,3 +57,6 @@ index 4a011aa..eb6cd64 100755 if [[ "$DISTRO" = fedora ]] || [[ "$DISTRO" = rhel ]] || [[ "$DISTRO" = ol ]] || [[ "$DISTRO" = centos ]]; then [[ -z "$VMLINUX" ]] && VMLINUX="/usr/lib/debug/lib/modules/$ARCHVERSION/vmlinux" [[ -e "$VMLINUX" ]] || die "kernel-debuginfo-$ARCHVERSION not installed" +-- +2.7.4 + diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-kernel/kpatch/kpatch_git.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-kernel/kpatch/kpatch_git.bb index 024cca65..6326a253 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-kernel/kpatch/kpatch_git.bb +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-kernel/kpatch/kpatch_git.bb @@ -2,9 +2,9 @@ require kpatch.inc LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263" -SRCREV = "7f550f01bd308cf058ae782327d29c8916cc5602" +SRCREV = "2a29bc7dea9a7da12705c7b50315eee1acdd9156" -PV = "0.6.1+git${SRCPV}" +PV = "0.8.0" S = "${WORKDIR}/git" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-kernel/libpfm/libpfm4/0001-Include-poll.h-instead-of-sys-poll.h.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-kernel/libpfm/libpfm4/0001-Include-poll.h-instead-of-sys-poll.h.patch new file mode 100644 index 00000000..fe13df2b --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-kernel/libpfm/libpfm4/0001-Include-poll.h-instead-of-sys-poll.h.patch @@ -0,0 +1,86 @@ +From f62b629c1e1e968f90aafbc0cf9116b49eea9d8e Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Sun, 15 Dec 2019 16:24:37 -0800 +Subject: [PATCH] Include poll.h instead of sys/poll.h + +Fixes +error: redirecting incorrect #include to [-Werror,-W#warnings] + +Upstream-Status: Pending +Signed-off-by: Khem Raj +--- + perf_examples/branch_smpl.c | 2 +- + perf_examples/syst_smpl.c | 2 +- + perf_examples/task_attach_timeout.c | 2 +- + perf_examples/task_smpl.c | 2 +- + perf_examples/x86/bts_smpl.c | 2 +- + 5 files changed, 5 insertions(+), 5 deletions(-) + +diff --git a/perf_examples/branch_smpl.c b/perf_examples/branch_smpl.c +index 87cd303..4d16b04 100644 +--- a/perf_examples/branch_smpl.c ++++ b/perf_examples/branch_smpl.c +@@ -32,7 +32,7 @@ + #include + #include + #include +-#include ++#include + #include + #include + #include +diff --git a/perf_examples/syst_smpl.c b/perf_examples/syst_smpl.c +index 04580fd..d059c08 100755 +--- a/perf_examples/syst_smpl.c ++++ b/perf_examples/syst_smpl.c +@@ -33,7 +33,7 @@ + #include + #include + #include +-#include ++#include + #include + #include + #include +diff --git a/perf_examples/task_attach_timeout.c b/perf_examples/task_attach_timeout.c +index 7fc5524..a0367c8 100644 +--- a/perf_examples/task_attach_timeout.c ++++ b/perf_examples/task_attach_timeout.c +@@ -36,7 +36,7 @@ + #include + #include + #include +-#include ++#include + + #include "perf_util.h" + +diff --git a/perf_examples/task_smpl.c b/perf_examples/task_smpl.c +index dcb7481..95c432c 100644 +--- a/perf_examples/task_smpl.c ++++ b/perf_examples/task_smpl.c +@@ -37,7 +37,7 @@ + #include + #include + #include +-#include ++#include + #include + #include + #include +diff --git a/perf_examples/x86/bts_smpl.c b/perf_examples/x86/bts_smpl.c +index 6498776..d66d5e6 100644 +--- a/perf_examples/x86/bts_smpl.c ++++ b/perf_examples/x86/bts_smpl.c +@@ -41,7 +41,7 @@ + #include + #include + #include +-#include ++#include + #include + #include + #include +-- +2.24.1 + diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-kernel/libpfm/libpfm4_4.10.1.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-kernel/libpfm/libpfm4_4.10.1.bb new file mode 100644 index 00000000..9b43b4a9 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-kernel/libpfm/libpfm4_4.10.1.bb @@ -0,0 +1,31 @@ +SUMMARY = "Monitoring tools exploiting the performance monitoring events" +DESCRIPTION = "This package provides a library, called libpfm4 which is used to develop \ +monitoring tools exploiting the performance monitoring events such as those \ +provided by the Performance Monitoring Unit (PMU) of modern processors." +HOMEPAGE = "http://perfmon2.sourceforge.net/" +BUGTRACKER = "http://sourceforge.net/tracker/?group_id=144822&atid=759953&source=navbar" + +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://COPYING;md5=0de488f3bd4424e308e2e399cb99c788" + +SECTION = "devel" + +COMPATIBLE_HOST = "powerpc64" + +SRC_URI = "${SOURCEFORGE_MIRROR}/perfmon2/${BPN}/libpfm-${PV}.tar.gz \ + file://0001-Include-poll.h-instead-of-sys-poll.h.patch \ + " +SRC_URI[md5sum] = "d8f66cb9bfa7e1434434e0de6409db5b" +SRC_URI[sha256sum] = "c61c575378b5c17ccfc5806761e4038828610de76e2e34fac9f7fa73ba844b49" + +UPSTREAM_CHECK_URI = "http://sourceforge.net/projects/perfmon2/files/libpfm4/" + +EXTRA_OEMAKE = "DESTDIR=\"${D}\" PREFIX=\"${prefix}\" LIBDIR=\"${libdir}\" LDCONFIG=\"true\"" +EXTRA_OEMAKE_append_powerpc = " ARCH=\"powerpc\"" +EXTRA_OEMAKE_append_powerpc64 = " ARCH=\"powerpc\" BITMODE=\"64\"" + +S = "${WORKDIR}/libpfm-${PV}" + +do_install () { + oe_runmake install +} diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-kernel/makedumpfile/makedumpfile/0001-makedumpfile-replace-hardcode-CFLAGS.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-kernel/makedumpfile/makedumpfile/0001-makedumpfile-replace-hardcode-CFLAGS.patch index a4780652..c0f82f32 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-kernel/makedumpfile/makedumpfile/0001-makedumpfile-replace-hardcode-CFLAGS.patch +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-kernel/makedumpfile/makedumpfile/0001-makedumpfile-replace-hardcode-CFLAGS.patch @@ -1,4 +1,4 @@ -From 8eeb1b15608ce1a9a1f0d5417938fd6da4504406 Mon Sep 17 00:00:00 2001 +From af97e2ad643334b4c7c3d66f971ce9ebb2b596af Mon Sep 17 00:00:00 2001 From: Mingli Yu Date: Thu, 21 Jul 2016 18:06:21 +0800 Subject: [PATCH] makedumpfile: replace hardcode CFLAGS @@ -13,30 +13,28 @@ Subject: [PATCH] makedumpfile: replace hardcode CFLAGS Upstream-Status: Inappropriate[oe specific] Signed-off-by: Mingli Yu - --- - Makefile | 46 +++++++++++++++++++++++----------------------- - 1 file changed, 23 insertions(+), 23 deletions(-) + Makefile | 45 +++++++++++++++++++++++---------------------- + 1 file changed, 23 insertions(+), 22 deletions(-) diff --git a/Makefile b/Makefile -index 612b9d0..f6d6265 100644 +index 1fdb628..5dce589 100644 --- a/Makefile +++ b/Makefile -@@ -8,13 +8,6 @@ ifeq ($(strip $CC),) +@@ -8,12 +8,6 @@ ifeq ($(strip $CC),) CC = gcc endif --CFLAGS = -g -O2 -Wall -D_FILE_OFFSET_BITS=64 \ -- -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE \ -- -DVERSION='"$(VERSION)"' -DRELEASE_DATE='"$(DATE)"' --CFLAGS_ARCH = -g -O2 -Wall -D_FILE_OFFSET_BITS=64 \ -- -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE +-CFLAGS_BASE := $(CFLAGS) -g -O2 -Wall -D_FILE_OFFSET_BITS=64 \ +- -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE +-CFLAGS := $(CFLAGS_BASE) -DVERSION='"$(VERSION)"' -DRELEASE_DATE='"$(DATE)"' +-CFLAGS_ARCH := $(CFLAGS_BASE) -# LDFLAGS = -L/usr/local/lib -I/usr/local/include - HOST_ARCH := $(shell uname -m) # Use TARGET as the target architecture if specified. # Defaults to uname -m -@@ -22,29 +15,36 @@ ifeq ($(strip($TARGET)),) +@@ -21,29 +15,36 @@ ifeq ($(strip($TARGET)),) TARGET := $(HOST_ARCH) endif @@ -72,18 +70,18 @@ index 612b9d0..f6d6265 100644 endif +CFLAGS_ARCH += $(CFLAGS) \ -+ -D_FILE_OFFSET_BITS=64 \ -+ -D_LARGEFILE_SOURCE \ -+ -D_LARGEFILE64_SOURCE ++ -D_FILE_OFFSET_BITS=64 \ ++ -D_LARGEFILE_SOURCE \ ++ -D_LARGEFILE64_SOURCE + +CFLAGS_COMMON = $(CFLAGS_ARCH) \ -+ -DVERSION='"$(VERSION)"' \ -+ -DRELEASE_DATE='"$(DATE)"' ++ -DVERSION='"$(VERSION)"' \ ++ -DRELEASE_DATE='"$(DATE)"' + SRC_BASE = makedumpfile.c makedumpfile.h diskdump_mod.h sadump_mod.h sadump_info.h SRC_PART = print_info.c dwarf_info.c elf_info.c erase_info.c sadump_info.c cache.c tools.c OBJ_PART=$(patsubst %.c,%.o,$(SRC_PART)) -@@ -53,17 +53,17 @@ OBJ_ARCH=$(patsubst %.c,%.o,$(SRC_ARCH)) +@@ -52,17 +53,17 @@ OBJ_ARCH=$(patsubst %.c,%.o,$(SRC_ARCH)) LIBS = -ldw -lbz2 -lebl -ldl -lelf -lz ifneq ($(LINKTYPE), dynamic) @@ -104,7 +102,7 @@ index 612b9d0..f6d6265 100644 endif LIBS := -lpthread $(LIBS) -@@ -71,14 +71,14 @@ LIBS := -lpthread $(LIBS) +@@ -82,14 +83,14 @@ LIBS := $(LIBS) $(call try-run,\ all: makedumpfile $(OBJ_PART): $(SRC_PART) @@ -121,7 +119,7 @@ index 612b9d0..f6d6265 100644 echo .TH MAKEDUMPFILE 8 \"$(DATE)\" \"makedumpfile v$(VERSION)\" \"Linux System Administrator\'s Manual\" > temp.8 grep -v "^.TH MAKEDUMPFILE 8" $(VPATH)makedumpfile.8 >> temp.8 mv temp.8 makedumpfile.8 -@@ -89,7 +89,7 @@ makedumpfile: $(SRC_BASE) $(OBJ_PART) $(OBJ_ARCH) +@@ -100,7 +101,7 @@ makedumpfile: $(SRC_BASE) $(OBJ_PART) $(OBJ_ARCH) gzip -c ./makedumpfile.conf.5 > ./makedumpfile.conf.5.gz eppic_makedumpfile.so: extension_eppic.c @@ -130,3 +128,6 @@ index 612b9d0..f6d6265 100644 clean: rm -f $(OBJ) $(OBJ_PART) $(OBJ_ARCH) makedumpfile makedumpfile.8.gz makedumpfile.conf.5.gz +-- +2.21.0 + diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-kernel/makedumpfile/makedumpfile/0002-mem_section-Support-only-46-bit-for-MAX_PHYSMEM_BITS.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-kernel/makedumpfile/makedumpfile/0002-mem_section-Support-only-46-bit-for-MAX_PHYSMEM_BITS.patch index 156b4d57..1707df3e 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-kernel/makedumpfile/makedumpfile/0002-mem_section-Support-only-46-bit-for-MAX_PHYSMEM_BITS.patch +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-kernel/makedumpfile/makedumpfile/0002-mem_section-Support-only-46-bit-for-MAX_PHYSMEM_BITS.patch @@ -1,4 +1,4 @@ -From 0d1cdb59da3603e0a80913617ece0164b05380d2 Mon Sep 17 00:00:00 2001 +From 9045b72bdb703bf58a6586d77461eea8f59f50f7 Mon Sep 17 00:00:00 2001 From: Alexandru Moise Date: Fri, 29 Apr 2016 07:40:46 +0000 Subject: [PATCH] mem_section: Support only 46 bit for MAX_PHYSMEM_BITS on @@ -23,18 +23,20 @@ Signed-off-by: Yi Zhao [hqBai: adjusted patch for context, no logical change] Signed-off-by: Haiqing Bai +Signed-off-by: Mingli Yu --- - arch/ppc64.c | 33 ++------------------------------- - 1 file changed, 2 insertions(+), 31 deletions(-) + arch/ppc64.c | 38 ++------------------------------------ + 1 file changed, 2 insertions(+), 36 deletions(-) diff --git a/arch/ppc64.c b/arch/ppc64.c -index 947a125..458f06b 100644 +index 9d8f252..6f4860f 100644 --- a/arch/ppc64.c +++ b/arch/ppc64.c -@@ -463,42 +463,13 @@ ppc64_vtop_level4(unsigned long vaddr) +@@ -462,48 +462,14 @@ ppc64_vtop_level4(unsigned long vaddr) + return paddr; } - int +-int -set_ppc64_max_physmem_bits(void) -{ - long array_len = ARRAY_LENGTH(mem_section); @@ -58,10 +60,15 @@ index 947a125..458f06b 100644 - || (array_len == (NR_MEM_SECTIONS() / _SECTIONS_PER_ROOT()))) - return TRUE; - +- info->max_physmem_bits = _MAX_PHYSMEM_BITS_4_20; +- if ((array_len == (NR_MEM_SECTIONS() / _SECTIONS_PER_ROOT_EXTREME())) +- || (array_len == (NR_MEM_SECTIONS() / _SECTIONS_PER_ROOT()))) +- return TRUE; +- - return FALSE; -} - --int + int get_machdep_info_ppc64(void) { unsigned long vmlist, vmap_area_list, vmalloc_start; @@ -77,5 +84,5 @@ index 947a125..458f06b 100644 if (SYMBOL(_stext) == NOT_FOUND_SYMBOL) { -- -2.7.4 +2.21.0 diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-kernel/makedumpfile/makedumpfile/0003-build-Delete-libebl-from-required-libraries-during-l.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-kernel/makedumpfile/makedumpfile/0003-build-Delete-libebl-from-required-libraries-during-l.patch new file mode 100644 index 00000000..40956434 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-kernel/makedumpfile/makedumpfile/0003-build-Delete-libebl-from-required-libraries-during-l.patch @@ -0,0 +1,34 @@ +From 460851c15e807d1a2515dfb985423f8a6624f4aa Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Wed, 8 Jan 2020 19:14:19 -0800 +Subject: [PATCH 3/3] build: Delete libebl from required libraries during link + +This is a static library from elfutils, which is not made available when +static archives are disabled, this can result in link failures e.g. + +aarch64-yoe-linux-musl/9.2.0/ld: cannot find -lebl +collect2: error: ld returned 1 exit status +Makefile:93: recipe for target 'makedumpfile' failed + +Upstream-Status: Pending +Signed-off-by: Khem Raj +--- + Makefile | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/Makefile b/Makefile +index 5dce589..c3a4054 100644 +--- a/Makefile ++++ b/Makefile +@@ -51,7 +51,7 @@ OBJ_PART=$(patsubst %.c,%.o,$(SRC_PART)) + SRC_ARCH = arch/arm.c arch/arm64.c arch/x86.c arch/x86_64.c arch/ia64.c arch/ppc64.c arch/s390x.c arch/ppc.c arch/sparc64.c + OBJ_ARCH=$(patsubst %.c,%.o,$(SRC_ARCH)) + +-LIBS = -ldw -lbz2 -lebl -ldl -lelf -lz ++LIBS = -ldw -lbz2 -ldl -lelf -lz + ifneq ($(LINKTYPE), dynamic) + LIBS := $(LIBS) + endif +-- +2.24.1 + diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-kernel/makedumpfile/makedumpfile_1.6.5.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-kernel/makedumpfile/makedumpfile_1.6.5.bb deleted file mode 100644 index 413b413a..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-kernel/makedumpfile/makedumpfile_1.6.5.bb +++ /dev/null @@ -1,57 +0,0 @@ -SUMMARY = "VMcore extraction tool" -DESCRIPTION = "\ - This program is used to extract a subset of the memory available either \ - via /dev/mem or /proc/vmcore (for crashdumps). It is used to get memory \ - images without extra uneeded information (zero pages, userspace programs, \ - etc). \ -" -HOMEPAGE = "http://makedumpfile.sourceforge.net" - -LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe" -LICENSE = "GPLv2.0" - -DEPENDS = "bzip2 zlib elfutils" -RDEPENDS_${PN}-tools = "perl ${PN}" - -# arm and aarch64 would compile but has never been tested upstream. mips would not compile. -# -COMPATIBLE_HOST = "(x86_64|i.86|powerpc|arm|aarch64).*-linux" - -PACKAGES =+ "${PN}-tools" -FILES_${PN}-tools = "${bindir}/*.pl" - -SRC_URI = "\ - ${SOURCEFORGE_MIRROR}/makedumpfile/${BPN}-${PV}.tar.gz \ - file://0001-makedumpfile-replace-hardcode-CFLAGS.patch \ - file://0002-mem_section-Support-only-46-bit-for-MAX_PHYSMEM_BITS.patch \ -" -SRC_URI[md5sum] = "1737f8e8904d565629f0c9e702f92d02" -SRC_URI[sha256sum] = "5d4f1d6ded8dca6951eeabcf4bb1ebf6575288fee947529397103c040eb5c760" - -UPSTREAM_CHECK_URI = "https://sourceforge.net/projects/makedumpfile/files/makedumpfile/" -UPSTREAM_CHECK_REGEX = "makedumpfile/(?P\d+(\.\d+)+)/" - -SECTION = "base" - -# If we do not specify TARGET, makedumpfile will build for the host but use the -# target gcc. -# -EXTRA_OEMAKE = "\ - LINKTYPE=static \ - TARGET=${TARGET_ARCH} \ -" - -do_install () { - mkdir -p ${D}/usr/bin - install -m 755 ${S}/makedumpfile ${D}/usr/bin - install -m 755 ${S}/makedumpfile-R.pl ${D}/usr/bin - - mkdir -p ${D}/usr/share/man/man8 - install -m 644 ${S}/makedumpfile.8.gz ${D}/usr/share/man/man8 - - mkdir -p ${D}/usr/share/man/man5 - install -m 644 ${S}/makedumpfile.conf.5.gz ${D}/usr/share/man/man5 - - mkdir -p ${D}/etc/ - install -m 644 ${S}/makedumpfile.conf ${D}/etc/makedumpfile.conf.sample -} diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-kernel/makedumpfile/makedumpfile_1.6.6.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-kernel/makedumpfile/makedumpfile_1.6.6.bb new file mode 100644 index 00000000..6924e39d --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-kernel/makedumpfile/makedumpfile_1.6.6.bb @@ -0,0 +1,58 @@ +SUMMARY = "VMcore extraction tool" +DESCRIPTION = "\ + This program is used to extract a subset of the memory available either \ + via /dev/mem or /proc/vmcore (for crashdumps). It is used to get memory \ + images without extra uneeded information (zero pages, userspace programs, \ + etc). \ +" +HOMEPAGE = "http://makedumpfile.sourceforge.net" + +LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe" +LICENSE = "GPLv2.0" + +DEPENDS = "bzip2 zlib elfutils" +RDEPENDS_${PN}-tools = "perl ${PN}" + +# arm and aarch64 would compile but has never been tested upstream. mips would not compile. +# +COMPATIBLE_HOST = "(x86_64|i.86|powerpc|arm|aarch64).*-linux" + +PACKAGES =+ "${PN}-tools" +FILES_${PN}-tools = "${bindir}/*.pl" + +SRC_URI = "\ + ${SOURCEFORGE_MIRROR}/makedumpfile/${BPN}-${PV}.tar.gz \ + file://0001-makedumpfile-replace-hardcode-CFLAGS.patch \ + file://0002-mem_section-Support-only-46-bit-for-MAX_PHYSMEM_BITS.patch \ + file://0003-build-Delete-libebl-from-required-libraries-during-l.patch \ +" +SRC_URI[md5sum] = "6fd632b97ad78d9a0a3b0f0989094064" +SRC_URI[sha256sum] = "d007eec05cb14f0155f2d06a0d4dc70d321dbb2aec65fccdce953145c8230324" + +UPSTREAM_CHECK_URI = "https://sourceforge.net/projects/makedumpfile/files/makedumpfile/" +UPSTREAM_CHECK_REGEX = "makedumpfile/(?P\d+(\.\d+)+)/" + +SECTION = "base" + +# If we do not specify TARGET, makedumpfile will build for the host but use the +# target gcc. +# +EXTRA_OEMAKE = "\ + LINKTYPE=static \ + TARGET=${TARGET_ARCH} \ +" + +do_install () { + mkdir -p ${D}/usr/bin + install -m 755 ${S}/makedumpfile ${D}/usr/bin + install -m 755 ${S}/makedumpfile-R.pl ${D}/usr/bin + + mkdir -p ${D}/usr/share/man/man8 + install -m 644 ${S}/makedumpfile.8.gz ${D}/usr/share/man/man8 + + mkdir -p ${D}/usr/share/man/man5 + install -m 644 ${S}/makedumpfile.conf.5.gz ${D}/usr/share/man/man5 + + mkdir -p ${D}/etc/ + install -m 644 ${S}/makedumpfile.conf ${D}/etc/makedumpfile.conf.sample +} diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-kernel/minicoredumper/minicoredumper_2.0.1.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-kernel/minicoredumper/minicoredumper_2.0.1.bb index 50dab8d1..051656b5 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-kernel/minicoredumper/minicoredumper_2.0.1.bb +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-kernel/minicoredumper/minicoredumper_2.0.1.bb @@ -43,4 +43,4 @@ do_install_append() { } # http://errors.yoctoproject.org/Errors/Details/186966/ -EXCLUDE_FROM_WORLD_libc-musl = "1" +COMPATIBLE_HOST_libc-musl = 'null' diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-kernel/oprofile/oprofile.inc b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-kernel/oprofile/oprofile.inc index 515ea8fa..a9ee775d 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-kernel/oprofile/oprofile.inc +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-kernel/oprofile/oprofile.inc @@ -12,7 +12,6 @@ SECTION = "devel" DEPENDS = "popt binutils" RDEPENDS_${PN} = "binutils-symlinks" -RRECOMMENDS_${PN} = "kernel-vmlinux" FILES_${PN} = "${bindir} ${libdir}/${BPN}/lib*${SOLIBS} ${datadir}/${BPN}" FILES_${PN}-dev += "${libdir}/${BPN}/lib*${SOLIBSDEV} ${libdir}/${BPN}/lib*.la" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-kernel/pm-graph/pm-graph/0001-sleepgraph.py-use-python3.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-kernel/pm-graph/pm-graph/0001-sleepgraph.py-use-python3.patch new file mode 100644 index 00000000..25c87093 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-kernel/pm-graph/pm-graph/0001-sleepgraph.py-use-python3.patch @@ -0,0 +1,39 @@ +From 22ce65d997f99606a3bb9d2a660ead42eecc234a Mon Sep 17 00:00:00 2001 +From: Naveen Saini +Date: Wed, 11 Sep 2019 11:31:07 +0800 +Subject: [PATCH] sleepgraph.py: use python3 + +Already compatible with Python 3. +Same goes for bootgraph.py + +Upstream-Status: Inappropriate [oe specific] + +Signed-off-by: Naveen Saini +--- + bootgraph.py | 2 +- + sleepgraph.py | 2 +- + 2 files changed, 2 insertions(+), 2 deletions(-) + +diff --git a/bootgraph.py b/bootgraph.py +index d3b99a1..efb5714 100755 +--- a/bootgraph.py ++++ b/bootgraph.py +@@ -1,4 +1,4 @@ +-#!/usr/bin/python ++#!/usr/bin/python3 + # SPDX-License-Identifier: GPL-2.0-only + # + # Tool for analyzing boot timing +diff --git a/sleepgraph.py b/sleepgraph.py +index 1794c79..cfed8e0 100755 +--- a/sleepgraph.py ++++ b/sleepgraph.py +@@ -1,4 +1,4 @@ +-#!/usr/bin/python ++#!/usr/bin/python3 + # SPDX-License-Identifier: GPL-2.0-only + # + # Tool for analyzing suspend/resume timing +-- +2.17.1 + diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-kernel/pm-graph/pm-graph_5.3.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-kernel/pm-graph/pm-graph_5.3.bb deleted file mode 100644 index ea12e054..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-kernel/pm-graph/pm-graph_5.3.bb +++ /dev/null @@ -1,20 +0,0 @@ -SUMMARY = "Timing analysis tools for suspend/resume/boot" -DESCRIPTION = "This tool suite is designed to assist kernel and OS developers \ -in optimizing their linux stack's suspend/resume & boot time." -HOMEPAGE = "https://01.org/pm-graph" -LICENSE = "GPL-2" -LIC_FILES_CHKSUM = "file://COPYING;md5=12f884d2ae1ff87c09e5b7ccc2c4ca7e" - -SRCREV = "5be9a16547234cef5aca8bfaccd920490ea1cfa7" -SRC_URI = "git://github.com/intel/pm-graph.git \ - file://0001-Makefile-fix-multilib-build-failure.patch" -S = "${WORKDIR}/git" - -COMPATIBLE_HOST='(i.86|x86_64).*' -EXTRA_OEMAKE = "PREFIX=${prefix} DESTDIR=${D} BASELIB=${baselib}" - -do_install() { - oe_runmake install -} - -RDEPENDS_${PN} += "python-core python-threading python-datetime python-subprocess python-compression" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-kernel/pm-graph/pm-graph_5.5.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-kernel/pm-graph/pm-graph_5.5.bb new file mode 100644 index 00000000..63a9fa88 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-kernel/pm-graph/pm-graph_5.5.bb @@ -0,0 +1,22 @@ +SUMMARY = "Timing analysis tools for suspend/resume/boot" +DESCRIPTION = "This tool suite is designed to assist kernel and OS developers \ +in optimizing their linux stack's suspend/resume & boot time." +HOMEPAGE = "https://01.org/pm-graph" +LICENSE = "GPL-2" +LIC_FILES_CHKSUM = "file://COPYING;md5=12f884d2ae1ff87c09e5b7ccc2c4ca7e" + +SRCREV = "cf59527dc24fdd2f314ae4dcaeb3d68a117988f6" +SRC_URI = "git://github.com/intel/pm-graph.git \ + file://0001-Makefile-fix-multilib-build-failure.patch \ + file://0001-sleepgraph.py-use-python3.patch \ +" +S = "${WORKDIR}/git" + +COMPATIBLE_HOST='(i.86|x86_64).*' +EXTRA_OEMAKE = "PREFIX=${prefix} DESTDIR=${D} BASELIB=${baselib}" + +do_install() { + oe_runmake install +} + +RDEPENDS_${PN} += "python3-core python3-threading python3-datetime python3-compression" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-kernel/turbostat/turbostat_3.4.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-kernel/turbostat/turbostat_3.4.bb index 3f25e6f0..5f6588de 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-kernel/turbostat/turbostat_3.4.bb +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-kernel/turbostat/turbostat_3.4.bb @@ -20,6 +20,7 @@ SRC_URI += "\ file://COPYING \ " +PACKAGE_ARCH = "${MACHINE_ARCH}" DEPENDS = "virtual/kernel" # This looks in S, so we better make sure there's diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-multimedia/alsa/alsa-oss/libio.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-multimedia/alsa/alsa-oss/libio.patch deleted file mode 100644 index 835b2660..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-multimedia/alsa/alsa-oss/libio.patch +++ /dev/null @@ -1,53 +0,0 @@ -From 54b1c2e27bf81f94c727b4923d4ed592110e2796 Mon Sep 17 00:00:00 2001 -From: Martin Jansa -Date: Sun, 29 May 2011 21:05:15 +0200 - ---- - alsa/stdioemu.c | 8 +++++++- - configure.ac | 6 ++++++ - 2 files changed, 13 insertions(+), 1 deletion(-) - -diff --git a/alsa/stdioemu.c b/alsa/stdioemu.c -index f7f9ab5..b673fe3 100644 ---- a/alsa/stdioemu.c -+++ b/alsa/stdioemu.c -@@ -37,7 +37,9 @@ - #endif - - #include -- -+#ifdef HAVE_LIBIO_H -+#include -+#endif - struct fd_cookie { - int fd; - }; -@@ -98,7 +100,11 @@ static FILE *fake_fopen(const char *path, const char *mode, int flags) - - if (open_mode && fdc->fd > 0) { - result = fopencookie (fdc,"w", fns); -+#ifdef HAVE_FILENO - result->_fileno = fdc->fd; /* ugly patchy slimy kludgy hack */ -+#else -+ result->__filedes = fdc->fd; -+#endif - } - return result; - } -diff --git a/configure.ac b/configure.ac -index 583b95f..60a1025 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -35,6 +35,12 @@ if test "$with_aoss" = "yes"; then - LIBS="$OLD_LIBS" - fi - -+AC_CHECK_HEADERS_ONCE([libio.h]) -+ -+AC_CHECK_MEMBER([struct _IO_FILE._fileno], -+ [AC_DEFINE([HAVE_FILENO], [1],[Define if _fileno exists.])], -+ [],[]) -+ - AC_OUTPUT(Makefile alsa/Makefile alsa/aoss alsa/aoss.old \ - oss-redir/Makefile test/Makefile \ - alsa/testaoss test/testaoss) diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-multimedia/alsa/alsa-oss_1.1.8.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-multimedia/alsa/alsa-oss_1.1.8.bb index 46ab5031..6b955dcf 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-multimedia/alsa/alsa-oss_1.1.8.bb +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-multimedia/alsa/alsa-oss_1.1.8.bb @@ -1,34 +1,10 @@ -# FIXME: the LIC_FILES_CHKSUM values have been updated by 'devtool upgrade'. -# The following is the difference between the old and the new license text. -# Please update the LICENSE value if needed, and summarize the changes in -# the commit message via 'License-Update:' tag. -# (example: 'License-Update: copyright years updated.') -# -# The changes: -# -# --- COPYING -# +++ COPYING -# @@ -2,7 +2,8 @@ -# Version 2, June 1991 -# -# Copyright (C) 1989, 1991 Free Software Foundation, Inc. -# - 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -# + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA -# + -# Everyone is permitted to copy and distribute verbatim copies -# of this license document, but changing it is not allowed. -# -# -# - SUMMARY = "Alsa OSS Compatibility Package" SECTION = "libs/multimedia" LICENSE = "GPLv2" LIC_FILES_CHKSUM = "file://COPYING;md5=ed055b4eff93da784176a01582e6ec1a" DEPENDS = "alsa-lib" -SRC_URI = "ftp://ftp.alsa-project.org/pub/oss-lib/alsa-oss-${PV}.tar.bz2 \ - file://libio.patch \ +SRC_URI = "https://www.alsa-project.org/files/pub/oss-lib/alsa-oss-${PV}.tar.bz2 \ " SRC_URI[md5sum] = "9ec4bb783fdce19032aace086d65d874" SRC_URI[sha256sum] = "64adcef5927e848d2e024e64c4bf85b6f395964d9974ec61905ae4cb8d35d68e" @@ -43,4 +19,4 @@ do_configure_prepend () { } # http://errors.yoctoproject.org/Errors/Details/186961/ -EXCLUDE_FROM_WORLD_libc-musl = "1" +COMPATIBLE_HOST_libc-musl = 'null' diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-multimedia/esound/esound/0001-audio_alsa09.c-alsa-drain-fix.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-multimedia/esound/esound/0001-audio_alsa09.c-alsa-drain-fix.patch deleted file mode 100644 index 130f3c22..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-multimedia/esound/esound/0001-audio_alsa09.c-alsa-drain-fix.patch +++ /dev/null @@ -1,24 +0,0 @@ -From 945df2da87a412758ceab4ac5711abbb269a47c1 Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Thu, 8 Jun 2017 23:09:51 -0700 -Subject: [PATCH] audio_alsa09.c: alsa drain fix - -Signed-off-by: Khem Raj - ---- - audio_alsa09.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/audio_alsa09.c b/audio_alsa09.c -index 534e3db..d9450e6 100644 ---- a/audio_alsa09.c -+++ b/audio_alsa09.c -@@ -506,7 +506,7 @@ void esd_audio_flush(void) - } - - if (alsa_playback_handle != NULL) -- snd_pcm_drain( alsa_playback_handle ); -+ snd_pcm_drop( alsa_playback_handle ); - - if (alsadbg) - print_state(); diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-multimedia/esound/esound/0002-Undefine-open64-and-fopen64.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-multimedia/esound/esound/0002-Undefine-open64-and-fopen64.patch deleted file mode 100644 index 10a6ba03..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-multimedia/esound/esound/0002-Undefine-open64-and-fopen64.patch +++ /dev/null @@ -1,33 +0,0 @@ -From e218d5a0a545ebb9623d62da5cfca478f9c90fce Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Thu, 8 Jun 2017 23:11:31 -0700 -Subject: [PATCH] Undefine open64 and fopen64 - -Since the signatures do not match with libc - -Signed-off-by: Khem Raj - ---- - esddsp.c | 2 ++ - 1 file changed, 2 insertions(+) - -diff --git a/esddsp.c b/esddsp.c -index d3c6ea9..17b5949 100644 ---- a/esddsp.c -+++ b/esddsp.c -@@ -290,6 +290,7 @@ open (const char *pathname, int flags, ...) - return open_wrapper(func, pathname, flags, mode); - } - -+#undef open64 - int - open64 (const char *pathname, int flags, ...) - { -@@ -374,6 +375,7 @@ fopen (const char *path, const char *mode) - return fopen_wrapper(func, path, mode); - } - -+#undef fopen64 - FILE * - fopen64 (const char *path, const char *mode) - { diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-multimedia/esound/esound/0003-Use-I-path-in-configure.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-multimedia/esound/esound/0003-Use-I-path-in-configure.patch deleted file mode 100644 index 83365b4e..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-multimedia/esound/esound/0003-Use-I-path-in-configure.patch +++ /dev/null @@ -1,36 +0,0 @@ -From 89c62db54716d514e639f9e1bfd3c1f7d82641dd Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Thu, 8 Jun 2017 23:12:36 -0700 -Subject: [PATCH] Use -I= in configure - -This helps to use proper sysroot in -cross build environment - -Signed-off-by: Khem Raj - ---- - configure.ac | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/configure.ac b/configure.ac -index 5645dce..d374cda 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -208,7 +208,7 @@ if test "x$enable_local_sound" = "xyes"; then - AC_CHECK_HEADERS(CoreAudio/CoreAudio.h) - # mme_api.h directly includes other files from the mme subdir - xCPPFLAGS="$CPPFLAGS" -- CPPFLAGS="$CPPFLAGS -I/usr/include/mme" -+ CPPFLAGS="$CPPFLAGS -I=/usr/include/mme" - AC_CHECK_HEADERS(mme/mme_api.h) - CPPFLAGS="$xCPPFLAGS" - AM_PATH_ARTS(, HAVE_ARTS=yes, HAVE_ARTS=no) -@@ -269,7 +269,7 @@ if test "x$enable_local_sound" = "xyes"; then - osf*) - found_sound=yes - AC_DEFINE(DRIVER_OSF, 1, [Defined if OSF backend is enabled]) -- CPPFLAGS="$CPPFLAGS -I/usr/include/mme" -+ CPPFLAGS="$CPPFLAGS -I=/usr/include/mme" - SOUND_LIBS=-lmme - esac - fi diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-multimedia/esound/esound/no-docs.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-multimedia/esound/esound/no-docs.patch deleted file mode 100644 index 8a546e6d..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-multimedia/esound/esound/no-docs.patch +++ /dev/null @@ -1,19 +0,0 @@ -From bfcaa9bdc70440db96f10afc0c2a792870f75acb Mon Sep 17 00:00:00 2001 -From: Koen Kooi -Date: Fri, 3 Jun 2011 19:39:02 +0200 - ---- - Makefile.am | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/Makefile.am b/Makefile.am -index 08c4c94..ede9d26 100644 ---- a/Makefile.am -+++ b/Makefile.am -@@ -1,5 +1,5 @@ - --SUBDIRS = docs -+SUBDIRS = - - ACLOCAL_AMFLAGS = -I m4 - diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-multimedia/esound/esound_0.2.41.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-multimedia/esound/esound_0.2.41.bb deleted file mode 100644 index d703f23d..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-multimedia/esound/esound_0.2.41.bb +++ /dev/null @@ -1,37 +0,0 @@ -SUMMARY = "Enlightened Sound Daemon" -SECTION = "gpe/base" -LICENSE = "LGPLv2" -LIC_FILES_CHKSUM = "file://COPYING.LIB;md5=55ca817ccb7d5b5b66355690e9abc605" -DEPENDS = "audiofile" - -inherit gnome - -SRC_URI = "ftp://ftp.gnome.org/pub/GNOME/sources/esound/0.2/${BP}.tar.bz2;name=archive \ - file://no-docs.patch \ - file://0001-audio_alsa09.c-alsa-drain-fix.patch \ - file://0002-Undefine-open64-and-fopen64.patch \ - file://0003-Use-I-path-in-configure.patch \ - " -SRC_URI[archive.md5sum] = "8d9aad3d94d15e0d59ba9dc0ea990c6c" -SRC_URI[archive.sha256sum] = "5eb5dd29a64b3462a29a5b20652aba7aa926742cef43577bf0796b787ca34911" - -EXTRA_OECONF += " \ - --disable-arts \ - --disable-artstest \ -" -EXTRA_OECONF_remove = "--disable-schemas-install" - -CFLAGS += "-lm" - -PACKAGECONFIG[ipv6] = "--enable-ipv6,--disable-ipv6," -PACKAGECONFIG[libwrap] = "--with-libwrap,--without-libwrap,tcp-wrappers," -PACKAGECONFIG[alsa] = "--enable-alsa --disable-oss,--disable-alsa,alsa-lib," - -PACKAGECONFIG ??= "libwrap alsa \ - ${@bb.utils.filter('DISTRO_FEATURES', 'ipv6', d)} \ -" -PACKAGES =+ "esddsp esd esd-utils" - -FILES_esddsp = "${bindir}/esddsp ${libdir}/libesddsp.so.*" -FILES_esd = "${bindir}/esd" -FILES_esd-utils = "${bindir}/*" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-multimedia/id3lib/id3lib_3.8.3.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-multimedia/id3lib/id3lib_3.8.3.bb index fc80cc0a..9d311608 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-multimedia/id3lib/id3lib_3.8.3.bb +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-multimedia/id3lib/id3lib_3.8.3.bb @@ -7,12 +7,46 @@ DEPENDS = "zlib" PR = "r1" SRC_URI = "${SOURCEFORGE_MIRROR}/id3lib/id3lib-${PV}.tar.gz;name=archive \ - http://ftp.de.debian.org/debian/pool/main/i/id3lib3.8.3/id3lib3.8.3_3.8.3-7.2.diff.gz;name=patch \ + ${DEBIAN_MIRROR}/main/i/id3lib3.8.3/id3lib3.8.3_3.8.3-16.2.debian.tar.xz;name=patch;subdir=${BP} \ file://acdefine.patch \ " SRC_URI[archive.md5sum] = "19f27ddd2dda4b2d26a559a4f0f402a7" SRC_URI[archive.sha256sum] = "2749cc3c0cd7280b299518b1ddf5a5bcfe2d1100614519b68702230e26c7d079" -SRC_URI[patch.md5sum] = "805c0320a2efb21c40ce06fa13cd7c4b" -SRC_URI[patch.sha256sum] = "9f03b59ccc8826a5be55a3dcde2f889067d58bdc72bf846416a198c9b933704c" +SRC_URI[patch.md5sum] = "997c764d3be11c9a51779d93facf1118" +SRC_URI[patch.sha256sum] = "ac2ee23ec89ba2af51d2c6dd5b1b6bf9f8a9f813de251bc182941439a4053176" inherit autotools + +# Unlike other Debian packages, id3lib*.diff.gz contains another series of +# patches maintained by quilt. So manually apply them before applying other local +# patches. Also remove all temp files before leaving, because do_patch() will pop +# up all previously applied patches in the start +id3lib_do_patch() { + cd ${S} + # it's important that we only pop the existing patches when they've + # been applied, otherwise quilt will climb the directory tree + # and reverse out some completely different set of patches + if [ -d ${S}/patches ]; then + # whilst this is the default directory, doing it like this + # defeats the directory climbing that quilt will otherwise + # do; note the directory must exist to defeat this, hence + # the test inside which we operate + QUILT_PATCHES=${S}/patches quilt pop -a + fi + if [ -d ${S}/.pc-id3lib ]; then + rm -rf ${S}/.pc + mv ${S}/.pc-id3lib ${S}/.pc + QUILT_PATCHES=${S}/debian/patches quilt pop -a + rm -rf ${S}/.pc ${S}/debian + fi + QUILT_PATCHES=${S}/debian/patches quilt push -a + mv ${S}/.pc ${S}/.pc-id3lib +} + +do_unpack[cleandirs] += "${S}" + +# We invoke base do_patch at end, to incorporate any local patch +python do_patch() { + bb.build.exec_func('id3lib_do_patch', d) + bb.build.exec_func('patch_do_patch', d) +} diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-multimedia/jack/a2jmidid/0001-wscript-add-pthread-library-dependency-to-fix-linkin.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-multimedia/jack/a2jmidid/0001-wscript-add-pthread-library-dependency-to-fix-linkin.patch deleted file mode 100644 index d17d311b..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-multimedia/jack/a2jmidid/0001-wscript-add-pthread-library-dependency-to-fix-linkin.patch +++ /dev/null @@ -1,43 +0,0 @@ -From 488dc9b00239976caac6bd9ed76b38d9d1659dd9 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Andreas=20M=C3=BCller?= -Date: Tue, 4 Oct 2016 23:44:49 +0200 -Subject: [PATCH] wscript: add pthread library dependency to fix linking -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Stolen from [1] - -[1] http://pkgs.fedoraproject.org/cgit/rpms/a2jmidid.git/tree/a2jmidid-linking.patch - -Upstream-Status: Pending - -Signed-off-by: Andreas Müller ---- - wscript | 3 ++- - 1 file changed, 2 insertions(+), 1 deletion(-) - -diff --git a/wscript b/wscript -index 664625b..66a532a 100644 ---- a/wscript -+++ b/wscript -@@ -67,6 +67,7 @@ def configure(conf): - conf.env['DBUS_ENABLED'] = False - - conf.env['LIB_DL'] = ['dl'] -+ conf.env['LIB_PTHREAD'] = ['pthread'] - - #conf.check_header('expat.h', mandatory=True) - #conf.env['LIB_EXPAT'] = ['expat'] -@@ -152,7 +153,7 @@ def build(bld): - - prog.includes = '.' # make waf dependency tracking work - prog.target = 'a2jmidid' -- prog.uselib = 'ALSA JACK DL' -+ prog.uselib = 'ALSA JACK DL PTHREAD' - if bld.env()['DBUS_ENABLED']: - prog.uselib += " DBUS-1" - prog = bld.create_obj('cc', 'program') --- -2.5.5 - diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-multimedia/jack/a2jmidid/0002-aarch64.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-multimedia/jack/a2jmidid/0002-aarch64.patch deleted file mode 100644 index b344f542..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-multimedia/jack/a2jmidid/0002-aarch64.patch +++ /dev/null @@ -1,31 +0,0 @@ -Consider compiler define for aarch64 - -Signed-off-by: Khem Raj -Upstream-Status:Pending - -Index: a2jmidid-8/sigsegv.c -=================================================================== ---- a2jmidid-8.orig/sigsegv.c -+++ a2jmidid-8/sigsegv.c -@@ -91,18 +91,18 @@ static void signal_segv(int signum, sigi - a2j_error("info.si_errno = %d", info->si_errno); - a2j_error("info.si_code = %d (%s)", info->si_code, si_codes[info->si_code]); - a2j_error("info.si_addr = %p", info->si_addr); --#if !defined(__alpha__) && !defined(__ia64__) && !defined(__FreeBSD_kernel__) && !defined(__arm__) && !defined(__hppa__) && !defined(__sh__) -+#if !defined(__alpha__) && !defined(__ia64__) && !defined(__FreeBSD_kernel__) && !defined(__arm__) && !defined(__hppa__) && !defined(__sh__) && !defined(__aarch64__) - for(i = 0; i < NGREG; i++) - a2j_error("reg[%02d] = 0x" REGFORMAT, i, - #if defined(__powerpc__) - ucontext->uc_mcontext.uc_regs[i] --#elif defined(__sparc__) && defined(__arch64__) -+#elif defined(__sparc__) || defined(__arch64__) - ucontext->uc_mcontext.mc_gregs[i] - #else - ucontext->uc_mcontext.gregs[i] - #endif - ); --#endif /* alpha, ia64, kFreeBSD, arm, hppa */ -+#endif /* alpha, ia64, kFreeBSD, arm, hppa aarch64 */ - - #if defined(SIGSEGV_STACK_X86) || defined(SIGSEGV_STACK_IA64) - # if defined(SIGSEGV_STACK_IA64) diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-multimedia/jack/a2jmidid/riscv_ucontext.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-multimedia/jack/a2jmidid/riscv_ucontext.patch new file mode 100644 index 00000000..af6612e8 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-multimedia/jack/a2jmidid/riscv_ucontext.patch @@ -0,0 +1,24 @@ +Add riscv specific checks to choose correct gregs and context structure definitions + +Upstream-Status: Pending +Signed-off-by: Khem Raj +--- a/sigsegv.c ++++ b/sigsegv.c +@@ -91,7 +91,7 @@ static void signal_segv(int signum, sigi + a2j_error("info.si_errno = %d", info->si_errno); + a2j_error("info.si_code = %d (%s)", info->si_code, si_codes[info->si_code]); + a2j_error("info.si_addr = %p", info->si_addr); +-#if !defined(__alpha__) && !defined(__ia64__) && !defined(__FreeBSD_kernel__) && !defined(__arm__) && !defined(__hppa__) && !defined(__sh__) && !defined(__aarch64__) ++#if !defined(__alpha__) && !defined(__ia64__) && !defined(__FreeBSD_kernel__) && !defined(__arm__) && !defined(__hppa__) && !defined(__sh__) && !defined(__aarch64__) && !defined(__riscv) + for(i = 0; i < NGREG; i++) + a2j_error("reg[%02d] = 0x" REGFORMAT, i, + #if defined(__powerpc__) && !defined(__powerpc64__) +@@ -104,7 +104,7 @@ static void signal_segv(int signum, sigi + ucontext->uc_mcontext.gregs[i] + #endif + ); +-#endif /* alpha, ia64, kFreeBSD, arm, hppa, aarch64 */ ++#endif /* alpha, ia64, kFreeBSD, arm, hppa, aarch64 riscv */ + + #if defined(SIGSEGV_STACK_X86) || defined(SIGSEGV_STACK_IA64) + # if defined(SIGSEGV_STACK_IA64) diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-multimedia/jack/a2jmidid_8.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-multimedia/jack/a2jmidid_8.bb deleted file mode 100644 index 7dcaaf68..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-multimedia/jack/a2jmidid_8.bb +++ /dev/null @@ -1,31 +0,0 @@ -SUMMARY = "a2jmidid is daemon for exposing ALSA sequencer applications as JACK MIDI" -SECTION = "libs/multimedia" - -LICENSE = "GPLv2" -LIC_FILES_CHKSUM = " \ - file://gpl2.txt;md5=751419260aa954499f7abaabaa882bbe \ -" - -DEPENDS = "alsa-lib jack dbus" -DEPENDS_append_libc-musl = " libexecinfo" - -SRC_URI = " \ - http://download.gna.org/${BPN}/${BPN}-${PV}.tar.bz2 \ - file://0001-wscript-add-pthread-library-dependency-to-fix-linkin.patch \ - file://0002-aarch64.patch \ -" -SRC_URI[md5sum] = "9cf4edbc3ad2ddeeaf6c8c1791ff3ddd" -SRC_URI[sha256sum] = "2a9635f62aabc59edb54ada07048dd47e896b90caff94bcee710d3582606f55f" - -inherit waf pkgconfig - -LDFLAGS_append_libc-musl = " -lexecinfo" - -export LINKFLAGS="${LDFLAGS}" - -do_configure() { - sed -i 's|/usr/bin/.*python$|/usr/bin/env python2|' ${S}/a2j_control ${S}/waf ${S}/wscript - (cd ${B} && ${S}/waf configure --prefix=${prefix} ${WAF_EXTRA_CONF} ${EXTRA_OECONF}) -} - -FILES_${PN} += "${datadir}/dbus-1/services" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-multimedia/jack/a2jmidid_9.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-multimedia/jack/a2jmidid_9.bb new file mode 100644 index 00000000..5fffe77c --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-multimedia/jack/a2jmidid_9.bb @@ -0,0 +1,28 @@ +SUMMARY = "a2jmidid is daemon for exposing ALSA sequencer applications as JACK MIDI" +SECTION = "libs/multimedia" + +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = " \ + file://LICENSE;md5=751419260aa954499f7abaabaa882bbe \ +" + +DEPENDS = "alsa-lib jack dbus" +DEPENDS_append_libc-musl = " libexecinfo" + +SRCREV = "de37569c926c5886768f892c019e3f0468615038" +SRC_URI = " \ + git://github.com/linuxaudio/a2jmidid;protocol=https \ + file://riscv_ucontext.patch \ +" + +S = "${WORKDIR}/git" + +inherit meson pkgconfig + +EXTRA_OEMESON = "-Db_lto=false" + +LDFLAGS_append_libc-musl = " -lexecinfo" + +export LINKFLAGS="${LDFLAGS}" + +FILES_${PN} += "${datadir}/dbus-1/services" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-multimedia/jack/jack/0001-Fix-OSX-build.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-multimedia/jack/jack/0001-Fix-OSX-build.patch deleted file mode 100644 index d9a3ab7c..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-multimedia/jack/jack/0001-Fix-OSX-build.patch +++ /dev/null @@ -1,27 +0,0 @@ -From dd65685c24bb25a800ed42388ed0a1e8792b2ed2 Mon Sep 17 00:00:00 2001 -From: falkTX -Date: Sat, 24 Nov 2018 14:29:58 +0100 -Subject: [PATCH] Fix OSX build - -Signed-off-by: Khem Raj -Upstream-Status: Backport [https://github.com/jackaudio/jack2/commit/d851fada460d42508a6f82b19867f63853062583] ---- - posix/JackNetUnixSocket.cpp | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/posix/JackNetUnixSocket.cpp b/posix/JackNetUnixSocket.cpp -index 7a5585ef..a4cb5036 100644 ---- a/posix/JackNetUnixSocket.cpp -+++ b/posix/JackNetUnixSocket.cpp -@@ -169,7 +169,7 @@ namespace Jack - - int JackNetUnixSocket::Bind() - { -- return bind(fSockfd, reinterpret_cast(&fRecvAddr), sizeof(socket_address_t)); -+ return ::bind(fSockfd, reinterpret_cast(&fRecvAddr), sizeof(socket_address_t)); - } - - int JackNetUnixSocket::BindWith(const char* ip) --- -2.20.1 - diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-multimedia/jack/jack/0001-Python-3.7-fixes-2126.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-multimedia/jack/jack/0001-Python-3.7-fixes-2126.patch deleted file mode 100644 index e6021cd7..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-multimedia/jack/jack/0001-Python-3.7-fixes-2126.patch +++ /dev/null @@ -1,26 +0,0 @@ -From 72564b04151b61fa8d954bbb43afc58108ee50ec Mon Sep 17 00:00:00 2001 -From: Thomas Nagy -Date: Mon, 12 Mar 2018 20:42:55 +0100 -Subject: [PATCH] Python 3.7 fixes #2126 - -Upstream-Status: Backport -[https://gitlab.com/ita1024/waf/commit/facdc0b173d933073832c768ec1917c553cb369c] - -Signed-off-by: Khem Raj ---- - waflib/Node.py | 2 -- - 1 file changed, 2 deletions(-) - -diff --git a/waflib/Node.py b/waflib/Node.py -index fb3cd273..405a6fec 100644 ---- a/waflib/Node.py -+++ b/waflib/Node.py -@@ -537,8 +537,6 @@ class Node(object): - if maxdepth: - for k in node.ant_iter(accept=accept, maxdepth=maxdepth - 1, pats=npats, dir=dir, src=src, remove=remove): - yield k -- raise StopIteration -- - def ant_glob(self, *k, **kw): - """ - This method is used for finding files across folders. It behaves like ant patterns: diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-multimedia/jack/jack/0001-example-clients-Use-c-compiler-for-jack_simdtests.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-multimedia/jack/jack/0001-example-clients-Use-c-compiler-for-jack_simdtests.patch new file mode 100644 index 00000000..dda21a32 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-multimedia/jack/jack/0001-example-clients-Use-c-compiler-for-jack_simdtests.patch @@ -0,0 +1,33 @@ +From 76b8a389268275cc13f3b4e61394d40b24ec56f1 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Wed, 15 Jan 2020 20:21:58 -0800 +Subject: [PATCH] example-clients: Use c++ compiler for jack_simdtests + +It uses c++ sources and runtime therefore its best to use c++ compiler +to build it so it can find the correct runtime, cross compiling with +clang fails + +x86_64-yoe-linux-ld: example-clients/simdtests.cpp.28.o: undefined reference to symbol '__cxa_call_unexpected@@CXXABI_1.3' + +Upstream-Status: Submitted [https://github.com/jackaudio/jack2/pull/536] +Signed-off-by: Khem Raj +--- + example-clients/wscript | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/example-clients/wscript b/example-clients/wscript +index a8857aa7..df9435aa 100644 +--- a/example-clients/wscript ++++ b/example-clients/wscript +@@ -69,6 +69,8 @@ def build(bld): + + if bld.env['IS_MACOSX']: + prog = bld(features='c cprogram', framework = ['Foundation']) ++ elif example_program == 'jack_simdtests': ++ prog = bld(features='cxx cxxprogram') + else: + prog = bld(features='c cprogram') + prog.includes = os_incdir + ['../common/jack', '../common'] +-- +2.25.0 + diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-multimedia/jack/jack_1.19.14.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-multimedia/jack/jack_1.19.14.bb new file mode 100644 index 00000000..e954341f --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-multimedia/jack/jack_1.19.14.bb @@ -0,0 +1,53 @@ +DESCRIPTION = "jackdmp is a C++ version of the JACK low-latency audio \ +server for multi-processor machines. It is a new implementation of the \ +JACK server core features that aims in removing some limitations of \ +the JACK1 design. The activation system has been changed for a data \ +flow model and lock-free programming techniques for graph access have \ +been used to have a more dynamic and robust system." +SECTION = "libs/multimedia" + +LICENSE = "GPLv2 & LGPLv2.1" +LIC_FILES_CHKSUM = " \ + file://common/jack/control.h;beginline=2;endline=21;md5=e6df0bf30cde8b3b825451459488195d \ + file://common/jack/jack.h;beginline=1;endline=19;md5=6b736ed6b810592b135480a5e853392e \ +" + +DEPENDS = "libsamplerate0 libsndfile1 readline" + +SRC_URI = "git://github.com/jackaudio/jack2.git \ + file://0001-example-clients-Use-c-compiler-for-jack_simdtests.patch \ + " +SRCREV = "b54a09bf7ef760d81fdb8544ad10e45575394624" + +S = "${WORKDIR}/git" + +inherit waf pkgconfig + +PACKAGECONFIG ??= "alsa" +PACKAGECONFIG[alsa] = "--alsa=yes,--alsa=no,alsa-lib" +# --dbus only stops building jackd -> add --classic +PACKAGECONFIG[dbus] = "--dbus --classic,,dbus" +PACKAGECONFIG[opus] = "--opus=yes,--opus=no,libopus" + +# portaudio is for windows builds only +EXTRA_OECONF = "--portaudio=no" + +do_install_append() { + if ! ${@bb.utils.contains('PACKAGECONFIG', 'dbus', True, False, d)}; then + rm -f ${D}${bindir}/jack_control + fi +} + +PACKAGES =+ "libjack jack-server jack-utils" + +RDEPENDS_jack-dev_remove = "${PN} (= ${EXTENDPKGV})" + +FILES_libjack = "${libdir}/*.so.* ${libdir}/jack/*.so" +FILES_jack-server = " \ + ${datadir}/dbus-1/services \ + ${bindir}/jackdbus \ + ${bindir}/jackd \ +" +FILES_jack-utils = "${bindir}/*" + +FILES_${PN}-doc += " ${datadir}/jack-audio-connection-kit/reference/html/*" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-multimedia/jack/jack_git.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-multimedia/jack/jack_git.bb deleted file mode 100644 index 477af8ce..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-multimedia/jack/jack_git.bb +++ /dev/null @@ -1,48 +0,0 @@ -DESCRIPTION = "jackdmp is a C++ version of the JACK low-latency audio \ -server for multi-processor machines. It is a new implementation of the \ -JACK server core features that aims in removing some limitations of \ -the JACK1 design. The activation system has been changed for a data \ -flow model and lock-free programming techniques for graph access have \ -been used to have a more dynamic and robust system." -SECTION = "libs/multimedia" - -LICENSE = "GPLv2 & LGPLv2.1" -LIC_FILES_CHKSUM = " \ - file://common/jack/control.h;beginline=2;endline=21;md5=e6df0bf30cde8b3b825451459488195d \ - file://common/jack/jack.h;beginline=1;endline=19;md5=6b736ed6b810592b135480a5e853392e \ -" - -DEPENDS = "libsamplerate0 libsndfile1 readline" - -SRC_URI = "git://github.com/jackaudio/jack2.git \ - file://0001-Python-3.7-fixes-2126.patch \ - file://0001-Fix-OSX-build.patch \ - " -SRCREV = "c1647819eed6d11f94b21981d9c869629299f357" -PV = "1.9.12" -S = "${WORKDIR}/git" - -inherit waf pkgconfig - -PACKAGECONFIG ??= "alsa" -PACKAGECONFIG[alsa] = "--alsa=yes,--alsa=no,alsa-lib" -# --dbus only stops building jackd -> add --classic -PACKAGECONFIG[dbus] = "--dbus --classic,,dbus" -PACKAGECONFIG[opus] = "--opus=yes,--opus=no,libopus" - -# portaudio is for windows builds only -EXTRA_OECONF = "--portaudio=no" - -PACKAGES =+ "libjack jack-server jack-utils" - -RDEPENDS_jack-dev_remove = "${PN} (= ${EXTENDPKGV})" - -FILES_libjack = "${libdir}/*.so.* ${libdir}/jack/*.so" -FILES_jack-server = " \ - ${datadir}/dbus-1/services \ - ${bindir}/jackdbus \ - ${bindir}/jackd \ -" -FILES_jack-utils = "${bindir}/*" - -FILES_${PN}-doc += " ${datadir}/jack-audio-connection-kit/reference/html/* " diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-multimedia/libburn/libburn_1.4.0.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-multimedia/libburn/libburn_1.4.0.bb deleted file mode 100644 index 91fe6933..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-multimedia/libburn/libburn_1.4.0.bb +++ /dev/null @@ -1,11 +0,0 @@ -SUMMARY = "Library for reading, mastering and writing optical discs" -HOMEPAGE = "http://libburnia-project.org/" - -LICENSE = "GPLv2" -LIC_FILES_CHKSUM = "file://COPYING;md5=9ac2e7cff1ddaf48b6eab6028f23ef88" - -SRC_URI = "http://files.libburnia-project.org/releases/${BPN}-${PV}.tar.gz" -SRC_URI[md5sum] = "82ff94bb04e78eac9b12c7546f005d6f" -SRC_URI[sha256sum] = "6c975abae4ae1f80e47fc5d1e235f85157f73e954c84627a5ef85d8b1b95ae94" - -inherit autotools pkgconfig diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-multimedia/libburn/libburn_1.5.2.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-multimedia/libburn/libburn_1.5.2.bb new file mode 100644 index 00000000..73e8e3f5 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-multimedia/libburn/libburn_1.5.2.bb @@ -0,0 +1,11 @@ +SUMMARY = "Library for reading, mastering and writing optical discs" +HOMEPAGE = "http://libburnia-project.org/" + +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=9ac2e7cff1ddaf48b6eab6028f23ef88" + +SRC_URI = "http://files.libburnia-project.org/releases/${BPN}-${PV}.tar.gz" +SRC_URI[md5sum] = "096f4acfba00f1210a84fb7650f7693d" +SRC_URI[sha256sum] = "7b32db1719d7f6516cce82a9d00dfddfb3581725db732ea87d41ea8ef0ce5227" + +inherit autotools pkgconfig diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-multimedia/libdvdread/libdvdread_5.0.3.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-multimedia/libdvdread/libdvdread_5.0.3.bb deleted file mode 100644 index 05067259..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-multimedia/libdvdread/libdvdread_5.0.3.bb +++ /dev/null @@ -1,13 +0,0 @@ -SUMMARY = "DVD access multimeda library" -SECTION = "libs/multimedia" -LICENSE = "GPLv2+" -LIC_FILES_CHKSUM = "file://COPYING;md5=64e753fa7d1ca31632bc383da3b57c27" -SRC_URI = "http://download.videolan.org/pub/videolan/libdvdread/${PV}/libdvdread-${PV}.tar.bz2" - -SRC_URI[md5sum] = "b7b7d2a782087ed2a913263087083715" -SRC_URI[sha256sum] = "321cdf2dbdc83c96572bc583cd27d8c660ddb540ff16672ecb28607d018ed82b" - -inherit autotools lib_package binconfig pkgconfig - -CONFIGUREOPTS_remove = "--disable-silent-rules" - diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-multimedia/libdvdread/libdvdread_6.0.2.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-multimedia/libdvdread/libdvdread_6.0.2.bb new file mode 100644 index 00000000..2ca74f6d --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-multimedia/libdvdread/libdvdread_6.0.2.bb @@ -0,0 +1,12 @@ +SUMMARY = "DVD access multimeda library" +SECTION = "libs/multimedia" +LICENSE = "GPLv2+" +LIC_FILES_CHKSUM = "file://COPYING;md5=64e753fa7d1ca31632bc383da3b57c27" + +SRC_URI = "http://download.videolan.org/pub/videolan/libdvdread/${PV}/libdvdread-${PV}.tar.bz2" +SRC_URI[md5sum] = "49990935174bf6b2fa501e789c578135" +SRC_URI[sha256sum] = "f91401af213b219cdde24b46c50a57f29301feb7f965678f1d7ed4632cc6feb0" + +inherit autotools lib_package binconfig pkgconfig + +CONFIGUREOPTS_remove = "--disable-silent-rules" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-multimedia/libmad/libmad/0004-Remove-clang-unsupported-compiler-flags.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-multimedia/libmad/libmad/0004-Remove-clang-unsupported-compiler-flags.patch index 5bfce4d9..70723f2d 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-multimedia/libmad/libmad/0004-Remove-clang-unsupported-compiler-flags.patch +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-multimedia/libmad/libmad/0004-Remove-clang-unsupported-compiler-flags.patch @@ -7,37 +7,77 @@ Subject: [PATCH 4/4] Remove clang unsupported compiler flags configure.ac | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) -diff --git a/configure.ac b/configure.ac -index 4fcd48b..40302db 100644 --- a/configure.ac +++ b/configure.ac -@@ -140,20 +140,20 @@ then - case "$optimize" in - -O|"-O "*) - optimize="-O" +@@ -124,70 +124,7 @@ done + + if test "$GCC" = yes + then +- if test -z "$arch" +- then +- case "$host" in +- i386-*) ;; +- i?86-*) arch="-march=i486" ;; +- arm*-empeg-*) arch="-march=armv4 -mtune=strongarm1100" ;; +- armv4*-*) arch="-march=armv4 -mtune=strongarm" ;; +- powerpc-*) ;; +- mips*-agenda-*) arch="-mcpu=vr4100" ;; +- mips*-luxsonor-*) arch="-mips1 -mcpu=r3000 -Wa,-m4010" ;; +- esac +- fi +- +- case "$optimize" in +- -O|"-O "*) +- optimize="-O" - optimize="$optimize -fforce-addr" -+ : #optimize="$optimize -fforce-addr" - : #x optimize="$optimize -finline-functions" - : #- optimize="$optimize -fstrength-reduce" +- : #x optimize="$optimize -finline-functions" +- : #- optimize="$optimize -fstrength-reduce" - optimize="$optimize -fthread-jumps" - optimize="$optimize -fcse-follow-jumps" - optimize="$optimize -fcse-skip-blocks" -+ : #optimize="$optimize -fthread-jumps" -+ : #optimize="$optimize -fcse-follow-jumps" -+ : #optimize="$optimize -fcse-skip-blocks" - : #x optimize="$optimize -frerun-cse-after-loop" - : #x optimize="$optimize -frerun-loop-opt" - : #x optimize="$optimize -fgcse" - optimize="$optimize -fexpensive-optimizations" +- : #x optimize="$optimize -frerun-cse-after-loop" +- : #x optimize="$optimize -frerun-loop-opt" +- : #x optimize="$optimize -fgcse" +- optimize="$optimize -fexpensive-optimizations" - optimize="$optimize -fregmove" -+ : #optimize="$optimize -fregmove" - : #* optimize="$optimize -fdelayed-branch" - : #x optimize="$optimize -fschedule-insns" +- : #* optimize="$optimize -fdelayed-branch" +- : #x optimize="$optimize -fschedule-insns" - optimize="$optimize -fschedule-insns2" -+ : #optimize="$optimize -fschedule-insns2" - : #? optimize="$optimize -ffunction-sections" - : #? optimize="$optimize -fcaller-saves" - : #> optimize="$optimize -funroll-loops" --- -2.1.0 - +- : #? optimize="$optimize -ffunction-sections" +- : #? optimize="$optimize -fcaller-saves" +- : #> optimize="$optimize -funroll-loops" +- : #> optimize="$optimize -funroll-all-loops" +- : #x optimize="$optimize -fmove-all-movables" +- : #x optimize="$optimize -freduce-all-givs" +- : #? optimize="$optimize -fstrict-aliasing" +- : #* optimize="$optimize -fstructure-noalias" +- +- case "$host" in +- arm*-*) +- optimize="$optimize -fstrength-reduce" +- ;; +- mips*-*) +- optimize="$optimize -fstrength-reduce" +- optimize="$optimize -finline-functions" +- ;; +- i?86-*) +- optimize="$optimize -fstrength-reduce" +- ;; +- powerpc-apple-*) +- # this triggers an internal compiler error with gcc2 +- : #optimize="$optimize -fstrength-reduce" +- +- # this is really only beneficial with gcc3 +- : #optimize="$optimize -finline-functions" +- ;; +- *) +- # this sometimes provokes bugs in gcc 2.95.2 +- : #optimize="$optimize -fstrength-reduce" +- ;; +- esac +- ;; +- esac ++ optimize="-O2" + fi + + case "$host" in diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-multimedia/libmad/libmad/fix_for_mips_with_gcc-4.5.0.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-multimedia/libmad/libmad/fix_for_mips_with_gcc-4.5.0.patch index 01c7aa3c..5bc91f35 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-multimedia/libmad/libmad/fix_for_mips_with_gcc-4.5.0.patch +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-multimedia/libmad/libmad/fix_for_mips_with_gcc-4.5.0.patch @@ -11,15 +11,13 @@ Upstream-Status: Pending 2010/07/29 Nitin A Kamble -Index: libmad-0.15.1b/fixed.h -=================================================================== ---- libmad-0.15.1b.orig/fixed.h -+++ libmad-0.15.1b/fixed.h +--- a/fixed.h ++++ b/fixed.h @@ -297,6 +297,15 @@ mad_fixed_t mad_f_mul_inline(mad_fixed_t /* --- MIPS ---------------------------------------------------------------- */ -+# elif defined(FPM_MIPS) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4)) ++# elif defined(FPM_MIPS) && (defined(__clang__) || __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4)) + typedef unsigned int u64_di_t __attribute__ ((mode (DI))); +# define MAD_F_MLX(hi, lo, x, y) \ + do { \ diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-multimedia/libmodplug/libmodplug_0.8.8.5.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-multimedia/libmodplug/libmodplug_0.8.8.5.bb deleted file mode 100644 index 1070246c..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-multimedia/libmodplug/libmodplug_0.8.8.5.bb +++ /dev/null @@ -1,21 +0,0 @@ -SUMMARY = "Library for reading mod-like audio files" -HOMEPAGE = "http://modplug-xmms.sf.net" - -LICENSE = "PD" -LIC_FILES_CHKSUM = "file://COPYING;md5=c9182faa1f7c316f7b97d404bcbe3685" - -SRC_URI = "${SOURCEFORGE_MIRROR}/modplug-xmms/libmodplug-${PV}.tar.gz" -SRC_URI[md5sum] = "5f30241db109d647781b784e62ddfaa1" -SRC_URI[sha256sum] = "77462d12ee99476c8645cb5511363e3906b88b33a6b54362b4dbc0f39aa2daad" - -inherit autotools pkgconfig - -EXTRA_OECONF = "--disable-option-checking" - -# NOTE: autotools_stage_all does nothing here, we need to do it manually -do_install_append() { - install -d ${D}${includedir}/libmodplug - install -m 0644 ${S}/src/modplug.h ${D}${includedir}/libmodplug - install -m 0644 ${S}/src/modplug.h ${D}${includedir}/ -} - diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-multimedia/libmodplug/libmodplug_0.8.9.0.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-multimedia/libmodplug/libmodplug_0.8.9.0.bb new file mode 100644 index 00000000..398daae0 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-multimedia/libmodplug/libmodplug_0.8.9.0.bb @@ -0,0 +1,20 @@ +SUMMARY = "Library for reading mod-like audio files" +HOMEPAGE = "http://modplug-xmms.sf.net" + +LICENSE = "PD" +LIC_FILES_CHKSUM = "file://COPYING;md5=c9182faa1f7c316f7b97d404bcbe3685" + +SRC_URI = "${SOURCEFORGE_MIRROR}/modplug-xmms/libmodplug-${PV}.tar.gz" +SRC_URI[md5sum] = "5ba16981e6515975e9a68a58d5ba69d1" +SRC_URI[sha256sum] = "457ca5a6c179656d66c01505c0d95fafaead4329b9dbaa0f997d00a3508ad9de" + +inherit autotools pkgconfig + +EXTRA_OECONF = "--disable-option-checking" + +# NOTE: autotools_stage_all does nothing here, we need to do it manually +do_install_append() { + install -d ${D}${includedir}/libmodplug + install -m 0644 ${S}/src/modplug.h ${D}${includedir}/libmodplug + install -m 0644 ${S}/src/modplug.h ${D}${includedir}/ +} diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-multimedia/libopus/libopus_1.1.3.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-multimedia/libopus/libopus_1.1.3.bb deleted file mode 100644 index fb9bdc70..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-multimedia/libopus/libopus_1.1.3.bb +++ /dev/null @@ -1,55 +0,0 @@ -SUMMARY = "Opus Audio Codec" -DESCRIPTION = "The Opus codec is designed for interactive \ -speech and audio transmission over the Internet. It is \ -designed by the IETF Codec Working Group and incorporates \ -technology from Skype's SILK codec and Xiph.Org's CELT codec." -HOMEPAGE = "http://www.opus-codec.org/" -SECTION = "libs/multimedia" -LICENSE = "BSD" -LIC_FILES_CHKSUM = "file://COPYING;md5=e304cdf74c2a1b0a33a5084c128a23a3" - -SRC_URI = "http://downloads.xiph.org/releases/opus/opus-${PV}.tar.gz" -SRC_URI[md5sum] = "32bbb6b557fe1b6066adc0ae1f08b629" -SRC_URI[sha256sum] = "58b6fe802e7e30182e95d0cde890c0ace40b6f125cffc50635f0ad2eef69b633" - -S = "${WORKDIR}/opus-${PV}" - -inherit autotools pkgconfig - -PACKAGECONFIG ??= "" -PACKAGECONFIG[fixed-point] = "--enable-fixed-point,," -PACKAGECONFIG[float-approx] = "--enable-float-approx,," - -EXTRA_OECONF = " \ - --with-NE10-includes=${STAGING_DIR_TARGET}${includedir} \ - --with-NE10-libraries=${STAGING_DIR_TARGET}${libdir} \ - --enable-asm \ - --enable-intrinsics \ - --enable-custom-modes \ -" - -# ne10 is available only for armv7a, armv7ve and aarch64 -DEPENDS_append_aarch64 = " ne10" -DEPENDS_append_armv7a = " ne10" -DEPENDS_append_armv7ve = " ne10" - -python () { - if d.getVar('TARGET_FPU') in [ 'soft' ]: - d.appendVar('PACKAGECONFIG', ' fixed-point') -} - -# Fails to build with thumb-1 (qemuarm) -#| {standard input}: Assembler messages: -#| {standard input}:389: Error: selected processor does not support Thumb mode `smull r5,r7,r1,r4' -#| {standard input}:418: Error: selected processor does not support Thumb mode `smull r5,r6,r4,r1' -#| {standard input}:448: Error: selected processor does not support Thumb mode `smull r4,r5,r1,r0' -#| {standard input}:474: Error: selected processor does not support Thumb mode `smull r0,r4,r8,r1' -#| {standard input}:510: Error: selected processor does not support Thumb mode `smull fp,r0,r10,r1' -#| {standard input}:553: Error: selected processor does not support Thumb mode `smull fp,r1,r10,r3' -#| {standard input}:741: Error: selected processor does not support Thumb mode `smull r3,r0,r6,r10' -#| {standard input}:761: Error: selected processor does not support Thumb mode `smull fp,r2,r3,r9' -#| {standard input}:773: Error: selected processor does not support Thumb mode `smull fp,r3,r5,r8' -#| make[2]: *** [celt/celt.lo] Error 1 -ARM_INSTRUCTION_SET = "arm" - -BBCLASSEXTEND = "native nativesdk" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-multimedia/libopus/libopus_1.3.1.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-multimedia/libopus/libopus_1.3.1.bb new file mode 100644 index 00000000..29ef2fa4 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-multimedia/libopus/libopus_1.3.1.bb @@ -0,0 +1,55 @@ +SUMMARY = "Opus Audio Codec" +DESCRIPTION = "The Opus codec is designed for interactive \ +speech and audio transmission over the Internet. It is \ +designed by the IETF Codec Working Group and incorporates \ +technology from Skype's SILK codec and Xiph.Org's CELT codec." +HOMEPAGE = "http://www.opus-codec.org/" +SECTION = "libs/multimedia" +LICENSE = "BSD-3-Clause" +LIC_FILES_CHKSUM = "file://COPYING;md5=e304cdf74c2a1b0a33a5084c128a23a3" + +SRC_URI = "http://downloads.xiph.org/releases/opus/opus-${PV}.tar.gz" +SRC_URI[md5sum] = "d7c07db796d21c9cf1861e0c2b0c0617" +SRC_URI[sha256sum] = "65b58e1e25b2a114157014736a3d9dfeaad8d41be1c8179866f144a2fb44ff9d" + +S = "${WORKDIR}/opus-${PV}" + +inherit autotools pkgconfig + +PACKAGECONFIG ??= "" +PACKAGECONFIG[fixed-point] = "--enable-fixed-point,," +PACKAGECONFIG[float-approx] = "--enable-float-approx,," + +EXTRA_OECONF = " \ + --with-NE10-includes=${STAGING_DIR_TARGET}${includedir} \ + --with-NE10-libraries=${STAGING_DIR_TARGET}${libdir} \ + --enable-asm \ + --enable-intrinsics \ + --enable-custom-modes \ +" + +# ne10 is available only for armv7a, armv7ve and aarch64 +DEPENDS_append_aarch64 = " ne10" +DEPENDS_append_armv7a = " ne10" +DEPENDS_append_armv7ve = " ne10" + +python () { + if d.getVar('TARGET_FPU') in [ 'soft' ]: + d.appendVar('PACKAGECONFIG', ' fixed-point') +} + +# Fails to build with thumb-1 (qemuarm) +#| {standard input}: Assembler messages: +#| {standard input}:389: Error: selected processor does not support Thumb mode `smull r5,r7,r1,r4' +#| {standard input}:418: Error: selected processor does not support Thumb mode `smull r5,r6,r4,r1' +#| {standard input}:448: Error: selected processor does not support Thumb mode `smull r4,r5,r1,r0' +#| {standard input}:474: Error: selected processor does not support Thumb mode `smull r0,r4,r8,r1' +#| {standard input}:510: Error: selected processor does not support Thumb mode `smull fp,r0,r10,r1' +#| {standard input}:553: Error: selected processor does not support Thumb mode `smull fp,r1,r10,r3' +#| {standard input}:741: Error: selected processor does not support Thumb mode `smull r3,r0,r6,r10' +#| {standard input}:761: Error: selected processor does not support Thumb mode `smull fp,r2,r3,r9' +#| {standard input}:773: Error: selected processor does not support Thumb mode `smull fp,r3,r5,r8' +#| make[2]: *** [celt/celt.lo] Error 1 +ARM_INSTRUCTION_SET_armv5 = "arm" + +BBCLASSEXTEND = "native nativesdk" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-multimedia/live555/live555.inc b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-multimedia/live555/live555.inc index 4fe744c1..e08d11b0 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-multimedia/live555/live555.inc +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-multimedia/live555/live555.inc @@ -8,10 +8,10 @@ LICENSE = "LGPLv3" SECTION = "devel" URLV = "${@d.getVar('PV')[0:4]}.${@d.getVar('PV')[4:6]}.${@d.getVar('PV')[6:8]}" -SRC_URI = "http://www.live555.com/live.${URLV}.tar.gz \ +SRC_URI = "https://download.videolan.org/pub/contrib/live555/live.${URLV}.tar.gz \ file://config.linux-cross" # only latest live version stays on http://www.live555.com/liveMedia/public/, add mirror for older -MIRRORS += "http://www.live555.com/liveMedia/public/ http://distcache.FreeBSD.org/ports-distfiles/ \n" +MIRRORS += "http://www.live555.com/liveMedia/public/ http://download.videolan.org/contrib/live555/ \n" S = "${WORKDIR}/live" TARGET_CC_ARCH += "${LDFLAGS}" @@ -49,8 +49,8 @@ do_install() { install -m 0755 ${S}/mediaServer/live555MediaServer ${D}${bindir}/ } -PACKAGES =+ " live555-openrtsp live555-playsip live555-mediaserver" -FILES_${PN} = "${bindir}/sapWatch ${bindir}/testMPEG1or2ProgramToTransportStream ${bindir}/testMPEG1or2Splitter ${bindir}/testMPEG1or2VideoReceiver ${bindir}/testMPEG2TransportStreamTrickPlay ${bindir}/testOnDemandRTSPServer ${bindir}/testRelay ${bindir}/testAMRAudioStreamer ${bindir}/testDVVideoStreamer ${bindir}/testMP3Receiver ${bindir}/testMP3Streamer ${bindir}/testMPEG1or2AudioVideoStreamer ${bindir}/testMPEG1or2VideoStreamer ${bindir}/testMPEG2TransportStreamer ${bindir}/testMPEG4VideoStreamer ${bindir}/testWAVAudioStreamer ${bindir}/vobStreamer ${bindir}/MPEG2TransportStreamIndexer" +PACKAGES =+ "live555-openrtsp live555-playsip live555-mediaserver live555-examples" FILES_live555-openrtsp = "${bindir}/openRTSP" FILES_live555-playsip = "${bindir}/playSIP" FILES_live555-mediaserver = "${bindir}/live555MediaServer" +FILES_live555-examples = "${bindir}/*" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-multimedia/live555/live555_20190306.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-multimedia/live555/live555_20190306.bb deleted file mode 100644 index fa6057dc..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-multimedia/live555/live555_20190306.bb +++ /dev/null @@ -1,8 +0,0 @@ -require live555.inc - -LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504 \ - file://COPYING.LESSER;md5=e6a600fd5e1d9cbde2d983680233ad02 \ - " -SRC_URI[md5sum] = "a84ca3946d899f5592c7d31012ed2fe3" -SRC_URI[sha256sum] = "0bd0c26d980425d9a419d835193e292a08a968f175da1902da4b495f126d5abd" - diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-multimedia/live555/live555_20190828.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-multimedia/live555/live555_20190828.bb new file mode 100644 index 00000000..1da61c0c --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-multimedia/live555/live555_20190828.bb @@ -0,0 +1,11 @@ +require live555.inc + +LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504 \ + file://COPYING.LESSER;md5=e6a600fd5e1d9cbde2d983680233ad02 \ + " +# SRC_URI[md5sum] = "a84ca3946d899f5592c7d31012ed2fe3" +# SRC_URI[sha256sum] = "0bd0c26d980425d9a419d835193e292a08a968f175da1902da4b495f126d5abd" + +SRC_URI[md5sum] = "a593f915664793b3ba41299b17b8bedc" +SRC_URI[sha256sum] = "a3dcd157865186cf883c3a80b4bb09637e91fff96b234b2c780a7f7dcc7a35dc" + diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-multimedia/mplayer/mpv_0.26.0.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-multimedia/mplayer/mpv_0.26.0.bb index 6586e352..c327c45e 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-multimedia/mplayer/mpv_0.26.0.bb +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-multimedia/mplayer/mpv_0.26.0.bb @@ -14,20 +14,24 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=91f1cb870c1cc2d31351a4d2595441cb" # While this item does not require it, it depends on ffmpeg which does LICENSE_FLAGS = "commercial" +SRCREV_mpv = "4db82f04502cbcd20d9a975df9dfde91d8c389e3" SRC_URI = " \ - https://github.com/mpv-player/mpv/archive/v${PV}.tar.gz;name=mpv \ - http://www.freehackers.org/~tnagy/release/waf-1.8.12;name=waf;downloadfilename=waf;subdir=${BPN}-${PV} \ + git://github.com/mpv-player/mpv;name=mpv \ + http://www.freehackers.org/~tnagy/release/waf-1.8.12;name=waf;downloadfilename=waf;subdir=git \ " -SRC_URI[mpv.md5sum] = "038d0b660de07ff645ad6a741704ecab" -SRC_URI[mpv.sha256sum] = "daf3ef358d5f260f2269f7caabce27f446c291457ec330077152127133b71b46" SRC_URI[waf.md5sum] = "cef4ee82206b1843db082d0b0506bf71" SRC_URI[waf.sha256sum] = "01bf2beab2106d1558800c8709bc2c8e496d3da4a2ca343fe091f22fca60c98b" -inherit waf pkgconfig pythonnative distro_features_check +S = "${WORKDIR}/git" + +inherit waf pkgconfig pythonnative features_check LUA ?= "lua" LUA_mips64 = "" LUA_aarch64 = "" +LUA_powerpc64 = "" +LUA_powerpc = "" + # Note: both lua and libass are required to get on-screen-display (controls) PACKAGECONFIG ??= " \ ${LUA} \ diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-multimedia/opus-tools/opus-tools_0.1.8.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-multimedia/opus-tools/opus-tools_0.1.8.bb index ff631114..a84f2bf0 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-multimedia/opus-tools/opus-tools_0.1.8.bb +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-multimedia/opus-tools/opus-tools_0.1.8.bb @@ -1,7 +1,7 @@ SUMMARY = "Opus Audio Tools" HOMEPAGE = "http://www.opus-codec.org/" -LICENSE = "BSD" +LICENSE = "BSD-2-Clause" LIC_FILES_CHKSUM = "file://COPYING;md5=843a066da9f1facfcc6ea6f616ffecb1" SRC_URI = "http://downloads.xiph.org/releases/opus/opus-tools-${PV}.tar.gz" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-multimedia/pipewire/pipewire_git.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-multimedia/pipewire/pipewire_git.bb new file mode 100644 index 00000000..bcb3015f --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-multimedia/pipewire/pipewire_git.bb @@ -0,0 +1,65 @@ +SUMMARY = "Multimedia processing server for Linux" +AUTHOR = "Wim Taymans " +HOMEPAGE = "https://pipewire.org" +SECTION = "multimedia" +LICENSE = "LGPL-2.1" +LIC_FILES_CHKSUM = " \ + file://LICENSE;md5=d8153c6e65986f862a0550ca74a3ed73 \ + file://LGPL;md5=2d5025d4aa3495befef8f17206a5b0a1 \ +" +DEPENDS = "alsa-lib dbus udev" +SRCREV = "14c11c0fe4d366bad4cfecdee97b6652ff9ed63d" +PV = "0.2.7" + +SRC_URI = "git://github.com/PipeWire/pipewire" + +S = "${WORKDIR}/git" + +inherit meson pkgconfig systemd manpages + +PACKAGECONFIG ??= "\ + ${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)} \ + gstreamer \ +" + +PACKAGECONFIG[systemd] = "-Dsystemd=true,-Dsystemd=false,systemd" +PACKAGECONFIG[gstreamer] = "-Dgstreamer=enabled,-Dgstreamer=disabled,glib-2.0 gstreamer1.0 gstreamer1.0-plugins-base" +PACKAGECONFIG[manpages] = "-Dman=true,-Dman=false,libxml-parser-perl-native" + +PACKAGES =+ "\ + ${PN}-spa-plugins \ + ${PN}-alsa \ + ${PN}-config \ + gstreamer1.0-${PN} \ + lib${PN} \ + lib${PN}-modules \ +" + +RDEPENDS_lib${PN} += "lib${PN}-modules ${PN}-spa-plugins" + +FILES_${PN} = "\ + ${sysconfdir}/pipewire/pipewire.conf \ + ${bindir}/pipewire* \ + ${systemd_user_unitdir}/* \ +" +FILES_lib${PN} = "\ + ${libdir}/libpipewire-*.so.* \ +" +FILES_lib${PN}-modules = "\ + ${libdir}/pipewire-*/* \ +" +FILES_${PN}-spa-plugins = "\ + ${bindir}/spa-* \ + ${libdir}/spa/* \ +" +FILES_${PN}-alsa = "\ + ${libdir}/alsa-lib/* \ + ${datadir}/alsa/alsa.conf.d/50-pipewire.conf \ +" +FILES_gstreamer1.0-${PN} = "\ + ${libdir}/gstreamer-1.0/* \ +" + +CONFFILES_${PN} = "\ + ${sysconfdir}/pipewire/pipewire.conf \ +" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-multimedia/pulseaudio/pavucontrol/0002-build-sys-Add-m4-file-for-AX_CXX_COMPILE_STDCXX_11.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-multimedia/pulseaudio/pavucontrol/0002-build-sys-Add-m4-file-for-AX_CXX_COMPILE_STDCXX_11.patch deleted file mode 100644 index 97ec37d4..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-multimedia/pulseaudio/pavucontrol/0002-build-sys-Add-m4-file-for-AX_CXX_COMPILE_STDCXX_11.patch +++ /dev/null @@ -1,624 +0,0 @@ -From ccb3eb7b4ff65414a56e2294080885b8966da52b Mon Sep 17 00:00:00 2001 -From: Arun Raghavan -Date: Tue, 2 Feb 2016 17:01:47 +0530 -Subject: [PATCH 2/2] build-sys: Add m4 file for AX_CXX_COMPILE_STDCXX_11 - ---- - m4/ax_cxx_compile_stdcxx.m4 | 558 +++++++++++++++++++++++++++++++++++++++++ - m4/ax_cxx_compile_stdcxx_11.m4 | 39 +++ - 2 files changed, 597 insertions(+) - create mode 100644 m4/ax_cxx_compile_stdcxx.m4 - create mode 100644 m4/ax_cxx_compile_stdcxx_11.m4 - -diff --git a/m4/ax_cxx_compile_stdcxx.m4 b/m4/ax_cxx_compile_stdcxx.m4 -new file mode 100644 -index 0000000..079e17d ---- /dev/null -+++ b/m4/ax_cxx_compile_stdcxx.m4 -@@ -0,0 +1,558 @@ -+# =========================================================================== -+# http://www.gnu.org/software/autoconf-archive/ax_cxx_compile_stdcxx.html -+# =========================================================================== -+# -+# SYNOPSIS -+# -+# AX_CXX_COMPILE_STDCXX(VERSION, [ext|noext], [mandatory|optional]) -+# -+# DESCRIPTION -+# -+# Check for baseline language coverage in the compiler for the specified -+# version of the C++ standard. If necessary, add switches to CXXFLAGS to -+# enable support. VERSION may be '11' (for the C++11 standard) or '14' -+# (for the C++14 standard). -+# -+# The second argument, if specified, indicates whether you insist on an -+# extended mode (e.g. -std=gnu++11) or a strict conformance mode (e.g. -+# -std=c++11). If neither is specified, you get whatever works, with -+# preference for an extended mode. -+# -+# The third argument, if specified 'mandatory' or if left unspecified, -+# indicates that baseline support for the specified C++ standard is -+# required and that the macro should error out if no mode with that -+# support is found. If specified 'optional', then configuration proceeds -+# regardless, after defining HAVE_CXX${VERSION} if and only if a -+# supporting mode is found. -+# -+# LICENSE -+# -+# Copyright (c) 2008 Benjamin Kosnik -+# Copyright (c) 2012 Zack Weinberg -+# Copyright (c) 2013 Roy Stogner -+# Copyright (c) 2014, 2015 Google Inc.; contributed by Alexey Sokolov -+# Copyright (c) 2015 Paul Norman -+# Copyright (c) 2015 Moritz Klammler -+# -+# Copying and distribution of this file, with or without modification, are -+# permitted in any medium without royalty provided the copyright notice -+# and this notice are preserved. This file is offered as-is, without any -+# warranty. -+ -+#serial 1 -+ -+dnl This macro is based on the code from the AX_CXX_COMPILE_STDCXX_11 macro -+dnl (serial version number 13). -+ -+AC_DEFUN([AX_CXX_COMPILE_STDCXX], [dnl -+ m4_if([$1], [11], [], -+ [$1], [14], [], -+ [$1], [17], [m4_fatal([support for C++17 not yet implemented in AX_CXX_COMPILE_STDCXX])], -+ [m4_fatal([invalid first argument `$1' to AX_CXX_COMPILE_STDCXX])])dnl -+ m4_if([$2], [], [], -+ [$2], [ext], [], -+ [$2], [noext], [], -+ [m4_fatal([invalid second argument `$2' to AX_CXX_COMPILE_STDCXX])])dnl -+ m4_if([$3], [], [ax_cxx_compile_cxx$1_required=true], -+ [$3], [mandatory], [ax_cxx_compile_cxx$1_required=true], -+ [$3], [optional], [ax_cxx_compile_cxx$1_required=false], -+ [m4_fatal([invalid third argument `$3' to AX_CXX_COMPILE_STDCXX])]) -+ AC_LANG_PUSH([C++])dnl -+ ac_success=no -+ AC_CACHE_CHECK(whether $CXX supports C++$1 features by default, -+ ax_cv_cxx_compile_cxx$1, -+ [AC_COMPILE_IFELSE([AC_LANG_SOURCE([_AX_CXX_COMPILE_STDCXX_testbody_$1])], -+ [ax_cv_cxx_compile_cxx$1=yes], -+ [ax_cv_cxx_compile_cxx$1=no])]) -+ if test x$ax_cv_cxx_compile_cxx$1 = xyes; then -+ ac_success=yes -+ fi -+ -+ m4_if([$2], [noext], [], [dnl -+ if test x$ac_success = xno; then -+ for switch in -std=gnu++$1 -std=gnu++0x; do -+ cachevar=AS_TR_SH([ax_cv_cxx_compile_cxx$1_$switch]) -+ AC_CACHE_CHECK(whether $CXX supports C++$1 features with $switch, -+ $cachevar, -+ [ac_save_CXXFLAGS="$CXXFLAGS" -+ CXXFLAGS="$CXXFLAGS $switch" -+ AC_COMPILE_IFELSE([AC_LANG_SOURCE([_AX_CXX_COMPILE_STDCXX_testbody_$1])], -+ [eval $cachevar=yes], -+ [eval $cachevar=no]) -+ CXXFLAGS="$ac_save_CXXFLAGS"]) -+ if eval test x\$$cachevar = xyes; then -+ CXXFLAGS="$CXXFLAGS $switch" -+ ac_success=yes -+ break -+ fi -+ done -+ fi]) -+ -+ m4_if([$2], [ext], [], [dnl -+ if test x$ac_success = xno; then -+ dnl HP's aCC needs +std=c++11 according to: -+ dnl http://h21007.www2.hp.com/portal/download/files/unprot/aCxx/PDF_Release_Notes/769149-001.pdf -+ dnl Cray's crayCC needs "-h std=c++11" -+ for switch in -std=c++$1 -std=c++0x +std=c++$1 "-h std=c++$1"; do -+ cachevar=AS_TR_SH([ax_cv_cxx_compile_cxx$1_$switch]) -+ AC_CACHE_CHECK(whether $CXX supports C++$1 features with $switch, -+ $cachevar, -+ [ac_save_CXXFLAGS="$CXXFLAGS" -+ CXXFLAGS="$CXXFLAGS $switch" -+ AC_COMPILE_IFELSE([AC_LANG_SOURCE([_AX_CXX_COMPILE_STDCXX_testbody_$1])], -+ [eval $cachevar=yes], -+ [eval $cachevar=no]) -+ CXXFLAGS="$ac_save_CXXFLAGS"]) -+ if eval test x\$$cachevar = xyes; then -+ CXXFLAGS="$CXXFLAGS $switch" -+ ac_success=yes -+ break -+ fi -+ done -+ fi]) -+ AC_LANG_POP([C++]) -+ if test x$ax_cxx_compile_cxx$1_required = xtrue; then -+ if test x$ac_success = xno; then -+ AC_MSG_ERROR([*** A compiler with support for C++$1 language features is required.]) -+ fi -+ else -+ if test x$ac_success = xno; then -+ HAVE_CXX$1=0 -+ AC_MSG_NOTICE([No compiler with C++$1 support was found]) -+ else -+ HAVE_CXX$1=1 -+ AC_DEFINE(HAVE_CXX$1,1, -+ [define if the compiler supports basic C++$1 syntax]) -+ fi -+ -+ AC_SUBST(HAVE_CXX$1) -+ fi -+]) -+ -+ -+dnl Test body for checking C++11 support -+ -+m4_define([_AX_CXX_COMPILE_STDCXX_testbody_11], -+ _AX_CXX_COMPILE_STDCXX_testbody_new_in_11 -+) -+ -+ -+dnl Test body for checking C++14 support -+ -+m4_define([_AX_CXX_COMPILE_STDCXX_testbody_14], -+ _AX_CXX_COMPILE_STDCXX_testbody_new_in_11 -+ _AX_CXX_COMPILE_STDCXX_testbody_new_in_14 -+) -+ -+ -+dnl Tests for new features in C++11 -+ -+m4_define([_AX_CXX_COMPILE_STDCXX_testbody_new_in_11], [[ -+ -+// If the compiler admits that it is not ready for C++11, why torture it? -+// Hopefully, this will speed up the test. -+ -+#ifndef __cplusplus -+ -+#error "This is not a C++ compiler" -+ -+#elif __cplusplus < 201103L -+ -+#error "This is not a C++11 compiler" -+ -+#else -+ -+namespace cxx11 -+{ -+ -+ namespace test_static_assert -+ { -+ -+ template -+ struct check -+ { -+ static_assert(sizeof(int) <= sizeof(T), "not big enough"); -+ }; -+ -+ } -+ -+ namespace test_final_override -+ { -+ -+ struct Base -+ { -+ virtual void f() {} -+ }; -+ -+ struct Derived : public Base -+ { -+ virtual void f() override {} -+ }; -+ -+ } -+ -+ namespace test_double_right_angle_brackets -+ { -+ -+ template < typename T > -+ struct check {}; -+ -+ typedef check single_type; -+ typedef check> double_type; -+ typedef check>> triple_type; -+ typedef check>>> quadruple_type; -+ -+ } -+ -+ namespace test_decltype -+ { -+ -+ int -+ f() -+ { -+ int a = 1; -+ decltype(a) b = 2; -+ return a + b; -+ } -+ -+ } -+ -+ namespace test_type_deduction -+ { -+ -+ template < typename T1, typename T2 > -+ struct is_same -+ { -+ static const bool value = false; -+ }; -+ -+ template < typename T > -+ struct is_same -+ { -+ static const bool value = true; -+ }; -+ -+ template < typename T1, typename T2 > -+ auto -+ add(T1 a1, T2 a2) -> decltype(a1 + a2) -+ { -+ return a1 + a2; -+ } -+ -+ int -+ test(const int c, volatile int v) -+ { -+ static_assert(is_same::value == true, ""); -+ static_assert(is_same::value == false, ""); -+ static_assert(is_same::value == false, ""); -+ auto ac = c; -+ auto av = v; -+ auto sumi = ac + av + 'x'; -+ auto sumf = ac + av + 1.0; -+ static_assert(is_same::value == true, ""); -+ static_assert(is_same::value == true, ""); -+ static_assert(is_same::value == true, ""); -+ static_assert(is_same::value == false, ""); -+ static_assert(is_same::value == true, ""); -+ return (sumf > 0.0) ? sumi : add(c, v); -+ } -+ -+ } -+ -+ namespace test_noexcept -+ { -+ -+ int f() { return 0; } -+ int g() noexcept { return 0; } -+ -+ static_assert(noexcept(f()) == false, ""); -+ static_assert(noexcept(g()) == true, ""); -+ -+ } -+ -+ namespace test_constexpr -+ { -+ -+ template < typename CharT > -+ unsigned long constexpr -+ strlen_c_r(const CharT *const s, const unsigned long acc) noexcept -+ { -+ return *s ? strlen_c_r(s + 1, acc + 1) : acc; -+ } -+ -+ template < typename CharT > -+ unsigned long constexpr -+ strlen_c(const CharT *const s) noexcept -+ { -+ return strlen_c_r(s, 0UL); -+ } -+ -+ static_assert(strlen_c("") == 0UL, ""); -+ static_assert(strlen_c("1") == 1UL, ""); -+ static_assert(strlen_c("example") == 7UL, ""); -+ static_assert(strlen_c("another\0example") == 7UL, ""); -+ -+ } -+ -+ namespace test_rvalue_references -+ { -+ -+ template < int N > -+ struct answer -+ { -+ static constexpr int value = N; -+ }; -+ -+ answer<1> f(int&) { return answer<1>(); } -+ answer<2> f(const int&) { return answer<2>(); } -+ answer<3> f(int&&) { return answer<3>(); } -+ -+ void -+ test() -+ { -+ int i = 0; -+ const int c = 0; -+ static_assert(decltype(f(i))::value == 1, ""); -+ static_assert(decltype(f(c))::value == 2, ""); -+ static_assert(decltype(f(0))::value == 3, ""); -+ } -+ -+ } -+ -+ namespace test_uniform_initialization -+ { -+ -+ struct test -+ { -+ static const int zero {}; -+ static const int one {1}; -+ }; -+ -+ static_assert(test::zero == 0, ""); -+ static_assert(test::one == 1, ""); -+ -+ } -+ -+ namespace test_lambdas -+ { -+ -+ void -+ test1() -+ { -+ auto lambda1 = [](){}; -+ auto lambda2 = lambda1; -+ lambda1(); -+ lambda2(); -+ } -+ -+ int -+ test2() -+ { -+ auto a = [](int i, int j){ return i + j; }(1, 2); -+ auto b = []() -> int { return '0'; }(); -+ auto c = [=](){ return a + b; }(); -+ auto d = [&](){ return c; }(); -+ auto e = [a, &b](int x) mutable { -+ const auto identity = [](int y){ return y; }; -+ for (auto i = 0; i < a; ++i) -+ a += b--; -+ return x + identity(a + b); -+ }(0); -+ return a + b + c + d + e; -+ } -+ -+ int -+ test3() -+ { -+ const auto nullary = [](){ return 0; }; -+ const auto unary = [](int x){ return x; }; -+ using nullary_t = decltype(nullary); -+ using unary_t = decltype(unary); -+ const auto higher1st = [](nullary_t f){ return f(); }; -+ const auto higher2nd = [unary](nullary_t f1){ -+ return [unary, f1](unary_t f2){ return f2(unary(f1())); }; -+ }; -+ return higher1st(nullary) + higher2nd(nullary)(unary); -+ } -+ -+ } -+ -+ namespace test_variadic_templates -+ { -+ -+ template -+ struct sum; -+ -+ template -+ struct sum -+ { -+ static constexpr auto value = N0 + sum::value; -+ }; -+ -+ template <> -+ struct sum<> -+ { -+ static constexpr auto value = 0; -+ }; -+ -+ static_assert(sum<>::value == 0, ""); -+ static_assert(sum<1>::value == 1, ""); -+ static_assert(sum<23>::value == 23, ""); -+ static_assert(sum<1, 2>::value == 3, ""); -+ static_assert(sum<5, 5, 11>::value == 21, ""); -+ static_assert(sum<2, 3, 5, 7, 11, 13>::value == 41, ""); -+ -+ } -+ -+ // http://stackoverflow.com/questions/13728184/template-aliases-and-sfinae -+ // Clang 3.1 fails with headers of libstd++ 4.8.3 when using std::function -+ // because of this. -+ namespace test_template_alias_sfinae -+ { -+ -+ struct foo {}; -+ -+ template -+ using member = typename T::member_type; -+ -+ template -+ void func(...) {} -+ -+ template -+ void func(member*) {} -+ -+ void test(); -+ -+ void test() { func(0); } -+ -+ } -+ -+} // namespace cxx11 -+ -+#endif // __cplusplus >= 201103L -+ -+]]) -+ -+ -+dnl Tests for new features in C++14 -+ -+m4_define([_AX_CXX_COMPILE_STDCXX_testbody_new_in_14], [[ -+ -+// If the compiler admits that it is not ready for C++14, why torture it? -+// Hopefully, this will speed up the test. -+ -+#ifndef __cplusplus -+ -+#error "This is not a C++ compiler" -+ -+#elif __cplusplus < 201402L -+ -+#error "This is not a C++14 compiler" -+ -+#else -+ -+namespace cxx14 -+{ -+ -+ namespace test_polymorphic_lambdas -+ { -+ -+ int -+ test() -+ { -+ const auto lambda = [](auto&&... args){ -+ const auto istiny = [](auto x){ -+ return (sizeof(x) == 1UL) ? 1 : 0; -+ }; -+ const int aretiny[] = { istiny(args)... }; -+ return aretiny[0]; -+ }; -+ return lambda(1, 1L, 1.0f, '1'); -+ } -+ -+ } -+ -+ namespace test_binary_literals -+ { -+ -+ constexpr auto ivii = 0b0000000000101010; -+ static_assert(ivii == 42, "wrong value"); -+ -+ } -+ -+ namespace test_generalized_constexpr -+ { -+ -+ template < typename CharT > -+ constexpr unsigned long -+ strlen_c(const CharT *const s) noexcept -+ { -+ auto length = 0UL; -+ for (auto p = s; *p; ++p) -+ ++length; -+ return length; -+ } -+ -+ static_assert(strlen_c("") == 0UL, ""); -+ static_assert(strlen_c("x") == 1UL, ""); -+ static_assert(strlen_c("test") == 4UL, ""); -+ static_assert(strlen_c("another\0test") == 7UL, ""); -+ -+ } -+ -+ namespace test_lambda_init_capture -+ { -+ -+ int -+ test() -+ { -+ auto x = 0; -+ const auto lambda1 = [a = x](int b){ return a + b; }; -+ const auto lambda2 = [a = lambda1(x)](){ return a; }; -+ return lambda2(); -+ } -+ -+ } -+ -+ namespace test_digit_seperators -+ { -+ -+ constexpr auto ten_million = 100'000'000; -+ static_assert(ten_million == 100000000, ""); -+ -+ } -+ -+ namespace test_return_type_deduction -+ { -+ -+ auto f(int& x) { return x; } -+ decltype(auto) g(int& x) { return x; } -+ -+ template < typename T1, typename T2 > -+ struct is_same -+ { -+ static constexpr auto value = false; -+ }; -+ -+ template < typename T > -+ struct is_same -+ { -+ static constexpr auto value = true; -+ }; -+ -+ int -+ test() -+ { -+ auto x = 0; -+ static_assert(is_same::value, ""); -+ static_assert(is_same::value, ""); -+ return x; -+ } -+ -+ } -+ -+} // namespace cxx14 -+ -+#endif // __cplusplus >= 201402L -+ -+]]) -diff --git a/m4/ax_cxx_compile_stdcxx_11.m4 b/m4/ax_cxx_compile_stdcxx_11.m4 -new file mode 100644 -index 0000000..09db383 ---- /dev/null -+++ b/m4/ax_cxx_compile_stdcxx_11.m4 -@@ -0,0 +1,39 @@ -+# ============================================================================ -+# http://www.gnu.org/software/autoconf-archive/ax_cxx_compile_stdcxx_11.html -+# ============================================================================ -+# -+# SYNOPSIS -+# -+# AX_CXX_COMPILE_STDCXX_11([ext|noext], [mandatory|optional]) -+# -+# DESCRIPTION -+# -+# Check for baseline language coverage in the compiler for the C++11 -+# standard; if necessary, add switches to CXXFLAGS to enable support. -+# -+# This macro is a convenience alias for calling the AX_CXX_COMPILE_STDCXX -+# macro with the version set to C++11. The two optional arguments are -+# forwarded literally as the second and third argument respectively. -+# Please see the documentation for the AX_CXX_COMPILE_STDCXX macro for -+# more information. If you want to use this macro, you also need to -+# download the ax_cxx_compile_stdcxx.m4 file. -+# -+# LICENSE -+# -+# Copyright (c) 2008 Benjamin Kosnik -+# Copyright (c) 2012 Zack Weinberg -+# Copyright (c) 2013 Roy Stogner -+# Copyright (c) 2014, 2015 Google Inc.; contributed by Alexey Sokolov -+# Copyright (c) 2015 Paul Norman -+# Copyright (c) 2015 Moritz Klammler -+# -+# Copying and distribution of this file, with or without modification, are -+# permitted in any medium without royalty provided the copyright notice -+# and this notice are preserved. This file is offered as-is, without any -+# warranty. -+ -+#serial 14 -+ -+include([ax_cxx_compile_stdcxx.m4]) -+ -+AC_DEFUN([AX_CXX_COMPILE_STDCXX_11], [AX_CXX_COMPILE_STDCXX([11], [$1], [$2])]) --- -2.12.1 - diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-multimedia/pulseaudio/pavucontrol_4.0.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-multimedia/pulseaudio/pavucontrol_4.0.bb index 6a827440..51d7e2a2 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-multimedia/pulseaudio/pavucontrol_4.0.bb +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-multimedia/pulseaudio/pavucontrol_4.0.bb @@ -1,10 +1,16 @@ DESCRIPTION = "PulseAudio Volume Control (pavucontrol) is a simple GTK based volume control tool ("mixer") for the PulseAudio sound server." -LICENSE = "GPLv2" +HOMEPAGE = "https://freedesktop.org/software/pulseaudio/pavucontrol/" +SECTION = "x11/multimedia" +LICENSE = "GPLv2+" LIC_FILES_CHKSUM = "file://LICENSE;md5=751419260aa954499f7abaabaa882bbe" -DEPENDS = "intltool-native gtkmm3 libcanberra pulseaudio" +# glib-2.0-native is required for glib-gettextize, which is used by the +# AM_GLIB_GNU_GETTEXT macro in configure.ac. That macro is deprecated, so the +# glib-2.0-native dependency may go away at some point (something to keep in +# mind when doing version upgrades). +DEPENDS = "intltool-native glib-2.0-native gtkmm3 libcanberra pulseaudio" -inherit gnome distro_features_check +inherit autotools features_check REQUIRED_DISTRO_FEATURES = "x11" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-multimedia/v4l2apps/v4l-utils/0003-v4l2-ctl-Do-not-use-getsubopt.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-multimedia/v4l2apps/v4l-utils/0003-v4l2-ctl-Do-not-use-getsubopt.patch deleted file mode 100644 index 5b84af2c..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-multimedia/v4l2apps/v4l-utils/0003-v4l2-ctl-Do-not-use-getsubopt.patch +++ /dev/null @@ -1,47 +0,0 @@ -From f7a4b79b3323534460a63b3e6c58ebaf06adf207 Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Fri, 14 Jul 2017 13:20:05 -0700 -Subject: [PATCH] v4l2-ctl: Do not use getsubopt - -POSIX says that behavior when subopts list is empty is undefined. -musl libs will set value to NULL which leads to crash. - -Taken from AlpineLinux - -Signed-off-by: Khem Raj - ---- - utils/v4l2-ctl/v4l2-ctl-common.cpp | 19 ++++++++++--------- - 1 file changed, 10 insertions(+), 9 deletions(-) - -diff --git a/utils/v4l2-ctl/v4l2-ctl-common.cpp b/utils/v4l2-ctl/v4l2-ctl-common.cpp -index 3ea6cd3..291fb3e 100644 ---- a/utils/v4l2-ctl/v4l2-ctl-common.cpp -+++ b/utils/v4l2-ctl/v4l2-ctl-common.cpp -@@ -692,16 +692,17 @@ static bool parse_subset(char *optarg) - - static bool parse_next_subopt(char **subs, char **value) - { -- static char *const subopts[] = { -- NULL -- }; -- int opt = getsubopt(subs, subopts, value); -+ char *p = *subs; -+ *value = *subs; - -- if (opt < 0 || *value) -- return false; -- fprintf(stderr, "No value given to suboption <%s>\n", -- subopts[opt]); -- return true; -+ while (*p && *p != ',') -+ p++; -+ -+ if (*p) -+ *p++ = '\0'; -+ -+ *subs = p; -+ return false; - } - - void common_cmd(int ch, char *optarg) diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-multimedia/v4l2apps/v4l-utils/0005-Define-error_t-and-include-sys-types.h.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-multimedia/v4l2apps/v4l-utils/0005-Define-error_t-and-include-sys-types.h.patch new file mode 100644 index 00000000..57948add --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-multimedia/v4l2apps/v4l-utils/0005-Define-error_t-and-include-sys-types.h.patch @@ -0,0 +1,45 @@ +From 137ce23ae677b11e5483ef810751edae7bf96bb9 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Sat, 30 Nov 2019 18:40:06 -0800 +Subject: [PATCH] Define error_t and include sys/types.h + +Fix 'unknown type name' for error_t and u_int32_t. +u_int32_t is defined in sys/type.h + +Signed-off-by: Khem Raj +--- + utils/ir-ctl/keymap.h | 4 ++++ + utils/keytable/keymap.h | 5 +++++ + 2 files changed, 9 insertions(+) + +diff --git a/utils/ir-ctl/keymap.h b/utils/ir-ctl/keymap.h +index f2b2963..1f8a3f8 100644 +--- a/utils/ir-ctl/keymap.h ++++ b/utils/ir-ctl/keymap.h +@@ -2,6 +2,10 @@ + #ifndef __KEYMAP_H + #define __KEYMAP_H + ++#include ++#ifndef error_t ++typedef int error_t; ++#endif + struct keymap { + struct keymap *next; + char *name; +diff --git a/utils/keytable/keymap.h b/utils/keytable/keymap.h +index f2b2963..345d55d 100644 +--- a/utils/keytable/keymap.h ++++ b/utils/keytable/keymap.h +@@ -2,6 +2,11 @@ + #ifndef __KEYMAP_H + #define __KEYMAP_H + ++#include ++#ifndef error_t ++typedef int error_t; ++#endif ++ + struct keymap { + struct keymap *next; + char *name; diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-multimedia/v4l2apps/v4l-utils/0006-Fix-build-on-32bit-arches-with-64bit-time_t.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-multimedia/v4l2apps/v4l-utils/0006-Fix-build-on-32bit-arches-with-64bit-time_t.patch new file mode 100644 index 00000000..a8926762 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-multimedia/v4l2apps/v4l-utils/0006-Fix-build-on-32bit-arches-with-64bit-time_t.patch @@ -0,0 +1,41 @@ +From b213da2d5fcc93cd24fc880c71c717d8e2ce2968 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Sat, 30 Nov 2019 18:43:21 -0800 +Subject: [PATCH] Fix build on 32bit arches with 64bit time_t + +time element is deprecated on new input_event structure in kernel's +input.h [1] + +[1] https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit?id=152194fe9c3f + +Upstream-Status: Pending +Signed-off-by: Khem Raj +--- + utils/keytable/keytable.c | 7 ++++++- + 1 file changed, 6 insertions(+), 1 deletion(-) + +diff --git a/utils/keytable/keytable.c b/utils/keytable/keytable.c +index 6cb0217..59ff1ee 100644 +--- a/utils/keytable/keytable.c ++++ b/utils/keytable/keytable.c +@@ -53,6 +53,11 @@ + + # define N_(string) string + ++#ifndef input_event_sec ++#define input_event_sec time.tv_sec ++#define input_event_usec time.tv_usec ++#endif ++ + struct input_keymap_entry_v2 { + #define KEYMAP_BY_INDEX (1 << 0) + u_int8_t flags; +@@ -1533,7 +1538,7 @@ static void test_event(struct rc_device *rc_dev, int fd) + + for (i = 0; i < rd / sizeof(struct input_event); i++) { + printf(_("%ld.%06ld: event type %s(0x%02x)"), +- ev[i].time.tv_sec, ev[i].time.tv_usec, ++ ev[i].input_event_sec, ev[i].input_event_usec, + get_event_name(events_type, ev[i].type), ev[i].type); + + switch (ev[i].type) { diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-multimedia/v4l2apps/v4l-utils/0007-Do-not-use-getsubopt.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-multimedia/v4l2apps/v4l-utils/0007-Do-not-use-getsubopt.patch new file mode 100644 index 00000000..ac704c72 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-multimedia/v4l2apps/v4l-utils/0007-Do-not-use-getsubopt.patch @@ -0,0 +1,48 @@ +From 4a10eab0e31d69948161241b1801c41201a5d081 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Sat, 30 Nov 2019 18:50:34 -0800 +Subject: [PATCH] Do not use getsubopt + +POSIX says that behavior when subopts list is empty is undefined. +musl libs will set value to NULL which leads to crash. + +Simply avoid getsubopt, since we cannot rely on it. + +Imported from Alpine Linux + +Upstream-Status: Pending +Signed-off-by: Khem Raj +--- + utils/v4l2-ctl/v4l2-ctl-common.cpp | 18 ++++++++++-------- + 1 file changed, 10 insertions(+), 8 deletions(-) + +diff --git a/utils/v4l2-ctl/v4l2-ctl-common.cpp b/utils/v4l2-ctl/v4l2-ctl-common.cpp +index 651917e..cea57b7 100644 +--- a/utils/v4l2-ctl/v4l2-ctl-common.cpp ++++ b/utils/v4l2-ctl/v4l2-ctl-common.cpp +@@ -782,15 +782,17 @@ static bool parse_subset(char *optarg) + + static bool parse_next_subopt(char **subs, char **value) + { +- static char *const subopts[] = { +- NULL +- }; +- int opt = getsubopt(subs, subopts, value); ++ char *p = *subs; ++ *value = *subs; + +- if (opt < 0 || *value) +- return false; +- fprintf(stderr, "Missing suboption value\n"); +- return true; ++ while (*p && *p != ',') ++ p++; ++ ++ if (*p) ++ *p++ = '\0'; ++ ++ *subs = p; ++ return false; + } + + void common_cmd(const std::string &media_bus_info, int ch, char *optarg) diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-multimedia/v4l2apps/v4l-utils_1.16.5.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-multimedia/v4l2apps/v4l-utils_1.16.5.bb deleted file mode 100644 index 41544684..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-multimedia/v4l2apps/v4l-utils_1.16.5.bb +++ /dev/null @@ -1,54 +0,0 @@ -SUMMARY = "v4l2 and IR applications" -LICENSE = "GPLv2 & LGPLv2.1" -LIC_FILES_CHKSUM = "file://COPYING;md5=48da9957849056017dc568bbc43d8975 \ - file://COPYING.libv4l;md5=d749e86a105281d7a44c2328acebc4b0" -PROVIDES = "libv4l media-ctl" - -DEPENDS = "jpeg \ - ${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'virtual/libx11', '', d)}" -DEPENDS_append_libc-musl = " argp-standalone" -DEPENDS_append_class-target = " udev" -LDFLAGS_append = " -pthread" - -inherit autotools gettext pkgconfig - -PACKAGECONFIG ??= "media-ctl" -PACKAGECONFIG[media-ctl] = "--enable-v4l-utils,--disable-v4l-utils,," - -SRC_URI = "http://linuxtv.org/downloads/v4l-utils/v4l-utils-${PV}.tar.bz2 \ - file://0001-Revert-media-ctl-Don-t-install-libmediactl-and-libv4.patch \ - file://mediactl-pkgconfig.patch \ - file://export-mediactl-headers.patch \ - file://0002-contrib-test-Link-mc_nextgen_test-with-libargp-if-ne.patch \ - file://0003-v4l2-ctl-Do-not-use-getsubopt.patch \ - " -SRC_URI[md5sum] = "de272817133c0dca000a78a5c8c8ec8b" -SRC_URI[sha256sum] = "ed80242510385017a1dc566e17a285a77222bb301f5bc19386badfcc2c19df1b" - -EXTRA_OECONF = "--disable-qv4l2 --enable-shared --with-udevdir=${base_libdir}/udev" - -VIRTUAL-RUNTIME_ir-keytable-keymaps ?= "rc-keymaps" - -PACKAGES =+ "media-ctl ir-keytable rc-keymaps libv4l libv4l-dev" - -RPROVIDES_${PN}-dbg += "libv4l-dbg" - -FILES_media-ctl = "${bindir}/media-ctl ${libdir}/libmediactl.so.*" - -FILES_ir-keytable = "${bindir}/ir-keytable ${base_libdir}/udev/rules.d/*-infrared.rules" -RDEPENDS_ir-keytable += "${VIRTUAL-RUNTIME_ir-keytable-keymaps}" - -FILES_rc-keymaps = "${sysconfdir}/rc* ${base_libdir}/udev/rc*" - -FILES_${PN} = "${bindir} ${sbindir}" - -FILES_libv4l += "${libdir}/libv4l*${SOLIBS} ${libdir}/libv4l/*.so ${libdir}/libv4l/plugins/*.so \ - ${libdir}/libdvbv5*${SOLIBS} \ - ${libdir}/libv4l/*-decomp" - -FILES_libv4l-dev += "${includedir} ${libdir}/pkgconfig \ - ${libdir}/libv4l*${SOLIBSDEV} ${libdir}/*.la \ - ${libdir}/v4l*${SOLIBSDEV} ${libdir}/libv4l/*.la ${libdir}/libv4l/plugins/*.la" - -PARALLEL_MAKE_class-native = "" -BBCLASSEXTEND = "native" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-multimedia/v4l2apps/v4l-utils_1.18.0.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-multimedia/v4l2apps/v4l-utils_1.18.0.bb new file mode 100644 index 00000000..9cc2a8e5 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-multimedia/v4l2apps/v4l-utils_1.18.0.bb @@ -0,0 +1,56 @@ +SUMMARY = "v4l2 and IR applications" +LICENSE = "GPLv2 & LGPLv2.1" +LIC_FILES_CHKSUM = "file://COPYING;md5=48da9957849056017dc568bbc43d8975 \ + file://COPYING.libv4l;md5=d749e86a105281d7a44c2328acebc4b0" +PROVIDES = "libv4l media-ctl" + +DEPENDS = "jpeg \ + ${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'virtual/libx11', '', d)}" +DEPENDS_append_libc-musl = " argp-standalone" +DEPENDS_append_class-target = " udev" +LDFLAGS_append = " -pthread" + +inherit autotools gettext pkgconfig + +PACKAGECONFIG ??= "media-ctl" +PACKAGECONFIG[media-ctl] = "--enable-v4l-utils,--disable-v4l-utils,," + +SRC_URI = "http://linuxtv.org/downloads/v4l-utils/v4l-utils-${PV}.tar.bz2 \ + file://0001-Revert-media-ctl-Don-t-install-libmediactl-and-libv4.patch \ + file://mediactl-pkgconfig.patch \ + file://export-mediactl-headers.patch \ + file://0002-contrib-test-Link-mc_nextgen_test-with-libargp-if-ne.patch \ + file://0005-Define-error_t-and-include-sys-types.h.patch \ + file://0006-Fix-build-on-32bit-arches-with-64bit-time_t.patch \ + file://0007-Do-not-use-getsubopt.patch \ + " +SRC_URI[md5sum] = "18996bd5e9d83d47055c05de376708cd" +SRC_URI[sha256sum] = "6cb60d822eeed20486a03cc23e0fc65956fbc1e85e0c1a7477f68bbd9802880d" + +EXTRA_OECONF = "--disable-qv4l2 --enable-shared --with-udevdir=${base_libdir}/udev" + +VIRTUAL-RUNTIME_ir-keytable-keymaps ?= "rc-keymaps" + +PACKAGES =+ "media-ctl ir-keytable rc-keymaps libv4l libv4l-dev" + +RPROVIDES_${PN}-dbg += "libv4l-dbg" + +FILES_media-ctl = "${bindir}/media-ctl ${libdir}/libmediactl.so.*" + +FILES_ir-keytable = "${bindir}/ir-keytable ${base_libdir}/udev/rules.d/*-infrared.rules" +RDEPENDS_ir-keytable += "${VIRTUAL-RUNTIME_ir-keytable-keymaps}" + +FILES_rc-keymaps = "${sysconfdir}/rc* ${base_libdir}/udev/rc*" + +FILES_${PN} = "${bindir} ${sbindir}" + +FILES_libv4l += "${libdir}/libv4l*${SOLIBS} ${libdir}/libv4l/*.so ${libdir}/libv4l/plugins/*.so \ + ${libdir}/libdvbv5*${SOLIBS} \ + ${libdir}/libv4l/*-decomp" + +FILES_libv4l-dev += "${includedir} ${libdir}/pkgconfig \ + ${libdir}/libv4l*${SOLIBSDEV} ${libdir}/*.la \ + ${libdir}/v4l*${SOLIBSDEV} ${libdir}/libv4l/*.la ${libdir}/libv4l/plugins/*.la" + +PARALLEL_MAKE_class-native = "" +BBCLASSEXTEND = "native" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-multimedia/wavpack/wavpack_4.60.1.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-multimedia/wavpack/wavpack_4.60.1.bb index cc5b8448..021496bd 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-multimedia/wavpack/wavpack_4.60.1.bb +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-multimedia/wavpack/wavpack_4.60.1.bb @@ -1,5 +1,5 @@ DESCRIPTION = "WavPack is a completely open audio compression format providing lossless, high-quality lossy, and a unique hybrid compression mode." -LICENSE = "BSD" +LICENSE = "BSD-3-Clause" LIC_FILES_CHKSUM = "file://license.txt;md5=f596650807588c61fcab60bec8242df8" SRC_URI = "http://wavpack.com/wavpack-${PV}.tar.bz2" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-multimedia/webm/libvpx_1.7.0.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-multimedia/webm/libvpx_1.7.0.bb deleted file mode 100644 index 1d04ed1b..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-multimedia/webm/libvpx_1.7.0.bb +++ /dev/null @@ -1,51 +0,0 @@ -SUMMARY = "VPX multi-format codec" -DESCRIPTION = "The BSD-licensed libvpx reference implementation provides en- and decoders for VP8 and VP9 bitstreams." -HOMEPAGE = "http://www.webmproject.org/code/" -BUGTRACKER = "http://code.google.com/p/webm/issues/list" -SECTION = "libs/multimedia" -LICENSE = "BSD" - -LIC_FILES_CHKSUM = "file://LICENSE;md5=d5b04755015be901744a78cc30d390d4" - -# SRCREV for 1.7.0 -SRCREV = "133f83e2c34b8d770ae06aa595cef3e254173fcb" -SRC_URI += "git://chromium.googlesource.com/webm/libvpx;protocol=https \ - file://libvpx-configure-support-blank-prefix.patch \ - " - -S = "${WORKDIR}/git" - -# ffmpeg links with this and fails -# sysroots/armv4t-oe-linux-gnueabi/usr/lib/libvpx.a(vpx_encoder.c.o)(.text+0xc4): unresolvable R_ARM_THM_CALL relocation against symbol `memcpy@@GLIBC_2.4' -ARM_INSTRUCTION_SET = "arm" - -CFLAGS += "-fPIC" - -export CC -export LD = "${CC}" - -VPXTARGET_armv5te = "armv5te-linux-gcc" -VPXTARGET_armv6 = "armv6-linux-gcc" -VPXTARGET_armv7a = "armv7-linux-gcc" -VPXTARGET ?= "generic-gnu" - -CONFIGUREOPTS = " \ - --target=${VPXTARGET} \ - --enable-vp9 \ - --enable-libs \ - --disable-install-docs \ - --disable-static \ - --enable-shared \ - --prefix=${prefix} \ - --libdir=${libdir} \ - --size-limit=16384x16384 \ -" - -do_configure() { - ${S}/configure ${CONFIGUREOPTS} -} - -do_install() { - oe_runmake install DESTDIR=${D} - chown -R root:root ${D} -} diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-multimedia/webm/libvpx_1.8.1.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-multimedia/webm/libvpx_1.8.1.bb new file mode 100644 index 00000000..006e73af --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-multimedia/webm/libvpx_1.8.1.bb @@ -0,0 +1,50 @@ +SUMMARY = "VPX multi-format codec" +DESCRIPTION = "The BSD-licensed libvpx reference implementation provides en- and decoders for VP8 and VP9 bitstreams." +HOMEPAGE = "http://www.webmproject.org/code/" +BUGTRACKER = "http://code.google.com/p/webm/issues/list" +SECTION = "libs/multimedia" +LICENSE = "BSD-3-Clause" + +LIC_FILES_CHKSUM = "file://LICENSE;md5=d5b04755015be901744a78cc30d390d4" + +SRCREV = "8ae686757b708cd8df1d10c71586aff5355cfe1e" +SRC_URI += "git://chromium.googlesource.com/webm/libvpx;protocol=https \ + file://libvpx-configure-support-blank-prefix.patch \ + " + +S = "${WORKDIR}/git" + +# ffmpeg links with this and fails +# sysroots/armv4t-oe-linux-gnueabi/usr/lib/libvpx.a(vpx_encoder.c.o)(.text+0xc4): unresolvable R_ARM_THM_CALL relocation against symbol `memcpy@@GLIBC_2.4' +ARM_INSTRUCTION_SET = "arm" + +CFLAGS += "-fPIC" + +export CC +export LD = "${CC}" + +VPXTARGET_armv5te = "armv5te-linux-gcc" +VPXTARGET_armv6 = "armv6-linux-gcc" +VPXTARGET_armv7a = "armv7-linux-gcc" +VPXTARGET ?= "generic-gnu" + +CONFIGUREOPTS = " \ + --target=${VPXTARGET} \ + --enable-vp9 \ + --enable-libs \ + --disable-install-docs \ + --disable-static \ + --enable-shared \ + --prefix=${prefix} \ + --libdir=${libdir} \ + --size-limit=16384x16384 \ +" + +do_configure() { + ${S}/configure ${CONFIGUREOPTS} +} + +do_install() { + oe_runmake install DESTDIR=${D} + chown -R root:root ${D} +} diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-multimedia/xpext/xpext_1.0-5.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-multimedia/xpext/xpext_1.0-5.bb index 526659e4..b6aafdee 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-multimedia/xpext/xpext_1.0-5.bb +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-multimedia/xpext/xpext_1.0-5.bb @@ -9,7 +9,7 @@ SRC_URI = "http://repository.maemo.org/pool/maemo/ossw/source/x/${BPN}/${BPN}_${ file://auxdir.patch;striplevel=0" S = "${WORKDIR}/xpext-1.0" -inherit autotools pkgconfig distro_features_check +inherit autotools pkgconfig features_check # depends on virtual/libx11 REQUIRED_DISTRO_FEATURES = "x11" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-multimedia/xsp/xsp_1.0.0-8.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-multimedia/xsp/xsp_1.0.0-8.bb index c7a068df..c611da48 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-multimedia/xsp/xsp_1.0.0-8.bb +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-multimedia/xsp/xsp_1.0.0-8.bb @@ -7,7 +7,7 @@ SRC_URI = "http://repository.maemo.org/pool/maemo/ossw/source/x/xsp/${BPN}_${PV} file://xsp-fix-pc.patch" S = "${WORKDIR}/Xsp" -inherit autotools pkgconfig distro_features_check +inherit autotools pkgconfig features_check # depends on virtual/libx11 REQUIRED_DISTRO_FEATURES = "x11" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-navigation/gpsd/gpsd-3.17/0001-include-sys-ttydefaults.h.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-navigation/gpsd/gpsd-3.17/0001-include-sys-ttydefaults.h.patch deleted file mode 100644 index e91e4e9f..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-navigation/gpsd/gpsd-3.17/0001-include-sys-ttydefaults.h.patch +++ /dev/null @@ -1,35 +0,0 @@ -From f221fa959c80b43c65426500a6836a1b5cf6fe0c Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Wed, 17 Aug 2016 02:16:12 +0000 -Subject: [PATCH] include sys/ttydefaults.h - -This is needed for CTRL definition, as exposed by musl on glibc -this include file gets pulled indirectly. - -/usr/src/debug/gpsd/3.14-r0/gpsd-3.14/gpsmon.c:605: undefined reference to `CTRL' -clang-3.9: error: linker command failed with exit code 1 (use -v to see invocation) -scons: *** [gpsmon] Error 1 - -Signed-off-by: Khem Raj - -Foreward port to gpsd 3.16 -Signed-off-by: Max Krummenacher ---- - gpsmon.c | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/gpsmon.c b/gpsmon.c -index 89c43ee2..5cc0dabd 100644 ---- a/gpsmon.c -+++ b/gpsmon.c -@@ -24,6 +24,7 @@ - #include - #include - #include -+#include - #include - #include - --- -2.12.0 - diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-navigation/gpsd/gpsd-3.17/0004-SConstruct-disable-html-and-man-docs-building-becaus.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-navigation/gpsd/gpsd-3.17/0004-SConstruct-disable-html-and-man-docs-building-becaus.patch deleted file mode 100644 index ba3d205d..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-navigation/gpsd/gpsd-3.17/0004-SConstruct-disable-html-and-man-docs-building-becaus.patch +++ /dev/null @@ -1,51 +0,0 @@ -From 697e2e9ff97487266d817cdd41bacc83f681e3d7 Mon Sep 17 00:00:00 2001 -From: Martin Jansa -Date: Sun, 29 Apr 2012 00:05:59 +0200 -Subject: [PATCH 4/4] SConstruct: disable html and man docs building because - xmlto-native from OE is broken - -It will try to load dtd and fail: -| xmlto man gpsctl.xml; mv `basename gpsctl.1` gpsctl.1 -| xmlto: /var/lib/jenkins/jobs/shr-core-branches/workspace/shr-core/tmp-eglibc/work/armv4t-oe-linux-gnueabi/gpsd-3.4-r2/gpsd-3.4/gpsctl.xml does not validate (status 3) -| xmlto: Fix document syntax or use --skip-validation option -| I/O error : Attempt to load network entity http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd -| /var/lib/jenkins/jobs/shr-core-branches/workspace/shr-core/tmp-eglibc/work/armv4t-oe-linux-gnueabi/gpsd-3.4-r2/gpsd-3.4/gpsctl.xml:8: warning: failed to load external entity "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd" -| "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd"> -| ^ -| I/O error : Attempt to load network entity http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd -| warning: failed to load external entity "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd" -| validity error : Could not load the external subset "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd" -| Document /var/lib/jenkins/jobs/shr-core-branches/workspace/shr-core/tmp-eglibc/work/armv4t-oe-linux-gnueabi/gpsd-3.4-r2/gpsd-3.4/gpsctl.xml does not validate -| mv: cannot stat `gpsctl.1': No such file or directory -| scons: *** [gpsctl.1] Error 1 -| scons: building terminated because of errors. - -Upstream-Status: Inappropriate [disable feature] - -Signed-off-by: Martin Jansa -Signed-off-by: Peter A. Bigot ---- - SConstruct | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/SConstruct b/SConstruct -index 3318bb48..a5bb756d 100644 ---- a/SConstruct -+++ b/SConstruct -@@ -889,11 +889,11 @@ else: - - manbuilder = htmlbuilder = None - if env['manbuild']: -- if config.CheckXsltproc(): -+ if False and config.CheckXsltproc(): - build = "xsltproc --nonet %s $SOURCE >$TARGET" - htmlbuilder = build % docbook_html_uri - manbuilder = build % docbook_man_uri -- elif WhereIs("xmlto"): -+ elif False and WhereIs("xmlto"): - xmlto = "xmlto %s $SOURCE || mv `basename $TARGET` " \ - "`dirname $TARGET`" - htmlbuilder = xmlto % "html-nochunks" --- -1.8.5.5 - diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-navigation/gpsd/gpsd-3.17/0001-SConstruct-prefix-includepy-with-sysroot-and-drop-sy.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-navigation/gpsd/gpsd/0001-SConstruct-prefix-includepy-with-sysroot-and-drop-sy.patch similarity index 81% rename from Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-navigation/gpsd/gpsd-3.17/0001-SConstruct-prefix-includepy-with-sysroot-and-drop-sy.patch rename to Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-navigation/gpsd/gpsd/0001-SConstruct-prefix-includepy-with-sysroot-and-drop-sy.patch index 1fa27c21..23ae5e50 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-navigation/gpsd/gpsd-3.17/0001-SConstruct-prefix-includepy-with-sysroot-and-drop-sy.patch +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-navigation/gpsd/gpsd/0001-SConstruct-prefix-includepy-with-sysroot-and-drop-sy.patch @@ -1,4 +1,4 @@ -From 1e2cea8945bc2183fbe1a012dcd633a352125952 Mon Sep 17 00:00:00 2001 +From 5464d9e1bfd1a1c54338ec7c4148cad1b222ef93 Mon Sep 17 00:00:00 2001 From: Martin Jansa Date: Tue, 24 Apr 2012 18:45:14 +0200 Subject: [PATCH] SConstruct: prefix includepy with sysroot and drop sysroot @@ -34,15 +34,16 @@ Upstream-Status: Inappropriate [embedded specific] Signed-off-by: Martin Jansa Signed-off-by: Peter A. Bigot + --- - SConstruct | 9 +++++++++ - 1 file changed, 9 insertions(+) + SConstruct | 8 +++++--- + 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/SConstruct b/SConstruct -index 3318bb48..e1c4f963 100644 +index b8f3fb1..883e06d 100644 --- a/SConstruct +++ b/SConstruct -@@ -934,7 +934,7 @@ else: +@@ -980,7 +980,7 @@ else: # Set up configuration for target Python @@ -51,7 +52,7 @@ index 3318bb48..e1c4f963 100644 PYTHON_CONFIG_NAMES = ['CC', 'CXX', 'OPT', 'BASECFLAGS', 'CCSHARED', 'LDSHARED', 'SO', 'INCLUDEPY', 'LDFLAGS'] -@@ -1364,7 +1364,7 @@ else: +@@ -1506,7 +1506,7 @@ else: LINK=ldshared, SHLIBPREFIX="", SHLIBSUFFIX=python_config['SO'], @@ -60,22 +61,19 @@ index 3318bb48..e1c4f963 100644 CPPFLAGS=python_config['OPT'], CFLAGS=python_config['BASECFLAGS'], CXXFLAGS=python_config['BASECFLAGS']) -@@ -1662,12 +1662,15 @@ if ((not env['debug'] and not env['profiling'] and not env['nostrip'] - if not env['python']: - python_install = [] - else: -+ python_libdir = python_libdir.replace(env['sysroot'], '') - python_module_dir = python_libdir + os.sep + 'gps' +@@ -1808,12 +1808,14 @@ if ((not env['debug'] and not env['profiling'] and not env['nostrip'] and + env.AddPostAction(binaryinstall, '$STRIP $TARGET') + + if env['python']: +- python_module_dir = str(python_libdir) + os.sep + 'gps' ++ python_module_dir = python_libdir.replace(env['sysroot'], '') + os.sep + 'gps' python_extensions_install = python_env.Install(DESTDIR + python_module_dir, python_built_extensions) - if ((not env['debug'] and not env['profiling'] - and not env['nostrip'] and not sys.platform.startswith('darwin'))): + if ((not env['debug'] and not env['profiling'] and + not env['nostrip'] and not sys.platform.startswith('darwin'))): python_env.AddPostAction(python_extensions_install, '$STRIP $TARGET') + env.AddPostAction(python_extensions_install, '$CHRPATH -r "%s" "$TARGET"' \ + % (python_libdir, )) python_modules_install = python_env.Install(DESTDIR + python_module_dir, python_modules) --- -2.1.0 - diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-navigation/gpsd/gpsd/0001-gps_shm_close-Free-privdata.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-navigation/gpsd/gpsd/0001-gps_shm_close-Free-privdata.patch new file mode 100644 index 00000000..9b380158 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-navigation/gpsd/gpsd/0001-gps_shm_close-Free-privdata.patch @@ -0,0 +1,37 @@ +From 2a4b3bcde0d73a3a4a6644d5f944ac9d16023ba9 Mon Sep 17 00:00:00 2001 +From: Adrian Bunk +Date: Mon, 21 Oct 2019 13:53:25 +0300 +Subject: gps_shm_close: Free privdata + +Previously every open/close cycle leaked privdata. + +Signed-off-by: Adrian Bunk +Signed-off-by: Gary E. Miller + +Upstream-Status: Backport +--- + libgps_shm.c | 8 ++++++-- + 1 file changed, 6 insertions(+), 2 deletions(-) + +diff --git a/libgps_shm.c b/libgps_shm.c +index d93972bba..12bb3760b 100644 +--- a/libgps_shm.c ++++ b/libgps_shm.c +@@ -163,8 +163,12 @@ int gps_shm_read(struct gps_data_t *gpsdata) + + void gps_shm_close(struct gps_data_t *gpsdata) + { +- if (PRIVATE(gpsdata) && PRIVATE(gpsdata)->shmseg != NULL) +- (void)shmdt((const void *)PRIVATE(gpsdata)->shmseg); ++ if (PRIVATE(gpsdata)) { ++ if (PRIVATE(gpsdata)->shmseg != NULL) ++ (void)shmdt((const void *)PRIVATE(gpsdata)->shmseg); ++ free(PRIVATE(gpsdata)); ++ gpsdata->privdata = NULL; ++ } + } + + int gps_shm_mainloop(struct gps_data_t *gpsdata, int timeout, +-- +2.20.1 + diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-navigation/gpsd/gpsd_3.17.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-navigation/gpsd/gpsd_3.17.bb deleted file mode 100644 index 7752e76b..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-navigation/gpsd/gpsd_3.17.bb +++ /dev/null @@ -1,141 +0,0 @@ -SUMMARY = "A TCP/IP Daemon simplifying the communication with GPS devices" -SECTION = "console/network" -LICENSE = "BSD" -LIC_FILES_CHKSUM = "file://COPYING;md5=d217a23f408e91c94359447735bc1800" -DEPENDS = "dbus dbus-glib ncurses python libusb1 chrpath-replacement-native pps-tools" -PROVIDES = "virtual/gpsd" - -# SConstruct in gpsd does not yet support Python 3 -DEPENDS += "python-scons-native" -DEPENDS_remove = "python3-scons-native" - -EXTRANATIVEPATH += "chrpath-native" - -SRC_URI = "${SAVANNAH_GNU_MIRROR}/${BPN}/${BP}.tar.gz \ - file://0001-SConstruct-prefix-includepy-with-sysroot-and-drop-sy.patch \ - file://0004-SConstruct-disable-html-and-man-docs-building-becaus.patch \ - file://0001-include-sys-ttydefaults.h.patch \ -" -SRC_URI[md5sum] = "e0cfadcf4a65dfbdd2afb11c58f4e4a1" -SRC_URI[sha256sum] = "68e0dbecfb5831997f8b3d6ba48aed812eb465d8c0089420ab68f9ce4d85e77a" - -inherit scons update-rc.d python-dir pythonnative systemd bluetooth update-alternatives - -INITSCRIPT_PACKAGES = "gpsd-conf" -INITSCRIPT_NAME = "gpsd" -INITSCRIPT_PARAMS = "defaults 35" - -SYSTEMD_OESCONS = "${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false',d)}" - -export STAGING_INCDIR -export STAGING_LIBDIR - -PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'bluetooth', 'bluez', '', d)}" -PACKAGECONFIG[bluez] = "bluez='true',bluez='false',${BLUEZ}" -PACKAGECONFIG[qt] = "qt='yes' qt_versioned=5,qt='no',qtbase" -EXTRA_OESCONS = " \ - sysroot=${STAGING_DIR_TARGET} \ - libQgpsmm='false' \ - debug='true' \ - strip='false' \ - chrpath='yes' \ - systemd='${SYSTEMD_OESCONS}' \ - libdir='${libdir}' \ - ${PACKAGECONFIG_CONFARGS} \ -" -# this cannot be used, because then chrpath is not found and only static lib is built -# target=${HOST_SYS} - -do_compile_prepend() { - export PKG_CONFIG_PATH="${PKG_CONFIG_PATH}" - export PKG_CONFIG="PKG_CONFIG_SYSROOT_DIR=\"${PKG_CONFIG_SYSROOT_DIR}\" pkg-config" - export STAGING_PREFIX="${STAGING_DIR_HOST}/${prefix}" - export LINKFLAGS="${LDFLAGS}" -} - -do_install() { - export PKG_CONFIG_PATH="${PKG_CONFIG_PATH}" - export PKG_CONFIG="PKG_CONFIG_SYSROOT_DIR=\"${PKG_CONFIG_SYSROOT_DIR}\" pkg-config" - export STAGING_PREFIX="${STAGING_DIR_HOST}/${prefix}" - export LINKFLAGS="${LDFLAGS}" - - export DESTDIR="${D}" - # prefix is used for RPATH and DESTDIR/prefix for instalation - ${STAGING_BINDIR_NATIVE}/scons prefix=${prefix} install ${EXTRA_OESCONS}|| \ - bbfatal "scons install execution failed." -} - -do_install_append() { - install -d ${D}/${sysconfdir}/init.d - install -m 0755 ${S}/packaging/deb/etc_init.d_gpsd ${D}/${sysconfdir}/init.d/gpsd - install -d ${D}/${sysconfdir}/default - install -m 0644 ${S}/packaging/deb/etc_default_gpsd ${D}/${sysconfdir}/default/gpsd.default - - #support for udev - install -d ${D}/${sysconfdir}/udev/rules.d - install -m 0644 ${S}/gpsd.rules ${D}/${sysconfdir}/udev/rules.d/ - install -d ${D}${base_libdir}/udev/ - install -m 0755 ${S}/gpsd.hotplug ${D}${base_libdir}/udev/ - - #support for python - install -d ${D}/${PYTHON_SITEPACKAGES_DIR}/gps - install -m 755 ${S}/gps/*.py ${D}/${PYTHON_SITEPACKAGES_DIR}/gps - - #support for systemd - install -d ${D}${systemd_unitdir}/system/ - install -m 0644 ${S}/systemd/${BPN}.service ${D}${systemd_unitdir}/system/${BPN}.service - install -m 0644 ${S}/systemd/${BPN}ctl@.service ${D}${systemd_unitdir}/system/${BPN}ctl@.service - install -m 0644 ${S}/systemd/${BPN}.socket ${D}${systemd_unitdir}/system/${BPN}.socket -} - -PACKAGES =+ "libgps libgpsd python-pygps gpsd-udev gpsd-conf gpsd-gpsctl gps-utils" - -RPROVIDES_${PN}-dbg += "python-pygps-dbg" - -FILES_${PN}-dev += "${libdir}/pkgconfdir/libgpsd.pc ${libdir}/pkgconfdir/libgps.pc \ - ${libdir}/libQgpsmm.prl" - -RDEPENDS_${PN} = "gpsd-gpsctl" -RRECOMMENDS_${PN} = "gpsd-conf gpsd-udev gpsd-machine-conf" - -SUMMARY_gpsd-udev = "udev relevant files to use gpsd hotplugging" -FILES_gpsd-udev = "${base_libdir}/udev ${sysconfdir}/udev/*" -RDEPENDS_gpsd-udev += "udev gpsd-conf" - -SUMMARY_libgpsd = "C service library used for communicating with gpsd" -FILES_libgpsd = "${libdir}/libgpsd.so.*" - -SUMMARY_libgps = "C service library used for communicating with gpsd" -FILES_libgps = "${libdir}/libgps.so.*" - -SUMMARY_gpsd-conf = "gpsd configuration files and init scripts" -FILES_gpsd-conf = "${sysconfdir}" -CONFFILES_gpsd-conf = "${sysconfdir}/default/gpsd.default" - -SUMMARY_gpsd-gpsctl = "Tool for tweaking GPS modes" -FILES_gpsd-gpsctl = "${bindir}/gpsctl" - -SUMMARY_gps-utils = "Utils used for simulating, monitoring,... a GPS" -FILES_gps-utils = "${bindir}/*" -RDEPENDS_gps-utils = "python-pygps" - -SUMMARY_python-pygps = "Python bindings to gpsd" -FILES_python-pygps = "${PYTHON_SITEPACKAGES_DIR}/*" -RDEPENDS_python-pygps = " \ - python-core \ - python-io \ - python-threading \ - python-terminal \ - python-curses \ - gpsd \ - python-json" - -RPROVIDES_${PN} += "${PN}-systemd" -RREPLACES_${PN} += "${PN}-systemd" -RCONFLICTS_${PN} += "${PN}-systemd" -SYSTEMD_SERVICE_${PN} = "${BPN}.socket ${BPN}ctl@.service" - - -ALTERNATIVE_${PN} = "gpsd-defaults" -ALTERNATIVE_LINK_NAME[gpsd-defaults] = "${sysconfdir}/default/gpsd" -ALTERNATIVE_TARGET[gpsd-defaults] = "${sysconfdir}/default/gpsd.default" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-navigation/gpsd/gpsd_3.19.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-navigation/gpsd/gpsd_3.19.bb new file mode 100644 index 00000000..9fdbbf25 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-navigation/gpsd/gpsd_3.19.bb @@ -0,0 +1,137 @@ +SUMMARY = "A TCP/IP Daemon simplifying the communication with GPS devices" +SECTION = "console/network" +LICENSE = "BSD-2-Clause" +LIC_FILES_CHKSUM = "file://COPYING;md5=01764c35ae34d9521944bb6ab312af53" +DEPENDS = "dbus ncurses python python3 pps-tools" +PROVIDES = "virtual/gpsd" + +SRC_URI = "${SAVANNAH_GNU_MIRROR}/${BPN}/${BP}.tar.gz \ + file://0001-SConstruct-prefix-includepy-with-sysroot-and-drop-sy.patch \ + file://0001-gps_shm_close-Free-privdata.patch \ +" +SRC_URI[md5sum] = "b3bf88706794eb8e5f2c2543bf7ba87b" +SRC_URI[sha256sum] = "27dd24d45b2ac69baab7933da2bf6ae5fb0be90130f67e753c110a3477155f39" + +inherit scons update-rc.d python-dir pythonnative systemd update-alternatives + +INITSCRIPT_PACKAGES = "gpsd-conf" +INITSCRIPT_NAME = "gpsd" +INITSCRIPT_PARAMS = "defaults 35" + +SYSTEMD_OESCONS = "${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false',d)}" + +export STAGING_INCDIR +export STAGING_LIBDIR + +PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'bluetooth', 'bluez', '', d)} usb" +PACKAGECONFIG[bluez] = "bluez='true',bluez='false',bluez5" +PACKAGECONFIG[qt] = "qt='yes' qt_versioned=5,qt='no',qtbase" +PACKAGECONFIG[usb] = "usb='true',usb='false',libusb1" +EXTRA_OESCONS = " \ + sysroot=${STAGING_DIR_TARGET} \ + libQgpsmm='false' \ + debug='false' \ + nostrip='true' \ + systemd='${SYSTEMD_OESCONS}' \ + libdir='${libdir}' \ + manbuild='false' \ + ${PACKAGECONFIG_CONFARGS} \ +" +# this cannot be used, because then chrpath is not found and only static lib is built +# target=${HOST_SYS} + +do_compile_prepend() { + export PKG_CONFIG_PATH="${PKG_CONFIG_PATH}" + export PKG_CONFIG="PKG_CONFIG_SYSROOT_DIR=\"${PKG_CONFIG_SYSROOT_DIR}\" pkg-config" + export STAGING_PREFIX="${STAGING_DIR_HOST}/${prefix}" + export LINKFLAGS="${LDFLAGS}" +} + +do_install() { + export PKG_CONFIG_PATH="${PKG_CONFIG_PATH}" + export PKG_CONFIG="PKG_CONFIG_SYSROOT_DIR=\"${PKG_CONFIG_SYSROOT_DIR}\" pkg-config" + export STAGING_PREFIX="${STAGING_DIR_HOST}/${prefix}" + export LINKFLAGS="${LDFLAGS}" + + export DESTDIR="${D}" + # prefix is used for RPATH and DESTDIR/prefix for instalation + ${STAGING_BINDIR_NATIVE}/scons prefix=${prefix} python_libdir=${libdir} install ${EXTRA_OESCONS} || \ + bbfatal "scons install execution failed." +} + +do_install_append() { + install -d ${D}/${sysconfdir}/init.d + install -m 0755 ${S}/packaging/deb/etc_init.d_gpsd ${D}/${sysconfdir}/init.d/gpsd + install -d ${D}/${sysconfdir}/default + install -m 0644 ${S}/packaging/deb/etc_default_gpsd ${D}/${sysconfdir}/default/gpsd.default + + #support for udev + install -d ${D}/${sysconfdir}/udev/rules.d + install -m 0644 ${S}/gpsd.rules ${D}/${sysconfdir}/udev/rules.d/ + install -d ${D}${base_libdir}/udev/ + install -m 0755 ${S}/gpsd.hotplug ${D}${base_libdir}/udev/ + + #support for python + install -d ${D}/${PYTHON_SITEPACKAGES_DIR}/gps + install -m 755 ${S}/gps/*.py ${D}/${PYTHON_SITEPACKAGES_DIR}/gps + + #support for systemd + install -d ${D}${systemd_unitdir}/system/ + install -m 0644 ${S}/systemd/${BPN}.service ${D}${systemd_unitdir}/system/${BPN}.service + sed -i -e 's,/usr/local,/usr,g' ${D}${systemd_unitdir}/system/${BPN}.service + install -m 0644 ${S}/systemd/${BPN}ctl@.service ${D}${systemd_unitdir}/system/${BPN}ctl@.service + sed -i -e 's,/usr/local,/usr,g' ${D}${systemd_unitdir}/system/${BPN}ctl@.service + install -m 0644 ${S}/systemd/${BPN}.socket ${D}${systemd_unitdir}/system/${BPN}.socket +} + +PACKAGES =+ "libgps libgpsd python-pygps gpsd-udev gpsd-conf gpsd-gpsctl gps-utils" + +RPROVIDES_${PN}-dbg += "python-pygps-dbg" + +FILES_${PN}-dev += "${libdir}/pkgconfdir/libgpsd.pc ${libdir}/pkgconfdir/libgps.pc \ + ${libdir}/libQgpsmm.prl" + +RDEPENDS_${PN} = "gpsd-gpsctl" +RRECOMMENDS_${PN} = "gpsd-conf gpsd-udev gpsd-machine-conf" + +SUMMARY_gpsd-udev = "udev relevant files to use gpsd hotplugging" +FILES_gpsd-udev = "${base_libdir}/udev ${sysconfdir}/udev/*" +RDEPENDS_gpsd-udev += "udev gpsd-conf" + +SUMMARY_libgpsd = "C service library used for communicating with gpsd" +FILES_libgpsd = "${libdir}/libgpsd.so.*" + +SUMMARY_libgps = "C service library used for communicating with gpsd" +FILES_libgps = "${libdir}/libgps.so.*" + +SUMMARY_gpsd-conf = "gpsd configuration files and init scripts" +FILES_gpsd-conf = "${sysconfdir}" +CONFFILES_gpsd-conf = "${sysconfdir}/default/gpsd.default" + +SUMMARY_gpsd-gpsctl = "Tool for tweaking GPS modes" +FILES_gpsd-gpsctl = "${bindir}/gpsctl" + +SUMMARY_gps-utils = "Utils used for simulating, monitoring,... a GPS" +# Python files are required for gps/fake, required for gpsfake. +FILES_gps-utils = "${bindir}/* ${libdir}/gps/*.py ${libdir}/gps/*.so" +RDEPENDS_gps-utils = "python-pygps" + +SUMMARY_python-pygps = "Python bindings to gpsd" +FILES_python-pygps = "${PYTHON_SITEPACKAGES_DIR}/* ${libdir}/gps/*.py ${libdir}/*.egg-info" +RDEPENDS_python-pygps = " \ + python-core \ + python-io \ + python-threading \ + python-terminal \ + gpsd \ + python-json" + +RPROVIDES_${PN} += "${PN}-systemd" +RREPLACES_${PN} += "${PN}-systemd" +RCONFLICTS_${PN} += "${PN}-systemd" +SYSTEMD_SERVICE_${PN} = "${BPN}.socket ${BPN}ctl@.service" + + +ALTERNATIVE_${PN} = "gpsd-defaults" +ALTERNATIVE_LINK_NAME[gpsd-defaults] = "${sysconfdir}/default/gpsd" +ALTERNATIVE_TARGET[gpsd-defaults] = "${sysconfdir}/default/gpsd.default" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-navigation/libspatialite/libspatialite_4.3.0a.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-navigation/libspatialite/libspatialite_4.3.0a.bb index a3f09036..b33f5a31 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-navigation/libspatialite/libspatialite_4.3.0a.bb +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-navigation/libspatialite/libspatialite_4.3.0a.bb @@ -14,6 +14,7 @@ SRC_URI[sha256sum] = "88900030a4762904a7880273f292e5e8ca6b15b7c6c3fb88ffa9e67ee8 inherit autotools pkgconfig EXTRA_OECONF = "--enable-freexl=no" +CFLAGS += "-DACCEPT_USE_OF_DEPRECATED_PROJ_API_H" # package plugins for SQLite3 PACKAGES += "${PN}-plugin" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-navigation/orrery/orrery_2.7.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-navigation/orrery/orrery_2.7.bb index 010f65fb..589fc5f7 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-navigation/orrery/orrery_2.7.bb +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-navigation/orrery/orrery_2.7.bb @@ -5,7 +5,7 @@ LICENSE = "GPLv2+" LIC_FILES_CHKSUM = "file://orrery.c;endline=25;md5=d792bdf2b591972da175aecc38d88cfe" DEPENDS = "gtk+" -inherit distro_features_check autotools-brokensep pkgconfig +inherit features_check autotools-brokensep pkgconfig REQUIRED_DISTRO_FEATURES = "x11" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-navigation/proj/proj_4.9.3.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-navigation/proj/proj_4.9.3.bb deleted file mode 100644 index f45f8948..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-navigation/proj/proj_4.9.3.bb +++ /dev/null @@ -1,14 +0,0 @@ -SUMMARY = "PROJ.4 - Cartographic Projections library" -HOMEPAGE = "http://trac.osgeo.org/proj/" -SECTION = "libs" - -LICENSE = "MIT" -LIC_FILES_CHKSUM = "file://COPYING;md5=74d9aaec5fa0cd734341e8c4dc91b608" - -SRC_URI = "http://download.osgeo.org/proj/proj-${PV}.tar.gz" -SRC_URI[md5sum] = "d598336ca834742735137c5674b214a1" -SRC_URI[sha256sum] = "6984542fea333488de5c82eea58d699e4aff4b359200a9971537cd7e047185f7" - -inherit autotools pkgconfig lib_package - -FILES_${PN} += "${datadir}/proj" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-navigation/proj/proj_6.2.0.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-navigation/proj/proj_6.2.0.bb new file mode 100644 index 00000000..fa269d01 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-navigation/proj/proj_6.2.0.bb @@ -0,0 +1,16 @@ +SUMMARY = "PROJ.4 - Cartographic Projections library" +HOMEPAGE = "http://trac.osgeo.org/proj/" +SECTION = "libs" + +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://COPYING;md5=74d9aaec5fa0cd734341e8c4dc91b608" + +SRC_URI = "http://download.osgeo.org/${BPN}/${BP}.tar.gz" +SRC_URI[md5sum] = "5cde556545828beaffbe50b1bb038480" +SRC_URI[sha256sum] = "b300c0f872f632ad7f8eb60725edbf14f0f8f52db740a3ab23e7b94f1cd22a50" + +DEPENDS = "sqlite3 sqlite3-native" + +inherit autotools pkgconfig lib_package + +FILES_${PN} += "${datadir}/proj" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-printing/cups/cups-filters.inc b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-printing/cups/cups-filters.inc new file mode 100644 index 00000000..589bb90e --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-printing/cups/cups-filters.inc @@ -0,0 +1,81 @@ +DESCRIPTION = "CUPS backends, filters, and other software" +HOMEPAGE = "http://www.linuxfoundation.org/collaborate/workgroups/openprinting/cups-filters" + +LICENSE = "GPLv2 & LGPLv2 & MIT & GPLv2+ & GPLv3" +LIC_FILES_CHKSUM = "file://COPYING;md5=516215fd57564996d70327db19b368ff" + +SECTION = "console/utils" + +DEPENDS = "cups glib-2.0 glib-2.0-native dbus dbus-glib lcms ghostscript poppler qpdf libpng" +DEPENDS_class-native = "poppler-native glib-2.0-native dbus-native pkgconfig-native gettext-native libpng-native" + +SRC_URI = "http://openprinting.org/download/cups-filters/cups-filters-${PV}.tar.gz" + +inherit autotools-brokensep gettext pkgconfig + +EXTRA_OECONF += " --enable-ghostscript --disable-ldap \ + --with-pdftops=hybrid --enable-imagefilters \ + --enable-ghostscript --with-gs-path=${bindir}/gs \ + --with-pdftops-path=${bindir}/gs \ + --with-fontdir=${datadir}/fonts --with-rcdir=no \ + --with-cups-rundir=${localstatedir}/run/cups \ + --localstatedir=${localstatedir}/var \ + --with-rcdir=no \ + --without-php" + +EXTRA_OECONF_class-native += " --with-pdftops=pdftops \ + --disable-avahi --disable-ghostscript \ + --disable-ldap \ + --with-png --without-jpeg --without-tiff" + +BBCLASSEXTEND = "native" + +PACKAGECONFIG[jpeg] = "--with-jpeg,--without-jpeg,jpeg" +PACKAGECONFIG[png] = "--with-png,--without-png,libpng" +PACKAGECONFIG[tiff] = "--with-tiff,--without-tiff,tiff" + +PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'zeroconf', 'avahi', '', d)}" + +PACKAGECONFIG[avahi] = "--enable-avahi,--disable-avahi,avahi" +PACKAGECONFIG[dbus] = "--enable-dbus,--disable-dbus,dbus" + +DIRFILES = "1" + +PACKAGES =+ "\ + ${PN}-gst \ + ${PN}-data \ + " + +FILES_${PN}-gst = "\ + ${libexecdir}/cups/filter/gsto* \ + " + +FILES_${PN}-data = "\ + ${datadir}/cups/data \ + " + +FILES_${PN}-dbg += "\ + ${libexecdir}/cups/backend/.debug \ + ${libexecdir}/cups/driver/.debug \ + ${libexecdir}/cups/filter/.debug \ + " + +FILES_${PN} += "\ + ${libexecdir}/cups \ + ${datadir}/ppd/ \ + ${datadir}/cups/charsets \ + ${datadir}/cups/drv \ + ${datadir}/cups/mime \ + ${datadir}/cups/ppdc \ + ${datadir}/cups/banners \ +" + +do_install_append() { + # remove braille dir + rm -rf ${D}${datadir}/cups/braille + + # remove sysroot path contamination from pkgconfig file + sed -i -e 's:${STAGING_DIR_TARGET}::' ${D}/${libdir}/pkgconfig/libcupsfilters.pc +} + +RDEPENDS_${PN} += "bash" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-printing/cups/cups-filters_1.26.2.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-printing/cups/cups-filters_1.26.2.bb new file mode 100644 index 00000000..d76ef090 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-printing/cups/cups-filters_1.26.2.bb @@ -0,0 +1,4 @@ +include cups-filters.inc + +SRC_URI[md5sum] = "970095596bf2b8cfe91ac91c0b51297a" +SRC_URI[sha256sum] = "0069aef1358522f1901a64749ec753d28a2d6a832758bce58ffcd722b28c0e66" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-printing/qpdf/qpdf_9.1.0.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-printing/qpdf/qpdf_9.1.0.bb new file mode 100644 index 00000000..44a5fea8 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-printing/qpdf/qpdf_9.1.0.bb @@ -0,0 +1,33 @@ +DESCRIPTION = "PDF transformation/inspection software" +HOMEPAGE = "http://qpdf.sourceforge.net" +LICENSE = "Artistic-2.0" +SECTION = "libs" +DEPENDS = "libpcre zlib libjpeg-turbo" + +SRC_URI = "${SOURCEFORGE_MIRROR}/qpdf/qpdf-${PV}.tar.gz" + +LIC_FILES_CHKSUM = "file://Artistic-2.0;md5=7806296b9fae874361e6fb10072b7ee3" +SRC_URI[md5sum] = "090d03ab179c281233f8240ade179d54" +SRC_URI[sha256sum] = "3abbbb7907f2e750336b9c97e67b6e806aca91ab537402ec080656d63940ed79" + +inherit autotools-brokensep gettext + +# disable random file detection for cross-compile +EXTRA_OECONF = "--without-random \ + --disable-static \ + --disable-check-autofiles \ + " + +EXTRA_OEMAKE_class-target = "LIBTOOL=${HOST_SYS}-libtool" + +S="${WORKDIR}/${BPN}-${PV}" + +# avoid Makefile returning error on 'make clean' before configure was run +CLEANBROKEN = "1" + +DEBIAN_NOAUTONAME_libqpdf = "1" + +PACKAGES =+ "libqpdf" +FILES_libqpdf = "${libdir}/libqpdf.so.*" + +RDEPEND_${PN} = "libqpdf" diff --git a/Contrib-Inspur/openbmc/meta-security/recipes-security/keyutils/files/fix_library_install_path.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-security/keyutils/files/fix_library_install_path.patch similarity index 100% rename from Contrib-Inspur/openbmc/meta-security/recipes-security/keyutils/files/fix_library_install_path.patch rename to Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-security/keyutils/files/fix_library_install_path.patch diff --git a/Contrib-Inspur/openbmc/meta-security/recipes-security/keyutils/files/keyutils-fix-error-report-by-adding-default-message.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-security/keyutils/files/keyutils-fix-error-report-by-adding-default-message.patch similarity index 100% rename from Contrib-Inspur/openbmc/meta-security/recipes-security/keyutils/files/keyutils-fix-error-report-by-adding-default-message.patch rename to Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-security/keyutils/files/keyutils-fix-error-report-by-adding-default-message.patch diff --git a/Contrib-Inspur/openbmc/meta-security/recipes-security/keyutils/files/keyutils-test-fix-output-format.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-security/keyutils/files/keyutils-test-fix-output-format.patch similarity index 100% rename from Contrib-Inspur/openbmc/meta-security/recipes-security/keyutils/files/keyutils-test-fix-output-format.patch rename to Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-security/keyutils/files/keyutils-test-fix-output-format.patch diff --git a/Contrib-Inspur/openbmc/meta-security/recipes-security/keyutils/files/run-ptest b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-security/keyutils/files/run-ptest similarity index 100% rename from Contrib-Inspur/openbmc/meta-security/recipes-security/keyutils/files/run-ptest rename to Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-security/keyutils/files/run-ptest diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-security/keyutils/keyutils_1.6.1.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-security/keyutils/keyutils_1.6.1.bb new file mode 100644 index 00000000..0a8c2e48 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-security/keyutils/keyutils_1.6.1.bb @@ -0,0 +1,65 @@ +SUMMARY = "Linux Key Management Utilities" +DESCRIPTION = "\ + Utilities to control the kernel key management facility and to provide \ + a mechanism by which the kernel call back to userspace to get a key \ + instantiated. \ + " +HOMEPAGE = "http://people.redhat.com/dhowells/keyutils" +SECTION = "base" + +LICENSE = "LGPLv2.1+ & GPLv2.0+" + +LIC_FILES_CHKSUM = "file://LICENCE.GPL;md5=5f6e72824f5da505c1f4a7197f004b45 \ + file://LICENCE.LGPL;md5=7d1cacaa3ea752b72ea5e525df54a21f" + +inherit siteinfo autotools-brokensep ptest + +SRC_URI = "http://people.redhat.com/dhowells/keyutils/${BP}.tar.bz2 \ + file://keyutils-test-fix-output-format.patch \ + file://keyutils-fix-error-report-by-adding-default-message.patch \ + file://run-ptest \ + file://fix_library_install_path.patch \ + " + +SRC_URI[md5sum] = "919af7f33576816b423d537f8a8692e8" +SRC_URI[sha256sum] = "c8b15722ae51d95b9ad76cc6d49a4c2cc19b0c60f72f61fb9bf43eea7cbd64ce" + +EXTRA_OEMAKE = "'CFLAGS=${CFLAGS} -Wall' \ + NO_ARLIB=1 \ + BINDIR=${base_bindir} \ + SBINDIR=${base_sbindir} \ + LIBDIR=${libdir} \ + USRLIBDIR=${libdir} \ + INCLUDEDIR=${includedir} \ + BUILDFOR=${SITEINFO_BITS}-bit \ + NO_GLIBC_KEYERR=1 \ + " + +do_install () { + install -d ${D}/${libdir}/pkgconfig + oe_runmake DESTDIR=${D} install +} + +do_install_append_class-nativesdk() { + install -d ${D}${datadir} + src_dir="${D}${target_datadir}" + mv $src_dir/* ${D}${datadir} + par_dir=`dirname $src_dir` + rmdir $src_dir $par_dir + + install -d ${D}${sysconfdir} + mv ${D}/etc/* ${D}${sysconfdir}/ + rmdir ${D}/etc +} + +do_install_ptest () { + cp -r ${S}/tests ${D}${PTEST_PATH}/ + sed -i -e 's/OSDIST=Unknown/OSDIST=${DISTRO}/' ${D}${PTEST_PATH}/tests/prepare.inc.sh +} + + +RDEPENDS_${PN}-ptest += "lsb-release" +RDEPENDS_${PN}-ptest_append_libc-glibc = " glibc-utils" +RDEPENDS_${PN}-ptest_append_libc-musl = " musl-utils" + +BBCLASSEXTEND = "native nativesdk" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-security/nmap/files/0001-Include-time.h-header-to-pass-clang-compilation.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-security/nmap/files/0001-Include-time.h-header-to-pass-clang-compilation.patch new file mode 100644 index 00000000..f93af2d7 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-security/nmap/files/0001-Include-time.h-header-to-pass-clang-compilation.patch @@ -0,0 +1,73 @@ +From a068952a20880fc864e8cb8b49f8a6b143a5ac30 Mon Sep 17 00:00:00 2001 +From: Peiran Hong +Date: Fri, 20 Sep 2019 15:02:45 -0400 +Subject: [PATCH] Include time.h header to pass clang compilation + +--- + nmap_error.cc | 11 +---------- + nping/EchoServer.cc | 1 + + osscan2.cc | 1 + + service_scan.cc | 1 + + 4 files changed, 4 insertions(+), 10 deletions(-) + +diff --git a/nmap_error.cc b/nmap_error.cc +index 588b13c33..254107ff5 100644 +--- a/nmap_error.cc ++++ b/nmap_error.cc +@@ -135,16 +135,7 @@ + #include "xml.h" + + #include +-#if TIME_WITH_SYS_TIME +-# include +-# include +-#else +-# if HAVE_SYS_TIME_H +-# include +-# else +-# include +-# endif +-#endif ++#include + + extern NmapOps o; + +diff --git a/nping/EchoServer.cc b/nping/EchoServer.cc +index ccdcf9c2d..c403aeda5 100644 +--- a/nping/EchoServer.cc ++++ b/nping/EchoServer.cc +@@ -137,6 +137,7 @@ + #include "NpingOps.h" + #include "ProbeMode.h" + #include ++#include + + extern NpingOps o; + extern EchoServer es; +diff --git a/osscan2.cc b/osscan2.cc +index aa31feb12..89673e108 100644 +--- a/osscan2.cc ++++ b/osscan2.cc +@@ -147,6 +147,7 @@ + + #include + #include ++#include + + extern NmapOps o; + #ifdef WIN32 +diff --git a/service_scan.cc b/service_scan.cc +index 57a92ed28..ef277bb1f 100644 +--- a/service_scan.cc ++++ b/service_scan.cc +@@ -145,6 +145,7 @@ + #include "nmap_tty.h" + + #include ++#include + + #if HAVE_OPENSSL + /* OpenSSL 1.0.0 needs _WINSOCKAPI_ to be defined, otherwise it loads +-- +2.21.0 + diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-security/nmap/files/0001-include-time.h-for-time-structure-definition.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-security/nmap/files/0001-include-time.h-for-time-structure-definition.patch deleted file mode 100644 index 561c8c82..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-security/nmap/files/0001-include-time.h-for-time-structure-definition.patch +++ /dev/null @@ -1,78 +0,0 @@ -From c774f2b129fd5acd5647d92c57a2079ae638a62b Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Sun, 20 Jan 2019 23:07:39 -0800 -Subject: [PATCH] include time.h for time structure definition - -Exposed by musl/clang - -Upstream-Status: Pending - -Signed-off-by: Khem Raj ---- - nmap_error.cc | 1 + - nping/EchoServer.cc | 1 + - osscan.cc | 1 + - osscan2.cc | 1 + - service_scan.cc | 1 + - 5 files changed, 5 insertions(+) - -diff --git a/nmap_error.cc b/nmap_error.cc -index 19beafb..ea14e08 100644 ---- a/nmap_error.cc -+++ b/nmap_error.cc -@@ -135,6 +135,7 @@ - #include "xml.h" - - #include -+#include - - extern NmapOps o; - -diff --git a/nping/EchoServer.cc b/nping/EchoServer.cc -index 70f39b0..40cd4d6 100644 ---- a/nping/EchoServer.cc -+++ b/nping/EchoServer.cc -@@ -137,6 +137,7 @@ - #include "NpingOps.h" - #include "ProbeMode.h" - #include -+#include - - extern NpingOps o; - extern EchoServer es; -diff --git a/osscan.cc b/osscan.cc -index f851f60..6ae0c83 100644 ---- a/osscan.cc -+++ b/osscan.cc -@@ -149,6 +149,7 @@ - # include - # endif - #endif -+#include - - #include - #include -diff --git a/osscan2.cc b/osscan2.cc -index e341947..887fbd2 100644 ---- a/osscan2.cc -+++ b/osscan2.cc -@@ -147,6 +147,7 @@ - - #include - #include -+#include - - extern NmapOps o; - #ifdef WIN32 -diff --git a/service_scan.cc b/service_scan.cc -index 9780ae3..e07b940 100644 ---- a/service_scan.cc -+++ b/service_scan.cc -@@ -145,6 +145,7 @@ - #include "nmap_tty.h" - - #include -+#include - - #if HAVE_OPENSSL - /* OpenSSL 1.0.0 needs _WINSOCKAPI_ to be defined, otherwise it loads diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-security/nmap/nmap_7.70.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-security/nmap/nmap_7.70.bb deleted file mode 100644 index b1b150a7..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-security/nmap/nmap_7.70.bb +++ /dev/null @@ -1,52 +0,0 @@ -SUMMARY = "network auditing tool" -DESCRIPTION = "Nmap ("Network Mapper") is a free and open source (license) utility for network discovery and security auditing.\nGui support via appending to IMAGE_FEATURES x11-base in local.conf" -SECTION = "security" -LICENSE = "GPL-2.0" - -LIC_FILES_CHKSUM = "file://COPYING;beginline=7;endline=12;md5=1489288f46af415fadc4e8b6345ab9f4" - -SRC_URI = "http://nmap.org/dist/${BP}.tar.bz2 \ - file://nmap-redefine-the-python-library-dir.patch \ - file://nmap-replace-shtool-mkdir-with-coreutils-mkdir-command.patch \ - file://0001-include-time.h-for-time-structure-definition.patch \ - file://0002-Fix-building-with-libc.patch \ - " - -SRC_URI[md5sum] = "84eb6fbe788e0d4918c2b1e39421bf79" -SRC_URI[sha256sum] = "847b068955f792f4cc247593aca6dc3dc4aae12976169873247488de147a6e18" - -inherit autotools-brokensep pkgconfig pythonnative - -PACKAGECONFIG ?= "ncat nping ndiff pcap" - -PACKAGECONFIG[pcap] = "--with-pcap=linux, --without-pcap, libpcap, libpcap" -PACKAGECONFIG[pcre] = "--with-libpcre=${STAGING_LIBDIR}/.., --with-libpcre=included, libpcre" -PACKAGECONFIG[ssl] = "--with-openssl=${STAGING_LIBDIR}/.., --without-openssl, openssl, openssl" -PACKAGECONFIG[ssh2] = "--with-openssh2=${STAGING_LIBDIR}/.., --without-openssh2, libssh2, libssh2" -PACKAGECONFIG[libz] = "--with-libz=${STAGING_LIBDIR}/.., --without-libz, zlib, zlib" - -#disable/enable packages -PACKAGECONFIG[nping] = ",--without-nping," -PACKAGECONFIG[ncat] = ",--without-ncat," -PACKAGECONFIG[ndiff] = ",--without-ndiff,python" -PACKAGECONFIG[update] = ",--without-nmap-update," - -EXTRA_OECONF = "--with-libdnet=included --with-liblinear=included --without-subversion --with-liblua=included" - -# zenmap needs python-pygtk which has been removed -# it also only works with python2 -# disable for now until py3 is supported -EXTRA_OECONF += "--without-zenmap" - -export PYTHON_SITEPACKAGES_DIR - -do_configure() { - autoconf - install -m 0755 ${STAGING_DATADIR_NATIVE}/gnu-config/config.guess ${S} - install -m 0755 ${STAGING_DATADIR_NATIVE}/gnu-config/config.sub ${S} - oe_runconf -} - -FILES_${PN} += "${PYTHON_SITEPACKAGES_DIR} ${datadir}/ncat" - -RDEPENDS_${PN} = "python" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-security/nmap/nmap_7.80.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-security/nmap/nmap_7.80.bb new file mode 100644 index 00000000..f24194da --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-security/nmap/nmap_7.80.bb @@ -0,0 +1,52 @@ +SUMMARY = "network auditing tool" +DESCRIPTION = "Nmap ("Network Mapper") is a free and open source (license) utility for network discovery and security auditing.\nGui support via appending to IMAGE_FEATURES x11-base in local.conf" +SECTION = "security" +LICENSE = "GPL-2.0" + +LIC_FILES_CHKSUM = "file://COPYING;beginline=7;endline=12;md5=66938a7e5b4c118eda78271de14874c2" + +SRC_URI = "http://nmap.org/dist/${BP}.tar.bz2 \ + file://nmap-redefine-the-python-library-dir.patch \ + file://nmap-replace-shtool-mkdir-with-coreutils-mkdir-command.patch \ + file://0001-Include-time.h-header-to-pass-clang-compilation.patch \ + file://0002-Fix-building-with-libc.patch \ + " + +SRC_URI[md5sum] = "d37b75b06d1d40f27b76d60db420a1f5" +SRC_URI[sha256sum] = "fcfa5a0e42099e12e4bf7a68ebe6fde05553383a682e816a7ec9256ab4773faa" + +inherit autotools-brokensep pkgconfig pythonnative + +PACKAGECONFIG ?= "ncat nping ndiff pcap" + +PACKAGECONFIG[pcap] = "--with-pcap=linux, --without-pcap, libpcap, libpcap" +PACKAGECONFIG[pcre] = "--with-libpcre=${STAGING_LIBDIR}/.., --with-libpcre=included, libpcre" +PACKAGECONFIG[ssl] = "--with-openssl=${STAGING_LIBDIR}/.., --without-openssl, openssl, openssl" +PACKAGECONFIG[ssh2] = "--with-openssh2=${STAGING_LIBDIR}/.., --without-openssh2, libssh2, libssh2" +PACKAGECONFIG[libz] = "--with-libz=${STAGING_LIBDIR}/.., --without-libz, zlib, zlib" + +#disable/enable packages +PACKAGECONFIG[nping] = ",--without-nping," +PACKAGECONFIG[ncat] = ",--without-ncat," +PACKAGECONFIG[ndiff] = ",--without-ndiff,python" +PACKAGECONFIG[update] = ",--without-nmap-update," + +EXTRA_OECONF = "--with-libdnet=included --with-liblinear=included --without-subversion --with-liblua=included" + +# zenmap needs python-pygtk which has been removed +# it also only works with python2 +# disable for now until py3 is supported +EXTRA_OECONF += "--without-zenmap" + +export PYTHON_SITEPACKAGES_DIR + +do_configure() { + autoconf + install -m 0755 ${STAGING_DATADIR_NATIVE}/gnu-config/config.guess ${S} + install -m 0755 ${STAGING_DATADIR_NATIVE}/gnu-config/config.sub ${S} + oe_runconf +} + +FILES_${PN} += "${PYTHON_SITEPACKAGES_DIR} ${datadir}/ncat" + +RDEPENDS_${PN} = "python" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-security/passwdqc/passwdqc_1.3.1.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-security/passwdqc/passwdqc_1.3.1.bb index 8fc0b359..504ac153 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-security/passwdqc/passwdqc_1.3.1.bb +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-security/passwdqc/passwdqc_1.3.1.bb @@ -21,10 +21,10 @@ SECTION = "System Environment/Base" DEPENDS += "libpam" -inherit distro_features_check +inherit features_check REQUIRED_DISTRO_FEATURES = "pam" -LICENSE = "BSD" +LICENSE = "BSD-1-Clause" LIC_FILES_CHKSUM = "file://LICENSE;md5=1b4af6f3d4ee079a38107366e93b334d" SRC_URI = "http://www.openwall.com/${BPN}/${BP}.tar.gz \ diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-security/softhsm/softhsm_git.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-security/softhsm/softhsm_git.bb new file mode 100644 index 00000000..3236cb9a --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-security/softhsm/softhsm_git.bb @@ -0,0 +1,18 @@ +SUMMARY = "PKCS#11 HSM/Token Emulator" +HOMEPAGE = "https://www.opendnssec.org/softhsm/" +LICENSE = "BSD-2-Clause & ISC" +LIC_FILES_CHKSUM = "file://LICENSE;md5=ef3f77a3507c3d91e75b9f2bdaee4210" +DEPENDS = "openssl" +PV = "2.5.0" + +SRC_URI = "git://github.com/opendnssec/SoftHSMv2.git;branch=master" +SRCREV = "369df0383d101bc8952692c2a368ac8bc887d1b4" + +S = "${WORKDIR}/git" + +inherit autotools pkgconfig + +# EdDSA requires OpenSSL >= 1.1.1 +EXTRA_OECONF = "--enable-eddsa --disable-gost" + +BBCLASSEXTEND = "native" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-shells/mksh/mksh_56.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-shells/mksh/mksh_56.bb deleted file mode 100644 index e4eb5428..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-shells/mksh/mksh_56.bb +++ /dev/null @@ -1,36 +0,0 @@ -DESCRIPTION = "The MirBSD Korn Shell - an enhanced version of the public domain ksh" -HOMEPAGE = "http://www.mirbsd.org/mksh.htm" -SECTION = "base/shell" - -LICENSE = "${@bb.utils.contains("TCLIBC", "glibc", "MirOS & ISC", "MirOS", d)}" -LIC_FILES_CHKSUM = "file://main.c;beginline=6;endline=25;md5=7204fec4d12912f2a13fe8745bc356f9 \ - file://strlcpy.c;beginline=1;endline=17;md5=d953f28f0c43ee29e238ec9bc15df2a0 \ - " - -SRC_URI = "http://www.mirbsd.org/MirOS/dist/mir/mksh/mksh-R56c.tgz" - -SRC_URI[md5sum] = "4799a9ac6d55871d79ba66713d928663" -SRC_URI[sha256sum] = "dd86ebc421215a7b44095dc13b056921ba81e61b9f6f4cdab08ca135d02afb77" - -inherit update-alternatives - -S = "${WORKDIR}/${BPN}" - -ALTERNATIVE_${PN} = "sh" -ALTERNATIVE_LINK_NAME[sh] = "${base_bindir}/sh" -ALTERNATIVE_TARGET[sh] = "${base_bindir}/${BPN}" -ALTERNATIVE_PRIORITY = "100" - -do_compile() { - sh ${S}/Build.sh -r -} - -do_install() { - install -d ${D}${base_bindir} - install -m 0755 ${S}/mksh ${D}${base_bindir}/mksh - - install -d ${D}${sysconfdir}/skel - install -m 0644 ${S}/dot.mkshrc ${D}${sysconfdir}/skel/.mkshrc -} - -RPROVIDES_${PN} += "${@bb.utils.contains('DISTRO_FEATURES', 'usrmerge', '/bin/sh', '', d)}" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-shells/mksh/mksh_57.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-shells/mksh/mksh_57.bb new file mode 100644 index 00000000..7e9c18ed --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-shells/mksh/mksh_57.bb @@ -0,0 +1,36 @@ +DESCRIPTION = "The MirBSD Korn Shell - an enhanced version of the public domain ksh" +HOMEPAGE = "http://www.mirbsd.org/mksh.htm" +SECTION = "base/shell" + +LICENSE = "${@bb.utils.contains("TCLIBC", "glibc", "MirOS & ISC", "MirOS", d)}" +LIC_FILES_CHKSUM = "file://main.c;beginline=6;endline=26;md5=0651e575e39d1a3e884562e25d491fc7 \ + file://strlcpy.c;beginline=1;endline=17;md5=d953f28f0c43ee29e238ec9bc15df2a0 \ + " + +SRC_URI = "http://www.mirbsd.org/MirOS/dist/mir/mksh/mksh-R57.tgz" + +SRC_URI[md5sum] = "4d2686535252ea6a57bdec531498239a" +SRC_URI[sha256sum] = "3d101154182d52ae54ef26e1360c95bc89c929d28859d378cc1c84f3439dbe75" + +inherit update-alternatives + +S = "${WORKDIR}/${BPN}" + +ALTERNATIVE_${PN} = "sh" +ALTERNATIVE_LINK_NAME[sh] = "${base_bindir}/sh" +ALTERNATIVE_TARGET[sh] = "${base_bindir}/${BPN}" +ALTERNATIVE_PRIORITY = "100" + +do_compile() { + sh ${S}/Build.sh -r +} + +do_install() { + install -d ${D}${base_bindir} + install -m 0755 ${S}/mksh ${D}${base_bindir}/mksh + + install -d ${D}${sysconfdir}/skel + install -m 0644 ${S}/dot.mkshrc ${D}${sysconfdir}/skel/.mkshrc +} + +RPROVIDES_${PN} += "${@bb.utils.contains('DISTRO_FEATURES', 'usrmerge', '/bin/sh', '', d)}" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-shells/tcsh/tcsh_6.20.00.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-shells/tcsh/tcsh_6.20.00.bb deleted file mode 100644 index c171963c..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-shells/tcsh/tcsh_6.20.00.bb +++ /dev/null @@ -1,44 +0,0 @@ -DESCRIPTION = "TENEX C Shell, an enhanced version of Berkeley csh \ - The TENEX C Shell is an enhanced version of the Berkeley Unix C shell. \ - It includes all features of 4.4BSD C shell, plus a command-line editor, \ - programmable word completion, spelling correction and more." - -HOMEPAGE = "http://www.tcsh.org/" -LICENSE = "BSD-3-Clause" -LIC_FILES_CHKSUM = "file://Copyright;md5=575cf2715c3bf894e1f79aec1d4eaaf5" -SECTION = "base" -DEPENDS = "ncurses virtual/crypt gettext-native" -SRC_URI = " \ - http://ftp.funet.fi/pub/mirrors/ftp.astron.com/pub/tcsh/${BP}.tar.gz \ - file://0001-Enable-system-malloc-on-all-linux.patch \ - file://0002-Add-debian-csh-scripts.patch \ -" -SRC_URI[md5sum] = "59d40ef40a68e790d95e182069431834" -SRC_URI[sha256sum] = "b89de7064ab54dac454a266cfe5d8bf66940cb5ed048d0c30674ea62e7ecef9d" - -EXTRA_OEMAKE += "CC_FOR_GETHOST='${BUILD_CC}'" -inherit autotools - -do_compile_prepend() { - oe_runmake CC_FOR_GETHOST='${BUILD_CC}' CFLAGS='${BUILD_CFLAGS}' gethost -} - -do_install_append () { - oe_runmake install.man DESTDIR=${D} - - install -d ${D}${base_bindir} - ln -s /usr/bin/tcsh ${D}${base_bindir}/tcsh - ln -s /usr/bin/tcsh ${D}${base_bindir}/csh - install -d ${D}${sysconfdir}/csh/login.d - install -m 0644 ${S}/csh.cshrc ${S}/csh.login ${S}/csh.logout ${S}/complete.tcsh ${D}${sysconfdir} - install -D -m 0644 ${S}/csh-mode.el ${D}${datadir}/emacs/site-lisp/csh-mode.el -} - -FILES_${PN} += "${datadir}/emacs/site-lisp/csh-mode.el" - - -pkg_postinst_${PN} () { -#!/bin/sh -e -echo /usr/bin/tcsh >> $D/etc/shells -echo /usr/bin/csh >> $D/etc/shells -} diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-shells/tcsh/tcsh_6.21.00.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-shells/tcsh/tcsh_6.21.00.bb new file mode 100644 index 00000000..278ab045 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-shells/tcsh/tcsh_6.21.00.bb @@ -0,0 +1,44 @@ +DESCRIPTION = "TENEX C Shell, an enhanced version of Berkeley csh \ + The TENEX C Shell is an enhanced version of the Berkeley Unix C shell. \ + It includes all features of 4.4BSD C shell, plus a command-line editor, \ + programmable word completion, spelling correction and more." + +HOMEPAGE = "http://www.tcsh.org/" +LICENSE = "BSD-3-Clause" +LIC_FILES_CHKSUM = "file://Copyright;md5=575cf2715c3bf894e1f79aec1d4eaaf5" +SECTION = "base" +DEPENDS = "ncurses virtual/crypt gettext-native" +SRC_URI = " \ + http://ftp.funet.fi/pub/mirrors/ftp.astron.com/pub/tcsh/${BP}.tar.gz \ + file://0001-Enable-system-malloc-on-all-linux.patch \ + file://0002-Add-debian-csh-scripts.patch \ +" +SRC_URI[md5sum] = "5bd5f11515cc5cca927777fa92f9d4b9" +SRC_URI[sha256sum] = "c438325448371f59b12a4c93bfd3f6982e6f79f8c5aef4bc83aac8f62766e972" + +EXTRA_OEMAKE += "CC_FOR_GETHOST='${BUILD_CC}'" +inherit autotools + +do_compile_prepend() { + oe_runmake CC_FOR_GETHOST='${BUILD_CC}' CFLAGS='${BUILD_CFLAGS}' gethost +} + +do_install_append () { + oe_runmake install.man DESTDIR=${D} + + install -d ${D}${base_bindir} + ln -s /usr/bin/tcsh ${D}${base_bindir}/tcsh + ln -s /usr/bin/tcsh ${D}${base_bindir}/csh + install -d ${D}${sysconfdir}/csh/login.d + install -m 0644 ${S}/csh.cshrc ${S}/csh.login ${S}/csh.logout ${S}/complete.tcsh ${D}${sysconfdir} + install -D -m 0644 ${S}/csh-mode.el ${D}${datadir}/emacs/site-lisp/csh-mode.el +} + +FILES_${PN} += "${datadir}/emacs/site-lisp/csh-mode.el" + + +pkg_postinst_${PN} () { +#!/bin/sh -e +echo /usr/bin/tcsh >> $D/etc/shells +echo /usr/bin/csh >> $D/etc/shells +} diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/avro/avro-c/0001-Allow-avro-C-to-be-built-on-musl-based-systems.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/avro/avro-c/0001-Allow-avro-C-to-be-built-on-musl-based-systems.patch new file mode 100644 index 00000000..8964d6b7 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/avro/avro-c/0001-Allow-avro-C-to-be-built-on-musl-based-systems.patch @@ -0,0 +1,42 @@ +From 9b39a985bcd6cd34f0820f3680f145d46c0e56bd Mon Sep 17 00:00:00 2001 +From: Titouan Christophe +Date: Sun, 8 Dec 2019 01:55:59 +0100 +Subject: [PATCH] Allow avro C to be built on musl based systems. +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +The type `ssize_t` is defined in sys/types.h, and nowhere else +in the musl standard C library, so it should be included for the +compilation to succeed. + +This fixes several errors like: + + In file included from src/generic.c:29:0: + src/generic.c: In function ‘avro_generic_value_new’: + src/avro_generic_internal.h:63:39: + error: ‘ssize_t’ undeclared (first use in this function); + did you mean ‘size_t’? + +Upstream-Status: Backport +Signed-off-by: Titouan Christophe +--- + lang/c/src/avro_generic_internal.h | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/lang/c/src/avro_generic_internal.h b/lang/c/src/avro_generic_internal.h +index 709403c03..9843ed652 100644 +--- a/lang/c/src/avro_generic_internal.h ++++ b/lang/c/src/avro_generic_internal.h +@@ -24,6 +24,8 @@ extern "C" { + #define CLOSE_EXTERN + #endif + ++#include ++ + #include "avro/generic.h" + #include "avro/schema.h" + #include "avro/value.h" +-- +2.24.1 + diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/avro/avro-c/0001-avro-c-Fix-build-with-clang-compiler.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/avro/avro-c/0001-avro-c-Fix-build-with-clang-compiler.patch deleted file mode 100644 index 01235d8e..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/avro/avro-c/0001-avro-c-Fix-build-with-clang-compiler.patch +++ /dev/null @@ -1,37 +0,0 @@ -From 518bb8ccfb3f3fc143fbd571782f3e40573d01b5 Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Mon, 10 Apr 2017 09:15:04 -0700 -Subject: [PATCH] avro-c: Fix build with clang compiler - -Clang advertizes itself to be compatible with gcc 4.2.1 -while that was true several years ago, it now supports -a lot more newer features, the test to just check gcc -version should be supplanted with clang check as well -so atomic support in clang can be asserted as well - -Fixes - -lang/c/src/avro/refcount.h:301:2: error: "No atomic implementation!" - -Signed-off-by: Khem Raj ---- - lang/c/src/avro/refcount.h | 3 ++- - 1 file changed, 2 insertions(+), 1 deletion(-) - -diff --git a/lang/c/src/avro/refcount.h b/lang/c/src/avro/refcount.h -index 69afa4fc..d76ba057 100644 ---- a/lang/c/src/avro/refcount.h -+++ b/lang/c/src/avro/refcount.h -@@ -118,7 +118,8 @@ avro_refcount_dec(volatile int *refcount) - * GCC intrinsics - */ - --#elif (__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__) > 40500 -+#elif (__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__) > 40500 \ -+|| defined(__clang__) - - static inline void - avro_refcount_set(volatile int *refcount, int value) --- -2.12.2 - diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/avro/avro-c/0001-cmake-Use-GNUInstallDirs-instead-of-hard-coded-paths.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/avro/avro-c/0001-cmake-Use-GNUInstallDirs-instead-of-hard-coded-paths.patch new file mode 100644 index 00000000..6496b92d --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/avro/avro-c/0001-cmake-Use-GNUInstallDirs-instead-of-hard-coded-paths.patch @@ -0,0 +1,70 @@ +From f24f863f3a8ca86f44123a58613f62c3b511da1e Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Thu, 19 Dec 2019 18:23:41 -0800 +Subject: [PATCH] cmake: Use GNUInstallDirs instead of hard-coded paths + +This ensures that it can be built on platforms where libdir is not +/usr/lib e.g. ppc64 + +Upstream-Status: Submitted [https://github.com/apache/avro/pull/749] +Signed-off-by: Khem Raj +--- + lang/c/CMakeLists.txt | 2 +- + lang/c/src/CMakeLists.txt | 16 +++++++++------- + 2 files changed, 10 insertions(+), 8 deletions(-) + +diff --git a/lang/c/CMakeLists.txt b/lang/c/CMakeLists.txt +index 11cbf018e..6c8d7aaf3 100644 +--- a/lang/c/CMakeLists.txt ++++ b/lang/c/CMakeLists.txt +@@ -16,7 +16,7 @@ + # specific language governing permissions and limitations + # under the License. + # +-cmake_minimum_required(VERSION 2.4) ++cmake_minimum_required(VERSION 3.1) + project(AvroC) + enable_testing() + +diff --git a/lang/c/src/CMakeLists.txt b/lang/c/src/CMakeLists.txt +index 6f5659750..c1761c8de 100644 +--- a/lang/c/src/CMakeLists.txt ++++ b/lang/c/src/CMakeLists.txt +@@ -106,17 +106,19 @@ install(DIRECTORY + DESTINATION include + FILES_MATCHING PATTERN "*.h") + ++include(GNUInstallDirs) ++ + if (WIN32) + install(TARGETS avro-static +- RUNTIME DESTINATION bin +- LIBRARY DESTINATION lib +- ARCHIVE DESTINATION lib ++ RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} ++ LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ++ ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} + ) + else(WIN32) + install(TARGETS avro-static avro-shared +- RUNTIME DESTINATION bin +- LIBRARY DESTINATION lib +- ARCHIVE DESTINATION lib ++ RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} ++ LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ++ ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} + ) + endif(WIN32) + +@@ -126,7 +128,7 @@ set(prefix ${CMAKE_INSTALL_PREFIX}) + set(VERSION ${AVRO_VERSION}) + configure_file(avro-c.pc.in avro-c.pc) + install(FILES ${CMAKE_CURRENT_BINARY_DIR}/avro-c.pc +- DESTINATION lib/pkgconfig) ++ DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig) + + add_executable(avrocat avrocat.c) + target_link_libraries(avrocat avro-static) +-- +2.24.1 + diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/avro/avro-c_1.8.1.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/avro/avro-c_1.8.1.bb deleted file mode 100644 index 276fe2b5..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/avro/avro-c_1.8.1.bb +++ /dev/null @@ -1,20 +0,0 @@ -SUMMARY = "Apache Avro data serialization system." -HOMEPAGE = "http://apr.apache.org/" -SECTION = "libs" - -LICENSE = "Apache-2.0" -LIC_FILES_CHKSUM = "file://LICENSE;md5=73bdf70f268f0b3b9c5a83dd7a6f3324" - -DEPENDS = "jansson zlib xz" -PV .= "+git${SRCPV}" - -SRCREV = "4b3677c32b879e0e7f717eb95f9135ac654da760" -SRC_URI = "git://github.com/apache/avro \ - file://0001-avro-c-Fix-build-with-clang-compiler.patch;patchdir=../../ \ -" - -S = "${WORKDIR}/git/lang/c" - -LDFLAGS_append_libc-uclibc = " -lm" - -inherit cmake diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/avro/avro-c_1.9.1.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/avro/avro-c_1.9.1.bb new file mode 100644 index 00000000..8954c980 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/avro/avro-c_1.9.1.bb @@ -0,0 +1,19 @@ +SUMMARY = "Apache Avro data serialization system." +HOMEPAGE = "http://apr.apache.org/" +SECTION = "libs" + +LICENSE = "Apache-2.0" +LIC_FILES_CHKSUM = "file://LICENSE;md5=6d502b41f76179fc84e536236f359cae" + +DEPENDS = "jansson zlib xz" + +BRANCH = "branch-1.9" +SRCREV = "89218262cde62e98fcb3778b86cd3f03056c54f3" +SRC_URI = "git://github.com/apache/avro;branch=${BRANCH} \ + file://0001-Allow-avro-C-to-be-built-on-musl-based-systems.patch;patchdir=../../ \ + file://0001-cmake-Use-GNUInstallDirs-instead-of-hard-coded-paths.patch;patchdir=../../ \ + " + +S = "${WORKDIR}/git/lang/c" + +inherit cmake diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/bdwgc/bdwgc_8.0.4.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/bdwgc/bdwgc_8.0.4.bb index 4c1393c9..f4ea1737 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/bdwgc/bdwgc_8.0.4.bb +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/bdwgc/bdwgc_8.0.4.bb @@ -21,11 +21,10 @@ SECTION = "devel" LICENSE = "MIT" LIC_FILES_CHKSUM = "file://README.QUICK;md5=81b447d779e278628c843aef92f088fa" -SRCREV = "d3dede3ce4462cd82a15f161af797ca51654546a" -SRC_URI = "git://github.com/ivmai/bdwgc.git;branch=release-8_0 \ - " +DEPENDS = "libatomic-ops" -FILES_${PN}-doc = "${datadir}" +SRCREV = "d3dede3ce4462cd82a15f161af797ca51654546a" +SRC_URI = "git://github.com/ivmai/bdwgc.git;branch=release-8_0" S = "${WORKDIR}/git" @@ -33,8 +32,10 @@ ARM_INSTRUCTION_SET = "arm" inherit autotools pkgconfig -# by default use external libatomic-ops -PACKAGECONFIG ??= "libatomic-ops" -PACKAGECONFIG[libatomic-ops] = "--with-libatomic-ops=yes,--with-libatomic-ops=no,libatomic-ops" +EXTRA_OECONF += "--enable-cpluscplus" + +CFLAGS_append_libc-musl = " -D_GNU_SOURCE -DNO_GETCONTEXT -DSEARCH_FOR_DATA_START -DUSE_MMAP -DHAVE_DL_ITERATE_PHDR" + +FILES_${PN}-doc = "${datadir}" BBCLASSEXTEND = "native nativesdk" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/canonical-multitouch/geis_2.2.17.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/canonical-multitouch/geis_2.2.17.bb index 30d41a16..9362a5c1 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/canonical-multitouch/geis_2.2.17.bb +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/canonical-multitouch/geis_2.2.17.bb @@ -13,7 +13,7 @@ LIC_FILES_CHKSUM = " \ file://COPYING.GPL;md5=f27defe1e96c2e1ecd4e0c9be8967949 \ " -inherit autotools pkgconfig python3native lib_package distro_features_check +inherit autotools pkgconfig python3native lib_package features_check REQUIRED_DISTRO_FEATURES = "x11" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/ccid/ccid/0001-Add-build-rule-for-README.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/ccid/ccid/0001-Add-build-rule-for-README.patch new file mode 100644 index 00000000..586ff18c --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/ccid/ccid/0001-Add-build-rule-for-README.patch @@ -0,0 +1,22 @@ +Subject: [PATCH] Add build rule for README. + +fix do_configure error: +Makefile.am: required file `./README' not found + +Signed-off-by: Zheng Ruoqin +--- + Makefile.am | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/Makefile.am b/Makefile.am +index 49574a3..a5a7c2a 100644 +--- a/Makefile.am ++++ b/Makefile.am +@@ -26,3 +26,4 @@ libtool: $(LIBTOOL_DEPS) + ChangeLog: + git log --stat --decorate=short > $@ + ++README: README.md +-- +2.7.4 + diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/ccid/ccid_1.4.30.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/ccid/ccid_1.4.30.bb deleted file mode 100644 index 95a41d2f..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/ccid/ccid_1.4.30.bb +++ /dev/null @@ -1,19 +0,0 @@ -SUMMARY = "Generic USB CCID smart card reader driver" -HOMEPAGE = "https://ccid.apdu.fr/" -LICENSE = "LGPLv2.1+" -LIC_FILES_CHKSUM = "file://COPYING;md5=2d5025d4aa3495befef8f17206a5b0a1" - -DEPENDS = "virtual/libusb0 pcsc-lite" -RDEPENDS_${PN} = "pcsc-lite" - -SRC_URI = "https://ccid.apdu.fr/files/ccid-${PV}.tar.bz2 \ - file://no-dep-on-libfl.patch \ -" - -SRC_URI[md5sum] = "817abceef715e02cb47617621fe192e0" -SRC_URI[sha256sum] = "ac17087be08880a0cdf99a8a2799a4ef004dc6ffa08b4d9b0ad995f39a53ff7c" - -inherit autotools pkgconfig - -FILES_${PN} += "${libdir}/pcsc/" -FILES_${PN}-dbg += "${libdir}/pcsc/drivers/*/*/*/.debug" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/ccid/ccid_1.4.31.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/ccid/ccid_1.4.31.bb new file mode 100644 index 00000000..de07bfd2 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/ccid/ccid_1.4.31.bb @@ -0,0 +1,20 @@ +SUMMARY = "Generic USB CCID smart card reader driver" +HOMEPAGE = "https://ccid.apdu.fr/" +LICENSE = "LGPLv2.1+" +LIC_FILES_CHKSUM = "file://COPYING;md5=2d5025d4aa3495befef8f17206a5b0a1" + +DEPENDS = "virtual/libusb0 pcsc-lite" +RDEPENDS_${PN} = "pcsc-lite" + +SRC_URI = "https://ccid.apdu.fr/files/ccid-${PV}.tar.bz2 \ + file://no-dep-on-libfl.patch \ + file://0001-Add-build-rule-for-README.patch \ +" + +SRC_URI[md5sum] = "e4690f3362f95adb2332fd47a2b08212" +SRC_URI[sha256sum] = "6b48d7b6e4390e038d25630f8664fe81618ab00f232d6efbe0e3cc6df28ce8f7" + +inherit autotools pkgconfig + +FILES_${PN} += "${libdir}/pcsc/" +FILES_${PN}-dbg += "${libdir}/pcsc/drivers/*/*/*/.debug" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/ceres-solver/ceres-solver_1.14.0.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/ceres-solver/ceres-solver_1.14.0.bb new file mode 100644 index 00000000..ac463038 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/ceres-solver/ceres-solver_1.14.0.bb @@ -0,0 +1,34 @@ +DESCRIPTION = "Ceres Solver is an open source C++ library for modeling and solving large, complicated optimization problems." +AUTHOR = "Sameer Agarwal and Keir Mierle and Others" +HOMEPAGE = "http://ceres-solver.org/" +LICENSE = "BSD-3-Clause" +LIC_FILES_CHKSUM = "file://LICENSE;md5=35e00f0c4c96a0820a03e0b31e6416be" + +DEPENDS = "libeigen glog" + +SRC_URI = "git://github.com/ceres-solver/ceres-solver.git" +SRCREV = "facb199f3eda902360f9e1d5271372b7e54febe1" + +S = "${WORKDIR}/git" + +inherit cmake + +# We don't want path to eigen3 in ceres-solver RSS to be +# used by components which use CeresConfig.cmake from their +# own RSS +# ceres-solver/1.14-r0/packages-split/ceres-solver-dev/usr/lib/cmake/Ceres/CeresConfig.cmake: set(Eigen3_DIR ceres-solver/1.14-r0/recipe-sysroot/usr/share/eigen3/cmake) +# ceres-solver/1.14-r0/packages-split/ceres-solver-dev/usr/lib/cmake/Ceres/CeresConfig.cmake: list(APPEND EIGEN_INCLUDE_DIR_HINTS ceres-solver/1.14-r0/recipe-sysroot/usr/include/eigen3) +# ceres-solver/1.14-r0/packages-split/ceres-solver-dev/usr/lib/cmake/Ceres/CeresConfig.cmake: set(glog_DIR ceres-solver/1.14-r0/recipe-sysroot/usr/lib/cmake/glog) +SSTATE_SCAN_FILES += "*.cmake" + +PACKAGECONFIG ??= "" + +# suitesparse* recipes will be in meta-ros layer +PACKAGECONFIG[suitesparse] = "-DSUITESPARSE=ON,-DSUITESPARSE=OFF,suitesparse-config suitesparse-amd suitesparse-camd suitesparse-colamd suitesparse-ccolamd suitesparse-cholmod suitesparse-metis suitesparse-spqr" +PACKAGECONFIG[cxsparse] = "-DCXSPARSE=ON,-DCXSPARSE=OFF,suitesparse-cxsparse" +PACKAGECONFIG[lapack] = "-DLAPACK=ON,-DLAPACK=OFF,lapack" + +# Only a static library and headers are created +RDEPENDS_${PN}-dev = "" +RRECOMMENDS_${PN}-dev = "${PN}-staticdev" +RRECOMMENDS_${PN}-dbg = "${PN}-dev (= ${EXTENDPKGV})" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/ceres-solver/ceres-solver_1.14.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/ceres-solver/ceres-solver_1.14.bb deleted file mode 100644 index a62e5ef2..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/ceres-solver/ceres-solver_1.14.bb +++ /dev/null @@ -1,19 +0,0 @@ -DESCRIPTION = "Ceres Solver is an open source C++ library for modeling and solving large, complicated optimization problems." -AUTHOR = "Sameer Agarwal and Keir Mierle and Others" -HOMEPAGE = "http://ceres-solver.org/" -LICENSE = "BSD-3-Clause" -LIC_FILES_CHKSUM = "file://LICENSE;md5=35e00f0c4c96a0820a03e0b31e6416be" - -DEPENDS = "libeigen glog" - -SRC_URI = "git://github.com/ceres-solver/ceres-solver.git" -SRCREV = "facb199f3eda902360f9e1d5271372b7e54febe1" - -S = "${WORKDIR}/git" - -inherit cmake - -# Only a static library and headers are created -RDEPENDS_${PN}-dev = "" -RRECOMMENDS_${PN}-dev = "${PN}-staticdev" -RRECOMMENDS_${PN}-dbg = "${PN}-dev (= ${EXTENDPKGV})" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/cli11/cli11_1.7.1.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/cli11/cli11_1.7.1.bb deleted file mode 100644 index 1ed97a27..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/cli11/cli11_1.7.1.bb +++ /dev/null @@ -1,19 +0,0 @@ -SUMMARY = "C++11 command line parser" -DESCRIPTION = "A command line parser for C++11 and beyond that provides a rich feature set with a simple and intuitive interface." -HOMEPAGE = "https://github.com/CLIUtils/CLI11" -LICENSE = "BSD-3-Clause" -LIC_FILES_CHKSUM = "file://LICENSE;md5=8489f3831fc7b75264c1d5e346251a74" -SRCREV = "49ac989a9527ee9bb496de9ded7b4872c2e0e5ca" -PV .= "+git${SRCPV}" - -SRC_URI += "gitsm://github.com/CLIUtils/CLI11 \ - file://0001-Add-CLANG_TIDY-check.patch \ - " - -S = "${WORKDIR}/git" - -inherit cmake -inherit ptest - -EXTRA_OECMAKE += "-DCLANG_TIDY=OFF" -DEPENDS += "boost" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/cli11/cli11_1.8.0.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/cli11/cli11_1.8.0.bb new file mode 100644 index 00000000..dd129cbe --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/cli11/cli11_1.8.0.bb @@ -0,0 +1,23 @@ +SUMMARY = "C++11 command line parser" +DESCRIPTION = "A command line parser for C++11 and beyond that provides a rich feature set with a simple and intuitive interface." +HOMEPAGE = "https://github.com/CLIUtils/CLI11" +LICENSE = "BSD-3-Clause" +LIC_FILES_CHKSUM = "file://LICENSE;md5=b73927b18d5c6cd8d2ed28a6ad539733" +SRCREV = "13becaddb657eacd090537719a669d66d393b8b2" +PV .= "+git${SRCPV}" + +SRC_URI += "gitsm://github.com/CLIUtils/CLI11 \ + file://0001-Add-CLANG_TIDY-check.patch \ + file://0001-Use-GNUInstallDirs-instead-of-hard-coded-path.patch \ + " + +S = "${WORKDIR}/git" + +inherit cmake +inherit ptest + +EXTRA_OECMAKE += "-DCLANG_TIDY=OFF" +DEPENDS += "boost" + +# cli11 is a header only C++ library, so the main package will be empty. +RDEPENDS_${PN}-dev = "" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/cli11/files/0001-Add-CLANG_TIDY-check.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/cli11/files/0001-Add-CLANG_TIDY-check.patch index bef3548a..02b3c9bd 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/cli11/files/0001-Add-CLANG_TIDY-check.patch +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/cli11/files/0001-Add-CLANG_TIDY-check.patch @@ -1,20 +1,21 @@ -From ef6310bc726a53ff6b45071633fa7b37224cae96 Mon Sep 17 00:00:00 2001 +From 902b251fd8d6408ee6623e7a92692948cf90187d Mon Sep 17 00:00:00 2001 From: Khem Raj Date: Tue, 12 Feb 2019 13:22:21 -0800 Subject: [PATCH] Add CLANG_TIDY check Upstream-Status: Pending Signed-off-by: Khem Raj + --- CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt -index 79404b8..f68217d 100644 +index 7073a0b..2dd2c02 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt -@@ -39,7 +39,7 @@ if(CMAKE_PROJECT_NAME STREQUAL PROJECT_NAME) - add_definitions(-Wall -Wextra -pedantic) +@@ -60,7 +60,7 @@ if(CMAKE_PROJECT_NAME STREQUAL PROJECT_NAME) + endif() endif() - if(CMAKE_VERSION VERSION_GREATER 3.6) @@ -22,6 +23,3 @@ index 79404b8..f68217d 100644 # Add clang-tidy if available option(CLANG_TIDY_FIX "Perform fixes for Clang-Tidy" OFF) find_program( --- -2.20.1 - diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/cli11/files/0001-Use-GNUInstallDirs-instead-of-hard-coded-path.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/cli11/files/0001-Use-GNUInstallDirs-instead-of-hard-coded-path.patch new file mode 100644 index 00000000..4541cd92 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/cli11/files/0001-Use-GNUInstallDirs-instead-of-hard-coded-path.patch @@ -0,0 +1,39 @@ +From 8c51221f748bca1483fe1141e584867d2ff34a07 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Thu, 19 Dec 2019 16:26:39 -0800 +Subject: [PATCH] Use GNUInstallDirs instead of hard-coded path + +Upstream-Status: Submitted [https://github.com/CLIUtils/CLI11/pull/373] +Signed-off-by: Khem Raj +--- + CMakeLists.txt | 5 +++-- + 1 file changed, 3 insertions(+), 2 deletions(-) + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 7073a0b..5236fd2 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -120,17 +120,18 @@ endif() + configure_file("${CMAKE_CURRENT_SOURCE_DIR}/cmake/CLI11ConfigVersion.cmake.in" + "${CMAKE_CURRENT_BINARY_DIR}/CLI11ConfigVersion.cmake" @ONLY) + ++include(GNUInstallDirs) + # These installs only make sense for a local project + if(CUR_PROJ) + # Make version available in the install + install(FILES "${CMAKE_CURRENT_BINARY_DIR}/CLI11ConfigVersion.cmake" +- DESTINATION lib/cmake/CLI11) ++ DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/CLI11) + + # Install the export target as a file + install(EXPORT CLI11Targets + FILE CLI11Config.cmake + NAMESPACE CLI11:: +- DESTINATION lib/cmake/CLI11) ++ DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/CLI11) + + # Use find_package on the installed package + export(TARGETS CLI11 +-- +2.24.1 + diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/cmark/cmark_git.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/cmark/cmark_git.bb new file mode 100644 index 00000000..f74a39b5 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/cmark/cmark_git.bb @@ -0,0 +1,17 @@ +SUMMARY = "CommonMark parsing and rendering library and program in C" +HOMEPAGE = "https://github.com/commonmark/cmark" +LICENSE = "BSD-2-Clause & MIT" +LIC_FILES_CHKSUM = "file://COPYING;md5=81f9cae6293cc0345a9144b78152ab62" + +SRC_URI = "git://github.com/commonmark/cmark.git" +SRCREV = "8daa6b1495124f0b67e6034130e12d7be83e38bd" +S = "${WORKDIR}/git" + +PV = "0.29.0" + +inherit cmake lib_package + +EXTRA_OECMAKE += " \ + -DCMARK_TESTS=OFF \ + -DCMARK_STATIC=OFF \ +" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/colord/colord-native.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/colord/colord-native.bb new file mode 100644 index 00000000..845041cc --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/colord/colord-native.bb @@ -0,0 +1,64 @@ +require ${BPN}.inc + +FILESEXTRAPATHS_prepend := "${THISDIR}/${BPN}-native:" + +inherit meson native + +DEPENDS += " \ + meson-native \ + glib-2.0-native \ + lcms-native \ +" + +SRC_URI += " \ + file://0001-Move-the-function-cd_icc_create_from_edid-to-avoid-u.patch \ + file://Makefile;subdir=${BPN}-${PV} \ +" + +do_configure() { + # we expect meson to fail - but before it extracts project's version in log file + meson ${MESONOPTS} "${MESON_SOURCEPATH}" "${B}" ${MESON_CROSS_FILE} ${EXTRA_OEMESON} > /dev/null 2>&1 || true + + # extract and split version + version=`grep 'Project version:' ${B}/meson-logs/meson-log.txt | sed 's|Project version: ||'` + major=`echo $version | cut -d. -f1` + minor=`echo $version | cut -d. -f2` + micro=`echo $version | cut -d. -f3` + echo "Project version: $major.$minor.$micro" + + # extract project name + proj_name=`grep 'Project name:' ${B}/meson-logs/meson-log.txt | sed 's|Project name: ||'` + + # create cd-version.h + mkdir -p ${B}/colord + sed ${S}/lib/colord/cd-version.h.in \ + -e 's:@CD_MAJOR_VERSION_PRIVATE@:1:g' \ + -e 's:@CD_MINOR_VERSION_PRIVATE@:4:g' \ + -e 's:@CD_MICRO_VERSION_PRIVATE@:4:g' \ + > ${B}/colord/cd-version.h + + # create config.h based on target build and add what's necessary only + localedir=`echo ${datadir}/locale | sed 's:${prefix}/::g'` + echo "#define LOCALEDIR \"$localedir\"" >> ${B}/config.h + echo "#define GETTEXT_PACKAGE \"colord\"" >> ${B}/config.h + echo "#define PACKAGE_NAME \"$proj_name\"" >> ${B}/config.h + echo "#define PACKAGE_VERSION \"$version\"" >> ${B}/config.h +} + +do_compile() { + oe_runmake -C${S} DESTDIR=${B} +} + +do_install() { + version=`grep 'Project version:' ${B}/meson-logs/meson-log.txt | sed 's|Project version: ||'` + major=`echo $version | cut -d. -f1` + + install -d ${D}${libdir} + install -m 755 ${B}/libcolord.so ${D}${libdir}/libcolord.so.$version + ln -s libcolord.so.$version "${D}/${libdir}/libcolord.so" + ln -s libcolord.so.$version "${D}/${libdir}/libcolord.so.$major" + + install -d ${D}${bindir} + install -m 755 ${B}/cd_create_profile ${D}${bindir}/ + install -m 755 ${B}/cd_idt8 ${D}${bindir}/ +} diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/colord/colord-native/0001-Move-the-function-cd_icc_create_from_edid-to-avoid-u.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/colord/colord-native/0001-Move-the-function-cd_icc_create_from_edid-to-avoid-u.patch new file mode 100644 index 00000000..278b90e0 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/colord/colord-native/0001-Move-the-function-cd_icc_create_from_edid-to-avoid-u.patch @@ -0,0 +1,166 @@ +From cbb8f5c05fce1d56ae2e5fa9f57fc49c47bed5ab Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Andreas=20M=C3=BCller?= +Date: Sun, 12 May 2019 21:58:02 +0200 +Subject: [PATCH] Move the function cd_icc_create_from_edid to avoid udev + dependeny +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +We do not have udev-native so it is a dependeny we cannot satisfy + +Upstream-Status: Inappropriate [OE specific] + +Signed-off-by: Andreas Müller +--- + lib/colord/cd-edid.c | 63 ++++++++++++++++++++++++++++++++++++++++++++ + lib/colord/cd-icc.c | 62 ------------------------------------------- + 2 files changed, 63 insertions(+), 62 deletions(-) + +diff --git a/lib/colord/cd-edid.c b/lib/colord/cd-edid.c +index a5e2328..dec509a 100644 +--- a/lib/colord/cd-edid.c ++++ b/lib/colord/cd-edid.c +@@ -687,3 +687,66 @@ cd_edid_new (void) + edid = g_object_new (CD_TYPE_EDID, NULL); + return CD_EDID (edid); + } ++ ++/** ++ * cd_icc_create_from_edid_data: ++ * @icc: A valid #CdIcc ++ * @edid: EDID data ++ * @error: A #GError, or %NULL ++ * ++ * Creates an ICC profile from EDID data. ++ * ++ * Return value: %TRUE for success ++ * ++ * Since: 1.1.2 ++ **/ ++gboolean ++cd_icc_create_from_edid_data (CdIcc *icc, CdEdid *edid, GError **error) ++{ ++ CdIccPrivate *priv = GET_PRIVATE (icc); ++ const gchar *data; ++ ++ /* not loaded */ ++ if (priv->lcms_profile != NULL) { ++ g_set_error_literal (error, ++ CD_ICC_ERROR, ++ CD_ICC_ERROR_FAILED_TO_CREATE, ++ "already loaded or generated"); ++ return FALSE; ++ } ++ ++ /* create from parsed object */ ++ if (!cd_icc_create_from_edid (icc, ++ cd_edid_get_gamma (edid), ++ cd_edid_get_red (edid), ++ cd_edid_get_green (edid), ++ cd_edid_get_blue (edid), ++ cd_edid_get_white (edid), ++ error)) { ++ return FALSE; ++ } ++ ++ /* set copyright */ ++ cd_icc_set_copyright (icc, NULL, ++ /* deliberately not translated */ ++ "This profile is free of known copyright restrictions."); ++ ++ /* set 'ICC meta Tag for Monitor Profiles' data */ ++ data = cd_edid_get_checksum (edid); ++ if (data != NULL) ++ cd_icc_add_metadata (icc, CD_PROFILE_METADATA_EDID_MD5, data); ++ data = cd_edid_get_monitor_name (edid); ++ if (data != NULL) ++ cd_icc_add_metadata (icc, CD_PROFILE_METADATA_EDID_MODEL, data); ++ data = cd_edid_get_serial_number (edid); ++ if (data != NULL) ++ cd_icc_add_metadata (icc, CD_PROFILE_METADATA_EDID_SERIAL, data); ++ data = cd_edid_get_pnp_id (edid); ++ if (data != NULL) ++ cd_icc_add_metadata (icc, CD_PROFILE_METADATA_EDID_MNFT, data); ++ data = cd_edid_get_vendor_name (edid); ++ if (data != NULL) ++ cd_icc_add_metadata (icc, CD_PROFILE_METADATA_EDID_VENDOR, data); ++ return TRUE; ++} ++ +diff --git a/lib/colord/cd-icc.c b/lib/colord/cd-icc.c +index f231814..2c8fe77 100644 +--- a/lib/colord/cd-icc.c ++++ b/lib/colord/cd-icc.c +@@ -3094,68 +3094,6 @@ out: + return ret; + } + +-/** +- * cd_icc_create_from_edid_data: +- * @icc: A valid #CdIcc +- * @edid: EDID data +- * @error: A #GError, or %NULL +- * +- * Creates an ICC profile from EDID data. +- * +- * Return value: %TRUE for success +- * +- * Since: 1.1.2 +- **/ +-gboolean +-cd_icc_create_from_edid_data (CdIcc *icc, CdEdid *edid, GError **error) +-{ +- CdIccPrivate *priv = GET_PRIVATE (icc); +- const gchar *data; +- +- /* not loaded */ +- if (priv->lcms_profile != NULL) { +- g_set_error_literal (error, +- CD_ICC_ERROR, +- CD_ICC_ERROR_FAILED_TO_CREATE, +- "already loaded or generated"); +- return FALSE; +- } +- +- /* create from parsed object */ +- if (!cd_icc_create_from_edid (icc, +- cd_edid_get_gamma (edid), +- cd_edid_get_red (edid), +- cd_edid_get_green (edid), +- cd_edid_get_blue (edid), +- cd_edid_get_white (edid), +- error)) { +- return FALSE; +- } +- +- /* set copyright */ +- cd_icc_set_copyright (icc, NULL, +- /* deliberately not translated */ +- "This profile is free of known copyright restrictions."); +- +- /* set 'ICC meta Tag for Monitor Profiles' data */ +- data = cd_edid_get_checksum (edid); +- if (data != NULL) +- cd_icc_add_metadata (icc, CD_PROFILE_METADATA_EDID_MD5, data); +- data = cd_edid_get_monitor_name (edid); +- if (data != NULL) +- cd_icc_add_metadata (icc, CD_PROFILE_METADATA_EDID_MODEL, data); +- data = cd_edid_get_serial_number (edid); +- if (data != NULL) +- cd_icc_add_metadata (icc, CD_PROFILE_METADATA_EDID_SERIAL, data); +- data = cd_edid_get_pnp_id (edid); +- if (data != NULL) +- cd_icc_add_metadata (icc, CD_PROFILE_METADATA_EDID_MNFT, data); +- data = cd_edid_get_vendor_name (edid); +- if (data != NULL) +- cd_icc_add_metadata (icc, CD_PROFILE_METADATA_EDID_VENDOR, data); +- return TRUE; +-} +- + /** + * cd_icc_create_from_edid: + * @icc: A valid #CdIcc +-- +2.20.1 + diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/colord/colord-native/Makefile b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/colord/colord-native/Makefile new file mode 100644 index 00000000..1e29e4f6 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/colord/colord-native/Makefile @@ -0,0 +1,48 @@ +# For native build cd_idt8, cd_create_profile and a tiny version of libcolord.so +# only. By reducing the library to what's necessary, we avoid dependencies on +# naitve udev and libgudev + +CFLAGS+=$(shell pkg-config-native --cflags gio-2.0) +CFLAGS+=$(shell pkg-config-native --cflags lcms2) +CFLAGS+=-std=c99 -I./lib -I./lib/colord -I$(DESTDIR) -DCD_COMPILATION + +LDFLAGS+=$(shell pkg-config-native --libs gio-2.0) +LDFLAGS+=$(shell pkg-config-native --libs lcms2) +LDFLAGS+=-lm + +all: cd_idt8 cd_create_profile + +LIBSOURCES = \ + lib/colord/cd-it8.c \ + lib/colord/cd-color.c \ + lib/colord/cd-spectrum.c \ + lib/colord/cd-math.c \ + lib/colord/cd-interp-akima.c \ + lib/colord/cd-context-lcms.c \ + lib/colord/cd-interp.c \ + lib/colord/cd-interp-linear.c \ + lib/colord/cd-it8-utils.c \ + lib/colord/cd-enum.c \ + lib/colord/cd-icc.c \ + lib/colord/cd-icc-utils.c \ + lib/colord/cd-dom.c + +libcolord.so: $(LIBSOURCES) + $(CC) $(CFLAGS) -L$(DESTDIR) -fPIC -shared -Wl,-soname,$@ $^ -o $(DESTDIR)/$@ $(LDFLAGS) + +cd_idt8.o: client/cd-it8.c + $(CC) $(CFLAGS) -c $^ -o $(DESTDIR)/$@ + +cd_idt8: libcolord.so cd_idt8.o + $(CC) $(DESTDIR)/cd_idt8.o -o $(DESTDIR)/$@ -L$(DESTDIR) -lcolord $(LDFLAGS) + +cd_create_profile.o: client/cd-create-profile.c + $(CC) $(CFLAGS) -c $^ -o $(DESTDIR)/$@ + +cd_create_profile: libcolord.so cd_create_profile.o + $(CC) $(DESTDIR)/cd_create_profile.o -o $(DESTDIR)/$@ -L$(DESTDIR) -lcolord $(LDFLAGS) + +.PHONY: clean + +clean: + rm -f $(DESTDIR)/libcolord.so $(DESTDIR)/*.o $(DESTDIR)/cd_idt8 $(DESTDIR)/cd_create_profile diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/colord/colord.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/colord/colord.bb new file mode 100644 index 00000000..df86708e --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/colord/colord.bb @@ -0,0 +1,45 @@ +require ${BPN}.inc + +inherit meson gobject-introspection gsettings gettext bash-completion systemd features_check useradd + +# polkit and gobject-introspection are mandatory and cannot be configured +REQUIRED_DISTRO_FEATURES = "polkit gobject-introspection-data" +UNKNOWN_CONFIGURE_WHITELIST_append = " introspection" + +DEPENDS += " \ + ${BPN}-native \ + glib-2.0 \ + lcms \ + sqlite3 \ + libgusb \ + libgudev \ + polkit \ +" + +SRC_URI += " \ + file://0001-Run-native-cd_idt8-cd_create_profile.patch \ +" + +EXTRA_OEMESON = " \ + -Dman=false \ + -Ddocs=false \ +" + +PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)}" +PACKAGECONFIG[systemd] = "-Dsystemd=true, -Dsystemd=false, systemd" + +SYSTEMD_SERVICE_${PN} = "colord.service" + +FILES_${PN} += " \ + ${datadir}/dbus-1 \ + ${datadir}/polkit-1 \ + ${datadir}/glib-2.0 \ + ${datadir}/color \ + ${systemd_user_unitdir} \ + ${libdir}/tmpfiles.d \ + ${libdir}/colord-plugins \ + ${libdir}/colord-sensors \ +" + +USERADD_PACKAGES = "${PN}" +USERADD_PARAM_${PN} = "--system --user-group -d /var/lib/colord -s /bin/false colord" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/colord/colord.inc b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/colord/colord.inc new file mode 100644 index 00000000..7497fed5 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/colord/colord.inc @@ -0,0 +1,13 @@ +SUMMARY = "Making color management just work" +HOMEPAGE = "https://www.freedesktop.org/software/colord/" +LICENSE = "GPLv2 & LGPLv2.1" +LIC_FILES_CHKSUM = " \ + file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \ + file://meson.build;beginline=3;endline=3;md5=f42198707d793be58b274d34fd5238c3 \ +" + +PV = "1.4.4" +SRC_URI = "https://www.freedesktop.org/software/colord/releases/${BPN}-${PV}.tar.xz" +SRC_URI[md5sum] = "32c2709a6002d9ee750483aaed6379c8" +SRC_URI[sha256sum] = "9a0fe80160bf88efddb582a9fc0169f56065276dc3882c47dddb9eecd048c0a5" + diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/colord/colord/0001-Run-native-cd_idt8-cd_create_profile.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/colord/colord/0001-Run-native-cd_idt8-cd_create_profile.patch new file mode 100644 index 00000000..4b52aa33 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/colord/colord/0001-Run-native-cd_idt8-cd_create_profile.patch @@ -0,0 +1,59 @@ +From 5aad8831c0fb71940d6c4f982b0b30ffb6ae33b3 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Andreas=20M=C3=BCller?= +Date: Sun, 12 May 2019 22:47:05 +0200 +Subject: [PATCH] Run native cd_idt8/cd_create_profile +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Upstream-Status: Inappropriate [OE specific] + +Signed-off-by: Andreas Müller +--- + data/cmf/meson.build | 2 +- + data/illuminant/meson.build | 2 +- + data/profiles/meson.build | 2 +- + 3 files changed, 3 insertions(+), 3 deletions(-) + +diff --git a/data/cmf/meson.build b/data/cmf/meson.build +index a693cd7..1ae3613 100644 +--- a/data/cmf/meson.build ++++ b/data/cmf/meson.build +@@ -2,7 +2,7 @@ foreach arg: [ 'CIE1964-10deg-XYZ', 'CIE1931-2deg-XYZ' ] + custom_target(arg, + input: arg + '.csv', + output: arg + '.cmf', +- command: [ cd_idt8, 'create-cmf', '@OUTPUT@', '@INPUT@', '1.0' ], ++ command: [ 'cd_idt8', 'create-cmf', '@OUTPUT@', '@INPUT@', '1.0' ], + install: true, + install_dir: join_paths(datadir, 'colord', 'cmf') + ) +diff --git a/data/illuminant/meson.build b/data/illuminant/meson.build +index f8dfa07..ad7dced 100644 +--- a/data/illuminant/meson.build ++++ b/data/illuminant/meson.build +@@ -24,7 +24,7 @@ foreach arg: generated_spectra + custom_target(arg, + input: arg + '.csv', + output: arg + '.sp', +- command: [ cd_idt8, 'create-sp', '@OUTPUT@', '@INPUT@', '100.0' ], ++ command: [ 'cd_idt8', 'create-sp', '@OUTPUT@', '@INPUT@', '100.0' ], + install: true, + install_dir: join_paths(datadir, 'colord', 'illuminant') + ) +diff --git a/data/profiles/meson.build b/data/profiles/meson.build +index 591b97d..2cef011 100644 +--- a/data/profiles/meson.build ++++ b/data/profiles/meson.build +@@ -59,7 +59,7 @@ foreach arg: icc_profiles + generated_icc = custom_target(arg + '.icc', + input: xml_i18n, + output: arg + '.icc', +- command: [ cd_create_profile, '--output=@OUTPUT@', '@INPUT@' ], ++ command: [ 'cd_create_profile', '--output=@OUTPUT@', '@INPUT@' ], + install: true, + install_dir: join_paths(datadir, 'color', 'icc', 'colord'), + ) +-- +2.20.1 + diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/cpprest/cpprest_2.10.13.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/cpprest/cpprest_2.10.13.bb deleted file mode 100644 index 07045121..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/cpprest/cpprest_2.10.13.bb +++ /dev/null @@ -1,23 +0,0 @@ -SUMMARY = "Microsoft project for cloud-based client-server communication in native code using a modern asynchronous C++ API design." -SECTION = "libs/network" -HOMEPAGE = "https://github.com/Microsoft/cpprestsdk/" -LICENSE = "MIT" -LIC_FILES_CHKSUM = "file://${S}/license.txt;md5=a2e15b954769218ff912468eecd6a02f" -DEPENDS = "openssl websocketpp zlib boost brotli" - -EXTRA_OECMAKE = "-DCPPREST_EXPORT_DIR=cmake -DCPPREST_EXCLUDE_BROTLI=OFF" - -SRC_URI = "git://github.com/Microsoft/cpprestsdk.git;protocol=https;branch=master \ - file://disable-float-tests.patch \ - file://disable-outside-tests.patch " - -# tag 2.10.13 -SRCREV= "9d8f544001cb74544de6dc8c565592f7e2626d6e" - -S = "${WORKDIR}/git" - -inherit cmake pkgconfig - -# Temporary until https://github.com/Microsoft/cpprestsdk/issues/1099 -# is fixed properly -CXXFLAGS += "-Wno-error=deprecated-copy -Wno-error=redundant-move" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/cpprest/cpprest_2.10.14.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/cpprest/cpprest_2.10.14.bb new file mode 100644 index 00000000..11c8eab5 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/cpprest/cpprest_2.10.14.bb @@ -0,0 +1,19 @@ +SUMMARY = "Microsoft project for cloud-based client-server communication in native code using a modern asynchronous C++ API design." +SECTION = "libs/network" +HOMEPAGE = "https://github.com/Microsoft/cpprestsdk/" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://${S}/license.txt;md5=a2e15b954769218ff912468eecd6a02f" +DEPENDS = "openssl websocketpp zlib boost brotli" + +EXTRA_OECMAKE = "-DCPPREST_EXPORT_DIR=cmake/cpprestsdk -DCPPREST_EXCLUDE_BROTLI=OFF -DWERROR=OFF" + +SRC_URI = "git://github.com/Microsoft/cpprestsdk.git;protocol=https;branch=master \ + file://disable-float-tests.patch \ + file://disable-outside-tests.patch " + +# tag 2.10.14 +SRCREV= "6f602bee67b088a299d7901534af3bce6334ab38" + +S = "${WORKDIR}/git" + +inherit cmake pkgconfig diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/daemonize/daemonize_git.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/daemonize/daemonize_git.bb index 1e49eefc..c7663278 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/daemonize/daemonize_git.bb +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/daemonize/daemonize_git.bb @@ -1,6 +1,6 @@ SUMMARY = "A tool to run a command as a daemon" HOMEPAGE = "http://software.clapper.org/daemonize/" -LICENSE = "BSD" +LICENSE = "BSD-3-Clause" LIC_FILES_CHKSUM = "file://LICENSE.md;md5=3cf9084faa88bc8554a9139d8d7dd35f" PV = "1.7.8" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/daemontools/daemontools_0.76.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/daemontools/daemontools_0.76.bb index 84e9bca0..35251cb8 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/daemontools/daemontools_0.76.bb +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/daemontools/daemontools_0.76.bb @@ -12,7 +12,7 @@ data." SECTION = "System/Servers" -LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/PD;md5=b3597d12946881e13cb3b548d1173851" +LIC_FILES_CHKSUM = "file://src/prot.c;beginline=1;endline=1;md5=96964cadf07e8f8c1e2ffb3b507dd647" LICENSE = "PD" SRC_URI = "http://cr.yp.to/daemontools/${BPN}-${PV}.tar.gz \ diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/dfu-util/dfu-util-native_0.9.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/dfu-util/dfu-util-native_0.9.bb index aeca23bf..feb16fa7 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/dfu-util/dfu-util-native_0.9.bb +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/dfu-util/dfu-util-native_0.9.bb @@ -4,12 +4,22 @@ inherit native deploy DEPENDS = "libusb1-native" -SRC_URI += "file://0001-Revert-Makefile.am-Drop-static-dfu-util.patch" +PACKAGECONFIG ??= "" + +PACKAGECONFIG[static] = "CFLAGS='${CFLAGS} -pthread -static',," -do_deploy[sstate-outputdirs] = "${DEPLOY_DIR_TOOLS}" do_deploy() { - install -m 0755 src/dfu-util_static ${DEPLOYDIR}/dfu-util-${PV} + install -m 0755 src/dfu-util ${DEPLOYDIR}/dfu-util-${PV} rm -f ${DEPLOYDIR}/dfu-util ln -sf ./dfu-util-${PV} ${DEPLOYDIR}/dfu-util } + addtask deploy before do_package after do_install + +do_deploy[sstate-outputdirs] = "${DEPLOY_DIR_TOOLS}" +# cleandirs should possibly be in deploy.bbclass but we need it +do_deploy[cleandirs] = "${DEPLOYDIR}" +# clear stamp-extra-info since MACHINE_ARCH is normally put there by +# deploy.bbclass +do_deploy[stamp-extra-info] = "" + diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/dfu-util/dfu-util/0001-Revert-Makefile.am-Drop-static-dfu-util.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/dfu-util/dfu-util/0001-Revert-Makefile.am-Drop-static-dfu-util.patch deleted file mode 100644 index 1c6ad080..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/dfu-util/dfu-util/0001-Revert-Makefile.am-Drop-static-dfu-util.patch +++ /dev/null @@ -1,68 +0,0 @@ -From c2aab3b9ae1febcb6b4c6561a59df1930a57b394 Mon Sep 17 00:00:00 2001 -From: Martin JaMa Jansa -Date: Thu, 11 Aug 2011 11:19:52 +0200 -Subject: [PATCH] Revert "Makefile.am: Drop static dfu-util" - -This reverts commit fe0426ddc04f503d148c5e5f931f16b8f674f071. - -Signed-off-by: Martin JaMa Jansa ---- - configure.ac | 2 +- - src/Makefile.am | 22 +++++++++++++++++++++- - 2 files changed, 22 insertions(+), 2 deletions(-) - -diff --git a/configure.ac b/configure.ac -index f5a43b8..6a3757e 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -21,7 +21,7 @@ AS_IF([test x$native_libusb = xno], [ - AC_MSG_ERROR([*** Required libusb-1.0 >= 1.0.0 not installed ***])) - ]) - --LIBS="$LIBS $USB_LIBS" -+LIBS="$LIBS $USB_LIBS -lpthread" - CFLAGS="$CFLAGS $USB_CFLAGS" - - # Checks for header files. -diff --git a/src/Makefile.am b/src/Makefile.am -index 70179c4..e8736ee 100644 ---- a/src/Makefile.am -+++ b/src/Makefile.am -@@ -1,6 +1,6 @@ - AM_CFLAGS = -Wall -Wextra - --bin_PROGRAMS = dfu-util dfu-suffix dfu-prefix -+bin_PROGRAMS = dfu-util dfu-util_static dfu-suffix dfu-prefix - dfu_util_SOURCES = main.c \ - portable.h \ - dfu_load.c \ -@@ -19,6 +19,26 @@ dfu_util_SOURCES = main.c \ - quirks.c \ - quirks.h - -+dfu_util_static_SOURCES = main.c \ -+ portable.h \ -+ dfu_load.c \ -+ dfu_load.h \ -+ dfu_util.c \ -+ dfu_util.h \ -+ dfuse.c \ -+ dfuse.h \ -+ dfuse_mem.c \ -+ dfuse_mem.h \ -+ dfu.c \ -+ dfu.h \ -+ usb_dfu.h \ -+ dfu_file.c \ -+ dfu_file.h \ -+ quirks.c \ -+ quirks.h -+ -+dfu_util_static_LDFLAGS = -static -+ - dfu_suffix_SOURCES = suffix.c \ - dfu_file.h \ - dfu_file.c --- -2.7.2 - diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/dfu-util/dfu-util_0.9.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/dfu-util/dfu-util_0.9.bb index 76e1552c..8a2ac693 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/dfu-util/dfu-util_0.9.bb +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/dfu-util/dfu-util_0.9.bb @@ -1,15 +1,13 @@ DESCRIPTION = "USB Device Firmware Upgrade utility" +AUTHOR = "Harald Welte " HOMEPAGE = "http://dfu-util.sourceforge.net" SECTION = "devel" -AUTHOR = "Harald Welte " LICENSE = "GPLv2" LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f" - -SRC_URI = "http://dfu-util.gnumonks.org/releases/${BP}.tar.gz" - -inherit autotools pkgconfig - DEPENDS = "libusb1" +SRC_URI = "http://dfu-util.sourceforge.net/releases/${BP}.tar.gz" SRC_URI[md5sum] = "233bb1e08ef4b405062445d84e28fde6" SRC_URI[sha256sum] = "36428c6a6cb3088cad5a3592933385253da5f29f2effa61518ee5991ea38f833" + +inherit autotools pkgconfig diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/dhex/dhex_0.69.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/dhex/dhex_0.69.bb new file mode 100644 index 00000000..cfbb2caa --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/dhex/dhex_0.69.bb @@ -0,0 +1,24 @@ +SUMMARY = "dhex is a hex editor that includes a diff mode" +SECTION = "console/utils" + +DEPENDS = "ncurses" + +LICENSE = "GPLv2+" +LIC_FILES_CHKSUM = "file://README.txt;beginline=229;endline=241;md5=6f252a421b65bcecf624382ba3c899da" + +SRC_URI = "http://www.dettus.net/dhex/dhex_0.69.tar.gz" +SRC_URI[md5sum] = "64d557437fe110c19f23ed3e9bbcdd54" +SRC_URI[sha256sum] = "52730bcd1cf16bd4dae0de42531be9a4057535ec61ca38c0804eb8246ea6c41b" + +S = "${WORKDIR}/dhex_${PV}" + +EXTRA_OEMAKE += "'CC=${CC}' 'LDFLAGS=${LDFLAGS}' 'CPPFLAGS=${CPPFLAGS}'" + +do_compile() { + oe_runmake +} + +do_install() { + install -m 0755 -d ${D}${bindir} + install -m 0755 ${S}/dhex ${D}${bindir}/ +} diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/digitemp/digitemp_3.7.2.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/digitemp/digitemp_3.7.2.bb new file mode 100644 index 00000000..9fcc278d --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/digitemp/digitemp_3.7.2.bb @@ -0,0 +1,23 @@ +SUMMARY = "read temperature sensors in a 1-Wire net" +SECTION = "util" +DEPENDS = "libusb1" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=44fee82a1d2ed0676cf35478283e0aa0" + +SRC_URI = "git://github.com/bcl/digitemp" + +SRCREV = "a162e63aad35358aab325388f3d5e88121606419" + +S = "${WORKDIR}/git" + +EXTRA_OEMAKE = "ds9097 ds9097u \ + SYSTYPE='Linux' \ +" +do_configure() { + rm -f digitemp_* +} + +do_install() { + install -d ${D}${sbindir} + install -m 0755 digitemp_* ${D}${sbindir} +} diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/digitemp/digitemp_git.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/digitemp/digitemp_git.bb deleted file mode 100644 index 460aa143..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/digitemp/digitemp_git.bb +++ /dev/null @@ -1,25 +0,0 @@ -SUMMARY = "read temperature sensors in a 1-Wire net" -SECTION = "util" -DEPENDS = "libusb1" -LICENSE = "GPLv2" -LIC_FILES_CHKSUM = "file://COPYING;md5=44fee82a1d2ed0676cf35478283e0aa0" - -PV = "3.7.1+git${SRCPV}" - -SRC_URI = "git://github.com/bcl/digitemp" - -SRCREV = "389f67655efa1674f595106c3a47b5ad082609a7" - -S = "${WORKDIR}/git" - -EXTRA_OEMAKE = "ds9097 ds9097u \ - SYSTYPE='Linux' \ -" -do_configure() { - rm -f digitemp_* -} - -do_install() { - install -d ${D}${sbindir} - install -m 0755 digitemp_* ${D}${sbindir} -} diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/dstat/dstat_0.7.3.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/dstat/dstat_0.7.3.bb deleted file mode 100644 index 18af738f..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/dstat/dstat_0.7.3.bb +++ /dev/null @@ -1,22 +0,0 @@ -SUMMARY = "versatile resource statics tool" -DESCRIPTION = "Dstat is a versatile replacement for vmstat, iostat, netstat and ifstat. \ -Dstat overcomes some of their limitations and adds some extra features, more counters \ -and flexibility. Dstat is handy for monitoring systems during performance tuning tests, \ -benchmarks or troubleshooting." -HOMEPAGE = "http://dag.wiee.rs/home-made/dstat" -LICENSE = "GPLv2" -LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263" - -DEPENDS += "asciidoc-native xmlto-native" - -SRC_URI = "git://github.com/dagwieers/dstat.git" - -SRCREV = "ebace6d4177f8748f35cec87f7a49946046b0a20" - -S = "${WORKDIR}/git" - -do_install() { - oe_runmake 'DESTDIR=${D}' install -} - -RDEPENDS_${PN} += "python-core python-misc python-resource python-shell python-unixadmin" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/dstat/dstat_0.7.4.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/dstat/dstat_0.7.4.bb new file mode 100644 index 00000000..8eb71574 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/dstat/dstat_0.7.4.bb @@ -0,0 +1,22 @@ +SUMMARY = "versatile resource statics tool" +DESCRIPTION = "Dstat is a versatile replacement for vmstat, iostat, netstat and ifstat. \ +Dstat overcomes some of their limitations and adds some extra features, more counters \ +and flexibility. Dstat is handy for monitoring systems during performance tuning tests, \ +benchmarks or troubleshooting." +HOMEPAGE = "http://dag.wiee.rs/home-made/dstat" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263" + +DEPENDS += "asciidoc-native xmlto-native" + +SRC_URI = "git://github.com/dagwieers/dstat.git" + +SRCREV = "6f5db0aed26bf8cf2700d4ffe90a9bd3436ac728" + +S = "${WORKDIR}/git" + +do_install() { + oe_runmake 'DESTDIR=${D}' install +} + +RDEPENDS_${PN} += "python-core python-misc python-resource python-shell python-unixadmin" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/enchant/enchant2_2.2.3.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/enchant/enchant2_2.2.3.bb deleted file mode 100644 index 42150c88..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/enchant/enchant2_2.2.3.bb +++ /dev/null @@ -1,26 +0,0 @@ -SUMMARY = "Enchant Spell checker API Library v2" -SECTION = "libs" -HOMEPAGE = "https://abiword.github.io/enchant/" -LICENSE = "LGPLv2.1+" -LIC_FILES_CHKSUM = "file://COPYING.LIB;md5=a916467b91076e631dd8edb7424769c7" - -DEPENDS = "glib-2.0" - -inherit autotools pkgconfig - -SRC_URI = "https://github.com/AbiWord/enchant/releases/download/v${PV}/enchant-${PV}.tar.gz" -SRC_URI[md5sum] = "4b8abb58e00e93363591b3f5ea4f52d5" -SRC_URI[sha256sum] = "abd8e915675cff54c0d4da5029d95c528362266557c61c7149d53fa069b8076d" - -S = "${WORKDIR}/enchant-${PV}" - -EXTRA_OEMAKE = "pkgdatadir=${datadir}/enchant-2" - -PACKAGECONFIG ??= "hunspell" -PACKAGECONFIG[aspell] = "--with-aspell,--without-aspell,aspell,aspell" -PACKAGECONFIG[hunspell] = "--with-hunspell,--without-hunspell,hunspell,hunspell" - -FILES_${PN} += " \ - ${datadir}/enchant-2 \ - ${libdir}/enchant-2 \ -" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/exiv2/exiv2_0.27.1.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/exiv2/exiv2_0.27.1.bb new file mode 100644 index 00000000..97116ee2 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/exiv2/exiv2_0.27.1.bb @@ -0,0 +1,13 @@ +SUMMARY = "Exif, Iptc and XMP metadata manipulation library and tools" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=625f055f41728f84a8d7938acc35bdc2" + +DEPENDS = "zlib expat" + +SRC_URI = "https://exiv2.org/releases/${BPN}-${PV}-Source.tar.gz" +SRC_URI[md5sum] = "56d064517ae5903dd963b84514a121c1" +SRC_URI[sha256sum] = "f125286980fd1bcb28e188c02a93946951c61e10784720be2301b661a65b3081" + +S = "${WORKDIR}/${BPN}-${PV}-Source" + +inherit cmake gettext diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/farsight/libnice_0.1.14.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/farsight/libnice_0.1.14.bb deleted file mode 100644 index 967beeba..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/farsight/libnice_0.1.14.bb +++ /dev/null @@ -1,39 +0,0 @@ -SUMMARY = "Interactive Connectivity Establishment library" -DESCRIPTION = "Libnice is an implementation of the IETF's draft Interactive Connectivity Establishment standard (ICE)." -HOMEPAGE = "http://nice.freedesktop.org/wiki/" -SRC_URI = "http://nice.freedesktop.org/releases/libnice-${PV}.tar.gz" -SRC_URI[md5sum] = "c9b9b74b8ae1b3890e4bd93f1b70e8ff" -SRC_URI[sha256sum] = "be120ba95d4490436f0da077ffa8f767bf727b82decf2bf499e39becc027809c" - -LICENSE = "LGPLv2.1 & MPLv1.1" -LIC_FILES_CHKSUM = "file://COPYING;md5=9c42325015702feda4f4d2f19a55b767 \ - file://COPYING.LGPL;md5=2d5025d4aa3495befef8f17206a5b0a1 \ - file://COPYING.MPL;md5=3c617710e51cdbe0fc00716f056dfb1a \ -" - -DEPENDS = "glib-2.0 gnutls" - -PACKAGECONFIG ??= "gstreamer1.0" -PACKAGECONFIG[gupnp] = "--enable-gupnp,--disable-gupnp,gupnp-igd" -PACKAGECONFIG[gstreamer1.0] = "--with-gstreamer,--without-gstreamer,gstreamer1.0 gstreamer1.0-plugins-base" - -inherit autotools pkgconfig gtk-doc gobject-introspection - -EXTRA_OECONF += "--without-gstreamer-0.10" - -FILES_${PN} += "${libdir}/gstreamer-1.0/*.so" -FILES_${PN}-dev += "${libdir}/gstreamer-1.0/*.la" -FILES_${PN}-staticdev += "${libdir}/gstreamer-1.0/*.a" -FILES_${PN}-dbg += "${libdir}/gstreamer-1.0/.debug" - -do_configure_prepend() { - mkdir ${S}/m4 || true -} - -do_compile_append() { - for i in $(find ${B} -name "*.pc") ; do - sed -i -e s:${STAGING_DIR_TARGET}::g \ - -e s:/${TARGET_SYS}::g \ - $i - done -} diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/farsight/libnice_0.1.16.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/farsight/libnice_0.1.16.bb new file mode 100644 index 00000000..7bd6478d --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/farsight/libnice_0.1.16.bb @@ -0,0 +1,40 @@ +SUMMARY = "Interactive Connectivity Establishment library" +DESCRIPTION = "Libnice is an implementation of the IETF's draft Interactive Connectivity Establishment standard (ICE)." +HOMEPAGE = "http://nice.freedesktop.org/wiki/" + +LICENSE = "LGPLv2.1 & MPLv1.1" +LIC_FILES_CHKSUM = "file://COPYING;md5=9c42325015702feda4f4d2f19a55b767 \ + file://COPYING.LGPL;md5=2d5025d4aa3495befef8f17206a5b0a1 \ + file://COPYING.MPL;md5=3c617710e51cdbe0fc00716f056dfb1a \ +" + +SRC_URI = "http://nice.freedesktop.org/releases/libnice-${PV}.tar.gz" +SRC_URI[md5sum] = "5ad936c43d3c6d33117b2c64982f2fd9" +SRC_URI[sha256sum] = "06b678066f94dde595a4291588ed27acd085ee73775b8c4e8399e28c01eeefdf" + +DEPENDS = "glib-2.0 gnutls" + +PACKAGECONFIG ??= "gstreamer1.0" +PACKAGECONFIG[gupnp] = "--enable-gupnp,--disable-gupnp,gupnp-igd" +PACKAGECONFIG[gstreamer1.0] = "--with-gstreamer,--without-gstreamer,gstreamer1.0 gstreamer1.0-plugins-base" + +inherit autotools pkgconfig gtk-doc gobject-introspection + +EXTRA_OECONF += "--without-gstreamer-0.10" + +FILES_${PN} += "${libdir}/gstreamer-1.0/*.so" +FILES_${PN}-dev += "${libdir}/gstreamer-1.0/*.la" +FILES_${PN}-staticdev += "${libdir}/gstreamer-1.0/*.a" +FILES_${PN}-dbg += "${libdir}/gstreamer-1.0/.debug" + +do_configure_prepend() { + mkdir ${S}/m4 || true +} + +do_compile_append() { + for i in $(find ${B} -name "*.pc") ; do + sed -i -e s:${STAGING_DIR_TARGET}::g \ + -e s:/${TARGET_SYS}::g \ + $i + done +} diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/fltk/fltk.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/fltk/fltk.bb index ec9e04be..0d033f36 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/fltk/fltk.bb +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/fltk/fltk.bb @@ -2,10 +2,13 @@ require ${BPN}.inc DEPENDS = "alsa-lib zlib jpeg libpng libxext libxft" -inherit distro_features_check binconfig lib_package gtk-icon-cache mime +inherit features_check binconfig lib_package gtk-icon-cache mime REQUIRED_DISTRO_FEATURES = "x11" -SRC_URI += "file://0003-CMake-build-Force-shared-libs-with-unsuffixed-names.patch" +SRC_URI += " \ + file://0003-CMake-build-Force-shared-libs-with-unsuffixed-names.patch \ + file://0004-Fix-build-error-when-enable-package-config-examples.patch \ +" EXTRA_OECMAKE = " \ -DOPTION_BUILD_SHARED_LIBS=ON \ @@ -17,7 +20,7 @@ EXTRA_OECMAKE = " \ PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'opengl', d)}" -PACKAGECONFIG[examples] = "-DOPTION_BUILD_EXAMPLES=ON,-DOPTION_BUILD_EXAMPLES=OFF," +PACKAGECONFIG[examples] = "-DOPTION_BUILD_EXAMPLES=ON,-DOPTION_BUILD_EXAMPLES=OFF,fltk-native" PACKAGECONFIG[cairo] = "-DOPTION_CAIRO=ON,-DOPTION_CAIRO=OFF,cairo" PACKAGECONFIG[opengl] = "-DOPTION_USE_GL=ON,-DOPTION_USE_GL=OFF,virtual/libgl" PACKAGECONFIG[xinerama] = "-DOPTION_USE_XINERAMA=ON,-DOPTION_USE_XINERAMA=OFF,libxinerama" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/fltk/fltk/0004-Fix-build-error-when-enable-package-config-examples.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/fltk/fltk/0004-Fix-build-error-when-enable-package-config-examples.patch new file mode 100644 index 00000000..974c02fe --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/fltk/fltk/0004-Fix-build-error-when-enable-package-config-examples.patch @@ -0,0 +1,182 @@ +Fix build error when enable package config examples. + +Upstream-Status: Backport [https://github.com/fltk/fltk/commit/16774dd] + +Signed-off-by: Kai Kang + + +From 16774ddc4e000c89e560fde0ced8be9814ef041e Mon Sep 17 00:00:00 2001 +From: Albrecht Schlosser +Date: Wed, 8 Feb 2017 02:06:52 +0000 +Subject: [PATCH] Rename test/help demo program to test/help_dialog. + +This change avoids a name conflict with CMake's auto-generated target 'help' +for "Unix Makefiles", "Ninja", and supposedly other generators as well. + + +git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12171 ea41ed52-d2ee-0310-a9c1-e6b18d33e121 +--- + CMake/macros.cmake | 5 ----- + documentation/src/examples.dox | 8 +++---- + test/CMakeLists.txt | 27 +++++++++++++++++++---- + test/demo.menu | 2 +- + test/{help.cxx => help_dialog.cxx} | 6 ++--- + test/{help-test.html => help_dialog.html} | 0 + 6 files changed, 31 insertions(+), 17 deletions(-) + rename test/{help.cxx => help_dialog.cxx} (88%) + rename test/{help-test.html => help_dialog.html} (100%) + +diff --git a/CMake/macros.cmake b/CMake/macros.cmake +index 5b0d0fa..7134fcb 100644 +--- a/CMake/macros.cmake ++++ b/CMake/macros.cmake +@@ -90,11 +90,6 @@ function(CREATE_EXAMPLE NAME SOURCES LIBRARIES) + + set (tname ${NAME}) # target name + +- # rename reserved target name "help" (CMake 2.8.12 and later) +- if (${tname} MATCHES "^help$") +- set (tname "test_help") +- endif (${tname} MATCHES "^help$") +- + foreach(src ${SOURCES}) + if ("${src}" MATCHES "\\.fl$") + list(APPEND flsrcs ${src}) +diff --git a/documentation/src/examples.dox b/documentation/src/examples.dox +index 5105b7b..7961b02 100644 +--- a/documentation/src/examples.dox ++++ b/documentation/src/examples.dox +@@ -60,7 +60,7 @@ you build FLTK, unlike those in the 'test' directory shown below. + + + \ref examples_hello +- \ref examples_help ++ \ref examples_help_dialog + \ref examples_iconize + \ref examples_image + \ref examples_inactive +@@ -326,13 +326,13 @@ easily under FLTK. + tiny demo shows how little is needed to get a functioning application + running with FLTK. Quite impressive, I'd say. + +-\subsection examples_help help ++\subsection examples_help_dialog help_dialog + + \par +-\c help displays the built-in FLTK help browser. The ++\c help_dialog displays the built-in FLTK help browser. The + Fl_Help_Dialog understands a subset of html and renders + various image formats. This widget makes it easy to provide help +-pages to the user without depending on the operating system's ++pages to the user without depending on the operating system's + html browser. + + \subsection examples_iconize iconize +diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt +index 22ec9ab..4caffa5 100644 +--- a/test/CMakeLists.txt ++++ b/test/CMakeLists.txt +@@ -1,3 +1,22 @@ ++# ++# "$Id$" ++# ++# CMakeLists.txt used to build test and demo apps by the CMake build system ++# ++# Copyright 2004-2017 by Bill Spitzak and others. ++# ++# This library is free software. Distribution and use rights are outlined in ++# the file "COPYING" which should have been included with this file. If this ++# file is missing or damaged, see the license at: ++# ++# http://www.fltk.org/COPYING.php ++# ++# Please report all bugs and problems on the following page: ++# ++# http://www.fltk.org/str.php ++# ++####################################################################### ++ + set(EXECUTABLE_OUTPUT_PATH ${FLTK_BINARY_DIR}/bin/examples) + + ####################################################################### +@@ -64,7 +83,7 @@ CREATE_EXAMPLE(file_chooser file_chooser.cxx "fltk;fltk_images") + CREATE_EXAMPLE(fonts fonts.cxx fltk) + CREATE_EXAMPLE(forms forms.cxx "fltk;fltk_forms") + CREATE_EXAMPLE(hello hello.cxx fltk) +-CREATE_EXAMPLE(help help.cxx "fltk;fltk_images") ++CREATE_EXAMPLE(help_dialog help_dialog.cxx "fltk;fltk_images") + CREATE_EXAMPLE(icon icon.cxx fltk) + CREATE_EXAMPLE(iconize iconize.cxx fltk) + CREATE_EXAMPLE(image image.cxx fltk) +@@ -134,7 +153,7 @@ endif(FLTK_HAVE_CAIRO) + # Note: this is incomplete as of 11 Feb 2015 + # Todo: currently all files are copied, but some of them need configuration: + # - demo.menu: fluid can't be started (wrong path) +-# - demo.menu: help (help-test.html) can't find its images (not copied) ++# - demo.menu: help_dialog (help_dialog.html) can't find its images (not copied) + # - maybe more ... + + # prepare for a "better" test file installation path +@@ -149,11 +168,11 @@ configure_file(demo.menu ${TESTFILE_PATH}/demo.menu COPYONLY) + + # use target directory only to avoid redundancy + configure_file(rgb.txt ${TESTFILE_PATH} COPYONLY) +-configure_file(help-test.html ${TESTFILE_PATH} COPYONLY) ++configure_file(help_dialog.html ${TESTFILE_PATH} COPYONLY) + configure_file(browser.cxx ${TESTFILE_PATH} COPYONLY) + configure_file(editor.cxx ${TESTFILE_PATH} COPYONLY) + if(APPLE AND NOT OPTION_APPLE_X11) + configure_file(browser.cxx "${TESTFILE_PATH}/browser.app/Contents/Resources/browser.cxx" COPYONLY) + configure_file(rgb.txt ${TESTFILE_PATH}/colbrowser.app/Contents/Resources/rgb.txt COPYONLY) +- configure_file(help-test.html ${TESTFILE_PATH}/help.app/Contents/Resources/help-test.html COPYONLY) ++ configure_file(help_dialog.html ${TESTFILE_PATH}/help_dialog.app/Contents/Resources/help_dialog.html COPYONLY) + endif(APPLE AND NOT OPTION_APPLE_X11) +diff --git a/test/demo.menu b/test/demo.menu +index 337a71c..97e522a 100644 +--- a/test/demo.menu ++++ b/test/demo.menu +@@ -77,7 +77,7 @@ + @o:Font Tests...:@of + @of:Fonts:fonts + @of:UTF-8:utf8 +- @o:HelpDialog:help ++ @o:HelpDialog:help_dialog + @o:Input Choice:input_choice + @o:Preferences:preferences + @o:Threading:threads +diff --git a/test/help.cxx b/test/help_dialog.cxx +similarity index 88% +rename from test/help.cxx +rename to test/help_dialog.cxx +index f5c51d6..7866641 100644 +--- a/test/help.cxx ++++ b/test/help_dialog.cxx +@@ -3,7 +3,7 @@ + // + // Fl_Help_Dialog test program. + // +-// Copyright 1999-2010 by Easy Software Products. ++// Copyright 2011-2017 by Bill Spitzak and others. + // + // This library is free software. Distribution and use rights are outlined in + // the file "COPYING" which should have been included with this file. If this +@@ -46,13 +46,13 @@ main(int argc, // I - Number of command-line arguments + strcpy(buf, argv[0]); + char *slash = strrchr(buf, '/'); + if (slash) +- strcpy(slash, "/../Resources/help-test.html"); ++ strcpy(slash, "/../Resources/help_dialog.html"); + help->load(buf); + + #else + + if (argc <= 1) +- help->load("help-test.html"); ++ help->load("help_dialog.html"); + else + help->load(argv[1]); + +diff --git a/test/help-test.html b/test/help_dialog.html +similarity index 100% +rename from test/help-test.html +rename to test/help_dialog.html diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/fmt/fmt_6.0.0.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/fmt/fmt_6.0.0.bb new file mode 100644 index 00000000..c35c77b1 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/fmt/fmt_6.0.0.bb @@ -0,0 +1,15 @@ +SUMMARY = "open-source formatting library for C++" +DESCRIPTION = "{fmt} is an open-source formatting library for C++. It can be used as a safe and fast alternative to (s)printf and iostreams." +HOMEPAGE = "https://fmt.dev" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://LICENSE.rst;md5=af88d758f75f3c5c48a967501f24384b" + +SRC_URI += "git://github.com/fmtlib/fmt" +SRCREV = "7512a55aa3ae309587ca89668ef9ec4074a51a1f" + +S = "${WORKDIR}/git" + +inherit cmake +inherit ptest + +EXTRA_OECMAKE += "-DBUILD_SHARED_LIBS=ON" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/gd/gd/CVE-2019-6978.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/gd/gd/CVE-2019-6978.patch new file mode 100644 index 00000000..9beb23e8 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/gd/gd/CVE-2019-6978.patch @@ -0,0 +1,299 @@ +From 553702980ae89c83f2d6e254d62cf82e204956d0 Mon Sep 17 00:00:00 2001 +From: "Christoph M. Becker" +Date: Thu, 17 Jan 2019 11:54:55 +0100 +Subject: [PATCH] Fix #492: Potential double-free in gdImage*Ptr() + +Whenever `gdImage*Ptr()` calls `gdImage*Ctx()` and the latter fails, we +must not call `gdDPExtractData()`; otherwise a double-free would +happen. Since `gdImage*Ctx()` are void functions, and we can't change +that for BC reasons, we're introducing static helpers which are used +internally. + +We're adding a regression test for `gdImageJpegPtr()`, but not for +`gdImageGifPtr()` and `gdImageWbmpPtr()` since we don't know how to +trigger failure of the respective `gdImage*Ctx()` calls. + +This potential security issue has been reported by Solmaz Salimi (aka. +Rooney). +--- + src/gd_gif_out.c | 18 +++++++++++++++--- + src/gd_jpeg.c | 20 ++++++++++++++++---- + src/gd_wbmp.c | 21 ++++++++++++++++++--- + tests/jpeg/.gitignore | 1 + + tests/jpeg/CMakeLists.txt | 1 + + tests/jpeg/Makemodule.am | 3 ++- + tests/jpeg/jpeg_ptr_double_free.c | 31 +++++++++++++++++++++++++++++++ + 7 files changed, 84 insertions(+), 11 deletions(-) + create mode 100644 tests/jpeg/jpeg_ptr_double_free.c + +Upstream-Status: Backport [https://github.com/libgd/libgd/commit/553702980ae89c83f2d6e254d62cf82e204956d0] +CVE: CVE-2019-6978 + +Signed-off-by: Trevor Gamblin + + +diff --git a/src/gd_gif_out.c b/src/gd_gif_out.c +index 298a581..d5a9534 100644 +--- a/src/gd_gif_out.c ++++ b/src/gd_gif_out.c +@@ -99,6 +99,7 @@ static void char_init(GifCtx *ctx); + static void char_out(int c, GifCtx *ctx); + static void flush_char(GifCtx *ctx); + ++static int _gdImageGifCtx(gdImagePtr im, gdIOCtxPtr out); + + + +@@ -131,8 +132,11 @@ BGD_DECLARE(void *) gdImageGifPtr(gdImagePtr im, int *size) + void *rv; + gdIOCtx *out = gdNewDynamicCtx(2048, NULL); + if (out == NULL) return NULL; +- gdImageGifCtx(im, out); +- rv = gdDPExtractData(out, size); ++ if (!_gdImageGifCtx(im, out)) { ++ rv = gdDPExtractData(out, size); ++ } else { ++ rv = NULL; ++ } + out->gd_free(out); + return rv; + } +@@ -220,6 +224,12 @@ BGD_DECLARE(void) gdImageGif(gdImagePtr im, FILE *outFile) + + */ + BGD_DECLARE(void) gdImageGifCtx(gdImagePtr im, gdIOCtxPtr out) ++{ ++ _gdImageGifCtx(im, out); ++} ++ ++/* returns 0 on success, 1 on failure */ ++static int _gdImageGifCtx(gdImagePtr im, gdIOCtxPtr out) + { + gdImagePtr pim = 0, tim = im; + int interlace, BitsPerPixel; +@@ -231,7 +241,7 @@ BGD_DECLARE(void) gdImageGifCtx(gdImagePtr im, gdIOCtxPtr out) + based temporary image. */ + pim = gdImageCreatePaletteFromTrueColor(im, 1, 256); + if(!pim) { +- return; ++ return 1; + } + tim = pim; + } +@@ -247,6 +257,8 @@ BGD_DECLARE(void) gdImageGifCtx(gdImagePtr im, gdIOCtxPtr out) + /* Destroy palette based temporary image. */ + gdImageDestroy( pim); + } ++ ++ return 0; + } + + +diff --git a/src/gd_jpeg.c b/src/gd_jpeg.c +index fc05842..96ef430 100644 +--- a/src/gd_jpeg.c ++++ b/src/gd_jpeg.c +@@ -117,6 +117,8 @@ static void fatal_jpeg_error(j_common_ptr cinfo) + exit(99); + } + ++static int _gdImageJpegCtx(gdImagePtr im, gdIOCtx *outfile, int quality); ++ + /* + * Write IM to OUTFILE as a JFIF-formatted JPEG image, using quality + * QUALITY. If QUALITY is in the range 0-100, increasing values +@@ -231,8 +233,11 @@ BGD_DECLARE(void *) gdImageJpegPtr(gdImagePtr im, int *size, int quality) + void *rv; + gdIOCtx *out = gdNewDynamicCtx(2048, NULL); + if (out == NULL) return NULL; +- gdImageJpegCtx(im, out, quality); +- rv = gdDPExtractData(out, size); ++ if (!_gdImageJpegCtx(im, out, quality)) { ++ rv = gdDPExtractData(out, size); ++ } else { ++ rv = NULL; ++ } + out->gd_free(out); + return rv; + } +@@ -253,6 +258,12 @@ void jpeg_gdIOCtx_dest(j_compress_ptr cinfo, gdIOCtx *outfile); + + */ + BGD_DECLARE(void) gdImageJpegCtx(gdImagePtr im, gdIOCtx *outfile, int quality) ++{ ++ _gdImageJpegCtx(im, outfile, quality); ++} ++ ++/* returns 0 on success, 1 on failure */ ++static int _gdImageJpegCtx(gdImagePtr im, gdIOCtx *outfile, int quality) + { + struct jpeg_compress_struct cinfo; + struct jpeg_error_mgr jerr; +@@ -287,7 +298,7 @@ BGD_DECLARE(void) gdImageJpegCtx(gdImagePtr im, gdIOCtx *outfile, int quality) + if(row) { + gdFree(row); + } +- return; ++ return 1; + } + + cinfo.err->emit_message = jpeg_emit_message; +@@ -328,7 +339,7 @@ BGD_DECLARE(void) gdImageJpegCtx(gdImagePtr im, gdIOCtx *outfile, int quality) + if(row == 0) { + gd_error("gd-jpeg: error: unable to allocate JPEG row structure: gdCalloc returns NULL\n"); + jpeg_destroy_compress(&cinfo); +- return; ++ return 1; + } + + rowptr[0] = row; +@@ -405,6 +416,7 @@ BGD_DECLARE(void) gdImageJpegCtx(gdImagePtr im, gdIOCtx *outfile, int quality) + jpeg_finish_compress(&cinfo); + jpeg_destroy_compress(&cinfo); + gdFree(row); ++ return 0; + } + + +diff --git a/src/gd_wbmp.c b/src/gd_wbmp.c +index f19a1c9..a49bdbe 100644 +--- a/src/gd_wbmp.c ++++ b/src/gd_wbmp.c +@@ -88,6 +88,8 @@ int gd_getin(void *in) + return (gdGetC((gdIOCtx *)in)); + } + ++static int _gdImageWBMPCtx(gdImagePtr image, int fg, gdIOCtx *out); ++ + /* + Function: gdImageWBMPCtx + +@@ -100,6 +102,12 @@ int gd_getin(void *in) + out - the stream where to write + */ + BGD_DECLARE(void) gdImageWBMPCtx(gdImagePtr image, int fg, gdIOCtx *out) ++{ ++ _gdImageWBMPCtx(image, fg, out); ++} ++ ++/* returns 0 on success, 1 on failure */ ++static int _gdImageWBMPCtx(gdImagePtr image, int fg, gdIOCtx *out) + { + int x, y, pos; + Wbmp *wbmp; +@@ -107,7 +115,7 @@ BGD_DECLARE(void) gdImageWBMPCtx(gdImagePtr image, int fg, gdIOCtx *out) + /* create the WBMP */ + if((wbmp = createwbmp(gdImageSX(image), gdImageSY(image), WBMP_WHITE)) == NULL) { + gd_error("Could not create WBMP\n"); +- return; ++ return 1; + } + + /* fill up the WBMP structure */ +@@ -123,11 +131,15 @@ BGD_DECLARE(void) gdImageWBMPCtx(gdImagePtr image, int fg, gdIOCtx *out) + + /* write the WBMP to a gd file descriptor */ + if(writewbmp(wbmp, &gd_putout, out)) { ++ freewbmp(wbmp); + gd_error("Could not save WBMP\n"); ++ return 1; + } + + /* des submitted this bugfix: gdFree the memory. */ + freewbmp(wbmp); ++ ++ return 0; + } + + /* +@@ -271,8 +283,11 @@ BGD_DECLARE(void *) gdImageWBMPPtr(gdImagePtr im, int *size, int fg) + void *rv; + gdIOCtx *out = gdNewDynamicCtx(2048, NULL); + if (out == NULL) return NULL; +- gdImageWBMPCtx(im, fg, out); +- rv = gdDPExtractData(out, size); ++ if (!_gdImageWBMPCtx(im, fg, out)) { ++ rv = gdDPExtractData(out, size); ++ } else { ++ rv = NULL; ++ } + out->gd_free(out); + return rv; + } +diff --git a/tests/jpeg/.gitignore b/tests/jpeg/.gitignore +index c28aa87..13bcf04 100644 +--- a/tests/jpeg/.gitignore ++++ b/tests/jpeg/.gitignore +@@ -3,5 +3,6 @@ + /jpeg_empty_file + /jpeg_im2im + /jpeg_null ++/jpeg_ptr_double_free + /jpeg_read + /jpeg_resolution +diff --git a/tests/jpeg/CMakeLists.txt b/tests/jpeg/CMakeLists.txt +index 19964b0..a8d8162 100644 +--- a/tests/jpeg/CMakeLists.txt ++++ b/tests/jpeg/CMakeLists.txt +@@ -2,6 +2,7 @@ IF(JPEG_FOUND) + LIST(APPEND TESTS_FILES + jpeg_empty_file + jpeg_im2im ++ jpeg_ptr_double_free + jpeg_null + ) + +diff --git a/tests/jpeg/Makemodule.am b/tests/jpeg/Makemodule.am +index 7e5d317..b89e169 100644 +--- a/tests/jpeg/Makemodule.am ++++ b/tests/jpeg/Makemodule.am +@@ -2,7 +2,8 @@ if HAVE_LIBJPEG + libgd_test_programs += \ + jpeg/jpeg_empty_file \ + jpeg/jpeg_im2im \ +- jpeg/jpeg_null ++ jpeg/jpeg_null \ ++ jpeg/jpeg_ptr_double_free + + if HAVE_LIBPNG + libgd_test_programs += \ +diff --git a/tests/jpeg/jpeg_ptr_double_free.c b/tests/jpeg/jpeg_ptr_double_free.c +new file mode 100644 +index 0000000..df5a510 +--- /dev/null ++++ b/tests/jpeg/jpeg_ptr_double_free.c +@@ -0,0 +1,31 @@ ++/** ++ * Test that failure to convert to JPEG returns NULL ++ * ++ * We are creating an image, set its width to zero, and pass this image to ++ * `gdImageJpegPtr()` which is supposed to fail, and as such should return NULL. ++ * ++ * See also ++ */ ++ ++ ++#include "gd.h" ++#include "gdtest.h" ++ ++ ++int main() ++{ ++ gdImagePtr src, dst; ++ int size; ++ ++ src = gdImageCreateTrueColor(1, 10); ++ gdTestAssert(src != NULL); ++ ++ src->sx = 0; /* this hack forces gdImageJpegPtr() to fail */ ++ ++ dst = gdImageJpegPtr(src, &size, 0); ++ gdTestAssert(dst == NULL); ++ ++ gdImageDestroy(src); ++ ++ return gdNumFailures(); ++} +-- +2.17.1 + diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/gd/gd_2.2.5.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/gd/gd_2.2.5.bb index c846bda6..35f9bb25 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/gd/gd_2.2.5.bb +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/gd/gd_2.2.5.bb @@ -16,6 +16,7 @@ DEPENDS = "freetype libpng jpeg zlib tiff" SRC_URI = "git://github.com/libgd/libgd.git;branch=GD-2.2 \ file://0001-annotate.c-gdft.c-Replace-strncpy-with-memccpy-to-fi.patch \ file://CVE-2018-1000222.patch \ + file://CVE-2019-6978.patch \ " SRCREV = "8255231b68889597d04d451a72438ab92a405aba" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/gflags/gflags_2.2.0.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/gflags/gflags_2.2.0.bb deleted file mode 100644 index 29a1125c..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/gflags/gflags_2.2.0.bb +++ /dev/null @@ -1,20 +0,0 @@ -DESCRIPTION = "The gflags package contains a C++ library that implements commandline flags processing. It includes built-in support for standard types such as string and the ability to define flags in the source file in which they are used" -HOMEPAGE = "https://github.com/gflags/gflags" -LICENSE = "BSD-3-Clause" -LIC_FILES_CHKSUM = "file://COPYING.txt;md5=c80d1a3b623f72bb85a4c75b556551df" - -SRC_URI = "git://github.com/gflags/gflags.git" -SRCREV = "f8a0efe03aa69b3336d8e228b37d4ccb17324b88" - -S = "${WORKDIR}/git" - -inherit cmake - -EXTRA_OECMAKE="-DBUILD_SHARED_LIBS=ON -DREGISTER_INSTALL_PREFIX=OFF -DLIB_INSTALL_DIR=${baselib}" - -PACKAGES =+ "${PN}-bash-completion" -FILES_${PN}-bash-completion += "${bindir}/gflags_completions.sh" - -RDEPENDS_${PN}-bash-completion = "bash bash-completion" - -BBCLASSEXTEND = "native nativesdk" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/gflags/gflags_2.2.2.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/gflags/gflags_2.2.2.bb new file mode 100644 index 00000000..6eea0c00 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/gflags/gflags_2.2.2.bb @@ -0,0 +1,20 @@ +DESCRIPTION = "The gflags package contains a C++ library that implements commandline flags processing. It includes built-in support for standard types such as string and the ability to define flags in the source file in which they are used" +HOMEPAGE = "https://github.com/gflags/gflags" +LICENSE = "BSD-3-Clause" +LIC_FILES_CHKSUM = "file://COPYING.txt;md5=c80d1a3b623f72bb85a4c75b556551df" + +SRC_URI = "git://github.com/gflags/gflags.git" +SRCREV = "e171aa2d15ed9eb17054558e0b3a6a413bb01067" + +S = "${WORKDIR}/git" + +inherit cmake + +EXTRA_OECMAKE="-DBUILD_SHARED_LIBS=ON -DREGISTER_INSTALL_PREFIX=OFF -DLIB_INSTALL_DIR=${baselib}" + +PACKAGES =+ "${PN}-bash-completion" +FILES_${PN}-bash-completion += "${bindir}/gflags_completions.sh" + +RDEPENDS_${PN}-bash-completion = "bash bash-completion" + +BBCLASSEXTEND = "native nativesdk" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/glog/glog_0.3.5.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/glog/glog_0.3.5.bb index 3de01ef5..70eef720 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/glog/glog_0.3.5.bb +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/glog/glog_0.3.5.bb @@ -9,7 +9,7 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=dc9db360e0bbd4e46672f3fd91dd6c4b" DEPENDS = "libunwind" SRC_URI = " \ - git://github.com/google/glog.git;branch=v035 \ + git://github.com/google/glog.git;nobranch=1 \ file://0001-Rework-CMake-glog-VERSION-management.patch \ file://0002-Find-Libunwind-during-configure.patch \ file://0003-installation-path-fix.patch \ diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/gperftools/gperftools_2.7.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/gperftools/gperftools_2.7.bb index c8b91278..ee34acec 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/gperftools/gperftools_2.7.bb +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/gperftools/gperftools_2.7.bb @@ -1,8 +1,7 @@ SUMMARY = "Fast, multi-threaded malloc() and nifty performance analysis tools" HOMEPAGE = "https://github.com/gperftools/gperftools" -LICENSE = "BSD" +LICENSE = "BSD-3-Clause" LIC_FILES_CHKSUM = "file://COPYING;md5=762732742c73dc6c7fbe8632f06c059a" -DEPENDS += "libunwind" SRCREV = "9608fa3bcf8020d35f59fbf70cd3cbe4b015b972" SRC_URI = "git://github.com/gperftools/gperftools \ @@ -20,7 +19,7 @@ S = "${WORKDIR}/git" # On mips, we have the following error. # do_page_fault(): sending SIGSEGV to ls for invalid read access from 00000008 # Segmentation fault (core dumped) -COMPATIBLE_HOST_mipsarch_libc-glibc = "null" +COMPATIBLE_HOST_mipsarch = "null" # Disable thumb1 # {standard input}: Assembler messages: # {standard input}:434: Error: lo register required -- `ldr pc,[sp]' @@ -28,3 +27,18 @@ COMPATIBLE_HOST_mipsarch_libc-glibc = "null" ARM_INSTRUCTION_SET_armv5 = "arm" ARM_INSTRUCTION_SET_toolchain-clang_arm = "arm" +PACKAGECONFIG ?= "libunwind static" +PACKAGECONFIG_remove_arm_libc-musl = "libunwind" + +PACKAGECONFIG[libunwind] = "--enable-libunwind,--disable-libunwind,libunwind" +PACKAGECONFIG[static] = "--enable-static,--disable-static," + +PACKAGE_BEFORE_PN += "libtcmalloc-minimal" +FILES_libtcmalloc-minimal = "${libdir}/libtcmalloc_minimal*${SOLIBS} ${libdir}/libtcmalloc_minimal_debug*${SOLIBS}" + +# pprof tool requires Getopt::long and POSIX perl5 modules. +# Also runs `objdump` on each cpuprofile data file +RDEPENDS_${PN} += "binutils perl-module-getopt-long perl-module-posix" + +RDEPENDS_${PN} += "libtcmalloc-minimal (= ${EXTENDPKGV})" + diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/gradm/gradm_3.1-201903191516.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/gradm/gradm_3.1-201903191516.bb new file mode 100644 index 00000000..7ed46f82 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/gradm/gradm_3.1-201903191516.bb @@ -0,0 +1,50 @@ +SUMMARY = "Administration program for the grsecurity RBAC syste" +DESCRIPTION = "\ +gradm is the userspace RBAC parsing and authentication program for \ +grsecurity grsecurity aims to be a complete security system. gradm \ +performs several tasks for the RBAC system including authenticated \ +via a password to the kernel and parsing rules to be passed to the \ +kernel" +HOMEPAGE = "http://grsecurity.net/index.php" +SECTION = "admin" +LICENSE = "GPL-2.0" +LIC_FILES_CHKSUM = "file://LICENSE;md5=4641e94ec96f98fabc56ff9cc48be14b" +DEPENDS = "flex-native bison-native ${@bb.utils.contains('DISTRO_FEATURES', 'pam', 'libpam', '', d)}" + +SRC_URI = "http://grsecurity.net/stable/${BP}.tar.gz \ + file://0001-Makefile-remove-strip.patch \ + file://0001-Makefile-Append-instead-of-overriding-LDFLAGS.patch \ + " +SRC_URI[md5sum] = "5099c715433981d5a3eed8ded7c5bbc0" +SRC_URI[sha256sum] = "d3a0b6383ff97a2054941d71133c737efae66afdd8eef59346c031ae15c75ff3" + +S = "${WORKDIR}/gradm" + +inherit autotools-brokensep + +do_compile() { + oe_runmake 'CC=${CC}' \ + 'LIBS=' \ + 'OPT_FLAGS=${CFLAGS}' \ + 'LLEX=${STAGING_BINDIR_NATIVE}/lex' \ + 'FLEX=${STAGING_BINDIR_NATIVE}/flex' \ + 'BISON=${STAGING_BINDIR_NATIVE}/bison' \ + ${@bb.utils.contains('DISTRO_FEATURES', 'pam', ' ', 'nopam', d)} +} + +do_install() { + oe_runmake 'CC=${CC}' \ + 'DESTDIR=${D}' \ + 'LIBS=' \ + 'LLEX=${STAGING_BINDIR_NATIVE}/lex' \ + 'FLEX=${STAGING_BINDIR_NATIVE}/flex' \ + 'BISON=${STAGING_BINDIR_NATIVE}/bison' \ + install + + # The device nodes are generated by postinstall or udev + rm -rf ${D}/dev +} + +pkg_postinst_ontarget_${PN}() { + /bin/mknod -m 0622 /dev/grsec c 1 13 +} diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/gradm/gradm_3.1.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/gradm/gradm_3.1.bb deleted file mode 100644 index a7d0607f..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/gradm/gradm_3.1.bb +++ /dev/null @@ -1,48 +0,0 @@ -SUMMARY = "Administration program for the grsecurity RBAC syste" -DESCRIPTION = "\ -gradm is the userspace RBAC parsing and authentication program for \ -grsecurity grsecurity aims to be a complete security system. gradm \ -performs several tasks for the RBAC system including authenticated \ -via a password to the kernel and parsing rules to be passed to the \ -kernel" -HOMEPAGE = "http://grsecurity.net/index.php" -SECTION = "admin" -LICENSE = "GPL-2.0" -LIC_FILES_CHKSUM = "file://LICENSE;md5=4641e94ec96f98fabc56ff9cc48be14b" -DEPENDS = "flex-native bison-native ${@bb.utils.contains('DISTRO_FEATURES', 'pam', 'libpam', '', d)}" - -SRC_URI = "http://grsecurity.net/stable/${BP}-201507191652.tar.gz \ - file://0001-Makefile-remove-strip.patch \ - file://0001-Makefile-Append-instead-of-overriding-LDFLAGS.patch \ - " -SRC_URI[md5sum] = "ecec72d3a9b6d84c00eda97957b707b6" -SRC_URI[sha256sum] = "2f14c357bf0459e502a4e108b76c3f6240aa484762d07bb1687796b9b9297a50" - -S = "${WORKDIR}/gradm" - -inherit autotools-brokensep - -do_compile() { - oe_runmake 'CC=${CC}' \ - 'OPT_FLAGS=${CFLAGS}' \ - 'LLEX=${STAGING_BINDIR_NATIVE}/lex' \ - 'FLEX=${STAGING_BINDIR_NATIVE}/flex' \ - 'BISON=${STAGING_BINDIR_NATIVE}/bison' \ - ${@bb.utils.contains('DISTRO_FEATURES', 'pam', ' ', 'nopam', d)} -} - -do_install() { - oe_runmake 'CC=${CC}' \ - 'DESTDIR=${D}' \ - 'LLEX=${STAGING_BINDIR_NATIVE}/lex' \ - 'FLEX=${STAGING_BINDIR_NATIVE}/flex' \ - 'BISON=${STAGING_BINDIR_NATIVE}/bison' \ - install - - # The device nodes are generated by postinstall or udev - rm -rf ${D}/dev -} - -pkg_postinst_ontarget_${PN}() { - /bin/mknod -m 0622 /dev/grsec c 1 13 -} diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/gsl/gsl_2.5.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/gsl/gsl_2.5.bb deleted file mode 100644 index 4e854181..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/gsl/gsl_2.5.bb +++ /dev/null @@ -1,6 +0,0 @@ -include gsl.inc - -SRC_URI = "${GNU_MIRROR}/gsl/gsl-${PV}.tar.gz" - -SRC_URI[md5sum] = "52fcbe147ba413d78841084cb43c95fb" -SRC_URI[sha256sum] = "0460ad7c2542caaddc6729762952d345374784100223995eb14d614861f2258d" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/gsl/gsl_2.6.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/gsl/gsl_2.6.bb new file mode 100644 index 00000000..367a0832 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/gsl/gsl_2.6.bb @@ -0,0 +1,5 @@ +include gsl.inc + +SRC_URI = "${GNU_MIRROR}/gsl/gsl-${PV}.tar.gz" +SRC_URI[md5sum] = "bda73a3dd5ff2f30b5956764399db6e7" +SRC_URI[sha256sum] = "b782339fc7a38fe17689cb39966c4d821236c28018b6593ddb6fd59ee40786a8" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/gsoap/gsoap/0001-Fix-out-of-tree-builds.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/gsoap/gsoap/0001-Fix-out-of-tree-builds.patch deleted file mode 100644 index 5ceb4bf0..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/gsoap/gsoap/0001-Fix-out-of-tree-builds.patch +++ /dev/null @@ -1,178 +0,0 @@ -From 8a10b6bd556426616e93f15639f369defbeca33f Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Mon, 14 Aug 2017 11:58:58 -0700 -Subject: [PATCH] Fix out of tree builds - -When build dir is not same as sourcedir then the build failed due -to use of $(srcdir) variable which assumes source = build therefore -replace that with top_srcdir - -Additionally move the conditional addition of sources to Makefile.am -instead of adding it in configure.ac, since then we can use top_srcdir -variable to access those sources too otherwise its not possible to -specify the right dir for these sources - -Signed-off-by: Khem Raj ---- -Upstream-Status: Submitted[https://sourceforge.net/p/gsoap2/patches/171/] - - configure.ac | 5 +++-- - gsoap/Makefile.am | 14 +++++++------- - gsoap/samples/autotest/Makefile.am | 8 ++++---- - gsoap/samples/databinding/Makefile.am | 8 ++++---- - gsoap/wsdl/Makefile.am | 15 +++++++++------ - 5 files changed, 27 insertions(+), 23 deletions(-) - -diff --git a/configure.ac b/configure.ac -index 0631c18..c36e696 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -265,7 +265,7 @@ if test "x$with_openssl" = "xyes"; then - WSDL2H_EXTRA_FLAGS="-DWITH_OPENSSL -DWITH_GZIP" - # an ugly hack to get httpda and smdevp plugins to conditionally - # compile with wsdl2h when OPENSSL is available -- WSDL2H_EXTRA_LIBS="${WSDL2H_EXTRA_LIBS} ../plugin/httpda.c ../plugin/smdevp.c ../plugin/threads.c -lssl -lcrypto -lz" -+ WSDL2H_EXTRA_LIBS="${WSDL2H_EXTRA_LIBS} -lssl -lcrypto -lz" - SAMPLE_INCLUDES= - SAMPLE_SSL_LIBS="-lssl -lcrypto -lz" - WSDL2H_SOAP_CPP_LIB="libgsoapssl++.a" -@@ -289,12 +289,13 @@ else - SAMPLE_INCLUDES= - WSDL2H_SOAP_CPP_LIB="libgsoap++.a" - fi -+AM_CONDITIONAL(WITH_OPENSSL, test "x$with_openssl" = "xyes" -a "x$with_gnutls" != "xyes") -+AC_SUBST(WITH_OPENSSL) - AC_SUBST(WSDL2H_EXTRA_FLAGS) - AC_SUBST(WSDL2H_EXTRA_LIBS) - AC_SUBST(SAMPLE_INCLUDES) - AC_SUBST(SAMPLE_SSL_LIBS) - AC_SUBST(WSDL2H_SOAP_CPP_LIB) -- - # enable the compile of the samples - AC_ARG_ENABLE(samples, - [ --enable-samples enable compile for the gsoap samples], -diff --git a/gsoap/Makefile.am b/gsoap/Makefile.am -index 7273b82..9c0c89f 100644 ---- a/gsoap/Makefile.am -+++ b/gsoap/Makefile.am -@@ -13,26 +13,26 @@ AM_CXXFLAGS = $(SOAPCPP2_DEBUG) -D$(platform) - AM_CFLAGS = $(SOAPCPP2_DEBUG) -D$(platform) - - # Install all soapcpp2 and wsdl2h files into ${prefix}/share/gsoap --nobase_pkgdata_DATA = $(srcdir)/import/* $(srcdir)/plugin/* $(srcdir)/WS/* $(srcdir)/custom/* $(srcdir)/extras/* -+nobase_pkgdata_DATA = $(top_srcdir)/gsoap/import/* $(top_srcdir)/gsoap/plugin/* $(top_srcdir)/gsoap/WS/* $(top_srcdir)/gsoap/custom/* $(top_srcdir)/gsoap/extras/* - - ## we cannot build stdsoap2.o from 2 different sources (stdsoap2.cpp and stdsoap2.c), so we need an intermediate target: - stdsoap2_ck.c: stdsoap2.cpp -- $(LN_S) -f $(srcdir)/stdsoap2.cpp stdsoap2_ck.c -+ $(LN_S) -f $(top_srcdir)/gsoap/stdsoap2.cpp stdsoap2_ck.c - - stdsoap2_cpp.cpp: stdsoap2.cpp -- $(LN_S) -f $(srcdir)/stdsoap2.cpp stdsoap2_cpp.cpp -+ $(LN_S) -f $(top_srcdir)/gsoap/stdsoap2.cpp stdsoap2_cpp.cpp - - stdsoap2_ck_cpp.cpp: stdsoap2.cpp -- $(LN_S) -f $(srcdir)/stdsoap2.cpp stdsoap2_ck_cpp.cpp -+ $(LN_S) -f $(top_srcdir)/gsoap/stdsoap2.cpp stdsoap2_ck_cpp.cpp - - stdsoap2_ssl.c: stdsoap2.cpp -- $(LN_S) -f $(srcdir)/stdsoap2.cpp stdsoap2_ssl.c -+ $(LN_S) -f $(top_srcdir)/gsoap/stdsoap2.cpp stdsoap2_ssl.c - - stdsoap2_ssl_cpp.cpp: stdsoap2.cpp -- $(LN_S) -f $(srcdir)/stdsoap2.cpp stdsoap2_ssl_cpp.cpp -+ $(LN_S) -f $(top_srcdir)/gsoap/stdsoap2.cpp stdsoap2_ssl_cpp.cpp - ## do the same fo dom.cpp since we want to link it into the cpp libs and dom.c into the c libs - dom_cpp.cpp: dom.cpp -- $(LN_S) -f $(srcdir)/dom.cpp dom_cpp.cpp -+ $(LN_S) -f $(top_srcdir)/gsoap/dom.cpp dom_cpp.cpp - - lib_LIBRARIES = libgsoap.a libgsoap++.a libgsoapck.a libgsoapck++.a libgsoapssl.a libgsoapssl++.a - -diff --git a/gsoap/samples/autotest/Makefile.am b/gsoap/samples/autotest/Makefile.am -index 36adf51..61e514c 100644 ---- a/gsoap/samples/autotest/Makefile.am -+++ b/gsoap/samples/autotest/Makefile.am -@@ -6,13 +6,13 @@ - AUTOMAKE_OPTIONS = subdir-objects foreign 1.4 - - CPPFLAGS=-I$(top_srcdir)/gsoap -I$(top_srcdir)/gsoap/plugin --AM_LDFLAGS=$(CPPFLAGS) -I$(srcdir) -L$(srcdir) -+AM_LDFLAGS=$(CPPFLAGS) -I$(top_srcdir)/gsoap/samples/autotest -L$(top_srcdir)/gsoap/samples/autotest - SOAP=$(top_srcdir)/gsoap/src/soapcpp2$(EXEEXT) - WSDL=$(top_srcdir)/gsoap/wsdl/wsdl2h$(EXEEXT) --WSDL_FLAGS=-d -P -t $(srcdir)/typemap.dat -+WSDL_FLAGS=-d -P -t $(top_srcdir)/gsoap/samples/autotest/typemap.dat - SOAP_FLAGS=-SL -T -I$(top_srcdir)/gsoap/import -I$(top_srcdir)/gsoap/custom --WSDLINPUT=$(srcdir)/examples.wsdl --SOAPHEADER=$(srcdir)/examples.h -+WSDLINPUT=$(top_srcdir)/gsoap/samples/autotest/examples.wsdl -+SOAPHEADER=$(top_srcdir)/gsoap/samples/autotest/examples.h - SOAP_CPP_SRC=soapC.cpp soapServer.cpp - SOAP_CPP_LIB=$(top_builddir)/gsoap/libgsoap++.a - -diff --git a/gsoap/samples/databinding/Makefile.am b/gsoap/samples/databinding/Makefile.am -index 892d4fd..86ad482 100644 ---- a/gsoap/samples/databinding/Makefile.am -+++ b/gsoap/samples/databinding/Makefile.am -@@ -6,13 +6,13 @@ - AUTOMAKE_OPTIONS = subdir-objects foreign 1.4 - - CPPFLAGS=$(SAMPLE_INCLUDES) -I$(top_srcdir)/gsoap -I$(top_srcdir)/gsoap/plugin --AM_LDFLAGS=$(AM_CPPFLAGS) -I$(srcdir) -L$(srcdir) -+AM_LDFLAGS=$(AM_CPPFLAGS) -I$(top_srcdir)/gsoap/samples/databinding -L$(top_srcdir)/gsoap/samples/databinding - SOAP=$(top_srcdir)/gsoap/src/soapcpp2$(EXEEXT) - WSDL=$(top_srcdir)/gsoap/wsdl/wsdl2h$(EXEEXT) --WSDL_FLAGS=-g -t $(srcdir)/addresstypemap.dat -+WSDL_FLAGS=-g -t $(top_srcdir)/gsoap/samples/databinding/addresstypemap.dat - SOAP_FLAGS=-0 -CS -p address -I$(top_srcdir)/gsoap/import --WSDLINPUT=$(srcdir)/address.xsd --SOAPHEADER=$(srcdir)/address.h -+WSDLINPUT=$(top_srcdir)/gsoap/samples/databinding/address.xsd -+SOAPHEADER=$(top_srcdir)/gsoap/samples/databinding/address.h - SOAP_CPP_SRC=addressC.cpp - SOAP_CPP_LIB=$(top_builddir)/gsoap/libgsoap++.a - -diff --git a/gsoap/wsdl/Makefile.am b/gsoap/wsdl/Makefile.am -index b8da5db..9f2aefa 100644 ---- a/gsoap/wsdl/Makefile.am -+++ b/gsoap/wsdl/Makefile.am -@@ -6,14 +6,14 @@ - AUTOMAKE_OPTIONS = foreign 1.4 - - # INCLUDES=-I$(top_srcdir)/gsoap --# AM_LDFLAGS=$(INCLUDES) -I$(srcdir) -L$(srcdir) --AM_LDFLAGS=-L$(srcdir) -I$(top_srcdir)/gsoap -I$(top_srcdir)/gsoap/plugin -+# AM_LDFLAGS=$(INCLUDES) -I$(top_srcdir)/gsoap/wsdl -L$(top_srcdir)/gsoap/wsdl -+AM_LDFLAGS=-L$(top_srcdir)/gsoap/wsdl -I$(top_srcdir)/gsoap -I$(top_srcdir)/gsoap/plugin - AM_CPPFLAGS=-I$(top_srcdir)/gsoap -I$(top_srcdir)/gsoap/plugin - SOAP=$(top_builddir)/gsoap/src/soapcpp2$(EXEEXT) - SOAP_CPP_LIB=$(top_builddir)/gsoap/$(WSDL2H_SOAP_CPP_LIB) - SOAP_CPP_SRC=wsdlC.cpp --SOAPHEADER=$(srcdir)/wsdl.h --SOAP_FLAGS=-SC -pwsdl -I$(srcdir) -I$(top_srcdir)/gsoap/import -+SOAPHEADER=$(top_srcdir)/gsoap/wsdl/wsdl.h -+SOAP_FLAGS=-SC -pwsdl -I$(top_srcdir)/gsoap/wsdl -I$(top_srcdir)/gsoap/import - BUILT_SOURCES=$(SOAP_CPP_SRC) - # WSDL2H_EXTRA_FLAGS=-DWITH_OPENSSL -DWITH_GZIP # defined in configure.in - # WSDL2H_EXTRA_LIBS=-lssl -lcrypto -lz # defined in configure.in -@@ -24,11 +24,14 @@ $(SOAP_CPP_SRC) : $(SOAPHEADER) - #LIBS= - - bin_PROGRAMS=wsdl2h -- -+if WITH_OPENSSL -+wsdl2h_LDADD=$(SOAP_CPP_LIB) $(top_srcdir)/gsoap/plugin/httpda.c $(top_srcdir)/gsoap/plugin/smdevp.c $(top_srcdir)/gsoap/plugin/threads.c $(WSDL2H_EXTRA_LIBS) -+else -+wsdl2h_LDADD=$(SOAP_CPP_LIB) $(WSDL2H_EXTRA_LIBS) -+endif - wsdl2h_CFLAGS=$(C_DEBUG_FLAGS) $(SOAPCPP2_NO_C_LOCALE) $(WSDL2H_EXTRA_FLAGS) - wsdl2h_CXXFLAGS=$(C_DEBUG_FLAGS) $(SOAPCPP2_NO_C_LOCALE) $(WSDL2H_EXTRA_FLAGS) $(WSDL2H_IMPORTPATH) - wsdl2h_CPPFLAGS=$(AM_CPPFLAGS) $(SOAPCPP2_NONAMESPACES) -D$(platform) - wsdl2h_SOURCES=wsdl2h.cpp wsdl.cpp wadl.cpp schema.cpp types.cpp service.cpp soap.cpp mime.cpp wsp.cpp bpel.cpp $(SOAP_CPP_SRC) --wsdl2h_LDADD=$(SOAP_CPP_LIB) $(WSDL2H_EXTRA_LIBS) - - CLEANFILES= *~ *C.cpp *H.h *Stub.h *.nsmap --- -2.14.1 - diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/gsoap/gsoap/0001-stdgsoap2-Fix-build-with-musl.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/gsoap/gsoap/0001-stdgsoap2-Fix-build-with-musl.patch deleted file mode 100644 index 571cbe54..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/gsoap/gsoap/0001-stdgsoap2-Fix-build-with-musl.patch +++ /dev/null @@ -1,63 +0,0 @@ -From db260fbc7af4c73c997c485a0c69c61594a0e59c Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Wed, 30 Aug 2017 19:48:50 -0700 -Subject: [PATCH] stdgsoap2: Fix build with musl - -Signed-off-by: Khem Raj ---- - gsoap/stdsoap2.c | 2 +- - gsoap/stdsoap2.cpp | 4 ++-- - gsoap/stdsoap2.h | 2 +- - 3 files changed, 4 insertions(+), 4 deletions(-) - -diff --git a/gsoap/stdsoap2.c b/gsoap/stdsoap2.c -index 58e9df4..62389e1 100644 ---- a/gsoap/stdsoap2.c -+++ b/gsoap/stdsoap2.c -@@ -4462,7 +4462,7 @@ tcp_gethost(struct soap *soap, const char *addr, struct in_addr *inaddr) - return soap->error = SOAP_EOM; - return SOAP_OK; - } --#if defined(__GLIBC__) || (defined(HAVE_GETHOSTBYNAME_R) && (defined(FREEBSD) || defined(__FreeBSD__))) || defined(__ANDROID__) -+#if defined(LINUX) || (defined(HAVE_GETHOSTBYNAME_R) && (defined(FREEBSD) || defined(__FreeBSD__))) || defined(__ANDROID__) - if (gethostbyname_r(addr, &hostent, soap->buf, sizeof(soap->buf), &host, &soap->errnum) < 0) - host = NULL; - #elif defined(_AIX43) || ((defined(TRU64) || defined(HP_UX)) && defined(HAVE_GETHOSTBYNAME_R)) -diff --git a/gsoap/stdsoap2.cpp b/gsoap/stdsoap2.cpp -index 58e9df4..b637161 100644 ---- a/gsoap/stdsoap2.cpp -+++ b/gsoap/stdsoap2.cpp -@@ -4462,7 +4462,7 @@ tcp_gethost(struct soap *soap, const char *addr, struct in_addr *inaddr) - return soap->error = SOAP_EOM; - return SOAP_OK; - } --#if defined(__GLIBC__) || (defined(HAVE_GETHOSTBYNAME_R) && (defined(FREEBSD) || defined(__FreeBSD__))) || defined(__ANDROID__) -+#if defined(LINUX) || (defined(HAVE_GETHOSTBYNAME_R) && (defined(FREEBSD) || defined(__FreeBSD__))) || defined(__ANDROID__) - if (gethostbyname_r(addr, &hostent, soap->buf, sizeof(soap->buf), &host, &soap->errnum) < 0) - host = NULL; - #elif defined(_AIX43) || ((defined(TRU64) || defined(HP_UX)) && defined(HAVE_GETHOSTBYNAME_R)) -@@ -19658,7 +19658,7 @@ soap_strerror(struct soap *soap) - { - #ifndef WIN32 - # ifdef HAVE_STRERROR_R --# if defined(_GNU_SOURCE) && !defined(__ANDROID__) -+# if defined(_GNU_SOURCE) && !defined(__ANDROID__) && defined(__GLIBC__) - return strerror_r(err, soap->msgbuf, sizeof(soap->msgbuf)); /* GNU-specific */ - # else - strerror_r(err, soap->msgbuf, sizeof(soap->msgbuf)); /* XSI-compliant */ -diff --git a/gsoap/stdsoap2.h b/gsoap/stdsoap2.h -index 07a3952..c6ace4c 100644 ---- a/gsoap/stdsoap2.h -+++ b/gsoap/stdsoap2.h -@@ -947,7 +947,7 @@ extern "C" { - # endif - #elif defined(SOCKLEN_T) - # define SOAP_SOCKLEN_T SOCKLEN_T --#elif defined(__socklen_t_defined) || defined(_SOCKLEN_T) || defined(CYGWIN) || defined(FREEBSD) || defined(__FreeBSD__) || defined(OPENBSD) || defined(__QNX__) || defined(QNX) || defined(OS390) || defined(__ANDROID__) || defined(_XOPEN_SOURCE) -+#elif defined(__socklen_t_defined) || defined(_SOCKLEN_T) || defined(CYGWIN) || defined(FREEBSD) || defined(__FreeBSD__) || defined(OPENBSD) || defined(__QNX__) || defined(QNX) || defined(OS390) || defined(__ANDROID__) || defined(_XOPEN_SOURCE) || defined (LINUX) - # define SOAP_SOCKLEN_T socklen_t - #elif defined(IRIX) || defined(WIN32) || defined(__APPLE__) || defined(SUN_OS) || defined(OPENSERVER) || defined(TRU64) || defined(VXWORKS) - # define SOAP_SOCKLEN_T int --- -2.14.1 - diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/gsoap/gsoap_2.8.51.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/gsoap/gsoap_2.8.51.bb deleted file mode 100644 index 36530d2d..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/gsoap/gsoap_2.8.51.bb +++ /dev/null @@ -1,44 +0,0 @@ -DESCRIPTION = "The gSOAP toolkit provides a unique SOAP-to-C/C++ language binding \ -for the development of SOAP Web Services and clients." -SECTION = "devel" -LICENSE = "GPL-2.0-with-OpenSSL-exception" -LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=4f40a941379143186f9602242c3fb729 \ - file://GPLv2_license.txt;md5=a33672dbe491b6517750a0389063508b" - -SRC_URI = "${SOURCEFORGE_MIRROR}/${BPN}2/${BPN}_${PV}.zip \ - file://0001-Fix-out-of-tree-builds.patch \ - file://0001-stdgsoap2-Fix-build-with-musl.patch \ - " -SRC_URI[md5sum] = "212951d6e1435bb51fa4320f458809ea" -SRC_URI[sha256sum] = "3e7bb24a9e492f5cb86daca34054c9787152f1d7b70add36b789d03816d5ffa1" - -inherit autotools - -BBCLASSEXTEND = "native" - -S = "${WORKDIR}/${BPN}-2.8" - -PARALLEL_MAKE = "" - -EXTRA_OEMAKE_class-target = "SOAP=${STAGING_BINDIR_NATIVE}/soapcpp2" - -DEPENDS = "openssl zlib flex bison bison-native" -DEPENDS_append_class-target = " gsoap-native" - -do_install_append() { - install -d ${D}${libdir} - for lib in libgsoapssl libgsoapssl++ libgsoap libgsoapck++ libgsoap++ libgsoapck - do - oe_libinstall -C gsoap $lib ${D}${libdir} - done -} - -do_install_class-native() { - oe_runmake DESTDIR=${D} BINDIR=${D}${bindir} install -} - -FILES_${PN} = "${bindir}/wsdl2h ${bindir}/soapcpp2" -FILES_${PN} += "${datadir}" -FILES_${PN}-staticdev = "${libdir}" -FILES_${PN}-dev = "${includedir}" -RRECOMMENDS_${PN}-dev = "${PN}-staticdev" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/gsoap/gsoap_2.8.95.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/gsoap/gsoap_2.8.95.bb new file mode 100644 index 00000000..22a04989 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/gsoap/gsoap_2.8.95.bb @@ -0,0 +1,42 @@ +DESCRIPTION = "The gSOAP toolkit provides a unique SOAP-to-C/C++ language binding \ +for the development of SOAP Web Services and clients." +SECTION = "devel" +LICENSE = "GPL-2.0-with-OpenSSL-exception" +LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=4f40a941379143186f9602242c3fb729 \ + file://GPLv2_license.txt;md5=a33672dbe491b6517750a0389063508b" + +SRC_URI = "${SOURCEFORGE_MIRROR}/${BPN}2/${BPN}_${PV}.zip \ + " +SRC_URI[md5sum] = "88031646018d60857f21246962d10011" +SRC_URI[sha256sum] = "fe07aa152cd946ef8ebd3f87653f14c1d38efe7c6e6fce8c6f773c4814f79baf" + +inherit autotools + +BBCLASSEXTEND = "native" + +S = "${WORKDIR}/${BPN}-2.8" + +PARALLEL_MAKE = "" + +EXTRA_OEMAKE_class-target = "SOAP=${STAGING_BINDIR_NATIVE}/soapcpp2" + +DEPENDS = "openssl zlib flex bison bison-native" +DEPENDS_append_class-target = " gsoap-native" + +do_install_append() { + install -d ${D}${libdir} + for lib in libgsoapssl libgsoapssl++ libgsoap libgsoapck++ libgsoap++ libgsoapck + do + oe_libinstall -C gsoap $lib ${D}${libdir} + done +} + +do_install_class-native() { + oe_runmake DESTDIR=${D} BINDIR=${D}${bindir} install +} + +FILES_${PN} = "${bindir}/wsdl2h ${bindir}/soapcpp2" +FILES_${PN} += "${datadir}" +FILES_${PN}-staticdev = "${libdir}" +FILES_${PN}-dev = "${includedir}" +RRECOMMENDS_${PN}-dev = "${PN}-staticdev" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/hddtemp/hddtemp/0001-configure.ac-Rename-to-configure.ac-and-use-external.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/hddtemp/hddtemp/0001-configure.ac-Rename-to-configure.ac-and-use-external.patch new file mode 100644 index 00000000..d2de0bbe --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/hddtemp/hddtemp/0001-configure.ac-Rename-to-configure.ac-and-use-external.patch @@ -0,0 +1,703 @@ +From d7e6fe2ac69333c2d943a4b8eb139373d1fb2ce2 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Tue, 31 Dec 2019 18:08:09 -0800 +Subject: [PATCH] configure.ac: Rename to configure.ac and use external gettext + +Upstream-Status: Pending +Signed-off-by: Khem Raj +--- + configure.ac | 81 ++++++++++++++++++++++++++++++++++++++++++++++++++++ + 1 file changed, 81 insertions(+) + create mode 100644 configure.ac + +--- /dev/null ++++ b/configure.ac +@@ -0,0 +1,81 @@ ++dnl Process this file with autoconf to produce a configure script. ++ ++# Initialization ++AC_INIT ++AC_CONFIG_SRCDIR([Makefile.am]) ++AC_CONFIG_HEADERS([config.h]) ++ ++# Determine the host and build type. The target is always a PIC. ++AC_CANONICAL_HOST ++ ++AM_INIT_AUTOMAKE(hddtemp, 0.3-beta15) ++ ++dnl Checks for programs. ++AC_PROG_CC ++AC_PROG_INSTALL ++ ++# append the host alias to the tools for cross compiling ++AC_HEADER_STDC ++AC_CHECK_HEADERS(fcntl.h) ++AC_CHECK_HEADERS(iconv.h) ++AC_CHECK_HEADERS(netinet/in.h) ++AC_CHECK_TYPE(in_addr_t, ,[AC_DEFINE_UNQUOTED([in_addr_t], [uint32_t], [Define to 'uint32_t' if does not define.])], [#include ]) ++ ++# Checks for typedefs, structures, and compiler characteristics. ++AC_C_CONST ++AC_STRUCT_TM ++ ++dnl internationalization macros ++AM_GNU_GETTEXT([external]) ++ ++AC_CHECK_FUNCS([bindtextdomain textdomain iconv]) ++ ++dnl reasonable guesses for where stuff is installed ++dnl if we don't do that now, the config.h will use ${prefix} ++dnl for DEFAULT_DATABASE_PATH. ++if test "x$prefix" = "xNONE"; then ++ prefix="/usr/local" ++fi ++if test "x$exec_prefix" = "xNONE"; then ++ exec_prefix=$prefix ++fi ++ ++AC_MSG_CHECKING([Location of hddtemp.db]) ++DEFAULT_DATABASE_PATH= ++#db_path=\"`eval echo ${datadir}`/misc/hddtemp.db\" ++db_path=\"/usr/share/misc/hddtemp.db\" ++AC_ARG_WITH(db_path, ++ [ --with-db-path=PATH \ ++ Default location of hddtemp.db file [/usr/share/misc/hddtemp.db]], ++ [ if test -d "$withval"; then ++ AC_MSG_FAILURE([new file name for db-path]) ++ fi ++ DEFAULT_DATABASE_PATH="\"$withval\"" ++ ], ++ [ DEFAULT_DATABASE_PATH="$db_path" ]) ++AC_MSG_RESULT($DEFAULT_DATABASE_PATH) ++AC_DEFINE_UNQUOTED([DEFAULT_DATABASE_PATH], [$DEFAULT_DATABASE_PATH], [Default location of drive info database]) ++ ++#CFLAGS="$CFLAGS -Wall -fomit-frame-pointer -Wcast-align" ++CFLAGS="$CFLAGS -Wall -W -Wcast-align" ++ ++# Substitute configuration variables ++AC_CONFIG_FILES([Makefile \ ++po/Makefile.in \ ++m4/Makefile \ ++src/Makefile \ ++doc/Makefile \ ++]) ++AC_OUTPUT ++ ++AC_MSG_RESULT([ ++ ++hddtemp-$VERSION is now configured for $canonical_host_type ++ ++ Build: $build ++ Host: $host ++ Source directory: $srcdir ++ Installation prefix: $prefix ++ C compiler: $CC $CFLAGS ++ ++]) +--- a/Makefile.am ++++ b/Makefile.am +@@ -12,7 +12,7 @@ EXTRA_DIST = config.rpath autogen.sh \ + README \ + TODO + +-SUBDIRS = intl po m4 src doc ++SUBDIRS = po m4 src doc + + CLEANFILES = *~ + +--- a/configure.in ++++ /dev/null +@@ -1,83 +0,0 @@ +-dnl Process this file with autoconf to produce a configure script. +- +-# Initialization +-AC_INIT +-AC_CONFIG_SRCDIR([Makefile.am]) +-AC_CONFIG_HEADERS([config.h]) +- +-# Determine the host and build type. The target is always a PIC. +-AC_CANONICAL_HOST +- +-AM_INIT_AUTOMAKE(hddtemp, 0.3-beta15) +- +-dnl Checks for programs. +-AC_PROG_CC +-AC_PROG_INSTALL +- +-# append the host alias to the tools for cross compiling +-AC_HEADER_STDC +-AC_CHECK_HEADERS(fcntl.h) +-AC_CHECK_HEADERS(iconv.h) +-AC_CHECK_HEADERS(netinet/in.h) +-AC_CHECK_TYPE(in_addr_t, ,[AC_DEFINE_UNQUOTED([in_addr_t], [uint32_t], [Define to 'uint32_t' if does not define.])], [#include ]) +- +-# Checks for typedefs, structures, and compiler characteristics. +-AC_C_CONST +-AC_STRUCT_TM +- +-dnl internationalization macros +-AM_GNU_GETTEXT_VERSION +-AM_GNU_GETTEXT +-#AM_GNU_GETTEXT([external]) +- +-AC_CHECK_FUNCS([bindtextdomain textdomain iconv]) +- +-dnl reasonable guesses for where stuff is installed +-dnl if we don't do that now, the config.h will use ${prefix} +-dnl for DEFAULT_DATABASE_PATH. +-if test "x$prefix" = "xNONE"; then +- prefix="/usr/local" +-fi +-if test "x$exec_prefix" = "xNONE"; then +- exec_prefix=$prefix +-fi +- +-AC_MSG_CHECKING([Location of hddtemp.db]) +-DEFAULT_DATABASE_PATH= +-#db_path=\"`eval echo ${datadir}`/misc/hddtemp.db\" +-db_path=\"/usr/share/misc/hddtemp.db\" +-AC_ARG_WITH(db_path, +- [ --with-db-path=PATH \ +- Default location of hddtemp.db file [/usr/share/misc/hddtemp.db]], +- [ if test -d "$withval"; then +- AC_MSG_FAILURE([new file name for db-path]) +- fi +- DEFAULT_DATABASE_PATH="\"$withval\"" +- ], +- [ DEFAULT_DATABASE_PATH="$db_path" ]) +-AC_MSG_RESULT($DEFAULT_DATABASE_PATH) +-AC_DEFINE_UNQUOTED([DEFAULT_DATABASE_PATH], [$DEFAULT_DATABASE_PATH], [Default location of drive info database]) +- +-#CFLAGS="$CFLAGS -Wall -fomit-frame-pointer -Wcast-align" +-CFLAGS="$CFLAGS -Wall -W -Wcast-align" +- +-# Substitute configuration variables +-AC_CONFIG_FILES([Makefile intl/Makefile \ +-po/Makefile.in \ +-m4/Makefile \ +-src/Makefile \ +-doc/Makefile \ +-]) +-AC_OUTPUT +- +-AC_MSG_RESULT([ +- +-hddtemp-$VERSION is now configured for $canonical_host_type +- +- Build: $build +- Host: $host +- Source directory: $srcdir +- Installation prefix: $prefix +- C compiler: $CC $CFLAGS +- +-]) +--- a/intl/ChangeLog ++++ /dev/null +@@ -1,4 +0,0 @@ +-2005-02-24 GNU +- +- * Version 0.14.2 released. +- +--- a/intl/Makefile.in ++++ /dev/null +@@ -1,500 +0,0 @@ +-# Makefile for directory with message catalog handling library of GNU gettext +-# Copyright (C) 1995-1998, 2000-2005 Free Software Foundation, Inc. +-# +-# This program is free software; you can redistribute it and/or modify it +-# under the terms of the GNU Library General Public License as published +-# by the Free Software Foundation; either version 2, or (at your option) +-# any later version. +-# +-# This program is distributed in the hope that it will be useful, +-# but WITHOUT ANY WARRANTY; without even the implied warranty of +-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +-# Library General Public License for more details. +-# +-# You should have received a copy of the GNU Library General Public +-# License along with this program; if not, write to the Free Software +-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, +-# USA. +- +-PACKAGE = @PACKAGE@ +-VERSION = @VERSION@ +- +-SHELL = /bin/sh +- +-srcdir = @srcdir@ +-top_srcdir = @top_srcdir@ +-top_builddir = .. +-VPATH = $(srcdir) +- +-prefix = @prefix@ +-exec_prefix = @exec_prefix@ +-transform = @program_transform_name@ +-libdir = @libdir@ +-includedir = @includedir@ +-datadir = @datadir@ +-localedir = $(datadir)/locale +-gettextsrcdir = $(datadir)/gettext/intl +-aliaspath = $(localedir) +-subdir = intl +- +-INSTALL = @INSTALL@ +-INSTALL_DATA = @INSTALL_DATA@ +-MKINSTALLDIRS = @MKINSTALLDIRS@ +-mkinstalldirs = $(SHELL) $(MKINSTALLDIRS) +- +-l = @INTL_LIBTOOL_SUFFIX_PREFIX@ +- +-AR = ar +-CC = @CC@ +-LIBTOOL = @LIBTOOL@ +-RANLIB = @RANLIB@ +-YACC = @INTLBISON@ -y -d +-YFLAGS = --name-prefix=__gettext +- +-DEFS = -DLOCALEDIR=\"$(localedir)\" -DLOCALE_ALIAS_PATH=\"$(aliaspath)\" \ +--DLIBDIR=\"$(libdir)\" -DIN_LIBINTL \ +--DENABLE_RELOCATABLE=1 -DIN_LIBRARY -DINSTALLDIR=\"$(libdir)\" -DNO_XMALLOC \ +--Dset_relocation_prefix=libintl_set_relocation_prefix \ +--Drelocate=libintl_relocate \ +--DDEPENDS_ON_LIBICONV=1 @DEFS@ +-CPPFLAGS = @CPPFLAGS@ +-CFLAGS = @CFLAGS@ +-LDFLAGS = @LDFLAGS@ +-LIBS = @LIBS@ +- +-COMPILE = $(CC) -c $(DEFS) $(INCLUDES) $(CPPFLAGS) $(CFLAGS) $(XCFLAGS) +- +-HEADERS = \ +- gmo.h \ +- gettextP.h \ +- hash-string.h \ +- loadinfo.h \ +- plural-exp.h \ +- eval-plural.h \ +- localcharset.h \ +- relocatable.h \ +- xsize.h \ +- printf-args.h printf-args.c \ +- printf-parse.h wprintf-parse.h printf-parse.c \ +- vasnprintf.h vasnwprintf.h vasnprintf.c \ +- os2compat.h \ +- libgnuintl.h.in +-SOURCES = \ +- bindtextdom.c \ +- dcgettext.c \ +- dgettext.c \ +- gettext.c \ +- finddomain.c \ +- loadmsgcat.c \ +- localealias.c \ +- textdomain.c \ +- l10nflist.c \ +- explodename.c \ +- dcigettext.c \ +- dcngettext.c \ +- dngettext.c \ +- ngettext.c \ +- plural.y \ +- plural-exp.c \ +- localcharset.c \ +- relocatable.c \ +- langprefs.c \ +- localename.c \ +- log.c \ +- printf.c \ +- osdep.c \ +- os2compat.c \ +- intl-compat.c +-OBJECTS = \ +- bindtextdom.$lo \ +- dcgettext.$lo \ +- dgettext.$lo \ +- gettext.$lo \ +- finddomain.$lo \ +- loadmsgcat.$lo \ +- localealias.$lo \ +- textdomain.$lo \ +- l10nflist.$lo \ +- explodename.$lo \ +- dcigettext.$lo \ +- dcngettext.$lo \ +- dngettext.$lo \ +- ngettext.$lo \ +- plural.$lo \ +- plural-exp.$lo \ +- localcharset.$lo \ +- relocatable.$lo \ +- langprefs.$lo \ +- localename.$lo \ +- log.$lo \ +- printf.$lo \ +- osdep.$lo \ +- intl-compat.$lo +-DISTFILES.common = Makefile.in \ +-config.charset locale.alias ref-add.sin ref-del.sin $(HEADERS) $(SOURCES) +-DISTFILES.generated = plural.c +-DISTFILES.normal = VERSION +-DISTFILES.gettext = COPYING.LIB-2.0 COPYING.LIB-2.1 libintl.glibc \ +-libgnuintl.h_vms Makefile.vms \ +-libgnuintl.h.msvc-static libgnuintl.h.msvc-shared README.woe32 Makefile.msvc +-DISTFILES.obsolete = xopen-msg.sed linux-msg.sed po2tbl.sed.in cat-compat.c \ +-COPYING.LIB-2 gettext.h libgettext.h plural-eval.c libgnuintl.h +- +-all: all-@USE_INCLUDED_LIBINTL@ +-all-yes: libintl.$la libintl.h charset.alias ref-add.sed ref-del.sed +-all-no: all-no-@BUILD_INCLUDED_LIBINTL@ +-all-no-yes: libgnuintl.$la +-all-no-no: +- +-libintl.a libgnuintl.a: $(OBJECTS) +- rm -f $@ +- $(AR) cru $@ $(OBJECTS) +- $(RANLIB) $@ +- +-libintl.la libgnuintl.la: $(OBJECTS) +- $(LIBTOOL) --mode=link \ +- $(CC) $(CPPFLAGS) $(CFLAGS) $(XCFLAGS) $(LDFLAGS) -o $@ \ +- $(OBJECTS) @LTLIBICONV@ @INTL_MACOSX_LIBS@ $(LIBS) -lc \ +- -version-info $(LTV_CURRENT):$(LTV_REVISION):$(LTV_AGE) \ +- -rpath $(libdir) \ +- -no-undefined +- +-# Libtool's library version information for libintl. +-# Before making a gettext release, the gettext maintainer must change this +-# according to the libtool documentation, section "Library interface versions". +-# Maintainers of other packages that include the intl directory must *not* +-# change these values. +-LTV_CURRENT=7 +-LTV_REVISION=1 +-LTV_AGE=4 +- +-.SUFFIXES: +-.SUFFIXES: .c .y .o .lo .sin .sed +- +-.c.o: +- $(COMPILE) $< +- +-.y.c: +- $(YACC) $(YFLAGS) --output $@ $< +- rm -f $*.h +- +-bindtextdom.lo: $(srcdir)/bindtextdom.c +- $(LIBTOOL) --mode=compile $(COMPILE) $(srcdir)/bindtextdom.c +-dcgettext.lo: $(srcdir)/dcgettext.c +- $(LIBTOOL) --mode=compile $(COMPILE) $(srcdir)/dcgettext.c +-dgettext.lo: $(srcdir)/dgettext.c +- $(LIBTOOL) --mode=compile $(COMPILE) $(srcdir)/dgettext.c +-gettext.lo: $(srcdir)/gettext.c +- $(LIBTOOL) --mode=compile $(COMPILE) $(srcdir)/gettext.c +-finddomain.lo: $(srcdir)/finddomain.c +- $(LIBTOOL) --mode=compile $(COMPILE) $(srcdir)/finddomain.c +-loadmsgcat.lo: $(srcdir)/loadmsgcat.c +- $(LIBTOOL) --mode=compile $(COMPILE) $(srcdir)/loadmsgcat.c +-localealias.lo: $(srcdir)/localealias.c +- $(LIBTOOL) --mode=compile $(COMPILE) $(srcdir)/localealias.c +-textdomain.lo: $(srcdir)/textdomain.c +- $(LIBTOOL) --mode=compile $(COMPILE) $(srcdir)/textdomain.c +-l10nflist.lo: $(srcdir)/l10nflist.c +- $(LIBTOOL) --mode=compile $(COMPILE) $(srcdir)/l10nflist.c +-explodename.lo: $(srcdir)/explodename.c +- $(LIBTOOL) --mode=compile $(COMPILE) $(srcdir)/explodename.c +-dcigettext.lo: $(srcdir)/dcigettext.c +- $(LIBTOOL) --mode=compile $(COMPILE) $(srcdir)/dcigettext.c +-dcngettext.lo: $(srcdir)/dcngettext.c +- $(LIBTOOL) --mode=compile $(COMPILE) $(srcdir)/dcngettext.c +-dngettext.lo: $(srcdir)/dngettext.c +- $(LIBTOOL) --mode=compile $(COMPILE) $(srcdir)/dngettext.c +-ngettext.lo: $(srcdir)/ngettext.c +- $(LIBTOOL) --mode=compile $(COMPILE) $(srcdir)/ngettext.c +-plural.lo: $(srcdir)/plural.c +- $(LIBTOOL) --mode=compile $(COMPILE) $(srcdir)/plural.c +-plural-exp.lo: $(srcdir)/plural-exp.c +- $(LIBTOOL) --mode=compile $(COMPILE) $(srcdir)/plural-exp.c +-localcharset.lo: $(srcdir)/localcharset.c +- $(LIBTOOL) --mode=compile $(COMPILE) $(srcdir)/localcharset.c +-relocatable.lo: $(srcdir)/relocatable.c +- $(LIBTOOL) --mode=compile $(COMPILE) $(srcdir)/relocatable.c +-langprefs.lo: $(srcdir)/langprefs.c +- $(LIBTOOL) --mode=compile $(COMPILE) $(srcdir)/langprefs.c +-localename.lo: $(srcdir)/localename.c +- $(LIBTOOL) --mode=compile $(COMPILE) $(srcdir)/localename.c +-log.lo: $(srcdir)/log.c +- $(LIBTOOL) --mode=compile $(COMPILE) $(srcdir)/log.c +-printf.lo: $(srcdir)/printf.c +- $(LIBTOOL) --mode=compile $(COMPILE) $(srcdir)/printf.c +-osdep.lo: $(srcdir)/osdep.c +- $(LIBTOOL) --mode=compile $(COMPILE) $(srcdir)/osdep.c +-intl-compat.lo: $(srcdir)/intl-compat.c +- $(LIBTOOL) --mode=compile $(COMPILE) $(srcdir)/intl-compat.c +- +-ref-add.sed: $(srcdir)/ref-add.sin +- sed -e '/^#/d' -e 's/@''PACKAGE''@/@PACKAGE@/g' $(srcdir)/ref-add.sin > t-ref-add.sed +- mv t-ref-add.sed ref-add.sed +-ref-del.sed: $(srcdir)/ref-del.sin +- sed -e '/^#/d' -e 's/@''PACKAGE''@/@PACKAGE@/g' $(srcdir)/ref-del.sin > t-ref-del.sed +- mv t-ref-del.sed ref-del.sed +- +-INCLUDES = -I. -I$(srcdir) -I.. +- +-libgnuintl.h: $(srcdir)/libgnuintl.h.in +- sed -e 's,@''HAVE_POSIX_PRINTF''@,@HAVE_POSIX_PRINTF@,g' \ +- -e 's,@''HAVE_ASPRINTF''@,@HAVE_ASPRINTF@,g' \ +- -e 's,@''HAVE_SNPRINTF''@,@HAVE_SNPRINTF@,g' \ +- -e 's,@''HAVE_WPRINTF''@,@HAVE_WPRINTF@,g' \ +- < $(srcdir)/libgnuintl.h.in > libgnuintl.h +- +-libintl.h: libgnuintl.h +- cp libgnuintl.h libintl.h +- +-charset.alias: $(srcdir)/config.charset +- $(SHELL) $(srcdir)/config.charset '@host@' > t-$@ +- mv t-$@ $@ +- +-check: all +- +-# We must not install the libintl.h/libintl.a files if we are on a +-# system which has the GNU gettext() function in its C library or in a +-# separate library. +-# If you want to use the one which comes with this version of the +-# package, you have to use `configure --with-included-gettext'. +-install: install-exec install-data +-install-exec: all +- if { test "$(PACKAGE)" = "gettext-runtime" || test "$(PACKAGE)" = "gettext-tools"; } \ +- && test '@USE_INCLUDED_LIBINTL@' = yes; then \ +- $(mkinstalldirs) $(DESTDIR)$(libdir) $(DESTDIR)$(includedir); \ +- $(INSTALL_DATA) libintl.h $(DESTDIR)$(includedir)/libintl.h; \ +- $(LIBTOOL) --mode=install \ +- $(INSTALL_DATA) libintl.$la $(DESTDIR)$(libdir)/libintl.$la; \ +- if test "@RELOCATABLE@" = yes; then \ +- dependencies=`sed -n -e 's,^dependency_libs=\(.*\),\1,p' < $(DESTDIR)$(libdir)/libintl.la | sed -e "s,^',," -e "s,'\$$,,"`; \ +- if test -n "$$dependencies"; then \ +- rm -f $(DESTDIR)$(libdir)/libintl.la; \ +- fi; \ +- fi; \ +- else \ +- : ; \ +- fi +- if test "$(PACKAGE)" = "gettext-tools" \ +- && test '@USE_INCLUDED_LIBINTL@' = no \ +- && test @GLIBC2@ != no; then \ +- $(mkinstalldirs) $(DESTDIR)$(libdir); \ +- $(LIBTOOL) --mode=install \ +- $(INSTALL_DATA) libgnuintl.$la $(DESTDIR)$(libdir)/libgnuintl.$la; \ +- rm -f $(DESTDIR)$(libdir)/preloadable_libintl.so; \ +- $(INSTALL_DATA) $(DESTDIR)$(libdir)/libgnuintl.so $(DESTDIR)$(libdir)/preloadable_libintl.so; \ +- $(LIBTOOL) --mode=uninstall \ +- rm -f $(DESTDIR)$(libdir)/libgnuintl.$la; \ +- else \ +- : ; \ +- fi +- if test '@USE_INCLUDED_LIBINTL@' = yes; then \ +- test @GLIBC21@ != no || $(mkinstalldirs) $(DESTDIR)$(libdir); \ +- temp=$(DESTDIR)$(libdir)/t-charset.alias; \ +- dest=$(DESTDIR)$(libdir)/charset.alias; \ +- if test -f $(DESTDIR)$(libdir)/charset.alias; then \ +- orig=$(DESTDIR)$(libdir)/charset.alias; \ +- sed -f ref-add.sed $$orig > $$temp; \ +- $(INSTALL_DATA) $$temp $$dest; \ +- rm -f $$temp; \ +- else \ +- if test @GLIBC21@ = no; then \ +- orig=charset.alias; \ +- sed -f ref-add.sed $$orig > $$temp; \ +- $(INSTALL_DATA) $$temp $$dest; \ +- rm -f $$temp; \ +- fi; \ +- fi; \ +- $(mkinstalldirs) $(DESTDIR)$(localedir); \ +- test -f $(DESTDIR)$(localedir)/locale.alias \ +- && orig=$(DESTDIR)$(localedir)/locale.alias \ +- || orig=$(srcdir)/locale.alias; \ +- temp=$(DESTDIR)$(localedir)/t-locale.alias; \ +- dest=$(DESTDIR)$(localedir)/locale.alias; \ +- sed -f ref-add.sed $$orig > $$temp; \ +- $(INSTALL_DATA) $$temp $$dest; \ +- rm -f $$temp; \ +- else \ +- : ; \ +- fi +-install-data: all +- if test "$(PACKAGE)" = "gettext-tools"; then \ +- $(mkinstalldirs) $(DESTDIR)$(gettextsrcdir); \ +- $(INSTALL_DATA) VERSION $(DESTDIR)$(gettextsrcdir)/VERSION; \ +- $(INSTALL_DATA) ChangeLog.inst $(DESTDIR)$(gettextsrcdir)/ChangeLog; \ +- dists="COPYING.LIB-2.0 COPYING.LIB-2.1 $(DISTFILES.common)"; \ +- for file in $$dists; do \ +- $(INSTALL_DATA) $(srcdir)/$$file \ +- $(DESTDIR)$(gettextsrcdir)/$$file; \ +- done; \ +- chmod a+x $(DESTDIR)$(gettextsrcdir)/config.charset; \ +- dists="$(DISTFILES.generated)"; \ +- for file in $$dists; do \ +- if test -f $$file; then dir=.; else dir=$(srcdir); fi; \ +- $(INSTALL_DATA) $$dir/$$file \ +- $(DESTDIR)$(gettextsrcdir)/$$file; \ +- done; \ +- dists="$(DISTFILES.obsolete)"; \ +- for file in $$dists; do \ +- rm -f $(DESTDIR)$(gettextsrcdir)/$$file; \ +- done; \ +- else \ +- : ; \ +- fi +- +-install-strip: install +- +-installdirs: +- if { test "$(PACKAGE)" = "gettext-runtime" || test "$(PACKAGE)" = "gettext-tools"; } \ +- && test '@USE_INCLUDED_LIBINTL@' = yes; then \ +- $(mkinstalldirs) $(DESTDIR)$(libdir) $(DESTDIR)$(includedir); \ +- else \ +- : ; \ +- fi +- if test "$(PACKAGE)" = "gettext-tools" \ +- && test '@USE_INCLUDED_LIBINTL@' = no \ +- && test @GLIBC2@ != no; then \ +- $(mkinstalldirs) $(DESTDIR)$(libdir); \ +- else \ +- : ; \ +- fi +- if test '@USE_INCLUDED_LIBINTL@' = yes; then \ +- test @GLIBC21@ != no || $(mkinstalldirs) $(DESTDIR)$(libdir); \ +- $(mkinstalldirs) $(DESTDIR)$(localedir); \ +- else \ +- : ; \ +- fi +- if test "$(PACKAGE)" = "gettext-tools"; then \ +- $(mkinstalldirs) $(DESTDIR)$(gettextsrcdir); \ +- else \ +- : ; \ +- fi +- +-# Define this as empty until I found a useful application. +-installcheck: +- +-uninstall: +- if { test "$(PACKAGE)" = "gettext-runtime" || test "$(PACKAGE)" = "gettext-tools"; } \ +- && test '@USE_INCLUDED_LIBINTL@' = yes; then \ +- rm -f $(DESTDIR)$(includedir)/libintl.h; \ +- $(LIBTOOL) --mode=uninstall \ +- rm -f $(DESTDIR)$(libdir)/libintl.$la; \ +- else \ +- : ; \ +- fi +- if test "$(PACKAGE)" = "gettext-tools" \ +- && test '@USE_INCLUDED_LIBINTL@' = no \ +- && test @GLIBC2@ != no; then \ +- rm -f $(DESTDIR)$(libdir)/preloadable_libintl.so; \ +- else \ +- : ; \ +- fi +- if test '@USE_INCLUDED_LIBINTL@' = yes; then \ +- if test -f $(DESTDIR)$(libdir)/charset.alias; then \ +- temp=$(DESTDIR)$(libdir)/t-charset.alias; \ +- dest=$(DESTDIR)$(libdir)/charset.alias; \ +- sed -f ref-del.sed $$dest > $$temp; \ +- if grep '^# Packages using this file: $$' $$temp > /dev/null; then \ +- rm -f $$dest; \ +- else \ +- $(INSTALL_DATA) $$temp $$dest; \ +- fi; \ +- rm -f $$temp; \ +- fi; \ +- if test -f $(DESTDIR)$(localedir)/locale.alias; then \ +- temp=$(DESTDIR)$(localedir)/t-locale.alias; \ +- dest=$(DESTDIR)$(localedir)/locale.alias; \ +- sed -f ref-del.sed $$dest > $$temp; \ +- if grep '^# Packages using this file: $$' $$temp > /dev/null; then \ +- rm -f $$dest; \ +- else \ +- $(INSTALL_DATA) $$temp $$dest; \ +- fi; \ +- rm -f $$temp; \ +- fi; \ +- else \ +- : ; \ +- fi +- if test "$(PACKAGE)" = "gettext-tools"; then \ +- for file in VERSION ChangeLog COPYING.LIB-2.0 COPYING.LIB-2.1 $(DISTFILES.common) $(DISTFILES.generated); do \ +- rm -f $(DESTDIR)$(gettextsrcdir)/$$file; \ +- done; \ +- else \ +- : ; \ +- fi +- +-info dvi ps pdf html: +- +-$(OBJECTS): ../config.h libgnuintl.h +-bindtextdom.$lo dcgettext.$lo dcigettext.$lo dcngettext.$lo dgettext.$lo dngettext.$lo finddomain.$lo gettext.$lo intl-compat.$lo loadmsgcat.$lo localealias.$lo ngettext.$lo textdomain.$lo: $(srcdir)/gettextP.h $(srcdir)/gmo.h $(srcdir)/loadinfo.h +-dcigettext.$lo loadmsgcat.$lo: $(srcdir)/hash-string.h +-explodename.$lo l10nflist.$lo: $(srcdir)/loadinfo.h +-dcigettext.$lo loadmsgcat.$lo plural.$lo plural-exp.$lo: $(srcdir)/plural-exp.h +-dcigettext.$lo: $(srcdir)/eval-plural.h +-localcharset.$lo: $(srcdir)/localcharset.h +-localealias.$lo localcharset.$lo relocatable.$lo: $(srcdir)/relocatable.h +-printf.$lo: $(srcdir)/printf-args.h $(srcdir)/printf-args.c $(srcdir)/printf-parse.h $(srcdir)/wprintf-parse.h $(srcdir)/xsize.h $(srcdir)/printf-parse.c $(srcdir)/vasnprintf.h $(srcdir)/vasnwprintf.h $(srcdir)/vasnprintf.c +- +-tags: TAGS +- +-TAGS: $(HEADERS) $(SOURCES) +- here=`pwd`; cd $(srcdir) && etags -o $$here/TAGS $(HEADERS) $(SOURCES) +- +-ctags: CTAGS +- +-CTAGS: $(HEADERS) $(SOURCES) +- here=`pwd`; cd $(srcdir) && ctags -o $$here/CTAGS $(HEADERS) $(SOURCES) +- +-id: ID +- +-ID: $(HEADERS) $(SOURCES) +- here=`pwd`; cd $(srcdir) && mkid -f$$here/ID $(HEADERS) $(SOURCES) +- +- +-mostlyclean: +- rm -f *.a *.la *.o *.obj *.lo core core.* +- rm -f libgnuintl.h libintl.h charset.alias ref-add.sed ref-del.sed +- rm -f -r .libs _libs +- +-clean: mostlyclean +- +-distclean: clean +- rm -f Makefile ID TAGS +- if test "$(PACKAGE)" = "gettext-runtime" || test "$(PACKAGE)" = "gettext-tools"; then \ +- rm -f ChangeLog.inst $(DISTFILES.normal); \ +- else \ +- : ; \ +- fi +- +-maintainer-clean: distclean +- @echo "This command is intended for maintainers to use;" +- @echo "it deletes files that may require special tools to rebuild." +- +- +-# GNU gettext needs not contain the file `VERSION' but contains some +-# other files which should not be distributed in other packages. +-distdir = ../$(PACKAGE)-$(VERSION)/$(subdir) +-dist distdir: Makefile +- if test "$(PACKAGE)" = "gettext-tools"; then \ +- : ; \ +- else \ +- if test "$(PACKAGE)" = "gettext-runtime"; then \ +- additional="$(DISTFILES.gettext)"; \ +- else \ +- additional="$(DISTFILES.normal)"; \ +- fi; \ +- $(MAKE) $(DISTFILES.common) $(DISTFILES.generated) $$additional; \ +- for file in ChangeLog $(DISTFILES.common) $(DISTFILES.generated) $$additional; do \ +- if test -f $$file; then dir=.; else dir=$(srcdir); fi; \ +- cp -p $$dir/$$file $(distdir); \ +- done; \ +- fi +- +-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status +- cd $(top_builddir) && $(SHELL) ./config.status +-# This would be more efficient, but doesn't work any more with autoconf-2.57, +-# when AC_CONFIG_FILES([intl/Makefile:somedir/Makefile.in]) is used. +-# cd $(top_builddir) && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status +- +-# Tell versions [3.59,3.63) of GNU make not to export all variables. +-# Otherwise a system limit (for SysV at least) may be exceeded. +-.NOEXPORT: diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/hddtemp/hddtemp_0.3-beta15.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/hddtemp/hddtemp_0.3-beta15.bb index 4a871bf4..d5da2b68 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/hddtemp/hddtemp_0.3-beta15.bb +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/hddtemp/hddtemp_0.3-beta15.bb @@ -9,6 +9,7 @@ SRC_URI = "${SAVANNAH_NONGNU_MIRROR}/hddtemp/hddtemp-0.3-beta15.tar.bz2 \ file://hddtemp_0.3-beta15-52.diff \ file://hddtemp-0.3-beta15-autodetect-717479.patch \ file://0001-backtrace-Replace-struct-ucontext-with-ucontext_t.patch \ + file://0001-configure.ac-Rename-to-configure.ac-and-use-external.patch \ file://hddtemp.db \ file://init \ " diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/hdf5/files/0001-cross-compiling-support.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/hdf5/files/0001-cross-compiling-support.patch index 97f16bbc..bdc1fa5f 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/hdf5/files/0001-cross-compiling-support.patch +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/hdf5/files/0001-cross-compiling-support.patch @@ -14,11 +14,9 @@ Signed-off-by: Hongxu Jia src/CMakeLists.txt | 23 ----------------------- 2 files changed, 6 insertions(+), 23 deletions(-) -diff --git a/CMakeLists.txt b/CMakeLists.txt -index 08a65c4..9af14d5 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt -@@ -817,4 +817,10 @@ endif () +@@ -770,4 +770,10 @@ endif () #----------------------------------------------------------------------------- configure_file (${HDF_RESOURCES_DIR}/H5pubconf.h.in ${HDF5_BINARY_DIR}/H5pubconf.h @ONLY) @@ -29,22 +27,22 @@ index 08a65c4..9af14d5 100644 +configure_file(H5lib_settings.c H5lib_settings.c COPYONLY) + include (CMakeInstallation.cmake) -diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt -index d343208..d11525b 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt -@@ -613,32 +613,9 @@ set (H5_PRIVATE_HEADERS +@@ -613,36 +613,9 @@ set (H5_PRIVATE_HEADERS #----------------------------------------------------------------------------- add_executable (H5detect ${HDF5_SRC_DIR}/H5detect.c) TARGET_C_PROPERTIES (H5detect STATIC " " " ") -if (MSVC OR MINGW) - target_link_libraries (H5detect "ws2_32.lib") -endif () +-if (CMAKE_SYSTEM_NAME STREQUAL "Emscripten") +- set_property(TARGET H5detect PROPERTY LINK_FLAGS "-O0") +-endif () - --set (CMD $) -add_custom_command ( - OUTPUT ${HDF5_BINARY_DIR}/H5Tinit.c -- COMMAND ${CMD} +- COMMAND $ - ARGS > ${HDF5_BINARY_DIR}/H5Tinit.c - DEPENDS H5detect -) @@ -54,11 +52,13 @@ index d343208..d11525b 100644 -if (MSVC OR MINGW) - target_link_libraries (H5make_libsettings "ws2_32.lib") -endif () +-if (CMAKE_SYSTEM_NAME STREQUAL "Emscripten") +- set_property(TARGET H5make_libsettings PROPERTY LINK_FLAGS "-O0") +-endif () - --set (CMD $) -add_custom_command ( - OUTPUT ${HDF5_BINARY_DIR}/H5lib_settings.c -- COMMAND ${CMD} +- COMMAND $ - ARGS > ${HDF5_BINARY_DIR}/H5lib_settings.c - DEPENDS H5make_libsettings - WORKING_DIRECTORY ${HDF5_BINARY_DIR} @@ -66,6 +66,3 @@ index d343208..d11525b 100644 if (GENERATE_ERROR_HEADERS) find_package (Perl) --- -2.7.4 - diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/hdf5/hdf5_1.8.19.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/hdf5/hdf5_1.8.19.bb deleted file mode 100644 index fcbe9b0d..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/hdf5/hdf5_1.8.19.bb +++ /dev/null @@ -1,58 +0,0 @@ -SUMMARY = "Unique technology suite that makes possible the management of \ -extremely large and complex data collections" -HOMEPAGE = "https://www.hdfgroup.org/" -SECTION = "libs" - -LICENSE = "HDF5" -LIC_FILES_CHKSUM = "file://COPYING;md5=57e5351b17591e659eedae107265c606" - -inherit cmake siteinfo - -SRC_URI = " \ - https://support.hdfgroup.org/ftp/HDF5/releases/hdf5-1.8/hdf5-${PV}/src/${BPN}-${PV}.tar.bz2 \ - file://H5lib_settings.c \ - file://H5Tinit-64.c \ - file://H5Tinit-32.c \ - file://0001-cross-compiling-support.patch \ - file://0002-Remove-suffix-shared-from-shared-library-name.patch \ -" - -SRC_URI[md5sum] = "6f0353ee33e99089c110a1c8d2dd1b22" -SRC_URI[sha256sum] = "59c03816105d57990329537ad1049ba22c2b8afe1890085f0c022b75f1727238" - -FILES_${PN} += "${libdir}/libhdf5.settings ${datadir}/*" - -EXTRA_OECMAKE = " \ - -DTEST_LFS_WORKS_RUN=0 \ - -DTEST_LFS_WORKS_RUN__TRYRUN_OUTPUT=0 \ - -DH5_PRINTF_LL_TEST_RUN=1 \ - -DH5_PRINTF_LL_TEST_RUN__TRYRUN_OUTPUT='8' \ - -DH5_LDOUBLE_TO_LONG_SPECIAL_RUN=0 \ - -DH5_LDOUBLE_TO_LONG_SPECIAL_RUN__TRYRUN_OUTPUT= \ - -DH5_LONG_TO_LDOUBLE_SPECIAL_RUN=0 \ - -DH5_LONG_TO_LDOUBLE_SPECIAL_RUN__TRYRUN_OUTPUT= \ - -DH5_LDOUBLE_TO_LLONG_ACCURATE_RUN=0 \ - -DH5_LDOUBLE_TO_LLONG_ACCURATE_RUN__TRYRUN_OUTPUT= \ - -DH5_LLONG_TO_LDOUBLE_CORRECT_RUN=0 \ - -DH5_LLONG_TO_LDOUBLE_CORRECT_RUN__TRYRUN_OUTPUT= \ - -DH5_NO_ALIGNMENT_RESTRICTIONS_RUN=0 \ - -DH5_NO_ALIGNMENT_RESTRICTIONS_RUN__TRYRUN_OUTPUT= \ - -DCMAKE_INSTALL_PREFIX='${prefix}' \ - -DHDF5_INSTALL_LIB_DIR='${baselib}' \ -" - -do_unpack[postfuncs] += "gen_hd5file" -gen_hd5file() { - install -m 544 ${WORKDIR}/H5lib_settings.c ${S} - install -m 544 ${WORKDIR}/H5Tinit-${SITEINFO_BITS}.c ${S}/H5Tinit.c -} - -do_install_append() { - # Used for generating config files on target - install -m 755 ${B}/bin/H5detect ${D}${bindir} - install -m 755 ${B}/bin/H5make_libsettings ${D}${bindir} -} - -BBCLASSEXTEND = "native" - -SRC_DISTRIBUTE_LICENSES += "HDF5" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/hdf5/hdf5_1.8.21.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/hdf5/hdf5_1.8.21.bb new file mode 100644 index 00000000..9af2b671 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/hdf5/hdf5_1.8.21.bb @@ -0,0 +1,57 @@ +SUMMARY = "Unique technology suite that makes possible the management of \ +extremely large and complex data collections" +HOMEPAGE = "https://www.hdfgroup.org/" +SECTION = "libs" + +LICENSE = "HDF5" +LIC_FILES_CHKSUM = "file://COPYING;md5=57e5351b17591e659eedae107265c606" + +inherit cmake siteinfo + +SRC_URI = " \ + https://support.hdfgroup.org/ftp/HDF5/releases/hdf5-1.8/hdf5-${PV}/src/${BPN}-${PV}.tar.bz2 \ + file://H5lib_settings.c \ + file://H5Tinit-64.c \ + file://H5Tinit-32.c \ + file://0001-cross-compiling-support.patch \ + file://0002-Remove-suffix-shared-from-shared-library-name.patch \ +" +SRC_URI[md5sum] = "2d2408f2a9dfb5c7b79998002e9a90e9" +SRC_URI[sha256sum] = "e5b1b1dee44a64b795a91c3321ab7196d9e0871fe50d42969761794e3899f40d" + +FILES_${PN} += "${libdir}/libhdf5.settings ${datadir}/*" + +EXTRA_OECMAKE = " \ + -DTEST_LFS_WORKS_RUN=0 \ + -DTEST_LFS_WORKS_RUN__TRYRUN_OUTPUT=0 \ + -DH5_PRINTF_LL_TEST_RUN=1 \ + -DH5_PRINTF_LL_TEST_RUN__TRYRUN_OUTPUT='8' \ + -DH5_LDOUBLE_TO_LONG_SPECIAL_RUN=0 \ + -DH5_LDOUBLE_TO_LONG_SPECIAL_RUN__TRYRUN_OUTPUT= \ + -DH5_LONG_TO_LDOUBLE_SPECIAL_RUN=0 \ + -DH5_LONG_TO_LDOUBLE_SPECIAL_RUN__TRYRUN_OUTPUT= \ + -DH5_LDOUBLE_TO_LLONG_ACCURATE_RUN=0 \ + -DH5_LDOUBLE_TO_LLONG_ACCURATE_RUN__TRYRUN_OUTPUT= \ + -DH5_LLONG_TO_LDOUBLE_CORRECT_RUN=0 \ + -DH5_LLONG_TO_LDOUBLE_CORRECT_RUN__TRYRUN_OUTPUT= \ + -DH5_NO_ALIGNMENT_RESTRICTIONS_RUN=0 \ + -DH5_NO_ALIGNMENT_RESTRICTIONS_RUN__TRYRUN_OUTPUT= \ + -DCMAKE_INSTALL_PREFIX='${prefix}' \ + -DHDF5_INSTALL_LIB_DIR='${baselib}' \ +" + +do_unpack[postfuncs] += "gen_hd5file" +gen_hd5file() { + install -m 544 ${WORKDIR}/H5lib_settings.c ${S} + install -m 544 ${WORKDIR}/H5Tinit-${SITEINFO_BITS}.c ${S}/H5Tinit.c +} + +do_install_append() { + # Used for generating config files on target + install -m 755 ${B}/bin/H5detect ${D}${bindir} + install -m 755 ${B}/bin/H5make_libsettings ${D}${bindir} +} + +BBCLASSEXTEND = "native" + +SRC_DISTRIBUTE_LICENSES += "HDF5" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/htop/files/0001-Ask-for-python3-specifically.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/htop/files/0001-Ask-for-python3-specifically.patch new file mode 100644 index 00000000..6153bded --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/htop/files/0001-Ask-for-python3-specifically.patch @@ -0,0 +1,26 @@ +From 08aca4816cc798fce58b6235c26585a0063fa8af Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Tue, 26 Nov 2019 10:43:49 -0800 +Subject: [PATCH] Ask for python3 specifically + +python2 is on its way out + +Upstream-Status: Submitted [https://github.com/hishamhm/htop/pull/968] +Signed-off-by: Khem Raj +--- + scripts/MakeHeader.py | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/scripts/MakeHeader.py b/scripts/MakeHeader.py +index 7c48fdd..7a7586d 100755 +--- a/scripts/MakeHeader.py ++++ b/scripts/MakeHeader.py +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/usr/bin/env python3 + import os, sys, string, io + try: + from StringIO import StringIO +-- +2.24.0 + diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/htop/htop_2.2.0.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/htop/htop_2.2.0.bb index 01c856d1..64eb0c57 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/htop/htop_2.2.0.bb +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/htop/htop_2.2.0.bb @@ -7,7 +7,9 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=c312653532e8e669f30e5ec8bdc23be3" DEPENDS = "ncurses" SRC_URI = "http://hisham.hm/htop/releases/${PV}/${BP}.tar.gz \ - file://0001-Use-pkg-config.patch" + file://0001-Use-pkg-config.patch \ + file://0001-Ask-for-python3-specifically.patch \ + " SRC_URI[md5sum] = "0d816b6beed31edc75babcfbf863ffa8" SRC_URI[sha256sum] = "d9d6826f10ce3887950d709b53ee1d8c1849a70fa38e91d5896ad8cbc6ba3c57" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/hwdata/hwdata_git.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/hwdata/hwdata_git.bb index 58a06070..e20bec5d 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/hwdata/hwdata_git.bb +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/hwdata/hwdata_git.bb @@ -5,8 +5,8 @@ SECTION = "System/Base" LICENSE = "GPL-2.0+" LIC_FILES_CHKSUM = "file://LICENSE;md5=1556547711e8246992b999edd9445a57" -PV = "0.322" -SRCREV = "a65d28807d8f2446faa4734c758d1607f0a56ded" +PV = "0.330" +SRCREV = "335f72f8ed4ad0cf335526d3c6c4701f7e58f45b" SRC_URI = "git://github.com/vcrhonek/${BPN}.git" S = "${WORKDIR}/git" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/imagemagick/imagemagick_7.0.8.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/imagemagick/imagemagick_7.0.8.bb deleted file mode 100644 index 4ee06d77..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/imagemagick/imagemagick_7.0.8.bb +++ /dev/null @@ -1,86 +0,0 @@ -SUMMARY = "ImageMagick is an image conversion toolkit" -SECTION = "console/utils" -HOMEPAGE = "https://www.imagemagick.org/" -DESCRIPTION = "ImageMagick is a collection of tools for displaying, converting, and \ -editing raster and vector image files. It can read and write over 200 image file formats." -LICENSE = "ImageMagick" -LIC_FILES_CHKSUM = "file://LICENSE;md5=05ff94b3ff59fe6fa7489fa26e3d9142" -# FIXME: There are many more checked libraries. All should be added or explicitly disabled to get consistent results. -DEPENDS = "lcms bzip2 jpeg libpng tiff zlib fftw freetype libtool" - -BASE_PV := "${PV}" -PV .= "_47" -SRC_URI = "git://github.com/ImageMagick/ImageMagick.git " -SRCREV = "b672df7a44b0ab0219b1fa78b3673c2810ddd374" - -S = "${WORKDIR}/git" - -inherit autotools pkgconfig update-alternatives - -# xml disabled because it's using xml2-config --prefix to determine prefix which returns just /usr with our libxml2 -# if someone needs xml support then fix it first -EXTRA_OECONF = "--program-prefix= --program-suffix=.im7 --without-perl --disable-openmp --without-xml --disable-opencl" - -CACHED_CONFIGUREVARS = "ac_cv_sys_file_offset_bits=yes" -PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'x11', d)}" -PACKAGECONFIG[graphviz] = "--with-gvc,--without-gvc,graphviz" -PACKAGECONFIG[jp2] = "--with-jp2,,jasper" -PACKAGECONFIG[lzma] = "--with-lzma,--without-lzma,xz" -PACKAGECONFIG[openjpeg] = "--with-openjp2,--without-openjp2,openjpeg" -PACKAGECONFIG[pango] = "--with-pango,--without-pango,pango cairo" -PACKAGECONFIG[rsvg] = "--with-rsvg,--without-rsvg,librsvg" -PACKAGECONFIG[webp] = "--with-webp,--without-webp,libwebp" -PACKAGECONFIG[wmf] = "--with-wmf,--without-wmf,libwmf" -PACKAGECONFIG[x11] = "--with-x,--without-x,virtual/libx11 libxext libxt" - -FILES_${PN} += "${libdir}/ImageMagick-${BASE_PV}/config-Q16* \ - ${datadir}/ImageMagick-7" - -FILES_${PN}-dev += "${libdir}/ImageMagick-${BASE_PV}/modules-Q16/*/*.a" - -FILES_${PN}-dbg += "${libdir}/ImageMagick-${BASE_PV}/modules-Q16/*/.debug/*" - -BBCLASSEXTEND = "native" - -ALTERNATIVE_PRIORITY = "100" - -ALTERNATIVE_${PN} = "animate compare composite conjure convert display \ - identify import mogrify montage stream" - -ALTERNATIVE_TARGET[animate] = "${bindir}/animate.im7" -ALTERNATIVE_TARGET[compare] = "${bindir}/compare.im7" -ALTERNATIVE_TARGET[composite] = "${bindir}/composite.im7" -ALTERNATIVE_TARGET[conjure] = "${bindir}/conjure.im7" -ALTERNATIVE_TARGET[convert] = "${bindir}/convert.im7" -ALTERNATIVE_TARGET[display] = "${bindir}/display.im7" -ALTERNATIVE_TARGET[identify] = "${bindir}/identify.im7" -ALTERNATIVE_TARGET[import] = "${bindir}/import.im7" -ALTERNATIVE_TARGET[mogrify] = "${bindir}/mogrify.im7" -ALTERNATIVE_TARGET[montage] = "${bindir}/montage.im7" -ALTERNATIVE_TARGET[stream] = "${bindir}/stream.im7" - -ALTERNATIVE_${PN}-doc = "animate.1 compare.1 composite.1 conjure.1 \ - convert.1 display.1 identify.1 import.1 mogrify.1 montage.1 stream.1" - -ALTERNATIVE_LINK_NAME[animate.1] = "${mandir}/man1/animate.1" -ALTERNATIVE_TARGET[animate.1] = "${mandir}/man1/animate.im7.1" -ALTERNATIVE_LINK_NAME[compare.1] = "${mandir}/man1/compare.1" -ALTERNATIVE_TARGET[compare.1] = "${mandir}/man1/compare.im7.1" -ALTERNATIVE_LINK_NAME[composite.1] = "${mandir}/man1/composite.1" -ALTERNATIVE_TARGET[composite.1] = "${mandir}/man1/composite.im7.1" -ALTERNATIVE_LINK_NAME[conjure.1] = "${mandir}/man1/conjure.1" -ALTERNATIVE_TARGET[conjure.1] = "${mandir}/man1/conjure.im7.1" -ALTERNATIVE_LINK_NAME[convert.1] = "${mandir}/man1/convert.1" -ALTERNATIVE_TARGET[convert.1] = "${mandir}/man1/convert.im7.1" -ALTERNATIVE_LINK_NAME[display.1] = "${mandir}/man1/display.1" -ALTERNATIVE_TARGET[display.1] = "${mandir}/man1/display.im7.1" -ALTERNATIVE_LINK_NAME[identify.1] = "${mandir}/man1/identify.1" -ALTERNATIVE_TARGET[identify.1] = "${mandir}/man1/identify.im7.1" -ALTERNATIVE_LINK_NAME[import.1] = "${mandir}/man1/import.1" -ALTERNATIVE_TARGET[import.1] = "${mandir}/man1/import.im7.1" -ALTERNATIVE_LINK_NAME[mogrify.1] = "${mandir}/man1/mogrify.1" -ALTERNATIVE_TARGET[mogrify.1] = "${mandir}/man1/mogrify.im7.1" -ALTERNATIVE_LINK_NAME[montage.1] = "${mandir}/man1/montage.1" -ALTERNATIVE_TARGET[montage.1] = "${mandir}/man1/montage.im7.1" -ALTERNATIVE_LINK_NAME[stream.1] = "${mandir}/man1/stream.1" -ALTERNATIVE_TARGET[stream.1] = "${mandir}/man1/stream.im7.1" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/imagemagick/imagemagick_7.0.9.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/imagemagick/imagemagick_7.0.9.bb new file mode 100644 index 00000000..3f7d06e2 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/imagemagick/imagemagick_7.0.9.bb @@ -0,0 +1,87 @@ +SUMMARY = "ImageMagick is an image conversion toolkit" +SECTION = "console/utils" +HOMEPAGE = "https://www.imagemagick.org/" +DESCRIPTION = "ImageMagick is a collection of tools for displaying, converting, and \ +editing raster and vector image files. It can read and write over 200 image file formats." +LICENSE = "ImageMagick" +LIC_FILES_CHKSUM = "file://LICENSE;md5=41b4fa9af60c88e61484b02c0561181a" +# FIXME: There are many more checked libraries. All should be added or explicitly disabled to get consistent results. +DEPENDS = "lcms bzip2 jpeg libpng tiff zlib fftw freetype libtool" + +BASE_PV := "${PV}" +PV .= "_13" +SRC_URI = "git://github.com/ImageMagick/ImageMagick.git " +SRCREV = "15b935d64f613b5a0fc9d3fead5c6ec1b0e3908f" + +S = "${WORKDIR}/git" + +inherit autotools pkgconfig update-alternatives + +# xml disabled because it's using xml2-config --prefix to determine prefix which returns just /usr with our libxml2 +# if someone needs xml support then fix it first +EXTRA_OECONF = "--program-prefix= --program-suffix=.im7 --without-perl --disable-openmp --without-xml --disable-opencl" + +CACHED_CONFIGUREVARS = "ac_cv_sys_file_offset_bits=yes" +PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'x11', d)}" +PACKAGECONFIG[graphviz] = "--with-gvc,--without-gvc,graphviz" +PACKAGECONFIG[jp2] = "--with-jp2,,jasper" +PACKAGECONFIG[lzma] = "--with-lzma,--without-lzma,xz" +PACKAGECONFIG[openjpeg] = "--with-openjp2,--without-openjp2,openjpeg" +PACKAGECONFIG[pango] = "--with-pango,--without-pango,pango cairo" +PACKAGECONFIG[rsvg] = "--with-rsvg,--without-rsvg,librsvg" +PACKAGECONFIG[tcmalloc] = "--with-tcmalloc=yes,--with-tcmalloc=no,gperftools" +PACKAGECONFIG[webp] = "--with-webp,--without-webp,libwebp" +PACKAGECONFIG[wmf] = "--with-wmf,--without-wmf,libwmf" +PACKAGECONFIG[x11] = "--with-x,--without-x,virtual/libx11 libxext libxt" + +FILES_${PN} += "${libdir}/ImageMagick-${BASE_PV}/config-Q16* \ + ${datadir}/ImageMagick-7" + +FILES_${PN}-dev += "${libdir}/ImageMagick-${BASE_PV}/modules-Q16/*/*.a" + +FILES_${PN}-dbg += "${libdir}/ImageMagick-${BASE_PV}/modules-Q16/*/.debug/*" + +BBCLASSEXTEND = "native" + +ALTERNATIVE_PRIORITY = "100" + +ALTERNATIVE_${PN} = "animate compare composite conjure convert display \ + identify import mogrify montage stream" + +ALTERNATIVE_TARGET[animate] = "${bindir}/animate.im7" +ALTERNATIVE_TARGET[compare] = "${bindir}/compare.im7" +ALTERNATIVE_TARGET[composite] = "${bindir}/composite.im7" +ALTERNATIVE_TARGET[conjure] = "${bindir}/conjure.im7" +ALTERNATIVE_TARGET[convert] = "${bindir}/convert.im7" +ALTERNATIVE_TARGET[display] = "${bindir}/display.im7" +ALTERNATIVE_TARGET[identify] = "${bindir}/identify.im7" +ALTERNATIVE_TARGET[import] = "${bindir}/import.im7" +ALTERNATIVE_TARGET[mogrify] = "${bindir}/mogrify.im7" +ALTERNATIVE_TARGET[montage] = "${bindir}/montage.im7" +ALTERNATIVE_TARGET[stream] = "${bindir}/stream.im7" + +ALTERNATIVE_${PN}-doc = "animate.1 compare.1 composite.1 conjure.1 \ + convert.1 display.1 identify.1 import.1 mogrify.1 montage.1 stream.1" + +ALTERNATIVE_LINK_NAME[animate.1] = "${mandir}/man1/animate.1" +ALTERNATIVE_TARGET[animate.1] = "${mandir}/man1/animate.im7.1" +ALTERNATIVE_LINK_NAME[compare.1] = "${mandir}/man1/compare.1" +ALTERNATIVE_TARGET[compare.1] = "${mandir}/man1/compare.im7.1" +ALTERNATIVE_LINK_NAME[composite.1] = "${mandir}/man1/composite.1" +ALTERNATIVE_TARGET[composite.1] = "${mandir}/man1/composite.im7.1" +ALTERNATIVE_LINK_NAME[conjure.1] = "${mandir}/man1/conjure.1" +ALTERNATIVE_TARGET[conjure.1] = "${mandir}/man1/conjure.im7.1" +ALTERNATIVE_LINK_NAME[convert.1] = "${mandir}/man1/convert.1" +ALTERNATIVE_TARGET[convert.1] = "${mandir}/man1/convert.im7.1" +ALTERNATIVE_LINK_NAME[display.1] = "${mandir}/man1/display.1" +ALTERNATIVE_TARGET[display.1] = "${mandir}/man1/display.im7.1" +ALTERNATIVE_LINK_NAME[identify.1] = "${mandir}/man1/identify.1" +ALTERNATIVE_TARGET[identify.1] = "${mandir}/man1/identify.im7.1" +ALTERNATIVE_LINK_NAME[import.1] = "${mandir}/man1/import.1" +ALTERNATIVE_TARGET[import.1] = "${mandir}/man1/import.im7.1" +ALTERNATIVE_LINK_NAME[mogrify.1] = "${mandir}/man1/mogrify.1" +ALTERNATIVE_TARGET[mogrify.1] = "${mandir}/man1/mogrify.im7.1" +ALTERNATIVE_LINK_NAME[montage.1] = "${mandir}/man1/montage.1" +ALTERNATIVE_TARGET[montage.1] = "${mandir}/man1/montage.im7.1" +ALTERNATIVE_LINK_NAME[stream.1] = "${mandir}/man1/stream.1" +ALTERNATIVE_TARGET[stream.1] = "${mandir}/man1/stream.im7.1" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/inih/libinih_git.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/inih/libinih_git.bb index 5030c78a..87b1142e 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/inih/libinih_git.bb +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/inih/libinih_git.bb @@ -2,14 +2,15 @@ SUMMARY = "C and C++ INI Library" HOMEPAGE = "http://code.google.com/p/inih/" PV = "0.0+gitr${SRCPV}" PKGV = "${GITPKGVTAG}" -LICENSE = "BSD" +LICENSE = "BSD-3-Clause" LIC_FILES_CHKSUM = "file://LICENSE;md5=dae28cbf28207425e0d0b3eb835f4bde" PR = "r3" # The github repository provides a cmake and pkg-config integration -SRCREV = "25078f7156eb8647b3b35dd25f9ae6f8c4ee0589" -SRC_URI = "git://github.com/OSSystems/inih.git" +SRCREV = "c858aff8c31fa63ef4d1e0176c10e5928cde9a23" +SRC_URI = "git://github.com/OSSystems/inih.git \ + " S = "${WORKDIR}/git" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/iniparser/iniparser/Add-CMake-support.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/iniparser/iniparser/Add-CMake-support.patch new file mode 100644 index 00000000..b666f00f --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/iniparser/iniparser/Add-CMake-support.patch @@ -0,0 +1,63 @@ +Origin: Debian packaging +From: Klee Dienes +Date: Thu, 13 Feb 2014 07:03:26 -0500 +Subject: Add CMake support. + +--- + CMakeLists.txt | 44 ++++++++++++++++++++++++++++++++++++++++++++ + 1 file changed, 44 insertions(+) + create mode 100644 CMakeLists.txt + +--- /dev/null ++++ b/CMakeLists.txt +@@ -0,0 +1,50 @@ ++cmake_minimum_required (VERSION 2.8.8) ++ ++project (iniparser) ++include (GNUInstallDirs) ++ ++include_directories (src) ++ ++set(INIPARSER_SRCS src/dictionary.c src/iniparser.c) ++set(INIPARSER_HDRS src/dictionary.h src/iniparser.h) ++ ++add_library(iniparser-shared SHARED ${INIPARSER_SRCS} ${INIPARSER_HDRS}) ++add_library(iniparser-static STATIC ${INIPARSER_SRCS} ${INIPARSER_HDRS}) ++ ++set_target_properties(iniparser-shared PROPERTIES SOVERSION 1) ++set_target_properties(iniparser-shared PROPERTIES OUTPUT_NAME iniparser) ++set_target_properties(iniparser-static PROPERTIES OUTPUT_NAME iniparser) ++ ++install (TARGETS iniparser-shared ++ LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ++ DESTINATION ${CMAKE_INSTALL_LIBDIR} ++ ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}) ++ ++install (TARGETS iniparser-static ++ LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ++ DESTINATION ${CMAKE_INSTALL_LIBDIR} ++ ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}) ++ ++find_package(Doxygen) ++if (NOT DOXYGEN_FOUND) ++message(FATAL_ERROR "Doxygen is needed to build the documentation. Please install it correctly") ++endif() ++ ++file (WRITE ${CMAKE_CURRENT_BINARY_DIR}/iniparser.dox ++ "@INCLUDE = ${CMAKE_CURRENT_SOURCE_DIR}/doc/iniparser.dox\n" ++ "OUTPUT_DIRECTORY = ${CMAKE_CURRENT_BINARY_DIR}\n" ++ ) ++ ++add_custom_target (doc ALL ++ COMMAND ${DOXYGEN_EXECUTABLE} ${CMAKE_CURRENT_BINARY_DIR}/iniparser.dox ++ SOURCES doc/iniparser.dox) ++ ++enable_testing() ++ ++add_test(NAME testsuite ++ COMMAND make ++ WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/test) ++ ++install (FILES ${INIPARSER_HDRS} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/iniparser) ++ ++install (DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/html DESTINATION ${CMAKE_INSTALL_DOCDIR}) diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/iniparser/iniparser_4.1.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/iniparser/iniparser_4.1.bb new file mode 100644 index 00000000..f4b553a5 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/iniparser/iniparser_4.1.bb @@ -0,0 +1,17 @@ +SUMMARY = "The iniParser library is a simple C library offering INI file parsing services (both reading and writing)." +SECTION = "libs" +HOMEPAGE = "https://github.com/ndevilla/iniparser" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://LICENSE;md5=e02baf71c76e0650e667d7da133379ac" + +DEPENDS = "doxygen-native" + +SRC_URI = "git://github.com/ndevilla/iniparser.git;protocol=https \ + file://Add-CMake-support.patch" + +# tag 4.1 +SRCREV= "0a38e85c9cde1e099ca3bf70083bd00f89c3e5b6" + +S = "${WORKDIR}/git" + +inherit cmake diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/itstool/itstool/0001-Native-Don-t-use-build-time-hardcoded-python-binary-.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/itstool/itstool/0001-Native-Don-t-use-build-time-hardcoded-python-binary-.patch new file mode 100644 index 00000000..19a858bd --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/itstool/itstool/0001-Native-Don-t-use-build-time-hardcoded-python-binary-.patch @@ -0,0 +1,35 @@ +From 335ef14fc801c9dfbe7e5692dc71cfbe72049d2b Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Andreas=20M=C3=BCller?= +Date: Sun, 27 Oct 2019 16:38:52 +0100 +Subject: [PATCH] Native: Don't use build time hardcoded python binary path. +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +This is same patch as used for target build except that we do not use the +'-S' and '-s' option because '-S' is relatively young [1] and elder build-host +don't support it [2] + +[1] https://github.com/coreutils/coreutils/commit/668306ed86c8c79b0af0db8b9c882654ebb66db2#diff-83d9d52b1f12ac589739ab1334ae4f30 +[2] https://errors.yoctoproject.org/Errors/Details/274743/ + +Upstream-Status: Inappropriate [OE specific] + +Signed-off-by: Andreas Müller +--- + itstool.in | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/itstool.in b/itstool.in +index e64cd34..05d264f 100755 +--- a/itstool.in ++++ b/itstool.in +@@ -1,4 +1,4 @@ +-#!@PYTHON@ -s ++#!/usr/bin/env python3 + # + # Copyright (c) 2010-2018 Shaun McCance + # +-- +2.21.0 + diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/itstool/itstool/0002-Don-t-use-build-time-hardcoded-python-binary-path.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/itstool/itstool/0002-Don-t-use-build-time-hardcoded-python-binary-path.patch new file mode 100644 index 00000000..b9110533 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/itstool/itstool/0002-Don-t-use-build-time-hardcoded-python-binary-path.patch @@ -0,0 +1,29 @@ +From cd9b56224895576125e91cca317ace8a80f3eb77 Mon Sep 17 00:00:00 2001 +From: Piotr Tworek +Date: Sat, 27 Jul 2019 10:19:11 +0200 +Subject: [PATCH] Don't use build time hardcoded python binary path. + +This path obviously won't work on target since they refer to build +machine directory structure. Native builds will also fail if local.conf +has INHERIT+=rm_work. Instread of hardcoding path to python binary use +whatever is found in PATH first. This should also allow the tool to use +python3 binary provided in recipe-sysroot-native. + +Upstream-Status: Inappropriate [OE specific] +--- + itstool.in | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/itstool.in b/itstool.in +index b3c0033..7df2476 100755 +--- a/itstool.in ++++ b/itstool.in +@@ -1,4 +1,4 @@ +-#!@PYTHON@ -s ++#!/usr/bin/env -S python3 -s + # + # Copyright (c) 2010-2018 Shaun McCance + # +-- +2.21.0 + diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/itstool/itstool_2.0.5.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/itstool/itstool_2.0.5.bb deleted file mode 100644 index 166e95b3..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/itstool/itstool_2.0.5.bb +++ /dev/null @@ -1,22 +0,0 @@ -SUMMARY = "ITS Tool allows you to translate your XML documents with PO files" -HOMEPAGE = "http://itstool.org/" -LICENSE = "GPLv3" -LIC_FILES_CHKSUM = "file://COPYING;md5=59c57b95fd7d0e9e238ebbc7ad47c5a5" - -inherit autotools python3native - -DEPENDS = "python3-lxml-native" - -SRC_URI = "http://files.itstool.org/${BPN}/${BPN}-${PV}.tar.bz2" -SRC_URI[md5sum] = "655c6f78fc64faee45adcc45ccc5a57e" -SRC_URI[sha256sum] = "100506f8df62cca6225ec3e631a8237e9c04650c77495af4919ac6a100d4b308" - -do_install_append() { - # fix shebang of main script - sed -i 's:^#!${WORKDIR}.*${PYTHON_PN} -s:#!${bindir_native}/${PYTHON_PN} -s:' ${D}${bindir}/itstool -} - -BBCLASSEXTEND = "native" - -RDEPENDS_${PN} += "python3-lxml" - diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/itstool/itstool_2.0.6.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/itstool/itstool_2.0.6.bb new file mode 100644 index 00000000..8290c5e5 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/itstool/itstool_2.0.6.bb @@ -0,0 +1,20 @@ +SUMMARY = "ITS Tool allows you to translate your XML documents with PO files" +HOMEPAGE = "http://itstool.org/" +LICENSE = "GPLv3" +LIC_FILES_CHKSUM = "file://COPYING;md5=59c57b95fd7d0e9e238ebbc7ad47c5a5" + +inherit autotools python3native + +DEPENDS = "libxml2-native" + +SRC_URI = "http://files.itstool.org/${BPN}/${BPN}-${PV}.tar.bz2" +SRC_URI_append_class-native = " file://0001-Native-Don-t-use-build-time-hardcoded-python-binary-.patch" +SRC_URI_append_class-target = " file://0002-Don-t-use-build-time-hardcoded-python-binary-path.patch" + +SRC_URI[md5sum] = "4306eeba4f4aee6b393d14f9c3c57ca1" +SRC_URI[sha256sum] = "6233cc22726a9a5a83664bf67d1af79549a298c23185d926c3677afa917b92a9" + +BBCLASSEXTEND = "native" + +RDEPENDS_${PN} += "libxml2-python" +RDEPENDS_${PN}_class-native = "" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/joe/joe/0001-adjust-signature-of-main.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/joe/joe/0001-adjust-signature-of-main.patch deleted file mode 100644 index 00f48e8a..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/joe/joe/0001-adjust-signature-of-main.patch +++ /dev/null @@ -1,30 +0,0 @@ -From 27e4639254f2b2eb7d04790bd8cf16ecfcbac1c2 Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Wed, 19 Oct 2016 01:07:16 +0000 -Subject: [PATCH] adjust signature of main() - -clang complains about the types of main() function - -Upstream-Status: Pending - -Signed-off-by: Khem Raj ---- - main.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/main.c b/main.c -index 81ba543..ee7506c 100644 ---- a/main.c -+++ b/main.c -@@ -159,7 +159,7 @@ extern int breakflg; - - unsigned char **mainenv; - --int main(int argc, unsigned char **argv, unsigned char **envv) -+int main(int argc, char **argv, char **envv) - { - CAP *cap; - unsigned char *s; --- -1.9.1 - diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/joe/joe_3.1.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/joe/joe_3.1.bb deleted file mode 100644 index 1ad355b5..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/joe/joe_3.1.bb +++ /dev/null @@ -1,17 +0,0 @@ -SECTION = "console/utils" -SUMMARY = "Console text editor with good functionality, good choice for vi-haters" -HOMEPAGE = "http://joe-editor.sourceforge.net/" -LICENSE = "GPLv1" -LIC_FILES_CHKSUM = "file://COPYING;md5=da10ed7cf8038981c580e11c1d3e8fb6" - -SRC_URI = "${SOURCEFORGE_MIRROR}/joe-editor/joe-${PV}.tar.gz \ - file://0001-adjust-signature-of-main.patch \ - " - -PACKAGECONFIG ??= "curses" -PACKAGECONFIG[curses] = "--enable-curses,--disable-curses,ncurses,ncurses-terminfo" - -inherit autotools - -SRC_URI[md5sum] = "2a6ef018870fca9b7df85401994fb0e0" -SRC_URI[sha256sum] = "252390e4bc687957f09f334095904c8cc53b39c7b663ed47861ae1d11aef5946" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/joe/joe_4.6.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/joe/joe_4.6.bb new file mode 100644 index 00000000..b79e028f --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/joe/joe_4.6.bb @@ -0,0 +1,15 @@ +SECTION = "console/utils" +SUMMARY = "Console text editor with good functionality, good choice for vi-haters" +HOMEPAGE = "http://joe-editor.sourceforge.net/" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263" + +SRC_URI = "${SOURCEFORGE_MIRROR}/joe-editor/joe-${PV}.tar.gz" + +PACKAGECONFIG ??= "curses" +PACKAGECONFIG[curses] = "--enable-curses,--disable-curses,ncurses,ncurses-terminfo" + +inherit autotools-brokensep + +SRC_URI[md5sum] = "9017484e6116830d846678b625ea5c43" +SRC_URI[sha256sum] = "495a0a61f26404070fe8a719d80406dc7f337623788e445b92a9f6de512ab9de" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/lcms/lcms_2.7.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/lcms/lcms_2.7.bb deleted file mode 100644 index 12ccb205..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/lcms/lcms_2.7.bb +++ /dev/null @@ -1,15 +0,0 @@ -SUMMARY = "Little cms is a small-footprint, speed optimized color management engine" -SECTION = "libs" -LICENSE = "MIT" -LIC_FILES_CHKSUM = "file://COPYING;md5=6c786c3b7a4afbd3c990f1b81261d516" -SRC_URI = "${SOURCEFORGE_MIRROR}/lcms/lcms2-${PV}.tar.gz" -SRC_URI[md5sum] = "06c1626f625424a811fb4b5eb070839d" -SRC_URI[sha256sum] = "4524234ae7de185e6b6da5d31d6875085b2198bc63b1211f7dde6e2d197d6a53" - -DEPENDS = "tiff" - -BBCLASSEXTEND = "native" - -S = "${WORKDIR}/lcms2-${PV}" - -inherit autotools diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/lcms/lcms_2.9.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/lcms/lcms_2.9.bb new file mode 100644 index 00000000..be72d765 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/lcms/lcms_2.9.bb @@ -0,0 +1,16 @@ +SUMMARY = "Little cms is a small-footprint, speed optimized color management engine" +SECTION = "libs" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://COPYING;md5=6c786c3b7a4afbd3c990f1b81261d516" + +SRC_URI = "${SOURCEFORGE_MIRROR}/lcms/lcms2-${PV}.tar.gz" +SRC_URI[md5sum] = "8de1b7724f578d2995c8fdfa35c3ad0e" +SRC_URI[sha256sum] = "48c6fdf98396fa245ed86e622028caf49b96fa22f3e5734f853f806fbc8e7d20" + +DEPENDS = "tiff" + +BBCLASSEXTEND = "native" + +S = "${WORKDIR}/lcms2-${PV}" + +inherit autotools diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/lcov/lcov_1.14.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/lcov/lcov_1.14.bb index fd02f4a7..26e797aa 100755 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/lcov/lcov_1.14.bb +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/lcov/lcov_1.14.bb @@ -13,6 +13,7 @@ RDEPENDS_${PN} += " \ perl \ perl-module-filehandle \ perl-module-getopt-std \ + perl-module-digest-md5 \ perl-module-digest-sha \ perl-module-constant \ perl-module-cwd \ diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/libbytesize/libbytesize_1.4.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/libbytesize/libbytesize_1.4.bb deleted file mode 100644 index 863ce428..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/libbytesize/libbytesize_1.4.bb +++ /dev/null @@ -1,33 +0,0 @@ -DESCRIPTION = "The goal of this project is to provide a tiny library that would \ -facilitate the common operations with sizes in bytes." -HOMEPAGE = "https://github.com/rhinstaller/libbytesize" -LICENSE = "LGPLv2+" -SECTION = "devel/lib" - -LIC_FILES_CHKSUM = "file://LICENSE;md5=c07cb499d259452f324bb90c3067d85c" - -S = "${WORKDIR}/git" -B = "${S}" - -SRCREV = "ebbda2217d177d2a17f917d7a3e3d132a26db791" -SRC_URI = "git://github.com/rhinstaller/libbytesize;branch=master \ -" - -inherit gettext autotools python3native - -DEPENDS += " \ - libpcre \ - gmp \ - mpfr \ -" - -FILES_${PN} += "${PYTHON_SITEPACKAGES_DIR}/bytesize" - -PACKAGECONFIG ??= "python3" -PACKAGECONFIG[python3] = "--with-python3, --without-python3,,python3" -PACKAGECONFIG[python2] = "--with-python2, --without-python2,,python2" -PACKAGECONFIG[doc] = "--with-gtk-doc, --without-gtk-doc, gtk-doc-native" - -EXTRA_OEMAKE = "py3libdir=${PYTHON_SITEPACKAGES_DIR}" - - diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/libbytesize/libbytesize_2.1.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/libbytesize/libbytesize_2.1.bb new file mode 100644 index 00000000..1a5c1848 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/libbytesize/libbytesize_2.1.bb @@ -0,0 +1,30 @@ +DESCRIPTION = "The goal of this project is to provide a tiny library that would \ +facilitate the common operations with sizes in bytes." +HOMEPAGE = "https://github.com/rhinstaller/libbytesize" +LICENSE = "LGPLv2+" +SECTION = "devel/lib" + +LIC_FILES_CHKSUM = "file://LICENSE;md5=c07cb499d259452f324bb90c3067d85c" + +S = "${WORKDIR}/git" +B = "${S}" + +SRCREV = "9ecc1042109528051983261ffd491d45e7c471e1" +SRC_URI = "git://github.com/rhinstaller/libbytesize;branch=master" + +inherit gettext autotools python3native + +DEPENDS += " \ + libpcre2 \ + gmp \ + mpfr \ + gettext-native \ +" + +FILES_${PN} += "${PYTHON_SITEPACKAGES_DIR}/bytesize" + +PACKAGECONFIG ??= "python3" +PACKAGECONFIG[python3] = "--with-python3, --without-python3,,python3-core" + +EXTRA_OECONF = "--without-gtk-doc" +EXTRA_OEMAKE = "py3libdir=${PYTHON_SITEPACKAGES_DIR}" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/libeigen/libeigen_3.3.7.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/libeigen/libeigen_3.3.7.bb index e1deb662..f638848d 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/libeigen/libeigen_3.3.7.bb +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/libeigen/libeigen_3.3.7.bb @@ -18,3 +18,5 @@ FILES_${PN}-dev = "${includedir} ${datadir}/eigen3/cmake ${datadir}/cmake/Module # ${PN} is empty so we need to tweak -dev and -dbg package dependencies RDEPENDS_${PN}-dev = "" RRECOMMENDS_${PN}-dbg = "${PN}-dev (= ${EXTENDPKGV})" + +BBCLASSEXTEND = "native nativesdk" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/libfann/libfann_git.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/libfann/libfann_git.bb index c986e177..eae24461 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/libfann/libfann_git.bb +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/libfann/libfann_git.bb @@ -15,3 +15,5 @@ SRC_URI = "git://github.com/libfann/fann.git;branch=master \ PV = "2.2.0+git${SRCPV}" S = "${WORKDIR}/git" + +EXTRA_OECMAKE = "-DLIB_SUFFIX=${@d.getVar('baselib').replace('lib', '')}" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/libftdi/libftdi_1.4.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/libftdi/libftdi_1.4.bb index 4fc6eb09..c33c7911 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/libftdi/libftdi_1.4.bb +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/libftdi/libftdi_1.4.bb @@ -9,7 +9,7 @@ LIC_FILES_CHKSUM= "\ file://COPYING.LIB;md5=5f30f0716dfdd0d91eb439ebec522ec2 \ " -DEPENDS = "libusb1" +DEPENDS = "libusb1 python3" SRC_URI = "http://www.intra2net.com/en/developer/${BPN}/download/${BPN}1-${PV}.tar.bz2" SRC_URI[md5sum] = "0c09fb2bb19a57c839fa6845c6c780a2" @@ -17,11 +17,17 @@ SRC_URI[sha256sum] = "ec36fb49080f834690c24008328a5ef42d3cf584ef4060f3a35aa4681c S = "${WORKDIR}/${BPN}1-${PV}" -inherit cmake binconfig pkgconfig +inherit cmake binconfig pkgconfig python3native PACKAGECONFIG ??= "" PACKAGECONFIG[cpp-wrapper] = "-DFTDI_BUILD_CPP=on -DFTDIPP=on,-DFTDI_BUILD_CPP=off -DFTDIPP=off,boost" -EXTRA_OECMAKE = "-DLIB_SUFFIX=${@d.getVar('baselib').replace('lib', '')}" +EXTRA_OECMAKE = "-DLIB_SUFFIX=${@d.getVar('baselib').replace('lib', '')} \ + -DPYTHON_LIBRARY=${STAGING_LIBDIR}/lib${PYTHON_DIR}${PYTHON_ABI}.so \ + -DPYTHON_INCLUDE_DIR=${STAGING_INCDIR}/${PYTHON_DIR}${PYTHON_ABI}" BBCLASSEXTEND = "native nativesdk" + +PACKAGES += "${PN}-python" + +FILES_${PN}-python = "${libdir}/${PYTHON_DIR}/site-packages/" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/libgit2/libgit2_0.27.8.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/libgit2/libgit2_0.27.8.bb deleted file mode 100644 index a4340890..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/libgit2/libgit2_0.27.8.bb +++ /dev/null @@ -1,25 +0,0 @@ -SUMMARY = "the Git linkable library" -HOMEPAGE = "http://libgit2.github.com/" -LICENSE = "GPL-2.0-with-GCC-exception & MIT" -LIC_FILES_CHKSUM = "file://COPYING;md5=3f2cd5d3cccd71d62066ba619614592b" - -DEPENDS = "curl openssl zlib libssh2 libgcrypt" - -SRC_URI = "git://github.com/libgit2/libgit2.git;branch=maint/v0.27" -#v0.27.8 -SRCREV = "2882803ca2b2cdedd069746422155a23fdd002b2" - -S = "${WORKDIR}/git" - -inherit cmake - -EXTRA_OECMAKE = "\ - -DTHREADSAFE=ON \ - -DBUILD_CLAR=OFF \ - -DSHA1_TYPE="builtin" \ - -DCMAKE_BUILD_TYPE=RelWithDebInfo \ - -DBUILD_EXAMPLES=OFF \ - -DLIB_INSTALL_DIR=${libdir} \ -" - -BBCLASSEXTEND = "native" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/libgit2/libgit2_0.28.4.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/libgit2/libgit2_0.28.4.bb new file mode 100644 index 00000000..9b9c1910 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/libgit2/libgit2_0.28.4.bb @@ -0,0 +1,21 @@ +SUMMARY = "the Git linkable library" +HOMEPAGE = "http://libgit2.github.com/" +LICENSE = "GPL-2.0-with-GCC-exception & MIT" +LIC_FILES_CHKSUM = "file://COPYING;md5=3f2cd5d3cccd71d62066ba619614592b" + +DEPENDS = "curl openssl zlib libssh2 libgcrypt" + +SRC_URI = "git://github.com/libgit2/libgit2.git;branch=maint/v0.28" +SRCREV = "106a5f27586504ea371528191f0ea3aac2ad432b" + +S = "${WORKDIR}/git" + +inherit cmake + +EXTRA_OECMAKE = "\ + -DBUILD_CLAR=OFF \ + -DCMAKE_BUILD_TYPE=RelWithDebInfo \ + -DLIB_INSTALL_DIR=${libdir} \ +" + +BBCLASSEXTEND = "native" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/libgpiod/libgpiod.inc b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/libgpiod/libgpiod.inc index 89679cb9..07ce35a7 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/libgpiod/libgpiod.inc +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/libgpiod/libgpiod.inc @@ -8,11 +8,9 @@ SRC_URI = "https://www.kernel.org/pub/software/libs/libgpiod/${BP}.tar.xz" inherit autotools pkgconfig PACKAGECONFIG[tests] = "--enable-tests,--disable-tests,kmod udev" -PACKAGECONFIG[tools] = "--enable-tools,--disable-tools," + +EXTRA_OECONF = "--enable-tools" PACKAGES =+ " ${PN}-tools" FILES_${PN}-tools = "${bindir}/*" - -RRECOMMENDS_TOOLS = "${@bb.utils.contains('PACKAGECONFIG', 'tools', '${PN}-tools', '',d)}" -RRECOMMENDS_${PN} += "${RRECOMMENDS_TOOLS}" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/libgpiod/libgpiod_0.3.3.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/libgpiod/libgpiod_0.3.3.bb index 3ecfffdd..c4d2bddf 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/libgpiod/libgpiod_0.3.3.bb +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/libgpiod/libgpiod_0.3.3.bb @@ -1,7 +1,6 @@ require libgpiod.inc -# enable tools -PACKAGECONFIG ?= "tools" +PACKAGECONFIG ?= "" PACKAGECONFIG[tests] = "--enable-tests,--disable-tests,kmod udev" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/libgpiod/libgpiod_1.4.1.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/libgpiod/libgpiod_1.4.1.bb new file mode 100644 index 00000000..0391deb8 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/libgpiod/libgpiod_1.4.1.bb @@ -0,0 +1,21 @@ +require libgpiod.inc + +DEPENDS += "autoconf-archive-native" + +SRC_URI[md5sum] = "585b4bb431f99c4ba9b3ee58b9d494c1" +SRC_URI[sha256sum] = "21ae8fd1f8dafc2eb2ba50e652390cf533d21351419a7426255895cb52e21b1c" + +# enable cxx bindings +PACKAGECONFIG ?= "cxx" + +PACKAGECONFIG[cxx] = "--enable-bindings-cxx,--disable-bindings-cxx" +PACKAGECONFIG[tests] = "--enable-tests,--disable-tests,kmod udev" + +PACKAGECONFIG[python3] = "--enable-bindings-python,--disable-bindings-python,python3" + +inherit python3native + +PACKAGES =+ "${PN}-python" +FILES_${PN}-python = "${PYTHON_SITEPACKAGES_DIR}" +RRECOMMENDS_PYTHON = "${@bb.utils.contains('PACKAGECONFIG', 'python3', '${PN}-python', '',d)}" +RRECOMMENDS_${PN}-python += "${RRECOMMENDS_PYTHON}" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/libgpiod/libgpiod_1.4.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/libgpiod/libgpiod_1.4.bb deleted file mode 100644 index 71a45edb..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/libgpiod/libgpiod_1.4.bb +++ /dev/null @@ -1,20 +0,0 @@ -require libgpiod.inc - -DEPENDS += "autoconf-archive-native" - -SRC_URI[md5sum] = "bd52d764017215a30e2f014d2081dc3e" -SRC_URI[sha256sum] = "ebde83aaf14be3abd33e7a90faa487a2ee231e242897afe7fdefb765386b3c8b" - -# enable tools and cxx bindings -PACKAGECONFIG ?= "cxx tools" - -PACKAGECONFIG[cxx] = "--enable-bindings-cxx,--disable-bindings-cxx" -PACKAGECONFIG[tests] = "--enable-tests,--disable-tests,kmod udev" - -PACKAGECONFIG[python3] = "--enable-bindings-python,--disable-bindings-python,python3" -inherit ${@bb.utils.contains('PACKAGECONFIG', 'python3', 'python3native', '', d)} - -PACKAGES =+ "${PN}-python" -FILES_${PN}-python = "${PYTHON_SITEPACKAGES_DIR}" -RRECOMMENDS_PYTHON = "${@bb.utils.contains('PACKAGECONFIG', 'python3', '${PN}-python', '',d)}" -RRECOMMENDS_${PN}-python += "${RRECOMMENDS_PYTHON}" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/libgusb/libgusb_git.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/libgusb/libgusb_git.bb new file mode 100644 index 00000000..e3c0bdd1 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/libgusb/libgusb_git.bb @@ -0,0 +1,12 @@ +SUMMARY = "GUsb is a GObject wrapper for libusb1" +LICENSE = "LGPLv2.1" +LIC_FILES_CHKSUM = "file://COPYING;md5=2d5025d4aa3495befef8f17206a5b0a1" + +DEPENDS = "glib-2.0 libusb" + +inherit meson gobject-introspection gtk-doc gettext vala + +SRC_URI = "git://github.com/hughsie/libgusb.git" +SRCREV = "636efc0624aa2a88174220fcabc9764c13d7febf" +PV = "0.3.0+git${SRCPV}" +S = "${WORKDIR}/git" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/libiio/libiio_git.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/libiio/libiio_git.bb index cc0efccf..b53ba464 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/libiio/libiio_git.bb +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/libiio/libiio_git.bb @@ -4,14 +4,15 @@ SECTION = "libs" LICENSE = "LGPLv2.1+" LIC_FILES_CHKSUM = "file://COPYING.txt;md5=7c13b3376cea0ce68d2d2da0a1b3a72c" -SRCREV = "6ecff5d46e1b12c2859f0b63a73282940e3402bb" -PV = "0.15+git${SRCPV}" +# v0.18 + a single commit fixing the build +SRCREV = "5090603d01779bb1717fb0c50953330e8770550f" +PV = "0.18+git${SRCPV}" SRC_URI = "git://github.com/analogdevicesinc/libiio.git;protocol=https" S = "${WORKDIR}/git" -inherit cmake pythonnative systemd +inherit cmake python3native systemd DEPENDS = " \ flex-native bison-native libaio \ @@ -24,22 +25,24 @@ EXTRA_OECMAKE = " \ ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', '-DWITH_SYSTEMD=ON -DSYSTEMD_UNIT_INSTALL_DIR=${systemd_system_unitdir}', '', d)} \ " -PACKAGECONFIG ??= "USB_BACKEND NETWORK_BACKEND PYTHON_BINDINGS" +PACKAGECONFIG ??= "usb_backend network_backend" -PACKAGECONFIG[USB_BACKEND] = "-DWITH_USB_BACKEND=ON,-DWITH_USB_BACKEND=OFF,libusb1,libxml2" -PACKAGECONFIG[NETWORK_BACKEND] = "-DWITH_NETWORK_BACKEND=ON,-DWITH_NETWORK_BACKEND=OFF,libxml2" -PACKAGECONFIG[PYTHON_BINDINGS] = ",,python" +PACKAGECONFIG[usb_backend] = "-DWITH_USB_BACKEND=ON,-DWITH_USB_BACKEND=OFF,libusb1,libxml2" +PACKAGECONFIG[network_backend] = "-DWITH_NETWORK_BACKEND=ON,-DWITH_NETWORK_BACKEND=OFF,libxml2" +PACKAGECONFIG[libiio-python3] = "-DPYTHON_BINDINGS=ON,-DPYTHON_BINDINGS=OFF" -PACKAGES =+ "${PN}-iiod ${PN}-tests ${PN}-python" +inherit ${@bb.utils.contains('PACKAGECONFIG', 'libiio-python3', 'distutils3-base', '', d)} -RDEPENDS_${PN}-python = "${PN} python-ctypes python-stringold" +PACKAGES =+ "${PN}-iiod ${PN}-tests ${PN}-${PYTHON_PN}" + +RDEPENDS_${PN}-${PYTHON_PN} = "${PN} ${PYTHON_PN}-ctypes ${PYTHON_PN}-stringold" FILES_${PN}-iiod = " \ ${sbindir}/iiod \ ${systemd_system_unitdir}/iiod.service \ " FILES_${PN}-tests = "${bindir}" -FILES_${PN}-python = "${PYTHON_SITEPACKAGES_DIR}" +FILES_${PN}-${PYTHON_PN} = "${PYTHON_SITEPACKAGES_DIR}" SYSTEMD_PACKAGES = "${PN}-iiod" SYSTEMD_SERVICE_${PN}-iiod = "iiod.service" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/libmicrohttpd/libmicrohttpd_0.9.59.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/libmicrohttpd/libmicrohttpd_0.9.59.bb deleted file mode 100644 index b44c66af..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/libmicrohttpd/libmicrohttpd_0.9.59.bb +++ /dev/null @@ -1,28 +0,0 @@ -DESCRIPTION = "A small C library that is supposed to make it easy to run an HTTP server as part of another application" -HOMEPAGE = "http://www.gnu.org/software/libmicrohttpd/" -LICENSE = "LGPL-2.1+" -LIC_FILES_CHKSUM = "file://COPYING;md5=9331186f4f80db7da0e724bdd6554ee5" -SECTION = "net" -DEPENDS = "file" - -SRC_URI = "http://ftp.gnu.org/gnu/libmicrohttpd/${BPN}-${PV}.tar.gz" -SRC_URI[md5sum] = "8ab5123535549195aff19e91b4e49f48" -SRC_URI[sha256sum] = "9b9ccd7d0b11b0e179f1f58dc2caa3e0c62c8609e1e1dc7dcaadf941b67d923c" - -inherit autotools lib_package pkgconfig gettext - -CFLAGS += "-pthread -D_REENTRANT" - -EXTRA_OECONF += "--disable-static --with-gnutls=${STAGING_LIBDIR}/../" - -PACKAGECONFIG ?= "curl https" -PACKAGECONFIG_append_class-target = "\ - ${@bb.utils.filter('DISTRO_FEATURES', 'largefile', d)} \ -" -PACKAGECONFIG[largefile] = "--enable-largefile,--disable-largefile,," -PACKAGECONFIG[curl] = "--enable-curl,--disable-curl,curl," -PACKAGECONFIG[https] = "--enable-https,--disable-https,libgcrypt gnutls," - -do_compile_append() { - sed -i s:-L${STAGING_LIBDIR}::g libmicrohttpd.pc -} diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/libmicrohttpd/libmicrohttpd_0.9.69.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/libmicrohttpd/libmicrohttpd_0.9.69.bb new file mode 100644 index 00000000..4daeaf75 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/libmicrohttpd/libmicrohttpd_0.9.69.bb @@ -0,0 +1,30 @@ +DESCRIPTION = "A small C library that is supposed to make it easy to run an HTTP server as part of another application" +HOMEPAGE = "http://www.gnu.org/software/libmicrohttpd/" +LICENSE = "LGPL-2.1+" +LIC_FILES_CHKSUM = "file://COPYING;md5=57d09285feac8a64efa878e692b14f36" +SECTION = "net" + +DEPENDS = "file" + +SRC_URI = "${GNU_MIRROR}/libmicrohttpd/${BPN}-${PV}.tar.gz \ +" +SRC_URI[md5sum] = "3ce03db1f10007517cecf05e040069af" +SRC_URI[sha256sum] = "fb9b6b148b787493e637d3083588711e65cbcb726fa02cee2cd543c5de27e37e" + +inherit autotools lib_package pkgconfig gettext + +CFLAGS += "-pthread -D_REENTRANT" + +EXTRA_OECONF += "--disable-static --with-gnutls=${STAGING_LIBDIR}/../" + +PACKAGECONFIG ?= "curl https" +PACKAGECONFIG_append_class-target = "\ + ${@bb.utils.filter('DISTRO_FEATURES', 'largefile', d)} \ +" +PACKAGECONFIG[largefile] = "--enable-largefile,--disable-largefile,," +PACKAGECONFIG[curl] = "--enable-curl,--disable-curl,curl," +PACKAGECONFIG[https] = "--enable-https,--disable-https,libgcrypt gnutls," + +do_compile_append() { + sed -i s:-L${STAGING_LIBDIR}::g libmicrohttpd.pc +} diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/libmxml/libmxml_3.1.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/libmxml/libmxml_3.1.bb new file mode 100644 index 00000000..4e77d6cc --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/libmxml/libmxml_3.1.bb @@ -0,0 +1,33 @@ +DESCRIPTION = "Tiny XML Library" +LICENSE = "Apache-2.0" +LIC_FILES_CHKSUM = "file://LICENSE;md5=86d3f3a95c324c9479bd8986968f4327" +HOMEPAGE = "https://www.msweet.org/mxml/" +BUGTRACKER = "https://github.com/michaelrsweet/mxml/issues" + +SRC_URI = "git://github.com/michaelrsweet/mxml.git" +SRCREV = "e483e5fd8a33386fd46967681521bdd2da2b548f" +S = "${WORKDIR}/git" + +inherit autotools + +PACKAGECONFIG ??= "threads" +PACKAGECONFIG[threads] = "--enable-threads,--disable-threads" + +# Package does not support out of tree builds. +B = "${S}" + +# MXML uses autotools but it explicitly states it does not support autoheader. +EXTRA_AUTORECONF = "--exclude=autopoint,autoheader" + +do_configure_prepend() { + # Respect optimization CFLAGS specified by OE. + sed -e 's/-Os -g//' -i ${S}/configure.ac + + # Enable verbose compilation output. This is required for extra QA checks to work. + sed -e '/.SILENT:/d' -i ${S}/Makefile.in +} + +do_install() { + # Package uses DSTROOT instread of standard DESTDIR to specify install location. + oe_runmake install DSTROOT=${D} +} diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/libmxml/libmxml_git.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/libmxml/libmxml_git.bb deleted file mode 100644 index b17fc67e..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/libmxml/libmxml_git.bb +++ /dev/null @@ -1,44 +0,0 @@ -DESCRIPTION = "Tiny XML Library" -LICENSE = "Apache-2.0" -LIC_FILES_CHKSUM = "file://LICENSE;md5=86d3f3a95c324c9479bd8986968f4327" -HOMEPAGE = "https://www.msweet.org/mxml/" -BUGTRACKER = "https://github.com/michaelrsweet/mxml/issues" - -SRC_URI = "git://github.com/michaelrsweet/mxml.git" -SRCREV = "c7755b6992a2afdd34dde47fc9be97f1237cfded" -S = "${WORKDIR}/git" -# v3.0 -PV = "3.0" - -CONFIGUREOPTS = " --prefix=${prefix} \ - --bindir=${bindir} \ - --sbindir=${sbindir} \ - --libexecdir=${libexecdir} \ - --datadir=${datadir} \ - --sysconfdir=${sysconfdir} \ - --sharedstatedir=${sharedstatedir} \ - --localstatedir=${localstatedir} \ - --libdir=${libdir} \ - --includedir=${includedir} \ - --oldincludedir=${oldincludedir} \ - --infodir=${infodir} \ - --mandir=${mandir} \ - --host=${TARGET_SYS} \ - --build=${BUILD_SYS} \ - ${PACKAGECONFIG_CONFARGS} \ - " - -do_configure() { - install -m 0755 ${STAGING_DATADIR_NATIVE}/gnu-config/config.guess ${S} - install -m 0755 ${STAGING_DATADIR_NATIVE}/gnu-config/config.sub ${S} - ./configure ${CONFIGUREOPTS} --enable-shared -} - -do_install () { - export DSTROOT=${D} - oe_runmake install -} - -PACKAGES += " ${PN}-bin " -FILES_${PN} = "${libdir}/*" -FILES_${PN}-bin = "${bindir}/*" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/libnih/libnih-1.0.3/0001-signal.c-SIGCLD-and-SIGCHILD-are-same-on-sytem-V-sys.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/libnih/libnih-1.0.3/0001-signal.c-SIGCLD-and-SIGCHILD-are-same-on-sytem-V-sys.patch deleted file mode 100644 index a43b4b17..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/libnih/libnih-1.0.3/0001-signal.c-SIGCLD-and-SIGCHILD-are-same-on-sytem-V-sys.patch +++ /dev/null @@ -1,28 +0,0 @@ -From f1b9992caf9910f9f7afae401045e42572cc84ff Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Sat, 1 Apr 2017 08:50:35 -0700 -Subject: [PATCH] signal.c: SIGCLD and SIGCHILD are same on sytem V systems - -Musl drops the SIGCLD legacy - -Signed-off-by: Khem Raj ---- - nih/signal.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/nih/signal.c b/nih/signal.c -index a241df9..691c8e6 100644 ---- a/nih/signal.c -+++ b/nih/signal.c -@@ -87,7 +87,7 @@ static const SignalName signal_names[] = { - { SIGSTKFLT, "STKFLT" }, - #endif - { SIGCHLD, "CHLD" }, -- { SIGCLD, "CLD" }, -+ { SIGCHLD, "CLD" }, - { SIGCONT, "CONT" }, - { SIGSTOP, "STOP" }, - { SIGTSTP, "TSTP" }, --- -2.12.1 - diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/libnih/libnih-1.0.3/libnih_1.0.3-4ubuntu16.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/libnih/libnih-1.0.3/libnih_1.0.3-4ubuntu16.patch deleted file mode 100644 index 5d125c85..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/libnih/libnih-1.0.3/libnih_1.0.3-4ubuntu16.patch +++ /dev/null @@ -1,3593 +0,0 @@ ---- libnih-1.0.3.orig/ChangeLog -+++ libnih-1.0.3/ChangeLog -@@ -1,3 +1,84 @@ -+2013-03-13 Steve Langasek -+ -+ * nih/watch.c (nih_watch_walk_filter): New NihFileFilter function -+ passed to nih_dir_walk_scan() to ensure the nih_watch_new() filter -+ function is passed the NihWatch data rather than the data passed to -+ the nih_dir_walk() NihFileVisitor function (LP: #776532). -+ -+ * nih/tests/test_watch.c (test_new): New test "with filter and data" -+ to ensure filter is passed correct value. -+ -+2013-02-28 James Hunt -+ -+ * Removal of gcc 'malloc' function attribute resulting from -+ a clarification in its description which makes its use invalid. -+ (LP: #1123588). -+ -+2013-02-05 James Hunt -+ -+ * nih/logging.c: nih_log_abort_message(): Remove erroneous check -+ left over from use of __abort_msg weak symbol. -+ * nih/tests/test_logging.c: Remove unecessary check on whether -+ __nih_abort_msg has an address. -+ -+2012-12-13 Stéphane Graber -+ -+ * nih-dbus-tool/type.c, nih-dbus-tool/marshal.c: Update dbus code -+ generator to allow for empty lists for type 'as'. This drops the -+ != NULL check for NULL terminated arrays and moves the iteration -+ loop inside an 'if' statement. -+ -+2012-12-11 Dmitrijs Ledkovs -+ -+ * nih/file.c (nih_dir_walk_scan): Fallback to lstat, if the -+ non-portable dirent.d_type is not available (LP: #672643) (Closes: -+ #695604). -+ -+2012-12-10 Petr Lautrbach -+ -+ * nih/tests/test_file.c: don't use dirent.d_type (not portable) -+ -+2012-10-25 James Hunt -+ -+ * nih/logging.c: Use our own __nih_abort_msg rather than the -+ (e)glibc private symbol __abort_msg to avoid upgrade issues (LP: #997359). -+ * nih/tests/test_logging.c: Update tests for __nih_abort_msg. -+ -+2011-08-31 James Hunt -+ -+ * nih-dbus-tool/tests/test_com.netsplit.Nih.Test_object.c -+ (test_unix_fd_to_str): Sanity check value before invoking strchr in -+ case it returns address of null (which would give a misleading test -+ pass). -+ * nih-dbus-tool/tests/test_com.netsplit.Nih.Test_proxy.c -+ (test_unix_fd_to_str, test_unix_fd_to_str_sync): Sanity check value -+ before invoking strchr in case it returns address of null (which would -+ give a misleading test pass). -+ * nih/config.c (): nih_config_block_end: Add check to ensure strchr() -+ doesn't return address of null since this would result in a misleading -+ return value of TRUE. -+ -+ * nih/string.c (nih_str_split): Fixes to avoid over-running -+ input string and also returning an empty string array entry -+ when repeat is true (LP: #834813). -+ * nih/tests/test_string.c (test_str_split): Added a lot of new -+ tests for nih_str_split(). -+ -+2011-08-26 James Hunt -+ -+ * nih/io.c (nih_io_select_fds): Ensure number of fds being managed -+ is within limits. -+ -+ * nih/config.c, nih/error.h, nih/io.c, nih/test_files.h: Correct -+ typos in comments. -+ -+2011-06-20 James Hunt -+ -+ * nih/watch.c (nih_watch_handle): Handle non-directory watches; -+ previously a file watch resulted in an invalid file path ending in -+ a single slash (LP:#777097). -+ * nih/tests/test_watch.c: Added explicit test for watch on a file. -+ - 2010-12-23 Scott James Remnant - - * NEWS: Release 1.0.3 ---- libnih-1.0.3.orig/nih/watch.c -+++ libnih-1.0.3/nih/watch.c -@@ -2,8 +2,8 @@ - * - * watch.c - watching of files and directories with inotify - * -- * Copyright © 2009 Scott James Remnant . -- * Copyright © 2009 Canonical Ltd. -+ * Copyright © 2011 Scott James Remnant . -+ * Copyright © 2011 Canonical Ltd. - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2, as -@@ -71,6 +71,9 @@ - uint32_t events, uint32_t cookie, - const char *name, - int *caught_free); -+static int nih_watch_walk_filter (void *data, const char *path, -+ int is_dir) -+ __attribute__ ((warn_unused_result)); - - - /** -@@ -91,7 +94,7 @@ - * sub-directories will be automatically watched. - * - * Additionally, the set of files and directories within @path can be -- * limited by passing a @filter function which will recieve the paths and -+ * limited by passing a @filter function which will receive the paths and - * may return TRUE to indicate that the path received should not be watched. - * - * When a file is created within @path, or moved from outside this location -@@ -104,7 +107,7 @@ - * files that exist under @path when the watch is first added. This only - * occurs if the watch can be added. - * -- * This is a very high level wrapped around the inotify API; lower levels -+ * This is a very high level wrapper around the inotify API; lower levels - * can be obtained using the inotify API itself and some of the helper - * functions used by this one. - * -@@ -185,6 +188,35 @@ - } - - -+ /** -+ * nih_watch_walk_filter: -+ * @data: NihWatch, -+ * @path: path to file, -+ * @is_dir: TRUE if @path is a directory. -+ * -+ * Callback function for nih_dir_walk(), used by nih_watch_add() to wrap -+ * the user-specified NihFileFilter (watch->filter) with a filter that can -+ * take watch itself as an argument. -+ * -+ * Returns: TRUE if the path should be ignored, FALSE otherwise. -+ **/ -+static int -+nih_watch_walk_filter (void *data, const char *path, int is_dir) -+{ -+ NihWatch *watch; -+ -+ watch = (NihWatch *)data; -+ -+ nih_assert (watch); -+ -+ /* No filter, so accept all files */ -+ if (! watch->filter) -+ return FALSE; -+ -+ return watch->filter (watch->data, path, is_dir); -+} -+ -+ - /** - * nih_watch_handle_by_wd: - * @watch: watch to search, -@@ -295,7 +327,7 @@ - * one; errors within the walk are warned automatically, so if this - * fails, it means we literally couldn't watch the top-level. - */ -- if (subdirs && (nih_dir_walk (path, watch->filter, -+ if (subdirs && (nih_dir_walk (path, nih_watch_walk_filter, - (NihFileVisitor)nih_watch_add_visitor, - NULL, watch) < 0)) { - NihError *err; -@@ -494,12 +526,21 @@ - return; - } - -+ /* Every other event must come with a name */ -+ if (name && *name) { - -- /* Every other event must come with a name. */ -- if ((! name) || strchr (name, '/')) -- return; -+ /* If name refers to a directory, there should be no associated -+ * path - just the name of the path element. -+ */ -+ if (strchr (name, '/')) -+ return; - -- path = NIH_MUST (nih_sprintf (NULL, "%s/%s", handle->path, name)); -+ /* Event occured for file within a watched directory */ -+ path = NIH_MUST (nih_sprintf (NULL, "%s/%s", handle->path, name)); -+ } else { -+ /* File event occured */ -+ path = NIH_MUST (nih_strdup (NULL, handle->path)); -+ } - - /* Check the filter */ - if (watch->filter && watch->filter (watch->data, path, ---- libnih-1.0.3.orig/nih/hash.h -+++ libnih-1.0.3/nih/hash.h -@@ -141,7 +141,7 @@ - * @hash: hash table to iterate, - * @iter: name of iterator variable. - * -- * Expans to nested for statements that iterate over each entry in each -+ * Expands to nested for statements that iterate over each entry in each - * bin of @hash, except for the bin head pointer, setting @iter to each - * entry for the block within the loop. A variable named _@iter_i is used - * to iterate the hash bins. -@@ -203,7 +203,7 @@ - NihKeyFunction key_function, - NihHashFunction hash_function, - NihCmpFunction cmp_function) -- __attribute__ ((warn_unused_result, malloc)); -+ __attribute__ ((warn_unused_result)); - - NihList * nih_hash_add (NihHash *hash, NihList *entry); - NihList * nih_hash_add_unique (NihHash *hash, NihList *entry); ---- libnih-1.0.3.orig/nih/main.h -+++ libnih-1.0.3/nih/main.h -@@ -138,7 +138,7 @@ - - NihMainLoopFunc *nih_main_loop_add_func (const void *parent, - NihMainLoopCb callback, void *data) -- __attribute__ ((warn_unused_result, malloc)); -+ __attribute__ ((warn_unused_result)); - - void nih_main_term_signal (void *data, NihSignal *signal); - ---- libnih-1.0.3.orig/nih/command.h -+++ libnih-1.0.3/nih/command.h -@@ -123,7 +123,7 @@ - - NihCommand *nih_command_join (const void *parent, - const NihCommand *a, const NihCommand *b) -- __attribute__ ((warn_unused_result, malloc)); -+ __attribute__ ((warn_unused_result)); - - NIH_END_EXTERN - ---- libnih-1.0.3.orig/nih/config.h -+++ libnih-1.0.3/nih/config.h -@@ -140,10 +140,10 @@ - char * nih_config_next_token (const void *parent, const char *file, - size_t len, size_t *pos, size_t *lineno, - const char *delim, int dequote) -- __attribute__ ((warn_unused_result, malloc)); -+ __attribute__ ((warn_unused_result)); - char * nih_config_next_arg (const void *parent, const char *file, - size_t len, size_t *pos, size_t *lineno) -- __attribute__ ((warn_unused_result, malloc)); -+ __attribute__ ((warn_unused_result)); - void nih_config_next_line (const char *file, size_t len, - size_t *pos, size_t *lineno); - -@@ -155,15 +155,15 @@ - - char ** nih_config_parse_args (const void *parent, const char *file, - size_t len, size_t *pos, size_t *lineno) -- __attribute__ ((warn_unused_result, malloc)); -+ __attribute__ ((warn_unused_result)); - char * nih_config_parse_command (const void *parent, const char *file, - size_t len, size_t *pos, size_t *lineno) -- __attribute__ ((warn_unused_result, malloc)); -+ __attribute__ ((warn_unused_result)); - - char * nih_config_parse_block (const void *parent, const char *file, - size_t len, size_t *pos, size_t *lineno, - const char *type) -- __attribute__ ((warn_unused_result, malloc)); -+ __attribute__ ((warn_unused_result)); - int nih_config_skip_block (const char *file, size_t len, - size_t *lineno, size_t *pos, - const char *type, size_t *endpos) ---- libnih-1.0.3.orig/nih/io.c -+++ libnih-1.0.3/nih/io.c -@@ -2,8 +2,8 @@ - * - * io.c - file and socket input/output handling - * -- * Copyright © 2009 Scott James Remnant . -- * Copyright © 2009 Canonical Ltd. -+ * Copyright © 2011 Scott James Remnant . -+ * Copyright © 2011 Canonical Ltd. - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2, as -@@ -165,6 +165,7 @@ - nih_assert (readfds != NULL); - nih_assert (writefds != NULL); - nih_assert (exceptfds != NULL); -+ nih_assert (*nfds <= FD_SETSIZE); - - nih_io_init (); - -@@ -186,6 +187,9 @@ - *nfds = nih_max (*nfds, watch->fd + 1); - } - } -+ -+ /* Re-check in case we exceeded the limit in the loop */ -+ nih_assert (*nfds <= FD_SETSIZE); - } - - /** -@@ -901,7 +905,7 @@ - * read and placed into the receive buffer or queue, and the reader function - * is called if set. - * -- * Any data or messaages in the send buffer or queue are written out if the -+ * Any data or messages in the send buffer or queue are written out if the - * @events includes NIH_IO_WRITE. - * - * Errors are handled when data is read, and result in the error handled -@@ -1211,7 +1215,7 @@ - * This function is called when the local end of a file descriptor being - * managed by NihIo should be closed. Usually this is because the remote - * end has been closed (without error) but it can also be because no -- * error handler was given -+ * error handler was given. - * - * Normally this just calls the close handler, or if not available, it - * closes the file descriptor and frees the structure (which may be -@@ -1291,7 +1295,7 @@ - * @io: structure to be destroyed. - * - * Closes the file descriptor associated with an NihIo structure so that -- * the structure can be freed. IF an error is caught by closing the -+ * the structure can be freed. If an error is caught by closing the - * descriptor, the error handler is called instead of the error being raised; - * this allows you to group your error handling in one place rather than - * special-case close. ---- libnih-1.0.3.orig/nih/watch.h -+++ libnih-1.0.3/nih/watch.h -@@ -156,7 +156,7 @@ - NihCreateHandler create_handler, - NihModifyHandler modify_handler, - NihDeleteHandler delete_handler, void *data) -- __attribute__ ((warn_unused_result, malloc)); -+ __attribute__ ((warn_unused_result)); - - int nih_watch_add (NihWatch *watch, const char *path, int subdirs) - __attribute__ ((warn_unused_result)); ---- libnih-1.0.3.orig/nih/tree.h -+++ libnih-1.0.3/nih/tree.h -@@ -344,9 +344,9 @@ - - void nih_tree_init (NihTree *tree); - NihTree * nih_tree_new (const void *parent) -- __attribute__ ((warn_unused_result, malloc)); -+ __attribute__ ((warn_unused_result)); - NihTreeEntry *nih_tree_entry_new (const void *parent) -- __attribute__ ((warn_unused_result, malloc)); -+ __attribute__ ((warn_unused_result)); - - NihTree * nih_tree_add (NihTree *tree, NihTree *node, - NihTreeWhere where); ---- libnih-1.0.3.orig/nih/file.c -+++ libnih-1.0.3/nih/file.c -@@ -65,7 +65,7 @@ - /* Prototypes for static functions */ - static char **nih_dir_walk_scan (const char *path, NihFileFilter filter, - void *data) -- __attribute__ ((warn_unused_result, malloc)); -+ __attribute__ ((warn_unused_result)); - static int nih_dir_walk_visit (const char *dirname, NihList *dirs, - const char *path, NihFileFilter filter, - NihFileVisitor visitor, -@@ -619,6 +619,8 @@ - struct dirent *ent; - char **paths; - size_t npaths; -+ int isdir; -+ struct stat statbuf; - - nih_assert (path != NULL); - -@@ -640,7 +642,15 @@ - subpath = NIH_MUST (nih_sprintf (NULL, "%s/%s", - path, ent->d_name)); - -- if (filter && filter (data, subpath, ent->d_type == DT_DIR)) -+ if (ent->d_type == DT_UNKNOWN) { -+ if ( lstat (subpath, &statbuf)) -+ isdir = 0; -+ else -+ isdir = S_ISDIR(statbuf.st_mode); -+ } else -+ isdir = ent->d_type == DT_DIR; -+ -+ if (filter && filter (data, subpath, isdir)) - continue; - - NIH_MUST (nih_str_array_addp (&paths, NULL, &npaths, subpath)); ---- libnih-1.0.3.orig/nih/alloc.c -+++ libnih-1.0.3/nih/alloc.c -@@ -119,8 +119,7 @@ - static inline int nih_alloc_context_free (NihAllocCtx *ctx); - - static inline NihAllocRef *nih_alloc_ref_new (NihAllocCtx *parent, -- NihAllocCtx *child) -- __attribute__ ((malloc)); -+ NihAllocCtx *child); - static inline void nih_alloc_ref_free (NihAllocRef *ref); - static inline NihAllocRef *nih_alloc_ref_lookup (NihAllocCtx *parent, - NihAllocCtx *child); ---- libnih-1.0.3.orig/nih/timer.h -+++ libnih-1.0.3/nih/timer.h -@@ -59,7 +59,7 @@ - * @months: months (1-12), - * @wdays: days of week (0-7). - * -- * Indidcates when scheduled timers should be run, each member is a bit -+ * Indicates when scheduled timers should be run, each member is a bit - * field where the bit is 1 if the timer should be run for that value and - * 0 if not. - **/ -@@ -117,14 +117,14 @@ - - NihTimer *nih_timer_add_timeout (const void *parent, time_t timeout, - NihTimerCb callback, void *data) -- __attribute__ ((warn_unused_result, malloc)); -+ __attribute__ ((warn_unused_result)); - NihTimer *nih_timer_add_periodic (const void *parent, time_t period, - NihTimerCb callback, void *data) -- __attribute__ ((warn_unused_result, malloc)); -+ __attribute__ ((warn_unused_result)); - NihTimer *nih_timer_add_scheduled (const void *parent, - NihTimerSchedule *schedule, - NihTimerCb callback, void *data) -- __attribute__ ((warn_unused_result, malloc)); -+ __attribute__ ((warn_unused_result)); - - NihTimer *nih_timer_next_due (void); - void nih_timer_poll (void); ---- libnih-1.0.3.orig/nih/config.c -+++ libnih-1.0.3/nih/config.c -@@ -2,8 +2,8 @@ - * - * config.c - configuration file parsing - * -- * Copyright © 2009 Scott James Remnant . -- * Copyright © 2009 Canonical Ltd. -+ * Copyright © 2011 Scott James Remnant . -+ * Copyright © 2011 Canonical Ltd. - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2, as -@@ -657,7 +657,7 @@ - * of the returned string are freed, the returned string will also be - * freed. - * -- * Returns: the command found or NULL on raised error. -+ * Returns: the newly allocated command found or NULL on raised error. - **/ - char * - nih_config_parse_command (const void *parent, -@@ -714,7 +714,7 @@ - * @lineno: line number, - * @type: block identifier. - * -- * Extracts a block of text from @line, stopping when the pharse "end @type" -+ * Extracts a block of text from @line, stopping when the phrase "end @type" - * is encountered without any quotes or blackslash escaping within it. - * - * @file may be a memory mapped file, in which case @pos should be given -@@ -950,7 +950,7 @@ - return FALSE; - - /* Must be whitespace after */ -- if (! strchr (NIH_CONFIG_WS, file[p + 3])) -+ if (file[p + 3] && ! strchr (NIH_CONFIG_WS, file[p + 3])) - return FALSE; - - /* Find the second word */ ---- libnih-1.0.3.orig/nih/option.h -+++ libnih-1.0.3/nih/option.h -@@ -124,11 +124,11 @@ - char ** nih_option_parser (const void *parent, - int argc, char *argv[], - NihOption *options, int break_nonopt) -- __attribute__ ((warn_unused_result, malloc)); -+ __attribute__ ((warn_unused_result)); - - NihOption *nih_option_join (const void *parent, - const NihOption *a, const NihOption *b) -- __attribute__ ((warn_unused_result, malloc)); -+ __attribute__ ((warn_unused_result)); - - int nih_option_count (NihOption *option, const char *arg); - int nih_option_int (NihOption *option, const char *arg); ---- libnih-1.0.3.orig/nih/signal.h -+++ libnih-1.0.3/nih/signal.h -@@ -76,7 +76,7 @@ - - NihSignal * nih_signal_add_handler (const void *parent, int signum, - NihSignalHandler handler, void *data) -- __attribute__ ((warn_unused_result, malloc)); -+ __attribute__ ((warn_unused_result)); - - void nih_signal_handler (int signum); - void nih_signal_poll (void); ---- libnih-1.0.3.orig/nih/list.h -+++ libnih-1.0.3/nih/list.h -@@ -37,7 +37,7 @@ - * after a known entry, and remove an entry from the list. - * - * List entries may be created in one of two ways. The most common is to -- * embed the NihList structure as the frist member of your own structure, -+ * embed the NihList structure as the first member of your own structure, - * and initialise it with nih_list_init() after allocating the structure. - * Alternatively you may create NihListEntry structures with - * nih_list_entry_new() and point at your own data from them. -@@ -196,10 +196,10 @@ - - void nih_list_init (NihList *entry); - NihList * nih_list_new (const void *parent) -- __attribute__ ((warn_unused_result, malloc)); -+ __attribute__ ((warn_unused_result)); - - NihListEntry *nih_list_entry_new (const void *parent) -- __attribute__ ((warn_unused_result, malloc)); -+ __attribute__ ((warn_unused_result)); - - - NihList * nih_list_add (NihList *list, NihList *entry); ---- libnih-1.0.3.orig/nih/logging.c -+++ libnih-1.0.3/nih/logging.c -@@ -39,11 +39,11 @@ - - - /** -- * __abort_msg: -+ * __nih_abort_msg: - * -- * A glibc variable that keeps the assertion message in the core dump. -+ * A variable that keeps the assertion message in the core dump. - **/ --extern char *__abort_msg __attribute__ ((weak)); -+char *__nih_abort_msg = NULL; - - /** - * logger: -@@ -114,19 +114,16 @@ - * nih_log_abort_message: - * @message: message to be logged. - * -- * Save @message in the glibc __abort_msg variable so it can be retrieved -+ * Save @message in the __nih_abort_msg variable so it can be retrieved - * by debuggers if we should crash at this point. - **/ - static void - nih_log_abort_message (const char *message) - { -- if (! &__abort_msg) -- return; -+ if (__nih_abort_msg) -+ nih_discard (__nih_abort_msg); - -- if (__abort_msg) -- nih_discard (__abort_msg); -- -- __abort_msg = NIH_MUST (nih_strdup (NULL, message)); -+ __nih_abort_msg = NIH_MUST (nih_strdup (NULL, message)); - } - - /** ---- libnih-1.0.3.orig/nih/test_files.h -+++ libnih-1.0.3/nih/test_files.h -@@ -1,7 +1,7 @@ - /* libnih - * -- * Copyright © 2009 Scott James Remnant . -- * Copyright © 2009 Canonical Ltd. -+ * Copyright © 2011 Scott James Remnant . -+ * Copyright © 2011 Canonical Ltd. - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2, as -@@ -39,7 +39,7 @@ - * TEST_FILENAME: - * @_var: variable to store filename in. - * -- * Generate a filename that may be used for testing, it's unlinked it if -+ * Generate a filename that may be used for testing, it's unlinked if it - * exists and it's up to you to unlink it when done. @_var should be at - * least PATH_MAX long. - **/ ---- libnih-1.0.3.orig/nih/test_process.h -+++ libnih-1.0.3/nih/test_process.h -@@ -36,7 +36,7 @@ - * Spawn a child in which a test can be performed without affecting the - * main flow of the process. The pid of the child is stored in @_pid. - * -- * This macro ensures that the child has begun exectution before the -+ * This macro ensures that the child has begun execution before the - * parent is allowed to continue through the usual use of a pipe. - * - * A block of code should follow this macro, which is the code that will ---- libnih-1.0.3.orig/nih/child.h -+++ libnih-1.0.3/nih/child.h -@@ -98,7 +98,7 @@ - NihChildWatch *nih_child_add_watch (const void *parent, pid_t pid, - NihChildEvents events, - NihChildHandler handler, void *data) -- __attribute__ ((warn_unused_result, malloc)); -+ __attribute__ ((warn_unused_result)); - - void nih_child_poll (void); - ---- libnih-1.0.3.orig/nih/alloc.h -+++ libnih-1.0.3/nih/alloc.h -@@ -299,7 +299,7 @@ - * It is permissible to take references to foo within its scope, or by - * functions called, in which case it will not be freed. Also it is - * generally nonsensical to allocate with a parent, since this too will -- * prevent it from beign freed. -+ * prevent it from being freed. - **/ - #define nih_local __attribute__ ((cleanup(_nih_discard_local))) - -@@ -307,11 +307,11 @@ - NIH_BEGIN_EXTERN - - void * nih_alloc (const void *parent, size_t size) -- __attribute__ ((warn_unused_result, malloc)); -+ __attribute__ ((warn_unused_result)); - - void * nih_realloc (void *ptr, const void *parent, - size_t size) -- __attribute__ ((warn_unused_result, malloc)); -+ __attribute__ ((warn_unused_result)); - - int nih_free (void *ptr); - int nih_discard (void *ptr); ---- libnih-1.0.3.orig/nih/io.h -+++ libnih-1.0.3/nih/io.h -@@ -269,7 +269,7 @@ - NihIoWatch * nih_io_add_watch (const void *parent, int fd, - NihIoEvents events, - NihIoWatcher watcher, void *data) -- __attribute__ ((warn_unused_result, malloc)); -+ __attribute__ ((warn_unused_result)); - - void nih_io_select_fds (int *nfds, fd_set *readfds, - fd_set *writefds, fd_set *exceptfds); -@@ -278,12 +278,12 @@ - - - NihIoBuffer * nih_io_buffer_new (const void *parent) -- __attribute__ ((warn_unused_result, malloc)); -+ __attribute__ ((warn_unused_result)); - - int nih_io_buffer_resize (NihIoBuffer *buffer, size_t grow); - char * nih_io_buffer_pop (const void *parent, - NihIoBuffer *buffer, size_t *len) -- __attribute__ ((warn_unused_result, malloc)); -+ __attribute__ ((warn_unused_result)); - void nih_io_buffer_shrink (NihIoBuffer *buffer, size_t len); - int nih_io_buffer_push (NihIoBuffer *buffer, - const char *str, size_t len) -@@ -291,7 +291,7 @@ - - - NihIoMessage *nih_io_message_new (const void *parent) -- __attribute__ ((warn_unused_result, malloc)); -+ __attribute__ ((warn_unused_result)); - - int nih_io_message_add_control (NihIoMessage *message, int level, - int type, socklen_t len, -@@ -300,7 +300,7 @@ - - NihIoMessage *nih_io_message_recv (const void *parent, int fd, - size_t *len) -- __attribute__ ((warn_unused_result, malloc)); -+ __attribute__ ((warn_unused_result)); - ssize_t nih_io_message_send (NihIoMessage *message, int fd) - __attribute__ ((warn_unused_result)); - -@@ -310,7 +310,7 @@ - NihIoCloseHandler close_handler, - NihIoErrorHandler error_handler, - void *data) -- __attribute__ ((warn_unused_result, malloc)); -+ __attribute__ ((warn_unused_result)); - void nih_io_shutdown (NihIo *io); - int nih_io_destroy (NihIo *io); - -@@ -319,14 +319,14 @@ - - char * nih_io_read (const void *parent, NihIo *io, - size_t *len) -- __attribute__ ((warn_unused_result, malloc)); -+ __attribute__ ((warn_unused_result)); - int nih_io_write (NihIo *io, const char *str, - size_t len) - __attribute__ ((warn_unused_result)); - - char * nih_io_get (const void *parent, NihIo *io, - const char *delim) -- __attribute__ ((warn_unused_result, malloc)); -+ __attribute__ ((warn_unused_result)); - - int nih_io_printf (NihIo *io, const char *format, ...) - __attribute__ ((warn_unused_result, format (printf, 2, 3))); ---- libnih-1.0.3.orig/nih/test_output.h -+++ libnih-1.0.3/nih/test_output.h -@@ -61,10 +61,10 @@ - - /** - * TEST_FEATURE: -- * @_feat: name of function feature being tested. -+ * @_feat: name of function or group feature being tested. - * -- * Output a message indicating that a sub-test of a function is being -- * performed, specifically the feature named _feat. -+ * Output a message indicating that a sub-test of a function or -+ * group is being performed, specifically the feature named _feat. - **/ - #define TEST_FEATURE(_feat) \ - printf ("...%s\n", _feat); ---- libnih-1.0.3.orig/nih/error.h -+++ libnih-1.0.3/nih/error.h -@@ -1,7 +1,7 @@ - /* libnih - * -- * Copyright © 2009 Scott James Remnant . -- * Copyright © 2009 Canonical Ltd. -+ * Copyright © 2011 Scott James Remnant . -+ * Copyright © 2011 Canonical Ltd. - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2, as -@@ -111,7 +111,7 @@ - * @message: human-readable message. - * - * Raises an error with the given details in the current error context, -- * if an unhandled error already exists then an error message is emmitted -+ * if an unhandled error already exists then an error message is emitted - * through the logging system; you should try to avoid this. - * - * @message should be a static string, as it will not be freed when the -@@ -126,7 +126,7 @@ - * @format: format string for human-readable message. - * - * Raises an error with the given details in the current error context, -- * if an unhandled error already exists then an error message is emmitted -+ * if an unhandled error already exists then an error message is emitted - * through the logging system; you should try to avoid this. - * - * The human-readable message for the error is parsed according to @format, -@@ -140,7 +140,7 @@ - * nih_error_raise_system: - * - * Raises an error with details taken from the current value of errno, -- * if an unhandled error already exists then an error message is emmitted -+ * if an unhandled error already exists then an error message is emitted - * through the logging system; you should try to avoid this. - **/ - #define nih_error_raise_system() \ -@@ -162,7 +162,7 @@ - * @error: existing object to raise. - * - * Raises the existing error object in the current error context, -- * if an unhandled error already exists then an error message is emmitted -+ * if an unhandled error already exists then an error message is emitted - * through the logging system; you should try to avoid this. - * - * This is normally used to raise a taken error that has not been handled, -@@ -182,7 +182,7 @@ - * @message: human-readable message. - * - * Raises an error with the given details in the current error context, -- * if an unhandled error already exists then an error message is emmitted -+ * if an unhandled error already exists then an error message is emitted - * through the logging system; you should try to avoid this. - * - * Will return from the current function with @retval, which may be left -@@ -199,7 +199,7 @@ - * @retval: return value for function. - * - * Raises an error with details taken from the current value of errno, -- * if an unhandled error already exists then an error message is emmitted -+ * if an unhandled error already exists then an error message is emitted - * through the logging system; you should try to avoid this. - * - * Will return from the current function with @retval, which may be left ---- libnih-1.0.3.orig/nih/string.h -+++ libnih-1.0.3/nih/string.h -@@ -35,60 +35,60 @@ - NIH_BEGIN_EXTERN - - char * nih_sprintf (const void *parent, const char *format, ...) -- __attribute__ ((format (printf, 2, 3), warn_unused_result, malloc)); -+ __attribute__ ((format (printf, 2, 3), warn_unused_result)); - - char * nih_vsprintf (const void *parent, const char *format, - va_list args) -- __attribute__ ((format (printf, 2, 0), warn_unused_result, malloc)); -+ __attribute__ ((format (printf, 2, 0), warn_unused_result)); - - char * nih_strdup (const void *parent, const char *str) -- __attribute__ ((warn_unused_result, malloc)); -+ __attribute__ ((warn_unused_result)); - - char * nih_strndup (const void *parent, const char *str, size_t len) -- __attribute__ ((warn_unused_result, malloc)); -+ __attribute__ ((warn_unused_result)); - - char * nih_strcat (char **str, const void *parent, const char *src) -- __attribute__ ((warn_unused_result, malloc)); -+ __attribute__ ((warn_unused_result)); - char * nih_strncat (char **str, const void *parent, const char *src, - size_t len) -- __attribute__ ((warn_unused_result, malloc)); -+ __attribute__ ((warn_unused_result)); - - char * nih_strcat_sprintf (char **str, const void *parent, - const char *format, ...) -- __attribute__ ((format (printf, 3, 4), warn_unused_result, malloc)); -+ __attribute__ ((format (printf, 3, 4), warn_unused_result)); - char * nih_strcat_vsprintf (char **str, const void *parent, - const char *format, va_list args) -- __attribute__ ((format (printf, 3, 0), warn_unused_result, malloc)); -+ __attribute__ ((format (printf, 3, 0), warn_unused_result)); - - char **nih_str_split (const void *parent, const char *str, - const char *delim, int repeat) -- __attribute__ ((warn_unused_result, malloc)); -+ __attribute__ ((warn_unused_result)); - - char **nih_str_array_new (const void *parent) -- __attribute__ ((warn_unused_result, malloc)); -+ __attribute__ ((warn_unused_result)); - char **nih_str_array_add (char ***array, const void *parent, size_t *len, - const char *str) -- __attribute__ ((warn_unused_result, malloc)); -+ __attribute__ ((warn_unused_result)); - char **nih_str_array_addn (char ***array, const void *parent, size_t *len, - const char *str, size_t strlen) -- __attribute__ ((warn_unused_result, malloc)); -+ __attribute__ ((warn_unused_result)); - char **nih_str_array_addp (char ***array, const void *parent, size_t *len, - void *ptr) -- __attribute__ ((warn_unused_result, malloc)); -+ __attribute__ ((warn_unused_result)); - char **nih_str_array_copy (const void *parent, size_t *len, - char * const *array) -- __attribute__ ((warn_unused_result, malloc)); -+ __attribute__ ((warn_unused_result)); - char **nih_str_array_append (char ***array, const void *parent, size_t *len, - char * const *args) -- __attribute__ ((warn_unused_result, malloc)); -+ __attribute__ ((warn_unused_result)); - - char * nih_str_wrap (const void *parent, const char *str, size_t len, - size_t first_indent, size_t indent) -- __attribute__ ((warn_unused_result, malloc)); -+ __attribute__ ((warn_unused_result)); - size_t nih_str_screen_width (void); - char * nih_str_screen_wrap (const void *parent, const char *str, - size_t first_indent, size_t indent) -- __attribute__ ((warn_unused_result, malloc)); -+ __attribute__ ((warn_unused_result)); - - NIH_END_EXTERN - ---- libnih-1.0.3.orig/nih/string.c -+++ libnih-1.0.3/nih/string.c -@@ -405,7 +405,7 @@ - const char *ptr; - - /* Skip initial delimiters */ -- while (repeat && strchr (delim, *str)) -+ while (repeat && *str && strchr (delim, *str)) - str++; - - /* Find the end of the token */ -@@ -413,6 +413,13 @@ - while (*str && (! strchr (delim, *str))) - str++; - -+ /* Don't create an empty string array element in repeat -+ * mode if there is no token (as a result of a -+ * duplicated delimiter character). -+ */ -+ if (repeat && (str == ptr)) -+ continue; -+ - if (! nih_str_array_addn (&array, parent, &len, - ptr, str - ptr)) { - nih_free (array); ---- libnih-1.0.3.orig/nih/file.h -+++ libnih-1.0.3/nih/file.h -@@ -82,7 +82,7 @@ - - char *nih_file_read (const void *parent, const char *path, - size_t *length) -- __attribute__ ((warn_unused_result, malloc)); -+ __attribute__ ((warn_unused_result)); - - void *nih_file_map (const char *path, int flags, size_t *length) - __attribute__ ((warn_unused_result)); ---- libnih-1.0.3.orig/nih/tests/test_option.c -+++ libnih-1.0.3/nih/tests/test_option.c -@@ -1574,7 +1574,7 @@ - output = tmpfile (); - TEST_CHILD (pid) { - TEST_DIVERT_STDOUT (output) { -- char **args; -+ char **args __attribute__((unused)); - - args = nih_option_parser (NULL, argc, argv, - options, FALSE); -@@ -1652,7 +1652,7 @@ - unsetenv ("COLUMNS"); - - TEST_DIVERT_STDOUT (output) { -- char **args; -+ char **args __attribute__((unused)); - - args = nih_option_parser (NULL, argc, argv, - options, FALSE); ---- libnih-1.0.3.orig/nih/tests/test_logging.c -+++ libnih-1.0.3/nih/tests/test_logging.c -@@ -31,7 +31,7 @@ - #include - - --extern char *__abort_msg __attribute__ ((weak)); -+extern char *__nih_abort_msg; - - static NihLogLevel last_priority = NIH_LOG_UNKNOWN; - static char * last_message = NULL; -@@ -156,68 +156,63 @@ - } - - -- /* Check that a fatal message is also stored in the glibc __abort_msg -+ /* Check that a fatal message is also stored in the __nih_abort_msg - * variable. - */ -- if (&__abort_msg) { -- TEST_FEATURE ("with fatal message"); -- TEST_ALLOC_FAIL { -- __abort_msg = NULL; -- last_priority = NIH_LOG_UNKNOWN; -- last_message = NULL; -- -- ret = nih_log_message (NIH_LOG_FATAL, -- "message with %s %d formatting", -- "some", 20); -- -- TEST_EQ (ret, 0); -- TEST_EQ (last_priority, NIH_LOG_FATAL); -- TEST_EQ_STR (last_message, "message with some 20 formatting"); -- -- TEST_NE_P (__abort_msg, NULL); -- TEST_ALLOC_PARENT (__abort_msg, NULL); -- TEST_EQ_STR (__abort_msg, "message with some 20 formatting"); -+ TEST_FEATURE ("with fatal message"); -+ TEST_ALLOC_FAIL { -+ __nih_abort_msg = NULL; -+ last_priority = NIH_LOG_UNKNOWN; -+ last_message = NULL; - -- free (last_message); -- } -+ ret = nih_log_message (NIH_LOG_FATAL, -+ "message with %s %d formatting", -+ "some", 20); - -+ TEST_EQ (ret, 0); -+ TEST_EQ (last_priority, NIH_LOG_FATAL); -+ TEST_EQ_STR (last_message, "message with some 20 formatting"); - -- /* Check that a fatal message can safely overwrite one already stored -- * in the glibc __abort_msg variable. -- */ -- TEST_FEATURE ("with second fatal message"); -- TEST_ALLOC_FAIL { -- TEST_ALLOC_SAFE { -- msg = nih_strdup (NULL, "test"); -- } -- -- __abort_msg = msg; -- TEST_FREE_TAG (msg); -- -- last_priority = NIH_LOG_UNKNOWN; -- last_message = NULL; -- -- ret = nih_log_message (NIH_LOG_FATAL, -- "message with %s %d formatting", -- "some", 20); -- -- TEST_EQ (ret, 0); -- TEST_EQ (last_priority, NIH_LOG_FATAL); -- TEST_EQ_STR (last_message, "message with some 20 formatting"); -- -- TEST_FREE (msg); -- -- TEST_NE_P (__abort_msg, NULL); -- TEST_ALLOC_PARENT (__abort_msg, NULL); -- TEST_EQ_STR (__abort_msg, "message with some 20 formatting"); -+ TEST_NE_P (__nih_abort_msg, NULL); -+ TEST_ALLOC_PARENT (__nih_abort_msg, NULL); -+ TEST_EQ_STR (__nih_abort_msg, "message with some 20 formatting"); - -- free (last_message); -- } -- } else { -- printf ("SKIP: __abort_msg not available\n"); -+ free (last_message); - } - - -+ /* Check that a fatal message can safely overwrite one already stored -+ * in the __nih_abort_msg variable. -+ */ -+ TEST_FEATURE ("with second fatal message"); -+ TEST_ALLOC_FAIL { -+ TEST_ALLOC_SAFE { -+ msg = nih_strdup (NULL, "test"); -+ } -+ -+ __nih_abort_msg = msg; -+ TEST_FREE_TAG (msg); -+ -+ last_priority = NIH_LOG_UNKNOWN; -+ last_message = NULL; -+ -+ ret = nih_log_message (NIH_LOG_FATAL, -+ "message with %s %d formatting", -+ "some", 20); -+ -+ TEST_EQ (ret, 0); -+ TEST_EQ (last_priority, NIH_LOG_FATAL); -+ TEST_EQ_STR (last_message, "message with some 20 formatting"); -+ -+ TEST_FREE (msg); -+ -+ TEST_NE_P (__nih_abort_msg, NULL); -+ TEST_ALLOC_PARENT (__nih_abort_msg, NULL); -+ TEST_EQ_STR (__nih_abort_msg, "message with some 20 formatting"); -+ -+ free (last_message); -+ } -+ - /* Check that the nih_debug macro wraps the call properly and - * includes the function in which the message occurred. - */ ---- libnih-1.0.3.orig/nih/tests/test_hash.c -+++ libnih-1.0.3/nih/tests/test_hash.c -@@ -470,7 +470,8 @@ - test_lookup (void) - { - NihHash *hash; -- NihList *entry1, *entry2, *entry3, *ptr; -+ NihList *entry1, *entry2, *ptr; -+ NihList *entry3 __attribute__((unused)); - - TEST_FUNCTION ("nih_hash_lookup"); - hash = nih_hash_string_new (NULL, 0); ---- libnih-1.0.3.orig/nih/tests/test_main.c -+++ libnih-1.0.3/nih/tests/test_main.c -@@ -457,7 +457,7 @@ - test_main_loop (void) - { - NihMainLoopFunc *func; -- NihTimer *timer; -+ NihTimer *timer __attribute__((unused)); - int ret; - - /* Check that we can run through the main loop, and that the ---- libnih-1.0.3.orig/nih/tests/test_watch.c -+++ libnih-1.0.3/nih/tests/test_watch.c -@@ -2,8 +2,8 @@ - * - * test_watch.c - test suite for nih/watch.c - * -- * Copyright © 2009 Scott James Remnant . -- * Copyright © 2009 Canonical Ltd. -+ * Copyright © 2011 Scott James Remnant . -+ * Copyright © 2011 Canonical Ltd. - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2, as -@@ -39,6 +39,8 @@ - #include - #include - -+/* Read "The Hitchhikers Guide to the Galaxy" */ -+#define FILTER_VALUE 42 - - static int - my_filter (void *data, -@@ -54,6 +56,26 @@ - return FALSE; - } - -+/* Set by my_filter2 () so it knows if it has already been called */ -+static int my_filter2_called = 0; -+ -+static int -+my_filter2 (int *value, -+ const char *path, -+ int is_dir) -+{ -+ /* we only want to toggle the value once */ -+ if (my_filter2_called) -+ return TRUE; -+ -+ my_filter2_called = 1; -+ -+ nih_assert (value && *value == FILTER_VALUE); -+ *value = 0; -+ -+ return FALSE; -+} -+ - static int create_called = 0; - static int modify_called = 0; - static int delete_called = 0; -@@ -553,6 +575,44 @@ - nih_free (watch); - } - -+ /* Ensure the file filter gets passed the correct data pointer. -+ */ -+ TEST_FEATURE ("with filter and data"); -+ -+ /* Ensure we have a new directory */ -+ TEST_FILENAME (dirname); -+ mkdir (dirname, 0755); -+ -+ /* Create a single file */ -+ strcpy (filename, dirname); -+ strcat (filename, "/foo"); -+ -+ fd = fopen (filename, "w"); -+ fprintf (fd, "test\n"); -+ fclose (fd); -+ -+ TEST_ALLOC_FAIL { -+ int watch_data = FILTER_VALUE; -+ -+ /* Reset required to appease TEST_ALLOC_FAIL */ -+ my_filter2_called = 0; -+ -+ watch = nih_watch_new (NULL, dirname, -+ TRUE, TRUE, -+ (NihFileFilter)my_filter2, -+ NULL, NULL, NULL, -+ &watch_data); -+ -+ TEST_NE_P (watch, NULL); -+ -+ /* Ensure the filter was called and changed the value */ -+ -+ TEST_NE (my_filter2_called, 0); -+ TEST_EQ (watch_data, 0); -+ -+ nih_free (watch); -+ } -+ - strcpy (filename, dirname); - strcat (filename, "/bar"); - chmod (filename, 0755); -@@ -946,13 +1006,82 @@ - nih_error_init (); - - TEST_FILENAME (dirname); -- mkdir (dirname, 0755); -+ TEST_EQ (mkdir (dirname, 0755), 0); - -- watch = nih_watch_new (NULL, dirname, TRUE, TRUE, my_filter, -- my_create_handler, my_modify_handler, -+ TEST_FEATURE ("with watched file"); -+ strcpy (filename, dirname); -+ strcat (filename, "/foo"); -+ -+ /* Create file first since we don't set a create handler on the -+ * watch. -+ */ -+ fd = fopen (filename, "w"); -+ fprintf (fd, "bar\n"); -+ fclose (fd); -+ -+ create_called = 0; -+ modify_called = 0; -+ delete_called = 0; -+ logger_called = 0; -+ last_path = NULL; -+ last_watch = NULL; -+ last_data = NULL; -+ -+ watch = nih_watch_new (NULL, filename, FALSE, FALSE, NULL, -+ NULL, my_modify_handler, - my_delete_handler, &watch); -+ TEST_NE_P (watch, NULL); -+ -+ /* Now, modify the existing file to trigger the modify handler. */ -+ fd = fopen (filename, "a+"); -+ fprintf (fd, "baz\n"); -+ fclose (fd); -+ -+ nfds = 0; -+ FD_ZERO (&readfds); -+ FD_ZERO (&writefds); -+ FD_ZERO (&exceptfds); -+ -+ nih_io_select_fds (&nfds, &readfds, &writefds, &exceptfds); -+ select (nfds, &readfds, &writefds, &exceptfds, NULL); -+ nih_io_handle_fds (&readfds, &writefds, &exceptfds); -+ -+ TEST_EQ_STR (watch->path, filename); -+ -+ /* Ensure no regression to old behaviour (LP:#777097) */ -+ TEST_NE (last_path[ strlen(last_path) - 1 ], '/'); -+ -+ TEST_EQ_STR (last_path, filename); -+ TEST_EQ (modify_called, 1); -+ -+ unlink (filename); -+ -+ nfds = 0; -+ FD_ZERO (&readfds); -+ FD_ZERO (&writefds); -+ FD_ZERO (&exceptfds); -+ -+ nih_io_select_fds (&nfds, &readfds, &writefds, &exceptfds); -+ select (nfds, &readfds, &writefds, &exceptfds, NULL); -+ nih_io_handle_fds (&readfds, &writefds, &exceptfds); - -+ TEST_EQ (delete_called, 1); - -+ rmdir (filename); -+ nih_free (last_path); -+ -+ create_called = 0; -+ modify_called = 0; -+ delete_called = 0; -+ logger_called = 0; -+ last_path = NULL; -+ last_watch = NULL; -+ last_data = NULL; -+ -+ -+ watch = nih_watch_new (NULL, dirname, TRUE, TRUE, my_filter, -+ my_create_handler, my_modify_handler, -+ my_delete_handler, &watch); - /* Check that creating a file within the directory being watched - * results in the create handler being called, and passed the full - * path of the created file to it. ---- libnih-1.0.3.orig/nih/tests/test_string.c -+++ libnih-1.0.3/nih/tests/test_string.c -@@ -619,6 +619,215 @@ - nih_free (array); - } - -+ TEST_FEATURE ("with no repeat and multiple identical delimiter " -+ "characters at string start"); -+ TEST_ALLOC_FAIL { -+ array = nih_str_split (NULL, "\t\tthis is a test", " \t", FALSE); -+ -+ if (test_alloc_failed) { -+ TEST_EQ_P (array, NULL); -+ continue; -+ } -+ -+ TEST_ALLOC_SIZE (array, sizeof (char *) * 7); -+ for (i = 0; i < 6; i++) -+ TEST_ALLOC_PARENT (array[i], array); -+ -+ TEST_EQ_STR (array[0], ""); -+ TEST_EQ_STR (array[1], ""); -+ TEST_EQ_STR (array[2], "this"); -+ TEST_EQ_STR (array[3], "is"); -+ TEST_EQ_STR (array[4], "a"); -+ TEST_EQ_STR (array[5], "test"); -+ TEST_EQ_P (array[6], NULL); -+ -+ nih_free (array); -+ } -+ -+ TEST_FEATURE ("with no repeat and multiple different delimiter " -+ "characters at string start"); -+ TEST_ALLOC_FAIL { -+ array = nih_str_split (NULL, " \tthis is a test", " \t", FALSE); -+ -+ if (test_alloc_failed) { -+ TEST_EQ_P (array, NULL); -+ continue; -+ } -+ -+ TEST_ALLOC_SIZE (array, sizeof (char *) * 7); -+ for (i = 0; i < 6; i++) -+ TEST_ALLOC_PARENT (array[i], array); -+ -+ TEST_EQ_STR (array[0], ""); -+ TEST_EQ_STR (array[1], ""); -+ TEST_EQ_STR (array[2], "this"); -+ TEST_EQ_STR (array[3], "is"); -+ TEST_EQ_STR (array[4], "a"); -+ TEST_EQ_STR (array[5], "test"); -+ TEST_EQ_P (array[6], NULL); -+ -+ nih_free (array); -+ } -+ -+ TEST_FEATURE ("with no repeat and multiple identical delimiter " -+ "characters within string"); -+ TEST_ALLOC_FAIL { -+ array = nih_str_split (NULL, "this is a\t\ttest", " \t", FALSE); -+ -+ if (test_alloc_failed) { -+ TEST_EQ_P (array, NULL); -+ continue; -+ } -+ -+ TEST_ALLOC_SIZE (array, sizeof (char *) * 8); -+ for (i = 0; i < 7; i++) -+ TEST_ALLOC_PARENT (array[i], array); -+ -+ TEST_EQ_STR (array[0], "this"); -+ TEST_EQ_STR (array[1], "is"); -+ TEST_EQ_STR (array[2], ""); -+ TEST_EQ_STR (array[3], ""); -+ TEST_EQ_STR (array[4], "a"); -+ TEST_EQ_STR (array[5], ""); -+ TEST_EQ_STR (array[6], "test"); -+ TEST_EQ_P (array[7], NULL); -+ -+ nih_free (array); -+ } -+ -+ TEST_FEATURE ("with no repeat and multiple different delimiter " -+ "characters within string"); -+ TEST_ALLOC_FAIL { -+ array = nih_str_split (NULL, "this is \n\ta\ttest", " \t\n", FALSE); -+ -+ if (test_alloc_failed) { -+ TEST_EQ_P (array, NULL); -+ continue; -+ } -+ -+ TEST_ALLOC_SIZE (array, sizeof (char *) * 7); -+ for (i = 0; i < 6; i++) -+ TEST_ALLOC_PARENT (array[i], array); -+ -+ TEST_EQ_STR (array[0], "this"); -+ TEST_EQ_STR (array[1], "is"); -+ TEST_EQ_STR (array[2], ""); -+ TEST_EQ_STR (array[3], ""); -+ TEST_EQ_STR (array[4], "a"); -+ TEST_EQ_STR (array[5], "test"); -+ TEST_EQ_P (array[6], NULL); -+ -+ nih_free (array); -+ } -+ -+ TEST_FEATURE ("with no repeat and multiple identical delimiter " -+ "characters at string end"); -+ TEST_ALLOC_FAIL { -+ array = nih_str_split (NULL, "this is a test ", " \t", FALSE); -+ -+ if (test_alloc_failed) { -+ TEST_EQ_P (array, NULL); -+ continue; -+ } -+ -+ TEST_ALLOC_SIZE (array, sizeof (char *) * 6); -+ for (i = 0; i < 5; i++) -+ TEST_ALLOC_PARENT (array[i], array); -+ -+ TEST_EQ_STR (array[0], "this"); -+ TEST_EQ_STR (array[1], "is"); -+ TEST_EQ_STR (array[2], "a"); -+ TEST_EQ_STR (array[3], "test"); -+ TEST_EQ_STR (array[4], ""); -+ TEST_EQ_P (array[5], NULL); -+ -+ nih_free (array); -+ } -+ -+ TEST_FEATURE ("with no repeat and multiple different delimiter " -+ "characters at string end"); -+ TEST_ALLOC_FAIL { -+ array = nih_str_split (NULL, "this is a test \t", " \t", FALSE); -+ -+ if (test_alloc_failed) { -+ TEST_EQ_P (array, NULL); -+ continue; -+ } -+ -+ TEST_ALLOC_SIZE (array, sizeof (char *) * 6); -+ for (i = 0; i < 5; i++) -+ TEST_ALLOC_PARENT (array[i], array); -+ -+ TEST_EQ_STR (array[0], "this"); -+ TEST_EQ_STR (array[1], "is"); -+ TEST_EQ_STR (array[2], "a"); -+ TEST_EQ_STR (array[3], "test"); -+ TEST_EQ_STR (array[4], ""); -+ TEST_EQ_P (array[5], NULL); -+ -+ nih_free (array); -+ } -+ -+ TEST_FEATURE ("with no repeat and multiple identical delimiter " -+ "characters at beginning, middle and end of string"); -+ TEST_ALLOC_FAIL { -+ array = nih_str_split (NULL, " this is\n\n\na test\t\t\t", " \t\n", FALSE); -+ -+ if (test_alloc_failed) { -+ TEST_EQ_P (array, NULL); -+ continue; -+ } -+ -+ TEST_ALLOC_SIZE (array, sizeof (char *) * 12); -+ for (i = 0; i < 11; i++) -+ TEST_ALLOC_PARENT (array[i], array); -+ -+ TEST_EQ_STR (array[0], ""); -+ TEST_EQ_STR (array[1], ""); -+ TEST_EQ_STR (array[2], ""); -+ TEST_EQ_STR (array[3], "this"); -+ TEST_EQ_STR (array[4], "is"); -+ TEST_EQ_STR (array[5], ""); -+ TEST_EQ_STR (array[6], ""); -+ TEST_EQ_STR (array[7], "a"); -+ TEST_EQ_STR (array[8], "test"); -+ TEST_EQ_STR (array[9], ""); -+ TEST_EQ_STR (array[10], ""); -+ TEST_EQ_P (array[11], NULL); -+ -+ nih_free (array); -+ } -+ -+ TEST_FEATURE ("with no repeat and multiple different delimiter " -+ "characters at beginning, middle and end of string"); -+ TEST_ALLOC_FAIL { -+ array = nih_str_split (NULL, ": \nthis is\t \n:a test:\n ", "\n :\t", FALSE); -+ -+ if (test_alloc_failed) { -+ TEST_EQ_P (array, NULL); -+ continue; -+ } -+ -+ TEST_ALLOC_SIZE (array, sizeof (char *) * 13); -+ for (i = 0; i < 12; i++) -+ TEST_ALLOC_PARENT (array[i], array); -+ -+ TEST_EQ_STR (array[0], ""); -+ TEST_EQ_STR (array[1], ""); -+ TEST_EQ_STR (array[2], ""); -+ TEST_EQ_STR (array[3], "this"); -+ TEST_EQ_STR (array[4], "is"); -+ TEST_EQ_STR (array[5], ""); -+ TEST_EQ_STR (array[6], ""); -+ TEST_EQ_STR (array[7], ""); -+ TEST_EQ_STR (array[8], "a"); -+ TEST_EQ_STR (array[9], "test"); -+ TEST_EQ_STR (array[10], ""); -+ TEST_EQ_STR (array[11], ""); -+ TEST_EQ_P (array[12], NULL); -+ -+ nih_free (array); -+ } - - /* Check that we can split a string treating multiple consecutive - * matching characters as a single separator to be skipped. -@@ -645,6 +854,177 @@ - nih_free (array); - } - -+ /* Check that we can split a string containing multiple -+ * occurences of one of the delimiter characters at the -+ * beginning of the string. -+ */ -+ TEST_FEATURE ("with repeat and multiple identical adjacent delimiter characters at string start"); -+ TEST_ALLOC_FAIL { -+ array = nih_str_split (NULL, "\n\nhello", " \t\r\n", TRUE); -+ -+ if (test_alloc_failed) { -+ TEST_EQ_P (array, NULL); -+ continue; -+ } -+ -+ TEST_ALLOC_SIZE (array, sizeof (char *) * 2); -+ for (i = 0; i < 1; i++) -+ TEST_ALLOC_PARENT (array[i], array); -+ -+ TEST_EQ_STR (array[0], "hello"); -+ TEST_EQ_P (array[1], NULL); -+ -+ nih_free (array); -+ } -+ -+ TEST_FEATURE ("with repeat and multiple different adjacent delimiter characters at string start"); -+ TEST_ALLOC_FAIL { -+ array = nih_str_split (NULL, "\n\r hello", " \t\r\n", TRUE); -+ -+ if (test_alloc_failed) { -+ TEST_EQ_P (array, NULL); -+ continue; -+ } -+ -+ TEST_ALLOC_SIZE (array, sizeof (char *) * 2); -+ for (i = 0; i < 1; i++) -+ TEST_ALLOC_PARENT (array[i], array); -+ -+ TEST_EQ_STR (array[0], "hello"); -+ TEST_EQ_P (array[1], NULL); -+ -+ nih_free (array); -+ } -+ -+ TEST_FEATURE ("with repeat and multiple identical adjacent delimiter " -+ "characters within string"); -+ TEST_ALLOC_FAIL { -+ array = nih_str_split (NULL, "hello\n\rworld", " \t\n\r", TRUE); -+ -+ if (test_alloc_failed) { -+ TEST_EQ_P (array, NULL); -+ continue; -+ } -+ -+ TEST_ALLOC_SIZE (array, sizeof (char *) * 3); -+ for (i = 0; i < 2; i++) -+ TEST_ALLOC_PARENT (array[i], array); -+ -+ TEST_EQ_STR (array[0], "hello"); -+ TEST_EQ_STR (array[1], "world"); -+ TEST_EQ_P (array[2], NULL); -+ -+ nih_free (array); -+ } -+ -+ TEST_FEATURE ("with repeat and multiple different adjacent delimiter " -+ "characters within string"); -+ TEST_ALLOC_FAIL { -+ array = nih_str_split (NULL, "hello\n\r\tworld", " \t\n\r", TRUE); -+ -+ if (test_alloc_failed) { -+ TEST_EQ_P (array, NULL); -+ continue; -+ } -+ -+ TEST_ALLOC_SIZE (array, sizeof (char *) * 3); -+ for (i = 0; i < 2; i++) -+ TEST_ALLOC_PARENT (array[i], array); -+ -+ TEST_EQ_STR (array[0], "hello"); -+ TEST_EQ_STR (array[1], "world"); -+ TEST_EQ_P (array[2], NULL); -+ -+ nih_free (array); -+ } -+ -+ TEST_FEATURE ("with repeat and multiple identical adjacent delimiter " -+ "characters at string end"); -+ TEST_ALLOC_FAIL { -+ array = nih_str_split (NULL, "hello\n\n\n\n\n\n\n", " \t\r\n", TRUE); -+ -+ if (test_alloc_failed) { -+ TEST_EQ_P (array, NULL); -+ continue; -+ } -+ -+ TEST_ALLOC_SIZE (array, sizeof (char *) * 2); -+ for (i = 0; i < 1; i++) -+ TEST_ALLOC_PARENT (array[i], array); -+ -+ TEST_EQ_STR (array[0], "hello"); -+ TEST_EQ_P (array[1], NULL); -+ -+ nih_free (array); -+ } -+ -+ TEST_FEATURE ("with repeat and multiple different adjacent delimiter " -+ "characters at string end"); -+ TEST_ALLOC_FAIL { -+ array = nih_str_split (NULL, "hello \r\t\r\t\n ", " \t\r\n", TRUE); -+ -+ if (test_alloc_failed) { -+ TEST_EQ_P (array, NULL); -+ continue; -+ } -+ -+ TEST_ALLOC_SIZE (array, sizeof (char *) * 2); -+ for (i = 0; i < 1; i++) -+ TEST_ALLOC_PARENT (array[i], array); -+ -+ TEST_EQ_STR (array[0], "hello"); -+ TEST_EQ_P (array[1], NULL); -+ -+ nih_free (array); -+ } -+ -+ TEST_FEATURE ("with repeat and multiple identical adjacent delimiter " -+ "characters at beginning, middle and end of string"); -+ TEST_ALLOC_FAIL { -+ array = nih_str_split (NULL, -+ " hello\n\n\n, world\n\n\n", -+ "\r\t\n ", TRUE); -+ -+ if (test_alloc_failed) { -+ TEST_EQ_P (array, NULL); -+ continue; -+ } -+ -+ TEST_ALLOC_SIZE (array, sizeof (char *) * 4); -+ for (i = 0; i < 3; i++) -+ TEST_ALLOC_PARENT (array[i], array); -+ -+ TEST_EQ_STR (array[0], "hello"); -+ TEST_EQ_STR (array[1], ","); -+ TEST_EQ_STR (array[2], "world"); -+ TEST_EQ_P (array[3], NULL); -+ -+ nih_free (array); -+ } -+ -+ TEST_FEATURE ("with repeat and multiple different adjacent delimiter " -+ "characters at beginning, middle and end of string"); -+ TEST_ALLOC_FAIL { -+ array = nih_str_split (NULL, -+ "\n \r\thello\n\n\r , \n\t\rworld\t \r\n \n", -+ " \t\n\r", TRUE); -+ -+ if (test_alloc_failed) { -+ TEST_EQ_P (array, NULL); -+ continue; -+ } -+ -+ TEST_ALLOC_SIZE (array, sizeof (char *) * 4); -+ for (i = 0; i < 3; i++) -+ TEST_ALLOC_PARENT (array[i], array); -+ -+ TEST_EQ_STR (array[0], "hello"); -+ TEST_EQ_STR (array[1], ","); -+ TEST_EQ_STR (array[2], "world"); -+ TEST_EQ_P (array[3], NULL); -+ -+ nih_free (array); -+ } - - /* Check that we can give an empty string, and end up with a - * one-element array that only contains a NULL pointer. ---- libnih-1.0.3.orig/nih/tests/test_file.c -+++ libnih-1.0.3/nih/tests/test_file.c -@@ -724,6 +724,25 @@ - return FALSE; - } - -+/* find only frodo files */ -+static int -+my_filter_frodo_file (void *data, -+ const char *path, -+ int is_dir) -+{ -+ char *slash; -+ -+ if (is_dir) -+ return FALSE; -+ -+ slash = strrchr (path, '/'); -+ if (strcmp (slash, "/frodo")) -+ return TRUE; -+ -+ return FALSE; -+} -+ -+ - static int logger_called = 0; - - static int -@@ -905,6 +924,48 @@ - TEST_EQ_STR (v->path, filename); - - nih_free (visited); -+ -+ /* Try also inverse filter */ -+ TEST_ALLOC_SAFE { -+ visitor_called = 0; -+ visited = nih_list_new (NULL); -+ } -+ -+ ret = nih_dir_walk (dirname, my_filter_frodo_file, -+ my_visitor, NULL, &ret); -+ -+ TEST_EQ (ret, 0); -+ TEST_EQ (visitor_called, 4); -+ -+ v = (Visited *)visited->next; -+ TEST_EQ (v->data, &ret); -+ TEST_EQ_STR (v->dirname, dirname); -+ strcpy (filename, dirname); -+ strcat (filename, "/bar"); -+ TEST_EQ_STR (v->path, filename); -+ -+ v = (Visited *)v->entry.next; -+ TEST_EQ (v->data, &ret); -+ TEST_EQ_STR (v->dirname, dirname); -+ strcpy (filename, dirname); -+ strcat (filename, "/bar/frodo"); -+ TEST_EQ_STR (v->path, filename); -+ -+ v = (Visited *)v->entry.next; -+ TEST_EQ (v->data, &ret); -+ TEST_EQ_STR (v->dirname, dirname); -+ strcpy (filename, dirname); -+ strcat (filename, "/baz"); -+ TEST_EQ_STR (v->path, filename); -+ -+ v = (Visited *)v->entry.next; -+ TEST_EQ (v->data, &ret); -+ TEST_EQ_STR (v->dirname, dirname); -+ strcpy (filename, dirname); -+ strcat (filename, "/frodo"); -+ TEST_EQ_STR (v->path, filename); -+ -+ nih_free (visited); - } - - ---- libnih-1.0.3.orig/debian/control -+++ libnih-1.0.3/debian/control -@@ -0,0 +1,81 @@ -+Source: libnih -+Section: libs -+Priority: required -+Maintainer: Ubuntu Developers -+XSBC-Original-Maintainer: Scott James Remnant -+Standards-Version: 3.9.4 -+Build-Depends: debhelper (>= 9), pkg-config (>= 0.22), libdbus-1-dev (>= 1.4), libexpat1-dev (>= 2.0.0), dbus (>= 1.4), libc6-dev (>= 2.15~) | libc6.1-dev (>= 2.15~), -+ dh-autoreconf, autopoint, dpkg-dev (>= 1.16.1~) -+# To cross build this package also needs: libdbus-1-dev:native (>= 1.4), libexpat1-dev:native (>= 2.0.0) -+# But :native build-deps are not supported yet, so instead one can do -+# $ apt-get build-dep libnih -+# $ apt-get build-dep libnih -aarmhf -+# instead to get all required build-deps -+Vcs-Bzr: lp:ubuntu/libnih -+XSC-Debian-Vcs-Git: git://git.debian.org/git/collab-maint/libnih.git -+XSC-Debian-Vcs-Browser: http://git.debian.org/?p=collab-maint/libnih.git;a=summary -+Homepage: https://launchpad.net/libnih -+ -+Package: libnih1 -+Architecture: any -+Pre-Depends: ${misc:Pre-Depends}, ${shlibs:Depends}, ${misc:Depends} -+Multi-Arch: same -+Description: NIH Utility Library -+ libnih is a light-weight "standard library" of C functions to ease the -+ development of other libraries and applications, especially those -+ normally found in /lib. -+ . -+ This package contains the shared library. -+ -+Package: libnih-dev -+Priority: optional -+Section: libdevel -+Architecture: any -+Multi-Arch: same -+Depends: libnih1 (= ${binary:Version}), ${shlibs:Depends}, ${misc:Depends} -+Description: NIH Utility Library (development files) -+ libnih is a light-weight "standard library" of C functions to ease the -+ development of other libraries and applications, especially those -+ normally found in /lib. -+ . -+ This package contains the static library and C header files which are -+ needed for developing software using libnih. -+ -+Package: libnih-dbus1 -+Architecture: any -+Pre-Depends: ${misc:Pre-Depends} -+Depends: libnih1 (= ${binary:Version}), ${shlibs:Depends}, ${misc:Depends} -+Multi-Arch: same -+Description: NIH D-Bus Bindings Library -+ libnih-dbus is a D-Bus bindings library that integrates with the main -+ loop provided by libnih. -+ . -+ This package contains the shared library. -+ -+Package: libnih-dbus-dev -+Priority: optional -+Section: libdevel -+Architecture: any -+Multi-Arch: same -+Depends: libnih-dbus1 (= ${binary:Version}), libnih-dev (= ${binary:Version}), ${shlibs:Depends}, ${misc:Depends} -+Recommends: nih-dbus-tool (= ${binary:Version}) -+Description: NIH D-Bus Bindings Library (development files) -+ libnih-dbus is a D-Bus bindings library that integrates with the main -+ loop provided by libnih. -+ . -+ This package contains the static library and C header files which are -+ needed for developing software using libnih-dbus. -+ -+Package: nih-dbus-tool -+Section: devel -+Architecture: any -+Multi-Arch: foreign -+Depends: ${shlibs:Depends}, ${misc:Depends} -+Recommends: libnih-dbus-dev (= ${binary:Version}) -+Description: NIH D-Bus Binding Tool -+ nih-dbus-tool generates C source code from the D-Bus Introspection XML -+ data provided by most services; either to make implementing the -+ described objects in C programs or to make proxying to the described -+ remote objects easier. -+ . -+ The generated code requires libnih-dbus-dev to be compiled. ---- libnih-1.0.3.orig/debian/libnih-dev.install -+++ libnih-1.0.3/debian/libnih-dev.install -@@ -0,0 +1,6 @@ -+lib/*/libnih.a -+lib/*/libnih.so -+usr/include/libnih.h -+usr/include/nih -+usr/lib/*/pkgconfig/libnih.pc -+usr/share/aclocal/libnih.m4 ---- libnih-1.0.3.orig/debian/libnih1.docs -+++ libnih-1.0.3/debian/libnih1.docs -@@ -0,0 +1,3 @@ -+AUTHORS -+NEWS -+README ---- libnih-1.0.3.orig/debian/libnih-dbus1.install -+++ libnih-1.0.3/debian/libnih-dbus1.install -@@ -0,0 +1 @@ -+lib/*/libnih-dbus.so.* ---- libnih-1.0.3.orig/debian/libnih1.install -+++ libnih-1.0.3/debian/libnih1.install -@@ -0,0 +1 @@ -+lib/*/libnih.so.* ---- libnih-1.0.3.orig/debian/rules -+++ libnih-1.0.3/debian/rules -@@ -0,0 +1,54 @@ -+#!/usr/bin/make -f -+ -+include /usr/share/dpkg/architecture.mk -+ -+%: -+ dh $@ --with autoreconf -+ -+ -+CFLAGS := -Wall -fstack-protector -fPIE $(shell dpkg-buildflags --get CFLAGS) -+LDFLAGS := -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -pie $(shell dpkg-buildflags --get LDFLAGS) -+ -+override_dh_auto_configure: -+ifeq ($(DEB_BUILD_GNU_TYPE), $(DEB_HOST_GNU_TYPE)) -+ dh_auto_configure -- CFLAGS="$(CFLAGS)" LDFLAGS="$(LDFLAGS)" \ -+ --libdir=/lib/$(DEB_HOST_MULTIARCH) -+else -+ dh_auto_configure -B build-dbus-tool/ -- CFLAGS="$(CFLAGS)" LDFLAGS="$(LDFLAGS)" \ -+ --libdir=/lib/$(DEB_BUILD_MULTIARCH) \ -+ --host=$(DEB_BUILD_GNU_TYPE) -+ dh_auto_build -B build-dbus-tool/ --parallel -+ dh_auto_configure -- CFLAGS="$(CFLAGS)" LDFLAGS="$(LDFLAGS)" \ -+ NIH_DBUS_TOOL=$(CURDIR)/build-dbus-tool/nih-dbus-tool/nih-dbus-tool \ -+ --libdir=/lib/$(DEB_HOST_MULTIARCH) -+endif -+ -+override_dh_auto_build: -+ dh_auto_build --parallel -+ -+override_dh_auto_test: -+ifeq ($(DEB_BUILD_GNU_TYPE), $(DEB_HOST_GNU_TYPE)) -+ dh_auto_test --parallel -+endif -+ -+override_dh_auto_install: -+ dh_auto_install -- pkgconfigdir=\$${prefix}/lib/$(DEB_HOST_MULTIARCH)/pkgconfig -+ -+override_dh_makeshlibs: -+ dh_makeshlibs -plibnih1 -V 'libnih1 (>= 1.0.0)' -+ dh_makeshlibs -plibnih-dbus1 -V 'libnih-dbus1 (>= 1.0.0)' -+ dh_makeshlibs -Nlibnih1 -Nlibnih-dbus1 -+ -+override_dh_shlibdeps: -+ dh_shlibdeps -+ sed -i 's/2\.14/2.15/' debian/*.substvars -+ sed -i 's/>= 2.15)/>= 2.15~)/g' debian/*.substvars -+ -+ -+# Symlink /usr/share/doc directories together -+override_dh_installdocs: -+ dh_installdocs --link-doc=libnih1 -+ -+override_dh_clean: -+ rm -rf build-dbus-tool/ -+ dh_clean ---- libnih-1.0.3.orig/debian/compat -+++ libnih-1.0.3/debian/compat -@@ -0,0 +1 @@ -+9 ---- libnih-1.0.3.orig/debian/nih-dbus-tool.install -+++ libnih-1.0.3/debian/nih-dbus-tool.install -@@ -0,0 +1,2 @@ -+usr/bin/nih-dbus-tool -+usr/share/man/man1/nih-dbus-tool.1 ---- libnih-1.0.3.orig/debian/copyright -+++ libnih-1.0.3/debian/copyright -@@ -0,0 +1,18 @@ -+This is the Ubuntu package of libnih, the NIH Utility Library. -+ -+Copyright © 2009 Canonical Ltd. -+Copyright © 2009 Scott James Remnant -+ -+Licence: -+ -+This program is free software; you can redistribute it and/or modify -+it under the terms of the GNU General Public License version 2, as -+published by the Free Software Foundation. -+ -+This program is distributed in the hope that it will be useful, but -+WITHOUT ANY WARRANTY; without even the implied warranty of -+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -+General Public License for more details. -+ -+On Ubuntu systems, the complete text of the GNU General Public License -+can be found in ‘/usr/share/common-licenses/GPL-2’. ---- libnih-1.0.3.orig/debian/libnih-dbus1.postinst -+++ libnih-1.0.3/debian/libnih-dbus1.postinst -@@ -0,0 +1,53 @@ -+#!/bin/sh -+ -+set -e -+ -+if [ "$1" = configure ]; then -+ # A dependent library of Upstart has changed, so restart Upstart -+ # such that it can safely unmount the root filesystem (LP: #740390) -+ -+ # Query running version of Upstart, but only when we know -+ # that initctl will work. -+ # -+ # The calculated version string may be the null string if -+ # Upstart is not running (where for example an alternative -+ # init is running outside a chroot environment) or if the -+ # query failed for some reason. However, the version check -+ # below handles a null version string correctly. -+ UPSTART_VERSION_RUNNING=$(initctl version 2>/dev/null |\ -+ awk '{print $3}'|tr -d ')' || :) -+ -+ if ischroot; then -+ # Do not honour re-exec when requested from within a -+ # chroot since: -+ # -+ # (a) The version of Upstart outside might not support it. -+ # (b) An isolated environment such as a chroot should -+ # not be able to modify its containing environment. -+ # -+ # A sufficiently new Upstart will actually handle a re-exec -+ # request coming from telinit within a chroot correctly (by -+ # doing nothing) but it's simple enough to perform the check -+ # here and save Upstart the effort. -+ : -+ elif dpkg --compare-versions "$UPSTART_VERSION_RUNNING" ge 1.6.1; then -+ # We are not running inside a chroot and the running version -+ # of Upstart supports stateful re-exec, so we can -+ # restart immediately. -+ # -+ # XXX: Note that the check on the running version must -+ # remain *indefinitely* since it's the only safe way to -+ # know if stateful re-exec is supported: simply checking -+ # packaged version numbers is not sufficient since -+ # the package could be upgraded multiple times without a -+ # reboot. -+ telinit u || : -+ else -+ # Before we shutdown or reboot, we need to re-exec so that we -+ # can safely remount the root filesystem; we can't just do that -+ # here because we lose state. -+ touch /var/run/init.upgraded || : -+ fi -+fi -+ -+#DEBHELPER# ---- libnih-1.0.3.orig/debian/changelog.DEBIAN -+++ libnih-1.0.3/debian/changelog.DEBIAN -@@ -0,0 +1,118 @@ -+libnih (1.0.3-4) unstable; urgency=low -+ -+ * Rebuild for new libc to update versioned dependency; this comes from -+ the __abort_msg dependency, dpkg-shlibs needs overriding since this is -+ actually a weak link, but this rebuild fixes things for now. -+ Closes: #625257. -+ -+ -- Scott James Remnant Mon, 02 May 2011 15:08:33 -0700 -+ -+libnih (1.0.3-3) unstable; urgency=low -+ -+ * New maintainer. Closes: #624442. -+ -+ -- Scott James Remnant Thu, 28 Apr 2011 14:26:05 -0700 -+ -+libnih (1.0.3-2) unstable; urgency=low -+ -+ * Bump build dependency on libdbus-1-dev and dbus to (>= 1.4) for Unix file -+ descriptor passing support. -+ -+ -- Michael Biebl Thu, 10 Feb 2011 20:25:18 +0100 -+ -+libnih (1.0.3-1ubuntu1) natty; urgency=low -+ -+ * Rebuild with libc6-dev (>= 2.13~). -+ -+ -- Matthias Klose Fri, 18 Feb 2011 12:09:29 +0100 -+ -+libnih (1.0.3-1) unstable; urgency=low -+ -+ * New upstream release. -+ * Bump debhelper compatibility level to 8 and update build dependency -+ accordingly. -+ -+ -- Michael Biebl Mon, 07 Feb 2011 22:19:13 +0100 -+ -+libnih (1.0.2-2) unstable; urgency=low -+ -+ * Install library development files to /usr/lib and not /lib. -+ * Remove libtool *.la files as there are no reverse dependencies referencing -+ them. -+ * Bump Standards-Version to 3.9.1. No further changes. -+ -+ -- Michael Biebl Sun, 02 Jan 2011 21:09:40 +0100 -+ -+libnih (1.0.2-1ubuntu3) natty; urgency=low -+ -+ * Disable some tests on ppc64 to build an initial package. -+ -+ -- Matthias Klose Thu, 18 Nov 2010 10:59:38 +0100 -+ -+libnih (1.0.2-1ubuntu2) maverick; urgency=low -+ -+ * Re-add -fPIE to the testsuite on armel, removing all armel-specific tests; -+ current gcc-4.4 don't seem affected by the ICE anymore (see LP #398403). -+ -+ -- Loïc Minier Mon, 23 Aug 2010 10:25:31 +0200 -+ -+libnih (1.0.2-1ubuntu1) maverick; urgency=low -+ -+ * Rebuild with libc6-dev (>= 2.12~), after checking that -+ __abort_msg is available with the same signature in eglibc 2.12. -+ * Don't build the testsuite with -fPIE on armel; LP: #398403. -+ -+ -- Matthias Klose Sun, 30 May 2010 02:54:56 +0200 -+ -+libnih (1.0.2-1) unstable; urgency=low -+ -+ * Initial upload to Debian. Closes: #585071 -+ * Based on the Ubuntu package for Lucid done by Scott James Remnant with the -+ following changes: -+ - Switch packages to priority optional. -+ - Use binary:Version instead of Source-Version. -+ - Bump Standards-Version to 3.8.4. -+ - Add Homepage and Vcs-* fields. -+ - Don't symlink /usr/share/doc directories. -+ - Refer to versioned /usr/share/common-licenses/GPL-2 file in -+ debian/copyright. -+ - List all symbols explicitly instead of using a wildcard and add symbols -+ introduced in 1.0.1. -+ - Use the symbols files to create the correct version info instead of -+ specifying it manually via shlibs. -+ - Switch to source format 3.0 (quilt). -+ - Add watch file to track new upstream releases. -+ -+ -- Michael Biebl Sun, 13 Jun 2010 23:36:52 +0200 -+ -+libnih (1.0.1-1) lucid; urgency=low -+ -+ * New upstream release: -+ - Add missing __nih_* symbols to linker version script so that we -+ can link Upstart's test suite. -+ - Glibc __abort_msg symbol now only linked as a weak symbol. -+ -+ -- Scott James Remnant Thu, 04 Feb 2010 14:53:26 -0800 -+ -+libnih (1.0.0-2build1) lucid; urgency=low -+ -+ * Rebuild to pick up relaxed dependency on libc6, after checking that -+ __abort_msg is available with the same signature in eglibc 2.11. -+ LP: #508702. -+ -+ -- Matthias Klose Mon, 18 Jan 2010 16:09:13 +0100 -+ -+libnih (1.0.0-2) lucid; urgency=low -+ -+ * debian/control: Add build-dependency on dbus so the test suite can -+ pass on the buildds. -+ -+ -- Scott James Remnant Sat, 28 Nov 2009 23:28:27 +0000 -+ -+libnih (1.0.0-1) lucid; urgency=low -+ -+ * First upstream release. Previously this code was included in the -+ upstart, mountall and ureadahead source packages. -+ -+ -- Scott James Remnant Sat, 28 Nov 2009 21:14:00 +0000 -+ ---- libnih-1.0.3.orig/debian/libnih1.symbols -+++ libnih-1.0.3/debian/libnih1.symbols -@@ -0,0 +1,2 @@ -+libnih.so.1 libnih1 #MINVER# -+ *@LIBNIH_1_0 1.0.0 ---- libnih-1.0.3.orig/debian/libnih-dbus-dev.install -+++ libnih-1.0.3/debian/libnih-dbus-dev.install -@@ -0,0 +1,5 @@ -+lib/*/libnih-dbus.a -+lib/*/libnih-dbus.so -+usr/include/libnih-dbus.h -+usr/include/nih-dbus -+usr/lib/*/pkgconfig/libnih-dbus.pc ---- libnih-1.0.3.orig/debian/libnih1.postinst -+++ libnih-1.0.3/debian/libnih1.postinst -@@ -0,0 +1,53 @@ -+#!/bin/sh -+ -+set -e -+ -+if [ "$1" = configure ]; then -+ # A dependent library of Upstart has changed, so restart Upstart -+ # such that it can safely unmount the root filesystem (LP: #740390) -+ -+ # Query running version of Upstart, but only when we know -+ # that initctl will work. -+ # -+ # The calculated version string may be the null string if -+ # Upstart is not running (where for example an alternative -+ # init is running outside a chroot environment) or if the -+ # query failed for some reason. However, the version check -+ # below handles a null version string correctly. -+ UPSTART_VERSION_RUNNING=$(initctl version 2>/dev/null |\ -+ awk '{print $3}'|tr -d ')' || :) -+ -+ if ischroot; then -+ # Do not honour re-exec when requested from within a -+ # chroot since: -+ # -+ # (a) The version of Upstart outside might not support it. -+ # (b) An isolated environment such as a chroot should -+ # not be able to modify its containing environment. -+ # -+ # A sufficiently new Upstart will actually handle a re-exec -+ # request coming from telinit within a chroot correctly (by -+ # doing nothing) but it's simple enough to perform the check -+ # here and save Upstart the effort. -+ : -+ elif dpkg --compare-versions "$UPSTART_VERSION_RUNNING" ge 1.6.1; then -+ # We are not running inside a chroot and the running version -+ # of Upstart supports stateful re-exec, so we can -+ # restart immediately. -+ # -+ # XXX: Note that the check on the running version must -+ # remain *indefinitely* since it's the only safe way to -+ # know if stateful re-exec is supported: simply checking -+ # packaged version numbers is not sufficient since -+ # the package could be upgraded multiple times without a -+ # reboot. -+ telinit u || : -+ else -+ # Before we shutdown or reboot, we need to re-exec so that we -+ # can safely remount the root filesystem; we can't just do that -+ # here because we lose state. -+ touch /var/run/init.upgraded || : -+ fi -+fi -+ -+#DEBHELPER# ---- libnih-1.0.3.orig/debian/libnih-dbus1.symbols -+++ libnih-1.0.3/debian/libnih-dbus1.symbols -@@ -0,0 +1,2 @@ -+libnih-dbus.so.1 libnih-dbus1 #MINVER# -+ *@LIBNIH_DBUS_1_0 1.0.0 ---- libnih-1.0.3.orig/debian/changelog -+++ libnih-1.0.3/debian/changelog -@@ -0,0 +1,213 @@ -+libnih (1.0.3-4ubuntu16) raring; urgency=low -+ -+ * debian/{libnih1.postinst,libnih-dbus1.postinst}: Force an upgrade to -+ restart Upstart (to pick up new package version) if the running -+ instance supports it. -+ * Merge of important fixes from lp:~upstart-devel/libnih/nih -+ (LP: #776532, LP: #777097, LP: #834813, LP: #1123588). -+ -+ -- James Hunt Thu, 14 Mar 2013 09:14:22 +0000 -+ -+libnih (1.0.3-4ubuntu15) raring; urgency=low -+ -+ * Enable cross-building, sans adding :native build-dependencies. -+ See comments in debian/control. -+ * Lintian fixes. -+ -+ -- Dmitrijs Ledkovs Tue, 08 Jan 2013 15:38:58 +0000 -+ -+libnih (1.0.3-4ubuntu14) raring; urgency=low -+ -+ * Update dbus code generator to allow for empty lists for type 'as'. -+ This drops the != NULL check for NULL terminated arrays and moves the -+ iteration loop inside an 'if' statement. -+ -+ -- Stéphane Graber Thu, 13 Dec 2012 10:00:27 -0500 -+ -+libnih (1.0.3-4ubuntu13) raring; urgency=low -+ -+ [ Petr Lautrbach , Dmitrijs Ledkovs ] -+ * Fallback to lstat, if dirent.d_type is not available (not portable) -+ (LP: #672643) (Closes: #695604) -+ -+ -- Dmitrijs Ledkovs Tue, 11 Dec 2012 17:26:52 +0000 -+ -+libnih (1.0.3-4ubuntu12) raring; urgency=low -+ -+ * nih/logging.c: Use our own __nih_abort_msg rather than the (e)glibc -+ private symbol __abort_msg to avoid upgrade issues (LP: #997359). -+ * nih/tests/test_logging.c: Update tests for __nih_abort_msg. -+ -+ -- James Hunt Thu, 25 Oct 2012 10:57:30 +0100 -+ -+libnih (1.0.3-4ubuntu11) quantal; urgency=low -+ -+ * Addition of debian/libnih-dbus1.postinst and -+ debian/libnih1.postinst to force Upstart re-exec on shutdown -+ to avoid unmounting disks uncleanly (LP: #740390). -+ -+ -- James Hunt Wed, 03 Oct 2012 16:49:40 +0100 -+ -+libnih (1.0.3-4ubuntu10) quantal; urgency=low -+ -+ * Update config.guess,sub for aarch64 -+ -+ -- Wookey Mon, 01 Oct 2012 12:57:05 +0100 -+ -+libnih (1.0.3-4ubuntu9) precise; urgency=low -+ -+ * Mark the nih-dbus-tool package Multi-Arch: foreign so it can be used as -+ a build-dependency of upstart when cross-building. -+ -+ -- Steve Langasek Wed, 15 Feb 2012 22:57:50 -0800 -+ -+libnih (1.0.3-4ubuntu8) precise; urgency=low -+ -+ * libnih1 needs a versioned Pre-Depend on libc6 instead of just a Depend, -+ because libc6 itself uses runlevel from the upstart package in its -+ preinst, which in turn uses libnih1, which needs to be loadable (i.e., -+ its symbol references resolve). We therefore need to ensure that -+ libnih1's dependencies are always unpacked before libnih1 itself is -+ unpacked. While having something further up the stack (such as upstart, -+ or something on top of upstart) being marked Essential: yes and with the -+ necessary pre-depends would let apt handle this for us with its -+ "immediate configuration" support, but for various reasons we don't want -+ to make upstart essential. LP: #508083. -+ -+ -- Steve Langasek Fri, 10 Feb 2012 12:13:25 -0800 -+ -+libnih (1.0.3-4ubuntu7) precise; urgency=low -+ -+ * Relax dependency on libc6. -+ -+ -- Matthias Klose Wed, 08 Feb 2012 23:43:21 +0100 -+ -+libnih (1.0.3-4ubuntu6) precise; urgency=low -+ -+ * Rebuild with libc6-dev (>= 2.15~). -+ -+ -- Matthias Klose Wed, 08 Feb 2012 21:48:57 +0100 -+ -+libnih (1.0.3-4ubuntu5) precise; urgency=low -+ -+ * Mark libnih-dev and libnih-dbus-dev Multi-Arch: same as well. -+ -+ -- Steve Langasek Sun, 06 Nov 2011 14:45:07 -0800 -+ -+libnih (1.0.3-4ubuntu4) precise; urgency=low -+ -+ * Make libnih1 and libnih-dbus1 installable using multi-arch. -+ -+ -- James Hunt Tue, 01 Nov 2011 14:25:09 -0400 -+ -+libnih (1.0.3-4ubuntu3) precise; urgency=low -+ -+ * Build to install with eglibc-2.15. -+ -+ -- Matthias Klose Fri, 14 Oct 2011 14:05:03 +0200 -+ -+libnih (1.0.3-4ubuntu2) oneiric; urgency=low -+ -+ * Use dpkg-buildflags to get the build flags. -+ * Build with the default build flags, don't hard-code -Os. LP: #791315. -+ -+ -- Matthias Klose Wed, 15 Jun 2011 16:45:42 +0200 -+ -+libnih (1.0.3-4ubuntu1) oneiric; urgency=low -+ -+ * Merge from debian unstable. Retained Ubuntu Build-Depends and Priority. -+ -+ -- James Hunt Mon, 23 May 2011 19:28:19 +0100 -+ -+libnih (1.0.3-1ubuntu1) natty; urgency=low -+ -+ * Rebuild with libc6-dev (>= 2.13~). -+ -+ -- Matthias Klose Fri, 18 Feb 2011 12:09:29 +0100 -+ -+libnih (1.0.3-1) natty; urgency=low -+ -+ * New upstream release: -+ - Added support for passing file descriptors over D-Bus to nih-dbus-tool -+ -+ -- Scott James Remnant Thu, 23 Dec 2010 22:28:24 +0000 -+ -+libnih (1.0.2-2) natty; urgency=low -+ -+ * Revert the previous upload. It is never acceptable to simply disable -+ tests, especially when it turns out that the test that was disabled -+ was failing because there was a serious bug that could cause kernel -+ panics for people on boot. -+ -+ Test suites are here for a reason. -+ -+ * Bumped libdbus Build-Dependency to the version with the bug fix that -+ caused the test suite to fail. -+ -+ -- Scott James Remnant Wed, 08 Dec 2010 19:40:15 +0000 -+ -+libnih (1.0.2-1ubuntu3) natty; urgency=low -+ -+ * Disable some tests on ppc64 to build an initial package. -+ -+ -- Matthias Klose Thu, 18 Nov 2010 10:59:38 +0100 -+ -+libnih (1.0.2-1ubuntu2) maverick; urgency=low -+ -+ * Re-add -fPIE to the testsuite on armel, removing all armel-specific tests; -+ current gcc-4.4 don't seem affected by the ICE anymore (see LP #398403). -+ -+ -- Loïc Minier Mon, 23 Aug 2010 10:25:31 +0200 -+ -+libnih (1.0.2-1ubuntu1) maverick; urgency=low -+ -+ * Rebuild with libc6-dev (>= 2.12~), after checking that -+ __abort_msg is available with the same signature in eglibc 2.12. -+ * Don't build the testsuite with -fPIE on armel; LP: #398403. -+ -+ -- Matthias Klose Sun, 30 May 2010 02:54:56 +0200 -+ -+libnih (1.0.2-1) maverick; urgency=low -+ -+ * New upstream release: -+ - Rename AC_COPYRIGHT to NIH_COPYRIGHT to avoid conflict with other -+ packages. -+ - Add serial to libnih.m4 -+ - Add NIH_WITH_LOCAL_LIBNIH macro. -+ -+ * Fix use of ${Source-Version} to be ${binary:Version} -+ * Add debian/source/format with "1.0" to be future compatible. -+ * Bump standards version. -+ -+ -- Scott James Remnant Tue, 27 Apr 2010 10:49:55 -0700 -+ -+libnih (1.0.1-1) lucid; urgency=low -+ -+ * New upstream release: -+ - Add missing __nih_* symbols to linker version script so that we -+ can link Upstart's test suite. -+ - Glibc __abort_msg symbol now only linked as a weak symbol. -+ -+ -- Scott James Remnant Thu, 04 Feb 2010 14:53:26 -0800 -+ -+libnih (1.0.0-2build1) lucid; urgency=low -+ -+ * Rebuild to pick up relaxed dependency on libc6, after checking that -+ __abort_msg is available with the same signature in eglibc 2.11. -+ LP: #508702. -+ -+ -- Matthias Klose Mon, 18 Jan 2010 16:09:13 +0100 -+ -+libnih (1.0.0-2) lucid; urgency=low -+ -+ * debian/control: Add build-dependency on dbus so the test suite can -+ pass on the buildds. -+ -+ -- Scott James Remnant Sat, 28 Nov 2009 23:28:27 +0000 -+ -+libnih (1.0.0-1) lucid; urgency=low -+ -+ * First upstream release. Previously this code was included in the -+ upstart, mountall and ureadahead source packages. -+ -+ -- Scott James Remnant Sat, 28 Nov 2009 21:14:00 +0000 ---- libnih-1.0.3.orig/debian/source/format -+++ libnih-1.0.3/debian/source/format -@@ -0,0 +1 @@ -+1.0 ---- libnih-1.0.3.orig/nih-dbus/dbus_proxy.h -+++ libnih-1.0.3/nih-dbus/dbus_proxy.h -@@ -146,14 +146,14 @@ - const char *name, const char *path, - NihDBusLostHandler lost_handler, - void *data) -- __attribute__ ((warn_unused_result, malloc)); -+ __attribute__ ((warn_unused_result)); - - NihDBusProxySignal *nih_dbus_proxy_connect (NihDBusProxy *proxy, - const NihDBusInterface *interface, - const char *name, - NihDBusSignalHandler handler, - void *data) -- __attribute__ ((warn_unused_result, malloc)); -+ __attribute__ ((warn_unused_result)); - - NIH_END_EXTERN - ---- libnih-1.0.3.orig/nih-dbus/dbus_object.h -+++ libnih-1.0.3/nih-dbus/dbus_object.h -@@ -61,8 +61,7 @@ - DBusConnection *connection, - const char *path, - const NihDBusInterface **interfaces, -- void *data) -- __attribute__ ((malloc)); -+ void *data); - - NIH_END_EXTERN - ---- libnih-1.0.3.orig/nih-dbus/dbus_util.h -+++ libnih-1.0.3/nih-dbus/dbus_util.h -@@ -26,7 +26,7 @@ - NIH_BEGIN_EXTERN - - char *nih_dbus_path (const void *parent, const char *root, ...) -- __attribute__ ((sentinel, warn_unused_result, malloc)); -+ __attribute__ ((sentinel, warn_unused_result)); - - NIH_END_EXTERN - ---- libnih-1.0.3.orig/nih-dbus/dbus_pending_data.h -+++ libnih-1.0.3/nih-dbus/dbus_pending_data.h -@@ -104,7 +104,7 @@ - NihDBusReplyHandler handler, - NihDBusErrorHandler error_handler, - void *data) -- __attribute__ ((warn_unused_result, malloc)); -+ __attribute__ ((warn_unused_result)); - - NIH_END_EXTERN - ---- libnih-1.0.3.orig/nih-dbus/dbus_proxy.c -+++ libnih-1.0.3/nih-dbus/dbus_proxy.c -@@ -46,11 +46,11 @@ - __attribute__ ((warn_unused_result)); - static char *nih_dbus_proxy_name_rule (const void *parent, - NihDBusProxy *proxy) -- __attribute__ ((warn_unused_result, malloc)); -+ __attribute__ ((warn_unused_result)); - static int nih_dbus_proxy_signal_destroy (NihDBusProxySignal *proxied); - static char *nih_dbus_proxy_signal_rule (const void *parent, - NihDBusProxySignal *proxied) -- __attribute__ ((warn_unused_result, malloc)); -+ __attribute__ ((warn_unused_result)); - - /* Prototypes for handler functions */ - static DBusHandlerResult nih_dbus_proxy_name_owner_changed (DBusConnection *connection, ---- libnih-1.0.3.orig/nih-dbus-tool/symbol.c -+++ libnih-1.0.3/nih-dbus-tool/symbol.c -@@ -40,10 +40,10 @@ - /* Prototypes for static functions */ - static char *symbol_strcat_interface (char **str, const void *parent, - const char *format, ...) -- __attribute__ ((format (printf, 3, 4), warn_unused_result, malloc)); -+ __attribute__ ((format (printf, 3, 4), warn_unused_result)); - static char *symbol_strcat_title (char **str, const void *parent, - const char *format, ...) -- __attribute__ ((format (printf, 3, 4), warn_unused_result, malloc)); -+ __attribute__ ((format (printf, 3, 4), warn_unused_result)); - - - /** ---- libnih-1.0.3.orig/nih-dbus-tool/demarshal.h -+++ libnih-1.0.3/nih-dbus-tool/demarshal.h -@@ -37,7 +37,7 @@ - const char *prefix, const char *interface_symbol, - const char *member_symbol, const char *symbol, - NihList *structs) -- __attribute__ ((warn_unused_result, malloc)); -+ __attribute__ ((warn_unused_result)); - - NIH_END_EXTERN - ---- libnih-1.0.3.orig/nih-dbus-tool/symbol.h -+++ libnih-1.0.3/nih-dbus-tool/symbol.h -@@ -28,22 +28,22 @@ - int symbol_valid (const char *symbol); - - char *symbol_from_name (const void *parent, const char *name) -- __attribute__ ((warn_unused_result, malloc)); -+ __attribute__ ((warn_unused_result)); - - char *symbol_impl (const void *parent, const char *prefix, - const char *interface_name, const char *name, - const char *postfix) -- __attribute__ ((warn_unused_result, malloc)); -+ __attribute__ ((warn_unused_result)); - - char *symbol_extern (const void *parent, const char *prefix, - const char *interface_symbol, const char *midfix, - const char *symbol, const char *postfix) -- __attribute__ ((warn_unused_result, malloc)); -+ __attribute__ ((warn_unused_result)); - - char *symbol_typedef (const void *parent, const char *prefix, - const char *interface_symbol, const char *midfix, - const char *symbol, const char *postfix) -- __attribute__ ((warn_unused_result, malloc)); -+ __attribute__ ((warn_unused_result)); - - NIH_END_EXTERN - ---- libnih-1.0.3.orig/nih-dbus-tool/output.h -+++ libnih-1.0.3/nih-dbus-tool/output.h -@@ -35,9 +35,9 @@ - __attribute__ ((warn_unused_result)); - - char *output_preamble (const void *parent, const char *path) -- __attribute__ ((warn_unused_result, malloc)); -+ __attribute__ ((warn_unused_result)); - char *output_sentinel (const void *parent, const char *path) -- __attribute__ ((warn_unused_result, malloc)); -+ __attribute__ ((warn_unused_result)); - - NIH_END_EXTERN - ---- libnih-1.0.3.orig/nih-dbus-tool/parse.h -+++ libnih-1.0.3/nih-dbus-tool/parse.h -@@ -95,7 +95,7 @@ - - ParseStack *parse_stack_push (const void *parent, NihList *stack, - ParseStackType type, void *data) -- __attribute__ ((warn_unused_result, malloc)); -+ __attribute__ ((warn_unused_result)); - ParseStack *parse_stack_top (NihList *stack); - - void parse_start_tag (XML_Parser xmlp, const char *tag, -@@ -103,7 +103,7 @@ - void parse_end_tag (XML_Parser xmlp, const char *tag); - - Node * parse_xml (const void *parent, int fd, const char *filename) -- __attribute__ ((warn_unused_result, malloc)); -+ __attribute__ ((warn_unused_result)); - - NIH_END_EXTERN - ---- libnih-1.0.3.orig/nih-dbus-tool/type.h -+++ libnih-1.0.3/nih-dbus-tool/type.h -@@ -94,43 +94,43 @@ - - char * type_of (const void * parent, - DBusSignatureIter *iter) -- __attribute__ ((warn_unused_result, malloc)); -+ __attribute__ ((warn_unused_result)); - - TypeVar * type_var_new (const void *parent, const char *type, - const char *name) -- __attribute__ ((warn_unused_result, malloc)); -+ __attribute__ ((warn_unused_result)); - char * type_var_to_string (const void *parent, TypeVar *var) -- __attribute__ ((warn_unused_result, malloc)); -+ __attribute__ ((warn_unused_result)); - char * type_var_layout (const void *parent, NihList *vars) -- __attribute__ ((warn_unused_result, malloc)); -+ __attribute__ ((warn_unused_result)); - - TypeFunc * type_func_new (const void *parent, const char *type, - const char *name) -- __attribute__ ((warn_unused_result, malloc)); -+ __attribute__ ((warn_unused_result)); - char * type_func_to_string (const void *parent, TypeFunc *func) -- __attribute__ ((warn_unused_result, malloc)); -+ __attribute__ ((warn_unused_result)); - char * type_func_to_typedef (const void *parent, TypeFunc *func) -- __attribute__ ((warn_unused_result, malloc)); -+ __attribute__ ((warn_unused_result)); - char * type_func_layout (const void *parent, NihList *funcs) -- __attribute__ ((warn_unused_result, malloc)); -+ __attribute__ ((warn_unused_result)); - - TypeStruct *type_struct_new (const void *parent, const char *name) -- __attribute__ ((warn_unused_result, malloc)); -+ __attribute__ ((warn_unused_result)); - char * type_struct_to_string (const void *parent, TypeStruct *structure) -- __attribute__ ((warn_unused_result, malloc)); -+ __attribute__ ((warn_unused_result)); - - char * type_to_const (char **type, const void *parent) -- __attribute__ ((warn_unused_result, malloc)); -+ __attribute__ ((warn_unused_result)); - char * type_to_pointer (char **type, const void *parent) -- __attribute__ ((warn_unused_result, malloc)); -+ __attribute__ ((warn_unused_result)); - char * type_to_static (char **type, const void *parent) -- __attribute__ ((warn_unused_result, malloc)); -+ __attribute__ ((warn_unused_result)); - char * type_to_extern (char **type, const void *parent) -- __attribute__ ((warn_unused_result, malloc)); -+ __attribute__ ((warn_unused_result)); - - char * type_strcat_assert (char **block, const void *parent, - TypeVar *var, TypeVar *prev, TypeVar *next) -- __attribute__ ((warn_unused_result, malloc)); -+ __attribute__ ((warn_unused_result)); - - NIH_END_EXTERN - ---- libnih-1.0.3.orig/nih-dbus-tool/argument.h -+++ libnih-1.0.3/nih-dbus-tool/argument.h -@@ -61,7 +61,7 @@ - - Argument *argument_new (const void *parent, const char *name, - const char *type, NihDBusArgDir direction) -- __attribute__ ((warn_unused_result, malloc)); -+ __attribute__ ((warn_unused_result)); - - int argument_start_tag (XML_Parser xmlp, const char *tag, - char * const *attr) ---- libnih-1.0.3.orig/nih-dbus-tool/indent.h -+++ libnih-1.0.3/nih-dbus-tool/indent.h -@@ -26,9 +26,9 @@ - NIH_BEGIN_EXTERN - - char *indent (char **str, const void *parent, int level) -- __attribute__ ((warn_unused_result, malloc)); -+ __attribute__ ((warn_unused_result)); - char *comment (char **str, const void *parent) -- __attribute__ ((warn_unused_result, malloc)); -+ __attribute__ ((warn_unused_result)); - - NIH_END_EXTERN - ---- libnih-1.0.3.orig/nih-dbus-tool/main.c -+++ libnih-1.0.3/nih-dbus-tool/main.c -@@ -52,10 +52,10 @@ - /* Prototypes for local functions */ - char *source_file_path (const void *parent, const char *output_path, - const char *filename) -- __attribute__ ((warn_unused_result, malloc)); -+ __attribute__ ((warn_unused_result)); - char *header_file_path (const void *parent, const char *output_path, - const char *filename) -- __attribute__ ((warn_unused_result, malloc)); -+ __attribute__ ((warn_unused_result)); - - - /** ---- libnih-1.0.3.orig/nih-dbus-tool/signal.h -+++ libnih-1.0.3/nih-dbus-tool/signal.h -@@ -58,7 +58,7 @@ - int signal_name_valid (const char *name); - - Signal * signal_new (const void *parent, const char *name) -- __attribute__ ((warn_unused_result, malloc)); -+ __attribute__ ((warn_unused_result)); - - int signal_start_tag (XML_Parser xmlp, const char *tag, - char * const *attr) -@@ -76,18 +76,18 @@ - char * signal_object_function (const void *parent, const char *prefix, - Interface *interface, Signal *signal, - NihList *prototypes, NihList *structs) -- __attribute__ ((warn_unused_result, malloc)); -+ __attribute__ ((warn_unused_result)); - - char * signal_proxy_function (const void *parent, const char *prefix, - Interface *interface, Signal *signal, - NihList *prototypes, NihList *typedefs, - NihList *structs) -- __attribute__ ((warn_unused_result, malloc)); -+ __attribute__ ((warn_unused_result)); - - char * signal_args_array (const void *parent, const char *prefix, - Interface *interface, Signal *signal, - NihList *prototypes) -- __attribute__ ((warn_unused_result, malloc)); -+ __attribute__ ((warn_unused_result)); - - NIH_END_EXTERN - ---- libnih-1.0.3.orig/nih-dbus-tool/marshal.c -+++ libnih-1.0.3/nih-dbus-tool/marshal.c -@@ -49,7 +49,7 @@ - const char *prefix, const char *interface_symbol, - const char *member_symbol, const char *symbol, - NihList *structs) -- __attribute__ ((warn_unused_result, malloc)); -+ __attribute__ ((warn_unused_result)); - static char *marshal_array (const void *parent, - DBusSignatureIter *iter, - const char *iter_name, const char *name, -@@ -58,7 +58,7 @@ - const char *prefix, const char *interface_symbol, - const char *member_symbol, const char *symbol, - NihList *structs) -- __attribute__ ((warn_unused_result, malloc)); -+ __attribute__ ((warn_unused_result)); - static char *marshal_struct (const void *parent, - DBusSignatureIter *iter, - const char *iter_name, const char *name, -@@ -67,7 +67,7 @@ - const char *prefix, const char *interface_symbol, - const char *member_symbol, const char *symbol, - NihList *structs) -- __attribute__ ((warn_unused_result, malloc)); -+ __attribute__ ((warn_unused_result)); - - - /** -@@ -364,6 +364,7 @@ - nih_local TypeVar *element_len_var = NULL; - nih_local char * block = NULL; - nih_local char * vars_block = NULL; -+ nih_local char * loop_block = NULL; - - nih_assert (iter != NULL); - nih_assert (iter_name != NULL); -@@ -448,7 +449,7 @@ - nih_list_add (locals, &array_iter_var->entry); - - if (dbus_type_is_fixed (element_type)) { -- if (! nih_strcat_sprintf (&code, parent, -+ if (! nih_strcat_sprintf (&loop_block, parent, - "for (size_t %s = 0; %s < %s; %s++) {\n", - loop_name, loop_name, len_name, loop_name)) { - nih_free (code); -@@ -456,6 +457,12 @@ - } - } else { - if (! nih_strcat_sprintf (&code, parent, -+ "if (%s) {\n", -+ name)) { -+ nih_free (code); -+ return NULL; -+ } -+ if (! nih_strcat_sprintf (&loop_block, parent, - "for (size_t %s = 0; %s[%s]; %s++) {\n", - loop_name, name, loop_name, loop_name)) { - nih_free (code); -@@ -576,7 +583,7 @@ - } - - -- if (! nih_strcat_sprintf (&code, parent, -+ if (! nih_strcat_sprintf (&loop_block, parent, - "%s" - "\n" - "%s" -@@ -590,9 +597,34 @@ - } - - /* Close the container again */ -+ if (! nih_strcat_sprintf (&loop_block, parent, -+ "}\n")) { -+ nih_free (code); -+ return NULL; -+ } -+ -+ if (dbus_type_is_fixed (element_type)) { -+ if (! nih_strcat_sprintf (&code, parent, -+ "%s\n", loop_block)) { -+ nih_free (code); -+ return NULL; -+ } -+ } -+ else { -+ if (! indent (&loop_block, NULL, 1)) { -+ nih_free (code); -+ return NULL; -+ } -+ -+ if (! nih_strcat_sprintf (&code, parent, -+ "%s" -+ "}\n\n", loop_block)) { -+ nih_free (code); -+ return NULL; -+ } -+ } -+ - if (! nih_strcat_sprintf (&code, parent, -- "}\n" -- "\n" - "if (! dbus_message_iter_close_container (&%s, &%s)) {\n" - "%s" - "}\n", ---- libnih-1.0.3.orig/nih-dbus-tool/demarshal.c -+++ libnih-1.0.3/nih-dbus-tool/demarshal.c -@@ -51,7 +51,7 @@ - const char *prefix, const char *interface_symbol, - const char *member_symbol, const char *symbol, - NihList *structs) -- __attribute__ ((warn_unused_result, malloc)); -+ __attribute__ ((warn_unused_result)); - static char *demarshal_array (const void *parent, - DBusSignatureIter *iter, - const char *parent_name, -@@ -62,7 +62,7 @@ - const char *prefix, const char *interface_symbol, - const char *member_symbol, const char *symbol, - NihList *structs) -- __attribute__ ((warn_unused_result, malloc)); -+ __attribute__ ((warn_unused_result)); - static char *demarshal_struct (const void *parent, - DBusSignatureIter *iter, - const char *parent_name, -@@ -73,7 +73,7 @@ - const char *prefix, const char *interface_symbol, - const char *member_symbol, const char *symbol, - NihList *structs) -- __attribute__ ((warn_unused_result, malloc)); -+ __attribute__ ((warn_unused_result)); - - - /** ---- libnih-1.0.3.orig/nih-dbus-tool/interface.h -+++ libnih-1.0.3/nih-dbus-tool/interface.h -@@ -61,7 +61,7 @@ - - Interface *interface_new (const void *parent, - const char *name) -- __attribute__ ((warn_unused_result, malloc)); -+ __attribute__ ((warn_unused_result)); - - int interface_start_tag (XML_Parser xmlp, - const char *tag, -@@ -81,26 +81,26 @@ - Interface *interface, - int with_handlers, - NihList *prototypes) -- __attribute__ ((warn_unused_result, malloc)); -+ __attribute__ ((warn_unused_result)); - char * interface_signals_array (const void *parent, - const char *prefix, - Interface *interface, - int with_filters, - NihList *prototypes) -- __attribute__ ((warn_unused_result, malloc)); -+ __attribute__ ((warn_unused_result)); - char * interface_properties_array (const void *parent, - const char *prefix, - Interface *interface, - int with_handlers, - NihList *prototypes) -- __attribute__ ((warn_unused_result, malloc)); -+ __attribute__ ((warn_unused_result)); - - char * interface_struct (const void *parent, - const char *prefix, - Interface *interface, - int object, - NihList *prototypes) -- __attribute__ ((warn_unused_result, malloc)); -+ __attribute__ ((warn_unused_result)); - - - char * interface_proxy_get_all_function (const void *parent, -@@ -108,7 +108,7 @@ - Interface *interface, - NihList *prototypes, - NihList *structs) -- __attribute__ ((warn_unused_result, malloc)); -+ __attribute__ ((warn_unused_result)); - - char * interface_proxy_get_all_notify_function (const void *parent, - const char *prefix, -@@ -116,14 +116,14 @@ - NihList *prototypes, - NihList *typedefs, - NihList *structs) -- __attribute__ ((warn_unused_result, malloc)); -+ __attribute__ ((warn_unused_result)); - - char * interface_proxy_get_all_sync_function (const void *parent, - const char *prefix, - Interface *interface, - NihList *prototypes, - NihList *structs) -- __attribute__ ((warn_unused_result, malloc)); -+ __attribute__ ((warn_unused_result)); - - NIH_END_EXTERN - ---- libnih-1.0.3.orig/nih-dbus-tool/method.h -+++ libnih-1.0.3/nih-dbus-tool/method.h -@@ -62,7 +62,7 @@ - int method_name_valid (const char *name); - - Method * method_new (const void *parent, const char *name) -- __attribute__ ((warn_unused_result, malloc)); -+ __attribute__ ((warn_unused_result)); - - int method_start_tag (XML_Parser xmlp, const char *tag, - char * const *attr) -@@ -82,33 +82,33 @@ - Interface *interface, Method *method, - NihList *prototypes, NihList *handlers, - NihList *structs) -- __attribute__ ((warn_unused_result, malloc)); -+ __attribute__ ((warn_unused_result)); - - char * method_reply_function (const void *parent, const char *prefix, - Interface *interface, Method *method, - NihList *prototypes, NihList *structs) -- __attribute__ ((warn_unused_result, malloc)); -+ __attribute__ ((warn_unused_result)); - - char * method_proxy_function (const void *parent, const char *prefix, - Interface *interface, Method *method, - NihList *prototypes, NihList *structs) -- __attribute__ ((warn_unused_result, malloc)); -+ __attribute__ ((warn_unused_result)); - - char * method_proxy_notify_function (const void *parent, const char *prefix, - Interface *interface, Method *method, - NihList *prototypes, NihList *typedefs, - NihList *structs) -- __attribute__ ((warn_unused_result, malloc)); -+ __attribute__ ((warn_unused_result)); - - char * method_proxy_sync_function (const void *parent, const char *prefix, - Interface *interface, Method *method, - NihList *prototypes, NihList *structs) -- __attribute__ ((warn_unused_result, malloc)); -+ __attribute__ ((warn_unused_result)); - - char * method_args_array (const void *parent, const char *prefix, - Interface *interface, Method *method, - NihList *prototypes) -- __attribute__ ((warn_unused_result, malloc)); -+ __attribute__ ((warn_unused_result)); - - NIH_END_EXTERN - ---- libnih-1.0.3.orig/nih-dbus-tool/node.h -+++ libnih-1.0.3/nih-dbus-tool/node.h -@@ -47,7 +47,7 @@ - int node_path_valid (const char *name); - - Node * node_new (const void *parent, const char *path) -- __attribute__ ((warn_unused_result, malloc)); -+ __attribute__ ((warn_unused_result)); - - int node_start_tag (XML_Parser xmlp, const char *tag, - char * const *attr) -@@ -59,18 +59,18 @@ - - char * node_interfaces_array (const void *parent, const char *prefix, - Node *node, int object, NihList *prototypes) -- __attribute__ ((warn_unused_result, malloc)); -+ __attribute__ ((warn_unused_result)); - - char * node_object_functions (const void *parent, const char *prefix, - Node *node, - NihList *prototypes, NihList *handlers, - NihList *structs, NihList *externs) -- __attribute__ ((warn_unused_result, malloc)); -+ __attribute__ ((warn_unused_result)); - char * node_proxy_functions (const void *parent, const char *prefix, - Node *node, - NihList *prototypes, NihList *structs, - NihList *typedefs, NihList *externs) -- __attribute__ ((warn_unused_result, malloc)); -+ __attribute__ ((warn_unused_result)); - - NIH_END_EXTERN - ---- libnih-1.0.3.orig/nih-dbus-tool/marshal.h -+++ libnih-1.0.3/nih-dbus-tool/marshal.h -@@ -35,7 +35,7 @@ - const char *prefix, const char *interface_symbol, - const char *member_symbol, const char *symbol, - NihList *structs) -- __attribute__ ((warn_unused_result, malloc)); -+ __attribute__ ((warn_unused_result)); - - NIH_END_EXTERN - ---- libnih-1.0.3.orig/nih-dbus-tool/type.c -+++ libnih-1.0.3/nih-dbus-tool/type.c -@@ -1101,7 +1101,7 @@ - nih_assert (block != NULL); - nih_assert (var != NULL); - -- if (! strchr (var->type, '*')) -+ if (! strchr (var->type, '*') || ! strcmp (var->type, "char * const *")) - return *block; - - if (next && (! strcmp (next->type, "size_t"))) { ---- libnih-1.0.3.orig/nih-dbus-tool/property.h -+++ libnih-1.0.3/nih-dbus-tool/property.h -@@ -65,7 +65,7 @@ - const char *name, - const char *type, - NihDBusAccess access) -- __attribute__ ((warn_unused_result, malloc)); -+ __attribute__ ((warn_unused_result)); - - int property_start_tag (XML_Parser xmlp, const char *tag, - char * const *attr) -@@ -88,7 +88,7 @@ - NihList *prototypes, - NihList *handlers, - NihList *structs) -- __attribute__ ((warn_unused_result, malloc)); -+ __attribute__ ((warn_unused_result)); - char * property_object_set_function (const void *parent, - const char *prefix, - Interface *interface, -@@ -96,7 +96,7 @@ - NihList *prototypes, - NihList *handlers, - NihList *structs) -- __attribute__ ((warn_unused_result, malloc)); -+ __attribute__ ((warn_unused_result)); - - char * property_proxy_get_function (const void *parent, - const char *prefix, -@@ -104,7 +104,7 @@ - Property *property, - NihList *prototypes, - NihList *structs) -- __attribute__ ((warn_unused_result, malloc)); -+ __attribute__ ((warn_unused_result)); - char * property_proxy_get_notify_function (const void *parent, - const char *prefix, - Interface *interface, -@@ -112,7 +112,7 @@ - NihList *prototypes, - NihList *typedefs, - NihList *structs) -- __attribute__ ((warn_unused_result, malloc)); -+ __attribute__ ((warn_unused_result)); - - char * property_proxy_set_function (const void *parent, - const char *prefix, -@@ -120,7 +120,7 @@ - Property *property, - NihList *prototypes, - NihList *structs) -- __attribute__ ((warn_unused_result, malloc)); -+ __attribute__ ((warn_unused_result)); - char * property_proxy_set_notify_function (const void *parent, - const char *prefix, - Interface *interface, -@@ -128,7 +128,7 @@ - NihList *prototypes, - NihList *typedefs, - NihList *structs) -- __attribute__ ((warn_unused_result, malloc)); -+ __attribute__ ((warn_unused_result)); - - char * property_proxy_get_sync_function (const void *parent, - const char *prefix, -@@ -136,14 +136,14 @@ - Property *property, - NihList *prototypes, - NihList *structs) -- __attribute__ ((warn_unused_result, malloc)); -+ __attribute__ ((warn_unused_result)); - char * property_proxy_set_sync_function (const void *parent, - const char *prefix, - Interface *interface, - Property *property, - NihList *prototypes, - NihList *structs) -- __attribute__ ((warn_unused_result, malloc)); -+ __attribute__ ((warn_unused_result)); - - NIH_END_EXTERN - ---- libnih-1.0.3.orig/nih-dbus-tool/tests/test_main.c -+++ libnih-1.0.3/nih-dbus-tool/tests/test_main.c -@@ -100,10 +100,10 @@ - - extern char *source_file_path (const void *parent, const char *output_path, - const char *filename) -- __attribute__ ((warn_unused_result, malloc)); -+ __attribute__ ((warn_unused_result)); - extern char *header_file_path (const void *parent, const char *output_path, - const char *filename) -- __attribute__ ((warn_unused_result, malloc)); -+ __attribute__ ((warn_unused_result)); - - void - test_source_file_path (void) ---- libnih-1.0.3.orig/nih-dbus-tool/tests/test_com.netsplit.Nih.Test_object.c -+++ libnih-1.0.3/nih-dbus-tool/tests/test_com.netsplit.Nih.Test_object.c -@@ -12524,6 +12524,7 @@ - dbus_message_iter_init (reply, &iter); - - dbus_message_iter_get_basic (&iter, &str_value); -+ TEST_NE (str_value[0], '\0'); - TEST_TRUE (strchr ("0123456789", str_value[0])); - - dbus_message_unref (reply); ---- libnih-1.0.3.orig/nih-dbus-tool/tests/test_marshal.c -+++ libnih-1.0.3/nih-dbus-tool/tests/test_marshal.c -@@ -1479,39 +1479,41 @@ - "\treturn -1;\n" - "}\n" - "\n" -- "for (size_t value_i = 0; value[value_i]; value_i++) {\n" -- "\tDBusMessageIter value_element_iter;\n" -- "\tconst int16_t * value_element;\n" -- "\tsize_t value_element_len;\n" -+ "if (value) {\n" -+ "\tfor (size_t value_i = 0; value[value_i]; value_i++) {\n" -+ "\t\tDBusMessageIter value_element_iter;\n" -+ "\t\tconst int16_t * value_element;\n" -+ "\t\tsize_t value_element_len;\n" - "\n" -- "\tvalue_element = value[value_i];\n" -- "\tvalue_element_len = value_len[value_i];\n" -+ "\t\tvalue_element = value[value_i];\n" -+ "\t\tvalue_element_len = value_len[value_i];\n" - "\n" - -- "\t/* Marshal an array onto the message */\n" -- "\tif (! dbus_message_iter_open_container (&value_iter, DBUS_TYPE_ARRAY, \"n\", &value_element_iter)) {\n" -- "\t\tdbus_message_iter_abandon_container (&iter, &value_iter);\n" -- "\t\treturn -1;\n" -- "\t}\n" -+ "\t\t/* Marshal an array onto the message */\n" -+ "\t\tif (! dbus_message_iter_open_container (&value_iter, DBUS_TYPE_ARRAY, \"n\", &value_element_iter)) {\n" -+ "\t\t\tdbus_message_iter_abandon_container (&iter, &value_iter);\n" -+ "\t\t\treturn -1;\n" -+ "\t\t}\n" - "\n" -- "\tfor (size_t value_element_i = 0; value_element_i < value_element_len; value_element_i++) {\n" -- "\t\tint16_t value_element_element;\n" -+ "\t\tfor (size_t value_element_i = 0; value_element_i < value_element_len; value_element_i++) {\n" -+ "\t\t\tint16_t value_element_element;\n" - "\n" -- "\t\tvalue_element_element = value_element[value_element_i];\n" -+ "\t\t\tvalue_element_element = value_element[value_element_i];\n" - "\n" -- "\t\t/* Marshal a int16_t onto the message */\n" -- "\t\tif (! dbus_message_iter_append_basic (&value_element_iter, DBUS_TYPE_INT16, &value_element_element)) {\n" -- "\t\t\tdbus_message_iter_abandon_container (&value_iter, &value_element_iter);\n" -+ "\t\t\t/* Marshal a int16_t onto the message */\n" -+ "\t\t\tif (! dbus_message_iter_append_basic (&value_element_iter, DBUS_TYPE_INT16, &value_element_element)) {\n" -+ "\t\t\t\tdbus_message_iter_abandon_container (&value_iter, &value_element_iter);\n" -+ "\t\t\t\tdbus_message_iter_abandon_container (&iter, &value_iter);\n" -+ "\t\t\t\treturn -1;\n" -+ "\t\t\t}\n" -+ "\t\t}\n" -+ "\n" -+ "\t\tif (! dbus_message_iter_close_container (&value_iter, &value_element_iter)) {\n" - "\t\t\tdbus_message_iter_abandon_container (&iter, &value_iter);\n" - "\t\t\treturn -1;\n" - "\t\t}\n" -- "\t}\n" -- "\n" -- "\tif (! dbus_message_iter_close_container (&value_iter, &value_element_iter)) {\n" -- "\t\tdbus_message_iter_abandon_container (&iter, &value_iter);\n" -- "\t\treturn -1;\n" -- "\t}\n" - -+ "\t}\n" - "}\n" - "\n" - "if (! dbus_message_iter_close_container (&iter, &value_iter)) {\n" -@@ -1766,15 +1768,17 @@ - "\treturn -1;\n" - "}\n" - "\n" -- "for (size_t value_i = 0; value[value_i]; value_i++) {\n" -- "\tconst char *value_element;\n" -+ "if (value) {\n" -+ "\tfor (size_t value_i = 0; value[value_i]; value_i++) {\n" -+ "\t\tconst char *value_element;\n" - "\n" -- "\tvalue_element = value[value_i];\n" -+ "\t\tvalue_element = value[value_i];\n" - "\n" -- "\t/* Marshal a char * onto the message */\n" -- "\tif (! dbus_message_iter_append_basic (&value_iter, DBUS_TYPE_STRING, &value_element)) {\n" -- "\t\tdbus_message_iter_abandon_container (&iter, &value_iter);\n" -- "\t\treturn -1;\n" -+ "\t\t/* Marshal a char * onto the message */\n" -+ "\t\tif (! dbus_message_iter_append_basic (&value_iter, DBUS_TYPE_STRING, &value_element)) {\n" -+ "\t\t\tdbus_message_iter_abandon_container (&iter, &value_iter);\n" -+ "\t\t\treturn -1;\n" -+ "\t\t}\n" - "\t}\n" - "}\n" - "\n" -@@ -1933,35 +1937,39 @@ - "\treturn -1;\n" - "}\n" - "\n" -- "for (size_t value_i = 0; value[value_i]; value_i++) {\n" -- "\tDBusMessageIter value_element_iter;\n" -- "\tchar * const * value_element;\n" -+ "if (value) {\n" -+ "\tfor (size_t value_i = 0; value[value_i]; value_i++) {\n" -+ "\t\tDBusMessageIter value_element_iter;\n" -+ "\t\tchar * const * value_element;\n" - "\n" -- "\tvalue_element = value[value_i];\n" -+ "\t\tvalue_element = value[value_i];\n" - "\n" -- "\t/* Marshal an array onto the message */\n" -- "\tif (! dbus_message_iter_open_container (&value_iter, DBUS_TYPE_ARRAY, \"s\", &value_element_iter)) {\n" -- "\t\tdbus_message_iter_abandon_container (&iter, &value_iter);\n" -- "\t\treturn -1;\n" -- "\t}\n" -- "\n" -- "\tfor (size_t value_element_i = 0; value_element[value_element_i]; value_element_i++) {\n" -- "\t\tconst char *value_element_element;\n" -+ "\t\t/* Marshal an array onto the message */\n" -+ "\t\tif (! dbus_message_iter_open_container (&value_iter, DBUS_TYPE_ARRAY, \"s\", &value_element_iter)) {\n" -+ "\t\t\tdbus_message_iter_abandon_container (&iter, &value_iter);\n" -+ "\t\t\treturn -1;\n" -+ "\t\t}\n" - "\n" -- "\t\tvalue_element_element = value_element[value_element_i];\n" -+ "\t\tif (value_element) {\n" -+ "\t\t\tfor (size_t value_element_i = 0; value_element[value_element_i]; value_element_i++) {\n" -+ "\t\t\t\tconst char *value_element_element;\n" -+ "\n" -+ "\t\t\t\tvalue_element_element = value_element[value_element_i];\n" -+ "\n" -+ "\t\t\t\t/* Marshal a char * onto the message */\n" -+ "\t\t\t\tif (! dbus_message_iter_append_basic (&value_element_iter, DBUS_TYPE_STRING, &value_element_element)) {\n" -+ "\t\t\t\t\tdbus_message_iter_abandon_container (&value_iter, &value_element_iter);\n" -+ "\t\t\t\t\tdbus_message_iter_abandon_container (&iter, &value_iter);\n" -+ "\t\t\t\t\treturn -1;\n" -+ "\t\t\t\t}\n" -+ "\t\t\t}\n" -+ "\t\t}\n" - "\n" -- "\t\t/* Marshal a char * onto the message */\n" -- "\t\tif (! dbus_message_iter_append_basic (&value_element_iter, DBUS_TYPE_STRING, &value_element_element)) {\n" -- "\t\t\tdbus_message_iter_abandon_container (&value_iter, &value_element_iter);\n" -+ "\t\tif (! dbus_message_iter_close_container (&value_iter, &value_element_iter)) {\n" - "\t\t\tdbus_message_iter_abandon_container (&iter, &value_iter);\n" - "\t\t\treturn -1;\n" - "\t\t}\n" - "\t}\n" -- "\n" -- "\tif (! dbus_message_iter_close_container (&value_iter, &value_element_iter)) {\n" -- "\t\tdbus_message_iter_abandon_container (&iter, &value_iter);\n" -- "\t\treturn -1;\n" -- "\t}\n" - "}\n" - "\n" - "if (! dbus_message_iter_close_container (&iter, &value_iter)) {\n" -@@ -2194,16 +2202,18 @@ - "\treturn -1;\n" - "}\n" - "\n" -- "for (size_t value_item2_i = 0; value_item2[value_item2_i]; value_item2_i++) {\n" -- "\tconst char *value_item2_element;\n" -+ "if (value_item2) {\n" -+ "\tfor (size_t value_item2_i = 0; value_item2[value_item2_i]; value_item2_i++) {\n" -+ "\t\tconst char *value_item2_element;\n" - "\n" -- "\tvalue_item2_element = value_item2[value_item2_i];\n" -+ "\t\tvalue_item2_element = value_item2[value_item2_i];\n" - "\n" -- "\t/* Marshal a char * onto the message */\n" -- "\tif (! dbus_message_iter_append_basic (&value_item2_iter, DBUS_TYPE_STRING, &value_item2_element)) {\n" -- "\t\tdbus_message_iter_abandon_container (&value_iter, &value_item2_iter);\n" -- "\t\tdbus_message_iter_abandon_container (&iter, &value_iter);\n" -- "\t\treturn -1;\n" -+ "\t\t/* Marshal a char * onto the message */\n" -+ "\t\tif (! dbus_message_iter_append_basic (&value_item2_iter, DBUS_TYPE_STRING, &value_item2_element)) {\n" -+ "\t\t\tdbus_message_iter_abandon_container (&value_iter, &value_item2_iter);\n" -+ "\t\t\tdbus_message_iter_abandon_container (&iter, &value_iter);\n" -+ "\t\t\treturn -1;\n" -+ "\t\t}\n" - "\t}\n" - "}\n" - "\n" -@@ -2642,41 +2652,43 @@ - "\treturn -1;\n" - "}\n" - "\n" -- "for (size_t value_i = 0; value[value_i]; value_i++) {\n" -- "\tDBusMessageIter value_element_iter;\n" -- "\tconst char * value_element_item0;\n" -- "\tuint32_t value_element_item1;\n" -- "\tconst MyStructArrayValueElement *value_element;\n" -+ "if (value) {\n" -+ "\tfor (size_t value_i = 0; value[value_i]; value_i++) {\n" -+ "\t\tDBusMessageIter value_element_iter;\n" -+ "\t\tconst char * value_element_item0;\n" -+ "\t\tuint32_t value_element_item1;\n" -+ "\t\tconst MyStructArrayValueElement *value_element;\n" - "\n" -- "\tvalue_element = value[value_i];\n" -+ "\t\tvalue_element = value[value_i];\n" - "\n" -- "\t/* Marshal a structure onto the message */\n" -- "\tif (! dbus_message_iter_open_container (&value_iter, DBUS_TYPE_STRUCT, NULL, &value_element_iter)) {\n" -- "\t\tdbus_message_iter_abandon_container (&iter, &value_iter);\n" -- "\t\treturn -1;\n" -- "\t}\n" -+ "\t\t/* Marshal a structure onto the message */\n" -+ "\t\tif (! dbus_message_iter_open_container (&value_iter, DBUS_TYPE_STRUCT, NULL, &value_element_iter)) {\n" -+ "\t\t\tdbus_message_iter_abandon_container (&iter, &value_iter);\n" -+ "\t\t\treturn -1;\n" -+ "\t\t}\n" - "\n" -- "\tvalue_element_item0 = value_element->item0;\n" -+ "\t\tvalue_element_item0 = value_element->item0;\n" - "\n" -- "\t/* Marshal a char * onto the message */\n" -- "\tif (! dbus_message_iter_append_basic (&value_element_iter, DBUS_TYPE_STRING, &value_element_item0)) {\n" -- "\t\tdbus_message_iter_abandon_container (&value_iter, &value_element_iter);\n" -- "\t\tdbus_message_iter_abandon_container (&iter, &value_iter);\n" -- "\t\treturn -1;\n" -- "\t}\n" -+ "\t\t/* Marshal a char * onto the message */\n" -+ "\t\tif (! dbus_message_iter_append_basic (&value_element_iter, DBUS_TYPE_STRING, &value_element_item0)) {\n" -+ "\t\t\tdbus_message_iter_abandon_container (&value_iter, &value_element_iter);\n" -+ "\t\t\tdbus_message_iter_abandon_container (&iter, &value_iter);\n" -+ "\t\t\treturn -1;\n" -+ "\t\t}\n" - "\n" -- "\tvalue_element_item1 = value_element->item1;\n" -+ "\t\tvalue_element_item1 = value_element->item1;\n" - "\n" -- "\t/* Marshal a uint32_t onto the message */\n" -- "\tif (! dbus_message_iter_append_basic (&value_element_iter, DBUS_TYPE_UINT32, &value_element_item1)) {\n" -- "\t\tdbus_message_iter_abandon_container (&value_iter, &value_element_iter);\n" -- "\t\tdbus_message_iter_abandon_container (&iter, &value_iter);\n" -- "\t\treturn -1;\n" -- "\t}\n" -+ "\t\t/* Marshal a uint32_t onto the message */\n" -+ "\t\tif (! dbus_message_iter_append_basic (&value_element_iter, DBUS_TYPE_UINT32, &value_element_item1)) {\n" -+ "\t\t\tdbus_message_iter_abandon_container (&value_iter, &value_element_iter);\n" -+ "\t\t\tdbus_message_iter_abandon_container (&iter, &value_iter);\n" -+ "\t\t\treturn -1;\n" -+ "\t\t}\n" - "\n" -- "\tif (! dbus_message_iter_close_container (&value_iter, &value_element_iter)) {\n" -- "\t\tdbus_message_iter_abandon_container (&iter, &value_iter);\n" -- "\t\treturn -1;\n" -+ "\t\tif (! dbus_message_iter_close_container (&value_iter, &value_element_iter)) {\n" -+ "\t\t\tdbus_message_iter_abandon_container (&iter, &value_iter);\n" -+ "\t\t\treturn -1;\n" -+ "\t\t}\n" - "\t}\n" - "}\n" - "\n" -@@ -2912,41 +2924,43 @@ - "\treturn -1;\n" - "}\n" - "\n" -- "for (size_t value_i = 0; value[value_i]; value_i++) {\n" -- "\tDBusMessageIter value_element_iter;\n" -- "\tconst char * value_element_item0;\n" -- "\tuint32_t value_element_item1;\n" -- "\tconst MyDictEntryArrayValueElement *value_element;\n" -+ "if (value) {\n" -+ "\tfor (size_t value_i = 0; value[value_i]; value_i++) {\n" -+ "\t\tDBusMessageIter value_element_iter;\n" -+ "\t\tconst char * value_element_item0;\n" -+ "\t\tuint32_t value_element_item1;\n" -+ "\t\tconst MyDictEntryArrayValueElement *value_element;\n" - "\n" -- "\tvalue_element = value[value_i];\n" -+ "\t\tvalue_element = value[value_i];\n" - "\n" -- "\t/* Marshal a structure onto the message */\n" -- "\tif (! dbus_message_iter_open_container (&value_iter, DBUS_TYPE_DICT_ENTRY, NULL, &value_element_iter)) {\n" -- "\t\tdbus_message_iter_abandon_container (&iter, &value_iter);\n" -- "\t\treturn -1;\n" -- "\t}\n" -+ "\t\t/* Marshal a structure onto the message */\n" -+ "\t\tif (! dbus_message_iter_open_container (&value_iter, DBUS_TYPE_DICT_ENTRY, NULL, &value_element_iter)) {\n" -+ "\t\t\tdbus_message_iter_abandon_container (&iter, &value_iter);\n" -+ "\t\t\treturn -1;\n" -+ "\t\t}\n" - "\n" -- "\tvalue_element_item0 = value_element->item0;\n" -+ "\t\tvalue_element_item0 = value_element->item0;\n" - "\n" -- "\t/* Marshal a char * onto the message */\n" -- "\tif (! dbus_message_iter_append_basic (&value_element_iter, DBUS_TYPE_STRING, &value_element_item0)) {\n" -- "\t\tdbus_message_iter_abandon_container (&value_iter, &value_element_iter);\n" -- "\t\tdbus_message_iter_abandon_container (&iter, &value_iter);\n" -- "\t\treturn -1;\n" -- "\t}\n" -+ "\t\t/* Marshal a char * onto the message */\n" -+ "\t\tif (! dbus_message_iter_append_basic (&value_element_iter, DBUS_TYPE_STRING, &value_element_item0)) {\n" -+ "\t\t\tdbus_message_iter_abandon_container (&value_iter, &value_element_iter);\n" -+ "\t\t\tdbus_message_iter_abandon_container (&iter, &value_iter);\n" -+ "\t\t\treturn -1;\n" -+ "\t\t}\n" - "\n" -- "\tvalue_element_item1 = value_element->item1;\n" -+ "\t\tvalue_element_item1 = value_element->item1;\n" - "\n" -- "\t/* Marshal a uint32_t onto the message */\n" -- "\tif (! dbus_message_iter_append_basic (&value_element_iter, DBUS_TYPE_UINT32, &value_element_item1)) {\n" -- "\t\tdbus_message_iter_abandon_container (&value_iter, &value_element_iter);\n" -- "\t\tdbus_message_iter_abandon_container (&iter, &value_iter);\n" -- "\t\treturn -1;\n" -- "\t}\n" -+ "\t\t/* Marshal a uint32_t onto the message */\n" -+ "\t\tif (! dbus_message_iter_append_basic (&value_element_iter, DBUS_TYPE_UINT32, &value_element_item1)) {\n" -+ "\t\t\tdbus_message_iter_abandon_container (&value_iter, &value_element_iter);\n" -+ "\t\t\tdbus_message_iter_abandon_container (&iter, &value_iter);\n" -+ "\t\t\treturn -1;\n" -+ "\t\t}\n" - "\n" -- "\tif (! dbus_message_iter_close_container (&value_iter, &value_element_iter)) {\n" -- "\t\tdbus_message_iter_abandon_container (&iter, &value_iter);\n" -- "\t\treturn -1;\n" -+ "\t\tif (! dbus_message_iter_close_container (&value_iter, &value_element_iter)) {\n" -+ "\t\t\tdbus_message_iter_abandon_container (&iter, &value_iter);\n" -+ "\t\t\treturn -1;\n" -+ "\t\t}\n" - "\t}\n" - "}\n" - "\n" ---- libnih-1.0.3.orig/nih-dbus-tool/tests/test_com.netsplit.Nih.Test_proxy.c -+++ libnih-1.0.3/nih-dbus-tool/tests/test_com.netsplit.Nih.Test_proxy.c -@@ -27359,6 +27359,7 @@ - TEST_TRUE (unix_fd_to_str_replied); - - TEST_EQ_P (last_data, parent); -+ TEST_NE (last_str_value[0], '\0'); - TEST_TRUE (strchr ("0123456789", last_str_value[0])); - TEST_ALLOC_PARENT (last_str_value, parent); - -@@ -27673,6 +27674,7 @@ - - TEST_EQ (ret, 0); - -+ TEST_NE (str_value[0], '\0'); - TEST_TRUE (strchr ("0123456789", str_value[0])); - TEST_ALLOC_PARENT (str_value, parent); - ---- libnih-1.0.3.orig/nih-dbus-tool/tests/test_property.c -+++ libnih-1.0.3/nih-dbus-tool/tests/test_property.c -@@ -8733,7 +8733,7 @@ - TypeVar * var; - NihListEntry * attrib; - NihDBusProxy * proxy = NULL; -- void * parent = NULL; -+ void * parent __attribute__((unused)) = NULL; - pid_t pid = -1; - int status; - DBusMessage * method_call; ---- libnih-1.0.3.orig/nih-dbus-tool/tests/expected/test_method_object_function_standard.c -+++ libnih-1.0.3/nih-dbus-tool/tests/expected/test_method_object_function_standard.c -@@ -136,17 +136,19 @@ - goto enomem; - } - -- for (size_t output_i = 0; output[output_i]; output_i++) { -- const char *output_element; -+ if (output) { -+ for (size_t output_i = 0; output[output_i]; output_i++) { -+ const char *output_element; - -- output_element = output[output_i]; -+ output_element = output[output_i]; - -- /* Marshal a char * onto the message */ -- if (! dbus_message_iter_append_basic (&output_iter, DBUS_TYPE_STRING, &output_element)) { -- dbus_message_iter_abandon_container (&iter, &output_iter); -- dbus_message_unref (reply); -- reply = NULL; -- goto enomem; -+ /* Marshal a char * onto the message */ -+ if (! dbus_message_iter_append_basic (&output_iter, DBUS_TYPE_STRING, &output_element)) { -+ dbus_message_iter_abandon_container (&iter, &output_iter); -+ dbus_message_unref (reply); -+ reply = NULL; -+ goto enomem; -+ } - } - } - ---- libnih-1.0.3.orig/nih-dbus-tool/tests/expected/test_method_reply_function_standard.c -+++ libnih-1.0.3/nih-dbus-tool/tests/expected/test_method_reply_function_standard.c -@@ -7,7 +7,6 @@ - DBusMessageIter output_iter; - - nih_assert (message != NULL); -- nih_assert (output != NULL); - - /* If the sender doesn't care about a reply, don't bother wasting - * effort constructing and sending one. -@@ -28,16 +27,18 @@ - return -1; - } - -- for (size_t output_i = 0; output[output_i]; output_i++) { -- const char *output_element; -- -- output_element = output[output_i]; -- -- /* Marshal a char * onto the message */ -- if (! dbus_message_iter_append_basic (&output_iter, DBUS_TYPE_STRING, &output_element)) { -- dbus_message_iter_abandon_container (&iter, &output_iter); -- dbus_message_unref (reply); -- return -1; -+ if (output) { -+ for (size_t output_i = 0; output[output_i]; output_i++) { -+ const char *output_element; -+ -+ output_element = output[output_i]; -+ -+ /* Marshal a char * onto the message */ -+ if (! dbus_message_iter_append_basic (&output_iter, DBUS_TYPE_STRING, &output_element)) { -+ dbus_message_iter_abandon_container (&iter, &output_iter); -+ dbus_message_unref (reply); -+ return -1; -+ } - } - } - ---- libnih-1.0.3.orig/nih-dbus-tool/tests/expected/test_method_reply_function_deprecated.c -+++ libnih-1.0.3/nih-dbus-tool/tests/expected/test_method_reply_function_deprecated.c -@@ -7,7 +7,6 @@ - DBusMessageIter output_iter; - - nih_assert (message != NULL); -- nih_assert (output != NULL); - - /* If the sender doesn't care about a reply, don't bother wasting - * effort constructing and sending one. -@@ -28,16 +27,18 @@ - return -1; - } - -- for (size_t output_i = 0; output[output_i]; output_i++) { -- const char *output_element; -- -- output_element = output[output_i]; -- -- /* Marshal a char * onto the message */ -- if (! dbus_message_iter_append_basic (&output_iter, DBUS_TYPE_STRING, &output_element)) { -- dbus_message_iter_abandon_container (&iter, &output_iter); -- dbus_message_unref (reply); -- return -1; -+ if (output) { -+ for (size_t output_i = 0; output[output_i]; output_i++) { -+ const char *output_element; -+ -+ output_element = output[output_i]; -+ -+ /* Marshal a char * onto the message */ -+ if (! dbus_message_iter_append_basic (&output_iter, DBUS_TYPE_STRING, &output_element)) { -+ dbus_message_iter_abandon_container (&iter, &output_iter); -+ dbus_message_unref (reply); -+ return -1; -+ } - } - } - ---- libnih-1.0.3.orig/nih-dbus-tool/tests/expected/test_method_object_function_no_input.c -+++ libnih-1.0.3/nih-dbus-tool/tests/expected/test_method_object_function_no_input.c -@@ -88,17 +88,19 @@ - goto enomem; - } - -- for (size_t output_i = 0; output[output_i]; output_i++) { -- const char *output_element; -+ if (output) { -+ for (size_t output_i = 0; output[output_i]; output_i++) { -+ const char *output_element; - -- output_element = output[output_i]; -+ output_element = output[output_i]; - -- /* Marshal a char * onto the message */ -- if (! dbus_message_iter_append_basic (&output_iter, DBUS_TYPE_STRING, &output_element)) { -- dbus_message_iter_abandon_container (&iter, &output_iter); -- dbus_message_unref (reply); -- reply = NULL; -- goto enomem; -+ /* Marshal a char * onto the message */ -+ if (! dbus_message_iter_append_basic (&output_iter, DBUS_TYPE_STRING, &output_element)) { -+ dbus_message_iter_abandon_container (&iter, &output_iter); -+ dbus_message_unref (reply); -+ reply = NULL; -+ goto enomem; -+ } - } - } - diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/libnih/libnih_1.0.3.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/libnih/libnih_1.0.3.bb deleted file mode 100644 index fcb6bebd..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/libnih/libnih_1.0.3.bb +++ /dev/null @@ -1,48 +0,0 @@ -# Copyright (c) 2013 LG Electronics, Inc. - -SUMMARY = "libnih library" -HOMEPAGE = "https://launchpad.net/libnih" -DESCRIPTION = "libnih is a small library for C application development \ - containing functions that, despite its name, are not implemented \ - elsewhere in the standard library set. \ - \ - libnih is roughly equivalent to other C libraries such as glib, \ - except that its focus is on a small size and intended for \ - applications that sit very low in the software stack, especially \ - outside of /usr. \ - \ - It expressly does not reimplement functions that already exist in \ - libraries ordinarily shipped in /lib such libc6, and does not do \ - foolish things like invent arbitrary typedefs for perfectly good C types." - -SECTION = "libs" - -LICENSE = "GPL-2.0" -LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe" - -DEPENDS = "dbus libnih-native" -DEPENDS_class-native = "dbus-native" - -SRC_URI = "https://launchpad.net/${BPN}/1.0/${PV}/+download/${BP}.tar.gz \ - file://libnih_1.0.3-4ubuntu16.patch \ - file://0001-signal.c-SIGCLD-and-SIGCHILD-are-same-on-sytem-V-sys.patch \ - " - -SRC_URI[md5sum] = "db7990ce55e01daffe19006524a1ccb0" -SRC_URI[sha256sum] = "897572df7565c0a90a81532671e23c63f99b4efde2eecbbf11e7857fbc61f405" - -inherit autotools -inherit gettext - -do_configure_append () { - sed -i -e 's,lib/pkgconfig,${baselib}/pkgconfig,g' ${S}/nih/Makefile.in ${S}/nih-dbus/Makefile.in -} - -FILES_${PN}-dev += "${libdir}/pkgconfig/* \ - ${includedir}/* \ - ${libdir}/*.so \ - ${datadir}/* \ - " - -# target libnih requires native nih-dbus-tool -BBCLASSEXTEND = "native" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/libp11/libp11_0.4.10.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/libp11/libp11_0.4.10.bb index b40223e8..655db490 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/libp11/libp11_0.4.10.bb +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/libp11/libp11_0.4.10.bb @@ -24,3 +24,5 @@ do_install_append () { FILES_${PN} += "${libdir}/engines*/pkcs11.so" FILES_${PN}-dev += "${libdir}/engines*/libpkcs11${SOLIBSDEV}" + +BBCLASSEXTEND = "native" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/librsync/librsync_2.2.1.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/librsync/librsync_2.2.1.bb new file mode 100644 index 00000000..c2f28fed --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/librsync/librsync_2.2.1.bb @@ -0,0 +1,18 @@ +SUMMARY = "Remote delta-compression library." +AUTHOR = "Martin Pool, Andrew Tridgell, Donovan Baarda, Adam Schubert" + +LICENSE = "LGPLv2.1+" +LIC_FILES_CHKSUM = "file://COPYING;md5=d8045f3b8f929c1cb29a1e3fd737b499" + +SRC_URI = "git://github.com/librsync/librsync.git" +SRCREV = "5917692418657dc78c9cbde3a8db4c85f25b9c8d" +S = "${WORKDIR}/git" + +DEPENDS = "popt" + +inherit cmake + +PACKAGES =+ "rdiff" +FILES_rdiff = "${bindir}/rdiff" + +BBCLASSEXTEND = "native nativesdk" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/libsmi/libsmi_0.5.0.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/libsmi/libsmi_0.5.0.bb index b537ce67..98cc63eb 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/libsmi/libsmi_0.5.0.bb +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/libsmi/libsmi_0.5.0.bb @@ -1,7 +1,7 @@ SUMMARY = "A Library to Access SMI MIB Information" HOMEPAGE = "https://www.ibr.cs.tu-bs.de/projects/libsmi" -LICENSE = "BSD" +LICENSE = "BSD-3-Clause & tcl" LIC_FILES_CHKSUM = "file://COPYING;md5=3ad3076f9332343a21636cfd351f05b7" SRC_URI = "https://www.ibr.cs.tu-bs.de/projects/${BPN}/download/${BP}.tar.gz \ diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/libsoc/libsoc_0.8.2.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/libsoc/libsoc_0.8.2.bb index 01708df3..8b773aef 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/libsoc/libsoc_0.8.2.bb +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/libsoc/libsoc_0.8.2.bb @@ -7,7 +7,7 @@ HOMEPAGE = "https://github.com/jackmitch/libsoc" LICENSE = "LGPLv2.1" LIC_FILES_CHKSUM = "file://LICENCE;md5=e0bfebea12a718922225ba987b2126a5" -inherit autotools pkgconfig python-dir +inherit autotools pkgconfig python3-dir SRCREV = "fd1ad6e7823fa76d8db0d3c5884faffa8ffddafb" SRC_URI = "git://github.com/jackmitch/libsoc.git" @@ -21,7 +21,7 @@ PACKAGECONFIG ?= "" PACKAGECONFIG[disabledebug] = "--disable-debug,," PACKAGECONFIG[allboardconfigs] = "--with-board-configs,," PACKAGECONFIG[enableboardconfig] = "--enable-board=${BOARD},," -PACKAGECONFIG[python] = "--enable-python=${PYTHON_PN},,${PYTHON_PN}" +PACKAGECONFIG[python] = "--enable-python=${STAGING_BINDIR_NATIVE}/${PYTHON_PN}-native/${PYTHON_PN},,${PYTHON_PN} ${PYTHON_PN}-native" PACKAGES =+ "${@bb.utils.contains('PACKAGECONFIG', 'python', \ '${PYTHON_PN}-libsoc-staticdev ${PYTHON_PN}-libsoc', '', d)}" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/libssh2/files/CVE-2019-17498.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/libssh2/files/CVE-2019-17498.patch new file mode 100644 index 00000000..00108007 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/libssh2/files/CVE-2019-17498.patch @@ -0,0 +1,131 @@ +From dedcbd106f8e52d5586b0205bc7677e4c9868f9c Mon Sep 17 00:00:00 2001 +From: Will Cosgrove +Date: Fri, 30 Aug 2019 09:57:38 -0700 +Subject: [PATCH] packet.c: improve message parsing (#402) + +* packet.c: improve parsing of packets + +file: packet.c + +notes: +Use _libssh2_get_string API in SSH_MSG_DEBUG/SSH_MSG_DISCONNECT. Additional uint32 bounds check in SSH_MSG_GLOBAL_REQUEST. + +Upstream-Status: Backport +CVE: CVE-2019-17498 +Signed-off-by: Li Zhou +--- + src/packet.c | 68 ++++++++++++++++++++++------------------------------ + 1 file changed, 29 insertions(+), 39 deletions(-) + +diff --git a/src/packet.c b/src/packet.c +index 38ab629..2e01bfc 100644 +--- a/src/packet.c ++++ b/src/packet.c +@@ -419,8 +419,8 @@ _libssh2_packet_add(LIBSSH2_SESSION * session, unsigned char *data, + size_t datalen, int macstate) + { + int rc = 0; +- char *message = NULL; +- char *language = NULL; ++ unsigned char *message = NULL; ++ unsigned char *language = NULL; + size_t message_len = 0; + size_t language_len = 0; + LIBSSH2_CHANNEL *channelp = NULL; +@@ -472,33 +472,23 @@ _libssh2_packet_add(LIBSSH2_SESSION * session, unsigned char *data, + + case SSH_MSG_DISCONNECT: + if(datalen >= 5) { +- size_t reason = _libssh2_ntohu32(data + 1); ++ uint32_t reason = 0; ++ struct string_buf buf; ++ buf.data = (unsigned char *)data; ++ buf.dataptr = buf.data; ++ buf.len = datalen; ++ buf.dataptr++; /* advance past type */ + +- if(datalen >= 9) { +- message_len = _libssh2_ntohu32(data + 5); ++ _libssh2_get_u32(&buf, &reason); ++ _libssh2_get_string(&buf, &message, &message_len); ++ _libssh2_get_string(&buf, &language, &language_len); + +- if(message_len < datalen-13) { +- /* 9 = packet_type(1) + reason(4) + message_len(4) */ +- message = (char *) data + 9; +- +- language_len = +- _libssh2_ntohu32(data + 9 + message_len); +- language = (char *) data + 9 + message_len + 4; +- +- if(language_len > (datalen-13-message_len)) { +- /* bad input, clear info */ +- language = message = NULL; +- language_len = message_len = 0; +- } +- } +- else +- /* bad size, clear it */ +- message_len = 0; +- } + if(session->ssh_msg_disconnect) { +- LIBSSH2_DISCONNECT(session, reason, message, +- message_len, language, language_len); ++ LIBSSH2_DISCONNECT(session, reason, (const char *)message, ++ message_len, (const char *)language, ++ language_len); + } ++ + _libssh2_debug(session, LIBSSH2_TRACE_TRANS, + "Disconnect(%d): %s(%s)", reason, + message, language); +@@ -539,24 +529,24 @@ _libssh2_packet_add(LIBSSH2_SESSION * session, unsigned char *data, + int always_display = data[1]; + + if(datalen >= 6) { +- message_len = _libssh2_ntohu32(data + 2); +- +- if(message_len <= (datalen - 10)) { +- /* 6 = packet_type(1) + display(1) + message_len(4) */ +- message = (char *) data + 6; +- language_len = _libssh2_ntohu32(data + 6 + +- message_len); +- +- if(language_len <= (datalen - 10 - message_len)) +- language = (char *) data + 10 + message_len; +- } ++ struct string_buf buf; ++ buf.data = (unsigned char *)data; ++ buf.dataptr = buf.data; ++ buf.len = datalen; ++ buf.dataptr += 2; /* advance past type & always display */ ++ ++ _libssh2_get_string(&buf, &message, &message_len); ++ _libssh2_get_string(&buf, &language, &language_len); + } + + if(session->ssh_msg_debug) { +- LIBSSH2_DEBUG(session, always_display, message, +- message_len, language, language_len); ++ LIBSSH2_DEBUG(session, always_display, ++ (const char *)message, ++ message_len, (const char *)language, ++ language_len); + } + } ++ + /* + * _libssh2_debug will actually truncate this for us so + * that it's not an inordinate about of data +@@ -579,7 +569,7 @@ _libssh2_packet_add(LIBSSH2_SESSION * session, unsigned char *data, + uint32_t len = 0; + unsigned char want_reply = 0; + len = _libssh2_ntohu32(data + 1); +- if(datalen >= (6 + len)) { ++ if((len <= (UINT_MAX - 6)) && (datalen >= (6 + len))) { + want_reply = data[5 + len]; + _libssh2_debug(session, + LIBSSH2_TRACE_CONN, +-- +2.17.1 + diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/libssh2/libssh2_1.8.2.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/libssh2/libssh2_1.8.2.bb deleted file mode 100644 index fe853cde..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/libssh2/libssh2_1.8.2.bb +++ /dev/null @@ -1,27 +0,0 @@ -SUMMARY = "A client-side C library implementing the SSH2 protocol" -HOMEPAGE = "http://www.libssh2.org/" -SECTION = "libs" - -DEPENDS = "zlib" - -LICENSE = "BSD" -LIC_FILES_CHKSUM = "file://COPYING;md5=c5cf34fc0acb44b082ef50ef5e4354ca" - -SRC_URI = "http://www.libssh2.org/download/${BP}.tar.gz" - -SRC_URI[md5sum] = "616efd99af3d9ef731a26bed6cee9593" -SRC_URI[sha256sum] = "088307d9f6b6c4b8c13f34602e8ff65d21c2dc4d55284dfe15d502c4ee190d67" - -inherit autotools pkgconfig - -EXTRA_OECONF += "\ - --with-libz \ - --with-libz-prefix=${STAGING_LIBDIR} \ - " - -# only one of openssl and gcrypt could be set -PACKAGECONFIG ??= "openssl" -PACKAGECONFIG[openssl] = "--with-openssl --with-libssl-prefix=${STAGING_LIBDIR},--without-openssl,openssl" -PACKAGECONFIG[gcrypt] = "--with-libgcrypt --with-libgcrypt-prefix=${STAGING_EXECPREFIXDIR},--without-libgcrypt,libgcrypt" - -BBCLASSEXTEND = "native" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/libssh2/libssh2_1.9.0.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/libssh2/libssh2_1.9.0.bb new file mode 100644 index 00000000..c1f337a4 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/libssh2/libssh2_1.9.0.bb @@ -0,0 +1,28 @@ +SUMMARY = "A client-side C library implementing the SSH2 protocol" +HOMEPAGE = "http://www.libssh2.org/" +SECTION = "libs" + +DEPENDS = "zlib" + +LICENSE = "BSD-3-Clause" +LIC_FILES_CHKSUM = "file://COPYING;md5=c5cf34fc0acb44b082ef50ef5e4354ca" + +SRC_URI = "http://www.libssh2.org/download/${BP}.tar.gz \ + file://CVE-2019-17498.patch \ +" +SRC_URI[md5sum] = "1beefafe8963982adc84b408b2959927" +SRC_URI[sha256sum] = "d5fb8bd563305fd1074dda90bd053fb2d29fc4bce048d182f96eaa466dfadafd" + +inherit autotools pkgconfig + +EXTRA_OECONF += "\ + --with-libz \ + --with-libz-prefix=${STAGING_LIBDIR} \ + " + +# only one of openssl and gcrypt could be set +PACKAGECONFIG ??= "openssl" +PACKAGECONFIG[openssl] = "--with-crypto=openssl --with-libssl-prefix=${STAGING_LIBDIR}, , openssl" +PACKAGECONFIG[gcrypt] = "--with-crypto=libgcrypt --with-libgcrypt-prefix=${STAGING_EXECPREFIXDIR}, , libgcrypt" + +BBCLASSEXTEND = "native nativesdk" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/libtar/libtar_1.2.20.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/libtar/libtar_1.2.20.bb index 60710f41..f93d9c09 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/libtar/libtar_1.2.20.bb +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/libtar/libtar_1.2.20.bb @@ -19,3 +19,5 @@ inherit autotools-brokensep PACKAGECONFIG ??= "zlib" PACKAGECONFIG[zlib] = "--with-zlib,--without-zlib,zlib" + +BBCLASSEXTEND += "native" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/libteam/libteam_1.28.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/libteam/libteam_1.28.bb deleted file mode 100644 index b80bb4ef..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/libteam/libteam_1.28.bb +++ /dev/null @@ -1,39 +0,0 @@ -SUMMARY = "Library for controlling team network device" -HOMEPAGE = "http://www.libteam.org/" -SECTION = "libs/network" - -LICENSE = "LGPLv2.1" -LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c" - -DEPENDS = "libnl libdaemon jansson" - -SRC_URI = "git://github.com/jpirko/libteam \ - file://0001-include-sys-select.h-for-fd_set-definition.patch \ - file://0002-teamd-Re-adjust-include-header-order.patch \ - file://0001-team_basic_test.py-disable-RedHat-specific-test.patch \ - file://run-ptest \ - " -SRCREV = "903950c7fcf28c32f4b62d9d1c07c0234e8378a2" - -S = "${WORKDIR}/git" - -inherit autotools pkgconfig ptest - -FILES_${PN} = "${libdir}/libteam${SOLIBS} \ -" - -PACKAGES += "${PN}-dctl ${PN}-utils" -FILES_${PN}-dctl = "${libdir}/libteamdctl${SOLIBS} \ -" -FILES_${PN}-utils = "${bindir}/bond2team \ - ${bindir}/teamd \ - ${bindir}/teamdctl \ - ${bindir}/teamnl \ -" - -RDEPENDS_${PN}-utils = "bash" -RDEPENDS_${PN}-ptest = "python" - -do_install_ptest() { - install ${S}/scripts/team_basic_test.py ${D}${PTEST_PATH}/ -} diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/libteam/libteam_1.29.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/libteam/libteam_1.29.bb new file mode 100644 index 00000000..821ca193 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/libteam/libteam_1.29.bb @@ -0,0 +1,39 @@ +SUMMARY = "Library for controlling team network device" +HOMEPAGE = "http://www.libteam.org/" +SECTION = "libs/network" + +LICENSE = "LGPLv2.1" +LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c" + +DEPENDS = "libnl libdaemon jansson" + +SRC_URI = "git://github.com/jpirko/libteam \ + file://0001-include-sys-select.h-for-fd_set-definition.patch \ + file://0002-teamd-Re-adjust-include-header-order.patch \ + file://0001-team_basic_test.py-disable-RedHat-specific-test.patch \ + file://run-ptest \ + " +SRCREV = "e897f02bf2403d4859a99e090e34ea768b4c0540" + +S = "${WORKDIR}/git" + +inherit autotools pkgconfig ptest + +FILES_${PN} = "${libdir}/libteam${SOLIBS} \ +" + +PACKAGES += "${PN}-dctl ${PN}-utils" +FILES_${PN}-dctl = "${libdir}/libteamdctl${SOLIBS} \ +" +FILES_${PN}-utils = "${bindir}/bond2team \ + ${bindir}/teamd \ + ${bindir}/teamdctl \ + ${bindir}/teamnl \ +" + +RDEPENDS_${PN}-utils = "bash" +RDEPENDS_${PN}-ptest = "python" + +do_install_ptest() { + install ${S}/scripts/team_basic_test.py ${D}${PTEST_PATH}/ +} diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/libtinyxml2/libtinyxml2_7.0.1.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/libtinyxml2/libtinyxml2_7.0.1.bb deleted file mode 100644 index e4bb3f32..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/libtinyxml2/libtinyxml2_7.0.1.bb +++ /dev/null @@ -1,15 +0,0 @@ -SUMMARY = "TinyXML-2 is a simple, small, efficient, C++ XML parser that can be easily integrating into other programs" -HOMEPAGE = "http://www.grinninglizard.com/tinyxml2/" -SECTION = "libs" -LICENSE = "Zlib" -LIC_FILES_CHKSUM = "file://tinyxml2.cpp;endline=22;md5=c19221dbd8a66ad3090462af4c5de5e7" - -SRC_URI = "git://github.com/leethomason/tinyxml2.git" - -SRCREV = "de6d164822076f9b1e26a7222808a25ac03867d8" - -S = "${WORKDIR}/git" - -inherit cmake - -BBCLASSEXTEND = "native" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/libtinyxml2/libtinyxml2_7.1.0.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/libtinyxml2/libtinyxml2_7.1.0.bb new file mode 100644 index 00000000..9e197a91 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/libtinyxml2/libtinyxml2_7.1.0.bb @@ -0,0 +1,15 @@ +SUMMARY = "TinyXML-2 is a simple, small, efficient, C++ XML parser that can be easily integrating into other programs" +HOMEPAGE = "http://www.grinninglizard.com/tinyxml2/" +SECTION = "libs" +LICENSE = "Zlib" +LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=135624eef03e1f1101b9ba9ac9b5fffd" + +SRC_URI = "git://github.com/leethomason/tinyxml2.git" + +SRCREV = "9c740e8d2341bd46dbe8e87053cdb4d931971967" + +S = "${WORKDIR}/git" + +inherit cmake + +BBCLASSEXTEND = "native" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/links/links-x11_2.16.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/links/links-x11_2.16.bb deleted file mode 100644 index f55a6fc7..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/links/links-x11_2.16.bb +++ /dev/null @@ -1,53 +0,0 @@ -# FIXME: the LIC_FILES_CHKSUM values have been updated by 'devtool upgrade'. -# The following is the difference between the old and the new license text. -# Please update the LICENSE value if needed, and summarize the changes in -# the commit message via 'License-Update:' tag. -# (example: 'License-Update: copyright years updated.') -# -# The changes: -# -# --- COPYING -# +++ COPYING -# @@ -293,7 +293,7 @@ -# -# Copyright (C) -# -# - on, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USAThis program is free software; you can redistribute it and/or modify -# + This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or -# (at your option) any later version. -# -# - -require links.inc - -DEPENDS += "virtual/libx11" -RCONFLICTS_${PN} = "links" - -inherit distro_features_check -# depends on virtual/libx11 -REQUIRED_DISTRO_FEATURES = "x11" - -SRC_URI += " file://links2.desktop \ - http://www.xora.org.uk/oe/links2.png;name=icon" - -S = "${WORKDIR}/links-${PV}" - -EXTRA_OECONF = "--enable-graphics \ - --with-ssl=${STAGING_LIBDIR}/.. --with-libjpeg \ - --without-libtiff --without-svgalib --without-fb \ - --without-directfb --without-pmshell --without-atheos \ - --with-x --without-gpm" - -do_install_append() { - install -d ${D}/${datadir}/applications - install -m 0644 ${WORKDIR}/links2.desktop ${D}/${datadir}/applications - install -d ${D}/${datadir}/pixmaps - install -m 0644 ${WORKDIR}/links2.png ${D}/${datadir}/pixmaps -} - -SRC_URI[md5sum] = "645fb0c0294e4c3268f94d307d394ffb" -SRC_URI[sha256sum] = "82f03038d5e050a65681b9888762af41c40fd42dec7e59a8d630bfb0ee134a3f" -SRC_URI[icon.md5sum] = "477e8787927c634614bac01b44355a33" -SRC_URI[icon.sha256sum] = "eddcd8b8c8698aa621d1a453943892d77b72ed492e0d14e0dbac5c6a57e52f47" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/links/links-x11_2.20.2.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/links/links-x11_2.20.2.bb new file mode 100644 index 00000000..645fe3b2 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/links/links-x11_2.20.2.bb @@ -0,0 +1,53 @@ +# FIXME: the LIC_FILES_CHKSUM values have been updated by 'devtool upgrade'. +# The following is the difference between the old and the new license text. +# Please update the LICENSE value if needed, and summarize the changes in +# the commit message via 'License-Update:' tag. +# (example: 'License-Update: copyright years updated.') +# +# The changes: +# +# --- COPYING +# +++ COPYING +# @@ -293,7 +293,7 @@ +# +# Copyright (C) +# +# - on, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USAThis program is free software; you can redistribute it and/or modify +# + This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# + +require links.inc + +DEPENDS += "virtual/libx11" +RCONFLICTS_${PN} = "links" + +inherit features_check +# depends on virtual/libx11 +REQUIRED_DISTRO_FEATURES = "x11" + +SRC_URI += " file://links2.desktop \ + http://www.xora.org.uk/oe/links2.png;name=icon" + +S = "${WORKDIR}/links-${PV}" + +EXTRA_OECONF = "--enable-graphics \ + --with-ssl=${STAGING_LIBDIR}/.. --with-libjpeg \ + --without-libtiff --without-svgalib --without-fb \ + --without-directfb --without-pmshell --without-atheos \ + --with-x --without-gpm" + +do_install_append() { + install -d ${D}/${datadir}/applications + install -m 0644 ${WORKDIR}/links2.desktop ${D}/${datadir}/applications + install -d ${D}/${datadir}/pixmaps + install -m 0644 ${WORKDIR}/links2.png ${D}/${datadir}/pixmaps +} + +SRC_URI[md5sum] = "ee39e612249440d0497535d0dafc3c0e" +SRC_URI[sha256sum] = "4b4f07d0e6261118d1365a5a5bfa31e1eafdbd280cfae6f0e9eedfea51a2f424" +SRC_URI[icon.md5sum] = "477e8787927c634614bac01b44355a33" +SRC_URI[icon.sha256sum] = "eddcd8b8c8698aa621d1a453943892d77b72ed492e0d14e0dbac5c6a57e52f47" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/links/links_2.16.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/links/links_2.16.bb deleted file mode 100644 index 19ea7a67..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/links/links_2.16.bb +++ /dev/null @@ -1,15 +0,0 @@ -require links.inc - -DEPENDS += "gpm" -RCONFLICTS_${PN} = "links-x11" - -EXTRA_OECONF = "--enable-graphics \ - --with-ssl=${STAGING_LIBDIR}/.. --with-libjpeg \ - --without-libtiff --without-svgalib --with-fb \ - --without-directfb --without-pmshell --without-atheos \ - --without-x" - -SRC_URI[md5sum] = "645fb0c0294e4c3268f94d307d394ffb" -SRC_URI[sha256sum] = "82f03038d5e050a65681b9888762af41c40fd42dec7e59a8d630bfb0ee134a3f" -SRC_URI[icon.md5sum] = "477e8787927c634614bac01b44355a33" -SRC_URI[icon.sha256sum] = "eddcd8b8c8698aa621d1a453943892d77b72ed492e0d14e0dbac5c6a57e52f47" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/links/links_2.20.2.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/links/links_2.20.2.bb new file mode 100644 index 00000000..1a36291e --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/links/links_2.20.2.bb @@ -0,0 +1,15 @@ +require links.inc + +DEPENDS += "gpm" +RCONFLICTS_${PN} = "links-x11" + +EXTRA_OECONF = "--enable-graphics \ + --with-ssl=${STAGING_LIBDIR}/.. --with-libjpeg \ + --without-libtiff --without-svgalib --with-fb \ + --without-directfb --without-pmshell --without-atheos \ + --without-x" + +SRC_URI[md5sum] = "ee39e612249440d0497535d0dafc3c0e" +SRC_URI[sha256sum] = "4b4f07d0e6261118d1365a5a5bfa31e1eafdbd280cfae6f0e9eedfea51a2f424" +SRC_URI[icon.md5sum] = "477e8787927c634614bac01b44355a33" +SRC_URI[icon.sha256sum] = "eddcd8b8c8698aa621d1a453943892d77b72ed492e0d14e0dbac5c6a57e52f47" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/lockdev/lockdev/build.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/lockdev/lockdev/build.patch index 6ec91d23..f9fe48b2 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/lockdev/lockdev/build.patch +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/lockdev/lockdev/build.patch @@ -18,7 +18,7 @@ Date: Tue Feb 9 14:56:23 2010 +0100 soname = ${libname}.so.${MVER} # overwritten by caller (e.g.: debian/rules) -@@ -72,6 +72,7 @@ install_doc: docs/lockdev.3 +@@ -73,6 +73,7 @@ install_doc: docs/lockdev.3 install_run: ${shared} install -m755 -d ${libdir} install -m644 ${shared} ${libdir} diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/lockdev/lockdev/cross_compile.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/lockdev/lockdev/cross_compile.patch index aa8f6a4d..aa8b0f69 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/lockdev/lockdev/cross_compile.patch +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/lockdev/lockdev/cross_compile.patch @@ -1,14 +1,16 @@ --- a/Makefile +++ b/Makefile -@@ -15,17 +15,17 @@ shared = ${libname}.${VER}.so +@@ -15,17 +15,18 @@ shared = ${libname}.${VER}.so soname = ${libname}.so.${MVER} # overwritten by caller (e.g.: debian/rules) -basedir = /usr/local +basedir ?= /usr/local ++baselib ?= lib srcdir=. - libdir = ${basedir}/lib +-libdir = ${basedir}/lib ++libdir = ${basedir}/${baselib} incdir = ${basedir}/include mandir = ${basedir}/share/man @@ -17,7 +19,7 @@ -CFLAGS = -g -LDLIBS = -llockdev +CC ?= gcc -+LCFLAGS ?= -g -O2 -fPIC -Wall -pipe -D_REENTRANT ++LCFLAGS ?= -g -O2 -fPIC -Wall -pipe -D_REENTRANT +CFLAGS ?= -g +LDLIBS ?= -llockdev diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/lockdev/lockdev_1.0.3.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/lockdev/lockdev_1.0.3.bb index 5b862bd1..9d8800eb 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/lockdev/lockdev_1.0.3.bb +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/lockdev/lockdev_1.0.3.bb @@ -15,15 +15,15 @@ SRC_URI[debianpatch.md5sum] = "5ef6267c42fca9145e0af006ccb6aff7" SRC_URI[debianpatch.sha256sum] = "a5405c6ee5e97e45eeb1c81330a7e9f444a58bda5e6771fa30007516c115007e" inherit lib_package perlnative -export basedir="${D}${prefix}" CFLAGS += " -D__GNU_LIBRARY__" TARGET_CC_ARCH += "${LDFLAGS}" +EXTRA_OEMAKE = "basedir=${D}${prefix} baselib=${baselib} LD='${CC}' LD='${CC}'" do_compile() { - oe_runmake basedir=${D}${prefix} LD="${CC}" LD="${CC}" shared static + oe_runmake shared static } do_install() { - oe_runmake DESTDIR=${D} basedir=${D}${prefix} install + oe_runmake DESTDIR=${D} install } diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/log4cpp/log4cpp_1.1.2.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/log4cpp/log4cpp_1.1.2.bb index dc52c9ff..19b94466 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/log4cpp/log4cpp_1.1.2.bb +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/log4cpp/log4cpp_1.1.2.bb @@ -3,8 +3,8 @@ HOMEPAGE = "http://sourceforge.net/projects/log4cpp/" LICENSE = "LGPLv2.1" LIC_FILES_CHKSUM = "file://COPYING;md5=7fbc338309ac38fefcd64b04bb903e34" -RC = "rc5" -SRC_URI = "http://downloads.sourceforge.net/${BPN}/${BP}${RC}.tar.gz \ +PRC = "rc5" +SRC_URI = "http://downloads.sourceforge.net/${BPN}/${BP}${PRC}.tar.gz \ file://fix-pc.patch;striplevel=2 \ " SRC_URI[md5sum] = "58b4591a2f3e7ef3d5e3e7cfb3a81a62" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/lvm2/files/0006-start-lvm2-monitor.service-after-tmp.mount.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/lvm2/files/0006-start-lvm2-monitor.service-after-tmp.mount.patch index e5ad4eaf..9f9383ef 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/lvm2/files/0006-start-lvm2-monitor.service-after-tmp.mount.patch +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/lvm2/files/0006-start-lvm2-monitor.service-after-tmp.mount.patch @@ -1,6 +1,6 @@ -From 24a2c47fd01dde1710f1fa66f5c30ce7010c5956 Mon Sep 17 00:00:00 2001 +From e213ed33a28704f6f538df41a91b7ce95594a4f8 Mon Sep 17 00:00:00 2001 From: Hongxu Jia -Date: Thu, 21 Sep 2017 15:28:10 +0800 +Date: Tue, 15 Oct 2019 18:12:54 +0800 Subject: [PATCH] start lvm2-monitor.service after tmp.mount The lvm2-monitor.service reqires the existence of locking_dir @@ -9,18 +9,14 @@ So start lvm2-monitor.service after tmp.mount Upstream-Status: Inappropriate [oe specific] +Rebase to v2_03_05 Signed-off-by: Hongxu Jia - - -Update context for lvm2 2.03.02. - -Signed-off-by: Kai Kang --- scripts/lvm2_monitoring_systemd_red_hat.service.in | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/lvm2_monitoring_systemd_red_hat.service.in b/scripts/lvm2_monitoring_systemd_red_hat.service.in -index 7ec4e4e..3282a95 100644 +index 4bf744a..46766cb 100644 --- a/scripts/lvm2_monitoring_systemd_red_hat.service.in +++ b/scripts/lvm2_monitoring_systemd_red_hat.service.in @@ -2,7 +2,7 @@ @@ -29,9 +25,9 @@ index 7ec4e4e..3282a95 100644 Requires=dm-event.socket -After=dm-event.socket dm-event.service lvm2-activation.service +After=dm-event.socket dm-event.service lvm2-activation.service tmp.mount - Before=local-fs-pre.target + Before=local-fs-pre.target shutdown.target DefaultDependencies=no Conflicts=shutdown.target -- -1.8.3.1 +2.7.4 diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/lvm2/libdevmapper_2.03.02.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/lvm2/libdevmapper_2.03.02.bb deleted file mode 100644 index 2c4febbe..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/lvm2/libdevmapper_2.03.02.bb +++ /dev/null @@ -1,15 +0,0 @@ -require lvm2.inc - -SRCREV = "913c28917e62577a2ef67152b2e5159237503dda" - -DEPENDS += "autoconf-archive-native" - -TARGET_CC_ARCH += "${LDFLAGS}" - -do_install() { - oe_runmake 'DESTDIR=${D}' -C libdm install -} - -RRECOMMENDS_${PN}_append_class-target = " lvm2-udevrules" - -BBCLASSEXTEND = "native nativesdk" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/lvm2/libdevmapper_2.03.06.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/lvm2/libdevmapper_2.03.06.bb new file mode 100644 index 00000000..be558ce1 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/lvm2/libdevmapper_2.03.06.bb @@ -0,0 +1,17 @@ +# Break circular dependencies, only populate sysroot (header, +# libraries) to other recipe for compiling, recipe lvm2 +# generates package libdevmapper +require lvm2.inc + +DEPENDS += "autoconf-archive-native" + +TARGET_CC_ARCH += "${LDFLAGS}" + +do_install() { + oe_runmake 'DESTDIR=${D}' -C libdm install +} + +# Do not generate package libdevmapper +PACKAGES = "" + +BBCLASSEXTEND = "native nativesdk" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/lvm2/lvm2.inc b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/lvm2/lvm2.inc index 8617f25c..01c9df45 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/lvm2/lvm2.inc +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/lvm2/lvm2.inc @@ -5,9 +5,9 @@ LICENSE = "GPLv2 & LGPLv2.1" LIC_FILES_CHKSUM = "file://COPYING;md5=12713b4d9386533feeb07d6e4831765a \ file://COPYING.LIB;md5=fbc093901857fcd118f065f900982c24" -DEPENDS += "util-linux libaio" +DEPENDS += "libaio" -SRC_URI = "ftp://sources.redhat.com/pub/lvm2/releases/LVM2.${PV}.tgz \ +SRC_URI = "git://sourceware.org/git/lvm2.git \ file://lvm.conf \ file://0001-implement-libc-specific-reopen_stream.patch \ file://0002-Guard-use-of-mallinfo-with-__GLIBC__.patch \ @@ -16,10 +16,8 @@ SRC_URI = "ftp://sources.redhat.com/pub/lvm2/releases/LVM2.${PV}.tgz \ file://0005-do-not-build-manual.patch \ file://0006-start-lvm2-monitor.service-after-tmp.mount.patch \ " -SRC_URI[md5sum] = "5fc07da5461a3794a751dcfc355827d5" -SRC_URI[sha256sum] = "550ba750239fd75b7e52c9877565cabffef506bbf6d7f6f17b9700dee56c720f" - -S = "${WORKDIR}/LVM2.${PV}" +SRCREV = "b9391b1b9f0b73303fa21f8f92574d17ce4c2b02" +S = "${WORKDIR}/git" inherit autotools-brokensep pkgconfig systemd license @@ -27,7 +25,6 @@ LVM2_PACKAGECONFIG = "dmeventd" LVM2_PACKAGECONFIG_append_class-target = " \ ${@bb.utils.filter('DISTRO_FEATURES', 'selinux', d)} \ ${@incompatible_license_contains('GPLv3', '', 'thin-provisioning-tools', d)} \ - udev \ " # odirect is always enabled because there currently is a bug in @@ -41,7 +38,6 @@ PACKAGECONFIG[odirect] = "--enable-o_direct,--disable-o_direct" PACKAGECONFIG[readline] = "--enable-readline,--disable-readline,readline" PACKAGECONFIG[selinux] = "--enable-selinux,--disable-selinux,libselinux" PACKAGECONFIG[thin-provisioning-tools] = "--with-thin=internal,--with-thin=none,,thin-provisioning-tools" -PACKAGECONFIG[udev] = "--enable-udev_sync --enable-udev_rules --with-udevdir=${nonarch_base_libdir}/udev/rules.d,--disable-udev_sync --disable-udev_rules,udev" # Unset user/group to unbreak install. EXTRA_OECONF = "--with-user= \ diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/lvm2/lvm2/0001-explicitly-do-not-install-libdm.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/lvm2/lvm2/0001-explicitly-do-not-install-libdm.patch deleted file mode 100644 index 24160b40..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/lvm2/lvm2/0001-explicitly-do-not-install-libdm.patch +++ /dev/null @@ -1,65 +0,0 @@ -From 3c16d9aaa46602e7594d717d86e7f02066d21134 Mon Sep 17 00:00:00 2001 -From: Hongxu Jia -Date: Mon, 26 Nov 2018 17:20:20 +0800 -Subject: [PATCH] explicitly do not install libdm - -Already have package libdevmapper which split from lvm2, -explicitly do not do the installation here. - -Upstream-Status: Inappropriate [meta-oe specific] - -Signed-off-by: Hongxu Jia - - -Update context for lvm2 2.03.02. - -Signed-off-by: Kai Kang ---- - libdm/Makefile.in | 6 ++++-- - libdm/dm-tools/Makefile.in | 6 ++++-- - 2 files changed, 8 insertions(+), 4 deletions(-) - -diff --git a/libdm/Makefile.in b/libdm/Makefile.in -index e9bb5ae..4e9ae3f 100644 ---- a/libdm/Makefile.in -+++ b/libdm/Makefile.in -@@ -82,9 +82,11 @@ ifeq ("@PKGCONFIG@", "yes") - INSTALL_TYPE += install_pkgconfig - endif - --install: $(INSTALL_TYPE) install_include -+install: -+ echo "Do not install device mapper in lvm2" - --install_device-mapper: install -+install_device-mapper: -+ echo "Do not install device mapper in lvm2" - - install_include: $(srcdir)/libdevmapper.h - @echo " [INSTALL] $<" -diff --git a/libdm/dm-tools/Makefile.in b/libdm/dm-tools/Makefile.in -index 15a9d8e..65e1306 100644 ---- a/libdm/dm-tools/Makefile.in -+++ b/libdm/dm-tools/Makefile.in -@@ -20,7 +20,8 @@ all: device-mapper - - SOURCES2 = dmsetup.c - TARGETS_DM = dmsetup --install_device-mapper: install_dmsetup_dynamic -+install_device-mapper: -+ echo "Do not install device mapper in lvm2" - - ifeq ("@STATIC_LINK@", "yes") - TARGETS_DM += dmsetup.static -@@ -93,6 +94,7 @@ install_dmfilemapd_static: dmfilemapd.static - .PHONY: install_dmsetup_dynamic install_dmsetup_static - .PHONY: install_dmfilemapd install_dmfilemapd_static - --install: install_device-mapper install_dmfilemapd -+install: -+ echo "Do not install device mapper in lvm2" - - device-mapper: $(TARGETS_DM) --- -2.7.4 - diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/lvm2/lvm2/0001-fix-command-bin-findmnt-bin-lsblk-bin-sort-not-found.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/lvm2/lvm2/0001-fix-command-bin-findmnt-bin-lsblk-bin-sort-not-found.patch new file mode 100644 index 00000000..16de8c0a --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/lvm2/lvm2/0001-fix-command-bin-findmnt-bin-lsblk-bin-sort-not-found.patch @@ -0,0 +1,73 @@ +From 27b56cb6b5dfc75ea8ddb395dc9ef41fb7a09c93 Mon Sep 17 00:00:00 2001 +From: Hongxu Jia +Date: Mon, 2 Sep 2019 23:04:50 -0400 +Subject: [PATCH] fix command /bin/findmnt, /bin/lsblk, /bin/sort not found + +In oe-core (util-linux and coreutils), the commands locates in +${bindir} rather than /bin, add BINDIR to configure it + +Upstream-Status: Inappropriate [oe specific] + +Signed-off-by: Hongxu Jia +--- + configure.ac | 3 +++ + scripts/blkdeactivate.sh.in | 7 ++++--- + 2 files changed, 7 insertions(+), 3 deletions(-) + +diff --git a/configure.ac b/configure.ac +index d1431e2..54e5a7b 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -1495,6 +1495,8 @@ fi + + SYSCONFDIR="$(eval echo $(eval echo $sysconfdir))" + ++BINDIR="$(eval echo $(eval echo $bindir))" ++ + SBINDIR="$(eval echo $(eval echo $sbindir))" + LVM_PATH="$SBINDIR/lvm" + AC_DEFINE_UNQUOTED(LVM_PATH, ["$LVM_PATH"], [Path to lvm binary.]) +@@ -1721,6 +1723,7 @@ AC_SUBST(SACKPT_CFLAGS) + AC_SUBST(SACKPT_LIBS) + AC_SUBST(SALCK_CFLAGS) + AC_SUBST(SALCK_LIBS) ++AC_SUBST(BINDIR) + AC_SUBST(SBINDIR) + AC_SUBST(SELINUX_LIBS) + AC_SUBST(SELINUX_PC) +diff --git a/scripts/blkdeactivate.sh.in b/scripts/blkdeactivate.sh.in +index a4b8a8f..3db4226 100644 +--- a/scripts/blkdeactivate.sh.in ++++ b/scripts/blkdeactivate.sh.in +@@ -41,13 +41,14 @@ UMOUNT="/bin/umount" + + sbindir="@SBINDIR@" + DMSETUP="$sbindir/dmsetup" ++bindir="@BINDIR@" + LVM="$sbindir/lvm" + + if "$UMOUNT" --help | grep -- "--all-targets" >"$DEV_DIR/null"; then + UMOUNT_OPTS="--all-targets " + else + UMOUNT_OPTS="" +- FINDMNT="/bin/findmnt -r --noheadings -u -o TARGET" ++ FINDMNT="$bindir/findmnt -r --noheadings -u -o TARGET" + FINDMNT_READ="read -r mnt" + fi + DMSETUP_OPTS="" +@@ -55,10 +56,10 @@ LVM_OPTS="" + MDADM_OPTS="" + MPATHD_OPTS="" + +-LSBLK="/bin/lsblk -r --noheadings -o TYPE,KNAME,NAME,MOUNTPOINT" ++LSBLK="$bindir/lsblk -r --noheadings -o TYPE,KNAME,NAME,MOUNTPOINT" + LSBLK_VARS="local devtype local kname local name local mnt" + LSBLK_READ="read -r devtype kname name mnt" +-SORT_MNT="/bin/sort -r -u -k 4" ++SORT_MNT="$bindir/sort -r -u -k 4" + + # Do not show tool errors by default (only done/skipping summary + # message provided by this script) and no verbose mode by default. +-- +2.8.1 + diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/lvm2/lvm2_2.03.02.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/lvm2/lvm2_2.03.02.bb deleted file mode 100644 index e2ce95c8..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/lvm2/lvm2_2.03.02.bb +++ /dev/null @@ -1,62 +0,0 @@ -require lvm2.inc - -SRCREV = "913c28917e62577a2ef67152b2e5159237503dda" - -SRC_URI += "file://0001-explicitly-do-not-install-libdm.patch \ - file://0001-dev-hdc-open-failed-No-medium-found-will-print-out-i.patch \ - " - -DEPENDS += "autoconf-archive-native" - -inherit multilib_script - -MULTILIB_SCRIPTS = "${PN}:${sysconfdir}/lvm/lvm.conf" - -CACHED_CONFIGUREVARS += "MODPROBE_CMD=${base_sbindir}/modprobe" - -do_install_append() { - # Install machine specific configuration file - install -d ${D}${sysconfdir}/lvm - install -m 0644 ${WORKDIR}/lvm.conf ${D}${sysconfdir}/lvm/lvm.conf - sed -i -e 's:@libdir@:${libdir}:g' ${D}${sysconfdir}/lvm/lvm.conf - if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}; then - oe_runmake 'DESTDIR=${D}' install install_systemd_units - sed -i -e 's:/usr/bin/true:${base_bindir}/true:g' ${D}${systemd_system_unitdir}/blk-availability.service - else - oe_runmake 'DESTDIR=${D}' install install_initscripts - mv ${D}${sysconfdir}/rc.d/init.d ${D}${sysconfdir}/init.d - rm -rf ${D}${sysconfdir}/rc.d - fi -} - -PACKAGE_BEFORE_PN = "${PN}-scripts ${PN}-udevrules" - -SYSTEMD_PACKAGES = "${PN}" -SYSTEMD_SERVICE_${PN} = "${@bb.utils.contains('PACKAGECONFIG', 'dmeventd', 'lvm2-monitor.service dm-event.socket dm-event.service', '', d)} \ - blk-availability.service lvm2-pvscan@.service" -SYSTEMD_AUTO_ENABLE = "disable" - -TARGET_CC_ARCH += "${LDFLAGS}" - -EXTRA_OECONF_append_class-nativesdk = " --with-confdir=${sysconfdir}" - -FILES_${PN} += "${libdir}/device-mapper/*.so" -FILES_${PN}-scripts = " \ - ${sbindir}/blkdeactivate \ - ${sbindir}/fsadm \ - ${sbindir}/lvmconf \ - ${sbindir}/lvmdump \ -" -# Specified explicitly for the udev rules, just in case that it does not get picked -# up automatically: -FILES_${PN}-udevrules = "${nonarch_base_libdir}/udev/rules.d" -RDEPENDS_${PN}-udevrules = "${PN}" -RDEPENDS_${PN}_append_class-target = " libdevmapper" -RDEPENDS_${PN}_append_class-nativesdk = " libdevmapper" - -RDEPENDS_${PN}-scripts = "${PN} (= ${EXTENDPKGV}) bash" -RRECOMMENDS_${PN}_class-target = "${PN}-scripts (= ${EXTENDPKGV})" - -CONFFILES_${PN} += "${sysconfdir}/lvm/lvm.conf" - -BBCLASSEXTEND = "native nativesdk" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/lvm2/lvm2_2.03.06.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/lvm2/lvm2_2.03.06.bb new file mode 100644 index 00000000..e2b551bb --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/lvm2/lvm2_2.03.06.bb @@ -0,0 +1,88 @@ +require lvm2.inc + +SRC_URI += " \ + file://0001-dev-hdc-open-failed-No-medium-found-will-print-out-i.patch \ + file://0001-fix-command-bin-findmnt-bin-lsblk-bin-sort-not-found.patch \ + " + +DEPENDS += "autoconf-archive-native" + +inherit multilib_script + +MULTILIB_SCRIPTS = "${PN}:${sysconfdir}/lvm/lvm.conf" + +CACHED_CONFIGUREVARS += "MODPROBE_CMD=${base_sbindir}/modprobe" + +do_install_append() { + # Install machine specific configuration file + install -d ${D}${sysconfdir}/lvm + install -m 0644 ${WORKDIR}/lvm.conf ${D}${sysconfdir}/lvm/lvm.conf + sed -i -e 's:@libdir@:${libdir}:g' ${D}${sysconfdir}/lvm/lvm.conf + if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}; then + oe_runmake 'DESTDIR=${D}' install install_systemd_units + sed -i -e 's:/usr/bin/true:${base_bindir}/true:g' ${D}${systemd_system_unitdir}/blk-availability.service + else + oe_runmake 'DESTDIR=${D}' install install_initscripts + mv ${D}${sysconfdir}/rc.d/init.d ${D}${sysconfdir}/init.d + rm -rf ${D}${sysconfdir}/rc.d + fi +} + +PACKAGE_BEFORE_PN = "${PN}-scripts ${PN}-udevrules" + +SYSTEMD_PACKAGES = "${PN}" +SYSTEMD_SERVICE_${PN} = "${@bb.utils.contains('PACKAGECONFIG', 'dmeventd', 'lvm2-monitor.service dm-event.socket dm-event.service', '', d)} \ + blk-availability.service lvm2-pvscan@.service" +SYSTEMD_AUTO_ENABLE = "disable" + +TARGET_CC_ARCH += "${LDFLAGS}" + +EXTRA_OECONF_append_class-nativesdk = " --with-confdir=${sysconfdir}" + +DEPENDS += "util-linux" +LVM2_PACKAGECONFIG_append_class-target = " \ + udev \ +" +PACKAGECONFIG[udev] = "--enable-udev_sync --enable-udev_rules --with-udevdir=${nonarch_base_libdir}/udev/rules.d,--disable-udev_sync --disable-udev_rules,udev,${PN}-udevrules" + +PACKAGES =+ "libdevmapper" +FILES_libdevmapper = " \ + ${libdir}/libdevmapper.so.* \ + ${sbindir}/dmsetup \ + ${sbindir}/dmstats \ +" + +FILES_${PN} += "${libdir}/device-mapper/*.so" +FILES_${PN}-scripts = " \ + ${sbindir}/blkdeactivate \ + ${sbindir}/fsadm \ + ${sbindir}/lvmconf \ + ${sbindir}/lvmdump \ +" +# Specified explicitly for the udev rules, just in case that it does not get picked +# up automatically: +FILES_${PN}-udevrules = "${nonarch_base_libdir}/udev/rules.d" +RDEPENDS_${PN}-udevrules = "libdevmapper" +RDEPENDS_${PN}_append_class-target = " libdevmapper" +RDEPENDS_${PN}_append_class-nativesdk = " libdevmapper" + +RDEPENDS_${PN}-scripts = "${PN} (= ${EXTENDPKGV}) \ + bash \ + util-linux-lsblk \ + util-linux-findmnt \ + coreutils \ +" +RRECOMMENDS_${PN}_class-target = "${PN}-scripts (= ${EXTENDPKGV})" + +CONFFILES_${PN} += "${sysconfdir}/lvm/lvm.conf" + +SYSROOT_PREPROCESS_FUNCS_append = " remove_libdevmapper_sysroot_preprocess" +remove_libdevmapper_sysroot_preprocess() { + rm -f ${SYSROOT_DESTDIR}${libdir}/libdevmapper.so* \ + ${SYSROOT_DESTDIR}${sbindir}/dmsetup \ + ${SYSROOT_DESTDIR}${sbindir}/dmstats \ + ${SYSROOT_DESTDIR}${includedir}/libdevmapper.h \ + ${SYSROOT_DESTDIR}${libdir}/pkgconfig/devmapper.pc +} + +BBCLASSEXTEND = "native nativesdk" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/mcelog/mce-test_git.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/mcelog/mce-test_git.bb index 888c729b..007b3944 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/mcelog/mce-test_git.bb +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/mcelog/mce-test_git.bb @@ -13,8 +13,8 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=0636e73ff0215e8d672dc4c32c317bb3" SRC_URI = "git://git.kernel.org/pub/scm/utils/cpu/mce/mce-test.git;protocol=git \ file://makefile-remove-ldflags.patch \ " -SRCREV = "74bffd8b0aa27051aeaa1983a7b23975ca8d8726" -PV = "20171030+git${SRCPV}" +SRCREV = "7643baf6c3919b3d727e6ba6c2e545dc6a653307" +PV = "20190917+git${SRCPV}" RDEPENDS_${PN} = "mcelog mce-inject dialog bash" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/mcelog/mcelog_162.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/mcelog/mcelog_162.bb deleted file mode 100644 index 1aee674e..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/mcelog/mcelog_162.bb +++ /dev/null @@ -1,35 +0,0 @@ -SUMMARY = "mcelog daemon accounts memory and some other errors in various ways." -DESCRIPTION = "mcelog is required by both 32bit x86 Linux kernels (since 2.6.30) \ -and 64bit Linux kernels (since early 2.6 kernel releases) to log machine checks \ -and should run on all Linux systems that need error handling." -HOMEPAGE = "http://mcelog.org/" -SECTION = "System Environment/Base" - -SRC_URI = "git://git.kernel.org/pub/scm/utils/cpu/mce/mcelog.git;protocol=http; \ - file://run-ptest \ -" - -SRCREV = "6ed93e30f83519b0ab71f8ecd156b8ff0b2912b6" - -LICENSE = "GPLv2" -LIC_FILES_CHKSUM = "file://README.md;md5=74bb47b9a68850cb398665cf78b31de6" - -S = "${WORKDIR}/git" - -inherit autotools-brokensep ptest - -COMPATIBLE_HOST = '(x86_64.*|i.86.*)-linux' - -do_install_append() { - install -d ${D}${sysconfdir}/cron.hourly - install -m 0755 ${S}/mcelog.cron ${D}${sysconfdir}/cron.hourly/ - sed -i 's/bash/sh/' ${D}${sysconfdir}/cron.hourly/mcelog.cron -} - -do_install_ptest() { - install -d ${D}${PTEST_PATH} - cp -r ${S}/tests ${S}/input ${D}${PTEST_PATH} - sed -i 's#../../mcelog#mcelog#' ${D}${PTEST_PATH}/tests/test -} - -RDEPENDS_${PN}-ptest += "make bash mce-inject" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/mcelog/mcelog_166.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/mcelog/mcelog_166.bb new file mode 100644 index 00000000..3b4ea1f6 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/mcelog/mcelog_166.bb @@ -0,0 +1,35 @@ +SUMMARY = "mcelog daemon accounts memory and some other errors in various ways." +DESCRIPTION = "mcelog is required by both 32bit x86 Linux kernels (since 2.6.30) \ +and 64bit Linux kernels (since early 2.6 kernel releases) to log machine checks \ +and should run on all Linux systems that need error handling." +HOMEPAGE = "http://mcelog.org/" +SECTION = "System Environment/Base" + +SRC_URI = "git://git.kernel.org/pub/scm/utils/cpu/mce/mcelog.git;protocol=http; \ + file://run-ptest \ +" + +SRCREV = "ee90ff20ce6a4d5e016aa249ce8b37f359f9fda4" + +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://README.md;md5=74bb47b9a68850cb398665cf78b31de6" + +S = "${WORKDIR}/git" + +inherit autotools-brokensep ptest + +COMPATIBLE_HOST = '(x86_64.*|i.86.*)-linux' + +do_install_append() { + install -d ${D}${sysconfdir}/cron.hourly + install -m 0755 ${S}/mcelog.cron ${D}${sysconfdir}/cron.hourly/ + sed -i 's/bash/sh/' ${D}${sysconfdir}/cron.hourly/mcelog.cron +} + +do_install_ptest() { + install -d ${D}${PTEST_PATH} + cp -r ${S}/tests ${S}/input ${D}${PTEST_PATH} + sed -i 's#../../mcelog#mcelog#' ${D}${PTEST_PATH}/tests/test +} + +RDEPENDS_${PN}-ptest += "make bash mce-inject" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0022-RH-Remove-the-property-blacklist-exception-builtin.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0022-RH-Remove-the-property-blacklist-exception-builtin.patch index fd106089..21b8ec6b 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0022-RH-Remove-the-property-blacklist-exception-builtin.patch +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0022-RH-Remove-the-property-blacklist-exception-builtin.patch @@ -1,7 +1,7 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From:Benjamin Marzinski -Date: Wed, 2 Jul 2014 12:49:53 -0500 -Subject: [PATCH] RH: Remove the property blacklist exception builtin +From 0000000000000000000000000000000000000000 Mon Sep 17 +00:00:00 2001 From:Benjamin Marzinski Date: Wed, 2 Jul +2014 12:49:53 -0500 Subject: [PATCH] RH: Remove the property blacklist +exception builtin Multipath set the default property blacklist exceptions to (ID_SCSI_VPD|ID_WWN). This has the effect of blacklisting some internal @@ -15,14 +15,14 @@ Signed-off-by: Benjamin Marzinski Upsteam-Status: Pending -Update patch to 0.8.0 +Update patch to 0.8.2 Signed-off-by: Changqing Li --- libmultipath/blacklist.c | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/libmultipath/blacklist.c b/libmultipath/blacklist.c -index e0d0279..9f58313 100644 +index 00e8dbd..5204501 100644 --- a/libmultipath/blacklist.c +++ b/libmultipath/blacklist.c @@ -192,12 +192,6 @@ setup_default_blist (struct config * conf) @@ -38,8 +38,8 @@ index e0d0279..9f58313 100644 str = STRDUP("^(td|hd|vd)[a-z]"); if (!str) return 1; -@@ -415,8 +409,11 @@ filter_property(struct config *conf, struct udev_device *udev, int lvl) - } +@@ -437,8 +431,11 @@ filter_property(struct config *conf, struct udev_device *udev, int lvl, + r = MATCH_NOTHING; } - log_filter(devname, NULL, NULL, NULL, env, NULL, r, lvl); diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0026-RH-add-wwids-from-kernel-cmdline-mpath.wwids-with-A.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0026-RH-add-wwids-from-kernel-cmdline-mpath.wwids-with-A.patch index 938262ba..724bef81 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0026-RH-add-wwids-from-kernel-cmdline-mpath.wwids-with-A.patch +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0026-RH-add-wwids-from-kernel-cmdline-mpath.wwids-with-A.patch @@ -1,7 +1,10 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Benjamin Marzinski -Date: Fri, 17 Oct 2014 11:20:34 -0500 -Subject: [PATCH] RH: add wwids from kernel cmdline mpath.wwids with -A +From 0f54b3120ca06ff3168cdbf901a27b68c4638398 Mon Sep 17 00:00:00 2001 +From: Changqing Li +Date: Thu, 26 Sep 2019 16:29:48 +0800 +Subject: [PATCH] From 0000000000000000000000000000000000000000 Mon Sep 17 + 00:00:00 2001 From: Benjamin Marzinski Date: Fri, 17 + Oct 2014 11:20:34 -0500 Subject: [PATCH] RH: add wwids from kernel cmdline + mpath.wwids with -A This patch adds another option to multipath, "-A", which reads /proc/cmdline for mpath.wwid= options, and adds any wwids it finds @@ -16,7 +19,7 @@ Signed-off-by: Benjamin Marzinski Upstream-Status: Pending -Update this patch to new version 0.8.0 +Update this patch to new version 0.8.2 Signed-off-by: Changqing Li --- @@ -28,10 +31,10 @@ Signed-off-by: Changqing Li 5 files changed, 57 insertions(+), 1 deletion(-) diff --git a/libmultipath/wwids.c b/libmultipath/wwids.c -index 53e7951..9ba9b62 100644 +index ef74812..19c4d68 100644 --- a/libmultipath/wwids.c +++ b/libmultipath/wwids.c -@@ -443,3 +443,47 @@ int op ## _wwid(const char *wwid) \ +@@ -444,3 +444,47 @@ int op ## _wwid(const char *wwid) \ declare_failed_wwid_op(is_failed, false) declare_failed_wwid_op(mark_failed, true) declare_failed_wwid_op(unmark_failed, true) @@ -92,27 +95,27 @@ index 0c6ee54..e32a0b0 100644 enum { WWID_IS_NOT_FAILED = 0, diff --git a/multipath/main.c b/multipath/main.c -index 5abb118..c751b31 100644 +index 96a1146..5fc65ef 100644 --- a/multipath/main.c +++ b/multipath/main.c -@@ -134,6 +134,7 @@ usage (char * progname) - fprintf (stderr, VERSION_STRING); - fprintf (stderr, "Usage:\n"); - fprintf (stderr, " %s [-a|-c|-w|-W] [-d] [-r] [-i] [-v lvl] [-p pol] [-b fil] [-q] [dev]\n", progname); -+ fprintf (stderr, " %s [-a|-A|-c|-w|-W] [-d] [-r] [-i] [-v lvl] [-p pol] [-b fil] [-q] [dev]\n", progname); - fprintf (stderr, " %s -l|-ll|-f [-v lvl] [-b fil] [-R num] [dev]\n", progname); - fprintf (stderr, " %s -F [-v lvl] [-R num]\n", progname); - fprintf (stderr, " %s [-t|-T]\n", progname); -@@ -147,6 +148,8 @@ usage (char * progname) +@@ -139,6 +139,7 @@ usage (char * progname) + fprintf (stderr, " %s [-v level] [-l|-ll] [device]\n", progname); + fprintf (stderr, " %s [-v level] [-a|-w] device\n", progname); + fprintf (stderr, " %s [-v level] -W\n", progname); ++ fprintf (stderr, " %s [-v level] -A\n", progname); + fprintf (stderr, " %s [-v level] [-i] [-c|-C] device\n", progname); + fprintf (stderr, " %s [-v level] [-i] [-u|-U]\n", progname); + fprintf (stderr, " %s [-h|-t|-T]\n", progname); +@@ -151,6 +152,8 @@ usage (char * progname) " -f flush a multipath device map\n" " -F flush all multipath device maps\n" " -a add a device wwid to the wwids file\n" -+ " -A add devices from kernel command line mpath.wwids\n" -+ " parameters to wwids file\n" ++ " -A add devices from kernel command line mpath.wwids\n" ++ " parameters to wwids file\n" " -c check if a device should be a path in a multipath device\n" " -C check if a multipath device has usable paths\n" " -q allow queue_if_no_path when multipathd is not running\n" -@@ -870,7 +873,7 @@ main (int argc, char *argv[]) +@@ -905,7 +908,7 @@ main (int argc, char *argv[]) exit(RTVL_FAIL); multipath_conf = conf; conf->retrigger_tries = 0; @@ -121,17 +124,17 @@ index 5abb118..c751b31 100644 switch(arg) { case 1: printf("optarg : %s\n",optarg); break; -@@ -937,6 +940,10 @@ main (int argc, char *argv[]) - case 't': - r = dump_config(conf, NULL, NULL) ? RTVL_FAIL : RTVL_OK; - goto out_free_config; +@@ -998,6 +1001,10 @@ main (int argc, char *argv[]) + case 'R': + retries = atoi(optarg); + break; + case 'A': + if (remember_cmdline_wwid() != 0) + exit(1); + exit(0); - case 'T': - cmd = CMD_DUMP_CONFIG; - break; + case ':': + fprintf(stderr, "Missing option argument\n"); + usage(argv[0]); diff --git a/multipath/multipath.8 b/multipath/multipath.8 index 9cdd05a..1e120f3 100644 --- a/multipath/multipath.8 diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0027-RH-warn-on-invalid-regex-instead-of-failing.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0027-RH-warn-on-invalid-regex-instead-of-failing.patch index 95624ad7..c59edbbb 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0027-RH-warn-on-invalid-regex-instead-of-failing.patch +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0027-RH-warn-on-invalid-regex-instead-of-failing.patch @@ -1,10 +1,7 @@ -From 56d65ecb1c6d814929f6ff3159ade09dc203cc83 Mon Sep 17 00:00:00 2001 -From: Changqing Li -Date: Mon, 26 Nov 2018 10:31:30 +0800 -Subject: [PATCH] From 0000000000000000000000000000000000000000 Mon Sep 17 - 00:00:00 2001 From: Benjamin Marzinski Date: Mon, 6 Nov - 2017 21:39:28 -0600 Subject: [PATCH] RH: warn on invalid regex instead of - failing +From 0000000000000000000000000000000000000000 Mon Sep 17 +00:00:00 2001 From: Benjamin Marzinski Date: Mon, 6 Nov +2017 21:39:28 -0600 Subject: [PATCH] RH: warn on invalid regex instead of +failing multipath.conf used to allow "*" as a match everything regular expression, instead of requiring ".*". Instead of erroring when the old style @@ -15,10 +12,9 @@ Signed-off-by: Benjamin Marzinski Upstream-Status: Pending -update this patch to new version +update this patch to 0.8.2 Signed-off-by: Changqing Li - --- libmultipath/dict.c | 29 ++++++++++++++++++++++------- libmultipath/parser.c | 13 +++++++++++++ @@ -26,7 +22,7 @@ Signed-off-by: Changqing Li 3 files changed, 36 insertions(+), 7 deletions(-) diff --git a/libmultipath/dict.c b/libmultipath/dict.c -index eaad4f1..fb30577 100644 +index c6eba0f..05ed3d8 100644 --- a/libmultipath/dict.c +++ b/libmultipath/dict.c @@ -59,6 +59,21 @@ set_str(vector strvec, void *ptr) @@ -51,7 +47,7 @@ index eaad4f1..fb30577 100644 set_yes_no(vector strvec, void *ptr) { char * buff; -@@ -1373,8 +1388,8 @@ ble_ ## option ## _handler (struct config *conf, vector strvec) \ +@@ -1415,8 +1430,8 @@ ble_ ## option ## _handler (struct config *conf, vector strvec) \ \ if (!conf->option) \ return 1; \ @@ -62,7 +58,7 @@ index eaad4f1..fb30577 100644 if (!buff) \ return 1; \ \ -@@ -1390,7 +1405,7 @@ ble_ ## option ## _ ## name ## _handler (struct config *conf, vector strvec) \ +@@ -1432,7 +1447,7 @@ ble_ ## option ## _ ## name ## _handler (struct config *conf, vector strvec) \ if (!conf->option) \ return 1; \ \ @@ -71,7 +67,7 @@ index eaad4f1..fb30577 100644 if (!buff) \ return 1; \ \ -@@ -1493,16 +1508,16 @@ device_handler(struct config *conf, vector strvec) +@@ -1535,16 +1550,16 @@ device_handler(struct config *conf, vector strvec) return 0; } @@ -93,11 +89,11 @@ index eaad4f1..fb30577 100644 declare_hw_handler(hwhandler, set_str) diff --git a/libmultipath/parser.c b/libmultipath/parser.c -index 92ef7cf..0e2cf49 100644 +index e00c5ff..6ca5842 100644 --- a/libmultipath/parser.c +++ b/libmultipath/parser.c -@@ -384,6 +384,19 @@ set_value(vector strvec) - return alloc; +@@ -382,6 +382,19 @@ oom: + return NULL; } +void * @@ -128,3 +124,6 @@ index 62906e9..b791705 100644 extern int process_file(struct config *conf, char *conf_file); extern struct keyword * find_keyword(vector keywords, vector v, char * name); int snprint_keyword(char *buff, int len, char *fmt, struct keyword *kw, +-- +2.7.4 + diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/multipath-tools/multipath-tools_0.8.1.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/multipath-tools/multipath-tools_0.8.1.bb deleted file mode 100644 index 55866e98..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/multipath-tools/multipath-tools_0.8.1.bb +++ /dev/null @@ -1,111 +0,0 @@ -SUMMARY = "The upstream project used to drive the Device Mapper multipathing driver" - -DESCRIPTION = "It provides tools to manage multipath devices \ -by instructing the device-mapper kernel module what to do. These \ -tools include: \ -1. multipath - Scan the system for multipath devices and assemble them.\ -2. multipathd - Detects when paths fail and execs multipath to update \ -things.\ -3. mpathpersist - Persistent reservation management feature allows \ -cluster management software to manage persistent reservation through \ -mpath device. It processes management requests from callers and hides \ -the management task details. It also handles persistent reservation \ -management of data path life cycle and state changes.\ -4. kpartx - This tool, derived from util-linux's partx, reads partition \ -tables on specified device and create device maps over partitions \ -segments detected. It is called from hotplug upon device maps creation \ -and deletion" - -HOMEPAGE = "http://christophe.varoqui.free.fr/" - -DEPENDS = "libdevmapper \ - libaio \ - liburcu \ - readline \ - udev \ - json-c \ - " - -LICENSE = "GPLv2" - -SRC_URI = "git://git.opensvc.com/multipath-tools/.git;protocol=http \ - file://multipathd.oe \ - file://multipath.conf.example \ - file://0021-RH-fixup-udev-rules-for-redhat.patch \ - file://0022-RH-Remove-the-property-blacklist-exception-builtin.patch \ - file://0023-RH-don-t-start-without-a-config-file.patch \ - file://0024-RH-use-rpm-optflags-if-present.patch \ - file://0025-RH-add-mpathconf.patch \ - file://0026-RH-add-wwids-from-kernel-cmdline-mpath.wwids-with-A.patch \ - file://0027-RH-warn-on-invalid-regex-instead-of-failing.patch \ - file://0028-RH-reset-default-find_mutipaths-value-to-off.patch \ - file://0029-multipath-tools-modify-Makefile.inc-for-cross-compil.patch \ - file://0030-Always-use-devmapper.patch \ - file://0031-Always-use-devmapper-for-kpartx.patch \ - " - -LIC_FILES_CHKSUM = "file://COPYING;md5=5f30f0716dfdd0d91eb439ebec522ec2" - -SRCREV = "e23b5d7cf67a9c543e118f2f6b902594a02a804a" - -S = "${WORKDIR}/git" - -inherit systemd pkgconfig - -SYSTEMD_SERVICE_${PN} = "multipathd.service" -SYSTEMD_AUTO_ENABLE = "disable" - -TARGET_CC_ARCH += "${LDFLAGS}" - -# multipath-tools includes a copy of the valgrind.h header -# file and uses the macros to suppress some false positives. However, -# that only works on ARM when thumb is disabled. Otherwise one gets: -# Error: shifts in CMP/MOV instructions are only supported in unified syntax -- `mov r12,r12,ror#3' -# ../Makefile.inc:66: recipe for target 'debug.o' failed -ARM_INSTRUCTION_SET_armv4 = "arm" -ARM_INSTRUCTION_SET_armv5 = "arm" - -# The exact version of SYSTEMD does not matter but should be greater than 209. -# -EXTRA_OEMAKE = 'MULTIPATH_VERSION=${PV} DESTDIR=${D} syslibdir=${base_libdir} \ - OPTFLAGS="${CFLAGS}" \ - bindir=${base_sbindir} \ - LIB=${base_libdir} libdir=${base_libdir}/multipath \ - unitdir=${systemd_system_unitdir} \ - ${@bb.utils.contains("DISTRO_FEATURES", "systemd", "SYSTEMD=216", "", d)} \ - ' - -do_install() { - oe_runmake install - - # We copy an initscript, but do not start multipathd at init time. - # - if ${@bb.utils.contains('DISTRO_FEATURES','sysvinit','true','false',d)};then - install -d ${D}${sysconfdir}/init.d - cp ${WORKDIR}/multipathd.oe ${D}${sysconfdir}/init.d/multipathd - fi - - install -d ${D}${sysconfdir} - install -m 0644 ${WORKDIR}/multipath.conf.example \ - ${D}${sysconfdir}/multipath.conf.example -} - -FILES_${PN}-dbg += "${base_libdir}/multipath/.debug" - -PACKAGES =+ "${PN}-libs" -FILES_${PN}-libs = "${base_libdir}/lib*.so.* \ - ${base_libdir}/multipath/lib*.so*" -RDEPENDS_${PN} += "${PN}-libs bash" - -PROVIDES += "device-mapper-multipath" -RPROVIDES_${PN} += "device-mapper-multipath" -RPROVIDES_${PN}-libs += "device-mapper-multipath-libs" - -FILES_${PN}-dev += "${base_libdir}/pkgconfig" - -PACKAGES =+ "kpartx" -FILES_kpartx = "${base_sbindir}/kpartx \ - ${nonarch_libdir}/udev/kpartx_id \ - " - -RDEPENDS_${PN} += "bash kpartx" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/multipath-tools/multipath-tools_0.8.3.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/multipath-tools/multipath-tools_0.8.3.bb new file mode 100644 index 00000000..9e2d86b9 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/multipath-tools/multipath-tools_0.8.3.bb @@ -0,0 +1,116 @@ +SUMMARY = "The upstream project used to drive the Device Mapper multipathing driver" + +DESCRIPTION = "It provides tools to manage multipath devices \ +by instructing the device-mapper kernel module what to do. These \ +tools include: \ +1. multipath - Scan the system for multipath devices and assemble them.\ +2. multipathd - Detects when paths fail and execs multipath to update \ +things.\ +3. mpathpersist - Persistent reservation management feature allows \ +cluster management software to manage persistent reservation through \ +mpath device. It processes management requests from callers and hides \ +the management task details. It also handles persistent reservation \ +management of data path life cycle and state changes.\ +4. kpartx - This tool, derived from util-linux's partx, reads partition \ +tables on specified device and create device maps over partitions \ +segments detected. It is called from hotplug upon device maps creation \ +and deletion" + +HOMEPAGE = "http://christophe.varoqui.free.fr/" + +DEPENDS = "libdevmapper \ + lvm2 \ + libaio \ + liburcu \ + readline \ + udev \ + json-c \ + " + +LICENSE = "GPLv2" + +SRC_URI = "git://git.opensvc.com/multipath-tools/.git;protocol=http \ + file://multipathd.oe \ + file://multipath.conf.example \ + file://0021-RH-fixup-udev-rules-for-redhat.patch \ + file://0022-RH-Remove-the-property-blacklist-exception-builtin.patch \ + file://0023-RH-don-t-start-without-a-config-file.patch \ + file://0024-RH-use-rpm-optflags-if-present.patch \ + file://0025-RH-add-mpathconf.patch \ + file://0026-RH-add-wwids-from-kernel-cmdline-mpath.wwids-with-A.patch \ + file://0027-RH-warn-on-invalid-regex-instead-of-failing.patch \ + file://0028-RH-reset-default-find_mutipaths-value-to-off.patch \ + file://0029-multipath-tools-modify-Makefile.inc-for-cross-compil.patch \ + file://0030-Always-use-devmapper.patch \ + file://0031-Always-use-devmapper-for-kpartx.patch \ + " + +LIC_FILES_CHKSUM = "file://COPYING;md5=5f30f0716dfdd0d91eb439ebec522ec2" + +SRCREV = "6c3bd369b23e959700527e0e2e6d5b2a1bd36294" + +S = "${WORKDIR}/git" + +inherit systemd pkgconfig + +SYSTEMD_SERVICE_${PN} = "multipathd.service" +SYSTEMD_AUTO_ENABLE = "disable" + +TARGET_CC_ARCH += "${LDFLAGS}" + +# multipath-tools includes a copy of the valgrind.h header +# file and uses the macros to suppress some false positives. However, +# that only works on ARM when thumb is disabled. Otherwise one gets: +# Error: shifts in CMP/MOV instructions are only supported in unified syntax -- `mov r12,r12,ror#3' +# ../Makefile.inc:66: recipe for target 'debug.o' failed +ARM_INSTRUCTION_SET_armv4 = "arm" +ARM_INSTRUCTION_SET_armv5 = "arm" + +# The exact version of SYSTEMD does not matter but should be greater than 209. +# +EXTRA_OEMAKE = 'MULTIPATH_VERSION=${PV} DESTDIR=${D} syslibdir=${base_libdir} \ + OPTFLAGS="${CFLAGS}" \ + bindir=${base_sbindir} \ + LIB=${base_libdir} libdir=${base_libdir}/multipath \ + unitdir=${systemd_system_unitdir} \ + libudevdir=${nonarch_base_libdir}/udev \ + ${@bb.utils.contains("DISTRO_FEATURES", "systemd", "SYSTEMD=216", "", d)} \ + ' + +do_install() { + oe_runmake install + + # We copy an initscript, but do not start multipathd at init time. + # + if ${@bb.utils.contains('DISTRO_FEATURES','sysvinit','true','false',d)};then + install -d ${D}${sysconfdir}/init.d + cp ${WORKDIR}/multipathd.oe ${D}${sysconfdir}/init.d/multipathd + fi + + sed -i "s:/usr/lib/udev/kpartx_id:${nonarch_base_libdir}/udev/kpartx_id:g" \ + ${D}${nonarch_base_libdir}/udev/rules.d/11-dm-mpath.rules + + install -d ${D}${sysconfdir} + install -m 0644 ${WORKDIR}/multipath.conf.example \ + ${D}${sysconfdir}/multipath.conf.example +} + +FILES_${PN}-dbg += "${base_libdir}/multipath/.debug" + +PACKAGES =+ "${PN}-libs" +FILES_${PN}-libs = "${base_libdir}/lib*.so.* \ + ${base_libdir}/multipath/lib*.so*" +RDEPENDS_${PN} += "${PN}-libs bash" + +PROVIDES += "device-mapper-multipath" +RPROVIDES_${PN} += "device-mapper-multipath" +RPROVIDES_${PN}-libs += "device-mapper-multipath-libs" + +FILES_${PN}-dev += "${base_libdir}/pkgconfig" + +PACKAGES =+ "kpartx" +FILES_kpartx = "${base_sbindir}/kpartx \ + ${nonarch_base_libdir}/udev/kpartx_id \ + " + +RDEPENDS_${PN} += "kpartx" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/nano/nano_4.2.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/nano/nano_4.2.bb deleted file mode 100644 index 19a8b478..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/nano/nano_4.2.bb +++ /dev/null @@ -1,20 +0,0 @@ -DESCRIPTION = "GNU nano (Nano's ANOther editor, or \ -Not ANOther editor) is an enhanced clone of the \ -Pico text editor." -HOMEPAGE = "http://www.nano-editor.org/" -SECTION = "console/utils" -LICENSE = "GPLv3" -LIC_FILES_CHKSUM = "file://COPYING;md5=f27defe1e96c2e1ecd4e0c9be8967949" - -DEPENDS = "ncurses file" -RDEPENDS_${PN} = "ncurses-terminfo-base" - -PV_MAJOR = "${@d.getVar('PV').split('.')[0]}" - -SRC_URI = "https://nano-editor.org/dist/v${PV_MAJOR}/nano-${PV}.tar.xz" -SRC_URI[md5sum] = "9ef42650960fa71671dc5318841a27a9" -SRC_URI[sha256sum] = "1143defce62e391b241252ffdb6e5c1ded56cfe26d46ee81b796abe0ccc45df9" - -inherit autotools gettext pkgconfig - -PACKAGECONFIG[tiny] = "--enable-tiny," diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/nano/nano_4.4.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/nano/nano_4.4.bb new file mode 100644 index 00000000..18121be0 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/nano/nano_4.4.bb @@ -0,0 +1,20 @@ +DESCRIPTION = "GNU nano (Nano's ANOther editor, or \ +Not ANOther editor) is an enhanced clone of the \ +Pico text editor." +HOMEPAGE = "http://www.nano-editor.org/" +SECTION = "console/utils" +LICENSE = "GPLv3" +LIC_FILES_CHKSUM = "file://COPYING;md5=f27defe1e96c2e1ecd4e0c9be8967949" + +DEPENDS = "ncurses file" +RDEPENDS_${PN} = "ncurses-terminfo-base" + +PV_MAJOR = "${@d.getVar('PV').split('.')[0]}" + +SRC_URI = "https://nano-editor.org/dist/v${PV_MAJOR}/nano-${PV}.tar.xz" +SRC_URI[md5sum] = "9650dd3eb0adbab6aaa748a6f1398ccb" +SRC_URI[sha256sum] = "2af222e0354848ffaa3af31b5cd0a77917e9cb7742cd073d762f3c32f0f582c7" + +inherit autotools gettext pkgconfig + +PACKAGECONFIG[tiny] = "--enable-tiny," diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/numactl/numactl/0001-fix-NULL-pointer-problem.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/numactl/numactl/0001-fix-NULL-pointer-problem.patch deleted file mode 100644 index 0497613d..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/numactl/numactl/0001-fix-NULL-pointer-problem.patch +++ /dev/null @@ -1,35 +0,0 @@ -From 5c16beff9909b28f55f25f48ed7ddbf98d8b1d5c Mon Sep 17 00:00:00 2001 -From: Roy Li -Date: Wed, 18 Jul 2018 09:43:55 +0800 -Subject: [PATCH] fix NULL pointer problem - -return 0 if distance_table is NULL - -Upstream-Status: Pending - -read_distance_table() maybe return 0, but distance_table is not set, -if distance_table is used, and will lead to SEGFAULT - -Signed-off-by: Roy Li - -Signed-off-by: Changqing Li ---- - distance.c | 2 ++ - 1 file changed, 2 insertions(+) - -diff --git a/distance.c b/distance.c -index 8d472af..6a6e886 100644 ---- a/distance.c -+++ b/distance.c -@@ -113,6 +113,8 @@ int numa_distance(int a, int b) - int err = read_distance_table(); - if (err < 0) - return 0; -+ if(!distance_table) -+ return 0; - } - if ((unsigned)a >= distance_numnodes || (unsigned)b >= distance_numnodes) - return 0; --- -2.7.4 - diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/numactl/numactl/0001-numademo-fix-error-on-32bit-system.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/numactl/numactl/0001-numademo-fix-error-on-32bit-system.patch new file mode 100644 index 00000000..50610171 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/numactl/numactl/0001-numademo-fix-error-on-32bit-system.patch @@ -0,0 +1,100 @@ +From 68485f8516884377e54c623b0deff73f97321d96 Mon Sep 17 00:00:00 2001 +From: "Hongzhi.Song" +Date: Thu, 19 Sep 2019 04:32:31 -0400 +Subject: [PATCH] numademo: fix error on 32bit system + +Error Info on 32bit: +root@intel-x86:~# numademo -t -e 1M +Configured Nodes does not match available memory nodes + +That's because sizeof(long)=4Word, but sizeof(long long)=8Word +on 32bit. So (long long) assigning to (long) maybe cause overflow. + +long numa_node_size(int node, long *freep) +{ + ... + long sz = numa_node_size64_int(node, &f2); + ~^^~ + return sz; + ... +} +long long numa_node_size64(int node, long long *freep) +~^^ ^^~ +{ + ... +} + +Unify the return type of above functions. + +Upstream-Status: Accepted [next version is after 2.0.13 or 2.0.14] +[https://github.com/numactl/numactl/commit/a7c4bc790a191d3e42b63850b409c1a72b75a4e1] + Submitted [https://github.com/numactl/numactl/pull/79] +[The first patch was merged but has a error, then the second fix it.] + +Signed-off-by: Hongzhi.Song +--- + libnuma.c | 4 ++-- + numa.h | 2 +- + numademo.c | 2 +- + test/move_pages.c | 2 +- + 4 files changed, 5 insertions(+), 5 deletions(-) + +diff --git a/libnuma.c b/libnuma.c +index cac8851..8b5c6aa 100644 +--- a/libnuma.c ++++ b/libnuma.c +@@ -791,10 +791,10 @@ long long numa_node_size64(int node, long long *freep) + + make_internal_alias(numa_node_size64); + +-long numa_node_size(int node, long *freep) ++long long numa_node_size(int node, long long *freep) + { + long long f2; +- long sz = numa_node_size64_int(node, &f2); ++ long long sz = numa_node_size64_int(node, &f2); + if (freep) + *freep = f2; + return sz; +diff --git a/numa.h b/numa.h +index 3a8c543..268fb1d 100644 +--- a/numa.h ++++ b/numa.h +@@ -143,7 +143,7 @@ int numa_preferred(void); + + /* Return node size and free memory */ + long long numa_node_size64(int node, long long *freep); +-long numa_node_size(int node, long *freep); ++long long numa_node_size(int node, long long *freep); + + int numa_pagesize(void); + +diff --git a/numademo.c b/numademo.c +index a720db0..8c56da8 100644 +--- a/numademo.c ++++ b/numademo.c +@@ -301,7 +301,7 @@ int max_node, numnodes; + int get_node_list(void) + { + int a, got_nodes = 0; +- long free_node_sizes; ++ long long free_node_sizes; + + numnodes = numa_num_configured_nodes(); + node_to_use = (int *)malloc(numnodes * sizeof(int)); +diff --git a/test/move_pages.c b/test/move_pages.c +index d1d8436..f8ff25d 100644 +--- a/test/move_pages.c ++++ b/test/move_pages.c +@@ -26,7 +26,7 @@ int *node_to_use; + int get_node_list() + { + int a, got_nodes = 0, max_node, numnodes; +- long free_node_sizes; ++ long long free_node_sizes; + + numnodes = numa_num_configured_nodes(); + node_to_use = (int *)malloc(numnodes * sizeof(int)); +-- +2.23.0 + diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/numactl/numactl_git.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/numactl/numactl_git.bb index 279ac041..20b7fed8 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/numactl/numactl_git.bb +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/numactl/numactl_git.bb @@ -10,15 +10,15 @@ inherit autotools-brokensep ptest LIC_FILES_CHKSUM = "file://README.md;beginline=19;endline=32;md5=f8ff2391624f28e481299f3f677b21bb" -SRCREV = "841253d1313b01a968c380cae4f498f20c46e5aa" -PV = "2.0.12+git${SRCPV}" +SRCREV = "5d9f16722e3df49dc618a9f361bd482559695db7" +PV = "2.0.13+git${SRCPV}" SRC_URI = "git://github.com/numactl/numactl \ - file://0001-fix-NULL-pointer-problem.patch \ file://Fix-the-test-output-format.patch \ file://Makefile \ file://run-ptest \ file://0001-define-run-test-target.patch \ + file://0001-numademo-fix-error-on-32bit-system.patch \ " S = "${WORKDIR}/git" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/onig/files/configure.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/onig/files/configure.patch deleted file mode 100644 index 5fa700f1..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/onig/files/configure.patch +++ /dev/null @@ -1,13 +0,0 @@ -Index: onig-5.9.3/configure.in -=================================================================== ---- onig-5.9.3.orig/configure.in 2012-10-26 07:06:14.000000000 +0000 -+++ onig-5.9.3/configure.in 2014-07-18 08:02:52.701574484 +0000 -@@ -3,7 +3,7 @@ - - AC_CONFIG_MACRO_DIR([m4]) - --AM_INIT_AUTOMAKE -+AM_INIT_AUTOMAKE([foreign]) - AC_CONFIG_HEADER(config.h) - - diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/onig/files/do-not-use-system-headers.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/onig/files/do-not-use-system-headers.patch deleted file mode 100644 index b93602a2..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/onig/files/do-not-use-system-headers.patch +++ /dev/null @@ -1,44 +0,0 @@ -Author: Marcin Juszkiewicz - -When build on host with older eglibc (Ubuntu 12.04) build fails with: - -/tmp/OE/build/tmp-eglibc/sysroots/genericarmv8/usr/include/bits/predefs.h:23:3: error: #error "Never use directly; include instead." - -Signed-off-by: Marcin Juszkiewicz - -Upstream-Status: Inappropriate [embedded specific] - ---- - Makefile.am | 2 +- - sample/Makefile.am | 2 +- - 2 files changed, 2 insertions(+), 2 deletions(-) - ---- onig-5.9.3.orig/Makefile.am -+++ onig-5.9.3/Makefile.am -@@ -4,11 +4,11 @@ sampledir = $(top_srcdir)/sample - libname = libonig.la - - ACLOCAL_AMFLAGS = -I m4 - #AM_CFLAGS = -DNOT_RUBY - AM_CFLAGS = --INCLUDES = -I$(top_srcdir) -I$(includedir) -+INCLUDES = -I$(top_srcdir) - - SUBDIRS = . sample - - include_HEADERS = oniguruma.h oniggnu.h onigposix.h - lib_LTLIBRARIES = $(libname) ---- onig-5.9.3.orig/sample/Makefile.am -+++ onig-5.9.3/sample/Makefile.am -@@ -1,10 +1,10 @@ - noinst_PROGRAMS = encode listcap names posix simple sql syntax crnl - - libname = $(top_builddir)/libonig.la - LDADD = $(libname) --INCLUDES = -I$(top_srcdir) -I$(includedir) -+INCLUDES = -I$(top_srcdir) - - encode_SOURCES = encode.c - listcap_SOURCES = listcap.c - names_SOURCES = names.c - posix_SOURCES = posix.c diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/onig/onig/0001-build-don-t-link-against-host-system-libraries.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/onig/onig/0001-build-don-t-link-against-host-system-libraries.patch new file mode 100644 index 00000000..89159265 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/onig/onig/0001-build-don-t-link-against-host-system-libraries.patch @@ -0,0 +1,42 @@ +From 78103ecd18efcd0966531d8718f6e94dcb7a5abf Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Andr=C3=A9=20Draszik?= +Date: Mon, 6 Jan 2020 16:56:31 +0000 +Subject: [PATCH] build: don't link against (host) system libraries +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Upstream-Status: Inappropriate [OE specific] +Signed-off-by: André Draszik +--- + sample/Makefile.am | 1 - + test/Makefile.am | 1 - + 2 files changed, 2 deletions(-) + +diff --git a/sample/Makefile.am b/sample/Makefile.am +index 22a4989..e935bf0 100644 +--- a/sample/Makefile.am ++++ b/sample/Makefile.am +@@ -3,7 +3,6 @@ + lib_onig = ../src/libonig.la + LDADD = $(lib_onig) + +-AM_LDFLAGS = -L$(prefix)/lib + AM_CPPFLAGS = -I$(top_srcdir)/src + + if ENABLE_POSIX_API +diff --git a/test/Makefile.am b/test/Makefile.am +index 4d62568..b7a2105 100644 +--- a/test/Makefile.am ++++ b/test/Makefile.am +@@ -1,7 +1,6 @@ + ## Makefile.am for Oniguruma + lib_onig = ../src/libonig.la + +-AM_LDFLAGS = -L$(prefix)/lib + AM_CFLAGS = -Wall -Wno-invalid-source-encoding + AM_CPPFLAGS = -I$(top_srcdir)/src + +-- +2.23.0.rc1 + diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/onig/onig/0001-build-enable-serial-tests-automake-option-for-ptest.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/onig/onig/0001-build-enable-serial-tests-automake-option-for-ptest.patch new file mode 100644 index 00000000..587e5ac1 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/onig/onig/0001-build-enable-serial-tests-automake-option-for-ptest.patch @@ -0,0 +1,36 @@ +From 8bf8189ec4a0d7ee569f66feb0e590e9602c31b6 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Andr=C3=A9=20Draszik?= +Date: Mon, 6 Jan 2020 15:10:30 +0000 +Subject: [PATCH] build: enable serial-tests automake option (for ptest) +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +For ptest, we need to be able to compile the tests without +running them. + +Enabling the serial-tests automake option will add +buildtest-TESTS and runtest-TESTS makefile targets, the +former being what we want. + +Signed-off-by: André Draszik +--- + configure.ac | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/configure.ac b/configure.ac +index ac51e85..48e63ce 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -3,7 +3,7 @@ AC_INIT(onig, 6.9.4) + + AC_CONFIG_MACRO_DIR([m4]) + +-AM_INIT_AUTOMAKE([-Wno-portability]) ++AM_INIT_AUTOMAKE([-Wno-portability serial-tests]) + AC_CONFIG_HEADERS([src/config.h]) + + +-- +2.23.0.rc1 + diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/onig/onig/run-ptest b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/onig/onig/run-ptest new file mode 100755 index 00000000..2574d7ef --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/onig/onig/run-ptest @@ -0,0 +1,47 @@ +#!/bin/sh -eu + +my_cleanup() { + [ -n "${workdir:-}" ] && rm -rf "${workdir}" +} + +trap "my_cleanup" EXIT +for sig in INT TERM ; do + # We want sig to expand right here and now, as it's + # a loop variable, not when signalled. For $$ it + # doesn't matter. + # shellcheck disable=SC2064 + trap "my_cleanup ; trap - EXIT ; trap - ${sig} ; kill -s ${sig} $$" ${sig} +done + +workdir=$(mktemp -d -t onig.ptest.XXXXXX) +status="${workdir}/failed" +touch "${status}" + +find tests/ -perm -111 -type f -exec sh -c ' + workdir="${1}" + status="${2}" + t="${3}" + t_log="${workdir}/$(basename ${t}).log" + + res=0 + ./${t} > "${t_log}" 2>&1 \ + || res=$? + if [ $res -eq 0 ] ; then + echo "PASS: ${t}" + else + echo "FAIL: ${t}" + echo "$(basename ${t}): ${t_log}" >> "${status}" + fi + ' _ "${workdir}" "${status}" {} \; + +if [ $(stat -c '%s' "${status}") -ne 0 ] ; then + exec >&2 + while IFS=': ' read -r t t_log ; do + printf "\n=========================\n" + printf "ERROR: %s:\n" "${t}" + printf -- "-------------------------\n" + cat "${t_log}" + done < "${status}" +fi + +[ $(stat -c '%s' "${status}") -eq 0 ] diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/onig/onig_5.9.6.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/onig/onig_5.9.6.bb deleted file mode 100644 index abbaf98c..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/onig/onig_5.9.6.bb +++ /dev/null @@ -1,19 +0,0 @@ -DESCRIPTION = "Regular expressions library. The characteristics of this \ -library is that different character encoding for every regular expression \ -object can be specified." -HOMEPAGE = "https://web.archive.org/web/20150807014439/http://www.geocities.jp/kosako3/oniguruma/" -LICENSE = "BSD" -LIC_FILES_CHKSUM = "file://COPYING;md5=0d4861b5bc0c392a5aa90d9d76ebd86f" - -SRC_URI = "https://web.archive.org/web/20150807014439/http://www.geocities.jp/kosako3/oniguruma/archive/${BP}.tar.gz \ - file://do-not-use-system-headers.patch \ - file://configure.patch" - -SRC_URI[md5sum] = "d08f10ea5c94919780e6b7bed1ef9830" -SRC_URI[sha256sum] = "d5642010336a6f68b7f2e34b1f1cb14be333e4d95c2ac02b38c162caf44e47a7" - -BINCONFIG = "${bindir}/onig-config" - -inherit autotools binconfig-disabled - -BBCLASSEXTEND = "native" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/onig/onig_6.9.4.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/onig/onig_6.9.4.bb new file mode 100644 index 00000000..cfa86f04 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/onig/onig_6.9.4.bb @@ -0,0 +1,32 @@ +SUMMARY = "Regular expressions library" +DESCRIPTION = "Oniguruma is a modern and flexible regular expressions library. \ +It encompasses features from different regular expression \ +implementations that traditionally exist in different languages. \ +Character encoding can be specified per regular expression object." +HOMEPAGE = "https://github.com/kkos/oniguruma" +LICENSE = "BSD-2-Clause" +LIC_FILES_CHKSUM = "file://COPYING;md5=1ee043784bdce7503e619b2d1a85798b" + +SRC_URI = "\ + https://github.com/kkos/oniguruma/releases/download/v${PV}/${BP}.tar.gz \ + file://0001-build-don-t-link-against-host-system-libraries.patch \ + file://0001-build-enable-serial-tests-automake-option-for-ptest.patch \ + file://run-ptest \ +" + +SRC_URI[md5sum] = "a12d2fe997b789bd87cf63799c091879" +SRC_URI[sha256sum] = "4669d22ff7e0992a7e93e116161cac9c0949cd8960d1c562982026726f0e6d53" + +BINCONFIG = "${bindir}/onig-config" + +inherit autotools binconfig-disabled ptest + +BBCLASSEXTEND = "native" + +do_compile_ptest() { + oe_runmake -C test buildtest-TESTS +} + +do_install_ptest() { + install -Dm0755 -t ${D}${PTEST_PATH}/tests/ ${B}/test/.libs/* +} diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0001-GitHub-Issue-367.-Remove-references-to-deprecated-G_.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0001-GitHub-Issue-367.-Remove-references-to-deprecated-G_.patch new file mode 100644 index 00000000..6cb5dfcc --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0001-GitHub-Issue-367.-Remove-references-to-deprecated-G_.patch @@ -0,0 +1,94 @@ +From 6fb28085e867d7c3ef46577d9ff193a185693bcb Mon Sep 17 00:00:00 2001 +From: Oliver Kurth +Date: Mon, 30 Sep 2019 16:24:27 -0700 +Subject: [PATCH] GitHub Issue #367. Remove references to deprecated G_INLINE_FUNC. + +G_INLINE_FUNC was a work-around for compilers that didn't support +static inline. Change uses of it to static inline. + +Upstream-Status: Backport +[https://github.com/vmware/open-vm-tools/commit/89c0d444567eb525e8d083fb564c46d68e96660c] + +Signed-off-by: Khem Raj +--- + open-vm-tools/lib/include/vmware/tools/plugin.h | 2 +- + open-vm-tools/lib/include/vmware/tools/threadPool.h | 8 ++++---- + open-vm-tools/lib/include/vmware/tools/utils.h | 9 --------- + 3 files changed, 5 insertions(+), 14 deletions(-) + +diff --git a/open-vm-tools/lib/include/vmware/tools/plugin.h b/open-vm-tools/lib/include/vmware/tools/plugin.h +index f9acc6a2..deefd1f3 100644 +--- a/open-vm-tools/lib/include/vmware/tools/plugin.h ++++ b/open-vm-tools/lib/include/vmware/tools/plugin.h +@@ -290,7 +290,7 @@ typedef struct ToolsAppCtx { + * + * @return TRUE if COM is initialized when the function returns. + */ +-G_INLINE_FUNC gboolean ++static inline gboolean + ToolsCore_InitializeCOM(ToolsAppCtx *ctx) + { + if (!ctx->comInitialized) { +diff --git a/open-vm-tools/lib/include/vmware/tools/threadPool.h b/open-vm-tools/lib/include/vmware/tools/threadPool.h +index 3f2082b3..5880fbcf 100644 +--- a/open-vm-tools/lib/include/vmware/tools/threadPool.h ++++ b/open-vm-tools/lib/include/vmware/tools/threadPool.h +@@ -91,7 +91,7 @@ typedef struct ToolsCorePool { + ******************************************************************************* + */ + +-G_INLINE_FUNC ToolsCorePool * ++static inline ToolsCorePool * + ToolsCorePool_GetPool(ToolsAppCtx *ctx) + { + ToolsCorePool *pool = NULL; +@@ -123,7 +123,7 @@ ToolsCorePool_GetPool(ToolsAppCtx *ctx) + ******************************************************************************* + */ + +-G_INLINE_FUNC guint ++static inline guint + ToolsCorePool_SubmitTask(ToolsAppCtx *ctx, + ToolsCorePoolCb cb, + gpointer data, +@@ -153,7 +153,7 @@ ToolsCorePool_SubmitTask(ToolsAppCtx *ctx, + ******************************************************************************* + */ + +-G_INLINE_FUNC void ++static inline void + ToolsCorePool_CancelTask(ToolsAppCtx *ctx, + guint taskId) + { +@@ -197,7 +197,7 @@ ToolsCorePool_CancelTask(ToolsAppCtx *ctx, + ******************************************************************************* + */ + +-G_INLINE_FUNC gboolean ++static inline gboolean + ToolsCorePool_StartThread(ToolsAppCtx *ctx, + const gchar *threadName, + ToolsCorePoolCb cb, +diff --git a/open-vm-tools/lib/include/vmware/tools/utils.h b/open-vm-tools/lib/include/vmware/tools/utils.h +index f6574590..a3292d5c 100644 +--- a/open-vm-tools/lib/include/vmware/tools/utils.h ++++ b/open-vm-tools/lib/include/vmware/tools/utils.h +@@ -51,15 +51,6 @@ + # include + #endif + +- +-/* Work around a glib limitation: it doesn't set G_INLINE_FUNC on Win32. */ +-#if defined(G_PLATFORM_WIN32) +-# if defined(G_INLINE_FUNC) +-# undef G_INLINE_FUNC +-# endif +-# define G_INLINE_FUNC static __inline +-#endif +- + #ifndef ABS + # define ABS(x) (((x) >= 0) ? (x) : -(x)) + #endif +-- +2.23.0 + diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0001-Make-HgfsConvertFromNtTimeNsec-aware-of-64-bit-time_.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0001-Make-HgfsConvertFromNtTimeNsec-aware-of-64-bit-time_.patch new file mode 100644 index 00000000..61a681f1 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0001-Make-HgfsConvertFromNtTimeNsec-aware-of-64-bit-time_.patch @@ -0,0 +1,78 @@ +From caf80e220b055dbce259078be96e899dc78ec1d2 Mon Sep 17 00:00:00 2001 +From: Bartosz Brachaczek +Date: Tue, 12 Nov 2019 14:31:08 +0100 +Subject: [PATCH] Make HgfsConvertFromNtTimeNsec aware of 64-bit time_t on i386 + +I verified that this function behaves as expected on x86_64, i386 with +32-bit time_t, and i386 with 64-bit time_t for the following values of +ntTtime: + +UNIX_EPOCH-1, UNIX_EPOCH, UNIX_EPOCH+1, UNIX_S32_MAX-1, UNIX_S32_MAX, +UNIX_S32_MAX+1, UNIX_S32_MAX*2+1 + +I did not verify whether the use of Div643264 is optimal, performance +wise. + +Upstream-Status: Submitted [https://github.com/vmware/open-vm-tools/pull/387] +Signed-off-by: Khem Raj +--- + open-vm-tools/lib/hgfs/hgfsUtil.c | 34 +++++++++++++++++-------------- + 1 file changed, 19 insertions(+), 15 deletions(-) + +diff --git a/open-vm-tools/lib/hgfs/hgfsUtil.c b/open-vm-tools/lib/hgfs/hgfsUtil.c +index cc580ab8..49b10040 100644 +--- a/open-vm-tools/lib/hgfs/hgfsUtil.c ++++ b/open-vm-tools/lib/hgfs/hgfsUtil.c +@@ -110,23 +110,21 @@ HgfsConvertFromNtTimeNsec(struct timespec *unixTime, // OUT: Time in UNIX format + uint64 ntTime) // IN: Time in Windows NT format + { + #ifdef __i386__ +- uint32 sec; +- uint32 nsec; ++ uint64 sec64; ++ uint32 sec32, nsec; ++#endif + + ASSERT(unixTime); +- /* We assume that time_t is 32bit */ +- ASSERT_ON_COMPILE(sizeof (unixTime->tv_sec) == 4); + +- /* Cap NT time values that are outside of Unix time's range */ ++ if (sizeof (unixTime->tv_sec) == 4) { ++ /* Cap NT time values that are outside of Unix time's range */ + +- if (ntTime >= UNIX_S32_MAX) { +- unixTime->tv_sec = 0x7FFFFFFF; +- unixTime->tv_nsec = 0; +- return 1; ++ if (ntTime >= UNIX_S32_MAX) { ++ unixTime->tv_sec = 0x7FFFFFFF; ++ unixTime->tv_nsec = 0; ++ return 1; ++ } + } +-#else +- ASSERT(unixTime); +-#endif + + if (ntTime < UNIX_EPOCH) { + unixTime->tv_sec = 0; +@@ -135,9 +133,15 @@ HgfsConvertFromNtTimeNsec(struct timespec *unixTime, // OUT: Time in UNIX format + } + + #ifdef __i386__ +- Div643232(ntTime - UNIX_EPOCH, 10000000, &sec, &nsec); +- unixTime->tv_sec = sec; +- unixTime->tv_nsec = nsec * 100; ++ if (sizeof (unixTime->tv_sec) == 4) { ++ Div643232(ntTime - UNIX_EPOCH, 10000000, &sec32, &nsec); ++ unixTime->tv_sec = sec32; ++ unixTime->tv_nsec = nsec * 100; ++ } else { ++ Div643264(ntTime - UNIX_EPOCH, 10000000, &sec64, &nsec); ++ unixTime->tv_sec = sec64; ++ unixTime->tv_nsec = nsec * 100; ++ } + #else + unixTime->tv_sec = (ntTime - UNIX_EPOCH) / 10000000; + unixTime->tv_nsec = ((ntTime - UNIX_EPOCH) % 10000000) * 100; diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0001-configure.ac-don-t-use-dnet-config.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0001-configure.ac-don-t-use-dnet-config.patch index 0736572b..a711f5e5 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0001-configure.ac-don-t-use-dnet-config.patch +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0001-configure.ac-don-t-use-dnet-config.patch @@ -14,11 +14,9 @@ Signed-off-by: Martin Kelly open-vm-tools/configure.ac | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) -diff --git a/open-vm-tools/configure.ac b/open-vm-tools/configure.ac -index 325a39f5..713ea683 100644 --- a/open-vm-tools/configure.ac +++ b/open-vm-tools/configure.ac -@@ -949,7 +949,7 @@ if test "$with_dnet" = "yes"; then +@@ -937,7 +937,7 @@ if test "$with_dnet" = "yes"; then AC_VMW_CHECK_LIB([dnet], [DNET], [], @@ -27,11 +25,11 @@ index 325a39f5..713ea683 100644 [], [dnet.h], [intf_open], -@@ -959,7 +959,7 @@ if test "$with_dnet" = "yes"; then +@@ -947,7 +947,7 @@ if test "$with_dnet" = "yes"; then if test $have_dnet = "no"; then AC_MSG_ERROR( -- [dnet-config was not found on your PATH. Please configure without dnet (using --without-dnet) or install dnet - http://libdnet.sourceforge.net]) +- [dnet-config was not found on your PATH. Please configure without dnet or install dnet - http://libdnet.sourceforge.net]) + [dnet was not found. Please configure without dnet (using --without-dnet) or install dnet - http://libdnet.sourceforge.net]) fi fi diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0001-hgfsmounter-Makefile.am-support-usrmerge.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0001-hgfsmounter-Makefile.am-support-usrmerge.patch new file mode 100644 index 00000000..82443ee6 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0001-hgfsmounter-Makefile.am-support-usrmerge.patch @@ -0,0 +1,33 @@ +From 33798f3e484ebd3470e9da791b73b4b90ba12bc3 Mon Sep 17 00:00:00 2001 +From: Yi Zhao +Date: Tue, 14 Jan 2020 15:04:03 +0800 +Subject: [PATCH] hgfsmounter/Makefile.am: support usrmerge + +There is a do_package error when enable usrmerge feature due to the +hardcoded sbin directory. Remove this piece of code because we already +create the symbolic link in do_install. + +Upstream-Status: Inappropriate [oe-specific] + +Signed-off-by: Yi Zhao +--- + open-vm-tools/hgfsmounter/Makefile.am | 3 --- + 1 file changed, 3 deletions(-) + +diff --git a/open-vm-tools/hgfsmounter/Makefile.am b/open-vm-tools/hgfsmounter/Makefile.am +index 7c1ba1a..58bd3f8 100644 +--- a/open-vm-tools/hgfsmounter/Makefile.am ++++ b/open-vm-tools/hgfsmounter/Makefile.am +@@ -39,9 +39,6 @@ uninstall-hook: + rm -f $(DESTDIR)$(sbindir)/mount_vmhgfs + else + install-exec-hook: +- -$(MKDIR_P) $(DESTDIR)/sbin +- -$(LN_S) $(DESTDIR)$(sbindir)/mount.vmhgfs \ +- $(DESTDIR)/sbin/mount.vmhgfs &> /dev/null + uninstall-hook: + rm -f $(DESTDIR)/sbin/mount.vmhgfs + endif !FREEBSD +-- +2.7.4 + diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0001-utilBacktrace-Ignore-Warray-bounds.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0001-utilBacktrace-Ignore-Warray-bounds.patch new file mode 100644 index 00000000..95664e85 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0001-utilBacktrace-Ignore-Warray-bounds.patch @@ -0,0 +1,33 @@ +From ac3f93ea087d3a5461fe57fe021d0fe9a959e13c Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Wed, 25 Dec 2019 15:25:02 -0800 +Subject: [PATCH] utilBacktrace: Ignore -Warray-bounds + +This is new warning with gcc10, until its fixed ignore it like gcc<10 +did + +Upstream-Status: Pending +Signed-off-by: Khem Raj +--- + open-vm-tools/lib/user/utilBacktrace.c | 5 +++++ + 1 file changed, 5 insertions(+) + +diff --git a/open-vm-tools/lib/user/utilBacktrace.c b/open-vm-tools/lib/user/utilBacktrace.c +index b72340ad..97ca53f2 100644 +--- a/open-vm-tools/lib/user/utilBacktrace.c ++++ b/open-vm-tools/lib/user/utilBacktrace.c +@@ -517,6 +517,11 @@ Util_BacktraceWithFunc(int bugNr, // IN: + } else { + outFunc(outFuncData, "Backtrace for bugNr=%d\n",bugNr); + } ++#pragma GCC diagnostic push ++#pragma GCC diagnostic ignored "-Warray-bounds" ++ + Util_BacktraceFromPointerWithFunc(&x[-2], outFunc, outFuncData); ++#pragma GCC diagnostic pop + #endif + } ++ +-- +2.24.1 + diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0002-hgfsServerLinux-Consider-64bit-time_t-possibility.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0002-hgfsServerLinux-Consider-64bit-time_t-possibility.patch new file mode 100644 index 00000000..0f64eabc --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0002-hgfsServerLinux-Consider-64bit-time_t-possibility.patch @@ -0,0 +1,41 @@ +From fe56b67a2915a8632ea30604c14241f335dd3c15 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Tue, 12 Nov 2019 10:49:46 -0800 +Subject: [PATCH] hgfsServerLinux: Consider 64bit time_t possibility + +Upstream-Status: Pending +Signed-off-by: Khem Raj +--- + .../lib/hgfsServer/hgfsServerLinux.c | 19 +++++-------------- + 1 file changed, 5 insertions(+), 14 deletions(-) + +diff --git a/open-vm-tools/lib/hgfsServer/hgfsServerLinux.c b/open-vm-tools/lib/hgfsServer/hgfsServerLinux.c +index 03175623..554da67f 100644 +--- a/open-vm-tools/lib/hgfsServer/hgfsServerLinux.c ++++ b/open-vm-tools/lib/hgfsServer/hgfsServerLinux.c +@@ -2561,20 +2561,11 @@ HgfsStatToFileAttr(struct stat *stats, // IN: stat information + LOG(4, ("%s: done, permissions %o%o%o%o, size %"FMT64"u\n", __FUNCTION__, + attr->specialPerms, attr->ownerPerms, attr->groupPerms, + attr->otherPerms, attr->size)); +-#ifdef __FreeBSD__ +-# if !defined(VM_X86_64) && __FreeBSD_version >= 500043 +-# define FMTTIMET "" +-# else +-# define FMTTIMET "l" +-# endif +-#else +-# define FMTTIMET "l" +-#endif +- LOG(4, ("access: %"FMTTIMET"d/%"FMT64"u \nwrite: %"FMTTIMET"d/%"FMT64"u \n" +- "attr: %"FMTTIMET"d/%"FMT64"u\n", +- stats->st_atime, attr->accessTime, stats->st_mtime, attr->writeTime, +- stats->st_ctime, attr->attrChangeTime)); +-#undef FMTTIMET ++ LOG(4, ("access: %jd/%"FMT64"u \nwrite: %jd/%"FMT64"u \n" ++ "attr: %jd/%"FMT64"u\n", ++ (intmax_t)stats->st_atime, attr->accessTime, ++ (intmax_t)stats->st_mtime, attr->writeTime, ++ (intmax_t)stats->st_ctime, attr->attrChangeTime)); + + attr->userId = stats->st_uid; + attr->groupId = stats->st_gid; diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0009-Rename-poll.h-to-vm_poll.h.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0009-Rename-poll.h-to-vm_poll.h.patch index 5c1aa7c4..9cf54f6f 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0009-Rename-poll.h-to-vm_poll.h.patch +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0009-Rename-poll.h-to-vm_poll.h.patch @@ -19,8 +19,6 @@ Signed-off-by: Khem Raj 7 files changed, 7 insertions(+), 7 deletions(-) rename open-vm-tools/lib/include/{poll.h => vm_poll.h} (99%) -diff --git a/open-vm-tools/lib/asyncsocket/asyncsocket.c b/open-vm-tools/lib/asyncsocket/asyncsocket.c -index b41aa29d..8691309d 100644 --- a/open-vm-tools/lib/asyncsocket/asyncsocket.c +++ b/open-vm-tools/lib/asyncsocket/asyncsocket.c @@ -86,7 +86,7 @@ @@ -32,8 +30,6 @@ index b41aa29d..8691309d 100644 #include "log.h" #include "err.h" #include "hostinfo.h" -diff --git a/open-vm-tools/lib/hgfsServer/hgfsServer.c b/open-vm-tools/lib/hgfsServer/hgfsServer.c -index 7ea3b7f4..740c4fed 100644 --- a/open-vm-tools/lib/hgfsServer/hgfsServer.c +++ b/open-vm-tools/lib/hgfsServer/hgfsServer.c @@ -48,7 +48,7 @@ @@ -45,8 +41,6 @@ index 7ea3b7f4..740c4fed 100644 #include "mutexRankLib.h" #include "vm_basic_asm.h" #include "unicodeOperations.h" -diff --git a/open-vm-tools/lib/include/asyncsocket.h b/open-vm-tools/lib/include/asyncsocket.h -index ec9b45aa..dc91e738 100644 --- a/open-vm-tools/lib/include/asyncsocket.h +++ b/open-vm-tools/lib/include/asyncsocket.h @@ -164,7 +164,7 @@ typedef struct AsyncSocket AsyncSocket; @@ -58,8 +52,6 @@ index ec9b45aa..dc91e738 100644 struct IVmdbPoll; typedef struct AsyncSocketPollParams { int flags; /* Default 0, only POLL_FLAG_NO_BULL is valid */ -diff --git a/open-vm-tools/lib/include/pollImpl.h b/open-vm-tools/lib/include/pollImpl.h -index 46442e55..8bc66997 100644 --- a/open-vm-tools/lib/include/pollImpl.h +++ b/open-vm-tools/lib/include/pollImpl.h @@ -44,7 +44,7 @@ @@ -71,24 +63,672 @@ index 46442e55..8bc66997 100644 #include "vm_basic_asm.h" #if defined(__cplusplus) -diff --git a/open-vm-tools/lib/include/poll.h b/open-vm-tools/lib/include/vm_poll.h -similarity index 99% -rename from open-vm-tools/lib/include/poll.h -rename to open-vm-tools/lib/include/vm_poll.h -index 6acd4f35..fbc88494 100644 --- a/open-vm-tools/lib/include/poll.h -+++ b/open-vm-tools/lib/include/vm_poll.h -@@ -60,7 +60,7 @@ extern "C" { - #if !defined(TARGET_OS_IPHONE) || TARGET_OS_IPHONE == 0 - #include - #endif ++++ /dev/null +@@ -1,330 +0,0 @@ +-/********************************************************* +- * Copyright (C) 1998-2018 VMware, Inc. All rights reserved. +- * +- * This program is free software; you can redistribute it and/or modify it +- * under the terms of the GNU Lesser General Public License as published +- * by the Free Software Foundation version 2.1 and no later version. +- * +- * This program is distributed in the hope that it will be useful, but +- * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY +- * or FITNESS FOR A PARTICULAR PURPOSE. See the Lesser GNU General Public +- * License for more details. +- * +- * You should have received a copy of the GNU Lesser General Public License +- * along with this program; if not, write to the Free Software Foundation, Inc., +- * 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. +- * +- *********************************************************/ +- +-/********************************************************* +- * The contents of this file are subject to the terms of the Common +- * Development and Distribution License (the "License") version 1.0 +- * and no later version. You may not use this file except in +- * compliance with the License. +- * +- * You can obtain a copy of the License at +- * http://www.opensource.org/licenses/cddl1.php +- * +- * See the License for the specific language governing permissions +- * and limitations under the License. +- * +- *********************************************************/ +- +- +-#ifndef _POLL_H_ +-#define _POLL_H_ +- +-#define INCLUDE_ALLOW_USERLEVEL +-#define INCLUDE_ALLOW_VMCORE +-#include "includeCheck.h" +- +-#include "vm_basic_types.h" +-#include "vm_basic_defs.h" +-#include "vmware.h" +-#include "userlock.h" +- +-#if defined(__cplusplus) +-extern "C" { +-#endif +- +-#ifdef _WIN32 +-#define HZ 100 +-#elif defined linux +-#include +-#elif __APPLE__ +-#include +-/* +- * Old SDKs don't define TARGET_OS_IPHONE at all. +- * New ones define it to 0 on Mac OS X, 1 on iOS. +- */ +-#if !defined(TARGET_OS_IPHONE) || TARGET_OS_IPHONE == 0 +-#include +-#endif -#include +-#define HZ 100 +-#endif +-#ifdef __ANDROID__ +-/* +- * of android should be included, but its name is same +- * with this file. So its content is put here to avoid conflict. +- */ +-#include +-#define HZ 100 +-typedef unsigned int nfds_t; +-int poll(struct pollfd *, nfds_t, long); +-#endif +- +- +-/* +- * Poll event types: each type has a different reason for firing, +- * or condition that must be met before firing. +- */ +- +-typedef enum { +- /* +- * Actual Poll queue types against which you can register callbacks. +- */ +- POLL_VIRTUALREALTIME = -1, /* Negative because it doesn't have its own Q */ +- POLL_VTIME = 0, +- POLL_REALTIME, +- POLL_DEVICE, +- POLL_MAIN_LOOP, +- POLL_NUM_QUEUES +-} PollEventType; +- +- +-/* +- * Classes of events +- * +- * These are the predefined classes. More can be declared +- * with Poll_AllocClass(). +- */ +- +-typedef enum PollClass { +- POLL_CLASS_MAIN, +- POLL_CLASS_PAUSE, +- POLL_CLASS_IPC, +- POLL_CLASS_CPT, +- POLL_CLASS_MKS, +- POLL_FIXED_CLASSES, +- POLL_DEFAULT_FIXED_CLASSES, +- /* Size enum to maximum */ +- POLL_MAX_CLASSES = 31, +-} PollClass; +- +-/* +- * Do not use; Special pseudo private poll class supported by +- * PollDefault only +- */ +-#define POLL_DEFAULT_CLASS_NET POLL_FIXED_CLASSES +-#define POLL_DEFAULT_CS_NET PollClassSet_Singleton(POLL_DEFAULT_CLASS_NET) +- +-/* +- * Each callback is registered in a set of classes +- */ +- +-typedef struct PollClassSet { +- uintptr_t bits; +-} PollClassSet; +- +-/* An empty PollClassSet. */ +-static INLINE PollClassSet +-PollClassSet_Empty(void) +-{ +- PollClassSet set = { 0 }; +- return set; +-} +- +-/* A PollClassSet with the single member. */ +-static INLINE PollClassSet +-PollClassSet_Singleton(PollClass c) +-{ +- PollClassSet s = PollClassSet_Empty(); +- +- ASSERT_ON_COMPILE(POLL_MAX_CLASSES < sizeof s.bits * 8); +- ASSERT(c < POLL_MAX_CLASSES); +- +- s.bits = CONST3264U(1) << c; +- return s; +-} +- +-/* Combine two PollClassSets. */ +-static INLINE PollClassSet +-PollClassSet_Union(PollClassSet lhs, PollClassSet rhs) +-{ +- PollClassSet set; +- set.bits = lhs.bits | rhs.bits; +- return set; +-} +- +-/* Add single class to PollClassSet. */ +-static INLINE PollClassSet +-PollClassSet_Include(PollClassSet set, PollClass c) +-{ +- return PollClassSet_Union(set, PollClassSet_Singleton(c)); +-} +- +- +-#define POLL_CS_MAIN PollClassSet_Singleton(POLL_CLASS_MAIN) +-#define POLL_CS_PAUSE PollClassSet_Union(POLL_CS_MAIN, \ +- PollClassSet_Singleton(POLL_CLASS_PAUSE)) +-#define POLL_CS_CPT PollClassSet_Union(POLL_CS_PAUSE, \ +- PollClassSet_Singleton(POLL_CLASS_CPT)) +-#define POLL_CS_IPC PollClassSet_Union(POLL_CS_CPT, \ +- PollClassSet_Singleton(POLL_CLASS_IPC)) +-#define POLL_CS_VMDB POLL_CS_PAUSE /* POLL_CLASS_VMDB is retired */ +-#define POLL_CS_MKS PollClassSet_Singleton(POLL_CLASS_MKS) +-/* +- * DANGER. You don't need POLL_CS_ALWAYS. Really. So don't use it. +- */ +-#define POLL_CS_ALWAYS PollClassSet_Union(POLL_CS_CPT, POLL_CS_IPC) +- +-/* +- * Poll class-set taxonomy: +- * POLL_CS_MAIN +- * - Unless you NEED another class, use POLL_CS_MAIN. +- * POLL_CS_PAUSE +- * - For callbacks that must occur even if the guest is paused. +- * Most VMDB or Foundry commands are in this category. +- * POLL_CS_CPT +- * - Only for callbacks which can trigger intermediate Checkpoint +- * transitions. +- * The ONLY such callback is Migrate. +- * POLL_CS_IPC +- * - Only for callbacks which can contain Msg_(Post|Hint|Question) +- * responses, and for signal handlers (why)? +- * Vigor, VMDB, and Foundry can contain Msg_* responses. +- * POLL_CS_MKS +- * - Callback runs in MKS thread. +- * POLL_CS_ALWAYS +- * - Only for events that must be processed immediately. +- * The ONLY such callback is OvhdMemVmxSizeCheck. +- */ +- +- +-/* +- * Poll_Callback flags +- */ +- +-#define POLL_FLAG_PERIODIC 0x01 // keep after firing +-#define POLL_FLAG_REMOVE_AT_POWEROFF 0x02 // self-explanatory +-#define POLL_FLAG_READ 0x04 // device is ready for reading +-#define POLL_FLAG_WRITE 0x08 // device is ready for writing +-#define POLL_FLAG_SOCKET 0x10 // device is a Windows socket +-#define POLL_FLAG_NO_BULL 0x20 // callback does its own locking +-#define POLL_FLAG_WINSOCK 0x40 // Winsock style write events +-#define POLL_FLAG_FD 0x80 // device is a Windows file descriptor. +-#define POLL_FLAG_ACCEPT_INVALID_FDS 0x100 // For broken 3rd party libs, e.g. curl +-#define POLL_FLAG_THUNK_TO_WND 0x200 // thunk callback to window message loop +- +- +-typedef void (*PollerFunction)(void *clientData); +-typedef void (*PollerFireWrapper)(PollerFunction func, +- void *funcData, +- void *wrapperData); +-typedef Bool (*PollerErrorFn)(const char *errorStr); +- +-/* +- * Initialisers: +- * +- * For the sake of convenience, we declare the initialisers +- * for custom implmentations here, even though the actual +- * implementations are distinct from the core poll code. +- */ +- +-typedef struct PollOptions { +- Bool locked; // Use internal MXUser for locking +- Bool allowFullQueue; // Don't assert when device event queue is full. +- VThreadID windowsMsgThread; // thread that processes Windows messages +- PollerFireWrapper fireWrapperFn; // optional; may be useful for stats +- void *fireWrapperData; // optional +- PollerErrorFn errorFn; // optional; called upon unrecoverable error +-} PollOptions; +- +- +-void Poll_InitDefault(void); +-void Poll_InitDefaultEx(const PollOptions *opts); +-void Poll_InitGtk(void); // On top of glib for Linux +-void Poll_InitCF(void); // On top of CoreFoundation for OSX +- +- +-/* +- * Functions +- */ +-int Poll_SocketPair(Bool vmci, Bool stream, int fds[2]); +-void Poll_Loop(Bool loop, Bool *exit, PollClass c); +-void Poll_LoopTimeout(Bool loop, Bool *exit, PollClass c, int timeout); +-Bool Poll_LockingEnabled(void); +-void Poll_Exit(void); +- +- +-/* +- * Poll_Callback adds a callback regardless of whether an identical one exists. +- * The exception to this rule is POLL_DEVICE callbacks: there is a maximum of +- * one read and one write callback per fd. +- * +- * Poll_CallbackRemove removes one callback. If there are multiple identical +- * callbacks, which one is removed is an implementation detail. Note that in +- * the case of POLL_DEVICE and POLL_REALTIME callbacks, the fd/delay used to +- * create the callback is not specified when removing, so all callbacks +- * of those types with the same flags, function, and clientData are considered +- * "identical" even if their fd/delay differed. +- */ +- +-VMwareStatus Poll_Callback(PollClassSet classSet, +- int flags, +- PollerFunction f, +- void *clientData, +- PollEventType type, +- PollDevHandle info, // fd/microsec delay +- MXUserRecLock *lck); +-Bool Poll_CallbackRemove(PollClassSet classSet, +- int flags, +- PollerFunction f, +- void *clientData, +- PollEventType type); +-Bool Poll_CallbackRemoveOneByCB(PollClassSet classSet, +- int flags, +- PollerFunction f, +- PollEventType type, +- void **clientData); +- +-void Poll_NotifyChange(PollClassSet classSet); +- +-/* +- * Wrappers for Poll_Callback and Poll_CallbackRemove that present +- * simpler subsets of those interfaces. +- */ +- +-VMwareStatus Poll_CB_Device(PollerFunction f, +- void *clientData, +- PollDevHandle device, +- Bool periodic); +- +-Bool Poll_CB_DeviceRemove(PollerFunction f, +- void *clientData, +- Bool periodic); +- +- +-VMwareStatus Poll_CB_RTime(PollerFunction f, +- void *clientData, +- int64 delay, // microseconds +- Bool periodic, +- MXUserRecLock *lock); +- +-Bool Poll_CB_RTimeRemove(PollerFunction f, +- void *clientData, +- Bool periodic); +- +- +-#ifdef _WIN32 +-void Poll_SetPumpsWindowsMessages(Bool pumps); +-void Poll_SetWindowMessageRecipient(HWND hWnd, UINT msg, Bool alwaysThunk); +-Bool Poll_FireWndCallback(void *lparam); +-#endif +- +-#if defined(__cplusplus) +-} // extern "C" +-#endif +- +-#endif // _POLL_H_ +--- /dev/null ++++ b/open-vm-tools/lib/include/vm_poll.h +@@ -0,0 +1,330 @@ ++/********************************************************* ++ * Copyright (C) 1998-2018 VMware, Inc. All rights reserved. ++ * ++ * This program is free software; you can redistribute it and/or modify it ++ * under the terms of the GNU Lesser General Public License as published ++ * by the Free Software Foundation version 2.1 and no later version. ++ * ++ * This program is distributed in the hope that it will be useful, but ++ * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY ++ * or FITNESS FOR A PARTICULAR PURPOSE. See the Lesser GNU General Public ++ * License for more details. ++ * ++ * You should have received a copy of the GNU Lesser General Public License ++ * along with this program; if not, write to the Free Software Foundation, Inc., ++ * 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. ++ * ++ *********************************************************/ ++ ++/********************************************************* ++ * The contents of this file are subject to the terms of the Common ++ * Development and Distribution License (the "License") version 1.0 ++ * and no later version. You may not use this file except in ++ * compliance with the License. ++ * ++ * You can obtain a copy of the License at ++ * http://www.opensource.org/licenses/cddl1.php ++ * ++ * See the License for the specific language governing permissions ++ * and limitations under the License. ++ * ++ *********************************************************/ ++ ++ ++#ifndef _POLL_H_ ++#define _POLL_H_ ++ ++#define INCLUDE_ALLOW_USERLEVEL ++#define INCLUDE_ALLOW_VMCORE ++#include "includeCheck.h" ++ ++#include "vm_basic_types.h" ++#include "vm_basic_defs.h" ++#include "vmware.h" ++#include "userlock.h" ++ ++#if defined(__cplusplus) ++extern "C" { ++#endif ++ ++#ifdef _WIN32 ++#define HZ 100 ++#elif defined linux ++#include ++#elif __APPLE__ ++#include ++/* ++ * Old SDKs don't define TARGET_OS_IPHONE at all. ++ * New ones define it to 0 on Mac OS X, 1 on iOS. ++ */ ++#if !defined(TARGET_OS_IPHONE) || TARGET_OS_IPHONE == 0 ++#include ++#endif +#include - #define HZ 100 - #endif - #ifdef __ANDROID__ -diff --git a/open-vm-tools/lib/rpcIn/rpcin.c b/open-vm-tools/lib/rpcIn/rpcin.c -index 8eea7d86..c48f5be2 100644 ++#define HZ 100 ++#endif ++#ifdef __ANDROID__ ++/* ++ * of android should be included, but its name is same ++ * with this file. So its content is put here to avoid conflict. ++ */ ++#include ++#define HZ 100 ++typedef unsigned int nfds_t; ++int poll(struct pollfd *, nfds_t, long); ++#endif ++ ++ ++/* ++ * Poll event types: each type has a different reason for firing, ++ * or condition that must be met before firing. ++ */ ++ ++typedef enum { ++ /* ++ * Actual Poll queue types against which you can register callbacks. ++ */ ++ POLL_VIRTUALREALTIME = -1, /* Negative because it doesn't have its own Q */ ++ POLL_VTIME = 0, ++ POLL_REALTIME, ++ POLL_DEVICE, ++ POLL_MAIN_LOOP, ++ POLL_NUM_QUEUES ++} PollEventType; ++ ++ ++/* ++ * Classes of events ++ * ++ * These are the predefined classes. More can be declared ++ * with Poll_AllocClass(). ++ */ ++ ++typedef enum PollClass { ++ POLL_CLASS_MAIN, ++ POLL_CLASS_PAUSE, ++ POLL_CLASS_IPC, ++ POLL_CLASS_CPT, ++ POLL_CLASS_MKS, ++ POLL_FIXED_CLASSES, ++ POLL_DEFAULT_FIXED_CLASSES, ++ /* Size enum to maximum */ ++ POLL_MAX_CLASSES = 31, ++} PollClass; ++ ++/* ++ * Do not use; Special pseudo private poll class supported by ++ * PollDefault only ++ */ ++#define POLL_DEFAULT_CLASS_NET POLL_FIXED_CLASSES ++#define POLL_DEFAULT_CS_NET PollClassSet_Singleton(POLL_DEFAULT_CLASS_NET) ++ ++/* ++ * Each callback is registered in a set of classes ++ */ ++ ++typedef struct PollClassSet { ++ uintptr_t bits; ++} PollClassSet; ++ ++/* An empty PollClassSet. */ ++static INLINE PollClassSet ++PollClassSet_Empty(void) ++{ ++ PollClassSet set = { 0 }; ++ return set; ++} ++ ++/* A PollClassSet with the single member. */ ++static INLINE PollClassSet ++PollClassSet_Singleton(PollClass c) ++{ ++ PollClassSet s = PollClassSet_Empty(); ++ ++ ASSERT_ON_COMPILE(POLL_MAX_CLASSES < sizeof s.bits * 8); ++ ASSERT(c < POLL_MAX_CLASSES); ++ ++ s.bits = CONST3264U(1) << c; ++ return s; ++} ++ ++/* Combine two PollClassSets. */ ++static INLINE PollClassSet ++PollClassSet_Union(PollClassSet lhs, PollClassSet rhs) ++{ ++ PollClassSet set; ++ set.bits = lhs.bits | rhs.bits; ++ return set; ++} ++ ++/* Add single class to PollClassSet. */ ++static INLINE PollClassSet ++PollClassSet_Include(PollClassSet set, PollClass c) ++{ ++ return PollClassSet_Union(set, PollClassSet_Singleton(c)); ++} ++ ++ ++#define POLL_CS_MAIN PollClassSet_Singleton(POLL_CLASS_MAIN) ++#define POLL_CS_PAUSE PollClassSet_Union(POLL_CS_MAIN, \ ++ PollClassSet_Singleton(POLL_CLASS_PAUSE)) ++#define POLL_CS_CPT PollClassSet_Union(POLL_CS_PAUSE, \ ++ PollClassSet_Singleton(POLL_CLASS_CPT)) ++#define POLL_CS_IPC PollClassSet_Union(POLL_CS_CPT, \ ++ PollClassSet_Singleton(POLL_CLASS_IPC)) ++#define POLL_CS_VMDB POLL_CS_PAUSE /* POLL_CLASS_VMDB is retired */ ++#define POLL_CS_MKS PollClassSet_Singleton(POLL_CLASS_MKS) ++/* ++ * DANGER. You don't need POLL_CS_ALWAYS. Really. So don't use it. ++ */ ++#define POLL_CS_ALWAYS PollClassSet_Union(POLL_CS_CPT, POLL_CS_IPC) ++ ++/* ++ * Poll class-set taxonomy: ++ * POLL_CS_MAIN ++ * - Unless you NEED another class, use POLL_CS_MAIN. ++ * POLL_CS_PAUSE ++ * - For callbacks that must occur even if the guest is paused. ++ * Most VMDB or Foundry commands are in this category. ++ * POLL_CS_CPT ++ * - Only for callbacks which can trigger intermediate Checkpoint ++ * transitions. ++ * The ONLY such callback is Migrate. ++ * POLL_CS_IPC ++ * - Only for callbacks which can contain Msg_(Post|Hint|Question) ++ * responses, and for signal handlers (why)? ++ * Vigor, VMDB, and Foundry can contain Msg_* responses. ++ * POLL_CS_MKS ++ * - Callback runs in MKS thread. ++ * POLL_CS_ALWAYS ++ * - Only for events that must be processed immediately. ++ * The ONLY such callback is OvhdMemVmxSizeCheck. ++ */ ++ ++ ++/* ++ * Poll_Callback flags ++ */ ++ ++#define POLL_FLAG_PERIODIC 0x01 // keep after firing ++#define POLL_FLAG_REMOVE_AT_POWEROFF 0x02 // self-explanatory ++#define POLL_FLAG_READ 0x04 // device is ready for reading ++#define POLL_FLAG_WRITE 0x08 // device is ready for writing ++#define POLL_FLAG_SOCKET 0x10 // device is a Windows socket ++#define POLL_FLAG_NO_BULL 0x20 // callback does its own locking ++#define POLL_FLAG_WINSOCK 0x40 // Winsock style write events ++#define POLL_FLAG_FD 0x80 // device is a Windows file descriptor. ++#define POLL_FLAG_ACCEPT_INVALID_FDS 0x100 // For broken 3rd party libs, e.g. curl ++#define POLL_FLAG_THUNK_TO_WND 0x200 // thunk callback to window message loop ++ ++ ++typedef void (*PollerFunction)(void *clientData); ++typedef void (*PollerFireWrapper)(PollerFunction func, ++ void *funcData, ++ void *wrapperData); ++typedef Bool (*PollerErrorFn)(const char *errorStr); ++ ++/* ++ * Initialisers: ++ * ++ * For the sake of convenience, we declare the initialisers ++ * for custom implmentations here, even though the actual ++ * implementations are distinct from the core poll code. ++ */ ++ ++typedef struct PollOptions { ++ Bool locked; // Use internal MXUser for locking ++ Bool allowFullQueue; // Don't assert when device event queue is full. ++ VThreadID windowsMsgThread; // thread that processes Windows messages ++ PollerFireWrapper fireWrapperFn; // optional; may be useful for stats ++ void *fireWrapperData; // optional ++ PollerErrorFn errorFn; // optional; called upon unrecoverable error ++} PollOptions; ++ ++ ++void Poll_InitDefault(void); ++void Poll_InitDefaultEx(const PollOptions *opts); ++void Poll_InitGtk(void); // On top of glib for Linux ++void Poll_InitCF(void); // On top of CoreFoundation for OSX ++ ++ ++/* ++ * Functions ++ */ ++int Poll_SocketPair(Bool vmci, Bool stream, int fds[2]); ++void Poll_Loop(Bool loop, Bool *exit, PollClass c); ++void Poll_LoopTimeout(Bool loop, Bool *exit, PollClass c, int timeout); ++Bool Poll_LockingEnabled(void); ++void Poll_Exit(void); ++ ++ ++/* ++ * Poll_Callback adds a callback regardless of whether an identical one exists. ++ * The exception to this rule is POLL_DEVICE callbacks: there is a maximum of ++ * one read and one write callback per fd. ++ * ++ * Poll_CallbackRemove removes one callback. If there are multiple identical ++ * callbacks, which one is removed is an implementation detail. Note that in ++ * the case of POLL_DEVICE and POLL_REALTIME callbacks, the fd/delay used to ++ * create the callback is not specified when removing, so all callbacks ++ * of those types with the same flags, function, and clientData are considered ++ * "identical" even if their fd/delay differed. ++ */ ++ ++VMwareStatus Poll_Callback(PollClassSet classSet, ++ int flags, ++ PollerFunction f, ++ void *clientData, ++ PollEventType type, ++ PollDevHandle info, // fd/microsec delay ++ MXUserRecLock *lck); ++Bool Poll_CallbackRemove(PollClassSet classSet, ++ int flags, ++ PollerFunction f, ++ void *clientData, ++ PollEventType type); ++Bool Poll_CallbackRemoveOneByCB(PollClassSet classSet, ++ int flags, ++ PollerFunction f, ++ PollEventType type, ++ void **clientData); ++ ++void Poll_NotifyChange(PollClassSet classSet); ++ ++/* ++ * Wrappers for Poll_Callback and Poll_CallbackRemove that present ++ * simpler subsets of those interfaces. ++ */ ++ ++VMwareStatus Poll_CB_Device(PollerFunction f, ++ void *clientData, ++ PollDevHandle device, ++ Bool periodic); ++ ++Bool Poll_CB_DeviceRemove(PollerFunction f, ++ void *clientData, ++ Bool periodic); ++ ++ ++VMwareStatus Poll_CB_RTime(PollerFunction f, ++ void *clientData, ++ int64 delay, // microseconds ++ Bool periodic, ++ MXUserRecLock *lock); ++ ++Bool Poll_CB_RTimeRemove(PollerFunction f, ++ void *clientData, ++ Bool periodic); ++ ++ ++#ifdef _WIN32 ++void Poll_SetPumpsWindowsMessages(Bool pumps); ++void Poll_SetWindowMessageRecipient(HWND hWnd, UINT msg, Bool alwaysThunk); ++Bool Poll_FireWndCallback(void *lparam); ++#endif ++ ++#if defined(__cplusplus) ++} // extern "C" ++#endif ++ ++#endif // _POLL_H_ --- a/open-vm-tools/lib/rpcIn/rpcin.c +++ b/open-vm-tools/lib/rpcIn/rpcin.c @@ -57,7 +57,7 @@ @@ -100,16 +740,3 @@ index 8eea7d86..c48f5be2 100644 # include "asyncsocket.h" # include "vmci_defs.h" #include "dataMap.h" -diff --git a/open-vm-tools/services/plugins/grabbitmqProxy/grabbitmqProxyPlugin.c b/open-vm-tools/services/plugins/grabbitmqProxy/grabbitmqProxyPlugin.c -index 03700937..f0b49ad7 100644 ---- a/open-vm-tools/services/plugins/grabbitmqProxy/grabbitmqProxyPlugin.c -+++ b/open-vm-tools/services/plugins/grabbitmqProxy/grabbitmqProxyPlugin.c -@@ -48,7 +48,7 @@ - #include "rpcout.h" - #include "rabbitmqProxyConst.h" - #include "vm_basic_types.h" --#include "poll.h" -+#include "vm_poll.h" - #ifdef OPEN_VM_TOOLS - #include "vmci_sockets.h" - #include "sslDirect.h" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0013-misc-Do-not-print-NULL-string-into-logs.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0013-misc-Do-not-print-NULL-string-into-logs.patch index 88f4f694..3e4753b2 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0013-misc-Do-not-print-NULL-string-into-logs.patch +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0013-misc-Do-not-print-NULL-string-into-logs.patch @@ -14,18 +14,14 @@ Signed-off-by: Khem Raj open-vm-tools/lib/misc/util_misc.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) -diff --git a/open-vm-tools/lib/misc/util_misc.c b/open-vm-tools/lib/misc/util_misc.c -index 198c23d2..0ac0a335 100644 --- a/open-vm-tools/lib/misc/util_misc.c +++ b/open-vm-tools/lib/misc/util_misc.c -@@ -719,8 +719,8 @@ Util_ExpandString(const char *fileName) // IN file path to expand +@@ -719,7 +719,7 @@ Util_ExpandString(const char *fileName) ASSERT(!freeChunk[i]); chunks[i] = expand; if (chunks[i] == NULL) { -- Log("%s: Cannot allocate memory to expand \"%s\" in \"%s\".\n", -- __FUNCTION__, expand, fileName); +- Log("%s: Cannot allocate memory to expand $ in \"%s\".\n", + Log("%s: Cannot allocate memory to expand in \"%s\".\n", -+ __FUNCTION__, fileName); + __FUNCTION__, fileName); goto out; } - chunkSize[i] = strlen(expand); diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0014-Fix-new-warnings-from-gcc9.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0014-Fix-new-warnings-from-gcc9.patch deleted file mode 100644 index b5ccffd1..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0014-Fix-new-warnings-from-gcc9.patch +++ /dev/null @@ -1,1281 +0,0 @@ -From af9eca8689c97ea8e792902b458a31608286655e Mon Sep 17 00:00:00 2001 -From: Martin Jansa -Date: Thu, 13 Jun 2019 16:01:03 +0000 -Subject: [PATCH] Fix new warnings from gcc9 - -Imported from Fedora: -https://src.fedoraproject.org/rpms/open-vm-tools/raw/master/f/gcc9-warnings.patch - -Upstream bug: -https://github.com/vmware/open-vm-tools/issues/330 - -Upstream-Status: Pending ---- - open-vm-tools/hgfsmounter/hgfsmounter.c | 14 +- - open-vm-tools/lib/hgfsServer/hgfsServer.c | 24 ++- - open-vm-tools/vmhgfs-fuse/dir.c | 175 ++++++++--------- - open-vm-tools/vmhgfs-fuse/file.c | 217 +++++++++++++--------- - open-vm-tools/vmhgfs-fuse/filesystem.c | 46 ++--- - open-vm-tools/vmhgfs-fuse/fsutil.c | 63 ++++--- - open-vm-tools/vmhgfs-fuse/link.c | 125 +++++++------ - 7 files changed, 367 insertions(+), 297 deletions(-) - -diff --git a/open-vm-tools/hgfsmounter/hgfsmounter.c b/open-vm-tools/hgfsmounter/hgfsmounter.c -index 0921b700..3f6798dc 100644 ---- a/open-vm-tools/hgfsmounter/hgfsmounter.c -+++ b/open-vm-tools/hgfsmounter/hgfsmounter.c -@@ -1,5 +1,5 @@ - /********************************************************* -- * Copyright (C) 2006-2017 VMware, Inc. All rights reserved. -+ * Copyright (C) 2006-2019 VMware, Inc. All rights reserved. - * - * This program is free software; you can redistribute it and/or modify it - * under the terms of the GNU Lesser General Public License as published -@@ -514,11 +514,13 @@ ParseFmask(const char *option, // IN: option string along with value - HgfsMountInfo *mountInfo, // OUT: mount data - int *flags) // OUT: mount flags - { -+ unsigned short fmask = 0; - ASSERT(option); - ASSERT(mountInfo); - -- if (ParseMask(option, &mountInfo->fmask)) { -- LOG("Setting mount fmask to %o\n", mountInfo->fmask); -+ if (ParseMask(option, &fmask)) { -+ LOG("Setting mount fmask to %o\n", fmask); -+ mountInfo->fmask = fmask; - return TRUE; - } - -@@ -548,11 +550,13 @@ ParseDmask(const char *option, // IN: option string along with value - HgfsMountInfo *mountInfo, // OUT: mount data - int *flags) // OUT: mount flags - { -+ unsigned short dmask = 0; - ASSERT(option); - ASSERT(mountInfo); - -- if (ParseMask(option, &mountInfo->dmask)) { -- LOG("Setting mount dmask to %o\n", mountInfo->dmask); -+ if (ParseMask(option, &dmask)) { -+ LOG("Setting mount dmask to %o\n", dmask); -+ mountInfo->dmask = dmask; - return TRUE; - } - -diff --git a/open-vm-tools/lib/hgfsServer/hgfsServer.c b/open-vm-tools/lib/hgfsServer/hgfsServer.c -index 740c4fed..422383cd 100644 ---- a/open-vm-tools/lib/hgfsServer/hgfsServer.c -+++ b/open-vm-tools/lib/hgfsServer/hgfsServer.c -@@ -1,5 +1,5 @@ - /********************************************************* -- * Copyright (C) 1998-2018 VMware, Inc. All rights reserved. -+ * Copyright (C) 1998-2019 VMware, Inc. All rights reserved. - * - * This program is free software; you can redistribute it and/or modify it - * under the terms of the GNU Lesser General Public License as published -@@ -159,7 +159,7 @@ struct HgfsTransportSessionInfo { - HgfsServerChannelData channelCapabilities; - }; - --/* The input request paramaters object. */ -+/* The input request parameters object. */ - typedef struct HgfsInputParam { - const void *request; /* Hgfs header followed by operation request */ - size_t requestSize; /* Size of Hgfs header and operation request */ -@@ -2682,8 +2682,8 @@ HgfsSearchHandle2Search(HgfsHandle handle, // IN: handle - * None - * - * Side effects: -- * If there isnt enough memory to accomodate the new names, those file nodes -- * that couldnt be updated are deleted. -+ * If there isn't enough memory to accommodate the new names, those file nodes -+ * that couldn't be updated are deleted. - * - *----------------------------------------------------------------------------- - */ -@@ -3399,7 +3399,7 @@ HgfsServerSessionReceive(HgfsPacket *packet, // IN: Hgfs Packet - - /* Send error if we fail to process the op. */ - if (HGFS_ERROR_SUCCESS != status) { -- LOG(4, ("Error %d occured parsing the packet\n", (uint32)status)); -+ LOG(4, ("Error %d occurred parsing the packet\n", (uint32)status)); - HgfsServerCompleteRequest(status, 0, input); - } - } -@@ -4131,7 +4131,7 @@ HgfsServerSetSessionCapability(HgfsOp op, // IN: operation code - result = TRUE; - } - } -- LOG(4, ("%s: Setting capabilitiy flags %x for op code %d %s\n", -+ LOG(4, ("%s: Setting capability flags %x for op code %d %s\n", - __FUNCTION__, flags, op, result ? "succeeded" : "failed")); - - return result; -@@ -4143,7 +4143,7 @@ HgfsServerSetSessionCapability(HgfsOp op, // IN: operation code - * - * HgfsServerResEnumInit -- - * -- * Initialize an enumeration of all exisitng resources. -+ * Initialize an enumeration of all existing resources. - * - * Results: - * The enumeration state object. -@@ -4239,7 +4239,7 @@ HgfsServerResEnumExit(void *enumState) // IN/OUT: enumeration state - * - * HgfsServerEnumerateSharedFolders -- - * -- * Enumerates all exisitng shared folders and registers shared folders with -+ * Enumerates all existing shared folders and registers shared folders with - * directory notification package. - * - * Results: -@@ -6536,11 +6536,13 @@ HgfsServerRead(HgfsInputParam *input) // IN: Input params - payload = &reply->payload[0]; - } - if (payload) { -+ uint32 actualSize = 0; - status = HgfsPlatformReadFile(readFd, input->session, offset, - requiredSize, payload, -- &reply->actualSize); -+ &actualSize); - if (HGFS_ERROR_SUCCESS == status) { - reply->reserved = 0; -+ reply->actualSize = actualSize; - replyPayloadSize = sizeof *reply; - - if (readUseDataBuffer) { -@@ -6556,11 +6558,13 @@ HgfsServerRead(HgfsInputParam *input) // IN: Input params - break; - } - case HGFS_OP_READ: { -+ uint32 actualSize = 0; - HgfsReplyRead *reply = replyRead; - - status = HgfsPlatformReadFile(readFd, input->session, offset, requiredSize, -- reply->payload, &reply->actualSize); -+ reply->payload, &actualSize); - if (HGFS_ERROR_SUCCESS == status) { -+ reply->actualSize = actualSize; - replyPayloadSize = sizeof *reply + reply->actualSize; - } else { - LOG(4, ("%s: V1 Failed to read-> %d.\n", __FUNCTION__, status)); -diff --git a/open-vm-tools/vmhgfs-fuse/dir.c b/open-vm-tools/vmhgfs-fuse/dir.c -index 6298a4ea..e71b7afd 100644 ---- a/open-vm-tools/vmhgfs-fuse/dir.c -+++ b/open-vm-tools/vmhgfs-fuse/dir.c -@@ -1,5 +1,5 @@ - /********************************************************* -- * Copyright (C) 2013 VMware, Inc. All rights reserved. -+ * Copyright (C) 2013,2019 VMware, Inc. All rights reserved. - * - * This program is free software; you can redistribute it and/or modify it - * under the terms of the GNU Lesser General Public License as published -@@ -54,38 +54,53 @@ HgfsPackDirOpenRequest(const char *path, // IN: Path of the dir to open - HgfsOp opUsed, // IN: Op to be used - HgfsReq *req) // IN/OUT: Packet to write into - { -- char *name; -- unsigned int *nameLength = NULL; - size_t reqSize; -- int result; - - ASSERT(path); - ASSERT(req); - LOG(4, ("Path = %s \n", path)); - switch (opUsed) { - case HGFS_OP_SEARCH_OPEN_V3: { -+ int result; - HgfsRequestSearchOpenV3 *requestV3 = HgfsGetRequestPayload(req); - -- /* We'll use these later. */ -- name = requestV3->dirName.name; -- nameLength = &requestV3->dirName.length; - requestV3->dirName.flags = 0; - requestV3->dirName.caseType = HGFS_FILE_NAME_CASE_SENSITIVE; - requestV3->dirName.fid = HGFS_INVALID_HANDLE; - requestV3->reserved = 0; - reqSize = sizeof(*requestV3) + HgfsGetRequestHeaderSize(); -+ /* Convert to CP name. */ -+ result = CPName_ConvertTo(path, -+ HGFS_LARGE_PACKET_MAX - (reqSize - 1), -+ requestV3->dirName.name); -+ if (result < 0) { -+ LOG(4, ("CP conversion failed\n")); -+ return -EINVAL; -+ } -+ LOG(4, ("After conversion = %s\n", requestV3->dirName.name)); -+ requestV3->dirName.length = result; -+ reqSize += result; - break; - } - - case HGFS_OP_SEARCH_OPEN: { -+ int result; - HgfsRequestSearchOpen *request; - - request = (HgfsRequestSearchOpen *)(HGFS_REQ_PAYLOAD(req)); - -- /* We'll use these later. */ -- name = request->dirName.name; -- nameLength = &request->dirName.length; - reqSize = sizeof *request; -+ /* Convert to CP name. */ -+ result = CPName_ConvertTo(path, -+ HGFS_LARGE_PACKET_MAX - (reqSize - 1), -+ request->dirName.name); -+ if (result < 0) { -+ LOG(4, ("CP conversion failed\n")); -+ return -EINVAL; -+ } -+ LOG(4, ("After conversion = %s\n", request->dirName.name)); -+ request->dirName.length = result; -+ reqSize += result; - break; - } - -@@ -94,21 +109,7 @@ HgfsPackDirOpenRequest(const char *path, // IN: Path of the dir to open - return -EPROTO; - } - -- /* Convert to CP name. */ -- -- LOG(4, ("After buildPath = %s\n", path)); -- result = CPName_ConvertTo(path, -- HGFS_LARGE_PACKET_MAX - (reqSize - 1), -- name); -- if (result < 0) { -- LOG(4, ("CP conversion failed\n")); -- return -EINVAL; -- } -- -- LOG(4, ("After conversion = %s\n", name)); -- -- *nameLength = (uint32) result; -- req->payloadSize = reqSize + result; -+ req->payloadSize = reqSize; - - /* Fill in header here as payloadSize needs to be there. */ - HgfsPackHeader(req, opUsed); -@@ -149,7 +150,6 @@ HgfsDirOpen(const char* path, // IN: Path of dir to open - int result; - HgfsOp opUsed; - HgfsStatus replyStatus; -- HgfsHandle *replySearch; - - ASSERT(path); - req = HgfsGetNewRequest(); -@@ -161,16 +161,6 @@ HgfsDirOpen(const char* path, // IN: Path of dir to open - - retry: - opUsed = hgfsVersionSearchOpen; -- if (opUsed == HGFS_OP_SEARCH_OPEN_V3) { -- HgfsReplySearchOpenV3 *requestV3 = HgfsGetReplyPayload(req); -- -- replySearch = &requestV3->search; -- -- } else { -- HgfsReplySearchOpen *request = (HgfsReplySearchOpen *)HGFS_REQ_PAYLOAD(req); -- -- replySearch = &request->search; -- } - - result = HgfsPackDirOpenRequest(path, opUsed, req); - if (result != 0) { -@@ -187,8 +177,14 @@ retry: - - switch (result) { - case 0: -- *handle = *replySearch; -- LOG(6, ("Set handle to %u\n", *replySearch)); -+ if (opUsed == HGFS_OP_SEARCH_OPEN_V3) { -+ HgfsReplySearchOpenV3 *requestV3 = HgfsGetReplyPayload(req); -+ *handle = requestV3->search; -+ } else { -+ HgfsReplySearchOpen *request = (HgfsReplySearchOpen *)HGFS_REQ_PAYLOAD(req); -+ *handle = request->search; -+ } -+ LOG(6, ("Set handle to %u\n", *handle)); - break; - case -EPROTO: - /* Retry with older version(s). Set globally. */ -@@ -626,25 +622,30 @@ HgfsPackCreateDirRequest(const char *path, - HgfsOp opUsed, // IN: Op to be used. - HgfsReq *req) // IN/OUT: Packet to write into - { -- char *fileName = NULL; -- uint32 *fileNameLength; - size_t reqSize; -- int result; -+ - - ASSERT(req); - - switch (opUsed) { - case HGFS_OP_CREATE_DIR_V3: { -+ int result; - HgfsRequestCreateDirV3 *requestV3 = HgfsGetRequestPayload(req); - - reqSize = sizeof(*requestV3) + HgfsGetRequestHeaderSize(); -- /* We'll use these later. */ -- fileName = requestV3->fileName.name; -- fileNameLength = &requestV3->fileName.length; - requestV3->fileName.flags = 0; - requestV3->fileName.fid = HGFS_INVALID_HANDLE; - requestV3->fileName.caseType = HGFS_FILE_NAME_CASE_SENSITIVE; -- -+ /* Convert to CP name. */ -+ result = CPName_ConvertTo(path, -+ HGFS_LARGE_PACKET_MAX - (reqSize - 1), -+ requestV3->fileName.name); -+ if (result < 0) { -+ LOG(4, ("CP conversion failed.\n")); -+ return -EINVAL; -+ } -+ requestV3->fileName.length = result; -+ reqSize += result; - requestV3->mask = HGFS_CREATE_DIR_MASK; - - /* Set permissions. */ -@@ -656,15 +657,23 @@ HgfsPackCreateDirRequest(const char *path, - break; - } - case HGFS_OP_CREATE_DIR_V2: { -+ int result; - HgfsRequestCreateDirV2 *requestV2; - - requestV2 = (HgfsRequestCreateDirV2 *)(HGFS_REQ_PAYLOAD(req)); - -- /* We'll use these later. */ -- fileName = requestV2->fileName.name; -- fileNameLength = &requestV2->fileName.length; - reqSize = sizeof *requestV2; - -+ /* Convert to CP name. */ -+ result = CPName_ConvertTo(path, -+ HGFS_LARGE_PACKET_MAX - (reqSize - 1), -+ requestV2->fileName.name); -+ if (result < 0) { -+ LOG(4, ("CP conversion failed.\n")); -+ return -EINVAL; -+ } -+ requestV2->fileName.length = result; -+ reqSize += result; - requestV2->mask = HGFS_CREATE_DIR_MASK; - - /* Set permissions. */ -@@ -675,15 +684,22 @@ HgfsPackCreateDirRequest(const char *path, - break; - } - case HGFS_OP_CREATE_DIR: { -+ int result; - HgfsRequestCreateDir *request; - - request = (HgfsRequestCreateDir *)(HGFS_REQ_PAYLOAD(req)); - -- /* We'll use these later. */ -- fileName = request->fileName.name; -- fileNameLength = &request->fileName.length; - reqSize = sizeof *request; -- -+ /* Convert to CP name. */ -+ result = CPName_ConvertTo(path, -+ HGFS_LARGE_PACKET_MAX - (reqSize - 1), -+ request->fileName.name); -+ if (result < 0) { -+ LOG(4, ("CP conversion failed.\n")); -+ return -EINVAL; -+ } -+ request->fileName.length = result; -+ reqSize += result; - /* Set permissions. */ - request->permissions = (permsMode & S_IRWXU) >> 6; - break; -@@ -693,18 +709,7 @@ HgfsPackCreateDirRequest(const char *path, - return -EPROTO; - } - -- -- /* Convert to CP name. */ -- result = CPName_ConvertTo(path, -- HGFS_LARGE_PACKET_MAX - (reqSize - 1), -- fileName); -- if (result < 0) { -- LOG(4, ("CP conversion failed.\n")); -- return -EINVAL; -- } -- -- *fileNameLength = result; -- req->payloadSize = reqSize + result; -+ req->payloadSize = reqSize; - - /* Fill in header here as payloadSize needs to be there. */ - HgfsPackHeader(req, opUsed); -@@ -827,8 +832,6 @@ HgfsDelete(const char* path, // IN: Path to file - HgfsReq *req = NULL; - int result = 0; - HgfsStatus replyStatus; -- char *fileName = NULL; -- uint32 *fileNameLength; - uint32 reqSize; - HgfsOp opUsed; - HgfsAttrInfo newAttr = {0}; -@@ -862,8 +865,17 @@ HgfsDelete(const char* path, // IN: Path to file - - reqSize = sizeof(*request) + HgfsGetRequestHeaderSize(); - request->hints = 0; -- fileName = request->fileName.name; -- fileNameLength = &request->fileName.length; -+ /* Convert to CP name. */ -+ result = CPName_ConvertTo(path, -+ HGFS_NAME_BUFFER_SIZET(HGFS_LARGE_PACKET_MAX, reqSize), -+ request->fileName.name); -+ if (result < 0) { -+ LOG(4, ("CP conversion failed.\n")); -+ result = -EINVAL; -+ goto out; -+ } -+ request->fileName.length = result; -+ reqSize += result; - request->fileName.fid = HGFS_INVALID_HANDLE; - request->fileName.flags = 0; - request->fileName.caseType = HGFS_FILE_NAME_DEFAULT_CASE; -@@ -874,24 +886,21 @@ HgfsDelete(const char* path, // IN: Path to file - - request = (HgfsRequestDelete *)(HGFS_REQ_PAYLOAD(req)); - /* Fill out the request packet. */ -- fileName = request->fileName.name; -- fileNameLength = &request->fileName.length; - reqSize = sizeof *request; -+ /* Convert to CP name. */ -+ result = CPName_ConvertTo(path, -+ HGFS_NAME_BUFFER_SIZET(HGFS_LARGE_PACKET_MAX, reqSize), -+ request->fileName.name); -+ if (result < 0) { -+ LOG(4, ("CP conversion failed.\n")); -+ result = -EINVAL; -+ goto out; -+ } -+ request->fileName.length = result; -+ reqSize += result; - } - -- -- /* Convert to CP name. */ -- result = CPName_ConvertTo(path, -- HGFS_NAME_BUFFER_SIZET(HGFS_LARGE_PACKET_MAX, reqSize), -- fileName); -- if (result < 0) { -- LOG(4, ("CP conversion failed.\n")); -- result = -EINVAL; -- goto out; -- } -- -- *fileNameLength = result; -- req->payloadSize = reqSize + result; -+ req->payloadSize = reqSize; - - /* Fill in header here as payloadSize needs to be there. */ - HgfsPackHeader(req, opUsed); -diff --git a/open-vm-tools/vmhgfs-fuse/file.c b/open-vm-tools/vmhgfs-fuse/file.c -index 389ebba8..0b6c48bc 100644 ---- a/open-vm-tools/vmhgfs-fuse/file.c -+++ b/open-vm-tools/vmhgfs-fuse/file.c -@@ -1,5 +1,5 @@ - /********************************************************* -- * Copyright (C) 2013,2017 VMware, Inc. All rights reserved. -+ * Copyright (C) 2013,2018-2019 VMware, Inc. All rights reserved. - * - * This program is free software; you can redistribute it and/or modify it - * under the terms of the GNU Lesser General Public License as published -@@ -66,10 +66,7 @@ HgfsPackOpenRequest(const char *path, // IN: Path to file - HgfsOp opUsed, // IN: Op to use - HgfsReq *req) // IN/OUT: Packet to write into - { -- char *name; -- uint32 *nameLength; - size_t reqSize; -- int result; - int openMode, openFlags; - - ASSERT(path); -@@ -88,14 +85,22 @@ HgfsPackOpenRequest(const char *path, // IN: Path to file - - switch (opUsed) { - case HGFS_OP_OPEN_V3: { -+ int result; - HgfsRequestOpenV3 *requestV3 = HgfsGetRequestPayload(req); - - reqSize = sizeof(*requestV3) + HgfsGetRequestHeaderSize(); - -- /* We'll use these later. */ -- name = requestV3->fileName.name; -- nameLength = &requestV3->fileName.length; -+ /* Convert to CP name. */ -+ result = CPName_ConvertTo(path, -+ HGFS_LARGE_PACKET_MAX - (reqSize - 1), -+ requestV3->fileName.name); -+ if (result < 0) { -+ LOG(4, ("CP conversion failed.\n")); -+ return -EINVAL; -+ } - -+ requestV3->fileName.length = result; -+ reqSize += result; - /* Linux clients need case-sensitive lookups. */ - requestV3->fileName.flags = 0; - requestV3->fileName.caseType = HGFS_FILE_NAME_CASE_SENSITIVE; -@@ -122,15 +127,24 @@ HgfsPackOpenRequest(const char *path, // IN: Path to file - } - - case HGFS_OP_OPEN_V2: { -+ int result; - HgfsRequestOpenV2 *requestV2; - - requestV2 = (HgfsRequestOpenV2 *)(HGFS_REQ_PAYLOAD(req)); - -- /* We'll use these later. */ -- name = requestV2->fileName.name; -- nameLength = &requestV2->fileName.length; - reqSize = sizeof *requestV2; - -+ /* Convert to CP name. */ -+ result = CPName_ConvertTo(path, -+ HGFS_LARGE_PACKET_MAX - (reqSize - 1), -+ requestV2->fileName.name); -+ if (result < 0) { -+ LOG(4, ("CP conversion failed.\n")); -+ return -EINVAL; -+ } -+ -+ requestV2->fileName.length = result; -+ reqSize += result; - requestV2->mask = mask; - requestV2->mode = openMode; - requestV2->flags = openFlags; -@@ -148,14 +162,23 @@ HgfsPackOpenRequest(const char *path, // IN: Path to file - break; - } - case HGFS_OP_OPEN: { -+ int result; - HgfsRequestOpen *request; - - request = (HgfsRequestOpen *)(HGFS_REQ_PAYLOAD(req)); -- /* We'll use these later. */ -- name = request->fileName.name; -- nameLength = &request->fileName.length; - reqSize = sizeof *request; - -+ /* Convert to CP name. */ -+ result = CPName_ConvertTo(path, -+ HGFS_LARGE_PACKET_MAX - (reqSize - 1), -+ request->fileName.name); -+ if (result < 0) { -+ LOG(4, ("CP conversion failed.\n")); -+ return -EINVAL; -+ } -+ -+ request->fileName.length = result; -+ reqSize += result; - request->mode = openMode; - request->flags = openFlags; - -@@ -168,18 +191,7 @@ HgfsPackOpenRequest(const char *path, // IN: Path to file - return -EPROTO; - } - -- -- /* Convert to CP name. */ -- result = CPName_ConvertTo(path, -- HGFS_LARGE_PACKET_MAX - (reqSize - 1), -- name); -- if (result < 0) { -- LOG(4, ("CP conversion failed.\n")); -- return -EINVAL; -- } -- -- *nameLength = (uint32) result; -- req->payloadSize = reqSize + result; -+ req->payloadSize = reqSize; - - /* Fill in header here as payloadSize needs to be there. */ - HgfsPackHeader(req, opUsed); -@@ -915,10 +927,6 @@ int - HgfsRename(const char* from, const char* to) - { - HgfsReq *req = NULL; -- char *oldName; -- char *newName; -- uint32 *oldNameLength; -- uint32 *newNameLength; - int result = 0; - uint32 reqSize; - HgfsOp opUsed; -@@ -942,33 +950,41 @@ retry: - if (opUsed == HGFS_OP_RENAME_V3) { - HgfsRequestRenameV3 *requestV3 = HgfsGetRequestPayload(req); - -- oldName = requestV3->oldName.name; -- oldNameLength = &requestV3->oldName.length; - requestV3->hints = 0; - requestV3->oldName.flags = 0; - requestV3->oldName.fid = HGFS_INVALID_HANDLE; - requestV3->oldName.caseType = HGFS_FILE_NAME_CASE_SENSITIVE; - requestV3->reserved = 0; - reqSize = sizeof(*requestV3) + HgfsGetRequestHeaderSize(); -+ /* Convert old name to CP format. */ -+ result = CPName_ConvertTo(from, -+ HGFS_NAME_BUFFER_SIZET(HGFS_LARGE_PACKET_MAX, reqSize), -+ requestV3->oldName.name); -+ if (result < 0) { -+ LOG(4, ("oldName CP conversion failed\n")); -+ result = -EINVAL; -+ goto out; -+ } -+ -+ requestV3->oldName.length = result; -+ reqSize += result; - } else { - HgfsRequestRename *request = (HgfsRequestRename *)HGFS_REQ_PAYLOAD(req); - -- oldName = request->oldName.name; -- oldNameLength = &request->oldName.length; - reqSize = sizeof *request; -- } -- /* Convert old name to CP format. */ -- result = CPName_ConvertTo(from, -- HGFS_NAME_BUFFER_SIZET(HGFS_LARGE_PACKET_MAX, reqSize), -- oldName); -- if (result < 0) { -- LOG(4, ("oldName CP conversion failed\n")); -- result = -EINVAL; -- goto out; -- } -+ /* Convert old name to CP format. */ -+ result = CPName_ConvertTo(from, -+ HGFS_NAME_BUFFER_SIZET(HGFS_LARGE_PACKET_MAX, reqSize), -+ request->oldName.name); -+ if (result < 0) { -+ LOG(4, ("oldName CP conversion failed\n")); -+ result = -EINVAL; -+ goto out; -+ } - -- *oldNameLength = result; -- reqSize += result; -+ request->oldName.length = result; -+ reqSize += result; -+ } - - /* - * Build full new name to send to server. -@@ -983,8 +999,20 @@ retry: - - newNameP = (HgfsFileNameV3 *)((char *)&requestV3->oldName + - sizeof requestV3->oldName + result); -- newName = newNameP->name; -- newNameLength = &newNameP->length; -+ -+ LOG(6, ("New name: \"%s\"\n", newNameP->name)); -+ -+ /* Convert new name to CP format. */ -+ result = CPName_ConvertTo(to, -+ HGFS_NAME_BUFFER_SIZET(HGFS_LARGE_PACKET_MAX, reqSize) - result, -+ newNameP->name); -+ if (result < 0) { -+ LOG(4, ("newName CP conversion failed\n")); -+ result = -EINVAL; -+ goto out; -+ } -+ newNameP->length = result; -+ reqSize += result; - newNameP->flags = 0; - newNameP->fid = HGFS_INVALID_HANDLE; - newNameP->caseType = HGFS_FILE_NAME_CASE_SENSITIVE; -@@ -993,24 +1021,22 @@ retry: - HgfsFileName *newNameP; - newNameP = (HgfsFileName *)((char *)&request->oldName + - sizeof request->oldName + result); -- newName = newNameP->name; -- newNameLength = &newNameP->length; -- } - -- LOG(6, ("New name: \"%s\"\n", newName)); -+ LOG(6, ("New name: \"%s\"\n", newNameP->name)); - -- /* Convert new name to CP format. */ -- result = CPName_ConvertTo(to, -- HGFS_NAME_BUFFER_SIZET(HGFS_LARGE_PACKET_MAX, reqSize) - result, -- newName); -- if (result < 0) { -- LOG(4, ("newName CP conversion failed\n")); -- result = -EINVAL; -- goto out; -+ /* Convert new name to CP format. */ -+ result = CPName_ConvertTo(to, -+ HGFS_NAME_BUFFER_SIZET(HGFS_LARGE_PACKET_MAX, reqSize) - result, -+ newNameP->name); -+ if (result < 0) { -+ LOG(4, ("newName CP conversion failed\n")); -+ result = -EINVAL; -+ goto out; -+ } -+ newNameP->length = result; -+ reqSize += result; - } - -- *newNameLength = result; -- reqSize += result; - req->payloadSize = reqSize; - - /* Fill in header here as payloadSize needs to be there. */ -@@ -1068,7 +1094,7 @@ retry: - } - break; - default: -- LOG(4, ("failed with result %d\n", result)); -+ LOG(4, ("Server protocol result %d\n", result)); - } - break; - default: -@@ -1109,21 +1135,17 @@ HgfsPackSetattrRequest(const char *path, // IN: path to file - { - HgfsAttrV2 *attrV2; - HgfsAttr *attrV1; -- HgfsAttrHint *hints; - HgfsAttrChanges *update; -- char *fileName = NULL; -- uint32 *fileNameLength = NULL; - size_t reqBufferSize; - size_t reqSize; -- int result = 0; - ASSERT(req); - - switch (opUsed) { - case HGFS_OP_SETATTR_V3: { -+ int result; - HgfsRequestSetattrV3 *requestV3 = HgfsGetRequestPayload(req); - - attrV2 = &requestV3->attr; -- hints = &requestV3->hints; - - /* - * Clear attributes, mask, and hints before touching them. -@@ -1131,7 +1153,7 @@ HgfsPackSetattrRequest(const char *path, // IN: path to file - * make sure to zero them all here. - */ - memset(attrV2, 0, sizeof *attrV2); -- memset(hints, 0, sizeof *hints); -+ requestV3->hints = 0; - - /* - * When possible, issue a setattr using an existing handle. This will -@@ -1143,14 +1165,21 @@ HgfsPackSetattrRequest(const char *path, // IN: path to file - * the times also requires write permissions on Windows, so we require it - * here too. Otherwise, any handle will do. - */ -- fileName = requestV3->fileName.name; -- fileNameLength = &requestV3->fileName.length; - requestV3->fileName.caseType = HGFS_FILE_NAME_CASE_SENSITIVE; - requestV3->fileName.fid = HGFS_INVALID_HANDLE; - requestV3->fileName.flags = 0; - requestV3->reserved = 0; - reqSize = sizeof(*requestV3) + HgfsGetRequestHeaderSize(); - reqBufferSize = HGFS_NAME_BUFFER_SIZET(HGFS_LARGE_PACKET_MAX, reqSize); -+ result = CPName_ConvertTo(path, -+ reqBufferSize, -+ requestV3->fileName.name); -+ if (result < 0) { -+ LOG(4, ("CP conversion failed.\n")); -+ return -EINVAL; -+ } -+ requestV3->fileName.length = result; -+ reqSize += result; - - attrV2->mask = attr->mask; - if (attr->mask & (HGFS_ATTR_VALID_SPECIAL_PERMS | -@@ -1173,22 +1202,22 @@ HgfsPackSetattrRequest(const char *path, // IN: path to file - } - if (attr->mask & HGFS_ATTR_VALID_ACCESS_TIME) { - attrV2->accessTime = attr->accessTime; -- *hints |= HGFS_ATTR_HINT_SET_ACCESS_TIME; -+ requestV3->hints |= HGFS_ATTR_HINT_SET_ACCESS_TIME; - } - if (attr->mask & HGFS_ATTR_VALID_WRITE_TIME) { - attrV2->writeTime = attr->writeTime; -- *hints |= HGFS_ATTR_HINT_SET_WRITE_TIME; -+ requestV3->hints |= HGFS_ATTR_HINT_SET_WRITE_TIME; - } - - break; - } - case HGFS_OP_SETATTR_V2: { -+ int result; - HgfsRequestSetattrV2 *requestV2; - - requestV2 = (HgfsRequestSetattrV2 *)(HGFS_REQ_PAYLOAD(req)); - - attrV2 = &requestV2->attr; -- hints = &requestV2->hints; - - /* - * Clear attributes, mask, and hints before touching them. -@@ -1196,13 +1225,19 @@ HgfsPackSetattrRequest(const char *path, // IN: path to file - * make sure to zero them all here. - */ - memset(attrV2, 0, sizeof *attrV2); -- memset(hints, 0, sizeof *hints); -- -- fileName = requestV2->fileName.name; -- fileNameLength = &requestV2->fileName.length; -+ requestV2->hints = 0; - - reqSize = sizeof *requestV2; - reqBufferSize = HGFS_NAME_BUFFER_SIZE(HGFS_LARGE_PACKET_MAX, requestV2); -+ result = CPName_ConvertTo(path, -+ reqBufferSize, -+ requestV2->fileName.name); -+ if (result < 0) { -+ LOG(4, ("CP conversion failed.\n")); -+ return -EINVAL; -+ } -+ requestV2->fileName.length = result; -+ reqSize += result; - - if (attr->mask & (HGFS_ATTR_VALID_SPECIAL_PERMS | - HGFS_ATTR_VALID_OWNER_PERMS | -@@ -1224,16 +1259,17 @@ HgfsPackSetattrRequest(const char *path, // IN: path to file - } - if (attr->mask & HGFS_ATTR_VALID_ACCESS_TIME) { - attrV2->accessTime = attr->accessTime; -- *hints |= HGFS_ATTR_HINT_SET_ACCESS_TIME; -+ requestV2->hints |= HGFS_ATTR_HINT_SET_ACCESS_TIME; - } - if (attr->mask & HGFS_ATTR_VALID_WRITE_TIME) { - attrV2->writeTime = attr->writeTime; -- *hints |= HGFS_ATTR_HINT_SET_WRITE_TIME; -+ requestV2->hints |= HGFS_ATTR_HINT_SET_WRITE_TIME; - } - - break; - } - case HGFS_OP_SETATTR: { -+ int result; - HgfsRequestSetattr *request; - - request = (HgfsRequestSetattr *)(HGFS_REQ_PAYLOAD(req)); -@@ -1241,11 +1277,17 @@ HgfsPackSetattrRequest(const char *path, // IN: path to file - attrV1 = &request->attr; - update = &request->update; - -- /* We'll use these later. */ -- fileName = request->fileName.name; -- fileNameLength = &request->fileName.length; - reqSize = sizeof *request; - reqBufferSize = HGFS_NAME_BUFFER_SIZE(HGFS_LARGE_PACKET_MAX, request); -+ result = CPName_ConvertTo(path, -+ reqBufferSize, -+ request->fileName.name); -+ if (result < 0) { -+ LOG(4, ("CP conversion failed.\n")); -+ return -EINVAL; -+ } -+ request->fileName.length = result; -+ reqSize += result; - - /* - * Clear attributes before touching them. -@@ -1284,16 +1326,7 @@ HgfsPackSetattrRequest(const char *path, // IN: path to file - return -EPROTO; - } - -- result = CPName_ConvertTo(path, -- reqBufferSize, -- fileName); -- if (result < 0) { -- LOG(4, ("CP conversion failed.\n")); -- return -EINVAL; -- } -- -- *fileNameLength = result; -- req->payloadSize = reqSize + result; -+ req->payloadSize = reqSize; - - /* Fill in header here as payloadSize needs to be there. */ - HgfsPackHeader(req, opUsed); -diff --git a/open-vm-tools/vmhgfs-fuse/filesystem.c b/open-vm-tools/vmhgfs-fuse/filesystem.c -index fb9d547d..1931a5d2 100644 ---- a/open-vm-tools/vmhgfs-fuse/filesystem.c -+++ b/open-vm-tools/vmhgfs-fuse/filesystem.c -@@ -1,5 +1,5 @@ - /********************************************************* -- * Copyright (C) 2013 VMware, Inc. All rights reserved. -+ * Copyright (C) 2013,2019 VMware, Inc. All rights reserved. - * - * This program is free software; you can redistribute it and/or modify it - * under the terms of the GNU Lesser General Public License as published -@@ -123,36 +123,50 @@ HgfsPackQueryVolumeRequest(const char *path, // IN: File pointer for this - HgfsOp opUsed, // IN: Op to be used. - HgfsReq *req) // IN/OUT: Packet to write into - { -- char *name; -- uint32 *nameLength; - size_t requestSize; -- int result; -+ - - ASSERT(req); - - switch (opUsed) { - case HGFS_OP_QUERY_VOLUME_INFO_V3: { -+ int result; - HgfsRequestQueryVolumeV3 *requestV3 = HgfsGetRequestPayload(req); - -- /* We'll use these later. */ -- name = requestV3->fileName.name; -- nameLength = &requestV3->fileName.length; - requestV3->fileName.flags = 0; - requestV3->fileName.fid = HGFS_INVALID_HANDLE; - requestV3->fileName.caseType = HGFS_FILE_NAME_CASE_SENSITIVE; - requestV3->reserved = 0; - requestSize = sizeof(*requestV3) + HgfsGetRequestHeaderSize(); -+ /* Convert to CP name. */ -+ result = CPName_ConvertTo(path, -+ HGFS_LARGE_PACKET_MAX - (requestSize - 1), -+ requestV3->fileName.name); -+ if (result < 0) { -+ LOG(4, ("CP conversion failed.\n")); -+ return -EINVAL; -+ } -+ requestV3->fileName.length = result; -+ requestSize += result; - break; - } - case HGFS_OP_QUERY_VOLUME_INFO: { -+ int result; - HgfsRequestQueryVolume *request; - - request = (HgfsRequestQueryVolume *)(HGFS_REQ_PAYLOAD(req)); - -- /* We'll use these later. */ -- name = request->fileName.name; -- nameLength = &request->fileName.length; - requestSize = sizeof *request; -+ /* Convert to CP name. */ -+ result = CPName_ConvertTo(path, -+ HGFS_LARGE_PACKET_MAX - (requestSize - 1), -+ request->fileName.name); -+ if (result < 0) { -+ LOG(4, ("CP conversion failed.\n")); -+ return -EINVAL; -+ } -+ request->fileName.length = result; -+ requestSize += result; - break; - } - default: -@@ -160,17 +174,7 @@ HgfsPackQueryVolumeRequest(const char *path, // IN: File pointer for this - return -EPROTO; - } - -- /* Convert to CP name. */ -- result = CPName_ConvertTo(path, -- HGFS_LARGE_PACKET_MAX - (requestSize - 1), -- name); -- if (result < 0) { -- LOG(4, ("CP conversion failed.\n")); -- return -EINVAL; -- } -- -- *nameLength = (uint32) result; -- req->payloadSize = requestSize + result; -+ req->payloadSize = requestSize; - - /* Fill in header here as payloadSize needs to be there. */ - HgfsPackHeader(req, opUsed); -diff --git a/open-vm-tools/vmhgfs-fuse/fsutil.c b/open-vm-tools/vmhgfs-fuse/fsutil.c -index 042c223c..af85c405 100644 ---- a/open-vm-tools/vmhgfs-fuse/fsutil.c -+++ b/open-vm-tools/vmhgfs-fuse/fsutil.c -@@ -1,5 +1,5 @@ - /********************************************************* -- * Copyright (C) 2013 VMware, Inc. All rights reserved. -+ * Copyright (C) 2013,2019 VMware, Inc. All rights reserved. - * - * This program is free software; you can redistribute it and/or modify it - * under the terms of the GNU Lesser General Public License as published -@@ -189,8 +189,6 @@ HgfsPackGetattrRequest(HgfsReq *req, // IN/OUT: Request buffer - size_t reqBufferSize; - size_t reqSize; - int result = 0; -- char *fileName = NULL; -- uint32 *fileNameLength = NULL; - ASSERT(attr); - ASSERT(req); - ASSERT(path); -@@ -204,8 +202,6 @@ HgfsPackGetattrRequest(HgfsReq *req, // IN/OUT: Request buffer - - /* Fill out the request packet. */ - requestV3->hints = 0; -- fileName = requestV3->fileName.name; -- fileNameLength = &requestV3->fileName.length; - requestV3->fileName.flags = 0; - requestV3->fileName.fid = HGFS_INVALID_HANDLE; - requestV3->fileName.caseType = HGFS_FILE_NAME_CASE_SENSITIVE; -@@ -213,6 +209,19 @@ HgfsPackGetattrRequest(HgfsReq *req, // IN/OUT: Request buffer - requestV3->reserved = 0; - reqSize = sizeof(*requestV3) + HgfsGetRequestHeaderSize(); - reqBufferSize = HGFS_NAME_BUFFER_SIZET(HGFS_LARGE_PACKET_MAX, reqSize); -+ if (requestV3->fileName.name != NULL) { -+ /* Convert to CP name. */ -+ result = CPName_ConvertTo(path, -+ reqBufferSize, -+ requestV3->fileName.name); -+ LOG(8, ("Converted path %s\n", requestV3->fileName.name)); -+ if (result < 0) { -+ LOG(8, ("CP conversion failed.\n")); -+ result = -EINVAL; -+ goto out; -+ } -+ requestV3->fileName.length = result; -+ } - break; - } - -@@ -223,20 +232,42 @@ HgfsPackGetattrRequest(HgfsReq *req, // IN/OUT: Request buffer - - requestV2 = (HgfsRequestGetattrV2 *)(HGFS_REQ_PAYLOAD(req)); - requestV2->hints = 0; -- fileName = requestV2->fileName.name; -- fileNameLength = &requestV2->fileName.length; - reqSize = sizeof *requestV2; - reqBufferSize = HGFS_NAME_BUFFER_SIZE(HGFS_LARGE_PACKET_MAX, requestV2); -+ if (requestV2->fileName.name != NULL) { -+ /* Convert to CP name. */ -+ result = CPName_ConvertTo(path, -+ reqBufferSize, -+ requestV2->fileName.name); -+ LOG(8, ("Converted path %s\n", requestV2->fileName.name)); -+ if (result < 0) { -+ LOG(8, ("CP conversion failed.\n")); -+ result = -EINVAL; -+ goto out; -+ } -+ requestV2->fileName.length = result; -+ } - break; - } - - case HGFS_OP_GETATTR: { - HgfsRequestGetattr *requestV1; - requestV1 = (HgfsRequestGetattr *)(HGFS_REQ_PAYLOAD(req)); -- fileName = requestV1->fileName.name; -- fileNameLength = &requestV1->fileName.length; - reqSize = sizeof *requestV1; - reqBufferSize = HGFS_NAME_BUFFER_SIZE(HGFS_LARGE_PACKET_MAX, requestV1); -+ if (requestV1->fileName.name != NULL) { -+ /* Convert to CP name. */ -+ result = CPName_ConvertTo(path, -+ reqBufferSize, -+ requestV1->fileName.name); -+ LOG(8, ("Converted path %s\n", requestV1->fileName.name)); -+ if (result < 0) { -+ LOG(8, ("CP conversion failed.\n")); -+ result = -EINVAL; -+ goto out; -+ } -+ requestV1->fileName.length = result; -+ } - break; - } - -@@ -246,20 +277,6 @@ HgfsPackGetattrRequest(HgfsReq *req, // IN/OUT: Request buffer - goto out; - } - -- if (fileName != NULL) { -- /* Convert to CP name. */ -- result = CPName_ConvertTo(path, -- reqBufferSize, -- fileName); -- LOG(8, ("Converted path %s\n", fileName)); -- if (result < 0) { -- LOG(8, ("CP conversion failed.\n")); -- result = -EINVAL; -- goto out; -- } -- *fileNameLength = result; -- } -- - req->payloadSize = reqSize + result; - - /* Fill in header here as payloadSize needs to be there. */ -diff --git a/open-vm-tools/vmhgfs-fuse/link.c b/open-vm-tools/vmhgfs-fuse/link.c -index a00e8446..777eb76e 100644 ---- a/open-vm-tools/vmhgfs-fuse/link.c -+++ b/open-vm-tools/vmhgfs-fuse/link.c -@@ -1,5 +1,5 @@ - /********************************************************* -- * Copyright (C) 2013 VMware, Inc. All rights reserved. -+ * Copyright (C) 2013,2019 VMware, Inc. All rights reserved. - * - * This program is free software; you can redistribute it and/or modify it - * under the terms of the GNU Lesser General Public License as published -@@ -51,36 +51,81 @@ HgfsPackSymlinkCreateRequest(const char* symlink, // IN: path of the link - { - HgfsRequestSymlinkCreateV3 *requestV3 = NULL; - HgfsRequestSymlinkCreate *request = NULL; -- char *symlinkName; -- uint32 *symlinkNameLength; -- char *targetName; -- uint32 *targetNameLength; - size_t targetNameBytes; -- - size_t requestSize; -- int result; -+ -+ targetNameBytes = strlen(symname) + 1; - - switch (opUsed) { - case HGFS_OP_CREATE_SYMLINK_V3: { -+ int result; -+ HgfsFileNameV3 *fileNameP; - requestV3 = HgfsGetRequestPayload(req); - -- /* We'll use these later. */ -- symlinkName = requestV3->symlinkName.name; -- symlinkNameLength = &requestV3->symlinkName.length; - requestV3->symlinkName.flags = 0; - requestV3->symlinkName.fid = HGFS_INVALID_HANDLE; - requestV3->symlinkName.caseType = HGFS_FILE_NAME_CASE_SENSITIVE; - requestV3->reserved = 0; - requestSize = sizeof(*requestV3) + HgfsGetRequestHeaderSize(); -+ /* Convert symlink name to CP format. */ -+ result = CPName_ConvertTo(symlink, -+ HGFS_LARGE_PACKET_MAX - (requestSize - 1), -+ requestV3->symlinkName.name); -+ if (result < 0) { -+ LOG(4, ("SymlinkName CP conversion failed.\n")); -+ return -EINVAL; -+ } -+ requestV3->symlinkName.length = result; -+ requestSize += result; -+ -+ /* Copy target name into request packet. */ -+ if (targetNameBytes > HGFS_LARGE_PACKET_MAX - (requestSize - 1)) { -+ LOG(4, ("Target name is too long.\n")); -+ return -EINVAL; -+ } -+ -+ fileNameP = (HgfsFileNameV3 *)((char *)&requestV3->symlinkName + -+ sizeof requestV3->symlinkName + result); -+ memcpy(fileNameP->name, symname, targetNameBytes); -+ LOG(6, ("Target name: \"%s\"\n", fileNameP->name)); -+ /* Convert target name to CPName-lite format. */ -+ CPNameLite_ConvertTo(fileNameP->name, targetNameBytes - 1, '/'); -+ fileNameP->length = targetNameBytes - 1; -+ fileNameP->flags = 0; -+ fileNameP->fid = HGFS_INVALID_HANDLE; -+ fileNameP->caseType = HGFS_FILE_NAME_CASE_SENSITIVE; - break; - } - case HGFS_OP_CREATE_SYMLINK: { -+ int result; -+ HgfsFileName *fileNameP; - request = (HgfsRequestSymlinkCreate *)(HGFS_REQ_PAYLOAD(req)); - -- /* We'll use these later. */ -- symlinkName = request->symlinkName.name; -- symlinkNameLength = &request->symlinkName.length; - requestSize = sizeof *request; -+ /* Convert symlink name to CP format. */ -+ result = CPName_ConvertTo(symlink, -+ HGFS_LARGE_PACKET_MAX - (requestSize - 1), -+ request->symlinkName.name); -+ if (result < 0) { -+ LOG(4, ("SymlinkName CP conversion failed.\n")); -+ return -EINVAL; -+ } -+ request->symlinkName.length = result; -+ requestSize += result; -+ -+ /* Copy target name into request packet. */ -+ if (targetNameBytes > HGFS_LARGE_PACKET_MAX - (requestSize - 1)) { -+ LOG(4, ("Target name is too long.\n")); -+ return -EINVAL; -+ } -+ -+ fileNameP = (HgfsFileName *)((char *)&request->symlinkName + -+ sizeof request->symlinkName + result); -+ memcpy(fileNameP->name, symname, targetNameBytes); -+ LOG(6, ("Target name: \"%s\"\n", fileNameP->name)); -+ /* Convert target name to CPName-lite format. */ -+ CPNameLite_ConvertTo(fileNameP->name, targetNameBytes - 1, '/'); -+ fileNameP->length = targetNameBytes - 1; - break; - } - default: -@@ -88,59 +133,13 @@ HgfsPackSymlinkCreateRequest(const char* symlink, // IN: path of the link - return -EPROTO; - } - -- -- /* Convert symlink name to CP format. */ -- result = CPName_ConvertTo(symlink, -- HGFS_LARGE_PACKET_MAX - (requestSize - 1), -- symlinkName); -- if (result < 0) { -- LOG(4, ("SymlinkName CP conversion failed.\n")); -- return -EINVAL; -- } -- -- *symlinkNameLength = result; -- req->payloadSize = requestSize + result; -+ req->payloadSize = requestSize; - - /* -- * Note the different buffer length. This is because HgfsRequestSymlink -- * contains two filenames, and once we place the first into the packet we -- * must account for it when determining the amount of buffer available for -- * the second. -- * -- * Also note that targetNameBytes accounts for the NUL character. Once -- * we've converted it to CP name, it won't be NUL-terminated and the length -- * of the string in the packet itself won't account for it. -+ * targetNameBytes accounts for the NUL character. Once we've converted -+ * it to CP name, it won't be NUL-terminated and the length of the string -+ * in the packet itself won't account for it. - */ -- if (opUsed == HGFS_OP_CREATE_SYMLINK_V3) { -- HgfsFileNameV3 *fileNameP; -- fileNameP = (HgfsFileNameV3 *)((char *)&requestV3->symlinkName + -- sizeof requestV3->symlinkName + result); -- targetName = fileNameP->name; -- targetNameLength = &fileNameP->length; -- fileNameP->flags = 0; -- fileNameP->fid = HGFS_INVALID_HANDLE; -- fileNameP->caseType = HGFS_FILE_NAME_CASE_SENSITIVE; -- } else { -- HgfsFileName *fileNameP; -- fileNameP = (HgfsFileName *)((char *)&request->symlinkName + -- sizeof request->symlinkName + result); -- targetName = fileNameP->name; -- targetNameLength = &fileNameP->length; -- } -- targetNameBytes = strlen(symname) + 1; -- -- /* Copy target name into request packet. */ -- if (targetNameBytes > HGFS_LARGE_PACKET_MAX - (requestSize - 1)) { -- LOG(4, ("Target name is too long.\n")); -- return -EINVAL; -- } -- memcpy(targetName, symname, targetNameBytes); -- LOG(6, ("Target name: \"%s\"\n", targetName)); -- -- /* Convert target name to CPName-lite format. */ -- CPNameLite_ConvertTo(targetName, targetNameBytes - 1, '/'); -- -- *targetNameLength = targetNameBytes - 1; - req->payloadSize += targetNameBytes - 1; - - /* Fill in header here as payloadSize needs to be there. */ diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools_10.3.5.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools_10.3.5.bb deleted file mode 100644 index 63a64fc7..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools_10.3.5.bb +++ /dev/null @@ -1,108 +0,0 @@ -# This recipe is modified from the recipe originally found in the Open-Switch -# repository: -# -# https://github.com/open-switch/ops-build -# yocto/openswitch/meta-foss-openswitch/meta-oe/recipes-support/open-vm-tools/open-vm-tools_10.0.5.bb -# Commit 9008de2d8e100f3f868c66765742bca9fa98f3f9 -# -# The recipe packaging has been relicensed under the MIT license for inclusion -# in meta-openembedded by agreement of the author (Diego Dompe). -# - -SUMMARY = "Tools to enhance VMWare guest integration and performance" -HOMEPAGE = "https://github.com/vmware/open-vm-tools" -SECTION = "vmware-tools" - -LICENSE = "LGPL-2.0 & GPL-2.0 & BSD & CDDL-1.0" -LIC_FILES_CHKSUM = "file://LICENSE;md5=559317809c5444fb39ceaf6ac45c43ac" -LICENSE_modules/freebsd/vmblock = "BSD" -LICENSE_modules/freebsd/vmmemctl = "GPL-2.0" -LICENSE_modules/freebsd/vmxnet = "GPL-2.0" -LICENSE_modules/linux = "GPL-2.0" -LICENSE_modules/solaris = "CDDL-1.0" - -SRC_URI = "git://github.com/vmware/open-vm-tools.git;protocol=https \ - file://tools.conf \ - file://vmtoolsd.service \ - file://vmtoolsd.init \ - file://0001-configure.ac-don-t-use-dnet-config.patch;patchdir=.. \ - file://0002-add-include-sys-sysmacros.h.patch;patchdir=.. \ - file://0003-Use-configure-test-for-struct-timespec.patch;patchdir=.. \ - file://0004-Fix-definition-of-ALLPERMS-and-ACCESSPERMS.patch;patchdir=.. \ - file://0005-Use-configure-to-test-for-feature-instead-of-platfor.patch;patchdir=.. \ - file://0006-Use-configure-test-for-sys-stat.h-include.patch;patchdir=.. \ - file://0007-Fix-subdir-objects-configure-error.patch;patchdir=.. \ - file://0008-include-poll.h-instead-of-sys-poll.h.patch;patchdir=.. \ - file://0009-Rename-poll.h-to-vm_poll.h.patch;patchdir=.. \ - file://0010-use-posix-strerror_r-unless-on-gnu-libc-system.patch;patchdir=.. \ - file://0011-Use-uintmax_t-for-handling-rlim_t.patch;patchdir=.. \ - file://0012-Use-off64_t-instead-of-__off64_t.patch;patchdir=.. \ - file://0013-misc-Do-not-print-NULL-string-into-logs.patch;patchdir=.. \ - file://0014-Fix-new-warnings-from-gcc9.patch;patchdir=.. \ -" -# stable-10.3.5 -SRCREV = "f2ff192717375b95a6b7e278fb47dbb3d3bc56d1" - -S = "${WORKDIR}/git/open-vm-tools" - -DEPENDS = "glib-2.0 glib-2.0-native util-linux libdnet procps libtirpc" - -# open-vm-tools is supported only on x86. -COMPATIBLE_HOST = '(x86_64.*|i.86.*)-linux' - -inherit autotools pkgconfig systemd update-rc.d - -SYSTEMD_SERVICE_${PN} = "vmtoolsd.service" - -EXTRA_OECONF = "--without-icu --disable-multimon --disable-docs \ - --disable-tests --without-gtkmm --without-xerces --without-pam \ - --disable-grabbitmqproxy --disable-vgauth --disable-deploypkg \ - --without-root-privileges --without-kernel-modules" - -NO_X11_FLAGS = "--without-x --without-gtk2 --without-gtk3" -X11_DEPENDS = "libxext libxi libxrender libxrandr libxtst gtk+ gdk-pixbuf" -PACKAGECONFIG[x11] = ",${NO_X11_FLAGS},${X11_DEPENDS}" - -# fuse gets implicitly detected; there is no --without-fuse option. -PACKAGECONFIG[fuse] = ",,fuse" - -CFLAGS_append_toolchain-clang = " -Wno-address-of-packed-member" -FILES_${PN} += "\ - ${libdir}/open-vm-tools/plugins/vmsvc/lib*.so \ - ${libdir}/open-vm-tools/plugins/common/lib*.so \ - ${sysconfdir}/vmware-tools/tools.conf \ -" -FILES_${PN}-locale += "${datadir}/open-vm-tools/messages" -FILES_${PN}-dev += "${libdir}/open-vm-tools/plugins/common/lib*.la" - -CONFFILES_${PN} += "${sysconfdir}/vmware-tools/tools.conf" - -RDEPENDS_${PN} = "util-linux libdnet fuse" - -do_install_append() { - ln -sf ${sbindir}/mount.vmhgfs ${D}/sbin/mount.vmhgfs - install -d ${D}${sysconfdir}/vmware-tools - if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then - install -d ${D}${systemd_unitdir}/system - install -m 644 ${WORKDIR}/*.service ${D}${systemd_unitdir}/system - else - install -d ${D}${sysconfdir}/init.d - install -m 0755 ${WORKDIR}/vmtoolsd.init ${D}${sysconfdir}/init.d/vmtoolsd - fi - install -m 0644 ${WORKDIR}/tools.conf ${D}${sysconfdir}/vmware-tools/tools.conf -} - -do_configure_prepend() { - export CUSTOM_DNET_NAME=dnet - export CUSTOM_DNET_LIBS=-L${STAGING_LIBDIR}/libdnet.so -} - -INITSCRIPT_PACKAGES = "${PN}" -INITSCRIPT_NAME_${PN} = "vmtoolsd" -INITSCRIPT_PARAMS_${PN} = "start 90 2 3 4 5 . stop 60 0 1 6 ." - -python() { - if 'networking-layer' not in d.getVar('BBFILE_COLLECTIONS').split() or \ - 'filesystems-layer' not in d.getVar('BBFILE_COLLECTIONS').split(): - raise bb.parse.SkipRecipe('Requires meta-networking and meta-filesystems to be present.') -} diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools_11.0.1.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools_11.0.1.bb new file mode 100644 index 00000000..34a81d21 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools_11.0.1.bb @@ -0,0 +1,116 @@ +# This recipe is modified from the recipe originally found in the Open-Switch +# repository: +# +# https://github.com/open-switch/ops-build +# yocto/openswitch/meta-foss-openswitch/meta-oe/recipes-support/open-vm-tools/open-vm-tools_10.0.5.bb +# Commit 9008de2d8e100f3f868c66765742bca9fa98f3f9 +# +# The recipe packaging has been relicensed under the MIT license for inclusion +# in meta-openembedded by agreement of the author (Diego Dompe). +# + +SUMMARY = "Tools to enhance VMWare guest integration and performance" +HOMEPAGE = "https://github.com/vmware/open-vm-tools" +SECTION = "vmware-tools" + +LICENSE = "LGPL-2.0 & GPL-2.0 & BSD & CDDL-1.0" +LIC_FILES_CHKSUM = "file://LICENSE;md5=559317809c5444fb39ceaf6ac45c43ac" +LICENSE_modules/freebsd/vmblock = "BSD" +LICENSE_modules/freebsd/vmmemctl = "GPL-2.0" +LICENSE_modules/freebsd/vmxnet = "GPL-2.0" +LICENSE_modules/linux = "GPL-2.0" +LICENSE_modules/solaris = "CDDL-1.0" + +SRC_URI = "git://github.com/vmware/open-vm-tools.git;protocol=https \ + file://tools.conf \ + file://vmtoolsd.service \ + file://vmtoolsd.init \ + file://0001-configure.ac-don-t-use-dnet-config.patch;patchdir=.. \ + file://0002-add-include-sys-sysmacros.h.patch;patchdir=.. \ + file://0003-Use-configure-test-for-struct-timespec.patch;patchdir=.. \ + file://0004-Fix-definition-of-ALLPERMS-and-ACCESSPERMS.patch;patchdir=.. \ + file://0005-Use-configure-to-test-for-feature-instead-of-platfor.patch;patchdir=.. \ + file://0006-Use-configure-test-for-sys-stat.h-include.patch;patchdir=.. \ + file://0007-Fix-subdir-objects-configure-error.patch;patchdir=.. \ + file://0008-include-poll.h-instead-of-sys-poll.h.patch;patchdir=.. \ + file://0009-Rename-poll.h-to-vm_poll.h.patch;patchdir=.. \ + file://0010-use-posix-strerror_r-unless-on-gnu-libc-system.patch;patchdir=.. \ + file://0011-Use-uintmax_t-for-handling-rlim_t.patch;patchdir=.. \ + file://0012-Use-off64_t-instead-of-__off64_t.patch;patchdir=.. \ + file://0013-misc-Do-not-print-NULL-string-into-logs.patch;patchdir=.. \ + file://0001-GitHub-Issue-367.-Remove-references-to-deprecated-G_.patch;patchdir=.. \ + file://0001-Make-HgfsConvertFromNtTimeNsec-aware-of-64-bit-time_.patch;patchdir=.. \ + file://0002-hgfsServerLinux-Consider-64bit-time_t-possibility.patch;patchdir=.. \ + file://0001-utilBacktrace-Ignore-Warray-bounds.patch;patchdir=.. \ + file://0001-hgfsmounter-Makefile.am-support-usrmerge.patch;patchdir=.. \ +" + +SRCREV = "d3edfd142a81096f9f58aff17d84219b457f4987" + +S = "${WORKDIR}/git/open-vm-tools" + +DEPENDS = "glib-2.0 glib-2.0-native util-linux libdnet procps libtirpc" + +# open-vm-tools is supported only on x86. +COMPATIBLE_HOST = '(x86_64.*|i.86.*)-linux' + +inherit autotools pkgconfig systemd update-rc.d + +SYSTEMD_SERVICE_${PN} = "vmtoolsd.service" + +EXTRA_OECONF = "--without-icu --disable-multimon --disable-docs \ + --disable-tests --without-gtkmm --without-xerces --without-pam \ + --disable-vgauth --disable-deploypkg \ + --without-root-privileges --without-kernel-modules --with-tirpc \ + --with-udev-rules-dir=${nonarch_base_libdir}/udev/rules.d" + +NO_X11_FLAGS = "--without-x --without-gtk2 --without-gtk3" +X11_DEPENDS = "libxext libxi libxrender libxrandr libxtst gtk+ gdk-pixbuf" +PACKAGECONFIG[x11] = ",${NO_X11_FLAGS},${X11_DEPENDS}" + +# fuse gets implicitly detected; there is no --without-fuse option. +PACKAGECONFIG[fuse] = ",,fuse" + +CFLAGS_append_toolchain-clang = " -Wno-address-of-packed-member" +FILES_${PN} += "\ + ${libdir}/open-vm-tools/plugins/vmsvc/lib*.so \ + ${libdir}/open-vm-tools/plugins/common/lib*.so \ + ${sysconfdir}/vmware-tools/tools.conf \ +" +FILES_${PN}-locale += "${datadir}/open-vm-tools/messages" +FILES_${PN}-dev += "${libdir}/open-vm-tools/plugins/common/lib*.la" + +CONFFILES_${PN} += "${sysconfdir}/vmware-tools/tools.conf" + +RDEPENDS_${PN} = "util-linux libdnet fuse" + +do_install_append() { + if ! ${@bb.utils.contains('DISTRO_FEATURES','usrmerge','true','false',d)}; then + install -d ${D}/sbin + ln -sf ${sbindir}/mount.vmhgfs ${D}/sbin/mount.vmhgfs + fi + install -d ${D}${sysconfdir}/vmware-tools + if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then + install -d ${D}${systemd_unitdir}/system + install -m 644 ${WORKDIR}/*.service ${D}${systemd_unitdir}/system + else + install -d ${D}${sysconfdir}/init.d + install -m 0755 ${WORKDIR}/vmtoolsd.init ${D}${sysconfdir}/init.d/vmtoolsd + fi + install -m 0644 ${WORKDIR}/tools.conf ${D}${sysconfdir}/vmware-tools/tools.conf +} + +do_configure_prepend() { + export CUSTOM_DNET_NAME=dnet + export CUSTOM_DNET_LIBS=-L${STAGING_LIBDIR}/libdnet.so +} + +INITSCRIPT_PACKAGES = "${PN}" +INITSCRIPT_NAME_${PN} = "vmtoolsd" +INITSCRIPT_PARAMS_${PN} = "start 90 2 3 4 5 . stop 60 0 1 6 ." + +python() { + if 'networking-layer' not in d.getVar('BBFILE_COLLECTIONS').split() or \ + 'filesystems-layer' not in d.getVar('BBFILE_COLLECTIONS').split(): + raise bb.parse.SkipRecipe('Requires meta-networking and meta-filesystems to be present.') +} diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/opencl/clinfo_2.2.18.04.06.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/opencl/clinfo_2.2.18.04.06.bb new file mode 100644 index 00000000..9fd88ced --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/opencl/clinfo_2.2.18.04.06.bb @@ -0,0 +1,20 @@ +SUMMARY = "Enumerate all known properties of OpenCL platform and devices." +DESCRIPTION = "clinfo is a simple command-line application that enumerates \ +all possible (known) properties of the OpenCL platform and devices \ +available on the system." +HOMEPAGE = "https://github.com/Oblomov/clinfo" + +LICENSE = "CC0-1.0" +LIC_FILES_CHKSUM = "file://LICENSE;md5=fd8857f774dfb0eefe1e80c8f9240a7e" + +SRC_URI = "git://github.com/Oblomov/clinfo.git;protocol=https" + +SRCREV = "59d0daf898e48d76ccbb788acbba258fa0a8ba7c" + +S = "${WORKDIR}/git" + +DEPENDS += "opencl-headers opencl-icd-loader" + +do_install() { + install -D -m 755 clinfo ${D}${bindir}/clinfo +} diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/openct/openct_0.6.20.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/openct/openct_0.6.20.bb index 67b7c297..08b2e3c2 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/openct/openct_0.6.20.bb +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/openct/openct_0.6.20.bb @@ -56,10 +56,6 @@ FILES_${PN}-dbg += " \ INSANE_SKIP_${PN} += "dev-deps" -do_install_append() { - rm -r ${D}/${localstatedir}/run -} - do_install () { rm -rf ${D} install -d ${D}/etc @@ -87,4 +83,6 @@ do_install () { install -dm 755 ${D}${localstatedir}/run/openct touch ${D}${localstatedir}/run/openct/status chmod 644 ${D}${localstatedir}/run/openct/status + + rm -r ${D}/${localstatedir}/run } diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/opencv/ade/0001-use-GNUInstallDirs-for-detecting-install-paths.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/opencv/ade/0001-use-GNUInstallDirs-for-detecting-install-paths.patch new file mode 100644 index 00000000..f038b0aa --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/opencv/ade/0001-use-GNUInstallDirs-for-detecting-install-paths.patch @@ -0,0 +1,39 @@ +From 67ccf77d97b76e8260c9d793ab172577e2393dbc Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Thu, 19 Dec 2019 21:33:46 -0800 +Subject: [PATCH] use GNUInstallDirs for detecting install paths + +This helps with multilib builds + +Upstream-Status: Submitted [https://github.com/opencv/ade/pull/19] +Signed-off-by: Khem Raj +--- + sources/ade/CMakeLists.txt | 10 ++++++---- + 1 file changed, 6 insertions(+), 4 deletions(-) + +diff --git a/sources/ade/CMakeLists.txt b/sources/ade/CMakeLists.txt +index 2d1dd20..46415d1 100644 +--- a/sources/ade/CMakeLists.txt ++++ b/sources/ade/CMakeLists.txt +@@ -47,12 +47,14 @@ if(BUILD_ADE_DOCUMENTATION) + VERBATIM) + endif() + ++include(GNUInstallDirs) ++ + install(TARGETS ade COMPONENT dev + EXPORT adeTargets +- ARCHIVE DESTINATION lib +- LIBRARY DESTINATION lib +- RUNTIME DESTINATION lib +- INCLUDES DESTINATION include) ++ ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} ++ LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ++ RUNTIME DESTINATION ${CMAKE_INSTALL_LIBDIR} ++ INCLUDES DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}) + + install(EXPORT adeTargets DESTINATION share/ade COMPONENT dev) + +-- +2.24.1 + diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/opencv/ade_0.1.1f.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/opencv/ade_0.1.1f.bb new file mode 100644 index 00000000..38618021 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/opencv/ade_0.1.1f.bb @@ -0,0 +1,22 @@ +SUMMARY = "A graph construction, manipulation, and processing framework" +DESCRIPTION = "ADE Framework is a graph construction, manipulation, \ +and processing framework. ADE Framework is suitable for \ +organizing data flow processing and execution." +HOMEPAGE = "https://github.com/opencv/ade" + +SRC_URI = "git://github.com/opencv/ade.git \ + file://0001-use-GNUInstallDirs-for-detecting-install-paths.patch \ + " + +SRCREV = "58b2595a1a95cc807be8bf6222f266a9a1f393a9" + +LICENSE = "Apache-2.0" +LIC_FILES_CHKSUM = "file://LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57" + +inherit cmake + +S = "${WORKDIR}/git" + +EXTRA_OECMAKE += " -DCMAKE_BUILD_TYPE=Release" + +FILES_${PN}-dev += "${datadir}/${BPN}/*.cmake" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/opencv/opencv/0001-3rdparty-ippicv-Use-pre-downloaded-ipp.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/opencv/opencv/0001-3rdparty-ippicv-Use-pre-downloaded-ipp.patch index 4d76ad40..5f909c1a 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/opencv/opencv/0001-3rdparty-ippicv-Use-pre-downloaded-ipp.patch +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/opencv/opencv/0001-3rdparty-ippicv-Use-pre-downloaded-ipp.patch @@ -1,16 +1,17 @@ -From 4801a057730632225337d7f6d26b9335e6b9b078 Mon Sep 17 00:00:00 2001 +From 85b882b4ceb57fe6538f47af58d0a970923fde0e Mon Sep 17 00:00:00 2001 From: Ricardo Ribalda Delgado Date: Thu, 31 Mar 2016 00:20:15 +0200 Subject: [PATCH] 3rdparty/ippicv: Use pre-downloaded ipp Signed-off-by: Ricardo Ribalda Delgado Signed-off-by: Ismo Puustinen + --- 3rdparty/ippicv/ippicv.cmake | 15 +-------------- 1 file changed, 1 insertion(+), 14 deletions(-) diff --git a/3rdparty/ippicv/ippicv.cmake b/3rdparty/ippicv/ippicv.cmake -index d601da4bb..f6fc1098c 100644 +index ae8748c..305abdb 100644 --- a/3rdparty/ippicv/ippicv.cmake +++ b/3rdparty/ippicv/ippicv.cmake @@ -39,18 +39,5 @@ function(download_ippicv root_var) @@ -33,6 +34,3 @@ index d601da4bb..f6fc1098c 100644 - endif() + set(${root_var} "${THE_ROOT}/${OPENCV_ICV_PACKAGE_SUBDIR}" PARENT_SCOPE) endfunction() --- -2.13.4 - diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/opencv/opencv/0001-Dont-use-isystem.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/opencv/opencv/0001-Dont-use-isystem.patch index bf0b80a3..40d3f53e 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/opencv/opencv/0001-Dont-use-isystem.patch +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/opencv/opencv/0001-Dont-use-isystem.patch @@ -1,4 +1,4 @@ -From 7144c44ec70dee73a628463b99ffeed74b1a8ef6 Mon Sep 17 00:00:00 2001 +From 9659f5a1e75fc29c9879c301767bba72ecf9042a Mon Sep 17 00:00:00 2001 From: Khem Raj Date: Tue, 11 Sep 2018 00:21:18 -0700 Subject: [PATCH] Dont use isystem @@ -8,12 +8,13 @@ clang really does not like it Upstream-Status: Pending Signed-off-by: Khem Raj + --- cmake/OpenCVPCHSupport.cmake | 2 ++ 1 file changed, 2 insertions(+) diff --git a/cmake/OpenCVPCHSupport.cmake b/cmake/OpenCVPCHSupport.cmake -index f9b1b48b65..fe27a136f5 100644 +index 59bc826..055dfce 100644 --- a/cmake/OpenCVPCHSupport.cmake +++ b/cmake/OpenCVPCHSupport.cmake @@ -18,6 +18,8 @@ IF(CV_GCC) @@ -25,6 +26,3 @@ index f9b1b48b65..fe27a136f5 100644 SET(_PCH_include_prefix "-I") SET(_PCH_isystem_prefix "-isystem") SET(_PCH_define_prefix "-D") --- -2.18.0 - diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/opencv/opencv/0001-Temporarliy-work-around-deprecated-ffmpeg-RAW-functi.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/opencv/opencv/0001-Temporarliy-work-around-deprecated-ffmpeg-RAW-functi.patch index 63cb7f94..f8ccd1d5 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/opencv/opencv/0001-Temporarliy-work-around-deprecated-ffmpeg-RAW-functi.patch +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/opencv/opencv/0001-Temporarliy-work-around-deprecated-ffmpeg-RAW-functi.patch @@ -1,19 +1,20 @@ -From 7d31f41d2a6759e244983504ce855fc32916b97a Mon Sep 17 00:00:00 2001 +From fe27d0e2341683606704115949d16250e4cacbfa Mon Sep 17 00:00:00 2001 From: Jason Wessel Date: Wed, 9 May 2018 13:33:59 -0700 Subject: [PATCH] Temporarliy work around deprecated ffmpeg RAW function compile failure until next uprev Signed-off-by: Jason Wessel + --- modules/videoio/src/cap_ffmpeg_impl.hpp | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/modules/videoio/src/cap_ffmpeg_impl.hpp b/modules/videoio/src/cap_ffmpeg_impl.hpp -index 5a9b10f075..97c6b74b07 100644 +index 0d360ad..566df66 100644 --- a/modules/videoio/src/cap_ffmpeg_impl.hpp +++ b/modules/videoio/src/cap_ffmpeg_impl.hpp -@@ -667,6 +667,14 @@ struct ImplMutex::Impl +@@ -736,6 +736,14 @@ struct ImplMutex::Impl #endif @@ -28,6 +29,3 @@ index 5a9b10f075..97c6b74b07 100644 void ImplMutex::init() { impl = new Impl(); --- -2.11.0 - diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/opencv/opencv/0001-carotene-Replace-ipcp-unit-growth-with-ipa-cp-unit-g.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/opencv/opencv/0001-carotene-Replace-ipcp-unit-growth-with-ipa-cp-unit-g.patch new file mode 100644 index 00000000..43d32fbc --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/opencv/opencv/0001-carotene-Replace-ipcp-unit-growth-with-ipa-cp-unit-g.patch @@ -0,0 +1,55 @@ +From 1edc925ecd7fb54d2dc78452069084475fbe2a70 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Thu, 16 Jan 2020 08:52:00 -0800 +Subject: [PATCH] carotene: Replace ipcp-unit-growth with ipa-cp-unit-growth on gcc >= 10 + +gcc 10+ has renamed this option, therefore check for gcc version before +deciding which name to use for opt parameter + +Upstream-Status: Submitted [https://github.com/opencv/opencv/pull/16369] +Signed-off-by: Khem Raj +--- + 3rdparty/carotene/CMakeLists.txt | 8 ++++++-- + 3rdparty/carotene/hal/CMakeLists.txt | 7 ++++++- + 2 files changed, 12 insertions(+), 3 deletions(-) + +diff --git a/3rdparty/carotene/CMakeLists.txt b/3rdparty/carotene/CMakeLists.txt +index bfa9368d79..1c43b85b28 100644 +--- a/3rdparty/carotene/CMakeLists.txt ++++ b/3rdparty/carotene/CMakeLists.txt +@@ -20,8 +20,12 @@ if(CMAKE_COMPILER_IS_GNUCC) + # - matchTemplate about 5-10% + # - goodFeaturesToTrack 10-20% + # - cornerHarris 30% for some cases +- +- set_source_files_properties(${carotene_sources} COMPILE_FLAGS "--param ipcp-unit-growth=100000 --param inline-unit-growth=100000 --param large-stack-frame-growth=5000") ++ set_source_files_properties(${carotene_sources} COMPILE_FLAGS "--param inline-unit-growth=100000 --param large-stack-frame-growth=5000") ++ if(CMAKE_CXX_COMPILER_VERSION VERSION_LESS "10.0.0") ++ set_source_files_properties(${carotene_sources} COMPILE_FLAGS "--param ipcp-unit-growth=100000 ${COMPILE_FLAGS}") ++ else() ++ set_source_files_properties(${carotene_sources} COMPILE_FLAGS "--param ipa-cp-unit-growth=100000 ${COMPILE_FLAGS}") ++ endif() + endif() + + add_library(carotene_objs OBJECT +diff --git a/3rdparty/carotene/hal/CMakeLists.txt b/3rdparty/carotene/hal/CMakeLists.txt +index c4b9acaedd..bbc5b11a80 100644 +--- a/3rdparty/carotene/hal/CMakeLists.txt ++++ b/3rdparty/carotene/hal/CMakeLists.txt +@@ -90,7 +90,12 @@ set_property(DIRECTORY APPEND PROPERTY COMPILE_DEFINITIONS ${carotene_defs}) + # matchTemplate about 5-10% + # goodFeaturesToTrack 10-20% + # cornerHarris 30% for some cases +- set_source_files_properties(impl.cpp $ COMPILE_FLAGS "--param ipcp-unit-growth=100000 --param inline-unit-growth=100000 --param large-stack-frame-growth=5000") ++ set_source_files_properties(impl.cpp $ COMPILE_FLAGS "--param inline-unit-growth=100000 --param large-stack-frame-growth=5000") ++ if(CMAKE_CXX_COMPILER_VERSION VERSION_LESS "10.0.0") ++ set_source_files_properties(impl.cpp $ COMPILE_FLAGS "--param ipcp-unit-growth=100000 ${COMPILE_FLAGS}") ++ else() ++ set_source_files_properties(impl.cpp $ COMPILE_FLAGS "--param ipa-cp-unit-growth=100000 ${COMPILE_FLAGS}") ++ endif() + # set_source_files_properties(impl.cpp $ COMPILE_FLAGS "--param ipcp-unit-growth=100000 --param inline-unit-growth=100000 --param large-stack-frame-growth=5000") + endif() + +-- +2.25.0 + diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/opencv/opencv/0002-Make-opencv-ts-create-share-library-intead-of-static.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/opencv/opencv/0002-Make-opencv-ts-create-share-library-intead-of-static.patch index a845505a..46198fb7 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/opencv/opencv/0002-Make-opencv-ts-create-share-library-intead-of-static.patch +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/opencv/opencv/0002-Make-opencv-ts-create-share-library-intead-of-static.patch @@ -1,15 +1,16 @@ -From 350525293aef65490e80104ddd99e1b21c5d54b0 Mon Sep 17 00:00:00 2001 +From 46ffa1f8f443b71673774fcb864eb741bbc26200 Mon Sep 17 00:00:00 2001 From: Bian Naimeng Date: Wed, 19 Apr 2017 03:11:37 +0900 -Subject: [PATCH 2/3] Make opencv-ts create share library intead of static. +Subject: [PATCH] Make opencv-ts create share library intead of static. Signed-off-by: Lei Maohui + --- modules/ts/CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/ts/CMakeLists.txt b/modules/ts/CMakeLists.txt -index f95bed079..ee67858df 100644 +index f95bed0..ee67858 100644 --- a/modules/ts/CMakeLists.txt +++ b/modules/ts/CMakeLists.txt @@ -4,7 +4,7 @@ if(NOT BUILD_opencv_ts AND NOT BUILD_TESTS AND NOT BUILD_PERF_TESTS) @@ -21,6 +22,3 @@ index f95bed079..ee67858df 100644 set(OPENCV_MODULE_IS_PART_OF_WORLD FALSE) if(WINRT) --- -2.13.4 - diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/opencv/opencv/0003-To-fix-errors-as-following.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/opencv/opencv/0003-To-fix-errors-as-following.patch index 5270b8c9..336c2e08 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/opencv/opencv/0003-To-fix-errors-as-following.patch +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/opencv/opencv/0003-To-fix-errors-as-following.patch @@ -1,7 +1,7 @@ -From ace48a628dca34d742615598afeef42ed323a029 Mon Sep 17 00:00:00 2001 +From 867caccc358266f7021f076fc8c8e41bf048782c Mon Sep 17 00:00:00 2001 From: Huang Qiyu Date: Fri, 19 May 2017 04:27:50 +0900 -Subject: [PATCH 3/3] To fix errors as following: +Subject: [PATCH] To fix errors as following: "test_main.cpp:45: undefined reference to `parseCustomOptions(int, char**)'" "perf_abs.cpp:13: undefined reference to `cvtest::param_seed'" @@ -13,17 +13,18 @@ Also add the visibility changes for certain OpenCL-related functions in ts module. Signed-off-by: Ismo Puustinen + --- - modules/ts/include/opencv2/ts.hpp | 6 +++--- + modules/ts/include/opencv2/ts.hpp | 4 ++-- modules/ts/include/opencv2/ts/ocl_test.hpp | 2 +- modules/ts/include/opencv2/ts/ts_ext.hpp | 2 +- - 3 files changed, 5 insertions(+), 5 deletions(-) + 3 files changed, 4 insertions(+), 4 deletions(-) -Index: git/modules/ts/include/opencv2/ts.hpp -=================================================================== ---- git.orig/modules/ts/include/opencv2/ts.hpp -+++ git/modules/ts/include/opencv2/ts.hpp -@@ -608,7 +608,7 @@ protected: +diff --git a/modules/ts/include/opencv2/ts.hpp b/modules/ts/include/opencv2/ts.hpp +index b9d6b74..f1ee7ee 100644 +--- a/modules/ts/include/opencv2/ts.hpp ++++ b/modules/ts/include/opencv2/ts.hpp +@@ -622,7 +622,7 @@ protected: } }; @@ -32,7 +33,7 @@ Index: git/modules/ts/include/opencv2/ts.hpp struct DefaultRngAuto { -@@ -671,7 +671,7 @@ private: +@@ -685,7 +685,7 @@ private: #endif #endif @@ -41,10 +42,10 @@ Index: git/modules/ts/include/opencv2/ts.hpp #define CV_TEST_INIT0_NOOP (void)0 -Index: git/modules/ts/include/opencv2/ts/ocl_test.hpp -=================================================================== ---- git.orig/modules/ts/include/opencv2/ts/ocl_test.hpp -+++ git/modules/ts/include/opencv2/ts/ocl_test.hpp +diff --git a/modules/ts/include/opencv2/ts/ocl_test.hpp b/modules/ts/include/opencv2/ts/ocl_test.hpp +index 11572e9..438112e 100644 +--- a/modules/ts/include/opencv2/ts/ocl_test.hpp ++++ b/modules/ts/include/opencv2/ts/ocl_test.hpp @@ -82,7 +82,7 @@ inline UMat ToUMat(InputArray src) return dst; } @@ -54,10 +55,10 @@ Index: git/modules/ts/include/opencv2/ts/ocl_test.hpp #define MAX_VALUE 357 -Index: git/modules/ts/include/opencv2/ts/ts_ext.hpp -=================================================================== ---- git.orig/modules/ts/include/opencv2/ts/ts_ext.hpp -+++ git/modules/ts/include/opencv2/ts/ts_ext.hpp +diff --git a/modules/ts/include/opencv2/ts/ts_ext.hpp b/modules/ts/include/opencv2/ts/ts_ext.hpp +index b5cea3e..e5b0b4b 100644 +--- a/modules/ts/include/opencv2/ts/ts_ext.hpp ++++ b/modules/ts/include/opencv2/ts/ts_ext.hpp @@ -9,7 +9,7 @@ #define OPENCV_TS_EXT_HPP diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/opencv/opencv/download.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/opencv/opencv/download.patch new file mode 100644 index 00000000..fa8db880 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/opencv/opencv/download.patch @@ -0,0 +1,32 @@ +This CMake module will download files during do_configure. This is bad as it +means we can't do offline builds. + +Add an option to disallow downloads by emitting a fatal error. + +Upstream-Status: Pending +Signed-off-by: Ross Burton + +diff --git a/cmake/OpenCVDownload.cmake b/cmake/OpenCVDownload.cmake +index cdc47ad2cb..74573f45a2 100644 +--- a/cmake/OpenCVDownload.cmake ++++ b/cmake/OpenCVDownload.cmake +@@ -14,6 +14,7 @@ + # RELATIVE_URL - if set, then URL is treated as a base, and FILENAME will be appended to it + # Note: uses OPENCV_DOWNLOAD_PATH folder as cache, default is /.cache + ++set(OPENCV_ALLOW_DOWNLOADS ON CACHE BOOL "Allow downloads") + set(HELP_OPENCV_DOWNLOAD_PATH "Cache directory for downloaded files") + if(DEFINED ENV{OPENCV_DOWNLOAD_PATH}) + set(OPENCV_DOWNLOAD_PATH "$ENV{OPENCV_DOWNLOAD_PATH}" CACHE PATH "${HELP_OPENCV_DOWNLOAD_PATH}") +@@ -153,6 +154,11 @@ function(ocv_download) + + # Download + if(NOT EXISTS "${CACHE_CANDIDATE}") ++ if(NOT OPENCV_ALLOW_DOWNLOADS) ++ message(FATAL_ERROR "Not going to download ${DL_FILENAME}") ++ return() ++ endif() ++ + ocv_download_log("#cmake_download \"${CACHE_CANDIDATE}\" \"${DL_URL}\"") + file(DOWNLOAD "${DL_URL}" "${CACHE_CANDIDATE}" + INACTIVITY_TIMEOUT 60 diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/opencv/opencv/fixpkgconfig.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/opencv/opencv/fixpkgconfig.patch deleted file mode 100644 index 3ed3468d..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/opencv/opencv/fixpkgconfig.patch +++ /dev/null @@ -1,30 +0,0 @@ -Index: git/cmake/OpenCVGenPkgconfig.cmake -=================================================================== ---- git.orig/cmake/OpenCVGenPkgconfig.cmake -+++ git/cmake/OpenCVGenPkgconfig.cmake -@@ -31,7 +31,7 @@ macro(fix_prefix lst isown) - get_filename_component(libdir "${item}" PATH) - get_filename_component(_libname "${item}" NAME) - ocv_get_libname(libname "${_libname}") -- list(APPEND _lst "-L${libdir}" "-l${libname}") -+ list(APPEND _lst "-l${libname}") - else() - list(APPEND _lst "-l${item}") - endif() -@@ -124,11 +124,14 @@ ocv_list_unique(_extra) - ocv_list_unique(_3rdparty) - - set(OPENCV_PC_LIBS -- "-L\${exec_prefix}/${OPENCV_LIB_INSTALL_PATH}" -+ "-L\${exec_prefix}/${OPENCV_3P_LIB_INSTALL_PATH}" - "${_modules}" - ) - if(BUILD_SHARED_LIBS) -- set(OPENCV_PC_LIBS_PRIVATE "${_extra}") -+ set(OPENCV_PC_LIBS_PRIVATE -+ "-L\${exec_prefix}/${OPENCV_LIB_INSTALL_PATH}" -+ "${_extra}" -+ ) - else() - set(OPENCV_PC_LIBS_PRIVATE - "-L\${exec_prefix}/${OPENCV_3P_LIB_INSTALL_PATH}" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/opencv/opencv/uselocalxfeatures.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/opencv/opencv/uselocalxfeatures.patch deleted file mode 100644 index fc273a89..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/opencv/opencv/uselocalxfeatures.patch +++ /dev/null @@ -1,20 +0,0 @@ -diff --git a/modules/xfeatures2d/CMakeLists.txt b/modules/xfeatures2d/CMakeLists.txt -index e1755595..c7009c47 100644 ---- a/modules/xfeatures2d/CMakeLists.txt -+++ b/modules/xfeatures2d/CMakeLists.txt -@@ -5,10 +5,10 @@ ocv_define_module(xfeatures2d opencv_core opencv_imgproc opencv_features2d openc - include(${CMAKE_CURRENT_SOURCE_DIR}/cmake/download_vgg.cmake) - include(${CMAKE_CURRENT_SOURCE_DIR}/cmake/download_boostdesc.cmake) - set(DOWNLOAD_DIR "${OpenCV_BINARY_DIR}/downloads/xfeatures2d") --download_boost_descriptors("${DOWNLOAD_DIR}" boost_status) --download_vgg_descriptors("${DOWNLOAD_DIR}" vgg_status) --if(NOT boost_status OR NOT vgg_status) -- ocv_module_disable(xfeatures2d) --endif() -+#download_boost_descriptors("${DOWNLOAD_DIR}" boost_status) -+#download_vgg_descriptors("${DOWNLOAD_DIR}" vgg_status) -+#if(NOT boost_status OR NOT vgg_status) -+# ocv_module_disable(xfeatures2d) -+#endif() - - ocv_module_include_directories("${DOWNLOAD_DIR}") diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/opencv/opencv_3.4.5.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/opencv/opencv_3.4.5.bb deleted file mode 100644 index ce60698b..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/opencv/opencv_3.4.5.bb +++ /dev/null @@ -1,190 +0,0 @@ -SUMMARY = "Opencv : The Open Computer Vision Library" -HOMEPAGE = "http://opencv.org/" -SECTION = "libs" - -LICENSE = "BSD-3-Clause" -LIC_FILES_CHKSUM = "file://LICENSE;md5=62d89c5dcb0583609ea919c56be0ee76" - -ARM_INSTRUCTION_SET_armv4 = "arm" -ARM_INSTRUCTION_SET_armv5 = "arm" - -DEPENDS = "libtool swig-native bzip2 zlib glib-2.0 libwebp" - -SRCREV_opencv = "8f1356c3c5b16721349582db461a2051653059e8" -SRCREV_contrib = "7292df62624ded8af8035231435dfd17c93e1a80" -SRCREV_ipp = "32e315a5b106a7b89dbed51c28f8120a48b368b4" -SRCREV_boostdesc = "34e4206aef44d50e6bbcd0ab06354b52e7466d26" -SRCREV_vgg = "fccf7cd6a4b12079f73bbfb21745f9babcd4eb1d" -SRC_URI[tinydnn.md5sum] = "adb1c512e09ca2c7a6faef36f9c53e59" -SRC_URI[tinydnn.sha256sum] = "e2c61ce8c5debaa644121179e9dbdcf83f497f39de853f8dd5175846505aa18b" - -def ipp_filename(d): - import re - arch = d.getVar('TARGET_ARCH') - if re.match("i.86$", arch): - return "ippicv_2019_lnx_ia32_general_20180723.tgz" - else: - return "ippicv_2019_lnx_intel64_general_20180723.tgz" - -def ipp_md5sum(d): - import re - arch = d.getVar('TARGET_ARCH') - if re.match("i.86$", arch): - return "4f38432c30bfd6423164b7a24bbc98a0" - else: - return "c0bd78adb4156bbf552c1dfe90599607" - -IPP_FILENAME = "${@ipp_filename(d)}" -IPP_MD5 = "${@ipp_md5sum(d)}" - -SRCREV_FORMAT = "opencv_contrib_ipp_boostdesc_vgg" -SRC_URI = "git://github.com/opencv/opencv.git;name=opencv \ - git://github.com/opencv/opencv_contrib.git;destsuffix=contrib;name=contrib \ - git://github.com/opencv/opencv_3rdparty.git;branch=ippicv/master_20180723;destsuffix=ipp;name=ipp \ - git://github.com/opencv/opencv_3rdparty.git;branch=contrib_xfeatures2d_boostdesc_20161012;destsuffix=boostdesc;name=boostdesc \ - git://github.com/opencv/opencv_3rdparty.git;branch=contrib_xfeatures2d_vgg_20160317;destsuffix=vgg;name=vgg \ - https://github.com/tiny-dnn/tiny-dnn/archive/v1.0.0a3.tar.gz;destsuffix=git/3rdparty/tinydnn/tiny-dnn-1.0.0a3;name=tinydnn;unpack=false \ - file://0001-3rdparty-ippicv-Use-pre-downloaded-ipp.patch \ - file://uselocalxfeatures.patch;patchdir=../contrib/ \ - file://0002-Make-opencv-ts-create-share-library-intead-of-static.patch \ - file://0003-To-fix-errors-as-following.patch \ - file://fixpkgconfig.patch \ - file://0001-Temporarliy-work-around-deprecated-ffmpeg-RAW-functi.patch \ - file://0001-Dont-use-isystem.patch \ -" -PV = "3.4.5" - -S = "${WORKDIR}/git" - -do_unpack_extra() { - mkdir -p ${S}/3rdparty/tinydnn/ - tar xzf ${WORKDIR}/v1.0.0a3.tar.gz -C ${S}/3rdparty/tinydnn/ - tar xzf ${WORKDIR}/ipp/ippicv/${IPP_FILENAME} -C ${WORKDIR} - cp ${WORKDIR}/vgg/*.i ${WORKDIR}/contrib/modules/xfeatures2d/src - cp ${WORKDIR}/boostdesc/*.i ${WORKDIR}/contrib/modules/xfeatures2d/src -} -addtask unpack_extra after do_unpack before do_patch - -EXTRA_OECMAKE = "-DOPENCV_EXTRA_MODULES_PATH=${WORKDIR}/contrib/modules \ - -DWITH_1394=OFF \ - -DENABLE_PRECOMPILED_HEADERS=OFF \ - -DCMAKE_SKIP_RPATH=ON \ - -DOPENCV_ICV_HASH=${IPP_MD5} \ - -DIPPROOT=${WORKDIR}/ippicv_lnx \ - ${@bb.utils.contains("TARGET_CC_ARCH", "-msse3", "-DENABLE_SSE=1 -DENABLE_SSE2=1 -DENABLE_SSE3=1 -DENABLE_SSSE3=1", "", d)} \ - ${@bb.utils.contains("TARGET_CC_ARCH", "-msse4.1", "-DENABLE_SSE=1 -DENABLE_SSE2=1 -DENABLE_SSE3=1 -DENABLE_SSSE3=1 -DENABLE_SSE41=1", "", d)} \ - ${@bb.utils.contains("TARGET_CC_ARCH", "-msse4.2", "-DENABLE_SSE=1 -DENABLE_SSE2=1 -DENABLE_SSE3=1 -DENABLE_SSSE3=1 -DENABLE_SSE41=1 -DENABLE_SSE42=1", "", d)} \ -" -EXTRA_OECMAKE_append_x86 = " -DX86=ON" - -PACKAGECONFIG ??= "python3 eigen jpeg png tiff v4l libv4l gstreamer samples tbb gphoto2 \ - ${@bb.utils.contains("DISTRO_FEATURES", "x11", "gtk", "", d)} \ - ${@bb.utils.contains("LICENSE_FLAGS_WHITELIST", "commercial", "libav", "", d)}" - -PACKAGECONFIG[amdblas] = "-DWITH_OPENCLAMDBLAS=ON,-DWITH_OPENCLAMDBLAS=OFF,libclamdblas," -PACKAGECONFIG[amdfft] = "-DWITH_OPENCLAMDFFT=ON,-DWITH_OPENCLAMDFFT=OFF,libclamdfft," -PACKAGECONFIG[dnn] = "-DBUILD_opencv_dnn=ON -DPROTOBUF_UPDATE_FILES=ON -DBUILD_PROTOBUF=OFF,-DBUILD_opencv_dnn=OFF,protobuf protobuf-native," -PACKAGECONFIG[eigen] = "-DWITH_EIGEN=ON,-DWITH_EIGEN=OFF,libeigen gflags glog," -PACKAGECONFIG[freetype] = "-DBUILD_opencv_freetype=ON,-DBUILD_opencv_freetype=OFF,freetype," -PACKAGECONFIG[gphoto2] = "-DWITH_GPHOTO2=ON,-DWITH_GPHOTO2=OFF,libgphoto2," -PACKAGECONFIG[gstreamer] = "-DWITH_GSTREAMER=ON,-DWITH_GSTREAMER=OFF,gstreamer1.0 gstreamer1.0-plugins-base," -PACKAGECONFIG[gtk] = "-DWITH_GTK=ON,-DWITH_GTK=OFF,gtk+3," -PACKAGECONFIG[jasper] = "-DWITH_JASPER=ON,-DWITH_JASPER=OFF,jasper," -PACKAGECONFIG[java] = "-DJAVA_INCLUDE_PATH=${JAVA_HOME}/include -DJAVA_INCLUDE_PATH2=${JAVA_HOME}/include/linux -DJAVA_AWT_INCLUDE_PATH=${JAVA_HOME}/include -DJAVA_AWT_LIBRARY=${JAVA_HOME}/lib/amd64/libjawt.so -DJAVA_JVM_LIBRARY=${JAVA_HOME}/lib/amd64/server/libjvm.so,,ant-native fastjar-native openjdk-8-native," -PACKAGECONFIG[jpeg] = "-DWITH_JPEG=ON,-DWITH_JPEG=OFF,jpeg," -PACKAGECONFIG[libav] = "-DWITH_FFMPEG=ON,-DWITH_FFMPEG=OFF,libav," -PACKAGECONFIG[libv4l] = "-DWITH_LIBV4L=ON,-DWITH_LIBV4L=OFF,v4l-utils," -PACKAGECONFIG[opencl] = "-DWITH_OPENCL=ON,-DWITH_OPENCL=OFF,opencl-headers virtual/opencl-icd," -PACKAGECONFIG[oracle-java] = "-DJAVA_INCLUDE_PATH=${ORACLE_JAVA_HOME}/include -DJAVA_INCLUDE_PATH2=${ORACLE_JAVA_HOME}/include/linux -DJAVA_AWT_INCLUDE_PATH=${ORACLE_JAVA_HOME}/include -DJAVA_AWT_LIBRARY=${ORACLE_JAVA_HOME}/lib/amd64/libjawt.so -DJAVA_JVM_LIBRARY=${ORACLE_JAVA_HOME}/lib/amd64/server/libjvm.so,,ant-native oracle-jse-jdk oracle-jse-jdk-native," -PACKAGECONFIG[png] = "-DWITH_PNG=ON,-DWITH_PNG=OFF,libpng," -PACKAGECONFIG[python2] = "-DPYTHON2_NUMPY_INCLUDE_DIRS:PATH=${STAGING_LIBDIR}/${PYTHON_DIR}/site-packages/numpy/core/include,,python-numpy," -PACKAGECONFIG[python3] = "-DPYTHON3_NUMPY_INCLUDE_DIRS:PATH=${STAGING_LIBDIR}/${PYTHON_DIR}/site-packages/numpy/core/include,,python3-numpy," -PACKAGECONFIG[samples] = "-DBUILD_EXAMPLES=ON -DINSTALL_PYTHON_EXAMPLES=ON,-DBUILD_EXAMPLES=OFF,," -PACKAGECONFIG[tbb] = "-DWITH_TBB=ON,-DWITH_TBB=OFF,tbb," -PACKAGECONFIG[text] = "-DBUILD_opencv_text=ON,-DBUILD_opencv_text=OFF,tesseract," -PACKAGECONFIG[tiff] = "-DWITH_TIFF=ON,-DWITH_TIFF=OFF,tiff," -PACKAGECONFIG[v4l] = "-DWITH_V4L=ON,-DWITH_V4L=OFF,v4l-utils," - -inherit pkgconfig cmake - -inherit ${@bb.utils.contains('PACKAGECONFIG', 'python3', 'distutils3-base', '', d)} -inherit ${@bb.utils.contains('PACKAGECONFIG', 'python2', 'distutils-base', '', d)} - -export PYTHON_CSPEC="-I${STAGING_INCDIR}/${PYTHON_DIR}" -export PYTHON="${STAGING_BINDIR_NATIVE}/${@bb.utils.contains('PACKAGECONFIG', 'python3', 'python3', 'python', d)}" -export ORACLE_JAVA_HOME="${STAGING_DIR_NATIVE}/usr/bin/java" -export JAVA_HOME="${STAGING_DIR_NATIVE}/usr/lib/jvm/openjdk-8-native" -export ANT_DIR="${STAGING_DIR_NATIVE}/usr/share/ant/" - -TARGET_CC_ARCH += "-I${S}/include " - -PACKAGES += "${@bb.utils.contains('PACKAGECONFIG', 'samples', '${PN}-samples', '', d)} \ - ${@bb.utils.contains('PACKAGECONFIG', 'oracle-java', '${PN}-java', '', d)} \ - ${@bb.utils.contains('PACKAGECONFIG', 'java', '${PN}-java', '', d)} \ - ${@bb.utils.contains('PACKAGECONFIG', 'python2', 'python-${BPN}', '', d)} \ - ${@bb.utils.contains('PACKAGECONFIG', 'python3', 'python3-${BPN}', '', d)} \ - ${PN}-apps" - -python populate_packages_prepend () { - cv_libdir = d.expand('${libdir}') - do_split_packages(d, cv_libdir, '^lib(.*)\.so$', 'lib%s-dev', 'OpenCV %s development package', extra_depends='${PN}-dev', allow_links=True) - do_split_packages(d, cv_libdir, '^lib(.*)\.la$', 'lib%s-dev', 'OpenCV %s development package', extra_depends='${PN}-dev') - do_split_packages(d, cv_libdir, '^lib(.*)\.a$', 'lib%s-dev', 'OpenCV %s development package', extra_depends='${PN}-dev') - do_split_packages(d, cv_libdir, '^lib(.*)\.so\.*', 'lib%s', 'OpenCV %s library', extra_depends='', allow_links=True) - - pn = d.getVar('PN') - metapkg = pn + '-dev' - d.setVar('ALLOW_EMPTY_' + metapkg, "1") - blacklist = [ metapkg ] - metapkg_rdepends = [ ] - packages = d.getVar('PACKAGES').split() - for pkg in packages[1:]: - if not pkg in blacklist and not pkg in metapkg_rdepends and pkg.endswith('-dev'): - metapkg_rdepends.append(pkg) - d.setVar('RRECOMMENDS_' + metapkg, ' '.join(metapkg_rdepends)) - - metapkg = pn - d.setVar('ALLOW_EMPTY_' + metapkg, "1") - blacklist = [ metapkg, "libopencv-ts" ] - metapkg_rdepends = [ ] - for pkg in packages[1:]: - if not pkg in blacklist and not pkg in metapkg_rdepends and not pkg.endswith('-dev') and not pkg.endswith('-dbg') and not pkg.endswith('-doc') and not pkg.endswith('-locale') and not pkg.endswith('-staticdev'): - metapkg_rdepends.append(pkg) - d.setVar('RDEPENDS_' + metapkg, ' '.join(metapkg_rdepends)) -} - -PACKAGES_DYNAMIC += "^libopencv-.*" - -FILES_${PN} = "" -FILES_${PN}-dbg += "${datadir}/OpenCV/java/.debug/* ${datadir}/OpenCV/samples/bin/.debug/*" -FILES_${PN}-dev = "${includedir} ${libdir}/pkgconfig ${datadir}/OpenCV/*.cmake" -FILES_${PN}-staticdev += "${datadir}/OpenCV/3rdparty/lib/*.a" -FILES_${PN}-apps = "${bindir}/* ${datadir}/OpenCV" -FILES_${PN}-java = "${datadir}/OpenCV/java" -FILES_${PN}-samples = "${datadir}/OpenCV/samples/" - -INSANE_SKIP_${PN}-java = "libdir" -INSANE_SKIP_${PN}-dbg = "libdir" - -ALLOW_EMPTY_${PN} = "1" - -SUMMARY_python-opencv = "Python bindings to opencv" -FILES_python-opencv = "${PYTHON_SITEPACKAGES_DIR}/*" -RDEPENDS_python-opencv = "python-core python-numpy" - -SUMMARY_python3-opencv = "Python bindings to opencv" -FILES_python3-opencv = "${PYTHON_SITEPACKAGES_DIR}/*" -RDEPENDS_python3-opencv = "python3-core python3-numpy" - -RDEPENDS_${PN}-apps = "bash" - -do_install_append() { - cp ${S}/include/opencv/*.h ${D}${includedir}/opencv/ - sed -i '/blobtrack/d' ${D}${includedir}/opencv/cvaux.h - - # Move Python files into correct library folder (for multilib build) - if [ "$libdir" != "/usr/lib" -a -d ${D}/usr/lib ]; then - mv ${D}/usr/lib/* ${D}/${libdir}/ - rm -rf ${D}/usr/lib - fi -} diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/opencv/opencv_4.1.0.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/opencv/opencv_4.1.0.bb new file mode 100644 index 00000000..d781da60 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/opencv/opencv_4.1.0.bb @@ -0,0 +1,207 @@ +SUMMARY = "Opencv : The Open Computer Vision Library" +HOMEPAGE = "http://opencv.org/" +SECTION = "libs" + +LICENSE = "BSD-3-Clause" +LIC_FILES_CHKSUM = "file://LICENSE;md5=6450921bb12a3133c8f5cb2a80343710" + +ARM_INSTRUCTION_SET_armv4 = "arm" +ARM_INSTRUCTION_SET_armv5 = "arm" + +DEPENDS = "libtool swig-native bzip2 zlib glib-2.0 libwebp" + +SRCREV_opencv = "371bba8f54560b374fbcd47e7e02f015ac4969ad" +SRCREV_contrib = "2c32791a9c500343568a21ea34bf2daeac2adae7" +SRCREV_ipp = "32e315a5b106a7b89dbed51c28f8120a48b368b4" +SRCREV_boostdesc = "34e4206aef44d50e6bbcd0ab06354b52e7466d26" +SRCREV_vgg = "fccf7cd6a4b12079f73bbfb21745f9babcd4eb1d" +SRCREV_face = "8afa57abc8229d611c4937165d20e2a2d9fc5a12" + +def ipp_filename(d): + import re + arch = d.getVar('TARGET_ARCH') + if re.match("i.86$", arch): + return "ippicv_2019_lnx_ia32_general_20180723.tgz" + else: + return "ippicv_2019_lnx_intel64_general_20180723.tgz" + +def ipp_md5sum(d): + import re + arch = d.getVar('TARGET_ARCH') + if re.match("i.86$", arch): + return "4f38432c30bfd6423164b7a24bbc98a0" + else: + return "c0bd78adb4156bbf552c1dfe90599607" + +IPP_FILENAME = "${@ipp_filename(d)}" +IPP_MD5 = "${@ipp_md5sum(d)}" + +SRCREV_FORMAT = "opencv_contrib_ipp_boostdesc_vgg" +SRC_URI = "git://github.com/opencv/opencv.git;name=opencv \ + git://github.com/opencv/opencv_contrib.git;destsuffix=contrib;name=contrib \ + git://github.com/opencv/opencv_3rdparty.git;branch=ippicv/master_20180723;destsuffix=ipp;name=ipp \ + git://github.com/opencv/opencv_3rdparty.git;branch=contrib_xfeatures2d_boostdesc_20161012;destsuffix=boostdesc;name=boostdesc \ + git://github.com/opencv/opencv_3rdparty.git;branch=contrib_xfeatures2d_vgg_20160317;destsuffix=vgg;name=vgg \ + git://github.com/opencv/opencv_3rdparty.git;branch=contrib_face_alignment_20170818;destsuffix=face;name=face \ + file://0001-3rdparty-ippicv-Use-pre-downloaded-ipp.patch \ + file://0002-Make-opencv-ts-create-share-library-intead-of-static.patch \ + file://0003-To-fix-errors-as-following.patch \ + file://0001-Temporarliy-work-around-deprecated-ffmpeg-RAW-functi.patch \ + file://0001-Dont-use-isystem.patch \ + file://0001-carotene-Replace-ipcp-unit-growth-with-ipa-cp-unit-g.patch \ + file://download.patch \ + " +PV = "4.1.0" + +S = "${WORKDIR}/git" + +# OpenCV wants to download more files during configure. We download these in +# do_fetch and construct a source cache in the format it expects +OPENCV_DLDIR = "${WORKDIR}/downloads" + +do_unpack_extra() { + tar xzf ${WORKDIR}/ipp/ippicv/${IPP_FILENAME} -C ${WORKDIR} + + md5() { + # Return the MD5 of $1 + echo $(md5sum $1 | cut -d' ' -f1) + } + cache() { + TAG=$1 + shift + mkdir --parents ${OPENCV_DLDIR}/$TAG + for F in $*; do + DEST=${OPENCV_DLDIR}/$TAG/$(md5 $F)-$(basename $F) + test -e $DEST || ln -s $F $DEST + done + } + cache xfeatures2d/boostdesc ${WORKDIR}/boostdesc/*.i + cache xfeatures2d/vgg ${WORKDIR}/vgg/*.i + cache data ${WORKDIR}/face/*.dat +} +addtask unpack_extra after do_unpack before do_patch + +EXTRA_OECMAKE = "-DOPENCV_EXTRA_MODULES_PATH=${WORKDIR}/contrib/modules \ + -DWITH_1394=OFF \ + -DENABLE_PRECOMPILED_HEADERS=OFF \ + -DCMAKE_SKIP_RPATH=ON \ + -DOPENCV_ICV_HASH=${IPP_MD5} \ + -DIPPROOT=${WORKDIR}/ippicv_lnx \ + -DOPENCV_GENERATE_PKGCONFIG=ON \ + -DOPENCV_DOWNLOAD_PATH=${OPENCV_DLDIR} \ + -DOPENCV_ALLOW_DOWNLOADS=OFF \ + ${@bb.utils.contains("TARGET_CC_ARCH", "-msse3", "-DENABLE_SSE=1 -DENABLE_SSE2=1 -DENABLE_SSE3=1 -DENABLE_SSSE3=1", "", d)} \ + ${@bb.utils.contains("TARGET_CC_ARCH", "-msse4.1", "-DENABLE_SSE=1 -DENABLE_SSE2=1 -DENABLE_SSE3=1 -DENABLE_SSSE3=1 -DENABLE_SSE41=1", "", d)} \ + ${@bb.utils.contains("TARGET_CC_ARCH", "-msse4.2", "-DENABLE_SSE=1 -DENABLE_SSE2=1 -DENABLE_SSE3=1 -DENABLE_SSSE3=1 -DENABLE_SSE41=1 -DENABLE_SSE42=1", "", d)} \ +" +EXTRA_OECMAKE_append_x86 = " -DX86=ON" + +PACKAGECONFIG ??= "gapi python3 eigen jpeg png tiff v4l libv4l gstreamer samples tbb gphoto2 \ + ${@bb.utils.contains("DISTRO_FEATURES", "x11", "gtk", "", d)} \ + ${@bb.utils.contains("LICENSE_FLAGS_WHITELIST", "commercial", "libav", "", d)}" + +PACKAGECONFIG[gapi] = "-DWITH_ADE=ON -Dade_DIR=${STAGING_LIBDIR},-DWITH_ADE=OFF,ade" +PACKAGECONFIG[amdblas] = "-DWITH_OPENCLAMDBLAS=ON,-DWITH_OPENCLAMDBLAS=OFF,libclamdblas," +PACKAGECONFIG[amdfft] = "-DWITH_OPENCLAMDFFT=ON,-DWITH_OPENCLAMDFFT=OFF,libclamdfft," +PACKAGECONFIG[dnn] = "-DBUILD_opencv_dnn=ON -DPROTOBUF_UPDATE_FILES=ON -DBUILD_PROTOBUF=OFF,-DBUILD_opencv_dnn=OFF,protobuf protobuf-native," +PACKAGECONFIG[eigen] = "-DWITH_EIGEN=ON,-DWITH_EIGEN=OFF,libeigen gflags glog," +PACKAGECONFIG[freetype] = "-DBUILD_opencv_freetype=ON,-DBUILD_opencv_freetype=OFF,freetype," +PACKAGECONFIG[gphoto2] = "-DWITH_GPHOTO2=ON,-DWITH_GPHOTO2=OFF,libgphoto2," +PACKAGECONFIG[gstreamer] = "-DWITH_GSTREAMER=ON,-DWITH_GSTREAMER=OFF,gstreamer1.0 gstreamer1.0-plugins-base," +PACKAGECONFIG[gtk] = "-DWITH_GTK=ON,-DWITH_GTK=OFF,gtk+3," +PACKAGECONFIG[jasper] = "-DWITH_JASPER=ON,-DWITH_JASPER=OFF,jasper," +PACKAGECONFIG[java] = "-DJAVA_INCLUDE_PATH=${JAVA_HOME}/include -DJAVA_INCLUDE_PATH2=${JAVA_HOME}/include/linux -DJAVA_AWT_INCLUDE_PATH=${JAVA_HOME}/include -DJAVA_AWT_LIBRARY=${JAVA_HOME}/lib/amd64/libjawt.so -DJAVA_JVM_LIBRARY=${JAVA_HOME}/lib/amd64/server/libjvm.so,,ant-native fastjar-native openjdk-8-native," +PACKAGECONFIG[jpeg] = "-DWITH_JPEG=ON,-DWITH_JPEG=OFF,jpeg," +PACKAGECONFIG[libav] = "-DWITH_FFMPEG=ON,-DWITH_FFMPEG=OFF,libav," +PACKAGECONFIG[libv4l] = "-DWITH_LIBV4L=ON,-DWITH_LIBV4L=OFF,v4l-utils," +PACKAGECONFIG[opencl] = "-DWITH_OPENCL=ON,-DWITH_OPENCL=OFF,opencl-headers virtual/opencl-icd," +PACKAGECONFIG[oracle-java] = "-DJAVA_INCLUDE_PATH=${ORACLE_JAVA_HOME}/include -DJAVA_INCLUDE_PATH2=${ORACLE_JAVA_HOME}/include/linux -DJAVA_AWT_INCLUDE_PATH=${ORACLE_JAVA_HOME}/include -DJAVA_AWT_LIBRARY=${ORACLE_JAVA_HOME}/lib/amd64/libjawt.so -DJAVA_JVM_LIBRARY=${ORACLE_JAVA_HOME}/lib/amd64/server/libjvm.so,,ant-native oracle-jse-jdk oracle-jse-jdk-native," +PACKAGECONFIG[png] = "-DWITH_PNG=ON,-DWITH_PNG=OFF,libpng," +PACKAGECONFIG[python2] = "-DPYTHON2_NUMPY_INCLUDE_DIRS:PATH=${STAGING_LIBDIR}/${PYTHON_DIR}/site-packages/numpy/core/include,,python-numpy," +PACKAGECONFIG[python3] = "-DPYTHON3_NUMPY_INCLUDE_DIRS:PATH=${STAGING_LIBDIR}/${PYTHON_DIR}/site-packages/numpy/core/include,,python3-numpy," +PACKAGECONFIG[samples] = "-DBUILD_EXAMPLES=ON -DINSTALL_PYTHON_EXAMPLES=ON,-DBUILD_EXAMPLES=OFF,," +PACKAGECONFIG[tbb] = "-DWITH_TBB=ON,-DWITH_TBB=OFF,tbb," +PACKAGECONFIG[text] = "-DBUILD_opencv_text=ON,-DBUILD_opencv_text=OFF,tesseract," +PACKAGECONFIG[tiff] = "-DWITH_TIFF=ON,-DWITH_TIFF=OFF,tiff," +PACKAGECONFIG[v4l] = "-DWITH_V4L=ON,-DWITH_V4L=OFF,v4l-utils," + +inherit pkgconfig cmake + +inherit ${@bb.utils.contains('PACKAGECONFIG', 'python3', 'distutils3-base', '', d)} +inherit ${@bb.utils.contains('PACKAGECONFIG', 'python2', 'distutils-base', '', d)} + +export PYTHON_CSPEC="-I${STAGING_INCDIR}/${PYTHON_DIR}" +export PYTHON="${STAGING_BINDIR_NATIVE}/${@bb.utils.contains('PACKAGECONFIG', 'python3', 'python3', 'python', d)}" +export ORACLE_JAVA_HOME="${STAGING_DIR_NATIVE}/usr/bin/java" +export JAVA_HOME="${STAGING_DIR_NATIVE}/usr/lib/jvm/openjdk-8-native" +export ANT_DIR="${STAGING_DIR_NATIVE}/usr/share/ant/" + +TARGET_CC_ARCH += "-I${S}/include " + +PACKAGES += "${@bb.utils.contains('PACKAGECONFIG', 'samples', '${PN}-samples', '', d)} \ + ${@bb.utils.contains('PACKAGECONFIG', 'oracle-java', '${PN}-java', '', d)} \ + ${@bb.utils.contains('PACKAGECONFIG', 'java', '${PN}-java', '', d)} \ + ${@bb.utils.contains('PACKAGECONFIG', 'python2', 'python-${BPN}', '', d)} \ + ${@bb.utils.contains('PACKAGECONFIG', 'python3', 'python3-${BPN}', '', d)} \ + ${PN}-apps" + +python populate_packages_prepend () { + cv_libdir = d.expand('${libdir}') + do_split_packages(d, cv_libdir, '^lib(.*)\.so$', 'lib%s-dev', 'OpenCV %s development package', extra_depends='${PN}-dev', allow_links=True) + do_split_packages(d, cv_libdir, '^lib(.*)\.la$', 'lib%s-dev', 'OpenCV %s development package', extra_depends='${PN}-dev') + do_split_packages(d, cv_libdir, '^lib(.*)\.a$', 'lib%s-dev', 'OpenCV %s development package', extra_depends='${PN}-dev') + do_split_packages(d, cv_libdir, '^lib(.*)\.so\.*', 'lib%s', 'OpenCV %s library', extra_depends='', allow_links=True) + + pn = d.getVar('PN') + metapkg = pn + '-dev' + d.setVar('ALLOW_EMPTY_' + metapkg, "1") + blacklist = [ metapkg ] + metapkg_rdepends = [ ] + packages = d.getVar('PACKAGES').split() + for pkg in packages[1:]: + if not pkg in blacklist and not pkg in metapkg_rdepends and pkg.endswith('-dev'): + metapkg_rdepends.append(pkg) + d.setVar('RRECOMMENDS_' + metapkg, ' '.join(metapkg_rdepends)) + + metapkg = pn + d.setVar('ALLOW_EMPTY_' + metapkg, "1") + blacklist = [ metapkg, "libopencv-ts" ] + metapkg_rdepends = [ ] + for pkg in packages[1:]: + if not pkg in blacklist and not pkg in metapkg_rdepends and not pkg.endswith('-dev') and not pkg.endswith('-dbg') and not pkg.endswith('-doc') and not pkg.endswith('-locale') and not pkg.endswith('-staticdev'): + metapkg_rdepends.append(pkg) + d.setVar('RDEPENDS_' + metapkg, ' '.join(metapkg_rdepends)) +} + +PACKAGES_DYNAMIC += "^libopencv-.*" + +FILES_${PN} = "" +FILES_${PN}-dbg += "${datadir}/OpenCV/java/.debug/* ${datadir}/OpenCV/samples/bin/.debug/*" +FILES_${PN}-dev = "${includedir} ${libdir}/pkgconfig ${libdir}/cmake/opencv4/*.cmake" +FILES_${PN}-staticdev += "${libdir}/opencv4/3rdparty/*.a" +FILES_${PN}-apps = "${bindir}/* ${datadir}/opencv4 ${datadir}/licenses" +FILES_${PN}-java = "${datadir}/OpenCV/java" +FILES_${PN}-samples = "${datadir}/opencv4/samples/" + +INSANE_SKIP_${PN}-java = "libdir" +INSANE_SKIP_${PN}-dbg = "libdir" + +ALLOW_EMPTY_${PN} = "1" + +SUMMARY_python-opencv = "Python bindings to opencv" +FILES_python-opencv = "${PYTHON_SITEPACKAGES_DIR}/*" +RDEPENDS_python-opencv = "python-core python-numpy" + +SUMMARY_python3-opencv = "Python bindings to opencv" +FILES_python3-opencv = "${PYTHON_SITEPACKAGES_DIR}/*" +RDEPENDS_python3-opencv = "python3-core python3-numpy" + +RDEPENDS_${PN}-apps = "bash" + +do_install_append() { + # Move Python files into correct library folder (for multilib build) + if [ "$libdir" != "/usr/lib" -a -d ${D}/usr/lib ]; then + mv ${D}/usr/lib/* ${D}/${libdir}/ + rm -rf ${D}/usr/lib + fi +} diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/openldap/openldap_2.4.47.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/openldap/openldap_2.4.47.bb deleted file mode 100644 index 4345d7d8..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/openldap/openldap_2.4.47.bb +++ /dev/null @@ -1,255 +0,0 @@ -SUMMARY = "OpenLDAP Directory Service" -DESCRIPTION = "OpenLDAP Software is an open source implementation of the Lightweight Directory Access Protocol." -HOMEPAGE = "http://www.OpenLDAP.org/license.html" -# The OpenLDAP Public License - see the HOMEPAGE - defines -# the license. www.openldap.org claims this is Open Source -# (see http://www.openldap.org), the license appears to be -# basically BSD. opensource.org does not record this license -# at present (so it is apparently not OSI certified). -LICENSE = "OpenLDAP" -LIC_FILES_CHKSUM = "file://COPYRIGHT;md5=25b4ead0e45182e7c2914e59ff57009f \ - file://LICENSE;md5=153d07ef052c4a37a8fac23bc6031972 \ - " -SECTION = "libs" - -LDAP_VER = "${@'.'.join(d.getVar('PV').split('.')[0:2])}" - -SRC_URI = "http://www.openldap.org/software/download/OpenLDAP/openldap-release/${BP}.tgz \ - file://openldap-m4-pthread.patch \ - file://kill-icu.patch \ - file://openldap-2.4.28-gnutls-gcrypt.patch \ - file://use-urandom.patch \ - file://initscript \ - file://slapd.service \ - file://thread_stub.patch \ - file://openldap-CVE-2015-3276.patch \ - file://remove-user-host-pwd-from-version.patch \ -" - -SRC_URI[md5sum] = "e508f97bfd778fec7799f286e5c07176" -SRC_URI[sha256sum] = "f54c5877865233d9ada77c60c0f69b3e0bfd8b1b55889504c650047cc305520b" - -DEPENDS = "util-linux groff-native" - -# The original top.mk used INSTALL, not INSTALL_STRIP_PROGRAM when -# installing .so and executables, this fails in cross compilation -# environments -SRC_URI += "file://install-strip.patch" - -inherit autotools-brokensep update-rc.d systemd - -# CV SETTINGS -# Required to work round AC_FUNC_MEMCMP which gets the wrong answer -# when cross compiling (should be in site?) -EXTRA_OECONF += "ac_cv_func_memcmp_working=yes" - -# CONFIG DEFINITIONS -# The following is necessary because it cannot be determined for a -# cross compile automagically. Select should yield fine on all OE -# systems... -EXTRA_OECONF += "--with-yielding-select=yes" -# Shared libraries are nice... -EXTRA_OECONF += "--enable-dynamic" - -PACKAGECONFIG ??= "gnutls modules \ - mdb ldap meta monitor null passwd shell proxycache dnssrv \ - ${@bb.utils.filter('DISTRO_FEATURES', 'ipv6', d)} \ -" -#--with-tls with TLS/SSL support auto|openssl|gnutls [auto] -PACKAGECONFIG[gnutls] = "--with-tls=gnutls,,gnutls libgcrypt" -PACKAGECONFIG[openssl] = "--with-tls=openssl,,openssl" - -PACKAGECONFIG[sasl] = "--with-cyrus-sasl,--without-cyrus-sasl,cyrus-sasl" -PACKAGECONFIG[modules] = "lt_cv_dlopen_self=yes --enable-modules,--disable-modules,libtool" -PACKAGECONFIG[ipv6] = "--enable-ipv6,--disable-ipv6" - -# SLAPD options -# -# UNIX crypt(3) passwd support: -EXTRA_OECONF += "--enable-crypt" - -# SLAPD BACKEND -# -# The backend must be set by the configuration. This controls the -# required database. -# -# Backends="bdb dnssrv hdb ldap mdb meta monitor ndb null passwd perl relay shell sock sql" -# -# Note that multiple backends can be built. The ldbm backend requires a -# build-time choice of database API. The bdb backend forces this to be -# DB4. To use the gdbm (or other) API the Berkely database module must -# be removed from the build. -md = "${libexecdir}/openldap" -# -#--enable-bdb enable Berkeley DB backend no|yes|mod yes -# The Berkely DB is the standard choice. This version of OpenLDAP requires -# the version 4 implementation or better. -PACKAGECONFIG[bdb] = "--enable-bdb=yes,--enable-bdb=no,db" - -#--enable-dnssrv enable dnssrv backend no|yes|mod no -PACKAGECONFIG[dnssrv] = "--enable-dnssrv=mod,--enable-dnssrv=no" - -#--enable-hdb enable Hierarchical DB backend no|yes|mod no -PACKAGECONFIG[hdb] = "--enable-hdb=yes,--enable-hdb=no,db" - -#--enable-ldap enable ldap backend no|yes|mod no -PACKAGECONFIG[ldap] = "--enable-ldap=mod,--enable-ldap=no," - -#--enable-mdb enable mdb database backend no|yes|mod [yes] -PACKAGECONFIG[mdb] = "--enable-mdb=yes,--enable-mdb=no," - -#--enable-meta enable metadirectory backend no|yes|mod no -PACKAGECONFIG[meta] = "--enable-meta=mod,--enable-meta=no," - -#--enable-monitor enable monitor backend no|yes|mod yes -PACKAGECONFIG[monitor] = "--enable-monitor=mod,--enable-monitor=no," - -#--enable-ndb enable MySQL NDB Cluster backend no|yes|mod [no] -PACKAGECONFIG[ndb] = "--enable-ndb=mod,--enable-ndb=no," - -#--enable-null enable null backend no|yes|mod no -PACKAGECONFIG[null] = "--enable-null=mod,--enable-null=no," - -#--enable-passwd enable passwd backend no|yes|mod no -PACKAGECONFIG[passwd] = "--enable-passwd=mod,--enable-passwd=no," - -#--enable-perl enable perl backend no|yes|mod no -# This requires a loadable perl dynamic library, if enabled without -# doing something appropriate (building perl?) the build will pick -# up the build machine perl - not good (inherit perlnative?) -PACKAGECONFIG[perl] = "--enable-perl=mod,--enable-perl=no,perl" - -#--enable-relay enable relay backend no|yes|mod [yes] -PACKAGECONFIG[relay] = "--enable-relay=mod,--enable-relay=no," - -#--enable-shell enable shell backend no|yes|mod no -# configure: WARNING: Use of --without-threads is recommended with back-shell -PACKAGECONFIG[shell] = "--enable-shell=mod --without-threads,--enable-shell=no," - -#--enable-sock enable sock backend no|yes|mod [no] -PACKAGECONFIG[sock] = "--enable-sock=mod,--enable-sock=no," - -#--enable-sql enable sql backend no|yes|mod no -# sql requires some sql backend which provides sql.h, sqlite* provides -# sqlite.h (which may be compatible but hasn't been tried.) -PACKAGECONFIG[sql] = "--enable-sql=mod,--enable-sql=no,sqlite3" - -#--enable-dyngroup Dynamic Group overlay no|yes|mod no -# This is a demo, Proxy Cache defines init_module which conflicts with the -# same symbol in dyngroup -PACKAGECONFIG[dyngroup] = "--enable-dyngroup=mod,--enable-dyngroup=no," - -#--enable-proxycache Proxy Cache overlay no|yes|mod no -PACKAGECONFIG[proxycache] = "--enable-proxycache=mod,--enable-proxycache=no," -FILES_${PN}-overlay-proxycache = "${md}/pcache-*.so.*" -PACKAGES += "${PN}-overlay-proxycache" - -# Append URANDOM_DEVICE='/dev/urandom' to CPPFLAGS: -# This allows tls to obtain random bits from /dev/urandom, by default -# it was disabled for cross-compiling. -CPPFLAGS_append = " -D_GNU_SOURCE -DURANDOM_DEVICE=\'/dev/urandom\' -fPIC" - -LDFLAGS_append = " -pthread" - -do_configure() { - cp ${STAGING_DATADIR_NATIVE}/libtool/build-aux/ltmain.sh ${S}/build - rm -f ${S}/libtool - aclocal - libtoolize --force --copy - gnu-configize - autoconf - oe_runconf -} - -LEAD_SONAME = "libldap-${LDAP_VER}.so.*" - -# The executables go in a separate package. This allows the -# installation of the libraries with no daemon support. -# Each module also has its own package - see above. -PACKAGES += "${PN}-slapd ${PN}-slurpd ${PN}-bin" - -# Package contents - shift most standard contents to -bin -FILES_${PN} = "${libdir}/lib*.so.* ${sysconfdir}/openldap/ldap.* ${localstatedir}/${BPN}/data" -FILES_${PN}-slapd = "${sysconfdir}/init.d ${libexecdir}/slapd ${sbindir} ${localstatedir}/run ${localstatedir}/volatile/run \ - ${sysconfdir}/openldap/slapd.* ${sysconfdir}/openldap/schema \ - ${sysconfdir}/openldap/DB_CONFIG.example ${systemd_unitdir}/system/*" -FILES_${PN}-slurpd = "${libexecdir}/slurpd ${localstatedir}/openldap-slurp ${localstatedir}/run ${localstatedir}/volatile/run" -FILES_${PN}-bin = "${bindir}" -FILES_${PN}-dev = "${includedir} ${libdir}/lib*.so ${libdir}/*.la ${libdir}/*.a ${libexecdir}/openldap/*.a ${libexecdir}/openldap/*.la ${libexecdir}/openldap/*.so" -FILES_${PN}-dbg += "${libexecdir}/openldap/.debug" - -do_install_append() { - install -d ${D}${sysconfdir}/init.d - cat ${WORKDIR}/initscript > ${D}${sysconfdir}/init.d/openldap - chmod 755 ${D}${sysconfdir}/init.d/openldap - # This is duplicated in /etc/openldap and is for slapd - rm -f ${D}${localstatedir}/openldap-data/DB_CONFIG.example - - # Installing slapd under ${sbin} is more FHS and LSB compliance - mv ${D}${libexecdir}/slapd ${D}/${sbindir}/slapd - rmdir --ignore-fail-on-non-empty ${D}${libexecdir} - SLAPTOOLS="slapadd slapcat slapdn slapindex slappasswd slaptest slapauth slapacl slapschema" - cd ${D}/${sbindir}/ - rm -f ${SLAPTOOLS} - for i in ${SLAPTOOLS}; do ln -sf slapd $i; done - - rmdir "${D}${localstatedir}/run" - rmdir --ignore-fail-on-non-empty "${D}${localstatedir}" - - install -d ${D}${systemd_unitdir}/system/ - install -m 0644 ${WORKDIR}/slapd.service ${D}${systemd_unitdir}/system/ - sed -i -e 's,@SBINDIR@,${sbindir},g' ${D}${systemd_unitdir}/system/*.service - - # Uses mdm as the database - # and localstatedir as data directory ... - sed -e 's/# modulepath/modulepath/' \ - -e 's/# moduleload\s*back_bdb.*/moduleload back_mdb/' \ - -e 's/database\s*bdb/database mdb/' \ - -e 's%^directory\s*.*%directory ${localstatedir}/${BPN}/data/%' \ - -i ${D}${sysconfdir}/openldap/slapd.conf - - mkdir -p ${D}${localstatedir}/${BPN}/data - - -} - -INITSCRIPT_PACKAGES = "${PN}-slapd" -INITSCRIPT_NAME_${PN}-slapd = "openldap" -INITSCRIPT_PARAMS_${PN}-slapd = "defaults" -SYSTEMD_SERVICE_${PN}-slapd = "hostapd.service" -SYSTEMD_AUTO_ENABLE_${PN}-slapd ?= "disable" - - -PACKAGES_DYNAMIC += "^${PN}-backends.* ^${PN}-backend-.*" - -# The modules require their .so to be dynamicaly loaded -INSANE_SKIP_${PN}-backend-dnssrv += "dev-so" -INSANE_SKIP_${PN}-backend-ldap += "dev-so" -INSANE_SKIP_${PN}-backend-meta += "dev-so" -INSANE_SKIP_${PN}-backend-mdb += "dev-so" -INSANE_SKIP_${PN}-backend-monitor += "dev-so" -INSANE_SKIP_${PN}-backend-null += "dev-so" -INSANE_SKIP_${PN}-backend-passwd += "dev-so" -INSANE_SKIP_${PN}-backend-shell += "dev-so" - - -python populate_packages_prepend () { - backend_dir = d.expand('${libexecdir}/openldap') - do_split_packages(d, backend_dir, 'back_([a-z]*)\.so$', 'openldap-backend-%s', 'OpenLDAP %s backend', prepend=True, extra_depends='', allow_links=True) - do_split_packages(d, backend_dir, 'back_([a-z]*)\-.*\.so\..*$', 'openldap-backend-%s', 'OpenLDAP %s backend', extra_depends='', allow_links=True) - - metapkg = "${PN}-backends" - d.setVar('ALLOW_EMPTY_' + metapkg, "1") - d.setVar('FILES_' + metapkg, "") - metapkg_rdepends = [] - packages = d.getVar('PACKAGES').split() - for pkg in packages[1:]: - if pkg.count("openldap-backend-") and not pkg in metapkg_rdepends and not pkg.count("-dev") and not pkg.count("-dbg") and not pkg.count("static") and not pkg.count("locale"): - metapkg_rdepends.append(pkg) - d.setVar('RDEPENDS_' + metapkg, ' '.join(metapkg_rdepends)) - d.setVar('DESCRIPTION_' + metapkg, 'OpenLDAP backends meta package') - packages.append(metapkg) - d.setVar('PACKAGES', ' '.join(packages)) -} - -BBCLASSEXTEND = "native" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/openldap/openldap_2.4.48.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/openldap/openldap_2.4.48.bb new file mode 100644 index 00000000..ecc219d3 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/openldap/openldap_2.4.48.bb @@ -0,0 +1,255 @@ +SUMMARY = "OpenLDAP Directory Service" +DESCRIPTION = "OpenLDAP Software is an open source implementation of the Lightweight Directory Access Protocol." +HOMEPAGE = "http://www.OpenLDAP.org/license.html" +# The OpenLDAP Public License - see the HOMEPAGE - defines +# the license. www.openldap.org claims this is Open Source +# (see http://www.openldap.org), the license appears to be +# basically BSD. opensource.org does not record this license +# at present (so it is apparently not OSI certified). +LICENSE = "OpenLDAP" +LIC_FILES_CHKSUM = "file://COPYRIGHT;md5=ad914c35f97b468f421f8ac0f3d821f4 \ + file://LICENSE;md5=153d07ef052c4a37a8fac23bc6031972 \ + " +SECTION = "libs" + +LDAP_VER = "${@'.'.join(d.getVar('PV').split('.')[0:2])}" + +SRC_URI = "http://www.openldap.org/software/download/OpenLDAP/openldap-release/${BP}.tgz \ + file://openldap-m4-pthread.patch \ + file://kill-icu.patch \ + file://openldap-2.4.28-gnutls-gcrypt.patch \ + file://use-urandom.patch \ + file://initscript \ + file://slapd.service \ + file://thread_stub.patch \ + file://openldap-CVE-2015-3276.patch \ + file://remove-user-host-pwd-from-version.patch \ +" + +SRC_URI[md5sum] = "0729a0711fe096831dedc159e0bbe73f" +SRC_URI[sha256sum] = "d9523ffcab5cd14b709fcf3cb4d04e8bc76bb8970113255f372bc74954c6074d" + +DEPENDS = "util-linux groff-native" + +# The original top.mk used INSTALL, not INSTALL_STRIP_PROGRAM when +# installing .so and executables, this fails in cross compilation +# environments +SRC_URI += "file://install-strip.patch" + +inherit autotools-brokensep update-rc.d systemd + +# CV SETTINGS +# Required to work round AC_FUNC_MEMCMP which gets the wrong answer +# when cross compiling (should be in site?) +EXTRA_OECONF += "ac_cv_func_memcmp_working=yes" + +# CONFIG DEFINITIONS +# The following is necessary because it cannot be determined for a +# cross compile automagically. Select should yield fine on all OE +# systems... +EXTRA_OECONF += "--with-yielding-select=yes" +# Shared libraries are nice... +EXTRA_OECONF += "--enable-dynamic" + +PACKAGECONFIG ??= "gnutls modules \ + mdb ldap meta monitor null passwd shell proxycache dnssrv \ + ${@bb.utils.filter('DISTRO_FEATURES', 'ipv6', d)} \ +" +#--with-tls with TLS/SSL support auto|openssl|gnutls [auto] +PACKAGECONFIG[gnutls] = "--with-tls=gnutls,,gnutls libgcrypt" +PACKAGECONFIG[openssl] = "--with-tls=openssl,,openssl" + +PACKAGECONFIG[sasl] = "--with-cyrus-sasl,--without-cyrus-sasl,cyrus-sasl" +PACKAGECONFIG[modules] = "lt_cv_dlopen_self=yes --enable-modules,--disable-modules,libtool" +PACKAGECONFIG[ipv6] = "--enable-ipv6,--disable-ipv6" + +# SLAPD options +# +# UNIX crypt(3) passwd support: +EXTRA_OECONF += "--enable-crypt" + +# SLAPD BACKEND +# +# The backend must be set by the configuration. This controls the +# required database. +# +# Backends="bdb dnssrv hdb ldap mdb meta monitor ndb null passwd perl relay shell sock sql" +# +# Note that multiple backends can be built. The ldbm backend requires a +# build-time choice of database API. The bdb backend forces this to be +# DB4. To use the gdbm (or other) API the Berkely database module must +# be removed from the build. +md = "${libexecdir}/openldap" +# +#--enable-bdb enable Berkeley DB backend no|yes|mod yes +# The Berkely DB is the standard choice. This version of OpenLDAP requires +# the version 4 implementation or better. +PACKAGECONFIG[bdb] = "--enable-bdb=yes,--enable-bdb=no,db" + +#--enable-dnssrv enable dnssrv backend no|yes|mod no +PACKAGECONFIG[dnssrv] = "--enable-dnssrv=mod,--enable-dnssrv=no" + +#--enable-hdb enable Hierarchical DB backend no|yes|mod no +PACKAGECONFIG[hdb] = "--enable-hdb=yes,--enable-hdb=no,db" + +#--enable-ldap enable ldap backend no|yes|mod no +PACKAGECONFIG[ldap] = "--enable-ldap=mod,--enable-ldap=no," + +#--enable-mdb enable mdb database backend no|yes|mod [yes] +PACKAGECONFIG[mdb] = "--enable-mdb=yes,--enable-mdb=no," + +#--enable-meta enable metadirectory backend no|yes|mod no +PACKAGECONFIG[meta] = "--enable-meta=mod,--enable-meta=no," + +#--enable-monitor enable monitor backend no|yes|mod yes +PACKAGECONFIG[monitor] = "--enable-monitor=mod,--enable-monitor=no," + +#--enable-ndb enable MySQL NDB Cluster backend no|yes|mod [no] +PACKAGECONFIG[ndb] = "--enable-ndb=mod,--enable-ndb=no," + +#--enable-null enable null backend no|yes|mod no +PACKAGECONFIG[null] = "--enable-null=mod,--enable-null=no," + +#--enable-passwd enable passwd backend no|yes|mod no +PACKAGECONFIG[passwd] = "--enable-passwd=mod,--enable-passwd=no," + +#--enable-perl enable perl backend no|yes|mod no +# This requires a loadable perl dynamic library, if enabled without +# doing something appropriate (building perl?) the build will pick +# up the build machine perl - not good (inherit perlnative?) +PACKAGECONFIG[perl] = "--enable-perl=mod,--enable-perl=no,perl" + +#--enable-relay enable relay backend no|yes|mod [yes] +PACKAGECONFIG[relay] = "--enable-relay=mod,--enable-relay=no," + +#--enable-shell enable shell backend no|yes|mod no +# configure: WARNING: Use of --without-threads is recommended with back-shell +PACKAGECONFIG[shell] = "--enable-shell=mod --without-threads,--enable-shell=no," + +#--enable-sock enable sock backend no|yes|mod [no] +PACKAGECONFIG[sock] = "--enable-sock=mod,--enable-sock=no," + +#--enable-sql enable sql backend no|yes|mod no +# sql requires some sql backend which provides sql.h, sqlite* provides +# sqlite.h (which may be compatible but hasn't been tried.) +PACKAGECONFIG[sql] = "--enable-sql=mod,--enable-sql=no,sqlite3" + +#--enable-dyngroup Dynamic Group overlay no|yes|mod no +# This is a demo, Proxy Cache defines init_module which conflicts with the +# same symbol in dyngroup +PACKAGECONFIG[dyngroup] = "--enable-dyngroup=mod,--enable-dyngroup=no," + +#--enable-proxycache Proxy Cache overlay no|yes|mod no +PACKAGECONFIG[proxycache] = "--enable-proxycache=mod,--enable-proxycache=no," +FILES_${PN}-overlay-proxycache = "${md}/pcache-*.so.*" +PACKAGES += "${PN}-overlay-proxycache" + +# Append URANDOM_DEVICE='/dev/urandom' to CPPFLAGS: +# This allows tls to obtain random bits from /dev/urandom, by default +# it was disabled for cross-compiling. +CPPFLAGS_append = " -D_GNU_SOURCE -DURANDOM_DEVICE=\'/dev/urandom\' -fPIC" + +LDFLAGS_append = " -pthread" + +do_configure() { + cp ${STAGING_DATADIR_NATIVE}/libtool/build-aux/ltmain.sh ${S}/build + rm -f ${S}/libtool + aclocal + libtoolize --force --copy + gnu-configize + autoconf + oe_runconf +} + +LEAD_SONAME = "libldap-${LDAP_VER}.so.*" + +# The executables go in a separate package. This allows the +# installation of the libraries with no daemon support. +# Each module also has its own package - see above. +PACKAGES += "${PN}-slapd ${PN}-slurpd ${PN}-bin" + +# Package contents - shift most standard contents to -bin +FILES_${PN} = "${libdir}/lib*.so.* ${sysconfdir}/openldap/ldap.* ${localstatedir}/${BPN}/data" +FILES_${PN}-slapd = "${sysconfdir}/init.d ${libexecdir}/slapd ${sbindir} ${localstatedir}/run ${localstatedir}/volatile/run \ + ${sysconfdir}/openldap/slapd.* ${sysconfdir}/openldap/schema \ + ${sysconfdir}/openldap/DB_CONFIG.example ${systemd_unitdir}/system/*" +FILES_${PN}-slurpd = "${libexecdir}/slurpd ${localstatedir}/openldap-slurp ${localstatedir}/run ${localstatedir}/volatile/run" +FILES_${PN}-bin = "${bindir}" +FILES_${PN}-dev = "${includedir} ${libdir}/lib*.so ${libdir}/*.la ${libdir}/*.a ${libexecdir}/openldap/*.a ${libexecdir}/openldap/*.la ${libexecdir}/openldap/*.so" +FILES_${PN}-dbg += "${libexecdir}/openldap/.debug" + +do_install_append() { + install -d ${D}${sysconfdir}/init.d + cat ${WORKDIR}/initscript > ${D}${sysconfdir}/init.d/openldap + chmod 755 ${D}${sysconfdir}/init.d/openldap + # This is duplicated in /etc/openldap and is for slapd + rm -f ${D}${localstatedir}/openldap-data/DB_CONFIG.example + + # Installing slapd under ${sbin} is more FHS and LSB compliance + mv ${D}${libexecdir}/slapd ${D}/${sbindir}/slapd + rmdir --ignore-fail-on-non-empty ${D}${libexecdir} + SLAPTOOLS="slapadd slapcat slapdn slapindex slappasswd slaptest slapauth slapacl slapschema" + cd ${D}/${sbindir}/ + rm -f ${SLAPTOOLS} + for i in ${SLAPTOOLS}; do ln -sf slapd $i; done + + rmdir "${D}${localstatedir}/run" + rmdir --ignore-fail-on-non-empty "${D}${localstatedir}" + + install -d ${D}${systemd_unitdir}/system/ + install -m 0644 ${WORKDIR}/slapd.service ${D}${systemd_unitdir}/system/ + sed -i -e 's,@SBINDIR@,${sbindir},g' ${D}${systemd_unitdir}/system/*.service + + # Uses mdm as the database + # and localstatedir as data directory ... + sed -e 's/# modulepath/modulepath/' \ + -e 's/# moduleload\s*back_bdb.*/moduleload back_mdb/' \ + -e 's/database\s*bdb/database mdb/' \ + -e 's%^directory\s*.*%directory ${localstatedir}/${BPN}/data/%' \ + -i ${D}${sysconfdir}/openldap/slapd.conf + + mkdir -p ${D}${localstatedir}/${BPN}/data + + +} + +INITSCRIPT_PACKAGES = "${PN}-slapd" +INITSCRIPT_NAME_${PN}-slapd = "openldap" +INITSCRIPT_PARAMS_${PN}-slapd = "defaults" +SYSTEMD_SERVICE_${PN}-slapd = "hostapd.service" +SYSTEMD_AUTO_ENABLE_${PN}-slapd ?= "disable" + + +PACKAGES_DYNAMIC += "^${PN}-backends.* ^${PN}-backend-.*" + +# The modules require their .so to be dynamicaly loaded +INSANE_SKIP_${PN}-backend-dnssrv += "dev-so" +INSANE_SKIP_${PN}-backend-ldap += "dev-so" +INSANE_SKIP_${PN}-backend-meta += "dev-so" +INSANE_SKIP_${PN}-backend-mdb += "dev-so" +INSANE_SKIP_${PN}-backend-monitor += "dev-so" +INSANE_SKIP_${PN}-backend-null += "dev-so" +INSANE_SKIP_${PN}-backend-passwd += "dev-so" +INSANE_SKIP_${PN}-backend-shell += "dev-so" + + +python populate_packages_prepend () { + backend_dir = d.expand('${libexecdir}/openldap') + do_split_packages(d, backend_dir, 'back_([a-z]*)\.so$', 'openldap-backend-%s', 'OpenLDAP %s backend', prepend=True, extra_depends='', allow_links=True) + do_split_packages(d, backend_dir, 'back_([a-z]*)\-.*\.so\..*$', 'openldap-backend-%s', 'OpenLDAP %s backend', extra_depends='', allow_links=True) + + metapkg = "${PN}-backends" + d.setVar('ALLOW_EMPTY_' + metapkg, "1") + d.setVar('FILES_' + metapkg, "") + metapkg_rdepends = [] + packages = d.getVar('PACKAGES').split() + for pkg in packages[1:]: + if pkg.count("openldap-backend-") and not pkg in metapkg_rdepends and not pkg.count("-dev") and not pkg.count("-dbg") and not pkg.count("static") and not pkg.count("locale"): + metapkg_rdepends.append(pkg) + d.setVar('RDEPENDS_' + metapkg, ' '.join(metapkg_rdepends)) + d.setVar('DESCRIPTION_' + metapkg, 'OpenLDAP backends meta package') + packages.append(metapkg) + d.setVar('PACKAGES', ' '.join(packages)) +} + +BBCLASSEXTEND = "native" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/opensc/opensc/0001-Remove-redundant-logging.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/opensc/opensc/0001-Remove-redundant-logging.patch deleted file mode 100644 index 291f1a23..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/opensc/opensc/0001-Remove-redundant-logging.patch +++ /dev/null @@ -1,34 +0,0 @@ -From c012f46965b3fe24e31367796e52c2d0b14ca5d9 Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Mon, 17 Dec 2018 18:44:23 -0800 -Subject: [PATCH] Remove redundant logging - -Same information is printed a few line below in same function, the only -difference is that there it takes care of case when label is NULL pointer -unlike this line - -secondly, every function call to cosm_write_tokeninfo() in this file -passes label=NULL, and then it tries to print a null pointer - -Fixes errors like -src/libopensc/log.h:48:47: error: '%s' directive argument is null -[-Werror=format-overflow=] - -Upstream-Status: Submitted [https://github.com/OpenSC/OpenSC/pull/1557] -Signed-off-by: Khem Raj ---- - src/pkcs15init/pkcs15-oberthur.c | 1 - - 1 file changed, 1 deletion(-) - -Index: git/src/pkcs15init/pkcs15-oberthur.c -=================================================================== ---- git.orig/src/pkcs15init/pkcs15-oberthur.c -+++ git/src/pkcs15init/pkcs15-oberthur.c -@@ -70,7 +70,6 @@ cosm_write_tokeninfo (struct sc_pkcs15_c - ctx = p15card->card->ctx; - - SC_FUNC_CALLED(ctx, SC_LOG_DEBUG_VERBOSE); -- sc_debug(ctx, SC_LOG_DEBUG_NORMAL, "cosm_write_tokeninfo() label '%s'; flags 0x%X", label, flags); - if (sc_profile_get_file(profile, COSM_TITLE"-token-info", &file)) { - rv = SC_ERROR_INCONSISTENT_PROFILE; - SC_TEST_GOTO_ERR(ctx, SC_LOG_DEBUG_NORMAL, rv, "Cannot find "COSM_TITLE"-token-info"); diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/opensc/opensc_0.19.0.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/opensc/opensc_0.19.0.bb deleted file mode 100644 index bc1722e3..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/opensc/opensc_0.19.0.bb +++ /dev/null @@ -1,44 +0,0 @@ -SUMMARY = "Smart card library and applications" -DESCRIPTION = "OpenSC is a tool for accessing smart card devices. Basic\ -functionality (e.g. SELECT FILE, READ BINARY) should work on any ISO\ -7816-4 compatible smart card. Encryption and decryption using private\ -keys on the smart card is possible with PKCS\ -such as the FINEID (Finnish Electronic IDentity) card. Swedish Posten\ -eID cards have also been confirmed to work." - -HOMEPAGE = "http://www.opensc-project.org/opensc/" -SECTION = "System Environment/Libraries" -LICENSE = "LGPLv2+" -LIC_FILES_CHKSUM = "file://COPYING;md5=7fbc338309ac38fefcd64b04bb903e34" - -#v0.19.0 -SRCREV = "f1691fc91fc113191c3a8aaf5facd6983334ec47" -SRC_URI = "git://github.com/OpenSC/OpenSC \ - file://0001-Remove-redundant-logging.patch \ - " -DEPENDS = "openct pcsc-lite virtual/libiconv openssl" - -S = "${WORKDIR}/git" -inherit autotools pkgconfig bash-completion - -EXTRA_OECONF = " \ - --disable-static \ - --enable-openct \ - --disable-pcsc \ - --disable-ctapi \ - --disable-doc \ -" -EXTRA_OEMAKE = "DESTDIR=${D}" - -RDEPENDS_${PN} = "readline" - -FILES_${PN} += "\ - ${libdir}/opensc-pkcs11.so \ - ${libdir}/onepin-opensc-pkcs11.so \ - ${libdir}/pkcs11-spy.so \ -" -FILES_${PN}-dev += "\ - ${libdir}/pkcs11/opensc-pkcs11.so \ - ${libdir}/pkcs11/onepin-opensc-pkcs11.so \ - ${libdir}/pkcs11/pkcs11-spy.so \ -" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/opensc/opensc_0.20.0.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/opensc/opensc_0.20.0.bb new file mode 100644 index 00000000..a815980c --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/opensc/opensc_0.20.0.bb @@ -0,0 +1,48 @@ +SUMMARY = "Smart card library and applications" +DESCRIPTION = "OpenSC is a tool for accessing smart card devices. Basic\ +functionality (e.g. SELECT FILE, READ BINARY) should work on any ISO\ +7816-4 compatible smart card. Encryption and decryption using private\ +keys on the smart card is possible with PKCS\ +such as the FINEID (Finnish Electronic IDentity) card. Swedish Posten\ +eID cards have also been confirmed to work." + +HOMEPAGE = "http://www.opensc-project.org/opensc/" +SECTION = "System Environment/Libraries" +LICENSE = "LGPLv2+" +LIC_FILES_CHKSUM = "file://COPYING;md5=7fbc338309ac38fefcd64b04bb903e34" + +#v0.19.0 +SRCREV = "45e29056ccde422e70ed3585084a7f150c632515" +SRC_URI = "git://github.com/OpenSC/OpenSC \ + " +DEPENDS = "virtual/libiconv openssl" + +S = "${WORKDIR}/git" +inherit autotools pkgconfig bash-completion + +EXTRA_OECONF = " \ + --disable-static \ + --disable-ctapi \ + --disable-doc \ +" +EXTRA_OEMAKE = "DESTDIR=${D}" + +PACKAGECONFIG ??= "pcsc" + +PACKAGECONFIG[openct] = "--enable-openct,--disable-openct,openct" +PACKAGECONFIG[pcsc] = "--enable-pcsc,--disable-pcsc,pcsc-lite,pcsc-lite pcsc-lite-lib" + +RDEPENDS_${PN} = "readline" + +FILES_${PN} += "\ + ${libdir}/opensc-pkcs11.so \ + ${libdir}/onepin-opensc-pkcs11.so \ + ${libdir}/pkcs11-spy.so \ +" +FILES_${PN}-dev += "\ + ${libdir}/pkcs11/opensc-pkcs11.so \ + ${libdir}/pkcs11/onepin-opensc-pkcs11.so \ + ${libdir}/pkcs11/pkcs11-spy.so \ +" + +BBCLASSEXTEND = "native" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/p910nd/p910nd_0.95.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/p910nd/p910nd_0.95.bb deleted file mode 100644 index 5ebbb29e..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/p910nd/p910nd_0.95.bb +++ /dev/null @@ -1,22 +0,0 @@ -DESCRIPTION = "A small network printer daemon for embedded situations that passes the job directly to the printer" -HOMEPAGE = "http://p910nd.sourceforge.net/" -SECTION = "console/utils" -LICENSE = "GPLv2" -LIC_FILES_CHKSUM = "file://COPYING;md5=8ca43cbc842c2336e835926c2166c28b" - -PR = "r2" - -SRC_URI = "${SOURCEFORGE_MIRROR}/p910nd/p910nd-${PV}.tar.bz2 \ - file://fix-var-lock.patch" - -SRC_URI[md5sum] = "c7ac6afdf7730ac8387a8e87198d4491" -SRC_URI[sha256sum] = "7d78642c86dc247fbdef1ff85c56629dcdc6b2a457c786420299e284fffcb029" - -do_compile () { - ${CC} ${LDFLAGS} -o p910nd p910nd.c -} - -do_install () { - install -D -m 0755 ${S}/p910nd ${D}${sbindir}/p910nd - install -D -m 0644 ${S}/p910nd.conf ${D}${sysconfdir}/p910nd.conf -} diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/p910nd/p910nd_0.97.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/p910nd/p910nd_0.97.bb new file mode 100644 index 00000000..45aa0d4a --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/p910nd/p910nd_0.97.bb @@ -0,0 +1,22 @@ +DESCRIPTION = "A small network printer daemon for embedded situations that passes the job directly to the printer" +HOMEPAGE = "http://p910nd.sourceforge.net/" +SECTION = "console/utils" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=8ca43cbc842c2336e835926c2166c28b" + +PR = "r2" + +SRC_URI = "${SOURCEFORGE_MIRROR}/p910nd/p910nd-${PV}.tar.bz2 \ + file://fix-var-lock.patch" + +SRC_URI[md5sum] = "69461a6c54dca0b13ecad5b83864b43e" +SRC_URI[sha256sum] = "4ac980a3ae24babae6f70f0a692625ece03a4a92c357fbb10d2e368386c3c26f" + +do_compile () { + ${CC} ${LDFLAGS} -o p910nd p910nd.c +} + +do_install () { + install -D -m 0755 ${S}/p910nd ${D}${sbindir}/p910nd + install -D -m 0644 ${S}/p910nd.conf ${D}${sysconfdir}/p910nd.conf +} diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/pcsc-lite/pcsc-lite_1.8.22.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/pcsc-lite/pcsc-lite_1.8.22.bb deleted file mode 100644 index 10f724e6..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/pcsc-lite/pcsc-lite_1.8.22.bb +++ /dev/null @@ -1,49 +0,0 @@ -SUMMARY = "PC/SC Lite smart card framework and applications" -HOMEPAGE = "http://pcsclite.alioth.debian.org/" -LICENSE = "BSD & GPLv3+" -LICENSE_${PN} = "BSD" -LICENSE_${PN}-lib = "BSD" -LICENSE_${PN}-doc = "BSD" -LICENSE_${PN}-dev = "BSD" -LICENSE_${PN}-dbg = "BSD & GPLv3+" -LICENSE_${PN}-spy = "GPLv3+" -LICENSE_${PN}-spy-dev = "GPLv3+" -LIC_FILES_CHKSUM = "file://COPYING;md5=f38b3d1c7ef7fc2c8b6d20cd38efdc29" -DEPENDS = "udev" - -SRC_URI = "https://pcsclite.apdu.fr/files/${BP}.tar.bz2" -SRC_URI[md5sum] = "0ec103b1ef298d0c58d6ef6b00b9cf17" -SRC_URI[sha256sum] = "6a358f61ed3b66a7f6e1f4e794a94c7be4c81b7a58ec360c33791e8d7d9bd405" - - -inherit autotools systemd pkgconfig - -EXTRA_OECONF = " \ - --disable-libusb \ - --enable-libudev \ - --enable-usbdropdir=${libdir}/pcsc/drivers \ -" - -S = "${WORKDIR}/pcsc-lite-${PV}" - -PACKAGES = "${PN} ${PN}-dbg ${PN}-dev ${PN}-lib ${PN}-doc ${PN}-spy ${PN}-spy-dev" - -RRECOMMENDS_${PN} = "ccid" - -FILES_${PN} = "${sbindir}/pcscd" -FILES_${PN}-lib = "${libdir}/libpcsclite*${SOLIBS}" -FILES_${PN}-dev = "${includedir} \ - ${libdir}/pkgconfig \ - ${libdir}/libpcsclite.la \ - ${libdir}/libpcsclite.so" - -FILES_${PN}-spy = "${bindir}/pcsc-spy \ - ${libdir}/libpcscspy*${SOLIBS}" -FILES_${PN}-spy-dev = "${libdir}/libpcscspy.la \ - ${libdir}/libpcscspy.so " - -RPROVIDES_${PN} += "${PN}-systemd" -RREPLACES_${PN} += "${PN}-systemd" -RCONFLICTS_${PN} += "${PN}-systemd" -SYSTEMD_SERVICE_${PN} = "pcscd.socket" -RDEPENDS_${PN}-spy +="python" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/pcsc-lite/pcsc-lite_1.8.26.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/pcsc-lite/pcsc-lite_1.8.26.bb new file mode 100644 index 00000000..5e608465 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/pcsc-lite/pcsc-lite_1.8.26.bb @@ -0,0 +1,55 @@ +SUMMARY = "PC/SC Lite smart card framework and applications" +HOMEPAGE = "http://pcsclite.alioth.debian.org/" +LICENSE = "BSD & GPLv3+" +LICENSE_${PN} = "BSD" +LICENSE_${PN}-lib = "BSD" +LICENSE_${PN}-doc = "BSD" +LICENSE_${PN}-dev = "BSD" +LICENSE_${PN}-dbg = "BSD & GPLv3+" +LICENSE_${PN}-spy = "GPLv3+" +LICENSE_${PN}-spy-dev = "GPLv3+" +LIC_FILES_CHKSUM = "file://COPYING;md5=628c01ba985ecfa21677f5ee2d5202f6" + +SRC_URI = "https://pcsclite.apdu.fr/files/${BP}.tar.bz2" +SRC_URI[md5sum] = "9d36882998449daceec267c68a21ff0d" +SRC_URI[sha256sum] = "3eb7be7d6ef618c0a444316cf5c1f2f9d7227aedba7a192f389fe3e7c0dfbbd9" + +inherit autotools systemd pkgconfig + +EXTRA_OECONF = " \ + --disable-libusb \ + --enable-usbdropdir=${libdir}/pcsc/drivers \ +" + +S = "${WORKDIR}/pcsc-lite-${PV}" + +PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)} udev" +PACKAGECONFIG_class-native ??= "" + +PACKAGECONFIG[systemd] = ",--disable-libsystemd,systemd," +PACKAGECONFIG[udev] = "--enable-libudev,--disable-libudev,udev" + +PACKAGES = "${PN} ${PN}-dbg ${PN}-dev ${PN}-lib ${PN}-doc ${PN}-spy ${PN}-spy-dev" + +RRECOMMENDS_${PN} = "ccid" +RRECOMMENDS_${PN}_class-native = "" + +FILES_${PN} = "${sbindir}/pcscd" +FILES_${PN}-lib = "${libdir}/libpcsclite*${SOLIBS}" +FILES_${PN}-dev = "${includedir} \ + ${libdir}/pkgconfig \ + ${libdir}/libpcsclite.la \ + ${libdir}/libpcsclite.so" + +FILES_${PN}-spy = "${bindir}/pcsc-spy \ + ${libdir}/libpcscspy*${SOLIBS}" +FILES_${PN}-spy-dev = "${libdir}/libpcscspy.la \ + ${libdir}/libpcscspy.so " + +RPROVIDES_${PN} += "${PN}-systemd" +RREPLACES_${PN} += "${PN}-systemd" +RCONFLICTS_${PN} += "${PN}-systemd" +SYSTEMD_SERVICE_${PN} = "pcscd.socket" +RDEPENDS_${PN}-spy +="python" + +BBCLASSEXTEND = "native" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/picocom/picocom/0001-Fix-building-with-musl.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/picocom/picocom/0001-Fix-building-with-musl.patch new file mode 100644 index 00000000..5b344b9e --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/picocom/picocom/0001-Fix-building-with-musl.patch @@ -0,0 +1,118 @@ +From 9664809da36bd7bada3e44f50cfc042539fb61ee Mon Sep 17 00:00:00 2001 +From: Paul Eggleton +Date: Sun, 14 Jul 2019 19:13:21 -0700 +Subject: [PATCH] Fix building with musl + +Upstream-status: Pending + +Signed-off-by: Paul Eggleton +--- + termios2.c | 27 +++++++++++++++++++++++++++ + termios2.h | 5 +++++ + 2 files changed, 32 insertions(+) + +diff --git a/termios2.c b/termios2.c +index 97c3be0..88ff6fc 100644 +--- a/termios2.c ++++ b/termios2.c +@@ -37,6 +37,7 @@ + #include + #include + #include ++#include + + /* Contains the definition of the termios2 structure and some related + constants that we should normally include from system +@@ -53,6 +54,10 @@ + */ + #define IBAUD0 020000000000 + ++#if !defined(__GLIBC__) ++#define __MAX_BAUD B4000000 ++#endif ++ + int + tc2setattr(int fd, int optional_actions, const struct termios *tios) + { +@@ -79,8 +84,13 @@ tc2setattr(int fd, int optional_actions, const struct termios *tios) + t2.c_cflag = tios->c_cflag; + t2.c_lflag = tios->c_lflag; + t2.c_line = tios->c_line; ++#if !defined(__GLIBC__) ++ t2.c_ispeed = tios->__c_ispeed; ++ t2.c_ospeed = tios->__c_ospeed; ++#else + t2.c_ispeed = tios->c_ispeed; + t2.c_ospeed = tios->c_ospeed; ++#endif + memcpy(&t2.c_cc[0], &tios->c_cc[0], K_NCCS * sizeof (cc_t)); + + return ioctl(fd, cmd, &t2); +@@ -101,8 +111,13 @@ tc2getattr(int fd, struct termios *tios) + tios->c_cflag = t2.c_cflag; + tios->c_lflag = t2.c_lflag; + tios->c_line = t2.c_line; ++#if !defined(__GLIBC__) ++ tios->__c_ispeed = t2.c_ispeed; ++ tios->__c_ospeed = t2.c_ospeed; ++#else + tios->c_ispeed = t2.c_ispeed; + tios->c_ospeed = t2.c_ospeed; ++#endif + memcpy(&tios->c_cc[0], &t2.c_cc[0], K_NCCS * sizeof (cc_t)); + + for (i = K_NCCS; i < NCCS; i++) +@@ -131,7 +146,11 @@ cf2setispeed(struct termios *tios, speed_t speed) + errno = EINVAL; + return -1; + } ++#if !defined(__GLIBC__) ++ tios->__c_ispeed = speed; ++#else + tios->c_ispeed = speed; ++#endif + tios->c_cflag &= ~((CBAUD | CBAUDEX) << IBSHIFT); + tios->c_cflag |= (speed << IBSHIFT); + +@@ -156,7 +175,11 @@ cf2setospeed_custom(struct termios *tios, int speed) + } + tios->c_cflag &= ~(CBAUD | CBAUDEX); + tios->c_cflag |= BOTHER; ++#if !defined(__GLIBC__) ++ tios->__c_ospeed = speed; ++#else + tios->c_ospeed = speed; ++#endif + + return 0; + } +@@ -177,7 +200,11 @@ cf2setispeed_custom(struct termios *tios, int speed) + } else { + tios->c_cflag &= ~((CBAUD | CBAUDEX) << IBSHIFT); + tios->c_cflag |= (BOTHER << IBSHIFT); ++#if !defined(__GLIBC__) ++ tios->__c_ispeed = speed; ++#else + tios->c_ispeed = speed; ++#endif + } + + return 0; +diff --git a/termios2.h b/termios2.h +index e13b0e3..63dd0ce 100644 +--- a/termios2.h ++++ b/termios2.h +@@ -37,8 +37,13 @@ + /* And define these new ones */ + #define cfsetospeed_custom cf2setospeed_custom + #define cfsetispeed_custom cf2setispeed_custom ++#if defined(__linux__) && !defined(__GLIBC__) ++#define cfgetospeed_custom(tiop) ((tiop)->__c_ospeed) ++#define cfgetispeed_custom(tiop) ((tiop)->__c_ispeed) ++#else + #define cfgetospeed_custom(tiop) ((tiop)->c_ospeed) + #define cfgetispeed_custom(tiop) ((tiop)->c_ispeed) ++#endif + + /* Replacements for the standard tcsetattr(3), tcgetattr(3) + * functions. Same user interface, but these use the new termios2 diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/picocom/picocom_git.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/picocom/picocom_git.bb index e091094c..3d26b936 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/picocom/picocom_git.bb +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/picocom/picocom_git.bb @@ -1,15 +1,17 @@ -SUMMARY = "Lightweight and minimal (~20K) dumb-terminal emulation program" +SUMMARY = "Lightweight and minimal dumb-terminal emulation program" SECTION = "console/utils" LICENSE = "GPLv2+" -HOMEPAGE = "http://code.google.com/p/picocom/" +HOMEPAGE = "https://github.com/npat-efault/picocom" LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=3000e4830620e310fe65c0eb69df9e8a" -BASEPV = "2.2" +BASEPV = "3.1" PV = "${BASEPV}+git${SRCPV}" -SRCREV = "deffd18c24145bd6f965f44e735a50b65810ccdc" +SRCREV = "90385aabe2b51f39fa130627d46b377569f82d4a" -SRC_URI = "git://github.com/npat-efault/picocom" +SRC_URI = "git://github.com/npat-efault/picocom \ + file://0001-Fix-building-with-musl.patch \ + " S = "${WORKDIR}/git" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/pidgin/gmime_3.2.3.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/pidgin/gmime_3.2.3.bb deleted file mode 100644 index 8c6f0b01..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/pidgin/gmime_3.2.3.bb +++ /dev/null @@ -1,23 +0,0 @@ -LICENSE = "LGPL-2.1" -LIC_FILES_CHKSUM = "file://COPYING;md5=fbc093901857fcd118f065f900982c24" -DESCRIPTION = "Runtime libraries for parsing and creating MIME mail" -SECTION = "libs" -DEPENDS = "glib-2.0 zlib" - -inherit gnome autotools gobject-introspection - -SRC_URI += "file://iconv-detect.h \ - file://nodolt.patch" - -SRC_URI[archive.md5sum] = "69ae21a0b1df966a7d39a9431856ac81" -SRC_URI[archive.sha256sum] = "6a0875eeb552ab447dd54853a68ced62217d863631048737dd97eaa2713e7311" - -EXTRA_OECONF_remove = "--disable-schemas-install" - -export ac_cv_have_iconv_detect_h="yes" -do_configure_append = "cp ${WORKDIR}/iconv-detect.h ${S}" - -# we do not need GNOME 1 gnome-config support -do_install_append () { - rm -f ${D}${libdir}/gmimeConf.sh -} diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/pidgin/pidgin-otr_4.0.2.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/pidgin/pidgin-otr_4.0.2.bb index 5a21cd3f..04133c1b 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/pidgin/pidgin-otr_4.0.2.bb +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/pidgin/pidgin-otr_4.0.2.bb @@ -12,4 +12,4 @@ SRC_URI[sha256sum] = "f4b59eef4a94b1d29dbe0c106dd00cdc630e47f18619fc754e5afbf572 FILES_${PN} = "${libdir}/pidgin/*" -inherit autotools pkgconfig distro_features_check +inherit autotools pkgconfig features_check diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/pidgin/pidgin-sipe/0001-Align-structs-casts-with-time_t-elements-to-8byte-bo.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/pidgin/pidgin-sipe/0001-Align-structs-casts-with-time_t-elements-to-8byte-bo.patch new file mode 100644 index 00000000..87a6435f --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/pidgin/pidgin-sipe/0001-Align-structs-casts-with-time_t-elements-to-8byte-bo.patch @@ -0,0 +1,50 @@ +From 1110d3036e73d0571f70f6758f3179e5048c0b5d Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Sat, 16 Nov 2019 11:07:42 -0800 +Subject: [PATCH] Align structs casts with time_t elements to 8byte boundary + +This helps with 64bit time_t conversion, especially where these +structures are typcasted to another struct types which have time_t +element, that now increases the natural alignment boundary of structures +to 8-bytes. + +Fixes +../../../pidgin-sipe-1.25.0/src/core/sipe-user.c:124:43: error: cast from 'struct sipe_core_public *' to 'struct sipe_core_private *' increases required alignment from 4 to 8 [-Werror,-Wcast-align] + struct sipe_core_private *sipe_private = SIPE_CORE_PRIVATE; + ^~~~~~~~~~~~~~~~~ +Upstream-Status: Pending +Signed-off-by: Khem Raj +--- + src/api/sipe-core.h | 2 +- + src/core/sipe-http-transport.h | 2 +- + 2 files changed, 2 insertions(+), 2 deletions(-) + +diff --git a/src/api/sipe-core.h b/src/api/sipe-core.h +index cde0a9c..bd818bb 100644 +--- a/src/api/sipe-core.h ++++ b/src/api/sipe-core.h +@@ -148,7 +148,7 @@ struct sipe_core_public { + + /* server information */ + /* currently nothing */ +-}; ++} __attribute__((aligned(8))); + + /** + * Initialize & destroy functions for the SIPE core +diff --git a/src/core/sipe-http-transport.h b/src/core/sipe-http-transport.h +index d82cd1b..08eb150 100644 +--- a/src/core/sipe-http-transport.h ++++ b/src/core/sipe-http-transport.h +@@ -46,7 +46,7 @@ struct sipe_http_connection_public { + gchar *host; + guint32 port; + gboolean connected; +-}; ++} __attribute__((aligned(8))); + + /** + * Check if we're shutting down the HTTP stack +-- +2.24.0 + diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/pidgin/pidgin-sipe/0001-sipe-consider-64bit-time_t-when-printing.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/pidgin/pidgin-sipe/0001-sipe-consider-64bit-time_t-when-printing.patch new file mode 100644 index 00000000..e7a72953 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/pidgin/pidgin-sipe/0001-sipe-consider-64bit-time_t-when-printing.patch @@ -0,0 +1,31 @@ +From ae6fa551907006c612cca98b87f339d4d6f45e25 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Mon, 11 Nov 2019 21:08:11 -0800 +Subject: [PATCH] sipe: consider 64bit time_t when printing + +This helps printing 64bit time_t on 32bit architectures + +Upstream-Status: Pending +Signed-off-by: Khem Raj +--- + src/core/sipe-utils.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/src/core/sipe-utils.c b/src/core/sipe-utils.c +index 12ff8d6..d3d4071 100644 +--- a/src/core/sipe-utils.c ++++ b/src/core/sipe-utils.c +@@ -414,8 +414,8 @@ sipe_utils_time_to_str(time_t timestamp) + if (result) + return(result); + +- SIPE_DEBUG_ERROR("sipe_utils_time_to_str: failed to convert %lu to ISO8601 string", +- timestamp); ++ SIPE_DEBUG_ERROR("sipe_utils_time_to_str: failed to convert %lld to ISO8601 string", ++ (long long int)timestamp); + return(g_strdup("")); + } + +-- +2.24.0 + diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/pidgin/pidgin-sipe_1.24.0.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/pidgin/pidgin-sipe_1.24.0.bb deleted file mode 100644 index 7632fd2d..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/pidgin/pidgin-sipe_1.24.0.bb +++ /dev/null @@ -1,34 +0,0 @@ -SUMMARY = "Protocol plugin for Office 365/Lync/OCS for Adium, Pidgin, Miranda and Telepathy IM Framework" -SECTION = "webos/services" -LICENSE = "GPLv2.0" -LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe" - -DEPENDS = "pidgin gmime intltool-native glib-2.0-native" - -inherit pkgconfig -inherit autotools - -SRC_URI = "${SOURCEFORGE_MIRROR}/sipe/pidgin-sipe-${PV}.tar.xz \ -" - -SRC_URI[md5sum] = "b91106d28c235b347a63dcb676f7b66a" -SRC_URI[sha256sum] = "958803722b23d869131f76bd90df9da19116d4ca5a873e5253371479b7390f43" - -PACKAGECONFIG ??= "nss krb5" -PACKAGECONFIG[nss] = "--enable-nss=yes,--enable-nss=no,nss" -PACKAGECONFIG[openssl] = "--enable-openssl=yes,--enable-openssl=no,openssl" -PACKAGECONFIG[krb5] = "--with-krb5=yes,--with-krb5=no,krb5" -#PACKAGECONFIG[voice_and_video] = "--with-vv=yes,--with-vv=no,libnice gstreamer" -PACKAGECONFIG[telepathy] = "--enable-telepathy=yes,--enable-telepathy=no,telepathy-glib" -#PACKAGECONFIG[gssapi_only] = "--enable-gssapi-only=yes,--enable-gssapi-only=no,krb5" -PACKAGECONFIG[debug] = "--enable-debug=yes,--enable-debug=no,valgrind" - -FILES_${PN}-dev += " \ - ${libdir}/purple-2/*.la \ -" - -FILES_${PN} += " \ - ${libdir}/purple-2/libsipe.so \ - ${datadir}/appdata \ - ${datadir}/metainfo \ -" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/pidgin/pidgin-sipe_1.25.0.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/pidgin/pidgin-sipe_1.25.0.bb new file mode 100644 index 00000000..99fcf3c6 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/pidgin/pidgin-sipe_1.25.0.bb @@ -0,0 +1,35 @@ +SUMMARY = "Protocol plugin for Office 365/Lync/OCS for Adium, Pidgin, Miranda and Telepathy IM Framework" +SECTION = "webos/services" +LICENSE = "GPLv2.0" +LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe" + +DEPENDS = "pidgin gmime intltool-native glib-2.0-native" + +inherit autotools gettext pkgconfig + +SRC_URI = "${SOURCEFORGE_MIRROR}/sipe/pidgin-sipe-${PV}.tar.xz \ + file://0001-sipe-consider-64bit-time_t-when-printing.patch \ + file://0001-Align-structs-casts-with-time_t-elements-to-8byte-bo.patch \ +" + +SRC_URI[md5sum] = "0e742f021dc8c3f17435aea05c3e0314" +SRC_URI[sha256sum] = "738b121b11f2b3f1744150c00cb381222eb6cf67161a7742797eb4f03e64a2ba" + +PACKAGECONFIG ??= "nss krb5" +PACKAGECONFIG[nss] = "--enable-nss=yes,--enable-nss=no,nss" +PACKAGECONFIG[openssl] = "--enable-openssl=yes,--enable-openssl=no,openssl" +PACKAGECONFIG[krb5] = "--with-krb5=yes,--with-krb5=no,krb5" +#PACKAGECONFIG[voice_and_video] = "--with-vv=yes,--with-vv=no,libnice gstreamer" +PACKAGECONFIG[telepathy] = "--enable-telepathy=yes,--enable-telepathy=no,telepathy-glib" +#PACKAGECONFIG[gssapi_only] = "--enable-gssapi-only=yes,--enable-gssapi-only=no,krb5" +PACKAGECONFIG[debug] = "--enable-debug=yes,--enable-debug=no,valgrind" + +FILES_${PN}-dev += " \ + ${libdir}/purple-2/*.la \ +" + +FILES_${PN} += " \ + ${libdir}/purple-2/libsipe.so \ + ${datadir}/appdata \ + ${datadir}/metainfo \ +" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/pidgin/pidgin/use_py3.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/pidgin/pidgin/use_py3.patch new file mode 100644 index 00000000..c7b4163c --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/pidgin/pidgin/use_py3.patch @@ -0,0 +1,20 @@ +--- a/configure.ac ++++ b/configure.ac +@@ -1488,7 +1488,7 @@ AC_ARG_WITH([python], + + if test "x$enable_dbus" = "xyes" || test "x$enable_consoleui" = "xyes" ; then + if test -z "$PYTHON" -o "x$PYTHON" = "xyes"; then +- AC_PATH_PROG([PYTHON], [python], [no]) ++ AC_PATH_PROG([PYTHON], [python3], [no]) + fi + + if test x"$PYTHON" = x"no" ; then +@@ -1568,7 +1568,7 @@ dnl Check for Python headers (currently + dnl (Thanks to XChat) + if test "x$enable_consoleui" = "xyes" -a ! -z "$PYTHON" -a x"$PYTHON" != x"no" ; then + AC_MSG_CHECKING(for Python compile flags) +- PKG_CHECK_MODULES(PY, python, [ ++ PKG_CHECK_MODULES(PY, python3, [ + AC_SUBST(PY_CFLAGS) + AC_SUBST(PY_LIBS) + ], [ diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/pidgin/pidgin_2.13.0.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/pidgin/pidgin_2.13.0.bb index b094ba25..fdc79e81 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/pidgin/pidgin_2.13.0.bb +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/pidgin/pidgin_2.13.0.bb @@ -2,15 +2,16 @@ SUMMARY = "multi-protocol instant messaging client" SECTION = "x11/network" LICENSE = "GPLv2" LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe" -DEPENDS = "python virtual/libintl intltool-native libxml2 gconf glib-2.0-native" +DEPENDS = "python3 virtual/libintl intltool-native libxml2 gconf glib-2.0-native" -inherit autotools gettext pkgconfig gconf perlnative +inherit autotools gettext pkgconfig gconf perlnative python3native SRC_URI = "\ ${SOURCEFORGE_MIRROR}/pidgin/pidgin-${PV}.tar.bz2 \ file://sanitize-configure.ac.patch \ file://purple-OE-branding-25.patch \ file://pidgin-cross-python-265.patch \ + file://use_py3.patch \ " SRC_URI[md5sum] = "423403494fe1951e47cc75231f743bb0" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/poco/poco/0001-Support-of-arch-riscv64-by-Manuel-A.-Fernandez-Monte.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/poco/poco/0001-Support-of-arch-riscv64-by-Manuel-A.-Fernandez-Monte.patch deleted file mode 100644 index 72d89d09..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/poco/poco/0001-Support-of-arch-riscv64-by-Manuel-A.-Fernandez-Monte.patch +++ /dev/null @@ -1,41 +0,0 @@ -From ed04c97abe015a226269de391e36c4d251292725 Mon Sep 17 00:00:00 2001 -From: Francis ANDRE -Date: Sun, 6 May 2018 12:28:25 +0200 -Subject: [PATCH] Support of arch riscv64 by Manuel A. Fernandez Montecelo - - ---- - Foundation/include/Poco/Platform.h | 6 +++++- - Foundation/src/utils.h | 1 + - 2 files changed, 6 insertions(+), 1 deletion(-) - ---- a/Foundation/include/Poco/Platform.h -+++ b/Foundation/include/Poco/Platform.h -@@ -134,6 +134,7 @@ - #define POCO_ARCH_NIOS2 0x0e - #define POCO_ARCH_AARCH64 0x0f - #define POCO_ARCH_ARM64 0x0f // same as POCO_ARCH_AARCH64 -+#define POCO_ARCH_RISCV64 0x10 - - - #if defined(__ALPHA) || defined(__alpha) || defined(__alpha__) || defined(_M_ALPHA) -@@ -224,6 +225,9 @@ - #elif defined(__AARCH64EB__) - #define POCO_ARCH POCO_ARCH_AARCH64 - #define POCO_ARCH_BIG_ENDIAN 1 -+#elif defined(__riscv) && (__riscv_xlen == 64) -+ #define POCO_ARCH POCO_ARCH_RISCV64 -+ #define POCO_ARCH_LITTLE_ENDIAN 1 - #endif - - ---- a/Foundation/src/utils.h -+++ b/Foundation/src/utils.h -@@ -63,6 +63,7 @@ - defined(__SH4__) || defined(__alpha__) || \ - defined(_MIPS_ARCH_MIPS32R2) || \ - defined(__AARCH64EL__) || \ -+ defined(__riscv) || \ - defined(nios2) || defined(__nios2) || defined(__nios2__) - #define DOUBLE_CONVERSION_CORRECT_DOUBLE_OPERATIONS 1 - #elif defined(_M_IX86) || defined(__i386__) || defined(__i386) diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/poco/poco/0001-riscv-Enable-double-operations-when-using-double-flo.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/poco/poco/0001-riscv-Enable-double-operations-when-using-double-flo.patch new file mode 100644 index 00000000..c0de32da --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/poco/poco/0001-riscv-Enable-double-operations-when-using-double-flo.patch @@ -0,0 +1,28 @@ +From 589a5442a841b156a1890bc2d26e7a5103e2f672 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Fri, 1 Nov 2019 17:53:50 -0700 +Subject: [PATCH] riscv: Enable double operations when using double float abi + +Upstream-Status: Submitted [https://github.com/pocoproject/poco/pull/2825] +Signed-off-by: Khem Raj +--- + Foundation/src/utils.h | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +diff --git a/Foundation/src/utils.h b/Foundation/src/utils.h +index 69cea1aca..ff7a5c9ce 100644 +--- a/Foundation/src/utils.h ++++ b/Foundation/src/utils.h +@@ -63,7 +63,8 @@ + defined(__SH4__) || defined(__alpha__) || \ + defined(_MIPS_ARCH_MIPS32R2) || \ + defined(__AARCH64EL__) || \ +- defined(nios2) || defined(__nios2) || defined(__nios2__) ++ defined(nios2) || defined(__nios2) || defined(__nios2__) || \ ++ (defined(__riscv) && defined(__riscv_float_abi_double)) + #define DOUBLE_CONVERSION_CORRECT_DOUBLE_OPERATIONS 1 + #elif defined(_M_IX86) || defined(__i386__) || defined(__i386) + #if defined(_WIN32) +-- +2.23.0 + diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/poco/poco_1.9.0.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/poco/poco_1.9.0.bb deleted file mode 100644 index 70b25103..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/poco/poco_1.9.0.bb +++ /dev/null @@ -1,100 +0,0 @@ -SUMMARY = "Modern, powerful open source cross-platform C++ class libraries" -DESCRIPTION = "Modern, powerful open source C++ class libraries and frameworks for building network- and internet-based applications that run on desktop, server, mobile and embedded systems." -HOMEPAGE = "http://pocoproject.org/" -SECTION = "libs" -LICENSE = "BSL-1.0" -LIC_FILES_CHKSUM = "file://LICENSE;md5=4267f48fc738f50380cbeeb76f95cebc" - -# These dependencies are required by Foundation -DEPENDS = "libpcre zlib" - -SRC_URI = " \ - git://github.com/pocoproject/poco.git;branch=poco-${PV} \ - file://0001-Don-t-try-to-install-non-existing-Encodings-testsuit.patch \ - file://0001-Support-of-arch-riscv64-by-Manuel-A.-Fernandez-Monte.patch \ - file://run-ptest \ - " -SRCREV = "daf00da73ab917e4d4581e3aa00c0ee61e0cc58b" - -S = "${WORKDIR}/git" - -inherit cmake ptest - -# By default the most commonly used poco components are built -# Foundation is built anyway and doesn't need to be listed explicitly -# these don't have dependencies outside oe-core -PACKAGECONFIG ??= "XML JSON MongoDB PDF Util Net NetSSL Crypto Data DataSQLite Zip Encodings Redis" - -PACKAGECONFIG[XML] = "-DENABLE_XML=ON -DEXPAT_LIBRARY:STRING=expat,-DENABLE_XML=OFF,expat" -PACKAGECONFIG[JSON] = "-DENABLE_JSON=ON,-DENABLE_JSON=OFF" -PACKAGECONFIG[MongoDB] = "-DENABLE_MONGODB=ON,-DENABLE_MONGODB=OFF" -PACKAGECONFIG[PDF] = "-DENABLE_PDF=ON,-DENABLE_PDF=OFF,zlib" -PACKAGECONFIG[Util] = "-DENABLE_UTIL=ON,-DENABLE_UTIL=OFF" -PACKAGECONFIG[Net] = "-DENABLE_NET=ON,-DENABLE_NET=OFF" -PACKAGECONFIG[NetSSL] = "-DENABLE_NETSSL=ON -DOPENSSL_SSL_LIBRARY:STRING=ssl -DOPENSSL_CRYPTO_LIBRARY:STRING=crypto,-DENABLE_NETSSL=OFF,openssl" -PACKAGECONFIG[Crypto] = "-DENABLE_CRYPTO=ON -DOPENSSL_SSL_LIBRARY:STRING=ssl -DOPENSSL_CRYPTO_LIBRARY:STRING=crypto,-DENABLE_CRYPTO=OFF,openssl" -PACKAGECONFIG[Data] = "-DENABLE_DATA=ON,-DENABLE_DATA=OFF" -PACKAGECONFIG[DataSQLite] = "-DENABLE_DATA_SQLITE=ON -DSQLITE3_LIBRARY:STRING=sqlite3,-DENABLE_DATA_SQLITE=OFF,sqlite3" -PACKAGECONFIG[Zip] = "-DENABLE_ZIP=ON,-DENABLE_ZIP=OFF" -PACKAGECONFIG[Encodings] = "-DENABLE_ENCODINGS=ON,-DENABLE_ENCODINGS=OFF" -PACKAGECONFIG[Redis] = "-DENABLE_REDIS=ON,-DENABLE_REDIS=OFF" - -# Additional components not build by default, -# they might have dependencies not included in oe-core -# or they don't work on all architectures -PACKAGECONFIG[mod_poco] = "-DENABLE_APACHECONNECTOR=ON,-DENABLE_APACHECONNECTOR=OFF,apr apache2" -PACKAGECONFIG[CppParser] = "-DENABLE_CPPPARSER=ON,-DENABLE_CPPPARSER=OFF" -PACKAGECONFIG[DataMySQL] = "-DENABLE_DATA_MYSQL=ON -DMYSQL_LIB:STRING=mysqlclient_r,-DENABLE_DATA_MYSQL=OFF,mariadb" -PACKAGECONFIG[DataODBC] = "-DENABLE_DATA_ODBC=ON,-DENABLE_DATA_ODBC=OFF,libiodbc" -PACKAGECONFIG[PageCompiler] = "-DENABLE_PAGECOMPILER=ON,-DENABLE_PAGECOMPILER=OFF" -PACKAGECONFIG[PageCompilerFile2Page] = "-DENABLE_PAGECOMPILER_FILE2PAGE=ON,-DENABLE_PAGECOMPILER_FILE2PAGE=OFF" -PACKAGECONFIG[SevenZip] = "-DENABLE_SEVENZIP=ON,-DENABLE_SEVENZIP=OFF" - -EXTRA_OECMAKE = "-DCMAKE_BUILD_TYPE=RelWithDebInfo -DPOCO_UNBUNDLED=ON \ - -DZLIB_LIBRARY_RELEASE:STRING=z -DPCRE_LIBRARY:STRING=pcre \ - ${@bb.utils.contains('PTEST_ENABLED', '1', '-DENABLE_TESTS=ON ', '', d)}" - -# For the native build we want to use the bundled version -EXTRA_OECMAKE_append_class-native = " -DPOCO_UNBUNDLED=OFF" - -# do not use rpath -EXTRA_OECMAKE_append = " -DCMAKE_SKIP_RPATH=ON" - -python populate_packages_prepend () { - poco_libdir = d.expand('${libdir}') - pn = d.getVar("PN") - packages = [] - testrunners = [] - - def hook(f, pkg, file_regex, output_pattern, modulename): - packages.append(pkg) - testrunners.append(modulename) - - do_split_packages(d, poco_libdir, '^libPoco(.*)\.so\..*$', - 'poco-%s', 'Poco %s component', extra_depends='', prepend=True, hook=hook) - - d.setVar("RRECOMMENDS_%s" % pn, " ".join(packages)) - d.setVar("POCO_TESTRUNNERS", "\n".join(testrunners)) -} - -do_install_ptest () { - cp -rf ${B}/bin/ ${D}${PTEST_PATH} - cp -f ${B}/lib/libCppUnit.so* ${D}${libdir} - cp -rf ${B}/*/testsuite/data ${D}${PTEST_PATH}/bin/ - find "${D}${PTEST_PATH}" -executable -exec chrpath -d {} \; - echo "${POCO_TESTRUNNERS}" > "${D}${PTEST_PATH}/testrunners" -} - -PACKAGES_DYNAMIC = "poco-.*" - -# "poco" is a metapackage which pulls in all Poco components -ALLOW_EMPTY_${PN} = "1" - -# cppunit is only built if tests are enabled -PACKAGES =+ "${PN}-cppunit" -FILES_${PN}-cppunit += "${libdir}/libCppUnit.so*" -ALLOW_EMPTY_${PN}-cppunit = "1" - -RDEPENDS_${PN}-ptest += "${PN}-cppunit" - -BBCLASSEXTEND = "native" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/poco/poco_1.9.4.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/poco/poco_1.9.4.bb new file mode 100644 index 00000000..f1dabcd0 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/poco/poco_1.9.4.bb @@ -0,0 +1,101 @@ +SUMMARY = "Modern, powerful open source cross-platform C++ class libraries" +DESCRIPTION = "Modern, powerful open source C++ class libraries and frameworks for building network- and internet-based applications that run on desktop, server, mobile and embedded systems." +HOMEPAGE = "http://pocoproject.org/" +SECTION = "libs" +LICENSE = "BSL-1.0" +LIC_FILES_CHKSUM = "file://LICENSE;md5=4267f48fc738f50380cbeeb76f95cebc" + +# These dependencies are required by Foundation +DEPENDS = "libpcre zlib" + +SRC_URI = " \ + git://github.com/pocoproject/poco.git;branch=poco-${PV} \ + file://0001-Don-t-try-to-install-non-existing-Encodings-testsuit.patch \ + file://0001-riscv-Enable-double-operations-when-using-double-flo.patch \ + file://run-ptest \ + " +SRCREV = "b95393dcc3640807838e8323b4e600e54d2e8116" + +S = "${WORKDIR}/git" + +inherit cmake ptest + +# By default the most commonly used poco components are built +# Foundation is built anyway and doesn't need to be listed explicitly +# these don't have dependencies outside oe-core +PACKAGECONFIG ??= "XML JSON MongoDB PDF Util Net NetSSL Crypto Data DataSQLite Zip Encodings Redis" + +PACKAGECONFIG[XML] = "-DENABLE_XML=ON -DEXPAT_LIBRARY:STRING=expat,-DENABLE_XML=OFF,expat" +PACKAGECONFIG[JSON] = "-DENABLE_JSON=ON,-DENABLE_JSON=OFF" +PACKAGECONFIG[MongoDB] = "-DENABLE_MONGODB=ON,-DENABLE_MONGODB=OFF" +PACKAGECONFIG[PDF] = "-DENABLE_PDF=ON,-DENABLE_PDF=OFF,zlib" +PACKAGECONFIG[Util] = "-DENABLE_UTIL=ON,-DENABLE_UTIL=OFF" +PACKAGECONFIG[Net] = "-DENABLE_NET=ON,-DENABLE_NET=OFF" +PACKAGECONFIG[NetSSL] = "-DENABLE_NETSSL=ON -DOPENSSL_SSL_LIBRARY:STRING=ssl -DOPENSSL_CRYPTO_LIBRARY:STRING=crypto,-DENABLE_NETSSL=OFF,openssl" +PACKAGECONFIG[Crypto] = "-DENABLE_CRYPTO=ON -DOPENSSL_SSL_LIBRARY:STRING=ssl -DOPENSSL_CRYPTO_LIBRARY:STRING=crypto,-DENABLE_CRYPTO=OFF,openssl" +PACKAGECONFIG[Data] = "-DENABLE_DATA=ON,-DENABLE_DATA=OFF" +PACKAGECONFIG[DataSQLite] = "-DENABLE_DATA_SQLITE=ON -DSQLITE3_LIBRARY:STRING=sqlite3,-DENABLE_DATA_SQLITE=OFF,sqlite3" +PACKAGECONFIG[Zip] = "-DENABLE_ZIP=ON,-DENABLE_ZIP=OFF" +PACKAGECONFIG[Encodings] = "-DENABLE_ENCODINGS=ON,-DENABLE_ENCODINGS=OFF" +PACKAGECONFIG[Redis] = "-DENABLE_REDIS=ON,-DENABLE_REDIS=OFF" + +# Additional components not build by default, +# they might have dependencies not included in oe-core +# or they don't work on all architectures +PACKAGECONFIG[mod_poco] = "-DENABLE_APACHECONNECTOR=ON,-DENABLE_APACHECONNECTOR=OFF,apr apache2" +PACKAGECONFIG[CppParser] = "-DENABLE_CPPPARSER=ON,-DENABLE_CPPPARSER=OFF" +PACKAGECONFIG[DataMySQL] = "-DENABLE_DATA_MYSQL=ON -DMYSQL_LIB:STRING=mysqlclient_r,-DENABLE_DATA_MYSQL=OFF,mariadb" +PACKAGECONFIG[DataODBC] = "-DENABLE_DATA_ODBC=ON,-DENABLE_DATA_ODBC=OFF,libiodbc" +PACKAGECONFIG[PageCompiler] = "-DENABLE_PAGECOMPILER=ON,-DENABLE_PAGECOMPILER=OFF" +PACKAGECONFIG[PageCompilerFile2Page] = "-DENABLE_PAGECOMPILER_FILE2PAGE=ON,-DENABLE_PAGECOMPILER_FILE2PAGE=OFF" +PACKAGECONFIG[SevenZip] = "-DENABLE_SEVENZIP=ON,-DENABLE_SEVENZIP=OFF" + +EXTRA_OECMAKE = "-DCMAKE_BUILD_TYPE=RelWithDebInfo -DPOCO_UNBUNDLED=ON \ + -DZLIB_LIBRARY_RELEASE:STRING=z -DPCRE_LIBRARY:STRING=pcre \ + -DLIB_SUFFIX=${@d.getVar('baselib').replace('lib', '')} \ + ${@bb.utils.contains('PTEST_ENABLED', '1', '-DENABLE_TESTS=ON ', '', d)}" + +# For the native build we want to use the bundled version +EXTRA_OECMAKE_append_class-native = " -DPOCO_UNBUNDLED=OFF" + +# do not use rpath +EXTRA_OECMAKE_append = " -DCMAKE_SKIP_RPATH=ON" + +python populate_packages_prepend () { + poco_libdir = d.expand('${libdir}') + pn = d.getVar("PN") + packages = [] + testrunners = [] + + def hook(f, pkg, file_regex, output_pattern, modulename): + packages.append(pkg) + testrunners.append(modulename) + + do_split_packages(d, poco_libdir, '^libPoco(.*)\.so\..*$', + 'poco-%s', 'Poco %s component', extra_depends='', prepend=True, hook=hook) + + d.setVar("RRECOMMENDS_%s" % pn, " ".join(packages)) + d.setVar("POCO_TESTRUNNERS", "\n".join(testrunners)) +} + +do_install_ptest () { + cp -rf ${B}/bin/ ${D}${PTEST_PATH} + cp -f ${B}/lib/libCppUnit.so* ${D}${libdir} + cp -rf ${B}/*/testsuite/data ${D}${PTEST_PATH}/bin/ + find "${D}${PTEST_PATH}" -executable -exec chrpath -d {} \; + echo "${POCO_TESTRUNNERS}" > "${D}${PTEST_PATH}/testrunners" +} + +PACKAGES_DYNAMIC = "poco-.*" + +# "poco" is a metapackage which pulls in all Poco components +ALLOW_EMPTY_${PN} = "1" + +# cppunit is only built if tests are enabled +PACKAGES =+ "${PN}-cppunit" +FILES_${PN}-cppunit += "${libdir}/libCppUnit.so*" +ALLOW_EMPTY_${PN}-cppunit = "1" + +RDEPENDS_${PN}-ptest += "${PN}-cppunit" + +BBCLASSEXTEND = "native" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/poppler/poppler-data_0.4.9.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/poppler/poppler-data_0.4.9.bb index b2af0971..eda3f7ec 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/poppler/poppler-data_0.4.9.bb +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/poppler/poppler-data_0.4.9.bb @@ -1,6 +1,7 @@ SUMMARY = "Encoding files for Poppler" DESCRIPTION = "Encoding files for use with poppler that enable poppler to \ correctly render CJK and Cyrrilic." +HOMEPAGE = "https://poppler.freedesktop.org/" LICENSE = "BSD & GPLv2 & GPLv3+" LIC_FILES_CHKSUM = "file://COPYING;md5=4870b98343f0bbb25fa43b9d2ba59448 \ file://COPYING.adobe;md5=63c6a8a9df204c00461fa5f163d8a663 \ diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/poppler/poppler/0001-Do-not-overwrite-all-our-build-flags.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/poppler/poppler/0001-Do-not-overwrite-all-our-build-flags.patch index 18f50851..05e0abed 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/poppler/poppler/0001-Do-not-overwrite-all-our-build-flags.patch +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/poppler/poppler/0001-Do-not-overwrite-all-our-build-flags.patch @@ -13,11 +13,9 @@ Signed-off-by: Andreas Müller cmake/modules/PopplerMacros.cmake | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) -diff --git a/cmake/modules/PopplerMacros.cmake b/cmake/modules/PopplerMacros.cmake -index ccb2790..0f392cb 100644 --- a/cmake/modules/PopplerMacros.cmake +++ b/cmake/modules/PopplerMacros.cmake -@@ -125,14 +125,14 @@ if(CMAKE_COMPILER_IS_GNUCXX) +@@ -123,14 +123,14 @@ if(CMAKE_COMPILER_IS_GNUCXX) set(DEFAULT_COMPILE_WARNINGS_EXTRA "${_warn} ${_warnx}") set(_save_cxxflags "${CMAKE_CXX_FLAGS}") @@ -34,5 +32,21 @@ index ccb2790..0f392cb 100644 set(CMAKE_C_FLAGS_RELWITHDEBINFO "-O2 -g ${_save_cflags}") set(CMAKE_C_FLAGS_RELEASE "-O2 -DNDEBUG ${_save_cflags}") set(CMAKE_C_FLAGS_DEBUG "-g -O2 -fno-reorder-blocks -fno-schedule-insns -fno-inline ${_save_cflags}") --- -2.14.3 +@@ -167,7 +167,7 @@ if ("${CMAKE_CXX_COMPILER_ID}" STREQUAL + set(DEFAULT_COMPILE_WARNINGS_EXTRA "${_warn} ${_warnx}") + + set(_save_cxxflags "${CMAKE_CXX_FLAGS}") +- set(CMAKE_CXX_FLAGS "-fno-exceptions -fno-check-new -fno-common -D_DEFAULT_SOURCE") ++ set(CMAKE_CXX_FLAGS "-fno-exceptions -fno-check-new -fno-common -D_DEFAULT_SOURCE ${_save_cxxflags}") + set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "-O2 -g ${_save_cxxflags}") + set(CMAKE_CXX_FLAGS_RELEASE "-O2 -DNDEBUG ${_save_cxxflags}") + # clang does not support -fno-reorder-blocks -fno-schedule-insns, so do not use -O2 +@@ -175,7 +175,7 @@ if ("${CMAKE_CXX_COMPILER_ID}" STREQUAL + set(CMAKE_CXX_FLAGS_DEBUGFULL "-g3 -fno-inline ${_save_cxxflags}") + set(CMAKE_CXX_FLAGS_PROFILE "-g3 -fno-inline -ftest-coverage -fprofile-arcs ${_save_cxxflags}") + set(_save_cflags "${CMAKE_C_FLAGS}") +- set(CMAKE_C_FLAGS "-std=c99 -D_DEFAULT_SOURCE") ++ set(CMAKE_C_FLAGS "-std=c99 -D_DEFAULT_SOURCE ${_save_cflags}") + set(CMAKE_C_FLAGS_RELWITHDEBINFO "-O2 -g ${_save_cflags}") + set(CMAKE_C_FLAGS_RELEASE "-O2 -DNDEBUG ${_save_cflags}") + # clang does not support -fno-reorder-blocks -fno-schedule-insns, so do not use -O2 diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/poppler/poppler/0001-glib-CMakeLists.txt-Add-libpoppler-to-link-along-wit.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/poppler/poppler/0001-glib-CMakeLists.txt-Add-libpoppler-to-link-along-wit.patch deleted file mode 100644 index c364d737..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/poppler/poppler/0001-glib-CMakeLists.txt-Add-libpoppler-to-link-along-wit.patch +++ /dev/null @@ -1,32 +0,0 @@ -From d488de23b75b2f3e235f1c184b2253d1402b4c0f Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Thu, 10 May 2018 23:47:56 -0700 -Subject: [PATCH] glib/CMakeLists.txt: Add libpoppler to link along with - poppler-glib - -This is required since poppler-glib uses symbols from poppler and -we use --as-needed - -Upstream-Status: Pending - -Signed-off-by: Khem Raj ---- - glib/CMakeLists.txt | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/glib/CMakeLists.txt b/glib/CMakeLists.txt -index 6f91669..ca5021f 100644 ---- a/glib/CMakeLists.txt -+++ b/glib/CMakeLists.txt -@@ -135,7 +135,7 @@ if (HAVE_INTROSPECTION AND BUILD_SHARED_LIBS) - get_directory_property(_tmp_includes INCLUDE_DIRECTORIES) - _list_prefix(_includes _tmp_includes "-I") - set(Poppler_0_18_gir_CFLAGS ${_includes} -L${CMAKE_BINARY_DIR} -L${CMAKE_CURRENT_BINARY_DIR}) -- set(Poppler_0_18_gir_LIBS poppler-glib) -+ set(Poppler_0_18_gir_LIBS poppler-glib poppler) - _list_prefix(_abs_introspection_files introspection_files "${CMAKE_CURRENT_SOURCE_DIR}/") - list(APPEND _abs_introspection_files - ${CMAKE_CURRENT_BINARY_DIR}/poppler-enums.c --- -2.20.1 - diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/poppler/poppler/0002-CairoOutputDev.cc-fix-build-error-when-using-fixedpo.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/poppler/poppler/0002-CairoOutputDev.cc-fix-build-error-when-using-fixedpo.patch deleted file mode 100644 index 3c231fe9..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/poppler/poppler/0002-CairoOutputDev.cc-fix-build-error-when-using-fixedpo.patch +++ /dev/null @@ -1,100 +0,0 @@ -From 6287663e7db04df7e6dec58a1fc5bb5d510e8bde Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Andreas=20M=C3=BCller?= -Date: Mon, 9 Apr 2018 19:11:20 +0200 -Subject: [PATCH] CairoOutputDev.cc: fix build error when using fixedpoint -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Fixes: -| /oe-core-glibc/work/armv5te-oe-linux-gnueabi/poppler/0.63.0-r0/poppler-0.63.0/poppler/CairoOutputDev.cc: In function 'int splashRound(SplashCoord)': -| /oe-core-glibc/work/armv5te-oe-linux-gnueabi/poppler/0.63.0-r0/poppler-0.63.0/poppler/CairoOutputDev.cc:1604:28: error: call of overloaded 'floor(FixedPoint)' is ambiguous -| return (int)floor(x + 0.5); -| ^ -| In file included from /oe-core-glibc/work/armv5te-oe-linux-gnueabi/poppler/0.63.0-r0/recipe-sysroot/usr/include/features.h:428:0, -| from /oe-core-glibc/work/armv5te-oe-linux-gnueabi/poppler/0.63.0-r0/recipe-sysroot/usr/include/c++/7.3.0/arm-oe-linux-gnueabi/bits/os_defines.h:39, -| from /oe-core-glibc/work/armv5te-oe-linux-gnueabi/poppler/0.63.0-r0/recipe-sysroot/usr/include/c++/7.3.0/arm-oe-linux-gnueabi/bits/c++config.h:533, -| from /oe-core-glibc/work/armv5te-oe-linux-gnueabi/poppler/0.63.0-r0/recipe-sysroot/usr/include/c++/7.3.0/cstdint:38, -| from /oe-core-glibc/work/armv5te-oe-linux-gnueabi/poppler/0.63.0-r0/poppler-0.63.0/poppler/CairoOutputDev.cc:44: -| /oe-core-glibc/work/armv5te-oe-linux-gnueabi/poppler/0.63.0-r0/recipe-sysroot/usr/include/bits/mathcalls.h:165:1: note: candidate: double floor(double) -| __MATHCALLX (floor,, (_Mdouble_ __x), (__const__)); -| ^ -| In file included from /oe-core-glibc/work/armv5te-oe-linux-gnueabi/poppler/0.63.0-r0/recipe-sysroot/usr/include/c++/7.3.0/math.h:36:0, -| from /oe-core-glibc/work/armv5te-oe-linux-gnueabi/poppler/0.63.0-r0/poppler-0.63.0/poppler/CairoOutputDev.cc:46: -| /oe-core-glibc/work/armv5te-oe-linux-gnueabi/poppler/0.63.0-r0/recipe-sysroot/usr/include/c++/7.3.0/cmath:260:3: note: candidate: constexpr float std::floor(float) -| floor(float __x) -| ^~~~~ -| /oe-core-glibc/work/armv5te-oe-linux-gnueabi/poppler/0.63.0-r0/recipe-sysroot/usr/include/c++/7.3.0/cmath:264:3: note: candidate: constexpr long double std::floor(long double) -| floor(long double __x) -| ^~~~~ -| /oe-core-glibc/work/armv5te-oe-linux-gnueabi/poppler/0.63.0-r0/poppler-0.63.0/poppler/CairoOutputDev.cc: In function 'int splashCeil(SplashCoord)': -| /oe-core-glibc/work/armv5te-oe-linux-gnueabi/poppler/0.63.0-r0/poppler-0.63.0/poppler/CairoOutputDev.cc:1608:21: error: call of overloaded 'ceil(SplashCoord&)' is ambiguous -| return (int)ceil(x); -| ^ -| In file included from /oe-core-glibc/work/armv5te-oe-linux-gnueabi/poppler/0.63.0-r0/recipe-sysroot/usr/include/features.h:428:0, -| from /oe-core-glibc/work/armv5te-oe-linux-gnueabi/poppler/0.63.0-r0/recipe-sysroot/usr/include/c++/7.3.0/arm-oe-linux-gnueabi/bits/os_defines.h:39, -| from /oe-core-glibc/work/armv5te-oe-linux-gnueabi/poppler/0.63.0-r0/recipe-sysroot/usr/include/c++/7.3.0/arm-oe-linux-gnueabi/bits/c++config.h:533, -| from /oe-core-glibc/work/armv5te-oe-linux-gnueabi/poppler/0.63.0-r0/recipe-sysroot/usr/include/c++/7.3.0/cstdint:38, -| from /oe-core-glibc/work/armv5te-oe-linux-gnueabi/poppler/0.63.0-r0/poppler-0.63.0/poppler/CairoOutputDev.cc:44: -| /oe-core-glibc/work/armv5te-oe-linux-gnueabi/poppler/0.63.0-r0/recipe-sysroot/usr/include/bits/mathcalls.h:159:1: note: candidate: double ceil(double) -| __MATHCALLX (ceil,, (_Mdouble_ __x), (__const__)); -| ^ -| In file included from /oe-core-glibc/work/armv5te-oe-linux-gnueabi/poppler/0.63.0-r0/recipe-sysroot/usr/include/c++/7.3.0/math.h:36:0, -| from /oe-core-glibc/work/armv5te-oe-linux-gnueabi/poppler/0.63.0-r0/poppler-0.63.0/poppler/CairoOutputDev.cc:46: -| /oe-core-glibc/work/armv5te-oe-linux-gnueabi/poppler/0.63.0-r0/recipe-sysroot/usr/include/c++/7.3.0/cmath:165:3: note: candidate: constexpr float std::ceil(float) -| ceil(float __x) -| ^~~~ -| /oe-core-glibc/work/armv5te-oe-linux-gnueabi/poppler/0.63.0-r0/recipe-sysroot/usr/include/c++/7.3.0/cmath:169:3: note: candidate: constexpr long double std::ceil(long double) -| ceil(long double __x) -| ^~~~ -| /oe-core-glibc/work/armv5te-oe-linux-gnueabi/poppler/0.63.0-r0/poppler-0.63.0/poppler/CairoOutputDev.cc: In function 'int splashFloor(SplashCoord)': -| /oe-core-glibc/work/armv5te-oe-linux-gnueabi/poppler/0.63.0-r0/poppler-0.63.0/poppler/CairoOutputDev.cc:1612:22: error: call of overloaded 'floor(SplashCoord&)' is ambiguous -| return (int)floor(x); -| ^ -| In file included from /oe-core-glibc/work/armv5te-oe-linux-gnueabi/poppler/0.63.0-r0/recipe-sysroot/usr/include/features.h:428:0, -| from /oe-core-glibc/work/armv5te-oe-linux-gnueabi/poppler/0.63.0-r0/recipe-sysroot/usr/include/c++/7.3.0/arm-oe-linux-gnueabi/bits/os_defines.h:39, -| from /oe-core-glibc/work/armv5te-oe-linux-gnueabi/poppler/0.63.0-r0/recipe-sysroot/usr/include/c++/7.3.0/arm-oe-linux-gnueabi/bits/c++config.h:533, -| from /oe-core-glibc/work/armv5te-oe-linux-gnueabi/poppler/0.63.0-r0/recipe-sysroot/usr/include/c++/7.3.0/cstdint:38, -| from /oe-core-glibc/work/armv5te-oe-linux-gnueabi/poppler/0.63.0-r0/poppler-0.63.0/poppler/CairoOutputDev.cc:44: -| /oe-core-glibc/work/armv5te-oe-linux-gnueabi/poppler/0.63.0-r0/recipe-sysroot/usr/include/bits/mathcalls.h:165:1: note: candidate: double floor(double) - -Signed-off-by: Andreas Müller ---- - poppler/CairoOutputDev.cc | 12 ++++++++++++ - 1 file changed, 12 insertions(+) - -diff --git a/poppler/CairoOutputDev.cc b/poppler/CairoOutputDev.cc -index 18124b8f..4c85ad65 100644 ---- a/poppler/CairoOutputDev.cc -+++ b/poppler/CairoOutputDev.cc -@@ -1602,15 +1602,27 @@ void CairoOutputDev::endActualText(GfxState *state) - } - - static inline int splashRound(SplashCoord x) { -+#if defined(USE_FIXEDPOINT) -+ return FixedPoint::floor(x + 0.5); -+#else - return (int)floor(x + 0.5); -+#endif - } - - static inline int splashCeil(SplashCoord x) { -+#if defined(USE_FIXEDPOINT) -+ return FixedPoint::ceil(x); -+#else - return (int)ceil(x); -+#endif - } - - static inline int splashFloor(SplashCoord x) { -+#if defined(USE_FIXEDPOINT) -+ return FixedPoint::floor(x); -+#else - return (int)floor(x); -+#endif - } - - static --- -2.14.3 - diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/poppler/poppler/basename-include.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/poppler/poppler/basename-include.patch index ab6bdb08..3d6d7a8f 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/poppler/poppler/basename-include.patch +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/poppler/poppler/basename-include.patch @@ -1,20 +1,31 @@ -Minic GNU basename() API for non-glibc library e.g. musl +From 2ac679158062b14729f82f513fc7cafbb6f4f7a6 Mon Sep 17 00:00:00 2001 +From: Randy MacLeod +Date: Fri, 26 Jul 2019 14:26:54 -0400 +Subject: [PATCH 3/3] Minic GNU basename() API for non-glibc library e.g. musl Upstream-Status: Pending + Signed-off-by: Khem Raj +Signed-off-by: Randy MacLeod +--- + goo/gbasename.cc | 4 ++++ + 1 file changed, 4 insertions(+) -Index: poppler-0.64.0/utils/pdfsig.cc -=================================================================== ---- poppler-0.64.0.orig/utils/pdfsig.cc -+++ poppler-0.64.0/utils/pdfsig.cc -@@ -35,6 +35,10 @@ - #include "numberofcharacters.h" - #include +diff --git a/goo/gbasename.cc b/goo/gbasename.cc +index 830c1c80..e93eb368 100644 +--- a/goo/gbasename.cc ++++ b/goo/gbasename.cc +@@ -46,6 +46,10 @@ + #include + #include +#if !defined(__GLIBC__) +#define basename(src) (strrchr(src,'/') ? strrchr(src,'/')+1 : src) +#endif + - static const char * getReadableSigState(SignatureValidationStatus sig_vs) + std::string gbasename(const char* filename) { - switch(sig_vs) { + #ifdef _MSC_VER +-- +2.17.0 + diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/poppler/poppler_0.75.0.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/poppler/poppler_0.75.0.bb deleted file mode 100644 index 0704f1a2..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/poppler/poppler_0.75.0.bb +++ /dev/null @@ -1,59 +0,0 @@ -SUMMARY = "Poppler is a PDF rendering library based on the xpdf-3.0 code base" -LICENSE = "GPLv2" -LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe" - -SRC_URI = "http://poppler.freedesktop.org/${BP}.tar.xz \ - file://0001-Do-not-overwrite-all-our-build-flags.patch \ - file://0002-CairoOutputDev.cc-fix-build-error-when-using-fixedpo.patch \ - file://0001-glib-CMakeLists.txt-Add-libpoppler-to-link-along-wit.patch \ - file://basename-include.patch \ - " -SRC_URI[md5sum] = "3fb4ca803d989742695ca586c5cc489e" -SRC_URI[sha256sum] = "3bbaedb0fa2797cac933a0659d144303e4d09eec6892c65600da987d8707199a" - -DEPENDS = "fontconfig zlib cairo lcms glib-2.0" - -inherit cmake pkgconfig gobject-introspection - -PACKAGECONFIG ??= "jpeg openjpeg png tiff nss ${@bb.utils.contains('BBFILE_COLLECTIONS', 'qt5-layer', 'qt5', '', d)}" -PACKAGECONFIG[jpeg] = "-DWITH_JPEG=ON -DENABLE_DCTDECODER=libjpeg,-DWITH_JPEG=OFF -DENABLE_DCTDECODER=none,jpeg" -PACKAGECONFIG[png] = "-DWITH_PNG=ON,-DWITH_PNG=OFF,libpng" -PACKAGECONFIG[tiff] = "-DWITH_TIFF=ON,-DWITH_TIFF=OFF,tiff" -PACKAGECONFIG[curl] = "-DENABLE_LIBCURL=ON,-DENABLE_LIBCURL=OFF,curl" -PACKAGECONFIG[openjpeg] = "-DENABLE_LIBOPENJPEG=openjpeg2,-DENABLE_LIBOPENJPEG=none,openjpeg" -PACKAGECONFIG[qt5] = "-DENABLE_QT5=ON,-DENABLE_QT5=OFF,qtbase qttools-native" -PACKAGECONFIG[nss] = "-DWITH_NSS3=ON,-DWITH_NSS3=OFF,nss" - -# surprise - did not expect this to work :) -inherit ${@bb.utils.contains('PACKAGECONFIG', 'qt5', 'cmake_qt5', '', d)} - -SECURITY_CFLAGS = "${SECURITY_NO_PIE_CFLAGS}" - -EXTRA_OECMAKE += " \ - -DENABLE_CMS=lcms2 \ - -DENABLE_UNSTABLE_API_ABI_HEADERS=ON \ - -DBUILD_GTK_TESTS=OFF \ - -DENABLE_ZLIB=ON \ - -DCMAKE_CXX_IMPLICIT_INCLUDE_DIRECTORIES:PATH='${STAGING_INCDIR}' \ -" - -do_configure_append() { - # poppler macro uses pkg-config to check for g-ir runtimes. Something - # makes them point to /usr/bin. Align them to sysroot - that's where the - # gir-wrappers are: - sed -i 's: ${bindir}/g-ir: ${STAGING_BINDIR}/g-ir:' ${B}/build.ninja -} - -# check for TARGET_FPU=soft and inform configure of the result so it can disable some floating points -def get_poppler_fpu_setting(bb, d): - if d.getVar('TARGET_FPU') in [ 'soft' ]: - return "-DUSE_FIXEDPOINT=ON" - return "" - -EXTRA_OECMAKE += "${@get_poppler_fpu_setting(bb, d)}" - -PACKAGES =+ "libpoppler libpoppler-glib" -FILES_libpoppler = "${libdir}/libpoppler.so.*" -FILES_libpoppler-glib = "${libdir}/libpoppler-glib.so.*" - -RDEPENDS_libpoppler = "poppler-data" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/poppler/poppler_0.84.0.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/poppler/poppler_0.84.0.bb new file mode 100644 index 00000000..5153868b --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/poppler/poppler_0.84.0.bb @@ -0,0 +1,51 @@ +SUMMARY = "Poppler is a PDF rendering library based on the xpdf-3.0 code base" +HOMEPAGE = "https://poppler.freedesktop.org/" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe" + +SRC_URI = "http://poppler.freedesktop.org/${BP}.tar.xz \ + file://0001-Do-not-overwrite-all-our-build-flags.patch \ + file://basename-include.patch \ + " +SRC_URI[md5sum] = "e14a8aca8809908ad4364c32c17bcb92" +SRC_URI[sha256sum] = "c7a130da743b38a548f7a21fe5940506fb1949f4ebdd3209f0e5b302fa139731" + +DEPENDS = "fontconfig zlib cairo lcms glib-2.0" + +inherit cmake pkgconfig gobject-introspection + +PACKAGECONFIG ??= "jpeg openjpeg png tiff nss ${@bb.utils.contains('BBFILE_COLLECTIONS', 'qt5-layer', 'qt5', '', d)}" +PACKAGECONFIG[jpeg] = "-DWITH_JPEG=ON -DENABLE_DCTDECODER=libjpeg,-DWITH_JPEG=OFF -DENABLE_DCTDECODER=none,jpeg" +PACKAGECONFIG[png] = "-DWITH_PNG=ON,-DWITH_PNG=OFF,libpng" +PACKAGECONFIG[tiff] = "-DWITH_TIFF=ON,-DWITH_TIFF=OFF,tiff" +PACKAGECONFIG[curl] = "-DENABLE_LIBCURL=ON,-DENABLE_LIBCURL=OFF,curl" +PACKAGECONFIG[openjpeg] = "-DENABLE_LIBOPENJPEG=openjpeg2,-DENABLE_LIBOPENJPEG=none,openjpeg" +PACKAGECONFIG[qt5] = "-DENABLE_QT5=ON,-DENABLE_QT5=OFF,qtbase qttools-native" +PACKAGECONFIG[nss] = "-DWITH_NSS3=ON,-DWITH_NSS3=OFF,nss" + +# surprise - did not expect this to work :) +inherit ${@bb.utils.contains('PACKAGECONFIG', 'qt5', 'cmake_qt5', '', d)} + +SECURITY_CFLAGS = "${SECURITY_NO_PIE_CFLAGS}" + +EXTRA_OECMAKE += " \ + -DENABLE_CMS=lcms2 \ + -DENABLE_UNSTABLE_API_ABI_HEADERS=ON \ + -DBUILD_GTK_TESTS=OFF \ + -DENABLE_ZLIB=ON \ + -DCMAKE_CXX_IMPLICIT_INCLUDE_DIRECTORIES:PATH='${STAGING_INCDIR}' \ + ${@bb.utils.contains('GI_DATA_ENABLED', 'True', '-DENABLE_GOBJECT_INTROSPECTION=ON', '-DENABLE_GOBJECT_INTROSPECTION=OFF', d)} \ +" + +do_configure_append() { + # poppler macro uses pkg-config to check for g-ir runtimes. Something + # makes them point to /usr/bin. Align them to sysroot - that's where the + # gir-wrappers are: + sed -i 's: ${bindir}/g-ir: ${STAGING_BINDIR}/g-ir:' ${B}/build.ninja +} + +PACKAGES =+ "libpoppler libpoppler-glib" +FILES_libpoppler = "${libdir}/libpoppler.so.*" +FILES_libpoppler-glib = "${libdir}/libpoppler-glib.so.*" + +RDEPENDS_libpoppler = "poppler-data" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/remmina/remmina_1.3.6.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/remmina/remmina_1.3.6.bb new file mode 100644 index 00000000..14fbc94b --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/remmina/remmina_1.3.6.bb @@ -0,0 +1,41 @@ +DESCRIPTION = "A feature rich Remote Desktop Application written in GTK+" +HOMEPAGE = "https://remmina.org" +SECTION = "Support" +LICENSE = "GPLv2 & openssl" +LIC_FILES_CHKSUM = "file://LICENSE;md5=dab7215512044d49037272ce1ac4ea8f file://LICENSE.OpenSSL;md5=c1eb3cee0a4dea27503c531267a69769" +DEPENDS += "openssl freerdp gtk+3 gdk-pixbuf atk libgcrypt avahi-ui libsodium libssh vte json-glib libsoup-2.4 libvncserver libsecret" + +DEPENDS_append_x86 = " spice spice-protocol" +DEPENDS_append_x86-64 = " spice spice-protocol" + +DEPENDS_append_libc-musl = " libexecinfo" +LDFLAGS_append_libc-musl = " -lexecinfo" + +SRC_URI = "https://gitlab.com/Remmina/Remmina/-/archive/v${PV}/Remmina-v${PV}.tar.bz2 \ +" +SRC_URI[md5sum] = "6da599c3a5cab2df37a70f8fba2f5438" +SRC_URI[sha256sum] = "fbed745438bb0c21467b60cbd67c8148a9289b5ebc7482d06db443bea556af1a" + +S = "${WORKDIR}/Remmina-v${PV}" + +inherit cmake features_check + +# depends on avahi-ui with this restriction +ANY_OF_DISTRO_FEATURES = "${GTK3DISTROFEATURES}" + +EXTRA_OECMAKE += "-DWITH_APPINDICATOR=OFF -DWITH_GETTEXT=OFF -DWITH_TRANSLATIONS=OFF -DWITH_SPICE=OFF" + +EXTRA_OECMAKE_append_x86 = " -DWITH_SPICE=ON" +EXTRA_OECMAKE_append_x86-64 = " -DWITH_SPICE=ON" + + +do_install_append(){ + # We dont need the extra stuff form other desktop environments + rm -rf ${D}/${datadir}/xsessions + rm -rf ${D}/${datadir}/metainfo + rm -rf ${D}/${datadir}/gnome-session +} + +RDEPENDS_${PN} = "bash" + +FILES_${PN}_append = " ${datadir}/icons/hicolor/*" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/samsung-soc-utils/files/0001-ppt.c-Do-not-include-sys-io.h.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/samsung-soc-utils/files/0001-ppt.c-Do-not-include-sys-io.h.patch new file mode 100644 index 00000000..4e6c2504 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/samsung-soc-utils/files/0001-ppt.c-Do-not-include-sys-io.h.patch @@ -0,0 +1,28 @@ +From fd244ae648789591f0fb79e74d2b8f6c5b15d6e8 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Tue, 6 Aug 2019 00:47:14 +0000 +Subject: [PATCH] ppt.c: Do not include sys/io.h + +newer versions of glibc has removed it + +Upstream-Status: Pending +Signed-off-by: Khem Raj +--- + ppt.c | 1 - + 1 file changed, 1 deletion(-) + +diff --git a/ppt.c b/ppt.c +index 0bae2d0..0ef279f 100644 +--- a/ppt.c ++++ b/ppt.c +@@ -5,7 +5,6 @@ + #else + #include + #include +-#include + #include + #include + #include +-- +2.17.1 + diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/samsung-soc-utils/sjf2410-linux-native_svn.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/samsung-soc-utils/sjf2410-linux-native_svn.bb index 2d5935dd..3a5172ee 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/samsung-soc-utils/sjf2410-linux-native_svn.bb +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/samsung-soc-utils/sjf2410-linux-native_svn.bb @@ -7,11 +7,12 @@ SRCREV = "4268" PV = "0.1+svnr${SRCPV}" PR = "r1" -SRC_URI = "svn://svn.openmoko.org/trunk/src/host/;module=sjf2410-linux;protocol=http" +SRC_URI = "svn://svn.openmoko.org/trunk/src/host/;module=sjf2410-linux;protocol=http \ + file://0001-ppt.c-Do-not-include-sys-io.h.patch \ + " S = "${WORKDIR}/sjf2410-linux" inherit native deploy -do_deploy[sstate-outputdirs] = "${DEPLOY_DIR_TOOLS}" CFLAGS += "-DLINUX_PPDEV" @@ -25,8 +26,15 @@ do_install() { } do_deploy() { - install -d ${DEPLOY_DIR_TOOLS} - install -m 0755 sjf2410 ${DEPLOY_DIR_TOOLS}/sjf2410-${PV} + install -m 0755 sjf2410 ${DEPLOYDIR}/sjf2410-${PV} } addtask deploy before do_build after do_install + +do_deploy[sstate-outputdirs] = "${DEPLOY_DIR_TOOLS}" +# cleandirs should possibly be in deploy.bbclass but we need it +do_deploy[cleandirs] = "${DEPLOYDIR}" +# clear stamp-extra-info since MACHINE_ARCH is normally put there by +# deploy.bbclass +do_deploy[stamp-extra-info] = "" + diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/sass/libsass_3.6.3.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/sass/libsass_3.6.3.bb new file mode 100644 index 00000000..d893be22 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/sass/libsass_3.6.3.bb @@ -0,0 +1,13 @@ +SUMMARY = "C/C++ port of the Sass CSS precompiler" +HOMEPAGE = "http://sass-lang.com/libsass" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://COPYING;md5=8f34396ca205f5e119ee77aae91fa27d" + +inherit autotools + +SRC_URI = "git://github.com/sass/libsass.git;branch=master" +SRCREV = "e1c16e09b4a953757a15149deaaf28a3fd81dc97" + +S = "${WORKDIR}/git" + +BBCLASSEXTEND = "native" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/sass/libsass_git.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/sass/libsass_git.bb deleted file mode 100644 index 4c229cdb..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/sass/libsass_git.bb +++ /dev/null @@ -1,13 +0,0 @@ -SUMMARY = "C/C++ port of the Sass CSS precompiler" -HOMEPAGE = "http://sass-lang.com/libsass" -LICENSE = "MIT" -LIC_FILES_CHKSUM = "file://COPYING;md5=8f34396ca205f5e119ee77aae91fa27d" - -inherit autotools - -SRC_URI = "git://github.com/sass/libsass.git;branch=3.5-stable" -SRCREV = "39e30874b9a5dd6a802c20e8b0470ba44eeba929" -S = "${WORKDIR}/git" -PV = "3.5.5" - -BBCLASSEXTEND = "native" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/satyr/satyr_0.27.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/satyr/satyr_0.27.bb deleted file mode 100644 index 10dfc2ba..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/satyr/satyr_0.27.bb +++ /dev/null @@ -1,32 +0,0 @@ -DESCRIPTION = "Satyr is a collection of low-level algorithms for program \ -failure processing, analysis, and reporting supporting kernel space, user \ -space, Python, and Java programs" - -HOMEPAGE = "https://github.com/abrt/satyr" -LICENSE = "GPLv2" - -inherit autotools-brokensep python3native pkgconfig - -SRC_URI = "git://github.com/abrt/satyr.git \ - file://0002-fix-compile-failure-against-musl-C-library.patch \ -" -SRCREV = "dff1b877d42bf2153f8f090905d9cc8fb333bf1e" -S = "${WORKDIR}/git" - -LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe" - -DEPENDS += " \ - gdb \ -" - -PACKAGES += "python3-${PN}" -FILES_python3-${PN} = "${PYTHON_SITEPACKAGES_DIR}/${BPN}" - -PACKAGECONFIG ??= "python3 rpm" -PACKAGECONFIG[python2] = "--with-python2, --without-python2,,python2" -PACKAGECONFIG[python3] = "--with-python3, --without-python3,,python3" -PACKAGECONFIG[rpm] = "--with-rpm, --without-rpm, rpm" - -do_configure_prepend() { - ${S}/gen-version -} diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/satyr/satyr_0.28.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/satyr/satyr_0.28.bb new file mode 100644 index 00000000..fbf018d7 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/satyr/satyr_0.28.bb @@ -0,0 +1,31 @@ +DESCRIPTION = "Satyr is a collection of low-level algorithms for program \ +failure processing, analysis, and reporting supporting kernel space, user \ +space, Python, and Java programs" + +HOMEPAGE = "https://github.com/abrt/satyr" +LICENSE = "GPLv2" + +inherit autotools-brokensep python3native pkgconfig + +SRC_URI = "git://github.com/abrt/satyr.git \ + file://0002-fix-compile-failure-against-musl-C-library.patch \ +" +SRCREV = "8b5547b89b712b39a59f1d8b366e7de0f5f46108" +S = "${WORKDIR}/git" + +LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe" + +DEPENDS += " \ + gdb \ +" + +PACKAGES += "python3-${BPN}" +FILES_python3-${BPN} = "${PYTHON_SITEPACKAGES_DIR}/${BPN}" + +PACKAGECONFIG ??= "python3 rpm" +PACKAGECONFIG[python3] = "--with-python3, --without-python3,,python3" +PACKAGECONFIG[rpm] = "--with-rpm, --without-rpm, rpm" + +do_configure_prepend() { + ${S}/gen-version +} diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/sdparm/sdparm_1.10.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/sdparm/sdparm_1.10.bb index 35e22d3e..c09b495b 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/sdparm/sdparm_1.10.bb +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/sdparm/sdparm_1.10.bb @@ -3,7 +3,7 @@ DESCRIPTION = "The sdparm utility accesses and optionally modifies \ SCSI devices' mode page and inquiry data." HOMEPAGE = "http://sg.danny.cz/sg/sdparm.html" SECTION = "console/utils" -LICENSE = "BSD" +LICENSE = "BSD-3-Clause" LIC_FILES_CHKSUM = "file://COPYING;md5=ecab6c36b7ba82c675581dd0afde36f7 \ file://lib/BSD_LICENSE;md5=1d52f4a66f1e0ed96776bf354ab7a2ed" DEPENDS="sg3-utils" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/sharutils/sharutils/0001-Fix-build-with-recent-gettext.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/sharutils/sharutils/0001-Fix-build-with-recent-gettext.patch new file mode 100644 index 00000000..7924fa55 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/sharutils/sharutils/0001-Fix-build-with-recent-gettext.patch @@ -0,0 +1,22 @@ +From 7a2fe915dded27630a345762628cdd542ea5d58a Mon Sep 17 00:00:00 2001 +From: Alexander Kanavin +Date: Fri, 20 Dec 2019 13:56:16 +0100 +Subject: [PATCH] Fix build with recent gettext + +Upstream-Status: Pending +Signed-off-by: Alexander Kanavin +--- + Makefile.am | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/Makefile.am b/Makefile.am +index 03d1131..65609e7 100644 +--- a/Makefile.am ++++ b/Makefile.am +@@ -17,5 +17,5 @@ + ## Process this file with automake to produce Makefile.in. + + EXTRA_DIST = config.rpath m4 $(DIST_ALPHA) +-SUBDIRS = intl lib libopts src doc po tests ++SUBDIRS = lib libopts src doc po tests + ACLOCAL_AMFLAGS = -I m4 diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/sharutils/sharutils_4.15.2.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/sharutils/sharutils_4.15.2.bb index dca42676..930922ed 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/sharutils/sharutils_4.15.2.bb +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/sharutils/sharutils_4.15.2.bb @@ -6,10 +6,11 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504" inherit gettext autotools -SRC_URI = "ftp://ftp.gnu.org/gnu/${BPN}/${BP}.tar.gz \ +SRC_URI = "${GNU_MIRROR}/${BPN}/${BP}.tar.gz \ file://0001-Fix-build-with-clang.patch \ file://CVE-2018-1000097.patch \ -" + file://0001-Fix-build-with-recent-gettext.patch \ + " SRC_URI[md5sum] = "32a51b23e25ad5e6af4b89f228be1800" SRC_URI[sha256sum] = "ee336e68549664e7a19b117adf02edfdeac6307f22e5ba78baca457116914637" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/smem/smem_1.4.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/smem/smem_1.4.bb index 519020f3..702217a3 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/smem/smem_1.4.bb +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/smem/smem_1.4.bb @@ -25,3 +25,7 @@ do_install() { install -m 0644 ${S}/smem.8 ${D}/${mandir}/man8/ } RDEPENDS_${PN} += "python-textutils python-compression python-shell python-codecs" + +PACKAGES =+ "smemcap" + +FILES_smemcap = "${bindir}/smemcap" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/spitools/spitools_git.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/spitools/spitools_git.bb index af1cd600..62575687 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/spitools/spitools_git.bb +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/spitools/spitools_git.bb @@ -4,9 +4,9 @@ AUTHOR = "Christophe BLAESS" LICENSE="GPLv2" LIC_FILES_CHKSUM = "file://LICENSE;md5=8c16666ae6c159876a0ba63099614381" -BPV = "0.8.3" +BPV = "0.8.4" PV = "${BPV}" -SRCREV = "a3f1f68a048d0d2321ee562b3744dd1162cad22f" +SRCREV = "4a36a84f7df291ddaebd397aecf0c8515256a8e0" S = "${WORKDIR}/git" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/ssiapi/ssiapi/0001-Don-t-use-__GNUC_PREREQ.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/ssiapi/ssiapi/0001-Don-t-use-__GNUC_PREREQ.patch new file mode 100644 index 00000000..d9190e5b --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/ssiapi/ssiapi/0001-Don-t-use-__GNUC_PREREQ.patch @@ -0,0 +1,116 @@ +From dd6ad8ca447457c812809791ab8622da8646104c Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Fri, 30 Aug 2019 13:07:33 -0700 +Subject: [PATCH] Don't use __GNUC_PREREQ + +These are not official GCC predefined macros; they are macros defined +by GNU libc and some versions of BSD libc for internal use by their +own headers, and we shouldn't be using them without checking for their +availability first + +Signed-off-by: Khem Raj +--- + lib/efi/efi.h | 4 ++-- + lib/engine/pragma.h | 4 ++-- + lib/log/log.h | 4 ++-- + lib/mpb/machine_bytes.h | 4 ++-- + lib/mpb/mpb.h | 4 ++-- + lib/orom/orom.h | 4 ++-- + 6 files changed, 12 insertions(+), 12 deletions(-) + +diff --git a/lib/efi/efi.h b/lib/efi/efi.h +index 0620d9c..c8358db 100644 +--- a/lib/efi/efi.h ++++ b/lib/efi/efi.h +@@ -33,9 +33,9 @@ + #include + #include + +-#if __GNUC_PREREQ(3, 4) ++#if ((defined __GNUC__ && __GNUC__ >= 3 && __GNUC_MINOR__ >= 4) || defined __clang__) + #pragma once +-#endif /* __GNUC_PREREQ */ ++#endif + + #if defined(__cplusplus) + extern "C" { +diff --git a/lib/engine/pragma.h b/lib/engine/pragma.h +index 8205ed3..fa0b268 100644 +--- a/lib/engine/pragma.h ++++ b/lib/engine/pragma.h +@@ -32,9 +32,9 @@ + + #include + +-#if __GNUC_PREREQ(3, 4) ++#if ((defined __GNUC__ && __GNUC__ >= 3 && __GNUC_MINOR__ >= 4) || defined __clang__) + #define SSI_HAS_PRAGMA_ONCE +-#endif /* __GNUC_PREREQ */ ++#endif + + #ifdef SSI_HAS_PRAGMA_ONCE + #pragma once +diff --git a/lib/log/log.h b/lib/log/log.h +index 66a707b..ca5000a 100644 +--- a/lib/log/log.h ++++ b/lib/log/log.h +@@ -32,9 +32,9 @@ + + #include + +-#if __GNUC_PREREQ(3, 4) ++#if ((defined __GNUC__ && __GNUC__ >= 3 && __GNUC_MINOR__ >= 4) || defined __clang__) + #pragma once +-#endif /* __GNUC_PREREQ */ ++#endif + + #if defined(__cplusplus) + extern "C" { +diff --git a/lib/mpb/machine_bytes.h b/lib/mpb/machine_bytes.h +index 6cb81c9..807461f 100644 +--- a/lib/mpb/machine_bytes.h ++++ b/lib/mpb/machine_bytes.h +@@ -27,9 +27,9 @@ + * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +-#if __GNUC_PREREQ(3, 4) ++#if ((defined __GNUC__ && __GNUC__ >= 3 && __GNUC_MINOR__ >= 4) || defined __clang__) + #pragma once +-#endif /* __GNUC_PREREQ */ ++#endif + + #ifndef __ENDIAN_H__INCLUDED__ + #define __ENDIAN_H__INCLUDED__ +diff --git a/lib/mpb/mpb.h b/lib/mpb/mpb.h +index 32beb21..98f82fe 100644 +--- a/lib/mpb/mpb.h ++++ b/lib/mpb/mpb.h +@@ -27,9 +27,9 @@ + * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +-#if __GNUC_PREREQ(3, 4) ++#if ((defined __GNUC__ && __GNUC__ >= 3 && __GNUC_MINOR__ >= 4) || defined __clang__) + #pragma once +-#endif /* __GNUC_PREREQ */ ++#endif + + #ifndef __MPB_H__INCLUDED__ + #define __MPB_H__INCLUDED__ +diff --git a/lib/orom/orom.h b/lib/orom/orom.h +index 4492066..16b03a6 100644 +--- a/lib/orom/orom.h ++++ b/lib/orom/orom.h +@@ -32,9 +32,9 @@ + + #include + +-#if __GNUC_PREREQ(3, 4) ++#if ((defined __GNUC__ && __GNUC__ >= 3 && __GNUC_MINOR__ >= 4) || defined __clang__) + #pragma once +-#endif /* __GNUC_PREREQ */ ++#endif + + #if defined(__cplusplus) + extern "C" { diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/ssiapi/ssiapi/0001-Include-libgen.h.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/ssiapi/ssiapi/0001-Include-libgen.h.patch new file mode 100644 index 00000000..fd44571b --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/ssiapi/ssiapi/0001-Include-libgen.h.patch @@ -0,0 +1,32 @@ +From 258a1d128581f185a7a5070f47df06e5c29c9db8 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Fri, 30 Aug 2019 13:43:32 -0700 +Subject: [PATCH] Include libgen.h + +Use XPG version of basename on non gnu libc systems +ideally posix version should be used everywhere but that +would be upstreams choice to make + +Signed-off-by: Khem Raj +--- + tools/ssieventmonitor.cpp | 4 +++- + 1 file changed, 3 insertions(+), 1 deletion(-) + +diff --git a/tools/ssieventmonitor.cpp b/tools/ssieventmonitor.cpp +index 0d11975..af7e09c 100644 +--- a/tools/ssieventmonitor.cpp ++++ b/tools/ssieventmonitor.cpp +@@ -39,7 +39,9 @@ + #include + #include + #include +- ++#ifndef __GLIBC__ ++#include ++#endif + extern "C" { + #include "lib/safeclib/safe_str_lib.h" + } +-- +2.23.0 + diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/ssiapi/ssiapi/0001-Use-pragma-once-unconditionally.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/ssiapi/ssiapi/0001-Use-pragma-once-unconditionally.patch deleted file mode 100644 index ef6ae00e..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/ssiapi/ssiapi/0001-Use-pragma-once-unconditionally.patch +++ /dev/null @@ -1,872 +0,0 @@ -From 3100e23c50e38bff0c2ec77bc30049c113c29414 Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Fri, 16 Jun 2017 20:44:31 -0700 -Subject: [PATCH 1/6] Use pragma once unconditionally - -in OE we do not worry about supporting -gcc 3.4 anyway - -Upstream-Status: Inappropriate[Bumps required gcc to be > 3.4] - -Signed-off-by: Khem Raj ---- - lib/efi/efi.h | 2 -- - lib/engine/ahci.h | 2 -- - lib/engine/ahci_cdrom.h | 2 -- - lib/engine/ahci_disk.h | 2 -- - lib/engine/ahci_multiplier.h | 2 -- - lib/engine/ahci_multiplier_phy.h | 2 -- - lib/engine/ahci_multiplier_port.h | 2 -- - lib/engine/ahci_phy.h | 2 -- - lib/engine/ahci_port.h | 2 -- - lib/engine/ahci_raid_info.h | 2 -- - lib/engine/ahci_tape.h | 2 -- - lib/engine/array.h | 2 -- - lib/engine/block_device.h | 2 -- - lib/engine/cache.h | 2 -- - lib/engine/container.h | 2 -- - lib/engine/context_manager.h | 2 -- - lib/engine/controller.h | 2 -- - lib/engine/enclosure.h | 2 -- - lib/engine/end_device.h | 2 -- - lib/engine/event.h | 2 -- - lib/engine/event_manager.h | 2 -- - lib/engine/exception.h | 2 -- - lib/engine/filesystem.h | 2 -- - lib/engine/isci.h | 2 -- - lib/engine/isci_cdrom.h | 2 -- - lib/engine/isci_disk.h | 2 -- - lib/engine/isci_expander.h | 2 -- - lib/engine/isci_expander_phy.h | 2 -- - lib/engine/isci_expander_port.h | 2 -- - lib/engine/isci_phy.h | 2 -- - lib/engine/isci_port.h | 2 -- - lib/engine/isci_raid_info.h | 2 -- - lib/engine/isci_tape.h | 2 -- - lib/engine/list.h | 2 -- - lib/engine/mdadm_config.h | 2 -- - lib/engine/multimedia_device.h | 2 -- - lib/engine/nondisk_device.h | 2 -- - lib/engine/object.h | 2 -- - lib/engine/pci_header.h | 2 -- - lib/engine/phy.h | 2 -- - lib/engine/port.h | 2 -- - lib/engine/raid_device.h | 2 -- - lib/engine/raid_info.h | 2 -- - lib/engine/remote_port.h | 2 -- - lib/engine/routing_device.h | 2 -- - lib/engine/session.h | 2 -- - lib/engine/session_manager.h | 2 -- - lib/engine/storage_device.h | 2 -- - lib/engine/stream_device.h | 2 -- - lib/engine/string.h | 2 -- - lib/engine/unique_id_manager.h | 2 -- - lib/engine/utils.h | 2 -- - lib/engine/volume.h | 2 -- - lib/log/log.h | 2 -- - lib/mpb/machine_bytes.h | 2 -- - lib/mpb/mpb.h | 2 -- - lib/orom/orom.h | 2 -- - 57 files changed, 114 deletions(-) - -diff --git a/lib/efi/efi.h b/lib/efi/efi.h -index 9e7e41b..804e567 100644 ---- a/lib/efi/efi.h -+++ b/lib/efi/efi.h -@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND - - - --#if __GNUC_PREREQ(3, 4) - #pragma once --#endif /* __GNUC_PREREQ */ - - #ifndef __EFI_H__INCLUDED__ - #define __EFI_H__INCLUDED__ -diff --git a/lib/engine/ahci.h b/lib/engine/ahci.h -index e883d1a..80a9699 100644 ---- a/lib/engine/ahci.h -+++ b/lib/engine/ahci.h -@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND - - - --#if __GNUC_PREREQ(3, 4) - #pragma once --#endif /* __GNUC_PREREQ */ - - #ifndef __AHCI_H__INCLUDED__ - #define __AHCI_H__INCLUDED__ -diff --git a/lib/engine/ahci_cdrom.h b/lib/engine/ahci_cdrom.h -index 442f301..d8ca042 100644 ---- a/lib/engine/ahci_cdrom.h -+++ b/lib/engine/ahci_cdrom.h -@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND - - - --#if __GNUC_PREREQ(3, 4) - #pragma once --#endif /* __GNUC_PREREQ */ - - #ifndef __AHCI_CDROM_H__INCLUDED__ - #define __AHCI_CDROM_H__INCLUDED__ -diff --git a/lib/engine/ahci_disk.h b/lib/engine/ahci_disk.h -index 7892a53..1bad9ad 100644 ---- a/lib/engine/ahci_disk.h -+++ b/lib/engine/ahci_disk.h -@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND - - - --#if __GNUC_PREREQ(3, 4) - #pragma once --#endif /* __GNUC_PREREQ */ - - #ifndef __AHCI_DISK_H__INCLUDED__ - #define __AHCI_DISK_H__INCLUDED__ -diff --git a/lib/engine/ahci_multiplier.h b/lib/engine/ahci_multiplier.h -index d63e9bc..1029af2 100644 ---- a/lib/engine/ahci_multiplier.h -+++ b/lib/engine/ahci_multiplier.h -@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND - - - --#if __GNUC_PREREQ(3, 4) - #pragma once --#endif /* __GNUC_PREREQ */ - - #ifndef __AHCI_MULTIPLIER_H__INCLUDED__ - #define __AHCI_MULTIPLIER_H__INCLUDED__ -diff --git a/lib/engine/ahci_multiplier_phy.h b/lib/engine/ahci_multiplier_phy.h -index 58ecebc..2132c23 100644 ---- a/lib/engine/ahci_multiplier_phy.h -+++ b/lib/engine/ahci_multiplier_phy.h -@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND - - - --#if __GNUC_PREREQ(3, 4) - #pragma once --#endif /* __GNUC_PREREQ */ - - #ifndef __AHCI_MULTIPLIER_PHY_H__INCLUDED__ - #define __AHCI_MULTIPLIER_PHY_H__INCLUDED__ -diff --git a/lib/engine/ahci_multiplier_port.h b/lib/engine/ahci_multiplier_port.h -index 5ff4cf7..2402473 100644 ---- a/lib/engine/ahci_multiplier_port.h -+++ b/lib/engine/ahci_multiplier_port.h -@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND - - - --#if __GNUC_PREREQ(3, 4) - #pragma once --#endif /* __GNUC_PREREQ */ - - #ifndef __AHCI_MULTIPLIER_PORT_H__INCLUDED__ - #define __AHCI_MULTIPLIER_PORT_H__INCLUDED__ -diff --git a/lib/engine/ahci_phy.h b/lib/engine/ahci_phy.h -index e2254e7..a44dae0 100644 ---- a/lib/engine/ahci_phy.h -+++ b/lib/engine/ahci_phy.h -@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND - - - --#if __GNUC_PREREQ(3, 4) - #pragma once --#endif /* __GNUC_PREREQ */ - - #ifndef __AHCI_PHY_H__INCLUDED__ - #define __AHCI_PHY_H__INCLUDED__ -diff --git a/lib/engine/ahci_port.h b/lib/engine/ahci_port.h -index f9e3308..03c109b 100644 ---- a/lib/engine/ahci_port.h -+++ b/lib/engine/ahci_port.h -@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND - - - --#if __GNUC_PREREQ(3, 4) - #pragma once --#endif /* __GNUC_PREREQ */ - - #ifndef __AHCI_PORT_H__INCLUDED__ - #define __AHCI_PORT_H__INCLUDED__ -diff --git a/lib/engine/ahci_raid_info.h b/lib/engine/ahci_raid_info.h -index e1c81ae..c70e63e 100644 ---- a/lib/engine/ahci_raid_info.h -+++ b/lib/engine/ahci_raid_info.h -@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND - - - --#if __GNUC_PREREQ(3, 4) - #pragma once --#endif /* __GNUC_PREREQ */ - - #ifndef __AHCI_RAID_INFO_H__INCLUDED__ - #define __AHCI_RAID_INFO_H__INCLUDED__ -diff --git a/lib/engine/ahci_tape.h b/lib/engine/ahci_tape.h -index cdd9f13..a91fd2c 100644 ---- a/lib/engine/ahci_tape.h -+++ b/lib/engine/ahci_tape.h -@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND - - - --#if __GNUC_PREREQ(3, 4) - #pragma once --#endif /* __GNUC_PREREQ */ - - #ifndef __AHCI_TAPE_H__INCLUDED__ - #define __AHCI_TAPE_H__INCLUDED__ -diff --git a/lib/engine/array.h b/lib/engine/array.h -index 36fb4a4..0986ce3 100644 ---- a/lib/engine/array.h -+++ b/lib/engine/array.h -@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND - - - --#if __GNUC_PREREQ(3, 4) - #pragma once --#endif /* __GNUC_PREREQ */ - - #ifndef __ARRAY_H__INCLUDED__ - #define __ARRAY_H__INCLUDED__ -diff --git a/lib/engine/block_device.h b/lib/engine/block_device.h -index 4503914..45dd3db 100644 ---- a/lib/engine/block_device.h -+++ b/lib/engine/block_device.h -@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND - - - --#if __GNUC_PREREQ(3, 4) - #pragma once --#endif /* __GNUC_PREREQ */ - - #ifndef __BLOCK_DEVICE_H__INCLUDED__ - #define __BLOCK_DEVICE_H__INCLUDED__ -diff --git a/lib/engine/cache.h b/lib/engine/cache.h -index 72cf521..72da20b 100644 ---- a/lib/engine/cache.h -+++ b/lib/engine/cache.h -@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND - - - --#if __GNUC_PREREQ(3,4) - #pragma once --#endif /* __GNUC_PREREQ */ - - #ifndef __CACHE_H__INCLUDED__ - #define __CACHE_H__INCLUDED__ -diff --git a/lib/engine/container.h b/lib/engine/container.h -index 53867b0..c71180c 100644 ---- a/lib/engine/container.h -+++ b/lib/engine/container.h -@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND - - - --#if __GNUC_PREREQ(3,4) - #pragma once --#endif /* __GNUC_PREREQ */ - - #ifndef __CONTAINER_H__INCLUDED__ - #define __CONTAINER_H__INCLUDED__ -diff --git a/lib/engine/context_manager.h b/lib/engine/context_manager.h -index fe9c256..6b4a2e7 100644 ---- a/lib/engine/context_manager.h -+++ b/lib/engine/context_manager.h -@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND - - - --#if __GNUC_PREREQ(3,4) - #pragma once --#endif /* __GNUC_PREREQ */ - - #ifndef __CONTEXT_H__INCLUDED__ - #define __CONTEXT_H__INCLUDED__ -diff --git a/lib/engine/controller.h b/lib/engine/controller.h -index a2f188a..6bd078f 100644 ---- a/lib/engine/controller.h -+++ b/lib/engine/controller.h -@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND - - - --#if __GNUC_PREREQ(3, 4) - #pragma once --#endif /* __GNUC_PREREQ */ - - #ifndef __CONTROLLER_H__INCLUDED__ - #define __CONTROLLER_H__INCLUDED__ -diff --git a/lib/engine/enclosure.h b/lib/engine/enclosure.h -index 3faef0c..f4b13cc 100644 ---- a/lib/engine/enclosure.h -+++ b/lib/engine/enclosure.h -@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND - - - --#if __GNUC_PREREQ(3, 4) - #pragma once --#endif /* __GNUC_PREREQ */ - - #ifndef __ENCLOSURE_H__INCLUDED__ - #define __ENCLOSURE_H__INCLUDED__ -diff --git a/lib/engine/end_device.h b/lib/engine/end_device.h -index f147e41..269b236 100644 ---- a/lib/engine/end_device.h -+++ b/lib/engine/end_device.h -@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND - - - --#if __GNUC_PREREQ(3, 4) - #pragma once --#endif /* __GNUC_PREREQ */ - - #ifndef __END_DEVICE_H__INCLUDED__ - #define __END_DEVICE_H__INCLUDED__ -diff --git a/lib/engine/event.h b/lib/engine/event.h -index cf9bb4f..11a4926 100644 ---- a/lib/engine/event.h -+++ b/lib/engine/event.h -@@ -12,9 +12,7 @@ Redistribution and use in source and binary forms, with or without modification, - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - --#if __GNUC_PREREQ(3, 4) - #pragma once --#endif /* __GNUC_PREREQ */ - - #ifndef __EVENT_H__INCLUDED__ - #define __EVENT_H__INCLUDED__ -diff --git a/lib/engine/event_manager.h b/lib/engine/event_manager.h -index 65007b9..a7a8fc3 100644 ---- a/lib/engine/event_manager.h -+++ b/lib/engine/event_manager.h -@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND - - - --#if __GNUC_PREREQ(3, 4) - #pragma once --#endif /* __GNUC_PREREQ */ - - #ifndef __EVENT_MANAGER_H__INCLUDED__ - #define __EVENT_MANAGER_H__INCLUDED__ -diff --git a/lib/engine/exception.h b/lib/engine/exception.h -index 171e45d..183ebb5 100644 ---- a/lib/engine/exception.h -+++ b/lib/engine/exception.h -@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND - - - --#if __GNUC_PREREQ(3, 4) - #pragma once --#endif /* __GNUC_PREREQ */ - - #ifndef __EXCEPTION_H__INCLUDED__ - #define __EXCEPTION_H__INCLUDED__ -diff --git a/lib/engine/filesystem.h b/lib/engine/filesystem.h -index 9c2ce39..b49df07 100644 ---- a/lib/engine/filesystem.h -+++ b/lib/engine/filesystem.h -@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND - - - --#if __GNUC_PREREQ(3, 4) - #pragma once --#endif /* __GNUC_PREREQ */ - - #ifndef __FILESYSTEM_H__INCLUDED__ - #define __FILESYSTEM_H__INCLUDED__ -diff --git a/lib/engine/isci.h b/lib/engine/isci.h -index ea35cd4..0fa602a 100644 ---- a/lib/engine/isci.h -+++ b/lib/engine/isci.h -@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND - - - --#if __GNUC_PREREQ(3, 4) - #pragma once --#endif /* __GNUC_PREREQ */ - - #ifndef __ISCI_H__INCLUDED__ - #define __ISCI_H__INCLUDED__ -diff --git a/lib/engine/isci_cdrom.h b/lib/engine/isci_cdrom.h -index 87b7e7b..25637f9 100644 ---- a/lib/engine/isci_cdrom.h -+++ b/lib/engine/isci_cdrom.h -@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND - - - --#if __GNUC_PREREQ(3, 4) - #pragma once --#endif /* __GNUC_PREREQ */ - - #ifndef __ISCI_CDROM_H__INCLUDED__ - #define __ISCI_CDROM_H__INCLUDED__ -diff --git a/lib/engine/isci_disk.h b/lib/engine/isci_disk.h -index 596c3cf..8dd0dae 100644 ---- a/lib/engine/isci_disk.h -+++ b/lib/engine/isci_disk.h -@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND - - - --#if __GNUC_PREREQ(3, 4) - #pragma once --#endif /* __GNUC_PREREQ */ - - #ifndef __ISCI_DISK_H__INCLUDED__ - #define __ISCI_DISK_H__INCLUDED__ -diff --git a/lib/engine/isci_expander.h b/lib/engine/isci_expander.h -index ca7c2f1..7dc1920 100644 ---- a/lib/engine/isci_expander.h -+++ b/lib/engine/isci_expander.h -@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND - - - --#if __GNUC_PREREQ(3, 4) - #pragma once --#endif /* __GNUC_PREREQ */ - - #ifndef __ISCI_EXPANDER_H__INCLUDED__ - #define __ISCI_EXPANDER_H__INCLUDED__ -diff --git a/lib/engine/isci_expander_phy.h b/lib/engine/isci_expander_phy.h -index c9cd770..d3d2832 100644 ---- a/lib/engine/isci_expander_phy.h -+++ b/lib/engine/isci_expander_phy.h -@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND - - - --#if __GNUC_PREREQ(3, 4) - #pragma once --#endif /* __GNUC_PREREQ */ - - #ifndef __ISCI_EXPANDER_PHY_H__INCLUDED__ - #define __ISCI_EXPANDER_PHY_H__INCLUDED__ -diff --git a/lib/engine/isci_expander_port.h b/lib/engine/isci_expander_port.h -index e65a124..4fc9310 100644 ---- a/lib/engine/isci_expander_port.h -+++ b/lib/engine/isci_expander_port.h -@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND - - - --#if __GNUC_PREREQ(3, 4) - #pragma once --#endif /* __GNUC_PREREQ */ - - #ifndef __ISCI_EXPANDER_PORT_H__INCLUDED__ - #define __ISCI_EXPANDER_PORT_H__INCLUDED__ -diff --git a/lib/engine/isci_phy.h b/lib/engine/isci_phy.h -index 767a5b2..105c697 100644 ---- a/lib/engine/isci_phy.h -+++ b/lib/engine/isci_phy.h -@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND - - - --#if __GNUC_PREREQ(3, 4) - #pragma once --#endif /* __GNUC_PREREQ */ - - #ifndef __ISCI_PHY_H__INCLUDED__ - #define __ISCI_PHY_H__INCLUDED__ -diff --git a/lib/engine/isci_port.h b/lib/engine/isci_port.h -index b80be7f..5ccc151 100644 ---- a/lib/engine/isci_port.h -+++ b/lib/engine/isci_port.h -@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND - - - --#if __GNUC_PREREQ(3, 4) - #pragma once --#endif /* __GNUC_PREREQ */ - - #ifndef __ISCI_PORT_H__INCLUDED__ - #define __ISCI_PORT_H__INCLUDED__ -diff --git a/lib/engine/isci_raid_info.h b/lib/engine/isci_raid_info.h -index 1df6477..b0b046a 100644 ---- a/lib/engine/isci_raid_info.h -+++ b/lib/engine/isci_raid_info.h -@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND - - - --#if __GNUC_PREREQ(3, 4) - #pragma once --#endif /* __GNUC_PREREQ */ - - #ifndef __ISCI_RAID_INFO_H__INCLUDED__ - #define __ISCI_RAID_INFO_H__INCLUDED__ -diff --git a/lib/engine/isci_tape.h b/lib/engine/isci_tape.h -index 985f767..a2cef2d 100644 ---- a/lib/engine/isci_tape.h -+++ b/lib/engine/isci_tape.h -@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND - - - --#if __GNUC_PREREQ(3, 4) - #pragma once --#endif /* __GNUC_PREREQ */ - - #ifndef __ISCI_TAPE_H__INCLUDED__ - #define __ISCI_TAPE_H__INCLUDED__ -diff --git a/lib/engine/list.h b/lib/engine/list.h -index 9a7c3c3..6395830 100644 ---- a/lib/engine/list.h -+++ b/lib/engine/list.h -@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND - - - --#if __GNUC_PREREQ(3, 4) - #pragma once --#endif /* __GNUC_PREREQ */ - - #ifndef __LIST_H__INCLUDED__ - #define __LIST_H__INCLUDED__ -diff --git a/lib/engine/mdadm_config.h b/lib/engine/mdadm_config.h -index c94020f..e415b4f 100644 ---- a/lib/engine/mdadm_config.h -+++ b/lib/engine/mdadm_config.h -@@ -11,9 +11,7 @@ Redistribution and use in source and binary forms, with or without modification, - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - --#if __GNUC_PREREQ(3, 4) - #pragma once --#endif /* __GNUC_PREREQ */ - - #ifndef __MDADM_CONFIG_H__INCLUDED__ - #define __MDADM_CONFIG_H__INCLUDED__ -diff --git a/lib/engine/multimedia_device.h b/lib/engine/multimedia_device.h -index 533370e..694e2a5 100644 ---- a/lib/engine/multimedia_device.h -+++ b/lib/engine/multimedia_device.h -@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND - - - --#if __GNUC_PREREQ(3, 4) - #pragma once --#endif /* __GNUC_PREREQ */ - - #ifndef __MULTIMEDIA_DEVICE_H__INCLUDED__ - #define __MULTIMEDIA_DEVICE_H__INCLUDED__ -diff --git a/lib/engine/nondisk_device.h b/lib/engine/nondisk_device.h -index 70ebb32..0f00e52 100644 ---- a/lib/engine/nondisk_device.h -+++ b/lib/engine/nondisk_device.h -@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND - - - --#if __GNUC_PREREQ(3, 4) - #pragma once --#endif /* __GNUC_PREREQ */ - - #ifndef __CHARACTER_DEVICE_H__INCLUDED__ - #define __CHARACTER_DEVICE_H__INCLUDED__ -diff --git a/lib/engine/object.h b/lib/engine/object.h -index b52d3d3..345d58c 100644 ---- a/lib/engine/object.h -+++ b/lib/engine/object.h -@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND - - - --#if __GNUC_PREREQ(3, 4) - #pragma once --#endif /* __GNUC_PREREQ */ - - #ifndef __OBJECT_H__INCLUDED__ - #define __OBJECT_H__INCLUDED__ -diff --git a/lib/engine/pci_header.h b/lib/engine/pci_header.h -index 376f296..c5129a0 100644 ---- a/lib/engine/pci_header.h -+++ b/lib/engine/pci_header.h -@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND - - - --#if __GNUC_PREREQ(3, 4) - #pragma once --#endif /* __GNUC_PREREQ */ - - #ifndef __PCI_HEADER_H__INCLUDED__ - #define __PCI_HEADER_H__INCLUDED__ -diff --git a/lib/engine/phy.h b/lib/engine/phy.h -index f5730a0..c59f7c8 100644 ---- a/lib/engine/phy.h -+++ b/lib/engine/phy.h -@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND - - - --#if __GNUC_PREREQ(3, 4) - #pragma once --#endif /* __GNUC_PREREQ */ - - #ifndef __PHY_H__INCLUDED__ - #define __PHY_H__INCLUDED__ -diff --git a/lib/engine/port.h b/lib/engine/port.h -index 2f33876..cc48c7c 100644 ---- a/lib/engine/port.h -+++ b/lib/engine/port.h -@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND - - - --#if __GNUC_PREREQ(3,4) - #pragma once --#endif /* __GNUC_PREREQ */ - - #ifndef __PORT_H__INCLUDED__ - #define __PORT_H__INCLUDED__ -diff --git a/lib/engine/raid_device.h b/lib/engine/raid_device.h -index 998e80c..2174162 100644 ---- a/lib/engine/raid_device.h -+++ b/lib/engine/raid_device.h -@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND - - - --#if __GNUC_PREREQ(3, 4) - #pragma once --#endif /* __GNUC_PREREQ */ - - #ifndef __RAID_DEVICE_H__INCLUDED__ - #define __RAID_DEVICE_H__INCLUDED__ -diff --git a/lib/engine/raid_info.h b/lib/engine/raid_info.h -index 174698a..302be9b 100644 ---- a/lib/engine/raid_info.h -+++ b/lib/engine/raid_info.h -@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND - - - --#if __GNUC_PREREQ(3, 4) - #pragma once --#endif /* __GNUC_PREREQ */ - - #ifndef __RAID_INFO_H__INCLUDED__ - #define __RAID_INFO_H__INCLUDED__ -diff --git a/lib/engine/remote_port.h b/lib/engine/remote_port.h -index c086656..4ddfee3 100644 ---- a/lib/engine/remote_port.h -+++ b/lib/engine/remote_port.h -@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND - - - --#if __GNUC_PREREQ(3, 4) - #pragma once --#endif /* __GNUC_PREREQ */ - - #ifndef __REMOTE_PORT_H__INCLUDED__ - #define __REMOTE_PORT_H__INCLUDED__ -diff --git a/lib/engine/routing_device.h b/lib/engine/routing_device.h -index 5f857a6..284621e 100644 ---- a/lib/engine/routing_device.h -+++ b/lib/engine/routing_device.h -@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND - - - --#if __GNUC_PREREQ(3, 4) - #pragma once --#endif /* __GNUC_PREREQ */ - - #ifndef __ROUTING_DEVICE_H__INCLUDED__ - #define __ROUTING_DEVICE_H__INCLUDED__ -diff --git a/lib/engine/session.h b/lib/engine/session.h -index a901d1c..3200da1 100644 ---- a/lib/engine/session.h -+++ b/lib/engine/session.h -@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND - - - --#if __GNUC_PREREQ(3, 4) - #pragma once --#endif /* __GNUC_PREREQ */ - - #ifndef __SESSION_H__INCLUDED__ - #define __SESSION_H__INCLUDED__ -diff --git a/lib/engine/session_manager.h b/lib/engine/session_manager.h -index 7177064..87e16c3 100644 ---- a/lib/engine/session_manager.h -+++ b/lib/engine/session_manager.h -@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND - - - --#if __GNUC_PREREQ(3, 4) - #pragma once --#endif /* __GNUC_PREREQ */ - - #ifndef __SESSION_MANAGER_H__INCLUDED__ - #define __SESSION_MANAGER_H__INCLUDED__ -diff --git a/lib/engine/storage_device.h b/lib/engine/storage_device.h -index ddeb66f..20bdab2 100644 ---- a/lib/engine/storage_device.h -+++ b/lib/engine/storage_device.h -@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND - - - --#if __GNUC_PREREQ(3, 4) - #pragma once --#endif /* __GNUC_PREREQ */ - - #ifndef __STORAGE_DEVICE_H__INCLUDED__ - #define __STORAGE_DEVICE_H__INCLUDED__ -diff --git a/lib/engine/stream_device.h b/lib/engine/stream_device.h -index 9bc111a..b29bd68 100644 ---- a/lib/engine/stream_device.h -+++ b/lib/engine/stream_device.h -@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND - - - --#if __GNUC_PREREQ(3, 4) - #pragma once --#endif /* __GNUC_PREREQ */ - - #ifndef __STREAM_DEVICE_H__INCLUDED__ - #define __STREAM_DEVICE_H__INCLUDED__ -diff --git a/lib/engine/string.h b/lib/engine/string.h -index 3007dc7..6f348c9 100644 ---- a/lib/engine/string.h -+++ b/lib/engine/string.h -@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND - - - --#if __GNUC_PREREQ(3, 4) - #pragma once --#endif /* __GNUC_PREREQ */ - - #ifndef __STRING_H__INCLUDED__ - #define __STRING_H__INCLUDED__ -diff --git a/lib/engine/unique_id_manager.h b/lib/engine/unique_id_manager.h -index fe79eac..4a13627 100644 ---- a/lib/engine/unique_id_manager.h -+++ b/lib/engine/unique_id_manager.h -@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND - - - --#if __GNUC_PREREQ(3, 4) - #pragma once --#endif /* __GNUC_PREREQ */ - - #ifndef __UNIQUE_ID_MANAGER_H__INCLUDED__ - #define __UNIQUE_ID_MANAGER_H__INCLUDED__ -diff --git a/lib/engine/utils.h b/lib/engine/utils.h -index 86c20cf..5525303 100644 ---- a/lib/engine/utils.h -+++ b/lib/engine/utils.h -@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND - - - --#if __GNUC_PREREQ(3, 4) - #pragma once --#endif /* __GNUC_PREREQ */ - - #ifndef __UTILS_H__INCLUDED__ - #define __UTILS_H__INCLUDED__ -diff --git a/lib/engine/volume.h b/lib/engine/volume.h -index 9a63cbf..3347b31 100644 ---- a/lib/engine/volume.h -+++ b/lib/engine/volume.h -@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND - - - --#if __GNUC_PREREQ(3, 4) - #pragma once --#endif /* __GNUC_PREREQ */ - - // Forward declarations - class Array; -diff --git a/lib/log/log.h b/lib/log/log.h -index c0bd63e..8b5f171 100644 ---- a/lib/log/log.h -+++ b/lib/log/log.h -@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND - - - --#if __GNUC_PREREQ(3, 4) - #pragma once --#endif /* __GNUC_PREREQ */ - - #ifndef __LOG_H__INCLUDED__ - #define __LOG_H__INCLUDED__ -diff --git a/lib/mpb/machine_bytes.h b/lib/mpb/machine_bytes.h -index 7fbb0e9..800b120 100644 ---- a/lib/mpb/machine_bytes.h -+++ b/lib/mpb/machine_bytes.h -@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND - - - --#if __GNUC_PREREQ(3, 4) - #pragma once --#endif /* __GNUC_PREREQ */ - - #ifndef __ENDIAN_H__INCLUDED__ - #define __ENDIAN_H__INCLUDED__ -diff --git a/lib/mpb/mpb.h b/lib/mpb/mpb.h -index 01782af..c42cdfb 100644 ---- a/lib/mpb/mpb.h -+++ b/lib/mpb/mpb.h -@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND - - - --#if __GNUC_PREREQ(3, 4) - #pragma once --#endif /* __GNUC_PREREQ */ - - #ifndef __MPB_H__INCLUDED__ - #define __MPB_H__INCLUDED__ -diff --git a/lib/orom/orom.h b/lib/orom/orom.h -index f76e3ee..e10311d 100644 ---- a/lib/orom/orom.h -+++ b/lib/orom/orom.h -@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND - - - --#if __GNUC_PREREQ(3, 4) - #pragma once --#endif /* __GNUC_PREREQ */ - - #ifndef __OROM_H__INCLUDED__ - #define __OROM_H__INCLUDED__ --- -2.13.1 - diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/ssiapi/ssiapi/0001-log-Avoid-shadowing-functions-from-std-lib.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/ssiapi/ssiapi/0001-log-Avoid-shadowing-functions-from-std-lib.patch new file mode 100644 index 00000000..8fdbf3e6 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/ssiapi/ssiapi/0001-log-Avoid-shadowing-functions-from-std-lib.patch @@ -0,0 +1,57 @@ +From 874da836bc857e5942675c59e19f4fd8ad09b13e Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Thu, 29 Aug 2019 14:08:19 -0700 +Subject: [PATCH 1/4] log: Avoid shadowing functions from std lib + +Signed-off-by: Khem Raj +--- + lib/log/log.c | 2 +- + lib/log/log.h | 8 ++++---- + 2 files changed, 5 insertions(+), 5 deletions(-) + +diff --git a/lib/log/log.c b/lib/log/log.c +index 7d8e17c..18b67a5 100644 +--- a/lib/log/log.c ++++ b/lib/log/log.c +@@ -82,7 +82,7 @@ enum log_level log_get_level(void) { + } + + /* */ +-void __log(enum log_level level, const char *message) { ++void _ssiap_log(enum log_level level, const char *message) { + struct tm tm; + struct timeval tv; + +diff --git a/lib/log/log.h b/lib/log/log.h +index d94e482..66a707b 100644 +--- a/lib/log/log.h ++++ b/lib/log/log.h +@@ -53,13 +53,13 @@ enum log_level { + }; + + /* */ +-#define log(__level, __message) \ ++#define ssiap_log(__level, __message) \ + do { if (log_get_level() >= (enum log_level)(__level)) \ +- __log(__level, __message); \ ++ _ssiap_log(__level, __message); \ + } while (0) + + #define dlog(__message) \ +- log(LOG_DEBUG, __message); ++ ssiap_log(LOG_DEBUG, __message); + + /* */ + void log_init(enum log_level level, const char *path); +@@ -68,7 +68,7 @@ void log_init(enum log_level level, const char *path); + void log_fini(void); + + /* */ +-void __log(enum log_level level, const char *message); ++void _ssiap_log(enum log_level level, const char *message); + + /* */ + enum log_level log_get_level(void); +-- +2.23.0 + diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/ssiapi/ssiapi/0001-ssieventmonitor-ordered-comparison-between-pointers-.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/ssiapi/ssiapi/0001-ssieventmonitor-ordered-comparison-between-pointers-.patch deleted file mode 100644 index 27df9b5d..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/ssiapi/ssiapi/0001-ssieventmonitor-ordered-comparison-between-pointers-.patch +++ /dev/null @@ -1,39 +0,0 @@ -From ea9ecf4bf305f9509d5822b3823658a40162f43c Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Tue, 25 Jul 2017 19:08:21 -0700 -Subject: [PATCH] ssieventmonitor: ordered comparison between pointers and - zero, actually with NULL - -Comparing which is large or small between a pointer and NULL -however, looks completely illogical. Ordered comparison of -two valid pointers is legit, but no pointer will be smaller -than NULL , so comparing if a pointer is larger than NULL -simply means if the pointer is not NULL. - -Fixes errors found with clang e.g. - -| ssieventmonitor.cpp:339:53: error: ordered comparison between pointer and zero ('char *' and 'int') -| if (fgets(nextline, sizeof(nextline) - 1, mdstat) < 0) { -| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ^ ~ - -Signed-off-by: Khem Raj ---- - tools/ssieventmonitor.cpp | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/tools/ssieventmonitor.cpp b/tools/ssieventmonitor.cpp -index f04b8f0..7a00122 100644 ---- a/tools/ssieventmonitor.cpp -+++ b/tools/ssieventmonitor.cpp -@@ -336,7 +336,7 @@ static int _read_mdstat(int fd) - if (!strncmp(line, "md", 2)) { - if (strstr(line, INACTIVE_STR)) { /* possibly container */ - char nextline[1024]; -- if (fgets(nextline, sizeof(nextline) - 1, mdstat) < 0) { -+ if (fgets(nextline, sizeof(nextline) - 1, mdstat) != (char *) NULL) { - fclose(mdstat); - return 1; - } --- -2.13.3 - diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/ssiapi/ssiapi/0002-Convert-macros-into-functions.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/ssiapi/ssiapi/0002-Convert-macros-into-functions.patch deleted file mode 100644 index 351301cd..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/ssiapi/ssiapi/0002-Convert-macros-into-functions.patch +++ /dev/null @@ -1,123 +0,0 @@ -From 1338ee4e69c465f8f381ec3bfe5058080236edba Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Fri, 16 Jun 2017 22:08:35 -0700 -Subject: [PATCH 2/6] Convert macros into functions - -This helps in fixing the security format warnings -add -fno-builtin-log - -Upstream-Status: Pending - -Signed-off-by: Khem Raj ---- - lib/engine/Makefile.am | 3 ++- - lib/log/Makefile.am | 2 ++ - lib/log/log.h | 34 +++++++++++++++++++++------------- - src/Makefile.am | 3 ++- - 4 files changed, 27 insertions(+), 15 deletions(-) - -Index: ssiapi.1.0.1/lib/engine/Makefile.am -=================================================================== ---- ssiapi.1.0.1.orig/lib/engine/Makefile.am -+++ ssiapi.1.0.1/lib/engine/Makefile.am -@@ -113,4 +113,5 @@ libengine_la_SOURCES = \ - libengine_la_CPPFLAGS = \ - -I$(top_srcdir) \ - -I$(top_srcdir)/include \ -- -I$(top_srcdir)/lib -+ -I$(top_srcdir)/lib \ -+ -fno-builtin-log -Index: ssiapi.1.0.1/lib/log/Makefile.am -=================================================================== ---- ssiapi.1.0.1.orig/lib/log/Makefile.am -+++ ssiapi.1.0.1/lib/log/Makefile.am -@@ -5,3 +5,5 @@ noinst_LTLIBRARIES = liblog.la - liblog_la_SOURCES = \ - log.c \ - log.h -+ -+liblog_la_CPPFLAGS = -fno-builtin-log -Index: ssiapi.1.0.1/lib/log/log.h -=================================================================== ---- ssiapi.1.0.1.orig/lib/log/log.h -+++ ssiapi.1.0.1/lib/log/log.h -@@ -23,7 +23,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIG - #if defined(__cplusplus) - extern "C" { - #endif /* __cplusplus */ -- -+#include - /* */ - enum log_level { - LOG_FIRST = 0, -@@ -37,26 +37,34 @@ enum log_level { - }; - - /* */ --#define log(__level, __format, ...) \ -- do { if (log_get_level() >= (enum log_level)(__level)) \ -- __log(__level, __format, ## __VA_ARGS__); \ -- } while (0) -- --#define dlog(__format, ...) \ -- log(LOG_DEBUG, __format, ## __VA_ARGS__); -+void __log(enum log_level level, const char *format, ...) -+ __attribute__((format(printf, 2, 3))); - - /* */ --void log_init(enum log_level level, const char *path); -+enum log_level log_get_level(void); - - /* */ --void log_fini(void); -- -+static inline void log(enum log_level __level, const char* __format, ...) { -+ va_list ap; -+ va_start(ap, __format); -+ do { -+ if (log_get_level() >= (enum log_level)(__level)) -+ __log(__level, __format, ap); -+ } while (0); -+ va_end(ap); -+} -+ -+static inline void dlog(const char* __format, ...) { -+ va_list ap; -+ va_start(ap, __format); -+ log(LOG_DEBUG, __format, ap); -+ va_end(ap); -+} - /* */ --void __log(enum log_level level, const char *format, ...) -- __attribute__((format(printf, 2, 3))); -+void log_init(enum log_level level, const char *path); - - /* */ --enum log_level log_get_level(void); -+void log_fini(void); - - /* */ - void log_set_level(enum log_level level); -Index: ssiapi.1.0.1/src/Makefile.am -=================================================================== ---- ssiapi.1.0.1.orig/src/Makefile.am -+++ ssiapi.1.0.1/src/Makefile.am -@@ -7,7 +7,8 @@ lib_LTLIBRARIES = libssi.la - libssi_la_CPPFLAGS = \ - -I$(top_srcdir) \ - -I$(top_srcdir)/include \ -- -I$(top_srcdir)/lib -+ -I$(top_srcdir)/lib \ -+ -fno-builtin-log - - libssi_la_LDFLAGS = \ - $(SGUTILS_LDFLAGS) \ -Index: ssiapi.1.0.1/lib/efi/Makefile.am -=================================================================== ---- ssiapi.1.0.1.orig/lib/efi/Makefile.am -+++ ssiapi.1.0.1/lib/efi/Makefile.am -@@ -5,3 +5,4 @@ noinst_LTLIBRARIES = libefi.la - libefi_la_SOURCES = \ - efi.cpp \ - efi.h -+libefi_la_CPPFLAGS = -fno-builtin-log diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/ssiapi/ssiapi/0002-Use-stangard-int-types.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/ssiapi/ssiapi/0002-Use-stangard-int-types.patch new file mode 100644 index 00000000..acc718d2 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/ssiapi/ssiapi/0002-Use-stangard-int-types.patch @@ -0,0 +1,54 @@ +From 01a75b23382fd042673d1f00fce708ba6c67d05a Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Fri, 30 Aug 2019 13:12:54 -0700 +Subject: [PATCH] Use stangard int types + +__unitn_* are internal to GNU libc lets use portable types + +Fixes +error: unknown type name '__uint8_t' + +Signed-off-by: Khem Raj +--- + lib/engine/end_device.cpp | 13 +++++++------ + 1 file changed, 7 insertions(+), 6 deletions(-) + +diff --git a/lib/engine/end_device.cpp b/lib/engine/end_device.cpp +index 5a66de9..da078bf 100644 +--- a/lib/engine/end_device.cpp ++++ b/lib/engine/end_device.cpp +@@ -36,6 +36,7 @@ + #include + #include + #include ++#include + #include + #include + #include +@@ -90,20 +91,20 @@ using boost::shared_ptr; + + struct AtaCommand + { +- __uint8_t command; +- __uint8_t obsolete1; +- __uint8_t obsolete2; +- __uint8_t transportDependent; ++ uint8_t command; ++ uint8_t obsolete1; ++ uint8_t obsolete2; ++ uint8_t transportDependent; + }; + + struct AtaIdentifyCall + { + AtaCommand command; +- __uint16_t data[256]; ++ uint16_t data[256]; + }; + + namespace { +- __uint16_t swap(__uint16_t value) ++ uint16_t swap(uint16_t value) + { + return (value >> 8) | (value << 8); + } diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/ssiapi/ssiapi/0002-boost-Backport-clang-support.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/ssiapi/ssiapi/0002-boost-Backport-clang-support.patch new file mode 100644 index 00000000..2eeab54e --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/ssiapi/ssiapi/0002-boost-Backport-clang-support.patch @@ -0,0 +1,1409 @@ +From ef90544f8df369781a6ef094330c9cfa9f0ee1e4 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Thu, 29 Aug 2019 14:09:11 -0700 +Subject: [PATCH 2/4] boost: Backport clang support + +backport headers from boost 1.59 + +Signed-off-by: Khem Raj +--- + lib/boost/config/compiler/clang.hpp | 272 +++++++++ + lib/boost/config/stdlib/libcpp.hpp | 80 +++ + lib/boost/cstdint.hpp | 542 ++++++++++++++++++ + .../detail/sp_counted_base_clang.hpp | 140 +++++ + 4 files changed, 1034 insertions(+) + create mode 100644 lib/boost/config/compiler/clang.hpp + create mode 100644 lib/boost/config/stdlib/libcpp.hpp + create mode 100644 lib/boost/cstdint.hpp + create mode 100644 lib/boost/smart_ptr/detail/sp_counted_base_clang.hpp + +--- /dev/null ++++ b/lib/boost/config/compiler/clang.hpp +@@ -0,0 +1,272 @@ ++ ++// (C) Copyright Douglas Gregor 2010 ++// ++// Use, modification and distribution are subject to the ++// Boost Software License, Version 1.0. (See accompanying file ++// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) ++ ++// See http://www.boost.org for most recent version. ++ ++// Clang compiler setup. ++ ++#define BOOST_HAS_PRAGMA_ONCE ++ ++// Detecting `-fms-extension` compiler flag assuming that _MSC_VER defined when that flag is used. ++#if defined (_MSC_VER) && (__clang_major__ > 3 || (__clang_major__ == 3 && __clang_minor__ >= 4)) ++# define BOOST_HAS_PRAGMA_DETECT_MISMATCH ++#endif ++ ++// When compiling with clang before __has_extension was defined, ++// even if one writes 'defined(__has_extension) && __has_extension(xxx)', ++// clang reports a compiler error. So the only workaround found is: ++ ++#ifndef __has_extension ++#define __has_extension __has_feature ++#endif ++ ++#if !__has_feature(cxx_exceptions) && !defined(BOOST_NO_EXCEPTIONS) ++# define BOOST_NO_EXCEPTIONS ++#endif ++ ++#if !__has_feature(cxx_rtti) && !defined(BOOST_NO_RTTI) ++# define BOOST_NO_RTTI ++#endif ++ ++#if !__has_feature(cxx_rtti) && !defined(BOOST_NO_TYPEID) ++# define BOOST_NO_TYPEID ++#endif ++ ++#if defined(__int64) && !defined(__GNUC__) ++# define BOOST_HAS_MS_INT64 ++#endif ++ ++#define BOOST_HAS_NRVO ++ ++// Branch prediction hints ++#if defined(__has_builtin) ++#if __has_builtin(__builtin_expect) ++#define BOOST_LIKELY(x) __builtin_expect(x, 1) ++#define BOOST_UNLIKELY(x) __builtin_expect(x, 0) ++#endif ++#endif ++ ++// Clang supports "long long" in all compilation modes. ++#define BOOST_HAS_LONG_LONG ++ ++// ++// We disable this if the compiler is really nvcc as it ++// doesn't actually support __int128 as of CUDA_VERSION=5000 ++// even though it defines __SIZEOF_INT128__. ++// See https://svn.boost.org/trac/boost/ticket/10418 ++// Only re-enable this for nvcc if you're absolutely sure ++// of the circumstances under which it's supported: ++// ++#if defined(__SIZEOF_INT128__) && !defined(__CUDACC__) ++# define BOOST_HAS_INT128 ++#endif ++ ++ ++// ++// Dynamic shared object (DSO) and dynamic-link library (DLL) support ++// ++#if !defined(_WIN32) && !defined(__WIN32__) && !defined(WIN32) ++# define BOOST_SYMBOL_EXPORT __attribute__((__visibility__("default"))) ++# define BOOST_SYMBOL_IMPORT ++# define BOOST_SYMBOL_VISIBLE __attribute__((__visibility__("default"))) ++#endif ++ ++// ++// The BOOST_FALLTHROUGH macro can be used to annotate implicit fall-through ++// between switch labels. ++// ++#if __cplusplus >= 201103L && defined(__has_warning) ++# if __has_feature(cxx_attributes) && __has_warning("-Wimplicit-fallthrough") ++# define BOOST_FALLTHROUGH [[clang::fallthrough]] ++# endif ++#endif ++ ++#if !__has_feature(cxx_auto_type) ++# define BOOST_NO_CXX11_AUTO_DECLARATIONS ++# define BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS ++#endif ++ ++// ++// Currently clang on Windows using VC++ RTL does not support C++11's char16_t or char32_t ++// ++#if defined(_MSC_VER) || !(defined(__GXX_EXPERIMENTAL_CXX0X__) || __cplusplus >= 201103L) ++# define BOOST_NO_CXX11_CHAR16_T ++# define BOOST_NO_CXX11_CHAR32_T ++#endif ++ ++#if !__has_feature(cxx_constexpr) ++# define BOOST_NO_CXX11_CONSTEXPR ++#endif ++ ++#if !__has_feature(cxx_decltype) ++# define BOOST_NO_CXX11_DECLTYPE ++#endif ++ ++#if !__has_feature(cxx_decltype_incomplete_return_types) ++# define BOOST_NO_CXX11_DECLTYPE_N3276 ++#endif ++ ++#if !__has_feature(cxx_defaulted_functions) ++# define BOOST_NO_CXX11_DEFAULTED_FUNCTIONS ++#endif ++ ++#if !__has_feature(cxx_deleted_functions) ++# define BOOST_NO_CXX11_DELETED_FUNCTIONS ++#endif ++ ++#if !__has_feature(cxx_explicit_conversions) ++# define BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS ++#endif ++ ++#if !__has_feature(cxx_default_function_template_args) ++# define BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS ++#endif ++ ++#if !__has_feature(cxx_generalized_initializers) ++# define BOOST_NO_CXX11_HDR_INITIALIZER_LIST ++#endif ++ ++#if !__has_feature(cxx_lambdas) ++# define BOOST_NO_CXX11_LAMBDAS ++#endif ++ ++#if !__has_feature(cxx_local_type_template_args) ++# define BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS ++#endif ++ ++#if !__has_feature(cxx_noexcept) ++# define BOOST_NO_CXX11_NOEXCEPT ++#endif ++ ++#if !__has_feature(cxx_nullptr) ++# define BOOST_NO_CXX11_NULLPTR ++#endif ++ ++#if !__has_feature(cxx_range_for) ++# define BOOST_NO_CXX11_RANGE_BASED_FOR ++#endif ++ ++#if !__has_feature(cxx_raw_string_literals) ++# define BOOST_NO_CXX11_RAW_LITERALS ++#endif ++ ++#if !__has_feature(cxx_reference_qualified_functions) ++# define BOOST_NO_CXX11_REF_QUALIFIERS ++#endif ++ ++#if !__has_feature(cxx_generalized_initializers) ++# define BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX ++#endif ++ ++#if !__has_feature(cxx_rvalue_references) ++# define BOOST_NO_CXX11_RVALUE_REFERENCES ++#endif ++ ++#if !__has_feature(cxx_strong_enums) ++# define BOOST_NO_CXX11_SCOPED_ENUMS ++#endif ++ ++#if !__has_feature(cxx_static_assert) ++# define BOOST_NO_CXX11_STATIC_ASSERT ++#endif ++ ++#if !__has_feature(cxx_alias_templates) ++# define BOOST_NO_CXX11_TEMPLATE_ALIASES ++#endif ++ ++#if !__has_feature(cxx_unicode_literals) ++# define BOOST_NO_CXX11_UNICODE_LITERALS ++#endif ++ ++#if !__has_feature(cxx_variadic_templates) ++# define BOOST_NO_CXX11_VARIADIC_TEMPLATES ++#endif ++ ++#if !__has_feature(cxx_user_literals) ++# define BOOST_NO_CXX11_USER_DEFINED_LITERALS ++#endif ++ ++#if !__has_feature(cxx_alignas) ++# define BOOST_NO_CXX11_ALIGNAS ++#endif ++ ++#if !__has_feature(cxx_trailing_return) ++# define BOOST_NO_CXX11_TRAILING_RESULT_TYPES ++#endif ++ ++#if !__has_feature(cxx_inline_namespaces) ++# define BOOST_NO_CXX11_INLINE_NAMESPACES ++#endif ++ ++#if !__has_feature(cxx_override_control) ++# define BOOST_NO_CXX11_FINAL ++#endif ++ ++#if !(__has_feature(__cxx_binary_literals__) || __has_extension(__cxx_binary_literals__)) ++# define BOOST_NO_CXX14_BINARY_LITERALS ++#endif ++ ++#if !__has_feature(__cxx_decltype_auto__) ++# define BOOST_NO_CXX14_DECLTYPE_AUTO ++#endif ++ ++#if !__has_feature(__cxx_aggregate_nsdmi__) ++# define BOOST_NO_CXX14_AGGREGATE_NSDMI ++#endif ++ ++#if !__has_feature(__cxx_init_captures__) ++# define BOOST_NO_CXX14_INITIALIZED_LAMBDA_CAPTURES ++#endif ++ ++#if !__has_feature(__cxx_generic_lambdas__) ++# define BOOST_NO_CXX14_GENERIC_LAMBDAS ++#endif ++ ++// clang < 3.5 has a defect with dependent type, like following. ++// ++// template ++// constexpr typename enable_if >::type foo(T &) ++// { } // error: no return statement in constexpr function ++// ++// This issue also affects C++11 mode, but C++11 constexpr requires return stmt. ++// Therefore we don't care such case. ++// ++// Note that we can't check Clang version directly as the numbering system changes depending who's ++// creating the Clang release (see https://github.com/boostorg/config/pull/39#issuecomment-59927873) ++// so instead verify that we have a feature that was introduced at the same time as working C++14 ++// constexpr (generic lambda's in this case): ++// ++#if !__has_feature(__cxx_generic_lambdas__) || !__has_feature(__cxx_relaxed_constexpr__) ++# define BOOST_NO_CXX14_CONSTEXPR ++#endif ++ ++#if !__has_feature(__cxx_return_type_deduction__) ++# define BOOST_NO_CXX14_RETURN_TYPE_DEDUCTION ++#endif ++ ++#if !__has_feature(__cxx_variable_templates__) ++# define BOOST_NO_CXX14_VARIABLE_TEMPLATES ++#endif ++ ++#if __cplusplus < 201400 ++// All versions with __cplusplus above this value seem to support this: ++# define BOOST_NO_CXX14_DIGIT_SEPARATORS ++#endif ++ ++ ++// Unused attribute: ++#if defined(__GNUC__) && (__GNUC__ >= 4) ++# define BOOST_ATTRIBUTE_UNUSED __attribute__((unused)) ++#endif ++ ++#ifndef BOOST_COMPILER ++# define BOOST_COMPILER "Clang version " __clang_version__ ++#endif ++ ++// Macro used to identify the Clang compiler. ++#define BOOST_CLANG 1 ++ +--- /dev/null ++++ b/lib/boost/config/stdlib/libcpp.hpp +@@ -0,0 +1,80 @@ ++// (C) Copyright Christopher Jefferson 2011. ++// Use, modification and distribution are subject to the ++// Boost Software License, Version 1.0. (See accompanying file ++// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) ++ ++// See http://www.boost.org for most recent version. ++ ++// config for libc++ ++// Might need more in here later. ++ ++#if !defined(_LIBCPP_VERSION) ++# include ++# if !defined(_LIBCPP_VERSION) ++# error "This is not libc++!" ++# endif ++#endif ++ ++#define BOOST_STDLIB "libc++ version " BOOST_STRINGIZE(_LIBCPP_VERSION) ++ ++#define BOOST_HAS_THREADS ++ ++#ifdef _LIBCPP_HAS_NO_VARIADICS ++# define BOOST_NO_CXX11_HDR_TUPLE ++#endif ++ ++// BOOST_NO_CXX11_ALLOCATOR should imply no support for the C++11 ++// allocator model. The C++11 allocator model requires a conforming ++// std::allocator_traits which is only possible with C++11 template ++// aliases since members rebind_alloc and rebind_traits require it. ++#if defined(_LIBCPP_HAS_NO_TEMPLATE_ALIASES) ++# define BOOST_NO_CXX11_ALLOCATOR ++#endif ++ ++#if __cplusplus < 201103 ++# define BOOST_NO_CXX11_HDR_ARRAY ++# define BOOST_NO_CXX11_HDR_CODECVT ++# define BOOST_NO_CXX11_HDR_CONDITION_VARIABLE ++# define BOOST_NO_CXX11_HDR_FORWARD_LIST ++# define BOOST_NO_CXX11_HDR_INITIALIZER_LIST ++# define BOOST_NO_CXX11_HDR_MUTEX ++# define BOOST_NO_CXX11_HDR_RANDOM ++# define BOOST_NO_CXX11_HDR_RATIO ++# define BOOST_NO_CXX11_HDR_REGEX ++# define BOOST_NO_CXX11_HDR_SYSTEM_ERROR ++# define BOOST_NO_CXX11_HDR_THREAD ++# define BOOST_NO_CXX11_HDR_TUPLE ++# define BOOST_NO_CXX11_HDR_TYPEINDEX ++# define BOOST_NO_CXX11_HDR_UNORDERED_MAP ++# define BOOST_NO_CXX11_HDR_UNORDERED_SET ++# define BOOST_NO_CXX11_NUMERIC_LIMITS ++# define BOOST_NO_CXX11_ALLOCATOR ++# define BOOST_NO_CXX11_SMART_PTR ++# define BOOST_NO_CXX11_HDR_FUNCTIONAL ++# define BOOST_NO_CXX11_STD_ALIGN ++# define BOOST_NO_CXX11_ADDRESSOF ++#endif ++ ++// ++// These appear to be unusable/incomplete so far: ++// ++# define BOOST_NO_CXX11_HDR_CHRONO ++# define BOOST_NO_CXX11_HDR_FUTURE ++# define BOOST_NO_CXX11_HDR_TYPE_TRAITS ++# define BOOST_NO_CXX11_ATOMIC_SMART_PTR ++# define BOOST_NO_CXX11_HDR_ATOMIC ++ ++// libc++ uses a non-standard messages_base ++#define BOOST_NO_STD_MESSAGES ++ ++#if defined(__has_include) ++#if !__has_include() ++# define BOOST_NO_CXX14_HDR_SHARED_MUTEX ++#elif __cplusplus <= 201103 ++# define BOOST_NO_CXX14_HDR_SHARED_MUTEX ++#endif ++#elif __cplusplus < 201402 ++# define BOOST_NO_CXX14_HDR_SHARED_MUTEX ++#endif ++ ++// --- end --- +--- /dev/null ++++ b/lib/boost/cstdint.hpp +@@ -0,0 +1,542 @@ ++// boost cstdint.hpp header file ------------------------------------------// ++ ++// (C) Copyright Beman Dawes 1999. ++// (C) Copyright Jens Mauer 2001 ++// (C) Copyright John Maddock 2001 ++// Distributed under the Boost ++// Software License, Version 1.0. (See accompanying file ++// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) ++ ++// See http://www.boost.org/libs/integer for documentation. ++ ++// Revision History ++// 31 Oct 01 use BOOST_HAS_LONG_LONG to check for "long long" (Jens M.) ++// 16 Apr 01 check LONGLONG_MAX when looking for "long long" (Jens Maurer) ++// 23 Jan 01 prefer "long" over "int" for int32_t and intmax_t (Jens Maurer) ++// 12 Nov 00 Merged (Jens Maurer) ++// 23 Sep 00 Added INTXX_C macro support (John Maddock). ++// 22 Sep 00 Better 64-bit support (John Maddock) ++// 29 Jun 00 Reimplement to avoid including stdint.h within namespace boost ++// 8 Aug 99 Initial version (Beman Dawes) ++ ++ ++#ifndef BOOST_CSTDINT_HPP ++#define BOOST_CSTDINT_HPP ++ ++// ++// Since we always define the INT#_C macros as per C++0x, ++// define __STDC_CONSTANT_MACROS so that does the right ++// thing if possible, and so that the user knows that the macros ++// are actually defined as per C99. ++// ++#ifndef __STDC_CONSTANT_MACROS ++# define __STDC_CONSTANT_MACROS ++#endif ++ ++#include ++ ++// ++// Note that GLIBC is a bit inconsistent about whether int64_t is defined or not ++// depending upon what headers happen to have been included first... ++// so we disable use of stdint.h when GLIBC does not define __GLIBC_HAVE_LONG_LONG. ++// See https://svn.boost.org/trac/boost/ticket/3548 and http://sources.redhat.com/bugzilla/show_bug.cgi?id=10990 ++// ++#if defined(BOOST_HAS_STDINT_H) \ ++ && (!defined(__GLIBC__) \ ++ || defined(__GLIBC_HAVE_LONG_LONG) \ ++ || (defined(__GLIBC__) && ((__GLIBC__ > 2) || ((__GLIBC__ == 2) && (__GLIBC_MINOR__ >= 17))))) ++ ++// The following #include is an implementation artifact; not part of interface. ++# ifdef __hpux ++// HP-UX has a vaguely nice in a non-standard location ++# include ++# ifdef __STDC_32_MODE__ ++ // this is triggered with GCC, because it defines __cplusplus < 199707L ++# define BOOST_NO_INT64_T ++# endif ++# elif defined(__FreeBSD__) || defined(__IBMCPP__) || defined(_AIX) ++# include ++# else ++# include ++ ++// There is a bug in Cygwin two _C macros ++# if defined(__STDC_CONSTANT_MACROS) && defined(__CYGWIN__) ++# undef INTMAX_C ++# undef UINTMAX_C ++# define INTMAX_C(c) c##LL ++# define UINTMAX_C(c) c##ULL ++# endif ++ ++# endif ++ ++#ifdef __QNX__ ++ ++// QNX (Dinkumware stdlib) defines these as non-standard names. ++// Reflect to the standard names. ++ ++typedef ::intleast8_t int_least8_t; ++typedef ::intfast8_t int_fast8_t; ++typedef ::uintleast8_t uint_least8_t; ++typedef ::uintfast8_t uint_fast8_t; ++ ++typedef ::intleast16_t int_least16_t; ++typedef ::intfast16_t int_fast16_t; ++typedef ::uintleast16_t uint_least16_t; ++typedef ::uintfast16_t uint_fast16_t; ++ ++typedef ::intleast32_t int_least32_t; ++typedef ::intfast32_t int_fast32_t; ++typedef ::uintleast32_t uint_least32_t; ++typedef ::uintfast32_t uint_fast32_t; ++ ++# ifndef BOOST_NO_INT64_T ++ ++typedef ::intleast64_t int_least64_t; ++typedef ::intfast64_t int_fast64_t; ++typedef ::uintleast64_t uint_least64_t; ++typedef ::uintfast64_t uint_fast64_t; ++ ++# endif ++ ++#endif ++ ++namespace boost ++{ ++ ++ using ::int8_t; ++ using ::int_least8_t; ++ using ::int_fast8_t; ++ using ::uint8_t; ++ using ::uint_least8_t; ++ using ::uint_fast8_t; ++ ++ using ::int16_t; ++ using ::int_least16_t; ++ using ::int_fast16_t; ++ using ::uint16_t; ++ using ::uint_least16_t; ++ using ::uint_fast16_t; ++ ++ using ::int32_t; ++ using ::int_least32_t; ++ using ::int_fast32_t; ++ using ::uint32_t; ++ using ::uint_least32_t; ++ using ::uint_fast32_t; ++ ++# ifndef BOOST_NO_INT64_T ++ ++ using ::int64_t; ++ using ::int_least64_t; ++ using ::int_fast64_t; ++ using ::uint64_t; ++ using ::uint_least64_t; ++ using ::uint_fast64_t; ++ ++# endif ++ ++ using ::intmax_t; ++ using ::uintmax_t; ++ ++} // namespace boost ++ ++#elif defined(__FreeBSD__) && (__FreeBSD__ <= 4) || defined(__osf__) || defined(__VMS) || defined(__SOLARIS9__) || defined(__NetBSD__) ++// FreeBSD and Tru64 have an that contains much of what we need. ++# include ++ ++namespace boost { ++ ++ using ::int8_t; ++ typedef int8_t int_least8_t; ++ typedef int8_t int_fast8_t; ++ using ::uint8_t; ++ typedef uint8_t uint_least8_t; ++ typedef uint8_t uint_fast8_t; ++ ++ using ::int16_t; ++ typedef int16_t int_least16_t; ++ typedef int16_t int_fast16_t; ++ using ::uint16_t; ++ typedef uint16_t uint_least16_t; ++ typedef uint16_t uint_fast16_t; ++ ++ using ::int32_t; ++ typedef int32_t int_least32_t; ++ typedef int32_t int_fast32_t; ++ using ::uint32_t; ++ typedef uint32_t uint_least32_t; ++ typedef uint32_t uint_fast32_t; ++ ++# ifndef BOOST_NO_INT64_T ++ ++ using ::int64_t; ++ typedef int64_t int_least64_t; ++ typedef int64_t int_fast64_t; ++ using ::uint64_t; ++ typedef uint64_t uint_least64_t; ++ typedef uint64_t uint_fast64_t; ++ ++ typedef int64_t intmax_t; ++ typedef uint64_t uintmax_t; ++ ++# else ++ ++ typedef int32_t intmax_t; ++ typedef uint32_t uintmax_t; ++ ++# endif ++ ++} // namespace boost ++ ++#else // BOOST_HAS_STDINT_H ++ ++# include // implementation artifact; not part of interface ++# include // needed for limits macros ++ ++ ++namespace boost ++{ ++ ++// These are fairly safe guesses for some 16-bit, and most 32-bit and 64-bit ++// platforms. For other systems, they will have to be hand tailored. ++// ++// Because the fast types are assumed to be the same as the undecorated types, ++// it may be possible to hand tailor a more efficient implementation. Such ++// an optimization may be illusionary; on the Intel x86-family 386 on, for ++// example, byte arithmetic and load/stores are as fast as "int" sized ones. ++ ++// 8-bit types ------------------------------------------------------------// ++ ++# if UCHAR_MAX == 0xff ++ typedef signed char int8_t; ++ typedef signed char int_least8_t; ++ typedef signed char int_fast8_t; ++ typedef unsigned char uint8_t; ++ typedef unsigned char uint_least8_t; ++ typedef unsigned char uint_fast8_t; ++# else ++# error defaults not correct; you must hand modify boost/cstdint.hpp ++# endif ++ ++// 16-bit types -----------------------------------------------------------// ++ ++# if USHRT_MAX == 0xffff ++# if defined(__crayx1) ++ // The Cray X1 has a 16-bit short, however it is not recommend ++ // for use in performance critical code. ++ typedef short int16_t; ++ typedef short int_least16_t; ++ typedef int int_fast16_t; ++ typedef unsigned short uint16_t; ++ typedef unsigned short uint_least16_t; ++ typedef unsigned int uint_fast16_t; ++# else ++ typedef short int16_t; ++ typedef short int_least16_t; ++ typedef short int_fast16_t; ++ typedef unsigned short uint16_t; ++ typedef unsigned short uint_least16_t; ++ typedef unsigned short uint_fast16_t; ++# endif ++# elif (USHRT_MAX == 0xffffffff) && defined(__MTA__) ++ // On MTA / XMT short is 32 bits unless the -short16 compiler flag is specified ++ // MTA / XMT does support the following non-standard integer types ++ typedef __short16 int16_t; ++ typedef __short16 int_least16_t; ++ typedef __short16 int_fast16_t; ++ typedef unsigned __short16 uint16_t; ++ typedef unsigned __short16 uint_least16_t; ++ typedef unsigned __short16 uint_fast16_t; ++# elif (USHRT_MAX == 0xffffffff) && defined(CRAY) ++ // no 16-bit types on Cray: ++ typedef short int_least16_t; ++ typedef short int_fast16_t; ++ typedef unsigned short uint_least16_t; ++ typedef unsigned short uint_fast16_t; ++# else ++# error defaults not correct; you must hand modify boost/cstdint.hpp ++# endif ++ ++// 32-bit types -----------------------------------------------------------// ++ ++# if UINT_MAX == 0xffffffff ++ typedef int int32_t; ++ typedef int int_least32_t; ++ typedef int int_fast32_t; ++ typedef unsigned int uint32_t; ++ typedef unsigned int uint_least32_t; ++ typedef unsigned int uint_fast32_t; ++# elif (USHRT_MAX == 0xffffffff) ++ typedef short int32_t; ++ typedef short int_least32_t; ++ typedef short int_fast32_t; ++ typedef unsigned short uint32_t; ++ typedef unsigned short uint_least32_t; ++ typedef unsigned short uint_fast32_t; ++# elif ULONG_MAX == 0xffffffff ++ typedef long int32_t; ++ typedef long int_least32_t; ++ typedef long int_fast32_t; ++ typedef unsigned long uint32_t; ++ typedef unsigned long uint_least32_t; ++ typedef unsigned long uint_fast32_t; ++# elif (UINT_MAX == 0xffffffffffffffff) && defined(__MTA__) ++ // Integers are 64 bits on the MTA / XMT ++ typedef __int32 int32_t; ++ typedef __int32 int_least32_t; ++ typedef __int32 int_fast32_t; ++ typedef unsigned __int32 uint32_t; ++ typedef unsigned __int32 uint_least32_t; ++ typedef unsigned __int32 uint_fast32_t; ++# else ++# error defaults not correct; you must hand modify boost/cstdint.hpp ++# endif ++ ++// 64-bit types + intmax_t and uintmax_t ----------------------------------// ++ ++# if defined(BOOST_HAS_LONG_LONG) && \ ++ !defined(BOOST_MSVC) && !defined(__BORLANDC__) && \ ++ (!defined(__GLIBCPP__) || defined(_GLIBCPP_USE_LONG_LONG)) && \ ++ (defined(ULLONG_MAX) || defined(ULONG_LONG_MAX) || defined(ULONGLONG_MAX)) ++# if defined(__hpux) ++ // HP-UX's value of ULONG_LONG_MAX is unusable in preprocessor expressions ++# elif (defined(ULLONG_MAX) && ULLONG_MAX == 18446744073709551615ULL) || (defined(ULONG_LONG_MAX) && ULONG_LONG_MAX == 18446744073709551615ULL) || (defined(ULONGLONG_MAX) && ULONGLONG_MAX == 18446744073709551615ULL) ++ // 2**64 - 1 ++# else ++# error defaults not correct; you must hand modify boost/cstdint.hpp ++# endif ++ ++ typedef ::boost::long_long_type intmax_t; ++ typedef ::boost::ulong_long_type uintmax_t; ++ typedef ::boost::long_long_type int64_t; ++ typedef ::boost::long_long_type int_least64_t; ++ typedef ::boost::long_long_type int_fast64_t; ++ typedef ::boost::ulong_long_type uint64_t; ++ typedef ::boost::ulong_long_type uint_least64_t; ++ typedef ::boost::ulong_long_type uint_fast64_t; ++ ++# elif ULONG_MAX != 0xffffffff ++ ++# if ULONG_MAX == 18446744073709551615 // 2**64 - 1 ++ typedef long intmax_t; ++ typedef unsigned long uintmax_t; ++ typedef long int64_t; ++ typedef long int_least64_t; ++ typedef long int_fast64_t; ++ typedef unsigned long uint64_t; ++ typedef unsigned long uint_least64_t; ++ typedef unsigned long uint_fast64_t; ++# else ++# error defaults not correct; you must hand modify boost/cstdint.hpp ++# endif ++# elif defined(__GNUC__) && defined(BOOST_HAS_LONG_LONG) ++ __extension__ typedef long long intmax_t; ++ __extension__ typedef unsigned long long uintmax_t; ++ __extension__ typedef long long int64_t; ++ __extension__ typedef long long int_least64_t; ++ __extension__ typedef long long int_fast64_t; ++ __extension__ typedef unsigned long long uint64_t; ++ __extension__ typedef unsigned long long uint_least64_t; ++ __extension__ typedef unsigned long long uint_fast64_t; ++# elif defined(BOOST_HAS_MS_INT64) ++ // ++ // we have Borland/Intel/Microsoft __int64: ++ // ++ typedef __int64 intmax_t; ++ typedef unsigned __int64 uintmax_t; ++ typedef __int64 int64_t; ++ typedef __int64 int_least64_t; ++ typedef __int64 int_fast64_t; ++ typedef unsigned __int64 uint64_t; ++ typedef unsigned __int64 uint_least64_t; ++ typedef unsigned __int64 uint_fast64_t; ++# else // assume no 64-bit integers ++# define BOOST_NO_INT64_T ++ typedef int32_t intmax_t; ++ typedef uint32_t uintmax_t; ++# endif ++ ++} // namespace boost ++ ++ ++#endif // BOOST_HAS_STDINT_H ++ ++// intptr_t/uintptr_t are defined separately because they are optional and not universally available ++#if defined(BOOST_WINDOWS) && !defined(_WIN32_WCE) && !defined(BOOST_HAS_STDINT_H) ++// Older MSVC don't have stdint.h and have intptr_t/uintptr_t defined in stddef.h ++#include ++#endif ++ ++// PGI seems to not support intptr_t/uintptr_t properly. BOOST_HAS_STDINT_H is not defined for this compiler by Boost.Config. ++#if !defined(__PGIC__) ++ ++#if (defined(BOOST_WINDOWS) && !defined(_WIN32_WCE)) \ ++ || (defined(_XOPEN_UNIX) && (_XOPEN_UNIX+0 > 0) && !defined(__UCLIBC__)) \ ++ || defined(__CYGWIN__) \ ++ || defined(macintosh) || defined(__APPLE__) || defined(__APPLE_CC__) \ ++ || defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__) || defined(__DragonFly__) || defined(sun) ++ ++namespace boost { ++ using ::intptr_t; ++ using ::uintptr_t; ++} ++#define BOOST_HAS_INTPTR_T ++ ++// Clang pretends to be GCC, so it'll match this condition ++#elif defined(__GNUC__) && defined(__INTPTR_TYPE__) && defined(__UINTPTR_TYPE__) ++ ++namespace boost { ++ typedef __INTPTR_TYPE__ intptr_t; ++ typedef __UINTPTR_TYPE__ uintptr_t; ++} ++#define BOOST_HAS_INTPTR_T ++ ++#endif ++ ++#endif // !defined(__PGIC__) ++ ++#endif // BOOST_CSTDINT_HPP ++ ++ ++/**************************************************** ++ ++Macro definition section: ++ ++Added 23rd September 2000 (John Maddock). ++Modified 11th September 2001 to be excluded when ++BOOST_HAS_STDINT_H is defined (John Maddock). ++Modified 11th Dec 2009 to always define the ++INT#_C macros if they're not already defined (John Maddock). ++ ++******************************************************/ ++ ++#if !defined(BOOST__STDC_CONSTANT_MACROS_DEFINED) && \ ++ (!defined(INT8_C) || !defined(INT16_C) || !defined(INT32_C) || !defined(INT64_C)) ++// ++// For the following code we get several warnings along the lines of: ++// ++// boost/cstdint.hpp:428:35: error: use of C99 long long integer constant ++// ++// So we declare this a system header to suppress these warnings. ++// ++#if defined(__GNUC__) && (__GNUC__ >= 4) ++#pragma GCC system_header ++#endif ++ ++#include ++# define BOOST__STDC_CONSTANT_MACROS_DEFINED ++# if defined(BOOST_HAS_MS_INT64) ++// ++// Borland/Intel/Microsoft compilers have width specific suffixes: ++// ++#ifndef INT8_C ++# define INT8_C(value) value##i8 ++#endif ++#ifndef INT16_C ++# define INT16_C(value) value##i16 ++#endif ++#ifndef INT32_C ++# define INT32_C(value) value##i32 ++#endif ++#ifndef INT64_C ++# define INT64_C(value) value##i64 ++#endif ++# ifdef __BORLANDC__ ++ // Borland bug: appending ui8 makes the type a signed char ++# define UINT8_C(value) static_cast(value##u) ++# else ++# define UINT8_C(value) value##ui8 ++# endif ++#ifndef UINT16_C ++# define UINT16_C(value) value##ui16 ++#endif ++#ifndef UINT32_C ++# define UINT32_C(value) value##ui32 ++#endif ++#ifndef UINT64_C ++# define UINT64_C(value) value##ui64 ++#endif ++#ifndef INTMAX_C ++# define INTMAX_C(value) value##i64 ++# define UINTMAX_C(value) value##ui64 ++#endif ++ ++# else ++// do it the old fashioned way: ++ ++// 8-bit types ------------------------------------------------------------// ++ ++# if (UCHAR_MAX == 0xff) && !defined(INT8_C) ++# define INT8_C(value) static_cast(value) ++# define UINT8_C(value) static_cast(value##u) ++# endif ++ ++// 16-bit types -----------------------------------------------------------// ++ ++# if (USHRT_MAX == 0xffff) && !defined(INT16_C) ++# define INT16_C(value) static_cast(value) ++# define UINT16_C(value) static_cast(value##u) ++# endif ++ ++// 32-bit types -----------------------------------------------------------// ++#ifndef INT32_C ++# if (UINT_MAX == 0xffffffff) ++# define INT32_C(value) value ++# define UINT32_C(value) value##u ++# elif ULONG_MAX == 0xffffffff ++# define INT32_C(value) value##L ++# define UINT32_C(value) value##uL ++# endif ++#endif ++ ++// 64-bit types + intmax_t and uintmax_t ----------------------------------// ++#ifndef INT64_C ++# if defined(BOOST_HAS_LONG_LONG) && \ ++ (defined(ULLONG_MAX) || defined(ULONG_LONG_MAX) || defined(ULONGLONG_MAX) || defined(_ULLONG_MAX) || defined(_LLONG_MAX)) ++ ++# if defined(__hpux) ++ // HP-UX's value of ULONG_LONG_MAX is unusable in preprocessor expressions ++# define INT64_C(value) value##LL ++# define UINT64_C(value) value##uLL ++# elif (defined(ULLONG_MAX) && ULLONG_MAX == 18446744073709551615ULL) || \ ++ (defined(ULONG_LONG_MAX) && ULONG_LONG_MAX == 18446744073709551615ULL) || \ ++ (defined(ULONGLONG_MAX) && ULONGLONG_MAX == 18446744073709551615ULL) || \ ++ (defined(_ULLONG_MAX) && _ULLONG_MAX == 18446744073709551615ULL) || \ ++ (defined(_LLONG_MAX) && _LLONG_MAX == 9223372036854775807LL) ++ ++# define INT64_C(value) value##LL ++# define UINT64_C(value) value##uLL ++# else ++# error defaults not correct; you must hand modify boost/cstdint.hpp ++# endif ++# elif ULONG_MAX != 0xffffffff ++ ++# if ULONG_MAX == 18446744073709551615U // 2**64 - 1 ++# define INT64_C(value) value##L ++# define UINT64_C(value) value##uL ++# else ++# error defaults not correct; you must hand modify boost/cstdint.hpp ++# endif ++# elif defined(BOOST_HAS_LONG_LONG) ++ // Usual macros not defined, work things out for ourselves: ++# if(~0uLL == 18446744073709551615ULL) ++# define INT64_C(value) value##LL ++# define UINT64_C(value) value##uLL ++# else ++# error defaults not correct; you must hand modify boost/cstdint.hpp ++# endif ++# else ++# error defaults not correct; you must hand modify boost/cstdint.hpp ++# endif ++ ++# ifdef BOOST_NO_INT64_T ++# define INTMAX_C(value) INT32_C(value) ++# define UINTMAX_C(value) UINT32_C(value) ++# else ++# define INTMAX_C(value) INT64_C(value) ++# define UINTMAX_C(value) UINT64_C(value) ++# endif ++#endif ++# endif // Borland/Microsoft specific width suffixes ++ ++#endif // INT#_C macros. +--- /dev/null ++++ b/lib/boost/smart_ptr/detail/sp_counted_base_clang.hpp +@@ -0,0 +1,140 @@ ++#ifndef BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_CLANG_HPP_INCLUDED ++#define BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_CLANG_HPP_INCLUDED ++ ++// MS compatible compilers support #pragma once ++ ++#if defined(_MSC_VER) && (_MSC_VER >= 1020) ++# pragma once ++#endif ++ ++// detail/sp_counted_base_clang.hpp - __c11 clang intrinsics ++// ++// Copyright (c) 2007, 2013, 2015 Peter Dimov ++// ++// Distributed under the Boost Software License, Version 1.0. ++// See accompanying file LICENSE_1_0.txt or copy at ++// http://www.boost.org/LICENSE_1_0.txt ++ ++#include ++#include ++ ++namespace boost ++{ ++ ++namespace detail ++{ ++ ++typedef _Atomic( boost::int_least32_t ) atomic_int_least32_t; ++ ++inline void atomic_increment( atomic_int_least32_t * pw ) ++{ ++ __c11_atomic_fetch_add( pw, 1, __ATOMIC_RELAXED ); ++} ++ ++inline boost::int_least32_t atomic_decrement( atomic_int_least32_t * pw ) ++{ ++ return __c11_atomic_fetch_sub( pw, 1, __ATOMIC_ACQ_REL ); ++} ++ ++inline boost::int_least32_t atomic_conditional_increment( atomic_int_least32_t * pw ) ++{ ++ // long r = *pw; ++ // if( r != 0 ) ++*pw; ++ // return r; ++ ++ boost::int_least32_t r = __c11_atomic_load( pw, __ATOMIC_RELAXED ); ++ ++ for( ;; ) ++ { ++ if( r == 0 ) ++ { ++ return r; ++ } ++ ++ if( __c11_atomic_compare_exchange_weak( pw, &r, r + 1, __ATOMIC_RELAXED, __ATOMIC_RELAXED ) ) ++ { ++ return r; ++ } ++ } ++} ++ ++class sp_counted_base ++{ ++private: ++ ++ sp_counted_base( sp_counted_base const & ); ++ sp_counted_base & operator= ( sp_counted_base const & ); ++ ++ atomic_int_least32_t use_count_; // #shared ++ atomic_int_least32_t weak_count_; // #weak + (#shared != 0) ++ ++public: ++ ++ sp_counted_base() ++ { ++ __c11_atomic_init( &use_count_, 1 ); ++ __c11_atomic_init( &weak_count_, 1 ); ++ } ++ ++ virtual ~sp_counted_base() // nothrow ++ { ++ } ++ ++ // dispose() is called when use_count_ drops to zero, to release ++ // the resources managed by *this. ++ ++ virtual void dispose() = 0; // nothrow ++ ++ // destroy() is called when weak_count_ drops to zero. ++ ++ virtual void destroy() // nothrow ++ { ++ delete this; ++ } ++ ++ virtual void * get_deleter( sp_typeinfo const & ti ) = 0; ++ virtual void * get_untyped_deleter() = 0; ++ ++ void add_ref_copy() ++ { ++ atomic_increment( &use_count_ ); ++ } ++ ++ bool add_ref_lock() // true on success ++ { ++ return atomic_conditional_increment( &use_count_ ) != 0; ++ } ++ ++ void release() // nothrow ++ { ++ if( atomic_decrement( &use_count_ ) == 1 ) ++ { ++ dispose(); ++ weak_release(); ++ } ++ } ++ ++ void weak_add_ref() // nothrow ++ { ++ atomic_increment( &weak_count_ ); ++ } ++ ++ void weak_release() // nothrow ++ { ++ if( atomic_decrement( &weak_count_ ) == 1 ) ++ { ++ destroy(); ++ } ++ } ++ ++ long use_count() const // nothrow ++ { ++ return __c11_atomic_load( const_cast< atomic_int_least32_t* >( &use_count_ ), __ATOMIC_ACQUIRE ); ++ } ++}; ++ ++} // namespace detail ++ ++} // namespace boost ++ ++#endif // #ifndef BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_CLANG_HPP_INCLUDED +--- /dev/null ++++ b/lib/boost/smart_ptr/detail/sp_counted_base_sync.hpp +@@ -0,0 +1,156 @@ ++#ifndef BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_SYNC_HPP_INCLUDED ++#define BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_SYNC_HPP_INCLUDED ++ ++// MS compatible compilers support #pragma once ++ ++#if defined(_MSC_VER) && (_MSC_VER >= 1020) ++# pragma once ++#endif ++ ++// detail/sp_counted_base_sync.hpp - g++ 4.1+ __sync intrinsics ++// ++// Copyright (c) 2007 Peter Dimov ++// ++// Distributed under the Boost Software License, Version 1.0. ++// See accompanying file LICENSE_1_0.txt or copy at ++// http://www.boost.org/LICENSE_1_0.txt ++ ++#include ++#include ++ ++#if defined( __ia64__ ) && defined( __INTEL_COMPILER ) ++# include ++#endif ++ ++namespace boost ++{ ++ ++namespace detail ++{ ++ ++#if INT_MAX >= 2147483647 ++ ++typedef int sp_int32_t; ++ ++#else ++ ++typedef long sp_int32_t; ++ ++#endif ++ ++inline void atomic_increment( sp_int32_t * pw ) ++{ ++ __sync_fetch_and_add( pw, 1 ); ++} ++ ++inline sp_int32_t atomic_decrement( sp_int32_t * pw ) ++{ ++ return __sync_fetch_and_add( pw, -1 ); ++} ++ ++inline sp_int32_t atomic_conditional_increment( sp_int32_t * pw ) ++{ ++ // long r = *pw; ++ // if( r != 0 ) ++*pw; ++ // return r; ++ ++ sp_int32_t r = *pw; ++ ++ for( ;; ) ++ { ++ if( r == 0 ) ++ { ++ return r; ++ } ++ ++ sp_int32_t r2 = __sync_val_compare_and_swap( pw, r, r + 1 ); ++ ++ if( r2 == r ) ++ { ++ return r; ++ } ++ else ++ { ++ r = r2; ++ } ++ } ++} ++ ++class sp_counted_base ++{ ++private: ++ ++ sp_counted_base( sp_counted_base const & ); ++ sp_counted_base & operator= ( sp_counted_base const & ); ++ ++ sp_int32_t use_count_; // #shared ++ sp_int32_t weak_count_; // #weak + (#shared != 0) ++ ++public: ++ ++ sp_counted_base(): use_count_( 1 ), weak_count_( 1 ) ++ { ++ } ++ ++ virtual ~sp_counted_base() // nothrow ++ { ++ } ++ ++ // dispose() is called when use_count_ drops to zero, to release ++ // the resources managed by *this. ++ ++ virtual void dispose() = 0; // nothrow ++ ++ // destroy() is called when weak_count_ drops to zero. ++ ++ virtual void destroy() // nothrow ++ { ++ delete this; ++ } ++ ++ virtual void * get_deleter( sp_typeinfo const & ti ) = 0; ++ virtual void * get_untyped_deleter() = 0; ++ ++ void add_ref_copy() ++ { ++ atomic_increment( &use_count_ ); ++ } ++ ++ bool add_ref_lock() // true on success ++ { ++ return atomic_conditional_increment( &use_count_ ) != 0; ++ } ++ ++ void release() // nothrow ++ { ++ if( atomic_decrement( &use_count_ ) == 1 ) ++ { ++ dispose(); ++ weak_release(); ++ } ++ } ++ ++ void weak_add_ref() // nothrow ++ { ++ atomic_increment( &weak_count_ ); ++ } ++ ++ void weak_release() // nothrow ++ { ++ if( atomic_decrement( &weak_count_ ) == 1 ) ++ { ++ destroy(); ++ } ++ } ++ ++ long use_count() const // nothrow ++ { ++ return const_cast< sp_int32_t const volatile & >( use_count_ ); ++ } ++}; ++ ++} // namespace detail ++ ++} // namespace boost ++ ++#endif // #ifndef BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_SYNC_HPP_INCLUDED +--- /dev/null ++++ b/lib/boost/smart_ptr/detail/sp_counted_base_gcc_mips.hpp +@@ -0,0 +1,182 @@ ++#ifndef BOOST_DETAIL_SP_COUNTED_BASE_GCC_MIPS_HPP_INCLUDED ++#define BOOST_DETAIL_SP_COUNTED_BASE_GCC_MIPS_HPP_INCLUDED ++ ++// MS compatible compilers support #pragma once ++ ++#if defined(_MSC_VER) && (_MSC_VER >= 1020) ++# pragma once ++#endif ++ ++// ++// detail/sp_counted_base_gcc_mips.hpp - g++ on MIPS ++// ++// Copyright (c) 2009, Spirent Communications, Inc. ++// ++// Distributed under the Boost Software License, Version 1.0. (See ++// accompanying file LICENSE_1_0.txt or copy at ++// http://www.boost.org/LICENSE_1_0.txt) ++// ++// ++// Lock-free algorithm by Alexander Terekhov ++// ++ ++#include ++ ++namespace boost ++{ ++ ++namespace detail ++{ ++ ++inline void atomic_increment( int * pw ) ++{ ++ // ++*pw; ++ ++ int tmp; ++ ++ __asm__ __volatile__ ++ ( ++ "0:\n\t" ++ ".set push\n\t" ++ ".set mips2\n\t" ++ "ll %0, %1\n\t" ++ "addiu %0, 1\n\t" ++ "sc %0, %1\n\t" ++ ".set pop\n\t" ++ "beqz %0, 0b": ++ "=&r"( tmp ), "=m"( *pw ): ++ "m"( *pw ) ++ ); ++} ++ ++inline int atomic_decrement( int * pw ) ++{ ++ // return --*pw; ++ ++ int rv, tmp; ++ ++ __asm__ __volatile__ ++ ( ++ "0:\n\t" ++ ".set push\n\t" ++ ".set mips2\n\t" ++ "ll %1, %2\n\t" ++ "addiu %0, %1, -1\n\t" ++ "sc %0, %2\n\t" ++ ".set pop\n\t" ++ "beqz %0, 0b\n\t" ++ "addiu %0, %1, -1": ++ "=&r"( rv ), "=&r"( tmp ), "=m"( *pw ): ++ "m"( *pw ): ++ "memory" ++ ); ++ ++ return rv; ++} ++ ++inline int atomic_conditional_increment( int * pw ) ++{ ++ // if( *pw != 0 ) ++*pw; ++ // return *pw; ++ ++ int rv, tmp; ++ ++ __asm__ __volatile__ ++ ( ++ "0:\n\t" ++ ".set push\n\t" ++ ".set mips2\n\t" ++ "ll %0, %2\n\t" ++ "beqz %0, 1f\n\t" ++ "addiu %1, %0, 1\n\t" ++ "sc %1, %2\n\t" ++ ".set pop\n\t" ++ "beqz %1, 0b\n\t" ++ "addiu %0, %0, 1\n\t" ++ "1:": ++ "=&r"( rv ), "=&r"( tmp ), "=m"( *pw ): ++ "m"( *pw ): ++ "memory" ++ ); ++ ++ return rv; ++} ++ ++class sp_counted_base ++{ ++private: ++ ++ sp_counted_base( sp_counted_base const & ); ++ sp_counted_base & operator= ( sp_counted_base const & ); ++ ++ int use_count_; // #shared ++ int weak_count_; // #weak + (#shared != 0) ++ ++public: ++ ++ sp_counted_base(): use_count_( 1 ), weak_count_( 1 ) ++ { ++ } ++ ++ virtual ~sp_counted_base() // nothrow ++ { ++ } ++ ++ // dispose() is called when use_count_ drops to zero, to release ++ // the resources managed by *this. ++ ++ virtual void dispose() = 0; // nothrow ++ ++ // destroy() is called when weak_count_ drops to zero. ++ ++ virtual void destroy() // nothrow ++ { ++ delete this; ++ } ++ ++ virtual void * get_deleter( sp_typeinfo const & ti ) = 0; ++ virtual void * get_untyped_deleter() = 0; ++ ++ void add_ref_copy() ++ { ++ atomic_increment( &use_count_ ); ++ } ++ ++ bool add_ref_lock() // true on success ++ { ++ return atomic_conditional_increment( &use_count_ ) != 0; ++ } ++ ++ void release() // nothrow ++ { ++ if( atomic_decrement( &use_count_ ) == 0 ) ++ { ++ dispose(); ++ weak_release(); ++ } ++ } ++ ++ void weak_add_ref() // nothrow ++ { ++ atomic_increment( &weak_count_ ); ++ } ++ ++ void weak_release() // nothrow ++ { ++ if( atomic_decrement( &weak_count_ ) == 0 ) ++ { ++ destroy(); ++ } ++ } ++ ++ long use_count() const // nothrow ++ { ++ return static_cast( use_count_ ); ++ } ++}; ++ ++} // namespace detail ++ ++} // namespace boost ++ ++#endif // #ifndef BOOST_DETAIL_SP_COUNTED_BASE_GCC_MIPS_HPP_INCLUDED diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/ssiapi/ssiapi/0003-Replace-canonicalize_file_name-with-realpath-API.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/ssiapi/ssiapi/0003-Replace-canonicalize_file_name-with-realpath-API.patch deleted file mode 100644 index 98cd40c8..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/ssiapi/ssiapi/0003-Replace-canonicalize_file_name-with-realpath-API.patch +++ /dev/null @@ -1,33 +0,0 @@ -From 781288d6307002cce70ddafb6efb200b7f60294d Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Fri, 16 Jun 2017 22:12:43 -0700 -Subject: [PATCH 3/6] Replace canonicalize_file_name with realpath() API - -Fixed build on musl where canonicalize_file_name is not implemented - -filesystem.cpp:46:15: error: 'canonicalize_file_name' was not declared in this scope - char *p = canonicalize_file_name(path); - -Upstream-Status: Pending - -Signed-off-by: Khem Raj ---- - lib/engine/filesystem.cpp | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/lib/engine/filesystem.cpp b/lib/engine/filesystem.cpp -index b99257e..6064837 100644 ---- a/lib/engine/filesystem.cpp -+++ b/lib/engine/filesystem.cpp -@@ -43,7 +43,7 @@ void CanonicalPath::__canonicalize_path_name(const char *path) - if (path == 0) { - throw E_NULL_POINTER; - } -- char *p = canonicalize_file_name(path); -+ char *p = realpath(path, NULL); - assign(p); - if (p) { - free(p); --- -2.13.1 - diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/ssiapi/ssiapi/0003-engine-Define-discover-const-String-path-in-base-cla.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/ssiapi/ssiapi/0003-engine-Define-discover-const-String-path-in-base-cla.patch new file mode 100644 index 00000000..26135845 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/ssiapi/ssiapi/0003-engine-Define-discover-const-String-path-in-base-cla.patch @@ -0,0 +1,47 @@ +From 24e0f55c07080a59907c190a315e279f7b2355e5 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Thu, 29 Aug 2019 14:25:02 -0700 +Subject: [PATCH 3/4] engine: Define discover(const String &path) in base class + +this fixes the confusion that compiler may have when inheriting two +different classes where each of them defines discover() virtual function +but with different signatures + +Remove ununsed orom_vmd + +Signed-off-by: Khem Raj +--- + lib/engine/storage_object.h | 3 +++ + lib/engine/vmd_raid_info.h | 2 -- + 2 files changed, 3 insertions(+), 2 deletions(-) + +diff --git a/lib/engine/storage_object.h b/lib/engine/storage_object.h +index f1feb62..9c1d3d8 100644 +--- a/lib/engine/storage_object.h ++++ b/lib/engine/storage_object.h +@@ -123,6 +123,9 @@ public: + virtual void discover() { + throw E_INVALID_OPERATION; + } ++ virtual void discover(const String &path) { ++ throw E_INVALID_OPERATION; ++ } + virtual void addToSession(const boost::shared_ptr& pSession) = 0; + }; + +diff --git a/lib/engine/vmd_raid_info.h b/lib/engine/vmd_raid_info.h +index 2bea839..cc6ffbe 100644 +--- a/lib/engine/vmd_raid_info.h ++++ b/lib/engine/vmd_raid_info.h +@@ -53,8 +53,6 @@ public: + return SSI_ControllerTypeVMD; + } + +-private: +- struct orom_info orom_vmd; + }; + + #endif /* __VMD_RAID_INFO_H__INCLUDED__ */ +-- +2.23.0 + diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/ssiapi/ssiapi/0003-replace-canonicalize_file_name-with-realpath.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/ssiapi/ssiapi/0003-replace-canonicalize_file_name-with-realpath.patch new file mode 100644 index 00000000..848d38b2 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/ssiapi/ssiapi/0003-replace-canonicalize_file_name-with-realpath.patch @@ -0,0 +1,43 @@ +From c817db76bb63b872fe2069e3c2449ac18affe8c1 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Fri, 30 Aug 2019 13:17:38 -0700 +Subject: [PATCH] replace canonicalize_file_name with realpath + +Use 'realpath()' (BSD, POSIX) instead of +'canonicalize_file_name()' (GNU extension). + +Fixes +error: use of undeclared identifier 'canonicalize_file_name' + +Signed-off-by: Khem Raj +--- + lib/engine/filesystem.cpp | 2 +- + tools/ssieventmonitor.cpp | 2 +- + 2 files changed, 2 insertions(+), 2 deletions(-) + +diff --git a/lib/engine/filesystem.cpp b/lib/engine/filesystem.cpp +index bf5a776..194ab8a 100644 +--- a/lib/engine/filesystem.cpp ++++ b/lib/engine/filesystem.cpp +@@ -54,7 +54,7 @@ void CanonicalPath::__canonicalize_path_name(const char *path) + if (path == NULL) { + throw E_NULL_POINTER; + } +- char *p = canonicalize_file_name(path); ++ char *p = realpath(path, (char *)0); + assign(p); + if (p) { + free(p); +diff --git a/tools/ssieventmonitor.cpp b/tools/ssieventmonitor.cpp +index 80791fd..3eed877 100644 +--- a/tools/ssieventmonitor.cpp ++++ b/tools/ssieventmonitor.cpp +@@ -120,7 +120,7 @@ static int _exec_ssimsg(void) + int status; + switch (pid) { + case 0: { +- cp = canonicalize_file_name("/proc/self/exe"); ++ cp = realpath("/proc/self/exe", (char *)0); + if (cp) { + strcpy_s(buffer, sizeof(buffer), cp); + free(cp); diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/ssiapi/ssiapi/0004-Do-not-override-flags-coming-from-build-environment.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/ssiapi/ssiapi/0004-Do-not-override-flags-coming-from-build-environment.patch new file mode 100644 index 00000000..ca2ffc56 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/ssiapi/ssiapi/0004-Do-not-override-flags-coming-from-build-environment.patch @@ -0,0 +1,33 @@ +From 98fad8128d0f3b65619827ee5d65f7767b080c4c Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Thu, 29 Aug 2019 14:35:16 -0700 +Subject: [PATCH 4/4] Do not override flags coming from build environment + +e.g. we need some optimization level turned on when security flags are enabled +without this change, the build would fail + +Signed-off-by: Khem Raj +--- + configure.ac | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +diff --git a/configure.ac b/configure.ac +index 34e41ea..9bd0fe3 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -16,9 +16,9 @@ AM_INIT_AUTOMAKE(ssi, ${VERSION}) + AM_CONFIG_HEADER(config.h) + + dnl Set the language we use +-CPPFLAGS="-g3 -gdwarf-2 -Wall -Werror -fvisibility=hidden -D_GNU_SOURCE -O3 -fstack-protector -D_FORTIFY_SOURCE=2 -Wformat -Wformat-security -fPIC" +-CFLAGS="-std=gnu99 -fstack-protector -D_FORTIFY_SOURCE=2 -Wformat -Wformat-security -fPIC" +-CXXFLAGS="-std=gnu++98 -fvisibility-inlines-hidden -O3 -fstack-protector -D_FORTIFY_SOURCE=2 -Wformat -Wformat-security -fPIC" ++#CPPFLAGS="-g3 -gdwarf-2 -Wall -Werror -fvisibility=hidden -D_GNU_SOURCE -O3 -fstack-protector -D_FORTIFY_SOURCE=2 -Wformat -Wformat-security -fPIC" ++#CFLAGS="-std=gnu99 -fstack-protector -D_FORTIFY_SOURCE=2 -Wformat -Wformat-security -fPIC" ++#CXXFLAGS="-std=gnu++98 -fvisibility-inlines-hidden -O3 -fstack-protector -D_FORTIFY_SOURCE=2 -Wformat -Wformat-security -fPIC" + + dnl Automake 1.11 - silent build rules + m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])]) +-- +2.23.0 + diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/ssiapi/ssiapi/0004-engine-Fix-indentation-and-missing-semi-colon.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/ssiapi/ssiapi/0004-engine-Fix-indentation-and-missing-semi-colon.patch deleted file mode 100644 index 7dce0da4..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/ssiapi/ssiapi/0004-engine-Fix-indentation-and-missing-semi-colon.patch +++ /dev/null @@ -1,54 +0,0 @@ -From 04e8b99d8195a0e39982ecd27802421610633724 Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Fri, 16 Jun 2017 22:18:31 -0700 -Subject: [PATCH 4/6] engine: Fix indentation and missing semi-colon - -Upstream-Status: Pending - -Signed-off-by: Khem Raj ---- - lib/engine/mdadm_config.cpp | 5 +++-- - lib/engine/unique_id_manager.cpp | 2 +- - 2 files changed, 4 insertions(+), 3 deletions(-) - -diff --git a/lib/engine/mdadm_config.cpp b/lib/engine/mdadm_config.cpp -index 1914ddc..e40c2c7 100644 ---- a/lib/engine/mdadm_config.cpp -+++ b/lib/engine/mdadm_config.cpp -@@ -118,9 +118,10 @@ void check_configuration() - attr >> config; - configOk = correct_config(config); - } catch (Exception ex) { -- if (ex != E_NOT_FOUND) -+ if (ex != E_NOT_FOUND) { - dlog("Warning: mdadm config file cannot be read, new one will be written"); - backup = false; -+ } - } - - if (configOk && monitor_running()) { -@@ -134,7 +135,7 @@ void check_configuration() - dlog("Warning: failed to update mdadm.conf"); - } - if (restart_monitor() == 0) -- dlog("Monitor restarted successfully") -+ dlog("Monitor restarted successfully"); - else - dlog("Error starting Monitor"); - } -diff --git a/lib/engine/unique_id_manager.cpp b/lib/engine/unique_id_manager.cpp -index 99c153c..87d6ddc 100644 ---- a/lib/engine/unique_id_manager.cpp -+++ b/lib/engine/unique_id_manager.cpp -@@ -185,7 +185,7 @@ void UniqueIdManager::refresh() - keyFile >> keyList; - keyList += "\n"; - } catch (...) { -- dlog("ssi.keys file missing") -+ dlog("ssi.keys file missing"); - /* no file? that's ok */ - } - /* process the list to update IdCaches */ --- -2.13.1 - diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/ssiapi/ssiapi/0004-include-limits.h.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/ssiapi/ssiapi/0004-include-limits.h.patch new file mode 100644 index 00000000..d63eb506 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/ssiapi/ssiapi/0004-include-limits.h.patch @@ -0,0 +1,25 @@ +From e90101128dfe75b9b1a0575a0179d211f677e6ad Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Fri, 30 Aug 2019 13:19:50 -0700 +Subject: [PATCH] include limits.h + +Fixes +error: use of undeclared identifier 'PATH_MAX' + +Signed-off-by: Khem Raj +--- + tools/ssieventmonitor.cpp | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/tools/ssieventmonitor.cpp b/tools/ssieventmonitor.cpp +index 3eed877..0d11975 100644 +--- a/tools/ssieventmonitor.cpp ++++ b/tools/ssieventmonitor.cpp +@@ -34,6 +34,7 @@ + #include + #include + #include ++#include + #include + #include + #include diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/ssiapi/ssiapi/0005-enable-out-of-source-tree-builds.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/ssiapi/ssiapi/0005-enable-out-of-source-tree-builds.patch new file mode 100644 index 00000000..c516f652 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/ssiapi/ssiapi/0005-enable-out-of-source-tree-builds.patch @@ -0,0 +1,228 @@ +From 3ec4eaf1688e413e8b5cb433148a3bc6e7987606 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Thu, 29 Aug 2019 15:10:03 -0700 +Subject: [PATCH] enable out of source tree builds + +Signed-off-by: Khem Raj +--- + lib/efi/Makefile.am | 2 +- + lib/engine/Makefile.am | 2 +- + lib/orom/Makefile.am | 2 +- + lib/safeclib/Makefile.am | 2 +- + src/Makefile.am | 16 ++++++++-------- + tools/Makefile.am | 10 +++++----- + ut/Makefile.am | 36 ++++++++++++++++++------------------ + 7 files changed, 35 insertions(+), 35 deletions(-) + +--- a/lib/efi/Makefile.am ++++ b/lib/efi/Makefile.am +@@ -7,6 +7,6 @@ libefi_la_SOURCES = \ + efi.h + + libefi_la_CPPFLAGS = \ +- -I$(top_srcdir) \ ++ -I$(top_builddir) \ + -I$(top_srcdir)/include \ + -I$(top_srcdir)/lib +--- a/lib/engine/Makefile.am ++++ b/lib/engine/Makefile.am +@@ -123,6 +123,7 @@ libengine_la_SOURCES = \ + volume.h + + libengine_la_CPPFLAGS = \ ++ -I$(top_builddir) \ + -I$(top_srcdir) \ + -I$(top_srcdir)/include \ + -I$(top_srcdir)/lib +--- a/lib/orom/Makefile.am ++++ b/lib/orom/Makefile.am +@@ -7,6 +7,6 @@ liborom_la_SOURCES = \ + orom.h + + liborom_la_CPPFLAGS = \ +- -I$(top_srcdir) \ ++ -I$(top_builddir) \ + -I$(top_srcdir)/include \ + -I$(top_srcdir)/lib +--- a/lib/safeclib/Makefile.am ++++ b/lib/safeclib/Makefile.am +@@ -37,7 +37,7 @@ libsafec_la_SOURCES = \ + strtok_s.c + + libsafec_la_CPPFLAGS = \ +- -I$(top_srcdir) \ ++ -I$(top_builddir) \ + -I$(top_srcdir)/include \ + -I$(top_srcdir)/lib \ + -Wno-unused-variable +--- a/src/Makefile.am ++++ b/src/Makefile.am +@@ -5,7 +5,7 @@ AUTOMAKE_OPTIONS = nostdinc + lib_LTLIBRARIES = libssi.la + + libssi_la_CPPFLAGS = \ +- -I$(top_srcdir) \ ++ -I$(top_builddir) \ + -I$(top_srcdir)/include \ + -I$(top_srcdir)/lib \ + -DBOOST_NO_USER_CONFIG +@@ -46,10 +46,10 @@ libssi_la_SOURCES = + templates.h \ + volume.cpp + +-libssi_la_LIBADD = \ +- ../lib/efi/libefi.la \ +- ../lib/log/liblog.la \ +- ../lib/orom/liborom.la \ +- ../lib/mpb/libmpb.la \ +- ../lib/engine/libengine.la \ +- ../lib/safeclib/libsafec.la ++libssi_la_LIBADD = \ ++ $(top_builddir)/lib/efi/libefi.la \ ++ $(top_builddir)/lib/log/liblog.la \ ++ $(top_builddir)/lib/orom/liborom.la \ ++ $(top_builddir)/lib/mpb/libmpb.la \ ++ $(top_builddir)/lib/engine/libengine.la \ ++ $(top_builddir)/lib/safeclib/libsafec.la +--- a/tools/Makefile.am ++++ b/tools/Makefile.am +@@ -6,17 +6,18 @@ ssimsg_SOURCES = + ssimsg.cpp + + ssimsg_CPPFLAGS = \ +- -I$(top_srcdir) \ ++ -I$(top_builddir) \ + -I$(top_srcdir)/include \ + -I$(top_srcdir)/lib + +-ssieventmonitor_SOURCES = \ ++ssieventmonitor_SOURCES = \ + ssieventmonitor.cpp + +-ssieventmonitor_CPPFLAGS = \ ++ssieventmonitor_CPPFLAGS = \ ++ -I$(top_builddir) \ + -I$(top_srcdir) \ + -I$(top_srcdir)/include \ + -I$(top_srcdir)/lib + + ssieventmonitor_LDADD = \ +- $(top_srcdir)/lib/safeclib/libsafec.la ++ $(top_builddir)/lib/safeclib/libsafec.la +--- a/ut/Makefile.am ++++ b/ut/Makefile.am +@@ -8,81 +8,81 @@ ut_events_SOURCES = \ + ut_events.cpp + + ut_events_CPPFLAGS = \ +- -I$(top_srcdir) \ ++ -I$(top_builddir) \ + -I$(top_srcdir)/include + + ut_events_LDADD = \ +- ../src/libssi.la ++ $(top_builddir)/src/libssi.la + + ut_volume_SOURCES = \ + ut_volume.cpp + + ut_volume_CPPFLAGS = \ +- -I$(top_srcdir) \ ++ -I$(top_builddir) \ + -I$(top_srcdir)/include + + ut_volume_LDADD = \ +- ../src/libssi.la ++ $(top_builddir)/src/libssi.la + + ut_session_SOURCES = \ + ut_session.cpp + + ut_session_CPPFLAGS = \ +- -g3 -I$(top_srcdir) \ ++ -g3 -I$(top_builddir) \ + -I$(top_srcdir)/include + + ut_session_LDADD = \ +- ../src/libssi.la ++ $(top_builddir)/src/libssi.la + + ut_info_SOURCES = \ + ut_info.cpp + + ut_info_CPPFLAGS = \ +- -g3 -I$(top_srcdir) \ ++ -g3 -I$(top_builddir) \ + -I$(top_srcdir)/include + + ut_info_LDADD = \ +- ../src/libssi.la ++ $(top_builddir)/src/libssi.la + + ut_markasspare_SOURCES = \ + ut_markasspare.cpp + + ut_markasspare_CPPFLAGS = \ +- -g3 -I$(top_srcdir) \ ++ -g3 -I$(top_builddir) \ + -I$(top_srcdir)/include + + ut_markasspare_LDADD = \ +- ../src/libssi.la ++ $(top_builddir)/src/libssi.la + + ut_migration_SOURCES = \ + ut_migration.cpp + + ut_migration_CPPFLAGS = \ +- -g3 -I$(top_srcdir) \ ++ -g3 -I$(top_builddir) \ + -I$(top_srcdir)/include + + ut_migration_LDADD = \ +- ../src/libssi.la ++ $(top_builddir)/src/libssi.la + + ut_phy_SOURCES = \ + ut_phy.cpp + + ut_phy_CPPFLAGS = \ +- -g3 -I$(top_srcdir) \ ++ -g3 -I$(top_builddir) \ + -I$(top_srcdir)/include + + ut_phy_LDADD = \ +- ../src/libssi.la ++ $(top_builddir)/src/libssi.la + + ut_initialize_volume_SOURCES = \ + ut_initialize_volume.cpp + + ut_initialize_volume_CPPFLAGS = \ +- -g3 -I$(top_srcdir) \ ++ -g3 -I$(top_builddir) \ + -I$(top_srcdir)/include + + ut_initialize_volume_LDADD = \ +- ../src/libssi.la ++ $(top_builddir)/src/libssi.la + + ut_filesystem_SOURCES = \ + ut_filesystem.cpp \ +@@ -92,7 +92,7 @@ ut_filesystem_SOURCES = \ + + ut_filesystem_CPPFLAGS = \ + -iquote $(top_srcdir)/lib/engine \ +- -I$(top_srcdir) \ ++ -I$(top_builddir) \ + -I$(top_srcdir)/include + + ut_string_SOURCES = \ +@@ -103,6 +103,6 @@ ut_string_SOURCES = \ + + ut_string_CPPFLAGS = \ + -iquote $(top_srcdir)/lib/engine \ +- -I$(top_srcdir) \ ++ -I$(top_builddir) \ + -I$(top_srcdir)/include + diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/ssiapi/ssiapi/0005-engine-Define-SENTINEL.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/ssiapi/ssiapi/0005-engine-Define-SENTINEL.patch deleted file mode 100644 index 6f4dbf18..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/ssiapi/ssiapi/0005-engine-Define-SENTINEL.patch +++ /dev/null @@ -1,40 +0,0 @@ -From a2e3a2e332c406ea3c56a8d74b61978107df68e6 Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Fri, 16 Jun 2017 22:23:08 -0700 -Subject: [PATCH 5/6] engine: Define SENTINEL - -Fix warnings with gcc7 -test.cpp:12: warning: missing sentinel in function call - -Upstream-Status: Pending - -Signed-off-by: Khem Raj ---- - lib/engine/utils.cpp | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/lib/engine/utils.cpp b/lib/engine/utils.cpp -index 44579a1..8812a8c 100644 ---- a/lib/engine/utils.cpp -+++ b/lib/engine/utils.cpp -@@ -35,7 +35,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND - #include "filesystem.h" - #include "utils.h" - #include "log/log.h" -- -+#define SENTINEL (const char *)0 - /** - * @brief capture shell output as binary data - * -@@ -139,7 +139,7 @@ int shell(const String &s) - * Before switching into new executable close all non standard - * file handlers.*/ - close_parent_fds(); -- execl("/bin/sh", "sh", "-c", cmd.get(), NULL); -+ execl("/bin/sh", "sh", "-c", cmd.get(), SENTINEL); - /* If we're here then execl failed*/ - exit(-1); - break; --- -2.13.1 - diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/ssiapi/ssiapi/0006-tools-Add-missing-includes-and-use-realpath-instead-.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/ssiapi/ssiapi/0006-tools-Add-missing-includes-and-use-realpath-instead-.patch deleted file mode 100644 index a7b70e3f..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/ssiapi/ssiapi/0006-tools-Add-missing-includes-and-use-realpath-instead-.patch +++ /dev/null @@ -1,40 +0,0 @@ -From df1d56d6b6a6b15d0137619eb8a4b623de6c9633 Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Fri, 16 Jun 2017 22:28:59 -0700 -Subject: [PATCH 6/6] tools: Add missing includes and use realpath() instead of - canonicalize_file_name - -Upstream-Status: Pending - -Signed-off-by: Khem Raj ---- - tools/ssieventmonitor.cpp | 6 ++++-- - 1 file changed, 4 insertions(+), 2 deletions(-) - -diff --git a/tools/ssieventmonitor.cpp b/tools/ssieventmonitor.cpp -index 0553386..f04b8f0 100644 ---- a/tools/ssieventmonitor.cpp -+++ b/tools/ssieventmonitor.cpp -@@ -18,7 +18,9 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND - #include - #include - #include --#include -+#include -+#include -+#include - #include - #include - #include -@@ -99,7 +101,7 @@ static int _exec_ssimsg(void) - int status; - switch (pid) { - case 0: { -- cp = canonicalize_file_name("/proc/self/exe"); -+ cp = realpath("/proc/self/exe", NULL); - if (cp) { - strcpy(buffer, cp); - free(cp); --- -2.13.1 - diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/ssiapi/ssiapi/configure-cflags.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/ssiapi/ssiapi/configure-cflags.patch deleted file mode 100644 index d45be590..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/ssiapi/ssiapi/configure-cflags.patch +++ /dev/null @@ -1,21 +0,0 @@ -Do not override flags thereby respect the flags coming from environment, -e.g. we need some optimization level turned on when security flags are enabled -without this change, the build would fail - -Signed-off-by: Khem Raj -Index: ssiapi.1.0.1/configure.ac -=================================================================== ---- ssiapi.1.0.1.orig/configure.ac -+++ ssiapi.1.0.1/configure.ac -@@ -15,11 +15,6 @@ AC_SUBST(VERSION) - AM_INIT_AUTOMAKE(ssi, ${VERSION}) - AM_CONFIG_HEADER(config.h) - --dnl Set the language we use --CPPFLAGS="-g3 -gdwarf-2 -Wall -Werror -D_GNU_SOURCE" --CFLAGS="-std=gnu99" --CXXFLAGS="-std=gnu++98" -- - dnl Automake 1.11 - silent build rules - m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])]) - diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/ssiapi/ssiapi_1.0.1.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/ssiapi/ssiapi_1.0.1.bb deleted file mode 100644 index 5eb4696b..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/ssiapi/ssiapi_1.0.1.bb +++ /dev/null @@ -1,35 +0,0 @@ -SUMMARY = "Intel RSTe with Linux OS SSI API Library" - -DESCRIPTION = "Intel Rapid Storage Technology enterprise with Linux OS* Standard Storage Interface API Library. \ -The library allows user to manage storage devices including creating and managing Raid arrays on systems with Intel chipset." - -HOMEPAGE = "http://irstessi.sourceforge.net/" - -LICENSE = "BSD" -LIC_FILES_CHKSUM = "file://COPYING;md5=0413ff365e0bd733c4869a6797551c6f" - -DEPENDS += "sg3-utils" - -SRC_URI = "http://sourceforge.net/projects/irstessi/files/${BPN}.${PV}.tgz \ - file://0001-Use-pragma-once-unconditionally.patch \ - file://0002-Convert-macros-into-functions.patch \ - file://0003-Replace-canonicalize_file_name-with-realpath-API.patch \ - file://0004-engine-Fix-indentation-and-missing-semi-colon.patch \ - file://0005-engine-Define-SENTINEL.patch \ - file://0006-tools-Add-missing-includes-and-use-realpath-instead-.patch \ - file://configure-cflags.patch \ - file://0001-ssieventmonitor-ordered-comparison-between-pointers-.patch \ - " -SRC_URI[md5sum] = "02f16d7cbd30d28034093212906591f5" -SRC_URI[sha256sum] = "e10d283b0f211afb8ebd0bde87c097769613d30a052cdf164753e35e803264c7" - -S ="${WORKDIR}/${BPN}.${PV}" - -inherit autotools-brokensep -CXXFLAGS="-std=gnu++98 -D_GNU_SOURCE" - -do_configure_prepend(){ - ./autogen.sh -} - -RDEPENDS_${PN} += "mdadm" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/ssiapi/ssiapi_1.3.0.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/ssiapi/ssiapi_1.3.0.bb new file mode 100644 index 00000000..ce46cf58 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/ssiapi/ssiapi_1.3.0.bb @@ -0,0 +1,38 @@ +SUMMARY = "Intel RSTe with Linux OS SSI API Library" + +DESCRIPTION = "Intel Rapid Storage Technology enterprise with Linux OS* Standard Storage Interface API Library. \ +The library allows user to manage storage devices including creating and managing Raid arrays on systems with Intel chipset." + +HOMEPAGE = "http://irstessi.sourceforge.net/" + +LICENSE = "BSD-3-Clause" +LIC_FILES_CHKSUM = "file://COPYING;md5=9d701a2fbb56039fd64afb2262008ddb" + +DEPENDS += "sg3-utils" + +SRC_URI = "http://sourceforge.net/projects/irstessi/files/${BPN}.${PV}.tgz \ + file://0001-log-Avoid-shadowing-functions-from-std-lib.patch \ + file://0002-boost-Backport-clang-support.patch \ + file://0003-engine-Define-discover-const-String-path-in-base-cla.patch \ + file://0004-Do-not-override-flags-coming-from-build-environment.patch \ + file://0005-enable-out-of-source-tree-builds.patch \ + file://0001-Don-t-use-__GNUC_PREREQ.patch \ + file://0002-Use-stangard-int-types.patch \ + file://0003-replace-canonicalize_file_name-with-realpath.patch \ + file://0004-include-limits.h.patch \ + file://0001-Include-libgen.h.patch \ + " +SRC_URI[md5sum] = "d06c9b426437a7697d77266e9835b520" +SRC_URI[sha256sum] = "59daab29363d6e9f07c524029c4239653cfbbee6b0e57fd75df62499728dad8a" + +S ="${WORKDIR}/${BPN}.${PV}" + +inherit autotools + +do_configure_prepend(){ + ${S}/autogen.sh +} + +RDEPENDS_${PN} += "mdadm" + +COMPATIBLE_HOST_powerpc = 'null' diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/synergy/synergy_git.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/synergy/synergy_git.bb index f5518bd8..dba89d18 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/synergy/synergy_git.bb +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/synergy/synergy_git.bb @@ -17,7 +17,7 @@ PV = "1.10.1+git${SRCPV}" S = "${WORKDIR}/git" -inherit cmake distro_features_check +inherit cmake features_check EXTRA_OECMAKE += "-DSYNERGY_BUILD_LEGACY_GUI=OFF" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/syslog-ng/files/0001-syslog-ng-fix-segment-fault-during-service-start.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/syslog-ng/files/0001-syslog-ng-fix-segment-fault-during-service-start.patch index 0fc40be4..b5bfcd02 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/syslog-ng/files/0001-syslog-ng-fix-segment-fault-during-service-start.patch +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/syslog-ng/files/0001-syslog-ng-fix-segment-fault-during-service-start.patch @@ -1,6 +1,3 @@ -From caeccb7bec45f65bc89efa8195b3853368328361 Mon Sep 17 00:00:00 2001 -From: Changqing Li -Date: Mon, 17 Sep 2018 12:49:36 +0800 Subject: [PATCH] syslog-ng: fix segment fault during service start on arm64 service start failed since segment fault on arch arm64, @@ -17,12 +14,15 @@ https://github.com/buytenh/ivykis/issues/15 Upstream-Status: Pending Signed-off-by: Changqing Li + +Update for 3.24.1. +Signed-off-by: Zheng Ruoqin --- - lib/ivykis/src/pthr.h | 24 ++++++++++++------------ - 1 file changed, 12 insertions(+), 12 deletions(-) + lib/ivykis/src/pthr.h | 23 ++++++++++++----------- + 1 file changed, 12 insertions(+), 11 deletions(-) diff --git a/lib/ivykis/src/pthr.h b/lib/ivykis/src/pthr.h -index a41eaf3..72c5190 100644 +index 29e4be7..5d29096 100644 --- a/lib/ivykis/src/pthr.h +++ b/lib/ivykis/src/pthr.h @@ -24,6 +24,16 @@ @@ -47,12 +47,12 @@ index a41eaf3..72c5190 100644 #ifdef HAVE_PRAGMA_WEAK -/* -- * On Linux, pthread_atfork() is defined in libpthread_nonshared.a, -- * a static library, and we want to avoid "#pragma weak" for that -- * symbol because that causes it to be undefined even if you link -- * libpthread_nonshared.a in explicitly. +- * On Linux, pthread_atfork() is defined in libc_nonshared.a (for +- * glibc >= 2.28) or libpthread_nonshared.a (for glibc <= 2.27), and +- * we want to avoid "#pragma weak" for that symbol because that causes +- * it to be undefined even if you link lib*_nonshared.a in explicitly. - */ --#ifndef HAVE_LIBPTHREAD_NONSHARED +-#if !defined(HAVE_LIBC_NONSHARED) && !defined(HAVE_LIBPTHREAD_NONSHARED) -#pragma weak pthread_atfork -#endif - @@ -60,16 +60,15 @@ index a41eaf3..72c5190 100644 #pragma weak pthread_create #pragma weak pthread_detach #pragma weak pthread_getspecific -@@ -73,8 +74,7 @@ static inline int +@@ -73,7 +74,7 @@ static inline int pthr_atfork(void (*prepare)(void), void (*parent)(void), void (*child)(void)) { if (pthreads_available()) - return pthread_atfork(prepare, parent, child); -- + return __register_atfork(prepare, parent, child, __dso_handle); + return ENOSYS; } - -- 2.7.4 diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/syslog-ng/files/fix-config-libnet.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/syslog-ng/files/fix-config-libnet.patch index 553f4a51..4ad0afa9 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/syslog-ng/files/fix-config-libnet.patch +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/syslog-ng/files/fix-config-libnet.patch @@ -6,25 +6,28 @@ This would avoid a implicit auto-detecting result. Signed-off-by: Ming Liu Signed-off-by: Jackie Huang + +Update for 3.24.1. +Signed-off-by: Zheng Ruoqin --- - configure.ac | 27 +++++++++++++++++---------- - 1 files changed, 17 insertions(+), 10 deletions(-) + configure.ac | 28 ++++++++++++++++------------ + 1 file changed, 16 insertions(+), 12 deletions(-) -Index: syslog-ng-3.8.1/configure.ac -=================================================================== ---- syslog-ng-3.8.1.orig/configure.ac -+++ syslog-ng-3.8.1/configure.ac -@@ -104,6 +104,9 @@ AC_CONFIG_HEADERS(config.h) +diff --git a/configure.ac b/configure.ac +index 00eb566..e7d5ac1 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -143,6 +143,9 @@ AC_CONFIG_HEADERS(config.h) dnl *************************************************************************** dnl Arguments -+AC_ARG_ENABLE(libnet, ++AC_ARG_ENABLE(libnet, + [ --enable-libnet Enable libnet support.],, enable_libnet="no") + AC_ARG_WITH(libnet, [ --with-libnet=path use path to libnet-config script], , -@@ -893,22 +896,26 @@ dnl ************************************ +@@ -1047,19 +1050,20 @@ dnl *************************************************************************** dnl libnet headers/libraries dnl *************************************************************************** AC_MSG_CHECKING(for LIBNET) @@ -39,7 +42,14 @@ Index: syslog-ng-3.8.1/configure.ac + else + LIBNET_CONFIG="$with_libnet/libnet-config" + fi -+ + +-if test -n "$LIBNET_CONFIG" -a -x "$LIBNET_CONFIG"; then +- LIBNET_CFLAGS="`$LIBNET_CONFIG --defines`" +- LIBNET_LIBS="`$LIBNET_CONFIG --libs`" +- AC_MSG_RESULT(yes) +-dnl libnet-config does not provide the _DEFAULT_SOURCE define, that can cause warning during build +-dnl as upstream libnet-config does uses _DEFAULT_SOURCE this is just a fix till +- LIBNET_CFLAGS="$LIBNET_CFLAGS -D_DEFAULT_SOURCE" + if test -n "$LIBNET_CONFIG" -a -x "$LIBNET_CONFIG"; then + LIBNET_CFLAGS="`$LIBNET_CONFIG --defines`" + LIBNET_LIBS="`$LIBNET_CONFIG --libs`" @@ -48,16 +58,8 @@ Index: syslog-ng-3.8.1/configure.ac + AC_MSG_ERROR([Could not find libnet, and libnet support was explicitly enabled.]) + fi --if test -n "$LIBNET_CONFIG" -a -x "$LIBNET_CONFIG"; then -- LIBNET_CFLAGS="`$LIBNET_CONFIG --defines`" -- LIBNET_LIBS="`$LIBNET_CONFIG --libs`" -- AC_MSG_RESULT(yes) else LIBNET_LIBS= - AC_MSG_RESULT(no) - fi - -- - if test "x$enable_spoof_source" = "xauto"; then - AC_MSG_CHECKING(whether to enable spoof source support) - if test "x$LIBNET_LIBS" != "x"; then +-- +2.7.4 + diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/syslog-ng/files/syslog-ng-tmp.conf b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/syslog-ng/files/syslog-ng-tmp.conf new file mode 100644 index 00000000..32a79532 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/syslog-ng/files/syslog-ng-tmp.conf @@ -0,0 +1 @@ +d /var/run/syslog-ng 0755 root root diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/syslog-ng/files/syslog-ng.conf.systemd b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/syslog-ng/files/syslog-ng.conf.systemd index 9e910caa..965abf72 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/syslog-ng/files/syslog-ng.conf.systemd +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/syslog-ng/files/syslog-ng.conf.systemd @@ -1,11 +1,16 @@ -@version: 3.15 +@version: 3.19 # # Syslog-ng configuration file, compatible with default Debian syslogd # installation. Originally written by anonymous (I can't find his name) # Revised, and rewrited by me (SZALAY Attila ) +# +# Move to 3.19 +# Only change is to add dns_cache(no) to options to suppress initialization warning. +# +# Joe Slater # First, set some global options. -options { chain_hostnames(off); flush_lines(0); use_dns(no); use_fqdn(no); +options { chain_hostnames(off); flush_lines(0); use_dns(no); dns_cache(no); use_fqdn(no); owner("root"); group("adm"); perm(0640); stats_freq(0); bad_hostname("^gconfd$"); }; diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/syslog-ng/files/syslog-ng.conf.sysvinit b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/syslog-ng/files/syslog-ng.conf.sysvinit index fb183ee1..2b39b8c1 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/syslog-ng/files/syslog-ng.conf.sysvinit +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/syslog-ng/files/syslog-ng.conf.sysvinit @@ -1,11 +1,16 @@ -@version: 3.15 +@version: 3.19 # # Syslog-ng configuration file, compatible with default Debian syslogd # installation. Originally written by anonymous (I can't find his name) # Revised, and rewrited by me (SZALAY Attila ) +# +# Move to 3.19 +# Only change is to add dns_cache(no) to options to suppress initialization warning. +# +# Joe Slater # First, set some global options. -options { chain_hostnames(off); flush_lines(0); use_dns(no); use_fqdn(no); +options { chain_hostnames(off); flush_lines(0); use_dns(no); dns_cache(no); use_fqdn(no); owner("root"); group("adm"); perm(0640); stats_freq(0); bad_hostname("^gconfd$"); }; diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/syslog-ng/files/syslog-ng.service-the-syslog-ng-service.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/syslog-ng/files/syslog-ng.service-the-syslog-ng-service.patch index 39c3f59c..0e1d0949 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/syslog-ng/files/syslog-ng.service-the-syslog-ng-service.patch +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/syslog-ng/files/syslog-ng.service-the-syslog-ng-service.patch @@ -1,16 +1,17 @@ -From 0be9c08dd3f825e92fa02d4a08d8aff743109e61 Mon Sep 17 00:00:00 2001 -From: Li xin -Date: Wed, 17 Jun 2015 14:46:30 +0900 -Subject: [PATCH] syslog-ng.service: the syslog-ng service can not start +Subject: [PATCH] syslog-ng.service: the syslog-ng service can not start successfully,so modify it. Upstream-Status: pending Signed-off-by: Li Xin Updated-by: Andrej Valek + +Update for 3.24.1 +Signed-off-by: Zheng Ruoqin --- - contrib/systemd/syslog-ng.service | 5 ++--- - 1 file changed, 2 insertion(+), 3 deletions(-) + contrib/systemd/syslog-ng@.service | 4 ++-- + contrib/systemd/syslog-ng@default | 6 +++--- + 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/contrib/systemd/syslog-ng@.service b/contrib/systemd/syslog-ng@.service index a28640e..93aec94 100644 @@ -28,19 +29,18 @@ index a28640e..93aec94 100644 StandardError=journal Restart=on-failure diff --git a/contrib/systemd/syslog-ng@default b/contrib/systemd/syslog-ng@default -index 02da288..3a8215d 100644 +index 0ccc2b9..7f08c0e 100644 --- a/contrib/systemd/syslog-ng@default +++ b/contrib/systemd/syslog-ng@default @@ -1,5 +1,5 @@ --CONFIG_FILE=/etc/syslog-ng.conf + CONFIG_FILE=/etc/syslog-ng/syslog-ng.conf -PERSIST_FILE=/var/lib/syslog-ng/syslog-ng.persist --CONTROL_FILE=/var/lib/syslog-ng/syslog-ng.ctl +-CONTROL_FILE=/var/run/syslog-ng.ctl -PID_FILE=/var/run/syslog-ng.pid -+CONFIG_FILE=/etc/syslog-ng/syslog-ng.conf +PERSIST_FILE=@LOCALSTATEDIR@/lib/syslog-ng/syslog-ng.persist +CONTROL_FILE=@LOCALSTATEDIR@/lib/syslog-ng/syslog-ng.ctl +PID_FILE=@LOCALSTATEDIR@/run/syslog-ng.pid OTHER_OPTIONS="--enable-core" - -- -1.8.4.2 +2.7.4 + diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/syslog-ng/syslog-ng.inc b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/syslog-ng/syslog-ng.inc index c183f05e..8e536895 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/syslog-ng/syslog-ng.inc +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/syslog-ng/syslog-ng.inc @@ -15,6 +15,8 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=24c0c5cb2c83d9f2ab725481e4df5240" # util-linux added to get libuuid DEPENDS = "libpcre flex glib-2.0 openssl util-linux" +# We expect the recipe to add anything specific for that version to these defaults. +# SRC_URI = "https://github.com/balabit/syslog-ng/releases/download/${BP}/${BP}.tar.gz \ file://syslog-ng.conf.systemd \ file://syslog-ng.conf.sysvinit \ @@ -25,7 +27,7 @@ SRC_URI = "https://github.com/balabit/syslog-ng/releases/download/${BP}/${BP}.ta UPSTREAM_CHECK_URI = "https://github.com/balabit/syslog-ng/releases" -inherit autotools gettext systemd pkgconfig update-rc.d +inherit autotools gettext systemd pkgconfig update-rc.d multilib_header EXTRA_OECONF = " \ --enable-dynamic-linking \ @@ -74,8 +76,12 @@ do_install_append() { install -d ${D}/${sysconfdir}/${BPN} install -d ${D}/${sysconfdir}/init.d install -m 755 ${WORKDIR}/initscript ${D}/${sysconfdir}/init.d/syslog + install -d ${D}/${sysconfdir}/default/volatiles/ install -m 755 ${WORKDIR}/volatiles.03_syslog-ng ${D}/${sysconfdir}/default/volatiles/03_syslog-ng + install -d ${D}/${sysconfdir}/tmpfiles.d/ + install -m 755 ${WORKDIR}/syslog-ng-tmp.conf ${D}/${sysconfdir}/tmpfiles.d/syslog-ng.conf + install -d ${D}/${localstatedir}/lib/${BPN} # Remove /var/run as it is created on startup rm -rf ${D}${localstatedir}/run @@ -97,6 +103,8 @@ do_install_append() { else install ${WORKDIR}/syslog-ng.conf.sysvinit ${D}${sysconfdir}/${BPN}/${BPN}.conf fi + + oe_multilib_header syslog-ng/syslog-ng-config.h } FILES_${PN} += "${datadir}/include/scl/ ${datadir}/xsd ${datadir}/tools ${systemd_unitdir}/system/multi-user.target.wants/*" @@ -117,6 +125,7 @@ RPROVIDES_${PN}-dbg += "${PN}-libs-dbg" FILES_${PN}-libs = "${libdir}/${BPN}/*.so ${libdir}/libsyslog-ng-*.so*" FILES_${PN}-libs-dev = "${libdir}/${BPN}/lib*.la" FILES_${PN}-staticdev += "${libdir}/${BPN}/libtest/*.a" +FILES_${PN} += "${systemd_unitdir}/system/*.service" INSANE_SKIP_${PN}-libs = "dev-so" RDEPENDS_${PN} += "${PN}-libs" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/syslog-ng/syslog-ng_3.19.1.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/syslog-ng/syslog-ng_3.19.1.bb deleted file mode 100644 index 4eecf6b6..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/syslog-ng/syslog-ng_3.19.1.bb +++ /dev/null @@ -1,16 +0,0 @@ -require syslog-ng.inc - -SRC_URI = "https://github.com/balabit/syslog-ng/releases/download/${BP}/${BP}.tar.gz \ - file://syslog-ng.conf.systemd \ - file://syslog-ng.conf.sysvinit \ - file://initscript \ - file://volatiles.03_syslog-ng \ - file://configure.ac-add-option-enable-thread-tls-to-manage-.patch \ - file://fix-config-libnet.patch \ - file://fix-invalid-ownership.patch \ - file://syslog-ng.service-the-syslog-ng-service.patch \ - file://0001-syslog-ng-fix-segment-fault-during-service-start.patch \ - " - -SRC_URI[md5sum] = "aa79bc13d9fd925aa5fb9516e87aacd3" -SRC_URI[sha256sum] = "5cf931a9d7bead0e6d9a2c65eee8f6005a005878f59aa280f3c4294257ed5178" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/syslog-ng/syslog-ng_3.24.1.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/syslog-ng/syslog-ng_3.24.1.bb new file mode 100644 index 00000000..01ed7676 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/syslog-ng/syslog-ng_3.24.1.bb @@ -0,0 +1,14 @@ +require syslog-ng.inc + +# We only want to add stuff we need to the defaults provided in syslog-ng.inc. +# +SRC_URI += " \ + file://fix-config-libnet.patch \ + file://fix-invalid-ownership.patch \ + file://syslog-ng.service-the-syslog-ng-service.patch \ + file://0001-syslog-ng-fix-segment-fault-during-service-start.patch \ + file://syslog-ng-tmp.conf \ + " + +SRC_URI[md5sum] = "ef9de066793f7358af7312b964ac0450" +SRC_URI[sha256sum] = "d4d0a0357b452be96b69d6f741129275530d8f0451e35adc408ad5635059fa3d" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/thin-provisioning-tools/files/0001-fix-compile-failed-with-libc-musl.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/thin-provisioning-tools/files/0001-fix-compile-failed-with-libc-musl.patch deleted file mode 100644 index 28b44da5..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/thin-provisioning-tools/files/0001-fix-compile-failed-with-libc-musl.patch +++ /dev/null @@ -1,42 +0,0 @@ -From fcbcf9c494cca166106ae4cb03c1dd135ee4f25c Mon Sep 17 00:00:00 2001 -From: Hongxu Jia -Date: Wed, 1 Aug 2018 09:34:00 +0800 -Subject: [PATCH] fix compile failed with libc musl - -There is a failure while compiling with libc musl: -[snip] -|./block-cache/io_engine.h:18:17: error: expected -unqualified-id before numeric constant -| unsigned const PAGE_SIZE = 4096; -[snip] - -The musl defeines macro PAGE_SIZE, undef it conditionally -could fix the issue. - -http://musl.openwall.narkive.com/tO8vrHdP/why-musl-define-page-size - -Upstream-Status: Submitted [git://github.com/jthornber/thin-provisioning-tools] - -Signed-off-by: Hongxu Jia ---- - block-cache/io_engine.h | 4 ++++ - 1 file changed, 4 insertions(+) - -diff --git a/block-cache/io_engine.h b/block-cache/io_engine.h -index 1704251..e36b932 100644 ---- a/block-cache/io_engine.h -+++ b/block-cache/io_engine.h -@@ -12,6 +12,10 @@ - - //---------------------------------------------------------------- - -+// Musl defines -+#ifdef PAGE_SIZE -+#undef PAGE_SIZE -+#endif - namespace bcache { - using sector_t = uint64_t; - --- -2.7.4 - diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/thin-provisioning-tools/files/use-sh-on-path.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/thin-provisioning-tools/files/use-sh-on-path.patch index 8cb16dec..de934c19 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/thin-provisioning-tools/files/use-sh-on-path.patch +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/thin-provisioning-tools/files/use-sh-on-path.patch @@ -1,5 +1,7 @@ - -thin-provisioning-tools: use sh on path when invoking txt2man +From 38397b42e2c3450c2aee20e6fb92f362db4e35ef Mon Sep 17 00:00:00 2001 +From: Hongxu Jia +Date: Tue, 2 Jul 2019 13:20:39 +0800 +Subject: [PATCH] thin-provisioning-tools: use sh on path when invoking txt2man txt2man contains a test which might try to use ksh to run the script, so we avoid running /bin/sh. @@ -8,14 +10,25 @@ Upstream-Status: Inappropriate [oe specific] Signed-off-by: joe.slater +Rebase to 0.8.5 +Signed-off-by: Hongxu Jia +--- + Makefile.in | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/Makefile.in b/Makefile.in +index 7c867b2..5303994 100644 --- a/Makefile.in +++ b/Makefile.in -@@ -210,7 +210,7 @@ endif - +@@ -223,7 +223,7 @@ endif %.8: %.txt bin/txt2man @echo " [txt2man] $<" + @mkdir -p $(dir $@) - $(V) bin/txt2man -p -t $(basename $(notdir $<)) $< > $@ + $(V) sh bin/txt2man -p -t $(basename $(notdir $<)) $< > $@ #---------------------------------------------------------------- +-- +2.7.4 + diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/thin-provisioning-tools/thin-provisioning-tools_0.7.6.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/thin-provisioning-tools/thin-provisioning-tools_0.7.6.bb deleted file mode 100644 index 5f6ba9e3..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/thin-provisioning-tools/thin-provisioning-tools_0.7.6.bb +++ /dev/null @@ -1,22 +0,0 @@ -SUMMARY = "Tools of dm-thin device-mapper" -DESCRIPTION = "A suite of tools for manipulating the metadata of the dm-thin device-mapper target." -HOMEPAGE = "https://github.com/jthornber/thin-provisioning-tools" -LICENSE = "GPLv3" -SECTION = "devel" - -LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504" -S = "${WORKDIR}/git" - -SRC_URI = "git://github.com/jthornber/thin-provisioning-tools \ - file://0001-do-not-strip-pdata_tools-at-do_install.patch \ - file://0001-fix-compile-failed-with-libc-musl.patch \ - file://use-sh-on-path.patch \ -" - -SRCREV = "6f936992b8e6208a7838fcf1ec87c5bd3a694a77" - -UPSTREAM_CHECK_GITTAGREGEX = "v(?P\d+(\.\d+)+)" - -DEPENDS += "expat libaio boost" - -inherit autotools-brokensep diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/thin-provisioning-tools/thin-provisioning-tools_0.8.5.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/thin-provisioning-tools/thin-provisioning-tools_0.8.5.bb new file mode 100644 index 00000000..9f89bac2 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/thin-provisioning-tools/thin-provisioning-tools_0.8.5.bb @@ -0,0 +1,21 @@ +SUMMARY = "Tools of dm-thin device-mapper" +DESCRIPTION = "A suite of tools for manipulating the metadata of the dm-thin device-mapper target." +HOMEPAGE = "https://github.com/jthornber/thin-provisioning-tools" +LICENSE = "GPLv3" +SECTION = "devel" + +LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504" +S = "${WORKDIR}/git" + +SRC_URI = "git://github.com/jthornber/thin-provisioning-tools \ + file://0001-do-not-strip-pdata_tools-at-do_install.patch \ + file://use-sh-on-path.patch \ +" + +SRCREV = "5e5409f48b5403d2c6dffd9919b35ad77d6fb7b4" + +UPSTREAM_CHECK_GITTAGREGEX = "v(?P\d+(\.\d+)+)" + +DEPENDS += "expat libaio boost" + +inherit autotools-brokensep diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/toscoterm/toscoterm_git.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/toscoterm/toscoterm_git.bb index 879b67b7..aba485e1 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/toscoterm/toscoterm_git.bb +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/toscoterm/toscoterm_git.bb @@ -11,7 +11,7 @@ SRC_URI = "git://github.com/OSSystems/toscoterm.git" S = "${WORKDIR}/git" -inherit distro_features_check gitpkgv pkgconfig +inherit features_check gitpkgv pkgconfig REQUIRED_DISTRO_FEATURES = "x11" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/tree/tree_1.7.0.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/tree/tree_1.7.0.bb deleted file mode 100644 index 2e8ebdb4..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/tree/tree_1.7.0.bb +++ /dev/null @@ -1,21 +0,0 @@ -SUMMARY = "A recursive directory listing command" -HOMEPAGE = "http://mama.indstate.edu/users/ice/tree/" -SECTION = "console/utils" -LICENSE = "GPLv2" -LIC_FILES_CHKSUM = "file://LICENSE;md5=393a5ca445f6965873eca0259a17f833" - -SRC_URI = "ftp://mama.indstate.edu/linux/${BPN}/${BP}.tgz" -SRC_URI[md5sum] = "abe3e03e469c542d8e157cdd93f4d8a6" -SRC_URI[sha256sum] = "6957c20e82561ac4231638996e74f4cfa4e6faabc5a2f511f0b4e3940e8f7b12" - -# tree's default CFLAGS for Linux -CFLAGS += "-Wall -DLINUX -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64" - -EXTRA_OEMAKE = "CC='${CC}' CFLAGS='${CFLAGS}' LDFLAGS='${LDFLAGS}'" - -do_configure[noexec] = "1" - -do_install() { - install -d ${D}${bindir} - install -m 0755 ${S}/${BPN} ${D}${bindir}/ -} diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/tree/tree_1.8.0.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/tree/tree_1.8.0.bb new file mode 100644 index 00000000..01b1ac38 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/tree/tree_1.8.0.bb @@ -0,0 +1,21 @@ +SUMMARY = "A recursive directory listing command" +HOMEPAGE = "http://mama.indstate.edu/users/ice/tree/" +SECTION = "console/utils" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://LICENSE;md5=393a5ca445f6965873eca0259a17f833" + +SRC_URI = "http://mama.indstate.edu/users/ice/tree/src/${BP}.tgz" +SRC_URI[md5sum] = "715191c7f369be377fc7cc8ce0ccd835" +SRC_URI[sha256sum] = "715d5d4b434321ce74706d0dd067505bb60c5ea83b5f0b3655dae40aa6f9b7c2" + +# tree's default CFLAGS for Linux +CFLAGS += "-Wall -DLINUX -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64" + +EXTRA_OEMAKE = "CC='${CC}' CFLAGS='${CFLAGS}' LDFLAGS='${LDFLAGS}'" + +do_configure[noexec] = "1" + +do_install() { + install -d ${D}${bindir} + install -m 0755 ${S}/${BPN} ${D}${bindir}/ +} diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/udisks/udisks/0001-Make-udev-rules-directory-configurable.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/udisks/udisks/0001-Make-udev-rules-directory-configurable.patch deleted file mode 100644 index 2823c54f..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/udisks/udisks/0001-Make-udev-rules-directory-configurable.patch +++ /dev/null @@ -1,89 +0,0 @@ -From a6eab413f274376cf703a608e2866118291a6185 Mon Sep 17 00:00:00 2001 -From: Amarnath Valluri -Date: Thu, 9 Feb 2017 11:02:53 +0200 -Subject: [PATCH] Make udev rules directory configurable. - -udev rules directory can be configurable via undevrulesdir variable. And use -libdir, sbindir for installing librares and binaries. - -Upstream-Status: Inappropriate[Embedded specific] - -Signed-off-by: Amarnath Valluri - ---- - configure.ac | 14 +++----------- - data/Makefile.am | 1 - - src/probers/Makefile.am | 2 +- - tools/Makefile.am | 2 +- - 4 files changed, 5 insertions(+), 14 deletions(-) - -diff --git a/configure.ac b/configure.ac -index 8c4e4c2..a143397 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -227,15 +227,8 @@ if test "x$GCC" = "xyes"; then - LDFLAGS="-Wl,--as-needed $LDFLAGS" - fi - --if test "$prefix" = "/usr" -o "$prefix" = "/usr/local" ; then -- slashlibdir=/lib -- slashsbindir=/sbin --else -- slashlibdir=$prefix/lib -- slashsbindir=$prefix/sbin --fi --AC_SUBST(slashlibdir) --AC_SUBST(slashsbindir) -+udevrulesdir=/lib/udev/udev.d -+AC_SUBST(udevrulesdir) - - # ************* - # Remote Access -@@ -299,8 +292,7 @@ echo " - sysconfdir: ${sysconfdir} - localstatedir: ${localstatedir} - docdir: ${docdir} -- slashlibdir: ${slashlibdir} -- slashsbindir: ${slashsbindir} -+ udevrulesdir: ${udevrulesdir} - systemdsystemunitdir: ${systemdsystemunitdir} - - compiler: ${CC} -diff --git a/data/Makefile.am b/data/Makefile.am -index 08af5f4..9329186 100644 ---- a/data/Makefile.am -+++ b/data/Makefile.am -@@ -34,7 +34,6 @@ $(systemdservice_DATA): $(systemdservice_in_files) Makefile - @sed -e "s|\@libexecdir\@|$(libexecdir)|" $< > $@ - endif - --udevrulesdir = $(slashlibdir)/udev/rules.d - udevrules_DATA = 80-udisks.rules - - pkgconfigdir = $(datadir)/pkgconfig -diff --git a/src/probers/Makefile.am b/src/probers/Makefile.am -index 01c693b..6a0361a 100644 ---- a/src/probers/Makefile.am -+++ b/src/probers/Makefile.am -@@ -20,7 +20,7 @@ INCLUDES = \ - # TODO: ideally move most of this to udev and/or util-linux - # - --udevhelperdir = $(slashlibdir)/udev -+udevhelperdir = $(libdir)/udev - udevhelper_PROGRAMS = udisks-part-id \ - udisks-probe-sas-expander \ - $(NULL) -diff --git a/tools/Makefile.am b/tools/Makefile.am -index 18325f7..0aaec11 100644 ---- a/tools/Makefile.am -+++ b/tools/Makefile.am -@@ -54,7 +54,7 @@ udisks_LDADD = \ - $(DBUS_GLIB_LIBS) \ - $(POLKIT_DBUS_LIBS) - --slashsbin_PROGRAMS = umount.udisks -+sbin_PROGRAMS = umount.udisks - - umount_udisks_SOURCES = umount-udisks.c - umount_udisks_LDADD = $(DBUS_GLIB_LIBS) $(POLKIT_DBUS_LIBS) diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/udisks/udisks/0001-fix-build-with-newer-glibc-versions.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/udisks/udisks/0001-fix-build-with-newer-glibc-versions.patch deleted file mode 100644 index 8b4f4412..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/udisks/udisks/0001-fix-build-with-newer-glibc-versions.patch +++ /dev/null @@ -1,27 +0,0 @@ -From 054ad6a06cfac7c3d172d53cd901204079a53ec3 Mon Sep 17 00:00:00 2001 -From: Alexandre Rostovtsev -Date: Fri, 29 May 2015 21:09:39 -0400 -Subject: [PATCH] fix build with newer glibc versions - -https://bugs.freedesktop.org/show_bug.cgi?id=90778 - -Upstream-Status: Applied [1] - -[1] http://cgit.freedesktop.org/udisks/commit/?h=udisks1&id=9829152b12a8924d2e091a00133ed1a3a7ba75c0 - ---- - src/helpers/job-drive-detach.c | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/src/helpers/job-drive-detach.c b/src/helpers/job-drive-detach.c -index eeafcab..d122a1f 100644 ---- a/src/helpers/job-drive-detach.c -+++ b/src/helpers/job-drive-detach.c -@@ -18,6 +18,7 @@ - * - */ - -+#include - #include - #include - #include diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/udisks/udisks/0001-include-sys-sysmacros.h.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/udisks/udisks/0001-include-sys-sysmacros.h.patch deleted file mode 100644 index f140793c..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/udisks/udisks/0001-include-sys-sysmacros.h.patch +++ /dev/null @@ -1,77 +0,0 @@ -From 64f051963d6cdeebd19f9e7f0a7e584a1f7acc60 Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Sat, 11 Aug 2018 19:12:57 -0700 -Subject: [PATCH] include sys/sysmacros.h - -fixes build with glibc 2.28+ - -Upstream-Status: Pending -Signed-off-by: Khem Raj ---- - src/daemon.c | 1 + - src/device.c | 1 + - src/mount-monitor.c | 1 + - tools/udisks.c | 1 + - tools/umount-udisks.c | 1 + - 5 files changed, 5 insertions(+) - -diff --git a/src/daemon.c b/src/daemon.c -index 14e952f..2c61cfb 100644 ---- a/src/daemon.c -+++ b/src/daemon.c -@@ -39,6 +39,7 @@ - #include - #include - #include -+#include - #include - #include - #include -diff --git a/src/device.c b/src/device.c -index d73f9d6..5911d78 100644 ---- a/src/device.c -+++ b/src/device.c -@@ -29,6 +29,7 @@ - #include - #include - #include -+#include - #include - #include - #include -diff --git a/src/mount-monitor.c b/src/mount-monitor.c -index 573a69c..ccf3365 100644 ---- a/src/mount-monitor.c -+++ b/src/mount-monitor.c -@@ -28,6 +28,7 @@ - #include - #include - #include -+#include - #include - #include - -diff --git a/tools/udisks.c b/tools/udisks.c -index d30159b..f24a30a 100644 ---- a/tools/udisks.c -+++ b/tools/udisks.c -@@ -29,6 +29,7 @@ - #include - #include - #include -+#include - #include - #include - #include -diff --git a/tools/umount-udisks.c b/tools/umount-udisks.c -index 2813fe0..5cf6b4d 100644 ---- a/tools/umount-udisks.c -+++ b/tools/umount-udisks.c -@@ -29,6 +29,7 @@ - #include - #include - #include -+#include - #include - #include - #include diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/udisks/udisks/0001-tools-Install-bash_completion-script-in-etc-bash_com.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/udisks/udisks/0001-tools-Install-bash_completion-script-in-etc-bash_com.patch deleted file mode 100644 index 16dc4406..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/udisks/udisks/0001-tools-Install-bash_completion-script-in-etc-bash_com.patch +++ /dev/null @@ -1,33 +0,0 @@ -From 7863a72c723035529d6fd8d626d7fbf9a765f162 Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Thu, 23 May 2019 21:49:57 -0700 -Subject: [PATCH] tools: Install bash_completion script in - /etc/bash_completion.d - -In OE this is one of common locations to install bash_completion files -and its covered for packaging automatically when bash_completion class -is inherited - -Upstream-Status: Inappropriate [OE-Specific] - -Signed-off-by: Khem Raj ---- - tools/Makefile.am | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/tools/Makefile.am b/tools/Makefile.am -index 0aaec11..839c961 100644 ---- a/tools/Makefile.am -+++ b/tools/Makefile.am -@@ -72,7 +72,7 @@ udisks_tcp_bridge_LDADD = $(DBUS_GLIB_LIBS) - - CLEANFILES = $(BUILT_SOURCES) - --profiledir = $(sysconfdir)/profile.d -+profiledir = $(sysconfdir)/bash_completion.d - profile_SCRIPTS = udisks-bash-completion.sh - - EXTRA_DIST = $(profile_SCRIPTS) --- -2.21.0 - diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/udisks/udisks/0001-udisks-helper-Use-sh-interpreter-instead-of-bash.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/udisks/udisks/0001-udisks-helper-Use-sh-interpreter-instead-of-bash.patch deleted file mode 100644 index ef7f6f9c..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/udisks/udisks/0001-udisks-helper-Use-sh-interpreter-instead-of-bash.patch +++ /dev/null @@ -1,38 +0,0 @@ -From 44953e5501e92c87611be45221338004e8032a74 Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Thu, 23 May 2019 22:00:14 -0700 -Subject: [PATCH] udisks-helper: Use sh interpreter instead of bash - -These scripts do not require bash, since they do not use any bash -specific extentions - -Upstream-Status: Pending -Signed-off-by: Khem Raj ---- - src/helpers/udisks-helper-change-luks-password | 2 +- - src/helpers/udisks-helper-mdadm-expand | 2 +- - 2 files changed, 2 insertions(+), 2 deletions(-) - -diff --git a/src/helpers/udisks-helper-change-luks-password b/src/helpers/udisks-helper-change-luks-password -index edcf6c9..c71fc72 100755 ---- a/src/helpers/udisks-helper-change-luks-password -+++ b/src/helpers/udisks-helper-change-luks-password -@@ -1,4 +1,4 @@ --#!/bin/bash -+#!/usr/bin/env sh - set -e - - DEVICE=$1 -diff --git a/src/helpers/udisks-helper-mdadm-expand b/src/helpers/udisks-helper-mdadm-expand -index 8b4e23d..921f96a 100755 ---- a/src/helpers/udisks-helper-mdadm-expand -+++ b/src/helpers/udisks-helper-mdadm-expand -@@ -1,4 +1,4 @@ --#!/bin/bash -+#!/usr/bin/env sh - - set -e - --- -2.21.0 - diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/udisks/udisks/optional-depends.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/udisks/udisks/optional-depends.patch deleted file mode 100644 index a890954f..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/udisks/udisks/optional-depends.patch +++ /dev/null @@ -1,498 +0,0 @@ -From e8b3fbfa3d6a11eee25db2dc0f31f439aaf0b65a Mon Sep 17 00:00:00 2001 -From: Gustavo Sverzut Barbieri -Date: Thu, 26 May 2011 17:30:04 -0300 -Subject: [PATCH] Allow disabling atasmart, lvm2 and devicemapper support. - -https://bugs.freedesktop.org/show_bug.cgi?id=37647 - ---- - configure.ac | 53 +++++++++++++++++++++++++++++++++++++++---------- - src/adapter-private.h | 1 - - src/adapter.c | 1 - - src/daemon.c | 4 ++++ - src/device-private.c | 2 +- - src/device-private.h | 5 ++--- - src/device.c | 23 +++++++++++++++++---- - src/expander-private.h | 1 - - src/expander.c | 1 - - src/helpers/Makefile.am | 20 +++++++++++++------ - src/helpers/partutil.c | 3 ++- - src/port-private.h | 1 - - src/probers/Makefile.am | 8 ++++++-- - tools/udisks.c | 10 ++++++++-- - 14 files changed, 99 insertions(+), 34 deletions(-) - -diff --git a/configure.ac b/configure.ac -index 9454423..8c4e4c2 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -155,13 +155,33 @@ PKG_CHECK_MODULES(POLKIT_GOBJECT_1, [polkit-gobject-1 >= 0.97]) - AC_SUBST(POLKIT_GOBJECT_1_CFLAGS) - AC_SUBST(POLKIT_GOBJECT_1_LIBS) - --PKG_CHECK_MODULES(LIBPARTED, [libparted >= 1.8.8]) --AC_SUBST(LIBPARTED_CFLAGS) --AC_SUBST(LIBPARTED_LIBS) -- --PKG_CHECK_MODULES(DEVMAPPER, [devmapper >= 1.02]) --AC_SUBST(DEVMAPPER_CFLAGS) --AC_SUBST(DEVMAPPER_LIBS) -+have_parted=no -+AC_ARG_ENABLE(parted, AS_HELP_STRING([--disable-parted], [disable disk partitioning])) -+if test "x$enable_parted" != "xno"; then -+ PKG_CHECK_MODULES(LIBPARTED, [libparted >= 1.8.8], -+ [AC_DEFINE(USE_PARTED, 1, [Define if parted should be used]) have_parted=yes], -+ have_parted=no) -+ AC_SUBST(LIBPARTED_CFLAGS) -+ AC_SUBST(LIBPARTED_LIBS) -+ if test "x$have_parted" = xno -a "x$enable_parted" = xyes; then -+ AC_MSG_ERROR([parted support requested but libraries not found]) -+ fi -+fi -+AM_CONDITIONAL(HAVE_PARTED, [test "$have_parted" = "yes"]) -+ -+have_devmapper=no -+AC_ARG_ENABLE(devmapper, AS_HELP_STRING([--disable-devmapper], [disable device mapper support])) -+if test "x$enable_devmapper" != "xno"; then -+ PKG_CHECK_MODULES(DEVMAPPER, [devmapper >= 1.02], -+ [AC_DEFINE(HAVE_DEVMAPPER, 1, [Define if device mapper is available]) have_devmapper=yes], -+ have_devmapper=no) -+ AC_SUBST(DEVMAPPER_CFLAGS) -+ AC_SUBST(DEVMAPPER_LIBS) -+ if test "x$have_devmapper" = xno -a "x$enable_devmapper" = xyes; then -+ AC_MSG_ERROR([devmapper support requested but libraries not found]) -+ fi -+fi -+AM_CONDITIONAL(HAVE_DEVMAPPER, [test "$have_devmapper" = "yes"]) - - have_lvm2=no - AC_ARG_ENABLE(lvm2, AS_HELP_STRING([--enable-lvm2], [enable LVM2 support])) -@@ -185,9 +205,19 @@ if test "x$enable_dmmp" = "xyes"; then - fi - AM_CONDITIONAL(HAVE_DMMP, [test "$have_dmmp" = "yes"]) - --PKG_CHECK_MODULES(LIBATASMART, [libatasmart >= 0.14]) --AC_SUBST(LIBATASMART_CFLAGS) --AC_SUBST(LIBATASMART_LIBS) -+have_libatasmart=no -+AC_ARG_ENABLE(libatasmart, AS_HELP_STRING([--disable-libatasmart], [disable libatasmart support])) -+if test "x$enable_libatasmart" != "xno"; then -+ PKG_CHECK_MODULES(LIBATASMART, [libatasmart >= 0.14], -+ [AC_DEFINE(HAVE_LIBATASMART, 1, [Define if libatasmart is available]) have_libatasmart=yes], -+ have_libatasmart=no) -+ AC_SUBST(LIBATASMART_CFLAGS) -+ AC_SUBST(LIBATASMART_LIBS) -+ if test "x$have_libatasmart" = xno -a "x$enable_libatasmart" = xyes; then -+ AC_MSG_ERROR([libatasmart support requested but libraries not found]) -+ fi -+fi -+AM_CONDITIONAL(HAVE_LIBATASMART, [test "$have_libatasmart" = "yes"]) - - PKG_CHECK_MODULES(LIBUDEV, [libudev >= 143]) - AC_SUBST(LIBUDEV_CFLAGS) -@@ -278,9 +308,12 @@ echo " - cppflags: ${CPPFLAGS} - xsltproc: ${XSLTPROC} - -+ Parted support: ${have_parted} -+ Device Mapper support: ${have_devmapper} - LVM2 support: ${have_lvm2} - dm-multipath: ${have_dmmp} - Remote Access: ${remote_access} -+ libatasmart support: ${have_libatasmart} - - Maintainer mode: ${USE_MAINTAINER_MODE} - Profiling: ${enable_profiling} -diff --git a/src/adapter-private.h b/src/adapter-private.h -index 3409e21..ef584e3 100644 ---- a/src/adapter-private.h -+++ b/src/adapter-private.h -@@ -23,7 +23,6 @@ - - #include - #include --#include - - #include "types.h" - -diff --git a/src/adapter.c b/src/adapter.c -index 65e05b0..45db8c8 100644 ---- a/src/adapter.c -+++ b/src/adapter.c -@@ -30,7 +30,6 @@ - #include - #include - #include --#include - - #include "daemon.h" - #include "adapter.h" -diff --git a/src/daemon.c b/src/daemon.c -index fafcf9a..14e952f 100644 ---- a/src/daemon.c -+++ b/src/daemon.c -@@ -1748,6 +1748,7 @@ mdstat_changed_event (GIOChannel *channel, - return TRUE; - } - -+#ifdef HAVE_LIBATASMART - static gboolean - refresh_ata_smart_data (Daemon *daemon) - { -@@ -1776,6 +1777,7 @@ refresh_ata_smart_data (Daemon *daemon) - - return FALSE; - } -+#endif - - static gboolean - register_disks_daemon (Daemon *daemon) -@@ -1987,12 +1989,14 @@ daemon_new (void) - mount_file_clean_stale (l); - g_list_free (l); - -+#ifdef HAVE_LIBATASMART - /* set up timer for refreshing ATA SMART data - we don't want to refresh immediately because - * when adding a device we also do this... - */ - daemon->priv->ata_smart_refresh_timer_id = g_timeout_add_seconds (ATA_SMART_REFRESH_INTERVAL_SECONDS, - (GSourceFunc) refresh_ata_smart_data, - daemon); -+#endif - - PROFILE ("daemon_new(): end"); - return daemon; -diff --git a/src/device-private.c b/src/device-private.c -index 45418ce..fb1d959 100644 ---- a/src/device-private.c -+++ b/src/device-private.c -@@ -1390,7 +1390,7 @@ device_set_drive_ata_smart_time_collected (Device *device, - - void - device_set_drive_ata_smart_status (Device *device, -- SkSmartOverall value) -+ guint value) - { - if (G_UNLIKELY (device->priv->drive_ata_smart_status != value)) - { -diff --git a/src/device-private.h b/src/device-private.h -index 32a9bd0..8c57c13 100644 ---- a/src/device-private.h -+++ b/src/device-private.h -@@ -23,7 +23,6 @@ - - #include - #include --#include - - #include "types.h" - -@@ -228,7 +227,7 @@ struct DevicePrivate - - gboolean drive_ata_smart_is_available; - guint64 drive_ata_smart_time_collected; -- SkSmartOverall drive_ata_smart_status; -+ guint drive_ata_smart_status; - void *drive_ata_smart_blob; - gsize drive_ata_smart_blob_size; - -@@ -396,7 +395,7 @@ void device_set_holders_objpath (Device *device, GStrv value); - - void device_set_drive_ata_smart_is_available (Device *device, gboolean value); - void device_set_drive_ata_smart_time_collected (Device *device, guint64 value); --void device_set_drive_ata_smart_status (Device *device, SkSmartOverall value); -+void device_set_drive_ata_smart_status (Device *device, guint value); - void device_set_drive_ata_smart_blob_steal (Device *device, gchar *blob, gsize blob_size); - - G_END_DECLS -diff --git a/src/device.c b/src/device.c -index 2ae7f38..d73f9d6 100644 ---- a/src/device.c -+++ b/src/device.c -@@ -50,7 +50,9 @@ - #include - #include - #include -+#ifdef HAVE_LIBATASMART - #include -+#endif - - #include "daemon.h" - #include "device.h" -@@ -664,10 +666,14 @@ get_property (GObject *object, - case PROP_DRIVE_ATA_SMART_STATUS: - { - const gchar *status; -- if (device->priv->drive_ata_smart_status == (SkSmartOverall) - 1) -+#ifdef HAVE_LIBATASMART -+ if (device->priv->drive_ata_smart_status == (guint) - 1) - status = ""; - else - status = sk_smart_overall_to_string (device->priv->drive_ata_smart_status); -+#else -+ status = ""; -+#endif - g_value_set_string (value, status); - } - break; -@@ -5144,6 +5150,7 @@ device_new (Daemon *daemon, - goto out; - } - -+#ifdef HAVE_LIBATASMART - /* if just added, update the smart data if applicable */ - if (device->priv->drive_ata_smart_is_available) - { -@@ -5151,6 +5158,7 @@ device_new (Daemon *daemon, - gchar *ata_smart_refresh_data_options[] = { NULL }; - device_drive_ata_smart_refresh_data (device, ata_smart_refresh_data_options, NULL); - } -+#endif - - PROFILE ("device_new(native_path=%s): end", native_path); - out: -@@ -9840,16 +9848,18 @@ drive_ata_smart_refresh_data_completed_cb (DBusGMethodInvocation *context, - const char *stdout, - gpointer user_data) - { -+#ifdef HAVE_LIBATASMART - gint rc; -- SkDisk *d; -+ SkDisk *d = NULL; -+ SkSmartOverall overall; - gchar *blob; - gsize blob_size; - time_t time_collected; -- SkSmartOverall overall; -+#endif - - PROFILE ("drive_ata_smart_refresh_data_completed_cb(device=%s) start", device->priv->native_path); - -- d = NULL; -+#ifdef HAVE_LIBATASMART - blob = NULL; - - if (job_was_cancelled || stdout == NULL) -@@ -9953,6 +9963,11 @@ drive_ata_smart_refresh_data_completed_cb (DBusGMethodInvocation *context, - g_free (blob); - if (d != NULL) - sk_disk_free (d); -+ -+#else -+ throw_error (context, ERROR_FAILED, "libatasmart support disabled"); -+#endif -+ - PROFILE ("drive_ata_smart_refresh_data_completed_cb(device=%s) end", device->priv->native_path); - } - -diff --git a/src/expander-private.h b/src/expander-private.h -index ef4f440..98a8300 100644 ---- a/src/expander-private.h -+++ b/src/expander-private.h -@@ -23,7 +23,6 @@ - - #include - #include --#include - - #include "types.h" - -diff --git a/src/expander.c b/src/expander.c -index 734ec0a..e799f13 100644 ---- a/src/expander.c -+++ b/src/expander.c -@@ -34,7 +34,6 @@ - #include - #include - #include --#include - #include - - #include "daemon.h" -diff --git a/src/helpers/Makefile.am b/src/helpers/Makefile.am -index 4b863c0..d3ec4e9 100644 ---- a/src/helpers/Makefile.am -+++ b/src/helpers/Makefile.am -@@ -19,15 +19,9 @@ INCLUDES = \ - - libexec_PROGRAMS = \ - udisks-helper-mkfs \ -- udisks-helper-delete-partition \ -- udisks-helper-create-partition \ -- udisks-helper-modify-partition \ -- udisks-helper-create-partition-table \ - udisks-helper-change-filesystem-label \ - udisks-helper-linux-md-remove-component \ - udisks-helper-fstab-mounter \ -- udisks-helper-ata-smart-collect \ -- udisks-helper-ata-smart-selftest \ - udisks-helper-drive-detach \ - udisks-helper-drive-poll \ - udisks-helper-linux-md-check \ -@@ -48,6 +42,13 @@ udisks_helper_mkfs_SOURCES = job-shared.h job-mkfs.c - udisks_helper_mkfs_CPPFLAGS = $(AM_CPPFLAGS) - udisks_helper_mkfs_LDADD = $(GLIB_LIBS) - -+if HAVE_PARTED -+libexec_PROGRAMS += \ -+ udisks-helper-delete-partition \ -+ udisks-helper-create-partition \ -+ udisks-helper-modify-partition \ -+ udisks-helper-create-partition-table -+ - udisks_helper_delete_partition_SOURCES = job-shared.h job-delete-partition.c - udisks_helper_delete_partition_CPPFLAGS = $(AM_CPPFLAGS) - udisks_helper_delete_partition_LDADD = $(GLIB_LIBS) libpartutil.la -@@ -63,11 +64,17 @@ udisks_helper_modify_partition_LDADD = $(GLIB_LIBS) libpartutil.la - udisks_helper_create_partition_table_SOURCES = job-shared.h job-create-partition-table.c - udisks_helper_create_partition_table_CPPFLAGS = $(AM_CPPFLAGS) - udisks_helper_create_partition_table_LDADD = $(GLIB_LIBS) libpartutil.la -+endif - - udisks_helper_change_filesystem_label_SOURCES = job-shared.h job-change-filesystem-label.c - udisks_helper_change_filesystem_label_CPPFLAGS = $(AM_CPPFLAGS) - udisks_helper_change_filesystem_label_LDADD = $(GLIB_LIBS) - -+if HAVE_LIBATASMART -+libexec_PROGRAMS += \ -+ udisks-helper-ata-smart-collect \ -+ udisks-helper-ata-smart-selftest -+ - udisks_helper_ata_smart_selftest_SOURCES = job-shared.h job-ata-smart-selftest.c - udisks_helper_ata_smart_selftest_CPPFLAGS = $(AM_CPPFLAGS) $(LIBATASMART_CFLAGS) $(GLIB_CFLAGS) - udisks_helper_ata_smart_selftest_LDADD = $(LIBATASMART_LIBS) $(GLIB_LIBS) -@@ -75,6 +82,7 @@ udisks_helper_ata_smart_selftest_LDADD = $(LIBATASMART_LIBS) $(GLIB_LIBS) - udisks_helper_ata_smart_collect_SOURCES = job-ata-smart-collect.c - udisks_helper_ata_smart_collect_CPPFLAGS = $(AM_CPPFLAGS) $(LIBATASMART_CFLAGS) $(GLIB_CFLAGS) - udisks_helper_ata_smart_collect_LDADD = $(LIBATASMART_LIBS) $(GLIB_LIBS) -+endif - - udisks_helper_linux_md_remove_component_SOURCES = job-shared.h job-linux-md-remove-component.c - udisks_helper_linux_md_remove_component_CPPFLAGS = $(AM_CPPFLAGS) -diff --git a/src/helpers/partutil.c b/src/helpers/partutil.c -index 72a8fe3..8893a39 100644 ---- a/src/helpers/partutil.c -+++ b/src/helpers/partutil.c -@@ -62,7 +62,6 @@ DEBUG (const gchar *format, - # include - #endif - --#define USE_PARTED - #ifdef USE_PARTED - #include - #endif -@@ -928,6 +927,7 @@ part_table_parse_apple (int fd, - return p; - } - -+#ifdef USE_PARTED - static PartitionTable * - part_table_load_from_disk_from_file (char *device_file) - { -@@ -948,6 +948,7 @@ part_table_load_from_disk_from_file (char *device_file) - out: - return ret; - } -+#endif - - PartitionTable * - part_table_load_from_disk (int fd) -diff --git a/src/port-private.h b/src/port-private.h -index cc48376..a91532f 100644 ---- a/src/port-private.h -+++ b/src/port-private.h -@@ -23,7 +23,6 @@ - - #include - #include --#include - - #include "types.h" - -diff --git a/src/probers/Makefile.am b/src/probers/Makefile.am -index 06bb566..01c693b 100644 ---- a/src/probers/Makefile.am -+++ b/src/probers/Makefile.am -@@ -22,8 +22,6 @@ INCLUDES = \ - - udevhelperdir = $(slashlibdir)/udev - udevhelper_PROGRAMS = udisks-part-id \ -- udisks-dm-export \ -- udisks-probe-ata-smart \ - udisks-probe-sas-expander \ - $(NULL) - -@@ -35,17 +33,23 @@ udisks_part_id_SOURCES = part-id.c - udisks_part_id_CPPFLAGS = $(AM_CPPFLAGS) $(LIBUDEV_CFLAGS) - udisks_part_id_LDADD = $(GLIB_LIBS) $(LIBUDEV_LIBS) $(top_builddir)/src/helpers/libpartutil.la - -+if HAVE_DEVMAPPER -+udevhelper_PROGRAMS += udisks-dm-export - udisks_dm_export_SOURCES = udisks-dm-export.c - udisks_dm_export_CPPFLAGS = $(AM_CPPFLAGS) $(DEVMAPPER_CFLAGS) $(GLIB_CFLAGS) - udisks_dm_export_LDADD = $(DEVMAPPER_LIBS) $(GLIB_LIBS) -+endif - - udisks_lvm_pv_export_SOURCES = udisks-lvm-pv-export.c - udisks_lvm_pv_export_CPPFLAGS = $(AM_CPPFLAGS) $(DEVMAPPER_CFLAGS) $(LVM2_CFLAGS) $(GLIB_CFLAGS) - udisks_lvm_pv_export_LDADD = $(DEVMAPPER_LIBS) $(LVM2_LIBS) $(GLIB_LIBS) - -+if HAVE_LIBATASMART -+udevhelper_PROGRAMS += udisks-probe-ata-smart - udisks_probe_ata_smart_SOURCES = udisks-probe-ata-smart.c - udisks_probe_ata_smart_CPPFLAGS = $(AM_CPPFLAGS) $(LIBATASMART_CFLAGS) - udisks_probe_ata_smart_LDADD = $(LIBATASMART_LIBS) -+endif - - udisks_probe_sas_expander_SOURCES = udisks-probe-sas-expander.c - udisks_probe_sas_expander_CPPFLAGS = $(AM_CPPFLAGS) $(GLIB_CFLAGS) -diff --git a/tools/udisks.c b/tools/udisks.c -index 97e80d7..d30159b 100644 ---- a/tools/udisks.c -+++ b/tools/udisks.c -@@ -43,7 +43,9 @@ - #include - #include - -+#ifdef HAVE_LIBATASMART - #include -+#endif - - #include "udisks-daemon-glue.h" - #include "udisks-device-glue.h" -@@ -983,6 +985,7 @@ end_highlight (void) - g_print ("\x1B[0m"); - } - -+#ifdef HAVE_LIBATASMART - static const gchar * - ata_smart_status_to_desc (const gchar *status, - gboolean *out_highlight) -@@ -1163,6 +1166,7 @@ print_ata_smart_attr (SkDisk *d, - g_free (threshold_str); - g_free (pretty); - } -+#endif - - static void - do_show_info (const char *object_path) -@@ -1445,7 +1449,7 @@ do_show_info (const char *object_path) - g_print (" if speed: %" G_GINT64_FORMAT " bits/s\n", props->drive_connection_speed); - - /* ------------------------------------------------------------------------------------------------- */ -- -+#ifdef HAVE_LIBATASMART - if (!props->drive_ata_smart_is_available) - { - g_print (" ATA SMART: not available\n"); -@@ -1498,7 +1502,9 @@ do_show_info (const char *object_path) - } - - } -- -+#else -+ g_print (" ATA SMART: not supported\n"); -+#endif - /* ------------------------------------------------------------------------------------------------- */ - - } diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/udisks/udisks/udisks-1.0.5-fix-service-file.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/udisks/udisks/udisks-1.0.5-fix-service-file.patch deleted file mode 100644 index d4efa93d..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/udisks/udisks/udisks-1.0.5-fix-service-file.patch +++ /dev/null @@ -1,32 +0,0 @@ -From a4f6aa5be37ae6e2194c9ded2ea8c1da330f5694 Mon Sep 17 00:00:00 2001 -From: David King -Date: Thu, 2 Jul 2015 13:49:22 +0100 -Subject: [PATCH] Fix systemd service file - -udisks-daemon is installed to $(libexecdir), not $(prefix)/lib/udisks. - -https://bugzilla.redhat.com/show_bug.cgi?id=1238664 -https://bugs.freedesktop.org/show_bug.cgi?id=91191 - -Taken-From: [1] -[1] http://pkgs.fedoraproject.org/cgit/udisks.git/tree/udisks-1.0.5-fix-service-file.patch - -Upstream-Status: Pending - ---- - data/Makefile.am | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/data/Makefile.am b/data/Makefile.am -index 411ea0f..08af5f4 100644 ---- a/data/Makefile.am -+++ b/data/Makefile.am -@@ -31,7 +31,7 @@ systemdservicedir = $(systemdsystemunitdir) - systemdservice_DATA = $(systemdservice_in_files:.service.in=.service) - - $(systemdservice_DATA): $(systemdservice_in_files) Makefile -- @sed -e "s|\@libexecdir\@|$(prefix)/lib/udisks|" $< > $@ -+ @sed -e "s|\@libexecdir\@|$(libexecdir)|" $< > $@ - endif - - udevrulesdir = $(slashlibdir)/udev/rules.d diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/udisks/udisks2/non-gnu-libc.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/udisks/udisks2/non-gnu-libc.patch deleted file mode 100644 index 98e6c75f..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/udisks/udisks2/non-gnu-libc.patch +++ /dev/null @@ -1,26 +0,0 @@ -musl does not define __GNUC_PREREQ therefore check for C library being glibc -if not then define the macro - -Upstream-Status: Pending -Signed-off-by: Khem Raj -Index: udisks-2.1.7/udisks/udisksclient.c -=================================================================== ---- udisks-2.1.7.orig/udisks/udisksclient.c -+++ udisks-2.1.7/udisks/udisksclient.c -@@ -27,8 +27,15 @@ - #include "udisksobjectinfo.h" - - /* For __GNUC_PREREQ usage below */ --#ifdef __GNUC__ -+#ifdef __GLIBC__ - # include -+#else -+#if defined(__GNUC__) -+#define __GNUC_PREREQ(__maj, __min) \ -+ (__GNUC__ > (__maj) || __GNUC__ == (__maj) && __GNUC_MINOR__ >= (__min)) -+#else -+#define __GNUC_PREREQ(__maj, __min) 0 -+#endif - #endif - - /** diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/udisks/udisks2_git.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/udisks/udisks2_git.bb index 9c9e5e52..ecaf01e7 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/udisks/udisks2_git.bb +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/udisks/udisks2_git.bb @@ -18,15 +18,14 @@ RDEPENDS_${PN} = "acl" SRC_URI = " \ git://github.com/storaged-project/udisks.git;branch=master \ - file://non-gnu-libc.patch \ " -PV = "2.8.2" -SRCREV = "7a787aa3b340fc7f1ca72d748635d6c5445edc58" +PV = "2.8.4+git${SRCREV}" +SRCREV = "db5f487345da2eaa87976450ea51c2c465d9b82e" S = "${WORKDIR}/git" CVE_PRODUCT = "udisks" -inherit autotools systemd gtk-doc gobject-introspection gettext distro_features_check +inherit autotools systemd gtk-doc gobject-introspection gettext features_check REQUIRED_DISTRO_FEATURES = "polkit" @@ -50,6 +49,7 @@ FILES_${PN} += " \ PACKAGES =+ "${PN}-libs" FILES_${PN}-libs = "${libdir}/lib*${SOLIBS}" +FILES_${PN} += "${nonarch_libdir}/tmpfiles.d" SYSTEMD_SERVICE_${PN} = "${BPN}.service" SYSTEMD_AUTO_ENABLE = "disable" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/udisks/udisks_1.0.5.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/udisks/udisks_1.0.5.bb deleted file mode 100644 index 0918fedd..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/udisks/udisks_1.0.5.bb +++ /dev/null @@ -1,51 +0,0 @@ -DESCRIPTION = "A storage daemon that implements well-defined D-Bus interfaces that can be used to query and manipulate storage devices." -LICENSE = "GPLv2+" -LIC_FILES_CHKSUM = "file://COPYING;md5=73d83aebe7e4b62346afde80e0e94273" - -DEPENDS = "libatasmart sg3-utils polkit libgudev dbus-glib glib-2.0 intltool-native \ - dbus-glib-native \ -" -# optional dependencies: device-mapper parted - -DEPENDS += "${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)} \ - dbus-glib-native \ -" - -SRC_URI = "http://hal.freedesktop.org/releases/${BPN}-${PV}.tar.gz;name=${BPN} \ - file://optional-depends.patch \ - file://0001-fix-build-with-newer-glibc-versions.patch \ - file://udisks-1.0.5-fix-service-file.patch \ - file://0001-Make-udev-rules-directory-configurable.patch \ - file://0001-include-sys-sysmacros.h.patch \ - file://0001-tools-Install-bash_completion-script-in-etc-bash_com.patch \ - file://0001-udisks-helper-Use-sh-interpreter-instead-of-bash.patch \ - " - -SRC_URI[udisks.md5sum] = "70d48dcfe523a74cd7c7fbbc2847fcdd" -SRC_URI[udisks.sha256sum] = "f2ec82eb0ea7e01dc299b5b29b3c18cdf861236ec43dcff66b3552b4b31c6f71" - -inherit autotools-brokensep systemd gtk-doc distro_features_check bash-completion - -REQUIRED_DISTRO_FEATURES = "polkit" - - -PACKAGECONFIG ??= "libdevmapper" -PACKAGECONFIG[libdevmapper] = "--enable-devmapper,--disable-devmapper,libdevmapper" -PACKAGECONFIG[parted] = "--enable-parted,--disable-parted,parted" - -EXTRA_OECONF = "--disable-man-pages --libdir=${base_libdir} --sbindir=${base_sbindir}" -EXTRA_OEMAKE = "udevrulesdir=${nonarch_base_libdir}/udev/rules.d/" - -FILES_${PN} += "${libdir}/polkit-1/extensions/*.so \ - ${datadir}/dbus-1/ \ - ${datadir}/polkit-1 \ - ${nonarch_base_libdir}/udev/* \ -" - -FILES_${PN}-dbg += "${nonarch_base_libdir}/udev/.debug" - -RPROVIDES_${PN} += "${PN}-systemd" -RREPLACES_${PN} += "${PN}-systemd" -RCONFLICTS_${PN} += "${PN}-systemd" -SYSTEMD_SERVICE_${PN} = "udisks.service" -SYSTEMD_AUTO_ENABLE = "disable" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/uhubctl/uhubctl_2.0.0.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/uhubctl/uhubctl_2.0.0.bb deleted file mode 100644 index 6306ddb5..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/uhubctl/uhubctl_2.0.0.bb +++ /dev/null @@ -1,21 +0,0 @@ -SUMMARY = "USB hub per-port power control" -HOMEPAGE = "https://github.com/mvp/uhubctl" -BUGTRACKER = "https://github.com/mvp/uhubctl/issues" -DEPENDS = "libusb1" - -LICENSE = "GPLv2" -LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263" - -SRC_URI = "https://github.com/mvp/${PN}/archive/v${PV}.tar.gz" -SRC_URI[md5sum] = "5c711911d766d76813333c3812277574" -SRC_URI[sha256sum] = "4c31278b2c03e5be5a696c3088bc86cf2557a70e00f697799c163aba18e3c40e" - -# uhubctl gets its program version from "git describe". As we use the source -# archive do reduce download size replace the call with our hardcoded version. -do_configure_append() { - sed -i "s/^\(GIT_VERSION :=\).*$/\1 ${PV}/g" ${S}/Makefile -} - -do_install () { - oe_runmake install DESTDIR=${D} -} diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/uhubctl/uhubctl_2.1.0.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/uhubctl/uhubctl_2.1.0.bb new file mode 100644 index 00000000..b294d77b --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/uhubctl/uhubctl_2.1.0.bb @@ -0,0 +1,21 @@ +SUMMARY = "USB hub per-port power control" +HOMEPAGE = "https://github.com/mvp/uhubctl" +BUGTRACKER = "https://github.com/mvp/uhubctl/issues" +DEPENDS = "libusb1" + +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263" + +SRCREV = "c9fa3c68a1b2c9790c731602b8bae2b513e80605" +SRC_URI = "git://github.com/mvp/${BPN}" +S = "${WORKDIR}/git" + +# uhubctl gets its program version from "git describe". As we use the source +# archive do reduce download size replace the call with our hardcoded version. +do_configure_append() { + sed -i "s/^\(GIT_VERSION :=\).*$/\1 ${PV}/g" ${S}/Makefile +} + +do_install () { + oe_runmake install DESTDIR=${D} +} diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/uim/uim/0001-Add-support-for-aarch64.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/uim/uim/0001-Add-support-for-aarch64.patch deleted file mode 100644 index 391b0e68..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/uim/uim/0001-Add-support-for-aarch64.patch +++ /dev/null @@ -1,80 +0,0 @@ -From 82f44f53b9a9766c2ec816f237506beb953eb332 Mon Sep 17 00:00:00 2001 -From: Andreas Schwab -Date: Wed, 29 Oct 2014 14:18:28 +0100 -Subject: [PATCH] Add support for aarch64 - -* include/private/gcconfig.h: Add support for aarch64. - ---- - sigscheme/libgcroots/include/private/gcconfig.h | 37 +++++++++++++++++++++++++ - 1 file changed, 37 insertions(+) - -diff --git a/sigscheme/libgcroots/include/private/gcconfig.h b/sigscheme/libgcroots/include/private/gcconfig.h -index 4d42b03..0f13db6 100644 ---- a/sigscheme/libgcroots/include/private/gcconfig.h -+++ b/sigscheme/libgcroots/include/private/gcconfig.h -@@ -62,6 +62,13 @@ - # endif - - /* Determine the machine type: */ -+# if defined(__aarch64__) -+# define AARCH64 -+# if !defined(LINUX) -+# define NOSYS -+# define mach_type_known -+# endif -+# endif - # if defined(__arm__) || defined(__thumb__) - # define ARM32 - # if !defined(LINUX) && !defined(NETBSD) -@@ -231,6 +238,10 @@ - # define IA64 - # define mach_type_known - # endif -+# if defined(LINUX) && defined(__aarch64__) -+# define AARCH64 -+# define mach_type_known -+# endif - # if defined(LINUX) && defined(__arm__) - # define ARM32 - # define mach_type_known -@@ -504,6 +515,7 @@ - /* running Amdahl UTS4 */ - /* S390 ==> 390-like machine */ - /* running LINUX */ -+ /* AARCH64 ==> ARM AArch64 */ - /* ARM32 ==> Intel StrongARM */ - /* IA64 ==> Intel IPF */ - /* (e.g. Itanium) */ -@@ -1724,6 +1736,31 @@ - # endif - # endif - -+# ifdef AARCH64 -+# define CPP_WORDSZ 64 -+# define MACH_TYPE "AARCH64" -+# define ALIGNMENT 8 -+# ifndef HBLKSIZE -+# define HBLKSIZE 4096 -+# endif -+# ifdef LINUX -+# define OS_TYPE "LINUX" -+# define LINUX_STACKBOTTOM -+# define DYNAMIC_LOADING -+ extern int __data_start[]; -+# define DATASTART ((ptr_t)__data_start) -+ extern char _end[]; -+# define DATAEND ((ptr_t)(&_end)) -+# endif -+# ifdef NOSYS -+ /* __data_start is usually defined in the target linker script. */ -+ extern int __data_start[]; -+# define DATASTART ((ptr_t)__data_start) -+ extern void *__stack_base__; -+# define STACKBOTTOM ((ptr_t)__stack_base__) -+# endif -+# endif -+ - # ifdef ARM32 - # define CPP_WORDSZ 32 - # define MACH_TYPE "ARM32" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/uim/uim/0001-Fix-to-set-libedit-path-from-configure-option-proper.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/uim/uim/0001-Fix-to-set-libedit-path-from-configure-option-proper.patch new file mode 100644 index 00000000..34a1ea0f --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/uim/uim/0001-Fix-to-set-libedit-path-from-configure-option-proper.patch @@ -0,0 +1,29 @@ +From f828a89cc1e956d56498422ec158d284fc97de3f Mon Sep 17 00:00:00 2001 +From: OBATA Akio +Date: Fri, 10 Aug 2018 18:38:18 +0900 +Subject: [PATCH] Fix to set libedit path from configure option properly + +Upstream-Status: Backport [https://github.com/uim/uim/pull/134] +Signed-off-by: Khem Raj + +--- + configure.ac | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/configure.ac b/configure.ac +index 00d1b02..9c0a5ec 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -1311,8 +1311,8 @@ if test "x$with_libedit" != xno; then + if test "x$with_libedit" = xyes; then + libedit_path=/usr + else +- with_libedit=yes + libedit_path="$with_libedit" ++ with_libedit=yes + fi + + saved_CPPFLAGS=$CPPFLAGS +-- +2.23.0 + diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/uim/uim/0001-fix-bug-for-cross-compile.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/uim/uim/0001-fix-bug-for-cross-compile.patch deleted file mode 100644 index 0c8f02d6..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/uim/uim/0001-fix-bug-for-cross-compile.patch +++ /dev/null @@ -1,26 +0,0 @@ -From 08b5e51224ed95b1e76e99873b5f9f59840b0a74 Mon Sep 17 00:00:00 2001 -From: Lei Maohui -Date: Fri, 21 Aug 2015 15:58:42 +0900 -Subject: [PATCH] fix bug for cross compile - -Signed-off-by: Lei Maohui - ---- - configure.ac | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/configure.ac b/configure.ac -index 9be879c..9249bfd 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -1208,8 +1208,8 @@ AC_HELP_STRING([--with-libedit[=DIR], Enable libedit support - if test "x$use_libedit" != "xno"; then - saved_CPPFLAGS=$CPPFLAGS - saved_LDFLAGS=$LDFLAGS -- CPPFLAGS="${CPPFLAGS} -I$libedit_path/include" -- LDFLAGS="${LDFLAGS} -L$libedit_path/lib" -+ CPPFLAGS="${CPPFLAGS} " -+ LDFLAGS="${LDFLAGS} " - AC_CHECK_LIB(curses, tgetent, LIBEDIT_LIBS="-lcurses", - [AC_CHECK_LIB(ncurses, tgetent, LIBEDIT_LIBS="-lncurses", - AC_MSG_WARN("libedit needs libcurses or libncurses. disabled...") diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/uim/uim/uim-module-manager.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/uim/uim/uim-module-manager.patch index 3078af05..0fafc853 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/uim/uim/uim-module-manager.patch +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/uim/uim/uim-module-manager.patch @@ -6,11 +6,9 @@ Date: Fri, 26 Jun 2015 12:57:48 +0900 scm/Makefile.am | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) -diff --git a/scm/Makefile.am b/scm/Makefile.am -index 14d9393..e8a1083 100644 --- a/scm/Makefile.am +++ b/scm/Makefile.am -@@ -119,7 +119,7 @@ if EXPAT +@@ -115,7 +115,7 @@ if EXPAT module_names += "yahoo-jp" endif diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/uim/uim_1.8.6.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/uim/uim_1.8.6.bb deleted file mode 100644 index 1c58d40b..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/uim/uim_1.8.6.bb +++ /dev/null @@ -1,144 +0,0 @@ -DESCRIPTION = "A multilingual user input method library" -HOMEPAGE = "http://uim.freedesktop.org/" -LICENSE = "BSD-3-Clause & LGPLv2+" -LIC_FILES_CHKSUM = "file://COPYING;md5=32463fd29aa303fb2360faeeae17256b" -SECTION = "inputmethods" - -SRC_URI = "https://github.com/uim/uim/releases/download/uim-${PV}/uim-${PV}.tar.bz2" - -SRC_URI_append_class-target = " file://uim-module-manager.patch \ - file://0001-fix-bug-for-cross-compile.patch \ - file://0001-Add-support-for-aarch64.patch \ -" -SRC_URI[md5sum] = "ecea4c597bab1fd4ba98ea84edcece59" -SRC_URI[sha256sum] = "7b1ea803c73f3478917166f04f67cce6e45ad7ea5ab6df99b948c17eb1cb235f" - -DEPENDS = "anthy fontconfig libxft libxt glib-2.0 ncurses intltool" -DEPENDS_append_class-target = " intltool-native gtk+ gtk+3 uim-native takao-fonts" - -RDEPENDS_uim = "libuim0 libedit" -RDEPENDS_uim-anthy = "takao-fonts anthy libanthy0" -RDEPENDS_uim-anthy_append_libc-glibc = " glibc-utils glibc-gconv-euc-jp" - -LEAD_SONAME = "libuim.so.1" - -inherit distro_features_check autotools pkgconfig gettext qemu gtk-immodules-cache - -REQUIRED_DISTRO_FEATURES = "x11" - -GTKIMMODULES_PACKAGES = "uim-gtk2.0 uim-gtk3" - -EXTRA_OECONF += "--disable-emacs \ - --without-scim \ - --without-m17nlib \ - --without-prime \ - --without-canna \ - --without-mana \ - --without-eb \ -" - -CONFIGUREOPTS_remove_class-target = "--disable-silent-rules" - -#Because m4 file's find maxdepth=2, so copy the m4 files of the deep depth. -do_configure_prepend () { - cp ${S}/sigscheme/m4/* ${S}/m4/ -} - -do_install_append() { - rm -rf ${D}/${datadir}/applications -} - -PACKAGES =+ "uim-xim uim-utils uim-skk uim-gtk2.0 uim-gtk3 uim-fep uim-anthy uim-common libuim0 libuim-dev" - -FILES_${PN} = "${bindir}/uim-help \ - ${libdir}/uim/plugin/libuim-* \ - ${libdir}/libuim-scm* \ - ${libdir}/libgcroots* \ - ${libdir}/uim/plugin/libuim-* \ -" - -FILES_libuim0 = "${libdir}/uim/plugin/libuim-custom-enabler.* \ - ${libdir}/libuim-custom.so.* \ - ${datadir}/locale/ja/LC_MESSAGES/uim.mo \ - ${datadir}/locale/fr/LC_MESSAGES/uim.mo \ - ${datadir}/locale/ko/LC_MESSAGES/uim.mo \ - ${libdir}/libuim.so.* \ -" -FILES_libuim-dev = "${libdir}/libuim*.a \ - ${libdir}/libuim*.la \ - ${libdir}/libuim*.so \ - ${includedir}/uim \ - ${libdir}/pkgconfig/uim.pc \ -" -FILES_uim-anthy = "${libdir}/uim/plugin/libuim-anthy.* \ - ${datadir}/uim/anthy*.scm \ -" -FILES_${PN}-dbg += "${libdir}/*/*/*/.debug ${libdir}/*/*/.debug" -FILES_${PN}-dev += "${libdir}/uim/plugin/*.la" - -FILES_uim-utils = "${bindir}/uim-sh \ - ${bindir}/uim-module-manager \ - ${libexecdir}/uim-helper-server \ -" -FILES_uim-xim = "${bindir}/uim-xim \ - ${libexecdir}/uim-candwin-*gtk \ - ${libexecdir}/uim-candwin-*gtk3 \ - ${datadir}/man/man1/uim-xim.1 \ - ${sysconfdir}/X11/xinit/xinput.d/uim* \ -" -FILES_uim-common = "${datadir}/uim/pixmaps/*.png \ - ${datadir}/uim \ -" -FILES_uim-fep = "${bindir}/uim-fep*" - -FILES_uim-gtk2.0 = "${libdir}/gtk-2.0 \ - ${bindir}/uim-toolbar-gtk \ - ${bindir}/uim-toolbar-gtk-systray \ - ${bindir}/uim-*-gtk \ - ${bindir}/uim-input-pad-ja \ - ${libdir}/uim/uim-*-gtk \ -" -FILES_uim-gtk3 = "${libdir}/gtk-3.0 \ - ${bindir}/uim-toolbar-gtk3 \ - ${bindir}/uim-toolbar-gtk3-systray \ - ${bindir}/uim-*-gtk3 \ - ${libdir}/uim/uim-*-gtk3 \ -" -FILES_uim-skk = "${libdir}/uim/plugin/libuim-skk.* \ - ${datadir}/uim/skk*.scm \ -" - -PACKAGE_WRITE_DEPS += "qemu-native" -pkg_postinst_uim-anthy() { - if test -n "$D"; then - ${@qemu_run_binary(d, '$D', '${bindir}/uim-module-manager')} --register anthy --path $D${datadir}/uim - else - uim-module-manager --register anthy --path ${datadir}/uim - fi -} - -pkg_prerm_uim-anthy() { - if test -n "$D"; then - ${@qemu_run_binary(d, '$D', '${bindir}/uim-module-manager')} --path $D${datadir}/uim --unregister anthy - else - uim-module-manager --path ${datadir}/uim --unregister anthy - fi -} - -pkg_postinst_uim-skk() { - if test -n "$D"; then - ${@qemu_run_binary(d, '$D', '${bindir}/uim-module-manager')} --register skk --path $D${datadir}/uim - else - uim-module-manager --register skk --path ${datadir}/uim - fi -} - -pkg_postrm_uim-skk() { - if test -n "$D"; then - ${@qemu_run_binary(d, '$D', '${bindir}/uim-module-manager')} --path $D${datadir}/uim --unregister skk - else - uim-module-manager --path ${datadir}/uim --unregister skk - fi -} - -BBCLASSEXTEND = "native" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/uim/uim_1.8.8.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/uim/uim_1.8.8.bb new file mode 100644 index 00000000..c1136cd9 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/uim/uim_1.8.8.bb @@ -0,0 +1,151 @@ +DESCRIPTION = "A multilingual user input method library" +HOMEPAGE = "http://uim.freedesktop.org/" +LICENSE = "BSD-3-Clause & LGPLv2+" +LIC_FILES_CHKSUM = "file://COPYING;md5=ab2826b41ca0ff4030d38cc39791d1c8" +SECTION = "inputmethods" + +SRC_URI = "https://github.com/uim/uim/releases/download/${PV}/uim-${PV}.tar.bz2 \ + file://0001-Fix-to-set-libedit-path-from-configure-option-proper.patch \ +" +SRC_URI_append_class-target = "\ + file://uim-module-manager.patch \ +" +SRC_URI[md5sum] = "01c7bd5d0d4f3a9f6f5befe6f57a470b" +SRC_URI[sha256sum] = "34599bbcc4e5ab87832370763e38be5100984a64237555e9234a1ea225a0fadc" + +DEPENDS = "anthy fontconfig libxft libxt glib-2.0 ncurses intltool libedit" +DEPENDS_append_class-target = " intltool-native gtk+ gtk+3 uim-native takao-fonts" + +RDEPENDS_uim = "libuim0 libedit" +RDEPENDS_uim-anthy = "takao-fonts anthy libanthy0" +RDEPENDS_uim-anthy_append_libc-glibc = " glibc-utils glibc-gconv-euc-jp" + +LEAD_SONAME = "libuim.so.1" + +COMPATIBLE_HOST_riscv64 = "null" +COMPATIBLE_HOST_riscv32 = "null" + +inherit features_check autotools pkgconfig gettext qemu gtk-immodules-cache + +REQUIRED_DISTRO_FEATURES = "x11" + +GTKIMMODULES_PACKAGES = "uim-gtk2.0 uim-gtk3" + +EXTRA_OECONF += "--disable-emacs \ + --with-libedit=${STAGING_EXECPREFIXDIR} \ + --without-scim \ + --without-m17nlib \ + --without-prime \ + --without-canna \ + --without-mana \ + --without-eb \ +" + +CONFIGUREOPTS_remove_class-target = "--disable-silent-rules" + +# https://github.com/uim/uim/issues/44 +PARALLEL_MAKE = "" + +#Because m4 file's find maxdepth=2, so copy the m4 files of the deep depth. +do_configure_prepend () { + cp ${S}/sigscheme/m4/* ${S}/m4/ +} + +do_install_append() { + rm -rf ${D}/${datadir}/applications +} + +PACKAGES =+ "uim-xim uim-utils uim-skk uim-gtk2.0 uim-gtk3 uim-fep uim-anthy uim-common libuim0 libuim-dev" + +FILES_${PN} = "${bindir}/uim-help \ + ${libdir}/uim/plugin/libuim-* \ + ${libdir}/libuim-scm* \ + ${libdir}/libgcroots* \ + ${libdir}/uim/plugin/libuim-* \ +" + +FILES_libuim0 = "${libdir}/uim/plugin/libuim-custom-enabler.* \ + ${libdir}/libuim-custom.so.* \ + ${datadir}/locale/ja/LC_MESSAGES/uim.mo \ + ${datadir}/locale/fr/LC_MESSAGES/uim.mo \ + ${datadir}/locale/ko/LC_MESSAGES/uim.mo \ + ${libdir}/libuim.so.* \ +" +FILES_libuim-dev = "${libdir}/libuim*.a \ + ${libdir}/libuim*.la \ + ${libdir}/libuim*.so \ + ${includedir}/uim \ + ${libdir}/pkgconfig/uim.pc \ +" +FILES_uim-anthy = "${libdir}/uim/plugin/libuim-anthy.* \ + ${datadir}/uim/anthy*.scm \ +" +FILES_${PN}-dbg += "${libdir}/*/*/*/.debug ${libdir}/*/*/.debug" +FILES_${PN}-dev += "${libdir}/uim/plugin/*.la" + +FILES_uim-utils = "${bindir}/uim-sh \ + ${bindir}/uim-module-manager \ + ${libexecdir}/uim-helper-server \ +" +FILES_uim-xim = "${bindir}/uim-xim \ + ${libexecdir}/uim-candwin-*gtk \ + ${libexecdir}/uim-candwin-*gtk3 \ + ${datadir}/man/man1/uim-xim.1 \ + ${sysconfdir}/X11/xinit/xinput.d/uim* \ +" +FILES_uim-common = "${datadir}/uim/pixmaps/*.png \ + ${datadir}/uim \ +" +FILES_uim-fep = "${bindir}/uim-fep*" + +FILES_uim-gtk2.0 = "${libdir}/gtk-2.0 \ + ${bindir}/uim-toolbar-gtk \ + ${bindir}/uim-toolbar-gtk-systray \ + ${bindir}/uim-*-gtk \ + ${bindir}/uim-input-pad-ja \ + ${libdir}/uim/uim-*-gtk \ +" +FILES_uim-gtk3 = "${libdir}/gtk-3.0 \ + ${bindir}/uim-toolbar-gtk3 \ + ${bindir}/uim-toolbar-gtk3-systray \ + ${bindir}/uim-*-gtk3 \ + ${libdir}/uim/uim-*-gtk3 \ +" +FILES_uim-skk = "${libdir}/uim/plugin/libuim-skk.* \ + ${datadir}/uim/skk*.scm \ +" + +PACKAGE_WRITE_DEPS += "qemu-native" +pkg_postinst_uim-anthy() { + if test -n "$D"; then + ${@qemu_run_binary(d, '$D', '${bindir}/uim-module-manager')} --register anthy --path $D${datadir}/uim + else + uim-module-manager --register anthy --path ${datadir}/uim + fi +} + +pkg_prerm_uim-anthy() { + if test -n "$D"; then + ${@qemu_run_binary(d, '$D', '${bindir}/uim-module-manager')} --path $D${datadir}/uim --unregister anthy + else + uim-module-manager --path ${datadir}/uim --unregister anthy + fi +} + +pkg_postinst_uim-skk() { + if test -n "$D"; then + ${@qemu_run_binary(d, '$D', '${bindir}/uim-module-manager')} --register skk --path $D${datadir}/uim + else + uim-module-manager --register skk --path ${datadir}/uim + fi +} + +pkg_postrm_uim-skk() { + if test -n "$D"; then + ${@qemu_run_binary(d, '$D', '${bindir}/uim-module-manager')} --path $D${datadir}/uim --unregister skk + else + uim-module-manager --path ${datadir}/uim --unregister skk + fi +} + +BBCLASSEXTEND = "native" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/unicode-ucd/unicode-ucd_12.1.0.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/unicode-ucd/unicode-ucd_12.1.0.bb new file mode 100644 index 00000000..89ab565c --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/unicode-ucd/unicode-ucd_12.1.0.bb @@ -0,0 +1,25 @@ +SUMMARY = "Unicode Character Database" +HOMEPAGE = "https://unicode.org/ucd/" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://unicode.org.license.html;beginline=42;endline=85;md5=67619d0c52706853c0256514e7fd04cd" + +SRC_URI = " \ + https://www.unicode.org/Public/zipped/${PV}/UCD.zip;name=ucd;subdir=ucd \ + https://www.unicode.org/license.html;name=license;subdir=${BP};downloadfilename=unicode.org.license.html \ +" +SRC_URI[ucd.md5sum] = "430cbdac2615451571dd69a976dd08f6" +SRC_URI[ucd.sha256sum] = "25ba51a0d4c6fa41047b7a5e5733068d4a734588f055f61e85f450097834a0a6" + +SRC_URI[license.md5sum] = "f03bafb623258f85ff2032c1ce567b7c" +SRC_URI[license.sha256sum] = "983225207de8a707d0903a8d70fb7a4b28c5e0f64f2366e84a6192a2d618fed4" + +inherit allarch + +do_configure[noexec] = "1" + +do_install() { + install -d ${D}${datadir}/unicode + cp -rf ${WORKDIR}/ucd ${D}${datadir}/unicode +} + +FILES_${PN} = "${datadir}/unicode/ucd" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/unixodbc/unixodbc_2.3.7.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/unixodbc/unixodbc_2.3.7.bb index 563badf5..61378fec 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/unixodbc/unixodbc_2.3.7.bb +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/unixodbc/unixodbc_2.3.7.bb @@ -6,7 +6,7 @@ HOMEPAGE = "http://www.unixodbc.org/" LICENSE = "GPLv2" LIC_FILES_CHKSUM = "file://COPYING;md5=d7b37bf80a3df5a65b355433ae36d206" -DEPENDS = "libtool mysql5" +DEPENDS = "libtool readline" SRC_URI = "http://ftp.unixodbc.org/unixODBC-${PV}.tar.gz \ file://do-not-use-libltdl-source-directory.patch \ diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/upower/upower/0001-linux-lower-severity-of-unhandled-action-messages.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/upower/upower/0001-linux-lower-severity-of-unhandled-action-messages.patch deleted file mode 100644 index de89dc01..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/upower/upower/0001-linux-lower-severity-of-unhandled-action-messages.patch +++ /dev/null @@ -1,31 +0,0 @@ -From f64b6ce8054b47e5bdcc8c4c7965534b388e6151 Mon Sep 17 00:00:00 2001 -From: Dmitry Torokhov -Date: Fri, 6 Apr 2018 11:26:54 -0700 -Subject: [PATCH] linux: lower severity of "unhandled action" messages - -Newer kernels emit bind/unbind uevents that are not of interest to -powerd. To avoid littering logs with scary messages, let's lower their -severity to "debug". - -https://bugs.freedesktop.org/show_bug.cgi?id=106019 - -Upstream-Status: Backport ---- - src/linux/up-backend.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/src/linux/up-backend.c b/src/linux/up-backend.c -index e668dc8..b8021e7 100644 ---- a/src/linux/up-backend.c -+++ b/src/linux/up-backend.c -@@ -273,7 +273,7 @@ up_backend_uevent_signal_handler_cb (GUdevClient *client, const gchar *action, - g_debug ("SYSFS change %s", g_udev_device_get_sysfs_path (device)); - up_backend_device_changed (backend, device); - } else { -- g_warning ("unhandled action '%s' on %s", action, g_udev_device_get_sysfs_path (device)); -+ g_debug ("unhandled action '%s' on %s", action, g_udev_device_get_sysfs_path (device)); - } - } - --- -2.17.0.484.g0c8726318c-goog diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/upower/upower_0.99.11.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/upower/upower_0.99.11.bb new file mode 100644 index 00000000..64084179 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/upower/upower_0.99.11.bb @@ -0,0 +1,35 @@ +DESCRIPTION = "UPower is an abstraction for enumerating power devices, listening to device events and querying history and statistics. " +LICENSE = "GPLv2+" +LIC_FILES_CHKSUM = "file://COPYING;md5=0de8fbf1d97a140d1d93b9f14dcfbf08" + +DEPENDS = "intltool-native libusb1 libgudev glib-2.0 dbus-glib" + +SRC_URI = " \ + http://upower.freedesktop.org/releases/${BPN}-${PV}.tar.xz \ +" +SRC_URI[md5sum] = "abe6acb617f11f2e8dbd9846fcf86e24" +SRC_URI[sha256sum] = "64b5ffbfccd5bdb15d925777979a4dbee1a957f9eaeb158dc76175267eddbdef" + +inherit autotools pkgconfig gettext gobject-introspection systemd features_check + +PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)}" +PACKAGECONFIG[idevice] = "--with-idevice,--without-idevice,libimobiledevice libplist" +PACKAGECONFIG[systemd] = "--with-systemdutildir=${systemd_unitdir} --with-systemdsystemunitdir=${systemd_system_unitdir}, \ + --without-systemdutildir --without-systemdsystemunitdir,systemd" + +EXTRA_OECONF = " --with-backend=linux" + +SYSTEMD_SERVICE_${PN} = "upower.service" +# don't start on boot by default - dbus does that on demand +SYSTEMD_AUTO_ENABLE = "disable" + +do_configure_prepend() { + sed -i -e s:-nonet:\:g ${S}/doc/man/Makefile.am + sed -i -e 's: doc : :g' ${S}/Makefile.am +} + +RDEPENDS_${PN} += "dbus" +RRECOMMENDS_${PN} += "pm-utils" +FILES_${PN} += "${datadir}/dbus-1/ \ + ${base_libdir}/udev/* \ +" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/upower/upower_0.99.7.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/upower/upower_0.99.7.bb deleted file mode 100644 index 3fd91e95..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/upower/upower_0.99.7.bb +++ /dev/null @@ -1,39 +0,0 @@ -DESCRIPTION = "UPower is an abstraction for enumerating power devices, listening to device events and querying history and statistics. " -LICENSE = "GPLv2+" -LIC_FILES_CHKSUM = "file://COPYING;md5=0de8fbf1d97a140d1d93b9f14dcfbf08" - -DEPENDS = "intltool-native libusb1 libgudev glib-2.0 dbus-glib polkit" - -SRC_URI = " \ - http://upower.freedesktop.org/releases/${BPN}-${PV}.tar.xz \ - file://0001-linux-lower-severity-of-unhandled-action-messages.patch \ -" -SRC_URI[md5sum] = "236bb439d9ff1151450b3d8582399532" -SRC_URI[sha256sum] = "24bcc2f6ab25a2533bac70b587bcb019e591293076920f5b5e04bdedc140a401" - -inherit autotools pkgconfig gettext gobject-introspection systemd distro_features_check - -REQUIRED_DISTRO_FEATURES = "polkit" - -PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)}" -PACKAGECONFIG[idevice] = "--with-idevice,--without-idevice,libimobiledevice libplist" -PACKAGECONFIG[systemd] = "--with-systemdutildir=${systemd_unitdir} --with-systemdsystemunitdir=${systemd_system_unitdir}, \ - --without-systemdutildir --without-systemdsystemunitdir,systemd" - -EXTRA_OECONF = " --with-backend=linux" - -SYSTEMD_SERVICE_${PN} = "upower.service" -# don't start on boot by default - dbus does that on demand -SYSTEMD_AUTO_ENABLE = "disable" - -do_configure_prepend() { - sed -i -e s:-nonet:\:g ${S}/doc/man/Makefile.am - sed -i -e 's: doc : :g' ${S}/Makefile.am -} - -RDEPENDS_${PN} += "dbus" -RRECOMMENDS_${PN} += "pm-utils" -FILES_${PN} += "${datadir}/dbus-1/ \ - ${datadir}/polkit-1/ \ - ${base_libdir}/udev/* \ -" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/uthash/uthash_2.1.0.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/uthash/uthash_2.1.0.bb index d01a06ca..09cef44a 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/uthash/uthash_2.1.0.bb +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/uthash/uthash_2.1.0.bb @@ -41,5 +41,6 @@ do_install_ptest() { # The main package is empty and non-existent, so -dev # should not depend on it... RDEPENDS_${PN}-dev = "" +RDEPENDS_${PN}-ptest_remove = "${PN}" BBCLASSEXTEND = "native" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/utouch/utouch-evemu/0001-Fix-build-on-32bit-arches-with-64bit-time_t.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/utouch/utouch-evemu/0001-Fix-build-on-32bit-arches-with-64bit-time_t.patch new file mode 100644 index 00000000..71bf5726 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/utouch/utouch-evemu/0001-Fix-build-on-32bit-arches-with-64bit-time_t.patch @@ -0,0 +1,76 @@ +From 60987a1df8eb8c9196222375574dcd7bc0ad2daa Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Sat, 30 Nov 2019 20:23:27 -0800 +Subject: [PATCH] Fix build on 32bit arches with 64bit time_t + +time element is deprecated on new input_event structure in kernel's +input.h [1] + +[1] https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit?id=152194fe9c3f + +Upstream-Status: Pending +Signed-off-by: Khem Raj +--- + src/evemu-impl.h | 5 +++++ + src/evemu.c | 16 +++++++++------- + 2 files changed, 14 insertions(+), 7 deletions(-) + +diff --git a/src/evemu-impl.h b/src/evemu-impl.h +index acf2976..c08d861 100644 +--- a/src/evemu-impl.h ++++ b/src/evemu-impl.h +@@ -21,6 +21,11 @@ + #include + #include + ++#ifndef input_event_sec ++#define input_event_sec time.tv_sec ++#define input_event_usec time.tv_usec ++#endif ++ + #define EVPLAY_NBITS KEY_CNT + #define EVPLAY_NBYTES ((EVPLAY_NBITS + 7) / 8) + +diff --git a/src/evemu.c b/src/evemu.c +index 21187af..160c915 100644 +--- a/src/evemu.c ++++ b/src/evemu.c +@@ -363,7 +363,7 @@ int evemu_read(struct evemu_device *dev, FILE *fp) + int evemu_write_event(FILE *fp, const struct input_event *ev) + { + return fprintf(fp, "E: %lu.%06u %04x %04x %d\n", +- ev->time.tv_sec, (unsigned)ev->time.tv_usec, ++ ev->input_event_sec, (unsigned)ev->input_event_usec, + ev->type, ev->code, ev->value); + } + +@@ -391,8 +391,8 @@ int evemu_read_event(FILE *fp, struct input_event *ev) + int value; + int ret = fscanf(fp, "E: %lu.%06u %04x %04x %d\n", + &sec, &usec, &type, &code, &value); +- ev->time.tv_sec = sec; +- ev->time.tv_usec = usec; ++ ev->input_event_sec = sec; ++ ev->input_event_usec = usec; + ev->type = type; + ev->code = code; + ev->value = value; +@@ -411,12 +411,14 @@ int evemu_read_event_realtime(FILE *fp, struct input_event *ev, + + if (evtime) { + if (!evtime->tv_sec) +- *evtime = ev->time; +- usec = 1000000L * (ev->time.tv_sec - evtime->tv_sec); +- usec += ev->time.tv_usec - evtime->tv_usec; ++ evtime->tv_sec = ev->input_event_sec; ++ evtime->tv_usec = ev->input_event_usec; ++ usec = 1000000L * (ev->input_event_sec - evtime->tv_sec); ++ usec += ev->input_event_usec - evtime->tv_usec; + if (usec > 500) { + usleep(usec); +- *evtime = ev->time; ++ evtime->tv_sec = ev->input_event_sec; ++ evtime->tv_usec = ev->input_event_usec; + } + } + diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/utouch/utouch-evemu_git.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/utouch/utouch-evemu_git.bb index 1dd5a86d..41d1cbfd 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/utouch/utouch-evemu_git.bb +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/utouch/utouch-evemu_git.bb @@ -7,7 +7,9 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=f27defe1e96c2e1ecd4e0c9be8967949" inherit autotools -SRC_URI = "git://bitmath.org/git/evemu.git;protocol=http" +SRC_URI = "git://bitmath.org/git/evemu.git;protocol=http \ + file://0001-Fix-build-on-32bit-arches-with-64bit-time_t.patch \ + " SRCREV = "9752b50e922572e4cd214ac45ed95e4ee410fe24" PV = "1.0.5+git${SRCPV}" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/utouch/utouch-frame/0001-Fix-build-on-32bit-arches-with-64bit-time_t.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/utouch/utouch-frame/0001-Fix-build-on-32bit-arches-with-64bit-time_t.patch new file mode 100644 index 00000000..d405d43f --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/utouch/utouch-frame/0001-Fix-build-on-32bit-arches-with-64bit-time_t.patch @@ -0,0 +1,41 @@ +From 895b6996e232700fb2a428838feaef418cc64b70 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Sat, 30 Nov 2019 22:52:13 -0800 +Subject: [PATCH] Fix build on 32bit arches with 64bit time_t + +time element is deprecated on new input_event structure in kernel's +input.h [1] + +[1] https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit?id=152194fe9c3f + +Upstream-Status: Pending +Signed-off-by: Khem Raj +--- + src/frame-mtdev.c | 7 ++++++- + 1 file changed, 6 insertions(+), 1 deletion(-) + +diff --git a/src/frame-mtdev.c b/src/frame-mtdev.c +index c0f15d8..42ad380 100644 +--- a/src/frame-mtdev.c ++++ b/src/frame-mtdev.c +@@ -25,6 +25,11 @@ + #include + #include + ++#ifndef input_event_sec ++#define input_event_sec time.tv_sec ++#define input_event_usec time.tv_usec ++#endif ++ + static int is_pointer(const struct evemu_device *dev) + { + return evemu_has_event(dev, EV_REL, REL_X) || +@@ -200,7 +205,7 @@ static int handle_abs_event(utouch_frame_handle fh, + static utouch_frame_time_t get_evtime_ms(const struct input_event *syn) + { + static const utouch_frame_time_t ms = 1000; +- return syn->time.tv_usec / ms + syn->time.tv_sec * ms; ++ return syn->input_event_usec / ms + syn->input_event_sec * ms; + } + + const struct utouch_frame * diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/utouch/files/0001-include-sys-stat.h-for-fixing-build-issue-on-musl.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/utouch/utouch-frame/0001-include-sys-stat.h-for-fixing-build-issue-on-musl.patch similarity index 100% rename from Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/utouch/files/0001-include-sys-stat.h-for-fixing-build-issue-on-musl.patch rename to Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/utouch/utouch-frame/0001-include-sys-stat.h-for-fixing-build-issue-on-musl.patch diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/utouch/files/remove-man-page-creation.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/utouch/utouch-frame/remove-man-page-creation.patch similarity index 100% rename from Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/utouch/files/remove-man-page-creation.patch rename to Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/utouch/utouch-frame/remove-man-page-creation.patch diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/utouch/utouch-frame_git.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/utouch/utouch-frame_git.bb index 39d46af8..1ebebfa9 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/utouch/utouch-frame_git.bb +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/utouch/utouch-frame_git.bb @@ -12,6 +12,7 @@ inherit autotools pkgconfig SRC_URI = "git://bitmath.org/git/frame.git;protocol=http \ file://remove-man-page-creation.patch \ file://0001-include-sys-stat.h-for-fixing-build-issue-on-musl.patch \ + file://0001-Fix-build-on-32bit-arches-with-64bit-time_t.patch \ " SRCREV = "95363d5a1f7394d71144bf3b408ef4e6db4350fc" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/utouch/utouch-mtview_git.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/utouch/utouch-mtview_git.bb index 8cb180dc..5f07bf28 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/utouch/utouch-mtview_git.bb +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/utouch/utouch-mtview_git.bb @@ -5,7 +5,7 @@ HOMEPAGE = "http://bitmath.org/code/mtview/" LICENSE = "GPLv3" LIC_FILES_CHKSUM = "file://COPYING;md5=4c61b8950dc1aab4d2aa7c2ae6b1cfb3" -inherit autotools pkgconfig distro_features_check +inherit autotools pkgconfig features_check # depends on virtual/libx11 REQUIRED_DISTRO_FEATURES = "x11" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/vboxguestdrivers/vboxguestdrivers_5.2.22.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/vboxguestdrivers/vboxguestdrivers_5.2.22.bb deleted file mode 100644 index e394f34c..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/vboxguestdrivers/vboxguestdrivers_5.2.22.bb +++ /dev/null @@ -1,80 +0,0 @@ -SUMMARY = "VirtualBox Linux Guest Drivers" -SECTION = "core" -LICENSE = "GPL-2.0" -LIC_FILES_CHKSUM = "file://${WORKDIR}/${VBOX_NAME}/COPYING;md5=e197d5641bb35b29d46ca8c4bf7f2660" - -DEPENDS = "virtual/kernel" - -inherit module kernel-module-split - -COMPATIBLE_MACHINE = "(qemux86|qemux86-64)" - -VBOX_NAME = "VirtualBox-${PV}" - -SRC_URI = "http://download.virtualbox.org/virtualbox/${PV}/${VBOX_NAME}.tar.bz2 \ - file://Makefile.utils \ -" -SRC_URI[md5sum] = "c9c2f162ac5f99d28d8c0ca43b19ed01" -SRC_URI[sha256sum] = "5580e875349341a1aabc6d5d2f697d242f277487316faaf1fbe68d9014f788d4" - -S = "${WORKDIR}/vbox_module" - -export BUILD_TARGET_ARCH="${ARCH}" -export BUILD_TARGET_ARCH_x86-64="amd64" - -EXTRA_OEMAKE += "KERN_DIR='${WORKDIR}/${KERNEL_VERSION}/build'" - -# otherwise 5.2.22 builds just vboxguest -MAKE_TARGETS = "all" - -addtask export_sources before do_patch after do_unpack - -do_export_sources() { - mkdir -p "${S}" - ${WORKDIR}/${VBOX_NAME}/src/VBox/Additions/linux/export_modules.sh ${T}/vbox_modules.tar.gz - tar -C "${S}" -xzf ${T}/vbox_modules.tar.gz - - # add a mount utility to use shared folder from VBox Addition Source Code - mkdir -p "${S}/utils" - install ${WORKDIR}/${VBOX_NAME}/src/VBox/Additions/linux/sharedfolders/mount.vboxsf.c ${S}/utils - install ${WORKDIR}/${VBOX_NAME}/src/VBox/Additions/linux/sharedfolders/vbsfmount.c ${S}/utils - install ${S}/../Makefile.utils ${S}/utils/Makefile - -} - -do_configure_prepend() { - # vboxguestdrivers/5.2.6-r0/vbox_module/vboxguest/Makefile.include.header:99: *** The variable KERN_DIR must be a kernel build folder and end with /build without a trailing slash, or KERN_VER must be set. Stop. - # vboxguestdrivers/5.2.6-r0/vbox_module/vboxguest/Makefile.include.header:108: *** The kernel build folder path must end in /build, or the variable KERN_VER must be set. Stop. - mkdir -p ${WORKDIR}/${KERNEL_VERSION} - ln -snf ${STAGING_KERNEL_DIR} ${WORKDIR}/${KERNEL_VERSION}/build -} - -# compile and install mount utility -do_compile_append() { - oe_runmake 'LD=${CC}' 'LDFLAGS=${LDFLAGS}' -C ${S}/utils - if ! [ -e vboxguest.ko -a -e vboxsf.ko -a -e vboxvideo.ko ] ; then - echo "ERROR: One of vbox*.ko modules wasn't built" - exit 1 - fi -} - -module_do_install() { - MODULE_DIR=${D}${nonarch_base_libdir}/modules/${KERNEL_VERSION}/kernel/misc - install -d $MODULE_DIR - install -m 644 vboxguest.ko $MODULE_DIR - install -m 644 vboxsf.ko $MODULE_DIR - install -m 644 vboxvideo.ko $MODULE_DIR -} - -do_install_append() { - install -d ${D}${base_sbindir} - install -m 755 ${S}/utils/mount.vboxsf ${D}${base_sbindir} -} - -PACKAGES += "kernel-module-vboxguest kernel-module-vboxsf kernel-module-vboxvideo" -RRECOMMENDS_${PN} += "kernel-module-vboxguest kernel-module-vboxsf kernel-module-vboxvideo" - -FILES_${PN} = "${base_sbindir}" - -# autoload if installed -KERNEL_MODULE_AUTOLOAD += "vboxguest vboxsf vboxvideo" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/vboxguestdrivers/vboxguestdrivers_6.1.2.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/vboxguestdrivers/vboxguestdrivers_6.1.2.bb new file mode 100644 index 00000000..62c2b509 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/vboxguestdrivers/vboxguestdrivers_6.1.2.bb @@ -0,0 +1,81 @@ +SUMMARY = "VirtualBox Linux Guest Drivers" +SECTION = "core" +LICENSE = "GPL-2.0" +LIC_FILES_CHKSUM = "file://${WORKDIR}/${VBOX_NAME}/COPYING;md5=e197d5641bb35b29d46ca8c4bf7f2660" + +DEPENDS = "virtual/kernel" + +inherit module kernel-module-split + +COMPATIBLE_MACHINE = "(qemux86|qemux86-64)" + +VBOX_NAME = "VirtualBox-${PV}" + +SRC_URI = "http://download.virtualbox.org/virtualbox/${PV}/${VBOX_NAME}.tar.bz2 \ + file://Makefile.utils \ +" +SRC_URI[md5sum] = "f4f42fd09857556b04b803fb99cc6905" +SRC_URI[sha256sum] = "4326576e8428ea3626194fc82646347576e94c61f11d412a669fc8a10c2a1e67" + +S = "${WORKDIR}/vbox_module" + +export BUILD_TARGET_ARCH="${ARCH}" +export BUILD_TARGET_ARCH_x86-64="amd64" + +EXTRA_OEMAKE += "KERN_DIR='${WORKDIR}/${KERNEL_VERSION}/build' KBUILD_VERBOSE=1" + +# otherwise 5.2.22 builds just vboxguest +MAKE_TARGETS = "all" + +addtask export_sources after do_patch before do_configure + +do_export_sources() { + mkdir -p "${S}" + ${WORKDIR}/${VBOX_NAME}/src/VBox/Additions/linux/export_modules.sh ${T}/vbox_modules.tar.gz + tar -C "${S}" -xzf ${T}/vbox_modules.tar.gz + + # add a mount utility to use shared folder from VBox Addition Source Code + mkdir -p "${S}/utils" + install ${WORKDIR}/${VBOX_NAME}/src/VBox/Additions/linux/sharedfolders/mount.vboxsf.c ${S}/utils + install ${WORKDIR}/${VBOX_NAME}/src/VBox/Additions/linux/sharedfolders/vbsfmount.c ${S}/utils + install ${S}/../Makefile.utils ${S}/utils/Makefile + +} + +do_configure_prepend() { + # vboxguestdrivers/5.2.6-r0/vbox_module/vboxguest/Makefile.include.header:99: *** The variable KERN_DIR must be a kernel build folder and end with /build without a trailing slash, or KERN_VER must be set. Stop. + # vboxguestdrivers/5.2.6-r0/vbox_module/vboxguest/Makefile.include.header:108: *** The kernel build folder path must end in /build, or the variable KERN_VER must be set. Stop. + mkdir -p ${WORKDIR}/${KERNEL_VERSION} + ln -snf ${STAGING_KERNEL_DIR} ${WORKDIR}/${KERNEL_VERSION}/build +} + +# compile and install mount utility +do_compile() { + oe_runmake all + oe_runmake 'LD=${CC}' 'LDFLAGS=${LDFLAGS}' -C ${S}/utils + if ! [ -e vboxguest.ko -a -e vboxsf.ko -a -e vboxvideo.ko ] ; then + echo "ERROR: One of vbox*.ko modules wasn't built" + exit 1 + fi +} + +module_do_install() { + MODULE_DIR=${D}${nonarch_base_libdir}/modules/${KERNEL_VERSION}/kernel/misc + install -d $MODULE_DIR + install -m 644 vboxguest.ko $MODULE_DIR + install -m 644 vboxsf.ko $MODULE_DIR + install -m 644 vboxvideo.ko $MODULE_DIR +} + +do_install_append() { + install -d ${D}${base_sbindir} + install -m 755 ${S}/utils/mount.vboxsf ${D}${base_sbindir} +} + +PACKAGES += "kernel-module-vboxguest kernel-module-vboxsf kernel-module-vboxvideo" +RRECOMMENDS_${PN} += "kernel-module-vboxguest kernel-module-vboxsf kernel-module-vboxvideo" + +FILES_${PN} = "${base_sbindir}" + +# autoload if installed +KERNEL_MODULE_AUTOLOAD += "vboxguest vboxsf vboxvideo" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/websocketpp/websocketpp-0.8.1/0001-Correct-clang-compiler-flags.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/websocketpp/websocketpp-0.8.1/0001-Correct-clang-compiler-flags.patch new file mode 100644 index 00000000..f1d037fa --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/websocketpp/websocketpp-0.8.1/0001-Correct-clang-compiler-flags.patch @@ -0,0 +1,32 @@ +From 5ccaff351297bca0e254bbfd66e3f03fef9d9c75 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Fri, 10 Jan 2020 21:54:39 -0800 +Subject: [PATCH] Correct clang compiler flags + +Fix misplaced quotes, this was leading to spurious ; in compiler cmdline +Remove demanding libc++, clang can link with both libc++ and libstdc++ +and platforms have their own defaults, user can demand non defaults via +adding it to cmake flags + +Upstream-Status: Submitted [https://github.com/zaphoyd/websocketpp/pull/859] +Signed-off-by: Khem Raj +--- + CMakeLists.txt | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 2d13117..c17354a 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -150,7 +150,7 @@ if (BUILD_TESTS OR BUILD_EXAMPLES) + endif() + set (WEBSOCKETPP_PLATFORM_TLS_LIBS ssl crypto) + set (WEBSOCKETPP_BOOST_LIBS system thread) +- set (CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS} "-std=c++0x -stdlib=libc++") # todo: is libc++ really needed here? ++ set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++0x") + if (NOT APPLE) + add_definitions (-DNDEBUG -Wall -Wno-padded) # todo: should we use CMAKE_C_FLAGS for these? + endif () +-- +2.24.1 + diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/websocketpp/websocketpp-0.8.1/0001-Fix-issue-599.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/websocketpp/websocketpp-0.8.1/0001-Fix-issue-599.patch deleted file mode 100644 index 2a9ea74c..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/websocketpp/websocketpp-0.8.1/0001-Fix-issue-599.patch +++ /dev/null @@ -1,31 +0,0 @@ -From 1dd07113f2a7489444a8990a95be42e035f8e9df Mon Sep 17 00:00:00 2001 -From: Kurt Roeckx -Date: Tue, 1 Nov 2016 12:57:35 +0100 -Subject: [PATCH] Fix issue #599 -Forwarded: https://github.com/zaphoyd/websocketpp/pull/600 - ---- - websocketpp/transport/asio/security/tls.hpp | 4 ---- - 1 file changed, 4 deletions(-) - -diff --git a/websocketpp/transport/asio/security/tls.hpp b/websocketpp/transport/asio/security/tls.hpp -index 7b32db8..a8aafec 100644 ---- a/websocketpp/transport/asio/security/tls.hpp -+++ b/websocketpp/transport/asio/security/tls.hpp -@@ -355,13 +355,9 @@ protected: - template - lib::error_code translate_ec(ErrorCodeType ec) { - if (ec.category() == lib::asio::error::get_ssl_category()) { -- if (ERR_GET_REASON(ec.value()) == SSL_R_SHORT_READ) { -- return make_error_code(transport::error::tls_short_read); -- } else { - // We know it is a TLS related error, but otherwise don't know - // more. Pass through as TLS generic. - return make_error_code(transport::error::tls_error); -- } - } else { - // We don't know any more information about this error so pass - // through --- -2.7.4 - diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/websocketpp/websocketpp-0.8.1/0001-Replace-make_shared-with-new-in-some-cases.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/websocketpp/websocketpp-0.8.1/0001-Replace-make_shared-with-new-in-some-cases.patch new file mode 100644 index 00000000..0c8285df --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/websocketpp/websocketpp-0.8.1/0001-Replace-make_shared-with-new-in-some-cases.patch @@ -0,0 +1,78 @@ +From 080fc37949114184d4832f7acffe2613745833f3 Mon Sep 17 00:00:00 2001 +From: Stefan Floeren <42731906+stefan-floeren@users.noreply.github.com> +Date: Tue, 16 Apr 2019 08:38:01 +0200 +Subject: [PATCH 1/2] Replace make_shared with new in some cases + +Replace make_shared for asio types that take a lib::ref as a parameter. +This should fix the ASIO change (boostorg/asio@59066d8) for 1.70, +while keeping it backwards compatible to older boost versions. +--- + websocketpp/transport/asio/connection.hpp | 7 ++++--- + websocketpp/transport/asio/endpoint.hpp | 3 +-- + websocketpp/transport/asio/security/none.hpp | 3 +-- + websocketpp/transport/asio/security/tls.hpp | 3 +-- + 4 files changed, 7 insertions(+), 9 deletions(-) + +diff --git a/websocketpp/transport/asio/connection.hpp b/websocketpp/transport/asio/connection.hpp +index 60f88a7..1ccda8f 100644 +--- a/websocketpp/transport/asio/connection.hpp ++++ b/websocketpp/transport/asio/connection.hpp +@@ -311,9 +311,10 @@ public: + * needed. + */ + timer_ptr set_timer(long duration, timer_handler callback) { +- timer_ptr new_timer = lib::make_shared( +- lib::ref(*m_io_service), +- lib::asio::milliseconds(duration) ++ timer_ptr new_timer( ++ new lib::asio::steady_timer( ++ *m_io_service, ++ lib::asio::milliseconds(duration)) + ); + + if (config::enable_multithreading) { +diff --git a/websocketpp/transport/asio/endpoint.hpp b/websocketpp/transport/asio/endpoint.hpp +index ddab2c7..4b719a9 100644 +--- a/websocketpp/transport/asio/endpoint.hpp ++++ b/websocketpp/transport/asio/endpoint.hpp +@@ -195,8 +195,7 @@ public: + + m_io_service = ptr; + m_external_io_service = true; +- m_acceptor = lib::make_shared( +- lib::ref(*m_io_service)); ++ m_acceptor.reset(new lib::asio::ip::tcp::acceptor(*m_io_service)); + + m_state = READY; + ec = lib::error_code(); +diff --git a/websocketpp/transport/asio/security/none.hpp b/websocketpp/transport/asio/security/none.hpp +index 5c8293d..6c7d352 100644 +--- a/websocketpp/transport/asio/security/none.hpp ++++ b/websocketpp/transport/asio/security/none.hpp +@@ -168,8 +168,7 @@ protected: + return socket::make_error_code(socket::error::invalid_state); + } + +- m_socket = lib::make_shared( +- lib::ref(*service)); ++ m_socket.reset(new lib::asio::ip::tcp::socket(*service)); + + if (m_socket_init_handler) { + m_socket_init_handler(m_hdl, *m_socket); +diff --git a/websocketpp/transport/asio/security/tls.hpp b/websocketpp/transport/asio/security/tls.hpp +index c76fd9a..04ac379 100644 +--- a/websocketpp/transport/asio/security/tls.hpp ++++ b/websocketpp/transport/asio/security/tls.hpp +@@ -193,8 +193,7 @@ protected: + if (!m_context) { + return socket::make_error_code(socket::error::invalid_tls_context); + } +- m_socket = lib::make_shared( +- _WEBSOCKETPP_REF(*service),lib::ref(*m_context)); ++ m_socket.reset(new socket_type(*service, *m_context)); + + if (m_socket_init_handler) { + m_socket_init_handler(m_hdl, get_socket()); +-- +2.23.0 + diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/websocketpp/websocketpp-0.8.1/0001-cmake-Use-GNUInstallDirs.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/websocketpp/websocketpp-0.8.1/0001-cmake-Use-GNUInstallDirs.patch new file mode 100644 index 00000000..0ef2e123 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/websocketpp/websocketpp-0.8.1/0001-cmake-Use-GNUInstallDirs.patch @@ -0,0 +1,35 @@ +From 771d79eeb0ac5079482a4b3a131bbda744793e7d Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Thu, 19 Dec 2019 20:07:11 -0800 +Subject: [PATCH] cmake: Use GNUInstallDirs + +Helps install cmakefiles in right libdir + +Upstream-Status: Submitted [https://github.com/zaphoyd/websocketpp/pull/854] +Signed-off-by: Khem Raj +--- + CMakeLists.txt | 4 +++- + 1 file changed, 3 insertions(+), 1 deletion(-) + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 2786aba..080be3e 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -39,11 +39,13 @@ endif() + + set_property(GLOBAL PROPERTY USE_FOLDERS ON) + ++include(GNUInstallDirs) ++ + set(INSTALL_INCLUDE_DIR include CACHE PATH "Installation directory for header files") + if (WIN32 AND NOT CYGWIN) + set (DEF_INSTALL_CMAKE_DIR cmake) + else () +- set (DEF_INSTALL_CMAKE_DIR lib/cmake/websocketpp) ++ set (DEF_INSTALL_CMAKE_DIR ${CMAKE_INSTALL_LIBDIR}/cmake/websocketpp) + endif () + set (INSTALL_CMAKE_DIR ${DEF_INSTALL_CMAKE_DIR} CACHE PATH "Installation directory for CMake files") + +-- +2.24.1 + diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/websocketpp/websocketpp-0.8.1/0002-Fix-missed-entries-fix-testing.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/websocketpp/websocketpp-0.8.1/0002-Fix-missed-entries-fix-testing.patch new file mode 100644 index 00000000..962d0896 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/websocketpp/websocketpp-0.8.1/0002-Fix-missed-entries-fix-testing.patch @@ -0,0 +1,66 @@ +From 12ab603ca962e83591985a585451d33544d75d56 Mon Sep 17 00:00:00 2001 +From: Stefan Floeren <42731906+stefan-floeren@users.noreply.github.com> +Date: Wed, 17 Apr 2019 10:06:18 +0000 +Subject: [PATCH 2/2] Fix missed entries; fix testing + +--- + CMakeLists.txt | 2 +- + websocketpp/transport/asio/connection.hpp | 3 +-- + websocketpp/transport/asio/endpoint.hpp | 7 ++----- + 3 files changed, 4 insertions(+), 8 deletions(-) + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 2786aba..951de97 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -202,7 +202,7 @@ if (BUILD_TESTS OR BUILD_EXAMPLES) + endif () + + if (NOT Boost_USE_STATIC_LIBS) +- add_definitions (/DBOOST_TEST_DYN_LINK) ++ add_definitions (-DBOOST_TEST_DYN_LINK) + endif () + + set (Boost_FIND_REQUIRED TRUE) +diff --git a/websocketpp/transport/asio/connection.hpp b/websocketpp/transport/asio/connection.hpp +index 1ccda8f..57dda74 100644 +--- a/websocketpp/transport/asio/connection.hpp ++++ b/websocketpp/transport/asio/connection.hpp +@@ -462,8 +462,7 @@ protected: + m_io_service = io_service; + + if (config::enable_multithreading) { +- m_strand = lib::make_shared( +- lib::ref(*io_service)); ++ m_strand.reset(new lib::asio::io_service::strand(*io_service)); + } + + lib::error_code ec = socket_con_type::init_asio(io_service, m_strand, +diff --git a/websocketpp/transport/asio/endpoint.hpp b/websocketpp/transport/asio/endpoint.hpp +index 4b719a9..94509ad 100644 +--- a/websocketpp/transport/asio/endpoint.hpp ++++ b/websocketpp/transport/asio/endpoint.hpp +@@ -687,9 +687,7 @@ public: + * @since 0.3.0 + */ + void start_perpetual() { +- m_work = lib::make_shared( +- lib::ref(*m_io_service) +- ); ++ m_work.reset(new lib::asio::io_service::work(*m_io_service)); + } + + /// Clears the endpoint's perpetual flag, allowing it to exit when empty +@@ -853,8 +851,7 @@ protected: + + // Create a resolver + if (!m_resolver) { +- m_resolver = lib::make_shared( +- lib::ref(*m_io_service)); ++ m_resolver.reset(new lib::asio::ip::tcp::resolver(*m_io_service)); + } + + tcon->set_uri(u); +-- +2.23.0 + diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/websocketpp/websocketpp-0.8.1/4cab5e5c0c5f19fcee7d37b4a38b156d63a150d4.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/websocketpp/websocketpp-0.8.1/4cab5e5c0c5f19fcee7d37b4a38b156d63a150d4.patch deleted file mode 100644 index 530c960c..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/websocketpp/websocketpp-0.8.1/4cab5e5c0c5f19fcee7d37b4a38b156d63a150d4.patch +++ /dev/null @@ -1,155 +0,0 @@ -From 4cab5e5c0c5f19fcee7d37b4a38b156d63a150d4 Mon Sep 17 00:00:00 2001 -From: Peter Thorson -Date: Sun, 11 Jun 2017 16:13:25 -0500 -Subject: [PATCH] minor adjustments to recent extension negotiation related - fixes, refactor a bit more extension negotiation code to be simpler - ---- - websocketpp/impl/connection_impl.hpp | 6 +-- - websocketpp/processors/hybi13.hpp | 92 ++++++++++++++++++------------------ - 2 files changed, 49 insertions(+), 49 deletions(-) - -Index: websocketpp-0.7.0/websocketpp/impl/connection_impl.hpp -=================================================================== ---- websocketpp-0.7.0.orig/websocketpp/impl/connection_impl.hpp -+++ websocketpp-0.7.0/websocketpp/impl/connection_impl.hpp -@@ -1222,17 +1222,17 @@ - std::pair neg_results; - neg_results = m_processor->negotiate_extensions(m_request); - -- if (neg_results.first == error::make_error_code(error::extension_parse_error)) { -+ if (neg_results.first == processor::error::make_error_code(processor::error::extension_parse_error)) { - // There was a fatal error in extension parsing that should result in - // a failed connection attempt. -- m_alog.write(log::alevel::info, "Bad request: " + neg_results.first.message()); -+ m_elog.write(log::elevel::info, "Bad request: " + neg_results.first.message()); - m_response.set_status(http::status_code::bad_request); - return neg_results.first; - } else if (neg_results.first) { - // There was a fatal error in extension processing that is probably our - // fault. Consider extension negotiation to have failed and continue as - // if extensions were not supported -- m_alog.write(log::alevel::info, -+ m_elog.write(log::elevel::info, - "Extension negotiation failed: " + neg_results.first.message()); - } else { - // extension negotiation succeeded, set response header accordingly -Index: websocketpp-0.7.0/websocketpp/processors/hybi13.hpp -=================================================================== ---- websocketpp-0.7.0.orig/websocketpp/processors/hybi13.hpp -+++ websocketpp-0.7.0/websocketpp/processors/hybi13.hpp -@@ -97,11 +97,6 @@ - /** - * This exists mostly because the code for requests and responses is - * identical and I can't have virtual template methods. -- * -- * NOTE: this method makes assumptions that the permessage-deflate -- * extension is the only one supported. If additional extensions are -- * ever supported it should be reviewed carefully. Most cases where -- * that assumption is made are explicitly noted. - */ - template - err_str_pair negotiate_extensions_helper(header_type const & header) { -@@ -130,55 +125,60 @@ - - http::parameter_list::const_iterator it; - -+ // look through the list of extension requests to find the first -+ // one that we can accept. - if (m_permessage_deflate.is_implemented()) { - err_str_pair neg_ret; - for (it = p.begin(); it != p.end(); ++it) { -- // look through each extension, if the key is permessage-deflate -- if (it->first == "permessage-deflate") { -- // if we have already successfully negotiated this extension -- // then skip any other requests to negotiate the same one -- // with different parameters -- if (m_permessage_deflate.is_enabled()) { -- continue; -- } -- -- -- neg_ret = m_permessage_deflate.negotiate(it->second); -- -- if (neg_ret.first) { -- // Figure out if this is an error that should halt all -- // extension negotiations or simply cause negotiation of -- // this specific extension to fail. -- //std::cout << "permessage-compress negotiation failed: " -- // << neg_ret.first.message() << std::endl; -- } else { -- // Note: this list will need commas if WebSocket++ ever -- // supports more than one extension -- -- // Actually try to initialize the extension before we -- // deem negotiation complete -- ret.first = m_permessage_deflate.init(base::m_server); -- if (!ret.first) { -- -- // TODO: support multiple extensions. -- // right now, because there is only one extension -- // supported, it failing to negotiate means we are -- // done with all negotiating. In the future if more -- // extensions are supported a better solution will -- // be needed here. -- break; -- } else { -- ret.second += neg_ret.second; -- -- // continue looking for more extensions -- continue; -- } -- -- } -+ // not a permessage-deflate extension request, ignore -+ if (it->first != "permessage-deflate") { -+ continue; -+ } -+ -+ // if we have already successfully negotiated this extension -+ // then skip any other requests to negotiate the same one -+ // with different parameters -+ if (m_permessage_deflate.is_enabled()) { -+ continue; -+ } -+ -+ // attempt to negotiate this offer -+ neg_ret = m_permessage_deflate.negotiate(it->second); -+ -+ if (neg_ret.first) { -+ // negotiation offer failed. Do nothing. We will continue -+ // searching for a permessage-deflate config that succeeds -+ continue; -+ } -+ -+ // Negotiation tentatively succeeded -+ -+ // Actually try to initialize the extension before we -+ // deem negotiation complete -+ lib::error_code ec = m_permessage_deflate.init(base::m_server); -+ -+ if (ec) { -+ // Negotiation succeeded but initialization failed this is -+ // an error that should stop negotiation of permessage -+ // deflate. Return the reason for the init failure -+ -+ ret.first = ec; -+ break; -+ } else { -+ // Successfully initialized, push the negotiated response into -+ // the reply and stop looking for additional permessage-deflate -+ // extensions -+ ret.second += neg_ret.second; -+ break; - } - } - } - -+ // support for future extensions would go here. Should check the value of -+ // ret.first before continuing. Might need to consider whether failure of -+ // negotiation of an earlier extension should stop negotiation of subsequent -+ // ones -+ - return ret; - } - diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/websocketpp/websocketpp-0.8.1/771.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/websocketpp/websocketpp-0.8.1/771.patch new file mode 100644 index 00000000..bc65efb7 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/websocketpp/websocketpp-0.8.1/771.patch @@ -0,0 +1,22 @@ +From 4bccfb04a264704ec9b80ba332ee1cf113ce7f1b Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Wolfgang=20St=C3=B6ggl?= +Date: Thu, 1 Nov 2018 20:58:10 +0100 +Subject: [PATCH] Update version number in CMakeLists.txt to 0.8.1 + +--- + CMakeLists.txt | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 2786aba9..2d13117b 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -24,7 +24,7 @@ endif () + ############ Project name and version + set (WEBSOCKETPP_MAJOR_VERSION 0) + set (WEBSOCKETPP_MINOR_VERSION 8) +-set (WEBSOCKETPP_PATCH_VERSION 0) ++set (WEBSOCKETPP_PATCH_VERSION 1) + set (WEBSOCKETPP_VERSION ${WEBSOCKETPP_MAJOR_VERSION}.${WEBSOCKETPP_MINOR_VERSION}.${WEBSOCKETPP_PATCH_VERSION}) + + if(POLICY CMP0048) diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/websocketpp/websocketpp-0.8.1/842.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/websocketpp/websocketpp-0.8.1/842.patch new file mode 100644 index 00000000..c3651e94 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/websocketpp/websocketpp-0.8.1/842.patch @@ -0,0 +1,30 @@ +From 7f7e2be01b4fa6580ce27f668e61adf37853ad67 Mon Sep 17 00:00:00 2001 +From: Schrijvers Luc +Date: Wed, 18 Sep 2019 11:35:43 +0200 +Subject: [PATCH] Fix "include" directory installation. the variable + INSTALL_INCLUDE_DIR already exists, and defaults to include if not + specificied otherwise. Using it allows people to customize the installation + from outside, fixing issues with other OS like Haiku + +Signed-off-by: Gianfranco Costamagna +Signed-off-by: Gianfranco Costamagna +--- + cmake/CMakeHelpers.cmake | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/cmake/CMakeHelpers.cmake b/cmake/CMakeHelpers.cmake +index 1478f4b..f603632 100644 +--- a/cmake/CMakeHelpers.cmake ++++ b/cmake/CMakeHelpers.cmake +@@ -80,7 +80,7 @@ macro (final_target) + endif () + + install (DIRECTORY ${CMAKE_SOURCE_DIR}/${TARGET_NAME} +- DESTINATION include/ ++ DESTINATION ${INSTALL_INCLUDE_DIR}/ + FILES_MATCHING PATTERN "*.hpp*") + endmacro () + +-- +2.17.1 + diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/websocketpp/websocketpp-0.8.1/855.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/websocketpp/websocketpp-0.8.1/855.patch new file mode 100644 index 00000000..a1ee627b --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/websocketpp/websocketpp-0.8.1/855.patch @@ -0,0 +1,23 @@ +From 3590d77bb9753fbbf076028e2395182ced6466ba Mon Sep 17 00:00:00 2001 +From: Gianfranco Costamagna +Date: Wed, 8 Jan 2020 17:59:48 +0100 +Subject: [PATCH] Fix cmake find boost with version >= 1.71 + +For some reasons "system;thread;random;unit_test_framework" was seen as a single module, because of the quotes. +--- + CMakeLists.txt | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 2d13117b..9a46bc10 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -213,7 +213,7 @@ if (BUILD_TESTS OR BUILD_EXAMPLES) + set (Boost_USE_MULTITHREADED TRUE) + set (Boost_ADDITIONAL_VERSIONS "1.39.0" "1.40.0" "1.41.0" "1.42.0" "1.43.0" "1.44.0" "1.46.1") # todo: someone who knows better spesify these! + +- find_package (Boost 1.39.0 COMPONENTS "${WEBSOCKETPP_BOOST_LIBS}") ++ find_package (Boost 1.39.0 COMPONENTS ${WEBSOCKETPP_BOOST_LIBS}) + + if (Boost_FOUND) + # Boost is a project wide global dependency. diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/websocketpp/websocketpp-0.8.1/857.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/websocketpp/websocketpp-0.8.1/857.patch new file mode 100644 index 00000000..f221cd69 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/websocketpp/websocketpp-0.8.1/857.patch @@ -0,0 +1,132 @@ +From 931a55347a322f38eb82d5f387b2924e6c7a1746 Mon Sep 17 00:00:00 2001 +From: Gianfranco Costamagna +Date: Thu, 9 Jan 2020 10:07:20 +0100 +Subject: [PATCH] Update SConstruct with new Python3 syntax: - new raise + keyword syntax - has_key deprecated method is now removed - commands + deprecated library is replaced by subprocess - print function fixes + +This should fix FTBFS against new scons 3.1.2 +https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=947584 +--- + SConstruct | 45 +++++++++++++++++++++++---------------------- + 1 file changed, 23 insertions(+), 22 deletions(-) + +diff --git a/SConstruct b/SConstruct +index ae3df10b..9d1c8914 100644 +--- a/SConstruct ++++ b/SConstruct +@@ -1,18 +1,19 @@ +-import os, sys, commands ++import os, sys ++from subprocess import check_output + env = Environment(ENV = os.environ) + + # figure out a better way to configure this +-if os.environ.has_key('CXX'): ++if 'CXX' in os.environ: + env['CXX'] = os.environ['CXX'] + +-if os.environ.has_key('DEBUG'): ++if 'DEBUG' in os.environ: + env['DEBUG'] = os.environ['DEBUG'] + +-if os.environ.has_key('CXXFLAGS'): ++if 'CXXFLAGS' in os.environ: + #env['CXXFLAGS'] = os.environ['CXXFLAGS'] + env.Append(CXXFLAGS = os.environ['CXXFLAGS']) + +-if os.environ.has_key('LINKFLAGS'): ++if 'LINKFLAGS' in os.environ: + #env['LDFLAGS'] = os.environ['LDFLAGS'] + env.Append(LINKFLAGS = os.environ['LINKFLAGS']) + +@@ -22,24 +23,24 @@ if os.environ.has_key('LINKFLAGS'): + ## or set BOOST_INCLUDES and BOOST_LIBS if Boost comes with your OS distro e.g. and + ## needs BOOST_INCLUDES=/usr/include/boost and BOOST_LIBS=/usr/lib like Ubuntu. + ## +-if os.environ.has_key('BOOSTROOT'): ++if 'BOOSTROOT' in os.environ: + os.environ['BOOST_ROOT'] = os.environ['BOOSTROOT'] + +-if os.environ.has_key('BOOST_ROOT'): ++if 'BOOST_ROOT' in os.environ: + env['BOOST_INCLUDES'] = os.environ['BOOST_ROOT'] + env['BOOST_LIBS'] = os.path.join(os.environ['BOOST_ROOT'], 'stage', 'lib') +-elif os.environ.has_key('BOOST_INCLUDES') and os.environ.has_key('BOOST_LIBS'): ++elif 'BOOST_INCLUDES' in os.environ and 'BOOST_LIBS' in os.environ: + env['BOOST_INCLUDES'] = os.environ['BOOST_INCLUDES'] + env['BOOST_LIBS'] = os.environ['BOOST_LIBS'] + else: +- raise SCons.Errors.UserError, "Neither BOOST_ROOT, nor BOOST_INCLUDES + BOOST_LIBS was set!" ++ raise SCons.Errors.UserError("Neither BOOST_ROOT, nor BOOST_INCLUDES + BOOST_LIBS were set!") + + ## Custom OpenSSL +-if os.environ.has_key('OPENSSL_PATH'): ++if 'OPENSSL_PATH' in os.environ: + env.Append(CPPPATH = os.path.join(os.environ['OPENSSL_PATH'], 'include')) + env.Append(LIBPATH = os.environ['OPENSSL_PATH']) + +-if os.environ.has_key('WSPP_ENABLE_CPP11'): ++if 'WSPP_ENABLE_CPP11' in os.environ: + env['WSPP_ENABLE_CPP11'] = True + else: + env['WSPP_ENABLE_CPP11'] = False +@@ -76,7 +77,7 @@ if env['PLATFORM'].startswith('win'): + env['CCFLAGS'] = '%s /EHsc /GR /GS- /MD /nologo %s %s' % (warn_flags, arch_flags, opt_flags) + env['LINKFLAGS'] = '/INCREMENTAL:NO /MANIFEST /NOLOGO /OPT:REF /OPT:ICF /MACHINE:X86' + elif env['PLATFORM'] == 'posix': +- if env.has_key('DEBUG'): ++ if 'DEBUG' in env: + env.Append(CCFLAGS = ['-g', '-O0']) + else: + env.Append(CPPDEFINES = ['NDEBUG']) +@@ -84,9 +85,9 @@ elif env['PLATFORM'] == 'posix': + env.Append(CCFLAGS = ['-Wall']) + #env['LINKFLAGS'] = '' + elif env['PLATFORM'] == 'darwin': +- if not os.environ.has_key('CXX'): ++ if not 'CXX' in os.environ: + env['CXX'] = "clang++" +- if env.has_key('DEBUG'): ++ if 'DEBUG' in env: + env.Append(CCFLAGS = ['-g', '-O0']) + else: + env.Append(CPPDEFINES = ['NDEBUG']) +@@ -157,29 +158,29 @@ env_cpp11 = env.Clone () + + if env_cpp11['CXX'].startswith('g++'): + # TODO: check g++ version +- GCC_VERSION = commands.getoutput(env_cpp11['CXX'] + ' -dumpversion') ++ GCC_VERSION = check_output([env_cpp11['CXX'], '-dumpversion']) + +- if GCC_VERSION > "4.4.0": +- print "C++11 build environment partially enabled" ++ if GCC_VERSION.decode('utf-8') > "4.4.0": ++ print("C++11 build environment partially enabled") + env_cpp11.Append(WSPP_CPP11_ENABLED = "true",CXXFLAGS = ['-std=c++0x'],TOOLSET = ['g++'],CPPDEFINES = ['_WEBSOCKETPP_CPP11_STL_']) + else: +- print "C++11 build environment is not supported on this version of G++" ++ print("C++11 build environment is not supported on this version of G++") + elif env_cpp11['CXX'].startswith('clang++'): +- print "C++11 build environment enabled" ++ print("C++11 build environment enabled") + env.Append(CXXFLANGS = ['-stdlib=libc++'],LINKFLAGS=['-stdlib=libc++']) + env_cpp11.Append(WSPP_CPP11_ENABLED = "true",CXXFLAGS = ['-std=c++0x','-stdlib=libc++'],LINKFLAGS = ['-stdlib=libc++'],TOOLSET = ['clang++'],CPPDEFINES = ['_WEBSOCKETPP_CPP11_STL_']) + + # look for optional second boostroot compiled with clang's libc++ STL library + # this prevents warnings/errors when linking code built with two different + # incompatible STL libraries. +- if os.environ.has_key('BOOST_ROOT_CPP11'): ++ if 'BOOST_ROOT_CPP11' in os.environ: + env_cpp11['BOOST_INCLUDES'] = os.environ['BOOST_ROOT_CPP11'] + env_cpp11['BOOST_LIBS'] = os.path.join(os.environ['BOOST_ROOT_CPP11'], 'stage', 'lib') +- elif os.environ.has_key('BOOST_INCLUDES_CPP11') and os.environ.has_key('BOOST_LIBS_CPP11'): ++ elif 'BOOST_INCLUDES_CPP11' in os.environ and 'BOOST_LIBS_CPP11' in os.environ: + env_cpp11['BOOST_INCLUDES'] = os.environ['BOOST_INCLUDES_CPP11'] + env_cpp11['BOOST_LIBS'] = os.environ['BOOST_LIBS_CPP11'] + else: +- print "C++11 build environment disabled" ++ print("C++11 build environment disabled") + + # if the build system is known to allow the isystem modifier for library include + # values then use it for the boost libraries. Otherwise just add them to the diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/websocketpp/websocketpp-0.8.1/9ddb300d874a30db35e3ad58f188944bef0bf31b.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/websocketpp/websocketpp-0.8.1/9ddb300d874a30db35e3ad58f188944bef0bf31b.patch deleted file mode 100644 index 94bfeb2f..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/websocketpp/websocketpp-0.8.1/9ddb300d874a30db35e3ad58f188944bef0bf31b.patch +++ /dev/null @@ -1,600 +0,0 @@ -## Description: add some description -## Origin/Author: add some origin or author -## Bug: bug URL -From 9ddb300d874a30db35e3ad58f188944bef0bf31b Mon Sep 17 00:00:00 2001 -From: Peter Thorson -Date: Sun, 11 Jun 2017 15:24:43 -0500 -Subject: [PATCH] Update permessage-deflate support to reflect that zlib - doesn't support a 256 bit window. Improve extension negotiation error - checking and documentation. fixes #596 fixes #653 - ---- - changelog.md | 8 ++ - test/extension/permessage_deflate.cpp | 153 +++++++++++++++++---- - .../extensions/permessage_deflate/enabled.hpp | 94 ++++++++++--- - websocketpp/impl/connection_impl.hpp | 10 +- - websocketpp/processors/hybi13.hpp | 28 +++- - 5 files changed, 247 insertions(+), 46 deletions(-) - -diff --git a/changelog.md b/changelog.md -index bba753cb..de98edd2 100644 -#--- a/changelog.md -#+++ b/changelog.md -#@@ -17,6 +17,14 @@ HEAD -# - Compatibility: Update `telemetry_client` to use a slightly more cross platform -# method of sleeping. Should work on windows now. Thank you Meir Yanovich for -# reporting. -#+- Compatibility: Updated permessage-deflate support to reflect that the zlib -#+ library does not actually support a sliding window size of 256 bits. -#+ WebSocket++ will no longer negotiate 256 bit deflate windows. If the user -#+ of the library tries to request a 256 bit window a 512 bit window will be -#+ specified instead (This was the previous behavior). #596 #653 Thank you -#+ Vinnie Falco and Gianfranco Costamagna for reporting. -#+- Compatibility: Better error handling and logging in cases where extension -#+ requests parse correctly but negotiation fails. -# - Bug: Store loggers in shared pointers to avoid crashes related to connections -# trying to write logs entries after their respective endpoint has been -# deallocated. Thank you Thalhammer for reporting and Jupp Müller for the -diff --git a/test/extension/permessage_deflate.cpp b/test/extension/permessage_deflate.cpp -index 4cd3e7b6..805afcc3 100644 ---- a/test/extension/permessage_deflate.cpp -+++ b/test/extension/permessage_deflate.cpp -@@ -186,15 +186,22 @@ BOOST_AUTO_TEST_CASE( negotiate_server_max_window_bits_invalid ) { - - BOOST_AUTO_TEST_CASE( negotiate_server_max_window_bits_valid ) { - ext_vars v; -+ -+ // confirm that a request for a value of 8 is interpreted as 9 - v.attr["server_max_window_bits"] = "8"; -+ v.esp = v.exts.negotiate(v.attr); -+ BOOST_CHECK( v.exts.is_enabled() ); -+ BOOST_CHECK_EQUAL( v.esp.first, websocketpp::lib::error_code() ); -+ BOOST_CHECK_EQUAL( v.esp.second, "permessage-deflate; server_max_window_bits=9"); - -+ v.attr["server_max_window_bits"] = "9"; - v.esp = v.exts.negotiate(v.attr); - BOOST_CHECK( v.exts.is_enabled() ); - BOOST_CHECK_EQUAL( v.esp.first, websocketpp::lib::error_code() ); -- BOOST_CHECK_EQUAL( v.esp.second, "permessage-deflate; server_max_window_bits=8"); -+ BOOST_CHECK_EQUAL( v.esp.second, "permessage-deflate; server_max_window_bits=9"); - -- v.attr["server_max_window_bits"] = "15"; - -+ v.attr["server_max_window_bits"] = "15"; - v.esp = v.exts.negotiate(v.attr); - BOOST_CHECK( v.exts.is_enabled() ); - BOOST_CHECK_EQUAL( v.esp.first, websocketpp::lib::error_code() ); -@@ -213,7 +220,7 @@ BOOST_AUTO_TEST_CASE( invalid_set_server_max_window_bits ) { - - BOOST_AUTO_TEST_CASE( negotiate_server_max_window_bits_decline ) { - ext_vars v; -- v.attr["server_max_window_bits"] = "8"; -+ v.attr["server_max_window_bits"] = "9"; - - v.ec = v.exts.set_server_max_window_bits(15,pmd_mode::decline); - v.esp = v.exts.negotiate(v.attr); -@@ -223,7 +230,7 @@ BOOST_AUTO_TEST_CASE( negotiate_server_max_window_bits_decline ) { - BOOST_CHECK_EQUAL( v.esp.second, "permessage-deflate"); - } - --BOOST_AUTO_TEST_CASE( negotiate_server_max_window_bits_accept ) { -+BOOST_AUTO_TEST_CASE( negotiate_server_max_window_bits_accept_8 ) { - ext_vars v; - v.attr["server_max_window_bits"] = "8"; - -@@ -232,10 +239,22 @@ BOOST_AUTO_TEST_CASE( negotiate_server_max_window_bits_accept ) { - BOOST_CHECK( v.exts.is_enabled() ); - BOOST_CHECK_EQUAL( v.ec, websocketpp::lib::error_code() ); - BOOST_CHECK_EQUAL( v.esp.first, websocketpp::lib::error_code() ); -- BOOST_CHECK_EQUAL( v.esp.second, "permessage-deflate; server_max_window_bits=8"); -+ BOOST_CHECK_EQUAL( v.esp.second, "permessage-deflate; server_max_window_bits=9"); - } - --BOOST_AUTO_TEST_CASE( negotiate_server_max_window_bits_largest ) { -+BOOST_AUTO_TEST_CASE( negotiate_server_max_window_bits_accept ) { -+ ext_vars v; -+ v.attr["server_max_window_bits"] = "9"; -+ -+ v.ec = v.exts.set_server_max_window_bits(15,pmd_mode::accept); -+ v.esp = v.exts.negotiate(v.attr); -+ BOOST_CHECK( v.exts.is_enabled() ); -+ BOOST_CHECK_EQUAL( v.ec, websocketpp::lib::error_code() ); -+ BOOST_CHECK_EQUAL( v.esp.first, websocketpp::lib::error_code() ); -+ BOOST_CHECK_EQUAL( v.esp.second, "permessage-deflate; server_max_window_bits=9"); -+} -+ -+BOOST_AUTO_TEST_CASE( negotiate_server_max_window_bits_largest_8 ) { - ext_vars v; - v.attr["server_max_window_bits"] = "8"; - -@@ -244,10 +263,22 @@ BOOST_AUTO_TEST_CASE( negotiate_server_max_window_bits_largest ) { - BOOST_CHECK( v.exts.is_enabled() ); - BOOST_CHECK_EQUAL( v.ec, websocketpp::lib::error_code() ); - BOOST_CHECK_EQUAL( v.esp.first, websocketpp::lib::error_code() ); -- BOOST_CHECK_EQUAL( v.esp.second, "permessage-deflate; server_max_window_bits=8"); -+ BOOST_CHECK_EQUAL( v.esp.second, "permessage-deflate; server_max_window_bits=9"); - } - --BOOST_AUTO_TEST_CASE( negotiate_server_max_window_bits_smallest ) { -+BOOST_AUTO_TEST_CASE( negotiate_server_max_window_bits_largest ) { -+ ext_vars v; -+ v.attr["server_max_window_bits"] = "9"; -+ -+ v.ec = v.exts.set_server_max_window_bits(15,pmd_mode::largest); -+ v.esp = v.exts.negotiate(v.attr); -+ BOOST_CHECK( v.exts.is_enabled() ); -+ BOOST_CHECK_EQUAL( v.ec, websocketpp::lib::error_code() ); -+ BOOST_CHECK_EQUAL( v.esp.first, websocketpp::lib::error_code() ); -+ BOOST_CHECK_EQUAL( v.esp.second, "permessage-deflate; server_max_window_bits=9"); -+} -+ -+BOOST_AUTO_TEST_CASE( negotiate_server_max_window_bits_smallest_8 ) { - ext_vars v; - v.attr["server_max_window_bits"] = "8"; - -@@ -256,7 +287,19 @@ BOOST_AUTO_TEST_CASE( negotiate_server_max_window_bits_smallest ) { - BOOST_CHECK( v.exts.is_enabled() ); - BOOST_CHECK_EQUAL( v.ec, websocketpp::lib::error_code() ); - BOOST_CHECK_EQUAL( v.esp.first, websocketpp::lib::error_code() ); -- BOOST_CHECK_EQUAL( v.esp.second, "permessage-deflate; server_max_window_bits=8"); -+ BOOST_CHECK_EQUAL( v.esp.second, "permessage-deflate; server_max_window_bits=9"); -+} -+ -+BOOST_AUTO_TEST_CASE( negotiate_server_max_window_bits_smallest ) { -+ ext_vars v; -+ v.attr["server_max_window_bits"] = "9"; -+ -+ v.ec = v.exts.set_server_max_window_bits(15,pmd_mode::smallest); -+ v.esp = v.exts.negotiate(v.attr); -+ BOOST_CHECK( v.exts.is_enabled() ); -+ BOOST_CHECK_EQUAL( v.ec, websocketpp::lib::error_code() ); -+ BOOST_CHECK_EQUAL( v.esp.first, websocketpp::lib::error_code() ); -+ BOOST_CHECK_EQUAL( v.esp.second, "permessage-deflate; server_max_window_bits=9"); - } - - // Negotiate server_max_window_bits -@@ -292,7 +335,13 @@ BOOST_AUTO_TEST_CASE( negotiate_client_max_window_bits_valid ) { - v.esp = v.exts.negotiate(v.attr); - BOOST_CHECK( v.exts.is_enabled() ); - BOOST_CHECK_EQUAL( v.esp.first, websocketpp::lib::error_code() ); -- BOOST_CHECK_EQUAL( v.esp.second, "permessage-deflate; client_max_window_bits=8"); -+ BOOST_CHECK_EQUAL( v.esp.second, "permessage-deflate; client_max_window_bits=9"); -+ -+ v.attr["client_max_window_bits"] = "9"; -+ v.esp = v.exts.negotiate(v.attr); -+ BOOST_CHECK( v.exts.is_enabled() ); -+ BOOST_CHECK_EQUAL( v.esp.first, websocketpp::lib::error_code() ); -+ BOOST_CHECK_EQUAL( v.esp.second, "permessage-deflate; client_max_window_bits=9"); - - v.attr["client_max_window_bits"] = "15"; - v.esp = v.exts.negotiate(v.attr); -@@ -311,7 +360,7 @@ BOOST_AUTO_TEST_CASE( invalid_set_client_max_window_bits ) { - BOOST_CHECK_EQUAL(v.ec,pmde::make_error_code(pmde::invalid_max_window_bits)); - } - --BOOST_AUTO_TEST_CASE( negotiate_client_max_window_bits_decline ) { -+BOOST_AUTO_TEST_CASE( negotiate_client_max_window_bits_decline_8 ) { - ext_vars v; - v.attr["client_max_window_bits"] = "8"; - -@@ -323,7 +372,19 @@ BOOST_AUTO_TEST_CASE( negotiate_client_max_window_bits_decline ) { - BOOST_CHECK_EQUAL( v.esp.second, "permessage-deflate"); - } - --BOOST_AUTO_TEST_CASE( negotiate_client_max_window_bits_accept ) { -+BOOST_AUTO_TEST_CASE( negotiate_client_max_window_bits_decline ) { -+ ext_vars v; -+ v.attr["client_max_window_bits"] = "9"; -+ -+ v.ec = v.exts.set_client_max_window_bits(9,pmd_mode::decline); -+ v.esp = v.exts.negotiate(v.attr); -+ BOOST_CHECK( v.exts.is_enabled() ); -+ BOOST_CHECK_EQUAL( v.ec, websocketpp::lib::error_code() ); -+ BOOST_CHECK_EQUAL( v.esp.first, websocketpp::lib::error_code() ); -+ BOOST_CHECK_EQUAL( v.esp.second, "permessage-deflate"); -+} -+ -+BOOST_AUTO_TEST_CASE( negotiate_client_max_window_bits_accept_8 ) { - ext_vars v; - v.attr["client_max_window_bits"] = "8"; - -@@ -332,10 +393,22 @@ BOOST_AUTO_TEST_CASE( negotiate_client_max_window_bits_accept ) { - BOOST_CHECK( v.exts.is_enabled() ); - BOOST_CHECK_EQUAL( v.ec, websocketpp::lib::error_code() ); - BOOST_CHECK_EQUAL( v.esp.first, websocketpp::lib::error_code() ); -- BOOST_CHECK_EQUAL( v.esp.second, "permessage-deflate; client_max_window_bits=8"); -+ BOOST_CHECK_EQUAL( v.esp.second, "permessage-deflate; client_max_window_bits=9"); - } - --BOOST_AUTO_TEST_CASE( negotiate_client_max_window_bits_largest ) { -+BOOST_AUTO_TEST_CASE( negotiate_client_max_window_bits_accept ) { -+ ext_vars v; -+ v.attr["client_max_window_bits"] = "9"; -+ -+ v.ec = v.exts.set_client_max_window_bits(15,pmd_mode::accept); -+ v.esp = v.exts.negotiate(v.attr); -+ BOOST_CHECK( v.exts.is_enabled() ); -+ BOOST_CHECK_EQUAL( v.ec, websocketpp::lib::error_code() ); -+ BOOST_CHECK_EQUAL( v.esp.first, websocketpp::lib::error_code() ); -+ BOOST_CHECK_EQUAL( v.esp.second, "permessage-deflate; client_max_window_bits=9"); -+} -+ -+BOOST_AUTO_TEST_CASE( negotiate_client_max_window_bits_largest_8 ) { - ext_vars v; - v.attr["client_max_window_bits"] = "8"; - -@@ -344,10 +417,22 @@ BOOST_AUTO_TEST_CASE( negotiate_client_max_window_bits_largest ) { - BOOST_CHECK( v.exts.is_enabled() ); - BOOST_CHECK_EQUAL( v.ec, websocketpp::lib::error_code() ); - BOOST_CHECK_EQUAL( v.esp.first, websocketpp::lib::error_code() ); -- BOOST_CHECK_EQUAL( v.esp.second, "permessage-deflate; client_max_window_bits=8"); -+ BOOST_CHECK_EQUAL( v.esp.second, "permessage-deflate; client_max_window_bits=9"); - } - --BOOST_AUTO_TEST_CASE( negotiate_client_max_window_bits_smallest ) { -+BOOST_AUTO_TEST_CASE( negotiate_client_max_window_bits_largest ) { -+ ext_vars v; -+ v.attr["client_max_window_bits"] = "9"; -+ -+ v.ec = v.exts.set_client_max_window_bits(15,pmd_mode::largest); -+ v.esp = v.exts.negotiate(v.attr); -+ BOOST_CHECK( v.exts.is_enabled() ); -+ BOOST_CHECK_EQUAL( v.ec, websocketpp::lib::error_code() ); -+ BOOST_CHECK_EQUAL( v.esp.first, websocketpp::lib::error_code() ); -+ BOOST_CHECK_EQUAL( v.esp.second, "permessage-deflate; client_max_window_bits=9"); -+} -+ -+BOOST_AUTO_TEST_CASE( negotiate_client_max_window_bits_smallest_8 ) { - ext_vars v; - v.attr["client_max_window_bits"] = "8"; - -@@ -356,7 +441,19 @@ BOOST_AUTO_TEST_CASE( negotiate_client_max_window_bits_smallest ) { - BOOST_CHECK( v.exts.is_enabled() ); - BOOST_CHECK_EQUAL( v.ec, websocketpp::lib::error_code() ); - BOOST_CHECK_EQUAL( v.esp.first, websocketpp::lib::error_code() ); -- BOOST_CHECK_EQUAL( v.esp.second, "permessage-deflate; client_max_window_bits=8"); -+ BOOST_CHECK_EQUAL( v.esp.second, "permessage-deflate; client_max_window_bits=9"); -+} -+ -+BOOST_AUTO_TEST_CASE( negotiate_client_max_window_bits_smallest ) { -+ ext_vars v; -+ v.attr["client_max_window_bits"] = "9"; -+ -+ v.ec = v.exts.set_client_max_window_bits(15,pmd_mode::smallest); -+ v.esp = v.exts.negotiate(v.attr); -+ BOOST_CHECK( v.exts.is_enabled() ); -+ BOOST_CHECK_EQUAL( v.ec, websocketpp::lib::error_code() ); -+ BOOST_CHECK_EQUAL( v.esp.first, websocketpp::lib::error_code() ); -+ BOOST_CHECK_EQUAL( v.esp.second, "permessage-deflate; client_max_window_bits=9"); - } - - -@@ -507,7 +604,8 @@ BOOST_AUTO_TEST_CASE( compress_data ) { - std::string compress_out; - std::string decompress_out; - -- v.exts.init(true); -+ v.ec = v.exts.init(true); -+ BOOST_CHECK_EQUAL( v.ec, websocketpp::lib::error_code() ); - - v.ec = v.exts.compress(compress_in,compress_out); - BOOST_CHECK_EQUAL( v.ec, websocketpp::lib::error_code() ); -@@ -520,7 +618,8 @@ BOOST_AUTO_TEST_CASE( compress_data ) { - BOOST_AUTO_TEST_CASE( compress_data_multiple ) { - ext_vars v; - -- v.exts.init(true); -+ v.ec = v.exts.init(true); -+ BOOST_CHECK_EQUAL( v.ec, websocketpp::lib::error_code() ); - - for (int i = 0; i < 2; i++) { - std::string compress_in = "Hello"; -@@ -545,11 +644,12 @@ BOOST_AUTO_TEST_CASE( compress_data_large ) { - - websocketpp::http::attribute_list alist; - -- alist["server_max_window_bits"] = "8"; -- v.exts.set_server_max_window_bits(8,websocketpp::extensions::permessage_deflate::mode::smallest); -+ alist["server_max_window_bits"] = "9"; -+ v.exts.set_server_max_window_bits(9,websocketpp::extensions::permessage_deflate::mode::smallest); - - v.exts.negotiate(alist); -- v.exts.init(true); -+ v.ec = v.exts.init(true); -+ BOOST_CHECK_EQUAL( v.ec, websocketpp::lib::error_code() ); - - v.ec = v.exts.compress(compress_in,compress_out); - BOOST_CHECK_EQUAL( v.ec, websocketpp::lib::error_code() ); -@@ -573,7 +673,8 @@ BOOST_AUTO_TEST_CASE( compress_data_no_context_takeover ) { - v.exts.enable_server_no_context_takeover(); - - v.exts.negotiate(alist); -- v.exts.init(true); -+ v.ec = v.exts.init(true); -+ BOOST_CHECK_EQUAL( v.ec, websocketpp::lib::error_code() ); - - v.ec = v.exts.compress(compress_in,compress_out1); - BOOST_CHECK_EQUAL( v.ec, websocketpp::lib::error_code() ); -@@ -609,7 +710,8 @@ BOOST_AUTO_TEST_CASE( compress_empty ) { - std::string compress_out; - std::string decompress_out; - -- v.exts.init(true); -+ v.ec = v.exts.init(true); -+ BOOST_CHECK_EQUAL( v.ec, websocketpp::lib::error_code() ); - - v.ec = v.exts.compress(compress_in,compress_out); - BOOST_CHECK_EQUAL( v.ec, websocketpp::lib::error_code() ); -@@ -640,7 +742,8 @@ BOOST_AUTO_TEST_CASE( decompress_data ) { - std::string out; - std::string reference = "Hello"; - -- v.exts.init(true); -+ v.ec = v.exts.init(true); -+ BOOST_CHECK_EQUAL( v.ec, websocketpp::lib::error_code() ); - - v.ec = v.exts.decompress(in,11,out); - -diff --git a/websocketpp/extensions/permessage_deflate/enabled.hpp b/websocketpp/extensions/permessage_deflate/enabled.hpp -index 1581f14c..f20a1b1d 100644 ---- a/websocketpp/extensions/permessage_deflate/enabled.hpp -+++ b/websocketpp/extensions/permessage_deflate/enabled.hpp -@@ -46,7 +46,7 @@ - namespace websocketpp { - namespace extensions { - --/// Implementation of the draft permessage-deflate WebSocket extension -+/// Implementation of RFC 7692, the permessage-deflate WebSocket extension - /** - * ### permessage-deflate interface - * -@@ -174,18 +174,30 @@ namespace websocketpp { - namespace extensions { - namespace permessage_deflate { - --/// Default value for server_max_window_bits as defined by draft 17 -+/// Default value for server_max_window_bits as defined by RFC 7692 - static uint8_t const default_server_max_window_bits = 15; --/// Minimum value for server_max_window_bits as defined by draft 17 -+/// Minimum value for server_max_window_bits as defined by RFC 7692 -+/** -+ * NOTE: A value of 8 is not actually supported by zlib, the deflate -+ * library that WebSocket++ uses. To preserve backwards compatibility -+ * with RFC 7692 and previous versions of the library a value of 8 -+ * is accepted by the library but will always be negotiated as 9. -+ */ - static uint8_t const min_server_max_window_bits = 8; --/// Maximum value for server_max_window_bits as defined by draft 17 -+/// Maximum value for server_max_window_bits as defined by RFC 7692 - static uint8_t const max_server_max_window_bits = 15; - --/// Default value for client_max_window_bits as defined by draft 17 -+/// Default value for client_max_window_bits as defined by RFC 7692 - static uint8_t const default_client_max_window_bits = 15; --/// Minimum value for client_max_window_bits as defined by draft 17 -+/// Minimum value for client_max_window_bits as defined by RFC 7692 -+/** -+ * NOTE: A value of 8 is not actually supported by zlib, the deflate -+ * library that WebSocket++ uses. To preserve backwards compatibility -+ * with RFC 7692 and previous versions of the library a value of 8 -+ * is accepted by the library but will always be negotiated as 9. -+ */ - static uint8_t const min_client_max_window_bits = 8; --/// Maximum value for client_max_window_bits as defined by draft 17 -+/// Maximum value for client_max_window_bits as defined by RFC 7692 - static uint8_t const max_client_max_window_bits = 15; - - namespace mode { -@@ -372,7 +384,7 @@ class enabled { - /** - * The bits setting is the base 2 logarithm of the maximum window size that - * the server must use to compress outgoing messages. The permitted range -- * is 8 to 15 inclusive. 8 represents a 256 byte window and 15 a 32KiB -+ * is 9 to 15 inclusive. 9 represents a 512 byte window and 15 a 32KiB - * window. The default setting is 15. - * - * Mode Options: -@@ -386,6 +398,14 @@ class enabled { - * adjusted by the server. A server may unilaterally set this value without - * client support. - * -+ * NOTE: The permessage-deflate spec specifies that a value of 8 is allowed. -+ * Prior to version 0.8.0 a value of 8 was also allowed by this library. -+ * zlib, the deflate compression library that WebSocket++ uses has always -+ * silently adjusted a value of 8 to 9. In recent versions of zlib (1.2.9 -+ * and greater) a value of 8 is now explicitly rejected. WebSocket++ 0.8.0 -+ * continues to perform the 8->9 conversion for backwards compatibility -+ * purposes but this should be considered deprecated functionality. -+ * - * @param bits The size to request for the outgoing window size - * @param mode The mode to use for negotiating this parameter - * @return A status code -@@ -394,6 +414,12 @@ class enabled { - if (bits < min_server_max_window_bits || bits > max_server_max_window_bits) { - return error::make_error_code(error::invalid_max_window_bits); - } -+ -+ // See note in doc comment above about what is happening here -+ if (bits == 8) { -+ bits = 9; -+ } -+ - m_server_max_window_bits = bits; - m_server_max_window_bits_mode = mode; - -@@ -403,8 +429,8 @@ class enabled { - /// Limit client LZ77 sliding window size - /** - * The bits setting is the base 2 logarithm of the window size that the -- * client must use to compress outgoing messages. The permitted range is 8 -- * to 15 inclusive. 8 represents a 256 byte window and 15 a 32KiB window. -+ * client must use to compress outgoing messages. The permitted range is 9 -+ * to 15 inclusive. 9 represents a 512 byte window and 15 a 32KiB window. - * The default setting is 15. - * - * Mode Options: -@@ -417,6 +443,14 @@ class enabled { - * outgoing window size unilaterally. A server may only limit the client's - * window size if the remote client supports that feature. - * -+ * NOTE: The permessage-deflate spec specifies that a value of 8 is allowed. -+ * Prior to version 0.8.0 a value of 8 was also allowed by this library. -+ * zlib, the deflate compression library that WebSocket++ uses has always -+ * silently adjusted a value of 8 to 9. In recent versions of zlib (1.2.9 -+ * and greater) a value of 8 is now explicitly rejected. WebSocket++ 0.8.0 -+ * continues to perform the 8->9 conversion for backwards compatibility -+ * purposes but this should be considered deprecated functionality. -+ * - * @param bits The size to request for the outgoing window size - * @param mode The mode to use for negotiating this parameter - * @return A status code -@@ -425,6 +459,12 @@ class enabled { - if (bits < min_client_max_window_bits || bits > max_client_max_window_bits) { - return error::make_error_code(error::invalid_max_window_bits); - } -+ -+ // See note in doc comment above about what is happening here -+ if (bits == 8) { -+ bits = 9; -+ } -+ - m_client_max_window_bits = bits; - m_client_max_window_bits_mode = mode; - -@@ -642,11 +682,17 @@ class enabled { - * client requested that we use. - * - * options: -- * - decline (refuse to use the attribute) -- * - accept (use whatever the client says) -- * - largest (use largest possible value) -+ * - decline (ignore value, offer our default instead) -+ * - accept (use the value requested by the client) -+ * - largest (use largest value acceptable to both) - * - smallest (use smallest possible value) - * -+ * NOTE: As a value of 8 is no longer explicitly supported by zlib but might -+ * be requested for negotiation by an older client/server, if the result of -+ * the negotiation would be to send a value of 8, a value of 9 is offered -+ * instead. This ensures that WebSocket++ will only ever negotiate connections -+ * with compression settings explicitly supported by zlib. -+ * - * @param [in] value The value of the attribute from the offer - * @param [out] ec A reference to the error code to return errors via - */ -@@ -678,6 +724,11 @@ class enabled { - ec = make_error_code(error::invalid_mode); - m_server_max_window_bits = default_server_max_window_bits; - } -+ -+ // See note in doc comment -+ if (m_server_max_window_bits == 8) { -+ m_server_max_window_bits = 9; -+ } - } - - /// Negotiate client_max_window_bits attribute -@@ -687,11 +738,17 @@ class enabled { - * negotiation mode. - * - * options: -- * - decline (refuse to use the attribute) -- * - accept (use whatever the client says) -- * - largest (use largest possible value) -+ * - decline (ignore value, offer our default instead) -+ * - accept (use the value requested by the client) -+ * - largest (use largest value acceptable to both) - * - smallest (use smallest possible value) - * -+ * NOTE: As a value of 8 is no longer explicitly supported by zlib but might -+ * be requested for negotiation by an older client/server, if the result of -+ * the negotiation would be to send a value of 8, a value of 9 is offered -+ * instead. This ensures that WebSocket++ will only ever negotiate connections -+ * with compression settings explicitly supported by zlib. -+ * - * @param [in] value The value of the attribute from the offer - * @param [out] ec A reference to the error code to return errors via - */ -@@ -727,6 +784,11 @@ class enabled { - ec = make_error_code(error::invalid_mode); - m_client_max_window_bits = default_client_max_window_bits; - } -+ -+ // See note in doc comment -+ if (m_client_max_window_bits == 8) { -+ m_client_max_window_bits = 9; -+ } - } - - bool m_enabled; -diff --git a/websocketpp/impl/connection_impl.hpp b/websocketpp/impl/connection_impl.hpp -index 105911db..ae55c338 100644 ---- a/websocketpp/impl/connection_impl.hpp -+++ b/websocketpp/impl/connection_impl.hpp -@@ -1222,12 +1222,18 @@ lib::error_code connection::process_handshake_request() { - std::pair neg_results; - neg_results = m_processor->negotiate_extensions(m_request); - -- if (neg_results.first) { -+ if (neg_results.first == error::make_error_code(error::extension_parse_error)) { - // There was a fatal error in extension parsing that should result in - // a failed connection attempt. -- m_alog.write(log::alevel::devel, "Bad request: " + neg_results.first.message()); -+ m_alog.write(log::alevel::info, "Bad request: " + neg_results.first.message()); - m_response.set_status(http::status_code::bad_request); - return neg_results.first; -+ } else if (neg_results.first) { -+ // There was a fatal error in extension processing that is probably our -+ // fault. Consider extension negotiation to have failed and continue as -+ // if extensions were not supported -+ m_alog.write(log::alevel::info, -+ "Extension negotiation failed: " + neg_results.first.message()); - } else { - // extension negotiation succeeded, set response header accordingly - // we don't send an empty extensions header because it breaks many -diff --git a/websocketpp/processors/hybi13.hpp b/websocketpp/processors/hybi13.hpp -index 79486654..a95bc649 100644 ---- a/websocketpp/processors/hybi13.hpp -+++ b/websocketpp/processors/hybi13.hpp -@@ -97,6 +97,11 @@ class hybi13 : public processor { - /** - * This exists mostly because the code for requests and responses is - * identical and I can't have virtual template methods. -+ * -+ * NOTE: this method makes assumptions that the permessage-deflate -+ * extension is the only one supported. If additional extensions are -+ * ever supported it should be reviewed carefully. Most cases where -+ * that assumption is made are explicitly noted. - */ - template - err_str_pair negotiate_extensions_helper(header_type const & header) { -@@ -149,9 +154,26 @@ class hybi13 : public processor { - } else { - // Note: this list will need commas if WebSocket++ ever - // supports more than one extension -- ret.second += neg_ret.second; -- m_permessage_deflate.init(base::m_server); -- continue; -+ -+ // Actually try to initialize the extension before we -+ // deem negotiation complete -+ ret.first = m_permessage_deflate.init(base::m_server); -+ if (!ret.first) { -+ -+ // TODO: support multiple extensions. -+ // right now, because there is only one extension -+ // supported, it failing to negotiate means we are -+ // done with all negotiating. In the future if more -+ // extensions are supported a better solution will -+ // be needed here. -+ break; -+ } else { -+ ret.second += neg_ret.second; -+ -+ // continue looking for more extensions -+ continue; -+ } -+ - } - } - } diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/websocketpp/websocketpp-0.8.1/disable-tests.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/websocketpp/websocketpp-0.8.1/disable-tests.patch deleted file mode 100644 index 342981d4..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/websocketpp/websocketpp-0.8.1/disable-tests.patch +++ /dev/null @@ -1,51 +0,0 @@ -Description: Disable failing test_transport_asio_timers. -Because of "address already in use" error -/«PKGBUILDDIR»/test/transport/asio/timers.cpp(129): error in "tls_handshake_timeout": check ec == make_error_code(tls_handshake_timeout) failed [websocketpp.transport.asio.socket:8 != websocketpp.transport.asio.socket:5] -Author: Gianfranco Costamagna - ---- websocketpp-0.7.0.orig/test/transport/CMakeLists.txt -+++ websocketpp-0.7.0/test/transport/CMakeLists.txt -@@ -1,24 +1,24 @@ - if (OPENSSL_FOUND) - --# Test transport integration --file (GLOB SOURCE integration.cpp) -- --init_target (test_transport) --build_test (${TARGET_NAME} ${SOURCE}) --link_boost () --link_openssl() --final_target () --set_target_properties(${TARGET_NAME} PROPERTIES FOLDER "test") -- --# Test transport asio timers --file (GLOB SOURCE asio/timers.cpp) -- --init_target (test_transport_asio_timers) --build_test (${TARGET_NAME} ${SOURCE}) --link_boost () --link_openssl() --final_target () --set_target_properties(${TARGET_NAME} PROPERTIES FOLDER "test") -+## Test transport integration -+#file (GLOB SOURCE integration.cpp) -+# -+#init_target (test_transport) -+#build_test (${TARGET_NAME} ${SOURCE}) -+#link_boost () -+#link_openssl() -+#final_target () -+#set_target_properties(${TARGET_NAME} PROPERTIES FOLDER "test") -+# -+## Test transport asio timers -+#file (GLOB SOURCE asio/timers.cpp) -+# -+#init_target (test_transport_asio_timers) -+#build_test (${TARGET_NAME} ${SOURCE}) -+#link_boost () -+#link_openssl() -+#final_target () -+#set_target_properties(${TARGET_NAME} PROPERTIES FOLDER "test") - - # Test transport asio security - file (GLOB SOURCE asio/security.cpp) diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/websocketpp/websocketpp_0.8.1.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/websocketpp/websocketpp_0.8.1.bb index 75a5f886..af6d30a2 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/websocketpp/websocketpp_0.8.1.bb +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/websocketpp/websocketpp_0.8.1.bb @@ -3,9 +3,27 @@ SECTION = "libs/network" HOMEPAGE = "https://github.com/zaphoyd/websocketpp" LICENSE = "BSD-3-Clause" LIC_FILES_CHKSUM = "file://${S}/COPYING;md5=4d168d763c111f4ffc62249870e4e0ea" -DEPENDS = "openssl boost zlib" -SRC_URI = "git://github.com/zaphoyd/websocketpp.git;protocol=https;branch=master" +DEPENDS = " ${@bb.utils.contains('DISTRO_FEATURES', 'ptest', 'openssl boost zlib', '', d)} " + +SRC_URI = "git://github.com/zaphoyd/websocketpp.git;protocol=https \ + file://0001-Replace-make_shared-with-new-in-some-cases.patch \ + file://0002-Fix-missed-entries-fix-testing.patch \ + file://0001-cmake-Use-GNUInstallDirs.patch \ + file://842.patch \ + file://771.patch \ + file://855.patch \ + file://857.patch \ + file://0001-Correct-clang-compiler-flags.patch \ + " + +EXTRA_OECMAKE = "${@bb.utils.contains('DISTRO_FEATURES', 'ptest', '-DBUILD_EXAMPLES=ON -DBUILD_TESTS=ON', '', d)} " + +# this is an header only library, do not depend on the main package +RDEPENDS_${PN}-dev = "" + +# to add this package to an SDK, since it isn't a reverse-dependency of anything, just use something like this: +# TOOLCHAIN_TARGET_TASK_append = " websocketpp-dev" # tag 0.8.1 SRCREV= "c6d7e295bf5a0ab9b5f896720cc1a0e0fdc397a7" @@ -13,3 +31,12 @@ SRCREV= "c6d7e295bf5a0ab9b5f896720cc1a0e0fdc397a7" S = "${WORKDIR}/git" inherit cmake + +PACKAGES =+ "${PN}-examples" + +FILES_${PN}-examples = "${docdir}" + +do_install_append() { + install -d ${D}${docdir}/${BPN} + cp -R ${S}/examples ${D}${docdir}/${BPN} +} diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/xdelta/xdelta3_3.0.11.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/xdelta/xdelta3_3.0.11.bb deleted file mode 100644 index 9669d9bb..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/xdelta/xdelta3_3.0.11.bb +++ /dev/null @@ -1,18 +0,0 @@ -SUMMARY = "Xdelta is a tool for differential compression" -DESCRIPTION = "Open-source binary diff, differential compression tools, \ - VCDIFF (RFC 3284) delta compression." -HOMEPAGE = "http://xdelta.org/" -SECTION = "console/utils" - -LICENSE = "GPLv2" -LIC_FILES_CHKSUM = "file://COPYING;md5=393a5ca445f6965873eca0259a17f833" -SRC_URI = "https://github.com/jmacd/xdelta-devel/releases/download/v${PV}/${BPN}-${PV}.tar.gz \ - " -SRC_URI[md5sum] = "445d8be2ac512113d5ca601ae8359626" -SRC_URI[sha256sum] = "0ccc9751ceaa4d90d6b06938a4deddb481816f5d9284bd07d2e728609cb300aa" - -inherit autotools - -# Optional secondary compression -PACKAGECONFIG ??= "" -PACKAGECONFIG[lzma] = "--with-liblzma,--without-liblzma,xz" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/xdelta/xdelta3_3.1.0.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/xdelta/xdelta3_3.1.0.bb new file mode 100644 index 00000000..d100030f --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/xdelta/xdelta3_3.1.0.bb @@ -0,0 +1,20 @@ +SUMMARY = "Xdelta is a tool for differential compression" +DESCRIPTION = "Open-source binary diff, differential compression tools, \ + VCDIFF (RFC 3284) delta compression." +HOMEPAGE = "http://xdelta.org/" +SECTION = "console/utils" + +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=393a5ca445f6965873eca0259a17f833" + +SRC_URI = "git://github.com/jmacd/xdelta.git;branch=release3_1_apl" +SRCREV = "4b4aed71a959fe11852e45242bb6524be85d3709" +S = "${WORKDIR}/git/xdelta3" + +inherit autotools + +# Optional secondary compression +PACKAGECONFIG ??= "" +PACKAGECONFIG[lzma] = "--with-liblzma,--without-liblzma,xz" + +BBCLASSEXTEND = "native nativesdk" diff --git a/Contrib-Inspur/openbmc/meta-security/recipes-security/xmlsec1/xmlsec1/change-finding-path-of-nss.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/xmlsec1/xmlsec1/change-finding-path-of-nss.patch similarity index 100% rename from Contrib-Inspur/openbmc/meta-security/recipes-security/xmlsec1/xmlsec1/change-finding-path-of-nss.patch rename to Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/xmlsec1/xmlsec1/change-finding-path-of-nss.patch diff --git a/Contrib-Inspur/openbmc/meta-security/recipes-security/xmlsec1/xmlsec1/fix-ltmain.sh.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/xmlsec1/xmlsec1/fix-ltmain.sh.patch similarity index 100% rename from Contrib-Inspur/openbmc/meta-security/recipes-security/xmlsec1/xmlsec1/fix-ltmain.sh.patch rename to Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/xmlsec1/xmlsec1/fix-ltmain.sh.patch diff --git a/Contrib-Inspur/openbmc/meta-security/recipes-security/xmlsec1/xmlsec1/makefile-ptest.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/xmlsec1/xmlsec1/makefile-ptest.patch similarity index 100% rename from Contrib-Inspur/openbmc/meta-security/recipes-security/xmlsec1/xmlsec1/makefile-ptest.patch rename to Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/xmlsec1/xmlsec1/makefile-ptest.patch diff --git a/Contrib-Inspur/openbmc/meta-security/recipes-security/xmlsec1/xmlsec1/run-ptest b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/xmlsec1/xmlsec1/run-ptest similarity index 100% rename from Contrib-Inspur/openbmc/meta-security/recipes-security/xmlsec1/xmlsec1/run-ptest rename to Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/xmlsec1/xmlsec1/run-ptest diff --git a/Contrib-Inspur/openbmc/meta-security/recipes-security/xmlsec1/xmlsec1/xmlsec1-examples-allow-build-in-separate-dir.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/xmlsec1/xmlsec1/xmlsec1-examples-allow-build-in-separate-dir.patch similarity index 100% rename from Contrib-Inspur/openbmc/meta-security/recipes-security/xmlsec1/xmlsec1/xmlsec1-examples-allow-build-in-separate-dir.patch rename to Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/xmlsec1/xmlsec1/xmlsec1-examples-allow-build-in-separate-dir.patch diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/xmlsec1/xmlsec1_1.2.29.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/xmlsec1/xmlsec1_1.2.29.bb new file mode 100644 index 00000000..40c585ee --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/xmlsec1/xmlsec1_1.2.29.bb @@ -0,0 +1,64 @@ +SUMMARY = "XML Security Library is a C library based on LibXML2" +DESCRIPTION = "\ + XML Security Library is a C library based on \ + LibXML2 and OpenSSL. The library was created with a goal to support major \ + XML security standards "XML Digital Signature" and "XML Encryption". \ + " +HOMEPAGE = "http://www.aleksey.com/xmlsec/" +DEPENDS = "libtool libxml2 libxslt zlib" + +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://COPYING;md5=352791d62092ea8104f085042de7f4d0" + +SECTION = "libs" + +SRC_URI = "http://www.aleksey.com/xmlsec/download/${BP}.tar.gz \ + file://fix-ltmain.sh.patch \ + file://change-finding-path-of-nss.patch \ + file://makefile-ptest.patch \ + file://xmlsec1-examples-allow-build-in-separate-dir.patch \ + file://run-ptest \ + " + +SRC_URI[md5sum] = "4755621ff2a7150e208de6bd7decca10" +SRC_URI[sha256sum] = "b1d1deba966019930f608d1f2b95c40ca3450f1393bcd3a3c001a8ba1d2839ab" + +inherit autotools-brokensep ptest pkgconfig + +CFLAGS += "-I${STAGING_INCDIR}/nspr4 -I${STAGING_INCDIR}/nss3" +CPPFLAGS += "-I${STAGING_INCDIR}/nspr4 -I${STAGING_INCDIR}/nss3" + +PACKAGECONFIG ??= "gnutls libgcrypt nss openssl des" +PACKAGECONFIG[gnutls] = ",,gnutls" +PACKAGECONFIG[libgcrypt] = ",,libgcrypt" +PACKAGECONFIG[nss] = "--with-nss=${STAGING_LIBDIR}/../.. --with-nspr=${STAGING_LIBDIR}/../..,,nss nspr" +PACKAGECONFIG[openssl] = ",,openssl" +PACKAGECONFIG[des] = ",--disable-des,," + +# these can be dynamically loaded with xmlSecCryptoDLLoadLibrary() +FILES_SOLIBSDEV = "${libdir}/libxmlsec1.so" +FILES_${PN} += "${libdir}/libxmlsec1-*.so" +INSANE_SKIP_${PN} = "dev-so" + +FILES_${PN}-dev += "${libdir}/xmlsec1Conf.sh" +FILES_${PN}-dbg += "${PTEST_PATH}/.debug/*" + +RDEPENDS_${PN}-ptest += "${PN}-dev" +INSANE_SKIP_${PN}-ptest += "dev-deps" + +PTEST_EXTRA_ARGS = "top_srcdir=${S} top_builddir=${B}" + +do_compile_ptest () { + oe_runmake -C ${S}/examples ${PTEST_EXTRA_ARGS} all +} + +do_install_append() { + for i in ${bindir}/xmlsec1-config ${libdir}/xmlsec1Conf.sh \ + ${libdir}/pkgconfig/xmlsec1-openssl.pc; do + sed -i -e "s@${RECIPE_SYSROOT}@@g" ${D}$i + done +} + +do_install_ptest () { + oe_runmake -C ${S}/examples DESTDIR=${D}${PTEST_PATH} ${PTEST_EXTRA_ARGS} install-ptest +} diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/xorg-xrdp/xorgxrdp_0.2.5.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/xorg-xrdp/xorgxrdp_0.2.5.bb index 0bdafdf3..481e7303 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/xorg-xrdp/xorgxrdp_0.2.5.bb +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/xorg-xrdp/xorgxrdp_0.2.5.bb @@ -7,7 +7,7 @@ inherit autotools pkgconfig DEPENDS = "virtual/libx11 xserver-xorg xrdp nasm-native" -inherit distro_features_check +inherit features_check REQUIRED_DISTRO_FEATURES = "x11 pam" SRC_URI = "git://github.com/neutrinolabs/xorgxrdp.git" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/xrdp/xrdp/0001-Fix-of-CVE-2017-16927.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/xrdp/xrdp/0001-Fix-of-CVE-2017-16927.patch deleted file mode 100644 index 4c93647f..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/xrdp/xrdp/0001-Fix-of-CVE-2017-16927.patch +++ /dev/null @@ -1,148 +0,0 @@ -Subject: [PATCH] Fix CVE-2017-16927 - -sesman: scpv0, accept variable length data fields - -Upstream-Status: Backport - ---- - sesman/libscp/libscp_v0.c | 32 +++++++++++++++++++++++++------- - 1 file changed, 25 insertions(+), 7 deletions(-) - -diff --git a/sesman/libscp/libscp_v0.c b/sesman/libscp/libscp_v0.c -index 5a0c8bf..5693407 100644 ---- a/sesman/libscp/libscp_v0.c -+++ b/sesman/libscp/libscp_v0.c -@@ -161,7 +161,7 @@ scp_v0s_accept(struct SCP_CONNECTION *c, struct SCP_SESSION **s, int skipVchk) - struct SCP_SESSION *session = 0; - tui16 sz; - tui32 code = 0; -- char buf[257]; -+ char *buf = 0; - - if (!skipVchk) - { -@@ -226,27 +226,31 @@ scp_v0s_accept(struct SCP_CONNECTION *c, struct SCP_SESSION **s, int skipVchk) - - /* reading username */ - in_uint16_be(c->in_s, sz); -- buf[sz] = '\0'; -+ buf = g_new0(char, sz); - in_uint8a(c->in_s, buf, sz); -- -+ buf[sz] = '\0'; - if (0 != scp_session_set_username(session, buf)) - { - scp_session_destroy(session); - log_message(LOG_LEVEL_WARNING, "[v0:%d] connection aborted: error setting username", __LINE__); -+ g_free(buf); - return SCP_SERVER_STATE_INTERNAL_ERR; - } -+ g_free(buf); - - /* reading password */ - in_uint16_be(c->in_s, sz); -- buf[sz] = '\0'; -+ buf = g_new0(char, sz); - in_uint8a(c->in_s, buf, sz); -- -+ buf[sz] = '\0'; - if (0 != scp_session_set_password(session, buf)) - { - scp_session_destroy(session); - log_message(LOG_LEVEL_WARNING, "[v0:%d] connection aborted: error setting password", __LINE__); -+ g_free(buf); - return SCP_SERVER_STATE_INTERNAL_ERR; - } -+ g_free(buf); - - /* width */ - in_uint16_be(c->in_s, sz); -@@ -272,9 +276,11 @@ scp_v0s_accept(struct SCP_CONNECTION *c, struct SCP_SESSION **s, int skipVchk) - - if (sz > 0) - { -+ buf = g_new0(char, sz); - in_uint8a(c->in_s, buf, sz); - buf[sz] = '\0'; - scp_session_set_domain(session, buf); -+ g_free(buf); - } - } - -@@ -285,9 +291,11 @@ scp_v0s_accept(struct SCP_CONNECTION *c, struct SCP_SESSION **s, int skipVchk) - - if (sz > 0) - { -+ buf = g_new0(char, sz); - in_uint8a(c->in_s, buf, sz); - buf[sz] = '\0'; - scp_session_set_program(session, buf); -+ g_free(buf); - } - } - -@@ -298,9 +306,11 @@ scp_v0s_accept(struct SCP_CONNECTION *c, struct SCP_SESSION **s, int skipVchk) - - if (sz > 0) - { -+ buf = g_new0(char, sz); - in_uint8a(c->in_s, buf, sz); - buf[sz] = '\0'; - scp_session_set_directory(session, buf); -+ g_free(buf); - } - } - -@@ -311,9 +321,11 @@ scp_v0s_accept(struct SCP_CONNECTION *c, struct SCP_SESSION **s, int skipVchk) - - if (sz > 0) - { -+ buf = g_new0(char, sz); - in_uint8a(c->in_s, buf, sz); - buf[sz] = '\0'; - scp_session_set_client_ip(session, buf); -+ g_free(buf); - } - } - } -@@ -332,29 +344,35 @@ scp_v0s_accept(struct SCP_CONNECTION *c, struct SCP_SESSION **s, int skipVchk) - scp_session_set_type(session, SCP_GW_AUTHENTICATION); - /* reading username */ - in_uint16_be(c->in_s, sz); -- buf[sz] = '\0'; -+ buf = g_new0(char, sz); - in_uint8a(c->in_s, buf, sz); -+ buf[sz] = '\0'; - - /* g_writeln("Received user name: %s",buf); */ - if (0 != scp_session_set_username(session, buf)) - { - scp_session_destroy(session); - /* until syslog merge log_message(s_log, LOG_LEVEL_WARNING, "[v0:%d] connection aborted: error setting username", __LINE__);*/ -+ g_free(buf); - return SCP_SERVER_STATE_INTERNAL_ERR; - } -+ g_free(buf); - - /* reading password */ - in_uint16_be(c->in_s, sz); -- buf[sz] = '\0'; -+ buf = g_new0(char, sz); - in_uint8a(c->in_s, buf, sz); -+ buf[sz] = '\0'; - - /* g_writeln("Received password: %s",buf); */ - if (0 != scp_session_set_password(session, buf)) - { - scp_session_destroy(session); - /* until syslog merge log_message(s_log, LOG_LEVEL_WARNING, "[v0:%d] connection aborted: error setting password", __LINE__); */ -+ g_free(buf); - return SCP_SERVER_STATE_INTERNAL_ERR; - } -+ g_free(buf); - } - else - { --- -2.7.4 - diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/xrdp/xrdp/0001-Fix-sesman.ini-and-xrdp.ini.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/xrdp/xrdp/0001-Fix-sesman.ini-and-xrdp.ini.patch deleted file mode 100644 index deaadde8..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/xrdp/xrdp/0001-Fix-sesman.ini-and-xrdp.ini.patch +++ /dev/null @@ -1,75 +0,0 @@ -From a9c460f158d68c1b3de6a31ce853de5379977695 Mon Sep 17 00:00:00 2001 -From: Lei Maohui -Date: Thu, 30 Nov 2017 11:10:04 +0900 -Subject: [PATCH] Fix sesman.ini and xrdp.ini - -Signed-off-by: Lei Maohui ---- - sesman/sesman.ini | 20 ++++++-------------- - xrdp/xrdp.ini | 10 ---------- - 2 files changed, 6 insertions(+), 24 deletions(-) - -diff --git a/sesman/sesman.ini b/sesman/sesman.ini -index 8225ee4..c09189e 100644 ---- a/sesman/sesman.ini -+++ b/sesman/sesman.ini -@@ -54,12 +54,14 @@ LogLevel=DEBUG - EnableSyslog=1 - SyslogLevel=DEBUG - --[X11rdp] --param=X11rdp --param=-bs -+[Xorg] -+param=Xorg -+param=-config -+param=xrdp/xorg.conf -+param=-noreset - param=-nolisten - param=tcp --param=-uds -+ - - [Xvnc] - param=Xvnc -@@ -70,16 +72,6 @@ param=-localhost - param=-dpi - param=96 - --[Xorg] --param=Xorg --param=-config --param=xrdp/xorg.conf --param=-noreset --param=-nolisten --param=tcp --param=-logfile --param=.xorgxrdp.%s.log -- - [Chansrv] - ; drive redirection, defaults to xrdp_client if not set - FuseMountName=thinclient_drives -diff --git a/xrdp/xrdp.ini b/xrdp/xrdp.ini -index cb6d7c3..9f63a69 100644 ---- a/xrdp/xrdp.ini -+++ b/xrdp/xrdp.ini -@@ -157,16 +157,6 @@ ip=127.0.0.1 - port=-1 - code=20 - --[X11rdp] --name=X11rdp --lib=libxup.so --username=ask --password=ask --ip=127.0.0.1 --port=-1 --xserverbpp=24 --code=10 -- - [Xvnc] - name=Xvnc - lib=libvnc.so --- -1.8.4.2 - diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/xrdp/xrdp_0.9.11.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/xrdp/xrdp_0.9.11.bb new file mode 100644 index 00000000..deda0fd1 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/xrdp/xrdp_0.9.11.bb @@ -0,0 +1,97 @@ +SUMMARY = "An open source remote desktop protocol(rdp) server." + +LICENSE = "Apache-2.0" +LIC_FILES_CHKSUM = "file://COPYING;md5=72cfbe4e7bd33a0a1de9630c91195c21 \ +" + +inherit features_check autotools pkgconfig useradd systemd + +DEPENDS = "openssl virtual/libx11 libxfixes libxrandr libpam nasm-native" + +REQUIRED_DISTRO_FEATURES = "x11 pam" + +SRC_URI = "git://github.com/neutrinolabs/xrdp.git \ + file://xrdp.sysconfig \ + file://0001-Added-req_distinguished_name-in-etc-xrdp-openssl.con.patch \ + file://0001-Fix-the-compile-error.patch \ + " + +SRCREV = "1e4b03eb3c9aa7173de251a328c93c073dcc0fca" + +PV = "0.9.11" + +S = "${WORKDIR}/git" + +PACKAGECONFIG ??= "" +PACKAGECONFIG[fuse] = " --enable-fuse, --disable-fuse, fuse" + +USERADD_PACKAGES = "${PN}" +GROUPADD_PARAM_${PN} = "--system xrdp" +USERADD_PARAM_${PN} = "--system --home /var/run/xrdp -g xrdp \ + --no-create-home --shell /bin/false xrdp" + +FILES_${PN} += "${datadir}/dbus-1/services/*.service \ + ${datadir}/dbus-1/accessibility-services/*.service " + +FILES_${PN}-dev += "${libdir}/xrdp/libcommon.so \ + ${libdir}/xrdp/libxrdp.so \ + ${libdir}/xrdp/libscp.so \ + ${libdir}/xrdp/libxrdpapi.so " + +EXTRA_OECONF = "--enable-pam-config=suse" + +do_configure_prepend() { + cd ${S} + ./bootstrap + cd - +} + +do_compile_prepend() { + sed -i 's/(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am/(MAKE) $(AM_MAKEFLAGS) install-exec-am/g' ${S}/keygen/Makefile.in +} + + +do_install_append() { + install -d ${D}${sysconfdir} + install -d ${D}${sysconfdir}/xrdp + install -d ${D}${sysconfdir}/xrdp/pam.d + install -d ${D}${sysconfdir}/sysconfig/xrdp + + # deal with systemd unit files + install -d ${D}${systemd_unitdir}/system + install -m 0644 ${S}/instfiles/xrdp.service.in ${D}${systemd_unitdir}/system/xrdp.service + install -m 0644 ${S}/instfiles/xrdp-sesman.service.in ${D}${systemd_unitdir}/system/xrdp-sesman.service + sed -i -e 's,@localstatedir@,${localstatedir},g' ${D}${systemd_unitdir}/system/xrdp.service ${D}${systemd_unitdir}/system/xrdp-sesman.service + sed -i -e 's,@sysconfdir@,${sysconfdir},g' ${D}${systemd_unitdir}/system/xrdp.service ${D}${systemd_unitdir}/system/xrdp-sesman.service + sed -i -e 's,@sbindir@,${sbindir},g' ${D}${systemd_unitdir}/system/xrdp.service ${D}${systemd_unitdir}/system/xrdp-sesman.service + + install -m 0644 ${S}/instfiles/*.ini ${D}${sysconfdir}/xrdp/ + install -m 0644 ${S}/sesman/sesman.ini.in ${D}${sysconfdir}/xrdp/ + install -m 0644 ${S}/sesman/startwm.sh ${D}${sysconfdir}/xrdp/ + install -m 0644 ${S}/xrdp/xrdp.ini.in ${D}${sysconfdir}/xrdp/ + install -m 0644 ${S}/xrdp/xrdp_keyboard.ini ${D}${sysconfdir}/xrdp/ + install -m 0644 ${S}/instfiles/xrdp.sh ${D}${sysconfdir}/xrdp/ + install -m 0644 ${S}/keygen/openssl.conf ${D}${sysconfdir}/xrdp/ + install -m 0644 ${WORKDIR}/xrdp.sysconfig ${D}${sysconfdir}/sysconfig/xrdp/ + chown xrdp:xrdp ${D}${sysconfdir}/xrdp +} + +SYSTEMD_SERVICE_${PN} = "xrdp.service xrdp-sesman.service" + +pkg_postinst_${PN}() { + if test -z "$D" + then + if test -x ${bindir}/xrdp-keygen + then + ${bindir}/xrdp-keygen xrdp ${sysconfdir}/xrdp/rsakeys.ini >/dev/null + fi + if test ! -s ${sysconfdir}/xrdp/cert.pem + then + openssl req -x509 -newkey rsa:2048 -sha256 -nodes -days 3652 \ + -keyout ${sysconfdir}/xrdp/key.pem \ + -out ${sysconfdir}/xrdp/cert.pem \ + -config ${sysconfdir}/xrdp/openssl.conf >/dev/null 2>&1 + chmod 400 ${sysconfdir}/xrdp/key.pem + fi + fi +} diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/xrdp/xrdp_0.9.4.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/xrdp/xrdp_0.9.4.bb deleted file mode 100644 index 3ef7c985..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/xrdp/xrdp_0.9.4.bb +++ /dev/null @@ -1,99 +0,0 @@ -SUMMARY = "An open source remote desktop protocol(rdp) server." - -LICENSE = "Apache-2.0" -LIC_FILES_CHKSUM = "file://COPYING;md5=72cfbe4e7bd33a0a1de9630c91195c21 \ -" - -inherit distro_features_check autotools pkgconfig useradd systemd - -DEPENDS = "openssl virtual/libx11 libxfixes libxrandr libpam nasm-native" - -REQUIRED_DISTRO_FEATURES = "x11 pam" - -SRC_URI = "git://github.com/neutrinolabs/xrdp.git \ - file://xrdp.sysconfig \ - file://0001-Fix-sesman.ini-and-xrdp.ini.patch \ - file://0001-Added-req_distinguished_name-in-etc-xrdp-openssl.con.patch \ - file://0001-Fix-the-compile-error.patch \ - file://0001-Fix-of-CVE-2017-16927.patch \ - " - -SRCREV = "c295dd61b882e8b56677cf12791f43634f9190b5" - -PV = "0.9.4+git${SRCPV}" - -S = "${WORKDIR}/git" - -PACKAGECONFIG ??= "" -PACKAGECONFIG[fuse] = " --enable-fuse, --disable-fuse, fuse" - -USERADD_PACKAGES = "${PN}" -GROUPADD_PARAM_${PN} = "--system xrdp" -USERADD_PARAM_${PN} = "--system --home /var/run/xrdp -g xrdp \ - --no-create-home --shell /bin/false xrdp" - -FILES_${PN} += "${datadir}/dbus-1/services/*.service \ - ${datadir}/dbus-1/accessibility-services/*.service " - -FILES_${PN}-dev += "${libdir}/xrdp/libcommon.so \ - ${libdir}/xrdp/libxrdp.so \ - ${libdir}/xrdp/libscp.so \ - ${libdir}/xrdp/libxrdpapi.so " - -EXTRA_OECONF = "--enable-pam-config=suse" - -do_configure_prepend() { - cd ${S} - ./bootstrap - cd - -} - -do_compile_prepend() { - sed -i 's/(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am/(MAKE) $(AM_MAKEFLAGS) install-exec-am/g' ${S}/keygen/Makefile.in -} - - -do_install_append() { - install -d ${D}${sysconfdir} - install -d ${D}${sysconfdir}/xrdp - install -d ${D}${sysconfdir}/xrdp/pam.d - install -d ${D}${sysconfdir}/sysconfig/xrdp - - # deal with systemd unit files - install -d ${D}${systemd_unitdir}/system - install -m 0644 ${S}/instfiles/xrdp.service.in ${D}${systemd_unitdir}/system/xrdp.service - install -m 0644 ${S}/instfiles/xrdp-sesman.service.in ${D}${systemd_unitdir}/system/xrdp-sesman.service - sed -i -e 's,@localstatedir@,${localstatedir},g' ${D}${systemd_unitdir}/system/xrdp.service ${D}${systemd_unitdir}/system/xrdp-sesman.service - sed -i -e 's,@sysconfdir@,${sysconfdir},g' ${D}${systemd_unitdir}/system/xrdp.service ${D}${systemd_unitdir}/system/xrdp-sesman.service - sed -i -e 's,@sbindir@,${sbindir},g' ${D}${systemd_unitdir}/system/xrdp.service ${D}${systemd_unitdir}/system/xrdp-sesman.service - - install -m 0644 ${S}/instfiles/*.ini ${D}${sysconfdir}/xrdp/ - install -m 0644 ${S}/sesman/sesman.ini ${D}${sysconfdir}/xrdp/ - install -m 0644 ${S}/sesman/startwm.sh ${D}${sysconfdir}/xrdp/ - install -m 0644 ${S}/xrdp/xrdp.ini ${D}${sysconfdir}/xrdp/ - install -m 0644 ${S}/xrdp/xrdp_keyboard.ini ${D}${sysconfdir}/xrdp/ - install -m 0644 ${S}/instfiles/xrdp.sh ${D}${sysconfdir}/xrdp/ - install -m 0644 ${S}/keygen/openssl.conf ${D}${sysconfdir}/xrdp/ - install -m 0644 ${WORKDIR}/xrdp.sysconfig ${D}${sysconfdir}/sysconfig/xrdp/ - chown xrdp:xrdp ${D}${sysconfdir}/xrdp -} - -SYSTEMD_SERVICE_${PN} = "xrdp.service xrdp-sesman.service" - -pkg_postinst_${PN}() { - if test -z "$D" - then - if test -x ${bindir}/xrdp-keygen - then - ${bindir}/xrdp-keygen xrdp ${sysconfdir}/xrdp/rsakeys.ini >/dev/null - fi - if test ! -s ${sysconfdir}/xrdp/cert.pem - then - openssl req -x509 -newkey rsa:2048 -sha256 -nodes -days 3652 \ - -keyout ${sysconfdir}/xrdp/key.pem \ - -out ${sysconfdir}/xrdp/cert.pem \ - -config ${sysconfdir}/xrdp/openssl.conf >/dev/null 2>&1 - chmod 400 ${sysconfdir}/xrdp/key.pem - fi - fi -} diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/xserver-xorg-cvt/xserver-xorg-cvt-native_1.20.5.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/xserver-xorg-cvt/xserver-xorg-cvt-native_1.20.5.bb new file mode 100644 index 00000000..1d75d52d --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/xserver-xorg-cvt/xserver-xorg-cvt-native_1.20.5.bb @@ -0,0 +1,41 @@ +SUMMARY = "X.Org X cvt" +HOMEPAGE = "https://linux.die.net/man/1/cvt" +LICENSE = "MIT-X" +LIC_FILES_CHKSUM = "file://COPYING;md5=5df87950af51ac2c5822094553ea1880" + +DEPENDS += "pixman-native xorgproto-native libxrandr-native" + +XORG_PN = "xorg-server" + +SRC_URI = "${XORG_MIRROR}/individual/xserver/${XORG_PN}-${PV}.tar.bz2" +SRC_URI[md5sum] = "c9fc7e21e11286dbedd22c00df652130" +SRC_URI[sha256sum] = "a81d8243f37e75a03d4f8c55f96d0bc25802be6ec45c3bfa5cb614c6d01bac9d" + +S = "${WORKDIR}/${XORG_PN}-${PV}" +B = "${WORKDIR}/build" + +inherit native pkgconfig + +do_configure[noexec] = "1" + +do_compile() { + cd ${S} + for header in `find -name '*.h'`; do + path=`dirname $header` + if ! echo "$incpaths" | grep -q "$path" ; then + incpaths="$incpaths -I$path" + fi + done + CFLAGS="${CFLAGS} -DXORG_VERSION_CURRENT=1 $incpaths `pkg-config --cflags pixman-1`" + LDFLAGS="${LDFLAGS} -lm `pkg-config --libs pixman-1`" + ${CC} $CFLAGS -o ${B}/cvt \ + ${S}/hw/xfree86/utils/cvt/cvt.c \ + ${S}/hw/xfree86/modes/xf86cvt.c \ + ${S}/os/xprintf.c \ + $LDFLAGS +} + +do_install() { + install -d ${D}${bindir} + install -m 755 ${B}/cvt ${D}${bindir} +} diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/zbar/zbar/0001-make-relies-GNU-extentions.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/zbar/zbar/0001-make-relies-GNU-extentions.patch index 04239bac..c93af329 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/zbar/zbar/0001-make-relies-GNU-extentions.patch +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/zbar/zbar/0001-make-relies-GNU-extentions.patch @@ -14,8 +14,6 @@ Signed-off-by: Khem Raj configure.ac | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) -diff --git a/configure.ac b/configure.ac -index 56d3dd0..9f85fd7 100644 --- a/configure.ac +++ b/configure.ac @@ -3,7 +3,7 @@ AC_PREREQ([2.61]) @@ -23,10 +21,16 @@ index 56d3dd0..9f85fd7 100644 AC_CONFIG_AUX_DIR(config) AC_CONFIG_MACRO_DIR(config) -AM_INIT_AUTOMAKE([1.10 -Wall -Werror foreign subdir-objects std-options dist-bzip2]) -+AM_INIT_AUTOMAKE([1.10 -Wall -Werror -Wno-portability foreign subdir-objects std-options dist-bzip2]) ++AM_INIT_AUTOMAKE([1.10 -Wall -Wno-error foreign subdir-objects std-options dist-bzip2]) AC_CONFIG_HEADERS([include/config.h]) AC_CONFIG_SRCDIR(zbar/scanner.c) LT_PREREQ([2.2]) --- -2.10.2 - +@@ -47,7 +47,7 @@ AC_DEFINE_UNQUOTED([LIB_VERSION_REVISION + [Library revision]) + + AM_CPPFLAGS="-I$srcdir/include" +-AM_CFLAGS="-Wall -Wno-parentheses -Werror" ++AM_CFLAGS="-Wall -Wno-parentheses" + AM_CXXFLAGS="$AM_CFLAGS" + AC_SUBST([AM_CPPFLAGS]) + AC_SUBST([AM_CFLAGS]) diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/zbar/zbar/0001-undefine-__va_arg_pack.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/zbar/zbar/0001-undefine-__va_arg_pack.patch deleted file mode 100644 index f7d8ba1e..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/zbar/zbar/0001-undefine-__va_arg_pack.patch +++ /dev/null @@ -1,51 +0,0 @@ -From f842872244219d9881fbec77054702412b1e16f8 Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Fri, 2 Dec 2016 16:41:27 -0800 -Subject: [PATCH] undefine __va_arg_pack - -dprintf() is also a libc function. This fixes -the compile errors - -/usr/include/bits/stdio2.h:140:1: error: expected identifier or '(' before '{' token -| { - -Signed-off-by: Khem Raj ---- - zbar/debug.h | 10 +++++----- - 1 file changed, 5 insertions(+), 5 deletions(-) - -diff --git a/zbar/debug.h b/zbar/debug.h -index 482ca8d..68948f6 100644 ---- a/zbar/debug.h -+++ b/zbar/debug.h -@@ -23,6 +23,7 @@ - - /* varargs variations on compile time debug spew */ - -+#undef __va_arg_pack - #ifndef DEBUG_LEVEL - - # ifdef __GNUC__ -@@ -36,15 +37,14 @@ - #else - - # include -- - # ifdef __GNUC__ --# define dprintf(level, args...) \ -+# define dprintf(level, format, args...) \ - if((level) <= DEBUG_LEVEL) \ -- fprintf(stderr, args) -+ fprintf(stderr, format, args) - # else --# define dprintf(level, ...) \ -+# define dprintf(level, format, ...) \ - if((level) <= DEBUG_LEVEL) \ -- fprintf(stderr, __VA_ARGS__) -+ fprintf(stderr, format, __VA_ARGS__) - # endif - - #endif /* DEBUG_LEVEL */ --- -2.10.2 - diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/zbar/zbar_0.10.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/zbar/zbar_0.10.bb deleted file mode 100644 index ebd1f7a1..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/zbar/zbar_0.10.bb +++ /dev/null @@ -1,28 +0,0 @@ -DESRIPTION = "2D barcode scanner toolkit." -SECTION = "graphics" -LICENSE = "LGPL-2.1" - -DEPENDS = "pkgconfig intltool-native libpng jpeg" - -LIC_FILES_CHKSUM = "file://COPYING;md5=42bafded1b380c6fefbeb6c5cd5448d9" - -SRC_URI = "${SOURCEFORGE_MIRROR}/${BPN}/${BP}.tar.bz2 \ - file://0001-undefine-__va_arg_pack.patch \ - file://0001-make-relies-GNU-extentions.patch \ -" - -SRC_URI[md5sum] = "0fd61eb590ac1bab62a77913c8b086a5" -SRC_URI[sha256sum] = "234efb39dbbe5cef4189cc76f37afbe3cfcfb45ae52493bfe8e191318bdbadc6" - -inherit autotools pkgconfig - -PACKAGECONFIG = "${@bb.utils.filter('DISTRO_FEATURES', 'x11', d)}" - -PACKAGECONFIG[x11] = "--with-x,-without-x,libxcb libx11 libsm libxau libxext libxv libice libxdmcp" - -EXTRA_OECONF = " --without-imagemagick --without-qt --without-python --disable-video --without-gtk" - -do_install_append() { - #remove usr/bin if empty - rmdir ${D}${bindir} -} diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/zbar/zbar_git.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/zbar/zbar_git.bb new file mode 100644 index 00000000..935e09cd --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/zbar/zbar_git.bb @@ -0,0 +1,31 @@ +DESRIPTION = "2D barcode scanner toolkit." +SECTION = "graphics" +LICENSE = "LGPL-2.1" + +DEPENDS = "pkgconfig intltool-native libpng jpeg" + +LIC_FILES_CHKSUM = "file://COPYING;md5=4015840237ca7f0175cd626f78714ca8" + +PV = "0.10+git${SRCPV}" + +# iPhoneSDK-1.3.1 tag +SRCREV = "67003d2a985b5f9627bee2d8e3e0b26d0c474b57" +SRC_URI = "git://github.com/ZBar/Zbar \ + file://0001-make-relies-GNU-extentions.patch \ +" +S = "${WORKDIR}/git" + +inherit autotools pkgconfig + +PACKAGECONFIG = "${@bb.utils.filter('DISTRO_FEATURES', 'x11', d)}" + +PACKAGECONFIG[x11] = "--with-x,-without-x,libxcb libx11 libsm libxau libxext libxv libice libxdmcp" + +EXTRA_OECONF = "--without-imagemagick --without-qt --without-python --disable-video --without-gtk" + +CPPFLAGS += "-Wno-error" + +do_install_append() { + #remove usr/bin if empty + rmdir ${D}${bindir} +} diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/zile/zile_2.4.14.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/zile/zile_2.4.14.bb index 515cf413..3b846c15 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/zile/zile_2.4.14.bb +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-support/zile/zile_2.4.14.bb @@ -5,7 +5,7 @@ DEPENDS = "ncurses bdwgc" LICENSE = "GPLv3" LIC_FILES_CHKSUM = "file://COPYING;md5=1ebbd3e34237af26da5dc08a4e440464" -SRC_URI = "http://ftp.gnu.org/gnu/zile/${BP}.tar.gz \ +SRC_URI = "${GNU_MIRROR}/zile/${BP}.tar.gz \ file://remove-help2man.patch \ " diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-test/bats/bats_1.1.0.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-test/bats/bats_1.1.0.bb new file mode 100644 index 00000000..a8179744 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-test/bats/bats_1.1.0.bb @@ -0,0 +1,21 @@ +SUMMARY = "Bash Automated Testing System" +DESCRIPTION = "Bats is a TAP-compliant testing framework for Bash. It \ +provides a simple way to verify that the UNIX programs you write behave as expected." +AUTHOR = "Sam Stephenson & bats-core organization" +HOMEPAGE = "https://github.com/bats-core/bats-core" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://LICENSE.md;md5=2970203aedf9e829edb96a137a4fe81b" + +SRC_URI = "git://github.com/bats-core/bats-core.git \ + " +# v1.1.0 +SRCREV = "c706d1470dd1376687776bbe985ac22d09780327" + +S = "${WORKDIR}/git" + +do_install() { + # Just a bunch of bash scripts to install + ${S}/install.sh ${D}${prefix} +} + +RDEPENDS_bats = "bash" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-test/catch2/catch2_2.7.2.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-test/catch2/catch2_2.7.2.bb deleted file mode 100644 index b5c85732..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-test/catch2/catch2_2.7.2.bb +++ /dev/null @@ -1,24 +0,0 @@ -DESCRIPTION = "A modern, C++-native, header-only, test framework for unit-tests, \ -TDD and BDD - using C++11, C++14, C++17 and later." -AUTHOR = "Phil Nash, Martin Horenovsky and others" -HOMEPAGE = "https://github.com/catchorg/Catch2" -LICENSE = "BSL-1.0" -LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=e4224ccaecb14d942c71d31bef20d78c" - -SRC_URI = "git://github.com/catchorg/Catch2.git \ - " -# v2.7.2 -SRCREV = "7c37501b070c0e9ea9cdedbeac2059f0a6b0a8ab" - -S = "${WORKDIR}/git" - -inherit cmake python3native - -do_install_append() { - rm ${D}${datadir}/Catch2/lldbinit - rm ${D}${datadir}/Catch2/gdbinit - rmdir ${D}${datadir}/Catch2/ -} -# Header-only library -RDEPENDS_${PN}-dev = "" -RRECOMMENDS_${PN}-dbg = "${PN}-dev (= ${EXTENDPKGV})" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-test/catch2/catch2_2.9.2.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-test/catch2/catch2_2.9.2.bb new file mode 100644 index 00000000..57fc935f --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-test/catch2/catch2_2.9.2.bb @@ -0,0 +1,22 @@ +DESCRIPTION = "A modern, C++-native, header-only, test framework for unit-tests, \ +TDD and BDD - using C++11, C++14, C++17 and later." +AUTHOR = "Phil Nash, Martin Horenovsky and others" +HOMEPAGE = "https://github.com/catchorg/Catch2" +LICENSE = "BSL-1.0" +LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=e4224ccaecb14d942c71d31bef20d78c" + +SRC_URI = "git://github.com/catchorg/Catch2.git" +SRCREV = "2c869e17e4803d30b3d5ca5b0d76387b9db97fa5" + +S = "${WORKDIR}/git" + +inherit cmake python3native + +do_install_append() { + rm ${D}${datadir}/Catch2/lldbinit + rm ${D}${datadir}/Catch2/gdbinit + rmdir ${D}${datadir}/Catch2/ +} +# Header-only library +RDEPENDS_${PN}-dev = "" +RRECOMMENDS_${PN}-dbg = "${PN}-dev (= ${EXTENDPKGV})" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-test/cppunit/cppunit_1.14.0.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-test/cppunit/cppunit_1.14.0.bb deleted file mode 100644 index 04327862..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-test/cppunit/cppunit_1.14.0.bb +++ /dev/null @@ -1,14 +0,0 @@ -DESCRIPTION = "CppUnit is the C++ port of the famous JUnit framework for unit testing. Test output is in XML for automatic testing and GUI based for supervised tests. " -HOMEPAGE = "http://www.freedesktop.org/wiki/Software/cppunit" -LICENSE = "LGPL-2.1" -SECTION = "libs" -LIC_FILES_CHKSUM = "file://COPYING;md5=b0e9ef921ff780eb328bdcaeebec3269" - -SRC_URI = " \ - http://dev-www.libreoffice.org/src/cppunit-${PV}.tar.gz \ - file://0001-doc-Makefile.am-do-not-preserve-file-flags-when-copy.patch \ -" -SRC_URI[md5sum] = "7ad93022171710a541bfe4bfd8b4a381" -SRC_URI[sha256sum] = "3d569869d27b48860210c758c4f313082103a5e58219a7669b52bfd29d674780" - -inherit autotools diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-test/cppunit/cppunit_1.15.1.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-test/cppunit/cppunit_1.15.1.bb new file mode 100644 index 00000000..92db31e1 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-test/cppunit/cppunit_1.15.1.bb @@ -0,0 +1,14 @@ +DESCRIPTION = "CppUnit is the C++ port of the famous JUnit framework for unit testing. Test output is in XML for automatic testing and GUI based for supervised tests. " +HOMEPAGE = "http://www.freedesktop.org/wiki/Software/cppunit" +LICENSE = "LGPL-2.1" +SECTION = "libs" +LIC_FILES_CHKSUM = "file://COPYING;md5=b0e9ef921ff780eb328bdcaeebec3269" + +SRC_URI = " \ + http://dev-www.libreoffice.org/src/cppunit-${PV}.tar.gz \ + file://0001-doc-Makefile.am-do-not-preserve-file-flags-when-copy.patch \ +" +SRC_URI[md5sum] = "9dc669e6145cadd9674873e24943e6dd" +SRC_URI[sha256sum] = "89c5c6665337f56fd2db36bc3805a5619709d51fb136e51937072f63fcc717a7" + +inherit autotools diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-test/cunit/cunit_2.1-3.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-test/cunit/cunit_2.1-3.bb index c9d87e36..98f2cacf 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-test/cunit/cunit_2.1-3.bb +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-test/cunit/cunit_2.1-3.bb @@ -17,3 +17,5 @@ EXTRA_OECONF = "--enable-memtrace --enable-automated --enable-basic --enable-con FILES_${PN}-dev += "${datadir}/CUnit" FILES_${PN}-doc += "${docdir}" + +BBCLASSEXTEND = "native" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-test/evtest/evtest/0001-Fix-build-on-32bit-arches-with-64bit-time_t.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-test/evtest/evtest/0001-Fix-build-on-32bit-arches-with-64bit-time_t.patch new file mode 100644 index 00000000..706322d5 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-test/evtest/evtest/0001-Fix-build-on-32bit-arches-with-64bit-time_t.patch @@ -0,0 +1,41 @@ +From fa57c78c33d26084f85f1a6b4c29378631dc9395 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Sat, 30 Nov 2019 11:58:58 -0800 +Subject: [PATCH] Fix build on 32bit arches with 64bit time_t + +time element is deprecated on new input_event structure in kernel's +input.h [1] + +[1] https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit?id=152194fe9c3f + +Upstream-Status: Submitted [https://gitlab.freedesktop.org/libevdev/evtest/merge_requests/6] +Signed-off-by: Khem Raj +--- + evtest.c | 7 ++++++- + 1 file changed, 6 insertions(+), 1 deletion(-) + +diff --git a/evtest.c b/evtest.c +index 548c203..93063cd 100644 +--- a/evtest.c ++++ b/evtest.c +@@ -61,6 +61,11 @@ + #include + #include + ++#ifndef input_event_sec ++#define input_event_sec time.tv_sec ++#define input_event_usec time.tv_usec ++#endif ++ + #define BITS_PER_LONG (sizeof(long) * 8) + #define NBITS(x) ((((x)-1)/BITS_PER_LONG)+1) + #define OFF(x) ((x)%BITS_PER_LONG) +@@ -1140,7 +1145,7 @@ static int print_events(int fd) + type = ev[i].type; + code = ev[i].code; + +- printf("Event: time %ld.%06ld, ", ev[i].time.tv_sec, ev[i].time.tv_usec); ++ printf("Event: time %ld.%06ld, ", ev[i].input_event_sec, ev[i].input_event_sec); + + if (type == EV_SYN) { + if (code == SYN_MT_REPORT) diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-test/evtest/evtest/add_missing_limits_h_include.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-test/evtest/evtest/add_missing_limits_h_include.patch new file mode 100644 index 00000000..b2bf94fd --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-test/evtest/evtest/add_missing_limits_h_include.patch @@ -0,0 +1,37 @@ +From 5eb4ab1c139ea38ebe6bb4acba08b09ee7d77d3c Mon Sep 17 00:00:00 2001 +From: Baruch Siach +Date: Sun, 18 Aug 2019 10:01:06 +0300 +Subject: Add missing limits.h include +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Fixes build with musl libc that does not include limits.h indirectly via +other headers. + +evtest.c: In function ‘scan_devices’: +evtest.c:886:14: error: ‘PATH_MAX’ undeclared (first use in this function); did you mean INT8_MAX’? + char fname[PATH_MAX]; + ^~~~~~~~ + +Signed-off-by: Baruch Siach +Signed-off-by: Peter Hutterer +--- + evtest.c | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/evtest.c b/evtest.c +index 37d4f85..548c203 100644 +--- a/evtest.c ++++ b/evtest.c +@@ -56,6 +56,7 @@ + #include + #include + #include ++#include + #include + #include + #include +-- +cgit v1.1 + diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-test/evtest/evtest_1.34.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-test/evtest/evtest_1.34.bb new file mode 100644 index 00000000..a3a23c89 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-test/evtest/evtest_1.34.bb @@ -0,0 +1,18 @@ +SUMMARY = "Simple tool for input event debugging" +HOMEPAGE = "http://people.freedesktop.org/~whot/evtest/" +AUTHOR = "Vojtech Pavlik " +SECTION = "console/utils" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe" + +DEPENDS = "libxml2" + +SRCREV = "16e5104127a620686bdddc4a9ad62881134d6c69" +SRC_URI = "git://gitlab.freedesktop.org/libevdev/evtest.git;protocol=https \ + file://add_missing_limits_h_include.patch \ + file://0001-Fix-build-on-32bit-arches-with-64bit-time_t.patch \ + " + +S = "${WORKDIR}/git" + +inherit autotools pkgconfig diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-test/evtest/evtest_git.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-test/evtest/evtest_git.bb deleted file mode 100644 index fa0d6e2f..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-test/evtest/evtest_git.bb +++ /dev/null @@ -1,17 +0,0 @@ -SUMMARY = "Simple tool for input event debugging" -HOMEPAGE = "http://people.freedesktop.org/~whot/evtest/" -AUTHOR = "Vojtech Pavlik " -SECTION = "console/utils" -LICENSE = "GPLv2" -LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe" - -DEPENDS = "libxml2" - -SRCREV = "ab140a2dab1547f7deb5233be6d94a388cf08b26" -SRC_URI = "git://anongit.freedesktop.org/evtest;protocol=git" - -PV = "1.33+${SRCPV}" - -S = "${WORKDIR}/git" - -inherit autotools pkgconfig diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-test/fwts/fwts/0001-Remove-Werror-from-build.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-test/fwts/fwts/0001-Remove-Werror-from-build.patch index 611ccc8f..6795ba84 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-test/fwts/fwts/0001-Remove-Werror-from-build.patch +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-test/fwts/fwts/0001-Remove-Werror-from-build.patch @@ -12,33 +12,33 @@ Upstream-Status: Pending 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/Makefile.am b/src/Makefile.am -index 4daa9e8f..873f23eb 100644 +index 62c9ba8..435ec23 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -14,7 +14,7 @@ AM_CPPFLAGS = \ - `pkg-config --silence-errors --cflags json` \ - `pkg-config --silence-errors --cflags json-c` \ + `pkg-config --silence-errors --cflags json` \ + `pkg-config --silence-errors --cflags json-c` \ -pthread `pkg-config --cflags glib-2.0 gio-2.0` \ -- -Wall -Werror -Wextra -+ -Wall -Wextra +- -Wall -Werror -Wextra \ ++ -Wall -Wextra \ + -Wno-address-of-packed-member bin_PROGRAMS = fwts - diff --git a/src/lib/src/Makefile.am b/src/lib/src/Makefile.am -index fa232451..082403a2 100644 +index 6bcf9f8..de89bf1 100644 --- a/src/lib/src/Makefile.am +++ b/src/lib/src/Makefile.am @@ -24,7 +24,7 @@ AM_CPPFLAGS = \ `pkg-config --silence-errors --cflags json-c` \ `pkg-config --cflags glib-2.0 gio-2.0` \ -DDATAROOTDIR=\"$(datarootdir)\" \ -- -Wall -Werror -Wextra -+ -Wall -Wextra +- -Wall -Werror -Wextra \ ++ -Wall -Wextra \ + -Wno-address-of-packed-member pkglib_LTLIBRARIES = libfwts.la - diff --git a/src/utilities/Makefile.am b/src/utilities/Makefile.am -index aa37de55..4d5297cc 100644 +index 21f969e..82009a0 100644 --- a/src/utilities/Makefile.am +++ b/src/utilities/Makefile.am @@ -16,7 +16,7 @@ diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-test/fwts/fwts/0001-ignore-constant-logical-operand-warning-with-clang.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-test/fwts/fwts/0001-ignore-constant-logical-operand-warning-with-clang.patch deleted file mode 100644 index ae3665b4..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-test/fwts/fwts/0001-ignore-constant-logical-operand-warning-with-clang.patch +++ /dev/null @@ -1,84 +0,0 @@ -From 5bd05ad8569880985ddf6d4c06ed927d388c297f Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Wed, 19 Oct 2016 01:57:16 +0000 -Subject: [PATCH] ignore constant-logical-operand warning with clang - -Signed-off-by: Khem Raj - ---- - src/dmi/dmicheck/dmicheck.c | 3 +++ - src/lib/src/fwts_acpi_tables.c | 5 +++++ - src/uefi/uefirtauthvar/uefirtauthvar.c | 5 +++++ - 3 files changed, 13 insertions(+) - -diff --git a/src/dmi/dmicheck/dmicheck.c b/src/dmi/dmicheck/dmicheck.c -index 3cca9db9..60fb758f 100644 ---- a/src/dmi/dmicheck/dmicheck.c -+++ b/src/dmi/dmicheck/dmicheck.c -@@ -211,6 +211,8 @@ static const char *uuid_patterns[] = { - "0A0A0A0A-0A0A-0A0A-0A0A-0A0A0A0A0A0A", - NULL, - }; -+#pragma clang diagnostic push -+#pragma clang diagnostic ignored "-Wunneeded-internal-declaration" - - static const fwts_chassis_type_map fwts_dmi_chassis_type[] = { - { "Invalid", FWTS_SMBIOS_CHASSIS_INVALID }, -@@ -251,6 +253,7 @@ static const fwts_chassis_type_map fwts_dmi_chassis_type[] = { - { "Mini PC", FWTS_SMBIOS_CHASSIS_MINI_PC }, - { "Stick PC", FWTS_SMBIOS_CHASSIS_STICK_PC }, - }; -+#pragma clang diagnostic pop - - /* Remapping table from buggy version numbers to correct values */ - static const fwts_dmi_version dmi_versions[] = { -diff --git a/src/lib/src/fwts_acpi_tables.c b/src/lib/src/fwts_acpi_tables.c -index c7ba59be..bdd224aa 100644 ---- a/src/lib/src/fwts_acpi_tables.c -+++ b/src/lib/src/fwts_acpi_tables.c -@@ -393,10 +393,14 @@ static int fwts_acpi_handle_fadt( - /* Determine FACS addr and load it. - * Will ignore the missing FACS in the hardware-reduced mode. - */ -+#pragma clang diagnostic push -+#pragma clang diagnostic ignored "-Waddress-of-packed-member" -+ - result = fwts_acpi_handle_fadt_tables(fw, fadt, - "FACS", "FIRMWARE_CTRL", "X_FIRMWARE_CTRL", - &fadt->firmware_control, &fadt->x_firmware_ctrl, - provenance); -+ - if (result != FWTS_OK) { - if ((result == FWTS_NULL_POINTER) && - fwts_acpi_is_reduced_hardware(fadt)) { -@@ -415,6 +419,7 @@ static int fwts_acpi_handle_fadt( - return FWTS_ERROR; - } - return FWTS_OK; -+#pragma clang diagnostic pop - } - - /* -diff --git a/src/uefi/uefirtauthvar/uefirtauthvar.c b/src/uefi/uefirtauthvar/uefirtauthvar.c -index c2031741..7a33d19d 100644 ---- a/src/uefi/uefirtauthvar/uefirtauthvar.c -+++ b/src/uefi/uefirtauthvar/uefirtauthvar.c -@@ -142,6 +142,9 @@ static int uefirtauthvar_deinit(fwts_framework *fw) - return FWTS_OK; - } - -+#pragma clang diagnostic push -+#pragma clang diagnostic ignored "-Wconstant-logical-operand" -+ - static int check_fw_support(fwts_framework *fw, uint64_t status) - { - if ((status == EFI_INVALID_PARAMETER) && -@@ -172,6 +175,8 @@ static int check_fw_support(fwts_framework *fw, uint64_t status) - return FWTS_OK; - } - -+#pragma clang diagnostic pop -+ - /* - * Set the created authenticated variable, AuthVarCreate, - * and checking the data size and data. diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-test/fwts/fwts_19.06.00.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-test/fwts/fwts_19.06.00.bb new file mode 100644 index 00000000..88a89fb0 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-test/fwts/fwts_19.06.00.bb @@ -0,0 +1,36 @@ +SUMMARY = "Firmware testsuite" +DESCRIPTION = "The tool fwts comprises of over fifty tests that are designed to exercise and test different aspects of a machine's firmware. Many of these tests need super user access to read BIOS data and ACPI tables, so the tool requires running with super user privileges (e.g. with sudo)." +HOMEPAGE = "https://wiki.ubuntu.com/Kernel/Reference/fwts" + +LICENSE = "GPLv2+" +LIC_FILES_CHKSUM = "file://src/main.c;beginline=1;endline=16;md5=31da590f3e9f3bd34dcdb9e4db568519" + +SRCREV = "b0ec7aa2ef743d113fd8c5e57c0ca3d5edd86f0e" +SRC_URI = "http://fwts.ubuntu.com/release/fwts-V19.06.00.tar.gz;subdir=${BPN}-${PV} \ + file://0001-Include-poll.h-instead-of-deprecated-sys-poll.h.patch \ + file://0002-Define-__SWORD_TYPE-if-not-defined-by-libc.patch \ + file://0003-Undefine-PAGE_SIZE.patch \ + file://0001-Add-correct-printf-qualifier-for-off_t.patch \ + file://0003-use-intptr_t-to-fix-pointer-to-int-cast-issues.patch \ + file://0001-Remove-Werror-from-build.patch \ + " +SRC_URI[md5sum] = "012f933329510cc5a71817ede681eee2" +SRC_URI[sha256sum] = "13aa991f12c69f48df368aae5e5d0fbc9136413b4bfe115421bc3216d919f8a2" + +COMPATIBLE_HOST = "(i.86|x86_64|aarch64|powerpc64).*-linux" + +DEPENDS = "libpcre json-c glib-2.0 dtc bison-native libbsd" +DEPENDS_append_libc-musl = " libexecinfo" + +inherit autotools bash-completion pkgconfig + +CFLAGS += "-I${STAGING_INCDIR}/json-c -Wno-error=unknown-pragmas" +LDFLAGS_append_libc-musl = " -lexecinfo" + +FILES_${PN} += "${libdir}/fwts/lib*${SOLIBS}" +FILES_${PN}-dev += "${libdir}/fwts/lib*${SOLIBSDEV} ${libdir}/fwts/lib*.la" +FILES_${PN}-staticdev += "${libdir}/fwts/lib*a" +FILES_${PN}-dbg += "${libdir}/fwts/.debug" + +TOOLCHAIN = "gcc" + diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-test/fwts/fwts_git.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-test/fwts/fwts_git.bb deleted file mode 100644 index d3fb644d..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-test/fwts/fwts_git.bb +++ /dev/null @@ -1,39 +0,0 @@ -SUMMARY = "Firmware testsuite" -DESCRIPTION = "The tool fwts comprises of over fifty tests that are designed to exercise and test different aspects of a machine's firmware. Many of these tests need super user access to read BIOS data and ACPI tables, so the tool requires running with super user privileges (e.g. with sudo)." -HOMEPAGE = "https://wiki.ubuntu.com/Kernel/Reference/fwts" - -LICENSE = "GPLv2+" -LIC_FILES_CHKSUM = "file://src/main.c;beginline=1;endline=16;md5=31da590f3e9f3bd34dcdb9e4db568519" - -PV = "18.05.00+git${SRCPV}" - -SRCREV = "b0ec7aa2ef743d113fd8c5e57c0ca3d5edd86f0e" -SRC_URI = "git://kernel.ubuntu.com/hwe/fwts.git \ - file://0001-ignore-constant-logical-operand-warning-with-clang.patch \ - file://0001-Include-poll.h-instead-of-deprecated-sys-poll.h.patch \ - file://0002-Define-__SWORD_TYPE-if-not-defined-by-libc.patch \ - file://0003-Undefine-PAGE_SIZE.patch \ - file://0001-Add-correct-printf-qualifier-for-off_t.patch \ - file://0003-use-intptr_t-to-fix-pointer-to-int-cast-issues.patch \ - file://0001-Remove-Werror-from-build.patch \ - " - -S = "${WORKDIR}/git" - -COMPATIBLE_HOST = "(i.86|x86_64|aarch64|powerpc64).*-linux" - -DEPENDS = "libpcre json-c glib-2.0 dtc bison-native" -DEPENDS_append_libc-musl = " libexecinfo" - -inherit autotools bash-completion pkgconfig - -CFLAGS += "-I${STAGING_INCDIR}/json-c -Wno-error=unknown-pragmas" -LDFLAGS_append_libc-musl = " -lexecinfo" - -FILES_${PN} += "${libdir}/fwts/lib*${SOLIBS}" -FILES_${PN}-dev += "${libdir}/fwts/lib*${SOLIBSDEV} ${libdir}/fwts/lib*.la" -FILES_${PN}-staticdev += "${libdir}/fwts/lib*a" -FILES_${PN}-dbg += "${libdir}/fwts/.debug" - -TOOLCHAIN = "gcc" - diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-test/googletest/googletest_git.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-test/googletest/googletest_git.bb new file mode 100644 index 00000000..354e7de3 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-test/googletest/googletest_git.bb @@ -0,0 +1,31 @@ +DESCRIPTION = "Google's framework for writing C++ tests" +HOMEPAGE = "https://github.com/google/googletest" +SECTION = "libs" +LICENSE = "BSD-3-Clause" +LIC_FILES_CHKSUM = "file://googlemock/LICENSE;md5=cbbd27594afd089daa160d3a16dd515a \ + file://googletest/LICENSE;md5=cbbd27594afd089daa160d3a16dd515a" + +PV = "1.10.0" + +PROVIDES += "gmock gtest" + +S = "${WORKDIR}/git" +SRCREV = "703bd9caab50b139428cea1aaff9974ebee5742e" +SRC_URI = "git://github.com/google/googletest.git" + +inherit cmake + +ALLOW_EMPTY_${PN} = "1" +ALLOW_EMPTY_${PN}-dbg = "1" + +RDEPENDS_${PN}-dev += "${PN}-staticdev" + +BBCLASSEXTEND = "native nativesdk" + +do_configure_prepend() { + # explicitly use python3 + # the scripts are already python3 compatible since https://github.com/google/googletest/commit/d404af0d987a9c38cafce82a7e26ec8468c88361 and other fixes like this + # but since this oe-core change http://git.openembedded.org/openembedded-core/commit/?id=5f8f16b17f66966ae91aeabc23e97de5ecd17447 + # there isn't python in HOSTTOOLS so "env python" fails + sed -i 's@^#!/usr/bin/env python$@#!/usr/bin/env python3@g' ${S}/googlemock/scripts/*py ${S}/googlemock/scripts/generator/*py ${S}/googlemock/scripts/generator/cpp/*py ${S}/googlemock/test/*py ${S}/googletest/scripts/*py ${S}/googletest/test/*py +} diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-test/gtest/gtest_1.8.1.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-test/gtest/gtest_1.8.1.bb deleted file mode 100644 index 23862c93..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-test/gtest/gtest_1.8.1.bb +++ /dev/null @@ -1,23 +0,0 @@ -DESCRIPTION = "Google's framework for writing C++ tests" -HOMEPAGE = "https://github.com/abseil/googletest" -SECTION = "libs" -LICENSE = "BSD-3-Clause" -LIC_FILES_CHKSUM = "file://googlemock/LICENSE;md5=cbbd27594afd089daa160d3a16dd515a \ - file://googletest/LICENSE;md5=cbbd27594afd089daa160d3a16dd515a" - -PROVIDES += "gmock" - -S = "${WORKDIR}/git" -SRCREV = "2fe3bd994b3189899d93f1d5a881e725e046fdc2" -SRC_URI = "\ - git://github.com/abseil/googletest.git;protocol=https; \ -" - -inherit cmake - -ALLOW_EMPTY_${PN} = "1" -ALLOW_EMPTY_${PN}-dbg = "1" - -RDEPENDS_${PN}-dev += "${PN}-staticdev" - -BBCLASSEXTEND = "native nativesdk" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-test/pm-qa/pm-qa_git.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-test/pm-qa/pm-qa_git.bb index 09290909..7e9971ea 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-test/pm-qa/pm-qa_git.bb +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-test/pm-qa/pm-qa_git.bb @@ -65,4 +65,4 @@ do_install () { RDEPENDS_${PN} +="bash" # http://errors.yoctoproject.org/Errors/Details/186956/ -EXCLUDE_FROM_WORLD_libc-musl = "1" +COMPATIBLE_HOST_libc-musl = 'null' diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-test/stress-ng/stress-ng/0001-Revert-Makefile-force-sync-after-build-in-case-reboo.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-test/stress-ng/stress-ng/0001-Revert-Makefile-force-sync-after-build-in-case-reboo.patch deleted file mode 100644 index 469791d8..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-test/stress-ng/stress-ng/0001-Revert-Makefile-force-sync-after-build-in-case-reboo.patch +++ /dev/null @@ -1,31 +0,0 @@ -From 7c97710bfc44d895b7111bef9c55866f00a3589c Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Mon, 13 Aug 2018 11:54:27 -0700 -Subject: [PATCH] Revert "Makefile: force sync after build in case reboot loses - executable" - -This reverts commit ae6322b1baea56a589207c96e358daae8edd0a8f. - -Not needed for cross-builds - -Upstream-Status: Inappropriate [Cross compile specific] -Signed-off-by: Khem Raj ---- - Makefile | 1 - - 1 file changed, 1 deletion(-) - -diff --git a/Makefile b/Makefile -index c0db72c0..5781dda6 100644 ---- a/Makefile -+++ b/Makefile -@@ -348,7 +348,6 @@ endif - stress-ng: $(OBJS) - @echo "LD $@" - @$(CC) $(CPPFLAGS) $(CFLAGS) $(OBJS) -lm $(LDFLAGS) -o $@ -- @sync - - makeconfig: - @if [ ! -s config ]; then \ --- -2.17.0 - diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-test/stress-ng/stress-ng/0001-Several-changes-to-fix-musl-build.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-test/stress-ng/stress-ng/0001-Several-changes-to-fix-musl-build.patch deleted file mode 100644 index c0b34490..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-test/stress-ng/stress-ng/0001-Several-changes-to-fix-musl-build.patch +++ /dev/null @@ -1,132 +0,0 @@ -From 9bcb4e170f01dbe0a9e7bf6b899c5d9b5283d4c6 Mon Sep 17 00:00:00 2001 -From: Randy MacLeod -Date: Sun, 11 Nov 2018 23:00:53 -0500 -Subject: [PATCH] Several changes to fix musl build -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Rebased patch for: - -stress-{context, stackmmap}.c: Set tests to non-implemented because uses -swapcontext, musl provide the definition but not the implementation due - to that functions are pre-POSIX and set to be deprecated. - stress-{resources, pty}.c: Doesn't include termio.h and remove stress - operations that uses struct termio, musl doesn't provide that struct. -stress-malloc.c: Check for definition of M_MMAP_THRESHOLD musl doesn't - ptovide that constant. -stress-madvise.c: Add static poision_count integer, definition of - MADV_SOFT_OFFLINE doesn't grauntee MADV_HWPOISON to be defined. -cache.c: Define GLOB_ONLYDIR not available on MUSL. - -Signed-off-by: Aníbal Limón -Signed-off-by: Tim Orling -Signed-off-by: Randy MacLeod - -Upstream-status: Pending ---- - cache.c | 4 ++++ - stress-madvise.c | 1 + - stress-pty.c | 18 ------------------ - stress-resources.c | 1 - - stress-stackmmap.c | 2 +- - 5 files changed, 6 insertions(+), 20 deletions(-) - -diff --git a/cache.c b/cache.c -index e8a0f791..4c7bb486 100644 ---- a/cache.c -+++ b/cache.c -@@ -28,6 +28,10 @@ typedef struct { - - #include - -+#ifndef GLOB_ONLYDIR -+#define GLOB_ONLYDIR 0x100 -+#endif -+ - #if defined(__linux__) - #define SYS_CPU_PREFIX "/sys/devices/system/cpu" - #define GLOB_PATTERN SYS_CPU_PREFIX "/cpu[0-9]*" -diff --git a/stress-madvise.c b/stress-madvise.c -index b2e3497f..77e43a91 100644 ---- a/stress-madvise.c -+++ b/stress-madvise.c -@@ -146,6 +146,7 @@ static int stress_random_advise(const args_t *args) - #if defined(MADV_SOFT_OFFLINE) - if (advise == MADV_SOFT_OFFLINE) { - static int soft_offline_count; -+ static int poison_count; - - /* ..and minimize number of soft offline pages */ - if ((soft_offline_count >= NUM_SOFT_OFFLINE_MAX) || -diff --git a/stress-pty.c b/stress-pty.c -index 4dd88ab9..c79a7021 100644 ---- a/stress-pty.c -+++ b/stress-pty.c -@@ -26,7 +26,6 @@ - - #if defined(__linux__) - --#include - #include - - typedef struct { -@@ -111,7 +110,6 @@ static int stress_pty(const args_t *args) - */ - for (i = 0; i < n; i++) { - struct termios ios; -- struct termio io; - struct winsize ws; - int arg; - -@@ -133,22 +131,6 @@ static int stress_pty(const args_t *args) - if (ioctl(ptys[i].slave, TCSETSF, &ios) < 0) - pr_fail_err("ioctl TCSETSF on slave pty"); - #endif --#if defined(TCGETA) -- if (ioctl(ptys[i].slave, TCGETA, &io) < 0) -- pr_fail_err("ioctl TCGETA on slave pty"); --#endif --#if defined(TCSETA) -- if (ioctl(ptys[i].slave, TCSETA, &io) < 0) -- pr_fail_err("ioctl TCSETA on slave pty"); --#endif --#if defined(TCSETAW) -- if (ioctl(ptys[i].slave, TCSETAW, &io) < 0) -- pr_fail_err("ioctl TCSETAW on slave pty"); --#endif --#if defined(TCSETAF) -- if (ioctl(ptys[i].slave, TCSETAF, &io) < 0) -- pr_fail_err("ioctl TCSETAF on slave pty"); --#endif - #if defined(TIOCGLCKTRMIOS) - if (ioctl(ptys[i].slave, TIOCGLCKTRMIOS, &ios) < 0) - pr_fail_err("ioctl TIOCGLCKTRMIOS on slave pty"); -diff --git a/stress-resources.c b/stress-resources.c -index f3dcfb38..86f9a5ba 100644 ---- a/stress-resources.c -+++ b/stress-resources.c -@@ -28,7 +28,6 @@ - #include - #endif - #if defined(__linux__) --#include - #include - #endif - #if defined(HAVE_LIB_PTHREAD) && defined(__linux__) -diff --git a/stress-stackmmap.c b/stress-stackmmap.c -index c2f4c31d..54308777 100644 ---- a/stress-stackmmap.c -+++ b/stress-stackmmap.c -@@ -24,7 +24,7 @@ - */ - #include "stress-ng.h" - --#if defined(__linux__) -+#if defined(__linux__) && False - - #include - --- -2.17.0 - diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-test/stress-ng/stress-ng_0.09.45.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-test/stress-ng/stress-ng_0.09.45.bb deleted file mode 100644 index 3e8f2d4f..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-test/stress-ng/stress-ng_0.09.45.bb +++ /dev/null @@ -1,26 +0,0 @@ -SUMMARY = "A tool to load and stress a computer system" -HOMEPAGE = "http://kernel.ubuntu.com/~cking/stress-ng/" -LICENSE = "GPLv2" -LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263" - -DEPENDS = "zlib libaio" - -SRC_URI = "http://kernel.ubuntu.com/~cking/tarballs/${BPN}/${BP}.tar.xz \ - file://0001-Revert-Makefile-force-sync-after-build-in-case-reboo.patch \ - " -SRC_URI_append_libc-musl = " \ - file://0001-Several-changes-to-fix-musl-build.patch \ - " - -SRC_URI[md5sum] = "b03744c2eb68bf7e9a300e78e397f348" -SRC_URI[sha256sum] = "0741e3004bf590bb7af3db979a46fe89bee7aaad6065cd1d87d0b7fa49046cb2" - -UPSTREAM_CHECK_URI ?= "http://kernel.ubuntu.com/~cking/tarballs/${BPN}/" -UPSTREAM_CHECK_REGEX ?= "(?P\d+(\.\d+)+)\.tar" - -CFLAGS += "-Wall -Wextra -DVERSION='"$(VERSION)"'" - -do_install_append() { - install -d ${D}${bindir} - install -m 755 ${S}/stress-ng ${D}${bindir}/stress-ng -} diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-test/testfloat/testfloat_3a.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-test/testfloat/testfloat_3a.bb index 28e96776..ace376ef 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-test/testfloat/testfloat_3a.bb +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-test/testfloat/testfloat_3a.bb @@ -4,7 +4,7 @@ DESCRIPTION = "Berkeley TestFloat is a small collection of programs for \ HOMEPAGE = "http://www.jhauser.us/arithmetic/TestFloat.html" -LICENSE = "BSD" +LICENSE = "BSD-3-Clause" LIC_FILES_CHKSUM = "file://TestFloat-${PV}/COPYING.txt;md5=e45c175a323b5727777fb6bd4b26eafc" SRC_URI = "\ diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-perl/conf/layer.conf b/Contrib-Inspur/openbmc/meta-openembedded/meta-perl/conf/layer.conf index 6e600aa6..2c730e4c 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-perl/conf/layer.conf +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-perl/conf/layer.conf @@ -15,4 +15,4 @@ LAYERVERSION_perl-layer = "1" LAYERDEPENDS_perl-layer = "core openembedded-layer" -LAYERSERIES_COMPAT_perl-layer = "thud warrior" +LAYERSERIES_COMPAT_perl-layer = "thud warrior zeus" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-perl/recipes-extended/mime-construct/mime-construct_1.11.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-perl/recipes-extended/mime-construct/mime-construct_1.11.bb index 501f3bf1..2516fbfc 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-perl/recipes-extended/mime-construct/mime-construct_1.11.bb +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-perl/recipes-extended/mime-construct/mime-construct_1.11.bb @@ -17,7 +17,7 @@ SRC_URI[sha256sum] = "4cd7bb61b51d41192d1498c1051aa6a4ccd75aeb09b71d2ec706a7084a inherit cpan -RDEPENDS_${PN} = "libmime-types-perl libproc-waitstat-perl msmtp \ +RDEPENDS_${PN} += "libmime-types-perl libproc-waitstat-perl msmtp \ perl-module-filehandle perl-module-mime-base64 perl-module-mime-quotedprint perl-module-posix \ " diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-perl/recipes-perl/adduser/adduser_3.118.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-perl/recipes-perl/adduser/adduser_3.118.bb index e695c589..80cf1428 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-perl/recipes-perl/adduser/adduser_3.118.bb +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-perl/recipes-perl/adduser/adduser_3.118.bb @@ -8,6 +8,7 @@ LIC_FILES_CHKSUM = "file://debian/copyright;md5=caed49ab166f22ef31bf1127f558d0ef SRC_URI = "https://launchpad.net/debian/+archive/primary/+sourcefiles/adduser/${PV}/${BPN}_${PV}.tar.xz \ file://adduser-add-M-option-for-useradd.patch \ + file://0001-adduser-set-default-shell-with-sbin-nologin.patch \ " SRC_URI[md5sum] = "44ba2475ebdaafc9613236bdda321c97" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-perl/recipes-perl/adduser/files/0001-adduser-set-default-shell-with-sbin-nologin.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-perl/recipes-perl/adduser/files/0001-adduser-set-default-shell-with-sbin-nologin.patch new file mode 100644 index 00000000..91cc6bcb --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-perl/recipes-perl/adduser/files/0001-adduser-set-default-shell-with-sbin-nologin.patch @@ -0,0 +1,34 @@ +From 75e949bf80bf5e3e5bd8f81b258095e662b705c4 Mon Sep 17 00:00:00 2001 +From: Kai Kang +Date: Thu, 9 Jan 2020 13:51:28 +0800 +Subject: [PATCH] adduser: set default shell with /sbin/nologin + +Shell nologin whether provided by shadow or util-linux is installed to +/sbin/nologin in oe-core. But the default shell of adduser is +/usr/sbin/nologin and will fail to create a new user. + +Set the default shell with /sbin/nologin to fix the issue. + +Upstream-Status: Inappropriate [OE specific] + +Signed-off-by: Kai Kang +--- + adduser | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/adduser b/adduser +index 0f24cc9..ab554d0 100755 +--- a/adduser ++++ b/adduser +@@ -431,7 +431,7 @@ if ($action eq "addsysuser") { + printf gtx("Adding new user `%s' (UID %d) with group `%s' ...\n"),$new_name,$new_uid,$ingroup_name + if $verbose; + $home_dir = $special_home || &homedir($new_name, $ingroup_name); +- $shell = $special_shell || '/usr/sbin/nologin'; ++ $shell = $special_shell || '/sbin/nologin'; + $undouser = $new_name; + my $useradd = &which('useradd'); + &systemcall($useradd, '-d', $home_dir, '-g', $ingroup_name, '-s', +-- +2.17.1 + diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-perl/recipes-perl/libauthen/libauthen-radius-perl_0.22.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-perl/recipes-perl/libauthen/libauthen-radius-perl_0.22.bb index fb18fe2a..7118dc00 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-perl/recipes-perl/libauthen/libauthen-radius-perl_0.22.bb +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-perl/recipes-perl/libauthen/libauthen-radius-perl_0.22.bb @@ -34,6 +34,14 @@ RDEPENDS_${PN} += "\ perl-module-io-select \ perl-module-io-socket \ " -RDEPENDS_${PN}-ptest += "freeradius" +RDEPENDS_${PN}-ptest += " \ + ${@bb.utils.contains('PTEST_ENABLED', '1', 'freeradius', '', d)} \ +" BBCLASSEXTEND = "native" + +python() { + if bb.utils.contains('PTEST_ENABLED', '1', 'True', 'False', d) and \ + 'networking-layer' not in d.getVar('BBFILE_COLLECTIONS').split(): + raise bb.parse.SkipRecipe('ptest requires meta-networking to be present.') +} diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-perl/recipes-perl/libcgi/libcgi-perl_4.43.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-perl/recipes-perl/libcgi/libcgi-perl_4.43.bb deleted file mode 100644 index b4571b27..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-perl/recipes-perl/libcgi/libcgi-perl_4.43.bb +++ /dev/null @@ -1,50 +0,0 @@ -DESCRIPTION = "CGI.pm is a stable, complete and mature solution for processing and preparing \ -HTTP requests and responses. Major features including processing form \ -submissions, file uploads, reading and writing cookies, query string generation \ -and manipulation, and processing and preparing HTTP headers." -HOMEPAGE = "http://search.cpan.org/~leejo/CGI-4.28/lib/CGI.pod" -SECTION = "libs" -LICENSE = "Artistic-2.0 | GPL-2.0" - -LIC_FILES_CHKSUM = "file://LICENSE;md5=415fc49abed2728f9480cd32c8d67beb" - -SRC_URI = "http://search.cpan.org/CPAN/authors/id/L/LE/LEEJO/CGI-${PV}.tar.gz" - -SRC_URI[md5sum] = "8c1f2cf11e4410911827ea48d58aaecc" -SRC_URI[sha256sum] = "14b94f9df6e48fc26ebc4fa1e01a7b534cbc1611028a49028f9ac9d8ca27b734" - -S = "${WORKDIR}/CGI-${PV}" - -inherit cpan ptest-perl - -RDEPENDS_${PN} += "\ - libhtml-parser-perl \ - perl-module-base \ - perl-module-deprecate \ - perl-module-if \ -" - -do_install_prepend() { - # requires "-T" (taint) command line option - rm -rf ${B}/t/push.t - rm -rf ${B}/t/utf8.t - # tests building of docs - rm -rf ${B}/t/compiles_pod.t -} - -RDEPENDS_${PN}-ptest += " \ - libtest-deep-perl \ - perl-module-bytes \ - perl-module-file-find \ - perl-module-filehandle \ - perl-module-findbin \ - perl-module-lib \ - perl-module-perlio \ - perl-module-perlio-scalar \ - perl-module-test-more \ - perl-module-utf8 \ -" - -RPROVIDES_${PN} += "perl-module-cgi" - -BBCLASSEXTEND = "native" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-perl/recipes-perl/libcgi/libcgi-perl_4.44.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-perl/recipes-perl/libcgi/libcgi-perl_4.44.bb new file mode 100644 index 00000000..cde187d8 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-perl/recipes-perl/libcgi/libcgi-perl_4.44.bb @@ -0,0 +1,51 @@ +DESCRIPTION = "CGI.pm is a stable, complete and mature solution for processing and preparing \ +HTTP requests and responses. Major features including processing form \ +submissions, file uploads, reading and writing cookies, query string generation \ +and manipulation, and processing and preparing HTTP headers." +HOMEPAGE = "http://search.cpan.org/~leejo/CGI-4.28/lib/CGI.pod" +SECTION = "libs" +LICENSE = "Artistic-2.0 | GPL-2.0" + +LIC_FILES_CHKSUM = "file://LICENSE;md5=415fc49abed2728f9480cd32c8d67beb" + +SRC_URI = "http://search.cpan.org/CPAN/authors/id/L/LE/LEEJO/CGI-${PV}.tar.gz" + +SRC_URI[md5sum] = "2cbe560fdadbb8b9237744e39bbfc3eb" +SRC_URI[sha256sum] = "12435fb7ebd3585c47b6d60ee4f5c7d6a7c114a2827d2b5acf3d62aa9fcf1208" + +S = "${WORKDIR}/CGI-${PV}" + +inherit cpan ptest-perl + +RDEPENDS_${PN} += "\ + libhtml-parser-perl \ + perl-module-base \ + perl-module-deprecate \ + perl-module-if \ +" + +do_install_prepend() { + # requires "-T" (taint) command line option + rm -rf ${B}/t/push.t + rm -rf ${B}/t/utf8.t + # tests building of docs + rm -rf ${B}/t/compiles_pod.t +} + +RDEPENDS_${PN}-ptest += " \ + libtest-deep-perl \ + libtest-warn-perl \ + perl-module-bytes \ + perl-module-file-find \ + perl-module-filehandle \ + perl-module-findbin \ + perl-module-lib \ + perl-module-perlio \ + perl-module-perlio-scalar \ + perl-module-test-more \ + perl-module-utf8 \ +" + +RPROVIDES_${PN} += "perl-module-cgi" + +BBCLASSEXTEND = "native" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-perl/recipes-perl/libclass/libclass-method-modifiers-perl_2.12.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-perl/recipes-perl/libclass/libclass-method-modifiers-perl_2.12.bb deleted file mode 100644 index 3979b314..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-perl/recipes-perl/libclass/libclass-method-modifiers-perl_2.12.bb +++ /dev/null @@ -1,28 +0,0 @@ -SUMMARY = "Class::Method::Modifiers - provides Moose-like method modifiers" -DESCRIPTION = "Method modifiers are a convenient feature from the CLOS \ -(Common Lisp Object System) world." - -SECTION = "libs" - -HOMEPAGE = "https://github.com/moose/Class-Method-Modifiers/" - -LICENSE = "Artistic-1.0 | GPL-1.0+" -LIC_FILES_CHKSUM = "file://LICENSE;md5=16fd0ec7b73c0e158426f753943f1058" - -SRC_URI = "${CPAN_MIRROR}/authors/id/E/ET/ETHER/Class-Method-Modifiers-${PV}.tar.gz" -SRC_URI[md5sum] = "f55400c7a8134acf3657f8af89bdd7af" -SRC_URI[sha256sum] = "e44c1073020bf55b8c97975ed77235fd7e2a6a56f29b5c702301721184e27ac8" - -S = "${WORKDIR}/Class-Method-Modifiers-${PV}" - -inherit cpan - -RDEPENDS_${PN} = " perl-module-b \ - perl-module-base \ - perl-module-carp \ - perl-module-exporter \ - perl-module-strict \ - perl-module-warnings \ -" - -BBCLASSEXTEND = "native" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-perl/recipes-perl/libclass/libclass-method-modifiers-perl_2.13.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-perl/recipes-perl/libclass/libclass-method-modifiers-perl_2.13.bb new file mode 100644 index 00000000..58ed37ca --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-perl/recipes-perl/libclass/libclass-method-modifiers-perl_2.13.bb @@ -0,0 +1,28 @@ +SUMMARY = "Class::Method::Modifiers - provides Moose-like method modifiers" +DESCRIPTION = "Method modifiers are a convenient feature from the CLOS \ +(Common Lisp Object System) world." + +SECTION = "libs" + +HOMEPAGE = "https://github.com/moose/Class-Method-Modifiers/" + +LICENSE = "Artistic-1.0 | GPL-1.0+" +LIC_FILES_CHKSUM = "file://LICENSE;md5=16fd0ec7b73c0e158426f753943f1058" + +SRC_URI = "${CPAN_MIRROR}/authors/id/E/ET/ETHER/Class-Method-Modifiers-${PV}.tar.gz" +SRC_URI[md5sum] = "b1398e3682aa2e075b913b9f9000b596" +SRC_URI[sha256sum] = "ab5807f71018a842de6b7a4826d6c1f24b8d5b09fcce5005a3309cf6ea40fd63" + +S = "${WORKDIR}/Class-Method-Modifiers-${PV}" + +inherit cpan + +RDEPENDS_${PN} = " perl-module-b \ + perl-module-base \ + perl-module-carp \ + perl-module-exporter \ + perl-module-strict \ + perl-module-warnings \ +" + +BBCLASSEXTEND = "native" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-perl/recipes-perl/libconfig/libconfig-autoconf-perl_0.318.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-perl/recipes-perl/libconfig/libconfig-autoconf-perl_0.318.bb new file mode 100644 index 00000000..e4f8fe7e --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-perl/recipes-perl/libconfig/libconfig-autoconf-perl_0.318.bb @@ -0,0 +1,41 @@ +# Copyright (C) 2020 Jens Rehsack +# Released under the MIT license (see COPYING.MIT for the terms) + +SUMMARY = "A module to implement some of AutoConf macros in pure perl" +DESCRIPTION = "Config::AutoConf is intended to provide the same opportunities to Perl \ +developers as GNU Autoconf does for \ +Shell developers." + +HOMEPAGE= "https://metacpan.org/release/Config-AutoConf" + +SECTION = "libs" +LICENSE = "Artistic-1.0 | GPL-1.0+" + +LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/Artistic-1.0;md5=cda03bbdc3c1951996392b872397b798 \ +file://${COMMON_LICENSE_DIR}/GPL-1.0;md5=e9e36a9de734199567a4d769498f743d" + +SRC_URI = "${CPAN_MIRROR}/authors/id/R/RE/REHSACK/Config-AutoConf-${PV}.tar.gz" + +SRC_URI[md5sum] = "0bea721ad3996e20324b84b3b924ec71" +SRC_URI[sha256sum] = "33c930feec3003de251ca222abe8bbeb74610ad07f65fc16f27d74d195eeab34" +RDEPENDS_${PN} += "libcapture-tiny-perl" +RDEPENDS_${PN} += "perl-module-base" +RDEPENDS_${PN} += "perl-module-carp" +RDEPENDS_${PN} += "perl-module-config" +RDEPENDS_${PN} += "perl-module-constant" +RDEPENDS_${PN} += "perl-module-file-basename" +RDEPENDS_${PN} += "perl-module-file-spec" +RDEPENDS_${PN} += "perl-module-file-temp" +RDEPENDS_${PN} += "perl-module-extutils-cbuilder" +RDEPENDS_${PN} += "perl-module-extutils-cbuilder-platform-unix" +RDEPENDS_${PN} += "perl-module-scalar-util" +RDEPENDS_${PN} += "perl-module-strict" +RDEPENDS_${PN} += "perl-module-text-parsewords" +RDEPENDS_${PN} += "perl-module-warnings" +RRECOMMENDS_${PN} += "libfile-slurper-perl" + +S = "${WORKDIR}/Config-AutoConf-${PV}" + +inherit cpan ptest-perl allarch + +BBCLASSEXTEND = "native nativesdk" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-perl/recipes-perl/libdb/libdbd-sqlite-perl_1.54.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-perl/recipes-perl/libdb/libdbd-sqlite-perl_1.54.bb deleted file mode 100644 index c72e536d..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-perl/recipes-perl/libdb/libdbd-sqlite-perl_1.54.bb +++ /dev/null @@ -1,41 +0,0 @@ -SUMMARY = "A Perl DBI driver for SQLite" -DESCRIPTION = "DBD::SQLite is a Perl DBI driver for SQLite, that includes the entire \ -thing in the distribution. So in order to get a fast transaction capable \ -RDBMS working for your perl project you simply have to install this \ -module, and nothing else. \ -" -HOMEPAGE = "http://search.cpan.org/~ishigaki/DBD-SQLite/" - -SECTION = "libs" -LICENSE = "Artistic-1.0 | GPL-1.0+" -DEPENDS += "libdbi-perl-native" -RDEPENDS_${PN} += "libdbi-perl \ - sqlite3 \ - perl-module-constant \ - perl-module-locale \ - perl-module-tie-hash \ -" - -LIC_FILES_CHKSUM = "file://LICENSE;md5=1726e2117494ba3e13e1c3d93f795360" - -SRC_URI = "http://search.cpan.org/CPAN/authors/id/I/IS/ISHIGAKI/DBD-SQLite-${PV}.tar.gz \ - file://sqlite-perl-test.pl \ -" - -SRC_URI[md5sum] = "8f835ddacb9a4a92a52bbe2d24d18a8e" -SRC_URI[sha256sum] = "3929a6dbd8d71630f0cb57f85dcef9588cd7ac4c9fa12db79df77b9d3a4d7269" - -UPSTREAM_CHECK_REGEX = "DBD\-SQLite\-(?P(\d+\.\d+))(?!_\d+).tar" - -S = "${WORKDIR}/DBD-SQLite-${PV}" - -inherit cpan - -BBCLASSEXTEND = "native" - -do_install_append() { - if [ ${PERL_DBM_TEST} = "1" ]; then - install -m 755 -D ${WORKDIR}/sqlite-perl-test.pl ${D}/${bindir}/sqlite-perl-test.pl - fi -} - diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-perl/recipes-perl/libdb/libdbd-sqlite-perl_1.64.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-perl/recipes-perl/libdb/libdbd-sqlite-perl_1.64.bb new file mode 100644 index 00000000..468add97 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-perl/recipes-perl/libdb/libdbd-sqlite-perl_1.64.bb @@ -0,0 +1,56 @@ +SUMMARY = "A Perl DBI driver for SQLite" +DESCRIPTION = "DBD::SQLite is a Perl DBI driver for SQLite, that includes the entire \ +thing in the distribution. So in order to get a fast transaction capable \ +RDBMS working for your perl project you simply have to install this \ +module, and nothing else. \ +" +HOMEPAGE = "https://metacpan.org/release/DBD-SQLite" + +SECTION = "libs" +LICENSE = "Artistic-1.0 | GPL-1.0+" +LIC_FILES_CHKSUM = "file://LICENSE;md5=1726e2117494ba3e13e1c3d93f795360" + +SRC_URI = "${CPAN_MIRROR}/authors/id/I/IS/ISHIGAKI/DBD-SQLite-${PV}.tar.gz \ + file://sqlite-perl-test.pl \ +" + +SRC_URI[md5sum] = "10796495b52927eb2e1df34c86924027" +SRC_URI[sha256sum] = "f4ae8f7b50842305566aadd90f7bfd12a9e32b6c603a9b1c1529e73eb82aff01" + +UPSTREAM_CHECK_REGEX = "DBD\-SQLite\-(?P(\d+\.\d+))(?!_\d+).tar" + +S = "${WORKDIR}/DBD-SQLite-${PV}" + +DEPENDS += "libdbi-perl-native" + +inherit cpan ptest-perl + +RDEPENDS_${PN} += "libdbi-perl \ + sqlite3 \ + perl-module-constant \ + perl-module-locale \ + perl-module-tie-hash \ +" + +do_install_append() { + if [ ${PERL_DBM_TEST} = "1" ]; then + install -m 755 -D ${WORKDIR}/sqlite-perl-test.pl ${D}/${bindir}/sqlite-perl-test.pl + fi +} + +do_install_ptest() { + cp -r ${B}/MANIFEST ${D}${PTEST_PATH} + chown -R root:root ${D}${PTEST_PATH} +} + +RDEPENDS_${PN}-ptest += " \ + libtest-nowarnings-perl \ + perl-module-lib \ + perl-module-encode \ + perl-module-file-spec \ + perl-module-file-spec-functions \ + perl-module-findbin \ + perl-module-test-more \ + " + +BBCLASSEXTEND = "native" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-perl/recipes-perl/libencode/libencode-perl_2.94.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-perl/recipes-perl/libencode/libencode-perl_2.94.bb deleted file mode 100644 index 9861c56e..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-perl/recipes-perl/libencode/libencode-perl_2.94.bb +++ /dev/null @@ -1,68 +0,0 @@ -# NOTE: -# You should use perl-module-encode rather than this package -# unless you specifically need a version newer than what is -# provided by perl. - -SUMMARY = "Encode - character encodings" -DESCRIPTION = "The \"Encode\" module provides the interfaces between \ -Perl's strings and the rest of the system. Perl strings are sequences \ -of characters." - -AUTHOR = "Dan Kogai " -HOMEPAGE = "https://metacpan.org/release/Encode" -SECTION = "lib" -LICENSE = "Artistic-1.0 | GPL-1.0+" -LIC_FILES_CHKSUM = "file://META.json;md5=d8e909447b983532b2b460c830e7a7e4" - -SRC_URI = "${CPAN_MIRROR}/authors/id/D/DA/DANKOGAI/Encode-${PV}.tar.gz" -SRC_URI[md5sum] = "f995e0eb9e52d01ed57abe835bf3ccb6" -SRC_URI[sha256sum] = "acb3a4af5e3ee38f94de8baa7454e0b836a0649e7ac4180f28dfca439ad60cff" - -UPSTREAM_CHECK_REGEX = "Encode\-(?P(\d+\.\d+))(?!_\d+).tar" - -S = "${WORKDIR}/Encode-${PV}" - -inherit cpan - -# file /usr/bin/enc2xs from install of perl-misc-5.24.1-r0.i586 conflicts with file from package libencode-perl-2.94-r0.i586 -# file /usr/bin/encguess from install of perl-misc-5.24.1-r0.i586 conflicts with file from package libencode-perl-2.94-r0.i586 -# file /usr/bin/piconv from install of perl-misc-5.24.1-r0.i586 conflicts with file from package libencode-perl-2.94-r0.i586 -RCONFLICTS_${PN} = "perl-misc" - -RDEPENDS_${PN} += " perl-module-bytes \ - perl-module-constant \ - perl-module-parent \ - perl-module-storable \ - perl-module-xsloader \ -" - -RPROVIDES_${PN} += "libencode-alias-perl \ - libencode-byte-perl \ - libencode-cjkconstants-perl \ - libencode-cn-perl \ - libencode-cn-hz-perl \ - libencode-config-perl \ - libencode-ebcdic-perl \ - libencode-encoder-perl \ - libencode-encoding-perl \ - libencode-gsm0338-perl \ - libencode-guess-perl \ - libencode-jp-perl \ - libencode-jp-h2z-perl \ - libencode-jp-jis7-perl \ - libencode-kr-perl \ - libencode-kr-2022_kr-perl \ - libencode-mime-header-perl \ - libencode-mime-name-perl \ - libencode-symbol-perl \ - libencode-tw-perl \ - libencode-unicode-perl \ - libencode-unicode-utf7-perl \ - libencoding-perl \ - libencode-internal-perl \ - libencode-mime-header-iso_2022_jp-perl \ - libencode-utf8-perl \ - libencode-utf_ebcdic-perl \ - " - -BBCLASSEXTEND = "native" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-perl/recipes-perl/libencode/libencode-perl_3.02.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-perl/recipes-perl/libencode/libencode-perl_3.02.bb new file mode 100644 index 00000000..b32bc023 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-perl/recipes-perl/libencode/libencode-perl_3.02.bb @@ -0,0 +1,106 @@ +# NOTE: +# You should use perl-module-encode rather than this package +# unless you specifically need a version newer than what is +# provided by perl. + +SUMMARY = "Encode - character encodings" +DESCRIPTION = "The \"Encode\" module provides the interfaces between \ +Perl's strings and the rest of the system. Perl strings are sequences \ +of characters." + +AUTHOR = "Dan Kogai " +HOMEPAGE = "https://metacpan.org/release/Encode" +SECTION = "lib" +LICENSE = "Artistic-1.0 | GPL-1.0+" +LIC_FILES_CHKSUM = "file://META.json;beginline=8;endline=10;md5=b12e3be1e17a7e99ca4f429ff32c28b5" + +SRC_URI = "${CPAN_MIRROR}/authors/id/D/DA/DANKOGAI/Encode-${PV}.tar.gz" +SRC_URI[md5sum] = "4eb07ba6db02d5b982316e1dd05f68bd" +SRC_URI[sha256sum] = "5865be4951870f62f43722818d076d7724306c75c8f268346b282351cbc820a8" + +UPSTREAM_CHECK_REGEX = "Encode\-(?P(\d+\.\d+))(?!_\d+).tar" + +S = "${WORKDIR}/Encode-${PV}" + +inherit cpan ptest-perl + +do_install_prepend() { + # Requires "-T" (taint) option on command line + rm -rf ${B}/t/taint.t + # Circular dependency of perl-module-open on perl-module-encode + # and we cannot load perl-module-encode because we are providing + # an alternative + rm -rf ${B}/t/use-Encode-Alias.t +} + +do_install_ptest() { + mkdir ${D}${PTEST_PATH}/bin + cp -r ${B}/bin/piconv ${D}${PTEST_PATH}/bin + cp -r ${B}/blib ${D}${PTEST_PATH} + chown -R root:root ${D}${PTEST_PATH} +} + +# file /usr/bin/enc2xs from install of perl-misc-5.24.1-r0.i586 conflicts with file from package libencode-perl-2.94-r0.i586 +# file /usr/bin/encguess from install of perl-misc-5.24.1-r0.i586 conflicts with file from package libencode-perl-2.94-r0.i586 +# file /usr/bin/piconv from install of perl-misc-5.24.1-r0.i586 conflicts with file from package libencode-perl-2.94-r0.i586 +RCONFLICTS_${PN} = "perl-misc perl-module-encode" + +RDEPENDS_${PN} += " \ + perl-module-bytes \ + perl-module-constant \ + perl-module-parent \ + perl-module-storable \ + perl-module-xsloader \ + " + +RPROVIDES_${PN} += " \ + libencode-alias-perl \ + libencode-byte-perl \ + libencode-cjkconstants-perl \ + libencode-cn-perl \ + libencode-cn-hz-perl \ + libencode-config-perl \ + libencode-ebcdic-perl \ + libencode-encoder-perl \ + libencode-encoding-perl \ + libencode-gsm0338-perl \ + libencode-guess-perl \ + libencode-jp-perl \ + libencode-jp-h2z-perl \ + libencode-jp-jis7-perl \ + libencode-kr-perl \ + libencode-kr-2022_kr-perl \ + libencode-mime-header-perl \ + libencode-mime-name-perl \ + libencode-symbol-perl \ + libencode-tw-perl \ + libencode-unicode-perl \ + libencode-unicode-utf7-perl \ + libencoding-perl \ + libencode-internal-perl \ + libencode-mime-header-iso_2022_jp-perl \ + libencode-utf8-perl \ + libencode-utf_ebcdic-perl \ + " + +RDEPENDS_${PN}-ptest += " \ + perl-module-blib \ + perl-module-charnames \ + perl-module-file-compare \ + perl-module-file-copy \ + perl-module-filehandle \ + perl-module-findbin \ + perl-module-integer \ + perl-module-io-select \ + perl-module-ipc-open3 \ + perl-module-mime-base64 \ + perl-module-perlio \ + perl-module-perlio-encoding \ + perl-module-perlio-scalar \ + perl-module-test-more \ + perl-module-tie-scalar \ + perl-module-unicore \ + perl-module-utf8 \ + " + +BBCLASSEXTEND = "native" diff --git a/Contrib-Inspur/openbmc/meta-security/recipes-perl/perl/libenv-perl_1.04.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-perl/recipes-perl/libenv/libenv-perl_1.04.bb similarity index 100% rename from Contrib-Inspur/openbmc/meta-security/recipes-perl/perl/libenv-perl_1.04.bb rename to Contrib-Inspur/openbmc/meta-openembedded/meta-perl/recipes-perl/libenv/libenv-perl_1.04.bb diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-perl/recipes-perl/libextutils/libextutils-cppguess-perl_0.12.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-perl/recipes-perl/libextutils/libextutils-cppguess-perl_0.12.bb deleted file mode 100644 index 99df6f33..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-perl/recipes-perl/libextutils/libextutils-cppguess-perl_0.12.bb +++ /dev/null @@ -1,37 +0,0 @@ -SUMMARY = "ExtUtils::CppGuess - guess C++ compiler and flags" -DESCRIPTION = "ExtUtils::CppGuess attempts to guess the system's C++ \ -compiler that is compatible with the C compiler that your perl was built \ -with. \ -It can generate the necessary options to the Module::Build constructor or \ -to ExtUtils::MakeMaker's WriteMakefile function." -SECTION = "libs" - -HOMEPAGE = "http://search.cpan.org/~smueller/ExtUtils-CppGuess/" - -LICENSE = "Artistic-1.0 | GPL-1.0+" -LIC_FILES_CHKSUM = "file://README;beginline=81;endline=84;md5=84c0390b90ea8c6702ce659b67bed699" - -SRC_URI = "${CPAN_MIRROR}/authors/id/E/ET/ETJ/ExtUtils-CppGuess-${PV}.tar.gz" -SRC_URI[md5sum] = "28be49072585b25df87e54180f741a4d" -SRC_URI[sha256sum] = "31c47b5b15e3e9fd5ae7b35881a0fffd26a2983b241e7e3a1bc340d6d446186b" - -S = "${WORKDIR}/ExtUtils-CppGuess-${PV}" - -inherit cpan - -do_install () { - cpan_do_install -} - -RDEPENDS_${PN} = " libcapture-tiny-perl \ - perl-module-scalar-util \ - perl-module-io-file \ - perl-module-extutils-makemaker \ - perl-module-file-spec \ - perl-module-exporter \ - perl-module-carp \ - perl-module-file-temp \ - perl-module-lib \ -" - -BBCLASSEXTEND = "native" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-perl/recipes-perl/libextutils/libextutils-cppguess-perl_0.20.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-perl/recipes-perl/libextutils/libextutils-cppguess-perl_0.20.bb new file mode 100644 index 00000000..594899b0 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-perl/recipes-perl/libextutils/libextutils-cppguess-perl_0.20.bb @@ -0,0 +1,37 @@ +SUMMARY = "ExtUtils::CppGuess - guess C++ compiler and flags" +DESCRIPTION = "ExtUtils::CppGuess attempts to guess the system's C++ \ +compiler that is compatible with the C compiler that your perl was built \ +with. \ +It can generate the necessary options to the Module::Build constructor or \ +to ExtUtils::MakeMaker's WriteMakefile function." +SECTION = "libs" + +HOMEPAGE = "http://search.cpan.org/~smueller/ExtUtils-CppGuess/" + +LICENSE = "Artistic-1.0 | GPL-1.0+" +LIC_FILES_CHKSUM = "file://README;beginline=81;endline=84;md5=84c0390b90ea8c6702ce659b67bed699" + +SRC_URI = "${CPAN_MIRROR}/authors/id/E/ET/ETJ/ExtUtils-CppGuess-${PV}.tar.gz" +SRC_URI[md5sum] = "d6ddd5568c84f4c7b11b996b65f2ea3b" +SRC_URI[sha256sum] = "12bf914708885265b5c3b0b8bfb0a9294cf132d5ca30d54bda0e00335fb43e61" + +S = "${WORKDIR}/ExtUtils-CppGuess-${PV}" + +inherit cpan + +do_install () { + cpan_do_install +} + +RDEPENDS_${PN} = " libcapture-tiny-perl \ + perl-module-scalar-util \ + perl-module-io-file \ + perl-module-extutils-makemaker \ + perl-module-file-spec \ + perl-module-exporter \ + perl-module-carp \ + perl-module-file-temp \ + perl-module-lib \ +" + +BBCLASSEXTEND = "native" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-perl/recipes-perl/libextutils/libextutils-parsexs-perl_3.35.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-perl/recipes-perl/libextutils/libextutils-parsexs-perl_3.35.bb index 33707a0a..f57e1224 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-perl/recipes-perl/libextutils/libextutils-parsexs-perl_3.35.bb +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-perl/recipes-perl/libextutils/libextutils-parsexs-perl_3.35.bb @@ -21,7 +21,7 @@ S = "${WORKDIR}/${SRCNAME}-${PV}" inherit cpan -RDEPENDS_${PN} = " perl-module-carp \ +RDEPENDS_${PN} += " perl-module-carp \ perl-module-cwd \ perl-module-dynaloader \ perl-module-extutils-cbuilder \ diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-perl/recipes-perl/libfile/libfile-slurper-perl_0.012.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-perl/recipes-perl/libfile/libfile-slurper-perl_0.012.bb new file mode 100644 index 00000000..b684abd4 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-perl/recipes-perl/libfile/libfile-slurper-perl_0.012.bb @@ -0,0 +1,36 @@ +SUMMARY = "A simple, sane and efficient module to slurp a file" +DESCRIPTION = "This module provides functions for fast and correct slurping and spewing. \ +All functions are optionally exported. All functions throw exceptions on \ +errors, write functions don't return any meaningful value." + +SECTION = "libs" +LICENSE = "Artistic-1.0 | GPL-1.0+" + +HOMEPAGE= "https://metacpan.org/release/File-Slurper" + +LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/Artistic-1.0;md5=cda03bbdc3c1951996392b872397b798 \ +file://${COMMON_LICENSE_DIR}/GPL-1.0;md5=e9e36a9de734199567a4d769498f743d" + +SRC_URI = "${CPAN_MIRROR}/authors/id/L/LE/LEONT/File-Slurper-${PV}.tar.gz" + +SRC_URI[md5sum] = "5742c63096392dfee50b8db314bcca18" +SRC_URI[sha256sum] = "4efb2ea416b110a1bda6f8133549cc6ea3676402e3caf7529fce0313250aa578" +RDEPENDS_${PN} = " \ + perl-module-carp \ + perl-module-encode \ + perl-module-exporter \ + perl-module-perlio \ + perl-module-perlio-encoding \ + perl-module-strict \ + perl-module-warnings \ +" + +RDEPENDS_${PN}-ptest += "libtest-warnings-perl \ + perl-module-test-more \ + " + +S = "${WORKDIR}/File-Slurper-${PV}" + +inherit cpan allarch ptest-perl + +BBCLASSEXTEND = "native" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-perl/recipes-perl/libmoo/libmoo-perl_2.003004.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-perl/recipes-perl/libmoo/libmoo-perl_2.003004.bb deleted file mode 100644 index a260ab87..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-perl/recipes-perl/libmoo/libmoo-perl_2.003004.bb +++ /dev/null @@ -1,44 +0,0 @@ -SUMMARY = "Moo - Minimalist Object Orientation (with Moose compatibility)" -DESCRIPTION = "This module us an extremely light-weight subset of \"Moose\" \ -optimised for rapid startup and \"pay only for what you use\"." - -SECTION = "libs" - -HOMEPAGE = "http://metapan.org/release/Moo/" - -LICENSE = "Artistic-1.0 | GPL-1.0+" -LIC_FILES_CHKSUM = "file://README;beginline=731;endline=776;md5=27efedd175eeaddbd18f4e3572bd72a8" - -SRC_URI = "${CPAN_MIRROR}/authors/id/H/HA/HAARG/Moo-${PV}.tar.gz" -SRC_URI[md5sum] = "d4fcd0f240033198571fcc81ce7c5f15" -SRC_URI[sha256sum] = "f8bbb625f8e963eabe05cff9048fdd72bdd26777404ff2c40bc690f558be91e1" - -S = "${WORKDIR}/Moo-${PV}" - -inherit cpan - -RDEPENDS_${PN} = " libclass-method-modifiers-perl \ - libdevel-globaldestruction-perl \ - libmodule-runtime-perl \ - librole-tiny-perl \ - perl-module-constant \ - perl-module-exporter \ - perl-module-mro \ - perl-module-scalar-util \ -" - -RPROVIDES_${PN} = " libmethod-inliner-perl \ - libmethod-generate-accessor-perl \ - libmethod-generate-buildall-perl \ - libmethod-generate-constructor-perl \ - libmethod-generate-demolishall-perl \ - libmoo-perl \ - libmoo-handlemoose-perl \ - libmoo-handlemoose-fakemetaclass-perl \ - libmoo-object-perl \ - libmoo-role-perl \ - libsub-defer-perl \ - libsub-quote-perl \ -" - -BBCLASSEXTEND = "native" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-perl/recipes-perl/libmoo/libmoo-perl_2.003006.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-perl/recipes-perl/libmoo/libmoo-perl_2.003006.bb new file mode 100644 index 00000000..0bd0eae9 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-perl/recipes-perl/libmoo/libmoo-perl_2.003006.bb @@ -0,0 +1,44 @@ +SUMMARY = "Moo - Minimalist Object Orientation (with Moose compatibility)" +DESCRIPTION = "This module us an extremely light-weight subset of \"Moose\" \ +optimised for rapid startup and \"pay only for what you use\"." + +SECTION = "libs" + +HOMEPAGE = "http://metapan.org/release/Moo/" + +LICENSE = "Artistic-1.0 | GPL-1.0+" +LIC_FILES_CHKSUM = "file://README;beginline=742;endline=787;md5=2ee6a628a04af08d75bc73a86da86d4a" + +SRC_URI = "${CPAN_MIRROR}/authors/id/H/HA/HAARG/Moo-${PV}.tar.gz" +SRC_URI[md5sum] = "53af7e7849492a8e3994ee379d12e348" +SRC_URI[sha256sum] = "bcb2092ab18a45005b5e2e84465ebf3a4999d8e82a43a09f5a94d859ae7f2472" + +S = "${WORKDIR}/Moo-${PV}" + +inherit cpan + +RDEPENDS_${PN} = " libclass-method-modifiers-perl \ + libdevel-globaldestruction-perl \ + libmodule-runtime-perl \ + librole-tiny-perl \ + perl-module-constant \ + perl-module-exporter \ + perl-module-mro \ + perl-module-scalar-util \ +" + +RPROVIDES_${PN} = " libmethod-inliner-perl \ + libmethod-generate-accessor-perl \ + libmethod-generate-buildall-perl \ + libmethod-generate-constructor-perl \ + libmethod-generate-demolishall-perl \ + libmoo-perl \ + libmoo-handlemoose-perl \ + libmoo-handlemoose-fakemetaclass-perl \ + libmoo-object-perl \ + libmoo-role-perl \ + libsub-defer-perl \ + libsub-quote-perl \ +" + +BBCLASSEXTEND = "native" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-perl/recipes-perl/libnet/libnet-dns-perl_1.20.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-perl/recipes-perl/libnet/libnet-dns-perl_1.20.bb deleted file mode 100644 index c37b40d7..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-perl/recipes-perl/libnet/libnet-dns-perl_1.20.bb +++ /dev/null @@ -1,66 +0,0 @@ -DESCRIPTION = "This package contains the DNS.pm module with friends." -HOMEPAGE = "http://www.net-dns.org/" -SECTION = "libs" -LICENSE = "MIT" - -LIC_FILES_CHKSUM = "file://README;beginline=252;endline=269;md5=27db37b42cd1a5173a53922d67072bcb" - -DEPENDS += "perl" - -SRC_URI = "http://search.cpan.org/CPAN/authors/id/N/NL/NLNETLABS/Net-DNS-${PV}.tar.gz" - -SRC_URI[md5sum] = "565d3ae163591f3da7e1a20827b73c28" -SRC_URI[sha256sum] = "7fd9692b687253baa8f2eb639f1dd7ff9c77fddd67167dc59b400bd25e4ce01b" - -UPSTREAM_CHECK_REGEX = "Net\-DNS\-(?P(\d+\.\d+))(?!_\d+).tar" - -S = "${WORKDIR}/Net-DNS-${PV}" - -EXTRA_CPANFLAGS = "EXPATLIBPATH=${STAGING_LIBDIR} EXPATINCPATH=${STAGING_INCDIR}" - -inherit cpan ptest-perl - -RDEPENDS_${PN} = " \ - libdigest-hmac-perl \ - perl-module-base \ - perl-module-constant \ - perl-module-digest-md5 \ - perl-module-digest-sha \ - perl-module-file-spec \ - perl-module-integer \ - perl-module-io-file \ - perl-module-io-select \ - perl-module-io-socket \ - perl-module-io-socket-ip \ - perl-module-mime-base64 \ - perl-module-scalar-util \ - perl-module-test-more \ - perl-module-time-local \ -" - -RRECOMMENDS_${PN} += " \ - libnet-dns-sec-perl \ -" - -RDEPENDS_${PN}-ptest += " \ - perl-module-encode \ - perl-module-encode-byte \ - perl-module-extutils-mm \ - perl-module-extutils-mm-unix \ - perl-module-overload \ -" - -python __anonymous () { - # rather than use "find" to determine libc-*.so, - # statically export the known paths for glibc and musl - import os - if d.getVar('TCLIBC') == "glibc": - os.environ["LIBC"] = "${STAGING_BASELIBDIR}/libc.so.6" - elif d.getVar('TCLIBC') == "musl": - os.environ["LIBC"] = "${STAGING_LIBDIR}/libc.so" - else: - raise bb.parse.SkipRecipe("incompatible with %s C library" % - d.getVar('TCLIBC')) -} - -BBCLASSEXTEND = "native" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-perl/recipes-perl/libnet/libnet-dns-perl_1.21.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-perl/recipes-perl/libnet/libnet-dns-perl_1.21.bb new file mode 100644 index 00000000..58b8eec6 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-perl/recipes-perl/libnet/libnet-dns-perl_1.21.bb @@ -0,0 +1,66 @@ +DESCRIPTION = "This package contains the DNS.pm module with friends." +HOMEPAGE = "http://www.net-dns.org/" +SECTION = "libs" +LICENSE = "MIT" + +LIC_FILES_CHKSUM = "file://README;beginline=252;endline=269;md5=27db37b42cd1a5173a53922d67072bcb" + +DEPENDS += "perl" + +SRC_URI = "http://search.cpan.org/CPAN/authors/id/N/NL/NLNETLABS/Net-DNS-${PV}.tar.gz" + +SRC_URI[md5sum] = "91e8593eb6eed41995e6edc567fb6fec" +SRC_URI[sha256sum] = "ddefe13b28084ffcc8f10a96b3c13c59449dbf6fc371c006d129630ea0ce767a" + +UPSTREAM_CHECK_REGEX = "Net\-DNS\-(?P(\d+\.\d+))(?!_\d+).tar" + +S = "${WORKDIR}/Net-DNS-${PV}" + +EXTRA_CPANFLAGS = "EXPATLIBPATH=${STAGING_LIBDIR} EXPATINCPATH=${STAGING_INCDIR}" + +inherit cpan ptest-perl + +RDEPENDS_${PN} = " \ + libdigest-hmac-perl \ + perl-module-base \ + perl-module-constant \ + perl-module-digest-md5 \ + perl-module-digest-sha \ + perl-module-file-spec \ + perl-module-integer \ + perl-module-io-file \ + perl-module-io-select \ + perl-module-io-socket \ + perl-module-io-socket-ip \ + perl-module-mime-base64 \ + perl-module-scalar-util \ + perl-module-test-more \ + perl-module-time-local \ +" + +RRECOMMENDS_${PN} += " \ + libnet-dns-sec-perl \ +" + +RDEPENDS_${PN}-ptest += " \ + perl-module-encode \ + perl-module-encode-byte \ + perl-module-extutils-mm \ + perl-module-extutils-mm-unix \ + perl-module-overload \ +" + +python __anonymous () { + # rather than use "find" to determine libc-*.so, + # statically export the known paths for glibc and musl + import os + if d.getVar('TCLIBC') == "glibc": + os.environ["LIBC"] = "${STAGING_BASELIBDIR}/libc.so.6" + elif d.getVar('TCLIBC') == "musl": + os.environ["LIBC"] = "${STAGING_LIBDIR}/libc.so" + else: + raise bb.parse.SkipRecipe("incompatible with %s C library" % + d.getVar('TCLIBC')) +} + +BBCLASSEXTEND = "native" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-perl/recipes-perl/libnet/libnet-dns-sec-perl_1.10.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-perl/recipes-perl/libnet/libnet-dns-sec-perl_1.10.bb index 3fa6294f..240ffec4 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-perl/recipes-perl/libnet/libnet-dns-sec-perl_1.10.bb +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-perl/recipes-perl/libnet/libnet-dns-sec-perl_1.10.bb @@ -29,5 +29,3 @@ RDEPENDS_${PN} = " \ perl-module-mime-base64 \ perl-module-test-more \ " - -BBCLASSEXTEND = "native" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-perl/recipes-perl/libnet/libnet-ldap-perl_0.65.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-perl/recipes-perl/libnet/libnet-ldap-perl_0.65.bb deleted file mode 100644 index f2b1f163..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-perl/recipes-perl/libnet/libnet-ldap-perl_0.65.bb +++ /dev/null @@ -1,29 +0,0 @@ -SUMMARY = "LDAP Perl module" -DESCRIPTION = "Net::LDAP is a collection of modules that implements \ -a LDAP services API for Perl programs. The module may be used to \ -search directories or perform maintenance functions such as adding, \ -deleting or modifying entries." - -SECTION = "libs" - -LICENSE = "Artistic-1.0|GPLv1+" -LIC_FILES_CHKSUM = "file://README;beginline=3;endline=5;md5=4d6588c2fa0d38ae162f6314d201d89e" - -SRC_URI = "http://search.cpan.org/CPAN/authors/id/M/MA/MARSCHAP/perl-ldap-${PV}.tar.gz" - -SRC_URI[md5sum] = "d057c8db76913d95c0e460c7bdd98b27" -SRC_URI[sha256sum] = "5f57dd261dc16ebf942a272ddafe69526598df71151a51916edc37a4f2f23834" - -S = "${WORKDIR}/perl-ldap-${PV}" - -inherit cpan - -do_configure_prepend() { - perl -pi -e 's/auto_install_now.*//g' Makefile.PL -} - -RDEPENDS_${PN} = "perl \ - libconvert-asn1-perl \ - libio-socket-ssl-perl \ - libauthen-sasl-perl \ -" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-perl/recipes-perl/libnet/libnet-ldap-perl_0.66.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-perl/recipes-perl/libnet/libnet-ldap-perl_0.66.bb new file mode 100644 index 00000000..26c7c389 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-perl/recipes-perl/libnet/libnet-ldap-perl_0.66.bb @@ -0,0 +1,45 @@ +SUMMARY = "LDAP Perl module" +DESCRIPTION = "Net::LDAP is a collection of modules that implements \ +a LDAP services API for Perl programs. The module may be used to \ +search directories or perform maintenance functions such as adding, \ +deleting or modifying entries." + +SECTION = "libs" + +LICENSE = "Artistic-1.0|GPLv1+" +LIC_FILES_CHKSUM = "file://README;beginline=3;endline=5;md5=4d6588c2fa0d38ae162f6314d201d89e" + +SRC_URI = "${CPAN_MIRROR}/authors/id/M/MA/MARSCHAP/perl-ldap-${PV}.tar.gz" + +SRC_URI[md5sum] = "c4c1ae9299cd488e75c1b82904458bef" +SRC_URI[sha256sum] = "09263ce6166e80c98d689d41d09995b813389fd069b784601f6dc57f8e2b4102" + +S = "${WORKDIR}/perl-ldap-${PV}" + +inherit cpan ptest-perl + +do_configure_prepend() { + perl -pi -e 's/auto_install_now.*//g' Makefile.PL +} + +do_install_ptest() { + cp -r ${B}/data ${D}${PTEST_PATH} + chown -R root:root ${D}${PTEST_PATH} +} + +RDEPENDS_${PN} += " \ + libconvert-asn1-perl \ + libio-socket-ssl-perl \ + libauthen-sasl-perl \ + perl-module-integer \ +" + +RDEPENDS_${PN}-ptest += " \ + libxml-sax-base-perl \ + libxml-sax-writer-perl \ + perl-module-file-compare \ + perl-module-perlio \ + perl-module-test-more \ +" + +BBCLASSEXTEND = "native" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-perl/recipes-perl/libnet/libnet-ssleay-perl_1.85.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-perl/recipes-perl/libnet/libnet-ssleay-perl_1.85.bb index dccef164..50ab5af3 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-perl/recipes-perl/libnet/libnet-ssleay-perl_1.85.bb +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-perl/recipes-perl/libnet/libnet-ssleay-perl_1.85.bb @@ -42,8 +42,6 @@ do_install_ptest() { cp -r ${B}/t ${D}${PTEST_PATH} } -BBCLASSEXTEND = "native" - FILES_${PN}-dbg =+ "${libdir}/perl/vendor_perl/*/auto/Net/SSLeay/.debug/" RDEPENDS_${PN}-ptest = " perl" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-perl/recipes-perl/librole/librole-tiny-perl_2.000006.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-perl/recipes-perl/librole/librole-tiny-perl_2.000006.bb deleted file mode 100644 index c2755ea0..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-perl/recipes-perl/librole/librole-tiny-perl_2.000006.bb +++ /dev/null @@ -1,29 +0,0 @@ -SUMMARY = "Role::Tiny - Roles. Like a nouvelle cousine portion size of Moose." -DESCRIPTION = "\"Role::Tiny\" is a minimalist role composition tool." - -SECTION = "libs" - -HOMEPAGE = "https://metacpan.org/pod/Role::Tiny" - -LICENSE = "Artistic-1.0 | GPL-1.0+" -LIC_FILES_CHKSUM = "file://README;beginline=177;endline=214;md5=26df7e7c20551fb1906e2286624f0b71" - -SRC_URI = "${CPAN_MIRROR}/authors/id/H/HA/HAARG/Role-Tiny-${PV}.tar.gz" -SRC_URI[md5sum] = "7c277728a7e090f64b495857cadfed08" -SRC_URI[sha256sum] = "cc73418c904a0286ecd8915eac11f5be2a8d1e17ea9cb54c9116b0340cd3e382" - -S = "${WORKDIR}/Role-Tiny-${PV}" - -inherit cpan - -RDEPENDS_${PN} = " perl-module-exporter \ - perl-module-strict \ - perl-module-test-more \ - perl-module-warnings \ -" - -RPROVIDES_${PN} = " librole-tiny-perl \ - librole-tiny-with-perl \ -" - -BBCLASSEXTEND = "native" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-perl/recipes-perl/librole/librole-tiny-perl_2.001004.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-perl/recipes-perl/librole/librole-tiny-perl_2.001004.bb new file mode 100644 index 00000000..41743d50 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-perl/recipes-perl/librole/librole-tiny-perl_2.001004.bb @@ -0,0 +1,29 @@ +SUMMARY = "Role::Tiny - Roles. Like a nouvelle cousine portion size of Moose." +DESCRIPTION = "\"Role::Tiny\" is a minimalist role composition tool." + +SECTION = "libs" + +HOMEPAGE = "https://metacpan.org/pod/Role::Tiny" + +LICENSE = "Artistic-1.0 | GPL-1.0+" +LIC_FILES_CHKSUM = "file://README;beginline=182;endline=219;md5=26df7e7c20551fb1906e2286624f0b71" + +SRC_URI = "${CPAN_MIRROR}/authors/id/H/HA/HAARG/Role-Tiny-${PV}.tar.gz" +SRC_URI[md5sum] = "98446826608b1e943e65c1f6e35942fe" +SRC_URI[sha256sum] = "92ba5712850a74102c93c942eb6e7f62f7a4f8f483734ed289d08b324c281687" + +S = "${WORKDIR}/Role-Tiny-${PV}" + +inherit cpan + +RDEPENDS_${PN} = " perl-module-exporter \ + perl-module-strict \ + perl-module-test-more \ + perl-module-warnings \ +" + +RPROVIDES_${PN} = " librole-tiny-perl \ + librole-tiny-with-perl \ +" + +BBCLASSEXTEND = "native" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-perl/recipes-perl/libstatgrab/libunix-statgrab_0.112.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-perl/recipes-perl/libstatgrab/libunix-statgrab_0.112.bb new file mode 100644 index 00000000..a1bb4a39 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-perl/recipes-perl/libstatgrab/libunix-statgrab_0.112.bb @@ -0,0 +1,38 @@ +SUMMARY = "Perl interface to the libstatgrab library" +DESCRIPTION = "Unix::Statgrab is a wrapper for libstatgrab as available from \ +. It is a reasonably portable attempt \ +to query interesting stats about your computer. It covers information on \ +the operating system, CPU, memory usage, network interfaces, hard-disks \ +etc." + +HOMEPAGE = "https://metacpan.org/release/Unix-Statgrab" +SECTION = "libs" +LICENSE = "Artistic-1.0 | GPL-1.0+ | LGPL-2.1+" +DEPENDS += "libcapture-tiny-perl-native" +DEPENDS += "libconfig-autoconf-perl-native" +DEPENDS += "libstatgrab" +RDEPENDS_${PN} += "\ + libstatgrab \ + perl-module-autoloader \ + perl-module-carp \ + perl-module-dynaloader \ + perl-module-exporter \ + perl-module-strict \ + perl-module-vars \ + perl-module-warnings \ +" + +SRC_URI = "${CPAN_MIRROR}/authors/id/R/RE/REHSACK/Unix-Statgrab-${PV}.tar.gz" +LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/Artistic-1.0;md5=cda03bbdc3c1951996392b872397b798 \ + file://${COMMON_LICENSE_DIR}/GPL-1.0;md5=e9e36a9de734199567a4d769498f743d \ + file://${COMMON_LICENSE_DIR}/LGPL-2.1;md5=1a6d268fd218675ffea8be556788b780 \ +" + +SRC_URI[md5sum] = "a6bc06b3f7749f7d77a2b1bd13402821" +SRC_URI[sha256sum] = "16a29f7acaeec081bf0e7303ba5ee24fda1d21a1104669b837745f3ea61d6afa" + +S = "${WORKDIR}/Unix-Statgrab-${PV}" + +inherit cpan pkgconfig ptest-perl + +BBCLASSEXTEND = "native" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-perl/recipes-perl/libsub/libsub-exporter-progressive-perl_0.001013.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-perl/recipes-perl/libsub/libsub-exporter-progressive-perl_0.001013.bb index 64d19c0f..3d530d1a 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-perl/recipes-perl/libsub/libsub-exporter-progressive-perl_0.001013.bb +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-perl/recipes-perl/libsub/libsub-exporter-progressive-perl_0.001013.bb @@ -13,8 +13,6 @@ HOMEPAGE = "https://metacpan.org/pod/Sub-Exporter-Progressive/" LICENSE = "Artistic-1.0 | GPL-1.0+" LIC_FILES_CHKSUM = "file://LICENSE;md5=003fa970662359a43ac2c2961108b0f1" -DEPENDS_${PN} = " perl-module-test-more" - SRC_URI = "${CPAN_MIRROR}/authors/id/F/FR/FREW/Sub-Exporter-Progressive-${PV}.tar.gz" SRC_URI[md5sum] = "72cf6acdd2a0a8b105821a4db98e4ebe" SRC_URI[sha256sum] = "d535b7954d64da1ac1305b1fadf98202769e3599376854b2ced90c382beac056" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-perl/recipes-perl/libsub/libsub-uplevel-perl_0.2800.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-perl/recipes-perl/libsub/libsub-uplevel-perl_0.2800.bb new file mode 100644 index 00000000..f0510378 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-perl/recipes-perl/libsub/libsub-uplevel-perl_0.2800.bb @@ -0,0 +1,43 @@ +SUMMARY = "Sub::Uplevel - apparently run a function in a higher stack frame" +DESCRIPTION = " Like Tcl's uplevel() function, but not quite so dangerous. \ +The idea is just to fool caller(). All the really naughty bits of Tcl's \ +uplevel() are avoided. \ +\ +THIS IS NOT THE SORT OF THING YOU WANT TO DO EVERYDAY \ +" + +SECTION = "libs" +HOMEPAGE= "https://metacpan.org/release/Sub-Uplevel" + +LICENSE = "Artistic-1.0 | GPL-1.0+" +LIC_FILES_CHKSUM = "file://LICENSE;md5=7f1207cd3108e4ade18448d81e6bcb6c" + +CPAN_PACKAGE = "Sub-Uplevel" +CPAN_AUTHOR = "DAGOLDEN" + +SRC_URI = "${CPAN_MIRROR}/authors/id/D/DA/${CPAN_AUTHOR}/${CPAN_PACKAGE}-${PV}.tar.gz" + +SRC_URI[md5sum] = "6c6a174861fd160e8d5871a86df00baf" +SRC_URI[sha256sum] = "b4f3f63b80f680a421332d8851ddbe5a8e72fcaa74d5d1d98f3c8cc4a3ece293" + +S = "${WORKDIR}/${CPAN_PACKAGE}-${PV}" + +inherit cpan ptest-perl + +RDEPENDS_${PN} += " \ + perl-module-carp \ + perl-module-constant \ + perl-module-strict \ + perl-module-warnings \ +" + +RDEPENDS_${PN}-ptest += " \ + perl-module-cpan \ + perl-module-exporter \ + perl-module-extutils-makemaker \ + perl-module-file-spec \ + perl-module-lib \ + perl-module-test-more \ +" + +BBCLASSEXTEND = "native nativesdk" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-perl/recipes-perl/libtest/libtest-nowarnings-perl_1.04.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-perl/recipes-perl/libtest/libtest-nowarnings-perl_1.04.bb new file mode 100644 index 00000000..f3c28d39 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-perl/recipes-perl/libtest/libtest-nowarnings-perl_1.04.bb @@ -0,0 +1,37 @@ +SUMMARY = "Make sure you didn't emit any warnings while testing" +DESCRIPTION = "In general, your tests shouldn't produce warnings. This \ +modules causes any warnings to be captured and stored. It automatically \ +adds an extra test that will run when your script ends to check that there \ +were no warnings. If there were any warings, the test will give a \\"not ok\\" \ +and diagnostics of where, when and what the warning was, including a stack \ +trace of what was going on when the it occurred.\ +\ +If some of your tests are supposed to produce warnings then you should \ +be capturing and checking them with Test::Warn, that way \ +Test::NoWarnings will not see them and so not complain.\ +\ +The test is run by an \\"END\\" block in Test::NoWarnings. It will not be \ +run when any forked children exit." + +SECTION = "libs" +LICENSE = "LGPL-2.1" + +HOMEPAGE= "https://metacpan.org/release/Test-NoWarnings" + +LIC_FILES_CHKSUM = "file://LICENSE;md5=d8045f3b8f929c1cb29a1e3fd737b499" + +CPAN_PACKAGE = "Test-NoWarnings" +CPAN_AUTHOR = "ADAMK" + +SRC_URI = "${CPAN_MIRROR}/authors/id/A/AD/${CPAN_AUTHOR}/${CPAN_PACKAGE}-${PV}.tar.gz" + +SRC_URI[md5sum] = "682ed043f7d3e38f3dfd8745fd21c49a" +SRC_URI[sha256sum] = "638a57658cb119af1fe5b15e73d47c2544dcfef84af0c6b1b2e97f08202b686c" + +RDEPENDS_${PN} += "perl-module-test-builder perl-module-test-more perl-module-test-tester" + +S = "${WORKDIR}/${CPAN_PACKAGE}-${PV}" + +inherit cpan ptest-perl + +BBCLASSEXTEND = "native nativesdk" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-perl/recipes-perl/libtest/libtest-warn-perl_0.36.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-perl/recipes-perl/libtest/libtest-warn-perl_0.36.bb new file mode 100644 index 00000000..c336da80 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-perl/recipes-perl/libtest/libtest-warn-perl_0.36.bb @@ -0,0 +1,46 @@ +SUMMARY = "Test::Warn - Perl extension to test methods for warnings" +DESCRIPTION = "This module provides a few convenience methods for testing \ +warning based code. \ +\ +If you are not already familiar with the Test::More manpage now would be \ +the time to go take a look. \ +" + +SECTION = "libs" +HOMEPAGE= "https://metacpan.org/release/Test-Warn" + +LICENSE = "Artistic-1.0 | GPL-1.0+" +LIC_FILES_CHKSUM = "file://README;beginline=73;endline=78;md5=42b423d91c92ba59c215835a2ee9b57a" + +CPAN_PACKAGE = "Test-Warn" +CPAN_AUTHOR = "BIGJ" + +SRC_URI = "${CPAN_MIRROR}/authors/id/B/BI/${CPAN_AUTHOR}/${CPAN_PACKAGE}-${PV}.tar.gz" + +SRC_URI[md5sum] = "3d958f43d36db263994affde5da09b51" +SRC_URI[sha256sum] = "ecbca346d379cef8d3c0e4ac0c8eb3b2613d737ffaaeae52271c38d7bf3c6cda" + +S = "${WORKDIR}/${CPAN_PACKAGE}-${PV}" + +inherit cpan ptest-perl + +do_install_ptest() { + cp -r ${B}/blib ${D}${PTEST_PATH} + chown -R root:root ${D}${PTEST_PATH} +} + +RDEPENDS_${PN} += " \ + libsub-uplevel-perl \ + perl-module-blib \ + perl-module-carp \ + perl-module-test-builder \ + perl-module-test-builder-tester \ + perl-module-test-tester \ +" + +RDEPENDS_${PN}-ptest += " \ + perl-module-file-spec \ + perl-module-test-more \ +" + +BBCLASSEXTEND = "native nativesdk" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-perl/recipes-perl/libtest/libtest-warnings-perl_0.028.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-perl/recipes-perl/libtest/libtest-warnings-perl_0.028.bb new file mode 100644 index 00000000..b40a5456 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-perl/recipes-perl/libtest/libtest-warnings-perl_0.028.bb @@ -0,0 +1,29 @@ +# Copyright (C) 2020 Jens Rehsack +# Released under the MIT license (see COPYING.MIT for the terms) + +DESCRIPTION = "If you've ever tried to use Test::NoWarnings to confirm there are no \ +warnings generated by your tests, combined with the convenience of \ +\\"done_testing\\" to not have to declare a test count, you'll have discovered \ +that these two features do not play well together, as the test count will \ +be calculated *before* the warnings test is run, resulting in a TAP error. \ +(See "examples/test_nowarnings.pl" in this distribution for a \ +demonstration.)" + +SECTION = "libs" +LICENSE = "Artistic-1.0 | GPL-1.0+" + +HOMEPAGE= "https://metacpan.org/release/Test-Warnings" + +LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/Artistic-1.0;md5=cda03bbdc3c1951996392b872397b798 \ +file://${COMMON_LICENSE_DIR}/GPL-1.0;md5=e9e36a9de734199567a4d769498f743d" + +SRC_URI = "https://cpan.metacpan.org/authors/id/E/ET/ETHER/Test-Warnings-${PV}.tar.gz" + +SRC_URI[md5sum] = "cd007342017fedfb02d6fde75602e473" +SRC_URI[sha256sum] = "26fda9f8d279e943d27e43a4a3a5cea8a6592cd36e7308695f8dc6602262c0e0" + +S = "${WORKDIR}/Test-Warnings-${PV}" + +inherit cpan allarch ptest-perl + +BBCLASSEXTEND = "native nativesdk" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-perl/recipes-perl/libunicode/libunicode-linebreak-perl_2017.004.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-perl/recipes-perl/libunicode/libunicode-linebreak-perl_2017.004.bb deleted file mode 100644 index 5ccb411f..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-perl/recipes-perl/libunicode/libunicode-linebreak-perl_2017.004.bb +++ /dev/null @@ -1,26 +0,0 @@ -SUMMARY = "Unicode::LineBreak - UAX #14 Unicode Line Breaking Algorithm." -DESCRIPTION = "Unicode::LineBreak performs Line Breaking Algorithm described in Unicode \ -Standard Annex #14 [UAX #14]. East_Asian_Width informative property \ -defined by Annex #11 [UAX #11] will be concerned to determine breaking \ -positions." -SECTION = "libs" - -HOMEPAGE = "http://search.cpan.org/~nezumi/Unicode-LineBreak-${PV}/" - -LICENSE = "Artistic-1.0 | GPLv1+" -LIC_FILES_CHKSUM = "file://README;md5=77241abd74fec561b3f3de1b44c0241b" - -SRC_URI = "${CPAN_MIRROR}/authors/id/N/NE/NEZUMI/Unicode-LineBreak-${PV}.tar.gz" - -SRC_URI[md5sum] = "de7672227922260ac92d20bbad29660b" -SRC_URI[sha256sum] = "655bc3c4cb60ad0770d97816716cfe322f24e602c70e595f5941dfa02c40cb76" - -S = "${WORKDIR}/Unicode-LineBreak-${PV}" - -DEPENDS = "libsombok3 libmime-charset-perl" - -RDEPENDS_${PN} = "libsombok3 libmime-charset-perl" - -inherit cpan - -BBCLASSEXTEND = "native" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-perl/recipes-perl/libunicode/libunicode-linebreak-perl_2019.001.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-perl/recipes-perl/libunicode/libunicode-linebreak-perl_2019.001.bb new file mode 100644 index 00000000..304b3757 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-perl/recipes-perl/libunicode/libunicode-linebreak-perl_2019.001.bb @@ -0,0 +1,55 @@ +SUMMARY = "Unicode::LineBreak - UAX #14 Unicode Line Breaking Algorithm." +DESCRIPTION = "Unicode::LineBreak performs Line Breaking Algorithm described in Unicode \ +Standard Annex #14 [UAX #14]. East_Asian_Width informative property \ +defined by Annex #11 [UAX #11] will be concerned to determine breaking \ +positions." +SECTION = "libs" + +HOMEPAGE = "https://metacpan.org/release/Unicode-LineBreak" + +LICENSE = "Artistic-1.0 | GPL-1.0+" +LIC_FILES_CHKSUM = "file://README;beginline=5;endline=9;md5=b5e8b1099b86b86fbc315b50484231ab" + +SRC_URI = "${CPAN_MIRROR}/authors/id/N/NE/NEZUMI/Unicode-LineBreak-${PV}.tar.gz" + +SRC_URI[md5sum] = "003d6da7a13700e069afed9238c864b9" +SRC_URI[sha256sum] = "486762e4cacddcc77b13989f979a029f84630b8175e7fef17989e157d4b6318a" + +S = "${WORKDIR}/Unicode-LineBreak-${PV}" + +DEPENDS = "libsombok3 libmime-charset-perl" + +inherit cpan ptest-perl + +do_install_ptest() { + cp -r ${B}/test-data ${D}${PTEST_PATH} + chown -R root:root ${D}${PTEST_PATH} +} + +RDEPENDS_${PN} += " \ + libmime-charset-perl \ + libsombok3 \ + perl-module-carp \ + perl-module-constant \ + perl-module-encode \ + perl-module-exporter \ + perl-module-overload \ + perl-module-strict \ + perl-module-vars \ + perl-module-warnings \ + perl-module-xsloader \ +" + +RDEPENDS_${PN}-ptest += " \ + perl-module-findbin \ + perl-module-lib \ + perl-module-strict \ + perl-module-test-more \ +" + +RPROVIDES_${PN} += " \ + libtext-linefold-perl \ + libunicode-gcstring-perl \ +" + +BBCLASSEXTEND = "native" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/conf/layer.conf b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/conf/layer.conf index fb5cda55..db65943f 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/conf/layer.conf +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/conf/layer.conf @@ -14,6 +14,6 @@ LAYERVERSION_meta-python = "1" LAYERDEPENDS_meta-python = "core openembedded-layer" -LAYERSERIES_COMPAT_meta-python = "thud warrior" +LAYERSERIES_COMPAT_meta-python = "thud warrior zeus" LICENSE_PATH += "${LAYERDIR}/licenses" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-connectivity/python-h2/python-h2.inc b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-connectivity/python-h2/python-h2.inc new file mode 100644 index 00000000..42629c26 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-connectivity/python-h2/python-h2.inc @@ -0,0 +1,10 @@ +DESCRIPTION = "HTTP/2 State-Machine based protocol implementation" +HOMEPAGE = "https://github.com/python-hyper/hyper-h2" +LICENSE = "MIT" + +LIC_FILES_CHKSUM = "file://LICENSE;md5=b6b2f6bbe76528af543242d606c14851" + +SRC_URI[md5sum] = "950b5a62a2a608dc4547a01edf99aa8f" +SRC_URI[sha256sum] = "b8a32bd282594424c0ac55845377eea13fa54fe4a8db012f3a198ed923dc3ab4" + +inherit pypi diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-connectivity/python-h2/python-h2_3.1.1.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-connectivity/python-h2/python-h2_3.1.1.bb new file mode 100644 index 00000000..b8412974 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-connectivity/python-h2/python-h2_3.1.1.bb @@ -0,0 +1,3 @@ +require python-h2.inc + +inherit setuptools diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-connectivity/python-h2/python3-h2_3.1.1.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-connectivity/python-h2/python3-h2_3.1.1.bb new file mode 100644 index 00000000..7230a27e --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-connectivity/python-h2/python3-h2_3.1.1.bb @@ -0,0 +1,3 @@ +require python-h2.inc + +inherit setuptools3 diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-connectivity/python-hpack/python-hpack.inc b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-connectivity/python-hpack/python-hpack.inc new file mode 100644 index 00000000..eccfa8c5 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-connectivity/python-hpack/python-hpack.inc @@ -0,0 +1,10 @@ +DESCRIPTION = "Pure-Python HPACK header compression" +HOMEPAGE = "https://github.com/python-hyper/hpack" +LICENSE = "MIT" + +LIC_FILES_CHKSUM = "file://LICENSE;md5=5bf1c68e73fbaec2b1687b7e71514393" + +SRC_URI[md5sum] = "556b0ae66180f54c2ce8029a0952088b" +SRC_URI[sha256sum] = "8eec9c1f4bfae3408a3f30500261f7e6a65912dc138526ea054f9ad98892e9d2" + +inherit pypi diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-connectivity/python-hpack/python-hpack_3.0.0.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-connectivity/python-hpack/python-hpack_3.0.0.bb new file mode 100644 index 00000000..faaeb855 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-connectivity/python-hpack/python-hpack_3.0.0.bb @@ -0,0 +1,3 @@ +require python-hpack.inc + +inherit setuptools diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-connectivity/python-hpack/python3-hpack_3.0.0.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-connectivity/python-hpack/python3-hpack_3.0.0.bb new file mode 100644 index 00000000..e196c55b --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-connectivity/python-hpack/python3-hpack_3.0.0.bb @@ -0,0 +1,3 @@ +require python-hpack.inc + +inherit setuptools3 diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-connectivity/python-hyperframe/python-hyperframe.inc b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-connectivity/python-hyperframe/python-hyperframe.inc new file mode 100644 index 00000000..0066bf8e --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-connectivity/python-hyperframe/python-hyperframe.inc @@ -0,0 +1,10 @@ +DESCRIPTION = "HTTP/2 framing layer for Python" +HOMEPAGE = "https://github.com/python-hyper/hyperframe" +LICENSE = "MIT" + +LIC_FILES_CHKSUM = "file://LICENSE;md5=5bf1c68e73fbaec2b1687b7e71514393" + +SRC_URI[md5sum] = "6919183242feb26d8bce3b4cba81defd" +SRC_URI[sha256sum] = "a9f5c17f2cc3c719b917c4f33ed1c61bd1f8dfac4b1bd23b7c80b3400971b41f" + +inherit pypi diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-connectivity/python-hyperframe/python-hyperframe_5.2.0.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-connectivity/python-hyperframe/python-hyperframe_5.2.0.bb new file mode 100644 index 00000000..4f0c9977 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-connectivity/python-hyperframe/python-hyperframe_5.2.0.bb @@ -0,0 +1,3 @@ +require python-hyperframe.inc + +inherit setuptools diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-connectivity/python-hyperframe/python3-hyperframe_5.2.0.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-connectivity/python-hyperframe/python3-hyperframe_5.2.0.bb new file mode 100644 index 00000000..f10fb6df --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-connectivity/python-hyperframe/python3-hyperframe_5.2.0.bb @@ -0,0 +1,3 @@ +require python-hyperframe.inc + +inherit setuptools3 diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-connectivity/python-priority/python-priority.inc b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-connectivity/python-priority/python-priority.inc new file mode 100644 index 00000000..aa93819b --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-connectivity/python-priority/python-priority.inc @@ -0,0 +1,10 @@ +DESCRIPTION = "A pure-Python implementation of the HTTP/2 priority tree" +HOMEPAGE = "https://github.com/python-hyper/priority" +LICENSE = "MIT" + +LIC_FILES_CHKSUM = "file://LICENSE;md5=ae57d8a09fc8b6b164d7357339619045" + +SRC_URI[md5sum] = "4f1ff52f7fa448e9d9cb46337ae86d1e" +SRC_URI[sha256sum] = "6bc1961a6d7fcacbfc337769f1a382c8e746566aaa365e78047abe9f66b2ffbe" + +inherit pypi diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-connectivity/python-priority/python-priority_1.3.0.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-connectivity/python-priority/python-priority_1.3.0.bb new file mode 100644 index 00000000..cbe26257 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-connectivity/python-priority/python-priority_1.3.0.bb @@ -0,0 +1,3 @@ +require python-priority.inc + +inherit setuptools diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-connectivity/python-priority/python3-priority_1.3.0.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-connectivity/python-priority/python3-priority_1.3.0.bb new file mode 100644 index 00000000..fe756b56 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-connectivity/python-priority/python3-priority_1.3.0.bb @@ -0,0 +1,3 @@ +require python-priority.inc + +inherit setuptools3 diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-connectivity/python-pyconnman/python-pyconnman.inc b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-connectivity/python-pyconnman/python-pyconnman.inc index beb2baf8..8517079b 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-connectivity/python-pyconnman/python-pyconnman.inc +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-connectivity/python-pyconnman/python-pyconnman.inc @@ -4,8 +4,8 @@ LICENSE = "Apache-2.0" LIC_FILES_CHKSUM = "file://LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57" -SRC_URI[md5sum] = "b7fa82034b1c0e1fb1b518ffe3bb4fc0" -SRC_URI[sha256sum] = "46c64c0692063fd0c9fb0216d49f7884bec9fa9760d8473db4b1e2f8162fab4a" +SRC_URI[md5sum] = "d60bdffbd9c920f005fdc5e05a8b94cd" +SRC_URI[sha256sum] = "d3a63a039c82b08a1171b003eafa62c6f128aa4eaa1ce7a55a9401b48f9ad926" inherit pypi diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-connectivity/python-pyconnman/python-pyconnman_0.1.0.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-connectivity/python-pyconnman/python-pyconnman_0.2.0.bb similarity index 100% rename from Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-connectivity/python-pyconnman/python-pyconnman_0.1.0.bb rename to Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-connectivity/python-pyconnman/python-pyconnman_0.2.0.bb diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-connectivity/python-pyconnman/python3-pyconnman_0.1.0.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-connectivity/python-pyconnman/python3-pyconnman_0.2.0.bb similarity index 100% rename from Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-connectivity/python-pyconnman/python3-pyconnman_0.1.0.bb rename to Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-connectivity/python-pyconnman/python3-pyconnman_0.2.0.bb diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-connectivity/python-pyro4/python-pyro4_4.73.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-connectivity/python-pyro4/python-pyro4_4.73.bb deleted file mode 100644 index 88f5b185..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-connectivity/python-pyro4/python-pyro4_4.73.bb +++ /dev/null @@ -1,18 +0,0 @@ -SUMMARY = "Python Remote Objects" -LICENSE = "MIT" -LIC_FILES_CHKSUM = "file://LICENSE;md5=cd13dafd4eeb0802bb6efea6b4a4bdbc" - -SRC_URI[md5sum] = "0375c061b93411feb86da01e801df888" -SRC_URI[sha256sum] = "536b07a097d0619e7ab1effa3747fda177a24168d17a07a93ca9ac30977608f7" - -PYPI_PACKAGE = "Pyro4" - -inherit pypi setuptools - -RDEPENDS_${PN} += " \ - ${PYTHON_PN}-logging \ - ${PYTHON_PN}-selectors34 \ - ${PYTHON_PN}-serpent \ - ${PYTHON_PN}-threading \ - ${PYTHON_PN}-zlib \ - " diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-connectivity/python-pyro4/python-pyro4_4.77.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-connectivity/python-pyro4/python-pyro4_4.77.bb new file mode 100644 index 00000000..738cf867 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-connectivity/python-pyro4/python-pyro4_4.77.bb @@ -0,0 +1,18 @@ +SUMMARY = "Python Remote Objects" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://LICENSE;md5=cd13dafd4eeb0802bb6efea6b4a4bdbc" + +SRC_URI[md5sum] = "21f015ae93cf9ea2bbbc418a2267e9fb" +SRC_URI[sha256sum] = "2bfe12a22f396474b0e57c898c7e2c561a8f850bf2055d8cf0f7119f0c7a523f" + +PYPI_PACKAGE = "Pyro4" + +inherit pypi setuptools + +RDEPENDS_${PN} += " \ + ${PYTHON_PN}-logging \ + ${PYTHON_PN}-selectors34 \ + ${PYTHON_PN}-serpent \ + ${PYTHON_PN}-threading \ + ${PYTHON_PN}-zlib \ + " diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-connectivity/python-pytun/python-pytun.inc b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-connectivity/python-pytun/python-pytun.inc index 79a8bfb2..3991a830 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-connectivity/python-pytun/python-pytun.inc +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-connectivity/python-pytun/python-pytun.inc @@ -2,8 +2,8 @@ SUMMARY = "Python TUN/TAP tunnel module" LICENSE = "MIT" LIC_FILES_CHKSUM = "file://LICENSE;md5=13f7629e8e4989b66b4a913ab05a91de" -SRC_URI[md5sum] = "5b35b1cf80a02cca7ec72eb95d6b0192" -SRC_URI[sha256sum] = "07595dadf85f5176eb08c8d4d9ba5b862a180e96633f670f91437c47a1bead0d" +SRC_URI[md5sum] = "adcaeea56d0ed06814487cdbde32d198" +SRC_URI[sha256sum] = "5ead86b3391acef239535ebcabeb04d2cdc6b40ab14580d28c6da193c2d1fe53" PYPI_PACKAGE = "python-pytun" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-connectivity/python-pytun/python-pytun_2.2.1.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-connectivity/python-pytun/python-pytun_2.3.0.bb similarity index 100% rename from Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-connectivity/python-pytun/python-pytun_2.2.1.bb rename to Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-connectivity/python-pytun/python-pytun_2.3.0.bb diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-connectivity/python-pytun/python3-pytun_2.2.1.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-connectivity/python-pytun/python3-pytun_2.3.0.bb similarity index 100% rename from Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-connectivity/python-pytun/python3-pytun_2.2.1.bb rename to Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-connectivity/python-pytun/python3-pytun_2.3.0.bb diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-connectivity/python-thrift/python-thrift_0.11.0.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-connectivity/python-thrift/python-thrift_0.11.0.bb deleted file mode 100644 index 10cff425..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-connectivity/python-thrift/python-thrift_0.11.0.bb +++ /dev/null @@ -1,18 +0,0 @@ -SUMMARY = "Python bindings for the Apache Thrift RPC system" -LICENSE = "Apache-2.0" -LIC_FILES_CHKSUM = "file://PKG-INFO;md5=e3641ae1a26cf5c12a3a71bd3030ab0e" - -SRC_URI[md5sum] = "36165d5c80e6b101dbe9fcf7ef524d51" -SRC_URI[sha256sum] = "7d59ac4fdcb2c58037ebd4a9da5f9a49e3e034bf75b3f26d9fe48ba3d8806e6b" - -inherit pypi setuptools - -# Use different filename to prevent conflicts with thrift itself -PYPI_SRC_URI_append = ";downloadfilename=${BP}.${PYPI_PACKAGE_EXT}" - -RDEPENDS_${PN} += "\ - ${PYTHON_PN}-logging \ - ${PYTHON_PN}-six \ - ${PYTHON_PN}-stringold \ - ${PYTHON_PN}-threading \ -" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-connectivity/python-thrift/python-thrift_0.13.0.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-connectivity/python-thrift/python-thrift_0.13.0.bb new file mode 100644 index 00000000..2d51619d --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-connectivity/python-thrift/python-thrift_0.13.0.bb @@ -0,0 +1,18 @@ +SUMMARY = "Python bindings for the Apache Thrift RPC system" +LICENSE = "Apache-2.0" +LIC_FILES_CHKSUM = "file://PKG-INFO;md5=e95cd2f17c70d3180a2b361332319fe0" + +SRC_URI[md5sum] = "c3bc8d9a910d2c9ce26f2ad1f7c96762" +SRC_URI[sha256sum] = "9af1c86bf73433afc6010ed376a6c6aca2b54099cc0d61895f640870a9ae7d89" + +inherit pypi setuptools + +# Use different filename to prevent conflicts with thrift itself +PYPI_SRC_URI_append = ";downloadfilename=${BP}.${PYPI_PACKAGE_EXT}" + +RDEPENDS_${PN} += "\ + ${PYTHON_PN}-logging \ + ${PYTHON_PN}-six \ + ${PYTHON_PN}-stringold \ + ${PYTHON_PN}-threading \ +" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-core/packagegroups/packagegroup-meta-python.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-core/packagegroups/packagegroup-meta-python.bb index 82cda586..bb05de1f 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-core/packagegroups/packagegroup-meta-python.bb +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-core/packagegroups/packagegroup-meta-python.bb @@ -33,14 +33,14 @@ RDEPENDS_packagegroup-meta-python = "\ python-robotframework-seriallibrary python-pyalsaaudio python-pytest-helpers-namespace \ python-alembic python-flask-pymongo python-slip-dbus python-pydbus python-automat python-rfc3987 \ python-tzlocal python-backports-ssl python-subprocess32 python-asn1crypto python-pybind11 \ - python-ptyprocess python-babel python-passlib python-oauthlib python-sdnotify \ + python-ptyprocess python-babel python-passlib python-sdnotify \ python-lazy-object-proxy python-cryptography-vectors python-crcmod python-pyusb python-vobject \ python-webcolors python-pyparsing python-beautifulsoup4 python-cffi python-tornado-redis \ python-itsdangerous python-pyasn1-modules python-netaddr python-vcversioner \ python-sh python-greenlet python-paho-mqtt python-traceback2 python-gdata python-dbusmock \ python-whoosh python-lockfile python-isort python-wtforms python-feedparser python-flask-restful \ python-pysnmp python-flask-babel python-pytest-tempdir python-flask-nav python-pyzmq python-pyyaml \ - python-protobuf python-pluggy python-jsonschema python-msgpack python-pandas \ + python-protobuf python-pluggy python-jsonschema python-msgpack \ python-periphery python-pint python-pycryptodome python-yappi python-pycrypto python-pretend \ python-pyserial python-pyiface python-docutils python-grpcio-tools python-django-south \ python-backports-functools-lru-cache python-py python-click python-flask-migrate \ @@ -57,7 +57,7 @@ RDEPENDS_packagegroup-meta-python = "\ python-markupsafe python-pytest-runner python-grpcio python-mccabe python-pytz python-selectors34 \ python-cython python-chardet python-editor python-flask-bootstrap python-html5lib \ python-singledispatch python-redis python-flask-mail python-funcsigs python-snimpy python-pyasn1 \ - python-decorator python-urllib3 python-feedformatter python-matplotlib python-iso8601 \ + python-decorator python-urllib3 python-feedformatter python-iso8601 \ python-numeric python-robotframework python-django python-simplejson python-wcwidth \ python-configparser python-epydoc python-intervals python-speaklater \ python-aws-iot-device-sdk-python python-constantly python-bitarray python-flask-wtf \ @@ -77,7 +77,7 @@ RDEPENDS_packagegroup-meta-python3 = "\ python3-pint python3-coverage python3-iso8601 python3-ndg-httpsclient python3-yappi python3-twofish \ python3-speaklater python3-smbus python3-djangorestframework python3-msgpack python3-jsonpointer \ python3-flask-script python3-cassandra-driver python3-cython python3-ujson python3-aws-iot-device-sdk-python \ - python3-pytest-runner python3-pyiface python3-flask-login python3-markupsafe python3-setuptools-scm \ + python3-pytest-runner python3-pyiface python3-docutils python3-flask-login python3-markupsafe python3-setuptools-scm \ python3-semver python3-sdnotify python3-flask-user python3-tornado python3-jsonpatch python3-pexpect \ python3-progress python3-jsonschema python3-xstatic python3-pyroute2 python3-idna python3-sqlalchemy \ python3-urllib3 python3-flask-mail python3-asn1crypto python3-pyinotify python3-intervals python3-pyperclip \ diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/gyp/gyp-py2_git.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/gyp/gyp-py2_git.bb new file mode 100644 index 00000000..d69b92ce --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/gyp/gyp-py2_git.bb @@ -0,0 +1,2 @@ +inherit setuptools +require gyp.inc diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/gyp/gyp.inc b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/gyp/gyp.inc new file mode 100644 index 00000000..98ed42cc --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/gyp/gyp.inc @@ -0,0 +1,13 @@ +DESCRIPTION = "GYP is a Meta-Build system: a build system that generates other build systems." +HOMEPAGE = "https://gyp.gsrc.io/" +LICENSE = "BSD-3-Clause" +LIC_FILES_CHKSUM = "file://LICENSE;md5=ab828cb8ce4c62ee82945a11247b6bbd" +SECTION = "devel" + +SRC_URI = "git://chromium.googlesource.com/external/gyp;protocol=https" +SRCREV = "fcd686f1880fa52a1ee78d3e98af1b88cb334528" + +S = "${WORKDIR}/git" +PV = "0.1+git${SRCPV}" + +BBCLASSEXTEND = "native nativesdk" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/gyp/gyp_git.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/gyp/gyp_git.bb index 2b3f3fb2..8e48a27f 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/gyp/gyp_git.bb +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/gyp/gyp_git.bb @@ -1,15 +1,2 @@ -DESCRIPTION = "GYP is a Meta-Build system: a build system that generates other build systems." -HOMEPAGE = "https://gyp.gsrc.io/" -LICENSE = "BSD-3-Clause" -LIC_FILES_CHKSUM = "file://LICENSE;md5=ab828cb8ce4c62ee82945a11247b6bbd" -SECTION = "devel" - -SRC_URI = "git://chromium.googlesource.com/external/gyp;protocol=https" -SRCREV = "8bee09f4a57807136593ddc906b0b213c21f9014" - -S = "${WORKDIR}/git" -PV = "0.1+git${SRCPV}" - inherit setuptools3 - -BBCLASSEXTEND = "native nativesdk" +require gyp.inc diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python-jsonref/python-jsonref.inc b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python-jsonref/python-jsonref.inc new file mode 100644 index 00000000..0e69e453 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python-jsonref/python-jsonref.inc @@ -0,0 +1,11 @@ +SUMMARY = "jsonref is a library for automatic dereferencing of JSON Reference objects for Python" +HOMEPAGE = "https://github.com/gazpachoking/jsonref" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://LICENSE;md5=a34264f25338d41744dca1abfe4eb18f" + +SRC_URI[md5sum] = "42b518b9ccd6852d1d709749bc96cb70" +SRC_URI[sha256sum] = "f3c45b121cf6257eafabdc3a8008763aed1cd7da06dbabc59a9e4d2a5e4e6697" + +inherit pypi setuptools + +BBCLASSEXTEND = "native nativesdk" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python-jsonref/python-jsonref_0.2.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python-jsonref/python-jsonref_0.2.bb new file mode 100644 index 00000000..d97893f5 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python-jsonref/python-jsonref_0.2.bb @@ -0,0 +1 @@ +require python-jsonref.inc diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/pamela_0.3.0.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/pamela_0.3.0.bb index 8071fcb0..030c22f8 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/pamela_0.3.0.bb +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/pamela_0.3.0.bb @@ -11,5 +11,5 @@ inherit pypi setuptools RDEPENDS_${PN} = "libpam" -inherit distro_features_check +inherit features_check REQUIRED_DISTRO_FEATURES = "pam" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-aiofiles.inc b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-aiofiles.inc new file mode 100644 index 00000000..3ecb21c8 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-aiofiles.inc @@ -0,0 +1,14 @@ +SUMMARY = "File support for asyncio" +DESCRIPTION = "Asynchronous local file IO library for asyncio and Python" +HOMEPAGE = "https://github.com/aio-libs/aiohttp" +LICENSE = "Apache-2.0" +LIC_FILES_CHKSUM = "file://LICENSE;md5=d2794c0df5b907fdace235a619d80314" + +SRC_URI[md5sum] = "cb33cf96c371fbd56fc27ab0bd81bd61" +SRC_URI[sha256sum] = "021ea0ba314a86027c166ecc4b4c07f2d40fc0f4b3a950d1868a0f2571c2bbee" + +PYPI_PACKAGE = "aiofiles" +inherit pypi +RDEPENDS_${PN} = "\ + ${PYTHON_PN}-asyncio \ +" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-aiohttp.inc b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-aiohttp.inc index 81f1809b..e711ad71 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-aiohttp.inc +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-aiohttp.inc @@ -15,4 +15,7 @@ RDEPENDS_${PN} = "\ ${PYTHON_PN}-idna-ssl \ ${PYTHON_PN}-multidict \ ${PYTHON_PN}-yarl \ + ${PYTHON_PN}-typing \ + ${PYTHON_PN}-misc \ + ${PYTHON_PN}-attrs \ " diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-alembic.inc b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-alembic.inc index 9d556e7e..c94c142d 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-alembic.inc +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-alembic.inc @@ -1,9 +1,9 @@ DESCRIPTION = "A database migration tool for SQLAlchemy" -LICENSE = "BSD" -LIC_FILES_CHKSUM = "file://LICENSE;md5=a5befaf254582f10aadd62d83cd20322" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://LICENSE;md5=28aaf14a6592d14dbfb2f4abd597aa27" -SRC_URI[md5sum] = "9969c707786f41f1b95c09c54f8970e9" -SRC_URI[sha256sum] = "828dcaa922155a2b7166c4f36ec45268944e4055c86499bd14319b4c8c0094b7" +SRC_URI[md5sum] = "3d7584a8fb0203ec82b90baa726d2bd9" +SRC_URI[sha256sum] = "3b0cb1948833e062f4048992fbc97ecfaaaac24aaa0d83a1202a99fb58af8c6d" PYPI_PACKAGE = "alembic" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-alembic_1.0.10.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-alembic_1.3.2.bb similarity index 100% rename from Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-alembic_1.0.10.bb rename to Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-alembic_1.3.2.bb diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-asn1crypto.inc b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-asn1crypto.inc index f1f0a3c5..de6e1a55 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-asn1crypto.inc +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-asn1crypto.inc @@ -2,12 +2,12 @@ DESCRIPTION = "A fast, pure Python library for parsing and serializing ASN.1 str HOMEPAGE = "https://github.com/wbond/asn1crypto" SECTION = "devel/python" LICENSE = "MIT" -LIC_FILES_CHKSUM = "file://LICENSE;md5=52010cd3c7d7bd965b55721ef4d93ec2" +LIC_FILES_CHKSUM = "file://LICENSE;md5=7439e38f5e04ff62fae436184786b7ca" PYPI_PACKAGE = "asn1crypto" -SRC_URI[md5sum] = "de3520426e81a6581352d4366f310eb1" -SRC_URI[sha256sum] = "9d5c20441baf0cb60a4ac34cc447c6c189024b6b4c6cd7877034f4965c464e49" +SRC_URI[md5sum] = "daad112940181917e3ff169b47b9bd9a" +SRC_URI[sha256sum] = "5a215cb8dc12f892244e3a113fe05397ee23c5c4ca7a69cd6e69811755efc42d" inherit pypi @@ -20,4 +20,4 @@ RDEPENDS_${PN}_class-target += " \ ${PYTHON_PN}-netclient \ " -BBCLASSEXTEND = "native" +BBCLASSEXTEND = "native nativesdk" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-asn1crypto_0.24.0.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-asn1crypto_1.3.0.bb similarity index 100% rename from Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-asn1crypto_0.24.0.bb rename to Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-asn1crypto_1.3.0.bb diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-astroid.inc b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-astroid.inc index fae0f13c..e9a68789 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-astroid.inc +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-astroid.inc @@ -4,11 +4,13 @@ SECTION = "devel/python" LICENSE = "LGPL-2.1" LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe" -SRC_URI[md5sum] = "2dd01ef0d5b5f0fc754c1ba40137b61c" -SRC_URI[sha256sum] = "fc9b582dba0366e63540982c3944a9230cbc6f303641c51483fa547dcc22393a" +SRC_URI[md5sum] = "5f3d73d82d1753b59bb49a6bc6046dee" +SRC_URI[sha256sum] = "71ea07f44df9568a75d0f354c49143a4575d90645e9fead6dfb52c26a85ed13a" inherit pypi +DEPENDS += "${PYTHON_PN}-pytest-runner-native" + PACKAGES =+ "${PN}-tests" FILES_${PN}-tests += " \ diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-astroid_1.6.5.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-astroid_2.3.3.bb similarity index 100% rename from Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-astroid_1.6.5.bb rename to Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-astroid_2.3.3.bb diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-async-timeout.inc b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-async-timeout.inc index 7e4959eb..e71a0026 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-async-timeout.inc +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-async-timeout.inc @@ -13,3 +13,7 @@ SRC_URI[sha256sum] = "0c3c816a028d47f659d6ff5c745cb2acf1f966da1fe5c19c77a70282b2 PYPI_PACKAGE = "async-timeout" inherit pypi + +RDEPENDS_${PN} = "\ + ${PYTHON_PN}-asyncio \ +" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-atomicwrites.inc b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-atomicwrites.inc new file mode 100644 index 00000000..773e9dd7 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-atomicwrites.inc @@ -0,0 +1,7 @@ +DESCRIPTION = "Powerful Python library for atomic file writes" +HOMEPAGE = "https://github.com/untitaker/python-atomicwrites" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://LICENSE;md5=91cc36cfafeefb7863673bcfcb1d4da4" + +SRC_URI[md5sum] = "ce11f780a4ce0fce8a55d64494a88178" +SRC_URI[sha256sum] = "75a9445bac02d8d058d5e1fe689654ba5a6556a1dfd8ce6ec55a0ed79866cfa6" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-atomicwrites_1.3.0.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-atomicwrites_1.3.0.bb new file mode 100644 index 00000000..c7b41d60 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-atomicwrites_1.3.0.bb @@ -0,0 +1,2 @@ +inherit pypi setuptools +require python-atomicwrites.inc diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-attrs.inc b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-attrs.inc index 1f767ba1..35d28a44 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-attrs.inc +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-attrs.inc @@ -3,8 +3,8 @@ HOMEPAGE = "http://www.attrs.org/" LICENSE = "MIT" LIC_FILES_CHKSUM = "file://LICENSE;md5=d4ab25949a73fe7d4fdee93bcbdbf8ff" -SRC_URI[sha256sum] = "f0b870f674851ecbfbbbd364d6b5cbdff9dcedbc7f3f5e18a6891057f21fe399" -SRC_URI[md5sum] = "2be7bce157988928f5ff2bb50a0b510d" +SRC_URI[sha256sum] = "f7b7ce16570fe9965acd6d30101a28f62fb4a7f9e926b3bbc9b61f8b04247e72" +SRC_URI[md5sum] = "5b2db50fcc31be34d32798183c9bd062" inherit pypi @@ -12,3 +12,5 @@ RDEPENDS_${PN}_class-target += " \ ${PYTHON_PN}-crypt \ ${PYTHON_PN}-ctypes \ " + +BBCLASSEXTEND = "native" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-attrs_19.1.0.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-attrs_19.3.0.bb similarity index 100% rename from Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-attrs_19.1.0.bb rename to Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-attrs_19.3.0.bb diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-automat.inc b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-automat.inc index f6cbb35c..ec392216 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-automat.inc +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-automat.inc @@ -5,8 +5,8 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=4ad213bcca81688e94593e5f60c87477" FILESEXTRAPATHS_prepend := "${THISDIR}/python-automat:" -SRC_URI[md5sum] = "b72d5b7a83c2b1bd6e9ec3614a69f9ea" -SRC_URI[sha256sum] = "cbd78b83fa2d81fe2a4d23d258e1661dd7493c9a50ee2f1a5b2cac61c1793b0e" +SRC_URI[md5sum] = "47e980a48201a1dabe37fa11f0187013" +SRC_URI[sha256sum] = "269a09dfb063a3b078983f4976d83f0a0d3e6e7aaf8e27d8df1095e09dc4a484" PYPI_PACKAGE = "Automat" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-automat_0.7.0.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-automat_0.8.0.bb similarity index 100% rename from Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-automat_0.7.0.bb rename to Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-automat_0.8.0.bb diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-aws-iot-device-sdk-python.inc b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-aws-iot-device-sdk-python.inc index 7423fa76..60493e1d 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-aws-iot-device-sdk-python.inc +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-aws-iot-device-sdk-python.inc @@ -7,8 +7,8 @@ LIC_FILES_CHKSUM = "\ file://AWSIoTPythonSDK/core/protocol/paho/client.py;endline=14;md5=5a3c8a1a4bb71bd934f450ecff972ad9 \ " -SRC_URI[md5sum] = "50a5c46410c2b44b5c09f1ea5eb15a3b" -SRC_URI[sha256sum] = "b3c8af3ce24eab861447a194f3c382509dd70e90452c86a5426f1e7272460177" +SRC_URI[md5sum] = "2b3df629827d8bc18ca4d927b4885a17" +SRC_URI[sha256sum] = "7e67c8cfeee8a1c8fd251bcc418de9d4dca697753565c9a9e614525179d9555d" inherit pypi diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-aws-iot-device-sdk-python_1.4.0.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-aws-iot-device-sdk-python_1.4.7.bb similarity index 100% rename from Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-aws-iot-device-sdk-python_1.4.0.bb rename to Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-aws-iot-device-sdk-python_1.4.7.bb diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-babel.inc b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-babel.inc index 42746729..c55b4592 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-babel.inc +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-babel.inc @@ -1,6 +1,6 @@ DESCRIPTION = "A collection of tools for internationalizing Python applications" HOMEPAGE = "http://babel.edgewall.org/" -LICENSE = "BSD" +LICENSE = "BSD-3-Clause" LIC_FILES_CHKSUM = "file://LICENSE;md5=942469df9305abb1c59e95f778310384" SRC_URI[md5sum] = "83c158b7dae9135750a7cf204e6e2eea" @@ -23,3 +23,5 @@ RDEPENDS_${PN} += " \ ${PYTHON_PN}-shell \ ${PYTHON_PN}-threading \ " + +BBCLASSEXTEND = "native nativesdk" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-backports-abc_0.4.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-backports-abc_0.4.bb deleted file mode 100644 index 6a4d267b..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-backports-abc_0.4.bb +++ /dev/null @@ -1,18 +0,0 @@ -SUMMARY = "collections.abc from Python 3.4" -DESCRIPTION = "A backport of recent additions to the 'collections.abc' module" - -LICENSE = "PSF" -LIC_FILES_CHKSUM = "file://${WORKDIR}/LICENSE;md5=dd98d01d471fac8d8dbdd975229dba03" - -# pypi package doesn't have valid entry for license -SRC_URI += "https://raw.githubusercontent.com/cython/backports_abc/master/LICENSE;name=license" - -SRC_URI[md5sum] = "0b65a216ce9dc9c1a7e20a729dd7c05b" -SRC_URI[sha256sum] = "8b3e4092ba3d541c7a2f9b7d0d9c0275b21c6a01c53a61c731eba6686939d0a5" -SRC_URI[license.md5sum] = "dd98d01d471fac8d8dbdd975229dba03" -SRC_URI[license.sha256sum] = "0a4f3b38055f50f047a42521568fa6ddb9a5976c2884f6ae138796d0f71150ca" - - - -PYPI_PACKAGE = "backports_abc" -inherit pypi setuptools diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-backports-abc_0.5.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-backports-abc_0.5.bb new file mode 100644 index 00000000..b588a31a --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-backports-abc_0.5.bb @@ -0,0 +1,11 @@ +SUMMARY = "collections.abc from Python 3.5" +DESCRIPTION = "A backport of recent additions to the 'collections.abc' module" +LICENSE = "PSF" +LIC_FILES_CHKSUM = "file://LICENSE;md5=dd98d01d471fac8d8dbdd975229dba03" + +PYPI_PACKAGE = "backports_abc" + +SRC_URI[md5sum] = "7d1936ec183a3586290adf60f6f96764" +SRC_URI[sha256sum] = "033be54514a03e255df75c5aee8f9e672f663f93abb723444caec8fe43437bde" + +inherit pypi setuptools diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-backports-functools-lru-cache.inc b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-backports-functools-lru-cache.inc new file mode 100644 index 00000000..bce44a28 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-backports-functools-lru-cache.inc @@ -0,0 +1,19 @@ +SUMMARY = "Backport of functools.lru_cache from Python 3.3" +HOMEPAGE = "https://github.com/jaraco/backports.functools_lru_cache" +SECTION = "devel/python" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://setup.py;beginline=57;endline=57;md5=98fc3658e5970d26f6b2109808c766be" + +PYPI_PACKAGE = "backports.functools_lru_cache" + +SRC_URI[md5sum] = "20f53f54cd3f04b3346ce75a54959754" +SRC_URI[sha256sum] = "9d98697f088eb1b0fa451391f91afb5e3ebde16bbdb272819fd091151fda4f1a" + +DEPENDS += "${PYTHON_PN}-setuptools-scm-native" + +inherit pypi + +RDEPENDS_${PN} += "\ + ${PYTHON_PN}-pickle \ + ${PYTHON_PN}-threading \ + " diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-backports-functools-lru-cache_1.5.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-backports-functools-lru-cache_1.5.bb index 825444ff..5e0f2f1e 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-backports-functools-lru-cache_1.5.bb +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-backports-functools-lru-cache_1.5.bb @@ -1,19 +1,2 @@ -SUMMARY = "Backport of functools.lru_cache from Python 3.3" -HOMEPAGE = "https://github.com/jaraco/backports.functools_lru_cache" -SECTION = "devel/python" -LICENSE = "MIT" -LIC_FILES_CHKSUM = "file://setup.py;beginline=57;endline=57;md5=98fc3658e5970d26f6b2109808c766be" - -PYPI_PACKAGE = "backports.functools_lru_cache" - -SRC_URI[md5sum] = "20f53f54cd3f04b3346ce75a54959754" -SRC_URI[sha256sum] = "9d98697f088eb1b0fa451391f91afb5e3ebde16bbdb272819fd091151fda4f1a" - -DEPENDS += "python-setuptools-scm-native" - -inherit setuptools pypi - -RDEPENDS_${PN} += "\ - ${PYTHON_PN}-pickle \ - ${PYTHON_PN}-threading \ - " +require python-backports-functools-lru-cache.inc +inherit setuptools diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-backports-ssl_3.5.0.1.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-backports-ssl_3.5.0.1.bb deleted file mode 100644 index 45492daa..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-backports-ssl_3.5.0.1.bb +++ /dev/null @@ -1,18 +0,0 @@ -SUMMARY = "The ssl.match_hostname() function from Python 3.4" -DESCRIPTION = "The Secure Sockets layer is only actually secure if you check the hostname in the \ -certificate returned by the server to which you are connecting, and verify that it matches to hostname \ -that you are trying to reach. But the matching logic, defined in RFC2818, can be a bit tricky to implement \ -on your own. So the ssl package in the Standard Library of Python 3.2 and greater now includes a \ -match_hostname() function for performing this check instead of requiring every application to \ -implement the check separately. This backport brings match_hostname() to users of earlier versions of Python" - -LICENSE = "GPLv2" -LIC_FILES_CHKSUM = "file://PKG-INFO;md5=95a5ee8fd779fbeca8b4cbca64433c87" - -SRC_URI[md5sum] = "c03fc5e2c7b3da46b81acf5cbacfe1e6" -SRC_URI[sha256sum] = "502ad98707319f4a51fa2ca1c677bd659008d27ded9f6380c79e8932e38dcdf2" - -PYPI_PACKAGE = "backports.ssl_match_hostname" -inherit pypi setuptools - -RDEPENDS_${PN} += "${PYTHON_PN}-pkgutil" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-backports-ssl_3.7.0.1.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-backports-ssl_3.7.0.1.bb new file mode 100644 index 00000000..9032a7c1 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-backports-ssl_3.7.0.1.bb @@ -0,0 +1,18 @@ +SUMMARY = "The ssl.match_hostname() function from Python 3.4" +DESCRIPTION = "The Secure Sockets layer is only actually secure if you check the hostname in the \ +certificate returned by the server to which you are connecting, and verify that it matches to hostname \ +that you are trying to reach. But the matching logic, defined in RFC2818, can be a bit tricky to implement \ +on your own. So the ssl package in the Standard Library of Python 3.2 and greater now includes a \ +match_hostname() function for performing this check instead of requiring every application to \ +implement the check separately. This backport brings match_hostname() to users of earlier versions of Python" + +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://PKG-INFO;md5=b2adbe8bfdeb625c9a01afd9aaa66619" + +SRC_URI[md5sum] = "32d2f593af01a046bec3d2f5181a420a" +SRC_URI[sha256sum] = "bb82e60f9fbf4c080eabd957c39f0641f0fc247d9a16e31e26d594d8f42b9fd2" + +PYPI_PACKAGE = "backports.ssl_match_hostname" +inherit pypi setuptools + +RDEPENDS_${PN} += "${PYTHON_PN}-pkgutil" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-bcrypt.inc b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-bcrypt.inc index 44909697..a2640032 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-bcrypt.inc +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-bcrypt.inc @@ -4,8 +4,8 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=8f7bb094c7232b058c7e9f2e431f389c" DEPENDS += "${PYTHON_PN}-cffi-native" -SRC_URI[md5sum] = "8408abc974446e64862a9742104e97b6" -SRC_URI[sha256sum] = "67ed1a374c9155ec0840214ce804616de49c3df9c5bc66740687c1c9b1cd9e8d" +SRC_URI[md5sum] = "5d6f93b575ce52470af37a8e7dce76fe" +SRC_URI[sha256sum] = "0b0069c752ec14172c5f78208f1863d7ad6755a6fae6fe76ec2c80d13be41e42" inherit pypi diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-bcrypt_3.1.4.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-bcrypt_3.1.7.bb similarity index 100% rename from Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-bcrypt_3.1.4.bb rename to Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-bcrypt_3.1.7.bb diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-beautifulsoup4.inc b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-beautifulsoup4.inc index a33d8f4b..3e95bb7f 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-beautifulsoup4.inc +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-beautifulsoup4.inc @@ -3,15 +3,15 @@ HOMEPAGE = " https://www.crummy.com/software/BeautifulSoup/bs4" LICENSE = "MIT" LIC_FILES_CHKSUM = "file://COPYING.txt;md5=f2d38d8a40bf73fd4b3d16ca2e5882d1" -SRC_URI[md5sum] = "c71f53fcb2580c376ab7b010a9178983" -SRC_URI[sha256sum] = "945065979fb8529dd2f37dbb58f00b661bdbcbebf954f93b32fdf5263ef35348" +SRC_URI[md5sum] = "5dbdb56c009e4632bae7bed1b385804b" +SRC_URI[sha256sum] = "05fd825eb01c290877657a56df4c6e4c311b3965bda790c613a3d6fb01a5462a" inherit pypi -RDEPENDS_${PN}_class-target = "\ - ${PYTHON_PN}-core \ +RDEPENDS_${PN} = "\ ${PYTHON_PN}-html5lib \ ${PYTHON_PN}-lxml \ + ${PYTHON_PN}-soupsieve \ " BBCLASSEXTEND = "native nativesdk" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-beautifulsoup4_4.7.1.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-beautifulsoup4_4.8.2.bb similarity index 100% rename from Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-beautifulsoup4_4.7.1.bb rename to Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-beautifulsoup4_4.8.2.bb diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-bitarray.inc b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-bitarray.inc index 480f048b..32da348c 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-bitarray.inc +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-bitarray.inc @@ -1,10 +1,10 @@ SUMMARY = "A high-level Python efficient arrays of booleans -- C extension" HOMEPAGE = "https://github.com/ilanschnell/bitarray" LICENSE = "PSF" -LIC_FILES_CHKSUM = "file://PKG-INFO;md5=f4ce1ae80a385140f0ddb2bcef410b06" +LIC_FILES_CHKSUM = "file://PKG-INFO;md5=dc301a25ebe210dcc53b0a2d5a038eae" -SRC_URI[md5sum] = "f3131ac2a277f3b70dbb6132ca8f8889" -SRC_URI[sha256sum] = "050cd30b810ddb3aa941e7ddfbe0d8065e793012d0a88cb5739ec23624b9895e" +SRC_URI[md5sum] = "a46bf869f6adf34f5b0dc82b469793b7" +SRC_URI[sha256sum] = "2ed675f460bb0d3d66fd8042a6f1f0d36cf213e52e72a745283ddb245da7b9cf" inherit pypi diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-bitarray_0.8.3.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-bitarray_1.2.1.bb similarity index 100% rename from Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-bitarray_0.8.3.bb rename to Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-bitarray_1.2.1.bb diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-booleanpy.inc b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-booleanpy.inc new file mode 100644 index 00000000..335d7d39 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-booleanpy.inc @@ -0,0 +1,14 @@ +SUMMARY = "Define boolean algebras, create and parse boolean expressions and create custom boolean DSL" +HOMEPAGE = "https://github.com/bastikr/boolean.py" + +LICENSE = "BSD-2-Clause" +LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=e319747a5eb94cddf646037c01ddba47" + +SRC_URI[md5sum] = "1189d115a38f84f5df743014926a9159" +SRC_URI[sha256sum] = "bd19b412435611ecc712603d0fd7d0e280e24698e7a6e3d5f610473870c5dd1e" + +PYPI_PACKAGE = "boolean.py" + +inherit pypi + +BBCLASSEXTEND = "native nativesdk" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-cachetools.inc b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-cachetools.inc index 9c793808..f3d3bc6b 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-cachetools.inc +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-cachetools.inc @@ -10,7 +10,7 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=27f7518eb6f7dc686d0f953b2f28dae5" inherit pypi -SRC_URI[md5sum] = "91aa9b611b6345154df84e8e37746f41" -SRC_URI[sha256sum] = "8ea2d3ce97850f31e4a08b0e2b5e6c34997d7216a9d2c98e0f3978630d4da69a" +SRC_URI[md5sum] = "6a88df13467e80eb61dd2bedad19b83c" +SRC_URI[sha256sum] = "9a52dd97a85f257f4e4127f15818e71a0c7899f121b34591fcc1173ea79a0198" BBCLASSEXTEND = "native nativesdk" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-cachetools_3.1.1.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-cachetools_4.0.0.bb similarity index 100% rename from Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-cachetools_3.1.1.bb rename to Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-cachetools_4.0.0.bb diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-can.inc b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-can.inc index 46f08593..7d0100d7 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-can.inc +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-can.inc @@ -1,10 +1,10 @@ SUMMARY = "Controller Area Network (CAN) interface module for Python" SECTION = "devel/python" LICENSE = "LGPLv3" -LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=38138baa100d7259934590850bc0406e" +LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=e6a600fd5e1d9cbde2d983680233ad02" -SRC_URI[md5sum] = "dcdd3f6b924e3f20acb1ccf4598236cf" -SRC_URI[sha256sum] = "b5e93b2ee32bdd597d9d908afe5171c402a04c9678ba47b60f33506738b1375b" +SRC_URI[md5sum] = "b724553a330478270267380b4888a18e" +SRC_URI[sha256sum] = "5fefb5c1e7e7f07faefc02c6eac79f9b58376f007048a04d8e7f325d48ec6b2e" PYPI_PACKAGE="python-can" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-can_2.2.1.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-can_3.3.2.bb similarity index 100% rename from Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-can_2.2.1.bb rename to Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-can_3.3.2.bb diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-certifi.inc b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-certifi.inc index 23e18563..98fa1f28 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-certifi.inc +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-certifi.inc @@ -7,7 +7,7 @@ HOMEPAGE = " http://certifi.io/" LICENSE = "ISC" LIC_FILES_CHKSUM = "file://LICENSE;md5=f77f61d14ee6feac4228d3ebd26cc1f1" -SRC_URI[md5sum] = "af8fea5f3df6f7f81e9c6cbc6dd7c1e8" -SRC_URI[sha256sum] = "945e3ba63a0b9f577b1395204e13c3a231f9bc0223888be653286534e5873695" +SRC_URI[md5sum] = "4d5229c4d9f0a4a79106f9e2c2cfd381" +SRC_URI[sha256sum] = "25b64c7da4cd7479594d035c08c2d809eb4aab3a26e5a990ea98cc450c320f1f" BBCLASSEXTEND = "native nativesdk" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-certifi_2019.6.16.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-certifi_2019.11.28.bb similarity index 100% rename from Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-certifi_2019.6.16.bb rename to Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-certifi_2019.11.28.bb diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-cffi.inc b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-cffi.inc index d86306ba..a2b0c3bb 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-cffi.inc +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-cffi.inc @@ -4,12 +4,13 @@ LICENSE = "MIT" LIC_FILES_CHKSUM = "file://LICENSE;md5=5677e2fdbf7cdda61d6dd2b57df547bf" DEPENDS += "libffi ${PYTHON_PN}-pycparser" -SRC_URI[md5sum] = "35ad1f9e1003cac9404c1493eb10d7f5" -SRC_URI[sha256sum] = "041c81822e9f84b1d9c401182e174996f0bae9991f33725d059b771744290774" +SRC_URI[md5sum] = "652203cf99faa254efff7fab23c2f3a2" +SRC_URI[sha256sum] = "599a1e8ff057ac530c9ad1778293c665cb81a791421f46922d80a86473c13346" RDEPENDS_${PN}_class-target = " \ ${PYTHON_PN}-ctypes \ ${PYTHON_PN}-io \ + ${PYTHON_PN}-pycparser \ ${PYTHON_PN}-shell \ " diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-cffi_1.12.3.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-cffi_1.13.2.bb similarity index 100% rename from Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-cffi_1.12.3.bb rename to Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-cffi_1.13.2.bb diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-click.inc b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-click.inc index 60bc46f8..f9dfd562 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-click.inc +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-click.inc @@ -5,7 +5,7 @@ in a composable way with as little code as necessary. It's the "Command \ Line Interface Creation Kit". It's highly configurable but comes with \ sensible defaults out of the box." HOMEPAGE = "http://click.pocoo.org/" -LICENSE = "BSD" +LICENSE = "BSD-3-Clause" LIC_FILES_CHKSUM = "file://LICENSE.rst;md5=c13ed890b210a882c1778216694c98c7" SRC_URI[md5sum] = "7f53d50f7b7373ebc7963f9ff697450a" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-cmd2.inc b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-cmd2.inc new file mode 100644 index 00000000..68381ad2 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-cmd2.inc @@ -0,0 +1,13 @@ +SUMMARY = "Extra features for standard library's cmd module" +HOMEPAGE = "http://packages.python.org/cmd2/" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://LICENSE;md5=9791cd24ca7d1807388ccd55cd066def" + +SRC_URI[md5sum] = "6db66a06210d5f1edb44693b887ed62b" +SRC_URI[sha256sum] = "8ad12ef3cc46d03073c545b6e80a3f84a5921f6653073a60e7d9a7ff3b352c9e" + +inherit pypi + +DEPENDS += "${PYTHON_PN}-setuptools-scm-native" + +BBCLASSEXTEND = "native nativesdk" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-cmd2_0.9.2.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-cmd2_0.9.2.bb deleted file mode 100644 index 1b75e347..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-cmd2_0.9.2.bb +++ /dev/null @@ -1,23 +0,0 @@ -SUMMARY = "Extra features for standard library's cmd module" -HOMEPAGE = "http://packages.python.org/cmd2/" -LICENSE = "MIT" -LIC_FILES_CHKSUM = "file://LICENSE;md5=60bc6842001870a418935bd84570b676" - -SRC_URI[md5sum] = "bfe0900a2288283a40f0ee7533486a2f" -SRC_URI[sha256sum] = "e7b6b4b76272a051c943c3c709cd760142af16fbc9218e0ed3c22b28ea38d0a8" - -inherit pypi setuptools - -RDEPENDS_${PN} += "\ - ${PYTHON_PN}-doctest \ - ${PYTHON_PN}-pyparsing \ - ${PYTHON_PN}-pyperclip \ - ${PYTHON_PN}-shell \ - ${PYTHON_PN}-six \ - ${PYTHON_PN}-stringold \ - ${PYTHON_PN}-subprocess \ - ${PYTHON_PN}-threading \ - ${PYTHON_PN}-textutils \ - " - -BBCLASSEXTEND = "native nativesdk" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-cmd2_0.9.23.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-cmd2_0.9.23.bb new file mode 100644 index 00000000..17b6ae28 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-cmd2_0.9.23.bb @@ -0,0 +1,14 @@ +inherit setuptools +require python-cmd2.inc + +RDEPENDS_${PN} += "\ + ${PYTHON_PN}-doctest \ + ${PYTHON_PN}-pyparsing \ + ${PYTHON_PN}-pyperclip \ + ${PYTHON_PN}-shell \ + ${PYTHON_PN}-six \ + ${PYTHON_PN}-stringold \ + ${PYTHON_PN}-subprocess \ + ${PYTHON_PN}-threading \ + ${PYTHON_PN}-textutils \ + " diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-coloredlogs.inc b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-coloredlogs.inc new file mode 100644 index 00000000..bdb1d752 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-coloredlogs.inc @@ -0,0 +1,24 @@ +DESCRIPTION = "Colored terminal output for Python's logging module" +HOMEPAGE = "https://coloredlogs.readthedocs.io" +SECTION = "devel/python" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=690da298a43805797a4fa7bbe180b3c6" + +SRC_URI[md5sum] = "0a186966a1955fff8cf9489373e691d9" +SRC_URI[sha256sum] = "b869a2dda3fa88154b9dd850e27828d8755bfab5a838a1c97fbc850c6e377c36" + +inherit pypi + +do_compile_prepend() { + sed -ie "s/find_pth_directory(),/'',/g" ${S}/setup.py +} + +do_install_append() { + rm -rf ${D}${datadir} +} + +RDEPENDS_${PN} += "\ + ${PYTHON_PN}-humanfriendly \ +" + +BBCLASSEXTEND = "native" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-coloredlogs_10.0.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-coloredlogs_10.0.bb new file mode 100644 index 00000000..0fc1b258 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-coloredlogs_10.0.bb @@ -0,0 +1,2 @@ +inherit setuptools +require python-coloredlogs.inc diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-configargparse.inc b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-configargparse.inc new file mode 100644 index 00000000..17d296ff --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-configargparse.inc @@ -0,0 +1,22 @@ +SUMMARY = "A drop-in replacement for argparse that allows options to also be set via config files and/or environment variables." +HOMEPAGE = "https://github.com/bw2/ConfigArgParse" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://LICENSE;md5=da746463714cc35999ed9a42339f2943" + +SRC_URI[md5sum] = "aba15b7973b7a70bea86fd69289f8fe3" +SRC_URI[sha256sum] = "baaf0fd2c1c108d007f402dab5481ac5f12d77d034825bf5a27f8224757bd0ac" + +PYPI_PACKAGE = "ConfigArgParse" + +inherit pypi + +PACKAGECONFIG ?= "yaml" +PACKAGECONFIG[yaml] = ",,,${PYTHON_PN}-pyyaml" + +RDEPENDS_${PN} += "\ + ${PYTHON_PN}-core \ + ${PYTHON_PN}-shell \ +" + +BBCLASSEXTEND = "native nativesdk" + diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-configargparse_0.15.1.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-configargparse_0.15.1.bb new file mode 100644 index 00000000..6d64b8d0 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-configargparse_0.15.1.bb @@ -0,0 +1,3 @@ +inherit setuptools +require python-configargparse.inc + diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-configparser.inc b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-configparser.inc index 133dbba7..8ecfe221 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-configparser.inc +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-configparser.inc @@ -3,9 +3,11 @@ SECTION = "devel/python" HOMEPAGE = "https://docs.python.org/3/library/configparser.html" LICENSE = "MIT" -LIC_FILES_CHKSUM = "file://PKG-INFO;beginline=8;endline=8;md5=8227180126797a0148f94f483f3e1489" +LIC_FILES_CHKSUM = "file://PKG-INFO;beginline=10;endline=10;md5=23f9ad5cad3d8cc0336e2a5d8a87e1fa" -SRC_URI[md5sum] = "cfdd915a5b7a6c09917a64a573140538" -SRC_URI[sha256sum] = "5308b47021bc2340965c371f0f058cc6971a04502638d4244225c49d80db273a" +SRC_URI[md5sum] = "bc1558ed941cb1acb80ff650726d5af8" +SRC_URI[sha256sum] = "bc37850f0cc42a1725a796ef7d92690651bf1af37d744cc63161dac62cabee17" inherit pypi + +BBCLASSEXTEND = "native nativesdk" \ No newline at end of file diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-configparser_3.5.0.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-configparser_3.5.0.bb deleted file mode 100644 index 69f045db..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-configparser_3.5.0.bb +++ /dev/null @@ -1,2 +0,0 @@ -inherit setuptools -require python-configparser.inc diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-configparser_3.8.1.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-configparser_3.8.1.bb new file mode 100644 index 00000000..a8ed1e91 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-configparser_3.8.1.bb @@ -0,0 +1,3 @@ +inherit setuptools +require python-configparser.inc +RDEPENDS_${PN} += "python-pkgutil" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-contextlib2.inc b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-contextlib2.inc new file mode 100644 index 00000000..750721f3 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-contextlib2.inc @@ -0,0 +1,10 @@ +DESCRIPTION = "Backports and enhancements for the contextlib module" +HOMEPAGE = "http://contextlib2.readthedocs.org/" +SECTION = "devel/python" +LICENSE = "PSF" +LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=43d1c7827e8fad6454b553caf0e1d734" + +SRC_URI[md5sum] = "d03a631073b40073b5c41364ad8f5979" +SRC_URI[sha256sum] = "7197aa736777caac513dbd800944c209a49765bf1979b12b037dce0277077ed3" + +BBCLASSEXTEND = "native nativesdk" \ No newline at end of file diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-contextlib2_0.6.0.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-contextlib2_0.6.0.bb new file mode 100644 index 00000000..87cffb98 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-contextlib2_0.6.0.bb @@ -0,0 +1,3 @@ +inherit pypi setuptools +require python-contextlib2.inc + diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-cryptography-vectors.inc b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-cryptography-vectors.inc index 887d2d3d..10af48c9 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-cryptography-vectors.inc +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-cryptography-vectors.inc @@ -8,8 +8,8 @@ DEPENDS += " \ ${PYTHON_PN}-cryptography \ " -SRC_URI[md5sum] = "1a518a28ed9c924ca6c570aa8ea0c334" -SRC_URI[sha256sum] = "f12dfb9bd669a68004074cb5b26df6e93ed1a95ebd1a999dff0a840212ff68bc" +SRC_URI[md5sum] = "a744ed29bb9ef56b3a50317fea3b218e" +SRC_URI[sha256sum] = "6cd32174c56a3eca72f64af43c1daacaae758cfa5ff9d280dfcf818fa11ef116" PYPI_PACKAGE = "cryptography_vectors" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-cryptography-vectors_2.7.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-cryptography-vectors_2.8.bb similarity index 100% rename from Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-cryptography-vectors_2.7.bb rename to Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-cryptography-vectors_2.8.bb diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-cryptography.inc b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-cryptography.inc index 876fcc27..5acd02d6 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-cryptography.inc +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-cryptography.inc @@ -12,8 +12,8 @@ DEPENDS += " \ ${PYTHON_PN}-six \ " -SRC_URI[md5sum] = "7dfe1035cae43569e571318f000462a4" -SRC_URI[sha256sum] = "e6347742ac8f35ded4a46ff835c60e68c22a536a8ae5c4422966d06946b6d4c6" +SRC_URI[md5sum] = "77730058b556c6d9838679a94c6229ce" +SRC_URI[sha256sum] = "3cda1f0ed8747339bbdf71b9f38ca74c7b592f24f65cdb3ab3765e4b02871651" RDEPENDS_${PN} += " \ ${PYTHON_PN}-cffi \ diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-cryptography_2.7.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-cryptography_2.8.bb similarity index 100% rename from Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-cryptography_2.7.bb rename to Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-cryptography_2.8.bb diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-cython.inc b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-cython.inc index 10cfef58..3260e92b 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-cython.inc +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-cython.inc @@ -7,8 +7,8 @@ LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=e23fadd6ceef8c618fc1c65191d846fa" PYPI_PACKAGE = "Cython" BBCLASSEXTEND = "native nativesdk" -SRC_URI[md5sum] = "08939b99869f59007387aea0d1a86341" -SRC_URI[sha256sum] = "26229570d6787ff3caa932fe9d802960f51a89239b990d275ae845405ce43857" +SRC_URI[md5sum] = "6e2f139e30bb08d68366f9370d87964c" +SRC_URI[sha256sum] = "e4d6bb8703d0319eb04b7319b12ea41580df44fd84d83ccda13ea463c6801414" inherit pypi diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-cython_0.29.10.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-cython_0.29.14.bb similarity index 100% rename from Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-cython_0.29.10.bb rename to Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-cython_0.29.14.bb diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-daemon_2.1.2.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-daemon_2.1.2.bb index ffb5beb5..002da046 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-daemon_2.1.2.bb +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-daemon_2.1.2.bb @@ -8,8 +8,8 @@ RDEPENDS_${PN} = "python-docutils \ python-resource \ " -LICENSE = "Apache-2.0" -LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10" +LICENSE = "Apache-2.0 & GPLv3" +LIC_FILES_CHKSUM = "file://README;md5=2695c853a2cafc33e68a1d972889ebd2" inherit pypi setuptools diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-daemonize_2.4.7.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-daemonize_2.4.7.bb deleted file mode 100644 index 98f23aba..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-daemonize_2.4.7.bb +++ /dev/null @@ -1,16 +0,0 @@ -SUMMARY = "Library to enable your code run as a daemon process on Unix-like systems" -LICENSE = "MIT" -LIC_FILES_CHKSUM = "file://LICENSE;md5=13e982bf1b7b164b9d6d1665dac83873" -SRCNAME = "daemonize" - -inherit pypi setuptools - -RDEPENDS_${PN} = "\ - python-fcntl \ - python-unixadmin \ - python-logging \ - python-resource \ -" - -SRC_URI[md5sum] = "6759005b12dfeea0d4305f8536b4b0c2" -SRC_URI[sha256sum] = "c0194e861826be456c7c69985825ac7b79632d8ac7ad4cde8e12fee7971468c8" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-daemonize_2.5.0.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-daemonize_2.5.0.bb new file mode 100644 index 00000000..e0f64fcf --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-daemonize_2.5.0.bb @@ -0,0 +1,16 @@ +SUMMARY = "Library to enable your code run as a daemon process on Unix-like systems" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://LICENSE;md5=13e982bf1b7b164b9d6d1665dac83873" +SRCNAME = "daemonize" + +inherit pypi setuptools + +RDEPENDS_${PN} = "\ + python-fcntl \ + python-unixadmin \ + python-logging \ + python-resource \ +" + +SRC_URI[md5sum] = "3d64e7a0219ad22e3fca62460f893b6a" +SRC_URI[sha256sum] = "dd026e4ff8d22cb016ed2130bc738b7d4b1da597ef93c074d2adb9e4dea08bc3" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-dateutil.inc b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-dateutil.inc index e230f15d..3c89cd62 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-dateutil.inc +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-dateutil.inc @@ -4,8 +4,8 @@ HOMEPAGE = "https://dateutil.readthedocs.org" LICENSE = "BSD-3-Clause & Apache-2.0" LIC_FILES_CHKSUM = "file://LICENSE;md5=e3155c7bdc71f66e02678411d2abf996" -SRC_URI[md5sum] = "354db28843d949f1bc3e49e8458e22df" -SRC_URI[sha256sum] = "c89805f6f4d64db21ed966fda138f8a5ed7a4fdbc1a8ee329ce1b74e3c74da9e" +SRC_URI[md5sum] = "f2a1d4b680b297b367a974664ca3a4f6" +SRC_URI[sha256sum] = "73ebfe9dbf22e832286dafa60473e4cd239f8592f699aa5adaf10050e6e1823c" PYPI_PACKAGE = "python-dateutil" inherit pypi @@ -21,3 +21,5 @@ RDEPENDS_${PN}_class-target = "\ ${PYTHON_PN}-six \ ${PYTHON_PN}-stringold \ " + +BBCLASSEXTEND = "native" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-dateutil_2.8.0.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-dateutil_2.8.1.bb similarity index 100% rename from Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-dateutil_2.8.0.bb rename to Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-dateutil_2.8.1.bb diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-dbus_1.2.14.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-dbus_1.2.14.bb new file mode 100644 index 00000000..b89d7d2c --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-dbus_1.2.14.bb @@ -0,0 +1,32 @@ +SUMMARY = "Python bindings for the DBus inter-process communication system" +SECTION = "devel/python" +HOMEPAGE = "http://www.freedesktop.org/Software/dbus" +LICENSE = "MIT & AFL-2.1 | GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=b03240518994df6d8c974675675e5ca4 \ + file://dbus-gmain/COPYING;md5=99fece6728a80737c8fd3e7c734c17c4 " +DEPENDS = "expat dbus dbus-glib virtual/libintl python-pyrex-native" + +SRC_URI = "http://dbus.freedesktop.org/releases/dbus-python/dbus-python-${PV}.tar.gz \ +" + +SRC_URI[md5sum] = "c8739234fca9fba26368d1a337abe830" +SRC_URI[sha256sum] = "b10206ba3dd641e4e46411ab91471c88e0eec1749860e4285193ee68df84ac31" +S = "${WORKDIR}/dbus-python-${PV}" + +inherit distutils-base autotools pkgconfig + +# documentation needs python-sphinx, which is not in oe-core or meta-python for now +# change to use PACKAGECONFIG when python-sphinx is added to oe-core or meta-python +EXTRA_OECONF += "--disable-documentation" + +export STAGING_LIBDIR +export STAGING_INCDIR + +RDEPENDS_${PN} = "python-io python-logging python-stringold python-threading python-xml" + +FILES_${PN}-dev += "${libdir}/pkgconfig" + +do_install_append() { + # Remove files that clash with python3-dbus; their content is same + rm ${D}${includedir}/dbus-1.0/dbus/dbus-python.h ${D}${libdir}/pkgconfig/dbus-python.pc +} diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-dbus_1.2.8.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-dbus_1.2.8.bb deleted file mode 100644 index b3f72405..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-dbus_1.2.8.bb +++ /dev/null @@ -1,32 +0,0 @@ -SUMMARY = "Python bindings for the DBus inter-process communication system" -SECTION = "devel/python" -HOMEPAGE = "http://www.freedesktop.org/Software/dbus" -LICENSE = "MIT & AFL-2.1 | GPLv2" -LIC_FILES_CHKSUM = "file://COPYING;md5=b03240518994df6d8c974675675e5ca4 \ - file://dbus-gmain/COPYING;md5=05c3eacd50f69bb1d58afec460baad57 " -DEPENDS = "expat dbus dbus-glib virtual/libintl python-pyrex-native" - -SRC_URI = "http://dbus.freedesktop.org/releases/dbus-python/dbus-python-${PV}.tar.gz \ -" - -SRC_URI[md5sum] = "7379db774c10904f27e7e2743d90fb43" -SRC_URI[sha256sum] = "abf12bbb765e300bf8e2a1b2f32f85949eab06998dbda127952c31cb63957b6f" -S = "${WORKDIR}/dbus-python-${PV}" - -inherit distutils-base autotools pkgconfig - -# documentation needs python-sphinx, which is not in oe-core or meta-python for now -# change to use PACKAGECONFIG when python-sphinx is added to oe-core or meta-python -EXTRA_OECONF += "--disable-documentation" - -export STAGING_LIBDIR -export STAGING_INCDIR - -RDEPENDS_${PN} = "python-io python-logging python-stringold python-threading python-xml" - -FILES_${PN}-dev += "${libdir}/pkgconfig" - -do_install_append() { - # Remove files that clash with python3-dbus; their content is same - rm ${D}${includedir}/dbus-1.0/dbus/dbus-python.h ${D}${libdir}/pkgconfig/dbus-python.pc -} diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-decorator.inc b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-decorator.inc index 96cf8b47..65db1a96 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-decorator.inc +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-decorator.inc @@ -6,11 +6,11 @@ various non-trivial examples. Of course, as all techniques, decorators \ can be abused and you should not try to solve every problem with a \ decorator, just because you can." -LICENSE = "BSD" +LICENSE = "BSD-2-Clause" LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=be2fd2007972bf96c08af3293d728b22" -SRC_URI[md5sum] = "a565a98581c0d110bc247323e89df9b1" -SRC_URI[sha256sum] = "86156361c50488b84a3f148056ea716ca587df2f0de1d34750d35c21312725de" +SRC_URI[md5sum] = "933981f288c4230816b5beee8d40e6ea" +SRC_URI[sha256sum] = "54c38050039232e1db4ad7375cfce6748d7b41c29e95a081c8a6d2c30364a2ce" inherit pypi diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-decorator_4.4.0.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-decorator_4.4.1.bb similarity index 100% rename from Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-decorator_4.4.0.bb rename to Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-decorator_4.4.1.bb diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-django.inc b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-django.inc index ee3aee63..63d025d5 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-django.inc +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-django.inc @@ -3,9 +3,6 @@ HOMEPAGE = "http://www.djangoproject.com/" LICENSE = "BSD-3-Clause" LIC_FILES_CHKSUM = "file://LICENSE;md5=f09eb47206614a4954c51db8a94840fa" -SRC_URI[md5sum] = "38e82b59a1c27bbf98ccf0564ead7426" -SRC_URI[sha256sum] = "eb9271f0874f53106a2719c0c35ce67631f6cc27cf81a60c6f8c9817b35a3f6e" - PYPI_PACKAGE = "Django" inherit pypi diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-django_1.11.14.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-django_1.11.14.bb index d2347cc9..efe23dcb 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-django_1.11.14.bb +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-django_1.11.14.bb @@ -1,6 +1,9 @@ require python-django.inc inherit setuptools +SRC_URI[md5sum] = "38e82b59a1c27bbf98ccf0564ead7426" +SRC_URI[sha256sum] = "eb9271f0874f53106a2719c0c35ce67631f6cc27cf81a60c6f8c9817b35a3f6e" + RDEPENDS_${PN} += " \ ${PYTHON_PN}-argparse \ ${PYTHON_PN}-subprocess \ diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-dnspython.inc b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-dnspython.inc index 6a04429b..84502aff 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-dnspython.inc +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-dnspython.inc @@ -1,10 +1,10 @@ DESCRIPTION = "DNS toolkit for Python" HOMEPAGE = "http://www.dnspython.org/" -LICENSE = "BSD" -LIC_FILES_CHKSUM = "file://LICENSE;md5=b9d855ee0d7bea17c8b0994d37985e1e" +LICENSE = "ISC" +LIC_FILES_CHKSUM = "file://LICENSE;md5=5af50906b5929837f667dfe31052bd34" -SRC_URI[md5sum] = "05d33ffb5d8f35ae0474bb952778a344" -SRC_URI[sha256sum] = "40f563e1f7a7b80dc5a4e76ad75c23da53d62f1e15e6e517293b04e1f84ead7c" +SRC_URI[md5sum] = "bc9ca3b3a82164667d5730ec6d5248a2" +SRC_URI[sha256sum] = "36c5e8e38d4369a08b6780b7f27d790a292b2b08eea01607865bf0936c558e01" PYPI_PACKAGE_EXT = "zip" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-dnspython_1.15.0.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-dnspython_1.16.0.bb similarity index 100% rename from Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-dnspython_1.15.0.bb rename to Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-dnspython_1.16.0.bb diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-docutils_0.14rc2.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-docutils_0.14rc2.bb deleted file mode 100644 index 68436a1a..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-docutils_0.14rc2.bb +++ /dev/null @@ -1,18 +0,0 @@ -SUMMARY = "Text processing system for documentation" -HOMEPAGE = "http://docutils.sourceforge.net" -SECTION = "devel/python" -LICENSE = "PSF & BSD-2-Clause & GPLv3" -LIC_FILES_CHKSUM = "file://COPYING.txt;md5=35a23d42b615470583563132872c97d6" - -DEPENDS = "python" - -SRC_URI = "${SOURCEFORGE_MIRROR}/docutils/docutils-${PV}.tar.gz" -SRC_URI[md5sum] = "2f4bee6451958252f7bec71f18b05be3" -SRC_URI[sha256sum] = "3caee0bcb2a49fdf24fcfa70849a60abb7a181aa68b030f7cb7494096181830c" - -S = "${WORKDIR}/docutils-${PV}" - -inherit distutils - -BBCLASSEXTEND = "native" - diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-docutils_0.15.2.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-docutils_0.15.2.bb new file mode 100644 index 00000000..d26e8190 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-docutils_0.15.2.bb @@ -0,0 +1,15 @@ +SUMMARY = "Text processing system for documentation" +HOMEPAGE = "http://docutils.sourceforge.net" +SECTION = "devel/python" +LICENSE = "PSF & BSD-2-Clause & GPLv3" +LIC_FILES_CHKSUM = "file://COPYING.txt;md5=7a4646907ab9083c826280b19e103106" + +inherit pypi setuptools + +PYPI_PACKAGE = "docutils" + +SRC_URI[md5sum] = "e26a308d8000b0bed7416a633217c676" +SRC_URI[sha256sum] = "a2aeea129088da402665e92e0b25b04b073c04b2dce4ab65caaa38b7ce2e1a99" + +BBCLASSEXTEND = "native" + diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-dominate.inc b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-dominate.inc index ecf74a0b..7e499a6c 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-dominate.inc +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-dominate.inc @@ -2,8 +2,8 @@ SUMMARY = "Dominate is a Python library for creating and manipulating HTML docum LICENSE = "LGPLv3" LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=b52f2d57d10c4f7ee67a7eb9615d5d24" -SRC_URI[md5sum] = "45bd97e6f7888aac24ae86013c57638e" -SRC_URI[sha256sum] = "4b8ce6f33633c9dd9175b228d21c00c801b6bd0327747cd5e17fc2da934c3a69" +SRC_URI[md5sum] = "27d3aa7e0d67902c505e248e705e5e2e" +SRC_URI[sha256sum] = "a92474b4312bd8b4c1789792f3ec8c571cd8afa8e7502a2b1c64dd48cd67e59c" RDEPENDS_${PN} += "\ ${PYTHON_PN}-numbers \ diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-dominate_2.3.1.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-dominate_2.4.0.bb similarity index 100% rename from Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-dominate_2.3.1.bb rename to Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-dominate_2.4.0.bb diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-engineio.inc b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-engineio.inc index c399d7dd..9c067c96 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-engineio.inc +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-engineio.inc @@ -9,5 +9,5 @@ inherit pypi PYPI_PACKAGE = "python-engineio" -SRC_URI[md5sum] = "011a61f1ee84755043cf862c8cc24f21" -SRC_URI[sha256sum] = "b2756ce53076163eb24f59c1d1a903ac72f071ad4fb7b3ef6dab1b1b9ae9a44f" +SRC_URI[md5sum] = "13345452be25c3b63d041f8f89e662d1" +SRC_URI[sha256sum] = "47ae4a9b3b4f2e8a68929f37a518338838e119f24c9a9121af92c49f8bea55c3" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-engineio_3.5.0.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-engineio_3.11.2.bb similarity index 100% rename from Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-engineio_3.5.0.bb rename to Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-engineio_3.11.2.bb diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-evdev.inc b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-evdev.inc index 5a3884a6..a5368153 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-evdev.inc +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-evdev.inc @@ -1,10 +1,14 @@ SUMMARY = "Python evdev lib" HOMEPAGE = "https://github.com/gvalkov/python-evdev" -LICENSE = "BSD" +LICENSE = "BSD-3-Clause" LIC_FILES_CHKSUM = "file://LICENSE;md5=18debddbb3f52c661a129724a883a8e2" -SRC_URI[md5sum] = "c7e855ae9f97f869a59e75b29f05ce74" -SRC_URI[sha256sum] = "57edafc469a414f58b51af1bfb9ee2babb9f626dd2df530d71c1176871850aa1" +FILESEXTRAPATHS_prepend := "${THISDIR}/python-evdev:" + +SRC_URI += " file://0001-Fix-build-on-32bit-arches-with-64bit-time_t.patch" + +SRC_URI[md5sum] = "53e440943dfa2514f95b3c448d6a36cb" +SRC_URI[sha256sum] = "b03f5e1be5b4a5327494a981b831d251a142b09e8778eda1a8b53eba91100166" do_compile_prepend() { rm -rf ${S}/evdev/ecodes.c diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-evdev/0001-Fix-build-on-32bit-arches-with-64bit-time_t.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-evdev/0001-Fix-build-on-32bit-arches-with-64bit-time_t.patch new file mode 100644 index 00000000..154172ca --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-evdev/0001-Fix-build-on-32bit-arches-with-64bit-time_t.patch @@ -0,0 +1,83 @@ +From 435e78aaf6745e4da0fe3d4455473011626c77d1 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Sat, 30 Nov 2019 11:21:20 -0800 +Subject: [PATCH] Fix build on 32bit arches with 64bit time_t + +time element is deprecated on new input_event structure in kernel's +input.h [1] + +[1] https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit?id=152194fe9c3f + +Upstream-Status: Submitted [https://github.com/gvalkov/python-evdev/pull/112] +Signed-off-by: Khem Raj +--- + evdev/input.c | 13 +++++++++---- + evdev/uinput.c | 9 ++++++++- + 2 files changed, 17 insertions(+), 5 deletions(-) + +diff --git a/evdev/input.c b/evdev/input.c +index 67b9348..432db92 100644 +--- a/evdev/input.c ++++ b/evdev/input.c +@@ -24,6 +24,11 @@ + #include + #endif + ++#ifndef input_event_sec ++#define input_event_sec time.tv_sec ++#define input_event_usec time.tv_usec ++#endif ++ + #define MAX_NAME_SIZE 256 + + extern char* EV_NAME[EV_CNT]; +@@ -60,8 +65,8 @@ device_read(PyObject *self, PyObject *args) + return NULL; + } + +- PyObject* sec = PyLong_FromLong(event.time.tv_sec); +- PyObject* usec = PyLong_FromLong(event.time.tv_usec); ++ PyObject* sec = PyLong_FromLong(event.input_event_sec); ++ PyObject* usec = PyLong_FromLong(event.input_event_usec); + PyObject* val = PyLong_FromLong(event.value); + PyObject* py_input_event = NULL; + +@@ -102,8 +107,8 @@ device_read_many(PyObject *self, PyObject *args) + + // Construct a list of event tuples, which we'll make sense of in Python + for (unsigned i = 0 ; i < nread/event_size ; i++) { +- sec = PyLong_FromLong(event[i].time.tv_sec); +- usec = PyLong_FromLong(event[i].time.tv_usec); ++ sec = PyLong_FromLong(event[i].input_event_sec); ++ usec = PyLong_FromLong(event[i].input_event_usec); + val = PyLong_FromLong(event[i].value); + + py_input_event = Py_BuildValue("OOhhO", sec, usec, event[i].type, event[i].code, val); +diff --git a/evdev/uinput.c b/evdev/uinput.c +index 192568d..56fe86c 100644 +--- a/evdev/uinput.c ++++ b/evdev/uinput.c +@@ -16,6 +16,10 @@ + #include + #endif + ++#ifndef input_event_sec ++#define input_event_sec time.tv_sec ++#define input_event_usec time.tv_usec ++#endif + + // Workaround for installing on kernels newer than 4.4. + #ifndef FF_MAX_EFFECTS +@@ -232,8 +236,11 @@ uinput_write(PyObject *self, PyObject *args) + if (!ret) return NULL; + + struct input_event event; ++ struct timeval tval; + memset(&event, 0, sizeof(event)); +- gettimeofday(&event.time, 0); ++ gettimeofday(&tval, 0); ++ event.input_event_usec = tval.tv_usec; ++ event.input_event_sec = tval.tv_sec; + event.type = type; + event.code = code; + event.value = value; diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-evdev_0.7.0.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-evdev_1.2.0.bb similarity index 100% rename from Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-evdev_0.7.0.bb rename to Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-evdev_1.2.0.bb diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-feedformatter.inc b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-feedformatter.inc index a333ef4e..6ddcaa98 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-feedformatter.inc +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-feedformatter.inc @@ -1,7 +1,7 @@ DESCRIPTION = "A Python library for generating news feeds in RSS and Atom formats" HOMEPAGE = "http://code.google.com/p/feedformatter/" SECTION = "devel/python" -LICENSE = "BSD" +LICENSE = "BSD-3-Clause" LIC_FILES_CHKSUM = "file://COPYING;md5=258e3f39e2383fbd011035d04311008d" SRCREV = "7391193c83e10420b5a2d8ef846d23fc368c6d85" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-flask-babel.inc b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-flask-babel.inc index b60ee17d..0e507f33 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-flask-babel.inc +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-flask-babel.inc @@ -1,9 +1,9 @@ DESCRIPTION = "i18n and l10n support for Flask based on babel and pytz" -LICENSE = "BSD" +LICENSE = "BSD-3-Clause" LIC_FILES_CHKSUM = "file://LICENSE;md5=51917f3e8e858f5ae295a7d0e2eb3cc9" -SRC_URI[md5sum] = "07803453743f139309021572a799c6b3" -SRC_URI[sha256sum] = "c0d75710bd4b0fe866f9f2347de6e19208712f9cec006436b4c1c15d4cb0c939" +SRC_URI[md5sum] = "fcf2f360ff279d3133e40974804efd72" +SRC_URI[sha256sum] = "316ad183e42003f3922957fa643d0a1e8e34a0f0301a88c3a8f605bc37ba5c86" PYPI_PACKAGE = "Flask-Babel" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-flask-babel_0.11.2.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-flask-babel_0.12.2.bb similarity index 100% rename from Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-flask-babel_0.11.2.bb rename to Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-flask-babel_0.12.2.bb diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-flask-bcrypt_0.7.1.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-flask-bcrypt_0.7.1.bb index f035862d..d090b345 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-flask-bcrypt_0.7.1.bb +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-flask-bcrypt_0.7.1.bb @@ -1,5 +1,5 @@ DESCRIPTION = "Bcrypt hashing for Flask." -LICENSE = "BSD" +LICENSE = "BSD-3-Clause" LIC_FILES_CHKSUM = "file://LICENSE;md5=0ee2ee5bee7fe96597770e92db5719a8" SRC_URI[md5sum] = "d345c36ac6637d3ca9fa942e238d00ca" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-flask-mail.inc b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-flask-mail.inc index bb087034..0df276d1 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-flask-mail.inc +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-flask-mail.inc @@ -1,7 +1,7 @@ SUMMARY = "Flask extension for sending email" DESCRIPTION = "A Flask extension for sending email" HOMEPAGE = " https://github.com/rduplain/flask-email" -LICENSE = "BSD" +LICENSE = "BSD-3-Clause" LIC_FILES_CHKSUM = "file://LICENSE;md5=5b16dfa6d3f275ace5985bb92949f770" SRC_URI[md5sum] = "04b35a42a44ec7aa724ec8ce55e2e08e" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-flask-migrate.inc b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-flask-migrate.inc index dfb20e9e..5202f8be 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-flask-migrate.inc +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-flask-migrate.inc @@ -2,8 +2,8 @@ DESCRIPTION = "SQLAlchemy database migrations for Flask applications using Alemb LICENSE = "MIT" LIC_FILES_CHKSUM = "file://LICENSE;md5=3b69377f79f3f48c661701236d5a6a85" -SRC_URI[md5sum] = "aaeee55431d0287063657122ff41a0e6" -SRC_URI[sha256sum] = "cd1b4e6cb829eeb41c02ad9202d83bef5f4b7a036dd9fad72ce96ad1e22efb07" +SRC_URI[md5sum] = "bedeb0366740fda6912fea683be11968" +SRC_URI[sha256sum] = "a96ff1875a49a40bd3e8ac04fce73fdb0870b9211e6168608cbafa4eb839d502" PYPI_PACKAGE = "Flask-Migrate" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-flask-migrate_2.2.1.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-flask-migrate_2.5.2.bb similarity index 100% rename from Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-flask-migrate_2.2.1.bb rename to Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-flask-migrate_2.5.2.bb diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-flask-pymongo.inc b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-flask-pymongo.inc index fb2d6ed8..5fc35c19 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-flask-pymongo.inc +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-flask-pymongo.inc @@ -2,12 +2,14 @@ SUMMARY = "PyMongo support for Flask applications" DESCRIPTION = "PyMongo support for Flask applications." HOMEPAGE = "https://github.com/mitsuhiko/flask/" SECTION = "devel/python" -LICENSE = "BSD" +LICENSE = "BSD-2-Clause" LIC_FILES_CHKSUM = "file://flask_pymongo/wrappers.py;beginline=1;endline=24;md5=424c4e1047d28e01b4e4634a069c019d" -SRC_URI[md5sum] = "d7a1b717f27154e1f3a355f8ec2467d6" -SRC_URI[sha256sum] = "2baaa2ba5107d72b3a8bd4b5c0c8881316e35340ad1ae979cc13f1f3c8843b3d" +SRC_URI[md5sum] = "94df71e6800b1d7915cc91a74b70f959" +SRC_URI[sha256sum] = "620eb02dc8808a5fcb90f26cab6cba9d6bf497b15032ae3ca99df80366e33314" PYPI_PACKAGE = "Flask-PyMongo" +DEPENDS = "${PYTHON_PN}-vcversioner ${PYTHON_PN}-vcversioner-native" + RDEPENDS_${PN} = "${PYTHON_PN}-pymongo ${PYTHON_PN}-flask" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-flask-pymongo_0.5.1.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-flask-pymongo_2.3.0.bb similarity index 100% rename from Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-flask-pymongo_0.5.1.bb rename to Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-flask-pymongo_2.3.0.bb diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-flask-restful.inc b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-flask-restful.inc index 0485f85a..dcbcd0d7 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-flask-restful.inc +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-flask-restful.inc @@ -6,8 +6,8 @@ HOMEPAGE = "https://github.com/flask-restful/flask-restful" LICENSE = "BSD-3-Clause" LIC_FILES_CHKSUM = "file://LICENSE;md5=685bb55ed99a366bb431995f5eef2783" -SRC_URI[md5sum] = "8243ca101185b130d8fa529cbdbdbddd" -SRC_URI[sha256sum] = "5795519501347e108c436b693ff9a4d7b373a3ac9069627d64e4001c05dd3407" +SRC_URI[md5sum] = "a7217ef1159be38af5faf61aa09aabef" +SRC_URI[sha256sum] = "f8240ec12349afe8df1db168ea7c336c4e5b0271a36982bff7394f93275f2ca9" inherit pypi diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-flask-restful_0.3.6.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-flask-restful_0.3.7.bb similarity index 100% rename from Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-flask-restful_0.3.6.bb rename to Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-flask-restful_0.3.7.bb diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-flask-script.inc b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-flask-script.inc index fca777bc..f48af8bc 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-flask-script.inc +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-flask-script.inc @@ -1,5 +1,5 @@ DESCRIPTION = "Scripting support for flask" -LICENSE = "BSD" +LICENSE = "BSD-3-Clause" LIC_FILES_CHKSUM = "file://LICENSE;md5=e686048adb69341fc8a08caeda528b41" SRC_URI[md5sum] = "3fbd91fe13cebedfb2431331f6eabb68" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-flask-socketio.inc b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-flask-socketio.inc index 251d13ed..8d778d4b 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-flask-socketio.inc +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-flask-socketio.inc @@ -9,8 +9,8 @@ inherit pypi PYPI_PACKAGE = "Flask-SocketIO" -SRC_URI[md5sum] = "298965a43f6534e8a5b24d1ba1fc4186" -SRC_URI[sha256sum] = "8d8f9f104db5ddff1b06ba322d8e158881d590144199c993fe26cf53218c7edd" +SRC_URI[md5sum] = "b23222fb7dd2f0676d78bbe24153fd80" +SRC_URI[sha256sum] = "2172dff1e42415ba480cee02c30c2fc833671ff326f1598ee3d69aa02cf768ec" RDEPENDS_${PN} += "\ ${PYTHON_PN}-flask \ diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-flask-socketio_3.3.2.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-flask-socketio_4.2.1.bb similarity index 100% rename from Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-flask-socketio_3.3.2.bb rename to Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-flask-socketio_4.2.1.bb diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-flask-sqlalchemy.inc b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-flask-sqlalchemy.inc index e0efbc63..86ba9dda 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-flask-sqlalchemy.inc +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-flask-sqlalchemy.inc @@ -1,9 +1,9 @@ DESCRIPTION = "Adds SQLAlchemy support to your Flask application." -LICENSE = "BSD" -LIC_FILES_CHKSUM = "file://LICENSE;md5=5ed1b8cc741515a835a7f6bf2f62ef4a" +LICENSE = "BSD-3-Clause" +LIC_FILES_CHKSUM = "file://LICENSE.rst;md5=ffeffa59c90c9c4a033c7574f8f3fb75" -SRC_URI[md5sum] = "373ce61dfd03b593ad2eaba68c9fee35" -SRC_URI[sha256sum] = "5971b9852b5888655f11db634e87725a9031e170f37c0ce7851cf83497f56e53" +SRC_URI[md5sum] = "1f5781cf3e1a2b1aabda47a5b20d2073" +SRC_URI[sha256sum] = "6974785d913666587949f7c2946f7001e4fa2cb2d19f4e69ead02e4b8f50b33d" PYPI_PACKAGE = "Flask-SQLAlchemy" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-flask-sqlalchemy_2.3.2.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-flask-sqlalchemy_2.4.1.bb similarity index 100% rename from Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-flask-sqlalchemy_2.3.2.bb rename to Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-flask-sqlalchemy_2.4.1.bb diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-flask-user.inc b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-flask-user.inc index c2b71829..adef32cc 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-flask-user.inc +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-flask-user.inc @@ -3,7 +3,7 @@ DESCRIPTION = "Customizable User Account Management for Flask; Register \ Confirm email, Login, Change username, Change password, Forgot Password \ and more." HOMEPAGE = " https://github.com/lingthio/Flask-User" -LICENSE = "BSD" +LICENSE = "BSD-2-Clause" LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=97de97cd9d6e23c88129d884588ce71a" SRC_URI[md5sum] = "f7965e66ca139c8436896da07e66c21f" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-flask-wtf.inc b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-flask-wtf.inc index 3c90656a..86367115 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-flask-wtf.inc +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-flask-wtf.inc @@ -1,5 +1,5 @@ DESCRIPTION = "Simple integration of Flask and WTForms." -LICENSE = "BSD" +LICENSE = "BSD-3-Clause" LIC_FILES_CHKSUM = "file://LICENSE;md5=3ca6bb31670492f791e6a9f2fb9f8a80" SRC_URI[md5sum] = "586f50f233926cade42e3d744aca3e8f" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-flask-xstatic.inc b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-flask-xstatic.inc index a1fe14ed..48ff7149 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-flask-xstatic.inc +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-flask-xstatic.inc @@ -1,5 +1,5 @@ DESCRIPTION = "XStatic support for flask" -LICENSE = "BSD" +LICENSE = "BSD-2-Clause" LIC_FILES_CHKSUM = "file://LICENSE;md5=659968f6ebd4b70b6c3190d20b4a924c" SRC_URI[md5sum] = "2f56023e1444c8bd1fec41afe93de743" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-flask.inc b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-flask.inc index 66ad1a6e..1263383d 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-flask.inc +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-flask.inc @@ -3,14 +3,14 @@ DESCRIPTION = "\ Flask is a microframework for Python based on Werkzeug, Jinja 2 and good \ intentions. And before you ask: It’s BSD licensed!" HOMEPAGE = "https://github.com/mitsuhiko/flask/" -LICENSE = "BSD" -LIC_FILES_CHKSUM = "file://LICENSE;md5=c011883ac26229b8ba3084f55c7664c6" +LICENSE = "BSD-3-Clause" +LIC_FILES_CHKSUM = "file://LICENSE.rst;md5=ffeffa59c90c9c4a033c7574f8f3fb75" -SRC_URI[md5sum] = "824f0f20aae1f44c9c7dc4054adb7969" -SRC_URI[sha256sum] = "2271c0070dbcb5275fad4a82e29f23ab92682dc45f9dfbc22c02ba9b9322ce48" +SRC_URI[md5sum] = "0e3ed44ece1c489ed835d1b7047e349c" +SRC_URI[sha256sum] = "13f9f196f330c7c2c5d7a5cf91af894110ca0215ac051b5844701f2bfd934d52" CLEANBROKEN = "1" PYPI_PACKAGE = "Flask" -RDEPENDS_${PN} = "${PYTHON_PN}-werkzeug ${PYTHON_PN}-werkzeug-tests ${PYTHON_PN}-jinja2 ${PYTHON_PN}-itsdangerous ${PYTHON_PN}-click" +RDEPENDS_${PN} = "${PYTHON_PN}-werkzeug ${PYTHON_PN}-jinja2 ${PYTHON_PN}-itsdangerous ${PYTHON_PN}-click" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-flask_1.0.2.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-flask_1.1.1.bb similarity index 100% rename from Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-flask_1.0.2.bb rename to Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-flask_1.1.1.bb diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-future.inc b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-future.inc index 22475618..c0a2b39b 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-future.inc +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-future.inc @@ -1,10 +1,10 @@ DESCRIPTION = "Clean single-source support for Python 3 and 2" HOMEPAGE = "https://python-future.org" LICENSE = "MIT" -LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=3f457538b297bd0ef86564b8ac216ad7" +LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=a253924061f8ecc41ad7a2ba1560e8e7" -SRC_URI[md5sum] = "3e8e88a2bda48d54b1da7634d04760d7" -SRC_URI[sha256sum] = "e39ced1ab767b5936646cedba8bcce582398233d6a627067d4c6a454c90cfedb" +SRC_URI[md5sum] = "e4579c836b9c025872efe230f6270349" +SRC_URI[sha256sum] = "b1bead90b70cf6ec3f0710ae53a525360fa360d306a86583adc6bf83a4db537d" PYPI_PACKAGE_HASH = "99abde815842bc6e97d5a7806ad51236630da14ca2f3b1fce94c0bb94d3d" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-future_0.16.0.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-future_0.18.2.bb similarity index 100% rename from Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-future_0.16.0.bb rename to Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-future_0.18.2.bb diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-grpcio-tools.inc b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-grpcio-tools.inc index 91cc62f4..1a15c48d 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-grpcio-tools.inc +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-grpcio-tools.inc @@ -5,8 +5,8 @@ SECTION = "devel/python" DEPENDS_append = "${PYTHON_PN}-grpcio" RDEPENDS_${PN} = "${PYTHON_PN}-grpcio" -LICENSE = "BSD-3-Clause" -LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/BSD-3-Clause;md5=550794465ba0ec5312d6919e203a55f9" +LICENSE = "Apache-2.0" +LIC_FILES_CHKSUM = "file://PKG-INFO;beginline=8;endline=8;md5=7145f7cdd263359b62d342a02f005515" inherit pypi diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-grpcio.inc b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-grpcio.inc index fd341f5d..c5762b26 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-grpcio.inc +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-grpcio.inc @@ -9,6 +9,7 @@ FILESEXTRAPATHS_prepend := "${THISDIR}/python-grpcio:" SRC_URI_append_class-target = " file://0001-setup.py-Do-not-mix-C-and-C-compiler-options.patch \ file://ppc-boringssl-support.patch \ file://riscv64_support.patch \ + file://gettid.patch \ " RDEPENDS_${PN} = "${PYTHON_PN}-protobuf \ @@ -16,8 +17,8 @@ RDEPENDS_${PN} = "${PYTHON_PN}-protobuf \ ${PYTHON_PN}-six \ " -LICENSE = "BSD-3-Clause" -LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/BSD-3-Clause;md5=550794465ba0ec5312d6919e203a55f9" +LICENSE = "Apache-2.0" +LIC_FILES_CHKSUM = "file://LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57" inherit pypi diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-grpcio/gettid.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-grpcio/gettid.patch new file mode 100644 index 00000000..fb15cf7f --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-grpcio/gettid.patch @@ -0,0 +1,26 @@ +use glibc provided gettid API for glibc 2.30+ + +glibc 2.30 introduced this function see [1] +so it's best to detect it +and provide fallback only if it's not present + +[1] https://sourceware.org/bugzilla/show_bug.cgi?id=6399 + +Upstream-Status: Pending +Signed-off-by: Khem Raj +--- a/src/core/lib/gpr/log_linux.cc ++++ b/src/core/lib/gpr/log_linux.cc +@@ -40,7 +40,13 @@ + #include + #include + ++#if defined(__GLIBC__) ++#if !__GLIBC_PREREQ(2,29) + static long gettid(void) { return syscall(__NR_gettid); } ++#endif ++#else ++static long gettid(void) { return syscall(__NR_gettid); } ++#endif + + void gpr_log(const char* file, int line, gpr_log_severity severity, + const char* format, ...) { diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-html2text.inc b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-html2text.inc new file mode 100644 index 00000000..678dcef3 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-html2text.inc @@ -0,0 +1,12 @@ +SUMMARY = "Convert HTML to Markdown-formatted text" +HOMEPAGE = "https://github.com/Alir3z4/html2text" + +LICENSE = "GPL-3.0" +LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504" + +SRC_URI[md5sum] = "21aad7ec95b70606024b783c8253899c" +SRC_URI[sha256sum] = "f516b9c10284174e2a974d86f91cab02b3cf983a17752075da751af0e895ef5e" + +inherit pypi + +BBCLASSEXTEND = "native nativesdk" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-humanfriendly.inc b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-humanfriendly.inc new file mode 100644 index 00000000..94f7f8b8 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-humanfriendly.inc @@ -0,0 +1,25 @@ +DESCRIPTION = "Human friendly output for text interfaces using Python" +HOMEPAGE = "https://humanfriendly.readthedocs.io/" +SECTION = "devel/python" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=690da298a43805797a4fa7bbe180b3c6" + +PYPI_PACKAGE = "humanfriendly" + +SRC_URI[md5sum] = "9573f9f37a5454d8205cfd1b9b8db9d2" +SRC_URI[sha256sum] = "33ee8ceb63f1db61cce8b5c800c531e1a61023ac5488ccde2ba574a85be00a85" + +inherit pypi + +RDEPENDS_${PN}_class-target += " \ + ${PYTHON_PN}-datetime \ + ${PYTHON_PN}-fcntl \ + ${PYTHON_PN}-io \ + ${PYTHON_PN}-logging \ + ${PYTHON_PN}-math \ + ${PYTHON_PN}-numbers \ + ${PYTHON_PN}-shell \ + ${PYTHON_PN}-stringold \ +" + +BBCLASSEXTEND = "native" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-humanfriendly_4.18.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-humanfriendly_4.18.bb new file mode 100644 index 00000000..4e03a654 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-humanfriendly_4.18.bb @@ -0,0 +1,2 @@ +inherit setuptools +require python-humanfriendly.inc diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-hyperlink.inc b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-hyperlink.inc index 25398541..653170ca 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-hyperlink.inc +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-hyperlink.inc @@ -8,7 +8,7 @@ SRC_URI[md5sum] = "4772fb4d87c26a1ab22a6161424e3cba" inherit pypi -RDEPENDS_${PN} += "${PYTHON_PN}-stringold ${PYTHON_PN}-netclient" +RDEPENDS_${PN} += "${PYTHON_PN}-stringold ${PYTHON_PN}-netclient ${PYTHON_PN}-idna" PACKAGES =. "${PN}-test " diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-importlib-metadata.inc b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-importlib-metadata.inc new file mode 100644 index 00000000..a53537aa --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-importlib-metadata.inc @@ -0,0 +1,14 @@ +DESCRIPTION = "Read metadata from Python packages" +HOMEPAGE = "https://pypi.org/project/importlib-metadata/" +LICENSE = "Apache-2.0" +LIC_FILES_CHKSUM = "file://LICENSE;md5=e88ae122f3925d8bde8319060f2ddb8e" + +SRC_URI = "https://files.pythonhosted.org/packages/5d/44/636bcd15697791943e2dedda0dbe098d8530a38d113b202817133e0b06c0/importlib_metadata-0.23.tar.gz" +S = "${WORKDIR}/importlib_metadata-${PV}" +SRC_URI[md5sum] = "80d677d744995336c9c22d21a85ddeb8" +SRC_URI[sha256sum] = "aa18d7378b00b40847790e7c27e11673d7fed219354109d0e7b9e5b25dc3ad26" + +DEPENDS += "${PYTHON_PN}-setuptools-scm-native" +RDEPENDS_${PN} += "${PYTHON_PN}-zipp ${PYTHON_PN}-pathlib2" + +BBCLASSEXTEND = "native nativesdk" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-importlib-metadata_0.23.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-importlib-metadata_0.23.bb new file mode 100644 index 00000000..09c5700d --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-importlib-metadata_0.23.bb @@ -0,0 +1,7 @@ +inherit pypi setuptools +require python-importlib-metadata.inc +RDEPENDS_${PN} += "python-configparser \ + python-contextlib2 \ + python-pathlib2 \ + python-compression \ +" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-incremental.inc b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-incremental.inc index b63fac97..ef5e903f 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-incremental.inc +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-incremental.inc @@ -17,4 +17,4 @@ RDEPENDS_${PN} += " \ # prevent a circular dependency. The build apparently does not use the part of # python-incremental which uses python-twisted, so this hack is OK. RDEPENDS_${PYTHON_PN}-incremental-native_remove = "${PYTHON_PN}-twisted-native" -BBCLASSEXTEND = "native nativesdk" +BBCLASSEXTEND = "native" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-intervals.inc b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-intervals.inc index 1ecca352..4489aa59 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-intervals.inc +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-intervals.inc @@ -2,14 +2,14 @@ DESCRIPTION = "Interval arithmetic for Python" HOMEPAGE = "https://github.com/AlexandreDecan/python-intervals" SECTION = "devel/python" -LICENSE = "BSD-3-Clause" -LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/BSD-3-Clause;md5=550794465ba0ec5312d6919e203a55f9" +LICENSE = "LGPLv3" +LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=05f1e16a8e59ce3e9a979e881816c2ab" PYPI_PACKAGE := "python-intervals" inherit pypi -SRC_URI[md5sum] = "a35dd44269fdb134bf19cfd80cb2c120" -SRC_URI[sha256sum] = "a8a15b7c2fadb8465310f44aa96e384828b35a29de38ac74738cd665924cb8ac" +SRC_URI[md5sum] = "8955317ff4e42590c90ba6247b1caaed" +SRC_URI[sha256sum] = "0d26746eaed0be78a61dd289bb7a10721b08770bb3e807614835f490d514f2a5" BBCLASSEXTEND = "native" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-intervals_1.5.4.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-intervals_1.10.0.bb similarity index 100% rename from Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-intervals_1.5.4.bb rename to Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-intervals_1.10.0.bb diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-ipaddress.inc b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-ipaddress.inc new file mode 100644 index 00000000..129cf225 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-ipaddress.inc @@ -0,0 +1,11 @@ +SUMMARY = "Python 3.3+'s ipaddress for Python 2.6, 2.7, 3.2." +HOMEPAGE = "https://github.com/phihag/ipaddress" +LICENSE = "Python-2.0" +LIC_FILES_CHKSUM = "file://LICENSE;md5=7f538584cc3407bf76042def7168548a" + +SRC_URI[md5sum] = "aaee67a8026782af1831148beb0d9060" +SRC_URI[sha256sum] = "b7f8e0369580bb4a24d5ba1d7cc29660a4a6987763faf1d8a8046830e020e7e2" + +inherit pypi + +BBCLASSEXTEND = "native nativesdk" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-ipaddress_1.0.22.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-ipaddress_1.0.22.bb deleted file mode 100644 index 66de8b63..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-ipaddress_1.0.22.bb +++ /dev/null @@ -1,13 +0,0 @@ -SUMMARY = "Python 3.3+'s ipaddress for Python 2.6, 2.7, 3.2." -HOMEPAGE = "https://github.com/phihag/ipaddress" -LICENSE = "Python-2.0" -LIC_FILES_CHKSUM = "file://LICENSE;md5=7f538584cc3407bf76042def7168548a" - -DEPENDS += "python-pip" - -SRC_URI[md5sum] = "74c1ce3109f30eaa1ab3dd342e7b76d4" -SRC_URI[sha256sum] = "b146c751ea45cad6188dd6cf2d9b757f6f4f8d6ffb96a023e6f2e26eea02a72c" - -inherit pypi setuptools - -BBCLASSEXTEND = "native nativesdk" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-ipaddress_1.0.23.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-ipaddress_1.0.23.bb new file mode 100644 index 00000000..ed4e6cb1 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-ipaddress_1.0.23.bb @@ -0,0 +1,2 @@ +inherit setuptools +require python-ipaddress.inc diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-ipy.inc b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-ipy.inc new file mode 100644 index 00000000..46b2fad0 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-ipy.inc @@ -0,0 +1,19 @@ +SUMMARY = "IPy - class and tools for handling of IPv4 and IPv6 addresses and networks" +DESCRIPTION = "IPy is a Python module for handling IPv4 and IPv6 Addresses and Networks \ +in a fashion similar to perl's Net::IP and friends. The IP class allows \ +a comfortable parsing and handling for most notations in use for IPv4 \ +and IPv6 Addresses and Networks." +SECTION = "devel/python" +HOMEPAGE = "https://github.com/autocracy/python-ipy" + +LICENSE = "BSD-3-Clause" +LIC_FILES_CHKSUM = "file://COPYING;md5=848d24919845901b4f48bae5f13252e6" + +SRC_URI[md5sum] = "1a90c68174234672241a7e60c7ea0fb9" +SRC_URI[sha256sum] = "2f2bf658a858d43868d8a4352b3889cf78c66e2ce678b300dcf518c9149ba621" + +inherit pypi + +PYPI_PACKAGE = "IPy" + +BBCLASSEXTEND = "native" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-ipy_1.00.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-ipy_1.00.bb new file mode 100644 index 00000000..587a517e --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-ipy_1.00.bb @@ -0,0 +1,2 @@ +inherit setuptools +require python-ipy.inc diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-isodate.inc b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-isodate.inc index 3cb6bb81..8c128919 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-isodate.inc +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-isodate.inc @@ -1,5 +1,5 @@ SUMMARY = "ISO 8601 date/time parser" -LICENSE = "BSD" +LICENSE = "BSD-3-Clause" LIC_FILES_CHKSUM = "file://PKG-INFO;beginline=8;endline=8;md5=e910b35b0ef4e1f665b9a75d6afb7709" SRC_URI[md5sum] = "0e1203fce27ce65e2d01c5f21c4d428f" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-isort.inc b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-isort.inc index 359b1801..324d4cf1 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-isort.inc +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-isort.inc @@ -4,8 +4,8 @@ LICENSE = "MIT" SECTION = "devel/python" LIC_FILES_CHKSUM = "file://PKG-INFO;beginline=8;endline=8;md5=8227180126797a0148f94f483f3e1489" -SRC_URI[md5sum] = "fb554e9c8f9aa76e333a03d470a5cf52" -SRC_URI[sha256sum] = "b9c40e9750f3d77e6e4d441d8b0266cf555e7cdabdcff33c4fd06366ca761ef8" +SRC_URI[md5sum] = "05d66f2eb7ce2c2d702e86bac24bf9e4" +SRC_URI[sha256sum] = "54da7e92468955c4fceacd0c86bd0ec997b0e1ee80d97f67c35a78b719dccab1" inherit pypi diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-isort_4.3.4.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-isort_4.3.21.bb similarity index 100% rename from Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-isort_4.3.4.bb rename to Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-isort_4.3.21.bb diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-itsdangerous.inc b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-itsdangerous.inc index 84f9e774..241786a7 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-itsdangerous.inc +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-itsdangerous.inc @@ -1,10 +1,10 @@ SUMMARY = "Various helpers to pass trusted data to untrusted environments and back." HOMEPAGE = "http://github.com/mitsuhiko/itsdangerous" LICENSE = "BSD-3-Clause" -LIC_FILES_CHKSUM = "file://LICENSE;md5=b61841e2bf5f07884148e2a6f1bcab0c" +LIC_FILES_CHKSUM = "file://LICENSE.rst;md5=370799bf709a1e4a6a369fa089ac73a6" -SRC_URI[md5sum] = "a3d55aa79369aef5345c036a8a26307f" -SRC_URI[sha256sum] = "cbb3fcf8d3e33df861709ecaf89d9e6629cff0a217bc2848f1b41cd30d360519" +SRC_URI[md5sum] = "9b7f5afa7f1e3acfb7786eeca3d99307" +SRC_URI[sha256sum] = "321b033d07f2a4136d3ec762eac9f16a10ccd60f53c0c91af90217ace7ba1f19" CLEANBROKEN = "1" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-itsdangerous_0.24.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-itsdangerous_1.1.0.bb similarity index 100% rename from Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-itsdangerous_0.24.bb rename to Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-itsdangerous_1.1.0.bb diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-javaobj-py3.inc b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-javaobj-py3.inc index a0e802ca..e667057b 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-javaobj-py3.inc +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-javaobj-py3.inc @@ -5,10 +5,10 @@ DESCRIPTION = "python-javaobj is a python library that provides functions\ representation is a standard data interchange format in Java world." HOMEPAGE = "https://github.com/tcalmant/python-javaobj" LICENSE = "Apache-2.0" -LIC_FILES_CHKSUM = "file://javaobj.py;beginline=21;endline=33;md5=8b504419ce78f8133b21b4d4a89ef7e9" +LIC_FILES_CHKSUM = "file://setup.py;beginline=15;endline=27;md5=af9ce26ac2de1b7436eb08c9308b4a1e" -SRC_URI[md5sum] = "f669bb8099380e3dd84db3d542aa5b68" -SRC_URI[sha256sum] = "b8b0d310fd97e1c7914d7911ee9d3f4b3d84d2a674aa95a4b0da3d8f155fc1bb" +SRC_URI[md5sum] = "352fe0df9336b8699ad0799ef152da6b" +SRC_URI[sha256sum] = "18c44cfaa214813784a823432b4ab9829c9626b2b00072011627b4008b0067cd" inherit pypi diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-javaobj-py3_0.2.4.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-javaobj-py3_0.4.0.1.bb similarity index 100% rename from Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-javaobj-py3_0.2.4.bb rename to Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-javaobj-py3_0.4.0.1.bb diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-jinja2.inc b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-jinja2.inc index aee7bd3f..6a6aad9e 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-jinja2.inc +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-jinja2.inc @@ -1,11 +1,11 @@ DESCRIPTION = "Python Jinja2: A small but fast and easy to use stand-alone template engine written in pure python." LICENSE = "BSD-3-Clause" -LIC_FILES_CHKSUM = "file://LICENSE;md5=20c831f91dd3bd486020f672ba2be386" +LIC_FILES_CHKSUM = "file://LICENSE.rst;md5=5dc88300786f1c214c1e9827a5229462" PYPI_PACKAGE = "Jinja2" -SRC_URI[md5sum] = "0ae535be40fd215a8114a090c8b68e5a" -SRC_URI[sha256sum] = "065c4f02ebe7f7cf559e49ee5a95fb800a9e4528727aec6f24402a5374c65013" +SRC_URI[md5sum] = "7883559bc5cc3e2781d94b4be61cfdcd" +SRC_URI[sha256sum] = "9fe95f19286cfefaa917656583d020be14e7859c6b0252588391e47db34527de" RDEPENDS_${PN} += "${PYTHON_PN}-io ${PYTHON_PN}-pickle ${PYTHON_PN}-crypt \ ${PYTHON_PN}-math ${PYTHON_PN}-netclient \ diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-jinja2_2.10.1.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-jinja2_2.10.3.bb similarity index 100% rename from Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-jinja2_2.10.1.bb rename to Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-jinja2_2.10.3.bb diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-jsonpatch.inc b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-jsonpatch.inc index 409c09ad..b23142d2 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-jsonpatch.inc +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-jsonpatch.inc @@ -1,12 +1,12 @@ SUMMARY = "Appling JSON patches in Python 2.6+ and 3.x" HOMEPAGE = "https://github.com/stefankoegl/python-json-patch" -LICENSE = "BSD" +LICENSE = "BSD-3-Clause" LIC_FILES_CHKSUM = "file://COPYING;md5=32b15c843b7a329130f4e266a281ebb3" inherit pypi -SRC_URI[md5sum] = "83c4c9faccb4a2ff8c1db80cbddc590d" -SRC_URI[sha256sum] = "49f29cab70e9068db3b1dc6b656cbe2ee4edf7dfe9bf5a0055f17a4b6804a4b9" +SRC_URI[md5sum] = "e86503f05fa192fa870d7004b8ce929a" +SRC_URI[sha256sum] = "cbb72f8bf35260628aea6b508a107245f757d1ec839a19c34349985e2c05645a" RDEPENDS_${PN} += "${PYTHON_PN}-json ${PYTHON_PN}-jsonpointer ${PYTHON_PN}-netclient ${PYTHON_PN}-stringold" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-jsonpatch_1.23.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-jsonpatch_1.24.bb similarity index 100% rename from Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-jsonpatch_1.23.bb rename to Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-jsonpatch_1.24.bb diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-jsonpointer.inc b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-jsonpointer.inc index 4ed01ed6..b6e4836e 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-jsonpointer.inc +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-jsonpointer.inc @@ -1,6 +1,6 @@ SUMMARY = "Resolve JSON Pointers in Python" HOMEPAGE = "https://github.com/stefankoegl/python-json-pointer" -LICENSE = "BSD" +LICENSE = "BSD-3-Clause" LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=32b15c843b7a329130f4e266a281ebb3" inherit pypi @@ -11,3 +11,5 @@ SRC_URI[sha256sum] = "c192ba86648e05fdae4f08a17ec25180a9aef5008d973407b581798a83 RDEPENDS_${PN} += " \ ${PYTHON_PN}-json \ " + +BBCLASSEXTEND = "native nativesdk" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-jsonschema.inc b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-jsonschema.inc index 6fdc0249..8135b0fe 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-jsonschema.inc +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-jsonschema.inc @@ -1,24 +1,48 @@ SUMMARY = "An implementation of JSON Schema validation for Python" +HOMEPAGE = "https://github.com/Julian/jsonschema" LICENSE = "MIT" -LIC_FILES_CHKSUM = "file://COPYING;md5=7a60a81c146ec25599a3e1dabb8610a8" +LIC_FILES_CHKSUM = "file://COPYING;md5=7a60a81c146ec25599a3e1dabb8610a8 \ + file://json/LICENSE;md5=9d4de43111d33570c8fe49b4cb0e01af" +DEPENDS += "${PYTHON_PN}-vcversioner-native ${PYTHON_PN}-setuptools-scm-native" -SRC_URI[md5sum] = "50c6b69a373a8b55ff1e0ec6e78f13f4" -SRC_URI[sha256sum] = "6ff5f3180870836cae40f06fa10419f557208175f13ad7bc26caa77beb1f6e02" +FILESEXTRAPATHS_prepend := "${THISDIR}/python-jsonschema:" -DEPENDS += "${PYTHON_PN}-vcversioner-native" +SRC_URI[md5sum] = "f1a0b5011f05a02a8dee1070cd10a26d" +SRC_URI[sha256sum] = "c8a85b28d377cc7737e46e2d9f2b4f44ee3c0e1deac6bf46ddefc7187d30797a" + +PACKAGECONFIG ??= "format" +PACKAGECONFIG[format] = ",,,\ + ${PYTHON_PN}-idna \ + ${PYTHON_PN}-jsonpointer \ + ${PYTHON_PN}-webcolors \ + ${PYTHON_PN}-rfc3987 \ + ${PYTHON_PN}-strict-rfc3339 \ +" +PACKAGECONFIG[nongpl] = ",,,\ + ${PYTHON_PN}-idna \ + ${PYTHON_PN}-jsonpointer \ + ${PYTHON_PN}-webcolors \ + ${PYTHON_PN}-rfc3986-validator \ + ${PYTHON_PN}-rfc3339-validator \ +" RDEPENDS_${PN} += " \ + ${PYTHON_PN}-attrs \ ${PYTHON_PN}-core \ + ${PYTHON_PN}-datetime \ + ${PYTHON_PN}-importlib-metadata \ ${PYTHON_PN}-io \ ${PYTHON_PN}-json \ ${PYTHON_PN}-netclient \ ${PYTHON_PN}-numbers \ ${PYTHON_PN}-pkgutil \ ${PYTHON_PN}-pprint \ - ${PYTHON_PN}-rfc3987 \ + ${PYTHON_PN}-pyrsistent \ ${PYTHON_PN}-shell \ - ${PYTHON_PN}-strict-rfc3339 \ + ${PYTHON_PN}-six \ ${PYTHON_PN}-unittest \ + ${PYTHON_PN}-setuptools-scm \ + ${PYTHON_PN}-zipp \ " BBCLASSEXTEND = "native nativesdk" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-jsonschema_2.6.0.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-jsonschema_3.2.0.bb similarity index 100% rename from Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-jsonschema_2.6.0.bb rename to Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-jsonschema_3.2.0.bb diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-kconfiglib-10.42.0.inc b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-kconfiglib-10.42.0.inc deleted file mode 100644 index 72d6a659..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-kconfiglib-10.42.0.inc +++ /dev/null @@ -1,8 +0,0 @@ -DESCRIPTION = "Kconfiglib is a Kconfig implementation in Python" -LICENSE = "ISC" -LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=712177a72a3937909543eda3ad1bfb7c" - -SRC_URI[md5sum] = "2306279a050c6a888f34a5719047f217" -SRC_URI[sha256sum] = "0070eb9061f924e1fa7bc2b1f0aeea1d38e1ddf9bbdbd4b5c346bcf1a0848674" - -BBCLASSEXTEND = "native nativesdk" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-kconfiglib.inc b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-kconfiglib.inc new file mode 100644 index 00000000..c82b26bc --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-kconfiglib.inc @@ -0,0 +1,8 @@ +DESCRIPTION = "Kconfiglib is a Kconfig implementation in Python" +LICENSE = "ISC" +LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=712177a72a3937909543eda3ad1bfb7c" + +SRC_URI[md5sum] = "7879aa13d306263e95146439d3959f23" +SRC_URI[sha256sum] = "8dbb946d41a33cec2b63432393a4920479c8c9fa8d5bbca468c4e8a673be6e36" + +BBCLASSEXTEND = "native nativesdk" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-lazy-object-proxy.inc b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-lazy-object-proxy.inc index 83d2ea3c..bbbd66ce 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-lazy-object-proxy.inc +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-lazy-object-proxy.inc @@ -1,10 +1,12 @@ SUMMARY = "A fast and thorough lazy object proxy" HOMEPAGE = "https://python-lazy-object-proxy.readthedocs.io/" -LICENSE = "BSD" +LICENSE = "BSD-2-Clause" SECTION = "devel/python" -LIC_FILES_CHKSUM = "file://LICENSE;md5=ec680df42d8ad56427a83308817658cc" +LIC_FILES_CHKSUM = "file://LICENSE;md5=9c5c2c74370826468065c5702b8a1fcf" -SRC_URI[md5sum] = "e128152b76eb5b9ba759504936139fd0" -SRC_URI[sha256sum] = "eb91be369f945f10d3a49f5f9be8b3d0b93a4c2be8f8a5b83b0571b8123e0a7a" +DEPENDS += "${PYTHON_PN}-setuptools-scm-native" + +SRC_URI[md5sum] = "5c64c06affcd2a7c6ddc848af4280cca" +SRC_URI[sha256sum] = "f3900e8a5de27447acbf900b4750b0ddfd7ec1ea7fbaf11dfa911141bc522af0" inherit pypi diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-lazy-object-proxy_1.3.1.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-lazy-object-proxy_1.4.3.bb similarity index 100% rename from Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-lazy-object-proxy_1.3.1.bb rename to Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-lazy-object-proxy_1.4.3.bb diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-license-expression.inc b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-license-expression.inc new file mode 100644 index 00000000..4c35e8dd --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-license-expression.inc @@ -0,0 +1,16 @@ +SUMMARY = "Utility library to parse, compare, simplify and normalize license expressions" +HOMEPAGE = "https://github.com/nexB/license-expression" + +LICENSE = "Apache-2.0" +LIC_FILES_CHKSUM = "file://apache-2.0.LICENSE;md5=e23fadd6ceef8c618fc1c65191d846fa" + +SRC_URI[md5sum] = "81477f779099f55071c6a7b88a29bb01" +SRC_URI[sha256sum] = "8aaa455c5b97c4f2174090178b19792b2a1c620e80591aafd4e0a99b713f9e8d" + +inherit pypi + +RDEPENDS_${PN} += "\ + ${PYTHON_PN}-booleanpy \ + " + +BBCLASSEXTEND = "native nativesdk" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-lockfile_0.12.2.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-lockfile_0.12.2.bb index 9ad865d4..20ea0180 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-lockfile_0.12.2.bb +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-lockfile_0.12.2.bb @@ -5,7 +5,7 @@ SECTION = "devel/python" RDEPENDS_${PN} = "python-threading" LICENSE = "MIT" -LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302" +LIC_FILES_CHKSUM = "file://LICENSE;md5=2340dffbbfea534b58f1349984eeef72" inherit pypi setuptools diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-lrparsing.inc b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-lrparsing.inc new file mode 100644 index 00000000..d125151c --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-lrparsing.inc @@ -0,0 +1,16 @@ +SUMMARY = "Python LR parsing library" +SECTION = "devel/python" +LICENSE = "AGPL-3.0" +LIC_FILES_CHKSUM = "file://agpl-3.0.txt;md5=73f1eb20517c55bf9493b7dd6e480788" + +HOMEPAGE = "http://lrparsing.sourceforge.net/" +BUGTRACKER = "https://sourceforge.net/p/lrparsing/tickets/" +UPSTREAM_CHECK_URI = "https://sourceforge.net/projects/lrparsing/files/" +UPSTREAM_CHECK_REGEX = "lrparsing-(?P\d+(\.\d+)+)" +SRC_URI = "${SOURCEFORGE_MIRROR}/lrparsing/lrparsing-${PV}.tar.gz" +SRC_URI[md5sum] = "34357d69bce87654d792cd8f02d148b2" +SRC_URI[sha256sum] = "b45afda44001dc5ba632934f74c043d40cce653f1a7526cfbcb68f6be055b8d7" + +S = "${WORKDIR}/lrparsing-${PV}" + +BBCLASSEXTEND = "native" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-lrparsing_1.0.16.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-lrparsing_1.0.16.bb new file mode 100644 index 00000000..2cfe3012 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-lrparsing_1.0.16.bb @@ -0,0 +1,2 @@ +inherit setuptools +require python-lrparsing.inc diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-lxml.inc b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-lxml.inc index dd73a412..df9573b4 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-lxml.inc +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-lxml.inc @@ -18,8 +18,8 @@ LIC_FILES_CHKSUM = "file://LICENSES.txt;md5=e4c045ebad958ead4b48008f70838403 \ DEPENDS += "libxml2 libxslt" -SRC_URI[md5sum] = "aec44da0457dca385261e5ceb3fe36f9" -SRC_URI[sha256sum] = "3ce1c49d4b4a7bc75fb12acb3a6247bb7a91fe420542e6d671ba9187d12a12c2" +SRC_URI[md5sum] = "235c1a22d97a174144e76b66ce62ae46" +SRC_URI[sha256sum] = "eff69ddbf3ad86375c344339371168640951c302450c5d3e9936e98d6459db06" DISTUTILS_BUILD_ARGS += " \ --with-xslt-config='pkg-config libxslt' \ @@ -45,11 +45,6 @@ DEBUG_OPTIMIZATION_append_mipsel = " -O" BUILD_OPTIMIZATION_remove_mipsel = " -Og" BUILD_OPTIMIZATION_append_mipsel = " -O" -do_configure_prepend() { - sed -i -e 's/--version/--modversion/' ${B}/setupinfo.py -} - BBCLASSEXTEND = "native nativesdk" RDEPENDS_${PN} += "libxml2 libxslt ${PYTHON_PN}-compression" -RDEPENDS_${PN}_class-native = "libxml2-native libxslt-native" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-lxml_4.3.4.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-lxml_4.4.2.bb similarity index 100% rename from Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-lxml_4.3.4.bb rename to Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-lxml_4.4.2.bb diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-m2crypto.inc b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-m2crypto.inc index a36ab8a7..5f5444f3 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-m2crypto.inc +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-m2crypto.inc @@ -32,7 +32,7 @@ export SWIG_FEATURES # do_configure_prepend() { ${CPP} -dM - < /dev/null | grep -v '__\(STDC\|REGISTER_PREFIX\|GNUC\|STDC_HOSTED\)__' \ - | sed 's/^\(#define \([^ ]*\) .*\)$/#undef \2\n\1/' > SWIG/gcc_macros.h + | sed 's/^\(#define \([^ ]*\) .*\)$/#undef \2\n\1/' > ${S}/SWIG/gcc_macros.h if [ "${SITEINFO_BITS}" = "64" ];then bit="64" @@ -42,11 +42,11 @@ do_configure_prepend() { if [ -e ${STAGING_INCDIR}/openssl/opensslconf-${bit}.h ] ;then for i in SWIG/_ec.i SWIG/_evp.i; do - sed -i -e "s/opensslconf.*\./opensslconf-${bit}\./" "$i" + sed -i -e "s/opensslconf.*\./opensslconf-${bit}\./" "${S}/$i" done elif [ -e ${STAGING_INCDIR}/openssl/opensslconf-n${bit}.h ] ;then for i in SWIG/_ec.i SWIG/_evp.i; do - sed -i -e "s/opensslconf.*\./opensslconf-n${bit}\./" "$i" + sed -i -e "s/opensslconf.*\./opensslconf-n${bit}\./" "${S}/$i" done fi } diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-mako.inc b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-mako.inc index dc27ada7..abcbb884 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-mako.inc +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-mako.inc @@ -8,8 +8,8 @@ PYPI_PACKAGE = "Mako" inherit pypi -SRC_URI[md5sum] = "4a7aef27217a8e6c1a29447c9b1b00ab" -SRC_URI[sha256sum] = "0cfa65de3a835e87eeca6ac856b3013aade55f49e32515f65d999f91a2324162" +SRC_URI[md5sum] = "6c3f2da0b74af529a4c4a537d0848bf2" +SRC_URI[sha256sum] = "a36919599a9b7dc5d86a7a8988f23a9a3a3d083070023bab23d64f7f1d1e0a4b" RDEPENDS_${PN} = " \ ${PYTHON_PN}-html \ diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-mako_1.0.12.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-mako_1.1.0.bb similarity index 100% rename from Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-mako_1.0.12.bb rename to Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-mako_1.1.0.bb diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-markupsafe.inc b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-markupsafe.inc index 437a60cf..33d63b3e 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-markupsafe.inc +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-markupsafe.inc @@ -1,10 +1,10 @@ DESCRIPTION = "Implements a XML/HTML/XHTML Markup safe string for Python" HOMEPAGE = "http://github.com/mitsuhiko/markupsafe" LICENSE = "BSD-3-Clause" -LIC_FILES_CHKSUM = "file://LICENSE;md5=c6d1adcf45d69359f256c1cea3254127" +LIC_FILES_CHKSUM = "file://LICENSE.rst;md5=ffeffa59c90c9c4a033c7574f8f3fb75" -SRC_URI[md5sum] = "2fcedc9284d50e577b5192e8e3578355" -SRC_URI[sha256sum] = "a6be69091dac236ea9c6bc7d012beab42010fa914c459791d627dad4910eb665" +SRC_URI[md5sum] = "43fd756864fe42063068e092e220c57b" +SRC_URI[sha256sum] = "29872e92839765e546828bb7754a68c418d927cd064fd4708fab9fe9c8bb116b" PYPI_PACKAGE = "MarkupSafe" inherit pypi diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-markupsafe_1.0.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-markupsafe_1.1.1.bb similarity index 100% rename from Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-markupsafe_1.0.bb rename to Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-markupsafe_1.1.1.bb diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-matplotlib_2.0.2.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-matplotlib_2.0.2.bb deleted file mode 100644 index 5b1c3f05..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-matplotlib_2.0.2.bb +++ /dev/null @@ -1,18 +0,0 @@ -DESCRIPTION = "matplotlib is a python 2D plotting library which produces publication quality figures in a variety of hardcopy formats" -SECTION = "devel/python" -LICENSE = "PSF" -LIC_FILES_CHKSUM = "file://LICENSE/LICENSE;md5=afec61498aa5f0c45936687da9a53d74" - -DEPENDS += "python-numpy freetype libpng python-dateutil python-pytz" -RDEPENDS_${PN} = "python-core python-distutils python-numpy freetype libpng python-dateutil python-pytz" - -SRC_URI = "https://github.com/matplotlib/matplotlib/archive/v${PV}.tar.gz \ - file://fix_setupext.patch \ -" -SRC_URI[md5sum] = "89717c1ef3c6fdcd6fb1f3b597a4858c" -SRC_URI[sha256sum] = "aebed23921562792b68b8ca355de5abc176af4424f1987e2fa95f65e5c5e7e89" -S = "${WORKDIR}/matplotlib-${PV}" -EXTRA_OECONF = "--disable-docs" - -inherit setuptools pkgconfig - diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-meld3.inc b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-meld3.inc index d4e274e6..558e436c 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-meld3.inc +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-meld3.inc @@ -5,7 +5,7 @@ template markup and dynamic rendering logic separate from one \ another. See http://www.entrian.com/PyMeld for a treatise on the \ benefits of this pattern." HOMEPAGE = "https://github.com/supervisor/meld3" -LICENSE = "BSD" +LICENSE = "BSD-4-Clause" LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=9e7581cef5645475fcefebdc15ed7abf" SRC_URI[md5sum] = "3ccc78cd79cffd63a751ad7684c02c91" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-more-itertools.inc b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-more-itertools.inc new file mode 100644 index 00000000..8dcf00b3 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-more-itertools.inc @@ -0,0 +1,6 @@ +DESCRIPTION = "More routines for operating on iterables, beyond itertools" +HOMEPAGE = "https://github.com/erikrose/more-itertools" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://LICENSE;md5=3396ea30f9d21389d7857719816f83b5" + +BBCLASSEXTEND = "native nativesdk" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-more-itertools_5.0.0.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-more-itertools_5.0.0.bb new file mode 100644 index 00000000..6c44df40 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-more-itertools_5.0.0.bb @@ -0,0 +1,7 @@ +inherit pypi setuptools +require python-more-itertools.inc + +SRC_URI[md5sum] = "f2ea58aa336ce6c13b7b225b3bbe305d" +SRC_URI[sha256sum] = "38a936c0a6d98a38bcc2d03fdaaedaba9f412879461dd2ceff8d37564d6522e4" + +PE = "1" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-msgpack.inc b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-msgpack.inc index 3a97042e..adf5c3e9 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-msgpack.inc +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-msgpack.inc @@ -5,8 +5,8 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=cd9523181d9d4fbf7ffca52eaa2a5751" PYPI_PACKAGE = "msgpack" inherit pypi -SRC_URI[md5sum] = "1b96537be6f5186fed0d131aaa59ef26" -SRC_URI[sha256sum] = "4008c72f5ef2b7936447dcb83db41d97e9791c83221be13d5e19db0796df1972" +SRC_URI[md5sum] = "ba46fdee995565f40e332bd7eea882f1" +SRC_URI[sha256sum] = "ea3c2f859346fcd55fc46e96885301d9c2f7a36d453f5d8f2967840efa1e1830" RDEPENDS_${PN}_class-target += "\ ${PYTHON_PN}-io \ diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-msgpack_0.6.1.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-msgpack_0.6.2.bb similarity index 100% rename from Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-msgpack_0.6.1.bb rename to Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-msgpack_0.6.2.bb diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-ndg-httpsclient.inc b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-ndg-httpsclient.inc index 91235b96..bca58f76 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-ndg-httpsclient.inc +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-ndg-httpsclient.inc @@ -1,6 +1,6 @@ DESCRIPTION = "Provides enhanced HTTPS support for httplib and urllib2 using PyOpenSSL" HOMEPAGE = "http://python-requests.org" -LICENSE = "BSD" +LICENSE = "BSD-3-Clause" LIC_FILES_CHKSUM = "file://MANIFEST.in;md5=ce22c0cd986d2de3f7073cd6b5523ae0" SRC_URI[md5sum] = "b0fc8ea38f87d2c1ab1ed79a95c078f9" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-netaddr.inc b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-netaddr.inc index 5b6d4dff..bea9be67 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-netaddr.inc +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-netaddr.inc @@ -1,5 +1,5 @@ SUMMARY = "A network address manipulation library for Python." -LICENSE = "BSD" +LICENSE = "BSD-3-Clause" LIC_FILES_CHKSUM = "file://LICENSE;md5=e6345d695ffe3776f68a56fe7962db44" SRC_URI[md5sum] = "51019ef59c93f3979bcb37d3b8527e07" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-netifaces.inc b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-netifaces.inc new file mode 100644 index 00000000..daccc4fb --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-netifaces.inc @@ -0,0 +1,10 @@ +DESCRIPTION = "Portable network interface information for Python" +SECTION = "devel/python" + +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://PKG-INFO;beginline=8;endline=8;md5=a53cbc7cb75660694e138ba973c148df" + +SRC_URI[md5sum] = "de92cc322b4f56047c073f802ad77860" +SRC_URI[sha256sum] = "2dee9ffdd16292878336a58d04a20f0ffe95555465fee7c9bd23b3490ef2abf3" + +inherit pypi diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-netifaces_0.10.9.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-netifaces_0.10.9.bb new file mode 100644 index 00000000..c4aa8497 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-netifaces_0.10.9.bb @@ -0,0 +1,2 @@ +require python-netifaces.inc +inherit setuptools diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-networkx.inc b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-networkx.inc new file mode 100644 index 00000000..a4c31b2b --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-networkx.inc @@ -0,0 +1,10 @@ +DESCRIPTION = "Python package for creating and manipulating graphs and networks" +LICENSE = "BSD-3-Clause" + +inherit pypi + +PYPI_PACKAGE_EXT = "zip" + +RDEPENDS_${PN} += "\ + ${PYTHON_PN}-decorator \ + " diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-networkx_2.1.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-networkx_2.1.bb deleted file mode 100644 index bc0c6863..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-networkx_2.1.bb +++ /dev/null @@ -1,12 +0,0 @@ -DESCRIPTION = "Python package for creating and manipulating graphs and networks" -LICENSE = "BSD-3-Clause" -LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=3376ff7c9c58048c62d91431f7f08cde" - -SRC_URI[md5sum] = "4a2c2a62dfc46ba7d594daca7c834995" -SRC_URI[sha256sum] = "64272ca418972b70a196cb15d9c85a5a6041f09a2f32e0d30c0255f25d458bb1" - -PYPI_PACKAGE_EXT = "zip" - -inherit pypi setuptools - -RDEPENDS_${PN} += "python-2to3" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-networkx_2.2.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-networkx_2.2.bb new file mode 100644 index 00000000..648f0312 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-networkx_2.2.bb @@ -0,0 +1,8 @@ +require python-networkx.inc + +LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=3376ff7c9c58048c62d91431f7f08cde" + +SRC_URI[md5sum] = "82608a3686fb3e61f20cf13bfd3c1b4a" +SRC_URI[sha256sum] = "45e56f7ab6fe81652fb4bc9f44faddb0e9025f469f602df14e3b2551c2ea5c8b" + +inherit setuptools diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-oauthlib.inc b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-oauthlib.inc index c5de8a09..fea07144 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-oauthlib.inc +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-oauthlib.inc @@ -1,7 +1,7 @@ SUMMARY = "A generic, spec-compliant, thorough implementation of the OAuth request-signing logic" HOMEPAGE = "https://github.com/idan/oauthlib" -LICENSE = "BSD" +LICENSE = "BSD-3-Clause" LIC_FILES_CHKSUM = "file://LICENSE;md5=5ba9ce41463615e082609806255bce1b" SRC_URI = "https://pypi.python.org/packages/a5/8a/212e9b47fb54be109f3ff0684165bb38c51117f34e175c379fce5c7df754/oauthlib-${PV}.tar.gz" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-oauthlib_2.0.6.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-oauthlib_2.0.6.bb deleted file mode 100644 index 4329d21a..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-oauthlib_2.0.6.bb +++ /dev/null @@ -1,4 +0,0 @@ -inherit setuptools -require python-oauthlib.inc - -RDEPENDS_${PN} += "${PYTHON_PN}-re ${PYTHON_PN}-lang" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-packaging.inc b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-packaging.inc new file mode 100644 index 00000000..7cedadf6 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-packaging.inc @@ -0,0 +1,10 @@ +DESCRIPTION = "Core utilities for Python packages" +HOMEPAGE = "https://github.com/pypa/packaging" +LICENSE = "Apache-2.0 & BSD" +LIC_FILES_CHKSUM = "file://LICENSE;md5=faadaedca9251a90b205c9167578ce91" + +SRC_URI[md5sum] = "93d6ccbdfcb5b7697b6ecea53ecc294b" +SRC_URI[sha256sum] = "fe1d8331dfa7cc0a883b49d75fc76380b2ab2734b220fbb87d774e4fd4b851f8" + +DEPENDS += "${PYTHON_PN}-setuptools-scm-native" +RDEPENDS_${PN} += "${PYTHON_PN}-six ${PYTHON_PN}-pyparsing" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-packaging_20.0.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-packaging_20.0.bb new file mode 100644 index 00000000..55d0746b --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-packaging_20.0.bb @@ -0,0 +1,2 @@ +inherit pypi setuptools +require python-packaging.inc diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-paho-mqtt.inc b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-paho-mqtt.inc index 66943ed6..0a0e6108 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-paho-mqtt.inc +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-paho-mqtt.inc @@ -8,8 +8,8 @@ SRCNAME = "paho-mqtt" inherit pypi -SRC_URI[md5sum] = "e3ac29cd5dc247a01083a2a8f3fddd08" -SRC_URI[sha256sum] = "e440a052b46d222e184be3be38676378722072fcd4dfd2c8f509fb861a7b0b79" +SRC_URI[md5sum] = "45e80d9b8066a8d0ba1ecfffe271bd3d" +SRC_URI[sha256sum] = "e3d286198baaea195c8b3bc221941d25a3ab0e1507fc1779bdb7473806394be4" DEPENDS += "${PYTHON_PN}-pytest-runner-native" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-paho-mqtt_1.4.0.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-paho-mqtt_1.5.0.bb similarity index 100% rename from Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-paho-mqtt_1.4.0.bb rename to Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-paho-mqtt_1.5.0.bb diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pam_1.8.2.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pam_1.8.2.bb index 60a3b43d..bac34961 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pam_1.8.2.bb +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pam_1.8.2.bb @@ -11,5 +11,5 @@ inherit pypi setuptools RDEPENDS_${PN} = "libpam" -inherit distro_features_check +inherit features_check REQUIRED_DISTRO_FEATURES = "pam" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pandas_0.23.4.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pandas_0.23.4.bb deleted file mode 100644 index b3bfab96..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pandas_0.23.4.bb +++ /dev/null @@ -1,7 +0,0 @@ -inherit setuptools -require python-pandas.inc - -RDEPENDS_${PN} += " \ - ${PYTHON_PN}-future \ - ${PYTHON_PN}-json \ -" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-parse.inc b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-parse.inc index fa55a93c..5ce67f11 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-parse.inc +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-parse.inc @@ -1,10 +1,10 @@ SUMMARY = "Parse strings using a specification based on the Python format() syntax" HOMEPAGE = "https://github.com/r1chardj0n3s/parse" LICENSE = "MIT" -LIC_FILES_CHKSUM = "file://parse.py;beginline=1273;endline=1291;md5=5147afdd9b3615290ad8733f0137a1a1" +LIC_FILES_CHKSUM = "file://parse.py;beginline=1325;endline=1345;md5=fa03bae3f51a2db25e239e869c647437" -SRC_URI[md5sum] = "fa69ab2fe846f9b183411391f7c6897b" -SRC_URI[sha256sum] = "c3cdf6206f22aeebfa00e5b954fcfea13d1b2dc271c75806b6025b94fb490939" +SRC_URI[md5sum] = "07cbb5ba1025cbfe92fc3376c372dda5" +SRC_URI[sha256sum] = "95a4f4469e37c57b5e924629ac99926f28bee7da59515dc5b8078c4c3e779249" inherit pypi diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-parse_1.8.4.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-parse_1.14.0.bb similarity index 100% rename from Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-parse_1.8.4.bb rename to Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-parse_1.14.0.bb diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-passlib.inc b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-passlib.inc index 9e477ecf..9cf02807 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-passlib.inc +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-passlib.inc @@ -6,11 +6,11 @@ managing existing password hashes. It’s designed to be useful for a wide range tasks, from verifying a hash found in /etc/shadow, to providing full-strength password \ hashing for multi-user applications." HOMEPAGE = "https://bitbucket.org/ecollins/passlib" -LICENSE = "BSD" -LIC_FILES_CHKSUM = "file://LICENSE;md5=73eed1a5470b969951dac411086c7036" +LICENSE = "BSD-3-Clause" +LIC_FILES_CHKSUM = "file://LICENSE;md5=44fd7dcd5d42b48d6dea59ac643a0179" -SRC_URI[md5sum] = "254869dae3fd9f09f0746a3cb29a0b15" -SRC_URI[sha256sum] = "3d948f64138c25633613f303bcc471126eae67c04d5e3f6b7b8ce6242f8653e0" +SRC_URI[md5sum] = "b908529cfd4c33057c244324c692eae7" +SRC_URI[sha256sum] = "8d666cef936198bc2ab47ee9b0410c94adf2ba798e5a84bf220be079ae7ab6a8" RDEPENDS_${PN} += "\ ${PYTHON_PN}-crypt \ diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-passlib_1.7.1.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-passlib_1.7.2.bb similarity index 100% rename from Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-passlib_1.7.1.bb rename to Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-passlib_1.7.2.bb diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-paste_3.0.8.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-paste_3.0.8.bb deleted file mode 100644 index c8c932c9..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-paste_3.0.8.bb +++ /dev/null @@ -1,17 +0,0 @@ -SUMMARY = "Tools for using a Web Server Gateway Interface stack" -HOMEPAGE = "http://pythonpaste.org/" -LICENSE = "MIT" -RDEPENDS_${PN} = "python-six" - -LIC_FILES_CHKSUM = "file://docs/license.txt;md5=1798f29d55080c60365e6283cb49779c" - -SRC_URI[md5sum] = "0119f4e82b930781e3bcb59c77f7a353" -SRC_URI[sha256sum] = "c4f13993e6ab4a38602cef298d876552083e8215685bb45abda7113f0dd48117" - -PYPI_PACKAGE = "Paste" -inherit pypi setuptools - -FILES_${PN} += "/usr/lib/*" - -DEPENDS += "${PYTHON_PN}-pytest-runner-native" - diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-paste_3.2.3.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-paste_3.2.3.bb new file mode 100644 index 00000000..c3d4fddf --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-paste_3.2.3.bb @@ -0,0 +1,17 @@ +SUMMARY = "Tools for using a Web Server Gateway Interface stack" +HOMEPAGE = "http://pythonpaste.org/" +LICENSE = "MIT" +RDEPENDS_${PN} = "python-six" + +LIC_FILES_CHKSUM = "file://docs/license.txt;md5=1798f29d55080c60365e6283cb49779c" + +SRC_URI[md5sum] = "7dc6dbd20e358dd95bd42eef5c6cc84c" +SRC_URI[sha256sum] = "8bdc7f6be907eed7cd63868c79d88af2b87d02d840fb5acfc93d4bda572b1567" + +PYPI_PACKAGE = "Paste" +inherit pypi setuptools + +FILES_${PN} += "/usr/lib/*" + +DEPENDS += "${PYTHON_PN}-pytest-runner-native" + diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pathlib2.inc b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pathlib2.inc new file mode 100644 index 00000000..3199b56a --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pathlib2.inc @@ -0,0 +1,11 @@ +DESCRIPTION = "Object-oriented filesystem paths" +HOMEPAGE = "https://github.com/mcmtroffaes/pathlib2" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://LICENSE.rst;md5=042856c23a3e903b33bf361ea1cbe29a" + +SRC_URI[md5sum] = "f2bd0a363eb0f8fa0556f35c1d9e66fb" +SRC_URI[sha256sum] = "6cd9a47b597b37cc57de1c05e56fb1a1c9cc9fab04fe78c29acd090418529868" + +RDEPENDS_${PN} += "${PYTHON_PN}-six" + +BBCLASSEXTEND = "native nativesdk" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pathlib2_2.3.5.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pathlib2_2.3.5.bb new file mode 100644 index 00000000..6317e1c1 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pathlib2_2.3.5.bb @@ -0,0 +1,6 @@ +inherit pypi setuptools +require python-pathlib2.inc + +RDEPENDS_${PN} += "python-scandir \ + python-misc \ +" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pbr_5.2.1.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pbr_5.2.1.bb deleted file mode 100644 index ccc75de8..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pbr_5.2.1.bb +++ /dev/null @@ -1,13 +0,0 @@ -inherit setuptools -# The inc file is in oe-core -require recipes-devtools/python/python-pbr.inc - -SRC_URI[md5sum] = "f72c2dd10602abad3695097d634e94bb" -SRC_URI[sha256sum] = "93d2dc6ee0c9af4dbc70bc1251d0e545a9910ca8863774761f92716dece400b6" - -do_install_append() { - if [ -f ${D}${bindir}/pbr ]; then - mv ${D}${bindir}/pbr ${D}${bindir}/pbr-2 - fi -} - diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pbr_5.4.4.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pbr_5.4.4.bb new file mode 100644 index 00000000..9d7d8d7b --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pbr_5.4.4.bb @@ -0,0 +1,13 @@ +inherit setuptools +# The inc file is in oe-core +require recipes-devtools/python/python-pbr.inc + +SRC_URI[md5sum] = "65cdc32e1a1ff56d481fc15aa8caf988" +SRC_URI[sha256sum] = "139d2625547dbfa5fb0b81daebb39601c478c21956dc57e2e07b74450a8c506b" + +do_install_append() { + if [ -f ${D}${bindir}/pbr ]; then + mv ${D}${bindir}/pbr ${D}${bindir}/pbr-2 + fi +} + diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-periphery.inc b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-periphery.inc index 539c3579..719c6350 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-periphery.inc +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-periphery.inc @@ -2,6 +2,6 @@ DESCRIPTION = "A pure Python 2/3 library for peripheral I/O (GPIO, LED, PWM, SPI HOMEPAGE = "http://pythonhosted.org/python-periphery/" LICENSE = "MIT" -LIC_FILES_CHKSUM = "file://PKG-INFO;md5=063846af82b555d48822cf43dc6db6af" +LIC_FILES_CHKSUM = "file://PKG-INFO;md5=1ecf5c2354c22fb5bfd53eefb8f9e65b" -PYPI_PACKAGE = "python-periphery" \ No newline at end of file +PYPI_PACKAGE = "python-periphery" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-periphery_1.1.1.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-periphery_1.1.1.bb deleted file mode 100644 index 6ae7fed8..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-periphery_1.1.1.bb +++ /dev/null @@ -1,4 +0,0 @@ -inherit pypi setuptools -require python-periphery.inc - -SRC_URI[sha256sum] = "fe8f351934edce72cd919b4eb070878ebff551db5e21aea61e0f446101f0a79f" \ No newline at end of file diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-periphery_2.0.1.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-periphery_2.0.1.bb new file mode 100644 index 00000000..8d0240ae --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-periphery_2.0.1.bb @@ -0,0 +1,5 @@ +inherit pypi setuptools +require python-periphery.inc + +SRC_URI[md5sum] = "1d958f02575d4a19734ee2dd92336157" +SRC_URI[sha256sum] = "5da4d5f40ff8974cf6c724587baa674d7e0593f07b6f6ee896104f11c1be18ec" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pexpect.inc b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pexpect.inc index efeab831..6d78eb94 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pexpect.inc +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pexpect.inc @@ -4,8 +4,8 @@ SECTION = "devel/python" LICENSE = "ISC" LIC_FILES_CHKSUM = "file://LICENSE;md5=1c7a725251880af8c6a148181665385b" -SRC_URI[md5sum] = "d4f3372965a996238d57d19b95d2e03a" -SRC_URI[sha256sum] = "2a8e88259839571d1251d278476f3eec5db26deb73a70be5ed5dc5435e418aba" +SRC_URI[md5sum] = "ed003242cbf308aee1b1eaecdef59e43" +SRC_URI[sha256sum] = "9e2c1fd0e6ee3a49b28f95d4b33bc389c89b20af6a1255906e90ff1262ce62eb" UPSTREAM_CHECK_URI = "https://pypi.python.org/pypi/pexpect" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pexpect_4.6.0.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pexpect_4.7.0.bb similarity index 100% rename from Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pexpect_4.6.0.bb rename to Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pexpect_4.7.0.bb diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pika.inc b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pika.inc new file mode 100644 index 00000000..bde154fe --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pika.inc @@ -0,0 +1,22 @@ +SUMMARY = "Pika is a RabbitMQ (AMQP 0-9-1) client library for Python." +DESCRIPTION = " \ +Pika is a pure-Python implementation of the AMQP 0-9-1 protocol \ +including RabbitMQ’s extensions. \ +" +SECTION = "devel/python" +HOMEPAGE = "https://pika.readthedocs.io" +LICENSE = "BSD-3-Clause" +LIC_FILES_CHKSUM = "file://LICENSE;md5=535836bf0a5de515a7bfee026075701d" + +SRC_URI[md5sum] = "6002400cdd33bf85ec8680ece72910d4" +SRC_URI[sha256sum] = "9fa76ba4b65034b878b2b8de90ff8660a59d925b087c5bb88f8fdbb4b64a1dbf" + +inherit pypi + +PYPI_PACKAGE = "pika" + +RDEPENDS_${PN} += " \ + ${PYTHON_PN}-logging \ + ${PYTHON_PN}-tornado \ + ${PYTHON_PN}-twisted \ +" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pika_1.1.0.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pika_1.1.0.bb new file mode 100644 index 00000000..f7e01986 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pika_1.1.0.bb @@ -0,0 +1,2 @@ +inherit setuptools +require python-pika.inc diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pint.inc b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pint.inc index 53f77839..0900d91d 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pint.inc +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pint.inc @@ -3,13 +3,13 @@ HOMEPAGE = "https://github.com/AlexandreDecan/python-intervals" SECTION = "devel/python" LICENSE = "BSD-3-Clause" -LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/BSD-3-Clause;md5=550794465ba0ec5312d6919e203a55f9" +LIC_FILES_CHKSUM = "file://LICENSE;md5=bccf824202692270a1e0829a62e3f47b" PYPI_PACKAGE := "Pint" inherit pypi -SRC_URI[md5sum] = "e1f80f3f8fc4e61f68ad3912db26b3a8" -SRC_URI[sha256sum] = "afcf31443a478c32bbac4b00337ee9026a13d0e2ac83d30c79151462513bb0d4" +SRC_URI[md5sum] = "d0681cb7cfaca9fc68ce7edab0d08d88" +SRC_URI[sha256sum] = "32d8a9a9d63f4f81194c0014b3b742679dce81a26d45127d9810a68a561fe4e2" BBCLASSEXTEND = "native" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pint_0.8.1.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pint_0.9.bb similarity index 100% rename from Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pint_0.8.1.bb rename to Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pint_0.9.bb diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pip_19.1.1.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pip_19.1.1.bb deleted file mode 100644 index f7826503..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pip_19.1.1.bb +++ /dev/null @@ -1,14 +0,0 @@ -SUMMARY = "PIP is a tool for installing and managing Python packages" -HOMEPAGE = "https://pip.pypa.io/" -LICENSE = "MIT & LGPL-2.1" -LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=8ba06d529c955048e5ddd7c45459eb2e" - -SRC_URI[md5sum] = "4fb98a060f21c731d6743b90a714fc73" -SRC_URI[sha256sum] = "44d3d7d3d30a1eb65c7e5ff1173cdf8f7467850605ac7cc3707b6064bddd0958" - -inherit pypi setuptools - -# Since PIP is like CPAN for PERL we need to drag in all python modules to ensure everything works -RDEPENDS_${PN}_class-target = "python-modules python-distribute python-misc" - -BBCLASSEXTEND = "native nativesdk" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pip_19.3.1.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pip_19.3.1.bb new file mode 100644 index 00000000..2827a125 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pip_19.3.1.bb @@ -0,0 +1,14 @@ +SUMMARY = "PIP is a tool for installing and managing Python packages" +HOMEPAGE = "https://pip.pypa.io/" +LICENSE = "MIT & LGPL-2.1" +LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=8ba06d529c955048e5ddd7c45459eb2e" + +SRC_URI[md5sum] = "1aaaf90fbafc50e7ba1e66ffceb00960" +SRC_URI[sha256sum] = "21207d76c1031e517668898a6b46a9fb1501c7a4710ef5dfd6a40ad9e6757ea7" + +inherit pypi setuptools + +# Since PIP is like CPAN for PERL we need to drag in all python modules to ensure everything works +RDEPENDS_${PN}_class-target = "python-modules python-distribute python-misc" + +BBCLASSEXTEND = "native nativesdk" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pluggy.inc b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pluggy.inc index 320359aa..7585984d 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pluggy.inc +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pluggy.inc @@ -1,9 +1,14 @@ SUMMARY = "Plugin and hook calling mechanisms for python" HOMEPAGE = "https://github.com/pytest-dev/pluggy" LICENSE = "MIT" -LIC_FILES_CHKSUM = "file://LICENSE;md5=338dad807ed9337bfaeb9979c3bfe20f" +LIC_FILES_CHKSUM = "file://LICENSE;md5=1c8206d16fd5cc02fa9b0bb98955e5c2" -SRC_URI[md5sum] = "ffdde7c3a5ba9a440404570366ffb6d5" -SRC_URI[sha256sum] = "7f8ae7f5bdf75671a718d2daf0a64b7885f74510bcd98b1a0bb420eb9a9d0cff" +SRC_URI[md5sum] = "7f610e28b8b34487336b585a3dfb803d" +SRC_URI[sha256sum] = "15b2acde666561e1298d71b523007ed7364de07029219b604cf808bfa1c765b0" + +DEPENDS += "${PYTHON_PN}-setuptools-scm-native" +RDEPENDS_${PN} += "${PYTHON_PN}-importlib-metadata \ + ${PYTHON_PN}-more-itertools \ +" inherit pypi diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pluggy_0.6.0.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pluggy_0.13.1.bb similarity index 100% rename from Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pluggy_0.6.0.bb rename to Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pluggy_0.13.1.bb diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-ply.inc b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-ply.inc index a744950b..149fe058 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-ply.inc +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-ply.inc @@ -2,7 +2,7 @@ SUMMARY = "Python Lex and Yacc" DESCRIPTION = "Python ply: PLY is yet another implementation of lex and yacc for Python" HOMEPAGE = "https://pypi.python.org/pypi/ply" SECTION = "devel/python" -LICENSE = "BSD" +LICENSE = "BSD-3-Clause" LIC_FILES_CHKSUM = "file://README.md;beginline=5;endline=32;md5=f5ee5c355c0e6719c787a71b8f0fa96c" SRC_URI[md5sum] = "6465f602e656455affcd7c5734c638f8" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pocketsphinx.inc b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pocketsphinx.inc index 4c848b6d..1f8f66a1 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pocketsphinx.inc +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pocketsphinx.inc @@ -1,6 +1,6 @@ SUMMARY = "This package provides a python interface to CMU Sphinxbase and Pocketsphinx libraries created with SWIG and Setuptools." SECTION = "devel/python" -LICENSE = "BSD" +LICENSE = "BSD-2-Clause" LIC_FILES_CHKSUM = "file://LICENSE;md5=826ebda787eb48e78aec2624f9faba72" SRC_URI[md5sum] = "c0f2bfd54bc4c438c3bb64825f57d575" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pretend.inc b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pretend.inc index b342aef5..58f19619 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pretend.inc +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pretend.inc @@ -1,6 +1,6 @@ SUMMARY = "A library for stubbing in Python" HOMEPAGE = "https://github.com/alex/pretend" -LICENSE = "BSD" +LICENSE = "BSD-3-Clause" LIC_FILES_CHKSUM = "file://LICENSE.rst;md5=411780c0b7fa756753e94affeee5bc99" SRC_URI[md5sum] = "ad53883ede48aeac7ae584f0de0240e8" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-prettytable.inc b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-prettytable.inc new file mode 100644 index 00000000..07e896d2 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-prettytable.inc @@ -0,0 +1,25 @@ +SUMMARY = "Python library for displaying tabular data in a ASCII table format" +HOMEPAGE = "http://code.google.com/p/prettytable" +LICENSE = "BSD-3-Clause" +LIC_FILES_CHKSUM = "file://COPYING;md5=3e73500ffa52de5071cff65990055282" + +SRC_URI[md5sum] = "0c1361104caff8b09f220748f9d69899" +SRC_URI[sha256sum] = "a53da3b43d7a5c229b5e3ca2892ef982c46b7923b51e98f0db49956531211c4f" + +SRCNAME = "prettytable" + +SRC_URI = "https://pypi.python.org/packages/source/P/PrettyTable/${SRCNAME}-${PV}.zip" + +S = "${WORKDIR}/${SRCNAME}-${PV}" + +do_install_append() { + perm_files=`find "${D}${PYTHON_SITEPACKAGES_DIR}/" -name "*.txt" -o -name "PKG-INFO"` + for f in $perm_files; do + chmod 644 "${f}" + done +} + +UPSTREAM_CHECK_URI = "https://pypi.python.org/pypi/PrettyTable/" +UPSTREAM_CHECK_REGEX = "/PrettyTable/(?P(\d+[\.\-_]*)+)" + +BBCLASSEXTEND = "native nativesdk" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-prettytable_0.7.2.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-prettytable_0.7.2.bb index 406555ac..69ff2592 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-prettytable_0.7.2.bb +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-prettytable_0.7.2.bb @@ -1,27 +1,3 @@ -SUMMARY = "Python library for displaying tabular data in a ASCII table format" -HOMEPAGE = "http://code.google.com/p/prettytable" -LICENSE = "BSD" -LIC_FILES_CHKSUM = "file://COPYING;md5=3e73500ffa52de5071cff65990055282" - -SRC_URI[md5sum] = "0c1361104caff8b09f220748f9d69899" -SRC_URI[sha256sum] = "a53da3b43d7a5c229b5e3ca2892ef982c46b7923b51e98f0db49956531211c4f" - -SRCNAME = "prettytable" - -SRC_URI = "https://pypi.python.org/packages/source/P/PrettyTable/${SRCNAME}-${PV}.zip" - -S = "${WORKDIR}/${SRCNAME}-${PV}" - inherit setuptools +require python-prettytable.inc -do_install_append() { - perm_files=`find "${D}${PYTHON_SITEPACKAGES_DIR}/" -name "*.txt" -o -name "PKG-INFO"` - for f in $perm_files; do - chmod 644 "${f}" - done -} - -UPSTREAM_CHECK_URI = "https://pypi.python.org/pypi/PrettyTable/" -UPSTREAM_CHECK_REGEX = "/PrettyTable/(?P(\d+[\.\-_]*)+)" - -BBCLASSEXTEND = "native nativesdk" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-progress.inc b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-progress.inc index 9f00615c..d59ba2cc 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-progress.inc +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-progress.inc @@ -3,8 +3,8 @@ HOMEPAGE = "http://github.com/verigak/progress/" LICENSE = "ISC" LIC_FILES_CHKSUM = "file://LICENSE;md5=aef5566ac4fede9815eccf124c281317" -SRC_URI[md5sum] = "057981e2f09029288f5255b1ea3ab64d" -SRC_URI[sha256sum] = "5e2f9da88ed8236a76fffbee3ceefd259589cf42dfbc2cec2877102189fae58a" +SRC_URI[md5sum] = "408df0e3db0ad4b74f19f6beec814ae4" +SRC_URI[sha256sum] = "69ecedd1d1bbe71bf6313d88d1e6c4d2957b7f1d4f71312c211257f7dae64372" RDEPENDS_${PN}_class-target += " \ ${PYTHON_PN}-datetime \ diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-progress_1.4.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-progress_1.5.bb similarity index 100% rename from Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-progress_1.4.bb rename to Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-progress_1.5.bb diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-prompt-toolkit.inc b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-prompt-toolkit.inc index 1a4bd35c..91aa7bb1 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-prompt-toolkit.inc +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-prompt-toolkit.inc @@ -1,9 +1,9 @@ SUMMARY = "Library for building powerful interactive command lines in Python" -LICENSE = "BSD" +LICENSE = "BSD-3-Clause" LIC_FILES_CHKSUM = "file://LICENSE;md5=b2cde7da89f0c1f3e49bf968d00d554f" -SRC_URI[md5sum] = "8db8b8e40e91bc6dce133d8d5727a717" -SRC_URI[sha256sum] = "ff58ce8bb82c11c43416dd3eec7701dcbe8c576e2d7649f1d2b9d21a2fd93808" +SRC_URI[md5sum] = "5016c523e603cd7119644fbc0f00ce53" +SRC_URI[sha256sum] = "f15af68f66e664eaa559d4ac8a928111eebd5feda0c11738b5998045224829db" PYPI_PACKAGE = "prompt_toolkit" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-prompt-toolkit_2.0.4.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-prompt-toolkit_2.0.10.bb similarity index 100% rename from Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-prompt-toolkit_2.0.4.bb rename to Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-prompt-toolkit_2.0.10.bb diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-protobuf.inc b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-protobuf.inc index 2929700a..40613110 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-protobuf.inc +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-protobuf.inc @@ -3,12 +3,12 @@ HOMEPAGE = "https://developers.google.com/protocol-buffers/" SECTION = "devel/python" LICENSE = "BSD-3-Clause" -LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/BSD-3-Clause;md5=550794465ba0ec5312d6919e203a55f9" +LIC_FILES_CHKSUM = "file://PKG-INFO;beginline=8;endline=8;md5=19e8f490f9526b1de84f8d949cfcfd4e" inherit pypi -SRC_URI[md5sum] = "b7095f3eb736459716d606677b5a29ee" -SRC_URI[sha256sum] = "8c61cc8a76e9d381c665aecc5105fa0f1878cf7db8b5cd17202603bcb386d0fc" +SRC_URI[md5sum] = "d634666c898148e4565ac62f3ba4a2ca" +SRC_URI[sha256sum] = "843f498e98ad1469ad54ecb4a7ccf48605a1c5d2bd26ae799c7a2cddab4a37ec" # http://errors.yoctoproject.org/Errors/Details/184715/ # Can't find required file: ../src/google/protobuf/descriptor.proto diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-protobuf_3.8.0.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-protobuf_3.9.2.bb similarity index 100% rename from Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-protobuf_3.8.0.bb rename to Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-protobuf_3.9.2.bb diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-psutil.inc b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-psutil.inc index e466c5cd..bf49d986 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-psutil.inc +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-psutil.inc @@ -1,9 +1,9 @@ SUMMARY = "A cross-platform process and system utilities module for Python" -LICENSE = "BSD" +LICENSE = "BSD-3-Clause" LIC_FILES_CHKSUM = "file://LICENSE;md5=e35fd9f271d19d5f742f20a9d1f8bb8b" -SRC_URI[md5sum] = "1bbc1788588cc3c2c461cd98a830ba72" -SRC_URI[sha256sum] = "863a85c1c0a5103a12c05a35e59d336e1d665747e531256e061213e2e90f63f3" +SRC_URI[md5sum] = "b2c94e0368fc6e6f237a7252f8e85ca2" +SRC_URI[sha256sum] = "ffad8eb2ac614518bbe3c0b8eb9dffdb3a8d2e3a7d5da51c5b974fb723a5c5aa" PACKAGES =+ "${PN}-tests" @@ -18,3 +18,5 @@ RDEPENDS_${PN} += " \ ${PYTHON_PN}-threading \ ${PYTHON_PN}-xml \ " + +BBCLASSEXTEND = "native nativesdk" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-psutil_5.6.3.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-psutil_5.6.7.bb similarity index 100% rename from Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-psutil_5.6.3.bb rename to Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-psutil_5.6.7.bb diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-py.inc b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-py.inc index b6e0409b..2b48abe8 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-py.inc +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-py.inc @@ -3,8 +3,8 @@ HOMEPAGE = "http://py.readthedocs.io/" LICENSE = "MIT" LIC_FILES_CHKSUM = "file://LICENSE;md5=a6bb0320b04a0a503f12f69fea479de9" -SRC_URI[md5sum] = "d9e30436ce7e79f30847f9b30b62e149" -SRC_URI[sha256sum] = "dc639b046a6e2cff5bbe40194ad65936d6ba360b52b3c3fe1d08a82dd50b5e53" +SRC_URI[md5sum] = "42c67de84b07ac9cc867b8b70843a45b" +SRC_URI[sha256sum] = "5e27081401262157467ad6e7f851b7aa402c5852dbcb3dae06768434de5752aa" DEPENDS += "${PYTHON_PN}-setuptools-scm-native" BBCLASSEXTEND = "native nativesdk" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-py_1.8.0.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-py_1.8.1.bb similarity index 100% rename from Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-py_1.8.0.bb rename to Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-py_1.8.1.bb diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pyasn1-modules.inc b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pyasn1-modules.inc index 87dbd1d3..fcb140ac 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pyasn1-modules.inc +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pyasn1-modules.inc @@ -4,10 +4,10 @@ DESCRIPTION = "A collection of ASN.1 modules expressed in form of pyasn1\ data structures (X.509, PKCS etc.)." HOMEPAGE = "https://github.com/etingof/pyasn1-modules" LICENSE = "BSD-2-Clause" -LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=815ac3f9ca693006349094b358ab3155" +LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=a14482d15c2249de3b6f0e8a47e021fd" -SRC_URI[md5sum] = "65ce1ea1021679bffe96065baab232de" -SRC_URI[sha256sum] = "a0cf3e1842e7c60fde97cb22d275eb6f9524f5c5250489e292529de841417547" +SRC_URI[md5sum] = "18c77d56abeef631d94f95ff2d652859" +SRC_URI[sha256sum] = "0c35a52e00b672f832e5846826f1fb7507907f7d52fba6faa9e3c4cbe874fe4b" inherit pypi diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pyasn1-modules_0.2.2.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pyasn1-modules_0.2.7.bb similarity index 100% rename from Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pyasn1-modules_0.2.2.bb rename to Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pyasn1-modules_0.2.7.bb diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pyasn1.inc b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pyasn1.inc index 3827feab..d74c2fec 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pyasn1.inc +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pyasn1.inc @@ -3,8 +3,8 @@ HOMEPAGE = "http://pyasn1.sourceforge.net/" LICENSE = "BSD-2-Clause" LIC_FILES_CHKSUM = "file://LICENSE.rst;md5=a14482d15c2249de3b6f0e8a47e021fd" -SRC_URI[md5sum] = "f3c0cfbf882a20811be5ad5a41f74b82" -SRC_URI[sha256sum] = "da2420fe13a9452d8ae97a0e478adde1dee153b11ba832a95b223a2ba01c10f7" +SRC_URI[md5sum] = "dffae4ff9f997a83324b3f33fe62be54" +SRC_URI[sha256sum] = "aef77c9fb94a3ac588e87841208bdec464471d9871bd5050a287cc9a475cd0ba" RDEPENDS_${PN}_class-target += " \ ${PYTHON_PN}-codecs \ diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pyasn1_0.4.5.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pyasn1_0.4.8.bb similarity index 100% rename from Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pyasn1_0.4.5.bb rename to Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pyasn1_0.4.8.bb diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pybind11.inc b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pybind11.inc index 1722875a..d1d53e12 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pybind11.inc +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pybind11.inc @@ -3,5 +3,5 @@ HOMEPAGE = "https://github.com/wjakob/pybind11" LICENSE = "BSD-2-Clause" LIC_FILES_CHKSUM = "file://LICENSE;md5=beb87117af69fd10fbf9fb14c22a2e62" -SRC_URI[md5sum] = "5b9611041e4ea66b2b919239e3bacd65" -SRC_URI[sha256sum] = "87ff3ae777d9326349af5272974581270b2a0909b2392dc0cc57eb28ce23bcc3" +SRC_URI[md5sum] = "23fdca8191b16ce3e7f38fb9e4252b2d" +SRC_URI[sha256sum] = "72e6def53fb491f7f4e92692029d2e7bb5a0783314f20d80222735ff10a75758" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pybind11_2.2.3.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pybind11_2.4.3.bb similarity index 100% rename from Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pybind11_2.2.3.bb rename to Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pybind11_2.4.3.bb diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pycodestyle.inc b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pycodestyle.inc index c0e46b7e..96cdc5de 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pycodestyle.inc +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pycodestyle.inc @@ -4,8 +4,8 @@ LICENSE = "MIT" SECTION = "devel/python" LIC_FILES_CHKSUM = "file://LICENSE;md5=01831ddbaf398471da3cc87f5037e822" -SRC_URI[md5sum] = "85bbebd2c90d2f833c1db467d4d0e9a3" -SRC_URI[sha256sum] = "cbfca99bd594a10f674d0cd97a3d802a1fdef635d4361e1a2658de47ed261e3a" +SRC_URI[md5sum] = "40e7a76f364a18f531aaba11a4476e21" +SRC_URI[sha256sum] = "e40a936c9a450ad81df37f549d676d127b1b66000a6c500caa2b085bc0ca976c" inherit pypi diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pycodestyle_2.4.0.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pycodestyle_2.5.0.bb similarity index 100% rename from Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pycodestyle_2.4.0.bb rename to Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pycodestyle_2.5.0.bb diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pycryptodome.inc b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pycryptodome.inc index c4969f96..31d1368b 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pycryptodome.inc +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pycryptodome.inc @@ -3,10 +3,10 @@ DESCRIPTION = "PyCryptodome is a self-contained Python package of low-level\ cryptographic primitives." HOMEPAGE = "http://www.pycryptodome.org" LICENSE = "PD & BSD-2-Clause" -LIC_FILES_CHKSUM = "file://LICENSE.rst;md5=775fe77831c03bf82f35abc0e230d4c1" +LIC_FILES_CHKSUM = "file://LICENSE.rst;md5=6dc0e2a13d2f25d6f123c434b761faba" -SRC_URI[md5sum] = "a2587b6381b0ef4eb960cea1e7507d04" -SRC_URI[sha256sum] = "c5dd29e9f1b733e74311bf95d0e544e91bd1d14bc0366e8f443562d8d9920b7d" +SRC_URI[md5sum] = "f990716b49add7b14ea8b8a961fb3746" +SRC_URI[sha256sum] = "a168e73879619b467072509a223282a02c8047d932a48b74fbd498f27224aa04" inherit pypi diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pycryptodome_3.4.11.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pycryptodome_3.9.4.bb similarity index 100% rename from Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pycryptodome_3.4.11.bb rename to Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pycryptodome_3.9.4.bb diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pycurl.inc b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pycurl.inc new file mode 100644 index 00000000..ac9a370c --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pycurl.inc @@ -0,0 +1,26 @@ +SUMMARY = "A Python Interface To The cURL library" +DESCRIPTION = "\ +PycURL is a Python interface to libcurl, the multiprotocol file \ +transfer library. Similarly to the urllib Python module, PycURL can \ +be used to fetch objects identified by a URL from a Python program \ +" +SECTION = "devel/python" +HOMEPAGE = "http://pycurl.io/" + +LICENSE = "LGPLv2 | MIT" +LIC_FILES_CHKSUM = " \ + file://COPYING-LGPL;md5=4fbd65380cdd255951079008b364516c \ + file://COPYING-MIT;md5=2df767ed35d8ea83de4a93feb55e7815 \ +" + +SRC_URI[md5sum] = "f0ed4c805e8bec734990e2e0ee78568e" +SRC_URI[sha256sum] = "6f08330c5cf79fa8ef68b9912b9901db7ffd34b63e225dce74db56bb21deda8e" + +inherit pypi + +PYPI_PACKAGE = "pycurl" + +DEPENDS = "\ + curl \ + ${PYTHON_PN}\ +" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pycurl_7.43.0.3.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pycurl_7.43.0.3.bb new file mode 100644 index 00000000..7ab25926 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pycurl_7.43.0.3.bb @@ -0,0 +1,2 @@ +inherit setuptools +require python-pycurl.inc diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pyelftools.inc b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pyelftools.inc new file mode 100644 index 00000000..7d4f763f --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pyelftools.inc @@ -0,0 +1,14 @@ +DESCRIPTION = "pyelftools is a pure-Python library for parsing and analyzing ELF files and DWARF debugging information" +HOMEPAGE = "https://github.com/eliben/pyelftools" +SECTION = "devel/python" +LICENSE = "PD" +LIC_FILES_CHKSUM = "file://LICENSE;md5=5ce2a2b07fca326bc7c146d10105ccfc" + +SRC_URI[md5sum] = "c5629b9a5d19c82107a946cce52eeec2" +SRC_URI[sha256sum] = "89c6da6f56280c37a5ff33468591ba9a124e17d71fe42de971818cbff46c1b24" + +PYPI_PACKAGE = "pyelftools" + +inherit pypi + +BBCLASSEXTEND = "native" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pyelftools_0.25.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pyelftools_0.25.bb new file mode 100644 index 00000000..de420250 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pyelftools_0.25.bb @@ -0,0 +1,2 @@ +inherit setuptools +require python-pyelftools.inc diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pyexpect.inc b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pyexpect.inc index d2d41d51..85d9588a 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pyexpect.inc +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pyexpect.inc @@ -7,5 +7,5 @@ LIC_FILES_CHKSUM = "file://README.md;md5=500b884e9dcd5f677a53cbbee8ace939" inherit pypi -SRC_URI[md5sum] = "c71307d6c7096fdbde0813018dfa0092" -SRC_URI[sha256sum] = "d656ef7e07a8aa539ce0a4883a683341037b6fc1c329bf55b63bffbf2cce9582" +SRC_URI[md5sum] = "dc744289858001925c75d21e26f1260f" +SRC_URI[sha256sum] = "bff4654b113dac6c2231e486e11dcb23281ddc0742a5404467303fe7638829ef" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pyexpect_1.0.17.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pyexpect_1.0.19.bb similarity index 100% rename from Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pyexpect_1.0.17.bb rename to Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pyexpect_1.0.19.bb diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pyfirmata.inc b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pyfirmata.inc index 2365379a..2a53574e 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pyfirmata.inc +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pyfirmata.inc @@ -7,7 +7,7 @@ RDEPENDS_${PN} = "\ ${PYTHON_PN}-pyserial \ " -SRC_URI[md5sum] = "ee4c23ca5c35d3091d550a63540811a3" -SRC_URI[sha256sum] = "b54d49d66a9d93c1ef9c72ca01264414cb2de177baac116c12d5cce0c380160c" +SRC_URI[md5sum] = "159673cfb56c72ceafc30fe91eedd847" +SRC_URI[sha256sum] = "cc180d1b30c85a2bbca62c15fef1b871db048cdcfa80959968356d97bd3ff08e" inherit pypi diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pyfirmata_1.0.3.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pyfirmata_1.1.0.bb similarity index 100% rename from Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pyfirmata_1.0.3.bb rename to Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pyfirmata_1.1.0.bb diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pyflakes_1.6.0.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pyflakes_1.6.0.bb deleted file mode 100644 index a16a880d..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pyflakes_1.6.0.bb +++ /dev/null @@ -1,16 +0,0 @@ -SUMMARY = "passive checker of Python programs" -HOMEPAGE = "https://github.com/dreamhost/cliff" -LICENSE = "Apache-2.0" -LIC_FILES_CHKSUM = "file://README.rst;md5=029ce1beb023f2c4ca9f417e4984a865" - -SRC_URI[md5sum] = "b385b0e4cd40a522553e97cd2d83573e" -SRC_URI[sha256sum] = "8d616a382f243dbf19b54743f280b80198be0bca3a5396f1d2e1fca6223e8805" - -inherit pypi setuptools - -RDEPENDS_${PN} += " \ - ${PYTHON_PN}-prettytable \ - ${PYTHON_PN}-cmd2 \ - ${PYTHON_PN}-pyparsing" - -BBCLASSEXTEND = "native nativesdk" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pyflakes_2.1.1.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pyflakes_2.1.1.bb new file mode 100644 index 00000000..1c03f399 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pyflakes_2.1.1.bb @@ -0,0 +1,16 @@ +SUMMARY = "passive checker of Python programs" +HOMEPAGE = "https://github.com/dreamhost/cliff" +LICENSE = "Apache-2.0" +LIC_FILES_CHKSUM = "file://README.rst;md5=5127315117a8561a1504343d59620647" + +SRC_URI[md5sum] = "a0f71a15724e553c46e03ba5ed56703c" +SRC_URI[sha256sum] = "d976835886f8c5b31d47970ed689944a0262b5f3afa00a5a7b4dc81e5449f8a2" + +inherit pypi setuptools + +RDEPENDS_${PN} += " \ + ${PYTHON_PN}-prettytable \ + ${PYTHON_PN}-cmd2 \ + ${PYTHON_PN}-pyparsing" + +BBCLASSEXTEND = "native nativesdk" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pyhamcrest_1.9.0.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pyhamcrest_1.9.0.bb index 02d4f54e..8dbb79a4 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pyhamcrest_1.9.0.bb +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pyhamcrest_1.9.0.bb @@ -1,5 +1,5 @@ SUMMARY = "Hamcrest framework for matcher objects" -LICENSE = "BSD" +LICENSE = "BSD-3-Clause" LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=f6df1318c6071dd1707f5e3b6c11f24f" PYPI_PACKAGE = "PyHamcrest" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pyjks.inc b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pyjks.inc index d866c565..9a066f7f 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pyjks.inc +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pyjks.inc @@ -6,8 +6,8 @@ HOMEPAGE = "http://github.com/kurtbrose/pyjks" LICENSE = "MIT" LIC_FILES_CHKSUM = "file://LICENSE;md5=9694d6cc724caf7f7386be88a4a81958" -SRC_URI[md5sum] = "d53501e7c80d465969742bc6bee91d49" -SRC_URI[sha256sum] = "709c44a303dd6b2464078ebeb677417e717818d4b3dc3844a462bef9d215dcc8" +SRC_URI[md5sum] = "b6e8f3b91be355d15e3ba99de2cccf9b" +SRC_URI[sha256sum] = "9ce5b40289bcdffcd6a8e7118b333ba8ba2ec4c9ebc5e324885cc8a69767011a" inherit pypi diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pyjks_17.1.1.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pyjks_19.0.0.bb similarity index 100% rename from Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pyjks_17.1.1.bb rename to Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pyjks_19.0.0.bb diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pyjwt.inc b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pyjwt.inc index 00c38e31..9b893853 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pyjwt.inc +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pyjwt.inc @@ -6,8 +6,8 @@ HOMEPAGE = "http://github.com/jpadilla/pyjwt" LICENSE = "MIT" LIC_FILES_CHKSUM = "file://LICENSE;md5=68626705a7b513ca8d5f44a3e200ed0c" -SRC_URI[md5sum] = "2731c6b66b67b95d1944f072f5fa35a9" -SRC_URI[sha256sum] = "4ee413b357d53fd3fb44704577afac88e72e878716116270d722723d65b42176" +SRC_URI[md5sum] = "a4712f980c008696e13e09504120b2a0" +SRC_URI[sha256sum] = "8d59a976fb773f3e6a39c85636357c4f0e242707394cadadd9814f5cbaa20e96" PYPI_PACKAGE = "PyJWT" inherit pypi diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pyjwt_1.6.4.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pyjwt_1.7.1.bb similarity index 100% rename from Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pyjwt_1.6.4.bb rename to Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pyjwt_1.7.1.bb diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pymisp.inc b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pymisp.inc index 468a8012..6c474920 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pymisp.inc +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pymisp.inc @@ -3,8 +3,8 @@ HOMEPAGE = "https://github.com/MISP/PyMISP" LICENSE = "BSD-2-Clause" LIC_FILES_CHKSUM = "file://LICENSE;md5=a3639cf5780f71b125d3e9d1dc127c20" -SRC_URI[md5sum] = "6d549b36cbfa8c1a3323c5d6e299789e" -SRC_URI[sha256sum] = "f4ed2000cbe1a314f1f88fd8a8eba4ad05974b351b96f1235c6e532158a39fe0" +SRC_URI[md5sum] = "57184785340e25469e4a80ff9ddce09e" +SRC_URI[sha256sum] = "594ea0a9e150052232425009eac6dd104a80f494d0e273cc48dd114d7ea8482b" RDEPENDS_${PN} += " \ ${PYTHON_PN}-dateutil \ diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pymisp_2.4.93.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pymisp_2.4.119.1.bb similarity index 100% rename from Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pymisp_2.4.93.bb rename to Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pymisp_2.4.119.1.bb diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pymongo.inc b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pymongo.inc index 88786ec6..dc78b10f 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pymongo.inc +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pymongo.inc @@ -8,8 +8,8 @@ HOMEPAGE = "http://github.com/mongodb/mongo-python-driver" LICENSE = "Apache-2.0" LIC_FILES_CHKSUM = "file://LICENSE;md5=86d3f3a95c324c9479bd8986968f4327" -SRC_URI[md5sum] = "3e8035f85cfb2be95207724c59bddfaa" -SRC_URI[sha256sum] = "9d50c99c6388863cbfdc5db9bad62e3a7c2e5fc151554a07c7f3c2530334a34f" +SRC_URI[md5sum] = "fb98d896f0eb14d9b4fe9baac24d772a" +SRC_URI[sha256sum] = "c43879fe427ea6aa6e84dae9fbdc5aa14428a4cfe613fe0fee2cc004bf3f307c" PACKAGES =+ "${PYTHON_PN}-bson" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pymongo_3.8.0.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pymongo_3.10.0.bb similarity index 100% rename from Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pymongo_3.8.0.bb rename to Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pymongo_3.10.0.bb diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pymysql.inc b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pymysql.inc new file mode 100644 index 00000000..8c7f4556 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pymysql.inc @@ -0,0 +1,18 @@ +SUMMARY = "A pure-Python MySQL client library" +DESCRIPTION = " \ + This package contains a pure-Python MySQL client library, based on PEP 249 \ + Most public APIs are compatible with mysqlclient and MySQLdb. \ + " +SECTION = "devel/python" +HOMEPAGE = "https://pymysql.readthedocs.io" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://LICENSE;md5=528175c84163bb800d23ad835c7fa0fc" + +SRC_URI[md5sum] = "e5d9183cc0a775ac29f9e0365cca6556" +SRC_URI[sha256sum] = "d8c059dcd81dedb85a9f034d5e22dcb4442c0b201908bede99e306d65ea7c8e7" + +inherit pypi + +PYPI_PACKAGE = "PyMySQL" + +RDEPENDS_${PN} += "${PYTHON_PN}-cryptography" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pymysql_0.9.3.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pymysql_0.9.3.bb new file mode 100644 index 00000000..27d097ee --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pymysql_0.9.3.bb @@ -0,0 +1,2 @@ +inherit setuptools +require python-pymysql.inc diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pynetlinux.inc b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pynetlinux.inc index 6a398962..c755c0ae 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pynetlinux.inc +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pynetlinux.inc @@ -2,7 +2,7 @@ SUMMARY = "Linux network configuration library for Python" DESCRIPTION = "This library contains Python bindings to ioctl calls" SECTION = "devel/python" HOMEPAGE = "http://github.com/rlisagor/pynetlinux" -LICENSE = "BSD" +LICENSE = "BSD-3-Clause" LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=74e1861736ee959824fe7542323c12e9" inherit pypi diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pyopenssl.inc b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pyopenssl.inc index 00c103fc..c6a40055 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pyopenssl.inc +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pyopenssl.inc @@ -5,8 +5,8 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57" DEPENDS += "openssl ${PYTHON_PN}-cryptography" -SRC_URI[md5sum] = "b9876625dc1d5a5a662d748689191537" -SRC_URI[sha256sum] = "aeca66338f6de19d1aa46ed634c3b9ae519a64b458f8468aec688e7e3c20f200" +SRC_URI[md5sum] = "d9804fedbd1eb0c7d9243397b1fbf972" +SRC_URI[sha256sum] = "9a24494b2602aaf402be5c9e30a0b82d4a5c67528fe8fb475e3f3bc00dd69507" PYPI_PACKAGE = "pyOpenSSL" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pyopenssl_19.0.0.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pyopenssl_19.1.0.bb similarity index 100% rename from Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pyopenssl_19.0.0.bb rename to Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pyopenssl_19.1.0.bb diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pyparsing.inc b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pyparsing.inc index e0df4e9b..2b9925f4 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pyparsing.inc +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pyparsing.inc @@ -3,8 +3,8 @@ HOMEPAGE = "http://pyparsing.wikispaces.com/" LICENSE = "MIT" LIC_FILES_CHKSUM = "file://LICENSE;md5=657a566233888513e1f07ba13e2f47f1" -SRC_URI[md5sum] = "e534c0ca755155823bf45fdd8d084922" -SRC_URI[sha256sum] = "1873c03321fc118f4e9746baf201ff990ceb915f433f23b395f5580d1840cb2a" +SRC_URI[md5sum] = "29733ea8cbee0291aad121c69c6e51a1" +SRC_URI[sha256sum] = "4c830582a84fb022400b85429791bc551f1f4871c33f23e44f353119e92f969f" inherit pypi diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pyparsing_2.4.0.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pyparsing_2.4.6.bb similarity index 100% rename from Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pyparsing_2.4.0.bb rename to Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pyparsing_2.4.6.bb diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pyperf.inc b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pyperf.inc new file mode 100644 index 00000000..2e6304b9 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pyperf.inc @@ -0,0 +1,23 @@ +SUMMARY = "A toolkit to write, run and analyze benchmarks" +DESCRIPTION = " \ +The Python pyperf module is a toolkit to write, run and analyze benchmarks. \ +Features: \ + * Simple API to run reliable benchmarks \ + * Automatically calibrate a benchmark for a time budget. \ + * Spawn multiple worker processes. \ + * Compute the mean and standard deviation. \ + * Detect if a benchmark result seems unstable. \ + * JSON format to store benchmark results. \ + * Support multiple units: seconds, bytes and integer. \ +" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://COPYING;md5=78bc2e6e87c8c61272937b879e6dc2f8" + +SRC_URI[md5sum] = "e30b67b62a4e30e4504352d0778c622c" +SRC_URI[sha256sum] = "0d214aa65e085d3e4108a36152cb12f7cd0f4e7fda93b5134b43a9687c975786" + +inherit pypi + +PYPI_PACKAGE = "pyperf" + +DEPENDS += "${PYTHON_PN}-six-native" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pyperf_1.7.0.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pyperf_1.7.0.bb new file mode 100644 index 00000000..a9d5c748 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pyperf_1.7.0.bb @@ -0,0 +1,4 @@ +inherit setuptools +require python-pyperf.inc + +RDEPENDS_${PN} += "${PYTHON_PN}-statistics" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pyroute2.inc b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pyroute2.inc index ed1981e4..7a14b9ef 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pyroute2.inc +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pyroute2.inc @@ -3,8 +3,8 @@ LICENSE = "GPLv2 & Apache-2.0" LIC_FILES_CHKSUM = "file://LICENSE.GPL.v2;md5=b234ee4d69f5fce4486a80fdaf4a4263 \ file://LICENSE.Apache.v2;md5=34281e312165f843a2b7d1f114fe65ce" -SRC_URI[md5sum] = "2f6f951e94356ae9d224f417dc6ebed2" -SRC_URI[sha256sum] = "42bf74495d95a0196a74dd171357f660175aba2bfc23f9b5f63e3830ccbef9ac" +SRC_URI[md5sum] = "371683b62314211b8bc9807ac8ef1144" +SRC_URI[sha256sum] = "963fce07da2841456d39e3b932b071f6de28d23dadfae014022d67a752916f98" FILESEXTRAPATHS_prepend := "${THISDIR}/python-pyroute2:" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pyroute2_0.5.2.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pyroute2_0.5.7.bb similarity index 100% rename from Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pyroute2_0.5.2.bb rename to Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pyroute2_0.5.7.bb diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pyrsistent.inc b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pyrsistent.inc new file mode 100644 index 00000000..ae4f21af --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pyrsistent.inc @@ -0,0 +1,13 @@ +SUMMARY = "Persistent/Immutable/Functional data structures for Python" +HOMEPAGE = "https://github.com/tobgu/pyrsistent" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://LICENCE.mit;md5=ca574f2891cf528b3e7a2ee570337e7c" + +SRC_URI[md5sum] = "da9486d00ef5b213f40d5cf3c5bca82d" +SRC_URI[sha256sum] = "cdc7b5e3ed77bed61270a47d35434a30617b9becdf2478af76ad2c6ade307280" + +RDEPENDS_${PN} += " \ + ${PYTHON_PN}-six \ +" + +BBCLASSEXTEND = "native nativesdk" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pyrsistent_0.15.7.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pyrsistent_0.15.7.bb new file mode 100644 index 00000000..832eb803 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pyrsistent_0.15.7.bb @@ -0,0 +1,2 @@ +inherit pypi setuptools +require python-pyrsistent.inc diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pyserial.inc b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pyserial.inc index 52a7e05c..c9580de2 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pyserial.inc +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pyserial.inc @@ -1,5 +1,5 @@ SUMMARY = "Serial Port Support for Python" -LICENSE = "BSD" +LICENSE = "BSD-3-Clause" LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=d476d94926db6e0008a5b3860d1f5c0d" SRC_URI[md5sum] = "ed6183b15519a0ae96675e9c3330c69b" @@ -40,3 +40,5 @@ RDEPENDS_${PN} = "\ ${PYTHON_PN}-stringold \ ${PYTHON_PN}-threading \ " + +BBCLASSEXTEND = "native nativesdk" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pysmi_0.2.2.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pysmi_0.2.2.bb deleted file mode 100644 index 24759b5d..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pysmi_0.2.2.bb +++ /dev/null @@ -1,16 +0,0 @@ -SUMMARY = "SNMP SMI/MIB Parser" -DESCRIPTION = "A pure-Python implementation of SNMP/SMI MIB \ - parsing and conversion library. Can produce PySNMP MIB modules. \ -" -HOMEPAGE = "https://pypi.python.org/pypi/pysmi" -SECTION = "devel/python" - -LICENSE = "BSD" -LIC_FILES_CHKSUM = "file://LICENSE.rst;md5=d8b1bbadd635f187dee74d999a8c67b8" - -SRC_URI[md5sum] = "3b0f71e4e9f730d211f09d8ef5371140" -SRC_URI[sha256sum] = "2a315cc3e556b3428372b69da663a24d2f0df9e9ab075b022cb133855f25aef7" - -inherit pypi setuptools - -RDEPENDS_${PN} = "python-ply" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pysmi_0.3.4.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pysmi_0.3.4.bb new file mode 100644 index 00000000..43aa4b84 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pysmi_0.3.4.bb @@ -0,0 +1,16 @@ +SUMMARY = "SNMP SMI/MIB Parser" +DESCRIPTION = "A pure-Python implementation of SNMP/SMI MIB \ + parsing and conversion library. Can produce PySNMP MIB modules. \ +" +HOMEPAGE = "https://pypi.python.org/pypi/pysmi" +SECTION = "devel/python" + +LICENSE = "BSD-2-Clause" +LIC_FILES_CHKSUM = "file://LICENSE.rst;md5=a088b5c72b59d51a5368ad3b18e219bf" + +SRC_URI[md5sum] = "10a9dd140ad512eed9f37344df83ce9d" +SRC_URI[sha256sum] = "bd15a15020aee8376cab5be264c26330824a8b8164ed0195bd402dd59e4e8f7c" + +inherit pypi setuptools + +RDEPENDS_${PN} = "python-ply" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pysnmp_4.4.9.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pysnmp_4.4.9.bb index 9ff4df2c..8883df9d 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pysnmp_4.4.9.bb +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pysnmp_4.4.9.bb @@ -5,7 +5,7 @@ DESCRIPTION = "SNMP v1/v2c/v3 engine and apps written in pure-Python. \ " HOMEPAGE = "https://pypi.python.org/pypi/pysnmp" SECTION = "devel/python" -LICENSE = "BSD" +LICENSE = "BSD-2-Clause" LIC_FILES_CHKSUM = "file://LICENSE.rst;md5=b15d29f500f748d1c2a15709769090a8" SRCNAME = "pysnmp" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pysocks.inc b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pysocks.inc index 32cb50ce..1836e52d 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pysocks.inc +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pysocks.inc @@ -1,10 +1,10 @@ DESCRIPTION = "A Python SOCKS client module" HOMEPAGE = "http://python-requests.org" -LICENSE = "BSD" +LICENSE = "BSD-3-Clause" LIC_FILES_CHKSUM = "file://LICENSE;md5=1d457bcffb9661b45f799d4efee72f16" -SRC_URI[md5sum] = "ffea8bdc4eee054df2f9f6a9c3752567" -SRC_URI[sha256sum] = "d9031ea45fdfacbe59a99273e9f0448ddb33c1580fe3831c1b09557c5718977c" +SRC_URI[md5sum] = "89b1a6865c61bae67a32417517612ee6" +SRC_URI[sha256sum] = "3f8804571ebe159c380ac6de37643bb4685970655d3bba243530d6558b799aa0" PYPI_PACKAGE = "PySocks" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pysocks_1.7.0.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pysocks_1.7.1.bb similarity index 100% rename from Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pysocks_1.7.0.bb rename to Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pysocks_1.7.1.bb diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pytest-asyncio.inc b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pytest-asyncio.inc new file mode 100644 index 00000000..9132c745 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pytest-asyncio.inc @@ -0,0 +1,13 @@ +DESCRIPTION = "pytest-asyncio is an Apache2 licensed library, written in Python, for testing asyncio code with pytest" +HOMEPAGE = "https://github.com/pytest-dev/pytest-asyncio" +LICENSE = "Apache-2.0" +LIC_FILES_CHKSUM = "file://README.rst;md5=ae62268d207c73b615fbefddaf91a881" + +SRC_URI[md5sum] = "247a7ec32f24a185341327c42a0f85bf" +SRC_URI[sha256sum] = "9fac5100fd716cbecf6ef89233e8590a4ad61d729d1732e0a96b84182df1daaf" + +inherit pypi + +DEPENDS += "${PYTHON_PN}-pytest-native" + +BBCLASSEXTEND = "native" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pytest-helpers-namespace.inc b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pytest-helpers-namespace.inc index a69867d9..c091ab97 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pytest-helpers-namespace.inc +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pytest-helpers-namespace.inc @@ -2,9 +2,9 @@ DESCRIPTION = "This plugin does not provide any helpers to pytest, it does, howe HOMEPAGE = "https://github.com/saltstack/pytest-helpers-namespace" SECTION = "devel/python" LICENSE = "Apache-2.0" -LIC_FILES_CHKSUM = "file://PKG-INFO;md5=71fac4dfeee99c39c51f617e9486237c" +LIC_FILES_CHKSUM = "file://PKG-INFO;md5=cc99508c43d9d14fd51c7fac622ffd23" -SRC_URI[md5sum] = "80fe3e515f640b1459709b539f6b857e" -SRC_URI[sha256sum] = "d8bdb017c0f7271699c08850b6b12e1ce9e52913cbd4461b5febd21082a29113" +SRC_URI[md5sum] = "04ec1d8750f9b154e782a47cf8b30736" +SRC_URI[sha256sum] = "4eff23a19f92410c0166f6dffbfa8901d3e14a80e97d70cd08428b6d597771ce" inherit pypi diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pytest-helpers-namespace_2016.7.10.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pytest-helpers-namespace_2019.1.8.bb similarity index 100% rename from Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pytest-helpers-namespace_2016.7.10.bb rename to Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pytest-helpers-namespace_2019.1.8.bb diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pytest-runner.inc b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pytest-runner.inc index 3b057b0c..0b443b3d 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pytest-runner.inc +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pytest-runner.inc @@ -2,8 +2,8 @@ SUMMARY = "Invoke py.test as distutils command with dependency resolution" LICENSE = "MIT" LIC_FILES_CHKSUM = "file://LICENSE;md5=a33f38bbf47d48c70fe0d40e5f77498e" -SRC_URI[md5sum] = "4b696b0f35767f0694f183d0a1855300" -SRC_URI[sha256sum] = "d23f117be39919f00dd91bffeb4f15e031ec797501b717a245e377aee0f577be" +SRC_URI[md5sum] = "e5f66b8e8e87f62c59631c35c919d321" +SRC_URI[sha256sum] = "96c7e73ead7b93e388c5d614770d2bae6526efd997757d3543fe17b557a0942b" inherit pypi diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pytest-runner_4.2.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pytest-runner_5.2.bb similarity index 100% rename from Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pytest-runner_4.2.bb rename to Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pytest-runner_5.2.bb diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pytest-tempdir.inc b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pytest-tempdir.inc index 196f6d64..cf355a36 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pytest-tempdir.inc +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pytest-tempdir.inc @@ -2,9 +2,9 @@ DESCRIPTION = "Adds support for a predictable and repeatable temporary directory HOMEPAGE = "https://github.com/saltstack/pytest-tempdir" SECTION = "devel/python" LICENSE = "Apache-2.0" -LIC_FILES_CHKSUM = "file://PKG-INFO;md5=8751a9cf4a70be4f02697a9b89e686ce" +LIC_FILES_CHKSUM = "file://PKG-INFO;md5=9872c3a37cc9baf79a464cd168282be5" -SRC_URI[md5sum] = "f87f2583f5f8aaca7203d57ada3948b5" -SRC_URI[sha256sum] = "65ff815966ea6dfc07ca1b43747c9888a6d883971170e67b16290f9f50d434ea" +SRC_URI[md5sum] = "79b997d418fb85c2529ab50cd4333689" +SRC_URI[sha256sum] = "e7d91813a9aa991db87dacdef8cfd3f1657632d731d56d06238c5ffb63ab36d8" inherit pypi diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pytest-tempdir_2016.8.20.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pytest-tempdir_2019.10.12.bb similarity index 100% rename from Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pytest-tempdir_2016.8.20.bb rename to Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pytest-tempdir_2019.10.12.bb diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pytest.inc b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pytest.inc index 4c32dfb0..752d67e3 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pytest.inc +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pytest.inc @@ -1,13 +1,13 @@ SUMMARY = "Simple powerful teting with python" HOMEPAGE = "http://pytest.org" LICENSE = "MIT" -LIC_FILES_CHKSUM = "file://LICENSE;md5=c39b24965f4aef64222cb35de9d47cc4" +LIC_FILES_CHKSUM = "file://LICENSE;md5=640061b8cee64b308a4d2f9f556c12f2" -SRC_URI[md5sum] = "1b83a25d45fad893f430fc5031653c56" -SRC_URI[sha256sum] = "117bad36c1a787e1a8a659df35de53ba05f9f3398fb9e4ac17e80ad5903eb8c5" +SRC_URI[md5sum] = "71a8eb2ab5efb76512d9a69bd6477034" +SRC_URI[sha256sum] = "6b571215b5a790f9b41f19f3531c53a45cf6bb8ef2988bc1ff9afb38270b25fa" SRC_URI_append = " file://0001-setup.py-remove-the-setup_requires-for-setuptools-scm.patch \ - file://pytest_version_fix.patch " + " inherit update-alternatives @@ -20,6 +20,12 @@ RDEPENDS_${PN}_class-target += " \ ${PYTHON_PN}-py \ ${PYTHON_PN}-setuptools \ ${PYTHON_PN}-six \ + ${PYTHON_PN}-atomicwrites \ + ${PYTHON_PN}-importlib-metadata \ + ${PYTHON_PN}-pathlib2 \ + ${PYTHON_PN}-wcwidth \ + ${PYTHON_PN}-more-itertools \ + ${PYTHON_PN}-packaging \ " FILESEXTRAPATHS_prepend := "${THISDIR}/python-pytest:" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pytest/0001-setup.py-remove-the-setup_requires-for-setuptools-scm.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pytest/0001-setup.py-remove-the-setup_requires-for-setuptools-scm.patch index 06dfcdfc..c29fb12d 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pytest/0001-setup.py-remove-the-setup_requires-for-setuptools-scm.patch +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pytest/0001-setup.py-remove-the-setup_requires-for-setuptools-scm.patch @@ -1,7 +1,7 @@ -From 24a901fd17926e8e05be4ed2e01b0113a2e3a852 Mon Sep 17 00:00:00 2001 -From: Derek Straka -Date: Tue, 19 Dec 2017 11:36:39 -0500 -Subject: [PATCH] [PATCH 1/1] setup.py: remove the setup_requires for +From ff784f4803ab33f5e3389e40d038d52d1e211843 Mon Sep 17 00:00:00 2001 +From: Yuan Chao +Date: Wed, 28 Aug 2019 16:12:27 +0900 +Subject: [PATCH] [PATCH] setup.py: remove the setup_requires for setuptools-scm The setup_requires argument forces the download of the egg file for setuptools-scm @@ -12,21 +12,25 @@ file and in the release tarball it is already correctly created Upstream-Status: Inappropriate [oe specific] Signed-off-by: Derek Straka + +Signed-off-by: Yuan Chao --- - setup.py | 1 - - 1 file changed, 1 deletion(-) + setup.py | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/setup.py b/setup.py -index 3eb38ef..1163202 100644 +index adbafb5..75fdd09 100644 --- a/setup.py +++ b/setup.py -@@ -82,7 +82,6 @@ def main(): - keywords="test unittest", - cmdclass={'test': PyTest}, - # the following should be enabled for release -- setup_requires=['setuptools-scm'], - python_requires='>=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*', - install_requires=install_requires, - extras_require=extras_require, +@@ -19,7 +19,7 @@ INSTALL_REQUIRES = [ + def main(): + setup( + use_scm_version={"write_to": "src/_pytest/_version.py"}, +- setup_requires=["setuptools-scm", "setuptools>=40.0"], ++ setup_requires=["setuptools>=40.0"], + package_dir={"": "src"}, + extras_require={ + "testing": [ -- -2.7.4 +2.17.1 + diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pytest/pytest_version_fix.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pytest/pytest_version_fix.patch deleted file mode 100644 index b373d93e..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pytest/pytest_version_fix.patch +++ /dev/null @@ -1,51 +0,0 @@ -Upstream-Status: Inappropriate (OE specific) - -python-pytest: remove fetch during do_compile phase -commit: c974fbf9ebf185552ab65301e07af44f36517abf - -introduced an issue by making the version 0.0.0 -this fixes that - -Signed-off-by: Armin Kuster - -Index: pytest-3.2.2/setup.py -=================================================================== ---- pytest-3.2.2.orig/setup.py -+++ pytest-3.2.2/setup.py -@@ -1,5 +1,6 @@ - import os - import sys -+import re - import setuptools - import pkg_resources - from setuptools import setup, Command -@@ -22,6 +23,18 @@ classifiers = [ - with open('README.rst') as fd: - long_description = fd.read() - -+def read(*names, **kwargs): -+ with open(os.path.join( *names), 'r') as fp: -+ return fp.read() -+ -+def find_version(*file_paths): -+ version_file = read(*file_paths) -+ version_match = re.search(r"^version = ['\']([^'\"]*)['\']", -+ version_file, re.M) -+ -+ if version_match: -+ return version_match.group(1) -+ raise RuntimeError("Unable to find version string.") - - def get_environment_marker_support_level(): - """ -@@ -59,9 +72,7 @@ def main(): - name='pytest', - description='pytest: simple powerful testing with Python', - long_description=long_description, -- use_scm_version={ -- 'write_to': '_pytest/_version.py', -- }, -+ version=find_version("_pytest", "_version.py"), - url='http://pytest.org', - license='MIT license', - platforms=['unix', 'linux', 'osx', 'cygwin', 'win32'], diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pytest_3.4.2.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pytest_5.3.2.bb similarity index 100% rename from Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pytest_3.4.2.bb rename to Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pytest_5.3.2.bb diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pytz.inc b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pytz.inc index 928dbc00..b4edea00 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pytz.inc +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pytz.inc @@ -5,8 +5,8 @@ LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=4878a915709225bceab739bdc2a18e8d" inherit pypi -SRC_URI[md5sum] = "8b2860a161bfb0a6165798b1a2d8c40c" -SRC_URI[sha256sum] = "d747dd3d23d77ef44c6a3526e274af6efeb0a6f1afd5a69ba4d5be4098c8e141" +SRC_URI[md5sum] = "c3d84a465fc56a4edd52cca8873ac0df" +SRC_URI[sha256sum] = "b02c06db6cf09c12dd25137e563b31700d3b80fcc4ad23abb7a315f2789819be" RDEPENDS_${PN}_class-target += "\ ${PYTHON_PN}-datetime \ diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pytz_2019.1.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pytz_2019.3.bb similarity index 100% rename from Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pytz_2019.1.bb rename to Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pytz_2019.3.bb diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pyusb.inc b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pyusb.inc index 30bbe85a..e783dd43 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pyusb.inc +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pyusb.inc @@ -1,6 +1,6 @@ SUMMARY = "PyUSB provides USB access on the Python language" HOMEPAGE = "http://pyusb.sourceforge.net/" -LICENSE = "BSD" +LICENSE = "BSD-3-Clause" LIC_FILES_CHKSUM = "file://LICENSE;md5=51691ed11cc2c7ae93e383f60ed49b0f" DEPENDS += "libusb1" @@ -8,3 +8,5 @@ SRC_URI[md5sum] = "862b56452c64948c787ad8ef9498590b" SRC_URI[sha256sum] = "4e9b72cc4a4205ca64fbf1f3fff39a335512166c151ad103e55c8223ac147362" inherit pypi + +BBCLASSEXTEND = "native nativesdk" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pyyaml.inc b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pyyaml.inc index afce543f..48ebf73c 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pyyaml.inc +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pyyaml.inc @@ -2,14 +2,14 @@ SUMMARY = "Python support for YAML" HOMEPAGE = "http://www.pyyaml.org" SECTION = "devel/python" LICENSE = "MIT" -LIC_FILES_CHKSUM = "file://LICENSE;md5=5591701d32590f9fa94f3bfee820b634" +LIC_FILES_CHKSUM = "file://LICENSE;md5=a76b4c69bfcf82313bbdc0393b04438a" DEPENDS = "libyaml ${PYTHON_PN}-cython-native ${PYTHON_PN}" PYPI_PACKAGE = "PyYAML" inherit pypi -SRC_URI[md5sum] = "b78b96636d68ac581c0e2f38158c224f" -SRC_URI[sha256sum] = "3ef3092145e9b70e3ddd2c7ad59bdd0252a94dfe3949721633e41344de00a6bf" +SRC_URI[md5sum] = "d7e45e932d6e6649ac574a1ed77b4269" +SRC_URI[sha256sum] = "c0ee8eca2c582d29c3c2ec6e2c4f703d1b7f1fb10bc72317355a746057e7346c" RDEPENDS_${PN} += "\ ${PYTHON_PN}-datetime \ diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pyyaml_3.13.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pyyaml_5.2.bb similarity index 100% rename from Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pyyaml_3.13.bb rename to Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-pyyaml_5.2.bb diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-rdflib.inc b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-rdflib.inc index 0eac1978..2fa6d981 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-rdflib.inc +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-rdflib.inc @@ -1,5 +1,5 @@ SUMMARY = "RDFLib is a pure Python package for working with RDF" -LICENSE = "BSD" +LICENSE = "BSD-3-Clause" LIC_FILES_CHKSUM = "file://LICENSE;md5=68c1a3bb687bd63b8e5552f3ea249840" SRC_URI[md5sum] = "534fe35b13c5857d53fa1ac5a41eca67" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-requests-oauthlib.inc b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-requests-oauthlib.inc index 4bc6a368..7c4d85f2 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-requests-oauthlib.inc +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-requests-oauthlib.inc @@ -1,7 +1,7 @@ LICENSE = "ISC" LIC_FILES_CHKSUM = "file://LICENSE;md5=22d117a849df10d047ed9b792838e863" -SRC_URI[md5sum] = "4358a879a4377393bcfd37d0f9ae6d4d" -SRC_URI[sha256sum] = "883ac416757eada6d3d07054ec7092ac21c7f35cb1d2cf82faf205637081f468" +SRC_URI[md5sum] = "1ebcd55f1b1b9281940b4bc33010e2ba" +SRC_URI[sha256sum] = "b4261601a71fd721a8bd6d7aa1cc1d6a8a93b4a9f5e96626f8e4d91e8beeaa6a" RDEPENDS_${PN} += "${PYTHON_PN}-requests" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-requests-oauthlib_0.8.0.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-requests-oauthlib_1.3.0.bb similarity index 100% rename from Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-requests-oauthlib_0.8.0.bb rename to Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-requests-oauthlib_1.3.0.bb diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-rfc3339-validator.inc b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-rfc3339-validator.inc new file mode 100644 index 00000000..3da08298 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-rfc3339-validator.inc @@ -0,0 +1,25 @@ +SUMMARY = "A pure python RFC3339 validator" +HOMEPAGE = "https://github.com/naimetti/rfc3339-validator" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://LICENSE;md5=a21b13b5a996f08f7e0b088aa38ce9c6" + +FILESEXTRAPATHS_prepend := "${THISDIR}/python-rfc3339-validator:" + +SRC_URI[md5sum] = "9d8899041d83f98180bddd8b62ee7e99" +SRC_URI[sha256sum] = "20a600d01fbb1f793cbb6f4ec4ebb2104f4c9e80d74d5f78350b63ecc6cccd08" + +PYPI_PACKAGE = "rfc3339_validator" + +inherit pypi + +SRC_URI_append = " \ + file://0001-setup.py-move-pytest-runner-to-test_requirements.patch \ +" + +RDEPENDS_${PN} += "\ + ${PYTHON_PN}-core \ + ${PYTHON_PN}-datetime \ + ${PYTHON_PN}-six \ +" + +BBCLASSEXTEND = "native nativesdk" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-rfc3339-validator/0001-setup.py-move-pytest-runner-to-test_requirements.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-rfc3339-validator/0001-setup.py-move-pytest-runner-to-test_requirements.patch new file mode 100644 index 00000000..ce8ca0bc --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-rfc3339-validator/0001-setup.py-move-pytest-runner-to-test_requirements.patch @@ -0,0 +1,32 @@ +From 2de281fdca88f223ace1eb6428a77b9903c69264 Mon Sep 17 00:00:00 2001 +From: Nicola Lunghi +Date: Thu, 14 Nov 2019 11:58:28 +0000 +Subject: [PATCH] setup.py: move pytest-runner to test_requirements + +This fixes an issue with yocto build. +pytest-runner is only needed when running tests. + +Upstream-Status: Pending +--- + setup.py | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/setup.py b/setup.py +index 9a50767..e3b1c6e 100644 +--- a/setup.py ++++ b/setup.py +@@ -12,9 +12,9 @@ requirements = [ + 'six', + ] + +-setup_requirements = ['pytest-runner', ] ++setup_requirements = [] + +-test_requirements = ['pytest>=3', ] ++test_requirements = ['pytest>=3', 'pytest-runner'] + + setup( + author="Nicolas Aimetti", +-- +2.20.1 + diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-rfc3339-validator_0.1.1.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-rfc3339-validator_0.1.1.bb new file mode 100644 index 00000000..29b8a6e0 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-rfc3339-validator_0.1.1.bb @@ -0,0 +1,2 @@ +inherit setuptools +require python-rfc3339-validator.inc \ No newline at end of file diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-rfc3986-validator.inc b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-rfc3986-validator.inc new file mode 100644 index 00000000..71f7a790 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-rfc3986-validator.inc @@ -0,0 +1,23 @@ +SUMMARY = "Pure python rfc3986 validator" +HOMEPAGE = "https://github.com/naimetti/rfc3986-validator" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://LICENSE;md5=a21b13b5a996f08f7e0b088aa38ce9c6" + +FILESEXTRAPATHS_prepend := "${THISDIR}/python-rfc3986-validator:" + +SRC_URI[md5sum] = "47f7657b790aaf6011a1ab3d86c6be95" +SRC_URI[sha256sum] = "3d44bde7921b3b9ec3ae4e3adca370438eccebc676456449b145d533b240d055" + +PYPI_PACKAGE = "rfc3986_validator" + +inherit pypi + +SRC_URI_append = " \ + file://0001-setup.py-move-pytest-runner-to-test_requirements.patch \ +" + +RDEPENDS_${PN} += "\ + python3-core \ +" + +BBCLASSEXTEND = "native nativesdk" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-rfc3986-validator/0001-setup.py-move-pytest-runner-to-test_requirements.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-rfc3986-validator/0001-setup.py-move-pytest-runner-to-test_requirements.patch new file mode 100644 index 00000000..8a646874 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-rfc3986-validator/0001-setup.py-move-pytest-runner-to-test_requirements.patch @@ -0,0 +1,32 @@ +From 3531ff73631a0d59234eb4713e7b3a7f5ea57bbb Mon Sep 17 00:00:00 2001 +From: Nicola Lunghi +Date: Thu, 14 Nov 2019 12:17:51 +0000 +Subject: [PATCH] setup.py: move pytest-runner to test_requirements + +This fixes an issue with yocto build. +pytest-runner is only needed when running tests. + +Upstream-Status: Pending +--- + setup.py | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/setup.py b/setup.py +index 53ebea7..ebb0de2 100644 +--- a/setup.py ++++ b/setup.py +@@ -10,9 +10,9 @@ with open('README.md') as readme_file: + + requirements = [] + +-setup_requirements = ['pytest-runner', ] ++setup_requirements = [] + +-test_requirements = ['pytest>=3', ] ++test_requirements = ['pytest>=3', 'pytest-runner'] + + setup( + author="Nicolas Aimetti", +-- +2.20.1 + diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-rfc3986-validator_0.1.1.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-rfc3986-validator_0.1.1.bb new file mode 100644 index 00000000..9dddbb4a --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-rfc3986-validator_0.1.1.bb @@ -0,0 +1,2 @@ +inherit setuptools +require python-rfc3986-validator.inc \ No newline at end of file diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-robotframework-seriallibrary.inc b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-robotframework-seriallibrary.inc index 9f07b657..bfcb023a 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-robotframework-seriallibrary.inc +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-robotframework-seriallibrary.inc @@ -1,7 +1,7 @@ SUMMARY = "Robot Framework test library for serial connection" HOMEPAGE = "https://github.com/whosaysni/robotframework-seriallibrary" LICENSE = "Apache-2.0" -LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10" +LIC_FILES_CHKSUM = "file://PKG-INFO;beginline=8;endline=8;md5=7145f7cdd263359b62d342a02f005515" SRC_URI[md5sum] = "b7c9565d54c30df7cd3f3c0e29adffa3" SRC_URI[sha256sum] = "256ad60fc0b7df4be44d82c302f5ed8fad4935cda99e4b45942e3c88179d1e19" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-scandir_1.10.0.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-scandir_1.10.0.bb new file mode 100644 index 00000000..9de27241 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-scandir_1.10.0.bb @@ -0,0 +1,14 @@ +SUMMARY = "A better directory iterator and faster os.walk()" +HOMEPAGE = "https://github.com/benhoyt/scandir" +AUTHOR = "Ben Hoyt" +LICENSE = "BSD-3-Clause" +LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=482ee62da51806409d432a80eed4e3ea" + +SRC_URI = "git://github.com/benhoyt/scandir.git" +SRCREV = "982e6ba60e7165ef965567eacd7138149c9ce292" + +S = "${WORKDIR}/git" + +inherit setuptools + +BBCLASSEXTEND = "native nativesdk" \ No newline at end of file diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-scrypt.inc b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-scrypt.inc index 783d05b7..aff86a59 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-scrypt.inc +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-scrypt.inc @@ -1,6 +1,6 @@ DESCRIPTION = "Bindings for the scrypt key derivation function library" LICENSE = "BSD-2-Clause" -LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/BSD-2-Clause;md5=8bef8e6712b1be5aa76af1ebde9d6378" +LIC_FILES_CHKSUM = "file://LICENSE;md5=168ff75417f75a83e63c8875292d44dc" HOMEPAGE="https://bitbucket.org/mhallin/py-scrypt/overview" FILESEXTRAPATHS_prepend := "${THISDIR}/python-scrypt:" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-serpent.inc b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-serpent.inc index 2ba65706..1a3aac07 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-serpent.inc +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-serpent.inc @@ -1,9 +1,9 @@ SUMMARY = "Serialization based on ast.literal_eval" LICENSE = "MIT" -LIC_FILES_CHKSUM = "file://PKG-INFO;md5=5a8193ba89f1083617f32d522f6485e9" +LIC_FILES_CHKSUM = "file://PKG-INFO;md5=5cd70632b6cdb96df9ddaf6a4ce619e6" -SRC_URI[md5sum] = "0f9684622125a527fa4fbe2587738973" -SRC_URI[sha256sum] = "264a028e059c1b557701ae7c567cdab330dbd228ff924489343efcb39bd828a0" +SRC_URI[md5sum] = "15ef8b67c76a6d19bac9c16731a1e62a" +SRC_URI[sha256sum] = "f306336ca09aa38e526f3b03cab58eb7e45af09981267233167bcf3bfd6436ab" inherit pypi diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-serpent_1.25.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-serpent_1.28.bb similarity index 100% rename from Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-serpent_1.25.bb rename to Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-serpent_1.28.bb diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-setuptools-scm.inc b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-setuptools-scm.inc index 98883ec3..a7e1bf6a 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-setuptools-scm.inc +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-setuptools-scm.inc @@ -2,8 +2,8 @@ SUMMARY = "the blessed package to manage your versions by scm tags" LICENSE = "MIT" LIC_FILES_CHKSUM = "file://PKG-INFO;beginline=8;endline=8;md5=8227180126797a0148f94f483f3e1489" -SRC_URI[md5sum] = "cfec5d2dbbd0a85c40066f79035b5878" -SRC_URI[sha256sum] = "a767141fecdab1c0b3c8e4c788ac912d7c94a0d6c452d40777ba84f918316379" +SRC_URI[md5sum] = "50b2199082fe808d032ec1710c9d7415" +SRC_URI[sha256sum] = "bd25e1fb5e4d603dcf490f1fde40fb4c595b357795674c3e5cb7f6217ab39ea5" PYPI_PACKAGE = "setuptools_scm" inherit pypi diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-setuptools-scm_2.1.0.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-setuptools-scm_3.3.3.bb similarity index 100% rename from Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-setuptools-scm_2.1.0.bb rename to Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-setuptools-scm_3.3.3.bb diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-simplejson.inc b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-simplejson.inc index 3d36f960..1a8d390e 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-simplejson.inc +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-simplejson.inc @@ -4,8 +4,8 @@ HOMEPAGE = "http://cheeseshop.python.org/pypi/simplejson" LICENSE = "MIT" LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=c6338d7abd321c0b50a2a547e441c52e" -SRC_URI[md5sum] = "744fa99aed207478f8fbf9dd9f04fad3" -SRC_URI[sha256sum] = "b1f329139ba647a9548aa05fb95d046b4a677643070dc2afc05fa2e975d09ca5" +SRC_URI[md5sum] = "8a5ed75c367b90fedc3d685742e2a1c7" +SRC_URI[sha256sum] = "2b4b2b738b3b99819a17feaf118265d0753d5536049ea570b3c43b51c4701e81" inherit pypi @@ -21,3 +21,5 @@ FILES_${PN}-tests+= " \ ${PYTHON_SITEPACKAGES_DIR}/simplejson/tests \ ${PYTHON_SITEPACKAGES_DIR}/simplejson/tool.py* \ " + +BBCLASSEXTEND = "native nativesdk" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-simplejson_3.16.0.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-simplejson_3.17.0.bb similarity index 100% rename from Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-simplejson_3.16.0.bb rename to Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-simplejson_3.17.0.bb diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-six.inc b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-six.inc deleted file mode 100644 index 47129258..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-six.inc +++ /dev/null @@ -1,19 +0,0 @@ -SUMMARY = "Python 2 and 3 compatibility library" -HOMEPAGE = "http://pypi.python.org/pypi/six/" -LICENSE = "MIT" -LIC_FILES_CHKSUM = "file://LICENSE;md5=83e0f622bd5ac7d575dbd83d094d69b5" - -SRC_URI[md5sum] = "9ae5d1feed8c0215f4ae4adcd9207fcb" -SRC_URI[sha256sum] = "d16a0141ec1a18405cd4ce8b4613101da75da0e9a7aec5bdd4fa804d0e0eba73" - -do_compile_append() { - ${PYTHON} setup.py -q bdist_egg --dist-dir ./ -} -do_install_append() { - install -m 0644 ${S}/*.egg ${D}/${PYTHON_SITEPACKAGES_DIR}/ -} - -RDEPENDS_${PN} += "${PYTHON_PN}-io" - -BBCLASSEXTEND = "native nativesdk" - diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-six_1.12.0.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-six_1.12.0.bb deleted file mode 100644 index 9075745d..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-six_1.12.0.bb +++ /dev/null @@ -1,2 +0,0 @@ -inherit pypi setuptools -require python-six.inc diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-slip-dbus.inc b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-slip-dbus.inc index 0933b455..ab7b1bb0 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-slip-dbus.inc +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-slip-dbus.inc @@ -21,9 +21,12 @@ SRC_URI[md5sum] = "28ae5f93853466c44ec96706ba2a1eb4" SRC_URI[sha256sum] = "c726c086f0dd93a0ac7a0176f383a12af91b6657b78a301e3f5b25d9f8d4d10b" do_compile_prepend() { - sed -e 's/@VERSION@/${PV}/g' setup.py.in > setup.py + sed -e 's/@VERSION@/${PV}/g' ${S}/setup.py.in > ${S}/setup.py } +RDEPENDS_${PN} += "\ +${PYTHON_PN}-six \ +" # http://errors.yoctoproject.org/Errors/Details/184713/ # python-native/python: can't open file 'setup.py': [Errno 2] No such file or directory CLEANBROKEN = "1" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-smbus.inc b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-smbus.inc index f472a57f..8ba1ab2b 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-smbus.inc +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-smbus.inc @@ -1,11 +1,11 @@ SUMMARY = "Set of i2c tools for linux - Python module" LICENSE = "GPLv2" -LIC_FILES_CHKSUM = "file://smbusmodule.c;beginline=1;endline=17;md5=fa24df321a520ff8e10f203425ab9fa8" +LIC_FILES_CHKSUM = "file://smbusmodule.c;beginline=1;endline=18;md5=46e424fb045901ab25e0f92c28c80055" PR = "r1" SRC_URI = "${KERNELORG_MIRROR}/software/utils/i2c-tools/i2c-tools-${PV}.tar.gz " -SRC_URI[md5sum] = "d92a288d70f306d3895e3a7e9c14c9aa" -SRC_URI[sha256sum] = "5b60daf6f011de0acb61de57dba62f2054bb39f19961d67e0c91610f071ca403" +SRC_URI[md5sum] = "3536237a6b51fb10caacdc3b8a496237" +SRC_URI[sha256sum] = "ef8f77afc70e7dbfd1171bfeae87a8a7f10074829370ce8d9ccd585a014e0073" DEPENDS += "i2c-tools" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-smbus_4.0.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-smbus_4.1.bb similarity index 100% rename from Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-smbus_4.0.bb rename to Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-smbus_4.1.bb diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-snimpy_0.8.12.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-snimpy_0.8.12.bb deleted file mode 100644 index c5af48dd..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-snimpy_0.8.12.bb +++ /dev/null @@ -1,20 +0,0 @@ -SUMMARY = "Interactive SNMP tool" -DESCRIPTION = "Snimpy is a Python-based tool providing a simple interface to build SNMP query" -HOMEPAGE = "https://pypi.python.org/pypi/snimpy" -SECTION = "devel/python" - -DEPENDS += "libsmi python-cffi-native python-vcversioner-native" - -LICENSE = "ISC" -LIC_FILES_CHKSUM = "file://docs/license.rst;md5=7c53ab2d1240828625c3e093d049d4f4" - -SRC_URI[md5sum] = "6d016b6356db432e6a87ad708eb8fcb6" -SRC_URI[sha256sum] = "04efcfba867ffb0e10cc8d7f93a553ceb6bdf2ee34e49762749028a2c76096c1" - -inherit pypi setuptools - -RDEPENDS_${PN} = "python-cffi \ - python-pycparser \ - python-pysnmp \ - python-setuptools \ -" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-snimpy_0.8.13.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-snimpy_0.8.13.bb new file mode 100644 index 00000000..c885a7fb --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-snimpy_0.8.13.bb @@ -0,0 +1,20 @@ +SUMMARY = "Interactive SNMP tool" +DESCRIPTION = "Snimpy is a Python-based tool providing a simple interface to build SNMP query" +HOMEPAGE = "https://pypi.python.org/pypi/snimpy" +SECTION = "devel/python" + +DEPENDS += "libsmi python-cffi-native python-vcversioner-native" + +LICENSE = "ISC" +LIC_FILES_CHKSUM = "file://docs/license.rst;md5=7c53ab2d1240828625c3e093d049d4f4" + +SRC_URI[md5sum] = "7c57acac10226df5bf43e10b929942df" +SRC_URI[sha256sum] = "98b1790977b435332c03ab2603f6621eeeee69a50453ac01ca55dc7696d08535" + +inherit pypi setuptools + +RDEPENDS_${PN} = "python-cffi \ + python-pycparser \ + python-pysnmp \ + python-setuptools \ +" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-socketio.inc b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-socketio.inc index a23e7807..7ee99f8d 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-socketio.inc +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-socketio.inc @@ -9,9 +9,20 @@ inherit pypi PYPI_PACKAGE = "python-socketio" -SRC_URI[md5sum] = "0b57da61a9464d2e0dc9a8d0164d86d2" -SRC_URI[sha256sum] = "64feb0817f1bf7e3e7fc05f6f65e28d76146d8061cb7de25b63502717f80e908" +SRC_URI[md5sum] = "86cd47dddea1785ce7a6c72f55c93fe7" +SRC_URI[sha256sum] = "506b2cf7a520b40ea0b3f25e1272eff8de134dce6f471c1f6bc0de8c90fe8c57" + +PACKAGECONFIG ?= "" +PACKAGECONFIG[asyncio_client] = ",,,${PYTHON_PN}-aiohttp ${PYTHON_PN}-websockets" +PACKAGECONFIG[client] = ",,,${PYTHON_PN}-requests ${PYTHON_PN}-websocket-client" RDEPENDS_${PN} += "\ ${PYTHON_PN}-engineio \ + ${PYTHON_PN}-logging \ + ${PYTHON_PN}-math \ + ${PYTHON_PN}-pickle \ + ${PYTHON_PN}-json \ + ${PYTHON_PN}-threading \ + ${PYTHON_PN}-six \ + ${PYTHON_PN}-attrs \ " diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-socketio_4.0.0.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-socketio_4.3.1.bb similarity index 100% rename from Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-socketio_4.0.0.bb rename to Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-socketio_4.3.1.bb diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-soupsieve.inc b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-soupsieve.inc new file mode 100644 index 00000000..ccb04f44 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-soupsieve.inc @@ -0,0 +1,12 @@ +SUMMARY = "CSS selector library for python-beautifulsoup4" +HOMEPAGE = "https://github.com/facelessuser/soupsieve" + +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://LICENSE.md;md5=5a6fd3b0c24fc5a041a3d1bbb22c81b5" + +SRC_URI[md5sum] = "43d8ea20c58494446aa65ba5cc6320fe" +SRC_URI[sha256sum] = "605f89ad5fdbfefe30cdc293303665eff2d188865d4dbe4eb510bba1edfbfce3" + +inherit pypi + +BBCLASSEXTEND = "native nativesdk" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-soupsieve_1.9.4.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-soupsieve_1.9.4.bb new file mode 100644 index 00000000..55a673ec --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-soupsieve_1.9.4.bb @@ -0,0 +1,4 @@ +inherit setuptools +require python-soupsieve.inc + +RDEPENDS_${PN} += "${PYTHON_PN}-backports-functools-lru-cache" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-speaklater.inc b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-speaklater.inc index 94fa8a6c..a2534e40 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-speaklater.inc +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-speaklater.inc @@ -1,5 +1,5 @@ DESCRIPTION = "Media asset management for Python, with glue code for various frameworks" -LICENSE = "BSD" +LICENSE = "BSD-3-Clause" LIC_FILES_CHKSUM = "file://LICENSE;md5=b810770075a29bf44b96607440e7c801" SRC_URI[md5sum] = "e8d5dbe36e53d5a35cff227e795e8bbf" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-sqlalchemy.inc b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-sqlalchemy.inc index 0c191ae7..3763a39a 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-sqlalchemy.inc +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-sqlalchemy.inc @@ -2,13 +2,13 @@ DESCRIPTION = "Python SQL toolkit and Object Relational Mapper that gives \ application developers the full power and flexibility of SQL" HOMEPAGE = "http://www.sqlalchemy.org/" LICENSE = "MIT" -LIC_FILES_CHKSUM = "file://LICENSE;md5=b1c412c9d8d1ce018f7a9374407c22bb" +LIC_FILES_CHKSUM = "file://LICENSE;md5=2f5eb030c48975d5294baf0f5d01af1c" PYPI_PACKAGE = "SQLAlchemy" inherit pypi -SRC_URI[md5sum] = "03db1c8f8ae911977c0bf3950a4c9c21" -SRC_URI[sha256sum] = "6b55ec379c11ad696f9371ce8e0de93c7f21134323f56a56a1b0d8fbef17013c" +SRC_URI[md5sum] = "02a46be841903b60c52a83342d3ced8e" +SRC_URI[sha256sum] = "bfb8f464a5000b567ac1d350b9090cf081180ec1ab4aa87e7bca12dab25320ec" RDEPENDS_${PN} += " \ ${PYTHON_PN}-json \ diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-sqlalchemy_1.1.17.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-sqlalchemy_1.3.12.bb similarity index 100% rename from Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-sqlalchemy_1.1.17.bb rename to Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-sqlalchemy_1.3.12.bb diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-sqlparse.inc b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-sqlparse.inc new file mode 100644 index 00000000..f71f8152 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-sqlparse.inc @@ -0,0 +1,13 @@ +DESCRIPTION = "Non-validating SQL parser module" +HOMEPAGE = "http://pypi.python.org/pypi/sqlparse" +SECTION = "devel/python" +LICENSE = "BSD" +LIC_FILES_CHKSUM = "file://LICENSE;md5=2b136f573f5386001ea3b7b9016222fc" + +SRC_URI[md5sum] = "2ce34181d6b7b234c9f3c0ecd1ffb93e" +SRC_URI[sha256sum] = "7c3dca29c022744e95b547e867cee89f4fce4373f3549ccd8797d8eb52cdb873" + +export BUILD_SYS +export HOST_SYS + +inherit pypi diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-sqlparse_0.3.0.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-sqlparse_0.3.0.bb new file mode 100644 index 00000000..2b7773fd --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-sqlparse_0.3.0.bb @@ -0,0 +1,2 @@ +inherit setuptools +require python-sqlparse.inc diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-statistics_1.0.3.5.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-statistics_1.0.3.5.bb new file mode 100644 index 00000000..ee3b822a --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-statistics_1.0.3.5.bb @@ -0,0 +1,15 @@ +SUMMARY = "A port of Python 3.4 statistics module to Python 2.x" +DESCRIPTION = " \ +A port of Python 3.4 statistics module to Python 2.*, initially done \ +through the 3to2 tool. This module provides functions for calculating \ +mathematical statistics of numeric (Real-valued) data. \ +" +LICENSE = "Apache-2.0" +LIC_FILES_CHKSUM = "file://statistics/__init__.py;beginline=6;endline=16;md5=b76960ee777a1529f60db47ada2a8e6e" + +SRC_URI[md5sum] = "d6d97f3a1a7b3192cff99e0f2b5956c3" +SRC_URI[sha256sum] = "2dc379b80b07bf2ddd5488cad06b2b9531da4dd31edb04dc9ec0dc226486c138" + +inherit pypi setuptools + +PYPI_PACKAGE = "statistics" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-stevedore.inc b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-stevedore.inc index 0aa0ef2f..5aa9fb42 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-stevedore.inc +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-stevedore.inc @@ -3,8 +3,8 @@ HOMEPAGE = "https://github.com/dreamhost/stevedore" LICENSE = "Apache-2.0" LIC_FILES_CHKSUM = "file://LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57" -SRC_URI[md5sum] = "02c747c39f4634465aa2590ceefddf59" -SRC_URI[sha256sum] = "7be098ff53d87f23d798a7ce7ae5c31f094f3deb92ba18059b1aeb1ca9fec0a0" +SRC_URI[md5sum] = "42fa2bf0251c96b543765c5ce13f37c9" +SRC_URI[sha256sum] = "e0739f9739a681c7a1fda76a102b65295e96a144ccdb552f2ae03c5f0abe8a14" inherit pypi diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-stevedore_1.30.1.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-stevedore_1.31.0.bb similarity index 100% rename from Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-stevedore_1.30.1.bb rename to Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-stevedore_1.31.0.bb diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-supervisor.inc b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-supervisor.inc index beab4973..1ac18bbe 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-supervisor.inc +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-supervisor.inc @@ -4,11 +4,11 @@ Supervisor is a client/server system that allows its users \ to monitorand control a number of processes on UNIX-like \ operating systems." HOMEPAGE = "https://github.com/Supervisor/supervisor" -LICENSE = "BSD" +LICENSE = "BSD-4-Clause" LIC_FILES_CHKSUM = "file://LICENSES.txt;md5=5b4e3a2172bba4c47cded5885e7e507e" -SRC_URI[md5sum] = "ac70dadd051dcaf1d03c467d51a3aac1" -SRC_URI[sha256sum] = "5604457da4fb89d850e78c128205fe4938c9277f87301885b33c94c60361e575" +SRC_URI[md5sum] = "ecea94eedc70ba5127fdeb0665bcca0d" +SRC_URI[sha256sum] = "2dc86fe0476e945e61483d614ceb2cf4f93b95282eb243bdf792621994360383" PYPI_PACKAGE = "supervisor" inherit pypi systemd diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-systemd.inc b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-systemd.inc index 5be5de09..b14f8250 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-systemd.inc +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-systemd.inc @@ -7,7 +7,7 @@ PYPI_PACKAGE = "systemd-python" DEPENDS += "systemd (<=234)" RDEPENDS_${PN} += "systemd ${PYTHON_PN}-syslog ${PYTHON_PN}-logging" REQUIRED_DISTRO_FEATURES = "systemd" -inherit pypi distro_features_check +inherit pypi features_check SRC_URI[md5sum] = "5071ea5bcb976186e92a3f5e75df221d" SRC_URI[sha256sum] = "fd0e44bf70eadae45aadc292cb0a7eb5b0b6372cd1b391228047d33895db83e7" @@ -15,4 +15,6 @@ SRC_URI[sha256sum] = "fd0e44bf70eadae45aadc292cb0a7eb5b0b6372cd1b391228047d33895 # allow for common patches for python- and python3-systemd FILESEXTRAPATHS_prepend := "${THISDIR}/python-systemd:" +SRC_URI += "file://endian.patch" + SRC_URI_append_libc-musl = " file://0001-Provide-implementation-of-strndupa-for-musl.patch" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-systemd/endian.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-systemd/endian.patch new file mode 100644 index 00000000..e09aea73 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-systemd/endian.patch @@ -0,0 +1,14 @@ +Include endian.h for missing definitions of htobe16 + +Upstream-Status: Pending +Signed-off-by: Khem Raj +--- a/systemd/util.c ++++ b/systemd/util.c +@@ -28,6 +28,7 @@ + #include + #include + #include ++#include + #include + #include + #include diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-term.inc b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-term.inc new file mode 100644 index 00000000..8a2df0e1 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-term.inc @@ -0,0 +1,9 @@ +SUMMARY = "An enhanced version of the tty module" +SECTION = "devel/python" +LICENSE = "Python-2" +LIC_FILES_CHKSUM = "file://LICENSE;md5=d90e2d280a4836c607520383d1639be1" + +PYPI_PACKAGE_EXT = "zip" + +SRC_URI[md5sum] = "ab0c1bce381b1109fe4390c56aa06237" +SRC_URI[sha256sum] = "3dcc8c212e04700784e5c1c5b601916ba0549ae6025b35b64fd62144899e7180" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-toml.inc b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-toml.inc new file mode 100644 index 00000000..a3b3dfc8 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-toml.inc @@ -0,0 +1,10 @@ +SUMMARY = "Python Library for Tom's Obvious, Minimal Language" +HOMEPAGE = "https://github.com/uiri/toml" +LICENSE = "MIT" +SECTION = "devel/python" +LIC_FILES_CHKSUM = "file://LICENSE;md5=6d6012eea477117abf51c31262a152f8" + +SRC_URI[md5sum] = "63fffbe2d632865ec29cd69bfdf36682" +SRC_URI[sha256sum] = "229f81c57791a41d65e399fc06bf0848bab550a9dfd5ed66df18ce5f05e73d5c" + +inherit pypi diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-toml_0.10.0.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-toml_0.10.0.bb new file mode 100644 index 00000000..3c4acce6 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-toml_0.10.0.bb @@ -0,0 +1,6 @@ +inherit setuptools +require python-toml.inc + +RDEPENDS_${PN} += " \ + ${PYTHON_PN}-datetime \ +" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-tornado.inc b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-tornado.inc index 16899f88..7cb61931 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-tornado.inc +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-tornado.inc @@ -6,8 +6,8 @@ HOMEPAGE = "http://www.tornadoweb.org/en/stable/" LICENSE = "Apache-2.0" LIC_FILES_CHKSUM = "file://LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57" -SRC_URI[md5sum] = "bd264851c409f926d1dae1ad5055d28d" -SRC_URI[sha256sum] = "4f66a2172cb947387193ca4c2c3e19131f1c70fa8be470ddbbd9317fd0801582" +SRC_URI[md5sum] = "cab4b11480f6d032e46465586192d343" +SRC_URI[sha256sum] = "c845db36ba616912074c5b1ee897f8e0124df269468f25e4fe21fe72f6edd7a9" RDEPENDS_${PN} += "${PYTHON_PN}-compression ${PYTHON_PN}-numbers ${PYTHON_PN}-email \ ${PYTHON_PN}-pkgutil ${PYTHON_PN}-html ${PYTHON_PN}-json ${PYTHON_PN}-certifi ${PYTHON_PN}-threading \ diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-tornado_5.1.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-tornado_6.0.3.bb similarity index 100% rename from Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-tornado_5.1.bb rename to Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-tornado_6.0.3.bb diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-tqdm.inc b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-tqdm.inc index 967a80c2..8a0534f9 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-tqdm.inc +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-tqdm.inc @@ -7,7 +7,7 @@ LIC_FILES_CHKSUM = "file://LICENCE;md5=054ef7105cba050017d1368262a1623c" inherit pypi -SRC_URI[md5sum] = "807e8c13e16e3660ac88e05d711daeb0" -SRC_URI[sha256sum] = "e22977e3ebe961f72362f6ddfb9197cc531c9737aaf5f607ef09740c849ecd05" +SRC_URI[md5sum] = "aa3d5fd173c9fea7408cad14c0e73d5d" +SRC_URI[sha256sum] = "4789ccbb6fc122b5a6a85d512e4e41fc5acad77216533a6f2b8ce51e0f265c23" BBCLASSEXTEND = "native nativesdk" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-tqdm_4.31.1.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-tqdm_4.41.1.bb similarity index 100% rename from Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-tqdm_4.31.1.bb rename to Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-tqdm_4.41.1.bb diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-twine.inc b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-twine.inc new file mode 100644 index 00000000..2bc778da --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-twine.inc @@ -0,0 +1,11 @@ +DESCRIPTION = "Six is a Python 2 and 3 compatibility library" +HOMEPAGE = "https://github.com/benjaminp/six" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://README.rst;md5=3963bdcee7562bedae1effa09e7542b2" + +SRC_URI[md5sum] = "6fb4da0c7d81ddfd48f619b8caa1493c" +SRC_URI[sha256sum] = "d6c29c933ecfc74e9b1d9fa13aa1f87c5d5770e119f5a4ce032092f0ff5b14dc" + +inherit pypi + +BBCLASSEXTEND = "native" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-twisted.inc b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-twisted.inc index 005aaade..d005a2ac 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-twisted.inc +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-twisted.inc @@ -5,10 +5,15 @@ HOMEPAGE = "http://www.twistedmatrix.com" #twisted/topfiles/NEWS:655: - Relicensed: Now under the MIT license, rather than LGPL. LICENSE = "MIT" -LIC_FILES_CHKSUM = "file://LICENSE;md5=d136e8cf7b52f2e64079186ae2060d8a" +LIC_FILES_CHKSUM = "file://LICENSE;md5=1743f12d8b8f5aec625c0569a058f0a6" -SRC_URI[sha256sum] = "fa2c04c2d68a9be7fc3975ba4947f653a57a656776f24be58ff0fe4b9aaf3e52" -SRC_URI[md5sum] = "528b7856938edc2a752c244aebd94981" +# allow for common patches for python- and python3-twisted +FILESEXTRAPATHS_prepend := "${THISDIR}/python-twisted:" + +SRC_URI += "file://0001-fix-MemoryReactor-import-in-test_runner-to-be-from-t.patch" + +SRC_URI[sha256sum] = "7394ba7f272ae722a74f3d969dcf599bc4ef093bc392038748a490f1724a515d" +SRC_URI[md5sum] = "f2d70f7a66ecdf54152310164cceadfe" PYPI_PACKAGE = "Twisted" PYPI_PACKAGE_EXT = "tar.bz2" @@ -56,9 +61,9 @@ RDEPENDS_${PN} = "\ ${PN}-zsh \ " -RDEPENDS_${PN}-core = "${PYTHON_PN}-core ${PYTHON_PN}-zopeinterface ${PYTHON_PN}-incremental ${PYTHON_PN}-constantly ${PYTHON_PN}-hyperlink ${PYTHON_PN}-automat" +RDEPENDS_${PN}-core = "${PYTHON_PN}-core ${PYTHON_PN}-zopeinterface ${PYTHON_PN}-incremental ${PYTHON_PN}-constantly ${PYTHON_PN}-hyperlink ${PYTHON_PN}-automat ${PYTHON_PN}-pyserial" RDEPENDS_${PN}-test = "${PN}" -RDEPENDS_${PN}-conch = "${PN}-core ${PN}-protocols" +RDEPENDS_${PN}-conch = "${PN}-core ${PN}-protocols ${PYTHON_PN}-bcrypt ${PYTHON_PN}-cryptography ${PYTHON_PN}-pyasn1 ${PYTHON_PN}-pickle" RDEPENDS_${PN}-mail = "${PN}-core ${PN}-protocols" RDEPENDS_${PN}-names = "${PN}-core" RDEPENDS_${PN}-news = "${PN}-core ${PN}-protocols" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-twisted/0001-fix-MemoryReactor-import-in-test_runner-to-be-from-t.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-twisted/0001-fix-MemoryReactor-import-in-test_runner-to-be-from-t.patch new file mode 100644 index 00000000..39fc7d43 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-twisted/0001-fix-MemoryReactor-import-in-test_runner-to-be-from-t.patch @@ -0,0 +1,38 @@ +From 754f21282ad2775db8ff501d40bbc497faeb17ba Mon Sep 17 00:00:00 2001 +From: Trevor Gamblin +Date: Tue, 17 Dec 2019 15:09:22 -0500 +Subject: [PATCH] fix MemoryReactor import in test_runner to be from + twisted.internet.testing + +Upstream-Status: Backport [https://github.com/twisted/twisted/commit/754f21282ad2775db8ff501d40bbc497faeb17ba] + +Signed-off-by: Trevor Gamblin +--- + src/twisted/application/newsfragments/9746.misc | 1 + + src/twisted/application/runner/test/test_runner.py | 2 +- + 2 files changed, 2 insertions(+), 1 deletion(-) + create mode 100644 src/twisted/application/newsfragments/9746.misc + +diff --git a/src/twisted/application/newsfragments/9746.misc b/src/twisted/application/newsfragments/9746.misc +new file mode 100644 +index 000000000..8b1378917 +--- /dev/null ++++ b/src/twisted/application/newsfragments/9746.misc +@@ -0,0 +1 @@ ++ +diff --git a/src/twisted/application/runner/test/test_runner.py b/src/twisted/application/runner/test/test_runner.py +index 9abc3449a..cce495b12 100644 +--- a/src/twisted/application/runner/test/test_runner.py ++++ b/src/twisted/application/runner/test/test_runner.py +@@ -15,7 +15,7 @@ from twisted.logger import ( + LogLevel, LogPublisher, LogBeginner, + FileLogObserver, FilteringLogObserver, LogLevelFilterPredicate, + ) +-from twisted.test.proto_helpers import MemoryReactor ++from twisted.internet.testing import MemoryReactor + + from ...runner import _runner + from .._exit import ExitStatus +-- +2.24.1 + diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-twisted_19.2.1.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-twisted_19.10.0.bb similarity index 100% rename from Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-twisted_19.2.1.bb rename to Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-twisted_19.10.0.bb diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-twitter.inc b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-twitter.inc index f5657eeb..ac3f6527 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-twitter.inc +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-twitter.inc @@ -2,10 +2,10 @@ SUMMARY = "Twitter for Python" DESCRIPTION = "Python module to support twitter API" LICENSE = "MIT" -LIC_FILES_CHKSUM = "file://PKG-INFO;md5=0307fffd8c4d9946c029daa1426d26e7" +LIC_FILES_CHKSUM = "file://PKG-INFO;md5=8f702b489acb6863cec8b261a55931d8" -SRC_URI[md5sum] = "c6dc2f315ded761aafc96bea3351c7f6" -SRC_URI[sha256sum] = "fe85a79f58a01dd335968523b91c5fce760e7fe78bf25a6e71c72204fe499d0b" +SRC_URI[md5sum] = "8aeff278b7cefcd384c65929bc921e2c" +SRC_URI[sha256sum] = "8abd828ba51a85a2b5bb7373715d6d3bb32d18ac624e3a4db02e4ef8ab48316b" PYPI_PACKAGE = "tweepy" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-twitter_3.7.0.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-twitter_3.8.0.bb similarity index 100% rename from Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-twitter_3.7.0.bb rename to Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-twitter_3.8.0.bb diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-typing.inc b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-typing.inc index 82c2ab74..ab8ee81e 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-typing.inc +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-typing.inc @@ -3,7 +3,7 @@ HOMEPAGE = "https://github.com/python/typing" LICENSE = "PSF" LIC_FILES_CHKSUM = "file://LICENSE;md5=64fc2b30b67d0a8423c250e0386ed72f" -SRC_URI[md5sum] = "64614206b4bdc0864fc0e0bccd69efc9" -SRC_URI[sha256sum] = "4027c5f6127a6267a435201981ba156de91ad0d1d98e9ddc2aa173453453492d" +SRC_URI[md5sum] = "0a1ebd4af65b4769e33459004eb20345" +SRC_URI[sha256sum] = "91dfe6f3f706ee8cc32d38edbbf304e9b7583fb37108fef38229617f8b3eba23" BBCLASSEXTEND = "native nativesdk" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-typing_3.6.6.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-typing_3.7.4.1.bb similarity index 100% rename from Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-typing_3.6.6.bb rename to Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-typing_3.7.4.1.bb diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-tzlocal.inc b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-tzlocal.inc index 42f93e6a..3e423d22 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-tzlocal.inc +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-tzlocal.inc @@ -3,6 +3,6 @@ HOMEPAGE = "https://pypi.org/project/tzlocal/" LICENSE = "MIT" LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=57e0bd61643d81d05683cdce65b11d10" -SRC_URI[md5sum] = "4553be891efa0812c4adfb0c6e818eec" -SRC_URI[sha256sum] = "4ebeb848845ac898da6519b9b31879cf13b6626f7184c496037b818e238f2c4e" +SRC_URI[md5sum] = "b14262cecca16ec9220ca8dff2ca7c5d" +SRC_URI[sha256sum] = "949b9dd5ba4be17190a80c0268167d7e6c92c62b30026cf9764caf3e308e5590" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-tzlocal_1.5.1.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-tzlocal_2.0.0.bb similarity index 100% rename from Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-tzlocal_1.5.1.bb rename to Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-tzlocal_2.0.0.bb diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-ujson.inc b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-ujson.inc index c3d0bfee..018ddf41 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-ujson.inc +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-ujson.inc @@ -1,7 +1,7 @@ SUMMARY = "Ultra fast JSON encoder and decoder for Python" DESCRIPTION = "UltraJSON is an ultra fast JSON encoder and decoder written in pure C with bindings for Python 2.5+ and 3." -LICENSE = "BSD" +LICENSE = "BSD-3-Clause" LIC_FILES_CHKSUM = "file://PKG-INFO;beginline=8;endline=8;md5=88df8e78b9edfd744953862179f2d14e" SRC_URI[md5sum] = "42f77b0cce686dfa4da2e68480b1dd24" @@ -13,3 +13,5 @@ RDEPENDS_${PN} += "\ ${PYTHON_PN}-datetime \ ${PYTHON_PN}-numbers \ " + +BBCLASSEXTEND = "native nativesdk" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-urllib3.inc b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-urllib3.inc index e8cb1ae6..b7edc03f 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-urllib3.inc +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-urllib3.inc @@ -3,8 +3,8 @@ HOMEPAGE = "https://github.com/shazow/urllib3" LICENSE = "MIT" LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=65715c2eb961313d71b297dd5a04f85e" -SRC_URI[md5sum] = "f09e95a5c42a7cc7ff7cb6a14c55fb69" -SRC_URI[sha256sum] = "dbe59173209418ae49d485b87d1681aefa36252ee85884c31346debd19463232" +SRC_URI[md5sum] = "85e1e3925f8c1095172bff343f3312ed" +SRC_URI[sha256sum] = "f3c5fd51747d450d4dcf6f923c81f78f811aab8205fda64b0aba34a4e48b0745" RDEPENDS_${PN} += "\ ${PYTHON_PN}-certifi \ diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-urllib3_1.25.3.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-urllib3_1.25.7.bb similarity index 100% rename from Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-urllib3_1.25.3.bb rename to Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-urllib3_1.25.7.bb diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-versiontools.inc b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-versiontools.inc new file mode 100644 index 00000000..b0e696f9 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-versiontools.inc @@ -0,0 +1,10 @@ +SUMMARY = "Smart replacement for plain tuple used in __version__" +SECTION = "devel/python" +HOMEPAGE = "https://launchpad.net/versiontools" +LICENSE = "LGPLv3" +LIC_FILES_CHKSUM = "file://setup.py;beginline=3;endline=20;md5=02193721a38fd8a05a4ddeb7df8e294d" + +inherit pypi + +SRC_URI[md5sum] = "602b7db8eea30dd29a1d451997adf251" +SRC_URI[sha256sum] = "a969332887a18a9c98b0df0ea4d4ca75972f24ca94f06fb87d591377e83414f6" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-versiontools_1.9.1.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-versiontools_1.9.1.bb new file mode 100644 index 00000000..6bfe82e0 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-versiontools_1.9.1.bb @@ -0,0 +1,2 @@ +inherit setuptools +require python-versiontools.inc diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-waitress.inc b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-waitress.inc new file mode 100644 index 00000000..0c288d52 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-waitress.inc @@ -0,0 +1,10 @@ +SUMMARY = "A WSGI server for Python" +DESCRIPTION = "Waitress is meant to be a production-quality pure-Python WSGI \ + server with very acceptable performance." +HOMEPAGE = "https://github.com/Pylons/waitress" +SECTION = "devel/python" +LICENSE = "ZPL-2.1" +LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=78ccb3640dc841e1baecb3e27a6966b2" + +SRC_URI[md5sum] = "fdeed7ec32bbba011e90801208378c89" +SRC_URI[sha256sum] = "67a60a376f0eb335ed88967c42b73983a58d66a2a72eb9009a42725f7453b142" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-waitress_1.4.2.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-waitress_1.4.2.bb new file mode 100644 index 00000000..26a628ea --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-waitress_1.4.2.bb @@ -0,0 +1,2 @@ +inherit setuptools pypi +require python-waitress.inc diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-wcwidth.inc b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-wcwidth.inc index 1429450b..bbd0d50b 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-wcwidth.inc +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-wcwidth.inc @@ -2,7 +2,7 @@ SUMMARY = "Library for building powerful interactive command lines in Python" LICENSE = "MIT" LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=11fba47286258744a6bc6e43530c32a1" -SRC_URI[md5sum] = "b3b6a0a08f0c8a34d1de8cf44150a4ad" -SRC_URI[sha256sum] = "3df37372226d6e63e1b1e1eda15c594bca98a22d33a23832a90998faa96bc65e" +SRC_URI[md5sum] = "dc6677d099e6f49c0f6fbc310de261e9" +SRC_URI[sha256sum] = "f28b3e8a6483e5d49e7f8949ac1a78314e740333ae305b4ba5defd3e74fb37a8" BBCLASSEXTEND = "native nativesdk" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-wcwidth_0.1.7.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-wcwidth_0.1.8.bb similarity index 100% rename from Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-wcwidth_0.1.7.bb rename to Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-wcwidth_0.1.8.bb diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-webcolors.inc b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-webcolors.inc index a02bbbbe..ef254e33 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-webcolors.inc +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-webcolors.inc @@ -1,5 +1,5 @@ SUMMARY = "Simple Python module for working with HTML/CSS color definitions." -LICENSE = "BSD" +LICENSE = "BSD-3-Clause" LIC_FILES_CHKSUM = "file://LICENSE;md5=197add016087e6884a012b0f185d44ad" SRC_URI[md5sum] = "40890db38b2a856e526a568864025fe6" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-werkzeug.inc b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-werkzeug.inc index c04a4e0c..e292d93b 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-werkzeug.inc +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-werkzeug.inc @@ -7,11 +7,11 @@ HTTP utilities to handle entity tags, cache control headers, HTTP dates, \ cookie handling, file uploads, a powerful URL routing system and a bunch \ of community contributed addon modules." HOMEPAGE = "http://werkzeug.pocoo.org/" -LICENSE = "BSD" -LIC_FILES_CHKSUM = "file://LICENSE;md5=ed9a0b7c0254616d72dadb98b293ef1b" +LICENSE = "BSD-3-Clause" +LIC_FILES_CHKSUM = "file://LICENSE.rst;md5=5dc88300786f1c214c1e9827a5229462" -SRC_URI[md5sum] = "6d20b5be2d245be4ac7706cc390d130c" -SRC_URI[sha256sum] = "c3fd7a7d41976d9f44db327260e263132466836cef6f91512889ed60ad26557c" +SRC_URI[md5sum] = "5b23b4953efc4f52b1d0b33af6f7cd2d" +SRC_URI[sha256sum] = "7280924747b5733b246fe23972186c6b348f9ae29724135a6dfc1e53cea433e7" PYPI_PACKAGE = "Werkzeug" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-werkzeug_0.14.1.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-werkzeug_0.16.0.bb similarity index 100% rename from Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-werkzeug_0.14.1.bb rename to Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-werkzeug_0.16.0.bb diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-whoosh.inc b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-whoosh.inc index a4ca5dcd..040b3245 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-whoosh.inc +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-whoosh.inc @@ -4,7 +4,7 @@ Whoosh is a fast, featureful full-text indexing and searching library \ implemented in pure Python. Programmers can use it to easily add search \ functionality to their applications and websites. Every part of how \ Whoosh works can be extended or replaced to meet your needs exactly." -LICENSE = "BSD" +LICENSE = "BSD-2-Clause" LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=05303186defc6141143629961c7c8a60" SRC_URI[md5sum] = "893433e9c0525ac043df33e6e04caab2" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-wrapt.inc b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-wrapt.inc index ed49811f..496c73fa 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-wrapt.inc +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-wrapt.inc @@ -1,6 +1,6 @@ SUMMARY = "A Python module for decorators, wrappers and monkey patching." HOMEPAGE = "http://wrapt.readthedocs.org/" -LICENSE = "BSD" +LICENSE = "BSD-2-Clause" SECTION = "devel/python" LIC_FILES_CHKSUM = "file://LICENSE;md5=fdfc019b57affbe1d7a32e3d34e83db4" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-wtforms.inc b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-wtforms.inc index 868686bf..93c5bc4e 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-wtforms.inc +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-wtforms.inc @@ -1,7 +1,7 @@ DESCRIPTION = "A flexible forms validation and rendering library for python web development." HOMEPAGE = "https://pypi.python.org/pypi/WTForms" SECTION = "devel/python" -LICENSE = "BSD" +LICENSE = "BSD-3-Clause" LIC_FILES_CHKSUM = "file://PKG-INFO;md5=c4660c132770d5d0a5757541f6b79493" SRC_URI[md5sum] = "41c0008dbe7bd98892c58f7457a46a4a" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-xlrd.inc b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-xlrd.inc index 893e82e0..f87d2ab7 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-xlrd.inc +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-xlrd.inc @@ -3,11 +3,11 @@ DESCRIPTION = "Extract data from Excel spreadsheets (.xls and .xlsx,\ versions 2.0 onwards) on any platform. Pure Python (2.6, 2.7, 3.2+). \ Strong support for Excel dates. Unicode-aware." HOMEPAGE = "http://www.python-excel.org/" -LICENSE = "BSD" -LIC_FILES_CHKSUM = "file://PKG-INFO;md5=08bd814936237b6e1355e6370b24b2c1" +LICENSE = "BSD-3-Clause" +LIC_FILES_CHKSUM = "file://PKG-INFO;md5=5f4244d51fcc1e7cc2d43e96891b2f80" -SRC_URI[md5sum] = "b85c9916ac755cad489a9005f5a0d390" -SRC_URI[sha256sum] = "8a21885513e6d915fe33a8ee5fdfa675433b61405ba13e2a69e62ee36828d7e2" +SRC_URI[md5sum] = "e5d5b96924d791b22898b622eb3e918e" +SRC_URI[sha256sum] = "546eb36cee8db40c3eaa46c351e67ffee6eeb5fa2650b71bc4c758a29a1b29b2" RDEPENDS_${PN} += "${PYTHON_PN}-compression ${PYTHON_PN}-io ${PYTHON_PN}-pprint ${PYTHON_PN}-shell" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-xlrd_1.1.0.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-xlrd_1.2.0.bb similarity index 100% rename from Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-xlrd_1.1.0.bb rename to Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-xlrd_1.2.0.bb diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-xstatic.inc b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-xstatic.inc index f7c7db99..c44d6685 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-xstatic.inc +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-xstatic.inc @@ -2,12 +2,12 @@ DESCRIPTION = "XStatic base package with minimal support code" HOMEPAGE = "https://pypi.python.org/pypi/XStatic" SECTION = "devel/python" LICENSE = "MIT" -LIC_FILES_CHKSUM = "file://README.txt;md5=36a1e7eaa71e1bd07b8d2247839f228e" +LIC_FILES_CHKSUM = "file://README.txt;md5=1418684272f85f400cebf1b1a255c5cd" PYPI_PACKAGE = "XStatic" -SRC_URI[md5sum] = "7064b5ea7fd1ee990e0ae0538301d9bc" -SRC_URI[sha256sum] = "0ec93d7c66ebb9e0d31b664753437dc8634cb66e13310cb47c9eb1e0bc66d726" +SRC_URI[md5sum] = "dea172b7b14b0dbcd5ed63075221af4b" +SRC_URI[sha256sum] = "80b78dfe37bce6dee4343d64c65375a80bcf399b46dd47c0c7d56161568a23a8" DEPENDS += " \ ${PYTHON_PN}-pip \ diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-xstatic_1.0.1.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-xstatic_1.0.2.bb similarity index 100% rename from Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-xstatic_1.0.1.bb rename to Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-xstatic_1.0.2.bb diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-xxhash.inc b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-xxhash.inc index 9df4520f..80f5e9c7 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-xxhash.inc +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-xxhash.inc @@ -1,7 +1,7 @@ SUMMARY = "xxhash is a Python binding for the xxHash library by Yann Collet." SECTION = "devel/python" -LICENSE = "BSD" -LIC_FILES_CHKSUM = "file://LICENSE;md5=d2c6db5887cc6b2fac8b701d64cb8442" +LICENSE = "BSD-2-Clause" +LIC_FILES_CHKSUM = "file://LICENSE;md5=5a8d76283514a1b7e6a414aba38629b5" -SRC_URI[md5sum] = "a4289aa01839f3ea1fb98929d9131001" -SRC_URI[sha256sum] = "fe21f23a9d05428c75461790b670f2bf15f50a632d6c171a7e7b588269c619e6" +SRC_URI[md5sum] = "ce9cbbcc89620fd47a2468badd08dcf0" +SRC_URI[sha256sum] = "8b6b1afe7731d7d9cbb0398b4a811ebb5e6be5c174f72c68abf81f919a435de9" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-yappi.inc b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-yappi.inc index 651ce773..54d40874 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-yappi.inc +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-yappi.inc @@ -2,10 +2,10 @@ SUMMARY = "Yet Another Python Profiler" HOMEPAGE = "http://yappi.googlecode.com/" LICENSE = "MIT" -LIC_FILES_CHKSUM = "file://PKG-INFO;md5=6b131c3041637f6a5175a43112dde05c" +LIC_FILES_CHKSUM = "file://PKG-INFO;md5=9a193c13f346884e597acdcac7fe9ac8" -SRC_URI[md5sum] = "dc56240575c99938a924eaeb7c0d8beb" -SRC_URI[sha256sum] = "5f657129e1b9b952379ffbc009357d0dcdb58c50f3bfe88ffbb992e4b27b263c" +SRC_URI[md5sum] = "a545101aa8a435b0780f06f4723f58c8" +SRC_URI[sha256sum] = "7f814131515d51db62b1a3468bcb84de30499124752806a5a6e11caf0b4344bf" inherit pypi setuptools diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-yappi_0.98.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-yappi_1.0.bb similarity index 100% rename from Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-yappi_0.98.bb rename to Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-yappi_1.0.bb diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-yarl.inc b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-yarl.inc index 49b5a607..98066d73 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-yarl.inc +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-yarl.inc @@ -3,8 +3,12 @@ HOMEPAGE = "https://github.com/aio-libs/yarl/" LICENSE = "Apache-2.0" LIC_FILES_CHKSUM = "file://LICENSE;md5=b334fc90d45983db318f54fd5bf6c90b" -SRC_URI[md5sum] = "92889c31fce4c8f82b7ee9c2b2ed9cd1" -SRC_URI[sha256sum] = "024ecdc12bc02b321bc66b41327f930d1c2c543fa9a561b39861da9388ba7aa9" +SRC_URI[md5sum] = "08ba0d6e18f460b44d9e5459f3d217ba" +SRC_URI[sha256sum] = "58cd9c469eced558cd81aa3f484b2924e8897049e06889e8ff2510435b7ef74b" PYPI_PACKAGE = "yarl" inherit pypi +RDEPENDS_${PN} = "\ + ${PYTHON_PN}-multidict \ + ${PYTHON_PN}-idna \ +" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-zipp.inc b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-zipp.inc new file mode 100644 index 00000000..5f63852a --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-zipp.inc @@ -0,0 +1,12 @@ +DESCRIPTION = "Backport of pathlib-compatible object wrapper for zip files" +HOMEPAGE = "https://github.com/jaraco/zipp" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://LICENSE;md5=a33f38bbf47d48c70fe0d40e5f77498e" + +SRC_URI[md5sum] = "d4451a749d8a7c3c392a9edd1864a937" +SRC_URI[sha256sum] = "3718b1cbcd963c7d4c5511a8240812904164b7f381b647143a89d3b98f9bcd8e" + +DEPENDS += "${PYTHON_PN}-setuptools-scm-native" +RDEPENDS_${PN} += "${PYTHON_PN}-more-itertools" + +BBCLASSEXTEND = "native nativesdk" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-zipp_0.6.0.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-zipp_0.6.0.bb new file mode 100644 index 00000000..85949a2a --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-zipp_0.6.0.bb @@ -0,0 +1,2 @@ +inherit pypi setuptools +require python-zipp.inc diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-zopeinterface.inc b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-zopeinterface.inc index 7213bc8a..df8f1ff3 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-zopeinterface.inc +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-zopeinterface.inc @@ -2,8 +2,8 @@ SUMMARY = "Interface definitions for Zope products" LICENSE = "ZPL-2.1" LIC_FILES_CHKSUM = "file://PKG-INFO;beginline=8;endline=8;md5=e54fd776274c1b7423ec128974bd9d46" -SRC_URI[md5sum] = "a3b24f9d079bae5e13dd7a88aa512112" -SRC_URI[sha256sum] = "1b3d0dcabc7c90b470e59e38a9acaa361be43b3a6ea644c0063951964717f0e5" +SRC_URI[md5sum] = "1bc66758275c5eb66d169acba3c8e50e" +SRC_URI[sha256sum] = "4bb937e998be9d5e345f486693e477ba79e4344674484001a0b646be1d530487" PYPI_PACKAGE = "zope.interface" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-zopeinterface_4.6.0.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-zopeinterface_4.7.1.bb similarity index 100% rename from Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-zopeinterface_4.6.0.bb rename to Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python-zopeinterface_4.7.1.bb diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-aiofiles_0.4.0.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-aiofiles_0.4.0.bb new file mode 100644 index 00000000..b4d188b2 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-aiofiles_0.4.0.bb @@ -0,0 +1,2 @@ +inherit setuptools3 +require python-aiofiles.inc diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-alembic_1.0.10.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-alembic_1.3.2.bb similarity index 100% rename from Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-alembic_1.0.10.bb rename to Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-alembic_1.3.2.bb diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-apply-defaults_0.1.4.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-apply-defaults_0.1.4.bb new file mode 100644 index 00000000..8d23678a --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-apply-defaults_0.1.4.bb @@ -0,0 +1,15 @@ +SUMMARY = "Apply values to optional params" +HOMEPAGE = "https://github.com/bcb/apply_defaults" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://LICENSE;md5=c89120516900f96f4c60d35fdc4c3f15" + +PYPI_PACKAGE = "apply_defaults" + +SRC_URI[md5sum] = "719abb133f4b46283ebd940fcdf30a78" +SRC_URI[sha256sum] = "1ce26326a61d8773d38a9726a345c6525a91a6120d7333af79ad792dacb6246c" + +inherit pypi setuptools3 + +RDEPENDS_${PN} += "python3-core" + +BBCLASSEXTEND = "native nativesdk" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-asn1crypto_0.24.0.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-asn1crypto_1.3.0.bb similarity index 100% rename from Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-asn1crypto_0.24.0.bb rename to Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-asn1crypto_1.3.0.bb diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-astor_0.7.1.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-astor_0.7.1.bb deleted file mode 100644 index c2dc9245..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-astor_0.7.1.bb +++ /dev/null @@ -1,14 +0,0 @@ -SUMMARY = "Easy manipulation of Python source via the AST." -HOMEPAGE = "https://github.com/berkerpeksag/astor" -SECTION = "devel/python" -LICENSE = "BSD-3-Clause" -LIC_FILES_CHKSUM = "file://LICENSE;md5=561205fdabc3ec52cae2d30815b8ade7" - -SRC_URI = "git://github.com/berkerpeksag/astor.git" -SRCREV ?= "4ca3a26e52f08678854c2841cd0fdf223461e47d" - -inherit setuptools3 - -S = "${WORKDIR}/git" - -BBCLASSEXTEND = "native" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-astor_0.8.1.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-astor_0.8.1.bb new file mode 100644 index 00000000..125a0236 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-astor_0.8.1.bb @@ -0,0 +1,14 @@ +SUMMARY = "Easy manipulation of Python source via the AST." +HOMEPAGE = "https://github.com/berkerpeksag/astor" +SECTION = "devel/python" +LICENSE = "BSD-3-Clause" +LIC_FILES_CHKSUM = "file://LICENSE;md5=561205fdabc3ec52cae2d30815b8ade7" + +SRC_URI = "git://github.com/berkerpeksag/astor.git " +SRCREV ?= "c7553c79f9222e20783fe9bd8a553f932e918072" + +inherit setuptools3 + +S = "${WORKDIR}/git" + +BBCLASSEXTEND = "native" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-astroid_1.6.5.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-astroid_2.3.3.bb similarity index 100% rename from Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-astroid_1.6.5.bb rename to Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-astroid_2.3.3.bb diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-atomicwrites_1.3.0.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-atomicwrites_1.3.0.bb new file mode 100644 index 00000000..9f306e60 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-atomicwrites_1.3.0.bb @@ -0,0 +1,2 @@ +inherit pypi setuptools3 +require python-atomicwrites.inc diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-attrs_19.1.0.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-attrs_19.3.0.bb similarity index 100% rename from Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-attrs_19.1.0.bb rename to Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-attrs_19.3.0.bb diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-automat_0.7.0.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-automat_0.8.0.bb similarity index 100% rename from Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-automat_0.7.0.bb rename to Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-automat_0.8.0.bb diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-aws-iot-device-sdk-python_1.4.0.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-aws-iot-device-sdk-python_1.4.7.bb similarity index 100% rename from Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-aws-iot-device-sdk-python_1.4.0.bb rename to Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-aws-iot-device-sdk-python_1.4.7.bb diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-backports-functools-lru-cache_1.5.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-backports-functools-lru-cache_1.5.bb new file mode 100644 index 00000000..91fcc41f --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-backports-functools-lru-cache_1.5.bb @@ -0,0 +1,2 @@ +require python-backports-functools-lru-cache.inc +inherit setuptools3 diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-bandit_1.5.1.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-bandit_1.5.1.bb deleted file mode 100644 index 3002d5aa..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-bandit_1.5.1.bb +++ /dev/null @@ -1,14 +0,0 @@ -SUMMARY = "Security oriented static analyser for python code." -LICENSE = "Apache-2.0" -LIC_FILES_CHKSUM = "file://LICENSE;md5=1dece7821bf3fd70fe1309eaa37d52a2" - -SRC_URI[md5sum] = "81ba3979ded1b421fa8d69e6faa06dcb" -SRC_URI[sha256sum] = "9413facfe9de1e1bd291d525c784e1beb1a55c9916b51dae12979af63a69ba4c" - -DEPENDS = "python3-pbr-native python3-git python3-pbr python3-pyyaml python3-six python3-stevedore" - -inherit setuptools3 pypi - -RDEPENDS_${PN} += "python3-modules python3-git python3-pbr python3-pyyaml python3-six python3-stevedore" - -BBCLASSEXTEND = "native" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-bandit_1.6.2.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-bandit_1.6.2.bb new file mode 100644 index 00000000..fa28861e --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-bandit_1.6.2.bb @@ -0,0 +1,14 @@ +SUMMARY = "Security oriented static analyser for python code." +LICENSE = "Apache-2.0" +LIC_FILES_CHKSUM = "file://LICENSE;md5=1dece7821bf3fd70fe1309eaa37d52a2" + +SRC_URI[md5sum] = "c6a6772d7afa0af8828b3384e73b7085" +SRC_URI[sha256sum] = "41e75315853507aa145d62a78a2a6c5e3240fe14ee7c601459d0df9418196065" + +DEPENDS = "python3-pbr-native python3-git python3-pbr python3-pyyaml python3-six python3-stevedore" + +inherit setuptools3 pypi + +RDEPENDS_${PN} += "python3-modules python3-git python3-pbr python3-pyyaml python3-six python3-stevedore" + +BBCLASSEXTEND = "native" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-bcrypt_3.1.4.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-bcrypt_3.1.7.bb similarity index 100% rename from Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-bcrypt_3.1.4.bb rename to Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-bcrypt_3.1.7.bb diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-beautifulsoup4_4.7.1.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-beautifulsoup4_4.8.2.bb similarity index 100% rename from Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-beautifulsoup4_4.7.1.bb rename to Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-beautifulsoup4_4.8.2.bb diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-bitarray_0.8.3.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-bitarray_1.2.1.b similarity index 100% rename from Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-bitarray_0.8.3.bb rename to Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-bitarray_1.2.1.b diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-booleanpy_3.7.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-booleanpy_3.7.bb new file mode 100644 index 00000000..5f8602d1 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-booleanpy_3.7.bb @@ -0,0 +1,2 @@ +inherit setuptools3 +require python-booleanpy.inc diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-cachetools_3.1.1.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-cachetools_4.0.0.bb similarity index 100% rename from Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-cachetools_3.1.1.bb rename to Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-cachetools_4.0.0.bb diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-can_2.2.1.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-can_3.3.2.bb similarity index 100% rename from Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-can_2.2.1.bb rename to Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-can_3.3.2.bb diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-certifi_2019.6.16.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-certifi_2019.11.28.bb similarity index 100% rename from Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-certifi_2019.6.16.bb rename to Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-certifi_2019.11.28.bb diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-cffi_1.12.3.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-cffi_1.13.2.bb similarity index 100% rename from Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-cffi_1.12.3.bb rename to Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-cffi_1.13.2.bb diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-cheetah_3.2.4.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-cheetah_3.2.4.bb new file mode 100644 index 00000000..05882d08 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-cheetah_3.2.4.bb @@ -0,0 +1,14 @@ +SUMMARY = "Python template engine and code generation tool" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://LICENSE;md5=15e13a4ed0e5880e3e55ec88b0921181" + +PYPI_PACKAGE = "Cheetah3" +inherit pypi setuptools3 + +RDEPENDS_${PN} = "python3-pickle python3-pprint" +RDEPENDS_${PN}_class-native = "" + +BBCLASSEXTEND = "native nativesdk" + +SRC_URI[md5sum] = "8c0ac643263ffc3454fb321342284d0a" +SRC_URI[sha256sum] = "caabb9c22961a3413ac85cd1e5525ec9ca80daeba6555f4f60802b6c256e252b" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-cmd2_0.9.23.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-cmd2_0.9.23.bb new file mode 100644 index 00000000..f5c5c7e1 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-cmd2_0.9.23.bb @@ -0,0 +1,9 @@ +inherit setuptools3 +require python-cmd2.inc + +RDEPENDS_${PN} += "\ + ${PYTHON_PN}-pyperclip \ + ${PYTHON_PN}-colorama \ + ${PYTHON_PN}-attrs \ + ${PYTHON_PN}-wcwidth \ + " diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-colorama_0.4.1.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-colorama_0.4.1.bb new file mode 100644 index 00000000..9cfca094 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-colorama_0.4.1.bb @@ -0,0 +1,10 @@ +SUMMARY = "Cross-platform colored terminal text." +HOMEPAGE = "https://github.com/tartley/colorama" +LICENSE = "BSD-2-Clause" +LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=b4936429a56a652b84c5c01280dcaa26" + +inherit pypi setuptools3 + +SRC_URI[md5sum] = "f927529cd1735f6f50ee2c61628e9c1f" +SRC_URI[sha256sum] = "05eed71e2e327246ad6b38c540c4a3117230b19679b875190486ddd2d721422d" + diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-coloredlogs_10.0.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-coloredlogs_10.0.bb new file mode 100644 index 00000000..38723996 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-coloredlogs_10.0.bb @@ -0,0 +1,2 @@ +inherit setuptools3 +require python-coloredlogs.inc diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-configargparse_0.15.1.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-configargparse_0.15.1.bb new file mode 100644 index 00000000..698eccf6 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-configargparse_0.15.1.bb @@ -0,0 +1,3 @@ +inherit setuptools3 +require python-configargparse.inc + diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-configparser_3.5.0.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-configparser_3.8.1.bb similarity index 100% rename from Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-configparser_3.5.0.bb rename to Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-configparser_3.8.1.bb diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-contextlib2_0.6.0.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-contextlib2_0.6.0.bb new file mode 100644 index 00000000..1c0b560b --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-contextlib2_0.6.0.bb @@ -0,0 +1,3 @@ +inherit pypi setuptools3 +require python-contextlib2.inc + diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-coverage_4.4.2.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-coverage_4.4.2.bb deleted file mode 100644 index c983e0b5..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-coverage_4.4.2.bb +++ /dev/null @@ -1,10 +0,0 @@ -SUMMARY = "Code coverage measurement for Python" -HOMEPAGE = "https://coverage.readthedocs.io" -LICENSE = "Apache-2.0" -LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=2ee41112a44fe7014dce33e26468ba93" - -SRC_URI[md5sum] = "29a9fe85377e0f7327cf5db1e335483f" -SRC_URI[sha256sum] = "309d91bd7a35063ec7a0e4d75645488bfab3f0b66373e7722f23da7f5b0f34cc" - -inherit pypi setuptools3 - diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-coverage_5.0.2.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-coverage_5.0.2.bb new file mode 100644 index 00000000..9407278e --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-coverage_5.0.2.bb @@ -0,0 +1,10 @@ +SUMMARY = "Code coverage measurement for Python" +HOMEPAGE = "https://coverage.readthedocs.io" +LICENSE = "Apache-2.0" +LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=2ee41112a44fe7014dce33e26468ba93" + +SRC_URI[md5sum] = "876be562bc78deac6fc2a06ee4a6d551" +SRC_URI[sha256sum] = "b251c7092cbb6d789d62dc9c9e7c4fb448c9138b51285c36aeb72462cad3600e" + +inherit pypi setuptools3 + diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-cryptography-vectors_2.7.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-cryptography-vectors_2.8.bb similarity index 100% rename from Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-cryptography-vectors_2.7.bb rename to Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-cryptography-vectors_2.8.bb diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-cryptography_2.7.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-cryptography_2.8.bb similarity index 100% rename from Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-cryptography_2.7.bb rename to Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-cryptography_2.8.bb diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-cython_0.29.10.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-cython_0.29.14.bb similarity index 100% rename from Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-cython_0.29.10.bb rename to Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-cython_0.29.14.bb diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-dateutil_2.8.0.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-dateutil_2.8.1.bb similarity index 100% rename from Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-dateutil_2.8.0.bb rename to Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-dateutil_2.8.1.bb diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-dbus-next_0.1.2.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-dbus-next_0.1.2.bb new file mode 100644 index 00000000..2784013a --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-dbus-next_0.1.2.bb @@ -0,0 +1,13 @@ +SUMMARY = "A zero-dependency DBus library for Python with asyncio support" +HOMEPAGE = "https://github.com/acrisci/python-dbus-next" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://PKG-INFO;md5=b32e18a71bcdd072bce21f204629a104" + +SRC_URI[md5sum] = "df838d695284dd1775860f9691a8663f" +SRC_URI[sha256sum] = "a567d845ceed5feac48dda7faeb9ff2571f9a434a3c32b9b363f763e82368762" + +PYPI_PACKAGE = "dbus_next" + +inherit pypi setuptools3 + +BBCLASSEXTEND = "native nativesdk" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-dbussy_1.2.1.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-dbussy_1.2.1.bb new file mode 100644 index 00000000..ac4b8c2a --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-dbussy_1.2.1.bb @@ -0,0 +1,22 @@ +SUMMARY = "language bindings for libdbus, for Python 3.5 or later" +HOMEPAGE = "https://github.com/ldo/dbussy" +LICENSE = "LGPLv2.1" +LIC_FILES_CHKSUM = "file://COPYING;md5=a916467b91076e631dd8edb7424769c7" + +SRC_URI = "git://github.com/ldo/dbussy.git" + +SRCREV = "d0ec0223f3797e1612d835e71694a1083881149f" + +S = "${WORKDIR}/git" + +inherit distutils3 + +RDEPENDS_${PN} += "\ + python3-asyncio \ + python3-core \ + python3-ctypes \ + python3-xml \ +" + +BBCLASSEXTEND = "native nativesdk" + diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-decorator_4.4.0.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-decorator_4.4.1.bb similarity index 100% rename from Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-decorator_4.4.0.bb rename to Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-decorator_4.4.1.bb diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-defusedxml_0.6.0.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-defusedxml_0.6.0.bb new file mode 100644 index 00000000..d041d0e6 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-defusedxml_0.6.0.bb @@ -0,0 +1,11 @@ +SUMMARY = "XML bomb protection for Python stdlib modules" +DESCRIPTION = "Python package with modified subclasses of all stdlib XML \ +parsers that prevent any potentially malicious operation." + +LICENSE = "PSF" +LIC_FILES_CHKSUM = "file://LICENSE;md5=056fea6a4b395a24d0d278bf5c80249e" + +SRC_URI[md5sum] = "a59741f675c4cba649de40a99f732897" +SRC_URI[sha256sum] = "f684034d135af4c6cbb949b8a4d2ed61634515257a67299e5f940fbaa34377f5" + +inherit pypi setuptools3 diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-django_1.11.14.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-django_1.11.14.bb deleted file mode 100644 index e1e38c32..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-django_1.11.14.bb +++ /dev/null @@ -1,2 +0,0 @@ -require python-django.inc -inherit setuptools3 diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-django_2.2.7.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-django_2.2.7.bb new file mode 100644 index 00000000..e56453ab --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-django_2.2.7.bb @@ -0,0 +1,9 @@ +require python-django.inc +inherit setuptools3 + +SRC_URI[md5sum] = "b0833024aac4c8240467e4dc91a12e9b" +SRC_URI[sha256sum] = "16040e1288c6c9f68c6da2fe75ebde83c0a158f6f5d54f4c5177b0c1478c5b86" + +RDEPENDS_${PN} += "\ + ${PYTHON_PN}-sqlparse \ +" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-dnspython_1.15.0.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-dnspython_1.16.0.bb similarity index 100% rename from Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-dnspython_1.15.0.bb rename to Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-dnspython_1.16.0.bb diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-docutils_0.15.2.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-docutils_0.15.2.bb new file mode 100644 index 00000000..321f5557 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-docutils_0.15.2.bb @@ -0,0 +1,15 @@ +SUMMARY = "Text processing system for documentation" +HOMEPAGE = "http://docutils.sourceforge.net" +SECTION = "devel/python" +LICENSE = "PSF & BSD-2-Clause & GPLv3" +LIC_FILES_CHKSUM = "file://COPYING.txt;md5=7a4646907ab9083c826280b19e103106" + +inherit pypi setuptools3 + +PYPI_PACKAGE = "docutils" + +SRC_URI[md5sum] = "e26a308d8000b0bed7416a633217c676" +SRC_URI[sha256sum] = "a2aeea129088da402665e92e0b25b04b073c04b2dce4ab65caaa38b7ce2e1a99" + +BBCLASSEXTEND = "native" + diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-dominate_2.3.1.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-dominate_2.4.0.bb similarity index 100% rename from Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-dominate_2.3.1.bb rename to Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-dominate_2.4.0.bb diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-dt-schema_git.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-dt-schema_git.bb new file mode 100644 index 00000000..06a9012c --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-dt-schema_git.bb @@ -0,0 +1,15 @@ +SUMMARY = "Tooling for devicetree validation using YAML and jsonschema" +AUTHOR = "Rob Herring" + +LICENSE = "BSD-2-Clause" +LIC_FILES_CHKSUM = "file://setup.py;beginline=2;endline=3;md5=c795d4924c5f739424fa8d9b569c6659" + +inherit setuptools3 + +SRC_URI = "git://github.com/robherring/dt-schema.git" +SRCREV = "5009e47c1c76e48871f5988e08dad61f3c91196b" +PV = "0.1+git${SRCPV}" + +S = "${WORKDIR}/git" + +RDEPENDS_${PN} = "python3-jsonschema python3-ruamel-yaml" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-engineio_3.5.0.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-engineio_3.11.2.bb similarity index 100% rename from Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-engineio_3.5.0.bb rename to Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-engineio_3.11.2.bb diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-evdev_0.7.0.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-evdev_1.2.0.bb similarity index 100% rename from Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-evdev_0.7.0.bb rename to Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-evdev_1.2.0.bb diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-fasteners_0.15.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-fasteners_0.15.bb new file mode 100644 index 00000000..8786a148 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-fasteners_0.15.bb @@ -0,0 +1,9 @@ +SUMMARY = "A python package that provides useful locks." +HOMEPAGE = "https://github.com/harlowja/fasteners" +LICENSE = "Apache-2.0" +LIC_FILES_CHKSUM = "file://LICENSE;md5=4476c4be31402271e101d9a4a3430d52" + +SRC_URI[md5sum] = "440f8ab461c8fed941355860d8669556" +SRC_URI[sha256sum] = "3a176da6b70df9bb88498e1a18a9e4a8579ed5b9141207762368a1017bf8f5ef" + +inherit pypi setuptools3 diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-flask-babel_0.11.2.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-flask-babel_0.12.2.bb similarity index 100% rename from Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-flask-babel_0.11.2.bb rename to Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-flask-babel_0.12.2.bb diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-flask-migrate_2.2.1.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-flask-migrate_2.5.2.bb similarity index 100% rename from Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-flask-migrate_2.2.1.bb rename to Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-flask-migrate_2.5.2.bb diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-flask-pymongo_0.5.1.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-flask-pymongo_2.3.0.bb similarity index 100% rename from Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-flask-pymongo_0.5.1.bb rename to Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-flask-pymongo_2.3.0.bb diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-flask-restful_0.3.6.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-flask-restful_0.3.7.bb similarity index 100% rename from Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-flask-restful_0.3.6.bb rename to Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-flask-restful_0.3.7.bb diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-flask-socketio_3.3.2.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-flask-socketio_4.2.1.bb similarity index 100% rename from Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-flask-socketio_3.3.2.bb rename to Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-flask-socketio_4.2.1.bb diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-flask-sqlalchemy_2.3.2.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-flask-sqlalchemy_2.4.1.bb similarity index 100% rename from Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-flask-sqlalchemy_2.3.2.bb rename to Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-flask-sqlalchemy_2.4.1.bb diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-flask_1.0.2.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-flask_1.1.1.bb similarity index 100% rename from Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-flask_1.0.2.bb rename to Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-flask_1.1.1.bb diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-future_0.16.0.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-future_0.18.2.bb similarity index 100% rename from Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-future_0.16.0.bb rename to Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-future_0.18.2.bb diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-gmqtt_0.4.4.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-gmqtt_0.4.4.bb new file mode 100644 index 00000000..ff89087a --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-gmqtt_0.4.4.bb @@ -0,0 +1,21 @@ +SUMMARY = "Client for MQTT protocol" +HOMEPAGE = "https://github.com/wialon/gmqtt" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://LICENSE;md5=903f1792621a3b35ee546da75d139177" + +SRC_URI[md5sum] = "af3a2c6c2f8e3c934b31159ffdce5fd6" +SRC_URI[sha256sum] = "b96bca8a54b8af057d4cc42a79f9e2b40cdbb5a2bfebbc5f05ee35575d3e3089" + +inherit pypi setuptools3 + +RDEPENDS_${PN} += "\ + python3-asyncio \ + python3-core \ + python3-datetime \ + python3-json \ + python3-logging \ + python3-netclient \ + python3-typing \ +" + +BBCLASSEXTEND = "native nativesdk" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-google-api-python-client_1.7.11.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-google-api-python-client_1.7.11.bb new file mode 100644 index 00000000..25e3b9c3 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-google-api-python-client_1.7.11.bb @@ -0,0 +1,9 @@ +SUMMARY = "The Google API Client for Python is a client library for accessing the Plus, Moderator, and many other Google APIs." +HOMEPAGE = "https://github.com/googleapis/google-api-python-client" +LICENSE = "Apache-2.0" +LIC_FILES_CHKSUM = "file://LICENSE;md5=94023d14f6b58272fd885e4e3f2f08b3" + +SRC_URI[md5sum] = "6e28e8caf2e4d55ed5b7c48a538a61c9" +SRC_URI[sha256sum] = "a8a88174f66d92aed7ebbd73744c2c319b4b1ce828e565f9ec721352d2e2fb8c" + +inherit pypi setuptools3 diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-h5py_2.9.0.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-h5py_2.9.0.bb index bca7757a..7822e463 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-h5py_2.9.0.bb +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-h5py_2.9.0.bb @@ -1,7 +1,7 @@ SUMMARY = "Provides both a high- and low-level interface to the HDF5 library from Python. " HOMEPAGE = "https://www.h5py.org/" SECTION = "devel/python" -LICENSE = "BSD" +LICENSE = "BSD-3-Clause" LIC_FILES_CHKSUM = "file://setup.py;beginline=107;endline=107;md5=795ecad0d261c998cc526c84a822dff6" SRC_URI = "git://github.com/h5py/h5py.git \ diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-html2text_2019.8.11.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-html2text_2019.8.11.bb new file mode 100644 index 00000000..9cb5b01e --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-html2text_2019.8.11.bb @@ -0,0 +1,2 @@ +inherit setuptools3 +require python-html2text.inc diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-humanfriendly_4.18.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-humanfriendly_4.18.bb new file mode 100644 index 00000000..2ca5fe36 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-humanfriendly_4.18.bb @@ -0,0 +1,2 @@ +inherit setuptools3 +require python-humanfriendly.inc diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-importlib-metadata_0.23.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-importlib-metadata_0.23.bb new file mode 100644 index 00000000..8a971dac --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-importlib-metadata_0.23.bb @@ -0,0 +1,5 @@ +inherit pypi setuptools3 +require python-importlib-metadata.inc + +RDEPENDS_${PN}_append_class-target = " python3-misc" +RDEPENDS_${PN}_append_class-nativesdk = " python3-misc" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-intervals_1.5.4.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-intervals_1.10.0.bb similarity index 100% rename from Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-intervals_1.5.4.bb rename to Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-intervals_1.10.0.bb diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-ipaddress_1.0.23.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-ipaddress_1.0.23.bb new file mode 100644 index 00000000..77e97871 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-ipaddress_1.0.23.bb @@ -0,0 +1,2 @@ +inherit setuptools3 +require python-ipaddress.inc diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-ipy_1.00.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-ipy_1.00.bb new file mode 100644 index 00000000..ea6a1055 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-ipy_1.00.bb @@ -0,0 +1,2 @@ +inherit setuptools3 +require python-ipy.inc diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-isort_4.3.4.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-isort_4.3.21.bb similarity index 100% rename from Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-isort_4.3.4.bb rename to Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-isort_4.3.21.bb diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-itsdangerous_0.24.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-itsdangerous_1.1.0.bb similarity index 100% rename from Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-itsdangerous_0.24.bb rename to Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-itsdangerous_1.1.0.bb diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-javaobj-py3_0.2.4.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-javaobj-py3_0.4.0.1.bb similarity index 100% rename from Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-javaobj-py3_0.2.4.bb rename to Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-javaobj-py3_0.4.0.1.bb diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-jinja2_2.10.1.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-jinja2_2.10.1.bb deleted file mode 100644 index 61156b63..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-jinja2_2.10.1.bb +++ /dev/null @@ -1,2 +0,0 @@ -inherit pypi setuptools3 -require python-jinja2.inc diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-jinja2_2.10.3.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-jinja2_2.10.3.bb new file mode 100644 index 00000000..284f5f58 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-jinja2_2.10.3.bb @@ -0,0 +1,4 @@ +inherit pypi setuptools3 +require python-jinja2.inc + +RDEPENDS_${PN} += "${PYTHON_PN}-asyncio" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-jsonpatch_1.23.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-jsonpatch_1.24.bb similarity index 100% rename from Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-jsonpatch_1.23.bb rename to Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-jsonpatch_1.24.bb diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-jsonrpcserver_4.1.2.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-jsonrpcserver_4.1.2.bb new file mode 100644 index 00000000..e23720c3 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-jsonrpcserver_4.1.2.bb @@ -0,0 +1,24 @@ +SUMMARY = "Library to process JSON-RPC requests" +HOMEPAGE = "https://github.com/bcb/jsonrpcserver" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://LICENSE;md5=c89120516900f96f4c60d35fdc4c3f15" + +SRC_URI[md5sum] = "fd4091bc19eb18579c15b97af70714eb" +SRC_URI[sha256sum] = "73db55d1cf245ebdfb96ca05c4cce01c51b61be845a2a981f539ea1e6a4e0c4a" + +inherit pypi setuptools3 + +RDEPENDS_${PN} += "\ + python3-apply-defaults \ + python3-asyncio \ + python3-core \ + python3-json \ + python3-jsonschema \ + python3-logging \ + python3-netclient \ + python3-pkgutil \ + python3-typing \ +" + +BBCLASSEXTEND = "native nativesdk" + diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-jsonschema_2.6.0.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-jsonschema_3.2.0.bb similarity index 100% rename from Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-jsonschema_2.6.0.bb rename to Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-jsonschema_3.2.0.bb diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-kconfiglib_10.42.0.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-kconfiglib_10.42.0.bb deleted file mode 100644 index 10b039a7..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-kconfiglib_10.42.0.bb +++ /dev/null @@ -1,2 +0,0 @@ -require python-kconfiglib-${PV}.inc -inherit pypi setuptools3 diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-kconfiglib_13.7.0.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-kconfiglib_13.7.0.bb new file mode 100644 index 00000000..ab0944ff --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-kconfiglib_13.7.0.bb @@ -0,0 +1,2 @@ +require python-kconfiglib.inc +inherit pypi setuptools3 diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-keras-applications_1.0.6.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-keras-applications_1.0.6.bb deleted file mode 100644 index d38b992d..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-keras-applications_1.0.6.bb +++ /dev/null @@ -1,19 +0,0 @@ -SUMMARY = "Reference implementations of popular deep learning models" -HOMEPAGE = "https://github.com/keras-team/keras-applications" -SECTION = "devel/python" -LICENSE = "MIT" -LIC_FILES_CHKSUM = "file://LICENSE;md5=366e2fd3c9714f162d3663b6f97cfe41" - -SRC_URI = "git://github.com/keras-team/keras-applications.git" -SRCREV ?= "61de21815728aa66377ebb2a7b4c2f5492a34dd2" - - -inherit setuptools3 - -S = "${WORKDIR}/git" - -BBCLASSEXTEND = "native" - -RDEPENDS_${PN} = "python3-numpy \ - python3-h5py \ - " diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-keras-applications_1.0.8.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-keras-applications_1.0.8.bb new file mode 100644 index 00000000..4293a63c --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-keras-applications_1.0.8.bb @@ -0,0 +1,19 @@ +SUMMARY = "Reference implementations of popular deep learning models" +HOMEPAGE = "https://github.com/keras-team/keras-applications" +SECTION = "devel/python" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://LICENSE;md5=366e2fd3c9714f162d3663b6f97cfe41" + +SRC_URI = "git://github.com/keras-team/keras-applications.git" +SRCREV ?= "3b180cb10eda683dda7913ecee2e6487288d292d" + + +inherit setuptools3 + +S = "${WORKDIR}/git" + +BBCLASSEXTEND = "native" + +RDEPENDS_${PN} = "python3-numpy \ + python3-h5py \ + " diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-keras-preprocessing_1.0.5.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-keras-preprocessing_1.0.5.bb deleted file mode 100644 index 58b8c624..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-keras-preprocessing_1.0.5.bb +++ /dev/null @@ -1,15 +0,0 @@ -SUMMARY = "Easy data preprocessing and data augmentation for deep learning models" -HOMEPAGE = "https://github.com/keras-team/keras-preprocessing" -SECTION = "devel/python" -LICENSE = "MIT" -LIC_FILES_CHKSUM = "file://LICENSE;md5=1744b320500cc2e3112964d00cce7aa4" - -SRC_URI = "git://github.com/keras-team/keras-preprocessing.git" -SRCREV ?= "362fe9f8daf556151328eb5d02bd5ae638c653b8" - -inherit setuptools3 - -S = "${WORKDIR}/git" - -BBCLASSEXTEND = "native" - diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-keras-preprocessing_1.1.0.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-keras-preprocessing_1.1.0.bb new file mode 100644 index 00000000..eacb3402 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-keras-preprocessing_1.1.0.bb @@ -0,0 +1,15 @@ +SUMMARY = "Easy data preprocessing and data augmentation for deep learning models" +HOMEPAGE = "https://github.com/keras-team/keras-preprocessing" +SECTION = "devel/python" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://LICENSE;md5=1744b320500cc2e3112964d00cce7aa4" + +SRC_URI = "git://github.com/keras-team/keras-preprocessing.git" +SRCREV ?= "ff90696c0416b74344b91df097b228e694339b88" + +inherit setuptools3 + +S = "${WORKDIR}/git" + +BBCLASSEXTEND = "native" + diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-lazy-object-proxy_1.3.1.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-lazy-object-proxy_1.4.3.bb similarity index 100% rename from Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-lazy-object-proxy_1.3.1.bb rename to Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-lazy-object-proxy_1.4.3.bb diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-license-expression_1.0.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-license-expression_1.0.bb new file mode 100644 index 00000000..10a702ca --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-license-expression_1.0.bb @@ -0,0 +1,2 @@ +inherit setuptools3 +require python-license-expression.inc diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-lrparsing_1.0.16.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-lrparsing_1.0.16.bb new file mode 100644 index 00000000..21a80cde --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-lrparsing_1.0.16.bb @@ -0,0 +1,2 @@ +inherit setuptools3 +require python-lrparsing.inc diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-lxml_4.3.4.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-lxml_4.4.2.bb similarity index 100% rename from Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-lxml_4.3.4.bb rename to Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-lxml_4.4.2.bb diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-markdown_3.0.1.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-markdown_3.0.1.bb index b6d2f18c..68cd723a 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-markdown_3.0.1.bb +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-markdown_3.0.1.bb @@ -1,5 +1,5 @@ SUMMARY = "A Python implementation of John Gruber's Markdown." -LICENSE = "BSD" +LICENSE = "BSD-3-Clause" LIC_FILES_CHKSUM = "file://LICENSE.md;md5=745aaad0c69c60039e638bff9ffc59ed" inherit pypi setuptools3 diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-markupsafe_1.0.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-markupsafe_1.1.1.bb similarity index 100% rename from Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-markupsafe_1.0.bb rename to Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-markupsafe_1.1.1.bb diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-matplotlib_3.1.1.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-matplotlib_3.1.1.bb new file mode 100644 index 00000000..9b86ccc8 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-matplotlib_3.1.1.bb @@ -0,0 +1,17 @@ +SUMMARY = "matplotlib: plotting with Python" +DESCRIPTION = "\ +Matplotlib is a Python 2D plotting library which produces \ +publication-quality figures in a variety of hardcopy formats \ +and interactive environments across platforms." +HOMEPAGE = "https://github.com/matplotlib/matplotlib" +LICENSE = "BSD-2-Clause" +LIC_FILES_CHKSUM = "file://LICENSE/LICENSE;md5=afec61498aa5f0c45936687da9a53d74" + +DEPENDS = "python3-numpy-native python3-numpy freetype libpng python3-dateutil python3-pytz" +RDEPENDS_${PN} = "python3-numpy freetype libpng python3-dateutil python3-pytz" + +SRC_URI[md5sum] = "f894af5564a588e880644123237251b7" +SRC_URI[sha256sum] = "1febd22afe1489b13c6749ea059d392c03261b2950d1d45c17e3aed812080c93" + +PYPI_PACKAGE = "matplotlib" +inherit pypi setuptools3 diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-monotonic_1.5.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-monotonic_1.5.bb new file mode 100644 index 00000000..94b90524 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-monotonic_1.5.bb @@ -0,0 +1,9 @@ +SUMMARY = "This module provides a monotonic() function which returns the value (in fractional seconds) of a clock which never goes backwards." +HOMEPAGE = "https://github.com/atdt/monotonic" +LICENSE = "Apache-2.0" +LIC_FILES_CHKSUM = "file://LICENSE;md5=d2794c0df5b907fdace235a619d80314" + +SRC_URI[md5sum] = "9f81cb0e5966479754453dea2b6822f4" +SRC_URI[sha256sum] = "23953d55076df038541e648a53676fb24980f7a1be290cdda21300b3bc21dfb0" + +inherit pypi setuptools3 diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-more-itertools_8.1.0.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-more-itertools_8.1.0.bb new file mode 100644 index 00000000..9a09c10b --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-more-itertools_8.1.0.bb @@ -0,0 +1,5 @@ +inherit pypi setuptools3 +require python-more-itertools.inc + +SRC_URI[md5sum] = "a552b06cec1bdf01d60f952dbcc9a021" +SRC_URI[sha256sum] = "c468adec578380b6281a114cb8a5db34eb1116277da92d7c46f904f0b52d3288" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-msgpack_0.6.1.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-msgpack_0.6.2.bb similarity index 100% rename from Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-msgpack_0.6.1.bb rename to Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-msgpack_0.6.2.bb diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-msk_0.3.13.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-msk_0.3.13.bb new file mode 100644 index 00000000..3f2aaf48 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-msk_0.3.13.bb @@ -0,0 +1,11 @@ +SUMMARY = "A tool to help with creating, uploading, and upgrading Mycroft skills on the skills repo." +HOMEPAGE = "https://github.com/MycroftAI/mycroft-skills-kit" +LICENSE = "Apache-2.0" +LIC_FILES_CHKSUM = "file://README.md;md5=2f90e43663eddf1c33087419fbb35e28" + +SRC_URI[md5sum] = "11d9fc865ef627efe68f25fc113974e8" +SRC_URI[sha256sum] = "55be86ff2cd0087016759f2b15b40861cda2a8d8a8d0c669fdacdf32a77a10da" + +inherit pypi setuptools3 + +RDEPENDS_${PN} += "python3-git" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-msm_0.8.3.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-msm_0.8.3.bb new file mode 100644 index 00000000..24e1ccb3 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-msm_0.8.3.bb @@ -0,0 +1,20 @@ +SUMMARY = "Mycroft Skill Manager, in python!" +HOMEPAGE = "https://github.com/MycroftAI/mycroft-skills-manager" +LICENSE = "Apache-2.0" +LIC_FILES_CHKSUM = "file://LICENSE;md5=e23fadd6ceef8c618fc1c65191d846fa" + +SRC_URI[md5sum] = "d5f580c58389b337f5577cb92f36e788" +SRC_URI[sha256sum] = "c201785997f3b766ec376a89bbb3367889ac542183ca26733ffe002bb94917b4" + +inherit pypi setuptools3 + +RDEPENDS_${PN} += "\ + python3-pako \ + python3-monotonic \ + python3-appdirs \ +" + +do_install_append() { + # Stop this from being installed + rm -rf ${D}/usr/share +} diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-multidict_3.3.2.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-multidict_3.3.2.bb deleted file mode 100644 index e65d7d4f..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-multidict_3.3.2.bb +++ /dev/null @@ -1,13 +0,0 @@ -SUMMARY = "Multidicts are useful for working with HTTP headers, URL query args etc." -HOMEPAGE = "https://github.com/aio-libs/multidict/" -LICENSE = "Apache-2.0" -LIC_FILES_CHKSUM = "file://LICENSE;md5=e74c98abe0de8f798ca609137f9cef4a" - -inherit pypi setuptools3 - -SRC_URI[md5sum] = "06ca91d993de2d04c7ee6df0cbb44ea2" -SRC_URI[sha256sum] = "f82e61c7408ed0dce1862100db55595481911f159d6ddec0b375d35b6449509b" - -# Work-around for broken make clean. Note this is fixed in v4.0.0. -# https://github.com/aio-libs/multidict/issues/194 -CLEANBROKEN = "1" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-multidict_4.7.4.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-multidict_4.7.4.bb new file mode 100644 index 00000000..f16a7be7 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-multidict_4.7.4.bb @@ -0,0 +1,9 @@ +SUMMARY = "Multidicts are useful for working with HTTP headers, URL query args etc." +HOMEPAGE = "https://github.com/aio-libs/multidict/" +LICENSE = "Apache-2.0" +LIC_FILES_CHKSUM = "file://LICENSE;md5=e74c98abe0de8f798ca609137f9cef4a" + +inherit pypi setuptools3 + +SRC_URI[md5sum] = "22b46f759cf2cc3ca1d2c9f82cc9bb79" +SRC_URI[sha256sum] = "d7d428488c67b09b26928950a395e41cc72bb9c3d5abfe9f0521940ee4f796d4" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-netifaces_0.10.9.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-netifaces_0.10.9.bb new file mode 100644 index 00000000..69d5c674 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-netifaces_0.10.9.bb @@ -0,0 +1,2 @@ +require python-netifaces.inc +inherit setuptools3 diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-networkx_2.3.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-networkx_2.3.bb new file mode 100644 index 00000000..8feb6daa --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-networkx_2.3.bb @@ -0,0 +1,8 @@ +require python-networkx.inc + +LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=b68290ee1026b204170a23bbdb27a4fd" + +SRC_URI[md5sum] = "320d3f6c7872732baa63cedafddadea9" +SRC_URI[sha256sum] = "8311ddef63cf5c5c5e7c1d0212dd141d9a1fe3f474915281b73597ed5f1d4e3d" + +inherit setuptools3 diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-ordered-set_3.0.1.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-ordered-set_3.0.1.bb deleted file mode 100644 index 662d3eeb..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-ordered-set_3.0.1.bb +++ /dev/null @@ -1,11 +0,0 @@ -SUMMARY = "A MutableSet that remembers its order, so that every entry has an index." -HOMEPAGE = "http://github.com/LuminosoInsight/ordered-set" -LICENSE = "MIT" -LIC_FILES_CHKSUM = "file://MIT-LICENSE;md5=2b36be0d99854aa2ae292a800a7c1d4e" - -SRC_URI[md5sum] = "a8059c7b99cde0f8dda01ddee6b43c2c" -SRC_URI[sha256sum] = "3d6fd7bffbb15f613a9e8a6281bf97c2d67f7bb8677deca8249df2fbdd9cce7b" - -inherit pypi setuptools3 - -DEPENDS += "python3-pytest-runner-native" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-ordered-set_3.1.1.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-ordered-set_3.1.1.bb new file mode 100644 index 00000000..013a2e75 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-ordered-set_3.1.1.bb @@ -0,0 +1,11 @@ +SUMMARY = "A MutableSet that remembers its order, so that every entry has an index." +HOMEPAGE = "http://github.com/LuminosoInsight/ordered-set" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://MIT-LICENSE;md5=2b36be0d99854aa2ae292a800a7c1d4e" + +SRC_URI[md5sum] = "6e12312c8dc4c90fe840e86e8a352644" +SRC_URI[sha256sum] = "a7bfa858748c73b096e43db14eb23e2bc714a503f990c89fac8fab9b0ee79724" + +inherit pypi setuptools3 + +DEPENDS += "python3-pytest-runner-native" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-packaging_20.0.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-packaging_20.0.bb new file mode 100644 index 00000000..aa20fb26 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-packaging_20.0.bb @@ -0,0 +1,2 @@ +inherit pypi setuptools3 +require python-packaging.inc diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-padaos_0.1.10.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-padaos_0.1.10.bb new file mode 100644 index 00000000..f506a786 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-padaos_0.1.10.bb @@ -0,0 +1,9 @@ +SUMMARY = "A rigid, lightweight, dead-simple intent parser" +HOMEPAGE = "https://github.com/MycroftAI/padaos" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://README.md;md5=b51c3e8e53a7cd95c13c5aab6cbc8e67" + +SRC_URI[md5sum] = "dbf852015ef87a6694549779fb475b52" +SRC_URI[sha256sum] = "2ac05fcbc826873c574568aa5ce09945d6ea987bee10399e766eb8f7c6356d72" + +inherit pypi setuptools3 diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-padatious_0.4.7.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-padatious_0.4.7.bb new file mode 100644 index 00000000..4abe7c74 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-padatious_0.4.7.bb @@ -0,0 +1,9 @@ +SUMMARY = "An efficient and agile neural network intent parser. Padatious is a core component of Mycroft AI." +HOMEPAGE = "https://github.com/MycroftAI/padatious" +LICENSE = "Apache-2.0" +LIC_FILES_CHKSUM = "file://README.md;md5=77baec496a458dd0e0fc4ca64cd305bc" + +SRC_URI[md5sum] = "1f53967a1633baa8fd48f11139808a33" +SRC_URI[sha256sum] = "3c235942ff4151a3c36536fd776bd8a6d4d57c97046723d2fa80a89b34faac1f" + +inherit pypi setuptools3 diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-paho-mqtt_1.4.0.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-paho-mqtt_1.5.0.bb similarity index 100% rename from Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-paho-mqtt_1.4.0.bb rename to Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-paho-mqtt_1.5.0.bb diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-pako_0.2.3.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-pako_0.2.3.bb new file mode 100644 index 00000000..21c48fca --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-pako_0.2.3.bb @@ -0,0 +1,13 @@ +SUMMARY = "The universal package manager library" +HOMEPAGE = "https://github.com/MycroftAI/pako" +LICENSE = "Apache-2.0" +LIC_FILES_CHKSUM = "file://LICENSE;md5=e23fadd6ceef8c618fc1c65191d846fa" + +SRC_URI[md5sum] = "8eb7077075091c50e4b8a9f939607277" +SRC_URI[sha256sum] = "6be55fd8c5a2a6f02974f37438c1c47a3d9e764ce81c9d0a1a8c9a1815a59778" + +inherit pypi setuptools3 + +do_install_append() { + rm -rf ${D}/usr/share +} diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-parse_1.8.4.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-parse_1.14.0.bb similarity index 100% rename from Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-parse_1.8.4.bb rename to Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-parse_1.14.0.bb diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-passlib_1.7.1.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-passlib_1.7.2.bb similarity index 100% rename from Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-passlib_1.7.1.bb rename to Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-passlib_1.7.2.bb diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-pathlib2_2.3.5.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-pathlib2_2.3.5.bb new file mode 100644 index 00000000..66f71e57 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-pathlib2_2.3.5.bb @@ -0,0 +1,2 @@ +inherit pypi setuptools3 +require python-pathlib2.inc diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-periphery_1.1.1.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-periphery_1.1.1.bb deleted file mode 100644 index ba9a95db..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-periphery_1.1.1.bb +++ /dev/null @@ -1,4 +0,0 @@ -inherit pypi setuptools3 -require python-periphery.inc - -SRC_URI[sha256sum] = "fe8f351934edce72cd919b4eb070878ebff551db5e21aea61e0f446101f0a79f" \ No newline at end of file diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-periphery_2.0.1.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-periphery_2.0.1.bb new file mode 100644 index 00000000..e9944274 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-periphery_2.0.1.bb @@ -0,0 +1,5 @@ +inherit pypi setuptools3 +require python-periphery.inc + +SRC_URI[md5sum] = "1d958f02575d4a19734ee2dd92336157" +SRC_URI[sha256sum] = "5da4d5f40ff8974cf6c724587baa674d7e0593f07b6f6ee896104f11c1be18ec" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-petact_0.1.2.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-petact_0.1.2.bb new file mode 100644 index 00000000..58cd05e2 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-petact_0.1.2.bb @@ -0,0 +1,9 @@ +SUMMARY = "Petact is a library used for installing and updating compressed tar files" +HOMEPAGE = "https://github.com/matthewscholefield/petact" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://README.md;md5=c8533d4ba77519398cdae0173db799a1" + +SRC_URI[md5sum] = "47e9a6abc91b4022953e4007ddae9e68" +SRC_URI[sha256sum] = "5dcb0d44f86a601e41a2def9770993cd0ea45c76d37eb3f35e3dd61aa50350e6" + +inherit pypi setuptools3 diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-pexpect_4.6.0.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-pexpect_4.7.0.bb similarity index 100% rename from Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-pexpect_4.6.0.bb rename to Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-pexpect_4.7.0.bb diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-pid/0001-remove-requirement-of-nose.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-pid/0001-remove-requirement-of-nose.patch deleted file mode 100644 index 3beef070..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-pid/0001-remove-requirement-of-nose.patch +++ /dev/null @@ -1,29 +0,0 @@ -From 04d04a8fa1ef3d8dbdaebbaac9ae936e1c8234c1 Mon Sep 17 00:00:00 2001 -From: Hongxu Jia -Date: Wed, 28 Jun 2017 21:17:43 -0400 -Subject: [PATCH] remove requirement of nose - -The nose extends unittest to make testing easier. -Do not need the test suite, so remove requirement of nose. - -Upstream-Status: Inappropriate [oe specific] - -Signed-off-by: Hongxu Jia ---- - setup.py | 2 -- - 1 file changed, 2 deletions(-) - -diff --git a/setup.py b/setup.py -index 3f7c7cb..c42a546 100644 ---- a/setup.py -+++ b/setup.py -@@ -53,6 +53,4 @@ setup( - keywords='pid pidfile context manager decorator', - packages=["pid"], - install_requires=[], -- test_suite='nose.collector', -- setup_requires=['nose>=1.0'], - ) --- -2.8.1 - diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-pid_2.2.0.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-pid_2.2.0.bb deleted file mode 100644 index e4383198..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-pid_2.2.0.bb +++ /dev/null @@ -1,14 +0,0 @@ -SUMMARY = "Pidfile featuring stale detection and file-locking, can also \ -be used as context-manager or decorator" -HOMEPAGE = "https://github.com/trbs/pid/" -LICENSE = "Apache-2.0" -LIC_FILES_CHKSUM = "file://LICENSE;md5=83d53cbd3105063f20305bc313464e29" - -SRC_URI[md5sum] = "04d30308013d16aa882b3806feda8ab2" -SRC_URI[sha256sum] = "d8bb2ceec21a4ae84be6e9d320db1f56934b30e676e31c6f098ca7218b3d67d4" - -inherit pypi setuptools3 - -SRC_URI += " \ - file://0001-remove-requirement-of-nose.patch \ -" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-pid_2.2.5.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-pid_2.2.5.bb new file mode 100644 index 00000000..b8dd0d74 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-pid_2.2.5.bb @@ -0,0 +1,10 @@ +SUMMARY = "Pidfile featuring stale detection and file-locking, can also \ +be used as context-manager or decorator" +HOMEPAGE = "https://github.com/trbs/pid/" +LICENSE = "Apache-2.0" +LIC_FILES_CHKSUM = "file://LICENSE;md5=83d53cbd3105063f20305bc313464e29" + +SRC_URI[md5sum] = "ad352ee1dc28b9746a15451c0c53e9d7" +SRC_URI[sha256sum] = "96eb7dba326b88f5164bc1afdc986c7793e0d32d7f62366256a3903c7b0614ef" + +inherit pypi setuptools3 diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-pika_1.1.0.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-pika_1.1.0.bb new file mode 100644 index 00000000..a1515881 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-pika_1.1.0.bb @@ -0,0 +1,2 @@ +inherit setuptools3 +require python-pika.inc diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-pillow/0001-explicitly-set-compile-options.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-pillow/0001-explicitly-set-compile-options.patch index de89ba00..35aee421 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-pillow/0001-explicitly-set-compile-options.patch +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-pillow/0001-explicitly-set-compile-options.patch @@ -1,4 +1,4 @@ -From 52879439f2976662140b76951f43f16e1d5ef08e Mon Sep 17 00:00:00 2001 +From 862a981ce462cd83a99e3db9faeeda1f8c64983f Mon Sep 17 00:00:00 2001 From: Hongxu Jia Date: Mon, 18 Mar 2019 23:23:55 -0400 Subject: [PATCH] explicitly set compile options @@ -10,18 +10,19 @@ explicitly set build_ext options for oe-core's Upstream-Status: Inappropriate [oe specific] Signed-off-by: Hongxu Jia + --- setup.cfg | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/setup.cfg b/setup.cfg -index 95900ff..27da313 100644 +index 1c6ebc84..1ccc3d69 100644 --- a/setup.cfg +++ b/setup.cfg -@@ -9,3 +9,15 @@ addopts = -vx Tests +@@ -13,3 +13,15 @@ multi_line_output = 3 - [flake8] - max-line-length = 88 + [tool:pytest] + addopts = -rs + +[build_ext] +disable-platform-guessing = 1 @@ -34,6 +35,3 @@ index 95900ff..27da313 100644 +disable-webp = 1 +disable-webpmux = 1 +disable-imagequant = 1 --- -2.8.1 - diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-pillow/0001-support-cross-compiling.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-pillow/0001-support-cross-compiling.patch index e8629342..6de19ad8 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-pillow/0001-support-cross-compiling.patch +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-pillow/0001-support-cross-compiling.patch @@ -1,4 +1,4 @@ -From a78411402c824668283beb94db4bf7e206a4cf60 Mon Sep 17 00:00:00 2001 +From ae7c8d0336381dd4c10e809e9c8926f9deeafeb8 Mon Sep 17 00:00:00 2001 From: Hongxu Jia Date: Thu, 14 Mar 2019 03:48:10 -0400 Subject: [PATCH] support cross compiling @@ -11,29 +11,29 @@ Signed-off-by: Hongxu Jia 1 file changed, 3 insertions(+), 10 deletions(-) diff --git a/setup.py b/setup.py -index 79f912b..37e5827 100755 +index 5ceae344..07863340 100755 --- a/setup.py +++ b/setup.py -@@ -50,7 +50,7 @@ _LIB_IMAGING = ( - "ZipEncode", "TiffDecode", "Jpeg2KDecode", "Jpeg2KEncode", "BoxBlur", - "QuantPngQuant", "codec_fd") +@@ -105,7 +105,7 @@ _LIB_IMAGING = ( + "codec_fd", + ) -DEBUG = False +DEBUG = True class DependencyException(Exception): -@@ -345,21 +345,16 @@ class pil_build_ext(build_ext): +@@ -396,21 +396,16 @@ class pil_build_ext(build_ext): _add_directory(library_dirs, match.group(1)) # include, rpath, if set as environment variables: -- for k in ('C_INCLUDE_PATH', 'CPATH', 'INCLUDE'): +- for k in ("C_INCLUDE_PATH", "CPATH", "INCLUDE"): + for k in ('C_INCLUDE_PATH', 'CPATH', 'INCLUDE', 'STAGING_INCDIR'): if k in os.environ: for d in os.environ[k].split(os.path.pathsep): _add_directory(include_dirs, d) -- for k in ('LD_RUN_PATH', 'LIBRARY_PATH', 'LIB'): +- for k in ("LD_RUN_PATH", "LIBRARY_PATH", "LIB"): + for k in ('LD_RUN_PATH', 'LIBRARY_PATH', 'LIB', 'STAGING_LIBDIR'): if k in os.environ: for d in os.environ[k].split(os.path.pathsep): @@ -47,15 +47,15 @@ index 79f912b..37e5827 100755 # # add platform directories -@@ -413,8 +408,6 @@ class pil_build_ext(build_ext): - elif sys.platform.startswith("linux") or \ - sys.platform.startswith("gnu") or \ - sys.platform.startswith("freebsd"): +@@ -469,8 +464,6 @@ class pil_build_ext(build_ext): + or sys.platform.startswith("gnu") + or sys.platform.startswith("freebsd") + ): - for dirname in _find_library_dirs_ldconfig(): - _add_directory(library_dirs, dirname) - if sys.platform.startswith("linux") and \ - os.environ.get('ANDROID_ROOT', None): - # termux support for android. + if sys.platform.startswith("linux") and os.environ.get( + "ANDROID_ROOT", None + ): -- -2.8.1 +2.20.1 diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-pillow_5.4.1.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-pillow_5.4.1.bb deleted file mode 100644 index 6fce1623..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-pillow_5.4.1.bb +++ /dev/null @@ -1,30 +0,0 @@ -SUMMARY = "Python Imaging Library (Fork). Pillow is the friendly PIL fork by Alex \ -Clark and Contributors. PIL is the Python Imaging Library by Fredrik Lundh and \ -Contributors." -HOMEPAGE = "https://pillow.readthedocs.io" -LICENSE = "MIT" -LIC_FILES_CHKSUM = "file://LICENSE;md5=c6379001ecb47e2a0420c40177fc1125" - -SRC_URI = "git://github.com/python-pillow/Pillow.git;branch=5.4.x \ - file://0001-support-cross-compiling.patch \ - file://0001-explicitly-set-compile-options.patch \ -" -SRCREV ?= "f38f01bbe3a0a9f49ce592c86ff20c01c9655133" - - -inherit setuptools3 - -DEPENDS += " \ - zlib \ - jpeg \ - tiff \ - freetype \ - lcms \ - openjpeg \ -" - -CVE_PRODUCT = "pillow" - -S = "${WORKDIR}/git" - -BBCLASSEXTEND = "native" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-pillow_6.2.1.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-pillow_6.2.1.bb new file mode 100644 index 00000000..a383a3ff --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-pillow_6.2.1.bb @@ -0,0 +1,38 @@ +SUMMARY = "Python Imaging Library (Fork). Pillow is the friendly PIL fork by Alex \ +Clark and Contributors. PIL is the Python Imaging Library by Fredrik Lundh and \ +Contributors." +HOMEPAGE = "https://pillow.readthedocs.io" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://LICENSE;md5=55c0f320370091249c1755c0d2b48e89" + +SRC_URI = "git://github.com/python-pillow/Pillow.git;branch=6.2.x \ + file://0001-support-cross-compiling.patch \ + file://0001-explicitly-set-compile-options.patch \ +" +SRCREV ?= "6e0f07bbe38def22d36ee176b2efd9ea74b453a6" + + +inherit setuptools3 + +DEPENDS += " \ + zlib \ + jpeg \ + tiff \ + freetype \ + lcms \ + openjpeg \ +" + +RDEPENDS_${PN} += " \ + ${PYTHON_PN}-misc \ + ${PYTHON_PN}-logging \ + ${PYTHON_PN}-numbers \ +" + +CVE_PRODUCT = "pillow" + +S = "${WORKDIR}/git" + +RPROVIDES_${PN} += "python3-imaging" + +BBCLASSEXTEND = "native" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-pint_0.8.1.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-pint_0.9.bb similarity index 100% rename from Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-pint_0.8.1.bb rename to Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-pint_0.9.bb diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-pluggy_0.6.0.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-pluggy_0.13.1.bb similarity index 100% rename from Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-pluggy_0.6.0.bb rename to Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-pluggy_0.13.1.bb diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-precise-runner_0.3.1.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-precise-runner_0.3.1.bb new file mode 100644 index 00000000..98b62d89 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-precise-runner_0.3.1.bb @@ -0,0 +1,9 @@ +SUMMARY = "A lightweight, simple-to-use, RNN wake word listener." +HOMEPAGE = "https://github.com/MycroftAI/mycroft-precise" +LICENSE = "Apache-2.0" +LIC_FILES_CHKSUM = "file://README.md;md5=2ad29e930f3107d52d2a55728bf62116" + +SRC_URI[md5sum] = "a2434be110444192e804f4dada0ccecf" +SRC_URI[sha256sum] = "1a464209fb4bf0a3f5d5a428310cb2a70487a01a6bc3a960d1dda90af896b80d" + +inherit pypi setuptools3 diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-prettytable_0.7.2.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-prettytable_0.7.2.bb new file mode 100644 index 00000000..5445f101 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-prettytable_0.7.2.bb @@ -0,0 +1,3 @@ +inherit setuptools3 +require python-prettytable.inc + diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-progress_1.4.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-progress_1.5.bb similarity index 100% rename from Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-progress_1.4.bb rename to Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-progress_1.5.bb diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-prompt-toolkit_2.0.4.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-prompt-toolkit_2.0.10.bb similarity index 100% rename from Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-prompt-toolkit_2.0.4.bb rename to Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-prompt-toolkit_2.0.10.bb diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-protobuf_3.8.0.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-protobuf_3.9.2.bb similarity index 100% rename from Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-protobuf_3.8.0.bb rename to Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-protobuf_3.9.2.bb diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-psutil_5.6.3.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-psutil_5.6.7.bb similarity index 100% rename from Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-psutil_5.6.3.bb rename to Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-psutil_5.6.7.bb diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-pulsectl_20.1.2.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-pulsectl_20.1.2.bb new file mode 100644 index 00000000..7ac3aaf5 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-pulsectl_20.1.2.bb @@ -0,0 +1,11 @@ +SUMMARY = "Python (3.x and 2.x) high-level interface and ctypes-based bindings for PulseAudio (libpulse), mostly focused on mixer-like controls and introspection-related operations (as opposed to e.g. submitting sound samples to play, player-like client)." +HOMEPAGE = "https://github.com/mk-fg/python-pulse-control" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://COPYING;md5=f1d10048469ff90123263eb5e214061d" + +SRC_URI[md5sum] = "90d02204d65f684af2fd77a77d50ec01" +SRC_URI[sha256sum] = "4a97a4f7fcd8dbe56380980e8c9519ff4e26552604776cbc7555e6a14ff0202f" + +RDEPENDS_${PN} += "pulseaudio" + +inherit pypi setuptools3 diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-py_1.8.0.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-py_1.8.1.bb similarity index 100% rename from Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-py_1.8.0.bb rename to Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-py_1.8.1.bb diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-pyasn1-modules_0.2.2.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-pyasn1-modules_0.2.7.bb similarity index 100% rename from Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-pyasn1-modules_0.2.2.bb rename to Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-pyasn1-modules_0.2.7.bb diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-pyasn1_0.4.5.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-pyasn1_0.4.8.bb similarity index 100% rename from Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-pyasn1_0.4.5.bb rename to Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-pyasn1_0.4.8.bb diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-pyatspi_2.32.1.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-pyatspi_2.32.1.bb new file mode 100644 index 00000000..4f52ac70 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-pyatspi_2.32.1.bb @@ -0,0 +1,20 @@ +SUMMARY = "Python bindings for DBus AT-SPI2 accessibility" +DESCRIPTION = "AT-SPI2 is a protocol over DBus, toolkit widgets use to provide content to screen readers such as Orca" +SECTION = "devel/python" +HOMEPAGE = "https://www.freedesktop.org/wiki/Accessibility/AT-SPI2/" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=e9f288ba982d60518f375b5898283886 \ + file://COPYING.GPL;md5=751419260aa954499f7abaabaa882bbe" +DEPENDS = "python3-dbus-native glib-2.0 dbus-glib libxml2 atk gtk+ python3-pygobject" + +SRC_URI = "git://github.com/GNOME/pyatspi2.git;protocol=https;branch=gnome-3-32" +SRCREV = "dc4565208fca00da06b972915a080ad3c63f640d" +S = "${WORKDIR}/git" + +# Same restriction as gtk+ +inherit features_check +ANY_OF_DISTRO_FEATURES = "${GTK2DISTROFEATURES}" + +inherit pkgconfig autotools python3native + +FILES_${PN} += "${PYTHON_SITEPACKAGES_DIR}/pyatspi/*" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-pybind11_2.2.3.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-pybind11_2.4.3.bb similarity index 100% rename from Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-pybind11_2.2.3.bb rename to Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-pybind11_2.4.3.bb diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-pychromecast_4.0.1.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-pychromecast_4.0.1.bb new file mode 100644 index 00000000..1b9301f9 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-pychromecast_4.0.1.bb @@ -0,0 +1,11 @@ +SUMMARY = "Library for Python 3.6+ to communicate with the Google Chromecast." +HOMEPAGE = "https://github.com/balloob/pychromecast" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://LICENSE;md5=b1dbd4e85f47b389bdadee9c694669f5" + +SRC_URI[md5sum] = "d6f96d478fd768696a0e440cb0ea903b" +SRC_URI[sha256sum] = "d98df28f340bb14a07236846518daad7107b66581512c33da921663df61ac819" + +PYPI_PACKAGE = "PyChromecast" + +inherit pypi setuptools3 diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-pycodestyle_2.4.0.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-pycodestyle_2.5.0.bb similarity index 100% rename from Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-pycodestyle_2.4.0.bb rename to Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-pycodestyle_2.5.0.bb diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-pycryptodome_3.4.11.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-pycryptodome_3.9.4.bb similarity index 100% rename from Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-pycryptodome_3.4.11.bb rename to Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-pycryptodome_3.9.4.bb diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-pycurl_7.43.0.3.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-pycurl_7.43.0.3.bb new file mode 100644 index 00000000..5ad319ae --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-pycurl_7.43.0.3.bb @@ -0,0 +1,2 @@ +inherit setuptools3 +require python-pycurl.inc diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-pyelftools_0.25.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-pyelftools_0.25.bb new file mode 100644 index 00000000..56eb8c4c --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-pyelftools_0.25.bb @@ -0,0 +1,2 @@ +inherit setuptools3 +require python-pyelftools.inc diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-pyexpect_1.0.17.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-pyexpect_1.0.19.bb similarity index 100% rename from Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-pyexpect_1.0.17.bb rename to Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-pyexpect_1.0.19.bb diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-pyfirmata_1.0.3.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-pyfirmata_1.1.0.bb similarity index 100% rename from Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-pyfirmata_1.0.3.bb rename to Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-pyfirmata_1.1.0.bb diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-pyjks_17.1.1.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-pyjks_19.0.0.bb similarity index 100% rename from Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-pyjks_17.1.1.bb rename to Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-pyjks_19.0.0.bb diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-pyjwt_1.6.4.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-pyjwt_1.7.1.bb similarity index 100% rename from Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-pyjwt_1.6.4.bb rename to Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-pyjwt_1.7.1.bb diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-pymisp_2.4.93.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-pymisp_2.4.119.1.bb similarity index 100% rename from Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-pymisp_2.4.93.bb rename to Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-pymisp_2.4.119.1.bb diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-pymongo_3.8.0.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-pymongo_3.10.0.bb similarity index 100% rename from Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-pymongo_3.8.0.bb rename to Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-pymongo_3.10.0.bb diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-pymysql_0.9.3.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-pymysql_0.9.3.bb new file mode 100644 index 00000000..13774bd6 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-pymysql_0.9.3.bb @@ -0,0 +1,2 @@ +inherit setuptools3 +require python-pymysql.inc diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-pyopenssl_19.0.0.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-pyopenssl_19.1.0.bb similarity index 100% rename from Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-pyopenssl_19.0.0.bb rename to Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-pyopenssl_19.1.0.bb diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-pyparsing_2.4.0.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-pyparsing_2.4.6.bb similarity index 100% rename from Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-pyparsing_2.4.0.bb rename to Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-pyparsing_2.4.6.bb diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-pyperf_1.7.0.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-pyperf_1.7.0.bb new file mode 100644 index 00000000..5ba5efb0 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-pyperf_1.7.0.bb @@ -0,0 +1,4 @@ +inherit setuptools3 +require python-pyperf.inc + +RDEPENDS_${PN} += "${PYTHON_PN}-misc" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-pyroute2_0.5.2.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-pyroute2_0.5.7.bb similarity index 100% rename from Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-pyroute2_0.5.2.bb rename to Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-pyroute2_0.5.7.bb diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-pyrsistent_0.15.7.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-pyrsistent_0.15.7.bb new file mode 100644 index 00000000..2e567e9f --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-pyrsistent_0.15.7.bb @@ -0,0 +1,2 @@ +inherit pypi setuptools3 +require python-pyrsistent.inc diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-pysocks_1.7.0.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-pysocks_1.7.1.bb similarity index 100% rename from Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-pysocks_1.7.0.bb rename to Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-pysocks_1.7.1.bb diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-pystemd_0.7.0.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-pystemd_0.7.0.bb new file mode 100644 index 00000000..66f026ca --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-pystemd_0.7.0.bb @@ -0,0 +1,13 @@ +SUMMARY = "Python bindings for interacting with systemd over DBus" +LICENSE = "LGPLv2.1" +LIC_FILES_CHKSUM = "file://LICENSE;md5=4fbd65380cdd255951079008b364516c" + +SRC_URI[md5sum] = "f493c3e54457e49fe3c160274b863bac" +SRC_URI[sha256sum] = "f5dc49d02995ab96335d9e94f9fe036673d89b8cc9907e7a0ac83c06665f2430" + +DEPENDS = "systemd" +REQUIRED_DISTRO_FEATURES = "systemd" + +inherit pypi setuptools3 features_check + +BBCLASSEXTEND = "native" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-pytest-asyncio_0.10.0.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-pytest-asyncio_0.10.0.bb new file mode 100644 index 00000000..09f26f8d --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-pytest-asyncio_0.10.0.bb @@ -0,0 +1,2 @@ +inherit setuptools3 +require python-pytest-asyncio.inc diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-pytest-helpers-namespace_2016.7.10.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-pytest-helpers-namespace_2019.1.8.bb similarity index 100% rename from Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-pytest-helpers-namespace_2016.7.10.bb rename to Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-pytest-helpers-namespace_2019.1.8.bb diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-pytest-runner_4.2.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-pytest-runner_5.2.bb similarity index 100% rename from Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-pytest-runner_4.2.bb rename to Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-pytest-runner_5.2.bb diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-pytest-tempdir_2016.8.20.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-pytest-tempdir_2019.10.12.bb similarity index 100% rename from Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-pytest-tempdir_2016.8.20.bb rename to Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-pytest-tempdir_2019.10.12.bb diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-pytest_3.4.2.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-pytest_5.3.2.bb similarity index 100% rename from Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-pytest_3.4.2.bb rename to Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-pytest_5.3.2.bb diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-python-vlc_3.0.7110.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-python-vlc_3.0.7110.bb new file mode 100644 index 00000000..be63fed0 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-python-vlc_3.0.7110.bb @@ -0,0 +1,9 @@ +SUMMARY = "This module provides ctypes-based bindings for the native libvlc API of the VLC video player." +HOMEPAGE = "wiki.videolan.org/PythonBinding" +LICENSE = "LGPL-2.0" +LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c" + +SRC_URI[md5sum] = "e128abf7115d6513582bd460c0e74485" +SRC_URI[sha256sum] = "821bca0dbe08fbff97a65e56ff2318ad7d499330876579c39f01f3fb38c7b679" + +inherit pypi setuptools3 diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-pytz_2019.1.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-pytz_2019.3.bb similarity index 100% rename from Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-pytz_2019.1.bb rename to Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-pytz_2019.3.bb diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-pyyaml_3.13.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-pyyaml_5.2.bb similarity index 100% rename from Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-pyyaml_3.13.bb rename to Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-pyyaml_5.2.bb diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-regex_2019.08.19.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-regex_2019.08.19.bb new file mode 100755 index 00000000..80194d60 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-regex_2019.08.19.bb @@ -0,0 +1,12 @@ +SUMMARY = "" +HOMEPAGE = "http://pythonhosted.org/regex" +LICENSE = "PSF" +LIC_FILES_CHKSUM = "file://PKG-INFO;md5=51cb124129fa4d157b4aebb77df73629" + +inherit pypi setuptools3 + +SRC_URI[md5sum] = "d31ec392ab75b894404d8db76dacd191" +SRC_URI[sha256sum] = "587b62d48ca359d2d4f02d486f1f0aa9a20fbaf23a9d4198c4bed72ab2f6c849" + + +BBCLASSEXTEND = "native nativesdk" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-requests-futures_0.9.5.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-requests-futures_0.9.5.bb new file mode 100644 index 00000000..b94929d8 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-requests-futures_0.9.5.bb @@ -0,0 +1,14 @@ +SUMMARY = "Small add-on for the python requests http library. Makes use of python 3.2’s concurrent.futures or the backport for prior versions of python." +HOMEPAGE = "https://github.com/ross/requests-futures" +LICENSE = "Apache-2.0" +LIC_FILES_CHKSUM = "file://LICENSE;md5=e1e50798d0afe0e1f87594c6619a2fa5" + +SRC_URI[md5sum] = "e20dc6f063c70888a7f8225e349b6682" +SRC_URI[sha256sum] = "33aa8a3b7892850701707d7e094b1e1ce7c4f7a36ff2a1dcc2da4e01a1a00f7e" + +inherit pypi setuptools3 + +RDEPENDS_${PN} += " \ + python3-requests \ +" + diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-requests-oauthlib_0.8.0.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-requests-oauthlib_1.3.0.bb similarity index 100% rename from Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-requests-oauthlib_0.8.0.bb rename to Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-requests-oauthlib_1.3.0.bb diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-rfc3339-validator_0.1.1.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-rfc3339-validator_0.1.1.bb new file mode 100644 index 00000000..f4ee8fed --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-rfc3339-validator_0.1.1.bb @@ -0,0 +1,2 @@ +inherit setuptools3 +require python-rfc3339-validator.inc \ No newline at end of file diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-rfc3986-validator_0.1.1.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-rfc3986-validator_0.1.1.bb new file mode 100644 index 00000000..6491308c --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-rfc3986-validator_0.1.1.bb @@ -0,0 +1,2 @@ +inherit setuptools3 +require python-rfc3986-validator.inc \ No newline at end of file diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-ruamel-yaml_0.16.5.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-ruamel-yaml_0.16.5.bb new file mode 100644 index 00000000..ba095648 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-ruamel-yaml_0.16.5.bb @@ -0,0 +1,16 @@ +SUMMARY = "YAML parser/emitter that supports roundtrip preservation of comments, seq/map flow style, and map key order." +AUTHOR = "Anthon van der Neut" + +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://LICENSE;md5=caf8bd842440b537c044e131785a4666" + +PYPI_PACKAGE = "ruamel.yaml" + +inherit pypi setuptools3 + +SRC_URI[md5sum] = "7d5a5b0a7621a1247b081cc8e4978354" +SRC_URI[sha256sum] = "412a6f5cfdc0525dee6a27c08f5415c7fd832a7afcb7a0ed7319628aed23d408" + +do_install_prepend() { + export RUAMEL_NO_PIP_INSTALL_CHECK=1 +} diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-serpent_1.25.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-serpent_1.28.bb similarity index 100% rename from Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-serpent_1.25.bb rename to Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-serpent_1.28.bb diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-setuptools-scm_2.1.0.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-setuptools-scm_3.3.3.bb similarity index 100% rename from Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-setuptools-scm_2.1.0.bb rename to Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-setuptools-scm_3.3.3.bb diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-simplejson_3.16.0.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-simplejson_3.17.0.bb similarity index 100% rename from Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-simplejson_3.16.0.bb rename to Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-simplejson_3.17.0.bb diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-smbus_4.0.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-smbus_4.1.bb similarity index 100% rename from Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-smbus_4.0.bb rename to Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-smbus_4.1.bb diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-socketio_4.0.0.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-socketio_4.0.0.bb deleted file mode 100644 index ce83d09c..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-socketio_4.0.0.bb +++ /dev/null @@ -1,2 +0,0 @@ -inherit setuptools3 -require python-socketio.inc diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-socketio_4.3.1.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-socketio_4.3.1.bb new file mode 100644 index 00000000..8ff590bd --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-socketio_4.3.1.bb @@ -0,0 +1,4 @@ +inherit setuptools3 + +PACKAGECONFIG ?= "asyncio_client client" +require python-socketio.inc diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-soupsieve_1.9.4.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-soupsieve_1.9.4.bb new file mode 100644 index 00000000..1b966369 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-soupsieve_1.9.4.bb @@ -0,0 +1,2 @@ +inherit setuptools3 +require python-soupsieve.inc diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-sqlalchemy_1.1.17.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-sqlalchemy_1.3.12.bb similarity index 100% rename from Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-sqlalchemy_1.1.17.bb rename to Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-sqlalchemy_1.3.12.bb diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-sqlparse_0.3.0.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-sqlparse_0.3.0.bb new file mode 100644 index 00000000..a646ac64 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-sqlparse_0.3.0.bb @@ -0,0 +1,3 @@ +inherit setuptools3 +require python-sqlparse.inc +BBCLASSEXTEND = "native nativesdk" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-stevedore_1.30.1.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-stevedore_1.31.0.bb similarity index 100% rename from Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-stevedore_1.30.1.bb rename to Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-stevedore_1.31.0.bb diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-supervisor_4.0.2.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-supervisor_4.1.0.bb similarity index 100% rename from Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-supervisor_4.0.2.bb rename to Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-supervisor_4.1.0.bb diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-term_2.3.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-term_2.3.bb new file mode 100644 index 00000000..372cffe0 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-term_2.3.bb @@ -0,0 +1,2 @@ +require python-term.inc +inherit pypi setuptools3 diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-test-generator_0.1.2.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-test-generator_0.1.2.bb new file mode 100644 index 00000000..14943a4b --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-test-generator_0.1.2.bb @@ -0,0 +1,15 @@ +SUMMARY = "Generator is a helper for generating test methods for nose while still using unittest." +DESCRIPTION = "Python package with modified subclasses of all stdlib XML \ +parsers that prevent any potentially malicious operation." + +LICENSE = "ISC" +LIC_FILES_CHKSUM = "file://LICENSE;md5=041a2bff595d40ccb4b36356f89dab00" + +SRC_URI[md5sum] = "6c69e73ba5b4b3ed62f7bcda071c64f1" +SRC_URI[sha256sum] = "ad5925c814bfe79497b43df096e3bb52c166d1577f7aff160137301676232f4a" + +inherit pypi setuptools3 + +DEPENDS += "python3-nose-native" + +RDEPENDS_${PN} += "python3-six" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-toml_0.10.0.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-toml_0.10.0.bb new file mode 100644 index 00000000..cebb41a5 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-toml_0.10.0.bb @@ -0,0 +1,6 @@ +inherit setuptools3 +require python-toml.inc + +RDEPENDS_${PN} += " \ + ${PYTHON_PN}-misc \ +" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-tornado_5.1.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-tornado_6.0.3.bb similarity index 100% rename from Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-tornado_5.1.bb rename to Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-tornado_6.0.3.bb diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-tqdm_4.31.1.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-tqdm_4.41.1.bb similarity index 100% rename from Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-tqdm_4.31.1.bb rename to Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-tqdm_4.41.1.bb diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-twine_1.13.0.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-twine_1.13.0.bb new file mode 100644 index 00000000..0456ec92 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-twine_1.13.0.bb @@ -0,0 +1,2 @@ +inherit setuptools3 +require python-twine.inc diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-twisted_19.2.1.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-twisted_19.10.0.bb similarity index 100% rename from Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-twisted_19.2.1.bb rename to Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-twisted_19.10.0.bb diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-twitter_3.7.0.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-twitter_3.8.0.bb similarity index 100% rename from Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-twitter_3.7.0.bb rename to Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-twitter_3.8.0.bb diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-twofish/0001-Fix-missing-return-statements-in-module-stubs.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-twofish/0001-Fix-missing-return-statements-in-module-stubs.patch new file mode 100644 index 00000000..c25b2457 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-twofish/0001-Fix-missing-return-statements-in-module-stubs.patch @@ -0,0 +1,38 @@ +From 5704610f4b3aed5210e9c5b7c05ff8b5b2364c9c Mon Sep 17 00:00:00 2001 +From: Martin Jansa +Date: Mon, 12 Aug 2019 08:18:21 +0000 +Subject: [PATCH] Fix missing return statements in module stubs + +* fixes build with -Werror=return-type + twofish.c: In function 'init_twofish': + twofish.c:45:1: error: control reaches end of non-void function [-Werror=return-type] + 45 | PyMODINIT_FUNC init_twofish(void) { } + | ^~~~~~~~~~~~~~ + twofish.c: In function 'PyInit__twofish': + twofish.c:46:1: error: control reaches end of non-void function [-Werror=return-type] + 46 | PyMODINIT_FUNC PyInit__twofish(void) { } + | ^~~~~~~~~~~~~~ + cc1: some warnings being treated as errors + +Signed-off-by: Martin Jansa + +Upstream-Status: Submitted [https://github.com/keybase/python-twofish/pull/6] +--- + twofish.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/twofish.c b/twofish.c +index e324c34..d4487d8 100644 +--- a/twofish.c ++++ b/twofish.c +@@ -42,5 +42,5 @@ DL_EXPORT(void) exp_Twofish_decrypt(Twofish_key * xkey, uint8_t c[16], uint8_t p + We need a stub init_twofish function so the module will link as a proper module. + Do not import _twofish from python; it will not work since _twofish is not a *real* module + */ +-PyMODINIT_FUNC init_twofish(void) { } +-PyMODINIT_FUNC PyInit__twofish(void) { } ++PyMODINIT_FUNC init_twofish(void) { return NULL; } ++PyMODINIT_FUNC PyInit__twofish(void) { return NULL; } +-- +2.17.1 + diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-twofish_0.3.0.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-twofish_0.3.0.bb index e593f6f2..7b8eb2ef 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-twofish_0.3.0.bb +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-twofish_0.3.0.bb @@ -1,2 +1,4 @@ require python-twofish.inc inherit setuptools3 + +SRC_URI += "file://0001-Fix-missing-return-statements-in-module-stubs.patch" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-tzlocal_1.5.1.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-tzlocal_2.0.0.bb similarity index 100% rename from Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-tzlocal_1.5.1.bb rename to Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-tzlocal_2.0.0.bb diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-urllib3_1.25.3.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-urllib3_1.25.7.bb similarity index 100% rename from Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-urllib3_1.25.3.bb rename to Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-urllib3_1.25.7.bb diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-versiontools_1.9.1.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-versiontools_1.9.1.bb new file mode 100644 index 00000000..e8d6b7dd --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-versiontools_1.9.1.bb @@ -0,0 +1,2 @@ +inherit setuptools3 +require python-versiontools.inc diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-waitress_1.4.2.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-waitress_1.4.2.bb new file mode 100644 index 00000000..83c8b66d --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-waitress_1.4.2.bb @@ -0,0 +1,2 @@ +inherit setuptools3 pypi +require python-waitress.inc diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-wcwidth_0.1.7.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-wcwidth_0.1.8.bb similarity index 100% rename from Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-wcwidth_0.1.7.bb rename to Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-wcwidth_0.1.8.bb diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-websockets_4.0.1.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-websockets_4.0.1.bb deleted file mode 100644 index 414129c5..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-websockets_4.0.1.bb +++ /dev/null @@ -1,16 +0,0 @@ -SUMMARY = "An implementation of the WebSocket Protocol (RFC 6455)" -HOMEPAGE = "https://github.com/aaugustin/websockets" - -LICENSE = "BSD-3-Clause" -LIC_FILES_CHKSUM = "file://LICENSE;md5=5070256738c06d2e59adbec1f4057dac" - -inherit pypi setuptools3 - -SRC_URI[md5sum] = "9e8c6b3c70def4146d75fbb0f52bdfc7" -SRC_URI[sha256sum] = "da4d4fbe059b0453e726d6d993760065d69b823a27efc3040402a6fcfe6a1ed9" - -BBCLASSEXTEND = "native nativesdk" - -RDEPENDS_${PN} = "\ - ${PYTHON_PN}-asyncio \ -" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-websockets_8.1.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-websockets_8.1.bb new file mode 100644 index 00000000..b09e978a --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-websockets_8.1.bb @@ -0,0 +1,16 @@ +SUMMARY = "An implementation of the WebSocket Protocol (RFC 6455)" +HOMEPAGE = "https://github.com/aaugustin/websockets" + +LICENSE = "BSD-3-Clause" +LIC_FILES_CHKSUM = "file://LICENSE;md5=ad5c6d36b3d0098b2f33a5ab69a9e750" + +inherit pypi setuptools3 + +SRC_URI[md5sum] = "f12d7f31fe8d0b3e65c12f845bcd0ad8" +SRC_URI[sha256sum] = "5c65d2da8c6bce0fca2528f69f44b2f977e06954c8512a952222cea50dad430f" + +BBCLASSEXTEND = "native nativesdk" + +RDEPENDS_${PN} = "\ + ${PYTHON_PN}-asyncio \ +" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-werkzeug_0.14.1.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-werkzeug_0.16.0.bb similarity index 100% rename from Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-werkzeug_0.14.1.bb rename to Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-werkzeug_0.16.0.bb diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-wheel_0.32.3.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-wheel_0.32.3.bb deleted file mode 100644 index e8c08a7d..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-wheel_0.32.3.bb +++ /dev/null @@ -1,16 +0,0 @@ -SUMMARY = "The official binary distribution format for Python " -HOMEPAGE = "https://github.com/pypa/wheel" -SECTION = "devel/python" -LICENSE = "MIT" -LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=9d66b41bc2a080e7174acc5dffecd752" - -SRC_URI = "git://github.com/pypa/wheel.git" -SRCREV ?= "11584b78a56b4eedba4eedc55c9dac8aa2dd7070" - - -inherit setuptools3 - -S = "${WORKDIR}/git" - -BBCLASSEXTEND = "native" - diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-wheel_0.33.6.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-wheel_0.33.6.bb new file mode 100644 index 00000000..025b2eea --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-wheel_0.33.6.bb @@ -0,0 +1,16 @@ +SUMMARY = "The official binary distribution format for Python " +HOMEPAGE = "https://github.com/pypa/wheel" +SECTION = "devel/python" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=9d66b41bc2a080e7174acc5dffecd752" + +SRC_URI = "git://github.com/pypa/wheel.git" +SRCREV ?= "b227ddd5beaba49294017d061d501f6d433393b0" + + +inherit setuptools3 + +S = "${WORKDIR}/git" + +BBCLASSEXTEND = "native" + diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-xlrd_1.1.0.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-xlrd_1.2.0.bb similarity index 100% rename from Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-xlrd_1.1.0.bb rename to Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-xlrd_1.2.0.bb diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-xmlrunner_1.7.7.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-xmlrunner_1.7.7.bb new file mode 100644 index 00000000..7e7b5235 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-xmlrunner_1.7.7.bb @@ -0,0 +1,9 @@ +SUMMARY = "unittest-based test runner with Ant/JUnit like XML reporting" +HOMEPAGE = "https://github.com/pycontribs/xmlrunner" +LICENSE = "LGPL-3.0" +LIC_FILES_CHKSUM = "file://PKG-INFO;md5=fa964f202b6ae067ed5828fe43c77c1a" + +SRC_URI[md5sum] = "7b0b152ed2d278516aedbc0cac22dfb3" +SRC_URI[sha256sum] = "5a6113d049eca7646111ee657266966e5bbfb0b5ceb2e83ee0772e16d7110f39" + +inherit pypi setuptools3 diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-xmltodict_0.12.0.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-xmltodict_0.12.0.bb new file mode 100644 index 00000000..00aa8180 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-xmltodict_0.12.0.bb @@ -0,0 +1,12 @@ +SUMMARY = "Makes working with XML feel like you are working with JSON" +AUTHOR = "Martin Blech" +HOMEPAGE = "https://github.com/martinblech/xmltodict" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://LICENSE;md5=01441d50dc74476db58a41ac10cb9fa2" + +SRC_URI[md5sum] = "ddb2bd078cef4f7e3021a578034ad941" +SRC_URI[sha256sum] = "50d8c638ed7ecb88d90561beedbf720c9b4e851a9fa6c47ebd64e99d166d8a21" + +PYPI_PACKAGE = "xmltodict" + +inherit pypi setuptools3 diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-xstatic_1.0.1.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-xstatic_1.0.2.bb similarity index 100% rename from Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-xstatic_1.0.1.bb rename to Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-xstatic_1.0.2.bb diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-xxhash_1.3.0.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-xxhash_1.4.3.bb similarity index 100% rename from Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-xxhash_1.3.0.bb rename to Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-xxhash_1.4.3.bb diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-yappi_0.98.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-yappi_1.0.bb similarity index 100% rename from Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-yappi_0.98.bb rename to Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-yappi_1.0.bb diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-yarl_1.3.0.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-yarl_1.4.2.bb similarity index 100% rename from Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-yarl_1.3.0.bb rename to Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-yarl_1.4.2.bb diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-zipp_0.6.0.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-zipp_0.6.0.bb new file mode 100644 index 00000000..b78663fd --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-zipp_0.6.0.bb @@ -0,0 +1,2 @@ +inherit pypi setuptools3 +require python-zipp.inc diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-zopeinterface_4.6.0.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-zopeinterface_4.7.1.bb similarity index 100% rename from Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-zopeinterface_4.6.0.bb rename to Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-devtools/python/python3-zopeinterface_4.7.1.bb diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-extended/python-blivet/python3-blivet_3.1.2.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-extended/python-blivet/python3-blivet_3.1.2.bb deleted file mode 100644 index 45565ba7..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-extended/python-blivet/python3-blivet_3.1.2.bb +++ /dev/null @@ -1,46 +0,0 @@ -DESCRIPTION = "A python module for system storage configuration" -HOMEPAGE = "http://fedoraproject.org/wiki/blivet" -LICENSE = "LGPLv2+" -SECTION = "devel/python" - -LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263" - -S = "${WORKDIR}/git" -B = "${S}" - -SRCREV = "878f794a38120a652cab0026b77175b099bf1f9d" -SRC_URI = "git://github.com/rhinstaller/blivet;branch=3.1-release \ - file://0001-comment-out-selinux.patch \ - file://0002-run_program-support-timeout.patch \ - file://0003-support-infinit-timeout.patch \ - file://0004-fix-new.roots-object-is-not-iterable.patch \ - file://0005-fix-incorrect-timeout-while-system-time-changed.patch \ - file://0006-tweak-btrfs-packages.patch \ - file://0007-invoking-mount-with-infinite-timeout.patch \ - file://0008-use-oe-variable-to-replace-hardcoded-dir.patch \ - file://0009-invoking-fsck-with-infinite-timeout.patch \ - file://0010-invoking-mkfs-with-infinite-timeout.patch \ - file://0011-invoking-dd-with-infinite-timeout.patch \ -" - -UPSTREAM_CHECK_GITTAGREGEX = "blivet-(?P\d+(\.\d+)+)$" - -inherit distro_features_check -REQUIRED_DISTRO_FEATURES = "systemd" - -inherit setuptools3 python3native - -RDEPENDS_${PN} = "python3-pykickstart python3-pyudev \ - parted python3-pyparted multipath-tools \ - lsof cryptsetup libblockdev \ - libbytesize \ -" - -FILES_${PN} += " \ - ${datadir}/dbus-1/system-services \ -" - -inherit systemd - -SYSTEMD_AUTO_ENABLE = "disable" -SYSTEMD_SERVICE_${PN} = "blivet.service" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-extended/python-blivet/python3-blivet_3.1.4.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-extended/python-blivet/python3-blivet_3.1.4.bb new file mode 100644 index 00000000..2b5b253b --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-extended/python-blivet/python3-blivet_3.1.4.bb @@ -0,0 +1,46 @@ +DESCRIPTION = "A python module for system storage configuration" +HOMEPAGE = "http://fedoraproject.org/wiki/blivet" +LICENSE = "LGPLv2+" +SECTION = "devel/python" + +LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263" + +S = "${WORKDIR}/git" +B = "${S}" + +SRCREV = "9b5ad2d5b5df159963e1c6c24523e1dfe1f71435" +SRC_URI = "git://github.com/rhinstaller/blivet;branch=3.1-release \ + file://0001-comment-out-selinux.patch \ + file://0002-run_program-support-timeout.patch \ + file://0003-support-infinit-timeout.patch \ + file://0004-fix-new.roots-object-is-not-iterable.patch \ + file://0005-fix-incorrect-timeout-while-system-time-changed.patch \ + file://0006-tweak-btrfs-packages.patch \ + file://0007-invoking-mount-with-infinite-timeout.patch \ + file://0008-use-oe-variable-to-replace-hardcoded-dir.patch \ + file://0009-invoking-fsck-with-infinite-timeout.patch \ + file://0010-invoking-mkfs-with-infinite-timeout.patch \ + file://0011-invoking-dd-with-infinite-timeout.patch \ +" + +UPSTREAM_CHECK_GITTAGREGEX = "blivet-(?P\d+(\.\d+)+)$" + +inherit features_check +REQUIRED_DISTRO_FEATURES = "systemd" + +inherit setuptools3 python3native + +RDEPENDS_${PN} += "python3-pykickstart python3-pyudev \ + parted python3-pyparted multipath-tools \ + lsof cryptsetup libblockdev \ + libbytesize \ +" + +FILES_${PN} += " \ + ${datadir}/dbus-1/system-services \ +" + +inherit systemd + +SYSTEMD_AUTO_ENABLE = "disable" +SYSTEMD_SERVICE_${PN} = "blivet.service" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-extended/python-blivet/python3-blivetgui/0001-Fix-return-type-of-BlivetUtils.get_disks-1658893.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-extended/python-blivet/python3-blivetgui/0001-Fix-return-type-of-BlivetUtils.get_disks-1658893.patch new file mode 100644 index 00000000..cf805668 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-extended/python-blivet/python3-blivetgui/0001-Fix-return-type-of-BlivetUtils.get_disks-1658893.patch @@ -0,0 +1,32 @@ +From 4d0f9f961704bc1dd83fdf6808fb6ab91dc6a768 Mon Sep 17 00:00:00 2001 +From: Vojtech Trefny +Date: Thu, 13 Dec 2018 13:39:03 +0100 +Subject: [PATCH] Fix return type of BlivetUtils.get_disks (#1658893) + +This must be a list, not a generator, because we are iterating +over it multiple times in some cases. + +Upstream-Status: Backport[git://github.com/rhinstaller/blivet-gui] + +Signed-off-by: Hongxu Jia + +--- + blivetgui/blivet_utils.py | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/blivetgui/blivet_utils.py b/blivetgui/blivet_utils.py +index e2bd802..ddb04fc 100644 +--- a/blivetgui/blivet_utils.py ++++ b/blivetgui/blivet_utils.py +@@ -204,7 +204,7 @@ class BlivetUtils(object): + + """ + +- return (device for device in self.storage.disks if device.type != "mdarray") ++ return [device for device in self.storage.disks if device.type != "mdarray"] + + def get_group_devices(self): + """ Return list of LVM2 Volume Group devices +-- +2.7.4 + diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-extended/python-blivet/python3-blivetgui_2.1.10.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-extended/python-blivet/python3-blivetgui_2.1.10.bb index 2ea81032..92402bee 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-extended/python-blivet/python3-blivetgui_2.1.10.bb +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-extended/python-blivet/python3-blivetgui_2.1.10.bb @@ -10,9 +10,10 @@ B = "${S}" SRCREV = "67ec0b7a0e065ba24ab87963409bfb21b2aac6dd" SRC_URI = "git://github.com/rhinstaller/blivet-gui;branch=master \ + file://0001-Fix-return-type-of-BlivetUtils.get_disks-1658893.patch \ " -inherit distro_features_check +inherit features_check REQUIRED_DISTRO_FEATURES = "x11 systemd" inherit setuptools3 python3native diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-extended/python-meh/python3-meh_0.47.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-extended/python-meh/python3-meh_0.47.bb deleted file mode 100644 index 95d6d183..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-extended/python-meh/python3-meh_0.47.bb +++ /dev/null @@ -1,17 +0,0 @@ -SUMMARY = "A python library for handling exceptions" -DESCRIPTION = "The python-meh package is a python library for handling, saving, and reporting \ -exceptions." -HOMEPAGE = "http://git.fedorahosted.org/git/?p=python-meh.git" -LICENSE = "GPLv2+" - -inherit setuptools3 - -S = "${WORKDIR}/git" - -SRC_URI = "git://github.com/rhinstaller/python-meh.git;protocol=https;branch=master \ -" -SRCREV = "78d868d99104317ce8820f39f61d207566e61a55" -LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263" - -FILES_${PN} += "${datadir}/*" - diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-extended/python-meh/python3-meh_0.48.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-extended/python-meh/python3-meh_0.48.bb new file mode 100644 index 00000000..9ca7a56b --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-extended/python-meh/python3-meh_0.48.bb @@ -0,0 +1,17 @@ +SUMMARY = "A python library for handling exceptions" +DESCRIPTION = "The python-meh package is a python library for handling, saving, and reporting \ +exceptions." +HOMEPAGE = "http://git.fedorahosted.org/git/?p=python-meh.git" +LICENSE = "GPLv2+" + +inherit setuptools3 + +S = "${WORKDIR}/git" + +SRC_URI = "git://github.com/rhinstaller/python-meh.git;protocol=https;branch=master \ +" +SRCREV = "760f78a634ecf0e2380abcbd751bc233d29300ef" +LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263" + +FILES_${PN} += "${datadir}/*" + diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-extended/python-pyephem/python-pyephem_3.7.6.0.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-extended/python-pyephem/python-pyephem_3.7.6.0.bb deleted file mode 100644 index e28ce6cc..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-extended/python-pyephem/python-pyephem_3.7.6.0.bb +++ /dev/null @@ -1,17 +0,0 @@ -SUMMARY = "PyEphem astronomical calculations" -HOMEPAGE = "http://rhodesmill.org/pyephem/" - -LICENSE = "LGPL-3.0" -LIC_FILES_CHKSUM = "file://COPYING;md5=f288303760f6e5ceaafe3aaa32186ab1" - -SRC_URI[md5sum] = "405a109f3017251ecd8c2890d850f649" -SRC_URI[sha256sum] = "7a4c82b1def2893e02aec0394f108d24adb17bd7b0ca6f4bc78eb7120c0212ac" - -PYPI_PACKAGE = "ephem" - -inherit pypi setuptools - -RDEPENDS_${PN} += "\ - ${PYTHON_PN}-datetime \ - ${PYTHON_PN}-math \ - " diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-extended/python-pyephem/python-pyephem_3.7.7.0.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-extended/python-pyephem/python-pyephem_3.7.7.0.bb new file mode 100644 index 00000000..422f0dbc --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-extended/python-pyephem/python-pyephem_3.7.7.0.bb @@ -0,0 +1,17 @@ +SUMMARY = "PyEphem astronomical calculations" +HOMEPAGE = "http://rhodesmill.org/pyephem/" + +LICENSE = "LGPL-3.0" +LIC_FILES_CHKSUM = "file://COPYING;md5=f288303760f6e5ceaafe3aaa32186ab1" + +SRC_URI[md5sum] = "46c035b4a903ff26e0d8ad0f1fe6cc35" +SRC_URI[sha256sum] = "607148429f85412915e32265779c0cf6d09f73aa97cf1ff0d101ac22c69c4436" + +PYPI_PACKAGE = "ephem" + +inherit pypi setuptools + +RDEPENDS_${PN} += "\ + ${PYTHON_PN}-datetime \ + ${PYTHON_PN}-math \ + " diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-extended/python-pykickstart/files/0003-comment-out-sections-shutdown-and-environment-in-gen.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-extended/python-pykickstart/files/0003-comment-out-sections-shutdown-and-environment-in-gen.patch index 81e351b1..7ab73468 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-extended/python-pykickstart/files/0003-comment-out-sections-shutdown-and-environment-in-gen.patch +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-extended/python-pykickstart/files/0003-comment-out-sections-shutdown-and-environment-in-gen.patch @@ -17,7 +17,7 @@ fixup! add comments of shutdown for user 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/pykickstart/commands/reboot.py b/pykickstart/commands/reboot.py -index 2c1b1c0..b3ec717 100644 +index 75a6d916..edfe83ff 100644 --- a/pykickstart/commands/reboot.py +++ b/pykickstart/commands/reboot.py @@ -43,6 +43,9 @@ class FC3_Reboot(KickstartCommand): @@ -31,18 +31,18 @@ index 2c1b1c0..b3ec717 100644 return retval diff --git a/pykickstart/parser.py b/pykickstart/parser.py -index e68174d..efd78a6 100644 +index bc59131b..b2d09d45 100644 --- a/pykickstart/parser.py +++ b/pykickstart/parser.py -@@ -385,7 +385,7 @@ class Packages(KickstartObject): +@@ -428,7 +428,7 @@ class Packages(KickstartObject): if not self.default: if self.environment: - pkgs += "@^%s\n" % self.environment + pkgs += "#@^%s\n" % self.environment - grps = self.groupList - grps.sort() + grps = self.groupList + grps.sort() -- 2.7.4 diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-extended/python-pykickstart/python3-pykickstart_3.18.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-extended/python-pykickstart/python3-pykickstart_3.18.bb deleted file mode 100644 index 1a038848..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-extended/python-pykickstart/python3-pykickstart_3.18.bb +++ /dev/null @@ -1,25 +0,0 @@ -DESCRIPTION = "A python library for manipulating kickstart files" -HOMEPAGE = "http://fedoraproject.org/wiki/pykickstart" -LICENSE = "GPLv2+" - -LIC_FILES_CHKSUM = "file://COPYING;md5=8ca43cbc842c2336e835926c2166c28b" -FILESEXTRAPATHS_prepend := "${THISDIR}/files:" - -DEPENDS = "python3" -RDEPENDS_${PN} = "python3 \ - python3-requests \ - python3-six \ -" - -S = "${WORKDIR}/git" -SRC_URI = "git://github.com/rhinstaller/pykickstart.git;protocol=https;branch=master \ - file://0001-support-authentication-for-kickstart.patch \ - file://0002-pykickstart-parser.py-add-lock-for-readKickstart-and.patch \ - file://0003-comment-out-sections-shutdown-and-environment-in-gen.patch \ - file://0004-load.py-retry-to-invoke-request-with-timeout.patch \ - " -SRCREV = "ad942f2644337c4672c7a22bd24a5b7268c1f5e9" - -UPSTREAM_CHECK_GITTAGREGEX = "r(?P\d+(\.\d+)+(-\d+)*)" - -inherit setuptools3 diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-extended/python-pykickstart/python3-pykickstart_3.22.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-extended/python-pykickstart/python3-pykickstart_3.22.bb new file mode 100644 index 00000000..041abd3e --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-extended/python-pykickstart/python3-pykickstart_3.22.bb @@ -0,0 +1,25 @@ +DESCRIPTION = "A python library for manipulating kickstart files" +HOMEPAGE = "http://fedoraproject.org/wiki/pykickstart" +LICENSE = "GPLv2+" + +LIC_FILES_CHKSUM = "file://COPYING;md5=8ca43cbc842c2336e835926c2166c28b" +FILESEXTRAPATHS_prepend := "${THISDIR}/files:" + +DEPENDS = "python3" +RDEPENDS_${PN} = "python3 \ + python3-requests \ + python3-six \ +" + +S = "${WORKDIR}/git" +SRC_URI = "git://github.com/rhinstaller/pykickstart.git;protocol=https;branch=master \ + file://0001-support-authentication-for-kickstart.patch \ + file://0002-pykickstart-parser.py-add-lock-for-readKickstart-and.patch \ + file://0003-comment-out-sections-shutdown-and-environment-in-gen.patch \ + file://0004-load.py-retry-to-invoke-request-with-timeout.patch \ + " +SRCREV = "674c17b1e231f56a0d8a5ced4a204cdbc4c1edf3" + +UPSTREAM_CHECK_GITTAGREGEX = "r(?P\d+(\.\d+)+(-\d+)*)" + +inherit setuptools3 diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-extended/python-pyparted/python-pyparted.inc b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-extended/python-pyparted/python-pyparted.inc index a0ec0281..97054487 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-extended/python-pyparted/python-pyparted.inc +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-extended/python-pyparted/python-pyparted.inc @@ -11,7 +11,7 @@ LIC_FILES_CHKSUM = "\ DEPENDS += "parted" # upstream only publishes releases in github archives which are discouraged -SRCREV = "1fdb15120f35f5da1dc7ec116522f0c796a8376a" +SRCREV = "481510c10866851844b19f3d2ffcdaa37efc0cf8" SRC_URI = "git://github.com/rhinstaller/pyparted.git;protocol=https" S = "${WORKDIR}/git" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-extended/python-pyparted/python-pyparted_3.11.1.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-extended/python-pyparted/python-pyparted_3.11.3.bb similarity index 100% rename from Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-extended/python-pyparted/python-pyparted_3.11.1.bb rename to Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-extended/python-pyparted/python-pyparted_3.11.3.bb diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-extended/python-pyparted/python3-pyparted_3.11.1.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-extended/python-pyparted/python3-pyparted_3.11.3.bb similarity index 100% rename from Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-extended/python-pyparted/python3-pyparted_3.11.1.bb rename to Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-extended/python-pyparted/python3-pyparted_3.11.3.bb diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-extended/pywbem/python-pywbem.inc b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-extended/pywbem/python-pywbem.inc index 5151c33e..98508b0c 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-extended/pywbem/python-pywbem.inc +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-extended/pywbem/python-pywbem.inc @@ -14,12 +14,15 @@ It also provides a Python provider interface, and is the fastest and easiest \ way to write providers on the planet." HOMEPAGE = "http://pywbem.github.io" LICENSE = "LGPLv2.1" -LIC_FILES_CHKSUM = "file://pywbem/LICENSE.txt;md5=fbc093901857fcd118f065f900982c24" -SRC_URI[md5sum] = "1465dfa92e4cbe558c773838b9b00711" -SRC_URI[sha256sum] = "2a05f2c1a6ab4b08560a6da55fdaabd0f52f4d1e6df6e288b9ed927bf5c289ed" +LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=fbc093901857fcd118f065f900982c24" inherit pypi +SRCREV = "b3386b3bee8876d15f0745147c0b08937d8ab18e" +PYPI_SRC_URI = "git://github.com/pywbem/pywbem;protocol=https;branch=stable_0.15" + +S = "${WORKDIR}/git" + DEPENDS += " \ ${PYTHON_PN}-ply-native \ ${PYTHON_PN}-pyyaml-native \ diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-extended/pywbem/python-pywbem_0.11.0.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-extended/pywbem/python-pywbem_0.15.0.bb similarity index 100% rename from Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-extended/pywbem/python-pywbem_0.11.0.bb rename to Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-extended/pywbem/python-pywbem_0.15.0.bb diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-extended/pywbem/python3-pywbem_0.11.0.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-extended/pywbem/python3-pywbem_0.15.0.bb similarity index 100% rename from Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-extended/pywbem/python3-pywbem_0.11.0.bb rename to Contrib-Inspur/openbmc/meta-openembedded/meta-python/recipes-extended/pywbem/python3-pywbem_0.15.0.bb diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-webserver/conf/layer.conf b/Contrib-Inspur/openbmc/meta-openembedded/meta-webserver/conf/layer.conf index 0d694789..2c6fad4a 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-webserver/conf/layer.conf +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-webserver/conf/layer.conf @@ -17,10 +17,11 @@ LAYERVERSION_webserver = "1" LAYERDEPENDS_webserver = "core openembedded-layer" -LAYERSERIES_COMPAT_webserver = "thud warrior" +LAYERSERIES_COMPAT_webserver = "thud warrior zeus" LICENSE_PATH += "${LAYERDIR}/licenses" SIGGEN_EXCLUDE_SAFE_RECIPE_DEPS += " \ phpmyadmin->bash \ + phpmyadmin->php \ " diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-webserver/recipes-httpd/apache-mod/apache-websocket_git.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-webserver/recipes-httpd/apache-mod/apache-websocket_git.bb index c44efb6c..3cbab22c 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-webserver/recipes-httpd/apache-mod/apache-websocket_git.bb +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-webserver/recipes-httpd/apache-mod/apache-websocket_git.bb @@ -25,9 +25,9 @@ EXTRA_OECONF = "APACHECTL=${STAGING_DIR_TARGET}${sbindir}/apachectl \ LIBTOOL=${STAGING_DIR_TARGET}${bindir_crossscripts}/${HOST_SYS}-libtool" do_install() { - install -d ${D}${libdir}/apache2/modules - install -m 755 ${B}/.libs/mod_websocket.so ${D}${libdir}/apache2/modules + install -d ${D}${libexecdir}/apache2/modules + install -m 755 ${B}/.libs/mod_websocket.so ${D}${libexecdir}/apache2/modules } -FILES_${PN} += " ${libdir}/apache2/modules/* " -FILES_${PN}-dbg += " ${libdir}/apache2/modules/.debug/* " +FILES_${PN} += " ${libexecdir}/apache2/modules/* " +FILES_${PN}-dbg += " ${libexecdir}/apache2/modules/.debug/* " diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-webserver/recipes-httpd/apache2/apache2_2.4.39.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-webserver/recipes-httpd/apache2/apache2_2.4.39.bb deleted file mode 100644 index da96086e..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-webserver/recipes-httpd/apache2/apache2_2.4.39.bb +++ /dev/null @@ -1,215 +0,0 @@ -DESCRIPTION = "The Apache HTTP Server is a powerful, efficient, and \ -extensible web server." -SUMMARY = "Apache HTTP Server" -HOMEPAGE = "http://httpd.apache.org/" -SECTION = "net" -LICENSE = "Apache-2.0" - -SRC_URI = "${APACHE_MIRROR}/httpd/httpd-${PV}.tar.bz2 \ - file://0001-configure-use-pkg-config-for-PCRE-detection.patch \ - file://0002-apache2-bump-up-the-core-size-limit-if-CoreDumpDirec.patch \ - file://0003-apache2-do-not-export-apr-apr-util-symbols-when-usin.patch \ - file://0004-apache2-log-the-SELinux-context-at-startup.patch \ - file://0005-replace-lynx-to-curl-in-apachectl-script.patch \ - file://0006-apache2-fix-the-race-issue-of-parallel-installation.patch \ - file://0007-apache2-allow-to-disable-selinux-support.patch \ - file://apache-configure_perlbin.patch \ - " - -SRC_URI_append_class-target = " \ - file://0008-apache2-do-not-use-relative-path-for-gen_test_char.patch \ - file://init \ - file://apache2-volatile.conf \ - file://apache2.service \ - file://volatiles.04_apache2 \ - " - -LIC_FILES_CHKSUM = "file://LICENSE;md5=d52d0fd0bc788f068e647116c01ddfcd" -SRC_URI[md5sum] = "930e217ba2d71e708a3f1521ecae7ec0" -SRC_URI[sha256sum] = "b4ca9d05773aa59b54d66cd8f4744b945289f084d3be17d7981d1783a5decfa2" - -S = "${WORKDIR}/httpd-${PV}" - -inherit autotools update-rc.d pkgconfig systemd update-alternatives - -DEPENDS = "openssl expat pcre apr apr-util apache2-native " - -CVE_PRODUCT = "http_server" - -SSTATE_SCAN_FILES += "apxs config_vars.mk config.nice" - -PACKAGECONFIG ?= "${@bb.utils.filter('DISTRO_FEATURES', 'selinux', d)}" -PACKAGECONFIG[selinux] = "--enable-selinux,--disable-selinux,libselinux,libselinux" -PACKAGECONFIG[openldap] = "--enable-ldap --enable-authnz-ldap,--disable-ldap --disable-authnz-ldap,openldap" -PACKAGECONFIG[zlib] = "--enable-deflate,,zlib,zlib" - -CFLAGS_append = " -DPATH_MAX=4096" - -EXTRA_OECONF_class-target = "\ - --enable-layout=Debian \ - --prefix=${base_prefix} \ - --exec_prefix=${exec_prefix} \ - --includedir=${includedir}/${BPN} \ - --sysconfdir=${sysconfdir}/${BPN} \ - --datadir=${datadir}/${BPN} \ - --libdir=${libdir} \ - --libexecdir=${libdir}/${BPN}/modules \ - --localstatedir=${localstatedir} \ - --enable-ssl \ - --with-dbm=sdbm \ - --with-gdbm=no \ - --with-ndbm=no \ - --with-berkeley-db=no \ - --enable-info \ - --enable-rewrite \ - --enable-mpms-shared \ - ap_cv_void_ptr_lt_long=no \ - ac_cv_have_threadsafe_pollset=no \ - " - -EXTRA_OECONF_class-native = "\ - --prefix=${prefix} \ - --includedir=${includedir}/${BPN} \ - --sysconfdir=${sysconfdir}/${BPN} \ - --datadir=${datadir}/${BPN} \ - --libdir=${libdir} \ - --libexecdir=${libdir}/${BPN}/modules \ - --localstatedir=${localstatedir} \ - " - -do_configure_prepend() { - sed -i -e 's:$''{prefix}/usr/lib/cgi-bin:$''{libdir}/cgi-bin:g' ${S}/config.layout -} - -do_install_append_class-target() { - install -d ${D}/${sysconfdir}/init.d - - cat ${WORKDIR}/init | \ - sed -e 's,/usr/sbin/,${sbindir}/,g' \ - -e 's,/usr/bin/,${bindir}/,g' \ - -e 's,/usr/lib/,${libdir}/,g' \ - -e 's,/etc/,${sysconfdir}/,g' \ - -e 's,/usr/,${prefix}/,g' > ${D}/${sysconfdir}/init.d/${BPN} - - chmod 755 ${D}/${sysconfdir}/init.d/${BPN} - - # Remove the goofy original files... - rm -rf ${D}/${sysconfdir}/${BPN}/original - - install -d ${D}${sysconfdir}/${BPN}/conf.d - install -d ${D}${sysconfdir}/${BPN}/modules.d - - # Ensure configuration file pulls in conf.d and modules.d - printf "\nIncludeOptional ${sysconfdir}/${BPN}/conf.d/*.conf" >> ${D}/${sysconfdir}/${BPN}/httpd.conf - printf "\nIncludeOptional ${sysconfdir}/${BPN}/modules.d/*.load" >> ${D}/${sysconfdir}/${BPN}/httpd.conf - printf "\nIncludeOptional ${sysconfdir}/${BPN}/modules.d/*.conf\n\n" >> ${D}/${sysconfdir}/${BPN}/httpd.conf - - # Match with that is in init script - printf "\nPidFile /run/httpd.pid" >> ${D}/${sysconfdir}/${BPN}/httpd.conf - - # Set 'ServerName' to fix error messages when restart apache service - sed -i 's/^#ServerName www.example.com/ServerName localhost/' ${D}/${sysconfdir}/${BPN}/httpd.conf - - sed -i 's/^ServerRoot/#ServerRoot/' ${D}/${sysconfdir}/${BPN}/httpd.conf - - sed -i -e 's,${STAGING_DIR_TARGET},,g' \ - -e 's,${DEBUG_PREFIX_MAP},,g' \ - -e 's,-fdebug-prefix-map[^ ]*,,g; s,-fmacro-prefix-map[^ ]*,,g' \ - -e 's,${HOSTTOOLS_DIR}/,,g' \ - -e 's,APU_INCLUDEDIR = .*,APU_INCLUDEDIR = ,g' \ - -e 's,APU_CONFIG = .*,APU_CONFIG = ,g' ${D}${datadir}/apache2/build/config_vars.mk - - sed -i -e 's,--sysroot=${STAGING_DIR_TARGET},,g' \ - -e 's,${DEBUG_PREFIX_MAP},,g' \ - -e 's,${RECIPE_SYSROOT},,g' \ - -e 's,-fdebug-prefix-map[^ ]*,,g; s,-fmacro-prefix-map[^ ]*,,g' \ - -e 's,APU_INCLUDEDIR = .*,APU_INCLUDEDIR = ,g' \ - -e 's,".*/configure","configure",g' ${D}${datadir}/apache2/build/config.nice - - if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then - install -d ${D}${sysconfdir}/tmpfiles.d/ - install -m 0644 ${WORKDIR}/apache2-volatile.conf ${D}${sysconfdir}/tmpfiles.d/ - - install -d ${D}${systemd_unitdir}/system - install -m 0644 ${WORKDIR}/apache2.service ${D}${systemd_unitdir}/system - sed -i -e 's,@SBINDIR@,${sbindir},g' ${D}${systemd_unitdir}/system/apache2.service - sed -i -e 's,@BASE_BINDIR@,${base_bindir},g' ${D}${systemd_unitdir}/system/apache2.service - elif ${@bb.utils.contains('DISTRO_FEATURES', 'sysvinit', 'true', 'false', d)}; then - install -d ${D}${sysconfdir}/default/volatiles - install -m 0644 ${WORKDIR}/volatiles.04_apache2 ${D}${sysconfdir}/default/volatiles/04_apache2 - fi - - rm -rf ${D}${localstatedir} - chown -R root:root ${D} -} - -do_install_append_class-native() { - install -d ${D}${bindir} ${D}${libdir} - install -m 755 server/gen_test_char ${D}${bindir} -} - -SYSROOT_PREPROCESS_FUNCS_append_class-target = " apache_sysroot_preprocess" - -apache_sysroot_preprocess() { - install -d ${SYSROOT_DESTDIR}${bindir_crossscripts} - install -m 755 ${D}${bindir}/apxs ${SYSROOT_DESTDIR}${bindir_crossscripts} - install -d ${SYSROOT_DESTDIR}${sbindir} - install -m 755 ${D}${sbindir}/apachectl ${SYSROOT_DESTDIR}${sbindir} - sed -i 's!my $installbuilddir = .*!my $installbuilddir = "${STAGING_DIR_HOST}/${datadir}/${BPN}/build";!' ${SYSROOT_DESTDIR}${bindir_crossscripts}/apxs - sed -i 's!my $libtool = .*!my $libtool = "${STAGING_BINDIR_CROSS}/${HOST_SYS}-libtool";!' ${SYSROOT_DESTDIR}${bindir_crossscripts}/apxs - - sed -i 's!^APR_CONFIG = .*!APR_CONFIG = ${STAGING_BINDIR_CROSS}/apr-1-config!' ${SYSROOT_DESTDIR}${datadir}/${BPN}/build/config_vars.mk - sed -i 's!^APU_CONFIG = .*!APU_CONFIG = ${STAGING_BINDIR_CROSS}/apu-1-config!' ${SYSROOT_DESTDIR}${datadir}/${BPN}/build/config_vars.mk - sed -i 's!^includedir = .*!includedir = ${STAGING_INCDIR}/apache2!' ${SYSROOT_DESTDIR}${datadir}/${BPN}/build/config_vars.mk - sed -i 's!^CFLAGS = -I[^ ]*!CFLAGS = -I${STAGING_INCDIR}/openssl!' ${SYSROOT_DESTDIR}${datadir}/${BPN}/build/config_vars.mk - sed -i 's!^EXTRA_LDFLAGS = .*!EXTRA_LDFLAGS = -L${STAGING_LIBDIR}!' ${SYSROOT_DESTDIR}${datadir}/${BPN}/build/config_vars.mk - sed -i 's!^EXTRA_INCLUDES = .*!EXTRA_INCLUDES = -I$(includedir) -I. -I${STAGING_INCDIR}!' ${SYSROOT_DESTDIR}${datadir}/${BPN}/build/config_vars.mk - sed -i 's!--sysroot=[^ ]*!--sysroot=${STAGING_DIR_HOST}!' ${SYSROOT_DESTDIR}${datadir}/${BPN}/build/config_vars.mk -} - -# Implications - used by update-rc.d scripts -INITSCRIPT_NAME = "apache2" -INITSCRIPT_PARAMS = "defaults 91 20" - -SYSTEMD_SERVICE_${PN} = "apache2.service" -SYSTEMD_AUTO_ENABLE_${PN} = "enable" - -ALTERNATIVE_${PN}-doc = "htpasswd.1" -ALTERNATIVE_LINK_NAME[htpasswd.1] = "${mandir}/man1/htpasswd.1" - -PACKAGES = "${PN}-scripts ${PN}-doc ${PN}-dev ${PN}-dbg ${PN}" - -CONFFILES_${PN} = "${sysconfdir}/${BPN}/httpd.conf \ - ${sysconfdir}/${BPN}/magic \ - ${sysconfdir}/${BPN}/mime.types \ - ${sysconfdir}/${BPN}/extra/*" - -# We override here rather than append so that .so links are -# included in the runtime package rather than here (-dev) -# and to get build, icons, error into the -dev package -FILES_${PN}-dev = "${datadir}/${BPN}/build \ - ${datadir}/${BPN}/icons \ - ${datadir}/${BPN}/error \ - ${includedir}/${BPN} \ - ${bindir}/apxs \ - " - -# Add the manual to -doc -FILES_${PN}-doc += " ${datadir}/${BPN}/manual" - -FILES_${PN}-scripts += "${bindir}/dbmmanage" - -# Override this too - here is the default, less datadir -FILES_${PN} = "${bindir} ${sbindir} ${libexecdir} ${libdir} \ - ${sysconfdir} ${libdir}/${BPN}" - -# We want htdocs and cgi-bin to go with the binary -FILES_${PN} += "${datadir}/${BPN}/ ${libdir}/cgi-bin" - -FILES_${PN}-dbg += "${libdir}/${BPN}/modules/.debug" - -RDEPENDS_${PN} += "openssl libgcc" -RDEPENDS_${PN}-scripts += "perl ${PN}" -RDEPENDS_${PN}-dev = "perl" - -BBCLASSEXTEND = "native" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-webserver/recipes-httpd/apache2/apache2_2.4.41.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-webserver/recipes-httpd/apache2/apache2_2.4.41.bb new file mode 100644 index 00000000..a34734c2 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-webserver/recipes-httpd/apache2/apache2_2.4.41.bb @@ -0,0 +1,215 @@ +DESCRIPTION = "The Apache HTTP Server is a powerful, efficient, and \ +extensible web server." +SUMMARY = "Apache HTTP Server" +HOMEPAGE = "http://httpd.apache.org/" +SECTION = "net" +LICENSE = "Apache-2.0" + +SRC_URI = "${APACHE_MIRROR}/httpd/httpd-${PV}.tar.bz2 \ + file://0001-configure-use-pkg-config-for-PCRE-detection.patch \ + file://0002-apache2-bump-up-the-core-size-limit-if-CoreDumpDirec.patch \ + file://0003-apache2-do-not-export-apr-apr-util-symbols-when-usin.patch \ + file://0004-apache2-log-the-SELinux-context-at-startup.patch \ + file://0005-replace-lynx-to-curl-in-apachectl-script.patch \ + file://0006-apache2-fix-the-race-issue-of-parallel-installation.patch \ + file://0007-apache2-allow-to-disable-selinux-support.patch \ + file://apache-configure_perlbin.patch \ + " + +SRC_URI_append_class-target = " \ + file://0008-apache2-do-not-use-relative-path-for-gen_test_char.patch \ + file://init \ + file://apache2-volatile.conf \ + file://apache2.service \ + file://volatiles.04_apache2 \ + " + +LIC_FILES_CHKSUM = "file://LICENSE;md5=d52d0fd0bc788f068e647116c01ddfcd" +SRC_URI[md5sum] = "dfc674f8f454e3bc2d4ccd73ad3b5f1e" +SRC_URI[sha256sum] = "133d48298fe5315ae9366a0ec66282fa4040efa5d566174481077ade7d18ea40" + +S = "${WORKDIR}/httpd-${PV}" + +inherit autotools update-rc.d pkgconfig systemd update-alternatives + +DEPENDS = "openssl expat pcre apr apr-util apache2-native " + +CVE_PRODUCT = "http_server" + +SSTATE_SCAN_FILES += "apxs config_vars.mk config.nice" + +PACKAGECONFIG ?= "${@bb.utils.filter('DISTRO_FEATURES', 'selinux', d)}" +PACKAGECONFIG[selinux] = "--enable-selinux,--disable-selinux,libselinux,libselinux" +PACKAGECONFIG[openldap] = "--enable-ldap --enable-authnz-ldap,--disable-ldap --disable-authnz-ldap,openldap" +PACKAGECONFIG[zlib] = "--enable-deflate,,zlib,zlib" + +CFLAGS_append = " -DPATH_MAX=4096" + +EXTRA_OECONF_class-target = "\ + --enable-layout=Debian \ + --prefix=${base_prefix} \ + --exec_prefix=${exec_prefix} \ + --includedir=${includedir}/${BPN} \ + --sysconfdir=${sysconfdir}/${BPN} \ + --datadir=${datadir}/${BPN} \ + --libdir=${libdir} \ + --libexecdir=${libexecdir}/${BPN}/modules \ + --localstatedir=${localstatedir} \ + --enable-ssl \ + --with-dbm=sdbm \ + --with-gdbm=no \ + --with-ndbm=no \ + --with-berkeley-db=no \ + --enable-info \ + --enable-rewrite \ + --enable-mpms-shared \ + ap_cv_void_ptr_lt_long=no \ + ac_cv_have_threadsafe_pollset=no \ + " + +EXTRA_OECONF_class-native = "\ + --prefix=${prefix} \ + --includedir=${includedir}/${BPN} \ + --sysconfdir=${sysconfdir}/${BPN} \ + --datadir=${datadir}/${BPN} \ + --libdir=${libdir} \ + --libexecdir=${libdir}/${BPN}/modules \ + --localstatedir=${localstatedir} \ + " + +do_configure_prepend() { + sed -i -e 's:$''{prefix}/usr/lib/cgi-bin:$''{libexecdir}/cgi-bin:g' ${S}/config.layout +} + +do_install_append_class-target() { + install -d ${D}/${sysconfdir}/init.d + + cat ${WORKDIR}/init | \ + sed -e 's,/usr/sbin/,${sbindir}/,g' \ + -e 's,/usr/bin/,${bindir}/,g' \ + -e 's,/usr/lib/,${libdir}/,g' \ + -e 's,/etc/,${sysconfdir}/,g' \ + -e 's,/usr/,${prefix}/,g' > ${D}/${sysconfdir}/init.d/${BPN} + + chmod 755 ${D}/${sysconfdir}/init.d/${BPN} + + # Remove the goofy original files... + rm -rf ${D}/${sysconfdir}/${BPN}/original + + install -d ${D}${sysconfdir}/${BPN}/conf.d + install -d ${D}${sysconfdir}/${BPN}/modules.d + + # Ensure configuration file pulls in conf.d and modules.d + printf "\nIncludeOptional ${sysconfdir}/${BPN}/conf.d/*.conf" >> ${D}/${sysconfdir}/${BPN}/httpd.conf + printf "\nIncludeOptional ${sysconfdir}/${BPN}/modules.d/*.load" >> ${D}/${sysconfdir}/${BPN}/httpd.conf + printf "\nIncludeOptional ${sysconfdir}/${BPN}/modules.d/*.conf\n\n" >> ${D}/${sysconfdir}/${BPN}/httpd.conf + + # Match with that is in init script + printf "\nPidFile /run/httpd.pid" >> ${D}/${sysconfdir}/${BPN}/httpd.conf + + # Set 'ServerName' to fix error messages when restart apache service + sed -i 's/^#ServerName www.example.com/ServerName localhost/' ${D}/${sysconfdir}/${BPN}/httpd.conf + + sed -i 's/^ServerRoot/#ServerRoot/' ${D}/${sysconfdir}/${BPN}/httpd.conf + + sed -i -e 's,${STAGING_DIR_TARGET},,g' \ + -e 's,${DEBUG_PREFIX_MAP},,g' \ + -e 's,-fdebug-prefix-map[^ ]*,,g; s,-fmacro-prefix-map[^ ]*,,g' \ + -e 's,${HOSTTOOLS_DIR}/,,g' \ + -e 's,APU_INCLUDEDIR = .*,APU_INCLUDEDIR = ,g' \ + -e 's,APU_CONFIG = .*,APU_CONFIG = ,g' ${D}${datadir}/apache2/build/config_vars.mk + + sed -i -e 's,--sysroot=${STAGING_DIR_TARGET},,g' \ + -e 's,${DEBUG_PREFIX_MAP},,g' \ + -e 's,${RECIPE_SYSROOT},,g' \ + -e 's,-fdebug-prefix-map[^ ]*,,g; s,-fmacro-prefix-map[^ ]*,,g' \ + -e 's,APU_INCLUDEDIR = .*,APU_INCLUDEDIR = ,g' \ + -e 's,".*/configure","configure",g' ${D}${datadir}/apache2/build/config.nice + + if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then + install -d ${D}${sysconfdir}/tmpfiles.d/ + install -m 0644 ${WORKDIR}/apache2-volatile.conf ${D}${sysconfdir}/tmpfiles.d/ + + install -d ${D}${systemd_unitdir}/system + install -m 0644 ${WORKDIR}/apache2.service ${D}${systemd_unitdir}/system + sed -i -e 's,@SBINDIR@,${sbindir},g' ${D}${systemd_unitdir}/system/apache2.service + sed -i -e 's,@BASE_BINDIR@,${base_bindir},g' ${D}${systemd_unitdir}/system/apache2.service + elif ${@bb.utils.contains('DISTRO_FEATURES', 'sysvinit', 'true', 'false', d)}; then + install -d ${D}${sysconfdir}/default/volatiles + install -m 0644 ${WORKDIR}/volatiles.04_apache2 ${D}${sysconfdir}/default/volatiles/04_apache2 + fi + + rm -rf ${D}${localstatedir} ${D}${sbindir}/envvars* + chown -R root:root ${D} +} + +do_install_append_class-native() { + install -d ${D}${bindir} ${D}${libdir} + install -m 755 server/gen_test_char ${D}${bindir} +} + +SYSROOT_PREPROCESS_FUNCS_append_class-target = " apache_sysroot_preprocess" + +apache_sysroot_preprocess() { + install -d ${SYSROOT_DESTDIR}${bindir_crossscripts} + install -m 755 ${D}${bindir}/apxs ${SYSROOT_DESTDIR}${bindir_crossscripts} + install -d ${SYSROOT_DESTDIR}${sbindir} + install -m 755 ${D}${sbindir}/apachectl ${SYSROOT_DESTDIR}${sbindir} + sed -i 's!my $installbuilddir = .*!my $installbuilddir = "${STAGING_DIR_HOST}/${datadir}/${BPN}/build";!' ${SYSROOT_DESTDIR}${bindir_crossscripts}/apxs + sed -i 's!my $libtool = .*!my $libtool = "${STAGING_BINDIR_CROSS}/${HOST_SYS}-libtool";!' ${SYSROOT_DESTDIR}${bindir_crossscripts}/apxs + + sed -i 's!^APR_CONFIG = .*!APR_CONFIG = ${STAGING_BINDIR_CROSS}/apr-1-config!' ${SYSROOT_DESTDIR}${datadir}/${BPN}/build/config_vars.mk + sed -i 's!^APU_CONFIG = .*!APU_CONFIG = ${STAGING_BINDIR_CROSS}/apu-1-config!' ${SYSROOT_DESTDIR}${datadir}/${BPN}/build/config_vars.mk + sed -i 's!^includedir = .*!includedir = ${STAGING_INCDIR}/apache2!' ${SYSROOT_DESTDIR}${datadir}/${BPN}/build/config_vars.mk + sed -i 's!^CFLAGS = -I[^ ]*!CFLAGS = -I${STAGING_INCDIR}/openssl!' ${SYSROOT_DESTDIR}${datadir}/${BPN}/build/config_vars.mk + sed -i 's!^EXTRA_LDFLAGS = .*!EXTRA_LDFLAGS = -L${STAGING_LIBDIR}!' ${SYSROOT_DESTDIR}${datadir}/${BPN}/build/config_vars.mk + sed -i 's!^EXTRA_INCLUDES = .*!EXTRA_INCLUDES = -I$(includedir) -I. -I${STAGING_INCDIR}!' ${SYSROOT_DESTDIR}${datadir}/${BPN}/build/config_vars.mk + sed -i 's!--sysroot=[^ ]*!--sysroot=${STAGING_DIR_HOST}!' ${SYSROOT_DESTDIR}${datadir}/${BPN}/build/config_vars.mk +} + +# Implications - used by update-rc.d scripts +INITSCRIPT_NAME = "apache2" +INITSCRIPT_PARAMS = "defaults 91 20" + +SYSTEMD_SERVICE_${PN} = "apache2.service" +SYSTEMD_AUTO_ENABLE_${PN} = "enable" + +ALTERNATIVE_${PN}-doc = "htpasswd.1" +ALTERNATIVE_LINK_NAME[htpasswd.1] = "${mandir}/man1/htpasswd.1" + +PACKAGES = "${PN}-scripts ${PN}-doc ${PN}-dev ${PN}-dbg ${PN}" + +CONFFILES_${PN} = "${sysconfdir}/${BPN}/httpd.conf \ + ${sysconfdir}/${BPN}/magic \ + ${sysconfdir}/${BPN}/mime.types \ + ${sysconfdir}/${BPN}/extra/*" + +# We override here rather than append so that .so links are +# included in the runtime package rather than here (-dev) +# and to get build, icons, error into the -dev package +FILES_${PN}-dev = "${datadir}/${BPN}/build \ + ${datadir}/${BPN}/icons \ + ${datadir}/${BPN}/error \ + ${includedir}/${BPN} \ + ${bindir}/apxs \ + " + +# Add the manual to -doc +FILES_${PN}-doc += " ${datadir}/${BPN}/manual" + +FILES_${PN}-scripts += "${bindir}/dbmmanage" + +# Override this too - here is the default, less datadir +FILES_${PN} = "${bindir} ${sbindir} ${libexecdir} ${libdir} \ + ${sysconfdir} ${libdir}/${BPN}" + +# We want htdocs and cgi-bin to go with the binary +FILES_${PN} += "${datadir}/${BPN}/ ${libdir}/cgi-bin" + +FILES_${PN}-dbg += "${libdir}/${BPN}/modules/.debug" + +RDEPENDS_${PN} += "openssl libgcc" +RDEPENDS_${PN}-scripts += "perl ${PN}" +RDEPENDS_${PN}-dev = "perl" + +BBCLASSEXTEND = "native" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-webserver/recipes-httpd/cherokee/cherokee/0001-common-internal.h-Define-LLONG_MAX-if-undefined.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-webserver/recipes-httpd/cherokee/cherokee/0001-common-internal.h-Define-LLONG_MAX-if-undefined.patch new file mode 100644 index 00000000..0f438427 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-webserver/recipes-httpd/cherokee/cherokee/0001-common-internal.h-Define-LLONG_MAX-if-undefined.patch @@ -0,0 +1,47 @@ +From c73415021f3f3b2b30062ab74b25fe49c51c2242 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Sun, 10 Nov 2019 15:59:44 -0800 +Subject: [PATCH] common-internal.h: Define LLONG_MAX if undefined + +time_t can also be long long type, therefore check for that as fallback +Fixes build on 32bit hosts where time_t is fixed for Y2K38 + +Upstream-Status: Pending +Signed-off-by: Khem Raj +--- + cherokee/common-internal.h | 12 ++++++++++++ + 1 file changed, 12 insertions(+) + +diff --git a/cherokee/common-internal.h b/cherokee/common-internal.h +index 5c28da97..5646ec0f 100644 +--- a/cherokee/common-internal.h ++++ b/cherokee/common-internal.h +@@ -222,6 +222,16 @@ char *strcasestr(char *s, char *find); + # endif + #endif + ++/* Long Long limit ++ */ ++#ifndef LLONG_MAX ++# if (__SIZEOF_LONG_LONG__ == 8) ++# define LLONG_MAX 0x7fffffffffffffffLL ++# else ++# error "Can't define LLONG_MAX" ++# endif ++#endif ++ + /* time_t limit + */ + #ifndef TIME_MAX +@@ -229,6 +239,8 @@ char *strcasestr(char *s, char *find); + # define TIME_MAX ((time_t)INT_MAX) + # elif (SIZEOF_TIME_T == SIZEOF_LONG) + # define TIME_MAX ((time_t)LONG_MAX) ++# elif (SIZEOF_TIME_T == __SIZEOF_LONG_LONG__) ++# define TIME_MAX ((time_t)LLONG_MAX) + # else + # error "Can't define TIME_MAX" + # endif +-- +2.24.0 + diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-webserver/recipes-httpd/cherokee/cherokee_git.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-webserver/recipes-httpd/cherokee/cherokee_git.bb index 3f7eae4c..490fc53f 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-webserver/recipes-httpd/cherokee/cherokee_git.bb +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-webserver/recipes-httpd/cherokee/cherokee_git.bb @@ -7,7 +7,7 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f" DEPENDS = "unzip-native libpcre openssl mysql5 ${@bb.utils.contains('DISTRO_FEATURES', 'pam', 'libpam', '', d)}" -SRCREV = "75f041e2255e6dd0692db2f14611c2647dbe8425" +SRCREV = "9a75e65b876bcc376cb6b379dca1f7ce4a055c59" PV = "1.2.104+git${SRCPV}" SRC_URI = "git://github.com/cherokee/webserver \ file://cherokee.init \ @@ -15,6 +15,7 @@ SRC_URI = "git://github.com/cherokee/webserver \ file://cherokee-install-configured.py-once.patch \ file://0001-configure.ac-Add-foreign-to-AM_INIT_AUTOMAKE.patch \ file://0001-make-Do-not-build-po-files.patch \ + file://0001-common-internal.h-Define-LLONG_MAX-if-undefined.patch \ " S = "${WORKDIR}/git" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-webserver/recipes-httpd/nginx/nginx.inc b/Contrib-Inspur/openbmc/meta-openembedded/meta-webserver/recipes-httpd/nginx/nginx.inc index e202e856..0d229ff4 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-webserver/recipes-httpd/nginx/nginx.inc +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-webserver/recipes-httpd/nginx/nginx.inc @@ -93,9 +93,9 @@ do_install () { >> ${D}${sysconfdir}/tmpfiles.d/${BPN}.conf fi install -d ${D}${sysconfdir}/${BPN} - ln -snf ${localstatedir}/run/${BPN} ${D}${sysconfdir}/${BPN}/run + lnr ${D}${localstatedir}/run/${BPN} ${D}${sysconfdir}/${BPN}/run install -d ${D}${NGINX_WWWDIR} - mv ${D}/usr/html ${D}${NGINX_WWWDIR}/ + mv ${D}${exec_prefix}/html ${D}${NGINX_WWWDIR}/ chown ${NGINX_USER}:www-data -R ${D}${NGINX_WWWDIR} install -d ${D}${sysconfdir}/init.d diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-webserver/recipes-httpd/sthttpd/sthttpd_2.27.1.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-webserver/recipes-httpd/sthttpd/sthttpd_2.27.1.bb index 8632b97f..560dd9b6 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-webserver/recipes-httpd/sthttpd/sthttpd_2.27.1.bb +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-webserver/recipes-httpd/sthttpd/sthttpd_2.27.1.bb @@ -6,18 +6,16 @@ LIC_FILES_CHKSUM = "file://src/thttpd.c;beginline=1;endline=26;md5=0c5762c2c34dc DEPENDS += "base-passwd virtual/crypt" -SRC_URI = "https://github.com/blueness/${BPN}/archive/v${PV}.tar.gz;downloadfilename=${BP}.tar.gz \ +SRCREV = "2845bf5bff2b820d2336c8c8061cbfc5f271e720" +SRC_URI = "git://github.com/blueness/${BPN} \ file://thttpd.service \ file://thttpd.conf \ file://init" -SRC_URI[md5sum] = "3cda1b6c8c8542b1510eadb8e540d8b6" -SRC_URI[sha256sum] = "a1ee2806432eaf5b5dd267a0523701f9f1fa00fefd499d5bec42165a41e05846" - UPSTREAM_CHECK_URI = "https://github.com/blueness/sthttpd/releases/" UPSTREAM_CHECK_REGEX = "v(?P\d+(\.\d+)+).tar.gz" -S = "${WORKDIR}/sthttpd-${PV}" +S = "${WORKDIR}/git" inherit autotools update-rc.d systemd update-alternatives diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-webserver/recipes-php/phpmyadmin/phpmyadmin_4.9.0.1.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-webserver/recipes-php/phpmyadmin/phpmyadmin_4.9.0.1.bb deleted file mode 100644 index a2fbbefe..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-webserver/recipes-php/phpmyadmin/phpmyadmin_4.9.0.1.bb +++ /dev/null @@ -1,41 +0,0 @@ -SUMMARY = "Web-based MySQL administration interface" -HOMEPAGE = "http://www.phpmyadmin.net" -# Main code is GPLv2, vendor/tecnickcom/tcpdf is under LGPLv3, js/jquery is under MIT -LICENSE = "GPLv2 & LGPLv3 & MIT" -LIC_FILES_CHKSUM = "file://LICENSE;md5=b234ee4d69f5fce4486a80fdaf4a4263 \ - file://vendor/tecnickcom/tcpdf/LICENSE.TXT;md5=5c87b66a5358ebcc495b03e0afcd342c \ - file://js/vendor/jquery/MIT-LICENSE.txt;md5=e43aa437a6a1ba421653bd5034333bf9 \ -" - -SRC_URI = "https://files.phpmyadmin.net/phpMyAdmin/${PV}/phpMyAdmin-${PV}-all-languages.tar.xz \ - file://apache.conf \ -" - -SRC_URI[md5sum] = "45629bb2ffe0f3501a0d3b8f73d6371c" -SRC_URI[sha256sum] = "e3de59f913c095433c8f6466f8826dfde09b097cfac78b665ddef9ddc03b0ed6" - -UPSTREAM_CHECK_URI = "https://www.phpmyadmin.net/downloads/" -UPSTREAM_CHECK_REGEX = "phpMyAdmin-(?P\d+(\.\d+)+)-all-languages.tar.xz" - -S = "${WORKDIR}/phpMyAdmin-${PV}-all-languages" - -inherit allarch - -do_install() { - install -d ${D}${datadir}/${BPN} - cp -R --no-dereference --preserve=mode,links -v * ${D}${datadir}/${BPN} - chown -R root:root ${D}${datadir}/${BPN} - # Don't install patches to target - rm -rf ${D}${datadir}/${BPN}/patches - - install -d ${D}${sysconfdir}/apache2/conf.d - install -m 0644 ${WORKDIR}/apache.conf ${D}${sysconfdir}/apache2/conf.d/phpmyadmin.conf - - # Remove a few scripts that explicitly require bash (!) - rm -f ${D}${datadir}/phpmyadmin/libraries/transformations/*.sh -} - -FILES_${PN} = "${datadir}/${BPN} \ - ${sysconfdir}/apache2/conf.d" - -RDEPENDS_${PN} += "bash php-cli" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-webserver/recipes-php/phpmyadmin/phpmyadmin_4.9.2.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-webserver/recipes-php/phpmyadmin/phpmyadmin_4.9.2.bb new file mode 100644 index 00000000..34943de3 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-webserver/recipes-php/phpmyadmin/phpmyadmin_4.9.2.bb @@ -0,0 +1,41 @@ +SUMMARY = "Web-based MySQL administration interface" +HOMEPAGE = "http://www.phpmyadmin.net" +# Main code is GPLv2, vendor/tecnickcom/tcpdf is under LGPLv3, js/jquery is under MIT +LICENSE = "GPLv2 & LGPLv3 & MIT" +LIC_FILES_CHKSUM = "file://LICENSE;md5=b234ee4d69f5fce4486a80fdaf4a4263 \ + file://vendor/tecnickcom/tcpdf/LICENSE.TXT;md5=dd6470bbcd3436ca317f82d34abaf688 \ + file://js/vendor/jquery/MIT-LICENSE.txt;md5=e43aa437a6a1ba421653bd5034333bf9 \ +" + +SRC_URI = "https://files.phpmyadmin.net/phpMyAdmin/${PV}/phpMyAdmin-${PV}-all-languages.tar.xz \ + file://apache.conf \ +" + +SRC_URI[md5sum] = "5b5d1d84a05624430ac659e36af00f4e" +SRC_URI[sha256sum] = "3bc3e37fefbdfcaf12fd59d6d7fdbf11ffcffe3e211155bf5b822b54a3c2043e" + +UPSTREAM_CHECK_URI = "https://www.phpmyadmin.net/downloads/" +UPSTREAM_CHECK_REGEX = "phpMyAdmin-(?P\d+(\.\d+)+)-all-languages.tar.xz" + +S = "${WORKDIR}/phpMyAdmin-${PV}-all-languages" + +inherit allarch + +do_install() { + install -d ${D}${datadir}/${BPN} + cp -R --no-dereference --preserve=mode,links -v * ${D}${datadir}/${BPN} + chown -R root:root ${D}${datadir}/${BPN} + # Don't install patches to target + rm -rf ${D}${datadir}/${BPN}/patches + + install -d ${D}${sysconfdir}/apache2/conf.d + install -m 0644 ${WORKDIR}/apache.conf ${D}${sysconfdir}/apache2/conf.d/phpmyadmin.conf + + # Remove a few scripts that explicitly require bash (!) + rm -f ${D}${datadir}/phpmyadmin/libraries/transformations/*.sh +} + +FILES_${PN} = "${datadir}/${BPN} \ + ${sysconfdir}/apache2/conf.d" + +RDEPENDS_${PN} += "bash php-cli" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-webserver/recipes-support/spawn-fcgi/spawn-fcgi_1.6.4.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-webserver/recipes-support/spawn-fcgi/spawn-fcgi_1.6.4.bb index 8b2ff44c..1d66d130 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-webserver/recipes-support/spawn-fcgi/spawn-fcgi_1.6.4.bb +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-webserver/recipes-support/spawn-fcgi/spawn-fcgi_1.6.4.bb @@ -1,7 +1,7 @@ SUMMARRY = "spawn-fcgi is used to spawn FastCGI applications" HOMEPAGE = "http://redmine.lighttpd.net/projects/spawn-fcgi" -LICENSE = "BSD" +LICENSE = "BSD-3-Clause" LIC_FILES_CHKSUM = "file://COPYING;md5=e4dac5c6ab169aa212feb5028853a579" SRC_URI = "http://download.lighttpd.net/spawn-fcgi/releases-1.6.x/spawn-fcgi-${PV}.tar.gz \ diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-webserver/recipes-webadmin/netdata/netdata/0001-Correct-Timeout-issue.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-webserver/recipes-webadmin/netdata/netdata/0001-Correct-Timeout-issue.patch deleted file mode 100644 index abea0d66..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-webserver/recipes-webadmin/netdata/netdata/0001-Correct-Timeout-issue.patch +++ /dev/null @@ -1,21 +0,0 @@ -Index: git/plugins.d/charts.d.plugin -=================================================================== ---- git.orig/plugins.d/charts.d.plugin -+++ git/plugins.d/charts.d.plugin -@@ -246,16 +246,6 @@ else - info "configuration file '$myconfig' not found. Using defaults." - fi - --# we check for the timeout command, after we load our --# configuration, so that the user may overwrite the --# timeout command we use, providing a function that --# can emulate the timeout command we need: --# > timeout SECONDS command ... --if [ $check_for_timeout -eq 1 ] -- then -- require_cmd timeout || exit 1 --fi -- - # ----------------------------------------------------------------------------- - # internal checks - diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-webserver/recipes-webadmin/netdata/netdata/0001-Correct-timeout-issue.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-webserver/recipes-webadmin/netdata/netdata/0001-Correct-timeout-issue.patch new file mode 100644 index 00000000..c4be8270 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-webserver/recipes-webadmin/netdata/netdata/0001-Correct-timeout-issue.patch @@ -0,0 +1,42 @@ +From ccaf4225239c3092a51cf44f2ab0a2141b8a5fa6 Mon Sep 17 00:00:00 2001 +From: Luca Palano +Date: Wed, 5 Dec 2018 10:36:52 +0100 +Subject: [PATCH 1/2] Correct of timeout issue + +The timeout issue has been disabled + +Signed-off-by: Luca Palano +--- + collectors/charts.d.plugin/charts.d.plugin.in | 9 +++++---- + 1 file changed, 5 insertions(+), 4 deletions(-) + +diff --git a/collectors/charts.d.plugin/charts.d.plugin.in b/collectors/charts.d.plugin/charts.d.plugin.in +index 0df6c30c..63ea4506 100755 +--- a/collectors/charts.d.plugin/charts.d.plugin.in ++++ b/collectors/charts.d.plugin/charts.d.plugin.in +@@ -156,7 +156,7 @@ restart_timeout=$((3600 * 4)) + dryrunner=0 + + # check for timeout command +-check_for_timeout=1 ++check_for_timeout=0 + + # the default enable/disable value for all charts + enable_all_charts="yes" +@@ -251,9 +251,10 @@ time_divisor=$((time_divisor)) + # timeout command we use, providing a function that + # can emulate the timeout command we need: + # > timeout SECONDS command ... +-if [ $check_for_timeout -eq 1 ]; then +- require_cmd timeout || exit 1 +-fi ++#if [ $check_for_timeout -eq 1 ] ++# then ++# require_cmd timeout || exit 1 ++#fi + + # ----------------------------------------------------------------------------- + # internal checks +-- +2.20.1 (Apple Git-117) + diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-webserver/recipes-webadmin/netdata/netdata/0001-makefile-Do-not-build-contrib-dir.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-webserver/recipes-webadmin/netdata/netdata/0001-makefile-Do-not-build-contrib-dir.patch deleted file mode 100644 index 6a0d75e3..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-webserver/recipes-webadmin/netdata/netdata/0001-makefile-Do-not-build-contrib-dir.patch +++ /dev/null @@ -1,27 +0,0 @@ -From 87f868918a9ae1dcf93e01f3e177d185c19a149a Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Thu, 13 Jul 2017 14:32:09 -0700 -Subject: [PATCH] makefile: Do not build contrib dir - -It contains debian build iteams anyway - -Signed-off-by: Khem Raj ---- - Makefile.am | 1 - - 1 file changed, 1 deletion(-) - -diff --git a/Makefile.am b/Makefile.am -index 2ea9e40..acb1bd8 100644 ---- a/Makefile.am -+++ b/Makefile.am -@@ -56,7 +56,6 @@ SUBDIRS = \ - src \ - system \ - web \ -- contrib \ - tests \ - $(NULL) - --- -2.13.2 - diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-webserver/recipes-webadmin/netdata/netdata/0002-Makefiles-does-not-build-contrib-dir.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-webserver/recipes-webadmin/netdata/netdata/0002-Makefiles-does-not-build-contrib-dir.patch new file mode 100644 index 00000000..f0887fed --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-webserver/recipes-webadmin/netdata/netdata/0002-Makefiles-does-not-build-contrib-dir.patch @@ -0,0 +1,24 @@ +From 95e1da77de80e38068bb2739faeaad49105700cf Mon Sep 17 00:00:00 2001 +From: Luca Palano +Date: Mon, 15 Jul 2019 10:16:32 +0200 +Subject: [PATCH 2/2] Makefiles does not build contrib + +Signed-off-by: Luca Palano +--- + Makefile.am | 1 - + 1 file changed, 1 deletion(-) + +diff --git a/Makefile.am b/Makefile.am +index bc928bba..ba9edc6b 100644 +--- a/Makefile.am ++++ b/Makefile.am +@@ -54,7 +54,6 @@ dist_noinst_DATA= \ + CHANGELOG.md \ + cppcheck.sh \ + configs.signatures \ +- contrib \ + netdata.cppcheck \ + netdata.spec \ + package.json \ +-- +2.20.1 (Apple Git-117) diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-webserver/recipes-webadmin/netdata/netdata_git.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-webserver/recipes-webadmin/netdata/netdata_git.bb index 390fa4ba..d179e84e 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-webserver/recipes-webadmin/netdata/netdata_git.bb +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-webserver/recipes-webadmin/netdata/netdata_git.bb @@ -1,19 +1,17 @@ HOMEPAGE = "https://github.com/firehol/netdata/" SUMMARY = "Real-time performance monitoring" LICENSE = "GPLv3" -LIC_FILES_CHKSUM = "file://LICENSE.md;md5=95b49e9ea979a337578f13c2a3ab9535 \ - file://COPYING;md5=d32239bcb673463ab874e80d47fae504 \ - " +LIC_FILES_CHKSUM = "file://LICENSE;md5=fc9b848046ef54b5eaee6071947abd24" SRC_URI = "git://github.com/firehol/netdata.git;protocol=https \ - file://0001-makefile-Do-not-build-contrib-dir.patch \ + file://0002-Makefiles-does-not-build-contrib-dir.patch \ " -SRCREV = "89ed309252981ddd50f697fde4fe93019cb3e652" -PV = "1.8.0+git${SRCPV}" +SRCREV = "588ce5a7b18999dfa66698cd3a2f005f7a3c31cf" +PV = "1.17.0" # patch to disable timeout because timeout are not available with actual version # of core-utils -SRC_URI += "file://0001-Correct-Timeout-issue.patch" +SRC_URI += "file://0001-Correct-timeout-issue.patch" # default netdata.conf for netdata configuration SRC_URI += "file://netdata.conf" @@ -25,9 +23,10 @@ S = "${WORKDIR}/git" DEPENDS += "zlib util-linux" -inherit pkgconfig autotools useradd systemd +inherit pkgconfig autotools-brokensep useradd systemd -LDFLAGS += "-pthread" +LIBS_toolchain-clang_x86 = "-latomic" +export LIBS #systemd SYSTEMD_PACKAGES = "${PN}" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-webserver/recipes-webadmin/webmin/webmin_1.850.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-webserver/recipes-webadmin/webmin/webmin_1.850.bb index ce9bc928..112365d4 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-webserver/recipes-webadmin/webmin/webmin_1.850.bb +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-webserver/recipes-webadmin/webmin/webmin_1.850.bb @@ -1,6 +1,6 @@ SUMMARY = "Web-based administration interface" HOMEPAGE = "http://www.webmin.com" -LICENSE = "BSD" +LICENSE = "BSD-3-Clause" LIC_FILES_CHKSUM = "file://LICENCE;md5=0373ac9f611e542ddebe1ec6394afc3c" SRC_URI = "${SOURCEFORGE_MIRROR}/webadmin/webmin-${PV}.tar.gz \ @@ -160,8 +160,8 @@ python populate_packages_prepend() { elif os.path.exists(themeinfo): themes.append(mod) - do_split_packages(d, wadir, '^(%s)$' % "|".join(modules), 'webmin-module-%s', 'Webmin module for %s', allow_dirs=True, prepend=True) - do_split_packages(d, wadir, '^(%s)$' % "|".join(themes), 'webmin-theme-%s', 'Webmin theme for %s', allow_dirs=True, prepend=True) + do_split_packages(d, wadir, '^(%s)$' % "|".join(modules), 'webmin-module-%s', 'Webmin module for %s', extra_depends='perl', allow_dirs=True, prepend=True) + do_split_packages(d, wadir, '^(%s)$' % "|".join(themes), 'webmin-theme-%s', 'Webmin theme for %s', extra_depends='perl', allow_dirs=True, prepend=True) } # Time-savers diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/README b/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/README index 84b01989..70ad47a2 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/README +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/README @@ -19,3 +19,4 @@ Send pull requests to openembedded-devel@lists.openembedded.org with '[meta-xfce When sending single patches, please using something like: 'git send-email -M -1 --to openembedded-devel@lists.openembedded.org --subject-prefix=meta-xfce][PATCH' +Layer maintainer: Kai Kang diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/classes/thunar-plugin.bbclass b/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/classes/thunar-plugin.bbclass index 76b0e723..854d96b3 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/classes/thunar-plugin.bbclass +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/classes/thunar-plugin.bbclass @@ -1,4 +1,4 @@ -inherit xfce distro_features_check +inherit xfce features_check REQUIRED_DISTRO_FEATURES = "x11" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/classes/xfce-app.bbclass b/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/classes/xfce-app.bbclass index 1c31c2fa..d1b07d74 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/classes/xfce-app.bbclass +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/classes/xfce-app.bbclass @@ -1,4 +1,4 @@ -inherit xfce distro_features_check +inherit xfce features_check REQUIRED_DISTRO_FEATURES = "x11" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/classes/xfce-panel-plugin.bbclass b/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/classes/xfce-panel-plugin.bbclass index 29c1245c..594d40d0 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/classes/xfce-panel-plugin.bbclass +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/classes/xfce-panel-plugin.bbclass @@ -1,14 +1,14 @@ -inherit xfce distro_features_check +inherit xfce features_check REQUIRED_DISTRO_FEATURES = "x11" DEPENDS += "libxfce4ui libxfce4util xfce4-panel" -SRC_URI = "http://archive.xfce.org/src/panel-plugins/${BPN}/${@'${PV}'[0:3]}/${BPN}-${PV}.tar.bz2" +SRC_URI = "http://archive.xfce.org/src/panel-plugins/${BPN}/${@xfce_verdir("${PV}")}/${BPN}-${PV}.tar.bz2" FILES_${PN} += "${datadir}/xfce4/panel-plugins/" FILES_${PN} += "${datadir}/xfce4/panel/plugins/" FILES_${PN} += "${libdir}/xfce4/panel-plugins/*.so" FILES_${PN} += "${libdir}/xfce4/panel/plugins/*.so" -FILES_${PN}-dev += "${libdir}/xfce4/panel/plugins/*.la" \ No newline at end of file +FILES_${PN}-dev += "${libdir}/xfce4/panel/plugins/*.la" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/conf/layer.conf b/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/conf/layer.conf index da07f8e1..070ea6ac 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/conf/layer.conf +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/conf/layer.conf @@ -19,4 +19,4 @@ LAYERDEPENDS_xfce-layer += "multimedia-layer" LAYERDEPENDS_xfce-layer += "meta-python" LAYERDEPENDS_xfce-layer += "networking-layer" -LAYERSERIES_COMPAT_xfce-layer = "thud warrior" +LAYERSERIES_COMPAT_xfce-layer = "thud warrior zeus" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-apps/catfish/catfish_1.4.11.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-apps/catfish/catfish_1.4.11.bb new file mode 100644 index 00000000..4152e158 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-apps/catfish/catfish_1.4.11.bb @@ -0,0 +1,17 @@ +SUMMARY = "Catfish is a handy file searching tool for linux and unix" +SECTION = "x11/application" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=4325afd396febcb659c36b49533135d4" + +inherit xfce-app distutils3 gtk-icon-cache + +DEPENDS += "python3-distutils-extra-native" + +B = "${S}" + +SRC_URI[md5sum] = "67e23d45fded026ef3445bc7fe1d1653" +SRC_URI[sha256sum] = "617baf9309e3cdfb20c8357ac786eb26f30e6fd4280d4534d3cdd742c7ffcd85" + +FILES_${PN} += "${datadir}/metainfo" + +RDEPENDS_${PN} += "python3-pygobject" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-apps/catfish/catfish_1.4.7.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-apps/catfish/catfish_1.4.7.bb deleted file mode 100644 index 84d5692e..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-apps/catfish/catfish_1.4.7.bb +++ /dev/null @@ -1,17 +0,0 @@ -SUMMARY = "Catfish is a handy file searching tool for linux and unix" -SECTION = "x11/application" -LICENSE = "GPLv2" -LIC_FILES_CHKSUM = "file://COPYING;md5=4325afd396febcb659c36b49533135d4" - -inherit xfce-app distutils3 gtk-icon-cache - -DEPENDS += "python3-distutils-extra-native" - -B = "${S}" - -SRC_URI[md5sum] = "f4c1c2b2c560824cab8d7f6c7bd624ca" -SRC_URI[sha256sum] = "48caaac872d29e2762e31e59ade1310cb860af55f1a36f2520ce1d90c39227e9" - -FILES_${PN} += "${datadir}/metainfo" - -RDEPENDS_${PN} += "python3-pygobject" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-apps/gigolo/gigolo_0.4.2.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-apps/gigolo/gigolo_0.4.2.bb deleted file mode 100644 index c846e780..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-apps/gigolo/gigolo_0.4.2.bb +++ /dev/null @@ -1,11 +0,0 @@ -SUMMARY = "Gigolo is a frontend to easily manage connections to remote filesystems using GIO/GVfs" -SECTION = "x11/application" -LICENSE = "GPLv2" -LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe" - -DEPENDS = "gtk+ intltool-native xfce4-dev-tools-native" - -inherit xfce-app - -SRC_URI[md5sum] = "4abc6fde56572adf3ec3a0181092584c" -SRC_URI[sha256sum] = "553fc78fe4e7bd2f01f3851baea7e63f6414fe652dfb4b08c60b5c4b2b909164" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-apps/gigolo/gigolo_0.5.0.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-apps/gigolo/gigolo_0.5.0.bb new file mode 100644 index 00000000..4446214f --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-apps/gigolo/gigolo_0.5.0.bb @@ -0,0 +1,11 @@ +SUMMARY = "Gigolo is a frontend to easily manage connections to remote filesystems using GIO/GVfs" +SECTION = "x11/application" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe" + +DEPENDS = "gtk+3 intltool-native xfce4-dev-tools-native" + +inherit xfce-app + +SRC_URI[md5sum] = "273111f5d7c26898e5ddea7b97d5dfe1" +SRC_URI[sha256sum] = "97a301aff012a143d0b99e7ecbb27084d3872aa203a74745e8357aab3a1880dc" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-apps/menulibre/menulibre_2.2.0.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-apps/menulibre/menulibre_2.2.0.bb deleted file mode 100644 index 1e9e5f1a..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-apps/menulibre/menulibre_2.2.0.bb +++ /dev/null @@ -1,41 +0,0 @@ -DESCRIPTION = "An advanced menu editor" -HOMEPAGE = "https://launchpad.net/menulibre" -SECTION = "x11/graphics" -LICENSE = "GPLv3" -LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504" - -DEPENDS = " \ - python3-distutils-extra-native \ - intltool-native \ -" - -inherit distutils3 gtk-icon-cache distro_features_check - -REQUIRED_DISTRO_FEATURES = "x11" - -SRC_URI = "https://launchpad.net/menulibre/2.2/${PV}/+download/${BPN}-${PV}.tar.gz" -SRC_URI[md5sum] = "9690848dbf9196c3f7baa574e90378d8" -SRC_URI[sha256sum] = "546fec87f451c8f5c220d02b1f36dd850f4ce9ab607f8e9711ed8f2009e349fe" - -do_compile() { -} - -do_install_append() { - sed -i 's:${D}::g' ${D}${datadir}/applications/menulibre.desktop - sed -i 's:share/share:share:g' ${D}${PYTHON_SITEPACKAGES_DIR}/menulibre_lib/menulibreconfig.py -} - -FILES_${PN} += " \ - ${datadir}/applications \ - ${datadir}/menulibre \ - ${datadir}/icons \ -" - -RDEPENDS_${PN} += " \ - gtk+3 \ - gtksourceview3 \ - python3-pygobject \ - gnome-menus3 \ - python3-unixadmin \ - python3-psutil \ -" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-apps/menulibre/menulibre_2.2.1.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-apps/menulibre/menulibre_2.2.1.bb new file mode 100644 index 00000000..f1d9c04b --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-apps/menulibre/menulibre_2.2.1.bb @@ -0,0 +1,41 @@ +DESCRIPTION = "An advanced menu editor" +HOMEPAGE = "https://launchpad.net/menulibre" +SECTION = "x11/graphics" +LICENSE = "GPLv3" +LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504" + +DEPENDS = " \ + python3-distutils-extra-native \ + intltool-native \ +" + +inherit distutils3 gtk-icon-cache features_check + +REQUIRED_DISTRO_FEATURES = "x11" + +SRC_URI = "https://launchpad.net/menulibre/2.2/${PV}/+download/${BPN}-${PV}.tar.gz" +SRC_URI[md5sum] = "8460ea844a5998c5f722bccb5ce8627a" +SRC_URI[sha256sum] = "5b3ef8e6073d584f6accf282fa1eb649185ee42eb22fab70231491c7377d7e8f" + +do_compile() { +} + +do_install_append() { + sed -i 's:${D}::g' ${D}${datadir}/applications/menulibre.desktop + sed -i 's:share/share:share:g' ${D}${PYTHON_SITEPACKAGES_DIR}/menulibre_lib/menulibreconfig.py +} + +FILES_${PN} += " \ + ${datadir}/applications \ + ${datadir}/menulibre \ + ${datadir}/icons \ +" + +RDEPENDS_${PN} += " \ + gtk+3 \ + gtksourceview3 \ + python3-pygobject \ + gnome-menus3 \ + python3-unixadmin \ + python3-psutil \ +" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-apps/mousepad/mousepad_0.4.1.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-apps/mousepad/mousepad_0.4.1.bb deleted file mode 100644 index d122bfe3..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-apps/mousepad/mousepad_0.4.1.bb +++ /dev/null @@ -1,19 +0,0 @@ -SUMMARY = "A simple text editor for Xfce" -SECTION = "x11/application" -LICENSE = "GPLv2" -LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f" - -# intltool to provide intltool.m4 with AC_PROG_INTLTOOL -# xfce4-dev-tools-native for XDT_I18N macro and more importantly XDT_CHECK_OPTIONAL_PACKAGE -# which fixes mousepad/Makefile.am:72: error: HAVE_DBUS does not appear in AM_CONDITIONAL -DEPENDS = "gtk+ dbus dbus-glib gtksourceview2 intltool-native xfce4-dev-tools-native" - -inherit xfce-app gsettings - -SRC_URI[md5sum] = "fb85c23bcb096a46aee9ec22b4e4fdf5" -SRC_URI[sha256sum] = "39a7379b929d964665299c385b2cf705e32e8760698ccc34f91c990bb733518b" - -# we have no gtksourceview 3.x around -EXTRA_OECONF = "--disable-gtk3" - -FILES_${PN} += "${datadir}/glib-2.0/schemas" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-apps/mousepad/mousepad_0.4.2.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-apps/mousepad/mousepad_0.4.2.bb new file mode 100644 index 00000000..4bf10a47 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-apps/mousepad/mousepad_0.4.2.bb @@ -0,0 +1,16 @@ +SUMMARY = "A simple text editor for Xfce" +SECTION = "x11/application" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f" + +DEPENDS = "gtk+3 gtksourceview3 xfconf xfce4-dev-tools-native" + +inherit xfce-app gsettings + +SRC_URI[md5sum] = "98d908842d4a93c35756a67d681c08fe" +SRC_URI[sha256sum] = "84c02adfca7f8b33b9466a306ded72fb9f38f93c9edb78660343854c4a3aded7" + +FILES_${PN} += " \ + ${datadir}/glib-2.0/schemas \ + ${datadir}/polkit-1 \ +" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-apps/orage/orage/0001-drop-setting-is_utc-member-of-icaltimetype.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-apps/orage/orage/0001-drop-setting-is_utc-member-of-icaltimetype.patch new file mode 100644 index 00000000..517de5f9 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-apps/orage/orage/0001-drop-setting-is_utc-member-of-icaltimetype.patch @@ -0,0 +1,77 @@ +From 5bdf11fe3638d279edcad911906f801751e024da Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Tue, 23 Jul 2019 14:22:08 -0700 +Subject: [PATCH] drop setting is_utc member of icaltimetype + +This seems to be gone in libical3 + +Upstream-Status: Pending + +Signed-off-by: Khem Raj +--- + src/ical-code.c | 7 ------- + 1 file changed, 7 deletions(-) + +diff --git a/src/ical-code.c b/src/ical-code.c +index d583140..d8e5543 100644 +--- a/src/ical-code.c ++++ b/src/ical-code.c +@@ -129,7 +129,6 @@ static struct icaltimetype ical_get_current_local_time() + && (strcmp(g_par.local_timezone, "floating") != 0)) + ctime = icaltime_current_time_with_zone(local_icaltimezone); + else { / * use floating time * / +- ctime.is_utc = 0; + ctime.is_date = 0; + ctime.is_daylight = 0; + ctime.zone = NULL; +@@ -2579,7 +2578,6 @@ static struct icaltimetype count_first_alarm_time(xfical_period per + * when counting alarm time. */ + if (rel == ICAL_RELATED_START) { + per.stime.is_date = 0; +- per.stime.is_utc = 1; + per.stime.is_daylight = 0; + per.stime.zone = utc_icaltimezone; + per.stime.hour = 0; +@@ -2588,7 +2586,6 @@ static struct icaltimetype count_first_alarm_time(xfical_period per + } + else { + per.etime.is_date = 0; +- per.etime.is_utc = 1; + per.etime.is_daylight = 0; + per.etime.zone = utc_icaltimezone; + per.etime.hour = 0; +@@ -2613,7 +2610,6 @@ static struct icaltimetype count_next_alarm_time(struct icaltimetype start_time + /* HACK: convert to UTC time so that we can use time arithmetic + * when counting alarm time. */ + start_time.is_date = 0; +- start_time.is_utc = 1; + start_time.is_daylight = 0; + start_time.zone = utc_icaltimezone; + start_time.hour = 0; +@@ -2768,7 +2764,6 @@ static alarm_struct *process_alarm_trigger(icalcomponent *c + */ + if (icaltime_is_date(per.stime)) { + if (local_icaltimezone != utc_icaltimezone) { +- next_alarm_time.is_utc = 0; + next_alarm_time.is_daylight = 0; + next_alarm_time.zone = local_icaltimezone; + } +@@ -2850,7 +2845,6 @@ orage_message(120, P_N "Alarm rec loop next_start:%s next_alarm:%s per.stime:%s" + */ + if (icaltime_is_date(per.stime)) { + if (local_icaltimezone != utc_icaltimezone) { +- next_alarm_time.is_utc = 0; + next_alarm_time.is_daylight = 0; + next_alarm_time.zone = local_icaltimezone; + } +@@ -2944,7 +2938,6 @@ orage_message(120, P_N "*****After loop Alarm %s %s", icaltime_as_ical_string(ne + */ + if (icaltime_is_date(per.stime)) { + if (local_icaltimezone != utc_icaltimezone) { +- next_alarm_time.is_utc = 0; + next_alarm_time.is_daylight = 0; + next_alarm_time.zone = local_icaltimezone; + } +-- +2.22.0 + diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-apps/orage/orage_4.12.1.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-apps/orage/orage_4.12.1.bb index eb9da2df..9662b614 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-apps/orage/orage_4.12.1.bb +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-apps/orage/orage_4.12.1.bb @@ -6,6 +6,8 @@ DEPENDS = "gtk+ xfce4-panel libical popt" inherit xfce-app +SRC_URI += "file://0001-drop-setting-is_utc-member-of-icaltimetype.patch" + SRC_URI[md5sum] = "2b7f5d38cb5c6edbcc65d0f52a742e46" SRC_URI[sha256sum] = "3cf9aa441ae83c8688865f82217025cdf3ebaa152cce4571777b8c2aa8dd9062" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-apps/ristretto/files/0001-Fix-build-after-update-of-xfconf.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-apps/ristretto/files/0001-Fix-build-after-update-of-xfconf.patch deleted file mode 100644 index 5cdc8c72..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-apps/ristretto/files/0001-Fix-build-after-update-of-xfconf.patch +++ /dev/null @@ -1,40 +0,0 @@ -From 2b6bdb860ef53975c7e866f393b61d253c00754d Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Andreas=20M=C3=BCller?= -Date: Mon, 22 Jan 2018 15:52:09 +0100 -Subject: [PATCH] Fix build after update of xfconf -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -xfconf stopped using dbus-glib so required flags must be included here - -Upstream-Status: Pending - -Signed-off-by: Andreas Müller ---- - src/Makefile.am | 2 ++ - 1 file changed, 2 insertions(+) - -diff --git a/src/Makefile.am b/src/Makefile.am -index 36a31dc..3dd56bc 100644 ---- a/src/Makefile.am -+++ b/src/Makefile.am -@@ -30,6 +30,7 @@ ristretto_CFLAGS = \ - $(GIO_UNIX_CFLAGS) \ - $(LIBEXIF_CFLAGS) \ - $(XFCONF_CFLAGS) \ -+ $(DBUS_GLIB_CFLAGS) \ - $(EXO_CFLAGS) \ - $(CAIRO_CFLAGS) \ - $(LIBXFCE4UTIL_CFLAGS) \ -@@ -48,6 +49,7 @@ ristretto_LDADD = \ - $(GIO_UNIX_LIBS) \ - $(LIBEXIF_LIBS) \ - $(XFCONF_LIBS) \ -+ $(DBUS_GLIB_LIBS) \ - $(EXO_LIBS) \ - $(CAIRO_LIBS) \ - $(LIBXFCE4UTIL_LIBS) \ --- -2.14.3 - diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-apps/ristretto/ristretto_0.10.0.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-apps/ristretto/ristretto_0.10.0.bb new file mode 100644 index 00000000..9c5bb12e --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-apps/ristretto/ristretto_0.10.0.bb @@ -0,0 +1,16 @@ +SUMMARY = "Tiny image-viewer" +HOMEPAGE = "https://docs.xfce.org/apps/ristretto/start" +SECTION = "x11/application" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=35d145429ad3cbf5308d1dc93f66376b" + +DEPENDS = "exo libexif libxfce4ui libxfce4util xfconf cairo file" + +inherit xfce-app + +RRECOMMENDS_${PN} += "tumbler" + +SRC_URI[md5sum] = "4249e14fba78728481d89ce61a8771fc" +SRC_URI[sha256sum] = "16225dd74245eb6e0f82b9c72c6112f161bb8d8b11f3fc77277b7bc3432d4769" + +FILES_${PN} += "${datadir}/metainfo" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-apps/ristretto/ristretto_0.8.4.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-apps/ristretto/ristretto_0.8.4.bb deleted file mode 100644 index 416ac2ad..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-apps/ristretto/ristretto_0.8.4.bb +++ /dev/null @@ -1,16 +0,0 @@ -SUMMARY = "Tiny image-viewer" -HOMEPAGE = "http://goodies.xfce.org/projects/applications/ristretto" -SECTION = "x11/application" -LICENSE = "GPLv2" -LIC_FILES_CHKSUM = "file://COPYING;md5=35d145429ad3cbf5308d1dc93f66376b" -DEPENDS = "exo libexif gtk+ dbus-glib libxfce4ui libxfce4util xfconf cairo file" - -inherit xfce-app - -RRECOMMENDS_${PN} += "tumbler" - -SRC_URI[md5sum] = "0142c8b9c492cf447e563b00c6204359" -SRC_URI[sha256sum] = "3a0be4526c93ec0ebbf2e63e69dd0c98f16b20b863d3b6426272592e5b00cea2" -SRC_URI += "file://0001-Fix-build-after-update-of-xfconf.patch" - -FILES_${PN} += "${datadir}/appdata" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-apps/xarchiver/xarchiver_git.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-apps/xarchiver/xarchiver_git.bb index 7445cd7c..d6990476 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-apps/xarchiver/xarchiver_git.bb +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-apps/xarchiver/xarchiver_git.bb @@ -12,7 +12,7 @@ SRCREV = "9ab958a4023b62b43972c55a3143ff0722bd88a6" PV = "0.5.4.14" S = "${WORKDIR}/git" -inherit gettext pkgconfig autotools gtk-icon-cache distro_features_check +inherit gettext pkgconfig autotools gtk-icon-cache features_check REQUIRED_DISTRO_FEATURES = "x11" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-apps/xfce-polkit/files/0001-fix-Name-Comment-fields.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-apps/xfce-polkit/files/0001-fix-Name-Comment-fields.patch deleted file mode 100644 index e872249d..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-apps/xfce-polkit/files/0001-fix-Name-Comment-fields.patch +++ /dev/null @@ -1,34 +0,0 @@ -From fb1f83c04dd5262897b09e60fa8b39090d0d4619 Mon Sep 17 00:00:00 2001 -From: Rex Dieter -Date: Thu, 12 Nov 2015 13:53:03 -0600 -Subject: [PATCH] fix Name/Comment fields - -Validate as a valid .desktop file per -http://standards.freedesktop.org/desktop-entry-spec/latest/ - -See also issue #2 - -Upstream-Status: Applied [1] - -[1] https://github.com/ncopa/xfce-polkit/commit/fb1f83c04dd5262897b09e60fa8b39090d0d4619 ---- - xfce-polkit.desktop.in | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/xfce-polkit.desktop.in b/xfce-polkit.desktop.in -index 8575896..dd9f09c 100644 ---- a/xfce-polkit.desktop.in -+++ b/xfce-polkit.desktop.in -@@ -1,7 +1,7 @@ - [Desktop Entry] - Type=Application --_Name=XFCE PolKit --_Comment=Policykit Authentication Agent -+Name=XFCE PolKit -+Comment=Policykit Authentication Agent - Exec=@xfce_polkit_libexecdir@/xfce-polkit - Icon=gtk-dialog-authentication - NotShowIn=GNOME;KDE; --- -2.14.3 - diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-apps/xfce-polkit/xfce-polkit_0.2.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-apps/xfce-polkit/xfce-polkit_0.2.bb deleted file mode 100644 index 54bf7c75..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-apps/xfce-polkit/xfce-polkit_0.2.bb +++ /dev/null @@ -1,14 +0,0 @@ -SUMMARY = "A simple PolicyKit authentication agent for XFCE" -LICENSE = "GPLv2" -LIC_FILES_CHKSUM = "file://LICENSE;md5=758b03f872a88c99fc36d50c5932091c" - -DEPENDS = "libxfce4ui polkit" - -inherit xfce-app - -SRC_URI = " \ - git://github.com/ncopa/${BPN}.git \ - file://0001-fix-Name-Comment-fields.patch \ -" -SRCREV = "6ad1ee833c9e22e4dd72a8f7d54562d046965283" -S = "${WORKDIR}/git" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-apps/xfce-polkit/xfce-polkit_0.3.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-apps/xfce-polkit/xfce-polkit_0.3.bb new file mode 100644 index 00000000..2ef81f28 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-apps/xfce-polkit/xfce-polkit_0.3.bb @@ -0,0 +1,14 @@ +SUMMARY = "A simple PolicyKit authentication agent for XFCE" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://LICENSE;md5=758b03f872a88c99fc36d50c5932091c" + +DEPENDS = "libxfce4ui polkit" + +inherit xfce-app features_check +REQUIRED_DISTRO_FEATURES = "polkit" + +SRC_URI = " \ + git://github.com/ncopa/${BPN}.git \ +" +SRCREV = "6d3282cc1734c305850d48f5bf4b4d94e88885e9" +S = "${WORKDIR}/git" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-apps/xfce4-datetime-setter/files/fix-inner-dependency.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-apps/xfce4-datetime-setter/files/fix-inner-dependency.patch new file mode 100644 index 00000000..9cccb892 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-apps/xfce4-datetime-setter/files/fix-inner-dependency.patch @@ -0,0 +1,28 @@ +It fails to compile xfce4-datetime-setter occasionally when system load is high: + +| ../git/xfce/main.c:42:10: fatal error: cc-datetime-resources.h: No such file or directory +| 42 | #include "cc-datetime-resources.h" +| | ^~~~~~~~~~~~~~~~~~~~~~~~~ +| compilation terminated. + +Update datetime_panel_dep to make sure cc-datetime-resources.h be generated +before including. + +Upstream-Status: Submitted [https://github.com/schnitzeltony/xfce4-datetime-setter/pull/2] + +Signed-off-by: Kai Kang +--- +diff --git a/panels/datetime/meson.build b/panels/datetime/meson.build +index c5bf39c..241e177 100644 +--- a/panels/datetime/meson.build ++++ b/panels/datetime/meson.build +@@ -175,7 +175,8 @@ datetime_panel_lib = static_library( + + datetime_panel_dep = declare_dependency( + include_directories: [ common_inc, include_directories('.') ], +- link_with: datetime_panel_lib ++ link_with: datetime_panel_lib, ++ sources: resources + ) + + subdir('po-timezones') diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-apps/xfce4-datetime-setter/xfce4-datetime-setter_3.32.2.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-apps/xfce4-datetime-setter/xfce4-datetime-setter_3.32.2.bb new file mode 100644 index 00000000..2dd3f01d --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-apps/xfce4-datetime-setter/xfce4-datetime-setter_3.32.2.bb @@ -0,0 +1,22 @@ +DESCRIPTION = "A fork of (early) gnome-control-center datetime panel for XFCE. \ +It is based upon GTK3 and embedds into recent xfce4-settings." +HOMEPAGE = "https://github.com/schnitzeltony/xfce4-datetime-setter" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=75859989545e37968a99b631ef42722e" + +DEPENDS = "glib-2.0-native libxfce4ui" + +SRC_URI = "git://github.com/schnitzeltony/xfce4-datetime-setter.git;protocol=https \ + file://fix-inner-dependency.patch \ +" +SRCREV = "5c7a73a3824b03b91719e05e2604b97c7a72d50f" + +S = "${WORKDIR}/git" + +inherit gettext meson features_check + +REQUIRED_DISTRO_FEATURES = "systemd x11" + +FILES_${PN} += "${datadir}/icons/hicolor" + +RDEPENDS_${PN} = "tzdata" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-apps/xfce4-panel-profiles/xfce4-panel-profiles_1.0.8.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-apps/xfce4-panel-profiles/xfce4-panel-profiles_1.0.8.bb deleted file mode 100644 index 5fa2a7bc..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-apps/xfce4-panel-profiles/xfce4-panel-profiles_1.0.8.bb +++ /dev/null @@ -1,28 +0,0 @@ -SUMMARY = "Backup, restore, import, and export panel layouts" -SECTION = "x11/application" -LICENSE = "GPLv3" -LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504" - -inherit python3native gettext distro_features_check - -REQUIRED_DISTRO_FEATURES = "x11" - -DEPENDS += "intltool-native" - -SRC_URI = "http://archive.xfce.org/src/apps/${BPN}/1.0/${BPN}-${PV}.tar.bz2" -SRC_URI[md5sum] = "bc75a143423fba3a82f114f47e86580c" -SRC_URI[sha256sum] = "a69e20f5e637319e14898b5c13ff7ba31d001a6e38e7516d70dbfd7600ad72db" - -do_configure() { - # special configure - no autotools... - ./configure --prefix=${prefix} -} - -do_install() { - oe_runmake 'DESTDIR=${D}' install - sed -i 's:${PYTHON}:python3:g' ${D}${bindir}/xfce4-panel-profiles -} - -FILES_${PN} += "${datadir}/metainfo" - -RDEPENDS_${PN} += "python3-pygobject python3-pexpect" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-apps/xfce4-panel-profiles/xfce4-panel-profiles_1.0.9.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-apps/xfce4-panel-profiles/xfce4-panel-profiles_1.0.9.bb new file mode 100644 index 00000000..9c9ae94f --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-apps/xfce4-panel-profiles/xfce4-panel-profiles_1.0.9.bb @@ -0,0 +1,28 @@ +SUMMARY = "Backup, restore, import, and export panel layouts" +SECTION = "x11/application" +LICENSE = "GPLv3" +LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504" + +inherit python3native gettext features_check + +REQUIRED_DISTRO_FEATURES = "x11" + +DEPENDS += "intltool-native" + +SRC_URI = "http://archive.xfce.org/src/apps/${BPN}/1.0/${BP}.tar.bz2" +SRC_URI[md5sum] = "bee3e251e45ade0ea349366461d6e200" +SRC_URI[sha256sum] = "a8c00af838e85d00600dbf442c8741aa21a332fbceba849e0820560630a6e0ce" + +do_configure() { + # special configure - no autotools... + ./configure --prefix=${prefix} +} + +do_install() { + oe_runmake 'DESTDIR=${D}' install + sed -i 's:${PYTHON}:python3:g' ${D}${bindir}/xfce4-panel-profiles +} + +FILES_${PN} += "${datadir}/metainfo" + +RDEPENDS_${PN} += "python3-pygobject python3-pexpect" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-apps/xfce4-screensaver/xfce4-screensaver_0.1.5.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-apps/xfce4-screensaver/xfce4-screensaver_0.1.5.bb deleted file mode 100644 index 4a1aae76..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-apps/xfce4-screensaver/xfce4-screensaver_0.1.5.bb +++ /dev/null @@ -1,26 +0,0 @@ -SUMMARY = "Xfce screensaver Application" -DESCRIPTION = "Xfce screensaver is a screen saver and locker that aims to have simple, sane, secure defaults and be well integrated with the desktop." -HOMEPAGE = "https://git.xfce.org/apps/xfce4-screensaver/about/" -SECTION = "x11/application" - -LICENSE = "GPLv2+ & LGPLv2+ " -LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \ - file://COPYING.LGPL;md5=4fbd65380cdd255951079008b364516c \ - " - -DEPENDS = "dbus-glib garcon gtk+3 libxklavier libxscrnsaver virtual/libx11 xfconf" - -inherit xfce-app - -SRC_URI_append = " \ - file://fix-cross-compile.patch \ - file://fix-pam-config.patch \ -" -SRC_URI[md5sum] = "982f9a355456320933ec08313523a567" -SRC_URI[sha256sum] = "fdecf0fc432b59defba2dd706051696d47227ca0744c7971014021190126f2d5" - -do_install_append() { - install -D -m 0644 ${S}/data/xfce4-screensaver.common-auth ${D}${sysconfdir}/pam.d/xfce4-screensaver -} - -FILES_${PN} += "${datadir}/dbus-1 ${datadir}/desktop-directories" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-apps/xfce4-screensaver/xfce4-screensaver_0.1.8.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-apps/xfce4-screensaver/xfce4-screensaver_0.1.8.bb new file mode 100644 index 00000000..9c9c327b --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-apps/xfce4-screensaver/xfce4-screensaver_0.1.8.bb @@ -0,0 +1,27 @@ +SUMMARY = "Xfce screensaver Application" +DESCRIPTION = "Xfce screensaver is a screen saver and locker that aims to have simple, sane, secure defaults and be well integrated with the desktop." +HOMEPAGE = "https://git.xfce.org/apps/xfce4-screensaver/about/" +SECTION = "x11/application" + +LICENSE = "GPLv2+ & LGPLv2+ " +LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \ + file://COPYING.LGPL;md5=4fbd65380cdd255951079008b364516c \ + " + +DEPENDS = "dbus-glib garcon gtk+3 libxklavier libxscrnsaver virtual/libx11 xfconf libwnck3" + +inherit xfce-app + +SRC_URI_append = " \ + file://fix-cross-compile.patch \ + file://fix-pam-config.patch \ +" +SRC_URI[md5sum] = "0fea7b676e6e533a3f305c6f642fe0cd" +SRC_URI[sha256sum] = "4056045ea5fd3eccfe328b86ae245ee4949b9e3044e42ca29c492c0f4ac860d7" + +do_install_append() { + install -D -m 0644 ${S}/data/xfce4-screensaver.common-auth ${D}${sysconfdir}/pam.d/xfce4-screensaver +} + +FILES_${PN} += "${datadir}/dbus-1 ${datadir}/desktop-directories" +RDEPENDS_${PN} += "python3-core" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-apps/xfce4-screenshooter/xfce4-screenshooter_1.9.5.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-apps/xfce4-screenshooter/xfce4-screenshooter_1.9.5.bb deleted file mode 100644 index 9f8f61a4..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-apps/xfce4-screenshooter/xfce4-screenshooter_1.9.5.bb +++ /dev/null @@ -1,22 +0,0 @@ -SUMMARY = "Application to take screenshots" -HOMEPAGE = "http://goodies.xfce.org/projects/applications/xfce4-screenshooter" -SECTION = "x11/application" -LICENSE = "GPLv2" -LIC_FILES_CHKSUM = "file://COPYING;md5=d791728a073bc009b4ffaf00b7599855" -DEPENDS = "xfce4-panel libxfce4util libxfce4ui gdk-pixbuf gtk+ glib-2.0 libsoup-2.4 exo libxfixes xext virtual/libx11" - -inherit xfce-app - -SRC_URI[md5sum] = "0354811cd2622d3de92e342c7eaa184d" -SRC_URI[sha256sum] = "bf35b5432cb920987c6d7ff193600e5dd4d73422b6aa02b4ec5288744053b38c" - -do_compile_prepend() { - mkdir -p lib - mkdir -p src panel-plugin -} - -FILES_${PN} += " \ - ${datadir}/appdata \ - ${datadir}/xfce4/panel/plugins \ - ${libdir}/xfce4/panel/plugins \ -" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-apps/xfce4-screenshooter/xfce4-screenshooter_1.9.7.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-apps/xfce4-screenshooter/xfce4-screenshooter_1.9.7.bb new file mode 100644 index 00000000..a0de6300 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-apps/xfce4-screenshooter/xfce4-screenshooter_1.9.7.bb @@ -0,0 +1,22 @@ +SUMMARY = "Application to take screenshots" +HOMEPAGE = "http://goodies.xfce.org/projects/applications/xfce4-screenshooter" +SECTION = "x11/application" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=d791728a073bc009b4ffaf00b7599855" +DEPENDS = "xfce4-panel libxfce4util libxfce4ui gdk-pixbuf gtk+ glib-2.0 libsoup-2.4 exo libxfixes xext virtual/libx11" + +inherit xfce-app + +SRC_URI[md5sum] = "9b63c0fa7cbde8ec4e6cacb75fc44b65" +SRC_URI[sha256sum] = "0f7161053a23a6413376f4d17db6b774d4849384a9b1ffe01fdb2b0035a070d1" + +do_compile_prepend() { + mkdir -p lib + mkdir -p src panel-plugin +} + +FILES_${PN} += " \ + ${datadir}/metainfo \ + ${datadir}/xfce4/panel/plugins \ + ${libdir}/xfce4/panel/plugins \ +" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-apps/xfce4-terminal/xfce4-terminal_0.8.7.4.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-apps/xfce4-terminal/xfce4-terminal_0.8.7.4.bb deleted file mode 100644 index 426282e1..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-apps/xfce4-terminal/xfce4-terminal_0.8.7.4.bb +++ /dev/null @@ -1,14 +0,0 @@ -SUMMARY = "Terminal emulator for the Xfce desktop environment" -LICENSE = "GPLv2" -LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263" -DEPENDS = "glib-2.0 gtk+3 vte libxfce4ui" - -inherit xfce-app - -FILES_${PN} += "${datadir}/xfce4 \ - ${datadir}/gnome-control-center" - -SRC_URI[md5sum] = "c861540dd1dd05f56e62382b3851cf66" -SRC_URI[sha256sum] = "a88f98af4da72394f2cfbd7f14b0f053ec0a3b58a4f6a577836357c60a6c42ab" - -RRECOMMENDS_${PN} += "vte-prompt" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-apps/xfce4-terminal/xfce4-terminal_0.8.9.1.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-apps/xfce4-terminal/xfce4-terminal_0.8.9.1.bb new file mode 100644 index 00000000..4bdd4cbf --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-apps/xfce4-terminal/xfce4-terminal_0.8.9.1.bb @@ -0,0 +1,14 @@ +SUMMARY = "Terminal emulator for the Xfce desktop environment" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263" +DEPENDS = "glib-2.0 gtk+3 vte libxfce4ui" + +inherit xfce-app + +FILES_${PN} += "${datadir}/xfce4 \ + ${datadir}/gnome-control-center" + +SRC_URI[md5sum] = "cb995e4891a3c547bf133b31e4840d01" +SRC_URI[sha256sum] = "0deb0d06e50a8a41fb00e2c3773f0793882cb9f073ae16ead887bb9681c514cd" + +RRECOMMENDS_${PN} += "vte-prompt" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-art/xfce-dusk-gtk3/xfce-dusk-gtk3_1.3.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-art/xfce-dusk-gtk3/xfce-dusk-gtk3_1.3.bb index b05c7485..89dab492 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-art/xfce-dusk-gtk3/xfce-dusk-gtk3_1.3.bb +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-art/xfce-dusk-gtk3/xfce-dusk-gtk3_1.3.bb @@ -4,7 +4,7 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=8f0e2cd40e05189ec81232da84bd6e1a" inherit allarch -SRC_URI = "http://xfce-look.org/CONTENT/content-files/141404-xfce_dusk_gtk3-1_3.tar.gz;subdir=${BPN}-${PV}" +SRC_URI = "http://sources.openembedded.org/141404-xfce_dusk_gtk3-1_3.tar.gz;subdir=${BPN}-${PV}" SRC_URI[md5sum] = "b3ad37ad8173b14ec090e60a80e65d8f" SRC_URI[sha256sum] = "bfa8a88607d1a1da5bd0b9e4e075767c54400a3c5a0fae88b619ed71532f30b4" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-bindings/vala/xfce4-vala_4.10.3.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-bindings/vala/xfce4-vala_4.10.3.bb index 68dbc69a..2f5d820f 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-bindings/vala/xfce4-vala_4.10.3.bb +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-bindings/vala/xfce4-vala_4.10.3.bb @@ -3,7 +3,7 @@ LICENSE = "LGPLv2.1" LIC_FILES_CHKSUM = "file://COPYING;md5=243b725d71bb5df4a1e5920b344b86ad" DEPENDS = "libxfce4util garcon xfconf libxfce4ui xfce4-panel exo vala xfce4-dev-tools-native" -inherit xfce pkgconfig distro_features_check +inherit xfce pkgconfig features_check REQUIRED_DISTRO_FEATURES = "x11" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-connectivity/blueman/blueman_%.bbappend b/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-connectivity/blueman/blueman_%.bbappend deleted file mode 100644 index 916f083b..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-connectivity/blueman/blueman_%.bbappend +++ /dev/null @@ -1,2 +0,0 @@ -# Just a comment line to avoid PAK archive (application/x-pak) -PACKAGECONFIG_append = " thunar" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-core/images/core-image-minimal-xfce.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-core/images/core-image-minimal-xfce.bb index 21930ba1..8009acdd 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-core/images/core-image-minimal-xfce.bb +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-core/images/core-image-minimal-xfce.bb @@ -6,7 +6,7 @@ IMAGE_INSTALL = "packagegroup-core-boot \ kernel-modules \ " -inherit distro_features_check +inherit features_check REQUIRED_DISTRO_FEATURES = "x11" IMAGE_LINGUAS ?= " " diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-devtools/glade/glade3/0001-Add-G_GNUC_PRINTF-on-functions-with-format-strings.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-devtools/glade/glade3/0001-Add-G_GNUC_PRINTF-on-functions-with-format-strings.patch deleted file mode 100644 index 03cb762c..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-devtools/glade/glade3/0001-Add-G_GNUC_PRINTF-on-functions-with-format-strings.patch +++ /dev/null @@ -1,62 +0,0 @@ -From fcf29abe59607b5791f9de18ddb86b9ae3c9b7cc Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Sat, 26 Aug 2017 23:50:05 -0700 -Subject: [PATCH] Add G_GNUC_PRINTF on functions with format strings - -This allows compilation with clang without errors, even when --Wformat-nonliteral is active (as long as there are no real cases of -non literal formatting). - -Signed-off-by: Khem Raj ---- - gladeui/glade-command.c | 4 ++-- - gladeui/glade-utils.c | 4 ++-- - 2 files changed, 4 insertions(+), 4 deletions(-) - -diff --git a/gladeui/glade-command.c b/gladeui/glade-command.c -index 9819766..4ac40ee 100644 ---- a/gladeui/glade-command.c -+++ b/gladeui/glade-command.c -@@ -266,7 +266,7 @@ glade_command_collapse (GladeCommand *command, - * - * Marks the begining of a group. - */ --void -+G_GNUC_PRINTF(1, 2) void - glade_command_push_group (const gchar *fmt, ...) - { - va_list args; -@@ -655,7 +655,7 @@ glade_command_set_properties_list (GladeProject *project, GList *props) - - multiple = g_list_length (me->sdata) > 1; - if (multiple) -- glade_command_push_group (cmd->description); -+ glade_command_push_group ("%s", cmd->description); - - - glade_command_check_group (GLADE_COMMAND (me)); -diff --git a/gladeui/glade-utils.c b/gladeui/glade-utils.c -index ae52501..c51ae59 100644 ---- a/gladeui/glade-utils.c -+++ b/gladeui/glade-utils.c -@@ -197,7 +197,7 @@ glade_utils_get_pspec_from_funcname (const gchar *funcname) - * selected "OK", True if the @type was GLADE_UI_YES_OR_NO and - * the user selected "YES"; False otherwise. - */ --gint -+G_GNUC_PRINTF(4, 5) gint - glade_util_ui_message (GtkWidget *parent, - GladeUIMessageType type, - GtkWidget *widget, -@@ -320,7 +320,7 @@ remove_message_timeout (FlashInfo * fi) - * - * Flash a temporary message on the statusbar. - */ --void -+G_GNUC_PRINTF(3, 4) void - glade_util_flash_message (GtkWidget *statusbar, guint context_id, gchar *format, ...) - { - va_list args; --- -2.14.1 - diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-devtools/glade/glade3/0001-gnome-doc-utils.make-sysrooted-pkg-config.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-devtools/glade/glade3/0001-gnome-doc-utils.make-sysrooted-pkg-config.patch deleted file mode 100644 index 1b24c39c..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-devtools/glade/glade3/0001-gnome-doc-utils.make-sysrooted-pkg-config.patch +++ /dev/null @@ -1,51 +0,0 @@ -From aed002cd9ff9e8f972120fbac33b4a65aba952e1 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Andreas=20M=C3=BCller?= -Date: Tue, 25 Sep 2012 10:28:33 +0200 -Subject: [PATCH] gnome-doc-utils.make: sysrooted pkg-config -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -same approach as used used in gnome-disk-utility: - -In cross environment we have to prepend the sysroot to the path found by -pkgconfig since the path returned from pkgconfig does not have sysroot prefixed -it ends up using the files from host system. Now usually people have gnome installed -so the build succeeds but if you dont have gnome installed on build host then -it wont find the files on host system and packages using gnome-doc-utils wont -compile. - -This should work ok with non sysrooted builds too since in those cases PKG_CONFIG_SYSROOT_DIR -will be empty - -Upstream-Status: pending - -Signed-off-by: Andreas Müller ---- - gnome-doc-utils.make | 10 +++++----- - 1 files changed, 5 insertions(+), 5 deletions(-) - -diff --git a/gnome-doc-utils.make b/gnome-doc-utils.make -index 42d9df3..f71bbfa 100644 ---- a/gnome-doc-utils.make -+++ b/gnome-doc-utils.make -@@ -133,11 +133,11 @@ _DOC_ABS_SRCDIR = @abs_srcdir@ - _xml2po ?= `which xml2po` - _xml2po_mode = $(if $(DOC_ID),mallard,docbook) - --_db2html ?= `$(PKG_CONFIG) --variable db2html gnome-doc-utils` --_db2omf ?= `$(PKG_CONFIG) --variable db2omf gnome-doc-utils` --_chunks ?= `$(PKG_CONFIG) --variable xmldir gnome-doc-utils`/gnome/xslt/docbook/utils/chunks.xsl --_credits ?= `$(PKG_CONFIG) --variable xmldir gnome-doc-utils`/gnome/xslt/docbook/utils/credits.xsl --_ids ?= $(shell $(PKG_CONFIG) --variable xmldir gnome-doc-utils)/gnome/xslt/docbook/utils/ids.xsl -+_db2html ?= ${PKG_CONFIG_SYSROOT_DIR}`$(PKG_CONFIG) --variable db2html gnome-doc-utils` -+_db2omf ?= ${PKG_CONFIG_SYSROOT_DIR}`$(PKG_CONFIG) --variable db2omf gnome-doc-utils` -+_chunks ?= ${PKG_CONFIG_SYSROOT_DIR}`$(PKG_CONFIG) --variable xmldir gnome-doc-utils`/gnome/xslt/docbook/utils/chunks.xsl -+_credits ?= ${PKG_CONFIG_SYSROOT_DIR}`$(PKG_CONFIG) --variable xmldir gnome-doc-utils`/gnome/xslt/docbook/utils/credits.xsl -+_ids ?= ${PKG_CONFIG_SYSROOT_DIR}`$(PKG_CONFIG) --variable xmldir gnome-doc-utils`/gnome/xslt/docbook/utils/ids.xsl - - if ENABLE_SK - _ENABLE_SK = true --- -1.7.6.5 - diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-devtools/glade/glade3/0002-fix-gcc-6-build.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-devtools/glade/glade3/0002-fix-gcc-6-build.patch deleted file mode 100644 index f735ff81..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-devtools/glade/glade3/0002-fix-gcc-6-build.patch +++ /dev/null @@ -1,39 +0,0 @@ -From 5aa3d2abb905fa8594f6c6572a87809da54c9342 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Andreas=20M=C3=BCller?= -Date: Mon, 5 Sep 2016 11:25:27 +0200 -Subject: [PATCH] fix gcc-6 build -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Upstream-Status: Pending - -Signed-off-by: Andreas Müller ---- - gladeui/glade-editor-property.c | 3 +++ - 1 file changed, 3 insertions(+) - -diff --git a/gladeui/glade-editor-property.c b/gladeui/glade-editor-property.c -index a0c1039..5e9ac38 100644 ---- a/gladeui/glade-editor-property.c -+++ b/gladeui/glade-editor-property.c -@@ -2703,6 +2703,8 @@ glade_eprop_object_view (gboolean radio) - } - - -+#pragma GCC diagnostic push -+#pragma GCC diagnostic ignored "-Wformat-nonliteral" - static gchar * - glade_eprop_object_dialog_title (GladeEditorProperty *eprop) - { -@@ -2731,6 +2733,7 @@ glade_eprop_object_dialog_title (GladeEditorProperty *eprop) - return g_strdup_printf (format, g_type_name - (eprop->klass->pspec->value_type)); - } -+#pragma GCC diagnostic pop - - - gboolean --- -2.5.5 - diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-devtools/glade/glade3_3.8.5.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-devtools/glade/glade3_3.8.5.bb deleted file mode 100644 index c3da3e9b..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-devtools/glade/glade3_3.8.5.bb +++ /dev/null @@ -1,23 +0,0 @@ -SUMMARY = "Glade - A User Interface Designer" -HOMEPAGE = "http://www.gnu.org/software/gnash" -LICENSE = "GPLv2 & LGPLv2" -LIC_FILES_CHKSUM = "file://COPYING;md5=aabe87591cb8ae0f3c68be6977bb5522 \ - file://COPYING.GPL;md5=9ac2e7cff1ddaf48b6eab6028f23ef88 \ - file://COPYING.LGPL;md5=252890d9eee26aab7b432e8b8a616475" -DEPENDS = "gtk+ gnome-doc-utils gnome-common libxml2 intltool-native" - -inherit distro_features_check autotools pkgconfig pythonnative gtk-icon-cache - -REQUIRED_DISTRO_FEATURES = "x11" - -SRC_URI = "http://ftp.gnome.org/pub/GNOME/sources/glade3/3.8/glade3-${PV}.tar.xz \ - file://0001-gnome-doc-utils.make-sysrooted-pkg-config.patch \ - file://0002-fix-gcc-6-build.patch \ - file://0001-Add-G_GNUC_PRINTF-on-functions-with-format-strings.patch \ - " -SRC_URI[md5sum] = "4e4b4f5ee34a03e017e4cef97d796c1f" -SRC_URI[sha256sum] = "58a5f6e4df4028230ddecc74c564808b7ec4471b1925058e29304f778b6b2735" - -EXTRA_OECONF += "--disable-scrollkeeper" - -FILES_${PN} += "${datadir}/icons" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-extended/imsettings/imsettings_1.7.3.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-extended/imsettings/imsettings_1.7.3.bb deleted file mode 100644 index 8f622bf6..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-extended/imsettings/imsettings_1.7.3.bb +++ /dev/null @@ -1,31 +0,0 @@ -SUMMARY = "Delivery framework for general Input Method configuration" -DESCRIPTION = "IMSettings is a framework that delivers Input Method \ -settings and applies the changes so they take effect \ -immediately without any need to restart applications \ -or the desktop. \ -This package contains the core DBus services and some utilities." -HOMEPAGE = "http://code.google.com/p/imsettings/" -SECTION = "Applications/System" - -inherit autotools gtk-doc gobject-introspection distro_features_check - -REQUIRED_DISTRO_FEATURES = "x11" - -SRC_URI = "https://bitbucket.org/tagoh/imsettings/downloads/${BPN}-${PV}.tar.bz2 \ - " - -SRC_URI[md5sum] = "c6c65a2b2654fe9dfe9ab2e8b80c079a" -SRC_URI[sha256sum] = "196d3a74cef254ff812c32682d1818d740e36a68b976fef9e99748d23a71a71a" - -LICENSE = "LGPLv2+" -LIC_FILES_CHKSUM = "file://COPYING;md5=2d5025d4aa3495befef8f17206a5b0a1" - -EXTRA_OECONF = "--with-xinputsh=50-xinput.sh \ - --disable-static \ - " - -DEPENDS = "gtk+ gconf libnotify dbus-glib libgxim xfconf intltool-native" - -RDEPENDS_${PN} += "bash" - -FILES_${PN} += "${datadir}/dbus-1/* ${datadir}/gir-1.0/* ${libdir}/girepository-1.0/*" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-extended/imsettings/imsettings_1.8.1.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-extended/imsettings/imsettings_1.8.1.bb new file mode 100644 index 00000000..c8f495ed --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-extended/imsettings/imsettings_1.8.1.bb @@ -0,0 +1,33 @@ +SUMMARY = "Delivery framework for general Input Method configuration" +DESCRIPTION = "IMSettings is a framework that delivers Input Method \ +settings and applies the changes so they take effect \ +immediately without any need to restart applications \ +or the desktop. \ +This package contains the core DBus services and some utilities." +HOMEPAGE = "http://code.google.com/p/imsettings/" +SECTION = "Applications/System" + +LICENSE = "LGPLv2+" +LIC_FILES_CHKSUM = "file://COPYING;md5=2d5025d4aa3495befef8f17206a5b0a1" + +inherit autotools gtk-doc gobject-introspection gettext features_check + +DEPENDS = "gtk+3 libnotify" + +REQUIRED_DISTRO_FEATURES = "x11" + +SRC_URI = "https://bitbucket.org/tagoh/imsettings/downloads/${BPN}-${PV}.tar.bz2" +SRC_URI[md5sum] = "c04341a008d8c60e1532f033f4020f44" +SRC_URI[sha256sum] = "ebf578299a10c6a1fea9047be6577df6d2b6470d3cc9d40f8a6589a3c13c4c8b" + +EXTRA_OECONF = "--with-xinputsh=50-xinput.sh \ + --disable-static \ + " + +PACKAGECONFIG ??= "xfce" +PACKAGECONFIG[xfce] = ",,xfconf" +PACKAGECONFIG[xim] = ",,libgxim" + +RDEPENDS_${PN} += "bash" + +FILES_${PN} += "${datadir}/dbus-1/*" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-extended/libunique/libunique_1.1.6.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-extended/libunique/libunique_1.1.6.bb index a6475cef..a6d335a2 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-extended/libunique/libunique_1.1.6.bb +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-extended/libunique/libunique_1.1.6.bb @@ -25,7 +25,7 @@ LICENSE = "LGPLv2.1" LIC_FILES_CHKSUM = "file://COPYING;md5=2d5025d4aa3495befef8f17206a5b0a1" -inherit autotools pkgconfig gobject-introspection distro_features_check gtk-doc +inherit autotools pkgconfig gobject-introspection features_check gtk-doc REQUIRED_DISTRO_FEATURES = "x11" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-graphics/lxdm/lxdm/gdmflexiserver b/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-graphics/lxdm/lxdm/gdmflexiserver deleted file mode 100644 index 4be65c0c..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-graphics/lxdm/lxdm/gdmflexiserver +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/sh - -/usr/sbin/lxdm -c USER_SWITCH diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-graphics/lxdm/lxdm_%.bbappend b/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-graphics/lxdm/lxdm_%.bbappend deleted file mode 100644 index 4a799a98..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-graphics/lxdm/lxdm_%.bbappend +++ /dev/null @@ -1,7 +0,0 @@ -FILESEXTRAPATHS_append := "${THISDIR}/${BPN}:" - -SRC_URI += "file://gdmflexiserver" - -do_install_append () { - install -D -m 0755 ${WORKDIR}/gdmflexiserver ${D}${bindir}/gdmflexiserver -} diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-multimedia/packagegroups/packagegroup-xfce-multimedia.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-multimedia/packagegroups/packagegroup-xfce-multimedia.bb index 19a6e2b0..c30c7990 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-multimedia/packagegroups/packagegroup-xfce-multimedia.bb +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-multimedia/packagegroups/packagegroup-xfce-multimedia.bb @@ -1,6 +1,4 @@ SUMMARY = "All packages multimedia packages available for XFCE" -LICENSE = "MIT" -LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302" inherit packagegroup diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-multimedia/parole/parole_1.0.2.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-multimedia/parole/parole_1.0.2.bb deleted file mode 100644 index a286a5ad..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-multimedia/parole/parole_1.0.2.bb +++ /dev/null @@ -1,36 +0,0 @@ -DESCRIPTION = "Parole is a modern simple media player based on the GStreamer framework" -HOMEPAGE = "http://goodies.xfce.org/projects/applications/parole" -LICENSE = "GPLv2" -LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552" - -inherit xfce-app gtk-doc mime - -DEPENDS += " \ - glib-2.0 \ - dbus-glib \ - gtk+3 \ - \ - xfce4-dev-tools-native \ - libxfce4util \ - libxfce4ui \ - xfconf \ - \ - gstreamer1.0-plugins-base \ - taglib \ -" - -SRC_URI[md5sum] = "cd22ab579470c5728db0aa6c0b9d4c7d" -SRC_URI[sha256sum] = "bff0fc846d0d7b8f435ac5514976f1cd1d82b62dbf1b7d470e253a5b439407da" - -RDEPENDS_${PN} += "gstreamer1.0-plugins-good" - -EXTRA_OECONF = "--disable-gtk-doc" - -PACKAGECONFIG ??= "notify" -PACKAGECONFIG[clutter] = "--enable-clutter, --disable-clutter, clutter" -PACKAGECONFIG[notify] = "--enable-notify-plugin, --disable-notify-plugin, libnotify" - -FILES_${PN} += " \ - ${datadir}/appdata \ - ${libdir}/parole-0/*.so \ -" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-multimedia/parole/parole_1.0.5.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-multimedia/parole/parole_1.0.5.bb new file mode 100644 index 00000000..efee1aa9 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-multimedia/parole/parole_1.0.5.bb @@ -0,0 +1,33 @@ +DESCRIPTION = "Parole is a modern simple media player based on the GStreamer framework" +HOMEPAGE = "https://docs.xfce.org/apps/parole/start" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552" + +inherit xfce-app gtk-doc mime + +DEPENDS += " \ + dbus-glib \ + xfce4-dev-tools-native \ + libxfce4util \ + libxfce4ui \ + xfconf \ + \ + gstreamer1.0-plugins-base \ + taglib \ +" + +SRC_URI[md5sum] = "74fcde5da018c011e5febd9649817c05" +SRC_URI[sha256sum] = "1adb4bd96c4cc4b4a79eeafe1316e170f506426e3737e8ba8898f7ea6bec572a" + +RDEPENDS_${PN} += "gstreamer1.0-plugins-good" + +EXTRA_OECONF = "--disable-gtk-doc" + +PACKAGECONFIG ??= "notify" +PACKAGECONFIG[clutter] = "--enable-clutter, --disable-clutter, clutter" +PACKAGECONFIG[notify] = "--enable-notify-plugin, --disable-notify-plugin, libnotify" + +FILES_${PN} += " \ + ${datadir}/metainfo \ + ${libdir}/parole-0/*.so \ +" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-multimedia/xfce4-mpc-plugin/xfce4-mpc-plugin_0.5.1.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-multimedia/xfce4-mpc-plugin/xfce4-mpc-plugin_0.5.1.bb deleted file mode 100644 index 85235490..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-multimedia/xfce4-mpc-plugin/xfce4-mpc-plugin_0.5.1.bb +++ /dev/null @@ -1,18 +0,0 @@ -SUMMARY = "Simple client plugin for Music Player Daemon" -HOMEPAGE = "http://goodies.xfce.org/projects/panel-plugins/xfce4-mpc-plugin" -SECTION = "x11/application" -LICENSE = "BSD" -LIC_FILES_CHKSUM = "file://COPYING;md5=3604d987e6dfdfc672c754d08953b0e0" - -inherit xfce-panel-plugin - -DEPENDS += "libmpd" - -# While this item does not require it, it depends on mpd which does -LICENSE_FLAGS = "commercial" - -# for now we recommend our own mpd-server -RRECOMMENDS_${PN} = "mpd" - -SRC_URI[md5sum] = "305dfdacb2b2198e1f1673d61f86e4f5" -SRC_URI[sha256sum] = "635e678c9729663e9eaadfcf58426f7cea37e6d3fda5e818955fbc8ade00de01" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-multimedia/xfce4-mpc-plugin/xfce4-mpc-plugin_0.5.2.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-multimedia/xfce4-mpc-plugin/xfce4-mpc-plugin_0.5.2.bb new file mode 100644 index 00000000..9d031dd5 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-multimedia/xfce4-mpc-plugin/xfce4-mpc-plugin_0.5.2.bb @@ -0,0 +1,18 @@ +SUMMARY = "Simple client plugin for Music Player Daemon" +HOMEPAGE = "https://goodies.xfce.org/projects/panel-plugins/xfce4-mpc-plugin" +SECTION = "x11/application" +LICENSE = "BSD-0-Clause" +LIC_FILES_CHKSUM = "file://COPYING;md5=3604d987e6dfdfc672c754d08953b0e0" + +inherit xfce-panel-plugin + +DEPENDS += "libmpd" + +# While this item does not require it, it depends on mpd which does +LICENSE_FLAGS = "commercial" + +# for now we recommend our own mpd-server +RRECOMMENDS_${PN} = "mpd" + +SRC_URI[md5sum] = "26a1e8658df2b51967dc2250e23f467d" +SRC_URI[sha256sum] = "eefe78b7b6b95312b3a52814b7f632dc92970c1b3e9535de616315749bf67760" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-multimedia/xfmpc/xfmpc_0.2.3.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-multimedia/xfmpc/xfmpc_0.2.3.bb deleted file mode 100644 index 869435d6..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-multimedia/xfmpc/xfmpc_0.2.3.bb +++ /dev/null @@ -1,16 +0,0 @@ -SUMMARY = "Music Player Daemon (MPD) client written in GTK+" -HOMEPAGE = "http://goodies.xfce.org/projects/applications/xfmpc" -LICENSE = "GPLv2" -LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f" -DEPENDS = "gtk+ libxfce4util libxfce4ui libmpd vala-native" - -# While this item does not require it, it depends on mpd which does -LICENSE_FLAGS = "commercial" - -# for now we recommend our own mpd-server -RRECOMMENDS_${PN} = "mpd" - -inherit xfce-app - -SRC_URI[md5sum] = "e2d2faeb7a6f62813e287f3d12522b71" -SRC_URI[sha256sum] = "4189c0c82b66b758a6d5bc651493b675d3d46329e5f1a76ff26c448125f4fcb0" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-multimedia/xfmpc/xfmpc_0.3.0.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-multimedia/xfmpc/xfmpc_0.3.0.bb new file mode 100644 index 00000000..0f5ed895 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-multimedia/xfmpc/xfmpc_0.3.0.bb @@ -0,0 +1,16 @@ +SUMMARY = "Music Player Daemon (MPD) client written in GTK+" +HOMEPAGE = "https://goodies.xfce.org/projects/applications/xfmpc" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f" +DEPENDS = "libxfce4util libxfce4ui libmpd vala-native" + +# While this item does not require it, it depends on mpd which does +LICENSE_FLAGS = "commercial" + +# for now we recommend our own mpd-server +RRECOMMENDS_${PN} = "mpd" + +inherit xfce-app + +SRC_URI[md5sum] = "e6ff8563f159d1e727d656fb88964998" +SRC_URI[sha256sum] = "c76e2a88dc3e1d345da7a5c68fa39981494c2b40033748efcac54411c9e65689" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-panel-plugins/battery/xfce4-battery-plugin_1.1.2.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-panel-plugins/battery/xfce4-battery-plugin_1.1.2.bb deleted file mode 100644 index 5de1ce5e..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-panel-plugins/battery/xfce4-battery-plugin_1.1.2.bb +++ /dev/null @@ -1,9 +0,0 @@ -SUMMARY = "A battery monitor panel plugin for Xfce4, compatible with APM and ACP" -HOMEPAGE = "http://goodies.xfce.org/projects/panel-plugins/xfce4-battery-plugin" -LICENSE = "GPLv2" -LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f" - -inherit xfce-panel-plugin - -SRC_URI[md5sum] = "ba1cfe619046373f9af5b903c77d1858" -SRC_URI[sha256sum] = "d601349fa9a979dae99ace39b24d99b97f62b80f42ac5dea5a99e5af3e88d7db" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-panel-plugins/battery/xfce4-battery-plugin_1.1.3.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-panel-plugins/battery/xfce4-battery-plugin_1.1.3.bb new file mode 100644 index 00000000..ecbdc265 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-panel-plugins/battery/xfce4-battery-plugin_1.1.3.bb @@ -0,0 +1,9 @@ +SUMMARY = "A battery monitor panel plugin for Xfce4, compatible with APM and ACP" +HOMEPAGE = "https://goodies.xfce.org/projects/panel-plugins/xfce4-battery-plugin" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f" + +inherit xfce-panel-plugin + +SRC_URI[md5sum] = "9f82c7e77de0a417716d68d33367973b" +SRC_URI[sha256sum] = "12be0a44d16bd1e1618513ee64f946814925872db7d1c1188ab1454b00d040a3" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-panel-plugins/cpugraph/xfce4-cpugraph-plugin_1.0.5.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-panel-plugins/cpugraph/xfce4-cpugraph-plugin_1.0.5.bb deleted file mode 100644 index 83e2bb5c..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-panel-plugins/cpugraph/xfce4-cpugraph-plugin_1.0.5.bb +++ /dev/null @@ -1,9 +0,0 @@ -SUMMARY = "Panel plugin with graphical representation of the cpu frequency" -HOMEPAGE = "http://goodies.xfce.org/projects/panel-plugins/xfce4-cpugraph-plugin" -LICENSE = "GPLv2" -LIC_FILES_CHKSUM = "file://COPYING;md5=415654f59d8fa70fe4eac2c3f86c8f5e" - -inherit xfce-panel-plugin - -SRC_URI[md5sum] = "f0ebfabb273adf69361b37a3fa4b7912" -SRC_URI[sha256sum] = "85da0ec89aacfd31e0bbafcefea37cdca618d62e681c1c9da8bdd492f028f4c7" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-panel-plugins/cpugraph/xfce4-cpugraph-plugin_1.1.0.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-panel-plugins/cpugraph/xfce4-cpugraph-plugin_1.1.0.bb new file mode 100644 index 00000000..eeb54b31 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-panel-plugins/cpugraph/xfce4-cpugraph-plugin_1.1.0.bb @@ -0,0 +1,9 @@ +SUMMARY = "Panel plugin with graphical representation of the cpu frequency" +HOMEPAGE = "https://goodies.xfce.org/projects/panel-plugins/xfce4-cpugraph-plugin" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=415654f59d8fa70fe4eac2c3f86c8f5e" + +inherit xfce-panel-plugin + +SRC_URI[md5sum] = "48ead9dcc019212795637c170d9e2ca2" +SRC_URI[sha256sum] = "3ece0a24e55827e0d9b6314129906da60513acdc1748d9dece9f50526e906ba4" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-panel-plugins/datetime/xfce4-datetime-plugin_0.7.1.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-panel-plugins/datetime/xfce4-datetime-plugin_0.7.1.bb deleted file mode 100644 index 97aa184b..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-panel-plugins/datetime/xfce4-datetime-plugin_0.7.1.bb +++ /dev/null @@ -1,9 +0,0 @@ -SUMMARY = "Panel plugin displaying date and time and a calendar when left-clicked" -HOMEPAGE = "http://goodies.xfce.org/projects/panel-plugins/xfce4-datetime-plugin" -LICENSE = "GPLv2" -LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552" - -inherit xfce-panel-plugin - -SRC_URI[md5sum] = "c42149ec71836fe83085511429e638dc" -SRC_URI[sha256sum] = "e0c7321346ded2539c4688c593f650696ed0ddca0a5f9d4e404d0e7fc42ae256" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-panel-plugins/datetime/xfce4-datetime-plugin_0.8.0.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-panel-plugins/datetime/xfce4-datetime-plugin_0.8.0.bb new file mode 100644 index 00000000..a1fc139b --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-panel-plugins/datetime/xfce4-datetime-plugin_0.8.0.bb @@ -0,0 +1,9 @@ +SUMMARY = "Panel plugin displaying date and time and a calendar when left-clicked" +HOMEPAGE = "https://goodies.xfce.org/projects/panel-plugins/xfce4-datetime-plugin" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552" + +inherit xfce-panel-plugin + +SRC_URI[md5sum] = "b88e47af4e9e156e43dc993f18218bd3" +SRC_URI[sha256sum] = "cd358bc2ff0707b8ef1504396a19b0a27f802c2ec7bceb5cebe2c7baf6adebd4" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-panel-plugins/diskperf/xfce4-diskperf-plugin/0001-panel-plugin-Include-sys-sysmacros.h-for-major-minor.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-panel-plugins/diskperf/xfce4-diskperf-plugin/0001-panel-plugin-Include-sys-sysmacros.h-for-major-minor.patch deleted file mode 100644 index 007d3e58..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-panel-plugins/diskperf/xfce4-diskperf-plugin/0001-panel-plugin-Include-sys-sysmacros.h-for-major-minor.patch +++ /dev/null @@ -1,30 +0,0 @@ -From c35a8cb24e8adafb11cbc261de37d97244e55927 Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Sat, 11 Aug 2018 10:08:27 -0700 -Subject: [PATCH] panel-plugin: Include sys/sysmacros.h for major/minor -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -glibc 2.28+ needs it - -Upstream-Status: Pending - -Signed-off-by: Khem Raj -Cc: Andreas Müller ---- - panel-plugin/devperf.c | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/panel-plugin/devperf.c b/panel-plugin/devperf.c -index 175fd44..cb2e88a 100644 ---- a/panel-plugin/devperf.c -+++ b/panel-plugin/devperf.c -@@ -34,6 +34,7 @@ - #include - #include - /* for major() and minor() */ -+#include - #define _BSD_SOURCE - #include - diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-panel-plugins/diskperf/xfce4-diskperf-plugin_2.6.1.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-panel-plugins/diskperf/xfce4-diskperf-plugin_2.6.1.bb deleted file mode 100644 index dc7f1fcd..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-panel-plugins/diskperf/xfce4-diskperf-plugin_2.6.1.bb +++ /dev/null @@ -1,12 +0,0 @@ -SUMMARY = "Panel plugin displaying instant disk/partition performance" -HOMEPAGE = "http://goodies.xfce.org/projects/panel-plugins/xfce4-diskperf-plugin" -LICENSE = "BSD" -LIC_FILES_CHKSUM = "file://COPYING;md5=d3e627798d6a60bece47aa8b3532e1f1" - -inherit xfce-panel-plugin - -SRC_URI = "http://archive.xfce.org/src/panel-plugins/${BPN}/${@'${PV}'[0:3]}/${BPN}-${PV}.tar.bz2 \ - file://0001-panel-plugin-Include-sys-sysmacros.h-for-major-minor.patch \ - " -SRC_URI[md5sum] = "63d5f03934c2dbddb3ad7bf7f535cc23" -SRC_URI[sha256sum] = "212ddc742be3eecb6ad5554e1b1df03d5685cb71f48a558d5f895de37c57e4fa" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-panel-plugins/diskperf/xfce4-diskperf-plugin_2.6.2.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-panel-plugins/diskperf/xfce4-diskperf-plugin_2.6.2.bb new file mode 100644 index 00000000..6a72c89a --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-panel-plugins/diskperf/xfce4-diskperf-plugin_2.6.2.bb @@ -0,0 +1,10 @@ +SUMMARY = "Panel plugin displaying instant disk/partition performance" +HOMEPAGE = "https://goodies.xfce.org/projects/panel-plugins/xfce4-diskperf-plugin" +LICENSE = "BSD-2-Clause" +LIC_FILES_CHKSUM = "file://COPYING;md5=d3e627798d6a60bece47aa8b3532e1f1" + +inherit xfce-panel-plugin + +SRC_URI = "http://archive.xfce.org/src/panel-plugins/${BPN}/${@'${PV}'[0:3]}/${BPN}-${PV}.tar.bz2" +SRC_URI[md5sum] = "538119ea97a217695b297e2d165b305f" +SRC_URI[sha256sum] = "fd2e9843da5822de96a7829e50ba496c34a50fb8492d5b5f792558c6b7ce9644" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-panel-plugins/fsguard/xfce4-fsguard-plugin_1.1.0.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-panel-plugins/fsguard/xfce4-fsguard-plugin_1.1.0.bb deleted file mode 100644 index 8b924ac7..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-panel-plugins/fsguard/xfce4-fsguard-plugin_1.1.0.bb +++ /dev/null @@ -1,9 +0,0 @@ -DESCRIPTION = "The FSGuard panel plugin checks free space on a chosen mount point frequently and displays a message when a limit is reached" -HOMEPAGE = "http://goodies.xfce.org/projects/panel-plugins/xfce4-fsguard-plugin?&#recet_releases" -LICENSE = "GPLv3" -LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504" - -inherit xfce-panel-plugin - -SRC_URI[md5sum] = "c9fcc1ff37f38e6ed518eca3b9887aa8" -SRC_URI[sha256sum] = "6b038322b49d29625219e6a54497085b8f834b9c1fd15282ce286a6529d7c445" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-panel-plugins/fsguard/xfce4-fsguard-plugin_1.1.1.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-panel-plugins/fsguard/xfce4-fsguard-plugin_1.1.1.bb new file mode 100644 index 00000000..183d521a --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-panel-plugins/fsguard/xfce4-fsguard-plugin_1.1.1.bb @@ -0,0 +1,9 @@ +DESCRIPTION = "The FSGuard panel plugin checks free space on a chosen mount point frequently and displays a message when a limit is reached" +HOMEPAGE = "https://goodies.xfce.org/projects/panel-plugins/xfce4-fsguard-plugin" +LICENSE = "BSD-2-Clause" +LIC_FILES_CHKSUM = "file://COPYING;md5=3434d79d62df09abf5f78bb76d6cd21b" + +inherit xfce-panel-plugin + +SRC_URI[md5sum] = "d1e1fda4e80c36741643b1d9eca5c5c1" +SRC_URI[sha256sum] = "d6d05d0a90a68453d65cdceec5ca7eeaef864393ab62eef532a7ba58f374d516" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-panel-plugins/genmon/xfce4-genmon-plugin_4.0.1.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-panel-plugins/genmon/xfce4-genmon-plugin_4.0.1.bb deleted file mode 100644 index 002e93da..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-panel-plugins/genmon/xfce4-genmon-plugin_4.0.1.bb +++ /dev/null @@ -1,9 +0,0 @@ -DESCRIPTION = "This plugin cyclically spawns the indicated script/program, captures its output (stdout) and displays the resulting string into the panel." -HOMEPAGE = "http://goodies.xfce.org/projects/panel-plugins/xfce4-genmon-plugin" -LICENSE = "LGPLv2.1" -LIC_FILES_CHKSUM = "file://COPYING;md5=68ad62c64cc6c620126241fd429e68fe" - -inherit xfce-panel-plugin - -SRC_URI[md5sum] = "9dd0681c179302d56d92bbda5765bd09" -SRC_URI[sha256sum] = "4c6ce37fbe71094548b44862587c2813da991aeaaecff8e572724dbbec83ab86" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-panel-plugins/genmon/xfce4-genmon-plugin_4.0.2.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-panel-plugins/genmon/xfce4-genmon-plugin_4.0.2.bb new file mode 100644 index 00000000..3108a776 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-panel-plugins/genmon/xfce4-genmon-plugin_4.0.2.bb @@ -0,0 +1,9 @@ +DESCRIPTION = "This plugin cyclically spawns the indicated script/program, captures its output (stdout) and displays the resulting string into the panel." +HOMEPAGE = "http://goodies.xfce.org/projects/panel-plugins/xfce4-genmon-plugin" +LICENSE = "LGPLv2.1" +LIC_FILES_CHKSUM = "file://COPYING;md5=68ad62c64cc6c620126241fd429e68fe" + +inherit xfce-panel-plugin + +SRC_URI[md5sum] = "d808fe77a438c95b97ec6feda6162d22" +SRC_URI[sha256sum] = "256c22526f61aabf43b91b903b976c13e56198657667df443cdb06b31fbf23aa" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-panel-plugins/kbdleds/xfce4-kbdleds-plugin_0.0.6.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-panel-plugins/kbdleds/xfce4-kbdleds-plugin_0.0.6.bb deleted file mode 100644 index caf55084..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-panel-plugins/kbdleds/xfce4-kbdleds-plugin_0.0.6.bb +++ /dev/null @@ -1,15 +0,0 @@ -SUMMARY = "XFCE panel plugin displaying status of keyboard LEDs" -DESCRIPTION = "This plugin shows the state of your keyboard LEDs: Caps, Scroll and Num Lock in Xfce panel" -HOMEPAGE = "http://goodies.xfce.org/projects/panel-plugins/xfce4-kbdleds-plugin" -LICENSE = "GPLv2" -LIC_FILES_CHKSUM = " \ - file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f \ - file://COPYING.LIB;md5=252890d9eee26aab7b432e8b8a616475 \ -" - -inherit xfce-panel-plugin - -SRC_URI[md5sum] = "db6ad8e3502f3373f087ba2034141552" -SRC_URI[sha256sum] = "6d280ad7207bcb9cc87c279dc3ab9084fd93325e87f67858e8917729b50201cd" - -FILES_${PN} += "${libdir}/xfce4/panel-plugins/xfce4-kbdleds-plugin" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-panel-plugins/netload/xfce4-netload-plugin/0001-Do-not-include-sys-sysctl.h-its-unused-on-linux-port.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-panel-plugins/netload/xfce4-netload-plugin/0001-Do-not-include-sys-sysctl.h-its-unused-on-linux-port.patch deleted file mode 100644 index e3541819..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-panel-plugins/netload/xfce4-netload-plugin/0001-Do-not-include-sys-sysctl.h-its-unused-on-linux-port.patch +++ /dev/null @@ -1,25 +0,0 @@ -From 7fcc7352ec11644ac8be4e9ec1584a5be3333684 Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Wed, 12 Jul 2017 18:18:30 -0700 -Subject: [PATCH] Do not include sys/sysctl.h its unused on linux port - -Signed-off-by: Khem Raj ---- - panel-plugin/os.h | 1 - - 1 file changed, 1 deletion(-) - -diff --git a/panel-plugin/os.h b/panel-plugin/os.h -index 473c2a4..9a5c544 100644 ---- a/panel-plugin/os.h -+++ b/panel-plugin/os.h -@@ -170,7 +170,6 @@ - #elif __linux__ /* L I N U X */ - # include - # include --# include - # include - # include - # include --- -2.13.2 - diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-panel-plugins/netload/xfce4-netload-plugin_1.3.1.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-panel-plugins/netload/xfce4-netload-plugin_1.3.1.bb deleted file mode 100644 index 35c8861b..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-panel-plugins/netload/xfce4-netload-plugin_1.3.1.bb +++ /dev/null @@ -1,12 +0,0 @@ -SUMMARY = "Panel plugin displaying current load of the network interfaces" -HOMEPAGE = "http://goodies.xfce.org/projects/panel-plugins/xfce4-netload-plugin" -LICENSE = "GPLv2" -LIC_FILES_CHKSUM = "file://COPYING;md5=35a7203c41b86d15546dddc05995f97f" - -inherit xfce-panel-plugin - -SRC_URI = "http://archive.xfce.org/src/panel-plugins/${BPN}/${@'${PV}'[0:3]}/${BPN}-${PV}.tar.bz2 \ - file://0001-Do-not-include-sys-sysctl.h-its-unused-on-linux-port.patch \ - " -SRC_URI[md5sum] = "f25aa3242e3119b49f259a3e4a1af08b" -SRC_URI[sha256sum] = "99762781099d1e0ab9aa6a7b30c2bd94d8f658dbe61c760410d5d42d0766391c" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-panel-plugins/netload/xfce4-netload-plugin_1.3.2.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-panel-plugins/netload/xfce4-netload-plugin_1.3.2.bb new file mode 100644 index 00000000..13e7b1db --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-panel-plugins/netload/xfce4-netload-plugin_1.3.2.bb @@ -0,0 +1,10 @@ +SUMMARY = "Panel plugin displaying current load of the network interfaces" +HOMEPAGE = "https://goodies.xfce.org/projects/panel-plugins/xfce4-netload-plugin" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=35a7203c41b86d15546dddc05995f97f" + +inherit xfce-panel-plugin + +SRC_URI = "http://archive.xfce.org/src/panel-plugins/${BPN}/${@'${PV}'[0:3]}/${BPN}-${PV}.tar.bz2" +SRC_URI[md5sum] = "ae4652711812a77a58c3dc96650a74dc" +SRC_URI[sha256sum] = "22e40425cfe1e07b01fe275b1afddc7c788af34d9c2c7e2842166963cb41215d" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-panel-plugins/places/xfce4-places-plugin_1.8.0.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-panel-plugins/places/xfce4-places-plugin_1.8.0.bb deleted file mode 100644 index 698152ba..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-panel-plugins/places/xfce4-places-plugin_1.8.0.bb +++ /dev/null @@ -1,13 +0,0 @@ -SUMMARY = "Menu for quick access to folders, documents and removable media" -DESCRIPTION = "Panel plugin displaying menu with quick access to folders, documents and removable media" -HOMEPAGE = "http://goodies.xfce.org/projects/panel-plugins/xfce4-places-plugin" -LICENSE = "GPLv2" -LIC_FILES_CHKSUM = "file://COPYING;md5=b6952d9a47fc2ad0f315510e1290455f" - -inherit xfce-panel-plugin - -SRC_URI[md5sum] = "e3a306d927befb8afcb5212f8ab0b8c9" -SRC_URI[sha256sum] = "7ba3f46f88c2845cbf413efeefaed29157f8b98571856c6e2bf35e4de5d8ecce" - -PACKAGECONFIG ??= "" -PACKAGECONFIG[notify] = "--enable-notifications,--disable-notifications,libnotify" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-panel-plugins/places/xfce4-places-plugin_1.8.1.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-panel-plugins/places/xfce4-places-plugin_1.8.1.bb new file mode 100644 index 00000000..c88e8439 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-panel-plugins/places/xfce4-places-plugin_1.8.1.bb @@ -0,0 +1,13 @@ +SUMMARY = "Menu for quick access to folders, documents and removable media" +DESCRIPTION = "Panel plugin displaying menu with quick access to folders, documents and removable media" +HOMEPAGE = "https://goodies.xfce.org/projects/panel-plugins/xfce4-places-plugin" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=b6952d9a47fc2ad0f315510e1290455f" + +inherit xfce-panel-plugin + +SRC_URI[md5sum] = "bde92cbd08f129d517524784e5060816" +SRC_URI[sha256sum] = "f211219f03c9260f624370e18c79e4176c9d35a8247158e77e5d811327610ab2" + +PACKAGECONFIG ??= "" +PACKAGECONFIG[notify] = "--enable-notifications,--disable-notifications,libnotify" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-panel-plugins/pulseaudio/xfce4-pulseaudio-plugin_0.4.1.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-panel-plugins/pulseaudio/xfce4-pulseaudio-plugin_0.4.1.bb deleted file mode 100644 index b4237076..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-panel-plugins/pulseaudio/xfce4-pulseaudio-plugin_0.4.1.bb +++ /dev/null @@ -1,17 +0,0 @@ -SUMMARY = "Pulseaudio mixer for the xfce panel" -LICENSE = "GPLv2" -LIC_FILES_CHKSUM = "file://COPYING;md5=f5eac6bb0d6ec0dc655e417781d4015f" - -inherit xfce-panel-plugin distro_features_check - -REQUIRED_DISTRO_FEATURES = "pulseaudio x11" - -DEPENDS += "pulseaudio" - -SRC_URI[md5sum] = "7df7280c19c2c8b8c5bc4f4f2136d1dd" -SRC_URI[sha256sum] = "6ca88314dbac3e24c0e1bfc593fad6edb66319766be62e8256c81b0314f049f0" - -PACKAGECONFIG ??= "" -PACKAGECONFIG[libnotify] = "--enable-libnotify,--disable-libnotify,libnotify" - -RRECOMMENDS_${PN} = "pavucontrol" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-panel-plugins/pulseaudio/xfce4-pulseaudio-plugin_0.4.2.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-panel-plugins/pulseaudio/xfce4-pulseaudio-plugin_0.4.2.bb new file mode 100644 index 00000000..fc380c15 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-panel-plugins/pulseaudio/xfce4-pulseaudio-plugin_0.4.2.bb @@ -0,0 +1,17 @@ +SUMMARY = "Pulseaudio mixer for the xfce panel" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=f5eac6bb0d6ec0dc655e417781d4015f" + +inherit xfce-panel-plugin features_check + +REQUIRED_DISTRO_FEATURES = "pulseaudio x11" + +DEPENDS += "dbus-glib pulseaudio" + +SRC_URI[md5sum] = "9a34eadf06ed217ec0732a096f178987" +SRC_URI[sha256sum] = "4ae8aebc2458675d4f885bf16f73829be359e16370a684301bbef6a23758a120" + +PACKAGECONFIG ??= "" +PACKAGECONFIG[libnotify] = "--enable-libnotify,--disable-libnotify,libnotify" + +RRECOMMENDS_${PN} = "pavucontrol" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-panel-plugins/smartbookmark/xfce4-smartbookmark-plugin_0.5.0.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-panel-plugins/smartbookmark/xfce4-smartbookmark-plugin_0.5.0.bb deleted file mode 100644 index 6289ad31..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-panel-plugins/smartbookmark/xfce4-smartbookmark-plugin_0.5.0.bb +++ /dev/null @@ -1,9 +0,0 @@ -SUMMARY = "Panel plugin allowing to send requests directly to browser" -HOMEPAGE = "http://goodies.xfce.org/projects/panel-plugins/xfce4-smartbookmark-plugin" -LICENSE = "GPLv2" -LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263" - -inherit xfce-panel-plugin - -SRC_URI[md5sum] = "6f242fe584ee2fdd2b1d3d69ef3d5914" -SRC_URI[sha256sum] = "139539c58d54d878de86ef8a882c793cd909981e6b888f7f9d5e230a8fe310a4" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-panel-plugins/smartbookmark/xfce4-smartbookmark-plugin_0.5.1.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-panel-plugins/smartbookmark/xfce4-smartbookmark-plugin_0.5.1.bb new file mode 100644 index 00000000..fa2c474d --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-panel-plugins/smartbookmark/xfce4-smartbookmark-plugin_0.5.1.bb @@ -0,0 +1,9 @@ +SUMMARY = "Panel plugin allowing to send requests directly to browser" +HOMEPAGE = "https://goodies.xfce.org/projects/panel-plugins/xfce4-smartbookmark-plugin" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263" + +inherit xfce-panel-plugin + +SRC_URI[md5sum] = "f1c97ac62dd9054e8f2b01568fef3ba6" +SRC_URI[sha256sum] = "3e28fb7cd2e2251e89a8715684081b862406e3fb4e6d8c0caa1b798a97703600" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-panel-plugins/systemload/xfce4-systemload-plugin_1.2.2.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-panel-plugins/systemload/xfce4-systemload-plugin_1.2.2.bb deleted file mode 100644 index f9fb2cad..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-panel-plugins/systemload/xfce4-systemload-plugin_1.2.2.bb +++ /dev/null @@ -1,11 +0,0 @@ -DESCRIPTION = "Panel plugin displaying current CPU load, the memory in use, the swap space and the system uptime" -HOMEPAGE = "http://goodies.xfce.org/projects/panel-plugins/xfce4-systemload-plugin" -LICENSE = "BSD-2-Clause" -LIC_FILES_CHKSUM = "file://COPYING;md5=9acb172a93ff6c43cce2aff790a8aef8" - -inherit xfce-panel-plugin - -DEPENDS += "upower" - -SRC_URI[md5sum] = "c7b9237ec4a421de5dac76449b4b5a78" -SRC_URI[sha256sum] = "3c67dfeb042eaea5aca440de9c6b3ecf99be0fbaa1cf7fdf9e6528233b46c99e" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-panel-plugins/systemload/xfce4-systemload-plugin_1.2.3.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-panel-plugins/systemload/xfce4-systemload-plugin_1.2.3.bb new file mode 100644 index 00000000..88d40c49 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-panel-plugins/systemload/xfce4-systemload-plugin_1.2.3.bb @@ -0,0 +1,11 @@ +DESCRIPTION = "Panel plugin displaying current CPU load, the memory in use, the swap space and the system uptime" +HOMEPAGE = "https://goodies.xfce.org/projects/panel-plugins/xfce4-systemload-plugin" +LICENSE = "BSD-2-Clause" +LIC_FILES_CHKSUM = "file://COPYING;md5=9acb172a93ff6c43cce2aff790a8aef8" + +inherit xfce-panel-plugin + +DEPENDS += "upower" + +SRC_URI[md5sum] = "5d75865be699d0b3d36a5fc17ed02d44" +SRC_URI[sha256sum] = "052407c575203da4de2db6f4a5e997220d95ec655d393dc3875a0d5a20520775" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-panel-plugins/time-out/xfce4-time-out-plugin_1.0.2.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-panel-plugins/time-out/xfce4-time-out-plugin_1.0.2.bb deleted file mode 100644 index facbb0d8..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-panel-plugins/time-out/xfce4-time-out-plugin_1.0.2.bb +++ /dev/null @@ -1,10 +0,0 @@ -SUMMARY = "This plugin makes it possible to take periodical breaks" -HOMEPAGE = "http://goodies.xfce.org/projects/panel-plugins/xfce4-time-out-plugin" -SECTION = "x11/application" -LICENSE = "GPLv2" -LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552" - -inherit xfce-panel-plugin - -SRC_URI[md5sum] = "d7d743794a766ba1b00647828a099053" -SRC_URI[sha256sum] = "c69fb7218c685e516454810291c5245c49a80d774a6bded59c645a1af427c4e5" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-panel-plugins/time-out/xfce4-time-out-plugin_1.1.0.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-panel-plugins/time-out/xfce4-time-out-plugin_1.1.0.bb new file mode 100644 index 00000000..c3de5964 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-panel-plugins/time-out/xfce4-time-out-plugin_1.1.0.bb @@ -0,0 +1,10 @@ +SUMMARY = "This plugin makes it possible to take periodical breaks" +HOMEPAGE = "https://goodies.xfce.org/projects/panel-plugins/xfce4-time-out-plugin" +SECTION = "x11/application" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552" + +inherit xfce-panel-plugin + +SRC_URI[md5sum] = "afa0ef865a49f28165098d3fe625df44" +SRC_URI[sha256sum] = "ee4a51a35076d50cba3824079f8312585373ff2f0d9ebc740d8f3c0426430a19" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-panel-plugins/verve/xfce4-verve-plugin_1.1.0.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-panel-plugins/verve/xfce4-verve-plugin_1.1.0.bb deleted file mode 100644 index 57951608..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-panel-plugins/verve/xfce4-verve-plugin_1.1.0.bb +++ /dev/null @@ -1,11 +0,0 @@ -SUMMARY = "Verve panel plugin is a comfortable command line plugin for the Xfce panel" -HOMEPAGE = "http://goodies.xfce.org/projects/panel-plugins/xfce4-verve-plugin" -LICENSE = "GPLv2" -LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f" - -inherit xfce-panel-plugin - -DEPENDS += "dbus-glib-native" - -SRC_URI[md5sum] = "ddd0190ae56f6117dbcf9ff2bf5a8cbf" -SRC_URI[sha256sum] = "a3196f818c7ad57d19cd6581e168fd2b9f96de070246aea70c35ce2e5f9d9c84" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-panel-plugins/verve/xfce4-verve-plugin_2.0.0.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-panel-plugins/verve/xfce4-verve-plugin_2.0.0.bb new file mode 100644 index 00000000..36e04a43 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-panel-plugins/verve/xfce4-verve-plugin_2.0.0.bb @@ -0,0 +1,9 @@ +SUMMARY = "Verve panel plugin is a comfortable command line plugin for the Xfce panel" +HOMEPAGE = "http://goodies.xfce.org/projects/panel-plugins/xfce4-verve-plugin" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f" + +inherit xfce-panel-plugin + +SRC_URI[md5sum] = "94429b1be9d66ba9b31e4aafb726a8c7" +SRC_URI[sha256sum] = "9e6510ba6c48fcfc60d1c6ab14613dd7b6ff095cabbf4746f82bf788d8ab4cd2" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-panel-plugins/wavelan/xfce4-wavelan-plugin_0.6.0.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-panel-plugins/wavelan/xfce4-wavelan-plugin_0.6.0.bb deleted file mode 100644 index 0c94f3c4..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-panel-plugins/wavelan/xfce4-wavelan-plugin_0.6.0.bb +++ /dev/null @@ -1,9 +0,0 @@ -SUMMARY = "Panel plugin displaying stats from a wireless lan interface" -HOMEPAGE = "http://goodies.xfce.org/projects/panel-plugins/xfce4-wavelan-plugin" -LICENSE = "BSD" -LIC_FILES_CHKSUM = "file://COPYING;md5=e1e5872df9c5cf1a23f16493d9104920" - -inherit xfce-panel-plugin - -SRC_URI[md5sum] = "b163b22f8543e5e5767a68af35c9028e" -SRC_URI[sha256sum] = "4d5bd6654cfd077f3432b08d296f7bd052e765e51b77c629886a9542f4e5ecdc" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-panel-plugins/wavelan/xfce4-wavelan-plugin_0.6.1.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-panel-plugins/wavelan/xfce4-wavelan-plugin_0.6.1.bb new file mode 100644 index 00000000..95c1fe4d --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-panel-plugins/wavelan/xfce4-wavelan-plugin_0.6.1.bb @@ -0,0 +1,9 @@ +SUMMARY = "Panel plugin displaying stats from a wireless lan interface" +HOMEPAGE = "https://goodies.xfce.org/projects/panel-plugins/xfce4-wavelan-plugin" +LICENSE = "BSD-2-Clause" +LIC_FILES_CHKSUM = "file://COPYING;md5=e1e5872df9c5cf1a23f16493d9104920" + +inherit xfce-panel-plugin + +SRC_URI[md5sum] = "e4e3d5240297253d242464e77f6145df" +SRC_URI[sha256sum] = "f41f81ea063ae3c7d7904e1ee647a6b5efafc7436f47caed662ee417038eed17" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-panel-plugins/weather/xfce4-weather-plugin_0.10.0.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-panel-plugins/weather/xfce4-weather-plugin_0.10.0.bb new file mode 100644 index 00000000..96c2048b --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-panel-plugins/weather/xfce4-weather-plugin_0.10.0.bb @@ -0,0 +1,13 @@ +SUMMARY = "Panel plugin to display current temperature and weather condition" +HOMEPAGE = "http://goodies.xfce.org/projects/panel-plugins/xfce4-weather-plugin" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263" + +inherit xfce-panel-plugin + +DEPENDS += "libsoup-2.4 dbus-glib upower" + +SRC_URI[md5sum] = "7ff4ab636f93addba0817bf6436d2964" +SRC_URI[sha256sum] = "4423a0c27830fd1f08e063aaefbf70f31d89235d75549ca841d677ab2e409572" + +FILES_${PN} += "${datadir}/xfce4/weather" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-panel-plugins/weather/xfce4-weather-plugin_0.9.1.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-panel-plugins/weather/xfce4-weather-plugin_0.9.1.bb deleted file mode 100644 index c53ca13c..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-panel-plugins/weather/xfce4-weather-plugin_0.9.1.bb +++ /dev/null @@ -1,13 +0,0 @@ -SUMMARY = "Panel plugin to display current temperature and weather condition" -HOMEPAGE = "http://goodies.xfce.org/projects/panel-plugins/xfce4-weather-plugin" -LICENSE = "GPLv2" -LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263" - -inherit xfce-panel-plugin - -DEPENDS += "libsoup-2.4 dbus-glib upower" - -SRC_URI[md5sum] = "e0bde3ba6a7e863022a86a23c7871255" -SRC_URI[sha256sum] = "7cdc18b8df759dee4ceaaf6ce303eff7fda48e247dbc26b78142929213506cfd" - -FILES_${PN} += "${datadir}/xfce4/weather" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-panel-plugins/whiskermenu/xfce4-whiskermenu-plugin_2.3.2.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-panel-plugins/whiskermenu/xfce4-whiskermenu-plugin_2.3.2.bb deleted file mode 100644 index 230a24fa..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-panel-plugins/whiskermenu/xfce4-whiskermenu-plugin_2.3.2.bb +++ /dev/null @@ -1,11 +0,0 @@ -SUMMARY = "An alternate menu for the Xfce desktop environment" -HOMEPAGE = "http://gottcode.org/xfce4-whiskermenu-plugin/" -LICENSE = "GPLv2" -LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263" - -inherit xfce-panel-plugin cmake - -SRC_URI[md5sum] = "e9aa6c33463bd564c47e1943c0fc7ac3" -SRC_URI[sha256sum] = "f1bf6be37f7778a486b16ef115d4c05120cc12c87e4af3af9c5001276bdcb7cc" - -RRECOMMENDS_${PN} += "menulibre" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-panel-plugins/whiskermenu/xfce4-whiskermenu-plugin_2.3.4.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-panel-plugins/whiskermenu/xfce4-whiskermenu-plugin_2.3.4.bb new file mode 100644 index 00000000..595e3c81 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-panel-plugins/whiskermenu/xfce4-whiskermenu-plugin_2.3.4.bb @@ -0,0 +1,11 @@ +SUMMARY = "An alternate menu for the Xfce desktop environment" +HOMEPAGE = "http://gottcode.org/xfce4-whiskermenu-plugin/" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263" + +inherit xfce-panel-plugin cmake + +SRC_URI[md5sum] = "ee9e378fae78b230a23b241cf727c84b" +SRC_URI[sha256sum] = "84d3de35695a023aab181f7a9b75f59029eb3b07c3e47a5e11e8bd79db62570e" + +RRECOMMENDS_${PN} += "menulibre" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-thunar-plugins/shares/thunar-shares-plugin_0.3.0.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-thunar-plugins/shares/thunar-shares-plugin_0.3.0.bb index 994c6528..d8506367 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-thunar-plugins/shares/thunar-shares-plugin_0.3.0.bb +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-thunar-plugins/shares/thunar-shares-plugin_0.3.0.bb @@ -2,7 +2,7 @@ SUMMARY = "Quickly share a folder using Samba from Thunar" LICENSE = "GPLv2" LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552" -inherit thunar-plugin distro_features_check +inherit thunar-plugin features_check REQUIRED_DISTRO_FEATURES = "pam" SRC_URI[md5sum] = "a1773168c0b3c7c0f253a339f02e5ae2" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-xfce/exo/exo_0.12.11.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-xfce/exo/exo_0.12.11.bb new file mode 100644 index 00000000..4c16689d --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-xfce/exo/exo_0.12.11.bb @@ -0,0 +1,41 @@ +DESCRIPTION = "Application library for the Xfce desktop environment" +SECTION = "x11" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263" +DEPENDS = "gtk+3 libxfce4ui virtual/libx11 liburi-perl-native cairo" +DEPENDS_class-native = "glib-2.0-native xfce4-dev-tools-native intltool-native" + +inherit xfce perlnative gtk-doc features_check + +REQUIRED_DISTRO_FEATURES = "x11" +REQUIRED_DISTRO_FEATURES_class-native = "" + +# SRC_URI must follow inherited one +SRC_URI += " \ + file://exo-no-tests-0.8.patch \ + file://configure.patch \ +" + +SRC_URI_append_class-native = " \ + file://reduce-build-to-exo-csource-only.patch \ +" + +SRC_URI[md5sum] = "efeb039d64b3257e39a1a38e75eb19b1" +SRC_URI[sha256sum] = "ec892519c08a67f3e0a1f0f8d43446e26871183e5aa6be7f82e214f388d1e5b6" + +PACKAGECONFIG ??= "" +PACKAGECONFIG_class-target ??= "gtk" +PACKAGECONFIG[gtk] = "--enable-gtk2,--disable-gtk2,gtk+" + +PACKAGES =+ "exo-csource" + +# Note: python bindings did not work in oe-dev and are about to be moved to +# pyxfce see http://comments.gmane.org/gmane.comp.desktop.xfce.devel.version4/19560 +FILES_${PN} += " \ + ${datadir}/xfce4/ \ + ${libdir}/xfce4/exo* \ +" + +FILES_exo-csource += "${bindir}/exo-csource" + +BBCLASSEXTEND = "native" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-xfce/exo/exo_0.12.5.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-xfce/exo/exo_0.12.5.bb deleted file mode 100644 index 7d61e8f8..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-xfce/exo/exo_0.12.5.bb +++ /dev/null @@ -1,37 +0,0 @@ -DESCRIPTION="Application library for the Xfce desktop environment" -SECTION = "x11" -LICENSE = "GPLv2" -LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263" -DEPENDS = "gtk+ libxfce4util libxfce4ui virtual/libx11 liburi-perl-native cairo" -DEPENDS_class-native = "glib-2.0-native xfce4-dev-tools-native intltool-native" - -inherit xfce pythonnative perlnative gtk-doc distro_features_check - -REQUIRED_DISTRO_FEATURES = "x11" -REQUIRED_DISTRO_FEATURES_class-native = "" - -# SRC_URI must follow inherited one -SRC_URI += " \ - file://exo-no-tests-0.8.patch \ - file://configure.patch \ -" - -SRC_URI_append_class-native = " \ - file://reduce-build-to-exo-csource-only.patch \ -" - -SRC_URI[md5sum] = "1de1d539262847d49474d20cbebc78ea" -SRC_URI[sha256sum] = "e8f434d6436ae647dd1614e8a24aba23c83f70cb14037b5bc98652f558be43e8" - -PACKAGES =+ "exo-csource" - -# Note: python bindings did not work in oe-dev and are about to be moved to -# pyxfce see http://comments.gmane.org/gmane.comp.desktop.xfce.devel.version4/19560 -FILES_${PN} += " \ - ${datadir}/xfce4/ \ - ${libdir}/xfce4/exo* \ -" - -FILES_exo-csource += "${bindir}/exo-csource" - -BBCLASSEXTEND = "native" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-xfce/garcon/garcon_0.6.2.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-xfce/garcon/garcon_0.6.2.bb deleted file mode 100644 index 27096da6..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-xfce/garcon/garcon_0.6.2.bb +++ /dev/null @@ -1,17 +0,0 @@ -DESCRIPTION="Xfce Menu Library" -SECTION = "x11/libs" -LICENSE = "LGPLv2" -LIC_FILES_CHKSUM = "file://COPYING;md5=04a01abcbdabffae1ca26335a293276b" -DEPENDS = "xfce4-dev-tools-native libxfce4util libxfce4ui intltool-native" - -inherit xfce gtk-doc distro_features_check - -REQUIRED_DISTRO_FEATURES = "x11" - -SRC_URI += "file://0001-xfce-applications.menu-don-t-bloat-settings-menu-by-.patch" -SRC_URI[md5sum] = "a4b6332ff6f090575d534d6a9d2761d8" -SRC_URI[sha256sum] = "a87f09648ff10d45c524b3bfe618f18622bdd8b205589d35fed2f12d9c79c47c" - -EXTRA_OECONF = "--disable-gtk-doc" - -FILES_${PN} += "${datadir}/desktop-directories" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-xfce/garcon/garcon_0.6.4.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-xfce/garcon/garcon_0.6.4.bb new file mode 100644 index 00000000..75997de7 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-xfce/garcon/garcon_0.6.4.bb @@ -0,0 +1,17 @@ +DESCRIPTION = "Xfce Menu Library" +SECTION = "x11/libs" +LICENSE = "LGPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=04a01abcbdabffae1ca26335a293276b" +DEPENDS = "xfce4-dev-tools-native libxfce4ui intltool-native" + +inherit xfce gtk-doc features_check + +REQUIRED_DISTRO_FEATURES = "x11" + +SRC_URI += "file://0001-xfce-applications.menu-don-t-bloat-settings-menu-by-.patch" +SRC_URI[md5sum] = "9715aa8214be9c553d9b8c44fde90b9f" +SRC_URI[sha256sum] = "d75e4753037a74733c07b71b8db7a656d869869f0f107f6411a306bbc87a762d" + +EXTRA_OECONF = "--disable-gtk-doc" + +FILES_${PN} += "${datadir}/desktop-directories" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-xfce/gtk-xfce-engine/gtk-xfce-engine/glib-2.54-ftbfs.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-xfce/gtk-xfce-engine/gtk-xfce-engine/glib-2.54-ftbfs.patch deleted file mode 100644 index fb891020..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-xfce/gtk-xfce-engine/gtk-xfce-engine/glib-2.54-ftbfs.patch +++ /dev/null @@ -1,23 +0,0 @@ -Description: Fix FTBFS with glib 2.54 - glib-mkenums now expects input files to be UTF-8, - fix the encoding of libgnomeui/gnome-scores.h -Author: Adrian Bunk - -ported from: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=870738 - -Upstream-Status: Pending -Signed-off-by: Khem Raj - -Index: gtk-xfce-engine-3.2.0/gtk-3.0/xfce_style_types.h -=================================================================== ---- gtk-xfce-engine-3.2.0.orig/gtk-3.0/xfce_style_types.h -+++ gtk-xfce-engine-3.2.0/gtk-3.0/xfce_style_types.h -@@ -19,7 +19,7 @@ - * - * Portions based Thinice port by - * Tim Gerla , -- * Tomas gren , - * Richard Hult - * Portions based on Smooth theme by - * Andrew Johnson diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-xfce/gtk-xfce-engine/gtk-xfce-engine_3.2.0.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-xfce/gtk-xfce-engine/gtk-xfce-engine_3.2.0.bb deleted file mode 100644 index 805e893f..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-xfce/gtk-xfce-engine/gtk-xfce-engine_3.2.0.bb +++ /dev/null @@ -1,30 +0,0 @@ -SUMMARY = "XFCE theme for GTK" -SECTION = "x11/libs" -LICENSE = "GPLv2" -LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263" -DEPENDS = "gtk+ xfce4-dev-tools-native" - -inherit xfce distro_features_check - -REQUIRED_DISTRO_FEATURES = "x11" - -SRC_URI += "file://glib-2.54-ftbfs.patch" - -SRC_URI[md5sum] = "363d6c16a48a00e26d45c45c2e1fd739" -SRC_URI[sha256sum] = "875c9c3bda96faf050a2224649cc42129ffb662c4de33add8c0fd1fb860b47ed" - -PACKAGECONFIG ??= "gtk3" -PACKAGECONFIG[gtk3] = "--enable-gtk3,--disable-gtk3, gtk+3, gtk3-xfce-engine" - -PACKAGES += "${PN}-themes gtk3-xfce-engine" -FILES_${PN} += "${libdir}/gtk-2.0/*/engines/*.so" -FILES_gtk3-xfce-engine += "${libdir}/gtk-3.0/*/theming-engines/*.so" -FILES_${PN}-themes += "${datadir}/themes" - -FILES_${PN}-dev += " \ - ${libdir}/gtk-2.0/*/engines/*.la \ - ${libdir}/gtk-3.0/*/theming-engines/*.la \ -" - -RDEPENDS_${PN} += "${PN}-themes" -RDEPENDS_gtk3-xfce-engine += "${PN}-themes" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-xfce/libxfce4ui/libxfce4ui_4.13.5.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-xfce/libxfce4ui/libxfce4ui_4.13.5.bb deleted file mode 100644 index 2bea5f0f..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-xfce/libxfce4ui/libxfce4ui_4.13.5.bb +++ /dev/null @@ -1,37 +0,0 @@ -SUMMARY = "Xfce4 Widget library and X Window System interaction" -SECTION = "x11/libs" -LICENSE = "GPLv2" -LIC_FILES_CHKSUM = "file://COPYING;md5=252890d9eee26aab7b432e8b8a616475" -DEPENDS = "perl-native glib-2.0 gtk+ gtk+3 intltool-native libxfce4util xfconf xfce4-dev-tools virtual/libx11 libsm libice" - -inherit xfce autotools gettext gtk-doc gobject-introspection distro_features_check - -REQUIRED_DISTRO_FEATURES = "x11" - -SRC_URI += " \ - file://0001-libxfce4kbd-private-xfce4-keyboard-shortcuts.xml-fix.patch \ -" -SRC_URI[md5sum] = "692520f2a2cccaaafb0357c3dcbb015b" -SRC_URI[sha256sum] = "3c38b065796a1cb2c2f2e9a28edaa6b37a3728c1c0b7a4297af9ecd82a8ab66d" - -EXTRA_OECONF += "--with-vendor-info=${DISTRO}" - -PACKAGECONFIG ??= "" -PACKAGECONFIG[gladeui] = "--enable-gladeui,--disable-gladeui,glade3" -PACKAGECONFIG[gladeui2] = "--enable-gladeui2,--disable-gladeui2,glade" -PACKAGECONFIG[startup-notification] = "--enable-startup-notification,--disable-startup-notification,startup-notification" - -PACKAGES =+ "${PN}-gtk2 ${PN}-gtk3" -FILES_${PN}-gtk2 += "${libdir}/libxfce4ui-1.so.* ${libdir}/libxfce4kbd-private-2.so.*" -FILES_${PN}-gtk3 += "${libdir}/libxfce4ui-2.so.* ${libdir}/libxfce4kbd-private-3.so.*" - -PACKAGES += "${PN}-glade" -FILES_${PN}-glade = " \ - ${libdir}/glade \ - ${libdir}/glade3 \ - ${datadir}/glade \ - ${datadir}/glade3 \ -" - -RDEPENDS_${PN}-gtk2 = "${PN}" -RDEPENDS_${PN}-gtk3 = "${PN}" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-xfce/libxfce4ui/libxfce4ui_4.14.1.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-xfce/libxfce4ui/libxfce4ui_4.14.1.bb new file mode 100644 index 00000000..348b685b --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-xfce/libxfce4ui/libxfce4ui_4.14.1.bb @@ -0,0 +1,34 @@ +SUMMARY = "Xfce4 Widget library and X Window System interaction" +SECTION = "x11/libs" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=252890d9eee26aab7b432e8b8a616475" +DEPENDS = "intltool-native perl-native gtk+ gtk+3 libice libsm libxfce4util xfce4-dev-tools xfconf virtual/libx11" + +inherit xfce gtk-doc gobject-introspection features_check + +REQUIRED_DISTRO_FEATURES = "x11" + +SRC_URI += " \ + file://0001-libxfce4kbd-private-xfce4-keyboard-shortcuts.xml-fix.patch \ +" +SRC_URI[md5sum] = "50eae4bab5eeced186bce16fb5f802ac" +SRC_URI[sha256sum] = "c449075eaeae4d1138d22eeed3d2ad7032b87fb8878eada9b770325bed87f2da" + +EXTRA_OECONF += "--with-vendor-info=${DISTRO}" + +PACKAGECONFIG ??= "" +PACKAGECONFIG[gladeui2] = "--enable-gladeui2,--disable-gladeui2,glade" +PACKAGECONFIG[startup-notification] = "--enable-startup-notification,--disable-startup-notification,startup-notification" + +PACKAGES =+ "${PN}-gtk2 ${PN}-gtk3" +FILES_${PN}-gtk2 += "${libdir}/libxfce4ui-1.so.* ${libdir}/libxfce4kbd-private-2.so.*" +FILES_${PN}-gtk3 += "${libdir}/libxfce4ui-2.so.* ${libdir}/libxfce4kbd-private-3.so.*" + +PACKAGES += "${PN}-glade" +FILES_${PN}-glade = " \ + ${libdir}/glade \ + ${datadir}/glade \ +" + +RDEPENDS_${PN}-gtk2 = "${PN}" +RDEPENDS_${PN}-gtk3 = "${PN}" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-xfce/libxfce4util/libxfce4util_4.13.3.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-xfce/libxfce4util/libxfce4util_4.13.3.bb deleted file mode 100644 index 89a38598..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-xfce/libxfce4util/libxfce4util_4.13.3.bb +++ /dev/null @@ -1,10 +0,0 @@ -SUMMARY = "Basic utility library for Xfce4" -SECTION = "x11/libs" -LICENSE = "GPLv2" -LIC_FILES_CHKSUM = "file://COPYING;md5=252890d9eee26aab7b432e8b8a616475" -DEPENDS = "intltool-native xfce4-dev-tools-native glib-2.0" - -inherit xfce gtk-doc gobject-introspection - -SRC_URI[md5sum] = "f39185afe5f612bd2c9b3dfbaf50b4d2" -SRC_URI[sha256sum] = "724b523a4a9ec8cada727950ab2173be30f256fa332a891ccd28b46f4b91b67e" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-xfce/libxfce4util/libxfce4util_4.14.0.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-xfce/libxfce4util/libxfce4util_4.14.0.bb new file mode 100644 index 00000000..1bb5007f --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-xfce/libxfce4util/libxfce4util_4.14.0.bb @@ -0,0 +1,10 @@ +SUMMARY = "Basic utility library for Xfce4" +SECTION = "x11/libs" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=252890d9eee26aab7b432e8b8a616475" +DEPENDS = "intltool-native xfce4-dev-tools-native glib-2.0" + +inherit xfce gtk-doc gobject-introspection + +SRC_URI[md5sum] = "46f44e36acc3abf1a5ba814c22a773cb" +SRC_URI[sha256sum] = "32ad79b7992ec3fd863e8ff2f03eebda8740363ef9d7d910a35963ac1c1a6324" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-xfce/packagegroups/packagegroup-xfce-base.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-xfce/packagegroups/packagegroup-xfce-base.bb index 140de416..70ef909e 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-xfce/packagegroups/packagegroup-xfce-base.bb +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-xfce/packagegroups/packagegroup-xfce-base.bb @@ -1,10 +1,8 @@ SUMMARY = "All packages required for a base installation of XFCE" SECTION = "x11/wm" -LICENSE = "MIT" -LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302" PR = "r5" -inherit packagegroup distro_features_check +inherit packagegroup features_check REQUIRED_DISTRO_FEATURES = "x11" @@ -15,7 +13,6 @@ RDEPENDS_${PN} = " \ xfdesktop \ xfce4-panel \ \ - gtk-xfce-engine \ librsvg-gtk \ \ xfce4-panel-plugin-actions \ diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-xfce/packagegroups/packagegroup-xfce-extended.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-xfce/packagegroups/packagegroup-xfce-extended.bb index 62b89fd4..255d2b5e 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-xfce/packagegroups/packagegroup-xfce-extended.bb +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-xfce/packagegroups/packagegroup-xfce-extended.bb @@ -1,11 +1,9 @@ SUMMARY = "All packages for full XFCE installation" SECTION = "x11/wm" -LICENSE = "MIT" -LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302" PR = "r10" -inherit packagegroup distro_features_check +inherit packagegroup features_check REQUIRED_DISTRO_FEATURES = "x11" @@ -47,7 +45,6 @@ RRECOMMENDS_${PN} = " \ xfce4-notes-plugin \ xfce4-whiskermenu-plugin \ xfce4-mailwatch-plugin \ - xfce4-kbdleds-plugin \ xfce4-smartbookmark-plugin \ xfce4-hotcorner-plugin \ ${@bb.utils.contains('DISTRO_FEATURES', 'pulseaudio', 'xfce4-pulseaudio-plugin', '', d)} \ @@ -55,7 +52,7 @@ RRECOMMENDS_${PN} = " \ xfce4-calculator-plugin \ xfce4-verve-plugin \ \ - xfce-polkit \ + ${@bb.utils.contains('DISTRO_FEATURES','polkit','xfce-polkit','',d)} \ ${@bb.utils.contains("DISTRO_FEATURES", "bluetooth", "blueman", "", d)} \ \ thunar-media-tags-plugin \ diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-xfce/thunar-volman/thunar-volman_0.9.2.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-xfce/thunar-volman/thunar-volman_0.9.2.bb deleted file mode 100644 index 3139625a..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-xfce/thunar-volman/thunar-volman_0.9.2.bb +++ /dev/null @@ -1,17 +0,0 @@ -SUMMARY = "Automatic management of removable drives and media for thunar" -SECTION = "x11" -LICENSE = "GPLv2" -LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f" -DEPENDS = "exo glib-2.0 libxfce4ui libxfce4util xfconf libnotify libgudev" - -inherit xfce distro_features_check - -REQUIRED_DISTRO_FEATURES = "x11" - -SRC_URI[md5sum] = "af216d5b60820e7cd39aae1b5ad869a3" -SRC_URI[sha256sum] = "b944b4299b73d2ca79184922dfea49782e4849f5960e209def71ac700a92ff27" - -PACKAGECONFIG ??= "" -PACKAGECONFIG[notify] = "--enable-notifications,--disable-notifications,libnotify" - -RDEPENDS_${PN} = "eject" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-xfce/thunar-volman/thunar-volman_0.9.5.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-xfce/thunar-volman/thunar-volman_0.9.5.bb new file mode 100644 index 00000000..d499e22e --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-xfce/thunar-volman/thunar-volman_0.9.5.bb @@ -0,0 +1,17 @@ +SUMMARY = "Automatic management of removable drives and media for thunar" +SECTION = "x11" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f" +DEPENDS = "exo libnotify libgudev" + +inherit xfce features_check + +REQUIRED_DISTRO_FEATURES = "x11" + +SRC_URI[md5sum] = "f9ef39ed4bbff05eb74058dfff24dd84" +SRC_URI[sha256sum] = "7ea7c6693334f2248cf399586af8974dfb7db9aad685ee31ac100e62e19a1837" + +PACKAGECONFIG ??= "" +PACKAGECONFIG[notify] = "--enable-notifications,--disable-notifications,libnotify" + +RDEPENDS_${PN} = "eject" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-xfce/thunar/thunar_1.8.10.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-xfce/thunar/thunar_1.8.10.bb new file mode 100644 index 00000000..f2376aa5 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-xfce/thunar/thunar_1.8.10.bb @@ -0,0 +1,29 @@ +SUMMARY = "File manager for the Xfce Desktop Environment" +SECTION = "x11" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f" +DEPENDS = "exo gdk-pixbuf libxfce4ui libsm startup-notification libnotify xfce4-panel udev" + +inherit xfce gobject-introspection features_check + +REQUIRED_DISTRO_FEATURES = "x11" + +SRC_URI[md5sum] = "85c7394d82542d5a023f1f5baef109d8" +SRC_URI[sha256sum] = "3d448d81c0e49efbaa5ae6bf34ac3c88a614178a1127afaee6b3a1b5ee12e709" + +PACKAGECONFIG ??= "" +PACKAGECONFIG[pcre] = "--enable-pcre,--disable-pcre,libpcre" + +FILES_${PN} += " \ + ${libdir}/thunarx-3/* \ + ${libdir}/xfce4/panel/plugins/* \ + ${libdir}/Thunar/[Tt]hunar* \ + ${systemd_user_unitdir} \ + ${datadir}/dbus-1 \ + ${datadir}/metainfo \ + ${datadir}/polkit-1 \ + ${datadir}/Thunar \ + ${datadir}/xfce4/panel/plugins/* \ +" + +RRECOMMENDS_${PN} = "gvfs gvfsd-trash" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-xfce/thunar/thunar_1.8.6.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-xfce/thunar/thunar_1.8.6.bb deleted file mode 100644 index 4375ce06..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-xfce/thunar/thunar_1.8.6.bb +++ /dev/null @@ -1,32 +0,0 @@ -SUMMARY = "File manager for the Xfce Desktop Environment" -SECTION = "x11" -LICENSE = "GPLv2" -LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f" -DEPENDS = "exo glib-2.0 gtk+3 gdk-pixbuf libxfce4util libxfce4ui xfconf libsm dbus-glib startup-notification libnotify xfce4-panel udev" - -inherit xfce gobject-introspection distro_features_check - -REQUIRED_DISTRO_FEATURES = "x11" - -SRC_URI = "http://archive.xfce.org/src/xfce/${BPN}/${@'${PV}'[0:3]}/Thunar-${PV}.tar.bz2" -SRC_URI[md5sum] = "3cb40548d7c642176eab8b97a5ba6d29" -SRC_URI[sha256sum] = "c0e5fb828e3d036941dfeb7ed7f9f2b17b729fc044c2bf7c4218c1c91b38ef2a" - -S = "${WORKDIR}/Thunar-${PV}/" - -PACKAGECONFIG ??= "" -PACKAGECONFIG[pcre] = "--enable-pcre,--disable-pcre,libpcre" - -FILES_${PN} += " \ - ${libdir}/thunarx-3/* \ - ${libdir}/xfce4/panel/plugins/* \ - ${libdir}/Thunar/[Tt]hunar* \ - ${systemd_user_unitdir} \ - ${datadir}/dbus-1 \ - ${datadir}/metainfo \ - ${datadir}/polkit-1 \ - ${datadir}/Thunar \ - ${datadir}/xfce4/panel/plugins/* \ -" - -RRECOMMENDS_${PN} = "gvfs gvfsd-trash" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-xfce/tumbler/tumbler/0001-configure-use-pkg-config-for-freetype2.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-xfce/tumbler/tumbler/0001-configure-use-pkg-config-for-freetype2.patch deleted file mode 100644 index 5ecc35e3..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-xfce/tumbler/tumbler/0001-configure-use-pkg-config-for-freetype2.patch +++ /dev/null @@ -1,45 +0,0 @@ -From f5c283b1251ad005da7342e654cd2ec5ae9e5fb2 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Andreas=20M=C3=BCller?= -Date: Fri, 26 Sep 2014 13:44:36 +0200 -Subject: [PATCH] configure: use pkg-config for freetype2 -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Upstream-status: Pending - -Signed-off-by: Andreas Müller ---- - acinclude.m4 | 16 +--------------- - 1 file changed, 1 insertion(+), 15 deletions(-) - -diff --git a/acinclude.m4 b/acinclude.m4 -index 66e79d1..4c70b00 100644 ---- a/acinclude.m4 -+++ b/acinclude.m4 -@@ -52,21 +52,7 @@ if test x"$ac_tumbler_font_thumbnailer" = x"yes"; then - PKG_CHECK_MODULES([GDK_PIXBUF], [gdk-pixbuf-2.0 >= 2.14], - [ - dnl Check for FreeType 2.x -- FREETYPE_LIBS="" -- FREETYPE_CFLAGS="" -- AC_PATH_PROG([FREETYPE_CONFIG], [freetype-config], [no]) -- if test x"$FREETYPE_CONFIG" != x"no"; then -- AC_MSG_CHECKING([FREETYPE_CFLAGS]) -- FREETYPE_CFLAGS="`$FREETYPE_CONFIG --cflags`" -- AC_MSG_RESULT([$FREETYPE_CFLAGS]) -- -- AC_MSG_CHECKING([FREETYPE_LIBS]) -- FREETYPE_LIBS="`$FREETYPE_CONFIG --libs`" -- AC_MSG_RESULT([$FREETYPE_LIBS]) -- else -- dnl We can only build the font thumbnailer if FreeType 2.x is available -- ac_tumbler_font_thumbnailer=no -- fi -+ PKG_CHECK_MODULES(FREETYPE, freetype2, , [ac_tumbler_font_thumbnailer=no]) - AC_SUBST([FREETYPE_CFLAGS]) - AC_SUBST([FREETYPE_LIBS]) - ], [ac_tumbler_font_thumbnailer=no]) --- -1.8.3.1 - diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-xfce/tumbler/tumbler_0.2.0.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-xfce/tumbler/tumbler_0.2.0.bb deleted file mode 100644 index 9d266947..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-xfce/tumbler/tumbler_0.2.0.bb +++ /dev/null @@ -1,32 +0,0 @@ -DESCRIPTION="Thumbnail service implementing the thumbnail management D-Bus specification" -SECTION = "x11/libs" -LICENSE = "GPLv2" -LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263" -DEPENDS = "dbus-glib dbus-glib-native freetype gdk-pixbuf poppler curl xfce4-dev-tools-native libxml2 libgsf" - -inherit xfce gtk-doc - -SRC_URI[md5sum] = "dd5f9bae6a2470eb5fff0dc9edd3ea09" -SRC_URI[sha256sum] = "4e27a59694b0a5cc69ebccbdb00c724e670b5b7c30bc4dc0b461aac93f234fac" -SRC_URI += "file://0001-configure-use-pkg-config-for-freetype2.patch" - -INSANE_SKIP_${PN} = "dev-so" - -PACKAGECONFIG ??= "" -PACKAGECONFIG[gstreamer-thumbnailer] = "--enable-gstreamer-thumbnailer,--disable-gstreamer-thumbnailer,gstreamer1.0 gstreamer1.0-plugins-base" - -do_install_append() { - # Makefile seems to race on creation of symlink. So ensure creation here - # until fixed properly - ln -sf tumbler-xdg-cache.so ${D}${libdir}/tumbler-1/plugins/cache/tumbler-cache-plugin.so -} - -FILES_${PN} += "${datadir}/dbus-1/services \ - ${libdir}/tumbler-1/tumblerd \ - ${libdir}/tumbler-1/plugins/*.so \ - ${libdir}/tumbler-1/plugins/cache/*.so \ -" - -FILES_${PN}-dev += "${libdir}/tumbler-1/plugins/*.la \ - ${libdir}/tumbler-1/plugins/cache/*.la \ -" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-xfce/tumbler/tumbler_0.2.8.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-xfce/tumbler/tumbler_0.2.8.bb new file mode 100644 index 00000000..e0d4845a --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-xfce/tumbler/tumbler_0.2.8.bb @@ -0,0 +1,31 @@ +DESCRIPTION = "Thumbnail service implementing the thumbnail management D-Bus specification" +SECTION = "x11/libs" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263" +DEPENDS = "freetype gdk-pixbuf poppler curl xfce4-dev-tools-native libxml2 libgsf" + +inherit xfce gtk-doc + +SRC_URI[md5sum] = "5d541608b3962fd2b16e23a266fd7a10" +SRC_URI[sha256sum] = "0999b9a3deb57010956db6630ae7205813999147043171049a7b6c333be93e96" + +INSANE_SKIP_${PN} = "dev-so" + +PACKAGECONFIG ??= "" +PACKAGECONFIG[gstreamer-thumbnailer] = "--enable-gstreamer-thumbnailer,--disable-gstreamer-thumbnailer,gstreamer1.0 gstreamer1.0-plugins-base" + +do_install_append() { + # Makefile seems to race on creation of symlink. So ensure creation here + # until fixed properly + ln -sf tumbler-xdg-cache.so ${D}${libdir}/tumbler-1/plugins/cache/tumbler-cache-plugin.so +} + +FILES_${PN} += "${datadir}/dbus-1/services \ + ${libdir}/tumbler-1/tumblerd \ + ${libdir}/tumbler-1/plugins/*.so \ + ${libdir}/tumbler-1/plugins/cache/*.so \ +" + +FILES_${PN}-dev += "${libdir}/tumbler-1/plugins/*.la \ + ${libdir}/tumbler-1/plugins/cache/*.la \ +" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-xfce/xfce4-appfinder/xfce4-appfinder_4.13.3.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-xfce/xfce4-appfinder/xfce4-appfinder_4.13.3.bb deleted file mode 100644 index 30955964..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-xfce/xfce4-appfinder/xfce4-appfinder_4.13.3.bb +++ /dev/null @@ -1,14 +0,0 @@ -DESCRIPTION="Xfce4 Application Finder" -SECTION = "x11" -LICENSE = "GPLv2" -LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f" -DEPENDS="glib-2.0 gtk+3 libxfce4util libxfce4ui garcon dbus-glib xfconf" - -inherit xfce distro_features_check - -REQUIRED_DISTRO_FEATURES = "x11" - -SRC_URI[md5sum] = "c2069a14c85c8a3e537b2d4c552d36d2" -SRC_URI[sha256sum] = "d738082a5fb01e42ea6333803012fd80258061f444afbbbd7b05a0f620a32ba6" - -FILES_${PN} += "${datadir}/metainfo" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-xfce/xfce4-appfinder/xfce4-appfinder_4.14.0.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-xfce/xfce4-appfinder/xfce4-appfinder_4.14.0.bb new file mode 100644 index 00000000..e4f35b0f --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-xfce/xfce4-appfinder/xfce4-appfinder_4.14.0.bb @@ -0,0 +1,14 @@ +DESCRIPTION = "Xfce4 Application Finder" +SECTION = "x11" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f" +DEPENDS = "glib-2.0 gtk+3 libxfce4util libxfce4ui garcon xfconf" + +inherit xfce features_check + +REQUIRED_DISTRO_FEATURES = "x11" + +SRC_URI[md5sum] = "03b226a2ee20f95243e74d1868e94e0e" +SRC_URI[sha256sum] = "7ec175d4954fceb2e76cbfbca76ac4a4f53fe799d097a14117e7de68e88a4d98" + +FILES_${PN} += "${datadir}/metainfo" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-xfce/xfce4-dev-tools/xfce4-dev-tools_4.12.0.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-xfce/xfce4-dev-tools/xfce4-dev-tools_4.12.0.bb deleted file mode 100644 index 5557f6df..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-xfce/xfce4-dev-tools/xfce4-dev-tools_4.12.0.bb +++ /dev/null @@ -1,23 +0,0 @@ -SUMMARY = "Xfce4 development tools" -HOMEPAGE = "http://www.xfce.org" -SECTION = "x11/libs" -LICENSE = "GPLv2" -LIC_FILES_CHKSUM = "file://COPYING;md5=9ac2e7cff1ddaf48b6eab6028f23ef88" -DEPENDS = "glib-2.0" - -inherit autotools pkgconfig - -BBCLASSEXTEND = "native" - -SRC_URI = "http://archive.xfce.org/src/xfce/${BPN}/${@'${PV}'[0:4]}/${BPN}-${PV}.tar.bz2" -SRC_URI[md5sum] = "559202c4d9650e23696c44aa94cfc5a9" -SRC_URI[sha256sum] = "e2e3a654fe9110df81f8c2483c9cbfa6d656fed15d5e5e717d6ef10bd0f5b5cb" - -do_install_append() { - install -d ${D}${datadir}/aclocal - install -m 644 ${S}/m4macros/*.m4 ${D}${datadir}/aclocal/ -} - -FILES_${PN} += "${datadir}/xfce4/dev-tools/m4macros/*.m4" - -RDEPENDS_${PN} = "bash" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-xfce/xfce4-dev-tools/xfce4-dev-tools_4.14.0.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-xfce/xfce4-dev-tools/xfce4-dev-tools_4.14.0.bb new file mode 100644 index 00000000..0b119661 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-xfce/xfce4-dev-tools/xfce4-dev-tools_4.14.0.bb @@ -0,0 +1,23 @@ +SUMMARY = "Xfce4 development tools" +HOMEPAGE = "http://www.xfce.org" +SECTION = "x11/libs" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=9ac2e7cff1ddaf48b6eab6028f23ef88" +DEPENDS = "glib-2.0" + +inherit autotools pkgconfig + +BBCLASSEXTEND = "native" + +SRC_URI = "http://archive.xfce.org/src/xfce/${BPN}/${@'${PV}'[0:4]}/${BPN}-${PV}.tar.bz2" +SRC_URI[md5sum] = "5f8fc8af73819c08d9e4c26a3ac457e7" +SRC_URI[sha256sum] = "2c9eb8e0fe23e47dc31411a93b683fd1b7a49140e9163f0aab9e94a3d8a0b5fd" + +do_install_append() { + install -d ${D}${datadir}/aclocal + install -m 644 ${S}/m4macros/*.m4 ${D}${datadir}/aclocal/ +} + +FILES_${PN} += "${datadir}/xfce4/dev-tools/m4macros/*.m4" + +RDEPENDS_${PN} = "bash" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-xfce/xfce4-panel/files/0002-use-lxdm-to-replace-dm-tool.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-xfce/xfce4-panel/files/0002-use-lxdm-to-replace-dm-tool.patch new file mode 100644 index 00000000..b06e26e9 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-xfce/xfce4-panel/files/0002-use-lxdm-to-replace-dm-tool.patch @@ -0,0 +1,49 @@ +From b80108f01b1425427f98341168ea44c4b1a5a2cf Mon Sep 17 00:00:00 2001 +From: Hongxu Jia +Date: Fri, 28 Jun 2019 16:02:13 +0800 +Subject: [PATCH] use lxdm to replace dm-tool + +OE does not support lightdm but lxdm, +so use lxdm to replace dm-tool + +Upstream-Status: Inappropriate [oe specific] + +Signed-off-by: Hongxu Jia +--- + plugins/actions/actions.c | 8 ++++---- + 1 file changed, 4 insertions(+), 4 deletions(-) + +diff --git a/plugins/actions/actions.c b/plugins/actions/actions.c +index 474798e..63eb41d 100644 +--- a/plugins/actions/actions.c ++++ b/plugins/actions/actions.c +@@ -905,12 +905,12 @@ actions_plugin_actions_allowed (void) + GError *error = NULL; + + /* check for commands we use */ +- path = g_find_program_in_path ("dm-tool"); ++ path = g_find_program_in_path ("lxdm"); + if (path != NULL) + PANEL_SET_FLAG (allow_mask, ACTION_TYPE_SWITCH_USER); + else + { +- /* check for gdmflexiserver if dm-tool is not present */ ++ /* check for gdmflexiserver if lxdm is not present */ + g_free (path); + path = g_find_program_in_path ("gdmflexiserver"); + if (path != NULL) +@@ -1027,9 +1027,9 @@ actions_plugin_action_activate (GtkWidget *widget, + break; + + case ACTION_TYPE_SWITCH_USER: +- path = g_find_program_in_path ("dm-tool"); ++ path = g_find_program_in_path ("lxdm"); + if (path != NULL) +- succeed = g_spawn_command_line_async ("dm-tool switch-to-greeter", &error); ++ succeed = g_spawn_command_line_async ("lxdm -c USER_SWITCH", &error); + else + succeed = g_spawn_command_line_async ("gdmflexiserver", &error); + g_free (path); +-- +2.8.1 + diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-xfce/xfce4-panel/xfce4-panel_4.13.5.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-xfce/xfce4-panel/xfce4-panel_4.13.5.bb deleted file mode 100644 index a4b200a7..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-xfce/xfce4-panel/xfce4-panel_4.13.5.bb +++ /dev/null @@ -1,40 +0,0 @@ -SUMMARY = "Xfce4 Panel" -SECTION = "x11" -LICENSE = "GPLv2" -LIC_FILES_CHKSUM = "file://COPYING;md5=26a8bd75d8f8498bdbbe64a27791d4ee" -DEPENDS = "libxfce4util garcon libxfce4ui xfconf exo gtk+ gtk+3 dbus cairo virtual/libx11 libxml2 libwnck3 vala-native" - -inherit xfce gtk-doc gobject-introspection distro_features_check gtk-icon-cache remove-libtool - -REQUIRED_DISTRO_FEATURES = "x11" - -SRC_URI[md5sum] = "376e360fb87095edaea7df8ca34fe6a7" -SRC_URI[sha256sum] = "0d05b6dd8c91c154a364a3e31583c5f423c33e26d44d43cc409165f7d578ca15" -SRC_URI += " \ - file://0001-windowmenu-do-not-display-desktop-icon-when-no-windo.patch \ -" - -python populate_packages_prepend() { - plugin_dir = d.expand('${libdir}/xfce4/panel/plugins/') - plugin_name = d.expand('${PN}-plugin-%s') - do_split_packages(d, plugin_dir, '^lib(.*).so$', plugin_name, - '${PN} plugin for %s', extra_depends='', prepend=True, - aux_files_pattern=['${datadir}/xfce4/panel/plugins/%s.desktop', - '${sysconfdir}/xdg/xfce/panel/%s-*', - '${datadir}/icons/hicolor/48x48/apps/*-%s.png', - '${bindir}/*%s*']) -} - -PACKAGES_DYNAMIC += "^${PN}-plugin-.*" - -PACKAGES =+ "${PN}-gtk3" - -FILES_${PN} += "${libdir}/xfce4/panel/migrate \ - ${libdir}/xfce4/panel/wrapper-1.0" - -FILES_${PN}-dev += "${libdir}/xfce4/panel/plugins/*.la" - -FILES_${PN}-gtk3 = " \ - ${libdir}/libxfce4panel-2.0${SOLIBS} \ - ${libdir}/xfce4/panel/wrapper-2.0 \ -" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-xfce/xfce4-panel/xfce4-panel_4.14.1.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-xfce/xfce4-panel/xfce4-panel_4.14.1.bb new file mode 100644 index 00000000..cc3f323b --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-xfce/xfce4-panel/xfce4-panel_4.14.1.bb @@ -0,0 +1,41 @@ +SUMMARY = "Xfce4 Panel" +SECTION = "x11" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=26a8bd75d8f8498bdbbe64a27791d4ee" +DEPENDS = "garcon exo gtk+3 cairo virtual/libx11 libxml2 libwnck3 vala-native" + +inherit xfce gtk-doc gobject-introspection features_check remove-libtool + +REQUIRED_DISTRO_FEATURES = "x11" + +SRC_URI[md5sum] = "3323588f1c18f04891e013243da1e355" +SRC_URI[sha256sum] = "9c3c78b49ddfac7d42a804e6a6ad9d22ad64ec60bbe17d8724bc52d3e3f6d114" +SRC_URI += " \ + file://0001-windowmenu-do-not-display-desktop-icon-when-no-windo.patch \ + file://0002-use-lxdm-to-replace-dm-tool.patch \ +" + +python populate_packages_prepend() { + plugin_dir = d.expand('${libdir}/xfce4/panel/plugins/') + plugin_name = d.expand('${PN}-plugin-%s') + do_split_packages(d, plugin_dir, '^lib(.*).so$', plugin_name, + '${PN} plugin for %s', extra_depends='', prepend=True, + aux_files_pattern=['${datadir}/xfce4/panel/plugins/%s.desktop', + '${sysconfdir}/xdg/xfce/panel/%s-*', + '${datadir}/icons/hicolor/48x48/apps/*-%s.png', + '${bindir}/*%s*']) +} + +PACKAGES_DYNAMIC += "^${PN}-plugin-.*" + +PACKAGES =+ "${PN}-gtk3" + +FILES_${PN} += "${libdir}/xfce4/panel/migrate \ + ${libdir}/xfce4/panel/wrapper-1.0" + +FILES_${PN}-dev += "${libdir}/xfce4/panel/plugins/*.la" + +FILES_${PN}-gtk3 = " \ + ${libdir}/libxfce4panel-2.0${SOLIBS} \ + ${libdir}/xfce4/panel/wrapper-2.0 \ +" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-xfce/xfce4-power-manager/xfce4-power-manager_1.6.2.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-xfce/xfce4-power-manager/xfce4-power-manager_1.6.2.bb deleted file mode 100644 index 0a44b1f5..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-xfce/xfce4-power-manager/xfce4-power-manager_1.6.2.bb +++ /dev/null @@ -1,44 +0,0 @@ -SUMMARY = "Power manager for the Xfce desktop environment" -HOMEPAGE = "http://goodies.xfce.org/projects/applications/xfce4-power-manager" -SECTION = "x11" - -LICENSE = "GPLv2+" -LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552" - -inherit xfce distro_features_check - -REQUIRED_DISTRO_FEATURES = "x11" - -DEPENDS += "gtk+3 glib-2.0 dbus-glib xfconf libxfce4ui libxfce4util libnotify \ - libxrandr virtual/libx11 libxext xfce4-panel upower libxscrnsaver" - -SRC_URI[md5sum] = "2a49be4eca78fb519984db5aae38e4ab" -SRC_URI[sha256sum] = "66ac34b33a2021b5af04c0181dfab6e6ee2bfab0ae07ed4527ca4552a66e1c01" - -EXTRA_OECONF = " \ - --enable-network-manager \ - --enable-panel-plugins \ -" - -PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'polkit', d)}" -PACKAGECONFIG[polkit] = "--enable-polkit, --disable-polkit, polkit" - -PACKAGES += "xfce4-powermanager-plugin" - -FILES_${PN} += " \ - ${datadir}/polkit-1 \ - ${datadir}/metainfo \ -" - -FILES_xfce4-powermanager-plugin = " \ - ${libdir}/xfce4 \ - ${datadir}/xfce4 \ -" - -RDEPENDS_xfce4-powermanager-plugin = "${PN}" -RDEPENDS_${PN} = "networkmanager ${@bb.utils.contains('DISTRO_FEATURES','systemd','','consolekit',d)}" - -# xfce4-brightness-plugin was replaced by xfce4-powermanager-plugin -RPROVIDES_xfce4-powermanager-plugin += "xfce4-brightness-plugin" -RREPLACES_xfce4-powermanager-plugin += "xfce4-brightness-plugin" -RCONFLICTS_xfce4-powermanager-plugin += "xfce4-brightness-plugin" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-xfce/xfce4-power-manager/xfce4-power-manager_1.6.5.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-xfce/xfce4-power-manager/xfce4-power-manager_1.6.5.bb new file mode 100644 index 00000000..295e2e4e --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-xfce/xfce4-power-manager/xfce4-power-manager_1.6.5.bb @@ -0,0 +1,43 @@ +SUMMARY = "Power manager for the Xfce desktop environment" +HOMEPAGE = "http://goodies.xfce.org/projects/applications/xfce4-power-manager" +SECTION = "x11" + +LICENSE = "GPLv2+" +LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552" + +inherit xfce features_check + +REQUIRED_DISTRO_FEATURES = "x11" + +DEPENDS += "libnotify libxrandr virtual/libx11 libxext xfce4-panel upower libxscrnsaver" + +SRC_URI[md5sum] = "709efbc2de9ed84b4831847ff70bcd7f" +SRC_URI[sha256sum] = "10adb67899b181ca5fc577fc9bb7a698fb94e42073585f7e2be642c7db127a74" + +EXTRA_OECONF = " \ + --enable-network-manager \ + --enable-panel-plugins \ +" + +PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'polkit', d)}" +PACKAGECONFIG[polkit] = "--enable-polkit, --disable-polkit, polkit" + +PACKAGES += "xfce4-powermanager-plugin" + +FILES_${PN} += " \ + ${datadir}/polkit-1 \ + ${datadir}/metainfo \ +" + +FILES_xfce4-powermanager-plugin = " \ + ${libdir}/xfce4 \ + ${datadir}/xfce4 \ +" + +RDEPENDS_xfce4-powermanager-plugin = "${PN}" +RDEPENDS_${PN} = "networkmanager ${@bb.utils.contains('DISTRO_FEATURES','systemd','','consolekit',d)}" + +# xfce4-brightness-plugin was replaced by xfce4-powermanager-plugin +RPROVIDES_xfce4-powermanager-plugin += "xfce4-brightness-plugin" +RREPLACES_xfce4-powermanager-plugin += "xfce4-brightness-plugin" +RCONFLICTS_xfce4-powermanager-plugin += "xfce4-brightness-plugin" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-xfce/xfce4-session/xfce4-session_4.13.2.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-xfce/xfce4-session/xfce4-session_4.13.2.bb deleted file mode 100644 index dc44c4b0..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-xfce/xfce4-session/xfce4-session_4.13.2.bb +++ /dev/null @@ -1,48 +0,0 @@ -SUMMARY = "xfce4-session is a session manager for Xfce 4 Desktop Environment" -SECTION = "x11" -LICENSE = "GPLv2" -LIC_FILES_CHKSUM = "file://COPYING;md5=9ac2e7cff1ddaf48b6eab6028f23ef88" - -DEPENDS = " \ - dbus \ - dbus-glib \ - gtk+ \ - libwnck3 \ - libsm \ - libxfce4ui \ - libxfce4util \ - polkit \ - virtual/libx11 \ - xfconf \ -" - -inherit xfce update-alternatives distro_features_check - -REQUIRED_DISTRO_FEATURES = "x11" - -SRC_URI += " \ - file://0001-configure.in-hard-code-path-to-iceauth.patch \ -" -SRC_URI[md5sum] = "1306b6166f47cdf6e0c61259abbb621f" -SRC_URI[sha256sum] = "c0be0c7e602c962d0e8fca63bd86165e60313d07bfb72cf2c3f99ab53e2a22a1" - -ALTERNATIVE_${PN} = "x-session-manager" -ALTERNATIVE_TARGET[x-session-manager] = "${bindir}/xfce4-session" -ALTERNATIVE_PRIORITY_${PN} = "100" - -FILES_${PN} += " \ - ${libdir}/xfce4/*/*/*.so \ - ${libdir}/xfce4/session/*-*-* \ - ${datadir}/xsessions \ - ${datadir}/themes/Default/balou/* \ - ${datadir}/polkit-1 \ -" - -RDEPENDS_${PN} = " \ - dbus-x11 \ - iceauth \ - netbase \ - upower \ - xinit \ - xrdb \ -" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-xfce/xfce4-session/xfce4-session_4.14.0.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-xfce/xfce4-session/xfce4-session_4.14.0.bb new file mode 100644 index 00000000..37560c2d --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-xfce/xfce4-session/xfce4-session_4.14.0.bb @@ -0,0 +1,40 @@ +SUMMARY = "xfce4-session is a session manager for Xfce 4 Desktop Environment" +SECTION = "x11" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=9ac2e7cff1ddaf48b6eab6028f23ef88" + +DEPENDS = "libwnck3 libsm libxfce4ui virtual/libx11" + +inherit xfce update-alternatives features_check + +REQUIRED_DISTRO_FEATURES = "x11" + +PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'polkit', d)}" +PACKAGECONFIG[polkit] = "--enable-polkit, --disable-polkit, polkit" + +SRC_URI += " \ + file://0001-configure.in-hard-code-path-to-iceauth.patch \ +" +SRC_URI[md5sum] = "635361f99a01b2d26c430a520b6d1314" +SRC_URI[sha256sum] = "14fb6db74eb69eb400673856ba307a0e57f577cf77c3561a5910151e3d52043f" + +ALTERNATIVE_${PN} = "x-session-manager" +ALTERNATIVE_TARGET[x-session-manager] = "${bindir}/xfce4-session" +ALTERNATIVE_PRIORITY_${PN} = "100" + +FILES_${PN} += " \ + ${libdir}/xfce4/*/*/*.so \ + ${libdir}/xfce4/session/*-*-* \ + ${datadir}/xsessions \ + ${datadir}/themes/Default/balou/* \ + ${datadir}/polkit-1 \ +" + +RDEPENDS_${PN} = " \ + dbus-x11 \ + iceauth \ + netbase \ + upower \ + xinit \ + xrdb \ +" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-xfce/xfce4-settings/files/0002-Fix-linking-to-dbus-glib-bug-13633.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-xfce/xfce4-settings/files/0002-Fix-linking-to-dbus-glib-bug-13633.patch deleted file mode 100644 index 109b7b14..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-xfce/xfce4-settings/files/0002-Fix-linking-to-dbus-glib-bug-13633.patch +++ /dev/null @@ -1,41 +0,0 @@ -From b6e46e6a84e45f7bd954687be703987825a54c1e Mon Sep 17 00:00:00 2001 -From: Eric Koegel -Date: Sun, 11 Jun 2017 11:38:26 +0300 -Subject: [PATCH] Fix linking to dbus-glib (bug #13633) - -With xfconf moving to GDBus nothing provides the libs for dbus-glib -that xfce4-settings requires. This patch adds the libs back in until -settings can be ported to GDBus. - -Signed-off-by: Sean Davis - -Upstream-Status: Backport ---- - xfce4-settings-editor/Makefile.am | 4 +++- - 1 file changed, 3 insertions(+), 1 deletion(-) - -diff --git a/xfce4-settings-editor/Makefile.am b/xfce4-settings-editor/Makefile.am -index 5964366..c2c7c4b 100644 ---- a/xfce4-settings-editor/Makefile.am -+++ b/xfce4-settings-editor/Makefile.am -@@ -28,6 +28,7 @@ xfce4_settings_editor_CFLAGS = \ - $(LIBXFCE4UTIL_CFLAGS) \ - $(LIBXFCE4UI_CFLAGS) \ - $(XFCONF_CFLAGS) \ -+ $(DBUS_GLIB_CFLAGS) \ - $(PLATFORM_CFLAGS) - - xfce4_settings_editor_LDFLAGS = \ -@@ -39,7 +40,8 @@ xfce4_settings_editor_LDADD = \ - $(DBUS_GLIB_LIBS) \ - $(LIBXFCE4UTIL_LIBS) \ - $(LIBXFCE4UI_LIBS) \ -- $(XFCONF_LIBS) -+ $(XFCONF_LIBS) \ -+ $(DBUS_GLIB_LIBS) - - desktopdir = $(datadir)/applications - desktop_in_files = xfce4-settings-editor.desktop.in --- -2.14.3 - diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-xfce/xfce4-settings/xfce4-settings_4.14.1.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-xfce/xfce4-settings/xfce4-settings_4.14.1.bb new file mode 100644 index 00000000..d326f920 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-xfce/xfce4-settings/xfce4-settings_4.14.1.bb @@ -0,0 +1,33 @@ +SUMMARY = "Xfce4 settings" +SECTION = "x11/wm" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f" +DEPENDS = "exo exo-native garcon libxi virtual/libx11 xrandr libxcursor libxklavier upower" + +inherit xfce features_check + +REQUIRED_DISTRO_FEATURES = "x11" + +SRC_URI += " \ + file://0001-xsettings.xml-Set-default-themes.patch \ +" +SRC_URI[md5sum] = "2f4171c21db905d9ba0ca9bee3fc7a5b" +SRC_URI[sha256sum] = "e873e9f6b8e801fd9304ee100c4c76ed9987446c38429d02477c086431c0bf7a" + +EXTRA_OECONF += "--enable-maintainer-mode --disable-debug" + +PACKAGECONFIG ??= " \ + ${@bb.utils.contains('DISTRO_FEATURES','alsa','sound-setter', bb.utils.contains('DISTRO_FEATURES','pulseaudio','sound-setter','',d),d)} \ +" +PACKAGECONFIG[notify] = "--enable-libnotify,--disable-libnotify,libnotify" +PACKAGECONFIG[sound-setter] = "--enable-sound-settings, --disable-sound-settings, libcanberra, libcanberra-gtk2 sound-theme-freedesktop" + +FILES_${PN} += " \ + ${libdir}/xfce4 \ + ${datadir}/xfce4 \ +" + +RRECOMMENDS_${PN} += "adwaita-icon-theme" +RRECOMMENDS_${PN} += "${@bb.utils.contains('DISTRO_FEATURES','alsa','libcanberra-alsa','',d)}" +RRECOMMENDS_${PN} += "${@bb.utils.contains('DISTRO_FEATURES','pulseaudio','libcanberra-pulse','',d)}" +RRECOMMENDS_${PN} += "${@bb.utils.contains('DISTRO_FEATURES','systemd','xfce4-datetime-setter','',d)}" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-xfce/xfce4-settings/xfce4-settings_git.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-xfce/xfce4-settings/xfce4-settings_git.bb deleted file mode 100644 index a4685aed..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-xfce/xfce4-settings/xfce4-settings_git.bb +++ /dev/null @@ -1,41 +0,0 @@ -SUMMARY = "Xfce4 settings" -SECTION = "x11/wm" -LICENSE = "GPLv2" -LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f" -DEPENDS = "exo exo-native garcon gtk+ libxfce4util libxfce4ui xfconf dbus-glib libxi virtual/libx11 xrandr libxcursor libxklavier upower" - -inherit xfce xfce-git distro_features_check - -REQUIRED_DISTRO_FEATURES = "x11" - -# schnitzeltony git repo is the mainline repo -# + datetime-setter - sent to mainline but strange response -# + minor bugfixes - sent mainline but no response -# + option to hide mousepointer for a specific (touch) input device - sent mainline but no response -SRC_URI = " \ - git://github.com/schnitzeltony/xfce4-settings.git;protocol=git;branch=for-oe-4.12.4 \ - file://0001-xsettings.xml-Set-default-themes.patch \ - file://0002-Fix-linking-to-dbus-glib-bug-13633.patch \ -" -SRCREV = "75d7c9b15e5ccce12b0864d3659ae9b6de96e245" -S = "${WORKDIR}/git" -PV = "4.12.4+git${SRCPV}" - -EXTRA_OECONF += "--enable-maintainer-mode --disable-debug" - -PACKAGECONFIG ??= " \ - ${@bb.utils.contains('DISTRO_FEATURES','systemd','datetime-setter','',d)} \ - ${@bb.utils.contains('DISTRO_FEATURES','alsa','sound-setter', bb.utils.contains('DISTRO_FEATURES','pulseaudio','sound-setter','',d),d)} \ -" -PACKAGECONFIG[datetime-setter] = "--enable-datetime-settings, --disable-datetime-settings,, tzdata" -PACKAGECONFIG[notify] = "--enable-libnotify,--disable-libnotify,libnotify" -PACKAGECONFIG[sound-setter] = "--enable-sound-settings, --disable-sound-settings, libcanberra, libcanberra-gtk2 sound-theme-freedesktop" - -FILES_${PN} += " \ - ${libdir}/xfce4 \ - ${datadir}/xfce4 \ -" - -RRECOMMENDS_${PN} += "adwaita-icon-theme" -RRECOMMENDS_${PN} += "${@bb.utils.contains('DISTRO_FEATURES','alsa','libcanberra-alsa','',d)}" -RRECOMMENDS_${PN} += "${@bb.utils.contains('DISTRO_FEATURES','pulseaudio','libcanberra-pulse','',d)}" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-xfce/xfconf/xfconf_4.13.7.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-xfce/xfconf/xfconf_4.13.7.bb deleted file mode 100644 index 9f08f74e..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-xfce/xfconf/xfconf_4.13.7.bb +++ /dev/null @@ -1,20 +0,0 @@ -SUMMARY = "Xfce configuration daemon and utilities" -SECTION = "x11/wm" -LICENSE = "GPLv2" -LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552" -DEPENDS = "dbus-glib libxfce4util perl intltool-native xfce4-dev-tools-native" - -inherit xfce gtk-doc - -EXTRA_OECONF += "PERL=${STAGING_DIR_TARGET}/usr/bin/perl" - -SRC_URI[md5sum] = "ea4c070c4ed8387e6435b56d0e871559" -SRC_URI[sha256sum] = "5deb13fc48a4116f5ebdee5c21d0fd3deb85bec2f69602beb3c3adb4f85e5bde" - -FILES_${PN} += "${libdir}/xfce4/xfconf/xfconfd \ - ${libdir}/gio/modules/libxfconfgsettingsbackend.so \ - ${datadir}/dbus-1/services/org.xfce.Xfconf.service" - -FILES_${PN}-dev += "${libdir}/gio/modules/libxfconfgsettingsbackend.la" - -PACKAGECONFIG[gsettings-backend] = "--enable-gsettings-backend,--disable-gsettings-backend," diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-xfce/xfconf/xfconf_4.14.1.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-xfce/xfconf/xfconf_4.14.1.bb new file mode 100644 index 00000000..8da96a42 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-xfce/xfconf/xfconf_4.14.1.bb @@ -0,0 +1,20 @@ +SUMMARY = "Xfce configuration daemon and utilities" +SECTION = "x11/wm" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552" +DEPENDS = "libxfce4util perl intltool-native xfce4-dev-tools-native" + +inherit xfce gtk-doc gobject-introspection + +EXTRA_OECONF += "PERL=${STAGING_DIR_TARGET}/usr/bin/perl" + +SRC_URI[md5sum] = "cb51a59e2a89d05232f825ad8c74a7c0" +SRC_URI[sha256sum] = "b893e0a329aee00902fec2f0509f56916c9dcc7844e1b1f9e3c7399458290d59" + +FILES_${PN} += "${libdir}/xfce4/xfconf/xfconfd \ + ${libdir}/gio/modules/libxfconfgsettingsbackend.so \ + ${datadir}/dbus-1/services/org.xfce.Xfconf.service" + +FILES_${PN}-dev += "${libdir}/gio/modules/libxfconfgsettingsbackend.la" + +PACKAGECONFIG[gsettings-backend] = "--enable-gsettings-backend,--disable-gsettings-backend," diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-xfce/xfdesktop/xfdesktop_4.13.4.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-xfce/xfdesktop/xfdesktop_4.13.4.bb deleted file mode 100644 index f02a6bff..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-xfce/xfdesktop/xfdesktop_4.13.4.bb +++ /dev/null @@ -1,17 +0,0 @@ -SUMMARY = "Xfce4 Desktop Manager" -SECTION = "x11/base" -LICENSE = "GPLv2" -LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f" -DEPENDS = "libxfce4util libxfce4ui libwnck xfconf dbus-glib dbus-glib-native thunar garcon exo" - -inherit xfce distro_features_check - -REQUIRED_DISTRO_FEATURES = "x11" - -SRC_URI[md5sum] = "d1174af12148141a07b62cc051c43c84" -SRC_URI[sha256sum] = "f4f7fa5162512971c25066eb04ef78f0d075656da79b6f7425ffb619a5119ca0" - -PACKAGECONFIG ??= "" -PACKAGECONFIG[notify] = "--enable-notifications,--disable-notifications,libnotify" - -FILES_${PN} += "${datadir}/backgrounds" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-xfce/xfdesktop/xfdesktop_4.14.1.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-xfce/xfdesktop/xfdesktop_4.14.1.bb new file mode 100644 index 00000000..fe9f40b3 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-xfce/xfdesktop/xfdesktop_4.14.1.bb @@ -0,0 +1,17 @@ +SUMMARY = "Xfce4 Desktop Manager" +SECTION = "x11/base" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f" +DEPENDS = "libxfce4ui libwnck thunar garcon exo" + +inherit xfce features_check + +REQUIRED_DISTRO_FEATURES = "x11" + +SRC_URI[md5sum] = "de4b8f6687862ad46dbe4e1ced453f4d" +SRC_URI[sha256sum] = "f705a016246ec54ab0c688d1a0577f6c2b45a446690aa8d9e5a7ac23efebf882" + +PACKAGECONFIG ??= "" +PACKAGECONFIG[notify] = "--enable-notifications,--disable-notifications,libnotify" + +FILES_${PN} += "${datadir}/backgrounds" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-xfce/xfwm4/files/0001-Revert-compositor-Revert-to-GLX-as-default-vblank-me.patch b/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-xfce/xfwm4/files/0001-Revert-compositor-Revert-to-GLX-as-default-vblank-me.patch new file mode 100644 index 00000000..04fd623e --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-xfce/xfwm4/files/0001-Revert-compositor-Revert-to-GLX-as-default-vblank-me.patch @@ -0,0 +1,92 @@ +From acdceb0b28d86199b8c2233880fa8a04cb24d4d4 Mon Sep 17 00:00:00 2001 +From: Kai Kang +Date: Wed, 24 Jul 2019 09:48:04 +0800 +Subject: [PATCH] Revert "compositor: Revert to GLX as default vblank method + (again)" + +This reverts commit e07574d6e7a2dbaa08c3ba4765c6306073d9493e. + +It sets the default vblank method (auto) to GLX from 4.13.2. But it +fails to start xfwm4 on intel-x86-64 boards with error: + +| xfwm4: ../mesa-19.1.1/src/mesa/drivers/dri/i965/intel_mipmap_tree.c:1293: +| intel_miptree_match_image: Assertion `image->TexObject->Target == mt->target' failed. +| Aborted + +There is also a RHEL defect: +https://bugzilla.redhat.com/show_bug.cgi?id=1678334 + +Revert the commit to fix the issue. + +Upstream-Status: Inappropriate [workaround] + +Signed-off-by: Kai Kang +--- + src/compositor.c | 41 +++++++++++++++++++---------------------- + 1 file changed, 19 insertions(+), 22 deletions(-) + +diff --git a/src/compositor.c b/src/compositor.c +index 25615282..daced607 100644 +--- a/src/compositor.c ++++ b/src/compositor.c +@@ -4483,13 +4483,28 @@ compositorManageScreen (ScreenInfo *screen_info) + XClearArea (display_info->dpy, screen_info->output, 0, 0, 0, 0, TRUE); + TRACE ("manual compositing enabled"); + ++#ifdef HAVE_PRESENT_EXTENSION ++ screen_info->use_present = display_info->have_present && ++ (screen_info->vblank_mode == VBLANK_AUTO || ++ screen_info->vblank_mode == VBLANK_XPRESENT); ++ if (screen_info->use_present) ++ { ++ screen_info->present_pending = FALSE; ++ XPresentSelectInput (display_info->dpy, ++ screen_info->output, ++ PresentCompleteNotifyMask); ++ } ++#else /* HAVE_PRESENT_EXTENSION */ ++ screen_info->use_present = FALSE; ++#endif /* HAVE_PRESENT_EXTENSION */ ++ + #ifdef HAVE_EPOXY +- screen_info->use_glx = (screen_info->vblank_mode == VBLANK_AUTO || +- screen_info->vblank_mode == VBLANK_GLX); ++ screen_info->use_glx = !screen_info->use_present && + #ifdef HAVE_XSYNC +- screen_info->use_glx &= display_info->have_xsync; ++ display_info->have_xsync && + #endif /* HAVE_XSYNC */ +- ++ (screen_info->vblank_mode == VBLANK_AUTO || ++ screen_info->vblank_mode == VBLANK_GLX); + if (screen_info->use_glx) + { + screen_info->glx_context = None; +@@ -4503,24 +4518,6 @@ compositorManageScreen (ScreenInfo *screen_info) + screen_info->use_glx = FALSE; + #endif /* HAVE_EPOXY */ + +-#ifdef HAVE_PRESENT_EXTENSION +- screen_info->use_present = display_info->have_present && +-#ifdef HAVE_EPOXY +- !screen_info->use_glx && +-#endif /* HAVE_EPOXY */ +- (screen_info->vblank_mode == VBLANK_AUTO || +- screen_info->vblank_mode == VBLANK_XPRESENT); +- if (screen_info->use_present) +- { +- screen_info->present_pending = FALSE; +- XPresentSelectInput (display_info->dpy, +- screen_info->output, +- PresentCompleteNotifyMask); +- } +-#else /* HAVE_PRESENT_EXTENSION */ +- screen_info->use_present = FALSE; +-#endif /* HAVE_PRESENT_EXTENSION */ +- + if (screen_info->use_present) + { + g_info ("Compositor using XPresent for vsync"); +-- +2.20.1 + diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-xfce/xfwm4/xfwm4_4.13.2.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-xfce/xfwm4/xfwm4_4.13.2.bb deleted file mode 100644 index 6075977f..00000000 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-xfce/xfwm4/xfwm4_4.13.2.bb +++ /dev/null @@ -1,38 +0,0 @@ -DESCRIPTION="Xfce4 Window Manager" -SECTION = "x11/wm" -LICENSE = "GPLv2" -LIC_FILES_CHKSUM = "file://COPYING;md5=d791728a073bc009b4ffaf00b7599855" -DEPENDS = "virtual/libx11 libxfce4util libxfce4ui xfconf libwnck3 dbus-glib libxinerama exo-native" - -inherit xfce update-alternatives distro_features_check - -REQUIRED_DISTRO_FEATURES = "x11" - -SRC_URI[md5sum] = "aee4a8375beeae09715e77479610ff02" -SRC_URI[sha256sum] = "7be8a63e92077e42e6cc064a1dfdae608ab99fdc730adbd5200802dbdd86d5a9" - -PACKAGECONFIG ?= " \ - ${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'epoxy', '', d)} \ - xpresent \ - startup-notification \ -" - -PACKAGECONFIG[epoxy] = "--enable-epoxy,--disable-epoxy,libepoxy" -PACKAGECONFIG[xpresent] = "--enable-xpresent,--disable-xpresent,libxpresent" -PACKAGECONFIG[startup-notification] = "--enable-startup-notification,--disable-startup-notification,startup-notification" - -python populate_packages_prepend () { - themedir = d.expand('${datadir}/themes') - do_split_packages(d, themedir, '^(.*)', 'xfwm4-theme-%s', 'XFWM4 theme %s', allow_dirs=True) -} - -PACKAGES_DYNAMIC += "^xfwm4-theme-.*" - -ALTERNATIVE_${PN} = "x-window-manager" -ALTERNATIVE_TARGET[x-window-manager] = "${bindir}/xfwm4" -ALTERNATIVE_PRIORITY[x-window-manager] = "30" - -RDEPENDS_${PN} = "xfwm4-theme-default" -FILES_${PN} += "${libdir}/xfce4/xfwm4/helper-dialog \ - ${datadir}/xfwm4/defaults \ -" diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-xfce/xfwm4/xfwm4_4.14.0.bb b/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-xfce/xfwm4/xfwm4_4.14.0.bb new file mode 100644 index 00000000..b77e619b --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openembedded/meta-xfce/recipes-xfce/xfwm4/xfwm4_4.14.0.bb @@ -0,0 +1,39 @@ +DESCRIPTION = "Xfce4 Window Manager" +SECTION = "x11/wm" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=d791728a073bc009b4ffaf00b7599855" +DEPENDS = "virtual/libx11 libxfce4ui libwnck3 libxinerama exo-native" + +inherit xfce update-alternatives features_check + +REQUIRED_DISTRO_FEATURES = "x11" + +SRC_URI += "file://0001-Revert-compositor-Revert-to-GLX-as-default-vblank-me.patch" +SRC_URI[md5sum] = "c33847836958d540e3ecd0a27f131c0f" +SRC_URI[sha256sum] = "b4182bf8dc63d092f120a51fcae0eb54b9bd4aa4f8486f47e5a65a108322b615" + +PACKAGECONFIG ?= " \ + ${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'epoxy', '', d)} \ + xpresent \ + startup-notification \ +" + +PACKAGECONFIG[epoxy] = "--enable-epoxy,--disable-epoxy,libepoxy" +PACKAGECONFIG[xpresent] = "--enable-xpresent,--disable-xpresent,libxpresent" +PACKAGECONFIG[startup-notification] = "--enable-startup-notification,--disable-startup-notification,startup-notification" + +python populate_packages_prepend () { + themedir = d.expand('${datadir}/themes') + do_split_packages(d, themedir, '^(.*)', 'xfwm4-theme-%s', 'XFWM4 theme %s', allow_dirs=True) +} + +PACKAGES_DYNAMIC += "^xfwm4-theme-.*" + +ALTERNATIVE_${PN} = "x-window-manager" +ALTERNATIVE_TARGET[x-window-manager] = "${bindir}/xfwm4" +ALTERNATIVE_PRIORITY[x-window-manager] = "30" + +RDEPENDS_${PN} = "xfwm4-theme-default" +FILES_${PN} += "${libdir}/xfce4/xfwm4/helper-dialog \ + ${datadir}/xfwm4/defaults \ +" diff --git a/Contrib-Inspur/openbmc/meta-openpower/README.md b/Contrib-Inspur/openbmc/meta-openpower/README.md index 5558eb1e..df764b8c 100644 --- a/Contrib-Inspur/openbmc/meta-openpower/README.md +++ b/Contrib-Inspur/openbmc/meta-openpower/README.md @@ -1,6 +1,48 @@ -OpenPOWER -================ +OpenEmbedded/Yocto/OpenBMC BSP layer for OpenPOWER reference platforms +====================================================================== -meta-openpower is the OpenPOWER layer and should be included in all OpenPOWER -systems' bblayers.conf. More information on OpenPOWER can be found +This layer provides support for the BMC firmware on OpenPOWER reference +platforms, and/or a base upon which to create a BMC firmware implementation on +any POWER system. + +``` +This layer depends on: + +URI: git://git.openembedded.org/openembedded-core +layers: meta +branch: master +revision: HEAD + +URI: https://github.com/openbmc/meta-phosphor +branch: master +revision: HEAD + +URI: https://github.com/openbmc/meta-aspeed +branch: master +revision: HEAD +``` + +More information on OpenPOWER can be found [here](https://openpowerfoundation.org/). + +Contributing +------------ + +meta-openpower patches are reviewed using the Gerrit instance at +https://gerrit.openbmc-project.xyz. + +Please submit patches to Gerrit. More information on using Gerrit can be found +[here](https://github.com/openbmc/docs/blob/master/CONTRIBUTING.md#submitting-changes-via-gerrit-server). +https://github.com/openbmc/meta-openpower is a hosting mirror only and GitHub +pull requests are not monitored and will not be accepted. + +Patch checklist. Please ensure patches adhere to the following guidelines: + + - meta-openpower uses the [OE style + guidelines](https://www.openembedded.org/wiki/Styleguide). + - follow [the seven rules of a great git commit + message](https://chris.beams.io/posts/git-commit/#seven-rules) + +For questions or help please come join us on the [mailing +list](https://lists.ozlabs.org/listinfo/openbmc) or in +[IRC](irc://freenode.net/openbmc). diff --git a/Contrib-Inspur/openbmc/meta-openpower/classes/openpower-software-manager-ubi.bbclass b/Contrib-Inspur/openbmc/meta-openpower/classes/openpower-software-manager-ubi.bbclass index 7ff62be5..7167b88c 100644 --- a/Contrib-Inspur/openbmc/meta-openpower/classes/openpower-software-manager-ubi.bbclass +++ b/Contrib-Inspur/openbmc/meta-openpower/classes/openpower-software-manager-ubi.bbclass @@ -7,7 +7,6 @@ SYSTEMD_SERVICE_${PN} += " \ obmc-flash-bios-ubiumount-rw@.service \ obmc-flash-bios-ubipatch.service \ obmc-flash-bios-ubiremount.service \ - obmc-flash-bios-updatesymlinks.service \ obmc-flash-bios-cleanup.service \ obmc-flash-bios-enable-clearvolatile@.service \ obmc-flash-bios-check-clearvolatile@.service \ diff --git a/Contrib-Inspur/openbmc/meta-openpower/classes/openpower-software-manager-virtual-pnor.bbclass b/Contrib-Inspur/openbmc/meta-openpower/classes/openpower-software-manager-virtual-pnor.bbclass new file mode 100644 index 00000000..c83f4aa1 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openpower/classes/openpower-software-manager-virtual-pnor.bbclass @@ -0,0 +1,5 @@ +PACKAGECONFIG_append = " virtual_pnor" + +SYSTEMD_SERVICE_${PN} += " \ + obmc-vpnor-updatesymlinks.service \ + " diff --git a/Contrib-Inspur/openbmc/meta-openpower/conf/distro/include/openpower-ubi.inc b/Contrib-Inspur/openbmc/meta-openpower/conf/distro/include/openpower-ubi.inc index cb488c83..95355b8f 100644 --- a/Contrib-Inspur/openbmc/meta-openpower/conf/distro/include/openpower-ubi.inc +++ b/Contrib-Inspur/openbmc/meta-openpower/conf/distro/include/openpower-ubi.inc @@ -1,2 +1,4 @@ +require conf/distro/include/openpower-virtual-pnor.inc + DISTRO_FEATURES += "openpower-ubi-fs" DISTROOVERRIDES .= ":df-openpower-ubi-fs" diff --git a/Contrib-Inspur/openbmc/meta-openpower/conf/distro/include/openpower-virtual-pnor.inc b/Contrib-Inspur/openbmc/meta-openpower/conf/distro/include/openpower-virtual-pnor.inc new file mode 100644 index 00000000..56a4a4d7 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openpower/conf/distro/include/openpower-virtual-pnor.inc @@ -0,0 +1,2 @@ +DISTRO_FEATURES += "openpower-virtual-pnor" +DISTROOVERRIDES .= ":df-openpower-virtual-pnor" diff --git a/Contrib-Inspur/openbmc/meta-openpower/conf/layer.conf b/Contrib-Inspur/openbmc/meta-openpower/conf/layer.conf index 6bc20a42..0b3f1a8b 100644 --- a/Contrib-Inspur/openbmc/meta-openpower/conf/layer.conf +++ b/Contrib-Inspur/openbmc/meta-openpower/conf/layer.conf @@ -8,7 +8,5 @@ BBFILES += "${LAYERDIR}/recipes-*/*/*.bb \ BBFILE_COLLECTIONS += "openpower-layer" BBFILE_PATTERN_openpower-layer := "^${LAYERDIR}/" LAYERVERSION_openpower-layer = "1" -LAYERSERIES_COMPAT_openpower-layer = "thud warrior" - -# Provide a variable that points the base of the openpower layer. -OPENPOWERBASE = '${@os.path.normpath("${LAYERDIR}/")}' +LAYERDEPENDS_openpower-layer = "core phosphor-layer aspeed-layer" +LAYERSERIES_COMPAT_openpower-layer = "warrior zeus" diff --git a/Contrib-Inspur/openbmc/meta-openpower/recipes-bsp/ecmd/croserver_git.bb b/Contrib-Inspur/openbmc/meta-openpower/recipes-bsp/ecmd/croserver_git.bb new file mode 100644 index 00000000..37639235 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openpower/recipes-bsp/ecmd/croserver_git.bb @@ -0,0 +1,33 @@ +SUMMARY = "eCMD" +DESCRIPTION = "eCMD is a hardware access API for IBM Systems" +LICENSE= "Apache-2.0" +LIC_FILES_CHKSUM = "file://${S}/NOTICE;md5=fee220301a2af3faf8f211524b4248ea" + +SRC_URI = "git://github.com/open-power/eCMD.git" +SRCREV = "b858b2f212bda2665ad41e821302e8196c7aec07" +DEPENDS += "zlib" + +SRC_URI += "file://croserver.service" + +S = "${WORKDIR}/git" + +inherit pythonnative + +do_configure() { + LD="${CXX}" ${S}/config.py --without-swig --output-root ${B} --target obj --extensions "cmd cip" --build-verbose +} + +do_compile() { + cd ${S}/dllNetwork/server + oe_runmake +} + +do_install() { + install -d ${D}${bindir} + install -m 0755 out_obj/lib/server1p ${D}${bindir}/croserver + + install -d ${D}${systemd_system_unitdir} + install -m 0644 ${WORKDIR}/croserver.service ${D}${systemd_system_unitdir}/ +} + +FILES_${PN} += "${systemd_system_unitdir}/croserver.service" diff --git a/Contrib-Inspur/openbmc/meta-openpower/recipes-bsp/ecmd/files/croserver.service b/Contrib-Inspur/openbmc/meta-openpower/recipes-bsp/ecmd/files/croserver.service new file mode 100644 index 00000000..38d1fd2f --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openpower/recipes-bsp/ecmd/files/croserver.service @@ -0,0 +1,12 @@ +[Unit] +Description=Cronus Server +Documentation=https://github.com/open-power/eCMD/ +After=network.service + +[Service] +Type=simple +ExecStart=/usr/bin/croserver +Restart=on-failure +ProtectHome=yes +ProtectSystem=full +RestrictAddressFamilies=AF_UNIX diff --git a/Contrib-Inspur/openbmc/meta-openpower/recipes-bsp/pdbg/pdbg_2.1.bb b/Contrib-Inspur/openbmc/meta-openpower/recipes-bsp/pdbg/pdbg_2.1.bb deleted file mode 100644 index b4f15f82..00000000 --- a/Contrib-Inspur/openbmc/meta-openpower/recipes-bsp/pdbg/pdbg_2.1.bb +++ /dev/null @@ -1,15 +0,0 @@ -SUMMARY = "PowerPC FSI Debugger" -DESCRIPTION = "pdbg allows JTAG-like debugging of the host POWER processors" -LICENSE = "Apache-2.0" -LIC_FILES_CHKSUM = "file://${S}/COPYING;md5=3b83ef96387f14655fc854ddc3c6bd57" - -PV = "2.1+git${SRCPV}" - -SRC_URI += "git://github.com/open-power/pdbg.git" -SRCREV = "2463be165d7eaa50b648c343e410d851edfb70ce" - -DEPENDS += "dtc-native" - -S = "${WORKDIR}/git" - -inherit autotools diff --git a/Contrib-Inspur/openbmc/meta-openpower/recipes-bsp/pdbg/pdbg_2.4.bb b/Contrib-Inspur/openbmc/meta-openpower/recipes-bsp/pdbg/pdbg_2.4.bb new file mode 100644 index 00000000..08f936d1 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openpower/recipes-bsp/pdbg/pdbg_2.4.bb @@ -0,0 +1,17 @@ +SUMMARY = "PowerPC FSI Debugger" +DESCRIPTION = "pdbg allows JTAG-like debugging of the host POWER processors" +LICENSE = "Apache-2.0" +LIC_FILES_CHKSUM = "file://${S}/COPYING;md5=3b83ef96387f14655fc854ddc3c6bd57" + +PV = "2.4+git${SRCPV}" + +SRC_URI += "git://github.com/open-power/pdbg.git" +SRCREV = "8b4611b5d8e7e2279fe4aa80c892fcfe10aa398d" + +DEPENDS += "dtc-native" + +S = "${WORKDIR}/git" + +inherit autotools + +BBCLASSEXTEND = "native" diff --git a/Contrib-Inspur/openbmc/meta-openpower/recipes-bsp/skiboot/skiboot.inc b/Contrib-Inspur/openbmc/meta-openpower/recipes-bsp/skiboot/skiboot.inc index 4f7ba650..e7fbf4a7 100644 --- a/Contrib-Inspur/openbmc/meta-openpower/recipes-bsp/skiboot/skiboot.inc +++ b/Contrib-Inspur/openbmc/meta-openpower/recipes-bsp/skiboot/skiboot.inc @@ -1,14 +1,14 @@ HOMEPAGE = "https://github.com/open-power" LICENSE = "Apache-2.0" -SRC_URI += "git://github.com/open-power/skiboot.git" +SRC_URI += "git://github.com/open-power/skiboot.git;branch=skiboot-6.5.x" FILESEXTRAPATHS_prepend := "${THISDIR}/skiboot:" LIC_FILES_CHKSUM = "file://${S}/LICENCE;md5=3b83ef96387f14655fc854ddc3c6bd57" -SRCREV = "54811997b6d02dacaf8dd0d61cadaf3786dbabb0" -PV = "6.3.0+git${SRCPV}" +SRCREV = "aff9301bb341b5387228e82036a7d72e519d8855" +PV = "6.5.1+git${SRCPV}" S = "${WORKDIR}/git" diff --git a/Contrib-Inspur/openbmc/meta-openpower/recipes-phosphor/configuration/openpower-yaml-config.bb b/Contrib-Inspur/openbmc/meta-openpower/recipes-phosphor/configuration/openpower-yaml-config.bb index 52ac769a..39141bab 100644 --- a/Contrib-Inspur/openbmc/meta-openpower/recipes-phosphor/configuration/openpower-yaml-config.bb +++ b/Contrib-Inspur/openbmc/meta-openpower/recipes-phosphor/configuration/openpower-yaml-config.bb @@ -1,7 +1,7 @@ SUMMARY = "Shared OpenPOWER configuration" PR = "r1" LICENSE = "Apache-2.0" -LIC_FILES_CHKSUM = "file://${OPENPOWERBASE}/COPYING.apache-2.0;md5=34400b68072d710fecd0a2940a0d1658" +LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10" inherit allarch diff --git a/Contrib-Inspur/openbmc/meta-openpower/recipes-phosphor/dbus/openpower-dbus-interfaces-mapper-config-native.bb b/Contrib-Inspur/openbmc/meta-openpower/recipes-phosphor/dbus/openpower-dbus-interfaces-mapper-config-native.bb index 6f0771aa..e0b296fb 100644 --- a/Contrib-Inspur/openbmc/meta-openpower/recipes-phosphor/dbus/openpower-dbus-interfaces-mapper-config-native.bb +++ b/Contrib-Inspur/openbmc/meta-openpower/recipes-phosphor/dbus/openpower-dbus-interfaces-mapper-config-native.bb @@ -3,7 +3,7 @@ DESCRIPTION="Add the /org/open_power path namespace and \ org.open_power interface prefix to the mapper \ watch list." LICENSE = "Apache-2.0" -LIC_FILES_CHKSUM = "file://${OPENPOWERBASE}/COPYING.apache-2.0;md5=34400b68072d710fecd0a2940a0d1658" +LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10" inherit phosphor-mapper inherit native diff --git a/Contrib-Inspur/openbmc/meta-openpower/recipes-phosphor/dbus/openpower-dbus-interfaces_git.bb b/Contrib-Inspur/openbmc/meta-openpower/recipes-phosphor/dbus/openpower-dbus-interfaces_git.bb index abe6db0f..62eaf634 100644 --- a/Contrib-Inspur/openbmc/meta-openpower/recipes-phosphor/dbus/openpower-dbus-interfaces_git.bb +++ b/Contrib-Inspur/openbmc/meta-openpower/recipes-phosphor/dbus/openpower-dbus-interfaces_git.bb @@ -13,9 +13,10 @@ inherit phosphor-dbus-yaml DEPENDS += "autoconf-archive-native" DEPENDS += "sdbus++-native" +DEPENDS += "phosphor-dbus-interfaces" SRC_URI += "git://github.com/openbmc/openpower-dbus-interfaces" -SRCREV = "c7fc3233830e1e0866d26e212f31811ae69157aa" +SRCREV = "109ded04f3fec7bbbd93f9c9956a355f4894a51f" DEPENDS_remove_class-native = "sdbus++-native" DEPENDS_remove_class-nativesdk = "sdbus++-native" diff --git a/Contrib-Inspur/openbmc/meta-openpower/recipes-phosphor/dbus/phosphor-dbus-interfaces_%.bbappend b/Contrib-Inspur/openbmc/meta-openpower/recipes-phosphor/dbus/phosphor-dbus-interfaces_%.bbappend new file mode 100644 index 00000000..cab0c9b4 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openpower/recipes-phosphor/dbus/phosphor-dbus-interfaces_%.bbappend @@ -0,0 +1 @@ +EXTRA_OECONF += " --enable-openpower-dbus-interfaces" diff --git a/Contrib-Inspur/openbmc/meta-openpower/recipes-phosphor/dump/phosphor-debug-collector/plugins.d/guard b/Contrib-Inspur/openbmc/meta-openpower/recipes-phosphor/dump/phosphor-debug-collector/plugins.d/guard new file mode 100644 index 00000000..cdd461fe --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openpower/recipes-phosphor/dump/phosphor-debug-collector/plugins.d/guard @@ -0,0 +1,18 @@ +#!/bin/bash +# +# config: 2 40 +# @brief: Collect GUARD record information. +# + +. $DREPORT_INCLUDE/functions + +desc="GUARD Records" +file_name="/var/lib/phosphor-software-manager/pnor/prsv/GUARD" + +# Check file is present and not empty. +if [ ! -s "$file_name" ]; then + log_info "No $desc" + exit 0 +fi + +add_copy_file "$file_name" "$desc" diff --git a/Contrib-Inspur/openbmc/meta-openpower/recipes-phosphor/dump/phosphor-debug-collector_%.bbappend b/Contrib-Inspur/openbmc/meta-openpower/recipes-phosphor/dump/phosphor-debug-collector_%.bbappend new file mode 100644 index 00000000..a4cb739e --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openpower/recipes-phosphor/dump/phosphor-debug-collector_%.bbappend @@ -0,0 +1,18 @@ +FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:" +SRC_URI += "file://plugins.d/guard" + +install_openpower_plugins() { + install -m 0755 ${WORKDIR}/plugins.d/guard ${D}${dreport_plugin_dir} +} + +#Link in the plugins so dreport run them at the appropriate time +python link_openpower_plugins() { + workdir = d.getVar('WORKDIR', True) + script = os.path.join(workdir, 'plugins.d', 'guard') + install_dreport_user_script(script, d) +} + +DEBUG_COLLECTOR_INSTALL_POSTFUNCS ?= "" +DEBUG_COLLECTOR_INSTALL_POSTFUNCS_df-openpower ?= "install_openpower_plugins link_openpower_plugins" + +do_install[postfuncs] += "${DEBUG_COLLECTOR_INSTALL_POSTFUNCS}" diff --git a/Contrib-Inspur/openbmc/meta-openpower/recipes-phosphor/flash/host-fw_git.bb b/Contrib-Inspur/openbmc/meta-openpower/recipes-phosphor/flash/host-fw_git.bb new file mode 100644 index 00000000..00fc1fd5 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-openpower/recipes-phosphor/flash/host-fw_git.bb @@ -0,0 +1,33 @@ +SUMMARY = "OpenPOWER Host Firmware Image" +DESCRIPTION = "Adds the OpenPOWER Host Firmware image to the BMC image" +PR = "r1" + +inherit allarch + +HOST_FW_LICENSE ?= "Apache-2.0" +HOST_FW_LIC_FILES_CHKSUM ?= "file://${COREBASE}/meta/files/common-licenses/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10" +HOST_FW_SRC_URI ?= "" + +LICENSE = "${HOST_FW_LICENSE}" +LIC_FILES_CHKSUM = "${HOST_FW_LIC_FILES_CHKSUM}" +SRC_URI = "${HOST_FW_SRC_URI}" + +DEPENDS = "squashfs-tools-native" + +S = "${WORKDIR}" +B = "${WORKDIR}/build" +do_compile[cleandirs] = "${B}" + +do_compile() { + if [ -n "${HOST_FW_SRC_URI}" ]; then + unsquashfs -d ${B}/squashfs-root ${S}/pnor.xz.squashfs + fi +} + +do_install() { + install -d ${D}${datadir}/${BPN} + + if [ -n "${HOST_FW_SRC_URI}" ]; then + install -m 0440 ${B}/squashfs-root/* ${D}${datadir}/${BPN} + fi +} diff --git a/Contrib-Inspur/openbmc/meta-openpower/recipes-phosphor/flash/openpower-software-manager_git.bb b/Contrib-Inspur/openbmc/meta-openpower/recipes-phosphor/flash/openpower-software-manager_git.bb index 615e24c3..3be73be7 100644 --- a/Contrib-Inspur/openbmc/meta-openpower/recipes-phosphor/flash/openpower-software-manager_git.bb +++ b/Contrib-Inspur/openbmc/meta-openpower/recipes-phosphor/flash/openpower-software-manager_git.bb @@ -15,9 +15,13 @@ inherit pythonnative inherit ${@bb.utils.contains('DISTRO_FEATURES', 'openpower-ubi-fs', \ 'openpower-software-manager-ubi', \ 'openpower-software-manager-static', d)} +inherit ${@bb.utils.contains('DISTRO_FEATURES', 'openpower-virtual-pnor', \ + 'openpower-software-manager-virtual-pnor', \ + '', d)} PACKAGECONFIG[verify_pnor_signature] = "--enable-verify_pnor_signature,--disable-verify_pnor_signature" PACKAGECONFIG[ubifs_layout] = "--enable-ubifs_layout,--disable-ubifs_layout,,mtd-utils-ubifs" +PACKAGECONFIG[virtual_pnor] = "--enable-virtual_pnor,--disable-virtual_pnor" EXTRA_OECONF += " \ PNOR_MSL="v2.0.10 v2.2" \ @@ -39,7 +43,7 @@ S = "${WORKDIR}/git" SRC_URI += "git://github.com/openbmc/openpower-pnor-code-mgmt" -SRCREV = "10e915abf1bd31d8b1dae8d01c731ac8dd76c7c0" +SRCREV = "647d6134d448178e6b32892322596a5cc3d78b2d" DBUS_SERVICE_${PN} += "org.open_power.Software.Host.Updater.service" diff --git a/Contrib-Inspur/openbmc/meta-openpower/recipes-phosphor/fsi/op-fsi.bb b/Contrib-Inspur/openbmc/meta-openpower/recipes-phosphor/fsi/op-fsi.bb index 7af9731f..e056d6d2 100644 --- a/Contrib-Inspur/openbmc/meta-openpower/recipes-phosphor/fsi/op-fsi.bb +++ b/Contrib-Inspur/openbmc/meta-openpower/recipes-phosphor/fsi/op-fsi.bb @@ -2,7 +2,7 @@ SUMMARY = "FSI Services" DESCRIPTION = "Install FSI related services" PR = "r1" LICENSE = "Apache-2.0" -LIC_FILES_CHKSUM = "file://${OPENPOWERBASE}/COPYING.apache-2.0;md5=34400b68072d710fecd0a2940a0d1658" +LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10" inherit obmc-phosphor-systemd diff --git a/Contrib-Inspur/openbmc/meta-openpower/recipes-phosphor/host/checkstop-monitor.bb b/Contrib-Inspur/openbmc/meta-openpower/recipes-phosphor/host/checkstop-monitor.bb index 452cdeb8..ebb3a2f7 100644 --- a/Contrib-Inspur/openbmc/meta-openpower/recipes-phosphor/host/checkstop-monitor.bb +++ b/Contrib-Inspur/openbmc/meta-openpower/recipes-phosphor/host/checkstop-monitor.bb @@ -1,7 +1,7 @@ SUMMARY = "OpenPOWER Host checkstop monitor application" PR = "r1" LICENSE = "Apache-2.0" -LIC_FILES_CHKSUM = "file://${OPENPOWERBASE}/COPYING.apache-2.0;md5=34400b68072d710fecd0a2940a0d1658" +LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10" inherit obmc-phosphor-systemd inherit allarch diff --git a/Contrib-Inspur/openbmc/meta-openpower/recipes-phosphor/host/hostboot-settings.bb b/Contrib-Inspur/openbmc/meta-openpower/recipes-phosphor/host/hostboot-settings.bb deleted file mode 100644 index 0a713e76..00000000 --- a/Contrib-Inspur/openbmc/meta-openpower/recipes-phosphor/host/hostboot-settings.bb +++ /dev/null @@ -1,20 +0,0 @@ -SUMMARY = "OpenPower Hostboot Boot settings tool" -PR = "r1" -LICENSE = "Apache-2.0" -LIC_FILES_CHKSUM = "file://${OPENPOWERBASE}/COPYING.apache-2.0;md5=34400b68072d710fecd0a2940a0d1658" - -inherit obmc-phosphor-systemd -inherit allarch - -SRC_URI = "file://hb_settings" -SYSTEMD_SERVICE_${PN} += "hostboot-settings.service" - -do_fetch[noexec] = "1" -do_patch[noexec] = "1" -do_configure[noexec] = "1" -do_compile[noexec] = "1" - -do_install() { - install -d ${D}${bindir} - install -m 0755 ${WORKDIR}/hb_settings ${D}${bindir} -} diff --git a/Contrib-Inspur/openbmc/meta-openpower/recipes-phosphor/host/hostboot-settings/hb_settings b/Contrib-Inspur/openbmc/meta-openpower/recipes-phosphor/host/hostboot-settings/hb_settings deleted file mode 100644 index d75d4b74..00000000 --- a/Contrib-Inspur/openbmc/meta-openpower/recipes-phosphor/host/hostboot-settings/hb_settings +++ /dev/null @@ -1,110 +0,0 @@ -#!/bin/sh -# Copyright 2018 IBM Corp -# SPDX-License-Identifier: Apache-2.0 -# Authored May 2018, Joel Stanley -# -# This script sets the SIO scratch registers 0x2D in order to configure -# hostboot. It supports boot flags v1 as defined in hostboot source: -# src/usr/initservice/bootconfig/bootconfig_ast2400.C -# src/usr/console/ast2400.C -# -# BOOT_FLAGS_VERSION_REG = 0x28, -# Serial config reg: 0x2d -# Serial config mask: 0xc0 -# -# NONE = 0x00, // No output selected -# SELECT_SUART = 0x40, // SIO Uart -# SELECT_VUART = 0x80, // SOL virtual uart -# RESERVED = 0xc0, // Reserved - - -SYSFS_SIO=/sys/devices/platform/ahb/ahb:apb/1e789000.lpc/1e789080.lpc-host/1e789080.lpc-host:regs -SYSFS_SIO28=$SYSFS_SIO/sio_28 -SYSFS_SIO2D=$SYSFS_SIO/sio_2d - -FLAGS_VERSION1=$((0x42)) - -usage() -{ - echo "usage: hb_settings [[-u|--uart vuart|suart|none] | [-s|--show] | [-h]]" -} - -show_regs() -{ - SIO28=$(cat $SYSFS_SIO28) - SIO2D=$(cat $SYSFS_SIO2D) - - case $SIO28 in - $FLAGS_VERSION1) - echo "Boot flags version 1" - ;; - * ) - echo "Unknown boot flags version" - ;; - esac - - case $(($SIO2D >> 6)) in - 0) - echo "Hostboot serial output disabled" - ;; - 1) - echo "Hostboot serial output on SUART" - ;; - 2) - echo "Hostboot serial output on VUART" - ;; - 3) - echo "Reserved value" - ;; - * ) - echo "Invalid uart value" - ;; - esac -} - -set_regs() -{ - case $uart in - suart) - echo "Hostboot serial output on SUART" - VAL=0x40 - ;; - vuart) - echo "Hostboot serial output on VUART" - VAL=0x80 - ;; - none) - echo "Hostboot serial output disabled" - VAL=0x00 - ;; - * ) - echo "Invalid uart value" - usage - exit 1 - esac - - echo $FLAGS_VERSION1 > $SYSFS_SIO28 - echo $VAL > $SYSFS_SIO2D -} - -while [ "$1" != "" ]; do - case $1 in - -u | --uart) shift - uart=$1 - set_regs - exit - ;; - -s | --show ) show_regs - exit - ;; - -h | --help ) usage - exit - ;; - * ) usage - exit 1 - esac - shift -done - -usage -exit 0 diff --git a/Contrib-Inspur/openbmc/meta-openpower/recipes-phosphor/host/hostboot-settings/hostboot-settings.service b/Contrib-Inspur/openbmc/meta-openpower/recipes-phosphor/host/hostboot-settings/hostboot-settings.service deleted file mode 100644 index 9ce81d79..00000000 --- a/Contrib-Inspur/openbmc/meta-openpower/recipes-phosphor/host/hostboot-settings/hostboot-settings.service +++ /dev/null @@ -1,10 +0,0 @@ -[Unit] -Description=Hostboot Boot Settings - -[Service] -Type=oneshot -RemainAfterExit=true -ExecStart=/usr/bin/hb_settings --uart vuart - -[Install] -WantedBy=multi-user.target diff --git a/Contrib-Inspur/openbmc/meta-openpower/recipes-phosphor/host/op-proc-control_git.bb b/Contrib-Inspur/openbmc/meta-openpower/recipes-phosphor/host/op-proc-control_git.bb index 9e7fb54c..20f67b1b 100644 --- a/Contrib-Inspur/openbmc/meta-openpower/recipes-phosphor/host/op-proc-control_git.bb +++ b/Contrib-Inspur/openbmc/meta-openpower/recipes-phosphor/host/op-proc-control_git.bb @@ -11,17 +11,25 @@ inherit autotools obmc-phosphor-utils pkgconfig pythonnative inherit systemd SRC_URI += "git://github.com/openbmc/openpower-proc-control" -SRCREV = "b964c928156c2e71fe3bc9a2693b02cfbba5309c" +SRCREV = "ce042fe87db46d58ab5b73d5ce3ccd126bdc60c7" DEPENDS += " \ autoconf-archive-native \ phosphor-logging \ phosphor-dbus-interfaces \ openpower-dbus-interfaces \ + libgpiod \ " +# For libpdbg, provided by the pdbg package +DEPENDS += "pdbg" + TEMPLATE = "pcie-poweroff@.service" INSTANCE_FORMAT = "pcie-poweroff@{}.service" INSTANCES = "${@compose_list(d, 'INSTANCE_FORMAT', 'OBMC_CHASSIS_INSTANCES')}" SYSTEMD_PACKAGES = "${PN}" SYSTEMD_SERVICE_${PN} = "${TEMPLATE} ${INSTANCES}" + +SYSTEMD_SERVICE_${PN} += " \ + xyz.openbmc_project.Control.Host.NMI.service \ + " diff --git a/Contrib-Inspur/openbmc/meta-openpower/recipes-phosphor/host/p9-cfam-override.bb b/Contrib-Inspur/openbmc/meta-openpower/recipes-phosphor/host/p9-cfam-override.bb index e395841b..769a1348 100644 --- a/Contrib-Inspur/openbmc/meta-openpower/recipes-phosphor/host/p9-cfam-override.bb +++ b/Contrib-Inspur/openbmc/meta-openpower/recipes-phosphor/host/p9-cfam-override.bb @@ -2,7 +2,7 @@ SUMMARY = "POWER9 CFAM override" DESCRIPTION = "Applies user CFAM register overrides from file" PR = "r1" LICENSE = "Apache-2.0" -LIC_FILES_CHKSUM = "file://${OPENPOWERBASE}/COPYING.apache-2.0;md5=34400b68072d710fecd0a2940a0d1658" +LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10" inherit obmc-phosphor-systemd diff --git a/Contrib-Inspur/openbmc/meta-openpower/recipes-phosphor/host/p9-host-start.bb b/Contrib-Inspur/openbmc/meta-openpower/recipes-phosphor/host/p9-host-start.bb index b9110010..37435983 100644 --- a/Contrib-Inspur/openbmc/meta-openpower/recipes-phosphor/host/p9-host-start.bb +++ b/Contrib-Inspur/openbmc/meta-openpower/recipes-phosphor/host/p9-host-start.bb @@ -2,7 +2,7 @@ SUMMARY = "POWER9 start host" DESCRIPTION = "Service to start POWER9 IPL through SBE" PR = "r1" LICENSE = "Apache-2.0" -LIC_FILES_CHKSUM = "file://${OPENPOWERBASE}/COPYING.apache-2.0;md5=34400b68072d710fecd0a2940a0d1658" +LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10" inherit obmc-phosphor-systemd diff --git a/Contrib-Inspur/openbmc/meta-openpower/recipes-phosphor/host/p9-vcs-workaround.bb b/Contrib-Inspur/openbmc/meta-openpower/recipes-phosphor/host/p9-vcs-workaround.bb index 43efeab2..29167b0e 100644 --- a/Contrib-Inspur/openbmc/meta-openpower/recipes-phosphor/host/p9-vcs-workaround.bb +++ b/Contrib-Inspur/openbmc/meta-openpower/recipes-phosphor/host/p9-vcs-workaround.bb @@ -2,7 +2,7 @@ SUMMARY = "POWER9 VCS workaround" DESCRIPTION = "Apply fixes over FSI to POWER9 CPUs prior to host power on" PR = "r1" LICENSE = "Apache-2.0" -LIC_FILES_CHKSUM = "file://${OPENPOWERBASE}/COPYING.apache-2.0;md5=34400b68072d710fecd0a2940a0d1658" +LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10" inherit obmc-phosphor-systemd diff --git a/Contrib-Inspur/openbmc/meta-openpower/recipes-phosphor/bmcweb/bmcweb_%.bbappend b/Contrib-Inspur/openbmc/meta-openpower/recipes-phosphor/interfaces/bmcweb_%.bbappend similarity index 100% rename from Contrib-Inspur/openbmc/meta-openpower/recipes-phosphor/bmcweb/bmcweb_%.bbappend rename to Contrib-Inspur/openbmc/meta-openpower/recipes-phosphor/interfaces/bmcweb_%.bbappend diff --git a/Contrib-Inspur/openbmc/meta-openpower/recipes-phosphor/ipmi/hostboot-inventory-config-native.bb b/Contrib-Inspur/openbmc/meta-openpower/recipes-phosphor/ipmi/hostboot-inventory-config-native.bb index b60a9e38..bd0a8eea 100644 --- a/Contrib-Inspur/openbmc/meta-openpower/recipes-phosphor/ipmi/hostboot-inventory-config-native.bb +++ b/Contrib-Inspur/openbmc/meta-openpower/recipes-phosphor/ipmi/hostboot-inventory-config-native.bb @@ -1,7 +1,7 @@ SUMMARY = "Hostboot hostfw inventory map for phosphor-ipmi-fru" PR = "r1" LICENSE = "Apache-2.0" -LIC_FILES_CHKSUM = "file://${OPENPOWERBASE}/COPYING.apache-2.0;md5=34400b68072d710fecd0a2940a0d1658" +LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10" inherit native inherit phosphor-ipmi-fru diff --git a/Contrib-Inspur/openbmc/meta-openpower/recipes-phosphor/ipmi/openpower-ipmi-oem-sensor-inventory-mrw-native.bb b/Contrib-Inspur/openbmc/meta-openpower/recipes-phosphor/ipmi/openpower-ipmi-oem-sensor-inventory-mrw-native.bb index b9fd6055..6e2c1fc5 100644 --- a/Contrib-Inspur/openbmc/meta-openpower/recipes-phosphor/ipmi/openpower-ipmi-oem-sensor-inventory-mrw-native.bb +++ b/Contrib-Inspur/openbmc/meta-openpower/recipes-phosphor/ipmi/openpower-ipmi-oem-sensor-inventory-mrw-native.bb @@ -1,7 +1,7 @@ SUMMARY = "OEM sensor config for phosphor-host-ipmid" PR = "r1" LICENSE = "Apache-2.0" -LIC_FILES_CHKSUM = "file://${OPENPOWERBASE}/COPYING.apache-2.0;md5=34400b68072d710fecd0a2940a0d1658" +LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10" inherit native inherit phosphor-ipmi-host diff --git a/Contrib-Inspur/openbmc/meta-openpower/recipes-phosphor/ipmi/openpower-ipmi-oem-whitelist-native.bb b/Contrib-Inspur/openbmc/meta-openpower/recipes-phosphor/ipmi/openpower-ipmi-oem-whitelist-native.bb index 4ca07078..1c875879 100644 --- a/Contrib-Inspur/openbmc/meta-openpower/recipes-phosphor/ipmi/openpower-ipmi-oem-whitelist-native.bb +++ b/Contrib-Inspur/openbmc/meta-openpower/recipes-phosphor/ipmi/openpower-ipmi-oem-whitelist-native.bb @@ -1,7 +1,7 @@ SUMMARY = "Whitelisted OpenBMC IPMI OEM commands" DESCRIPTION = "Whitelisted OpenBMC IPMI OEM commands for OpenPOWER based systems" LICENSE = "Apache-2.0" -LIC_FILES_CHKSUM = "file://${OPENPOWERBASE}/COPYING.apache-2.0;md5=34400b68072d710fecd0a2940a0d1658" +LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10" inherit native inherit phosphor-ipmi-host-whitelist diff --git a/Contrib-Inspur/openbmc/meta-openpower/recipes-phosphor/ipmi/openpower-ipmi-oem.inc b/Contrib-Inspur/openbmc/meta-openpower/recipes-phosphor/ipmi/openpower-ipmi-oem.inc index f13d3046..81a901c7 100644 --- a/Contrib-Inspur/openbmc/meta-openpower/recipes-phosphor/ipmi/openpower-ipmi-oem.inc +++ b/Contrib-Inspur/openbmc/meta-openpower/recipes-phosphor/ipmi/openpower-ipmi-oem.inc @@ -2,4 +2,4 @@ HOMEPAGE = "https://github.com/openbmc/openpower-host-ipmi-oem" LICENSE = "Apache-2.0" LIC_FILES_CHKSUM = "file://LICENSE;md5=fa818a259cbed7ce8bc2a22d35a464fc" SRC_URI += "git://github.com/openbmc/openpower-host-ipmi-oem" -SRCREV = "81c34dfea4f6535cfe9519fa9fc2be798456132a" +SRCREV = "36ae8e5c4256b751ada4d6a2c9486c78d03ecba9" diff --git a/Contrib-Inspur/openbmc/meta-openpower/recipes-phosphor/network/first-boot-set-hostname/first-boot-set-hostname.service b/Contrib-Inspur/openbmc/meta-openpower/recipes-phosphor/network/first-boot-set-hostname/first-boot-set-hostname.service index 45e73b50..22bb80c1 100644 --- a/Contrib-Inspur/openbmc/meta-openpower/recipes-phosphor/network/first-boot-set-hostname/first-boot-set-hostname.service +++ b/Contrib-Inspur/openbmc/meta-openpower/recipes-phosphor/network/first-boot-set-hostname/first-boot-set-hostname.service @@ -1,7 +1,6 @@ [Unit] Description=Init BMC Hostname -Wants=mapper-wait@-xyz-openbmc_project-inventory.service -After=mapper-wait@-xyz-openbmc_project-inventory.service +ConditionPathExists=!/var/lib/first-boot-set-hostname Wants=op-vpd-parser.service After=op-vpd-parser.service diff --git a/Contrib-Inspur/openbmc/meta-openpower/recipes-phosphor/network/first-boot-set-hostname/first-boot-set-hostname.sh b/Contrib-Inspur/openbmc/meta-openpower/recipes-phosphor/network/first-boot-set-hostname/first-boot-set-hostname.sh index 42a85b87..eaabb0a1 100644 --- a/Contrib-Inspur/openbmc/meta-openpower/recipes-phosphor/network/first-boot-set-hostname/first-boot-set-hostname.sh +++ b/Contrib-Inspur/openbmc/meta-openpower/recipes-phosphor/network/first-boot-set-hostname/first-boot-set-hostname.sh @@ -12,9 +12,10 @@ sync_hostname() { MAPPER_IFACE='xyz.openbmc_project.ObjectMapper' MAPPER_PATH='/xyz/openbmc_project/object_mapper' INVENTORY_PATH='/xyz/openbmc_project/inventory' + BMC_ITEM_IFACE='xyz.openbmc_project.Inventory.Item.Bmc' INV_ASSET_IFACE='xyz.openbmc_project.Inventory.Decorator.Asset' - + BMC_SN='' BMC_ITEM_PATH=$(busctl --no-pager --verbose call \ ${MAPPER_IFACE} \ ${MAPPER_PATH} \ @@ -30,21 +31,55 @@ sync_hostname() { BMC_ITEM_SERVICE=$(mapper get-service \ ${BMC_ITEM_PATH} 2>/dev/null || true) - if [[ -z "${BMC_ITEM_SERVICE}" ]]; then + if [[ -n "${BMC_ITEM_SERVICE}" ]]; then + BMC_SN=$(busctl get-property ${BMC_ITEM_SERVICE} \ + ${BMC_ITEM_PATH} \ + ${INV_ASSET_IFACE} SerialNumber) + # 's "002B0DH1000"' + BMC_SN=${BMC_SN#*\"} + BMC_SN=${BMC_SN%\"*} + else show_error "No BMC item found in the Inventory. Is VPD EEPROM empty?" - return fi - BMC_SN=$(busctl get-property ${BMC_ITEM_SERVICE} \ - ${BMC_ITEM_PATH} \ - ${INV_ASSET_IFACE} SerialNumber) - # 's "002B0DH1000"' - BMC_SN=${BMC_SN#*\"} - BMC_SN=${BMC_SN%\"*} + if [[ -z "${BMC_SN}" ]] ; then + show_error "BMC Serial Number empty! Setting Hostname as 'hostname + mac address' " + + NETWORK_ITEM_IFACE='xyz.openbmc_project.Inventory.Item.NetworkInterface' + NETWORK_ITEM_PATH=$(busctl --no-pager --verbose call \ + ${MAPPER_IFACE} \ + ${MAPPER_PATH} \ + ${MAPPER_IFACE} \ + GetSubTree sias \ + ${INVENTORY_PATH} 0 1 ${NETWORK_ITEM_IFACE} \ + 2>/dev/null | grep ${INVENTORY_PATH} || true) + + NETWORK_ITEM_PATH=${NETWORK_ITEM_PATH#*\"} + NETWORK_ITEM_PATH=${NETWORK_ITEM_PATH%\"*} + + NETWORK_ITEM_OBJ=$(mapper get-service ${NETWORK_ITEM_PATH} 2>/dev/null || true) + + if [[ -z "${NETWORK_ITEM_OBJ}" ]]; then + show_error 'No Ethernet interface found in the Inventory. Unique hostname not set!' + exit 1 + fi + + MAC_ADDR=$(busctl get-property ${NETWORK_ITEM_OBJ} \ + ${NETWORK_ITEM_PATH} \ + ${NETWORK_ITEM_IFACE} MACAddress) + + # 's "54:52:01:02:03:04"' + MAC_ADDR=${MAC_ADDR#*\"} + MAC_ADDR=${MAC_ADDR%\"*} + + hostnamectl set-hostname $(hostname)-${MAC_ADDR} + else + hostnamectl set-hostname $(hostname)-${BMC_SN} + fi - hostnamectl set-hostname {MACHINE}-${BMC_SN} } -[ "$(hostname)" = "{MACHINE}" ] && sync_hostname +sync_hostname -systemctl disable first-boot-set-hostname.service +# Prevent start at next boot time +touch "/var/lib/first-boot-set-hostname" diff --git a/Contrib-Inspur/openbmc/meta-openpower/recipes-phosphor/network/first-boot-set-hostname_1.0.bb b/Contrib-Inspur/openbmc/meta-openpower/recipes-phosphor/network/first-boot-set-hostname_1.0.bb index 1e9fdd66..f3f7d34c 100644 --- a/Contrib-Inspur/openbmc/meta-openpower/recipes-phosphor/network/first-boot-set-hostname_1.0.bb +++ b/Contrib-Inspur/openbmc/meta-openpower/recipes-phosphor/network/first-boot-set-hostname_1.0.bb @@ -2,7 +2,7 @@ SUMMARY = "Init BMC Hostname" DESCRIPTION = "Setup BMC Unique hostname" PR = "r1" LICENSE = "Apache-2.0" -LIC_FILES_CHKSUM = "file://${OPENPOWERBASE}/COPYING.apache-2.0;md5=34400b68072d710fecd0a2940a0d1658" +LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10" inherit allarch systemd @@ -10,13 +10,13 @@ RDEPENDS_${PN} = "${VIRTUAL-RUNTIME_base-utils}" SYSTEMD_SERVICE_${PN} = "first-boot-set-hostname.service" -SRC_URI = "file://${PN}.sh file://${PN}.service" +SRC_URI = "file://${BPN}.sh file://${BPN}.service" S = "${WORKDIR}" do_install() { - sed "s/{MACHINE}/${MACHINE}/" -i ${PN}.sh + sed "s/{MACHINE}/${MACHINE}/" -i ${BPN}.sh install -d ${D}${bindir} ${D}${systemd_system_unitdir} - install ${PN}.sh ${D}${bindir}/ - install -m 644 ${PN}.service ${D}${systemd_system_unitdir}/ + install ${BPN}.sh ${D}${bindir}/ + install -m 644 ${BPN}.service ${D}${systemd_system_unitdir}/ } diff --git a/Contrib-Inspur/openbmc/meta-openpower/recipes-phosphor/network/first-boot-set-mac/first-boot-set-mac.sh b/Contrib-Inspur/openbmc/meta-openpower/recipes-phosphor/network/first-boot-set-mac/first-boot-set-mac.sh index 9668ed5f..63a4ad71 100755 --- a/Contrib-Inspur/openbmc/meta-openpower/recipes-phosphor/network/first-boot-set-mac/first-boot-set-mac.sh +++ b/Contrib-Inspur/openbmc/meta-openpower/recipes-phosphor/network/first-boot-set-mac/first-boot-set-mac.sh @@ -15,13 +15,34 @@ sync_mac() { INVENTORY_PATH='/xyz/openbmc_project/inventory' NETWORK_ITEM_IFACE='xyz.openbmc_project.Inventory.Item.NetworkInterface' - NETWORK_ITEM_PATH=$(busctl --no-pager --verbose call \ + # Get the NETWORK ITEM count + NETWORK_ITEM_PATH_COUNT=$(busctl --no-pager --verbose call \ + ${MAPPER_IFACE} \ + ${MAPPER_PATH} \ + ${MAPPER_IFACE} \ + GetSubTree sias \ + ${INVENTORY_PATH} 0 1 ${NETWORK_ITEM_IFACE} \ + 2>/dev/null | grep ${INVENTORY_PATH} | wc -l || true) + + if [ $NETWORK_ITEM_PATH_COUNT -gt 1 ]; then + # If there are more than 2 NETOWRK ITEM and path must contain $1 + # for finding the right NETWORK ITEM + NETWORK_ITEM_PATH=$(busctl --no-pager --verbose call \ + ${MAPPER_IFACE} \ + ${MAPPER_PATH} \ + ${MAPPER_IFACE} \ + GetSubTree sias \ + ${INVENTORY_PATH} 0 1 ${NETWORK_ITEM_IFACE} \ + 2>/dev/null | grep ${INVENTORY_PATH} | grep $1 || true) + else + NETWORK_ITEM_PATH=$(busctl --no-pager --verbose call \ ${MAPPER_IFACE} \ ${MAPPER_PATH} \ ${MAPPER_IFACE} \ GetSubTree sias \ ${INVENTORY_PATH} 0 1 ${NETWORK_ITEM_IFACE} \ 2>/dev/null | grep ${INVENTORY_PATH} || true) + fi # ' STRING "/xyz/openbmc_project/inventory/system/chassis/ethernet";' NETWORK_ITEM_PATH=${NETWORK_ITEM_PATH#*\"} @@ -58,4 +79,6 @@ fi sync_mac $1 -systemctl disable first-boot-set-mac@${1}.service +# Prevent start at next boot time +mkdir -p "/var/lib/first-boot-set-mac" +touch "/var/lib/first-boot-set-mac/${1}" diff --git a/Contrib-Inspur/openbmc/meta-openpower/recipes-phosphor/network/first-boot-set-mac/first-boot-set-mac@.service b/Contrib-Inspur/openbmc/meta-openpower/recipes-phosphor/network/first-boot-set-mac/first-boot-set-mac@.service index 8986efd4..3ff5fc18 100644 --- a/Contrib-Inspur/openbmc/meta-openpower/recipes-phosphor/network/first-boot-set-mac/first-boot-set-mac@.service +++ b/Contrib-Inspur/openbmc/meta-openpower/recipes-phosphor/network/first-boot-set-mac/first-boot-set-mac@.service @@ -1,5 +1,6 @@ [Unit] Description=Init BMC MAC address for NIC %I +ConditionPathExists=!/var/lib/first-boot-set-mac/%i Wants=mapper-wait@-xyz-openbmc_project-inventory.service After=mapper-wait@-xyz-openbmc_project-inventory.service Wants=mapper-wait@-xyz-openbmc_project-network-%i.service diff --git a/Contrib-Inspur/openbmc/meta-openpower/recipes-phosphor/network/first-boot-set-mac_1.0.bb b/Contrib-Inspur/openbmc/meta-openpower/recipes-phosphor/network/first-boot-set-mac_1.0.bb index 1a1ee97d..f67ddd46 100644 --- a/Contrib-Inspur/openbmc/meta-openpower/recipes-phosphor/network/first-boot-set-mac_1.0.bb +++ b/Contrib-Inspur/openbmc/meta-openpower/recipes-phosphor/network/first-boot-set-mac_1.0.bb @@ -2,7 +2,7 @@ SUMMARY = "Init BMC MAC address" DESCRIPTION = "Setup BMC MAC address read from VPD" PR = "r1" LICENSE = "Apache-2.0" -LIC_FILES_CHKSUM = "file://${OPENPOWERBASE}/COPYING.apache-2.0;md5=34400b68072d710fecd0a2940a0d1658" +LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10" inherit allarch systemd diff --git a/Contrib-Inspur/openbmc/meta-openpower/recipes-phosphor/occ/openpower-occ-control-config-mrw-native.bb b/Contrib-Inspur/openbmc/meta-openpower/recipes-phosphor/occ/openpower-occ-control-config-mrw-native.bb index 1b228adb..79608854 100644 --- a/Contrib-Inspur/openbmc/meta-openpower/recipes-phosphor/occ/openpower-occ-control-config-mrw-native.bb +++ b/Contrib-Inspur/openbmc/meta-openpower/recipes-phosphor/occ/openpower-occ-control-config-mrw-native.bb @@ -1,7 +1,7 @@ SUMMARY = "OpenPower OCC Control with MRW generated sensor IDs" PR = "r1" LICENSE = "Apache-2.0" -LIC_FILES_CHKSUM = "file://${OPENPOWERBASE}/COPYING.apache-2.0;md5=34400b68072d710fecd0a2940a0d1658" +LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10" inherit native inherit openpower-occ-control diff --git a/Contrib-Inspur/openbmc/meta-openpower/recipes-phosphor/occ/openpower-occ-control.inc b/Contrib-Inspur/openbmc/meta-openpower/recipes-phosphor/occ/openpower-occ-control.inc index 71350915..f7402637 100644 --- a/Contrib-Inspur/openbmc/meta-openpower/recipes-phosphor/occ/openpower-occ-control.inc +++ b/Contrib-Inspur/openbmc/meta-openpower/recipes-phosphor/occ/openpower-occ-control.inc @@ -2,4 +2,4 @@ HOMEPAGE = "https://github.com/openbmc/openpower-occ-control" LICENSE = "Apache-2.0" LIC_FILES_CHKSUM = "file://LICENSE;md5=e3fc50a88d0a364313df4b21ef20c29e" SRC_URI += "git://github.com/openbmc/openpower-occ-control" -SRCREV = "6d6d1b380adc68adaa289e84665f7e774e514d4d" +SRCREV = "5ebf803cf6b2bee06b76c6638daecdcd50a3a70e" diff --git a/Contrib-Inspur/openbmc/meta-openpower/recipes-phosphor/packagegroups/nativesdk-packagegroup-sdk-host.bbappend b/Contrib-Inspur/openbmc/meta-openpower/recipes-phosphor/packagegroups/nativesdk-packagegroup-sdk-host.bbappend index adccb9b1..60b23b79 100644 --- a/Contrib-Inspur/openbmc/meta-openpower/recipes-phosphor/packagegroups/nativesdk-packagegroup-sdk-host.bbappend +++ b/Contrib-Inspur/openbmc/meta-openpower/recipes-phosphor/packagegroups/nativesdk-packagegroup-sdk-host.bbappend @@ -1,4 +1,3 @@ RDEPENDS_${PN}_append_df-openpower = " \ - nativesdk-openpower-dbus-interfaces-yaml \ nativesdk-openpower-debug-collector-yaml \ " diff --git a/Contrib-Inspur/openbmc/meta-openpower/recipes-phosphor/packagegroups/packagegroup-op-apps.bb b/Contrib-Inspur/openbmc/meta-openpower/recipes-phosphor/packagegroups/packagegroup-op-apps.bb index 51045253..04a3fbbb 100644 --- a/Contrib-Inspur/openbmc/meta-openpower/recipes-phosphor/packagegroups/packagegroup-op-apps.bb +++ b/Contrib-Inspur/openbmc/meta-openpower/recipes-phosphor/packagegroups/packagegroup-op-apps.bb @@ -47,6 +47,6 @@ RDEPENDS_${PN}-flash = " \ SUMMARY_${PN}-system = "OpenPOWER System" RDEPENDS_${PN}-system = " \ - hostboot-settings \ pdbg \ + croserver \ " diff --git a/Contrib-Inspur/openbmc/meta-openpower/recipes-phosphor/vpd/openpower-fru-inventory-example-native.bb b/Contrib-Inspur/openbmc/meta-openpower/recipes-phosphor/vpd/openpower-fru-inventory-example-native.bb index e04ebd90..3c9c8eae 100644 --- a/Contrib-Inspur/openbmc/meta-openpower/recipes-phosphor/vpd/openpower-fru-inventory-example-native.bb +++ b/Contrib-Inspur/openbmc/meta-openpower/recipes-phosphor/vpd/openpower-fru-inventory-example-native.bb @@ -1,7 +1,7 @@ SUMMARY = "Inventory config for openpower-vpd-parser" PR = "r1" LICENSE = "Apache-2.0" -LIC_FILES_CHKSUM = "file://${OPENPOWERBASE}/COPYING.apache-2.0;md5=34400b68072d710fecd0a2940a0d1658" +LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10" inherit native inherit openpower-fru-vpd diff --git a/Contrib-Inspur/openbmc/meta-openpower/recipes-phosphor/vpd/openpower-fru-inventory-mrw-native.bb b/Contrib-Inspur/openbmc/meta-openpower/recipes-phosphor/vpd/openpower-fru-inventory-mrw-native.bb index 12e9f277..be0779fe 100644 --- a/Contrib-Inspur/openbmc/meta-openpower/recipes-phosphor/vpd/openpower-fru-inventory-mrw-native.bb +++ b/Contrib-Inspur/openbmc/meta-openpower/recipes-phosphor/vpd/openpower-fru-inventory-mrw-native.bb @@ -1,7 +1,7 @@ SUMMARY = "Inventory config for openpower-vpd-parser" PR = "r1" LICENSE = "Apache-2.0" -LIC_FILES_CHKSUM = "file://${OPENPOWERBASE}/COPYING.apache-2.0;md5=34400b68072d710fecd0a2940a0d1658" +LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10" inherit native inherit openpower-fru-vpd diff --git a/Contrib-Inspur/openbmc/meta-openpower/recipes-phosphor/vpd/openpower-fru-properties-example-native.bb b/Contrib-Inspur/openbmc/meta-openpower/recipes-phosphor/vpd/openpower-fru-properties-example-native.bb index c398cc8f..67107a6e 100644 --- a/Contrib-Inspur/openbmc/meta-openpower/recipes-phosphor/vpd/openpower-fru-properties-example-native.bb +++ b/Contrib-Inspur/openbmc/meta-openpower/recipes-phosphor/vpd/openpower-fru-properties-example-native.bb @@ -1,7 +1,7 @@ SUMMARY = "FRU properties config for openpower-vpd-parser" PR = "r1" LICENSE = "Apache-2.0" -LIC_FILES_CHKSUM = "file://${OPENPOWERBASE}/COPYING.apache-2.0;md5=34400b68072d710fecd0a2940a0d1658" +LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10" inherit native inherit openpower-fru-vpd diff --git a/Contrib-Inspur/openbmc/meta-openpower/recipes-phosphor/vpd/openpower-fru-properties-mrw-native.bb b/Contrib-Inspur/openbmc/meta-openpower/recipes-phosphor/vpd/openpower-fru-properties-mrw-native.bb index 0e32a426..42b1f37e 100644 --- a/Contrib-Inspur/openbmc/meta-openpower/recipes-phosphor/vpd/openpower-fru-properties-mrw-native.bb +++ b/Contrib-Inspur/openbmc/meta-openpower/recipes-phosphor/vpd/openpower-fru-properties-mrw-native.bb @@ -1,7 +1,7 @@ SUMMARY = "FRU properties config for openpower-vpd-parser" PR = "r1" LICENSE = "Apache-2.0" -LIC_FILES_CHKSUM = "file://${OPENPOWERBASE}/COPYING.apache-2.0;md5=34400b68072d710fecd0a2940a0d1658" +LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10" inherit native inherit openpower-fru-vpd diff --git a/Contrib-Inspur/openbmc/meta-openpower/recipes-phosphor/vpd/openpower-fru-vpd-layout-native.bb b/Contrib-Inspur/openbmc/meta-openpower/recipes-phosphor/vpd/openpower-fru-vpd-layout-native.bb index e0717e36..5b018861 100644 --- a/Contrib-Inspur/openbmc/meta-openpower/recipes-phosphor/vpd/openpower-fru-vpd-layout-native.bb +++ b/Contrib-Inspur/openbmc/meta-openpower/recipes-phosphor/vpd/openpower-fru-vpd-layout-native.bb @@ -1,7 +1,7 @@ SUMMARY = "VPD layout for openpower-fru-vpd" PR = "r1" LICENSE = "Apache-2.0" -LIC_FILES_CHKSUM = "file://${OPENPOWERBASE}/COPYING.apache-2.0;md5=34400b68072d710fecd0a2940a0d1658" +LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10" inherit native inherit openpower-fru-vpd diff --git a/Contrib-Inspur/openbmc/meta-openpower/recipes-phosphor/vpd/openpower-fru-vpd-layout/layout.yaml b/Contrib-Inspur/openbmc/meta-openpower/recipes-phosphor/vpd/openpower-fru-vpd-layout/layout.yaml index b7db18f0..b13ff8d6 100644 --- a/Contrib-Inspur/openbmc/meta-openpower/recipes-phosphor/vpd/openpower-fru-vpd-layout/layout.yaml +++ b/Contrib-Inspur/openbmc/meta-openpower/recipes-phosphor/vpd/openpower-fru-vpd-layout/layout.yaml @@ -11,3 +11,8 @@ ETHERNET: VINI,B1: MACAddress OPFR,B1: MACAddress xyz.openbmc_project.Inventory.Item.Ethernet: +ETHERNET1: + xyz.openbmc_project.Inventory.Item.NetworkInterface: + VINI,B1: MACAddress + OPFR,B1: MACAddress + xyz.openbmc_project.Inventory.Item.Ethernet: diff --git a/Contrib-Inspur/openbmc/meta-openpower/recipes-phosphor/vpd/openpower-fru-vpd.inc b/Contrib-Inspur/openbmc/meta-openpower/recipes-phosphor/vpd/openpower-fru-vpd.inc index b3b125ba..80fb65fb 100644 --- a/Contrib-Inspur/openbmc/meta-openpower/recipes-phosphor/vpd/openpower-fru-vpd.inc +++ b/Contrib-Inspur/openbmc/meta-openpower/recipes-phosphor/vpd/openpower-fru-vpd.inc @@ -2,4 +2,4 @@ HOMEPAGE = "https://github.com/openbmc/openpower-vpd-parser" LICENSE = "Apache-2.0" LIC_FILES_CHKSUM = "file://LICENSE;md5=e3fc50a88d0a364313df4b21ef20c29e" SRC_URI += "git://github.com/openbmc/openpower-vpd-parser" -SRCREV = "ee79ca842542c240d9f87166d2aecde32d6b6f80" +SRCREV = "18197ae979ea3fea5f5f34216987f497e02ce96e" diff --git a/Contrib-Inspur/openbmc/meta-openpower/recipes-phosphor/vpd/openpower-fru-vpd_git.bb b/Contrib-Inspur/openbmc/meta-openpower/recipes-phosphor/vpd/openpower-fru-vpd_git.bb index a1b7026a..87377edc 100644 --- a/Contrib-Inspur/openbmc/meta-openpower/recipes-phosphor/vpd/openpower-fru-vpd_git.bb +++ b/Contrib-Inspur/openbmc/meta-openpower/recipes-phosphor/vpd/openpower-fru-vpd_git.bb @@ -39,5 +39,5 @@ do_install_append() { install ${SRC}/inventory ${DEST} install -d ${D}/${base_libdir}/udev/rules.d/ - install ${WORKDIR}/70-op-vpd.rules ${D}/${base_libdir}/udev/rules.d/ + install -m0644 ${WORKDIR}/70-op-vpd.rules ${D}/${base_libdir}/udev/rules.d/ } diff --git a/Contrib-Inspur/openbmc/meta-phosphor/aspeed-layer/recipes-bsp/u-boot/u-boot-aspeed-sdk_%.bbappend b/Contrib-Inspur/openbmc/meta-phosphor/aspeed-layer/recipes-bsp/u-boot/u-boot-aspeed-sdk_%.bbappend new file mode 100644 index 00000000..0e18a7c1 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-phosphor/aspeed-layer/recipes-bsp/u-boot/u-boot-aspeed-sdk_%.bbappend @@ -0,0 +1,2 @@ +FLASH_SIZE ?= "32768" +ASPEED_IMAGE_SIZE_KB = "${FLASH_SIZE}" diff --git a/Contrib-Inspur/openbmc/meta-phosphor/classes/image_types_phosphor.bbclass b/Contrib-Inspur/openbmc/meta-phosphor/classes/image_types_phosphor.bbclass index 1edf3a3b..10388d25 100644 --- a/Contrib-Inspur/openbmc/meta-phosphor/classes/image_types_phosphor.bbclass +++ b/Contrib-Inspur/openbmc/meta-phosphor/classes/image_types_phosphor.bbclass @@ -16,17 +16,25 @@ IMAGE_BASETYPE ?= "squashfs-xz" OVERLAY_BASETYPE ?= "jffs2" FLASH_UBI_BASETYPE ?= "${IMAGE_BASETYPE}" FLASH_UBI_OVERLAY_BASETYPE ?= "ubifs" +FLASH_EXT4_BASETYPE ?= "ext4" +FLASH_EXT4_OVERLAY_BASETYPE ?= "ext4" -IMAGE_TYPES += "mtd-static mtd-static-alltar mtd-static-tar mtd-ubi mtd-ubi-tar" +IMAGE_TYPES += "mtd-static mtd-static-alltar mtd-static-tar mtd-ubi mtd-ubi-tar mmc-verity mmc-ext4-tar" IMAGE_TYPEDEP_mtd-static = "${IMAGE_BASETYPE}" IMAGE_TYPEDEP_mtd-static-tar = "${IMAGE_BASETYPE}" IMAGE_TYPEDEP_mtd-static-alltar = "mtd-static" IMAGE_TYPEDEP_mtd-ubi = "${FLASH_UBI_BASETYPE}" IMAGE_TYPEDEP_mtd-ubi-tar = "${FLASH_UBI_BASETYPE}" -IMAGE_TYPES_MASKED += "mtd-static mtd-static-alltar mtd-static-tar mtd-ubi mtd-ubi-tar" +IMAGE_TYPEDEP_mmc-verity = "${FLASH_EXT4_BASETYPE}" +IMAGE_TYPEDEP_mmc-ext4-tar = "${FLASH_EXT4_BASETYPE}" +IMAGE_TYPES_MASKED += "mtd-static mtd-static-alltar mtd-static-tar mtd-ubi mtd-ubi-tar mmc-verity mmc-ext4-tar" + +IMAGE_BLOCK_SIZE ?= "4096" +EXTRA_IMAGECMD_ext4 = "-b ${IMAGE_BLOCK_SIZE}" # Flash characteristics in KB unless otherwise noted +DISTROOVERRIDES .= ":flash-${FLASH_SIZE}" FLASH_SIZE ?= "32768" FLASH_PEB_SIZE ?= "64" # Flash page and overhead sizes in bytes @@ -36,18 +44,25 @@ FLASH_NOR_UBI_OVERHEAD ?= "64" # Fixed partition offsets FLASH_UBOOT_OFFSET ?= "0" FLASH_KERNEL_OFFSET ?= "512" +FLASH_KERNEL_OFFSET_flash-131072 ?= "1024" FLASH_UBI_OFFSET ?= "${FLASH_KERNEL_OFFSET}" FLASH_ROFS_OFFSET ?= "4864" +FLASH_ROFS_OFFSET_flash-131072 ?= "10240" FLASH_RWFS_OFFSET ?= "28672" +FLASH_RWFS_OFFSET_flash-131072 ?= "98304" # UBI volume sizes in KB unless otherwise noted. FLASH_UBI_RWFS_SIZE ?= "6144" +FLASH_UBI_RWFS_SIZE_flash-131072 ?= "32768" FLASH_UBI_RWFS_TXT_SIZE ?= "6MiB" +FLASH_UBI_RWFS_TXT_SIZE_flash-131072 ?= "32MiB" SIGNING_KEY ?= "${STAGING_DIR_NATIVE}${datadir}/OpenBMC.priv" INSECURE_KEY = "${@'${SIGNING_KEY}' == '${STAGING_DIR_NATIVE}${datadir}/OpenBMC.priv'}" SIGNING_KEY_DEPENDS = "${@oe.utils.conditional('INSECURE_KEY', 'True', 'phosphor-insecure-signing-key-native:do_populate_sysroot', '', d)}" +VERSION_PURPOSE ?= "xyz.openbmc_project.Software.Version.VersionPurpose.BMC" + UBOOT_SUFFIX ?= "bin" python() { @@ -71,21 +86,33 @@ python() { # Instead, prefix the overlay override value with 'rwfs-' to avoid collisions. DISTROOVERRIDES .= ":static-rwfs-${OVERLAY_BASETYPE}" DISTROOVERRIDES .= ":ubi-rwfs-${FLASH_UBI_OVERLAY_BASETYPE}" +DISTROOVERRIDES .= ":mmc-rwfs-${FLASH_EXT4_OVERLAY_BASETYPE}" -JFFS2_RWFS_CMD = "mkfs.jffs2 --root=jffs2 --faketime --output=rwfs.jffs2" -UBIFS_RWFS_CMD = "mkfs.ubifs -r ubifs -c ${FLASH_UBI_RWFS_LEBS} -m ${FLASH_PAGE_SIZE} -e ${FLASH_LEB_SIZE} rwfs.ubifs" +JFFS2_RWFS_CMD = "mkfs.jffs2 --root=jffs2 --faketime --output=${IMGDEPLOYDIR}/${IMAGE_LINK_NAME}.jffs2" +UBIFS_RWFS_CMD = "mkfs.ubifs -r ubifs -c ${FLASH_UBI_RWFS_LEBS} -m ${FLASH_PAGE_SIZE} -e ${FLASH_LEB_SIZE} ${IMGDEPLOYDIR}/${IMAGE_LINK_NAME}.ubifs" +EXT4_RWFS_CMD = "mkfs.ext4 -F ${IMGDEPLOYDIR}/${IMAGE_LINK_NAME}.rwfs.ext4" FLASH_STATIC_RWFS_CMD_static-rwfs-jffs2 = "${JFFS2_RWFS_CMD}" FLASH_UBI_RWFS_CMD_ubi-rwfs-jffs2 = "${JFFS2_RWFS_CMD}" FLASH_UBI_RWFS_CMD_ubi-rwfs-ubifs = "${UBIFS_RWFS_CMD}" +FLASH_EXT4_RWFS_CMD_mmc-rwfs-ext4 = "${EXT4_RWFS_CMD}" -mk_nor_image() { +mk_empty_image() { image_dst="$1" image_size_kb=$2 dd if=/dev/zero bs=1k count=$image_size_kb \ | tr '\000' '\377' > $image_dst } +clean_rwfs() { + type=$1 + shift + + rm -f ${IMGDEPLOYDIR}/${IMAGE_LINK_NAME}.$type + rm -rf $type + mkdir $type +} + make_rwfs() { type=$1 cmd=$2 @@ -93,14 +120,13 @@ make_rwfs() { shift opts="$@" - rm -f rwfs.$type - rm -rf $type - mkdir $type + mkdir -p $type $cmd $opts } do_generate_rwfs_static() { + clean_rwfs ${OVERLAY_BASETYPE} make_rwfs ${OVERLAY_BASETYPE} "${FLASH_STATIC_RWFS_CMD}" ${OVERLAY_MKFS_OPTS} } do_generate_rwfs_static[dirs] = " ${S}/static" @@ -109,6 +135,7 @@ do_generate_rwfs_static[depends] += " \ " do_generate_rwfs_ubi() { + clean_rwfs ${FLASH_UBI_OVERLAY_BASETYPE} make_rwfs ${FLASH_UBI_OVERLAY_BASETYPE} "${FLASH_UBI_RWFS_CMD}" } do_generate_rwfs_ubi[dirs] = " ${S}/ubi" @@ -116,6 +143,16 @@ do_generate_rwfs_ubi[depends] += " \ mtd-utils-native:do_populate_sysroot \ " +do_generate_rwfs_ext4() { + clean_rwfs rwfs.${FLASH_EXT4_OVERLAY_BASETYPE} + mk_empty_image ${IMGDEPLOYDIR}/${IMAGE_LINK_NAME}.rwfs.ext4 1024 + make_rwfs ${FLASH_EXT4_OVERLAY_BASETYPE} "${FLASH_EXT4_RWFS_CMD}" ${OVERLAY_MKFS_OPTS} +} +do_generate_rwfs_ext4[dirs] = " ${S}/ext4" +do_generate_rwfs_ext4[depends] += " \ + e2fsprogs-native:do_populate_sysroot \ + " + add_volume() { config_file=$1 vol_id=$2 @@ -158,13 +195,13 @@ do_make_ubi() { add_volume $cfg 1 static rofs-${VERSION_ID} \ ${IMGDEPLOYDIR}/${IMAGE_LINK_NAME}.${FLASH_UBI_BASETYPE} - add_volume $cfg 2 dynamic rwfs rwfs.${FLASH_UBI_OVERLAY_BASETYPE} ${FLASH_UBI_RWFS_TXT_SIZE} + add_volume $cfg 2 dynamic rwfs ${IMGDEPLOYDIR}/${IMAGE_LINK_NAME}.${FLASH_UBI_OVERLAY_BASETYPE} ${FLASH_UBI_RWFS_TXT_SIZE} # Build the ubi partition image ubinize -p ${FLASH_PEB_SIZE}KiB -m ${FLASH_PAGE_SIZE} -o ubi-img $cfg # Concatenate the uboot and ubi partitions - mk_nor_image ${IMGDEPLOYDIR}/${IMAGE_NAME}.ubi.mtd ${FLASH_SIZE} + mk_empty_image ${IMGDEPLOYDIR}/${IMAGE_NAME}.ubi.mtd ${FLASH_SIZE} dd bs=1k conv=notrunc seek=${FLASH_UBOOT_OFFSET} \ if=${DEPLOY_DIR_IMAGE}/u-boot.${UBOOT_SUFFIX} \ of=${IMGDEPLOYDIR}/${IMAGE_NAME}.ubi.mtd @@ -183,9 +220,98 @@ do_make_ubi[depends] += " \ mtd-utils-native:do_populate_sysroot \ " +python do_generate_mmc_verity() { + import os + import subprocess + + rootfs_image = os.path.join(d.getVar('IMGDEPLOYDIR', True), + '%s.%s' % ( + d.getVar('IMAGE_LINK_NAME', True), + d.getVar('FLASH_EXT4_BASETYPE', True))) + + verity_image = 'verity-%s.%s' % ( + d.getVar('IMAGE_LINK_NAME', True), + d.getVar('FLASH_EXT4_BASETYPE', True)) + + subprocess.check_call(['dd', + 'if=%s' % rootfs_image, + 'of=%s' % verity_image]) + + # dm-verity values + sector_size = 512 + block_size = int(d.getVar('IMAGE_BLOCK_SIZE', True)) + verity_algo = "sha256" + rootfs_image_size = os.stat(rootfs_image).st_size + + def align_up(number, boundary): + return ((number + (boundary - 1)) // boundary) * boundary + + # verity metadata must be aligned on the block boundary subsequent to the + # end of the data + verity_hash_offset = align_up(rootfs_image_size, block_size) + + verity_hash_blocks = verity_hash_offset // block_size + + # the output of 'veritysetup format' looks like: + # VERITY header information for obmc-phosphor-image-witherspoon.squashfs-xz + # UUID: 269b5934-de5b-45b0-99a3-56b219a7b544 + # Hash type: 1 + # Data blocks: 4523 + # Data block size: 4096 + # Hash block size: 4096 + # Hash algorithm: sha256 + # Salt: 8fca9eff342fc0cf2964057257ea80813a223cb2e540a38458142edeb190e12e + # Root hash: 38ef00d23fa89300dcf66e7494d25246d03bf846b4119b34e7b1587c0b6fe1d9 + verity_hash_file = "verity-hash-verification-data" + with open(verity_hash_file, 'w') as f: + subprocess.check_call(['veritysetup', + 'format', + '--hash=%s'% verity_algo, + '--data-block-size=%i' % block_size, + '--hash-block-size=%i' % block_size, + '--hash-offset=%i' % verity_hash_offset, + '%s' % verity_image, + '%s' % verity_image], stdout=f, stderr=f) + + for line in open(verity_hash_file, "r"): + if "Salt" in line: + verity_salt = line.split()[-1] + if "Root" in line: + verity_root = line.split()[-1] + + verity_image_size = os.stat(verity_image).st_size + + # Make an appropriately sized image for MMC + mmc_image_name = "%s.mmc" % d.getVar('IMAGE_NAME', True) + mmc_image_path = os.path.join(d.getVar('IMGDEPLOYDIR', True), + '%s' % mmc_image_name) + + # CSD size accommodates MMC limitations that are relevant to QEMU + csd_size = (1 << (9 + 9 - 1 + 2)) + + with open(mmc_image_path, 'w') as fd: + os.posix_fallocate(fd.fileno(), 0, align_up(verity_image_size, csd_size)) + subprocess.check_call(['dd', + 'if=%s' % verity_image, + 'of=%s' % mmc_image_path, + 'conv=notrunc']) + + os.chdir("%s" % d.getVar('IMGDEPLOYDIR', True)) + mmc_link_name = os.path.join(d.getVar('IMGDEPLOYDIR', True), + '%s.mmc' % d.getVar('IMAGE_LINK_NAME', True)) + if os.path.lexists(mmc_link_name): + os.remove(mmc_link_name) + os.symlink(mmc_image_name, mmc_link_name) +} +do_generate_mmc_verity[dirs] = "${S}/mmc" +do_generate_mmc_verity[depends] += " \ + ${PN}:do_image_${FLASH_EXT4_BASETYPE} \ + cryptsetup-native:do_populate_sysroot \ + " + do_mk_static_nor_image() { # Assemble the flash image - mk_nor_image ${IMGDEPLOYDIR}/${IMAGE_NAME}.static.mtd ${FLASH_SIZE} + mk_empty_image ${IMGDEPLOYDIR}/${IMAGE_NAME}.static.mtd ${FLASH_SIZE} } python do_generate_static() { @@ -223,7 +349,10 @@ python do_generate_static() { int(d.getVar('FLASH_ROFS_OFFSET', True)), int(d.getVar('FLASH_RWFS_OFFSET', True))) - _append_image('rwfs.%s' % d.getVar('OVERLAY_BASETYPE', True), + _append_image(os.path.join(d.getVar('IMGDEPLOYDIR', True), + '%s.%s' % ( + d.getVar('IMAGE_LINK_NAME', True), + d.getVar('OVERLAY_BASETYPE', True))), int(d.getVar('FLASH_RWFS_OFFSET', True)), int(d.getVar('FLASH_SIZE', True))) @@ -231,9 +360,6 @@ python do_generate_static() { } do_mk_static_symlinks() { - # File needed for generating non-standard legacy links below - cp rwfs.${OVERLAY_BASETYPE} ${IMGDEPLOYDIR}/rwfs.${OVERLAY_BASETYPE} - cd ${IMGDEPLOYDIR} ln -sf ${IMAGE_NAME}.static.mtd ${IMGDEPLOYDIR}/${IMAGE_LINK_NAME}.static.mtd @@ -243,7 +369,7 @@ do_mk_static_symlinks() { ln -sf u-boot.${UBOOT_SUFFIX} ${IMGDEPLOYDIR}/image-u-boot ln -sf ${FLASH_KERNEL_IMAGE} ${IMGDEPLOYDIR}/image-kernel ln -sf ${IMAGE_LINK_NAME}.${IMAGE_BASETYPE} ${IMGDEPLOYDIR}/image-rofs - ln -sf rwfs.${OVERLAY_BASETYPE} ${IMGDEPLOYDIR}/image-rwfs + ln -sf ${IMAGE_LINK_NAME}.${OVERLAY_BASETYPE} ${IMGDEPLOYDIR}/image-rwfs } do_generate_static[dirs] = "${S}/static" do_generate_static[depends] += " \ @@ -299,7 +425,7 @@ make_image_links() { ln -sf ${DEPLOY_DIR_IMAGE}/u-boot.${UBOOT_SUFFIX} image-u-boot ln -sf ${DEPLOY_DIR_IMAGE}/${FLASH_KERNEL_IMAGE} image-kernel ln -sf ${IMGDEPLOYDIR}/${IMAGE_LINK_NAME}.$rofs image-rofs - ln -sf rwfs.$rwfs image-rwfs + ln -sf ${IMGDEPLOYDIR}/${IMAGE_LINK_NAME}.$rwfs image-rwfs } make_tar_of_images() { @@ -308,11 +434,11 @@ make_tar_of_images() { extra_files="$@" # Create the tar archive - tar -h -cvf ${IMGDEPLOYDIR}/${IMAGE_NAME}.$type.mtd.tar \ + tar -h -cvf ${IMGDEPLOYDIR}/${IMAGE_NAME}.$type.tar \ image-u-boot image-kernel image-rofs image-rwfs $extra_files cd ${IMGDEPLOYDIR} - ln -sf ${IMAGE_NAME}.$type.mtd.tar ${IMGDEPLOYDIR}/${IMAGE_LINK_NAME}.$type.mtd.tar + ln -sf ${IMAGE_NAME}.$type.tar ${IMGDEPLOYDIR}/${IMAGE_LINK_NAME}.$type.tar } do_generate_static_tar() { @@ -320,7 +446,7 @@ do_generate_static_tar() { ln -sf ${S}/publickey publickey make_image_links ${OVERLAY_BASETYPE} ${IMAGE_BASETYPE} make_signatures image-u-boot image-kernel image-rofs image-rwfs MANIFEST publickey - make_tar_of_images static MANIFEST publickey ${signature_files} + make_tar_of_images static.mtd MANIFEST publickey ${signature_files} # Maintain non-standard legacy link. cd ${IMGDEPLOYDIR} @@ -342,7 +468,7 @@ do_generate_ubi_tar() { ln -sf ${S}/publickey publickey make_image_links ${FLASH_UBI_OVERLAY_BASETYPE} ${FLASH_UBI_BASETYPE} make_signatures image-u-boot image-kernel image-rofs image-rwfs MANIFEST publickey - make_tar_of_images ubi MANIFEST publickey ${signature_files} + make_tar_of_images ubi.mtd MANIFEST publickey ${signature_files} } do_generate_ubi_tar[dirs] = " ${S}/ubi" do_generate_ubi_tar[depends] += " \ @@ -354,6 +480,23 @@ do_generate_ubi_tar[depends] += " \ ${PN}:do_copy_signing_pubkey \ " +do_generate_ext4_tar() { + ln -sf ${S}/MANIFEST MANIFEST + ln -sf ${S}/publickey publickey + make_image_links rwfs.${FLASH_EXT4_OVERLAY_BASETYPE} ${FLASH_EXT4_BASETYPE} + make_signatures image-u-boot image-kernel image-rofs image-rwfs MANIFEST publickey + make_tar_of_images ext4.mmc MANIFEST publickey ${signature_files} +} +do_generate_ext4_tar[dirs] = " ${S}/ext4" +do_generate_ext4_tar[depends] += " \ + ${PN}:do_image_${FLASH_EXT4_BASETYPE} \ + virtual/kernel:do_deploy \ + u-boot:do_populate_sysroot \ + openssl-native:do_populate_sysroot \ + ${SIGNING_KEY_DEPENDS} \ + ${PN}:do_copy_signing_pubkey \ + " + def get_pubkey_basedir(d): return os.path.join( d.getVar('STAGING_DIR_TARGET', True), @@ -370,12 +513,15 @@ def get_pubkey_path(d): 'publickey') python do_generate_phosphor_manifest() { + purpose = d.getVar('VERSION_PURPOSE', True) version = do_get_version(d) + target_machine = d.getVar('MACHINE', True) with open('MANIFEST', 'w') as fd: - fd.write('purpose=xyz.openbmc_project.Software.Version.VersionPurpose.BMC\n') + fd.write('purpose={}\n'.format(purpose)) fd.write('version={}\n'.format(version.strip('"'))) fd.write('KeyType={}\n'.format(get_pubkey_type(d))) fd.write('HashType=RSA-SHA256\n') + fd.write('MachineName={}\n'.format(target_machine)) } do_generate_phosphor_manifest[dirs] = "${S}" do_generate_phosphor_manifest[depends] += " \ @@ -398,6 +544,7 @@ addtask copy_signing_pubkey after do_rootfs addtask generate_phosphor_manifest after do_rootfs addtask generate_rwfs_static after do_rootfs addtask generate_rwfs_ubi after do_rootfs +addtask generate_rwfs_ext4 after do_rootfs python() { types = d.getVar('IMAGE_FSTYPES', True).split() @@ -428,4 +575,14 @@ python() { 'do_generate_ubi_tar', 'do_image_complete', 'do_generate_rwfs_ubi do_generate_phosphor_manifest', d) + + if 'mmc-verity' in types: + bb.build.addtask( + 'do_generate_mmc_verity', + 'do_image_complete','', d) + if 'mmc-ext4-tar' in types: + bb.build.addtask( + 'do_generate_ext4_tar', + 'do_image_complete', + 'do_generate_rwfs_ext4 do_generate_phosphor_manifest', d) } diff --git a/Contrib-Inspur/openbmc/meta-phosphor/classes/image_types_phosphor_nuvoton.bbclass b/Contrib-Inspur/openbmc/meta-phosphor/classes/image_types_phosphor_nuvoton.bbclass new file mode 100644 index 00000000..d9d179ee --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-phosphor/classes/image_types_phosphor_nuvoton.bbclass @@ -0,0 +1,49 @@ +UBOOT_BINARY := "u-boot.${UBOOT_SUFFIX}" +BOOTBLOCK = "Poleg_bootblock.bin" +FULL_SUFFIX = "full" +MERGED_SUFFIX = "merged" +UBOOT_SUFFIX_append = ".${MERGED_SUFFIX}" + +IGPS_DIR = "${STAGING_DIR_NATIVE}/${datadir}/npcm7xx-igps" + +# Prepare the Bootblock and U-Boot images using npcm7xx-bingo +do_prepare_bootloaders() { + local olddir="$(pwd)" + cd ${DEPLOY_DIR_IMAGE} + bingo ${IGPS_DIR}/BootBlockAndHeader_${IGPS_MACHINE}.xml \ + -o ${DEPLOY_DIR_IMAGE}/${BOOTBLOCK}.${FULL_SUFFIX} + + bingo ${IGPS_DIR}/UbootHeader_${IGPS_MACHINE}.xml \ + -o ${DEPLOY_DIR_IMAGE}/${UBOOT_BINARY}.${FULL_SUFFIX} + + bingo ${IGPS_DIR}/mergedBootBlockAndUboot.xml \ + -o ${DEPLOY_DIR_IMAGE}/${UBOOT_BINARY}.${MERGED_SUFFIX} + cd "$olddir" +} + +do_prepare_bootloaders[depends] += " \ + npcm7xx-bootblock:do_deploy \ + npcm7xx-bingo-native:do_populate_sysroot \ + npcm7xx-igps-native:do_populate_sysroot \ + " + +addtask do_prepare_bootloaders before do_generate_static after do_generate_rwfs_static + +# Include the full bootblock and u-boot in the final static image +python do_generate_static_append() { + _append_image(os.path.join(d.getVar('DEPLOY_DIR_IMAGE', True), + 'u-boot.%s' % d.getVar('UBOOT_SUFFIX',True)), + int(d.getVar('FLASH_UBOOT_OFFSET', True)), + int(d.getVar('FLASH_KERNEL_OFFSET', True))) +} + +do_make_ubi_append() { + # Concatenate the uboot and ubi partitions + dd bs=1k conv=notrunc seek=${FLASH_UBOOT_OFFSET} \ + if=${DEPLOY_DIR_IMAGE}/u-boot.${UBOOT_SUFFIX} \ + of=${IMGDEPLOYDIR}/${IMAGE_NAME}.ubi.mtd +} + +do_make_ubi[depends] += "${PN}:do_prepare_bootloaders" +do_generate_ubi_tar[depends] += "${PN}:do_prepare_bootloaders" +do_generate_static_tar[depends] += "${PN}:do_prepare_bootloaders" diff --git a/Contrib-Inspur/openbmc/meta-phosphor/classes/mrw-rev.bbclass b/Contrib-Inspur/openbmc/meta-phosphor/classes/mrw-rev.bbclass index 72a22393..b0a6b1f4 100644 --- a/Contrib-Inspur/openbmc/meta-phosphor/classes/mrw-rev.bbclass +++ b/Contrib-Inspur/openbmc/meta-phosphor/classes/mrw-rev.bbclass @@ -2,4 +2,4 @@ MRW_API_SRC_URI ?= "git://github.com/open-power/serverwiz.git" MRW_API_SRCREV ?= "60c8e10cbb11768cd1ba394b35cb1d6627efec42" MRW_TOOLS_SRC_URI ?= "git://github.com/openbmc/phosphor-mrw-tools" -MRW_TOOLS_SRCREV ?= "5dd783bfab6c73851fa31d50e6184a9511f20bcd" +MRW_TOOLS_SRCREV ?= "715c97ea76bb6c976e57dfa899f76a7106a7c2d5" diff --git a/Contrib-Inspur/openbmc/meta-phosphor/classes/mrw-xml.bbclass b/Contrib-Inspur/openbmc/meta-phosphor/classes/mrw-xml.bbclass index 5a9c773a..8876de70 100644 --- a/Contrib-Inspur/openbmc/meta-phosphor/classes/mrw-xml.bbclass +++ b/Contrib-Inspur/openbmc/meta-phosphor/classes/mrw-xml.bbclass @@ -1,2 +1,4 @@ MRW_XML ??= "${MACHINE}.xml" mrw_datadir = "${datadir}/obmc-mrw" +SKIP_BROKEN_MRW ?= "0" +EXTRA_MRW_SCRIPT_ARGS = "${@bb.utils.contains("SKIP_BROKEN_MRW", "0", "", "--skip-broken-mrw", d)}" diff --git a/Contrib-Inspur/openbmc/meta-phosphor/classes/obmc-phosphor-discovery-service.bbclass b/Contrib-Inspur/openbmc/meta-phosphor/classes/obmc-phosphor-discovery-service.bbclass index 313402ff..e912bead 100644 --- a/Contrib-Inspur/openbmc/meta-phosphor/classes/obmc-phosphor-discovery-service.bbclass +++ b/Contrib-Inspur/openbmc/meta-phosphor/classes/obmc-phosphor-discovery-service.bbclass @@ -7,7 +7,6 @@ python() { slp_enabled = bb.utils.contains( 'DISTRO_FEATURES', 'slp', True, False, d) - if not avahi_enabled and not slp_enabled: return @@ -28,7 +27,7 @@ python() { for service in listvar_to_list(d, 'REGISTERED_SERVICES_%s' % pkg): if avahi_enabled: set_append(d, 'RRECOMMENDS_%s' % pkg, 'avahi-daemon') - svc_name, svc_type, svc_port = service.split(':') + svc_name, svc_type, svc_port, svc_txt_data = service.split(':') set_append(d, 'FILES_%s' % pkg, os.path.join( syscnfdir, 'avahi', @@ -37,7 +36,7 @@ python() { if slp_enabled: set_append(d, 'RRECOMMENDS_%s' % pkg, 'slpd-lite') - svc_name, svc_type, svc_port = service.split(':') + svc_name, svc_type, svc_port, svc_txt_data = service.split(':') set_append(d, 'FILES_%s' % pkg, os.path.join( syscnfdir, 'slp', @@ -64,7 +63,8 @@ python discovery_services_postinstall() { if not os.path.exists(slp_service_dir): os.makedirs(slp_service_dir) - def register_service_avahi(d, service_name, service_type, service_port): + def register_service_avahi(d, service_name, service_type, service_port, service_txt_data): + service_txt_data = service_txt_data.split('|') service_file = os.path.join( avahi_service_dir, '%s.service' % service_name) @@ -76,10 +76,16 @@ python discovery_services_postinstall() { fd.write(' \n') fd.write(' %s\n' % service_type) fd.write(' %s\n' % service_port) + for txt_record in service_txt_data: + if txt_record: + key, value = txt_record.split('=') + if key.strip() and value.strip(): + fd.write(' %s\n' % txt_record) + else: + bb.fatal('Invalid Additional data : \'%s\'. Ignoring!' % txt_record) fd.write(' \n') fd.write('\n') - def register_service_slp(d, service_name, service_type, service_port): service_file = os.path.join( slp_service_dir, @@ -91,12 +97,12 @@ python discovery_services_postinstall() { for service in listvar_to_list(d, 'REGISTERED_SERVICES_%s' % pkg): svc_info = service.split(":") try: - svc_name, svc_type, svc_port = svc_info + svc_name, svc_type, svc_port, svc_txt_data = svc_info except: continue if avahi_enabled: avahi_svc_type = "_" + svc_name + "._" + svc_type - register_service_avahi(d, svc_name, avahi_svc_type, svc_port) + register_service_avahi(d, svc_name, avahi_svc_type, svc_port, svc_txt_data) if slp_enabled: register_service_slp(d, svc_name, svc_type, svc_port) diff --git a/Contrib-Inspur/openbmc/meta-phosphor/classes/obmc-phosphor-image.bbclass b/Contrib-Inspur/openbmc/meta-phosphor/classes/obmc-phosphor-image.bbclass index b428205a..4575f5bf 100644 --- a/Contrib-Inspur/openbmc/meta-phosphor/classes/obmc-phosphor-image.bbclass +++ b/Contrib-Inspur/openbmc/meta-phosphor/classes/obmc-phosphor-image.bbclass @@ -105,6 +105,13 @@ remove_etc_version() { } ROOTFS_POSTPROCESS_COMMAND += "remove_etc_version ; " +# Disable the pager to prevent systemd injecting control characters into the +# output stream that are not interpreted by busybox tools. +disable_systemd_pager() { + echo -e "SYSTEMD_PAGER=\nexport SYSTEMD_PAGER" >> ${IMAGE_ROOTFS}${sysconfdir}/profile +} +ROOTFS_POSTPROCESS_COMMAND += "disable_systemd_pager ; " + # The shadow recipe provides the binaries(like useradd, usermod) needed by the # phosphor-user-manager. ROOTFS_RO_UNNEEDED_remove = "shadow" diff --git a/Contrib-Inspur/openbmc/meta-phosphor/classes/phosphor-networkd-rev.bbclass b/Contrib-Inspur/openbmc/meta-phosphor/classes/phosphor-networkd-rev.bbclass index c36e5ee2..378d2020 100644 --- a/Contrib-Inspur/openbmc/meta-phosphor/classes/phosphor-networkd-rev.bbclass +++ b/Contrib-Inspur/openbmc/meta-phosphor/classes/phosphor-networkd-rev.bbclass @@ -1,2 +1,2 @@ SRC_URI += "git://github.com/openbmc/phosphor-networkd" -SRCREV = "ebb1ad0c20d100b979264c62339ce78bd041c924" +SRCREV = "dbd328d7e037b1af13fb0f20f3708e2261b9e0b6" diff --git a/Contrib-Inspur/openbmc/meta-phosphor/classes/phosphor-rootfs-postcommands.bbclass b/Contrib-Inspur/openbmc/meta-phosphor/classes/phosphor-rootfs-postcommands.bbclass new file mode 100644 index 00000000..3485661b --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-phosphor/classes/phosphor-rootfs-postcommands.bbclass @@ -0,0 +1,10 @@ +# +# This function is intended to add root to corresponding groups if 'debug-tweaks' or 'allow-root-login' is in IMAGE_FEATURES. +# +update_root_user_groups () { + if [ -e ${IMAGE_ROOTFS}/etc/group ]; then + sed -i '/^\(ipmi\|web\|redfish\|priv-admin\):.*:.*:$/s/$/root/' ${IMAGE_ROOTFS}/etc/group + fi +} +# Add root user to the needed groups +ROOTFS_POSTPROCESS_COMMAND += '${@bb.utils.contains_any("IMAGE_FEATURES", [ 'debug-tweaks', 'allow-root-login' ], "update_root_user_groups; ", "", d)}' diff --git a/Contrib-Inspur/openbmc/meta-phosphor/classes/phosphor-software-manager-ubi-fs.bbclass b/Contrib-Inspur/openbmc/meta-phosphor/classes/phosphor-software-manager-ubi-fs.bbclass index 6b0a78ec..17b50da0 100644 --- a/Contrib-Inspur/openbmc/meta-phosphor/classes/phosphor-software-manager-ubi-fs.bbclass +++ b/Contrib-Inspur/openbmc/meta-phosphor/classes/phosphor-software-manager-ubi-fs.bbclass @@ -6,10 +6,6 @@ RDEPENDS_phosphor-software-manager-updater-ubi += " \ mtd-utils-ubifs \ " -FILES_${PN}-updater-ubi += " \ - /usr/local \ - " - # Remove default configs EXTRA_OECONF_remove_df-obmc-ubi-fs += " \ ACTIVE_BMC_MAX_ALLOWED=1 \ @@ -34,19 +30,18 @@ SYSTEMD_SERVICE_phosphor-software-manager-updater-ubi += " \ reboot-guard-enable.service \ reboot-guard-disable.service \ force-reboot.service \ - usr-local.mount \ " # Name of the mtd device where the ubi volumes should be created BMC_RW_MTD ??= "bmc" BMC_RO_MTD ??= "bmc" BMC_KERNEL_MTD ??= "bmc" +FLASH_SIZE ?= "32768" +DISTROOVERRIDES .= ":flash-${FLASH_SIZE}" BMC_RW_SIZE ??= "0x600000" +BMC_RW_SIZE_flash-131072 = "0x2000000" SYSTEMD_SUBSTITUTIONS += "RW_MTD:${BMC_RW_MTD}:obmc-flash-bmc-ubirw.service" SYSTEMD_SUBSTITUTIONS += "RO_MTD:${BMC_RO_MTD}:obmc-flash-bmc-ubiro@.service" SYSTEMD_SUBSTITUTIONS += "KERNEL_MTD:${BMC_KERNEL_MTD}:obmc-flash-bmc-ubiro@.service" SYSTEMD_SUBSTITUTIONS += "RW_SIZE:${BMC_RW_SIZE}:obmc-flash-bmc-ubirw.service" -do_install_append() { - install -d ${D}/usr/local -} diff --git a/Contrib-Inspur/openbmc/meta-phosphor/classes/skeleton-rev.bbclass b/Contrib-Inspur/openbmc/meta-phosphor/classes/skeleton-rev.bbclass index 181a892f..4ae3c03a 100644 --- a/Contrib-Inspur/openbmc/meta-phosphor/classes/skeleton-rev.bbclass +++ b/Contrib-Inspur/openbmc/meta-phosphor/classes/skeleton-rev.bbclass @@ -1,4 +1,4 @@ -SRCREV ?= "c8334f3258cb80839e49defe386d33c196929215" +SRCREV ?= "1146f8c6e5f955fb10f5e846de31052be942a7f2" SKELETON_URI ?= "git://github.com/openbmc/skeleton" LICENSE = "Apache-2.0" LIC_FILES_CHKSUM = "file://${WORKDIR}/git/LICENSE;md5=e3fc50a88d0a364313df4b21ef20c29e" diff --git a/Contrib-Inspur/openbmc/meta-phosphor/conf/distro/include/phosphor-base.inc b/Contrib-Inspur/openbmc/meta-phosphor/conf/distro/include/phosphor-base.inc index b6f15512..25672efc 100644 --- a/Contrib-Inspur/openbmc/meta-phosphor/conf/distro/include/phosphor-base.inc +++ b/Contrib-Inspur/openbmc/meta-phosphor/conf/distro/include/phosphor-base.inc @@ -72,6 +72,7 @@ WARN_QA_remove = "${WARN_TO_ERROR_QA}" ERROR_QA_append = " ${WARN_TO_ERROR_QA}" require conf/distro/include/no-static-libs.inc +require conf/distro/include/yocto-uninative.inc DISTRO = "openbmc-phosphor" DISTRO_NAME = "Phosphor OpenBMC (Phosphor OpenBMC Project Reference Distro)" @@ -113,7 +114,7 @@ DISTRO_FEATURES_DEFAULT = " \ libc-inet-anl \ " -DISTRO_FEATURES = " \ +DISTRO_FEATURES += " \ ${DISTRO_FEATURES_DEFAULT} \ ${DISTRO_FEATURES_LIBC} \ ${DISTRO_FEATURES_OBMC} \ @@ -133,7 +134,10 @@ include conf/distro/include/openbmc-phosphor/${MACHINE}.inc KERNEL_FEATURES_append = " phosphor-gpio-keys" KERNEL_FEATURES_remove_qemuall = " phosphor-gpio-keys" -IMAGE_CLASSES_append = " image_types_phosphor" +IMAGE_CLASSES_append = " image_types_phosphor phosphor-rootfs-postcommands" +IMAGE_CLASSES_append_npcm7xx = " image_types_phosphor_nuvoton" + +IMAGE_INSTALL_append = " dbus-broker" # OpenBMC uses a couple recipes from meta-virtualization # but we do not actually want any virtualization support @@ -144,8 +148,8 @@ SKIP_META_VIRT_SANITY_CHECK = "1" # Skip the udev database by default. It adds around 2MB # compressed to the root filesystem, and probably doesn't # make sense on a BMC anyway. -BAD_RECOMMENDATIONS_pn-obmc-phosphor-image = "udev-hwdb" -BAD_RECOMMENDATIONS_pn-obmc-phosphor-image += "shared-mime-info" +BAD_RECOMMENDATIONS += "udev-hwdb" +BAD_RECOMMENDATIONS += "shared-mime-info" LAYER_CONF_VERSION ?= "8" diff --git a/Contrib-Inspur/openbmc/meta-phosphor/conf/layer.conf b/Contrib-Inspur/openbmc/meta-phosphor/conf/layer.conf index 0df82a72..d3523065 100644 --- a/Contrib-Inspur/openbmc/meta-phosphor/conf/layer.conf +++ b/Contrib-Inspur/openbmc/meta-phosphor/conf/layer.conf @@ -8,10 +8,7 @@ BBFILES += "${LAYERDIR}/recipes-*/*/*.bb \ BBFILE_COLLECTIONS += "phosphor-layer" BBFILE_PATTERN_phosphor-layer := "^${LAYERDIR}/" LAYERVERSION_phosphor-layer = "1" -LAYERSERIES_COMPAT_phosphor-layer = "thud warrior" - -# Provide a variable that points the base of the phosphor layer. -PHOSPHORBASE = '${@os.path.normpath("${LAYERDIR}/")}' +LAYERSERIES_COMPAT_phosphor-layer = "warrior zeus" IMAGE_FEATURES[validitems] += "tools-profile" diff --git a/Contrib-Inspur/openbmc/meta-phosphor/conf/machine/include/obmc-bsp-common.inc b/Contrib-Inspur/openbmc/meta-phosphor/conf/machine/include/obmc-bsp-common.inc index 7162b5d8..4bafeafc 100644 --- a/Contrib-Inspur/openbmc/meta-phosphor/conf/machine/include/obmc-bsp-common.inc +++ b/Contrib-Inspur/openbmc/meta-phosphor/conf/machine/include/obmc-bsp-common.inc @@ -10,7 +10,7 @@ IMAGE_FSTYPES += "${@bb.utils.contains('DISTRO_FEATURES', \ 'mtd-ubi mtd-ubi-tar', \ 'mtd-static mtd-static-tar mtd-static-alltar', d)}" -INITRAMFS_CTYPE ?= "lzma" -INITRAMFS_FSTYPES += "cpio.${INITRAMFS_CTYPE}" -INITRAMFS_IMAGE ?= "obmc-phosphor-initramfs" -INITRAMFS_IMAGE_df-obmc-ubi-fs ?= "" +INITRAMFS_CTYPE ?= "xz" +INITRAMFS_FSTYPES = "cpio.${INITRAMFS_CTYPE}" +INITRAMFS_IMAGE = "obmc-phosphor-initramfs" +INITRAMFS_IMAGE_df-obmc-ubi-fs = "" diff --git a/Contrib-Inspur/openbmc/meta-phosphor/nuvoton-layer/recipes-phosphor/host/phosphor-host-postd_%.bbappend b/Contrib-Inspur/openbmc/meta-phosphor/nuvoton-layer/recipes-phosphor/host/phosphor-host-postd_%.bbappend new file mode 100644 index 00000000..60d56101 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-phosphor/nuvoton-layer/recipes-phosphor/host/phosphor-host-postd_%.bbappend @@ -0,0 +1,3 @@ +FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:" + +SNOOP_DEVICE = "npcm7xx-lpc-bpc0" diff --git a/Contrib-Inspur/openbmc/meta-phosphor/nuvoton-layer/recipes-phosphor/images/obmc-phosphor-image.bbappend b/Contrib-Inspur/openbmc/meta-phosphor/nuvoton-layer/recipes-phosphor/images/obmc-phosphor-image.bbappend deleted file mode 100644 index e60401e8..00000000 --- a/Contrib-Inspur/openbmc/meta-phosphor/nuvoton-layer/recipes-phosphor/images/obmc-phosphor-image.bbappend +++ /dev/null @@ -1,70 +0,0 @@ -EXTRA_DEPENDS = "" - -EXTRA_DEPENDS_npcm7xx = " \ - npcm7xx-bootblock:do_deploy \ - npcm7xx-bingo-native:do_populate_sysroot \ - " - -UBOOT_BINARY := "u-boot.${UBOOT_SUFFIX}" - -BOOTBLOCK = "Poleg_bootblock.bin" - - -FULL_SUFFIX = "full" -MERGED_SUFFIX = "merged" - -UBOOT_SUFFIX_append_npcm7xx = ".${MERGED_SUFFIX}" - - -do_prepare_bootloaders() { - -} - - -# Prepare the Bootblock and U-Boot images using npcm7xx-bingo - -do_prepare_bootloaders_npcm7xx() { - - currdir=`pwd` - cd ${DEPLOY_DIR_IMAGE} - - bingo ${STAGING_DIR_NATIVE}/${bindir}/BootBlockAndHeader_EB.xml \ - -o ${DEPLOY_DIR_IMAGE}/${BOOTBLOCK}.${FULL_SUFFIX} - - bingo ${STAGING_DIR_NATIVE}/${bindir}/UbootHeader_EB.xml \ - -o ${DEPLOY_DIR_IMAGE}/${UBOOT_BINARY}.${FULL_SUFFIX} - - bingo ${STAGING_DIR_NATIVE}/${bindir}/mergedBootBlockAndUboot.xml \ - -o ${DEPLOY_DIR_IMAGE}/${UBOOT_BINARY}.${MERGED_SUFFIX} - - cd $currdir -} - - -do_prepare_bootloaders[depends] += "${EXTRA_DEPENDS}" - - -addtask do_prepare_bootloaders before do_generate_static after do_generate_rwfs_static - - -# Include the full bootblock and u-boot in the final static image - -python do_generate_static_append_npcm7xx() { - - _append_image(os.path.join(d.getVar('DEPLOY_DIR_IMAGE', True), - 'u-boot.%s' % d.getVar('UBOOT_SUFFIX',True)), - int(d.getVar('FLASH_UBOOT_OFFSET', True)), - int(d.getVar('FLASH_KERNEL_OFFSET', True))) -} - -do_make_ubi_append_npcm7xx() { - - # Concatenate the uboot and ubi partitions - dd bs=1k conv=notrunc seek=${FLASH_UBOOT_OFFSET} \ - if=${DEPLOY_DIR_IMAGE}/u-boot.${UBOOT_SUFFIX} \ - of=${IMGDEPLOYDIR}/${IMAGE_NAME}.ubi.mtd -} - -do_make_ubi[depends] += "${PN}:do_prepare_bootloaders" -do_generate_ubi_tar[depends] += "${PN}:do_prepare_bootloaders" -do_generate_static_tar[depends] += "${PN}:do_prepare_bootloaders" diff --git a/Contrib-Inspur/openbmc/meta-phosphor/raspberrypi/recipes-kernel/linux/linux-raspberrypi/phosphor-gpio-keys.cfg b/Contrib-Inspur/openbmc/meta-phosphor/raspberrypi/recipes-kernel/linux/linux-raspberrypi/phosphor-gpio-keys.cfg new file mode 100644 index 00000000..f5c01bed --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-phosphor/raspberrypi/recipes-kernel/linux/linux-raspberrypi/phosphor-gpio-keys.cfg @@ -0,0 +1,7 @@ +CONFIG_INPUT_KEYBOARD=y +# CONFIG_INPUT_LEDS is not set +# CONFIG_INPUT_MOUSDEV is not set +CONFIG_INPUT_EVDEV=y +# CONFIG_KEYBOARD_ATKBD is not set +CONFIG_KEYBOARD_GPIO=y +# CONFIG_INPUT_MOUSE is not set diff --git a/Contrib-Inspur/openbmc/meta-phosphor/raspberrypi/recipes-kernel/linux/linux-raspberrypi/phosphor-gpio-keys.scc b/Contrib-Inspur/openbmc/meta-phosphor/raspberrypi/recipes-kernel/linux/linux-raspberrypi/phosphor-gpio-keys.scc new file mode 100644 index 00000000..78961af7 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-phosphor/raspberrypi/recipes-kernel/linux/linux-raspberrypi/phosphor-gpio-keys.scc @@ -0,0 +1,2 @@ +define KFEATURE_DESCRIPTION "Enable gpio-keys" +kconf non-hardware phosphor-gpio-keys.cfg diff --git a/Contrib-Inspur/openbmc/meta-phosphor/raspberrypi/recipes-kernel/linux/linux-raspberrypi_%.bbappend b/Contrib-Inspur/openbmc/meta-phosphor/raspberrypi/recipes-kernel/linux/linux-raspberrypi_%.bbappend new file mode 100644 index 00000000..71e208cd --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-phosphor/raspberrypi/recipes-kernel/linux/linux-raspberrypi_%.bbappend @@ -0,0 +1,4 @@ +FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:" + +SRC_URI += "file://phosphor-gpio-keys.scc" +SRC_URI += "file://phosphor-gpio-keys.cfg" diff --git a/Contrib-Inspur/openbmc/meta-phosphor/recipes-connectivity/avahi/avahi-daemon/avahi-daemon-override.conf b/Contrib-Inspur/openbmc/meta-phosphor/recipes-connectivity/avahi/avahi-daemon/avahi-daemon-override.conf new file mode 100644 index 00000000..9a594c6e --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-phosphor/recipes-connectivity/avahi/avahi-daemon/avahi-daemon-override.conf @@ -0,0 +1,3 @@ +[Service] +ExecStartPre=/bin/sh -c "grep -q avahi: /etc/group || /usr/sbin/addgroup --system avahi" +ExecStartPre=/bin/sh -c "grep -q avahi: /etc/passwd || /usr/sbin/adduser --system --no-create-home --ingroup avahi avahi" diff --git a/Contrib-Inspur/openbmc/meta-phosphor/recipes-connectivity/avahi/avahi_%.bbappend b/Contrib-Inspur/openbmc/meta-phosphor/recipes-connectivity/avahi/avahi_%.bbappend new file mode 100644 index 00000000..ee15899f --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-phosphor/recipes-connectivity/avahi/avahi_%.bbappend @@ -0,0 +1,11 @@ +FILESEXTRAPATHS_prepend := "${THISDIR}/avahi-daemon:" + +SRC_URI += "file://avahi-daemon-override.conf" + +FILES_avahi-daemon_append += "${systemd_system_unitdir}/avahi-daemon.service.d/avahi-daemon-override.conf" + +do_install_append() { + + install -m 644 -D ${WORKDIR}/avahi-daemon-override.conf \ + ${D}${systemd_system_unitdir}/avahi-daemon.service.d/avahi-daemon-override.conf +} diff --git a/Contrib-Inspur/openbmc/meta-phosphor/recipes-core/dropbear/dropbear/dropbear.default b/Contrib-Inspur/openbmc/meta-phosphor/recipes-core/dropbear/dropbear/dropbear.default new file mode 100644 index 00000000..b2f1ecc7 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-phosphor/recipes-core/dropbear/dropbear/dropbear.default @@ -0,0 +1 @@ +DROPBEAR_EXTRA_ARGS="-G priv-admin" diff --git a/Contrib-Inspur/openbmc/meta-phosphor/recipes-core/dropbear/dropbear_%.bbappend b/Contrib-Inspur/openbmc/meta-phosphor/recipes-core/dropbear/dropbear_%.bbappend index cab454af..e3749acc 100644 --- a/Contrib-Inspur/openbmc/meta-phosphor/recipes-core/dropbear/dropbear_%.bbappend +++ b/Contrib-Inspur/openbmc/meta-phosphor/recipes-core/dropbear/dropbear_%.bbappend @@ -3,4 +3,6 @@ # to yocto 2.5 or later which will pull in the latest dropbear code. FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:" SRC_URI += "file://dropbearkey.service \ - file://localoptions.h" + file://localoptions.h \ + file://dropbear.default \ + " diff --git a/Contrib-Inspur/openbmc/meta-phosphor/recipes-core/packagegroups/packagegroup-core-standalone-sdk-target.bbappend b/Contrib-Inspur/openbmc/meta-phosphor/recipes-core/packagegroups/packagegroup-core-standalone-sdk-target.bbappend index 7eef4f9b..d62dc998 100644 --- a/Contrib-Inspur/openbmc/meta-phosphor/recipes-core/packagegroups/packagegroup-core-standalone-sdk-target.bbappend +++ b/Contrib-Inspur/openbmc/meta-phosphor/recipes-core/packagegroups/packagegroup-core-standalone-sdk-target.bbappend @@ -1 +1 @@ -RRECOMMENDS_${PN}_append = " gtest sdbusplus phosphor-logging libstdc++-staticdev" +RRECOMMENDS_${PN}_append = " googletest sdbusplus phosphor-logging libstdc++-staticdev" diff --git a/Contrib-Inspur/openbmc/meta-phosphor/recipes-core/systemd/obmc-targets.bb b/Contrib-Inspur/openbmc/meta-phosphor/recipes-core/systemd/obmc-targets.bb index 00c21b93..2ab0c22c 100644 --- a/Contrib-Inspur/openbmc/meta-phosphor/recipes-core/systemd/obmc-targets.bb +++ b/Contrib-Inspur/openbmc/meta-phosphor/recipes-core/systemd/obmc-targets.bb @@ -3,88 +3,7 @@ DESCRIPTION = "Provides well known Systemd synchronization points for OpenBMC." HOMEPAGE = "http://github.com/openbmc" PR = "r1" LICENSE = "Apache-2.0" -LIC_FILES_CHKSUM = "file://${PHOSPHORBASE}/COPYING.apache-2.0;md5=34400b68072d710fecd0a2940a0d1658" +LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10" -inherit obmc-phosphor-systemd -inherit allarch - -# Chassis power synchronization targets -# - start-pre: Services to run before we start power on process -# - start: Services to run to do the chassis power on -# - on: Services to run once power is on -# - stop-pre,stop,off: Same as above but applied to powering off -# - reset-on: Services to check if chassis power is on after bmc reset -CHASSIS_SYNCH_TARGETS = "start-pre start on stop-pre stop off reset-on" - -# Chassis action power targets -# - on: Services to run to power on the chassis -# - off: Services to run to power off the chassis -# - powered-off: Services to run once chassis power is off -# - reset: Services to check chassis power state and update chassis "on" target -# - hard-off: Services to force an immediate power off of the chassis -CHASSIS_ACTION_TARGETS = "poweron poweroff powered-off powerreset hard-poweroff" - -# Track all host synchronization point targets -# - start-pre: Services to run before we start host boot -# - starting: Services to run to do the host boot -# - started: Services to run once the host is booted -# - stop-pre,stopping,stopped: Same as above but applied to shutting down the host -# - reset-running: Services to check if host is running after bmc reset -HOST_SYNCH_TARGETS = "start-pre starting started stop-pre stopping stopped reset-running" - -# Track all host action targets -# - start: Will run startmin target, this target used for any additional -# services that user needs for an initial power on of host. -# For example, resetting the host reboot count could be put in -# this target so on any fresh power on, this count is reset. -# - startmin: Minimum services required to start the host. This target will -# be called by reboot and start target. -# - stop: Services to run to shutdown the host -# - quiesce: Target to enter on host boot failure -# - shutdown: Tell host to shutdown, then stop system -# - reset: Services to check if host is running and update host "start" target -# - crash: Target to run when host crashes. it is very much similar to -# quiesce target but the only delta is that this target contains -# multiple services and one of them is the quiesce target. -# - timeout: Target to run when host watchdog times out -# - reboot: Reboot the host -HOST_ACTION_TARGETS = "start startmin stop quiesce reset shutdown crash timeout reboot" - -CHASSIS_SYNCH_FMT = "obmc-power-{0}@.target" -CHASSIS_ACTION_FMT = "obmc-chassis-{0}@.target" -HOST_SYNCH_FMT = "obmc-host-{0}@.target" -HOST_ACTION_FMT = "obmc-host-{0}@.target" - -CHASSIS_LINK_SYNCH_FMT = "${CHASSIS_SYNCH_FMT}:obmc-power-{0}@{1}.target" -CHASSIS_LINK_ACTION_FMT = "${CHASSIS_ACTION_FMT}:obmc-chassis-{0}@{1}.target" -HOST_LINK_SYNCH_FMT = "${HOST_SYNCH_FMT}:obmc-host-{0}@{1}.target" -HOST_LINK_ACTION_FMT = "${HOST_ACTION_FMT}:obmc-host-{0}@{1}.target" -FAN_LINK_FMT = "obmc-fan-control-ready@.target:obmc-fan-control-ready@{0}.target" - -# Targets to be executed on checkstop and watchdog timeout -HOST_ERROR_TARGETS = "crash timeout" - -QUIESCE_TMPL = "obmc-host-quiesce@.target" -CRASH_TIMEOUT_TGTFMT = "obmc-host-{0}@{1}.target" -QUIESCE_INSTFMT = "obmc-host-quiesce@{1}.target" -QUIESCE_FMT = "../${QUIESCE_TMPL}:${CRASH_TIMEOUT_TGTFMT}.wants/${QUIESCE_INSTFMT}" - -SYSTEMD_SERVICE_${PN} += " \ - obmc-mapper.target \ - obmc-fans-ready.target \ - obmc-fan-control.target \ - obmc-fan-control-ready@.target \ - obmc-fan-watchdog-takeover.target \ - " - -SYSTEMD_SERVICE_${PN} += "${@compose_list(d, 'CHASSIS_SYNCH_FMT', 'CHASSIS_SYNCH_TARGETS')}" -SYSTEMD_SERVICE_${PN} += "${@compose_list(d, 'CHASSIS_ACTION_FMT', 'CHASSIS_ACTION_TARGETS')}" -SYSTEMD_SERVICE_${PN} += "${@compose_list(d, 'HOST_SYNCH_FMT', 'HOST_SYNCH_TARGETS')}" -SYSTEMD_SERVICE_${PN} += "${@compose_list(d, 'HOST_ACTION_FMT', 'HOST_ACTION_TARGETS')}" - -SYSTEMD_LINK_${PN} += "${@compose_list(d, 'CHASSIS_LINK_SYNCH_FMT', 'CHASSIS_SYNCH_TARGETS', 'OBMC_CHASSIS_INSTANCES')}" -SYSTEMD_LINK_${PN} += "${@compose_list(d, 'CHASSIS_LINK_ACTION_FMT', 'CHASSIS_ACTION_TARGETS', 'OBMC_CHASSIS_INSTANCES')}" -SYSTEMD_LINK_${PN} += "${@compose_list(d, 'HOST_LINK_SYNCH_FMT', 'HOST_SYNCH_TARGETS', 'OBMC_HOST_INSTANCES')}" -SYSTEMD_LINK_${PN} += "${@compose_list(d, 'HOST_LINK_ACTION_FMT', 'HOST_ACTION_TARGETS', 'OBMC_HOST_INSTANCES')}" -SYSTEMD_LINK_${PN} += "${@compose_list(d, 'FAN_LINK_FMT', 'OBMC_CHASSIS_INSTANCES')}" -SYSTEMD_LINK_${PN} += "${@compose_list(d, 'QUIESCE_FMT', 'HOST_ERROR_TARGETS', 'OBMC_HOST_INSTANCES')}" +# TODO Will be removed once dependencies in other layers on this recipe are moved +DEPENDS += "phosphor-state-manager" diff --git a/Contrib-Inspur/openbmc/meta-phosphor/recipes-core/systemd/obmc-targets/obmc-chassis-hard-poweroff@.target b/Contrib-Inspur/openbmc/meta-phosphor/recipes-core/systemd/obmc-targets/obmc-chassis-hard-poweroff@.target deleted file mode 100644 index a033f605..00000000 --- a/Contrib-Inspur/openbmc/meta-phosphor/recipes-core/systemd/obmc-targets/obmc-chassis-hard-poweroff@.target +++ /dev/null @@ -1,11 +0,0 @@ -[Unit] -Description=Chassis%i (Hard Power Off) -Wants=multi-user.target -After=multi-user.target -Wants=mapper-wait@-xyz-openbmc_project-state-chassis%i.service -After=mapper-wait@-xyz-openbmc_project-state-chassis%i.service -Conflicts=obmc-chassis-poweron@%i.target -Conflicts=obmc-chassis-powerreset@%i.target -Conflicts=obmc-host-shutdown@%i.target -Conflicts=xyz.openbmc_project.Ipmi.Internal.SoftPowerOff.service -RefuseManualStop=yes diff --git a/Contrib-Inspur/openbmc/meta-phosphor/recipes-core/systemd/obmc-targets/obmc-chassis-powered-off@.target b/Contrib-Inspur/openbmc/meta-phosphor/recipes-core/systemd/obmc-targets/obmc-chassis-powered-off@.target deleted file mode 100644 index c043f374..00000000 --- a/Contrib-Inspur/openbmc/meta-phosphor/recipes-core/systemd/obmc-targets/obmc-chassis-powered-off@.target +++ /dev/null @@ -1,9 +0,0 @@ -[Unit] -Description=Chassis%i (Powered Off) -Wants=multi-user.target -After=multi-user.target -Wants=mapper-wait@-xyz-openbmc_project-state-chassis%i.service -After=mapper-wait@-xyz-openbmc_project-state-chassis%i.service -Conflicts=obmc-chassis-poweron@%i.target -Conflicts=obmc-chassis-powerreset@%i.target -RefuseManualStop=yes diff --git a/Contrib-Inspur/openbmc/meta-phosphor/recipes-core/systemd/obmc-targets/obmc-chassis-poweroff@.target b/Contrib-Inspur/openbmc/meta-phosphor/recipes-core/systemd/obmc-targets/obmc-chassis-poweroff@.target deleted file mode 100644 index 69209e64..00000000 --- a/Contrib-Inspur/openbmc/meta-phosphor/recipes-core/systemd/obmc-targets/obmc-chassis-poweroff@.target +++ /dev/null @@ -1,9 +0,0 @@ -[Unit] -Description=Chassis%i (Power Off) -Wants=multi-user.target -After=multi-user.target -Wants=mapper-wait@-xyz-openbmc_project-state-chassis%i.service -After=mapper-wait@-xyz-openbmc_project-state-chassis%i.service -Conflicts=obmc-chassis-poweron@%i.target -Conflicts=obmc-chassis-powerreset@%i.target -RefuseManualStop=yes diff --git a/Contrib-Inspur/openbmc/meta-phosphor/recipes-core/systemd/obmc-targets/obmc-chassis-poweron@.target b/Contrib-Inspur/openbmc/meta-phosphor/recipes-core/systemd/obmc-targets/obmc-chassis-poweron@.target deleted file mode 100644 index cd7c2fc4..00000000 --- a/Contrib-Inspur/openbmc/meta-phosphor/recipes-core/systemd/obmc-targets/obmc-chassis-poweron@.target +++ /dev/null @@ -1,12 +0,0 @@ -[Unit] -Description=Chassis%i (Power On) -Wants=multi-user.target -After=multi-user.target -Wants=mapper-wait@-xyz-openbmc_project-state-chassis%i.service -After=mapper-wait@-xyz-openbmc_project-state-chassis%i.service -Wants=mapper-subtree-remove@-xyz-openbmc\x5fproject-software\x3Axyz.openbmc_project.Software.ActivationBlocksTransition.service -After=mapper-subtree-remove@-xyz-openbmc\x5fproject-software\x3Axyz.openbmc_project.Software.ActivationBlocksTransition.service -Conflicts=obmc-chassis-poweroff@%i.target -RefuseManualStop=yes -OnFailure=obmc-chassis-poweroff@%i.target -OnFailureJobMode=flush diff --git a/Contrib-Inspur/openbmc/meta-phosphor/recipes-core/systemd/obmc-targets/obmc-chassis-powerreset@.target b/Contrib-Inspur/openbmc/meta-phosphor/recipes-core/systemd/obmc-targets/obmc-chassis-powerreset@.target deleted file mode 100644 index 03036f30..00000000 --- a/Contrib-Inspur/openbmc/meta-phosphor/recipes-core/systemd/obmc-targets/obmc-chassis-powerreset@.target +++ /dev/null @@ -1,7 +0,0 @@ -[Unit] -Description=Chassis%i (Reset Check) -Conflicts=obmc-chassis-poweroff@%i.target -RefuseManualStop=yes - -[Install] -WantedBy=multi-user.target diff --git a/Contrib-Inspur/openbmc/meta-phosphor/recipes-core/systemd/obmc-targets/obmc-fan-control-ready@.target b/Contrib-Inspur/openbmc/meta-phosphor/recipes-core/systemd/obmc-targets/obmc-fan-control-ready@.target deleted file mode 100644 index e041a550..00000000 --- a/Contrib-Inspur/openbmc/meta-phosphor/recipes-core/systemd/obmc-targets/obmc-fan-control-ready@.target +++ /dev/null @@ -1,4 +0,0 @@ -[Unit] -Description=Fan Control Ready -RefuseManualStop=yes -Conflicts=obmc-chassis-powered-off@%i.target diff --git a/Contrib-Inspur/openbmc/meta-phosphor/recipes-core/systemd/obmc-targets/obmc-fan-control.target b/Contrib-Inspur/openbmc/meta-phosphor/recipes-core/systemd/obmc-targets/obmc-fan-control.target deleted file mode 100644 index 50665db4..00000000 --- a/Contrib-Inspur/openbmc/meta-phosphor/recipes-core/systemd/obmc-targets/obmc-fan-control.target +++ /dev/null @@ -1,4 +0,0 @@ -[Unit] -Description=Fan Control -RefuseManualStart=yes -RefuseManualStop=yes diff --git a/Contrib-Inspur/openbmc/meta-phosphor/recipes-core/systemd/obmc-targets/obmc-fan-watchdog-takeover.target b/Contrib-Inspur/openbmc/meta-phosphor/recipes-core/systemd/obmc-targets/obmc-fan-watchdog-takeover.target deleted file mode 100644 index 80340833..00000000 --- a/Contrib-Inspur/openbmc/meta-phosphor/recipes-core/systemd/obmc-targets/obmc-fan-watchdog-takeover.target +++ /dev/null @@ -1,6 +0,0 @@ -#The system implementation should start this target when dynamic fan control -#is no longer desired or possible. It should also add units to this target -#that enabled continued operation after dynamic fan control is no longer -#desired or possible. -[Unit] -Description=Fan watchdog takeover target diff --git a/Contrib-Inspur/openbmc/meta-phosphor/recipes-core/systemd/obmc-targets/obmc-fans-ready.target b/Contrib-Inspur/openbmc/meta-phosphor/recipes-core/systemd/obmc-targets/obmc-fans-ready.target deleted file mode 100644 index 59e61c62..00000000 --- a/Contrib-Inspur/openbmc/meta-phosphor/recipes-core/systemd/obmc-targets/obmc-fans-ready.target +++ /dev/null @@ -1,4 +0,0 @@ -[Unit] -Description=Fans Ready -RefuseManualStart=yes -RefuseManualStop=yes diff --git a/Contrib-Inspur/openbmc/meta-phosphor/recipes-core/systemd/obmc-targets/obmc-host-crash@.target b/Contrib-Inspur/openbmc/meta-phosphor/recipes-core/systemd/obmc-targets/obmc-host-crash@.target deleted file mode 100644 index ea3798b5..00000000 --- a/Contrib-Inspur/openbmc/meta-phosphor/recipes-core/systemd/obmc-targets/obmc-host-crash@.target +++ /dev/null @@ -1,4 +0,0 @@ -[Unit] -Description=Host instance %i crashed -Conflicts=obmc-chassis-poweroff@%i.target -RefuseManualStop=yes diff --git a/Contrib-Inspur/openbmc/meta-phosphor/recipes-core/systemd/obmc-targets/obmc-host-quiesce@.target b/Contrib-Inspur/openbmc/meta-phosphor/recipes-core/systemd/obmc-targets/obmc-host-quiesce@.target deleted file mode 100644 index 900995b9..00000000 --- a/Contrib-Inspur/openbmc/meta-phosphor/recipes-core/systemd/obmc-targets/obmc-host-quiesce@.target +++ /dev/null @@ -1,6 +0,0 @@ -[Unit] -Description=Quiesce Target -Wants=multi-user.target -After=multi-user.target -RefuseManualStop=yes -Conflicts=obmc-chassis-poweroff@%i.target diff --git a/Contrib-Inspur/openbmc/meta-phosphor/recipes-core/systemd/obmc-targets/obmc-host-reboot@.target b/Contrib-Inspur/openbmc/meta-phosphor/recipes-core/systemd/obmc-targets/obmc-host-reboot@.target deleted file mode 100644 index 8e749e6e..00000000 --- a/Contrib-Inspur/openbmc/meta-phosphor/recipes-core/systemd/obmc-targets/obmc-host-reboot@.target +++ /dev/null @@ -1,8 +0,0 @@ -[Unit] -Description=Reboot Host%i -Wants=multi-user.target -After=multi-user.target -Conflicts=obmc-host-startmin@%i.target -RefuseManualStop=yes -OnFailure=obmc-chassis-poweroff@%i.target -OnFailureJobMode=flush diff --git a/Contrib-Inspur/openbmc/meta-phosphor/recipes-core/systemd/obmc-targets/obmc-host-reset-running@.target b/Contrib-Inspur/openbmc/meta-phosphor/recipes-core/systemd/obmc-targets/obmc-host-reset-running@.target deleted file mode 100644 index 94bb2b13..00000000 --- a/Contrib-Inspur/openbmc/meta-phosphor/recipes-core/systemd/obmc-targets/obmc-host-reset-running@.target +++ /dev/null @@ -1,5 +0,0 @@ -[Unit] -Description=Host%i running after reset -Conflicts=obmc-host-stop@%i.target -RefuseManualStart=yes -RefuseManualStop=yes diff --git a/Contrib-Inspur/openbmc/meta-phosphor/recipes-core/systemd/obmc-targets/obmc-host-reset@.target b/Contrib-Inspur/openbmc/meta-phosphor/recipes-core/systemd/obmc-targets/obmc-host-reset@.target deleted file mode 100644 index 84d87016..00000000 --- a/Contrib-Inspur/openbmc/meta-phosphor/recipes-core/systemd/obmc-targets/obmc-host-reset@.target +++ /dev/null @@ -1,7 +0,0 @@ -[Unit] -Description=Host%i (Reset Check) -Conflicts=obmc-host-stop@%i.target -RefuseManualStop=yes - -[Install] -WantedBy=multi-user.target diff --git a/Contrib-Inspur/openbmc/meta-phosphor/recipes-core/systemd/obmc-targets/obmc-host-shutdown@.target b/Contrib-Inspur/openbmc/meta-phosphor/recipes-core/systemd/obmc-targets/obmc-host-shutdown@.target deleted file mode 100644 index 012d364a..00000000 --- a/Contrib-Inspur/openbmc/meta-phosphor/recipes-core/systemd/obmc-targets/obmc-host-shutdown@.target +++ /dev/null @@ -1,6 +0,0 @@ -[Unit] -Description=Power%i Host Off -Wants=multi-user.target -RefuseManualStop=yes -OnFailure=obmc-chassis-poweroff@%i.target -OnFailureJobMode=flush diff --git a/Contrib-Inspur/openbmc/meta-phosphor/recipes-core/systemd/obmc-targets/obmc-host-start-pre@.target b/Contrib-Inspur/openbmc/meta-phosphor/recipes-core/systemd/obmc-targets/obmc-host-start-pre@.target deleted file mode 100644 index fe551461..00000000 --- a/Contrib-Inspur/openbmc/meta-phosphor/recipes-core/systemd/obmc-targets/obmc-host-start-pre@.target +++ /dev/null @@ -1,7 +0,0 @@ -[Unit] -Description=Start Host%i (Pre) -Wants=multi-user.target -After=multi-user.target -Conflicts=obmc-host-stop@%i.target -RefuseManualStart=yes -RefuseManualStop=yes diff --git a/Contrib-Inspur/openbmc/meta-phosphor/recipes-core/systemd/obmc-targets/obmc-host-start@.target b/Contrib-Inspur/openbmc/meta-phosphor/recipes-core/systemd/obmc-targets/obmc-host-start@.target deleted file mode 100644 index ff1486b9..00000000 --- a/Contrib-Inspur/openbmc/meta-phosphor/recipes-core/systemd/obmc-targets/obmc-host-start@.target +++ /dev/null @@ -1,8 +0,0 @@ -[Unit] -Description=Start Host%i -Wants=multi-user.target -After=multi-user.target -Conflicts=obmc-host-stop@%i.target -RefuseManualStop=yes -OnFailure=obmc-host-quiesce@%i.target -OnFailureJobMode=flush diff --git a/Contrib-Inspur/openbmc/meta-phosphor/recipes-core/systemd/obmc-targets/obmc-host-started@.target b/Contrib-Inspur/openbmc/meta-phosphor/recipes-core/systemd/obmc-targets/obmc-host-started@.target deleted file mode 100644 index fcd51be8..00000000 --- a/Contrib-Inspur/openbmc/meta-phosphor/recipes-core/systemd/obmc-targets/obmc-host-started@.target +++ /dev/null @@ -1,7 +0,0 @@ -[Unit] -Description=Host%i (Started) -Wants=multi-user.target -After=obmc-host-starting@%i.target -Conflicts=obmc-host-stop@%i.target -RefuseManualStart=yes -RefuseManualStop=yes diff --git a/Contrib-Inspur/openbmc/meta-phosphor/recipes-core/systemd/obmc-targets/obmc-host-starting@.target b/Contrib-Inspur/openbmc/meta-phosphor/recipes-core/systemd/obmc-targets/obmc-host-starting@.target deleted file mode 100644 index 52e7bea8..00000000 --- a/Contrib-Inspur/openbmc/meta-phosphor/recipes-core/systemd/obmc-targets/obmc-host-starting@.target +++ /dev/null @@ -1,7 +0,0 @@ -[Unit] -Description=Host%i (Starting) -Wants=multi-user.target -After=obmc-host-start-pre@%i.target -Conflicts=obmc-host-stop@%i.target -RefuseManualStart=yes -RefuseManualStop=yes diff --git a/Contrib-Inspur/openbmc/meta-phosphor/recipes-core/systemd/obmc-targets/obmc-host-startmin@.target b/Contrib-Inspur/openbmc/meta-phosphor/recipes-core/systemd/obmc-targets/obmc-host-startmin@.target deleted file mode 100644 index 88ccb259..00000000 --- a/Contrib-Inspur/openbmc/meta-phosphor/recipes-core/systemd/obmc-targets/obmc-host-startmin@.target +++ /dev/null @@ -1,8 +0,0 @@ -[Unit] -Description=Start Host%i Minimum -Wants=multi-user.target -After=multi-user.target -Conflicts=obmc-host-stop@%i.target -RefuseManualStop=yes -OnFailure=obmc-host-quiesce@%i.target -OnFailureJobMode=flush diff --git a/Contrib-Inspur/openbmc/meta-phosphor/recipes-core/systemd/obmc-targets/obmc-host-stop-pre@.target b/Contrib-Inspur/openbmc/meta-phosphor/recipes-core/systemd/obmc-targets/obmc-host-stop-pre@.target deleted file mode 100644 index 9fc3296b..00000000 --- a/Contrib-Inspur/openbmc/meta-phosphor/recipes-core/systemd/obmc-targets/obmc-host-stop-pre@.target +++ /dev/null @@ -1,8 +0,0 @@ -[Unit] -Description=Stop Host%i (Pre) -Wants=multi-user.target -After=multi-user.target -Before=obmc-host-stopping@%i.target -Conflicts=obmc-host-startmin@%i.target -RefuseManualStart=yes -RefuseManualStop=yes diff --git a/Contrib-Inspur/openbmc/meta-phosphor/recipes-core/systemd/obmc-targets/obmc-host-stop@.target b/Contrib-Inspur/openbmc/meta-phosphor/recipes-core/systemd/obmc-targets/obmc-host-stop@.target deleted file mode 100644 index 496fd5b3..00000000 --- a/Contrib-Inspur/openbmc/meta-phosphor/recipes-core/systemd/obmc-targets/obmc-host-stop@.target +++ /dev/null @@ -1,9 +0,0 @@ -[Unit] -Description=Stop Host%i -Wants=multi-user.target -After=multi-user.target -After=obmc-chassis-poweroff@%i.target -Conflicts=obmc-host-startmin@%i.target -RefuseManualStop=yes -OnFailure=obmc-chassis-poweroff@%i.target -OnFailureJobMode=flush diff --git a/Contrib-Inspur/openbmc/meta-phosphor/recipes-core/systemd/obmc-targets/obmc-host-stopped@.target b/Contrib-Inspur/openbmc/meta-phosphor/recipes-core/systemd/obmc-targets/obmc-host-stopped@.target deleted file mode 100644 index c9689790..00000000 --- a/Contrib-Inspur/openbmc/meta-phosphor/recipes-core/systemd/obmc-targets/obmc-host-stopped@.target +++ /dev/null @@ -1,9 +0,0 @@ -[Unit] -Description=Host%i (Stopped) -Wants=multi-user.target -Wants=obmc-host-stopping@%i.target -After=obmc-host-stopping@%i.target -Before=obmc-power-stop-pre@%i.target -Conflicts=obmc-host-startmin@%i.target -RefuseManualStart=yes -RefuseManualStop=yes diff --git a/Contrib-Inspur/openbmc/meta-phosphor/recipes-core/systemd/obmc-targets/obmc-host-stopping@.target b/Contrib-Inspur/openbmc/meta-phosphor/recipes-core/systemd/obmc-targets/obmc-host-stopping@.target deleted file mode 100644 index 41c4b7f9..00000000 --- a/Contrib-Inspur/openbmc/meta-phosphor/recipes-core/systemd/obmc-targets/obmc-host-stopping@.target +++ /dev/null @@ -1,10 +0,0 @@ -[Unit] -Description=Host%i (Stopping) -Wants=multi-user.target -Wants=obmc-host-stop-pre@%i.target -After=obmc-host-stop-pre@%i.target -Before=obmc-host-stopped@%i.target -Conflicts=obmc-host-startmin@%i.target -Conflicts=obmc-host-starting@%i.target -RefuseManualStart=yes -RefuseManualStop=yes diff --git a/Contrib-Inspur/openbmc/meta-phosphor/recipes-core/systemd/obmc-targets/obmc-host-timeout@.target b/Contrib-Inspur/openbmc/meta-phosphor/recipes-core/systemd/obmc-targets/obmc-host-timeout@.target deleted file mode 100644 index b87507bf..00000000 --- a/Contrib-Inspur/openbmc/meta-phosphor/recipes-core/systemd/obmc-targets/obmc-host-timeout@.target +++ /dev/null @@ -1,4 +0,0 @@ -[Unit] -Description=Host instance %i timed out refreshing Watchdog -Conflicts=obmc-chassis-poweroff@%i.target -RefuseManualStop=yes diff --git a/Contrib-Inspur/openbmc/meta-phosphor/recipes-core/systemd/obmc-targets/obmc-mapper.target b/Contrib-Inspur/openbmc/meta-phosphor/recipes-core/systemd/obmc-targets/obmc-mapper.target deleted file mode 100644 index 5e52f4cd..00000000 --- a/Contrib-Inspur/openbmc/meta-phosphor/recipes-core/systemd/obmc-targets/obmc-mapper.target +++ /dev/null @@ -1,4 +0,0 @@ -[Unit] -Description=Phosphor Object Mapper -RefuseManualStart=yes -RefuseManualStop=yes diff --git a/Contrib-Inspur/openbmc/meta-phosphor/recipes-core/systemd/obmc-targets/obmc-power-off@.target b/Contrib-Inspur/openbmc/meta-phosphor/recipes-core/systemd/obmc-targets/obmc-power-off@.target deleted file mode 100644 index 7fda29b1..00000000 --- a/Contrib-Inspur/openbmc/meta-phosphor/recipes-core/systemd/obmc-targets/obmc-power-off@.target +++ /dev/null @@ -1,7 +0,0 @@ -[Unit] -Description=Power%i (Off) -Wants=multi-user.target -After=obmc-power-stop@%i.target -Conflicts=obmc-chassis-poweron@%i.target -RefuseManualStart=yes -RefuseManualStop=yes diff --git a/Contrib-Inspur/openbmc/meta-phosphor/recipes-core/systemd/obmc-targets/obmc-power-on@.target b/Contrib-Inspur/openbmc/meta-phosphor/recipes-core/systemd/obmc-targets/obmc-power-on@.target deleted file mode 100644 index b55d9090..00000000 --- a/Contrib-Inspur/openbmc/meta-phosphor/recipes-core/systemd/obmc-targets/obmc-power-on@.target +++ /dev/null @@ -1,7 +0,0 @@ -[Unit] -Description=Power%i (On) -Wants=multi-user.target -After=obmc-power-start@%i.target -Conflicts=obmc-chassis-poweroff@%i.target -RefuseManualStart=yes -RefuseManualStop=yes diff --git a/Contrib-Inspur/openbmc/meta-phosphor/recipes-core/systemd/obmc-targets/obmc-power-reset-on@.target b/Contrib-Inspur/openbmc/meta-phosphor/recipes-core/systemd/obmc-targets/obmc-power-reset-on@.target deleted file mode 100644 index d24d401b..00000000 --- a/Contrib-Inspur/openbmc/meta-phosphor/recipes-core/systemd/obmc-targets/obmc-power-reset-on@.target +++ /dev/null @@ -1,5 +0,0 @@ -[Unit] -Description=Chassis%i power on after reset -Conflicts=obmc-chassis-poweroff@%i.target -RefuseManualStart=yes -RefuseManualStop=yes diff --git a/Contrib-Inspur/openbmc/meta-phosphor/recipes-core/systemd/obmc-targets/obmc-power-start-pre@.target b/Contrib-Inspur/openbmc/meta-phosphor/recipes-core/systemd/obmc-targets/obmc-power-start-pre@.target deleted file mode 100644 index 2b5fdbbd..00000000 --- a/Contrib-Inspur/openbmc/meta-phosphor/recipes-core/systemd/obmc-targets/obmc-power-start-pre@.target +++ /dev/null @@ -1,7 +0,0 @@ -[Unit] -Description=Power%i On (Pre) -Wants=multi-user.target -After=multi-user.target -Conflicts=obmc-chassis-poweroff@%i.target -RefuseManualStart=yes -RefuseManualStop=yes diff --git a/Contrib-Inspur/openbmc/meta-phosphor/recipes-core/systemd/obmc-targets/obmc-power-start@.target b/Contrib-Inspur/openbmc/meta-phosphor/recipes-core/systemd/obmc-targets/obmc-power-start@.target deleted file mode 100644 index 720548e2..00000000 --- a/Contrib-Inspur/openbmc/meta-phosphor/recipes-core/systemd/obmc-targets/obmc-power-start@.target +++ /dev/null @@ -1,7 +0,0 @@ -[Unit] -Description=Power%i On -After=obmc-power-start-pre@%i.target -Wants=multi-user.target -Conflicts=obmc-chassis-poweroff@%i.target -RefuseManualStart=yes -RefuseManualStop=yes diff --git a/Contrib-Inspur/openbmc/meta-phosphor/recipes-core/systemd/obmc-targets/obmc-power-stop-pre@.target b/Contrib-Inspur/openbmc/meta-phosphor/recipes-core/systemd/obmc-targets/obmc-power-stop-pre@.target deleted file mode 100644 index 5460914b..00000000 --- a/Contrib-Inspur/openbmc/meta-phosphor/recipes-core/systemd/obmc-targets/obmc-power-stop-pre@.target +++ /dev/null @@ -1,9 +0,0 @@ -[Unit] -Description=Power%i Off (Pre) -Wants=multi-user.target -After=multi-user.target -Wants=obmc-host-stopped@%i.target -After=obmc-host-stopped@%i.target -Conflicts=obmc-chassis-poweron@%i.target -RefuseManualStart=yes -RefuseManualStop=yes diff --git a/Contrib-Inspur/openbmc/meta-phosphor/recipes-core/systemd/obmc-targets/obmc-power-stop@.target b/Contrib-Inspur/openbmc/meta-phosphor/recipes-core/systemd/obmc-targets/obmc-power-stop@.target deleted file mode 100644 index fc22eb1f..00000000 --- a/Contrib-Inspur/openbmc/meta-phosphor/recipes-core/systemd/obmc-targets/obmc-power-stop@.target +++ /dev/null @@ -1,9 +0,0 @@ -[Unit] -Description=Power%i Off -Wants=obmc-power-stop-pre@%i.target -After=obmc-power-stop-pre@%i.target -Wants=multi-user.target -Conflicts=obmc-chassis-poweron@%i.target -Conflicts=fsi-disable.service -RefuseManualStart=yes -RefuseManualStop=yes diff --git a/Contrib-Inspur/openbmc/meta-phosphor/recipes-core/systemd/systemd/0001-networkd-fix-link_up-12505.patch b/Contrib-Inspur/openbmc/meta-phosphor/recipes-core/systemd/systemd/0001-networkd-fix-link_up-12505.patch deleted file mode 100644 index 1c101056..00000000 --- a/Contrib-Inspur/openbmc/meta-phosphor/recipes-core/systemd/systemd/0001-networkd-fix-link_up-12505.patch +++ /dev/null @@ -1,66 +0,0 @@ -From 467ac87e75c1045bc6affa89de99e21c4e7a1762 Mon Sep 17 00:00:00 2001 -From: Susant Sahani -Date: Thu, 9 May 2019 07:35:35 +0530 -Subject: [PATCH 1/2] networkd: fix link_up() (#12505) - -Fillup IFLA_INET6_ADDR_GEN_MODE while we do link_up. - -Fixes the following error: -``` -dummy-test: Could not bring up interface: Invalid argument -``` - -After reading the kernel code when we do a link up -``` -net/core/rtnetlink.c -IFLA_AF_SPEC - af_ops->set_link_af(dev, af); - inet6_set_link_af - if (tb[IFLA_INET6_ADDR_GEN_MODE]) - Here it looks for IFLA_INET6_ADDR_GEN_MODE -``` -Since link up we didn't filling up that it's failing. - -Closes #12504. - -Signed-off-by: Joel Stanley ---- - src/network/networkd-link.c | 15 +++++++++++++++ - 1 file changed, 15 insertions(+) - -diff --git a/src/network/networkd-link.c b/src/network/networkd-link.c -index 3e334c8d29cc..3a0706e0a894 100644 ---- a/src/network/networkd-link.c -+++ b/src/network/networkd-link.c -@@ -2079,6 +2079,8 @@ static int link_up(Link *link) { - } - - if (link_ipv6_enabled(link)) { -+ uint8_t ipv6ll_mode; -+ - r = sd_netlink_message_open_container(req, IFLA_AF_SPEC); - if (r < 0) - return log_link_error_errno(link, r, "Could not open IFLA_AF_SPEC container: %m"); -@@ -2094,6 +2096,19 @@ static int link_up(Link *link) { - return log_link_error_errno(link, r, "Could not append IFLA_INET6_TOKEN: %m"); - } - -+ if (!link_ipv6ll_enabled(link)) -+ ipv6ll_mode = IN6_ADDR_GEN_MODE_NONE; -+ else if (sysctl_read_ip_property(AF_INET6, link->ifname, "stable_secret", NULL) < 0) -+ /* The file may not exist. And event if it exists, when stable_secret is unset, -+ * reading the file fails with EIO. */ -+ ipv6ll_mode = IN6_ADDR_GEN_MODE_EUI64; -+ else -+ ipv6ll_mode = IN6_ADDR_GEN_MODE_STABLE_PRIVACY; -+ -+ r = sd_netlink_message_append_u8(req, IFLA_INET6_ADDR_GEN_MODE, ipv6ll_mode); -+ if (r < 0) -+ return log_link_error_errno(link, r, "Could not append IFLA_INET6_ADDR_GEN_MODE: %m"); -+ - r = sd_netlink_message_close_container(req); - if (r < 0) - return log_link_error_errno(link, r, "Could not close AF_INET6 container: %m"); --- -2.20.1 - diff --git a/Contrib-Inspur/openbmc/meta-phosphor/recipes-core/systemd/systemd/0002-network-do-not-send-ipv6-token-to-kernel.patch b/Contrib-Inspur/openbmc/meta-phosphor/recipes-core/systemd/systemd/0002-network-do-not-send-ipv6-token-to-kernel.patch deleted file mode 100644 index c359a1f3..00000000 --- a/Contrib-Inspur/openbmc/meta-phosphor/recipes-core/systemd/systemd/0002-network-do-not-send-ipv6-token-to-kernel.patch +++ /dev/null @@ -1,96 +0,0 @@ -From e6be20d87c400258a966b0bb0e1c4c94b91017df Mon Sep 17 00:00:00 2001 -From: Yu Watanabe -Date: Thu, 9 May 2019 14:39:46 +0900 -Subject: [PATCH 2/2] network: do not send ipv6 token to kernel - -We disabled kernel RA support. Then, we should not send -IFLA_INET6_TOKEN. -Thus, we do not need to send IFLA_INET6_ADDR_GEN_MODE twice. - -Follow-up for 0e2fdb83bb5e22047e0c7cc058b415d0e93f02cf and -4eb086a38712ea98faf41e075b84555b11b54362. - -Signed-off-by: Joel Stanley ---- - src/network/networkd-link.c | 51 +++++-------------------------------- - 1 file changed, 6 insertions(+), 45 deletions(-) - -diff --git a/src/network/networkd-link.c b/src/network/networkd-link.c -index 3a0706e0a894..b709aaa71b4d 100644 ---- a/src/network/networkd-link.c -+++ b/src/network/networkd-link.c -@@ -1985,6 +1985,9 @@ static int link_configure_addrgen_mode(Link *link) { - assert(link->manager); - assert(link->manager->rtnl); - -+ if (!socket_ipv6_is_supported()) -+ return 0; -+ - log_link_debug(link, "Setting address genmode for link"); - - r = sd_rtnl_message_new_link(link->manager->rtnl, &req, RTM_SETLINK, link->ifindex); -@@ -2078,46 +2081,6 @@ static int link_up(Link *link) { - return log_link_error_errno(link, r, "Could not set MAC address: %m"); - } - -- if (link_ipv6_enabled(link)) { -- uint8_t ipv6ll_mode; -- -- r = sd_netlink_message_open_container(req, IFLA_AF_SPEC); -- if (r < 0) -- return log_link_error_errno(link, r, "Could not open IFLA_AF_SPEC container: %m"); -- -- /* if the kernel lacks ipv6 support setting IFF_UP fails if any ipv6 options are passed */ -- r = sd_netlink_message_open_container(req, AF_INET6); -- if (r < 0) -- return log_link_error_errno(link, r, "Could not open AF_INET6 container: %m"); -- -- if (!in_addr_is_null(AF_INET6, &link->network->ipv6_token)) { -- r = sd_netlink_message_append_in6_addr(req, IFLA_INET6_TOKEN, &link->network->ipv6_token.in6); -- if (r < 0) -- return log_link_error_errno(link, r, "Could not append IFLA_INET6_TOKEN: %m"); -- } -- -- if (!link_ipv6ll_enabled(link)) -- ipv6ll_mode = IN6_ADDR_GEN_MODE_NONE; -- else if (sysctl_read_ip_property(AF_INET6, link->ifname, "stable_secret", NULL) < 0) -- /* The file may not exist. And event if it exists, when stable_secret is unset, -- * reading the file fails with EIO. */ -- ipv6ll_mode = IN6_ADDR_GEN_MODE_EUI64; -- else -- ipv6ll_mode = IN6_ADDR_GEN_MODE_STABLE_PRIVACY; -- -- r = sd_netlink_message_append_u8(req, IFLA_INET6_ADDR_GEN_MODE, ipv6ll_mode); -- if (r < 0) -- return log_link_error_errno(link, r, "Could not append IFLA_INET6_ADDR_GEN_MODE: %m"); -- -- r = sd_netlink_message_close_container(req); -- if (r < 0) -- return log_link_error_errno(link, r, "Could not close AF_INET6 container: %m"); -- -- r = sd_netlink_message_close_container(req); -- if (r < 0) -- return log_link_error_errno(link, r, "Could not close IFLA_AF_SPEC container: %m"); -- } -- - r = netlink_call_async(link->manager->rtnl, NULL, req, link_up_handler, - link_netlink_destroy_callback, link); - if (r < 0) -@@ -3204,11 +3167,9 @@ static int link_configure(Link *link) { - if (r < 0) - return r; - -- if (socket_ipv6_is_supported()) { -- r = link_configure_addrgen_mode(link); -- if (r < 0) -- return r; -- } -+ r = link_configure_addrgen_mode(link); -+ if (r < 0) -+ return r; - - return link_configure_after_setting_mtu(link); - } --- -2.20.1 - diff --git a/Contrib-Inspur/openbmc/meta-phosphor/recipes-core/systemd/systemd_%.bbappend b/Contrib-Inspur/openbmc/meta-phosphor/recipes-core/systemd/systemd_%.bbappend index 5660e7cb..de1aa2e1 100644 --- a/Contrib-Inspur/openbmc/meta-phosphor/recipes-core/systemd/systemd_%.bbappend +++ b/Contrib-Inspur/openbmc/meta-phosphor/recipes-core/systemd/systemd_%.bbappend @@ -2,17 +2,12 @@ FILES_${PN}-catalog-extralocales = \ "${exec_prefix}/lib/systemd/catalog/*.*.catalog" PACKAGES =+ "${PN}-catalog-extralocales" PACKAGECONFIG = "pam hostnamed networkd randomseed resolved sysusers timedated \ - timesyncd xz" + timesyncd xz kmod coredump" FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:" SRC_URI += "file://default.network" SRC_URI += "file://0001-sd-bus-Don-t-automatically-add-ObjectManager.patch" -# Backport from master to fix https://github.com/systemd/systemd/issues/12784 -SRC_URI += "file://0001-networkd-fix-link_up-12505.patch" -SRC_URI += "file://0002-network-do-not-send-ipv6-token-to-kernel.patch" - -RRECOMMENDS_${PN} += "obmc-targets" FILES_${PN} += "${systemd_unitdir}/network/default.network" do_install_append() { diff --git a/Contrib-Inspur/openbmc/meta-phosphor/recipes-devtools/python/python-pygobject/obsolete_automake_macros.patch b/Contrib-Inspur/openbmc/meta-phosphor/recipes-devtools/python/python-pygobject/obsolete_automake_macros.patch index c2591123..9e251a37 100644 --- a/Contrib-Inspur/openbmc/meta-phosphor/recipes-devtools/python/python-pygobject/obsolete_automake_macros.patch +++ b/Contrib-Inspur/openbmc/meta-phosphor/recipes-devtools/python/python-pygobject/obsolete_automake_macros.patch @@ -1,23 +1,34 @@ +From 9de1bb6f37c4aedb9b21640003db46927d25b30b Mon Sep 17 00:00:00 2001 +From: Marko Lindqvist +Date: Wed, 22 Jun 2016 16:30:42 -0500 +Subject: [PATCH] python-pygobject: Backport 2.28.3 + Upstream-Status: Accepted [https://bugzilla.gnome.org/show_bug.cgi?id=691101] Signed-off-by: Marko Lindqvist -diff -Nurd pygobject-2.27.91/configure.ac pygobject-2.27.91/configure.ac ---- pygobject-2.27.91/configure.ac 2011-02-23 22:14:37.000000000 +0200 -+++ pygobject-2.27.91/configure.ac 2013-01-03 05:13:44.034949954 +0200 -@@ -35,7 +35,7 @@ + +--- + configure.ac | 3 +-- + 1 file changed, 1 insertion(+), 2 deletions(-) + +diff --git a/configure.ac b/configure.ac +index f5ba355..ac5547a 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -35,7 +35,7 @@ AC_SUBST(PYGOBJECT_MINOR_VERSION, pygobject_minor_version) AC_DEFINE(PYGOBJECT_MICRO_VERSION, pygobject_micro_version, [pygobject micro version]) AC_SUBST(PYGOBJECT_MICRO_VERSION, pygobject_micro_version) - + -AM_CONFIG_HEADER(config.h) +AC_CONFIG_HEADERS(config.h) m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES(yes)]) AM_INIT_AUTOMAKE(foreign) AM_MAINTAINER_MODE -@@ -82,7 +82,6 @@ +@@ -82,7 +82,6 @@ dnl when using libtool 2.x create libtool early, because it's used in configure m4_ifdef([LT_OUTPUT], [LT_OUTPUT]) AC_ISC_POSIX AC_PROG_CC -AM_PROG_CC_STDC AM_PROG_CC_C_O - - # check that we have the minimum version of python necisary to build + + # check that we have the minimum version of python necessary to build diff --git a/Contrib-Inspur/openbmc/meta-phosphor/recipes-extended/pam/libpam/pam.d/common-auth b/Contrib-Inspur/openbmc/meta-phosphor/recipes-extended/pam/libpam/pam.d/common-auth index 7bebd9a6..8eef164d 100644 --- a/Contrib-Inspur/openbmc/meta-phosphor/recipes-extended/pam/libpam/pam.d/common-auth +++ b/Contrib-Inspur/openbmc/meta-phosphor/recipes-extended/pam/libpam/pam.d/common-auth @@ -8,9 +8,9 @@ # traditional Unix authentication mechanisms. # here are the per-package modules (the "Primary" block) -auth [success=ok default=2] pam_tally2.so deny=0 unlock_time=0 +auth [success=ok user_unknown=ignore default=2] pam_tally2.so deny=0 unlock_time=0 # Try for local user first, and then try for ldap -auth [success=2 default=ignore] pam_unix.so nullok_secure +auth [success=2 default=ignore] pam_unix.so quiet -auth [success=1 default=ignore] pam_ldap.so ignore_unknown_user ignore_authinfo_unavail # here's the fallback if no module succeeds auth requisite pam_deny.so diff --git a/Contrib-Inspur/openbmc/meta-phosphor/recipes-extended/pam/libpam/pam.d/common-password b/Contrib-Inspur/openbmc/meta-phosphor/recipes-extended/pam/libpam/pam.d/common-password index f0f05180..ef706f30 100644 --- a/Contrib-Inspur/openbmc/meta-phosphor/recipes-extended/pam/libpam/pam.d/common-password +++ b/Contrib-Inspur/openbmc/meta-phosphor/recipes-extended/pam/libpam/pam.d/common-password @@ -16,8 +16,8 @@ # See the pam_unix manpage for other options. # here are the per-package modules (the "Primary" block) -password [success=ok default=die] pam_ipmicheck.so spec_grp_name=ipmi -password [success=ok default=die] pam_cracklib.so debug enforce_for_root reject_username minlen=8 difok=0 use_authtok +password [success=ok default=die] pam_cracklib.so debug enforce_for_root reject_username minlen=8 difok=0 lcredit=0 ocredit=0 dcredit=0 ucredit=0 +password [success=ok default=die] pam_ipmicheck.so spec_grp_name=ipmi use_authtok password [success=ok ignore=ignore default=die] pam_pwhistory.so debug enforce_for_root remember=0 use_authtok password [success=ok default=die] pam_unix.so sha512 use_authtok password [success=1 default=die] pam_ipmisave.so spec_grp_name=ipmi spec_pass_file=/etc/ipmi_pass key_file=/etc/key_file diff --git a/Contrib-Inspur/openbmc/meta-phosphor/recipes-extended/pam/libpam/pam.d/common-session b/Contrib-Inspur/openbmc/meta-phosphor/recipes-extended/pam/libpam/pam.d/common-session new file mode 100644 index 00000000..e8751d2e --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-phosphor/recipes-extended/pam/libpam/pam.d/common-session @@ -0,0 +1,19 @@ +# +# /etc/pam.d/common-session - session-related modules common to all services +# +# This file is included from other service-specific PAM config files, +# and should contain a list of modules that define tasks to be performed +# at the start and end of sessions of *any* kind (both interactive and +# non-interactive). +# + +# here are the per-package modules (the "Primary" block) +session [default=1] pam_permit.so +# here's the fallback if no module succeeds +session requisite pam_deny.so +# prime the stack with a positive return value if there isn't one already; +# this avoids us returning an error just because nothing sets a success code +# since the modules above will each just jump around +session required pam_permit.so +# and here are more per-package modules (the "Additional" block) +session required pam_unix.so quiet diff --git a/Contrib-Inspur/openbmc/meta-phosphor/recipes-extended/pam/libpam_%.bbappend b/Contrib-Inspur/openbmc/meta-phosphor/recipes-extended/pam/libpam_%.bbappend index f97664f2..07dd5484 100644 --- a/Contrib-Inspur/openbmc/meta-phosphor/recipes-extended/pam/libpam_%.bbappend +++ b/Contrib-Inspur/openbmc/meta-phosphor/recipes-extended/pam/libpam_%.bbappend @@ -3,11 +3,13 @@ FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:" SRC_URI += " file://pam.d/common-password \ file://pam.d/common-account \ file://pam.d/common-auth \ + file://pam.d/common-session \ " RDEPENDS_${PN}-runtime += "${MLPREFIX}pam-plugin-cracklib-${libpam_suffix} \ ${MLPREFIX}pam-plugin-tally2-${libpam_suffix} \ ${MLPREFIX}pam-plugin-pwhistory-${libpam_suffix} \ + ${MLPREFIX}pam-plugin-succeed-if-${libpam_suffix} \ " do_install_append() { diff --git a/Contrib-Inspur/openbmc/meta-phosphor/recipes-extended/sdbusplus/sdbusplus_git.bb b/Contrib-Inspur/openbmc/meta-phosphor/recipes-extended/sdbusplus/sdbusplus_git.bb index 891d0220..d964424b 100644 --- a/Contrib-Inspur/openbmc/meta-phosphor/recipes-extended/sdbusplus/sdbusplus_git.bb +++ b/Contrib-Inspur/openbmc/meta-phosphor/recipes-extended/sdbusplus/sdbusplus_git.bb @@ -37,7 +37,7 @@ DEPENDS_append_class-native = " \ " SRC_URI += "git://github.com/openbmc/sdbusplus" -SRCREV = "4212292bcf136d04b38ba5116aa568b0fa312798" +SRCREV = "14db20f044be9faba00e41214d4aa8765b43b355" PACKAGECONFIG ??= "libsdbusplus transaction" PACKAGECONFIG[libsdbusplus] = "--enable-libsdbusplus,--disable-libsdbusplus,systemd,libsystemd" diff --git a/Contrib-Inspur/openbmc/meta-phosphor/recipes-extended/stdplus/stdplus_git.bb b/Contrib-Inspur/openbmc/meta-phosphor/recipes-extended/stdplus/stdplus_git.bb index 97e6239a..e1440c1b 100644 --- a/Contrib-Inspur/openbmc/meta-phosphor/recipes-extended/stdplus/stdplus_git.bb +++ b/Contrib-Inspur/openbmc/meta-phosphor/recipes-extended/stdplus/stdplus_git.bb @@ -14,6 +14,6 @@ EXTRA_OEMESON = " \ " SRC_URI += "git://github.com/openbmc/stdplus" -SRCREV = "4ef36e7904aa354256ab5818c543df0a9c61f90f" +SRCREV = "3b4c20fe517c23fbe8d1418ee3cdb98b59b2fd30" S = "${WORKDIR}/git" diff --git a/Contrib-Inspur/openbmc/meta-phosphor/recipes-graphics/libvncserver/libvncserver_%.bbappend b/Contrib-Inspur/openbmc/meta-phosphor/recipes-graphics/libvncserver/libvncserver_%.bbappend index 849255a0..fa15047d 100644 --- a/Contrib-Inspur/openbmc/meta-phosphor/recipes-graphics/libvncserver/libvncserver_%.bbappend +++ b/Contrib-Inspur/openbmc/meta-phosphor/recipes-graphics/libvncserver/libvncserver_%.bbappend @@ -1,2 +1 @@ -PACKAGECONFIG_append = " openssl" -PACKAGECONFIG_remove = "gcrypt gnutls png sdl" +PACKAGECONFIG = "jpeg lzo systemd zlib openssl" diff --git a/Contrib-Inspur/openbmc/meta-phosphor/recipes-graphics/obmc-ikvm/obmc-ikvm_git.bb b/Contrib-Inspur/openbmc/meta-phosphor/recipes-graphics/obmc-ikvm/obmc-ikvm_git.bb index 7b721e01..c8190131 100644 --- a/Contrib-Inspur/openbmc/meta-phosphor/recipes-graphics/obmc-ikvm/obmc-ikvm_git.bb +++ b/Contrib-Inspur/openbmc/meta-phosphor/recipes-graphics/obmc-ikvm/obmc-ikvm_git.bb @@ -6,7 +6,7 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=75859989545e37968a99b631ef42722e" DEPENDS = " libvncserver systemd sdbusplus phosphor-logging phosphor-dbus-interfaces" SRC_URI = "git://github.com/openbmc/obmc-ikvm" -SRCREV = "133bfa2d5b1b3af0b8e819b4cd210a0e1ac0445c" +SRCREV = "861337e8ec92767c4c88237ec5db494a2a67fa8d" PV = "1.0+git${SRCPV}" diff --git a/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/certificate/phosphor-bmcweb-cert-config.bb b/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/certificate/phosphor-bmcweb-cert-config.bb index c0cea9cb..9fa5f3a0 100644 --- a/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/certificate/phosphor-bmcweb-cert-config.bb +++ b/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/certificate/phosphor-bmcweb-cert-config.bb @@ -3,7 +3,7 @@ SUMMARY = "Phosphor certificate manager configuration for a bmcweb service" PR = "r1" LICENSE = "Apache-2.0" -LIC_FILES_CHKSUM = "file://${PHOSPHORBASE}/LICENSE;md5=19407077e42b1ba3d653da313f1f5b4e" +LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10" RDEPENDS_${PN} = "phosphor-certificate-manager" @@ -11,8 +11,10 @@ inherit allarch SRC_URI = "file://env" +FILES_${PN} = "${datadir}" + do_install() { - install -D ${WORKDIR}/env ${D}/${sysconfdir}/default/obmc/cert/bmcweb + install -D ${WORKDIR}/env ${D}/${datadir}/phosphor-certificate-manager/bmcweb } pkg_postinst_${PN}() { diff --git a/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/certificate/phosphor-certificate-manager/phosphor-certificate-manager@.service b/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/certificate/phosphor-certificate-manager/phosphor-certificate-manager@.service index a8215662..255906fa 100644 --- a/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/certificate/phosphor-certificate-manager/phosphor-certificate-manager@.service +++ b/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/certificate/phosphor-certificate-manager/phosphor-certificate-manager@.service @@ -2,7 +2,7 @@ Description=Phosphor certificate manager for %I [Service] -EnvironmentFile={envfiledir}/obmc/cert/%I +EnvironmentFile=/usr/share/phosphor-certificate-manager/%I ExecStart=/usr/bin/env phosphor-certificate-manager --endpoint=${{ENDPOINT}} --path=${{CERTPATH}} --unit=${{UNIT}} --type=${{TYPE}} SyslogIdentifier=phosphor-certificate-manager Restart=always diff --git a/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/certificate/phosphor-certificate-manager_git.bb b/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/certificate/phosphor-certificate-manager_git.bb index 429b55ae..63600734 100644 --- a/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/certificate/phosphor-certificate-manager_git.bb +++ b/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/certificate/phosphor-certificate-manager_git.bb @@ -9,7 +9,7 @@ LICENSE = "Apache-2.0" LIC_FILES_CHKSUM = "file://LICENSE;md5=86d3f3a95c324c9479bd8986968f4327" SRC_URI = "git://github.com/openbmc/phosphor-certificate-manager" -SRCREV = "cd30c496c8e4c9aec66e65ba16430dd2e0f86395" +SRCREV = "15cbbec294c6fb89c4c0b8142c033d18ecb1379c" inherit autotools \ pkgconfig \ diff --git a/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/certificate/phosphor-nslcd-authority-cert-config.bb b/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/certificate/phosphor-nslcd-authority-cert-config.bb index d41de2b5..07302d65 100644 --- a/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/certificate/phosphor-nslcd-authority-cert-config.bb +++ b/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/certificate/phosphor-nslcd-authority-cert-config.bb @@ -3,7 +3,7 @@ SUMMARY = "Phosphor certificate manager configuration for an nslcd authority ser PR = "r1" LICENSE = "Apache-2.0" -LIC_FILES_CHKSUM = "file://${PHOSPHORBASE}/LICENSE;md5=19407077e42b1ba3d653da313f1f5b4e" +LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10" RDEPENDS_${PN} = "phosphor-certificate-manager" @@ -11,8 +11,10 @@ inherit allarch SRC_URI = "file://env" +FILES_${PN} = "${datadir}" + do_install() { - install -D ${WORKDIR}/env ${D}/${sysconfdir}/default/obmc/cert/authority + install -D ${WORKDIR}/env ${D}/${datadir}/phosphor-certificate-manager/authority } pkg_postinst_${PN}() { diff --git a/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/certificate/phosphor-nslcd-authority-cert-config/env b/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/certificate/phosphor-nslcd-authority-cert-config/env index 849d695b..d2e8814c 100644 --- a/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/certificate/phosphor-nslcd-authority-cert-config/env +++ b/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/certificate/phosphor-nslcd-authority-cert-config/env @@ -3,7 +3,10 @@ ENDPOINT=ldap #Path for the certificate file -CERTPATH=/etc/ssl/certs/Root-CA.pem +CERTPATH=/etc/ssl/certs/authority + +#Units to restart +UNIT=bmcweb.service #Type of service TYPE=authority diff --git a/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/certificate/phosphor-nslcd-cert-config.bb b/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/certificate/phosphor-nslcd-cert-config.bb index d344851f..5b0c03a6 100644 --- a/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/certificate/phosphor-nslcd-cert-config.bb +++ b/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/certificate/phosphor-nslcd-cert-config.bb @@ -3,7 +3,7 @@ SUMMARY = "Phosphor certificate manager configuration for a nslcd certificate" PR = "r1" LICENSE = "Apache-2.0" -LIC_FILES_CHKSUM = "file://${PHOSPHORBASE}/LICENSE;md5=19407077e42b1ba3d653da313f1f5b4e" +LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10" RDEPENDS_${PN} = "phosphor-certificate-manager" @@ -11,8 +11,10 @@ inherit allarch SRC_URI = "file://env" +FILES_${PN} = "${datadir}" + do_install() { - install -D ${WORKDIR}/env ${D}/${sysconfdir}/default/obmc/cert/nslcd + install -D ${WORKDIR}/env ${D}/${datadir}/phosphor-certificate-manager/nslcd } pkg_postinst_${PN}() { diff --git a/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/chassis/obmc-host-failure-reboots.bb b/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/chassis/obmc-host-failure-reboots.bb index e82eaeac..490a6153 100644 --- a/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/chassis/obmc-host-failure-reboots.bb +++ b/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/chassis/obmc-host-failure-reboots.bb @@ -3,7 +3,7 @@ DESCRIPTION = "Manages the settings entry that controls reboots \ on host failures" PR = "r1" LICENSE = "Apache-2.0" -LIC_FILES_CHKSUM = "file://${PHOSPHORBASE}/COPYING.apache-2.0;md5=34400b68072d710fecd0a2940a0d1658" +LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10" inherit obmc-phosphor-systemd diff --git a/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/chassis/obmc-phosphor-buttons_git.bb b/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/chassis/obmc-phosphor-buttons_git.bb index 6a8b041b..a3968e33 100644 --- a/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/chassis/obmc-phosphor-buttons_git.bb +++ b/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/chassis/obmc-phosphor-buttons_git.bb @@ -7,7 +7,7 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=86d3f3a95c324c9479bd8986968f4327" S = "${WORKDIR}/git" SRC_URI += "git://github.com/openbmc/phosphor-buttons.git" -SRCREV = "1ac9ab6d29dc06bf15f1377fc8aebb21a3e5a600" +SRCREV = "3fdcdb82d0c6b0ecae4a28d43a92359f1524506c" inherit cmake pkgconfig systemd diff --git a/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/chassis/obmc-phosphor-chassisd.bb b/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/chassis/obmc-phosphor-chassisd.bb index fb56db25..a32ba124 100644 --- a/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/chassis/obmc-phosphor-chassisd.bb +++ b/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/chassis/obmc-phosphor-chassisd.bb @@ -2,7 +2,7 @@ SUMMARY = "Phosphor OpenBMC Chassis Management" DESCRIPTION = "Phosphor OpenBMC chassis management reference implementation." PR = "r1" LICENSE = "Apache-2.0" -LIC_FILES_CHKSUM = "file://${PHOSPHORBASE}/COPYING.apache-2.0;md5=34400b68072d710fecd0a2940a0d1658" +LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10" inherit obmc-phosphor-pydbus-service diff --git a/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/clear-once/clear-once.bb b/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/clear-once/clear-once.bb index 5d6d8894..4f32a069 100644 --- a/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/clear-once/clear-once.bb +++ b/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/clear-once/clear-once.bb @@ -6,4 +6,4 @@ RDEPENDS_${PN} = "${@d.getVar('PREFERRED_PROVIDER_u-boot-fw-utils', True) or 'u- inherit obmc-phosphor-systemd LICENSE = "Apache-2.0" -LIC_FILES_CHKSUM = "file://${PHOSPHORBASE}/COPYING.apache-2.0;md5=34400b68072d710fecd0a2940a0d1658" +LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10" diff --git a/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/configuration/entity-manager_git.bb b/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/configuration/entity-manager_git.bb index a2419c46..0ebb5d95 100644 --- a/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/configuration/entity-manager_git.bb +++ b/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/configuration/entity-manager_git.bb @@ -3,7 +3,7 @@ DESCRIPTION = "Entity Manager provides d-bus configuration data \ and configures system sensors" SRC_URI = "git://github.com/openbmc/entity-manager.git" -SRCREV = "9813279b57359bd1602da236ff7d38bcc9a2fba4" +SRCREV = "85ca6dd2fa3f05b87adfd722f66dcd54a935616c" PV = "0.1+git${SRCPV}" LICENSE = "Apache-2.0" diff --git a/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/console/obmc-console_git.bb b/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/console/obmc-console_git.bb index aa8fb382..7d11bffe 100644 --- a/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/console/obmc-console_git.bb +++ b/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/console/obmc-console_git.bb @@ -18,10 +18,10 @@ DEPENDS += "autoconf-archive-native \ SRC_URI += "git://github.com/openbmc/obmc-console" SRC_URI += "file://${BPN}.conf" -SRCREV = "1cecc5deeae236e9886f624ea7168e075f057047" +SRCREV = "c5ce2cbd12e395749c3b4abedf0d81f49b402b70" PV = "1.0+git${SRCPV}" -REGISTERED_SERVICES_${PN} += "obmc_console:tcp:2200" +REGISTERED_SERVICES_${PN} += "obmc_console:tcp:2200:" OBMC_CONSOLE_HOST_TTY ?= "ttyVUART0" SYSTEMD_SUBSTITUTIONS += "OBMC_CONSOLE_HOST_TTY:${OBMC_CONSOLE_HOST_TTY}:${PN}-ssh@.service" SYSTEMD_SUBSTITUTIONS += "OBMC_CONSOLE_HOST_TTY:${OBMC_CONSOLE_HOST_TTY}:${PN}-ssh.socket" diff --git a/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/dbus/dbus-perms.bb b/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/dbus/dbus-perms.bb index 1ba73d81..b194740d 100644 --- a/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/dbus/dbus-perms.bb +++ b/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/dbus/dbus-perms.bb @@ -3,7 +3,7 @@ DESCRIPTION = "Phosphor OpenBMC DBUS Permissions." HOMEPAGE = "http://github.com/openbmc/" PR = "r1" LICENSE = "Apache-2.0" -LIC_FILES_CHKSUM = "file://${PHOSPHORBASE}/COPYING.apache-2.0;md5=34400b68072d710fecd0a2940a0d1658" +LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10" inherit allarch inherit dbus-dir diff --git a/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/dbus/phosphor-dbus-interfaces-mapper-config-native.bb b/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/dbus/phosphor-dbus-interfaces-mapper-config-native.bb index 7c9d5daf..3dfc3b1a 100644 --- a/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/dbus/phosphor-dbus-interfaces-mapper-config-native.bb +++ b/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/dbus/phosphor-dbus-interfaces-mapper-config-native.bb @@ -4,7 +4,7 @@ xyz.openbmc_project interface prefix to the mapper \ watch list." LICENSE = "Apache-2.0" -LIC_FILES_CHKSUM = "file://${PHOSPHORBASE}/COPYING.apache-2.0;md5=34400b68072d710fecd0a2940a0d1658" +LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10" inherit phosphor-mapper inherit native diff --git a/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/dbus/phosphor-dbus-interfaces_git.bb b/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/dbus/phosphor-dbus-interfaces_git.bb index 03c54fb8..8337ef56 100644 --- a/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/dbus/phosphor-dbus-interfaces_git.bb +++ b/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/dbus/phosphor-dbus-interfaces_git.bb @@ -14,7 +14,7 @@ DEPENDS += "autoconf-archive-native" DEPENDS += "sdbus++-native" SRC_URI += "git://github.com/openbmc/phosphor-dbus-interfaces" -SRCREV = "6891f19b066da062155e1128962ee0c44ab7a385" +SRCREV = "97b51294bf7c973b991fae03db91064a22d18b48" DEPENDS_remove_class-native = "sdbus++-native" DEPENDS_remove_class-nativesdk = "sdbus++-native" diff --git a/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/dbus/phosphor-dbus-monitor-config.bb b/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/dbus/phosphor-dbus-monitor-config.bb index 6fadcae2..d1de054b 100644 --- a/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/dbus/phosphor-dbus-monitor-config.bb +++ b/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/dbus/phosphor-dbus-monitor-config.bb @@ -4,7 +4,7 @@ configuration files to the /usr/share/phosphor-dbus-monitor filesystem." HOMEPAGE = "http://github.com/openbmc/phosphor-dbus-monitor" PR = "r1" LICENSE = "Apache-2.0" -LIC_FILES_CHKSUM = "file://${PHOSPHORBASE}/COPYING.apache-2.0;md5=34400b68072d710fecd0a2940a0d1658" +LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10" inherit phosphor-dbus-monitor diff --git a/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/dbus/phosphor-dbus-monitor_git.bb b/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/dbus/phosphor-dbus-monitor_git.bb index ae227436..3e2cd9a3 100644 --- a/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/dbus/phosphor-dbus-monitor_git.bb +++ b/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/dbus/phosphor-dbus-monitor_git.bb @@ -7,7 +7,7 @@ HOMEPAGE = "http://github.com/openbmc/phosphor-dbus-monitor" LICENSE = "Apache-2.0" LIC_FILES_CHKSUM = "file://LICENSE;md5=e3fc50a88d0a364313df4b21ef20c29e" SRC_URI = "git://github.com/openbmc/phosphor-dbus-monitor" -SRCREV = "92907da08e311656bd5980476c252c19e8dbad11" +SRCREV = "b4d69909425dac7bccb28331f2da78a0ad7092b8" inherit autotools \ pkgconfig \ diff --git a/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/dbus/phosphor-legacy-namespace-mapper-config-native.bb b/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/dbus/phosphor-legacy-namespace-mapper-config-native.bb index fe0bea3d..c9235121 100644 --- a/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/dbus/phosphor-legacy-namespace-mapper-config-native.bb +++ b/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/dbus/phosphor-legacy-namespace-mapper-config-native.bb @@ -3,7 +3,7 @@ DESCRIPTION="Add the legacy org.openbmc service namespace and \ org.openbmc interface prefix to the mapper watch list." LICENSE = "Apache-2.0" -LIC_FILES_CHKSUM = "file://${PHOSPHORBASE}/COPYING.apache-2.0;md5=34400b68072d710fecd0a2940a0d1658" +LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10" inherit phosphor-mapper inherit native diff --git a/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/dbus/phosphor-mapper-config-native.bb b/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/dbus/phosphor-mapper-config-native.bb index 68163e1f..37b9f64b 100644 --- a/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/dbus/phosphor-mapper-config-native.bb +++ b/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/dbus/phosphor-mapper-config-native.bb @@ -4,7 +4,7 @@ configuration files to the native /usr/share/phosphor-mapper filesystem." HOMEPAGE = "http://github.com/openbmc/phosphor-objmgr" PR = "r1" LICENSE = "Apache-2.0" -LIC_FILES_CHKSUM = "file://${PHOSPHORBASE}/COPYING.apache-2.0;md5=34400b68072d710fecd0a2940a0d1658" +LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10" inherit native inherit phosphor-mapper diff --git a/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/dbus/phosphor-mapper_git.bb b/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/dbus/phosphor-mapper_git.bb index 1f64caf8..2d03080f 100644 --- a/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/dbus/phosphor-mapper_git.bb +++ b/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/dbus/phosphor-mapper_git.bb @@ -26,7 +26,7 @@ SYSTEMD_SERVICE_${PN} += " \ " SRC_URI += "git://github.com/openbmc/phosphor-objmgr" -SRCREV = "5eddf44006cf9ad5b9a5c103adc1682fc835f932" +SRCREV = "c52be0d21755e23d67128fbcaec17e5952f4af9e" S = "${WORKDIR}/git" diff --git a/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/dump/phosphor-debug-collector/obmc-dump-monitor.service b/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/dump/phosphor-debug-collector/obmc-dump-monitor.service index aa3837d8..5d1e959d 100644 --- a/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/dump/phosphor-debug-collector/obmc-dump-monitor.service +++ b/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/dump/phosphor-debug-collector/obmc-dump-monitor.service @@ -1,5 +1,6 @@ [Unit] Description=Phosphor Dump core monitor. +ConditionPathExists=/var/lib/systemd/coredump [Service] ExecStart=/usr/bin/env phosphor-dump-monitor diff --git a/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/dump/phosphor-debug-errors-native.bb b/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/dump/phosphor-debug-errors-native.bb index 7a6870c5..0a232c8f 100644 --- a/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/dump/phosphor-debug-errors-native.bb +++ b/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/dump/phosphor-debug-errors-native.bb @@ -1,7 +1,7 @@ SUMMARY = "Debug collector error watch config file" PR = "r1" LICENSE = "Apache-2.0" -LIC_FILES_CHKSUM = "file://${PHOSPHORBASE}/COPYING.apache-2.0;md5=34400b68072d710fecd0a2940a0d1658" +LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10" inherit native diff --git a/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/fans/obmc-phosphor-fand.bb b/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/fans/obmc-phosphor-fand.bb index 70028af0..f7a3e051 100644 --- a/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/fans/obmc-phosphor-fand.bb +++ b/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/fans/obmc-phosphor-fand.bb @@ -2,7 +2,7 @@ SUMMARY = "Phosphor OpenBMC Fan Management." DESCRIPTION = "Phosphor OpenBMC fan management reference implementation." PR = "r1" LICENSE = "Apache-2.0" -LIC_FILES_CHKSUM = "file://${PHOSPHORBASE}/COPYING.apache-2.0;md5=34400b68072d710fecd0a2940a0d1658" +LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10" inherit pkgconfig inherit obmc-phosphor-sdbus-service diff --git a/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/fans/phosphor-fan-control-events-config.bb b/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/fans/phosphor-fan-control-events-config.bb index 360650f8..433ac65c 100644 --- a/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/fans/phosphor-fan-control-events-config.bb +++ b/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/fans/phosphor-fan-control-events-config.bb @@ -1,7 +1,7 @@ SUMMARY = "Phosphor zone events definition default data" PR = "r1" LICENSE = "Apache-2.0" -LIC_FILES_CHKSUM = "file://${PHOSPHORBASE}/COPYING.apache-2.0;md5=34400b68072d710fecd0a2940a0d1658" +LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10" inherit allarch inherit phosphor-fan diff --git a/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/fans/phosphor-fan-control-fan-config.bb b/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/fans/phosphor-fan-control-fan-config.bb index b82da0a0..ae3b80ca 100644 --- a/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/fans/phosphor-fan-control-fan-config.bb +++ b/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/fans/phosphor-fan-control-fan-config.bb @@ -1,7 +1,7 @@ SUMMARY = "Phosphor fan definition example data" PR = "r1" LICENSE = "Apache-2.0" -LIC_FILES_CHKSUM = "file://${PHOSPHORBASE}/COPYING.apache-2.0;md5=34400b68072d710fecd0a2940a0d1658" +LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10" inherit allarch inherit phosphor-fan diff --git a/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/fans/phosphor-fan-control-zone-conditions-config.bb b/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/fans/phosphor-fan-control-zone-conditions-config.bb index 1dc11499..31917534 100644 --- a/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/fans/phosphor-fan-control-zone-conditions-config.bb +++ b/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/fans/phosphor-fan-control-zone-conditions-config.bb @@ -1,7 +1,7 @@ SUMMARY = "Phosphor zone conditions definition default data" PR = "r1" LICENSE = "Apache-2.0" -LIC_FILES_CHKSUM = "file://${PHOSPHORBASE}/COPYING.apache-2.0;md5=34400b68072d710fecd0a2940a0d1658" +LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10" inherit allarch inherit phosphor-fan diff --git a/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/fans/phosphor-fan-control-zone-config.bb b/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/fans/phosphor-fan-control-zone-config.bb index e649777e..3e47d92d 100644 --- a/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/fans/phosphor-fan-control-zone-config.bb +++ b/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/fans/phosphor-fan-control-zone-config.bb @@ -1,7 +1,7 @@ SUMMARY = "Phosphor fan zone definition default data" PR = "r1" LICENSE = "Apache-2.0" -LIC_FILES_CHKSUM = "file://${PHOSPHORBASE}/COPYING.apache-2.0;md5=34400b68072d710fecd0a2940a0d1658" +LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10" inherit allarch inherit phosphor-fan diff --git a/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/fans/phosphor-fan-monitor-config.bb b/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/fans/phosphor-fan-monitor-config.bb index 9285981e..98604dee 100644 --- a/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/fans/phosphor-fan-monitor-config.bb +++ b/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/fans/phosphor-fan-monitor-config.bb @@ -1,7 +1,7 @@ SUMMARY = "Phosphor fan monitor definition default data" PR = "r1" LICENSE = "Apache-2.0" -LIC_FILES_CHKSUM = "file://${PHOSPHORBASE}/COPYING.apache-2.0;md5=34400b68072d710fecd0a2940a0d1658" +LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10" inherit allarch inherit phosphor-fan diff --git a/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/fans/phosphor-fan-presence-config.bb b/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/fans/phosphor-fan-presence-config.bb index d4176c51..938509cd 100644 --- a/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/fans/phosphor-fan-presence-config.bb +++ b/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/fans/phosphor-fan-presence-config.bb @@ -7,7 +7,7 @@ SUMMARY = "Config file for phosphor-fan-presence" PR = "r1" LICENSE = "Apache-2.0" -LIC_FILES_CHKSUM = "file://${PHOSPHORBASE}/COPYING.apache-2.0;md5=34400b68072d710fecd0a2940a0d1658" +LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10" inherit allarch inherit phosphor-fan diff --git a/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/fans/phosphor-fan.inc b/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/fans/phosphor-fan.inc index 85619eab..ac96f364 100644 --- a/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/fans/phosphor-fan.inc +++ b/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/fans/phosphor-fan.inc @@ -2,4 +2,4 @@ HOMEPAGE = "https://github.com/openbmc/phosphor-fan-presence" LICENSE = "Apache-2.0" LIC_FILES_CHKSUM = "file://${S}/LICENSE;md5=e3fc50a88d0a364313df4b21ef20c29e" SRC_URI += "git://github.com/openbmc/phosphor-fan-presence" -SRCREV = "efbe7abd508a3e24fc4d1f4ed0ac6c04836c3d72" +SRCREV = "c83457ab1852a34d4ab51060bdde6f197efdd03e" diff --git a/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/fans/phosphor-fan_git.bb b/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/fans/phosphor-fan_git.bb index e7c557ae..ccb69892 100644 --- a/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/fans/phosphor-fan_git.bb +++ b/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/fans/phosphor-fan_git.bb @@ -22,6 +22,7 @@ DEPENDS += "sdeventplus" DEPENDS += "gpioplus" DEPENDS += "phosphor-logging" DEPENDS += "libevdev" +DEPENDS += "nlohmann-json" # Package configuration FAN_PACKAGES = " \ diff --git a/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/fans/phosphor-pid-control_git.bb b/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/fans/phosphor-pid-control_git.bb index 5b61e8c8..9a610632 100644 --- a/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/fans/phosphor-pid-control_git.bb +++ b/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/fans/phosphor-pid-control_git.bb @@ -14,7 +14,7 @@ inherit systemd S = "${WORKDIR}/git" SRC_URI = "git://github.com/openbmc/phosphor-pid-control" -SRCREV = "9bbf333d0c4b6bb47959ef6d0395949fa0fe386c" +SRCREV = "3660b3888af789266b6c84714b4e161a32e6ea54" # Each platform will need a service file that starts # at an appropriate time per system. For instance, if diff --git a/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/flash/obmc-phosphor-flashd.bb b/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/flash/obmc-phosphor-flashd.bb index b596b819..602dbe9e 100644 --- a/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/flash/obmc-phosphor-flashd.bb +++ b/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/flash/obmc-phosphor-flashd.bb @@ -2,7 +2,7 @@ SUMMARY = "Phosphor OpenBMC Flash Management" DESCRIPTION = "Phosphor OpenBMC flash management reference implementation." PR = "r1" LICENSE = "Apache-2.0" -LIC_FILES_CHKSUM = "file://${PHOSPHORBASE}/COPYING.apache-2.0;md5=34400b68072d710fecd0a2940a0d1658" +LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10" inherit obmc-phosphor-pydbus-service diff --git a/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/flash/phosphor-image-signing.bb b/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/flash/phosphor-image-signing.bb index bce98536..16e1d999 100644 --- a/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/flash/phosphor-image-signing.bb +++ b/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/flash/phosphor-image-signing.bb @@ -2,7 +2,7 @@ SUMMARY = "OpenBMC image signing public key" DESCRIPTION = "Public key information to be included in images for image verification." PR = "r1" LICENSE = "Apache-2.0" -LIC_FILES_CHKSUM = "file://${PHOSPHORBASE}/COPYING.apache-2.0;md5=34400b68072d710fecd0a2940a0d1658" +LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10" inherit allarch diff --git a/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/flash/phosphor-insecure-signing-key-native.bb b/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/flash/phosphor-insecure-signing-key-native.bb index dc2243ac..d16cea31 100644 --- a/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/flash/phosphor-insecure-signing-key-native.bb +++ b/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/flash/phosphor-insecure-signing-key-native.bb @@ -2,7 +2,7 @@ SUMMARY = "Insecure private key for testing and development" DESCRIPTION = "Do not use this key to sign images." PR = "r1" LICENSE = "Apache-2.0" -LIC_FILES_CHKSUM = "file://${PHOSPHORBASE}/COPYING.apache-2.0;md5=34400b68072d710fecd0a2940a0d1658" +LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10" inherit allarch inherit native diff --git a/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/flash/phosphor-software-manager-error-native_git.bb b/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/flash/phosphor-software-manager-error-native_git.bb index ade18da8..806f07ca 100644 --- a/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/flash/phosphor-software-manager-error-native_git.bb +++ b/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/flash/phosphor-software-manager-error-native_git.bb @@ -2,7 +2,7 @@ SUMMARY = "Copy error yaml files to known path for elog parsing" PR = "r1" PV = "1.0+git${SRCPV}" LICENSE = "Apache-2.0" -LIC_FILES_CHKSUM = "file://${PHOSPHORBASE}/COPYING.apache-2.0;md5=34400b68072d710fecd0a2940a0d1658" +LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10" inherit native inherit phosphor-dbus-yaml diff --git a/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/flash/phosphor-software-manager.inc b/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/flash/phosphor-software-manager.inc index bdc16038..9b23ba3a 100644 --- a/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/flash/phosphor-software-manager.inc +++ b/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/flash/phosphor-software-manager.inc @@ -2,4 +2,4 @@ HOMEPAGE = "https://github.com/openbmc/phosphor-bmc-code-mgmt" LICENSE = "Apache-2.0" LIC_FILES_CHKSUM = "file://LICENSE;md5=e3fc50a88d0a364313df4b21ef20c29e" SRC_URI += "git://github.com/openbmc/phosphor-bmc-code-mgmt" -SRCREV = "a013560f96a9ee5c2db4e1778c7dcee199c3acf1" +SRCREV = "934161873fa1c2d68b9685144741da132867c902" diff --git a/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/flash/phosphor-software-manager_git.bb b/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/flash/phosphor-software-manager_git.bb index 588c55f3..bdd95df8 100644 --- a/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/flash/phosphor-software-manager_git.bb +++ b/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/flash/phosphor-software-manager_git.bb @@ -58,6 +58,7 @@ FILES_${PN}-download-mgr += "${bindir}/phosphor-download-manager" FILES_${PN}-updater += " \ ${bindir}/phosphor-image-updater \ ${bindir}/obmc-flash-bmc \ + /usr/local \ " FILES_${PN}-sync += " \ ${bindir}/phosphor-sync-software-manager \ @@ -70,6 +71,11 @@ DBUS_SERVICE_${PN}-sync += "xyz.openbmc_project.Software.Sync.service" SYSTEMD_SERVICE_${PN}-updater += " \ obmc-flash-bmc-setenv@.service \ + usr-local.mount \ " S = "${WORKDIR}/git" + +do_install_append() { + install -d ${D}/usr/local +} diff --git a/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/gpio/phosphor-gpio-monitor/phosphor-gpio-monitor@.service b/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/gpio/phosphor-gpio-monitor/phosphor-gpio-monitor@.service deleted file mode 100644 index 8d0f4cd5..00000000 --- a/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/gpio/phosphor-gpio-monitor/phosphor-gpio-monitor@.service +++ /dev/null @@ -1,8 +0,0 @@ -[Unit] -Description=Phosphor GPIO %I monitor - -[Service] -Restart=no -EnvironmentFile={envfiledir}/obmc/gpio/%I -ExecStart=/usr/bin/env phosphor-gpio-monitor --path=${{DEVPATH}} --key=${{KEY}} --polarity=${{POLARITY}} --target=${{TARGET}} ${{EXTRA_ARGS}} -SyslogIdentifier=phosphor-gpio-monitor diff --git a/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/gpio/phosphor-gpio-monitor/phosphor-gpio-presence@.service b/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/gpio/phosphor-gpio-monitor/phosphor-gpio-presence@.service deleted file mode 100644 index a92f82c8..00000000 --- a/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/gpio/phosphor-gpio-monitor/phosphor-gpio-presence@.service +++ /dev/null @@ -1,13 +0,0 @@ -[Unit] -Description=Phosphor GPIO %I Presence -Wants=mapper-wait@-xyz-openbmc_project-inventory.service -After=mapper-wait@-xyz-openbmc_project-inventory.service -ConditionPathExists={envfiledir}/obmc/gpio/phosphor-power-supply-%i.conf - -[Service] -EnvironmentFile={envfiledir}/obmc/gpio/phosphor-power-supply-%i.conf -ExecStart=/usr/bin/env phosphor-gpio-presence --path=${{DEVPATH}} --inventory=${{INVENTORY}} --key=${{KEY}} --name=${{NAME}} --drivers=${{DRIVERS}} --extra-ifaces=${{EXTRA_IFACES}} -SyslogIdentifier=phosphor-gpio-presence - -[Install] -RequiredBy=multi-user.target diff --git a/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/gpio/phosphor-gpio-monitor_git.bb b/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/gpio/phosphor-gpio-monitor_git.bb index 683a5aca..36ffe9c9 100644 --- a/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/gpio/phosphor-gpio-monitor_git.bb +++ b/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/gpio/phosphor-gpio-monitor_git.bb @@ -5,7 +5,7 @@ PR = "r1" PV = "1.0+git${SRCPV}" LICENSE = "Apache-2.0" LIC_FILES_CHKSUM = "file://LICENSE;md5=e3fc50a88d0a364313df4b21ef20c29e" -inherit autotools pkgconfig +inherit meson pkgconfig inherit obmc-phosphor-dbus-service GPIO_PACKAGES = " \ @@ -23,20 +23,26 @@ RPROVIDES_${PN}-presence += "virtual/obmc-gpio-presence" PROVIDES += "virtual/obmc-gpio-monitor" PROVIDES += "virtual/obmc-gpio-presence" -DEPENDS += "autoconf-archive-native" DEPENDS += "sdbusplus sdbusplus-native" DEPENDS += "phosphor-dbus-interfaces" DEPENDS += "libevdev" DEPENDS += "phosphor-logging" DEPENDS += "systemd" +DEPENDS += "boost" +DEPENDS += "libgpiod" +DEPENDS += "cli11" +DEPENDS += "nlohmann-json" +SYSTEMD_SERVICE_${PN}-monitor += "phosphor-multi-gpio-monitor.service" SYSTEMD_SERVICE_${PN}-monitor += "phosphor-gpio-monitor@.service" SYSTEMD_SERVICE_${PN}-presence += "phosphor-gpio-presence@.service" FILES_${PN}-monitor += "${bindir}/phosphor-gpio-monitor" +FILES_${PN}-monitor += "${bindir}/phosphor-multi-gpio-monitor" FILES_${PN}-monitor += "${bindir}/phosphor-gpio-util" +FILES_${PN}-monitor += "${base_libdir}/udev/rules.d/99-gpio-keys.rules" FILES_${PN}-presence += "${bindir}/phosphor-gpio-presence" SRC_URI += "git://github.com/openbmc/phosphor-gpio-monitor" -SRCREV = "206f0040985e27a0651a9164d7958bf347142a31" +SRCREV = "3b7f4fa427d1926d28d09aa9ecb4bc6e66256c9e" S = "${WORKDIR}/git" diff --git a/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/host/phosphor-host-postd_git.bb b/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/host/phosphor-host-postd_git.bb index e1114e8a..0f19371b 100644 --- a/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/host/phosphor-host-postd_git.bb +++ b/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/host/phosphor-host-postd_git.bb @@ -17,7 +17,7 @@ DEPENDS += "systemd" S = "${WORKDIR}/git" SRC_URI = "git://github.com/openbmc/phosphor-host-postd" -SRCREV = "49a18b220229304b690097041d8028895bd4215a" +SRCREV = "f21475a23019e0a0abbb76417e505843c132255d" SNOOP_DEVICE ?= "aspeed-lpc-snoop0" POST_CODE_BYTES ?= "1" diff --git a/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/images/obmc-phosphor-initramfs.bb b/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/images/obmc-phosphor-initramfs.bb index d77f92c4..739aab50 100644 --- a/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/images/obmc-phosphor-initramfs.bb +++ b/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/images/obmc-phosphor-initramfs.bb @@ -2,10 +2,10 @@ DESCRIPTION = "Small image capable of booting a device. The kernel includes \ the Minimal RAM-based Initial Root Filesystem (initramfs), which finds the \ first 'init' program more efficiently." -PACKAGE_INSTALL = "${VIRTUAL-RUNTIME_base-utils} udev base-passwd ${ROOTFS_BOOTSTRAP_INSTALL} obmc-phosphor-initfs" +PACKAGE_INSTALL = "${VIRTUAL-RUNTIME_base-utils} base-passwd ${ROOTFS_BOOTSTRAP_INSTALL} obmc-phosphor-initfs" # Do not pollute the initrd image with rootfs features -IMAGE_FEATURES = "" +IMAGE_FEATURES = "read-only-rootfs" export IMAGE_BASENAME = "obmc-phosphor-initramfs" IMAGE_LINGUAS = "" @@ -18,6 +18,9 @@ inherit core-image IMAGE_ROOTFS_SIZE = "8192" IMAGE_ROOTFS_EXTRA_SPACE = "0" +# Needed for the set_user_group functions to succeed +DEPENDS += "shadow-native" + PACKAGE_INSTALL_remove = "shadow" PACKAGE_EXCLUDE = "shadow" BAD_RECOMMENDATIONS += "busybox-syslog" diff --git a/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/initrdscripts/obmc-phosphor-initfs.bb b/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/initrdscripts/obmc-phosphor-initfs.bb index ab2c38e9..4c6fad8e 100644 --- a/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/initrdscripts/obmc-phosphor-initfs.bb +++ b/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/initrdscripts/obmc-phosphor-initfs.bb @@ -1,7 +1,7 @@ SUMMARY = "Phosphor OpenBMC pre-init scripts" DESCRIPTION = "Phosphor OpenBMC filesystem mount reference implementation." LICENSE = "Apache-2.0" -LIC_FILES_CHKSUM = "file://${PHOSPHORBASE}/COPYING.apache-2.0;md5=34400b68072d710fecd0a2940a0d1658" +LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10" PR = "r1" diff --git a/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/interfaces/bmcweb_git.bb b/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/interfaces/bmcweb_git.bb index 48a0c565..2dedd6d0 100644 --- a/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/interfaces/bmcweb_git.bb +++ b/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/interfaces/bmcweb_git.bb @@ -6,8 +6,6 @@ USERADD_PACKAGES = "${PN}" # add a user called httpd for the server to assume USERADD_PARAM_${PN} = "-r -s /usr/sbin/nologin bmcweb" GROUPADD_PARAM_${PN} = "web; redfish" -# Add root user to web & redfish group -GROUPMEMS_PARAM_${PN} = "-g web -a root; -g redfish -a root" LICENSE = "Apache-2.0" LIC_FILES_CHKSUM = "file://LICENCE;md5=a6a4edad4aed50f39a66d098d74b265b" @@ -15,7 +13,7 @@ LIC_FILES_CHKSUM = "file://LICENCE;md5=a6a4edad4aed50f39a66d098d74b265b" SRC_URI = "git://github.com/openbmc/bmcweb.git" PV = "1.0+git${SRCPV}" -SRCREV = "a2730f017069aeb39ea5d3bf4c1403965b2ba2f9" +SRCREV = "42cbe53889b5f2d358d1174245df51a23efcb3f8" S = "${WORKDIR}/git" diff --git a/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/inventory/phosphor-inventory-manager-assettag.bb b/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/inventory/phosphor-inventory-manager-assettag.bb index 2dd6e281..2cba64e7 100644 --- a/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/inventory/phosphor-inventory-manager-assettag.bb +++ b/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/inventory/phosphor-inventory-manager-assettag.bb @@ -1,7 +1,7 @@ SUMMARY = "Recipe to create AssetTag property in inventory manager" PR = "r1" LICENSE = "Apache-2.0" -LIC_FILES_CHKSUM = "file://${PHOSPHORBASE}/COPYING.apache-2.0;md5=34400b68072d710fecd0a2940a0d1658" +LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10" inherit allarch inherit phosphor-inventory-manager diff --git a/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/inventory/phosphor-inventory-manager.inc b/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/inventory/phosphor-inventory-manager.inc index d046e4a8..d4c9672b 100644 --- a/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/inventory/phosphor-inventory-manager.inc +++ b/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/inventory/phosphor-inventory-manager.inc @@ -2,4 +2,4 @@ HOMEPAGE = "http://github.com/openbmc/phosphor-inventory-manager" LICENSE = "Apache-2.0" LIC_FILES_CHKSUM = "file://LICENSE;md5=e3fc50a88d0a364313df4b21ef20c29e" SRC_URI = "git://github.com/openbmc/phosphor-inventory-manager" -SRCREV = "ded627c42f5e5319e3704fff742a0227c05f00a9" \ No newline at end of file +SRCREV = "5a71b4c637ea92f5801007503968a4c4999bcab1" diff --git a/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/ipmi/ipmi-blob-tool_git.bb b/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/ipmi/ipmi-blob-tool_git.bb index bb16749a..f871088d 100644 --- a/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/ipmi/ipmi-blob-tool_git.bb +++ b/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/ipmi/ipmi-blob-tool_git.bb @@ -14,4 +14,4 @@ EXTRA_OECONF = "--disable-tests" S = "${WORKDIR}/git" SRC_URI = "git://github.com/openbmc/ipmi-blob-tool" -SRCREV = "958f1ce952849300ebfd30cc04ce86937d3bc718" +SRCREV = "00f39b84037a840a1b169a8017be75ac6636cb6f" diff --git a/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/ipmi/ipmitool_%.bbappend b/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/ipmi/ipmitool_%.bbappend index 5f25f5db..d52f3303 100644 --- a/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/ipmi/ipmitool_%.bbappend +++ b/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/ipmi/ipmitool_%.bbappend @@ -13,6 +13,6 @@ SRC_URI += " \ S = "${WORKDIR}/git" LIC_FILES_CHKSUM = "file://${S}/COPYING;md5=9aa91e13d644326bf281924212862184" -EXTRA_OECONF_append = " --enable-intf-dbus DEFAULT_INTF=dbus " +EXTRA_OECONF_append = " --disable-ipmishell --enable-intf-dbus DEFAULT_INTF=dbus " PV = "1.8.18+git${SRCPV}" diff --git a/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-blobs_git.bb b/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-blobs_git.bb index e77ecd8e..55bac7d7 100644 --- a/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-blobs_git.bb +++ b/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-blobs_git.bb @@ -16,7 +16,7 @@ DEPENDS += "ipmi-blob-tool" S = "${WORKDIR}/git" SRC_URI = "git://github.com/openbmc/phosphor-ipmi-blobs" -SRCREV = "8bc117792fbf118dd74d015546c22612961ccc26" +SRCREV = "9cd8f76d3a786645ba6e21e146f66f5f27a6290c" FILES_${PN}_append = " ${libdir}/ipmid-providers/lib*${SOLIBS}" FILES_${PN}_append = " ${libdir}/host-ipmid/lib*${SOLIBS}" diff --git a/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-bt_git.bb b/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-bt_git.bb index a3180402..e702d248 100644 --- a/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-bt_git.bb +++ b/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-bt_git.bb @@ -20,7 +20,3 @@ DEPENDS += "systemd" S = "${WORKDIR}/git" SRC_URI += "git://github.com/openbmc/btbridge" SRCREV="aa5511d28ff9acee4a404c6397d09f5187812ed8" - -# This is how linux-libc-headers says to include custom uapi headers -CFLAGS_append = " -I ${STAGING_KERNEL_DIR}/include/uapi" -do_configure[depends] += "virtual/kernel:do_shared_workdir" diff --git a/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-config.bb b/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-config.bb index 96e977c1..8de43d28 100644 --- a/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-config.bb +++ b/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-config.bb @@ -1,7 +1,7 @@ SUMMARY = "Phosphor IPMI daemon configuration" PR = "r1" LICENSE = "Apache-2.0" -LIC_FILES_CHKSUM = "file://${PHOSPHORBASE}/COPYING.apache-2.0;md5=34400b68072d710fecd0a2940a0d1658" +LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10" inherit allarch @@ -13,6 +13,7 @@ SRC_URI = " \ file://power_reading.json \ file://channel_access.json \ file://channel_config.json \ + file://entity-map.json \ " FILES_${PN} = " \ @@ -23,6 +24,7 @@ FILES_${PN} = " \ ${datadir}/ipmi-providers/power_reading.json \ ${datadir}/ipmi-providers/channel_access.json \ ${datadir}/ipmi-providers/channel_config.json \ + ${datadir}/ipmi-providers/entity-map.json \ " do_fetch[noexec] = "1" @@ -46,5 +48,6 @@ do_install() { ${D}${datadir}/ipmi-providers/channel_access.json install -m 0644 -D ${WORKDIR}/channel_config.json \ ${D}${datadir}/ipmi-providers/channel_config.json - + install -m 0644 -D ${WORKDIR}/entity-map.json \ + ${D}${datadir}/ipmi-providers/entity-map.json } diff --git a/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-config/entity-map.json b/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-config/entity-map.json new file mode 100644 index 00000000..cdb1ea84 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-config/entity-map.json @@ -0,0 +1,15 @@ +[ + { + "id" : 1, + "containerEntityId" : 30, + "containerEntityInstance" : 1, + "isList" : true, + "isLinked" : false, + "entities" : [ + {"id" : 3, "instance" : 1}, + {"id" : 4, "instance" : 1}, + {"id" : 0, "instance" : 0}, + {"id" : 0, "instance" : 0} + ] + } +] diff --git a/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-flash_git.bb b/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-flash_git.bb index db3999bb..03d93f58 100644 --- a/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-flash_git.bb +++ b/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-flash_git.bb @@ -21,14 +21,31 @@ DEPENDS += "pciutils" PACKAGECONFIG ?= "cleanup-delete" PACKAGECONFIG[cleanup-delete] = "--enable-cleanup-delete, --disable-cleanup-delete" # If using static-layout, reboot-update is a good option to handle updating. +# To be able to track the update status, update-status option can be used. +# Note that both reboot-update and update-status cannot be enabled at the same time. PACKAGECONFIG[reboot-update] = "--enable-reboot-update, --disable-reboot-update" +PACKAGECONFIG[update-status] = "--enable-update-status, --disable-update-status" + +# Default options for supporting various flash types: +PACKAGECONFIG[static-bmc] = "--enable-static-layout, --disable-static-layout" +PACKAGECONFIG[ubitar-bmc] = "--enable-tarball-ubi, --disable-tarball-ubi" PACKAGECONFIG[host-bios] = "--enable-host-bios, --disable-host-bios" +# Hardware options to enable transmitting the data from the host. +PACKAGECONFIG[aspeed-p2a] = "--enable-aspeed-p2a, --disable-aspeed-p2a" +PACKAGECONFIG[aspeed-lpc] = "--enable-aspeed-lpc, --disable-aspeed-lpc" +PACKAGECONFIG[nuvoton-lpc] = "--enable-nuvoton-lpc, --disable-nuvoton-lpc" +PACKAGECONFIG[net-bridge] = "--enable-net-bridge, --disable-net-bridge" + EXTRA_OECONF = "--disable-tests --disable-build-host-tool" +# Set this variable in your recipe to set it instead of using MAPPED_ADDRESS directly. +IPMI_FLASH_BMC_ADDRESS ?= "0" +EXTRA_OECONF_append = " MAPPED_ADDRESS=${IPMI_FLASH_BMC_ADDRESS}" + S = "${WORKDIR}/git" SRC_URI = "git://github.com/openbmc/phosphor-ipmi-flash" -SRCREV = "c9792e75361c86da7f674976eacd03c761021d2f" +SRCREV = "aae4c2e3aff481ab52838569b673912ea2973e64" SYSTEMD_PACKAGES = "${PN}" SYSTEMD_SERVICE_${PN} += "phosphor-ipmi-flash-bmc-prepare.target \ diff --git a/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-fru-merge-config-native.bb b/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-fru-merge-config-native.bb index 734aca11..d86b7e9f 100644 --- a/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-fru-merge-config-native.bb +++ b/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-fru-merge-config-native.bb @@ -5,7 +5,7 @@ files generated by gen-ipmi-fru.pl into a single config file. \ fru-gen parser parses the merged config file and generates cpp file" PR = "r1" LICENSE = "Apache-2.0" -LIC_FILES_CHKSUM = "file://${PHOSPHORBASE}/COPYING.apache-2.0;md5=34400b68072d710fecd0a2940a0d1658" +LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10" inherit native inherit phosphor-ipmi-host diff --git a/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-fru-properties-mrw-native.bb b/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-fru-properties-mrw-native.bb index 31fba5aa..5c1a4b4c 100644 --- a/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-fru-properties-mrw-native.bb +++ b/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-fru-properties-mrw-native.bb @@ -1,7 +1,7 @@ SUMMARY = "FRU properties config for ipmi-fru-parser" PR = "r1" LICENSE = "Apache-2.0" -LIC_FILES_CHKSUM = "file://${PHOSPHORBASE}/COPYING.apache-2.0;md5=34400b68072d710fecd0a2940a0d1658" +LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10" inherit native inherit phosphor-ipmi-fru diff --git a/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-fru-properties-native.bb b/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-fru-properties-native.bb index 02f4514e..5b56f6bd 100644 --- a/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-fru-properties-native.bb +++ b/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-fru-properties-native.bb @@ -1,7 +1,7 @@ SUMMARY = "FRU properties config for ipmi-fru-parser" PR = "r1" LICENSE = "Apache-2.0" -LIC_FILES_CHKSUM = "file://${PHOSPHORBASE}/COPYING.apache-2.0;md5=34400b68072d710fecd0a2940a0d1658" +LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10" inherit native inherit phosphor-ipmi-fru diff --git a/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-fru-read-bmc-inventory-native.bb b/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-fru-read-bmc-inventory-native.bb index 1cd726f1..dc696b13 100644 --- a/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-fru-read-bmc-inventory-native.bb +++ b/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-fru-read-bmc-inventory-native.bb @@ -1,7 +1,7 @@ SUMMARY = "BMC accesible FRU inventory map for phosphor-ipmi-host" PR = "r1" LICENSE = "Apache-2.0" -LIC_FILES_CHKSUM = "file://${PHOSPHORBASE}/COPYING.apache-2.0;md5=34400b68072d710fecd0a2940a0d1658" +LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10" inherit native inherit phosphor-ipmi-host diff --git a/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-fru-read-not-sent-by-host-inventory-native.bb b/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-fru-read-not-sent-by-host-inventory-native.bb index 6c0da6cc..82864874 100644 --- a/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-fru-read-not-sent-by-host-inventory-native.bb +++ b/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-fru-read-not-sent-by-host-inventory-native.bb @@ -1,7 +1,7 @@ SUMMARY = "The inventory map of frus not sent by host for phosphor-ipmi-host" PR = "r1" LICENSE = "Apache-2.0" -LIC_FILES_CHKSUM = "file://${PHOSPHORBASE}/COPYING.apache-2.0;md5=34400b68072d710fecd0a2940a0d1658" +LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10" inherit native inherit phosphor-ipmi-host diff --git a/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-fru-whitelist-native.bb b/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-fru-whitelist-native.bb index 99036b52..a4e93e26 100644 --- a/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-fru-whitelist-native.bb +++ b/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-fru-whitelist-native.bb @@ -1,7 +1,7 @@ SUMMARY = "Whitelisted IPMI FRU Parser commands" DESCRIPTION = "Whitelisted IPMI FRU Parser commands for OpenBMC" LICENSE = "Apache-2.0" -LIC_FILES_CHKSUM = "file://${PHOSPHORBASE}/COPYING.apache-2.0;md5=34400b68072d710fecd0a2940a0d1658" +LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10" inherit native inherit phosphor-ipmi-host-whitelist diff --git a/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-fru.inc b/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-fru.inc index b50d18e9..1e85b935 100644 --- a/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-fru.inc +++ b/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-fru.inc @@ -2,4 +2,4 @@ HOMEPAGE = "https://github.com/openbmc/ipmi-fru-parser" LICENSE = "GPL-3.0" LIC_FILES_CHKSUM = "file://LICENSE;md5=7702f203b58979ebbc31bfaeb44f219c" SRC_URI += "git://github.com/openbmc/ipmi-fru-parser" -SRCREV = "de0a59ee05cfd97cca16654fc21654fc89ab72fa" +SRCREV = "686da1839e3416f0edf48dacb4c0e0d13daa8a16" diff --git a/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-host.inc b/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-host.inc index 1d4d41f9..e5aa7264 100644 --- a/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-host.inc +++ b/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-host.inc @@ -2,4 +2,4 @@ HOMEPAGE = "http://github.com/openbmc/phosphor-host-ipmid" LICENSE = "Apache-2.0" LIC_FILES_CHKSUM = "file://LICENSE;md5=fa818a259cbed7ce8bc2a22d35a464fc" SRC_URI += "git://github.com/openbmc/phosphor-host-ipmid" -SRCREV = "e5c9d2fbd8776c9ecbd27fe8849f307ca9bb777a" +SRCREV = "df661155de7967c7b184ec04745f4db5b45e0245" diff --git a/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-host/entity.yaml b/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-host/entity.yaml deleted file mode 100644 index f41c2fda..00000000 --- a/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-host/entity.yaml +++ /dev/null @@ -1,13 +0,0 @@ -0x01: - containerEntityId: 0x1E - containerEntityInstance: 0x1 - isList: "true" - isLinked: "false" - entityId1: 0x03 - entityInstance1: 0x1 - entityId2: 0x04 - entityInstance2: 0x1 - entityId3: 0x00 - entityInstance3: 0x00 - entityId4: 0x00 - entityInstance4: 0x00 diff --git a/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-host_git.bb b/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-host_git.bb index f5606cbf..6bd95e86 100644 --- a/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-host_git.bb +++ b/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-host_git.bb @@ -14,8 +14,6 @@ inherit obmc-phosphor-systemd inherit phosphor-ipmi-host inherit pythonnative -SRC_URI += "file://entity.yaml" - def ipmi_whitelists(d): whitelists = d.getVar( 'VIRTUAL-RUNTIME_phosphor-ipmi-providers', True) or '' @@ -25,7 +23,7 @@ def ipmi_whitelists(d): DEPENDS += "autoconf-archive-native" DEPENDS += "nlohmann-json" -DEPENDS += "obmc-targets" +DEPENDS += "phosphor-state-manager" DEPENDS += "${@ipmi_whitelists(d)}" DEPENDS += "phosphor-dbus-interfaces" DEPENDS += "phosphor-logging" @@ -56,8 +54,6 @@ inherit useradd USERADD_PACKAGES = "${PN}" # add ipmi group GROUPADD_PARAM_${PN} = "ipmi" -# Add root user to ipmi group -GROUPMEMS_PARAM_${PN} = "-g ipmi -a root" SYSTEMD_SERVICE_${PN} += "xyz.openbmc_project.Ipmi.Internal.SoftPowerOff.service phosphor-ipmi-host.service" @@ -103,16 +99,6 @@ SOFT_TGTFMT = "obmc-host-shutdown@{0}.target" SOFT_FMT = "../${SOFT_SVC}:${SOFT_TGTFMT}.requires/${SOFT_SVC}" SYSTEMD_LINK_${PN} += "${@compose_list_zip(d, 'SOFT_FMT', 'OBMC_HOST_INSTANCES')}" -do_replace_entity_default() { - # The in-repo provided default is tailored to testing the ipmid code. - # Replace it with a reasonable default for users. - cp entity.yaml ${S}/scripts/entity-example.yaml -} - -do_patch_append() { - bb.build.exec_func('do_replace_entity_default', d) -} - #Collect all hardcoded sensor yamls from different recipes and #merge all of them with sensor.yaml. python do_merge_sensors () { diff --git a/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-inventory-sel-mrw-native.bb b/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-inventory-sel-mrw-native.bb index 6989358f..86a6411c 100644 --- a/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-inventory-sel-mrw-native.bb +++ b/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-inventory-sel-mrw-native.bb @@ -1,7 +1,7 @@ SUMMARY = "Inventory to Sensor config for phosphor-host-ipmi" PR = "r1" LICENSE = "Apache-2.0" -LIC_FILES_CHKSUM = "file://${PHOSPHORBASE}/COPYING.apache-2.0;md5=34400b68072d710fecd0a2940a0d1658" +LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10" inherit native inherit phosphor-ipmi-host diff --git a/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-inventory-sel-native.bb b/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-inventory-sel-native.bb index b99ccc76..2a0aab67 100644 --- a/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-inventory-sel-native.bb +++ b/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-inventory-sel-native.bb @@ -1,7 +1,7 @@ SUMMARY = "Inventory to Sensor config for non-mrw machines" PR = "r1" LICENSE = "Apache-2.0" -LIC_FILES_CHKSUM = "file://${PHOSPHORBASE}/COPYING.apache-2.0;md5=34400b68072d710fecd0a2940a0d1658" +LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10" inherit native inherit phosphor-ipmi-host diff --git a/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-ipmb_git.bb b/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-ipmb_git.bb index 127a8c65..26617a91 100644 --- a/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-ipmb_git.bb +++ b/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-ipmb_git.bb @@ -3,7 +3,7 @@ DESCRIPTION = "The IPMB bridge implements a Dbus compliant interface for \ implementing IPMB interfaces" SRC_URI = "git://github.com/openbmc/ipmbbridge.git" -SRCREV = "bbfd00abdbc6d2f7c0389eae91cc055a1d4fe0c3" +SRCREV = "a86059348fe133725f4616f3e46ff0d555db4039" PV = "0.1+git${SRCPV}" LICENSE = "Apache-2.0" diff --git a/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-kcs_git.bb b/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-kcs_git.bb index 075e6cf6..3cb16307 100644 --- a/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-kcs_git.bb +++ b/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-kcs_git.bb @@ -30,8 +30,4 @@ DEPENDS += " \ S = "${WORKDIR}/git" SRC_URI = "git://github.com/openbmc/kcsbridge.git" -SRCREV = "2cdc49585235a6557c9cbb6c8b75c064fc02681a" - -# This is how linux-libc-headers says to include custom uapi headers -CFLAGS_append = " -I ${STAGING_KERNEL_DIR}/include/uapi" -do_configure[depends] += "virtual/kernel:do_shared_workdir" +SRCREV = "46525ae48db23333493ac927c12ed13a0e663de5" diff --git a/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-net_git.bb b/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-net_git.bb index 4bf617b8..114ffb39 100644 --- a/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-net_git.bb +++ b/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-net_git.bb @@ -16,7 +16,7 @@ DEPENDS += "systemd" DEPENDS += "phosphor-ipmi-host" SRC_URI += "git://github.com/openbmc/phosphor-net-ipmid" -SRCREV = "f8a34fc47183c553b9e78301e6f55170dbb7976d" +SRCREV = "706ef5ab2383032fdcb0c209a4d3e0c32464b656" S = "${WORKDIR}/git" diff --git a/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-sensor-config-native.bb b/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-sensor-config-native.bb index dfbb9387..6259e4fe 100644 --- a/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-sensor-config-native.bb +++ b/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-sensor-config-native.bb @@ -1,7 +1,7 @@ SUMMARY = "OpenBMC - IPMI sensors" PR = "r1" LICENSE = "Apache-2.0" -LIC_FILES_CHKSUM = "file://${PHOSPHORBASE}/COPYING.apache-2.0;md5=34400b68072d710fecd0a2940a0d1658" +LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10" inherit native diff --git a/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-sensor-inventory-mrw-config-native.bb b/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-sensor-inventory-mrw-config-native.bb index a01a5430..76fff8e2 100644 --- a/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-sensor-inventory-mrw-config-native.bb +++ b/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-sensor-inventory-mrw-config-native.bb @@ -1,7 +1,7 @@ SUMMARY = "sensor config for phosphor-host-ipmid" PR = "r1" LICENSE = "Apache-2.0" -LIC_FILES_CHKSUM = "file://${PHOSPHORBASE}/COPYING.apache-2.0;md5=34400b68072d710fecd0a2940a0d1658" +LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10" inherit native inherit phosphor-ipmi-host diff --git a/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-sensor-inventory-mrw-native.bb b/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-sensor-inventory-mrw-native.bb index 5d679b4f..23bd32b4 100644 --- a/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-sensor-inventory-mrw-native.bb +++ b/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-sensor-inventory-mrw-native.bb @@ -1,7 +1,7 @@ SUMMARY = "sensor config for phosphor-host-ipmid" PR = "r1" LICENSE = "Apache-2.0" -LIC_FILES_CHKSUM = "file://${PHOSPHORBASE}/COPYING.apache-2.0;md5=34400b68072d710fecd0a2940a0d1658" +LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10" inherit native inherit phosphor-ipmi-host diff --git a/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-sensor-inventory-native.bb b/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-sensor-inventory-native.bb index 4e58cf44..1f5df6d2 100644 --- a/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-sensor-inventory-native.bb +++ b/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-sensor-inventory-native.bb @@ -1,7 +1,7 @@ SUMMARY = "Sensor config for phosphor-host-ipmi" PR = "r1" LICENSE = "Apache-2.0" -LIC_FILES_CHKSUM = "file://${PHOSPHORBASE}/COPYING.apache-2.0;md5=34400b68072d710fecd0a2940a0d1658" +LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10" inherit native inherit phosphor-ipmi-host diff --git a/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/leds/phosphor-led-manager-config-mrw-native.bb b/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/leds/phosphor-led-manager-config-mrw-native.bb index ccc0fc28..4eeb6cec 100644 --- a/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/leds/phosphor-led-manager-config-mrw-native.bb +++ b/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/leds/phosphor-led-manager-config-mrw-native.bb @@ -1,7 +1,7 @@ SUMMARY = "Phosphor LED Group Management with MRW generated data" PR = "r1" LICENSE = "Apache-2.0" -LIC_FILES_CHKSUM = "file://${PHOSPHORBASE}/COPYING.apache-2.0;md5=34400b68072d710fecd0a2940a0d1658" +LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10" inherit native inherit mrw-xml diff --git a/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/leds/phosphor-led-manager-error-native_git.bb b/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/leds/phosphor-led-manager-error-native_git.bb index a2b9c3f7..a2447674 100644 --- a/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/leds/phosphor-led-manager-error-native_git.bb +++ b/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/leds/phosphor-led-manager-error-native_git.bb @@ -2,7 +2,7 @@ SUMMARY = "Copy error yaml files to known path for elog parsing" PR = "r1" PV = "1.0+git${SRCPV}" LICENSE = "Apache-2.0" -LIC_FILES_CHKSUM = "file://${PHOSPHORBASE}/COPYING.apache-2.0;md5=34400b68072d710fecd0a2940a0d1658" +LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10" inherit native inherit phosphor-dbus-yaml diff --git a/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/leds/phosphor-led-manager.inc b/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/leds/phosphor-led-manager.inc index d7c473a1..d78f40db 100644 --- a/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/leds/phosphor-led-manager.inc +++ b/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/leds/phosphor-led-manager.inc @@ -2,4 +2,4 @@ HOMEPAGE = "http://github.com/openbmc/phosphor-led-manager" LICENSE = "Apache-2.0" LIC_FILES_CHKSUM = "file://LICENSE;md5=e3fc50a88d0a364313df4b21ef20c29e" SRC_URI += "git://github.com/openbmc/phosphor-led-manager" -SRCREV = "6fd9e440be73865d99cd408e0f87ec639882267b" +SRCREV = "3518e18a0e70da1a9707bc071f14118b0d29166b" diff --git a/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/leds/phosphor-led-sysfs_git.bb b/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/leds/phosphor-led-sysfs_git.bb index 5decc70c..052aa850 100644 --- a/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/leds/phosphor-led-sysfs_git.bb +++ b/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/leds/phosphor-led-sysfs_git.bb @@ -19,10 +19,10 @@ DBUS_SERVICE_${PN} += "xyz.openbmc_project.led.controller@.service" SRC_URI += "git://github.com/openbmc/phosphor-led-sysfs" SRC_URI += "file://70-leds.rules" -SRCREV = "97ddb72359663b5ca9d8e0c22588f0022f729ced" +SRCREV = "ca3dd7dd91830515251bbf91ba0644052c630be2" S = "${WORKDIR}/git" do_install_append() { install -d ${D}/${base_libdir}/udev/rules.d/ - install ${WORKDIR}/70-leds.rules ${D}/${base_libdir}/udev/rules.d/ + install -m 0644 ${WORKDIR}/70-leds.rules ${D}/${base_libdir}/udev/rules.d/ } diff --git a/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/logging/phosphor-logging-callouts-example-native.bb b/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/logging/phosphor-logging-callouts-example-native.bb index 434d5d02..7362c792 100644 --- a/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/logging/phosphor-logging-callouts-example-native.bb +++ b/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/logging/phosphor-logging-callouts-example-native.bb @@ -1,7 +1,7 @@ SUMMARY = "Generated callout information for phosphor-logging" PR = "r1" LICENSE = "Apache-2.0" -LIC_FILES_CHKSUM = "file://${PHOSPHORBASE}/COPYING.apache-2.0;md5=34400b68072d710fecd0a2940a0d1658" +LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10" inherit native inherit phosphor-logging diff --git a/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/logging/phosphor-logging-callouts-mrw-native.bb b/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/logging/phosphor-logging-callouts-mrw-native.bb index be53df53..9515c688 100644 --- a/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/logging/phosphor-logging-callouts-mrw-native.bb +++ b/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/logging/phosphor-logging-callouts-mrw-native.bb @@ -1,7 +1,7 @@ SUMMARY = "Generated callout information for phosphor-logging" PR = "r1" LICENSE = "Apache-2.0" -LIC_FILES_CHKSUM = "file://${PHOSPHORBASE}/COPYING.apache-2.0;md5=34400b68072d710fecd0a2940a0d1658" +LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10" inherit native inherit phosphor-logging diff --git a/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/logging/phosphor-logging-error-logs-native.bb b/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/logging/phosphor-logging-error-logs-native.bb index ddb7faa5..23464ebb 100644 --- a/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/logging/phosphor-logging-error-logs-native.bb +++ b/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/logging/phosphor-logging-error-logs-native.bb @@ -1,7 +1,7 @@ SUMMARY = "Phosphor OpenBMC - error log meta data generation" PR = "r1" LICENSE = "Apache-2.0" -LIC_FILES_CHKSUM = "file://${PHOSPHORBASE}/COPYING.apache-2.0;md5=34400b68072d710fecd0a2940a0d1658" +LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10" inherit native diff --git a/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/logging/phosphor-logging_git.bb b/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/logging/phosphor-logging_git.bb index 735dc0b9..89f336b4 100644 --- a/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/logging/phosphor-logging_git.bb +++ b/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/logging/phosphor-logging_git.bb @@ -23,6 +23,7 @@ DEPENDS += "virtual/phosphor-logging-callouts" DEPENDS += "phosphor-logging-error-logs-native" DEPENDS += "phosphor-logging-native" DEPENDS += "libcereal" +DEPENDS += "sdeventplus" PACKAGE_BEFORE_PN = "${PN}-test" FILES_${PN}-test = "${bindir}/*-test" @@ -53,7 +54,7 @@ FILES_phosphor-rsyslog-config += " \ " SRC_URI += "git://github.com/openbmc/phosphor-logging" -SRCREV = "3b81846a764c4f87977b726188df224c0107c760" +SRCREV = "e2d1bf317c0ddf25ddd305aa8f3c6f09118f799c" S = "${WORKDIR}/git" @@ -64,6 +65,7 @@ DEPENDS_remove_class-native = " \ sdbus++ \ systemd \ libcereal \ + sdeventplus \ " # Do not DEPEND on the specified packages for native SDK build @@ -74,6 +76,7 @@ DEPENDS_remove_class-nativesdk = " \ libcereal \ systemd \ phosphor-dbus-interfaces \ + sdeventplus \ " PACKAGECONFIG ??= "metadata-processing install_scripts" @@ -89,6 +92,13 @@ PACKAGECONFIG[install_scripts] = " \ --disable-install_scripts, ,\ " +PACKAGECONFIG[openpower-pels] = " \ + --enable-openpower-pel-extension, \ + --disable-openpower-pel-extension, \ + nlohmann-json nlohmann-fifo cli11 pldm, \ + , \ + " + # Enable install_scripts during native and native SDK build PACKAGECONFIG_add_class-native = "install_scripts" PACKAGECONFIG_add_class-nativesdk = "install_scripts" diff --git a/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/mboxd/files/aspeed-lpc-ctrl-h.patch b/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/mboxd/files/aspeed-lpc-ctrl-h.patch deleted file mode 100644 index 122594e9..00000000 --- a/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/mboxd/files/aspeed-lpc-ctrl-h.patch +++ /dev/null @@ -1,39 +0,0 @@ ---- /dev/null 2017-01-17 09:45:47.987442339 +1030 -+++ include/linux/aspeed-lpc-ctrl.h 2017-01-17 11:12:17.711635876 +1030 -@@ -0,0 +1,36 @@ -+/* -+ * Copyright 2017 IBM Corp. -+ * -+ * This program is free software; you can redistribute it and/or -+ * modify it under the terms of the GNU General Public License -+ * as published by the Free Software Foundation; either version -+ * 2 of the License, or (at your option) any later version. -+ */ -+ -+#ifndef _LINUX_ASPEED_LPC_CTRL_H -+#define _LINUX_ASPEED_LPC_CTRL_H -+ -+#include -+ -+/* Window types */ -+#define ASPEED_LPC_CTRL_WINDOW_FLASH 1 -+#define ASPEED_LPC_CTRL_WINDOW_MEMORY 2 -+ -+struct aspeed_lpc_ctrl_mapping { -+ __u8 window_type; -+ __u8 window_id; -+ __u16 flags; -+ __u32 addr; -+ __u32 offset; -+ __u32 size; -+}; -+ -+#define __ASPEED_LPC_CTRL_IOCTL_MAGIC 0xb2 -+ -+#define ASPEED_LPC_CTRL_IOCTL_GET_SIZE _IOWR(__ASPEED_LPC_CTRL_IOCTL_MAGIC, \ -+ 0x00, struct aspeed_lpc_ctrl_mapping) -+ -+#define ASPEED_LPC_CTRL_IOCTL_MAP _IOW(__ASPEED_LPC_CTRL_IOCTL_MAGIC, \ -+ 0x01, struct aspeed_lpc_ctrl_mapping) -+ -+#endif /* _LINUX_ASPEED_LPC_CTRL_H */ diff --git a/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/mboxd/mboxd/mboxd-reload@.service b/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/mboxd/mboxd/mboxd-reload@.service index be02c7a2..8dcaafda 100644 --- a/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/mboxd/mboxd/mboxd-reload@.service +++ b/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/mboxd/mboxd/mboxd-reload@.service @@ -1,10 +1,10 @@ [Unit] Description=Reload mboxd during power on -Wants=obmc-power-start-pre@%i.target -Before=obmc-power-start-pre@%i.target +Wants=obmc-host-start-pre@%i.target +Before=obmc-host-start-pre@%i.target Wants=mapper-wait@-org-openbmc-mboxd.service After=mapper-wait@-org-openbmc-mboxd.service -Conflicts=obmc-chassis-poweroff@%i.target +Conflicts=obmc-host-stop@%i.target [Service] Type=oneshot @@ -13,4 +13,4 @@ ExecStart=/usr/bin/env mboxctl --reset SyslogIdentifier=mboxctl [Install] -WantedBy=obmc-chassis-poweron@%i.target +WantedBy=obmc-host-startmin@%i.target diff --git a/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/mboxd/mboxd_git.bb b/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/mboxd/mboxd_git.bb index 79de7fa2..0cff9e44 100644 --- a/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/mboxd/mboxd_git.bb +++ b/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/mboxd/mboxd_git.bb @@ -17,32 +17,27 @@ S = "${WORKDIR}/git" SRC_URI += "git://github.com/openbmc/mboxbridge.git" SRC_URI += "file://99-aspeed-lpc-ctrl.rules" -SRC_URI += "file://aspeed-lpc-ctrl-h.patch" -SRCREV="4b8203d721b1114f09712e5ca04e18d10147d8cd" +SRCREV="02821c6ae4b04d21cf0efb175b382c52aad93fc0" PROVIDES += "mboxctl" MBOXD_FLASH_SIZE ??= "32M" SYSTEMD_SUBSTITUTIONS += "FLASH_SIZE:${MBOXD_FLASH_SIZE}:${PN}.service" -# Hacks because ${STAGING_KERNEL_DIR} points to the kernel source tree, not the -# installed, pre-processed headers. Requires the aspeed-lpc-ctrl-h patch above. -CFLAGS_append = " -I include" - do_install_append() { install -d ${D}/lib/udev/rules.d install -m 0644 ${WORKDIR}/99-aspeed-lpc-ctrl.rules ${D}/lib/udev/rules.d } TMPL = "mboxd-reload@.service" -TGTFMT = "obmc-chassis-poweron@{0}.target" +TGTFMT = "obmc-host-startmin@{0}.target" INSTFMT = "mboxd-reload@{0}.service" FMT = "../${TMPL}:${TGTFMT}.wants/${INSTFMT}" SYSTEMD_SERVICE_${PN} += "mboxd.service" SYSTEMD_SERVICE_${PN} += "mboxd-reload@.service" -SYSTEMD_LINK_${PN} += "${@compose_list(d, 'FMT', 'OBMC_CHASSIS_INSTANCES')}" +SYSTEMD_LINK_${PN} += "${@compose_list(d, 'FMT', 'OBMC_HOST_INSTANCES')}" # Enable virtual-pnor by DISTRO_FEATURE openpower-ubi-fs. PACKAGECONFIG_append_df-openpower-ubi-fs = "virtual-pnor" diff --git a/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/mrw/mrw-native_git.bb b/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/mrw/mrw-native_git.bb index 80bfabce..b17b7f63 100644 --- a/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/mrw/mrw-native_git.bb +++ b/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/mrw/mrw-native_git.bb @@ -10,7 +10,7 @@ inherit native inherit mrw-xml PHOSPHOR_MRW_LICENSE ?= "Apache-2.0" -PHOSPHOR_MRW_LIC_FILES_CHKSUM ?= "file://${PHOSPHORBASE}/COPYING.apache-2.0;md5=34400b68072d710fecd0a2940a0d1658" +PHOSPHOR_MRW_LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10" PHOSPHOR_MRW_URI ?= "http://missing-mrw-uri" LICENSE = "${PHOSPHOR_MRW_LICENSE}" diff --git a/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/network/inarp/inarp.service b/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/network/inarp/inarp.service deleted file mode 100644 index 6e85131e..00000000 --- a/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/network/inarp/inarp.service +++ /dev/null @@ -1,10 +0,0 @@ -[Unit] -Description=Phosphor Inverse ARP - -[Service] -ExecStart=/usr/bin/env inarp -SyslogIdentifier=inarp -Restart=always - -[Install] -WantedBy=multi-user.target diff --git a/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/network/inarp_git.bb b/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/network/inarp_git.bb deleted file mode 100644 index b03ef5ec..00000000 --- a/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/network/inarp_git.bb +++ /dev/null @@ -1,20 +0,0 @@ -SUMMARY = "Inverse ARP daemon" -DESCRIPTION = "Daemon to respond to Inverse-ARP requests" -HOMEPAGE = "http://github.com/openbmc/inarp" -PR = "r1" -PV = "1.0+git${SRCPV}" -LICENSE = "Apache-2.0" -LIC_FILES_CHKSUM = "file://LICENSE;md5=e3fc50a88d0a364313df4b21ef20c29e" - -inherit autotools -inherit obmc-phosphor-systemd - -DEPENDS += "autoconf-archive-native" -RDEPENDS_${PN} += "phosphor-network" - -SRC_URI += "git://github.com/openbmc/inarp" -SRCREV = "6d579909fc8e623e8a0dd6d4a32a4aee725c32f7" - -S = "${WORKDIR}/git" - -exec_prefix="/usr/local" diff --git a/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/network/phosphor-snmp_git.bb b/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/network/phosphor-snmp_git.bb index 7fc5ba82..9faa30da 100644 --- a/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/network/phosphor-snmp_git.bb +++ b/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/network/phosphor-snmp_git.bb @@ -12,7 +12,7 @@ LICENSE = "Apache-2.0" LIC_FILES_CHKSUM = "file://${WORKDIR}/git/LICENSE;md5=86d3f3a95c324c9479bd8986968f4327" SRC_URI += "git://github.com/openbmc/phosphor-snmp" -SRCREV = "52b3ad2a607703f90b783541f46fdca7c40457b0" +SRCREV = "85c11b9b5dadd5907a268694fd9efcaeef22481d" DBUS_SERVICE_${PN} += "xyz.openbmc_project.Network.SNMP.service" diff --git a/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/packagegroups/packagegroup-obmc-apps.bb b/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/packagegroups/packagegroup-obmc-apps.bb index 96a65c18..28f37536 100644 --- a/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/packagegroups/packagegroup-obmc-apps.bb +++ b/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/packagegroups/packagegroup-obmc-apps.bb @@ -28,6 +28,7 @@ PACKAGES = " \ SUMMARY_${PN}-bmc-state-mgmt = "BMC state management" RDEPENDS_${PN}-bmc-state-mgmt = " \ ${VIRTUAL-RUNTIME_obmc-bmc-state-manager} \ + phosphor-state-manager-systemd-target-monitor \ " SUMMARY_${PN}-chassis-state-mgmt = "Chassis state management" @@ -45,7 +46,6 @@ RDEPENDS_${PN}-extras = " \ obmc-ikvm \ phosphor-dbus-monitor \ phosphor-systemd-policy \ - dbus-broker \ " SUMMARY_${PN}-extrasdev = "Development features" diff --git a/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/pldm/pldm.inc b/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/pldm/pldm.inc new file mode 100644 index 00000000..0c91cea8 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/pldm/pldm.inc @@ -0,0 +1,5 @@ +HOMEPAGE = "https://github.com/openbmc/pldm" +LICENSE = "Apache-2.0" +LIC_FILES_CHKSUM = "file://LICENSE;md5=86d3f3a95c324c9479bd8986968f4327" +SRC_URI = "git://github.com/openbmc/pldm" +SRCREV = "4217488537acf46ec4b89203d79b315817ac9330" diff --git a/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/pldm/pldm_git.bb b/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/pldm/pldm_git.bb new file mode 100644 index 00000000..f9013a90 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/pldm/pldm_git.bb @@ -0,0 +1,22 @@ +SUMMARY = "PLDM Stack" +DESCRIPTION = "Implementation of the PLDM specifications" +PR = "r1" +PV = "1.0+git${SRCPV}" + +inherit meson pkgconfig + +require pldm.inc + +DEPENDS += "systemd" +DEPENDS += "sdeventplus" +DEPENDS += "phosphor-dbus-interfaces" +DEPENDS += "nlohmann-json" +DEPENDS += "boost" +DEPENDS += "cli11" + +S = "${WORKDIR}/git" + +EXTRA_OEMESON = " \ + -Dtests=disabled \ + -Doem-ibm=disabled \ + " diff --git a/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/power/phosphor-power-systemd-links.bb b/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/power/phosphor-power-systemd-links.bb new file mode 100644 index 00000000..2baaf0d7 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/power/phosphor-power-systemd-links.bb @@ -0,0 +1,46 @@ +SUMMARY = "Phosphor Power services installation" +PR = "r1" + +LICENSE = "Apache-2.0" +LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10" + +inherit allarch + +RDEPENDS_${PN} += "phosphor-power" + +ALLOW_EMPTY_${PN} = "1" + +pkg_postinst_${PN}() { + mkdir -p $D$systemd_system_unitdir/obmc-chassis-poweron@0.target.wants + mkdir -p $D$systemd_system_unitdir/multi-user.target.requires + + LINK="$D$systemd_system_unitdir/obmc-chassis-poweron@0.target.wants/pseq-monitor.service" + TARGET="../pseq-monitor.service" + ln -s $TARGET $LINK + + LINK="$D$systemd_system_unitdir/obmc-chassis-poweron@0.target.wants/pseq-monitor-pgood.service" + TARGET="../pseq-monitor-pgood.service" + ln -s $TARGET $LINK + + [ -z "${OBMC_POWER_SUPPLY_INSTANCES}" ] && echo "No power supply instance defined" && exit 1 + + for inst in ${OBMC_POWER_SUPPLY_INSTANCES}; do + LINK="$D$systemd_system_unitdir/multi-user.target.requires/power-supply-monitor@$inst.service" + TARGET="../power-supply-monitor@.service" + ln -s $TARGET $LINK + done +} + +pkg_prerm_${PN}() { + LINK="$D$systemd_system_unitdir/obmc-chassis-poweron@0.target.wants/pseq-monitor.service" + rm $LINK + LINK="$D$systemd_system_unitdir/obmc-chassis-poweron@0.target.wants/pseq-monitor-pgood.service" + rm $LINK + + [ -z "${OBMC_POWER_SUPPLY_INSTANCES}" ] && echo "No power supply instance defined" && exit 1 + + for inst in ${OBMC_POWER_SUPPLY_INSTANCES}; do + LINK="$D$systemd_system_unitdir/multi-user.target.requires/power-supply-monitor@$inst.service" + rm $LINK + done +} diff --git a/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/power/phosphor-power.inc b/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/power/phosphor-power.inc new file mode 100644 index 00000000..65ba223b --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/power/phosphor-power.inc @@ -0,0 +1,5 @@ +HOMEPAGE = "https://github.com/openbmc/phosphor-power" +LICENSE = "Apache-2.0" +LIC_FILES_CHKSUM = "file://${S}/LICENSE;md5=e3fc50a88d0a364313df4b21ef20c29e" +SRC_URI += "git://github.com/openbmc/phosphor-power" +SRCREV = "0dcbdf57b706eabbc3b59198954136fb831fd2bf" diff --git a/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/power/phosphor-power_git.bb b/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/power/phosphor-power_git.bb new file mode 100644 index 00000000..5ae3d966 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/power/phosphor-power_git.bb @@ -0,0 +1,31 @@ +SUMMARY = "Phosphor Power services and utilities" +DESCRIPTION = "Configure and monitor power supplies, power sequencers, and \ +voltage regulators, and analyzes power devices for faults" +PR = "r1" +PV = "1.0+git${SRCPV}" + +inherit meson +inherit pkgconfig +inherit systemd +inherit pythonnative + +require ${PN}.inc + +S = "${WORKDIR}/git" + +# TODO: in future when openpower-dbus-interfaces is removed from +# phosphor-power, remove the dependency here. +DEPENDS += " \ + phosphor-logging \ + openpower-dbus-interfaces \ + sdbus++-native \ + sdeventplus \ + nlohmann-json \ + cli11 \ + i2c-tools \ + " + +SEQ_MONITOR_SVC = "pseq-monitor.service" +SEQ_PGOOD_SVC = "pseq-monitor-pgood.service" +PSU_MONITOR_TMPL = "power-supply-monitor@.service" +SYSTEMD_SERVICE_${PN} += "${SEQ_MONITOR_SVC} ${SEQ_PGOOD_SVC} ${PSU_MONITOR_TMPL}" diff --git a/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/preinit-mounts/preinit-mounts.bb b/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/preinit-mounts/preinit-mounts.bb index 934d8da5..5642f160 100644 --- a/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/preinit-mounts/preinit-mounts.bb +++ b/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/preinit-mounts/preinit-mounts.bb @@ -2,7 +2,7 @@ inherit allarch inherit update-alternatives LICENSE = "Apache-2.0" -LIC_FILES_CHKSUM = "file://${PHOSPHORBASE}/COPYING.apache-2.0;md5=34400b68072d710fecd0a2940a0d1658" +LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10" RDEPENDS_${PN} += "${VIRTUAL-RUNTIME_base-utils}" diff --git a/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/preinit-mounts/preinit-mounts/init b/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/preinit-mounts/preinit-mounts/init index 91f8038f..ad813279 100644 --- a/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/preinit-mounts/preinit-mounts/init +++ b/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/preinit-mounts/preinit-mounts/init @@ -1,5 +1,26 @@ #!/bin/sh +mount_overlay() { + if ! mount overlay /etc -t overlay -o defaults,lowerdir=/etc,upperdir=/var/persist/etc,workdir=/var/persist/etc-work; then + mount overlay /etc -t overlay -o defaults,lowerdir=/etc:/var/persist/etc + fi +} + +recreate_overlay() { + # Attempt to re-create the overlay by moving out the overlay contents and + # copying them back to /etc, which would create them back in the overlay + cd + if ! umount /etc; then + return + fi + rm -rf /var/persist/etc-save + mv /var/persist/etc /var/persist/etc-save + mkdir -p /var/persist/etc + mount_overlay + cp -rp /var/persist/etc-save/* /etc/ + rm -rf /var/persist/etc-save +} + if ! mount ubi0:rwfs /var -t ubifs -o defaults; then if ! mount ubi0:rwfs /var -t ubifs -o defaults,ro; then mount tmpfs /var -t tmpfs -o defaults @@ -12,8 +33,32 @@ rm -rf /var/persist/etc-work/* # rm -rf specifically skips . and .. directories; pipe all output to null to avoid the error message rm -rf /var/persist/etc-work/.* > /dev/null 2>&1 -if ! mount overlay /etc -t overlay -o defaults,lowerdir=/etc,upperdir=/var/persist/etc,workdir=/var/persist/etc-work; then - mount overlay /etc -t overlay -o defaults,lowerdir=/etc:/var/persist/etc -fi +mount_overlay + +# Check if there are any issues accessing the files in /etc after mounting the +# overlay by doing an 'ls' command +error="/var/overlay-error" +recreate_overlay_done= +cd /var/persist/etc/ +files=$(find . -type f) +for i in $files; do + ls -i /etc/$i >/dev/null 2>${error}; + if [[ -s ${error} ]]; then + # We don't have a way to print this error to the journal, delete it + rm -f ${error} + if test -n "$recreate_overlay_done"; then + recreate_overlay + recreate_overlay_done="true" + fi + # Check file once more + ls -i /etc/$i >/dev/null 2>${error}; + if [[ -s ${error} ]]; then + # File still corrupted, delete it from the overlay + echo "Removing corrupted file from overlay: $i" + rm -f ${error} + rm -f /var/persist/etc/$i + fi + fi +done exec /lib/systemd/systemd diff --git a/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/sel-logger/phosphor-sel-logger_git.bb b/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/sel-logger/phosphor-sel-logger_git.bb index 34a2ff72..0c078574 100644 --- a/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/sel-logger/phosphor-sel-logger_git.bb +++ b/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/sel-logger/phosphor-sel-logger_git.bb @@ -18,7 +18,7 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=86d3f3a95c324c9479bd8986968f4327" DEPENDS += "systemd sdbusplus boost phosphor-ipmi-host" SRC_URI = "git://github.com/openbmc/phosphor-sel-logger.git;protocol=git" -SRCREV = "d9d78967503db2a02f2999c217c7c52183386298" +SRCREV = "151b7c1fc62971b7d319146e5ea129d44eadd9d7" PV = "0.1+git${SRCPV}" diff --git a/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/sensors/dbus-sensors_git.bb b/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/sensors/dbus-sensors_git.bb index fb457e33..1529de6e 100644 --- a/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/sensors/dbus-sensors_git.bb +++ b/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/sensors/dbus-sensors_git.bb @@ -2,7 +2,7 @@ SUMMARY = "dbus-sensors" DESCRIPTION = "Dbus Sensor Services Configured from D-Bus" SRC_URI = "git://github.com/openbmc/dbus-sensors.git" -SRCREV = "5665db2ba19be6ec245bb32d88a1027de2f16953" +SRCREV = "48b44233c309503650e75d016ed1fc87d0e84cec" PV = "0.1+git${SRCPV}" @@ -24,8 +24,4 @@ inherit cmake systemd S = "${WORKDIR}/git/" -# linux-libc-headers guides this way to include custom uapi headers -CXXFLAGS_append = " -I ${STAGING_KERNEL_DIR}/include/uapi" -CXXFLAGS_append = " -I ${STAGING_KERNEL_DIR}/include" -do_configure[depends] += "virtual/kernel:do_shared_workdir" EXTRA_OECMAKE = "-DYOCTO=1" diff --git a/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/sensors/phosphor-hwmon-config-mrw.bb b/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/sensors/phosphor-hwmon-config-mrw.bb index 91e4fa59..ab222ab0 100644 --- a/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/sensors/phosphor-hwmon-config-mrw.bb +++ b/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/sensors/phosphor-hwmon-config-mrw.bb @@ -2,7 +2,7 @@ SUMMARY = "Phosphor hwmon configuration generator" DESCRIPTION = "Generate phosphor-hwmon configuration from an MRW." PR = "r1" LICENSE = "Apache-2.0" -LIC_FILES_CHKSUM = "file://${PHOSPHORBASE}/COPYING.apache-2.0;md5=34400b68072d710fecd0a2940a0d1658" +LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10" inherit allarch inherit mrw-xml diff --git a/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/sensors/phosphor-hwmon/start_hwmon.sh b/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/sensors/phosphor-hwmon/start_hwmon.sh index c1ec42e9..2e346d0f 100755 --- a/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/sensors/phosphor-hwmon/start_hwmon.sh +++ b/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/sensors/phosphor-hwmon/start_hwmon.sh @@ -17,7 +17,8 @@ then fi fi +# Needed to re-do escaping used to avoid bitbake separator conflicts path="${path//:/--}" -path="${path//-/\\x2d}" - -systemctl $action 'xyz.openbmc_project.Hwmon@'$path'.service' +# Needed to escape prior to being used as a unit argument +path="$(systemd-escape "$path")" +systemctl --no-block "$action" "xyz.openbmc_project.Hwmon@$path.service" diff --git a/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/sensors/phosphor-hwmon_git.bb b/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/sensors/phosphor-hwmon_git.bb index f909a7fc..3207df4d 100644 --- a/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/sensors/phosphor-hwmon_git.bb +++ b/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/sensors/phosphor-hwmon_git.bb @@ -39,15 +39,15 @@ SRC_URI += "file://70-hwmon.rules" SRC_URI += "file://70-iio.rules" SRC_URI += "file://start_hwmon.sh" -SRCREV = "79205b2c1466f8ee7ab11dc976d33ac0771355ea" +SRCREV = "5906173aec2a48f37d1356f1ade788c8d25530b2" S = "${WORKDIR}/git" do_install_append() { install -d ${D}/${base_libdir}/udev/rules.d/ - install ${WORKDIR}/70-hwmon.rules ${D}/${base_libdir}/udev/rules.d/ - install ${WORKDIR}/70-iio.rules ${D}/${base_libdir}/udev/rules.d/ + install -m 0644 ${WORKDIR}/70-hwmon.rules ${D}/${base_libdir}/udev/rules.d/ + install -m 0644 ${WORKDIR}/70-iio.rules ${D}/${base_libdir}/udev/rules.d/ install -d ${D}${bindir} install -m 0755 ${WORKDIR}/start_hwmon.sh ${D}${bindir} diff --git a/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/settings/phosphor-settings-defaults-native.bb b/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/settings/phosphor-settings-defaults-native.bb index ad156f98..eaf9fba4 100644 --- a/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/settings/phosphor-settings-defaults-native.bb +++ b/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/settings/phosphor-settings-defaults-native.bb @@ -1,7 +1,7 @@ SUMMARY = "Default settings" PR = "r1" LICENSE = "Apache-2.0" -LIC_FILES_CHKSUM = "file://${PHOSPHORBASE}/COPYING.apache-2.0;md5=34400b68072d710fecd0a2940a0d1658" +LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10" inherit native inherit phosphor-settings-manager diff --git a/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/settings/phosphor-settings-defaults/defaults.yaml b/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/settings/phosphor-settings-defaults/defaults.yaml index 72946876..f1b2d1fb 100644 --- a/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/settings/phosphor-settings-defaults/defaults.yaml +++ b/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/settings/phosphor-settings-defaults/defaults.yaml @@ -56,7 +56,7 @@ - Interface: xyz.openbmc_project.Time.Owner Properties: TimeOwner: - Default: Owner::Owners::BMC + Default: Owner::Owners::Both /xyz/openbmc_project/time/sync_method: - Interface: xyz.openbmc_project.Time.Synchronization diff --git a/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/settings/phosphor-settings-manager.inc b/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/settings/phosphor-settings-manager.inc index a3cd9024..a6223e9a 100644 --- a/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/settings/phosphor-settings-manager.inc +++ b/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/settings/phosphor-settings-manager.inc @@ -2,4 +2,4 @@ HOMEPAGE = "http://github.com/openbmc/phosphor-settingsd" LICENSE = "Apache-2.0" LIC_FILES_CHKSUM = "file://${S}/LICENSE;md5=fa818a259cbed7ce8bc2a22d35a464fc" SRC_URI += "git://github.com/openbmc/phosphor-settingsd" -SRCREV = "f1d09b0121d2cad6b996c09122e3266da7eecbfd" +SRCREV = "3d805fe94abf741d4a228f8eef59f70bcb2328a7" diff --git a/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/settings/phosphor-settings-read-settings-mrw-native.bb b/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/settings/phosphor-settings-read-settings-mrw-native.bb index 023626ed..7490d54d 100644 --- a/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/settings/phosphor-settings-read-settings-mrw-native.bb +++ b/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/settings/phosphor-settings-read-settings-mrw-native.bb @@ -5,7 +5,7 @@ SUMMARY = "Generates MRW settings override YAML for phosphor-settings-manager." PR = "r1" LICENSE = "Apache-2.0" -LIC_FILES_CHKSUM = "file://${PHOSPHORBASE}/COPYING.apache-2.0;md5=34400b68072d710fecd0a2940a0d1658" +LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10" inherit native inherit phosphor-settings-manager diff --git a/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/state/files/obmc/phosphor-reboot-host/reboot.conf b/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/state/files/obmc/phosphor-reboot-host/reboot.conf deleted file mode 100644 index 2e3ca1a5..00000000 --- a/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/state/files/obmc/phosphor-reboot-host/reboot.conf +++ /dev/null @@ -1 +0,0 @@ -REBOOT_DELAY=5 diff --git a/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/state/files/phosphor-discover-system-state@.service b/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/state/files/phosphor-discover-system-state@.service deleted file mode 100644 index 4a5e6a7e..00000000 --- a/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/state/files/phosphor-discover-system-state@.service +++ /dev/null @@ -1,19 +0,0 @@ -[Unit] -Description=Reboot If Enabled -Wants=mapper-wait@-xyz-openbmc_project-control-host0-power_restore_policy.service -After=mapper-wait@-xyz-openbmc_project-control-host0-power_restore_policy.service -Wants=mapper-wait@-xyz-openbmc_project-state-host%i.service -After=mapper-wait@-xyz-openbmc_project-state-host%i.service -Wants=mapper-wait@-xyz-openbmc_project-state-chassis%i.service -After=mapper-wait@-xyz-openbmc_project-state-chassis%i.service -After=op-reset-chassis-on@%i.service -ConditionPathExists=!/run/openbmc/chassis@%i-on - -[Service] -Restart=no -Type=oneshot -ExecStart=/usr/bin/env phosphor-discover-system-state --host %i -SyslogIdentifier=phosphor-discover-system-state - -[Install] -WantedBy=multi-user.target diff --git a/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/state/files/phosphor-reboot-host@.service b/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/state/files/phosphor-reboot-host@.service deleted file mode 100644 index 27479f2d..00000000 --- a/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/state/files/phosphor-reboot-host@.service +++ /dev/null @@ -1,18 +0,0 @@ -[Unit] -Description=Reboot host%i -Wants=obmc-host-stop@%i.target -After=obmc-host-stop@%i.target - -[Service] -#ExecStart={base_bindir}/systemctl start obmc-host-start@%i.target -# This service is starting another target that conflicts with the -# target this service is running in. OpenBMC needs a refactor of -# how it does its host reset path. Until then, this short term -# solution does the job. -# Since this is a part of the reboot target, call the startmin -# target which does the minimum required to start the host. -ExecStart=/bin/sh -c "sleep ${{REBOOT_DELAY}} && systemctl start obmc-host-startmin@%i.target" -EnvironmentFile={envfiledir}/obmc/phosphor-reboot-host/reboot.conf - -[Install] -WantedBy=obmc-host-reboot@%i.target diff --git a/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/state/files/phosphor-reset-host-check@.service b/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/state/files/phosphor-reset-host-check@.service deleted file mode 100644 index 075ac500..00000000 --- a/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/state/files/phosphor-reset-host-check@.service +++ /dev/null @@ -1,19 +0,0 @@ -[Unit] -Description=Check Host%i status on BMC reset -Wants=phosphor-ipmi-host.service -After=phosphor-ipmi-host.service -Wants=obmc-host-reset-running@%i.target -Before=obmc-host-reset-running@%i.target -Wants=op-reset-chassis-on@%i.service -After=op-reset-chassis-on@%i.service -Conflicts=obmc-host-stop@%i.target -ConditionPathExists=/run/openbmc/chassis@%i-on - -[Service] -RemainAfterExit=yes -Type=oneshot -ExecStart=/usr/bin/env phosphor-host-check -SyslogIdentifier=phosphor-host-check - -[Install] -WantedBy=obmc-host-reset@%i.target diff --git a/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/state/files/phosphor-reset-host-reboot-attempts@.service b/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/state/files/phosphor-reset-host-reboot-attempts@.service deleted file mode 100644 index 35de4304..00000000 --- a/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/state/files/phosphor-reset-host-reboot-attempts@.service +++ /dev/null @@ -1,13 +0,0 @@ -[Unit] -Description=Reset host reboot counter -Wants=mapper-wait@-xyz-openbmc_project-state-host%i.service -After=mapper-wait@-xyz-openbmc_project-state-host%i.service -ConditionPathExists=!/run/openbmc/host@%i-on - -[Service] -Restart=no -Type=oneshot -ExecStart=/bin/sh -c "busctl set-property `mapper get-service /xyz/openbmc_project/state/host%i` /xyz/openbmc_project/state/host%i xyz.openbmc_project.Control.Boot.RebootAttempts AttemptsLeft u 3" - -[Install] -WantedBy=obmc-host-start@%i.target diff --git a/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/state/files/phosphor-reset-host-running@.service b/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/state/files/phosphor-reset-host-running@.service deleted file mode 100644 index a49bbdd1..00000000 --- a/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/state/files/phosphor-reset-host-running@.service +++ /dev/null @@ -1,13 +0,0 @@ -[Unit] -Description=Start host%i running after BMC reset -After=obmc-host-reset-running@%i.target -Requires=obmc-host-reset-running@%i.target -ConditionPathExists=/run/openbmc/host@%i-on - -[Service] -RemainAfterExit=no -ExecStart=/bin/systemctl start obmc-host-start@%i.target - - -[Install] -WantedBy=obmc-host-reset@%i.target diff --git a/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/state/files/phosphor-reset-sensor-states@.service b/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/state/files/phosphor-reset-sensor-states@.service deleted file mode 100644 index 689372f4..00000000 --- a/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/state/files/phosphor-reset-sensor-states@.service +++ /dev/null @@ -1,15 +0,0 @@ -[Unit] -Description=Reset host sensors -After=phosphor-reset-host-check@%i.service -Wants=mapper-wait@-xyz-openbmc_project-state-host%i.service -After=mapper-wait@-xyz-openbmc_project-state-host%i.service -ConditionPathExists=!/run/openbmc/host@%i-on - -[Service] -Restart=no -Type=oneshot -ExecStart=/bin/sh -c "busctl set-property `mapper get-service /xyz/openbmc_project/state/host0` /xyz/openbmc_project/state/host0 xyz.openbmc_project.State.Boot.Progress BootProgress s xyz.openbmc_project.State.Boot.Progress.ProgressStages.Unspecified" -ExecStart=/bin/sh -c "busctl set-property `mapper get-service /xyz/openbmc_project/state/host0` /xyz/openbmc_project/state/host0 xyz.openbmc_project.State.OperatingSystem.Status OperatingSystemState s xyz.openbmc_project.State.OperatingSystem.Status.OSStatus.Inactive" - -[Install] -WantedBy=obmc-host-reset@%i.target diff --git a/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/state/files/xyz.openbmc_project.State.BMC.service b/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/state/files/xyz.openbmc_project.State.BMC.service deleted file mode 100644 index de1da5ad..00000000 --- a/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/state/files/xyz.openbmc_project.State.BMC.service +++ /dev/null @@ -1,16 +0,0 @@ -[Unit] -Description=Phosphor BMC State Manager -Before=mapper-wait@-xyz-openbmc_project-state-bmc.service -Wants=obmc-mapper.target -After=obmc-mapper.target - - -[Service] -ExecStart=/usr/bin/env phosphor-bmc-state-manager -SyslogIdentifier=phosphor-bmc-state-manager -Restart=always -Type=dbus -BusName={BUSNAME} - -[Install] -WantedBy=multi-user.target diff --git a/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/state/files/xyz.openbmc_project.State.Chassis.service b/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/state/files/xyz.openbmc_project.State.Chassis.service deleted file mode 100644 index 1cab07fc..00000000 --- a/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/state/files/xyz.openbmc_project.State.Chassis.service +++ /dev/null @@ -1,16 +0,0 @@ -[Unit] -Description=Phosphor Chassis State Manager -Before=mapper-wait@-xyz-openbmc_project-state-chassis.service -Wants=obmc-mapper.target -After=obmc-mapper.target -After=org.openbmc.control.Power@0.service - -[Service] -ExecStart=/usr/bin/env phosphor-chassis-state-manager -SyslogIdentifier=phosphor-chassis-state-manager -Restart=always -Type=dbus -BusName={BUSNAME} - -[Install] -WantedBy=multi-user.target diff --git a/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/state/files/xyz.openbmc_project.State.Host.service b/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/state/files/xyz.openbmc_project.State.Host.service deleted file mode 100644 index 780f2607..00000000 --- a/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/state/files/xyz.openbmc_project.State.Host.service +++ /dev/null @@ -1,18 +0,0 @@ -[Unit] -Description=Phosphor Host State Manager -Wants=mapper-wait@-xyz-openbmc_project-control-host0-auto_reboot.service -After=mapper-wait@-xyz-openbmc_project-control-host0-auto_reboot.service -Before=mapper-wait@-xyz-openbmc_project-state-host.service -After=phosphor-reset-host-running@0.service -Wants=obmc-mapper.target -After=obmc-mapper.target - -[Service] -ExecStart=/usr/bin/env phosphor-host-state-manager -SyslogIdentifier=phosphor-host-state-manager -Restart=always -Type=dbus -BusName={BUSNAME} - -[Install] -WantedBy=multi-user.target diff --git a/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/state/phosphor-post-code-manager_git.bb b/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/state/phosphor-post-code-manager_git.bb new file mode 100644 index 00000000..0bbf0e9a --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/state/phosphor-post-code-manager_git.bb @@ -0,0 +1,24 @@ +SUMMARY = "Phosphor post code manager" +DESCRIPTION = "Phosphor post Code Manager monitors post code posted on dbus \ +interface /xyz/openbmc_project/state/boot/raw by snoopd daemon and save them \ +in a file under /var/lib for history." + +SRC_URI = "git://github.com/openbmc/phosphor-post-code-manager.git" +SRCREV = "655837973feb51da3767f5f246ec198877900b0b" + +S = "${WORKDIR}/git" + +PV = "1.0+git${SRCPV}" + +LICENSE = "Apache-2.0" +LIC_FILES_CHKSUM = "file://LICENSE;md5=86d3f3a95c324c9479bd8986968f4327" + +inherit cmake pkgconfig systemd + +SYSTEMD_SERVICE_${PN} = "xyz.openbmc_project.State.Boot.PostCode.service" + +DEPENDS += " \ + sdbusplus \ + phosphor-dbus-interfaces \ + phosphor-logging \ + " diff --git a/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/state/phosphor-state-manager_git.bb b/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/state/phosphor-state-manager_git.bb index b02038c3..caa0352a 100644 --- a/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/state/phosphor-state-manager_git.bb +++ b/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/state/phosphor-state-manager_git.bb @@ -15,6 +15,8 @@ STATE_MGR_PACKAGES = " \ ${PN}-discover \ ${PN}-host-check \ ${PN}-reset-sensor-states \ + ${PN}-systemd-target-monitor \ + ${PN}-obmc-targets \ " PACKAGE_BEFORE_PN += "${STATE_MGR_PACKAGES}" ALLOW_EMPTY_${PN} = "1" @@ -23,6 +25,7 @@ DBUS_PACKAGES = "${STATE_MGR_PACKAGES}" SYSTEMD_PACKAGES = "${PN}-discover \ ${PN}-reset-sensor-states \ + ${PN}-systemd-target-monitor \ " # The host-check function will check if the host is running @@ -33,20 +36,23 @@ SYSTEMD_PACKAGES = "${PN}-discover \ # recommended to deal properly with these reset scenarios. RRECOMMENDS_${PN}-host = "${PN}-host-check ${PN}-reset-sensor-states" -inherit autotools pkgconfig +# The obmc-targets are the base targets required to boot a computer system +RRECOMMENDS_${PN}-host += "${PN}-obmc-targets" + +inherit meson pkgconfig inherit obmc-phosphor-dbus-service -DEPENDS += "autoconf-archive-native" DEPENDS += "sdbusplus" DEPENDS += "sdeventplus" DEPENDS += "phosphor-logging" DEPENDS += "phosphor-dbus-interfaces" DEPENDS += "libcereal" +DEPENDS += "nlohmann-json" +DEPENDS += "cli11" FILES_${PN}-host = "${bindir}/phosphor-host-state-manager" DBUS_SERVICE_${PN}-host += "xyz.openbmc_project.State.Host.service" DBUS_SERVICE_${PN}-host += "phosphor-reboot-host@.service" -SYSTEMD_ENVIRONMENT_FILE_${PN}-host += "obmc/phosphor-reboot-host/reboot.conf" SYSTEMD_SERVICE_${PN}-host += "phosphor-reset-host-reboot-attempts@.service" FILES_${PN}-chassis = "${bindir}/phosphor-chassis-state-manager" @@ -66,6 +72,12 @@ SYSTEMD_SERVICE_${PN}-host-check += "phosphor-reset-host-running@.service" SYSTEMD_SERVICE_${PN}-reset-sensor-states += "phosphor-reset-sensor-states@.service" +FILES_${PN}-systemd-target-monitor = " \ + ${bindir}/phosphor-systemd-target-monitor \ + ${sysconfdir}/phosphor-systemd-target-monitor/phosphor-target-monitor-default.json \ + " +SYSTEMD_SERVICE_${PN}-systemd-target-monitor += "phosphor-systemd-target-monitor.service" + RESET_CHECK_TMPL = "phosphor-reset-host-check@.service" RESET_CHECK_TGTFMT = "obmc-host-reset@{1}.target" RESET_CHECK_INSTFMT = "phosphor-reset-host-check@{0}.service" @@ -131,7 +143,89 @@ HOST_RST_RBT_ATTEMPTS_SVC_INST = "phosphor-reset-host-reboot-attempts@{0}.servic HOST_RST_RBT_ATTEMPTS_SVC_FMT = "../${HOST_RST_RBT_ATTEMPTS_SVC}:${HOST_START_TGTFMT}.requires/${HOST_RST_RBT_ATTEMPTS_SVC_INST}" SYSTEMD_LINK_${PN}-host += "${@compose_list_zip(d, 'HOST_RST_RBT_ATTEMPTS_SVC_FMT', 'OBMC_HOST_INSTANCES', 'OBMC_HOST_INSTANCES')}" + +# Chassis power synchronization targets +# - start-pre: Services to run before we start power on process +# - start: Services to run to do the chassis power on +# - on: Services to run once power is on +# - stop-pre,stop,off: Same as above but applied to powering off +# - reset-on: Services to check if chassis power is on after bmc reset +CHASSIS_SYNCH_TARGETS = "start-pre start on stop-pre stop off reset-on" + +# Chassis action power targets +# - on: Services to run to power on the chassis +# - off: Services to run to power off the chassis +# - powered-off: Services to run once chassis power is off +# - reset: Services to check chassis power state and update chassis "on" target +# - hard-off: Services to force an immediate power off of the chassis +CHASSIS_ACTION_TARGETS = "poweron poweroff powered-off powerreset hard-poweroff" + +# Track all host synchronization point targets +# - start-pre: Services to run before we start host boot +# - starting: Services to run to do the host boot +# - started: Services to run once the host is booted +# - stop-pre,stopping,stopped: Same as above but applied to shutting down the host +# - reset-running: Services to check if host is running after bmc reset +HOST_SYNCH_TARGETS = "start-pre starting started stop-pre stopping stopped reset-running" + +# Track all host action targets +# - start: Will run startmin target, this target used for any additional +# services that user needs for an initial power on of host. +# For example, resetting the host reboot count could be put in +# this target so on any fresh power on, this count is reset. +# - startmin: Minimum services required to start the host. This target will +# be called by reboot and start target. +# - stop: Services to run to shutdown the host +# - quiesce: Target to enter on host boot failure +# - shutdown: Tell host to shutdown, then stop system +# - reset: Services to check if host is running and update host "start" target +# - crash: Target to run when host crashes. it is very much similar to +# quiesce target but the only delta is that this target contains +# multiple services and one of them is the quiesce target. +# - timeout: Target to run when host watchdog times out +# - reboot: Reboot the host +HOST_ACTION_TARGETS = "start startmin stop quiesce reset shutdown crash timeout reboot" + +CHASSIS_SYNCH_FMT = "obmc-power-{0}@.target" +CHASSIS_ACTION_FMT = "obmc-chassis-{0}@.target" +HOST_SYNCH_FMT = "obmc-host-{0}@.target" +HOST_ACTION_FMT = "obmc-host-{0}@.target" + +CHASSIS_LINK_SYNCH_FMT = "${CHASSIS_SYNCH_FMT}:obmc-power-{0}@{1}.target" +CHASSIS_LINK_ACTION_FMT = "${CHASSIS_ACTION_FMT}:obmc-chassis-{0}@{1}.target" +HOST_LINK_SYNCH_FMT = "${HOST_SYNCH_FMT}:obmc-host-{0}@{1}.target" +HOST_LINK_ACTION_FMT = "${HOST_ACTION_FMT}:obmc-host-{0}@{1}.target" +FAN_LINK_FMT = "obmc-fan-control-ready@.target:obmc-fan-control-ready@{0}.target" + +# Targets to be executed on checkstop and watchdog timeout +HOST_ERROR_TARGETS = "crash timeout" + +QUIESCE_TMPL = "obmc-host-quiesce@.target" +CRASH_TIMEOUT_TGTFMT = "obmc-host-{0}@{1}.target" +QUIESCE_INSTFMT = "obmc-host-quiesce@{1}.target" +QUIESCE_FMT = "../${QUIESCE_TMPL}:${CRASH_TIMEOUT_TGTFMT}.wants/${QUIESCE_INSTFMT}" + +SYSTEMD_SERVICE_${PN}-obmc-targets += " \ + obmc-mapper.target \ + obmc-fans-ready.target \ + obmc-fan-control.target \ + obmc-fan-control-ready@.target \ + obmc-fan-watchdog-takeover.target \ + " + +SYSTEMD_SERVICE_${PN}-obmc-targets += "${@compose_list(d, 'CHASSIS_SYNCH_FMT', 'CHASSIS_SYNCH_TARGETS')}" +SYSTEMD_SERVICE_${PN}-obmc-targets += "${@compose_list(d, 'CHASSIS_ACTION_FMT', 'CHASSIS_ACTION_TARGETS')}" +SYSTEMD_SERVICE_${PN}-obmc-targets += "${@compose_list(d, 'HOST_SYNCH_FMT', 'HOST_SYNCH_TARGETS')}" +SYSTEMD_SERVICE_${PN}-obmc-targets += "${@compose_list(d, 'HOST_ACTION_FMT', 'HOST_ACTION_TARGETS')}" + +SYSTEMD_LINK_${PN}-obmc-targets += "${@compose_list(d, 'CHASSIS_LINK_SYNCH_FMT', 'CHASSIS_SYNCH_TARGETS', 'OBMC_CHASSIS_INSTANCES')}" +SYSTEMD_LINK_${PN}-obmc-targets += "${@compose_list(d, 'CHASSIS_LINK_ACTION_FMT', 'CHASSIS_ACTION_TARGETS', 'OBMC_CHASSIS_INSTANCES')}" +SYSTEMD_LINK_${PN}-obmc-targets += "${@compose_list(d, 'HOST_LINK_SYNCH_FMT', 'HOST_SYNCH_TARGETS', 'OBMC_HOST_INSTANCES')}" +SYSTEMD_LINK_${PN}-obmc-targets += "${@compose_list(d, 'HOST_LINK_ACTION_FMT', 'HOST_ACTION_TARGETS', 'OBMC_HOST_INSTANCES')}" +SYSTEMD_LINK_${PN}-obmc-targets += "${@compose_list(d, 'FAN_LINK_FMT', 'OBMC_CHASSIS_INSTANCES')}" +SYSTEMD_LINK_${PN}-obmc-targets += "${@compose_list(d, 'QUIESCE_FMT', 'HOST_ERROR_TARGETS', 'OBMC_HOST_INSTANCES')}" + SRC_URI += "git://github.com/openbmc/phosphor-state-manager" -SRCREV = "d6fe3150e1949fbada806d271644eb7590535047" +SRCREV = "c101157e5b138f36044a2a3aaf15ad8ac16501fc" S = "${WORKDIR}/git" diff --git a/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/system/obmc-phosphor-sysd.bb b/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/system/obmc-phosphor-sysd.bb index 07b360ae..9879a61f 100644 --- a/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/system/obmc-phosphor-sysd.bb +++ b/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/system/obmc-phosphor-sysd.bb @@ -2,7 +2,7 @@ SUMMARY = "Phosphor OpenBMC System Management" DESCRIPTION = "Phosphor OpenBMC system management reference implementation." PR = "r1" LICENSE = "Apache-2.0" -LIC_FILES_CHKSUM = "file://${PHOSPHORBASE}/COPYING.apache-2.0;md5=34400b68072d710fecd0a2940a0d1658" +LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10" inherit obmc-phosphor-pydbus-service diff --git a/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/systemd-policy/phosphor-systemd-policy.bb b/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/systemd-policy/phosphor-systemd-policy.bb index 9a9f2bc8..21433976 100644 --- a/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/systemd-policy/phosphor-systemd-policy.bb +++ b/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/systemd-policy/phosphor-systemd-policy.bb @@ -3,7 +3,7 @@ DESCRIPTION = "Overrides for systemd and its applications" PR = "r1" LICENSE = "Apache-2.0" -LIC_FILES_CHKSUM = "file://${PHOSPHORBASE}/COPYING.apache-2.0;md5=34400b68072d710fecd0a2940a0d1658" +LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10" DEPENDS += "systemd" diff --git a/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/users/phosphor-user-manager_git.bb b/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/users/phosphor-user-manager_git.bb index 1acefd1a..8a2971cc 100644 --- a/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/users/phosphor-user-manager_git.bb +++ b/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/users/phosphor-user-manager_git.bb @@ -23,11 +23,8 @@ inherit useradd USERADD_PACKAGES = "${PN} phosphor-ldap" DBUS_PACKAGES = "${USERADD_PACKAGES}" # add groups needed for privilege maintenance -GROUPADD_PARAM_${PN} = "priv-admin; priv-operator; priv-user; priv-callback " -GROUPADD_PARAM_phosphor-ldap = "priv-admin; priv-operator; priv-user; priv-callback " - -# Add root user to priv-admin group -GROUPMEMS_PARAM_${PN} = "-g priv-admin -a root" +GROUPADD_PARAM_${PN} = "priv-admin; priv-operator; priv-user " +GROUPADD_PARAM_phosphor-ldap = "priv-admin; priv-operator; priv-user " DBUS_SERVICE_${PN} += "xyz.openbmc_project.User.Manager.service" FILES_phosphor-ldap += " \ @@ -39,5 +36,5 @@ DBUS_SERVICE_phosphor-ldap = " \ xyz.openbmc_project.LDAP.PrivilegeMapper.service \ " SRC_URI += "git://github.com/openbmc/phosphor-user-manager" -SRCREV = "1af1223304dbf7aaecd5f238227abee95cce8b39" +SRCREV = "d4d655006c6179d47008d9b374debcedcc03a1c4" S = "${WORKDIR}/git" diff --git a/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/video/uart-render-controller_git.bb b/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/video/uart-render-controller_git.bb index f55d4718..9f3e2134 100644 --- a/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/video/uart-render-controller_git.bb +++ b/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/video/uart-render-controller_git.bb @@ -16,7 +16,7 @@ DEPENDS += "autoconf-archive-native" DEPENDS += "systemd" RDEPENDS_${PN} += "fbterm" -SRCREV = "14decab20f621c050760e5f3310f5a960cf21211" +SRCREV = "26ac7f7bd6af52db63451d3633bcf1b167eea3d1" PV = "0.1+git${SRCPV}" S = "${WORKDIR}/git" diff --git a/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/watchdog/phosphor-watchdog_git.bb b/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/watchdog/phosphor-watchdog_git.bb index 79fa6206..55529eb2 100644 --- a/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/watchdog/phosphor-watchdog_git.bb +++ b/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/watchdog/phosphor-watchdog_git.bb @@ -20,7 +20,7 @@ DEPENDS += "phosphor-logging" DEPENDS += "systemd" SRC_URI += "git://github.com/openbmc/phosphor-watchdog" -SRCREV = "c35135d32f9cb84b62de7b72eee3a2e87b4b3d4d" +SRCREV = "2e09bb076a767e270350a9e5daf1b33aab200f55" S = "${WORKDIR}/git" EXTRA_OEMESON = " \ diff --git a/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/webui/phosphor-webui_git.bb b/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/webui/phosphor-webui_git.bb index 36138385..d0d9a416 100644 --- a/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/webui/phosphor-webui_git.bb +++ b/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/webui/phosphor-webui_git.bb @@ -6,7 +6,7 @@ LICENSE = "Apache-2.0" LIC_FILES_CHKSUM = "file://LICENSE;md5=e3fc50a88d0a364313df4b21ef20c29e" SRC_URI = "git://github.com/openbmc/phosphor-webui.git" -SRCREV = "6f7ec80eb14084228cd7d8dae580da4b794c2595" +SRCREV = "425ed044e9422ad17e8d1924387620cd3d925f37" S = "${WORKDIR}/git" DEPENDS_prepend = "nodejs-native " diff --git a/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/webui/webui-vue_git.bb b/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/webui/webui-vue_git.bb new file mode 100644 index 00000000..3a781ab8 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-phosphor/recipes-phosphor/webui/webui-vue_git.bb @@ -0,0 +1,47 @@ +# This recipe requires online access to build, as it uses NPM for dependency +# management and resolution. +PR = "r1" +PV = "1.0+git${SRCPV}" +LICENSE = "Apache-2.0" +LIC_FILES_CHKSUM = "file://LICENSE;md5=e3fc50a88d0a364313df4b21ef20c29e" + +SRC_URI = "git://github.com/openbmc/webui-vue.git" +SRCREV = "7fc4cd7dbe2f9eb38bb876aa4febf8f5e13a279f" +S = "${WORKDIR}/git" + +DEPENDS_prepend = "nodejs-native " + +# allarch is required because the files this recipe produces (html and +# javascript) are valid for any target, regardless of architecture. The allarch +# class removes your compiler definitions, as it assumes that anything that +# requires a compiler is platform specific. Unfortunately, one of the build +# tools uses libsass for compiling the css templates, and it needs a compiler to +# build the library that it then uses to compress the scss into normal css. +# Enabling allarch, then re-adding the compiler flags was the best of the bad +# options + +inherit allarch + +export CXX = "${BUILD_CXX}" +export CC = "${BUILD_CC}" +export CFLAGS = "${BUILD_CFLAGS}" +export CPPFLAGS = "${BUILD_CPPFLAGS}" +export CXXFLAGS = "${BUILD_CXXFLAGS}" + +FILES_${PN} += "${datadir}/www/*" + +do_compile () { + cd ${S} + rm -rf node_modules + npm --loglevel info --proxy=${http_proxy} --https-proxy=${https_proxy} install + npm run build +} + +do_install () { + # create directory structure + install -d ${D}${datadir}/www + cp -r ${S}/dist/** ${D}${datadir}/www + find ${D}${datadir}/www -type f -exec chmod a=r,u+w '{}' + + find ${D}${datadir}/www -type d -exec chmod a=rx,u+w '{}' + +} + diff --git a/Contrib-Inspur/openbmc/meta-phosphor/recipes-x86/chassis/x86-power-control_git.bb b/Contrib-Inspur/openbmc/meta-phosphor/recipes-x86/chassis/x86-power-control_git.bb new file mode 100755 index 00000000..8a92d7fd --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-phosphor/recipes-x86/chassis/x86-power-control_git.bb @@ -0,0 +1,24 @@ +SUMMARY = "Chassis Power Control service for Intel based platforms" +DESCRIPTION = "Chassis Power Control service for Intel based platforms" + +SRC_URI = "git://github.com/openbmc/x86-power-control.git;protocol=ssh" +SRCREV = "89f613129b112d7b4595410e99eac0db4e92bb8e" + +PV = "1.0+git${SRCPV}" + +S = "${WORKDIR}/git" + +LICENSE = "Apache-2.0" +LIC_FILES_CHKSUM = "file://LICENSE;md5=86d3f3a95c324c9479bd8986968f4327" + +inherit cmake systemd + +SYSTEMD_SERVICE_${PN} += "xyz.openbmc_project.Chassis.Control.Power.service" + +DEPENDS += " \ + boost \ + i2c-tools \ + libgpiod \ + sdbusplus \ + phosphor-logging \ + " diff --git a/Contrib-Inspur/openbmc/meta-qualcomm/conf/layer.conf b/Contrib-Inspur/openbmc/meta-qualcomm/conf/layer.conf index 51c563e8..5079054e 100644 --- a/Contrib-Inspur/openbmc/meta-qualcomm/conf/layer.conf +++ b/Contrib-Inspur/openbmc/meta-qualcomm/conf/layer.conf @@ -3,6 +3,3 @@ BBPATH .= ":${LAYERDIR}" BBFILE_COLLECTIONS += "qualcomm" BBFILE_PATTERN_qualcomm = "" - -# Provide a variable that points the base of the qualcomm layer. -QUALCOMMBASE = '${@os.path.normpath("${LAYERDIR}/")}' diff --git a/Contrib-Inspur/openbmc/meta-qualcomm/meta-centriq2400-rep/recipes-phosphor/chassis/ir38163-workaround.bb b/Contrib-Inspur/openbmc/meta-qualcomm/meta-centriq2400-rep/recipes-phosphor/chassis/ir38163-workaround.bb index c7169a99..fb9a728e 100644 --- a/Contrib-Inspur/openbmc/meta-qualcomm/meta-centriq2400-rep/recipes-phosphor/chassis/ir38163-workaround.bb +++ b/Contrib-Inspur/openbmc/meta-qualcomm/meta-centriq2400-rep/recipes-phosphor/chassis/ir38163-workaround.bb @@ -2,7 +2,7 @@ SUMMARY = "centriq2400 VR sensor Re-Probe" DESCRIPTION = "IR38163 work on DC on state, need re-probe for centriq2400 HW design" PR = "r0" LICENSE = "Apache-2.0" -LIC_FILES_CHKSUM = "file://${QUALCOMMBASE}/COPYING.apache-2.0;md5=34400b68072d710fecd0a2940a0d1658" +LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10" inherit obmc-phosphor-systemd diff --git a/Contrib-Inspur/openbmc/meta-qualcomm/meta-centriq2400-rep/recipes-phosphor/console/centriq-2400rep-console-client.bb b/Contrib-Inspur/openbmc/meta-qualcomm/meta-centriq2400-rep/recipes-phosphor/console/centriq-2400rep-console-client.bb index eb7ed1f7..929a11a5 100644 --- a/Contrib-Inspur/openbmc/meta-qualcomm/meta-centriq2400-rep/recipes-phosphor/console/centriq-2400rep-console-client.bb +++ b/Contrib-Inspur/openbmc/meta-qualcomm/meta-centriq2400-rep/recipes-phosphor/console/centriq-2400rep-console-client.bb @@ -1,6 +1,6 @@ FILESEXTRAPATHS_prepend_centriq2400-rep := "${THISDIR}/${PN}:" LICENSE = "Apache-2.0" -LIC_FILES_CHKSUM = "file://${QUALCOMMBASE}/COPYING.apache-2.0;md5=34400b68072d710fecd0a2940a0d1658" +LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10" SRC_URI += "file://centriq-2400rep-console-client.sh" diff --git a/Contrib-Inspur/openbmc/meta-qualcomm/meta-centriq2400-rep/recipes-phosphor/leds/centriq2400-rep-led-manager-config-native.bb b/Contrib-Inspur/openbmc/meta-qualcomm/meta-centriq2400-rep/recipes-phosphor/leds/centriq2400-rep-led-manager-config-native.bb index 6e4d5174..d43aee8b 100644 --- a/Contrib-Inspur/openbmc/meta-qualcomm/meta-centriq2400-rep/recipes-phosphor/leds/centriq2400-rep-led-manager-config-native.bb +++ b/Contrib-Inspur/openbmc/meta-qualcomm/meta-centriq2400-rep/recipes-phosphor/leds/centriq2400-rep-led-manager-config-native.bb @@ -1,7 +1,7 @@ SUMMARY = "Phosphor LED Group Management for Centriq2400 REP" PR = "r1" LICENSE = "Apache-2.0" -LIC_FILES_CHKSUM = "file://${QUALCOMMBASE}/COPYING.apache-2.0;md5=34400b68072d710fecd0a2940a0d1658" +LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10" inherit native diff --git a/Contrib-Inspur/openbmc/meta-qualcomm/meta-centriq2400-rep/recipes-phosphor/socupdate/socupdate.bb b/Contrib-Inspur/openbmc/meta-qualcomm/meta-centriq2400-rep/recipes-phosphor/socupdate/socupdate.bb index 16b11a34..9c4a0bd7 100644 --- a/Contrib-Inspur/openbmc/meta-qualcomm/meta-centriq2400-rep/recipes-phosphor/socupdate/socupdate.bb +++ b/Contrib-Inspur/openbmc/meta-qualcomm/meta-centriq2400-rep/recipes-phosphor/socupdate/socupdate.bb @@ -3,7 +3,7 @@ DESCRIPTION = "" HOMEPAGE = "" PR = "r1" LICENSE = "Apache-2.0" -LIC_FILES_CHKSUM = "file://${QUALCOMMBASE}/COPYING.apache-2.0;md5=34400b68072d710fecd0a2940a0d1658" +LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10" SRC_URI += "file://socupdate.sh" diff --git a/Contrib-Inspur/openbmc/meta-qualcomm/meta-centriq2400-rep/recipes-phosphor/workbook/centriq2400-rep-config.bb b/Contrib-Inspur/openbmc/meta-qualcomm/meta-centriq2400-rep/recipes-phosphor/workbook/centriq2400-rep-config.bb index 2f2fd625..220adaca 100644 --- a/Contrib-Inspur/openbmc/meta-qualcomm/meta-centriq2400-rep/recipes-phosphor/workbook/centriq2400-rep-config.bb +++ b/Contrib-Inspur/openbmc/meta-qualcomm/meta-centriq2400-rep/recipes-phosphor/workbook/centriq2400-rep-config.bb @@ -2,7 +2,7 @@ SUMMARY = "Qualcomm Rep board wiring" DESCRIPTION = "Board wiring information for the Qualcomm Rep system." PR = "r1" LICENSE = "Apache-2.0" -LIC_FILES_CHKSUM = "file://${QUALCOMMBASE}/COPYING.apache-2.0;md5=34400b68072d710fecd0a2940a0d1658" +LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10" inherit allarch inherit setuptools diff --git a/Contrib-Inspur/openbmc/meta-quanta/MAINTAINERS b/Contrib-Inspur/openbmc/meta-quanta/MAINTAINERS new file mode 100644 index 00000000..f309c564 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-quanta/MAINTAINERS @@ -0,0 +1,46 @@ +How to use this list: + Find the most specific section entry (described below) that matches where + your change lives and add the reviewers (R) and maintainers (M) as + reviewers. You can use the same method to track down who knows a particular + code base best. + + Your change/query may span multiple entries; that is okay. + + If you do not find an entry that describes your request at all, someone + forgot to update this list; please at least file an issue or send an email + to a maintainer, but preferably you should just update this document. + +Description of section entries: + + Section entries are structured according to the following scheme: + + X: NAME + X: ... + . + . + . + + Where REPO_NAME is the name of the repository within the OpenBMC GitHub + organization; FILE_PATH is a file path within the repository, possibly with + wildcards; X is a tag of one of the following types: + + M: Denotes maintainer; has fields NAME ; + if omitted from an entry, assume one of the maintainers from the + MAINTAINERS entry. + R: Denotes reviewer; has fields NAME ; + these people are to be added as reviewers for a change matching the repo + path. + F: Denotes forked from an external repository; has fields URL. + + Line comments are to be denoted "# SOME COMMENT" (typical shell style + comment); it is important to follow the correct syntax and semantics as we + may want to use automated tools with this file in the future. + + A change cannot be added to an OpenBMC repository without a MAINTAINER's + approval; thus, a MAINTAINER should always be listed as a reviewer. + +START OF MAINTAINERS LIST +------------------------- + +M: Benjamin Fair +M: Samuel Jiang diff --git a/Contrib-Inspur/openbmc/meta-quanta/conf/layer.conf b/Contrib-Inspur/openbmc/meta-quanta/conf/layer.conf index 6bc64929..81759fe5 100644 --- a/Contrib-Inspur/openbmc/meta-quanta/conf/layer.conf +++ b/Contrib-Inspur/openbmc/meta-quanta/conf/layer.conf @@ -7,7 +7,4 @@ BBFILES += "${LAYERDIR}/recipes-*/*/*.bb \ BBFILE_COLLECTIONS += "quanta-layer" BBFILE_PATTERN_quanta-layer := "^${LAYERDIR}/" -LAYERSERIES_COMPAT_quanta-layer = "thud warrior" - -# Provide a variable that points the base of the quanta layer. -QUANTABASE = '${@os.path.normpath("${LAYERDIR}/")}' +LAYERSERIES_COMPAT_quanta-layer = "warrior zeus" diff --git a/Contrib-Inspur/openbmc/meta-quanta/meta-f0b/conf/layer.conf b/Contrib-Inspur/openbmc/meta-quanta/meta-f0b/conf/layer.conf index dc100429..cfffcf27 100644 --- a/Contrib-Inspur/openbmc/meta-quanta/meta-f0b/conf/layer.conf +++ b/Contrib-Inspur/openbmc/meta-quanta/meta-f0b/conf/layer.conf @@ -7,4 +7,4 @@ BBFILES += "${LAYERDIR}/recipes-*/*/*.bb \ BBFILE_COLLECTIONS += "f0b-layer" BBFILE_PATTERN_f0b-layer = "" -LAYERSERIES_COMPAT_f0b-layer = "thud warrior" +LAYERSERIES_COMPAT_f0b-layer = "warrior zeus" diff --git a/Contrib-Inspur/openbmc/meta-quanta/meta-f0b/recipes-phosphor/ipmi/f0b-ipmi-fru-read-inventory-native.bb b/Contrib-Inspur/openbmc/meta-quanta/meta-f0b/recipes-phosphor/ipmi/f0b-ipmi-fru-read-inventory-native.bb index 89d86103..ac198a17 100644 --- a/Contrib-Inspur/openbmc/meta-quanta/meta-f0b/recipes-phosphor/ipmi/f0b-ipmi-fru-read-inventory-native.bb +++ b/Contrib-Inspur/openbmc/meta-quanta/meta-f0b/recipes-phosphor/ipmi/f0b-ipmi-fru-read-inventory-native.bb @@ -1,7 +1,7 @@ SUMMARY = "F0B inventory map for phosphor-ipmi-host" PR = "r1" LICENSE = "Apache-2.0" -LIC_FILES_CHKSUM = "file://${QUANTABASE}/COPYING.apache-2.0;md5=34400b68072d710fecd0a2940a0d1658" +LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10" inherit native inherit phosphor-ipmi-host diff --git a/Contrib-Inspur/openbmc/meta-quanta/meta-f0b/recipes-phosphor/ipmi/f0b-ipmi-inventory-map-native.bb b/Contrib-Inspur/openbmc/meta-quanta/meta-f0b/recipes-phosphor/ipmi/f0b-ipmi-inventory-map-native.bb index 1831e59a..edd8364c 100644 --- a/Contrib-Inspur/openbmc/meta-quanta/meta-f0b/recipes-phosphor/ipmi/f0b-ipmi-inventory-map-native.bb +++ b/Contrib-Inspur/openbmc/meta-quanta/meta-f0b/recipes-phosphor/ipmi/f0b-ipmi-inventory-map-native.bb @@ -1,7 +1,7 @@ SUMMARY = "F0B IPMI to DBus Inventory mapping." PR = "r1" LICENSE = "Apache-2.0" -LIC_FILES_CHKSUM = "file://${QUANTABASE}/COPYING.apache-2.0;md5=34400b68072d710fecd0a2940a0d1658" +LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10" inherit native inherit phosphor-ipmi-fru diff --git a/Contrib-Inspur/openbmc/meta-quanta/meta-gsj/conf/bblayers.conf.sample b/Contrib-Inspur/openbmc/meta-quanta/meta-gsj/conf/bblayers.conf.sample index f28a8ba7..be7a7387 100644 --- a/Contrib-Inspur/openbmc/meta-quanta/meta-gsj/conf/bblayers.conf.sample +++ b/Contrib-Inspur/openbmc/meta-quanta/meta-gsj/conf/bblayers.conf.sample @@ -12,6 +12,7 @@ BBLAYERS ?= " \ ##OEROOT##/meta-openembedded/meta-python \ ##OEROOT##/meta-phosphor \ ##OEROOT##/meta-nuvoton \ + ##OEROOT##/meta-google \ ##OEROOT##/meta-quanta \ ##OEROOT##/meta-quanta/meta-gsj \ " @@ -22,6 +23,7 @@ BBLAYERS_NON_REMOVABLE ?= " \ ##OEROOT##/meta-openembedded/meta-python \ ##OEROOT##/meta-phosphor \ ##OEROOT##/meta-nuvoton \ + ##OEROOT##/meta-google \ ##OEROOT##/meta-quanta \ ##OEROOT##/meta-quanta/meta-gsj \ " diff --git a/Contrib-Inspur/openbmc/meta-quanta/meta-gsj/conf/layer.conf b/Contrib-Inspur/openbmc/meta-quanta/meta-gsj/conf/layer.conf index e7dcbfea..1da7654b 100644 --- a/Contrib-Inspur/openbmc/meta-quanta/meta-gsj/conf/layer.conf +++ b/Contrib-Inspur/openbmc/meta-quanta/meta-gsj/conf/layer.conf @@ -7,4 +7,4 @@ BBFILES += "${LAYERDIR}/recipes-*/*/*.bb \ BBFILE_COLLECTIONS += "gsj-layer" BBFILE_PATTERN_gsj-layer := "^${LAYERDIR}/" -LAYERSERIES_COMPAT_gsj-layer = "thud warrior" +LAYERSERIES_COMPAT_gsj-layer = "warrior zeus" diff --git a/Contrib-Inspur/openbmc/meta-quanta/meta-gsj/conf/machine/gsj.conf b/Contrib-Inspur/openbmc/meta-quanta/meta-gsj/conf/machine/gsj.conf index cad99697..328796aa 100644 --- a/Contrib-Inspur/openbmc/meta-quanta/meta-gsj/conf/machine/gsj.conf +++ b/Contrib-Inspur/openbmc/meta-quanta/meta-gsj/conf/machine/gsj.conf @@ -2,6 +2,7 @@ KMACHINE = "nuvoton" KERNEL_DEVICETREE = "${KMACHINE}-npcm730-gsj.dtb" UBOOT_MACHINE = "PolegSVB_config" +IGPS_MACHINE = "EB" FLASH_SIZE = "32768" require conf/machine/include/npcm7xx.inc diff --git a/Contrib-Inspur/openbmc/meta-quanta/meta-gsj/recipes-google/ipmi/google-ipmi-sys_%.bbappend b/Contrib-Inspur/openbmc/meta-quanta/meta-gsj/recipes-google/ipmi/google-ipmi-sys_%.bbappend new file mode 100644 index 00000000..11e4b717 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-quanta/meta-gsj/recipes-google/ipmi/google-ipmi-sys_%.bbappend @@ -0,0 +1,6 @@ +NETIPMI_PROVIDER_LIBRARY_gsj += "libsyscmds.so" +SYSTEMD_SERVICE_${PN}_remove_gsj = "gbmc-psu-hardreset.target" + +do_install_append_gsj() { + rm -rf ${D}/lib +} diff --git a/Contrib-Inspur/openbmc/meta-quanta/meta-gsj/recipes-gsj/detect-fan-fail/detect-fan-fail.bb b/Contrib-Inspur/openbmc/meta-quanta/meta-gsj/recipes-gsj/detect-fan-fail/detect-fan-fail.bb index 86303c35..24ca38d8 100644 --- a/Contrib-Inspur/openbmc/meta-quanta/meta-gsj/recipes-gsj/detect-fan-fail/detect-fan-fail.bb +++ b/Contrib-Inspur/openbmc/meta-quanta/meta-gsj/recipes-gsj/detect-fan-fail/detect-fan-fail.bb @@ -2,7 +2,7 @@ SUMMARY = "OpenBMC Quanta Detect Fan Fail Service" DESCRIPTION = "OpenBMC Quanta Detect Fan Fail Daemon." PR = "r1" LICENSE = "Apache-2.0" -LIC_FILES_CHKSUM = "file://${QUANTABASE}/COPYING.apache-2.0;md5=34400b68072d710fecd0a2940a0d1658" +LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10" inherit systemd diff --git a/Contrib-Inspur/openbmc/meta-quanta/meta-gsj/recipes-gsj/mac-address/mac-address.bb b/Contrib-Inspur/openbmc/meta-quanta/meta-gsj/recipes-gsj/mac-address/mac-address.bb index 8d3fbf37..37e4e44c 100644 --- a/Contrib-Inspur/openbmc/meta-quanta/meta-gsj/recipes-gsj/mac-address/mac-address.bb +++ b/Contrib-Inspur/openbmc/meta-quanta/meta-gsj/recipes-gsj/mac-address/mac-address.bb @@ -2,7 +2,7 @@ SRC_URI = "git://github.com/quanta-bmc/mac-address.git;protocol=git" SRCREV = "${AUTOREV}" LICENSE = "Apache-2.0" -LIC_FILES_CHKSUM = "file://${QUANTABASE}/COPYING.apache-2.0;md5=34400b68072d710fecd0a2940a0d1658" +LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10" inherit autotools pkgconfig inherit systemd diff --git a/Contrib-Inspur/openbmc/meta-quanta/meta-gsj/recipes-gsj/quanta-nvme-powerctrl/files/init_once.sh b/Contrib-Inspur/openbmc/meta-quanta/meta-gsj/recipes-gsj/quanta-nvme-powerctrl/files/init_once.sh index 71116fbe..08aa7a05 100644 --- a/Contrib-Inspur/openbmc/meta-quanta/meta-gsj/recipes-gsj/quanta-nvme-powerctrl/files/init_once.sh +++ b/Contrib-Inspur/openbmc/meta-quanta/meta-gsj/recipes-gsj/quanta-nvme-powerctrl/files/init_once.sh @@ -45,8 +45,8 @@ do CLOCK_GEN_VALUE=$(printf '0x%x\n' \ "$(($CLOCK_GEN_VALUE | 0x$update_value))") else - set_gpio_direction "${RST_BMC_U2[$1]}" "low" - set_gpio_direction "${POWER_U2[$1]}" "low" + set_gpio_direction "${RST_BMC_U2[$i]}" "low" + set_gpio_direction "${POWER_U2[$i]}" "low" CLOCK_GEN_VALUE=$(printf '0x%x\n' \ "$(($CLOCK_GEN_VALUE & ~0x$update_value))") diff --git a/Contrib-Inspur/openbmc/meta-quanta/meta-gsj/recipes-gsj/quanta-nvme-powerctrl/quanta-nvme-powerctrl.bb b/Contrib-Inspur/openbmc/meta-quanta/meta-gsj/recipes-gsj/quanta-nvme-powerctrl/quanta-nvme-powerctrl.bb index ada2a6a3..887b5030 100644 --- a/Contrib-Inspur/openbmc/meta-quanta/meta-gsj/recipes-gsj/quanta-nvme-powerctrl/quanta-nvme-powerctrl.bb +++ b/Contrib-Inspur/openbmc/meta-quanta/meta-gsj/recipes-gsj/quanta-nvme-powerctrl/quanta-nvme-powerctrl.bb @@ -2,7 +2,7 @@ SUMMARY = "Phosphor OpenBMC Quanta NVME Power Control Service" DESCRIPTION = "Phosphor OpenBMC Quanta NVME Power Control Daemon." PR = "r1" LICENSE = "Apache-2.0" -LIC_FILES_CHKSUM = "file://${QUANTABASE}/COPYING.apache-2.0;md5=34400b68072d710fecd0a2940a0d1658" +LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10" FILESEXTRAPATHS_append := "${THISDIR}/files:" diff --git a/Contrib-Inspur/openbmc/meta-quanta/meta-gsj/recipes-gsj/usb-network/files/usb_network.service b/Contrib-Inspur/openbmc/meta-quanta/meta-gsj/recipes-gsj/usb-network/files/usb_network.service index 913f5fbe..81a4e424 100644 --- a/Contrib-Inspur/openbmc/meta-quanta/meta-gsj/recipes-gsj/usb-network/files/usb_network.service +++ b/Contrib-Inspur/openbmc/meta-quanta/meta-gsj/recipes-gsj/usb-network/files/usb_network.service @@ -1,5 +1,6 @@ [Unit] Description=enable usb network +After=phosphor-ipmi-host.service [Service] Type=oneshot diff --git a/Contrib-Inspur/openbmc/meta-quanta/meta-gsj/recipes-gsj/usb-network/usb-network.bb b/Contrib-Inspur/openbmc/meta-quanta/meta-gsj/recipes-gsj/usb-network/usb-network.bb index 591ca5af..ad46c0b3 100644 --- a/Contrib-Inspur/openbmc/meta-quanta/meta-gsj/recipes-gsj/usb-network/usb-network.bb +++ b/Contrib-Inspur/openbmc/meta-quanta/meta-gsj/recipes-gsj/usb-network/usb-network.bb @@ -1,6 +1,6 @@ FILESEXTRAPATHS_append := "${THISDIR}/files:" LICENSE = "Apache-2.0" -LIC_FILES_CHKSUM = "file://${QUANTABASE}/COPYING.apache-2.0;md5=34400b68072d710fecd0a2940a0d1658" +LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10" DEPENDS += "systemd" RDEPENDS_${PN} += "libsystemd" diff --git a/Contrib-Inspur/openbmc/meta-quanta/meta-gsj/recipes-phosphor/fans/phosphor-pid-control/config-2ssd.json b/Contrib-Inspur/openbmc/meta-quanta/meta-gsj/recipes-phosphor/fans/phosphor-pid-control/config-2ssd.json index a4552bc5..694ea2a0 100644 --- a/Contrib-Inspur/openbmc/meta-quanta/meta-gsj/recipes-phosphor/fans/phosphor-pid-control/config-2ssd.json +++ b/Contrib-Inspur/openbmc/meta-quanta/meta-gsj/recipes-phosphor/fans/phosphor-pid-control/config-2ssd.json @@ -3,7 +3,7 @@ { "name": "Fan0_0_RPM", "type": "fan", - "readPath": "/xyz/openbmc_project/sensors/fan_tach/Fan0_0_RPM", + "readPath": "/sys/devices/platform/ahb/ahb:apb/f0103000.pwm-fan-controller/hwmon/**/fan1_input", "writePath": "/sys/devices/platform/ahb/ahb:apb/f0103000.pwm-fan-controller/hwmon/**/pwm1", "min": 0, "max": 255 @@ -11,7 +11,7 @@ { "name": "Fan0_1_RPM", "type": "fan", - "readPath": "/xyz/openbmc_project/sensors/fan_tach/Fan0_1_RPM", + "readPath": "/sys/devices/platform/ahb/ahb:apb/f0103000.pwm-fan-controller/hwmon/**/fan2_input", "writePath": "/sys/devices/platform/ahb/ahb:apb/f0103000.pwm-fan-controller/hwmon/**/pwm1", "min": 0, "max": 255 @@ -19,7 +19,7 @@ { "name": "Fan1_0_RPM", "type": "fan", - "readPath": "/xyz/openbmc_project/sensors/fan_tach/Fan1_0_RPM", + "readPath": "/sys/devices/platform/ahb/ahb:apb/f0103000.pwm-fan-controller/hwmon/**/fan3_input", "writePath": "/sys/devices/platform/ahb/ahb:apb/f0103000.pwm-fan-controller/hwmon/**/pwm2", "min": 0, "max": 255 @@ -27,7 +27,7 @@ { "name": "Fan1_1_RPM", "type": "fan", - "readPath": "/xyz/openbmc_project/sensors/fan_tach/Fan1_1_RPM", + "readPath": "/sys/devices/platform/ahb/ahb:apb/f0103000.pwm-fan-controller/hwmon/**/fan4_input", "writePath": "/sys/devices/platform/ahb/ahb:apb/f0103000.pwm-fan-controller/hwmon/**/pwm2", "min": 0, "max": 255 @@ -35,7 +35,7 @@ { "name": "Fan2_0_RPM", "type": "fan", - "readPath": "/xyz/openbmc_project/sensors/fan_tach/Fan2_0_RPM", + "readPath": "/sys/devices/platform/ahb/ahb:apb/f0103000.pwm-fan-controller/hwmon/**/fan5_input", "writePath": "/sys/devices/platform/ahb/ahb:apb/f0103000.pwm-fan-controller/hwmon/**/pwm3", "min": 0, "max": 255 @@ -43,7 +43,7 @@ { "name": "Fan2_1_RPM", "type": "fan", - "readPath": "/xyz/openbmc_project/sensors/fan_tach/Fan2_1_RPM", + "readPath": "/sys/devices/platform/ahb/ahb:apb/f0103000.pwm-fan-controller/hwmon/**/fan6_input", "writePath": "/sys/devices/platform/ahb/ahb:apb/f0103000.pwm-fan-controller/hwmon/**/pwm3", "min": 0, "max": 255 @@ -55,6 +55,7 @@ "writePath": "", "min": 0, "max": 0, + "ignoreDbusMinMax": true, "timeout": 0 }, { @@ -64,6 +65,7 @@ "writePath": "", "min": 0, "max": 0, + "ignoreDbusMinMax": true, "timeout": 0 }, { @@ -73,6 +75,7 @@ "writePath": "", "min": 0, "max": 0, + "ignoreDbusMinMax": true, "timeout": 0 } ], diff --git a/Contrib-Inspur/openbmc/meta-quanta/meta-gsj/recipes-phosphor/fans/phosphor-pid-control/config-8ssd.json b/Contrib-Inspur/openbmc/meta-quanta/meta-gsj/recipes-phosphor/fans/phosphor-pid-control/config-8ssd.json index 7cfa861c..f323219d 100644 --- a/Contrib-Inspur/openbmc/meta-quanta/meta-gsj/recipes-phosphor/fans/phosphor-pid-control/config-8ssd.json +++ b/Contrib-Inspur/openbmc/meta-quanta/meta-gsj/recipes-phosphor/fans/phosphor-pid-control/config-8ssd.json @@ -3,7 +3,7 @@ { "name": "Fan0_0_RPM", "type": "fan", - "readPath": "/xyz/openbmc_project/sensors/fan_tach/Fan0_0_RPM", + "readPath": "/sys/devices/platform/ahb/ahb:apb/f0103000.pwm-fan-controller/hwmon/**/fan1_input", "writePath": "/sys/devices/platform/ahb/ahb:apb/f0103000.pwm-fan-controller/hwmon/**/pwm1", "min": 0, "max": 255 @@ -11,7 +11,7 @@ { "name": "Fan0_1_RPM", "type": "fan", - "readPath": "/xyz/openbmc_project/sensors/fan_tach/Fan0_1_RPM", + "readPath": "/sys/devices/platform/ahb/ahb:apb/f0103000.pwm-fan-controller/hwmon/**/fan2_input", "writePath": "/sys/devices/platform/ahb/ahb:apb/f0103000.pwm-fan-controller/hwmon/**/pwm1", "min": 0, "max": 255 @@ -19,7 +19,7 @@ { "name": "Fan1_0_RPM", "type": "fan", - "readPath": "/xyz/openbmc_project/sensors/fan_tach/Fan1_0_RPM", + "readPath": "/sys/devices/platform/ahb/ahb:apb/f0103000.pwm-fan-controller/hwmon/**/fan3_input", "writePath": "/sys/devices/platform/ahb/ahb:apb/f0103000.pwm-fan-controller/hwmon/**/pwm2", "min": 0, "max": 255 @@ -27,7 +27,7 @@ { "name": "Fan1_1_RPM", "type": "fan", - "readPath": "/xyz/openbmc_project/sensors/fan_tach/Fan1_1_RPM", + "readPath": "/sys/devices/platform/ahb/ahb:apb/f0103000.pwm-fan-controller/hwmon/**/fan4_input", "writePath": "/sys/devices/platform/ahb/ahb:apb/f0103000.pwm-fan-controller/hwmon/**/pwm2", "min": 0, "max": 255 @@ -35,7 +35,7 @@ { "name": "Fan2_0_RPM", "type": "fan", - "readPath": "/xyz/openbmc_project/sensors/fan_tach/Fan2_0_RPM", + "readPath": "/sys/devices/platform/ahb/ahb:apb/f0103000.pwm-fan-controller/hwmon/**/fan5_input", "writePath": "/sys/devices/platform/ahb/ahb:apb/f0103000.pwm-fan-controller/hwmon/**/pwm3", "min": 0, "max": 255 @@ -43,7 +43,7 @@ { "name": "Fan2_1_RPM", "type": "fan", - "readPath": "/xyz/openbmc_project/sensors/fan_tach/Fan2_1_RPM", + "readPath": "/sys/devices/platform/ahb/ahb:apb/f0103000.pwm-fan-controller/hwmon/**/fan6_input", "writePath": "/sys/devices/platform/ahb/ahb:apb/f0103000.pwm-fan-controller/hwmon/**/pwm3", "min": 0, "max": 255 @@ -55,6 +55,7 @@ "writePath": "", "min": 0, "max": 0, + "ignoreDbusMinMax": true, "timeout": 0 }, { @@ -64,6 +65,7 @@ "writePath": "", "min": 0, "max": 0, + "ignoreDbusMinMax": true, "timeout": 0 }, { @@ -73,6 +75,7 @@ "writePath": "", "min": 0, "max": 0, + "ignoreDbusMinMax": true, "timeout": 0 }, { @@ -82,6 +85,7 @@ "writePath": "", "min": 0, "max": 0, + "ignoreDbusMinMax": true, "timeout": 0 }, { @@ -91,6 +95,7 @@ "writePath": "", "min": 0, "max": 0, + "ignoreDbusMinMax": true, "timeout": 0 }, { @@ -100,6 +105,7 @@ "writePath": "", "min": 0, "max": 0, + "ignoreDbusMinMax": true, "timeout": 0 }, { @@ -109,6 +115,7 @@ "writePath": "", "min": 0, "max": 0, + "ignoreDbusMinMax": true, "timeout": 0 }, { @@ -118,6 +125,7 @@ "writePath": "", "min": 0, "max": 0, + "ignoreDbusMinMax": true, "timeout": 0 }, { @@ -127,6 +135,7 @@ "writePath": "", "min": 0, "max": 0, + "ignoreDbusMinMax": true, "timeout": 0 } ], diff --git a/Contrib-Inspur/openbmc/meta-quanta/meta-gsj/recipes-phosphor/fans/phosphor-pid-control/fan-boot-control.service b/Contrib-Inspur/openbmc/meta-quanta/meta-gsj/recipes-phosphor/fans/phosphor-pid-control/fan-boot-control.service new file mode 100644 index 00000000..2149c3da --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-quanta/meta-gsj/recipes-phosphor/fans/phosphor-pid-control/fan-boot-control.service @@ -0,0 +1,10 @@ +[Unit] +Description=Set Fan to Default Duty as Booting Up +DefaultDependencies=no + +[Service] +Type=simple +ExecStart=/usr/bin/fan-default-speed.sh + +[Install] +WantedBy=sysinit.target diff --git a/Contrib-Inspur/openbmc/meta-quanta/meta-gsj/recipes-phosphor/fans/phosphor-pid-control/fan-default-speed.sh b/Contrib-Inspur/openbmc/meta-quanta/meta-gsj/recipes-phosphor/fans/phosphor-pid-control/fan-default-speed.sh new file mode 100644 index 00000000..2cd31066 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-quanta/meta-gsj/recipes-phosphor/fans/phosphor-pid-control/fan-default-speed.sh @@ -0,0 +1,5 @@ +#!bin/bash + +echo 230 > /sys/class/hwmon/*/pwm1 +echo 230 > /sys/class/hwmon/*/pwm2 +echo 230 > /sys/class/hwmon/*/pwm3 diff --git a/Contrib-Inspur/openbmc/meta-quanta/meta-gsj/recipes-phosphor/fans/phosphor-pid-control/fan-full-speed.sh b/Contrib-Inspur/openbmc/meta-quanta/meta-gsj/recipes-phosphor/fans/phosphor-pid-control/fan-full-speed.sh deleted file mode 100644 index dd411d22..00000000 --- a/Contrib-Inspur/openbmc/meta-quanta/meta-gsj/recipes-phosphor/fans/phosphor-pid-control/fan-full-speed.sh +++ /dev/null @@ -1,5 +0,0 @@ -#!bin/bash - -echo 255 > /sys/class/hwmon/*/pwm1 -echo 255 > /sys/class/hwmon/*/pwm2 -echo 255 > /sys/class/hwmon/*/pwm3 diff --git a/Contrib-Inspur/openbmc/meta-quanta/meta-gsj/recipes-phosphor/fans/phosphor-pid-control/fan-reboot-control.service b/Contrib-Inspur/openbmc/meta-quanta/meta-gsj/recipes-phosphor/fans/phosphor-pid-control/fan-reboot-control.service index 4396d18f..681bdbe0 100644 --- a/Contrib-Inspur/openbmc/meta-quanta/meta-gsj/recipes-phosphor/fans/phosphor-pid-control/fan-reboot-control.service +++ b/Contrib-Inspur/openbmc/meta-quanta/meta-gsj/recipes-phosphor/fans/phosphor-pid-control/fan-reboot-control.service @@ -1,12 +1,12 @@ [Unit] -Description=Set Fan to Full Speed as Rebooting +Description=Set Fan to Default Duty as Rebooting DefaultDependencies=no After=shutdown.target [Service] Type=oneshot RemainAfterExit=true -ExecStart=/usr/bin/fan-full-speed.sh +ExecStart=/usr/bin/fan-default-speed.sh [Install] -WantedBy=shutdown.target \ No newline at end of file +WantedBy=shutdown.target diff --git a/Contrib-Inspur/openbmc/meta-quanta/meta-gsj/recipes-phosphor/fans/phosphor-pid-control/phosphor-pid-control.service b/Contrib-Inspur/openbmc/meta-quanta/meta-gsj/recipes-phosphor/fans/phosphor-pid-control/phosphor-pid-control.service index 135e673f..0e18819f 100644 --- a/Contrib-Inspur/openbmc/meta-quanta/meta-gsj/recipes-phosphor/fans/phosphor-pid-control/phosphor-pid-control.service +++ b/Contrib-Inspur/openbmc/meta-quanta/meta-gsj/recipes-phosphor/fans/phosphor-pid-control/phosphor-pid-control.service @@ -8,7 +8,7 @@ ExecStart=/usr/bin/fan-control.sh Restart=always RestartSec=5 StartLimitInterval=0 -ExecStopPost=/usr/bin/fan-full-speed.sh +ExecStopPost=/usr/bin/fan-default-speed.sh [Install] -WantedBy=basic.target \ No newline at end of file +WantedBy=basic.target diff --git a/Contrib-Inspur/openbmc/meta-quanta/meta-gsj/recipes-phosphor/fans/phosphor-pid-control_%.bbappend b/Contrib-Inspur/openbmc/meta-quanta/meta-gsj/recipes-phosphor/fans/phosphor-pid-control_%.bbappend index 68d6dd45..13d037e4 100644 --- a/Contrib-Inspur/openbmc/meta-quanta/meta-gsj/recipes-phosphor/fans/phosphor-pid-control_%.bbappend +++ b/Contrib-Inspur/openbmc/meta-quanta/meta-gsj/recipes-phosphor/fans/phosphor-pid-control_%.bbappend @@ -2,25 +2,27 @@ FILESEXTRAPATHS_prepend_gsj := "${THISDIR}/${PN}:" SRC_URI_append_gsj = " file://config-8ssd.json" SRC_URI_append_gsj = " file://config-2ssd.json" SRC_URI_append_gsj = " file://fan-control.sh" -SRC_URI_append_gsj = " file://fan-full-speed.sh" +SRC_URI_append_gsj = " file://fan-default-speed.sh" SRC_URI_append_gsj = " file://phosphor-pid-control.service" SRC_URI_append_gsj = " file://fan-reboot-control.service" +SRC_URI_append_gsj = " file://fan-boot-control.service" FILES_${PN}_append_gsj = " ${datadir}/swampd/config-8ssd.json" FILES_${PN}_append_gsj = " ${datadir}/swampd/config-2ssd.json" FILES_${PN}_append_gsj = " ${bindir}/fan-control.sh" -FILES_${PN}_append_gsj = " ${bindir}/fan-full-speed.sh" +FILES_${PN}_append_gsj = " ${bindir}/fan-default-speed.sh" inherit systemd RDEPENDS_${PN} += "bash" SYSTEMD_SERVICE_${PN}_append_gsj = " phosphor-pid-control.service" SYSTEMD_SERVICE_${PN}_append_gsj = " fan-reboot-control.service" +SYSTEMD_SERVICE_${PN}_append_gsj = " fan-boot-control.service" do_install_append_gsj() { install -d ${D}/${bindir} install -m 0755 ${WORKDIR}/fan-control.sh ${D}/${bindir} - install -m 0755 ${WORKDIR}/fan-full-speed.sh ${D}/${bindir} + install -m 0755 ${WORKDIR}/fan-default-speed.sh ${D}/${bindir} install -d ${D}${datadir}/swampd install -m 0644 -D ${WORKDIR}/config-8ssd.json \ @@ -33,4 +35,6 @@ do_install_append_gsj() { ${D}${systemd_unitdir}/system install -m 0644 ${WORKDIR}/fan-reboot-control.service \ ${D}${systemd_unitdir}/system -} \ No newline at end of file + install -m 0644 ${WORKDIR}/fan-boot-control.service \ + ${D}${systemd_unitdir}/system +} diff --git a/Contrib-Inspur/openbmc/meta-quanta/meta-gsj/recipes-phosphor/images/obmc-phosphor-image.bbappend b/Contrib-Inspur/openbmc/meta-quanta/meta-gsj/recipes-phosphor/images/obmc-phosphor-image.bbappend index 60de2fcd..9950401c 100644 --- a/Contrib-Inspur/openbmc/meta-quanta/meta-gsj/recipes-phosphor/images/obmc-phosphor-image.bbappend +++ b/Contrib-Inspur/openbmc/meta-quanta/meta-gsj/recipes-phosphor/images/obmc-phosphor-image.bbappend @@ -1,3 +1,4 @@ OBMC_IMAGE_EXTRA_INSTALL_append_gsj = " phosphor-ipmi-flash" OBMC_IMAGE_EXTRA_INSTALL_append_gsj = " phosphor-pid-control" OBMC_IMAGE_EXTRA_INSTALL_append_gsj = " detect-fan-fail" +OBMC_IMAGE_EXTRA_INSTALL_append_gsj = " google-ipmi-sys" diff --git a/Contrib-Inspur/openbmc/meta-quanta/meta-gsj/recipes-phosphor/ipmi/gsj-ipmi-fru-read-inventory-native.bb b/Contrib-Inspur/openbmc/meta-quanta/meta-gsj/recipes-phosphor/ipmi/gsj-ipmi-fru-read-inventory-native.bb index 340955c1..c6061a23 100644 --- a/Contrib-Inspur/openbmc/meta-quanta/meta-gsj/recipes-phosphor/ipmi/gsj-ipmi-fru-read-inventory-native.bb +++ b/Contrib-Inspur/openbmc/meta-quanta/meta-gsj/recipes-phosphor/ipmi/gsj-ipmi-fru-read-inventory-native.bb @@ -1,7 +1,7 @@ SUMMARY = "gsj inventory map for phosphor-ipmi-host" PR = "r1" LICENSE = "Apache-2.0" -LIC_FILES_CHKSUM = "file://${QUANTABASE}/COPYING.apache-2.0;md5=34400b68072d710fecd0a2940a0d1658" +LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10" inherit native inherit phosphor-ipmi-host diff --git a/Contrib-Inspur/openbmc/meta-quanta/meta-gsj/recipes-phosphor/ipmi/gsj-ipmi-inventory-map-native.bb b/Contrib-Inspur/openbmc/meta-quanta/meta-gsj/recipes-phosphor/ipmi/gsj-ipmi-inventory-map-native.bb index db3aaf20..d46a7abd 100644 --- a/Contrib-Inspur/openbmc/meta-quanta/meta-gsj/recipes-phosphor/ipmi/gsj-ipmi-inventory-map-native.bb +++ b/Contrib-Inspur/openbmc/meta-quanta/meta-gsj/recipes-phosphor/ipmi/gsj-ipmi-inventory-map-native.bb @@ -1,7 +1,7 @@ SUMMARY = "gsj IPMI to DBus Inventory mapping." PR = "r1" LICENSE = "Apache-2.0" -LIC_FILES_CHKSUM = "file://${QUANTABASE}/COPYING.apache-2.0;md5=34400b68072d710fecd0a2940a0d1658" +LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10" inherit native inherit phosphor-ipmi-fru diff --git a/Contrib-Inspur/openbmc/meta-quanta/meta-gsj/recipes-phosphor/ipmi/gsj-ipmi-sensor-map-native.bb b/Contrib-Inspur/openbmc/meta-quanta/meta-gsj/recipes-phosphor/ipmi/gsj-ipmi-sensor-map-native.bb index b716bf05..2389730e 100644 --- a/Contrib-Inspur/openbmc/meta-quanta/meta-gsj/recipes-phosphor/ipmi/gsj-ipmi-sensor-map-native.bb +++ b/Contrib-Inspur/openbmc/meta-quanta/meta-gsj/recipes-phosphor/ipmi/gsj-ipmi-sensor-map-native.bb @@ -1,7 +1,7 @@ SUMMARY = "Quanta gsj IPMI to DBus Sensor mapping." PR = "r1" LICENSE = "Apache-2.0" -LIC_FILES_CHKSUM = "file://${QUANTABASE}/COPYING.apache-2.0;md5=34400b68072d710fecd0a2940a0d1658" +LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10" inherit native inherit phosphor-ipmi-host diff --git a/Contrib-Inspur/openbmc/meta-quanta/meta-gsj/recipes-phosphor/ipmi/phosphor-ipmi-flash_%.bbappend b/Contrib-Inspur/openbmc/meta-quanta/meta-gsj/recipes-phosphor/ipmi/phosphor-ipmi-flash_%.bbappend new file mode 100644 index 00000000..a51d07ef --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-quanta/meta-gsj/recipes-phosphor/ipmi/phosphor-ipmi-flash_%.bbappend @@ -0,0 +1 @@ +PACKAGECONFIG_append_gsj = " net-bridge reboot-update static-bmc" diff --git a/Contrib-Inspur/openbmc/meta-quanta/meta-gsj/recipes-phosphor/ipmi/phosphor-ipmi-host/gsj-ipmid-whitelist.conf b/Contrib-Inspur/openbmc/meta-quanta/meta-gsj/recipes-phosphor/ipmi/phosphor-ipmi-host/gsj-ipmid-whitelist.conf index a0d18b48..5eabef33 100644 --- a/Contrib-Inspur/openbmc/meta-quanta/meta-gsj/recipes-phosphor/ipmi/phosphor-ipmi-host/gsj-ipmid-whitelist.conf +++ b/Contrib-Inspur/openbmc/meta-quanta/meta-gsj/recipes-phosphor/ipmi/phosphor-ipmi-host/gsj-ipmid-whitelist.conf @@ -6,26 +6,33 @@ 0x00:0x06 //: 0x00:0x08 //: 0x00:0x09 //: -0x00:0x0F //: -0x04:0x02 //: +0x04:0x20 //: +0x04:0x21 //: +0x04:0x22 //: +0x04:0x27 //: +0x04:0x29 //: +0x04:0x2B //: 0x04:0x2D //: 0x04:0x2F //: 0x04:0x30 //: 0x06:0x01 //: +0x06:0x02 //: +0x06:0x03 //: 0x06:0x04 //: -0x06:0x06 //: -0x06:0x07 //: 0x06:0x08 //: -0x06:0x22 //: -0x06:0x24 //: -0x06:0x25 //: -0x06:0x2E //: -0x06:0x2F //: -0x06:0x31 //: 0x06:0x35 //: -0x06:0x36 //: -0x06:0x37 //: -0x06:0x42 //: +0x06:0x40 //: +0x06:0x41 //: +0x06:0x42 //: +0x06:0x43 //: +0x06:0x44 //: +0x06:0x45 //: +0x06:0x46 //: +0x06:0x47 //: +0x06:0x48 //: +0x06:0x49 //: +0x06:0x4A //: +0x06:0x4B //: 0x06:0x54 //: 0x0A:0x10 //: 0x0A:0x11 //: @@ -34,9 +41,12 @@ 0x0A:0x23 //: 0x0A:0x40 //: 0x0A:0x42 //: +0x0A:0x43 //: 0x0A:0x44 //: +0x0A:0x47 //: 0x0A:0x48 //: 0x0A:0x49 //: +0x0C:0x01 //: 0x0C:0x02 //: 0x2C:0x00 //: 0x2C:0x01 //: @@ -45,3 +55,7 @@ 0x2C:0x06 //: 0x2C:0x07 //: 0x2C:0x10 //: +0x2C:0x3E //: +0x2E:0x02 //: +0x2E:0x30 //: +0x2E:0x32 //: diff --git a/Contrib-Inspur/openbmc/meta-quanta/meta-gsj/recipes-phosphor/leds/gsj-led-manager-config-native.bb b/Contrib-Inspur/openbmc/meta-quanta/meta-gsj/recipes-phosphor/leds/gsj-led-manager-config-native.bb index c8a8291e..a91420fe 100644 --- a/Contrib-Inspur/openbmc/meta-quanta/meta-gsj/recipes-phosphor/leds/gsj-led-manager-config-native.bb +++ b/Contrib-Inspur/openbmc/meta-quanta/meta-gsj/recipes-phosphor/leds/gsj-led-manager-config-native.bb @@ -1,7 +1,7 @@ SUMMARY = "Phosphor LED Group Management for gsj" PR = "r1" LICENSE = "Apache-2.0" -LIC_FILES_CHKSUM = "file://${PHOSPHORBASE}/COPYING.apache-2.0;md5=34400b68072d710fecd0a2940a0d1658" +LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10" inherit native diff --git a/Contrib-Inspur/openbmc/meta-quanta/meta-gsj/recipes-phosphor/sensors/phosphor-hwmon/obmc/hwmon/ahb/apb/i2c@8b000/hotswap@15.conf b/Contrib-Inspur/openbmc/meta-quanta/meta-gsj/recipes-phosphor/sensors/phosphor-hwmon/obmc/hwmon/ahb/apb/i2c@8b000/hotswap@15.conf index b1dc8219..c2060ccb 100644 --- a/Contrib-Inspur/openbmc/meta-quanta/meta-gsj/recipes-phosphor/sensors/phosphor-hwmon/obmc/hwmon/ahb/apb/i2c@8b000/hotswap@15.conf +++ b/Contrib-Inspur/openbmc/meta-quanta/meta-gsj/recipes-phosphor/sensors/phosphor-hwmon/obmc/hwmon/ahb/apb/i2c@8b000/hotswap@15.conf @@ -8,13 +8,14 @@ MAXVALUE_temp1 = "127" EVENT_temp1= "WARNHI,WARNLO,CRITHI,CRITLO" LABEL_curr1= "P48V_HSC_Current" -WARNLO_curr1= "3" +WARNLO_curr1= "4" CRITLO_curr1= "0" -WARNHI_curr1= "13750" -CRITHI_curr1= "15000" +WARNHI_curr1= "17629" +CRITHI_curr1= "19231" MINVALUE_curr1 = "0" MAXVALUE_curr1 = "23" EVENT_curr1= "WARNHI,WARNLO,CRITHI,CRITLO" +GAIN_curr1= "0.78" LABEL_in3= "P48V_HSC_Vol" WARNLO_in3= "39500" @@ -26,10 +27,11 @@ MAXVALUE_in3 = "62" EVENT_in3= "WARNHI,WARNLO,CRITHI,CRITLO" LABEL_power1= "P48V_HSC_Power" -WARNLO_power1= "100000" +WARNLO_power1= "128205" CRITLO_power1= "0" -WARNHI_power1= "550000000" -CRITHI_power1= "600000000" +WARNHI_power1= "705128205" +CRITHI_power1= "769230770" MINVALUE_power1 = "0" MAXVALUE_power1 = "795" EVENT_power1= "WARNHI,WARNLO,CRITHI,CRITLO" +GAIN_power1= "0.78" diff --git a/Contrib-Inspur/openbmc/meta-quanta/meta-gsj/recipes-phosphor/sensors/phosphor-hwmon_%.bbappend b/Contrib-Inspur/openbmc/meta-quanta/meta-gsj/recipes-phosphor/sensors/phosphor-hwmon_%.bbappend index 0313b044..e2d75304 100644 --- a/Contrib-Inspur/openbmc/meta-quanta/meta-gsj/recipes-phosphor/sensors/phosphor-hwmon_%.bbappend +++ b/Contrib-Inspur/openbmc/meta-quanta/meta-gsj/recipes-phosphor/sensors/phosphor-hwmon_%.bbappend @@ -15,9 +15,9 @@ ITEMSFMT = "ahb/apb/{0}.conf" ITEMS += "${@compose_list(d, 'ITEMSFMT', 'NAMES')}" ENVS = "obmc/hwmon/{0}" -SYSTEMD_ENVIRONMENT_FILE_${PN} += "${@compose_list(d, 'ENVS', 'ITEMS')}" +SYSTEMD_ENVIRONMENT_FILE_${PN}_append_gsj = " ${@compose_list(d, 'ENVS', 'ITEMS')}" # Fan sensors FITEMS = "pwm-fan-controller@103000.conf" FENVS = "obmc/hwmon/ahb/apb/{0}" -SYSTEMD_ENVIRONMENT_FILE_${PN} += "${@compose_list(d, 'FENVS', 'FITEMS')}" +SYSTEMD_ENVIRONMENT_FILE_${PN}_append_gsj = " ${@compose_list(d, 'FENVS', 'FITEMS')}" diff --git a/Contrib-Inspur/openbmc/meta-quanta/meta-gsj/recipes-phosphor/settings/phosphor-settings-manager/restrictionmode-default-whitelist.override.yml b/Contrib-Inspur/openbmc/meta-quanta/meta-gsj/recipes-phosphor/settings/phosphor-settings-manager/restrictionmode-default-whitelist.override.yml new file mode 100644 index 00000000..b0de5dd1 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-quanta/meta-gsj/recipes-phosphor/settings/phosphor-settings-manager/restrictionmode-default-whitelist.override.yml @@ -0,0 +1,6 @@ +--- +/xyz/openbmc_project/control/host0/restriction_mode: + - Interface: xyz.openbmc_project.Control.Security.RestrictionMode + Properties: + RestrictionMode: + Default: RestrictionMode::Modes::Whitelist diff --git a/Contrib-Inspur/openbmc/meta-quanta/meta-gsj/recipes-phosphor/settings/phosphor-settings-manager_%.bbappend b/Contrib-Inspur/openbmc/meta-quanta/meta-gsj/recipes-phosphor/settings/phosphor-settings-manager_%.bbappend index da834423..53db04d0 100644 --- a/Contrib-Inspur/openbmc/meta-quanta/meta-gsj/recipes-phosphor/settings/phosphor-settings-manager_%.bbappend +++ b/Contrib-Inspur/openbmc/meta-quanta/meta-gsj/recipes-phosphor/settings/phosphor-settings-manager_%.bbappend @@ -1,2 +1,3 @@ FILESEXTRAPATHS_prepend_gsj := "${THISDIR}/${BPN}:" SRC_URI_append_gsj = " file://time-default.override.yml" +SRC_URI_append_gsj = " file://restrictionmode-default-whitelist.override.yml" diff --git a/Contrib-Inspur/openbmc/meta-quanta/meta-olympus-nuvoton/conf/bblayers.conf.sample b/Contrib-Inspur/openbmc/meta-quanta/meta-olympus-nuvoton/conf/bblayers.conf.sample new file mode 100644 index 00000000..a4fbed41 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-quanta/meta-olympus-nuvoton/conf/bblayers.conf.sample @@ -0,0 +1,27 @@ +# LAYER_CONF_VERSION is increased each time build/conf/bblayers.conf +# changes incompatibly +LCONF_VERSION = "8" + +BBPATH = "${TOPDIR}" +BBFILES ?= "" + +BBLAYERS ?= " \ + ##OEROOT##/meta \ + ##OEROOT##/meta-openembedded/meta-oe \ + ##OEROOT##/meta-openembedded/meta-networking \ + ##OEROOT##/meta-openembedded/meta-python \ + ##OEROOT##/meta-phosphor \ + ##OEROOT##/meta-nuvoton \ + ##OEROOT##/meta-quanta \ + ##OEROOT##/meta-quanta/meta-olympus-nuvoton \ + " +BBLAYERS_NON_REMOVABLE ?= " \ + ##OEROOT##/meta \ + ##OEROOT##/meta-openembedded/meta-oe \ + ##OEROOT##/meta-openembedded/meta-networking \ + ##OEROOT##/meta-openembedded/meta-python \ + ##OEROOT##/meta-phosphor \ + ##OEROOT##/meta-nuvoton \ + ##OEROOT##/meta-quanta \ + ##OEROOT##/meta-quanta/meta-olympus-nuvoton \ + " diff --git a/Contrib-Inspur/openbmc/meta-quanta/meta-runbmc-nuvoton/conf/conf-notes.txt b/Contrib-Inspur/openbmc/meta-quanta/meta-olympus-nuvoton/conf/conf-notes.txt similarity index 100% rename from Contrib-Inspur/openbmc/meta-quanta/meta-runbmc-nuvoton/conf/conf-notes.txt rename to Contrib-Inspur/openbmc/meta-quanta/meta-olympus-nuvoton/conf/conf-notes.txt diff --git a/Contrib-Inspur/openbmc/meta-quanta/meta-olympus-nuvoton/conf/layer.conf b/Contrib-Inspur/openbmc/meta-quanta/meta-olympus-nuvoton/conf/layer.conf new file mode 100644 index 00000000..5d5fdb73 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-quanta/meta-olympus-nuvoton/conf/layer.conf @@ -0,0 +1,10 @@ +# We have a conf and classes directory, add to BBPATH +BBPATH .= ":${LAYERDIR}" + +# We have recipes-* directories, add to BBFILES +BBFILES += "${LAYERDIR}/recipes-*/*/*.bb \ + ${LAYERDIR}/recipes-*/*/*.bbappend" + +BBFILE_COLLECTIONS += "olympus-nuvoton-layer" +BBFILE_PATTERN_olympus-nuvoton-layer := "^${LAYERDIR}/" +LAYERSERIES_COMPAT_olympus-nuvoton-layer = "warrior zeus" diff --git a/Contrib-Inspur/openbmc/meta-quanta/meta-olympus-nuvoton/conf/local.conf.sample b/Contrib-Inspur/openbmc/meta-quanta/meta-olympus-nuvoton/conf/local.conf.sample new file mode 100644 index 00000000..76d1a971 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-quanta/meta-olympus-nuvoton/conf/local.conf.sample @@ -0,0 +1,17 @@ +MACHINE ??= "olympus-nuvoton" +DISTRO ?= "openbmc-phosphor" +PACKAGE_CLASSES ?= "package_rpm" +SANITY_TESTED_DISTROS_append ?= " *" +EXTRA_IMAGE_FEATURES = "debug-tweaks" +USER_CLASSES ?= "buildstats image-mklibs image-prelink" +PATCHRESOLVE = "noop" +BB_DISKMON_DIRS = "\ + STOPTASKS,${TMPDIR},1G,100K \ + STOPTASKS,${DL_DIR},1G,100K \ + STOPTASKS,${SSTATE_DIR},1G,100K \ + STOPTASKS,/tmp,100M,100K \ + ABORT,${TMPDIR},100M,1K \ + ABORT,${DL_DIR},100M,1K \ + ABORT,${SSTATE_DIR},100M,1K \ + ABORT,/tmp,10M,1K" +CONF_VERSION = "1" diff --git a/Contrib-Inspur/openbmc/meta-quanta/meta-olympus-nuvoton/conf/machine/olympus-nuvoton.conf b/Contrib-Inspur/openbmc/meta-quanta/meta-olympus-nuvoton/conf/machine/olympus-nuvoton.conf new file mode 100644 index 00000000..ac3c128a --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-quanta/meta-olympus-nuvoton/conf/machine/olympus-nuvoton.conf @@ -0,0 +1,29 @@ +KMACHINE = "nuvoton" +KERNEL_DEVICETREE = "${KMACHINE}-npcm750-runbmc-olympus.dtb" + +require conf/machine/include/npcm7xx.inc +require conf/machine/include/obmc-bsp-common.inc + +FLASH_SIZE = "32768" +FLASH_UBOOT_OFFSET = "0" +FLASH_KERNEL_OFFSET = "2048" +FLASH_ROFS_OFFSET = "8192" +FLASH_RWFS_OFFSET = "29696" + +UBOOT_MACHINE = "PolegRunBMC_defconfig" +IGPS_MACHINE = "RunBMC" + +IMAGE_FSTYPES += " cpio.${INITRAMFS_CTYPE}.u-boot" +IMAGE_FSTYPES += " mtd-ubi-tar" + +OBMC_MACHINE_FEATURES += "\ + obmc-phosphor-fan-mgmt \ + obmc-phosphor-chassis-mgmt \ + obmc-phosphor-flash-mgmt \ + obmc-host-ipmi \ + obmc-host-state-mgmt \ + obmc-chassis-state-mgmt \ + obmc-bmc-state-mgmt \ + " + +PREFERRED_PROVIDER_virtual/obmc-host-ipmi-hw = "phosphor-ipmi-kcs" diff --git a/Contrib-Inspur/openbmc/meta-quanta/meta-runbmc-nuvoton/recipes-bsp/u-boot/u-boot-fw-utils-nuvoton/fw_env.config b/Contrib-Inspur/openbmc/meta-quanta/meta-olympus-nuvoton/recipes-bsp/u-boot/u-boot-fw-utils-nuvoton/fw_env.config similarity index 100% rename from Contrib-Inspur/openbmc/meta-quanta/meta-runbmc-nuvoton/recipes-bsp/u-boot/u-boot-fw-utils-nuvoton/fw_env.config rename to Contrib-Inspur/openbmc/meta-quanta/meta-olympus-nuvoton/recipes-bsp/u-boot/u-boot-fw-utils-nuvoton/fw_env.config diff --git a/Contrib-Inspur/openbmc/meta-quanta/meta-runbmc-nuvoton/recipes-bsp/u-boot/u-boot-fw-utils-nuvoton_%.bbappend b/Contrib-Inspur/openbmc/meta-quanta/meta-olympus-nuvoton/recipes-bsp/u-boot/u-boot-fw-utils-nuvoton_%.bbappend similarity index 100% rename from Contrib-Inspur/openbmc/meta-quanta/meta-runbmc-nuvoton/recipes-bsp/u-boot/u-boot-fw-utils-nuvoton_%.bbappend rename to Contrib-Inspur/openbmc/meta-quanta/meta-olympus-nuvoton/recipes-bsp/u-boot/u-boot-fw-utils-nuvoton_%.bbappend diff --git a/Contrib-Inspur/openbmc/meta-quanta/meta-olympus-nuvoton/recipes-kernel/linux/linux-nuvoton/olympus-nuvoton.cfg b/Contrib-Inspur/openbmc/meta-quanta/meta-olympus-nuvoton/recipes-kernel/linux/linux-nuvoton/olympus-nuvoton.cfg new file mode 100644 index 00000000..eb0eec12 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-quanta/meta-olympus-nuvoton/recipes-kernel/linux/linux-nuvoton/olympus-nuvoton.cfg @@ -0,0 +1,78 @@ +CONFIG_HWMON=y +CONFIG_SENSORS_TMP100=y +CONFIG_SENSORS_LM75=y +CONFIG_SENSORS_FAN=y +CONFIG_SENSORS_ADC128D818=y +CONFIG_SENSORS_ADM1275=y +CONFIG_SENSORS_TMP102=y +CONFIG_SENSORS_TMP421=y + +CONFIG_PMBUS=y +CONFIG_SENSORS_PMBUS=y +CONFIG_SENSORS_INA2XX=y +CONFIG_SENSORS_TPS53679=y + +CONFIG_IIO=y +CONFIG_IIO_MUX=y +CONFIG_NPCM_ADC=y +CONFIG_SENSORS_IIO_HWMON=y + +CONFIG_NEW_LEDS=y +CONFIG_LEDS_CLASS=y +CONFIG_LEDS_GPIO=y +CONFIG_LEDS_TRIGGERS=y +CONFIG_LEDS_TRIGGER_TIMER=y +CONFIG_LEDS_TRIGGER_HEARTBEAT=y +CONFIG_LEDS_TRIGGER_DEFAULT_ON=y + +CONFIG_OVERLAY_FS=y +CONFIG_SQUASHFS=y +CONFIG_SQUASHFS_XZ=y +CONFIG_JFFS2_FS=y + +CONFIG_SPI=y +CONFIG_SPI_NPCM_FIU=y +CONFIG_MTD_M25P80=y +CONFIG_SPI_NPCM_PSPI=y + +CONFIG_NET_NCSI=y + +CONFIG_EEPROM_AT24=y +CONFIG_I2C_MUX=y +CONFIG_I2C_MUX_PCA954x=y +CONFIG_I2C_SLAVE_EEPROM=y +CONFIG_GPIO_PCA953X=y +CONFIG_GPIO_PCA953X_IRQ=y +CONFIG_GPIO_PCF857X=y +CONFIG_MUX_MMIO=y +CONFIG_USB_U_ETHER=y +CONFIG_USB_F_ECM=y +CONFIG_USB_F_EEM=y +CONFIG_USB_F_SUBSET=y +CONFIG_USB_F_RNDIS=y +CONFIG_USB_F_MASS_STORAGE=y +CONFIG_USB_CONFIGFS=y +CONFIG_USB_CONFIGFS_ECM=y +CONFIG_USB_CONFIGFS_ECM_SUBSET=y +CONFIG_USB_CONFIGFS_RNDIS=y +CONFIG_USB_CONFIGFS_EEM=y +CONFIG_USB_CONFIGFS_MASS_STORAGE=y +CONFIG_USB_CONFIGFS_F_HID=y + +CONFIG_MEDIA_SUPPORT=y +CONFIG_VIDEO_NUVOTON=y +CONFIG_NPCM750_VCD=y +CONFIG_NPCM750_ECE=y +CONFIG_FORCE_MAX_ZONEORDER=12 + +CONFIG_USB_GADGET_NPCM_USB2=y + +CONFIG_PECI=y +CONFIG_PECI_NPCM=y +CONFIG_MFD_INTEL_PECI_CLIENT=y +CONFIG_SENSORS_PECI_CPUTEMP=y +CONFIG_SENSORS_PECI_DIMMTEMP=y +CONFIG_RESET_NPCM=y + +CONFIG_I2C_SLAVE_MQUEUE=y +CONFIG_NUVOTON_JTAG=y diff --git a/Contrib-Inspur/openbmc/meta-quanta/meta-olympus-nuvoton/recipes-kernel/linux/linux-nuvoton_%.bbappend b/Contrib-Inspur/openbmc/meta-quanta/meta-olympus-nuvoton/recipes-kernel/linux/linux-nuvoton_%.bbappend new file mode 100644 index 00000000..0ebbb1aa --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-quanta/meta-olympus-nuvoton/recipes-kernel/linux/linux-nuvoton_%.bbappend @@ -0,0 +1,3 @@ +FILESEXTRAPATHS_prepend := "${THISDIR}/linux-nuvoton:" + +SRC_URI += "file://olympus-nuvoton.cfg" diff --git a/Contrib-Inspur/openbmc/meta-quanta/meta-olympus-nuvoton/recipes-phosphor/console/files/obmc-console.conf b/Contrib-Inspur/openbmc/meta-quanta/meta-olympus-nuvoton/recipes-phosphor/console/files/obmc-console.conf new file mode 100644 index 00000000..f99eaff4 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-quanta/meta-olympus-nuvoton/recipes-phosphor/console/files/obmc-console.conf @@ -0,0 +1 @@ +baud = 57600 diff --git a/Contrib-Inspur/openbmc/meta-quanta/meta-olympus-nuvoton/recipes-phosphor/console/obmc-console_%.bbappend b/Contrib-Inspur/openbmc/meta-quanta/meta-olympus-nuvoton/recipes-phosphor/console/obmc-console_%.bbappend new file mode 100644 index 00000000..5967ce1b --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-quanta/meta-olympus-nuvoton/recipes-phosphor/console/obmc-console_%.bbappend @@ -0,0 +1,12 @@ +SUMMARY = "Nuvoton OpenBMC console daemon" +DESCRIPTION = "Nuvoton Daemon to handle UART console connections" +HOMEPAGE = "http://github.com/openbmc/obmc-console" +PR = "r1" + +FILESEXTRAPATHS_prepend := "${THISDIR}/files:" + +OBMC_CONSOLE_HOST_TTY := "ttyS2" + +do_build_append() { + install -m 0644 ${THISDIR}/files/${PN}.conf ${WORKDIR}/${PN}.conf +} diff --git a/Contrib-Inspur/openbmc/meta-quanta/meta-olympus-nuvoton/recipes-phosphor/fans/phosphor-pid-control/config-olympus-nuvoton.json b/Contrib-Inspur/openbmc/meta-quanta/meta-olympus-nuvoton/recipes-phosphor/fans/phosphor-pid-control/config-olympus-nuvoton.json new file mode 100644 index 00000000..5a78db6e --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-quanta/meta-olympus-nuvoton/recipes-phosphor/fans/phosphor-pid-control/config-olympus-nuvoton.json @@ -0,0 +1,400 @@ +{ + "sensors" : [ + { + "name": "fan1", + "type": "fan", + "readPath": "/xyz/openbmc_project/sensors/fan_tach/fan1", + "writePath": "/sys/devices/platform/ahb/ahb:apb/f0103000.pwm-fan-controller/hwmon/**/pwm1", + "min": 0, + "max": 255 + }, + { + "name": "Core_0_CPU0", + "type": "temp", + "readPath": "/xyz/openbmc_project/sensors/temperature/Core_0_CPU0", + "writePath": "", + "min": 0, + "max": 0, + "timeout": 0 + }, + { + "name": "Core_0_CPU1", + "type": "temp", + "readPath": "/xyz/openbmc_project/sensors/temperature/Core_0_CPU1", + "writePath": "", + "min": 0, + "max": 0, + "timeout": 0 + }, + { + "name": "Core_1_CPU0", + "type": "temp", + "readPath": "/xyz/openbmc_project/sensors/temperature/Core_1_CPU0", + "writePath": "", + "min": 0, + "max": 0, + "timeout": 0 + }, + { + "name": "Core_1_CPU1", + "type": "temp", + "readPath": "/xyz/openbmc_project/sensors/temperature/Core_1_CPU1", + "writePath": "", + "min": 0, + "max": 0, + "timeout": 0 + }, + { + "name": "Core_2_CPU0", + "type": "temp", + "readPath": "/xyz/openbmc_project/sensors/temperature/Core_2_CPU0", + "writePath": "", + "min": 0, + "max": 0, + "timeout": 0 + }, + { + "name": "Core_2_CPU1", + "type": "temp", + "readPath": "/xyz/openbmc_project/sensors/temperature/Core_2_CPU1", + "writePath": "", + "min": 0, + "max": 0, + "timeout": 0 + }, + { + "name": "Core_3_CPU0", + "type": "temp", + "readPath": "/xyz/openbmc_project/sensors/temperature/Core_3_CPU0", + "writePath": "", + "min": 0, + "max": 0, + "timeout": 0 + }, + { + "name": "Core_3_CPU1", + "type": "temp", + "readPath": "/xyz/openbmc_project/sensors/temperature/Core_3_CPU1", + "writePath": "", + "min": 0, + "max": 0, + "timeout": 0 + }, + { + "name": "Core_4_CPU0", + "type": "temp", + "readPath": "/xyz/openbmc_project/sensors/temperature/Core_4_CPU0", + "writePath": "", + "min": 0, + "max": 0, + "timeout": 0 + }, + { + "name": "Core_4_CPU1", + "type": "temp", + "readPath": "/xyz/openbmc_project/sensors/temperature/Core_4_CPU1", + "writePath": "", + "min": 0, + "max": 0, + "timeout": 0 + }, + { + "name": "Core_5_CPU0", + "type": "temp", + "readPath": "/xyz/openbmc_project/sensors/temperature/Core_5_CPU0", + "writePath": "", + "min": 0, + "max": 0, + "timeout": 0 + }, + { + "name": "Core_5_CPU1", + "type": "temp", + "readPath": "/xyz/openbmc_project/sensors/temperature/Core_5_CPU1", + "writePath": "", + "min": 0, + "max": 0, + "timeout": 0 + } + ], + "zones" : [ + { + "id": 0, + "minThermalOutput": 0.0, + "failsafePercent": 100.0, + "pids": [ + { + "name": "fan1", + "type": "fan", + "inputs": ["fan1"], + "setpoint": 40.0, + "pid": { + "samplePeriod": 1.0, + "proportionalCoeff": 0.0, + "integralCoeff": 0.0, + "feedFwdOffsetCoeff": 0.0, + "feedFwdGainCoeff": 1.0, + "integralLimit_min": 0.0, + "integralLimit_max": 0.0, + "outLim_min": 3.0, + "outLim_max": 100.0, + "slewNeg": 0.0, + "slewPos": 0.0 + } + }, + { + "name": "Core_0_CPU0", + "type": "temp", + "inputs": ["Core_0_CPU0"], + "setpoint": 30.0, + "pid": { + "samplePeriod": 1.0, + "proportionalCoeff": -20.0, + "integralCoeff": -0.1, + "feedFwdOffsetCoeff": 0.0, + "feedFwdGainCoeff": 0.0, + "integralLimit_min": 0.0, + "integralLimit_max": 0.0, + "outLim_min": 0.0, + "outLim_max": 16000.0, + "slewNeg": 0.0, + "slewPos": 0.0, + "positiveHysteresis": 1.0, + "negativeHysteresis": 1.0 + } + }, + { + "name": "Core_0_CPU1", + "type": "temp", + "inputs": ["Core_0_CPU1"], + "setpoint": 30.0, + "pid": { + "samplePeriod": 1.0, + "proportionalCoeff": -20.0, + "integralCoeff": -0.1, + "feedFwdOffsetCoeff": 0.0, + "feedFwdGainCoeff": 0.0, + "integralLimit_min": 0.0, + "integralLimit_max": 0.0, + "outLim_min": 0.0, + "outLim_max": 16000.0, + "slewNeg": 0.0, + "slewPos": 0.0, + "positiveHysteresis": 1.0, + "negativeHysteresis": 1.0 + } + }, + { + "name": "Core_1_CPU0", + "type": "temp", + "inputs": ["Core_1_CPU0"], + "setpoint": 30.0, + "pid": { + "samplePeriod": 1.0, + "proportionalCoeff": -20.0, + "integralCoeff": -0.1, + "feedFwdOffsetCoeff": 0.0, + "feedFwdGainCoeff": 0.0, + "integralLimit_min": 0.0, + "integralLimit_max": 0.0, + "outLim_min": 0.0, + "outLim_max": 16000.0, + "slewNeg": 0.0, + "slewPos": 0.0, + "positiveHysteresis": 1.0, + "negativeHysteresis": 1.0 + } + }, + { + "name": "Core_1_CPU1", + "type": "temp", + "inputs": ["Core_1_CPU1"], + "setpoint": 30.0, + "pid": { + "samplePeriod": 1.0, + "proportionalCoeff": -20.0, + "integralCoeff": -0.1, + "feedFwdOffsetCoeff": 0.0, + "feedFwdGainCoeff": 0.0, + "integralLimit_min": 0.0, + "integralLimit_max": 0.0, + "outLim_min": 0.0, + "outLim_max": 16000.0, + "slewNeg": 0.0, + "slewPos": 0.0, + "positiveHysteresis": 1.0, + "negativeHysteresis": 1.0 + } + }, + { + "name": "Core_2_CPU0", + "type": "temp", + "inputs": ["Core_2_CPU0"], + "setpoint": 30.0, + "pid": { + "samplePeriod": 1.0, + "proportionalCoeff": -20.0, + "integralCoeff": -0.1, + "feedFwdOffsetCoeff": 0.0, + "feedFwdGainCoeff": 0.0, + "integralLimit_min": 0.0, + "integralLimit_max": 0.0, + "outLim_min": 0.0, + "outLim_max": 16000.0, + "slewNeg": 0.0, + "slewPos": 0.0, + "positiveHysteresis": 1.0, + "negativeHysteresis": 1.0 + } + }, + { + "name": "Core_2_CPU1", + "type": "temp", + "inputs": ["Core_2_CPU1"], + "setpoint": 30.0, + "pid": { + "samplePeriod": 1.0, + "proportionalCoeff": -20.0, + "integralCoeff": -0.1, + "feedFwdOffsetCoeff": 0.0, + "feedFwdGainCoeff": 0.0, + "integralLimit_min": 0.0, + "integralLimit_max": 0.0, + "outLim_min": 0.0, + "outLim_max": 16000.0, + "slewNeg": 0.0, + "slewPos": 0.0, + "positiveHysteresis": 1.0, + "negativeHysteresis": 1.0 + } + }, + { + "name": "Core_3_CPU0", + "type": "temp", + "inputs": ["Core_3_CPU0"], + "setpoint": 30.0, + "pid": { + "samplePeriod": 1.0, + "proportionalCoeff": -20.0, + "integralCoeff": -0.1, + "feedFwdOffsetCoeff": 0.0, + "feedFwdGainCoeff": 0.0, + "integralLimit_min": 0.0, + "integralLimit_max": 0.0, + "outLim_min": 0.0, + "outLim_max": 16000.0, + "slewNeg": 0.0, + "slewPos": 0.0, + "positiveHysteresis": 1.0, + "negativeHysteresis": 1.0 + } + }, + { + "name": "Core_3_CPU1", + "type": "temp", + "inputs": ["Core_3_CPU1"], + "setpoint": 30.0, + "pid": { + "samplePeriod": 1.0, + "proportionalCoeff": -20.0, + "integralCoeff": -0.1, + "feedFwdOffsetCoeff": 0.0, + "feedFwdGainCoeff": 0.0, + "integralLimit_min": 0.0, + "integralLimit_max": 0.0, + "outLim_min": 0.0, + "outLim_max": 16000.0, + "slewNeg": 0.0, + "slewPos": 0.0, + "positiveHysteresis": 1.0, + "negativeHysteresis": 1.0 + } + }, + { + "name": "Core_4_CPU0", + "type": "temp", + "inputs": ["Core_4_CPU0"], + "setpoint": 30.0, + "pid": { + "samplePeriod": 1.0, + "proportionalCoeff": -20.0, + "integralCoeff": -0.1, + "feedFwdOffsetCoeff": 0.0, + "feedFwdGainCoeff": 0.0, + "integralLimit_min": 0.0, + "integralLimit_max": 0.0, + "outLim_min": 0.0, + "outLim_max": 16000.0, + "slewNeg": 0.0, + "slewPos": 0.0, + "positiveHysteresis": 1.0, + "negativeHysteresis": 1.0 + } + }, + { + "name": "Core_4_CPU1", + "type": "temp", + "inputs": ["Core_4_CPU1"], + "setpoint": 30.0, + "pid": { + "samplePeriod": 1.0, + "proportionalCoeff": -20.0, + "integralCoeff": -0.1, + "feedFwdOffsetCoeff": 0.0, + "feedFwdGainCoeff": 0.0, + "integralLimit_min": 0.0, + "integralLimit_max": 0.0, + "outLim_min": 0.0, + "outLim_max": 16000.0, + "slewNeg": 0.0, + "slewPos": 0.0, + "positiveHysteresis": 1.0, + "negativeHysteresis": 1.0 + } + }, + { + "name": "Core_5_CPU0", + "type": "temp", + "inputs": ["Core_5_CPU0"], + "setpoint": 30.0, + "pid": { + "samplePeriod": 1.0, + "proportionalCoeff": -20.0, + "integralCoeff": -0.1, + "feedFwdOffsetCoeff": 0.0, + "feedFwdGainCoeff": 0.0, + "integralLimit_min": 0.0, + "integralLimit_max": 0.0, + "outLim_min": 0.0, + "outLim_max": 16000.0, + "slewNeg": 0.0, + "slewPos": 0.0, + "positiveHysteresis": 1.0, + "negativeHysteresis": 1.0 + } + }, + { + "name": "Core_5_CPU1", + "type": "temp", + "inputs": ["Core_5_CPU1"], + "setpoint": 30.0, + "pid": { + "samplePeriod": 1.0, + "proportionalCoeff": -20.0, + "integralCoeff": -0.1, + "feedFwdOffsetCoeff": 0.0, + "feedFwdGainCoeff": 0.0, + "integralLimit_min": 0.0, + "integralLimit_max": 0.0, + "outLim_min": 0.0, + "outLim_max": 16000.0, + "slewNeg": 0.0, + "slewPos": 0.0, + "positiveHysteresis": 1.0, + "negativeHysteresis": 1.0 + } + } + ] + } + ] +} diff --git a/Contrib-Inspur/openbmc/meta-quanta/meta-olympus-nuvoton/recipes-phosphor/fans/phosphor-pid-control/fan-full-speed.sh b/Contrib-Inspur/openbmc/meta-quanta/meta-olympus-nuvoton/recipes-phosphor/fans/phosphor-pid-control/fan-full-speed.sh new file mode 100644 index 00000000..9a0d8e2e --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-quanta/meta-olympus-nuvoton/recipes-phosphor/fans/phosphor-pid-control/fan-full-speed.sh @@ -0,0 +1,3 @@ +#!bin/bash + +echo 255 > /sys/class/hwmon/*/pwm1 diff --git a/Contrib-Inspur/openbmc/meta-quanta/meta-olympus-nuvoton/recipes-phosphor/fans/phosphor-pid-control/fan-reboot-control.service b/Contrib-Inspur/openbmc/meta-quanta/meta-olympus-nuvoton/recipes-phosphor/fans/phosphor-pid-control/fan-reboot-control.service new file mode 100644 index 00000000..3ce2e01b --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-quanta/meta-olympus-nuvoton/recipes-phosphor/fans/phosphor-pid-control/fan-reboot-control.service @@ -0,0 +1,12 @@ +[Unit] +Description=Set Fan to Full Speed as Rebooting +DefaultDependencies=no +After=shutdown.target + +[Service] +Type=oneshot +RemainAfterExit=true +ExecStart=/usr/bin/fan-full-speed.sh + +[Install] +WantedBy=shutdown.target diff --git a/Contrib-Inspur/openbmc/meta-quanta/meta-olympus-nuvoton/recipes-phosphor/fans/phosphor-pid-control/phosphor-pid-control.service b/Contrib-Inspur/openbmc/meta-quanta/meta-olympus-nuvoton/recipes-phosphor/fans/phosphor-pid-control/phosphor-pid-control.service new file mode 100644 index 00000000..57ae69c5 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-quanta/meta-olympus-nuvoton/recipes-phosphor/fans/phosphor-pid-control/phosphor-pid-control.service @@ -0,0 +1,13 @@ +[Unit] +Description=OpenBMC Fan Control Daemon + +[Service] +Type=simple +ExecStart=/usr/bin/swampd +Restart=always +RestartSec=5 +StartLimitInterval=0 +ExecStopPost=/usr/bin/fan-full-speed.sh + +[Install] +WantedBy=basic.target diff --git a/Contrib-Inspur/openbmc/meta-quanta/meta-olympus-nuvoton/recipes-phosphor/fans/phosphor-pid-control_%.bbappend b/Contrib-Inspur/openbmc/meta-quanta/meta-olympus-nuvoton/recipes-phosphor/fans/phosphor-pid-control_%.bbappend new file mode 100644 index 00000000..a61181dc --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-quanta/meta-olympus-nuvoton/recipes-phosphor/fans/phosphor-pid-control_%.bbappend @@ -0,0 +1,29 @@ +FILESEXTRAPATHS_prepend_olympus-nuvoton := "${THISDIR}/${PN}:" + +SRC_URI_append_olympus-nuvoton = " file://config-olympus-nuvoton.json" +SRC_URI_append_olympus-nuvoton = " file://fan-full-speed.sh" +SRC_URI_append_olympus-nuvoton = " file://phosphor-pid-control.service" +SRC_URI_append_olympus-nuvoton = " file://fan-reboot-control.service" + +FILES_${PN}_append_olympus-nuvoton = " ${bindir}/fan-full-speed.sh" +FILES_${PN}_append_olympus-nuvoton = " ${datadir}/swampd/config.json" + +RDEPENDS_${PN} += "bash" + +SYSTEMD_SERVICE_${PN}_append_olympus-nuvoton = " phosphor-pid-control.service" +SYSTEMD_SERVICE_${PN}_append_olympus-nuvoton = " fan-reboot-control.service" + +do_install_append_olympus-nuvoton() { + install -d ${D}/${bindir} + install -m 0755 ${WORKDIR}/fan-full-speed.sh ${D}/${bindir} + + install -d ${D}${datadir}/swampd + install -m 0644 -D ${WORKDIR}/config-olympus-nuvoton.json \ + ${D}${datadir}/swampd/config.json + + install -d ${D}${systemd_unitdir}/system/ + install -m 0644 ${WORKDIR}/phosphor-pid-control.service \ + ${D}${systemd_unitdir}/system + install -m 0644 ${WORKDIR}/fan-reboot-control.service \ + ${D}${systemd_unitdir}/system +} diff --git a/Contrib-Inspur/openbmc/meta-quanta/meta-olympus-nuvoton/recipes-phosphor/ipmi/phosphor-ipmi-fru/obmc/eeproms/system/chassis/bmc b/Contrib-Inspur/openbmc/meta-quanta/meta-olympus-nuvoton/recipes-phosphor/ipmi/phosphor-ipmi-fru/obmc/eeproms/system/chassis/bmc new file mode 100644 index 00000000..d512687a --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-quanta/meta-olympus-nuvoton/recipes-phosphor/ipmi/phosphor-ipmi-fru/obmc/eeproms/system/chassis/bmc @@ -0,0 +1,2 @@ +SYSFS_PATH=/sys/bus/i2c/devices/13-0051/eeprom +FRUID=2 diff --git a/Contrib-Inspur/openbmc/meta-quanta/meta-olympus-nuvoton/recipes-phosphor/ipmi/phosphor-ipmi-fru/obmc/eeproms/system/chassis/motherboard b/Contrib-Inspur/openbmc/meta-quanta/meta-olympus-nuvoton/recipes-phosphor/ipmi/phosphor-ipmi-fru/obmc/eeproms/system/chassis/motherboard new file mode 100644 index 00000000..eec92f46 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-quanta/meta-olympus-nuvoton/recipes-phosphor/ipmi/phosphor-ipmi-fru/obmc/eeproms/system/chassis/motherboard @@ -0,0 +1,2 @@ +SYSFS_PATH=/sys/bus/i2c/devices/4-0054/eeprom +FRUID=1 diff --git a/Contrib-Inspur/openbmc/meta-quanta/meta-olympus-nuvoton/recipes-phosphor/ipmi/phosphor-ipmi-fru_%.bbappend b/Contrib-Inspur/openbmc/meta-quanta/meta-olympus-nuvoton/recipes-phosphor/ipmi/phosphor-ipmi-fru_%.bbappend new file mode 100644 index 00000000..ba0862d3 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-quanta/meta-olympus-nuvoton/recipes-phosphor/ipmi/phosphor-ipmi-fru_%.bbappend @@ -0,0 +1,22 @@ +inherit obmc-phosphor-systemd + +FILESEXTRAPATHS_prepend_olympus-nuvoton := "${THISDIR}/${PN}:" + +EEPROM_NAMES = "motherboard bmc" + +EEPROMFMT = "system/chassis/{0}" +EEPROM_ESCAPEDFMT = "system-chassis-{0}" +EEPROMS = "${@compose_list(d, 'EEPROMFMT', 'EEPROM_NAMES')}" +EEPROMS_ESCAPED = "${@compose_list(d, 'EEPROM_ESCAPEDFMT', 'EEPROM_NAMES')}" + +ENVFMT = "obmc/eeproms/{0}" +SYSTEMD_ENVIRONMENT_FILE_${PN}_append_olympus-nuvoton := " ${@compose_list(d, 'ENVFMT', 'EEPROMS')}" + +TMPL = "obmc-read-eeprom@.service" +TGT = "${SYSTEMD_DEFAULT_TARGET}" +INSTFMT = "obmc-read-eeprom@{0}.service" +FMT = "../${TMPL}:${TGT}.wants/${INSTFMT}" + +SYSTEMD_LINK_${PN}_append_olympus-nuvoton := " ${@compose_list(d, 'FMT', 'EEPROMS_ESCAPED')}" +FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:" + diff --git a/Contrib-Inspur/openbmc/meta-quanta/meta-olympus-nuvoton/recipes-phosphor/ipmi/phosphor-ipmi-ipmb/ipmb-olympus-channels.json b/Contrib-Inspur/openbmc/meta-quanta/meta-olympus-nuvoton/recipes-phosphor/ipmi/phosphor-ipmi-ipmb/ipmb-olympus-channels.json new file mode 100644 index 00000000..45100bd1 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-quanta/meta-olympus-nuvoton/recipes-phosphor/ipmi/phosphor-ipmi-ipmb/ipmb-olympus-channels.json @@ -0,0 +1,11 @@ +{ + "channels": [ + { + "type": "me", + "master-path": "/dev/i2c-5", + "slave-path": "/sys/bus/i2c/devices/5-1010/slave-mqueue", + "bmc-addr": 32, + "remote-addr": 44 + } + ] +} diff --git a/Contrib-Inspur/openbmc/meta-quanta/meta-olympus-nuvoton/recipes-phosphor/ipmi/phosphor-ipmi-ipmb_%.bbappend b/Contrib-Inspur/openbmc/meta-quanta/meta-olympus-nuvoton/recipes-phosphor/ipmi/phosphor-ipmi-ipmb_%.bbappend new file mode 100644 index 00000000..6feb2be8 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-quanta/meta-olympus-nuvoton/recipes-phosphor/ipmi/phosphor-ipmi-ipmb_%.bbappend @@ -0,0 +1,11 @@ +FILESEXTRAPATHS_prepend_olympus-nuvoton := "${THISDIR}/${PN}:" + +SRC_URI_append_olympus-nuvoton = " file://ipmb-olympus-channels.json" +FILES_${PN}_append_olympus-nuvoton = " ${datadir}/ipmbbridge/ipmb-channels.json" + +do_install_append_olympus-nuvoton() { + install -d ${D}${datadir}/ipmbbridge + install -m 0644 -D ${WORKDIR}/ipmb-olympus-channels.json \ + ${D}${datadir}/ipmbbridge/ipmb-channels.json +} + diff --git a/Contrib-Inspur/openbmc/meta-quanta/meta-olympus-nuvoton/recipes-phosphor/ipmi/phosphor-ipmi-kcs_%.bbappend b/Contrib-Inspur/openbmc/meta-quanta/meta-olympus-nuvoton/recipes-phosphor/ipmi/phosphor-ipmi-kcs_%.bbappend new file mode 100644 index 00000000..f5b70c82 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-quanta/meta-olympus-nuvoton/recipes-phosphor/ipmi/phosphor-ipmi-kcs_%.bbappend @@ -0,0 +1,2 @@ +KCS_DEVICE = "ipmi-kcs1" + diff --git a/Contrib-Inspur/openbmc/meta-quanta/meta-olympus-nuvoton/recipes-phosphor/ipmi/phosphor-ipmi-net_%.bbappend b/Contrib-Inspur/openbmc/meta-quanta/meta-olympus-nuvoton/recipes-phosphor/ipmi/phosphor-ipmi-net_%.bbappend new file mode 100644 index 00000000..d1814643 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-quanta/meta-olympus-nuvoton/recipes-phosphor/ipmi/phosphor-ipmi-net_%.bbappend @@ -0,0 +1 @@ +RMCPP_IFACE = "eth1" \ No newline at end of file diff --git a/Contrib-Inspur/openbmc/meta-quanta/meta-olympus-nuvoton/recipes-phosphor/sensors/phosphor-hwmon/obmc/hwmon/ahb/apb/adc@c000.conf b/Contrib-Inspur/openbmc/meta-quanta/meta-olympus-nuvoton/recipes-phosphor/sensors/phosphor-hwmon/obmc/hwmon/ahb/apb/adc@c000.conf new file mode 100644 index 00000000..0a91f05d --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-quanta/meta-olympus-nuvoton/recipes-phosphor/sensors/phosphor-hwmon/obmc/hwmon/ahb/apb/adc@c000.conf @@ -0,0 +1,46 @@ +LABEL_in1 = "P3V3" +GAIN_in1=2.435 +WARNHI_in1 = "3541" +WARNLO_in1 = "3066" +CRITHI_in1 = "3647" +CRITLO_in1 = "2097" + +LABEL_in2 = "P5V" +GAIN_in2=3.68 +WARNHI_in2 = "5500" +WARNLO_in2 = "4500" +CRITHI_in2 = "5700" +CRITLO_in2 = "4000" + +LABEL_in3 = "P3V3_STBY" +GAIN_in3=2.435 +WARNHI_in3 = "3541" +WARNLO_in3 = "3066" +CRITHI_in3 = "3647" +CRITLO_in3 = "2097" + +LABEL_in4 = "P5V_STBY" +GAIN_in4=3.68 +WARNHI_in4 = "5500" +WARNLO_in4 = "4500" +CRITHI_in4 = "5700" +CRITLO_in4 = "4000" + +LABEL_in6 = "PVNN_STBY_PCH" +WARNHI_in6 = "1050" +WARNLO_in6 = "945" +CRITHI_in6 = "1100" +CRITLO_in6 = "916" + +LABEL_in7 = "P12V_STBY" +GAIN_in7=8.9 +WARNHI_in7 = "13101" +WARNLO_in7 = "10945" +CRITHI_in7 = "13494" +CRITLO_in7 = "10616" + +LABEL_in8 = "P1V05_STBY_PCH" +WARNHI_in8 = "1106" +WARNLO_in8 = "995" +CRITHI_in8 = "1139" +CRITLO_in8 = "966" diff --git a/Contrib-Inspur/openbmc/meta-quanta/meta-olympus-nuvoton/recipes-phosphor/sensors/phosphor-hwmon/obmc/hwmon/ahb/apb/i2c@82000/power-supply@58.conf b/Contrib-Inspur/openbmc/meta-quanta/meta-olympus-nuvoton/recipes-phosphor/sensors/phosphor-hwmon/obmc/hwmon/ahb/apb/i2c@82000/power-supply@58.conf new file mode 100644 index 00000000..eb47c3c8 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-quanta/meta-olympus-nuvoton/recipes-phosphor/sensors/phosphor-hwmon/obmc/hwmon/ahb/apb/i2c@82000/power-supply@58.conf @@ -0,0 +1,34 @@ +LABEL_temp1= "ps0_tempture" +WARNHI_temp1 = "90000" +WARNLO_temp1 = "0" +CRITHI_temp1 = "100000" +CRITLO_temp1 = "0" + +LABEL_in1= "ps0_input_voltage" +WARNHI_in1="290000" +WARNLO_in1="200000" +CRITHI_in1="300000" +CRITLO_in1="180000" + +LABEL_in2= "ps0_output_voltage" +WARNHI_in2="12700" +WARNLO_in2="0" +CRITHI_in2="13000" +CRITLO_in2="0" + +LABEL_power1= "ps0_input_power" +WARNHI_power1="950000000" +WARNLO_power1="0" +CRITHI_power1="1000000000" +CRITLO_power1="0" + +LABEL_power2= "ps0_output_power" +WARNHI_power2="950000000" +WARNLO_power2="0" +CRITHI_power2="1000000000" +CRITLO_power2="0" + +LABEL_fan1= "ps0_fan1" +LABEL_fan2= "ps0_fan2" + +INTERVAL=10000000 diff --git a/Contrib-Inspur/openbmc/meta-quanta/meta-olympus-nuvoton/recipes-phosphor/sensors/phosphor-hwmon/obmc/hwmon/ahb/apb/i2c@82000/tmp421@4c.conf b/Contrib-Inspur/openbmc/meta-quanta/meta-olympus-nuvoton/recipes-phosphor/sensors/phosphor-hwmon/obmc/hwmon/ahb/apb/i2c@82000/tmp421@4c.conf new file mode 100644 index 00000000..a7430a76 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-quanta/meta-olympus-nuvoton/recipes-phosphor/sensors/phosphor-hwmon/obmc/hwmon/ahb/apb/i2c@82000/tmp421@4c.conf @@ -0,0 +1,5 @@ +LABEL_temp1 = "inlet" +WARNHI_temp1 = "110000" +WARNLO_temp1 = "5000" +CRITHI_temp1 = "115000" +CRITLO_temp1 = "0" diff --git a/Contrib-Inspur/openbmc/meta-quanta/meta-olympus-nuvoton/recipes-phosphor/sensors/phosphor-hwmon/obmc/hwmon/ahb/apb/i2c@86000/ina219@40.conf b/Contrib-Inspur/openbmc/meta-quanta/meta-olympus-nuvoton/recipes-phosphor/sensors/phosphor-hwmon/obmc/hwmon/ahb/apb/i2c@86000/ina219@40.conf new file mode 100644 index 00000000..2073266c --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-quanta/meta-olympus-nuvoton/recipes-phosphor/sensors/phosphor-hwmon/obmc/hwmon/ahb/apb/i2c@86000/ina219@40.conf @@ -0,0 +1,5 @@ +LABEL_curr1 = "p0_dimm_vr0_lin" +WARNHI_curr1 = "231000" +CRITHI_curr1 = "288000" +WARNLO_curr1 = "0" +CRITLO_curr1 = "0" diff --git a/Contrib-Inspur/openbmc/meta-quanta/meta-olympus-nuvoton/recipes-phosphor/sensors/phosphor-hwmon/obmc/hwmon/ahb/apb/i2c@86000/ina219@41.conf b/Contrib-Inspur/openbmc/meta-quanta/meta-olympus-nuvoton/recipes-phosphor/sensors/phosphor-hwmon/obmc/hwmon/ahb/apb/i2c@86000/ina219@41.conf new file mode 100644 index 00000000..c01aab86 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-quanta/meta-olympus-nuvoton/recipes-phosphor/sensors/phosphor-hwmon/obmc/hwmon/ahb/apb/i2c@86000/ina219@41.conf @@ -0,0 +1,5 @@ +LABEL_curr1 = "p0_dimm_vr1_lin" +WARNHI_curr1 = "231000" +CRITHI_curr1 = "288000" +WARNLO_curr1 = "0" +CRITLO_curr1 = "0" diff --git a/Contrib-Inspur/openbmc/meta-quanta/meta-olympus-nuvoton/recipes-phosphor/sensors/phosphor-hwmon/obmc/hwmon/ahb/apb/i2c@86000/ina219@44.conf b/Contrib-Inspur/openbmc/meta-quanta/meta-olympus-nuvoton/recipes-phosphor/sensors/phosphor-hwmon/obmc/hwmon/ahb/apb/i2c@86000/ina219@44.conf new file mode 100644 index 00000000..3cc38247 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-quanta/meta-olympus-nuvoton/recipes-phosphor/sensors/phosphor-hwmon/obmc/hwmon/ahb/apb/i2c@86000/ina219@44.conf @@ -0,0 +1,5 @@ +LABEL_curr1 = "p1_dimm_vr0_lin" +WARNHI_curr1 = "231000" +CRITHI_curr1 = "288000" +WARNLO_curr1 = "0" +CRITLO_curr1 = "0" diff --git a/Contrib-Inspur/openbmc/meta-quanta/meta-olympus-nuvoton/recipes-phosphor/sensors/phosphor-hwmon/obmc/hwmon/ahb/apb/i2c@86000/ina219@45.conf b/Contrib-Inspur/openbmc/meta-quanta/meta-olympus-nuvoton/recipes-phosphor/sensors/phosphor-hwmon/obmc/hwmon/ahb/apb/i2c@86000/ina219@45.conf new file mode 100644 index 00000000..5384422e --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-quanta/meta-olympus-nuvoton/recipes-phosphor/sensors/phosphor-hwmon/obmc/hwmon/ahb/apb/i2c@86000/ina219@45.conf @@ -0,0 +1,5 @@ +LABEL_curr1 = "p1_dimm_vr1_lin" +WARNHI_curr1 = "231000" +CRITHI_curr1 = "288000" +WARNLO_curr1 = "0" +CRITLO_curr1 = "0" diff --git a/Contrib-Inspur/openbmc/meta-quanta/meta-olympus-nuvoton/recipes-phosphor/sensors/phosphor-hwmon/obmc/hwmon/ahb/apb/i2c@86000/tps53622@67.conf b/Contrib-Inspur/openbmc/meta-quanta/meta-olympus-nuvoton/recipes-phosphor/sensors/phosphor-hwmon/obmc/hwmon/ahb/apb/i2c@86000/tps53622@67.conf new file mode 100644 index 00000000..7b27a4ce --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-quanta/meta-olympus-nuvoton/recipes-phosphor/sensors/phosphor-hwmon/obmc/hwmon/ahb/apb/i2c@86000/tps53622@67.conf @@ -0,0 +1,21 @@ +LABEL_temp1 = "p0_vccio_vr_temp" +WARNHI_temp1 = "105000" +CRITHI_temp1 = "115000" +WARNLO_temp1 = "0" +CRITLO_temp1 = "0" + +LABEL_curr1 = "p0_vccio_vr_current" +WARNHI_curr1 = "231000" +CRITHI_curr1 = "288000" +WARNLO_curr1 = "0" +CRITLO_curr1 = "0" + +LABEL_in1 = "p0_vccio_vr_voltage" +WARNHI_in1 = "16000" +WARNLO_in1 = "11000" +CRITLO_in1 = "9500" +CRITHI_in1 = "17000" + +LABEL_power1 = "p0_vccio_vr_pin" + +LABEL_power2 = "p0_vccio_vr_pout" diff --git a/Contrib-Inspur/openbmc/meta-quanta/meta-olympus-nuvoton/recipes-phosphor/sensors/phosphor-hwmon/obmc/hwmon/ahb/apb/i2c@86000/tps53622@77.conf b/Contrib-Inspur/openbmc/meta-quanta/meta-olympus-nuvoton/recipes-phosphor/sensors/phosphor-hwmon/obmc/hwmon/ahb/apb/i2c@86000/tps53622@77.conf new file mode 100644 index 00000000..b4d46de3 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-quanta/meta-olympus-nuvoton/recipes-phosphor/sensors/phosphor-hwmon/obmc/hwmon/ahb/apb/i2c@86000/tps53622@77.conf @@ -0,0 +1,21 @@ +LABEL_temp1 = "p1_vccio_vr_temp" +WARNHI_temp1 = "105000" +CRITHI_temp1 = "115000" +WARNLO_temp1 = "0" +CRITLO_temp1 = "0" + +LABEL_curr1 = "p1_vccio_vr_current" +WARNHI_curr1 = "231000" +CRITHI_curr1 = "288000" +WARNLO_curr1 = "0" +CRITLO_curr1 = "0" + +LABEL_in1 = "p1_vccio_vr_voltage" +WARNHI_in1 = "16000" +WARNLO_in1 = "11000" +CRITLO_in1 = "9500" +CRITHI_in1 = "17000" + +LABEL_power1 = "p1_vccio_vr_pin" + +LABEL_power2 = "p1_vccio_vr_pout" diff --git a/Contrib-Inspur/openbmc/meta-quanta/meta-olympus-nuvoton/recipes-phosphor/sensors/phosphor-hwmon/obmc/hwmon/ahb/apb/i2c@86000/tps53659@62.conf b/Contrib-Inspur/openbmc/meta-quanta/meta-olympus-nuvoton/recipes-phosphor/sensors/phosphor-hwmon/obmc/hwmon/ahb/apb/i2c@86000/tps53659@62.conf new file mode 100644 index 00000000..3c10f9c2 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-quanta/meta-olympus-nuvoton/recipes-phosphor/sensors/phosphor-hwmon/obmc/hwmon/ahb/apb/i2c@86000/tps53659@62.conf @@ -0,0 +1,21 @@ +LABEL_temp1 = "p0_dimm_vr0_temp" +WARNHI_temp1 = "105000" +CRITHI_temp1 = "115000" +WARNLO_temp1 = "0" +CRITLO_temp1 = "0" + +LABEL_curr1 = "p0_dimm_vr0_current" +WARNHI_curr1 = "231000" +CRITHI_curr1 = "288000" +WARNLO_curr1 = "0" +CRITLO_curr1 = "0" + +LABEL_in1 = "p0_dimm_vr0_voltage" +WARNHI_in1 = "16000" +WARNLO_in1 = "11000" +CRITLO_in1 = "9500" +CRITHI_in1 = "17000" + +LABEL_power1 = "p0_dimm_vr0_pin" + +LABEL_power2 = "p0_dimm_vr0_pout" diff --git a/Contrib-Inspur/openbmc/meta-quanta/meta-olympus-nuvoton/recipes-phosphor/sensors/phosphor-hwmon/obmc/hwmon/ahb/apb/i2c@86000/tps53659@64.conf b/Contrib-Inspur/openbmc/meta-quanta/meta-olympus-nuvoton/recipes-phosphor/sensors/phosphor-hwmon/obmc/hwmon/ahb/apb/i2c@86000/tps53659@64.conf new file mode 100644 index 00000000..55bce3f4 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-quanta/meta-olympus-nuvoton/recipes-phosphor/sensors/phosphor-hwmon/obmc/hwmon/ahb/apb/i2c@86000/tps53659@64.conf @@ -0,0 +1,21 @@ +LABEL_temp1 = "p0_dimm_vr1_temp" +WARNHI_temp1 = "105000" +CRITHI_temp1 = "115000" +WARNLO_temp1 = "0" +CRITLO_temp1 = "0" + +LABEL_curr1 = "p0_dimm_vr1_current" +WARNHI_curr1 = "231000" +CRITHI_curr1 = "288000" +WARNLO_curr1 = "0" +CRITLO_curr1 = "0" + +LABEL_in1 = "p0_dimm_vr1_voltage" +WARNHI_in1 = "16000" +WARNLO_in1 = "11000" +CRITLO_in1 = "9500" +CRITHI_in1 = "17000" + +LABEL_power1 = "p0_dimm_vr1_pin" + +LABEL_power2 = "p0_dimm_vr1_pout" diff --git a/Contrib-Inspur/openbmc/meta-quanta/meta-olympus-nuvoton/recipes-phosphor/sensors/phosphor-hwmon/obmc/hwmon/ahb/apb/i2c@86000/tps53659@72.conf b/Contrib-Inspur/openbmc/meta-quanta/meta-olympus-nuvoton/recipes-phosphor/sensors/phosphor-hwmon/obmc/hwmon/ahb/apb/i2c@86000/tps53659@72.conf new file mode 100644 index 00000000..75c9b4e6 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-quanta/meta-olympus-nuvoton/recipes-phosphor/sensors/phosphor-hwmon/obmc/hwmon/ahb/apb/i2c@86000/tps53659@72.conf @@ -0,0 +1,21 @@ +LABEL_temp1 = "p1_dimm_vr0_temp" +WARNHI_temp1 = "105000" +CRITHI_temp1 = "115000" +WARNLO_temp1 = "0" +CRITLO_temp1 = "0" + +LABEL_curr1 = "p1_dimm_vr0_current" +WARNHI_curr1 = "231000" +CRITHI_curr1 = "288000" +WARNLO_curr1 = "0" +CRITLO_curr1 = "0" + +LABEL_in1 = "p1_dimm_vr0_voltage" +WARNHI_in1 = "16000" +WARNLO_in1 = "11000" +CRITLO_in1 = "9500" +CRITHI_in1 = "17000" + +LABEL_power1 = "p1_dimm_vr0_pin" + +LABEL_power2 = "p1_dimm_vr0_pout" diff --git a/Contrib-Inspur/openbmc/meta-quanta/meta-olympus-nuvoton/recipes-phosphor/sensors/phosphor-hwmon/obmc/hwmon/ahb/apb/i2c@86000/tps53659@74.conf b/Contrib-Inspur/openbmc/meta-quanta/meta-olympus-nuvoton/recipes-phosphor/sensors/phosphor-hwmon/obmc/hwmon/ahb/apb/i2c@86000/tps53659@74.conf new file mode 100644 index 00000000..249e61d3 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-quanta/meta-olympus-nuvoton/recipes-phosphor/sensors/phosphor-hwmon/obmc/hwmon/ahb/apb/i2c@86000/tps53659@74.conf @@ -0,0 +1,21 @@ +LABEL_temp1 = "p1_dimm_vr1_temp" +WARNHI_temp1 = "105000" +CRITHI_temp1 = "115000" +WARNLO_temp1 = "0" +CRITLO_temp1 = "0" + +LABEL_curr1 = "p1_dimm_vr1_current" +WARNHI_curr1 = "231000" +CRITHI_curr1 = "288000" +WARNLO_curr1 = "0" +CRITLO_curr1 = "0" + +LABEL_in1 = "p1_dimm_vr1_voltage" +WARNHI_in1 = "16000" +WARNLO_in1 = "11000" +CRITLO_in1 = "9500" +CRITHI_in1 = "17000" + +LABEL_power1 = "p1_dimm_vr1_pin" + +LABEL_power2 = "p1_dimm_vr1_pout" diff --git a/Contrib-Inspur/openbmc/meta-quanta/meta-olympus-nuvoton/recipes-phosphor/sensors/phosphor-hwmon/obmc/hwmon/ahb/apb/i2c@86000/tps53679@60.conf b/Contrib-Inspur/openbmc/meta-quanta/meta-olympus-nuvoton/recipes-phosphor/sensors/phosphor-hwmon/obmc/hwmon/ahb/apb/i2c@86000/tps53679@60.conf new file mode 100644 index 00000000..7ef3664b --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-quanta/meta-olympus-nuvoton/recipes-phosphor/sensors/phosphor-hwmon/obmc/hwmon/ahb/apb/i2c@86000/tps53679@60.conf @@ -0,0 +1,21 @@ +LABEL_temp1 = "p0_vccin_vr_temp" +WARNHI_temp1 = "105000" +CRITHI_temp1 = "115000" +WARNLO_temp1 = "0" +CRITLO_temp1 = "0" + +LABEL_curr1 = "p0_vccin_vr_current" +WARNHI_curr1 = "231000" +CRITHI_curr1 = "288000" +WARNLO_curr1 = "0" +CRITLO_curr1 = "0" + +LABEL_in1 = "p0_vccin_vr_voltage" +WARNHI_in1 = "16000" +WARNLO_in1 = "11000" +CRITLO_in1 = "9500" +CRITHI_in1 = "17000" + +LABEL_power1 = "p0_vccin_vr_pin" + +LABEL_power2 = "p0_vccin_vr_pout" diff --git a/Contrib-Inspur/openbmc/meta-quanta/meta-olympus-nuvoton/recipes-phosphor/sensors/phosphor-hwmon/obmc/hwmon/ahb/apb/i2c@86000/tps53679@70.conf b/Contrib-Inspur/openbmc/meta-quanta/meta-olympus-nuvoton/recipes-phosphor/sensors/phosphor-hwmon/obmc/hwmon/ahb/apb/i2c@86000/tps53679@70.conf new file mode 100644 index 00000000..611b1073 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-quanta/meta-olympus-nuvoton/recipes-phosphor/sensors/phosphor-hwmon/obmc/hwmon/ahb/apb/i2c@86000/tps53679@70.conf @@ -0,0 +1,21 @@ +LABEL_temp1 = "p1_vccin_vr_temp" +WARNHI_temp1 = "105000" +CRITHI_temp1 = "115000" +WARNLO_temp1 = "0" +CRITLO_temp1 = "0" + +LABEL_curr1 = "p1_vccin_vr_current" +WARNHI_curr1 = "231000" +CRITHI_curr1 = "288000" +WARNLO_curr1 = "0" +CRITLO_curr1 = "0" + +LABEL_in1 = "p1_vccin_vr_voltage" +WARNHI_in1 = "16000" +WARNLO_in1 = "11000" +CRITLO_in1 = "9500" +CRITHI_in1 = "17000" + +LABEL_power1 = "p1_vccin_vr_pin" + +LABEL_power2 = "p1_vccin_vr_pout" diff --git a/Contrib-Inspur/openbmc/meta-quanta/meta-olympus-nuvoton/recipes-phosphor/sensors/phosphor-hwmon/obmc/hwmon/ahb/apb/i2c@87000/tmp421@4c.conf b/Contrib-Inspur/openbmc/meta-quanta/meta-olympus-nuvoton/recipes-phosphor/sensors/phosphor-hwmon/obmc/hwmon/ahb/apb/i2c@87000/tmp421@4c.conf new file mode 100644 index 00000000..3afeef74 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-quanta/meta-olympus-nuvoton/recipes-phosphor/sensors/phosphor-hwmon/obmc/hwmon/ahb/apb/i2c@87000/tmp421@4c.conf @@ -0,0 +1,5 @@ +LABEL_temp1 = "outlet" +WARNHI_temp1 = "110000" +WARNLO_temp1 = "5000" +CRITHI_temp1 = "115000" +CRITLO_temp1 = "0" diff --git a/Contrib-Inspur/openbmc/meta-quanta/meta-olympus-nuvoton/recipes-phosphor/sensors/phosphor-hwmon/obmc/hwmon/ahb/apb/i2c@88000/adm1278@11.conf b/Contrib-Inspur/openbmc/meta-quanta/meta-olympus-nuvoton/recipes-phosphor/sensors/phosphor-hwmon/obmc/hwmon/ahb/apb/i2c@88000/adm1278@11.conf new file mode 100644 index 00000000..84bce0d5 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-quanta/meta-olympus-nuvoton/recipes-phosphor/sensors/phosphor-hwmon/obmc/hwmon/ahb/apb/i2c@88000/adm1278@11.conf @@ -0,0 +1,9 @@ +LABEL_temp1 = "MB0_Temp" +WARNLO_temp1= "5000" +WARNHI_temp1= "50000" +CRITHI_temp1 = "60000" +CRITLO_temp1 = "0" +LABEL_curr1 = "MB0_Iout" +LABEL_in1 = "MB0_Vin" +LABEL_in2 = "MB0_Vout" +LABEL_power1 = "MB0_Pin" diff --git a/Contrib-Inspur/openbmc/meta-quanta/meta-olympus-nuvoton/recipes-phosphor/sensors/phosphor-hwmon/obmc/hwmon/ahb/apb/i2c@8d000/tmp75@4a.conf b/Contrib-Inspur/openbmc/meta-quanta/meta-olympus-nuvoton/recipes-phosphor/sensors/phosphor-hwmon/obmc/hwmon/ahb/apb/i2c@8d000/tmp75@4a.conf new file mode 100644 index 00000000..7cf67cb8 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-quanta/meta-olympus-nuvoton/recipes-phosphor/sensors/phosphor-hwmon/obmc/hwmon/ahb/apb/i2c@8d000/tmp75@4a.conf @@ -0,0 +1,5 @@ +LABEL_temp1 = "bmc_card" +WARNHI_temp1 = "110000" +WARNLO_temp1 = "5000" +CRITHI_temp1 = "115000" +CRITLO_temp1 = "0" diff --git a/Contrib-Inspur/openbmc/meta-quanta/meta-olympus-nuvoton/recipes-phosphor/sensors/phosphor-hwmon/obmc/hwmon/ahb/apb/pwm-fan-controller@103000.conf b/Contrib-Inspur/openbmc/meta-quanta/meta-olympus-nuvoton/recipes-phosphor/sensors/phosphor-hwmon/obmc/hwmon/ahb/apb/pwm-fan-controller@103000.conf new file mode 100644 index 00000000..9ffe5bfb --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-quanta/meta-olympus-nuvoton/recipes-phosphor/sensors/phosphor-hwmon/obmc/hwmon/ahb/apb/pwm-fan-controller@103000.conf @@ -0,0 +1,59 @@ +LABEL_fan1= "fan1" +TARGET_fan1= "fan1" +WARNHI_fan1= "19250" +WARNLO_fan1= "150" +CRITHI_fan1= "19250" +CRITLO_fan1= "150" +MINVALUE_fan1 = "0" +MAXVALUE_fan1 = "20145" +PWM_TARGET_fan1 = 1 + +LABEL_fan2= "fan2" +TARGET_fan2= "fan2" +WARNHI_fan2= "19250" +WARNLO_fan2= "150" +CRITHI_fan2= "19250" +CRITLO_fan2= "150" +MINVALUE_fan2 = "0" +MAXVALUE_fan2 = "20145" +PWM_TARGET_fan2 = 1 + +LABEL_fan3= "fan3" +TARGET_fan3= "fan3" +WARNHI_fan3= "19250" +WARNLO_fan3= "150" +CRITHI_fan3= "19250" +CRITLO_fan3= "150" +MINVALUE_fan3 = "0" +MAXVALUE_fan3 = "20145" +PWM_TARGET_fan3 = 1 + +LABEL_fan4= "fan4" +TARGET_fan4= "fan4" +WARNHI_fan4= "19250" +WARNLO_fan4= "150" +CRITHI_fan4= "19250" +CRITLO_fan4= "150" +MINVALUE_fan4 = "0" +MAXVALUE_fan4 = "20145" +PWM_TARGET_fan4 = 1 + +LABEL_fan5= "fan5" +TARGET_fan5= "fan5" +WARNHI_fan5= "19250" +WARNLO_fan5= "150" +CRITHI_fan5= "19250" +CRITLO_fan5= "150" +MINVALUE_fan5 = "0" +MAXVALUE_fan5 = "20145" +PWM_TARGET_fan5 = 1 + +LABEL_fan6= "fan6" +TARGET_fan6= "fan6" +WARNHI_fan6= "19250" +WARNLO_fan6= "150" +CRITHI_fan6= "19250" +CRITLO_fan6= "150" +MINVALUE_fan6 = "0" +MAXVALUE_fan6 = "20145" +PWM_TARGET_fan6 = 1 diff --git a/Contrib-Inspur/openbmc/meta-quanta/meta-olympus-nuvoton/recipes-phosphor/sensors/phosphor-hwmon/obmc/hwmon/devices/platform/ahb/ahb--apb/f0100000.peci-bus/peci-0/0-30/peci-cputemp.0.conf b/Contrib-Inspur/openbmc/meta-quanta/meta-olympus-nuvoton/recipes-phosphor/sensors/phosphor-hwmon/obmc/hwmon/devices/platform/ahb/ahb--apb/f0100000.peci-bus/peci-0/0-30/peci-cputemp.0.conf new file mode 100644 index 00000000..3285f71d --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-quanta/meta-olympus-nuvoton/recipes-phosphor/sensors/phosphor-hwmon/obmc/hwmon/devices/platform/ahb/ahb--apb/f0100000.peci-bus/peci-0/0-30/peci-cputemp.0.conf @@ -0,0 +1,35 @@ +LABEL_temp1 = "Die_CPU0" +WARNHI_temp1 = "79000" +WARNLO_temp1 = "0" +CRITHI_temp1 = "89000" +CRITLO_temp1 = "0" +LABEL_temp5 = "Core_0_CPU0" +WARNHI_temp5 = "79000" +WARNLO_temp5 = "0" +CRITHI_temp5 = "89000" +CRITLO_temp5 = "0" +LABEL_temp6 = "Core_1_CPU0" +WARNHI_temp6 = "79000" +WARNLO_temp6 = "0" +CRITHI_temp6 = "89000" +CRITLO_temp6 = "0" +LABEL_temp7 = "Core_2_CPU0" +WARNHI_temp7 = "79000" +WARNLO_temp7 = "0" +CRITHI_temp7 = "89000" +CRITLO_temp7 = "0" +LABEL_temp8 = "Core_3_CPU0" +WARNHI_temp8 = "79000" +WARNLO_temp8 = "0" +CRITHI_temp8 = "89000" +CRITLO_temp8 = "0" +LABEL_temp9 = "Core_4_CPU0" +WARNHI_temp9 = "79000" +WARNLO_temp9 = "0" +CRITHI_temp9 = "89000" +CRITLO_temp9 = "0" +LABEL_temp10 = "Core_5_CPU0" +WARNHI_temp10 = "79000" +WARNLO_temp10 = "0" +CRITHI_temp10 = "89000" +CRITLO_temp10 = "0" diff --git a/Contrib-Inspur/openbmc/meta-quanta/meta-olympus-nuvoton/recipes-phosphor/sensors/phosphor-hwmon/obmc/hwmon/devices/platform/ahb/ahb--apb/f0100000.peci-bus/peci-0/0-30/peci-dimmtemp.0.conf b/Contrib-Inspur/openbmc/meta-quanta/meta-olympus-nuvoton/recipes-phosphor/sensors/phosphor-hwmon/obmc/hwmon/devices/platform/ahb/ahb--apb/f0100000.peci-bus/peci-0/0-30/peci-dimmtemp.0.conf new file mode 100644 index 00000000..7c74dd72 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-quanta/meta-olympus-nuvoton/recipes-phosphor/sensors/phosphor-hwmon/obmc/hwmon/devices/platform/ahb/ahb--apb/f0100000.peci-bus/peci-0/0-30/peci-dimmtemp.0.conf @@ -0,0 +1,5 @@ +LABEL_temp5 = "DIMM_C1_CPU0" +WARNHI_temp5 = "79000" +WARNLO_temp5 = "0" +CRITHI_temp5 = "89000" +CRITLO_temp5 = "0" diff --git a/Contrib-Inspur/openbmc/meta-quanta/meta-olympus-nuvoton/recipes-phosphor/sensors/phosphor-hwmon/obmc/hwmon/devices/platform/ahb/ahb--apb/f0100000.peci-bus/peci-0/0-31/peci-cputemp.1.conf b/Contrib-Inspur/openbmc/meta-quanta/meta-olympus-nuvoton/recipes-phosphor/sensors/phosphor-hwmon/obmc/hwmon/devices/platform/ahb/ahb--apb/f0100000.peci-bus/peci-0/0-31/peci-cputemp.1.conf new file mode 100644 index 00000000..a24fd0a8 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-quanta/meta-olympus-nuvoton/recipes-phosphor/sensors/phosphor-hwmon/obmc/hwmon/devices/platform/ahb/ahb--apb/f0100000.peci-bus/peci-0/0-31/peci-cputemp.1.conf @@ -0,0 +1,35 @@ +LABEL_temp1 = "Die_CPU1" +WARNHI_temp1 = "79000" +WARNLO_temp1 = "0" +CRITHI_temp1 = "89000" +CRITLO_temp1 = "0" +LABEL_temp5 = "Core_0_CPU1" +WARNHI_temp5 = "79000" +WARNLO_temp5 = "0" +CRITHI_temp5 = "89000" +CRITLO_temp5 = "0" +LABEL_temp6 = "Core_1_CPU1" +WARNHI_temp6 = "79000" +WARNLO_temp6 = "0" +CRITHI_temp6 = "89000" +CRITLO_temp6 = "0" +LABEL_temp7 = "Core_2_CPU1" +WARNHI_temp7 = "79000" +WARNLO_temp7 = "0" +CRITHI_temp7 = "89000" +CRITLO_temp7 = "0" +LABEL_temp8 = "Core_3_CPU1" +WARNHI_temp8 = "79000" +WARNLO_temp8 = "0" +CRITHI_temp8 = "89000" +CRITLO_temp8 = "0" +LABEL_temp9 = "Core_4_CPU1" +WARNHI_temp9 = "79000" +WARNLO_temp9 = "0" +CRITHI_temp9 = "89000" +CRITLO_temp9 = "0" +LABEL_temp10 = "Core_5_CPU1" +WARNHI_temp10 = "79000" +WARNLO_temp10 = "0" +CRITHI_temp10 = "89000" +CRITLO_temp10 = "0" diff --git a/Contrib-Inspur/openbmc/meta-quanta/meta-olympus-nuvoton/recipes-phosphor/sensors/phosphor-hwmon_%.bbappend b/Contrib-Inspur/openbmc/meta-quanta/meta-olympus-nuvoton/recipes-phosphor/sensors/phosphor-hwmon_%.bbappend new file mode 100644 index 00000000..938bfb60 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-quanta/meta-olympus-nuvoton/recipes-phosphor/sensors/phosphor-hwmon_%.bbappend @@ -0,0 +1,40 @@ +FILESEXTRAPATHS_prepend_olympus-nuvoton := "${THISDIR}/${PN}:" + + +ITEMS = " \ + i2c@82000/tmp421@4c \ + i2c@82000/power-supply@58 \ + i2c@86000/tps53679@60 \ + i2c@86000/tps53659@62 \ + i2c@86000/tps53659@64 \ + i2c@86000/tps53679@70 \ + i2c@86000/tps53659@72 \ + i2c@86000/tps53659@74 \ + i2c@86000/tps53622@67 \ + i2c@86000/tps53622@77 \ + i2c@86000/ina219@40 \ + i2c@86000/ina219@41 \ + i2c@86000/ina219@44 \ + i2c@86000/ina219@45 \ + i2c@87000/tmp421@4c \ + i2c@88000/adm1278@11 \ + i2c@8d000/tmp75@4a \ + pwm-fan-controller@103000 \ + adc@c000 \ + " + +ENVS = "obmc/hwmon/ahb/apb/{0}.conf" +SYSTEMD_ENVIRONMENT_FILE_${PN}_append_olympus-nuvoton = " ${@compose_list(d, 'ENVS', 'ITEMS')}" + +# PECI +PECINAMES = " \ + peci-0/0-30/peci-cputemp.0 \ + peci-0/0-31/peci-cputemp.1\ + peci-0/0-30/peci-dimmtemp.0 \ + " +PECIITEMSFMT = "devices/platform/ahb/ahb--apb/f0100000.peci-bus/{0}.conf" +PECIITEMS = "${@compose_list(d, 'PECIITEMSFMT', 'PECINAMES')}" +PECIENVS = "obmc/hwmon/{0}" +SYSTEMD_ENVIRONMENT_FILE_${PN}_append_olympus-nuvoton = " ${@compose_list(d, 'PECIENVS', 'PECIITEMS')}" + +EXTRA_OECONF_append_olympus-nuvoton = " --enable-update-functional-on-fail" diff --git a/Contrib-Inspur/openbmc/meta-quanta/meta-q71l/recipes-phosphor/ipmi/q71l-ipmi-fru-merge-config-native.bb b/Contrib-Inspur/openbmc/meta-quanta/meta-q71l/recipes-phosphor/ipmi/q71l-ipmi-fru-merge-config-native.bb index 83bf5c2b..f6db0c91 100644 --- a/Contrib-Inspur/openbmc/meta-quanta/meta-q71l/recipes-phosphor/ipmi/q71l-ipmi-fru-merge-config-native.bb +++ b/Contrib-Inspur/openbmc/meta-quanta/meta-q71l/recipes-phosphor/ipmi/q71l-ipmi-fru-merge-config-native.bb @@ -1,5 +1,5 @@ LICENSE = "Apache-2.0" -LIC_FILES_CHKSUM = "file://${QUANTABASE}/COPYING.apache-2.0;md5=34400b68072d710fecd0a2940a0d1658" +LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10" inherit native diff --git a/Contrib-Inspur/openbmc/meta-quanta/meta-q71l/recipes-phosphor/ipmi/q71l-ipmi-inventory-map-native.bb b/Contrib-Inspur/openbmc/meta-quanta/meta-q71l/recipes-phosphor/ipmi/q71l-ipmi-inventory-map-native.bb index dbb59178..85c085e9 100644 --- a/Contrib-Inspur/openbmc/meta-quanta/meta-q71l/recipes-phosphor/ipmi/q71l-ipmi-inventory-map-native.bb +++ b/Contrib-Inspur/openbmc/meta-quanta/meta-q71l/recipes-phosphor/ipmi/q71l-ipmi-inventory-map-native.bb @@ -1,7 +1,7 @@ SUMMARY = "Quanta-Q71l IPMI to DBus Inventory mapping." PR = "r1" LICENSE = "Apache-2.0" -LIC_FILES_CHKSUM = "file://${QUANTABASE}/COPYING.apache-2.0;md5=34400b68072d710fecd0a2940a0d1658" +LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10" inherit native inherit phosphor-ipmi-fru diff --git a/Contrib-Inspur/openbmc/meta-quanta/meta-q71l/recipes-phosphor/ipmi/q71l-ipmi-sensor-map-native.bb b/Contrib-Inspur/openbmc/meta-quanta/meta-q71l/recipes-phosphor/ipmi/q71l-ipmi-sensor-map-native.bb index 07c53e41..0c595fa7 100644 --- a/Contrib-Inspur/openbmc/meta-quanta/meta-q71l/recipes-phosphor/ipmi/q71l-ipmi-sensor-map-native.bb +++ b/Contrib-Inspur/openbmc/meta-quanta/meta-q71l/recipes-phosphor/ipmi/q71l-ipmi-sensor-map-native.bb @@ -1,7 +1,7 @@ SUMMARY = "Quanta Q71l IPMI to DBus Sensor mapping." PR = "r1" LICENSE = "Apache-2.0" -LIC_FILES_CHKSUM = "file://${QUANTABASE}/COPYING.apache-2.0;md5=34400b68072d710fecd0a2940a0d1658" +LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10" inherit native inherit phosphor-ipmi-host diff --git a/Contrib-Inspur/openbmc/meta-quanta/meta-q71l/recipes-phosphor/quanta-powerctrl/quanta-powerctrl.bb b/Contrib-Inspur/openbmc/meta-quanta/meta-q71l/recipes-phosphor/quanta-powerctrl/quanta-powerctrl.bb index f6f6458b..37b27ac6 100644 --- a/Contrib-Inspur/openbmc/meta-quanta/meta-q71l/recipes-phosphor/quanta-powerctrl/quanta-powerctrl.bb +++ b/Contrib-Inspur/openbmc/meta-quanta/meta-q71l/recipes-phosphor/quanta-powerctrl/quanta-powerctrl.bb @@ -1,6 +1,6 @@ FILESEXTRAPATHS_append := "${THISDIR}/files:" LICENSE = "Apache-2.0" -LIC_FILES_CHKSUM = "file://${QUANTABASE}/COPYING.apache-2.0;md5=34400b68072d710fecd0a2940a0d1658" +LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10" inherit systemd inherit obmc-phosphor-systemd diff --git a/Contrib-Inspur/openbmc/meta-quanta/meta-runbmc-nuvoton/conf/bblayers.conf.sample b/Contrib-Inspur/openbmc/meta-quanta/meta-runbmc-nuvoton/conf/bblayers.conf.sample deleted file mode 100644 index 1e6f3b03..00000000 --- a/Contrib-Inspur/openbmc/meta-quanta/meta-runbmc-nuvoton/conf/bblayers.conf.sample +++ /dev/null @@ -1,27 +0,0 @@ -# LAYER_CONF_VERSION is increased each time build/conf/bblayers.conf -# changes incompatibly -LCONF_VERSION = "8" - -BBPATH = "${TOPDIR}" -BBFILES ?= "" - -BBLAYERS ?= " \ - ##OEROOT##/meta \ - ##OEROOT##/meta-openembedded/meta-oe \ - ##OEROOT##/meta-openembedded/meta-networking \ - ##OEROOT##/meta-openembedded/meta-python \ - ##OEROOT##/meta-phosphor \ - ##OEROOT##/meta-nuvoton \ - ##OEROOT##/meta-quanta \ - ##OEROOT##/meta-quanta/meta-runbmc-nuvoton \ - " -BBLAYERS_NON_REMOVABLE ?= " \ - ##OEROOT##/meta \ - ##OEROOT##/meta-openembedded/meta-oe \ - ##OEROOT##/meta-openembedded/meta-networking \ - ##OEROOT##/meta-openembedded/meta-python \ - ##OEROOT##/meta-phosphor \ - ##OEROOT##/meta-nuvoton \ - ##OEROOT##/meta-quanta \ - ##OEROOT##/meta-quanta/meta-runbmc-nuvoton \ - " diff --git a/Contrib-Inspur/openbmc/meta-quanta/meta-runbmc-nuvoton/conf/layer.conf b/Contrib-Inspur/openbmc/meta-quanta/meta-runbmc-nuvoton/conf/layer.conf deleted file mode 100644 index e5aca0ef..00000000 --- a/Contrib-Inspur/openbmc/meta-quanta/meta-runbmc-nuvoton/conf/layer.conf +++ /dev/null @@ -1,10 +0,0 @@ -# We have a conf and classes directory, add to BBPATH -BBPATH .= ":${LAYERDIR}" - -# We have recipes-* directories, add to BBFILES -BBFILES += "${LAYERDIR}/recipes-*/*/*.bb \ - ${LAYERDIR}/recipes-*/*/*.bbappend" - -BBFILE_COLLECTIONS += "runbmc-nuvoton-layer" -BBFILE_PATTERN_runbmc-nuvoton-layer = "" -LAYERSERIES_COMPAT_runbmc-nuvoton-layer = "thud warrior" diff --git a/Contrib-Inspur/openbmc/meta-quanta/meta-runbmc-nuvoton/conf/local.conf.sample b/Contrib-Inspur/openbmc/meta-quanta/meta-runbmc-nuvoton/conf/local.conf.sample deleted file mode 100644 index 37ae2b3a..00000000 --- a/Contrib-Inspur/openbmc/meta-quanta/meta-runbmc-nuvoton/conf/local.conf.sample +++ /dev/null @@ -1,17 +0,0 @@ -MACHINE ??= "runbmc-nuvoton" -DISTRO ?= "openbmc-phosphor" -PACKAGE_CLASSES ?= "package_rpm" -SANITY_TESTED_DISTROS_append ?= " *" -EXTRA_IMAGE_FEATURES = "debug-tweaks" -USER_CLASSES ?= "buildstats image-mklibs image-prelink" -PATCHRESOLVE = "noop" -BB_DISKMON_DIRS = "\ - STOPTASKS,${TMPDIR},1G,100K \ - STOPTASKS,${DL_DIR},1G,100K \ - STOPTASKS,${SSTATE_DIR},1G,100K \ - STOPTASKS,/tmp,100M,100K \ - ABORT,${TMPDIR},100M,1K \ - ABORT,${DL_DIR},100M,1K \ - ABORT,${SSTATE_DIR},100M,1K \ - ABORT,/tmp,10M,1K" -CONF_VERSION = "1" diff --git a/Contrib-Inspur/openbmc/meta-quanta/meta-runbmc-nuvoton/conf/machine/runbmc-nuvoton.conf b/Contrib-Inspur/openbmc/meta-quanta/meta-runbmc-nuvoton/conf/machine/runbmc-nuvoton.conf deleted file mode 100644 index 4653ce56..00000000 --- a/Contrib-Inspur/openbmc/meta-quanta/meta-runbmc-nuvoton/conf/machine/runbmc-nuvoton.conf +++ /dev/null @@ -1,11 +0,0 @@ -KMACHINE = "nuvoton" -KERNEL_DEVICETREE = "${KMACHINE}-npcm750-runbmc.dtb" - -UBOOT_MACHINE = "PolegSVB_config" - -FLASH_SIZE = "32768" -require conf/machine/include/npcm7xx.inc -require conf/machine/include/obmc-bsp-common.inc - -IMAGE_FSTYPES += " cpio.${INITRAMFS_CTYPE}.u-boot" -IMAGE_FSTYPES += " mtd-ubi-tar" diff --git a/Contrib-Inspur/openbmc/meta-quanta/meta-runbmc-nuvoton/recipes-bsp/u-boot/u-boot-nuvoton_%.bbappend b/Contrib-Inspur/openbmc/meta-quanta/meta-runbmc-nuvoton/recipes-bsp/u-boot/u-boot-nuvoton_%.bbappend deleted file mode 100644 index cdcbecb6..00000000 --- a/Contrib-Inspur/openbmc/meta-quanta/meta-runbmc-nuvoton/recipes-bsp/u-boot/u-boot-nuvoton_%.bbappend +++ /dev/null @@ -1,5 +0,0 @@ -FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:" - -UBRANCH = "runbmc_mdio" -SRC_URI = "git://github.com/Nuvoton-Israel/u-boot.git;branch=${UBRANCH}" -SRCREV = "${AUTOREV}" diff --git a/Contrib-Inspur/openbmc/meta-quanta/meta-runbmc-nuvoton/recipes-kernel/linux/linux-nuvoton/runbmc-nuvoton.cfg b/Contrib-Inspur/openbmc/meta-quanta/meta-runbmc-nuvoton/recipes-kernel/linux/linux-nuvoton/runbmc-nuvoton.cfg deleted file mode 100644 index 6890fbe3..00000000 --- a/Contrib-Inspur/openbmc/meta-quanta/meta-runbmc-nuvoton/recipes-kernel/linux/linux-nuvoton/runbmc-nuvoton.cfg +++ /dev/null @@ -1,58 +0,0 @@ -CONFIG_HWMON=y -CONFIG_SENSORS_TMP100=y -CONFIG_SENSORS_LM75=y -CONFIG_SENSORS_FAN=y - -CONFIG_NEW_LEDS=y -CONFIG_LEDS_CLASS=y -CONFIG_LEDS_GPIO=y -CONFIG_LEDS_TRIGGERS=y -CONFIG_LEDS_TRIGGER_TIMER=y -CONFIG_LEDS_TRIGGER_HEARTBEAT=y -CONFIG_LEDS_TRIGGER_DEFAULT_ON=y - -CONFIG_OVERLAY_FS=y -CONFIG_SQUASHFS=y -CONFIG_SQUASHFS_XZ=y -CONFIG_JFFS2_FS=y - -CONFIG_MTD_M25P80=y -CONFIG_SPI_NPCM_FIU=y -CONFIG_SPI=y -CONFIG_SPI_NPCM_PSPI=y - -CONFIG_NET_NCSI=y - -CONFIG_EEPROM_AT24=y -CONFIG_I2C_MUX=y -CONFIG_I2C_MUX_PCA954x=y -CONFIG_I2C_SLAVE_EEPROM=y -CONFIG_GPIO_PCA953X=y -CONFIG_GPIO_PCA953X_IRQ=y -CONFIG_GPIO_PCF857X=y -CONFIG_PMBUS=y -CONFIG_SENSORS_PMBUS=y -CONFIG_SENSORS_ADM1275=y -CONFIG_SENSORS_TMP102=y -CONFIG_SENSORS_TMP421=y -CONFIG_NUVOTON_JTAG=y -CONFIG_MUX_MMIO=y -CONFIG_USB_U_ETHER=y -CONFIG_USB_F_ECM=y -CONFIG_USB_F_EEM=y -CONFIG_USB_F_SUBSET=y -CONFIG_USB_F_RNDIS=y -CONFIG_USB_F_MASS_STORAGE=y -CONFIG_USB_CONFIGFS=y -CONFIG_USB_CONFIGFS_ECM=y -CONFIG_USB_CONFIGFS_ECM_SUBSET=y -CONFIG_USB_CONFIGFS_RNDIS=y -CONFIG_USB_CONFIGFS_EEM=y -CONFIG_USB_CONFIGFS_MASS_STORAGE=y -CONFIG_USB_CONFIGFS_F_HID=y - -CONFIG_MEDIA_SUPPORT=y -CONFIG_VIDEO_NUVOTON=y -CONFIG_NPCM750_VCD=y -CONFIG_NPCM750_ECE=y -CONFIG_FORCE_MAX_ZONEORDER=12 diff --git a/Contrib-Inspur/openbmc/meta-quanta/meta-runbmc-nuvoton/recipes-kernel/linux/linux-nuvoton_%.bbappend b/Contrib-Inspur/openbmc/meta-quanta/meta-runbmc-nuvoton/recipes-kernel/linux/linux-nuvoton_%.bbappend deleted file mode 100644 index de375ce2..00000000 --- a/Contrib-Inspur/openbmc/meta-quanta/meta-runbmc-nuvoton/recipes-kernel/linux/linux-nuvoton_%.bbappend +++ /dev/null @@ -1,3 +0,0 @@ -FILESEXTRAPATHS_prepend := "${THISDIR}/linux-nuvoton:" - -SRC_URI += "file://runbmc-nuvoton.cfg" diff --git a/Contrib-Inspur/openbmc/meta-raspberrypi/README.md b/Contrib-Inspur/openbmc/meta-raspberrypi/README.md index b49405b2..21257679 100644 --- a/Contrib-Inspur/openbmc/meta-raspberrypi/README.md +++ b/Contrib-Inspur/openbmc/meta-raspberrypi/README.md @@ -5,7 +5,8 @@ Yocto BSP layer for the Raspberry Pi boards - . [![Build Status](https://yocto-ci.resin.io/job/meta-raspberrypi1/badge/icon)](https://yocto-ci.resin.io/job/meta-raspberrypi1) [![Build Status](https://yocto-ci.resin.io/job/meta-raspberrypi2/badge/icon)](https://yocto-ci.resin.io/job/meta-raspberrypi2) [![Build Status](https://yocto-ci.resin.io/job/meta-raspberrypi3/badge/icon)](https://yocto-ci.resin.io/job/meta-raspberrypi3) -[![Gitter chat](https://badges.gitter.im/gitterHQ/gitter.png)](https://gitter.im/agherzan/meta-raspberrypi) +[![Documentation Status](https://readthedocs.org/projects/meta-raspberrypi/badge/?version=latest)](https://meta-raspberrypi.readthedocs.io/en/latest/?badge=latest) +[![Matrix](https://img.shields.io/matrix/meta-raspberrypi:cub.icu.svg?server_fqdn=matrix.cub.icu)](https://matrix.to/#/#meta-raspberrypi:cub.icu) ## Quick links diff --git a/Contrib-Inspur/openbmc/meta-raspberrypi/classes/sdcard_image-rpi.bbclass b/Contrib-Inspur/openbmc/meta-raspberrypi/classes/sdcard_image-rpi.bbclass index 6cbee8b3..177988e6 100644 --- a/Contrib-Inspur/openbmc/meta-raspberrypi/classes/sdcard_image-rpi.bbclass +++ b/Contrib-Inspur/openbmc/meta-raspberrypi/classes/sdcard_image-rpi.bbclass @@ -55,6 +55,8 @@ do_image_rpi_sdimg[depends] = " \ dosfstools-native:do_populate_sysroot \ virtual/kernel:do_deploy \ ${IMAGE_BOOTLOADER}:do_deploy \ + rpi-config:do_deploy \ + ${@bb.utils.contains('MACHINE_FEATURES', 'armstub', 'armstubs:do_deploy', '' ,d)} \ ${@bb.utils.contains('RPI_USE_U_BOOT', '1', 'u-boot:do_deploy', '',d)} \ ${@bb.utils.contains('RPI_USE_U_BOOT', '1', 'rpi-u-boot-scr:do_deploy', '',d)} \ " @@ -62,7 +64,7 @@ do_image_rpi_sdimg[depends] = " \ do_image_rpi_sdimg[recrdeps] = "do_build" # SD card image name -SDIMG = "${IMGDEPLOYDIR}/${IMAGE_NAME}.rootfs.rpi-sdimg" +SDIMG = "${IMGDEPLOYDIR}/${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.rpi-sdimg" # Additional files and/or directories to be copied into the vfat partition from the IMAGE_ROOTFS. FATPAYLOAD ?= "" @@ -112,48 +114,51 @@ IMAGE_CMD_rpi-sdimg () { BOOT_BLOCKS=$(LC_ALL=C parted -s ${SDIMG} unit b print | awk '/ 1 / { print substr($4, 1, length($4 -1)) / 512 /2 }') rm -f ${WORKDIR}/boot.img mkfs.vfat -F32 -n "${BOOTDD_VOLUME_ID}" -S 512 -C ${WORKDIR}/boot.img $BOOT_BLOCKS - mcopy -i ${WORKDIR}/boot.img -s ${DEPLOY_DIR_IMAGE}/bcm2835-bootfiles/* ::/ + mcopy -v -i ${WORKDIR}/boot.img -s ${DEPLOY_DIR_IMAGE}/bcm2835-bootfiles/* ::/ || bbfatal "mcopy cannot copy ${DEPLOY_DIR_IMAGE}/bcm2835-bootfiles/* into boot.img" + if [ "${@bb.utils.contains("MACHINE_FEATURES", "armstub", "1", "0", d)}" = "1" ]; then + mcopy -v -i ${WORKDIR}/boot.img -s ${DEPLOY_DIR_IMAGE}/armstubs/${ARMSTUB} ::/ || bbfatal "mcopy cannot copy ${DEPLOY_DIR_IMAGE}/armstubs/${ARMSTUB} into boot.img" + fi if test -n "${DTS}"; then # Copy board device trees to root folder for dtbf in ${@split_overlays(d, True)}; do dtb=`basename $dtbf` - mcopy -i ${WORKDIR}/boot.img -s ${DEPLOY_DIR_IMAGE}/$dtb ::$dtb + mcopy -v -i ${WORKDIR}/boot.img -s ${DEPLOY_DIR_IMAGE}/$dtb ::$dtb || bbfatal "mcopy cannot copy ${DEPLOY_DIR_IMAGE}/$dtb into boot.img" done # Copy device tree overlays to dedicated folder mmd -i ${WORKDIR}/boot.img overlays for dtbf in ${@split_overlays(d, False)}; do dtb=`basename $dtbf` - mcopy -i ${WORKDIR}/boot.img -s ${DEPLOY_DIR_IMAGE}/$dtb ::overlays/$dtb + mcopy -v -i ${WORKDIR}/boot.img -s ${DEPLOY_DIR_IMAGE}/$dtb ::overlays/$dtb || bbfatal "mcopy cannot copy ${DEPLOY_DIR_IMAGE}/$dtb into boot.img" done fi if [ "${RPI_USE_U_BOOT}" = "1" ]; then - mcopy -i ${WORKDIR}/boot.img -s ${DEPLOY_DIR_IMAGE}/u-boot.bin ::${SDIMG_KERNELIMAGE} - mcopy -i ${WORKDIR}/boot.img -s ${DEPLOY_DIR_IMAGE}/boot.scr ::boot.scr + mcopy -v -i ${WORKDIR}/boot.img -s ${DEPLOY_DIR_IMAGE}/u-boot.bin ::${SDIMG_KERNELIMAGE} || bbfatal "mcopy cannot copy ${DEPLOY_DIR_IMAGE}/u-boot.bin into boot.img" + mcopy -v -i ${WORKDIR}/boot.img -s ${DEPLOY_DIR_IMAGE}/boot.scr ::boot.scr || bbfatal "mcopy cannot copy ${DEPLOY_DIR_IMAGE}/boot.scr into boot.img" if [ ! -z "${INITRAMFS_IMAGE}" -a "${INITRAMFS_IMAGE_BUNDLE}" = "1" ]; then - mcopy -i ${WORKDIR}/boot.img -s ${DEPLOY_DIR_IMAGE}/${KERNEL_IMAGETYPE}-${INITRAMFS_LINK_NAME}.bin ::${KERNEL_IMAGETYPE} + mcopy -v -i ${WORKDIR}/boot.img -s ${DEPLOY_DIR_IMAGE}/${KERNEL_IMAGETYPE}-${INITRAMFS_LINK_NAME}.bin ::${KERNEL_IMAGETYPE} || bbfatal "mcopy cannot copy ${DEPLOY_DIR_IMAGE}/${KERNEL_IMAGETYPE}-${INITRAMFS_LINK_NAME}.bin into boot.img" else - mcopy -i ${WORKDIR}/boot.img -s ${DEPLOY_DIR_IMAGE}/${KERNEL_IMAGETYPE} ::${KERNEL_IMAGETYPE} + mcopy -v -i ${WORKDIR}/boot.img -s ${DEPLOY_DIR_IMAGE}/${KERNEL_IMAGETYPE} ::${KERNEL_IMAGETYPE} || bbfatal "mcopy cannot copy ${DEPLOY_DIR_IMAGE}/${KERNEL_IMAGETYPE} into boot.img" fi else if [ ! -z "${INITRAMFS_IMAGE}" -a "${INITRAMFS_IMAGE_BUNDLE}" = "1" ]; then - mcopy -i ${WORKDIR}/boot.img -s ${DEPLOY_DIR_IMAGE}/${KERNEL_IMAGETYPE}-${INITRAMFS_LINK_NAME}.bin ::${SDIMG_KERNELIMAGE} + mcopy -v -i ${WORKDIR}/boot.img -s ${DEPLOY_DIR_IMAGE}/${KERNEL_IMAGETYPE}-${INITRAMFS_LINK_NAME}.bin ::${SDIMG_KERNELIMAGE} || bbfatal "mcopy cannot copy ${DEPLOY_DIR_IMAGE}/${KERNEL_IMAGETYPE}-${INITRAMFS_LINK_NAME}.bin into boot.img" else - mcopy -i ${WORKDIR}/boot.img -s ${DEPLOY_DIR_IMAGE}/${KERNEL_IMAGETYPE} ::${SDIMG_KERNELIMAGE} + mcopy -v -i ${WORKDIR}/boot.img -s ${DEPLOY_DIR_IMAGE}/${KERNEL_IMAGETYPE} ::${SDIMG_KERNELIMAGE} || bbfatal "mcopy cannot copy ${DEPLOY_DIR_IMAGE}/${KERNEL_IMAGETYPE} into boot.img" fi fi if [ -n "${FATPAYLOAD}" ] ; then echo "Copying payload into VFAT" for entry in ${FATPAYLOAD} ; do - # add the || true to stop aborting on vfat issues like not supporting .~lock files - mcopy -i ${WORKDIR}/boot.img -s -v ${IMAGE_ROOTFS}$entry :: || true + # use bbwarn instead of bbfatal to stop aborting on vfat issues like not supporting .~lock files + mcopy -v -i ${WORKDIR}/boot.img -s ${IMAGE_ROOTFS}$entry :: || bbwarn "mcopy cannot copy ${IMAGE_ROOTFS}$entry into boot.img" done fi # Add stamp file echo "${IMAGE_NAME}" > ${WORKDIR}/image-version-info - mcopy -i ${WORKDIR}/boot.img -v ${WORKDIR}/image-version-info :: + mcopy -v -i ${WORKDIR}/boot.img ${WORKDIR}/image-version-info :: || bbfatal "mcopy cannot copy ${WORKDIR}/image-version-info into boot.img" # Deploy vfat partition if [ "${SDIMG_VFAT_DEPLOY}" = "1" ]; then diff --git a/Contrib-Inspur/openbmc/meta-raspberrypi/conf/layer.conf b/Contrib-Inspur/openbmc/meta-raspberrypi/conf/layer.conf index 264b2c03..c958587b 100644 --- a/Contrib-Inspur/openbmc/meta-raspberrypi/conf/layer.conf +++ b/Contrib-Inspur/openbmc/meta-raspberrypi/conf/layer.conf @@ -9,7 +9,7 @@ BBFILE_COLLECTIONS += "raspberrypi" BBFILE_PATTERN_raspberrypi := "^${LAYERDIR}/" BBFILE_PRIORITY_raspberrypi = "9" -LAYERSERIES_COMPAT_raspberrypi = "sumo thud warrior" +LAYERSERIES_COMPAT_raspberrypi = "sumo thud warrior zeus" # Additional license directories. LICENSE_PATH += "${LAYERDIR}/files/custom-licenses" @@ -27,6 +27,8 @@ BBFILES += "${@' '.join('${LAYERDIR}/dynamic-layers/%s/recipes*/*/*.bb' % layer BBFILES_DYNAMIC += " \ openembedded-layer:${LAYERDIR}/dynamic-layers/openembedded-layer/*/*/*.bb \ openembedded-layer:${LAYERDIR}/dynamic-layers/openembedded-layer/*/*/*.bbappend \ + networking-layer:${LAYERDIR}/dynamic-layers/networking-layer/*/*/*.bb \ + networking-layer:${LAYERDIR}/dynamic-layers/networking-layer/*/*/*.bbappend \ qt5-layer:${LAYERDIR}/dynamic-layers/qt5-layer/*/*/*.bb \ qt5-layer:${LAYERDIR}/dynamic-layers/qt5-layer/*/*/*.bbappend \ " diff --git a/Contrib-Inspur/openbmc/meta-raspberrypi/conf/machine/include/rpi-base.inc b/Contrib-Inspur/openbmc/meta-raspberrypi/conf/machine/include/rpi-base.inc index cc6a54ec..9772fd9d 100644 --- a/Contrib-Inspur/openbmc/meta-raspberrypi/conf/machine/include/rpi-base.inc +++ b/Contrib-Inspur/openbmc/meta-raspberrypi/conf/machine/include/rpi-base.inc @@ -30,22 +30,25 @@ RPI_KERNEL_DEVICETREE_OVERLAYS ?= " \ overlays/pi3-miniuart-bt.dtbo \ overlays/pitft22.dtbo \ overlays/pitft28-resistive.dtbo \ + overlays/pitft28-capacitive.dtbo \ overlays/pitft35-resistive.dtbo \ overlays/pps-gpio.dtbo \ overlays/rpi-ft5406.dtbo \ overlays/rpi-poe.dtbo \ overlays/vc4-kms-v3d.dtbo \ + overlays/vc4-fkms-v3d.dtbo \ overlays/w1-gpio-pullup.dtbo \ overlays/w1-gpio.dtbo \ " RPI_KERNEL_DEVICETREE ?= " \ - bcm2708-rpi-0-w.dtb \ + bcm2708-rpi-zero-w.dtb \ bcm2708-rpi-b.dtb \ bcm2708-rpi-b-plus.dtb \ bcm2709-rpi-2-b.dtb \ bcm2710-rpi-3-b.dtb \ bcm2710-rpi-3-b-plus.dtb \ + bcm2711-rpi-4-b.dtb \ bcm2708-rpi-cm.dtb \ bcm2710-rpi-cm3.dtb \ " @@ -68,7 +71,7 @@ KERNEL_IMAGETYPE_DIRECT ??= "zImage" KERNEL_IMAGETYPE ?= "${@bb.utils.contains('RPI_USE_U_BOOT', '1', \ '${KERNEL_IMAGETYPE_UBOOT}', '${KERNEL_IMAGETYPE_DIRECT}', d)}" -MACHINE_FEATURES += "apm usbhost keyboard vfat ext2 screen touchscreen alsa bluetooth wifi sdio" +MACHINE_FEATURES += "apm usbhost keyboard vfat ext2 screen touchscreen alsa bluetooth wifi sdio ${@bb.utils.contains('DISABLE_VC4GRAPHICS', '1', '', 'vc4graphics', d)}" # Raspberry Pi has no hardware clock MACHINE_FEATURES_BACKFILL_CONSIDERED = "rtc" diff --git a/Contrib-Inspur/openbmc/meta-raspberrypi/conf/machine/raspberrypi-cm.conf b/Contrib-Inspur/openbmc/meta-raspberrypi/conf/machine/raspberrypi-cm.conf index 2da7d50b..f9371df6 100644 --- a/Contrib-Inspur/openbmc/meta-raspberrypi/conf/machine/raspberrypi-cm.conf +++ b/Contrib-Inspur/openbmc/meta-raspberrypi/conf/machine/raspberrypi-cm.conf @@ -4,3 +4,5 @@ MACHINEOVERRIDES = "raspberrypi:${MACHINE}" include conf/machine/raspberrypi.conf + +ARMSTUB ?= "armstub.bin" diff --git a/Contrib-Inspur/openbmc/meta-raspberrypi/conf/machine/raspberrypi-cm3.conf b/Contrib-Inspur/openbmc/meta-raspberrypi/conf/machine/raspberrypi-cm3.conf index c8677b4f..f1b81519 100644 --- a/Contrib-Inspur/openbmc/meta-raspberrypi/conf/machine/raspberrypi-cm3.conf +++ b/Contrib-Inspur/openbmc/meta-raspberrypi/conf/machine/raspberrypi-cm3.conf @@ -6,7 +6,8 @@ DEFAULTTUNE ?= "cortexa7thf-neon-vfpv4" require conf/machine/include/tune-cortexa7.inc include conf/machine/include/rpi-base.inc -KBUILD_DEFCONFIG ?= "bcm2709_defconfig" SDIMG_KERNELIMAGE ?= "kernel7.img" UBOOT_MACHINE = "rpi_3_32b_config" SERIAL_CONSOLES ?= "115200;ttyAMA0" + +ARMSTUB ?= "armstub.bin" diff --git a/Contrib-Inspur/openbmc/meta-raspberrypi/conf/machine/raspberrypi.conf b/Contrib-Inspur/openbmc/meta-raspberrypi/conf/machine/raspberrypi.conf index e94ad867..b23687b2 100644 --- a/Contrib-Inspur/openbmc/meta-raspberrypi/conf/machine/raspberrypi.conf +++ b/Contrib-Inspur/openbmc/meta-raspberrypi/conf/machine/raspberrypi.conf @@ -10,3 +10,5 @@ include conf/machine/include/rpi-base.inc SERIAL_CONSOLES ?= "115200;ttyAMA0" UBOOT_MACHINE = "rpi_config" + +ARMSTUB ?= "armstub.bin" diff --git a/Contrib-Inspur/openbmc/meta-raspberrypi/conf/machine/raspberrypi0-wifi.conf b/Contrib-Inspur/openbmc/meta-raspberrypi/conf/machine/raspberrypi0-wifi.conf index 2c4f760e..8689bca9 100644 --- a/Contrib-Inspur/openbmc/meta-raspberrypi/conf/machine/raspberrypi0-wifi.conf +++ b/Contrib-Inspur/openbmc/meta-raspberrypi/conf/machine/raspberrypi0-wifi.conf @@ -14,3 +14,5 @@ MACHINE_EXTRA_RRECOMMENDS += "\ SDIMG_KERNELIMAGE ?= "kernel.img" UBOOT_MACHINE ?= "rpi_0_w_defconfig" SERIAL_CONSOLES ?= "115200;ttyS0" + +ARMSTUB ?= "armstub.bin" diff --git a/Contrib-Inspur/openbmc/meta-raspberrypi/conf/machine/raspberrypi2.conf b/Contrib-Inspur/openbmc/meta-raspberrypi/conf/machine/raspberrypi2.conf index bd191c3f..505c6f2f 100644 --- a/Contrib-Inspur/openbmc/meta-raspberrypi/conf/machine/raspberrypi2.conf +++ b/Contrib-Inspur/openbmc/meta-raspberrypi/conf/machine/raspberrypi2.conf @@ -10,3 +10,5 @@ include conf/machine/include/rpi-base.inc SERIAL_CONSOLES ?= "115200;ttyAMA0" UBOOT_MACHINE = "rpi_2_config" + +ARMSTUB ?= "armstub7.bin" diff --git a/Contrib-Inspur/openbmc/meta-raspberrypi/conf/machine/raspberrypi3-64.conf b/Contrib-Inspur/openbmc/meta-raspberrypi/conf/machine/raspberrypi3-64.conf index 80b6bc46..23b59ed9 100644 --- a/Contrib-Inspur/openbmc/meta-raspberrypi/conf/machine/raspberrypi3-64.conf +++ b/Contrib-Inspur/openbmc/meta-raspberrypi/conf/machine/raspberrypi3-64.conf @@ -23,7 +23,6 @@ RPI_KERNEL_DEVICETREE = " \ SERIAL_CONSOLES ?= "115200;ttyS0" UBOOT_MACHINE = "rpi_3_config" -MACHINE_FEATURES_append = " vc4graphics" # When u-boot is enabled we need to use the "Image" format and the "booti" # command to load the kernel @@ -31,3 +30,5 @@ KERNEL_IMAGETYPE_UBOOT ?= "Image" # "zImage" not supported on arm64 and ".gz" images not supported by bootloader yet KERNEL_IMAGETYPE_DIRECT ?= "Image" KERNEL_BOOTCMD ?= "booti" + +ARMSTUB ?= "armstub8.bin" diff --git a/Contrib-Inspur/openbmc/meta-raspberrypi/conf/machine/raspberrypi3.conf b/Contrib-Inspur/openbmc/meta-raspberrypi/conf/machine/raspberrypi3.conf index df64cbb7..581e47c8 100644 --- a/Contrib-Inspur/openbmc/meta-raspberrypi/conf/machine/raspberrypi3.conf +++ b/Contrib-Inspur/openbmc/meta-raspberrypi/conf/machine/raspberrypi3.conf @@ -1,6 +1,6 @@ #@TYPE: Machine -#@NAME: RaspberryPi 3 Development Board -#@DESCRIPTION: Machine configuration for the RaspberryPi 3 +#@NAME: RaspberryPi 3 Development Board (32bit) +#@DESCRIPTION: Machine configuration for the RaspberryPi 3 in 32 bits mode DEFAULTTUNE ?= "cortexa7thf-neon-vfpv4" require conf/machine/include/tune-cortexa7.inc @@ -16,3 +16,5 @@ MACHINE_EXTRA_RRECOMMENDS += "\ SDIMG_KERNELIMAGE ?= "kernel7.img" UBOOT_MACHINE = "rpi_3_32b_config" SERIAL_CONSOLES ?= "115200;ttyS0" + +ARMSTUB ?= "armstub7.bin" diff --git a/Contrib-Inspur/openbmc/meta-raspberrypi/conf/machine/raspberrypi4-64.conf b/Contrib-Inspur/openbmc/meta-raspberrypi/conf/machine/raspberrypi4-64.conf new file mode 100644 index 00000000..633d1880 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-raspberrypi/conf/machine/raspberrypi4-64.conf @@ -0,0 +1,36 @@ +#@TYPE: Machine +#@NAME: RaspberryPi 4 Development Board (64bit) +#@DESCRIPTION: Machine configuration for the RaspberryPi 4 in 64 bits mode + +MACHINEOVERRIDES = "raspberrypi4:${MACHINE}" + +MACHINE_FEATURES += "pci" +MACHINE_EXTRA_RRECOMMENDS += "\ + linux-firmware-rpidistro-bcm43455 \ + bluez-firmware-rpidistro-bcm4345c0-hcd \ +" + +require conf/machine/include/tune-cortexa72.inc +include conf/machine/include/rpi-base.inc + +RPI_KERNEL_DEVICETREE = " \ + broadcom/bcm2711-rpi-4-b.dtb \ +" + +SDIMG_KERNELIMAGE ?= "kernel8.img" +SERIAL_CONSOLES ?= "115200;ttyS0" + +UBOOT_MACHINE = "rpi_4_config" + +VC4DTBO ?= "vc4-fkms-v3d" + +# When u-boot is enabled we need to use the "Image" format and the "booti" +# command to load the kernel +KERNEL_IMAGETYPE_UBOOT ?= "Image" +# "zImage" not supported on arm64 and ".gz" images not supported by bootloader yet +KERNEL_IMAGETYPE_DIRECT ?= "Image" +KERNEL_BOOTCMD ?= "booti" + +RPI_EXTRA_CONFIG ?= "\n# Force arm in 64bit mode. See: https://github.com/raspberrypi/firmware/issues/1193.\narm_64bit=1" + +ARMSTUB ?= "armstub8-gic.bin" diff --git a/Contrib-Inspur/openbmc/meta-raspberrypi/conf/machine/raspberrypi4.conf b/Contrib-Inspur/openbmc/meta-raspberrypi/conf/machine/raspberrypi4.conf new file mode 100644 index 00000000..d6b1d1bd --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-raspberrypi/conf/machine/raspberrypi4.conf @@ -0,0 +1,21 @@ +#@TYPE: Machine +#@NAME: RaspberryPi 4 Development Board (32bit) +#@DESCRIPTION: Machine configuration for the RaspberryPi 4 in 32 bit mode + +DEFAULTTUNE ?= "cortexa7thf-neon-vfpv4" +require conf/machine/include/tune-cortexa7.inc +include conf/machine/include/rpi-base.inc + +MACHINE_FEATURES += "pci" +MACHINE_EXTRA_RRECOMMENDS += "\ + linux-firmware-rpidistro-bcm43455 \ + bluez-firmware-rpidistro-bcm4345c0-hcd \ +" + +# 'l' stands for LPAE +SDIMG_KERNELIMAGE ?= "kernel7l.img" +UBOOT_MACHINE = "rpi_4_32b_config" +SERIAL_CONSOLES ?= "115200;ttyS0" + +VC4DTBO ?= "vc4-fkms-v3d" +ARMSTUB ?= "armstub7.bin" diff --git a/Contrib-Inspur/openbmc/meta-raspberrypi/docs/extra-build-config.md b/Contrib-Inspur/openbmc/meta-raspberrypi/docs/extra-build-config.md index b44dece3..a2b68d8c 100644 --- a/Contrib-Inspur/openbmc/meta-raspberrypi/docs/extra-build-config.md +++ b/Contrib-Inspur/openbmc/meta-raspberrypi/docs/extra-build-config.md @@ -31,6 +31,10 @@ Accommodate the values above to your own needs (ex: ext3 / ext4). See: +## VC4 + +By default, each machine uses `vc4` for graphics. This will in turn sets mesa as provider for `gl` libraries. `DISABLE_VC4GRAPHICS` can be set to `1` to disable this behaviour falling back to using `userland`. Be aware that `userland` has not support for 64-bit arch. If you disable `vc4` on a 64-bit Raspberry Pi machine, expect build breakage. + ## Add purchased license codecs To add you own licenses use variables `KEY_DECODE_MPG2` and `KEY_DECODE_WVC1` in @@ -200,6 +204,7 @@ modelname should be added as a MACHINE_FEATURES in local.conf like below: List of currently supported models: * pitft22 * pitft28r +* pitft28c * pitft35r ## Misc. display @@ -219,7 +224,7 @@ needs a fixed core frequency and enable_uart wil set it to the minimum. Certain operations - 60fps h264 decode, high quality deinterlace - which aren't performed on the ARM may be affected, and we wouldn't want to do that to users who don't want to use the serial port. Users who want serial console support on -RaspberryPi3 will have to explicitly set in local.conf: +RaspberryPi 0 Wifi or 3 will have to explicitly set in local.conf: ENABLE_UART = "1" diff --git a/Contrib-Inspur/openbmc/meta-raspberrypi/dynamic-layers/networking-layer/recipes-support/drbd/drbd_%.bbappend b/Contrib-Inspur/openbmc/meta-raspberrypi/dynamic-layers/networking-layer/recipes-support/drbd/drbd_%.bbappend new file mode 100644 index 00000000..933aaf6c --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-raspberrypi/dynamic-layers/networking-layer/recipes-support/drbd/drbd_%.bbappend @@ -0,0 +1,3 @@ +FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:" + +COMPATIBLE_MACHINE_rpi = "(null)" diff --git a/Contrib-Inspur/openbmc/meta-raspberrypi/dynamic-layers/openembedded-layer/recipes-kernel/linux/bpftool.bbappend b/Contrib-Inspur/openbmc/meta-raspberrypi/dynamic-layers/openembedded-layer/recipes-kernel/linux/bpftool.bbappend deleted file mode 100644 index 7536f390..00000000 --- a/Contrib-Inspur/openbmc/meta-raspberrypi/dynamic-layers/openembedded-layer/recipes-kernel/linux/bpftool.bbappend +++ /dev/null @@ -1,3 +0,0 @@ -# remove it when we upgrade to kernel > 4.14 -# -COMPATIBLE_HOST_rpi = "null" diff --git a/Contrib-Inspur/openbmc/meta-raspberrypi/files/custom-licenses/Broadcom b/Contrib-Inspur/openbmc/meta-raspberrypi/files/custom-licenses/Broadcom deleted file mode 100644 index 25826816..00000000 --- a/Contrib-Inspur/openbmc/meta-raspberrypi/files/custom-licenses/Broadcom +++ /dev/null @@ -1,25 +0,0 @@ -Copyright (c) 2012, Broadcom Europe Ltd -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - * Neither the name of the copyright holder nor the - names of its contributors may be used to endorse or promote products - derived from this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND -ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY -DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND -ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - diff --git a/Contrib-Inspur/openbmc/meta-raspberrypi/files/custom-licenses/Broadcom-RPi b/Contrib-Inspur/openbmc/meta-raspberrypi/files/custom-licenses/Broadcom-RPi new file mode 100644 index 00000000..6f3baa0c --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-raspberrypi/files/custom-licenses/Broadcom-RPi @@ -0,0 +1,29 @@ +Copyright (c) 2006, Broadcom Corporation. +Copyright (c) 2015, Raspberry Pi (Trading) Ltd +All rights reserved. + +Redistribution. Redistribution and use in binary form, without +modification, are permitted provided that the following conditions are +met: + +* This software may only be used for the purposes of developing for, + running or using a Raspberry Pi device. +* Redistributions must reproduce the above copyright notice and the + following disclaimer in the documentation and/or other materials + provided with the distribution. +* Neither the name of Broadcom Corporation nor the names of its suppliers + may be used to endorse or promote products derived from this software + without specific prior written permission. + +DISCLAIMER. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND +CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, +BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS +OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR +TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE +USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH +DAMAGE. diff --git a/Contrib-Inspur/openbmc/meta-raspberrypi/recipes-bsp/armstubs/armstubs.bb b/Contrib-Inspur/openbmc/meta-raspberrypi/recipes-bsp/armstubs/armstubs.bb new file mode 100644 index 00000000..d8f3fe70 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-raspberrypi/recipes-bsp/armstubs/armstubs.bb @@ -0,0 +1,36 @@ +DESCRIPTION = "Boot strap code that the GPU puts on memory to start running the boot loader" +LICENSE = "BSD-3-Clause" + +LIC_FILES_CHKSUM = "file://armstub.S;beginline=1;endline=26;md5=9888f34ac06a676129416c952a6a521e" + +inherit deploy nopackages + +include recipes-bsp/common/raspberrypi-tools.inc + +COMPATIBLE_MACHINE = "^rpi$" + +S = "${RPITOOLS_S}/armstubs" + +export CC7="${CC}" +export LD7="${LD}" +export OBJCOPY7="${OBJCOPY}" +export OBJDUMP7="${OBJDUMP}" +export CC8="${CC}" +export LD8="${LD}" +export OBJCOPY8="${OBJCOPY}" +export OBJDUMP8="${OBJDUMP} -maarch64" + +do_compile() { + [ -z "${ARMSTUB}" ] && bbfatal "No ARMSTUB defined for your machine." + oe_runmake ${ARMSTUB} +} + +do_deploy() { + install -d ${DEPLOYDIR}/${PN} + cp ${S}/armstub*.bin ${DEPLOYDIR}/${PN} +} + +addtask deploy before do_build after do_install +do_deploy[dirs] += "${DEPLOYDIR}/${PN}" + +PACKAGE_ARCH = "${MACHINE_ARCH}" diff --git a/Contrib-Inspur/openbmc/meta-raspberrypi/recipes-bsp/bootfiles/bcm2835-bootfiles.bb b/Contrib-Inspur/openbmc/meta-raspberrypi/recipes-bsp/bootfiles/bcm2835-bootfiles.bb index 466f4438..d20312c1 100644 --- a/Contrib-Inspur/openbmc/meta-raspberrypi/recipes-bsp/bootfiles/bcm2835-bootfiles.bb +++ b/Contrib-Inspur/openbmc/meta-raspberrypi/recipes-bsp/bootfiles/bcm2835-bootfiles.bb @@ -1,11 +1,11 @@ DESCRIPTION = "Closed source binary files to help boot the ARM on the BCM2835." -LICENSE = "Proprietary" +LICENSE = "Broadcom-RPi" -LIC_FILES_CHKSUM = "file://LICENCE.broadcom;md5=4a4d169737c0786fb9482bb6d30401d1" +LIC_FILES_CHKSUM = "file://LICENCE.broadcom;md5=c403841ff2837657b2ed8e5bb474ac8d" inherit deploy nopackages -include recipes-bsp/common/firmware.inc +include recipes-bsp/common/raspberrypi-firmware.inc INHIBIT_DEFAULT_DEPS = "1" @@ -34,6 +34,8 @@ do_deploy() { touch ${DEPLOYDIR}/${PN}/${PN}-${PV}.stamp } +do_deploy[depends] += "rpi-config:do_deploy" + addtask deploy before do_build after do_install do_deploy[dirs] += "${DEPLOYDIR}/${PN}" diff --git a/Contrib-Inspur/openbmc/meta-raspberrypi/recipes-bsp/bootfiles/rpi-config_git.bb b/Contrib-Inspur/openbmc/meta-raspberrypi/recipes-bsp/bootfiles/rpi-config_git.bb index b3356edf..5315676f 100644 --- a/Contrib-Inspur/openbmc/meta-raspberrypi/recipes-bsp/bootfiles/rpi-config_git.bb +++ b/Contrib-Inspur/openbmc/meta-raspberrypi/recipes-bsp/bootfiles/rpi-config_git.bb @@ -20,6 +20,7 @@ INHIBIT_DEFAULT_DEPS = "1" PITFT="${@bb.utils.contains("MACHINE_FEATURES", "pitft", "1", "0", d)}" PITFT22="${@bb.utils.contains("MACHINE_FEATURES", "pitft22", "1", "0", d)}" PITFT28r="${@bb.utils.contains("MACHINE_FEATURES", "pitft28r", "1", "0", d)}" +PITFT28c="${@bb.utils.contains("MACHINE_FEATURES", "pitft28c", "1", "0", d)}" PITFT35r="${@bb.utils.contains("MACHINE_FEATURES", "pitft35r", "1", "0", d)}" VC4GRAPHICS="${@bb.utils.contains("MACHINE_FEATURES", "vc4graphics", "1", "0", d)}" @@ -41,7 +42,7 @@ do_deploy() { if [ -n "${DISABLE_OVERSCAN}" ]; then sed -i '/#disable_overscan=/ c\disable_overscan=${DISABLE_OVERSCAN}' ${DEPLOYDIR}/bcm2835-bootfiles/config.txt fi - if [ -n "${DISABLE_SPLASH}" ]; then + if [ "${DISABLE_SPLASH}" = "1" ]; then sed -i '/#disable_splash=/ c\disable_splash=${DISABLE_SPLASH}' ${DEPLOYDIR}/bcm2835-bootfiles/config.txt fi @@ -111,25 +112,25 @@ do_deploy() { fi # Video camera support - if [ -n "${VIDEO_CAMERA}" ]; then + if [ "${VIDEO_CAMERA}" = "1" ]; then echo "# Enable video camera" >>${DEPLOYDIR}/bcm2835-bootfiles/config.txt echo "start_x=1" >>${DEPLOYDIR}/bcm2835-bootfiles/config.txt fi # Offline compositing support - if [ -n "${DISPMANX_OFFLINE}" ]; then + if [ "${DISPMANX_OFFLINE}" = "1" ]; then echo "# Enable offline compositing" >>${DEPLOYDIR}/bcm2835-bootfiles/config.txt echo "dispmanx_offline=1" >>${DEPLOYDIR}/bcm2835-bootfiles/config.txt fi # SPI bus support - if [ -n "${ENABLE_SPI_BUS}" ] || [ "${PITFT}" = "1" ]; then + if [ "${ENABLE_SPI_BUS}" = "1" ] || [ "${PITFT}" = "1" ]; then echo "# Enable SPI bus" >>${DEPLOYDIR}/bcm2835-bootfiles/config.txt echo "dtparam=spi=on" >>${DEPLOYDIR}/bcm2835-bootfiles/config.txt fi # I2C support - if [ -n "${ENABLE_I2C}" ] || [ "${PITFT}" = "1" ]; then + if [ "${ENABLE_I2C}" = "1" ] || [ "${PITFT}" = "1" ]; then echo "# Enable I2C" >>${DEPLOYDIR}/bcm2835-bootfiles/config.txt echo "dtparam=i2c1=on" >>${DEPLOYDIR}/bcm2835-bootfiles/config.txt echo "dtparam=i2c_arm=on" >>${DEPLOYDIR}/bcm2835-bootfiles/config.txt @@ -144,6 +145,11 @@ do_deploy() { echo "# Enable PITFT28r display" >>${DEPLOYDIR}/bcm2835-bootfiles/config.txt echo "dtoverlay=pitft28-resistive,rotate=90,speed=32000000,txbuflen=32768" >>${DEPLOYDIR}/bcm2835-bootfiles/config.txt fi + if [ "${PITFT28c}" = "1" ]; then + echo "# Enable PITFT28c display" >>${DEPLOYDIR}/bcm2835-bootfiles/config.txt + echo "dtoverlay=pitft28-capacitive,rotate=90,speed=32000000,txbuflen=32768" >>${DEPLOYDIR}/bcm2835-bootfiles/config.txt + echo "dtoverlay=pitft28-capacitive,touch-swapxy,touch-invx" >>${DEPLOYDIR}/bcm2835-bootfiles/config.txt + fi if [ "${PITFT35r}" = "1" ]; then echo "# Enable PITFT35r display" >>${DEPLOYDIR}/bcm2835-bootfiles/config.txt echo "dtoverlay=pitft35-resistive,rotate=90,speed=42000000,fps=20" >>${DEPLOYDIR}/bcm2835-bootfiles/config.txt @@ -191,6 +197,17 @@ do_deploy() { # Append extra config if the user has provided any printf "${RPI_EXTRA_CONFIG}\n" >> ${DEPLOYDIR}/bcm2835-bootfiles/config.txt + + # Handle setup with armstub file + if [ "${@bb.utils.contains("MACHINE_FEATURES", "armstub", "1", "0", d)}" = "1" ]; then + echo "\n# ARM stub configuration" >> ${DEPLOYDIR}/bcm2835-bootfiles/config.txt + echo "armstub=${ARMSTUB}" >> ${DEPLOYDIR}/bcm2835-bootfiles/config.txt + case "${ARMSTUB}" in + *-gic.bin) + echo "enable_gic=1" >> ${DEPLOYDIR}/bcm2835-bootfiles/config.txt + ;; + esac + fi } do_deploy_append_raspberrypi3-64() { diff --git a/Contrib-Inspur/openbmc/meta-raspberrypi/recipes-bsp/common/firmware.inc b/Contrib-Inspur/openbmc/meta-raspberrypi/recipes-bsp/common/firmware.inc deleted file mode 100644 index e2c3b1a1..00000000 --- a/Contrib-Inspur/openbmc/meta-raspberrypi/recipes-bsp/common/firmware.inc +++ /dev/null @@ -1,10 +0,0 @@ -RPIFW_DATE ?= "20190517" -SRCREV ?= "e1900836948f6c6bdf4571da1b966a9085c95d37" -RPIFW_SRC_URI ?= "https://github.com/raspberrypi/firmware/archive/${SRCREV}.tar.gz" -RPIFW_S ?= "${WORKDIR}/firmware-${SRCREV}" - -SRC_URI = "${RPIFW_SRC_URI}" -SRC_URI[md5sum] = "ba272fed3661f0c8d5e4c424d2617246" -SRC_URI[sha256sum] = "2a4c566e98b16575ebf295b795b40a5772f81282948e957bdc9733cf72fdcd39" - -PV = "${RPIFW_DATE}" diff --git a/Contrib-Inspur/openbmc/meta-raspberrypi/recipes-bsp/common/raspberrypi-firmware.inc b/Contrib-Inspur/openbmc/meta-raspberrypi/recipes-bsp/common/raspberrypi-firmware.inc new file mode 100644 index 00000000..869ea3a5 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-raspberrypi/recipes-bsp/common/raspberrypi-firmware.inc @@ -0,0 +1,10 @@ +RPIFW_DATE ?= "20191210" +SRCREV ?= "9d6be5b07e81bdfb9c4b9a560e90fbc7477fdc6e" +RPIFW_SRC_URI ?= "https://github.com/raspberrypi/firmware/archive/${SRCREV}.tar.gz" +RPIFW_S ?= "${WORKDIR}/firmware-${SRCREV}" + +SRC_URI = "${RPIFW_SRC_URI}" +SRC_URI[md5sum] = "645e812765c8b4ca05d6cb47a1f67ab0" +SRC_URI[sha256sum] = "484d52caed909fcafbf593cc3e726ea44a9218db7f0aeec843b825797eb9b0fc" + +PV = "${RPIFW_DATE}" diff --git a/Contrib-Inspur/openbmc/meta-raspberrypi/recipes-bsp/common/raspberrypi-tools.inc b/Contrib-Inspur/openbmc/meta-raspberrypi/recipes-bsp/common/raspberrypi-tools.inc new file mode 100644 index 00000000..0d4c627c --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-raspberrypi/recipes-bsp/common/raspberrypi-tools.inc @@ -0,0 +1,9 @@ +SRCREV ?= "b0c869bc929587a7e1d20a98e2dc828a24ca396a" +RPITOOLS_SRC_URI ?= "https://github.com/raspberrypi/tools/archive/${SRCREV}.tar.gz" +RPITOOLS_S ?= "${WORKDIR}/tools-${SRCREV}" + +SRC_URI = "${RPITOOLS_SRC_URI}" +SRC_URI[md5sum] = "fd999aad4424088b5e8746a9d946bb56" +SRC_URI[sha256sum] = "a0a8aff308d9302318442e6bcd2df14cbbb3b633f12ca6b9c43c4ab69bf45bb1" + +PV = "0.0+git${SRCREV}" diff --git a/Contrib-Inspur/openbmc/meta-raspberrypi/recipes-connectivity/bluez5/bluez5_%.bbappend b/Contrib-Inspur/openbmc/meta-raspberrypi/recipes-connectivity/bluez5/bluez5_%.bbappend index 09fbaaa0..d1a07a46 100644 --- a/Contrib-Inspur/openbmc/meta-raspberrypi/recipes-connectivity/bluez5/bluez5_%.bbappend +++ b/Contrib-Inspur/openbmc/meta-raspberrypi/recipes-connectivity/bluez5/bluez5_%.bbappend @@ -1,6 +1,6 @@ FILESEXTRAPATHS_prepend_rpi := "${THISDIR}/${PN}:" -RC_URI_append_rpi = "\ +SRC_URI_append_rpi = "\ file://0001-bcm43xx-Add-bcm43xx-3wire-variant.patch \ file://0002-bcm43xx-The-UART-speed-must-be-reset-after-the-firmw.patch \ file://0003-Increase-firmware-load-timeout-to-30s.patch \ diff --git a/Contrib-Inspur/openbmc/meta-raspberrypi/recipes-connectivity/pi-bluetooth/pi-bluetooth/0001-bthelper-correct-path-for-hciconfig-under-Yocto.patch b/Contrib-Inspur/openbmc/meta-raspberrypi/recipes-connectivity/pi-bluetooth/pi-bluetooth/0001-bthelper-correct-path-for-hciconfig-under-Yocto.patch index 45839053..45b43c72 100644 --- a/Contrib-Inspur/openbmc/meta-raspberrypi/recipes-connectivity/pi-bluetooth/pi-bluetooth/0001-bthelper-correct-path-for-hciconfig-under-Yocto.patch +++ b/Contrib-Inspur/openbmc/meta-raspberrypi/recipes-connectivity/pi-bluetooth/pi-bluetooth/0001-bthelper-correct-path-for-hciconfig-under-Yocto.patch @@ -1,16 +1,18 @@ -From af91c96951a11f81f5cea88a0010161592c89310 Mon Sep 17 00:00:00 2001 +From a73bbed89fb049ac424c211629935b26013e2573 Mon Sep 17 00:00:00 2001 From: "Peter A. Bigot" Date: Wed, 14 Nov 2018 09:19:51 -0600 Subject: [PATCH] bthelper: correct path for hciconfig under Yocto Upstream-Status: Inapproprate [OE-specific] Signed-off-by: Peter A. Bigot +Signed-off-by: Andrei Gherzan + --- usr/bin/bthelper | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/usr/bin/bthelper b/usr/bin/bthelper -index 255fdeb..4e1a1a4 100755 +index af597e5..5de84f6 100755 --- a/usr/bin/bthelper +++ b/usr/bin/bthelper @@ -10,7 +10,7 @@ fi @@ -18,11 +20,8 @@ index 255fdeb..4e1a1a4 100755 dev="$1" # Need to bring hci up before looking at MAC as it can be all zeros during init -/bin/hciconfig "$dev" up --/bin/hciconfig "$dev" |grep -q "BD Address: B8:27:EB:" || exit 0 +-/bin/hciconfig "$dev" | grep -qE "BD Address: (B8:27:EB|DC:A6:32):" || exit 0 +/usr/bin/hciconfig "$dev" up -+/usr/bin/hciconfig "$dev" |grep -q "BD Address: B8:27:EB:" || exit 0 ++/usr/bin/hciconfig "$dev" | grep -qE "BD Address: (B8:27:EB|DC:A6:32):" || exit 0 /usr/bin/hcitool -i "$dev" cmd 0x3f 0x1c 0x01 0x02 0x00 0x01 0x01 > /dev/null --- -2.17.1 - diff --git a/Contrib-Inspur/openbmc/meta-raspberrypi/recipes-connectivity/pi-bluetooth/pi-bluetooth_0.1.12.bb b/Contrib-Inspur/openbmc/meta-raspberrypi/recipes-connectivity/pi-bluetooth/pi-bluetooth_0.1.12.bb new file mode 100644 index 00000000..ccf714ba --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-raspberrypi/recipes-connectivity/pi-bluetooth/pi-bluetooth_0.1.12.bb @@ -0,0 +1,47 @@ +SUMMARY = "Script to properly configure BT-HCI on Raspberry Pi" +HOMEPAGE = "https://github.com/RPi-Distro/pi-bluetooth" +SECTION = "kernel" +LICENSE = "BSD-3-Clause" +LIC_FILES_CHKSUM = "\ + file://debian/copyright;md5=6af8de3c8ee71f8e91e9b22f84ff2022 \ +" + +SRC_URI = "\ + git://github.com/RPi-Distro/pi-bluetooth \ + file://0001-bthelper-correct-path-for-hciconfig-under-Yocto.patch \ +" +SRCREV = "cbdbcb66bcc5b9af05f1a9fffe2254c872bb0ace" + +S = "${WORKDIR}/git" + +# hciuart.service replaces what was brcm43438.service +inherit systemd +SYSTEMD_SERVICE_${PN} = "\ + hciuart.service \ + bthelper@.service \ +" + +do_install() { + install -d ${D}${sysconfdir}/udev/rules.d + install -m 0644 ${S}/lib/udev/rules.d/* ${D}${sysconfdir}/udev/rules.d + + install -d ${D}${bindir} + install -m 0755 ${S}/usr/bin/bthelper ${D}${bindir} + install -m 0755 ${S}/usr/bin/btuart ${D}${bindir} + + if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then + install -d ${D}${systemd_system_unitdir} + install -m 0644 ${S}/debian/pi-bluetooth.bthelper@.service ${D}${systemd_system_unitdir}/bthelper@.service + install -m 0644 ${S}/debian/pi-bluetooth.hciuart.service ${D}${systemd_system_unitdir}/hciuart.service + fi +} + +FILES_${PN} = "\ + ${bindir} \ + ${sysconfdir} \ + ${systemd_unitdir}/system \ +" + +RDEPENDS_${PN} += " \ + udev-rules-rpi \ +" diff --git a/Contrib-Inspur/openbmc/meta-raspberrypi/recipes-connectivity/pi-bluetooth/pi-bluetooth_git.bb b/Contrib-Inspur/openbmc/meta-raspberrypi/recipes-connectivity/pi-bluetooth/pi-bluetooth_git.bb deleted file mode 100644 index b2401b93..00000000 --- a/Contrib-Inspur/openbmc/meta-raspberrypi/recipes-connectivity/pi-bluetooth/pi-bluetooth_git.bb +++ /dev/null @@ -1,46 +0,0 @@ -SUMMARY = "Script to properly configure BT-HCI on Raspberry Pi" -HOMEPAGE = "https://github.com/RPi-Distro/pi-bluetooth" -SECTION = "kernel" -LICENSE = "BSD-3-Clause" -LIC_FILES_CHKSUM = "\ - file://debian/copyright;md5=6af8de3c8ee71f8e91e9b22f84ff2022 \ -" - -SRC_URI = "\ - git://github.com/RPi-Distro/pi-bluetooth \ - file://0001-bthelper-correct-path-for-hciconfig-under-Yocto.patch \ -" -SRCREV = "2e1a393955910aea67bbf3c921be35a66e8a8fbe" -PV = "1.1+git${SRCPV}" - -S = "${WORKDIR}/git" - -# hciuart.service replaces what was brcm43438.service -inherit systemd -SYSTEMD_SERVICE_${PN} = "\ - hciuart.service \ - bthelper@.service \ -" - -inherit allarch - -do_install() { - install -d ${D}${sysconfdir}/udev/rules.d - install -m 0644 ${S}/lib/udev/rules.d/* ${D}${sysconfdir}/udev/rules.d - - install -d ${D}${bindir} - install -m 0755 ${S}/usr/bin/bthelper ${D}${bindir} - install -m 0755 ${S}/usr/bin/btuart ${D}${bindir} - - if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then - install -d ${D}${systemd_system_unitdir} - install -m 0644 ${S}/debian/pi-bluetooth.bthelper@.service ${D}${systemd_system_unitdir}/bthelper@.service - install -m 0644 ${S}/debian/pi-bluetooth.hciuart.service ${D}${systemd_system_unitdir}/hciuart.service - fi -} - -FILES_${PN} = "\ - ${bindir} \ - ${sysconfdir} \ - ${systemd_unitdir}/system \ -" diff --git a/Contrib-Inspur/openbmc/meta-raspberrypi/recipes-core/packagegroups/packagegroup-rpi-test.bb b/Contrib-Inspur/openbmc/meta-raspberrypi/recipes-core/packagegroups/packagegroup-rpi-test.bb index 91593469..852e3a60 100644 --- a/Contrib-Inspur/openbmc/meta-raspberrypi/recipes-core/packagegroups/packagegroup-rpi-test.bb +++ b/Contrib-Inspur/openbmc/meta-raspberrypi/recipes-core/packagegroups/packagegroup-rpi-test.bb @@ -11,15 +11,14 @@ OMXPLAYER = "${@bb.utils.contains('MACHINE_FEATURES', 'vc4graphics', '', 'omxpl RDEPENDS_${PN} = "\ ${OMXPLAYER} \ bcm2835-tests \ - wiringpi \ rpio \ rpi-gpio \ pi-blaster \ - python-rtimu \ - python-sense-hat \ + python3-rtimu \ + python3-sense-hat \ connman \ connman-client \ - crda \ + wireless-regdb \ bluez5 \ " diff --git a/Contrib-Inspur/openbmc/meta-raspberrypi/recipes-devtools/pi-blaster/files/0001-pi-blaster-Include-sys-sysmacros.h-for-makedev.patch b/Contrib-Inspur/openbmc/meta-raspberrypi/recipes-devtools/pi-blaster/files/0001-pi-blaster-Include-sys-sysmacros.h-for-makedev.patch deleted file mode 100644 index b4bc4b28..00000000 --- a/Contrib-Inspur/openbmc/meta-raspberrypi/recipes-devtools/pi-blaster/files/0001-pi-blaster-Include-sys-sysmacros.h-for-makedev.patch +++ /dev/null @@ -1,32 +0,0 @@ -From 6a6b705ff5cba960c54bdb4d4bcdaa3b00a854a2 Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Sat, 11 Aug 2018 10:24:24 -0700 -Subject: [PATCH] pi-blaster: Include sys/sysmacros.h for makedev() - -In glibc 2.28+ this header is not included indirectly anymore - -fixes - -ld: pi-blaster.o: in function `mbox_open': -pi-blaster.c:(.text+0x28): undefined reference to `makedev' -collect2: error: ld returned 1 exit status - -Upstream-Status: Submitted [https://github.com/sarfata/pi-blaster/pull/100] - -Signed-off-by: Khem Raj ---- - pi-blaster.c | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/pi-blaster.c b/pi-blaster.c -index 6cfd010..fc4e686 100644 ---- a/pi-blaster.c -+++ b/pi-blaster.c -@@ -41,6 +41,7 @@ static char VERSION[] = "SNAPSHOT"; - #include - #include - #include -+#include - #include - #include - #include "mailbox.h" diff --git a/Contrib-Inspur/openbmc/meta-raspberrypi/recipes-devtools/pi-blaster/pi-blaster_git.bb b/Contrib-Inspur/openbmc/meta-raspberrypi/recipes-devtools/pi-blaster/pi-blaster_git.bb index 9cedf5ec..fdaf16c8 100644 --- a/Contrib-Inspur/openbmc/meta-raspberrypi/recipes-devtools/pi-blaster/pi-blaster_git.bb +++ b/Contrib-Inspur/openbmc/meta-raspberrypi/recipes-devtools/pi-blaster/pi-blaster_git.bb @@ -2,16 +2,15 @@ DESCRIPTION = "This project enables PWM on the GPIO pins you request of a Raspbe HOMEPAGE = "https://github.com/sarfata/pi-blaster/" SECTION = "devel/libs" LICENSE = "MIT" -LIC_FILES_CHKSUM = "file://README.md;beginline=244;endline=268;md5=86d10e4bcf4b4014d306dde7c1d2a80d" +LIC_FILES_CHKSUM = "file://README.md;beginline=268;endline=292;md5=86d10e4bcf4b4014d306dde7c1d2a80d" SRC_URI = "git://github.com/sarfata/pi-blaster \ file://remove-initscript-lsb-dependency.patch \ - file://0001-pi-blaster-Include-sys-sysmacros.h-for-makedev.patch \ " S = "${WORKDIR}/git" -SRCREV = "e981aa5d7624c75a4d4afcddcbd235f25e32ffe4" +SRCREV = "befd8ef36e5066e4d444ef47fe4020787e541248" inherit update-rc.d autotools diff --git a/Contrib-Inspur/openbmc/meta-raspberrypi/recipes-devtools/python/python-rtimu_git.bb b/Contrib-Inspur/openbmc/meta-raspberrypi/recipes-devtools/python/python-rtimu_git.bb deleted file mode 100644 index 63c92b38..00000000 --- a/Contrib-Inspur/openbmc/meta-raspberrypi/recipes-devtools/python/python-rtimu_git.bb +++ /dev/null @@ -1,15 +0,0 @@ -DESCRIPTION = "RTIMULib is a C++ and Python library that makes it easy to use 9-dof and \ -10-dof IMUs with embedded Linux systems" -HOMEPAGE = "https://github.com/RPi-Distro/RTIMULib/" -SECTION = "devel/python" -LICENSE = "MIT" -LIC_FILES_CHKSUM = "file://../../LICENSE;md5=96cdecb41125f498958e09b72faf318e" - -SRC_URI = "git://github.com/RPi-Distro/RTIMULib.git;protocol=http;branch=master \ - file://0001-include-asm-ioctl.h-for-ioctl-define.patch;patchdir=../.. \ - " -SRCREV = "b949681af69b45f0f7f4bb53b6770037b5b02178" - -S = "${WORKDIR}/git/Linux/python/" - -inherit setuptools diff --git a/Contrib-Inspur/openbmc/meta-raspberrypi/recipes-devtools/python/python-sense-hat_2.2.0.bb b/Contrib-Inspur/openbmc/meta-raspberrypi/recipes-devtools/python/python-sense-hat_2.2.0.bb deleted file mode 100644 index f7c4e349..00000000 --- a/Contrib-Inspur/openbmc/meta-raspberrypi/recipes-devtools/python/python-sense-hat_2.2.0.bb +++ /dev/null @@ -1,24 +0,0 @@ -SUMMARY = "Python module to control the Raspberry Pi Sense HAT used in the Astro Pi mission" -HOMEPAGE = "https://github.com/RPi-Distro/python-sense-hat" -SECTION = "devel/python" -LICENSE = "BSD" -LIC_FILES_CHKSUM = "file://LICENCE.txt;md5=d80fe312e1ff5fbd97369b093bf21cda" - -inherit setuptools pypi - -PYPI_PACKAGE = "sense-hat" - -SRC_URI[md5sum] = "69929250cb72349a8a82edf2584b1d83" -SRC_URI[sha256sum] = "f000998d042d96ed722d459312e1bebd0107f9f3015cd34b3e4fabcab9c800af" - -DEPENDS += " \ - jpeg \ - zlib \ - freetype \ - " - -RDEPENDS_${PN} += " \ - python-numpy \ - python-rtimu \ - python-imaging \ - " diff --git a/Contrib-Inspur/openbmc/meta-raspberrypi/recipes-devtools/python/python-rtimu/0001-include-asm-ioctl.h-for-ioctl-define.patch b/Contrib-Inspur/openbmc/meta-raspberrypi/recipes-devtools/python/python3-rtimu/0001-include-asm-ioctl.h-for-ioctl-define.patch similarity index 100% rename from Contrib-Inspur/openbmc/meta-raspberrypi/recipes-devtools/python/python-rtimu/0001-include-asm-ioctl.h-for-ioctl-define.patch rename to Contrib-Inspur/openbmc/meta-raspberrypi/recipes-devtools/python/python3-rtimu/0001-include-asm-ioctl.h-for-ioctl-define.patch diff --git a/Contrib-Inspur/openbmc/meta-raspberrypi/recipes-devtools/python/python3-rtimu_git.bb b/Contrib-Inspur/openbmc/meta-raspberrypi/recipes-devtools/python/python3-rtimu_git.bb new file mode 100644 index 00000000..c0cb3110 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-raspberrypi/recipes-devtools/python/python3-rtimu_git.bb @@ -0,0 +1,15 @@ +DESCRIPTION = "RTIMULib is a C++ and Python library that makes it easy to use 9-dof and \ +10-dof IMUs with embedded Linux systems" +HOMEPAGE = "https://github.com/RPi-Distro/RTIMULib/" +SECTION = "devel/python" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://../../LICENSE;md5=96cdecb41125f498958e09b72faf318e" + +SRC_URI = "git://github.com/RPi-Distro/RTIMULib.git;protocol=http;branch=master \ + file://0001-include-asm-ioctl.h-for-ioctl-define.patch;patchdir=../.. \ + " +SRCREV = "b949681af69b45f0f7f4bb53b6770037b5b02178" + +S = "${WORKDIR}/git/Linux/python/" + +inherit setuptools3 diff --git a/Contrib-Inspur/openbmc/meta-raspberrypi/recipes-devtools/python/python3-sense-hat_2.2.0.bb b/Contrib-Inspur/openbmc/meta-raspberrypi/recipes-devtools/python/python3-sense-hat_2.2.0.bb new file mode 100644 index 00000000..5ea00142 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-raspberrypi/recipes-devtools/python/python3-sense-hat_2.2.0.bb @@ -0,0 +1,24 @@ +SUMMARY = "Python module to control the Raspberry Pi Sense HAT used in the Astro Pi mission" +HOMEPAGE = "https://github.com/RPi-Distro/python-sense-hat" +SECTION = "devel/python" +LICENSE = "BSD" +LIC_FILES_CHKSUM = "file://LICENCE.txt;md5=d80fe312e1ff5fbd97369b093bf21cda" + +inherit setuptools3 pypi + +PYPI_PACKAGE = "sense-hat" + +SRC_URI[md5sum] = "69929250cb72349a8a82edf2584b1d83" +SRC_URI[sha256sum] = "f000998d042d96ed722d459312e1bebd0107f9f3015cd34b3e4fabcab9c800af" + +DEPENDS += " \ + jpeg \ + zlib \ + freetype \ + " + +RDEPENDS_${PN} += " \ + ${PYTHON_PN}-numpy \ + ${PYTHON_PN}-rtimu \ + ${PYTHON_PN}-imaging \ + " diff --git a/Contrib-Inspur/openbmc/meta-raspberrypi/recipes-devtools/python/rpi-gpio/0001-Remove-nested-functions.patch b/Contrib-Inspur/openbmc/meta-raspberrypi/recipes-devtools/python/rpi-gpio/0001-Remove-nested-functions.patch index bd971793..5c94bc24 100644 --- a/Contrib-Inspur/openbmc/meta-raspberrypi/recipes-devtools/python/rpi-gpio/0001-Remove-nested-functions.patch +++ b/Contrib-Inspur/openbmc/meta-raspberrypi/recipes-devtools/python/rpi-gpio/0001-Remove-nested-functions.patch @@ -30,6 +30,8 @@ silence this warning uint32_t peri_base; Signed-off-by: Khem Raj +[Pierre-Jean: update for version 0.7.0] +Signed-off-by: Pierre-Jean Texier --- Upstream-Status: Submitted @@ -37,37 +39,6 @@ Upstream-Status: Submitted source/py_gpio.c | 135 ++++++++++++++++++++++++++++--------------------------- 2 files changed, 71 insertions(+), 70 deletions(-) -diff --git a/source/c_gpio.c b/source/c_gpio.c -index c96a2b0..b69880f 100644 ---- a/source/c_gpio.c -+++ b/source/c_gpio.c -@@ -61,7 +61,7 @@ int setup(void) - { - int mem_fd; - uint8_t *gpio_mem; -- uint32_t peri_base; -+ uint32_t peri_base = 0; - uint32_t gpio_base; - unsigned char buf[4]; - FILE *fp; -@@ -73,7 +73,7 @@ int setup(void) - if ((mem_fd = open("/dev/gpiomem", O_RDWR|O_SYNC)) > 0) - { - gpio_map = (uint32_t *)mmap(NULL, BLOCK_SIZE, PROT_READ|PROT_WRITE, MAP_SHARED, mem_fd, 0); -- if ((uint32_t)gpio_map < 0) { -+ if (gpio_map == MAP_FAILED) { - return SETUP_MMAP_FAIL; - } else { - return SETUP_OK; -@@ -127,7 +127,7 @@ int setup(void) - - gpio_map = (uint32_t *)mmap( (void *)gpio_mem, BLOCK_SIZE, PROT_READ|PROT_WRITE, MAP_SHARED|MAP_FIXED, mem_fd, gpio_base); - -- if ((uint32_t)gpio_map < 0) -+ if (gpio_map == MAP_FAILED) - return SETUP_MMAP_FAIL; - - return SETUP_OK; diff --git a/source/py_gpio.c b/source/py_gpio.c index d54cc7f..007bad5 100644 --- a/source/py_gpio.c diff --git a/Contrib-Inspur/openbmc/meta-raspberrypi/recipes-devtools/python/rpi-gpio_0.6.3.bb b/Contrib-Inspur/openbmc/meta-raspberrypi/recipes-devtools/python/rpi-gpio_0.6.3.bb deleted file mode 100644 index d0ff00af..00000000 --- a/Contrib-Inspur/openbmc/meta-raspberrypi/recipes-devtools/python/rpi-gpio_0.6.3.bb +++ /dev/null @@ -1,14 +0,0 @@ -DESCRIPTION = "A module to control Raspberry Pi GPIO channels" -HOMEPAGE = "http://code.google.com/p/raspberry-gpio-python/" -SECTION = "devel/python" -LICENSE = "MIT" -LIC_FILES_CHKSUM = "file://LICENCE.txt;md5=9b95630a648966b142f1a0dcea001cb7" - -PYPI_PACKAGE = "RPi.GPIO" -inherit pypi distutils - -SRC_URI += "file://0001-Remove-nested-functions.patch" -SRC_URI[md5sum] = "e4abe1cfb5eacebe53078032256eb837" -SRC_URI[sha256sum] = "a5fc0eb5e401963b6c0a03650da6b42c4005f02d962b81241d96c98d0a578516" - -COMPATIBLE_MACHINE = "^rpi$" diff --git a/Contrib-Inspur/openbmc/meta-raspberrypi/recipes-devtools/python/rpi-gpio_0.7.0.bb b/Contrib-Inspur/openbmc/meta-raspberrypi/recipes-devtools/python/rpi-gpio_0.7.0.bb new file mode 100644 index 00000000..fcce88f8 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-raspberrypi/recipes-devtools/python/rpi-gpio_0.7.0.bb @@ -0,0 +1,14 @@ +DESCRIPTION = "A module to control Raspberry Pi GPIO channels" +HOMEPAGE = "https://sourceforge.net/projects/raspberry-gpio-python/" +SECTION = "devel/python" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://LICENCE.txt;md5=9b95630a648966b142f1a0dcea001cb7" + +PYPI_PACKAGE = "RPi.GPIO" +inherit pypi distutils3 + +SRC_URI += "file://0001-Remove-nested-functions.patch" +SRC_URI[md5sum] = "777617f9dea9a1680f9af43db0cf150e" +SRC_URI[sha256sum] = "7424bc6c205466764f30f666c18187a0824077daf20b295c42f08aea2cb87d3f" + +COMPATIBLE_MACHINE = "^rpi$" diff --git a/Contrib-Inspur/openbmc/meta-raspberrypi/recipes-devtools/raspi-gpio/raspi-gpio_git.bb b/Contrib-Inspur/openbmc/meta-raspberrypi/recipes-devtools/raspi-gpio/raspi-gpio_git.bb index 0de775c7..02a3f558 100644 --- a/Contrib-Inspur/openbmc/meta-raspberrypi/recipes-devtools/raspi-gpio/raspi-gpio_git.bb +++ b/Contrib-Inspur/openbmc/meta-raspberrypi/recipes-devtools/raspi-gpio/raspi-gpio_git.bb @@ -8,7 +8,7 @@ COMPATIBLE_MACHINE = "^rpi$" inherit autotools -SRCREV = "2df7b8684e2e36b080cda315d78d5ba16f8f18b0" +SRCREV = "4edfde183ff3ac9ed66cdc015ae25e45f3a5502d" SRC_URI = "git://github.com/RPi-Distro/raspi-gpio.git;protocol=https;branch=master \ " diff --git a/Contrib-Inspur/openbmc/meta-raspberrypi/recipes-devtools/wiringpi/files/0001-Add-initial-cross-compile-support.patch b/Contrib-Inspur/openbmc/meta-raspberrypi/recipes-devtools/wiringpi/files/0001-Add-initial-cross-compile-support.patch deleted file mode 100644 index be3d9eeb..00000000 --- a/Contrib-Inspur/openbmc/meta-raspberrypi/recipes-devtools/wiringpi/files/0001-Add-initial-cross-compile-support.patch +++ /dev/null @@ -1,415 +0,0 @@ -From 32f3cad3c41161693659a902062fa0c01c0338ed Mon Sep 17 00:00:00 2001 -From: ErikHH -Date: Thu, 20 Dec 2018 15:33:45 +0100 -Subject: [PATCH 1/1] Add initial cross compile support - -Signed-off-by: ErikHH ---- - devLib/Makefile | 55 +++++++++++++++++++++---------------- - examples/Gertboard/Makefile | 22 +++++++++------ - examples/Makefile | 22 +++++++++------ - examples/PiFace/Makefile | 22 +++++++++------ - examples/PiGlow/Makefile | 4 +-- - examples/q2w/Makefile | 4 +-- - gpio/Makefile | 29 +++++++++---------- - wiringPi/Makefile | 47 +++++++++++++++++-------------- - 8 files changed, 119 insertions(+), 86 deletions(-) - -diff --git a/devLib/Makefile b/devLib/Makefile -index cf665d6..d193a9d 100644 ---- a/devLib/Makefile -+++ b/devLib/Makefile -@@ -22,6 +22,7 @@ - ################################################################################# - - VERSION=$(shell cat ../VERSION) -+DYN_VERS_MAJ=$(word 1,$(subst ., ,$(VERSION))) - DESTDIR?=/usr - PREFIX?=/local - -@@ -31,15 +32,19 @@ ifneq ($V,1) - Q ?= @ - endif - --STATIC=libwiringPiDev.a --DYNAMIC=libwiringPiDev.so.$(VERSION) -+INCLUDE_DIR?=$(DESTDIR)$(PREFIX)/include -+LIB_DIR?=$(DESTDIR)$(PREFIX)/lib - --#DEBUG = -g -O0 --DEBUG = -O2 --CC = gcc --INCLUDE = -I. --DEFS = -D_GNU_SOURCE --CFLAGS = $(DEBUG) $(DEFS) -Wformat=2 -Wall -Winline $(INCLUDE) -pipe -fPIC -+BASE_NAME=libwiringPiDev -+STATIC=$(BASE_NAME).a -+DYNAMIC=$(BASE_NAME).so.$(VERSION) -+ -+#DEBUG ?= -g -O0 -+DEBUG ?= -O2 -+CC ?= gcc -+INCLUDE ?= -I. -+DEFS ?= -D_GNU_SOURCE -+CFLAGS ?= $(DEBUG) $(DEFS) -Wformat=2 -Wall -Winline $(INCLUDE) -pipe -fPIC - - LIBS = - -@@ -68,16 +73,16 @@ $(STATIC): $(OBJ) - - $(DYNAMIC): $(OBJ) - $Q echo "[Link (Dynamic)]" -- $Q $(CC) -shared -Wl,-soname,libwiringPiDev.so$(WIRINGPI_SONAME_SUFFIX) -o libwiringPiDev.so.$(VERSION) -lpthread $(OBJ) -+ $Q $(CC) -shared $(LDFLAGS) -Wl,-soname,$(BASE_NAME).so.$(DYN_VERS_MAJ) -o $(BASE_NAME).so -lpthread $(OBJ) - - .c.o: - $Q echo [Compile] $< -- $Q $(CC) -c $(CFLAGS) $< -o $@ -+ $Q $(CC) -c $(CFLAGS) -fPIC $< -o $@ - - .PHONY: clean - clean: - $Q echo "[Clean]" -- $Q rm -f $(OBJ) $(OBJ_I2C) *~ core tags Makefile.bak libwiringPiDev.* -+ $Q rm -f $(OBJ) $(OBJ_I2C) *~ core tags Makefile.bak $(BASE_NAME).so* $(BASE_NAME).a - - .PHONY: tags - tags: $(SRC) -@@ -88,22 +93,22 @@ tags: $(SRC) - .PHONY: install - install: $(DYNAMIC) - $Q echo "[Install Headers]" -- $Q install -m 0755 -d $(DESTDIR)$(PREFIX)/include -- $Q install -m 0644 $(HEADERS) $(DESTDIR)$(PREFIX)/include -+ $Q install -m 0755 -d $(INCLUDE_DIR) -+ $Q install -m 0644 $(HEADERS) $(INCLUDE_DIR) - $Q echo "[Install Dynamic Lib]" -- $Q install -m 0755 -d $(DESTDIR)$(PREFIX)/lib -- $Q install -m 0755 libwiringPiDev.so.$(VERSION) $(DESTDIR)$(PREFIX)/lib/libwiringPiDev.so.$(VERSION) -- $Q ln -sf $(DESTDIR)$(PREFIX)/lib/libwiringPiDev.so.$(VERSION) $(DESTDIR)/lib/libwiringPiDev.so -- $Q $(LDCONFIG) -+ $Q install -m 0755 -d $(LIB_DIR) -+ $Q install -m 0755 $(BASE_NAME).so $(LIB_DIR)/$(DYNAMIC) -+ $Q ln -sf $(DYNAMIC) $(LIB_DIR)/$(BASE_NAME).so -+ $Q ln -sf $(DYNAMIC) $(LIB_DIR)/$(BASE_NAME).so.$(DYN_VERS_MAJ) - - .PHONY: install-static - install-static: $(STATIC) - $Q echo "[Install Headers]" -- $Q install -m 0755 -d $(DESTDIR)$(PREFIX)/include -- $Q install -m 0644 $(HEADERS) $(DESTDIR)$(PREFIX)/include -+ $Q install -m 0755 -d $(INCLUDE_DIR) -+ $Q install -m 0644 $(HEADERS) $(INCLUDE_DIR) - $Q echo "[Install Static Lib]" -- $Q install -m 0755 -d $(DESTDIR)$(PREFIX)/lib -- $Q install -m 0755 libwiringPiDev.a $(DESTDIR)$(PREFIX)/lib -+ $Q install -m 0755 -d $(LIB_DIR) -+ $Q install -m 0755 $(STATIC) $(LIB_DIR) - - .PHONY: install-deb - install-deb: $(DYNAMIC) -@@ -118,9 +123,11 @@ install-deb: $(DYNAMIC) - .PHONY: uninstall - uninstall: - $Q echo "[UnInstall]" -- $Q cd $(DESTDIR)$(PREFIX)/include/ && rm -f $(HEADERS) -- $Q cd $(DESTDIR)$(PREFIX)/lib/ && rm -f libwiringPiDev.* -- $Q $(LDCONFIG) -+ $Q cd $(INCLUDE_DIR) && rm -f $(HEADERS) -+ $Q rm -f $(LIB_DIR)/$(STATIC) -+ $Q rm -f $(LIB_DIR)/$(DYNAMIC) -+ $Q rm -f $(LIB_DIR)/$(BASE_NAME).so -+ $Q rm -f $(LIB_DIR)/$(BASE_NAME).so.$(DYN_VERS_MAJ) - - - .PHONY: depend -diff --git a/examples/Gertboard/Makefile b/examples/Gertboard/Makefile -index 1939ad6..98d1415 100644 ---- a/examples/Gertboard/Makefile -+++ b/examples/Gertboard/Makefile -@@ -9,14 +9,20 @@ ifneq ($V,1) - Q ?= @ - endif - --#DEBUG = -g -O0 --DEBUG = -O3 --CC = gcc --INCLUDE = -I/usr/local/include --CFLAGS = $(DEBUG) -Wall $(INCLUDE) -Winline -pipe -- --LDFLAGS = -L/usr/local/lib --LDLIBS = -lwiringPi -lwiringPiDev -lpthread -lm -+DESTDIR?=/usr -+PREFIX?=/local -+ -+INCLUDE_DIR?=$(DESTDIR)$(PREFIX)/include -+LIB_DIR?=$(DESTDIR)$(PREFIX)/lib -+ -+#DEBUG ?= -g -O0 -+DEBUG ?= -O3 -+CC ?= gcc -+INCLUDE ?= -I$(INCLUDE_DIR) -+CFLAGS ?= $(DEBUG) -Wall $(INCLUDE) -Winline -pipe -+ -+LDFLAGS ?= -L$(LIB_DIR) -+LDLIBS ?= -lwiringPi -lwiringPiDev -lpthread -lm - - # Should not alter anything below this line - ############################################################################### -diff --git a/examples/Makefile b/examples/Makefile -index 6d87885..8623816 100644 ---- a/examples/Makefile -+++ b/examples/Makefile -@@ -26,14 +26,20 @@ ifneq ($V,1) - Q ?= @ - endif - --#DEBUG = -g -O0 --DEBUG = -O3 --CC = gcc --INCLUDE = -I/usr/local/include --CFLAGS = $(DEBUG) -Wall $(INCLUDE) -Winline -pipe -- --LDFLAGS = -L/usr/local/lib --LDLIBS = -lwiringPi -lwiringPiDev -lpthread -lm -lcrypt -lrt -+DESTDIR?=/usr -+PREFIX?=/local -+ -+INCLUDE_DIR?=$(DESTDIR)$(PREFIX)/include -+LIB_DIR?=$(DESTDIR)$(PREFIX)/lib -+ -+#DEBUG ?= -g -O0 -+DEBUG ?= -O3 -+CC ?= gcc -+INCLUDE ?= -I$(INCLUDE_DIR) -+CFLAGS ?= $(DEBUG) -Wall $(INCLUDE) -Winline -pipe -+ -+LDFLAGS ?= -L$(LIB_DIR) -+LDLIBS ?= -lwiringPi -lwiringPiDev -lpthread -lm -lcrypt -lrt - - # Should not alter anything below this line - ############################################################################### -diff --git a/examples/PiFace/Makefile b/examples/PiFace/Makefile -index f937c14..ad030b3 100644 ---- a/examples/PiFace/Makefile -+++ b/examples/PiFace/Makefile -@@ -26,14 +26,20 @@ ifneq ($V,1) - Q ?= @ - endif - --#DEBUG = -g -O0 --DEBUG = -O3 --CC = gcc --INCLUDE = -I/usr/local/include --CFLAGS = $(DEBUG) -Wall $(INCLUDE) -Winline -pipe -- --LDFLAGS = -L/usr/local/lib --LDLIBS = -lwiringPi -lwiringPiDev -lpthread -lm -+DESTDIR?=/usr -+PREFIX?=/local -+ -+INCLUDE_DIR?=$(DESTDIR)$(PREFIX)/include -+LIB_DIR?=$(DESTDIR)$(PREFIX)/lib -+ -+#DEBUG ?= -g -O0 -+DEBUG ?= -O3 -+CC ?= gcc -+INCLUDE ?= -I$(INCLUDE_DIR) -+CFLAGS ?= $(DEBUG) -Wall $(INCLUDE) -Winline -pipe -+ -+LDFLAGS ?= -L$(LIB_DIR) -+LDLIBS ?= -lwiringPi -lwiringPiDev -lpthread -lm - - # Should not alter anything below this line - ############################################################################### -diff --git a/examples/PiGlow/Makefile b/examples/PiGlow/Makefile -index f182db7..d1ea74f 100644 ---- a/examples/PiGlow/Makefile -+++ b/examples/PiGlow/Makefile -@@ -29,10 +29,10 @@ endif - #DEBUG = -g -O0 - DEBUG = -O3 - CC = gcc --INCLUDE = -I/usr/local/include -+INCLUDE = -I../wiringPi -I../wiringPiDev - CFLAGS = $(DEBUG) -Wall $(INCLUDE) -Winline -pipe - --LDFLAGS = -L/usr/local/lib -+LDFLAGS = -L../wiringPi -L../wiringPiDev - LDLIBS = -lwiringPi -lwiringPiDev -lpthread -lm - - # Should not alter anything below this line -diff --git a/examples/q2w/Makefile b/examples/q2w/Makefile -index 8f773bf..14aa6e4 100644 ---- a/examples/q2w/Makefile -+++ b/examples/q2w/Makefile -@@ -29,10 +29,10 @@ endif - #DEBUG = -g -O0 - DEBUG = -O3 - CC = gcc --INCLUDE = -I/usr/local/include -+INCLUDE = -I../wiringPi -I../devLib - CFLAGS = $(DEBUG) -Wall $(INCLUDE) -Winline -pipe - --LDFLAGS = -L/usr/local/lib -+LDFLAGS = -L../wiringPi -L../devLib - LDLIBS = -lwiringPi -lwiringPiDev -lpthread -lm - - ############################################################################### -diff --git a/gpio/Makefile b/gpio/Makefile -index 9ec160d..a294242 100644 ---- a/gpio/Makefile -+++ b/gpio/Makefile -@@ -30,13 +30,17 @@ ifneq ($V,1) - Q ?= @ - endif - --#DEBUG = -g -O0 --DEBUG = -O2 --CC = gcc --INCLUDE = -I$(DESTDIR)$(PREFIX)/include --CFLAGS = $(DEBUG) -Wall -Wextra $(INCLUDE) -Winline -pipe -+INCLUDE_DIR?=$(DESTDIR)$(PREFIX)/include -+LIB_DIR?=$(DESTDIR)$(PREFIX)/lib -+BIN_DIR?=$(DESTDIR)$(PREFIX)/bin - --LDFLAGS = -L$(DESTDIR)$(PREFIX)/lib -+#DEBUG ?= -g -O0 -+DEBUG ?= -O2 -+CC ?= gcc -+INCLUDE ?= -I$(INCLUDE_DIR) -+CFLAGS ?= $(DEBUG) -Wall -Wextra $(INCLUDE) -Winline -pipe -+ -+LDFLAGS ?= -L$(LIB_DIR) - LIBS = -lwiringPi -lwiringPiDev -lpthread -lrt -lm -lcrypt - - # May not need to alter anything below this line -@@ -72,13 +76,10 @@ tags: $(SRC) - .PHONY: install - install: gpio - $Q echo "[Install]" -- $Q cp gpio $(DESTDIR)$(PREFIX)/bin --ifneq ($(WIRINGPI_SUID),0) -- $Q chown root.root $(DESTDIR)$(PREFIX)/bin/gpio -- $Q chmod 4755 $(DESTDIR)$(PREFIX)/bin/gpio --endif -- $Q mkdir -p $(DESTDIR)$(PREFIX)/share/man/man1 -- $Q cp gpio.1 $(DESTDIR)$(PREFIX)/share/man/man1 -+ $Q install -d $(BIN_DIR) -+ $Q install -m 4755 -o root -g root gpio $(BIN_DIR) -+ $Q install -d $(DESTDIR)$(PREFIX)/share/man/man1 -+ $Q install -m 644 -o root -g root gpio.1 $(DESTDIR)$(PREFIX)/share/man/man1 - - .PHONY: install-deb - install-deb: gpio -@@ -91,7 +92,7 @@ install-deb: gpio - .PHONY: uninstall - uninstall: - $Q echo "[UnInstall]" -- $Q rm -f $(DESTDIR)$(PREFIX)/bin/gpio -+ $Q rm -f $(BIN_DIR)/gpio - $Q rm -f $(DESTDIR)$(PREFIX)/share/man/man1/gpio.1 - - .PHONY: depend -diff --git a/wiringPi/Makefile b/wiringPi/Makefile -index 287fa58..3423d3f 100644 ---- a/wiringPi/Makefile -+++ b/wiringPi/Makefile -@@ -22,25 +22,30 @@ - ################################################################################# - - VERSION=$(shell cat ../VERSION) -+DYN_VERS_MAJ=$(word 1,$(subst ., ,$(VERSION))) - DESTDIR?=/usr - PREFIX?=/local - -+INCLUDE_DIR?=$(DESTDIR)$(PREFIX)/include -+LIB_DIR?=$(DESTDIR)$(PREFIX)/lib -+ - LDCONFIG?=ldconfig - - ifneq ($V,1) - Q ?= @ - endif - --STATIC=libwiringPi.a --DYNAMIC=libwiringPi.so.$(VERSION) -+BASE_NAME=libwiringPi -+STATIC=$(BASE_NAME).a -+DYNAMIC=$(BASE_NAME).so.$(VERSION) - --#DEBUG = -g -O0 --DEBUG = -O2 --CC = gcc --INCLUDE = -I. -+#DEBUG ?= -g -O0 -+DEBUG ?= -O2 -+CC ?= gcc -+INCLUDE ?= -I. - DEFS = -D_GNU_SOURCE --CFLAGS = $(DEBUG) $(DEFS) -Wformat=2 -Wall -Wextra -Winline $(INCLUDE) -pipe -fPIC --#CFLAGS = $(DEBUG) $(DEFS) -Wformat=2 -Wall -Wextra -Wconversion -Winline $(INCLUDE) -pipe -fPIC -+CFLAGS = $(DEBUG) $(DEFS) $(INCLUDE) -Wformat=2 -Wall -Wextra -Winline -pipe -fPIC -+#CFLAGS = $(DEBUG) $(DEFS) $(INCLUDE) -Wformat=2 -Wall -Wextra -Wconversion -Winline -pipe -fPIC - - LIBS = -lm -lpthread -lrt -lcrypt - -@@ -75,17 +80,17 @@ static: - - $(DYNAMIC): $(OBJ) - $Q echo "[Link (Dynamic)]" -- $Q $(CC) -shared -Wl,-soname,libwiringPi.so$(WIRINGPI_SONAME_SUFFIX) -o libwiringPi.so.$(VERSION) $(LIBS) $(OBJ) -+ $Q $(CC) $(LDFLAGS) -shared -Wl,-soname,$(BASE_NAME).so.$(DYN_VERS_MAJ) -o $(BASE_NAME).so $(OBJ) $(LIBS) - - .c.o: - $Q echo [Compile] $< -- $Q $(CC) -c $(CFLAGS) $< -o $@ -+ $Q $(CC) $(CFLAGS) $(LIBS) -c $< -o $@ - - - .PHONY: clean - clean: - $Q echo "[Clean]" -- $Q rm -f $(OBJ) $(OBJ_I2C) *~ core tags Makefile.bak libwiringPi.* -+ $Q rm -f $(OBJ) $(OBJ_I2C) *~ core tags Makefile.bak $(BASE_NAME).so* $(BASE_NAME).a - - .PHONY: tags - tags: $(SRC) -@@ -96,13 +101,13 @@ tags: $(SRC) - .PHONY: install - install: $(DYNAMIC) - $Q echo "[Install Headers]" -- $Q install -m 0755 -d $(DESTDIR)$(PREFIX)/include -- $Q install -m 0644 $(HEADERS) $(DESTDIR)$(PREFIX)/include -+ $Q install -m 0755 -d $(INCLUDE_DIR) -+ $Q install -m 0644 $(HEADERS) $(INCLUDE_DIR) - $Q echo "[Install Dynamic Lib]" -- $Q install -m 0755 -d $(DESTDIR)$(PREFIX)/lib -- $Q install -m 0755 libwiringPi.so.$(VERSION) $(DESTDIR)$(PREFIX)/lib/libwiringPi.so.$(VERSION) -- $Q ln -sf $(DESTDIR)$(PREFIX)/lib/libwiringPi.so.$(VERSION) $(DESTDIR)/lib/libwiringPi.so -- $Q $(LDCONFIG) -+ $Q install -m 0755 -d $(LIB_DIR) -+ $Q install -m 0755 $(BASE_NAME).so $(LIB_DIR)/$(DYNAMIC) -+ $Q ln -sf $(DYNAMIC) $(LIB_DIR)/$(BASE_NAME).so -+ $Q ln -sf $(DYNAMIC) $(LIB_DIR)/$(BASE_NAME).so.$(DYN_VERS_MAJ) - - .PHONY: install-deb - install-deb: $(DYNAMIC) -@@ -117,9 +122,11 @@ install-deb: $(DYNAMIC) - .PHONY: uninstall - uninstall: - $Q echo "[UnInstall]" -- $Q cd $(DESTDIR)$(PREFIX)/include/ && rm -f $(HEADERS) -- $Q cd $(DESTDIR)$(PREFIX)/lib/ && rm -f libwiringPi.* -- $Q $(LDCONFIG) -+ $Q cd $(INCLUDE_DIR) && rm -f $(HEADERS) -+ $Q rm -f $(LIB_DIR)/$(STATIC) -+ $Q rm -f $(LIB_DIR)/$(DYNAMIC) -+ $Q rm -f $(LIB_DIR)/$(BASE_NAME).so -+ $Q rm -f $(LIB_DIR)/$(BASE_NAME).so.$(DYN_VERS_MAJ) - - - .PHONY: depend --- -2.19.1 - diff --git a/Contrib-Inspur/openbmc/meta-raspberrypi/recipes-devtools/wiringpi/wiringpi_git.bb b/Contrib-Inspur/openbmc/meta-raspberrypi/recipes-devtools/wiringpi/wiringpi_git.bb deleted file mode 100644 index e78c58a2..00000000 --- a/Contrib-Inspur/openbmc/meta-raspberrypi/recipes-devtools/wiringpi/wiringpi_git.bb +++ /dev/null @@ -1,35 +0,0 @@ -DESCRIPTION = "A library to control Raspberry Pi GPIO channels" -HOMEPAGE = "https://projects.drogon.net/raspberry-pi/wiringpi/" -SECTION = "devel/libs" -LICENSE = "LGPLv3+" -LIC_FILES_CHKSUM = "file://COPYING.LESSER;md5=e6a600fd5e1d9cbde2d983680233ad02" - -DEPENDS += "virtual/crypt" - -# tag 2.46 -SRCREV = "8d188fa0e00bb8c6ff6eddd07bf92857e9bd533a" - -S = "${WORKDIR}/git" - -SRC_URI = "git://git.drogon.net/wiringPi \ - file://0001-Add-initial-cross-compile-support.patch \ - " - -COMPATIBLE_MACHINE = "^rpi$" - -CFLAGS_prepend = "-I${S}/wiringPi -I${S}/devLib " - -EXTRA_OEMAKE += "'INCLUDE_DIR=${D}${includedir}' 'LIB_DIR=${D}${libdir}'" -EXTRA_OEMAKE += "'DESTDIR=${D}/usr' 'PREFIX=""'" - -do_compile() { - oe_runmake -C devLib - oe_runmake -C wiringPi - oe_runmake -C gpio 'LDFLAGS=${LDFLAGS} -L${S}/wiringPi -L${S}/devLib' -} - -do_install() { - oe_runmake -C devLib install - oe_runmake -C wiringPi install - oe_runmake -C gpio install -} diff --git a/Contrib-Inspur/openbmc/meta-raspberrypi/recipes-graphics/eglinfo/eglinfo-fb_%.bbappend b/Contrib-Inspur/openbmc/meta-raspberrypi/recipes-graphics/eglinfo/eglinfo-fb_%.bbappend deleted file mode 100644 index c152bd97..00000000 --- a/Contrib-Inspur/openbmc/meta-raspberrypi/recipes-graphics/eglinfo/eglinfo-fb_%.bbappend +++ /dev/null @@ -1,2 +0,0 @@ -EGLINFO_DEVICE_rpi = "raspberrypi" -COMPATIBLE_HOST_rpi = "${@bb.utils.contains('MACHINE_FEATURES', 'vc4graphics', 'null', '(.*)', d)}" diff --git a/Contrib-Inspur/openbmc/meta-raspberrypi/recipes-graphics/eglinfo/eglinfo-x11_%.bbappend b/Contrib-Inspur/openbmc/meta-raspberrypi/recipes-graphics/eglinfo/eglinfo-x11_%.bbappend deleted file mode 100644 index 2d720baa..00000000 --- a/Contrib-Inspur/openbmc/meta-raspberrypi/recipes-graphics/eglinfo/eglinfo-x11_%.bbappend +++ /dev/null @@ -1,2 +0,0 @@ -EGLINFO_DEVICE_rpi = "${@bb.utils.contains('MACHINE_FEATURES', 'vc4graphics', 'generic', 'raspberrypi', d)}" -ASNEEDED = "" diff --git a/Contrib-Inspur/openbmc/meta-raspberrypi/recipes-graphics/mesa/mesa_%.bbappend b/Contrib-Inspur/openbmc/meta-raspberrypi/recipes-graphics/mesa/mesa_%.bbappend index 8152cc3e..eaa46f27 100644 --- a/Contrib-Inspur/openbmc/meta-raspberrypi/recipes-graphics/mesa/mesa_%.bbappend +++ b/Contrib-Inspur/openbmc/meta-raspberrypi/recipes-graphics/mesa/mesa_%.bbappend @@ -2,6 +2,5 @@ # With oe-core commit 8509e2e1a87578882b71948ccef3b50ccf1228b3 dri3 is set # as default. To state out clearly that Raspi needs dri3 and to avoid surprises # in case oe-core changes this default, we set dri3 explicitly. -PACKAGECONFIG_append_rpi = " gallium ${@bb.utils.contains('DISTRO_FEATURES', 'x11 opengl', 'x11 dri3', '', d)}" -GALLIUMDRIVERS_append_rpi = ",vc4" -DRIDRIVERS_rpi = "" +PACKAGECONFIG_append_rpi = " gallium vc4 v3d kmsro ${@bb.utils.contains('DISTRO_FEATURES', 'x11 opengl', 'x11 dri3', '', d)}" +DRIDRIVERS_class-target_rpi = "" diff --git a/Contrib-Inspur/openbmc/meta-raspberrypi/recipes-graphics/userland/files/0001-Allow-applications-to-set-next-resource-handle.patch b/Contrib-Inspur/openbmc/meta-raspberrypi/recipes-graphics/userland/files/0001-Allow-applications-to-set-next-resource-handle.patch index b2bd46f6..af803a3d 100644 --- a/Contrib-Inspur/openbmc/meta-raspberrypi/recipes-graphics/userland/files/0001-Allow-applications-to-set-next-resource-handle.patch +++ b/Contrib-Inspur/openbmc/meta-raspberrypi/recipes-graphics/userland/files/0001-Allow-applications-to-set-next-resource-handle.patch @@ -1,7 +1,7 @@ -From e94675aa943c114ff801167c69bdd2d366d01665 Mon Sep 17 00:00:00 2001 +From ccb7f6f1a2bc491a24c0402616a2d24b85e3933a Mon Sep 17 00:00:00 2001 From: Dom Cobley Date: Tue, 9 Jul 2013 09:26:26 -0400 -Subject: [PATCH 01/18] Allow applications to set next resource handle +Subject: [PATCH 01/19] Allow applications to set next resource handle This patch adds provisions in userland to let apps callers set the next rendereing dispmanx resource. @@ -204,5 +204,5 @@ index 8a5734c..51b3580 100644 FN(void, eglIntGetColorData_impl, (EGL_SURFACE_ID_T s, KHRN_IMAGE_FORMAT_T format, uint32_t width, uint32_t height, int32_t stride, uint32_t y_offset, void *data)) -- -2.21.0 +2.22.0 diff --git a/Contrib-Inspur/openbmc/meta-raspberrypi/recipes-graphics/userland/files/0002-wayland-Add-support-for-the-Wayland-winsys.patch b/Contrib-Inspur/openbmc/meta-raspberrypi/recipes-graphics/userland/files/0002-wayland-Add-support-for-the-Wayland-winsys.patch index 5efc7a4d..8ce9090c 100644 --- a/Contrib-Inspur/openbmc/meta-raspberrypi/recipes-graphics/userland/files/0002-wayland-Add-support-for-the-Wayland-winsys.patch +++ b/Contrib-Inspur/openbmc/meta-raspberrypi/recipes-graphics/userland/files/0002-wayland-Add-support-for-the-Wayland-winsys.patch @@ -1,7 +1,7 @@ -From ad6f485d9eb809b67398ce0948844dd30ea1c8e3 Mon Sep 17 00:00:00 2001 +From 7432d49ddca97b34e402d0108221d34ec69bcd66 Mon Sep 17 00:00:00 2001 From: Tomeu Vizoso Date: Tue, 1 Oct 2013 13:19:20 +0200 -Subject: [PATCH 02/18] wayland: Add support for the Wayland winsys +Subject: [PATCH 02/19] wayland: Add support for the Wayland winsys * Adds EGL_WL_bind_wayland_display extension * Adds wayland-egl library @@ -1551,12 +1551,12 @@ index 0000000..8bafc15 +Libs: -L${libdir} -lwayland-egl +Cflags: -I${includedir} diff --git a/interface/vmcs_host/CMakeLists.txt b/interface/vmcs_host/CMakeLists.txt -index fde18da..6718215 100755 +index a157db1..55b6ace 100755 --- a/interface/vmcs_host/CMakeLists.txt +++ b/interface/vmcs_host/CMakeLists.txt -@@ -9,13 +9,24 @@ add_definitions(-fno-strict-aliasing) - - include_directories(${VMCS_TARGET}/vcfiled) +@@ -7,13 +7,24 @@ + # vc_vchi_gencmd.c has a type-punning problem in vc_gencmd_read_response + add_definitions(-fno-strict-aliasing) -add_library(vchostif - ${VMCS_TARGET}/vcfilesys.c ${VMCS_TARGET}/vcmisc.c @@ -1894,5 +1894,5 @@ index 0000000..ad90d30 + set(${_sources} ${${_sources}} PARENT_SCOPE) +endfunction() -- -2.21.0 +2.22.0 diff --git a/Contrib-Inspur/openbmc/meta-raspberrypi/recipes-graphics/userland/files/0003-wayland-Add-Wayland-example.patch b/Contrib-Inspur/openbmc/meta-raspberrypi/recipes-graphics/userland/files/0003-wayland-Add-Wayland-example.patch index ba83db8c..3da0f50d 100644 --- a/Contrib-Inspur/openbmc/meta-raspberrypi/recipes-graphics/userland/files/0003-wayland-Add-Wayland-example.patch +++ b/Contrib-Inspur/openbmc/meta-raspberrypi/recipes-graphics/userland/files/0003-wayland-Add-Wayland-example.patch @@ -1,7 +1,7 @@ -From 642110bbc9ebcb9ad497f4f1c1ccbc5a9afda753 Mon Sep 17 00:00:00 2001 +From 481a9aeba3f84371668fdf8a1380a3cb23bfc502 Mon Sep 17 00:00:00 2001 From: Tomeu Vizoso Date: Tue, 1 Oct 2013 13:19:20 +0200 -Subject: [PATCH 03/18] wayland: Add Wayland example +Subject: [PATCH 03/19] wayland: Add Wayland example --- .../linux/apps/hello_pi/CMakeLists.txt | 1 + @@ -19,10 +19,10 @@ Subject: [PATCH 03/18] wayland: Add Wayland example create mode 100644 host_applications/linux/apps/hello_pi/hello_wayland/triangle.c diff --git a/host_applications/linux/apps/hello_pi/CMakeLists.txt b/host_applications/linux/apps/hello_pi/CMakeLists.txt -index f2c6aef..0df78f7 100644 +index b28a94a..2849fad 100644 --- a/host_applications/linux/apps/hello_pi/CMakeLists.txt +++ b/host_applications/linux/apps/hello_pi/CMakeLists.txt -@@ -21,6 +21,7 @@ add_subdirectory(hello_encode) +@@ -25,6 +25,7 @@ add_subdirectory(hello_encode) add_subdirectory(hello_jpeg) add_subdirectory(hello_videocube) add_subdirectory(hello_teapot) @@ -862,5 +862,5 @@ index 8225dd5..0be6ce7 100755 - +make -C hello_wayland -- -2.21.0 +2.22.0 diff --git a/Contrib-Inspur/openbmc/meta-raspberrypi/recipes-graphics/userland/files/0004-wayland-egl-Add-bcm_host-to-dependencies.patch b/Contrib-Inspur/openbmc/meta-raspberrypi/recipes-graphics/userland/files/0004-wayland-egl-Add-bcm_host-to-dependencies.patch index c806e7b6..9ca6b9f8 100644 --- a/Contrib-Inspur/openbmc/meta-raspberrypi/recipes-graphics/userland/files/0004-wayland-egl-Add-bcm_host-to-dependencies.patch +++ b/Contrib-Inspur/openbmc/meta-raspberrypi/recipes-graphics/userland/files/0004-wayland-egl-Add-bcm_host-to-dependencies.patch @@ -1,7 +1,7 @@ -From 33374e6b19a28d52a0089aa7b9af9b698fb98a86 Mon Sep 17 00:00:00 2001 +From 4463e2732a09dbb721d0614e7147cbfaa9059930 Mon Sep 17 00:00:00 2001 From: Khem Raj Date: Mon, 10 Aug 2015 02:38:27 -0700 -Subject: [PATCH 04/18] wayland-egl: Add bcm_host to dependencies +Subject: [PATCH 04/19] wayland-egl: Add bcm_host to dependencies It uses headers like vcos_platform_types.h but does not depend on module which should add the required include paths @@ -24,5 +24,5 @@ index 8bafc15..fd259c9 100644 Libs: -L${libdir} -lwayland-egl Cflags: -I${includedir} -- -2.21.0 +2.22.0 diff --git a/Contrib-Inspur/openbmc/meta-raspberrypi/recipes-graphics/userland/files/0005-interface-remove-faulty-assert-to-make-weston-happy-.patch b/Contrib-Inspur/openbmc/meta-raspberrypi/recipes-graphics/userland/files/0005-interface-remove-faulty-assert-to-make-weston-happy-.patch index bcf828ce..459fc04a 100644 --- a/Contrib-Inspur/openbmc/meta-raspberrypi/recipes-graphics/userland/files/0005-interface-remove-faulty-assert-to-make-weston-happy-.patch +++ b/Contrib-Inspur/openbmc/meta-raspberrypi/recipes-graphics/userland/files/0005-interface-remove-faulty-assert-to-make-weston-happy-.patch @@ -1,7 +1,7 @@ -From e2d13265a34519364bd7d27d54a860967b320504 Mon Sep 17 00:00:00 2001 +From 571c417c055a57cfd42c30a7a8279332397bad83 Mon Sep 17 00:00:00 2001 From: "Yann E. MORIN" Date: Sat, 24 Jan 2015 22:07:19 +0100 -Subject: [PATCH 05/18] interface: remove faulty assert() to make weston happy +Subject: [PATCH 05/19] interface: remove faulty assert() to make weston happy at runtime This was removed after a discussion on IRC with the weston guys @@ -25,5 +25,5 @@ index eab146e..29e0dee 100755 } } else { -- -2.21.0 +2.22.0 diff --git a/Contrib-Inspur/openbmc/meta-raspberrypi/recipes-graphics/userland/files/0006-zero-out-wl-buffers-in-egl_surface_free.patch b/Contrib-Inspur/openbmc/meta-raspberrypi/recipes-graphics/userland/files/0006-zero-out-wl-buffers-in-egl_surface_free.patch index ed7baf86..cc59ca61 100644 --- a/Contrib-Inspur/openbmc/meta-raspberrypi/recipes-graphics/userland/files/0006-zero-out-wl-buffers-in-egl_surface_free.patch +++ b/Contrib-Inspur/openbmc/meta-raspberrypi/recipes-graphics/userland/files/0006-zero-out-wl-buffers-in-egl_surface_free.patch @@ -1,7 +1,7 @@ -From 0c64a21bd90b9dea9916dcdc7c8c23b93518ccb8 Mon Sep 17 00:00:00 2001 +From 393e90beb9f5e535b5ce5d9eba4bc74907a96afe Mon Sep 17 00:00:00 2001 From: Khem Raj Date: Sat, 6 Feb 2016 11:10:47 -0800 -Subject: [PATCH 06/18] zero-out wl buffers in egl_surface_free +Subject: [PATCH 06/19] zero-out wl buffers in egl_surface_free origins from buildroot @@ -29,5 +29,5 @@ index 42350bf..1f923d9 100644 #endif } -- -2.21.0 +2.22.0 diff --git a/Contrib-Inspur/openbmc/meta-raspberrypi/recipes-graphics/userland/files/0007-initialize-front-back-wayland-buffers.patch b/Contrib-Inspur/openbmc/meta-raspberrypi/recipes-graphics/userland/files/0007-initialize-front-back-wayland-buffers.patch index 3bc633f3..c5ad5195 100644 --- a/Contrib-Inspur/openbmc/meta-raspberrypi/recipes-graphics/userland/files/0007-initialize-front-back-wayland-buffers.patch +++ b/Contrib-Inspur/openbmc/meta-raspberrypi/recipes-graphics/userland/files/0007-initialize-front-back-wayland-buffers.patch @@ -1,7 +1,7 @@ -From 4e0f83d815461d501fef788236dab356c9b60ea5 Mon Sep 17 00:00:00 2001 +From 3e7e309de25d546a4836c59523060f286aadd87d Mon Sep 17 00:00:00 2001 From: Khem Raj Date: Sat, 6 Feb 2016 11:11:41 -0800 -Subject: [PATCH 07/18] initialize front back wayland buffers +Subject: [PATCH 07/19] initialize front back wayland buffers origins from metrological wayland support @@ -30,5 +30,5 @@ index 1f923d9..9a9582c 100644 } #endif -- -2.21.0 +2.22.0 diff --git a/Contrib-Inspur/openbmc/meta-raspberrypi/recipes-graphics/userland/files/0008-Remove-RPC_FLUSH.patch b/Contrib-Inspur/openbmc/meta-raspberrypi/recipes-graphics/userland/files/0008-Remove-RPC_FLUSH.patch index 94dee071..219a2587 100644 --- a/Contrib-Inspur/openbmc/meta-raspberrypi/recipes-graphics/userland/files/0008-Remove-RPC_FLUSH.patch +++ b/Contrib-Inspur/openbmc/meta-raspberrypi/recipes-graphics/userland/files/0008-Remove-RPC_FLUSH.patch @@ -1,7 +1,7 @@ -From 67384449b85e65661558b9ebe059792cdd737fc7 Mon Sep 17 00:00:00 2001 +From a08887086cf4418fa0999a340c574b66a5ab4412 Mon Sep 17 00:00:00 2001 From: Khem Raj Date: Sat, 6 Feb 2016 11:09:18 -0800 -Subject: [PATCH 08/18] Remove RPC_FLUSH +Subject: [PATCH 08/19] Remove RPC_FLUSH Origins from buildroot @@ -23,5 +23,5 @@ index f9b7287..b04ffef 100644 } #endif -- -2.21.0 +2.22.0 diff --git a/Contrib-Inspur/openbmc/meta-raspberrypi/recipes-graphics/userland/files/0009-fix-cmake-dependency-race.patch b/Contrib-Inspur/openbmc/meta-raspberrypi/recipes-graphics/userland/files/0009-fix-cmake-dependency-race.patch index 375b1815..9e148ee4 100644 --- a/Contrib-Inspur/openbmc/meta-raspberrypi/recipes-graphics/userland/files/0009-fix-cmake-dependency-race.patch +++ b/Contrib-Inspur/openbmc/meta-raspberrypi/recipes-graphics/userland/files/0009-fix-cmake-dependency-race.patch @@ -1,7 +1,7 @@ -From a4a31696bddb72f3bf58f6b5303816fd31081566 Mon Sep 17 00:00:00 2001 +From e14d2bfff42be64361a873e73674ce1205af3ee5 Mon Sep 17 00:00:00 2001 From: Khem Raj Date: Sat, 6 Feb 2016 13:12:47 -0800 -Subject: [PATCH 09/18] fix cmake dependency race +Subject: [PATCH 09/19] fix cmake dependency race Fixes errors like @@ -42,10 +42,10 @@ index 1d81ca3..d6cd415 100644 add_library (vcos SHARED ${SOURCES}) target_link_libraries (vcos pthread dl rt) diff --git a/interface/vmcs_host/CMakeLists.txt b/interface/vmcs_host/CMakeLists.txt -index 6718215..c415176 100755 +index 55b6ace..ae52495 100755 --- a/interface/vmcs_host/CMakeLists.txt +++ b/interface/vmcs_host/CMakeLists.txt -@@ -17,14 +17,6 @@ set(VCHOSTIF_SOURCE +@@ -15,14 +15,6 @@ set(VCHOSTIF_SOURCE # ${VMCS_TARGET}/vmcs_main.c # vc_vchi_haud.c @@ -74,5 +74,5 @@ index f0bae30..8c44c58 100644 struct wl_resource *resource; struct wl_dispmanx *dispmanx; -- -2.21.0 +2.22.0 diff --git a/Contrib-Inspur/openbmc/meta-raspberrypi/recipes-graphics/userland/files/0010-Fix-for-framerate-with-nested-composition.patch b/Contrib-Inspur/openbmc/meta-raspberrypi/recipes-graphics/userland/files/0010-Fix-for-framerate-with-nested-composition.patch index 20a37438..a075b1ef 100644 --- a/Contrib-Inspur/openbmc/meta-raspberrypi/recipes-graphics/userland/files/0010-Fix-for-framerate-with-nested-composition.patch +++ b/Contrib-Inspur/openbmc/meta-raspberrypi/recipes-graphics/userland/files/0010-Fix-for-framerate-with-nested-composition.patch @@ -1,7 +1,7 @@ -From c7acd48a9044e24d64ef453ff35202d6a697eb5d Mon Sep 17 00:00:00 2001 +From ea3f7c3822efd33cec96a79eb9a345544b942d9e Mon Sep 17 00:00:00 2001 From: Khem Raj Date: Tue, 29 Mar 2016 20:38:30 -0700 -Subject: [PATCH 10/18] Fix for framerate with nested composition +Subject: [PATCH 10/19] Fix for framerate with nested composition frame rate appears irregular and lower than expected when using nested composition. @@ -56,5 +56,5 @@ index 03fe67b..13a110c 100644 #ifdef ANDROID CLIENT_UNLOCK(); -- -2.21.0 +2.22.0 diff --git a/Contrib-Inspur/openbmc/meta-raspberrypi/recipes-graphics/userland/files/0011-build-shared-library-for-vchostif.patch b/Contrib-Inspur/openbmc/meta-raspberrypi/recipes-graphics/userland/files/0011-build-shared-library-for-vchostif.patch index 5e141358..1e607511 100644 --- a/Contrib-Inspur/openbmc/meta-raspberrypi/recipes-graphics/userland/files/0011-build-shared-library-for-vchostif.patch +++ b/Contrib-Inspur/openbmc/meta-raspberrypi/recipes-graphics/userland/files/0011-build-shared-library-for-vchostif.patch @@ -1,7 +1,7 @@ -From a49fbbc6abc3d57d45011a3410d3b8f04349e424 Mon Sep 17 00:00:00 2001 +From 407ab0ed315b4c7b49d1a1dd3777d5af8e0b7e66 Mon Sep 17 00:00:00 2001 From: Khem Raj Date: Sat, 2 Apr 2016 10:37:24 -0700 -Subject: [PATCH 11/18] build shared library for vchostif +Subject: [PATCH 11/19] build shared library for vchostif Fixes #149 @@ -11,10 +11,10 @@ Signed-off-by: Khem Raj 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/interface/vmcs_host/CMakeLists.txt b/interface/vmcs_host/CMakeLists.txt -index c415176..d0cca1a 100755 +index ae52495..369758b 100755 --- a/interface/vmcs_host/CMakeLists.txt +++ b/interface/vmcs_host/CMakeLists.txt -@@ -17,7 +17,7 @@ set(VCHOSTIF_SOURCE +@@ -15,7 +15,7 @@ set(VCHOSTIF_SOURCE # ${VMCS_TARGET}/vmcs_main.c # vc_vchi_haud.c @@ -24,5 +24,5 @@ index c415176..d0cca1a 100755 #add_library(bufman vc_vchi_bufman.c ) -- -2.21.0 +2.22.0 diff --git a/Contrib-Inspur/openbmc/meta-raspberrypi/recipes-graphics/userland/files/0012-implement-buffer-wrapping-interface-for-dispmanx.patch b/Contrib-Inspur/openbmc/meta-raspberrypi/recipes-graphics/userland/files/0012-implement-buffer-wrapping-interface-for-dispmanx.patch index 0bb9ef70..c4ec5716 100644 --- a/Contrib-Inspur/openbmc/meta-raspberrypi/recipes-graphics/userland/files/0012-implement-buffer-wrapping-interface-for-dispmanx.patch +++ b/Contrib-Inspur/openbmc/meta-raspberrypi/recipes-graphics/userland/files/0012-implement-buffer-wrapping-interface-for-dispmanx.patch @@ -1,7 +1,7 @@ -From 70c5c684fbfbc8ebd890b0aafb2bb5c13d6cfb11 Mon Sep 17 00:00:00 2001 +From 48a946e24c3e7172f1044f5815e9cfed96982830 Mon Sep 17 00:00:00 2001 From: Khem Raj Date: Sat, 2 Apr 2016 10:54:59 -0700 -Subject: [PATCH 12/18] implement buffer wrapping interface for dispmanx +Subject: [PATCH 12/19] implement buffer wrapping interface for dispmanx Courtesy: Zan Dobersek @@ -88,5 +88,5 @@ index c18626d..11ed1ef 100644 -- -2.21.0 +2.22.0 diff --git a/Contrib-Inspur/openbmc/meta-raspberrypi/recipes-graphics/userland/files/0013-Implement-triple-buffering-for-wayland.patch b/Contrib-Inspur/openbmc/meta-raspberrypi/recipes-graphics/userland/files/0013-Implement-triple-buffering-for-wayland.patch index aae0b025..85b9a4e4 100644 --- a/Contrib-Inspur/openbmc/meta-raspberrypi/recipes-graphics/userland/files/0013-Implement-triple-buffering-for-wayland.patch +++ b/Contrib-Inspur/openbmc/meta-raspberrypi/recipes-graphics/userland/files/0013-Implement-triple-buffering-for-wayland.patch @@ -1,7 +1,7 @@ -From 789d16a9d5aa57b201e9d6be9427671f48fec5e4 Mon Sep 17 00:00:00 2001 +From 31e61d1a1d26442be9c90c479e2b14589acedb0e Mon Sep 17 00:00:00 2001 From: Jeff Wannamaker Date: Thu, 19 Jan 2017 18:56:07 +0000 -Subject: [PATCH 13/18] Implement triple buffering for wayland +Subject: [PATCH 13/19] Implement triple buffering for wayland Change from double to triple buffering for wayland. This enables higher frame rates without tearing artifacts @@ -86,5 +86,5 @@ index e328b77..58a3184 100644 back_wl_buffer -- -2.21.0 +2.22.0 diff --git a/Contrib-Inspur/openbmc/meta-raspberrypi/recipes-graphics/userland/files/0014-GLES2-gl2ext.h-Define-GL_R8_EXT-and-GL_RG8_EXT.patch b/Contrib-Inspur/openbmc/meta-raspberrypi/recipes-graphics/userland/files/0014-GLES2-gl2ext.h-Define-GL_R8_EXT-and-GL_RG8_EXT.patch index dd27e681..c4915509 100644 --- a/Contrib-Inspur/openbmc/meta-raspberrypi/recipes-graphics/userland/files/0014-GLES2-gl2ext.h-Define-GL_R8_EXT-and-GL_RG8_EXT.patch +++ b/Contrib-Inspur/openbmc/meta-raspberrypi/recipes-graphics/userland/files/0014-GLES2-gl2ext.h-Define-GL_R8_EXT-and-GL_RG8_EXT.patch @@ -1,7 +1,7 @@ -From 49604e158b8171033bc8a9db5d8893887fb98557 Mon Sep 17 00:00:00 2001 +From 961cd03f4db37041ae068cd8535f11cf739e42c0 Mon Sep 17 00:00:00 2001 From: Khem Raj Date: Wed, 10 May 2017 06:39:34 +0000 -Subject: [PATCH 14/18] GLES2/gl2ext.h: Define GL_R8_EXT and GL_RG8_EXT +Subject: [PATCH 14/19] GLES2/gl2ext.h: Define GL_R8_EXT and GL_RG8_EXT weston code uses these defines Upstream-Status: Pending @@ -31,5 +31,5 @@ index 4eacf7f..b1acc9f 100644 #ifndef GL_EXT_texture_type_2_10_10_10_REV #define GL_UNSIGNED_INT_2_10_10_10_REV_EXT 0x8368 -- -2.21.0 +2.22.0 diff --git a/Contrib-Inspur/openbmc/meta-raspberrypi/recipes-graphics/userland/files/0015-EGL-glplatform.h-define-EGL_CAST.patch b/Contrib-Inspur/openbmc/meta-raspberrypi/recipes-graphics/userland/files/0015-EGL-glplatform.h-define-EGL_CAST.patch index 5a5a0322..2fc16b15 100644 --- a/Contrib-Inspur/openbmc/meta-raspberrypi/recipes-graphics/userland/files/0015-EGL-glplatform.h-define-EGL_CAST.patch +++ b/Contrib-Inspur/openbmc/meta-raspberrypi/recipes-graphics/userland/files/0015-EGL-glplatform.h-define-EGL_CAST.patch @@ -1,7 +1,7 @@ -From 90f6ebc04c688720f45c7009d12d524d33f51781 Mon Sep 17 00:00:00 2001 +From 9568135c3e4c23e9056135a13cee58c37456aaac Mon Sep 17 00:00:00 2001 From: Andrea Galbusera Date: Fri, 14 Jul 2017 09:52:54 +0200 -Subject: [PATCH 15/18] EGL/glplatform.h: define EGL_CAST +Subject: [PATCH 15/19] EGL/glplatform.h: define EGL_CAST C++ / C typecast macros for special EGL handle values: used by libepoxy code The definition comes from the updated version of this header in mesa. @@ -28,5 +28,5 @@ index 1f7c930..c39d425 100644 + #endif /* __eglplatform_h */ -- -2.21.0 +2.22.0 diff --git a/Contrib-Inspur/openbmc/meta-raspberrypi/recipes-graphics/userland/files/0016-Allow-multiple-wayland-compositor-state-data-per-pro.patch b/Contrib-Inspur/openbmc/meta-raspberrypi/recipes-graphics/userland/files/0016-Allow-multiple-wayland-compositor-state-data-per-pro.patch index da18541b..570b72ca 100644 --- a/Contrib-Inspur/openbmc/meta-raspberrypi/recipes-graphics/userland/files/0016-Allow-multiple-wayland-compositor-state-data-per-pro.patch +++ b/Contrib-Inspur/openbmc/meta-raspberrypi/recipes-graphics/userland/files/0016-Allow-multiple-wayland-compositor-state-data-per-pro.patch @@ -1,7 +1,7 @@ -From b8a1516fd1d8c8a5f2400a7fb7bd6b9e05d33a55 Mon Sep 17 00:00:00 2001 +From 493b013cb702b821fdeaef7021ae25dea88900c6 Mon Sep 17 00:00:00 2001 From: Jeff Wannamaker Date: Sat, 27 Jan 2018 12:28:31 -0500 -Subject: [PATCH 16/18] Allow multiple wayland compositor state data per +Subject: [PATCH 16/19] Allow multiple wayland compositor state data per process When eglBindWaylandDisplayWL is called store the wl_global @@ -141,5 +141,5 @@ index 9ef89cd..abd5ab3 100644 CLIENT_UNLOCK(); -- -2.21.0 +2.22.0 diff --git a/Contrib-Inspur/openbmc/meta-raspberrypi/recipes-graphics/userland/files/0017-khronos-backport-typedef-for-EGL_EXT_image_dma_buf_i.patch b/Contrib-Inspur/openbmc/meta-raspberrypi/recipes-graphics/userland/files/0017-khronos-backport-typedef-for-EGL_EXT_image_dma_buf_i.patch index 9d96d5fe..2f37989f 100644 --- a/Contrib-Inspur/openbmc/meta-raspberrypi/recipes-graphics/userland/files/0017-khronos-backport-typedef-for-EGL_EXT_image_dma_buf_i.patch +++ b/Contrib-Inspur/openbmc/meta-raspberrypi/recipes-graphics/userland/files/0017-khronos-backport-typedef-for-EGL_EXT_image_dma_buf_i.patch @@ -1,7 +1,7 @@ -From d65939b5bdc6cfddb68803e87efffac13182ae46 Mon Sep 17 00:00:00 2001 +From cc25f8abd4498004a276a4ee40e37681fa42422a Mon Sep 17 00:00:00 2001 From: Hugo Hromic Date: Sun, 13 May 2018 10:49:04 +0100 -Subject: [PATCH 17/18] khronos: backport typedef for +Subject: [PATCH 17/19] khronos: backport typedef for EGL_EXT_image_dma_buf_import The `gstreamer1.0-plugins-base` package version `1.14` uses `EGL_EXT_image_dma_buf_import`, which @@ -34,5 +34,5 @@ index d7e5ba7..dcc90ce 100755 #ifndef EGL_WL_bind_wayland_display #define EGL_WL_bind_wayland_display 1 -- -2.21.0 +2.22.0 diff --git a/Contrib-Inspur/openbmc/meta-raspberrypi/recipes-graphics/userland/files/0018-Add-EGL_IMG_context_priority-related-defines.patch b/Contrib-Inspur/openbmc/meta-raspberrypi/recipes-graphics/userland/files/0018-Add-EGL_IMG_context_priority-related-defines.patch index 86f7b363..c44c8216 100644 --- a/Contrib-Inspur/openbmc/meta-raspberrypi/recipes-graphics/userland/files/0018-Add-EGL_IMG_context_priority-related-defines.patch +++ b/Contrib-Inspur/openbmc/meta-raspberrypi/recipes-graphics/userland/files/0018-Add-EGL_IMG_context_priority-related-defines.patch @@ -1,7 +1,7 @@ -From e5fcfe7af2c7f75b66356680bb641f4f6555d0c5 Mon Sep 17 00:00:00 2001 +From e091388b4382d90494b5842e9f591043a45b2b21 Mon Sep 17 00:00:00 2001 From: Khem Raj Date: Sun, 15 Jul 2018 00:48:38 -0700 -Subject: [PATCH 18/18] Add EGL_IMG_context_priority related defines +Subject: [PATCH 18/19] Add EGL_IMG_context_priority related defines These defines are needed for compiling weston 4.x taken from Khronos headers @@ -31,5 +31,5 @@ index dcc90ce..6842bf9 100755 #define EGL_KHR_vg_parent_image 1 #define EGL_VG_PARENT_IMAGE_KHR 0x30BA /* eglCreateImageKHR target */ -- -2.21.0 +2.22.0 diff --git a/Contrib-Inspur/openbmc/meta-raspberrypi/recipes-graphics/userland/files/0019-libfdt-Undefine-__wordsize-if-already-defined.patch b/Contrib-Inspur/openbmc/meta-raspberrypi/recipes-graphics/userland/files/0019-libfdt-Undefine-__wordsize-if-already-defined.patch new file mode 100644 index 00000000..fc66f535 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-raspberrypi/recipes-graphics/userland/files/0019-libfdt-Undefine-__wordsize-if-already-defined.patch @@ -0,0 +1,31 @@ +From 5229430874b5275547babdbef1e322922317456d Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Thu, 25 Jul 2019 23:30:27 -0700 +Subject: [PATCH 19/19] libfdt: Undefine __wordsize if already defined + +glibc 2.30+ defines __wordsize, which is same so its easier to compile +for multiple versions of glibc even ones which does not have this define + +Signed-off-by: Khem Raj +--- + opensrc/helpers/libfdt/libfdt_env.h | 4 ++++ + 1 file changed, 4 insertions(+) + +diff --git a/opensrc/helpers/libfdt/libfdt_env.h b/opensrc/helpers/libfdt/libfdt_env.h +index 1c966b8..fc25ca6 100644 +--- a/opensrc/helpers/libfdt/libfdt_env.h ++++ b/opensrc/helpers/libfdt/libfdt_env.h +@@ -56,6 +56,10 @@ + #include + #include + ++#ifdef __bitwise ++#undef __bitwise ++#endif ++ + #ifdef __CHECKER__ + #define __force __attribute__((force)) + #define __bitwise __attribute__((bitwise)) +-- +2.22.0 + diff --git a/Contrib-Inspur/openbmc/meta-raspberrypi/recipes-graphics/userland/userland_git.bb b/Contrib-Inspur/openbmc/meta-raspberrypi/recipes-graphics/userland/userland_git.bb index 2b5ac330..99a3f23c 100644 --- a/Contrib-Inspur/openbmc/meta-raspberrypi/recipes-graphics/userland/userland_git.bb +++ b/Contrib-Inspur/openbmc/meta-raspberrypi/recipes-graphics/userland/userland_git.bb @@ -12,11 +12,11 @@ COMPATIBLE_MACHINE = "^rpi$" SRCBRANCH = "master" SRCFORK = "raspberrypi" -SRCREV = "517cdc30da167d81a485e7a994e02cec2390a269" +SRCREV = "17d2fdc1abd370e09ba7074753294c7976dd6b0d" # Use the date of the above commit as the package version. Update this when # SRCREV is changed. -PV = "20190501" +PV = "20190724" SRC_URI = "\ git://github.com/${SRCFORK}/userland.git;protocol=git;branch=${SRCBRANCH} \ @@ -38,6 +38,7 @@ SRC_URI = "\ file://0016-Allow-multiple-wayland-compositor-state-data-per-pro.patch \ file://0017-khronos-backport-typedef-for-EGL_EXT_image_dma_buf_i.patch \ file://0018-Add-EGL_IMG_context_priority-related-defines.patch \ + file://0019-libfdt-Undefine-__wordsize-if-already-defined.patch \ " S = "${WORKDIR}/git" @@ -64,7 +65,6 @@ do_install_append () { sed -i 's/include "vcos_futex_mutex.h"/include "pthreads\/vcos_futex_mutex.h"/g' ${f} sed -i 's/include "vcos_platform_types.h"/include "pthreads\/vcos_platform_types.h"/g' ${f} done - install -D -m 0755 ${D}${prefix}${sysconfdir}/init.d/vcfiled ${D}${sysconfdir}/init.d/vcfiled rm -rf ${D}${prefix}${sysconfdir} if [ "${@bb.utils.contains("MACHINE_FEATURES", "vc4graphics", "1", "0", d)}" = "1" ]; then rm -rf ${D}${libdir}/libEGL* diff --git a/Contrib-Inspur/openbmc/meta-raspberrypi/recipes-graphics/vc-graphics/vc-graphics.inc b/Contrib-Inspur/openbmc/meta-raspberrypi/recipes-graphics/vc-graphics/vc-graphics.inc index 4d8b282f..540e2895 100644 --- a/Contrib-Inspur/openbmc/meta-raspberrypi/recipes-graphics/vc-graphics/vc-graphics.inc +++ b/Contrib-Inspur/openbmc/meta-raspberrypi/recipes-graphics/vc-graphics/vc-graphics.inc @@ -1,5 +1,5 @@ DESCRIPTION = "Graphics libraries for BCM2835." -LICENSE = "Proprietary" +LICENSE = "Broadcom-RPi" LIC_FILES_CHKSUM = "file://LICENCE;md5=86e53f5f5909ee66900418028de11780" @@ -8,7 +8,7 @@ COMPATIBLE_MACHINE = "^rpi$" INHIBIT_DEFAULT_DEPS = "1" -include recipes-bsp/common/firmware.inc +include recipes-bsp/common/raspberrypi-firmware.inc SRC_URI += " \ file://egl.pc \ diff --git a/Contrib-Inspur/openbmc/meta-raspberrypi/recipes-graphics/xorg-xserver/xserver-xorg_%.bbappend b/Contrib-Inspur/openbmc/meta-raspberrypi/recipes-graphics/xorg-xserver/xserver-xorg_%.bbappend index a5a6af3f..fba16321 100644 --- a/Contrib-Inspur/openbmc/meta-raspberrypi/recipes-graphics/xorg-xserver/xserver-xorg_%.bbappend +++ b/Contrib-Inspur/openbmc/meta-raspberrypi/recipes-graphics/xorg-xserver/xserver-xorg_%.bbappend @@ -1,9 +1 @@ -OPENGL_PKGCFG = "${@bb.utils.contains('MACHINE_FEATURES', 'vc4graphics', 'dri3 xshmfence glamor', '', d)}" - -# slightly modified to oe-core's default: add ${OPENGL_PKGCFG} -PACKAGECONFIG_rpi ?= " \ - dri2 udev ${XORG_CRYPTO} \ - ${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'dri glx ${OPENGL_PKGCFG}', '', d)} \ - ${@bb.utils.contains("DISTRO_FEATURES", "wayland", "xwayland", "", d)} \ - ${@bb.utils.contains("DISTRO_FEATURES", "systemd", "systemd", "", d)} \ -" +OPENGL_PKGCONFIGS_rpi = "dri glx ${@bb.utils.contains('MACHINE_FEATURES', 'vc4graphics', 'dri3 xshmfence glamor', '', d)}" diff --git a/Contrib-Inspur/openbmc/meta-raspberrypi/recipes-kernel/linux-firmware-rpidistro/linux-firmware-rpidistro_git.bb b/Contrib-Inspur/openbmc/meta-raspberrypi/recipes-kernel/linux-firmware-rpidistro/linux-firmware-rpidistro_git.bb index 1f63c329..3d1aaf89 100644 --- a/Contrib-Inspur/openbmc/meta-raspberrypi/recipes-kernel/linux-firmware-rpidistro/linux-firmware-rpidistro_git.bb +++ b/Contrib-Inspur/openbmc/meta-raspberrypi/recipes-kernel/linux-firmware-rpidistro/linux-firmware-rpidistro_git.bb @@ -25,7 +25,7 @@ LICENSE = "\ " LIC_FILES_CHKSUM = "\ file://LICENCE.broadcom_bcm43xx;md5=3160c14df7228891b868060e1951dfbc \ - file://WHENCE;md5=a9c2c217f513c20e1d16b384b3e2c12d \ + file://WHENCE;md5=7b12b2224438186e4c97c4c7f3a5cc28 \ " # These are not common licenses, set NO_GENERIC_LICENSE for them @@ -34,7 +34,8 @@ NO_GENERIC_LICENSE[Firmware-broadcom_bcm43xx-rpidistro] = "LICENCE.broadcom_bcm4 NO_GENERIC_LICENSE[WHENCE] = "WHENCE" SRC_URI = "git://github.com/RPi-Distro/firmware-nonfree" -SRCREV = "b518de45ced519e8f7a499f4778100173402ae43" + +SRCREV = "00daf85ffa373ecce7836df7543c6ebe4cf43639" PV = "0.0+git${SRCPV}" S = "${WORKDIR}/git" diff --git a/Contrib-Inspur/openbmc/meta-raspberrypi/recipes-kernel/linux/files/raspberrypi4-64/rpi4-64-kernel-misc.cfg b/Contrib-Inspur/openbmc/meta-raspberrypi/recipes-kernel/linux/files/raspberrypi4-64/rpi4-64-kernel-misc.cfg new file mode 100644 index 00000000..fd97ed71 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-raspberrypi/recipes-kernel/linux/files/raspberrypi4-64/rpi4-64-kernel-misc.cfg @@ -0,0 +1,2 @@ +# see emmc node +CONFIG_MMC_SDHCI_IPROC=y diff --git a/Contrib-Inspur/openbmc/meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi-rt_4.14.bb b/Contrib-Inspur/openbmc/meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi-rt_4.14.bb index 1a990fe0..224bc6dd 100644 --- a/Contrib-Inspur/openbmc/meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi-rt_4.14.bb +++ b/Contrib-Inspur/openbmc/meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi-rt_4.14.bb @@ -1,6 +1,6 @@ -LINUX_VERSION ?= "4.14.81" +LINUX_VERSION ?= "4.14.91" -SRCREV = "acf578d07d57480674d5361df9171fe9528765cb" +SRCREV = "0b520d5f1f580d36a742a9457a5673fa1578fff3" SRC_URI = " \ git://github.com/raspberrypi/linux.git;branch=rpi-4.14.y-rt \ file://0001-menuconfig-check-lxdiaglog.sh-Allow-specification-of.patch \ diff --git a/Contrib-Inspur/openbmc/meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi-rt_4.19.bb b/Contrib-Inspur/openbmc/meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi-rt_4.19.bb new file mode 100644 index 00000000..2d9363f5 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi-rt_4.19.bb @@ -0,0 +1,6 @@ +LINUX_VERSION ?= "4.19.71" +LINUX_RPI_BRANCH ?= "rpi-4.19.y-rt" + +SRCREV = "e2e9cec6fb061ba58304fd391ef76747f2963557" + +require linux-raspberrypi_4.19.inc diff --git a/Contrib-Inspur/openbmc/meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi.inc b/Contrib-Inspur/openbmc/meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi.inc index 01f2425e..3c3a8e53 100644 --- a/Contrib-Inspur/openbmc/meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi.inc +++ b/Contrib-Inspur/openbmc/meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi.inc @@ -16,9 +16,14 @@ SRC_URI += "file://rpi-kernel-misc.cfg" KCONFIG_MODE = "--alldefconfig" KBUILD_DEFCONFIG_raspberrypi0-wifi ?= "bcmrpi_defconfig" KBUILD_DEFCONFIG_raspberrypi ?= "bcmrpi_defconfig" +KBUILD_DEFCONFIG_raspberrypi-cm3 ?= "bcm2709_defconfig" KBUILD_DEFCONFIG_raspberrypi2 ?= "bcm2709_defconfig" KBUILD_DEFCONFIG_raspberrypi3 ?= "bcm2709_defconfig" KBUILD_DEFCONFIG_raspberrypi3-64 ?= "bcmrpi3_defconfig" +KBUILD_DEFCONFIG_raspberrypi4 ?= "bcm2711_defconfig" +KBUILD_DEFCONFIG_raspberrypi4-64 ?= "bcm2711_defconfig" + +LINUX_VERSION_EXTENSION ?= "" # CMDLINE for raspberrypi SERIAL = "${@oe.utils.conditional("ENABLE_UART", "1", "console=serial0,115200", "", d)}" @@ -96,9 +101,6 @@ do_configure_prepend() { mv -f ${B}/.config ${B}/.config.patched CONF_SED_SCRIPT="" - # Localversion - kernel_configure_variable LOCALVERSION "\"\"" - if [ "${INITRAMFS_IMAGE_BUNDLE}" = "1" ]; then kernel_configure_variable OVERLAY_FS y kernel_configure_variable SQUASHFS y @@ -120,9 +122,11 @@ do_configure_prepend() { rm -f ${B}/.config.patched } -do_compile_append_raspberrypi3-64() { - cc_extra=$(get_cc_option) - oe_runmake dtbs CC="${KERNEL_CC} $cc_extra " LD="${KERNEL_LD}" ${KERNEL_EXTRA_ARGS} +do_compile_append() { + if [ "${SITEINFO_BITS}" = "64" ]; then + cc_extra=$(get_cc_option) + oe_runmake dtbs CC="${KERNEL_CC} $cc_extra " LD="${KERNEL_LD}" ${KERNEL_EXTRA_ARGS} + fi } do_deploy_append() { diff --git a/Contrib-Inspur/openbmc/meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi_4.14.bb b/Contrib-Inspur/openbmc/meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi_4.14.bb index 6563918c..03710edf 100644 --- a/Contrib-Inspur/openbmc/meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi_4.14.bb +++ b/Contrib-Inspur/openbmc/meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi_4.14.bb @@ -1,6 +1,6 @@ -LINUX_VERSION ?= "4.14.112" +LINUX_VERSION ?= "4.14.114" -SRCREV = "6b5c4a2508403839af29ef44059d04acbe0ee204" +SRCREV = "7688b39276ff9952df381d79de63b258e73971ce" SRC_URI = " \ git://github.com/raspberrypi/linux.git;branch=rpi-4.14.y \ file://0001-menuconfig-check-lxdiaglog.sh-Allow-specification-of.patch \ diff --git a/Contrib-Inspur/openbmc/meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi_4.19.bb b/Contrib-Inspur/openbmc/meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi_4.19.bb index 396dd6f7..ee998dbc 100644 --- a/Contrib-Inspur/openbmc/meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi_4.19.bb +++ b/Contrib-Inspur/openbmc/meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi_4.19.bb @@ -1,12 +1,6 @@ -FILESEXTRAPATHS_prepend := "${THISDIR}/linux-raspberrypi:" - -LINUX_VERSION ?= "4.19.44" +LINUX_VERSION ?= "4.19.93" LINUX_RPI_BRANCH ?= "rpi-4.19.y" -SRCREV = "b45a32b47b76cb64225d19841c20ee85ea97874d" -SRC_URI = " \ - git://github.com/raspberrypi/linux.git;protocol=git;branch=${LINUX_RPI_BRANCH} \ - " -require linux-raspberrypi.inc +SRCREV = "3fdcc814c54faaf4715ad0d12371c1eec61bf1dc" -LIC_FILES_CHKSUM = "file://COPYING;md5=bbea815ee2795b2f4230826c0c6b8814" +require linux-raspberrypi_4.19.inc diff --git a/Contrib-Inspur/openbmc/meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi_4.19.inc b/Contrib-Inspur/openbmc/meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi_4.19.inc new file mode 100644 index 00000000..d6c1223c --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi_4.19.inc @@ -0,0 +1,12 @@ +FILESEXTRAPATHS_prepend := "${THISDIR}/linux-raspberrypi:" + +SRC_URI = " \ + git://github.com/raspberrypi/linux.git;branch=${LINUX_RPI_BRANCH} \ + " +SRC_URI_append_raspberrypi4-64 = " file://rpi4-64-kernel-misc.cfg" + +require linux-raspberrypi.inc + +LIC_FILES_CHKSUM = "file://COPYING;md5=bbea815ee2795b2f4230826c0c6b8814" + +KERNEL_EXTRA_ARGS_append_rpi = " DTC_FLAGS='-@ -H epapr'" diff --git a/Contrib-Inspur/openbmc/meta-raspberrypi/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_%.bbappend b/Contrib-Inspur/openbmc/meta-raspberrypi/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_%.bbappend index 9e86c008..29fcb0e0 100644 --- a/Contrib-Inspur/openbmc/meta-raspberrypi/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_%.bbappend +++ b/Contrib-Inspur/openbmc/meta-raspberrypi/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_%.bbappend @@ -5,6 +5,7 @@ EXTRA_OECONF_append_rpi = " CPPFLAGS='-I${STAGING_INCDIR}/interface/vcos/pthread PACKAGECONFIG_append_rpi = "${@bb.utils.contains('MACHINE_FEATURES', 'vc4graphics', '', ' dispmanx', d)}" -PACKAGECONFIG_GL_rpi = "egl gles2" +PACKAGECONFIG_GL_VC4GRAPHICS = "${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'gles2 egl', '', d)}" +PACKAGECONFIG_GL_rpi = "${@bb.utils.contains('MACHINE_FEATURES', 'vc4graphics', '${PACKAGECONFIG_GL_VC4GRAPHICS}', 'egl gles2', d)}" PACKAGECONFIG[dispmanx] = "--enable-dispmanx,--disable-dispmanx,userland" diff --git a/Contrib-Inspur/openbmc/meta-raspberrypi/recipes-multimedia/omxplayer/omxplayer/0004-Add-FFMPEG_EXTRA_CFLAGS-and-FFMPEG_EXTRA_LDFLAGS.patch b/Contrib-Inspur/openbmc/meta-raspberrypi/recipes-multimedia/omxplayer/omxplayer/0004-Add-FFMPEG_EXTRA_CFLAGS-and-FFMPEG_EXTRA_LDFLAGS.patch index 383cdf7c..d137592c 100644 --- a/Contrib-Inspur/openbmc/meta-raspberrypi/recipes-multimedia/omxplayer/omxplayer/0004-Add-FFMPEG_EXTRA_CFLAGS-and-FFMPEG_EXTRA_LDFLAGS.patch +++ b/Contrib-Inspur/openbmc/meta-raspberrypi/recipes-multimedia/omxplayer/omxplayer/0004-Add-FFMPEG_EXTRA_CFLAGS-and-FFMPEG_EXTRA_LDFLAGS.patch @@ -20,7 +20,7 @@ Index: git/Makefile.ffmpeg @@ -1,5 +1,7 @@ CFLAGS=-D__STDC_CONSTANT_MACROS -D__STDC_LIMIT_MACROS -DTARGET_POSIX -DTARGET_LINUX -fPIC -DPIC -D_REENTRANT -D_HAVE_SBRK -D_LARGEFILE64_SOURCE -DHAVE_CMAKE_CONFIG -DHAVE_VMCS_CONFIG -D_REENTRANT -DUSE_VCHIQ_ARM -DVCHI_BULK_ALIGN=1 -DVCHI_BULK_GRANULARITY=1 -DEGL_SERVER_DISPMANX -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D__VIDEOCORE4__ -DGRAPHICS_X_VG=1 -U_FORTIFY_SOURCE -Wall -DHAVE_OMXLIB -DUSE_EXTERNAL_FFMPEG -DHAVE_LIBAVCODEC_AVCODEC_H -DHAVE_LIBAVUTIL_MEM_H -DHAVE_LIBAVUTIL_AVUTIL_H -DHAVE_LIBAVFORMAT_AVFORMAT_H -DHAVE_LIBAVFILTER_AVFILTER_H -DOMX -DOMX_SKIP64BIT -+FFMPEG_EXTRA_CFLAGS?=-mfpu=vfp -mfloat-abi=$(FLOAT) -mno-apcs-stack-check -mstructure-size-boundary=32 -mno-sched-prolog ++FFMPEG_EXTRA_CFLAGS?=-mfpu=vfp -mfloat-abi=$(FLOAT) + WORK=$(PWD) @@ -29,7 +29,7 @@ Index: git/Makefile.ffmpeg CFLAGS="$(CFLAGS) ${INCLUDES}" \ LDFLAGS="" \ ./configure \ -- --extra-cflags="-mfpu=vfp -mfloat-abi=hard -mno-apcs-stack-check -mstructure-size-boundary=32 -mno-sched-prolog" \ +- --extra-cflags="-mfpu=vfp -mfloat-abi=hard" \ + --extra-cflags="$(FFMPEG_EXTRA_CFLAGS)" \ + --extra-ldflags="$(FFMPEG_EXTRA_LDFLAGS)" \ --enable-shared \ diff --git a/Contrib-Inspur/openbmc/meta-raspberrypi/recipes-multimedia/omxplayer/omxplayer/0007-Remove-Makefile-hardcoded-arch-tune.patch b/Contrib-Inspur/openbmc/meta-raspberrypi/recipes-multimedia/omxplayer/omxplayer/0007-Remove-Makefile-hardcoded-arch-tune.patch index 03319739..a8c51d5c 100644 --- a/Contrib-Inspur/openbmc/meta-raspberrypi/recipes-multimedia/omxplayer/omxplayer/0007-Remove-Makefile-hardcoded-arch-tune.patch +++ b/Contrib-Inspur/openbmc/meta-raspberrypi/recipes-multimedia/omxplayer/omxplayer/0007-Remove-Makefile-hardcoded-arch-tune.patch @@ -1,8 +1,8 @@ --- a/Makefile 2019-06-20 15:04:53.390282996 +0200 +++ b/Makefile 2019-06-20 15:03:45.538763872 +0200 @@ -1,4 +1,4 @@ --CFLAGS=-pipe -mfloat-abi=hard -mcpu=arm1176jzf-s -fomit-frame-pointer -mabi=aapcs-linux -mtune=arm1176jzf-s -mfpu=vfp -Wno-psabi -mno-apcs-stack-check -g -mstructure-size-boundary=32 -mno-sched-prolog -+CFLAGS+= -fomit-frame-pointer -mabi=aapcs-linux -Wno-psabi -mno-apcs-stack-check -g -mstructure-size-boundary=32 -mno-sched-prolog +-CFLAGS=-pipe -mfloat-abi=hard -mcpu=arm1176jzf-s -fomit-frame-pointer -mabi=aapcs-linux -mtune=arm1176jzf-s -mfpu=vfp -Wno-psabi -g ++CFLAGS+= -fomit-frame-pointer -mabi=aapcs-linux -Wno-psabi -g CFLAGS+=-std=c++0x -D__STDC_CONSTANT_MACROS -D__STDC_LIMIT_MACROS -DTARGET_POSIX -DTARGET_LINUX -fPIC -DPIC -D_REENTRANT -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -DHAVE_CMAKE_CONFIG -D__VIDEOCORE4__ -U_FORTIFY_SOURCE -Wall -DHAVE_OMXLIB -DUSE_EXTERNAL_FFMPEG -DHAVE_LIBAVCODEC_AVCODEC_H -DHAVE_LIBAVUTIL_OPT_H -DHAVE_LIBAVUTIL_MEM_H -DHAVE_LIBAVUTIL_AVUTIL_H -DHAVE_LIBAVFORMAT_AVFORMAT_H -DHAVE_LIBAVFILTER_AVFILTER_H -DHAVE_LIBSWRESAMPLE_SWRESAMPLE_H -DOMX -DOMX_SKIP64BIT -ftree-vectorize -DUSE_EXTERNAL_OMX -DTARGET_RASPBERRY_PI -DUSE_EXTERNAL_LIBBCM_HOST LDFLAGS=-L$(SDKSTAGE)/opt/vc/lib/ diff --git a/Contrib-Inspur/openbmc/meta-raspberrypi/recipes-multimedia/omxplayer/omxplayer_git.bb b/Contrib-Inspur/openbmc/meta-raspberrypi/recipes-multimedia/omxplayer/omxplayer_git.bb index 831a91be..3cc03213 100644 --- a/Contrib-Inspur/openbmc/meta-raspberrypi/recipes-multimedia/omxplayer/omxplayer_git.bb +++ b/Contrib-Inspur/openbmc/meta-raspberrypi/recipes-multimedia/omxplayer/omxplayer_git.bb @@ -5,13 +5,13 @@ HOMEPAGE = "https://github.com/popcornmix/omxplayer" SECTION = "console/utils" LICENSE = "GPLv2" -LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f" +LIC_FILES_CHKSUM = "file://COPYING;md5=00a27da7ac0f9bcd17320ec29ef4bbf6" DEPENDS = "libpcre libav virtual/egl boost freetype dbus openssl libssh libomxil coreutils-native curl-native userland" -PR = "r4" +PR = "r5" -SRCREV_default = "b4bbef8fac5e8c2ddafa895f98456ba715b39c6b" +SRCREV_default = "f543a0d0e707ab56415f17b0ca6d397394ee8b63" # omxplayer builds its own copy of ffmpeg from source instead of using the # system's ffmpeg library. This isn't ideal but it's ok for now. We do however @@ -41,6 +41,7 @@ SRC_URI_append = "${@bb.utils.contains("MACHINE_FEATURES", "vc4graphics", " file S = "${WORKDIR}/git" COMPATIBLE_MACHINE = "^rpi$" +COMPATIBLE_HOST_aarch64 = "null" def cpu(d): for arg in (d.getVar('TUNE_CCARGS') or '').split(): diff --git a/Contrib-Inspur/openbmc/meta-raspberrypi/recipes-sato/webkitgtk/webkitgtk_%.bbappend b/Contrib-Inspur/openbmc/meta-raspberrypi/recipes-sato/webkitgtk/webkitgtk_%.bbappend deleted file mode 100644 index a4cc96ee..00000000 --- a/Contrib-Inspur/openbmc/meta-raspberrypi/recipes-sato/webkitgtk/webkitgtk_%.bbappend +++ /dev/null @@ -1 +0,0 @@ -EXTRA_OECMAKE_append_rpi = "${@bb.utils.contains('MACHINE_FEATURES', 'vc4graphics', ' -DUSE_GSTREAMER_GL=OFF ', '', d)}" diff --git a/Contrib-Inspur/openbmc/meta-security/README b/Contrib-Inspur/openbmc/meta-security/README index 5abb0e26..c419d506 100644 --- a/Contrib-Inspur/openbmc/meta-security/README +++ b/Contrib-Inspur/openbmc/meta-security/README @@ -52,14 +52,14 @@ other layers needed. e.g.: Maintenance ----------- -Send pull requests, patches, comments or questions to yocto@yoctoproject.org +Send pull requests, patches, comments or questions to yocto@lists.yoctoproject.org When sending single patches, please using something like: -'git send-email -1 --to yocto@yoctoproject.org --subject-prefix=meta-security][PATCH' +'git send-email -1 --to yocto@lists.yoctoproject.org --subject-prefix=meta-security][PATCH' These values can be set as defaults for this repository: -$ git config sendemail.to yocto@yoctoproject.org +$ git config sendemail.to yocto@lists.yoctoproject.org $ git config format.subjectPrefix meta-security][PATCH Now you can just do 'git send-email origin/master' to send all local patches. diff --git a/Contrib-Inspur/openbmc/meta-security/conf/distro/include/maintainers.inc b/Contrib-Inspur/openbmc/meta-security/conf/distro/include/maintainers.inc index 94b45f28..7b82ef74 100644 --- a/Contrib-Inspur/openbmc/meta-security/conf/distro/include/maintainers.inc +++ b/Contrib-Inspur/openbmc/meta-security/conf/distro/include/maintainers.inc @@ -35,7 +35,6 @@ RECIPE_MAINTAINER_pn-hash-perl = "Armin Kuster " RECIPE_MAINTAINER_pn-isic = "Armin Kuster " RECIPE_MAINTAINER_pn-keyutils = "Armin Kuster " RECIPE_MAINTAINER_pn-libaes-siv = "Armin Kuster " -RECIPE_MAINTAINER_pn-libenv-perl = "Armin Kuster " RECIPE_MAINTAINER_pn-libgssglue = "Armin Kuster " RECIPE_MAINTAINER_pn-libhtp = "Armin Kuster " RECIPE_MAINTAINER_pn-libmhash = "Armin Kuster " @@ -56,4 +55,3 @@ RECIPE_MAINTAINER_pn-smack = "Armin Kuster " RECIPE_MAINTAINER_pn-sssd = "Armin Kuster " RECIPE_MAINTAINER_pn-suricata = "Armin Kuster " RECIPE_MAINTAINER_pn-tripwire = "Armin Kuster " -RECIPE_MAINTAINER_pn-xmlsec1 = "Armin Kuster " diff --git a/Contrib-Inspur/openbmc/meta-security/conf/layer.conf b/Contrib-Inspur/openbmc/meta-security/conf/layer.conf index 4beac385..3e890e12 100644 --- a/Contrib-Inspur/openbmc/meta-security/conf/layer.conf +++ b/Contrib-Inspur/openbmc/meta-security/conf/layer.conf @@ -9,8 +9,6 @@ BBFILE_COLLECTIONS += "security" BBFILE_PATTERN_security = "^${LAYERDIR}/" BBFILE_PRIORITY_security = "8" -LAYERSERIES_COMPAT_security = "thud warrior" +LAYERSERIES_COMPAT_security = "zeus" LAYERDEPENDS_security = "core openembedded-layer perl-layer networking-layer meta-python" - -DEFAULT_TEST_SUITES_pn-security-build-image = " ping ssh ptest" diff --git a/Contrib-Inspur/openbmc/meta-security/files/waf-cross-answers/README b/Contrib-Inspur/openbmc/meta-security/files/waf-cross-answers/README deleted file mode 100644 index dda45c50..00000000 --- a/Contrib-Inspur/openbmc/meta-security/files/waf-cross-answers/README +++ /dev/null @@ -1,3 +0,0 @@ -The files in this directory are cross answers files -used by waf-samba.bbclass, please see waf-samba.bbclass -for details about how they are used. diff --git a/Contrib-Inspur/openbmc/meta-security/files/waf-cross-answers/cross-answers-aarch64.txt b/Contrib-Inspur/openbmc/meta-security/files/waf-cross-answers/cross-answers-aarch64.txt deleted file mode 100644 index 1023f6af..00000000 --- a/Contrib-Inspur/openbmc/meta-security/files/waf-cross-answers/cross-answers-aarch64.txt +++ /dev/null @@ -1,39 +0,0 @@ -Checking uname sysname type: "Linux" -Checking uname version type: "# Wed May 20 10:34:39 UTC 2015" -Checking simple C program: "hello world" -rpath library support: OK --Wl,--version-script support: OK -Checking getconf LFS_CFLAGS: NO -Checking correct behavior of strtoll: NO -Checking for working strptime: OK -Checking for C99 vsnprintf: "1" -Checking for HAVE_SHARED_MMAP: OK -Checking for HAVE_MREMAP: OK -Checking for HAVE_SECURE_MKSTEMP: OK -Checking for HAVE_IFACE_GETIFADDRS: NO -Checking for HAVE_IFACE_IFCONF: NO -Checking for HAVE_IFACE_IFREQ: NO -Checking for large file support without additional flags: OK -Checking for HAVE_INCOHERENT_MMAP: NO -Checking value of NSIG: "65" -Checking value of _NSIG: "65" -Checking value of SIGRTMAX: "64" -Checking value of SIGRTMIN: "34" -Checking whether the WRFILE -keytab is supported: OK -Checking for kernel change notify support: OK -Checking for Linux kernel oplocks: OK -Checking for kernel share modes: OK -Checking whether POSIX capabilities are available: OK -Checking if can we convert from CP850 to UCS-2LE: OK -Checking if can we convert from UTF-8 to UCS-2LE: OK -vfs_fileid checking for statfs() and struct statfs.f_fsid: OK -Checking whether we can use Linux thread-specific credentials: OK -Checking whether fcntl locking is available: OK -Checking for the maximum value of the 'time_t' type: OK -Checking whether the realpath function allows a NULL argument: OK -Checking for ftruncate extend: OK -getcwd takes a NULL argument: OK -Checking for small off_t: NO -Checking whether blkcnt_t is 32 bit: NO -Checking whether blkcnt_t is 64 bit: OK -Checking whether fcntl lock supports open file description locks: OK diff --git a/Contrib-Inspur/openbmc/meta-security/files/waf-cross-answers/cross-answers-aarch64_be.txt b/Contrib-Inspur/openbmc/meta-security/files/waf-cross-answers/cross-answers-aarch64_be.txt deleted file mode 100644 index 1023f6af..00000000 --- a/Contrib-Inspur/openbmc/meta-security/files/waf-cross-answers/cross-answers-aarch64_be.txt +++ /dev/null @@ -1,39 +0,0 @@ -Checking uname sysname type: "Linux" -Checking uname version type: "# Wed May 20 10:34:39 UTC 2015" -Checking simple C program: "hello world" -rpath library support: OK --Wl,--version-script support: OK -Checking getconf LFS_CFLAGS: NO -Checking correct behavior of strtoll: NO -Checking for working strptime: OK -Checking for C99 vsnprintf: "1" -Checking for HAVE_SHARED_MMAP: OK -Checking for HAVE_MREMAP: OK -Checking for HAVE_SECURE_MKSTEMP: OK -Checking for HAVE_IFACE_GETIFADDRS: NO -Checking for HAVE_IFACE_IFCONF: NO -Checking for HAVE_IFACE_IFREQ: NO -Checking for large file support without additional flags: OK -Checking for HAVE_INCOHERENT_MMAP: NO -Checking value of NSIG: "65" -Checking value of _NSIG: "65" -Checking value of SIGRTMAX: "64" -Checking value of SIGRTMIN: "34" -Checking whether the WRFILE -keytab is supported: OK -Checking for kernel change notify support: OK -Checking for Linux kernel oplocks: OK -Checking for kernel share modes: OK -Checking whether POSIX capabilities are available: OK -Checking if can we convert from CP850 to UCS-2LE: OK -Checking if can we convert from UTF-8 to UCS-2LE: OK -vfs_fileid checking for statfs() and struct statfs.f_fsid: OK -Checking whether we can use Linux thread-specific credentials: OK -Checking whether fcntl locking is available: OK -Checking for the maximum value of the 'time_t' type: OK -Checking whether the realpath function allows a NULL argument: OK -Checking for ftruncate extend: OK -getcwd takes a NULL argument: OK -Checking for small off_t: NO -Checking whether blkcnt_t is 32 bit: NO -Checking whether blkcnt_t is 64 bit: OK -Checking whether fcntl lock supports open file description locks: OK diff --git a/Contrib-Inspur/openbmc/meta-security/files/waf-cross-answers/cross-answers-arm.txt b/Contrib-Inspur/openbmc/meta-security/files/waf-cross-answers/cross-answers-arm.txt deleted file mode 100644 index a5cd9981..00000000 --- a/Contrib-Inspur/openbmc/meta-security/files/waf-cross-answers/cross-answers-arm.txt +++ /dev/null @@ -1,40 +0,0 @@ -Checking uname sysname type: "Linux" -Checking uname version type: "# Wed May 20 10:34:39 UTC 2015" -Checking simple C program: "hello world" -rpath library support: OK --Wl,--version-script support: OK -Checking getconf LFS_CFLAGS: NO -Checking correct behavior of strtoll: NO -Checking for working strptime: OK -Checking for C99 vsnprintf: "1" -Checking for HAVE_SHARED_MMAP: OK -Checking for HAVE_MREMAP: OK -Checking for HAVE_SECURE_MKSTEMP: OK -Checking for HAVE_IFACE_GETIFADDRS: NO -Checking for HAVE_IFACE_IFCONF: NO -Checking for HAVE_IFACE_IFREQ: NO -Checking for large file support without additional flags: NO -Checking for -D_FILE_OFFSET_BITS=64: OK -Checking for HAVE_INCOHERENT_MMAP: NO -Checking value of NSIG: "65" -Checking value of _NSIG: "65" -Checking value of SIGRTMAX: "64" -Checking value of SIGRTMIN: "34" -Checking whether the WRFILE -keytab is supported: OK -Checking for kernel change notify support: OK -Checking for Linux kernel oplocks: OK -Checking for kernel share modes: OK -Checking whether POSIX capabilities are available: OK -Checking if can we convert from CP850 to UCS-2LE: OK -Checking if can we convert from UTF-8 to UCS-2LE: OK -vfs_fileid checking for statfs() and struct statfs.f_fsid: OK -Checking whether we can use Linux thread-specific credentials with 32-bit system calls: OK -Checking whether fcntl locking is available: OK -Checking for the maximum value of the 'time_t' type: NO -Checking whether the realpath function allows a NULL argument: OK -Checking for ftruncate extend: OK -getcwd takes a NULL argument: OK -Checking for small off_t: NO -Checking whether blkcnt_t is 32 bit: NO -Checking whether blkcnt_t is 64 bit: OK -Checking whether fcntl lock supports open file description locks: OK diff --git a/Contrib-Inspur/openbmc/meta-security/files/waf-cross-answers/cross-answers-armeb.txt b/Contrib-Inspur/openbmc/meta-security/files/waf-cross-answers/cross-answers-armeb.txt deleted file mode 100644 index a5cd9981..00000000 --- a/Contrib-Inspur/openbmc/meta-security/files/waf-cross-answers/cross-answers-armeb.txt +++ /dev/null @@ -1,40 +0,0 @@ -Checking uname sysname type: "Linux" -Checking uname version type: "# Wed May 20 10:34:39 UTC 2015" -Checking simple C program: "hello world" -rpath library support: OK --Wl,--version-script support: OK -Checking getconf LFS_CFLAGS: NO -Checking correct behavior of strtoll: NO -Checking for working strptime: OK -Checking for C99 vsnprintf: "1" -Checking for HAVE_SHARED_MMAP: OK -Checking for HAVE_MREMAP: OK -Checking for HAVE_SECURE_MKSTEMP: OK -Checking for HAVE_IFACE_GETIFADDRS: NO -Checking for HAVE_IFACE_IFCONF: NO -Checking for HAVE_IFACE_IFREQ: NO -Checking for large file support without additional flags: NO -Checking for -D_FILE_OFFSET_BITS=64: OK -Checking for HAVE_INCOHERENT_MMAP: NO -Checking value of NSIG: "65" -Checking value of _NSIG: "65" -Checking value of SIGRTMAX: "64" -Checking value of SIGRTMIN: "34" -Checking whether the WRFILE -keytab is supported: OK -Checking for kernel change notify support: OK -Checking for Linux kernel oplocks: OK -Checking for kernel share modes: OK -Checking whether POSIX capabilities are available: OK -Checking if can we convert from CP850 to UCS-2LE: OK -Checking if can we convert from UTF-8 to UCS-2LE: OK -vfs_fileid checking for statfs() and struct statfs.f_fsid: OK -Checking whether we can use Linux thread-specific credentials with 32-bit system calls: OK -Checking whether fcntl locking is available: OK -Checking for the maximum value of the 'time_t' type: NO -Checking whether the realpath function allows a NULL argument: OK -Checking for ftruncate extend: OK -getcwd takes a NULL argument: OK -Checking for small off_t: NO -Checking whether blkcnt_t is 32 bit: NO -Checking whether blkcnt_t is 64 bit: OK -Checking whether fcntl lock supports open file description locks: OK diff --git a/Contrib-Inspur/openbmc/meta-security/files/waf-cross-answers/cross-answers-i586.txt b/Contrib-Inspur/openbmc/meta-security/files/waf-cross-answers/cross-answers-i586.txt deleted file mode 100644 index a5cd9981..00000000 --- a/Contrib-Inspur/openbmc/meta-security/files/waf-cross-answers/cross-answers-i586.txt +++ /dev/null @@ -1,40 +0,0 @@ -Checking uname sysname type: "Linux" -Checking uname version type: "# Wed May 20 10:34:39 UTC 2015" -Checking simple C program: "hello world" -rpath library support: OK --Wl,--version-script support: OK -Checking getconf LFS_CFLAGS: NO -Checking correct behavior of strtoll: NO -Checking for working strptime: OK -Checking for C99 vsnprintf: "1" -Checking for HAVE_SHARED_MMAP: OK -Checking for HAVE_MREMAP: OK -Checking for HAVE_SECURE_MKSTEMP: OK -Checking for HAVE_IFACE_GETIFADDRS: NO -Checking for HAVE_IFACE_IFCONF: NO -Checking for HAVE_IFACE_IFREQ: NO -Checking for large file support without additional flags: NO -Checking for -D_FILE_OFFSET_BITS=64: OK -Checking for HAVE_INCOHERENT_MMAP: NO -Checking value of NSIG: "65" -Checking value of _NSIG: "65" -Checking value of SIGRTMAX: "64" -Checking value of SIGRTMIN: "34" -Checking whether the WRFILE -keytab is supported: OK -Checking for kernel change notify support: OK -Checking for Linux kernel oplocks: OK -Checking for kernel share modes: OK -Checking whether POSIX capabilities are available: OK -Checking if can we convert from CP850 to UCS-2LE: OK -Checking if can we convert from UTF-8 to UCS-2LE: OK -vfs_fileid checking for statfs() and struct statfs.f_fsid: OK -Checking whether we can use Linux thread-specific credentials with 32-bit system calls: OK -Checking whether fcntl locking is available: OK -Checking for the maximum value of the 'time_t' type: NO -Checking whether the realpath function allows a NULL argument: OK -Checking for ftruncate extend: OK -getcwd takes a NULL argument: OK -Checking for small off_t: NO -Checking whether blkcnt_t is 32 bit: NO -Checking whether blkcnt_t is 64 bit: OK -Checking whether fcntl lock supports open file description locks: OK diff --git a/Contrib-Inspur/openbmc/meta-security/files/waf-cross-answers/cross-answers-i686.txt b/Contrib-Inspur/openbmc/meta-security/files/waf-cross-answers/cross-answers-i686.txt deleted file mode 100644 index a5cd9981..00000000 --- a/Contrib-Inspur/openbmc/meta-security/files/waf-cross-answers/cross-answers-i686.txt +++ /dev/null @@ -1,40 +0,0 @@ -Checking uname sysname type: "Linux" -Checking uname version type: "# Wed May 20 10:34:39 UTC 2015" -Checking simple C program: "hello world" -rpath library support: OK --Wl,--version-script support: OK -Checking getconf LFS_CFLAGS: NO -Checking correct behavior of strtoll: NO -Checking for working strptime: OK -Checking for C99 vsnprintf: "1" -Checking for HAVE_SHARED_MMAP: OK -Checking for HAVE_MREMAP: OK -Checking for HAVE_SECURE_MKSTEMP: OK -Checking for HAVE_IFACE_GETIFADDRS: NO -Checking for HAVE_IFACE_IFCONF: NO -Checking for HAVE_IFACE_IFREQ: NO -Checking for large file support without additional flags: NO -Checking for -D_FILE_OFFSET_BITS=64: OK -Checking for HAVE_INCOHERENT_MMAP: NO -Checking value of NSIG: "65" -Checking value of _NSIG: "65" -Checking value of SIGRTMAX: "64" -Checking value of SIGRTMIN: "34" -Checking whether the WRFILE -keytab is supported: OK -Checking for kernel change notify support: OK -Checking for Linux kernel oplocks: OK -Checking for kernel share modes: OK -Checking whether POSIX capabilities are available: OK -Checking if can we convert from CP850 to UCS-2LE: OK -Checking if can we convert from UTF-8 to UCS-2LE: OK -vfs_fileid checking for statfs() and struct statfs.f_fsid: OK -Checking whether we can use Linux thread-specific credentials with 32-bit system calls: OK -Checking whether fcntl locking is available: OK -Checking for the maximum value of the 'time_t' type: NO -Checking whether the realpath function allows a NULL argument: OK -Checking for ftruncate extend: OK -getcwd takes a NULL argument: OK -Checking for small off_t: NO -Checking whether blkcnt_t is 32 bit: NO -Checking whether blkcnt_t is 64 bit: OK -Checking whether fcntl lock supports open file description locks: OK diff --git a/Contrib-Inspur/openbmc/meta-security/files/waf-cross-answers/cross-answers-mips.txt b/Contrib-Inspur/openbmc/meta-security/files/waf-cross-answers/cross-answers-mips.txt deleted file mode 100644 index 3e239e72..00000000 --- a/Contrib-Inspur/openbmc/meta-security/files/waf-cross-answers/cross-answers-mips.txt +++ /dev/null @@ -1,40 +0,0 @@ -Checking uname sysname type: "Linux" -Checking uname version type: "# Wed May 20 10:34:39 UTC 2015" -Checking simple C program: "hello world" -rpath library support: OK --Wl,--version-script support: OK -Checking getconf LFS_CFLAGS: NO -Checking correct behavior of strtoll: NO -Checking for working strptime: OK -Checking for C99 vsnprintf: "1" -Checking for HAVE_SHARED_MMAP: OK -Checking for HAVE_MREMAP: OK -Checking for HAVE_SECURE_MKSTEMP: OK -Checking for HAVE_IFACE_GETIFADDRS: NO -Checking for HAVE_IFACE_IFCONF: NO -Checking for HAVE_IFACE_IFREQ: NO -Checking for large file support without additional flags: NO -Checking for -D_FILE_OFFSET_BITS=64: OK -Checking for HAVE_INCOHERENT_MMAP: NO -Checking value of NSIG: "128" -Checking value of _NSIG: "128" -Checking value of SIGRTMAX: "127" -Checking value of SIGRTMIN: "34" -Checking whether the WRFILE -keytab is supported: OK -Checking for kernel change notify support: OK -Checking for Linux kernel oplocks: OK -Checking for kernel share modes: OK -Checking whether POSIX capabilities are available: OK -Checking if can we convert from CP850 to UCS-2LE: OK -Checking if can we convert from UTF-8 to UCS-2LE: OK -vfs_fileid checking for statfs() and struct statfs.f_fsid: OK -Checking whether we can use Linux thread-specific credentials: OK -Checking whether fcntl locking is available: OK -Checking for the maximum value of the 'time_t' type: NO -Checking whether the realpath function allows a NULL argument: OK -Checking for ftruncate extend: OK -getcwd takes a NULL argument: OK -Checking for small off_t: NO -Checking whether blkcnt_t is 32 bit: NO -Checking whether blkcnt_t is 64 bit: OK -Checking whether fcntl lock supports open file description locks: OK diff --git a/Contrib-Inspur/openbmc/meta-security/files/waf-cross-answers/cross-answers-mips64.txt b/Contrib-Inspur/openbmc/meta-security/files/waf-cross-answers/cross-answers-mips64.txt deleted file mode 100644 index 82e694fd..00000000 --- a/Contrib-Inspur/openbmc/meta-security/files/waf-cross-answers/cross-answers-mips64.txt +++ /dev/null @@ -1,39 +0,0 @@ -Checking uname sysname type: "Linux" -Checking uname version type: "# Wed May 20 10:34:39 UTC 2015" -Checking simple C program: "hello world" -rpath library support: OK --Wl,--version-script support: OK -Checking getconf LFS_CFLAGS: NO -Checking correct behavior of strtoll: NO -Checking for working strptime: OK -Checking for C99 vsnprintf: "1" -Checking for HAVE_SHARED_MMAP: OK -Checking for HAVE_MREMAP: OK -Checking for HAVE_SECURE_MKSTEMP: OK -Checking for HAVE_IFACE_GETIFADDRS: NO -Checking for HAVE_IFACE_IFCONF: NO -Checking for HAVE_IFACE_IFREQ: NO -Checking for large file support without additional flags: OK -Checking for HAVE_INCOHERENT_MMAP: OK -Checking value of NSIG: "128" -Checking value of _NSIG: "128" -Checking value of SIGRTMAX: "127" -Checking value of SIGRTMIN: "34" -Checking whether the WRFILE -keytab is supported: OK -Checking for kernel change notify support: OK -Checking for Linux kernel oplocks: OK -Checking for kernel share modes: OK -Checking whether POSIX capabilities are available: OK -Checking if can we convert from CP850 to UCS-2LE: OK -Checking if can we convert from UTF-8 to UCS-2LE: OK -vfs_fileid checking for statfs() and struct statfs.f_fsid: OK -Checking whether we can use Linux thread-specific credentials: OK -Checking whether fcntl locking is available: OK -Checking for the maximum value of the 'time_t' type: OK -Checking whether the realpath function allows a NULL argument: OK -Checking for ftruncate extend: OK -getcwd takes a NULL argument: OK -Checking for small off_t: NO -Checking whether blkcnt_t is 32 bit: NO -Checking whether blkcnt_t is 64 bit: OK -Checking whether fcntl lock supports open file description locks: OK diff --git a/Contrib-Inspur/openbmc/meta-security/files/waf-cross-answers/cross-answers-mips64el.txt b/Contrib-Inspur/openbmc/meta-security/files/waf-cross-answers/cross-answers-mips64el.txt deleted file mode 100644 index 82e694fd..00000000 --- a/Contrib-Inspur/openbmc/meta-security/files/waf-cross-answers/cross-answers-mips64el.txt +++ /dev/null @@ -1,39 +0,0 @@ -Checking uname sysname type: "Linux" -Checking uname version type: "# Wed May 20 10:34:39 UTC 2015" -Checking simple C program: "hello world" -rpath library support: OK --Wl,--version-script support: OK -Checking getconf LFS_CFLAGS: NO -Checking correct behavior of strtoll: NO -Checking for working strptime: OK -Checking for C99 vsnprintf: "1" -Checking for HAVE_SHARED_MMAP: OK -Checking for HAVE_MREMAP: OK -Checking for HAVE_SECURE_MKSTEMP: OK -Checking for HAVE_IFACE_GETIFADDRS: NO -Checking for HAVE_IFACE_IFCONF: NO -Checking for HAVE_IFACE_IFREQ: NO -Checking for large file support without additional flags: OK -Checking for HAVE_INCOHERENT_MMAP: OK -Checking value of NSIG: "128" -Checking value of _NSIG: "128" -Checking value of SIGRTMAX: "127" -Checking value of SIGRTMIN: "34" -Checking whether the WRFILE -keytab is supported: OK -Checking for kernel change notify support: OK -Checking for Linux kernel oplocks: OK -Checking for kernel share modes: OK -Checking whether POSIX capabilities are available: OK -Checking if can we convert from CP850 to UCS-2LE: OK -Checking if can we convert from UTF-8 to UCS-2LE: OK -vfs_fileid checking for statfs() and struct statfs.f_fsid: OK -Checking whether we can use Linux thread-specific credentials: OK -Checking whether fcntl locking is available: OK -Checking for the maximum value of the 'time_t' type: OK -Checking whether the realpath function allows a NULL argument: OK -Checking for ftruncate extend: OK -getcwd takes a NULL argument: OK -Checking for small off_t: NO -Checking whether blkcnt_t is 32 bit: NO -Checking whether blkcnt_t is 64 bit: OK -Checking whether fcntl lock supports open file description locks: OK diff --git a/Contrib-Inspur/openbmc/meta-security/files/waf-cross-answers/cross-answers-mipsel.txt b/Contrib-Inspur/openbmc/meta-security/files/waf-cross-answers/cross-answers-mipsel.txt deleted file mode 100644 index 3e239e72..00000000 --- a/Contrib-Inspur/openbmc/meta-security/files/waf-cross-answers/cross-answers-mipsel.txt +++ /dev/null @@ -1,40 +0,0 @@ -Checking uname sysname type: "Linux" -Checking uname version type: "# Wed May 20 10:34:39 UTC 2015" -Checking simple C program: "hello world" -rpath library support: OK --Wl,--version-script support: OK -Checking getconf LFS_CFLAGS: NO -Checking correct behavior of strtoll: NO -Checking for working strptime: OK -Checking for C99 vsnprintf: "1" -Checking for HAVE_SHARED_MMAP: OK -Checking for HAVE_MREMAP: OK -Checking for HAVE_SECURE_MKSTEMP: OK -Checking for HAVE_IFACE_GETIFADDRS: NO -Checking for HAVE_IFACE_IFCONF: NO -Checking for HAVE_IFACE_IFREQ: NO -Checking for large file support without additional flags: NO -Checking for -D_FILE_OFFSET_BITS=64: OK -Checking for HAVE_INCOHERENT_MMAP: NO -Checking value of NSIG: "128" -Checking value of _NSIG: "128" -Checking value of SIGRTMAX: "127" -Checking value of SIGRTMIN: "34" -Checking whether the WRFILE -keytab is supported: OK -Checking for kernel change notify support: OK -Checking for Linux kernel oplocks: OK -Checking for kernel share modes: OK -Checking whether POSIX capabilities are available: OK -Checking if can we convert from CP850 to UCS-2LE: OK -Checking if can we convert from UTF-8 to UCS-2LE: OK -vfs_fileid checking for statfs() and struct statfs.f_fsid: OK -Checking whether we can use Linux thread-specific credentials: OK -Checking whether fcntl locking is available: OK -Checking for the maximum value of the 'time_t' type: NO -Checking whether the realpath function allows a NULL argument: OK -Checking for ftruncate extend: OK -getcwd takes a NULL argument: OK -Checking for small off_t: NO -Checking whether blkcnt_t is 32 bit: NO -Checking whether blkcnt_t is 64 bit: OK -Checking whether fcntl lock supports open file description locks: OK diff --git a/Contrib-Inspur/openbmc/meta-security/files/waf-cross-answers/cross-answers-powerpc.txt b/Contrib-Inspur/openbmc/meta-security/files/waf-cross-answers/cross-answers-powerpc.txt deleted file mode 100644 index 27b9378a..00000000 --- a/Contrib-Inspur/openbmc/meta-security/files/waf-cross-answers/cross-answers-powerpc.txt +++ /dev/null @@ -1,40 +0,0 @@ -Checking uname sysname type: "Linux" -Checking uname version type: "# Wed May 20 10:34:39 UTC 2015" -Checking simple C program: "hello world" -rpath library support: OK --Wl,--version-script support: OK -Checking getconf LFS_CFLAGS: NO -Checking correct behavior of strtoll: NO -Checking for working strptime: OK -Checking for C99 vsnprintf: "1" -Checking for HAVE_SHARED_MMAP: OK -Checking for HAVE_MREMAP: OK -Checking for HAVE_SECURE_MKSTEMP: OK -Checking for HAVE_IFACE_GETIFADDRS: NO -Checking for HAVE_IFACE_IFCONF: NO -Checking for HAVE_IFACE_IFREQ: NO -Checking for large file support without additional flags: NO -Checking for -D_FILE_OFFSET_BITS=64: OK -Checking for HAVE_INCOHERENT_MMAP: NO -Checking value of NSIG: "65" -Checking value of _NSIG: "65" -Checking value of SIGRTMAX: "64" -Checking value of SIGRTMIN: "34" -Checking whether the WRFILE -keytab is supported: OK -Checking for kernel change notify support: OK -Checking for Linux kernel oplocks: OK -Checking for kernel share modes: OK -Checking whether POSIX capabilities are available: OK -Checking if can we convert from CP850 to UCS-2LE: OK -Checking if can we convert from UTF-8 to UCS-2LE: OK -vfs_fileid checking for statfs() and struct statfs.f_fsid: OK -Checking whether we can use Linux thread-specific credentials: OK -Checking whether fcntl locking is available: OK -Checking for the maximum value of the 'time_t' type: NO -Checking whether the realpath function allows a NULL argument: OK -Checking for ftruncate extend: OK -getcwd takes a NULL argument: OK -Checking for small off_t: NO -Checking whether blkcnt_t is 32 bit: NO -Checking whether blkcnt_t is 64 bit: OK -Checking whether fcntl lock supports open file description locks: OK diff --git a/Contrib-Inspur/openbmc/meta-security/files/waf-cross-answers/cross-answers-powerpc64.txt b/Contrib-Inspur/openbmc/meta-security/files/waf-cross-answers/cross-answers-powerpc64.txt deleted file mode 100644 index 7fd3092c..00000000 --- a/Contrib-Inspur/openbmc/meta-security/files/waf-cross-answers/cross-answers-powerpc64.txt +++ /dev/null @@ -1,40 +0,0 @@ -Checking uname sysname type: "Linux" -Checking uname version type: "# Wed May 20 10:34:39 UTC 2015" -Checking simple C program: "hello world" -rpath library support: OK --Wl,--version-script support: OK -Checking getconf LFS_CFLAGS: NO -Checking correct behavior of strtoll: NO -Checking for working strptime: OK -Checking for C99 vsnprintf: "1" -Checking for HAVE_SHARED_MMAP: OK -Checking for HAVE_MREMAP: OK -Checking for HAVE_SECURE_MKSTEMP: OK -Checking for HAVE_IFACE_GETIFADDRS: NO -Checking for HAVE_IFACE_IFCONF: NO -Checking for HAVE_IFACE_IFREQ: NO -Checking for large file support without additional flags: OK -Checking for HAVE_INCOHERENT_MMAP: NO -Checking value of NSIG: "65" -Checking value of _NSIG: "65" -Checking value of SIGRTMAX: "64" -Checking value of SIGRTMIN: "34" -Checking whether the WRFILE -keytab is supported: OK -Checking for kernel change notify support: OK -Checking for Linux kernel oplocks: OK -Checking for kernel share modes: OK -Checking whether POSIX capabilities are available: OK -Checking if can we convert from CP850 to UCS-2LE: (255, "") -Checking if can we convert from IBM850 to UCS-2LE: (255, "") -Checking if can we convert from UTF-8 to UCS-2LE: OK -vfs_fileid checking for statfs() and struct statfs.f_fsid: OK -Checking whether we can use Linux thread-specific credentials: OK -Checking whether fcntl locking is available: OK -Checking for the maximum value of the 'time_t' type: OK -Checking whether the realpath function allows a NULL argument: OK -Checking for ftruncate extend: OK -getcwd takes a NULL argument: OK -Checking for small off_t: NO -Checking whether blkcnt_t is 32 bit: NO -Checking whether blkcnt_t is 64 bit: OK -Checking whether fcntl lock supports open file description locks: OK diff --git a/Contrib-Inspur/openbmc/meta-security/files/waf-cross-answers/cross-answers-riscv64.txt b/Contrib-Inspur/openbmc/meta-security/files/waf-cross-answers/cross-answers-riscv64.txt deleted file mode 100644 index 1023f6af..00000000 --- a/Contrib-Inspur/openbmc/meta-security/files/waf-cross-answers/cross-answers-riscv64.txt +++ /dev/null @@ -1,39 +0,0 @@ -Checking uname sysname type: "Linux" -Checking uname version type: "# Wed May 20 10:34:39 UTC 2015" -Checking simple C program: "hello world" -rpath library support: OK --Wl,--version-script support: OK -Checking getconf LFS_CFLAGS: NO -Checking correct behavior of strtoll: NO -Checking for working strptime: OK -Checking for C99 vsnprintf: "1" -Checking for HAVE_SHARED_MMAP: OK -Checking for HAVE_MREMAP: OK -Checking for HAVE_SECURE_MKSTEMP: OK -Checking for HAVE_IFACE_GETIFADDRS: NO -Checking for HAVE_IFACE_IFCONF: NO -Checking for HAVE_IFACE_IFREQ: NO -Checking for large file support without additional flags: OK -Checking for HAVE_INCOHERENT_MMAP: NO -Checking value of NSIG: "65" -Checking value of _NSIG: "65" -Checking value of SIGRTMAX: "64" -Checking value of SIGRTMIN: "34" -Checking whether the WRFILE -keytab is supported: OK -Checking for kernel change notify support: OK -Checking for Linux kernel oplocks: OK -Checking for kernel share modes: OK -Checking whether POSIX capabilities are available: OK -Checking if can we convert from CP850 to UCS-2LE: OK -Checking if can we convert from UTF-8 to UCS-2LE: OK -vfs_fileid checking for statfs() and struct statfs.f_fsid: OK -Checking whether we can use Linux thread-specific credentials: OK -Checking whether fcntl locking is available: OK -Checking for the maximum value of the 'time_t' type: OK -Checking whether the realpath function allows a NULL argument: OK -Checking for ftruncate extend: OK -getcwd takes a NULL argument: OK -Checking for small off_t: NO -Checking whether blkcnt_t is 32 bit: NO -Checking whether blkcnt_t is 64 bit: OK -Checking whether fcntl lock supports open file description locks: OK diff --git a/Contrib-Inspur/openbmc/meta-security/files/waf-cross-answers/cross-answers-x86_64.txt b/Contrib-Inspur/openbmc/meta-security/files/waf-cross-answers/cross-answers-x86_64.txt deleted file mode 100644 index 1023f6af..00000000 --- a/Contrib-Inspur/openbmc/meta-security/files/waf-cross-answers/cross-answers-x86_64.txt +++ /dev/null @@ -1,39 +0,0 @@ -Checking uname sysname type: "Linux" -Checking uname version type: "# Wed May 20 10:34:39 UTC 2015" -Checking simple C program: "hello world" -rpath library support: OK --Wl,--version-script support: OK -Checking getconf LFS_CFLAGS: NO -Checking correct behavior of strtoll: NO -Checking for working strptime: OK -Checking for C99 vsnprintf: "1" -Checking for HAVE_SHARED_MMAP: OK -Checking for HAVE_MREMAP: OK -Checking for HAVE_SECURE_MKSTEMP: OK -Checking for HAVE_IFACE_GETIFADDRS: NO -Checking for HAVE_IFACE_IFCONF: NO -Checking for HAVE_IFACE_IFREQ: NO -Checking for large file support without additional flags: OK -Checking for HAVE_INCOHERENT_MMAP: NO -Checking value of NSIG: "65" -Checking value of _NSIG: "65" -Checking value of SIGRTMAX: "64" -Checking value of SIGRTMIN: "34" -Checking whether the WRFILE -keytab is supported: OK -Checking for kernel change notify support: OK -Checking for Linux kernel oplocks: OK -Checking for kernel share modes: OK -Checking whether POSIX capabilities are available: OK -Checking if can we convert from CP850 to UCS-2LE: OK -Checking if can we convert from UTF-8 to UCS-2LE: OK -vfs_fileid checking for statfs() and struct statfs.f_fsid: OK -Checking whether we can use Linux thread-specific credentials: OK -Checking whether fcntl locking is available: OK -Checking for the maximum value of the 'time_t' type: OK -Checking whether the realpath function allows a NULL argument: OK -Checking for ftruncate extend: OK -getcwd takes a NULL argument: OK -Checking for small off_t: NO -Checking whether blkcnt_t is 32 bit: NO -Checking whether blkcnt_t is 64 bit: OK -Checking whether fcntl lock supports open file description locks: OK diff --git a/Contrib-Inspur/openbmc/meta-security/lib/oeqa/runtime/cases/checksec.py b/Contrib-Inspur/openbmc/meta-security/lib/oeqa/runtime/cases/checksec.py index ff6d2f31..e46744c6 100644 --- a/Contrib-Inspur/openbmc/meta-security/lib/oeqa/runtime/cases/checksec.py +++ b/Contrib-Inspur/openbmc/meta-security/lib/oeqa/runtime/cases/checksec.py @@ -24,6 +24,7 @@ def test_checksec_xml(self): self.assertEqual(status, 0, msg = msg) @OETestDepends(['checksec.CheckSecTest.test_checksec_xml']) + @OEHasPackage(['binutils']) def test_checksec_fortify(self): status, output = self.target.run('checksec --fortify-proc 1') match = re.search('FORTIFY_SOURCE support:', output) diff --git a/Contrib-Inspur/openbmc/meta-security/lib/oeqa/runtime/cases/clamav.py b/Contrib-Inspur/openbmc/meta-security/lib/oeqa/runtime/cases/clamav.py index d0bc645a..cf839373 100644 --- a/Contrib-Inspur/openbmc/meta-security/lib/oeqa/runtime/cases/clamav.py +++ b/Contrib-Inspur/openbmc/meta-security/lib/oeqa/runtime/cases/clamav.py @@ -48,6 +48,15 @@ def test_ping_clamav_net(self): self.assertEqual(status, 0, msg = msg) @OETestDepends(['clamav.ClamavTest.test_ping_clamav_net']) + def test_freshclam_check_mirrors(self): + status, output = self.target.run('freshclam --list-mirrors') + match = re.search('Failures: 0', output) + if not match: + msg = ('freshclam --list-mirrors: failed. ' + 'Status and output:%s and %s' % (status, output)) + self.assertEqual(status, 1, msg = msg) + + @OETestDepends(['clamav.ClamavTest.test_freshclam_check_mirrors']) def test_freshclam_download(self): status, output = self.target.run('freshclam --show-progress') match = re.search('Database updated', output) @@ -57,12 +66,3 @@ def test_freshclam_download(self): 'Status and output:%s and %s' % (status, output)) self.assertEqual(status, 1, msg = msg) - @OETestDepends(['clamav.ClamavTest.test_freshclam_download']) - def test_freshclam_check_mirrors(self): - status, output = self.target.run('freshclam --list-mirrors') - match = re.search('Failures: 0', output) - if not match: - msg = ('freshclam --list-mirrors: failed. ' - 'Status and output:%s and %s' % (status, output)) - self.assertEqual(status, 1, msg = msg) - diff --git a/Contrib-Inspur/openbmc/meta-security/lib/oeqa/runtime/cases/suricata.py b/Contrib-Inspur/openbmc/meta-security/lib/oeqa/runtime/cases/suricata.py index 17fc8c50..7f052ecd 100644 --- a/Contrib-Inspur/openbmc/meta-security/lib/oeqa/runtime/cases/suricata.py +++ b/Contrib-Inspur/openbmc/meta-security/lib/oeqa/runtime/cases/suricata.py @@ -1,6 +1,7 @@ # Copyright (C) 2019 Armin Kuster # import re +from tempfile import mkstemp from oeqa.runtime.case import OERuntimeTestCase from oeqa.core.decorator.depends import OETestDepends @@ -9,6 +10,22 @@ class SuricataTest(OERuntimeTestCase): + @classmethod + def setUpClass(cls): + cls.tmp_fd, cls.tmp_path = mkstemp() + with os.fdopen(cls.tmp_fd, 'w') as f: + # use google public dns + f.write("nameserver 8.8.8.8") + f.write(os.linesep) + f.write("nameserver 8.8.4.4") + f.write(os.linesep) + f.write("nameserver 127.0.0.1") + f.write(os.linesep) + + @classmethod + def tearDownClass(cls): + os.remove(cls.tmp_path) + @OEHasPackage(['suricata']) @OETestDepends(['ssh.SSHTest.test_ssh']) def test_suricata_help(self): @@ -18,10 +35,42 @@ def test_suricata_help(self): self.assertEqual(status, 1, msg = msg) @OETestDepends(['suricata.SuricataTest.test_suricata_help']) - def test_suricata_unittest(self): - status, output = self.target.run('suricata -u') - match = re.search('FAILED: 0 ', output) - if not match: - msg = ('suricata unittest had an unexpected failure. ' - 'Status and output:%s and %s' % (status, output)) - self.assertEqual(status, 0, msg = msg) + def test_ping_openinfosecfoundation_org(self): + dst = '/etc/resolv.conf' + self.tc.target.run('rm -f %s' % dst) + (status, output) = self.tc.target.copyTo(self.tmp_path, dst) + msg = 'File could not be copied. Output: %s' % output + self.assertEqual(status, 0, msg=msg) + + status, output = self.target.run('ping -c 1 openinfosecfoundation.org') + msg = ('ping openinfosecfoundation.org failed: output is:\n%s' % output) + self.assertEqual(status, 0, msg = msg) + + @OEHasPackage(['python3-suricata-update']) + @OETestDepends(['suricata.SuricataTest.test_ping_openinfosecfoundation_org']) + def test_suricata_update(self): + status, output = self.tc.target.run('suricata-update') + msg = ('suricata-update had an unexpected failure. ' + 'Status and output:%s and %s' % (status, output)) + self.assertEqual(status, 0, msg = msg) + + @OETestDepends(['suricata.SuricataTest.test_suricata_update']) + def test_suricata_update_sources_list(self): + status, output = self.tc.target.run('suricata-update list-sources') + msg = ('suricata-update list-sources had an unexpected failure. ' + 'Status and output:%s and %s' % (status, output)) + self.assertEqual(status, 0, msg = msg) + + @OETestDepends(['suricata.SuricataTest.test_suricata_update_sources_list']) + def test_suricata_update_sources(self): + status, output = self.tc.target.run('suricata-update update-sources') + msg = ('suricata-update update-sources had an unexpected failure. ' + 'Status and output:%s and %s' % (status, output)) + self.assertEqual(status, 0, msg = msg) + + @OETestDepends(['suricata.SuricataTest.test_suricata_update_sources']) + def test_suricata_update_enable_source(self): + status, output = self.tc.target.run('suricata-update enable-source oisf/trafficid') + msg = ('suricata-update enable-source oisf/trafficid had an unexpected failure. ' + 'Status and output:%s and %s' % (status, output)) + self.assertEqual(status, 0, msg = msg) diff --git a/Contrib-Inspur/openbmc/meta-security/meta-integrity/README.md b/Contrib-Inspur/openbmc/meta-security/meta-integrity/README.md index 5bef76e8..46079487 100644 --- a/Contrib-Inspur/openbmc/meta-security/meta-integrity/README.md +++ b/Contrib-Inspur/openbmc/meta-security/meta-integrity/README.md @@ -74,7 +74,7 @@ compilation of the Linux kernel. To also activate it when building the image, enable image signing in the local.conf like this: INHERIT += "ima-evm-rootfs" - IMA_EVM_KEY_DIR = "${IMA_EVM_BASE}/data/debug-keys" + IMA_EVM_KEY_DIR = "${INTEGRITY_BASE}/data/debug-keys" This uses the default keys provided in the "data" directory of the layer. Because everyone has access to these private keys, such an image @@ -96,7 +96,7 @@ for that are included in the layer. This is also how the # In that shell, create the keys. Several options exist: # 1. Self-signed keys. - $IMA_EVM_BASE/scripts/ima-gen-self-signed.sh + $INTEGRITY_BASE/scripts/ima-gen-self-signed.sh # 2. Keys signed by a new CA. # When asked for a PEM passphrase, that will be for the root CA. @@ -104,11 +104,11 @@ for that are included in the layer. This is also how the # only creating new certificates does. Most likely the default # attributes for these certificates need to be adapted; modify # the scripts as needed. - # $IMA_EVM_BASE/scripts/ima-gen-local-ca.sh - # $IMA_EVM_BASE/scripts/ima-gen-CA-signed.sh + # $INTEGRITY_BASE/scripts/ima-gen-local-ca.sh + # $INTEGRITY_BASE/scripts/ima-gen-CA-signed.sh # 3. Keys signed by an existing CA. - # $IMA_EVM_BASE/scripts/ima-gen-CA-signed.sh + # $INTEGRITY_BASE/scripts/ima-gen-CA-signed.sh exit When using ``ima-self-signed.sh`` as described above, self-signed keys @@ -169,7 +169,7 @@ IMA policy loading became broken in systemd 2.18. The modified systemd changes. To activate policy loading via systemd, place a policy file in `/etc/ima/ima-policy`, for example with: - IMA_EVM_POLICY_SYSTEMD = "${IMA_EVM_BASE}/data/ima_policy_simple" + IMA_EVM_POLICY_SYSTEMD = "${INTEGRITY_BASE}/data/ima_policy_simple" To check that measuring works, look at `/sys/kernel/security/ima/ascii_runtime_measurements` diff --git a/Contrib-Inspur/openbmc/meta-security/meta-integrity/classes/ima-evm-rootfs.bbclass b/Contrib-Inspur/openbmc/meta-security/meta-integrity/classes/ima-evm-rootfs.bbclass index 8aec388d..d6ade3bf 100644 --- a/Contrib-Inspur/openbmc/meta-security/meta-integrity/classes/ima-evm-rootfs.bbclass +++ b/Contrib-Inspur/openbmc/meta-security/meta-integrity/classes/ima-evm-rootfs.bbclass @@ -1,7 +1,7 @@ # No default! Either this or IMA_EVM_PRIVKEY/IMA_EVM_X509 have to be # set explicitly in a local.conf before activating ima-evm-rootfs. # To use the insecure (because public) example keys, use -# IMA_EVM_KEY_DIR = "${IMA_EVM_BASE}/data/debug-keys" +# IMA_EVM_KEY_DIR = "${INTEGRITY_BASE}/data/debug-keys" IMA_EVM_KEY_DIR ?= "IMA_EVM_KEY_DIR_NOT_SET" # Private key for IMA signing. The default is okay when diff --git a/Contrib-Inspur/openbmc/meta-security/meta-integrity/classes/kernel-modsign.bbclass b/Contrib-Inspur/openbmc/meta-security/meta-integrity/classes/kernel-modsign.bbclass new file mode 100644 index 00000000..09025baa --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-security/meta-integrity/classes/kernel-modsign.bbclass @@ -0,0 +1,29 @@ +# No default! Either this or MODSIGN_PRIVKEY/MODSIGN_X509 have to be +# set explicitly in a local.conf before activating kernel-modsign. +# To use the insecure (because public) example keys, use +# MODSIGN_KEY_DIR = "${INTEGRITY_BASE}/data/debug-keys" +MODSIGN_KEY_DIR ?= "MODSIGN_KEY_DIR_NOT_SET" + +# Private key for modules signing. The default is okay when +# using the example key directory. +MODSIGN_PRIVKEY ?= "${MODSIGN_KEY_DIR}/privkey_modsign.pem" + +# Public part of certificates used for modules signing. +# The default is okay when using the example key directory. +MODSIGN_X509 ?= "${MODSIGN_KEY_DIR}/x509_modsign.crt" + +# If this class is enabled, disable stripping signatures from modules +INHIBIT_PACKAGE_STRIP = "1" + +kernel_do_configure_prepend() { + if [ -f "${MODSIGN_PRIVKEY}" -a -f "${MODSIGN_X509}" ]; then + cat "${MODSIGN_PRIVKEY}" "${MODSIGN_X509}" \ + > "${B}/modsign_key.pem" + else + bberror "Either modsign key or certificate are invalid" + fi +} + +do_shared_workdir_append() { + cp modsign_key.pem $kerneldir/ +} diff --git a/Contrib-Inspur/openbmc/meta-security/meta-integrity/conf/layer.conf b/Contrib-Inspur/openbmc/meta-security/meta-integrity/conf/layer.conf index 2f696cf7..bfc9c6ff 100644 --- a/Contrib-Inspur/openbmc/meta-security/meta-integrity/conf/layer.conf +++ b/Contrib-Inspur/openbmc/meta-security/meta-integrity/conf/layer.conf @@ -13,12 +13,16 @@ BBFILE_PRIORITY_integrity = "6" # Set a variable to get to the top of the metadata location. Needed # for finding scripts (when following the README.md instructions) and # default debug keys (in ima-evm-rootfs.bbclass). -IMA_EVM_BASE := '${LAYERDIR}' +INTEGRITY_BASE := '${LAYERDIR}' # We must not export this path to all shell scripts (as in "export -# IMA_EVM_BASE"), because that causes problems with sstate (becames +# INTEGRITY_BASE"), because that causes problems with sstate (becames # dependent on location of the layer). Exporting it to just the # interactive shell is enough. -OE_TERMINAL_EXPORTS += "IMA_EVM_BASE" +OE_TERMINAL_EXPORTS += "INTEGRITY_BASE" -LAYERSERIES_COMPAT_integrity = "warrior" +LAYERSERIES_COMPAT_integrity = "zeus" +# ima-evm-utils depends on keyutils from meta-oe +LAYERDEPENDS_integrity = "core openembedded-layer" + +BBLAYERS_LAYERINDEX_NAME_integrity = "meta-integrity" diff --git a/Contrib-Inspur/openbmc/meta-security/meta-integrity/data/debug-keys/privkey_modsign.pem b/Contrib-Inspur/openbmc/meta-security/meta-integrity/data/debug-keys/privkey_modsign.pem new file mode 100644 index 00000000..4cac00ae --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-security/meta-integrity/data/debug-keys/privkey_modsign.pem @@ -0,0 +1,28 @@ +-----BEGIN PRIVATE KEY----- +MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDEWsJjB2pA5Ih6 +EelXvVjwWY1ix1azMciNRNPPQN1AMXF0K/VUkfOYbaPajg1cQYEf9gk3q7OZ5Axk +UY/e5piZORaPcsmj0lV0L+NSlRYydR5M/QxtEz26585FgqRGdAe6umStPmVKdqa2 +d68O4PgQgJJtVuz6ndm+0uNEUDCVLwhkGQSwNB3qBbZAUX9escZ/a8eUiBfMYKaO +k8JRyM+2br9dgpTFg4UfBYexgNSQo8g5TIBGc8KgQiKCuFj1fQEhV5z4RusHthjc +NYXa3RHmdclxyrGeYr5ZRc47HqE1gd5NDR0WeHn4C4YKcfK1rZZz/2+6hfsIRfGx +6cQKk23hAgMBAAECggEAJ0ULiWirPG04SkmYxF5vEiqm1zGMymvTc0VnoxSS60q4 +KQa9mvtRn5OV6JjuXRwQqga30zV4xvdP7yRMxMSTkllThL7tSuE/C+yj5xlABjlc +JQOa35mwh9fibg5xslF0Vkj+55MKCPlv4CBRl4Uwt4QvRMTUwk6dhMeCgmATR1J1 +2/7AipjtfFYreDx7sLbRVvSzUhmZS0iCbNOhtTWPLNW+9YKHTOffKa04HzNtnAXq +OjJ0IRZD/C6LfkBUsnHg2eEiA97QXh/Srsl9nc8DaUK1IXRywEdmYIoNMWMav2Hm +RO8kkU30BqKW+/EO2ZbH2GmkxvwWd0ocBnLC3FRWEQKBgQDu4T8CB3YsOcVjqem4 +iBlaSht/b46YQc7A1SOqZCimehmmXNSxQOkapIG3wlIr5edtXQA+xv09+WrproUB +SjAnqaH6pYeCvbNlY5k344gtYs+Kco2rq5GYa+LumAeX2Sam8F7u4LxvEogCecX7 +e4rnG3lt3AVuuRE7zpCQtaWcJQKBgQDSbUvea9pcYli9pssTl+ijQKkgG9DdaYbA +I5w5bY1TPYZ/Ocysljefv/ssaHFh4DPxE1MQ5JHwZgZRo1EICxxYzGsLjyR/fmjz +1c/NJlTtalCNtLvWaf7b02ag/abnP8neiSpLL5xqHvGo5ikWwgYQD+9HVKGvL3S1 +kI7x/ziADQKBgQCqFbkuMa/jh3LTJp0iZc1fa1qu3vhx0pFq3Zeab9w9xLxUps5O +MwCGltFBzNuDJBwm00wkZrzTjq6gGkHbjD5DT1XkyE13OqjsLQFgOOKyJiPN2Qik +TfHJzC91YMwvQ09xF78QaPXiRBiRYrEkAXACY56PKVS45I6vvcFTN/Ll/QKBgA9m +KDMyuVwhZlUaq6nXaBLqXHYZEwPhARd2g6xANCNvUTRmSnAm3hM2vW7WhdWfzq1J +uL53u6ZYEQZQaVGpXn2xF/RUmVsrKQsPDpH4yCZHrXVxUH20bA4yPkRxy5EIvgEn +EI1IAq5RbWXq0f70W/U49U3HB74GPwg6d/uFreDRAoGAN+v9gMQA6A1vM7LvbYR8 +5CwwyqS/CfI9zKPLn53QstguXC/ObafIYQzVRqGb9lCQgtlmmKw4jMY0B/lDzpcH +zS8rqoyvDj/m7i17NYkqXErJKLRQ0ptXKdLXHlG0u185e7Y5p4O3Z5dk8bACkpHi +hp764y+BtU4qIcVaPsPK4uU= +-----END PRIVATE KEY----- diff --git a/Contrib-Inspur/openbmc/meta-security/meta-integrity/data/debug-keys/x509_modsign.crt b/Contrib-Inspur/openbmc/meta-security/meta-integrity/data/debug-keys/x509_modsign.crt new file mode 100644 index 00000000..5fa2a906 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-security/meta-integrity/data/debug-keys/x509_modsign.crt @@ -0,0 +1,22 @@ +-----BEGIN CERTIFICATE----- +MIIDnjCCAoagAwIBAgIUUqmBj5Q8edHMMTXsoGVGEEKdwV4wDQYJKoZIhvcNAQEL +BQAwZzEqMCgGA1UEAxMhbWV0YS1zZWN1cml0eSBtb2R1bGVzIHNpZ25pbmcga2V5 +MRQwEgYDVQQKEwtleGFtcGxlLmNvbTEjMCEGCSqGSIb3DQEJARYUam9obi5kb2VA +ZXhhbXBsZS5jb20wIBcNMTkwNzI3MjIzOTA3WhgPMjExOTA3MjcyMjM5MTVaMGcx +KjAoBgNVBAMTIW1ldGEtc2VjdXJpdHkgbW9kdWxlcyBzaWduaW5nIGtleTEUMBIG +A1UEChMLZXhhbXBsZS5jb20xIzAhBgkqhkiG9w0BCQEWFGpvaG4uZG9lQGV4YW1w +bGUuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAxFrCYwdqQOSI +ehHpV71Y8FmNYsdWszHIjUTTz0DdQDFxdCv1VJHzmG2j2o4NXEGBH/YJN6uzmeQM +ZFGP3uaYmTkWj3LJo9JVdC/jUpUWMnUeTP0MbRM9uufORYKkRnQHurpkrT5lSnam +tnevDuD4EICSbVbs+p3ZvtLjRFAwlS8IZBkEsDQd6gW2QFF/XrHGf2vHlIgXzGCm +jpPCUcjPtm6/XYKUxYOFHwWHsYDUkKPIOUyARnPCoEIigrhY9X0BIVec+EbrB7YY +3DWF2t0R5nXJccqxnmK+WUXOOx6hNYHeTQ0dFnh5+AuGCnHyta2Wc/9vuoX7CEXx +senECpNt4QIDAQABo0AwPjAMBgNVHRMBAf8EAjAAMA8GA1UdDwEB/wQFAwMHgAAw +HQYDVR0OBBYEFDa35X9LnPlrd76inh/cYgeXh6X4MA0GCSqGSIb3DQEBCwUAA4IB +AQBTPTh7zY9BrfZW9Izk9JSZYNigwUDwjrhNBSLr5NKi2A/LmZ0jjdCDkwaCn5io +xrAq5oxPCAkwlzKwY2ootcL3+En4Pq2e5U+n9kRrpDpKKiR5/0S0d9vpgg4eZR0R +kxqE9APCQ5SFU3PgnJ5H5y2SPXzle3bgUsWxNGD81zXFn5clJj4XHvJDWTQ/jG7C +FTQ1o1HXtzda4EmKIzrSU/ayVbpPg5fPEBJjk/hHPT45kfzVZBuxwBLXVbe/YyWi +NTFWCbJwjZwVRKrsQ3HFpYMWvugtcsSHo7vGi06FvUHcS2sUZH5sFn7hulcIGICt +EztTO8Q+yhZujZbmEyJmxqZv +-----END CERTIFICATE----- diff --git a/Contrib-Inspur/openbmc/meta-security/meta-integrity/recipes-core/images/integrity-image-minimal.bb b/Contrib-Inspur/openbmc/meta-security/meta-integrity/recipes-core/images/integrity-image-minimal.bb index 6ed724df..1a3a30a1 100644 --- a/Contrib-Inspur/openbmc/meta-security/meta-integrity/recipes-core/images/integrity-image-minimal.bb +++ b/Contrib-Inspur/openbmc/meta-security/meta-integrity/recipes-core/images/integrity-image-minimal.bb @@ -17,6 +17,5 @@ inherit core-image export IMAGE_BASENAME = "integrity-image-minimal" INHERIT += "ima-evm-rootfs" -IMA_EVM_KEY_DIR = "${IMA_EVM_BASE}/data/debug-keys" QB_KERNEL_CMDLINE_APPEND_append = " ima_appraise=fix ima_policy=tcb ima_policy=appraise_tcb" diff --git a/Contrib-Inspur/openbmc/meta-security/meta-integrity/recipes-core/initrdscripts/initramfs-framework-ima.bb b/Contrib-Inspur/openbmc/meta-security/meta-integrity/recipes-core/initrdscripts/initramfs-framework-ima.bb index 6057e8da..dacdc8bf 100644 --- a/Contrib-Inspur/openbmc/meta-security/meta-integrity/recipes-core/initrdscripts/initramfs-framework-ima.bb +++ b/Contrib-Inspur/openbmc/meta-security/meta-integrity/recipes-core/initrdscripts/initramfs-framework-ima.bb @@ -12,10 +12,13 @@ LIC_FILES_CHKSUM = "file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384 # This policy file will get installed as /etc/ima/ima-policy. # It is located via the normal file search path, so a .bbappend # to this recipe can just point towards one of its own files. -IMA_POLICY ?= "ima_policy_hashed" +IMA_POLICY ?= "ima-policy-hashed" SRC_URI = " file://ima" +inherit features_check +REQUIRED_DISTRO_FEATURES = "ima" + do_install () { install -d ${D}/${sysconfdir}/ima install -d ${D}/init.d diff --git a/Contrib-Inspur/openbmc/meta-security/meta-integrity/recipes-core/packagegroups/packagegroup-ima-evm-utils.bb b/Contrib-Inspur/openbmc/meta-security/meta-integrity/recipes-core/packagegroups/packagegroup-ima-evm-utils.bb index 18acc9dc..8196edb2 100644 --- a/Contrib-Inspur/openbmc/meta-security/meta-integrity/recipes-core/packagegroups/packagegroup-ima-evm-utils.bb +++ b/Contrib-Inspur/openbmc/meta-security/meta-integrity/recipes-core/packagegroups/packagegroup-ima-evm-utils.bb @@ -1,7 +1,9 @@ SUMMARY = "IMA/EVM userspace tools" LICENSE = "MIT" -inherit packagegroup +inherit packagegroup features_check + +REQUIRED_DISTRO_FEATURES = "ima" # Only one at the moment, but perhaps more will come in the future. RDEPENDS_${PN} = " \ diff --git a/Contrib-Inspur/openbmc/meta-security/meta-integrity/recipes-kernel/linux/linux-%.bbappend b/Contrib-Inspur/openbmc/meta-security/meta-integrity/recipes-kernel/linux/linux-%.bbappend index 931854ef..f9a48cd0 100644 --- a/Contrib-Inspur/openbmc/meta-security/meta-integrity/recipes-kernel/linux/linux-%.bbappend +++ b/Contrib-Inspur/openbmc/meta-security/meta-integrity/recipes-kernel/linux/linux-%.bbappend @@ -1,3 +1,5 @@ -FILESEXTRAPATHS_prepend := "${THISDIR}/linux:" +KERNEL_FEATURES_append = " ${@bb.utils.contains("DISTRO_FEATURES", "ima", " features/ima/ima.scc", "" ,d)}" -SRC_URI += "${@bb.utils.contains('DISTRO_FEATURES', 'ima', ' file://ima.cfg', '', d)}" +KERNEL_FEATURES_append = " ${@bb.utils.contains('DISTRO_FEATURES', 'modsign', ' features/ima/modsign.scc', '', d)}" + +inherit ${@bb.utils.contains('DISTRO_FEATURES', 'modsign', 'kernel-modsign', '', d)} diff --git a/Contrib-Inspur/openbmc/meta-security/meta-integrity/recipes-kernel/linux/linux/ima.cfg b/Contrib-Inspur/openbmc/meta-security/meta-integrity/recipes-kernel/linux/linux/ima.cfg deleted file mode 100644 index b3e47ba3..00000000 --- a/Contrib-Inspur/openbmc/meta-security/meta-integrity/recipes-kernel/linux/linux/ima.cfg +++ /dev/null @@ -1,18 +0,0 @@ -CONFIG_IMA=y -CONFIG_IMA_MEASURE_PCR_IDX=10 -CONFIG_IMA_NG_TEMPLATE=y -CONFIG_IMA_DEFAULT_TEMPLATE="ima-ng" -CONFIG_IMA_DEFAULT_HASH_SHA1=y -CONFIG_IMA_DEFAULT_HASH="sha1" -CONFIG_IMA_APPRAISE=y -CONFIG_IMA_APPRAISE_BOOTPARAM=y -CONFIG_IMA_TRUSTED_KEYRING=y -CONFIG_SIGNATURE=y -CONFIG_IMA_WRITE_POLICY=y -CONFIG_IMA_READ_POLICY=y -CONFIG_IMA_LOAD_X509=y -CONFIG_IMA_X509_PATH="/etc/keys/x509_ima.der" - -#CONFIG_INTEGRITY_SIGNATURE=y -#CONFIG_INTEGRITY_ASYMMETRIC_KEYS=y -#CONFIG_INTEGRITY_TRUSTED_KEYRING=y diff --git a/Contrib-Inspur/openbmc/meta-security/meta-integrity/recipes-kernel/linux/linux/ima_evm_root_ca.cfg b/Contrib-Inspur/openbmc/meta-security/meta-integrity/recipes-kernel/linux/linux/ima_evm_root_ca.cfg deleted file mode 100644 index 9a454257..00000000 --- a/Contrib-Inspur/openbmc/meta-security/meta-integrity/recipes-kernel/linux/linux/ima_evm_root_ca.cfg +++ /dev/null @@ -1,3 +0,0 @@ -# CONFIG_IMA_APPRAISE_SIGNED_INIT is not set -CONFIG_EVM_LOAD_X509=y -CONFIG_EVM_X509_PATH="/etc/keys/x509_evm.der" diff --git a/Contrib-Inspur/openbmc/meta-security/meta-integrity/recipes-security/ima-evm-utils/ima-evm-utils/0001-ima-evm-utils-link-to-libcrypto-instead-of-OpenSSL.patch b/Contrib-Inspur/openbmc/meta-security/meta-integrity/recipes-security/ima-evm-utils/ima-evm-utils/0001-ima-evm-utils-link-to-libcrypto-instead-of-OpenSSL.patch deleted file mode 100644 index 5ccb73d9..00000000 --- a/Contrib-Inspur/openbmc/meta-security/meta-integrity/recipes-security/ima-evm-utils/ima-evm-utils/0001-ima-evm-utils-link-to-libcrypto-instead-of-OpenSSL.patch +++ /dev/null @@ -1,65 +0,0 @@ -From 4feaf9b61f93e4043eca26b4ec9f9f68d0cf5e68 Mon Sep 17 00:00:00 2001 -From: Dmitry Eremin-Solenikov -Date: Wed, 6 Mar 2019 01:08:43 +0300 -Subject: [PATCH 1/4] ima-evm-utils: link to libcrypto instead of OpenSSL - -There is no need to link to full libssl. evmctl uses functions from -libcrypto, so let's link only against that library. - -Signed-off-by: Dmitry Eremin-Solenikov ---- - configure.ac | 4 +--- - src/Makefile.am | 9 ++++----- - 2 files changed, 5 insertions(+), 8 deletions(-) - -diff --git a/configure.ac b/configure.ac -index 60f3684..32e8d85 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -24,9 +24,7 @@ LT_INIT - # Checks for header files. - AC_HEADER_STDC - --PKG_CHECK_MODULES(OPENSSL, [ openssl >= 0.9.8 ]) --AC_SUBST(OPENSSL_CFLAGS) --AC_SUBST(OPENSSL_LIBS) -+PKG_CHECK_MODULES(LIBCRYPTO, [libcrypto >= 0.9.8 ]) - AC_SUBST(KERNEL_HEADERS) - AC_CHECK_HEADER(unistd.h) - AC_CHECK_HEADERS(openssl/conf.h) -diff --git a/src/Makefile.am b/src/Makefile.am -index d74fc6f..b81281a 100644 ---- a/src/Makefile.am -+++ b/src/Makefile.am -@@ -1,11 +1,11 @@ - lib_LTLIBRARIES = libimaevm.la - - libimaevm_la_SOURCES = libimaevm.c --libimaevm_la_CPPFLAGS = $(OPENSSL_CFLAGS) -+libimaevm_la_CPPFLAGS = $(LIBCRYPTO_CFLAGS) - # current[:revision[:age]] - # result: [current-age].age.revision - libimaevm_la_LDFLAGS = -version-info 0:0:0 --libimaevm_la_LIBADD = $(OPENSSL_LIBS) -+libimaevm_la_LIBADD = $(LIBCRYPTO_LIBS) - - include_HEADERS = imaevm.h - -@@ -17,12 +17,11 @@ hash_info.h: Makefile - bin_PROGRAMS = evmctl - - evmctl_SOURCES = evmctl.c --evmctl_CPPFLAGS = $(OPENSSL_CFLAGS) -+evmctl_CPPFLAGS = $(LIBCRYPTO_CFLAGS) - evmctl_LDFLAGS = $(LDFLAGS_READLINE) --evmctl_LDADD = $(OPENSSL_LIBS) -lkeyutils libimaevm.la -+evmctl_LDADD = $(LIBCRYPTO_LIBS) -lkeyutils libimaevm.la - - INCLUDES = -I$(top_srcdir) -include config.h - - CLEANFILES = hash_info.h - DISTCLEANFILES = @DISTCLEANFILES@ -- --- -2.17.1 - diff --git a/Contrib-Inspur/openbmc/meta-security/meta-integrity/recipes-security/ima-evm-utils/ima-evm-utils/0002-ima-evm-utils-replace-INCLUDES-with-AM_CPPFLAGS.patch b/Contrib-Inspur/openbmc/meta-security/meta-integrity/recipes-security/ima-evm-utils/ima-evm-utils/0002-ima-evm-utils-replace-INCLUDES-with-AM_CPPFLAGS.patch deleted file mode 100644 index 8237274c..00000000 --- a/Contrib-Inspur/openbmc/meta-security/meta-integrity/recipes-security/ima-evm-utils/ima-evm-utils/0002-ima-evm-utils-replace-INCLUDES-with-AM_CPPFLAGS.patch +++ /dev/null @@ -1,43 +0,0 @@ -From 5bb10f3da420f4c46e44423276a9da0d4bc1b691 Mon Sep 17 00:00:00 2001 -From: Dmitry Eremin-Solenikov -Date: Wed, 6 Mar 2019 01:17:12 +0300 -Subject: [PATCH 2/4] ima-evm-utils: replace INCLUDES with AM_CPPFLAGS - -Replace INCLUDES variable with AM_CPPFLAGS to stop Automake from warning -about deprecated variable usage. - -Signed-off-by: Dmitry Eremin-Solenikov ---- - src/Makefile.am | 6 +++--- - 1 file changed, 3 insertions(+), 3 deletions(-) - -diff --git a/src/Makefile.am b/src/Makefile.am -index b81281a..164e7e4 100644 ---- a/src/Makefile.am -+++ b/src/Makefile.am -@@ -1,7 +1,7 @@ - lib_LTLIBRARIES = libimaevm.la - - libimaevm_la_SOURCES = libimaevm.c --libimaevm_la_CPPFLAGS = $(LIBCRYPTO_CFLAGS) -+libimaevm_la_CPPFLAGS = $(AM_CPPFLAGS) $(LIBCRYPTO_CFLAGS) - # current[:revision[:age]] - # result: [current-age].age.revision - libimaevm_la_LDFLAGS = -version-info 0:0:0 -@@ -17,11 +17,11 @@ hash_info.h: Makefile - bin_PROGRAMS = evmctl - - evmctl_SOURCES = evmctl.c --evmctl_CPPFLAGS = $(LIBCRYPTO_CFLAGS) -+evmctl_CPPFLAGS = $(AM_CPPFLAGS) $(LIBCRYPTO_CFLAGS) - evmctl_LDFLAGS = $(LDFLAGS_READLINE) - evmctl_LDADD = $(LIBCRYPTO_LIBS) -lkeyutils libimaevm.la - --INCLUDES = -I$(top_srcdir) -include config.h -+AM_CPPFLAGS = -I$(top_srcdir) -include config.h - - CLEANFILES = hash_info.h - DISTCLEANFILES = @DISTCLEANFILES@ --- -2.17.1 - diff --git a/Contrib-Inspur/openbmc/meta-security/meta-integrity/recipes-security/ima-evm-utils/ima-evm-utils/0003-ima-evm-utils-include-hash-info.gen-into-distributio.patch b/Contrib-Inspur/openbmc/meta-security/meta-integrity/recipes-security/ima-evm-utils/ima-evm-utils/0003-ima-evm-utils-include-hash-info.gen-into-distributio.patch deleted file mode 100644 index 3d250d2f..00000000 --- a/Contrib-Inspur/openbmc/meta-security/meta-integrity/recipes-security/ima-evm-utils/ima-evm-utils/0003-ima-evm-utils-include-hash-info.gen-into-distributio.patch +++ /dev/null @@ -1,31 +0,0 @@ -From c587ec307a6259a990bfab727cea7db28dba4c23 Mon Sep 17 00:00:00 2001 -From: Dmitry Eremin-Solenikov -Date: Wed, 6 Mar 2019 01:22:30 +0300 -Subject: [PATCH 3/4] ima-evm-utils: include hash-info.gen into distribution - -Include hash-info.gen into tarball and call it from the sourcedir to fix -out-of-tree build (and thus 'make distcheck'). - -Signed-off-by: Dmitry Eremin-Solenikov ---- - src/Makefile.am | 3 ++- - 1 file changed, 2 insertions(+), 1 deletion(-) - -diff --git a/src/Makefile.am b/src/Makefile.am -index 164e7e4..9c037e2 100644 ---- a/src/Makefile.am -+++ b/src/Makefile.am -@@ -11,8 +11,9 @@ include_HEADERS = imaevm.h - - nodist_libimaevm_la_SOURCES = hash_info.h - BUILT_SOURCES = hash_info.h -+EXTRA_DIST = hash_info.gen - hash_info.h: Makefile -- ./hash_info.gen $(KERNEL_HEADERS) >$@ -+ $(srcdir)/hash_info.gen $(KERNEL_HEADERS) >$@ - - bin_PROGRAMS = evmctl - --- -2.17.1 - diff --git a/Contrib-Inspur/openbmc/meta-security/meta-integrity/recipes-security/ima-evm-utils/ima-evm-utils/0004-ima-evm-utils-update-.gitignore-files.patch b/Contrib-Inspur/openbmc/meta-security/meta-integrity/recipes-security/ima-evm-utils/ima-evm-utils/0004-ima-evm-utils-update-.gitignore-files.patch deleted file mode 100644 index 4ada1a27..00000000 --- a/Contrib-Inspur/openbmc/meta-security/meta-integrity/recipes-security/ima-evm-utils/ima-evm-utils/0004-ima-evm-utils-update-.gitignore-files.patch +++ /dev/null @@ -1,34 +0,0 @@ -From b9f327c5c513ccea9cb56d4bbd50c1f66d629099 Mon Sep 17 00:00:00 2001 -From: Dmitry Eremin-Solenikov -Date: Wed, 6 Mar 2019 01:24:04 +0300 -Subject: [PATCH 4/4] ima-evm-utils: update .gitignore files - -Signed-off-by: Dmitry Eremin-Solenikov ---- - .gitignore | 1 + - src/.gitignore | 1 + - 2 files changed, 2 insertions(+) - create mode 100644 src/.gitignore - -diff --git a/.gitignore b/.gitignore -index ca7a06e..cb82166 100644 ---- a/.gitignore -+++ b/.gitignore -@@ -45,6 +45,7 @@ cscope.* - ncscope.* - - # Generated documentation -+*.1 - *.8 - *.5 - manpage.links -diff --git a/src/.gitignore b/src/.gitignore -new file mode 100644 -index 0000000..38e8e3c ---- /dev/null -+++ b/src/.gitignore -@@ -0,0 +1 @@ -+hash_info.h --- -2.17.1 - diff --git a/Contrib-Inspur/openbmc/meta-security/meta-integrity/recipes-security/ima-evm-utils/ima-evm-utils/evmctl.c-do-not-depend-on-xattr.h-with-IMA-defines.patch b/Contrib-Inspur/openbmc/meta-security/meta-integrity/recipes-security/ima-evm-utils/ima-evm-utils/evmctl.c-do-not-depend-on-xattr.h-with-IMA-defines.patch index c0bdd9b4..ffa65dfb 100644 --- a/Contrib-Inspur/openbmc/meta-security/meta-integrity/recipes-security/ima-evm-utils/ima-evm-utils/evmctl.c-do-not-depend-on-xattr.h-with-IMA-defines.patch +++ b/Contrib-Inspur/openbmc/meta-security/meta-integrity/recipes-security/ima-evm-utils/ima-evm-utils/evmctl.c-do-not-depend-on-xattr.h-with-IMA-defines.patch @@ -23,9 +23,9 @@ diff --git a/src/evmctl.c b/src/evmctl.c index c54efbb..23cf54c 100644 --- a/src/evmctl.c +++ b/src/evmctl.c -@@ -56,6 +56,18 @@ - #include +@@ -57,6 +57,18 @@ #include + #include +/* + * linux/xattr.h might be old to have this. Allow compilation on older diff --git a/Contrib-Inspur/openbmc/meta-security/meta-integrity/recipes-security/ima-evm-utils/ima-evm-utils_git.bb b/Contrib-Inspur/openbmc/meta-security/meta-integrity/recipes-security/ima-evm-utils/ima-evm-utils_git.bb index 929d8534..7f649c2d 100644 --- a/Contrib-Inspur/openbmc/meta-security/meta-integrity/recipes-security/ima-evm-utils/ima-evm-utils_git.bb +++ b/Contrib-Inspur/openbmc/meta-security/meta-integrity/recipes-security/ima-evm-utils/ima-evm-utils_git.bb @@ -6,9 +6,9 @@ DEPENDS += "openssl attr keyutils" DEPENDS_class-native += "openssl-native keyutils-native" -PV = "1.0+git${SRCPV}" -SRCREV = "0267fa16990fd0ddcc89984a8e55b27d43e80167" -SRC_URI = "git://git.code.sf.net/p/linux-ima/ima-evm-utils" +PV = "1.2.1+git${SRCPV}" +SRCREV = "3eab1f93b634249c1720f65fcb495b1996f0256e" +SRC_URI = "git://git.code.sf.net/p/linux-ima/ima-evm-utils;branch=ima-evm-utils-1.2.y" # Documentation depends on asciidoc, which we do not have, so # do not build documentation. @@ -21,15 +21,11 @@ SRC_URI += "file://evmctl.c-do-not-depend-on-xattr.h-with-IMA-defines.patch" # Required for xargs with more than one path as argument (better for performance). SRC_URI += "file://command-line-apply-operation-to-all-paths.patch" -SRC_URI += "\ - file://0001-ima-evm-utils-link-to-libcrypto-instead-of-OpenSSL.patch \ - file://0002-ima-evm-utils-replace-INCLUDES-with-AM_CPPFLAGS.patch \ - file://0003-ima-evm-utils-include-hash-info.gen-into-distributio.patch \ - file://0004-ima-evm-utils-update-.gitignore-files.patch \ -" S = "${WORKDIR}/git" -inherit pkgconfig autotools +inherit pkgconfig autotools features_check + +REQUIRED_DISTRO_FEATURES = "ima" EXTRA_OECONF_append_class-target = " --with-kernel-headers=${STAGING_KERNEL_BUILDDIR}" diff --git a/Contrib-Inspur/openbmc/meta-security/meta-integrity/recipes-security/ima_policy_appraise_all/ima-policy-appraise-all_1.0.bb b/Contrib-Inspur/openbmc/meta-security/meta-integrity/recipes-security/ima_policy_appraise_all/ima-policy-appraise-all_1.0.bb index b58d3fed..da62a4cf 100644 --- a/Contrib-Inspur/openbmc/meta-security/meta-integrity/recipes-security/ima_policy_appraise_all/ima-policy-appraise-all_1.0.bb +++ b/Contrib-Inspur/openbmc/meta-security/meta-integrity/recipes-security/ima_policy_appraise_all/ima-policy-appraise-all_1.0.bb @@ -9,6 +9,9 @@ IMA_POLICY ?= "ima_policy_appraise_all" SRC_URI = " file://${IMA_POLICY}" +inherit features_check +REQUIRED_DISTRO_FEATURES = "ima" + do_install () { install -d ${D}/${sysconfdir}/ima install ${WORKDIR}/${IMA_POLICY} ${D}/${sysconfdir}/ima/ima-policy diff --git a/Contrib-Inspur/openbmc/meta-security/meta-integrity/recipes-security/ima_policy_hashed/ima-policy-hashed_1.0.bb b/Contrib-Inspur/openbmc/meta-security/meta-integrity/recipes-security/ima_policy_hashed/ima-policy-hashed_1.0.bb index 3352daa0..ebb04264 100644 --- a/Contrib-Inspur/openbmc/meta-security/meta-integrity/recipes-security/ima_policy_hashed/ima-policy-hashed_1.0.bb +++ b/Contrib-Inspur/openbmc/meta-security/meta-integrity/recipes-security/ima_policy_hashed/ima-policy-hashed_1.0.bb @@ -11,6 +11,9 @@ SRC_URI = " \ file://${IMA_POLICY} \ " +inherit features_check +REQUIRED_DISTRO_FEATURES = "ima" + do_install () { install -d ${D}/${sysconfdir}/ima install ${WORKDIR}/${IMA_POLICY} ${D}/${sysconfdir}/ima/ima-policy diff --git a/Contrib-Inspur/openbmc/meta-security/meta-integrity/recipes-security/ima_policy_simple/ima-policy-simple_1.0.bb b/Contrib-Inspur/openbmc/meta-security/meta-integrity/recipes-security/ima_policy_simple/ima-policy-simple_1.0.bb index 17132aa2..cb4b6b8a 100644 --- a/Contrib-Inspur/openbmc/meta-security/meta-integrity/recipes-security/ima_policy_simple/ima-policy-simple_1.0.bb +++ b/Contrib-Inspur/openbmc/meta-security/meta-integrity/recipes-security/ima_policy_simple/ima-policy-simple_1.0.bb @@ -9,6 +9,9 @@ IMA_POLICY ?= "ima_policy_simple" SRC_URI = " file://${IMA_POLICY}" +inherit features_check +REQUIRED_DISTRO_FEATURES = "ima" + do_install () { install -d ${D}/${sysconfdir}/ima install ${WORKDIR}/${IMA_POLICY} ${D}/${sysconfdir}/ima/ima-policy diff --git a/Contrib-Inspur/openbmc/meta-security/meta-security-compliance/README b/Contrib-Inspur/openbmc/meta-security/meta-security-compliance/README index b29c143b..320f8567 100644 --- a/Contrib-Inspur/openbmc/meta-security/meta-security-compliance/README +++ b/Contrib-Inspur/openbmc/meta-security/meta-security-compliance/README @@ -28,9 +28,9 @@ Maintenance Send pull requests, patches, comments or questions to yocto@yoctoproject.org When sending single patches, please using something like: -'git send-email -1 --to yocto@yoctoproject.org --subject-prefix=meta-security][PATCH' +'git send-email -1 --to yocto@yoctoproject.org --subject-prefix=meta-security-compliance][PATCH' -Layer Maintainer: Armin Kuster +Layer Maintainer: Armin Kuster License diff --git a/Contrib-Inspur/openbmc/meta-security/meta-security-compliance/conf/layer.conf b/Contrib-Inspur/openbmc/meta-security/meta-security-compliance/conf/layer.conf index d48feb97..8572a1fc 100644 --- a/Contrib-Inspur/openbmc/meta-security/meta-security-compliance/conf/layer.conf +++ b/Contrib-Inspur/openbmc/meta-security/meta-security-compliance/conf/layer.conf @@ -8,8 +8,8 @@ BBFILE_COLLECTIONS += "scanners-layer" BBFILE_PATTERN_scanners-layer = "^${LAYERDIR}/" BBFILE_PRIORITY_scanners-layer = "10" -LAYERSERIES_COMPAT_scanners-layer = "thud warrior" +LAYERSERIES_COMPAT_scanners-layer = "zeus" -LAYERDEPENDS_scanners-layer = " \ - core \ -" +LAYERDEPENDS_scanners-layer = "core openembedded-layer meta-python" + +BBLAYERS_LAYERINDEX_NAME_scanners-layer = "meta-security-compliance" diff --git a/Contrib-Inspur/openbmc/meta-security/meta-security-compliance/recipes-auditors/lynis/lynis_2.7.2.bb b/Contrib-Inspur/openbmc/meta-security/meta-security-compliance/recipes-auditors/lynis/lynis_2.7.2.bb deleted file mode 100644 index 3ba82f9e..00000000 --- a/Contrib-Inspur/openbmc/meta-security/meta-security-compliance/recipes-auditors/lynis/lynis_2.7.2.bb +++ /dev/null @@ -1,41 +0,0 @@ -# Copyright (C) 2017 Armin Kuster -# Released under the MIT license (see COPYING.MIT for the terms) - -SUMMARY = "Lynis is a free and open source security and auditing tool." -HOMEDIR = "https://cisofy.com/" -LICENSE = "GPL-3.0" -LIC_FILES_CHKSUM = "file://LICENSE;md5=3edd6782854304fd11da4975ab9799c1" - -SRC_URI = "https://cisofy.com/files/${BPN}-${PV}.tar.gz" - -SRC_URI[md5sum] = "3422cee3b12fc33338fcde003d65e234" -SRC_URI[sha256sum] = "fde6ccf8d6ec0ae1e9c9f4a6d640cddcde4bf7a92f8437d47d16a5477e21bfda" - -S = "${WORKDIR}/${BPN}" - -inherit autotools-brokensep - -do_compile[noexec] = "1" -do_configure[noexec] = "1" - -do_install () { - install -d ${D}/${bindir} - install -d ${D}/${sysconfdir}/lynis - install -m 555 ${S}/lynis ${D}/${bindir} - - install -d ${D}/${datadir}/lynis/db - install -d ${D}/${datadir}/lynis/plugins - install -d ${D}/${datadir}/lynis/include - install -d ${D}/${datadir}/lynis/extras - - cp -r ${S}/db/* ${D}/${datadir}/lynis/db/. - cp -r ${S}/plugins/* ${D}/${datadir}/lynis/plugins/. - cp -r ${S}/include/* ${D}/${datadir}/lynis/include/. - cp -r ${S}/extras/* ${D}/${datadir}/lynis/extras/. - cp ${S}/*.prf ${D}/${sysconfdir}/lynis -} - -FILES_${PN} += "${sysconfdir}/developer.prf ${sysconfdir}/default.prf" -FILES_${PN}-doc += "lynis.8 FAQ README CHANGELOG.md CONTRIBUTIONS.md CONTRIBUTORS.md" - -RDEPENDS_${PN} += "procps" diff --git a/Contrib-Inspur/openbmc/meta-security/meta-security-compliance/recipes-auditors/lynis/lynis_2.7.5.bb b/Contrib-Inspur/openbmc/meta-security/meta-security-compliance/recipes-auditors/lynis/lynis_2.7.5.bb new file mode 100644 index 00000000..21e45179 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-security/meta-security-compliance/recipes-auditors/lynis/lynis_2.7.5.bb @@ -0,0 +1,41 @@ +# Copyright (C) 2017 Armin Kuster +# Released under the MIT license (see COPYING.MIT for the terms) + +SUMMARY = "Lynis is a free and open source security and auditing tool." +HOMEDIR = "https://cisofy.com/" +LICENSE = "GPL-3.0" +LIC_FILES_CHKSUM = "file://LICENSE;md5=3edd6782854304fd11da4975ab9799c1" + +SRC_URI = "https://cisofy.com/files/${BPN}-${PV}.tar.gz" + +SRC_URI[md5sum] = "fb527b6976e70a6bcd57036c9cddc242" +SRC_URI[sha256sum] = "3d27ade73a5c1248925ad9c060024940ce5d2029f40aaa901f43314888fe324d" + +S = "${WORKDIR}/${BPN}" + +inherit autotools-brokensep + +do_compile[noexec] = "1" +do_configure[noexec] = "1" + +do_install () { + install -d ${D}/${bindir} + install -d ${D}/${sysconfdir}/lynis + install -m 555 ${S}/lynis ${D}/${bindir} + + install -d ${D}/${datadir}/lynis/db + install -d ${D}/${datadir}/lynis/plugins + install -d ${D}/${datadir}/lynis/include + install -d ${D}/${datadir}/lynis/extras + + cp -r ${S}/db/* ${D}/${datadir}/lynis/db/. + cp -r ${S}/plugins/* ${D}/${datadir}/lynis/plugins/. + cp -r ${S}/include/* ${D}/${datadir}/lynis/include/. + cp -r ${S}/extras/* ${D}/${datadir}/lynis/extras/. + cp ${S}/*.prf ${D}/${sysconfdir}/lynis +} + +FILES_${PN} += "${sysconfdir}/developer.prf ${sysconfdir}/default.prf" +FILES_${PN}-doc += "lynis.8 FAQ README CHANGELOG.md CONTRIBUTIONS.md CONTRIBUTORS.md" + +RDEPENDS_${PN} += "procps" diff --git a/Contrib-Inspur/openbmc/meta-security/meta-security-compliance/recipes-openscap/oe-scap/oe-scap_1.0.bb b/Contrib-Inspur/openbmc/meta-security/meta-security-compliance/recipes-openscap/oe-scap/oe-scap_1.0.bb index e84ed30f..fd53fcba 100644 --- a/Contrib-Inspur/openbmc/meta-security/meta-security-compliance/recipes-openscap/oe-scap/oe-scap_1.0.bb +++ b/Contrib-Inspur/openbmc/meta-security/meta-security-compliance/recipes-openscap/oe-scap/oe-scap_1.0.bb @@ -30,4 +30,4 @@ do_install () { FILES_${PN} += "${datadir}/oe-scap" -RDEPENDS_${PN} = "openscap" +RDEPENDS_${PN} = "openscap bash" diff --git a/Contrib-Inspur/openbmc/meta-security/meta-security-compliance/recipes-openscap/openscap/files/crypto_pkgconfig.patch b/Contrib-Inspur/openbmc/meta-security/meta-security-compliance/recipes-openscap/openscap/files/crypto_pkgconfig.patch deleted file mode 100644 index 2d70855a..00000000 --- a/Contrib-Inspur/openbmc/meta-security/meta-security-compliance/recipes-openscap/openscap/files/crypto_pkgconfig.patch +++ /dev/null @@ -1,36 +0,0 @@ -Index: git/configure.ac -=================================================================== ---- git.orig/configure.ac -+++ git/configure.ac -@@ -360,25 +360,13 @@ case "${with_crypto}" in - AC_DEFINE([HAVE_NSS3], [1], [Define to 1 if you have 'NSS' library.]) - ;; - gcrypt) -- SAVE_LIBS=$LIBS -- AC_CHECK_LIB([gcrypt], [gcry_check_version], -- [crapi_CFLAGS=`libgcrypt-config --cflags`; -- crapi_LIBS=`libgcrypt-config --libs`; -- crapi_libname="GCrypt";], -- [AC_MSG_ERROR([library 'gcrypt' is required for GCrypt.])], -- []) -- AC_DEFINE([HAVE_GCRYPT], [1], [Define to 1 if you have 'gcrypt' library.]) -- AC_CACHE_CHECK([for GCRYCTL_SET_ENFORCED_FIPS_FLAG], -- [ac_cv_gcryctl_set_enforced_fips_flag], -- [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([#include], -- [return GCRYCTL_SET_ENFORCED_FIPS_FLAG;])], -- [ac_cv_gcryctl_set_enforced_fips_flag=yes], -- [ac_cv_gcryctl_set_enforced_fips_flag=no])]) -+ PKG_CHECK_MODULES([libgcrypt], [libgcrypt >= 1.7.9],[], -+ AC_MSG_FAILURE([libgcrypt devel support is missing])) - -- if test "${ac_cv_gcryctl_set_enforced_fips_flag}" == "yes"; then -- AC_DEFINE([HAVE_GCRYCTL_SET_ENFORCED_FIPS_FLAG], [1], [Define to 1 if you have 'gcrypt' library with GCRYCTL_SET_ENFORCED_FIPS_FLAG.]) -- fi -- LIBS=$SAVE_LIBS -+ crapi_libname="libgcrypt" -+ crapi_CFLAGS=$libgcrypt_CFLAGS -+ crapi_LIBS=$libgcrypt_LIBS -+ AC_DEFINE([HAVE_GCRYPT], [1], [Define to 1 if you have 'libgcrypt' library.]) - ;; - *) - AC_MSG_ERROR([unknown crypto backend]) diff --git a/Contrib-Inspur/openbmc/meta-security/meta-security-compliance/recipes-openscap/openscap/files/probe_dir_fixup.patch b/Contrib-Inspur/openbmc/meta-security/meta-security-compliance/recipes-openscap/openscap/files/probe_dir_fixup.patch deleted file mode 100644 index ecbe6026..00000000 --- a/Contrib-Inspur/openbmc/meta-security/meta-security-compliance/recipes-openscap/openscap/files/probe_dir_fixup.patch +++ /dev/null @@ -1,17 +0,0 @@ -Index: git/configure.ac -=================================================================== ---- git.orig/configure.ac -+++ git/configure.ac -@@ -1109,11 +1109,7 @@ AC_ARG_WITH([crypto], - [], - [crypto=gcrypt]) - --if test "x${libexecdir}" = xNONE; then -- probe_dir="/usr/local/libexec/openscap" --else -- EXPAND_DIR(probe_dir,"${libexecdir}/openscap") --fi -+probe_dir="/usr/local/libexec/openscap" - - AC_SUBST(probe_dir) - diff --git a/Contrib-Inspur/openbmc/meta-security/meta-security-compliance/recipes-openscap/openscap/files/run-ptest b/Contrib-Inspur/openbmc/meta-security/meta-security-compliance/recipes-openscap/openscap/files/run-ptest deleted file mode 100644 index 454a6a3c..00000000 --- a/Contrib-Inspur/openbmc/meta-security/meta-security-compliance/recipes-openscap/openscap/files/run-ptest +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/sh -cd tests -make -k check diff --git a/Contrib-Inspur/openbmc/meta-security/meta-security-compliance/recipes-openscap/openscap/openscap.inc b/Contrib-Inspur/openbmc/meta-security/meta-security-compliance/recipes-openscap/openscap/openscap.inc index e9589b6b..afa576a9 100644 --- a/Contrib-Inspur/openbmc/meta-security/meta-security-compliance/recipes-openscap/openscap/openscap.inc +++ b/Contrib-Inspur/openbmc/meta-security/meta-security-compliance/recipes-openscap/openscap/openscap.inc @@ -1,2 +1,55 @@ +# Copyright (C) 2017 Armin Kuster +# Released under the MIT license (see COPYING.MIT for the terms) + +SUMARRY = "NIST Certified SCAP 1.2 toolkit" +HOME_URL = "https://www.open-scap.org/tools/openscap-base/" +LIC_FILES_CHKSUM = "file://COPYING;md5=fbc093901857fcd118f065f900982c24" +LICENSE = "LGPL-2.1" + +DEPENDS = "dbus acl bzip2 pkgconfig gconf procps curl libxml2 libxslt libcap swig" +DEPENDS_class-native = "pkgconfig-native swig-native curl-native libxml2-native libxslt-native libcap-native" + +S = "${WORKDIR}/git" + +inherit cmake pkgconfig python3native perlnative + +PACKAGECONFIG ?= "python3 rpm perl gcrypt ${@bb.utils.contains('DISTRO_FEATURES', 'selinux', 'selinux', '', d)}" +PACKAGECONFIG[python3] = "-DENABLE_PYTHON3=ON, ,python3, python3" +PACKAGECONFIG[perl] = "-DENABLE_PERL=ON, ,perl, perl" +PACKAGECONFIG[rpm] = "-DENABLE_OSCAP_UTIL_AS_RPM=ON, ,rpm, rpm" +PACKAGECONFIG[gcrypt] = "-DWITH_CRYPTO=gcrypt, ,libgcrypt" +PACKAGECONFIG[nss3] = "-DWITH_CRYPTO=nss3, ,nss" +PACKAGECONFIG[selinux] = ", ,libselinux" + +EXTRA_OECMAKE += "-DENABLE_PROBES_LINUX=ON -DENABLE_PROBES_UNIX=ON \ + -DENABLE_PROBES_SOLARIS=OFF -DENABLE_PROBES_INDEPENDENT=ON \ + -DENABLE_OSCAP_UTIL=ON -DENABLE_OSCAP_UTIL_SSH=ON \ + -DENABLE_OSCAP_UTIL_DOCKER=OFF -DENABLE_OSCAP_UTIL_CHROOT=OFF \ + -DENABLE_OSCAP_UTIL_PODMAN=OFF -DENABLE_OSCAP_UTIL_VM=OFF \ + -DENABLE_PROBES_WINDOWS=OFF -DENABLE_VALGRIND=OFF \ + -DENABLE_SCE=ON -DENABLE_MITRE=OFF -DENABLE_TESTS=OFF \ + -DCMAKE_SKIP_INSTALL_RPATH=ON -DCMAKE_SKIP_RPATH=ON \ + " + STAGING_OSCAP_DIR = "${TMPDIR}/work-shared/${MACHINE}/oscap-source" STAGING_OSCAP_BUILDDIR = "${TMPDIR}/work-shared/openscap/oscap-build-artifacts" + +do_configure_append_class-native () { + sed -i 's:OSCAP_DEFAULT_CPE_PATH.*$:OSCAP_DEFAULT_CPE_PATH "${STAGING_OSCAP_BUILDDIR}${datadir_native}/openscap/cpe":' ${B}/config.h + sed -i 's:OSCAP_DEFAULT_SCHEMA_PATH.*$:OSCAP_DEFAULT_SCHEMA_PATH "${STAGING_OSCAP_BUILDDIR}${datadir_native}/openscap/schemas":' ${B}/config.h + sed -i 's:OSCAP_DEFAULT_XSLT_PATH.*$:OSCAP_DEFAULT_XSLT_PATH "${STAGING_OSCAP_BUILDDIR}${datadir_native}/openscap/xsl":' ${B}/config.h +} + +do_install_class-native[cleandirs] += " ${STAGING_OSCAP_BUILDDIR}" +do_install_append_class-native () { + oscapdir=${STAGING_OSCAP_BUILDDIR}/${datadir_native} + install -d $oscapdir + cp -a ${D}/${STAGING_DATADIR_NATIVE}/openscap $oscapdir +} + + +FILES_${PN} += "${PYTHON_SITEPACKAGES_DIR}" + +RDEPENDS_${PN} += "libxml2 python3-core libgcc bash" + +BBCLASSEXTEND = "native" diff --git a/Contrib-Inspur/openbmc/meta-security/meta-security-compliance/recipes-openscap/openscap/openscap_1.2.17.bb b/Contrib-Inspur/openbmc/meta-security/meta-security-compliance/recipes-openscap/openscap/openscap_1.2.17.bb deleted file mode 100644 index e2a4fa2e..00000000 --- a/Contrib-Inspur/openbmc/meta-security/meta-security-compliance/recipes-openscap/openscap/openscap_1.2.17.bb +++ /dev/null @@ -1,87 +0,0 @@ -# Copyright (C) 2017 Armin Kuster -# Released under the MIT license (see COPYING.MIT for the terms) - -SUMARRY = "NIST Certified SCAP 1.2 toolkit" -HOME_URL = "https://www.open-scap.org/tools/openscap-base/" -LIC_FILES_CHKSUM = "file://COPYING;md5=fbc093901857fcd118f065f900982c24" -LICENSE = "LGPL-2.1" - -DEPENDS = "autoconf-archive pkgconfig gconf procps curl libxml2 rpm \ - libxslt libcap swig swig-native" - -DEPENDS_class-native = "autoconf-archive-native pkgconfig-native swig-native curl-native libxml2-native libxslt-native dpkg-native libgcrypt-native nss-native" - -SRCREV = "59c234b3e9907480c89dfbd1b466a6bf72a2d2ed" -SRC_URI = "git://github.com/akuster/openscap.git;branch=oe \ - file://crypto_pkgconfig.patch \ - file://run-ptest \ -" - -inherit autotools-brokensep pkgconfig python3native perlnative ptest - -S = "${WORKDIR}/git" - -PACKAGECONFIG ?= "nss3 pcre rpm" -PACKAGECONFIG[pcre] = ",--enable-regex-posix, libpcre" -PACKAGECONFIG[gcrypt] = "--with-crypto=gcrypt,, libgcrypt " -PACKAGECONFIG[nss3] = "--with-crypto=nss3,, nss" -PACKAGECONFIG[python] = "--enable-python, --disable-python, python, python" -PACKAGECONFIG[python3] = "--enable-python3, --disable-python3, python3, python3" -PACKAGECONFIG[perl] = "--enable-perl, --disable-perl, perl, perl" -PACKAGECONFIG[rpm] = " --enable-util-scap-as-rpm, --disable-util-scap-as-rpm, rpm, rpm" - -export LDFLAGS += " -ldl" - -EXTRA_OECONF += "--enable-probes-independent --enable-probes-linux \ - --enable-probes-solaris --enable-probes-unix --disable-util-oscap-docker\ - --enable-util-oscap-ssh --enable-util-oscap --enable-ssp --enable-sce \ -" - -EXTRA_OECONF_class-native += "--disable-probes-independent --enable-probes-linux \ - --disable-probes-solaris --disable-probes-unix \ - --enable-util-oscap \ -" - -do_configure_prepend () { - sed -i 's:-I/usr/include:-I${STAGING_INCDIR}:' ${S}/swig/perl/Makefile.am - sed -i 's:-I/usr/include:-I${STAGING_INCDIR}:' ${S}/swig/python3/Makefile.am - sed -i 's:-I/usr/include:-I${STAGING_INCDIR}:' ${S}/swig/python2/Makefile.am - sed -i 's:python2:python:' ${S}/utils/scap-as-rpm -} - - -include openscap.inc - -do_configure_append_class-native () { - sed -i 's:OSCAP_DEFAULT_CPE_PATH.*$:OSCAP_DEFAULT_CPE_PATH "${STAGING_OSCAP_BUILDDIR}${datadir_native}/openscap/cpe":' ${S}/config.h - sed -i 's:OSCAP_DEFAULT_SCHEMA_PATH.*$:OSCAP_DEFAULT_SCHEMA_PATH "${STAGING_OSCAP_BUILDDIR}${datadir_native}/openscap/schemas":' ${S}/config.h - sed -i 's:OSCAP_DEFAULT_XSLT_PATH.*$:OSCAP_DEFAULT_XSLT_PATH "${STAGING_OSCAP_BUILDDIR}${datadir_native}/openscap/xsl":' ${S}/config.h -} - -do_clean[cleandirs] += " ${STAGING_OSCAP_BUILDDIR}" - -do_install_append_class-native () { - oscapdir=${STAGING_OSCAP_BUILDDIR}/${datadir_native} - install -d $oscapdir - cp -a ${D}/${STAGING_DATADIR_NATIVE}/openscap $oscapdir -} - -TESTDIR = "tests" - -do_compile_ptest() { - sed -i 's:python2:python:' ${S}/${TESTDIR}/nist/test_worker.py - echo 'buildtest-TESTS: $(check)' >> ${TESTDIR}/Makefile - oe_runmake -C ${TESTDIR} buildtest-TESTS -} - -do_install_ptest() { - # install the tests - cp -rf ${B}/${TESTDIR} ${D}${PTEST_PATH} -} - -FILES_${PN} += "${PYTHON_SITEPACKAGES_DIR}" - -RDEPENDS_${PN} += "libxml2 python libgcc" -RDEPENDS_${PN}-ptest = "bash perl python" - -BBCLASSEXTEND = "native" diff --git a/Contrib-Inspur/openbmc/meta-security/meta-security-compliance/recipes-openscap/openscap/openscap_1.3.1.bb b/Contrib-Inspur/openbmc/meta-security/meta-security-compliance/recipes-openscap/openscap/openscap_1.3.1.bb new file mode 100644 index 00000000..ad29efda --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-security/meta-security-compliance/recipes-openscap/openscap/openscap_1.3.1.bb @@ -0,0 +1,9 @@ +SUMARRY = "NIST Certified SCAP 1.2 toolkit" + +require openscap.inc + +SRCREV = "3a4c635691380fa990a226acc8558db35d7ebabc" +SRC_URI = "git://github.com/OpenSCAP/openscap.git;branch=maint-1.3 \ +" + +DEFAULT_PREFERENCE = "-1" diff --git a/Contrib-Inspur/openbmc/meta-security/meta-security-compliance/recipes-openscap/openscap/openscap_git.bb b/Contrib-Inspur/openbmc/meta-security/meta-security-compliance/recipes-openscap/openscap/openscap_git.bb new file mode 100644 index 00000000..963d3dec --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-security/meta-security-compliance/recipes-openscap/openscap/openscap_git.bb @@ -0,0 +1,12 @@ +# Copyright (C) 2017 Armin Kuster +# Released under the MIT license (see COPYING.MIT for the terms) + +SUMARRY = "NIST Certified SCAP 1.2 toolkit with OE changes" + +include openscap.inc + +SRCREV = "4bbdb46ff651f809d5b38ca08d769790c4bfff90" +SRC_URI = "git://github.com/akuster/openscap.git;branch=oe-1.3 \ +" + +PV = "1.3.1+git${SRCPV}" diff --git a/Contrib-Inspur/openbmc/meta-security/meta-security-compliance/recipes-openscap/scap-security-guide/scap-security-guide.inc b/Contrib-Inspur/openbmc/meta-security/meta-security-compliance/recipes-openscap/scap-security-guide/scap-security-guide.inc new file mode 100644 index 00000000..3212310f --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-security/meta-security-compliance/recipes-openscap/scap-security-guide/scap-security-guide.inc @@ -0,0 +1,32 @@ +# Copyright (C) 2017 Armin Kuster +# Released under the MIT license (see COPYING.MIT for the terms) + +SUMARRY = "SCAP content for various platforms" +HOME_URL = "https://www.open-scap.org/security-policies/scap-security-guide/" +LIC_FILES_CHKSUM = "file://LICENSE;md5=97662e4486d9a1d09f358851d9f41a1a" +LICENSE = "LGPL-2.1" + +DEPENDS = "openscap-native python3 python3-pyyaml-native python3-jinja2-native libxml2-native" + +S = "${WORKDIR}/git" + +inherit cmake pkgconfig python3native + +STAGING_OSCAP_BUILDDIR = "${TMPDIR}/work-shared/openscap/oscap-build-artifacts" + +OECMAKE_GENERATOR = "Unix Makefiles" + +EXTRA_OECMAKE += "-DENABLE_PYTHON_COVERAGE=OFF" + +B = "${S}/build" + +do_configure[depends] += "openscap-native:do_install" + +do_configure_prepend () { + sed -i -e 's:NAMES\ sed:NAMES\ ${HOSTTOOLS_DIR}/sed:g' ${S}/CMakeLists.txt + sed -i -e 's:NAMES\ grep:NAMES\ ${HOSTTOOLS_DIR}/grep:g' ${S}/CMakeLists.txt +} + +FILES_${PN} += "${datadir}/xml" + +RDEPENDS_${PN} = "openscap" diff --git a/Contrib-Inspur/openbmc/meta-security/meta-security-compliance/recipes-openscap/scap-security-guide/scap-security-guide_0.1.33.bb b/Contrib-Inspur/openbmc/meta-security/meta-security-compliance/recipes-openscap/scap-security-guide/scap-security-guide_0.1.33.bb deleted file mode 100644 index 27d3d869..00000000 --- a/Contrib-Inspur/openbmc/meta-security/meta-security-compliance/recipes-openscap/scap-security-guide/scap-security-guide_0.1.33.bb +++ /dev/null @@ -1,59 +0,0 @@ -# Copyright (C) 2017 Armin Kuster -# Released under the MIT license (see COPYING.MIT for the terms) - -SUMARRY = "SCAP content for various platforms" -HOME_URL = "https://www.open-scap.org/security-policies/scap-security-guide/" -LIC_FILES_CHKSUM = "file://LICENSE;md5=236e81befc8154d18c93c848185d7e52" -LICENSE = "LGPL-2.1" - -DEPENDS = "openscap-native" - -SRCREV = "423d9f40021a03abd018bef7818a3a9fe91a083c" -SRC_URI = "git://github.com/akuster/scap-security-guide.git;branch=oe;" - -inherit cmake - -PARALLEL_MAKE = "" - -S = "${WORKDIR}/git" - -STAGING_OSCAP_BUILDDIR = "${TMPDIR}/work-shared/openscap/oscap-build-artifacts" - -OECMAKE_GENERATOR = "Unix Makefiles" - -EXTRA_OECMAKE += "-DSSG_PRODUCT_CHROMIUM:BOOL=OFF" -EXTRA_OECMAKE += "-DSSG_PRODUCT_DEBIAN8:BOOL=OFF" -EXTRA_OECMAKE += "-DSSG_PRODUCT_FEDORA:BOOL=OFF" -EXTRA_OECMAKE += "-DSSG_PRODUCT_FIREFOX:BOOL=OFF" -EXTRA_OECMAKE += "-DSSG_PRODUCT_JBOSS_EAP5:BOOL=OFF" -EXTRA_OECMAKE += "-DSSG_PRODUCT_JBOSS_FUSE6:BOOL=OFF" -EXTRA_OECMAKE += "-DSSG_PRODUCT_JRE:BOOL=OFF" -EXTRA_OECMAKE += "-DSSG_PRODUCT_OPENSUSE:BOOL=OFF" -EXTRA_OECMAKE += "-DSSG_PRODUCT_OSP7:BOOL=OFF" -EXTRA_OECMAKE += "-DSSG_PRODUCT_RHEL5:BOOL=OFF" -EXTRA_OECMAKE += "-DSSG_PRODUCT_RHEL6:BOOL=OFF" -EXTRA_OECMAKE += "-DSSG_PRODUCT_RHEL7:BOOL=OFF" -EXTRA_OECMAKE += "-DSSG_PRODUCT_RHEV3:BOOL=OFF" -EXTRA_OECMAKE += "-DSSG_PRODUCT_SUSE11:BOOL=OFF" -EXTRA_OECMAKE += "-DSSG_PRODUCT_SUSE12:BOOL=OFF" -EXTRA_OECMAKE += "-DSSG_PRODUCT_UBUNTU1404:BOOL=OFF" -EXTRA_OECMAKE += "-DSSG_PRODUCT_UBUNTU1604:BOOL=OFF" -EXTRA_OECMAKE += "-DSSG_PRODUCT_WRLINUX:BOOL=OFF" -EXTRA_OECMAKE += "-DSSG_PRODUCT_WEBMIN:BOOL=OFF" - -do_configure_prepend () { - sed -i -e 's:NAMES\ sed:NAMES\ ${HOSTTOOLS_DIR}/sed:g' ${S}/CMakeLists.txt - sed -i 's:/usr/share/openscap/:${STAGING_OSCAP_BUILDDIR}${datadir_native}/openscap/:g' ${S}/cmake/SSGCommon.cmake -} - -do_compile () { - cd ${B} - make openembedded -} - -do_install () { - cd ${B} - make DESTDIR=${D} install -} -FILES_${PN} += "${datadir}/xml" -RDEPNEDS_${PN} = "openscap" diff --git a/Contrib-Inspur/openbmc/meta-security/meta-security-compliance/recipes-openscap/scap-security-guide/scap-security-guide_0.1.44.bb b/Contrib-Inspur/openbmc/meta-security/meta-security-compliance/recipes-openscap/scap-security-guide/scap-security-guide_0.1.44.bb new file mode 100644 index 00000000..d80ecd7e --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-security/meta-security-compliance/recipes-openscap/scap-security-guide/scap-security-guide_0.1.44.bb @@ -0,0 +1,8 @@ +SUMARRY = "SCAP content for various platforms, upstream version" + +SRCREV = "8cb2d0f351faff5440742258782281164953b0a6" +SRC_URI = "git://github.com/ComplianceAsCode/content.git" + +DEFAULT_PREFERENCE = "-1" + +require scap-security-guide.inc diff --git a/Contrib-Inspur/openbmc/meta-security/meta-security-compliance/recipes-openscap/scap-security-guide/scap-security-guide_git.bb b/Contrib-Inspur/openbmc/meta-security/meta-security-compliance/recipes-openscap/scap-security-guide/scap-security-guide_git.bb new file mode 100644 index 00000000..d9238c03 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-security/meta-security-compliance/recipes-openscap/scap-security-guide/scap-security-guide_git.bb @@ -0,0 +1,9 @@ +SUMARRY = "SCAP content for various platforms, OE changes" + +SRCREV = "5fdfdcb2e95afbd86ace555beca5d20cbf1043ed" +SRC_URI = "git://github.com/akuster/scap-security-guide.git;branch=oe-0.1.44;" +PV = "0.1.44+git${SRCPV}" + +require scap-security-guide.inc + +EXTRA_OECMAKE += "-DSSG_PRODUCT_OPENEMBEDDED=ON" diff --git a/Contrib-Inspur/openbmc/meta-security/meta-tpm/conf/layer.conf b/Contrib-Inspur/openbmc/meta-security/meta-tpm/conf/layer.conf index bf9a76ea..175eba84 100644 --- a/Contrib-Inspur/openbmc/meta-security/meta-tpm/conf/layer.conf +++ b/Contrib-Inspur/openbmc/meta-security/meta-tpm/conf/layer.conf @@ -8,9 +8,10 @@ BBFILE_COLLECTIONS += "tpm-layer" BBFILE_PATTERN_tpm-layer = "^${LAYERDIR}/" BBFILE_PRIORITY_tpm-layer = "10" -LAYERSERIES_COMPAT_tpm-layer = "thud warrior" +LAYERSERIES_COMPAT_tpm-layer = "zeus" LAYERDEPENDS_tpm-layer = " \ core \ openembedded-layer \ " +BBLAYERS_LAYERINDEX_NAME_tpm-layer = "meta-tpm" diff --git a/Contrib-Inspur/openbmc/meta-security/meta-tpm/lib/oeqa/runtime/cases/tpm2.py b/Contrib-Inspur/openbmc/meta-security/meta-tpm/lib/oeqa/runtime/cases/tpm2.py index 240a9b3b..c6f9d922 100644 --- a/Contrib-Inspur/openbmc/meta-security/meta-tpm/lib/oeqa/runtime/cases/tpm2.py +++ b/Contrib-Inspur/openbmc/meta-security/meta-tpm/lib/oeqa/runtime/cases/tpm2.py @@ -16,9 +16,9 @@ def check_endlines(self, results, expected_endlines): if expected_endlines: self.fail('Missing expected line endings:\n %s' % '\n '.join(expected_endlines)) - @OEHasPackage(['tpm2.0-tss']) + @OEHasPackage(['tpm2-tss']) @OEHasPackage(['tpm2-abrmd']) - @OEHasPackage(['tpm2.0-tools']) + @OEHasPackage(['tpm2-tools']) @OEHasPackage(['ibmswtpm2']) @OETestDepends(['ssh.SSHTest.test_ssh']) def test_tpm2_sim(self): diff --git a/Contrib-Inspur/openbmc/meta-security/meta-tpm/recipes-core/images/security-tpm-image.bb b/Contrib-Inspur/openbmc/meta-security/meta-tpm/recipes-core/images/security-tpm-image.bb index a337076d..dbdd309c 100644 --- a/Contrib-Inspur/openbmc/meta-security/meta-tpm/recipes-core/images/security-tpm-image.bb +++ b/Contrib-Inspur/openbmc/meta-security/meta-tpm/recipes-core/images/security-tpm-image.bb @@ -1,14 +1,13 @@ -DESCRIPTION = "A small image for building meta-security packages" +DESCRIPTION = "A small image for building a tpm image for testing" IMAGE_FEATURES += "ssh-server-openssh" IMAGE_INSTALL = "\ packagegroup-base \ packagegroup-core-boot \ - ${@bb.utils.contains('MACHINE_FEATURES', 'tpm', 'packagegroup-security-tpm', '', d)} \ - ${@bb.utils.contains('MACHINE_FEATURES', 'tpm2', 'packagegroup-security-tpm2', '', d)} \ + packagegroup-security-tpm \ os-release \ - ${CORE_IMAGE_EXTRA_INSTALL}" +" IMAGE_LINGUAS ?= " " diff --git a/Contrib-Inspur/openbmc/meta-security/meta-tpm/recipes-core/images/security-tpm2-image.bb b/Contrib-Inspur/openbmc/meta-security/meta-tpm/recipes-core/images/security-tpm2-image.bb new file mode 100644 index 00000000..7e047d12 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-security/meta-tpm/recipes-core/images/security-tpm2-image.bb @@ -0,0 +1,18 @@ +DESCRIPTION = "A small image for building a tpm2 image for testing" + +IMAGE_FEATURES += "ssh-server-openssh" + +IMAGE_INSTALL = "\ + packagegroup-base \ + packagegroup-core-boot \ + packagegroup-security-tpm2 \ + os-release \ +" + +IMAGE_LINGUAS ?= " " + +LICENSE = "MIT" + +inherit core-image + +export IMAGE_BASENAME = "security-tpm2-image" diff --git a/Contrib-Inspur/openbmc/meta-security/meta-tpm/recipes-core/packagegroup/packagegroup-security-tpm2.bb b/Contrib-Inspur/openbmc/meta-security/meta-tpm/recipes-core/packagegroup/packagegroup-security-tpm2.bb index 5ded3a2c..8f5c537b 100644 --- a/Contrib-Inspur/openbmc/meta-security/meta-tpm/recipes-core/packagegroup/packagegroup-security-tpm2.bb +++ b/Contrib-Inspur/openbmc/meta-security/meta-tpm/recipes-core/packagegroup/packagegroup-security-tpm2.bb @@ -5,19 +5,19 @@ LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda inherit packagegroup -PACKAGES = "packagegroup-security-tpm2" +PACKAGES = "${PN}" SUMMARY_packagegroup-security-tpm2 = "Security TPM 2.0 support" RDEPENDS_packagegroup-security-tpm2 = " \ tpm2-tools \ trousers \ + tpm2-tss \ libtss2 \ + libtss2-mu \ libtss2-tcti-device \ libtss2-tcti-mssim \ tpm2-abrmd \ tpm2-pkcs11 \ + ibmswtpm2 \ cryptsetup-tpm-incubator \ " - -RDEPENDS_packagegroup-security-tpm2_append_x86 = " tpm2-tcti-uefi" -RDEPENDS_packagegroup-security-tpm2_append_x86-64 = " tpm2-tcti-uefi" diff --git a/Contrib-Inspur/openbmc/meta-security/meta-tpm/recipes-tpm/libtpm/libtpm_0.6.0.bb b/Contrib-Inspur/openbmc/meta-security/meta-tpm/recipes-tpm/libtpm/libtpm_0.6.0.bb deleted file mode 100644 index a8829604..00000000 --- a/Contrib-Inspur/openbmc/meta-security/meta-tpm/recipes-tpm/libtpm/libtpm_0.6.0.bb +++ /dev/null @@ -1,16 +0,0 @@ -SUMMARY = "LIBPM - Software TPM Library" -LICENSE = "BSD-3-Clause" -LIC_FILES_CHKSUM = "file://LICENSE;md5=e73f0786a936da3814896df06ad225a9" - -SRCREV = "9dc915572b51db0714640ba1ddf8cca9c0f24f05" -SRC_URI = "git://github.com/stefanberger/libtpms.git;branch=stable-${PV}" - -PE = "1" - -S = "${WORKDIR}/git" -inherit autotools-brokensep pkgconfig - -PACKAGECONFIG ?= "openssl" -PACKAGECONFIG[openssl] = "--with-openssl, --without-openssl, openssl" - -BBCLASSEXTEND = "native" diff --git a/Contrib-Inspur/openbmc/meta-security/meta-tpm/recipes-tpm/libtpm/libtpm_0.7.0.bb b/Contrib-Inspur/openbmc/meta-security/meta-tpm/recipes-tpm/libtpm/libtpm_0.7.0.bb new file mode 100644 index 00000000..d9863fa4 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-security/meta-tpm/recipes-tpm/libtpm/libtpm_0.7.0.bb @@ -0,0 +1,16 @@ +SUMMARY = "LIBPM - Software TPM Library" +LICENSE = "BSD-3-Clause" +LIC_FILES_CHKSUM = "file://LICENSE;md5=e73f0786a936da3814896df06ad225a9" + +SRCREV = "c26e8f7b08b19a69cea9e8f1f1e6639c7951fb01" +SRC_URI = "git://github.com/stefanberger/libtpms.git;branch=stable-${PV}" + +PE = "1" + +S = "${WORKDIR}/git" +inherit autotools-brokensep pkgconfig + +PACKAGECONFIG ?= "openssl" +PACKAGECONFIG[openssl] = "--with-openssl, --without-openssl, openssl" + +BBCLASSEXTEND = "native" diff --git a/Contrib-Inspur/openbmc/meta-security/meta-tpm/recipes-tpm/swtpm/swtpm_0.1.0.bb b/Contrib-Inspur/openbmc/meta-security/meta-tpm/recipes-tpm/swtpm/swtpm_0.1.0.bb deleted file mode 100644 index 42de8b18..00000000 --- a/Contrib-Inspur/openbmc/meta-security/meta-tpm/recipes-tpm/swtpm/swtpm_0.1.0.bb +++ /dev/null @@ -1,51 +0,0 @@ -SUMMARY = "SWTPM - Software TPM Emulator" -LICENSE = "BSD-3-Clause" -LIC_FILES_CHKSUM = "file://LICENSE;md5=fe8092c832b71ef20dfe4c6d3decb3a8" -SECTION = "apps" - -DEPENDS = "libtasn1 expect socat glib-2.0 net-tools-native libtpm libtpm-native" - -# configure checks for the tools already during compilation and -# then swtpm_setup needs them at runtime -DEPENDS += "tpm-tools-native expect-native socat-native" - -SRCREV = "d803d84575ab3e5dac316bf863c7f569a27ea35f" -SRC_URI = "git://github.com/stefanberger/swtpm.git;branch=stable-${PV} \ - file://fix_fcntl_h.patch \ - file://ioctl_h.patch \ - " -PE = "1" - -S = "${WORKDIR}/git" - -inherit autotools pkgconfig -PARALLEL_MAKE = "" - -TSS_USER="tss" -TSS_GROUP="tss" - -PACKAGECONFIG ?= "openssl" -PACKAGECONFIG += "${@bb.utils.contains('DISTRO_FEATURES', 'selinux', 'selinux', '', d)}" -PACKAGECONFIG += "${@bb.utils.contains('BBFILE_COLLECTIONS', 'filesystems-layer', 'cuse', '', d)}" -PACKAGECONFIG[openssl] = "--with-openssl, --without-openssl, openssl" -PACKAGECONFIG[gnutls] = "--with-gnutls, --without-gnutls, gnutls" -PACKAGECONFIG[selinux] = "--with-selinux, --without-selinux, libselinux" -PACKAGECONFIG[cuse] = "--with-cuse, --without-cuse, fuse" - -EXTRA_OECONF += "--with-tss-user=${TSS_USER} --with-tss-group=${TSS_GROUP}" - -export SEARCH_DIR = "${STAGING_LIBDIR_NATIVE}" - -USERADD_PACKAGES = "${PN}" -GROUPADD_PARAM_${PN} = "--system ${TSS_USER}" -USERADD_PARAM_${PN} = "--system -g ${TSS_GROUP} --home-dir \ - --no-create-home --shell /bin/false ${BPN}" - -PACKAGE_BEFORE_PN = "${PN}-cuse" -FILES_${PN}-cuse = "${bindir}/swtpm_cuse" - -INSANE_SKIP_${PN} += "dev-so" - -RDEPENDS_${PN} = "libtpm expect socat bash tpm-tools" - -BBCLASSEXTEND = "native nativesdk" diff --git a/Contrib-Inspur/openbmc/meta-security/meta-tpm/recipes-tpm/swtpm/swtpm_0.2.0.bb b/Contrib-Inspur/openbmc/meta-security/meta-tpm/recipes-tpm/swtpm/swtpm_0.2.0.bb new file mode 100644 index 00000000..f3a53dd9 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-security/meta-tpm/recipes-tpm/swtpm/swtpm_0.2.0.bb @@ -0,0 +1,51 @@ +SUMMARY = "SWTPM - Software TPM Emulator" +LICENSE = "BSD-3-Clause" +LIC_FILES_CHKSUM = "file://LICENSE;md5=fe8092c832b71ef20dfe4c6d3decb3a8" +SECTION = "apps" + +DEPENDS = "libtasn1 expect socat glib-2.0 net-tools-native libtpm libtpm-native" + +# configure checks for the tools already during compilation and +# then swtpm_setup needs them at runtime +DEPENDS += "tpm-tools-native expect-native socat-native" + +SRCREV = "39673a0139b0ee14a0109aba50a0635592c672c4" +SRC_URI = "git://github.com/stefanberger/swtpm.git;branch=stable-${PV} \ + file://fix_fcntl_h.patch \ + file://ioctl_h.patch \ + " +PE = "1" + +S = "${WORKDIR}/git" + +inherit autotools pkgconfig +PARALLEL_MAKE = "" + +TSS_USER="tss" +TSS_GROUP="tss" + +PACKAGECONFIG ?= "openssl" +PACKAGECONFIG += "${@bb.utils.contains('DISTRO_FEATURES', 'selinux', 'selinux', '', d)}" +PACKAGECONFIG += "${@bb.utils.contains('BBFILE_COLLECTIONS', 'filesystems-layer', 'cuse', '', d)}" +PACKAGECONFIG[openssl] = "--with-openssl, --without-openssl, openssl" +PACKAGECONFIG[gnutls] = "--with-gnutls, --without-gnutls, gnutls" +PACKAGECONFIG[selinux] = "--with-selinux, --without-selinux, libselinux" +PACKAGECONFIG[cuse] = "--with-cuse, --without-cuse, fuse" + +EXTRA_OECONF += "--with-tss-user=${TSS_USER} --with-tss-group=${TSS_GROUP}" + +export SEARCH_DIR = "${STAGING_LIBDIR_NATIVE}" + +USERADD_PACKAGES = "${PN}" +GROUPADD_PARAM_${PN} = "--system ${TSS_USER}" +USERADD_PARAM_${PN} = "--system -g ${TSS_GROUP} --home-dir \ + --no-create-home --shell /bin/false ${BPN}" + +PACKAGE_BEFORE_PN = "${PN}-cuse" +FILES_${PN}-cuse = "${bindir}/swtpm_cuse" + +INSANE_SKIP_${PN} += "dev-so" + +RDEPENDS_${PN} = "libtpm expect socat bash tpm-tools" + +BBCLASSEXTEND = "native nativesdk" diff --git a/Contrib-Inspur/openbmc/meta-security/meta-tpm/recipes-tpm2/cryptsetup-tpm-incubator/cryptsetup-tpm-incubator_0.9.9.bb b/Contrib-Inspur/openbmc/meta-security/meta-tpm/recipes-tpm2/cryptsetup-tpm-incubator/cryptsetup-tpm-incubator_0.9.9.bb index 8b504453..b706d150 100644 --- a/Contrib-Inspur/openbmc/meta-security/meta-tpm/recipes-tpm2/cryptsetup-tpm-incubator/cryptsetup-tpm-incubator_0.9.9.bb +++ b/Contrib-Inspur/openbmc/meta-security/meta-tpm/recipes-tpm2/cryptsetup-tpm-incubator/cryptsetup-tpm-incubator_0.9.9.bb @@ -32,7 +32,8 @@ RRECOMMENDS_${PN} = "kernel-module-aes-generic \ kernel-module-xts \ " -RDEPENDS_${PN} += "lvm2" +FILES_${PN} += "${libdir}/tmpfiles.d" +RDEPENDS_${PN} += "lvm2 libdevmapper" RRECOMMENDS_${PN} += "lvm2-udevrules" RREPLACES_${PN} = "cryptsetup" diff --git a/Contrib-Inspur/openbmc/meta-security/meta-tpm/recipes-tpm2/tpm2-abrmd/files/tpm2-abrmd-init.sh b/Contrib-Inspur/openbmc/meta-security/meta-tpm/recipes-tpm2/tpm2-abrmd/files/tpm2-abrmd-init.sh index c8dfb7de..9bb7da97 100644 --- a/Contrib-Inspur/openbmc/meta-security/meta-tpm/recipes-tpm2/tpm2-abrmd/files/tpm2-abrmd-init.sh +++ b/Contrib-Inspur/openbmc/meta-security/meta-tpm/recipes-tpm2/tpm2-abrmd/files/tpm2-abrmd-init.sh @@ -27,7 +27,7 @@ case "${1}" in start) echo -n "Starting $DESC: " - if [ ! -e /dev/tpm* ] + if [ ! -e /dev/tpm? ] then echo "device driver not loaded, skipping." exit 0 diff --git a/Contrib-Inspur/openbmc/meta-security/meta-tpm/recipes-tpm2/tpm2-abrmd/files/tpm2-abrmd.default b/Contrib-Inspur/openbmc/meta-security/meta-tpm/recipes-tpm2/tpm2-abrmd/files/tpm2-abrmd.default index 987978a6..b4b3c207 100644 --- a/Contrib-Inspur/openbmc/meta-security/meta-tpm/recipes-tpm2/tpm2-abrmd/files/tpm2-abrmd.default +++ b/Contrib-Inspur/openbmc/meta-security/meta-tpm/recipes-tpm2/tpm2-abrmd/files/tpm2-abrmd.default @@ -1 +1 @@ -DAEMON_OPTS="--tcti=device --logger=syslog --max-connections=20 --max-transient-objects=20 --fail-on-loaded-trans" +DAEMON_OPTS="--tcti=device --logger=syslog --max-connections=20 --max-transients=20 --flush-all" diff --git a/Contrib-Inspur/openbmc/meta-security/meta-tpm/recipes-tpm2/tpm2-abrmd/tpm2-abrmd_2.1.1.bb b/Contrib-Inspur/openbmc/meta-security/meta-tpm/recipes-tpm2/tpm2-abrmd/tpm2-abrmd_2.1.1.bb deleted file mode 100644 index a4c66823..00000000 --- a/Contrib-Inspur/openbmc/meta-security/meta-tpm/recipes-tpm2/tpm2-abrmd/tpm2-abrmd_2.1.1.bb +++ /dev/null @@ -1,55 +0,0 @@ -SUMMARY = "TPM2 Access Broker & Resource Manager" -DESCRIPTION = "This is a system daemon implementing the TPM2 access \ -broker (TAB) & Resource Manager (RM) spec from the TCG. The daemon (tpm2-abrmd) \ -is implemented using Glib and the GObject system. In this documentation and \ -in the code we use `tpm2-abrmd` and `tabrmd` interchangeably. \ -" -SECTION = "security/tpm" - -LICENSE = "BSD-2-Clause" -LIC_FILES_CHKSUM = "file://${S}/LICENSE;md5=500b2e742befc3da00684d8a1d5fd9da" - -DEPENDS = "autoconf-archive dbus glib-2.0 tpm2-tss glib-2.0-native \ - libtss2 libtss2-mu libtss2-tcti-device libtss2-tcti-mssim" - - -SRC_URI = "\ - git://github.com/tpm2-software/tpm2-abrmd.git \ - file://tpm2-abrmd-init.sh \ - file://tpm2-abrmd.default \ -" - -SRCREV = "06d9d433ba27159687255406baa37940db15465b" - -S = "${WORKDIR}/git" - -inherit autotools pkgconfig systemd update-rc.d useradd - -SYSTEMD_PACKAGES += "${PN}" -SYSTEMD_SERVICE_${PN} = "tpm2-abrmd.service" -SYSTEMD_AUTO_ENABLE_${PN} = "disable" - -INITSCRIPT_NAME = "${PN}" -INITSCRIPT_PARAMS = "start 99 2 3 4 5 . stop 19 0 1 6 ." - -USERADD_PACKAGES = "${PN}" -GROUPADD_PARAM_${PN} = "tss" -USERADD_PARAM_${PN} = "--system -M -d /var/lib/tpm -s /bin/false -g tss tss" - -PACKAGECONFIG ?="${@bb.utils.contains('DISTRO_FEATURES','systemd','systemd', '', d)}" -PACKAGECONFIG[systemd] = "--with-systemdsystemunitdir=${systemd_system_unitdir}, --with-systemdsystemunitdir=no" - -do_install_append() { - install -d "${D}${sysconfdir}/init.d" - install -m 0755 "${WORKDIR}/tpm2-abrmd-init.sh" "${D}${sysconfdir}/init.d/tpm2-abrmd" - - install -d "${D}${sysconfdir}/default" - install -m 0644 "${WORKDIR}/tpm2-abrmd.default" "${D}${sysconfdir}/default/tpm2-abrmd" -} - -FILES_${PN} += "${libdir}/systemd/system-preset \ - ${datadir}/dbus-1" - -RDEPENDS_${PN} += "tpm2-tss" - -BBCLASSEXTEND = "native" diff --git a/Contrib-Inspur/openbmc/meta-security/meta-tpm/recipes-tpm2/tpm2-abrmd/tpm2-abrmd_2.3.0.bb b/Contrib-Inspur/openbmc/meta-security/meta-tpm/recipes-tpm2/tpm2-abrmd/tpm2-abrmd_2.3.0.bb new file mode 100644 index 00000000..991364ad --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-security/meta-tpm/recipes-tpm2/tpm2-abrmd/tpm2-abrmd_2.3.0.bb @@ -0,0 +1,54 @@ +SUMMARY = "TPM2 Access Broker & Resource Manager" +DESCRIPTION = "This is a system daemon implementing the TPM2 access \ +broker (TAB) & Resource Manager (RM) spec from the TCG. The daemon (tpm2-abrmd) \ +is implemented using Glib and the GObject system. In this documentation and \ +in the code we use `tpm2-abrmd` and `tabrmd` interchangeably. \ +" +SECTION = "security/tpm" + +LICENSE = "BSD-2-Clause" +LIC_FILES_CHKSUM = "file://${S}/LICENSE;md5=500b2e742befc3da00684d8a1d5fd9da" + +DEPENDS = "autoconf-archive dbus glib-2.0 tpm2-tss glib-2.0-native \ + libtss2 libtss2-mu libtss2-tcti-device libtss2-tcti-mssim" + +SRC_URI = "\ + git://github.com/tpm2-software/tpm2-abrmd.git \ + file://tpm2-abrmd-init.sh \ + file://tpm2-abrmd.default \ +" + +SRCREV = "ac82192df1158cb58eac02777cf15c965b02cfbc" + +S = "${WORKDIR}/git" + +inherit autotools pkgconfig systemd update-rc.d useradd + +SYSTEMD_PACKAGES += "${PN}" +SYSTEMD_SERVICE_${PN} = "tpm2-abrmd.service" +SYSTEMD_AUTO_ENABLE_${PN} = "disable" + +INITSCRIPT_NAME = "${PN}" +INITSCRIPT_PARAMS = "start 99 2 3 4 5 . stop 19 0 1 6 ." + +USERADD_PACKAGES = "${PN}" +GROUPADD_PARAM_${PN} = "tss" +USERADD_PARAM_${PN} = "--system -M -d /var/lib/tpm -s /bin/false -g tss tss" + +PACKAGECONFIG ?="${@bb.utils.contains('DISTRO_FEATURES','systemd','systemd', '', d)}" +PACKAGECONFIG[systemd] = "--with-systemdsystemunitdir=${systemd_system_unitdir}, --with-systemdsystemunitdir=no" + +do_install_append() { + install -d "${D}${sysconfdir}/init.d" + install -m 0755 "${WORKDIR}/tpm2-abrmd-init.sh" "${D}${sysconfdir}/init.d/tpm2-abrmd" + + install -d "${D}${sysconfdir}/default" + install -m 0644 "${WORKDIR}/tpm2-abrmd.default" "${D}${sysconfdir}/default/tpm2-abrmd" +} + +FILES_${PN} += "${libdir}/systemd/system-preset \ + ${datadir}/dbus-1" + +RDEPENDS_${PN} += "tpm2-tss" + +BBCLASSEXTEND = "native" diff --git a/Contrib-Inspur/openbmc/meta-security/meta-tpm/recipes-tpm2/tpm2-pkcs11/tpm2-pkcs11_0.9.9.bb b/Contrib-Inspur/openbmc/meta-security/meta-tpm/recipes-tpm2/tpm2-pkcs11/tpm2-pkcs11_0.9.9.bb index 9031e63e..351e03e5 100644 --- a/Contrib-Inspur/openbmc/meta-security/meta-tpm/recipes-tpm2/tpm2-pkcs11/tpm2-pkcs11_0.9.9.bb +++ b/Contrib-Inspur/openbmc/meta-security/meta-tpm/recipes-tpm2/tpm2-pkcs11/tpm2-pkcs11_0.9.9.bb @@ -2,7 +2,7 @@ SUMMARY = "A PKCS#11 interface for TPM2 hardware" DESCRIPTION = "PKCS #11 is a Public-Key Cryptography Standard that defines a standard method to access cryptographic services from tokens/ devices such as hardware security modules (HSM), smart cards, etc. In this project we intend to use a TPM2 device as the cryptographic token." SECTION = "security/tpm" LICENSE = "BSD-2-Clause" -LIC_FILES_CHKSUM = "file://LICENSE;md5=b748af41ef1300c98e105b3b7ec4ecc1" +LIC_FILES_CHKSUM = "file://LICENSE;md5=93645981214b60a02688745c14f93c95" DEPENDS = "autoconf-archive pkgconfig dstat sqlite3 openssl libtss2-dev tpm2-tools" @@ -10,7 +10,7 @@ SRC_URI = "git://github.com/tpm2-software/tpm2-pkcs11.git \ file://bootstrap_fixup.patch \ " -SRCREV = "3107d89b406ecd9c007884613733c9a344ef6d39" +SRCREV = "6de3f6f9c6e0a4983f3fb90e35feb34906f8aea7" S = "${WORKDIR}/git" diff --git a/Contrib-Inspur/openbmc/meta-security/meta-tpm/recipes-tpm2/tpm2-tcti-uefi/tpm2-tcti-uefi/0001-configure.ac-stop-inserting-host-directories-into-co.patch b/Contrib-Inspur/openbmc/meta-security/meta-tpm/recipes-tpm2/tpm2-tcti-uefi/tpm2-tcti-uefi/0001-configure.ac-stop-inserting-host-directories-into-co.patch new file mode 100644 index 00000000..3b54dddf --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-security/meta-tpm/recipes-tpm2/tpm2-tcti-uefi/tpm2-tcti-uefi/0001-configure.ac-stop-inserting-host-directories-into-co.patch @@ -0,0 +1,27 @@ +From b74837184cfdefb45e48f3fdc974fc67691fc861 Mon Sep 17 00:00:00 2001 +From: Dmitry Eremin-Solenikov +Date: Wed, 3 Jul 2019 19:16:35 +0300 +Subject: [PATCH] configure.ac: stop inserting host directories into compile + path + +Do not insert /usr/lib and /usr/lib64 into library search path. + +Upstream-Status: OE specific +Signed-off-by: Dmitry Eremin-Solenikov +--- + configure.ac | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +Index: git/configure.ac +=================================================================== +--- git.orig/configure.ac ++++ git/configure.ac +@@ -81,7 +81,7 @@ AC_ARG_WITH([efi-lds], + AS_HELP_STRING([--with-efi-lds=LDS_PATH],[Path to gnu-efi lds file.]), + [], + [with_efi_lds="/usr/lib/elf_${ARCH}_efi.lds"]) +-EXTRA_LDFLAGS="-L /usr/lib -L /usr/lib64 -Wl,--script=${with_efi_lds}" ++EXTRA_LDFLAGS="-Wl,--script=${with_efi_lds}" + + # path to object file from gnu-efi + AC_ARG_WITH([efi-crt0], diff --git a/Contrib-Inspur/openbmc/meta-security/meta-tpm/recipes-tpm2/tpm2-tcti-uefi/tpm2-tcti-uefi_0.9.9.bb b/Contrib-Inspur/openbmc/meta-security/meta-tpm/recipes-tpm2/tpm2-tcti-uefi/tpm2-tcti-uefi_0.9.9.bb index 815691df..f4918ec0 100644 --- a/Contrib-Inspur/openbmc/meta-security/meta-tpm/recipes-tpm2/tpm2-tcti-uefi/tpm2-tcti-uefi_0.9.9.bb +++ b/Contrib-Inspur/openbmc/meta-security/meta-tpm/recipes-tpm2/tpm2-tcti-uefi/tpm2-tcti-uefi_0.9.9.bb @@ -2,17 +2,38 @@ SUMMARY = "TCTI module for use with TSS2 libraries in UEFI environment" SECTION = "security/tpm" LICENSE = "BSD-2-Clause" LIC_FILES_CHKSUM = "file://LICENSE;md5=500b2e742befc3da00684d8a1d5fd9da" -DEPENDS = "libtss2-dev gnu-efi-native gnu-efi pkgconfig" +DEPENDS = "libtss2-dev gnu-efi-native gnu-efi pkgconfig autoconf-archive-native" SRC_URI = "git://github.com/tpm2-software/tpm2-tcti-uefi.git \ file://configure_oe_fixup.patch \ + file://0001-configure.ac-stop-inserting-host-directories-into-co.patch \ " -SRCREV = "131889d12d2c7d8974711d2ebd1032cd32577b7f" +SRCREV = "431c85f45dcdca5da003ed47c6e9814282476938" S = "${WORKDIR}/git" inherit autotools pkgconfig +EFIDIR ?= "/EFI/BOOT" + +do_compile_append() { + oe_runmake example +} + +do_install_append() { + install -d "${D}${EFIDIR}" + install -m 0755 "${B}"/example/*.efi "${D}${EFIDIR}" +} + +EFI_ARCH_x86 = "ia32" +EFI_ARCH_x86-64 = "x86_64" + COMPATIBLE_HOST = "(i.86|x86_64).*-linux" -EXTRA_OECONF_append = " --with-efi-includedir=${STAGING_INCDIR}/efi --with-efi-lds=${STAGING_LIBDIR_NATIVE}/" +EXTRA_OECONF_append = "\ + --with-efi-includedir=${STAGING_INCDIR}/efi \ + --with-efi-crt0=${STAGING_LIBDIR_NATIVE}/crt0-efi-${EFI_ARCH}.o \ + --with-efi-lds=${STAGING_LIBDIR_NATIVE}/elf_${EFI_ARCH}_efi.lds \ +" RDEPENDS_${PN} = "gnu-efi" + +FILES_${PN} += "${EFIDIR}" diff --git a/Contrib-Inspur/openbmc/meta-security/meta-tpm/recipes-tpm2/tpm2-tools/tpm2-tools_3.1.3.bb b/Contrib-Inspur/openbmc/meta-security/meta-tpm/recipes-tpm2/tpm2-tools/tpm2-tools_3.1.3.bb deleted file mode 100644 index 1f1f5c60..00000000 --- a/Contrib-Inspur/openbmc/meta-security/meta-tpm/recipes-tpm2/tpm2-tools/tpm2-tools_3.1.3.bb +++ /dev/null @@ -1,15 +0,0 @@ -SUMMARY = "Tools for TPM2." -DESCRIPTION = "tpm2-tools" -LICENSE = "BSD" -LIC_FILES_CHKSUM = "file://LICENSE;md5=91b7c548d73ea16537799e8060cea819" -SECTION = "tpm" - -DEPENDS = "pkgconfig tpm2-tss openssl curl autoconf-archive" - -SRCREV = "74ba065e5914bc5d713ca3709d62a5751b097369" - -SRC_URI = "git://github.com/tpm2-software/tpm2-tools.git;branch=3.X" - -S = "${WORKDIR}/git" - -inherit autotools pkgconfig diff --git a/Contrib-Inspur/openbmc/meta-security/meta-tpm/recipes-tpm2/tpm2-tools/tpm2-tools_4.0.1.bb b/Contrib-Inspur/openbmc/meta-security/meta-tpm/recipes-tpm2/tpm2-tools/tpm2-tools_4.0.1.bb new file mode 100644 index 00000000..8f949725 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-security/meta-tpm/recipes-tpm2/tpm2-tools/tpm2-tools_4.0.1.bb @@ -0,0 +1,14 @@ +SUMMARY = "Tools for TPM2." +DESCRIPTION = "tpm2-tools" +LICENSE = "BSD" +LIC_FILES_CHKSUM = "file://LICENSE;md5=0eb1216e46938bd723098d93a23c3bcc" +SECTION = "tpm" + +DEPENDS = "tpm2-abrmd tpm2-tss openssl curl autoconf-archive" + +SRC_URI = "https://github.com/tpm2-software/${BPN}/releases/download/${PV}/${BPN}-${PV}.tar.gz" + +SRC_URI[md5sum] = "071aa40bc8721700ea4ed19cc2fdeabf" +SRC_URI[sha256sum] = "ccec3fca6370341a102c5c2ef1ddb4e5cd242bf1bbc6c51d969f77fc78ca67d1" + +inherit autotools pkgconfig bash-completion diff --git a/Contrib-Inspur/openbmc/meta-security/meta-tpm/recipes-tpm2/tpm2-totp/files/litpm2_totp_build_fix.patch b/Contrib-Inspur/openbmc/meta-security/meta-tpm/recipes-tpm2/tpm2-totp/files/litpm2_totp_build_fix.patch deleted file mode 100644 index c1470545..00000000 --- a/Contrib-Inspur/openbmc/meta-security/meta-tpm/recipes-tpm2/tpm2-totp/files/litpm2_totp_build_fix.patch +++ /dev/null @@ -1,36 +0,0 @@ -C99 fixes: - - src/libtpm2-totp.c:172:13: error: format '%li' expects argument of type 'long int', but argument 3 has type 'size_t' {aka 'unsigned int'} [-Werror=format=] -| dbg("Calling Esys_GetRandom for %li bytes", SECRETLEN - *secret_size); - -src/tpm2-totp.c:343:23: error: format '%ld' expects argument of type 'long int', but argument 3 has type 'uint64_t' {aka 'long long unsigned int'} [-Werror=format=] - -Upstream-Status: Pending -Signed-off-by: Armin Kuster - -Index: git/src/libtpm2-totp.c -=================================================================== ---- git.orig/src/libtpm2-totp.c -+++ git/src/libtpm2-totp.c -@@ -169,7 +169,7 @@ tpm2totp_generateKey(uint32_t pcrs, uint - if (rc != TPM2_RC_INITIALIZE) chkrc(rc, goto error); - - while (*secret_size < SECRETLEN) { -- dbg("Calling Esys_GetRandom for %li bytes", SECRETLEN - *secret_size); -+ dbg("Calling Esys_GetRandom for %li bytes", (long int) (SECRETLEN - *secret_size)); - rc = Esys_GetRandom(ctx, - ESYS_TR_NONE, ESYS_TR_NONE, ESYS_TR_NONE, - SECRETLEN - *secret_size, &t); -Index: git/src/tpm2-totp.c -=================================================================== ---- git.orig/src/tpm2-totp.c -+++ git/src/tpm2-totp.c -@@ -340,7 +340,7 @@ main(int argc, char **argv) - localtime (&now)); - chkrc(rc, exit(1)); - } -- printf("%s%06ld", timestr, totp); -+ printf("%s%06ld", timestr, (long int)totp); - break; - case CMD_RESEAL: - rc = tpm2totp_loadKey_nv(opt.nvindex, &keyBlob, &keyBlob_size); diff --git a/Contrib-Inspur/openbmc/meta-security/meta-tpm/recipes-tpm2/tpm2-totp/tpm2-totp_0.2.0.bb b/Contrib-Inspur/openbmc/meta-security/meta-tpm/recipes-tpm2/tpm2-totp/tpm2-totp_0.2.0.bb new file mode 100644 index 00000000..0dad6730 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-security/meta-tpm/recipes-tpm2/tpm2-totp/tpm2-totp_0.2.0.bb @@ -0,0 +1,18 @@ +SUMMARY = "Attest the trustworthiness of a device against a human using time-based one-time passwords" + +LICENSE = "BSD-3-Clause" +LIC_FILES_CHKSUM = "file://LICENSE;md5=ed23833e93c95173c8d8913745e4b4e1" + +SECTION = "security/tpm" + +DEPENDS = "autoconf-archive libtss2-dev qrencode" + +PE = "1" + +SRCREV = "994b4203e4769baefa6e7719915629bc8210e90a" +SRC_URI = "git://github.com/tpm2-software/tpm2-totp.git;branch=v0.2.x \ + " + +inherit autotools-brokensep pkgconfig + +S = "${WORKDIR}/git" diff --git a/Contrib-Inspur/openbmc/meta-security/meta-tpm/recipes-tpm2/tpm2-totp/tpm2-totp_0.9.9.bb b/Contrib-Inspur/openbmc/meta-security/meta-tpm/recipes-tpm2/tpm2-totp/tpm2-totp_0.9.9.bb deleted file mode 100644 index bc94ab71..00000000 --- a/Contrib-Inspur/openbmc/meta-security/meta-tpm/recipes-tpm2/tpm2-totp/tpm2-totp_0.9.9.bb +++ /dev/null @@ -1,17 +0,0 @@ -SUMMARY = "The tpm2-tss-engine project implements a cryptographic engine for OpenSSL." -DESCRIPTION = "The tpm2-tss-engine project implements a cryptographic engine for OpenSSL for Trusted Platform Module (TPM 2.0) using the tpm2-tss software stack that follows the Trusted Computing Groups (TCG) TPM Software Stack (TSS 2.0). It uses the Enhanced System API (ESAPI) interface of the TSS 2.0 for downwards communication. It supports RSA decryption and signatures as well as ECDSA signatures." - -LICENSE = "BSD-2-Clause" -LIC_FILES_CHKSUM = "file://LICENSE;md5=ed23833e93c95173c8d8913745e4b4e1" - -SECTION = "security/tpm" - -DEPENDS = "autoconf-archive libtss2-dev qrencode" - -SRCREV = "44fcb6819f79302d5a088b3def648616e3551d4a" -SRC_URI = "git://github.com/tpm2-software/tpm2-totp.git \ - file://litpm2_totp_build_fix.patch " - -inherit autotools-brokensep pkgconfig - -S = "${WORKDIR}/git" diff --git a/Contrib-Inspur/openbmc/meta-security/meta-tpm/recipes-tpm2/tpm2-tss-engine/tpm2-tss-engine_0.9.9.bb b/Contrib-Inspur/openbmc/meta-security/meta-tpm/recipes-tpm2/tpm2-tss-engine/tpm2-tss-engine_0.9.9.bb deleted file mode 100644 index 36530be2..00000000 --- a/Contrib-Inspur/openbmc/meta-security/meta-tpm/recipes-tpm2/tpm2-tss-engine/tpm2-tss-engine_0.9.9.bb +++ /dev/null @@ -1,23 +0,0 @@ -SUMMARY = "The tpm2-tss-engine project implements a cryptographic engine for OpenSSL." -DESCRIPTION = "The tpm2-tss-engine project implements a cryptographic engine for OpenSSL for Trusted Platform Module (TPM 2.0) using the tpm2-tss software stack that follows the Trusted Computing Groups (TCG) TPM Software Stack (TSS 2.0). It uses the Enhanced System API (ESAPI) interface of the TSS 2.0 for downwards communication. It supports RSA decryption and signatures as well as ECDSA signatures." - -LICENSE = "BSD-2-Clause" -LIC_FILES_CHKSUM = "file://LICENSE;md5=3fb0047fd29391478a71e8e6101c76eb" - -SECTION = "security/tpm" - -DEPENDS = "autoconf-archive-native bash-completion libtss2 libgcrypt openssl" - -SRCREV = "bef89ec79cbb4c99963b0e336d9184827c545782" -SRC_URI = "git://github.com/tpm2-software/tpm2-tss-engine.git" - -inherit autotools-brokensep pkgconfig systemd - -S = "${WORKDIR}/git" - -PACKAGES += "${PN}-engines ${PN}-engines-staticdev ${PN}-bash-completion" - -FILES_${PN}-dev = "${libdir}/engines-1.1/tpm2tss.so ${includedir}/*" -FILES_${PN}-engines = "${libdir}/engines-1.1/lib*.so*" -FILES_${PN}-engines-staticdev = "${libdir}/engines-1.1/libtpm2tss.a" -FILES_${PN}-bash-completion += "${datadir}/bash-completion/completions" diff --git a/Contrib-Inspur/openbmc/meta-security/meta-tpm/recipes-tpm2/tpm2-tss-engine/tpm2-tss-engine_1.0.1.bb b/Contrib-Inspur/openbmc/meta-security/meta-tpm/recipes-tpm2/tpm2-tss-engine/tpm2-tss-engine_1.0.1.bb new file mode 100644 index 00000000..3641b1b7 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-security/meta-tpm/recipes-tpm2/tpm2-tss-engine/tpm2-tss-engine_1.0.1.bb @@ -0,0 +1,23 @@ +SUMMARY = "The tpm2-tss-engine project implements a cryptographic engine for OpenSSL." +DESCRIPTION = "The tpm2-tss-engine project implements a cryptographic engine for OpenSSL for Trusted Platform Module (TPM 2.0) using the tpm2-tss software stack that follows the Trusted Computing Groups (TCG) TPM Software Stack (TSS 2.0). It uses the Enhanced System API (ESAPI) interface of the TSS 2.0 for downwards communication. It supports RSA decryption and signatures as well as ECDSA signatures." + +LICENSE = "BSD-2-Clause" +LIC_FILES_CHKSUM = "file://LICENSE;md5=7b3ab643b9ce041de515d1ed092a36d4" + +SECTION = "security/tpm" + +DEPENDS = "autoconf-archive-native bash-completion libtss2 libgcrypt openssl" + +SRCREV = "fdc8f65dfc8bad8b5a3aed181fae338267308f70" +SRC_URI = "git://github.com/tpm2-software/tpm2-tss-engine.git" + +inherit autotools-brokensep pkgconfig systemd + +S = "${WORKDIR}/git" + +PACKAGES += "${PN}-engines ${PN}-engines-staticdev ${PN}-bash-completion" + +FILES_${PN}-dev = "${libdir}/engines-1.1/tpm2tss.so ${includedir}/*" +FILES_${PN}-engines = "${libdir}/engines-1.1/lib*.so*" +FILES_${PN}-engines-staticdev = "${libdir}/engines-1.1/libtpm2tss.a" +FILES_${PN}-bash-completion += "${datadir}/bash-completion/completions" diff --git a/Contrib-Inspur/openbmc/meta-security/meta-tpm/recipes-tpm2/tpm2-tss/tpm2-tss_2.2.1.bb b/Contrib-Inspur/openbmc/meta-security/meta-tpm/recipes-tpm2/tpm2-tss/tpm2-tss_2.2.1.bb deleted file mode 100644 index 78bdeebe..00000000 --- a/Contrib-Inspur/openbmc/meta-security/meta-tpm/recipes-tpm2/tpm2-tss/tpm2-tss_2.2.1.bb +++ /dev/null @@ -1,79 +0,0 @@ -SUMMARY = "Software stack for TPM2." -DESCRIPTION = "OSS implementation of the TCG TPM2 Software Stack (TSS2) " -LICENSE = "BSD-2-Clause" -LIC_FILES_CHKSUM = "file://LICENSE;md5=500b2e742befc3da00684d8a1d5fd9da" -SECTION = "tpm" - -DEPENDS = "autoconf-archive-native libgcrypt openssl" - -SRCREV = "eb69e13559f20a0b49002a685c6f4a39be9503e2" - -SRC_URI = "git://github.com/tpm2-software/tpm2-tss.git;branch=2.2.x" - -inherit autotools-brokensep pkgconfig systemd - -S = "${WORKDIR}/git" - -PACKAGECONFIG ??= "" -PACKAGECONFIG[oxygen] = ",--disable-doxygen-doc, " - -do_configure_prepend () { - ./bootstrap -} - -INHERIT += "extrausers" -EXTRA_USERS_PARAMS = "\ - useradd -p '' tss; \ - groupadd tss; \ - " - -PROVIDES = "${PACKAGES}" -PACKAGES = " \ - ${PN} \ - ${PN}-dbg \ - ${PN}-doc \ - libtss2-mu \ - libtss2-mu-dev \ - libtss2-mu-staticdev \ - libtss2-tcti-device \ - libtss2-tcti-device-dev \ - libtss2-tcti-device-staticdev \ - libtss2-tcti-mssim \ - libtss2-tcti-mssim-dev \ - libtss2-tcti-mssim-staticdev \ - libtss2 \ - libtss2-dev \ - libtss2-staticdev \ -" - -FILES_libtss2-tcti-device = "${libdir}/libtss2-tcti-device.so.*" -FILES_libtss2-tcti-device-dev = " \ - ${includedir}/tss2/tss2_tcti_device.h \ - ${libdir}/pkgconfig/tss2-tcti-device.pc \ - ${libdir}/libtss2-tcti-device.so" -FILES_libtss2-tcti-device-staticdev = "${libdir}/libtss2-tcti-device.*a" - -FILES_libtss2-tcti-mssim = "${libdir}/libtss2-tcti-mssim.so.*" -FILES_libtss2-tcti-mssim-dev = " \ - ${includedir}/tss2/tss2_tcti_mssim.h \ - ${libdir}/pkgconfig/tss2-tcti-mssim.pc \ - ${libdir}/libtss2-tcti-mssim.so" -FILES_libtss2-tcti-mssim-staticdev = "${libdir}/libtss2-tcti-mssim.*a" - -FILES_libtss2-mu = "${libdir}/libtss2-mu.so.*" -FILES_libtss2-mu-dev = " \ - ${includedir}/tss2/tss2_mu.h \ - ${libdir}/pkgconfig/tss2-mu.pc \ - ${libdir}/libtss2-mu.so" -FILES_libtss2-mu-staticdev = "${libdir}/libtss2-mu.*a" - -FILES_libtss2 = "${libdir}/libtss2*so.*" -FILES_libtss2-dev = " \ - ${includedir} \ - ${libdir}/pkgconfig \ - ${libdir}/libtss2*so" -FILES_libtss2-staticdev = "${libdir}/libtss*a" - -FILES_${PN} = "${libdir}/udev" - -RDEPENDS_libtss2 = "libgcrypt" diff --git a/Contrib-Inspur/openbmc/meta-security/meta-tpm/recipes-tpm2/tpm2-tss/tpm2-tss_2.3.1.bb b/Contrib-Inspur/openbmc/meta-security/meta-tpm/recipes-tpm2/tpm2-tss/tpm2-tss_2.3.1.bb new file mode 100644 index 00000000..dfdf7342 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-security/meta-tpm/recipes-tpm2/tpm2-tss/tpm2-tss_2.3.1.bb @@ -0,0 +1,81 @@ +SUMMARY = "Software stack for TPM2." +DESCRIPTION = "OSS implementation of the TCG TPM2 Software Stack (TSS2) " +LICENSE = "BSD-2-Clause" +LIC_FILES_CHKSUM = "file://LICENSE;md5=500b2e742befc3da00684d8a1d5fd9da" +SECTION = "tpm" + +DEPENDS = "autoconf-archive-native libgcrypt openssl" + +SRCREV = "a99e733ba66c359502689a9c42fd5e02ed1dd7d6" + +SRC_URI = "git://github.com/tpm2-software/tpm2-tss.git;branch=2.3.x" + +inherit autotools-brokensep pkgconfig systemd + +S = "${WORKDIR}/git" + +PACKAGECONFIG ??= "" +PACKAGECONFIG[oxygen] = ",--disable-doxygen-doc, " + +EXTRA_OECONF += "--with-udevrulesdir=${base_prefix}/lib/udev/rules.d/" + +do_configure_prepend () { + ./bootstrap +} + +INHERIT += "extrausers" +EXTRA_USERS_PARAMS = "\ + useradd -p '' tss; \ + groupadd tss; \ + " + +PROVIDES = "${PACKAGES}" +PACKAGES = " \ + ${PN} \ + ${PN}-dbg \ + ${PN}-doc \ + libtss2-mu \ + libtss2-mu-dev \ + libtss2-mu-staticdev \ + libtss2-tcti-device \ + libtss2-tcti-device-dev \ + libtss2-tcti-device-staticdev \ + libtss2-tcti-mssim \ + libtss2-tcti-mssim-dev \ + libtss2-tcti-mssim-staticdev \ + libtss2 \ + libtss2-dev \ + libtss2-staticdev \ +" + +FILES_libtss2-tcti-device = "${libdir}/libtss2-tcti-device.so.*" +FILES_libtss2-tcti-device-dev = " \ + ${includedir}/tss2/tss2_tcti_device.h \ + ${libdir}/pkgconfig/tss2-tcti-device.pc \ + ${libdir}/libtss2-tcti-device.so" +FILES_libtss2-tcti-device-staticdev = "${libdir}/libtss2-tcti-device.*a" + +FILES_libtss2-tcti-mssim = "${libdir}/libtss2-tcti-mssim.so.*" +FILES_libtss2-tcti-mssim-dev = " \ + ${includedir}/tss2/tss2_tcti_mssim.h \ + ${libdir}/pkgconfig/tss2-tcti-mssim.pc \ + ${libdir}/libtss2-tcti-mssim.so" +FILES_libtss2-tcti-mssim-staticdev = "${libdir}/libtss2-tcti-mssim.*a" + +FILES_libtss2-mu = "${libdir}/libtss2-mu.so.*" +FILES_libtss2-mu-dev = " \ + ${includedir}/tss2/tss2_mu.h \ + ${libdir}/pkgconfig/tss2-mu.pc \ + ${libdir}/libtss2-mu.so" +FILES_libtss2-mu-staticdev = "${libdir}/libtss2-mu.*a" + +FILES_libtss2 = "${libdir}/libtss2*so.*" +FILES_libtss2-dev = " \ + ${includedir} \ + ${libdir}/pkgconfig \ + ${libdir}/libtss2*so" +FILES_libtss2-staticdev = "${libdir}/libtss*a" + +FILES_${PN} = "${libdir}/udev ${base_prefix}/lib/udev" + +RDEPENDS_libtss2 = "libgcrypt" diff --git a/Contrib-Inspur/openbmc/meta-security/recipes-core/busybox/busybox_%.bbappend b/Contrib-Inspur/openbmc/meta-security/recipes-core/busybox/busybox_%.bbappend index 8bb0706e..27a24824 100644 --- a/Contrib-Inspur/openbmc/meta-security/recipes-core/busybox/busybox_%.bbappend +++ b/Contrib-Inspur/openbmc/meta-security/recipes-core/busybox/busybox_%.bbappend @@ -1,3 +1 @@ -FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:" - -SRC_URI += "file://head.cfg" +require ${@bb.utils.contains('DISTRO_FEATURES', 'ptest', 'busybox_libsecomp.inc', '', d)} diff --git a/Contrib-Inspur/openbmc/meta-security/recipes-core/busybox/busybox_libsecomp.inc b/Contrib-Inspur/openbmc/meta-security/recipes-core/busybox/busybox_libsecomp.inc new file mode 100644 index 00000000..4af22ce3 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-security/recipes-core/busybox/busybox_libsecomp.inc @@ -0,0 +1,3 @@ +FILESEXTRAPATHS_prepend := "${THISDIR}/busybox:" + +SRC_URI_append = " file://head.cfg" diff --git a/Contrib-Inspur/openbmc/meta-security/recipes-ids/samhain/files/samhain-cross-compile.patch b/Contrib-Inspur/openbmc/meta-security/recipes-ids/samhain/files/samhain-cross-compile.patch deleted file mode 100644 index 7f80a5c6..00000000 --- a/Contrib-Inspur/openbmc/meta-security/recipes-ids/samhain/files/samhain-cross-compile.patch +++ /dev/null @@ -1,51 +0,0 @@ -From f63908427b2adb1792c59edbe38618e14ef5bc7b Mon Sep 17 00:00:00 2001 -From: Jackie Huang -Date: Fri, 15 Jan 2016 00:48:58 -0500 -Subject: [PATCH] Enable obfuscating binaries natively. - -Enable obfuscating binaries natively. - -The samhain build process involves an obfuscation step that attempts to -defeat decompilation or other binary analysis techniques which might reveal -secret information that should be known only to the system administrator. -The obfuscation step builds several applications which run on the build host -and then generate target code, which is then built into target binaries. - -This patch creates a basic infrastructure that supports building the -obfuscation binaries natively then cross-compiling the target code by adding -a special configure option. In the absence of this option the old behaviour -is preserved. - -Upstream-Status: Inappropriate [cross compile specific] - -Signed-off-by: Aws Ismail -Signed-off-by: Jackie Huang ---- - Makefile.in | 4 +--- - 1 file changed, 1 insertion(+), 3 deletions(-) - -diff --git a/Makefile.in b/Makefile.in -index 684e92b..fb090e2 100644 ---- a/Makefile.in -+++ b/Makefile.in -@@ -54,7 +54,7 @@ selectconfig = @selectconfig@ - top_builddir = . - - INSTALL = @INSTALL@ --INSTALL_PROGRAM = @INSTALL@ -s -m 700 -+INSTALL_PROGRAM = @INSTALL@ -m 700 - INSTALL_SHELL = @INSTALL@ -m 700 - INSTALL_DATA = @INSTALL@ -m 600 - INSTALL_MAN = @INSTALL@ -m 644 -@@ -525,8 +525,6 @@ install-program: $(PROGRAMS) sstrip - echo " $(INSTALL_PROGRAM) $$p $$target"; \ - $(INSTALL_PROGRAM) $$p $$target; \ - chmod 0700 $$target; \ -- echo " ./sstrip $$target"; \ -- ./sstrip $$target; \ - else \ - echo " $(INSTALL_SHELL) $$p $$target"; \ - $(INSTALL_SHELL) $$p $$target; \ --- -1.9.1 - diff --git a/Contrib-Inspur/openbmc/meta-security/recipes-ids/samhain/samhain-client_4.3.2.bb b/Contrib-Inspur/openbmc/meta-security/recipes-ids/samhain/samhain-client.bb similarity index 100% rename from Contrib-Inspur/openbmc/meta-security/recipes-ids/samhain/samhain-client_4.3.2.bb rename to Contrib-Inspur/openbmc/meta-security/recipes-ids/samhain/samhain-client.bb diff --git a/Contrib-Inspur/openbmc/meta-security/recipes-ids/samhain/samhain-server_4.3.2.bb b/Contrib-Inspur/openbmc/meta-security/recipes-ids/samhain/samhain-server.bb similarity index 100% rename from Contrib-Inspur/openbmc/meta-security/recipes-ids/samhain/samhain-server_4.3.2.bb rename to Contrib-Inspur/openbmc/meta-security/recipes-ids/samhain/samhain-server.bb diff --git a/Contrib-Inspur/openbmc/meta-security/recipes-ids/samhain/samhain-standalone_4.3.2.bb b/Contrib-Inspur/openbmc/meta-security/recipes-ids/samhain/samhain-standalone.bb similarity index 100% rename from Contrib-Inspur/openbmc/meta-security/recipes-ids/samhain/samhain-standalone_4.3.2.bb rename to Contrib-Inspur/openbmc/meta-security/recipes-ids/samhain/samhain-standalone.bb diff --git a/Contrib-Inspur/openbmc/meta-security/recipes-ids/samhain/samhain.inc b/Contrib-Inspur/openbmc/meta-security/recipes-ids/samhain/samhain.inc index 1b9af39c..16222ba1 100644 --- a/Contrib-Inspur/openbmc/meta-security/recipes-ids/samhain/samhain.inc +++ b/Contrib-Inspur/openbmc/meta-security/recipes-ids/samhain/samhain.inc @@ -3,9 +3,9 @@ HOMEPAGE = "http://www.la-samhna.de/samhain/" LICENSE = "GPLv2" LIC_FILES_CHKSUM = "file://LICENSE;md5=8ca43cbc842c2336e835926c2166c28b" +PV = "4.3.3" SRC_URI = "http://la-samhna.de/archive/samhain_signed-${PV}.tar.gz \ - file://samhain-cross-compile.patch \ file://samhain-mips64-aarch64-dnmalloc-hash-fix.patch \ file://samhain-samhainrc.patch \ file://samhain-samhainrc-fix-files-dirs-path.patch \ @@ -19,8 +19,8 @@ SRC_URI = "http://la-samhna.de/archive/samhain_signed-${PV}.tar.gz \ file://samhain.service \ " -SRC_URI[md5sum] = "eae4674164d7c78f5bb39c72b7029c8b" -SRC_URI[sha256sum] = "0582864ef56ab796031e8e611ed66c48adeb3a30ec34e1a8d0088572442035fc" +SRC_URI[md5sum] = "7be46ae7d03f53ba21afafd41cff8926" +SRC_URI[sha256sum] = "33ad4bc3dad4699694553bd9635a6b5827939f965d1f0f05fce0b4e9cdadf21b" UPSTREAM_CHECK_URI = "https://www.la-samhna.de/samhain/archive.html" UPSTREAM_CHECK_REGEX = "samhain_signed-(?P(\d+(\.\d+)+))\.tar" diff --git a/Contrib-Inspur/openbmc/meta-security/recipes-ids/suricata/files/0001-af-packet-fix-build-on-recent-Linux-kernels.patch b/Contrib-Inspur/openbmc/meta-security/recipes-ids/suricata/files/0001-af-packet-fix-build-on-recent-Linux-kernels.patch new file mode 100644 index 00000000..530568b1 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-security/recipes-ids/suricata/files/0001-af-packet-fix-build-on-recent-Linux-kernels.patch @@ -0,0 +1,26 @@ +From b37554e0bc3cf383e6547c5c6a69c6f6849c09e3 Mon Sep 17 00:00:00 2001 +From: Eric Leblond +Date: Wed, 17 Jul 2019 12:35:12 +0200 +Subject: [PATCH] af-packet: fix build on recent Linux kernels + +Upstream-Status: Backport +Signed-off-by: Armin kuster +--- + src/source-af-packet.c | 4 ++++ + 1 file changed, 4 insertions(+) + +Index: suricata-4.1.5/src/source-af-packet.c +=================================================================== +--- suricata-4.1.5.orig/src/source-af-packet.c ++++ suricata-4.1.5/src/source-af-packet.c +@@ -68,6 +68,10 @@ + #include + #endif + ++#if HAVE_LINUX_SOCKIOS_H ++#include ++#endif ++ + #ifdef HAVE_PACKET_EBPF + #include "util-ebpf.h" + #include diff --git a/Contrib-Inspur/openbmc/meta-security/recipes-ids/suricata/files/emerging.rules.tar.gz b/Contrib-Inspur/openbmc/meta-security/recipes-ids/suricata/files/emerging.rules.tar.gz deleted file mode 100644 index aed37547..00000000 Binary files a/Contrib-Inspur/openbmc/meta-security/recipes-ids/suricata/files/emerging.rules.tar.gz and /dev/null differ diff --git a/Contrib-Inspur/openbmc/meta-security/recipes-ids/suricata/files/tmpfiles.suricata b/Contrib-Inspur/openbmc/meta-security/recipes-ids/suricata/files/tmpfiles.suricata new file mode 100644 index 00000000..fbf37848 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-security/recipes-ids/suricata/files/tmpfiles.suricata @@ -0,0 +1,2 @@ +#Type Path Mode UID GID Age Argument +d /var/log/suricata 0755 root root diff --git a/Contrib-Inspur/openbmc/meta-security/recipes-ids/suricata/libhtp_0.5.29.bb b/Contrib-Inspur/openbmc/meta-security/recipes-ids/suricata/libhtp_0.5.32.bb similarity index 100% rename from Contrib-Inspur/openbmc/meta-security/recipes-ids/suricata/libhtp_0.5.29.bb rename to Contrib-Inspur/openbmc/meta-security/recipes-ids/suricata/libhtp_0.5.32.bb diff --git a/Contrib-Inspur/openbmc/meta-security/recipes-ids/suricata/python3-suricata-update_1.1.1.bb b/Contrib-Inspur/openbmc/meta-security/recipes-ids/suricata/python3-suricata-update_1.1.1.bb new file mode 100644 index 00000000..0070b5bc --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-security/recipes-ids/suricata/python3-suricata-update_1.1.1.bb @@ -0,0 +1,15 @@ +SUMMARY = "The tool for updating your Suricata rules. " +HOMEPAGE = "http://suricata-ids.org/" +SECTION = "security Monitor/Admin" +LICENSE = "GPLv2" + +LIC_FILES_CHKSUM = "file://LICENSE;beginline=1;endline=2;md5=c70d8d3310941dcdfcd1e02800a1f548" + +SRCREV = "9630630ffc493ca26299d174ee2066aa1405b2d4" +SRC_URI = "git://github.com/OISF/suricata-update;branch='master-1.1.x'" + +S = "${WORKDIR}/git" + +inherit python3native setuptools3 + +RDEPENDS_${PN} = "python3-pyyaml" diff --git a/Contrib-Inspur/openbmc/meta-security/recipes-ids/suricata/suricata.inc b/Contrib-Inspur/openbmc/meta-security/recipes-ids/suricata/suricata.inc index 7be403cc..3adbcf6d 100644 --- a/Contrib-Inspur/openbmc/meta-security/recipes-ids/suricata/suricata.inc +++ b/Contrib-Inspur/openbmc/meta-security/recipes-ids/suricata/suricata.inc @@ -2,8 +2,8 @@ HOMEPAGE = "http://suricata-ids.org/" SECTION = "security Monitor/Admin" LICENSE = "GPLv2" -VER = "4.1.3" +VER = "4.1.6" SRC_URI = "http://www.openinfosecfoundation.org/download/suricata-${VER}.tar.gz" -SRC_URI[md5sum] = "35c4a8e6be3910831649a073950195df" -SRC_URI[sha256sum] = "6cda6c80b753ce36483c6be535358b971f3890b9aa27a58c2d2f7e89dd6c6aa0" +SRC_URI[md5sum] = "da5de1e8053f05cbd295793210117d34" +SRC_URI[sha256sum] = "8441ac89016106459ade2112fcde58b3f789e4beb2fd8bfa081ffb75eec75fe0" diff --git a/Contrib-Inspur/openbmc/meta-security/recipes-ids/suricata/suricata_4.1.3.bb b/Contrib-Inspur/openbmc/meta-security/recipes-ids/suricata/suricata_4.1.3.bb deleted file mode 100644 index d6f5937d..00000000 --- a/Contrib-Inspur/openbmc/meta-security/recipes-ids/suricata/suricata_4.1.3.bb +++ /dev/null @@ -1,97 +0,0 @@ -SUMMARY = "The Suricata Engine is an Open Source Next Generation Intrusion Detection and Prevention Engine" - -require suricata.inc - -LIC_FILES_CHKSUM = "file://LICENSE;beginline=1;endline=2;md5=c70d8d3310941dcdfcd1e02800a1f548" - -SRC_URI += "file://emerging.rules.tar.gz;name=rules" - -SRC_URI += " \ - file://volatiles.03_suricata \ - file://suricata.yaml \ - file://suricata.service \ - file://run-ptest \ - " - -SRC_URI[rules.md5sum] = "205c5e5b54e489207ed892c03ad75b33" -SRC_URI[rules.sha256sum] = "4aa81011b246875a57181c6a0569ca887845e366904bcaf0043220f33bd69798" - -inherit autotools-brokensep pkgconfig python3-dir systemd ptest - -CFLAGS += "-D_DEFAULT_SOURCE" - -CACHED_CONFIGUREVARS = "ac_cv_header_htp_htp_h=yes ac_cv_lib_htp_htp_conn_create=yes \ - ac_cv_path_HAVE_WGET=no ac_cv_path_HAVE_CURL=no " - -EXTRA_OECONF += " --disable-debug \ - --enable-non-bundled-htp \ - --disable-gccmarch-native \ - --disable-suricata-update \ - " - -PACKAGECONFIG ??= "htp jansson file pcre yaml pcap cap-ng net nfnetlink nss nspr" -PACKAGECONFIG_append = " ${@bb.utils.contains('DISTRO_FEATURES', 'ptest', 'unittests', '', d)}" - -PACKAGECONFIG[htp] = "--with-libhtp-includes=${STAGING_INCDIR} --with-libhtp-libraries=${STAGING_LIBDIR}, ,libhtp," -PACKAGECONFIG[pcre] = "--with-libpcre-includes=${STAGING_INCDIR} --with-libpcre-libraries=${STAGING_LIBDIR}, ,libpcre ," -PACKAGECONFIG[yaml] = "--with-libyaml-includes=${STAGING_INCDIR} --with-libyaml-libraries=${STAGING_LIBDIR}, ,libyaml ," -PACKAGECONFIG[pcap] = "--with-libpcap-includes=${STAGING_INCDIR} --with-libpcap-libraries=${STAGING_LIBDIR}, ,libpcap ," -PACKAGECONFIG[cap-ng] = "--with-libcap_ng-includes=${STAGING_INCDIR} --with-libcap_ng-libraries=${STAGING_LIBDIR}, ,libcap-ng , " -PACKAGECONFIG[net] = "--with-libnet-includes=${STAGING_INCDIR} --with-libnet-libraries=${STAGING_LIBDIR}, , libnet," -PACKAGECONFIG[nfnetlink] = "--with-libnfnetlink-includes=${STAGING_INCDIR} --with-libnfnetlink-libraries=${STAGING_LIBDIR}, ,libnfnetlink ," -PACKAGECONFIG[nfq] = "--enable-nfqueue, --disable-nfqueue,libnetfilter-queue," - -PACKAGECONFIG[jansson] = "--with-libjansson-includes=${STAGING_INCDIR} --with-libjansson-libraries=${STAGING_LIBDIR},,jansson, jansson" -PACKAGECONFIG[file] = ",,file, file" -PACKAGECONFIG[nss] = "--with-libnss-includes=${STAGING_INCDIR} --with-libnss-libraries=${STAGING_LIBDIR}, nss, nss," -PACKAGECONFIG[nspr] = "--with-libnspr-includes=${STAGING_INCDIR} --with-libnspr-libraries=${STAGING_LIBDIR}, nspr, nspr," -PACKAGECONFIG[python] = "--enable-python, --disable-python, python3, python3" -PACKAGECONFIG[unittests] = "--enable-unittests, --disable-unittests," - -export logdir = "${localstatedir}/log" - -do_install_append () { - - install -d ${D}${sysconfdir}/suricata - - oe_runmake install-conf DESTDIR=${D} - - # mimic move of downloaded rules to e_sysconfrulesdir - cp -rf ${WORKDIR}/rules ${D}${sysconfdir}/suricata - - oe_runmake install-rules DESTDIR=${D} - - install -d ${D}${sysconfdir}/suricata ${D}${sysconfdir}/default/volatiles - install -m 0644 ${WORKDIR}/volatiles.03_suricata ${D}${sysconfdir}/default/volatiles/volatiles.03_suricata - - install -m 0644 ${S}/threshold.config ${D}${sysconfdir}/suricata - - install -d ${D}${systemd_unitdir}/system - sed -e s:/etc:${sysconfdir}:g \ - -e s:/var/run:/run:g \ - -e s:/var:${localstatedir}:g \ - -e s:/usr/bin:${bindir}:g \ - -e s:/bin/kill:${base_bindir}/kill:g \ - -e s:/usr/lib:${libdir}:g \ - ${WORKDIR}/suricata.service > ${D}${systemd_unitdir}/system/suricata.service - - # Remove /var/run as it is created on startup - rm -rf ${D}${localstatedir}/run - -} - -pkg_postinst_ontarget_${PN} () { -if [ -e /etc/init.d/populate-volatile.sh ] ; then - ${sysconfdir}/init.d/populate-volatile.sh update -fi -} - -SYSTEMD_PACKAGES = "${PN}" - -PACKAGES =+ "${PN}-socketcontrol" -FILES_${PN} += "${systemd_unitdir}" -FILES_${PN}-socketcontrol = "${bindir}/suricatasc ${PYTHON_SITEPACKAGES_DIR}" - -CONFFILES_${PN} = "${sysconfdir}/suricata/suricata.yaml" - -RDEPENDS_${PN}-python = "python" diff --git a/Contrib-Inspur/openbmc/meta-security/recipes-ids/suricata/suricata_4.1.6.bb b/Contrib-Inspur/openbmc/meta-security/recipes-ids/suricata/suricata_4.1.6.bb new file mode 100644 index 00000000..9b7122b9 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-security/recipes-ids/suricata/suricata_4.1.6.bb @@ -0,0 +1,97 @@ +SUMMARY = "The Suricata Engine is an Open Source Next Generation Intrusion Detection and Prevention Engine" + +require suricata.inc + +LIC_FILES_CHKSUM = "file://LICENSE;beginline=1;endline=2;md5=c70d8d3310941dcdfcd1e02800a1f548" + +SRC_URI += " \ + file://volatiles.03_suricata \ + file://tmpfiles.suricata \ + file://suricata.yaml \ + file://suricata.service \ + file://run-ptest \ + " + +inherit autotools-brokensep pkgconfig python3-dir systemd ptest + +CFLAGS += "-D_DEFAULT_SOURCE" + +CACHED_CONFIGUREVARS = "ac_cv_header_htp_htp_h=yes ac_cv_lib_htp_htp_conn_create=yes \ + ac_cv_path_HAVE_WGET=no ac_cv_path_HAVE_CURL=no " + +EXTRA_OECONF += " --disable-debug \ + --enable-non-bundled-htp \ + --disable-gccmarch-native \ + --disable-suricata-update \ + " + +PACKAGECONFIG ??= "htp jansson file pcre yaml pcap cap-ng net nfnetlink nss nspr" +PACKAGECONFIG_append = " ${@bb.utils.contains('DISTRO_FEATURES', 'ptest', 'unittests', '', d)}" + +PACKAGECONFIG[htp] = "--with-libhtp-includes=${STAGING_INCDIR} --with-libhtp-libraries=${STAGING_LIBDIR}, ,libhtp," +PACKAGECONFIG[pcre] = "--with-libpcre-includes=${STAGING_INCDIR} --with-libpcre-libraries=${STAGING_LIBDIR}, ,libpcre ," +PACKAGECONFIG[yaml] = "--with-libyaml-includes=${STAGING_INCDIR} --with-libyaml-libraries=${STAGING_LIBDIR}, ,libyaml ," +PACKAGECONFIG[pcap] = "--with-libpcap-includes=${STAGING_INCDIR} --with-libpcap-libraries=${STAGING_LIBDIR}, ,libpcap ," +PACKAGECONFIG[cap-ng] = "--with-libcap_ng-includes=${STAGING_INCDIR} --with-libcap_ng-libraries=${STAGING_LIBDIR}, ,libcap-ng , " +PACKAGECONFIG[net] = "--with-libnet-includes=${STAGING_INCDIR} --with-libnet-libraries=${STAGING_LIBDIR}, , libnet," +PACKAGECONFIG[nfnetlink] = "--with-libnfnetlink-includes=${STAGING_INCDIR} --with-libnfnetlink-libraries=${STAGING_LIBDIR}, ,libnfnetlink ," +PACKAGECONFIG[nfq] = "--enable-nfqueue, --disable-nfqueue,libnetfilter-queue," + +PACKAGECONFIG[jansson] = "--with-libjansson-includes=${STAGING_INCDIR} --with-libjansson-libraries=${STAGING_LIBDIR},,jansson, jansson" +PACKAGECONFIG[file] = ",,file, file" +PACKAGECONFIG[nss] = "--with-libnss-includes=${STAGING_INCDIR} --with-libnss-libraries=${STAGING_LIBDIR}, nss, nss," +PACKAGECONFIG[nspr] = "--with-libnspr-includes=${STAGING_INCDIR} --with-libnspr-libraries=${STAGING_LIBDIR}, nspr, nspr," +PACKAGECONFIG[python] = "--enable-python, --disable-python, python3, python3" +PACKAGECONFIG[unittests] = "--enable-unittests, --disable-unittests," + +export logdir = "${localstatedir}/log" + +do_install_append () { + + install -d ${D}${sysconfdir}/suricata + + oe_runmake install-conf DESTDIR=${D} + + oe_runmake install-rules DESTDIR=${D} + + install -d ${D}${sysconfdir}/suricata ${D}${sysconfdir}/default/volatiles + install -m 0644 ${WORKDIR}/volatiles.03_suricata ${D}${sysconfdir}/default/volatiles/volatiles.03_suricata + + install -m 0644 ${S}/threshold.config ${D}${sysconfdir}/suricata + + if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then + install -d ${D}${sysconfdir}/tmpfiles.d + install -m 0644 ${WORKDIR}/tmpfiles.suricata ${D}${sysconfdir}/tmpfiles.d/suricata.conf + + install -d ${D}${systemd_unitdir}/system + sed -e s:/etc:${sysconfdir}:g \ + -e s:/var/run:/run:g \ + -e s:/var:${localstatedir}:g \ + -e s:/usr/bin:${bindir}:g \ + -e s:/bin/kill:${base_bindir}/kill:g \ + -e s:/usr/lib:${libdir}:g \ + ${WORKDIR}/suricata.service > ${D}${systemd_unitdir}/system/suricata.service + fi + + # Remove /var/run as it is created on startup + rm -rf ${D}${localstatedir}/run + +} + +pkg_postinst_ontarget_${PN} () { +if command -v systemd-tmpfiles >/dev/null; then + systemd-tmpfiles --create ${sysconfdir}/tmpfiles.d/suricata.conf +elif [ -e ${sysconfdir}/init.d/populate-volatile.sh ]; then + ${sysconfdir}/init.d/populate-volatile.sh update +fi +} + +SYSTEMD_PACKAGES = "${PN}" + +PACKAGES =+ "${PN}-socketcontrol" +FILES_${PN} += "${systemd_unitdir} ${sysconfdir}/tmpfiles.d" +FILES_${PN}-socketcontrol = "${bindir}/suricatasc ${PYTHON_SITEPACKAGES_DIR}" + +CONFFILES_${PN} = "${sysconfdir}/suricata/suricata.yaml" + +RDEPENDS_${PN}-python = "python" diff --git a/Contrib-Inspur/openbmc/meta-security/recipes-kernel/linux/linux-%_5.%.bbappend b/Contrib-Inspur/openbmc/meta-security/recipes-kernel/linux/linux-%_5.%.bbappend new file mode 100644 index 00000000..76b5df55 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-security/recipes-kernel/linux/linux-%_5.%.bbappend @@ -0,0 +1,4 @@ +KERNEL_FEATURES_append = " ${@bb.utils.contains("DISTRO_FEATURES", "apparmor", " features/apparmor/apparmor.scc", "" ,d)}" +KERNEL_FEATURES_append = " ${@bb.utils.contains("DISTRO_FEATURES", "smack", " features/smack/smack.scc", "" ,d)}" +KERNEL_FEATURES_append = " ${@bb.utils.contains("DISTRO_FEATURES", "yama", " features/yama/yama.scc", "" ,d)}" + diff --git a/Contrib-Inspur/openbmc/meta-security/recipes-kernel/linux/linux-yocto-5.0/apparmor.cfg b/Contrib-Inspur/openbmc/meta-security/recipes-kernel/linux/linux-yocto-5.0/apparmor.cfg deleted file mode 100644 index ae6cdcdf..00000000 --- a/Contrib-Inspur/openbmc/meta-security/recipes-kernel/linux/linux-yocto-5.0/apparmor.cfg +++ /dev/null @@ -1,9 +0,0 @@ -CONFIG_AUDIT=y -CONFIG_SECURITY_PATH=y -CONFIG_SECURITY_APPARMOR=y -CONFIG_SECURITY_APPARMOR_HASH=y -CONFIG_SECURITY_APPARMOR_HASH_DEFAULT=y -CONFIG_INTEGRITY_AUDIT=y -CONFIG_DEFAULT_SECURITY_APPARMOR=y -CONFIG_DEFAULT_SECURITY="apparmor" -CONFIG_AUDIT_GENERIC=y diff --git a/Contrib-Inspur/openbmc/meta-security/recipes-kernel/linux/linux-yocto-5.0/apparmor_on_boot.cfg b/Contrib-Inspur/openbmc/meta-security/recipes-kernel/linux/linux-yocto-5.0/apparmor_on_boot.cfg deleted file mode 100644 index fc357401..00000000 --- a/Contrib-Inspur/openbmc/meta-security/recipes-kernel/linux/linux-yocto-5.0/apparmor_on_boot.cfg +++ /dev/null @@ -1 +0,0 @@ -CONFIG_SECURITY_APPARMOR_BOOTPARAM_VALUE=1 diff --git a/Contrib-Inspur/openbmc/meta-security/recipes-kernel/linux/linux-yocto-5.0/smack-default-lsm.cfg b/Contrib-Inspur/openbmc/meta-security/recipes-kernel/linux/linux-yocto-5.0/smack-default-lsm.cfg deleted file mode 100644 index b5c48454..00000000 --- a/Contrib-Inspur/openbmc/meta-security/recipes-kernel/linux/linux-yocto-5.0/smack-default-lsm.cfg +++ /dev/null @@ -1,2 +0,0 @@ -CONFIG_DEFAULT_SECURITY="smack" -CONFIG_DEFAULT_SECURITY_SMACK=y diff --git a/Contrib-Inspur/openbmc/meta-security/recipes-kernel/linux/linux-yocto-5.0/smack.cfg b/Contrib-Inspur/openbmc/meta-security/recipes-kernel/linux/linux-yocto-5.0/smack.cfg deleted file mode 100644 index 0d5fc645..00000000 --- a/Contrib-Inspur/openbmc/meta-security/recipes-kernel/linux/linux-yocto-5.0/smack.cfg +++ /dev/null @@ -1,7 +0,0 @@ -CONFIG_NETLABEL=y -CONFIG_SECURITY_NETWORK=y -# CONFIG_SECURITY_NETWORK_XFRM is not set -CONFIG_SECURITY_SMACK=y -CONFIG_SECURITY_SMACK_BRINGUP=y -CONFIG_SECURITY_SMACK_APPEND_SIGNALS=y -CONFIG_TMPFS_XATTR=y diff --git a/Contrib-Inspur/openbmc/meta-security/recipes-kernel/linux/linux-yocto-dev.bbappend b/Contrib-Inspur/openbmc/meta-security/recipes-kernel/linux/linux-yocto-dev.bbappend new file mode 100644 index 00000000..239e30e7 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-security/recipes-kernel/linux/linux-yocto-dev.bbappend @@ -0,0 +1,2 @@ +KERNEL_FEATURES_append = " ${@bb.utils.contains("DISTRO_FEATURES", "apparmor", " features/apparmor/apparmor.scc", "" ,d)}" ++KERNEL_FEATURES_append = " ${@bb.utils.contains("DISTRO_FEATURES", "smack", " features/smack/smack.scc", "" ,d)}" diff --git a/Contrib-Inspur/openbmc/meta-security/recipes-kernel/linux/linux-yocto/apparmor.cfg b/Contrib-Inspur/openbmc/meta-security/recipes-kernel/linux/linux-yocto/apparmor.cfg deleted file mode 100644 index b5f9bb2a..00000000 --- a/Contrib-Inspur/openbmc/meta-security/recipes-kernel/linux/linux-yocto/apparmor.cfg +++ /dev/null @@ -1,15 +0,0 @@ -CONFIG_AUDIT=y -# CONFIG_NETFILTER_XT_TARGET_AUDIT is not set -CONFIG_SECURITY_NETWORK=y -# CONFIG_SECURITY_NETWORK_XFRM is not set -CONFIG_SECURITY_PATH=y -# CONFIG_SECURITY_SELINUX is not set -CONFIG_SECURITY_APPARMOR=y -CONFIG_SECURITY_APPARMOR_HASH=y -CONFIG_SECURITY_APPARMOR_HASH_DEFAULT=y -# CONFIG_SECURITY_APPARMOR_DEBUG is not set -CONFIG_INTEGRITY_AUDIT=y -CONFIG_DEFAULT_SECURITY_APPARMOR=y -# CONFIG_DEFAULT_SECURITY_DAC is not set -CONFIG_DEFAULT_SECURITY="apparmor" -CONFIG_AUDIT_GENERIC=y diff --git a/Contrib-Inspur/openbmc/meta-security/recipes-kernel/linux/linux-yocto/apparmor_on_boot.cfg b/Contrib-Inspur/openbmc/meta-security/recipes-kernel/linux/linux-yocto/apparmor_on_boot.cfg deleted file mode 100644 index fc357401..00000000 --- a/Contrib-Inspur/openbmc/meta-security/recipes-kernel/linux/linux-yocto/apparmor_on_boot.cfg +++ /dev/null @@ -1 +0,0 @@ -CONFIG_SECURITY_APPARMOR_BOOTPARAM_VALUE=1 diff --git a/Contrib-Inspur/openbmc/meta-security/recipes-kernel/linux/linux-yocto/smack-default-lsm.cfg b/Contrib-Inspur/openbmc/meta-security/recipes-kernel/linux/linux-yocto/smack-default-lsm.cfg deleted file mode 100644 index b5c48454..00000000 --- a/Contrib-Inspur/openbmc/meta-security/recipes-kernel/linux/linux-yocto/smack-default-lsm.cfg +++ /dev/null @@ -1,2 +0,0 @@ -CONFIG_DEFAULT_SECURITY="smack" -CONFIG_DEFAULT_SECURITY_SMACK=y diff --git a/Contrib-Inspur/openbmc/meta-security/recipes-kernel/linux/linux-yocto/smack.cfg b/Contrib-Inspur/openbmc/meta-security/recipes-kernel/linux/linux-yocto/smack.cfg deleted file mode 100644 index 62f465a4..00000000 --- a/Contrib-Inspur/openbmc/meta-security/recipes-kernel/linux/linux-yocto/smack.cfg +++ /dev/null @@ -1,8 +0,0 @@ -CONFIG_IP_NF_SECURITY=m -CONFIG_IP6_NF_SECURITY=m -CONFIG_EXT2_FS_SECURITY=y -CONFIG_EXT3_FS_SECURITY=y -CONFIG_EXT4_FS_SECURITY=y -CONFIG_SECURITY=y -CONFIG_SECURITY_SMACK=y -CONFIG_TMPFS_XATTR=y diff --git a/Contrib-Inspur/openbmc/meta-security/recipes-kernel/linux/linux-yocto_4.%.bbappend b/Contrib-Inspur/openbmc/meta-security/recipes-kernel/linux/linux-yocto_4.%.bbappend index 321392c0..39d4e6f5 100644 --- a/Contrib-Inspur/openbmc/meta-security/recipes-kernel/linux/linux-yocto_4.%.bbappend +++ b/Contrib-Inspur/openbmc/meta-security/recipes-kernel/linux/linux-yocto_4.%.bbappend @@ -1,11 +1,2 @@ -FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:" - -SRC_URI += "\ - ${@bb.utils.contains('DISTRO_FEATURES', 'apparmor', ' file://apparmor.cfg', '', d)} \ - ${@bb.utils.contains('DISTRO_FEATURES', 'apparmor', ' file://apparmor_on_boot.cfg', '', d)} \ -" - -SRC_URI += "\ - ${@bb.utils.contains('DISTRO_FEATURES', 'smack', ' file://smack.cfg', '', d)} \ - ${@bb.utils.contains('DISTRO_FEATURES', 'smack', ' file://smack-default-lsm.cfg', '', d)} \ -" +KERNEL_FEATURES_append = " ${@bb.utils.contains("DISTRO_FEATURES", "apparmor", " features/apparmor/apparmor.scc", "" ,d)}" +KERNEL_FEATURES_append = " ${@bb.utils.contains("DISTRO_FEATURES", "smack", " features/smack/smack.scc", "" ,d)}" diff --git a/Contrib-Inspur/openbmc/meta-security/recipes-kernel/linux/linux-yocto_5.0.%.bbappend b/Contrib-Inspur/openbmc/meta-security/recipes-kernel/linux/linux-yocto_5.0.%.bbappend deleted file mode 100644 index f810e211..00000000 --- a/Contrib-Inspur/openbmc/meta-security/recipes-kernel/linux/linux-yocto_5.0.%.bbappend +++ /dev/null @@ -1,11 +0,0 @@ -FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}-5.0:" - -SRC_URI += "\ - ${@bb.utils.contains('DISTRO_FEATURES', 'apparmor', ' file://apparmor.cfg', '', d)} \ - ${@bb.utils.contains('DISTRO_FEATURES', 'apparmor', ' file://apparmor_on_boot.cfg', '', d)} \ -" - -SRC_URI += "\ - ${@bb.utils.contains('DISTRO_FEATURES', 'smack', ' file://smack.cfg', '', d)} \ - ${@bb.utils.contains('DISTRO_FEATURES', 'smack', ' file://smack-default-lsm.cfg', '', d)} \ -" diff --git a/Contrib-Inspur/openbmc/meta-security/recipes-mac/AppArmor/apparmor_2.13.2.bb b/Contrib-Inspur/openbmc/meta-security/recipes-mac/AppArmor/apparmor_2.13.2.bb deleted file mode 100644 index 4eaec001..00000000 --- a/Contrib-Inspur/openbmc/meta-security/recipes-mac/AppArmor/apparmor_2.13.2.bb +++ /dev/null @@ -1,160 +0,0 @@ -SUMMARY = "AppArmor another MAC control system" -DESCRIPTION = "user-space parser utility for AppArmor \ - This provides the system initialization scripts needed to use the \ - AppArmor Mandatory Access Control system, including the AppArmor Parser \ - which is required to convert AppArmor text profiles into machine-readable \ - policies that are loaded into the kernel for use with the AppArmor Linux \ - Security Module." -HOMEAPAGE = "http://apparmor.net/" -SECTION = "admin" - -LICENSE = "GPLv2 & GPLv2+ & BSD-3-Clause & LGPLv2.1+" -LIC_FILES_CHKSUM = "file://${S}/LICENSE;md5=fd57a4b0bc782d7b80fd431f10bbf9d0" - -DEPENDS = "bison-native apr gettext-native coreutils-native" - -SRC_URI = " \ - git://gitlab.com/apparmor/apparmor.git;protocol=https;branch=apparmor-2.13 \ - file://disable_perl_h_check.patch \ - file://crosscompile_perl_bindings.patch \ - file://apparmor.rc \ - file://functions \ - file://apparmor \ - file://apparmor.service \ - file://run-ptest \ - " - -SRCREV = "af4808b5f6b58946f5c5a4de4b77df5e0eae6ca0" -S = "${WORKDIR}/git" - -PARALLEL_MAKE = "" - -inherit pkgconfig autotools-brokensep update-rc.d python3native perlnative ptest cpan manpages systemd - -PACKAGECONFIG ??= "python perl" -PACKAGECONFIG[manpages] = "--enable-man-pages, --disable-man-pages" -PACKAGECONFIG[python] = "--with-python, --without-python, python3 swig-native" -PACKAGECONFIG[perl] = "--with-perl, --without-perl, perl perl-native swig-native" -PACKAGECONFIG[apache2] = ",,apache2," - -PAMLIB="${@bb.utils.contains('DISTRO_FEATURES', 'pam', '1', '0', d)}" -HTTPD="${@bb.utils.contains('PACKAGECONFIG', 'apache2', '1', '0', d)}" - - -python() { - if 'apache2' in d.getVar('PACKAGECONFIG').split() and \ - 'webserver' not in d.getVar('BBFILE_COLLECTIONS').split(): - raise bb.parse.SkipRecipe('Requires meta-webserver to be present.') -} - -DISABLE_STATIC = "" - -do_configure() { - cd ${S}/libraries/libapparmor - aclocal - autoconf --force - libtoolize --automake -c --force - automake -ac - ./configure ${CONFIGUREOPTS} ${EXTRA_OECONF} -} - -do_compile () { - # Fixes: - # | sed -ie 's///g' Makefile.perl - # | sed: -e expression #1, char 0: no previous regular expression - #| Makefile:478: recipe for target 'Makefile.perl' failed - sed -i "s@sed -ie 's///g' Makefile.perl@@" ${S}/libraries/libapparmor/swig/perl/Makefile - - - oe_runmake -C ${B}/libraries/libapparmor - oe_runmake -C ${B}/binutils - oe_runmake -C ${B}/utils - oe_runmake -C ${B}/parser - oe_runmake -C ${B}/profiles - - if test -z "${HTTPD}" ; then - oe_runmake -C ${B}/changehat/mod_apparmor - fi - - if test -z "${PAMLIB}" ; then - oe_runmake -C ${B}/changehat/pam_apparmor - fi -} - -do_install () { - install -d ${D}/${INIT_D_DIR} - install -d ${D}/lib/apparmor - - oe_runmake -C ${B}/libraries/libapparmor DESTDIR="${D}" install - oe_runmake -C ${B}/binutils DESTDIR="${D}" install - oe_runmake -C ${B}/utils DESTDIR="${D}" install - oe_runmake -C ${B}/parser DESTDIR="${D}" install - oe_runmake -C ${B}/profiles DESTDIR="${D}" install - - # If perl is disabled this script won't be any good - if ! ${@bb.utils.contains('PACKAGECONFIG','perl','true','false', d)}; then - rm -f ${D}${sbindir}/aa-notify - fi - - if test -z "${HTTPD}" ; then - oe_runmake -C ${B}/changehat/mod_apparmor DESTDIR="${D}" install - fi - - if test -z "${PAMLIB}" ; then - oe_runmake -C ${B}/changehat/pam_apparmor DESTDIR="${D}" install - fi - - # aa-easyprof is installed by python-tools-setup.py, fix it up - sed -i -e 's:/usr/bin/env.*:/usr/bin/python3:' ${D}${bindir}/aa-easyprof - chmod 0755 ${D}${bindir}/aa-easyprof - - install ${WORKDIR}/apparmor ${D}/${INIT_D_DIR}/apparmor - install ${WORKDIR}/functions ${D}/lib/apparmor - install -d ${D}${systemd_system_unitdir} - install ${WORKDIR}/apparmor.service ${D}${systemd_system_unitdir} -} - -do_compile_ptest () { - oe_runmake -C ${B}/tests/regression/apparmor - oe_runmake -C ${B}/parser/tst - oe_runmake -C ${B}/libraries/libapparmor -} - -do_install_ptest () { - t=${D}/${PTEST_PATH}/testsuite - install -d ${t} - install -d ${t}/tests/regression/apparmor - cp -rf ${B}/tests/regression/apparmor ${t}/tests/regression - - install -d ${t}/parser/tst - cp -rf ${B}/parser/tst ${t}/parser - cp ${B}/parser/apparmor_parser ${t}/parser - cp ${B}/parser/frob_slack_rc ${t}/parser - - install -d ${t}/libraries/libapparmor - cp -rf ${B}/libraries/libapparmor ${t}/libraries - - install -d ${t}/common - cp -rf ${B}/common ${t} - - install -d ${t}/binutils - cp -rf ${B}/binutils ${t} -} - -INITSCRIPT_PACKAGES = "${PN}" -INITSCRIPT_NAME = "apparmor" -INITSCRIPT_PARAMS = "start 16 2 3 4 5 . stop 35 0 1 6 ." - -SYSTEMD_PACKAGES = "${PN}" -SYSTEMD_SERVICE_${PN} = "apparmor.service" -SYSTEMD_AUTO_ENABLE = "disable" - -PACKAGES += "mod-${PN}" - -FILES_${PN} += "/lib/apparmor/ ${sysconfdir}/apparmor ${PYTHON_SITEPACKAGES_DIR}" -FILES_mod-${PN} = "${libdir}/apache2/modules/*" - -RDEPENDS_${PN} += "bash lsb" -RDEPENDS_${PN} += "${@bb.utils.contains('PACKAGECONFIG','python','python3 python3-modules','', d)}" -RDEPENDS_${PN}_remove += "${@bb.utils.contains('PACKAGECONFIG','perl','','perl', d)}" -RDEPENDS_${PN}-ptest += "perl coreutils dbus-lib bash" diff --git a/Contrib-Inspur/openbmc/meta-security/recipes-mac/AppArmor/apparmor_2.13.3.bb b/Contrib-Inspur/openbmc/meta-security/recipes-mac/AppArmor/apparmor_2.13.3.bb new file mode 100644 index 00000000..32230a57 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-security/recipes-mac/AppArmor/apparmor_2.13.3.bb @@ -0,0 +1,198 @@ +SUMMARY = "AppArmor another MAC control system" +DESCRIPTION = "user-space parser utility for AppArmor \ + This provides the system initialization scripts needed to use the \ + AppArmor Mandatory Access Control system, including the AppArmor Parser \ + which is required to convert AppArmor text profiles into machine-readable \ + policies that are loaded into the kernel for use with the AppArmor Linux \ + Security Module." +HOMEAPAGE = "http://apparmor.net/" +SECTION = "admin" + +LICENSE = "GPLv2 & GPLv2+ & BSD-3-Clause & LGPLv2.1+" +LIC_FILES_CHKSUM = "file://${S}/LICENSE;md5=fd57a4b0bc782d7b80fd431f10bbf9d0" + +DEPENDS = "bison-native apr gettext-native coreutils-native" + +SRC_URI = " \ + git://gitlab.com/apparmor/apparmor.git;protocol=https;branch=apparmor-2.13 \ + file://disable_perl_h_check.patch \ + file://crosscompile_perl_bindings.patch \ + file://apparmor.rc \ + file://functions \ + file://apparmor \ + file://apparmor.service \ + file://0001-Makefile.am-suppress-perllocal.pod.patch \ + file://run-ptest \ + " + +SRCREV = "2f9d9ea7e01a115b29858455d3b1b5c6a0bab75c" +S = "${WORKDIR}/git" + +PARALLEL_MAKE = "" + +inherit pkgconfig autotools-brokensep update-rc.d python3native perlnative ptest cpan manpages systemd features_check +REQUIRED_DISTRO_FEATURES = "apparmor" + +PACKAGECONFIG ??= "python perl aa-decode" +PACKAGECONFIG[manpages] = "--enable-man-pages, --disable-man-pages" +PACKAGECONFIG[python] = "--with-python, --without-python, python3 swig-native" +PACKAGECONFIG[perl] = "--with-perl, --without-perl, perl perl-native swig-native" +PACKAGECONFIG[apache2] = ",,apache2," +PACKAGECONFIG[aa-decode] = ",,,bash" + +PAMLIB="${@bb.utils.contains('DISTRO_FEATURES', 'pam', '1', '0', d)}" +HTTPD="${@bb.utils.contains('PACKAGECONFIG', 'apache2', '1', '0', d)}" + +python() { + if 'apache2' in d.getVar('PACKAGECONFIG').split() and \ + 'webserver' not in d.getVar('BBFILE_COLLECTIONS').split(): + raise bb.parse.SkipRecipe('Requires meta-webserver to be present.') +} + +DISABLE_STATIC = "" + +do_configure() { + cd ${S}/libraries/libapparmor + aclocal + autoconf --force + libtoolize --automake -c --force + automake -ac + ./configure ${CONFIGUREOPTS} ${EXTRA_OECONF} +} + +do_compile () { + # Fixes: + # | sed -ie 's///g' Makefile.perl + # | sed: -e expression #1, char 0: no previous regular expression + #| Makefile:478: recipe for target 'Makefile.perl' failed + sed -i "s@sed -ie 's///g' Makefile.perl@@" ${S}/libraries/libapparmor/swig/perl/Makefile + + + oe_runmake -C ${B}/libraries/libapparmor + oe_runmake -C ${B}/binutils + oe_runmake -C ${B}/utils + oe_runmake -C ${B}/parser + oe_runmake -C ${B}/profiles + + if test -z "${HTTPD}" ; then + oe_runmake -C ${B}/changehat/mod_apparmor + fi + + if test -z "${PAMLIB}" ; then + oe_runmake -C ${B}/changehat/pam_apparmor + fi +} + +do_install () { + install -d ${D}/${INIT_D_DIR} + install -d ${D}/lib/apparmor + oe_runmake -C ${B}/libraries/libapparmor DESTDIR="${D}" install + oe_runmake -C ${B}/binutils DESTDIR="${D}" install + oe_runmake -C ${B}/utils DESTDIR="${D}" install + oe_runmake -C ${B}/parser DESTDIR="${D}" install + oe_runmake -C ${B}/profiles DESTDIR="${D}" install + + # If perl is disabled this script won't be any good + if ! ${@bb.utils.contains('PACKAGECONFIG','perl','true','false', d)}; then + rm -f ${D}${sbindir}/aa-notify + fi + + if ! ${@bb.utils.contains('PACKAGECONFIG','aa-decode','true','false', d)}; then + rm -f ${D}${sbindir}/aa-decode + fi + + if test -z "${HTTPD}" ; then + oe_runmake -C ${B}/changehat/mod_apparmor DESTDIR="${D}" install + fi + + if test -z "${PAMLIB}" ; then + oe_runmake -C ${B}/changehat/pam_apparmor DESTDIR="${D}" install + fi + + # aa-easyprof is installed by python-tools-setup.py, fix it up + sed -i -e 's:/usr/bin/env.*:/usr/bin/python3:' ${D}${bindir}/aa-easyprof + chmod 0755 ${D}${bindir}/aa-easyprof + + install ${WORKDIR}/apparmor ${D}/${INIT_D_DIR}/apparmor + install ${WORKDIR}/functions ${D}/lib/apparmor + sed -i -e 's/getconf _NPROCESSORS_ONLN/nproc/' ${D}/lib/apparmor/functions + sed -i -e 's/ls -AU/ls -A/' ${D}/lib/apparmor/functions + + if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}; then + install -d ${D}${systemd_system_unitdir} + install ${WORKDIR}/apparmor.service ${D}${systemd_system_unitdir} + fi +} + +#Building ptest on arm fails. +do_compile_ptest_aarch64 () { + : +} + +do_compile_ptest_arm () { + : +} + +do_compile_ptest () { + oe_runmake -C ${B}/tests/regression/apparmor + oe_runmake -C ${B}/parser/tst + oe_runmake -C ${B}/libraries/libapparmor +} + +do_install_ptest () { + t=${D}/${PTEST_PATH}/testsuite + install -d ${t} + install -d ${t}/tests/regression/apparmor + cp -rf ${B}/tests/regression/apparmor ${t}/tests/regression + + install -d ${t}/parser/tst + cp -rf ${B}/parser/tst ${t}/parser + cp ${B}/parser/apparmor_parser ${t}/parser + cp ${B}/parser/frob_slack_rc ${t}/parser + + install -d ${t}/libraries/libapparmor + cp -rf ${B}/libraries/libapparmor ${t}/libraries + + install -d ${t}/common + cp -rf ${B}/common ${t} + + install -d ${t}/binutils + cp -rf ${B}/binutils ${t} +} + +#Building ptest on arm fails. +do_install_ptest_aarch64 () { + : +} + +do_install_ptest_arm() { + : +} + +pkg_postinst_ontarget_${PN} () { +if [ ! -d /etc/apparmor.d/cache ] ; then + mkdir /etc/apparmor.d/cache +fi +} + +# We need the init script so don't rm it +RMINITDIR_class-target_remove = " rm_sysvinit_initddir" + +INITSCRIPT_PACKAGES = "${PN}" +INITSCRIPT_NAME = "apparmor" +INITSCRIPT_PARAMS = "start 16 2 3 4 5 . stop 35 0 1 6 ." + +SYSTEMD_PACKAGES = "${PN}" +SYSTEMD_SERVICE_${PN} = "apparmor.service" +SYSTEMD_AUTO_ENABLE ?= "enable" + +PACKAGES += "mod-${PN}" + +FILES_${PN} += "/lib/apparmor/ ${sysconfdir}/apparmor ${PYTHON_SITEPACKAGES_DIR}" +FILES_mod-${PN} = "${libdir}/apache2/modules/*" + +RDEPENDS_${PN} += "${@bb.utils.contains('PACKAGECONFIG','python','python3-core python3-modules','', d)}" +RDEPENDS_${PN}_remove += "${@bb.utils.contains('PACKAGECONFIG','perl','','perl', d)}" +RDEPENDS_${PN}-ptest += "perl coreutils dbus-lib bash" + +PRIVATE_LIBS_${PN}-ptest = "libapparmor.so*" diff --git a/Contrib-Inspur/openbmc/meta-security/recipes-mac/AppArmor/files/0001-Makefile.am-suppress-perllocal.pod.patch b/Contrib-Inspur/openbmc/meta-security/recipes-mac/AppArmor/files/0001-Makefile.am-suppress-perllocal.pod.patch new file mode 100644 index 00000000..9807be12 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-security/recipes-mac/AppArmor/files/0001-Makefile.am-suppress-perllocal.pod.patch @@ -0,0 +1,28 @@ +From 9f9cfbf07214ac68a55372a3c2777192765cbeb9 Mon Sep 17 00:00:00 2001 +From: Naveen Saini +Date: Fri, 20 Sep 2019 18:53:53 +0800 +Subject: [PATCH] Makefile.am: suppress perllocal.pod + +Upstream-Status: Inappropriate [OE-Specific] + +Signed-off-by: Naveen Saini +--- + libraries/libapparmor/swig/perl/Makefile.am | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/libraries/libapparmor/swig/perl/Makefile.am b/libraries/libapparmor/swig/perl/Makefile.am +index 6ae4e30c..be00dc7f 100644 +--- a/libraries/libapparmor/swig/perl/Makefile.am ++++ b/libraries/libapparmor/swig/perl/Makefile.am +@@ -11,7 +11,7 @@ MOSTLYCLEANFILES=libapparmor_wrap.c LibAppArmor.pm + LibAppArmor.pm: libapparmor_wrap.c + + Makefile.perl: Makefile.PL LibAppArmor.pm +- $(PERL) $< PREFIX=$(prefix) MAKEFILE=$@ ++ $(PERL) $< PREFIX=$(prefix) MAKEFILE=$@ NO_PERLLOCAL=1 + sed -ie 's/LD_RUN_PATH="\x24(LD_RUN_PATH)"//g' Makefile.perl + sed -ie 's/^LD_RUN_PATH.*//g' Makefile.perl + +-- +2.17.1 + diff --git a/Contrib-Inspur/openbmc/meta-security/recipes-mac/AppArmor/files/apparmor b/Contrib-Inspur/openbmc/meta-security/recipes-mac/AppArmor/files/apparmor index ac3ab9a4..604e48d5 100644 --- a/Contrib-Inspur/openbmc/meta-security/recipes-mac/AppArmor/files/apparmor +++ b/Contrib-Inspur/openbmc/meta-security/recipes-mac/AppArmor/files/apparmor @@ -47,7 +47,6 @@ log_end_msg () { } . /lib/apparmor/functions -. /lib/lsb/init-functions usage() { echo "Usage: $0 {start|stop|restart|reload|force-reload|status|recache}" diff --git a/Contrib-Inspur/openbmc/meta-security/recipes-mac/ccs-tools/ccs-tools_1.8.4.bb b/Contrib-Inspur/openbmc/meta-security/recipes-mac/ccs-tools/ccs-tools_1.8.4.bb index 189504a5..2e37c0b3 100644 --- a/Contrib-Inspur/openbmc/meta-security/recipes-mac/ccs-tools/ccs-tools_1.8.4.bb +++ b/Contrib-Inspur/openbmc/meta-security/recipes-mac/ccs-tools/ccs-tools_1.8.4.bb @@ -15,7 +15,7 @@ SRC_URI[sha256sum] = "c358b80a2ea77a9dda79dc2a056dae3acaf3a72fcb8481cfb1cd1f1674 S = "${WORKDIR}/${PN}" -inherit distro_features_check +inherit features_check do_make(){ oe_runmake USRLIBDIR=${libdir} all diff --git a/Contrib-Inspur/openbmc/meta-security/recipes-mac/smack/smack-test_1.0.bb b/Contrib-Inspur/openbmc/meta-security/recipes-mac/smack/smack-test_1.0.bb index 7cf8f2e0..d5de6076 100644 --- a/Contrib-Inspur/openbmc/meta-security/recipes-mac/smack/smack-test_1.0.bb +++ b/Contrib-Inspur/openbmc/meta-security/recipes-mac/smack/smack-test_1.0.bb @@ -12,6 +12,10 @@ SRC_URI = " \ S = "${WORKDIR}" +inherit features_check + +REQUIRED_DISTRO_FEATURES = "smack" + do_install() { install -d ${D}${sbindir} install -m 0755 notroot.py ${D}${sbindir} diff --git a/Contrib-Inspur/openbmc/meta-security/recipes-mac/smack/smack_1.3.1.bb b/Contrib-Inspur/openbmc/meta-security/recipes-mac/smack/smack_1.3.1.bb index 246562af..b1ea4e9f 100644 --- a/Contrib-Inspur/openbmc/meta-security/recipes-mac/smack/smack_1.3.1.bb +++ b/Contrib-Inspur/openbmc/meta-security/recipes-mac/smack/smack_1.3.1.bb @@ -13,7 +13,12 @@ SRC_URI = " \ PV = "1.3.1" -inherit autotools update-rc.d pkgconfig ptest ${@bb.utils.contains('VIRTUAL-RUNTIME_init_manager','systemd','systemd','', d)} +inherit autotools update-rc.d pkgconfig ptest +inherit ${@bb.utils.contains('VIRTUAL-RUNTIME_init_manager','systemd','systemd','', d)} +inherit features_check + +REQUIRED_DISTRO_FEATURES = "smack" + S = "${WORKDIR}/git" @@ -48,7 +53,7 @@ INITSCRIPT_PARAMS = "start 16 2 3 4 5 . stop 35 0 1 6 ." FILES_${PN} += "${sysconfdir}/init.d/smack" FILES_${PN}-ptest += "generator" -RDEPENDS_${PN} += "coreutils" +RDEPENDS_${PN} += "coreutils python3-core" RDEPENDS_${PN}-ptest += "make bash bc" BBCLASSEXTEND = "native" diff --git a/Contrib-Inspur/openbmc/meta-security/recipes-security/checksec/checksec_1.11.1.bb b/Contrib-Inspur/openbmc/meta-security/recipes-security/checksec/checksec_1.11.1.bb deleted file mode 100644 index 835dffcd..00000000 --- a/Contrib-Inspur/openbmc/meta-security/recipes-security/checksec/checksec_1.11.1.bb +++ /dev/null @@ -1,19 +0,0 @@ -SUMMARY = "Linux system security checks" -DESCRIPTION = "The checksec script is designed to test what standard Linux OS and PaX security features are being used." -SECTION = "security" -LICENSE = "BSD" -HOMEPAGE="https://github.com/slimm609/checksec.sh" - -LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=93fddcca19f6c897871f9b5f9a035f4a" - -SRCREV = "3c15cb89641c700096fdec0c1904a0cf9b83c5e2" -SRC_URI = "git://github.com/slimm609/checksec.sh" - -S = "${WORKDIR}/git" - -do_install() { - install -d ${D}${bindir} - install -m 0755 ${S}/checksec ${D}${bindir} -} - -RDEPENDS_${PN} = "bash openssl-bin" diff --git a/Contrib-Inspur/openbmc/meta-security/recipes-security/checksec/checksec_2.1.0.bb b/Contrib-Inspur/openbmc/meta-security/recipes-security/checksec/checksec_2.1.0.bb new file mode 100644 index 00000000..b67c98bb --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-security/recipes-security/checksec/checksec_2.1.0.bb @@ -0,0 +1,19 @@ +SUMMARY = "Linux system security checks" +DESCRIPTION = "The checksec script is designed to test what standard Linux OS and PaX security features are being used." +SECTION = "security" +LICENSE = "BSD" +HOMEPAGE="https://github.com/slimm609/checksec.sh" + +LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=93fddcca19f6c897871f9b5f9a035f4a" + +SRCREV = "04582bad41589ad479ca8b1f0170ed317475b5a5" +SRC_URI = "git://github.com/slimm609/checksec.sh" + +S = "${WORKDIR}/git" + +do_install() { + install -d ${D}${bindir} + install -m 0755 ${S}/checksec ${D}${bindir} +} + +RDEPENDS_${PN} = "bash openssl-bin binutils" diff --git a/Contrib-Inspur/openbmc/meta-security/recipes-security/checksecurity/checksecurity_2.0.15.bb b/Contrib-Inspur/openbmc/meta-security/recipes-security/checksecurity/checksecurity_2.0.15.bb index a9616911..030bf251 100644 --- a/Contrib-Inspur/openbmc/meta-security/recipes-security/checksecurity/checksecurity_2.0.15.bb +++ b/Contrib-Inspur/openbmc/meta-security/recipes-security/checksecurity/checksecurity_2.0.15.bb @@ -5,7 +5,8 @@ LICENSE = "GPL-2.0" LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/GPL-2.0;md5=801f80980d171dd6425610833a22dbe6" SRC_URI = "http://ftp.de.debian.org/debian/pool/main/c/checksecurity/checksecurity_${PV}.tar.gz \ - file://setuid-log-folder.patch" + file://setuid-log-folder.patch \ + file://check-setuid-use-more-portable-find-args.patch" SRC_URI[md5sum] = "a30161c3e24d3be710b2fd13fcd1f32f" SRC_URI[sha256sum] = "67abe3d6391c96146e96f376d3fd6eb7a9418b0f7fe205b465219889791dba32" diff --git a/Contrib-Inspur/openbmc/meta-security/recipes-security/checksecurity/files/check-setuid-use-more-portable-find-args.patch b/Contrib-Inspur/openbmc/meta-security/recipes-security/checksecurity/files/check-setuid-use-more-portable-find-args.patch new file mode 100644 index 00000000..f1fe8edc --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-security/recipes-security/checksecurity/files/check-setuid-use-more-portable-find-args.patch @@ -0,0 +1,23 @@ +From f3073b8e06a607677d47ad9a19533b2e33408a4f Mon Sep 17 00:00:00 2001 +From: Christopher Larson +Date: Wed, 5 Sep 2018 23:21:43 +0500 +Subject: [PATCH] check-setuid: use more portable find args + +Signed-off-by: Christopher Larson +--- + plugins/check-setuid | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +Index: checksecurity-2.0.15/plugins/check-setuid +=================================================================== +--- checksecurity-2.0.15.orig/plugins/check-setuid 2018-09-06 00:49:23.930934294 +0500 ++++ checksecurity-2.0.15/plugins/check-setuid 2018-09-06 00:49:49.694934757 +0500 +@@ -99,7 +99,7 @@ + ionice -t -c3 \ + find `mount | grep -vE "$CHECKSECURITY_FILTER" | cut -d ' ' -f 3` \ + -xdev $PATHCHK \ +- \( -type f -perm +06000 -o \( \( -type b -o -type c \) \ ++ \( -type f \( -perm -4000 -o -perm -2000 \) -o \( \( -type b -o -type c \) \ + $DEVCHK \) \) \ + -ignore_readdir_race \ + -printf "%8i %5m %3n %-10u %-10g %9s %t %h/%f\n" | diff --git a/Contrib-Inspur/openbmc/meta-security/recipes-security/clamav/clamav_0.101.5.bb b/Contrib-Inspur/openbmc/meta-security/recipes-security/clamav/clamav_0.101.5.bb new file mode 100644 index 00000000..a4c32e1a --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-security/recipes-security/clamav/clamav_0.101.5.bb @@ -0,0 +1,169 @@ +SUMMARY = "ClamAV anti-virus utility for Unix - command-line interface" +DESCRIPTION = "ClamAV is an open source antivirus engine for detecting trojans, viruses, malware & other malicious threats." +HOMEPAGE = "http://www.clamav.net/index.html" +SECTION = "security" +LICENSE = "LGPL-2.1" + +DEPENDS = "libtool db libxml2 openssl zlib curl llvm clamav-native libmspack" +DEPENDS_class-native = "db-native openssl-native zlib-native llvm-native curl-native" + +LIC_FILES_CHKSUM = "file://COPYING.LGPL;beginline=2;endline=3;md5=4b89c05acc71195e9a06edfa2fa7d092" + +SRCREV = "482fcd413b07e9fd3ef9850e6d01a45f4e187108" + +SRC_URI = "git://github.com/vrtadmin/clamav-devel;branch=rel/0.101 \ + file://clamd.conf \ + file://freshclam.conf \ + file://volatiles.03_clamav \ + file://tmpfiles.clamav \ + file://${BPN}.service \ + file://freshclam-native.conf \ + " + +S = "${WORKDIR}/git" + +LEAD_SONAME = "libclamav.so" +SO_VER = "9.0.2" + +inherit autotools pkgconfig useradd systemd + +CLAMAV_UID ?= "clamav" +CLAMAV_GID ?= "clamav" +INSTALL_CLAMAV_CVD ?= "1" + +CLAMAV_USR_DIR = "${STAGING_DIR_NATIVE}/usr" +CLAMAV_USR_DIR_class-target = "${STAGING_DIR_HOST}/usr" + +PACKAGECONFIG_class-target ?= "ncurses bz2" +PACKAGECONFIG_class-target += " ${@bb.utils.contains("DISTRO_FEATURES", "ipv6", "ipv6", "", d)}" +PACKAGECONFIG_class-target += "${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'systemd', '', d)}" + +PACKAGECONFIG[pcre] = "--with-pcre=${STAGING_LIBDIR}, --without-pcre, libpcre" +PACKAGECONFIG[json] = "--with-libjson=${STAGING_LIBDIR}, --without-libjson, json-c," +PACKAGECONFIG[ipv6] = "--enable-ipv6, --disable-ipv6" +PACKAGECONFIG[bz2] = "--with-libbz2-prefix=${CLAMAV_USR_DIR}, --disable-bzip2, bzip2" +PACKAGECONFIG[ncurses] = "--with-libncurses-prefix=${CLAMAV_USR_DIR}, --without-libncurses-prefix, ncurses, " +PACKAGECONFIG[systemd] = "--with-systemdsystemunitdir=${systemd_unitdir}/system/, --without-systemdsystemunitdir, " + +EXTRA_OECONF_CLAMAV = "--without-libcheck-prefix --disable-unrar \ + --disable-mempool \ + --program-prefix="" \ + --disable-zlib-vcheck \ + --with-xml=${CLAMAV_USR_DIR} \ + --with-zlib=${CLAMAV_USR_DIR} \ + --with-openssl=${CLAMAV_USR_DIR} \ + --with-libcurl=${CLAMAV_USR_DIR} \ + --with-system-libmspack=${CLAMAV_USR_DIR} \ + --with-iconv=no \ + --enable-check=no \ + " + +EXTRA_OECONF_class-native += "${EXTRA_OECONF_CLAMAV}" +EXTRA_OECONF_class-target += "--with-user=${CLAMAV_UID} --with-group=${CLAMAV_GID} ${EXTRA_OECONF_CLAMAV}" + +do_configure () { + ${S}/configure ${CONFIGUREOPTS} ${EXTRA_OECONF} +} + +do_configure_class-native () { + ${S}/configure ${CONFIGUREOPTS} ${EXTRA_OECONF} +} + +do_compile_append_class-target() { + if [ "${INSTALL_CLAMAV_CVD}" = "1" ]; then + bbnote "CLAMAV creating cvd" + install -d ${S}/clamav_db + ${STAGING_BINDIR_NATIVE}/freshclam --datadir=${S}/clamav_db --config=${WORKDIR}/freshclam-native.conf + fi +} + +do_install_append_class-target () { + install -d ${D}/${sysconfdir} + install -d ${D}/${localstatedir}/lib/clamav + install -d ${D}${sysconfdir}/clamav ${D}${sysconfdir}/default/volatiles + + install -m 644 ${WORKDIR}/clamd.conf ${D}/${sysconfdir} + install -m 644 ${WORKDIR}/freshclam.conf ${D}/${sysconfdir} + install -m 0644 ${WORKDIR}/volatiles.03_clamav ${D}${sysconfdir}/default/volatiles/volatiles.03_clamav + sed -i -e 's#${STAGING_DIR_HOST}##g' ${D}${libdir}/pkgconfig/libclamav.pc + rm ${D}/${libdir}/libclamav.so + install -m 666 ${S}/clamav_db/* ${D}/${localstatedir}/lib/clamav/. + if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)};then + install -D -m 0644 ${WORKDIR}/clamav.service ${D}${systemd_unitdir}/system/clamav.service + install -d ${D}${sysconfdir}/tmpfiles.d + install -m 0644 ${WORKDIR}/tmpfiles.clamav ${D}${sysconfdir}/tmpfiles.d/clamav.conf + fi +} + +pkg_postinst_ontarget_${PN} () { + if command -v systemd-tmpfiles >/dev/null; then + systemd-tmpfiles --create ${sysconfdir}/tmpfiles.d/clamav.conf + elif [ -e ${sysconfdir}/init.d/populate-volatile.sh ]; then + ${sysconfdir}/init.d/populate-volatile.sh update + fi + mkdir -p ${localstatedir}/lib/clamav + chown -R ${CLAMAV_UID}:${CLAMAV_GID} ${localstatedir}/lib/clamav +} + + +PACKAGES = "${PN} ${PN}-dev ${PN}-dbg ${PN}-daemon ${PN}-doc ${PN}-cvd \ + ${PN}-clamdscan ${PN}-freshclam ${PN}-libclamav ${PN}-staticdev" + +FILES_${PN} = "${bindir}/clambc ${bindir}/clamscan ${bindir}/clamsubmit \ + ${bindir}/*sigtool ${mandir}/man1/clambc* ${mandir}/man1/clamscan* \ + ${mandir}/man1/sigtool* ${mandir}/man1/clambsubmit* \ + ${docdir}/clamav/* " + +FILES_${PN}-clamdscan = " ${bindir}/clamdscan \ + ${docdir}/clamdscan/* \ + ${mandir}/man1/clamdscan* \ + " + +FILES_${PN}-daemon = "${bindir}/clamconf ${bindir}/clamdtop ${sbindir}/clamd \ + ${mandir}/man1/clamconf* ${mandir}/man1/clamdtop* \ + ${mandir}/man5/clamd* ${mandir}/man8/clamd* \ + ${sysconfdir}/clamd.conf* \ + ${systemd_unitdir}/system/clamav-daemon/* \ + ${docdir}/clamav-daemon/* ${sysconfdir}/clamav-daemon \ + ${sysconfdir}/logcheck/ignore.d.server/clamav-daemon " + +FILES_${PN}-freshclam = "${bindir}/freshclam \ + ${sysconfdir}/freshclam.conf* \ + ${sysconfdir}/clamav ${sysconfdir}/default/volatiles \ + ${sysconfdir}/tmpfiles.d/*.conf \ + ${localstatedir}/lib/clamav \ + ${docdir}/${PN}-freshclam ${mandir}/man1/freshclam.* \ + ${mandir}/man5/freshclam.conf.* \ + ${systemd_unitdir}/system/clamav-freshclam.service" + +FILES_${PN}-dev = " ${bindir}/clamav-config ${libdir}/*.la \ + ${libdir}/pkgconfig/*.pc \ + ${mandir}/man1/clamav-config.* \ + ${includedir}/*.h ${docdir}/libclamav* " + +FILES_${PN}-staticdev = "${libdir}/*.a" + +FILES_${PN}-libclamav = "${libdir}/libclamav.so* ${libdir}/libclammspack.so*\ + ${docdir}/libclamav/* " + +FILES_${PN}-doc = "${mandir}/man/* \ + ${datadir}/man/* \ + ${docdir}/* " + +FILES_${PN}-cvd = "${localstatedir}/lib/clamav/*.cvd ${localstatedir}/lib/clamav/*.dat" + +USERADD_PACKAGES = "${PN}" +GROUPADD_PARAM_${PN} = "--system ${CLAMAV_UID}" +USERADD_PARAM_${PN} = "--system -g ${CLAMAV_GID} --home-dir \ + ${localstatedir}/spool/${BPN} \ + --no-create-home --shell /bin/false ${BPN}" + +RPROVIDES_${PN} += "${PN}-systemd" +RREPLACES_${PN} += "${PN}-systemd" +RCONFLICTS_${PN} += "${PN}-systemd" +SYSTEMD_SERVICE_${PN} = "${BPN}.service" + +RDEPENDS_${PN} = "openssl ncurses-libncurses libxml2 libbz2 ncurses-libtinfo curl libpcre2 clamav-freshclam clamav-libclamav" +RDEPENDS_${PN}_class-native = "" + +BBCLASSEXTEND = "native" diff --git a/Contrib-Inspur/openbmc/meta-security/recipes-security/clamav/clamav_0.99.4.bb b/Contrib-Inspur/openbmc/meta-security/recipes-security/clamav/clamav_0.99.4.bb deleted file mode 100644 index 7d8767e2..00000000 --- a/Contrib-Inspur/openbmc/meta-security/recipes-security/clamav/clamav_0.99.4.bb +++ /dev/null @@ -1,180 +0,0 @@ -SUMMARY = "ClamAV anti-virus utility for Unix - command-line interface" -DESCRIPTION = "ClamAV is an open source antivirus engine for detecting trojans, viruses, malware & other malicious threats." -HOMEPAGE = "http://www.clamav.net/index.html" -SECTION = "security" -LICENSE = "LGPL-2.1" - -DEPENDS = "libtool db libmspack openssl zlib llvm chrpath-replacement-native clamav-native" -DEPENDS_class-native = "db-native openssl-native zlib-native" - -LIC_FILES_CHKSUM = "file://COPYING.LGPL;beginline=2;endline=3;md5=4b89c05acc71195e9a06edfa2fa7d092" - -SRCREV = "b66e5e27b48c0a07494f9df9b809ed933cede047" - -SRC_URI = "git://github.com/vrtadmin/clamav-devel;branch=rel/0.99 \ - file://clamd.conf \ - file://freshclam.conf \ - file://volatiles.03_clamav \ - file://${BPN}.service \ - file://freshclam-native.conf \ - " - -S = "${WORKDIR}/git" - -LEAD_SONAME = "libclamav.so" -SO_VER = "7.1.1" - -EXTRANATIVEPATH += "chrpath-native" - -inherit autotools-brokensep pkgconfig useradd systemd - -UID = "clamav" -GID = "clamav" -INSTALL_CLAMAV_CVD ?= "1" - -# Clamav has a built llvm version 2 but does not build with gcc 6.x, -# disable the internal one. This is a known issue -# If you want LLVM support, use the one in core - -CLAMAV_USR_DIR = "${STAGING_DIR_NATIVE}/usr" -CLAMAV_USR_DIR_class-target = "${STAGING_DIR_HOST}/usr" - -PACKAGECONFIG_class-target ?= "ncurses bz2" -PACKAGECONFIG_class-target += " ${@bb.utils.contains("DISTRO_FEATURES", "ipv6", "ipv6", "", d)}" -PACKAGECONFIG_class-target += "${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'systemd', '', d)}" - -PACKAGECONFIG[pcre] = "--with-pcre=${STAGING_LIBDIR}, --without-pcre, libpcre" -PACKAGECONFIG[xml] = "--with-xml=${CLAMAV_USR_DIR}, --disable-xml, libxml2," -PACKAGECONFIG[json] = "--with-libjson=${STAGING_LIBDIR}, --without-libjson, json," -PACKAGECONFIG[curl] = "--with-libcurl=${STAGING_LIBDIR}, --without-libcurl, curl," -PACKAGECONFIG[ipv6] = "--enable-ipv6, --disable-ipv6" -PACKAGECONFIG[bz2] = "--with-libbz2-prefix=${CLAMAV_USR_DIR}, --without-libbz2-prefix, " -PACKAGECONFIG[ncurses] = "--with-libncurses-prefix=${CLAMAV_USR_DIR}, --without-libncurses-prefix, ncurses, " -PACKAGECONFIG[systemd] = "--with-systemdsystemunitdir=${systemd_unitdir}/system/, --without-systemdsystemunitdir, " - -EXTRA_OECONF_CLAMAV = "--without-libcheck-prefix --disable-unrar \ - --with-system-llvm --with-llvm-linking=dynamic --disable-llvm \ - --disable-mempool \ - --program-prefix="" \ - --disable-yara \ - --disable-xml \ - --with-openssl=${CLAMAV_USR_DIR} \ - --with-zlib=${CLAMAV_USR_DIR} --disable-zlib-vcheck \ - " - -EXTRA_OECONF_class-native += "${EXTRA_OECONF_CLAMAV}" -EXTRA_OECONF_class-target += "--with-user=${UID} --with-group=${GID} --disable-rpath ${EXTRA_OECONF_CLAMAV}" - -do_configure () { - cd ${S} - ./configure ${CONFIGUREOPTS} ${EXTRA_OECONF} - install -d ${S}/clamav_db -} - -do_configure_class-native () { - cd ${S} - ./configure ${CONFIGUREOPTS} ${EXTRA_OECONF} -} - - -do_compile_append_class-target() { - # brute force removing RPATH - chrpath -d ${B}/libclamav/.libs/libclamav.so.${SO_VER} - chrpath -d ${B}/sigtool/.libs/sigtool - chrpath -d ${B}/clambc/.libs/clambc - chrpath -d ${B}/clamscan/.libs/clamscan - chrpath -d ${B}/clamconf/.libs/clamconf - chrpath -d ${B}/clamd/.libs/clamd - chrpath -d ${B}/freshclam/.libs/freshclam - - if [ "${INSTALL_CLAMAV_CVD}" = "1" ]; then - bbnote "CLAMAV creating cvd" - ${STAGING_BINDIR_NATIVE}/freshclam --datadir=${S}/clamav_db --config=${WORKDIR}/freshclam-native.conf - fi -} - -do_install_append_class-target () { - install -d ${D}/${sysconfdir} - install -d ${D}/${localstatedir}/lib/clamav - install -d ${D}${sysconfdir}/clamav ${D}${sysconfdir}/default/volatiles - - install -m 644 ${WORKDIR}/clamd.conf ${D}/${sysconfdir} - install -m 644 ${WORKDIR}/freshclam.conf ${D}/${sysconfdir} - install -m 0644 ${WORKDIR}/volatiles.03_clamav ${D}${sysconfdir}/default/volatiles/volatiles.03_clamav - sed -i -e 's#${STAGING_DIR_HOST}##g' ${D}${libdir}/pkgconfig/libclamav.pc - rm ${D}/${libdir}/libclamav.so - install -m 666 ${S}/clamav_db/* ${D}/${localstatedir}/lib/clamav/. - if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)};then - install -D -m 0644 ${WORKDIR}/clamav.service ${D}${systemd_unitdir}/system/clamav.service - fi -} - -pkg_postinst_ontarget_${PN} () { - if [ -e /etc/init.d/populate-volatile.sh ] ; then - ${sysconfdir}/init.d/populate-volatile.sh update - fi - mkdir -p ${localstatedir}/lib/clamav - chown -R ${UID}:${GID} ${localstatedir}/lib/clamav -} - - -PACKAGES = "${PN} ${PN}-dev ${PN}-dbg ${PN}-daemon ${PN}-doc ${PN}-cvd \ - ${PN}-clamdscan ${PN}-freshclam ${PN}-libclamav ${PN}-staticdev" - -FILES_${PN} = "${bindir}/clambc ${bindir}/clamscan ${bindir}/clamsubmit \ - ${bindir}/*sigtool ${mandir}/man1/clambc* ${mandir}/man1/clamscan* \ - ${mandir}/man1/sigtool* ${mandir}/man1/clambsubmit* \ - ${docdir}/clamav/* " - -FILES_${PN}-clamdscan = " ${bindir}/clamdscan \ - ${docdir}/clamdscan/* \ - ${mandir}/man1/clamdscan* \ - " - -FILES_${PN}-daemon = "${bindir}/clamconf ${bindir}/clamdtop ${sbindir}/clamd \ - ${mandir}/man1/clamconf* ${mandir}/man1/clamdtop* \ - ${mandir}/man5/clamd* ${mandir}/man8/clamd* \ - ${sysconfdir}/clamd.conf* \ - ${systemd_unitdir}/system/clamav-daemon/* \ - ${docdir}/clamav-daemon/* ${sysconfdir}/clamav-daemon \ - ${sysconfdir}/logcheck/ignore.d.server/clamav-daemon " - -FILES_${PN}-freshclam = "${bindir}/freshclam \ - ${sysconfdir}/freshclam.conf* \ - ${sysconfdir}/clamav ${sysconfdir}/default/volatiles \ - ${localstatedir}/lib/clamav \ - ${docdir}/${PN}-freshclam ${mandir}/man1/freshclam.* \ - ${mandir}/man5/freshclam.conf.* \ - ${systemd_unitdir}/system/clamav-freshclam.service" - -FILES_${PN}-dev = " ${bindir}/clamav-config ${libdir}/*.la \ - ${libdir}/pkgconfig/*.pc \ - ${mandir}/man1/clamav-config.* \ - ${includedir}/*.h ${docdir}/libclamav* " - -FILES_${PN}-staticdev = "${libdir}/*.a" - -FILES_${PN}-libclamav = "${libdir}/libclamav.so* ${libdir}/libmspack.so*\ - ${docdir}/libclamav/* " - -FILES_${PN}-doc = "${mandir}/man/* \ - ${datadir}/man/* \ - ${docdir}/* " - -FILES_${PN}-cvd = "${localstatedir}/lib/clamav/*.cvd ${localstatedir}/lib/clamav/*.dat" - -USERADD_PACKAGES = "${PN}" -GROUPADD_PARAM_${PN} = "--system ${UID}" -USERADD_PARAM_${PN} = "--system -g ${GID} --home-dir \ - ${localstatedir}/spool/${BPN} \ - --no-create-home --shell /bin/false ${BPN}" - -RPROVIDES_${PN} += "${PN}-systemd" -RREPLACES_${PN} += "${PN}-systemd" -RCONFLICTS_${PN} += "${PN}-systemd" -SYSTEMD_SERVICE_${PN} = "${BPN}.service" - -RDEPENDS_${PN} = "openssl ncurses-libncurses libbz2 ncurses-libtinfo clamav-freshclam clamav-libclamav" -RDEPENDS_${PN}_class-native = "" - -BBCLASSEXTEND = "native" diff --git a/Contrib-Inspur/openbmc/meta-security/recipes-security/clamav/files/tmpfiles.clamav b/Contrib-Inspur/openbmc/meta-security/recipes-security/clamav/files/tmpfiles.clamav new file mode 100644 index 00000000..fd5adfee --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-security/recipes-security/clamav/files/tmpfiles.clamav @@ -0,0 +1,3 @@ +#Type Path Mode UID GID Age Argument +d /var/log/clamav 0755 clamav clamav - +f /var/log/clamav/freshclam.log 0644 clamav clamav - diff --git a/Contrib-Inspur/openbmc/meta-security/recipes-security/ecryptfs-utils/ecryptfs-utils_111.bb b/Contrib-Inspur/openbmc/meta-security/recipes-security/ecryptfs-utils/ecryptfs-utils_111.bb index 1f780f9e..e45ee0ba 100644 --- a/Contrib-Inspur/openbmc/meta-security/recipes-security/ecryptfs-utils/ecryptfs-utils_111.bb +++ b/Contrib-Inspur/openbmc/meta-security/recipes-security/ecryptfs-utils/ecryptfs-utils_111.bb @@ -14,6 +14,7 @@ DEPENDS = "keyutils libgcrypt intltool-native glib-2.0-native" SRC_URI = "\ https://launchpad.net/ecryptfs/trunk/${PV}/+download/${BPN}_${PV}.orig.tar.gz \ file://ecryptfs-utils-CVE-2016-6224.patch \ + file://0001-avoid-race-condition.patch \ file://ecryptfs.service \ " @@ -30,13 +31,13 @@ EXTRA_OECONF = "\ --disable-pywrap \ --disable-nls \ --with-pamdir=${base_libdir}/security \ + --disable-openssl \ " PACKAGECONFIG ??= "nss \ ${@bb.utils.filter('DISTRO_FEATURES', 'pam', d)} \ " PACKAGECONFIG[nss] = "--enable-nss,--disable-nss,nss," -PACKAGECONFIG[openssl] = "--enable-openssl,--disable-openssl,openssl," PACKAGECONFIG[pam] = "--enable-pam,--disable-pam,libpam," do_configure_prepend() { diff --git a/Contrib-Inspur/openbmc/meta-security/recipes-security/ecryptfs-utils/files/0001-avoid-race-condition.patch b/Contrib-Inspur/openbmc/meta-security/recipes-security/ecryptfs-utils/files/0001-avoid-race-condition.patch new file mode 100644 index 00000000..af28d581 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-security/recipes-security/ecryptfs-utils/files/0001-avoid-race-condition.patch @@ -0,0 +1,32 @@ +From ab671b02e3aaf65dd1fd279789ea933b8140fe52 Mon Sep 17 00:00:00 2001 +From: Chen Qi +Date: Tue, 27 Aug 2019 16:08:00 +0800 +Subject: [PATCH] avoid race condition + +The rootsbin directory is self defined. The install-rootsbinPROGRAMS +is actually treated as part of install-data. + +This would avoid race condition which causes install failure. + +Upstream-Status: Pending + +Signed-off-by: Chen Qi +--- + src/utils/Makefile.am | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/utils/Makefile.am b/src/utils/Makefile.am +index 83cf851..344883a 100644 +--- a/src/utils/Makefile.am ++++ b/src/utils/Makefile.am +@@ -67,6 +67,6 @@ ecryptfs_stat_LDADD = $(top_builddir)/src/libecryptfs/libecryptfs.la + test_SOURCES = test.c io.c + test_LDADD = $(top_builddir)/src/libecryptfs/libecryptfs.la + +-install-exec-hook: install-rootsbinPROGRAMS ++install-data-hook: install-rootsbinPROGRAMS + -rm -f "$(DESTDIR)/$(rootsbindir)/umount.ecryptfs_private" + $(LN_S) "mount.ecryptfs_private" "$(DESTDIR)/$(rootsbindir)/umount.ecryptfs_private" +-- +2.17.1 + diff --git a/Contrib-Inspur/openbmc/meta-security/recipes-security/fail2ban/files/initd b/Contrib-Inspur/openbmc/meta-security/recipes-security/fail2ban/files/initd index 4f4b394c..586b3dac 100644 --- a/Contrib-Inspur/openbmc/meta-security/recipes-security/fail2ban/files/initd +++ b/Contrib-Inspur/openbmc/meta-security/recipes-security/fail2ban/files/initd @@ -39,9 +39,9 @@ start() { RETVAL=$? if [ $RETVAL = 0 ]; then touch ${lockfile} - echo_success + success else - echo_failure + failure fi echo return $RETVAL @@ -53,9 +53,9 @@ stop() { RETVAL=$? if [ $RETVAL = 0 ]; then rm -f ${lockfile} ${pidfile} - echo_success + success else - echo_failure + failure fi echo return $RETVAL diff --git a/Contrib-Inspur/openbmc/meta-security/recipes-security/fail2ban/python-fail2ban.inc b/Contrib-Inspur/openbmc/meta-security/recipes-security/fail2ban/python-fail2ban.inc deleted file mode 100644 index 7270ed8a..00000000 --- a/Contrib-Inspur/openbmc/meta-security/recipes-security/fail2ban/python-fail2ban.inc +++ /dev/null @@ -1,49 +0,0 @@ -SUMMARY = "Daemon to ban hosts that cause multiple authentication errors." -DESCRIPTION = "Fail2Ban scans log files like /var/log/auth.log and bans IP addresses having too \ -many failed login attempts. It does this by updating system firewall rules to reject new \ -connections from those IP addresses, for a configurable amount of time. Fail2Ban comes \ -out-of-the-box ready to read many standard log files, such as those for sshd and Apache, \ -and is easy to configure to read any log file you choose, for any error you choose." -HOMEPAGE = "http://www.fail2ban.org" - -LICENSE = "GPL-2.0" -LIC_FILES_CHKSUM = "file://COPYING;md5=ecabc31e90311da843753ba772885d9f" - -SRCREV ="aa565eb80ec6043317e8430cabcaf9c3f4e61578" -SRC_URI = " \ - git://github.com/fail2ban/fail2ban.git;branch=0.11 \ - file://initd \ - file://fail2ban_setup.py \ - file://run-ptest \ -" - -inherit update-rc.d ptest - -S = "${WORKDIR}/git" - -INITSCRIPT_PACKAGES = "${PN}" -INITSCRIPT_NAME = "fail2ban-server" -INITSCRIPT_PARAMS = "defaults 25" - -do_compile_prepend () { - cp ${WORKDIR}/fail2ban_setup.py ${S}/setup.py -} - -do_install_append () { - install -d ${D}/${sysconfdir}/fail2ban - install -d ${D}/${sysconfdir}/init.d - install -m 0755 ${WORKDIR}/initd ${D}${sysconfdir}/init.d/fail2ban-server - chown -R root:root ${D}/${bindir} -} - -do_install_ptest_append () { - install -d ${D}${PTEST_PATH} - sed -i -e 's/##PYTHON##/${PYTHON_PN}/g' ${D}${PTEST_PATH}/run-ptest - install -D ${S}/bin/fail2ban-testcases ${D}${PTEST_PATH} -} - -FILES_${PN} += "/run" - -INSANE_SKIP_${PN}_append = "already-stripped" - -RDEPENDS_${PN} = "sysklogd iptables sqlite3 ${PYTHON_PN} ${PYTHON_PN}-pyinotify" diff --git a/Contrib-Inspur/openbmc/meta-security/recipes-security/fail2ban/python-fail2ban_0.10.4.0.bb b/Contrib-Inspur/openbmc/meta-security/recipes-security/fail2ban/python-fail2ban_0.10.4.0.bb deleted file mode 100644 index 17a7dd8d..00000000 --- a/Contrib-Inspur/openbmc/meta-security/recipes-security/fail2ban/python-fail2ban_0.10.4.0.bb +++ /dev/null @@ -1,4 +0,0 @@ -inherit setuptools -require python-fail2ban.inc - -RDEPENDS_${PN}-ptest = "python python-modules python-fail2ban" diff --git a/Contrib-Inspur/openbmc/meta-security/recipes-security/fail2ban/python3-fail2ban_0.10.4.0.bb b/Contrib-Inspur/openbmc/meta-security/recipes-security/fail2ban/python3-fail2ban_0.10.4.0.bb index 23ef027b..53f94ff9 100644 --- a/Contrib-Inspur/openbmc/meta-security/recipes-security/fail2ban/python3-fail2ban_0.10.4.0.bb +++ b/Contrib-Inspur/openbmc/meta-security/recipes-security/fail2ban/python3-fail2ban_0.10.4.0.bb @@ -1,8 +1,51 @@ -inherit setuptools3 -require python-fail2ban.inc +SUMMARY = "Daemon to ban hosts that cause multiple authentication errors." +DESCRIPTION = "Fail2Ban scans log files like /var/log/auth.log and bans IP addresses having too \ +many failed login attempts. It does this by updating system firewall rules to reject new \ +connections from those IP addresses, for a configurable amount of time. Fail2Ban comes \ +out-of-the-box ready to read many standard log files, such as those for sshd and Apache, \ +and is easy to configure to read any log file you choose, for any error you choose." +HOMEPAGE = "http://www.fail2ban.org" -RDEPENDS_${PN}-ptest = "python3-core python3-io python3-modules python3-fail2ban" +LICENSE = "GPL-2.0" +LIC_FILES_CHKSUM = "file://COPYING;md5=ecabc31e90311da843753ba772885d9f" -SRC_URI += " \ +SRCREV ="aa565eb80ec6043317e8430cabcaf9c3f4e61578" +SRC_URI = " \ + git://github.com/fail2ban/fail2ban.git;branch=0.11 \ + file://initd \ + file://fail2ban_setup.py \ + file://run-ptest \ file://0001-To-fix-build-error-of-xrang.patch \ " + +inherit update-rc.d ptest setuptools3 + +S = "${WORKDIR}/git" + +do_compile_prepend () { + cp ${WORKDIR}/fail2ban_setup.py ${S}/setup.py +} + +do_install_append () { + install -d ${D}/${sysconfdir}/fail2ban + install -d ${D}/${sysconfdir}/init.d + install -m 0755 ${WORKDIR}/initd ${D}${sysconfdir}/init.d/fail2ban-server + chown -R root:root ${D}/${bindir} +} + +do_install_ptest_append () { + install -d ${D}${PTEST_PATH} + sed -i -e 's/##PYTHON##/${PYTHON_PN}/g' ${D}${PTEST_PATH}/run-ptest + install -D ${S}/bin/fail2ban-testcases ${D}${PTEST_PATH} +} + +FILES_${PN} += "/run" + +INITSCRIPT_PACKAGES = "${PN}" +INITSCRIPT_NAME = "fail2ban-server" +INITSCRIPT_PARAMS = "defaults 25" + +INSANE_SKIP_${PN}_append = "already-stripped" + +RDEPENDS_${PN} = "sysklogd iptables sqlite3 ${PYTHON_PN} ${PYTHON_PN}-pyinotify" +RDEPENDS_${PN}-ptest = "python3-core python3-io python3-modules python3-fail2ban" diff --git a/Contrib-Inspur/openbmc/meta-security/recipes-security/google-authenticator-libpam/google-authenticator-libpam_1.05.bb b/Contrib-Inspur/openbmc/meta-security/recipes-security/google-authenticator-libpam/google-authenticator-libpam_1.05.bb deleted file mode 100644 index 73b802fb..00000000 --- a/Contrib-Inspur/openbmc/meta-security/recipes-security/google-authenticator-libpam/google-authenticator-libpam_1.05.bb +++ /dev/null @@ -1,20 +0,0 @@ -SUMMARY = "Google Authenticator PAM module" -HOME_PAGE = "https://github.com/google/google-authenticator-libpam" -LIC_FILES_CHKSUM = "file://LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57" -LICENSE = "Apache-2.0" - -SRC_URI = "git://github.com/google/google-authenticator-libpam.git" -SRCREV = "7365ed10d54393fb4c100cac063ae8edb744eac6" - -DEPENDS = "libpam" - -S = "${WORKDIR}/git" - -inherit autotools distro_features_check - -REQUIRED_DISTRO_FEATURES = "pam" - -PACKAGES += "pam-google-authenticator" -FILES_pam-google-authenticator = "${libdir}/security/pam_google_authenticator.so" - -RDEPNEDS_pam-google-authenticator = "libpam" diff --git a/Contrib-Inspur/openbmc/meta-security/recipes-security/google-authenticator-libpam/google-authenticator-libpam_1.07.bb b/Contrib-Inspur/openbmc/meta-security/recipes-security/google-authenticator-libpam/google-authenticator-libpam_1.07.bb new file mode 100644 index 00000000..98f895c4 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-security/recipes-security/google-authenticator-libpam/google-authenticator-libpam_1.07.bb @@ -0,0 +1,20 @@ +SUMMARY = "Google Authenticator PAM module" +HOME_PAGE = "https://github.com/google/google-authenticator-libpam" +LIC_FILES_CHKSUM = "file://LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57" +LICENSE = "Apache-2.0" + +SRC_URI = "git://github.com/google/google-authenticator-libpam.git" +SRCREV = "c9280f43610ce896f91eafd0f740a4eb4dcecedd" + +DEPENDS = "libpam" + +S = "${WORKDIR}/git" + +inherit autotools features_check + +REQUIRED_DISTRO_FEATURES = "pam" + +PACKAGES += "pam-google-authenticator" +FILES_pam-google-authenticator = "${libdir}/security/pam_google_authenticator.so" + +RDEPNEDS_pam-google-authenticator = "libpam" diff --git a/Contrib-Inspur/openbmc/meta-security/recipes-security/images/security-test-image.bb b/Contrib-Inspur/openbmc/meta-security/recipes-security/images/security-test-image.bb new file mode 100644 index 00000000..c71d7267 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-security/recipes-security/images/security-test-image.bb @@ -0,0 +1,33 @@ +DESCRIPTION = "A small image for testing meta-security packages" + +IMAGE_FEATURES += "ssh-server-openssh" + +TEST_SUITES = "ssh ping ptest apparmor clamav samhain sssd tripwire checksec smack suricata" + +INSTALL_CLAMAV_CVD = "1" + +IMAGE_INSTALL = "\ + packagegroup-base \ + packagegroup-core-boot \ + packagegroup-core-security-ptest \ + clamav \ + tripwire \ + checksec \ + suricata \ + samhain-standalone \ + ${@bb.utils.contains("DISTRO_FEATURES", "pam", "sssd", "",d)} \ + ${@bb.utils.contains("DISTRO_FEATURES", "apparmor", "apparmor", "",d)} \ + ${@bb.utils.contains("DISTRO_FEATURES", "smack", "smack-test", "",d)} \ + os-release \ + " + + +IMAGE_LINGUAS ?= " " + +LICENSE = "MIT" + +inherit core-image + +export IMAGE_BASENAME = "security-test-image" + +IMAGE_ROOTFS_EXTRA_SPACE = "5242880" diff --git a/Contrib-Inspur/openbmc/meta-security/recipes-security/keyutils/keyutils_1.6.bb b/Contrib-Inspur/openbmc/meta-security/recipes-security/keyutils/keyutils_1.6.bb deleted file mode 100644 index 4d3a96f2..00000000 --- a/Contrib-Inspur/openbmc/meta-security/recipes-security/keyutils/keyutils_1.6.bb +++ /dev/null @@ -1,53 +0,0 @@ -SUMMARY = "Linux Key Management Utilities" -DESCRIPTION = "\ - Utilities to control the kernel key management facility and to provide \ - a mechanism by which the kernel call back to userspace to get a key \ - instantiated. \ - " -HOMEPAGE = "http://people.redhat.com/dhowells/keyutils" -SECTION = "base" - -LICENSE = "LGPLv2.1+ & GPLv2.0+" - -LIC_FILES_CHKSUM = "file://LICENCE.GPL;md5=5f6e72824f5da505c1f4a7197f004b45 \ - file://LICENCE.LGPL;md5=7d1cacaa3ea752b72ea5e525df54a21f" - -inherit siteinfo autotools-brokensep ptest - -SRC_URI = "http://people.redhat.com/dhowells/keyutils/${BP}.tar.bz2 \ - file://keyutils-test-fix-output-format.patch \ - file://keyutils-fix-error-report-by-adding-default-message.patch \ - file://run-ptest \ - file://fix_library_install_path.patch \ - " - -SRC_URI[md5sum] = "191987b0ab46bb5b50efd70a6e6ce808" -SRC_URI[sha256sum] = "d3aef20cec0005c0fa6b4be40079885567473185b1a57b629b030e67942c7115" - -EXTRA_OEMAKE = "'CFLAGS=${CFLAGS} -Wall' \ - NO_ARLIB=1 \ - BINDIR=${base_bindir} \ - SBINDIR=${base_sbindir} \ - LIBDIR=${libdir} \ - USRLIBDIR=${libdir} \ - INCLUDEDIR=${includedir} \ - BUILDFOR=${SITEINFO_BITS}-bit \ - NO_GLIBC_KEYERR=1 \ - " - -do_install () { - install -d ${D}/${libdir}/pkgconfig - oe_runmake DESTDIR=${D} install -} - -do_install_ptest () { - cp -r ${S}/tests ${D}${PTEST_PATH}/ - sed -i -e 's/OSDIST=Unknown/OSDIST=${DISTRO}/' ${D}${PTEST_PATH}/tests/prepare.inc.sh -} - - -RDEPENDS_${PN}-ptest += "lsb" -RDEPENDS_${PN}-ptest_append_libc-glibc = " glibc-utils" -RDEPENDS_${PN}-ptest_append_libc-musl = " musl-utils" - -BBCLASSEXTEND = "native nativesdk" diff --git a/Contrib-Inspur/openbmc/meta-security/recipes-security/libmspack/libmspack_0.10.1.bb b/Contrib-Inspur/openbmc/meta-security/recipes-security/libmspack/libmspack_0.10.1.bb deleted file mode 100644 index b46159f2..00000000 --- a/Contrib-Inspur/openbmc/meta-security/recipes-security/libmspack/libmspack_0.10.1.bb +++ /dev/null @@ -1,16 +0,0 @@ -SUMMARY = "A library for Microsoft compression formats" -HOMEPAGE = "http://www.cabextract.org.uk/libmspack/" -SECTION = "lib" -LICENSE = "LGPL-2.1" -DEPENDS = "" - -LIC_FILES_CHKSUM = "file://COPYING.LIB;beginline=1;endline=2;md5=5b1fd1f66ef926b3c8a5bb00a72a28dd" - -SRC_URI = "${DEBIAN_MIRROR}/main/libm/${BPN}/${BPN}_${PV}.orig.tar.xz" - -SRC_URI[md5sum] = "d894d91eba4d2c6f76695fc9566d5387" -SRC_URI[sha256sum] = "850c57442b850bf1bc0fc4ea8880903ebf2bed063c3c80782ee4626fbcb0e67d" - -inherit autotools - -S = "${WORKDIR}/${BP}alpha" diff --git a/Contrib-Inspur/openbmc/meta-security/recipes-security/libmspack/libmspack_1.9.1.bb b/Contrib-Inspur/openbmc/meta-security/recipes-security/libmspack/libmspack_1.9.1.bb new file mode 100644 index 00000000..8c288bee --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-security/recipes-security/libmspack/libmspack_1.9.1.bb @@ -0,0 +1,16 @@ +SUMMARY = "A library for Microsoft compression formats" +HOMEPAGE = "http://www.cabextract.org.uk/libmspack/" +SECTION = "lib" +LICENSE = "LGPL-2.1" +DEPENDS = "" + +LIC_FILES_CHKSUM = "file://COPYING.LIB;beginline=1;endline=2;md5=5b1fd1f66ef926b3c8a5bb00a72a28dd" + +SRCREV = "63d3faf90423a4a6c174539a7d32111a840adadc" +SRC_URI = "git://github.com/kyz/libmspack.git" + +inherit autotools + +S = "${WORKDIR}/git/${BPN}" + +inherit autotools diff --git a/Contrib-Inspur/openbmc/meta-security/recipes-security/libseccomp/files/0001-tests-rely-on-__SNR_xxx-instead-of-__NR_xxx-for-sysc.patch b/Contrib-Inspur/openbmc/meta-security/recipes-security/libseccomp/files/0001-tests-rely-on-__SNR_xxx-instead-of-__NR_xxx-for-sysc.patch new file mode 100644 index 00000000..a53433fe --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-security/recipes-security/libseccomp/files/0001-tests-rely-on-__SNR_xxx-instead-of-__NR_xxx-for-sysc.patch @@ -0,0 +1,45 @@ +From 1ecdddb2a5b61cf527d1f238f88a9d129239f87a Mon Sep 17 00:00:00 2001 +From: Paul Moore +Date: Tue, 5 Nov 2019 15:11:11 -0500 +Subject: [PATCH] tests: rely on __SNR_xxx instead of __NR_xxx for syscalls + +We recently changed how libseccomp handles syscall numbers that are +not defined natively, but we missed test #15. + +Acked-by: Tom Hromatka +Signed-off-by: Paul Moore + +Upstream-Status: Backport +[https://github.com/seccomp/libseccomp/commit/1ecdddb2a5b61cf527d1f238f88a9d129239f87a] + +Signed-off-by: Yi Zhao +--- + tests/15-basic-resolver.c | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +diff --git a/tests/15-basic-resolver.c b/tests/15-basic-resolver.c +index 6badef1..0c1eefe 100644 +--- a/tests/15-basic-resolver.c ++++ b/tests/15-basic-resolver.c +@@ -55,15 +55,15 @@ int main(int argc, char *argv[]) + unsigned int arch; + char *name = NULL; + +- if (seccomp_syscall_resolve_name("open") != __NR_open) ++ if (seccomp_syscall_resolve_name("open") != __SNR_open) + goto fail; +- if (seccomp_syscall_resolve_name("read") != __NR_read) ++ if (seccomp_syscall_resolve_name("read") != __SNR_read) + goto fail; + if (seccomp_syscall_resolve_name("INVALID") != __NR_SCMP_ERROR) + goto fail; + + rc = seccomp_syscall_resolve_name_rewrite(SCMP_ARCH_NATIVE, "openat"); +- if (rc != __NR_openat) ++ if (rc != __SNR_openat) + goto fail; + + while ((arch = arch_list[iter++]) != -1) { +-- +2.17.1 + diff --git a/Contrib-Inspur/openbmc/meta-security/recipes-security/libseccomp/libseccomp_2.4.1.bb b/Contrib-Inspur/openbmc/meta-security/recipes-security/libseccomp/libseccomp_2.4.1.bb deleted file mode 100644 index dba1be57..00000000 --- a/Contrib-Inspur/openbmc/meta-security/recipes-security/libseccomp/libseccomp_2.4.1.bb +++ /dev/null @@ -1,41 +0,0 @@ -SUMMARY = "interface to seccomp filtering mechanism" -DESCRIPTION = "The libseccomp library provides and easy to use, platform independent,interface to the Linux Kernel's syscall filtering mechanism: seccomp." -SECTION = "security" -LICENSE = "LGPL-2.1" -LIC_FILES_CHKSUM = "file://LICENSE;beginline=0;endline=1;md5=8eac08d22113880357ceb8e7c37f989f" - -SRCREV = "fb43972ea1aab24f2a70193fb7445c2674f594e3" - -SRC_URI = "git://github.com/seccomp/libseccomp.git;branch=release-2.4 \ - file://run-ptest \ -" - -S = "${WORKDIR}/git" - -inherit autotools-brokensep pkgconfig ptest - -PACKAGECONFIG ??= "" -PACKAGECONFIG[python] = "--enable-python, --disable-python, python" - -do_compile_ptest() { - oe_runmake -C tests check-build -} - -do_install_ptest() { - install -d ${D}${PTEST_PATH}/tests - install -d ${D}${PTEST_PATH}/tools - for file in $(find tests/* -executable -type f); do - install -m 744 ${S}/${file} ${D}/${PTEST_PATH}/tests - done - for file in $(find tests/*.tests -type f); do - install -m 744 ${S}/${file} ${D}/${PTEST_PATH}/tests - done - for file in $(find tools/* -executable -type f); do - install -m 744 ${S}/${file} ${D}/${PTEST_PATH}/tools - done -} - -FILES_${PN} = "${bindir} ${libdir}/${BPN}.so*" -FILES_${PN}-dbg += "${libdir}/${PN}/tests/.debug/* ${libdir}/${PN}/tools/.debug" - -RDEPENDS_${PN}-ptest = "bash" diff --git a/Contrib-Inspur/openbmc/meta-security/recipes-security/libseccomp/libseccomp_2.4.2.bb b/Contrib-Inspur/openbmc/meta-security/recipes-security/libseccomp/libseccomp_2.4.2.bb new file mode 100644 index 00000000..07db82a6 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-security/recipes-security/libseccomp/libseccomp_2.4.2.bb @@ -0,0 +1,44 @@ +SUMMARY = "interface to seccomp filtering mechanism" +DESCRIPTION = "The libseccomp library provides and easy to use, platform independent,interface to the Linux Kernel's syscall filtering mechanism: seccomp." +SECTION = "security" +LICENSE = "LGPL-2.1" +LIC_FILES_CHKSUM = "file://LICENSE;beginline=0;endline=1;md5=8eac08d22113880357ceb8e7c37f989f" + +SRCREV = "1b6cfd1fc0b7499a28c24299a93a80bd18619563" + +SRC_URI = "git://github.com/seccomp/libseccomp.git;branch=release-2.4 \ + file://0001-tests-rely-on-__SNR_xxx-instead-of-__NR_xxx-for-sysc.patch \ + file://run-ptest \ +" + +S = "${WORKDIR}/git" + +inherit autotools-brokensep pkgconfig ptest + +PACKAGECONFIG ??= "" +PACKAGECONFIG[python] = "--enable-python, --disable-python, python" + +DISABLE_STATIC = "" + +do_compile_ptest() { + oe_runmake -C tests check-build +} + +do_install_ptest() { + install -d ${D}${PTEST_PATH}/tests + install -d ${D}${PTEST_PATH}/tools + for file in $(find tests/* -executable -type f); do + install -m 744 ${S}/${file} ${D}/${PTEST_PATH}/tests + done + for file in $(find tests/*.tests -type f); do + install -m 744 ${S}/${file} ${D}/${PTEST_PATH}/tests + done + for file in $(find tools/* -executable -type f); do + install -m 744 ${S}/${file} ${D}/${PTEST_PATH}/tools + done +} + +FILES_${PN} = "${bindir} ${libdir}/${BPN}.so*" +FILES_${PN}-dbg += "${libdir}/${PN}/tests/.debug/* ${libdir}/${PN}/tools/.debug" + +RDEPENDS_${PN}-ptest = "bash" diff --git a/Contrib-Inspur/openbmc/meta-security/recipes-security/ncrack/ncrack_0.7.bb b/Contrib-Inspur/openbmc/meta-security/recipes-security/ncrack/ncrack_0.7.bb index 06ba2b6d..ba269657 100644 --- a/Contrib-Inspur/openbmc/meta-security/recipes-security/ncrack/ncrack_0.7.bb +++ b/Contrib-Inspur/openbmc/meta-security/recipes-security/ncrack/ncrack_0.7.bb @@ -4,9 +4,9 @@ HOMEPAGE = "https://nmap.org/ncrack" SECTION = "security" LICENSE = "GPL-2.0" -LIC_FILES_CHKSUM = "file://COPYING;md5=198fa93d4e80225839e595336f3b5ff0" +LIC_FILES_CHKSUM = "file://COPYING;beginline=7;endline=12;md5=66938a7e5b4c118eda78271de14874c2" -SRCREV = "3a793a21820708466081825beda9fce857f36cb6" +SRCREV = "dc570e7e3cec1fb176c0168eaedc723084bd0426" SRC_URI = "git://github.com/nmap/ncrack.git" DEPENDS = "openssl zlib" diff --git a/Contrib-Inspur/openbmc/meta-security/recipes-security/packagegroup/packagegroup-core-security-ptest.bb b/Contrib-Inspur/openbmc/meta-security/recipes-security/packagegroup/packagegroup-core-security-ptest.bb new file mode 100644 index 00000000..83a9ed83 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-security/recipes-security/packagegroup/packagegroup-core-security-ptest.bb @@ -0,0 +1,28 @@ +DESCRIPTION = "Security ptest packagegroup" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302 \ + file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420" + +inherit features_check + +REQUIRED_DISTRO_FEATURES = "ptest" + +PACKAGES = "\ + ${PN} \ + " + +ALLOW_EMPTY_${PN} = "1" + +SUMMARY_${PN} = "Security packages with ptests" +RDEPENDS_${PN} = " \ + ptest-runner \ + samhain-standalone-ptest \ + keyutils-ptest \ + libseccomp-ptest \ + python3-scapy-ptest \ + suricata-ptest \ + tripwire-ptest \ + python-fail2ban-ptest \ + ${@bb.utils.contains("DISTRO_FEATURES", "apparmor", "apparmor-ptest", "",d)} \ + ${@bb.utils.contains("DISTRO_FEATURES", "smack", "smack-ptest", "",d)} \ + " diff --git a/Contrib-Inspur/openbmc/meta-security/recipes-security/packagegroup/packagegroup-core-security.bb b/Contrib-Inspur/openbmc/meta-security/recipes-security/packagegroup/packagegroup-core-security.bb index b8ab27df..e0a9d053 100644 --- a/Contrib-Inspur/openbmc/meta-security/recipes-security/packagegroup/packagegroup-core-security.bb +++ b/Contrib-Inspur/openbmc/meta-security/recipes-security/packagegroup/packagegroup-core-security.bb @@ -11,8 +11,6 @@ PACKAGES = "\ packagegroup-security-scanners \ packagegroup-security-ids \ packagegroup-security-mac \ - ${@bb.utils.contains("MACHINE_FEATURES", "tpm", "packagegroup-security-tpm", "",d)} \ - ${@bb.utils.contains("DISTRO_FEATURES", "ptest", "packagegroup-security-ptest", "", d)} \ " RDEPENDS_packagegroup-core-security = "\ @@ -20,8 +18,6 @@ RDEPENDS_packagegroup-core-security = "\ packagegroup-security-scanners \ packagegroup-security-ids \ packagegroup-security-mac \ - ${@bb.utils.contains("MACHINE_FEATURES", "tpm", "packagegroup-security-tpm", "",d)} \ - ${@bb.utils.contains("DISTRO_FEATURES", "ptest", "packagegroup-security-ptest", "", d)} \ " SUMMARY_packagegroup-security-utils = "Security utilities" @@ -29,11 +25,11 @@ RDEPENDS_packagegroup-security-utils = "\ checksec \ nmap \ pinentry \ - python-scapy \ + python3-scapy \ ding-libs \ - xmlsec1 \ keyutils \ libseccomp \ + ${@bb.utils.contains("DISTRO_FEATURES", "pam", "sssd", "",d)} \ ${@bb.utils.contains("DISTRO_FEATURES", "pax", "pax-utils", "",d)} \ " @@ -42,6 +38,8 @@ RDEPENDS_packagegroup-security-scanners = "\ nikto \ checksecurity \ clamav \ + clamav-freshclam \ + clamav-cvd \ " SUMMARY_packagegroup-security-audit = "Security Audit tools " @@ -68,18 +66,3 @@ RDEPENDS_packagegroup-security-mac = " \ ${@bb.utils.contains("DISTRO_FEATURES", "apparmor", "apparmor", "",d)} \ ${@bb.utils.contains("DISTRO_FEATURES", "smack", "smack", "",d)} \ " - -SUMMARY_packagegroup-security-ptest = "Security packages with ptests" -RDEPENDS_packagegroup-security-ptest = " \ - samhain-standalone-ptest \ - xmlsec1-ptest \ - keyutils-ptest \ - libseccomp-ptest \ - python-scapy-ptest \ - suricata-ptest \ - tripwire-ptest \ - python-fail2ban-ptest \ - ${@bb.utils.contains("DISTRO_FEATURES", "apparmor", "apparmor-ptest", "",d)} \ - ${@bb.utils.contains("DISTRO_FEATURES", "smack", "smack-ptest", "",d)} \ - ptest-runner \ - " diff --git a/Contrib-Inspur/openbmc/meta-security/recipes-security/scapy/files/run-ptest b/Contrib-Inspur/openbmc/meta-security/recipes-security/scapy/files/run-ptest index 91b29f90..797d8ecf 100644 --- a/Contrib-Inspur/openbmc/meta-security/recipes-security/scapy/files/run-ptest +++ b/Contrib-Inspur/openbmc/meta-security/recipes-security/scapy/files/run-ptest @@ -1,4 +1,4 @@ #!/bin/sh -UTscapy -t regression.uts -f text -l -C \ +UTscapy3 -t regression.uts -f text -l -C \ -o @PTEST_PATH@/scapy_ptest_$(date +%Y%m%d-%H%M%S).log \ 2>&1 | sed -e 's/^passed None/PASS:/' -e 's/^failed None/FAIL:/' diff --git a/Contrib-Inspur/openbmc/meta-security/recipes-security/scapy/python-scapy.inc b/Contrib-Inspur/openbmc/meta-security/recipes-security/scapy/python-scapy.inc deleted file mode 100644 index baa69b24..00000000 --- a/Contrib-Inspur/openbmc/meta-security/recipes-security/scapy/python-scapy.inc +++ /dev/null @@ -1,22 +0,0 @@ -SUMMARY = "Network scanning and manipulation tool" -DESCRIPTION = "Scapy is a powerful interactive packet manipulation program. It is able to forge or decode packets of a wide number of protocols, send them on the wire, capture them, match requests and replies, and much more. It can easily handle most classical tasks like scanning, tracerouting, probing, unit tests, attacks or network discovery (it can replace hping, 85% of nmap, arpspoof, arp-sk, arping, tcpdump, tethereal, p0f, etc.). It also performs very well at a lot of other specific tasks that most other tools can't handle, like sending invalid frames, injecting your own 802.11 frames, combining technics (VLAN hopping+ARP cache poisoning, VOIP decoding on WEP encrypted channel, ...), etc." -SECTION = "security" -LICENSE = "GPLv2" - -LIC_FILES_CHKSUM = "file://bin/scapy;beginline=9;endline=13;md5=1d5249872cc54cd4ca3d3879262d0c69" - -S = "${WORKDIR}/git" - -SRCREV = "bad14cb1a5aee29f8107fbe8ad008d4645f14da7" -SRC_URI = "git://github.com/secdev/scapy.git" - -inherit ptest - -do_install_ptest() { - install -m 0644 ${S}/test/regression.uts ${D}${PTEST_PATH} - sed -i 's,@PTEST_PATH@,${PTEST_PATH},' ${D}${PTEST_PATH}/run-ptest -} - -RDEPENDS_${PN} = "tcpdump ${PYTHON_PN}-compression ${PYTHON_PN}-cryptography ${PYTHON_PN}-netclient \ - ${PYTHON_PN}-netserver ${PYTHON_PN}-pydoc ${PYTHON_PN}-pkgutil ${PYTHON_PN}-shell \ - ${PYTHON_PN}-threading ${PYTHON_PN}-numbers ${PYTHON_PN}-pycrypto" diff --git a/Contrib-Inspur/openbmc/meta-security/recipes-security/scapy/python-scapy_2.4.2.bb b/Contrib-Inspur/openbmc/meta-security/recipes-security/scapy/python-scapy_2.4.2.bb deleted file mode 100644 index 982620e0..00000000 --- a/Contrib-Inspur/openbmc/meta-security/recipes-security/scapy/python-scapy_2.4.2.bb +++ /dev/null @@ -1,11 +0,0 @@ -inherit setuptools -require python-scapy.inc - -SRC_URI += "file://run-ptest" - -RDEPENDS_${PN} += "${PYTHON_PN}-subprocess" - -do_install_append() { - mv ${D}${bindir}/scapy ${D}${bindir}/scapy2 - mv ${D}${bindir}/UTscapy ${D}${bindir}/UTscapy2 -} diff --git a/Contrib-Inspur/openbmc/meta-security/recipes-security/scapy/python3-scapy_2.4.2.bb b/Contrib-Inspur/openbmc/meta-security/recipes-security/scapy/python3-scapy_2.4.2.bb deleted file mode 100644 index abcaeeb0..00000000 --- a/Contrib-Inspur/openbmc/meta-security/recipes-security/scapy/python3-scapy_2.4.2.bb +++ /dev/null @@ -1,9 +0,0 @@ -inherit setuptools3 -require python-scapy.inc - -SRC_URI += "file://run-ptest" - -do_install_append() { - mv ${D}${bindir}/scapy ${D}${bindir}/scapy3 - mv ${D}${bindir}/UTscapy ${D}${bindir}/UTscapy3 -} diff --git a/Contrib-Inspur/openbmc/meta-security/recipes-security/scapy/python3-scapy_2.4.3.bb b/Contrib-Inspur/openbmc/meta-security/recipes-security/scapy/python3-scapy_2.4.3.bb new file mode 100644 index 00000000..925f188c --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-security/recipes-security/scapy/python3-scapy_2.4.3.bb @@ -0,0 +1,30 @@ +SUMMARY = "Network scanning and manipulation tool" +DESCRIPTION = "Scapy is a powerful interactive packet manipulation program. It is able to forge or decode packets of a wide number of protocols, send them on the wire, capture them, match requests and replies, and much more. It can easily handle most classical tasks like scanning, tracerouting, probing, unit tests, attacks or network discovery (it can replace hping, 85% of nmap, arpspoof, arp-sk, arping, tcpdump, tethereal, p0f, etc.). It also performs very well at a lot of other specific tasks that most other tools can't handle, like sending invalid frames, injecting your own 802.11 frames, combining technics (VLAN hopping+ARP cache poisoning, VOIP decoding on WEP encrypted channel, ...), etc." +SECTION = "security" +LICENSE = "GPLv2" + +LIC_FILES_CHKSUM = "file://LICENSE;md5=b234ee4d69f5fce4486a80fdaf4a4263" + +S = "${WORKDIR}/git" + +SRCREV = "3047580162a9407ef05fe981983cacfa698f1159" +SRC_URI = "git://github.com/secdev/scapy.git \ + file://run-ptest" + +S = "${WORKDIR}/git" + +inherit setuptools3 ptest + +do_install_append() { + mv ${D}${bindir}/scapy ${D}${bindir}/scapy3 + mv ${D}${bindir}/UTscapy ${D}${bindir}/UTscapy3 +} + +do_install_ptest() { + install -m 0644 ${S}/test/regression.uts ${D}${PTEST_PATH} + sed -i 's,@PTEST_PATH@,${PTEST_PATH},' ${D}${PTEST_PATH}/run-ptest +} + +RDEPENDS_${PN} = "tcpdump ${PYTHON_PN}-compression ${PYTHON_PN}-cryptography ${PYTHON_PN}-netclient \ + ${PYTHON_PN}-netserver ${PYTHON_PN}-pydoc ${PYTHON_PN}-pkgutil ${PYTHON_PN}-shell \ + ${PYTHON_PN}-threading ${PYTHON_PN}-numbers ${PYTHON_PN}-pycrypto" diff --git a/Contrib-Inspur/openbmc/meta-security/recipes-security/sssd/sssd_1.16.4.bb b/Contrib-Inspur/openbmc/meta-security/recipes-security/sssd/sssd_1.16.4.bb index 34bc8c80..089a99e0 100644 --- a/Contrib-Inspur/openbmc/meta-security/recipes-security/sssd/sssd_1.16.4.bb +++ b/Contrib-Inspur/openbmc/meta-security/recipes-security/sssd/sssd_1.16.4.bb @@ -14,7 +14,7 @@ SRC_URI = "https://releases.pagure.org/SSSD/${BPN}/${BP}.tar.gz\ SRC_URI[md5sum] = "757bbb6f15409d8d075f4f06cb678d50" SRC_URI[sha256sum] = "6bb212cd6b75b918e945c24e7c3f95a486fb54d7f7d489a9334cfa1a1f3bf959" -inherit autotools pkgconfig gettext python-dir distro_features_check +inherit autotools pkgconfig gettext python-dir features_check REQUIRED_DISTRO_FEATURES = "pam" diff --git a/Contrib-Inspur/openbmc/meta-security/recipes-security/xmlsec1/xmlsec1_1.2.27.bb b/Contrib-Inspur/openbmc/meta-security/recipes-security/xmlsec1/xmlsec1_1.2.27.bb deleted file mode 100644 index eac8d6bd..00000000 --- a/Contrib-Inspur/openbmc/meta-security/recipes-security/xmlsec1/xmlsec1_1.2.27.bb +++ /dev/null @@ -1,64 +0,0 @@ -SUMMARY = "XML Security Library is a C library based on LibXML2" -DESCRIPTION = "\ - XML Security Library is a C library based on \ - LibXML2 and OpenSSL. The library was created with a goal to support major \ - XML security standards "XML Digital Signature" and "XML Encryption". \ - " -HOMEPAGE = "http://www.aleksey.com/xmlsec/" -DEPENDS = "libtool libxml2 libxslt zlib" - -LICENSE = "MIT" -LIC_FILES_CHKSUM = "file://COPYING;md5=352791d62092ea8104f085042de7f4d0" - -SECTION = "libs" - -SRC_URI = "http://www.aleksey.com/xmlsec/download/${BP}.tar.gz \ - file://fix-ltmain.sh.patch \ - file://change-finding-path-of-nss.patch \ - file://makefile-ptest.patch \ - file://xmlsec1-examples-allow-build-in-separate-dir.patch \ - file://run-ptest \ - " - -SRC_URI[md5sum] = "508bee7e4f1b99f2d50aaa7d38ede56e" -SRC_URI[sha256sum] = "97d756bad8e92588e6997d2227797eaa900d05e34a426829b149f65d87118eb6" - -inherit autotools-brokensep ptest pkgconfig - -CFLAGS += "-I${STAGING_INCDIR}/nspr4 -I${STAGING_INCDIR}/nss3" -CPPFLAGS += "-I${STAGING_INCDIR}/nspr4 -I${STAGING_INCDIR}/nss3" - -PACKAGECONFIG ??= "gnutls libgcrypt nss openssl des" -PACKAGECONFIG[gnutls] = ",,gnutls" -PACKAGECONFIG[libgcrypt] = ",,libgcrypt" -PACKAGECONFIG[nss] = "--with-nss=${STAGING_LIBDIR}/../.. --with-nspr=${STAGING_LIBDIR}/../..,,nss nspr" -PACKAGECONFIG[openssl] = ",,openssl" -PACKAGECONFIG[des] = ",--disable-des,," - -# these can be dynamically loaded with xmlSecCryptoDLLoadLibrary() -FILES_SOLIBSDEV = "${libdir}/libxmlsec1.so" -FILES_${PN} += "${libdir}/libxmlsec1-*.so" -INSANE_SKIP_${PN} = "dev-so" - -FILES_${PN}-dev += "${libdir}/xmlsec1Conf.sh" -FILES_${PN}-dbg += "${PTEST_PATH}/.debug/*" - -RDEPENDS_${PN}-ptest += "${PN}-dev" -INSANE_SKIP_${PN}-ptest += "dev-deps" - -PTEST_EXTRA_ARGS = "top_srcdir=${S} top_builddir=${B}" - -do_compile_ptest () { - oe_runmake -C ${S}/examples ${PTEST_EXTRA_ARGS} all -} - -do_install_append() { - for i in ${bindir}/xmlsec1-config ${libdir}/xmlsec1Conf.sh \ - ${libdir}/pkgconfig/xmlsec1-openssl.pc; do - sed -i -e "s@${RECIPE_SYSROOT}@@g" ${D}$i - done -} - -do_install_ptest () { - oe_runmake -C ${S}/examples DESTDIR=${D}${PTEST_PATH} ${PTEST_EXTRA_ARGS} install-ptest -} diff --git a/Contrib-Inspur/openbmc/meta-security/recipes-support/libldb/libldb/avoid-openldap-unless-wanted.patch b/Contrib-Inspur/openbmc/meta-security/recipes-support/libldb/libldb/avoid-openldap-unless-wanted.patch deleted file mode 100644 index 8ab094fa..00000000 --- a/Contrib-Inspur/openbmc/meta-security/recipes-support/libldb/libldb/avoid-openldap-unless-wanted.patch +++ /dev/null @@ -1,13 +0,0 @@ ---- a/wscript 2015-11-18 12:43:33.000000000 +0100 -+++ b/wscript 2015-11-18 12:46:25.000000000 +0100 -@@ -58,9 +58,7 @@ - if conf.env.standalone_ldb: - conf.CHECK_XSLTPROC_MANPAGES() - -- # we need this for the ldap backend -- if conf.CHECK_FUNCS_IN('ber_flush ldap_open ldap_initialize', 'lber ldap', headers='lber.h ldap.h'): -- conf.env.ENABLE_LDAP_BACKEND = True -+ conf.env.ENABLE_LDAP_BACKEND = False - - # we don't want any libraries or modules to rely on runtime - # resolution of symbols diff --git a/Contrib-Inspur/openbmc/meta-security/recipes-support/libldb/libldb/do-not-import-target-module-while-cross-compile.patch b/Contrib-Inspur/openbmc/meta-security/recipes-support/libldb/libldb/do-not-import-target-module-while-cross-compile.patch deleted file mode 100755 index fdd312c0..00000000 --- a/Contrib-Inspur/openbmc/meta-security/recipes-support/libldb/libldb/do-not-import-target-module-while-cross-compile.patch +++ /dev/null @@ -1,58 +0,0 @@ -Some modules such as dynamic library maybe cann't be imported while cross compile, -we just check whether does the module exist. - -Signed-off-by: Bian Naimeng - -Index: ldb-1.1.26/buildtools/wafsamba/samba_bundled.py -=================================================================== ---- ldb-1.1.26.orig/buildtools/wafsamba/samba_bundled.py -+++ ldb-1.1.26/buildtools/wafsamba/samba_bundled.py -@@ -2,6 +2,7 @@ - - import sys - import Build, Options, Logs -+import imp, os - from Configure import conf - from samba_utils import TO_LIST - -@@ -230,17 +231,32 @@ def CHECK_BUNDLED_SYSTEM_PYTHON(conf, li - # versions - minversion = minimum_library_version(conf, libname, minversion) - -- try: -- m = __import__(modulename) -- except ImportError: -- found = False -- else: -+ # Find module in PYTHONPATH -+ stuff = imp.find_module(modulename, [os.environ["PYTHONPATH"]]) -+ if stuff: - try: -- version = m.__version__ -- except AttributeError: -+ m = imp.load_module(modulename, stuff[0], stuff[1], stuff[2]) -+ except ImportError: - found = False -+ -+ if conf.env.CROSS_COMPILE: -+ # Some modules such as dynamic library maybe cann't be imported -+ # while cross compile, we just check whether the module exist -+ Logs.warn('Cross module[%s] has been found, but can not be loaded.' % (stuff[1])) -+ found = True - else: -- found = tuplize_version(version) >= tuplize_version(minversion) -+ try: -+ version = m.__version__ -+ except AttributeError: -+ found = False -+ else: -+ found = tuplize_version(version) >= tuplize_version(minversion) -+ finally: -+ if stuff[0]: -+ stuff[0].close() -+ else: -+ found = False -+ - if not found and not conf.LIB_MAY_BE_BUNDLED(libname): - Logs.error('ERROR: Python module %s of version %s not found, and bundling disabled' % (libname, minversion)) - sys.exit(1) diff --git a/Contrib-Inspur/openbmc/meta-security/recipes-support/libldb/libldb/options-1.3.1.patch b/Contrib-Inspur/openbmc/meta-security/recipes-support/libldb/libldb/options-1.3.1.patch deleted file mode 100644 index ffe253b6..00000000 --- a/Contrib-Inspur/openbmc/meta-security/recipes-support/libldb/libldb/options-1.3.1.patch +++ /dev/null @@ -1,193 +0,0 @@ -From a4da3ab4d76013aaa731d43d52ccca1ebd37c395 Mon Sep 17 00:00:00 2001 -From: Jackie Huang -Date: Wed, 21 Sep 2016 10:06:39 +0800 -Subject: [PATCH 1/1] ldb: Add configure options for packages - -Add configure options for the following packages: - - acl - - attr - - libaio - - libbsd - - libcap - - valgrind - -Upstream-Status: Inappropriate [oe deterministic build specific] - -Signed-off-by: Jackie Huang ---- - lib/replace/system/wscript_configure | 6 ++- - lib/replace/wscript | 94 +++++++++++++++++++++++++++--------- - wscript | 7 +++ - 3 files changed, 83 insertions(+), 24 deletions(-) - -diff --git a/lib/replace/system/wscript_configure b/lib/replace/system/wscript_configure -index 2035474..10f9ae7 100644 ---- a/lib/replace/system/wscript_configure -+++ b/lib/replace/system/wscript_configure -@@ -1,6 +1,10 @@ - #!/usr/bin/env python - --conf.CHECK_HEADERS('sys/capability.h') -+import Options -+ -+if Options.options.enable_libcap: -+ conf.CHECK_HEADERS('sys/capability.h') -+ - conf.CHECK_FUNCS('getpwnam_r getpwuid_r getpwent_r') - - # solaris varients of getXXent_r -diff --git a/lib/replace/wscript b/lib/replace/wscript -index 2f94d49..68b2d3a 100644 ---- a/lib/replace/wscript -+++ b/lib/replace/wscript -@@ -23,6 +23,41 @@ def set_options(opt): - opt.PRIVATE_EXTENSION_DEFAULT('') - opt.RECURSE('buildtools/wafsamba') - -+ opt.add_option('--with-acl', -+ help=("Enable use of acl"), -+ action="store_true", dest='enable_acl') -+ opt.add_option('--without-acl', -+ help=("Disable use of acl"), -+ action="store_false", dest='enable_acl', default=False) -+ -+ opt.add_option('--with-attr', -+ help=("Enable use of attr"), -+ action="store_true", dest='enable_attr') -+ opt.add_option('--without-attr', -+ help=("Disable use of attr"), -+ action="store_false", dest='enable_attr', default=False) -+ -+ opt.add_option('--with-libaio', -+ help=("Enable use of libaio"), -+ action="store_true", dest='enable_libaio') -+ opt.add_option('--without-libaio', -+ help=("Disable use of libaio"), -+ action="store_false", dest='enable_libaio', default=False) -+ -+ opt.add_option('--with-libbsd', -+ help=("Enable use of libbsd"), -+ action="store_true", dest='enable_libbsd') -+ opt.add_option('--without-libbsd', -+ help=("Disable use of libbsd"), -+ action="store_false", dest='enable_libbsd', default=False) -+ -+ opt.add_option('--with-libcap', -+ help=("Enable use of libcap"), -+ action="store_true", dest='enable_libcap') -+ opt.add_option('--without-libcap', -+ help=("Disable use of libcap"), -+ action="store_false", dest='enable_libcap', default=False) -+ - @Utils.run_once - def configure(conf): - conf.RECURSE('buildtools/wafsamba') -@@ -32,12 +67,25 @@ def configure(conf): - conf.DEFINE('HAVE_LIBREPLACE', 1) - conf.DEFINE('LIBREPLACE_NETWORK_CHECKS', 1) - -- conf.CHECK_HEADERS('linux/types.h crypt.h locale.h acl/libacl.h compat.h') -- conf.CHECK_HEADERS('acl/libacl.h attr/xattr.h compat.h ctype.h dustat.h') -+ conf.CHECK_HEADERS('linux/types.h crypt.h locale.h compat.h') -+ conf.CHECK_HEADERS('compat.h ctype.h dustat.h') - conf.CHECK_HEADERS('fcntl.h fnmatch.h glob.h history.h krb5.h langinfo.h') -- conf.CHECK_HEADERS('libaio.h locale.h ndir.h pwd.h') -- conf.CHECK_HEADERS('shadow.h sys/acl.h') -- conf.CHECK_HEADERS('sys/attributes.h attr/attributes.h sys/capability.h sys/dir.h sys/epoll.h') -+ conf.CHECK_HEADERS('locale.h ndir.h pwd.h') -+ conf.CHECK_HEADERS('shadow.h') -+ conf.CHECK_HEADERS('sys/attributes.h sys/dir.h sys/epoll.h') -+ -+ if Options.options.enable_acl: -+ conf.CHECK_HEADERS('acl/libacl.h sys/acl.h') -+ -+ if Options.options.enable_attr: -+ conf.CHECK_HEADERS('attr/attributes.h attr/xattr.h') -+ -+ if Options.options.enable_libaio: -+ conf.CHECK_HEADERS('libaio.h') -+ -+ if Options.options.enable_libcap: -+ conf.CHECK_HEADERS('sys/capability.h') -+ - conf.CHECK_HEADERS('port.h') - conf.CHECK_HEADERS('sys/fcntl.h sys/filio.h sys/filsys.h sys/fs/s5param.h sys/fs/vx/quota.h') - conf.CHECK_HEADERS('sys/id.h sys/ioctl.h sys/ipc.h sys/mman.h sys/mode.h sys/ndir.h sys/priv.h') -@@ -73,7 +121,9 @@ def configure(conf): - - conf.CHECK_CODE('', headers='rpc/rpc.h rpcsvc/yp_prot.h', define='HAVE_RPCSVC_YP_PROT_H') - -- conf.CHECK_HEADERS('valgrind.h valgrind/valgrind.h valgrind/memcheck.h') -+ if Options.options.enable_valgrind: -+ conf.CHECK_HEADERS('valgrind.h valgrind/valgrind.h valgrind/memcheck.h') -+ - conf.CHECK_HEADERS('nss_common.h nsswitch.h ns_api.h') - conf.CHECK_HEADERS('sys/extattr.h sys/ea.h sys/proplist.h sys/cdefs.h') - conf.CHECK_HEADERS('utmp.h utmpx.h lastlog.h') -@@ -266,22 +316,20 @@ def configure(conf): - - conf.CHECK_FUNCS('prctl dirname basename') - -- strlcpy_in_bsd = False -- -- # libbsd on some platforms provides strlcpy and strlcat -- if not conf.CHECK_FUNCS('strlcpy strlcat'): -- if conf.CHECK_FUNCS_IN('strlcpy strlcat', 'bsd', headers='bsd/string.h', -- checklibc=True): -- strlcpy_in_bsd = True -- if not conf.CHECK_FUNCS('getpeereid'): -- conf.CHECK_FUNCS_IN('getpeereid', 'bsd', headers='sys/types.h bsd/unistd.h') -- if not conf.CHECK_FUNCS_IN('setproctitle', 'setproctitle', headers='setproctitle.h'): -- conf.CHECK_FUNCS_IN('setproctitle', 'bsd', headers='sys/types.h bsd/unistd.h') -- if not conf.CHECK_FUNCS('setproctitle_init'): -- conf.CHECK_FUNCS_IN('setproctitle_init', 'bsd', headers='sys/types.h bsd/unistd.h') -- -- if not conf.CHECK_FUNCS('closefrom'): -- conf.CHECK_FUNCS_IN('closefrom', 'bsd', headers='bsd/unistd.h') -+ if Options.options.enable_libbsd: -+ # libbsd on some platforms provides strlcpy and strlcat -+ if not conf.CHECK_FUNCS('strlcpy strlcat'): -+ conf.CHECK_FUNCS_IN('strlcpy strlcat', 'bsd', headers='bsd/string.h', -+ checklibc=True) -+ if not conf.CHECK_FUNCS('getpeereid'): -+ conf.CHECK_FUNCS_IN('getpeereid', 'bsd', headers='sys/types.h bsd/unistd.h') -+ if not conf.CHECK_FUNCS_IN('setproctitle', 'setproctitle', headers='setproctitle.h'): -+ conf.CHECK_FUNCS_IN('setproctitle', 'bsd', headers='sys/types.h bsd/unistd.h') -+ if not conf.CHECK_FUNCS('setproctitle_init'): -+ conf.CHECK_FUNCS_IN('setproctitle_init', 'bsd', headers='sys/types.h bsd/unistd.h') -+ -+ if not conf.CHECK_FUNCS('closefrom'): -+ conf.CHECK_FUNCS_IN('closefrom', 'bsd', headers='bsd/unistd.h') - - conf.CHECK_CODE(''' - struct ucred cred; -@@ -632,7 +680,7 @@ removeea setea - # look for a method of finding the list of network interfaces - for method in ['HAVE_IFACE_GETIFADDRS', 'HAVE_IFACE_AIX', 'HAVE_IFACE_IFCONF', 'HAVE_IFACE_IFREQ']: - bsd_for_strlcpy = '' -- if strlcpy_in_bsd: -+ if Options.options.enable_libbsd: - bsd_for_strlcpy = ' bsd' - if conf.CHECK_CODE(''' - #define %s 1 -diff --git a/wscript b/wscript -index 8ae5be3..a178cc4 100644 ---- a/wscript -+++ b/wscript -@@ -31,6 +31,13 @@ def set_options(opt): - opt.RECURSE('lib/replace') - opt.tool_options('python') # options for disabling pyc or pyo compilation - -+ opt.add_option('--with-valgrind', -+ help=("enable use of valgrind"), -+ action="store_true", dest='enable_valgrind') -+ opt.add_option('--without-valgrind', -+ help=("disable use of valgrind"), -+ action="store_false", dest='enable_valgrind', default=False) -+ - def configure(conf): - conf.RECURSE('lib/tdb') - conf.RECURSE('lib/tevent') --- -2.16.2 - diff --git a/Contrib-Inspur/openbmc/meta-security/recipes-support/libldb/libldb_1.3.1.bb b/Contrib-Inspur/openbmc/meta-security/recipes-support/libldb/libldb_1.3.1.bb deleted file mode 100644 index c644b20b..00000000 --- a/Contrib-Inspur/openbmc/meta-security/recipes-support/libldb/libldb_1.3.1.bb +++ /dev/null @@ -1,64 +0,0 @@ -SUMMARY = "Hierarchical, reference counted memory pool system with destructors" -HOMEPAGE = "http://ldb.samba.org" -SECTION = "libs" -LICENSE = "LGPL-3.0+ & LGPL-2.1+ & GPL-3.0+" - -DEPENDS += "libtdb libtalloc libtevent popt" -RDEPENDS_pyldb += "python" - -SRC_URI = "http://samba.org/ftp/ldb/ldb-${PV}.tar.gz \ - file://do-not-import-target-module-while-cross-compile.patch \ - file://options-1.3.1.patch \ - " - -PACKAGECONFIG ??= "\ - ${@bb.utils.filter('DISTRO_FEATURES', 'acl', d)} \ - ${@bb.utils.contains('DISTRO_FEATURES', 'xattr', 'attr', '', d)} \ -" -PACKAGECONFIG[acl] = "--with-acl,--without-acl,acl" -PACKAGECONFIG[attr] = "--with-attr,--without-attr,attr" -PACKAGECONFIG[ldap] = ",,openldap" -PACKAGECONFIG[libaio] = "--with-libaio,--without-libaio,libaio" -PACKAGECONFIG[libbsd] = "--with-libbsd,--without-libbsd,libbsd" -PACKAGECONFIG[libcap] = "--with-libcap,--without-libcap,libcap" -PACKAGECONFIG[valgrind] = "--with-valgrind,--without-valgrind,valgrind" - -SRC_URI += "${@bb.utils.contains('PACKAGECONFIG', 'ldap', '', 'file://avoid-openldap-unless-wanted.patch', d)}" - -LIC_FILES_CHKSUM = "file://pyldb.h;endline=24;md5=dfbd238cecad76957f7f860fbe9adade \ - file://man/ldb.3.xml;beginline=261;endline=262;md5=137f9fd61040c1505d1aa1019663fd08 \ - file://tools/ldbdump.c;endline=19;md5=a7d4fc5d1f75676b49df491575a86a42" - -SRC_URI[md5sum] = "e5233f202bca27f6ce8474fb8ae65983" -SRC_URI[sha256sum] = "b19f2c9f55ae0f46aa5ebaea0bf1a47ec1ac135e1d78af0f6318cf50bf62cbd2" - -CROSS_METHOD="exec" -inherit waf-samba - -S = "${WORKDIR}/ldb-${PV}" - -EXTRA_OECONF += "--disable-rpath \ - --disable-rpath-install \ - --bundled-libraries=cmocka \ - --builtin-libraries=replace \ - --with-modulesdir=${libdir}/ldb/modules \ - --with-privatelibdir=${libdir}/ldb \ - --with-libiconv=${STAGING_DIR_HOST}${prefix}\ - " - -PACKAGES =+ "pyldb pyldb-dbg pyldb-dev" - -NOAUTOPACKAGEDEBUG = "1" - -FILES_${PN} += "${libdir}/ldb/*" -FILES_${PN}-dbg += "${bindir}/.debug/* \ - ${libdir}/.debug/* \ - ${libdir}/ldb/.debug/* \ - ${libdir}/ldb/modules/ldb/.debug/*" - -FILES_pyldb = "${libdir}/python${PYTHON_BASEVERSION}/site-packages/* \ - ${libdir}/libpyldb-util.so.* \ - " -FILES_pyldb-dbg = "${libdir}/python${PYTHON_BASEVERSION}/site-packages/.debug \ - ${libdir}/.debug/libpyldb-util.so.*" -FILES_pyldb-dev = "${libdir}/libpyldb-util.so" diff --git a/Contrib-Inspur/openbmc/meta-x86/conf/layer.conf b/Contrib-Inspur/openbmc/meta-x86/conf/layer.conf index 5812d502..9be1a1fc 100644 --- a/Contrib-Inspur/openbmc/meta-x86/conf/layer.conf +++ b/Contrib-Inspur/openbmc/meta-x86/conf/layer.conf @@ -3,4 +3,4 @@ BBPATH .= ":${LAYERDIR}" BBFILE_COLLECTIONS += "obmc_machines_x86" BBFILE_PATTERN_obmc_machines_x86 = "" -LAYERSERIES_COMPAT_obmc_machines_x86 = "thud warrior" +LAYERSERIES_COMPAT_obmc_machines_x86 = "warrior zeus" diff --git a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/README.building.md b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/README.building.md index b127db36..230037c1 100644 --- a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/README.building.md +++ b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/README.building.md @@ -56,33 +56,40 @@ https://github.com/lucaceresoli/zynqmp-pmufw-builder/blob/master/0001-Load-XPm_C Using multiconfig to build ZU+ ------------------------------ -multiconfig dependency has to be added in image file or local.conf. -For example in core-image-minimal you will need -do_image[mcdepends] = "multiconfig:zcu102:pmu:pmu-firmware:do_deploy" +In your local.conf multiconfig should be enabled by: -Add conf/multiconfig in the build directory and create pmu.conf and zcu102.conf +`BBMULTICONFIG ?= "pmu"` -Add the following in pmu.conf: - MACHINE="zynqmp-pmu" - DISTRO="xilinx-standalone" - GCCVERSION="7.%" - TMPDIR="${TOPDIR}/pmutmp" +Add a directory conf/multiconfig in the build directory and create pmu.conf inside it. -Add the following in zcu102.conf: - MACHINE="zcu102-zynqmp" - DISTRO="poky" +Add the following in pmu.conf: -In local.conf multiconfig is enabled by: BBMULTICONFIG ?= "zcu102 pmu" + MACHINE="zynqmp-pmu" + DISTRO="xilinx-standalone" + TMPDIR="${TOPDIR}/pmutmp" + +Add the following in your local.conf + + MACHINE="zcu102-zynqmp" + DISTRO="poky" + +A multiconfig dependency has to be added in the image recipe or local.conf. + +For example in core-image-minimal you would need: + + do_image[mcdepends] = "multiconfig::pmu:pmu-firmware:do_deploy" + +This creates a multiconfig dependency between the task do_image from the default multiconfig '' (which has no name) +to the task do_deploy() from the package pmu-firmware from the pmu multiconfig which was just created above. + + $ bitbake core-image-minimal + +This will build both core-image-minimal and pmu-firmware. -bitbake multiconfig:zcu102:core-image-minimal More information about multiconfig: https://www.yoctoproject.org/docs/current/mega-manual/mega-manual.html#dev-building-images-for-multiple-targets-using-multiple-configurations -Workaround: -There is additional workaround required in u-boot-xlnx recipe. Add the below dependency -do_compile[mcdepends] = "multiconfig:zcu102:pmu:pmu-firmware:do_deploy" - Additional Information ---------------------- diff --git a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/README.md b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/README.md index 13ef6b61..ac1140d7 100644 --- a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/README.md +++ b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/README.md @@ -47,6 +47,8 @@ the [meta-xilinx mailing list](https://lists.yoctoproject.org/listinfo/meta-xili Maintainers: Manjukumar Harthikote Matha + Sai Hari Chandana Kalluri + Mark Hatle Dependencies ============ diff --git a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/classes/kernel-simpleimage.bbclass b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/classes/kernel-simpleimage.bbclass index be70ffa3..6da28f36 100644 --- a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/classes/kernel-simpleimage.bbclass +++ b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/classes/kernel-simpleimage.bbclass @@ -13,10 +13,23 @@ do_prep_simpleimage[dirs] += "${B}" do_prep_simpleimage () { install -d ${B}/arch/${ARCH}/boot/dts for type in ${KERNEL_IMAGETYPES} ; do - if [[ "${type}" =~ "simpleImage" ]] && [ ${ARCH} = "microblaze" ]; then + if [ -z "${type##*simpleImage*}" ] && [ ${ARCH} = "microblaze" ]; then ext="${type##*.}" - cp ${RECIPE_SYSROOT}/boot/devicetree/${ext}.dtb ${B}/arch/${ARCH}/boot/dts/ + # Microblaze simpleImage only works with dts file + cp ${RECIPE_SYSROOT}/boot/devicetree/${ext}.dts ${B}/arch/${ARCH}/boot/dts/ fi done } +do_deploy_append () { + for type in ${KERNEL_IMAGETYPES} ; do + if [ -z "${type##*simpleImage*}" ] && [ ${ARCH} = "microblaze" ]; then + base_name=${imageType}-${KERNEL_IMAGE_NAME} + install -m 0644 ${KERNEL_OUTPUT_DIR}/${type}.strip $deployDir/${base_name}.strip + install -m 0644 ${KERNEL_OUTPUT_DIR}/${type}.unstrip $deployDir/${base_name}.unstrip + symlink_name=${imageType}-${KERNEL_IMAGE_LINK_NAME} + ln -sf ${base_name}.strip $deployDir/${symlink_name}.strip + ln -sf ${base_name}.unstrip $deployDir/${symlink_name}.unstrip + fi + done +} diff --git a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/classes/xilinx-testimage.bbclass b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/classes/xilinx-testimage.bbclass index d9086ec0..0126d8ba 100644 --- a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/classes/xilinx-testimage.bbclass +++ b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/classes/xilinx-testimage.bbclass @@ -7,3 +7,5 @@ python do_testimage_prepend () { supported_fstypes.append('wic.qemu-sd') } +IMAGE_AUTOLOGIN = "0" +IMAGE_FSTYPES = "wic.qemu-sd" diff --git a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/conf/layer.conf b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/conf/layer.conf index fc511655..437616cf 100644 --- a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/conf/layer.conf +++ b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/conf/layer.conf @@ -11,5 +11,7 @@ BBFILE_PRIORITY_xilinx = "5" LAYERDEPENDS_xilinx = "core" -LAYERSERIES_COMPAT_xilinx = "sumo thud" +LAYERSERIES_COMPAT_xilinx = "warrior" + +BB_DANGLINGAPPENDS_WARNONLY ?= "1" diff --git a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/conf/machine/include/machine-xilinx-default.inc b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/conf/machine/include/machine-xilinx-default.inc index 153a47fb..1367e57a 100644 --- a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/conf/machine/include/machine-xilinx-default.inc +++ b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/conf/machine/include/machine-xilinx-default.inc @@ -23,7 +23,9 @@ UBOOT_SUFFIX_microblaze ?= "bin" UBOOT_BINARY ?= "u-boot.${UBOOT_SUFFIX}" UBOOT_ELF ?= "u-boot" +UBOOT_ELF_zynq ?= "u-boot.elf" UBOOT_ELF_aarch64 ?= "u-boot.elf" +UBOOT_ELF_versal ?= "u-boot.elf" #Hardware accelaration PREFERRED_PROVIDER_virtual/libgles1_mali400 = "libmali-xlnx" @@ -32,6 +34,11 @@ PREFERRED_PROVIDER_virtual/egl_mali400 = "libmali-xlnx" PREFERRED_PROVIDER_virtual/libgl_mali400 = "mesa-gl" PREFERRED_PROVIDER_virtual/mesa_mali400 = "mesa-gl" +# microblaze does not get on with pie for reasons not looked into as yet +GCCPIE_microblaze = "" +GLIBCPIE_microblaze = "" +SECURITY_CFLAGS_microblaze = "" +SECURITY_LDFLAGS_microblaze = "" XSERVER ?= " \ xserver-xorg \ @@ -77,3 +84,4 @@ XSERVER_EXT_zynqmp ?= "xf86-video-armsoc" # For MicroBlaze default all microblaze machines to use GDB 7.7.1 (for gdbserver/gdb) PREFERRED_VERSION_gdb_microblaze = "7.7.1" +FPGA_MNGR_RECONFIG_ENABLE ?= "${@bb.utils.contains('IMAGE_FEATURES', 'fpga-manager', '1', '0', d)}" diff --git a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/conf/machine/include/tune-zynq.inc b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/conf/machine/include/tune-zynq.inc index 270e2d93..f7006026 100644 --- a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/conf/machine/include/tune-zynq.inc +++ b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/conf/machine/include/tune-zynq.inc @@ -12,6 +12,7 @@ require conf/machine/include/soc-family.inc # Linux Configuration KERNEL_IMAGETYPE ?= "uImage" +KERNEL_IMAGETYPES += "zImage" # Set default load address. # Override with KERNEL_EXTRA_ARGS_ += "..." in machine file if required diff --git a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/conf/machine/kc705-microblazeel.conf b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/conf/machine/kc705-microblazeel.conf index 73ff40fd..d79e4efd 100644 --- a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/conf/machine/kc705-microblazeel.conf +++ b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/conf/machine/kc705-microblazeel.conf @@ -6,7 +6,7 @@ require conf/machine/include/tune-microblaze.inc require conf/machine/include/machine-xilinx-default.inc -TUNE_FEATURES_tune-microblaze += "v10.0 barrel-shift reorder pattern-compare multiply-high divide-hard" +TUNE_FEATURES_tune-microblaze += "v11.0 barrel-shift reorder pattern-compare multiply-high divide-hard" MACHINE_FEATURES = "" diff --git a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/conf/machine/microblazeel-v11.0-bs-cmp-mh-div-generic.conf b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/conf/machine/microblazeel-v11.0-bs-cmp-mh-div-generic.conf new file mode 100644 index 00000000..00aede11 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/conf/machine/microblazeel-v11.0-bs-cmp-mh-div-generic.conf @@ -0,0 +1,17 @@ +#@TYPE: Machine +#@NAME: microblazeel-v11.0-bs-cmp-mh-div-generic +#@DESCRIPTION: microblazeel-v11.0-bs-cmp-mh-div + +require conf/machine/include/tune-microblaze.inc +require conf/machine/include/machine-xilinx-default.inc + +TUNE_FEATURES_tune-microblaze += "v11.0 barrel-shift pattern-compare reorder divide-hard multiply-high" + +MACHINE_FEATURES = "" + +KERNEL_IMAGETYPE = "linux.bin.ub" +KERNEL_IMAGETYPES = "" + +SERIAL_CONSOLE = "115200 ttyS0" + +EXTRA_IMAGEDEPENDS += "libyaml-native python3-cython-native python3-pyyaml-native" diff --git a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/conf/machine/microblazeel-v11.0-bs-cmp-ml-generic.conf b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/conf/machine/microblazeel-v11.0-bs-cmp-ml-generic.conf new file mode 100644 index 00000000..30afbd71 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/conf/machine/microblazeel-v11.0-bs-cmp-ml-generic.conf @@ -0,0 +1,17 @@ +#@TYPE: Machine +#@NAME: microblazeel-v11.0-bs-cmp-ml-generic +#@DESCRIPTION: microblazeel-v11.0-bs-cmp-ml + +require conf/machine/include/tune-microblaze.inc +require conf/machine/include/machine-xilinx-default.inc + +TUNE_FEATURES_tune-microblaze += "v11.0 barrel-shift reorder pattern-compare multiply-low" + +MACHINE_FEATURES = "" + +KERNEL_IMAGETYPE = "linux.bin.ub" +KERNEL_IMAGETYPES = "" + +SERIAL_CONSOLE = "115200 ttyS0" + +EXTRA_IMAGEDEPENDS += "libyaml-native python3-cython-native python3-pyyaml-native" diff --git a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/conf/machine/microzed-zynq7.conf b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/conf/machine/microzed-zynq7.conf index 8869424d..83c5fc1e 100644 --- a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/conf/machine/microzed-zynq7.conf +++ b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/conf/machine/microzed-zynq7.conf @@ -14,6 +14,7 @@ MACHINE_FEATURES = "ext2 vfat usbhost" PREFERRED_PROVIDER_virtual/bootloader = "u-boot" UBOOT_MACHINE = "zynq_microzed_config" SPL_BINARY ?= "spl/boot.bin" +UBOOT_ELF_zynq = "u-boot" EXTRA_IMAGEDEPENDS += " \ u-boot-zynq-uenv \ diff --git a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/conf/machine/picozed-zynq7.conf b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/conf/machine/picozed-zynq7.conf index 911bf90e..c229dac6 100644 --- a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/conf/machine/picozed-zynq7.conf +++ b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/conf/machine/picozed-zynq7.conf @@ -18,6 +18,7 @@ MACHINE_FEATURES = "ext2 vfat usbhost usbgadget" PREFERRED_PROVIDER_virtual/bootloader = "u-boot" UBOOT_MACHINE = "zynq_picozed_config" SPL_BINARY ?= "spl/boot.bin" +UBOOT_ELF_zynq = "u-boot" EXTRA_IMAGEDEPENDS += " \ u-boot-zynq-uenv \ diff --git a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/conf/machine/zc1254-zynqmp.conf b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/conf/machine/zc1254-zynqmp.conf new file mode 100644 index 00000000..51dd2a9d --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/conf/machine/zc1254-zynqmp.conf @@ -0,0 +1,38 @@ +#@TYPE: Machine +#@NAME: zc1254-zynqmp +#@DESCRIPTION: Machine support for ZC1254 Evaluation Board. +# + +SOC_VARIANT ?= "dr" + +require conf/machine/include/tune-zynqmp.inc +require conf/machine/include/machine-xilinx-overrides.inc +require conf/machine/include/machine-xilinx-default.inc + +MACHINE_FEATURES = "rtc ext2 ext3 vfat usbhost" + +UBOOT_MACHINE = "xilinx_zynqmp_zc1254_revA_defconfig" +SPL_BINARY ?= "spl/boot.bin" + +SERIAL_CONSOLE ?= "115200 ttyPS0" + +SERIAL_CONSOLES_CHECK = "${SERIAL_CONSOLES}" + +KERNEL_DEVICETREE = "xilinx/zynqmp-zc1254-revA.dtb" + +PREFERRED_PROVIDER_virtual/kernel ?= "linux-xlnx" +PREFERRED_PROVIDER_virtual/bootloader ?= "u-boot-xlnx" + +PMU_FIRMWARE_IMAGE_NAME ?= "pmu-firmware-zynqmp-pmu" +PMU_FIRMWARE_DEPLOY_DIR ?= "${TOPDIR}/pmutmp/deploy/images/zynqmp-pmu" + +EXTRA_IMAGEDEPENDS += " \ + u-boot-zynq-uenv \ + arm-trusted-firmware \ + virtual/boot-bin \ + virtual/bootloader \ + " +IMAGE_BOOT_FILES += " \ + uEnv.txt \ + atf-uboot.ub \ + " diff --git a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/conf/machine/zc1275-zynqmp.conf b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/conf/machine/zc1275-zynqmp.conf new file mode 100644 index 00000000..1e5cd0d7 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/conf/machine/zc1275-zynqmp.conf @@ -0,0 +1,38 @@ +#@TYPE: Machine +#@NAME: zc1275-zynqmp +#@DESCRIPTION: Machine support for ZC1275 Evaluation Board. +# + +SOC_VARIANT ?= "dr" + +require conf/machine/include/tune-zynqmp.inc +require conf/machine/include/machine-xilinx-overrides.inc +require conf/machine/include/machine-xilinx-default.inc + +MACHINE_FEATURES = "rtc ext2 ext3 vfat usbhost" + +UBOOT_MACHINE = "xilinx_zynqmp_zc1275_revB_defconfig" +SPL_BINARY ?= "spl/boot.bin" + +SERIAL_CONSOLE ?= "115200 ttyPS0" + +SERIAL_CONSOLES_CHECK = "${SERIAL_CONSOLES}" + +KERNEL_DEVICETREE = "xilinx/zynqmp-zc1275-revB.dtb" + +PREFERRED_PROVIDER_virtual/kernel ?= "linux-xlnx" +PREFERRED_PROVIDER_virtual/bootloader ?= "u-boot-xlnx" + +PMU_FIRMWARE_IMAGE_NAME ?= "pmu-firmware-zynqmp-pmu" +PMU_FIRMWARE_DEPLOY_DIR ?= "${TOPDIR}/pmutmp/deploy/images/zynqmp-pmu" + +EXTRA_IMAGEDEPENDS += " \ + u-boot-zynq-uenv \ + arm-trusted-firmware \ + virtual/boot-bin \ + virtual/bootloader \ + " +IMAGE_BOOT_FILES += " \ + uEnv.txt \ + atf-uboot.ub \ + " diff --git a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/conf/machine/zcu102-zynqmp.conf b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/conf/machine/zcu102-zynqmp.conf index fba55a3e..281110d9 100644 --- a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/conf/machine/zcu102-zynqmp.conf +++ b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/conf/machine/zcu102-zynqmp.conf @@ -63,7 +63,7 @@ QB_OPT_APPEND_append_qemuboot-xilinx = " \ # Attach the rootfs disk image to the second SD interface of QEMU (which is SD0) QB_DEFAULT_FSTYPE_qemuboot-xilinx = "wic.qemu-sd" -QB_OPT_APPEND_append_qemuboot-xilinx = " -boot mode=3" +QB_OPT_APPEND_append_qemuboot-xilinx = " -boot mode=5" QB_ROOTFS_OPT_qemuboot-xilinx = " -drive if=sd,index=1,file=@ROOTFS@,format=raw" # PMU instance args diff --git a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/conf/machine/zcu111-zynqmp.conf b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/conf/machine/zcu111-zynqmp.conf new file mode 100644 index 00000000..068e4890 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/conf/machine/zcu111-zynqmp.conf @@ -0,0 +1,38 @@ +#@TYPE: Machine +#@NAME: zcu111-zynqmp +#@DESCRIPTION: Machine support for ZCU111 Evaluation Board. +# + +SOC_VARIANT ?= "dr" + +require conf/machine/include/tune-zynqmp.inc +require conf/machine/include/machine-xilinx-overrides.inc +require conf/machine/include/machine-xilinx-default.inc + +MACHINE_FEATURES = "rtc ext2 ext3 vfat usbhost" + +UBOOT_MACHINE = "xilinx_zynqmp_zcu111_revA_defconfig" +SPL_BINARY ?= "spl/boot.bin" + +SERIAL_CONSOLE ?= "115200 ttyPS0" + +SERIAL_CONSOLES_CHECK = "${SERIAL_CONSOLES}" + +KERNEL_DEVICETREE = "xilinx/zynqmp-zcu111-revA.dtb" + +PREFERRED_PROVIDER_virtual/kernel ?= "linux-xlnx" +PREFERRED_PROVIDER_virtual/bootloader ?= "u-boot-xlnx" + +PMU_FIRMWARE_IMAGE_NAME ?= "pmu-firmware-zynqmp-pmu" +PMU_FIRMWARE_DEPLOY_DIR ?= "${TOPDIR}/pmutmp/deploy/images/zynqmp-pmu" + +EXTRA_IMAGEDEPENDS += " \ + u-boot-zynq-uenv \ + arm-trusted-firmware \ + virtual/boot-bin \ + virtual/bootloader \ + " +IMAGE_BOOT_FILES += " \ + uEnv.txt \ + atf-uboot.ub \ + " diff --git a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/conf/machine/zcu1285-zynqmp.conf b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/conf/machine/zcu1285-zynqmp.conf new file mode 100644 index 00000000..04508540 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/conf/machine/zcu1285-zynqmp.conf @@ -0,0 +1,38 @@ +#@TYPE: Machine +#@NAME: zcu1285-zynqmp +#@DESCRIPTION: Machine support for ZCU1285 Evaluation Board. +# + +SOC_VARIANT ?= "dr" + +require conf/machine/include/tune-zynqmp.inc +require conf/machine/include/machine-xilinx-overrides.inc +require conf/machine/include/machine-xilinx-default.inc + +MACHINE_FEATURES = "rtc ext2 ext3 vfat usbhost" + +UBOOT_MACHINE = "xilinx_zynqmp_zc1275_revB_defconfig" +SPL_BINARY ?= "spl/boot.bin" + +SERIAL_CONSOLE ?= "115200 ttyPS0" + +SERIAL_CONSOLES_CHECK = "${SERIAL_CONSOLES}" + +KERNEL_DEVICETREE = "xilinx/zynqmp-zcu1285-revA.dtb" + +PREFERRED_PROVIDER_virtual/kernel ?= "linux-xlnx" +PREFERRED_PROVIDER_virtual/bootloader ?= "u-boot-xlnx" + +PMU_FIRMWARE_IMAGE_NAME ?= "pmu-firmware-zynqmp-pmu" +PMU_FIRMWARE_DEPLOY_DIR ?= "${TOPDIR}/pmutmp/deploy/images/zynqmp-pmu" + +EXTRA_IMAGEDEPENDS += " \ + u-boot-zynq-uenv \ + arm-trusted-firmware \ + virtual/boot-bin \ + virtual/bootloader \ + " +IMAGE_BOOT_FILES += " \ + uEnv.txt \ + atf-uboot.ub \ + " diff --git a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/conf/machine/zedboard-zynq7.conf b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/conf/machine/zedboard-zynq7.conf index 36c51b70..0b0a0de2 100644 --- a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/conf/machine/zedboard-zynq7.conf +++ b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/conf/machine/zedboard-zynq7.conf @@ -17,6 +17,7 @@ require conf/machine/include/machine-xilinx-default.inc # u-boot configuration UBOOT_MACHINE = "zynq_zed_config" SPL_BINARY ?= "spl/boot.bin" +UBOOT_ELF_zynq = "u-boot" EXTRA_IMAGEDEPENDS += " \ u-boot-zynq-uenv \ diff --git a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/conf/machine/zybo-linux-bd-zynq7.conf b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/conf/machine/zybo-linux-bd-zynq7.conf index ba355d56..87634fcc 100644 --- a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/conf/machine/zybo-linux-bd-zynq7.conf +++ b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/conf/machine/zybo-linux-bd-zynq7.conf @@ -22,6 +22,7 @@ MACHINE_ESSENTIAL_EXTRA_RDEPENDS += "device-tree" UBOOT_MACHINE = "zynq_zybo_config" SPL_BINARY ?= "spl/boot.bin" FORCE_PLATFORM_INIT = "1" +UBOOT_ELF_zynq = "u-boot" EXTRA_IMAGEDEPENDS += " \ u-boot-zynq-uenv \ diff --git a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/conf/machine/zybo-zynq7.conf b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/conf/machine/zybo-zynq7.conf index 049add9c..732fa943 100644 --- a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/conf/machine/zybo-zynq7.conf +++ b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/conf/machine/zybo-zynq7.conf @@ -18,6 +18,7 @@ MACHINE_FEATURES = "ext2 vfat usbhost usbgadget" PREFERRED_PROVIDER_virtual/bootloader = "u-boot" UBOOT_MACHINE = "zynq_zybo_config" SPL_BINARY ?= "spl/boot.bin" +UBOOT_ELF_zynq = "u-boot" EXTRA_IMAGEDEPENDS += " \ u-boot-zynq-uenv \ diff --git a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/conf/machine/zynq-generic.conf b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/conf/machine/zynq-generic.conf new file mode 100644 index 00000000..12fd1388 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/conf/machine/zynq-generic.conf @@ -0,0 +1,11 @@ +#@TYPE: Machine +#@NAME: +#@DESCRIPTION: zynq devices + +require conf/machine/include/tune-zynq.inc +require conf/machine/include/machine-xilinx-overrides.inc +require conf/machine/include/machine-xilinx-default.inc + +MACHINE_FEATURES = "rtc ext2 ext3 vfat usbhost usbgadget" + +EXTRA_IMAGEDEPENDS += "libyaml-native python3-cython-native python3-pyyaml-native" diff --git a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/conf/machine/zynqmp-generic.conf b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/conf/machine/zynqmp-generic.conf new file mode 100644 index 00000000..98385d25 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/conf/machine/zynqmp-generic.conf @@ -0,0 +1,15 @@ +#@TYPE: Machine +#@NAME: +#@DESCRIPTION: zynqmp devices + +require conf/machine/include/tune-zynqmp.inc +require conf/machine/include/machine-xilinx-overrides.inc +require conf/machine/include/machine-xilinx-default.inc +require conf/machine/include/machine-xilinx-qemu.inc + +MACHINE_FEATURES = "rtc ext2 ext3 vfat usbhost" + +PREFERRED_PROVIDER_qemu-helper-native = "qemu-xilinx-helper-native" + +EXTRA_IMAGEDEPENDS += "libyaml-native python3-cython-native python3-pyyaml-native" + diff --git a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-bsp/arm-trusted-firmware/arm-trusted-firmware.inc b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-bsp/arm-trusted-firmware/arm-trusted-firmware.inc index d64fad9c..785f915e 100644 --- a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-bsp/arm-trusted-firmware/arm-trusted-firmware.inc +++ b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-bsp/arm-trusted-firmware/arm-trusted-firmware.inc @@ -13,7 +13,7 @@ S = "${WORKDIR}/git" B = "${WORKDIR}/build" XILINX_RELEASE_VERSION ?= "" -ATF_VERSION ?= "1.4" +ATF_VERSION ?= "2.0" ATF_VERSION_EXTENSION ?= "-xilinx-${XILINX_RELEASE_VERSION}" PV = "${ATF_VERSION}${ATF_VERSION_EXTENSION}+git${SRCPV}" @@ -25,9 +25,12 @@ SRC_URI = "${REPO};${BRANCHARG}" ATF_BASE_NAME ?= "${PN}-${PKGE}-${PKGV}-${PKGR}-${DATETIME}" ATF_BASE_NAME[vardepsexclude] = "DATETIME" -COMPATIBLE_MACHINE = "zynqmp" -PLATFORM_zynqmp = "zynqmp" +COMPATIBLE_MACHINE ?= "^$" +COMPATIBLE_MACHINE_zynqmp = ".*" +COMPATIBLE_MACHINE_versal = ".*" +PLATFORM_zynqmp = "zynqmp" +PLATFORM_versal = "versal" # requires CROSS_COMPILE set by hand as there is no configure script export CROSS_COMPILE="${TARGET_PREFIX}" @@ -40,9 +43,13 @@ LD[unexport] = "1" ATF_CONSOLE ?= "" ATF_CONSOLE_zynqmp = "cadence" +ATF_CONSOLE_versal ?= "pl011" DEBUG ?= "" +DEBUG_versal ?= "1" + EXTRA_OEMAKE_zynqmp_append = "${@' ZYNQMP_CONSOLE=${ATF_CONSOLE}' if d.getVar('ATF_CONSOLE', True) != '' else ''}" +EXTRA_OEMAKE_append_versal = "${@' VERSAL_CONSOLE=${ATF_CONSOLE}' if d.getVar('ATF_CONSOLE', True) != '' else ''}" EXTRA_OEMAKE_append = " ${@bb.utils.contains('DEBUG', '1', ' DEBUG=${DEBUG}', '', d)}" OUTPUT_DIR = "${@bb.utils.contains('DEBUG', '1', '${B}/${PLATFORM}/debug', '${B}/${PLATFORM}/release', d)}" @@ -53,6 +60,9 @@ ATF_MEM_SIZE ?= "" EXTRA_OEMAKE_zynqmp_append = "${@' ZYNQMP_ATF_MEM_BASE=${ATF_MEM_BASE}' if d.getVar('ATF_MEM_BASE', True) != '' else ''}" EXTRA_OEMAKE_zynqmp_append = "${@' ZYNQMP_ATF_MEM_SIZE=${ATF_MEM_SIZE}' if d.getVar('ATF_MEM_SIZE', True) != '' else ''}" +EXTRA_OEMAKE_append_versal = "${@' VERSAL_ATF_MEM_BASE=${ATF_MEM_BASE}' if d.getVar('ATF_MEM_BASE', True) != '' else ''}" +EXTRA_OEMAKE_append_versal = "${@' VERSAL_ATF_MEM_SIZE=${ATF_MEM_SIZE}' if d.getVar('ATF_MEM_SIZE', True) != '' else ''}" + do_configure() { oe_runmake clean -C ${S} BUILD_BASE=${B} PLAT=${PLATFORM} } diff --git a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-bsp/arm-trusted-firmware/arm-trusted-firmware_2018.3.bb b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-bsp/arm-trusted-firmware/arm-trusted-firmware_2018.3.bb deleted file mode 100644 index 8c8a5d00..00000000 --- a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-bsp/arm-trusted-firmware/arm-trusted-firmware_2018.3.bb +++ /dev/null @@ -1,7 +0,0 @@ -ATF_VERSION = "1.5" -XILINX_RELEASE_VERSION = "v2018.3" -BRANCH ?= "master" -SRCREV ?= "08560c36ea5b6f48b962cb4bd9a79b35bb3d95ce" - -include arm-trusted-firmware.inc - diff --git a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-bsp/arm-trusted-firmware/arm-trusted-firmware_2019.1.bb b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-bsp/arm-trusted-firmware/arm-trusted-firmware_2019.1.bb new file mode 100644 index 00000000..64cbddc4 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-bsp/arm-trusted-firmware/arm-trusted-firmware_2019.1.bb @@ -0,0 +1,7 @@ +ATF_VERSION = "2.0" +XILINX_RELEASE_VERSION = "v2019.1" +BRANCH ?= "master" +SRCREV ?= "80d1c79007fda42d4cc0be31b185a1da5799cd4d" + +include arm-trusted-firmware.inc + diff --git a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-bsp/reference-design/kc705-bitstream_2018.3.bb b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-bsp/reference-design/kc705-bitstream_2019.1.bb similarity index 100% rename from Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-bsp/reference-design/kc705-bitstream_2018.3.bb rename to Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-bsp/reference-design/kc705-bitstream_2019.1.bb diff --git a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-bsp/u-boot/u-boot-xlnx.inc b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-bsp/u-boot/u-boot-xlnx.inc index 689249f2..737f5f91 100644 --- a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-bsp/u-boot/u-boot-xlnx.inc +++ b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-bsp/u-boot/u-boot-xlnx.inc @@ -1,6 +1,6 @@ require recipes-bsp/u-boot/u-boot.inc -DEPENDS += "bc-native dtc-native" +DEPENDS += "bc-native dtc-native bison-native" XILINX_RELEASE_VERSION ?= "" UBOOT_VERSION_EXTENSION ?= "-xilinx-${XILINX_RELEASE_VERSION}" diff --git a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-bsp/u-boot/u-boot-xlnx/v2018.3/microblaze-kc705-Convert-microblaze-generic-to-k.patch b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-bsp/u-boot/u-boot-xlnx/v2019.1/microblaze-kc705-Convert-microblaze-generic-to-k.patch similarity index 92% rename from Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-bsp/u-boot/u-boot-xlnx/v2018.3/microblaze-kc705-Convert-microblaze-generic-to-k.patch rename to Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-bsp/u-boot/u-boot-xlnx/v2019.1/microblaze-kc705-Convert-microblaze-generic-to-k.patch index ce8771f8..7e25f87c 100644 --- a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-bsp/u-boot/u-boot-xlnx/v2018.3/microblaze-kc705-Convert-microblaze-generic-to-k.patch +++ b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-bsp/u-boot/u-boot-xlnx/v2019.1/microblaze-kc705-Convert-microblaze-generic-to-k.patch @@ -1,26 +1,25 @@ -From 539838b4fe4afecd9b6874c5ac397ab7f5b343d4 Mon Sep 17 00:00:00 2001 -From: Manjukumar Matha -Date: Tue, 10 Apr 2018 18:34:45 -0700 +From afe880f500cff7a9486379c5ad7a4f3379015a62 Mon Sep 17 00:00:00 2001 +From: Jaewon Lee +Date: Mon, 14 Jan 2019 11:30:56 -0800 Subject: [PATCH] kc705-microblazeel: Convert microblaze-generic to kc705-microblazeel This is an update to earlier kc705-trd patch done by Nathan Rossi. -Starting from v2016.1, KC705 will no longer refer to deprecated KC705 -TRD application. Change the microblaze-generic board to match the kc705-microblazeel. This patch is not intended for upstream and serves as an intermediate solution until OF support in upstream u-boot allows for easy support for custom microblaze boards. +Signed-off-by: Jaewon Lee Signed-off-by: Manjukumar Matha Upstream-Status: Not-Upstreamable [meta-xilinx/kc705 specific] --- arch/microblaze/dts/microblaze-generic.dts | 590 ++++++++++++++++++++++++++++- - board/xilinx/microblaze-generic/config.mk | 30 +- - configs/microblaze-generic_defconfig | 57 ++- - include/configs/microblaze-generic.h | 396 ++++++++----------- - 4 files changed, 782 insertions(+), 291 deletions(-) + board/xilinx/microblaze-generic/config.mk | 28 +- + configs/microblaze-generic_defconfig | 75 ++-- + include/configs/microblaze-generic.h | 348 ++++++++--------- + 4 files changed, 782 insertions(+), 259 deletions(-) diff --git a/arch/microblaze/dts/microblaze-generic.dts b/arch/microblaze/dts/microblaze-generic.dts index 08a1396..f8e616b 100644 @@ -621,17 +620,15 @@ index 08a1396..f8e616b 100644 +}; + diff --git a/board/xilinx/microblaze-generic/config.mk b/board/xilinx/microblaze-generic/config.mk -index 1dee2d6..cb75fde 100644 +index a953977..cb75fde 100644 --- a/board/xilinx/microblaze-generic/config.mk +++ b/board/xilinx/microblaze-generic/config.mk -@@ -1,20 +1,10 @@ +@@ -1,18 +1,10 @@ +-# SPDX-License-Identifier: GPL-2.0+ -# -# (C) Copyright 2007 - 2016 Michal Simek -# -# Michal SIMEK --# --# SPDX-License-Identifier: GPL-2.0+ --# - -CPU_VER := $(shell echo $(CONFIG_XILINX_MICROBLAZE0_HW_VER)) - @@ -653,24 +650,27 @@ index 1dee2d6..cb75fde 100644 +PLATFORM_CPPFLAGS += -mxl-pattern-compare +PLATFORM_CPPFLAGS += -mxl-multiply-high +PLATFORM_CPPFLAGS += -mno-xl-soft-mul -+PLATFORM_CPPFLAGS += -mcpu=v10.0 ++PLATFORM_CPPFLAGS += -mcpu=v11.0 +PLATFORM_CPPFLAGS += -fgnu89-inline diff --git a/configs/microblaze-generic_defconfig b/configs/microblaze-generic_defconfig -index 08d99f2..bac6939 100644 +index 02e62e2..8d64be4 100644 --- a/configs/microblaze-generic_defconfig +++ b/configs/microblaze-generic_defconfig -@@ -1,5 +1,4 @@ +@@ -1,73 +1,58 @@ CONFIG_MICROBLAZE=y -CONFIG_SYS_TEXT_BASE=0x29000000 CONFIG_SPL_LIBCOMMON_SUPPORT=y CONFIG_SPL_LIBGENERIC_SUPPORT=y CONFIG_SPL_SERIAL_SUPPORT=y -@@ -8,50 +7,50 @@ CONFIG_XILINX_MICROBLAZE0_USE_MSR_INSTR=1 +-CONFIG_SPL=y + CONFIG_TARGET_MICROBLAZE_GENERIC=y + CONFIG_XILINX_MICROBLAZE0_USE_MSR_INSTR=1 CONFIG_XILINX_MICROBLAZE0_USE_BARREL=1 CONFIG_XILINX_MICROBLAZE0_USE_DIV=1 CONFIG_XILINX_MICROBLAZE0_USE_HW_MUL=1 +-CONFIG_NR_DRAM_BANKS=1 +CONFIG_SYS_TEXT_BASE=0x80400000 - CONFIG_DEFAULT_DEVICE_TREE="microblaze-generic" ++CONFIG_DEFAULT_DEVICE_TREE="microblaze-generic" CONFIG_FIT=y CONFIG_FIT_VERBOSE=y -CONFIG_BOOTDELAY=-1 @@ -678,13 +678,14 @@ index 08d99f2..bac6939 100644 -CONFIG_BOOTARGS="root=romfs" +CONFIG_BOOTDELAY=4 CONFIG_SYS_CONSOLE_IS_IN_ENV=y --CONFIG_SPL=y +-CONFIG_DISPLAY_BOARDINFO=y -CONFIG_SPL_BOARD_INIT=y -CONFIG_SPL_SYS_MALLOC_SIMPLE=y CONFIG_SPL_NOR_SUPPORT=y CONFIG_SPL_OS_BOOT=y CONFIG_SYS_OS_BASE=0x2c060000 CONFIG_HUSH_PARSER=y +-# CONFIG_AUTO_COMPLETE is not set -CONFIG_SYS_PROMPT="U-Boot-mONStR> " -CONFIG_CMD_IMLS=y -CONFIG_CMD_SPL=y @@ -693,50 +694,65 @@ index 08d99f2..bac6939 100644 -CONFIG_CMD_GPIO=y CONFIG_CMD_SAVES=y # CONFIG_CMD_SETEXPR is not set --CONFIG_CMD_TFTPPUT=y +CONFIG_SYS_ENET=y +CONFIG_NET=y +CONFIG_NETDEVICES=y +CONFIG_CMD_NET=y CONFIG_CMD_DHCP=y +-CONFIG_CMD_TFTPPUT=y +CONFIG_CMD_NFS=y CONFIG_CMD_MII=y CONFIG_CMD_PING=y CONFIG_CMD_JFFS2=y -CONFIG_SPL_OF_CONTROL=y CONFIG_OF_EMBED=y --CONFIG_ENV_IS_IN_FLASH=y +-CONFIG_DEFAULT_DEVICE_TREE="microblaze-generic" -CONFIG_NETCONSOLE=y -CONFIG_SPL_DM=y --CONFIG_MTD_NOR_FLASH=y --CONFIG_PHY_ATHEROS=y --CONFIG_PHY_BROADCOM=y --CONFIG_PHY_DAVICOM=y --CONFIG_PHY_LXT=y --CONFIG_PHY_MARVELL=y --CONFIG_PHY_MICREL=y --CONFIG_PHY_MICREL_KSZ90X1=y --CONFIG_PHY_NATSEMI=y --CONFIG_PHY_REALTEK=y --CONFIG_PHY_VITESSE=y - CONFIG_DM_ETH=y ++CONFIG_DM_ETH=y +CONFIG_SYS_MALLOC_F=y +CONFIG_SYS_GENERIC_BOARD=y - CONFIG_XILINX_AXIEMAC=y --CONFIG_XILINX_EMACLITE=y - CONFIG_SYS_NS16550=y --CONFIG_XILINX_UARTLITE=y ++CONFIG_XILINX_AXIEMAC=y ++CONFIG_SYS_NS16550=y +CONFIG_CMD_FLASH=y +CONFIG_MTD_NOR_FLASH=y +CONFIG_CMD_IMLS=y +CONFIG_CMD_GPIO=y + CONFIG_DM_GPIO=y + CONFIG_XILINX_GPIO=y +-CONFIG_LED=y +-CONFIG_LED_GPIO=y +-CONFIG_MTD_NOR_FLASH=y +-CONFIG_MTD_DEVICE=y +-CONFIG_FLASH_CFI_DRIVER=y +-CONFIG_SYS_FLASH_USE_BUFFER_WRITE=y +-CONFIG_FLASH_CFI_MTD=y +-CONFIG_SYS_FLASH_PROTECTION=y +-CONFIG_SYS_FLASH_CFI=y +-CONFIG_PHY_ATHEROS=y +-CONFIG_PHY_BROADCOM=y +-CONFIG_PHY_DAVICOM=y +-CONFIG_PHY_LXT=y +-CONFIG_PHY_MARVELL=y +CONFIG_CMD_TFTPPUT=y +CONFIG_NETCONSOLE=y +CONFIG_XILINX_FSL_LINKS=0 +CONFIG_PHY_GIGE=y +CONFIG_ENV_IS_IN_FLASH=y -+CONFIG_PHY_MICREL=y -+CONFIG_PHY_MICREL_KSZ90X1=y + CONFIG_PHY_MICREL=y + CONFIG_PHY_MICREL_KSZ90X1=y +-CONFIG_PHY_NATSEMI=y +-CONFIG_PHY_REALTEK=y +-CONFIG_PHY_VITESSE=y +-CONFIG_DM_ETH=y +-CONFIG_XILINX_AXIEMAC=y +-CONFIG_XILINX_EMACLITE=y +-CONFIG_SYS_NS16550=y +-CONFIG_XILINX_UARTLITE=y +-CONFIG_SYSRESET_GPIO=y +-CONFIG_SYSRESET_MICROBLAZE=y +-CONFIG_WDT=y +-CONFIG_XILINX_TB_WATCHDOG=y +CONFIG_SPL_DM_SERIAL=y +CONFIG_SPL_OF_LIBFDT=y +CONFIG_PHY_XILINX=y @@ -745,16 +761,15 @@ index 08d99f2..bac6939 100644 +# CONFIG_BOOTARGS is not set +# CONFIG_USE_BOOTARGS is not set diff --git a/include/configs/microblaze-generic.h b/include/configs/microblaze-generic.h -index 16481cb..1377c5e 100644 +index ba0952c..fd1da2b 100644 --- a/include/configs/microblaze-generic.h +++ b/include/configs/microblaze-generic.h -@@ -1,254 +1,178 @@ +@@ -1,205 +1,173 @@ +-/* SPDX-License-Identifier: GPL-2.0+ */ -/* - * (C) Copyright 2007-2010 Michal Simek - * - * Michal SIMEK -- * -- * SPDX-License-Identifier: GPL-2.0+ - */ - #ifndef __CONFIG_H @@ -771,17 +786,96 @@ index 16481cb..1377c5e 100644 -#undef SPIFLASH -#undef RAMENV /* hold environment in flash */ -#else --#ifdef XILINX_SPI_FLASH_BASEADDR --#undef FLASH --#define SPIFLASH --#undef RAMENV /* hold environment in flash */ --#else -#undef FLASH -#undef SPIFLASH -#define RAMENV /* hold environment in RAM */ -#endif --#endif -- ++#define CONFIG_SYS_BAUDRATE_TABLE { 300, 600, 1200, 2400, 4800, 9600, 19200, 38400, 57600, 115200, 230400 } ++ ++/* processor - microblaze_0 */ ++#define XILINX_USE_MSR_INSTR 1 ++#define XILINX_USE_ICACHE 1 ++#define XILINX_USE_DCACHE 1 ++#define XILINX_DCACHE_BYTE_SIZE 16384 ++#define XILINX_PVR 2 ++#define MICROBLAZE_V5 ++#define CONFIG_CMD_IRQ ++#define CONFIG_DCACHE ++#define CONFIG_ICACHE ++ ++/* main_memory - ddr3_sdram */ ++ ++ ++/* uart - rs232_uart */ ++#define CONFIG_SYS_NS16550_COM1 ((XILINX_UART16550_BASEADDR & ~0xF) + 0x1000) ++#define CONFIG_SYS_NS16550_REG_SIZE -4 ++#define CONSOLE_ARG "console=console=ttyS0,115200\0" ++#define CONFIG_SYS_NS16550_SERIAL ++#define CONFIG_CONS_INDEX 1 ++#define ESERIAL0 "eserial0=setenv stdout eserial0;setenv stdin eserial0\0" ++#define SERIAL_MULTI "serial=setenv stdout serial;setenv stdin serial\0" ++#define CONFIG_SYS_NS16550_CLK 200000000 ++#define CONFIG_BAUDRATE 115200 ++ ++/* ethernet - axi_ethernet */ ++#define CONFIG_PHY_XILINX ++#define CONFIG_MII ++#define CONFIG_PHY_MARVELL ++#define CONFIG_PHY_NATSEMI ++#define CONFIG_NET_MULTI ++#define CONFIG_PHY_REALTEK ++#define CONFIG_NETCONSOLE 1 ++#define CONFIG_SERVERIP 172.25.229.115 ++#define CONFIG_IPADDR ++ ++/* nor_flash - linear_flash */ ++#define CONFIG_SYS_FLASH_BASE 0x60000000 ++#define CONFIG_FLASH_END 0x68000000 ++#define CONFIG_SYS_MAX_FLASH_SECT 2048 ++#define CONFIG_SYS_FLASH_PROTECTION ++#define CONFIG_SYS_FLASH_EMPTY_INFO ++#define CONFIG_SYS_FLASH_CFI ++#define CONFIG_FLASH_CFI_DRIVER ++#define CONFIG_SYS_FLASH_USE_BUFFER_WRITE ++#define CONFIG_SYS_MAX_FLASH_BANKS 1 ++ ++/* timer - axi_timer_0 */ ++ ++/* intc - microblaze_0_axi_intc */ ++ ++/* FPGA */ ++ ++/* Memory testing handling */ ++#define CONFIG_SYS_MEMTEST_START 0x80000000 ++#define CONFIG_SYS_MEMTEST_END (0x80000000 + 0x1000) ++#define CONFIG_SYS_LOAD_ADDR 0x80000000 /* default load address */ ++ ++/* global pointer options */ ++#define CONFIG_SYS_GBL_DATA_OFFSET (0x40000000 - GENERATED_GBL_DATA_SIZE) ++ ++/* Size of malloc() pool */ ++#define SIZE 0x100000 ++#define CONFIG_SYS_MALLOC_LEN SIZE ++#define CONFIG_SYS_MONITOR_LEN SIZE ++#define CONFIG_SYS_MONITOR_BASE (0x80000000 + CONFIG_SYS_GBL_DATA_OFFSET - CONFIG_SYS_MONITOR_LEN - GENERATED_BD_INFO_SIZE) ++#define CONFIG_SYS_MALLOC_BASE (CONFIG_SYS_MONITOR_BASE - CONFIG_SYS_MALLOC_LEN) ++ ++/* stack */ ++#define CONFIG_SYS_INIT_SP_OFFSET (CONFIG_SYS_TEXT_BASE - CONFIG_SYS_MALLOC_F_LEN) ++ ++/* No of_control support yet*/ ++ ++/* BOOTP options */ ++#define CONFIG_BOOTP_SERVERIP ++#define CONFIG_BOOTP_BOOTFILESIZE ++#define CONFIG_BOOTP_BOOTPATH ++#define CONFIG_BOOTP_GATEWAY ++#define CONFIG_BOOTP_HOSTNAME ++#define CONFIG_BOOTP_MAY_FAIL ++#define CONFIG_BOOTP_DNS ++#define CONFIG_BOOTP_SUBNETMASK ++#define CONFIG_BOOTP_PXE + -/* uart */ -/* The following table includes the supported baudrates */ -# define CONFIG_SYS_BAUDRATE_TABLE \ @@ -790,22 +884,6 @@ index 16481cb..1377c5e 100644 -/* setting reset address */ -/*#define CONFIG_SYS_RESET_ADDRESS CONFIG_SYS_TEXT_BASE*/ - --/* gpio */ --#ifdef XILINX_GPIO_BASEADDR --# define CONFIG_XILINX_GPIO --# define CONFIG_SYS_GPIO_0_ADDR XILINX_GPIO_BASEADDR --#endif -- --/* watchdog */ --#if defined(XILINX_WATCHDOG_BASEADDR) && defined(XILINX_WATCHDOG_IRQ) --# define CONFIG_WATCHDOG_BASEADDR XILINX_WATCHDOG_BASEADDR --# define CONFIG_WATCHDOG_IRQ XILINX_WATCHDOG_IRQ --# ifndef CONFIG_SPL_BUILD --# define CONFIG_HW_WATCHDOG --# define CONFIG_XILINX_TB_WATCHDOG --# endif --#endif -- -#define CONFIG_SYS_MALLOC_LEN 0xC0000 - -/* Stack location before relocation */ @@ -833,8 +911,6 @@ index 16481cb..1377c5e 100644 -#ifdef FLASH -# define CONFIG_SYS_FLASH_BASE XILINX_FLASH_START -# define CONFIG_SYS_FLASH_SIZE XILINX_FLASH_SIZE --# define CONFIG_SYS_FLASH_CFI 1 --# define CONFIG_FLASH_CFI_DRIVER 1 -/* ?empty sector */ -# define CONFIG_SYS_FLASH_EMPTY_INFO 1 -/* max number of memory banks */ @@ -842,9 +918,7 @@ index 16481cb..1377c5e 100644 -/* max number of sectors on one chip */ -# define CONFIG_SYS_MAX_FLASH_SECT 512 -/* hardware flash protection */ --# define CONFIG_SYS_FLASH_PROTECTION -/* use buffered writes (20x faster) */ --# define CONFIG_SYS_FLASH_USE_BUFFER_WRITE 1 -# ifdef RAMENV -# define CONFIG_ENV_SIZE 0x1000 -# define CONFIG_ENV_ADDR (CONFIG_SYS_MONITOR_BASE - CONFIG_ENV_SIZE) @@ -859,8 +933,6 @@ index 16481cb..1377c5e 100644 -#else /* !FLASH */ - -#ifdef SPIFLASH --# define CONFIG_SYS_SPI_BASE XILINX_SPI_FLASH_BASEADDR --# define CONFIG_SPI 1 -# define CONFIG_SF_DEFAULT_MODE SPI_MODE_3 -# define CONFIG_SF_DEFAULT_SPEED XILINX_SPI_FLASH_MAX_FREQ -# define CONFIG_SF_DEFAULT_CS XILINX_SPI_FLASH_CS @@ -892,139 +964,53 @@ index 16481cb..1377c5e 100644 -#else -# undef CONFIG_ICACHE -#endif -- ++/*Command line configuration.*/ ++#define CONFIG_CMDLINE_EDITING ++#define CONFIG_AUTO_COMPLETE + -#if defined(XILINX_USE_DCACHE) -# define CONFIG_DCACHE -#else -# undef CONFIG_DCACHE -#endif -- ++/* Miscellaneous configurable options */ ++#define CONFIG_SYS_CBSIZE 2048/* Console I/O Buffer Size */ ++#define CONFIG_SYS_PBSIZE (CONFIG_SYS_CBSIZE + sizeof(CONFIG_SYS_PROMPT) + 16) ++#define CONFIG_SYS_BARGSIZE CONFIG_SYS_CBSIZE + -#ifndef XILINX_DCACHE_BYTE_SIZE -#define XILINX_DCACHE_BYTE_SIZE 32768 -#endif -- + -/* - * BOOTP options - */ -+#define CONFIG_SYS_BAUDRATE_TABLE { 300, 600, 1200, 2400, 4800, 9600, 19200, 38400, 57600, 115200, 230400 } -+ -+/* processor - microblaze_0 */ -+#define XILINX_USE_MSR_INSTR 1 -+#define XILINX_USE_ICACHE 1 -+#define XILINX_USE_DCACHE 1 -+#define XILINX_DCACHE_BYTE_SIZE 16384 -+#define XILINX_PVR 2 -+#define MICROBLAZE_V5 -+#define CONFIG_CMD_IRQ -+#define CONFIG_DCACHE -+#define CONFIG_ICACHE -+ -+/* main_memory - ddr3_sdram */ -+ -+ -+/* uart - rs232_uart */ -+#define CONFIG_SYS_NS16550_COM1 ((XILINX_UART16550_BASEADDR & ~0xF) + 0x1000) -+#define CONFIG_SYS_NS16550_REG_SIZE -4 -+#define CONSOLE_ARG "console=console=ttyS0,115200\0" -+#define CONFIG_SYS_NS16550_SERIAL -+#define CONFIG_CONS_INDEX 1 -+#define ESERIAL0 "eserial0=setenv stdout eserial0;setenv stdin eserial0\0" -+#define SERIAL_MULTI "serial=setenv stdout serial;setenv stdin serial\0" -+#define CONFIG_SYS_NS16550_CLK 200000000 -+#define CONFIG_BAUDRATE 115200 -+ -+/* ethernet - axi_ethernet */ -+#define CONFIG_PHY_XILINX -+#define CONFIG_MII -+#define CONFIG_PHY_MARVELL -+#define CONFIG_PHY_NATSEMI -+#define CONFIG_NET_MULTI -+#define CONFIG_PHY_REALTEK -+#define CONFIG_NETCONSOLE 1 -+#define CONFIG_SERVERIP 172.25.229.115 -+#define CONFIG_IPADDR -+ -+/* nor_flash - linear_flash */ -+#define CONFIG_SYS_FLASH_BASE 0x60000000 -+#define CONFIG_FLASH_END 0x68000000 -+#define CONFIG_SYS_MAX_FLASH_SECT 2048 -+#define CONFIG_SYS_FLASH_PROTECTION -+#define CONFIG_SYS_FLASH_EMPTY_INFO -+#define CONFIG_SYS_FLASH_CFI -+#define CONFIG_FLASH_CFI_DRIVER -+#define CONFIG_SYS_FLASH_USE_BUFFER_WRITE -+#define CONFIG_SYS_MAX_FLASH_BANKS 1 -+ -+/* timer - axi_timer_0 */ -+ -+/* gpio - reset_gpio */ -+#define XILINX_GPIO_BASEADDR 0x40000000 -+#define CONFIG_SYS_GPIO_0_ADDR 0x40000000 -+#define CONFIG_XILINX_GPIO -+ -+/* intc - microblaze_0_axi_intc */ -+ -+/* FPGA */ -+ -+/* Memory testing handling */ -+#define CONFIG_SYS_MEMTEST_START 0x80000000 -+#define CONFIG_SYS_MEMTEST_END (0x80000000 + 0x1000) -+#define CONFIG_SYS_LOAD_ADDR 0x80000000 /* default load address */ -+ -+/* global pointer options */ -+#define CONFIG_SYS_GBL_DATA_OFFSET (0x40000000 - GENERATED_GBL_DATA_SIZE) -+ -+/* Size of malloc() pool */ -+#define SIZE 0x100000 -+#define CONFIG_SYS_MALLOC_LEN SIZE -+#define CONFIG_SYS_MONITOR_LEN SIZE -+#define CONFIG_SYS_MONITOR_BASE (0x80000000 + CONFIG_SYS_GBL_DATA_OFFSET - CONFIG_SYS_MONITOR_LEN - GENERATED_BD_INFO_SIZE) -+#define CONFIG_SYS_MALLOC_BASE (CONFIG_SYS_MONITOR_BASE - CONFIG_SYS_MALLOC_LEN) -+ -+/* stack */ -+#define CONFIG_SYS_INIT_SP_OFFSET (CONFIG_SYS_TEXT_BASE - CONFIG_SYS_MALLOC_F_LEN) -+ -+/* No of_control support yet*/ -+ -+/* BOOTP options */ -+#define CONFIG_BOOTP_SERVERIP - #define CONFIG_BOOTP_BOOTFILESIZE - #define CONFIG_BOOTP_BOOTPATH - #define CONFIG_BOOTP_GATEWAY - #define CONFIG_BOOTP_HOSTNAME -+#define CONFIG_BOOTP_MAY_FAIL -+#define CONFIG_BOOTP_DNS -+#define CONFIG_BOOTP_SUBNETMASK -+#define CONFIG_BOOTP_PXE +-#define CONFIG_BOOTP_BOOTFILESIZE ++/* Use the HUSH parser */ ++#define CONFIG_SYS_PROMPT_HUSH_PS2 "> " --#if defined(CONFIG_CMD_JFFS2) --# define CONFIG_MTD_PARTITIONS --#endif -- --#if defined(CONFIG_CMD_UBI) --# define CONFIG_MTD_PARTITIONS --#endif -- -#if defined(CONFIG_MTD_PARTITIONS) -/* MTD partitions */ --#define CONFIG_MTD_DEVICE /* needed for mtdparts commands */ --#define CONFIG_FLASH_CFI_MTD -- ++#define CONFIG_ENV_VARS_UBOOT_CONFIG ++#define CONFIG_ENV_OVERWRITE /* Allow to overwrite the u-boot environment variables */ + -/* default mtd partition table */ -#endif -- ++#define CONFIG_LMB + -/* size of console buffer */ -#define CONFIG_SYS_CBSIZE 512 -/* max number of command args */ -#define CONFIG_SYS_MAXARGS 15 --#define CONFIG_SYS_LONGHELP -/* default load address */ -#define CONFIG_SYS_LOAD_ADDR 0 -- --#define CONFIG_HOSTNAME XILINX_BOARD_NAME ++/* FDT support */ ++#define CONFIG_DISPLAY_BOARDINFO_LATE + +-#define CONFIG_HOSTNAME "microblaze-generic" -#define CONFIG_BOOTCOMMAND "base 0;tftp 11000000 image.img;bootm" -- --/* architecture dependent code */ + + /* architecture dependent code */ -#define CONFIG_SYS_USR_EXCEP /* user exception */ - -#define CONFIG_PREBOOT "echo U-BOOT for ${hostname};setenv preboot;echo" @@ -1041,66 +1027,8 @@ index 16481cb..1377c5e 100644 - "setenv stdin serial\0" -#endif - -+/*Command line configuration.*/ - #define CONFIG_CMDLINE_EDITING -+#define CONFIG_AUTO_COMPLETE - -/* Enable flat device tree support */ -#define CONFIG_LMB 1 -- --#if defined(CONFIG_XILINX_AXIEMAC) --# define CONFIG_MII 1 --# define CONFIG_SYS_FAULT_ECHO_LINK_DOWN 1 --#else --# undef CONFIG_MII --#endif -- --/* SPL part */ --#define CONFIG_SPL_FRAMEWORK -+/* Miscellaneous configurable options */ -+#define CONFIG_SYS_CBSIZE 2048/* Console I/O Buffer Size */ -+#define CONFIG_SYS_PBSIZE (CONFIG_SYS_CBSIZE + sizeof(CONFIG_SYS_PROMPT) + 16) -+#define CONFIG_SYS_BARGSIZE CONFIG_SYS_CBSIZE - --#ifdef CONFIG_SYS_FLASH_BASE --# define CONFIG_SYS_UBOOT_BASE CONFIG_SYS_FLASH_BASE --#endif -- --/* for booting directly linux */ - --#define CONFIG_SYS_FDT_BASE (CONFIG_SYS_FLASH_BASE + \ -- 0x40000) --#define CONFIG_SYS_FDT_SIZE (16<<10) --#define CONFIG_SYS_SPL_ARGS_ADDR (CONFIG_SYS_TEXT_BASE + \ -- 0x1000000) -+/* Use the HUSH parser */ -+#define CONFIG_SYS_PROMPT_HUSH_PS2 "> " - --/* SP location before relocation, must use scratch RAM */ --/* BRAM start */ --#define CONFIG_SYS_INIT_RAM_ADDR 0x0 --/* BRAM size - will be generated */ --#define CONFIG_SYS_INIT_RAM_SIZE 0x100000 -+#define CONFIG_ENV_VARS_UBOOT_CONFIG -+#define CONFIG_ENV_OVERWRITE /* Allow to overwrite the u-boot environment variables */ - --# define CONFIG_SPL_STACK_ADDR (CONFIG_SYS_INIT_RAM_ADDR + \ -- CONFIG_SYS_INIT_RAM_SIZE - \ -- CONFIG_SYS_MALLOC_F_LEN) -+#define CONFIG_LMB - --/* Just for sure that there is a space for stack */ --#define CONFIG_SPL_STACK_SIZE 0x100 -+/* FDT support */ -+#define CONFIG_DISPLAY_BOARDINFO_LATE - --#define CONFIG_SYS_UBOOT_START CONFIG_SYS_TEXT_BASE - --#define CONFIG_SPL_MAX_FOOTPRINT (CONFIG_SYS_INIT_RAM_SIZE - \ -- CONFIG_SYS_INIT_RAM_ADDR - \ -- CONFIG_SYS_MALLOC_F_LEN - \ -- CONFIG_SPL_STACK_SIZE) -+/* architecture dependent code */ +#define CONFIG_SYS_USR_EXCEP /* user exception */ +#define CONFIG_SYS_HZ 1000 + @@ -1161,8 +1089,45 @@ index 16481cb..1377c5e 100644 +/* BOOTCOMMAND */ +#define CONFIG_BOOTCOMMAND "run default_bootcmd" +-#if defined(CONFIG_XILINX_AXIEMAC) +-# define CONFIG_SYS_FAULT_ECHO_LINK_DOWN 1 + #endif +- +-/* SPL part */ +- +-#ifdef CONFIG_SYS_FLASH_BASE +-# define CONFIG_SYS_UBOOT_BASE CONFIG_SYS_FLASH_BASE +-#endif +- +-/* for booting directly linux */ +- +-#define CONFIG_SYS_FDT_BASE (CONFIG_SYS_FLASH_BASE + \ +- 0x40000) +-#define CONFIG_SYS_FDT_SIZE (16 << 10) +-#define CONFIG_SYS_SPL_ARGS_ADDR (CONFIG_SYS_TEXT_BASE + \ +- 0x1000000) +- +-/* SP location before relocation, must use scratch RAM */ +-/* BRAM start */ +-#define CONFIG_SYS_INIT_RAM_ADDR 0x0 +-/* BRAM size - will be generated */ +-#define CONFIG_SYS_INIT_RAM_SIZE 0x100000 +- +-# define CONFIG_SPL_STACK_ADDR (CONFIG_SYS_INIT_RAM_ADDR + \ +- CONFIG_SYS_INIT_RAM_SIZE - \ +- CONFIG_SYS_MALLOC_F_LEN) +- +-/* Just for sure that there is a space for stack */ +-#define CONFIG_SPL_STACK_SIZE 0x100 +- +-#define CONFIG_SYS_UBOOT_START CONFIG_SYS_TEXT_BASE +- +-#define CONFIG_SPL_MAX_FOOTPRINT (CONFIG_SYS_INIT_RAM_SIZE - \ +- CONFIG_SYS_INIT_RAM_ADDR - \ +- CONFIG_SYS_MALLOC_F_LEN - \ +- CONFIG_SPL_STACK_SIZE) +- -#endif /* __CONFIG_H */ -+#endif -- -2.7.4 +2.7.5 diff --git a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-bsp/u-boot/u-boot-xlnx_2018.3.bb b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-bsp/u-boot/u-boot-xlnx_2018.3.bb deleted file mode 100644 index c87672e9..00000000 --- a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-bsp/u-boot/u-boot-xlnx_2018.3.bb +++ /dev/null @@ -1,32 +0,0 @@ -UBOOT_VERSION = "v2018.01" -XILINX_RELEASE_VERSION = "v2018.3" - -UBRANCH ?= "master" - -SRCREV ?= "d8fc4b3b70bccf1577dab69f6ddfd4ada9a93bac" - -include u-boot-xlnx.inc -include u-boot-spl-zynq-init.inc - -SRC_URI_append_kc705-microblazeel = " file://microblaze-kc705-Convert-microblaze-generic-to-k.patch" - -LICENSE = "GPLv2+" -LIC_FILES_CHKSUM = "file://README;beginline=1;endline=6;md5=157ab8408beab40cd8ce1dc69f702a6c" - -# u-boot-xlnx has support for these -HAS_PLATFORM_INIT ?= " \ - zynq_microzed_config \ - zynq_zed_config \ - zynq_zc702_config \ - zynq_zc706_config \ - zynq_zybo_config \ - xilinx_zynqmp_zcu102_rev1_0_config \ - xilinx_zynqmp_zcu106_revA_config \ - xilinx_zynqmp_zcu104_revC_config \ - xilinx_zynqmp_zcu100_revC_config \ - xilinx_zynqmp_zcu111_revA_config \ - xilinx_zynqmp_zc1275_revA_config \ - xilinx_zynqmp_zc1275_revB_config \ - xilinx_zynqmp_zc1254_revA_config \ - " - diff --git a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-bsp/u-boot/u-boot-xlnx_2019.1.bb b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-bsp/u-boot/u-boot-xlnx_2019.1.bb new file mode 100644 index 00000000..3377635d --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-bsp/u-boot/u-boot-xlnx_2019.1.bb @@ -0,0 +1,32 @@ +UBOOT_VERSION = "v2019.01" +XILINX_RELEASE_VERSION = "v2019.1" + +UBRANCH ?= "master" + +SRCREV ?= "d895ac5e94815d4b45dcf09d4752c5c2334a51db" + +include u-boot-xlnx.inc +include u-boot-spl-zynq-init.inc + +SRC_URI_append_kc705-microblazeel = " file://microblaze-kc705-Convert-microblaze-generic-to-k.patch" + +LICENSE = "GPLv2+" +LIC_FILES_CHKSUM = "file://README;beginline=1;endline=4;md5=744e7e3bb0c94b4b9f6b3db3bf893897" + +# u-boot-xlnx has support for these +HAS_PLATFORM_INIT ?= " \ + zynq_microzed_config \ + zynq_zed_config \ + zynq_zc702_config \ + zynq_zc706_config \ + zynq_zybo_config \ + xilinx_zynqmp_zcu102_rev1_0_config \ + xilinx_zynqmp_zcu106_revA_config \ + xilinx_zynqmp_zcu104_revC_config \ + xilinx_zynqmp_zcu100_revC_config \ + xilinx_zynqmp_zcu111_revA_config \ + xilinx_zynqmp_zc1275_revA_config \ + xilinx_zynqmp_zc1275_revB_config \ + xilinx_zynqmp_zc1254_revA_config \ + " + diff --git a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-bsp/u-boot/u-boot-zynq-scr.bb b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-bsp/u-boot/u-boot-zynq-scr.bb new file mode 100644 index 00000000..d2eedd58 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-bsp/u-boot/u-boot-zynq-scr.bb @@ -0,0 +1,81 @@ +SUMMARY = "U-boot boot scripts for Xilinx devices" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302" + +DEPENDS = "u-boot-mkimage-native" + +inherit deploy nopackages + +INHIBIT_DEFAULT_DEPS = "1" + +COMPATIBLE_MACHINE ?= "^$" +COMPATIBLE_MACHINE_zynqmp = "zynqmp" +COMPATIBLE_MACHINE_zynq = "zynq" +COMPATIBLE_MACHINE_versal = "versal" + +KERNELDT = "${@os.path.basename(d.getVar('KERNEL_DEVICETREE').split(' ')[0]) if d.getVar('KERNEL_DEVICETREE') else ''}" +DEVICE_TREE_NAME ?= "${@bb.utils.contains('PREFERRED_PROVIDER_virtual/dtb', 'device-tree', 'system.dtb', d.getVar('KERNELDT'), d)}" +#Need to copy a rootfs.cpio.gz.u-boot as uramdisk.image.gz into boot partition +RAMDISK_IMAGE ?= "" +RAMDISK_IMAGE_zynq ?= "uramdisk.image.gz" + +KERNEL_BOOTCMD_zynqmp ?= "booti" +KERNEL_BOOTCMD_zynq ?= "bootm" +KERNEL_BOOTCMD_versal ?= "booti" + +BOOTMODE ?= "sd" +BOOTMODE_versal ?= "qspi" + +SRC_URI = " \ + file://boot.cmd.sd.zynq \ + file://boot.cmd.sd.zynqmp \ + file://boot.cmd.qspi.versal \ + file://pxeboot.pxe \ + " +PACKAGE_ARCH = "${MACHINE_ARCH}" + +UBOOTSCR_BASE_NAME ?= "${PN}-${PKGE}-${PKGV}-${PKGR}-${DATETIME}" +UBOOTSCR_BASE_NAME[vardepsexclude] = "DATETIME" +UBOOTPXE_CONFIG ?= "pxelinux.cfg" +UBOOTPXE_CONFIG_NAME = "${UBOOTPXE_CONFIG}-${DATETIME}" +UBOOTPXE_CONFIG_NAME[vardepsexclude] = "DATETIME" + +DEVICETREE_ADDRESS_zynqmp ?= "0x4000000" +DEVICETREE_ADDRESS_zynq ?= "0x2000000" +DEVICETREE_ADDRESS_versal ?= "0x1000" +KERNEL_LOAD_ADDRESS_zynqmp ?= "0x80000" +KERNEL_LOAD_ADDRESS_zynq ?= "0x2080000" +KERNEL_LOAD_ADDRESS_versal ?= "0x80000" + +RAMDISK_IMAGE_ADDRESS_zynq ?= "0x4000000" +RAMDISK_IMAGE_ADDRESS_versal ?= "0x6000000" + +do_configure[noexec] = "1" +do_install[noexec] = "1" + +do_compile() { + sed -e 's/@@KERNEL_IMAGETYPE@@/${KERNEL_IMAGETYPE}/' \ + -e 's/@@KERNEL_LOAD_ADDRESS@@/${KERNEL_LOAD_ADDRESS}/' \ + -e 's/@@DEVICE_TREE_NAME@@/${DEVICE_TREE_NAME}/' \ + -e 's/@@DEVICETREE_ADDRESS@@/${DEVICETREE_ADDRESS}/' \ + -e 's/@@RAMDISK_IMAGE@@/${RAMDISK_IMAGE}/' \ + -e 's/@@RAMDISK_IMAGE_ADDRESS@@/${RAMDISK_IMAGE_ADDRESS}/' \ + -e 's/@@KERNEL_BOOTCMD@@/${KERNEL_BOOTCMD}/' \ + "${WORKDIR}/boot.cmd.${BOOTMODE}.${SOC_FAMILY}" > "${WORKDIR}/boot.cmd" + mkimage -A arm -T script -C none -n "Boot script" -d "${WORKDIR}/boot.cmd" boot.scr + sed -e 's/@@KERNEL_IMAGETYPE@@/${KERNEL_IMAGETYPE}/' \ + -e 's/@@DEVICE_TREE_NAME@@/${DEVICE_TREE_NAME}/' \ + "${WORKDIR}/pxeboot.pxe" > "pxeboot.pxe" +} + + +do_deploy() { + install -d ${DEPLOYDIR} + install -m 0644 boot.scr ${DEPLOYDIR}/${UBOOTSCR_BASE_NAME}.scr + ln -sf ${UBOOTSCR_BASE_NAME}.scr ${DEPLOYDIR}/boot.scr + install -d ${DEPLOYDIR}/pxeboot/${UBOOTPXE_CONFIG_NAME} + install -m 0644 pxeboot.pxe ${DEPLOYDIR}/pxeboot/${UBOOTPXE_CONFIG_NAME}/default + ln -sf pxeboot/${UBOOTPXE_CONFIG_NAME} ${DEPLOYDIR}/${UBOOTPXE_CONFIG} +} + +addtask do_deploy after do_compile before do_build diff --git a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-bsp/u-boot/u-boot-zynq-scr/boot.cmd.qspi b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-bsp/u-boot/u-boot-zynq-scr/boot.cmd.qspi new file mode 100644 index 00000000..84a25d29 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-bsp/u-boot/u-boot-zynq-scr/boot.cmd.qspi @@ -0,0 +1 @@ +booti 0x80000 0x6000000 0x1000 diff --git a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-bsp/u-boot/u-boot-zynq-scr/boot.cmd.qspi.versal b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-bsp/u-boot/u-boot-zynq-scr/boot.cmd.qspi.versal new file mode 100644 index 00000000..d56b7c8c --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-bsp/u-boot/u-boot-zynq-scr/boot.cmd.qspi.versal @@ -0,0 +1 @@ +@@KERNEL_BOOTCMD@@ @@KERNEL_LOAD_ADDRESS@@ @@RAMDISK_IMAGE_ADDRESS@@ @@DEVICETREE_ADDRESS@@ diff --git a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-bsp/u-boot/u-boot-zynq-scr/boot.cmd.sd b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-bsp/u-boot/u-boot-zynq-scr/boot.cmd.sd new file mode 100644 index 00000000..67a8057b --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-bsp/u-boot/u-boot-zynq-scr/boot.cmd.sd @@ -0,0 +1,6 @@ +setenv bootargs $bootargs root=/dev/mmcblk0p2 rw rootwait earlycon clk_ignore_unused +devicetree_image=@@DEVICE_TREE_NAME@@ +fatload mmc 0 ${fdt_addr_r} ${devicetree_image} +fatload mmc $sdbootdev:$partid ${kernel_addr_r} @@KERNEL_IMAGETYPE@@ +booti ${kernel_addr_r} - ${fdt_addr_r} + diff --git a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-bsp/u-boot/u-boot-zynq-scr/boot.cmd.sd.zynq b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-bsp/u-boot/u-boot-zynq-scr/boot.cmd.sd.zynq new file mode 100644 index 00000000..f593ab4a --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-bsp/u-boot/u-boot-zynq-scr/boot.cmd.sd.zynq @@ -0,0 +1,4 @@ +fatload mmc 0 @@DEVICETREE_ADDRESS@@ @@DEVICE_TREE_NAME@@ +fatload mmc 0 @@KERNEL_LOAD_ADDRESS@@ @@KERNEL_IMAGETYPE@@ +fatload mmc 0 @@RAMDISK_IMAGE_ADDRESS@@ @@RAMDISK_IMAGE@@ +@@KERNEL_BOOTCMD@@ @@KERNEL_LOAD_ADDRESS@@ @@RAMDISK_IMAGE_ADDRESS@@ @@DEVICETREE_ADDRESS@@ diff --git a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-bsp/u-boot/u-boot-zynq-scr/boot.cmd.sd.zynqmp b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-bsp/u-boot/u-boot-zynq-scr/boot.cmd.sd.zynqmp new file mode 100644 index 00000000..18f82d78 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-bsp/u-boot/u-boot-zynq-scr/boot.cmd.sd.zynqmp @@ -0,0 +1,4 @@ +setenv bootargs $bootargs root=/dev/mmcblk0p2 rw rootwait earlycon clk_ignore_unused +fatload mmc 0 @@DEVICETREE_ADDRESS@@ @@DEVICE_TREE_NAME@@ +fatload mmc $sdbootdev:$partid @@KERNEL_LOAD_ADDRESS@@ @@KERNEL_IMAGETYPE@@ +@@KERNEL_BOOTCMD@@ @@KERNEL_LOAD_ADDRESS@@ - @@DEVICETREE_ADDRESS@@ diff --git a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-bsp/u-boot/u-boot-zynq-scr/pxeboot.pxe b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-bsp/u-boot/u-boot-zynq-scr/pxeboot.pxe new file mode 100644 index 00000000..6d7a0a94 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-bsp/u-boot/u-boot-zynq-scr/pxeboot.pxe @@ -0,0 +1,3 @@ +LABEL Linux +KERNEL @@KERNEL_IMAGETYPE@@ +FDT @@DEVICE_TREE_NAME@@ diff --git a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-devtools/qemu/files/0001-linux-user-disable-qemu-bridge-helper-and-socket_scm.patch b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-devtools/qemu/files/0001-linux-user-disable-qemu-bridge-helper-and-socket_scm.patch new file mode 100644 index 00000000..8f41f746 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-devtools/qemu/files/0001-linux-user-disable-qemu-bridge-helper-and-socket_scm.patch @@ -0,0 +1,56 @@ +From 206d1b9c38daed50fcc08d2e743e649fbb82d60b Mon Sep 17 00:00:00 2001 +From: Laurent Vivier +Date: Tue, 5 Jun 2018 18:09:58 +0200 +Subject: [PATCH] linux-user: disable qemu-bridge-helper and socket_scm_helper + build + +linux-user targets don't need them, and if we ask to build statically +linked binaries, some static libraries they need are not available. + +Signed-off-by: Laurent Vivier +Reviewed-by: Peter Maydell +Message-Id: <20180605160958.5434-1-laurent@vivier.eu> + +Upstream-Status: Pending + + +With the split of qemu-xilinx into target,native and system-native recipes, +we need to avoid duplicating providers for qemu-brigde-helper. + +Signed-off-by: Alejandro Enedino Hernandez Samaniego + + +--- + Makefile | 2 +- + tests/Makefile.include | 2 +- + 2 files changed, 2 insertions(+), 2 deletions(-) + +diff --git a/Makefile b/Makefile +index 023b343..e4bc34a 100644 +--- a/Makefile ++++ b/Makefile +@@ -351,7 +351,7 @@ $(call set-vpath, $(SRC_PATH)) + + LIBS+=-lz $(LIBS_TOOLS) + +-HELPERS-$(CONFIG_LINUX) = qemu-bridge-helper$(EXESUF) ++HELPERS-$(call land,$(CONFIG_SOFTMMU),$(CONFIG_LINUX)) = qemu-bridge-helper$(EXESUF) + + ifdef BUILD_DOCS + DOCS=qemu-doc.html qemu-doc.txt qemu.1 qemu-img.1 qemu-nbd.8 qemu-ga.8 +diff --git a/tests/Makefile.include b/tests/Makefile.include +index d098a10..10397ed 100644 +--- a/tests/Makefile.include ++++ b/tests/Makefile.include +@@ -930,7 +930,7 @@ check-report.html: check-report.xml + + # Other tests + +-QEMU_IOTESTS_HELPERS-$(CONFIG_LINUX) = tests/qemu-iotests/socket_scm_helper$(EXESUF) ++QEMU_IOTESTS_HELPERS-$(call land,$(CONFIG_SOFTMMU),$(CONFIG_LINUX)) = tests/qemu-iotests/socket_scm_helper$(EXESUF) + + .PHONY: check-tests/qemu-iotests-quick.sh + check-tests/qemu-iotests-quick.sh: tests/qemu-iotests-quick.sh qemu-img$(EXESUF) qemu-io$(EXESUF) $(QEMU_IOTESTS_HELPERS-y) +-- +2.7.4 + diff --git a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-devtools/qemu/files/qemu-system-aarch64-multiarch b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-devtools/qemu/files/qemu-system-aarch64-multiarch index 2c92c686..ba0e2743 100644 --- a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-devtools/qemu/files/qemu-system-aarch64-multiarch +++ b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-devtools/qemu/files/qemu-system-aarch64-multiarch @@ -13,15 +13,27 @@ mach_path = tempfile.mkdtemp() # Separate PMU and APU arguments APU_args = sys.argv[1:] -PMU_args = APU_args[APU_args.index('-pmu-args')+1] -APU_args.remove('-pmu-args') -APU_args.remove(PMU_args) -PMU_args = PMU_args.split() +mbtype='' -PMU_rom = PMU_args[PMU_args.index('-kernel')+1] -error_msg = None +if '-pmu-args' in APU_args: + MB_args = APU_args[APU_args.index('-pmu-args')+1] + APU_args.remove('-pmu-args') + APU_args.remove(MB_args) + MB_args = MB_args.split() + PMU_rom = MB_args[MB_args.index('-kernel')+1] + mbtype='PMU' +elif '-plm-args' in APU_args: + MB_args = APU_args[APU_args.index('-plm-args')+1] + APU_args.remove('-plm-args') + APU_args.remove(MB_args) + MB_args = MB_args.split() + mbtype='PLM' +else: + error_msg = '\nMultiarch not setup properly.' + sys.exit(error_msg) -if os.path.exists(PMU_rom): +error_msg = None +if (mbtype == 'PMU' and os.path.exists(PMU_rom)) or mbtype == 'PLM': # We need to switch tcp serial arguments (if they exist, e.g. qemurunner) to get the output correctly tcp_serial_ports = [i for i, s in enumerate(APU_args) if 'tcp:127.0.0.1:' in s] @@ -30,16 +42,16 @@ if os.path.exists(PMU_rom): if len(tcp_serial_ports) == 2: APU_args[tcp_serial_ports[0]],APU_args[tcp_serial_ports[1]] = APU_args[tcp_serial_ports[1]],APU_args[tcp_serial_ports[0]] - pmu_cmd = binpath + '/qemu-system-microblazeel ' + ' '.join(PMU_args) + ' -machine-path ' + mach_path + mb_cmd = binpath + '/qemu-system-microblazeel ' + ' '.join(MB_args) + ' -machine-path ' + mach_path apu_cmd = binpath + '/qemu-system-aarch64 ' + ' '.join(APU_args) + ' -machine-path ' + mach_path # Debug prints - print('\nPMU instance cmd: %s\n' % pmu_cmd) + print('\n%s instance cmd: %s\n' % (mbtype, mb_cmd)) print('APU instance cmd: %s\n' % apu_cmd) # Invoke QEMU pmu instance - process_pmu = subprocess.Popen(pmu_cmd, shell=True, stderr=subprocess.PIPE) + process_pmu = subprocess.Popen(mb_cmd, shell=True, stderr=subprocess.PIPE) # Invoke QEMU APU instance process_apu = subprocess.Popen(apu_cmd, shell=True, stderr=subprocess.PIPE) @@ -47,8 +59,9 @@ if os.path.exists(PMU_rom): error_msg = '\nQEMU APU instance failed:\n%s' % process_apu.stderr.read().decode() else: - error_msg = '\nError: Missing PMU ROM: %s' % PMU_rom - error_msg += '\nSee "meta-xilinx/README.qemu.md" for more information on accquiring the PMU ROM.\n' + if mbtype == 'PMU': + error_msg = '\nError: Missing PMU ROM: %s' % PMU_rom + error_msg += '\nSee "meta-xilinx/README.qemu.md" for more information on accquiring the PMU ROM.\n' shutil.rmtree(mach_path) sys.exit(error_msg) diff --git a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-devtools/qemu/qemu-devicetrees_2018.3.bb b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-devtools/qemu/qemu-devicetrees_2018.3.bb deleted file mode 100644 index 6f8eda2f..00000000 --- a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-devtools/qemu/qemu-devicetrees_2018.3.bb +++ /dev/null @@ -1,6 +0,0 @@ -require qemu-devicetrees.inc - -XILINX_RELEASE_VERSION = "v2018.3" - -BRANCH ?= "master" -SRCREV ?= "e3e40b8829894a479c7d7380fc8137886645dda8" diff --git a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-devtools/qemu/qemu-devicetrees_2019.1.bb b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-devtools/qemu/qemu-devicetrees_2019.1.bb new file mode 100644 index 00000000..06481660 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-devtools/qemu/qemu-devicetrees_2019.1.bb @@ -0,0 +1,6 @@ +require qemu-devicetrees.inc + +XILINX_RELEASE_VERSION = "v2019.1" + +BRANCH ?= "branch/xilinx-v2019.1" +SRCREV ?= "445406ef4d06303f00387f7d81e8718255336fd0" diff --git a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-devtools/qemu/qemu-xilinx-helper-native_1.0.bb b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-devtools/qemu/qemu-xilinx-helper-native_1.0.bb index 55b35b53..ecc96521 100644 --- a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-devtools/qemu/qemu-xilinx-helper-native_1.0.bb +++ b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-devtools/qemu/qemu-xilinx-helper-native_1.0.bb @@ -20,9 +20,11 @@ FILESEXTRAPATHS_prepend := "${@get_filespath_extra(d, 'recipes-devtools/qemu/qem PROVIDES += "qemu-helper-native" # replace qemu with qemu-xilinx -DEPENDS_remove = "qemu-native" +DEPENDS_remove = "qemu-system-native" DEPENDS_append = " \ - qemu-xilinx-native \ + qemu-xilinx-system-native \ qemu-xilinx-multiarch-helper-native \ " +RDEPENDS_${PN}_remove = "qemu-system-native" +RDEPENDS_${PN}_append = " qemu-xilinx-system-native" diff --git a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-devtools/qemu/qemu-xilinx-native.inc b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-devtools/qemu/qemu-xilinx-native.inc new file mode 100644 index 00000000..aae607f5 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-devtools/qemu/qemu-xilinx-native.inc @@ -0,0 +1,7 @@ +require recipes-devtools/qemu/qemu-native.inc +require qemu-xilinx.inc + +DEPENDS = "glib-2.0-native zlib-native" + +SRC_URI_remove = "file://0012-fix-libcap-header-issue-on-some-distro.patch" +SRC_URI_remove = "file://0013-cpus.c-Add-error-messages-when-qemi_cpu_kick_thread-.patch" \ No newline at end of file diff --git a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-devtools/qemu/qemu-xilinx-native_2019.1.bb b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-devtools/qemu/qemu-xilinx-native_2019.1.bb new file mode 100644 index 00000000..bc5a3850 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-devtools/qemu/qemu-xilinx-native_2019.1.bb @@ -0,0 +1,7 @@ +require qemu-xilinx-native.inc +BPN = "qemu-xilinx" + +EXTRA_OECONF_append = " --target-list=${@get_qemu_usermode_target_list(d)} --disable-tools --disable-blobs --disable-guest-agent" + + +SRC_URI_append = "file://0001-linux-user-disable-qemu-bridge-helper-and-socket_scm.patch" diff --git a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-devtools/qemu/qemu-xilinx-system-native_2019.1.bb b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-devtools/qemu/qemu-xilinx-system-native_2019.1.bb new file mode 100644 index 00000000..a138704e --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-devtools/qemu/qemu-xilinx-system-native_2019.1.bb @@ -0,0 +1,16 @@ +require qemu-xilinx-native.inc + +EXTRA_OECONF_append = " --target-list=${@get_qemu_system_target_list(d)}" + +PACKAGECONFIG ??= "fdt alsa kvm" + +PACKAGECONFIG_remove = "${@'kvm' if not os.path.exists('/usr/include/linux/kvm.h') else ''}" + +DEPENDS += "pixman-native qemu-xilinx-native" + +do_install_append() { + # The following is also installed by qemu-native + rm -f ${D}${datadir}/${BPN}/trace-events-all + rm -rf ${D}${datadir}/${BPN}/keymaps +} + diff --git a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-devtools/qemu/qemu-xilinx.inc b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-devtools/qemu/qemu-xilinx.inc index daff5ffc..ad44f098 100644 --- a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-devtools/qemu/qemu-xilinx.inc +++ b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-devtools/qemu/qemu-xilinx.inc @@ -1,14 +1,19 @@ +SUMMARY = "Xilinx's fork of a fast open source processor emulator" +HOMEPAGE = "https://github.com/xilinx/qemu/" + QEMU_TARGETS = "aarch64 arm microblaze microblazeel" -require recipes-devtools/qemu/qemu.inc +XILINX_RELEASE_VERSION = "v2019.1" +XILINX_QEMU_VERSION ?= "v2.11.1" +BRANCH ?= "branch/xilinx-v2019.1" +SRCREV ?= "5f38ea92fb697b94ad43f01fe162f3ed6e6b0e16" -SUMMARY = "Xilinx's fork of a fast open source processor emulator" -HOMEPAGE = "https://github.com/xilinx/qemu/" LIC_FILES_CHKSUM = " \ file://COPYING;md5=441c28d2cf86e15a37fa47e15a72fbac \ file://COPYING.LIB;endline=24;md5=c04def7ae38850e7d3ef548588159913 \ " +DEPENDS = "glib-2.0 zlib pixman" FILESEXTRAPATHS_prepend := "${THISDIR}/files:" @@ -45,5 +50,4 @@ do_configure_prepend() { do_install_append() { # Prevent QA warnings about installed ${localstatedir}/run if [ -d ${D}${localstatedir}/run ]; then rmdir ${D}${localstatedir}/run; fi -} - +} \ No newline at end of file diff --git a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-devtools/qemu/qemu-xilinx_2018.3.bb b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-devtools/qemu/qemu-xilinx_2018.3.bb deleted file mode 100644 index 57547dff..00000000 --- a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-devtools/qemu/qemu-xilinx_2018.3.bb +++ /dev/null @@ -1,6 +0,0 @@ -require qemu-xilinx.inc - -XILINX_RELEASE_VERSION = "v2018.3" -XILINX_QEMU_VERSION ?= "v2.11.0" -BRANCH ?= "master" -SRCREV ?= "f70bd86859c7a1a075ac864b4765168f821f1aae" diff --git a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-devtools/qemu/qemu-xilinx_2019.1.bb b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-devtools/qemu/qemu-xilinx_2019.1.bb new file mode 100644 index 00000000..c158b185 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-devtools/qemu/qemu-xilinx_2019.1.bb @@ -0,0 +1,13 @@ +require recipes-devtools/qemu/qemu.inc +require qemu-xilinx.inc + +BBCLASSEXTEND = "nativesdk" + +RDEPENDS_${PN}_class-target += "bash" + +EXTRA_OECONF_append_class-target = " --target-list=${@get_qemu_target_list(d)}" +EXTRA_OECONF_append_class-nativesdk = " --target-list=${@get_qemu_target_list(d)}" + +do_install_append_class-nativesdk() { + ${@bb.utils.contains('PACKAGECONFIG', 'gtk+', 'make_qemu_wrapper', '', d)} +} diff --git a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-graphics/libgles/libmali-xlnx.bb b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-graphics/libgles/libmali-xlnx.bb index 8c6ab3e9..113710e3 100644 --- a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-graphics/libgles/libmali-xlnx.bb +++ b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-graphics/libgles/libmali-xlnx.bb @@ -37,7 +37,7 @@ COMPATIBLE_MACHINE = "^$" COMPATIBLE_MACHINE_zynqmpeg = "zynqmpeg" COMPATIBLE_MACHINE_zynqmpev = "zynqmpev" -PACKAGE_ARCH = "${SOC_FAMILY}${SOC_VARIANT}" +PACKAGE_ARCH = "${SOC_FAMILY}" S = "${WORKDIR}/mali-400" diff --git a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-graphics/mali/kernel-module-mali.bb b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-graphics/mali/kernel-module-mali.bb index 327f8f09..fe2fbdcf 100644 --- a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-graphics/mali/kernel-module-mali.bb +++ b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-graphics/mali/kernel-module-mali.bb @@ -21,6 +21,9 @@ SRC_URI = " \ file://0009-mali_memory_swap_alloc.c-Rename-global_page_state-wi.patch \ file://0010-common-mali_pm.c-Add-PM-runtime-barrier-after-removi.patch \ file://0011-linux-mali_kernel_linux.c-Enable-disable-clock-for-r.patch\ + file://0012-linux-mali_memory_os_alloc-Remove-__GFP_COLD.patch\ + file://0013-linux-mali_memory_secure-Add-header-file-dma-direct..patch\ + file://0014-linux-mali_-timer-Get-rid-of-init_timer.patch\ " SRC_URI[md5sum] = "8f04ae86957fd56197ad5a9d017b84ff" SRC_URI[sha256sum] = "bfd14fa3f75a71d4ba313534e651ca1c58dc354e882c0b39867e335882a06350" diff --git a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-graphics/mali/kernel-module-mali/0012-linux-mali_memory_os_alloc-Remove-__GFP_COLD.patch b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-graphics/mali/kernel-module-mali/0012-linux-mali_memory_os_alloc-Remove-__GFP_COLD.patch new file mode 100644 index 00000000..24f0a22c --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-graphics/mali/kernel-module-mali/0012-linux-mali_memory_os_alloc-Remove-__GFP_COLD.patch @@ -0,0 +1,33 @@ +From 779b1883d56804ecd08fe7f57d6c01e3db4e893b Mon Sep 17 00:00:00 2001 +From: Madhurkiran Harikrishnan +Date: Wed, 5 Dec 2018 18:07:29 -0800 +Subject: [PATCH 1/3] linux: mali_memory_os_alloc: Remove __GFP_COLD + +The support for Cache hot and cold pages are removed from the kernel. +For more information refer kernel commit 453f85d43fa9ee243f0fc3ac4e1be45615301e3f + +Signed-off-by: Madhurkiran Harikrishnan +Reviewed-by: Hyun Kwon +Upstream Status: Pending +--- + driver/src/devicedrv/mali/linux/mali_memory_os_alloc.c | 4 +++- + 1 file changed, 3 insertions(+), 1 deletion(-) + +diff --git a/driver/src/devicedrv/mali/linux/mali_memory_os_alloc.c b/driver/src/devicedrv/mali/linux/mali_memory_os_alloc.c +index 1602371..830e8c6 100644 +--- linux/mali_memory_os_alloc.c ++++ b/linux/mali_memory_os_alloc.c +@@ -202,7 +202,9 @@ int mali_mem_os_alloc_pages(mali_mem_os_mem *os_mem, u32 size) + /* Allocate new pages, if needed. */ + for (i = 0; i < remaining; i++) { + dma_addr_t dma_addr; +-#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 14, 0) ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 15, 0) ++ gfp_t flags = __GFP_ZERO | __GFP_RETRY_MAYFAIL | __GFP_NOWARN; ++#elif LINUX_VERSION_CODE == KERNEL_VERSION(4, 14, 0) + gfp_t flags = __GFP_ZERO | __GFP_RETRY_MAYFAIL | __GFP_NOWARN | __GFP_COLD; + #else + gfp_t flags = __GFP_ZERO | __GFP_REPEAT | __GFP_NOWARN | __GFP_COLD; +-- +2.7.4 + diff --git a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-graphics/mali/kernel-module-mali/0013-linux-mali_memory_secure-Add-header-file-dma-direct..patch b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-graphics/mali/kernel-module-mali/0013-linux-mali_memory_secure-Add-header-file-dma-direct..patch new file mode 100644 index 00000000..c28a83f4 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-graphics/mali/kernel-module-mali/0013-linux-mali_memory_secure-Add-header-file-dma-direct..patch @@ -0,0 +1,34 @@ +From d20b6eb3e48e56558488dbdda98875b1aed0c29f Mon Sep 17 00:00:00 2001 +From: Madhurkiran Harikrishnan +Date: Wed, 5 Dec 2018 18:13:28 -0800 +Subject: [PATCH 2/3] linux: mali_memory_secure: Add header file dma-direct.h + +Add dma-direct.h header, as API dma_to_phys is defined here. +refer kernel commit ea8c64ace86647260ec4255f483e5844d62af2df + +Signed-off-by: Madhurkiran Harikrishnan +Reviewed-by: Hyun Kwon +Upstream Status: Pending +--- + driver/src/devicedrv/mali/linux/mali_memory_secure.c | 4 ++++ + 1 file changed, 4 insertions(+) + +diff --git a/driver/src/devicedrv/mali/linux/mali_memory_secure.c b/driver/src/devicedrv/mali/linux/mali_memory_secure.c +index 2836b1b..4f55fa5 100644 +--- linux/mali_memory_secure.c ++++ b/linux/mali_memory_secure.c +@@ -13,7 +13,11 @@ + #include "mali_memory_secure.h" + #include "mali_osk.h" + #include ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 16, 0) ++#include ++#else + #include ++#endif + #include + + _mali_osk_errcode_t mali_mem_secure_attach_dma_buf(mali_mem_secure *secure_mem, u32 size, int mem_fd) +-- +2.7.4 + diff --git a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-graphics/mali/kernel-module-mali/0014-linux-mali_-timer-Get-rid-of-init_timer.patch b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-graphics/mali/kernel-module-mali/0014-linux-mali_-timer-Get-rid-of-init_timer.patch new file mode 100644 index 00000000..a7c1d5cc --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-graphics/mali/kernel-module-mali/0014-linux-mali_-timer-Get-rid-of-init_timer.patch @@ -0,0 +1,156 @@ +From b6936450484b5aa9dd2438367a907af020341d1d Mon Sep 17 00:00:00 2001 +From: Madhurkiran Harikrishnan +Date: Thu, 6 Dec 2018 13:30:44 -0800 +Subject: [PATCH 3/3] linux: mali_*timer: Get rid of init_timer + +kernel 4.19 got rid of ancient init_timer. Hence, replace it with +timer_setup API. For more information refer kernel commit +7eeb6b893bd28c68b6d664de1d3120e49b855cdb + +Signed-off-by: Madhurkiran Harikrishnan +Reviewed-by: Hyun Kwon +Upstream Status: Pending +--- + driver/src/devicedrv/mali/common/mali_control_timer.c | 6 ++++++ + driver/src/devicedrv/mali/common/mali_group.c | 6 ++++++ + driver/src/devicedrv/mali/common/mali_osk.h | 15 ++++++++++++++- + driver/src/devicedrv/mali/linux/mali_osk_timers.c | 15 ++++++++++++++- + 4 files changed, 40 insertions(+), 2 deletions(-) + +diff --git a/driver/src/devicedrv/mali/common/mali_control_timer.c b/driver/src/devicedrv/mali/common/mali_control_timer.c +index 1296ffe..d24b934 100644 +--- common/mali_control_timer.c ++++ b/common/mali_control_timer.c +@@ -65,11 +65,17 @@ _mali_osk_errcode_t mali_control_timer_init(void) + } + } + ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 14, 0) ++ mali_control_timer = _mali_osk_timer_init(mali_control_timer_callback); ++#else + mali_control_timer = _mali_osk_timer_init(); ++#endif + if (NULL == mali_control_timer) { + return _MALI_OSK_ERR_FAULT; + } ++#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 14, 0) + _mali_osk_timer_setcallback(mali_control_timer, mali_control_timer_callback, NULL); ++#endif + + return _MALI_OSK_ERR_OK; + } +diff --git a/driver/src/devicedrv/mali/common/mali_group.c b/driver/src/devicedrv/mali/common/mali_group.c +index 5c7b3f4..1702e9a 100644 +--- common/mali_group.c ++++ b/common/mali_group.c +@@ -65,9 +65,15 @@ struct mali_group *mali_group_create(struct mali_l2_cache_core *core, + + group = _mali_osk_calloc(1, sizeof(struct mali_group)); + if (NULL != group) { ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 14, 0) ++ group->timeout_timer = _mali_osk_timer_init(mali_group_timeout); ++#else + group->timeout_timer = _mali_osk_timer_init(); ++#endif + if (NULL != group->timeout_timer) { ++#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 14, 0) + _mali_osk_timer_setcallback(group->timeout_timer, mali_group_timeout, (void *)group); ++#endif + + group->l2_cache_core[0] = core; + _mali_osk_list_init(&group->group_list); +diff --git a/driver/src/devicedrv/mali/common/mali_osk.h b/driver/src/devicedrv/mali/common/mali_osk.h +index a501778..fe93d79 100644 +--- common/mali_osk.h ++++ b/common/mali_osk.h +@@ -947,7 +947,17 @@ _mali_osk_errcode_t _mali_osk_notification_queue_dequeue(_mali_osk_notification_ + * asked for. + * + * @{ */ +- ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 14, 0) ++/** @brief Initialize a timer ++ * ++ * Allocates resources for a new timer, and initializes them. This does not ++ * start the timer. ++ * ++ * @param callback Function to call when timer expires ++ * @return a pointer to the allocated timer object, or NULL on failure. ++ */ ++_mali_osk_timer_t *_mali_osk_timer_init(_mali_osk_timer_callback_t callback); ++#else + /** @brief Initialize a timer + * + * Allocates resources for a new timer, and initializes them. This does not +@@ -956,6 +966,7 @@ _mali_osk_errcode_t _mali_osk_notification_queue_dequeue(_mali_osk_notification_ + * @return a pointer to the allocated timer object, or NULL on failure. + */ + _mali_osk_timer_t *_mali_osk_timer_init(void); ++#endif + + /** @brief Start a timer + * +@@ -1034,6 +1045,7 @@ void _mali_osk_timer_del_async(_mali_osk_timer_t *tim); + */ + mali_bool _mali_osk_timer_pending(_mali_osk_timer_t *tim); + ++#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 14, 0) + /** @brief Set a timer's callback parameters. + * + * This must be called at least once before a timer is started/modified. +@@ -1047,6 +1059,7 @@ mali_bool _mali_osk_timer_pending(_mali_osk_timer_t *tim); + * @param data Function-specific data to supply to the function on expiry. + */ + void _mali_osk_timer_setcallback(_mali_osk_timer_t *tim, _mali_osk_timer_callback_t callback, void *data); ++#endif + + /** @brief Terminate a timer, and deallocate resources. + * +diff --git a/driver/src/devicedrv/mali/linux/mali_osk_timers.c b/driver/src/devicedrv/mali/linux/mali_osk_timers.c +index e5d7238..f9b5a86 100644 +--- linux/mali_osk_timers.c ++++ b/linux/mali_osk_timers.c +@@ -21,13 +21,24 @@ + struct _mali_osk_timer_t_struct { + struct timer_list timer; + }; +- ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 14, 0) ++typedef void (*timer_timeout_function_t)(struct timer_list *); ++#else + typedef void (*timer_timeout_function_t)(unsigned long); ++#endif + ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 14, 0) ++_mali_osk_timer_t *_mali_osk_timer_init(_mali_osk_timer_callback_t callback) ++#else + _mali_osk_timer_t *_mali_osk_timer_init(void) ++#endif + { + _mali_osk_timer_t *t = (_mali_osk_timer_t *)kmalloc(sizeof(_mali_osk_timer_t), GFP_KERNEL); ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 14, 0) ++ if (NULL != t) timer_setup(&t->timer, (timer_timeout_function_t)callback, 0); ++#else + if (NULL != t) init_timer(&t->timer); ++#endif + return t; + } + +@@ -62,12 +73,14 @@ mali_bool _mali_osk_timer_pending(_mali_osk_timer_t *tim) + return 1 == timer_pending(&(tim->timer)); + } + ++#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 14, 0) + void _mali_osk_timer_setcallback(_mali_osk_timer_t *tim, _mali_osk_timer_callback_t callback, void *data) + { + MALI_DEBUG_ASSERT_POINTER(tim); + tim->timer.data = (unsigned long)data; + tim->timer.function = (timer_timeout_function_t)callback; + } ++#endif + + void _mali_osk_timer_term(_mali_osk_timer_t *tim) + { +-- +2.7.4 + diff --git a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-graphics/xorg-driver/xf86-video-armsoc_%.bbappend b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-graphics/xorg-driver/xf86-video-armsoc_%.bbappend new file mode 100644 index 00000000..3ddcf0b8 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-graphics/xorg-driver/xf86-video-armsoc_%.bbappend @@ -0,0 +1,3 @@ +FILESEXTRAPATHS_prepend := "${THISDIR}/xf86-video-armsoc:" + +SRC_URI_append = " file://0001-src-drmmode_xilinx-Add-the-dumb-gem-support-for-Xili.patch" diff --git a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-graphics/xorg-driver/xf86-video-armsoc_git.bb b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-graphics/xorg-driver/xf86-video-armsoc_git.bb deleted file mode 100644 index 7a671fe0..00000000 --- a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-graphics/xorg-driver/xf86-video-armsoc_git.bb +++ /dev/null @@ -1,23 +0,0 @@ -require recipes-graphics/xorg-driver/xorg-driver-video.inc - -SUMMARY = "X.Org X server -- Xilinx ARM SOC display driver" -DESCRIPTION = "Xilinx ARM SOC display driver " - -LICENSE = "MIT-X & GPLv2+" -LIC_FILES_CHKSUM = "file://COPYING;md5=10ce5de3b111315ea652a5f74ec0c602" - -DEPENDS += "virtual/libx11 libdrm xf86driproto" -RDEPENDS_${PN} += "xserver-xorg-module-exa" - -PV = "1.4.1+git${SRCPV}" - -SRCREV = "8bbdb2ae3bb8ef649999a8da33ddbe11a04763b8" -SRC_URI = " \ - git://anongit.freedesktop.org/xorg/driver/xf86-video-armsoc \ - file://0001-src-drmmode_xilinx-Add-the-dumb-gem-support-for-Xili.patch \ - " - -S = "${WORKDIR}/git" - -EXTRA_OECONF = " --enable-maintainer-mode" -CFLAGS += " -I${STAGING_INCDIR}/xorg " diff --git a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-kernel/linux/linux-xlnx.inc b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-kernel/linux/linux-xlnx.inc index ec056db4..54ec3f21 100644 --- a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-kernel/linux/linux-xlnx.inc +++ b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-kernel/linux/linux-xlnx.inc @@ -17,12 +17,21 @@ require recipes-kernel/linux/linux-yocto.inc require linux-microblaze.inc DESCRIPTION = "Xilinx Kernel" +LIC_FILES_CHKSUM = "file://COPYING;md5=bbea815ee2795b2f4230826c0c6b8814" + +EXTKERNELSRC = "${@'1' if d.getVar('EXTERNALSRC') else ''}" # Force the use of the KBUILD_DEFCONFIG even if some other defconfig was generated in the ${WORKDIR} do_kernel_metadata_prepend () { [ -n "${KBUILD_DEFCONFIG}" ] && [ -e ${WORKDIR}/defconfig ] && rm ${WORKDIR}/defconfig } +do_configure_prepend () { + if [ -n "${KBUILD_DEFCONFIG}" ] && [ -n "${EXTKERNELSRC}" ]; then + cp ${S}/arch/${ARCH}/configs/${KBUILD_DEFCONFIG} ${WORKDIR}/defconfig + fi +} + inherit kernel-simpleimage # Default to be only compatible with specific machines or soc families @@ -30,12 +39,14 @@ COMPATIBLE_MACHINE ?= "^$" COMPATIBLE_MACHINE_zynq = ".*" COMPATIBLE_MACHINE_zynqmp = ".*" COMPATIBLE_MACHINE_microblaze = ".*" +COMPATIBLE_MACHINE_versal = ".*" # Use DEFCONFIGs for configuring linux-xlnx kernels KCONFIG_MODE ?= "alldefconfig" KBUILD_DEFCONFIG_zynqmp = "xilinx_zynqmp_defconfig" KBUILD_DEFCONFIG_zynq = "xilinx_zynq_defconfig" KBUILD_DEFCONFIG_microblaze = "mmu_defconfig" +KBUILD_DEFCONFIG_versal = "xilinx_versal_defconfig" # Add meta-xilinx kmeta, used for MicroBlaze BSP fragments FILESEXTRAPATHS_prepend := "${THISDIR}:" @@ -46,5 +57,7 @@ KERNEL_FEATURES_append_kc705-microblazeel = " bsp/kc705-microblazeel/kc705-micro KERNEL_FEATURES_append_zynqmp = "${@bb.utils.contains('DISTRO_FEATURES', 'xen', ' bsp/xilinx/xen.scc', '', d)}" -KERNEL_FEATURES_append_zynqmp = "${@bb.utils.contains('IMAGE_FEATURES', 'fpga-manager', ' features/overlay/overlay.scc', '', d)}" +KERNEL_FEATURES_append_zynqmp = "${@' features/overlay/overlay.scc' if d.getVar('FPGA_MNGR_RECONFIG_ENABLE') == '1' else ''}" + +KERNEL_FEATURES_append_versal = "${@bb.utils.contains('DISTRO_FEATURES', 'xen', ' bsp/xilinx/xen.scc', '', d)}" diff --git a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-kernel/linux/linux-xlnx_2018.3.bb b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-kernel/linux/linux-xlnx_2018.3.bb deleted file mode 100644 index ade13e32..00000000 --- a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-kernel/linux/linux-xlnx_2018.3.bb +++ /dev/null @@ -1,7 +0,0 @@ -LINUX_VERSION = "4.14" -XILINX_RELEASE_VERSION = "v2018.3" -KBRANCH ?= "xlnx_rebase_v4.14" -SRCREV ?= "eeab73d1207d6fc2082776c954eb19fd7290bfbe" - -include linux-xlnx.inc - diff --git a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-kernel/linux/linux-xlnx_2019.1.bb b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-kernel/linux/linux-xlnx_2019.1.bb new file mode 100644 index 00000000..5bac31e9 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-kernel/linux/linux-xlnx_2019.1.bb @@ -0,0 +1,7 @@ +LINUX_VERSION = "4.19" +XILINX_RELEASE_VERSION = "v2019.1" +KBRANCH ?= "xlnx_rebase_v4.19" +SRCREV ?= "9811303824b66a8db9a8ec61b570879336a9fde5" + +include linux-xlnx.inc + diff --git a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-kernel/linux/xilinx-kmeta/bsp/kc705-microblazeel/kc705-microblazeel.cfg b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-kernel/linux/xilinx-kmeta/bsp/kc705-microblazeel/kc705-microblazeel.cfg index bf7f316a..ef6fd6a8 100644 --- a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-kernel/linux/xilinx-kmeta/bsp/kc705-microblazeel/kc705-microblazeel.cfg +++ b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-kernel/linux/xilinx-kmeta/bsp/kc705-microblazeel/kc705-microblazeel.cfg @@ -7,7 +7,7 @@ CONFIG_XILINX_MICROBLAZE0_USE_BARREL=1 CONFIG_XILINX_MICROBLAZE0_USE_DIV=1 CONFIG_XILINX_MICROBLAZE0_USE_HW_MUL=2 CONFIG_XILINX_MICROBLAZE0_USE_FPU=0 -CONFIG_XILINX_MICROBLAZE0_HW_VER="10.0" +CONFIG_XILINX_MICROBLAZE0_HW_VER="11.0" # Memory Base Address CONFIG_KERNEL_BASE_ADDR=0x80000000 diff --git a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/binutils/binutils%.bbappend b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/binutils/binutils%.bbappend index 44709727..1a00c61c 100644 --- a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/binutils/binutils%.bbappend +++ b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/binutils/binutils%.bbappend @@ -1,15 +1,32 @@ -FILESEXTRAPATHS_append_microblaze := "${THISDIR}/binutils-2.31:" +FILESEXTRAPATHS_append_microblaze := "${THISDIR}/binutils-2.32:" SRC_URI_append_microblaze = " \ - file://0001-MicroBlaze-Add-wdc.ext.clear-and-wdc.ext.flush-insns.patch \ - file://0002-MicroBlaze-add-mlittle-endian-and-mbig-endian-flags.patch \ - file://0003-Disable-the-warning-message-for-eh_frame_hdr.patch \ - file://0004-Fix-relaxation-of-assembler-resolved-references.patch \ - file://0005-Fixup-MicroBlaze-debug_loc-sections-after-linker-rel.patch \ - file://0006-Fix-bug-in-MicroBlaze-TLSTPREL-Relocation.patch \ - file://0007-Add-MicroBlaze-address-extension-instructions.patch \ - file://0008-Add-new-MicroBlaze-bit-field-instructions.patch \ - file://0009-Fixing-MicroBlaze-IMM-bug.patch \ - file://0010-Fixed-bug-in-GCC-so-that-it-will-support-.long-0U-an.patch \ - file://0011-Fixing-MicroBlaze-constant-range-check-issue.patch \ - file://0012-MicroBlaze-fix-mask-for-barrel-shift-instructions.patch \ - " + file://0001-Add-wdc.ext.clear-and-wdc.ext.flush-insns.patch \ + file://0002-Add-mlittle-endian-and-mbig-endian-flags.patch \ + file://0003-Disable-the-warning-message-for-eh_frame_hdr.patch \ + file://0004-Fix-relaxation-of-assembler-resolved-references.patch \ + file://0005-LOCAL-Fixup-debug_loc-sections-after-linker-relaxati.patch \ + file://0006-upstream-change-to-garbage-collection-sweep-causes-m.patch \ + file://0007-Fix-bug-in-TLSTPREL-Relocation.patch \ + file://0008-Added-Address-extension-instructions.patch \ + file://0009-fixing-the-MAX_OPCODES-to-correct-value.patch \ + file://0010-Add-new-bit-field-instructions.patch \ + file://0011-fixing-the-imm-bug.patch \ + file://0012-Patch-Microblaze-fixed-bug-in-GCC-so-that-It-will-su.patch \ + file://0013-fixing-the-constant-range-check-issue.patch \ + file://0014-Patch-Microblaze-Compiler-will-give-error-messages-i.patch \ + file://0015-intial-commit-of-MB-64-bit.patch \ + file://0016-MB-X-initial-commit.patch \ + file://0017-Patch-Microblaze-negl-instruction-is-overriding-rsub.patch \ + file://0018-Added-relocations-for-MB-X.patch \ + file://0019-Fixed-MB-x-relocation-issues.patch \ + file://0020-Fixing-the-branch-related-issues.patch \ + file://0021-Fixed-address-computation-issues-with-64bit-address.patch \ + file://0022-Adding-new-relocation-to-support-64bit-rodata.patch \ + file://0023-fixing-the-.bss-relocation-issue.patch \ + file://0024-Fixed-the-bug-in-the-R_MICROBLAZE_64_NONE-relocation.patch \ + file://0025-Patch-MicroBlaze-fixed-Build-issue-which-are-due-to-.patch \ + file://0026-Patch-Microblaze-changes-of-PR22458-failure-to-choos.patch \ + file://0029-Patch-Microblaze-Binutils-security-check-is-causing-.patch \ + file://0030-fixing-the-long-long-long-mingw-toolchain-issue.patch \ + file://0031-fixing-the-_STACK_SIZE-issue-with-the-flto-flag.patch \ + " diff --git a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/binutils/binutils-2.31/0001-MicroBlaze-Add-wdc.ext.clear-and-wdc.ext.flush-insns.patch b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/binutils/binutils-2.31/0001-MicroBlaze-Add-wdc.ext.clear-and-wdc.ext.flush-insns.patch deleted file mode 100644 index 878bb321..00000000 --- a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/binutils/binutils-2.31/0001-MicroBlaze-Add-wdc.ext.clear-and-wdc.ext.flush-insns.patch +++ /dev/null @@ -1,65 +0,0 @@ -From 91f39b692c48336117c092e4afd80899c97779e6 Mon Sep 17 00:00:00 2001 -From: David Holsgrove -Date: Mon, 28 Aug 2017 19:53:52 -0700 -Subject: [PATCH] MicroBlaze Add wdc.ext.clear and wdc.ext.flush insns - -Added two new instructions, wdc.ext.clear and wdc.ext.flush, -to enable MicroBlaze to flush an external cache, which is -used with the new coherency support for multiprocessing. - -Signed-off-by: David Holsgrove -Signed-off-by: Nagaraju Mekala -Signed-off-by: Manjukumar Matha -Upstream-Status: Pending - ---- - opcodes/microblaze-opc.h | 5 ++++- - opcodes/microblaze-opcm.h | 4 ++-- - 2 files changed, 6 insertions(+), 3 deletions(-) - -diff --git a/opcodes/microblaze-opc.h b/opcodes/microblaze-opc.h -index ede8af8..773dc81 100644 ---- a/opcodes/microblaze-opc.h -+++ b/opcodes/microblaze-opc.h -@@ -91,6 +91,7 @@ - #define OPCODE_MASK_H3 0xFC000600 /* High 6 bits and bits 21, 22. */ - #define OPCODE_MASK_H32 0xFC00FC00 /* High 6 bits and bit 16-21. */ - #define OPCODE_MASK_H34B 0xFC0000FF /* High 6 bits and low 8 bits. */ -+#define OPCODE_MASK_H35B 0xFC0004FF /* High 6 bits and low 9 bits. */ - #define OPCODE_MASK_H34C 0xFC0007E0 /* High 6 bits and bits 21-26. */ - - /* New Mask for msrset, msrclr insns. */ -@@ -101,7 +102,7 @@ - #define DELAY_SLOT 1 - #define NO_DELAY_SLOT 0 - --#define MAX_OPCODES 289 -+#define MAX_OPCODES 291 - - struct op_code_struct - { -@@ -174,7 +175,9 @@ struct op_code_struct - {"wic", INST_TYPE_R1_R2_SPECIAL, INST_NO_OFFSET, NO_DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0x90000068, OPCODE_MASK_H34B, wic, special_inst }, - {"wdc", INST_TYPE_R1_R2_SPECIAL, INST_NO_OFFSET, NO_DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0x90000064, OPCODE_MASK_H34B, wdc, special_inst }, - {"wdc.clear", INST_TYPE_R1_R2_SPECIAL, INST_NO_OFFSET, NO_DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0x90000066, OPCODE_MASK_H34B, wdcclear, special_inst }, -+ {"wdc.ext.clear", INST_TYPE_R1_R2_SPECIAL, INST_NO_OFFSET, NO_DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0x90000466, OPCODE_MASK_H35B, wdcextclear, special_inst }, - {"wdc.flush", INST_TYPE_R1_R2_SPECIAL, INST_NO_OFFSET, NO_DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0x90000074, OPCODE_MASK_H34B, wdcflush, special_inst }, -+ {"wdc.ext.flush", INST_TYPE_R1_R2_SPECIAL, INST_NO_OFFSET, NO_DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0x90000476, OPCODE_MASK_H35B, wdcextflush, special_inst }, - {"mts", INST_TYPE_SPECIAL_R1, INST_NO_OFFSET, NO_DELAY_SLOT, IMMVAL_MASK_MTS, 0x9400C000, OPCODE_MASK_H13S, mts, special_inst }, - {"mfs", INST_TYPE_RD_SPECIAL, INST_NO_OFFSET, NO_DELAY_SLOT, IMMVAL_MASK_MFS, 0x94008000, OPCODE_MASK_H23S, mfs, special_inst }, - {"br", INST_TYPE_R2, INST_PC_OFFSET, NO_DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0x98000000, OPCODE_MASK_H124, br, branch_inst }, -diff --git a/opcodes/microblaze-opcm.h b/opcodes/microblaze-opcm.h -index 92f3f19..7338f6a 100644 ---- a/opcodes/microblaze-opcm.h -+++ b/opcodes/microblaze-opcm.h -@@ -33,8 +33,8 @@ enum microblaze_instr - /* 'or/and/xor' are C++ keywords. */ - microblaze_or, microblaze_and, microblaze_xor, - andn, pcmpbf, pcmpbc, pcmpeq, pcmpne, sra, src, srl, sext8, sext16, -- wic, wdc, wdcclear, wdcflush, mts, mfs, mbar, br, brd, -- brld, bra, brad, brald, microblaze_brk, beq, beqd, bne, bned, blt, -+ wic, wdc, wdcclear, wdcextclear, wdcflush, wdcextflush, mts, mfs, mbar, br, -+ brd, brld, bra, brad, brald, microblaze_brk, beq, beqd, bne, bned, blt, - bltd, ble, bled, bgt, bgtd, bge, bged, ori, andi, xori, andni, - imm, rtsd, rtid, rtbd, rted, bri, brid, brlid, brai, braid, bralid, - brki, beqi, beqid, bnei, bneid, blti, bltid, blei, bleid, bgti, diff --git a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/binutils/binutils-2.31/0002-MicroBlaze-add-mlittle-endian-and-mbig-endian-flags.patch b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/binutils/binutils-2.31/0002-MicroBlaze-add-mlittle-endian-and-mbig-endian-flags.patch deleted file mode 100644 index edeecfd2..00000000 --- a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/binutils/binutils-2.31/0002-MicroBlaze-add-mlittle-endian-and-mbig-endian-flags.patch +++ /dev/null @@ -1,64 +0,0 @@ -From 8b733a61ab54ba4cedb234020562502d20eebcbb Mon Sep 17 00:00:00 2001 -From: Nagaraju Mekala -Date: Mon, 28 Aug 2017 19:53:53 -0700 -Subject: [PATCH] MicroBlaze add mlittle-endian and mbig-endian flags - -Added support in gas for mlittle-endian and mbig-endian flags -as options. - -Updated show usage for MicroBlaze specific assembler options -to include new entries. - -Signed-off-by: Nagaraju Mekala -Signed-off-by: David Holsgrove -Signed-off-by: Manjukumar Matha -Upstream-Status: Pending - ---- - gas/config/tc-microblaze.c | 9 +++++++++ - 1 file changed, 9 insertions(+) - -diff --git a/gas/config/tc-microblaze.c b/gas/config/tc-microblaze.c -index 0194cd9..42dd7ae 100644 ---- a/gas/config/tc-microblaze.c -+++ b/gas/config/tc-microblaze.c -@@ -37,6 +37,8 @@ - - #define OPTION_EB (OPTION_MD_BASE + 0) - #define OPTION_EL (OPTION_MD_BASE + 1) -+#define OPTION_LITTLE (OPTION_MD_BASE + 2) -+#define OPTION_BIG (OPTION_MD_BASE + 3) - - void microblaze_generate_symbol (char *sym); - static bfd_boolean check_spl_reg (unsigned *); -@@ -1837,6 +1839,8 @@ struct option md_longopts[] = - { - {"EB", no_argument, NULL, OPTION_EB}, - {"EL", no_argument, NULL, OPTION_EL}, -+ {"mlittle-endian", no_argument, NULL, OPTION_LITTLE}, -+ {"mbig-endian", no_argument, NULL, OPTION_BIG}, - { NULL, no_argument, NULL, 0} - }; - -@@ -2471,9 +2475,11 @@ md_parse_option (int c, const char * arg ATTRIBUTE_UNUSED) - switch (c) - { - case OPTION_EB: -+ case OPTION_BIG: - target_big_endian = 1; - break; - case OPTION_EL: -+ case OPTION_LITTLE: - target_big_endian = 0; - break; - default: -@@ -2488,6 +2494,9 @@ md_show_usage (FILE * stream ATTRIBUTE_UNUSED) - /* fprintf(stream, _("\ - MicroBlaze options:\n\ - -noSmall Data in the comm and data sections do not go into the small data section\n")); */ -+ fprintf (stream, _(" MicroBlaze specific assembler options:\n")); -+ fprintf (stream, " -%-23s%s\n", "mbig-endian", N_("assemble for a big endian cpu")); -+ fprintf (stream, " -%-23s%s\n", "mlittle-endian", N_("assemble for a little endian cpu")); - } - - diff --git a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/binutils/binutils-2.31/0003-Disable-the-warning-message-for-eh_frame_hdr.patch b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/binutils/binutils-2.31/0003-Disable-the-warning-message-for-eh_frame_hdr.patch deleted file mode 100644 index aee0c01e..00000000 --- a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/binutils/binutils-2.31/0003-Disable-the-warning-message-for-eh_frame_hdr.patch +++ /dev/null @@ -1,39 +0,0 @@ -From dac72d809be9faf9380b181df0c19a2c6d744c54 Mon Sep 17 00:00:00 2001 -From: "Edgar E. Iglesias" -Date: Mon, 28 Aug 2017 19:53:54 -0700 -Subject: [PATCH] Disable the warning message for eh_frame_hdr - -Upstream-Status: Inappropriate [workaround] - -Rebased to 2.31 - - Error hanlder changed - -Signed-off-by: Alejandro Enedino Hernandez Samaniego -Signed-off-by: Edgar E. Iglesias -Signed-off-by: Manjukumar Matha - ---- - bfd/elf-eh-frame.c | 9 ++++++--- - 1 file changed, 6 insertions(+), 3 deletions(-) - -Index: git/bfd/elf-eh-frame.c -=================================================================== ---- git.orig/bfd/elf-eh-frame.c -+++ git/bfd/elf-eh-frame.c -@@ -1042,10 +1042,13 @@ _bfd_elf_parse_eh_frame (bfd *abfd, stru - goto success; - - free_no_table: -- _bfd_error_handler -+ /* FIXME: Remove the microblaze specifics when relaxing gets fixed. */ -+ if (bfd_get_arch(abfd) != bfd_arch_microblaze) { - /* xgettext:c-format */ -- (_("error in %pB(%pA); no .eh_frame_hdr table will be created"), -- abfd, sec); -+ _bfd_error_handler -+ (_("error in %pB(%pA); no .eh_frame_hdr table will be created"), -+ abfd, sec); -+ } - hdr_info->u.dwarf.table = FALSE; - if (sec_info) - free (sec_info); diff --git a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/binutils/binutils-2.31/0005-Fixup-MicroBlaze-debug_loc-sections-after-linker-rel.patch b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/binutils/binutils-2.31/0005-Fixup-MicroBlaze-debug_loc-sections-after-linker-rel.patch deleted file mode 100644 index 6cdd2cc2..00000000 --- a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/binutils/binutils-2.31/0005-Fixup-MicroBlaze-debug_loc-sections-after-linker-rel.patch +++ /dev/null @@ -1,243 +0,0 @@ -From 5bf68bc39976903929f730b6eed18686c3563c05 Mon Sep 17 00:00:00 2001 -From: Nagaraju Mekala -Date: Mon, 28 Aug 2017 19:53:56 -0700 -Subject: [PATCH] Fixup MicroBlaze debug_loc sections after linker relaxation - -Fixup debug_loc sections after linker relaxation Adds a new reloctype -R_MICROBLAZE_32_NONE, used for passing reloc info from the assembler to -the linker when the linker manages to fully resolve a local symbol -reference. - -This is a workaround for design flaws in the assembler to -linker interface with regards to linker relaxation. - -08/2018 -Rebased for binutils 2.31 - - Some RELOC_NUMBERs were added upstream, rebased to use 33 instead of 30 - -Signed-off-by: Edgar E. Iglesias -Signed-off-by: Nagaraju Mekala -Signed-off-by: Manjukumar Matha -Signed-off-by: Alejandro Enedino Hernandez Samaniego - -Upstream-Status: Pending - ---- - bfd/bfd-in2.h | 9 +++++++-- - bfd/elf32-microblaze.c | 45 ++++++++++++++++++++++++++++++++++++++------- - bfd/libbfd.h | 1 + - bfd/reloc.c | 6 ++++++ - binutils/readelf.c | 4 ++++ - gas/config/tc-microblaze.c | 5 ++++- - include/elf/microblaze.h | 1 + - 7 files changed, 61 insertions(+), 10 deletions(-) - -Index: git/bfd/bfd-in2.h -=================================================================== ---- git.orig/bfd/bfd-in2.h -+++ git/bfd/bfd-in2.h -@@ -5791,10 +5791,15 @@ value relative to the read-write small d - expressions of the form "Symbol Op Symbol" */ - BFD_RELOC_MICROBLAZE_32_SYM_OP_SYM, - --/* This is a 64 bit reloc that stores the 32 bit pc relative -+/* This is a 32 bit reloc that stores the 32 bit pc relative - value in two words (with an imm instruction). No relocation is - done here - only used for relaxing */ -- BFD_RELOC_MICROBLAZE_64_NONE, -+ BFD_RELOC_MICROBLAZE_32_NONE, -+ -+/* This is a 64 bit reloc that stores the 32 bit pc relative -+ * +value in two words (with an imm instruction). No relocation is -+ * +done here - only used for relaxing */ -+ BFD_RELOC_MICROBLAZE_64_NONE, - - /* This is a 64 bit reloc that stores the 32 bit pc relative - value in two words (with an imm instruction). The relocation is -Index: git/bfd/elf32-microblaze.c -=================================================================== ---- git.orig/bfd/elf32-microblaze.c -+++ git/bfd/elf32-microblaze.c -@@ -176,6 +176,20 @@ static reloc_howto_type microblaze_elf_h - 0x0000ffff, /* Dest Mask. */ - FALSE), /* PC relative offset? */ - -+ HOWTO (R_MICROBLAZE_32_NONE, /* Type. */ -+ 0, /* Rightshift. */ -+ 2, /* Size (0 = byte, 1 = short, 2 = long). */ -+ 32, /* Bitsize. */ -+ TRUE, /* PC_relative. */ -+ 0, /* Bitpos. */ -+ complain_overflow_bitfield, /* Complain on overflow. */ -+ NULL, /* Special Function. */ -+ "R_MICROBLAZE_32_NONE",/* Name. */ -+ FALSE, /* Partial Inplace. */ -+ 0, /* Source Mask. */ -+ 0, /* Dest Mask. */ -+ FALSE), /* PC relative offset? */ -+ - /* This reloc does nothing. Used for relaxation. */ - HOWTO (R_MICROBLAZE_64_NONE, /* Type. */ - 0, /* Rightshift. */ -@@ -562,6 +576,9 @@ microblaze_elf_reloc_type_lookup (bfd * - case BFD_RELOC_NONE: - microblaze_reloc = R_MICROBLAZE_NONE; - break; -+ case BFD_RELOC_MICROBLAZE_32_NONE: -+ microblaze_reloc = R_MICROBLAZE_32_NONE; -+ break; - case BFD_RELOC_MICROBLAZE_64_NONE: - microblaze_reloc = R_MICROBLAZE_64_NONE; - break; -@@ -1918,14 +1935,23 @@ microblaze_elf_relax_section (bfd *abfd, - } - break; - case R_MICROBLAZE_NONE: -+ case R_MICROBLAZE_32_NONE: - { - /* This was a PC-relative instruction that was - completely resolved. */ - int sfix, efix; -+ unsigned int val; - bfd_vma target_address; - target_address = irel->r_addend + irel->r_offset; - sfix = calc_fixup (irel->r_offset, 0, sec); - efix = calc_fixup (target_address, 0, sec); -+ -+ /* Validate the in-band val. */ -+ val = bfd_get_32 (abfd, contents + irel->r_offset); -+ if (val != irel->r_addend && ELF32_R_TYPE (irel->r_info) == R_MICROBLAZE_32_NONE) { -+ fprintf(stderr, "%d: CORRUPT relax reloc %x %lx\n", __LINE__, val, irel->r_addend); -+ } -+ - irel->r_addend -= (efix - sfix); - /* Should use HOWTO. */ - microblaze_bfd_write_imm_value_32 (abfd, contents + irel->r_offset, -@@ -1973,12 +1999,16 @@ microblaze_elf_relax_section (bfd *abfd, - irelscanend = irelocs + o->reloc_count; - for (irelscan = irelocs; irelscan < irelscanend; irelscan++) - { -- if (ELF32_R_TYPE (irelscan->r_info) == (int) R_MICROBLAZE_NONE) -+ if (1 && ELF32_R_TYPE (irelscan->r_info) == (int) R_MICROBLAZE_32_NONE) - { - unsigned int val; - - isym = isymbuf + ELF32_R_SYM (irelscan->r_info); - -+ /* hax: We only do the following fixup for debug location lists. */ -+ if (strcmp(".debug_loc", o->name)) -+ continue; -+ - /* This was a PC-relative instruction that was completely resolved. */ - if (ocontents == NULL) - { -@@ -2003,15 +2033,16 @@ microblaze_elf_relax_section (bfd *abfd, - } - } - -- irelscan->r_addend -= calc_fixup (irelscan->r_addend -- + isym->st_value, sec); - val = bfd_get_32 (abfd, ocontents + irelscan->r_offset); -+ -+ if (val != irelscan->r_addend) { -+ fprintf(stderr, "%d: CORRUPT relax reloc! %x %lx\n", __LINE__, val, irelscan->r_addend); -+ } -+ irelscan->r_addend -= calc_fixup (irelscan->r_addend, 0, sec); -+ - microblaze_bfd_write_imm_value_32 (abfd, ocontents + irelscan->r_offset, - irelscan->r_addend); - } -- if (ELF32_R_TYPE (irelscan->r_info) == (int) R_MICROBLAZE_64_NONE) { -- fprintf(stderr, "Unhandled NONE 64\n"); -- } - if (ELF32_R_TYPE (irelscan->r_info) == (int) R_MICROBLAZE_32) - { - isym = isymbuf + ELF32_R_SYM (irelscan->r_info); -@@ -2071,7 +2102,7 @@ microblaze_elf_relax_section (bfd *abfd, - elf_section_data (o)->this_hdr.contents = ocontents; - } - } -- irelscan->r_addend -= calc_fixup (irel->r_addend -+ irelscan->r_addend -= calc_fixup (irelscan->r_addend - + isym->st_value, - 0, - sec); -Index: git/bfd/libbfd.h -=================================================================== ---- git.orig/bfd/libbfd.h -+++ git/bfd/libbfd.h -@@ -2862,6 +2862,7 @@ static const char *const bfd_reloc_code_ - "BFD_RELOC_MICROBLAZE_32_ROSDA", - "BFD_RELOC_MICROBLAZE_32_RWSDA", - "BFD_RELOC_MICROBLAZE_32_SYM_OP_SYM", -+ "BFD_RELOC_MICROBLAZE_32_NONE", - "BFD_RELOC_MICROBLAZE_64_NONE", - "BFD_RELOC_MICROBLAZE_64_GOTPC", - "BFD_RELOC_MICROBLAZE_64_GOT", -Index: git/bfd/reloc.c -=================================================================== ---- git.orig/bfd/reloc.c -+++ git/bfd/reloc.c -@@ -6865,6 +6865,12 @@ ENUMDOC - This is a 32 bit reloc for the microblaze to handle - expressions of the form "Symbol Op Symbol" - ENUM -+ BFD_RELOC_MICROBLAZE_32_NONE -+ENUMDOC -+ This is a 32 bit reloc that stores the 32 bit pc relative -+ value in two words (with an imm instruction). No relocation is -+ done here - only used for relaxing -+ENUM - BFD_RELOC_MICROBLAZE_64_NONE - ENUMDOC - This is a 64 bit reloc that stores the 32 bit pc relative -Index: git/binutils/readelf.c -=================================================================== ---- git.orig/binutils/readelf.c -+++ git/binutils/readelf.c -@@ -12908,6 +12908,10 @@ is_none_reloc (Filedata * filedata, unsi - || reloc_type == 32 /* R_AVR_DIFF32. */); - case EM_METAG: - return reloc_type == 3; /* R_METAG_NONE. */ -+ case EM_MICROBLAZE: -+ return reloc_type == 33 /* R_MICROBLAZE_32_NONE. */ -+ || reloc_type == 0 /* R_MICROBLAZE_NONE. */ -+ || reloc_type == 9; /* R_MICROBLAZE_64_NONE. */ - case EM_NDS32: - return (reloc_type == 0 /* R_XTENSA_NONE. */ - || reloc_type == 204 /* R_NDS32_DIFF8. */ -Index: git/gas/config/tc-microblaze.c -=================================================================== ---- git.orig/gas/config/tc-microblaze.c -+++ git/gas/config/tc-microblaze.c -@@ -2201,7 +2201,9 @@ md_apply_fix (fixS * fixP, - /* This fixup has been resolved. Create a reloc in case the linker - moves code around due to relaxing. */ - if (fixP->fx_r_type == BFD_RELOC_64_PCREL) -- fixP->fx_r_type = BFD_RELOC_MICROBLAZE_64_NONE; -+ fixP->fx_r_type = BFD_RELOC_MICROBLAZE_64_NONE; -+ else if (fixP->fx_r_type == BFD_RELOC_32) -+ fixP->fx_r_type = BFD_RELOC_MICROBLAZE_32_NONE; - else - fixP->fx_r_type = BFD_RELOC_NONE; - fixP->fx_addsy = section_symbol (absolute_section); -@@ -2426,6 +2428,7 @@ tc_gen_reloc (asection * section ATTRIBU - switch (fixp->fx_r_type) - { - case BFD_RELOC_NONE: -+ case BFD_RELOC_MICROBLAZE_32_NONE: - case BFD_RELOC_MICROBLAZE_64_NONE: - case BFD_RELOC_32: - case BFD_RELOC_MICROBLAZE_32_LO: -Index: git/include/elf/microblaze.h -=================================================================== ---- git.orig/include/elf/microblaze.h -+++ git/include/elf/microblaze.h -@@ -61,6 +61,7 @@ START_RELOC_NUMBERS (elf_microblaze_relo - RELOC_NUMBER (R_MICROBLAZE_TEXTPCREL_64, 30) /* PC-relative TEXT offset. */ - RELOC_NUMBER (R_MICROBLAZE_TEXTREL_64, 31) /* TEXT Entry offset 64-bit. */ - RELOC_NUMBER (R_MICROBLAZE_TEXTREL_32_LO, 32) /* TEXT Entry offset 32-bit. */ -+ RELOC_NUMBER (R_MICROBLAZE_32_NONE, 33) - END_RELOC_NUMBERS (R_MICROBLAZE_max) - - /* Global base address names. */ diff --git a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/binutils/binutils-2.31/0006-Fix-bug-in-MicroBlaze-TLSTPREL-Relocation.patch b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/binutils/binutils-2.31/0006-Fix-bug-in-MicroBlaze-TLSTPREL-Relocation.patch deleted file mode 100644 index 8d3d5387..00000000 --- a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/binutils/binutils-2.31/0006-Fix-bug-in-MicroBlaze-TLSTPREL-Relocation.patch +++ /dev/null @@ -1,35 +0,0 @@ -From ca0336a49c33ccb78962530f2affff8982027e8e Mon Sep 17 00:00:00 2001 -From: Nagaraju Mekala -Date: Mon, 28 Aug 2017 19:53:58 -0700 -Subject: [PATCH] Fix bug in MicroBlaze TLSTPREL Relocation - -Fixed the problem related to the fixup/relocations TLSTPREL. -When the fixup is applied the addend is not added at the correct offset -of the instruction. The offset is hard coded considering its big endian -and it fails for Little endian. This patch allows support for both -big & little-endian compilers - -Signed-off-by: Nagaraju Mekala -Signed-off-by: Manjukumar Matha -Upstream-Status: Pending - ---- - bfd/elf32-microblaze.c | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/bfd/elf32-microblaze.c b/bfd/elf32-microblaze.c -index 1dc56f7..d4e53de 100644 ---- a/bfd/elf32-microblaze.c -+++ b/bfd/elf32-microblaze.c -@@ -1451,9 +1451,9 @@ microblaze_elf_relocate_section (bfd *output_bfd, - relocation += addend; - relocation -= dtprel_base(info); - bfd_put_16 (input_bfd, (relocation >> 16) & 0xffff, -- contents + offset + 2); -+ contents + offset + endian); - bfd_put_16 (input_bfd, relocation & 0xffff, -- contents + offset + 2 + INST_WORD_SIZE); -+ contents + offset + endian + INST_WORD_SIZE); - break; - case (int) R_MICROBLAZE_TEXTREL_64: - case (int) R_MICROBLAZE_TEXTREL_32_LO: diff --git a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/binutils/binutils-2.31/0007-Add-MicroBlaze-address-extension-instructions.patch b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/binutils/binutils-2.31/0007-Add-MicroBlaze-address-extension-instructions.patch deleted file mode 100644 index 9672c516..00000000 --- a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/binutils/binutils-2.31/0007-Add-MicroBlaze-address-extension-instructions.patch +++ /dev/null @@ -1,104 +0,0 @@ -From 3895968b5c55321d203cadb7630a2baee8699e17 Mon Sep 17 00:00:00 2001 -From: Nagaraju Mekala -Date: Mon, 28 Aug 2017 19:53:59 -0700 -Subject: [PATCH] Add MicroBlaze address extension instructions - -This patch adds the support of new instructions which are required -for supporting Address extension feature. - -2016-01-18 Nagaraju Mekala - - * microblaze-opc.h (op_code_struct): Added new instructions - * microblaze-opcm.h (microblaze_instr): Added new instructions - -Signed-off-by: Nagaraju Mekala -Signed-off-by: Manjukumar Matha -Upstream-Status: Pending - ---- - opcodes/microblaze-opc.h | 13 ++++++++++++- - opcodes/microblaze-opcm.h | 10 +++++----- - 2 files changed, 17 insertions(+), 6 deletions(-) - -diff --git a/opcodes/microblaze-opc.h b/opcodes/microblaze-opc.h -index 773dc81..4e69f76 100644 ---- a/opcodes/microblaze-opc.h -+++ b/opcodes/microblaze-opc.h -@@ -102,7 +102,7 @@ - #define DELAY_SLOT 1 - #define NO_DELAY_SLOT 0 - --#define MAX_OPCODES 291 -+#define MAX_OPCODES 299 - - struct op_code_struct - { -@@ -178,8 +178,11 @@ struct op_code_struct - {"wdc.ext.clear", INST_TYPE_R1_R2_SPECIAL, INST_NO_OFFSET, NO_DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0x90000466, OPCODE_MASK_H35B, wdcextclear, special_inst }, - {"wdc.flush", INST_TYPE_R1_R2_SPECIAL, INST_NO_OFFSET, NO_DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0x90000074, OPCODE_MASK_H34B, wdcflush, special_inst }, - {"wdc.ext.flush", INST_TYPE_R1_R2_SPECIAL, INST_NO_OFFSET, NO_DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0x90000476, OPCODE_MASK_H35B, wdcextflush, special_inst }, -+ {"wdc.clear.ea", INST_TYPE_R1_R2_SPECIAL, INST_NO_OFFSET, NO_DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0x900000E6, OPCODE_MASK_H34B, wdcclearea, special_inst }, - {"mts", INST_TYPE_SPECIAL_R1, INST_NO_OFFSET, NO_DELAY_SLOT, IMMVAL_MASK_MTS, 0x9400C000, OPCODE_MASK_H13S, mts, special_inst }, -+ {"mtse", INST_TYPE_SPECIAL_R1, INST_NO_OFFSET, NO_DELAY_SLOT, IMMVAL_MASK_MTS, 0x9500C000, OPCODE_MASK_H13S, mtse,special_inst }, - {"mfs", INST_TYPE_RD_SPECIAL, INST_NO_OFFSET, NO_DELAY_SLOT, IMMVAL_MASK_MFS, 0x94008000, OPCODE_MASK_H23S, mfs, special_inst }, -+ {"mfse", INST_TYPE_RD_SPECIAL, INST_NO_OFFSET, NO_DELAY_SLOT, IMMVAL_MASK_MFS, 0x94088000, OPCODE_MASK_H23S, mfse, special_inst }, - {"br", INST_TYPE_R2, INST_PC_OFFSET, NO_DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0x98000000, OPCODE_MASK_H124, br, branch_inst }, - {"brd", INST_TYPE_R2, INST_PC_OFFSET, DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0x98100000, OPCODE_MASK_H124, brd, branch_inst }, - {"brld", INST_TYPE_RD_R2, INST_PC_OFFSET, DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0x98140000, OPCODE_MASK_H24, brld, branch_inst }, -@@ -229,18 +232,24 @@ struct op_code_struct - {"bgeid", INST_TYPE_R1_IMM, INST_PC_OFFSET, DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0xBEA00000, OPCODE_MASK_H1, bgeid, branch_inst }, - {"lbu", INST_TYPE_RD_R1_R2, INST_NO_OFFSET, NO_DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0xC0000000, OPCODE_MASK_H4, lbu, memory_load_inst }, - {"lbur", INST_TYPE_RD_R1_R2, INST_NO_OFFSET, NO_DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0xC0000200, OPCODE_MASK_H4, lbur, memory_load_inst }, -+ {"lbuea", INST_TYPE_RD_R1_R2, INST_NO_OFFSET, NO_DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0xC0000080, OPCODE_MASK_H4, lbuea, memory_load_inst }, - {"lhu", INST_TYPE_RD_R1_R2, INST_NO_OFFSET, NO_DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0xC4000000, OPCODE_MASK_H4, lhu, memory_load_inst }, - {"lhur", INST_TYPE_RD_R1_R2, INST_NO_OFFSET, NO_DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0xC4000200, OPCODE_MASK_H4, lhur, memory_load_inst }, -+ {"lhuea", INST_TYPE_RD_R1_R2, INST_NO_OFFSET, NO_DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0xC4000080, OPCODE_MASK_H4, lhuea, memory_load_inst }, - {"lw", INST_TYPE_RD_R1_R2, INST_NO_OFFSET, NO_DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0xC8000000, OPCODE_MASK_H4, lw, memory_load_inst }, - {"lwr", INST_TYPE_RD_R1_R2, INST_NO_OFFSET, NO_DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0xC8000200, OPCODE_MASK_H4, lwr, memory_load_inst }, - {"lwx", INST_TYPE_RD_R1_R2, INST_NO_OFFSET, NO_DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0xC8000400, OPCODE_MASK_H4, lwx, memory_load_inst }, -+ {"lwea", INST_TYPE_RD_R1_R2, INST_NO_OFFSET, NO_DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0xC8000080, OPCODE_MASK_H4, lwea, memory_load_inst }, - {"sb", INST_TYPE_RD_R1_R2, INST_NO_OFFSET, NO_DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0xD0000000, OPCODE_MASK_H4, sb, memory_store_inst }, - {"sbr", INST_TYPE_RD_R1_R2, INST_NO_OFFSET, NO_DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0xD0000200, OPCODE_MASK_H4, sbr, memory_store_inst }, -+ {"sbea", INST_TYPE_RD_R1_R2, INST_NO_OFFSET, NO_DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0xD0000080, OPCODE_MASK_H4, sbea, memory_store_inst }, - {"sh", INST_TYPE_RD_R1_R2, INST_NO_OFFSET, NO_DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0xD4000000, OPCODE_MASK_H4, sh, memory_store_inst }, - {"shr", INST_TYPE_RD_R1_R2, INST_NO_OFFSET, NO_DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0xD4000200, OPCODE_MASK_H4, shr, memory_store_inst }, -+ {"shea", INST_TYPE_RD_R1_R2, INST_NO_OFFSET, NO_DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0xD4000080, OPCODE_MASK_H4, shea, memory_store_inst }, - {"sw", INST_TYPE_RD_R1_R2, INST_NO_OFFSET, NO_DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0xD8000000, OPCODE_MASK_H4, sw, memory_store_inst }, - {"swr", INST_TYPE_RD_R1_R2, INST_NO_OFFSET, NO_DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0xD8000200, OPCODE_MASK_H4, swr, memory_store_inst }, - {"swx", INST_TYPE_RD_R1_R2, INST_NO_OFFSET, NO_DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0xD8000400, OPCODE_MASK_H4, swx, memory_store_inst }, -+ {"swea", INST_TYPE_RD_R1_R2, INST_NO_OFFSET, NO_DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0xD8000080, OPCODE_MASK_H4, swea, memory_store_inst }, - {"lbui", INST_TYPE_RD_R1_IMM, INST_NO_OFFSET, NO_DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0xE0000000, OPCODE_MASK_H, lbui, memory_load_inst }, - {"lhui", INST_TYPE_RD_R1_IMM, INST_NO_OFFSET, NO_DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0xE4000000, OPCODE_MASK_H, lhui, memory_load_inst }, - {"lwi", INST_TYPE_RD_R1_IMM, INST_NO_OFFSET, NO_DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0xE8000000, OPCODE_MASK_H, lwi, memory_load_inst }, -@@ -405,6 +414,8 @@ struct op_code_struct - {"clz", INST_TYPE_RD_R1, INST_NO_OFFSET, NO_DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0x900000E0, OPCODE_MASK_H34, clz, special_inst }, - {"mbar", INST_TYPE_IMM5, INST_PC_OFFSET, NO_DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0xB8020004, OPCODE_MASK_HN, mbar, special_inst }, - {"sleep", INST_TYPE_NONE, INST_PC_OFFSET, NO_DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0xBA020004, OPCODE_MASK_HN, invalid_inst, special_inst }, /* translates to mbar 16. */ -+ {"hibernate", INST_TYPE_NONE, INST_PC_OFFSET, NO_DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0xB9020004, OPCODE_MASK_HN, invalid_inst, special_inst }, /* translates to mbar 8. */ -+ {"suspend", INST_TYPE_NONE, INST_PC_OFFSET, NO_DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0xBB020004, OPCODE_MASK_HN, invalid_inst, special_inst }, /* translates to mbar 24. */ - {"swapb", INST_TYPE_RD_R1, INST_NO_OFFSET, NO_DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0x900001E0, OPCODE_MASK_H4, swapb, arithmetic_inst }, - {"swaph", INST_TYPE_RD_R1, INST_NO_OFFSET, NO_DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0x900001E2, OPCODE_MASK_H4, swaph, arithmetic_inst }, - {"", 0, 0, 0, 0, 0, 0, 0, 0}, -diff --git a/opcodes/microblaze-opcm.h b/opcodes/microblaze-opcm.h -index 7338f6a..c75f10a 100644 ---- a/opcodes/microblaze-opcm.h -+++ b/opcodes/microblaze-opcm.h -@@ -33,13 +33,13 @@ enum microblaze_instr - /* 'or/and/xor' are C++ keywords. */ - microblaze_or, microblaze_and, microblaze_xor, - andn, pcmpbf, pcmpbc, pcmpeq, pcmpne, sra, src, srl, sext8, sext16, -- wic, wdc, wdcclear, wdcextclear, wdcflush, wdcextflush, mts, mfs, mbar, br, -- brd, brld, bra, brad, brald, microblaze_brk, beq, beqd, bne, bned, blt, -- bltd, ble, bled, bgt, bgtd, bge, bged, ori, andi, xori, andni, -+ wic, wdc, wdcclear, wdcextclear, wdcflush, wdcextflush, wdcclearea, mts, mtse, -+ mfs, mfse, mbar, br, brd, brld, bra, brad, brald, microblaze_brk, beq, beqd, -+ bne, bned, blt, bltd, ble, bled, bgt, bgtd, bge, bged, ori, andi, xori, andni, - imm, rtsd, rtid, rtbd, rted, bri, brid, brlid, brai, braid, bralid, - brki, beqi, beqid, bnei, bneid, blti, bltid, blei, bleid, bgti, -- bgtid, bgei, bgeid, lbu, lbur, lhu, lhur, lw, lwr, lwx, sb, sbr, sh, -- shr, sw, swr, swx, lbui, lhui, lwi, -+ bgtid, bgei, bgeid, lbu, lbuea, lbur, lhu, lhuea, lhur, lw, lwea, lwr, lwx, -+ sb, sbea, sbr, sh, shea, shr, sw, swea, swr, swx, lbui, lhui, lwi, - sbi, shi, swi, msrset, msrclr, tuqula, fadd, frsub, fmul, fdiv, - fcmp_lt, fcmp_eq, fcmp_le, fcmp_gt, fcmp_ne, fcmp_ge, fcmp_un, flt, - fint, fsqrt, diff --git a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/binutils/binutils-2.31/0008-Add-new-MicroBlaze-bit-field-instructions.patch b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/binutils/binutils-2.31/0008-Add-new-MicroBlaze-bit-field-instructions.patch deleted file mode 100644 index 0bc01177..00000000 --- a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/binutils/binutils-2.31/0008-Add-new-MicroBlaze-bit-field-instructions.patch +++ /dev/null @@ -1,232 +0,0 @@ -From 5c4dacaae2ba93569c1d37cda9859c57d6649dc0 Mon Sep 17 00:00:00 2001 -From: Nagaraju Mekala -Date: Mon, 28 Aug 2017 19:54:01 -0700 -Subject: [PATCH] Add new MicroBlaze bit-field instructions - -This patches adds new bsefi and bsifi instructions. BSEFI- The -instruction shall extract a bit field from a register and place it -right-adjusted in the destination register. The other bits in the -destination register shall be set to zero BSIFI- The instruction shall -insert a right-adjusted bit field from a register at another position in -the destination register. The rest of the bits in the destination -register shall be unchanged - -Signed-off-by: Nagaraju Mekala -Signed-off-by: Manjukumar Matha -Upstream-Status: Pending ---- - gas/config/tc-microblaze.c | 71 +++++++++++++++++++++++++++++++++++++++++++++- - opcodes/microblaze-dis.c | 16 +++++++++++ - opcodes/microblaze-opc.h | 12 +++++++- - opcodes/microblaze-opcm.h | 6 +++- - 4 files changed, 102 insertions(+), 3 deletions(-) - -diff --git a/gas/config/tc-microblaze.c b/gas/config/tc-microblaze.c -index e135547e62..34cb80fac2 100644 ---- a/gas/config/tc-microblaze.c -+++ b/gas/config/tc-microblaze.c -@@ -909,7 +909,7 @@ md_assemble (char * str) - unsigned reg2; - unsigned reg3; - unsigned isize; -- unsigned int immed, temp; -+ unsigned int immed, immed2, temp; - expressionS exp; - char name[20]; - -@@ -1164,7 +1164,76 @@ md_assemble (char * str) - inst |= (reg2 << RA_LOW) & RA_MASK; - inst |= (immed << IMM_LOW) & IMM5_MASK; - break; -+ case INST_TYPE_RD_R1_IMM5_IMM5: -+ if (strcmp (op_end, "")) -+ op_end = parse_reg (op_end + 1, ®1); /* Get rd. */ -+ else -+ { -+ as_fatal (_("Error in statement syntax")); -+ reg1 = 0; -+ } -+ if (strcmp (op_end, "")) -+ op_end = parse_reg (op_end + 1, ®2); /* Get r1. */ -+ else -+ { -+ as_fatal (_("Error in statement syntax")); -+ reg2 = 0; -+ } -+ -+ /* Check for spl registers. */ -+ if (check_spl_reg (®1)) -+ as_fatal (_("Cannot use special register with this instruction")); -+ if (check_spl_reg (®2)) -+ as_fatal (_("Cannot use special register with this instruction")); - -+ /* Width immediate value. */ -+ if (strcmp (op_end, "")) -+ op_end = parse_imm (op_end + 1, &exp, MIN_IMM_WIDTH, MAX_IMM_WIDTH); -+ else -+ as_fatal (_("Error in statement syntax")); -+ if (exp.X_op != O_constant) -+ { -+ as_warn (_("Symbol used as immediate width value for bit field instruction")); -+ immed = 1; -+ } -+ else -+ immed = exp.X_add_number; -+ if (opcode->instr == bsefi && immed > 31) -+ as_fatal (_("Width value must be less than 32")); -+ -+ /* Shift immediate value. */ -+ if (strcmp (op_end, "")) -+ op_end = parse_imm (op_end + 1, &exp, MIN_IMM, MAX_IMM); -+ else -+ as_fatal (_("Error in statement syntax")); -+ if (exp.X_op != O_constant) -+ { -+ as_warn (_("Symbol used as immediate shift value for bit field instruction")); -+ immed2 = 0; -+ } -+ else -+ { -+ output = frag_more (isize); -+ immed2 = exp.X_add_number; -+ } -+ if (immed2 != (immed2 % 32)) -+ { -+ as_warn (_("Shift value greater than 32. using ")); -+ immed2 = immed2 % 32; -+ } -+ -+ /* Check combined value. */ -+ if (immed + immed2 > 32) -+ as_fatal (_("Width value + shift value must not be greater than 32")); -+ -+ inst |= (reg1 << RD_LOW) & RD_MASK; -+ inst |= (reg2 << RA_LOW) & RA_MASK; -+ if (opcode->instr == bsefi) -+ inst |= (immed & IMM5_MASK) << IMM_WIDTH_LOW; /* bsefi */ -+ else -+ inst |= ((immed + immed2 - 1) & IMM5_MASK) << IMM_WIDTH_LOW; /* bsifi */ -+ inst |= (immed2 << IMM_LOW) & IMM5_MASK; -+ break; - case INST_TYPE_R1_R2: - if (strcmp (op_end, "")) - op_end = parse_reg (op_end + 1, ®1); /* Get r1. */ -diff --git a/opcodes/microblaze-dis.c b/opcodes/microblaze-dis.c -index 6a174b0eb9..80a47ad2fc 100644 ---- a/opcodes/microblaze-dis.c -+++ b/opcodes/microblaze-dis.c -@@ -73,6 +73,18 @@ get_field_imm5_mbar (long instr) - return(strdup(tmpstr)); - } - -+static char * -+get_field_imm5width (long instr) -+{ -+ char tmpstr[25]; -+ -+ if (instr & 0x00004000) -+ sprintf (tmpstr, "%d", (short)(((instr & IMM5_WIDTH_MASK) >> IMM_WIDTH_LOW))); /* bsefi */ -+ else -+ sprintf (tmpstr, "%d", (short)(((instr & IMM5_WIDTH_MASK) >> IMM_WIDTH_LOW) - ((instr & IMM5_MASK) >> IMM_LOW) + 1)); /* bsifi */ -+ return (strdup (tmpstr)); -+} -+ - static char * - get_field_rfsl (long instr) - { -@@ -396,6 +408,10 @@ print_insn_microblaze (bfd_vma memaddr, struct disassemble_info * info) - /* For mbar 16 or sleep insn. */ - case INST_TYPE_NONE: - break; -+ /* For bit field insns. */ -+ case INST_TYPE_RD_R1_IMM5_IMM5: -+ print_func (stream, "\t%s, %s, %s, %s", get_field_rd (inst),get_field_r1(inst),get_field_imm5width (inst), get_field_imm5 (inst)); -+ break; - /* For tuqula instruction */ - case INST_TYPE_RD: - print_func (stream, "\t%s", get_field_rd (inst)); -diff --git a/opcodes/microblaze-opc.h b/opcodes/microblaze-opc.h -index a64f8362da..afb34989d9 100644 ---- a/opcodes/microblaze-opc.h -+++ b/opcodes/microblaze-opc.h -@@ -59,6 +59,9 @@ - /* For mbar. */ - #define INST_TYPE_IMM5 20 - -+/* For bsefi and bsifi */ -+#define INST_TYPE_RD_R1_IMM5_IMM5 21 -+ - #define INST_TYPE_NONE 25 - - -@@ -89,7 +92,9 @@ - #define OPCODE_MASK_H124 0xFFFF07FF /* High 16, and low 11 bits. */ - #define OPCODE_MASK_H1234 0xFFFFFFFF /* All 32 bits. */ - #define OPCODE_MASK_H3 0xFC000600 /* High 6 bits and bits 21, 22. */ -+#define OPCODE_MASK_H3B 0xFC00C600 /* High 6 bits and bits 16, 17, 21, 22. */ - #define OPCODE_MASK_H32 0xFC00FC00 /* High 6 bits and bit 16-21. */ -+#define OPCODE_MASK_H32B 0xFC00C000 /* High 6 bits and bit 16, 17. */ - #define OPCODE_MASK_H34B 0xFC0000FF /* High 6 bits and low 8 bits. */ - #define OPCODE_MASK_H35B 0xFC0004FF /* High 6 bits and low 9 bits. */ - #define OPCODE_MASK_H34C 0xFC0007E0 /* High 6 bits and bits 21-26. */ -@@ -102,7 +107,7 @@ - #define DELAY_SLOT 1 - #define NO_DELAY_SLOT 0 - --#define MAX_OPCODES 299 -+#define MAX_OPCODES 301 - - struct op_code_struct - { -@@ -159,6 +164,8 @@ struct op_code_struct - {"bslli", INST_TYPE_RD_R1_IMM5, INST_NO_OFFSET, NO_DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0x64000400, OPCODE_MASK_H3, bslli, barrel_shift_inst }, - {"bsrai", INST_TYPE_RD_R1_IMM5, INST_NO_OFFSET, NO_DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0x64000200, OPCODE_MASK_H3, bsrai, barrel_shift_inst }, - {"bsrli", INST_TYPE_RD_R1_IMM5, INST_NO_OFFSET, NO_DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0x64000000, OPCODE_MASK_H3, bsrli, barrel_shift_inst }, -+ {"bsefi", INST_TYPE_RD_R1_IMM5_IMM5, INST_NO_OFFSET, NO_DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0x64004000, OPCODE_MASK_H32B, bsefi, barrel_shift_inst }, -+ {"bsifi", INST_TYPE_RD_R1_IMM5_IMM5, INST_NO_OFFSET, NO_DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0x64008000, OPCODE_MASK_H32B, bsifi, barrel_shift_inst }, - {"or", INST_TYPE_RD_R1_R2, INST_NO_OFFSET, NO_DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0x80000000, OPCODE_MASK_H4, microblaze_or, logical_inst }, - {"and", INST_TYPE_RD_R1_R2, INST_NO_OFFSET, NO_DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0x84000000, OPCODE_MASK_H4, microblaze_and, logical_inst }, - {"xor", INST_TYPE_RD_R1_R2, INST_NO_OFFSET, NO_DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0x88000000, OPCODE_MASK_H4, microblaze_xor, logical_inst }, -@@ -438,5 +445,8 @@ char pvr_register_prefix[] = "rpvr"; - #define MIN_IMM5 ((int) 0x00000000) - #define MAX_IMM5 ((int) 0x0000001f) - -+#define MIN_IMM_WIDTH ((int) 0x00000001) -+#define MAX_IMM_WIDTH ((int) 0x00000020) -+ - #endif /* MICROBLAZE_OPC */ - -diff --git a/opcodes/microblaze-opcm.h b/opcodes/microblaze-opcm.h -index 21a3dc8d76..dd6be7f65c 100644 ---- a/opcodes/microblaze-opcm.h -+++ b/opcodes/microblaze-opcm.h -@@ -29,7 +29,7 @@ enum microblaze_instr - addi, rsubi, addic, rsubic, addik, rsubik, addikc, rsubikc, mul, - mulh, mulhu, mulhsu,swapb,swaph, - idiv, idivu, bsll, bsra, bsrl, get, put, nget, nput, cget, cput, -- ncget, ncput, muli, bslli, bsrai, bsrli, mului, -+ ncget, ncput, muli, bslli, bsrai, bsrli, bsefi, bsifi, mului, - /* 'or/and/xor' are C++ keywords. */ - microblaze_or, microblaze_and, microblaze_xor, - andn, pcmpbf, pcmpbc, pcmpeq, pcmpne, sra, src, srl, sext8, sext16, -@@ -129,6 +129,7 @@ enum microblaze_instr_type - #define RB_LOW 11 /* Low bit for RB. */ - #define IMM_LOW 0 /* Low bit for immediate. */ - #define IMM_MBAR 21 /* low bit for mbar instruction. */ -+#define IMM_WIDTH_LOW 6 /* Low bit for immediate width */ - - #define RD_MASK 0x03E00000 - #define RA_MASK 0x001F0000 -@@ -141,6 +142,9 @@ enum microblaze_instr_type - /* Imm mask for mbar. */ - #define IMM5_MBAR_MASK 0x03E00000 - -+/* Imm mask for extract/insert width. */ -+#define IMM5_WIDTH_MASK 0x000007C0 -+ - /* FSL imm mask for get, put instructions. */ - #define RFSL_MASK 0x000000F - --- -2.15.0 - diff --git a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/binutils/binutils-2.31/0009-Fixing-MicroBlaze-IMM-bug.patch b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/binutils/binutils-2.31/0009-Fixing-MicroBlaze-IMM-bug.patch deleted file mode 100644 index bb7e91cc..00000000 --- a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/binutils/binutils-2.31/0009-Fixing-MicroBlaze-IMM-bug.patch +++ /dev/null @@ -1,29 +0,0 @@ -From f649406ccaea992f3931e0d9ca9fbd6efb0c553b Mon Sep 17 00:00:00 2001 -From: Nagaraju Mekala -Date: Mon, 28 Aug 2017 19:54:02 -0700 -Subject: [PATCH] Fixing MicroBlaze IMM bug - -Fixing the imm bug. with relax option imm -1 is also getting removed this is corrected now. - -Signed-off-by: Nagaraju Mekala -Signed-off-by: Manjukumar Matha -Upstream-Status: Pending - ---- - bfd/elf32-microblaze.c | 3 +-- - 1 file changed, 1 insertion(+), 2 deletions(-) - -diff --git a/bfd/elf32-microblaze.c b/bfd/elf32-microblaze.c -index a94799f..74b00d2 100644 ---- a/bfd/elf32-microblaze.c -+++ b/bfd/elf32-microblaze.c -@@ -1789,8 +1789,7 @@ microblaze_elf_relax_section (bfd *abfd, - else - symval += irel->r_addend; - -- if ((symval & 0xffff8000) == 0 -- || (symval & 0xffff8000) == 0xffff8000) -+ if ((symval & 0xffff8000) == 0) - { - /* We can delete this instruction. */ - sec->relax[sec->relax_count].addr = irel->r_offset; diff --git a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/binutils/binutils-2.31/0010-Fixed-bug-in-GCC-so-that-it-will-support-.long-0U-an.patch b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/binutils/binutils-2.31/0010-Fixed-bug-in-GCC-so-that-it-will-support-.long-0U-an.patch deleted file mode 100644 index 077343e6..00000000 --- a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/binutils/binutils-2.31/0010-Fixed-bug-in-GCC-so-that-it-will-support-.long-0U-an.patch +++ /dev/null @@ -1,34 +0,0 @@ -From e1bacaa7c1aa387f167afff74876c5acdffc39d9 Mon Sep 17 00:00:00 2001 -From: Mahesh Bodapati -Date: Wed, 15 Nov 2017 17:45:35 -0800 -Subject: [PATCH] Fixed bug in GCC so that it will support .long 0U and .long - 0u - -Signed-off-by: Mahesh Bodapati -Signed-off-by: Manjukumar Matha -Upstream-Status: Pending - ---- - gas/expr.c | 9 +++++++++ - 1 file changed, 9 insertions(+) - -diff --git a/gas/expr.c b/gas/expr.c -index 3e28af6..0b7cc76 100644 ---- a/gas/expr.c -+++ b/gas/expr.c -@@ -810,6 +810,15 @@ operand (expressionS *expressionP, enum expr_mode mode) - break; - } - } -+ if ((*input_line_pointer == 'U') || (*input_line_pointer == 'u')) -+ { -+ input_line_pointer--; -+ -+ integer_constant ((NUMBERS_WITH_SUFFIX || flag_m68k_mri) -+ ? 0 : 10, -+ expressionP); -+ break; -+ } - c = *input_line_pointer; - switch (c) - { diff --git a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/binutils/binutils-2.31/0011-Fixing-MicroBlaze-constant-range-check-issue.patch b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/binutils/binutils-2.31/0011-Fixing-MicroBlaze-constant-range-check-issue.patch deleted file mode 100644 index 244a7ade..00000000 --- a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/binutils/binutils-2.31/0011-Fixing-MicroBlaze-constant-range-check-issue.patch +++ /dev/null @@ -1,28 +0,0 @@ -From 9393a3e346d2ccbb86761117260c1dd89070a507 Mon Sep 17 00:00:00 2001 -From: Nagaraju Mekala -Date: Wed, 15 Nov 2017 17:45:34 -0800 -Subject: [PATCH] Fixing MicroBlaze constant range check issue - -Sample error: not in range ffffffff80000000..7fffffff, not ffffffff70000000 - -Signed-off-by: Nagaraju Mekala -Signed-off-by: Manjukumar Matha -Upstream-Status: Pending - ---- - gas/config/tc-microblaze.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/gas/config/tc-microblaze.c b/gas/config/tc-microblaze.c -index 21a5a0c..c614556 100644 ---- a/gas/config/tc-microblaze.c -+++ b/gas/config/tc-microblaze.c -@@ -749,7 +749,7 @@ parse_imm (char * s, expressionS * e, offsetT min, offsetT max) - if ((e->X_add_number >> 31) == 1) - e->X_add_number |= -((addressT) (1U << 31)); - -- if (e->X_add_number < min || e->X_add_number > max) -+ if ((int)e->X_add_number < min || (int)e->X_add_number > max) - { - as_fatal (_("operand must be absolute in range %lx..%lx, not %lx"), - (long) min, (long) max, (long) e->X_add_number); diff --git a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/binutils/binutils-2.31/0012-MicroBlaze-fix-mask-for-barrel-shift-instructions.patch b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/binutils/binutils-2.31/0012-MicroBlaze-fix-mask-for-barrel-shift-instructions.patch deleted file mode 100644 index e340c506..00000000 --- a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/binutils/binutils-2.31/0012-MicroBlaze-fix-mask-for-barrel-shift-instructions.patch +++ /dev/null @@ -1,36 +0,0 @@ -From 732b5a44a0a032da5ebb775b5df2ee2a36af988f Mon Sep 17 00:00:00 2001 -From: Nathan Rossi -Date: Sun, 5 Nov 2017 22:17:39 +1000 -Subject: [PATCH] MicroBlaze fix mask for barrel shift instructions - -As of v10.0 the bsi (bslli/bsrai/bsrli/bsefi/bsifi) instructions have -bits 16 and 17 defined as 'Insert' and 'Extract' respectively to support -bit field insert/extract operations. For the bslli/bsrai/bsrli -instructions these bits must be 0, as such update the opcode mask so -that the bslli/bsrai/bsrli instructions do not also match the bsefi and -bsifi instructions. - -Signed-off-by: Nathan Rossi -Upstream-Status: Pending - ---- - opcodes/microblaze-opc.h | 6 +++--- - 1 file changed, 3 insertions(+), 3 deletions(-) - -diff --git a/opcodes/microblaze-opc.h b/opcodes/microblaze-opc.h -index 4bc400a..9482d81 100644 ---- a/opcodes/microblaze-opc.h -+++ b/opcodes/microblaze-opc.h -@@ -161,9 +161,9 @@ struct op_code_struct - {"ncget", INST_TYPE_RD_RFSL, INST_NO_OFFSET, NO_DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0x6C006000, OPCODE_MASK_H32, ncget, anyware_inst }, - {"ncput", INST_TYPE_R1_RFSL, INST_NO_OFFSET, NO_DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0x6C00E000, OPCODE_MASK_H32, ncput, anyware_inst }, - {"muli", INST_TYPE_RD_R1_IMM, INST_NO_OFFSET, NO_DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0x60000000, OPCODE_MASK_H, muli, mult_inst }, -- {"bslli", INST_TYPE_RD_R1_IMM5, INST_NO_OFFSET, NO_DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0x64000400, OPCODE_MASK_H3, bslli, barrel_shift_inst }, -- {"bsrai", INST_TYPE_RD_R1_IMM5, INST_NO_OFFSET, NO_DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0x64000200, OPCODE_MASK_H3, bsrai, barrel_shift_inst }, -- {"bsrli", INST_TYPE_RD_R1_IMM5, INST_NO_OFFSET, NO_DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0x64000000, OPCODE_MASK_H3, bsrli, barrel_shift_inst }, -+ {"bslli", INST_TYPE_RD_R1_IMM5, INST_NO_OFFSET, NO_DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0x64000400, OPCODE_MASK_H3B, bslli, barrel_shift_inst }, -+ {"bsrai", INST_TYPE_RD_R1_IMM5, INST_NO_OFFSET, NO_DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0x64000200, OPCODE_MASK_H3B, bsrai, barrel_shift_inst }, -+ {"bsrli", INST_TYPE_RD_R1_IMM5, INST_NO_OFFSET, NO_DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0x64000000, OPCODE_MASK_H3B, bsrli, barrel_shift_inst }, - {"bsefi", INST_TYPE_RD_R1_IMM5_IMM5, INST_NO_OFFSET, NO_DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0x64004000, OPCODE_MASK_H32B, bsefi, barrel_shift_inst }, - {"bsifi", INST_TYPE_RD_R1_IMM5_IMM5, INST_NO_OFFSET, NO_DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0x64008000, OPCODE_MASK_H32B, bsifi, barrel_shift_inst }, - {"or", INST_TYPE_RD_R1_R2, INST_NO_OFFSET, NO_DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0x80000000, OPCODE_MASK_H4, microblaze_or, logical_inst }, diff --git a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/binutils/binutils-2.32/0001-Add-wdc.ext.clear-and-wdc.ext.flush-insns.patch b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/binutils/binutils-2.32/0001-Add-wdc.ext.clear-and-wdc.ext.flush-insns.patch new file mode 100644 index 00000000..58608485 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/binutils/binutils-2.32/0001-Add-wdc.ext.clear-and-wdc.ext.flush-insns.patch @@ -0,0 +1,63 @@ +From ad671256112cfee47871e91c6d390daea1b8fa2f Mon Sep 17 00:00:00 2001 +From: David Holsgrove +Date: Wed, 8 May 2013 11:03:36 +1000 +Subject: [PATCH] Add wdc.ext.clear and wdc.ext.flush insns + +Added two new instructions, wdc.ext.clear and wdc.ext.flush, +to enable MicroBlaze to flush an external cache, which is +used with the new coherency support for multiprocessing. + +Signed-off-by: Nagaraju Mekala +Signed-off-by: David Holsgrove + +--- + opcodes/microblaze-opc.h | 5 ++++- + opcodes/microblaze-opcm.h | 4 ++-- + 2 files changed, 6 insertions(+), 3 deletions(-) + +diff --git a/opcodes/microblaze-opc.h b/opcodes/microblaze-opc.h +index 62ee3c9..865151f 100644 +--- a/opcodes/microblaze-opc.h ++++ b/opcodes/microblaze-opc.h +@@ -91,6 +91,7 @@ + #define OPCODE_MASK_H3 0xFC000600 /* High 6 bits and bits 21, 22. */ + #define OPCODE_MASK_H32 0xFC00FC00 /* High 6 bits and bit 16-21. */ + #define OPCODE_MASK_H34B 0xFC0000FF /* High 6 bits and low 8 bits. */ ++#define OPCODE_MASK_H35B 0xFC0004FF /* High 6 bits and low 9 bits. */ + #define OPCODE_MASK_H34C 0xFC0007E0 /* High 6 bits and bits 21-26. */ + + /* New Mask for msrset, msrclr insns. */ +@@ -101,7 +102,7 @@ + #define DELAY_SLOT 1 + #define NO_DELAY_SLOT 0 + +-#define MAX_OPCODES 289 ++#define MAX_OPCODES 291 + + struct op_code_struct + { +@@ -174,7 +175,9 @@ struct op_code_struct + {"wic", INST_TYPE_R1_R2_SPECIAL, INST_NO_OFFSET, NO_DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0x90000068, OPCODE_MASK_H34B, wic, special_inst }, + {"wdc", INST_TYPE_R1_R2_SPECIAL, INST_NO_OFFSET, NO_DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0x90000064, OPCODE_MASK_H34B, wdc, special_inst }, + {"wdc.clear", INST_TYPE_R1_R2_SPECIAL, INST_NO_OFFSET, NO_DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0x90000066, OPCODE_MASK_H34B, wdcclear, special_inst }, ++ {"wdc.ext.clear", INST_TYPE_R1_R2_SPECIAL, INST_NO_OFFSET, NO_DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0x90000466, OPCODE_MASK_H35B, wdcextclear, special_inst }, + {"wdc.flush", INST_TYPE_R1_R2_SPECIAL, INST_NO_OFFSET, NO_DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0x90000074, OPCODE_MASK_H34B, wdcflush, special_inst }, ++ {"wdc.ext.flush", INST_TYPE_R1_R2_SPECIAL, INST_NO_OFFSET, NO_DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0x90000476, OPCODE_MASK_H35B, wdcextflush, special_inst }, + {"mts", INST_TYPE_SPECIAL_R1, INST_NO_OFFSET, NO_DELAY_SLOT, IMMVAL_MASK_MTS, 0x9400C000, OPCODE_MASK_H13S, mts, special_inst }, + {"mfs", INST_TYPE_RD_SPECIAL, INST_NO_OFFSET, NO_DELAY_SLOT, IMMVAL_MASK_MFS, 0x94008000, OPCODE_MASK_H23S, mfs, special_inst }, + {"br", INST_TYPE_R2, INST_PC_OFFSET, NO_DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0x98000000, OPCODE_MASK_H124, br, branch_inst }, +diff --git a/opcodes/microblaze-opcm.h b/opcodes/microblaze-opcm.h +index 5a2d3b0..42f3dd3 100644 +--- a/opcodes/microblaze-opcm.h ++++ b/opcodes/microblaze-opcm.h +@@ -33,8 +33,8 @@ enum microblaze_instr + /* 'or/and/xor' are C++ keywords. */ + microblaze_or, microblaze_and, microblaze_xor, + andn, pcmpbf, pcmpbc, pcmpeq, pcmpne, sra, src, srl, sext8, sext16, +- wic, wdc, wdcclear, wdcflush, mts, mfs, mbar, br, brd, +- brld, bra, brad, brald, microblaze_brk, beq, beqd, bne, bned, blt, ++ wic, wdc, wdcclear, wdcextclear, wdcflush, wdcextflush, mts, mfs, mbar, br, ++ brd, brld, bra, brad, brald, microblaze_brk, beq, beqd, bne, bned, blt, + bltd, ble, bled, bgt, bgtd, bge, bged, ori, andi, xori, andni, + imm, rtsd, rtid, rtbd, rted, bri, brid, brlid, brai, braid, bralid, + brki, beqi, beqid, bnei, bneid, blti, bltid, blei, bleid, bgti, diff --git a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/binutils/binutils-2.32/0002-Add-mlittle-endian-and-mbig-endian-flags.patch b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/binutils/binutils-2.32/0002-Add-mlittle-endian-and-mbig-endian-flags.patch new file mode 100644 index 00000000..f0df4b8f --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/binutils/binutils-2.32/0002-Add-mlittle-endian-and-mbig-endian-flags.patch @@ -0,0 +1,62 @@ +From cd4e233a38df5eee833c77f4393e710ad5383ac0 Mon Sep 17 00:00:00 2001 +From: nagaraju +Date: Tue, 19 Mar 2013 17:18:23 +0530 +Subject: [PATCH] Add mlittle-endian and mbig-endian flags + +Added support in gas for mlittle-endian and mbig-endian flags +as options. + +Updated show usage for MicroBlaze specific assembler options +to include new entries. + +Signed-off-by: Nagaraju Mekala +Signed-off-by: David Holsgrove + +--- + gas/config/tc-microblaze.c | 9 +++++++++ + 1 file changed, 9 insertions(+) + +diff --git a/gas/config/tc-microblaze.c b/gas/config/tc-microblaze.c +index ab90c6b..c92e9ce 100644 +--- a/gas/config/tc-microblaze.c ++++ b/gas/config/tc-microblaze.c +@@ -37,6 +37,8 @@ + + #define OPTION_EB (OPTION_MD_BASE + 0) + #define OPTION_EL (OPTION_MD_BASE + 1) ++#define OPTION_LITTLE (OPTION_MD_BASE + 2) ++#define OPTION_BIG (OPTION_MD_BASE + 3) + + void microblaze_generate_symbol (char *sym); + static bfd_boolean check_spl_reg (unsigned *); +@@ -1845,6 +1847,8 @@ struct option md_longopts[] = + { + {"EB", no_argument, NULL, OPTION_EB}, + {"EL", no_argument, NULL, OPTION_EL}, ++ {"mlittle-endian", no_argument, NULL, OPTION_LITTLE}, ++ {"mbig-endian", no_argument, NULL, OPTION_BIG}, + { NULL, no_argument, NULL, 0} + }; + +@@ -2498,9 +2502,11 @@ md_parse_option (int c, const char * arg ATTRIBUTE_UNUSED) + switch (c) + { + case OPTION_EB: ++ case OPTION_BIG: + target_big_endian = 1; + break; + case OPTION_EL: ++ case OPTION_LITTLE: + target_big_endian = 0; + break; + default: +@@ -2515,6 +2521,9 @@ md_show_usage (FILE * stream ATTRIBUTE_UNUSED) + /* fprintf(stream, _("\ + MicroBlaze options:\n\ + -noSmall Data in the comm and data sections do not go into the small data section\n")); */ ++ fprintf (stream, _(" MicroBlaze specific assembler options:\n")); ++ fprintf (stream, " -%-23s%s\n", "mbig-endian", N_("assemble for a big endian cpu")); ++ fprintf (stream, " -%-23s%s\n", "mlittle-endian", N_("assemble for a little endian cpu")); + } + + diff --git a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/binutils/binutils-2.32/0003-Disable-the-warning-message-for-eh_frame_hdr.patch b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/binutils/binutils-2.32/0003-Disable-the-warning-message-for-eh_frame_hdr.patch new file mode 100644 index 00000000..64d27d92 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/binutils/binutils-2.32/0003-Disable-the-warning-message-for-eh_frame_hdr.patch @@ -0,0 +1,30 @@ +From a8cbf5f3e93150132f194cfa3008fe896457171f Mon Sep 17 00:00:00 2001 +From: "Edgar E. Iglesias" +Date: Fri, 22 Jun 2012 01:20:20 +0200 +Subject: [PATCH] Disable the warning message for eh_frame_hdr + +Signed-off-by: Edgar E. Iglesias +Signed-off-by: Nagaraju Mekala + +--- + bfd/elf-eh-frame.c | 3 +++ + 1 file changed, 3 insertions(+) + +diff --git a/bfd/elf-eh-frame.c b/bfd/elf-eh-frame.c +index a13e81e..1824ba6 100644 +--- a/bfd/elf-eh-frame.c ++++ b/bfd/elf-eh-frame.c +@@ -1044,10 +1044,13 @@ _bfd_elf_parse_eh_frame (bfd *abfd, struct bfd_link_info *info, + goto success; + + free_no_table: ++/* FIXME: Remove the microblaze specifics when relaxing gets fixed. */ ++if (bfd_get_arch(abfd) != bfd_arch_microblaze) { + _bfd_error_handler + /* xgettext:c-format */ + (_("error in %pB(%pA); no .eh_frame_hdr table will be created"), + abfd, sec); ++} + hdr_info->u.dwarf.table = FALSE; + if (sec_info) + free (sec_info); diff --git a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/binutils/binutils-2.31/0004-Fix-relaxation-of-assembler-resolved-references.patch b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/binutils/binutils-2.32/0004-Fix-relaxation-of-assembler-resolved-references.patch similarity index 81% rename from Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/binutils/binutils-2.31/0004-Fix-relaxation-of-assembler-resolved-references.patch rename to Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/binutils/binutils-2.32/0004-Fix-relaxation-of-assembler-resolved-references.patch index b543c54e..4cae439e 100644 --- a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/binutils/binutils-2.31/0004-Fix-relaxation-of-assembler-resolved-references.patch +++ b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/binutils/binutils-2.32/0004-Fix-relaxation-of-assembler-resolved-references.patch @@ -1,27 +1,21 @@ -From 927ef228dfedf229dc915b273a308ab2c7bf9e19 Mon Sep 17 00:00:00 2001 +From 2b87c5c4ec4a7d6285c0991c202aae3cf8401d99 Mon Sep 17 00:00:00 2001 From: "Edgar E. Iglesias" -Date: Mon, 28 Aug 2017 19:53:55 -0700 +Date: Tue, 14 Feb 2012 01:00:22 +0100 Subject: [PATCH] Fix relaxation of assembler resolved references -03/2018 -Rebased for binutils 2.30 - Signed-off-by: Edgar E. Iglesias -Signed-off-by: Manjukumar Matha -Signed-off-by: Alejandro Enedino Hernandez Samaniego - -Upstream-Status: Pending +Signed-off-by: Nagaraju Mekala --- - bfd/elf32-microblaze.c | 39 +++++++++++++++++++++++++++++++++++++++ + bfd/elf32-microblaze.c | 38 ++++++++++++++++++++++++++++++++++++++ gas/config/tc-microblaze.c | 1 + - 2 files changed, 40 insertions(+) + 2 files changed, 39 insertions(+) diff --git a/bfd/elf32-microblaze.c b/bfd/elf32-microblaze.c -index f1808bc..a1d810c 100644 +index e3c8027..359484d 100644 --- a/bfd/elf32-microblaze.c +++ b/bfd/elf32-microblaze.c -@@ -1887,6 +1887,45 @@ microblaze_elf_relax_section (bfd *abfd, +@@ -1973,6 +1973,44 @@ microblaze_elf_relax_section (bfd *abfd, irelscanend = irelocs + o->reloc_count; for (irelscan = irelocs; irelscan < irelscanend; irelscan++) { @@ -54,8 +48,7 @@ index f1808bc..a1d810c 100644 + elf_section_data (o)->this_hdr.contents = ocontents; + } + } -+ -+ irelscan->r_addend -= calc_fixup (irelscan->r_addend ++ irelscan->r_addend -= calc_fixup (irelscan->r_addend + + isym->st_value, sec); + val = bfd_get_32 (abfd, ocontents + irelscan->r_offset); + microblaze_bfd_write_imm_value_32 (abfd, ocontents + irelscan->r_offset, @@ -68,10 +61,10 @@ index f1808bc..a1d810c 100644 { isym = isymbuf + ELF32_R_SYM (irelscan->r_info); diff --git a/gas/config/tc-microblaze.c b/gas/config/tc-microblaze.c -index 42dd7ae..50dbfc7 100644 +index c92e9ce..3e72840 100644 --- a/gas/config/tc-microblaze.c +++ b/gas/config/tc-microblaze.c -@@ -2183,6 +2183,7 @@ md_apply_fix (fixS * fixP, +@@ -2205,6 +2205,7 @@ md_apply_fix (fixS * fixP, else fixP->fx_r_type = BFD_RELOC_NONE; fixP->fx_addsy = section_symbol (absolute_section); diff --git a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/binutils/binutils-2.32/0005-LOCAL-Fixup-debug_loc-sections-after-linker-relaxati.patch b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/binutils/binutils-2.32/0005-LOCAL-Fixup-debug_loc-sections-after-linker-relaxati.patch new file mode 100644 index 00000000..a2954c91 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/binutils/binutils-2.32/0005-LOCAL-Fixup-debug_loc-sections-after-linker-relaxati.patch @@ -0,0 +1,245 @@ +From 68a91eb7ac94f0e0c6e9ebd7ad148c80cbc227df Mon Sep 17 00:00:00 2001 +From: Nagaraju Mekala +Date: Mon, 6 Feb 2017 15:53:08 +0530 +Subject: [PATCH] Fixup debug_loc sections after linker relaxation Adds a new + reloctype R_MICROBLAZE_32_NONE, used for passing reloc info from the + assembler to the linker when the linker manages to fully resolve a local + symbol reference. + +This is a workaround for design flaws in the assembler to +linker interface with regards to linker relaxation. + +Signed-off-by: Edgar E. Iglesias +Signed-off-by: Nagaraju Mekala + +--- + bfd/bfd-in2.h | 9 ++++++-- + bfd/elf32-microblaze.c | 53 ++++++++++++++++++++++++++++++++++------------ + bfd/libbfd.h | 1 + + bfd/reloc.c | 6 ++++++ + binutils/readelf.c | 4 ++++ + gas/config/tc-microblaze.c | 5 ++++- + include/elf/microblaze.h | 2 ++ + 7 files changed, 64 insertions(+), 16 deletions(-) + +diff --git a/bfd/bfd-in2.h b/bfd/bfd-in2.h +index e251d7e..fe6933a 100644 +--- a/bfd/bfd-in2.h ++++ b/bfd/bfd-in2.h +@@ -5867,10 +5867,15 @@ value relative to the read-write small data area anchor */ + expressions of the form "Symbol Op Symbol" */ + BFD_RELOC_MICROBLAZE_32_SYM_OP_SYM, + +-/* This is a 64 bit reloc that stores the 32 bit pc relative ++/* This is a 32 bit reloc that stores the 32 bit pc relative + value in two words (with an imm instruction). No relocation is + done here - only used for relaxing */ +- BFD_RELOC_MICROBLAZE_64_NONE, ++ BFD_RELOC_MICROBLAZE_32_NONE, ++ ++/* This is a 64 bit reloc that stores the 32 bit pc relative ++ * +value in two words (with an imm instruction). No relocation is ++ * +done here - only used for relaxing */ ++ BFD_RELOC_MICROBLAZE_64_NONE, + + /* This is a 64 bit reloc that stores the 32 bit pc relative + value in two words (with an imm instruction). The relocation is +diff --git a/bfd/elf32-microblaze.c b/bfd/elf32-microblaze.c +index 359484d..1c69c26 100644 +--- a/bfd/elf32-microblaze.c ++++ b/bfd/elf32-microblaze.c +@@ -176,7 +176,21 @@ static reloc_howto_type microblaze_elf_howto_raw[] = + 0x0000ffff, /* Dest Mask. */ + FALSE), /* PC relative offset? */ + +- /* This reloc does nothing. Used for relaxation. */ ++ HOWTO (R_MICROBLAZE_32_NONE, /* Type. */ ++ 0, /* Rightshift. */ ++ 2, /* Size (0 = byte, 1 = short, 2 = long). */ ++ 32, /* Bitsize. */ ++ TRUE, /* PC_relative. */ ++ 0, /* Bitpos. */ ++ complain_overflow_bitfield, /* Complain on overflow. */ ++ NULL, /* Special Function. */ ++ "R_MICROBLAZE_32_NONE",/* Name. */ ++ FALSE, /* Partial Inplace. */ ++ 0, /* Source Mask. */ ++ 0, /* Dest Mask. */ ++ FALSE), /* PC relative offset? */ ++ ++ /* This reloc does nothing. Used for relaxation. */ + HOWTO (R_MICROBLAZE_64_NONE, /* Type. */ + 0, /* Rightshift. */ + 3, /* Size (0 = byte, 1 = short, 2 = long). */ +@@ -562,6 +576,9 @@ microblaze_elf_reloc_type_lookup (bfd * abfd ATTRIBUTE_UNUSED, + case BFD_RELOC_NONE: + microblaze_reloc = R_MICROBLAZE_NONE; + break; ++ case BFD_RELOC_MICROBLAZE_32_NONE: ++ microblaze_reloc = R_MICROBLAZE_32_NONE; ++ break; + case BFD_RELOC_MICROBLAZE_64_NONE: + microblaze_reloc = R_MICROBLAZE_64_NONE; + break; +@@ -1918,6 +1935,7 @@ microblaze_elf_relax_section (bfd *abfd, + } + break; + case R_MICROBLAZE_NONE: ++ case R_MICROBLAZE_32_NONE: + { + /* This was a PC-relative instruction that was + completely resolved. */ +@@ -1926,12 +1944,18 @@ microblaze_elf_relax_section (bfd *abfd, + target_address = irel->r_addend + irel->r_offset; + sfix = calc_fixup (irel->r_offset, 0, sec); + efix = calc_fixup (target_address, 0, sec); ++ ++ /* Validate the in-band val. */ ++ val = bfd_get_32 (abfd, contents + irel->r_offset); ++ if (val != irel->r_addend && ELF32_R_TYPE (irel->r_info) == R_MICROBLAZE_32_NONE) { ++ fprintf(stderr, "%d: CORRUPT relax reloc %x %lx\n", __LINE__, val, irel->r_addend); ++ } + irel->r_addend -= (efix - sfix); + /* Should use HOWTO. */ + microblaze_bfd_write_imm_value_32 (abfd, contents + irel->r_offset, + irel->r_addend); +- } +- break; ++ } ++ break; + case R_MICROBLAZE_64_NONE: + { + /* This was a PC-relative 64-bit instruction that was +@@ -1973,12 +1997,16 @@ microblaze_elf_relax_section (bfd *abfd, + irelscanend = irelocs + o->reloc_count; + for (irelscan = irelocs; irelscan < irelscanend; irelscan++) + { +- if (ELF32_R_TYPE (irelscan->r_info) == (int) R_MICROBLAZE_NONE) ++ if (1 && ELF32_R_TYPE (irelscan->r_info) == (int) R_MICROBLAZE_32_NONE) + { + unsigned int val; + + isym = isymbuf + ELF32_R_SYM (irelscan->r_info); + ++ /* hax: We only do the following fixup for debug location lists. */ ++ if (strcmp(".debug_loc", o->name)) ++ continue; ++ + /* This was a PC-relative instruction that was completely resolved. */ + if (ocontents == NULL) + { +@@ -1999,18 +2027,17 @@ microblaze_elf_relax_section (bfd *abfd, + (file_ptr) 0, + o->rawsize)) + goto error_return; +- elf_section_data (o)->this_hdr.contents = ocontents; +- } +- } +- irelscan->r_addend -= calc_fixup (irelscan->r_addend +- + isym->st_value, sec); ++ elf_section_data (o)->this_hdr.contents = ocontents; ++ } ++ } + val = bfd_get_32 (abfd, ocontents + irelscan->r_offset); ++ if (val != irelscan->r_addend) { ++ fprintf(stderr, "%d: CORRUPT relax reloc! %x %lx\n", __LINE__, val, irelscan->r_addend); ++ } ++ irelscan->r_addend -= calc_fixup (irelscan->r_addend, 0, sec); + microblaze_bfd_write_imm_value_32 (abfd, ocontents + irelscan->r_offset, + irelscan->r_addend); + } +- if (ELF32_R_TYPE (irelscan->r_info) == (int) R_MICROBLAZE_64_NONE) { +- fprintf(stderr, "Unhandled NONE 64\n"); +- } + if (ELF32_R_TYPE (irelscan->r_info) == (int) R_MICROBLAZE_32) + { + isym = isymbuf + ELF32_R_SYM (irelscan->r_info); +@@ -2070,7 +2097,7 @@ microblaze_elf_relax_section (bfd *abfd, + elf_section_data (o)->this_hdr.contents = ocontents; + } + } +- irelscan->r_addend -= calc_fixup (irel->r_addend ++ irelscan->r_addend -= calc_fixup (irelscan->r_addend + + isym->st_value, + 0, + sec); +diff --git a/bfd/libbfd.h b/bfd/libbfd.h +index 36284d7..feb9fad 100644 +--- a/bfd/libbfd.h ++++ b/bfd/libbfd.h +@@ -2901,6 +2901,7 @@ static const char *const bfd_reloc_code_real_names[] = { "@@uninitialized@@", + "BFD_RELOC_MICROBLAZE_32_ROSDA", + "BFD_RELOC_MICROBLAZE_32_RWSDA", + "BFD_RELOC_MICROBLAZE_32_SYM_OP_SYM", ++ "BFD_RELOC_MICROBLAZE_32_NONE", + "BFD_RELOC_MICROBLAZE_64_NONE", + "BFD_RELOC_MICROBLAZE_64_GOTPC", + "BFD_RELOC_MICROBLAZE_64_GOT", +diff --git a/bfd/reloc.c b/bfd/reloc.c +index e6446a7..87753ae 100644 +--- a/bfd/reloc.c ++++ b/bfd/reloc.c +@@ -6796,6 +6796,12 @@ ENUMDOC + This is a 32 bit reloc for the microblaze to handle + expressions of the form "Symbol Op Symbol" + ENUM ++ BFD_RELOC_MICROBLAZE_32_NONE ++ENUMDOC ++ This is a 32 bit reloc that stores the 32 bit pc relative ++ value in two words (with an imm instruction). No relocation is ++ done here - only used for relaxing ++ENUM + BFD_RELOC_MICROBLAZE_64_NONE + ENUMDOC + This is a 64 bit reloc that stores the 32 bit pc relative +diff --git a/binutils/readelf.c b/binutils/readelf.c +index 9df3742..1bbc2d1 100644 +--- a/binutils/readelf.c ++++ b/binutils/readelf.c +@@ -13020,6 +13020,10 @@ is_none_reloc (Filedata * filedata, unsigned int reloc_type) + || reloc_type == 32 /* R_AVR_DIFF32. */); + case EM_METAG: + return reloc_type == 3; /* R_METAG_NONE. */ ++ case EM_MICROBLAZE: ++ return reloc_type == 30 /* R_MICROBLAZE_32_NONE. */ ++ || reloc_type == 0 /* R_MICROBLAZE_NONE. */ ++ || reloc_type == 9; /* R_MICROBLAZE_64_NONE. */ + case EM_NDS32: + return (reloc_type == 0 /* R_XTENSA_NONE. */ + || reloc_type == 204 /* R_NDS32_DIFF8. */ +diff --git a/gas/config/tc-microblaze.c b/gas/config/tc-microblaze.c +index 3e72840..fa665b4 100644 +--- a/gas/config/tc-microblaze.c ++++ b/gas/config/tc-microblaze.c +@@ -2201,7 +2201,9 @@ md_apply_fix (fixS * fixP, + /* This fixup has been resolved. Create a reloc in case the linker + moves code around due to relaxing. */ + if (fixP->fx_r_type == BFD_RELOC_64_PCREL) +- fixP->fx_r_type = BFD_RELOC_MICROBLAZE_64_NONE; ++ fixP->fx_r_type = BFD_RELOC_MICROBLAZE_64_NONE; ++ else if (fixP->fx_r_type == BFD_RELOC_32) ++ fixP->fx_r_type = BFD_RELOC_MICROBLAZE_32_NONE; + else + fixP->fx_r_type = BFD_RELOC_NONE; + fixP->fx_addsy = section_symbol (absolute_section); +@@ -2426,6 +2428,7 @@ tc_gen_reloc (asection * section ATTRIBUTE_UNUSED, fixS * fixp) + switch (fixp->fx_r_type) + { + case BFD_RELOC_NONE: ++ case BFD_RELOC_MICROBLAZE_32_NONE: + case BFD_RELOC_MICROBLAZE_64_NONE: + case BFD_RELOC_32: + case BFD_RELOC_MICROBLAZE_32_LO: +diff --git a/include/elf/microblaze.h b/include/elf/microblaze.h +index 830b5ad..6ee0966 100644 +--- a/include/elf/microblaze.h ++++ b/include/elf/microblaze.h +@@ -61,6 +61,8 @@ START_RELOC_NUMBERS (elf_microblaze_reloc_type) + RELOC_NUMBER (R_MICROBLAZE_TEXTPCREL_64, 30) /* PC-relative TEXT offset. */ + RELOC_NUMBER (R_MICROBLAZE_TEXTREL_64, 31) /* TEXT Entry offset 64-bit. */ + RELOC_NUMBER (R_MICROBLAZE_TEXTREL_32_LO, 32) /* TEXT Entry offset 32-bit. */ ++ RELOC_NUMBER (R_MICROBLAZE_32_NONE, 33) ++ + END_RELOC_NUMBERS (R_MICROBLAZE_max) + + /* Global base address names. */ diff --git a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/binutils/binutils-2.32/0006-upstream-change-to-garbage-collection-sweep-causes-m.patch b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/binutils/binutils-2.32/0006-upstream-change-to-garbage-collection-sweep-causes-m.patch new file mode 100644 index 00000000..8c72ecf7 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/binutils/binutils-2.32/0006-upstream-change-to-garbage-collection-sweep-causes-m.patch @@ -0,0 +1,38 @@ +From 0ee164f7e50d88e1cda4fdebd6f7bd182d0f27b3 Mon Sep 17 00:00:00 2001 +From: David Holsgrove +Date: Wed, 27 Feb 2013 13:56:11 +1000 +Subject: [PATCH] upstream change to garbage collection sweep causes mb + regression + +Upstream change for PR13177 now clears the def_regular during gc_sweep of a +section. (All other archs in binutils/bfd/elf32-*.c received an update +to a warning about unresolvable relocations - this warning is not present +in binutils/bfd/elf32-microblaze.c, but this warning check would not +prevent the error being seen) + +The visible issue with this change is when running a c++ application +in Petalinux which links libstdc++.so for exception handling it segfaults +on execution. + +This does not occur if static linking libstdc++.a, so its during the +relocations for a shared lib with garbage collection this occurs + +Signed-off-by: David Holsgrove +Signed-off-by: Nagaraju Mekala + +--- + bfd/elflink.c | 1 - + 1 file changed, 1 deletion(-) + +diff --git a/bfd/elflink.c b/bfd/elflink.c +index e50c0e4..09d43e3 100644 +--- a/bfd/elflink.c ++++ b/bfd/elflink.c +@@ -6187,7 +6187,6 @@ elf_gc_sweep_symbol (struct elf_link_hash_entry *h, void *data) + + inf = (struct elf_gc_sweep_symbol_info *) data; + (*inf->hide_symbol) (inf->info, h, TRUE); +- h->def_regular = 0; + h->ref_regular = 0; + h->ref_regular_nonweak = 0; + } diff --git a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/binutils/binutils-2.32/0007-Fix-bug-in-TLSTPREL-Relocation.patch b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/binutils/binutils-2.32/0007-Fix-bug-in-TLSTPREL-Relocation.patch new file mode 100644 index 00000000..472aa0cf --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/binutils/binutils-2.32/0007-Fix-bug-in-TLSTPREL-Relocation.patch @@ -0,0 +1,33 @@ +From 1367d2933de24720fa24032947f784b72b54e974 Mon Sep 17 00:00:00 2001 +From: Nagaraju Mekala +Date: Mon, 15 Jun 2015 16:50:30 +0530 +Subject: [PATCH] Fix bug in TLSTPREL Relocation + +Fixed the problem related to the fixup/relocations TLSTPREL. +When the fixup is applied the addend is not added at the correct offset +of the instruction. The offset is hard coded considering its big endian +and it fails for Little endian. This patch allows support for both +big & little-endian compilers + +Signed-off-by: Nagaraju Mekala + +--- + bfd/elf32-microblaze.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/bfd/elf32-microblaze.c b/bfd/elf32-microblaze.c +index 1c69c26..d19a6dc 100644 +--- a/bfd/elf32-microblaze.c ++++ b/bfd/elf32-microblaze.c +@@ -1451,9 +1451,9 @@ microblaze_elf_relocate_section (bfd *output_bfd, + relocation += addend; + relocation -= dtprel_base(info); + bfd_put_16 (input_bfd, (relocation >> 16) & 0xffff, +- contents + offset + 2); ++ contents + offset + endian); + bfd_put_16 (input_bfd, relocation & 0xffff, +- contents + offset + 2 + INST_WORD_SIZE); ++ contents + offset + endian + INST_WORD_SIZE); + break; + case (int) R_MICROBLAZE_TEXTREL_64: + case (int) R_MICROBLAZE_TEXTREL_32_LO: diff --git a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/binutils/binutils-2.32/0008-Added-Address-extension-instructions.patch b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/binutils/binutils-2.32/0008-Added-Address-extension-instructions.patch new file mode 100644 index 00000000..23d17935 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/binutils/binutils-2.32/0008-Added-Address-extension-instructions.patch @@ -0,0 +1,96 @@ +From 57675e049d815f6fce100bd5effaea187abacf04 Mon Sep 17 00:00:00 2001 +From: Nagaraju Mekala +Date: Mon, 18 Jan 2016 12:28:21 +0530 +Subject: [PATCH] Added Address extension instructions + +This patch adds the support of new instructions which are required +for supporting Address extension feature. + +Signed-off-by :Nagaraju Mekala + +ChangeLog: + 2016-01-18 Nagaraju Mekala + + *microblaze-opc.h (op_code_struct): Update + Added new instructions + *microblaze-opcm.h (microblaze_instr): Update + Added new instructions + +--- + opcodes/microblaze-opc.h | 11 +++++++++++ + opcodes/microblaze-opcm.h | 10 +++++----- + 2 files changed, 16 insertions(+), 5 deletions(-) + +diff --git a/opcodes/microblaze-opc.h b/opcodes/microblaze-opc.h +index 865151f..330f104 100644 +--- a/opcodes/microblaze-opc.h ++++ b/opcodes/microblaze-opc.h +@@ -178,8 +178,11 @@ struct op_code_struct + {"wdc.ext.clear", INST_TYPE_R1_R2_SPECIAL, INST_NO_OFFSET, NO_DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0x90000466, OPCODE_MASK_H35B, wdcextclear, special_inst }, + {"wdc.flush", INST_TYPE_R1_R2_SPECIAL, INST_NO_OFFSET, NO_DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0x90000074, OPCODE_MASK_H34B, wdcflush, special_inst }, + {"wdc.ext.flush", INST_TYPE_R1_R2_SPECIAL, INST_NO_OFFSET, NO_DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0x90000476, OPCODE_MASK_H35B, wdcextflush, special_inst }, ++ {"wdc.clear.ea", INST_TYPE_R1_R2_SPECIAL, INST_NO_OFFSET, NO_DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0x900000E6, OPCODE_MASK_H34B, wdcclearea, special_inst }, + {"mts", INST_TYPE_SPECIAL_R1, INST_NO_OFFSET, NO_DELAY_SLOT, IMMVAL_MASK_MTS, 0x9400C000, OPCODE_MASK_H13S, mts, special_inst }, ++ {"mtse", INST_TYPE_SPECIAL_R1, INST_NO_OFFSET, NO_DELAY_SLOT, IMMVAL_MASK_MTS, 0x9500C000, OPCODE_MASK_H13S, mtse,special_inst }, + {"mfs", INST_TYPE_RD_SPECIAL, INST_NO_OFFSET, NO_DELAY_SLOT, IMMVAL_MASK_MFS, 0x94008000, OPCODE_MASK_H23S, mfs, special_inst }, ++ {"mfse", INST_TYPE_RD_SPECIAL, INST_NO_OFFSET, NO_DELAY_SLOT, IMMVAL_MASK_MFS, 0x94088000, OPCODE_MASK_H23S, mfse, special_inst }, + {"br", INST_TYPE_R2, INST_PC_OFFSET, NO_DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0x98000000, OPCODE_MASK_H124, br, branch_inst }, + {"brd", INST_TYPE_R2, INST_PC_OFFSET, DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0x98100000, OPCODE_MASK_H124, brd, branch_inst }, + {"brld", INST_TYPE_RD_R2, INST_PC_OFFSET, DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0x98140000, OPCODE_MASK_H24, brld, branch_inst }, +@@ -229,18 +232,24 @@ struct op_code_struct + {"bgeid", INST_TYPE_R1_IMM, INST_PC_OFFSET, DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0xBEA00000, OPCODE_MASK_H1, bgeid, branch_inst }, + {"lbu", INST_TYPE_RD_R1_R2, INST_NO_OFFSET, NO_DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0xC0000000, OPCODE_MASK_H4, lbu, memory_load_inst }, + {"lbur", INST_TYPE_RD_R1_R2, INST_NO_OFFSET, NO_DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0xC0000200, OPCODE_MASK_H4, lbur, memory_load_inst }, ++ {"lbuea", INST_TYPE_RD_R1_R2, INST_NO_OFFSET, NO_DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0xC0000080, OPCODE_MASK_H4, lbuea, memory_load_inst }, + {"lhu", INST_TYPE_RD_R1_R2, INST_NO_OFFSET, NO_DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0xC4000000, OPCODE_MASK_H4, lhu, memory_load_inst }, + {"lhur", INST_TYPE_RD_R1_R2, INST_NO_OFFSET, NO_DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0xC4000200, OPCODE_MASK_H4, lhur, memory_load_inst }, ++ {"lhuea", INST_TYPE_RD_R1_R2, INST_NO_OFFSET, NO_DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0xC4000080, OPCODE_MASK_H4, lhuea, memory_load_inst }, + {"lw", INST_TYPE_RD_R1_R2, INST_NO_OFFSET, NO_DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0xC8000000, OPCODE_MASK_H4, lw, memory_load_inst }, + {"lwr", INST_TYPE_RD_R1_R2, INST_NO_OFFSET, NO_DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0xC8000200, OPCODE_MASK_H4, lwr, memory_load_inst }, + {"lwx", INST_TYPE_RD_R1_R2, INST_NO_OFFSET, NO_DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0xC8000400, OPCODE_MASK_H4, lwx, memory_load_inst }, ++ {"lwea", INST_TYPE_RD_R1_R2, INST_NO_OFFSET, NO_DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0xC8000080, OPCODE_MASK_H4, lwea, memory_load_inst }, + {"sb", INST_TYPE_RD_R1_R2, INST_NO_OFFSET, NO_DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0xD0000000, OPCODE_MASK_H4, sb, memory_store_inst }, + {"sbr", INST_TYPE_RD_R1_R2, INST_NO_OFFSET, NO_DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0xD0000200, OPCODE_MASK_H4, sbr, memory_store_inst }, ++ {"sbea", INST_TYPE_RD_R1_R2, INST_NO_OFFSET, NO_DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0xD0000080, OPCODE_MASK_H4, sbea, memory_store_inst }, + {"sh", INST_TYPE_RD_R1_R2, INST_NO_OFFSET, NO_DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0xD4000000, OPCODE_MASK_H4, sh, memory_store_inst }, + {"shr", INST_TYPE_RD_R1_R2, INST_NO_OFFSET, NO_DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0xD4000200, OPCODE_MASK_H4, shr, memory_store_inst }, ++ {"shea", INST_TYPE_RD_R1_R2, INST_NO_OFFSET, NO_DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0xD4000080, OPCODE_MASK_H4, shea, memory_store_inst }, + {"sw", INST_TYPE_RD_R1_R2, INST_NO_OFFSET, NO_DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0xD8000000, OPCODE_MASK_H4, sw, memory_store_inst }, + {"swr", INST_TYPE_RD_R1_R2, INST_NO_OFFSET, NO_DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0xD8000200, OPCODE_MASK_H4, swr, memory_store_inst }, + {"swx", INST_TYPE_RD_R1_R2, INST_NO_OFFSET, NO_DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0xD8000400, OPCODE_MASK_H4, swx, memory_store_inst }, ++ {"swea", INST_TYPE_RD_R1_R2, INST_NO_OFFSET, NO_DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0xD8000080, OPCODE_MASK_H4, swea, memory_store_inst }, + {"lbui", INST_TYPE_RD_R1_IMM, INST_NO_OFFSET, NO_DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0xE0000000, OPCODE_MASK_H, lbui, memory_load_inst }, + {"lhui", INST_TYPE_RD_R1_IMM, INST_NO_OFFSET, NO_DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0xE4000000, OPCODE_MASK_H, lhui, memory_load_inst }, + {"lwi", INST_TYPE_RD_R1_IMM, INST_NO_OFFSET, NO_DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0xE8000000, OPCODE_MASK_H, lwi, memory_load_inst }, +@@ -405,6 +414,8 @@ struct op_code_struct + {"clz", INST_TYPE_RD_R1, INST_NO_OFFSET, NO_DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0x900000E0, OPCODE_MASK_H34, clz, special_inst }, + {"mbar", INST_TYPE_IMM5, INST_PC_OFFSET, NO_DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0xB8020004, OPCODE_MASK_HN, mbar, special_inst }, + {"sleep", INST_TYPE_NONE, INST_PC_OFFSET, NO_DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0xBA020004, OPCODE_MASK_HN, invalid_inst, special_inst }, /* translates to mbar 16. */ ++ {"hibernate", INST_TYPE_NONE, INST_PC_OFFSET, NO_DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0xB9020004, OPCODE_MASK_HN, invalid_inst, special_inst }, /* translates to mbar 8. */ ++ {"suspend", INST_TYPE_NONE, INST_PC_OFFSET, NO_DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0xBB020004, OPCODE_MASK_HN, invalid_inst, special_inst }, /* translates to mbar 24. */ + {"swapb", INST_TYPE_RD_R1, INST_NO_OFFSET, NO_DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0x900001E0, OPCODE_MASK_H4, swapb, arithmetic_inst }, + {"swaph", INST_TYPE_RD_R1, INST_NO_OFFSET, NO_DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0x900001E2, OPCODE_MASK_H4, swaph, arithmetic_inst }, + {"", 0, 0, 0, 0, 0, 0, 0, 0}, +diff --git a/opcodes/microblaze-opcm.h b/opcodes/microblaze-opcm.h +index 42f3dd3..1c39dbf 100644 +--- a/opcodes/microblaze-opcm.h ++++ b/opcodes/microblaze-opcm.h +@@ -33,13 +33,13 @@ enum microblaze_instr + /* 'or/and/xor' are C++ keywords. */ + microblaze_or, microblaze_and, microblaze_xor, + andn, pcmpbf, pcmpbc, pcmpeq, pcmpne, sra, src, srl, sext8, sext16, +- wic, wdc, wdcclear, wdcextclear, wdcflush, wdcextflush, mts, mfs, mbar, br, +- brd, brld, bra, brad, brald, microblaze_brk, beq, beqd, bne, bned, blt, +- bltd, ble, bled, bgt, bgtd, bge, bged, ori, andi, xori, andni, ++ wic, wdc, wdcclear, wdcextclear, wdcflush, wdcextflush, wdcclearea, mts, mtse, ++ mfs, mfse, mbar, br, brd, brld, bra, brad, brald, microblaze_brk, beq, beqd, ++ bne, bned, blt, bltd, ble, bled, bgt, bgtd, bge, bged, ori, andi, xori, andni, + imm, rtsd, rtid, rtbd, rted, bri, brid, brlid, brai, braid, bralid, + brki, beqi, beqid, bnei, bneid, blti, bltid, blei, bleid, bgti, +- bgtid, bgei, bgeid, lbu, lbur, lhu, lhur, lw, lwr, lwx, sb, sbr, sh, +- shr, sw, swr, swx, lbui, lhui, lwi, ++ bgtid, bgei, bgeid, lbu, lbuea, lbur, lhu, lhuea, lhur, lw, lwea, lwr, lwx, ++ sb, sbea, sbr, sh, shea, shr, sw, swea, swr, swx, lbui, lhui, lwi, + sbi, shi, swi, msrset, msrclr, tuqula, fadd, frsub, fmul, fdiv, + fcmp_lt, fcmp_eq, fcmp_le, fcmp_gt, fcmp_ne, fcmp_ge, fcmp_un, flt, + fint, fsqrt, diff --git a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/binutils/binutils-2.32/0009-fixing-the-MAX_OPCODES-to-correct-value.patch b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/binutils/binutils-2.32/0009-fixing-the-MAX_OPCODES-to-correct-value.patch new file mode 100644 index 00000000..0eaa6990 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/binutils/binutils-2.32/0009-fixing-the-MAX_OPCODES-to-correct-value.patch @@ -0,0 +1,24 @@ +From 98b1a76e13ad32c979208a22e5b6b7cb260426b0 Mon Sep 17 00:00:00 2001 +From: Nagaraju Mekala +Date: Thu, 28 Jan 2016 14:07:34 +0530 +Subject: [PATCH] fixing the MAX_OPCODES to correct value + +Signed-off-by: Nagaraju Mekala + +--- + opcodes/microblaze-opc.h | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/opcodes/microblaze-opc.h b/opcodes/microblaze-opc.h +index 330f104..2a6b841 100644 +--- a/opcodes/microblaze-opc.h ++++ b/opcodes/microblaze-opc.h +@@ -102,7 +102,7 @@ + #define DELAY_SLOT 1 + #define NO_DELAY_SLOT 0 + +-#define MAX_OPCODES 291 ++#define MAX_OPCODES 299 + + struct op_code_struct + { diff --git a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/binutils/binutils-2.32/0010-Add-new-bit-field-instructions.patch b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/binutils/binutils-2.32/0010-Add-new-bit-field-instructions.patch new file mode 100644 index 00000000..ea288aa1 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/binutils/binutils-2.32/0010-Add-new-bit-field-instructions.patch @@ -0,0 +1,228 @@ +From 200359b776fbb19a1423ff4d0c46f5301af197c6 Mon Sep 17 00:00:00 2001 +From: Nagaraju Mekala +Date: Mon, 18 Jul 2016 12:24:28 +0530 +Subject: [PATCH] Add new bit-field instructions + +This patches adds new bsefi and bsifi instructions. +BSEFI- The instruction shall extract a bit field from a +register and place it right-adjusted in the destination register. +The other bits in the destination register shall be set to zero +BSIFI- The instruction shall insert a right-adjusted bit field +from a register at another position in the destination register. +The rest of the bits in the destination register shall be unchanged + +Signed-off-by :Nagaraju Mekala + +--- + gas/config/tc-microblaze.c | 71 +++++++++++++++++++++++++++++++++++++++++++++- + opcodes/microblaze-dis.c | 16 +++++++++++ + opcodes/microblaze-opc.h | 12 +++++++- + opcodes/microblaze-opcm.h | 6 +++- + 4 files changed, 102 insertions(+), 3 deletions(-) + +diff --git a/gas/config/tc-microblaze.c b/gas/config/tc-microblaze.c +index fa665b4..71bb888 100644 +--- a/gas/config/tc-microblaze.c ++++ b/gas/config/tc-microblaze.c +@@ -917,7 +917,7 @@ md_assemble (char * str) + unsigned reg2; + unsigned reg3; + unsigned isize; +- unsigned int immed, temp; ++ unsigned int immed, immed2, temp; + expressionS exp; + char name[20]; + +@@ -1172,7 +1172,76 @@ md_assemble (char * str) + inst |= (reg2 << RA_LOW) & RA_MASK; + inst |= (immed << IMM_LOW) & IMM5_MASK; + break; ++ case INST_TYPE_RD_R1_IMM5_IMM5: ++ if (strcmp (op_end, "")) ++ op_end = parse_reg (op_end + 1, ®1); /* Get rd. */ ++ else ++ { ++ as_fatal (_("Error in statement syntax")); ++ reg1 = 0; ++ } ++ if (strcmp (op_end, "")) ++ op_end = parse_reg (op_end + 1, ®2); /* Get r1. */ ++ else ++ { ++ as_fatal (_("Error in statement syntax")); ++ reg2 = 0; ++ } ++ ++ /* Check for spl registers. */ ++ if (check_spl_reg (®1)) ++ as_fatal (_("Cannot use special register with this instruction")); ++ if (check_spl_reg (®2)) ++ as_fatal (_("Cannot use special register with this instruction")); + ++ /* Width immediate value. */ ++ if (strcmp (op_end, "")) ++ op_end = parse_imm (op_end + 1, &exp, MIN_IMM_WIDTH, MAX_IMM_WIDTH); ++ else ++ as_fatal (_("Error in statement syntax")); ++ if (exp.X_op != O_constant) ++ { ++ as_warn (_("Symbol used as immediate width value for bit field instruction")); ++ immed = 1; ++ } ++ else ++ immed = exp.X_add_number; ++ if (opcode->instr == bsefi && immed > 31) ++ as_fatal (_("Width value must be less than 32")); ++ ++ /* Shift immediate value. */ ++ if (strcmp (op_end, "")) ++ op_end = parse_imm (op_end + 1, &exp, MIN_IMM, MAX_IMM); ++ else ++ as_fatal (_("Error in statement syntax")); ++ if (exp.X_op != O_constant) ++ { ++ as_warn (_("Symbol used as immediate shift value for bit field instruction")); ++ immed2 = 0; ++ } ++ else ++ { ++ output = frag_more (isize); ++ immed2 = exp.X_add_number; ++ } ++ if (immed2 != (immed2 % 32)) ++ { ++ as_warn (_("Shift value greater than 32. using ")); ++ immed2 = immed2 % 32; ++ } ++ ++ /* Check combined value. */ ++ if (immed + immed2 > 32) ++ as_fatal (_("Width value + shift value must not be greater than 32")); ++ ++ inst |= (reg1 << RD_LOW) & RD_MASK; ++ inst |= (reg2 << RA_LOW) & RA_MASK; ++ if (opcode->instr == bsefi) ++ inst |= (immed & IMM5_MASK) << IMM_WIDTH_LOW; /* bsefi */ ++ else ++ inst |= ((immed + immed2 - 1) & IMM5_MASK) << IMM_WIDTH_LOW; /* bsifi */ ++ inst |= (immed2 << IMM_LOW) & IMM5_MASK; ++ break; + case INST_TYPE_R1_R2: + if (strcmp (op_end, "")) + op_end = parse_reg (op_end + 1, ®1); /* Get r1. */ +diff --git a/opcodes/microblaze-dis.c b/opcodes/microblaze-dis.c +index f691740..f8aaf27 100644 +--- a/opcodes/microblaze-dis.c ++++ b/opcodes/microblaze-dis.c +@@ -74,6 +74,18 @@ get_field_imm5_mbar (long instr) + } + + static char * ++get_field_imm5width (long instr) ++{ ++ char tmpstr[25]; ++ ++ if (instr & 0x00004000) ++ sprintf (tmpstr, "%d", (short)(((instr & IMM5_WIDTH_MASK) >> IMM_WIDTH_LOW))); /* bsefi */ ++ else ++ sprintf (tmpstr, "%d", (short)(((instr & IMM5_WIDTH_MASK) >> IMM_WIDTH_LOW) - ((instr & IMM5_MASK) >> IMM_LOW) + 1)); /* bsifi */ ++ return (strdup (tmpstr)); ++} ++ ++static char * + get_field_rfsl (long instr) + { + char tmpstr[25]; +@@ -396,6 +408,10 @@ print_insn_microblaze (bfd_vma memaddr, struct disassemble_info * info) + /* For mbar 16 or sleep insn. */ + case INST_TYPE_NONE: + break; ++ /* For bit field insns. */ ++ case INST_TYPE_RD_R1_IMM5_IMM5: ++ print_func (stream, "\t%s, %s, %s, %s", get_field_rd (inst),get_field_r1(inst),get_field_imm5width (inst), get_field_imm5 (inst)); ++ break; + /* For tuqula instruction */ + case INST_TYPE_RD: + print_func (stream, "\t%s", get_field_rd (inst)); +diff --git a/opcodes/microblaze-opc.h b/opcodes/microblaze-opc.h +index 2a6b841..ce8ac35 100644 +--- a/opcodes/microblaze-opc.h ++++ b/opcodes/microblaze-opc.h +@@ -59,6 +59,9 @@ + /* For mbar. */ + #define INST_TYPE_IMM5 20 + ++/* For bsefi and bsifi */ ++#define INST_TYPE_RD_R1_IMM5_IMM5 21 ++ + #define INST_TYPE_NONE 25 + + +@@ -89,7 +92,9 @@ + #define OPCODE_MASK_H124 0xFFFF07FF /* High 16, and low 11 bits. */ + #define OPCODE_MASK_H1234 0xFFFFFFFF /* All 32 bits. */ + #define OPCODE_MASK_H3 0xFC000600 /* High 6 bits and bits 21, 22. */ ++#define OPCODE_MASK_H3B 0xFC00C600 /* High 6 bits and bits 16, 17, 21, 22. */ + #define OPCODE_MASK_H32 0xFC00FC00 /* High 6 bits and bit 16-21. */ ++#define OPCODE_MASK_H32B 0xFC00C000 /* High 6 bits and bit 16, 17. */ + #define OPCODE_MASK_H34B 0xFC0000FF /* High 6 bits and low 8 bits. */ + #define OPCODE_MASK_H35B 0xFC0004FF /* High 6 bits and low 9 bits. */ + #define OPCODE_MASK_H34C 0xFC0007E0 /* High 6 bits and bits 21-26. */ +@@ -102,7 +107,7 @@ + #define DELAY_SLOT 1 + #define NO_DELAY_SLOT 0 + +-#define MAX_OPCODES 299 ++#define MAX_OPCODES 301 + + struct op_code_struct + { +@@ -159,6 +164,8 @@ struct op_code_struct + {"bslli", INST_TYPE_RD_R1_IMM5, INST_NO_OFFSET, NO_DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0x64000400, OPCODE_MASK_H3, bslli, barrel_shift_inst }, + {"bsrai", INST_TYPE_RD_R1_IMM5, INST_NO_OFFSET, NO_DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0x64000200, OPCODE_MASK_H3, bsrai, barrel_shift_inst }, + {"bsrli", INST_TYPE_RD_R1_IMM5, INST_NO_OFFSET, NO_DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0x64000000, OPCODE_MASK_H3, bsrli, barrel_shift_inst }, ++ {"bsefi", INST_TYPE_RD_R1_IMM5_IMM5, INST_NO_OFFSET, NO_DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0x64004000, OPCODE_MASK_H32B, bsefi, barrel_shift_inst }, ++ {"bsifi", INST_TYPE_RD_R1_IMM5_IMM5, INST_NO_OFFSET, NO_DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0x64008000, OPCODE_MASK_H32B, bsifi, barrel_shift_inst }, + {"or", INST_TYPE_RD_R1_R2, INST_NO_OFFSET, NO_DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0x80000000, OPCODE_MASK_H4, microblaze_or, logical_inst }, + {"and", INST_TYPE_RD_R1_R2, INST_NO_OFFSET, NO_DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0x84000000, OPCODE_MASK_H4, microblaze_and, logical_inst }, + {"xor", INST_TYPE_RD_R1_R2, INST_NO_OFFSET, NO_DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0x88000000, OPCODE_MASK_H4, microblaze_xor, logical_inst }, +@@ -438,5 +445,8 @@ char pvr_register_prefix[] = "rpvr"; + #define MIN_IMM5 ((int) 0x00000000) + #define MAX_IMM5 ((int) 0x0000001f) + ++#define MIN_IMM_WIDTH ((int) 0x00000001) ++#define MAX_IMM_WIDTH ((int) 0x00000020) ++ + #endif /* MICROBLAZE_OPC */ + +diff --git a/opcodes/microblaze-opcm.h b/opcodes/microblaze-opcm.h +index 1c39dbf..2866269 100644 +--- a/opcodes/microblaze-opcm.h ++++ b/opcodes/microblaze-opcm.h +@@ -29,7 +29,7 @@ enum microblaze_instr + addi, rsubi, addic, rsubic, addik, rsubik, addikc, rsubikc, mul, + mulh, mulhu, mulhsu,swapb,swaph, + idiv, idivu, bsll, bsra, bsrl, get, put, nget, nput, cget, cput, +- ncget, ncput, muli, bslli, bsrai, bsrli, mului, ++ ncget, ncput, muli, bslli, bsrai, bsrli, bsefi, bsifi, mului, + /* 'or/and/xor' are C++ keywords. */ + microblaze_or, microblaze_and, microblaze_xor, + andn, pcmpbf, pcmpbc, pcmpeq, pcmpne, sra, src, srl, sext8, sext16, +@@ -129,6 +129,7 @@ enum microblaze_instr_type + #define RB_LOW 11 /* Low bit for RB. */ + #define IMM_LOW 0 /* Low bit for immediate. */ + #define IMM_MBAR 21 /* low bit for mbar instruction. */ ++#define IMM_WIDTH_LOW 6 /* Low bit for immediate width */ + + #define RD_MASK 0x03E00000 + #define RA_MASK 0x001F0000 +@@ -141,6 +142,9 @@ enum microblaze_instr_type + /* Imm mask for mbar. */ + #define IMM5_MBAR_MASK 0x03E00000 + ++/* Imm mask for extract/insert width. */ ++#define IMM5_WIDTH_MASK 0x000007C0 ++ + /* FSL imm mask for get, put instructions. */ + #define RFSL_MASK 0x000000F + diff --git a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/binutils/binutils-2.32/0011-fixing-the-imm-bug.patch b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/binutils/binutils-2.32/0011-fixing-the-imm-bug.patch new file mode 100644 index 00000000..43d368c3 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/binutils/binutils-2.32/0011-fixing-the-imm-bug.patch @@ -0,0 +1,26 @@ +From cb65478b8ec240b372a9da7fe33875a59e89a1fe Mon Sep 17 00:00:00 2001 +From: Nagaraju Mekala +Date: Mon, 10 Jul 2017 16:07:28 +0530 +Subject: [PATCH] fixing the imm bug. with relax option imm -1 is also getting + removed this is corrected now. + +Signed-off-by: Nagaraju Mekala + +--- + bfd/elf32-microblaze.c | 3 +-- + 1 file changed, 1 insertion(+), 2 deletions(-) + +diff --git a/bfd/elf32-microblaze.c b/bfd/elf32-microblaze.c +index d19a6dc..d001437 100644 +--- a/bfd/elf32-microblaze.c ++++ b/bfd/elf32-microblaze.c +@@ -1869,8 +1869,7 @@ microblaze_elf_relax_section (bfd *abfd, + else + symval += irel->r_addend; + +- if ((symval & 0xffff8000) == 0 +- || (symval & 0xffff8000) == 0xffff8000) ++ if ((symval & 0xffff8000) == 0) + { + /* We can delete this instruction. */ + sec->relax[sec->relax_count].addr = irel->r_offset; diff --git a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/binutils/binutils-2.32/0012-Patch-Microblaze-fixed-bug-in-GCC-so-that-It-will-su.patch b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/binutils/binutils-2.32/0012-Patch-Microblaze-fixed-bug-in-GCC-so-that-It-will-su.patch new file mode 100644 index 00000000..9abed968 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/binutils/binutils-2.32/0012-Patch-Microblaze-fixed-bug-in-GCC-so-that-It-will-su.patch @@ -0,0 +1,33 @@ +From 58271555959fcc3eadb1f23c8d31d793c979984b Mon Sep 17 00:00:00 2001 +From: Mahesh Bodapati +Date: Fri, 29 Sep 2017 18:00:23 +0530 +Subject: [PATCH] fixed bug in GCC so that It will support .long 0U and .long + 0u + +Signed-off-by: Mahesh Bodapati +Signed-off-by: Nagaraju Mekala + +--- + gas/expr.c | 9 +++++++++ + 1 file changed, 9 insertions(+) + +diff --git a/gas/expr.c b/gas/expr.c +index ee85bda..b502418 100644 +--- a/gas/expr.c ++++ b/gas/expr.c +@@ -810,6 +810,15 @@ operand (expressionS *expressionP, enum expr_mode mode) + break; + } + } ++ if ((*input_line_pointer == 'U') || (*input_line_pointer == 'u')) ++ { ++ input_line_pointer--; ++ ++ integer_constant ((NUMBERS_WITH_SUFFIX || flag_m68k_mri) ++ ? 0 : 10, ++ expressionP); ++ break; ++ } + c = *input_line_pointer; + switch (c) + { diff --git a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/binutils/binutils-2.32/0013-fixing-the-constant-range-check-issue.patch b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/binutils/binutils-2.32/0013-fixing-the-constant-range-check-issue.patch new file mode 100644 index 00000000..4aef7c98 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/binutils/binutils-2.32/0013-fixing-the-constant-range-check-issue.patch @@ -0,0 +1,25 @@ +From 70ba2154c2261d5a9d35a765c29acc5fdcdeea38 Mon Sep 17 00:00:00 2001 +From: Nagaraju Mekala +Date: Mon, 16 Oct 2017 15:44:23 +0530 +Subject: [PATCH] fixing the constant range check issue sample error: not in + range ffffffff80000000..7fffffff, not ffffffff70000000 + +Signed-off-by: Nagaraju Mekala + +--- + gas/config/tc-microblaze.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/gas/config/tc-microblaze.c b/gas/config/tc-microblaze.c +index 71bb888..16b10d0 100644 +--- a/gas/config/tc-microblaze.c ++++ b/gas/config/tc-microblaze.c +@@ -757,7 +757,7 @@ parse_imm (char * s, expressionS * e, offsetT min, offsetT max) + if ((e->X_add_number >> 31) == 1) + e->X_add_number |= -((addressT) (1U << 31)); + +- if (e->X_add_number < min || e->X_add_number > max) ++ if ((int)e->X_add_number < min || (int)e->X_add_number > max) + { + as_fatal (_("operand must be absolute in range %lx..%lx, not %lx"), + (long) min, (long) max, (long) e->X_add_number); diff --git a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/binutils/binutils-2.32/0014-Patch-Microblaze-Compiler-will-give-error-messages-i.patch b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/binutils/binutils-2.32/0014-Patch-Microblaze-Compiler-will-give-error-messages-i.patch new file mode 100644 index 00000000..21182569 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/binutils/binutils-2.32/0014-Patch-Microblaze-Compiler-will-give-error-messages-i.patch @@ -0,0 +1,36 @@ +From 1b8f6099c5f85d77ef666becff1c4edd0aa724ab Mon Sep 17 00:00:00 2001 +From: Mahesh Bodapati +Date: Wed, 21 Feb 2018 12:32:02 +0530 +Subject: [PATCH] Compiler will give error messages in more detail for + mxl-gp-opt flag.. + +Signed-off-by: Mahesh Bodapati +Signed-off-by: Nagaraju Mekala + +--- + ld/ldmain.c | 12 ++++++++++++ + 1 file changed, 12 insertions(+) + +diff --git a/ld/ldmain.c b/ld/ldmain.c +index 725512f..2ed413a 100644 +--- a/ld/ldmain.c ++++ b/ld/ldmain.c +@@ -1448,6 +1448,18 @@ reloc_overflow (struct bfd_link_info *info, + break; + case bfd_link_hash_defined: + case bfd_link_hash_defweak: ++ ++ if((strcmp(reloc_name,"R_MICROBLAZE_SRW32") == 0) && entry->type == bfd_link_hash_defined) ++ { ++ einfo (_(" relocation truncated to fit: don't enable small data pointer optimizations[mxl-gp-opt] if extern or multiple declarations used: " ++ "%s against symbol `%T' defined in %A section in %B"), ++ reloc_name, entry->root.string, ++ entry->u.def.section, ++ entry->u.def.section == bfd_abs_section_ptr ++ ? info->output_bfd : entry->u.def.section->owner); ++ break; ++ } ++ + einfo (_(" relocation truncated to fit: " + "%s against symbol `%pT' defined in %pA section in %pB"), + reloc_name, entry->root.string, diff --git a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/binutils/binutils-2.32/0015-intial-commit-of-MB-64-bit.patch b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/binutils/binutils-2.32/0015-intial-commit-of-MB-64-bit.patch new file mode 100644 index 00000000..1afe8307 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/binutils/binutils-2.32/0015-intial-commit-of-MB-64-bit.patch @@ -0,0 +1,4738 @@ +From e0a7cf883ed02a73fda5f7d3e131afc8f1ebe416 Mon Sep 17 00:00:00 2001 +From: Nagaraju Mekala +Date: Sun, 30 Sep 2018 16:28:28 +0530 +Subject: [PATCH] intial commit of MB 64-bit + +Signed-off-by: Mahesh Bodapati +Signed-off-by: Nagaraju Mekala + +--- + bfd/Makefile.am | 2 + + bfd/Makefile.in | 3 + + bfd/config.bfd | 4 + + bfd/configure | 2 + + bfd/configure.ac | 2 + + bfd/cpu-microblaze.c | 52 +- + bfd/elf64-microblaze.c | 3584 ++++++++++++++++++++++++++++++++++++ + bfd/targets.c | 6 + + gas/config/tc-microblaze.c | 274 ++- + gas/config/tc-microblaze.h | 4 +- + include/elf/common.h | 1 + + ld/Makefile.am | 8 + + ld/Makefile.in | 10 + + ld/configure.tgt | 3 + + ld/emulparams/elf64microblaze.sh | 23 + + ld/emulparams/elf64microblazeel.sh | 23 + + opcodes/microblaze-dis.c | 39 +- + opcodes/microblaze-opc.h | 162 +- + opcodes/microblaze-opcm.h | 20 +- + 19 files changed, 4181 insertions(+), 41 deletions(-) + create mode 100644 bfd/elf64-microblaze.c + create mode 100644 ld/emulparams/elf64microblaze.sh + create mode 100644 ld/emulparams/elf64microblazeel.sh + +diff --git a/bfd/Makefile.am b/bfd/Makefile.am +index a919155..c5fd250 100644 +--- a/bfd/Makefile.am ++++ b/bfd/Makefile.am +@@ -570,6 +570,7 @@ BFD64_BACKENDS = \ + elf64-riscv.lo \ + elfxx-riscv.lo \ + elf64-s390.lo \ ++ elf64-microblaze.lo \ + elf64-sparc.lo \ + elf64-tilegx.lo \ + elf64-x86-64.lo \ +@@ -603,6 +604,7 @@ BFD64_BACKENDS_CFILES = \ + elf64-nfp.c \ + elf64-ppc.c \ + elf64-s390.c \ ++ elf64-microblaze.c \ + elf64-sparc.c \ + elf64-tilegx.c \ + elf64-x86-64.c \ +diff --git a/bfd/Makefile.in b/bfd/Makefile.in +index 896df52..fd457cb 100644 +--- a/bfd/Makefile.in ++++ b/bfd/Makefile.in +@@ -995,6 +995,7 @@ BFD64_BACKENDS = \ + elf64-riscv.lo \ + elfxx-riscv.lo \ + elf64-s390.lo \ ++ elf64-microblaze.lo \ + elf64-sparc.lo \ + elf64-tilegx.lo \ + elf64-x86-64.lo \ +@@ -1028,6 +1029,7 @@ BFD64_BACKENDS_CFILES = \ + elf64-nfp.c \ + elf64-ppc.c \ + elf64-s390.c \ ++ elf64-microblaze.c \ + elf64-sparc.c \ + elf64-tilegx.c \ + elf64-x86-64.c \ +@@ -1494,6 +1496,7 @@ distclean-compile: + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elf64-ppc.Plo@am__quote@ + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elf64-riscv.Plo@am__quote@ + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elf64-s390.Plo@am__quote@ ++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elf64-microblaze.Plo@am__quote@ + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elf64-sparc.Plo@am__quote@ + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elf64-tilegx.Plo@am__quote@ + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elf64-x86-64.Plo@am__quote@ +diff --git a/bfd/config.bfd b/bfd/config.bfd +index aef1448..8072c8a 100644 +--- a/bfd/config.bfd ++++ b/bfd/config.bfd +@@ -850,11 +850,15 @@ case "${targ}" in + microblazeel*-*) + targ_defvec=microblaze_elf32_le_vec + targ_selvecs=microblaze_elf32_vec ++ targ64_selvecs=microblaze_elf64_vec ++ targ64_selvecs=microblaze_elf64_le_vec + ;; + + microblaze*-*) + targ_defvec=microblaze_elf32_vec + targ_selvecs=microblaze_elf32_le_vec ++ targ64_selvecs=microblaze_elf64_vec ++ targ64_selvecs=microblaze_elf64_le_vec + ;; + + #ifdef BFD64 +diff --git a/bfd/configure b/bfd/configure +index e5bde48..5bf94d5 100755 +--- a/bfd/configure ++++ b/bfd/configure +@@ -15502,6 +15502,8 @@ do + rx_elf32_linux_le_vec) tb="$tb elf32-rx.lo elf32.lo $elf" ;; + s390_elf32_vec) tb="$tb elf32-s390.lo elf32.lo $elf" ;; + s390_elf64_vec) tb="$tb elf64-s390.lo elf64.lo $elf"; target_size=64 ;; ++ microblaze_elf64_vec) tb="$tb elf64-microblaze.lo elf64.lo $elf"; target_size=64 ;; ++ microblaze_elf64_le_vec) tb="$tb elf64-microblaze.lo elf64.lo $elf"; target_size=64 ;; + score_elf32_be_vec) tb="$tb elf32-score.lo elf32-score7.lo elf32.lo $elf"; want64=true; target_size=64 ;; + score_elf32_le_vec) tb="$tb elf32-score.lo elf32-score7.lo elf32.lo $elf"; want64=true; target_size=64 ;; + sh_coff_vec) tb="$tb coff-sh.lo $coff" ;; +diff --git a/bfd/configure.ac b/bfd/configure.ac +index 7cdf9c8..998a651 100644 +--- a/bfd/configure.ac ++++ b/bfd/configure.ac +@@ -615,6 +615,8 @@ do + rx_elf32_linux_le_vec) tb="$tb elf32-rx.lo elf32.lo $elf" ;; + s390_elf32_vec) tb="$tb elf32-s390.lo elf32.lo $elf" ;; + s390_elf64_vec) tb="$tb elf64-s390.lo elf64.lo $elf"; target_size=64 ;; ++ microblaze_elf64_vec) tb="$tb elf64-microblaze.lo elf64.lo $elf"; target_size=64 ;; ++ microblaze_elf64_le_vec) tb="$tb elf64-microblaze.lo elf64.lo $elf"; target_size=64 ;; + score_elf32_be_vec) tb="$tb elf32-score.lo elf32-score7.lo elf32.lo $elf"; want64=true; target_size=64 ;; + score_elf32_le_vec) tb="$tb elf32-score.lo elf32-score7.lo elf32.lo $elf"; want64=true; target_size=64 ;; + sh_coff_vec) tb="$tb coff-sh.lo $coff" ;; +diff --git a/bfd/cpu-microblaze.c b/bfd/cpu-microblaze.c +index 9bc2eb3..c91ba46 100644 +--- a/bfd/cpu-microblaze.c ++++ b/bfd/cpu-microblaze.c +@@ -23,7 +23,24 @@ + #include "bfd.h" + #include "libbfd.h" + +-const bfd_arch_info_type bfd_microblaze_arch = ++const bfd_arch_info_type bfd_microblaze_arch[] = ++{ ++#if BFD_DEFAULT_TARGET_SIZE == 64 ++{ ++ 64, /* 32 bits in a word. */ ++ 64, /* 32 bits in an address. */ ++ 8, /* 8 bits in a byte. */ ++ bfd_arch_microblaze, /* Architecture. */ ++ 0, /* Machine number - 0 for now. */ ++ "microblaze", /* Architecture name. */ ++ "MicroBlaze", /* Printable name. */ ++ 3, /* Section align power. */ ++ FALSE, /* Is this the default architecture ? */ ++ bfd_default_compatible, /* Architecture comparison function. */ ++ bfd_default_scan, /* String to architecture conversion. */ ++ bfd_arch_default_fill, /* Default fill. */ ++ &bfd_microblaze_arch[1] /* Next in list. */ ++}, + { + 32, /* 32 bits in a word. */ + 32, /* 32 bits in an address. */ +@@ -38,4 +55,37 @@ const bfd_arch_info_type bfd_microblaze_arch = + bfd_default_scan, /* String to architecture conversion. */ + bfd_arch_default_fill, /* Default fill. */ + NULL /* Next in list. */ ++} ++#else ++{ ++ 32, /* 32 bits in a word. */ ++ 32, /* 32 bits in an address. */ ++ 8, /* 8 bits in a byte. */ ++ bfd_arch_microblaze, /* Architecture. */ ++ 0, /* Machine number - 0 for now. */ ++ "microblaze", /* Architecture name. */ ++ "MicroBlaze", /* Printable name. */ ++ 3, /* Section align power. */ ++ TRUE, /* Is this the default architecture ? */ ++ bfd_default_compatible, /* Architecture comparison function. */ ++ bfd_default_scan, /* String to architecture conversion. */ ++ bfd_arch_default_fill, /* Default fill. */ ++ &bfd_microblaze_arch[1] /* Next in list. */ ++}, ++{ ++ 64, /* 32 bits in a word. */ ++ 64, /* 32 bits in an address. */ ++ 8, /* 8 bits in a byte. */ ++ bfd_arch_microblaze, /* Architecture. */ ++ 0, /* Machine number - 0 for now. */ ++ "microblaze", /* Architecture name. */ ++ "MicroBlaze", /* Printable name. */ ++ 3, /* Section align power. */ ++ FALSE, /* Is this the default architecture ? */ ++ bfd_default_compatible, /* Architecture comparison function. */ ++ bfd_default_scan, /* String to architecture conversion. */ ++ bfd_arch_default_fill, /* Default fill. */ ++ NULL /* Next in list. */ ++} ++#endif + }; +diff --git a/bfd/elf64-microblaze.c b/bfd/elf64-microblaze.c +new file mode 100644 +index 0000000..0f43ae6 +--- /dev/null ++++ b/bfd/elf64-microblaze.c +@@ -0,0 +1,3584 @@ ++/* Xilinx MicroBlaze-specific support for 32-bit ELF ++ ++ Copyright (C) 2009-2016 Free Software Foundation, Inc. ++ ++ This file is part of BFD, the Binary File Descriptor library. ++ ++ This program is free software; you can redistribute it and/or modify ++ it under the terms of the GNU General Public License as published by ++ the Free Software Foundation; either version 3 of the License, or ++ (at your option) any later version. ++ ++ This program is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ GNU General Public License for more details. ++ ++ You should have received a copy of the GNU General Public License ++ along with this program; if not, write to the ++ Free Software Foundation, Inc., 51 Franklin Street - Fifth Floor, ++ Boston, MA 02110-1301, USA. */ ++ ++ ++int dbg1 = 0; ++ ++#include "sysdep.h" ++#include "bfd.h" ++#include "bfdlink.h" ++#include "libbfd.h" ++#include "elf-bfd.h" ++#include "elf/microblaze.h" ++#include ++ ++#define USE_RELA /* Only USE_REL is actually significant, but this is ++ here are a reminder... */ ++#define INST_WORD_SIZE 4 ++ ++static int ro_small_data_pointer = 0; ++static int rw_small_data_pointer = 0; ++ ++static reloc_howto_type * microblaze_elf_howto_table [(int) R_MICROBLAZE_max]; ++ ++static reloc_howto_type microblaze_elf_howto_raw[] = ++{ ++ /* This reloc does nothing. */ ++ HOWTO (R_MICROBLAZE_NONE, /* Type. */ ++ 0, /* Rightshift. */ ++ 3, /* Size (0 = byte, 1 = short, 2 = long). */ ++ 0, /* Bitsize. */ ++ FALSE, /* PC_relative. */ ++ 0, /* Bitpos. */ ++ complain_overflow_dont, /* Complain on overflow. */ ++ NULL, /* Special Function. */ ++ "R_MICROBLAZE_NONE", /* Name. */ ++ FALSE, /* Partial Inplace. */ ++ 0, /* Source Mask. */ ++ 0, /* Dest Mask. */ ++ FALSE), /* PC relative offset? */ ++ ++ /* A standard 32 bit relocation. */ ++ HOWTO (R_MICROBLAZE_32, /* Type. */ ++ 0, /* Rightshift. */ ++ 2, /* Size (0 = byte, 1 = short, 2 = long). */ ++ 32, /* Bitsize. */ ++ FALSE, /* PC_relative. */ ++ 0, /* Bitpos. */ ++ complain_overflow_bitfield, /* Complain on overflow. */ ++ bfd_elf_generic_reloc,/* Special Function. */ ++ "R_MICROBLAZE_32", /* Name. */ ++ FALSE, /* Partial Inplace. */ ++ 0, /* Source Mask. */ ++ 0xffffffff, /* Dest Mask. */ ++ FALSE), /* PC relative offset? */ ++ ++ /* A standard PCREL 32 bit relocation. */ ++ HOWTO (R_MICROBLAZE_32_PCREL,/* Type. */ ++ 0, /* Rightshift. */ ++ 2, /* Size (0 = byte, 1 = short, 2 = long). */ ++ 32, /* Bitsize. */ ++ TRUE, /* PC_relative. */ ++ 0, /* Bitpos. */ ++ complain_overflow_bitfield, /* Complain on overflow. */ ++ bfd_elf_generic_reloc,/* Special Function. */ ++ "R_MICROBLAZE_32_PCREL", /* Name. */ ++ TRUE, /* Partial Inplace. */ ++ 0, /* Source Mask. */ ++ 0xffffffff, /* Dest Mask. */ ++ TRUE), /* PC relative offset? */ ++ ++ /* A 64 bit PCREL relocation. Table-entry not really used. */ ++ HOWTO (R_MICROBLAZE_64_PCREL,/* Type. */ ++ 0, /* Rightshift. */ ++ 4, /* Size (0 = byte, 1 = short, 2 = long). */ ++ 64, /* Bitsize. */ ++ TRUE, /* PC_relative. */ ++ 0, /* Bitpos. */ ++ complain_overflow_dont, /* Complain on overflow. */ ++ bfd_elf_generic_reloc,/* Special Function. */ ++ "R_MICROBLAZE_64_PCREL", /* Name. */ ++ FALSE, /* Partial Inplace. */ ++ 0, /* Source Mask. */ ++ 0x0000ffff, /* Dest Mask. */ ++ TRUE), /* PC relative offset? */ ++ ++ /* The low half of a PCREL 32 bit relocation. */ ++ HOWTO (R_MICROBLAZE_32_PCREL_LO, /* Type. */ ++ 0, /* Rightshift. */ ++ 2, /* Size (0 = byte, 1 = short, 2 = long). */ ++ 16, /* Bitsize. */ ++ TRUE, /* PC_relative. */ ++ 0, /* Bitpos. */ ++ complain_overflow_signed, /* Complain on overflow. */ ++ bfd_elf_generic_reloc, /* Special Function. */ ++ "R_MICROBLAZE_32_PCREL_LO", /* Name. */ ++ FALSE, /* Partial Inplace. */ ++ 0, /* Source Mask. */ ++ 0x0000ffff, /* Dest Mask. */ ++ TRUE), /* PC relative offset? */ ++ ++ /* A 64 bit relocation. Table entry not really used. */ ++ HOWTO (R_MICROBLAZE_64, /* Type. */ ++ 0, /* Rightshift. */ ++ 2, /* Size (0 = byte, 1 = short, 2 = long). */ ++ 16, /* Bitsize. */ ++ FALSE, /* PC_relative. */ ++ 0, /* Bitpos. */ ++ complain_overflow_dont, /* Complain on overflow. */ ++ bfd_elf_generic_reloc,/* Special Function. */ ++ "R_MICROBLAZE_64", /* Name. */ ++ FALSE, /* Partial Inplace. */ ++ 0, /* Source Mask. */ ++ 0x0000ffff, /* Dest Mask. */ ++ FALSE), /* PC relative offset? */ ++ ++ /* The low half of a 32 bit relocation. */ ++ HOWTO (R_MICROBLAZE_32_LO, /* Type. */ ++ 0, /* Rightshift. */ ++ 2, /* Size (0 = byte, 1 = short, 2 = long). */ ++ 16, /* Bitsize. */ ++ FALSE, /* PC_relative. */ ++ 0, /* Bitpos. */ ++ complain_overflow_signed, /* Complain on overflow. */ ++ bfd_elf_generic_reloc,/* Special Function. */ ++ "R_MICROBLAZE_32_LO", /* Name. */ ++ FALSE, /* Partial Inplace. */ ++ 0, /* Source Mask. */ ++ 0x0000ffff, /* Dest Mask. */ ++ FALSE), /* PC relative offset? */ ++ ++ /* Read-only small data section relocation. */ ++ HOWTO (R_MICROBLAZE_SRO32, /* Type. */ ++ 0, /* Rightshift. */ ++ 2, /* Size (0 = byte, 1 = short, 2 = long). */ ++ 16, /* Bitsize. */ ++ FALSE, /* PC_relative. */ ++ 0, /* Bitpos. */ ++ complain_overflow_bitfield, /* Complain on overflow. */ ++ bfd_elf_generic_reloc,/* Special Function. */ ++ "R_MICROBLAZE_SRO32", /* Name. */ ++ FALSE, /* Partial Inplace. */ ++ 0, /* Source Mask. */ ++ 0x0000ffff, /* Dest Mask. */ ++ FALSE), /* PC relative offset? */ ++ ++ /* Read-write small data area relocation. */ ++ HOWTO (R_MICROBLAZE_SRW32, /* Type. */ ++ 0, /* Rightshift. */ ++ 2, /* Size (0 = byte, 1 = short, 2 = long). */ ++ 16, /* Bitsize. */ ++ FALSE, /* PC_relative. */ ++ 0, /* Bitpos. */ ++ complain_overflow_bitfield, /* Complain on overflow. */ ++ bfd_elf_generic_reloc,/* Special Function. */ ++ "R_MICROBLAZE_SRW32", /* Name. */ ++ FALSE, /* Partial Inplace. */ ++ 0, /* Source Mask. */ ++ 0x0000ffff, /* Dest Mask. */ ++ FALSE), /* PC relative offset? */ ++ ++ HOWTO (R_MICROBLAZE_32_NONE, /* Type. */ ++ 0, /* Rightshift. */ ++ 2, /* Size (0 = byte, 1 = short, 2 = long). */ ++ 32, /* Bitsize. */ ++ TRUE, /* PC_relative. */ ++ 0, /* Bitpos. */ ++ complain_overflow_bitfield, /* Complain on overflow. */ ++ NULL, /* Special Function. */ ++ "R_MICROBLAZE_32_NONE",/* Name. */ ++ FALSE, /* Partial Inplace. */ ++ 0, /* Source Mask. */ ++ 0, /* Dest Mask. */ ++ FALSE), /* PC relative offset? */ ++ ++ /* This reloc does nothing. Used for relaxation. */ ++ HOWTO (R_MICROBLAZE_64_NONE, /* Type. */ ++ 0, /* Rightshift. */ ++ 3, /* Size (0 = byte, 1 = short, 2 = long). */ ++ 0, /* Bitsize. */ ++ TRUE, /* PC_relative. */ ++ 0, /* Bitpos. */ ++ complain_overflow_dont, /* Complain on overflow. */ ++ NULL, /* Special Function. */ ++ "R_MICROBLAZE_64_NONE",/* Name. */ ++ FALSE, /* Partial Inplace. */ ++ 0, /* Source Mask. */ ++ 0, /* Dest Mask. */ ++ FALSE), /* PC relative offset? */ ++ ++ /* Symbol Op Symbol relocation. */ ++ HOWTO (R_MICROBLAZE_32_SYM_OP_SYM, /* Type. */ ++ 0, /* Rightshift. */ ++ 2, /* Size (0 = byte, 1 = short, 2 = long). */ ++ 32, /* Bitsize. */ ++ FALSE, /* PC_relative. */ ++ 0, /* Bitpos. */ ++ complain_overflow_bitfield, /* Complain on overflow. */ ++ bfd_elf_generic_reloc,/* Special Function. */ ++ "R_MICROBLAZE_32_SYM_OP_SYM", /* Name. */ ++ FALSE, /* Partial Inplace. */ ++ 0, /* Source Mask. */ ++ 0xffffffff, /* Dest Mask. */ ++ FALSE), /* PC relative offset? */ ++ ++ /* GNU extension to record C++ vtable hierarchy. */ ++ HOWTO (R_MICROBLAZE_GNU_VTINHERIT, /* Type. */ ++ 0, /* Rightshift. */ ++ 2, /* Size (0 = byte, 1 = short, 2 = long). */ ++ 0, /* Bitsize. */ ++ FALSE, /* PC_relative. */ ++ 0, /* Bitpos. */ ++ complain_overflow_dont,/* Complain on overflow. */ ++ NULL, /* Special Function. */ ++ "R_MICROBLAZE_GNU_VTINHERIT", /* Name. */ ++ FALSE, /* Partial Inplace. */ ++ 0, /* Source Mask. */ ++ 0, /* Dest Mask. */ ++ FALSE), /* PC relative offset? */ ++ ++ /* GNU extension to record C++ vtable member usage. */ ++ HOWTO (R_MICROBLAZE_GNU_VTENTRY, /* Type. */ ++ 0, /* Rightshift. */ ++ 2, /* Size (0 = byte, 1 = short, 2 = long). */ ++ 0, /* Bitsize. */ ++ FALSE, /* PC_relative. */ ++ 0, /* Bitpos. */ ++ complain_overflow_dont,/* Complain on overflow. */ ++ _bfd_elf_rel_vtable_reloc_fn, /* Special Function. */ ++ "R_MICROBLAZE_GNU_VTENTRY", /* Name. */ ++ FALSE, /* Partial Inplace. */ ++ 0, /* Source Mask. */ ++ 0, /* Dest Mask. */ ++ FALSE), /* PC relative offset? */ ++ ++ /* A 64 bit GOTPC relocation. Table-entry not really used. */ ++ HOWTO (R_MICROBLAZE_GOTPC_64, /* Type. */ ++ 0, /* Rightshift. */ ++ 2, /* Size (0 = byte, 1 = short, 2 = long). */ ++ 16, /* Bitsize. */ ++ TRUE, /* PC_relative. */ ++ 0, /* Bitpos. */ ++ complain_overflow_dont, /* Complain on overflow. */ ++ bfd_elf_generic_reloc, /* Special Function. */ ++ "R_MICROBLAZE_GOTPC_64", /* Name. */ ++ FALSE, /* Partial Inplace. */ ++ 0, /* Source Mask. */ ++ 0x0000ffff, /* Dest Mask. */ ++ TRUE), /* PC relative offset? */ ++ ++ /* A 64 bit GOT relocation. Table-entry not really used. */ ++ HOWTO (R_MICROBLAZE_GOT_64, /* Type. */ ++ 0, /* Rightshift. */ ++ 2, /* Size (0 = byte, 1 = short, 2 = long). */ ++ 16, /* Bitsize. */ ++ FALSE, /* PC_relative. */ ++ 0, /* Bitpos. */ ++ complain_overflow_dont, /* Complain on overflow. */ ++ bfd_elf_generic_reloc,/* Special Function. */ ++ "R_MICROBLAZE_GOT_64",/* Name. */ ++ FALSE, /* Partial Inplace. */ ++ 0, /* Source Mask. */ ++ 0x0000ffff, /* Dest Mask. */ ++ FALSE), /* PC relative offset? */ ++ ++ /* A 64 bit PLT relocation. Table-entry not really used. */ ++ HOWTO (R_MICROBLAZE_PLT_64, /* Type. */ ++ 0, /* Rightshift. */ ++ 2, /* Size (0 = byte, 1 = short, 2 = long). */ ++ 16, /* Bitsize. */ ++ TRUE, /* PC_relative. */ ++ 0, /* Bitpos. */ ++ complain_overflow_dont, /* Complain on overflow. */ ++ bfd_elf_generic_reloc,/* Special Function. */ ++ "R_MICROBLAZE_PLT_64",/* Name. */ ++ FALSE, /* Partial Inplace. */ ++ 0, /* Source Mask. */ ++ 0x0000ffff, /* Dest Mask. */ ++ TRUE), /* PC relative offset? */ ++ ++ /* Table-entry not really used. */ ++ HOWTO (R_MICROBLAZE_REL, /* Type. */ ++ 0, /* Rightshift. */ ++ 2, /* Size (0 = byte, 1 = short, 2 = long). */ ++ 16, /* Bitsize. */ ++ TRUE, /* PC_relative. */ ++ 0, /* Bitpos. */ ++ complain_overflow_dont, /* Complain on overflow. */ ++ bfd_elf_generic_reloc,/* Special Function. */ ++ "R_MICROBLAZE_REL", /* Name. */ ++ FALSE, /* Partial Inplace. */ ++ 0, /* Source Mask. */ ++ 0x0000ffff, /* Dest Mask. */ ++ TRUE), /* PC relative offset? */ ++ ++ /* Table-entry not really used. */ ++ HOWTO (R_MICROBLAZE_JUMP_SLOT,/* Type. */ ++ 0, /* Rightshift. */ ++ 2, /* Size (0 = byte, 1 = short, 2 = long). */ ++ 16, /* Bitsize. */ ++ TRUE, /* PC_relative. */ ++ 0, /* Bitpos. */ ++ complain_overflow_dont, /* Complain on overflow. */ ++ bfd_elf_generic_reloc,/* Special Function. */ ++ "R_MICROBLAZE_JUMP_SLOT", /* Name. */ ++ FALSE, /* Partial Inplace. */ ++ 0, /* Source Mask. */ ++ 0x0000ffff, /* Dest Mask. */ ++ TRUE), /* PC relative offset? */ ++ ++ /* Table-entry not really used. */ ++ HOWTO (R_MICROBLAZE_GLOB_DAT,/* Type. */ ++ 0, /* Rightshift. */ ++ 2, /* Size (0 = byte, 1 = short, 2 = long). */ ++ 16, /* Bitsize. */ ++ TRUE, /* PC_relative. */ ++ 0, /* Bitpos. */ ++ complain_overflow_dont, /* Complain on overflow. */ ++ bfd_elf_generic_reloc,/* Special Function. */ ++ "R_MICROBLAZE_GLOB_DAT", /* Name. */ ++ FALSE, /* Partial Inplace. */ ++ 0, /* Source Mask. */ ++ 0x0000ffff, /* Dest Mask. */ ++ TRUE), /* PC relative offset? */ ++ ++ /* A 64 bit GOT relative relocation. Table-entry not really used. */ ++ HOWTO (R_MICROBLAZE_GOTOFF_64, /* Type. */ ++ 0, /* Rightshift. */ ++ 2, /* Size (0 = byte, 1 = short, 2 = long). */ ++ 16, /* Bitsize. */ ++ FALSE, /* PC_relative. */ ++ 0, /* Bitpos. */ ++ complain_overflow_dont, /* Complain on overflow. */ ++ bfd_elf_generic_reloc,/* Special Function. */ ++ "R_MICROBLAZE_GOTOFF_64", /* Name. */ ++ FALSE, /* Partial Inplace. */ ++ 0, /* Source Mask. */ ++ 0x0000ffff, /* Dest Mask. */ ++ FALSE), /* PC relative offset? */ ++ ++ /* A 32 bit GOT relative relocation. Table-entry not really used. */ ++ HOWTO (R_MICROBLAZE_GOTOFF_32, /* Type. */ ++ 0, /* Rightshift. */ ++ 2, /* Size (0 = byte, 1 = short, 2 = long). */ ++ 16, /* Bitsize. */ ++ FALSE, /* PC_relative. */ ++ 0, /* Bitpos. */ ++ complain_overflow_dont, /* Complain on overflow. */ ++ bfd_elf_generic_reloc, /* Special Function. */ ++ "R_MICROBLAZE_GOTOFF_32", /* Name. */ ++ FALSE, /* Partial Inplace. */ ++ 0, /* Source Mask. */ ++ 0x0000ffff, /* Dest Mask. */ ++ FALSE), /* PC relative offset? */ ++ ++ /* COPY relocation. Table-entry not really used. */ ++ HOWTO (R_MICROBLAZE_COPY, /* Type. */ ++ 0, /* Rightshift. */ ++ 2, /* Size (0 = byte, 1 = short, 2 = long). */ ++ 16, /* Bitsize. */ ++ FALSE, /* PC_relative. */ ++ 0, /* Bitpos. */ ++ complain_overflow_dont, /* Complain on overflow. */ ++ bfd_elf_generic_reloc,/* Special Function. */ ++ "R_MICROBLAZE_COPY", /* Name. */ ++ FALSE, /* Partial Inplace. */ ++ 0, /* Source Mask. */ ++ 0x0000ffff, /* Dest Mask. */ ++ FALSE), /* PC relative offset? */ ++ ++ /* Marker relocs for TLS. */ ++ HOWTO (R_MICROBLAZE_TLS, ++ 0, /* rightshift */ ++ 2, /* size (0 = byte, 1 = short, 2 = long) */ ++ 32, /* bitsize */ ++ FALSE, /* pc_relative */ ++ 0, /* bitpos */ ++ complain_overflow_dont, /* complain_on_overflow */ ++ bfd_elf_generic_reloc, /* special_function */ ++ "R_MICROBLAZE_TLS", /* name */ ++ FALSE, /* partial_inplace */ ++ 0, /* src_mask */ ++ 0x0000ffff, /* dst_mask */ ++ FALSE), /* pcrel_offset */ ++ ++ HOWTO (R_MICROBLAZE_TLSGD, ++ 0, /* rightshift */ ++ 2, /* size (0 = byte, 1 = short, 2 = long) */ ++ 32, /* bitsize */ ++ FALSE, /* pc_relative */ ++ 0, /* bitpos */ ++ complain_overflow_dont, /* complain_on_overflow */ ++ bfd_elf_generic_reloc, /* special_function */ ++ "R_MICROBLAZE_TLSGD", /* name */ ++ FALSE, /* partial_inplace */ ++ 0, /* src_mask */ ++ 0x0000ffff, /* dst_mask */ ++ FALSE), /* pcrel_offset */ ++ ++ HOWTO (R_MICROBLAZE_TLSLD, ++ 0, /* rightshift */ ++ 2, /* size (0 = byte, 1 = short, 2 = long) */ ++ 32, /* bitsize */ ++ FALSE, /* pc_relative */ ++ 0, /* bitpos */ ++ complain_overflow_dont, /* complain_on_overflow */ ++ bfd_elf_generic_reloc, /* special_function */ ++ "R_MICROBLAZE_TLSLD", /* name */ ++ FALSE, /* partial_inplace */ ++ 0, /* src_mask */ ++ 0x0000ffff, /* dst_mask */ ++ FALSE), /* pcrel_offset */ ++ ++ /* Computes the load module index of the load module that contains the ++ definition of its TLS sym. */ ++ HOWTO (R_MICROBLAZE_TLSDTPMOD32, ++ 0, /* rightshift */ ++ 2, /* size (0 = byte, 1 = short, 2 = long) */ ++ 32, /* bitsize */ ++ FALSE, /* pc_relative */ ++ 0, /* bitpos */ ++ complain_overflow_dont, /* complain_on_overflow */ ++ bfd_elf_generic_reloc, /* special_function */ ++ "R_MICROBLAZE_TLSDTPMOD32", /* name */ ++ FALSE, /* partial_inplace */ ++ 0, /* src_mask */ ++ 0x0000ffff, /* dst_mask */ ++ FALSE), /* pcrel_offset */ ++ ++ /* Computes a dtv-relative displacement, the difference between the value ++ of sym+add and the base address of the thread-local storage block that ++ contains the definition of sym, minus 0x8000. Used for initializing GOT */ ++ HOWTO (R_MICROBLAZE_TLSDTPREL32, ++ 0, /* rightshift */ ++ 2, /* size (0 = byte, 1 = short, 2 = long) */ ++ 32, /* bitsize */ ++ FALSE, /* pc_relative */ ++ 0, /* bitpos */ ++ complain_overflow_dont, /* complain_on_overflow */ ++ bfd_elf_generic_reloc, /* special_function */ ++ "R_MICROBLAZE_TLSDTPREL32", /* name */ ++ FALSE, /* partial_inplace */ ++ 0, /* src_mask */ ++ 0x0000ffff, /* dst_mask */ ++ FALSE), /* pcrel_offset */ ++ ++ /* Computes a dtv-relative displacement, the difference between the value ++ of sym+add and the base address of the thread-local storage block that ++ contains the definition of sym, minus 0x8000. */ ++ HOWTO (R_MICROBLAZE_TLSDTPREL64, ++ 0, /* rightshift */ ++ 2, /* size (0 = byte, 1 = short, 2 = long) */ ++ 32, /* bitsize */ ++ FALSE, /* pc_relative */ ++ 0, /* bitpos */ ++ complain_overflow_dont, /* complain_on_overflow */ ++ bfd_elf_generic_reloc, /* special_function */ ++ "R_MICROBLAZE_TLSDTPREL64", /* name */ ++ FALSE, /* partial_inplace */ ++ 0, /* src_mask */ ++ 0x0000ffff, /* dst_mask */ ++ FALSE), /* pcrel_offset */ ++ ++ /* Computes a tp-relative displacement, the difference between the value of ++ sym+add and the value of the thread pointer (r13). */ ++ HOWTO (R_MICROBLAZE_TLSGOTTPREL32, ++ 0, /* rightshift */ ++ 2, /* size (0 = byte, 1 = short, 2 = long) */ ++ 32, /* bitsize */ ++ FALSE, /* pc_relative */ ++ 0, /* bitpos */ ++ complain_overflow_dont, /* complain_on_overflow */ ++ bfd_elf_generic_reloc, /* special_function */ ++ "R_MICROBLAZE_TLSGOTTPREL32", /* name */ ++ FALSE, /* partial_inplace */ ++ 0, /* src_mask */ ++ 0x0000ffff, /* dst_mask */ ++ FALSE), /* pcrel_offset */ ++ ++ /* Computes a tp-relative displacement, the difference between the value of ++ sym+add and the value of the thread pointer (r13). */ ++ HOWTO (R_MICROBLAZE_TLSTPREL32, ++ 0, /* rightshift */ ++ 2, /* size (0 = byte, 1 = short, 2 = long) */ ++ 32, /* bitsize */ ++ FALSE, /* pc_relative */ ++ 0, /* bitpos */ ++ complain_overflow_dont, /* complain_on_overflow */ ++ bfd_elf_generic_reloc, /* special_function */ ++ "R_MICROBLAZE_TLSTPREL32", /* name */ ++ FALSE, /* partial_inplace */ ++ 0, /* src_mask */ ++ 0x0000ffff, /* dst_mask */ ++ FALSE), /* pcrel_offset */ ++ ++}; ++ ++#ifndef NUM_ELEM ++#define NUM_ELEM(a) (sizeof (a) / sizeof (a)[0]) ++#endif ++ ++/* Initialize the microblaze_elf_howto_table, so that linear accesses can be done. */ ++ ++static void ++microblaze_elf_howto_init (void) ++{ ++ unsigned int i; ++ ++ for (i = NUM_ELEM (microblaze_elf_howto_raw); i--;) ++ { ++ unsigned int type; ++ ++ type = microblaze_elf_howto_raw[i].type; ++ ++ BFD_ASSERT (type < NUM_ELEM (microblaze_elf_howto_table)); ++ ++ microblaze_elf_howto_table [type] = & microblaze_elf_howto_raw [i]; ++ } ++} ++ ++static reloc_howto_type * ++microblaze_elf_reloc_type_lookup (bfd * abfd ATTRIBUTE_UNUSED, ++ bfd_reloc_code_real_type code) ++{ ++ enum elf_microblaze_reloc_type microblaze_reloc = R_MICROBLAZE_NONE; ++ ++ switch (code) ++ { ++ case BFD_RELOC_NONE: ++ microblaze_reloc = R_MICROBLAZE_NONE; ++ break; ++ case BFD_RELOC_MICROBLAZE_32_NONE: ++ microblaze_reloc = R_MICROBLAZE_32_NONE; ++ break; ++ case BFD_RELOC_MICROBLAZE_64_NONE: ++ microblaze_reloc = R_MICROBLAZE_64_NONE; ++ break; ++ case BFD_RELOC_32: ++ microblaze_reloc = R_MICROBLAZE_32; ++ break; ++ /* RVA is treated the same as 32 */ ++ case BFD_RELOC_RVA: ++ microblaze_reloc = R_MICROBLAZE_32; ++ break; ++ case BFD_RELOC_32_PCREL: ++ microblaze_reloc = R_MICROBLAZE_32_PCREL; ++ break; ++ case BFD_RELOC_64_PCREL: ++ microblaze_reloc = R_MICROBLAZE_64_PCREL; ++ break; ++ case BFD_RELOC_MICROBLAZE_32_LO_PCREL: ++ microblaze_reloc = R_MICROBLAZE_32_PCREL_LO; ++ break; ++ case BFD_RELOC_64: ++ microblaze_reloc = R_MICROBLAZE_64; ++ break; ++ case BFD_RELOC_MICROBLAZE_32_LO: ++ microblaze_reloc = R_MICROBLAZE_32_LO; ++ break; ++ case BFD_RELOC_MICROBLAZE_32_ROSDA: ++ microblaze_reloc = R_MICROBLAZE_SRO32; ++ break; ++ case BFD_RELOC_MICROBLAZE_32_RWSDA: ++ microblaze_reloc = R_MICROBLAZE_SRW32; ++ break; ++ case BFD_RELOC_MICROBLAZE_32_SYM_OP_SYM: ++ microblaze_reloc = R_MICROBLAZE_32_SYM_OP_SYM; ++ break; ++ case BFD_RELOC_VTABLE_INHERIT: ++ microblaze_reloc = R_MICROBLAZE_GNU_VTINHERIT; ++ break; ++ case BFD_RELOC_VTABLE_ENTRY: ++ microblaze_reloc = R_MICROBLAZE_GNU_VTENTRY; ++ break; ++ case BFD_RELOC_MICROBLAZE_64_GOTPC: ++ microblaze_reloc = R_MICROBLAZE_GOTPC_64; ++ break; ++ case BFD_RELOC_MICROBLAZE_64_GOT: ++ microblaze_reloc = R_MICROBLAZE_GOT_64; ++ break; ++ case BFD_RELOC_MICROBLAZE_64_PLT: ++ microblaze_reloc = R_MICROBLAZE_PLT_64; ++ break; ++ case BFD_RELOC_MICROBLAZE_64_GOTOFF: ++ microblaze_reloc = R_MICROBLAZE_GOTOFF_64; ++ break; ++ case BFD_RELOC_MICROBLAZE_32_GOTOFF: ++ microblaze_reloc = R_MICROBLAZE_GOTOFF_32; ++ break; ++ case BFD_RELOC_MICROBLAZE_64_TLSGD: ++ microblaze_reloc = R_MICROBLAZE_TLSGD; ++ break; ++ case BFD_RELOC_MICROBLAZE_64_TLSLD: ++ microblaze_reloc = R_MICROBLAZE_TLSLD; ++ break; ++ case BFD_RELOC_MICROBLAZE_32_TLSDTPREL: ++ microblaze_reloc = R_MICROBLAZE_TLSDTPREL32; ++ break; ++ case BFD_RELOC_MICROBLAZE_64_TLSDTPREL: ++ microblaze_reloc = R_MICROBLAZE_TLSDTPREL64; ++ break; ++ case BFD_RELOC_MICROBLAZE_32_TLSDTPMOD: ++ microblaze_reloc = R_MICROBLAZE_TLSDTPMOD32; ++ break; ++ case BFD_RELOC_MICROBLAZE_64_TLSGOTTPREL: ++ microblaze_reloc = R_MICROBLAZE_TLSGOTTPREL32; ++ break; ++ case BFD_RELOC_MICROBLAZE_64_TLSTPREL: ++ microblaze_reloc = R_MICROBLAZE_TLSTPREL32; ++ break; ++ case BFD_RELOC_MICROBLAZE_COPY: ++ microblaze_reloc = R_MICROBLAZE_COPY; ++ break; ++ default: ++ return (reloc_howto_type *) NULL; ++ } ++ ++ if (!microblaze_elf_howto_table [R_MICROBLAZE_32]) ++ /* Initialize howto table if needed. */ ++ microblaze_elf_howto_init (); ++ ++ return microblaze_elf_howto_table [(int) microblaze_reloc]; ++}; ++ ++static reloc_howto_type * ++microblaze_elf_reloc_name_lookup (bfd *abfd ATTRIBUTE_UNUSED, ++ const char *r_name) ++{ ++ unsigned int i; ++ ++ for (i = 0; i < NUM_ELEM (microblaze_elf_howto_raw); i++) ++ if (microblaze_elf_howto_raw[i].name != NULL ++ && strcasecmp (microblaze_elf_howto_raw[i].name, r_name) == 0) ++ return µblaze_elf_howto_raw[i]; ++ ++ return NULL; ++} ++ ++/* Set the howto pointer for a RCE ELF reloc. */ ++ ++static void ++microblaze_elf_info_to_howto (bfd * abfd ATTRIBUTE_UNUSED, ++ arelent * cache_ptr, ++ Elf_Internal_Rela * dst) ++{ ++ unsigned int r_type; ++ ++ if (!microblaze_elf_howto_table [R_MICROBLAZE_32]) ++ /* Initialize howto table if needed. */ ++ microblaze_elf_howto_init (); ++ ++ r_type = ELF64_R_TYPE (dst->r_info); ++ if (r_type >= R_MICROBLAZE_max) ++ { ++ (*_bfd_error_handler) (_("%B: unrecognised MicroBlaze reloc number: %d"), ++ abfd, r_type); ++ bfd_set_error (bfd_error_bad_value); ++ r_type = R_MICROBLAZE_NONE; ++ } ++ ++ cache_ptr->howto = microblaze_elf_howto_table [r_type]; ++} ++ ++/* Microblaze ELF local labels start with 'L.' or '$L', not '.L'. */ ++ ++static bfd_boolean ++microblaze_elf_is_local_label_name (bfd *abfd, const char *name) ++{ ++ if (name[0] == 'L' && name[1] == '.') ++ return TRUE; ++ ++ if (name[0] == '$' && name[1] == 'L') ++ return TRUE; ++ ++ /* With gcc, the labels go back to starting with '.', so we accept ++ the generic ELF local label syntax as well. */ ++ return _bfd_elf_is_local_label_name (abfd, name); ++} ++ ++/* The microblaze linker (like many others) needs to keep track of ++ the number of relocs that it decides to copy as dynamic relocs in ++ check_relocs for each symbol. This is so that it can later discard ++ them if they are found to be unnecessary. We store the information ++ in a field extending the regular ELF linker hash table. */ ++ ++struct elf64_mb_dyn_relocs ++{ ++ struct elf64_mb_dyn_relocs *next; ++ ++ /* The input section of the reloc. */ ++ asection *sec; ++ ++ /* Total number of relocs copied for the input section. */ ++ bfd_size_type count; ++ ++ /* Number of pc-relative relocs copied for the input section. */ ++ bfd_size_type pc_count; ++}; ++ ++/* ELF linker hash entry. */ ++ ++struct elf64_mb_link_hash_entry ++{ ++ struct elf_link_hash_entry elf; ++ ++ /* Track dynamic relocs copied for this symbol. */ ++ struct elf64_mb_dyn_relocs *dyn_relocs; ++ ++ /* TLS Reference Types for the symbol; Updated by check_relocs */ ++#define TLS_GD 1 /* GD reloc. */ ++#define TLS_LD 2 /* LD reloc. */ ++#define TLS_TPREL 4 /* TPREL reloc, => IE. */ ++#define TLS_DTPREL 8 /* DTPREL reloc, => LD. */ ++#define TLS_TLS 16 /* Any TLS reloc. */ ++ unsigned char tls_mask; ++ ++}; ++ ++#define IS_TLS_GD(x) (x == (TLS_TLS | TLS_GD)) ++#define IS_TLS_LD(x) (x == (TLS_TLS | TLS_LD)) ++#define IS_TLS_DTPREL(x) (x == (TLS_TLS | TLS_DTPREL)) ++#define IS_TLS_NONE(x) (x == 0) ++ ++#define elf64_mb_hash_entry(ent) ((struct elf64_mb_link_hash_entry *)(ent)) ++ ++/* ELF linker hash table. */ ++ ++struct elf64_mb_link_hash_table ++{ ++ struct elf_link_hash_table elf; ++ ++ /* Short-cuts to get to dynamic linker sections. */ ++ asection *sgot; ++ asection *sgotplt; ++ asection *srelgot; ++ asection *splt; ++ asection *srelplt; ++ asection *sdynbss; ++ asection *srelbss; ++ ++ /* Small local sym to section mapping cache. */ ++ struct sym_cache sym_sec; ++ ++ /* TLS Local Dynamic GOT Entry */ ++ union { ++ bfd_signed_vma refcount; ++ bfd_vma offset; ++ } tlsld_got; ++}; ++ ++/* Nonzero if this section has TLS related relocations. */ ++#define has_tls_reloc sec_flg0 ++ ++/* Get the ELF linker hash table from a link_info structure. */ ++ ++#define elf64_mb_hash_table(p) \ ++ (elf_hash_table_id ((struct elf_link_hash_table *) ((p)->hash)) \ ++ == MICROBLAZE_ELF_DATA ? ((struct elf64_mb_link_hash_table *) ((p)->hash)) : NULL) ++ ++/* Create an entry in a microblaze ELF linker hash table. */ ++ ++static struct bfd_hash_entry * ++link_hash_newfunc (struct bfd_hash_entry *entry, ++ struct bfd_hash_table *table, ++ const char *string) ++{ ++ /* Allocate the structure if it has not already been allocated by a ++ subclass. */ ++ if (entry == NULL) ++ { ++ entry = bfd_hash_allocate (table, ++ sizeof (struct elf64_mb_link_hash_entry)); ++ if (entry == NULL) ++ return entry; ++ } ++ ++ /* Call the allocation method of the superclass. */ ++ entry = _bfd_elf_link_hash_newfunc (entry, table, string); ++ if (entry != NULL) ++ { ++ struct elf64_mb_link_hash_entry *eh; ++ ++ eh = (struct elf64_mb_link_hash_entry *) entry; ++ eh->dyn_relocs = NULL; ++ eh->tls_mask = 0; ++ } ++ ++ return entry; ++} ++ ++/* Create a mb ELF linker hash table. */ ++ ++static struct bfd_link_hash_table * ++microblaze_elf_link_hash_table_create (bfd *abfd) ++{ ++ struct elf64_mb_link_hash_table *ret; ++ bfd_size_type amt = sizeof (struct elf64_mb_link_hash_table); ++ ++ ret = (struct elf64_mb_link_hash_table *) bfd_zmalloc (amt); ++ if (ret == NULL) ++ return NULL; ++ ++ if (!_bfd_elf_link_hash_table_init (&ret->elf, abfd, link_hash_newfunc, ++ sizeof (struct elf64_mb_link_hash_entry), ++ MICROBLAZE_ELF_DATA)) ++ { ++ free (ret); ++ return NULL; ++ } ++ ++ return &ret->elf.root; ++} ++ ++/* Set the values of the small data pointers. */ ++ ++static void ++microblaze_elf_final_sdp (struct bfd_link_info *info) ++{ ++ struct bfd_link_hash_entry *h; ++ ++ h = bfd_link_hash_lookup (info->hash, RO_SDA_ANCHOR_NAME, FALSE, FALSE, TRUE); ++ if (h != (struct bfd_link_hash_entry *) NULL ++ && h->type == bfd_link_hash_defined) ++ ro_small_data_pointer = (h->u.def.value ++ + h->u.def.section->output_section->vma ++ + h->u.def.section->output_offset); ++ ++ h = bfd_link_hash_lookup (info->hash, RW_SDA_ANCHOR_NAME, FALSE, FALSE, TRUE); ++ if (h != (struct bfd_link_hash_entry *) NULL ++ && h->type == bfd_link_hash_defined) ++ rw_small_data_pointer = (h->u.def.value ++ + h->u.def.section->output_section->vma ++ + h->u.def.section->output_offset); ++} ++ ++static bfd_vma ++dtprel_base (struct bfd_link_info *info) ++{ ++ /* If tls_sec is NULL, we should have signalled an error already. */ ++ if (elf_hash_table (info)->tls_sec == NULL) ++ return 0; ++ return elf_hash_table (info)->tls_sec->vma; ++} ++ ++/* The size of the thread control block. */ ++#define TCB_SIZE 8 ++ ++/* Output a simple dynamic relocation into SRELOC. */ ++ ++static void ++microblaze_elf_output_dynamic_relocation (bfd *output_bfd, ++ asection *sreloc, ++ unsigned long reloc_index, ++ unsigned long indx, ++ int r_type, ++ bfd_vma offset, ++ bfd_vma addend) ++{ ++ ++ Elf_Internal_Rela rel; ++ ++ rel.r_info = ELF64_R_INFO (indx, r_type); ++ rel.r_offset = offset; ++ rel.r_addend = addend; ++ ++ bfd_elf64_swap_reloca_out (output_bfd, &rel, ++ (sreloc->contents + reloc_index * sizeof (Elf64_External_Rela))); ++} ++ ++/* This code is taken from elf64-m32r.c ++ There is some attempt to make this function usable for many architectures, ++ both USE_REL and USE_RELA ['twould be nice if such a critter existed], ++ if only to serve as a learning tool. ++ ++ The RELOCATE_SECTION function is called by the new ELF backend linker ++ to handle the relocations for a section. ++ ++ The relocs are always passed as Rela structures; if the section ++ actually uses Rel structures, the r_addend field will always be ++ zero. ++ ++ This function is responsible for adjust the section contents as ++ necessary, and (if using Rela relocs and generating a ++ relocatable output file) adjusting the reloc addend as ++ necessary. ++ ++ This function does not have to worry about setting the reloc ++ address or the reloc symbol index. ++ ++ LOCAL_SYMS is a pointer to the swapped in local symbols. ++ ++ LOCAL_SECTIONS is an array giving the section in the input file ++ corresponding to the st_shndx field of each local symbol. ++ ++ The global hash table entry for the global symbols can be found ++ via elf_sym_hashes (input_bfd). ++ ++ When generating relocatable output, this function must handle ++ STB_LOCAL/STT_SECTION symbols specially. The output symbol is ++ going to be the section symbol corresponding to the output ++ section, which means that the addend must be adjusted ++ accordingly. */ ++ ++static bfd_boolean ++microblaze_elf_relocate_section (bfd *output_bfd, ++ struct bfd_link_info *info, ++ bfd *input_bfd, ++ asection *input_section, ++ bfd_byte *contents, ++ Elf_Internal_Rela *relocs, ++ Elf_Internal_Sym *local_syms, ++ asection **local_sections) ++{ ++ struct elf64_mb_link_hash_table *htab; ++ Elf_Internal_Shdr *symtab_hdr = &elf_tdata (input_bfd)->symtab_hdr; ++ struct elf_link_hash_entry **sym_hashes = elf_sym_hashes (input_bfd); ++ Elf_Internal_Rela *rel, *relend; ++ int endian = (bfd_little_endian (output_bfd)) ? 0 : 2; ++ /* Assume success. */ ++ bfd_boolean ret = TRUE; ++ asection *sreloc; ++ bfd_vma *local_got_offsets; ++ unsigned int tls_type; ++ ++ if (!microblaze_elf_howto_table[R_MICROBLAZE_max-1]) ++ microblaze_elf_howto_init (); ++ ++ htab = elf64_mb_hash_table (info); ++ if (htab == NULL) ++ return FALSE; ++ ++ local_got_offsets = elf_local_got_offsets (input_bfd); ++ ++ sreloc = elf_section_data (input_section)->sreloc; ++ ++ rel = relocs; ++ relend = relocs + input_section->reloc_count; ++ for (; rel < relend; rel++) ++ { ++ int r_type; ++ reloc_howto_type *howto; ++ unsigned long r_symndx; ++ bfd_vma addend = rel->r_addend; ++ bfd_vma offset = rel->r_offset; ++ struct elf_link_hash_entry *h; ++ Elf_Internal_Sym *sym; ++ asection *sec; ++ const char *sym_name; ++ bfd_reloc_status_type r = bfd_reloc_ok; ++ const char *errmsg = NULL; ++ bfd_boolean unresolved_reloc = FALSE; ++ ++ h = NULL; ++ r_type = ELF64_R_TYPE (rel->r_info); ++ tls_type = 0; ++ ++ if (r_type < 0 || r_type >= (int) R_MICROBLAZE_max) ++ { ++ (*_bfd_error_handler) (_("%s: unknown relocation type %d"), ++ bfd_get_filename (input_bfd), (int) r_type); ++ bfd_set_error (bfd_error_bad_value); ++ ret = FALSE; ++ continue; ++ } ++ ++ howto = microblaze_elf_howto_table[r_type]; ++ r_symndx = ELF64_R_SYM (rel->r_info); ++ ++ if (bfd_link_relocatable (info)) ++ { ++ /* This is a relocatable link. We don't have to change ++ anything, unless the reloc is against a section symbol, ++ in which case we have to adjust according to where the ++ section symbol winds up in the output section. */ ++ sec = NULL; ++ if (r_symndx >= symtab_hdr->sh_info) ++ /* External symbol. */ ++ continue; ++ ++ /* Local symbol. */ ++ sym = local_syms + r_symndx; ++ sym_name = ""; ++ /* STT_SECTION: symbol is associated with a section. */ ++ if (ELF_ST_TYPE (sym->st_info) != STT_SECTION) ++ /* Symbol isn't associated with a section. Nothing to do. */ ++ continue; ++ ++ sec = local_sections[r_symndx]; ++ addend += sec->output_offset + sym->st_value; ++#ifndef USE_REL ++ /* This can't be done for USE_REL because it doesn't mean anything ++ and elf_link_input_bfd asserts this stays zero. */ ++ /* rel->r_addend = addend; */ ++#endif ++ ++#ifndef USE_REL ++ /* Addends are stored with relocs. We're done. */ ++ continue; ++#else /* USE_REL */ ++ /* If partial_inplace, we need to store any additional addend ++ back in the section. */ ++ if (!howto->partial_inplace) ++ continue; ++ /* ??? Here is a nice place to call a special_function like handler. */ ++ r = _bfd_relocate_contents (howto, input_bfd, addend, ++ contents + offset); ++#endif /* USE_REL */ ++ } ++ else ++ { ++ bfd_vma relocation; ++ ++ /* This is a final link. */ ++ sym = NULL; ++ sec = NULL; ++ unresolved_reloc = FALSE; ++ ++ if (r_symndx < symtab_hdr->sh_info) ++ { ++ /* Local symbol. */ ++ sym = local_syms + r_symndx; ++ sec = local_sections[r_symndx]; ++ if (sec == 0) ++ continue; ++ sym_name = ""; ++ relocation = _bfd_elf_rela_local_sym (output_bfd, sym, &sec, rel); ++ /* r_addend may have changed if the reference section was ++ a merge section. */ ++ addend = rel->r_addend; ++ } ++ else ++ { ++ /* External symbol. */ ++ bfd_boolean warned ATTRIBUTE_UNUSED; ++ bfd_boolean ignored ATTRIBUTE_UNUSED; ++ ++ RELOC_FOR_GLOBAL_SYMBOL (info, input_bfd, input_section, rel, ++ r_symndx, symtab_hdr, sym_hashes, ++ h, sec, relocation, ++ unresolved_reloc, warned, ignored); ++ sym_name = h->root.root.string; ++ } ++ ++ /* Sanity check the address. */ ++ if (offset > bfd_get_section_limit (input_bfd, input_section)) ++ { ++ r = bfd_reloc_outofrange; ++ goto check_reloc; ++ } ++ ++ switch ((int) r_type) ++ { ++ case (int) R_MICROBLAZE_SRO32 : ++ { ++ const char *name; ++ ++ /* Only relocate if the symbol is defined. */ ++ if (sec) ++ { ++ name = bfd_get_section_name (sec->owner, sec); ++ ++ if (strcmp (name, ".sdata2") == 0 ++ || strcmp (name, ".sbss2") == 0) ++ { ++ if (ro_small_data_pointer == 0) ++ microblaze_elf_final_sdp (info); ++ if (ro_small_data_pointer == 0) ++ { ++ ret = FALSE; ++ r = bfd_reloc_undefined; ++ goto check_reloc; ++ } ++ ++ /* At this point `relocation' contains the object's ++ address. */ ++ relocation -= ro_small_data_pointer; ++ /* Now it contains the offset from _SDA2_BASE_. */ ++ r = _bfd_final_link_relocate (howto, input_bfd, ++ input_section, ++ contents, offset, ++ relocation, addend); ++ } ++ else ++ { ++ (*_bfd_error_handler) (_("%s: The target (%s) of an %s relocation is in the wrong section (%s)"), ++ bfd_get_filename (input_bfd), ++ sym_name, ++ microblaze_elf_howto_table[(int) r_type]->name, ++ bfd_get_section_name (sec->owner, sec)); ++ /*bfd_set_error (bfd_error_bad_value); ??? why? */ ++ ret = FALSE; ++ continue; ++ } ++ } ++ } ++ break; ++ ++ case (int) R_MICROBLAZE_SRW32 : ++ { ++ const char *name; ++ ++ /* Only relocate if the symbol is defined. */ ++ if (sec) ++ { ++ name = bfd_get_section_name (sec->owner, sec); ++ ++ if (strcmp (name, ".sdata") == 0 ++ || strcmp (name, ".sbss") == 0) ++ { ++ if (rw_small_data_pointer == 0) ++ microblaze_elf_final_sdp (info); ++ if (rw_small_data_pointer == 0) ++ { ++ ret = FALSE; ++ r = bfd_reloc_undefined; ++ goto check_reloc; ++ } ++ ++ /* At this point `relocation' contains the object's ++ address. */ ++ relocation -= rw_small_data_pointer; ++ /* Now it contains the offset from _SDA_BASE_. */ ++ r = _bfd_final_link_relocate (howto, input_bfd, ++ input_section, ++ contents, offset, ++ relocation, addend); ++ } ++ else ++ { ++ (*_bfd_error_handler) (_("%s: The target (%s) of an %s relocation is in the wrong section (%s)"), ++ bfd_get_filename (input_bfd), ++ sym_name, ++ microblaze_elf_howto_table[(int) r_type]->name, ++ bfd_get_section_name (sec->owner, sec)); ++ /*bfd_set_error (bfd_error_bad_value); ??? why? */ ++ ret = FALSE; ++ continue; ++ } ++ } ++ } ++ break; ++ ++ case (int) R_MICROBLAZE_32_SYM_OP_SYM: ++ break; /* Do nothing. */ ++ ++ case (int) R_MICROBLAZE_GOTPC_64: ++ relocation = htab->sgotplt->output_section->vma ++ + htab->sgotplt->output_offset; ++ relocation -= (input_section->output_section->vma ++ + input_section->output_offset ++ + offset + INST_WORD_SIZE); ++ relocation += addend; ++ bfd_put_16 (input_bfd, (relocation >> 16) & 0xffff, ++ contents + offset + endian); ++ bfd_put_16 (input_bfd, relocation & 0xffff, ++ contents + offset + endian + INST_WORD_SIZE); ++ break; ++ ++ case (int) R_MICROBLAZE_PLT_64: ++ { ++ bfd_vma immediate; ++ if (htab->splt != NULL && h != NULL ++ && h->plt.offset != (bfd_vma) -1) ++ { ++ relocation = (htab->splt->output_section->vma ++ + htab->splt->output_offset ++ + h->plt.offset); ++ unresolved_reloc = FALSE; ++ immediate = relocation - (input_section->output_section->vma ++ + input_section->output_offset ++ + offset + INST_WORD_SIZE); ++ bfd_put_16 (input_bfd, (immediate >> 16) & 0xffff, ++ contents + offset + endian); ++ bfd_put_16 (input_bfd, immediate & 0xffff, ++ contents + offset + endian + INST_WORD_SIZE); ++ } ++ else ++ { ++ relocation -= (input_section->output_section->vma ++ + input_section->output_offset ++ + offset + INST_WORD_SIZE); ++ immediate = relocation; ++ bfd_put_16 (input_bfd, (immediate >> 16) & 0xffff, ++ contents + offset + endian); ++ bfd_put_16 (input_bfd, immediate & 0xffff, ++ contents + offset + endian + INST_WORD_SIZE); ++ } ++ break; ++ } ++ ++ case (int) R_MICROBLAZE_TLSGD: ++ tls_type = (TLS_TLS | TLS_GD); ++ goto dogot; ++ case (int) R_MICROBLAZE_TLSLD: ++ tls_type = (TLS_TLS | TLS_LD); ++ dogot: ++ case (int) R_MICROBLAZE_GOT_64: ++ { ++ bfd_vma *offp; ++ bfd_vma off, off2; ++ unsigned long indx; ++ bfd_vma static_value; ++ ++ bfd_boolean need_relocs = FALSE; ++ if (htab->sgot == NULL) ++ abort (); ++ ++ indx = 0; ++ offp = NULL; ++ ++ /* 1. Identify GOT Offset; ++ 2. Compute Static Values ++ 3. Process Module Id, Process Offset ++ 4. Fixup Relocation with GOT offset value. */ ++ ++ /* 1. Determine GOT Offset to use : TLS_LD, global, local */ ++ if (IS_TLS_LD (tls_type)) ++ offp = &htab->tlsld_got.offset; ++ else if (h != NULL) ++ { ++ if (htab->sgotplt != NULL && h->got.offset != (bfd_vma) -1) ++ offp = &h->got.offset; ++ else ++ abort (); ++ } ++ else ++ { ++ if (local_got_offsets == NULL) ++ abort (); ++ offp = &local_got_offsets[r_symndx]; ++ } ++ ++ if (!offp) ++ abort (); ++ ++ off = (*offp) & ~1; ++ off2 = off; ++ ++ if (IS_TLS_LD(tls_type) || IS_TLS_GD(tls_type)) ++ off2 = off + 4; ++ ++ /* Symbol index to use for relocs */ ++ if (h != NULL) ++ { ++ bfd_boolean dyn = ++ elf_hash_table (info)->dynamic_sections_created; ++ ++ if (WILL_CALL_FINISH_DYNAMIC_SYMBOL (dyn, ++ bfd_link_pic (info), ++ h) ++ && (!bfd_link_pic (info) ++ || !SYMBOL_REFERENCES_LOCAL (info, h))) ++ indx = h->dynindx; ++ } ++ ++ /* Need to generate relocs ? */ ++ if ((bfd_link_pic (info) || indx != 0) ++ && (h == NULL ++ || ELF_ST_VISIBILITY (h->other) == STV_DEFAULT ++ || h->root.type != bfd_link_hash_undefweak)) ++ need_relocs = TRUE; ++ ++ /* 2. Compute/Emit Static value of r-expression */ ++ static_value = relocation + addend; ++ ++ /* 3. Process module-id and offset */ ++ if (! ((*offp) & 1) ) ++ { ++ bfd_vma got_offset; ++ ++ got_offset = (htab->sgot->output_section->vma ++ + htab->sgot->output_offset ++ + off); ++ ++ /* Process module-id */ ++ if (IS_TLS_LD(tls_type)) ++ { ++ if (! bfd_link_pic (info)) ++ { ++ bfd_put_32 (output_bfd, 1, htab->sgot->contents + off); ++ } ++ else ++ { ++ microblaze_elf_output_dynamic_relocation (output_bfd, ++ htab->srelgot, htab->srelgot->reloc_count++, ++ /* symindex= */ 0, R_MICROBLAZE_TLSDTPMOD32, ++ got_offset, 0); ++ } ++ } ++ else if (IS_TLS_GD(tls_type)) ++ { ++ if (! need_relocs) ++ { ++ bfd_put_32 (output_bfd, 1, htab->sgot->contents + off); ++ } ++ else ++ { ++ microblaze_elf_output_dynamic_relocation (output_bfd, ++ htab->srelgot, ++ htab->srelgot->reloc_count++, ++ /* symindex= */ indx, R_MICROBLAZE_TLSDTPMOD32, ++ got_offset, indx ? 0 : static_value); ++ } ++ } ++ ++ /* Process Offset */ ++ if (htab->srelgot == NULL) ++ abort (); ++ ++ got_offset = (htab->sgot->output_section->vma ++ + htab->sgot->output_offset ++ + off2); ++ if (IS_TLS_LD(tls_type)) ++ { ++ /* For LD, offset should be 0 */ ++ *offp |= 1; ++ bfd_put_32 (output_bfd, 0, htab->sgot->contents + off2); ++ } ++ else if (IS_TLS_GD(tls_type)) ++ { ++ *offp |= 1; ++ static_value -= dtprel_base(info); ++ if (need_relocs) ++ { ++ microblaze_elf_output_dynamic_relocation (output_bfd, ++ htab->srelgot, htab->srelgot->reloc_count++, ++ /* symindex= */ indx, R_MICROBLAZE_TLSDTPREL32, ++ got_offset, indx ? 0 : static_value); ++ } ++ else ++ { ++ bfd_put_32 (output_bfd, static_value, ++ htab->sgot->contents + off2); ++ } ++ } ++ else ++ { ++ bfd_put_32 (output_bfd, static_value, ++ htab->sgot->contents + off2); ++ ++ /* Relocs for dyn symbols generated by ++ finish_dynamic_symbols */ ++ if (bfd_link_pic (info) && h == NULL) ++ { ++ *offp |= 1; ++ microblaze_elf_output_dynamic_relocation (output_bfd, ++ htab->srelgot, htab->srelgot->reloc_count++, ++ /* symindex= */ indx, R_MICROBLAZE_REL, ++ got_offset, static_value); ++ } ++ } ++ } ++ ++ /* 4. Fixup Relocation with GOT offset value ++ Compute relative address of GOT entry for applying ++ the current relocation */ ++ relocation = htab->sgot->output_section->vma ++ + htab->sgot->output_offset ++ + off ++ - htab->sgotplt->output_section->vma ++ - htab->sgotplt->output_offset; ++ ++ /* Apply Current Relocation */ ++ bfd_put_16 (input_bfd, (relocation >> 16) & 0xffff, ++ contents + offset + endian); ++ bfd_put_16 (input_bfd, relocation & 0xffff, ++ contents + offset + endian + INST_WORD_SIZE); ++ ++ unresolved_reloc = FALSE; ++ break; ++ } ++ ++ case (int) R_MICROBLAZE_GOTOFF_64: ++ { ++ bfd_vma immediate; ++ unsigned short lo, high; ++ relocation += addend; ++ relocation -= htab->sgotplt->output_section->vma ++ + htab->sgotplt->output_offset; ++ /* Write this value into correct location. */ ++ immediate = relocation; ++ lo = immediate & 0x0000ffff; ++ high = (immediate >> 16) & 0x0000ffff; ++ bfd_put_16 (input_bfd, high, contents + offset + endian); ++ bfd_put_16 (input_bfd, lo, contents + offset + INST_WORD_SIZE + endian); ++ break; ++ } ++ ++ case (int) R_MICROBLAZE_GOTOFF_32: ++ { ++ relocation += addend; ++ relocation -= htab->sgotplt->output_section->vma ++ + htab->sgotplt->output_offset; ++ /* Write this value into correct location. */ ++ bfd_put_32 (input_bfd, relocation, contents + offset); ++ break; ++ } ++ ++ case (int) R_MICROBLAZE_TLSDTPREL64: ++ relocation += addend; ++ relocation -= dtprel_base(info); ++ bfd_put_16 (input_bfd, (relocation >> 16) & 0xffff, ++ contents + offset + endian); ++ bfd_put_16 (input_bfd, relocation & 0xffff, ++ contents + offset + endian + INST_WORD_SIZE); ++ break; ++ case (int) R_MICROBLAZE_64_PCREL : ++ case (int) R_MICROBLAZE_64: ++ case (int) R_MICROBLAZE_32: ++ { ++ /* r_symndx will be STN_UNDEF (zero) only for relocs against symbols ++ from removed linkonce sections, or sections discarded by ++ a linker script. */ ++ if (r_symndx == STN_UNDEF || (input_section->flags & SEC_ALLOC) == 0) ++ { ++ relocation += addend; ++ if (r_type == R_MICROBLAZE_32) ++ bfd_put_32 (input_bfd, relocation, contents + offset); ++ else ++ { ++ if (r_type == R_MICROBLAZE_64_PCREL) ++ relocation -= (input_section->output_section->vma ++ + input_section->output_offset ++ + offset + INST_WORD_SIZE); ++ bfd_put_16 (input_bfd, (relocation >> 16) & 0xffff, ++ contents + offset + endian); ++ bfd_put_16 (input_bfd, relocation & 0xffff, ++ contents + offset + endian + INST_WORD_SIZE); ++ } ++ break; ++ } ++ ++ if ((bfd_link_pic (info) ++ && (h == NULL ++ || ELF_ST_VISIBILITY (h->other) == STV_DEFAULT ++ || h->root.type != bfd_link_hash_undefweak) ++ && (!howto->pc_relative ++ || (h != NULL ++ && h->dynindx != -1 ++ && (!info->symbolic ++ || !h->def_regular)))) ++ || (!bfd_link_pic (info) ++ && h != NULL ++ && h->dynindx != -1 ++ && !h->non_got_ref ++ && ((h->def_dynamic ++ && !h->def_regular) ++ || h->root.type == bfd_link_hash_undefweak ++ || h->root.type == bfd_link_hash_undefined))) ++ { ++ Elf_Internal_Rela outrel; ++ bfd_byte *loc; ++ bfd_boolean skip; ++ ++ /* When generating a shared object, these relocations ++ are copied into the output file to be resolved at run ++ time. */ ++ ++ BFD_ASSERT (sreloc != NULL); ++ ++ skip = FALSE; ++ ++ outrel.r_offset = ++ _bfd_elf_section_offset (output_bfd, info, input_section, ++ rel->r_offset); ++ if (outrel.r_offset == (bfd_vma) -1) ++ skip = TRUE; ++ else if (outrel.r_offset == (bfd_vma) -2) ++ skip = TRUE; ++ outrel.r_offset += (input_section->output_section->vma ++ + input_section->output_offset); ++ ++ if (skip) ++ memset (&outrel, 0, sizeof outrel); ++ /* h->dynindx may be -1 if the symbol was marked to ++ become local. */ ++ else if (h != NULL ++ && ((! info->symbolic && h->dynindx != -1) ++ || !h->def_regular)) ++ { ++ BFD_ASSERT (h->dynindx != -1); ++ outrel.r_info = ELF64_R_INFO (h->dynindx, r_type); ++ outrel.r_addend = addend; ++ } ++ else ++ { ++ if (r_type == R_MICROBLAZE_32) ++ { ++ outrel.r_info = ELF64_R_INFO (0, R_MICROBLAZE_REL); ++ outrel.r_addend = relocation + addend; ++ } ++ else ++ { ++ BFD_FAIL (); ++ (*_bfd_error_handler) ++ (_("%B: probably compiled without -fPIC?"), ++ input_bfd); ++ bfd_set_error (bfd_error_bad_value); ++ return FALSE; ++ } ++ } ++ ++ loc = sreloc->contents; ++ loc += sreloc->reloc_count++ * sizeof (Elf64_External_Rela); ++ bfd_elf64_swap_reloca_out (output_bfd, &outrel, loc); ++ break; ++ } ++ else ++ { ++ relocation += addend; ++ if (r_type == R_MICROBLAZE_32) ++ bfd_put_32 (input_bfd, relocation, contents + offset); ++ else ++ { ++ if (r_type == R_MICROBLAZE_64_PCREL) ++ relocation -= (input_section->output_section->vma ++ + input_section->output_offset ++ + offset + INST_WORD_SIZE); ++ bfd_put_16 (input_bfd, (relocation >> 16) & 0xffff, ++ contents + offset + endian); ++ bfd_put_16 (input_bfd, relocation & 0xffff, ++ contents + offset + endian + INST_WORD_SIZE); ++ } ++ break; ++ } ++ } ++ ++ default : ++ r = _bfd_final_link_relocate (howto, input_bfd, input_section, ++ contents, offset, ++ relocation, addend); ++ break; ++ } ++ } ++ ++ check_reloc: ++ ++ if (r != bfd_reloc_ok) ++ { ++ /* FIXME: This should be generic enough to go in a utility. */ ++ const char *name; ++ ++ if (h != NULL) ++ name = h->root.root.string; ++ else ++ { ++ name = (bfd_elf_string_from_elf_section ++ (input_bfd, symtab_hdr->sh_link, sym->st_name)); ++ if (name == NULL || *name == '\0') ++ name = bfd_section_name (input_bfd, sec); ++ } ++ ++ if (errmsg != NULL) ++ goto common_error; ++ ++ switch (r) ++ { ++ case bfd_reloc_overflow: ++ (*info->callbacks->reloc_overflow) ++ (info, (h ? &h->root : NULL), name, howto->name, ++ (bfd_vma) 0, input_bfd, input_section, offset); ++ break; ++ ++ case bfd_reloc_undefined: ++ (*info->callbacks->undefined_symbol) ++ (info, name, input_bfd, input_section, offset, TRUE); ++ break; ++ ++ case bfd_reloc_outofrange: ++ errmsg = _("internal error: out of range error"); ++ goto common_error; ++ ++ case bfd_reloc_notsupported: ++ errmsg = _("internal error: unsupported relocation error"); ++ goto common_error; ++ ++ case bfd_reloc_dangerous: ++ errmsg = _("internal error: dangerous error"); ++ goto common_error; ++ ++ default: ++ errmsg = _("internal error: unknown error"); ++ /* Fall through. */ ++ common_error: ++ (*info->callbacks->warning) (info, errmsg, name, input_bfd, ++ input_section, offset); ++ break; ++ } ++ } ++ } ++ ++ return ret; ++} ++ ++/* Merge backend specific data from an object file to the output ++ object file when linking. ++ ++ Note: We only use this hook to catch endian mismatches. */ ++static bfd_boolean ++microblaze_elf_merge_private_bfd_data (bfd * ibfd, bfd * obfd) ++{ ++ /* Check if we have the same endianess. */ ++ if (! _bfd_generic_verify_endian_match (ibfd, obfd)) ++ return FALSE; ++ ++ return TRUE; ++} ++ ++ ++/* Calculate fixup value for reference. */ ++ ++static int ++calc_fixup (bfd_vma start, bfd_vma size, asection *sec) ++{ ++ bfd_vma end = start + size; ++ int i, fixup = 0; ++ ++ if (sec == NULL || sec->relax == NULL) ++ return 0; ++ ++ /* Look for addr in relax table, total fixup value. */ ++ for (i = 0; i < sec->relax_count; i++) ++ { ++ if (end <= sec->relax[i].addr) ++ break; ++ if ((end != start) && (start > sec->relax[i].addr)) ++ continue; ++ fixup += sec->relax[i].size; ++ } ++ return fixup; ++} ++ ++/* Read-modify-write into the bfd, an immediate value into appropriate fields of ++ a 32-bit instruction. */ ++static void ++microblaze_bfd_write_imm_value_32 (bfd *abfd, bfd_byte *bfd_addr, bfd_vma val) ++{ ++ unsigned long instr = bfd_get_32 (abfd, bfd_addr); ++ instr &= ~0x0000ffff; ++ instr |= (val & 0x0000ffff); ++ bfd_put_32 (abfd, instr, bfd_addr); ++} ++ ++/* Read-modify-write into the bfd, an immediate value into appropriate fields of ++ two consecutive 32-bit instructions. */ ++static void ++microblaze_bfd_write_imm_value_64 (bfd *abfd, bfd_byte *bfd_addr, bfd_vma val) ++{ ++ unsigned long instr_hi; ++ unsigned long instr_lo; ++ ++ instr_hi = bfd_get_32 (abfd, bfd_addr); ++ instr_hi &= ~0x0000ffff; ++ instr_hi |= ((val >> 16) & 0x0000ffff); ++ bfd_put_32 (abfd, instr_hi, bfd_addr); ++ ++ instr_lo = bfd_get_32 (abfd, bfd_addr + INST_WORD_SIZE); ++ instr_lo &= ~0x0000ffff; ++ instr_lo |= (val & 0x0000ffff); ++ bfd_put_32 (abfd, instr_lo, bfd_addr + INST_WORD_SIZE); ++} ++ ++static bfd_boolean ++microblaze_elf_relax_section (bfd *abfd, ++ asection *sec, ++ struct bfd_link_info *link_info, ++ bfd_boolean *again) ++{ ++ Elf_Internal_Shdr *symtab_hdr; ++ Elf_Internal_Rela *internal_relocs; ++ Elf_Internal_Rela *free_relocs = NULL; ++ Elf_Internal_Rela *irel, *irelend; ++ bfd_byte *contents = NULL; ++ bfd_byte *free_contents = NULL; ++ int rel_count; ++ unsigned int shndx; ++ int i, sym_index; ++ asection *o; ++ struct elf_link_hash_entry *sym_hash; ++ Elf_Internal_Sym *isymbuf, *isymend; ++ Elf_Internal_Sym *isym; ++ int symcount; ++ int offset; ++ bfd_vma src, dest; ++ ++ /* We only do this once per section. We may be able to delete some code ++ by running multiple passes, but it is not worth it. */ ++ *again = FALSE; ++ ++ /* Only do this for a text section. */ ++ if (bfd_link_relocatable (link_info) ++ || (sec->flags & SEC_RELOC) == 0 ++ || (sec->reloc_count == 0) ++ || (sec->flags & SEC_CODE) == 0) ++ return TRUE; ++ ++ BFD_ASSERT ((sec->size > 0) || (sec->rawsize > 0)); ++ ++ /* If this is the first time we have been called for this section, ++ initialize the cooked size. */ ++ if (sec->size == 0) ++ sec->size = sec->rawsize; ++ ++ /* Get symbols for this section. */ ++ symtab_hdr = &elf_tdata (abfd)->symtab_hdr; ++ isymbuf = (Elf_Internal_Sym *) symtab_hdr->contents; ++ symcount = symtab_hdr->sh_size / sizeof (Elf64_External_Sym); ++ if (isymbuf == NULL) ++ isymbuf = bfd_elf_get_elf_syms (abfd, symtab_hdr, symcount, ++ 0, NULL, NULL, NULL); ++ BFD_ASSERT (isymbuf != NULL); ++ ++ internal_relocs = _bfd_elf_link_read_relocs (abfd, sec, NULL, NULL, link_info->keep_memory); ++ if (internal_relocs == NULL) ++ goto error_return; ++ if (! link_info->keep_memory) ++ free_relocs = internal_relocs; ++ ++ sec->relax = (struct relax_table *) bfd_malloc ((sec->reloc_count + 1) ++ * sizeof (struct relax_table)); ++ if (sec->relax == NULL) ++ goto error_return; ++ sec->relax_count = 0; ++ ++ irelend = internal_relocs + sec->reloc_count; ++ rel_count = 0; ++ for (irel = internal_relocs; irel < irelend; irel++, rel_count++) ++ { ++ bfd_vma symval; ++ if ((ELF64_R_TYPE (irel->r_info) != (int) R_MICROBLAZE_64_PCREL) ++ && (ELF64_R_TYPE (irel->r_info) != (int) R_MICROBLAZE_64 )) ++ continue; /* Can't delete this reloc. */ ++ ++ /* Get the section contents. */ ++ if (contents == NULL) ++ { ++ if (elf_section_data (sec)->this_hdr.contents != NULL) ++ contents = elf_section_data (sec)->this_hdr.contents; ++ else ++ { ++ contents = (bfd_byte *) bfd_malloc (sec->size); ++ if (contents == NULL) ++ goto error_return; ++ free_contents = contents; ++ ++ if (!bfd_get_section_contents (abfd, sec, contents, ++ (file_ptr) 0, sec->size)) ++ goto error_return; ++ elf_section_data (sec)->this_hdr.contents = contents; ++ } ++ } ++ ++ /* Get the value of the symbol referred to by the reloc. */ ++ if (ELF64_R_SYM (irel->r_info) < symtab_hdr->sh_info) ++ { ++ /* A local symbol. */ ++ asection *sym_sec; ++ ++ isym = isymbuf + ELF64_R_SYM (irel->r_info); ++ if (isym->st_shndx == SHN_UNDEF) ++ sym_sec = bfd_und_section_ptr; ++ else if (isym->st_shndx == SHN_ABS) ++ sym_sec = bfd_abs_section_ptr; ++ else if (isym->st_shndx == SHN_COMMON) ++ sym_sec = bfd_com_section_ptr; ++ else ++ sym_sec = bfd_section_from_elf_index (abfd, isym->st_shndx); ++ ++ symval = _bfd_elf_rela_local_sym (abfd, isym, &sym_sec, irel); ++ } ++ else ++ { ++ unsigned long indx; ++ struct elf_link_hash_entry *h; ++ ++ indx = ELF64_R_SYM (irel->r_info) - symtab_hdr->sh_info; ++ h = elf_sym_hashes (abfd)[indx]; ++ BFD_ASSERT (h != NULL); ++ ++ if (h->root.type != bfd_link_hash_defined ++ && h->root.type != bfd_link_hash_defweak) ++ /* This appears to be a reference to an undefined ++ symbol. Just ignore it--it will be caught by the ++ regular reloc processing. */ ++ continue; ++ ++ symval = (h->root.u.def.value ++ + h->root.u.def.section->output_section->vma ++ + h->root.u.def.section->output_offset); ++ } ++ ++ /* If this is a PC-relative reloc, subtract the instr offset from ++ the symbol value. */ ++ if (ELF64_R_TYPE (irel->r_info) == (int) R_MICROBLAZE_64_PCREL) ++ { ++ symval = symval + irel->r_addend ++ - (irel->r_offset ++ + sec->output_section->vma ++ + sec->output_offset); ++ } ++ else ++ symval += irel->r_addend; ++ ++ if ((symval & 0xffff8000) == 0) ++ { ++ /* We can delete this instruction. */ ++ sec->relax[sec->relax_count].addr = irel->r_offset; ++ sec->relax[sec->relax_count].size = INST_WORD_SIZE; ++ sec->relax_count++; ++ ++ /* Rewrite relocation type. */ ++ switch ((enum elf_microblaze_reloc_type) ELF64_R_TYPE (irel->r_info)) ++ { ++ case R_MICROBLAZE_64_PCREL: ++ irel->r_info = ELF64_R_INFO (ELF64_R_SYM (irel->r_info), ++ (int) R_MICROBLAZE_32_PCREL_LO); ++ break; ++ case R_MICROBLAZE_64: ++ irel->r_info = ELF64_R_INFO (ELF64_R_SYM (irel->r_info), ++ (int) R_MICROBLAZE_32_LO); ++ break; ++ default: ++ /* Cannot happen. */ ++ BFD_ASSERT (FALSE); ++ } ++ } ++ } /* Loop through all relocations. */ ++ ++ /* Loop through the relocs again, and see if anything needs to change. */ ++ if (sec->relax_count > 0) ++ { ++ shndx = _bfd_elf_section_from_bfd_section (abfd, sec); ++ rel_count = 0; ++ sec->relax[sec->relax_count].addr = sec->size; ++ ++ for (irel = internal_relocs; irel < irelend; irel++, rel_count++) ++ { ++ bfd_vma nraddr; ++ ++ /* Get the new reloc address. */ ++ nraddr = irel->r_offset - calc_fixup (irel->r_offset, 0, sec); ++ switch ((enum elf_microblaze_reloc_type) ELF64_R_TYPE (irel->r_info)) ++ { ++ default: ++ break; ++ case R_MICROBLAZE_64_PCREL: ++ break; ++ case R_MICROBLAZE_64: ++ case R_MICROBLAZE_32_LO: ++ /* If this reloc is against a symbol defined in this ++ section, we must check the addend to see it will put the value in ++ range to be adjusted, and hence must be changed. */ ++ if (ELF64_R_SYM (irel->r_info) < symtab_hdr->sh_info) ++ { ++ isym = isymbuf + ELF64_R_SYM (irel->r_info); ++ /* Only handle relocs against .text. */ ++ if (isym->st_shndx == shndx ++ && ELF64_ST_TYPE (isym->st_info) == STT_SECTION) ++ irel->r_addend -= calc_fixup (irel->r_addend, 0, sec); ++ } ++ break; ++ case R_MICROBLAZE_NONE: ++ case R_MICROBLAZE_32_NONE: ++ { ++ /* This was a PC-relative instruction that was ++ completely resolved. */ ++ int sfix, efix; ++ unsigned int val; ++ bfd_vma target_address; ++ target_address = irel->r_addend + irel->r_offset; ++ sfix = calc_fixup (irel->r_offset, 0, sec); ++ efix = calc_fixup (target_address, 0, sec); ++ ++ /* Validate the in-band val. */ ++ val = bfd_get_32 (abfd, contents + irel->r_offset); ++ if (val != irel->r_addend && ELF64_R_TYPE (irel->r_info) == R_MICROBLAZE_32_NONE) { ++ fprintf(stderr, "%d: CORRUPT relax reloc %x %lx\n", __LINE__, val, irel->r_addend); ++ } ++ irel->r_addend -= (efix - sfix); ++ /* Should use HOWTO. */ ++ microblaze_bfd_write_imm_value_32 (abfd, contents + irel->r_offset, ++ irel->r_addend); ++ } ++ break; ++ case R_MICROBLAZE_64_NONE: ++ { ++ /* This was a PC-relative 64-bit instruction that was ++ completely resolved. */ ++ int sfix, efix; ++ bfd_vma target_address; ++ target_address = irel->r_addend + irel->r_offset + INST_WORD_SIZE; ++ sfix = calc_fixup (irel->r_offset + INST_WORD_SIZE, 0, sec); ++ efix = calc_fixup (target_address, 0, sec); ++ irel->r_addend -= (efix - sfix); ++ microblaze_bfd_write_imm_value_32 (abfd, contents + irel->r_offset ++ + INST_WORD_SIZE, irel->r_addend); ++ } ++ break; ++ } ++ irel->r_offset = nraddr; ++ } /* Change all relocs in this section. */ ++ ++ /* Look through all other sections. */ ++ for (o = abfd->sections; o != NULL; o = o->next) ++ { ++ Elf_Internal_Rela *irelocs; ++ Elf_Internal_Rela *irelscan, *irelscanend; ++ bfd_byte *ocontents; ++ ++ if (o == sec ++ || (o->flags & SEC_RELOC) == 0 ++ || o->reloc_count == 0) ++ continue; ++ ++ /* We always cache the relocs. Perhaps, if info->keep_memory is ++ FALSE, we should free them, if we are permitted to. */ ++ ++ irelocs = _bfd_elf_link_read_relocs (abfd, o, NULL, NULL, TRUE); ++ if (irelocs == NULL) ++ goto error_return; ++ ++ ocontents = NULL; ++ irelscanend = irelocs + o->reloc_count; ++ for (irelscan = irelocs; irelscan < irelscanend; irelscan++) ++ { ++ if (1 && ELF64_R_TYPE (irelscan->r_info) == (int) R_MICROBLAZE_32_NONE) ++ { ++ unsigned int val; ++ ++ isym = isymbuf + ELF64_R_SYM (irelscan->r_info); ++ ++ /* hax: We only do the following fixup for debug location lists. */ ++ if (strcmp(".debug_loc", o->name)) ++ continue; ++ ++ /* This was a PC-relative instruction that was completely resolved. */ ++ if (ocontents == NULL) ++ { ++ if (elf_section_data (o)->this_hdr.contents != NULL) ++ ocontents = elf_section_data (o)->this_hdr.contents; ++ else ++ { ++ /* We always cache the section contents. ++ Perhaps, if info->keep_memory is FALSE, we ++ should free them, if we are permitted to. */ ++ ++ if (o->rawsize == 0) ++ o->rawsize = o->size; ++ ocontents = (bfd_byte *) bfd_malloc (o->rawsize); ++ if (ocontents == NULL) ++ goto error_return; ++ if (!bfd_get_section_contents (abfd, o, ocontents, ++ (file_ptr) 0, ++ o->rawsize)) ++ goto error_return; ++ elf_section_data (o)->this_hdr.contents = ocontents; ++ } ++ } ++ ++ val = bfd_get_32 (abfd, ocontents + irelscan->r_offset); ++ if (val != irelscan->r_addend) { ++ fprintf(stderr, "%d: CORRUPT relax reloc! %x %lx\n", __LINE__, val, irelscan->r_addend); ++ } ++ irelscan->r_addend -= calc_fixup (irelscan->r_addend, 0, sec); ++ microblaze_bfd_write_imm_value_32 (abfd, ocontents + irelscan->r_offset, ++ irelscan->r_addend); ++ } ++ if (ELF64_R_TYPE (irelscan->r_info) == (int) R_MICROBLAZE_32) ++ { ++ isym = isymbuf + ELF64_R_SYM (irelscan->r_info); ++ ++ /* Look at the reloc only if the value has been resolved. */ ++ if (isym->st_shndx == shndx ++ && (ELF64_ST_TYPE (isym->st_info) == STT_SECTION)) ++ { ++ if (ocontents == NULL) ++ { ++ if (elf_section_data (o)->this_hdr.contents != NULL) ++ ocontents = elf_section_data (o)->this_hdr.contents; ++ else ++ { ++ /* We always cache the section contents. ++ Perhaps, if info->keep_memory is FALSE, we ++ should free them, if we are permitted to. */ ++ if (o->rawsize == 0) ++ o->rawsize = o->size; ++ ocontents = (bfd_byte *) bfd_malloc (o->rawsize); ++ if (ocontents == NULL) ++ goto error_return; ++ if (!bfd_get_section_contents (abfd, o, ocontents, ++ (file_ptr) 0, ++ o->rawsize)) ++ goto error_return; ++ elf_section_data (o)->this_hdr.contents = ocontents; ++ } ++ ++ } ++ irelscan->r_addend -= calc_fixup (irelscan->r_addend, 0, sec); ++ } ++ else if (ELF64_R_TYPE (irelscan->r_info) == (int) R_MICROBLAZE_32_SYM_OP_SYM) ++ { ++ isym = isymbuf + ELF64_R_SYM (irelscan->r_info); ++ ++ /* Look at the reloc only if the value has been resolved. */ ++ if (ocontents == NULL) ++ { ++ if (elf_section_data (o)->this_hdr.contents != NULL) ++ ocontents = elf_section_data (o)->this_hdr.contents; ++ else ++ { ++ /* We always cache the section contents. ++ Perhaps, if info->keep_memory is FALSE, we ++ should free them, if we are permitted to. */ ++ ++ if (o->rawsize == 0) ++ o->rawsize = o->size; ++ ocontents = (bfd_byte *) bfd_malloc (o->rawsize); ++ if (ocontents == NULL) ++ goto error_return; ++ if (!bfd_get_section_contents (abfd, o, ocontents, ++ (file_ptr) 0, ++ o->rawsize)) ++ goto error_return; ++ elf_section_data (o)->this_hdr.contents = ocontents; ++ } ++ } ++ irelscan->r_addend -= calc_fixup (irelscan->r_addend ++ + isym->st_value, ++ 0, ++ sec); ++ } ++ } ++ else if ((ELF64_R_TYPE (irelscan->r_info) == (int) R_MICROBLAZE_32_PCREL_LO) ++ || (ELF64_R_TYPE (irelscan->r_info) == (int) R_MICROBLAZE_32_LO)) ++ { ++ isym = isymbuf + ELF64_R_SYM (irelscan->r_info); ++ ++ /* Look at the reloc only if the value has been resolved. */ ++ if (isym->st_shndx == shndx ++ && (ELF64_ST_TYPE (isym->st_info) == STT_SECTION)) ++ { ++ bfd_vma immediate; ++ bfd_vma target_address; ++ ++ if (ocontents == NULL) ++ { ++ if (elf_section_data (o)->this_hdr.contents != NULL) ++ ocontents = elf_section_data (o)->this_hdr.contents; ++ else ++ { ++ /* We always cache the section contents. ++ Perhaps, if info->keep_memory is FALSE, we ++ should free them, if we are permitted to. */ ++ if (o->rawsize == 0) ++ o->rawsize = o->size; ++ ocontents = (bfd_byte *) bfd_malloc (o->rawsize); ++ if (ocontents == NULL) ++ goto error_return; ++ if (!bfd_get_section_contents (abfd, o, ocontents, ++ (file_ptr) 0, ++ o->rawsize)) ++ goto error_return; ++ elf_section_data (o)->this_hdr.contents = ocontents; ++ } ++ } ++ ++ unsigned long instr = bfd_get_32 (abfd, ocontents + irelscan->r_offset); ++ immediate = instr & 0x0000ffff; ++ target_address = immediate; ++ offset = calc_fixup (target_address, 0, sec); ++ immediate -= offset; ++ irelscan->r_addend -= offset; ++ microblaze_bfd_write_imm_value_32 (abfd, ocontents + irelscan->r_offset, ++ irelscan->r_addend); ++ } ++ } ++ ++ if (ELF64_R_TYPE (irelscan->r_info) == (int) R_MICROBLAZE_64) ++ { ++ isym = isymbuf + ELF64_R_SYM (irelscan->r_info); ++ ++ /* Look at the reloc only if the value has been resolved. */ ++ if (isym->st_shndx == shndx ++ && (ELF64_ST_TYPE (isym->st_info) == STT_SECTION)) ++ { ++ bfd_vma immediate; ++ ++ if (ocontents == NULL) ++ { ++ if (elf_section_data (o)->this_hdr.contents != NULL) ++ ocontents = elf_section_data (o)->this_hdr.contents; ++ else ++ { ++ /* We always cache the section contents. ++ Perhaps, if info->keep_memory is FALSE, we ++ should free them, if we are permitted to. */ ++ ++ if (o->rawsize == 0) ++ o->rawsize = o->size; ++ ocontents = (bfd_byte *) bfd_malloc (o->rawsize); ++ if (ocontents == NULL) ++ goto error_return; ++ if (!bfd_get_section_contents (abfd, o, ocontents, ++ (file_ptr) 0, ++ o->rawsize)) ++ goto error_return; ++ elf_section_data (o)->this_hdr.contents = ocontents; ++ } ++ } ++ unsigned long instr_hi = bfd_get_32 (abfd, ocontents ++ + irelscan->r_offset); ++ unsigned long instr_lo = bfd_get_32 (abfd, ocontents ++ + irelscan->r_offset ++ + INST_WORD_SIZE); ++ immediate = (instr_hi & 0x0000ffff) << 16; ++ immediate |= (instr_lo & 0x0000ffff); ++ offset = calc_fixup (irelscan->r_addend, 0, sec); ++ immediate -= offset; ++ irelscan->r_addend -= offset; ++ } ++ } ++ else if (ELF64_R_TYPE (irelscan->r_info) == (int) R_MICROBLAZE_64_PCREL) ++ { ++ isym = isymbuf + ELF64_R_SYM (irelscan->r_info); ++ ++ /* Look at the reloc only if the value has been resolved. */ ++ if (isym->st_shndx == shndx ++ && (ELF64_ST_TYPE (isym->st_info) == STT_SECTION)) ++ { ++ bfd_vma immediate; ++ bfd_vma target_address; ++ ++ if (ocontents == NULL) ++ { ++ if (elf_section_data (o)->this_hdr.contents != NULL) ++ ocontents = elf_section_data (o)->this_hdr.contents; ++ else ++ { ++ /* We always cache the section contents. ++ Perhaps, if info->keep_memory is FALSE, we ++ should free them, if we are permitted to. */ ++ if (o->rawsize == 0) ++ o->rawsize = o->size; ++ ocontents = (bfd_byte *) bfd_malloc (o->rawsize); ++ if (ocontents == NULL) ++ goto error_return; ++ if (!bfd_get_section_contents (abfd, o, ocontents, ++ (file_ptr) 0, ++ o->rawsize)) ++ goto error_return; ++ elf_section_data (o)->this_hdr.contents = ocontents; ++ } ++ } ++ unsigned long instr_hi = bfd_get_32 (abfd, ocontents ++ + irelscan->r_offset); ++ unsigned long instr_lo = bfd_get_32 (abfd, ocontents ++ + irelscan->r_offset ++ + INST_WORD_SIZE); ++ immediate = (instr_hi & 0x0000ffff) << 16; ++ immediate |= (instr_lo & 0x0000ffff); ++ target_address = immediate; ++ offset = calc_fixup (target_address, 0, sec); ++ immediate -= offset; ++ irelscan->r_addend -= offset; ++ microblaze_bfd_write_imm_value_64 (abfd, ocontents ++ + irelscan->r_offset, immediate); ++ } ++ } ++ } ++ } ++ ++ /* Adjust the local symbols defined in this section. */ ++ isymend = isymbuf + symtab_hdr->sh_info; ++ for (isym = isymbuf; isym < isymend; isym++) ++ { ++ if (isym->st_shndx == shndx) ++ { ++ isym->st_value -= calc_fixup (isym->st_value, 0, sec); ++ if (isym->st_size) ++ isym->st_size -= calc_fixup (isym->st_value, isym->st_size, sec); ++ } ++ } ++ ++ /* Now adjust the global symbols defined in this section. */ ++ isym = isymbuf + symtab_hdr->sh_info; ++ symcount = (symtab_hdr->sh_size / sizeof (Elf64_External_Sym)) - symtab_hdr->sh_info; ++ for (sym_index = 0; sym_index < symcount; sym_index++) ++ { ++ sym_hash = elf_sym_hashes (abfd)[sym_index]; ++ if ((sym_hash->root.type == bfd_link_hash_defined ++ || sym_hash->root.type == bfd_link_hash_defweak) ++ && sym_hash->root.u.def.section == sec) ++ { ++ sym_hash->root.u.def.value -= calc_fixup (sym_hash->root.u.def.value, ++ 0, sec); ++ if (sym_hash->size) ++ sym_hash->size -= calc_fixup (sym_hash->root.u.def.value, ++ sym_hash->size, sec); ++ } ++ } ++ ++ /* Physically move the code and change the cooked size. */ ++ dest = sec->relax[0].addr; ++ for (i = 0; i < sec->relax_count; i++) ++ { ++ int len; ++ src = sec->relax[i].addr + sec->relax[i].size; ++ len = sec->relax[i+1].addr - sec->relax[i].addr - sec->relax[i].size; ++ ++ memmove (contents + dest, contents + src, len); ++ sec->size -= sec->relax[i].size; ++ dest += len; ++ } ++ ++ elf_section_data (sec)->relocs = internal_relocs; ++ free_relocs = NULL; ++ ++ elf_section_data (sec)->this_hdr.contents = contents; ++ free_contents = NULL; ++ ++ symtab_hdr->contents = (bfd_byte *) isymbuf; ++ } ++ ++ if (free_relocs != NULL) ++ { ++ free (free_relocs); ++ free_relocs = NULL; ++ } ++ ++ if (free_contents != NULL) ++ { ++ if (!link_info->keep_memory) ++ free (free_contents); ++ else ++ /* Cache the section contents for elf_link_input_bfd. */ ++ elf_section_data (sec)->this_hdr.contents = contents; ++ free_contents = NULL; ++ } ++ ++ if (sec->relax_count == 0) ++ { ++ *again = FALSE; ++ free (sec->relax); ++ sec->relax = NULL; ++ } ++ else ++ *again = TRUE; ++ return TRUE; ++ ++ error_return: ++ if (free_relocs != NULL) ++ free (free_relocs); ++ if (free_contents != NULL) ++ free (free_contents); ++ if (sec->relax != NULL) ++ { ++ free (sec->relax); ++ sec->relax = NULL; ++ sec->relax_count = 0; ++ } ++ return FALSE; ++} ++ ++/* Return the section that should be marked against GC for a given ++ relocation. */ ++ ++static asection * ++microblaze_elf_gc_mark_hook (asection *sec, ++ struct bfd_link_info * info, ++ Elf_Internal_Rela * rel, ++ struct elf_link_hash_entry * h, ++ Elf_Internal_Sym * sym) ++{ ++ if (h != NULL) ++ switch (ELF64_R_TYPE (rel->r_info)) ++ { ++ case R_MICROBLAZE_GNU_VTINHERIT: ++ case R_MICROBLAZE_GNU_VTENTRY: ++ return NULL; ++ } ++ ++ return _bfd_elf_gc_mark_hook (sec, info, rel, h, sym); ++} ++ ++/* Update the got entry reference counts for the section being removed. */ ++ ++static bfd_boolean ++microblaze_elf_gc_sweep_hook (bfd * abfd ATTRIBUTE_UNUSED, ++ struct bfd_link_info * info ATTRIBUTE_UNUSED, ++ asection * sec ATTRIBUTE_UNUSED, ++ const Elf_Internal_Rela * relocs ATTRIBUTE_UNUSED) ++{ ++ return TRUE; ++} ++ ++/* PIC support. */ ++ ++#define PLT_ENTRY_SIZE 16 ++ ++#define PLT_ENTRY_WORD_0 0xb0000000 /* "imm 0". */ ++#define PLT_ENTRY_WORD_1 0xe9940000 /* "lwi r12,r20,0" - relocated to lwi r12,r20,func@GOT. */ ++#define PLT_ENTRY_WORD_1_NOPIC 0xe9800000 /* "lwi r12,r0,0" - non-PIC object. */ ++#define PLT_ENTRY_WORD_2 0x98186000 /* "brad r12". */ ++#define PLT_ENTRY_WORD_3 0x80000000 /* "nop". */ ++ ++/* Create .got, .gotplt, and .rela.got sections in DYNOBJ, and set up ++ shortcuts to them in our hash table. */ ++ ++static bfd_boolean ++create_got_section (bfd *dynobj, struct bfd_link_info *info) ++{ ++ struct elf64_mb_link_hash_table *htab; ++ ++ if (! _bfd_elf_create_got_section (dynobj, info)) ++ return FALSE; ++ htab = elf64_mb_hash_table (info); ++ if (htab == NULL) ++ return FALSE; ++ ++ htab->sgot = bfd_get_linker_section (dynobj, ".got"); ++ htab->sgotplt = bfd_get_linker_section (dynobj, ".got.plt"); ++ if (!htab->sgot || !htab->sgotplt) ++ return FALSE; ++ ++ if ((htab->srelgot = bfd_get_linker_section (dynobj, ".rela.got")) == NULL) ++ htab->srelgot = bfd_make_section_anyway (dynobj, ".rela.got"); ++ if (htab->srelgot == NULL ++ || ! bfd_set_section_flags (dynobj, htab->srelgot, SEC_ALLOC ++ | SEC_LOAD ++ | SEC_HAS_CONTENTS ++ | SEC_IN_MEMORY ++ | SEC_LINKER_CREATED ++ | SEC_READONLY) ++ || ! bfd_set_section_alignment (dynobj, htab->srelgot, 2)) ++ return FALSE; ++ return TRUE; ++} ++ ++static bfd_boolean ++update_local_sym_info (bfd *abfd, ++ Elf_Internal_Shdr *symtab_hdr, ++ unsigned long r_symndx, ++ unsigned int tls_type) ++{ ++ bfd_signed_vma *local_got_refcounts = elf_local_got_refcounts (abfd); ++ unsigned char *local_got_tls_masks; ++ ++ if (local_got_refcounts == NULL) ++ { ++ bfd_size_type size = symtab_hdr->sh_info; ++ ++ size *= (sizeof (*local_got_refcounts) + sizeof (*local_got_tls_masks)); ++ local_got_refcounts = bfd_zalloc (abfd, size); ++ if (local_got_refcounts == NULL) ++ return FALSE; ++ elf_local_got_refcounts (abfd) = local_got_refcounts; ++ } ++ ++ local_got_tls_masks = ++ (unsigned char *) (local_got_refcounts + symtab_hdr->sh_info); ++ local_got_tls_masks[r_symndx] |= tls_type; ++ local_got_refcounts[r_symndx] += 1; ++ ++ return TRUE; ++} ++/* Look through the relocs for a section during the first phase. */ ++ ++static bfd_boolean ++microblaze_elf_check_relocs (bfd * abfd, ++ struct bfd_link_info * info, ++ asection * sec, ++ const Elf_Internal_Rela * relocs) ++{ ++ Elf_Internal_Shdr * symtab_hdr; ++ struct elf_link_hash_entry ** sym_hashes; ++ struct elf_link_hash_entry ** sym_hashes_end; ++ const Elf_Internal_Rela * rel; ++ const Elf_Internal_Rela * rel_end; ++ struct elf64_mb_link_hash_table *htab; ++ asection *sreloc = NULL; ++ ++ if (bfd_link_relocatable (info)) ++ return TRUE; ++ ++ htab = elf64_mb_hash_table (info); ++ if (htab == NULL) ++ return FALSE; ++ ++ symtab_hdr = & elf_tdata (abfd)->symtab_hdr; ++ sym_hashes = elf_sym_hashes (abfd); ++ sym_hashes_end = sym_hashes + symtab_hdr->sh_size / sizeof (Elf64_External_Sym); ++ if (!elf_bad_symtab (abfd)) ++ sym_hashes_end -= symtab_hdr->sh_info; ++ ++ rel_end = relocs + sec->reloc_count; ++ ++ for (rel = relocs; rel < rel_end; rel++) ++ { ++ unsigned int r_type; ++ struct elf_link_hash_entry * h; ++ unsigned long r_symndx; ++ unsigned char tls_type = 0; ++ ++ r_symndx = ELF64_R_SYM (rel->r_info); ++ r_type = ELF64_R_TYPE (rel->r_info); ++ ++ if (r_symndx < symtab_hdr->sh_info) ++ h = NULL; ++ else ++ { ++ h = sym_hashes [r_symndx - symtab_hdr->sh_info]; ++ ++ /* PR15323, ref flags aren't set for references in the same ++ object. */ ++ h->root.non_ir_ref = 1; ++ } ++ ++ switch (r_type) ++ { ++ /* This relocation describes the C++ object vtable hierarchy. ++ Reconstruct it for later use during GC. */ ++ case R_MICROBLAZE_GNU_VTINHERIT: ++ if (!bfd_elf_gc_record_vtinherit (abfd, sec, h, rel->r_offset)) ++ return FALSE; ++ break; ++ ++ /* This relocation describes which C++ vtable entries are actually ++ used. Record for later use during GC. */ ++ case R_MICROBLAZE_GNU_VTENTRY: ++ if (!bfd_elf_gc_record_vtentry (abfd, sec, h, rel->r_addend)) ++ return FALSE; ++ break; ++ ++ /* This relocation requires .plt entry. */ ++ case R_MICROBLAZE_PLT_64: ++ if (h != NULL) ++ { ++ h->needs_plt = 1; ++ h->plt.refcount += 1; ++ } ++ break; ++ ++ /* This relocation requires .got entry. */ ++ case R_MICROBLAZE_TLSGD: ++ tls_type |= (TLS_TLS | TLS_GD); ++ goto dogottls; ++ case R_MICROBLAZE_TLSLD: ++ tls_type |= (TLS_TLS | TLS_LD); ++ dogottls: ++ sec->has_tls_reloc = 1; ++ case R_MICROBLAZE_GOT_64: ++ if (htab->sgot == NULL) ++ { ++ if (htab->elf.dynobj == NULL) ++ htab->elf.dynobj = abfd; ++ if (!create_got_section (htab->elf.dynobj, info)) ++ return FALSE; ++ } ++ if (h != NULL) ++ { ++ h->got.refcount += 1; ++ elf64_mb_hash_entry (h)->tls_mask |= tls_type; ++ } ++ else ++ { ++ if (! update_local_sym_info(abfd, symtab_hdr, r_symndx, tls_type) ) ++ return FALSE; ++ } ++ break; ++ ++ case R_MICROBLAZE_64: ++ case R_MICROBLAZE_64_PCREL: ++ case R_MICROBLAZE_32: ++ { ++ if (h != NULL && !bfd_link_pic (info)) ++ { ++ /* we may need a copy reloc. */ ++ h->non_got_ref = 1; ++ ++ /* we may also need a .plt entry. */ ++ h->plt.refcount += 1; ++ if (ELF64_R_TYPE (rel->r_info) != R_MICROBLAZE_64_PCREL) ++ h->pointer_equality_needed = 1; ++ } ++ ++ ++ /* If we are creating a shared library, and this is a reloc ++ against a global symbol, or a non PC relative reloc ++ against a local symbol, then we need to copy the reloc ++ into the shared library. However, if we are linking with ++ -Bsymbolic, we do not need to copy a reloc against a ++ global symbol which is defined in an object we are ++ including in the link (i.e., DEF_REGULAR is set). At ++ this point we have not seen all the input files, so it is ++ possible that DEF_REGULAR is not set now but will be set ++ later (it is never cleared). In case of a weak definition, ++ DEF_REGULAR may be cleared later by a strong definition in ++ a shared library. We account for that possibility below by ++ storing information in the relocs_copied field of the hash ++ table entry. A similar situation occurs when creating ++ shared libraries and symbol visibility changes render the ++ symbol local. ++ ++ If on the other hand, we are creating an executable, we ++ may need to keep relocations for symbols satisfied by a ++ dynamic library if we manage to avoid copy relocs for the ++ symbol. */ ++ ++ if ((bfd_link_pic (info) ++ && (sec->flags & SEC_ALLOC) != 0 ++ && (r_type != R_MICROBLAZE_64_PCREL ++ || (h != NULL ++ && (! info->symbolic ++ || h->root.type == bfd_link_hash_defweak ++ || !h->def_regular)))) ++ || (!bfd_link_pic (info) ++ && (sec->flags & SEC_ALLOC) != 0 ++ && h != NULL ++ && (h->root.type == bfd_link_hash_defweak ++ || !h->def_regular))) ++ { ++ struct elf64_mb_dyn_relocs *p; ++ struct elf64_mb_dyn_relocs **head; ++ ++ /* When creating a shared object, we must copy these ++ relocs into the output file. We create a reloc ++ section in dynobj and make room for the reloc. */ ++ ++ if (sreloc == NULL) ++ { ++ bfd *dynobj; ++ ++ if (htab->elf.dynobj == NULL) ++ htab->elf.dynobj = abfd; ++ dynobj = htab->elf.dynobj; ++ ++ sreloc = _bfd_elf_make_dynamic_reloc_section (sec, dynobj, ++ 2, abfd, 1); ++ if (sreloc == NULL) ++ return FALSE; ++ } ++ ++ /* If this is a global symbol, we count the number of ++ relocations we need for this symbol. */ ++ if (h != NULL) ++ head = &((struct elf64_mb_link_hash_entry *) h)->dyn_relocs; ++ else ++ { ++ /* Track dynamic relocs needed for local syms too. ++ We really need local syms available to do this ++ easily. Oh well. */ ++ ++ asection *s; ++ Elf_Internal_Sym *isym; ++ void *vpp; ++ ++ isym = bfd_sym_from_r_symndx (&htab->sym_sec, ++ abfd, r_symndx); ++ if (isym == NULL) ++ return FALSE; ++ ++ s = bfd_section_from_elf_index (abfd, isym->st_shndx); ++ if (s == NULL) ++ return FALSE; ++ ++ vpp = &elf_section_data (s)->local_dynrel; ++ head = (struct elf64_mb_dyn_relocs **) vpp; ++ } ++ ++ p = *head; ++ if (p == NULL || p->sec != sec) ++ { ++ bfd_size_type amt = sizeof *p; ++ p = ((struct elf64_mb_dyn_relocs *) ++ bfd_alloc (htab->elf.dynobj, amt)); ++ if (p == NULL) ++ return FALSE; ++ p->next = *head; ++ *head = p; ++ p->sec = sec; ++ p->count = 0; ++ p->pc_count = 0; ++ } ++ ++ p->count += 1; ++ if (r_type == R_MICROBLAZE_64_PCREL) ++ p->pc_count += 1; ++ } ++ } ++ break; ++ } ++ } ++ ++ return TRUE; ++} ++ ++static bfd_boolean ++microblaze_elf_create_dynamic_sections (bfd *dynobj, struct bfd_link_info *info) ++{ ++ struct elf64_mb_link_hash_table *htab; ++ ++ htab = elf64_mb_hash_table (info); ++ if (htab == NULL) ++ return FALSE; ++ ++ if (!htab->sgot && !create_got_section (dynobj, info)) ++ return FALSE; ++ ++ if (!_bfd_elf_create_dynamic_sections (dynobj, info)) ++ return FALSE; ++ ++ htab->splt = bfd_get_linker_section (dynobj, ".plt"); ++ htab->srelplt = bfd_get_linker_section (dynobj, ".rela.plt"); ++ htab->sdynbss = bfd_get_linker_section (dynobj, ".dynbss"); ++ if (!bfd_link_pic (info)) ++ htab->srelbss = bfd_get_linker_section (dynobj, ".rela.bss"); ++ ++ if (!htab->splt || !htab->srelplt || !htab->sdynbss ++ || (!bfd_link_pic (info) && !htab->srelbss)) ++ abort (); ++ ++ return TRUE; ++} ++ ++/* Copy the extra info we tack onto an elf_link_hash_entry. */ ++ ++static void ++microblaze_elf_copy_indirect_symbol (struct bfd_link_info *info, ++ struct elf_link_hash_entry *dir, ++ struct elf_link_hash_entry *ind) ++{ ++ struct elf64_mb_link_hash_entry *edir, *eind; ++ ++ edir = (struct elf64_mb_link_hash_entry *) dir; ++ eind = (struct elf64_mb_link_hash_entry *) ind; ++ ++ if (eind->dyn_relocs != NULL) ++ { ++ if (edir->dyn_relocs != NULL) ++ { ++ struct elf64_mb_dyn_relocs **pp; ++ struct elf64_mb_dyn_relocs *p; ++ ++ if (ind->root.type == bfd_link_hash_indirect) ++ abort (); ++ ++ /* Add reloc counts against the weak sym to the strong sym ++ list. Merge any entries against the same section. */ ++ for (pp = &eind->dyn_relocs; (p = *pp) != NULL; ) ++ { ++ struct elf64_mb_dyn_relocs *q; ++ ++ for (q = edir->dyn_relocs; q != NULL; q = q->next) ++ if (q->sec == p->sec) ++ { ++ q->pc_count += p->pc_count; ++ q->count += p->count; ++ *pp = p->next; ++ break; ++ } ++ if (q == NULL) ++ pp = &p->next; ++ } ++ *pp = edir->dyn_relocs; ++ } ++ ++ edir->dyn_relocs = eind->dyn_relocs; ++ eind->dyn_relocs = NULL; ++ } ++ ++ edir->tls_mask |= eind->tls_mask; ++ ++ _bfd_elf_link_hash_copy_indirect (info, dir, ind); ++} ++ ++static bfd_boolean ++microblaze_elf_adjust_dynamic_symbol (struct bfd_link_info *info, ++ struct elf_link_hash_entry *h) ++{ ++ struct elf64_mb_link_hash_table *htab; ++ struct elf64_mb_link_hash_entry * eh; ++ struct elf64_mb_dyn_relocs *p; ++ asection *sdynbss, *s; ++ unsigned int power_of_two; ++ bfd *dynobj; ++ ++ htab = elf64_mb_hash_table (info); ++ if (htab == NULL) ++ return FALSE; ++ ++ /* If this is a function, put it in the procedure linkage table. We ++ will fill in the contents of the procedure linkage table later, ++ when we know the address of the .got section. */ ++ if (h->type == STT_FUNC ++ || h->needs_plt) ++ { ++ if (h->plt.refcount <= 0 ++ || SYMBOL_CALLS_LOCAL (info, h) ++ || (ELF_ST_VISIBILITY (h->other) != STV_DEFAULT ++ && h->root.type == bfd_link_hash_undefweak)) ++ { ++ /* This case can occur if we saw a PLT reloc in an input ++ file, but the symbol was never referred to by a dynamic ++ object, or if all references were garbage collected. In ++ such a case, we don't actually need to build a procedure ++ linkage table, and we can just do a PC32 reloc instead. */ ++ h->plt.offset = (bfd_vma) -1; ++ h->needs_plt = 0; ++ } ++ ++ return TRUE; ++ } ++ else ++ /* It's possible that we incorrectly decided a .plt reloc was ++ needed for an R_MICROBLAZE_64_PCREL reloc to a non-function sym in ++ check_relocs. We can't decide accurately between function and ++ non-function syms in check-relocs; Objects loaded later in ++ the link may change h->type. So fix it now. */ ++ h->plt.offset = (bfd_vma) -1; ++ ++ /* If this is a weak symbol, and there is a real definition, the ++ processor independent code will have arranged for us to see the ++ real definition first, and we can just use the same value. */ ++ if (h->u.weakdef != NULL) ++ { ++ BFD_ASSERT (h->u.weakdef->root.type == bfd_link_hash_defined ++ || h->u.weakdef->root.type == bfd_link_hash_defweak); ++ h->root.u.def.section = h->u.weakdef->root.u.def.section; ++ h->root.u.def.value = h->u.weakdef->root.u.def.value; ++ return TRUE; ++ } ++ ++ /* This is a reference to a symbol defined by a dynamic object which ++ is not a function. */ ++ ++ /* If we are creating a shared library, we must presume that the ++ only references to the symbol are via the global offset table. ++ For such cases we need not do anything here; the relocations will ++ be handled correctly by relocate_section. */ ++ if (bfd_link_pic (info)) ++ return TRUE; ++ ++ /* If there are no references to this symbol that do not use the ++ GOT, we don't need to generate a copy reloc. */ ++ if (!h->non_got_ref) ++ return TRUE; ++ ++ /* If -z nocopyreloc was given, we won't generate them either. */ ++ if (info->nocopyreloc) ++ { ++ h->non_got_ref = 0; ++ return TRUE; ++ } ++ ++ eh = (struct elf64_mb_link_hash_entry *) h; ++ for (p = eh->dyn_relocs; p != NULL; p = p->next) ++ { ++ s = p->sec->output_section; ++ if (s != NULL && (s->flags & SEC_READONLY) != 0) ++ break; ++ } ++ ++ /* If we didn't find any dynamic relocs in read-only sections, then ++ we'll be keeping the dynamic relocs and avoiding the copy reloc. */ ++ if (p == NULL) ++ { ++ h->non_got_ref = 0; ++ return TRUE; ++ } ++ ++ /* We must allocate the symbol in our .dynbss section, which will ++ become part of the .bss section of the executable. There will be ++ an entry for this symbol in the .dynsym section. The dynamic ++ object will contain position independent code, so all references ++ from the dynamic object to this symbol will go through the global ++ offset table. The dynamic linker will use the .dynsym entry to ++ determine the address it must put in the global offset table, so ++ both the dynamic object and the regular object will refer to the ++ same memory location for the variable. */ ++ ++ /* We must generate a R_MICROBLAZE_COPY reloc to tell the dynamic linker ++ to copy the initial value out of the dynamic object and into the ++ runtime process image. */ ++ dynobj = elf_hash_table (info)->dynobj; ++ BFD_ASSERT (dynobj != NULL); ++ if ((h->root.u.def.section->flags & SEC_ALLOC) != 0) ++ { ++ htab->srelbss->size += sizeof (Elf64_External_Rela); ++ h->needs_copy = 1; ++ } ++ ++ /* We need to figure out the alignment required for this symbol. I ++ have no idea how ELF linkers handle this. */ ++ power_of_two = bfd_log2 (h->size); ++ if (power_of_two > 3) ++ power_of_two = 3; ++ ++ sdynbss = htab->sdynbss; ++ /* Apply the required alignment. */ ++ sdynbss->size = BFD_ALIGN (sdynbss->size, (bfd_size_type) (1 << power_of_two)); ++ if (power_of_two > bfd_get_section_alignment (dynobj, sdynbss)) ++ { ++ if (! bfd_set_section_alignment (dynobj, sdynbss, power_of_two)) ++ return FALSE; ++ } ++ ++ /* Define the symbol as being at this point in the section. */ ++ h->root.u.def.section = sdynbss; ++ h->root.u.def.value = sdynbss->size; ++ ++ /* Increment the section size to make room for the symbol. */ ++ sdynbss->size += h->size; ++ return TRUE; ++} ++ ++/* Allocate space in .plt, .got and associated reloc sections for ++ dynamic relocs. */ ++ ++static bfd_boolean ++allocate_dynrelocs (struct elf_link_hash_entry *h, void * dat) ++{ ++ struct bfd_link_info *info; ++ struct elf64_mb_link_hash_table *htab; ++ struct elf64_mb_link_hash_entry *eh; ++ struct elf64_mb_dyn_relocs *p; ++ ++ if (h->root.type == bfd_link_hash_indirect) ++ return TRUE; ++ ++ info = (struct bfd_link_info *) dat; ++ htab = elf64_mb_hash_table (info); ++ if (htab == NULL) ++ return FALSE; ++ ++ if (htab->elf.dynamic_sections_created ++ && h->plt.refcount > 0) ++ { ++ /* Make sure this symbol is output as a dynamic symbol. ++ Undefined weak syms won't yet be marked as dynamic. */ ++ if (h->dynindx == -1 ++ && !h->forced_local) ++ { ++ if (! bfd_elf_link_record_dynamic_symbol (info, h)) ++ return FALSE; ++ } ++ ++ if (WILL_CALL_FINISH_DYNAMIC_SYMBOL (1, bfd_link_pic (info), h)) ++ { ++ asection *s = htab->splt; ++ ++ /* The first entry in .plt is reserved. */ ++ if (s->size == 0) ++ s->size = PLT_ENTRY_SIZE; ++ ++ h->plt.offset = s->size; ++ ++ /* If this symbol is not defined in a regular file, and we are ++ not generating a shared library, then set the symbol to this ++ location in the .plt. This is required to make function ++ pointers compare as equal between the normal executable and ++ the shared library. */ ++ if (! bfd_link_pic (info) ++ && !h->def_regular) ++ { ++ h->root.u.def.section = s; ++ h->root.u.def.value = h->plt.offset; ++ } ++ ++ /* Make room for this entry. */ ++ s->size += PLT_ENTRY_SIZE; ++ ++ /* We also need to make an entry in the .got.plt section, which ++ will be placed in the .got section by the linker script. */ ++ htab->sgotplt->size += 4; ++ ++ /* We also need to make an entry in the .rel.plt section. */ ++ htab->srelplt->size += sizeof (Elf64_External_Rela); ++ } ++ else ++ { ++ h->plt.offset = (bfd_vma) -1; ++ h->needs_plt = 0; ++ } ++ } ++ else ++ { ++ h->plt.offset = (bfd_vma) -1; ++ h->needs_plt = 0; ++ } ++ ++ eh = (struct elf64_mb_link_hash_entry *) h; ++ if (h->got.refcount > 0) ++ { ++ unsigned int need; ++ asection *s; ++ ++ /* Make sure this symbol is output as a dynamic symbol. ++ Undefined weak syms won't yet be marked as dynamic. */ ++ if (h->dynindx == -1 ++ && !h->forced_local) ++ { ++ if (! bfd_elf_link_record_dynamic_symbol (info, h)) ++ return FALSE; ++ } ++ ++ need = 0; ++ if ((eh->tls_mask & TLS_TLS) != 0) ++ { ++ /* Handle TLS Symbol */ ++ if ((eh->tls_mask & TLS_LD) != 0) ++ { ++ if (!eh->elf.def_dynamic) ++ /* We'll just use htab->tlsld_got.offset. This should ++ always be the case. It's a little odd if we have ++ a local dynamic reloc against a non-local symbol. */ ++ htab->tlsld_got.refcount += 1; ++ else ++ need += 8; ++ } ++ if ((eh->tls_mask & TLS_GD) != 0) ++ need += 8; ++ } ++ else ++ { ++ /* Regular (non-TLS) symbol */ ++ need += 4; ++ } ++ if (need == 0) ++ { ++ h->got.offset = (bfd_vma) -1; ++ } ++ else ++ { ++ s = htab->sgot; ++ h->got.offset = s->size; ++ s->size += need; ++ htab->srelgot->size += need * (sizeof (Elf64_External_Rela) / 4); ++ } ++ } ++ else ++ h->got.offset = (bfd_vma) -1; ++ ++ if (eh->dyn_relocs == NULL) ++ return TRUE; ++ ++ /* In the shared -Bsymbolic case, discard space allocated for ++ dynamic pc-relative relocs against symbols which turn out to be ++ defined in regular objects. For the normal shared case, discard ++ space for pc-relative relocs that have become local due to symbol ++ visibility changes. */ ++ ++ if (bfd_link_pic (info)) ++ { ++ if (h->def_regular ++ && (h->forced_local ++ || info->symbolic)) ++ { ++ struct elf64_mb_dyn_relocs **pp; ++ ++ for (pp = &eh->dyn_relocs; (p = *pp) != NULL; ) ++ { ++ p->count -= p->pc_count; ++ p->pc_count = 0; ++ if (p->count == 0) ++ *pp = p->next; ++ else ++ pp = &p->next; ++ } ++ } ++ } ++ else ++ { ++ /* For the non-shared case, discard space for relocs against ++ symbols which turn out to need copy relocs or are not ++ dynamic. */ ++ ++ if (!h->non_got_ref ++ && ((h->def_dynamic ++ && !h->def_regular) ++ || (htab->elf.dynamic_sections_created ++ && (h->root.type == bfd_link_hash_undefweak ++ || h->root.type == bfd_link_hash_undefined)))) ++ { ++ /* Make sure this symbol is output as a dynamic symbol. ++ Undefined weak syms won't yet be marked as dynamic. */ ++ if (h->dynindx == -1 ++ && !h->forced_local) ++ { ++ if (! bfd_elf_link_record_dynamic_symbol (info, h)) ++ return FALSE; ++ } ++ ++ /* If that succeeded, we know we'll be keeping all the ++ relocs. */ ++ if (h->dynindx != -1) ++ goto keep; ++ } ++ ++ eh->dyn_relocs = NULL; ++ ++ keep: ; ++ } ++ ++ /* Finally, allocate space. */ ++ for (p = eh->dyn_relocs; p != NULL; p = p->next) ++ { ++ asection *sreloc = elf_section_data (p->sec)->sreloc; ++ sreloc->size += p->count * sizeof (Elf64_External_Rela); ++ } ++ ++ return TRUE; ++} ++ ++/* Set the sizes of the dynamic sections. */ ++ ++static bfd_boolean ++microblaze_elf_size_dynamic_sections (bfd *output_bfd ATTRIBUTE_UNUSED, ++ struct bfd_link_info *info) ++{ ++ struct elf64_mb_link_hash_table *htab; ++ bfd *dynobj; ++ asection *s; ++ bfd *ibfd; ++ ++ htab = elf64_mb_hash_table (info); ++ if (htab == NULL) ++ return FALSE; ++ ++ dynobj = htab->elf.dynobj; ++ BFD_ASSERT (dynobj != NULL); ++ ++ /* Set up .got offsets for local syms, and space for local dynamic ++ relocs. */ ++ for (ibfd = info->input_bfds; ibfd != NULL; ibfd = ibfd->link.next) ++ { ++ bfd_signed_vma *local_got; ++ bfd_signed_vma *end_local_got; ++ bfd_size_type locsymcount; ++ Elf_Internal_Shdr *symtab_hdr; ++ unsigned char *lgot_masks; ++ asection *srel; ++ ++ if (bfd_get_flavour (ibfd) != bfd_target_elf_flavour) ++ continue; ++ ++ for (s = ibfd->sections; s != NULL; s = s->next) ++ { ++ struct elf64_mb_dyn_relocs *p; ++ ++ for (p = ((struct elf64_mb_dyn_relocs *) ++ elf_section_data (s)->local_dynrel); ++ p != NULL; ++ p = p->next) ++ { ++ if (!bfd_is_abs_section (p->sec) ++ && bfd_is_abs_section (p->sec->output_section)) ++ { ++ /* Input section has been discarded, either because ++ it is a copy of a linkonce section or due to ++ linker script /DISCARD/, so we'll be discarding ++ the relocs too. */ ++ } ++ else if (p->count != 0) ++ { ++ srel = elf_section_data (p->sec)->sreloc; ++ srel->size += p->count * sizeof (Elf64_External_Rela); ++ if ((p->sec->output_section->flags & SEC_READONLY) != 0) ++ info->flags |= DF_TEXTREL; ++ } ++ } ++ } ++ ++ local_got = elf_local_got_refcounts (ibfd); ++ if (!local_got) ++ continue; ++ ++ symtab_hdr = &elf_tdata (ibfd)->symtab_hdr; ++ locsymcount = symtab_hdr->sh_info; ++ end_local_got = local_got + locsymcount; ++ lgot_masks = (unsigned char *) end_local_got; ++ s = htab->sgot; ++ srel = htab->srelgot; ++ ++ for (; local_got < end_local_got; ++local_got, ++lgot_masks) ++ { ++ if (*local_got > 0) ++ { ++ unsigned int need = 0; ++ if ((*lgot_masks & TLS_TLS) != 0) ++ { ++ if ((*lgot_masks & TLS_GD) != 0) ++ need += 8; ++ if ((*lgot_masks & TLS_LD) != 0) ++ htab->tlsld_got.refcount += 1; ++ } ++ else ++ need += 4; ++ ++ if (need == 0) ++ { ++ *local_got = (bfd_vma) -1; ++ } ++ else ++ { ++ *local_got = s->size; ++ s->size += need; ++ if (bfd_link_pic (info)) ++ srel->size += need * (sizeof (Elf64_External_Rela) / 4); ++ } ++ } ++ else ++ *local_got = (bfd_vma) -1; ++ } ++ } ++ ++ /* Allocate global sym .plt and .got entries, and space for global ++ sym dynamic relocs. */ ++ elf_link_hash_traverse (elf_hash_table (info), allocate_dynrelocs, info); ++ ++ if (htab->tlsld_got.refcount > 0) ++ { ++ htab->tlsld_got.offset = htab->sgot->size; ++ htab->sgot->size += 8; ++ if (bfd_link_pic (info)) ++ htab->srelgot->size += sizeof (Elf64_External_Rela); ++ } ++ else ++ htab->tlsld_got.offset = (bfd_vma) -1; ++ ++ if (elf_hash_table (info)->dynamic_sections_created) ++ { ++ /* Make space for the trailing nop in .plt. */ ++ if (htab->splt->size > 0) ++ htab->splt->size += 4; ++ } ++ ++ /* The check_relocs and adjust_dynamic_symbol entry points have ++ determined the sizes of the various dynamic sections. Allocate ++ memory for them. */ ++ for (s = dynobj->sections; s != NULL; s = s->next) ++ { ++ const char *name; ++ bfd_boolean strip = FALSE; ++ ++ if ((s->flags & SEC_LINKER_CREATED) == 0) ++ continue; ++ ++ /* It's OK to base decisions on the section name, because none ++ of the dynobj section names depend upon the input files. */ ++ name = bfd_get_section_name (dynobj, s); ++ ++ if (strncmp (name, ".rela", 5) == 0) ++ { ++ if (s->size == 0) ++ { ++ /* If we don't need this section, strip it from the ++ output file. This is to handle .rela.bss and ++ .rela.plt. We must create it in ++ create_dynamic_sections, because it must be created ++ before the linker maps input sections to output ++ sections. The linker does that before ++ adjust_dynamic_symbol is called, and it is that ++ function which decides whether anything needs to go ++ into these sections. */ ++ strip = TRUE; ++ } ++ else ++ { ++ /* We use the reloc_count field as a counter if we need ++ to copy relocs into the output file. */ ++ s->reloc_count = 0; ++ } ++ } ++ else if (s != htab->splt && s != htab->sgot && s != htab->sgotplt) ++ { ++ /* It's not one of our sections, so don't allocate space. */ ++ continue; ++ } ++ ++ if (strip) ++ { ++ s->flags |= SEC_EXCLUDE; ++ continue; ++ } ++ ++ /* Allocate memory for the section contents. */ ++ /* FIXME: This should be a call to bfd_alloc not bfd_zalloc. ++ Unused entries should be reclaimed before the section's contents ++ are written out, but at the moment this does not happen. Thus in ++ order to prevent writing out garbage, we initialise the section's ++ contents to zero. */ ++ s->contents = (bfd_byte *) bfd_zalloc (dynobj, s->size); ++ if (s->contents == NULL && s->size != 0) ++ return FALSE; ++ } ++ ++ if (elf_hash_table (info)->dynamic_sections_created) ++ { ++ /* Add some entries to the .dynamic section. We fill in the ++ values later, in microblaze_elf_finish_dynamic_sections, but we ++ must add the entries now so that we get the correct size for ++ the .dynamic section. The DT_DEBUG entry is filled in by the ++ dynamic linker and used by the debugger. */ ++#define add_dynamic_entry(TAG, VAL) \ ++ _bfd_elf_add_dynamic_entry (info, TAG, VAL) ++ ++ if (bfd_link_executable (info)) ++ { ++ if (!add_dynamic_entry (DT_DEBUG, 0)) ++ return FALSE; ++ } ++ ++ if (!add_dynamic_entry (DT_RELA, 0) ++ || !add_dynamic_entry (DT_RELASZ, 0) ++ || !add_dynamic_entry (DT_RELAENT, sizeof (Elf64_External_Rela))) ++ return FALSE; ++ ++ if (htab->splt->size != 0) ++ { ++ if (!add_dynamic_entry (DT_PLTGOT, 0) ++ || !add_dynamic_entry (DT_PLTRELSZ, 0) ++ || !add_dynamic_entry (DT_PLTREL, DT_RELA) ++ || !add_dynamic_entry (DT_JMPREL, 0) ++ || !add_dynamic_entry (DT_BIND_NOW, 1)) ++ return FALSE; ++ } ++ ++ if (info->flags & DF_TEXTREL) ++ { ++ if (!add_dynamic_entry (DT_TEXTREL, 0)) ++ return FALSE; ++ } ++ } ++#undef add_dynamic_entry ++ return TRUE; ++} ++ ++/* Finish up dynamic symbol handling. We set the contents of various ++ dynamic sections here. */ ++ ++static bfd_boolean ++microblaze_elf_finish_dynamic_symbol (bfd *output_bfd, ++ struct bfd_link_info *info, ++ struct elf_link_hash_entry *h, ++ Elf_Internal_Sym *sym) ++{ ++ struct elf64_mb_link_hash_table *htab; ++ struct elf64_mb_link_hash_entry *eh = elf64_mb_hash_entry(h); ++ ++ htab = elf64_mb_hash_table (info); ++ if (htab == NULL) ++ return FALSE; ++ ++ if (h->plt.offset != (bfd_vma) -1) ++ { ++ asection *splt; ++ asection *srela; ++ asection *sgotplt; ++ Elf_Internal_Rela rela; ++ bfd_byte *loc; ++ bfd_vma plt_index; ++ bfd_vma got_offset; ++ bfd_vma got_addr; ++ ++ /* This symbol has an entry in the procedure linkage table. Set ++ it up. */ ++ BFD_ASSERT (h->dynindx != -1); ++ ++ splt = htab->splt; ++ srela = htab->srelplt; ++ sgotplt = htab->sgotplt; ++ BFD_ASSERT (splt != NULL && srela != NULL && sgotplt != NULL); ++ ++ plt_index = h->plt.offset / PLT_ENTRY_SIZE - 1; /* first entry reserved. */ ++ got_offset = (plt_index + 3) * 4; /* 3 reserved ??? */ ++ got_addr = got_offset; ++ ++ /* For non-PIC objects we need absolute address of the GOT entry. */ ++ if (!bfd_link_pic (info)) ++ got_addr += htab->sgotplt->output_section->vma + sgotplt->output_offset; ++ ++ /* Fill in the entry in the procedure linkage table. */ ++ bfd_put_32 (output_bfd, PLT_ENTRY_WORD_0 + ((got_addr >> 16) & 0xffff), ++ splt->contents + h->plt.offset); ++ if (bfd_link_pic (info)) ++ bfd_put_32 (output_bfd, PLT_ENTRY_WORD_1 + (got_addr & 0xffff), ++ splt->contents + h->plt.offset + 4); ++ else ++ bfd_put_32 (output_bfd, PLT_ENTRY_WORD_1_NOPIC + (got_addr & 0xffff), ++ splt->contents + h->plt.offset + 4); ++ bfd_put_32 (output_bfd, (bfd_vma) PLT_ENTRY_WORD_2, ++ splt->contents + h->plt.offset + 8); ++ bfd_put_32 (output_bfd, (bfd_vma) PLT_ENTRY_WORD_3, ++ splt->contents + h->plt.offset + 12); ++ ++ /* Any additions to the .got section??? */ ++ /* bfd_put_32 (output_bfd, ++ splt->output_section->vma + splt->output_offset + h->plt.offset + 4, ++ sgotplt->contents + got_offset); */ ++ ++ /* Fill in the entry in the .rela.plt section. */ ++ rela.r_offset = (sgotplt->output_section->vma ++ + sgotplt->output_offset ++ + got_offset); ++ rela.r_info = ELF64_R_INFO (h->dynindx, R_MICROBLAZE_JUMP_SLOT); ++ rela.r_addend = 0; ++ loc = srela->contents; ++ loc += plt_index * sizeof (Elf64_External_Rela); ++ bfd_elf64_swap_reloca_out (output_bfd, &rela, loc); ++ ++ if (!h->def_regular) ++ { ++ /* Mark the symbol as undefined, rather than as defined in ++ the .plt section. Zero the value. */ ++ sym->st_shndx = SHN_UNDEF; ++ sym->st_value = 0; ++ } ++ } ++ ++ /* h->got.refcount to be checked ? */ ++ if (h->got.offset != (bfd_vma) -1 && ++ ! ((h->got.offset & 1) || ++ IS_TLS_LD(eh->tls_mask) || IS_TLS_GD(eh->tls_mask))) ++ { ++ asection *sgot; ++ asection *srela; ++ bfd_vma offset; ++ ++ /* This symbol has an entry in the global offset table. Set it ++ up. */ ++ ++ sgot = htab->sgot; ++ srela = htab->srelgot; ++ BFD_ASSERT (sgot != NULL && srela != NULL); ++ ++ offset = (sgot->output_section->vma + sgot->output_offset ++ + (h->got.offset &~ (bfd_vma) 1)); ++ ++ /* If this is a -Bsymbolic link, and the symbol is defined ++ locally, we just want to emit a RELATIVE reloc. Likewise if ++ the symbol was forced to be local because of a version file. ++ The entry in the global offset table will already have been ++ initialized in the relocate_section function. */ ++ if (bfd_link_pic (info) ++ && ((info->symbolic && h->def_regular) ++ || h->dynindx == -1)) ++ { ++ asection *sec = h->root.u.def.section; ++ microblaze_elf_output_dynamic_relocation (output_bfd, ++ srela, srela->reloc_count++, ++ /* symindex= */ 0, ++ R_MICROBLAZE_REL, offset, ++ h->root.u.def.value ++ + sec->output_section->vma ++ + sec->output_offset); ++ } ++ else ++ { ++ microblaze_elf_output_dynamic_relocation (output_bfd, ++ srela, srela->reloc_count++, ++ h->dynindx, ++ R_MICROBLAZE_GLOB_DAT, ++ offset, 0); ++ } ++ ++ bfd_put_32 (output_bfd, (bfd_vma) 0, ++ sgot->contents + (h->got.offset &~ (bfd_vma) 1)); ++ } ++ ++ if (h->needs_copy) ++ { ++ asection *s; ++ Elf_Internal_Rela rela; ++ bfd_byte *loc; ++ ++ /* This symbols needs a copy reloc. Set it up. */ ++ ++ BFD_ASSERT (h->dynindx != -1); ++ ++ s = bfd_get_linker_section (htab->elf.dynobj, ".rela.bss"); ++ BFD_ASSERT (s != NULL); ++ ++ rela.r_offset = (h->root.u.def.value ++ + h->root.u.def.section->output_section->vma ++ + h->root.u.def.section->output_offset); ++ rela.r_info = ELF64_R_INFO (h->dynindx, R_MICROBLAZE_COPY); ++ rela.r_addend = 0; ++ loc = s->contents + s->reloc_count++ * sizeof (Elf64_External_Rela); ++ bfd_elf64_swap_reloca_out (output_bfd, &rela, loc); ++ } ++ ++ /* Mark some specially defined symbols as absolute. */ ++ if (h == htab->elf.hdynamic ++ || h == htab->elf.hgot ++ || h == htab->elf.hplt) ++ sym->st_shndx = SHN_ABS; ++ ++ return TRUE; ++} ++ ++ ++/* Finish up the dynamic sections. */ ++ ++static bfd_boolean ++microblaze_elf_finish_dynamic_sections (bfd *output_bfd, ++ struct bfd_link_info *info) ++{ ++ bfd *dynobj; ++ asection *sdyn, *sgot; ++ struct elf64_mb_link_hash_table *htab; ++ ++ htab = elf64_mb_hash_table (info); ++ if (htab == NULL) ++ return FALSE; ++ ++ dynobj = htab->elf.dynobj; ++ ++ sdyn = bfd_get_linker_section (dynobj, ".dynamic"); ++ ++ if (htab->elf.dynamic_sections_created) ++ { ++ asection *splt; ++ Elf64_External_Dyn *dyncon, *dynconend; ++ ++ splt = bfd_get_linker_section (dynobj, ".plt"); ++ BFD_ASSERT (splt != NULL && sdyn != NULL); ++ ++ dyncon = (Elf64_External_Dyn *) sdyn->contents; ++ dynconend = (Elf64_External_Dyn *) (sdyn->contents + sdyn->size); ++ for (; dyncon < dynconend; dyncon++) ++ { ++ Elf_Internal_Dyn dyn; ++ const char *name; ++ bfd_boolean size; ++ ++ bfd_elf64_swap_dyn_in (dynobj, dyncon, &dyn); ++ ++ switch (dyn.d_tag) ++ { ++ case DT_PLTGOT: name = ".got.plt"; size = FALSE; break; ++ case DT_PLTRELSZ: name = ".rela.plt"; size = TRUE; break; ++ case DT_JMPREL: name = ".rela.plt"; size = FALSE; break; ++ case DT_RELA: name = ".rela.dyn"; size = FALSE; break; ++ case DT_RELASZ: name = ".rela.dyn"; size = TRUE; break; ++ default: name = NULL; size = FALSE; break; ++ } ++ ++ if (name != NULL) ++ { ++ asection *s; ++ ++ s = bfd_get_section_by_name (output_bfd, name); ++ if (s == NULL) ++ dyn.d_un.d_val = 0; ++ else ++ { ++ if (! size) ++ dyn.d_un.d_ptr = s->vma; ++ else ++ dyn.d_un.d_val = s->size; ++ } ++ bfd_elf64_swap_dyn_out (output_bfd, &dyn, dyncon); ++ } ++ } ++ ++ /* Clear the first entry in the procedure linkage table, ++ and put a nop in the last four bytes. */ ++ if (splt->size > 0) ++ { ++ memset (splt->contents, 0, PLT_ENTRY_SIZE); ++ bfd_put_32 (output_bfd, (bfd_vma) 0x80000000 /* nop. */, ++ splt->contents + splt->size - 4); ++ } ++ ++ elf_section_data (splt->output_section)->this_hdr.sh_entsize = 4; ++ } ++ ++ /* Set the first entry in the global offset table to the address of ++ the dynamic section. */ ++ sgot = bfd_get_linker_section (dynobj, ".got.plt"); ++ if (sgot && sgot->size > 0) ++ { ++ if (sdyn == NULL) ++ bfd_put_32 (output_bfd, (bfd_vma) 0, sgot->contents); ++ else ++ bfd_put_32 (output_bfd, ++ sdyn->output_section->vma + sdyn->output_offset, ++ sgot->contents); ++ elf_section_data (sgot->output_section)->this_hdr.sh_entsize = 4; ++ } ++ ++ if (htab->sgot && htab->sgot->size > 0) ++ elf_section_data (htab->sgot->output_section)->this_hdr.sh_entsize = 4; ++ ++ return TRUE; ++} ++ ++/* Hook called by the linker routine which adds symbols from an object ++ file. We use it to put .comm items in .sbss, and not .bss. */ ++ ++static bfd_boolean ++microblaze_elf_add_symbol_hook (bfd *abfd, ++ struct bfd_link_info *info, ++ Elf_Internal_Sym *sym, ++ const char **namep ATTRIBUTE_UNUSED, ++ flagword *flagsp ATTRIBUTE_UNUSED, ++ asection **secp, ++ bfd_vma *valp) ++{ ++ if (sym->st_shndx == SHN_COMMON ++ && !bfd_link_relocatable (info) ++ && sym->st_size <= elf_gp_size (abfd)) ++ { ++ /* Common symbols less than or equal to -G nn bytes are automatically ++ put into .sbss. */ ++ *secp = bfd_make_section_old_way (abfd, ".sbss"); ++ if (*secp == NULL ++ || ! bfd_set_section_flags (abfd, *secp, SEC_IS_COMMON)) ++ return FALSE; ++ ++ *valp = sym->st_size; ++ } ++ ++ return TRUE; ++} ++ ++#define TARGET_LITTLE_SYM microblaze_elf64_le_vec ++#define TARGET_LITTLE_NAME "elf64-microblazeel" ++ ++#define TARGET_BIG_SYM microblaze_elf64_vec ++#define TARGET_BIG_NAME "elf64-microblaze" ++ ++#define ELF_ARCH bfd_arch_microblaze ++#define ELF_TARGET_ID MICROBLAZE_ELF_DATA ++#define ELF_MACHINE_CODE EM_MICROBLAZE ++#define ELF_MACHINE_ALT1 EM_MICROBLAZE_OLD ++#define ELF_MAXPAGESIZE 0x1000 ++#define elf_info_to_howto microblaze_elf_info_to_howto ++#define elf_info_to_howto_rel NULL ++ ++#define bfd_elf64_bfd_reloc_type_lookup microblaze_elf_reloc_type_lookup ++#define bfd_elf64_bfd_is_local_label_name microblaze_elf_is_local_label_name ++#define elf_backend_relocate_section microblaze_elf_relocate_section ++#define bfd_elf64_bfd_relax_section microblaze_elf_relax_section ++#define bfd_elf64_bfd_merge_private_bfd_data microblaze_elf_merge_private_bfd_data ++#define bfd_elf64_bfd_reloc_name_lookup microblaze_elf_reloc_name_lookup ++ ++#define elf_backend_gc_mark_hook microblaze_elf_gc_mark_hook ++#define elf_backend_gc_sweep_hook microblaze_elf_gc_sweep_hook ++#define elf_backend_check_relocs microblaze_elf_check_relocs ++#define elf_backend_copy_indirect_symbol microblaze_elf_copy_indirect_symbol ++#define bfd_elf64_bfd_link_hash_table_create microblaze_elf_link_hash_table_create ++#define elf_backend_can_gc_sections 1 ++#define elf_backend_can_refcount 1 ++#define elf_backend_want_got_plt 1 ++#define elf_backend_plt_readonly 1 ++#define elf_backend_got_header_size 12 ++#define elf_backend_rela_normal 1 ++ ++#define elf_backend_adjust_dynamic_symbol microblaze_elf_adjust_dynamic_symbol ++#define elf_backend_create_dynamic_sections microblaze_elf_create_dynamic_sections ++#define elf_backend_finish_dynamic_sections microblaze_elf_finish_dynamic_sections ++#define elf_backend_finish_dynamic_symbol microblaze_elf_finish_dynamic_symbol ++#define elf_backend_size_dynamic_sections microblaze_elf_size_dynamic_sections ++#define elf_backend_add_symbol_hook microblaze_elf_add_symbol_hook ++ ++#include "elf64-target.h" +diff --git a/bfd/targets.c b/bfd/targets.c +index 158168c..ef567a3 100644 +--- a/bfd/targets.c ++++ b/bfd/targets.c +@@ -706,6 +706,8 @@ extern const bfd_target mep_elf32_le_vec; + extern const bfd_target metag_elf32_vec; + extern const bfd_target microblaze_elf32_vec; + extern const bfd_target microblaze_elf32_le_vec; ++extern const bfd_target microblaze_elf64_vec; ++extern const bfd_target microblaze_elf64_le_vec; + extern const bfd_target mips_ecoff_be_vec; + extern const bfd_target mips_ecoff_le_vec; + extern const bfd_target mips_ecoff_bele_vec; +@@ -1073,6 +1075,10 @@ static const bfd_target * const _bfd_target_vector[] = + + &metag_elf32_vec, + ++#ifdef BFD64 ++ µblaze_elf64_vec, ++ µblaze_elf64_le_vec, ++#endif + µblaze_elf32_vec, + + &mips_ecoff_be_vec, +diff --git a/gas/config/tc-microblaze.c b/gas/config/tc-microblaze.c +index 16b10d0..c794347 100644 +--- a/gas/config/tc-microblaze.c ++++ b/gas/config/tc-microblaze.c +@@ -35,10 +35,13 @@ + #define streq(a,b) (strcmp (a, b) == 0) + #endif + ++static int microblaze_arch_size = 0; ++ + #define OPTION_EB (OPTION_MD_BASE + 0) + #define OPTION_EL (OPTION_MD_BASE + 1) + #define OPTION_LITTLE (OPTION_MD_BASE + 2) + #define OPTION_BIG (OPTION_MD_BASE + 3) ++#define OPTION_M64 (OPTION_MD_BASE + 4) + + void microblaze_generate_symbol (char *sym); + static bfd_boolean check_spl_reg (unsigned *); +@@ -773,6 +776,74 @@ parse_imm (char * s, expressionS * e, offsetT min, offsetT max) + return new_pointer; + } + ++ static char * ++parse_imml (char * s, expressionS * e, long min, long max) ++{ ++ char *new_pointer; ++ char *atp; ++ int itype, ilen; ++ ++ ilen = 0; ++ ++ /* Find the start of "@GOT" or "@PLT" suffix (if any) */ ++ for (atp = s; *atp != '@'; atp++) ++ if (is_end_of_line[(unsigned char) *atp]) ++ break; ++ ++ if (*atp == '@') ++ { ++ itype = match_imm (atp + 1, &ilen); ++ if (itype != 0) ++ { ++ *atp = 0; ++ e->X_md = itype; ++ } ++ else ++ { ++ atp = NULL; ++ e->X_md = 0; ++ ilen = 0; ++ } ++ *atp = 0; ++ } ++ else ++ { ++ atp = NULL; ++ e->X_md = 0; ++ } ++ ++ if (atp && !GOT_symbol) ++ { ++ GOT_symbol = symbol_find_or_make (GOT_SYMBOL_NAME); ++ } ++ ++ new_pointer = parse_exp (s, e); ++ ++ if (!GOT_symbol && ! strncmp (s, GOT_SYMBOL_NAME, 20)) ++ { ++ GOT_symbol = symbol_find_or_make (GOT_SYMBOL_NAME); ++ } ++ ++ if (e->X_op == O_absent) ++ ; /* An error message has already been emitted. */ ++ else if ((e->X_op != O_constant && e->X_op != O_symbol) ) ++ as_fatal (_("operand must be a constant or a label")); ++ else if ((e->X_op == O_constant) && ((long) e->X_add_number < min ++ || (long) e->X_add_number > max)) ++ { ++ as_fatal (_("operand must be absolute in range %ld..%ld, not %ld"), ++ min, max, (long) e->X_add_number); ++ } ++ ++ if (atp) ++ { ++ *atp = '@'; /* restore back (needed?) */ ++ if (new_pointer >= atp) ++ new_pointer += ilen + 1; /* sizeof (imm_suffix) + 1 for '@' */ ++ } ++ return new_pointer; ++} ++ + static char * + check_got (int * got_type, int * got_len) + { +@@ -920,6 +991,7 @@ md_assemble (char * str) + unsigned int immed, immed2, temp; + expressionS exp; + char name[20]; ++ long immedl; + + /* Drop leading whitespace. */ + while (ISSPACE (* str)) +@@ -1129,7 +1201,7 @@ md_assemble (char * str) + } + break; + +- case INST_TYPE_RD_R1_IMM5: ++ case INST_TYPE_RD_R1_IMMS: + if (strcmp (op_end, "")) + op_end = parse_reg (op_end + 1, ®1); /* Get rd. */ + else +@@ -1163,16 +1235,22 @@ md_assemble (char * str) + immed = exp.X_add_number; + } + +- if (immed != (immed % 32)) ++ if ((immed != (immed % 32)) && ++ (opcode->instr == bslli || opcode->instr == bsrai || opcode->instr == bsrli)) + { + as_warn (_("Shift value > 32. using ")); + immed = immed % 32; + } ++ else if (immed != (immed % 64)) ++ { ++ as_warn (_("Shift value > 64. using ")); ++ immed = immed % 64; ++ } + inst |= (reg1 << RD_LOW) & RD_MASK; + inst |= (reg2 << RA_LOW) & RA_MASK; +- inst |= (immed << IMM_LOW) & IMM5_MASK; ++ inst |= (immed << IMM_LOW) & IMM6_MASK; + break; +- case INST_TYPE_RD_R1_IMM5_IMM5: ++ case INST_TYPE_RD_R1_IMMW_IMMS: + if (strcmp (op_end, "")) + op_end = parse_reg (op_end + 1, ®1); /* Get rd. */ + else +@@ -1196,7 +1274,7 @@ md_assemble (char * str) + + /* Width immediate value. */ + if (strcmp (op_end, "")) +- op_end = parse_imm (op_end + 1, &exp, MIN_IMM_WIDTH, MAX_IMM_WIDTH); ++ op_end = parse_imm (op_end + 1, &exp, MIN_IMM, MAX_IMM); + else + as_fatal (_("Error in statement syntax")); + if (exp.X_op != O_constant) +@@ -1208,6 +1286,8 @@ md_assemble (char * str) + immed = exp.X_add_number; + if (opcode->instr == bsefi && immed > 31) + as_fatal (_("Width value must be less than 32")); ++ else if (opcode->instr == bslefi && immed > 63) ++ as_fatal (_("Width value must be less than 64")); + + /* Shift immediate value. */ + if (strcmp (op_end, "")) +@@ -1215,32 +1295,40 @@ md_assemble (char * str) + else + as_fatal (_("Error in statement syntax")); + if (exp.X_op != O_constant) +- { ++ { + as_warn (_("Symbol used as immediate shift value for bit field instruction")); + immed2 = 0; + } + else +- { ++ { + output = frag_more (isize); + immed2 = exp.X_add_number; +- } +- if (immed2 != (immed2 % 32)) +- { +- as_warn (_("Shift value greater than 32. using ")); ++ } ++ if ((immed2 != (immed2 % 32)) && (opcode->instr == bsefi || opcode->instr == bsifi)) ++ { ++ ++ as_warn (_("Shift value greater than 32. using ")); + immed2 = immed2 % 32; + } ++ else if (immed2 != (immed2 % 64)) ++ { ++ as_warn (_("Shift value greater than 64. using ")); ++ immed2 = immed2 % 64; ++ } + + /* Check combined value. */ +- if (immed + immed2 > 32) ++ if ((immed + immed2 > 32) && (opcode->instr == bsefi || opcode->instr == bsifi)) + as_fatal (_("Width value + shift value must not be greater than 32")); + ++ else if (immed + immed2 > 64) ++ as_fatal (_("Width value + shift value must not be greater than 64")); + inst |= (reg1 << RD_LOW) & RD_MASK; + inst |= (reg2 << RA_LOW) & RA_MASK; +- if (opcode->instr == bsefi) +- inst |= (immed & IMM5_MASK) << IMM_WIDTH_LOW; /* bsefi */ ++ if (opcode->instr == bsefi || opcode->instr == bslefi) ++ inst |= (immed & IMM6_MASK) << IMM_WIDTH_LOW; /* bsefi or bslefi */ + else +- inst |= ((immed + immed2 - 1) & IMM5_MASK) << IMM_WIDTH_LOW; /* bsifi */ +- inst |= (immed2 << IMM_LOW) & IMM5_MASK; ++ inst |= ((immed + immed2 - 1) & IMM6_MASK) << IMM_WIDTH_LOW; /* bsifi or bslifi */ ++ inst |= (immed2 << IMM_LOW) & IMM6_MASK; + break; + case INST_TYPE_R1_R2: + if (strcmp (op_end, "")) +@@ -1808,6 +1896,142 @@ md_assemble (char * str) + } + inst |= (immed << IMM_MBAR); + break; ++ /* For 64-bit instructions */ ++ case INST_TYPE_RD_R1_IMML: ++ if (strcmp (op_end, "")) ++ op_end = parse_reg (op_end + 1, ®1); /* Get rd. */ ++ else ++ { ++ as_fatal (_("Error in statement syntax")); ++ reg1 = 0; ++ } ++ if (strcmp (op_end, "")) ++ op_end = parse_reg (op_end + 1, ®2); /* Get r1. */ ++ else ++ { ++ as_fatal (_("Error in statement syntax")); ++ reg2 = 0; ++ } ++ if (strcmp (op_end, "")) ++ op_end = parse_imml (op_end + 1, & exp, MIN_IMML, MAX_IMML); ++ else ++ as_fatal (_("Error in statement syntax")); ++ ++ /* Check for spl registers. */ ++ if (check_spl_reg (& reg1)) ++ as_fatal (_("Cannot use special register with this instruction")); ++ if (check_spl_reg (& reg2)) ++ as_fatal (_("Cannot use special register with this instruction")); ++ ++ if (exp.X_op != O_constant) ++ { ++ char *opc = NULL; ++ relax_substateT subtype; ++ ++ if (exp.X_md != 0) ++ subtype = get_imm_otype(exp.X_md); ++ else ++ subtype = opcode->inst_offset_type; ++ ++ output = frag_var (rs_machine_dependent, ++ isize * 2, /* maxm of 2 words. */ ++ isize * 2, /* minm of 2 words. */ ++ subtype, /* PC-relative or not. */ ++ exp.X_add_symbol, ++ exp.X_add_number, ++ opc); ++ immedl = 0L; ++ } ++ else ++ { ++ output = frag_more (isize); ++ immedl = exp.X_add_number; ++ ++ opcode1 = (struct op_code_struct *) hash_find (opcode_hash_control, "imml"); ++ if (opcode1 == NULL) ++ { ++ as_bad (_("unknown opcode \"%s\""), "imml"); ++ return; ++ } ++ ++ inst1 = opcode1->bit_sequence; ++ inst1 |= ((immedl & 0xFFFFFFFFFFFF0000L) >> 16) & IMML_MASK; ++ output[0] = INST_BYTE0 (inst1); ++ output[1] = INST_BYTE1 (inst1); ++ output[2] = INST_BYTE2 (inst1); ++ output[3] = INST_BYTE3 (inst1); ++ output = frag_more (isize); ++ } ++ ++ inst |= (reg1 << RD_LOW) & RD_MASK; ++ inst |= (reg2 << RA_LOW) & RA_MASK; ++ inst |= (immedl << IMM_LOW) & IMM_MASK; ++ break; ++ ++ case INST_TYPE_R1_IMML: ++ if (strcmp (op_end, "")) ++ op_end = parse_reg (op_end + 1, ®1); /* Get r1. */ ++ else ++ { ++ as_fatal (_("Error in statement syntax")); ++ reg1 = 0; ++ } ++ if (strcmp (op_end, "")) ++ op_end = parse_imml (op_end + 1, & exp, MIN_IMM, MAX_IMM); ++ else ++ as_fatal (_("Error in statement syntax")); ++ ++ /* Check for spl registers. */ ++ if (check_spl_reg (®1)) ++ as_fatal (_("Cannot use special register with this instruction")); ++ ++ if (exp.X_op != O_constant) ++ { ++ char *opc = NULL; ++ relax_substateT subtype; ++ ++ if (exp.X_md != 0) ++ subtype = get_imm_otype(exp.X_md); ++ else ++ subtype = opcode->inst_offset_type; ++ ++ output = frag_var (rs_machine_dependent, ++ isize * 2, /* maxm of 2 words. */ ++ isize * 2, /* minm of 2 words. */ ++ subtype, /* PC-relative or not. */ ++ exp.X_add_symbol, ++ exp.X_add_number, ++ opc); ++ immedl = 0L; ++ } ++ else ++ { ++ output = frag_more (isize); ++ immedl = exp.X_add_number; ++ ++ opcode1 = (struct op_code_struct *) hash_find (opcode_hash_control, "imml"); ++ if (opcode1 == NULL) ++ { ++ as_bad (_("unknown opcode \"%s\""), "imml"); ++ return; ++ } ++ ++ inst1 = opcode1->bit_sequence; ++ inst1 |= ((immedl & 0xFFFFFFFFFFFF0000L) >> 16) & IMML_MASK; ++ output[0] = INST_BYTE0 (inst1); ++ output[1] = INST_BYTE1 (inst1); ++ output[2] = INST_BYTE2 (inst1); ++ output[3] = INST_BYTE3 (inst1); ++ output = frag_more (isize); ++ } ++ ++ inst |= (reg1 << RA_LOW) & RA_MASK; ++ inst |= (immedl << IMM_LOW) & IMM_MASK; ++ break; ++ ++ case INST_TYPE_IMML: ++ as_fatal (_("An IMML instruction should not be present in the .s file")); ++ break; + + default: + as_fatal (_("unimplemented opcode \"%s\""), name); +@@ -1918,6 +2142,7 @@ struct option md_longopts[] = + {"EL", no_argument, NULL, OPTION_EL}, + {"mlittle-endian", no_argument, NULL, OPTION_LITTLE}, + {"mbig-endian", no_argument, NULL, OPTION_BIG}, ++ {"m64", no_argument, NULL, OPTION_M64}, + { NULL, no_argument, NULL, 0} + }; + +@@ -2569,6 +2794,18 @@ tc_gen_reloc (asection * section ATTRIBUTE_UNUSED, fixS * fixp) + return rel; + } + ++/* Called by TARGET_FORMAT. */ ++const char * ++microblaze_target_format (void) ++{ ++ ++ if (microblaze_arch_size == 64) ++ return "elf64-microblazeel"; ++ else ++ return target_big_endian ? "elf32-microblaze" : "elf32-microblazeel"; ++} ++ ++ + int + md_parse_option (int c, const char * arg ATTRIBUTE_UNUSED) + { +@@ -2582,6 +2819,10 @@ md_parse_option (int c, const char * arg ATTRIBUTE_UNUSED) + case OPTION_LITTLE: + target_big_endian = 0; + break; ++ case OPTION_M64: ++ //if (arg != NULL && strcmp (arg, "64") == 0) ++ microblaze_arch_size = 64; ++ break; + default: + return 0; + } +@@ -2597,6 +2838,7 @@ md_show_usage (FILE * stream ATTRIBUTE_UNUSED) + fprintf (stream, _(" MicroBlaze specific assembler options:\n")); + fprintf (stream, " -%-23s%s\n", "mbig-endian", N_("assemble for a big endian cpu")); + fprintf (stream, " -%-23s%s\n", "mlittle-endian", N_("assemble for a little endian cpu")); ++ fprintf (stream, " -%-23s%s\n", "m64", N_("generate 64-bit elf")); + } + + +diff --git a/gas/config/tc-microblaze.h b/gas/config/tc-microblaze.h +index ca9dbb8..9d38d2c 100644 +--- a/gas/config/tc-microblaze.h ++++ b/gas/config/tc-microblaze.h +@@ -78,7 +78,9 @@ extern const struct relax_type md_relax_table[]; + + #ifdef OBJ_ELF + +-#define TARGET_FORMAT (target_big_endian ? "elf32-microblaze" : "elf32-microblazeel") ++#define TARGET_FORMAT microblaze_target_format() ++extern const char *microblaze_target_format (void); ++//#define TARGET_FORMAT (target_big_endian ? "elf32-microblaze" : "elf32-microblazeel") + + #define ELF_TC_SPECIAL_SECTIONS \ + { ".sdata", SHT_PROGBITS, SHF_ALLOC + SHF_WRITE }, \ +diff --git a/include/elf/common.h b/include/elf/common.h +index 996acf9..2f1e5be 100644 +--- a/include/elf/common.h ++++ b/include/elf/common.h +@@ -339,6 +339,7 @@ + #define EM_RISCV 243 /* RISC-V */ + #define EM_LANAI 244 /* Lanai 32-bit processor. */ + #define EM_BPF 247 /* Linux BPF – in-kernel virtual machine. */ ++#define EM_MB_64 248 /* Xilinx MicroBlaze 32-bit RISC soft processor core */ + #define EM_NFP 250 /* Netronome Flow Processor. */ + #define EM_CSKY 252 /* C-SKY processor family. */ + +diff --git a/ld/Makefile.am b/ld/Makefile.am +index d7faf19..f7b3b97 100644 +--- a/ld/Makefile.am ++++ b/ld/Makefile.am +@@ -422,6 +422,8 @@ ALL_64_EMULATION_SOURCES = \ + eelf32ltsmipn32.c \ + eelf32ltsmipn32_fbsd.c \ + eelf32mipswindiss.c \ ++ eelf64microblazeel.c \ ++ eelf64microblaze.c \ + eelf64_aix.c \ + eelf64_ia64.c \ + eelf64_ia64_fbsd.c \ +@@ -1702,6 +1704,12 @@ eelf32_x86_64_nacl.c: $(srcdir)/emulparams/elf32_x86_64_nacl.sh \ + $(srcdir)/emulparams/elf_nacl.sh \ + $(ELF_X86_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + ++eelf64microblazeel.c: $(srcdir)/emulparams/elf64microblazeel.sh \ ++ $(ELF_DEPS) $(srcdir)/scripttempl/elfmicroblaze.sc ${GEN_DEPENDS} ++ ++eelf64microblaze.c: $(srcdir)/emulparams/elf64microblaze.sh \ ++ $(ELF_DEPS) $(srcdir)/scripttempl/elfmicroblaze.sc ${GEN_DEPENDS} ++ + eelf64_aix.c: $(srcdir)/emulparams/elf64_aix.sh \ + $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + +diff --git a/ld/Makefile.in b/ld/Makefile.in +index 8b14f52..ffc9a3e 100644 +--- a/ld/Makefile.in ++++ b/ld/Makefile.in +@@ -907,6 +907,8 @@ ALL_64_EMULATION_SOURCES = \ + eelf32ltsmipn32.c \ + eelf32ltsmipn32_fbsd.c \ + eelf32mipswindiss.c \ ++ eelf64microblazeel.c \ ++ eelf64microblaze.c \ + eelf64_aix.c \ + eelf64_ia64.c \ + eelf64_ia64_fbsd.c \ +@@ -1355,6 +1357,8 @@ distclean-compile: + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eelf32xc16xs.Po@am__quote@ + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eelf32xstormy16.Po@am__quote@ + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eelf32xtensa.Po@am__quote@ ++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eelf64microblazeel.Po@am__quote@ ++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eelf64microblaze.Po@am__quote@ + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eelf64_aix.Po@am__quote@ + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eelf64_ia64.Po@am__quote@ + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eelf64_ia64_fbsd.Po@am__quote@ +@@ -3306,6 +3310,12 @@ eelf32_x86_64_nacl.c: $(srcdir)/emulparams/elf32_x86_64_nacl.sh \ + $(srcdir)/emulparams/elf_nacl.sh \ + $(ELF_X86_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + ++eelf64microblazeel.c: $(srcdir)/emulparams/elf64microblazeel.sh \ ++ $(ELF_DEPS) $(srcdir)/scripttempl/elfmicroblaze.sc ${GEN_DEPENDS} ++ ++eelf64microblaze.c: $(srcdir)/emulparams/elf64microblaze.sh \ ++ $(ELF_DEPS) $(srcdir)/scripttempl/elfmicroblaze.sc ${GEN_DEPENDS} ++ + eelf64_aix.c: $(srcdir)/emulparams/elf64_aix.sh \ + $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + +diff --git a/ld/configure.tgt b/ld/configure.tgt +index 1e37d74..42f106d 100644 +--- a/ld/configure.tgt ++++ b/ld/configure.tgt +@@ -424,6 +424,9 @@ microblaze*-linux*) targ_emul="elf32mb_linux" + microblazeel*) targ_emul=elf32microblazeel + targ_extra_emuls=elf32microblaze + ;; ++microblazeel64*) targ_emul=elf64microblazeel ++ targ_extra_emuls=elf64microblaze ++ ;; + microblaze*) targ_emul=elf32microblaze + targ_extra_emuls=elf32microblazeel + ;; +diff --git a/ld/emulparams/elf64microblaze.sh b/ld/emulparams/elf64microblaze.sh +new file mode 100644 +index 0000000..9c7b0eb +--- /dev/null ++++ b/ld/emulparams/elf64microblaze.sh +@@ -0,0 +1,23 @@ ++SCRIPT_NAME=elfmicroblaze ++OUTPUT_FORMAT="elf64-microblazeel" ++#BIG_OUTPUT_FORMAT="elf64-microblaze" ++LITTLE_OUTPUT_FORMAT="elf64-microblazeel" ++#TEXT_START_ADDR=0 ++NONPAGED_TEXT_START_ADDR=0x28 ++ALIGNMENT=4 ++MAXPAGESIZE=4 ++ARCH=microblaze ++EMBEDDED=yes ++ ++NOP=0x80000000 ++ ++# Hmmm, there's got to be a better way. This sets the stack to the ++# top of the simulator memory (2^19 bytes). ++#PAGE_SIZE=0x1000 ++#DATA_ADDR=0x10000 ++#OTHER_RELOCATING_SECTIONS='.stack 0x7000 : { _stack = .; *(.stack) }' ++#$@{RELOCATING+ PROVIDE (__stack = 0x7000);@} ++#OTHER_RELOCATING_SECTIONS='PROVIDE (_stack = _end + 0x1000);' ++ ++TEMPLATE_NAME=elf32 ++#GENERATE_SHLIB_SCRIPT=yes +diff --git a/ld/emulparams/elf64microblazeel.sh b/ld/emulparams/elf64microblazeel.sh +new file mode 100644 +index 0000000..9c7b0eb +--- /dev/null ++++ b/ld/emulparams/elf64microblazeel.sh +@@ -0,0 +1,23 @@ ++SCRIPT_NAME=elfmicroblaze ++OUTPUT_FORMAT="elf64-microblazeel" ++#BIG_OUTPUT_FORMAT="elf64-microblaze" ++LITTLE_OUTPUT_FORMAT="elf64-microblazeel" ++#TEXT_START_ADDR=0 ++NONPAGED_TEXT_START_ADDR=0x28 ++ALIGNMENT=4 ++MAXPAGESIZE=4 ++ARCH=microblaze ++EMBEDDED=yes ++ ++NOP=0x80000000 ++ ++# Hmmm, there's got to be a better way. This sets the stack to the ++# top of the simulator memory (2^19 bytes). ++#PAGE_SIZE=0x1000 ++#DATA_ADDR=0x10000 ++#OTHER_RELOCATING_SECTIONS='.stack 0x7000 : { _stack = .; *(.stack) }' ++#$@{RELOCATING+ PROVIDE (__stack = 0x7000);@} ++#OTHER_RELOCATING_SECTIONS='PROVIDE (_stack = _end + 0x1000);' ++ ++TEMPLATE_NAME=elf32 ++#GENERATE_SHLIB_SCRIPT=yes +diff --git a/opcodes/microblaze-dis.c b/opcodes/microblaze-dis.c +index f8aaf27..20ea6a8 100644 +--- a/opcodes/microblaze-dis.c ++++ b/opcodes/microblaze-dis.c +@@ -33,6 +33,7 @@ + #define get_field_r1(instr) get_field (instr, RA_MASK, RA_LOW) + #define get_field_r2(instr) get_field (instr, RB_MASK, RB_LOW) + #define get_int_field_imm(instr) ((instr & IMM_MASK) >> IMM_LOW) ++#define get_int_field_imml(instr) ((instr & IMML_MASK) >> IMM_LOW) + #define get_int_field_r1(instr) ((instr & RA_MASK) >> RA_LOW) + + +@@ -56,11 +57,20 @@ get_field_imm (long instr) + } + + static char * +-get_field_imm5 (long instr) ++get_field_imml (long instr) + { + char tmpstr[25]; + +- sprintf (tmpstr, "%d", (short)((instr & IMM5_MASK) >> IMM_LOW)); ++ sprintf (tmpstr, "%d", (short)((instr & IMML_MASK) >> IMM_LOW)); ++ return (strdup (tmpstr)); ++} ++ ++static char * ++get_field_imms (long instr) ++{ ++ char tmpstr[25]; ++ ++ sprintf (tmpstr, "%d", (short)((instr & IMM6_MASK) >> IMM_LOW)); + return (strdup (tmpstr)); + } + +@@ -74,14 +84,14 @@ get_field_imm5_mbar (long instr) + } + + static char * +-get_field_imm5width (long instr) ++get_field_immw (long instr) + { + char tmpstr[25]; + + if (instr & 0x00004000) +- sprintf (tmpstr, "%d", (short)(((instr & IMM5_WIDTH_MASK) >> IMM_WIDTH_LOW))); /* bsefi */ ++ sprintf (tmpstr, "%d", (short)(((instr & IMM6_WIDTH_MASK) >> IMM_WIDTH_LOW))); /* bsefi */ + else +- sprintf (tmpstr, "%d", (short)(((instr & IMM5_WIDTH_MASK) >> IMM_WIDTH_LOW) - ((instr & IMM5_MASK) >> IMM_LOW) + 1)); /* bsifi */ ++ sprintf (tmpstr, "%d", (short)(((instr & IMM6_WIDTH_MASK) >> IMM_WIDTH_LOW) - ((instr & IMM6_MASK) >> IMM_LOW) + 1)); /* bsifi */ + return (strdup (tmpstr)); + } + +@@ -286,9 +296,13 @@ print_insn_microblaze (bfd_vma memaddr, struct disassemble_info * info) + } + } + break; +- case INST_TYPE_RD_R1_IMM5: ++ case INST_TYPE_RD_R1_IMML: ++ print_func (stream, "\t%s, %s, %s", get_field_rd (inst), ++ get_field_r1(inst), get_field_imm (inst)); ++ /* TODO: Also print symbol */ ++ case INST_TYPE_RD_R1_IMMS: + print_func (stream, "\t%s, %s, %s", get_field_rd (inst), +- get_field_r1(inst), get_field_imm5 (inst)); ++ get_field_r1(inst), get_field_imms (inst)); + break; + case INST_TYPE_RD_RFSL: + print_func (stream, "\t%s, %s", get_field_rd (inst), get_field_rfsl (inst)); +@@ -386,6 +400,10 @@ print_insn_microblaze (bfd_vma memaddr, struct disassemble_info * info) + } + } + break; ++ case INST_TYPE_IMML: ++ print_func (stream, "\t%s", get_field_imml (inst)); ++ /* TODO: Also print symbol */ ++ break; + case INST_TYPE_RD_R2: + print_func (stream, "\t%s, %s", get_field_rd (inst), get_field_r2 (inst)); + break; +@@ -409,9 +427,10 @@ print_insn_microblaze (bfd_vma memaddr, struct disassemble_info * info) + case INST_TYPE_NONE: + break; + /* For bit field insns. */ +- case INST_TYPE_RD_R1_IMM5_IMM5: +- print_func (stream, "\t%s, %s, %s, %s", get_field_rd (inst),get_field_r1(inst),get_field_imm5width (inst), get_field_imm5 (inst)); +- break; ++ case INST_TYPE_RD_R1_IMMW_IMMS: ++ print_func (stream, "\t%s, %s, %s, %s", get_field_rd (inst), get_field_r1(inst), ++ get_field_immw (inst), get_field_imms (inst)); ++ break; + /* For tuqula instruction */ + case INST_TYPE_RD: + print_func (stream, "\t%s", get_field_rd (inst)); +diff --git a/opcodes/microblaze-opc.h b/opcodes/microblaze-opc.h +index ce8ac35..985834b 100644 +--- a/opcodes/microblaze-opc.h ++++ b/opcodes/microblaze-opc.h +@@ -40,7 +40,7 @@ + #define INST_TYPE_RD_SPECIAL 11 + #define INST_TYPE_R1 12 + /* New instn type for barrel shift imms. */ +-#define INST_TYPE_RD_R1_IMM5 13 ++#define INST_TYPE_RD_R1_IMMS 13 + #define INST_TYPE_RD_RFSL 14 + #define INST_TYPE_R1_RFSL 15 + +@@ -60,7 +60,13 @@ + #define INST_TYPE_IMM5 20 + + /* For bsefi and bsifi */ +-#define INST_TYPE_RD_R1_IMM5_IMM5 21 ++#define INST_TYPE_RD_R1_IMMW_IMMS 21 ++ ++/* For 64-bit instructions */ ++#define INST_TYPE_IMML 22 ++#define INST_TYPE_RD_R1_IMML 23 ++#define INST_TYPE_R1_IMML 24 ++#define INST_TYPE_RD_R1_IMMW_IMMS 21 + + #define INST_TYPE_NONE 25 + +@@ -91,13 +97,14 @@ + #define OPCODE_MASK_H24 0xFC1F07FF /* High 6, bits 20-16 and low 11 bits. */ + #define OPCODE_MASK_H124 0xFFFF07FF /* High 16, and low 11 bits. */ + #define OPCODE_MASK_H1234 0xFFFFFFFF /* All 32 bits. */ +-#define OPCODE_MASK_H3 0xFC000600 /* High 6 bits and bits 21, 22. */ +-#define OPCODE_MASK_H3B 0xFC00C600 /* High 6 bits and bits 16, 17, 21, 22. */ ++#define OPCODE_MASK_H3 0xFC000700 /* High 6 bits and bits 21, 22, 23. */ ++#define OPCODE_MASK_H3B 0xFC00E600 /* High 6 bits and bits 16, 17, 18, 21, 22. */ + #define OPCODE_MASK_H32 0xFC00FC00 /* High 6 bits and bit 16-21. */ +-#define OPCODE_MASK_H32B 0xFC00C000 /* High 6 bits and bit 16, 17. */ ++#define OPCODE_MASK_H32B 0xFC00E000 /* High 6 bits and bit 16, 17, 18. */ + #define OPCODE_MASK_H34B 0xFC0000FF /* High 6 bits and low 8 bits. */ + #define OPCODE_MASK_H35B 0xFC0004FF /* High 6 bits and low 9 bits. */ + #define OPCODE_MASK_H34C 0xFC0007E0 /* High 6 bits and bits 21-26. */ ++#define OPCODE_MASK_H8 0xFF000000 /* High 8 bits only. */ + + /* New Mask for msrset, msrclr insns. */ + #define OPCODE_MASK_H23N 0xFC1F8000 /* High 6 and bits 11 - 16. */ +@@ -107,7 +114,7 @@ + #define DELAY_SLOT 1 + #define NO_DELAY_SLOT 0 + +-#define MAX_OPCODES 301 ++#define MAX_OPCODES 412 + + struct op_code_struct + { +@@ -125,6 +132,7 @@ struct op_code_struct + /* More info about output format here. */ + } opcodes[MAX_OPCODES] = + { ++ /* 32-bit instructions */ + {"add", INST_TYPE_RD_R1_R2, INST_NO_OFFSET, NO_DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0x00000000, OPCODE_MASK_H4, add, arithmetic_inst }, + {"rsub", INST_TYPE_RD_R1_R2, INST_NO_OFFSET, NO_DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0x04000000, OPCODE_MASK_H4, rsub, arithmetic_inst }, + {"addc", INST_TYPE_RD_R1_R2, INST_NO_OFFSET, NO_DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0x08000000, OPCODE_MASK_H4, addc, arithmetic_inst }, +@@ -161,11 +169,11 @@ struct op_code_struct + {"ncget", INST_TYPE_RD_RFSL, INST_NO_OFFSET, NO_DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0x6C006000, OPCODE_MASK_H32, ncget, anyware_inst }, + {"ncput", INST_TYPE_R1_RFSL, INST_NO_OFFSET, NO_DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0x6C00E000, OPCODE_MASK_H32, ncput, anyware_inst }, + {"muli", INST_TYPE_RD_R1_IMM, INST_NO_OFFSET, NO_DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0x60000000, OPCODE_MASK_H, muli, mult_inst }, +- {"bslli", INST_TYPE_RD_R1_IMM5, INST_NO_OFFSET, NO_DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0x64000400, OPCODE_MASK_H3, bslli, barrel_shift_inst }, +- {"bsrai", INST_TYPE_RD_R1_IMM5, INST_NO_OFFSET, NO_DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0x64000200, OPCODE_MASK_H3, bsrai, barrel_shift_inst }, +- {"bsrli", INST_TYPE_RD_R1_IMM5, INST_NO_OFFSET, NO_DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0x64000000, OPCODE_MASK_H3, bsrli, barrel_shift_inst }, +- {"bsefi", INST_TYPE_RD_R1_IMM5_IMM5, INST_NO_OFFSET, NO_DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0x64004000, OPCODE_MASK_H32B, bsefi, barrel_shift_inst }, +- {"bsifi", INST_TYPE_RD_R1_IMM5_IMM5, INST_NO_OFFSET, NO_DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0x64008000, OPCODE_MASK_H32B, bsifi, barrel_shift_inst }, ++ {"bslli", INST_TYPE_RD_R1_IMMS, INST_NO_OFFSET, NO_DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0x64000400, OPCODE_MASK_H3B, bslli, barrel_shift_inst }, ++ {"bsrai", INST_TYPE_RD_R1_IMMS, INST_NO_OFFSET, NO_DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0x64000200, OPCODE_MASK_H3B, bsrai, barrel_shift_inst }, ++ {"bsrli", INST_TYPE_RD_R1_IMMS, INST_NO_OFFSET, NO_DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0x64000000, OPCODE_MASK_H3B, bsrli, barrel_shift_inst }, ++ {"bsefi", INST_TYPE_RD_R1_IMMW_IMMS, INST_NO_OFFSET, NO_DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0x64004000, OPCODE_MASK_H32B, bsefi, barrel_shift_inst }, ++ {"bsifi", INST_TYPE_RD_R1_IMMW_IMMS, INST_NO_OFFSET, NO_DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0x64008000, OPCODE_MASK_H32B, bsifi, barrel_shift_inst }, + {"or", INST_TYPE_RD_R1_R2, INST_NO_OFFSET, NO_DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0x80000000, OPCODE_MASK_H4, microblaze_or, logical_inst }, + {"and", INST_TYPE_RD_R1_R2, INST_NO_OFFSET, NO_DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0x84000000, OPCODE_MASK_H4, microblaze_and, logical_inst }, + {"xor", INST_TYPE_RD_R1_R2, INST_NO_OFFSET, NO_DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0x88000000, OPCODE_MASK_H4, microblaze_xor, logical_inst }, +@@ -425,6 +433,129 @@ struct op_code_struct + {"suspend", INST_TYPE_NONE, INST_PC_OFFSET, NO_DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0xBB020004, OPCODE_MASK_HN, invalid_inst, special_inst }, /* translates to mbar 24. */ + {"swapb", INST_TYPE_RD_R1, INST_NO_OFFSET, NO_DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0x900001E0, OPCODE_MASK_H4, swapb, arithmetic_inst }, + {"swaph", INST_TYPE_RD_R1, INST_NO_OFFSET, NO_DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0x900001E2, OPCODE_MASK_H4, swaph, arithmetic_inst }, ++ ++ /* 64-bit instructions */ ++ {"addl", INST_TYPE_RD_R1_R2, INST_NO_OFFSET, NO_DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0x00000100, OPCODE_MASK_H4, addl, arithmetic_inst }, ++ {"rsubl", INST_TYPE_RD_R1_R2, INST_NO_OFFSET, NO_DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0x04000100, OPCODE_MASK_H4, rsubl, arithmetic_inst }, ++ {"addlc", INST_TYPE_RD_R1_R2, INST_NO_OFFSET, NO_DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0x08000100, OPCODE_MASK_H4, addlc, arithmetic_inst }, ++ {"rsublc", INST_TYPE_RD_R1_R2, INST_NO_OFFSET, NO_DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0x0C000100, OPCODE_MASK_H4, rsublc, arithmetic_inst }, ++ {"addlk", INST_TYPE_RD_R1_R2, INST_NO_OFFSET, NO_DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0x10000100, OPCODE_MASK_H4, addlk, arithmetic_inst }, ++ {"rsublk", INST_TYPE_RD_R1_R2, INST_NO_OFFSET, NO_DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0x14000100, OPCODE_MASK_H4, rsublk, arithmetic_inst }, ++ {"addlkc", INST_TYPE_RD_R1_R2, INST_NO_OFFSET, NO_DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0x18000100, OPCODE_MASK_H4, addlkc, arithmetic_inst }, ++ {"rsublkc", INST_TYPE_RD_R1_R2, INST_NO_OFFSET, NO_DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0x1C000100, OPCODE_MASK_H4, rsublkc, arithmetic_inst }, ++ {"cmpl", INST_TYPE_RD_R1_R2, INST_NO_OFFSET, NO_DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0x14000101, OPCODE_MASK_H4, cmpl, arithmetic_inst }, ++ {"cmplu", INST_TYPE_RD_R1_R2, INST_NO_OFFSET, NO_DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0x14000103, OPCODE_MASK_H4, cmplu, arithmetic_inst }, ++ {"addli", INST_TYPE_RD_R1_IMML, INST_NO_OFFSET, NO_DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0x20000000, OPCODE_MASK_H, invalid_inst, arithmetic_inst }, /* Identical to 32-bit */ ++ {"rsubli", INST_TYPE_RD_R1_IMML, INST_NO_OFFSET, NO_DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0x24000000, OPCODE_MASK_H, invalid_inst, arithmetic_inst }, /* Identical to 32-bit */ ++ {"addlic", INST_TYPE_RD_R1_IMML, INST_NO_OFFSET, NO_DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0x28000000, OPCODE_MASK_H, invalid_inst, arithmetic_inst }, /* Identical to 32-bit */ ++ {"rsublic", INST_TYPE_RD_R1_IMML, INST_NO_OFFSET, NO_DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0x2C000000, OPCODE_MASK_H, invalid_inst, arithmetic_inst }, /* Identical to 32-bit */ ++ {"addlik", INST_TYPE_RD_R1_IMML, INST_NO_OFFSET, NO_DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0x30000000, OPCODE_MASK_H, invalid_inst, arithmetic_inst }, /* Identical to 32-bit */ ++ {"rsublik", INST_TYPE_RD_R1_IMML, INST_NO_OFFSET, NO_DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0x34000000, OPCODE_MASK_H, invalid_inst, arithmetic_inst }, /* Identical to 32-bit */ ++ {"addlikc", INST_TYPE_RD_R1_IMML, INST_NO_OFFSET, NO_DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0x38000000, OPCODE_MASK_H, invalid_inst, arithmetic_inst }, /* Identical to 32-bit */ ++ {"rsublikc",INST_TYPE_RD_R1_IMML, INST_NO_OFFSET, NO_DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0x3C000000, OPCODE_MASK_H, invalid_inst, arithmetic_inst }, /* Identical to 32-bit */ ++ {"mull", INST_TYPE_RD_R1_R2, INST_NO_OFFSET, NO_DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0x40000100, OPCODE_MASK_H4, mull, mult_inst }, ++ {"bslll", INST_TYPE_RD_R1_R2, INST_NO_OFFSET, NO_DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0x44000500, OPCODE_MASK_H3, bslll, barrel_shift_inst }, ++ {"bslra", INST_TYPE_RD_R1_R2, INST_NO_OFFSET, NO_DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0x44000300, OPCODE_MASK_H3, bslra, barrel_shift_inst }, ++ {"bslrl", INST_TYPE_RD_R1_R2, INST_NO_OFFSET, NO_DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0x44000100, OPCODE_MASK_H3, bslrl, barrel_shift_inst }, ++ {"bsllli", INST_TYPE_RD_R1_IMMS, INST_NO_OFFSET, NO_DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0x64002400, OPCODE_MASK_H3B, bsllli, barrel_shift_inst }, ++ {"bslrai", INST_TYPE_RD_R1_IMMS, INST_NO_OFFSET, NO_DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0x64002200, OPCODE_MASK_H3B, bslrai, barrel_shift_inst }, ++ {"bslrli", INST_TYPE_RD_R1_IMMS, INST_NO_OFFSET, NO_DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0x64002000, OPCODE_MASK_H3B, bslrli, barrel_shift_inst }, ++ {"bslefi", INST_TYPE_RD_R1_IMMW_IMMS, INST_NO_OFFSET, NO_DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0x64006000, OPCODE_MASK_H32B, bslefi, barrel_shift_inst }, ++ {"bslifi", INST_TYPE_RD_R1_IMMW_IMMS, INST_NO_OFFSET, NO_DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0x6400a000, OPCODE_MASK_H32B, bslifi, barrel_shift_inst }, ++ {"orl", INST_TYPE_RD_R1_R2, INST_NO_OFFSET, NO_DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0x80000100, OPCODE_MASK_H4, orl, logical_inst }, ++ {"andl", INST_TYPE_RD_R1_R2, INST_NO_OFFSET, NO_DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0x84000100, OPCODE_MASK_H4, andl, logical_inst }, ++ {"xorl", INST_TYPE_RD_R1_R2, INST_NO_OFFSET, NO_DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0x88000100, OPCODE_MASK_H4, xorl, logical_inst }, ++ {"andnl", INST_TYPE_RD_R1_R2, INST_NO_OFFSET, NO_DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0x8C000100, OPCODE_MASK_H4, andnl, logical_inst }, ++ {"pcmplbf", INST_TYPE_RD_R1_R2, INST_NO_OFFSET, NO_DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0x80000500, OPCODE_MASK_H4, pcmplbf, logical_inst }, ++ {"pcmpleq", INST_TYPE_RD_R1_R2, INST_NO_OFFSET, NO_DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0x88000500, OPCODE_MASK_H4, pcmpleq, logical_inst }, ++ {"pcmplne", INST_TYPE_RD_R1_R2, INST_NO_OFFSET, NO_DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0x8C000500, OPCODE_MASK_H4, pcmplne, logical_inst }, ++ {"srla", INST_TYPE_RD_R1, INST_NO_OFFSET, NO_DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0x90000101, OPCODE_MASK_H34, srla, logical_inst }, ++ {"srlc", INST_TYPE_RD_R1, INST_NO_OFFSET, NO_DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0x90000121, OPCODE_MASK_H34, srlc, logical_inst }, ++ {"srll", INST_TYPE_RD_R1, INST_NO_OFFSET, NO_DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0x90000141, OPCODE_MASK_H34, srll, logical_inst }, ++ {"sextl8", INST_TYPE_RD_R1, INST_NO_OFFSET, NO_DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0x90000160, OPCODE_MASK_H34, sextl8, logical_inst }, ++ {"sextl16", INST_TYPE_RD_R1, INST_NO_OFFSET, NO_DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0x90000161, OPCODE_MASK_H34, sextl16, logical_inst }, ++ {"sextl32", INST_TYPE_RD_R1, INST_NO_OFFSET, NO_DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0x90000162, OPCODE_MASK_H34, sextl32, logical_inst }, ++ {"brea", INST_TYPE_R2, INST_PC_OFFSET, NO_DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0x98010000, OPCODE_MASK_H124, brea, branch_inst }, ++ {"bread", INST_TYPE_R2, INST_PC_OFFSET, DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0x98110000, OPCODE_MASK_H124, bread, branch_inst }, ++ {"breald", INST_TYPE_RD_R2, INST_PC_OFFSET, DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0x98150000, OPCODE_MASK_H24, breald, branch_inst }, ++ {"beaeq", INST_TYPE_R1_R2, INST_PC_OFFSET, NO_DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0x9D000000, OPCODE_MASK_H14, beaeq, branch_inst }, ++ {"bealeq", INST_TYPE_R1_R2, INST_PC_OFFSET, NO_DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0x9D000100, OPCODE_MASK_H14, bealeq, branch_inst }, ++ {"beaeqd", INST_TYPE_R1_R2, INST_PC_OFFSET, DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0x9F000000, OPCODE_MASK_H14, beaeqd, branch_inst }, ++ {"bealeqd", INST_TYPE_R1_R2, INST_PC_OFFSET, DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0x9F000100, OPCODE_MASK_H14, bealeqd, branch_inst }, ++ {"beane", INST_TYPE_R1_R2, INST_PC_OFFSET, NO_DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0x9D200000, OPCODE_MASK_H14, beane, branch_inst }, ++ {"bealne", INST_TYPE_R1_R2, INST_PC_OFFSET, NO_DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0x9D200100, OPCODE_MASK_H14, bealne, branch_inst }, ++ {"beaned", INST_TYPE_R1_R2, INST_PC_OFFSET, DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0x9F200000, OPCODE_MASK_H14, beaned, branch_inst }, ++ {"bealned", INST_TYPE_R1_R2, INST_PC_OFFSET, DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0x9F200100, OPCODE_MASK_H14, bealned, branch_inst }, ++ {"bealt", INST_TYPE_R1_R2, INST_PC_OFFSET, NO_DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0x9D400000, OPCODE_MASK_H14, bealt, branch_inst }, ++ {"beallt", INST_TYPE_R1_R2, INST_PC_OFFSET, NO_DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0x9D400100, OPCODE_MASK_H14, beallt, branch_inst }, ++ {"bealtd", INST_TYPE_R1_R2, INST_PC_OFFSET, DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0x9F400000, OPCODE_MASK_H14, bealtd, branch_inst }, ++ {"bealltd", INST_TYPE_R1_R2, INST_PC_OFFSET, DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0x9F400100, OPCODE_MASK_H14, bealltd, branch_inst }, ++ {"beale", INST_TYPE_R1_R2, INST_PC_OFFSET, NO_DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0x9D600000, OPCODE_MASK_H14, beale, branch_inst }, ++ {"bealle", INST_TYPE_R1_R2, INST_PC_OFFSET, NO_DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0x9D600100, OPCODE_MASK_H14, bealle, branch_inst }, ++ {"bealed", INST_TYPE_R1_R2, INST_PC_OFFSET, DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0x9F600000, OPCODE_MASK_H14, bealed, branch_inst }, ++ {"bealled", INST_TYPE_R1_R2, INST_PC_OFFSET, DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0x9F600100, OPCODE_MASK_H14, bealled, branch_inst }, ++ {"beagt", INST_TYPE_R1_R2, INST_PC_OFFSET, NO_DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0x9D800000, OPCODE_MASK_H14, beagt, branch_inst }, ++ {"bealgt", INST_TYPE_R1_R2, INST_PC_OFFSET, NO_DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0x9D800100, OPCODE_MASK_H14, bealgt, branch_inst }, ++ {"beagtd", INST_TYPE_R1_R2, INST_PC_OFFSET, DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0x9F800000, OPCODE_MASK_H14, beagtd, branch_inst }, ++ {"bealgtd", INST_TYPE_R1_R2, INST_PC_OFFSET, DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0x9F800100, OPCODE_MASK_H14, bealgtd, branch_inst }, ++ {"beage", INST_TYPE_R1_R2, INST_PC_OFFSET, NO_DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0x9DA00000, OPCODE_MASK_H14, beage, branch_inst }, ++ {"bealge", INST_TYPE_R1_R2, INST_PC_OFFSET, NO_DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0x9DA00100, OPCODE_MASK_H14, bealge, branch_inst }, ++ {"beaged", INST_TYPE_R1_R2, INST_PC_OFFSET, DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0x9FA00000, OPCODE_MASK_H14, beaged, branch_inst }, ++ {"bealged", INST_TYPE_R1_R2, INST_PC_OFFSET, DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0x9FA00100, OPCODE_MASK_H14, bealged, branch_inst }, ++ {"orli", INST_TYPE_RD_R1_IMML, INST_NO_OFFSET, NO_DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0xA0000000, OPCODE_MASK_H, invalid_inst, logical_inst }, /* Identical to 32-bit */ ++ {"andli", INST_TYPE_RD_R1_IMML, INST_NO_OFFSET, NO_DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0xA4000000, OPCODE_MASK_H, invalid_inst, logical_inst }, /* Identical to 32-bit */ ++ {"xorli", INST_TYPE_RD_R1_IMML, INST_NO_OFFSET, NO_DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0xA8000000, OPCODE_MASK_H, invalid_inst, logical_inst }, /* Identical to 32-bit */ ++ {"andnli", INST_TYPE_RD_R1_IMML, INST_NO_OFFSET, NO_DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0xAC000000, OPCODE_MASK_H, invalid_inst, logical_inst }, /* Identical to 32-bit */ ++ {"imml", INST_TYPE_IMML, INST_NO_OFFSET, NO_DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0xB2000000, OPCODE_MASK_H8, imml, immediate_inst }, ++ {"breai", INST_TYPE_IMM, INST_PC_OFFSET, NO_DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0xB8010000, OPCODE_MASK_H12, breai, branch_inst }, ++ {"breaid", INST_TYPE_IMM, INST_PC_OFFSET, DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0xB8110000, OPCODE_MASK_H12, breaid, branch_inst }, ++ {"brealid", INST_TYPE_RD_IMM, INST_PC_OFFSET, DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0xB8150000, OPCODE_MASK_H2, brealid, branch_inst }, ++ {"beaeqi", INST_TYPE_R1_IMM, INST_PC_OFFSET, NO_DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0xBD000000, OPCODE_MASK_H1, beaeqi, branch_inst }, ++ {"bealeqi", INST_TYPE_R1_IMML, INST_PC_OFFSET, NO_DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0xBD000000, OPCODE_MASK_H1, invalid_inst, branch_inst }, /* Identical to beaeqi */ ++ {"beaeqid", INST_TYPE_R1_IMM, INST_PC_OFFSET, DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0xBF000000, OPCODE_MASK_H1, beaeqid, branch_inst }, ++ {"bealeqid",INST_TYPE_R1_IMML, INST_PC_OFFSET, DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0xBF000000, OPCODE_MASK_H1, invalid_inst, branch_inst }, /* Identical to beaeqid */ ++ {"beanei", INST_TYPE_R1_IMM, INST_PC_OFFSET, NO_DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0xBD200000, OPCODE_MASK_H1, beanei, branch_inst }, ++ {"bealnei", INST_TYPE_R1_IMML, INST_PC_OFFSET, NO_DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0xBD200000, OPCODE_MASK_H1, invalid_inst, branch_inst }, /* Identical to beanei */ ++ {"beaneid", INST_TYPE_R1_IMM, INST_PC_OFFSET, DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0xBF200000, OPCODE_MASK_H1, beaneid, branch_inst }, ++ {"bealneid",INST_TYPE_R1_IMML, INST_PC_OFFSET, DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0xBF200000, OPCODE_MASK_H1, invalid_inst, branch_inst }, /* Identical to beaneid */ ++ {"bealti", INST_TYPE_R1_IMM, INST_PC_OFFSET, NO_DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0xBD400000, OPCODE_MASK_H1, bealti, branch_inst }, ++ {"beallti", INST_TYPE_R1_IMML, INST_PC_OFFSET, NO_DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0xBD400000, OPCODE_MASK_H1, invalid_inst, branch_inst }, /* Identical to bealti */ ++ {"bealtid", INST_TYPE_R1_IMM, INST_PC_OFFSET, DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0xBF400000, OPCODE_MASK_H1, bealtid, branch_inst }, ++ {"bealltid",INST_TYPE_R1_IMML, INST_PC_OFFSET, DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0xBF400000, OPCODE_MASK_H1, invalid_inst, branch_inst }, /* Identical to bealtid */ ++ {"bealei", INST_TYPE_R1_IMM, INST_PC_OFFSET, NO_DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0xBD600000, OPCODE_MASK_H1, bealei, branch_inst }, ++ {"beallei", INST_TYPE_R1_IMML, INST_PC_OFFSET, NO_DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0xBD600000, OPCODE_MASK_H1, invalid_inst, branch_inst }, /* Identical to bealei */ ++ {"bealeid", INST_TYPE_R1_IMM, INST_PC_OFFSET, DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0xBF600000, OPCODE_MASK_H1, bealeid, branch_inst }, ++ {"bealleid",INST_TYPE_R1_IMML, INST_PC_OFFSET, DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0xBF600000, OPCODE_MASK_H1, invalid_inst, branch_inst }, /* Identical to bealeid */ ++ {"beagti", INST_TYPE_R1_IMM, INST_PC_OFFSET, NO_DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0xBD800000, OPCODE_MASK_H1, beagti, branch_inst }, ++ {"bealgti", INST_TYPE_R1_IMML, INST_PC_OFFSET, NO_DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0xBD800000, OPCODE_MASK_H1, invalid_inst, branch_inst }, /* Identical to beagti */ ++ {"beagtid", INST_TYPE_R1_IMM, INST_PC_OFFSET, DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0xBF800000, OPCODE_MASK_H1, beagtid, branch_inst }, ++ {"bealgtid",INST_TYPE_R1_IMML, INST_PC_OFFSET, DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0xBF800000, OPCODE_MASK_H1, invalid_inst, branch_inst }, /* Identical to beagtid */ ++ {"beagei", INST_TYPE_R1_IMM, INST_PC_OFFSET, NO_DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0xBDA00000, OPCODE_MASK_H1, beagei, branch_inst }, ++ {"bealgei", INST_TYPE_R1_IMML, INST_PC_OFFSET, NO_DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0xBDA00000, OPCODE_MASK_H1, invalid_inst, branch_inst }, /* Identical to beagei */ ++ {"beageid", INST_TYPE_R1_IMM, INST_PC_OFFSET, DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0xBFA00000, OPCODE_MASK_H1, beageid, branch_inst }, ++ {"bealgeid",INST_TYPE_R1_IMML, INST_PC_OFFSET, DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0xBFA00000, OPCODE_MASK_H1, invalid_inst, branch_inst }, /* Identical to beageid */ ++ {"ll", INST_TYPE_RD_R1_R2, INST_NO_OFFSET, NO_DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0xC8000100, OPCODE_MASK_H4, ll, memory_load_inst }, ++ {"llr", INST_TYPE_RD_R1_R2, INST_NO_OFFSET, NO_DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0xC8000300, OPCODE_MASK_H4, llr, memory_load_inst }, ++ {"sl", INST_TYPE_RD_R1_R2, INST_NO_OFFSET, NO_DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0xD8000100, OPCODE_MASK_H4, sl, memory_store_inst }, ++ {"slr", INST_TYPE_RD_R1_R2, INST_NO_OFFSET, NO_DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0xD8000300, OPCODE_MASK_H4, slr, memory_store_inst }, ++ {"lli", INST_TYPE_RD_R1_IMML, INST_NO_OFFSET, NO_DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0xE8000000, OPCODE_MASK_H, invalid_inst, memory_load_inst }, /* Identical to 32-bit */ ++ {"sli", INST_TYPE_RD_R1_IMML, INST_NO_OFFSET, NO_DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0xF8000000, OPCODE_MASK_H, invalid_inst, memory_store_inst }, /* Identical to 32-bit */ ++ {"lla", INST_TYPE_RD_R1_IMML, INST_NO_OFFSET, NO_DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0x30000000, OPCODE_MASK_H, invalid_inst, arithmetic_inst }, /* lla translates to addlik */ ++ {"dadd", INST_TYPE_RD_R1_R2, INST_NO_OFFSET, NO_DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0x58000400, OPCODE_MASK_H4, dadd, arithmetic_inst }, ++ {"drsub", INST_TYPE_RD_R1_R2, INST_NO_OFFSET, NO_DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0x58000480, OPCODE_MASK_H4, drsub, arithmetic_inst }, ++ {"dmul", INST_TYPE_RD_R1_R2, INST_NO_OFFSET, NO_DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0x58000500, OPCODE_MASK_H4, dmul, arithmetic_inst }, ++ {"ddiv", INST_TYPE_RD_R1_R2, INST_NO_OFFSET, NO_DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0x58000580, OPCODE_MASK_H4, ddiv, arithmetic_inst }, ++ {"dcmp.lt", INST_TYPE_RD_R1_R2, INST_NO_OFFSET, NO_DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0x58000610, OPCODE_MASK_H4, dcmp_lt, arithmetic_inst }, ++ {"dcmp.eq", INST_TYPE_RD_R1_R2, INST_NO_OFFSET, NO_DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0x58000620, OPCODE_MASK_H4, dcmp_eq, arithmetic_inst }, ++ {"dcmp.le", INST_TYPE_RD_R1_R2, INST_NO_OFFSET, NO_DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0x58000630, OPCODE_MASK_H4, dcmp_le, arithmetic_inst }, ++ {"dcmp.gt", INST_TYPE_RD_R1_R2, INST_NO_OFFSET, NO_DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0x58000640, OPCODE_MASK_H4, dcmp_gt, arithmetic_inst }, ++ {"dcmp.ne", INST_TYPE_RD_R1_R2, INST_NO_OFFSET, NO_DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0x58000650, OPCODE_MASK_H4, dcmp_ne, arithmetic_inst }, ++ {"dcmp.ge", INST_TYPE_RD_R1_R2, INST_NO_OFFSET, NO_DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0x58000660, OPCODE_MASK_H4, dcmp_ge, arithmetic_inst }, ++ {"dcmp.un", INST_TYPE_RD_R1_R2, INST_NO_OFFSET, NO_DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0x58000600, OPCODE_MASK_H4, dcmp_un, arithmetic_inst }, ++ {"dbl", INST_TYPE_RD_R1, INST_NO_OFFSET, NO_DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0x58000680, OPCODE_MASK_H4, dbl, arithmetic_inst }, ++ {"dlong", INST_TYPE_RD_R1, INST_NO_OFFSET, NO_DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0x58000700, OPCODE_MASK_H4, dlong, arithmetic_inst }, ++ {"dsqrt", INST_TYPE_RD_R1, INST_NO_OFFSET, NO_DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0x58000780, OPCODE_MASK_H4, dsqrt, arithmetic_inst }, ++ + {"", 0, 0, 0, 0, 0, 0, 0, 0}, + }; + +@@ -445,8 +576,17 @@ char pvr_register_prefix[] = "rpvr"; + #define MIN_IMM5 ((int) 0x00000000) + #define MAX_IMM5 ((int) 0x0000001f) + ++#define MIN_IMM6 ((int) 0x00000000) ++#define MAX_IMM6 ((int) 0x0000003f) ++ + #define MIN_IMM_WIDTH ((int) 0x00000001) + #define MAX_IMM_WIDTH ((int) 0x00000020) + ++#define MIN_IMM6_WIDTH ((int) 0x00000001) ++#define MAX_IMM6_WIDTH ((int) 0x00000040) ++ ++#define MIN_IMML ((long) 0xffffff8000000000L) ++#define MAX_IMML ((long) 0x0000007fffffffffL) ++ + #endif /* MICROBLAZE_OPC */ + +diff --git a/opcodes/microblaze-opcm.h b/opcodes/microblaze-opcm.h +index 2866269..076dbcd 100644 +--- a/opcodes/microblaze-opcm.h ++++ b/opcodes/microblaze-opcm.h +@@ -25,6 +25,7 @@ + + enum microblaze_instr + { ++ /* 32-bit instructions */ + add, rsub, addc, rsubc, addk, rsubk, addkc, rsubkc, clz, cmp, cmpu, + addi, rsubi, addic, rsubic, addik, rsubik, addikc, rsubikc, mul, + mulh, mulhu, mulhsu,swapb,swaph, +@@ -58,6 +59,18 @@ enum microblaze_instr + aputd, taputd, caputd, tcaputd, naputd, tnaputd, ncaputd, tncaputd, + eagetd, teagetd, ecagetd, tecagetd, neagetd, tneagetd, necagetd, tnecagetd, + eaputd, teaputd, ecaputd, tecaputd, neaputd, tneaputd, necaputd, tnecaputd, ++ ++ /* 64-bit instructions */ ++ addl, rsubl, addlc, rsublc, addlk, rsublk, addlkc, rsublkc, cmpl, cmplu, mull, ++ bslll, bslra, bslrl, bsllli, bslrai, bslrli, bslefi, bslifi, orl, andl, xorl, ++ andnl, pcmplbf, pcmpleq, pcmplne, srla, srlc, srll, sextl8, sextl16, sextl32, ++ brea, bread, breald, beaeq, bealeq, beaeqd, bealeqd, beane, bealne, beaned, ++ bealned, bealt, beallt, bealtd, bealltd, beale, bealle, bealed, bealled, beagt, ++ bealgt, beagtd, bealgtd, beage, bealge, beaged, bealged, breai, breaid, brealid, ++ beaeqi, beaeqid, beanei, beaneid, bealti, bealtid, bealei, bealeid, beagti, ++ beagtid, beagei, beageid, imml, ll, llr, sl, slr, ++ dadd, drsub, dmul, ddiv, dcmp_lt, dcmp_eq, dcmp_le, dcmp_gt, dcmp_ne, dcmp_ge, ++ dcmp_un, dbl, dlong, dsqrt, + invalid_inst + }; + +@@ -135,15 +148,18 @@ enum microblaze_instr_type + #define RA_MASK 0x001F0000 + #define RB_MASK 0x0000F800 + #define IMM_MASK 0x0000FFFF ++#define IMML_MASK 0x00FFFFFF + +-/* Imm mask for barrel shifts. */ ++/* Imm masks for barrel shifts. */ + #define IMM5_MASK 0x0000001F ++#define IMM6_MASK 0x0000003F + + /* Imm mask for mbar. */ + #define IMM5_MBAR_MASK 0x03E00000 + +-/* Imm mask for extract/insert width. */ ++/* Imm masks for extract/insert width. */ + #define IMM5_WIDTH_MASK 0x000007C0 ++#define IMM6_WIDTH_MASK 0x00000FC0 + + /* FSL imm mask for get, put instructions. */ + #define RFSL_MASK 0x000000F diff --git a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/binutils/binutils-2.32/0016-MB-X-initial-commit.patch b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/binutils/binutils-2.32/0016-MB-X-initial-commit.patch new file mode 100644 index 00000000..406d7bf2 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/binutils/binutils-2.32/0016-MB-X-initial-commit.patch @@ -0,0 +1,692 @@ +From 549bf1fafb7dfa2718e172a94ff68acb14320ed8 Mon Sep 17 00:00:00 2001 +From: Nagaraju Mekala +Date: Sun, 30 Sep 2018 16:31:26 +0530 +Subject: [PATCH] MB-X initial commit code cleanup is needed. + +Signed-off-by: Mahesh Bodapati +Signed-off-by: Nagaraju Mekala + +--- + bfd/bfd-in2.h | 10 +++ + bfd/elf32-microblaze.c | 65 +++++++++++++++++-- + bfd/elf64-microblaze.c | 61 +++++++++++++++++- + bfd/libbfd.h | 2 + + bfd/reloc.c | 12 ++++ + gas/config/tc-microblaze.c | 152 +++++++++++++++++++++++++++++++++++++-------- + include/elf/microblaze.h | 2 + + opcodes/microblaze-opc.h | 4 +- + opcodes/microblaze-opcm.h | 4 +- + 9 files changed, 277 insertions(+), 35 deletions(-) + +diff --git a/bfd/bfd-in2.h b/bfd/bfd-in2.h +index fe6933a..90645d1 100644 +--- a/bfd/bfd-in2.h ++++ b/bfd/bfd-in2.h +@@ -5878,11 +5878,21 @@ done here - only used for relaxing */ + BFD_RELOC_MICROBLAZE_64_NONE, + + /* This is a 64 bit reloc that stores the 32 bit pc relative ++ * +value in two words (with an imml instruction). No relocation is ++ * +done here - only used for relaxing */ ++ BFD_RELOC_MICROBLAZE_64, ++ ++/* This is a 64 bit reloc that stores the 32 bit pc relative + value in two words (with an imm instruction). The relocation is + PC-relative GOT offset */ + BFD_RELOC_MICROBLAZE_64_GOTPC, + + /* This is a 64 bit reloc that stores the 32 bit pc relative ++value in two words (with an imml instruction). The relocation is ++PC-relative GOT offset */ ++ BFD_RELOC_MICROBLAZE_64_GPC, ++ ++/* This is a 64 bit reloc that stores the 32 bit pc relative + value in two words (with an imm instruction). The relocation is + GOT offset */ + BFD_RELOC_MICROBLAZE_64_GOT, +diff --git a/bfd/elf32-microblaze.c b/bfd/elf32-microblaze.c +index d001437..035e71f 100644 +--- a/bfd/elf32-microblaze.c ++++ b/bfd/elf32-microblaze.c +@@ -116,6 +116,20 @@ static reloc_howto_type microblaze_elf_howto_raw[] = + 0x0000ffff, /* Dest Mask. */ + TRUE), /* PC relative offset? */ + ++ HOWTO (R_MICROBLAZE_IMML_64, /* Type. */ ++ 0, /* Rightshift. */ ++ 2, /* Size (0 = byte, 1 = short, 2 = long). */ ++ 16, /* Bitsize. */ ++ TRUE, /* PC_relative. */ ++ 0, /* Bitpos. */ ++ complain_overflow_dont, /* Complain on overflow. */ ++ bfd_elf_generic_reloc,/* Special Function. */ ++ "R_MICROBLAZE_IMML_64", /* Name. */ ++ FALSE, /* Partial Inplace. */ ++ 0, /* Source Mask. */ ++ 0x0000ffff, /* Dest Mask. */ ++ FALSE), /* PC relative offset? */ ++ + /* A 64 bit relocation. Table entry not really used. */ + HOWTO (R_MICROBLAZE_64, /* Type. */ + 0, /* Rightshift. */ +@@ -280,6 +294,21 @@ static reloc_howto_type microblaze_elf_howto_raw[] = + 0x0000ffff, /* Dest Mask. */ + TRUE), /* PC relative offset? */ + ++ /* A 64 bit GOTPC relocation. Table-entry not really used. */ ++ HOWTO (R_MICROBLAZE_GPC_64, /* Type. */ ++ 0, /* Rightshift. */ ++ 2, /* Size (0 = byte, 1 = short, 2 = long). */ ++ 16, /* Bitsize. */ ++ TRUE, /* PC_relative. */ ++ 0, /* Bitpos. */ ++ complain_overflow_dont, /* Complain on overflow. */ ++ bfd_elf_generic_reloc, /* Special Function. */ ++ "R_MICROBLAZE_GPC_64", /* Name. */ ++ FALSE, /* Partial Inplace. */ ++ 0, /* Source Mask. */ ++ 0x0000ffff, /* Dest Mask. */ ++ TRUE), /* PC relative offset? */ ++ + /* A 64 bit GOT relocation. Table-entry not really used. */ + HOWTO (R_MICROBLAZE_GOT_64, /* Type. */ + 0, /* Rightshift. */ +@@ -619,9 +648,15 @@ microblaze_elf_reloc_type_lookup (bfd * abfd ATTRIBUTE_UNUSED, + case BFD_RELOC_VTABLE_ENTRY: + microblaze_reloc = R_MICROBLAZE_GNU_VTENTRY; + break; ++ case BFD_RELOC_MICROBLAZE_64: ++ microblaze_reloc = R_MICROBLAZE_IMML_64; ++ break; + case BFD_RELOC_MICROBLAZE_64_GOTPC: + microblaze_reloc = R_MICROBLAZE_GOTPC_64; + break; ++ case BFD_RELOC_MICROBLAZE_64_GPC: ++ microblaze_reloc = R_MICROBLAZE_GPC_64; ++ break; + case BFD_RELOC_MICROBLAZE_64_GOT: + microblaze_reloc = R_MICROBLAZE_GOT_64; + break; +@@ -1467,7 +1502,7 @@ microblaze_elf_relocate_section (bfd *output_bfd, + if (r_symndx == STN_UNDEF || (input_section->flags & SEC_ALLOC) == 0) + { + relocation += addend; +- if (r_type == R_MICROBLAZE_32) ++ if (r_type == R_MICROBLAZE_32)// || r_type == R_MICROBLAZE_IMML_64) + bfd_put_32 (input_bfd, relocation, contents + offset); + else + { +@@ -1933,6 +1968,28 @@ microblaze_elf_relax_section (bfd *abfd, + irel->r_addend -= calc_fixup (irel->r_addend, 0, sec); + } + break; ++ case R_MICROBLAZE_IMML_64: ++ { ++ /* This was a PC-relative instruction that was ++ completely resolved. */ ++ int sfix, efix; ++ unsigned int val; ++ bfd_vma target_address; ++ target_address = irel->r_addend + irel->r_offset; ++ sfix = calc_fixup (irel->r_offset, 0, sec); ++ efix = calc_fixup (target_address, 0, sec); ++ ++ /* Validate the in-band val. */ ++ val = bfd_get_32 (abfd, contents + irel->r_offset); ++ if (val != irel->r_addend && ELF64_R_TYPE (irel->r_info) == R_MICROBLAZE_32_NONE) { ++ fprintf(stderr, "%d: CORRUPT relax reloc %x %lx\n", __LINE__, val, irel->r_addend); ++ } ++ irel->r_addend -= (efix - sfix); ++ /* Should use HOWTO. */ ++ microblaze_bfd_write_imm_value_64 (abfd, contents + irel->r_offset, ++ irel->r_addend); ++ } ++ break; + case R_MICROBLAZE_NONE: + case R_MICROBLAZE_32_NONE: + { +@@ -2037,9 +2094,9 @@ microblaze_elf_relax_section (bfd *abfd, + microblaze_bfd_write_imm_value_32 (abfd, ocontents + irelscan->r_offset, + irelscan->r_addend); + } +- if (ELF32_R_TYPE (irelscan->r_info) == (int) R_MICROBLAZE_32) +- { +- isym = isymbuf + ELF32_R_SYM (irelscan->r_info); ++ if (ELF32_R_TYPE (irelscan->r_info) == (int) R_MICROBLAZE_32)// || ELF32_R_TYPE (irelscan->r_info) == (int) R_MICROBLAZE_IMML_64) ++ { ++ isym = isymbuf + ELF32_R_SYM (irelscan->r_info); + + /* Look at the reloc only if the value has been resolved. */ + if (isym->st_shndx == shndx +diff --git a/bfd/elf64-microblaze.c b/bfd/elf64-microblaze.c +index 0f43ae6..56a45f2 100644 +--- a/bfd/elf64-microblaze.c ++++ b/bfd/elf64-microblaze.c +@@ -117,6 +117,21 @@ static reloc_howto_type microblaze_elf_howto_raw[] = + TRUE), /* PC relative offset? */ + + /* A 64 bit relocation. Table entry not really used. */ ++ HOWTO (R_MICROBLAZE_IMML_64, /* Type. */ ++ 0, /* Rightshift. */ ++ 4, /* Size (0 = byte, 1 = short, 2 = long). */ ++ 64, /* Bitsize. */ ++ TRUE, /* PC_relative. */ ++ 0, /* Bitpos. */ ++ complain_overflow_dont, /* Complain on overflow. */ ++ bfd_elf_generic_reloc,/* Special Function. */ ++ "R_MICROBLAZE_IMML_64", /* Name. */ ++ FALSE, /* Partial Inplace. */ ++ 0, /* Source Mask. */ ++ 0x0000ffff, /* Dest Mask. */ ++ TRUE), /* PC relative offset? */ ++ ++ /* A 64 bit relocation. Table entry not really used. */ + HOWTO (R_MICROBLAZE_64, /* Type. */ + 0, /* Rightshift. */ + 2, /* Size (0 = byte, 1 = short, 2 = long). */ +@@ -265,6 +280,21 @@ static reloc_howto_type microblaze_elf_howto_raw[] = + 0x0000ffff, /* Dest Mask. */ + TRUE), /* PC relative offset? */ + ++ /* A 64 bit GOTPC relocation. Table-entry not really used. */ ++ HOWTO (R_MICROBLAZE_GPC_64, /* Type. */ ++ 0, /* Rightshift. */ ++ 2, /* Size (0 = byte, 1 = short, 2 = long). */ ++ 16, /* Bitsize. */ ++ TRUE, /* PC_relative. */ ++ 0, /* Bitpos. */ ++ complain_overflow_dont, /* Complain on overflow. */ ++ bfd_elf_generic_reloc, /* Special Function. */ ++ "R_MICROBLAZE_GPC_64", /* Name. */ ++ FALSE, /* Partial Inplace. */ ++ 0, /* Source Mask. */ ++ 0x0000ffff, /* Dest Mask. */ ++ TRUE), /* PC relative offset? */ ++ + /* A 64 bit GOT relocation. Table-entry not really used. */ + HOWTO (R_MICROBLAZE_GOT_64, /* Type. */ + 0, /* Rightshift. */ +@@ -589,9 +619,15 @@ microblaze_elf_reloc_type_lookup (bfd * abfd ATTRIBUTE_UNUSED, + case BFD_RELOC_VTABLE_ENTRY: + microblaze_reloc = R_MICROBLAZE_GNU_VTENTRY; + break; ++ case BFD_RELOC_MICROBLAZE_64: ++ microblaze_reloc = R_MICROBLAZE_IMML_64; ++ break; + case BFD_RELOC_MICROBLAZE_64_GOTPC: + microblaze_reloc = R_MICROBLAZE_GOTPC_64; + break; ++ case BFD_RELOC_MICROBLAZE_64_GPC: ++ microblaze_reloc = R_MICROBLAZE_GPC_64; ++ break; + case BFD_RELOC_MICROBLAZE_64_GOT: + microblaze_reloc = R_MICROBLAZE_GOT_64; + break; +@@ -1161,6 +1197,7 @@ microblaze_elf_relocate_section (bfd *output_bfd, + break; /* Do nothing. */ + + case (int) R_MICROBLAZE_GOTPC_64: ++ case (int) R_MICROBLAZE_GPC_64: + relocation = htab->sgotplt->output_section->vma + + htab->sgotplt->output_offset; + relocation -= (input_section->output_section->vma +@@ -1431,7 +1468,7 @@ microblaze_elf_relocate_section (bfd *output_bfd, + if (r_symndx == STN_UNDEF || (input_section->flags & SEC_ALLOC) == 0) + { + relocation += addend; +- if (r_type == R_MICROBLAZE_32) ++ if (r_type == R_MICROBLAZE_32)// || r_type == R_MICROBLAZE_IMML_64) + bfd_put_32 (input_bfd, relocation, contents + offset); + else + { +@@ -1876,6 +1913,28 @@ microblaze_elf_relax_section (bfd *abfd, + irel->r_addend -= calc_fixup (irel->r_addend, 0, sec); + } + break; ++ case R_MICROBLAZE_IMML_64: ++ { ++ /* This was a PC-relative instruction that was ++ completely resolved. */ ++ int sfix, efix; ++ unsigned int val; ++ bfd_vma target_address; ++ target_address = irel->r_addend + irel->r_offset; ++ sfix = calc_fixup (irel->r_offset, 0, sec); ++ efix = calc_fixup (target_address, 0, sec); ++ ++ /* Validate the in-band val. */ ++ val = bfd_get_32 (abfd, contents + irel->r_offset); ++ if (val != irel->r_addend && ELF64_R_TYPE (irel->r_info) == R_MICROBLAZE_32_NONE) { ++ fprintf(stderr, "%d: CORRUPT relax reloc %x %lx\n", __LINE__, val, irel->r_addend); ++ } ++ irel->r_addend -= (efix - sfix); ++ /* Should use HOWTO. */ ++ microblaze_bfd_write_imm_value_64 (abfd, contents + irel->r_offset, ++ irel->r_addend); ++ } ++ break; + case R_MICROBLAZE_NONE: + case R_MICROBLAZE_32_NONE: + { +diff --git a/bfd/libbfd.h b/bfd/libbfd.h +index feb9fad..450653f 100644 +--- a/bfd/libbfd.h ++++ b/bfd/libbfd.h +@@ -2903,7 +2903,9 @@ static const char *const bfd_reloc_code_real_names[] = { "@@uninitialized@@", + "BFD_RELOC_MICROBLAZE_32_SYM_OP_SYM", + "BFD_RELOC_MICROBLAZE_32_NONE", + "BFD_RELOC_MICROBLAZE_64_NONE", ++ "BFD_RELOC_MICROBLAZE_64", + "BFD_RELOC_MICROBLAZE_64_GOTPC", ++ "BFD_RELOC_MICROBLAZE_64_GPC", + "BFD_RELOC_MICROBLAZE_64_GOT", + "BFD_RELOC_MICROBLAZE_64_PLT", + "BFD_RELOC_MICROBLAZE_64_GOTOFF", +diff --git a/bfd/reloc.c b/bfd/reloc.c +index 87753ae..ccf29f5 100644 +--- a/bfd/reloc.c ++++ b/bfd/reloc.c +@@ -6804,6 +6804,12 @@ ENUMDOC + ENUM + BFD_RELOC_MICROBLAZE_64_NONE + ENUMDOC ++ This is a 32 bit reloc that stores the 32 bit pc relative ++ value in two words (with an imml instruction). No relocation is ++ done here - only used for relaxing ++ENUM ++ BFD_RELOC_MICROBLAZE_64 ++ENUMDOC + This is a 64 bit reloc that stores the 32 bit pc relative + value in two words (with an imm instruction). No relocation is + done here - only used for relaxing +@@ -6811,6 +6817,12 @@ ENUM + BFD_RELOC_MICROBLAZE_64_GOTPC + ENUMDOC + This is a 64 bit reloc that stores the 32 bit pc relative ++ value in two words (with an imml instruction). No relocation is ++ done here - only used for relaxing ++ENUM ++ BFD_RELOC_MICROBLAZE_64_GPC ++ENUMDOC ++ This is a 64 bit reloc that stores the 32 bit pc relative + value in two words (with an imm instruction). The relocation is + PC-relative GOT offset + ENUM +diff --git a/gas/config/tc-microblaze.c b/gas/config/tc-microblaze.c +index c794347..3f90b7c 100644 +--- a/gas/config/tc-microblaze.c ++++ b/gas/config/tc-microblaze.c +@@ -94,6 +94,7 @@ const char FLT_CHARS[] = "rRsSfFdDxXpP"; + #define TLSTPREL_OFFSET 16 + #define TEXT_OFFSET 17 + #define TEXT_PC_OFFSET 18 ++#define DEFINED_64_OFFSET 19 + + /* Initialize the relax table. */ + const relax_typeS md_relax_table[] = +@@ -117,6 +118,8 @@ const relax_typeS md_relax_table[] = + { 0x7fffffff, 0x80000000, INST_WORD_SIZE*2, 0 }, /* 16: TLSTPREL_OFFSET. */ + { 0x7fffffff, 0x80000000, INST_WORD_SIZE*2, 0 }, /* 17: TEXT_OFFSET. */ + { 0x7fffffff, 0x80000000, INST_WORD_SIZE*2, 0 } /* 18: TEXT_PC_OFFSET. */ ++// { 0x7fffffff, 0x80000000, INST_WORD_SIZE*2, 0 } /* 16: TLSTPREL_OFFSET. */ ++ { 0x7fffffffffffffff, 0x8000000000000000, INST_WORD_SIZE, 0 } /* 17: DEFINED_64_OFFSET. */ + }; + + static struct hash_control * opcode_hash_control; /* Opcode mnemonics. */ +@@ -396,7 +399,8 @@ const pseudo_typeS md_pseudo_table[] = + {"data32", cons, 4}, /* Same as word. */ + {"ent", s_func, 0}, /* Treat ent as function entry point. */ + {"end", microblaze_s_func, 1}, /* Treat end as function end point. */ +- {"gpword", s_rva, 4}, /* gpword label => store resolved label address in data section. */ ++ {"gpword", s_rva, 8}, /* gpword label => store resolved label address in data section. */ ++ {"gpdword", s_rva, 8}, /* gpword label => store resolved label address in data section. */ + {"weakext", microblaze_s_weakext, 0}, + {"rodata", microblaze_s_rdata, 0}, + {"sdata2", microblaze_s_rdata, 1}, +@@ -405,6 +409,7 @@ const pseudo_typeS md_pseudo_table[] = + {"sbss", microblaze_s_bss, 1}, + {"text", microblaze_s_text, 0}, + {"word", cons, 4}, ++ {"dword", cons, 8}, + {"frame", s_ignore, 0}, + {"mask", s_ignore, 0}, /* Emitted by gcc. */ + {NULL, NULL, 0} +@@ -898,7 +903,7 @@ check_got (int * got_type, int * got_len) + extern bfd_reloc_code_real_type + parse_cons_expression_microblaze (expressionS *exp, int size) + { +- if (size == 4) ++ if (size == 4 || (microblaze_arch_size == 64 && size == 8)) + { + /* Handle @GOTOFF et.al. */ + char *save, *gotfree_copy; +@@ -930,6 +935,7 @@ parse_cons_expression_microblaze (expressionS *exp, int size) + + static const char * str_microblaze_ro_anchor = "RO"; + static const char * str_microblaze_rw_anchor = "RW"; ++static const char * str_microblaze_64 = "64"; + + static bfd_boolean + check_spl_reg (unsigned * reg) +@@ -1174,6 +1180,33 @@ md_assemble (char * str) + inst |= (immed << IMM_LOW) & IMM_MASK; + } + } ++#if 0 //revisit ++ else if (streq (name, "lli") || streq (name, "sli")) ++ { ++ temp = immed & 0xFFFFFFFFFFFF8000; ++ if ((temp != 0) && (temp != 0xFFFFFFFFFFFF8000)) ++ { ++ /* Needs an immediate inst. */ ++ opcode1 = (struct op_code_struct *) hash_find (opcode_hash_control, "imml"); ++ if (opcode1 == NULL) ++ { ++ as_bad (_("unknown opcode \"%s\""), "imml"); ++ return; ++ } ++ ++ inst1 = opcode1->bit_sequence; ++ inst1 |= ((immedl & 0xFFFFFFFFFFFF0000L) >> 16) & IMML_MASK; ++ output[0] = INST_BYTE0 (inst1); ++ output[1] = INST_BYTE1 (inst1); ++ output[2] = INST_BYTE2 (inst1); ++ output[3] = INST_BYTE3 (inst1); ++ output = frag_more (isize); ++ } ++ inst |= (reg1 << RD_LOW) & RD_MASK; ++ inst |= (reg2 << RA_LOW) & RA_MASK; ++ inst |= (immed << IMM_LOW) & IMM_MASK; ++ } ++#endif + else + { + temp = immed & 0xFFFF8000; +@@ -1926,6 +1959,7 @@ md_assemble (char * str) + if (exp.X_op != O_constant) + { + char *opc = NULL; ++ //char *opc = str_microblaze_64; + relax_substateT subtype; + + if (exp.X_md != 0) +@@ -1939,7 +1973,7 @@ md_assemble (char * str) + subtype, /* PC-relative or not. */ + exp.X_add_symbol, + exp.X_add_number, +- opc); ++ (char *) opc); + immedl = 0L; + } + else +@@ -1977,7 +2011,7 @@ md_assemble (char * str) + reg1 = 0; + } + if (strcmp (op_end, "")) +- op_end = parse_imml (op_end + 1, & exp, MIN_IMM, MAX_IMM); ++ op_end = parse_imml (op_end + 1, & exp, MIN_IMML, MAX_IMML); + else + as_fatal (_("Error in statement syntax")); + +@@ -1987,7 +2021,8 @@ md_assemble (char * str) + + if (exp.X_op != O_constant) + { +- char *opc = NULL; ++ //char *opc = NULL; ++ char *opc = str_microblaze_64; + relax_substateT subtype; + + if (exp.X_md != 0) +@@ -2001,14 +2036,13 @@ md_assemble (char * str) + subtype, /* PC-relative or not. */ + exp.X_add_symbol, + exp.X_add_number, +- opc); ++ (char *) opc); + immedl = 0L; + } + else + { + output = frag_more (isize); + immedl = exp.X_add_number; +- + opcode1 = (struct op_code_struct *) hash_find (opcode_hash_control, "imml"); + if (opcode1 == NULL) + { +@@ -2187,13 +2221,23 @@ md_convert_frag (bfd * abfd ATTRIBUTE_UNUSED, + fragP->fr_fix += INST_WORD_SIZE * 2; + fragP->fr_var = 0; + break; ++ case DEFINED_64_OFFSET: ++ if (fragP->fr_symbol == GOT_symbol) ++ fix_new (fragP, fragP->fr_fix, INST_WORD_SIZE, fragP->fr_symbol, ++ fragP->fr_offset, TRUE, BFD_RELOC_MICROBLAZE_64_GPC); ++ else ++ fix_new (fragP, fragP->fr_fix, INST_WORD_SIZE, fragP->fr_symbol, ++ fragP->fr_offset, TRUE, BFD_RELOC_MICROBLAZE_64); ++ fragP->fr_fix += INST_WORD_SIZE * 2; ++ fragP->fr_var = 0; ++ break; + case DEFINED_ABS_SEGMENT: + if (fragP->fr_symbol == GOT_symbol) + fix_new (fragP, fragP->fr_fix, INST_WORD_SIZE * 2, fragP->fr_symbol, + fragP->fr_offset, TRUE, BFD_RELOC_MICROBLAZE_64_GOTPC); + else + fix_new (fragP, fragP->fr_fix, INST_WORD_SIZE * 2, fragP->fr_symbol, +- fragP->fr_offset, FALSE, BFD_RELOC_64); ++ fragP->fr_offset, TRUE, BFD_RELOC_64); + fragP->fr_fix += INST_WORD_SIZE * 2; + fragP->fr_var = 0; + break; +@@ -2416,22 +2460,38 @@ md_apply_fix (fixS * fixP, + case BFD_RELOC_64_PCREL: + case BFD_RELOC_64: + case BFD_RELOC_MICROBLAZE_64_TEXTREL: ++ case BFD_RELOC_MICROBLAZE_64: + /* Add an imm instruction. First save the current instruction. */ + for (i = 0; i < INST_WORD_SIZE; i++) + buf[i + INST_WORD_SIZE] = buf[i]; ++ if (fixP->fx_r_type == BFD_RELOC_MICROBLAZE_64) ++ { ++ /* Generate the imm instruction. */ ++ opcode1 = (struct op_code_struct *) hash_find (opcode_hash_control, "imml"); ++ if (opcode1 == NULL) ++ { ++ as_bad (_("unknown opcode \"%s\""), "imml"); ++ return; ++ } + +- /* Generate the imm instruction. */ +- opcode1 = (struct op_code_struct *) hash_find (opcode_hash_control, "imm"); +- if (opcode1 == NULL) +- { +- as_bad (_("unknown opcode \"%s\""), "imm"); +- return; +- } +- +- inst1 = opcode1->bit_sequence; +- if (fixP->fx_addsy == NULL || S_IS_DEFINED (fixP->fx_addsy)) +- inst1 |= ((val & 0xFFFF0000) >> 16) & IMM_MASK; +- ++ inst1 = opcode1->bit_sequence; ++ if (fixP->fx_addsy == NULL || S_IS_DEFINED (fixP->fx_addsy)) ++ inst1 |= ((val & 0xFFFFFFFFFFFF0000L) >> 16) & IMML_MASK; ++ } ++ else ++ { ++ /* Generate the imm instruction. */ ++ opcode1 = (struct op_code_struct *) hash_find (opcode_hash_control, "imm"); ++ if (opcode1 == NULL) ++ { ++ as_bad (_("unknown opcode \"%s\""), "imm"); ++ return; ++ } ++ ++ inst1 = opcode1->bit_sequence; ++ if (fixP->fx_addsy == NULL || S_IS_DEFINED (fixP->fx_addsy)) ++ inst1 |= ((val & 0xFFFF0000) >> 16) & IMM_MASK; ++ } + buf[0] = INST_BYTE0 (inst1); + buf[1] = INST_BYTE1 (inst1); + buf[2] = INST_BYTE2 (inst1); +@@ -2460,6 +2520,7 @@ md_apply_fix (fixS * fixP, + /* Fall through. */ + + case BFD_RELOC_MICROBLAZE_64_GOTPC: ++ case BFD_RELOC_MICROBLAZE_64_GPC: + case BFD_RELOC_MICROBLAZE_64_GOT: + case BFD_RELOC_MICROBLAZE_64_PLT: + case BFD_RELOC_MICROBLAZE_64_GOTOFF: +@@ -2467,12 +2528,16 @@ md_apply_fix (fixS * fixP, + /* Add an imm instruction. First save the current instruction. */ + for (i = 0; i < INST_WORD_SIZE; i++) + buf[i + INST_WORD_SIZE] = buf[i]; +- +- /* Generate the imm instruction. */ +- opcode1 = (struct op_code_struct *) hash_find (opcode_hash_control, "imm"); ++ if (fixP->fx_r_type == BFD_RELOC_MICROBLAZE_64_GPC) ++ opcode1 = (struct op_code_struct *) hash_find (opcode_hash_control, "imml"); ++ else ++ opcode1 = (struct op_code_struct *) hash_find (opcode_hash_control, "imm"); + if (opcode1 == NULL) + { +- as_bad (_("unknown opcode \"%s\""), "imm"); ++ if (fixP->fx_r_type == BFD_RELOC_MICROBLAZE_64_GPC) ++ as_bad (_("unknown opcode \"%s\""), "imml"); ++ else ++ as_bad (_("unknown opcode \"%s\""), "imm"); + return; + } + +@@ -2496,6 +2561,8 @@ md_apply_fix (fixS * fixP, + moves code around due to relaxing. */ + if (fixP->fx_r_type == BFD_RELOC_64_PCREL) + fixP->fx_r_type = BFD_RELOC_MICROBLAZE_64_NONE; ++ if (fixP->fx_r_type == BFD_RELOC_MICROBLAZE_64) ++ fixP->fx_r_type = BFD_RELOC_MICROBLAZE_64_NONE; + else if (fixP->fx_r_type == BFD_RELOC_32) + fixP->fx_r_type = BFD_RELOC_MICROBLAZE_32_NONE; + else +@@ -2539,6 +2606,32 @@ md_estimate_size_before_relax (fragS * fragP, + as_bad (_("Absolute PC-relative value in relaxation code. Assembler error.....")); + abort (); + } ++ else if (S_GET_SEGMENT (fragP->fr_symbol) == segment_type ++ && !S_IS_WEAK (fragP->fr_symbol)) ++ { ++ if (fragP->fr_opcode != NULL) { ++ if(streq (fragP->fr_opcode, str_microblaze_64)) ++ { ++ /* Used as an absolute value. */ ++ fragP->fr_subtype = DEFINED_64_OFFSET; ++ /* Variable part does not change. */ ++ fragP->fr_var = INST_WORD_SIZE; ++ } ++ else ++ { ++ fragP->fr_subtype = DEFINED_PC_OFFSET; ++ /* Don't know now whether we need an imm instruction. */ ++ fragP->fr_var = INST_WORD_SIZE; ++ } ++ } ++ else ++ { ++ fragP->fr_subtype = DEFINED_PC_OFFSET; ++ /* Don't know now whether we need an imm instruction. */ ++ fragP->fr_var = INST_WORD_SIZE; ++ } ++ } ++ #if 0 + else if (S_GET_SEGMENT (fragP->fr_symbol) == segment_type && + !S_IS_WEAK (fragP->fr_symbol)) + { +@@ -2546,6 +2639,7 @@ md_estimate_size_before_relax (fragS * fragP, + /* Don't know now whether we need an imm instruction. */ + fragP->fr_var = INST_WORD_SIZE; + } ++#endif + else if (S_IS_DEFINED (fragP->fr_symbol) + && (((S_GET_SEGMENT (fragP->fr_symbol))->flags & SEC_CODE) == 0)) + { +@@ -2648,6 +2742,7 @@ md_estimate_size_before_relax (fragS * fragP, + case TLSLD_OFFSET: + case TLSTPREL_OFFSET: + case TLSDTPREL_OFFSET: ++ case DEFINED_64_OFFSET: + fragP->fr_var = INST_WORD_SIZE*2; + break; + case DEFINED_RO_SEGMENT: +@@ -2701,7 +2796,7 @@ md_pcrel_from_section (fixS * fixp, segT sec ATTRIBUTE_UNUSED) + else + { + /* The case where we are going to resolve things... */ +- if (fixp->fx_r_type == BFD_RELOC_64_PCREL) ++ if (fixp->fx_r_type == BFD_RELOC_64_PCREL ||fixp->fx_r_type == BFD_RELOC_MICROBLAZE_64) + return fixp->fx_where + fixp->fx_frag->fr_address + INST_WORD_SIZE; + else + return fixp->fx_where + fixp->fx_frag->fr_address; +@@ -2734,6 +2829,8 @@ tc_gen_reloc (asection * section ATTRIBUTE_UNUSED, fixS * fixp) + case BFD_RELOC_MICROBLAZE_32_RWSDA: + case BFD_RELOC_MICROBLAZE_32_SYM_OP_SYM: + case BFD_RELOC_MICROBLAZE_64_GOTPC: ++ case BFD_RELOC_MICROBLAZE_64_GPC: ++ case BFD_RELOC_MICROBLAZE_64: + case BFD_RELOC_MICROBLAZE_64_GOT: + case BFD_RELOC_MICROBLAZE_64_PLT: + case BFD_RELOC_MICROBLAZE_64_GOTOFF: +@@ -2876,7 +2973,10 @@ cons_fix_new_microblaze (fragS * frag, + r = BFD_RELOC_32; + break; + case 8: +- r = BFD_RELOC_64; ++ if (microblaze_arch_size == 64) ++ r = BFD_RELOC_32; ++ else ++ r = BFD_RELOC_64; + break; + default: + as_bad (_("unsupported BFD relocation size %u"), size); +diff --git a/include/elf/microblaze.h b/include/elf/microblaze.h +index 6ee0966..16b2736 100644 +--- a/include/elf/microblaze.h ++++ b/include/elf/microblaze.h +@@ -62,6 +62,8 @@ START_RELOC_NUMBERS (elf_microblaze_reloc_type) + RELOC_NUMBER (R_MICROBLAZE_TEXTREL_64, 31) /* TEXT Entry offset 64-bit. */ + RELOC_NUMBER (R_MICROBLAZE_TEXTREL_32_LO, 32) /* TEXT Entry offset 32-bit. */ + RELOC_NUMBER (R_MICROBLAZE_32_NONE, 33) ++ RELOC_NUMBER (R_MICROBLAZE_IMML_64, 34) ++ RELOC_NUMBER (R_MICROBLAZE_GPC_64, 35) /* GOT entry offset. */ + + END_RELOC_NUMBERS (R_MICROBLAZE_max) + +diff --git a/opcodes/microblaze-opc.h b/opcodes/microblaze-opc.h +index 985834b..9b6264b 100644 +--- a/opcodes/microblaze-opc.h ++++ b/opcodes/microblaze-opc.h +@@ -538,8 +538,8 @@ struct op_code_struct + {"llr", INST_TYPE_RD_R1_R2, INST_NO_OFFSET, NO_DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0xC8000300, OPCODE_MASK_H4, llr, memory_load_inst }, + {"sl", INST_TYPE_RD_R1_R2, INST_NO_OFFSET, NO_DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0xD8000100, OPCODE_MASK_H4, sl, memory_store_inst }, + {"slr", INST_TYPE_RD_R1_R2, INST_NO_OFFSET, NO_DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0xD8000300, OPCODE_MASK_H4, slr, memory_store_inst }, +- {"lli", INST_TYPE_RD_R1_IMML, INST_NO_OFFSET, NO_DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0xE8000000, OPCODE_MASK_H, invalid_inst, memory_load_inst }, /* Identical to 32-bit */ +- {"sli", INST_TYPE_RD_R1_IMML, INST_NO_OFFSET, NO_DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0xF8000000, OPCODE_MASK_H, invalid_inst, memory_store_inst }, /* Identical to 32-bit */ ++ {"lli", INST_TYPE_RD_R1_IMM, INST_NO_OFFSET, NO_DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0xEC000000, OPCODE_MASK_H, invalid_inst, memory_load_inst }, /* Identical to 32-bit */ ++ {"sli", INST_TYPE_RD_R1_IMM, INST_NO_OFFSET, NO_DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0xFC000000, OPCODE_MASK_H, invalid_inst, memory_store_inst }, /* Identical to 32-bit */ + {"lla", INST_TYPE_RD_R1_IMML, INST_NO_OFFSET, NO_DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0x30000000, OPCODE_MASK_H, invalid_inst, arithmetic_inst }, /* lla translates to addlik */ + {"dadd", INST_TYPE_RD_R1_R2, INST_NO_OFFSET, NO_DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0x58000400, OPCODE_MASK_H4, dadd, arithmetic_inst }, + {"drsub", INST_TYPE_RD_R1_R2, INST_NO_OFFSET, NO_DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0x58000480, OPCODE_MASK_H4, drsub, arithmetic_inst }, +diff --git a/opcodes/microblaze-opcm.h b/opcodes/microblaze-opcm.h +index 076dbcd..5f2e190 100644 +--- a/opcodes/microblaze-opcm.h ++++ b/opcodes/microblaze-opcm.h +@@ -40,8 +40,8 @@ enum microblaze_instr + imm, rtsd, rtid, rtbd, rted, bri, brid, brlid, brai, braid, bralid, + brki, beqi, beqid, bnei, bneid, blti, bltid, blei, bleid, bgti, + bgtid, bgei, bgeid, lbu, lbuea, lbur, lhu, lhuea, lhur, lw, lwea, lwr, lwx, +- sb, sbea, sbr, sh, shea, shr, sw, swea, swr, swx, lbui, lhui, lwi, +- sbi, shi, swi, msrset, msrclr, tuqula, fadd, frsub, fmul, fdiv, ++ sb, sbea, sbr, sh, shea, shr, sw, swea, swr, swx, lbui, lhui, lwi, lli, ++ sbi, shi, sli, swi, msrset, msrclr, tuqula, fadd, frsub, fmul, fdiv, + fcmp_lt, fcmp_eq, fcmp_le, fcmp_gt, fcmp_ne, fcmp_ge, fcmp_un, flt, + fint, fsqrt, + tget, tcget, tnget, tncget, tput, tcput, tnput, tncput, diff --git a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/binutils/binutils-2.32/0017-Patch-Microblaze-negl-instruction-is-overriding-rsub.patch b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/binutils/binutils-2.32/0017-Patch-Microblaze-negl-instruction-is-overriding-rsub.patch new file mode 100644 index 00000000..062ee364 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/binutils/binutils-2.32/0017-Patch-Microblaze-negl-instruction-is-overriding-rsub.patch @@ -0,0 +1,36 @@ +From 3735a1bb6174f15bde23dd2767675b49c9e8712f Mon Sep 17 00:00:00 2001 +From: Mahesh Bodapati +Date: Tue, 11 Sep 2018 13:48:33 +0530 +Subject: [PATCH] negl instruction is overriding rsubl,fixed it by changing the + instruction order... + +Signed-off-by: Mahesh Bodapati +Signed-off-by: Nagaraju Mekala + +--- + opcodes/microblaze-opc.h | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/opcodes/microblaze-opc.h b/opcodes/microblaze-opc.h +index 9b6264b..824afc0 100644 +--- a/opcodes/microblaze-opc.h ++++ b/opcodes/microblaze-opc.h +@@ -275,9 +275,7 @@ struct op_code_struct + {"la", INST_TYPE_RD_R1_IMM, INST_NO_OFFSET, NO_DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0x30000000, OPCODE_MASK_H, invalid_inst, arithmetic_inst }, /* la translates to addik. */ + {"tuqula",INST_TYPE_RD, INST_NO_OFFSET, NO_DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0x3000002A, OPCODE_MASK_H, invalid_inst, arithmetic_inst }, /* tuqula rd translates to addik rd, r0, 42. */ + {"not", INST_TYPE_RD_R1, INST_NO_OFFSET, NO_DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0xA800FFFF, OPCODE_MASK_H34, invalid_inst, logical_inst }, /* not translates to xori rd,ra,-1. */ +- {"neg", INST_TYPE_RD_R1, INST_NO_OFFSET, NO_DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0x04000000, OPCODE_MASK_H, invalid_inst, arithmetic_inst }, /* neg translates to rsub rd, ra, r0. */ + {"rtb", INST_TYPE_R1, INST_NO_OFFSET, NO_DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0xB6000004, OPCODE_MASK_H1, invalid_inst, return_inst }, /* rtb translates to rts rd, 4. */ +- {"sub", INST_TYPE_RD_R1_R2, INST_NO_OFFSET, NO_DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0x04000000, OPCODE_MASK_H, invalid_inst, arithmetic_inst }, /* sub translates to rsub rd, rb, ra. */ + {"lmi", INST_TYPE_RD_R1_IMM, INST_NO_OFFSET, NO_DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0xE8000000, OPCODE_MASK_H, invalid_inst, memory_load_inst }, + {"smi", INST_TYPE_RD_R1_IMM, INST_NO_OFFSET, NO_DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0xF8000000, OPCODE_MASK_H, invalid_inst, memory_store_inst }, + {"msrset",INST_TYPE_RD_IMM15, INST_NO_OFFSET, NO_DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0x94100000, OPCODE_MASK_H23N, msrset, special_inst }, +@@ -555,6 +553,8 @@ struct op_code_struct + {"dbl", INST_TYPE_RD_R1, INST_NO_OFFSET, NO_DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0x58000680, OPCODE_MASK_H4, dbl, arithmetic_inst }, + {"dlong", INST_TYPE_RD_R1, INST_NO_OFFSET, NO_DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0x58000700, OPCODE_MASK_H4, dlong, arithmetic_inst }, + {"dsqrt", INST_TYPE_RD_R1, INST_NO_OFFSET, NO_DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0x58000780, OPCODE_MASK_H4, dsqrt, arithmetic_inst }, ++ {"neg", INST_TYPE_RD_R1, INST_NO_OFFSET, NO_DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0x04000000, OPCODE_MASK_H, invalid_inst, arithmetic_inst }, /* neg translates to rsub rd, ra, r0. */ ++ {"sub", INST_TYPE_RD_R1_R2, INST_NO_OFFSET, NO_DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0x04000000, OPCODE_MASK_H, invalid_inst, arithmetic_inst }, /* sub translates to rsub rd, rb, ra. */ + + {"", 0, 0, 0, 0, 0, 0, 0, 0}, + }; diff --git a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/binutils/binutils-2.32/0018-Added-relocations-for-MB-X.patch b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/binutils/binutils-2.32/0018-Added-relocations-for-MB-X.patch new file mode 100644 index 00000000..b98db228 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/binutils/binutils-2.32/0018-Added-relocations-for-MB-X.patch @@ -0,0 +1,348 @@ +From 6b6c4a67212ced3fe1593fb173cfc4bce8d7f922 Mon Sep 17 00:00:00 2001 +From: Nagaraju Mekala +Date: Tue, 11 Sep 2018 17:30:17 +0530 +Subject: [PATCH] Added relocations for MB-X + +Signed-off-by: Mahesh Bodapati +Signed-off-by: Nagaraju Mekala + +--- + bfd/bfd-in2.h | 11 ++++-- + bfd/libbfd.h | 4 +-- + bfd/reloc.c | 26 +++++++------- + gas/config/tc-microblaze.c | 90 ++++++++++++++++++++-------------------------- + 4 files changed, 62 insertions(+), 69 deletions(-) + +diff --git a/bfd/bfd-in2.h b/bfd/bfd-in2.h +index 90645d1..f74aac1 100644 +--- a/bfd/bfd-in2.h ++++ b/bfd/bfd-in2.h +@@ -5873,16 +5873,21 @@ done here - only used for relaxing */ + BFD_RELOC_MICROBLAZE_32_NONE, + + /* This is a 64 bit reloc that stores the 32 bit pc relative +- * +value in two words (with an imm instruction). No relocation is ++ * +value in two words (with an imml instruction). No relocation is + * +done here - only used for relaxing */ +- BFD_RELOC_MICROBLAZE_64_NONE, ++ BFD_RELOC_MICROBLAZE_64_PCREL, + +-/* This is a 64 bit reloc that stores the 32 bit pc relative ++/* This is a 64 bit reloc that stores the 32 bit relative + * +value in two words (with an imml instruction). No relocation is + * +done here - only used for relaxing */ + BFD_RELOC_MICROBLAZE_64, + + /* This is a 64 bit reloc that stores the 32 bit pc relative ++ * +value in two words (with an imm instruction). No relocation is ++ * +done here - only used for relaxing */ ++ BFD_RELOC_MICROBLAZE_64_NONE, ++ ++/* This is a 64 bit reloc that stores the 32 bit pc relative + value in two words (with an imm instruction). The relocation is + PC-relative GOT offset */ + BFD_RELOC_MICROBLAZE_64_GOTPC, +diff --git a/bfd/libbfd.h b/bfd/libbfd.h +index 450653f..d87a183 100644 +--- a/bfd/libbfd.h ++++ b/bfd/libbfd.h +@@ -2903,14 +2903,14 @@ static const char *const bfd_reloc_code_real_names[] = { "@@uninitialized@@", + "BFD_RELOC_MICROBLAZE_32_SYM_OP_SYM", + "BFD_RELOC_MICROBLAZE_32_NONE", + "BFD_RELOC_MICROBLAZE_64_NONE", +- "BFD_RELOC_MICROBLAZE_64", + "BFD_RELOC_MICROBLAZE_64_GOTPC", +- "BFD_RELOC_MICROBLAZE_64_GPC", + "BFD_RELOC_MICROBLAZE_64_GOT", + "BFD_RELOC_MICROBLAZE_64_PLT", + "BFD_RELOC_MICROBLAZE_64_GOTOFF", + "BFD_RELOC_MICROBLAZE_32_GOTOFF", + "BFD_RELOC_MICROBLAZE_COPY", ++ "BFD_RELOC_MICROBLAZE_64", ++ "BFD_RELOC_MICROBLAZE_64_PCREL", + "BFD_RELOC_MICROBLAZE_64_TLS", + "BFD_RELOC_MICROBLAZE_64_TLSGD", + "BFD_RELOC_MICROBLAZE_64_TLSLD", +diff --git a/bfd/reloc.c b/bfd/reloc.c +index ccf29f5..861f2d4 100644 +--- a/bfd/reloc.c ++++ b/bfd/reloc.c +@@ -6804,12 +6804,6 @@ ENUMDOC + ENUM + BFD_RELOC_MICROBLAZE_64_NONE + ENUMDOC +- This is a 32 bit reloc that stores the 32 bit pc relative +- value in two words (with an imml instruction). No relocation is +- done here - only used for relaxing +-ENUM +- BFD_RELOC_MICROBLAZE_64 +-ENUMDOC + This is a 64 bit reloc that stores the 32 bit pc relative + value in two words (with an imm instruction). No relocation is + done here - only used for relaxing +@@ -6817,12 +6811,6 @@ ENUM + BFD_RELOC_MICROBLAZE_64_GOTPC + ENUMDOC + This is a 64 bit reloc that stores the 32 bit pc relative +- value in two words (with an imml instruction). No relocation is +- done here - only used for relaxing +-ENUM +- BFD_RELOC_MICROBLAZE_64_GPC +-ENUMDOC +- This is a 64 bit reloc that stores the 32 bit pc relative + value in two words (with an imm instruction). The relocation is + PC-relative GOT offset + ENUM +@@ -6906,6 +6894,20 @@ ENUMDOC + value in two words (with an imm instruction). The relocation is + relative offset from start of TEXT. + ++ This is a 64 bit reloc that stores 64-bit thread pointer relative offset ++ to two words (uses imml instruction). ++ENUM ++BFD_RELOC_MICROBLAZE_64, ++ENUMDOC ++ This is a 64 bit reloc that stores the 64 bit pc relative ++ value in two words (with an imml instruction). No relocation is ++ done here - only used for relaxing ++ENUM ++BFD_RELOC_MICROBLAZE_64_PCREL, ++ENUMDOC ++ This is a 32 bit reloc that stores the 32 bit pc relative ++ value in two words (with an imml instruction). No relocation is ++ done here - only used for relaxing + ENUM + BFD_RELOC_AARCH64_RELOC_START + ENUMDOC +diff --git a/gas/config/tc-microblaze.c b/gas/config/tc-microblaze.c +index 3f90b7c..587a4d5 100644 +--- a/gas/config/tc-microblaze.c ++++ b/gas/config/tc-microblaze.c +@@ -95,6 +95,7 @@ const char FLT_CHARS[] = "rRsSfFdDxXpP"; + #define TEXT_OFFSET 17 + #define TEXT_PC_OFFSET 18 + #define DEFINED_64_OFFSET 19 ++#define DEFINED_64_PC_OFFSET 20 + + /* Initialize the relax table. */ + const relax_typeS md_relax_table[] = +@@ -119,7 +120,8 @@ const relax_typeS md_relax_table[] = + { 0x7fffffff, 0x80000000, INST_WORD_SIZE*2, 0 }, /* 17: TEXT_OFFSET. */ + { 0x7fffffff, 0x80000000, INST_WORD_SIZE*2, 0 } /* 18: TEXT_PC_OFFSET. */ + // { 0x7fffffff, 0x80000000, INST_WORD_SIZE*2, 0 } /* 16: TLSTPREL_OFFSET. */ +- { 0x7fffffffffffffff, 0x8000000000000000, INST_WORD_SIZE, 0 } /* 17: DEFINED_64_OFFSET. */ ++ { 0x7fffffffffffffff, 0x8000000000000000, INST_WORD_SIZE, 0 } /* 19: DEFINED_64_OFFSET. */ ++ { 0x7fffffffffffffff, 0x8000000000000000, INST_WORD_SIZE*2, 0 } /* 20: DEFINED_64_PC_OFFSET. */ + }; + + static struct hash_control * opcode_hash_control; /* Opcode mnemonics. */ +@@ -1180,33 +1182,6 @@ md_assemble (char * str) + inst |= (immed << IMM_LOW) & IMM_MASK; + } + } +-#if 0 //revisit +- else if (streq (name, "lli") || streq (name, "sli")) +- { +- temp = immed & 0xFFFFFFFFFFFF8000; +- if ((temp != 0) && (temp != 0xFFFFFFFFFFFF8000)) +- { +- /* Needs an immediate inst. */ +- opcode1 = (struct op_code_struct *) hash_find (opcode_hash_control, "imml"); +- if (opcode1 == NULL) +- { +- as_bad (_("unknown opcode \"%s\""), "imml"); +- return; +- } +- +- inst1 = opcode1->bit_sequence; +- inst1 |= ((immedl & 0xFFFFFFFFFFFF0000L) >> 16) & IMML_MASK; +- output[0] = INST_BYTE0 (inst1); +- output[1] = INST_BYTE1 (inst1); +- output[2] = INST_BYTE2 (inst1); +- output[3] = INST_BYTE3 (inst1); +- output = frag_more (isize); +- } +- inst |= (reg1 << RD_LOW) & RD_MASK; +- inst |= (reg2 << RA_LOW) & RA_MASK; +- inst |= (immed << IMM_LOW) & IMM_MASK; +- } +-#endif + else + { + temp = immed & 0xFFFF8000; +@@ -1958,8 +1933,8 @@ md_assemble (char * str) + + if (exp.X_op != O_constant) + { +- char *opc = NULL; +- //char *opc = str_microblaze_64; ++ //char *opc = NULL; ++ char *opc = str_microblaze_64; + relax_substateT subtype; + + if (exp.X_md != 0) +@@ -2221,13 +2196,19 @@ md_convert_frag (bfd * abfd ATTRIBUTE_UNUSED, + fragP->fr_fix += INST_WORD_SIZE * 2; + fragP->fr_var = 0; + break; ++ case DEFINED_64_PC_OFFSET: ++ fix_new (fragP, fragP->fr_fix, INST_WORD_SIZE, fragP->fr_symbol, ++ fragP->fr_offset, TRUE, BFD_RELOC_MICROBLAZE_64_PCREL); ++ fragP->fr_fix += INST_WORD_SIZE * 2; ++ fragP->fr_var = 0; ++ break; + case DEFINED_64_OFFSET: + if (fragP->fr_symbol == GOT_symbol) + fix_new (fragP, fragP->fr_fix, INST_WORD_SIZE, fragP->fr_symbol, +- fragP->fr_offset, TRUE, BFD_RELOC_MICROBLAZE_64_GPC); ++ fragP->fr_offset, FALSE, BFD_RELOC_MICROBLAZE_64_GPC); + else + fix_new (fragP, fragP->fr_fix, INST_WORD_SIZE, fragP->fr_symbol, +- fragP->fr_offset, TRUE, BFD_RELOC_MICROBLAZE_64); ++ fragP->fr_offset, FALSE, BFD_RELOC_MICROBLAZE_64); + fragP->fr_fix += INST_WORD_SIZE * 2; + fragP->fr_var = 0; + break; +@@ -2237,7 +2218,7 @@ md_convert_frag (bfd * abfd ATTRIBUTE_UNUSED, + fragP->fr_offset, TRUE, BFD_RELOC_MICROBLAZE_64_GOTPC); + else + fix_new (fragP, fragP->fr_fix, INST_WORD_SIZE * 2, fragP->fr_symbol, +- fragP->fr_offset, TRUE, BFD_RELOC_64); ++ fragP->fr_offset, FALSE, BFD_RELOC_64); + fragP->fr_fix += INST_WORD_SIZE * 2; + fragP->fr_var = 0; + break; +@@ -2457,14 +2438,17 @@ md_apply_fix (fixS * fixP, + } + } + break; ++ + case BFD_RELOC_64_PCREL: + case BFD_RELOC_64: + case BFD_RELOC_MICROBLAZE_64_TEXTREL: + case BFD_RELOC_MICROBLAZE_64: ++ case BFD_RELOC_MICROBLAZE_64_PCREL: + /* Add an imm instruction. First save the current instruction. */ + for (i = 0; i < INST_WORD_SIZE; i++) + buf[i + INST_WORD_SIZE] = buf[i]; +- if (fixP->fx_r_type == BFD_RELOC_MICROBLAZE_64) ++ if (fixP->fx_r_type == BFD_RELOC_MICROBLAZE_64 ++ || fixP->fx_r_type == BFD_RELOC_MICROBLAZE_64_PCREL) + { + /* Generate the imm instruction. */ + opcode1 = (struct op_code_struct *) hash_find (opcode_hash_control, "imml"); +@@ -2477,6 +2461,10 @@ md_apply_fix (fixS * fixP, + inst1 = opcode1->bit_sequence; + if (fixP->fx_addsy == NULL || S_IS_DEFINED (fixP->fx_addsy)) + inst1 |= ((val & 0xFFFFFFFFFFFF0000L) >> 16) & IMML_MASK; ++ if (fixP->fx_r_type == BFD_RELOC_MICROBLAZE_64) ++ fixP->fx_r_type = BFD_RELOC_64; ++ if (fixP->fx_r_type == BFD_RELOC_MICROBLAZE_64_PCREL) ++ fixP->fx_r_type = BFD_RELOC_64_PCREL; + } + else + { +@@ -2487,7 +2475,7 @@ md_apply_fix (fixS * fixP, + as_bad (_("unknown opcode \"%s\""), "imm"); + return; + } +- ++ + inst1 = opcode1->bit_sequence; + if (fixP->fx_addsy == NULL || S_IS_DEFINED (fixP->fx_addsy)) + inst1 |= ((val & 0xFFFF0000) >> 16) & IMM_MASK; +@@ -2534,7 +2522,7 @@ md_apply_fix (fixS * fixP, + opcode1 = (struct op_code_struct *) hash_find (opcode_hash_control, "imm"); + if (opcode1 == NULL) + { +- if (fixP->fx_r_type == BFD_RELOC_MICROBLAZE_64_GPC) ++ if (fixP->fx_r_type == BFD_RELOC_MICROBLAZE_64_GPC) + as_bad (_("unknown opcode \"%s\""), "imml"); + else + as_bad (_("unknown opcode \"%s\""), "imm"); +@@ -2561,8 +2549,6 @@ md_apply_fix (fixS * fixP, + moves code around due to relaxing. */ + if (fixP->fx_r_type == BFD_RELOC_64_PCREL) + fixP->fx_r_type = BFD_RELOC_MICROBLAZE_64_NONE; +- if (fixP->fx_r_type == BFD_RELOC_MICROBLAZE_64) +- fixP->fx_r_type = BFD_RELOC_MICROBLAZE_64_NONE; + else if (fixP->fx_r_type == BFD_RELOC_32) + fixP->fx_r_type = BFD_RELOC_MICROBLAZE_32_NONE; + else +@@ -2613,33 +2599,24 @@ md_estimate_size_before_relax (fragS * fragP, + if(streq (fragP->fr_opcode, str_microblaze_64)) + { + /* Used as an absolute value. */ +- fragP->fr_subtype = DEFINED_64_OFFSET; ++ fragP->fr_subtype = DEFINED_64_PC_OFFSET; + /* Variable part does not change. */ +- fragP->fr_var = INST_WORD_SIZE; ++ fragP->fr_var = INST_WORD_SIZE*2; + } + else + { + fragP->fr_subtype = DEFINED_PC_OFFSET; +- /* Don't know now whether we need an imm instruction. */ ++ /* Don't know now whether we need an imm instruction. */ + fragP->fr_var = INST_WORD_SIZE; + } + } + else + { + fragP->fr_subtype = DEFINED_PC_OFFSET; +- /* Don't know now whether we need an imm instruction. */ ++ /* Don't know now whether we need an imm instruction. */ + fragP->fr_var = INST_WORD_SIZE; + } + } +- #if 0 +- else if (S_GET_SEGMENT (fragP->fr_symbol) == segment_type && +- !S_IS_WEAK (fragP->fr_symbol)) +- { +- fragP->fr_subtype = DEFINED_PC_OFFSET; +- /* Don't know now whether we need an imm instruction. */ +- fragP->fr_var = INST_WORD_SIZE; +- } +-#endif + else if (S_IS_DEFINED (fragP->fr_symbol) + && (((S_GET_SEGMENT (fragP->fr_symbol))->flags & SEC_CODE) == 0)) + { +@@ -2669,6 +2646,13 @@ md_estimate_size_before_relax (fragS * fragP, + /* Variable part does not change. */ + fragP->fr_var = INST_WORD_SIZE*2; + } ++ else if (streq (fragP->fr_opcode, str_microblaze_64)) ++ { ++ /* Used as an absolute value. */ ++ fragP->fr_subtype = DEFINED_64_OFFSET; ++ /* Variable part does not change. */ ++ fragP->fr_var = INST_WORD_SIZE; ++ } + else if (streq (fragP->fr_opcode, str_microblaze_ro_anchor)) + { + /* It is accessed using the small data read only anchor. */ +@@ -2743,6 +2727,7 @@ md_estimate_size_before_relax (fragS * fragP, + case TLSTPREL_OFFSET: + case TLSDTPREL_OFFSET: + case DEFINED_64_OFFSET: ++ case DEFINED_64_PC_OFFSET: + fragP->fr_var = INST_WORD_SIZE*2; + break; + case DEFINED_RO_SEGMENT: +@@ -2796,7 +2781,7 @@ md_pcrel_from_section (fixS * fixp, segT sec ATTRIBUTE_UNUSED) + else + { + /* The case where we are going to resolve things... */ +- if (fixp->fx_r_type == BFD_RELOC_64_PCREL ||fixp->fx_r_type == BFD_RELOC_MICROBLAZE_64) ++ if (fixp->fx_r_type == BFD_RELOC_64_PCREL ||fixp->fx_r_type == BFD_RELOC_MICROBLAZE_64_PCREL) + return fixp->fx_where + fixp->fx_frag->fr_address + INST_WORD_SIZE; + else + return fixp->fx_where + fixp->fx_frag->fr_address; +@@ -2831,6 +2816,7 @@ tc_gen_reloc (asection * section ATTRIBUTE_UNUSED, fixS * fixp) + case BFD_RELOC_MICROBLAZE_64_GOTPC: + case BFD_RELOC_MICROBLAZE_64_GPC: + case BFD_RELOC_MICROBLAZE_64: ++ case BFD_RELOC_MICROBLAZE_64_PCREL: + case BFD_RELOC_MICROBLAZE_64_GOT: + case BFD_RELOC_MICROBLAZE_64_PLT: + case BFD_RELOC_MICROBLAZE_64_GOTOFF: diff --git a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/binutils/binutils-2.32/0019-Fixed-MB-x-relocation-issues.patch b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/binutils/binutils-2.32/0019-Fixed-MB-x-relocation-issues.patch new file mode 100644 index 00000000..55319ee2 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/binutils/binutils-2.32/0019-Fixed-MB-x-relocation-issues.patch @@ -0,0 +1,373 @@ +From 616031595c692c2181c3b1ce8c08678b68b2fe4e Mon Sep 17 00:00:00 2001 +From: Nagaraju Mekala +Date: Fri, 28 Sep 2018 12:04:55 +0530 +Subject: [PATCH] -Fixed MB-x relocation issues -Added imml for required MB-x + instructions + +Signed-off-by: Mahesh Bodapati +Signed-off-by: Nagaraju Mekala + +--- + bfd/elf64-microblaze.c | 68 ++++++++++++++++---- + gas/config/tc-microblaze.c | 152 ++++++++++++++++++++++++++++++++------------- + gas/tc.h | 2 +- + 3 files changed, 167 insertions(+), 55 deletions(-) + +diff --git a/bfd/elf64-microblaze.c b/bfd/elf64-microblaze.c +index 56a45f2..54a2461 100644 +--- a/bfd/elf64-microblaze.c ++++ b/bfd/elf64-microblaze.c +@@ -1476,8 +1476,17 @@ microblaze_elf_relocate_section (bfd *output_bfd, + relocation -= (input_section->output_section->vma + + input_section->output_offset + + offset + INST_WORD_SIZE); +- bfd_put_16 (input_bfd, (relocation >> 16) & 0xffff, ++ unsigned long insn = bfd_get_32 (input_bfd, contents + offset +endian); ++ if (insn == 0xb2000000 || insn == 0xb2ffffff) ++ { ++ insn &= ~0x00ffffff; ++ insn |= (relocation >> 16) & 0xffffff; ++ bfd_put_32 (input_bfd, insn, + contents + offset + endian); ++ } ++ else ++ bfd_put_16 (input_bfd, (relocation >> 16) & 0xffff, ++ contents + offset + endian); + bfd_put_16 (input_bfd, relocation & 0xffff, + contents + offset + endian + INST_WORD_SIZE); + } +@@ -1567,11 +1576,28 @@ microblaze_elf_relocate_section (bfd *output_bfd, + else + { + if (r_type == R_MICROBLAZE_64_PCREL) +- relocation -= (input_section->output_section->vma +- + input_section->output_offset +- + offset + INST_WORD_SIZE); +- bfd_put_16 (input_bfd, (relocation >> 16) & 0xffff, ++ { ++ if (!input_section->output_section->vma && ++ !input_section->output_offset && !offset) ++ relocation -= (input_section->output_section->vma ++ + input_section->output_offset ++ + offset); ++ else ++ relocation -= (input_section->output_section->vma ++ + input_section->output_offset ++ + offset + INST_WORD_SIZE); ++ } ++ unsigned long insn = bfd_get_32 (input_bfd, contents + offset +endian); ++ if (insn == 0xb2000000 || insn == 0xb2ffffff) ++ { ++ insn &= ~0x00ffffff; ++ insn |= (relocation >> 16) & 0xffffff; ++ bfd_put_32 (input_bfd, insn, + contents + offset + endian); ++ } ++ else ++ bfd_put_16 (input_bfd, (relocation >> 16) & 0xffff, ++ contents + offset + endian); + bfd_put_16 (input_bfd, relocation & 0xffff, + contents + offset + endian + INST_WORD_SIZE); + } +@@ -1690,9 +1716,19 @@ static void + microblaze_bfd_write_imm_value_32 (bfd *abfd, bfd_byte *bfd_addr, bfd_vma val) + { + unsigned long instr = bfd_get_32 (abfd, bfd_addr); +- instr &= ~0x0000ffff; +- instr |= (val & 0x0000ffff); +- bfd_put_32 (abfd, instr, bfd_addr); ++ ++ if (instr == 0xb2000000 || instr == 0xb2ffffff) ++ { ++ instr &= ~0x00ffffff; ++ instr |= (val & 0xffffff); ++ bfd_put_32 (abfd, instr, bfd_addr); ++ } ++ else ++ { ++ instr &= ~0x0000ffff; ++ instr |= (val & 0x0000ffff); ++ bfd_put_32 (abfd, instr, bfd_addr); ++ } + } + + /* Read-modify-write into the bfd, an immediate value into appropriate fields of +@@ -1704,10 +1740,18 @@ microblaze_bfd_write_imm_value_64 (bfd *abfd, bfd_byte *bfd_addr, bfd_vma val) + unsigned long instr_lo; + + instr_hi = bfd_get_32 (abfd, bfd_addr); +- instr_hi &= ~0x0000ffff; +- instr_hi |= ((val >> 16) & 0x0000ffff); +- bfd_put_32 (abfd, instr_hi, bfd_addr); +- ++ if (instr_hi == 0xb2000000 || instr_hi == 0xb2ffffff) ++ { ++ instr_hi &= ~0x00ffffff; ++ instr_hi |= (val >> 16) & 0xffffff; ++ bfd_put_32 (abfd, instr_hi,bfd_addr); ++ } ++ else ++ { ++ instr_hi &= ~0x0000ffff; ++ instr_hi |= ((val >> 16) & 0x0000ffff); ++ bfd_put_32 (abfd, instr_hi, bfd_addr); ++ } + instr_lo = bfd_get_32 (abfd, bfd_addr + INST_WORD_SIZE); + instr_lo &= ~0x0000ffff; + instr_lo |= (val & 0x0000ffff); +diff --git a/gas/config/tc-microblaze.c b/gas/config/tc-microblaze.c +index 587a4d5..fa437b6 100644 +--- a/gas/config/tc-microblaze.c ++++ b/gas/config/tc-microblaze.c +@@ -392,7 +392,7 @@ microblaze_s_weakext (int ignore ATTRIBUTE_UNUSED) + Integer arg to pass to the function. */ + /* If the pseudo-op is not found in this table, it searches in the obj-elf.c, + and then in the read.c table. */ +-const pseudo_typeS md_pseudo_table[] = ++pseudo_typeS md_pseudo_table[] = + { + {"lcomm", microblaze_s_lcomm, 1}, + {"data", microblaze_s_data, 0}, +@@ -401,7 +401,7 @@ const pseudo_typeS md_pseudo_table[] = + {"data32", cons, 4}, /* Same as word. */ + {"ent", s_func, 0}, /* Treat ent as function entry point. */ + {"end", microblaze_s_func, 1}, /* Treat end as function end point. */ +- {"gpword", s_rva, 8}, /* gpword label => store resolved label address in data section. */ ++ {"gpword", s_rva, 4}, /* gpword label => store resolved label address in data section. */ + {"gpdword", s_rva, 8}, /* gpword label => store resolved label address in data section. */ + {"weakext", microblaze_s_weakext, 0}, + {"rodata", microblaze_s_rdata, 0}, +@@ -996,7 +996,7 @@ md_assemble (char * str) + unsigned reg2; + unsigned reg3; + unsigned isize; +- unsigned int immed, immed2, temp; ++ unsigned long immed, immed2, temp; + expressionS exp; + char name[20]; + long immedl; +@@ -1118,8 +1118,9 @@ md_assemble (char * str) + as_fatal (_("lmi pseudo instruction should not use a label in imm field")); + else if (streq (name, "smi")) + as_fatal (_("smi pseudo instruction should not use a label in imm field")); +- +- if (reg2 == REG_ROSDP) ++ if(streq (name, "lli") || streq (name, "sli")) ++ opc = str_microblaze_64; ++ else if (reg2 == REG_ROSDP) + opc = str_microblaze_ro_anchor; + else if (reg2 == REG_RWSDP) + opc = str_microblaze_rw_anchor; +@@ -1182,31 +1183,55 @@ md_assemble (char * str) + inst |= (immed << IMM_LOW) & IMM_MASK; + } + } +- else +- { +- temp = immed & 0xFFFF8000; +- if ((temp != 0) && (temp != 0xFFFF8000)) +- { ++ else if (streq (name, "lli") || streq (name, "sli")) ++ { ++ temp = immed & 0xFFFFFF8000; ++ if (temp != 0 && temp != 0xFFFFFF8000) ++ { + /* Needs an immediate inst. */ +- opcode1 = (struct op_code_struct *) hash_find (opcode_hash_control, "imm"); ++ opcode1 = (struct op_code_struct *) hash_find (opcode_hash_control, "imml"); + if (opcode1 == NULL) + { +- as_bad (_("unknown opcode \"%s\""), "imm"); ++ as_bad (_("unknown opcode \"%s\""), "imml"); + return; + } +- + inst1 = opcode1->bit_sequence; +- inst1 |= ((immed & 0xFFFF0000) >> 16) & IMM_MASK; ++ inst1 |= ((immed & 0xFFFFFFFFFFFF0000L) >> 16) & IMML_MASK; + output[0] = INST_BYTE0 (inst1); + output[1] = INST_BYTE1 (inst1); + output[2] = INST_BYTE2 (inst1); + output[3] = INST_BYTE3 (inst1); + output = frag_more (isize); +- } +- inst |= (reg1 << RD_LOW) & RD_MASK; +- inst |= (reg2 << RA_LOW) & RA_MASK; +- inst |= (immed << IMM_LOW) & IMM_MASK; +- } ++ } ++ inst |= (reg1 << RD_LOW) & RD_MASK; ++ inst |= (reg2 << RA_LOW) & RA_MASK; ++ inst |= (immed << IMM_LOW) & IMM_MASK; ++ } ++ else ++ { ++ temp = immed & 0xFFFF8000; ++ if ((temp != 0) && (temp != 0xFFFF8000)) ++ { ++ /* Needs an immediate inst. */ ++ opcode1 = (struct op_code_struct *) hash_find (opcode_hash_control, "imm"); ++ if (opcode1 == NULL) ++ { ++ as_bad (_("unknown opcode \"%s\""), "imm"); ++ return; ++ } ++ ++ inst1 = opcode1->bit_sequence; ++ inst1 |= ((immed & 0xFFFF0000) >> 16) & IMM_MASK; ++ output[0] = INST_BYTE0 (inst1); ++ output[1] = INST_BYTE1 (inst1); ++ output[2] = INST_BYTE2 (inst1); ++ output[3] = INST_BYTE3 (inst1); ++ output = frag_more (isize); ++ } ++ inst |= (reg1 << RD_LOW) & RD_MASK; ++ inst |= (reg2 << RA_LOW) & RA_MASK; ++ inst |= (immed << IMM_LOW) & IMM_MASK; ++ } + break; + + case INST_TYPE_RD_R1_IMMS: +@@ -1832,12 +1857,20 @@ md_assemble (char * str) + case INST_TYPE_IMM: + if (streq (name, "imm")) + as_fatal (_("An IMM instruction should not be present in the .s file")); +- +- op_end = parse_imm (op_end + 1, & exp, MIN_IMM, MAX_IMM); ++ if (microblaze_arch_size == 64) ++ op_end = parse_imml (op_end + 1, & exp, MIN_IMML, MAX_IMML); ++ else ++ op_end = parse_imm (op_end + 1, & exp, MIN_IMM, MAX_IMM); + + if (exp.X_op != O_constant) + { +- char *opc = NULL; ++ char *opc; ++ if (microblaze_arch_size == 64 && (streq (name, "breai") || ++ streq (name, "breaid") || ++ streq (name, "brai") || streq (name, "braid"))) ++ opc = str_microblaze_64; ++ else ++ opc = NULL; + relax_substateT subtype; + + if (exp.X_md != 0) +@@ -1860,27 +1893,54 @@ md_assemble (char * str) + immed = exp.X_add_number; + } + ++ if (microblaze_arch_size == 64 && (streq (name, "breai") || ++ streq (name, "breaid") || ++ streq (name, "brai") || streq (name, "braid"))) ++ { ++ temp = immed & 0xFFFFFF8000; ++ if (temp != 0) ++ { ++ /* Needs an immediate inst. */ ++ opcode1 = (struct op_code_struct *) hash_find (opcode_hash_control, "imml"); ++ if (opcode1 == NULL) ++ { ++ as_bad (_("unknown opcode \"%s\""), "imml"); ++ return; ++ } + +- temp = immed & 0xFFFF8000; +- if ((temp != 0) && (temp != 0xFFFF8000)) +- { +- /* Needs an immediate inst. */ +- opcode1 = (struct op_code_struct *) hash_find (opcode_hash_control, "imm"); +- if (opcode1 == NULL) +- { +- as_bad (_("unknown opcode \"%s\""), "imm"); +- return; ++ inst1 = opcode1->bit_sequence; ++ inst1 |= ((immed & 0xFFFFFFFFFFFF0000L) >> 16) & IMML_MASK; ++ output[0] = INST_BYTE0 (inst1); ++ output[1] = INST_BYTE1 (inst1); ++ output[2] = INST_BYTE2 (inst1); ++ output[3] = INST_BYTE3 (inst1); ++ output = frag_more (isize); + } ++ inst |= (immed << IMM_LOW) & IMM_MASK; ++ } ++ else ++ { ++ temp = immed & 0xFFFF8000; ++ if ((temp != 0) && (temp != 0xFFFF8000)) ++ { ++ /* Needs an immediate inst. */ ++ opcode1 = (struct op_code_struct *) hash_find (opcode_hash_control, "imm"); ++ if (opcode1 == NULL) ++ { ++ as_bad (_("unknown opcode \"%s\""), "imm"); ++ return; ++ } + +- inst1 = opcode1->bit_sequence; +- inst1 |= ((immed & 0xFFFF0000) >> 16) & IMM_MASK; +- output[0] = INST_BYTE0 (inst1); +- output[1] = INST_BYTE1 (inst1); +- output[2] = INST_BYTE2 (inst1); +- output[3] = INST_BYTE3 (inst1); +- output = frag_more (isize); +- } +- inst |= (immed << IMM_LOW) & IMM_MASK; ++ inst1 = opcode1->bit_sequence; ++ inst1 |= ((immed & 0xFFFF0000) >> 16) & IMM_MASK; ++ output[0] = INST_BYTE0 (inst1); ++ output[1] = INST_BYTE1 (inst1); ++ output[2] = INST_BYTE2 (inst1); ++ output[3] = INST_BYTE3 (inst1); ++ output = frag_more (isize); ++ } ++ inst |= (immed << IMM_LOW) & IMM_MASK; ++ } + break; + + case INST_TYPE_NONE: +@@ -2460,7 +2520,7 @@ md_apply_fix (fixS * fixP, + + inst1 = opcode1->bit_sequence; + if (fixP->fx_addsy == NULL || S_IS_DEFINED (fixP->fx_addsy)) +- inst1 |= ((val & 0xFFFFFFFFFFFF0000L) >> 16) & IMML_MASK; ++ inst1 |= ((val & 0xFFFFFF0000L) >> 16) & IMML_MASK; + if (fixP->fx_r_type == BFD_RELOC_MICROBLAZE_64) + fixP->fx_r_type = BFD_RELOC_64; + if (fixP->fx_r_type == BFD_RELOC_MICROBLAZE_64_PCREL) +@@ -2628,7 +2688,14 @@ md_estimate_size_before_relax (fragS * fragP, + } + else + { +- fragP->fr_subtype = UNDEFINED_PC_OFFSET; ++ if (fragP->fr_opcode != NULL) { ++ if (streq (fragP->fr_opcode, str_microblaze_64)) ++ fragP->fr_subtype = DEFINED_64_PC_OFFSET; ++ else ++ fragP->fr_subtype = UNDEFINED_PC_OFFSET; ++ } ++ else ++ fragP->fr_subtype = UNDEFINED_PC_OFFSET; + fragP->fr_var = INST_WORD_SIZE*2; + } + break; +@@ -2905,6 +2972,7 @@ md_parse_option (int c, const char * arg ATTRIBUTE_UNUSED) + case OPTION_M64: + //if (arg != NULL && strcmp (arg, "64") == 0) + microblaze_arch_size = 64; ++ md_pseudo_table[7].poc_val = 8; + break; + default: + return 0; +diff --git a/gas/tc.h b/gas/tc.h +index 0a50a69..529a73b 100644 +--- a/gas/tc.h ++++ b/gas/tc.h +@@ -22,7 +22,7 @@ + /* In theory (mine, at least!) the machine dependent part of the assembler + should only have to include one file. This one. -- JF */ + +-extern const pseudo_typeS md_pseudo_table[]; ++extern pseudo_typeS md_pseudo_table[]; + + const char * md_atof (int, char *, int *); + int md_parse_option (int, const char *); diff --git a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/binutils/binutils-2.32/0020-Fixing-the-branch-related-issues.patch b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/binutils/binutils-2.32/0020-Fixing-the-branch-related-issues.patch new file mode 100644 index 00000000..43a06d89 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/binutils/binutils-2.32/0020-Fixing-the-branch-related-issues.patch @@ -0,0 +1,25 @@ +From 05cac23e0cdb94705c87cf9d94ffe00e7cba53f6 Mon Sep 17 00:00:00 2001 +From: Nagaraju Mekala +Date: Sun, 30 Sep 2018 17:06:58 +0530 +Subject: [PATCH] Fixing the branch related issues + +Signed-off-by: Mahesh Bodapati +Signed-off-by: Nagaraju Mekala + +--- + bfd/elf64-microblaze.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/bfd/elf64-microblaze.c b/bfd/elf64-microblaze.c +index 54a2461..e9b3cf3 100644 +--- a/bfd/elf64-microblaze.c ++++ b/bfd/elf64-microblaze.c +@@ -2532,7 +2532,7 @@ microblaze_elf_check_relocs (bfd * abfd, + + /* PR15323, ref flags aren't set for references in the same + object. */ +- h->root.non_ir_ref = 1; ++ h->root.non_ir_ref_regular = 1; + } + + switch (r_type) diff --git a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/binutils/binutils-2.32/0021-Fixed-address-computation-issues-with-64bit-address.patch b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/binutils/binutils-2.32/0021-Fixed-address-computation-issues-with-64bit-address.patch new file mode 100644 index 00000000..b3aebb74 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/binutils/binutils-2.32/0021-Fixed-address-computation-issues-with-64bit-address.patch @@ -0,0 +1,217 @@ +From 8b98898add56667d28b7d6242c86603bb2f5946e Mon Sep 17 00:00:00 2001 +From: Nagaraju Mekala +Date: Tue, 9 Oct 2018 10:14:22 +0530 +Subject: [PATCH] - Fixed address computation issues with 64bit address - Fixed + imml dissassamble issue + +Signed-off-by: Mahesh Bodapati +Signed-off-by: Nagaraju Mekala + +--- + bfd/bfd-in2.h | 5 ++++ + bfd/elf64-microblaze.c | 14 ++++----- + gas/config/tc-microblaze.c | 74 +++++++++++++++++++++++++++++++++++++++++----- + opcodes/microblaze-dis.c | 2 +- + 4 files changed, 79 insertions(+), 16 deletions(-) + +diff --git a/bfd/bfd-in2.h b/bfd/bfd-in2.h +index f74aac1..434b41c 100644 +--- a/bfd/bfd-in2.h ++++ b/bfd/bfd-in2.h +@@ -5882,6 +5882,11 @@ done here - only used for relaxing */ + * +done here - only used for relaxing */ + BFD_RELOC_MICROBLAZE_64, + ++/* This is a 64 bit reloc that stores the 32 bit relative ++ * +value in two words (with an imml instruction). No relocation is ++ * +done here - only used for relaxing */ ++ BFD_RELOC_MICROBLAZE_EA64, ++ + /* This is a 64 bit reloc that stores the 32 bit pc relative + * +value in two words (with an imm instruction). No relocation is + * +done here - only used for relaxing */ +diff --git a/bfd/elf64-microblaze.c b/bfd/elf64-microblaze.c +index e9b3cf3..40f10aa 100644 +--- a/bfd/elf64-microblaze.c ++++ b/bfd/elf64-microblaze.c +@@ -121,15 +121,15 @@ static reloc_howto_type microblaze_elf_howto_raw[] = + 0, /* Rightshift. */ + 4, /* Size (0 = byte, 1 = short, 2 = long). */ + 64, /* Bitsize. */ +- TRUE, /* PC_relative. */ ++ FALSE, /* PC_relative. */ + 0, /* Bitpos. */ + complain_overflow_dont, /* Complain on overflow. */ + bfd_elf_generic_reloc,/* Special Function. */ + "R_MICROBLAZE_IMML_64", /* Name. */ + FALSE, /* Partial Inplace. */ + 0, /* Source Mask. */ +- 0x0000ffff, /* Dest Mask. */ +- TRUE), /* PC relative offset? */ ++ 0xffffffffffffff, /* Dest Mask. */ ++ FALSE), /* PC relative offset? */ + + /* A 64 bit relocation. Table entry not really used. */ + HOWTO (R_MICROBLAZE_64, /* Type. */ +@@ -585,9 +585,9 @@ microblaze_elf_reloc_type_lookup (bfd * abfd ATTRIBUTE_UNUSED, + case BFD_RELOC_32: + microblaze_reloc = R_MICROBLAZE_32; + break; +- /* RVA is treated the same as 32 */ ++ /* RVA is treated the same as 64 */ + case BFD_RELOC_RVA: +- microblaze_reloc = R_MICROBLAZE_32; ++ microblaze_reloc = R_MICROBLAZE_IMML_64; + break; + case BFD_RELOC_32_PCREL: + microblaze_reloc = R_MICROBLAZE_32_PCREL; +@@ -619,7 +619,7 @@ microblaze_elf_reloc_type_lookup (bfd * abfd ATTRIBUTE_UNUSED, + case BFD_RELOC_VTABLE_ENTRY: + microblaze_reloc = R_MICROBLAZE_GNU_VTENTRY; + break; +- case BFD_RELOC_MICROBLAZE_64: ++ case BFD_RELOC_MICROBLAZE_EA64: + microblaze_reloc = R_MICROBLAZE_IMML_64; + break; + case BFD_RELOC_MICROBLAZE_64_GOTPC: +@@ -1969,7 +1969,7 @@ microblaze_elf_relax_section (bfd *abfd, + efix = calc_fixup (target_address, 0, sec); + + /* Validate the in-band val. */ +- val = bfd_get_32 (abfd, contents + irel->r_offset); ++ val = bfd_get_64 (abfd, contents + irel->r_offset); + if (val != irel->r_addend && ELF64_R_TYPE (irel->r_info) == R_MICROBLAZE_32_NONE) { + fprintf(stderr, "%d: CORRUPT relax reloc %x %lx\n", __LINE__, val, irel->r_addend); + } +diff --git a/gas/config/tc-microblaze.c b/gas/config/tc-microblaze.c +index fa437b6..46df32e 100644 +--- a/gas/config/tc-microblaze.c ++++ b/gas/config/tc-microblaze.c +@@ -402,7 +402,6 @@ pseudo_typeS md_pseudo_table[] = + {"ent", s_func, 0}, /* Treat ent as function entry point. */ + {"end", microblaze_s_func, 1}, /* Treat end as function end point. */ + {"gpword", s_rva, 4}, /* gpword label => store resolved label address in data section. */ +- {"gpdword", s_rva, 8}, /* gpword label => store resolved label address in data section. */ + {"weakext", microblaze_s_weakext, 0}, + {"rodata", microblaze_s_rdata, 0}, + {"sdata2", microblaze_s_rdata, 1}, +@@ -2482,15 +2481,71 @@ md_apply_fix (fixS * fixP, + /* Don't do anything if the symbol is not defined. */ + if (fixP->fx_addsy == NULL || S_IS_DEFINED (fixP->fx_addsy)) + { ++ if ((fixP->fx_r_type == BFD_RELOC_RVA) && (microblaze_arch_size == 64)) ++ { ++ if (target_big_endian) ++ { ++ buf[0] |= ((val >> 56) & 0xff); ++ buf[1] |= ((val >> 48) & 0xff); ++ buf[2] |= ((val >> 40) & 0xff); ++ buf[3] |= ((val >> 32) & 0xff); ++ buf[4] |= ((val >> 24) & 0xff); ++ buf[5] |= ((val >> 16) & 0xff); ++ buf[6] |= ((val >> 8) & 0xff); ++ buf[7] |= (val & 0xff); ++ } ++ else ++ { ++ buf[7] |= ((val >> 56) & 0xff); ++ buf[6] |= ((val >> 48) & 0xff); ++ buf[5] |= ((val >> 40) & 0xff); ++ buf[4] |= ((val >> 32) & 0xff); ++ buf[3] |= ((val >> 24) & 0xff); ++ buf[2] |= ((val >> 16) & 0xff); ++ buf[1] |= ((val >> 8) & 0xff); ++ buf[0] |= (val & 0xff); ++ } ++ } ++ else { ++ if (target_big_endian) ++ { ++ buf[0] |= ((val >> 24) & 0xff); ++ buf[1] |= ((val >> 16) & 0xff); ++ buf[2] |= ((val >> 8) & 0xff); ++ buf[3] |= (val & 0xff); ++ } ++ else ++ { ++ buf[3] |= ((val >> 24) & 0xff); ++ buf[2] |= ((val >> 16) & 0xff); ++ buf[1] |= ((val >> 8) & 0xff); ++ buf[0] |= (val & 0xff); ++ } ++ } ++ } ++ break; ++ ++ case BFD_RELOC_MICROBLAZE_EA64: ++ /* Don't do anything if the symbol is not defined. */ ++ if (fixP->fx_addsy == NULL || S_IS_DEFINED (fixP->fx_addsy)) ++ { + if (target_big_endian) + { +- buf[0] |= ((val >> 24) & 0xff); +- buf[1] |= ((val >> 16) & 0xff); +- buf[2] |= ((val >> 8) & 0xff); +- buf[3] |= (val & 0xff); ++ buf[0] |= ((val >> 56) & 0xff); ++ buf[1] |= ((val >> 48) & 0xff); ++ buf[2] |= ((val >> 40) & 0xff); ++ buf[3] |= ((val >> 32) & 0xff); ++ buf[4] |= ((val >> 24) & 0xff); ++ buf[5] |= ((val >> 16) & 0xff); ++ buf[6] |= ((val >> 8) & 0xff); ++ buf[7] |= (val & 0xff); + } + else + { ++ buf[7] |= ((val >> 56) & 0xff); ++ buf[6] |= ((val >> 48) & 0xff); ++ buf[5] |= ((val >> 40) & 0xff); ++ buf[4] |= ((val >> 32) & 0xff); + buf[3] |= ((val >> 24) & 0xff); + buf[2] |= ((val >> 16) & 0xff); + buf[1] |= ((val >> 8) & 0xff); +@@ -2611,6 +2666,8 @@ md_apply_fix (fixS * fixP, + fixP->fx_r_type = BFD_RELOC_MICROBLAZE_64_NONE; + else if (fixP->fx_r_type == BFD_RELOC_32) + fixP->fx_r_type = BFD_RELOC_MICROBLAZE_32_NONE; ++ else if(fixP->fx_r_type == BFD_RELOC_MICROBLAZE_EA64) ++ fixP->fx_r_type = BFD_RELOC_MICROBLAZE_EA64; + else + fixP->fx_r_type = BFD_RELOC_NONE; + fixP->fx_addsy = section_symbol (absolute_section); +@@ -2882,6 +2939,7 @@ tc_gen_reloc (asection * section ATTRIBUTE_UNUSED, fixS * fixp) + case BFD_RELOC_MICROBLAZE_32_SYM_OP_SYM: + case BFD_RELOC_MICROBLAZE_64_GOTPC: + case BFD_RELOC_MICROBLAZE_64_GPC: ++ case BFD_RELOC_MICROBLAZE_EA64: + case BFD_RELOC_MICROBLAZE_64: + case BFD_RELOC_MICROBLAZE_64_PCREL: + case BFD_RELOC_MICROBLAZE_64_GOT: +@@ -3027,10 +3085,10 @@ cons_fix_new_microblaze (fragS * frag, + r = BFD_RELOC_32; + break; + case 8: +- if (microblaze_arch_size == 64) ++ /*if (microblaze_arch_size == 64) + r = BFD_RELOC_32; +- else +- r = BFD_RELOC_64; ++ else*/ ++ r = BFD_RELOC_MICROBLAZE_EA64; + break; + default: + as_bad (_("unsupported BFD relocation size %u"), size); +diff --git a/opcodes/microblaze-dis.c b/opcodes/microblaze-dis.c +index 20ea6a8..f679a43 100644 +--- a/opcodes/microblaze-dis.c ++++ b/opcodes/microblaze-dis.c +@@ -61,7 +61,7 @@ get_field_imml (long instr) + { + char tmpstr[25]; + +- sprintf (tmpstr, "%d", (short)((instr & IMML_MASK) >> IMM_LOW)); ++ sprintf (tmpstr, "%d", (int)((instr & IMML_MASK) >> IMM_LOW)); + return (strdup (tmpstr)); + } + diff --git a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/binutils/binutils-2.32/0022-Adding-new-relocation-to-support-64bit-rodata.patch b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/binutils/binutils-2.32/0022-Adding-new-relocation-to-support-64bit-rodata.patch new file mode 100644 index 00000000..aec793d9 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/binutils/binutils-2.32/0022-Adding-new-relocation-to-support-64bit-rodata.patch @@ -0,0 +1,166 @@ +From 3eb0c068ad5a698007341b32c82d9e7ac6cabc49 Mon Sep 17 00:00:00 2001 +From: Nagaraju Mekala +Date: Sat, 13 Oct 2018 21:17:01 +0530 +Subject: [PATCH] Adding new relocation to support 64bit rodata + +Signed-off-by: Mahesh Bodapati +Signed-off-by: Nagaraju Mekala + +--- + bfd/elf64-microblaze.c | 11 +++++++++-- + gas/config/tc-microblaze.c | 49 ++++++++++++++++++++++++++++++++++++++++++---- + 2 files changed, 54 insertions(+), 6 deletions(-) + +diff --git a/bfd/elf64-microblaze.c b/bfd/elf64-microblaze.c +index 40f10aa..4d9b906 100644 +--- a/bfd/elf64-microblaze.c ++++ b/bfd/elf64-microblaze.c +@@ -1461,6 +1461,7 @@ microblaze_elf_relocate_section (bfd *output_bfd, + case (int) R_MICROBLAZE_64_PCREL : + case (int) R_MICROBLAZE_64: + case (int) R_MICROBLAZE_32: ++ case (int) R_MICROBLAZE_IMML_64: + { + /* r_symndx will be STN_UNDEF (zero) only for relocs against symbols + from removed linkonce sections, or sections discarded by +@@ -1470,6 +1471,8 @@ microblaze_elf_relocate_section (bfd *output_bfd, + relocation += addend; + if (r_type == R_MICROBLAZE_32)// || r_type == R_MICROBLAZE_IMML_64) + bfd_put_32 (input_bfd, relocation, contents + offset); ++ else if (r_type == R_MICROBLAZE_IMML_64) ++ bfd_put_64 (input_bfd, relocation, contents + offset); + else + { + if (r_type == R_MICROBLAZE_64_PCREL) +@@ -1547,7 +1550,7 @@ microblaze_elf_relocate_section (bfd *output_bfd, + } + else + { +- if (r_type == R_MICROBLAZE_32) ++ if (r_type == R_MICROBLAZE_32 || r_type == R_MICROBLAZE_IMML_64) + { + outrel.r_info = ELF64_R_INFO (0, R_MICROBLAZE_REL); + outrel.r_addend = relocation + addend; +@@ -1573,6 +1576,8 @@ microblaze_elf_relocate_section (bfd *output_bfd, + relocation += addend; + if (r_type == R_MICROBLAZE_32) + bfd_put_32 (input_bfd, relocation, contents + offset); ++ else if (r_type == R_MICROBLAZE_IMML_64) ++ bfd_put_64 (input_bfd, relocation, contents + offset + endian); + else + { + if (r_type == R_MICROBLAZE_64_PCREL) +@@ -2085,7 +2090,8 @@ microblaze_elf_relax_section (bfd *abfd, + microblaze_bfd_write_imm_value_32 (abfd, ocontents + irelscan->r_offset, + irelscan->r_addend); + } +- if (ELF64_R_TYPE (irelscan->r_info) == (int) R_MICROBLAZE_32) ++ if (ELF64_R_TYPE (irelscan->r_info) == (int) R_MICROBLAZE_32 ++ || ELF64_R_TYPE (irelscan->r_info) == (int) R_MICROBLAZE_IMML_64) + { + isym = isymbuf + ELF64_R_SYM (irelscan->r_info); + +@@ -2591,6 +2597,7 @@ microblaze_elf_check_relocs (bfd * abfd, + case R_MICROBLAZE_64: + case R_MICROBLAZE_64_PCREL: + case R_MICROBLAZE_32: ++ case R_MICROBLAZE_IMML_64: + { + if (h != NULL && !bfd_link_pic (info)) + { +diff --git a/gas/config/tc-microblaze.c b/gas/config/tc-microblaze.c +index 46df32e..c6d2e4c 100644 +--- a/gas/config/tc-microblaze.c ++++ b/gas/config/tc-microblaze.c +@@ -1119,6 +1119,13 @@ md_assemble (char * str) + as_fatal (_("smi pseudo instruction should not use a label in imm field")); + if(streq (name, "lli") || streq (name, "sli")) + opc = str_microblaze_64; ++ else if ((microblaze_arch_size == 64) && ((streq (name, "lbui") ++ || streq (name, "lhui") || streq (name, "lwi") || streq (name, "sbi") ++ || streq (name, "shi") || streq (name, "swi")))) ++ { ++ opc = str_microblaze_64; ++ subtype = opcode->inst_offset_type; ++ } + else if (reg2 == REG_ROSDP) + opc = str_microblaze_ro_anchor; + else if (reg2 == REG_RWSDP) +@@ -1182,7 +1189,10 @@ md_assemble (char * str) + inst |= (immed << IMM_LOW) & IMM_MASK; + } + } +- else if (streq (name, "lli") || streq (name, "sli")) ++ else if (streq (name, "lli") || streq (name, "sli") || ((microblaze_arch_size == 64) ++ && ((streq (name, "lbui")) || streq (name, "lhui") ++ || streq (name, "lwi") || streq (name, "sbi") ++ || streq (name, "shi") || streq (name, "swi")))) + { + temp = immed & 0xFFFFFF8000; + if (temp != 0 && temp != 0xFFFFFF8000) +@@ -1794,6 +1804,11 @@ md_assemble (char * str) + + if (exp.X_md != 0) + subtype = get_imm_otype(exp.X_md); ++ else if (streq (name, "brealid") || streq (name, "breaid") || streq (name, "breai")) ++ { ++ opc = str_microblaze_64; ++ subtype = opcode->inst_offset_type; ++ } + else + subtype = opcode->inst_offset_type; + +@@ -1811,6 +1826,31 @@ md_assemble (char * str) + output = frag_more (isize); + immed = exp.X_add_number; + } ++ if (streq (name, "brealid") || streq (name, "breaid") || streq (name, "breai")) ++ { ++ temp = immed & 0xFFFFFF8000; ++ if (temp != 0 && temp != 0xFFFFFF8000) ++ { ++ /* Needs an immediate inst. */ ++ opcode1 = (struct op_code_struct *) hash_find (opcode_hash_control, "imml"); ++ if (opcode1 == NULL) ++ { ++ as_bad (_("unknown opcode \"%s\""), "imml"); ++ return; ++ } ++ inst1 = opcode1->bit_sequence; ++ inst1 |= ((immed & 0xFFFFFFFFFFFF0000L) >> 16) & IMML_MASK; ++ output[0] = INST_BYTE0 (inst1); ++ output[1] = INST_BYTE1 (inst1); ++ output[2] = INST_BYTE2 (inst1); ++ output[3] = INST_BYTE3 (inst1); ++ output = frag_more (isize); ++ } ++ inst |= (reg1 << RD_LOW) & RD_MASK; ++ inst |= (immed << IMM_LOW) & IMM_MASK; ++ } ++ else ++ { + + temp = immed & 0xFFFF8000; + if ((temp != 0) && (temp != 0xFFFF8000)) +@@ -1834,6 +1874,7 @@ md_assemble (char * str) + + inst |= (reg1 << RD_LOW) & RD_MASK; + inst |= (immed << IMM_LOW) & IMM_MASK; ++ } + break; + + case INST_TYPE_R2: +@@ -3085,10 +3126,10 @@ cons_fix_new_microblaze (fragS * frag, + r = BFD_RELOC_32; + break; + case 8: +- /*if (microblaze_arch_size == 64) +- r = BFD_RELOC_32; +- else*/ ++ if (microblaze_arch_size == 64) + r = BFD_RELOC_MICROBLAZE_EA64; ++ else ++ r = BFD_RELOC_64; + break; + default: + as_bad (_("unsupported BFD relocation size %u"), size); diff --git a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/binutils/binutils-2.32/0023-fixing-the-.bss-relocation-issue.patch b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/binutils/binutils-2.32/0023-fixing-the-.bss-relocation-issue.patch new file mode 100644 index 00000000..cd54cae4 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/binutils/binutils-2.32/0023-fixing-the-.bss-relocation-issue.patch @@ -0,0 +1,76 @@ +From 52f6c56353aad424dfdaf713e0192f8fc9c874f4 Mon Sep 17 00:00:00 2001 +From: Nagaraju Mekala +Date: Wed, 24 Oct 2018 12:34:37 +0530 +Subject: [PATCH] fixing the .bss relocation issue + +Signed-off-by: Mahesh Bodapati +Signed-off-by: Nagaraju Mekala + +--- + bfd/elf64-microblaze.c | 18 ++++++++++++------ + 1 file changed, 12 insertions(+), 6 deletions(-) + +diff --git a/bfd/elf64-microblaze.c b/bfd/elf64-microblaze.c +index 4d9b906..184b7d5 100644 +--- a/bfd/elf64-microblaze.c ++++ b/bfd/elf64-microblaze.c +@@ -1480,7 +1480,7 @@ microblaze_elf_relocate_section (bfd *output_bfd, + + input_section->output_offset + + offset + INST_WORD_SIZE); + unsigned long insn = bfd_get_32 (input_bfd, contents + offset +endian); +- if (insn == 0xb2000000 || insn == 0xb2ffffff) ++ if ((insn & 0xff000000) == 0xb2000000) + { + insn &= ~0x00ffffff; + insn |= (relocation >> 16) & 0xffffff; +@@ -1593,7 +1593,7 @@ microblaze_elf_relocate_section (bfd *output_bfd, + + offset + INST_WORD_SIZE); + } + unsigned long insn = bfd_get_32 (input_bfd, contents + offset +endian); +- if (insn == 0xb2000000 || insn == 0xb2ffffff) ++ if ((insn & 0xff000000) == 0xb2000000) + { + insn &= ~0x00ffffff; + insn |= (relocation >> 16) & 0xffffff; +@@ -1722,7 +1722,7 @@ microblaze_bfd_write_imm_value_32 (bfd *abfd, bfd_byte *bfd_addr, bfd_vma val) + { + unsigned long instr = bfd_get_32 (abfd, bfd_addr); + +- if (instr == 0xb2000000 || instr == 0xb2ffffff) ++ if ((instr & 0xff000000) == 0xb2000000) + { + instr &= ~0x00ffffff; + instr |= (val & 0xffffff); +@@ -1745,7 +1745,7 @@ microblaze_bfd_write_imm_value_64 (bfd *abfd, bfd_byte *bfd_addr, bfd_vma val) + unsigned long instr_lo; + + instr_hi = bfd_get_32 (abfd, bfd_addr); +- if (instr_hi == 0xb2000000 || instr_hi == 0xb2ffffff) ++ if ((instr_hi & 0xff000000) == 0xb2000000) + { + instr_hi &= ~0x00ffffff; + instr_hi |= (val >> 16) & 0xffffff; +@@ -2238,7 +2238,10 @@ microblaze_elf_relax_section (bfd *abfd, + unsigned long instr_lo = bfd_get_32 (abfd, ocontents + + irelscan->r_offset + + INST_WORD_SIZE); +- immediate = (instr_hi & 0x0000ffff) << 16; ++ if ((instr_hi & 0xff000000) == 0xb2000000) ++ immediate = (instr_hi & 0x00ffffff) << 24; ++ else ++ immediate = (instr_hi & 0x0000ffff) << 16; + immediate |= (instr_lo & 0x0000ffff); + offset = calc_fixup (irelscan->r_addend, 0, sec); + immediate -= offset; +@@ -2282,7 +2285,10 @@ microblaze_elf_relax_section (bfd *abfd, + unsigned long instr_lo = bfd_get_32 (abfd, ocontents + + irelscan->r_offset + + INST_WORD_SIZE); +- immediate = (instr_hi & 0x0000ffff) << 16; ++ if ((instr_hi & 0xff000000) == 0xb2000000) ++ immediate = (instr_hi & 0x00ffffff) << 24; ++ else ++ immediate = (instr_hi & 0x0000ffff) << 16; + immediate |= (instr_lo & 0x0000ffff); + target_address = immediate; + offset = calc_fixup (target_address, 0, sec); diff --git a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/binutils/binutils-2.32/0024-Fixed-the-bug-in-the-R_MICROBLAZE_64_NONE-relocation.patch b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/binutils/binutils-2.32/0024-Fixed-the-bug-in-the-R_MICROBLAZE_64_NONE-relocation.patch new file mode 100644 index 00000000..a4f8257d --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/binutils/binutils-2.32/0024-Fixed-the-bug-in-the-R_MICROBLAZE_64_NONE-relocation.patch @@ -0,0 +1,44 @@ +From ed3e6fad3e2a626fc987e9c7477f51d03d2b4512 Mon Sep 17 00:00:00 2001 +From: Nagaraju Mekala +Date: Wed, 28 Nov 2018 14:00:29 +0530 +Subject: [PATCH] Fixed the bug in the R_MICROBLAZE_64_NONE relocation. It was + adjusting only lower 16bits. + +Signed-off-by: Mahesh Bodapati +Signed-off-by: Nagaraju Mekala + +--- + bfd/elf32-microblaze.c | 4 ++-- + bfd/elf64-microblaze.c | 4 ++-- + 2 files changed, 4 insertions(+), 4 deletions(-) + +diff --git a/bfd/elf32-microblaze.c b/bfd/elf32-microblaze.c +index 035e71f..2d8c062 100644 +--- a/bfd/elf32-microblaze.c ++++ b/bfd/elf32-microblaze.c +@@ -2022,8 +2022,8 @@ microblaze_elf_relax_section (bfd *abfd, + sfix = calc_fixup (irel->r_offset + INST_WORD_SIZE, 0, sec); + efix = calc_fixup (target_address, 0, sec); + irel->r_addend -= (efix - sfix); +- microblaze_bfd_write_imm_value_32 (abfd, contents + irel->r_offset +- + INST_WORD_SIZE, irel->r_addend); ++ microblaze_bfd_write_imm_value_64 (abfd, contents + irel->r_offset, ++ irel->r_addend); + } + break; + } +diff --git a/bfd/elf64-microblaze.c b/bfd/elf64-microblaze.c +index 184b7d5..ef6a870 100644 +--- a/bfd/elf64-microblaze.c ++++ b/bfd/elf64-microblaze.c +@@ -2017,8 +2017,8 @@ microblaze_elf_relax_section (bfd *abfd, + sfix = calc_fixup (irel->r_offset + INST_WORD_SIZE, 0, sec); + efix = calc_fixup (target_address, 0, sec); + irel->r_addend -= (efix - sfix); +- microblaze_bfd_write_imm_value_32 (abfd, contents + irel->r_offset +- + INST_WORD_SIZE, irel->r_addend); ++ microblaze_bfd_write_imm_value_64 (abfd, contents + irel->r_offset, ++ irel->r_addend); + } + break; + } diff --git a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/binutils/binutils-2.32/0025-Patch-MicroBlaze-fixed-Build-issue-which-are-due-to-.patch b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/binutils/binutils-2.32/0025-Patch-MicroBlaze-fixed-Build-issue-which-are-due-to-.patch new file mode 100644 index 00000000..fec19b6b --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/binutils/binutils-2.32/0025-Patch-MicroBlaze-fixed-Build-issue-which-are-due-to-.patch @@ -0,0 +1,67 @@ +From b8bd638f71649980e114548d8eeecba34683af42 Mon Sep 17 00:00:00 2001 +From: Mahesh Bodapati +Date: Sun, 2 Dec 2018 14:49:14 +0530 +Subject: [PATCH] fixed Build issue which are due to conflicts in patches. + +Signed-off-by: Mahesh Bodapati +Signed-off-by: Nagaraju Mekala + +--- + bfd/elf32-microblaze.c | 1 + + bfd/elf64-microblaze.c | 12 ++++++------ + gas/config/tc-microblaze.c | 4 ++-- + 3 files changed, 9 insertions(+), 8 deletions(-) + +diff --git a/bfd/elf32-microblaze.c b/bfd/elf32-microblaze.c +index 2d8c062..6a795c5 100644 +--- a/bfd/elf32-microblaze.c ++++ b/bfd/elf32-microblaze.c +@@ -1996,6 +1996,7 @@ microblaze_elf_relax_section (bfd *abfd, + /* This was a PC-relative instruction that was + completely resolved. */ + int sfix, efix; ++ unsigned int val; + bfd_vma target_address; + target_address = irel->r_addend + irel->r_offset; + sfix = calc_fixup (irel->r_offset, 0, sec); +diff --git a/bfd/elf64-microblaze.c b/bfd/elf64-microblaze.c +index ef6a870..bed534e 100644 +--- a/bfd/elf64-microblaze.c ++++ b/bfd/elf64-microblaze.c +@@ -2854,14 +2854,14 @@ microblaze_elf_adjust_dynamic_symbol (struct bfd_link_info *info, + /* If this is a weak symbol, and there is a real definition, the + processor independent code will have arranged for us to see the + real definition first, and we can just use the same value. */ +- if (h->u.weakdef != NULL) ++ if (h->is_weakalias) + { +- BFD_ASSERT (h->u.weakdef->root.type == bfd_link_hash_defined +- || h->u.weakdef->root.type == bfd_link_hash_defweak); +- h->root.u.def.section = h->u.weakdef->root.u.def.section; +- h->root.u.def.value = h->u.weakdef->root.u.def.value; ++ struct elf_link_hash_entry *def = weakdef (h); ++ BFD_ASSERT (def->root.type == bfd_link_hash_defined); ++ h->root.u.def.section = def->root.u.def.section; ++ h->root.u.def.value = def->root.u.def.value; + return TRUE; +- } ++ } + + /* This is a reference to a symbol defined by a dynamic object which + is not a function. */ +diff --git a/gas/config/tc-microblaze.c b/gas/config/tc-microblaze.c +index c6d2e4c..b3e49f0 100644 +--- a/gas/config/tc-microblaze.c ++++ b/gas/config/tc-microblaze.c +@@ -118,9 +118,9 @@ const relax_typeS md_relax_table[] = + { 0x7fffffff, 0x80000000, INST_WORD_SIZE*2, 0 }, /* 15: TLSGOTTPREL_OFFSET. */ + { 0x7fffffff, 0x80000000, INST_WORD_SIZE*2, 0 }, /* 16: TLSTPREL_OFFSET. */ + { 0x7fffffff, 0x80000000, INST_WORD_SIZE*2, 0 }, /* 17: TEXT_OFFSET. */ +- { 0x7fffffff, 0x80000000, INST_WORD_SIZE*2, 0 } /* 18: TEXT_PC_OFFSET. */ ++ { 0x7fffffff, 0x80000000, INST_WORD_SIZE*2, 0 }, /* 18: TEXT_PC_OFFSET. */ + // { 0x7fffffff, 0x80000000, INST_WORD_SIZE*2, 0 } /* 16: TLSTPREL_OFFSET. */ +- { 0x7fffffffffffffff, 0x8000000000000000, INST_WORD_SIZE, 0 } /* 19: DEFINED_64_OFFSET. */ ++ { 0x7fffffffffffffff, 0x8000000000000000, INST_WORD_SIZE, 0 }, /* 19: DEFINED_64_OFFSET. */ + { 0x7fffffffffffffff, 0x8000000000000000, INST_WORD_SIZE*2, 0 } /* 20: DEFINED_64_PC_OFFSET. */ + }; + diff --git a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/binutils/binutils-2.32/0026-Patch-Microblaze-changes-of-PR22458-failure-to-choos.patch b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/binutils/binutils-2.32/0026-Patch-Microblaze-changes-of-PR22458-failure-to-choos.patch new file mode 100644 index 00000000..cd6965d7 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/binutils/binutils-2.32/0026-Patch-Microblaze-changes-of-PR22458-failure-to-choos.patch @@ -0,0 +1,31 @@ +From cbe98e5a0cbc2337bf25d6b3f9dabcae38b95952 Mon Sep 17 00:00:00 2001 +From: Mahesh Bodapati +Date: Tue, 26 Feb 2019 17:31:41 +0530 +Subject: [PATCH] changes of "PR22458, failure to choose a matching ELF target" + is causing "Multiple Prevailing definition errors",added check for best_match + elf. + +Signed-off-by: Mahesh Bodapati +Signed-off-by: Nagaraju Mekala + +--- + bfd/format.c | 5 +++++ + 1 file changed, 5 insertions(+) + +diff --git a/bfd/format.c b/bfd/format.c +index 97a9229..3a74cc4 100644 +--- a/bfd/format.c ++++ b/bfd/format.c +@@ -292,7 +292,12 @@ bfd_check_format_matches (bfd *abfd, bfd_format format, char ***matching) + + /* Don't check the default target twice. */ + if (*target == &binary_vec ++#if !BFD_SUPPORTS_PLUGINS + || (!abfd->target_defaulted && *target == save_targ)) ++#else ++ || (!abfd->target_defaulted && *target == save_targ) ++ || (*target)->match_priority > best_match) ++#endif + continue; + + /* If we already tried a match, the bfd is modified and may diff --git a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/binutils/binutils-2.32/0029-Patch-Microblaze-Binutils-security-check-is-causing-.patch b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/binutils/binutils-2.32/0029-Patch-Microblaze-Binutils-security-check-is-causing-.patch new file mode 100644 index 00000000..f293f5cf --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/binutils/binutils-2.32/0029-Patch-Microblaze-Binutils-security-check-is-causing-.patch @@ -0,0 +1,33 @@ +From b1e425aed65150d7ce9ddb119f4b94969fe4043e Mon Sep 17 00:00:00 2001 +From: Mahesh Bodapati +Date: Mon, 11 Mar 2019 14:23:58 +0530 +Subject: [PATCH] Binutils security check is causing build error for windows + builds.commenting for now. + +Signed-off-by: Mahesh Bodapati +Signed-off-by: Nagaraju Mekala + +--- + bfd/elf-attrs.c | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/bfd/elf-attrs.c b/bfd/elf-attrs.c +index bfe135e..feb5cb3 100644 +--- a/bfd/elf-attrs.c ++++ b/bfd/elf-attrs.c +@@ -440,6 +440,7 @@ _bfd_elf_parse_attributes (bfd *abfd, Elf_Internal_Shdr * hdr) + /* PR 17512: file: 2844a11d. */ + if (hdr->sh_size == 0) + return; ++ #if 0 + if (hdr->sh_size > bfd_get_file_size (abfd)) + { + /* xgettext:c-format */ +@@ -448,6 +449,7 @@ _bfd_elf_parse_attributes (bfd *abfd, Elf_Internal_Shdr * hdr) + bfd_set_error (bfd_error_invalid_operation); + return; + } ++ #endif + + contents = (bfd_byte *) bfd_malloc (hdr->sh_size + 1); + if (!contents) diff --git a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/binutils/binutils-2.32/0030-fixing-the-long-long-long-mingw-toolchain-issue.patch b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/binutils/binutils-2.32/0030-fixing-the-long-long-long-mingw-toolchain-issue.patch new file mode 100644 index 00000000..7e3accad --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/binutils/binutils-2.32/0030-fixing-the-long-long-long-mingw-toolchain-issue.patch @@ -0,0 +1,57 @@ +From 1eec84c155aeaeead673310f83293853f01b578d Mon Sep 17 00:00:00 2001 +From: Nagaraju Mekala +Date: Thu, 29 Nov 2018 17:59:25 +0530 +Subject: [PATCH] fixing the long & long long mingw toolchain issue + +Signed-off-by: Mahesh Bodapati +Signed-off-by: Nagaraju Mekala + +--- + gas/config/tc-microblaze.c | 10 +++++----- + opcodes/microblaze-opc.h | 4 ++-- + 2 files changed, 7 insertions(+), 7 deletions(-) + +diff --git a/gas/config/tc-microblaze.c b/gas/config/tc-microblaze.c +index b3e49f0..5b506d3 100644 +--- a/gas/config/tc-microblaze.c ++++ b/gas/config/tc-microblaze.c +@@ -783,7 +783,7 @@ parse_imm (char * s, expressionS * e, offsetT min, offsetT max) + } + + static char * +-parse_imml (char * s, expressionS * e, long min, long max) ++parse_imml (char * s, expressionS * e, long long min, long long max) + { + char *new_pointer; + char *atp; +@@ -834,11 +834,11 @@ parse_imml (char * s, expressionS * e, long min, long max) + ; /* An error message has already been emitted. */ + else if ((e->X_op != O_constant && e->X_op != O_symbol) ) + as_fatal (_("operand must be a constant or a label")); +- else if ((e->X_op == O_constant) && ((long) e->X_add_number < min +- || (long) e->X_add_number > max)) ++ else if ((e->X_op == O_constant) && ((long long) e->X_add_number < min ++ || (long long) e->X_add_number > max)) + { +- as_fatal (_("operand must be absolute in range %ld..%ld, not %ld"), +- min, max, (long) e->X_add_number); ++ as_fatal (_("operand must be absolute in range %lld..%lld, not %lld"), ++ min, max, (long long) e->X_add_number); + } + + if (atp) +diff --git a/opcodes/microblaze-opc.h b/opcodes/microblaze-opc.h +index 824afc0..d59ee0a 100644 +--- a/opcodes/microblaze-opc.h ++++ b/opcodes/microblaze-opc.h +@@ -585,8 +585,8 @@ char pvr_register_prefix[] = "rpvr"; + #define MIN_IMM6_WIDTH ((int) 0x00000001) + #define MAX_IMM6_WIDTH ((int) 0x00000040) + +-#define MIN_IMML ((long) 0xffffff8000000000L) +-#define MAX_IMML ((long) 0x0000007fffffffffL) ++#define MIN_IMML ((long long) 0xffffff8000000000L) ++#define MAX_IMML ((long long) 0x0000007fffffffffL) + + #endif /* MICROBLAZE_OPC */ + diff --git a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/binutils/binutils-2.32/0031-fixing-the-_STACK_SIZE-issue-with-the-flto-flag.patch b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/binutils/binutils-2.32/0031-fixing-the-_STACK_SIZE-issue-with-the-flto-flag.patch new file mode 100644 index 00000000..8c54f761 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/binutils/binutils-2.32/0031-fixing-the-_STACK_SIZE-issue-with-the-flto-flag.patch @@ -0,0 +1,55 @@ +From e28b33db95e6b71afe2eaca9d7090b3bfc20f08e Mon Sep 17 00:00:00 2001 +From: Nagaraju +Date: Wed, 20 Mar 2019 11:42:07 +0530 +Subject: [PATCH] fixing the _STACK_SIZE issue with the flto flag + +Signed-off-by: Nagaraju Mekala + +--- + ld/scripttempl/elfmicroblaze.sc | 12 ++++++------ + 1 file changed, 6 insertions(+), 6 deletions(-) + +diff --git a/ld/scripttempl/elfmicroblaze.sc b/ld/scripttempl/elfmicroblaze.sc +index 30b9c28..6be0f4e 100644 +--- a/ld/scripttempl/elfmicroblaze.sc ++++ b/ld/scripttempl/elfmicroblaze.sc +@@ -63,9 +63,9 @@ ${RELOCATING+${LIB_SEARCH_DIRS}} + + ${RELOCATING+ENTRY (${ENTRY})} + +-${RELOCATING+_TEXT_START_ADDR = DEFINED(_TEXT_START_ADDR) ? _TEXT_START_ADDR : 0x50; +-_HEAP_SIZE = DEFINED(_HEAP_SIZE) ? _HEAP_SIZE : 0x0; +-_STACK_SIZE = DEFINED(_STACK_SIZE) ? _STACK_SIZE : 0x400;} ++${RELOCATING+_DEF_TEXT_START_ADDR = DEFINED(_TEXT_START_ADDR) ? _TEXT_START_ADDR : 0x50; ++_DEF_HEAP_SIZE = DEFINED(_HEAP_SIZE) ? _HEAP_SIZE : 0x0; ++_DEF_STACK_SIZE = DEFINED(_STACK_SIZE) ? _STACK_SIZE : 0x400;} + + SECTIONS + { +@@ -75,7 +75,7 @@ SECTIONS + .vectors.debug_sw_break 0x18 : { KEEP (*(.vectors.debug_sw_break)) } = 0 + .vectors.hw_exception 0x20 : { KEEP (*(.vectors.hw_exception)) } = 0 + +- ${RELOCATING+. = _TEXT_START_ADDR;} ++ ${RELOCATING+. = _DEF_TEXT_START_ADDR;} + + ${RELOCATING+ _ftext = .;} + .text : { +@@ -207,7 +207,7 @@ SECTIONS + .heap : { + ${RELOCATING+ _heap = .;} + ${RELOCATING+ _heap_start = .;} +- ${RELOCATING+ . += _HEAP_SIZE;} ++ ${RELOCATING+ . += _DEF_HEAP_SIZE;} + ${RELOCATING+ _heap_end = .;} + } + +@@ -215,7 +215,7 @@ SECTIONS + + .stack : { + ${RELOCATING+ _stack_end = .;} +- ${RELOCATING+ . += _STACK_SIZE;} ++ ${RELOCATING+ . += _DEF_STACK_SIZE;} + ${RELOCATING+ . = ALIGN(. != 0 ? 8 : 1);} + ${RELOCATING+ _stack = .;} + ${RELOCATING+ _end = .;} diff --git a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-7/0001-Revert.patch b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-7/0001-Revert.patch deleted file mode 100644 index 93af6514..00000000 --- a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-7/0001-Revert.patch +++ /dev/null @@ -1,42 +0,0 @@ -From 12cd383fbef719cc1a84cc80ff171073409a8557 Mon Sep 17 00:00:00 2001 -From: eager -Date: Sat, 27 May 2017 18:29:40 +0000 -Subject: [PATCH] Revert: 2016-01-21 Ajit Agarwal - - - See https://gcc.gnu.org/ml/gcc/2017-05/msg00221.html. - - * config/microblaze/microblaze.h - (FIXED_REGISTERS): Update in macro. - (CALL_USED_REGISTERS): Update in macro. - -git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@248540 138bc75d-0d04-0410-961f-82ee72b054a4 -Upstream-Status: Backport [from post gcc-7] ---- - gcc/config/microblaze/microblaze.h | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/gcc/config/microblaze/microblaze.h b/gcc/config/microblaze/microblaze.h -index 66e4ef5c3d..2c9ece1d6c 100644 ---- a/gcc/config/microblaze/microblaze.h -+++ b/gcc/config/microblaze/microblaze.h -@@ -269,14 +269,14 @@ extern enum pipeline_type microblaze_pipe; - #define FIXED_REGISTERS \ - { \ - 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, \ -- 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \ -+ 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \ - 1, 1, 1, 1 \ - } - - #define CALL_USED_REGISTERS \ - { \ - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, \ -- 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \ -+ 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \ - 1, 1, 1, 1 \ - } - #define GP_REG_FIRST 0 --- -2.14.2 - diff --git a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-7/0002-microblaze.md-Improve-adddi3-and-subdi3-insn-definit.patch b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-7/0002-microblaze.md-Improve-adddi3-and-subdi3-insn-definit.patch deleted file mode 100644 index 03ea8b19..00000000 --- a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-7/0002-microblaze.md-Improve-adddi3-and-subdi3-insn-definit.patch +++ /dev/null @@ -1,66 +0,0 @@ -From 2d90c10cf4d95999f68f474305828c7dfc51af18 Mon Sep 17 00:00:00 2001 -From: Nathan Rossi -Date: Thu, 12 Nov 2015 16:09:31 +1000 -Subject: [PATCH] microblaze.md: Improve 'adddi3' and 'subdi3' insn definitions - -Change adddi3 to handle DI immediates as the second operand, this -requires modification to the output template however reduces the need to -specify seperate templates for 16-bit positive/negative immediate -operands. The use of 32-bit immediates for the addi and addic -instructions is handled by the assembler, which will emit the imm -instructions when required. This conveniently handles the optimizable -cases where the immediate constant value does not need the higher half -words of the operands upper/lower words. - -Change the constraints of the subdi3 instruction definition such that it -does not match the second operand as an immediate value. This is because -there is no definition to handle this case nor is it possible to -implement purely with instructions as microblaze does not provide an -instruction to perform a forward arithmetic subtraction (it only -provides reverse 'rD = IMM - rA'). - -Signed-off-by: Nathan Rossi -Upstream-Status: Unsubmitted ---- - gcc/config/microblaze/microblaze.md | 13 ++++++------- - 1 file changed, 6 insertions(+), 7 deletions(-) - -diff --git a/gcc/config/microblaze/microblaze.md b/gcc/config/microblaze/microblaze.md -index b3a0011fd7..8a372d7ebb 100644 ---- a/gcc/config/microblaze/microblaze.md -+++ b/gcc/config/microblaze/microblaze.md -@@ -483,17 +483,16 @@ - ;; Adding 2 DI operands in register or reg/imm - - (define_insn "adddi3" -- [(set (match_operand:DI 0 "register_operand" "=d,d,d") -- (plus:DI (match_operand:DI 1 "register_operand" "%d,d,d") -- (match_operand:DI 2 "arith_operand32" "d,P,N")))] -+ [(set (match_operand:DI 0 "register_operand" "=d,d") -+ (plus:DI (match_operand:DI 1 "register_operand" "%d,d") -+ (match_operand:DI 2 "arith_operand" "d,i")))] - "" - "@ - add\t%L0,%L1,%L2\;addc\t%M0,%M1,%M2 -- addi\t%L0,%L1,%2\;addc\t%M0,%M1,r0 -- addi\t%L0,%L1,%2\;addc\t%M0,%M1,r0\;addi\t%M0,%M0,-1" -+ addi\t%L0,%L1,%j2\;addic\t%M0,%M1,%h2" - [(set_attr "type" "darith") - (set_attr "mode" "DI") -- (set_attr "length" "8,8,12")]) -+ (set_attr "length" "8,8")]) - - ;;---------------------------------------------------------------- - ;; Subtraction -@@ -530,7 +529,7 @@ - (define_insn "subdi3" - [(set (match_operand:DI 0 "register_operand" "=&d") - (minus:DI (match_operand:DI 1 "register_operand" "d") -- (match_operand:DI 2 "arith_operand32" "d")))] -+ (match_operand:DI 2 "register_operand" "d")))] - "" - "rsub\t%L0,%L2,%L1\;rsubc\t%M0,%M2,%M1" - [(set_attr "type" "darith") --- -2.14.2 - diff --git a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-7/0003-PR-target-83013.patch b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-7/0003-PR-target-83013.patch deleted file mode 100644 index 42bfd3c1..00000000 --- a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-7/0003-PR-target-83013.patch +++ /dev/null @@ -1,32 +0,0 @@ -From f17cdebf4e0defaefce927176ddeb9717de073d2 Mon Sep 17 00:00:00 2001 -From: law -Date: Mon, 15 Jan 2018 06:02:19 +0000 -Subject: [PATCH] PR target/83013 - - * config/microblaze/microblaze.c (microblaze_asm_output_ident): - Use .pushsection/.popsection. - -git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@256681 138bc75d-0d04-0410-961f-82ee72b054a4 -Upstream-Status: Backport [backport from trunk pre-release v8] ---- - gcc/config/microblaze/microblaze.c | 4 +++- - 1 file changed, 3 insertions(+), 1 deletion(-) - -diff --git a/gcc/config/microblaze/microblaze.c b/gcc/config/microblaze/microblaze.c -index d0f86fd460..a98aca1235 100644 ---- a/gcc/config/microblaze/microblaze.c -+++ b/gcc/config/microblaze/microblaze.c -@@ -3371,7 +3371,9 @@ microblaze_asm_output_ident (const char *string) - else - section_asm_op = READONLY_DATA_SECTION_ASM_OP; - -- buf = ACONCAT ((section_asm_op, "\n\t.ascii \"", string, "\\0\"\n", NULL)); -+ buf = ACONCAT (("\t.pushsection", section_asm_op, -+ "\n\t.ascii \"", string, "\\0\"\n", -+ "\t.popsection\n", NULL)); - symtab->finalize_toplevel_asm (build_string (strlen (buf), buf)); - } - --- -2.15.1 - diff --git a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-7/0004-dejagnu-static-testing-on-qemu-suppress-warnings.patch b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-7/0004-dejagnu-static-testing-on-qemu-suppress-warnings.patch deleted file mode 100644 index c0a427ea..00000000 --- a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-7/0004-dejagnu-static-testing-on-qemu-suppress-warnings.patch +++ /dev/null @@ -1,36 +0,0 @@ -From ab2cb6320138c173b20fee8ce6e8d4afa4696384 Mon Sep 17 00:00:00 2001 -From: Mahesh Bodapati -Date: Sat, 26 Aug 2017 19:21:16 -0700 -Subject: [PATCH] dejagnu static testing on qemu, suppress warnings - -For dejagnu static testing on qemu, suppress warnings about multiple -definitions from the test function and libc in line with method used by -powerpc. Dynamic linking and using a qemu binary which understands -sysroot resolves all test failures with builtins - -Signed-off-by: David Holsgrove -Signed-off-by: Mahesh Bodapati -Signed-off-by: Manjukumar Matha -Upstream-Status: Pending ---- - gcc/testsuite/gcc.c-torture/execute/builtins/builtins.exp | 4 ++++ - 1 file changed, 4 insertions(+) - -diff --git a/gcc/testsuite/gcc.c-torture/execute/builtins/builtins.exp b/gcc/testsuite/gcc.c-torture/execute/builtins/builtins.exp -index ba16b09c41..ada149912b 100644 ---- a/gcc/testsuite/gcc.c-torture/execute/builtins/builtins.exp -+++ b/gcc/testsuite/gcc.c-torture/execute/builtins/builtins.exp -@@ -48,6 +48,10 @@ if { [istarget *-*-eabi*] - lappend additional_flags "-Wl,--allow-multiple-definition" - } - -+if [istarget "microblaze*-*-linux*"] { -+ lappend additional_flags "-Wl,-zmuldefs" -+} -+ - foreach src [lsort [find $srcdir/$subdir *.c]] { - if {![string match *-lib.c $src] && [runtest_file_p $runtests $src]} { - c-torture-execute [list $src \ --- -2.14.2 - diff --git a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-7/0006-Add-MicroBlaze-to-target-supports-for-atomic-builtin.patch b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-7/0006-Add-MicroBlaze-to-target-supports-for-atomic-builtin.patch deleted file mode 100644 index 6fad8bf7..00000000 --- a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-7/0006-Add-MicroBlaze-to-target-supports-for-atomic-builtin.patch +++ /dev/null @@ -1,37 +0,0 @@ -From 8bcdd551f7fe585126ea3173ece976fbc646c34a Mon Sep 17 00:00:00 2001 -From: Mahesh Bodapati -Date: Sat, 26 Aug 2017 19:21:20 -0700 -Subject: [PATCH] Add MicroBlaze to target-supports for atomic builtin tests - -MicroBlaze added to supported targets for atomic builtin tests. - -Changelog/testsuite - -2014-02-14 David Holsgrove - - * gcc/testsuite/lib/target-supports.exp: Add microblaze to - check_effective_target_sync_int_long. - -Signed-off-by: David Holsgrove -Signed-off-by: Mahesh Bodapati -Signed-off-by: Manjukumar Matha -Upstream-Status: Pending ---- - gcc/testsuite/lib/target-supports.exp | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/gcc/testsuite/lib/target-supports.exp b/gcc/testsuite/lib/target-supports.exp -index 342af270ab..b0f510e596 100644 ---- a/gcc/testsuite/lib/target-supports.exp -+++ b/gcc/testsuite/lib/target-supports.exp -@@ -6715,6 +6715,7 @@ proc check_effective_target_sync_int_long { } { - && [check_effective_target_arm_acq_rel]) - || [istarget bfin*-*linux*] - || [istarget hppa*-*linux*] -+ || [istarget microblaze*-*linux*] - || [istarget s390*-*-*] - || [istarget powerpc*-*-*] - || [istarget crisv32-*-*] || [istarget cris-*-*] --- -2.14.2 - diff --git a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-7/0007-Update-MicroBlaze-strings-test-for-new-scan-assembly.patch b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-7/0007-Update-MicroBlaze-strings-test-for-new-scan-assembly.patch deleted file mode 100644 index 069329fc..00000000 --- a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-7/0007-Update-MicroBlaze-strings-test-for-new-scan-assembly.patch +++ /dev/null @@ -1,46 +0,0 @@ -From 4622988b62335af6ef17d58bf10940419fd0f99f Mon Sep 17 00:00:00 2001 -From: Mahesh Bodapati -Date: Sat, 26 Aug 2017 19:21:21 -0700 -Subject: [PATCH] Update MicroBlaze strings test for new scan-assembly output - resulting in use of $LC label - -ChangeLog/testsuite - -2014-02-14 David Holsgrove - - * gcc/testsuite/gcc.target/microblaze/others/strings1.c: Update - to include $LC label. - -Signed-off-by: David Holsgrove -Signed-off-by: Mahesh Bodapati -Signed-off-by: Manjukumar Matha -Upstream-Status: Pending ---- - gcc/testsuite/gcc.target/microblaze/others/strings1.c | 6 ++++-- - 1 file changed, 4 insertions(+), 2 deletions(-) - -diff --git a/gcc/testsuite/gcc.target/microblaze/others/strings1.c b/gcc/testsuite/gcc.target/microblaze/others/strings1.c -index 7a63faf79f..0403b7bdca 100644 ---- a/gcc/testsuite/gcc.target/microblaze/others/strings1.c -+++ b/gcc/testsuite/gcc.target/microblaze/others/strings1.c -@@ -1,13 +1,15 @@ - /* { dg-options "-O3" } */ - -+/* { dg-final { scan-assembler "\.rodata*" } } */ -+/* { dg-final { scan-assembler "addik\tr(\[0-9]\|\[1-2]\[0-9]\|3\[0-1]),r(\[0-9]\|\[1-2]\[0-9]\|3\[0-1]),\\\$LC.*" } } */ -+/* { dg-final { scan-assembler "\lwi\tr(\[0-9]\|\[1-2]\[0-9]\|3\[0-1]),r(\[0-9]\|\[1-2]\[0-9]\|3\[0-1]),*" } } */ -+ - #include - --/* { dg-final { scan-assembler "\.rodata*" } } */ - extern void somefunc (char *); - int testfunc () - { - char string2[80]; --/* { dg-final { scan-assembler "\lwi\tr(\[0-9]\|\[1-2]\[0-9]\|3\[0-1]),r0,.LC*" } } */ - strcpy (string2, "hello"); - somefunc (string2); - } --- -2.14.2 - diff --git a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-7/0008-Allow-MicroBlaze-.weakext-pattern-in-testsuite.patch b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-7/0008-Allow-MicroBlaze-.weakext-pattern-in-testsuite.patch deleted file mode 100644 index dbfeb52b..00000000 --- a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-7/0008-Allow-MicroBlaze-.weakext-pattern-in-testsuite.patch +++ /dev/null @@ -1,68 +0,0 @@ -From 037809e91bfed9c501ecd5272ff6d3ce96edf76c Mon Sep 17 00:00:00 2001 -From: Mahesh Bodapati -Date: Sat, 26 Aug 2017 19:21:22 -0700 -Subject: [PATCH] Allow MicroBlaze .weakext pattern in testsuite - -Allow MicroBlaze .weakext pattern in regex match Extend regex pattern to -include optional ext at the end of .weak to match the MicroBlaze weak -label .weakext - -ChangeLog/testsuite - -2014-02-14 David Holsgrove - - * gcc/testsuite/g++.dg/abi/rtti3.C: Extend scan-assembler - pattern to take optional ext after .weak. - * gcc/testsuite/g++.dg/abi/thunk4.C: Likewise. - -Signed-off-by: David Holsgrove -Signed-off-by: Mahesh Bodapati -Signed-off-by: Manjukumar Matha -Upstream-Status: Pending ---- - gcc/testsuite/g++.dg/abi/rtti3.C | 4 ++-- - gcc/testsuite/g++.dg/abi/thunk3.C | 2 +- - gcc/testsuite/g++.dg/abi/thunk4.C | 2 +- - 3 files changed, 4 insertions(+), 4 deletions(-) - -diff --git a/gcc/testsuite/g++.dg/abi/rtti3.C b/gcc/testsuite/g++.dg/abi/rtti3.C -index 0316bcb5de..5a39a0811f 100644 ---- a/gcc/testsuite/g++.dg/abi/rtti3.C -+++ b/gcc/testsuite/g++.dg/abi/rtti3.C -@@ -3,8 +3,8 @@ - - // { dg-require-weak "" } - // { dg-skip-if "Linkonce not weak" { *-*-mingw* *-*-cygwin } { "*" } { "" } } --// { dg-final { scan-assembler ".weak\[ \t\]_?_ZTSPP1A" { target { ! { *-*-darwin* hppa*-*-hpux* } } } } } --// { dg-final { scan-assembler-not ".weak\[ \t\]_?_ZTIPP1A" { target { ! { *-*-darwin* } } } } } -+// { dg-final { scan-assembler ".weak(ext)?\[ \t\]_?_ZTSPP1A" { target { ! { *-*-darwin* } } } } } -+// { dg-final { scan-assembler-not ".weak(ext)?\[ \t\]_?_ZTIPP1A" { target { ! { *-*-darwin* } } } } } - // { dg-final { scan-assembler ".weak_definition\[ \t\]_?_ZTSPP1A" { target { *-*-darwin* } } } } - // { dg-final { scan-assembler-not ".weak_definition\[ \t\]_?_ZTIPP1A" { target { *-*-darwin* } } } } - -diff --git a/gcc/testsuite/g++.dg/abi/thunk3.C b/gcc/testsuite/g++.dg/abi/thunk3.C -index f2347f79ec..dcec8a771a 100644 ---- a/gcc/testsuite/g++.dg/abi/thunk3.C -+++ b/gcc/testsuite/g++.dg/abi/thunk3.C -@@ -1,5 +1,5 @@ - // { dg-require-weak "" } --// { dg-final { scan-assembler-not ".weak\[\t \]_?_ZThn._N7Derived3FooEv" { target { ! { *-*-darwin* } } } } } -+// { dg-final { scan-assembler-not ".weak(ext)?\[\t \]_?_ZThn._N7Derived3FooEv" { target { ! { *-*-darwin* } } } } } - // { dg-final { scan-assembler-not ".weak_definition\[\t \]_?_ZThn._N7Derived3FooEv" { target { *-*-darwin* } } } } - - struct Base -diff --git a/gcc/testsuite/g++.dg/abi/thunk4.C b/gcc/testsuite/g++.dg/abi/thunk4.C -index fa5fbd4327..79cb311cab 100644 ---- a/gcc/testsuite/g++.dg/abi/thunk4.C -+++ b/gcc/testsuite/g++.dg/abi/thunk4.C -@@ -1,6 +1,6 @@ - // { dg-require-weak "" } - // { dg-skip-if "Linkonce not weak" { *-*-mingw* *-*-cygwin } { "*" } { "" } } --// { dg-final { scan-assembler ".weak\[ \t\]_?_ZThn._N7Derived3FooEv" { target { ! { *-*-darwin* } } } } } -+// { dg-final { scan-assembler ".weak(ext)?\[ \t\]_?_ZThn._N7Derived3FooEv" { target { ! { *-*-darwin* } } } } } - // { dg-final { scan-assembler ".weak_definition\[ \t\]_?_ZThn._N7Derived3FooEv" { target { *-*-darwin* } } } } - - struct Base --- -2.14.2 - diff --git a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-7/0009-Add-MicroBlaze-to-check_profiling_available-Testsuit.patch b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-7/0009-Add-MicroBlaze-to-check_profiling_available-Testsuit.patch deleted file mode 100644 index 6b9dd991..00000000 --- a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-7/0009-Add-MicroBlaze-to-check_profiling_available-Testsuit.patch +++ /dev/null @@ -1,32 +0,0 @@ -From 23a04c06c2a689fed151eeb94c45ea9b512036ae Mon Sep 17 00:00:00 2001 -From: Mahesh Bodapati -Date: Sat, 26 Aug 2017 19:21:23 -0700 -Subject: [PATCH] Add MicroBlaze to check_profiling_available Testsuite - -Add MicroBlaze to check_profiling_available Testsuite, add -microblaze*-*-* target in check_profiling_available inline with other -archs setting profiling_available_saved to 0 - -Signed-off-by: David Holsgrove -Signed-off-by: Mahesh Bodapati -Signed-off-by: Manjukumar Matha -Upstream-Status: Pending ---- - gcc/testsuite/lib/target-supports.exp | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/gcc/testsuite/lib/target-supports.exp b/gcc/testsuite/lib/target-supports.exp -index b0f510e596..fffb690e49 100644 ---- a/gcc/testsuite/lib/target-supports.exp -+++ b/gcc/testsuite/lib/target-supports.exp -@@ -625,6 +625,7 @@ proc check_profiling_available { test_what } { - || [istarget m68k-*-elf] - || [istarget m68k-*-uclinux*] - || [istarget mips*-*-elf*] -+ || [istarget microblaze*-*-*] - || [istarget mmix-*-*] - || [istarget mn10300-*-elf*] - || [istarget moxie-*-elf*] --- -2.14.2 - diff --git a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-7/0010-Fix-atomic-side-effects.patch b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-7/0010-Fix-atomic-side-effects.patch deleted file mode 100644 index c21ca816..00000000 --- a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-7/0010-Fix-atomic-side-effects.patch +++ /dev/null @@ -1,69 +0,0 @@ -From c1e8a1419e8f5d18e7135fb4fe3bf21941125008 Mon Sep 17 00:00:00 2001 -From: Mahesh Bodapati -Date: Sat, 26 Aug 2017 19:21:24 -0700 -Subject: [PATCH] Fix atomic side effects. - -In atomic_compare_and_swapsi, add side effects to prevent incorrect -assumptions during optimization. Previously, the outputs were considered -unused; this generated assembly code with undefined side effects after -invocation of the atomic. - -Signed-off-by: Kirk Meyer -Signed-off-by: David Holsgrove -Signed-off-by: Mahesh Bodapati -Signed-off-by: Manjukumar Matha -Upstream-Status: Pending ---- - gcc/config/microblaze/microblaze.md | 3 +++ - gcc/config/microblaze/sync.md | 21 +++++++++++++-------- - 2 files changed, 16 insertions(+), 8 deletions(-) - -diff --git a/gcc/config/microblaze/microblaze.md b/gcc/config/microblaze/microblaze.md -index 8a372d7ebb..59d629b559 100644 ---- a/gcc/config/microblaze/microblaze.md -+++ b/gcc/config/microblaze/microblaze.md -@@ -41,6 +41,9 @@ - (UNSPEC_CMP 104) ;; signed compare - (UNSPEC_CMPU 105) ;; unsigned compare - (UNSPEC_TLS 106) ;; jump table -+ (UNSPECV_CAS_BOOL 201) ;; compare and swap (bool) -+ (UNSPECV_CAS_VAL 202) ;; compare and swap (val) -+ (UNSPECV_CAS_MEM 203) ;; compare and swap (mem) - ]) - - (define_c_enum "unspec" [ -diff --git a/gcc/config/microblaze/sync.md b/gcc/config/microblaze/sync.md -index 8125bd8d63..edf4bdd811 100644 ---- a/gcc/config/microblaze/sync.md -+++ b/gcc/config/microblaze/sync.md -@@ -18,14 +18,19 @@ - ;; . - - (define_insn "atomic_compare_and_swapsi" -- [(match_operand:SI 0 "register_operand" "=&d") ;; bool output -- (match_operand:SI 1 "register_operand" "=&d") ;; val output -- (match_operand:SI 2 "nonimmediate_operand" "+Q") ;; memory -- (match_operand:SI 3 "register_operand" "d") ;; expected value -- (match_operand:SI 4 "register_operand" "d") ;; desired value -- (match_operand:SI 5 "const_int_operand" "") ;; is_weak -- (match_operand:SI 6 "const_int_operand" "") ;; mod_s -- (match_operand:SI 7 "const_int_operand" "") ;; mod_f -+ [(set (match_operand:SI 0 "register_operand" "=&d") ;; bool output -+ (unspec_volatile:SI -+ [(match_operand:SI 2 "nonimmediate_operand" "+Q") ;; memory -+ (match_operand:SI 3 "register_operand" "d") ;; expected value -+ (match_operand:SI 4 "register_operand" "d")] ;; desired value -+ UNSPECV_CAS_BOOL)) -+ (set (match_operand:SI 1 "register_operand" "=&d") ;; val output -+ (unspec_volatile:SI [(const_int 0)] UNSPECV_CAS_VAL)) -+ (set (match_dup 2) -+ (unspec_volatile:SI [(const_int 0)] UNSPECV_CAS_MEM)) -+ (match_operand:SI 5 "const_int_operand" "") ;; is_weak -+ (match_operand:SI 6 "const_int_operand" "") ;; mod_s -+ (match_operand:SI 7 "const_int_operand" "") ;; mod_f - (clobber (match_scratch:SI 8 "=&d"))] - "" - { --- -2.14.2 - diff --git a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-7/0011-Fix-atomic-boolean-return-value.patch b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-7/0011-Fix-atomic-boolean-return-value.patch deleted file mode 100644 index f4bc16e8..00000000 --- a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-7/0011-Fix-atomic-boolean-return-value.patch +++ /dev/null @@ -1,44 +0,0 @@ -From a5957bdf7acfde0a65eeba90bae11f5619bf96af Mon Sep 17 00:00:00 2001 -From: Mahesh Bodapati -Date: Sat, 26 Aug 2017 19:21:25 -0700 -Subject: [PATCH] Fix atomic boolean return value. - -In atomic_compare_and_swapsi, fix boolean return value. Previously, it -contained zero if successful and non-zero if unsuccessful. - -Signed-off-by: Kirk Meyer -Signed-off-by: David Holsgrove -Signed-off-by: Mahesh Bodapati -Signed-off-by: Manjukumar Matha -Upstream-Status: Pending ---- - gcc/config/microblaze/sync.md | 7 ++++--- - 1 file changed, 4 insertions(+), 3 deletions(-) - -diff --git a/gcc/config/microblaze/sync.md b/gcc/config/microblaze/sync.md -index edf4bdd811..aadb414728 100644 ---- a/gcc/config/microblaze/sync.md -+++ b/gcc/config/microblaze/sync.md -@@ -34,15 +34,16 @@ - (clobber (match_scratch:SI 8 "=&d"))] - "" - { -- output_asm_insn ("addc \tr0,r0,r0", operands); -+ output_asm_insn ("add \t%0,r0,r0", operands); - output_asm_insn ("lwx \t%1,%y2,r0", operands); - output_asm_insn ("addic\t%8,r0,0", operands); - output_asm_insn ("bnei \t%8,.-8", operands); -- output_asm_insn ("cmp \t%0,%1,%3", operands); -- output_asm_insn ("bnei \t%0,.+16", operands); -+ output_asm_insn ("cmp \t%8,%1,%3", operands); -+ output_asm_insn ("bnei \t%8,.+20", operands); - output_asm_insn ("swx \t%4,%y2,r0", operands); - output_asm_insn ("addic\t%8,r0,0", operands); - output_asm_insn ("bnei \t%8,.-28", operands); -+ output_asm_insn ("addi \t%0,r0,1", operands); - return ""; - } - ) --- -2.14.2 - diff --git a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-7/0012-Fix-the-Microblaze-crash-with-msmall-divides-flag.patch b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-7/0012-Fix-the-Microblaze-crash-with-msmall-divides-flag.patch deleted file mode 100644 index 464f59e3..00000000 --- a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-7/0012-Fix-the-Microblaze-crash-with-msmall-divides-flag.patch +++ /dev/null @@ -1,37 +0,0 @@ -From 1a9dcdb578452ecd53e0aec65fe6279233218778 Mon Sep 17 00:00:00 2001 -From: Mahesh Bodapati -Date: Sat, 26 Aug 2017 19:21:26 -0700 -Subject: [PATCH] Fix the Microblaze crash with msmall-divides flag - -Fix the Microblaze crash with msmall-divides flag Compiler is crashing -when we use msmall-divides and mxl-barrel-shift flag. This is because -when use above flags microblaze_expand_divide function will be called -for division operation. In microblaze_expand_divide function we are -using sub_reg but MicroBlaze doesn't have subreg register due to this -compiler was crashing. Changed the logic to avoid sub_reg call - -Signed-off-by: Nagaraju Mekala -Signed-off-by: Mahesh Bodapati -Signed-off-by: Manjukumar Matha -Upstream-Status: Pending ---- - gcc/config/microblaze/microblaze.c | 3 +-- - 1 file changed, 1 insertion(+), 2 deletions(-) - -diff --git a/gcc/config/microblaze/microblaze.c b/gcc/config/microblaze/microblaze.c -index bba6983b65..15080db539 100644 ---- a/gcc/config/microblaze/microblaze.c -+++ b/gcc/config/microblaze/microblaze.c -@@ -3527,8 +3527,7 @@ microblaze_expand_divide (rtx operands[]) - mem_rtx = gen_rtx_MEM (QImode, - gen_rtx_PLUS (Pmode, regt1, div_table_rtx)); - -- insn = emit_insn (gen_movqi (regqi, mem_rtx)); -- insn = emit_insn (gen_movsi (operands[0], gen_rtx_SUBREG (SImode, regqi, 0))); -+ insn = emit_insn (gen_zero_extendqisi2(operands[0],mem_rtx)); - jump = emit_jump_insn_after (gen_jump (div_end_label), insn); - JUMP_LABEL (jump) = div_end_label; - LABEL_NUSES (div_end_label) = 1; --- -2.14.2 - diff --git a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-7/0013-Add-MicroBlaze-ashrsi_3_with_size_opt.patch b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-7/0013-Add-MicroBlaze-ashrsi_3_with_size_opt.patch deleted file mode 100644 index 6005e216..00000000 --- a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-7/0013-Add-MicroBlaze-ashrsi_3_with_size_opt.patch +++ /dev/null @@ -1,53 +0,0 @@ -From c32df2ec3d269d19b631a17cea2b6d19bbb98c27 Mon Sep 17 00:00:00 2001 -From: Mahesh Bodapati -Date: Sat, 26 Aug 2017 19:21:27 -0700 -Subject: [PATCH] Add MicroBlaze ashrsi_3_with_size_opt - -Added ashrsi3_with_size_opt Added ashrsi3_with_size_opt pattern to -optimize the sra instructions when the -Os optimization is used. -lshrsi3_with_size_opt is being removed as it has conflicts with unsigned -int variables - -Signed-off-by: Nagaraju Mekala -Signed-off-by: Mahesh Bodapati -Signed-off-by: Manjukumar Matha -Upstream-Status: Pending ---- - gcc/config/microblaze/microblaze.md | 21 +++++++++++++++++++++ - 1 file changed, 21 insertions(+) - -diff --git a/gcc/config/microblaze/microblaze.md b/gcc/config/microblaze/microblaze.md -index 59d629b559..8c0a97e032 100644 ---- a/gcc/config/microblaze/microblaze.md -+++ b/gcc/config/microblaze/microblaze.md -@@ -1505,6 +1505,27 @@ - (set_attr "length" "4,4")] - ) - -+(define_insn "*ashrsi3_with_size_opt" -+ [(set (match_operand:SI 0 "register_operand" "=&d") -+ (ashiftrt:SI (match_operand:SI 1 "register_operand" "d") -+ (match_operand:SI 2 "immediate_operand" "I")))] -+ "(INTVAL (operands[2]) > 5 && optimize_size)" -+ { -+ operands[3] = gen_rtx_REG (SImode, MB_ABI_ASM_TEMP_REGNUM); -+ -+ output_asm_insn ("ori\t%3,r0,%2", operands); -+ if (REGNO (operands[0]) != REGNO (operands[1])) -+ output_asm_insn ("addk\t%0,%1,r0", operands); -+ -+ output_asm_insn ("addik\t%3,%3,-1", operands); -+ output_asm_insn ("bneid\t%3,.-4", operands); -+ return "sra\t%0,%0"; -+ } -+ [(set_attr "type" "arith") -+ (set_attr "mode" "SI") -+ (set_attr "length" "20")] -+) -+ - (define_insn "*ashrsi_inline" - [(set (match_operand:SI 0 "register_operand" "=&d") - (ashiftrt:SI (match_operand:SI 1 "register_operand" "d") --- -2.14.2 - diff --git a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-7/0014-Removed-MicroBlaze-moddi3-routinue.patch b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-7/0014-Removed-MicroBlaze-moddi3-routinue.patch deleted file mode 100644 index b0195718..00000000 --- a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-7/0014-Removed-MicroBlaze-moddi3-routinue.patch +++ /dev/null @@ -1,156 +0,0 @@ -From a68e94fc57bcf60cb730894e49dde55d081397f5 Mon Sep 17 00:00:00 2001 -From: Mahesh Bodapati -Date: Sat, 26 Aug 2017 19:21:28 -0700 -Subject: [PATCH] Removed MicroBlaze moddi3 routinue - -Removed moddi3 routinue Using the default moddi3 function as the -existing implementation has many bugs - -Signed-off-by: Nagaraju Mekala -Signed-off-by: Mahesh Bodapati -Signed-off-by: Manjukumar Matha -Upstream-Status: Pending ---- - libgcc/config/microblaze/moddi3.S | 115 ---------------------------------- - libgcc/config/microblaze/t-microblaze | 3 +- - 2 files changed, 1 insertion(+), 117 deletions(-) - delete mode 100644 libgcc/config/microblaze/moddi3.S - -diff --git a/libgcc/config/microblaze/moddi3.S b/libgcc/config/microblaze/moddi3.S -deleted file mode 100644 -index bcea079476..0000000000 ---- a/libgcc/config/microblaze/moddi3.S -+++ /dev/null -@@ -1,115 +0,0 @@ --################################### --# --# Copyright (C) 2009-2017 Free Software Foundation, Inc. --# --# Contributed by Michael Eager . --# --# This file is free software; you can redistribute it and/or modify it --# under the terms of the GNU General Public License as published by the --# Free Software Foundation; either version 3, or (at your option) any --# later version. --# --# GCC is distributed in the hope that it will be useful, but WITHOUT --# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY --# or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public --# License for more details. --# --# Under Section 7 of GPL version 3, you are granted additional --# permissions described in the GCC Runtime Library Exception, version --# 3.1, as published by the Free Software Foundation. --# --# You should have received a copy of the GNU General Public License and --# a copy of the GCC Runtime Library Exception along with this program; --# see the files COPYING3 and COPYING.RUNTIME respectively. If not, see --# . --# --# modsi3.S --# --# modulo operation for 64 bit integers. --# --####################################### -- -- -- .globl __moddi3 -- .ent __moddi3 --__moddi3: -- .frame r1,0,r15 -- --#Change the stack pointer value and Save callee saved regs -- addik r1,r1,-24 -- swi r25,r1,0 -- swi r26,r1,4 -- swi r27,r1,8 # used for sign -- swi r28,r1,12 # used for loop count -- swi r29,r1,16 # Used for div value High -- swi r30,r1,20 # Used for div value Low -- --#Check for Zero Value in the divisor/dividend -- OR r9,r5,r6 # Check for the op1 being zero -- BEQID r9,$LaResult_Is_Zero # Result is zero -- OR r9,r7,r8 # Check for the dividend being zero -- BEQI r9,$LaDiv_By_Zero # Div_by_Zero # Division Error -- BGEId r5,$La1_Pos -- XOR r27,r5,r7 # Get the sign of the result -- RSUBI r6,r6,0 # Make dividend positive -- RSUBIC r5,r5,0 # Make dividend positive --$La1_Pos: -- BGEI r7,$La2_Pos -- RSUBI r8,r8,0 # Make Divisor Positive -- RSUBIC r9,r9,0 # Make Divisor Positive --$La2_Pos: -- ADDIK r4,r0,0 # Clear mod low -- ADDIK r3,r0,0 # Clear mod high -- ADDIK r29,r0,0 # clear div high -- ADDIK r30,r0,0 # clear div low -- ADDIK r28,r0,64 # Initialize the loop count -- # First part try to find the first '1' in the r5/r6 --$LaDIV1: -- ADD r6,r6,r6 -- ADDC r5,r5,r5 # left shift logical r5 -- BGEID r5,$LaDIV1 -- ADDIK r28,r28,-1 --$LaDIV2: -- ADD r6,r6,r6 -- ADDC r5,r5,r5 # left shift logical r5/r6 get the '1' into the Carry -- ADDC r4,r4,r4 # Move that bit into the Mod register -- ADDC r3,r3,r3 # Move carry into high mod register -- rsub r18,r7,r3 # Compare the High Parts of Mod and Divisor -- bnei r18,$L_High_EQ -- rsub r18,r6,r4 # Compare Low Parts only if Mod[h] == Divisor[h] --$L_High_EQ: -- rSUB r26,r8,r4 # Subtract divisor[L] from Mod[L] -- rsubc r25,r7,r3 # Subtract divisor[H] from Mod[H] -- BLTi r25,$LaMOD_TOO_SMALL -- OR r3,r0,r25 # move r25 to mod [h] -- OR r4,r0,r26 # move r26 to mod [l] -- ADDI r30,r30,1 -- ADDC r29,r29,r0 --$LaMOD_TOO_SMALL: -- ADDIK r28,r28,-1 -- BEQi r28,$LaLOOP_END -- ADD r30,r30,r30 # Shift in the '1' into div [low] -- ADDC r29,r29,r29 # Move the carry generated into high -- BRI $LaDIV2 # Div2 --$LaLOOP_END: -- BGEI r27,$LaRETURN_HERE -- rsubi r30,r30,0 -- rsubc r29,r29,r0 -- BRI $LaRETURN_HERE --$LaDiv_By_Zero: --$LaResult_Is_Zero: -- or r29,r0,r0 # set result to 0 [High] -- or r30,r0,r0 # set result to 0 [Low] --$LaRETURN_HERE: --# Restore values of CSRs and that of r29 and the divisor and the dividend -- -- lwi r25,r1,0 -- lwi r26,r1,4 -- lwi r27,r1,8 -- lwi r28,r1,12 -- lwi r29,r1,16 -- lwi r30,r1,20 -- rtsd r15,8 -- addik r1,r1,24 -- .end __moddi3 -- -diff --git a/libgcc/config/microblaze/t-microblaze b/libgcc/config/microblaze/t-microblaze -index 96959f0292..8d954a4957 100644 ---- a/libgcc/config/microblaze/t-microblaze -+++ b/libgcc/config/microblaze/t-microblaze -@@ -1,8 +1,7 @@ --LIB2FUNCS_EXCLUDE += _divsi3 _modsi3 _moddi3 _mulsi3 _udivsi3 _umodsi3 -+LIB2FUNCS_EXCLUDE += _divsi3 _modsi3 _mulsi3 _udivsi3 _umodsi3 - - LIB2ADD += \ - $(srcdir)/config/microblaze/divsi3.S \ -- $(srcdir)/config/microblaze/moddi3.S \ - $(srcdir)/config/microblaze/modsi3.S \ - $(srcdir)/config/microblaze/muldi3_hard.S \ - $(srcdir)/config/microblaze/mulsi3.S \ --- -2.14.2 - diff --git a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-7/0015-MicroBlaze-fixed-missing-save-of-r18-in-fast_interru.patch b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-7/0015-MicroBlaze-fixed-missing-save-of-r18-in-fast_interru.patch deleted file mode 100644 index e75bebeb..00000000 --- a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-7/0015-MicroBlaze-fixed-missing-save-of-r18-in-fast_interru.patch +++ /dev/null @@ -1,46 +0,0 @@ -From 79ea36649467aea6045a49c7d016f8f9245efb8c Mon Sep 17 00:00:00 2001 -From: Mahesh Bodapati -Date: Sat, 26 Aug 2017 19:21:29 -0700 -Subject: [PATCH] MicroBlaze fixed missing save of r18 in fast_interrupt - -Fixed missing save of r18 in fast_interrupt. Register 18 is used as a -clobber register, and must be stored when entering a fast_interrupt. -Before this fix, register 18 was only saved if it was used directly in -the interrupt function. - -However, if the fast_interrupt function called a function that used -r18, the register would not be saved, and thus be mangled -upon returning from the interrupt. - -Changelog - -2014-02-27 Klaus Petersen - - * gcc/config/microblaze/microblaze.c: Check for fast_interrupt in - microblaze_must_save_register. - -Signed-off-by: Klaus Petersen -Signed-off-by: David Holsgrove -Signed-off-by: Mahesh Bodapati -Signed-off-by: Manjukumar Matha -Upstream-Status: Pending ---- - gcc/config/microblaze/microblaze.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/gcc/config/microblaze/microblaze.c b/gcc/config/microblaze/microblaze.c -index 15080db539..558796cad9 100644 ---- a/gcc/config/microblaze/microblaze.c -+++ b/gcc/config/microblaze/microblaze.c -@@ -1943,7 +1943,7 @@ microblaze_must_save_register (int regno) - { - if (df_regs_ever_live_p (regno) - || regno == MB_ABI_MSR_SAVE_REG -- || (interrupt_handler -+ || ((interrupt_handler || fast_interrupt) - && (regno == MB_ABI_ASM_TEMP_REGNUM - || regno == MB_ABI_EXCEPTION_RETURN_ADDR_REGNUM))) - return 1; --- -2.14.2 - diff --git a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-7/0016-MicroBlaze-use-bralid-for-profiler-calls.patch b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-7/0016-MicroBlaze-use-bralid-for-profiler-calls.patch deleted file mode 100644 index f5de718e..00000000 --- a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-7/0016-MicroBlaze-use-bralid-for-profiler-calls.patch +++ /dev/null @@ -1,29 +0,0 @@ -From 6ed57ee8219e5d09a294b329dd7c531a1868dc8a Mon Sep 17 00:00:00 2001 -From: Mahesh Bodapati -Date: Sat, 26 Aug 2017 19:21:31 -0700 -Subject: [PATCH] MicroBlaze use bralid for profiler calls - -Signed-off-by: Edgar E. Iglesias -Signed-off-by: Mahesh Bodapati -Signed-off-by: Manjukumar Matha -Upstream-Status: Pending ---- - gcc/config/microblaze/microblaze.h | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/gcc/config/microblaze/microblaze.h b/gcc/config/microblaze/microblaze.h -index ccd77e8b4d..0dd8b853e2 100644 ---- a/gcc/config/microblaze/microblaze.h -+++ b/gcc/config/microblaze/microblaze.h -@@ -519,7 +519,7 @@ typedef struct microblaze_args - - #define FUNCTION_PROFILER(FILE, LABELNO) { \ - { \ -- fprintf (FILE, "\tbrki\tr16,_mcount\n"); \ -+ fprintf (FILE, "\tbralid\tr15,_mcount\nnop\n"); \ - } \ - } - --- -2.14.2 - diff --git a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-7/0017-Disable-fivopts-by-default-Turn-off-ivopts-by-defaul.patch b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-7/0017-Disable-fivopts-by-default-Turn-off-ivopts-by-defaul.patch deleted file mode 100644 index 4041e11f..00000000 --- a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-7/0017-Disable-fivopts-by-default-Turn-off-ivopts-by-defaul.patch +++ /dev/null @@ -1,38 +0,0 @@ -From 25b161dd222311cca0e6ab46b7f3be444bd4bbe8 Mon Sep 17 00:00:00 2001 -From: Mahesh Bodapati -Date: Sat, 26 Aug 2017 19:21:32 -0700 -Subject: [PATCH] Disable fivopts by default Turn off ivopts by default. - Interferes with cse. - -Changelog - -2013-03-18 Edgar E. Iglesias - - * gcc/common/config/microblaze/microblaze-common.c - (microblaze_option_optimization_table): Disable fivopts by default. - -Signed-off-by: Edgar E. Iglesias -Signed-off-by: David Holsgrove -Signed-off-by: Mahesh Bodapati -Signed-off-by: Manjukumar Matha -Upstream-Status: Pending ---- - gcc/common/config/microblaze/microblaze-common.c | 2 ++ - 1 file changed, 2 insertions(+) - -diff --git a/gcc/common/config/microblaze/microblaze-common.c b/gcc/common/config/microblaze/microblaze-common.c -index 4975663305..8ddc4c3cbe 100644 ---- a/gcc/common/config/microblaze/microblaze-common.c -+++ b/gcc/common/config/microblaze/microblaze-common.c -@@ -27,6 +27,8 @@ - /* Implement TARGET_OPTION_OPTIMIZATION_TABLE. */ - static const struct default_options microblaze_option_optimization_table[] = - { -+ /* Turn off ivopts by default. It messes up cse. */ -+ { OPT_LEVELS_ALL, OPT_fivopts, NULL, 0 }, - { OPT_LEVELS_1_PLUS, OPT_fomit_frame_pointer, NULL, 1 }, - { OPT_LEVELS_NONE, 0, NULL, 0 } - }; --- -2.14.2 - diff --git a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-7/0018-Add-INIT_PRIORITY-support-Added-TARGET_ASM_CONSTRUCT.patch b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-7/0018-Add-INIT_PRIORITY-support-Added-TARGET_ASM_CONSTRUCT.patch deleted file mode 100644 index 5239d2bd..00000000 --- a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-7/0018-Add-INIT_PRIORITY-support-Added-TARGET_ASM_CONSTRUCT.patch +++ /dev/null @@ -1,104 +0,0 @@ -From 02d8afd50a868e827ac8b6b6243c69922cd694ed Mon Sep 17 00:00:00 2001 -From: Mahesh Bodapati -Date: Sat, 26 Aug 2017 19:21:34 -0700 -Subject: [PATCH] Add INIT_PRIORITY support Added TARGET_ASM_CONSTRUCTOR and - TARGET_ASM_DESTRUCTOR macros. - -These macros allows users to control the order of initialization -of objects defined at namespace scope with the init_priority -attribute by specifying a relative priority, a constant integral -expression currently bounded between 101 and 65535 inclusive. - -Lower numbers indicate a higher priority. - -Changelog - -2013-11-26 Nagaraju Mekala - - * gcc/config/microblaze/microblaze.c: Add microblaze_asm_constructor, - microblaze_asm_destructor. Define TARGET_ASM_CONSTRUCTOR and - TARGET_ASM_DESTRUCTOR. - -Signed-off-by: Nagaraju Mekala -Signed-off-by: David Holsgrove -Signed-off-by: Mahesh Bodapati -Signed-off-by: Manjukumar Matha -Upstream-Status: Pending ---- - gcc/config/microblaze/microblaze.c | 53 ++++++++++++++++++++++++++++++++++++++ - 1 file changed, 53 insertions(+) - -diff --git a/gcc/config/microblaze/microblaze.c b/gcc/config/microblaze/microblaze.c -index 558796cad9..c1b0172bcf 100644 ---- a/gcc/config/microblaze/microblaze.c -+++ b/gcc/config/microblaze/microblaze.c -@@ -2530,6 +2530,53 @@ print_operand_address (FILE * file, rtx addr) - } - } - -+/* Output an element in the table of global constructors. */ -+void -+microblaze_asm_constructor (rtx symbol ATTRIBUTE_UNUSED, int priority) -+{ -+ const char *section = ".ctors"; -+ char buf[16]; -+ -+ if (priority != DEFAULT_INIT_PRIORITY) -+ { -+ sprintf (buf, ".ctors.%.5u", -+ /* Invert the numbering so the linker puts us in the proper -+ order; constructors are run from right to left, and the -+ linker sorts in increasing order. */ -+ MAX_INIT_PRIORITY - priority); -+ section = buf; -+ } -+ -+ switch_to_section (get_section (section, 0, NULL)); -+ assemble_align (POINTER_SIZE); -+ fputs ("\t.word\t", asm_out_file); -+ output_addr_const (asm_out_file, symbol); -+ fputs ("\n", asm_out_file); -+} -+ -+/* Output an element in the table of global destructors. */ -+void -+microblaze_asm_destructor (rtx symbol, int priority) -+{ -+ const char *section = ".dtors"; -+ char buf[16]; -+ if (priority != DEFAULT_INIT_PRIORITY) -+ { -+ sprintf (buf, ".dtors.%.5u", -+ /* Invert the numbering so the linker puts us in the proper -+ order; constructors are run from right to left, and the -+ linker sorts in increasing order. */ -+ MAX_INIT_PRIORITY - priority); -+ section = buf; -+ } -+ -+ switch_to_section (get_section (section, 0, NULL)); -+ assemble_align (POINTER_SIZE); -+ fputs ("\t.word\t", asm_out_file); -+ output_addr_const (asm_out_file, symbol); -+ fputs ("\n", asm_out_file); -+} -+ - /* Emit either a label, .comm, or .lcomm directive, and mark that the symbol - is used, so that we don't emit an .extern for it in - microblaze_asm_file_end. */ -@@ -3775,6 +3822,12 @@ microblaze_machine_dependent_reorg (void) - #undef TARGET_ATTRIBUTE_TABLE - #define TARGET_ATTRIBUTE_TABLE microblaze_attribute_table - -+#undef TARGET_ASM_CONSTRUCTOR -+#define TARGET_ASM_CONSTRUCTOR microblaze_asm_constructor -+ -+#undef TARGET_ASM_DESTRUCTOR -+#define TARGET_ASM_DESTRUCTOR microblaze_asm_destructor -+ - #undef TARGET_IN_SMALL_DATA_P - #define TARGET_IN_SMALL_DATA_P microblaze_elf_in_small_data_p - --- -2.14.2 - diff --git a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-7/0019-MicroBlaze-add-optimized-lshrsi3-When-barrel-shifter.patch b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-7/0019-MicroBlaze-add-optimized-lshrsi3-When-barrel-shifter.patch deleted file mode 100644 index 049ce3fe..00000000 --- a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-7/0019-MicroBlaze-add-optimized-lshrsi3-When-barrel-shifter.patch +++ /dev/null @@ -1,87 +0,0 @@ -From 0b2061ac7706df97da3e8b3c01c6a5cfc504c16e Mon Sep 17 00:00:00 2001 -From: Mahesh Bodapati -Date: Sat, 26 Aug 2017 19:21:35 -0700 -Subject: [PATCH] MicroBlaze add optimized lshrsi3 When barrel shifter is not - present - -Add optimized lshrsi3 When barrel shifter is not present, the immediate -value is greater than #5 and optimization is -OS, the compiler will -generate shift operation using loop. - -Changelog - -2013-11-26 David Holsgrove - - * gcc/config/microblaze/microblaze.md: Add size optimized lshrsi3 insn - -ChangeLog/testsuite - -2014-02-12 David Holsgrove - - * gcc/testsuite/gcc.target/microblaze/others/lshrsi_Os_1.c: New test. - -Signed-off-by: Nagaraju Mekala -Signed-off-by: David Holsgrove -Signed-off-by: Mahesh Bodapati -Signed-off-by: Manjukumar Matha -Upstream-Status: Pending ---- - gcc/config/microblaze/microblaze.md | 21 +++++++++++++++++++++ - .../gcc.target/microblaze/others/lshrsi_Os_1.c | 13 +++++++++++++ - 2 files changed, 34 insertions(+) - create mode 100644 gcc/testsuite/gcc.target/microblaze/others/lshrsi_Os_1.c - -diff --git a/gcc/config/microblaze/microblaze.md b/gcc/config/microblaze/microblaze.md -index 8c0a97e032..abbe97c15f 100644 ---- a/gcc/config/microblaze/microblaze.md -+++ b/gcc/config/microblaze/microblaze.md -@@ -1615,6 +1615,27 @@ - (set_attr "length" "4,4")] - ) - -+(define_insn "*lshrsi3_with_size_opt" -+ [(set (match_operand:SI 0 "register_operand" "=&d") -+ (lshiftrt:SI (match_operand:SI 1 "register_operand" "d") -+ (match_operand:SI 2 "immediate_operand" "I")))] -+ "(INTVAL (operands[2]) > 5 && optimize_size)" -+ { -+ operands[3] = gen_rtx_REG (SImode, MB_ABI_ASM_TEMP_REGNUM); -+ -+ output_asm_insn ("ori\t%3,r0,%2", operands); -+ if (REGNO (operands[0]) != REGNO (operands[1])) -+ output_asm_insn ("addk\t%0,%1,r0", operands); -+ -+ output_asm_insn ("addik\t%3,%3,-1", operands); -+ output_asm_insn ("bneid\t%3,.-4", operands); -+ return "srl\t%0,%0"; -+ } -+ [(set_attr "type" "multi") -+ (set_attr "mode" "SI") -+ (set_attr "length" "20")] -+) -+ - (define_insn "*lshrsi_inline" - [(set (match_operand:SI 0 "register_operand" "=&d") - (lshiftrt:SI (match_operand:SI 1 "register_operand" "d") -diff --git a/gcc/testsuite/gcc.target/microblaze/others/lshrsi_Os_1.c b/gcc/testsuite/gcc.target/microblaze/others/lshrsi_Os_1.c -new file mode 100644 -index 0000000000..32a3be7c76 ---- /dev/null -+++ b/gcc/testsuite/gcc.target/microblaze/others/lshrsi_Os_1.c -@@ -0,0 +1,13 @@ -+/* { dg-options "-Os -mno-xl-barrel-shift" } */ -+ -+void testfunc(void) -+{ -+ unsigned volatile int z = 8192; -+ z >>= 8; -+} -+/* { dg-final { scan-assembler-not "\bsrli" } } */ -+/* { dg-final { scan-assembler "\ori\tr18,r0" } } */ -+/* { dg-final { scan-assembler "addk\tr(\[0-9]\|\[1-2]\[0-9]\|3\[0-1]),r(\[0-9]\|\[1-2]\[0-9]\|3\[0-1]),r0" } } */ -+/* { dg-final { scan-assembler "addik\tr18,r18,-1" } } */ -+/* { dg-final { scan-assembler "bneid\tr18,.-4" } } */ -+/* { dg-final { scan-assembler "\srl\tr(\[0-9]\|\[1-2]\[0-9]\|3\[0-1]),r(\[0-9]\|\[1-2]\[0-9]\|3\[0-1])" } } */ --- -2.14.2 - diff --git a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-7/0020-Modified-MicroBlaze-trap-instruction.patch b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-7/0020-Modified-MicroBlaze-trap-instruction.patch deleted file mode 100644 index 00e79b93..00000000 --- a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-7/0020-Modified-MicroBlaze-trap-instruction.patch +++ /dev/null @@ -1,33 +0,0 @@ -From 1b9bd76840fc1e67770a23c58bf18a24a25eb2b9 Mon Sep 17 00:00:00 2001 -From: Mahesh Bodapati -Date: Sat, 26 Aug 2017 19:21:36 -0700 -Subject: [PATCH] Modified MicroBlaze trap instruction - -Modified trap instruction The instruction was wrongly written to brki -r0,-1 it should be bri r0. Modified with the correct instruction - -Signed-off-by: Nagaraju Mekala -Signed-off-by: Ajit Agarwal -Signed-off-by: Mahesh Bodapati -Signed-off-by: Manjukumar Matha -Upstream-Status: Pending ---- - gcc/config/microblaze/microblaze.md | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/gcc/config/microblaze/microblaze.md b/gcc/config/microblaze/microblaze.md -index abbe97c15f..a3954a24b6 100644 ---- a/gcc/config/microblaze/microblaze.md -+++ b/gcc/config/microblaze/microblaze.md -@@ -2343,7 +2343,7 @@ - (define_insn "trap" - [(trap_if (const_int 1) (const_int 0))] - "" -- "brki\tr0,-1" -+ "bri\t0" - [(set_attr "type" "trap")] - ) - --- -2.14.2 - diff --git a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-7/0021-Reducing-Stack-space-for-arguments-Currently-in-Micr.patch b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-7/0021-Reducing-Stack-space-for-arguments-Currently-in-Micr.patch deleted file mode 100644 index ead929ab..00000000 --- a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-7/0021-Reducing-Stack-space-for-arguments-Currently-in-Micr.patch +++ /dev/null @@ -1,212 +0,0 @@ -From f5416ee7ddc6e4853e57ed15fb2bf630de2c3b12 Mon Sep 17 00:00:00 2001 -From: Mahesh Bodapati -Date: Sat, 26 Aug 2017 19:21:37 -0700 -Subject: [PATCH] Reducing Stack space for arguments Currently in Microblaze - target stack space - -Reducing Stack space for arguments Currently in Microblaze target stack -space for arguments in register is being allocated even if there are no -arguments in the function. This patch will optimize the extra 24 bytes -that are being allocated. - -ChangeLog: -2015-04-17 Nagaraju Mekala - Ajit Agarwal - - * microblaze.c (microblaze_parm_needs_stack, microblaze_function_parms_need_stack): New - * microblaze.c (REG_PARM_STACK_SPACE): Modify - -Signed-off-by: Nagaraju Mekala -Signed-off-by: Ajit Agarwal -Signed-off-by: Mahesh Bodapati -Signed-off-by: Manjukumar Matha -Upstream-Status: Pending ---- - gcc/config/microblaze/microblaze-protos.h | 1 + - gcc/config/microblaze/microblaze.c | 134 +++++++++++++++++++++++++++++- - gcc/config/microblaze/microblaze.h | 4 +- - 3 files changed, 136 insertions(+), 3 deletions(-) - -diff --git a/gcc/config/microblaze/microblaze-protos.h b/gcc/config/microblaze/microblaze-protos.h -index b56e052ae4..a1408629cc 100644 ---- a/gcc/config/microblaze/microblaze-protos.h -+++ b/gcc/config/microblaze/microblaze-protos.h -@@ -57,6 +57,7 @@ extern int symbol_mentioned_p (rtx); - extern int label_mentioned_p (rtx); - extern bool microblaze_cannot_force_const_mem (machine_mode, rtx); - extern void microblaze_eh_return (rtx op0); -+int microblaze_reg_parm_stack_space(tree fun); - #endif /* RTX_CODE */ - - /* Declare functions in microblaze-c.c. */ -diff --git a/gcc/config/microblaze/microblaze.c b/gcc/config/microblaze/microblaze.c -index c1b0172bcf..f46dffff0d 100644 ---- a/gcc/config/microblaze/microblaze.c -+++ b/gcc/config/microblaze/microblaze.c -@@ -1965,6 +1965,138 @@ microblaze_must_save_register (int regno) - return 0; - } - -+static bool -+microblaze_parm_needs_stack (cumulative_args_t args_so_far, tree type) -+{ -+ enum machine_mode mode; -+ int unsignedp; -+ rtx entry_parm; -+ -+ /* Catch errors. */ -+ if (type == NULL || type == error_mark_node) -+ return true; -+ -+ if (TREE_CODE (type) == POINTER_TYPE) -+ return true; -+ -+ /* Handle types with no storage requirement. */ -+ if (TYPE_MODE (type) == VOIDmode) -+ return false; -+ -+ /* Handle complex types. */ -+ if (TREE_CODE (type) == COMPLEX_TYPE) -+ return (microblaze_parm_needs_stack (args_so_far, TREE_TYPE (type)) -+ || microblaze_parm_needs_stack (args_so_far, TREE_TYPE (type))); -+ -+ /* Handle transparent aggregates. */ -+ if ((TREE_CODE (type) == UNION_TYPE || TREE_CODE (type) == RECORD_TYPE) -+ && TYPE_TRANSPARENT_AGGR (type)) -+ type = TREE_TYPE (first_field (type)); -+ -+ /* See if this arg was passed by invisible reference. */ -+ if (pass_by_reference (get_cumulative_args (args_so_far), -+ TYPE_MODE (type), type, true)) -+ type = build_pointer_type (type); -+ -+ /* Find mode as it is passed by the ABI. */ -+ unsignedp = TYPE_UNSIGNED (type); -+ mode = promote_mode (type, TYPE_MODE (type), &unsignedp); -+ -+/* If there is no incoming register, we need a stack. */ -+ entry_parm = microblaze_function_arg (args_so_far, mode, type, true); -+ if (entry_parm == NULL) -+ return true; -+ -+ /* Likewise if we need to pass both in registers and on the stack. */ -+ if (GET_CODE (entry_parm) == PARALLEL -+ && XEXP (XVECEXP (entry_parm, 0, 0), 0) == NULL_RTX) -+ return true; -+ -+ /* Also true if we're partially in registers and partially not. */ -+ if (function_arg_partial_bytes (args_so_far, mode, type, true) != 0) -+ return true; -+ -+ /* Update info on where next arg arrives in registers. */ -+ microblaze_function_arg_advance (args_so_far, mode, type, true); -+ return false; -+ } -+ -+static bool -+microblaze_function_parms_need_stack (tree fun, bool incoming) -+{ -+ tree fntype, result; -+ CUMULATIVE_ARGS args_so_far_v; -+ cumulative_args_t args_so_far; -+ int num_of_args = 0; -+ -+ /* Must be a libcall, all of which only use reg parms. */ -+ if (!fun) -+ return true; -+ -+ fntype = fun; -+ if (!TYPE_P (fun)) -+ fntype = TREE_TYPE (fun); -+ -+ /* Varargs functions need the parameter save area. */ -+ if ((!incoming && !prototype_p (fntype)) || stdarg_p (fntype)) -+ return true; -+ -+ INIT_CUMULATIVE_ARGS(args_so_far_v, fntype, NULL_RTX,0,0); -+ args_so_far = pack_cumulative_args (&args_so_far_v); -+ -+ /* When incoming, we will have been passed the function decl. -+ * It is necessary to use the decl to handle K&R style functions, -+ * where TYPE_ARG_TYPES may not be available. */ -+ if (incoming) -+ { -+ gcc_assert (DECL_P (fun)); -+ result = DECL_RESULT (fun); -+ } -+ else -+ result = TREE_TYPE (fntype); -+ -+ if (result && aggregate_value_p (result, fntype)) -+ { -+ if (!TYPE_P (result)) -+ result = build_pointer_type (result); -+ microblaze_parm_needs_stack (args_so_far, result); -+ } -+ -+ if (incoming) -+ { -+ tree parm; -+ for (parm = DECL_ARGUMENTS (fun); -+ parm && parm != void_list_node; -+ parm = TREE_CHAIN (parm)) -+ if (microblaze_parm_needs_stack (args_so_far, TREE_TYPE (parm))) -+ return true; -+ } -+ else -+ { -+ function_args_iterator args_iter; -+ tree arg_type; -+ -+ FOREACH_FUNCTION_ARGS (fntype, arg_type, args_iter) -+ { -+ num_of_args++; -+ if (microblaze_parm_needs_stack (args_so_far, arg_type)) -+ return true; -+ } -+ } -+ -+ if (num_of_args > 3) return true; -+ -+ return false; -+} -+ -+int microblaze_reg_parm_stack_space(tree fun) -+{ -+ if (microblaze_function_parms_need_stack (fun,false)) -+ return MAX_ARGS_IN_REGISTERS * UNITS_PER_WORD; -+ else -+ return 0; -+} -+ - /* Return the bytes needed to compute the frame pointer from the current - stack pointer. - -@@ -3275,7 +3407,7 @@ microblaze_asm_output_mi_thunk (FILE *file, tree thunk_fndecl ATTRIBUTE_UNUSED, - emit_insn (gen_indirect_jump (temp2)); - - /* Run just enough of rest_of_compilation. This sequence was -- "borrowed" from rs6000.c. */ -+ "borrowed" from microblaze.c. */ - insn = get_insns (); - shorten_branches (insn); - final_start_function (insn, file, 1); -diff --git a/gcc/config/microblaze/microblaze.h b/gcc/config/microblaze/microblaze.h -index 0dd8b853e2..82e7e890be 100644 ---- a/gcc/config/microblaze/microblaze.h -+++ b/gcc/config/microblaze/microblaze.h -@@ -467,9 +467,9 @@ extern struct microblaze_frame_info current_frame_info; - - #define ARG_POINTER_CFA_OFFSET(FNDECL) 0 - --#define REG_PARM_STACK_SPACE(FNDECL) (MAX_ARGS_IN_REGISTERS * UNITS_PER_WORD) -+#define REG_PARM_STACK_SPACE(FNDECL) microblaze_reg_parm_stack_space(FNDECL) - --#define OUTGOING_REG_PARM_STACK_SPACE(FNTYPE) 1 -+#define OUTGOING_REG_PARM_STACK_SPACE(FNTYPE) 1 - - #define STACK_BOUNDARY 32 - --- -2.14.2 - diff --git a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-7/0022-Inline-Expansion-of-fsqrt-builtin.patch b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-7/0022-Inline-Expansion-of-fsqrt-builtin.patch deleted file mode 100644 index 6de17024..00000000 --- a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-7/0022-Inline-Expansion-of-fsqrt-builtin.patch +++ /dev/null @@ -1,64 +0,0 @@ -From cf85f09a0fade1e7827828a3dc9a526c212f3be7 Mon Sep 17 00:00:00 2001 -From: Mahesh Bodapati -Date: Sat, 26 Aug 2017 19:21:39 -0700 -Subject: [PATCH] Inline Expansion of fsqrt builtin - -Inline Expansion of fsqrt builtin. The changes are made in the patch for -the inline expansion of the fsqrt builtin with fqrt instruction. The -sqrt math function takes double as argument and return double as -argument. The pattern is selected while expanding the unary op through -expand_unop which passes DFmode and the DFmode pattern was not there -returning zero. Thus the sqrt math function is not inlined and expanded. -The pattern with DFmode argument is added. Also the source and -destination argument is not same the DF through two different -consecutive registers with lower 32 bit is the argument passed to sqrt -and the higher 32 bit is zero. If the source and destinations are -different the DFmode 64 bits registers is not set properly giving the -problem in runtime. Such changes are taken care in the implementation of -the pattern for DFmode for inline expansion of the sqrt. - -ChangeLog: - -2015-06-16 Ajit Agarwal - Nagaraju Mekala - - * config/microblaze/microblaze.md (sqrtdf2): New - pattern. - -Signed-off-by: Nagaraju Mekala -Signed-off-by: Ajit Agarwal -Signed-off-by: Mahesh Bodapati -Signed-off-by: Manjukumar Matha -Upstream-Status: Pending ---- - gcc/config/microblaze/microblaze.md | 14 ++++++++++++++ - 1 file changed, 14 insertions(+) - -diff --git a/gcc/config/microblaze/microblaze.md b/gcc/config/microblaze/microblaze.md -index a3954a24b6..13f8803428 100644 ---- a/gcc/config/microblaze/microblaze.md -+++ b/gcc/config/microblaze/microblaze.md -@@ -449,6 +449,20 @@ - (set_attr "mode" "SF") - (set_attr "length" "4")]) - -+(define_insn "sqrtdf2" -+ [(set (match_operand:DF 0 "register_operand" "=d") -+ (sqrt:DF (match_operand:DF 1 "register_operand" "dG")))] -+ "TARGET_HARD_FLOAT && TARGET_FLOAT_SQRT" -+ { -+ if (REGNO (operands[0]) == REGNO (operands[1])) -+ return "fsqrt\t%0,%1"; -+ else -+ return "fsqrt\t%0,%1\n\taddk\t%D0,%D1,r0"; -+ } -+ [(set_attr "type" "fsqrt") -+ (set_attr "mode" "SF") -+ (set_attr "length" "4")]) -+ - (define_insn "fix_truncsfsi2" - [(set (match_operand:SI 0 "register_operand" "=d") - (fix:SI (match_operand:SF 1 "register_operand" "d")))] --- -2.14.2 - diff --git a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-7/0023-Update-MicroBlaze-ashlsi3-movsf-patterns.patch b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-7/0023-Update-MicroBlaze-ashlsi3-movsf-patterns.patch deleted file mode 100644 index d8eb7695..00000000 --- a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-7/0023-Update-MicroBlaze-ashlsi3-movsf-patterns.patch +++ /dev/null @@ -1,78 +0,0 @@ -From f269f552e1abf182dc3749e0f29b1529fc82644a Mon Sep 17 00:00:00 2001 -From: Mahesh Bodapati -Date: Sat, 26 Aug 2017 19:21:42 -0700 -Subject: [PATCH] Update MicroBlaze ashlsi3 & movsf patterns - -This patch removes the use of HOST_WIDE_INT_PRINT_HEX macro in -print_operand of ashlsi3_with_mul_nodelay,ashlsi3_with_mul_delay and -movsf_internal patterns beacuse HOST_WIDE_INT_PRINT_HEX is generating -64-bit value which our instruction doesn't support so using gen_int_mode -function - -ChangeLog: - -2016-01-07 Nagaraju Mekala - Ajit Agarwal - - * microblaze.md (ashlsi3_with_mul_nodelay, - ashlsi3_with_mul_delay, - movsf_internal): - Updated the patterns to use gen_int_mode function - * microblaze.c (print_operand): - updated the 'F' case to use "unsinged int" instead - of HOST_WIDE_INT_PRINT_HEX - -Signed-off-by: Nagaraju Mekala -Signed-off-by: Ajit Agarwal -Signed-off-by: Mahesh Bodapati -Signed-off-by: Manjukumar Matha -Upstream-Status: Pending ---- - gcc/config/microblaze/microblaze.c | 2 +- - gcc/config/microblaze/microblaze.md | 10 ++++++++-- - 2 files changed, 9 insertions(+), 3 deletions(-) - -diff --git a/gcc/config/microblaze/microblaze.c b/gcc/config/microblaze/microblaze.c -index f46dffff0d..663b20a022 100644 ---- a/gcc/config/microblaze/microblaze.c -+++ b/gcc/config/microblaze/microblaze.c -@@ -2507,7 +2507,7 @@ print_operand (FILE * file, rtx op, int letter) - unsigned long value_long; - REAL_VALUE_TO_TARGET_SINGLE (*CONST_DOUBLE_REAL_VALUE (op), - value_long); -- fprintf (file, HOST_WIDE_INT_PRINT_HEX, value_long); -+ fprintf (file, "0x%08x", (unsigned int) value_long); - } - else - { -diff --git a/gcc/config/microblaze/microblaze.md b/gcc/config/microblaze/microblaze.md -index 13f8803428..b9c62b6d0f 100644 ---- a/gcc/config/microblaze/microblaze.md -+++ b/gcc/config/microblaze/microblaze.md -@@ -1366,7 +1366,10 @@ - (match_operand:SI 2 "immediate_operand" "I")))] - "!TARGET_SOFT_MUL - && ((1 << INTVAL (operands[2])) <= 32767 && (1 << INTVAL (operands[2])) >= -32768)" -- "muli\t%0,%1,%m2" -+ { -+ operands[2] = gen_int_mode (1 << INTVAL (operands[2]), SImode); -+ return "muli\t%0,%1,%2"; -+ } - ;; This MUL will not generate an imm. Can go into a delay slot. - [(set_attr "type" "arith") - (set_attr "mode" "SI") -@@ -1378,7 +1381,10 @@ - (ashift:SI (match_operand:SI 1 "register_operand" "d") - (match_operand:SI 2 "immediate_operand" "I")))] - "!TARGET_SOFT_MUL" -- "muli\t%0,%1,%m2" -+ { -+ operands[2] = gen_int_mode (1 << INTVAL (operands[2]), SImode); -+ return "muli\t%0,%1,%2"; -+ } - ;; This MUL will generate an IMM. Cannot go into a delay slot - [(set_attr "type" "no_delay_arith") - (set_attr "mode" "SI") --- -2.14.2 - diff --git a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-7/0024-8-stage-pipeline-for-microblaze.patch b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-7/0024-8-stage-pipeline-for-microblaze.patch deleted file mode 100644 index 6faa6251..00000000 --- a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-7/0024-8-stage-pipeline-for-microblaze.patch +++ /dev/null @@ -1,195 +0,0 @@ -From 17353cc4ba521f5ad928a1ede61cf03110e366ae Mon Sep 17 00:00:00 2001 -From: Mahesh Bodapati -Date: Sat, 26 Aug 2017 19:21:43 -0700 -Subject: [PATCH] 8-stage pipeline for microblaze - -This patch adds the support for the 8-stage pipeline. The new 8-stage -pipeline reduces the latencies of float & integer division drastically - -ChangeLog: - -2016-01-18 Nagaraju Mekala - - * microblaze.md (define_automaton mbpipe_8): New - * microblaze.c (microblaze_option_override): Update - Updated the logic to generate only when MB version is 10.0 - * microblaze.h (pipeline_type): Update - Update the enum with MICROBLAZE_PIPE_8 - * microblaze.opt (mxl-frequency): New - New flag added for 8-stage pipeline - -Signed-off-by: Nagaraju Mekala -Signed-off-by: Mahesh Bodapati -Signed-off-by: Manjukumar Matha -Upstream-Status: Pending ---- - gcc/config/microblaze/microblaze.c | 13 ++++++ - gcc/config/microblaze/microblaze.h | 3 +- - gcc/config/microblaze/microblaze.md | 79 +++++++++++++++++++++++++++++++++++- - gcc/config/microblaze/microblaze.opt | 4 ++ - 4 files changed, 96 insertions(+), 3 deletions(-) - -diff --git a/gcc/config/microblaze/microblaze.c b/gcc/config/microblaze/microblaze.c -index 663b20a022..e7697bf30d 100644 ---- a/gcc/config/microblaze/microblaze.c -+++ b/gcc/config/microblaze/microblaze.c -@@ -1773,6 +1773,19 @@ microblaze_option_override (void) - warning (0, "-mxl-reorder requires -mxl-pattern-compare for -mcpu=v8.30.a"); - TARGET_REORDER = 0; - } -+ ver = ver_int - microblaze_version_to_int("v10.0"); -+ if (ver < 0) -+ { -+ if (TARGET_AREA_OPTIMIZED_2) -+ warning (0, "-mxl-frequency can be used only with -mcpu=v10.0 or greater"); -+ } -+ else -+ { -+ if (TARGET_AREA_OPTIMIZED_2) -+ microblaze_pipe = MICROBLAZE_PIPE_8; -+ if (TARGET_BARREL_SHIFT) -+ microblaze_has_bitfield = 1; -+ } - - if (TARGET_MULTIPLY_HIGH && TARGET_SOFT_MUL) - error ("-mxl-multiply-high requires -mno-xl-soft-mul"); -diff --git a/gcc/config/microblaze/microblaze.h b/gcc/config/microblaze/microblaze.h -index 82e7e890be..3f48e48f10 100644 ---- a/gcc/config/microblaze/microblaze.h -+++ b/gcc/config/microblaze/microblaze.h -@@ -27,7 +27,8 @@ - enum pipeline_type - { - MICROBLAZE_PIPE_3 = 0, -- MICROBLAZE_PIPE_5 = 1 -+ MICROBLAZE_PIPE_5 = 1, -+ MICROBLAZE_PIPE_8 = 2 - }; - - #define MICROBLAZE_MASK_NO_UNSAFE_DELAY 0x00000001 -diff --git a/gcc/config/microblaze/microblaze.md b/gcc/config/microblaze/microblaze.md -index b9c62b6d0f..61d6412dac 100644 ---- a/gcc/config/microblaze/microblaze.md -+++ b/gcc/config/microblaze/microblaze.md -@@ -35,6 +35,7 @@ - (R_GOT 20) ;; GOT ptr reg - (MB_PIPE_3 0) ;; Microblaze 3-stage pipeline - (MB_PIPE_5 1) ;; Microblaze 5-stage pipeline -+ (MB_PIPE_8 2) ;; Microblaze 8-stage pipeline - (UNSPEC_SET_GOT 101) ;; - (UNSPEC_GOTOFF 102) ;; GOT offset - (UNSPEC_PLT 103) ;; jump table -@@ -80,7 +81,7 @@ - ;; bshift Shift operations - - (define_attr "type" -- "unknown,branch,jump,call,load,store,move,arith,darith,imul,idiv,icmp,multi,nop,no_delay_arith,no_delay_load,no_delay_store,no_delay_imul,no_delay_move,bshift,fadd,frsub,fmul,fdiv,fcmp,fsl,fsqrt,fcvt,trap" -+ "unknown,branch,jump,call,load,store,move,arith,darith,imul,idiv,icmp,multi,nop,no_delay_arith,no_delay_load,no_delay_store,no_delay_imul,no_delay_move,bshift,fadd,frsub,fmul,fdiv,fcmp,fsl,fsqrt,fcvt,fint,trap" - (const_string "unknown")) - - ;; Main data type used by the insn -@@ -222,6 +223,80 @@ - ;;----------------------------------------------------------------- - - -+ -+;;---------------------------------------------------------------- -+;; Microblaze 8-stage pipeline description (v10.0 and later) -+;;---------------------------------------------------------------- -+ -+(define_automaton "mbpipe_8") -+(define_cpu_unit "mb8_issue,mb8_iu,mb8_wb,mb8_fpu,mb8_fpu_2,mb8_mul,mb8_mul_2,mb8_div,mb8_div_2,mb8_bs,mb8_bs_2" "mbpipe_8") -+ -+(define_insn_reservation "mb8-integer" 1 -+ (and (eq_attr "type" "branch,jump,call,arith,darith,icmp,nop,no_delay_arith") -+ (eq (symbol_ref "microblaze_pipe") (const_int MB_PIPE_8))) -+ "mb8_issue,mb8_iu,mb8_wb") -+ -+(define_insn_reservation "mb8-special-move" 2 -+ (and (eq_attr "type" "move") -+ (eq (symbol_ref "microblaze_pipe") (const_int MB_PIPE_8))) -+ "mb8_issue,mb8_iu*2,mb8_wb") -+ -+(define_insn_reservation "mb8-mem-load" 3 -+ (and (eq_attr "type" "load,no_delay_load") -+ (eq (symbol_ref "microblaze_pipe") (const_int MB_PIPE_8))) -+ "mb8_issue,mb8_iu,mb8_wb") -+ -+(define_insn_reservation "mb8-mem-store" 1 -+ (and (eq_attr "type" "store,no_delay_store") -+ (eq (symbol_ref "microblaze_pipe") (const_int MB_PIPE_8))) -+ "mb8_issue,mb8_iu,mb8_wb") -+ -+(define_insn_reservation "mb8-mul" 3 -+ (and (eq_attr "type" "imul,no_delay_imul") -+ (eq (symbol_ref "microblaze_pipe") (const_int MB_PIPE_8))) -+ "mb8_issue,mb8_mul,mb8_mul_2*2,mb8_wb") -+ -+(define_insn_reservation "mb8-div" 30 -+ (and (eq_attr "type" "idiv") -+ (eq (symbol_ref "microblaze_pipe") (const_int MB_PIPE_8))) -+ "mb8_issue,mb8_div,mb8_div_2*29,mb8_wb") -+ -+(define_insn_reservation "mb8-bs" 2 -+ (and (eq_attr "type" "bshift") -+ (eq (symbol_ref "microblaze_pipe") (const_int MB_PIPE_8))) -+ "mb8_issue,mb8_bs,mb8_bs_2,mb8_wb") -+ -+(define_insn_reservation "mb8-fpu-add-sub-mul" 1 -+ (and (eq_attr "type" "fadd,frsub,fmul") -+ (eq (symbol_ref "microblaze_pipe") (const_int MB_PIPE_8))) -+ "mb8_issue,mb8_fpu,mb8_wb") -+ -+(define_insn_reservation "mb8-fpu-fcmp" 3 -+ (and (eq_attr "type" "fcmp") -+ (eq (symbol_ref "microblaze_pipe") (const_int MB_PIPE_8))) -+ "mb8_issue,mb8_fpu,mb8_fpu*2,mb8_wb") -+ -+(define_insn_reservation "mb8-fpu-div" 24 -+ (and (eq_attr "type" "fdiv") -+ (eq (symbol_ref "microblaze_pipe") (const_int MB_PIPE_8))) -+ "mb8_issue,mb8_fpu,mb8_fpu_2*23,mb8_wb") -+ -+(define_insn_reservation "mb8-fpu-sqrt" 23 -+ (and (eq_attr "type" "fsqrt") -+ (eq (symbol_ref "microblaze_pipe") (const_int MB_PIPE_8))) -+ "mb8_issue,mb8_fpu,mb8_fpu_2*22,mb8_wb") -+ -+(define_insn_reservation "mb8-fpu-fcvt" 1 -+ (and (eq_attr "type" "fcvt") -+ (eq (symbol_ref "microblaze_pipe") (const_int MB_PIPE_8))) -+ "mb8_issue,mb8_fpu,mb8_wb") -+ -+(define_insn_reservation "mb8-fpu-fint" 2 -+ (and (eq_attr "type" "fint") -+ (eq (symbol_ref "microblaze_pipe") (const_int MB_PIPE_8))) -+ "mb8_issue,mb8_fpu,mb8_wb") -+ -+ - ;;---------------------------------------------------------------- - ;; Microblaze 5-stage pipeline description (v5.00.a and later) - ;;---------------------------------------------------------------- -@@ -468,7 +543,7 @@ - (fix:SI (match_operand:SF 1 "register_operand" "d")))] - "TARGET_HARD_FLOAT && TARGET_FLOAT_CONVERT" - "fint\t%0,%1" -- [(set_attr "type" "fcvt") -+ [(set_attr "type" "fint") - (set_attr "mode" "SF") - (set_attr "length" "4")]) - -diff --git a/gcc/config/microblaze/microblaze.opt b/gcc/config/microblaze/microblaze.opt -index 8847c3daf8..85a9929d74 100644 ---- a/gcc/config/microblaze/microblaze.opt -+++ b/gcc/config/microblaze/microblaze.opt -@@ -129,3 +129,7 @@ Use hardware prefetch instruction - - mxl-mode-xilkernel - Target -+ -+mxl-frequency -+Target Mask(AREA_OPTIMIZED_2) -+Use 8 stage pipeline (frequency optimization) --- -2.14.2 - diff --git a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-7/0025-MicroBlaze-correct-the-const-high-double-immediate-v.patch b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-7/0025-MicroBlaze-correct-the-const-high-double-immediate-v.patch deleted file mode 100644 index ff8e6107..00000000 --- a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-7/0025-MicroBlaze-correct-the-const-high-double-immediate-v.patch +++ /dev/null @@ -1,72 +0,0 @@ -From fabd23a354496701b4a9ebf6931485b0d61c7bbe Mon Sep 17 00:00:00 2001 -From: Mahesh Bodapati -Date: Sat, 26 Aug 2017 19:21:45 -0700 -Subject: [PATCH] MicroBlaze correct the const high double immediate value - -With this patch the loading of the DI mode immediate values will be -using REAL_VALUE_FROM_CONST_DOUBLE and REAL_VALUE_TO_TARGET_DOUBLE -functions, as CONST_DOUBLE_HIGH was returning the sign extension value -even of the unsigned long long constants also - -ChangeLog: - -2016-02-03 Nagaraju Mekala - Ajit Agarwal - - * microblaze.c (print_operand): Use REAL_VALUE_FROM_CONST_DOUBLE & - REAL_VALUE_TO_TARGET_DOUBLE - * long.c (new): Added new testcase - -Signed-off-by: Nagaraju Mekala -Signed-off-by: Ajit Agarwal -Signed-off-by: Mahesh Bodapati -Signed-off-by: Manjukumar Matha -Upstream-Status: Pending ---- - gcc/config/microblaze/microblaze.c | 6 ++++-- - gcc/testsuite/gcc.target/microblaze/long.c | 10 ++++++++++ - 2 files changed, 14 insertions(+), 2 deletions(-) - create mode 100644 gcc/testsuite/gcc.target/microblaze/long.c - -diff --git a/gcc/config/microblaze/microblaze.c b/gcc/config/microblaze/microblaze.c -index e7697bf30d..96bf6e1cab 100644 ---- a/gcc/config/microblaze/microblaze.c -+++ b/gcc/config/microblaze/microblaze.c -@@ -2493,14 +2493,16 @@ print_operand (FILE * file, rtx op, int letter) - else if (letter == 'h' || letter == 'j') - { - long val[2]; -+ long l[2]; - if (code == CONST_DOUBLE) - { - if (GET_MODE (op) == DFmode) - REAL_VALUE_TO_TARGET_DOUBLE (*CONST_DOUBLE_REAL_VALUE (op), val); - else - { -- val[0] = CONST_DOUBLE_HIGH (op); -- val[1] = CONST_DOUBLE_LOW (op); -+ REAL_VALUE_TO_TARGET_DOUBLE (*CONST_DOUBLE_REAL_VALUE (op), l); -+ val[1] = l[WORDS_BIG_ENDIAN == 0]; -+ val[0] = l[WORDS_BIG_ENDIAN != 0]; - } - } - else if (code == CONST_INT) -diff --git a/gcc/testsuite/gcc.target/microblaze/long.c b/gcc/testsuite/gcc.target/microblaze/long.c -new file mode 100644 -index 0000000000..4d4518619d ---- /dev/null -+++ b/gcc/testsuite/gcc.target/microblaze/long.c -@@ -0,0 +1,10 @@ -+/* { dg-options "-O0" } */ -+#define BASEADDR 0xF0000000ULL -+int main () -+{ -+ unsigned long long start; -+ start = (unsigned long long) BASEADDR; -+ return 0; -+} -+/* { dg-final { scan-assembler "addik\tr(\[0-9]\|\[1-2]\[0-9]\|3\[0-1]),r0,0x00000000" } } */ -+/* { dg-final { scan-assembler "addik\tr(\[0-9]\|\[1-2]\[0-9]\|3\[0-1]),r0,0xf0000000" } } */ --- -2.14.2 - diff --git a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-7/0026-Fix-internal-compiler-error-with-msmall-divides.patch b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-7/0026-Fix-internal-compiler-error-with-msmall-divides.patch deleted file mode 100644 index 7ea28ee8..00000000 --- a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-7/0026-Fix-internal-compiler-error-with-msmall-divides.patch +++ /dev/null @@ -1,42 +0,0 @@ -From 2149d85f1f7375dd97bf961b2bdb693d6d931c13 Mon Sep 17 00:00:00 2001 -From: Mahesh Bodapati -Date: Sat, 26 Aug 2017 19:21:46 -0700 -Subject: [PATCH] Fix internal compiler error with msmall-divides - -This patch will fix the internal error microblaze_expand_divide function -which comes because of rtx PLUS where the mem_rtx is of type SI and the -operand is of type QImode. This patch modifies the mem_rtx as QImode and -Plus as QImode to fix the error. - -ChangeLog: - -2016-02-23 Nagaraju Mekala - Ajit Agarwal - - * microblaze.c (microblaze_expand_divide): Update - -Signed-off-by: Nagaraju Mekala -Signed-off-by: Ajit Agarwal -Signed-off-by: Mahesh Bodapati -Signed-off-by: Manjukumar Matha -Upstream-Status: Pending ---- - gcc/config/microblaze/microblaze.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/gcc/config/microblaze/microblaze.c b/gcc/config/microblaze/microblaze.c -index 96bf6e1cab..a41121264e 100644 ---- a/gcc/config/microblaze/microblaze.c -+++ b/gcc/config/microblaze/microblaze.c -@@ -3719,7 +3719,7 @@ microblaze_expand_divide (rtx operands[]) - emit_insn (gen_ashlsi3_bshift (regt1, operands[1], GEN_INT(4))); - emit_insn (gen_addsi3 (regt1, regt1, operands[2])); - mem_rtx = gen_rtx_MEM (QImode, -- gen_rtx_PLUS (Pmode, regt1, div_table_rtx)); -+ gen_rtx_PLUS (QImode, regt1, div_table_rtx)); - - insn = emit_insn (gen_zero_extendqisi2(operands[0],mem_rtx)); - jump = emit_jump_insn_after (gen_jump (div_end_label), insn); --- -2.14.2 - diff --git a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-7/0027-Fix-the-calculation-of-high-word-in-a-long-long-64-b.patch b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-7/0027-Fix-the-calculation-of-high-word-in-a-long-long-64-b.patch deleted file mode 100644 index 97422aea..00000000 --- a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-7/0027-Fix-the-calculation-of-high-word-in-a-long-long-64-b.patch +++ /dev/null @@ -1,48 +0,0 @@ -From 34049c9fcaa256befad032cbcd8aa74beecf13dc Mon Sep 17 00:00:00 2001 -From: Mahesh Bodapati -Date: Sat, 26 Aug 2017 19:21:47 -0700 -Subject: [PATCH] Fix the calculation of high word in a long long 64-bit - -This patch will change the calculation of high word in a long long 64-bit. -Earlier to this patch the high word of long long word (0xF0000000ULL) is -coming to be 0xFFFFFFFF and low word is 0xF0000000. Instead the high word -should be 0x00000000 and the low word should be 0xF0000000. This patch -removes the condition of checking high word = 0 & low word < 0. -This check is not required for the correctness of calculating 32-bit high -and low words in a 64-bit long long. - -ChangeLog: - -2016-03-01 Nagaraju Mekala - Ajit Agarwal - - * config/microblaze/microblaze.c (print_operand): Remove the - condition of checking high word = 0 & low word < 0. - * testsuite/gcc.target/microblaze/others/long.c: Add -O0 option. - -Signed-off-by: Nagaraju Mekala -Signed-off-by: Ajit Agarwal -Signed-off-by: Mahesh Bodapati -Signed-off-by: Manjukumar Matha -Upstream-Status: Pending ---- - gcc/config/microblaze/microblaze.c | 3 --- - 1 file changed, 3 deletions(-) - -diff --git a/gcc/config/microblaze/microblaze.c b/gcc/config/microblaze/microblaze.c -index a41121264e..2ed64971fb 100644 ---- a/gcc/config/microblaze/microblaze.c -+++ b/gcc/config/microblaze/microblaze.c -@@ -2509,9 +2509,6 @@ print_operand (FILE * file, rtx op, int letter) - { - val[0] = (INTVAL (op) & 0xffffffff00000000LL) >> 32; - val[1] = INTVAL (op) & 0x00000000ffffffffLL; -- if (val[0] == 0 && val[1] < 0) -- val[0] = -1; -- - } - fprintf (file, "0x%8.8lx", (letter == 'h') ? val[0] : val[1]); - } --- -2.14.2 - diff --git a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-7/0028-Add-new-bit-field-instructions.patch b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-7/0028-Add-new-bit-field-instructions.patch deleted file mode 100644 index 02940e2f..00000000 --- a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-7/0028-Add-new-bit-field-instructions.patch +++ /dev/null @@ -1,126 +0,0 @@ -From 90b6f833bd59f89d4192a3dc787fc2c9115b9c00 Mon Sep 17 00:00:00 2001 -From: Mahesh Bodapati -Date: Sat, 26 Aug 2017 19:21:48 -0700 -Subject: [PATCH] Add new bit-field instructions - -This patches adds new bsefi and bsifi instructions. BSEFI- The -instruction shall extract a bit field from a register and place it -right-adjusted in the destination register. The other bits in the -destination register shall be set to zero BSIFI- The instruction shall -insert a right-adjusted bit field from a register at another position in -the destination register. The rest of the bits in the destination -register shall be unchanged - -ChangeLog: - -2016-02-03 Nagaraju Mekala - - * microblaze.md (Update): Added new patterns - -Signed-off-by: Nagaraju Mekala -Signed-off-by: Mahesh Bodapati -Signed-off-by: Manjukumar Matha -Upstream-Status: Pending ---- - gcc/config/microblaze/microblaze.md | 73 +++++++++++++++++++++++++++++++++++++ - 1 file changed, 73 insertions(+) - -diff --git a/gcc/config/microblaze/microblaze.md b/gcc/config/microblaze/microblaze.md -index 61d6412dac..7a00629922 100644 ---- a/gcc/config/microblaze/microblaze.md -+++ b/gcc/config/microblaze/microblaze.md -@@ -980,6 +980,8 @@ - (set_attr "mode" "DI") - (set_attr "length" "20,20,20")]) - -+ -+ - ;;---------------------------------------------------------------- - ;; Data movement - ;;---------------------------------------------------------------- -@@ -1774,6 +1776,7 @@ - (set_attr "length" "28")] - ) - -+ - ;;---------------------------------------------------------------- - ;; Setting a register from an integer comparison. - ;;---------------------------------------------------------------- -@@ -2473,4 +2476,74 @@ - DONE; - }") - -+(define_expand "extvsi" -+ [(set (match_operand:SI 0 "register_operand" "r") -+ (zero_extract:SI (match_operand:SI 1 "register_operand" "r") -+ (match_operand:SI 2 "immediate_operand" "I") -+ (match_operand:SI 3 "immediate_operand" "I")))] -+"TARGET_HAS_BITFIELD" -+" -+{ -+ unsigned HOST_WIDE_INT len = UINTVAL (operands[2]); -+ unsigned HOST_WIDE_INT pos = UINTVAL (operands[3]); -+ -+ if ((len == 0) || (pos + len > 32) ) -+ FAIL; -+ -+ ;;if (!register_operand (operands[1], VOIDmode)) -+ ;; FAIL; -+ if (operands[0] == operands[1]) -+ FAIL; -+ if (GET_CODE (operands[1]) == ASHIFT) -+ FAIL; -+;; operands[2] = GEN_INT(INTVAL(operands[2])+1 ); -+ emit_insn (gen_extv_32 (operands[0], operands[1], -+ operands[2], operands[3])); -+ DONE; -+}") -+ -+(define_insn "extv_32" -+ [(set (match_operand:SI 0 "register_operand" "=r") -+ (zero_extract:SI (match_operand:SI 1 "register_operand" "r") -+ (match_operand:SI 2 "immediate_operand" "I") -+ (match_operand:SI 3 "immediate_operand" "I")))] -+ "TARGET_HAS_BITFIELD && (UINTVAL (operands[2]) > 0) -+ && ((UINTVAL (operands[2]) + UINTVAL (operands[3])) <= 32)" -+ "bsefi %0,%1,%2,%3" -+ [(set_attr "type" "bshift") -+ (set_attr "length" "4")]) -+ -+(define_expand "insvsi" -+ [(set (zero_extract:SI (match_operand:SI 0 "register_operand" "+r") -+ (match_operand:SI 1 "immediate_operand" "I") -+ (match_operand:SI 2 "immediate_operand" "I")) -+ (match_operand:SI 3 "register_operand" "r"))] -+ "TARGET_HAS_BITFIELD" -+ " -+{ -+ unsigned HOST_WIDE_INT len = UINTVAL (operands[1]); -+ unsigned HOST_WIDE_INT pos = UINTVAL (operands[2]); -+ -+ if (len <= 0 || pos + len > 32) -+ FAIL; -+ -+ ;;if (!register_operand (operands[0], VOIDmode)) -+ ;; FAIL; -+ -+ emit_insn (gen_insv_32 (operands[0], operands[1], -+ operands[2], operands[3])); -+ DONE; -+}") -+ -+(define_insn "insv_32" -+ [(set (zero_extract:SI (match_operand:SI 0 "register_operand" "+r") -+ (match_operand:SI 1 "immediate_operand" "I") -+ (match_operand:SI 2 "immediate_operand" "I")) -+ (match_operand:SI 3 "register_operand" "r"))] -+ "TARGET_HAS_BITFIELD && UINTVAL (operands[1]) > 0 -+ && UINTVAL (operands[1]) + UINTVAL (operands[2]) <= 32" -+ "bsifi %0, %3, %1, %2" -+ [(set_attr "type" "bshift") -+ (set_attr "length" "4")]) -+ - (include "sync.md") --- -2.14.2 - diff --git a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-7/0029-Fix-bug-in-MB-version-calculation.patch b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-7/0029-Fix-bug-in-MB-version-calculation.patch deleted file mode 100644 index c3e4bc9e..00000000 --- a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-7/0029-Fix-bug-in-MB-version-calculation.patch +++ /dev/null @@ -1,250 +0,0 @@ -From 3eada9d81437d378ef24f11a8bd046fee5b3505a Mon Sep 17 00:00:00 2001 -From: Mahesh Bodapati -Date: Sat, 26 Aug 2017 19:21:49 -0700 -Subject: [PATCH] Fix bug in MB version calculation - -This patch fixes the bug in microblaze_version_to_int function. Earlier -the conversion of vXX.YY.Z to int has a bug which is fixed now. - -Signed-off-by: Mahesh Bodapati -Signed-off-by: Nagaraju Mekala -Signed-off-by: Manjukumar Matha -Upstream-Status: Pending ---- - gcc/config/microblaze/microblaze.c | 147 ++++++++++++++++++------------------- - 1 file changed, 70 insertions(+), 77 deletions(-) - -diff --git a/gcc/config/microblaze/microblaze.c b/gcc/config/microblaze/microblaze.c -index 2ed64971fb..55dba83882 100644 ---- a/gcc/config/microblaze/microblaze.c -+++ b/gcc/config/microblaze/microblaze.c -@@ -239,6 +239,63 @@ section *sdata2_section; - #define TARGET_HAVE_TLS true - #endif - -+/* Convert a version number of the form "vX.YY.Z" to an integer encoding -+ for easier range comparison. */ -+static int -+microblaze_version_to_int (const char *version) -+{ -+ const char *p, *v; -+ const char *tmpl = "vXX.YY.Z"; -+ int iver1 =0, iver2 =0, iver3 =0; -+ -+ p = version; -+ v = tmpl; -+ -+ while (*p) -+ { -+ if (*v == 'X') -+ { /* Looking for major */ -+ if (*p == '.') -+ { -+ *v++; -+ } -+ else -+ { -+ if (!(*p >= '0' && *p <= '9')) -+ return -1; -+ iver1 += (int) (*p - '0'); -+ iver1 *= 1000; -+ } -+ } -+ else if (*v == 'Y') -+ { /* Looking for minor */ -+ if (!(*p >= '0' && *p <= '9')) -+ return -1; -+ iver2 += (int) (*p - '0'); -+ iver2 *= 10; -+ } -+ else if (*v == 'Z') -+ { /* Looking for compat */ -+ if (!(*p >= 'a' && *p <= 'z')) -+ return -1; -+ iver3 = ((int) (*p)) - 96; -+ } -+ else -+ { -+ if (*p != *v) -+ return -1; -+ } -+ -+ v++; -+ p++; -+ } -+ -+ if (*p) -+ return -1; -+ -+ return iver1 + iver2 + iver3; -+} -+ - /* Return truth value if a CONST_DOUBLE is ok to be a legitimate constant. */ - static bool - microblaze_const_double_ok (rtx op, machine_mode mode) -@@ -1267,8 +1324,7 @@ microblaze_rtx_costs (rtx x, machine_mode mode, int outer_code ATTRIBUTE_UNUSED, - { - if (TARGET_BARREL_SHIFT) - { -- if (MICROBLAZE_VERSION_COMPARE (microblaze_select_cpu, "v5.00.a") -- >= 0) -+ if (microblaze_version_to_int(microblaze_select_cpu) >= microblaze_version_to_int("v5.00.a")) - *total = COSTS_N_INSNS (1); - else - *total = COSTS_N_INSNS (2); -@@ -1329,8 +1385,7 @@ microblaze_rtx_costs (rtx x, machine_mode mode, int outer_code ATTRIBUTE_UNUSED, - } - else if (!TARGET_SOFT_MUL) - { -- if (MICROBLAZE_VERSION_COMPARE (microblaze_select_cpu, "v5.00.a") -- >= 0) -+ if (microblaze_version_to_int(microblaze_select_cpu) >= microblaze_version_to_int("v5.00.a")) - *total = COSTS_N_INSNS (1); - else - *total = COSTS_N_INSNS (3); -@@ -1610,72 +1665,13 @@ function_arg_partial_bytes (cumulative_args_t cum_v, machine_mode mode, - return 0; - } - --/* Convert a version number of the form "vX.YY.Z" to an integer encoding -- for easier range comparison. */ --static int --microblaze_version_to_int (const char *version) --{ -- const char *p, *v; -- const char *tmpl = "vXX.YY.Z"; -- int iver = 0; -- -- p = version; -- v = tmpl; -- -- while (*p) -- { -- if (*v == 'X') -- { /* Looking for major */ -- if (*p == '.') -- { -- v++; -- } -- else -- { -- if (!(*p >= '0' && *p <= '9')) -- return -1; -- iver += (int) (*p - '0'); -- iver *= 10; -- } -- } -- else if (*v == 'Y') -- { /* Looking for minor */ -- if (!(*p >= '0' && *p <= '9')) -- return -1; -- iver += (int) (*p - '0'); -- iver *= 10; -- } -- else if (*v == 'Z') -- { /* Looking for compat */ -- if (!(*p >= 'a' && *p <= 'z')) -- return -1; -- iver *= 10; -- iver += (int) (*p - 'a'); -- } -- else -- { -- if (*p != *v) -- return -1; -- } -- -- v++; -- p++; -- } -- -- if (*p) -- return -1; -- -- return iver; --} -- -- - static void - microblaze_option_override (void) - { - register int i, start; - register int regno; - register machine_mode mode; -- int ver; -+ int ver,ver_int; - - microblaze_section_threshold = (global_options_set.x_g_switch_value - ? g_switch_value -@@ -1696,13 +1692,13 @@ microblaze_option_override (void) - /* Check the MicroBlaze CPU version for any special action to be done. */ - if (microblaze_select_cpu == NULL) - microblaze_select_cpu = MICROBLAZE_DEFAULT_CPU; -- ver = microblaze_version_to_int (microblaze_select_cpu); -- if (ver == -1) -+ ver_int = microblaze_version_to_int (microblaze_select_cpu); -+ if (ver_int == -1) - { - error ("%qs is an invalid argument to -mcpu=", microblaze_select_cpu); - } - -- ver = MICROBLAZE_VERSION_COMPARE (microblaze_select_cpu, "v3.00.a"); -+ ver = ver_int - microblaze_version_to_int("v3.00.a"); - if (ver < 0) - { - /* No hardware exceptions in earlier versions. So no worries. */ -@@ -1713,8 +1709,7 @@ microblaze_option_override (void) - microblaze_pipe = MICROBLAZE_PIPE_3; - } - else if (ver == 0 -- || (MICROBLAZE_VERSION_COMPARE (microblaze_select_cpu, "v4.00.b") -- == 0)) -+ || (ver_int == microblaze_version_to_int("v4.00.b"))) - { - #if 0 - microblaze_select_flags |= (MICROBLAZE_MASK_NO_UNSAFE_DELAY); -@@ -1731,11 +1726,9 @@ microblaze_option_override (void) - #endif - microblaze_no_unsafe_delay = 0; - microblaze_pipe = MICROBLAZE_PIPE_5; -- if (MICROBLAZE_VERSION_COMPARE (microblaze_select_cpu, "v5.00.a") == 0 -- || MICROBLAZE_VERSION_COMPARE (microblaze_select_cpu, -- "v5.00.b") == 0 -- || MICROBLAZE_VERSION_COMPARE (microblaze_select_cpu, -- "v5.00.c") == 0) -+ if ((ver_int == microblaze_version_to_int("v5.00.a")) -+ || (ver_int == microblaze_version_to_int("v5.00.b")) -+ || (ver_int == microblaze_version_to_int("v5.00.c"))) - { - /* Pattern compares are to be turned on by default only when - compiling for MB v5.00.'z'. */ -@@ -1743,7 +1736,7 @@ microblaze_option_override (void) - } - } - -- ver = MICROBLAZE_VERSION_COMPARE (microblaze_select_cpu, "v6.00.a"); -+ ver = ver_int - microblaze_version_to_int("v6.00.a"); - if (ver < 0) - { - if (TARGET_MULTIPLY_HIGH) -@@ -1751,7 +1744,7 @@ microblaze_option_override (void) - "-mxl-multiply-high can be used only with -mcpu=v6.00.a or greater"); - } - -- ver = MICROBLAZE_VERSION_COMPARE (microblaze_select_cpu, "v8.10.a"); -+ ver = ver_int - microblaze_version_to_int("v8.10.a"); - microblaze_has_clz = 1; - if (ver < 0) - { -@@ -1760,7 +1753,7 @@ microblaze_option_override (void) - } - - /* TARGET_REORDER defaults to 2 if -mxl-reorder not specified. */ -- ver = MICROBLAZE_VERSION_COMPARE (microblaze_select_cpu, "v8.30.a"); -+ ver = ver_int - microblaze_version_to_int("v8.30.a"); - if (ver < 0) - { - if (TARGET_REORDER == 1) --- -2.14.2 - diff --git a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-7/0030-MicroBlaze-fixing-the-bug-in-the-bit-field-instructi.patch b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-7/0030-MicroBlaze-fixing-the-bug-in-the-bit-field-instructi.patch deleted file mode 100644 index 1d877be6..00000000 --- a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-7/0030-MicroBlaze-fixing-the-bug-in-the-bit-field-instructi.patch +++ /dev/null @@ -1,52 +0,0 @@ -From 0c740ddd203433ef8d979348c085269f8b97cbfc Mon Sep 17 00:00:00 2001 -From: Mahesh Bodapati -Date: Sat, 26 Aug 2017 19:21:50 -0700 -Subject: [PATCH] MicroBlaze fixing the bug in the bit-field instruction. - -Bit field instruction should be generated only if mcpu >10.0 - -Signed-off-by: Mahesh Bodapati -Signed-off-by: Manjukumar Matha -Upstream-Status: Pending ---- - gcc/config/microblaze/microblaze.c | 3 +++ - gcc/config/microblaze/microblaze.h | 2 ++ - 2 files changed, 5 insertions(+) - -diff --git a/gcc/config/microblaze/microblaze.c b/gcc/config/microblaze/microblaze.c -index 55dba83882..4f6d399bba 100644 ---- a/gcc/config/microblaze/microblaze.c -+++ b/gcc/config/microblaze/microblaze.c -@@ -159,6 +159,9 @@ int microblaze_no_unsafe_delay; - /* Set to one if the targeted core has the CLZ insn. */ - int microblaze_has_clz = 0; - -+/* Set to one if the targeted core has barrel-shift and cpu > 10.0 */ -+int microblaze_has_bitfield = 0; -+ - /* Which CPU pipeline do we use. We haven't really standardized on a CPU - version having only a particular type of pipeline. There can still be - options on the CPU to scale pipeline features up or down. :( -diff --git a/gcc/config/microblaze/microblaze.h b/gcc/config/microblaze/microblaze.h -index 3f48e48f10..712525f856 100644 ---- a/gcc/config/microblaze/microblaze.h -+++ b/gcc/config/microblaze/microblaze.h -@@ -44,6 +44,7 @@ extern int microblaze_dbx_regno[]; - - extern int microblaze_no_unsafe_delay; - extern int microblaze_has_clz; -+extern int microblaze_has_bitfield; - extern enum pipeline_type microblaze_pipe; - - #define OBJECT_FORMAT_ELF -@@ -62,6 +63,7 @@ extern enum pipeline_type microblaze_pipe; - - /* Do we have CLZ? */ - #define TARGET_HAS_CLZ (TARGET_PATTERN_COMPARE && microblaze_has_clz) -+#define TARGET_HAS_BITFIELD (TARGET_BARREL_SHIFT && microblaze_has_bitfield) - - /* The default is to support PIC. */ - #define TARGET_SUPPORTS_PIC 1 --- -2.14.2 - diff --git a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-7/0031-Fixing-the-issue-with-MicroBlaze-builtin_alloc.patch b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-7/0031-Fixing-the-issue-with-MicroBlaze-builtin_alloc.patch deleted file mode 100644 index 3786a71a..00000000 --- a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-7/0031-Fixing-the-issue-with-MicroBlaze-builtin_alloc.patch +++ /dev/null @@ -1,48 +0,0 @@ -From fdb99f97b41f7cd06b81e668b88463d0fc2cbe87 Mon Sep 17 00:00:00 2001 -From: Nagaraju Mekala -Date: Sat, 26 Aug 2017 19:21:54 -0700 -Subject: [PATCH] Fixing the issue with MicroBlaze builtin_alloc - -Fixing the issue with the builtin_alloc. Register r18 was not properly -handling the stack pattern which was resolved by using free available -register - -Signed-off-by: Nagaraju Mekala -Signed-off-by: Manjukumar Matha -Upstream-Status: Pending ---- - gcc/config/microblaze/microblaze.md | 8 ++++---- - 1 file changed, 4 insertions(+), 4 deletions(-) - -diff --git a/gcc/config/microblaze/microblaze.md b/gcc/config/microblaze/microblaze.md -index 7a00629922..68c3b22bd4 100644 ---- a/gcc/config/microblaze/microblaze.md -+++ b/gcc/config/microblaze/microblaze.md -@@ -2076,10 +2076,10 @@ - "" - { - rtx retaddr = gen_rtx_MEM (Pmode, stack_pointer_rtx); -- rtx rtmp = gen_rtx_REG (SImode, R_TMP); -+ rtx reg = gen_reg_rtx (Pmode); - rtx neg_op0; - -- emit_move_insn (rtmp, retaddr); -+ emit_move_insn (reg, retaddr); - if (GET_CODE (operands[1]) != CONST_INT) - { - neg_op0 = gen_reg_rtx (Pmode); -@@ -2088,9 +2088,9 @@ - neg_op0 = GEN_INT (- INTVAL (operands[1])); - - emit_insn (gen_addsi3 (stack_pointer_rtx, stack_pointer_rtx, neg_op0)); -- emit_move_insn (gen_rtx_MEM (Pmode, stack_pointer_rtx), rtmp); -+ emit_move_insn (gen_rtx_MEM (Pmode, stack_pointer_rtx), reg); - emit_move_insn (operands[0], virtual_stack_dynamic_rtx); -- emit_insn (gen_rtx_CLOBBER (SImode, rtmp)); -+ emit_insn (gen_rtx_CLOBBER (SImode, reg)); - DONE; - } - ) --- -2.14.2 - diff --git a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-7/0032-MicroBlaze-remove-bitfield-instructions-macros.patch b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-7/0032-MicroBlaze-remove-bitfield-instructions-macros.patch deleted file mode 100644 index 29bc752e..00000000 --- a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-7/0032-MicroBlaze-remove-bitfield-instructions-macros.patch +++ /dev/null @@ -1,83 +0,0 @@ -From 646fe1dbaca06f2fe2df4c0da3fa20e0aff0a4ec Mon Sep 17 00:00:00 2001 -From: Nagaraju Mekala -Date: Sat, 26 Aug 2017 19:21:56 -0700 -Subject: [PATCH] MicroBlaze remove bitfield instructions macros - -Remove the conditions in the bit field expand macros to generate the -instructions in structure bit-field usecases - -ChangeLog: - -2018-08-16 Nagaraju Mekala - - * gcc/config/microblaze/microblaze.md: - remove the expand constraints - -Signed-off-by: Nagaraju Mekala -Signed-off-by: Manjukumar Matha -Upstream-Status: Pending ---- - gcc/config/microblaze/microblaze.md | 40 +++++-------------------------------- - 1 file changed, 5 insertions(+), 35 deletions(-) - -diff --git a/gcc/config/microblaze/microblaze.md b/gcc/config/microblaze/microblaze.md -index 68c3b22bd4..ef53c3069e 100644 ---- a/gcc/config/microblaze/microblaze.md -+++ b/gcc/config/microblaze/microblaze.md -@@ -2482,25 +2482,8 @@ - (match_operand:SI 2 "immediate_operand" "I") - (match_operand:SI 3 "immediate_operand" "I")))] - "TARGET_HAS_BITFIELD" --" --{ -- unsigned HOST_WIDE_INT len = UINTVAL (operands[2]); -- unsigned HOST_WIDE_INT pos = UINTVAL (operands[3]); -- -- if ((len == 0) || (pos + len > 32) ) -- FAIL; -- -- ;;if (!register_operand (operands[1], VOIDmode)) -- ;; FAIL; -- if (operands[0] == operands[1]) -- FAIL; -- if (GET_CODE (operands[1]) == ASHIFT) -- FAIL; --;; operands[2] = GEN_INT(INTVAL(operands[2])+1 ); -- emit_insn (gen_extv_32 (operands[0], operands[1], -- operands[2], operands[3])); -- DONE; --}") -+"" -+) - - (define_insn "extv_32" - [(set (match_operand:SI 0 "register_operand" "=r") -@@ -2518,22 +2501,9 @@ - (match_operand:SI 1 "immediate_operand" "I") - (match_operand:SI 2 "immediate_operand" "I")) - (match_operand:SI 3 "register_operand" "r"))] -- "TARGET_HAS_BITFIELD" -- " --{ -- unsigned HOST_WIDE_INT len = UINTVAL (operands[1]); -- unsigned HOST_WIDE_INT pos = UINTVAL (operands[2]); -- -- if (len <= 0 || pos + len > 32) -- FAIL; -- -- ;;if (!register_operand (operands[0], VOIDmode)) -- ;; FAIL; -- -- emit_insn (gen_insv_32 (operands[0], operands[1], -- operands[2], operands[3])); -- DONE; --}") -+"TARGET_HAS_BITFIELD" -+"" -+) - - (define_insn "insv_32" - [(set (zero_extract:SI (match_operand:SI 0 "register_operand" "+r") --- -2.14.2 - diff --git a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-7/0033-MicroBlaze-fix-signed-bit-fields-with-bit-field-inst.patch b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-7/0033-MicroBlaze-fix-signed-bit-fields-with-bit-field-inst.patch deleted file mode 100644 index eaae5667..00000000 --- a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-7/0033-MicroBlaze-fix-signed-bit-fields-with-bit-field-inst.patch +++ /dev/null @@ -1,51 +0,0 @@ -From e2a7a582945d24ede55393462a3360f377f45478 Mon Sep 17 00:00:00 2001 -From: Nathan Rossi -Date: Sun, 5 Nov 2017 23:03:54 +1000 -Subject: [PATCH] MicroBlaze fix signed bit fields with bit field instructions - -The 'extv' definition is expected to sign extended the result based on -the width of the bit field. - - https://gcc.gnu.org/onlinedocs/gccint/Standard-Names.html#index-extvm-instruction-pattern - -The MicroBlaze 'bsefi' instruction does not sign extended, it zero -extends. There is no option for the instruction to sign extended the -result and no simple instruction or expression to implement a variant -length sign extend (only sext8/sext16 instructions exist). - -As such these definitions needs to be changed to the zero extended -variant of 'extv' which is 'extzv'. This change updates the existing -definitions to allow for signed bit fields to function correctly and be -sign extended. - -Signed-off-by: Nathan Rossi -Upstream-Status: Pending ---- - gcc/config/microblaze/microblaze.md | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/gcc/config/microblaze/microblaze.md b/gcc/config/microblaze/microblaze.md -index ef53c3069e..b52be42d6e 100644 ---- a/gcc/config/microblaze/microblaze.md -+++ b/gcc/config/microblaze/microblaze.md -@@ -2476,7 +2476,7 @@ - DONE; - }") - --(define_expand "extvsi" -+(define_expand "extzvsi" - [(set (match_operand:SI 0 "register_operand" "r") - (zero_extract:SI (match_operand:SI 1 "register_operand" "r") - (match_operand:SI 2 "immediate_operand" "I") -@@ -2485,7 +2485,7 @@ - "" - ) - --(define_insn "extv_32" -+(define_insn "extzv_32" - [(set (match_operand:SI 0 "register_operand" "=r") - (zero_extract:SI (match_operand:SI 1 "register_operand" "r") - (match_operand:SI 2 "immediate_operand" "I") --- -2.14.2 - diff --git a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-8/0001-LOCAL-Testsuite-builtins-tests-require-fpic.patch b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-8/0001-LOCAL-Testsuite-builtins-tests-require-fpic.patch new file mode 100644 index 00000000..5d29531d --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-8/0001-LOCAL-Testsuite-builtins-tests-require-fpic.patch @@ -0,0 +1,35 @@ +From 7fbf19ba660c72a1d4817780cad5c4ae52cbe0b5 Mon Sep 17 00:00:00 2001 +From: Mahesh Bodapati +Date: Wed, 11 Jan 2017 13:13:57 +0530 +Subject: [PATCH 01/54] LOCAL]: Testsuite - builtins tests require fpic + Signed-off-by: David Holsgrove + +Conflicts: + + gcc/testsuite/gcc.c-torture/execute/builtins/builtins.exp +--- + gcc/testsuite/gcc.c-torture/execute/builtins/builtins.exp | 8 ++++++++ + 1 file changed, 8 insertions(+) + +diff --git a/gcc/testsuite/gcc.c-torture/execute/builtins/builtins.exp b/gcc/testsuite/gcc.c-torture/execute/builtins/builtins.exp +index 9f0b24a..1cb4f97 100644 +--- a/gcc/testsuite/gcc.c-torture/execute/builtins/builtins.exp ++++ b/gcc/testsuite/gcc.c-torture/execute/builtins/builtins.exp +@@ -48,6 +48,14 @@ if { [istarget *-*-eabi*] + lappend additional_flags "-Wl,--allow-multiple-definition" + } + ++<<<<<<< HEAD ++======= ++if [istarget "microblaze*-*-linux*"] { ++ lappend additional_flags "-Wl,-zmuldefs" ++ lappend additional_flags "-fPIC" ++} ++ ++>>>>>>> 6ef6e5b... [LOCAL]: Testsuite - builtins tests require fpic + foreach src [lsort [find $srcdir/$subdir *.c]] { + if {![string match *-lib.c $src] && [runtest_file_p $runtests $src]} { + c-torture-execute [list $src \ +-- +2.7.4 + diff --git a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-8/0002-LOCAL-Quick-fail-g-.dg-opt-memcpy1.C.patch b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-8/0002-LOCAL-Quick-fail-g-.dg-opt-memcpy1.C.patch new file mode 100644 index 00000000..503b1ecf --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-8/0002-LOCAL-Quick-fail-g-.dg-opt-memcpy1.C.patch @@ -0,0 +1,31 @@ +From 4b675eeabceea22ec51abfa7c37e11a631e58659 Mon Sep 17 00:00:00 2001 +From: Mahesh Bodapati +Date: Wed, 11 Jan 2017 14:31:10 +0530 +Subject: [PATCH 02/54] [LOCAL]: Quick fail g++.dg/opt/memcpy1.C This + particular testcase fails with a timeout. Instead, fail it at compile-time + for microblaze. This speeds up the testsuite without removing it from the + FAIL reports. + +Signed-off-by: Edgar E. Iglesias +--- + gcc/testsuite/g++.dg/opt/memcpy1.C | 4 ++++ + 1 file changed, 4 insertions(+) + +diff --git a/gcc/testsuite/g++.dg/opt/memcpy1.C b/gcc/testsuite/g++.dg/opt/memcpy1.C +index 66411cd..d951fee 100644 +--- a/gcc/testsuite/g++.dg/opt/memcpy1.C ++++ b/gcc/testsuite/g++.dg/opt/memcpy1.C +@@ -4,6 +4,10 @@ + // { dg-do compile } + // { dg-options "-O" } + ++#if defined (__MICROBLAZE__) ++#error "too slow on mb. Investigate." ++#endif ++ + typedef unsigned char uint8_t; + typedef uint8_t uint8; + __extension__ typedef __SIZE_TYPE__ size_t; +-- +2.7.4 + diff --git a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-8/0003-LOCAL-Testsuite-explicitly-add-fivopts-for-tests-tha.patch b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-8/0003-LOCAL-Testsuite-explicitly-add-fivopts-for-tests-tha.patch new file mode 100644 index 00000000..39058496 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-8/0003-LOCAL-Testsuite-explicitly-add-fivopts-for-tests-tha.patch @@ -0,0 +1,116 @@ +From 03d4d7335be2b2f72c199ab5177685b6dfd1a9d6 Mon Sep 17 00:00:00 2001 +From: Mahesh Bodapati +Date: Wed, 11 Jan 2017 15:28:38 +0530 +Subject: [PATCH 03/54] [LOCAL]: Testsuite - explicitly add -fivopts for tests + that depend on it (test gcc/testsuite/gcc.dg/tree-ssa/ivopts-lt.c doesnt + exist in 4.6 branch) + +Signed-off-by: Edgar E. Iglesias +--- + gcc/testsuite/g++.dg/tree-ssa/ivopts-2.C | 2 +- + gcc/testsuite/g++.dg/tree-ssa/ivopts-3.C | 2 +- + gcc/testsuite/gcc.dg/tree-ssa/loop-2.c | 2 +- + gcc/testsuite/gcc.dg/tree-ssa/loop-4.c | 2 +- + gcc/testsuite/gcc.dg/tree-ssa/loop-5.c | 2 +- + gcc/testsuite/gcc.dg/tree-ssa/pr19210-1.c | 2 +- + gcc/testsuite/gcc.dg/tree-ssa/pr19590.c | 2 +- + gcc/testsuite/gcc.dg/tree-ssa/reassoc-19.c | 2 +- + 8 files changed, 8 insertions(+), 8 deletions(-) + +diff --git a/gcc/testsuite/g++.dg/tree-ssa/ivopts-2.C b/gcc/testsuite/g++.dg/tree-ssa/ivopts-2.C +index 438db88..ede883e 100644 +--- a/gcc/testsuite/g++.dg/tree-ssa/ivopts-2.C ++++ b/gcc/testsuite/g++.dg/tree-ssa/ivopts-2.C +@@ -1,5 +1,5 @@ + /* { dg-do compile { target { i?86-*-* x86_64-*-* } } } */ +-/* { dg-options "-O2 -fdump-tree-ivopts-details" } */ ++/* { dg-options "-O2 -fivopts -fdump-tree-ivopts-details" } */ + + void test (int *b, int *e, int stride) + { +diff --git a/gcc/testsuite/g++.dg/tree-ssa/ivopts-3.C b/gcc/testsuite/g++.dg/tree-ssa/ivopts-3.C +index 07ff1b7..a09710c 100644 +--- a/gcc/testsuite/g++.dg/tree-ssa/ivopts-3.C ++++ b/gcc/testsuite/g++.dg/tree-ssa/ivopts-3.C +@@ -1,5 +1,5 @@ + // { dg-do compile } +-// { dg-options "-O2 -fdump-tree-ivopts-details" } ++// { dg-options "-O2 -fivopts -fdump-tree-ivopts-details" } + + class MinimalVec3 + { +diff --git a/gcc/testsuite/gcc.dg/tree-ssa/loop-2.c b/gcc/testsuite/gcc.dg/tree-ssa/loop-2.c +index bda2516..22c8a5d 100644 +--- a/gcc/testsuite/gcc.dg/tree-ssa/loop-2.c ++++ b/gcc/testsuite/gcc.dg/tree-ssa/loop-2.c +@@ -1,7 +1,7 @@ + /* A test for strength reduction and induction variable elimination. */ + + /* { dg-do compile } */ +-/* { dg-options "-O1 -fdump-tree-optimized" } */ ++/* { dg-options "-O1 -fivopts -fdump-tree-optimized" } */ + /* { dg-require-effective-target size32plus } */ + + /* Size of this structure should be sufficiently weird so that no memory +diff --git a/gcc/testsuite/gcc.dg/tree-ssa/loop-4.c b/gcc/testsuite/gcc.dg/tree-ssa/loop-4.c +index f0770ab..65d74c8 100644 +--- a/gcc/testsuite/gcc.dg/tree-ssa/loop-4.c ++++ b/gcc/testsuite/gcc.dg/tree-ssa/loop-4.c +@@ -1,7 +1,7 @@ + /* A test for strength reduction and induction variable elimination. */ + + /* { dg-do compile } */ +-/* { dg-options "-O1 -fdump-tree-optimized" } */ ++/* { dg-options "-O1 -fivopts -fdump-tree-optimized" } */ + /* { dg-require-effective-target size32plus } */ + + /* Size of this structure should be sufficiently weird so that no memory +diff --git a/gcc/testsuite/gcc.dg/tree-ssa/loop-5.c b/gcc/testsuite/gcc.dg/tree-ssa/loop-5.c +index 5f42857..9bc86ee 100644 +--- a/gcc/testsuite/gcc.dg/tree-ssa/loop-5.c ++++ b/gcc/testsuite/gcc.dg/tree-ssa/loop-5.c +@@ -1,7 +1,7 @@ + /* A test for induction variable merging. */ + + /* { dg-do compile } */ +-/* { dg-options "-O1 -fdump-tree-optimized" } */ ++/* { dg-options "-O1 -fivopts -fdump-tree-optimized" } */ + + void foo(long); + +diff --git a/gcc/testsuite/gcc.dg/tree-ssa/pr19210-1.c b/gcc/testsuite/gcc.dg/tree-ssa/pr19210-1.c +index 0fa5600..94caa44 100644 +--- a/gcc/testsuite/gcc.dg/tree-ssa/pr19210-1.c ++++ b/gcc/testsuite/gcc.dg/tree-ssa/pr19210-1.c +@@ -1,5 +1,5 @@ + /* { dg-do compile } */ +-/* { dg-options "-O2 -fopt-info-loop-missed -Wunsafe-loop-optimizations" } */ ++/* { dg-options "-O2 -fivopts -fopt-info-loop-missed -Wunsafe-loop-optimizations" } */ + extern void g(void); + + void +diff --git a/gcc/testsuite/gcc.dg/tree-ssa/pr19590.c b/gcc/testsuite/gcc.dg/tree-ssa/pr19590.c +index 2c6cfc6..648e6e6 100644 +--- a/gcc/testsuite/gcc.dg/tree-ssa/pr19590.c ++++ b/gcc/testsuite/gcc.dg/tree-ssa/pr19590.c +@@ -1,5 +1,5 @@ + /* { dg-do compile } */ +-/* { dg-options "-O2 -fdump-tree-ivopts" } */ ++/* { dg-options "-O2 -fivopts -fdump-tree-ivopts" } */ + + void vnum_test8(int *data) + { +diff --git a/gcc/testsuite/gcc.dg/tree-ssa/reassoc-19.c b/gcc/testsuite/gcc.dg/tree-ssa/reassoc-19.c +index e911bfc..5d3e7e0 100644 +--- a/gcc/testsuite/gcc.dg/tree-ssa/reassoc-19.c ++++ b/gcc/testsuite/gcc.dg/tree-ssa/reassoc-19.c +@@ -1,5 +1,5 @@ + /* { dg-do compile } */ +-/* { dg-options "-Os -fdump-tree-optimized" } */ ++/* { dg-options "-Os -fivopts -fdump-tree-optimized" } */ + + /* Slightly changed testcase from PR middle-end/40815. */ + void bar(char*, char*, int); +-- +2.7.4 + diff --git a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-8/0004-LOCAL-For-dejagnu-static-testing-on-qemu-suppress-wa.patch b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-8/0004-LOCAL-For-dejagnu-static-testing-on-qemu-suppress-wa.patch new file mode 100644 index 00000000..e16528b6 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-8/0004-LOCAL-For-dejagnu-static-testing-on-qemu-suppress-wa.patch @@ -0,0 +1,35 @@ +From a4c99f7f7775f105eb6f1dfbdf304e6b7e498e2e Mon Sep 17 00:00:00 2001 +From: Mahesh Bodapati +Date: Wed, 11 Jan 2017 15:46:28 +0530 +Subject: [PATCH 04/54] [LOCAL]: For dejagnu static testing on qemu, suppress + warnings about multiple definitions from the test function and libc in line + with method used by powerpc. Dynamic linking and using a qemu binary which + understands sysroot resolves all test failures with builtins + +Signed-off-by: David Holsgrove +--- + gcc/testsuite/gcc.c-torture/execute/builtins/builtins.exp | 4 ---- + 1 file changed, 4 deletions(-) + +diff --git a/gcc/testsuite/gcc.c-torture/execute/builtins/builtins.exp b/gcc/testsuite/gcc.c-torture/execute/builtins/builtins.exp +index 1cb4f97..bdfa08a 100644 +--- a/gcc/testsuite/gcc.c-torture/execute/builtins/builtins.exp ++++ b/gcc/testsuite/gcc.c-torture/execute/builtins/builtins.exp +@@ -48,14 +48,10 @@ if { [istarget *-*-eabi*] + lappend additional_flags "-Wl,--allow-multiple-definition" + } + +-<<<<<<< HEAD +-======= + if [istarget "microblaze*-*-linux*"] { + lappend additional_flags "-Wl,-zmuldefs" +- lappend additional_flags "-fPIC" + } + +->>>>>>> 6ef6e5b... [LOCAL]: Testsuite - builtins tests require fpic + foreach src [lsort [find $srcdir/$subdir *.c]] { + if {![string match *-lib.c $src] && [runtest_file_p $runtests $src]} { + c-torture-execute [list $src \ +-- +2.7.4 + diff --git a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-8/0005-Patch-testsuite-Add-MicroBlaze-to-target-supports-fo.patch b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-8/0005-Patch-testsuite-Add-MicroBlaze-to-target-supports-fo.patch new file mode 100644 index 00000000..33688f14 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-8/0005-Patch-testsuite-Add-MicroBlaze-to-target-supports-fo.patch @@ -0,0 +1,35 @@ +From 6b0de6811796b6834d426263eaa855b65c9b3389 Mon Sep 17 00:00:00 2001 +From: Mahesh Bodapati +Date: Wed, 11 Jan 2017 15:50:35 +0530 +Subject: [PATCH 05/54] [Patch, testsuite]: Add MicroBlaze to target-supports + for atomic buil. .tin tests + +MicroBlaze added to supported targets for atomic builtin tests. + +Changelog/testsuite + +2014-02-14 David Holsgrove + + * gcc/testsuite/lib/target-supports.exp: Add microblaze to + check_effective_target_sync_int_long. + +Signed-off-by: David Holsgrove +--- + gcc/testsuite/lib/target-supports.exp | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/gcc/testsuite/lib/target-supports.exp b/gcc/testsuite/lib/target-supports.exp +index c591acd..94353cc 100644 +--- a/gcc/testsuite/lib/target-supports.exp ++++ b/gcc/testsuite/lib/target-supports.exp +@@ -7428,6 +7428,7 @@ proc check_effective_target_sync_int_long { } { + && [check_effective_target_arm_acq_rel]) + || [istarget bfin*-*linux*] + || [istarget hppa*-*linux*] ++ || [istarget microblaze*-*linux*] + || [istarget s390*-*-*] + || [istarget powerpc*-*-*] + || [istarget crisv32-*-*] || [istarget cris-*-*] +-- +2.7.4 + diff --git a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-7/0005-Testsuite-explicitly-add-fivopts-for-tests-that-depe.patch b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-8/0005-Testsuite-explicitly-add-fivopts-for-tests-that-depe.patch similarity index 100% rename from Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-7/0005-Testsuite-explicitly-add-fivopts-for-tests-that-depe.patch rename to Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-8/0005-Testsuite-explicitly-add-fivopts-for-tests-that-depe.patch diff --git a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-8/0006-Patch-testsuite-Update-MicroBlaze-strings-test.patch b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-8/0006-Patch-testsuite-Update-MicroBlaze-strings-test.patch new file mode 100644 index 00000000..3e2368f2 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-8/0006-Patch-testsuite-Update-MicroBlaze-strings-test.patch @@ -0,0 +1,43 @@ +From 0d2cca275f3e85ae42dac7888d862975d65ffb36 Mon Sep 17 00:00:00 2001 +From: Mahesh Bodapati +Date: Wed, 11 Jan 2017 16:20:01 +0530 +Subject: [PATCH 06/54] [Patch, testsuite]: Update MicroBlaze strings test for + new scan-assembly output resulting in use of $LC label + +ChangeLog/testsuite + +2014-02-14 David Holsgrove + + * gcc/testsuite/gcc.target/microblaze/others/strings1.c: Update + to include $LC label. + +Signed-off-by: David Holsgrove +--- + gcc/testsuite/gcc.target/microblaze/others/strings1.c | 6 ++++-- + 1 file changed, 4 insertions(+), 2 deletions(-) + +diff --git a/gcc/testsuite/gcc.target/microblaze/others/strings1.c b/gcc/testsuite/gcc.target/microblaze/others/strings1.c +index 7a63faf..0403b7b 100644 +--- a/gcc/testsuite/gcc.target/microblaze/others/strings1.c ++++ b/gcc/testsuite/gcc.target/microblaze/others/strings1.c +@@ -1,13 +1,15 @@ + /* { dg-options "-O3" } */ + ++/* { dg-final { scan-assembler "\.rodata*" } } */ ++/* { dg-final { scan-assembler "addik\tr(\[0-9]\|\[1-2]\[0-9]\|3\[0-1]),r(\[0-9]\|\[1-2]\[0-9]\|3\[0-1]),\\\$LC.*" } } */ ++/* { dg-final { scan-assembler "\lwi\tr(\[0-9]\|\[1-2]\[0-9]\|3\[0-1]),r(\[0-9]\|\[1-2]\[0-9]\|3\[0-1]),*" } } */ ++ + #include + +-/* { dg-final { scan-assembler "\.rodata*" } } */ + extern void somefunc (char *); + int testfunc () + { + char string2[80]; +-/* { dg-final { scan-assembler "\lwi\tr(\[0-9]\|\[1-2]\[0-9]\|3\[0-1]),r0,.LC*" } } */ + strcpy (string2, "hello"); + somefunc (string2); + } +-- +2.7.4 + diff --git a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-8/0007-Patch-testsuite-Allow-MicroBlaze-.weakext-pattern-in.patch b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-8/0007-Patch-testsuite-Allow-MicroBlaze-.weakext-pattern-in.patch new file mode 100644 index 00000000..bcd5dbad --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-8/0007-Patch-testsuite-Allow-MicroBlaze-.weakext-pattern-in.patch @@ -0,0 +1,67 @@ +From b6f828da3caa827d8ccc08bbf260a2a01b2b2613 Mon Sep 17 00:00:00 2001 +From: Mahesh Bodapati +Date: Thu, 12 Jan 2017 16:14:15 +0530 +Subject: [PATCH 07/54] [Patch, testsuite]: Allow MicroBlaze .weakext pattern + in regex match Extend regex pattern to include optional ext at the end of + .weak to match the MicroBlaze weak label .weakext + +ChangeLog/testsuite + +2014-02-14 David Holsgrove + + * gcc/testsuite/g++.dg/abi/rtti3.C: Extend scan-assembler + pattern to take optional ext after .weak. + * gcc/testsuite/g++.dg/abi/thunk4.C: Likewise. + +Signed-off-by: David Holsgrove + +Conflicts: + + gcc/testsuite/g++.dg/abi/rtti3.C +--- + gcc/testsuite/g++.dg/abi/rtti3.C | 4 ++-- + gcc/testsuite/g++.dg/abi/thunk3.C | 2 +- + gcc/testsuite/g++.dg/abi/thunk4.C | 2 +- + 3 files changed, 4 insertions(+), 4 deletions(-) + +diff --git a/gcc/testsuite/g++.dg/abi/rtti3.C b/gcc/testsuite/g++.dg/abi/rtti3.C +index 0cc7d3e..f284cd9 100644 +--- a/gcc/testsuite/g++.dg/abi/rtti3.C ++++ b/gcc/testsuite/g++.dg/abi/rtti3.C +@@ -3,8 +3,8 @@ + + // { dg-require-weak "" } + // { dg-skip-if "Linkonce not weak" { *-*-mingw* *-*-cygwin } } +-// { dg-final { scan-assembler ".weak\[ \t\]_?_ZTSPP1A" { target { ! { *-*-darwin* hppa*-*-hpux* } } } } } +-// { dg-final { scan-assembler-not ".weak\[ \t\]_?_ZTIPP1A" { target { ! { *-*-darwin* } } } } } ++// { dg-final { scan-assembler ".weak(ext)?\[ \t\]_?_ZTSPP1A" { target { ! { *-*-darwin* } } } } } ++// { dg-final { scan-assembler-not ".weak(ext)?\[ \t\]_?_ZTIPP1A" { target { ! { *-*-darwin* } } } } } + // { dg-final { scan-assembler ".weak_definition\[ \t\]_?_ZTSPP1A" { target { *-*-darwin* } } } } + // { dg-final { scan-assembler-not ".weak_definition\[ \t\]_?_ZTIPP1A" { target { *-*-darwin* } } } } + +diff --git a/gcc/testsuite/g++.dg/abi/thunk3.C b/gcc/testsuite/g++.dg/abi/thunk3.C +index f2347f7..dcec8a7 100644 +--- a/gcc/testsuite/g++.dg/abi/thunk3.C ++++ b/gcc/testsuite/g++.dg/abi/thunk3.C +@@ -1,5 +1,5 @@ + // { dg-require-weak "" } +-// { dg-final { scan-assembler-not ".weak\[\t \]_?_ZThn._N7Derived3FooEv" { target { ! { *-*-darwin* } } } } } ++// { dg-final { scan-assembler-not ".weak(ext)?\[\t \]_?_ZThn._N7Derived3FooEv" { target { ! { *-*-darwin* } } } } } + // { dg-final { scan-assembler-not ".weak_definition\[\t \]_?_ZThn._N7Derived3FooEv" { target { *-*-darwin* } } } } + + struct Base +diff --git a/gcc/testsuite/g++.dg/abi/thunk4.C b/gcc/testsuite/g++.dg/abi/thunk4.C +index 6e8f124..d1d34fe 100644 +--- a/gcc/testsuite/g++.dg/abi/thunk4.C ++++ b/gcc/testsuite/g++.dg/abi/thunk4.C +@@ -1,6 +1,6 @@ + // { dg-require-weak "" } + // { dg-skip-if "Linkonce not weak" { *-*-mingw* *-*-cygwin } } +-// { dg-final { scan-assembler ".weak\[ \t\]_?_ZThn._N7Derived3FooEv" { target { ! { *-*-darwin* } } } } } ++// { dg-final { scan-assembler ".weak(ext)?\[ \t\]_?_ZThn._N7Derived3FooEv" { target { ! { *-*-darwin* } } } } } + // { dg-final { scan-assembler ".weak_definition\[ \t\]_?_ZThn._N7Derived3FooEv" { target { *-*-darwin* } } } } + + struct Base +-- +2.7.4 + diff --git a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-8/0008-Patch-testsuite-Add-MicroBlaze-to-check_profiling_av.patch b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-8/0008-Patch-testsuite-Add-MicroBlaze-to-check_profiling_av.patch new file mode 100644 index 00000000..6232535d --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-8/0008-Patch-testsuite-Add-MicroBlaze-to-check_profiling_av.patch @@ -0,0 +1,28 @@ +From d27a2545486da9c6a4d3d5ca06b4affb83f8d0a1 Mon Sep 17 00:00:00 2001 +From: Mahesh Bodapati +Date: Thu, 12 Jan 2017 16:34:27 +0530 +Subject: [PATCH 08/54] [Patch, testsuite]: Add MicroBlaze to + check_profiling_available Testsuite, add microblaze*-*-* target in + check_profiling_available inline with other archs setting + profiling_available_saved to 0 + +Signed-off-by: David Holsgrove +--- + gcc/testsuite/lib/target-supports.exp | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/gcc/testsuite/lib/target-supports.exp b/gcc/testsuite/lib/target-supports.exp +index 94353cc..ecfbe4d 100644 +--- a/gcc/testsuite/lib/target-supports.exp ++++ b/gcc/testsuite/lib/target-supports.exp +@@ -676,6 +676,7 @@ proc check_profiling_available { test_what } { + || [istarget m68k-*-elf] + || [istarget m68k-*-uclinux*] + || [istarget mips*-*-elf*] ++ || [istarget microblaze*-*-*] + || [istarget mmix-*-*] + || [istarget mn10300-*-elf*] + || [istarget moxie-*-elf*] +-- +2.7.4 + diff --git a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-8/0009-Patch-microblaze-Fix-atomic-side-effects.patch b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-8/0009-Patch-microblaze-Fix-atomic-side-effects.patch new file mode 100644 index 00000000..db730f43 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-8/0009-Patch-microblaze-Fix-atomic-side-effects.patch @@ -0,0 +1,65 @@ +From 8711bdfe27bce04d35ba93a1d18ccccd61371829 Mon Sep 17 00:00:00 2001 +From: Mahesh Bodapati +Date: Thu, 12 Jan 2017 16:41:43 +0530 +Subject: [PATCH 09/54] [Patch, microblaze]: Fix atomic side effects. In + atomic_compare_and_swapsi, add side effects to prevent incorrect assumptions + during optimization. Previously, the outputs were considered unused; this + generated assembly code with undefined side effects after invocation of the + atomic. + +Signed-off-by: Kirk Meyer +Signed-off-by: David Holsgrove +--- + gcc/config/microblaze/microblaze.md | 3 +++ + gcc/config/microblaze/sync.md | 21 +++++++++++++-------- + 2 files changed, 16 insertions(+), 8 deletions(-) + +diff --git a/gcc/config/microblaze/microblaze.md b/gcc/config/microblaze/microblaze.md +index f698e54..93f5fa2 100644 +--- a/gcc/config/microblaze/microblaze.md ++++ b/gcc/config/microblaze/microblaze.md +@@ -41,6 +41,9 @@ + (UNSPEC_CMP 104) ;; signed compare + (UNSPEC_CMPU 105) ;; unsigned compare + (UNSPEC_TLS 106) ;; jump table ++ (UNSPECV_CAS_BOOL 201) ;; compare and swap (bool) ++ (UNSPECV_CAS_VAL 202) ;; compare and swap (val) ++ (UNSPECV_CAS_MEM 203) ;; compare and swap (mem) + ]) + + (define_c_enum "unspec" [ +diff --git a/gcc/config/microblaze/sync.md b/gcc/config/microblaze/sync.md +index b34bd54..8e694e9 100644 +--- a/gcc/config/microblaze/sync.md ++++ b/gcc/config/microblaze/sync.md +@@ -18,14 +18,19 @@ + ;; . + + (define_insn "atomic_compare_and_swapsi" +- [(match_operand:SI 0 "register_operand" "=&d") ;; bool output +- (match_operand:SI 1 "register_operand" "=&d") ;; val output +- (match_operand:SI 2 "nonimmediate_operand" "+Q") ;; memory +- (match_operand:SI 3 "register_operand" "d") ;; expected value +- (match_operand:SI 4 "register_operand" "d") ;; desired value +- (match_operand:SI 5 "const_int_operand" "") ;; is_weak +- (match_operand:SI 6 "const_int_operand" "") ;; mod_s +- (match_operand:SI 7 "const_int_operand" "") ;; mod_f ++ [(set (match_operand:SI 0 "register_operand" "=&d") ;; bool output ++ (unspec_volatile:SI ++ [(match_operand:SI 2 "nonimmediate_operand" "+Q") ;; memory ++ (match_operand:SI 3 "register_operand" "d") ;; expected value ++ (match_operand:SI 4 "register_operand" "d")] ;; desired value ++ UNSPECV_CAS_BOOL)) ++ (set (match_operand:SI 1 "register_operand" "=&d") ;; val output ++ (unspec_volatile:SI [(const_int 0)] UNSPECV_CAS_VAL)) ++ (set (match_dup 2) ++ (unspec_volatile:SI [(const_int 0)] UNSPECV_CAS_MEM)) ++ (match_operand:SI 5 "const_int_operand" "") ;; is_weak ++ (match_operand:SI 6 "const_int_operand" "") ;; mod_s ++ (match_operand:SI 7 "const_int_operand" "") ;; mod_f + (clobber (match_scratch:SI 8 "=&d"))] + "" + { +-- +2.7.4 + diff --git a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-8/0010-Patch-microblaze-Fix-atomic-boolean-return-value.patch b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-8/0010-Patch-microblaze-Fix-atomic-boolean-return-value.patch new file mode 100644 index 00000000..5058529a --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-8/0010-Patch-microblaze-Fix-atomic-boolean-return-value.patch @@ -0,0 +1,40 @@ +From 92015c19e5d1baabd62067bf1cfc4522e85d1b25 Mon Sep 17 00:00:00 2001 +From: Mahesh Bodapati +Date: Thu, 12 Jan 2017 16:45:45 +0530 +Subject: [PATCH 10/54] [Patch, microblaze]: Fix atomic boolean return value. + In atomic_compare_and_swapsi, fix boolean return value. Previously, it + contained zero if successful and non-zero if unsuccessful. + +Signed-off-by: Kirk Meyer +Signed-off-by: David Holsgrove +--- + gcc/config/microblaze/sync.md | 7 ++++--- + 1 file changed, 4 insertions(+), 3 deletions(-) + +diff --git a/gcc/config/microblaze/sync.md b/gcc/config/microblaze/sync.md +index 8e694e9..8ddb10d 100644 +--- a/gcc/config/microblaze/sync.md ++++ b/gcc/config/microblaze/sync.md +@@ -34,15 +34,16 @@ + (clobber (match_scratch:SI 8 "=&d"))] + "" + { +- output_asm_insn ("addc \tr0,r0,r0", operands); ++ output_asm_insn ("add \t%0,r0,r0", operands); + output_asm_insn ("lwx \t%1,%y2,r0", operands); + output_asm_insn ("addic\t%8,r0,0", operands); + output_asm_insn ("bnei \t%8,.-8", operands); +- output_asm_insn ("cmp \t%0,%1,%3", operands); +- output_asm_insn ("bnei \t%0,.+16", operands); ++ output_asm_insn ("cmp \t%8,%1,%3", operands); ++ output_asm_insn ("bnei \t%8,.+20", operands); + output_asm_insn ("swx \t%4,%y2,r0", operands); + output_asm_insn ("addic\t%8,r0,0", operands); + output_asm_insn ("bnei \t%8,.-28", operands); ++ output_asm_insn ("addi \t%0,r0,1", operands); + return ""; + } + ) +-- +2.7.4 + diff --git a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-8/0011-Patch-microblaze-Fix-the-Microblaze-crash-with-msmal.patch b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-8/0011-Patch-microblaze-Fix-the-Microblaze-crash-with-msmal.patch new file mode 100644 index 00000000..2451c938 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-8/0011-Patch-microblaze-Fix-the-Microblaze-crash-with-msmal.patch @@ -0,0 +1,33 @@ +From 658476aef537c0c2d031eb1c7a001f00c1d9bf7b Mon Sep 17 00:00:00 2001 +From: Mahesh Bodapati +Date: Thu, 12 Jan 2017 16:50:17 +0530 +Subject: [PATCH 11/54] [Patch, microblaze]: Fix the Microblaze crash with + msmall-divides flag Compiler is crashing when we use msmall-divides and + mxl-barrel-shift flag. This is because when use above flags + microblaze_expand_divide function will be called for division operation. In + microblaze_expand_divide function we are using sub_reg but MicroBlaze doesn't + have subreg register due to this compiler was crashing. Changed the logic to + avoid sub_reg call + +Signed-off-by:Nagaraju Mekala +--- + gcc/config/microblaze/microblaze.c | 3 +-- + 1 file changed, 1 insertion(+), 2 deletions(-) + +diff --git a/gcc/config/microblaze/microblaze.c b/gcc/config/microblaze/microblaze.c +index 9a4a287..cbe8cb7 100644 +--- a/gcc/config/microblaze/microblaze.c ++++ b/gcc/config/microblaze/microblaze.c +@@ -3575,8 +3575,7 @@ microblaze_expand_divide (rtx operands[]) + mem_rtx = gen_rtx_MEM (QImode, + gen_rtx_PLUS (Pmode, regt1, div_table_rtx)); + +- insn = emit_insn (gen_movqi (regqi, mem_rtx)); +- insn = emit_insn (gen_movsi (operands[0], gen_rtx_SUBREG (SImode, regqi, 0))); ++ insn = emit_insn (gen_zero_extendqisi2(operands[0],mem_rtx)); + jump = emit_jump_insn_after (gen_jump (div_end_label), insn); + JUMP_LABEL (jump) = div_end_label; + LABEL_NUSES (div_end_label) = 1; +-- +2.7.4 + diff --git a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-8/0012-Patch-microblaze-Added-ashrsi3_with_size_opt.patch b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-8/0012-Patch-microblaze-Added-ashrsi3_with_size_opt.patch new file mode 100644 index 00000000..b58df873 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-8/0012-Patch-microblaze-Added-ashrsi3_with_size_opt.patch @@ -0,0 +1,48 @@ +From 64f1a238641616c9cca5823d7ca99e76a7c2a490 Mon Sep 17 00:00:00 2001 +From: Mahesh Bodapati +Date: Thu, 12 Jan 2017 16:52:56 +0530 +Subject: [PATCH 12/54] [Patch, microblaze]: Added ashrsi3_with_size_opt Added + ashrsi3_with_size_opt pattern to optimize the sra instructions when the -Os + optimization is used. lshrsi3_with_size_opt is being removed as it has + conflicts with unsigned int variables + +Signed-off-by:Nagaraju Mekala +--- + gcc/config/microblaze/microblaze.md | 21 +++++++++++++++++++++ + 1 file changed, 21 insertions(+) + +diff --git a/gcc/config/microblaze/microblaze.md b/gcc/config/microblaze/microblaze.md +index 93f5fa2..fe90a14 100644 +--- a/gcc/config/microblaze/microblaze.md ++++ b/gcc/config/microblaze/microblaze.md +@@ -1506,6 +1506,27 @@ + (set_attr "length" "4,4")] + ) + ++(define_insn "*ashrsi3_with_size_opt" ++ [(set (match_operand:SI 0 "register_operand" "=&d") ++ (ashiftrt:SI (match_operand:SI 1 "register_operand" "d") ++ (match_operand:SI 2 "immediate_operand" "I")))] ++ "(INTVAL (operands[2]) > 5 && optimize_size)" ++ { ++ operands[3] = gen_rtx_REG (SImode, MB_ABI_ASM_TEMP_REGNUM); ++ ++ output_asm_insn ("ori\t%3,r0,%2", operands); ++ if (REGNO (operands[0]) != REGNO (operands[1])) ++ output_asm_insn ("addk\t%0,%1,r0", operands); ++ ++ output_asm_insn ("addik\t%3,%3,-1", operands); ++ output_asm_insn ("bneid\t%3,.-4", operands); ++ return "sra\t%0,%0"; ++ } ++ [(set_attr "type" "arith") ++ (set_attr "mode" "SI") ++ (set_attr "length" "20")] ++) ++ + (define_insn "*ashrsi_inline" + [(set (match_operand:SI 0 "register_operand" "=&d") + (ashiftrt:SI (match_operand:SI 1 "register_operand" "d") +-- +2.7.4 + diff --git a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-8/0013-Patch-microblaze-Fixed-missing-save-of-r18-in-fast_i.patch b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-8/0013-Patch-microblaze-Fixed-missing-save-of-r18-in-fast_i.patch new file mode 100644 index 00000000..6af0f10e --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-8/0013-Patch-microblaze-Fixed-missing-save-of-r18-in-fast_i.patch @@ -0,0 +1,41 @@ +From ed23e22fb25a2d3dc357c0743f51b2735fc46a6a Mon Sep 17 00:00:00 2001 +From: Mahesh Bodapati +Date: Thu, 12 Jan 2017 17:50:03 +0530 +Subject: [PATCH 13/54] [Patch, microblaze]: Fixed missing save of r18 in + fast_interrupt. Register 18 is used as a clobber register, and must be stored + when entering a fast_interrupt. Before this fix, register 18 was only saved + if it was used directly in the interrupt function. + +However, if the fast_interrupt function called a function that used +r18, the register would not be saved, and thus be mangled +upon returning from the interrupt. + +Changelog + +2014-02-27 Klaus Petersen + + * gcc/config/microblaze/microblaze.c: Check for fast_interrupt in + microblaze_must_save_register. + +Signed-off-by: Klaus Petersen +Signed-off-by: David Holsgrove +--- + gcc/config/microblaze/microblaze.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/gcc/config/microblaze/microblaze.c b/gcc/config/microblaze/microblaze.c +index cbe8cb7..6f0b4f4 100644 +--- a/gcc/config/microblaze/microblaze.c ++++ b/gcc/config/microblaze/microblaze.c +@@ -1967,7 +1967,7 @@ microblaze_must_save_register (int regno) + { + if (df_regs_ever_live_p (regno) + || regno == MB_ABI_MSR_SAVE_REG +- || (interrupt_handler ++ || ((interrupt_handler || fast_interrupt) + && (regno == MB_ABI_ASM_TEMP_REGNUM + || regno == MB_ABI_EXCEPTION_RETURN_ADDR_REGNUM))) + return 1; +-- +2.7.4 + diff --git a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-8/0014-Patch-microblaze-Use-bralid-for-profiler-calls.patch b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-8/0014-Patch-microblaze-Use-bralid-for-profiler-calls.patch new file mode 100644 index 00000000..f47265b0 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-8/0014-Patch-microblaze-Use-bralid-for-profiler-calls.patch @@ -0,0 +1,26 @@ +From 582558f3c18d096885ab24e645899f310b148b5c Mon Sep 17 00:00:00 2001 +From: Mahesh Bodapati +Date: Tue, 17 Jan 2017 10:57:19 +0530 +Subject: [PATCH 14/54] [Patch, microblaze]: Use bralid for profiler calls + Signed-off-by: Edgar E. Iglesias + +--- + gcc/config/microblaze/microblaze.h | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/gcc/config/microblaze/microblaze.h b/gcc/config/microblaze/microblaze.h +index 0d3718f..88e0351 100644 +--- a/gcc/config/microblaze/microblaze.h ++++ b/gcc/config/microblaze/microblaze.h +@@ -486,7 +486,7 @@ typedef struct microblaze_args + + #define FUNCTION_PROFILER(FILE, LABELNO) { \ + { \ +- fprintf (FILE, "\tbrki\tr16,_mcount\n"); \ ++ fprintf (FILE, "\tbralid\tr15,_mcount\nnop\n"); \ + } \ + } + +-- +2.7.4 + diff --git a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-8/0015-Patch-microblaze-Disable-fivopts-by-default.patch b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-8/0015-Patch-microblaze-Disable-fivopts-by-default.patch new file mode 100644 index 00000000..acfa083f --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-8/0015-Patch-microblaze-Disable-fivopts-by-default.patch @@ -0,0 +1,42 @@ +From b60068cbdd3c830e541fbd35f2ed119245911461 Mon Sep 17 00:00:00 2001 +From: Mahesh Bodapati +Date: Tue, 17 Jan 2017 11:10:21 +0530 +Subject: [PATCH 15/54] [Patch, microblaze]: Disable fivopts by default Turn + off ivopts by default. Interferes with cse. + +Changelog + +2013-03-18 Edgar E. Iglesias + + * gcc/common/config/microblaze/microblaze-common.c + (microblaze_option_optimization_table): Disable fivopts by default. + +Signed-off-by: Edgar E. Iglesias +Signed-off-by: David Holsgrove +--- + gcc/common/config/microblaze/microblaze-common.c | 9 +++++++++ + 1 file changed, 9 insertions(+) + +diff --git a/gcc/common/config/microblaze/microblaze-common.c b/gcc/common/config/microblaze/microblaze-common.c +index 3e75675..fe45f2e 100644 +--- a/gcc/common/config/microblaze/microblaze-common.c ++++ b/gcc/common/config/microblaze/microblaze-common.c +@@ -24,6 +24,15 @@ + #include "common/common-target.h" + #include "common/common-target-def.h" + ++/* Implement TARGET_OPTION_OPTIMIZATION_TABLE. */ ++static const struct default_options microblaze_option_optimization_table[] = ++ { ++ /* Turn off ivopts by default. It messes up cse. */ ++ { OPT_LEVELS_ALL, OPT_fivopts, NULL, 0 }, ++ { OPT_LEVELS_1_PLUS, OPT_fomit_frame_pointer, NULL, 1 }, ++ { OPT_LEVELS_NONE, 0, NULL, 0 } ++ }; ++ + #undef TARGET_DEFAULT_TARGET_FLAGS + #define TARGET_DEFAULT_TARGET_FLAGS TARGET_DEFAULT + +-- +2.7.4 + diff --git a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-8/0016-Patch-microblaze-Removed-moddi3-routinue.patch b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-8/0016-Patch-microblaze-Removed-moddi3-routinue.patch new file mode 100644 index 00000000..dbd7b2e2 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-8/0016-Patch-microblaze-Removed-moddi3-routinue.patch @@ -0,0 +1,157 @@ +From 640628680ff6f028ad6d5fef2e41da29664f036f Mon Sep 17 00:00:00 2001 +From: Mahesh Bodapati +Date: Thu, 12 Jan 2017 17:36:16 +0530 +Subject: [PATCH 16/54] [Patch, microblaze]: Removed moddi3 routinue Using the + default moddi3 function as the existing implementation has many bugs + +Signed-off-by:Nagaraju +--- + libgcc/config/microblaze/moddi3.S | 121 ---------------------------------- + libgcc/config/microblaze/t-microblaze | 3 +- + 2 files changed, 1 insertion(+), 123 deletions(-) + delete mode 100644 libgcc/config/microblaze/moddi3.S + +diff --git a/libgcc/config/microblaze/moddi3.S b/libgcc/config/microblaze/moddi3.S +deleted file mode 100644 +index a8f17d7..0000000 +--- a/libgcc/config/microblaze/moddi3.S ++++ /dev/null +@@ -1,121 +0,0 @@ +-################################### +-# +-# Copyright (C) 2009-2018 Free Software Foundation, Inc. +-# +-# Contributed by Michael Eager . +-# +-# This file is free software; you can redistribute it and/or modify it +-# under the terms of the GNU General Public License as published by the +-# Free Software Foundation; either version 3, or (at your option) any +-# later version. +-# +-# GCC is distributed in the hope that it will be useful, but WITHOUT +-# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY +-# or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public +-# License for more details. +-# +-# Under Section 7 of GPL version 3, you are granted additional +-# permissions described in the GCC Runtime Library Exception, version +-# 3.1, as published by the Free Software Foundation. +-# +-# You should have received a copy of the GNU General Public License and +-# a copy of the GCC Runtime Library Exception along with this program; +-# see the files COPYING3 and COPYING.RUNTIME respectively. If not, see +-# . +-# +-# modsi3.S +-# +-# modulo operation for 64 bit integers. +-# +-####################################### +- +- +-/* An executable stack is *not* required for these functions. */ +-#ifdef __linux__ +-.section .note.GNU-stack,"",%progbits +-.previous +-#endif +- +- .globl __moddi3 +- .ent __moddi3 +-__moddi3: +- .frame r1,0,r15 +- +-#Change the stack pointer value and Save callee saved regs +- addik r1,r1,-24 +- swi r25,r1,0 +- swi r26,r1,4 +- swi r27,r1,8 # used for sign +- swi r28,r1,12 # used for loop count +- swi r29,r1,16 # Used for div value High +- swi r30,r1,20 # Used for div value Low +- +-#Check for Zero Value in the divisor/dividend +- OR r9,r5,r6 # Check for the op1 being zero +- BEQID r9,$LaResult_Is_Zero # Result is zero +- OR r9,r7,r8 # Check for the dividend being zero +- BEQI r9,$LaDiv_By_Zero # Div_by_Zero # Division Error +- BGEId r5,$La1_Pos +- XOR r27,r5,r7 # Get the sign of the result +- RSUBI r6,r6,0 # Make dividend positive +- RSUBIC r5,r5,0 # Make dividend positive +-$La1_Pos: +- BGEI r7,$La2_Pos +- RSUBI r8,r8,0 # Make Divisor Positive +- RSUBIC r9,r9,0 # Make Divisor Positive +-$La2_Pos: +- ADDIK r4,r0,0 # Clear mod low +- ADDIK r3,r0,0 # Clear mod high +- ADDIK r29,r0,0 # clear div high +- ADDIK r30,r0,0 # clear div low +- ADDIK r28,r0,64 # Initialize the loop count +- # First part try to find the first '1' in the r5/r6 +-$LaDIV1: +- ADD r6,r6,r6 +- ADDC r5,r5,r5 # left shift logical r5 +- BGEID r5,$LaDIV1 +- ADDIK r28,r28,-1 +-$LaDIV2: +- ADD r6,r6,r6 +- ADDC r5,r5,r5 # left shift logical r5/r6 get the '1' into the Carry +- ADDC r4,r4,r4 # Move that bit into the Mod register +- ADDC r3,r3,r3 # Move carry into high mod register +- rsub r18,r7,r3 # Compare the High Parts of Mod and Divisor +- bnei r18,$L_High_EQ +- rsub r18,r6,r4 # Compare Low Parts only if Mod[h] == Divisor[h] +-$L_High_EQ: +- rSUB r26,r8,r4 # Subtract divisor[L] from Mod[L] +- rsubc r25,r7,r3 # Subtract divisor[H] from Mod[H] +- BLTi r25,$LaMOD_TOO_SMALL +- OR r3,r0,r25 # move r25 to mod [h] +- OR r4,r0,r26 # move r26 to mod [l] +- ADDI r30,r30,1 +- ADDC r29,r29,r0 +-$LaMOD_TOO_SMALL: +- ADDIK r28,r28,-1 +- BEQi r28,$LaLOOP_END +- ADD r30,r30,r30 # Shift in the '1' into div [low] +- ADDC r29,r29,r29 # Move the carry generated into high +- BRI $LaDIV2 # Div2 +-$LaLOOP_END: +- BGEI r27,$LaRETURN_HERE +- rsubi r30,r30,0 +- rsubc r29,r29,r0 +- BRI $LaRETURN_HERE +-$LaDiv_By_Zero: +-$LaResult_Is_Zero: +- or r29,r0,r0 # set result to 0 [High] +- or r30,r0,r0 # set result to 0 [Low] +-$LaRETURN_HERE: +-# Restore values of CSRs and that of r29 and the divisor and the dividend +- +- lwi r25,r1,0 +- lwi r26,r1,4 +- lwi r27,r1,8 +- lwi r28,r1,12 +- lwi r29,r1,16 +- lwi r30,r1,20 +- rtsd r15,8 +- addik r1,r1,24 +- .end __moddi3 +- +diff --git a/libgcc/config/microblaze/t-microblaze b/libgcc/config/microblaze/t-microblaze +index 96959f0..8d954a4 100644 +--- a/libgcc/config/microblaze/t-microblaze ++++ b/libgcc/config/microblaze/t-microblaze +@@ -1,8 +1,7 @@ +-LIB2FUNCS_EXCLUDE += _divsi3 _modsi3 _moddi3 _mulsi3 _udivsi3 _umodsi3 ++LIB2FUNCS_EXCLUDE += _divsi3 _modsi3 _mulsi3 _udivsi3 _umodsi3 + + LIB2ADD += \ + $(srcdir)/config/microblaze/divsi3.S \ +- $(srcdir)/config/microblaze/moddi3.S \ + $(srcdir)/config/microblaze/modsi3.S \ + $(srcdir)/config/microblaze/muldi3_hard.S \ + $(srcdir)/config/microblaze/mulsi3.S \ +-- +2.7.4 + diff --git a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-8/0017-Patch-microblaze-Add-INIT_PRIORITY-support.patch b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-8/0017-Patch-microblaze-Add-INIT_PRIORITY-support.patch new file mode 100644 index 00000000..6fb1b32f --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-8/0017-Patch-microblaze-Add-INIT_PRIORITY-support.patch @@ -0,0 +1,101 @@ +From c0e74b79cc1db2f68dd560154225da1e5ddfd920 Mon Sep 17 00:00:00 2001 +From: Mahesh Bodapati +Date: Tue, 17 Jan 2017 14:41:58 +0530 +Subject: [PATCH 17/54] [Patch, microblaze]: Add INIT_PRIORITY support Added + TARGET_ASM_CONSTRUCTOR and TARGET_ASM_DESTRUCTOR macros. + +These macros allows users to control the order of initialization +of objects defined at namespace scope with the init_priority +attribute by specifying a relative priority, a constant integral +expression currently bounded between 101 and 65535 inclusive. + +Lower numbers indicate a higher priority. + +Changelog + +2013-11-26 Nagaraju Mekala + + * gcc/config/microblaze/microblaze.c: Add microblaze_asm_constructor, + microblaze_asm_destructor. Define TARGET_ASM_CONSTRUCTOR and + TARGET_ASM_DESTRUCTOR. + +Signed-off-by:nagaraju +Signed-off-by: David Holsgrove +--- + gcc/config/microblaze/microblaze.c | 53 ++++++++++++++++++++++++++++++++++++++ + 1 file changed, 53 insertions(+) + +diff --git a/gcc/config/microblaze/microblaze.c b/gcc/config/microblaze/microblaze.c +index 6f0b4f4..53b44df 100644 +--- a/gcc/config/microblaze/microblaze.c ++++ b/gcc/config/microblaze/microblaze.c +@@ -2554,6 +2554,53 @@ print_operand_address (FILE * file, rtx addr) + } + } + ++/* Output an element in the table of global constructors. */ ++void ++microblaze_asm_constructor (rtx symbol ATTRIBUTE_UNUSED, int priority) ++{ ++ const char *section = ".ctors"; ++ char buf[16]; ++ ++ if (priority != DEFAULT_INIT_PRIORITY) ++ { ++ sprintf (buf, ".ctors.%.5u", ++ /* Invert the numbering so the linker puts us in the proper ++ order; constructors are run from right to left, and the ++ linker sorts in increasing order. */ ++ MAX_INIT_PRIORITY - priority); ++ section = buf; ++ } ++ ++ switch_to_section (get_section (section, 0, NULL)); ++ assemble_align (POINTER_SIZE); ++ fputs ("\t.word\t", asm_out_file); ++ output_addr_const (asm_out_file, symbol); ++ fputs ("\n", asm_out_file); ++} ++ ++/* Output an element in the table of global destructors. */ ++void ++microblaze_asm_destructor (rtx symbol, int priority) ++{ ++ const char *section = ".dtors"; ++ char buf[16]; ++ if (priority != DEFAULT_INIT_PRIORITY) ++ { ++ sprintf (buf, ".dtors.%.5u", ++ /* Invert the numbering so the linker puts us in the proper ++ order; constructors are run from right to left, and the ++ linker sorts in increasing order. */ ++ MAX_INIT_PRIORITY - priority); ++ section = buf; ++ } ++ ++ switch_to_section (get_section (section, 0, NULL)); ++ assemble_align (POINTER_SIZE); ++ fputs ("\t.word\t", asm_out_file); ++ output_addr_const (asm_out_file, symbol); ++ fputs ("\n", asm_out_file); ++} ++ + /* Emit either a label, .comm, or .lcomm directive, and mark that the symbol + is used, so that we don't emit an .extern for it in + microblaze_asm_file_end. */ +@@ -3841,6 +3888,12 @@ microblaze_starting_frame_offset (void) + #undef TARGET_ATTRIBUTE_TABLE + #define TARGET_ATTRIBUTE_TABLE microblaze_attribute_table + ++#undef TARGET_ASM_CONSTRUCTOR ++#define TARGET_ASM_CONSTRUCTOR microblaze_asm_constructor ++ ++#undef TARGET_ASM_DESTRUCTOR ++#define TARGET_ASM_DESTRUCTOR microblaze_asm_destructor ++ + #undef TARGET_IN_SMALL_DATA_P + #define TARGET_IN_SMALL_DATA_P microblaze_elf_in_small_data_p + +-- +2.7.4 + diff --git a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-8/0018-Patch-microblaze-Add-optimized-lshrsi3.patch b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-8/0018-Patch-microblaze-Add-optimized-lshrsi3.patch new file mode 100644 index 00000000..ab2473a3 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-8/0018-Patch-microblaze-Add-optimized-lshrsi3.patch @@ -0,0 +1,81 @@ +From 2cba68c3e27ffaea77cc5469233cf4dcb9383142 Mon Sep 17 00:00:00 2001 +From: Mahesh Bodapati +Date: Tue, 17 Jan 2017 15:23:57 +0530 +Subject: [PATCH 18/54] [Patch, microblaze]: Add optimized lshrsi3 When barrel + shifter is not present, the immediate value is greater than #5 and + optimization is -OS, the compiler will generate shift operation using loop. + +Changelog + +2013-11-26 David Holsgrove + + * gcc/config/microblaze/microblaze.md: Add size optimized lshrsi3 insn + +ChangeLog/testsuite + +2014-02-12 David Holsgrove + + * gcc/testsuite/gcc.target/microblaze/others/lshrsi_Os_1.c: New test. + +Signed-off-by:Nagaraju +Signed-off-by: David Holsgrove +--- + gcc/config/microblaze/microblaze.md | 21 +++++++++++++++++++++ + .../gcc.target/microblaze/others/lshrsi_Os_1.c | 13 +++++++++++++ + 2 files changed, 34 insertions(+) + create mode 100644 gcc/testsuite/gcc.target/microblaze/others/lshrsi_Os_1.c + +diff --git a/gcc/config/microblaze/microblaze.md b/gcc/config/microblaze/microblaze.md +index fe90a14..c063ffc 100644 +--- a/gcc/config/microblaze/microblaze.md ++++ b/gcc/config/microblaze/microblaze.md +@@ -1616,6 +1616,27 @@ + (set_attr "length" "4,4")] + ) + ++(define_insn "*lshrsi3_with_size_opt" ++ [(set (match_operand:SI 0 "register_operand" "=&d") ++ (lshiftrt:SI (match_operand:SI 1 "register_operand" "d") ++ (match_operand:SI 2 "immediate_operand" "I")))] ++ "(INTVAL (operands[2]) > 5 && optimize_size)" ++ { ++ operands[3] = gen_rtx_REG (SImode, MB_ABI_ASM_TEMP_REGNUM); ++ ++ output_asm_insn ("ori\t%3,r0,%2", operands); ++ if (REGNO (operands[0]) != REGNO (operands[1])) ++ output_asm_insn ("addk\t%0,%1,r0", operands); ++ ++ output_asm_insn ("addik\t%3,%3,-1", operands); ++ output_asm_insn ("bneid\t%3,.-4", operands); ++ return "srl\t%0,%0"; ++ } ++ [(set_attr "type" "multi") ++ (set_attr "mode" "SI") ++ (set_attr "length" "20")] ++) ++ + (define_insn "*lshrsi_inline" + [(set (match_operand:SI 0 "register_operand" "=&d") + (lshiftrt:SI (match_operand:SI 1 "register_operand" "d") +diff --git a/gcc/testsuite/gcc.target/microblaze/others/lshrsi_Os_1.c b/gcc/testsuite/gcc.target/microblaze/others/lshrsi_Os_1.c +new file mode 100644 +index 0000000..32a3be7 +--- /dev/null ++++ b/gcc/testsuite/gcc.target/microblaze/others/lshrsi_Os_1.c +@@ -0,0 +1,13 @@ ++/* { dg-options "-Os -mno-xl-barrel-shift" } */ ++ ++void testfunc(void) ++{ ++ unsigned volatile int z = 8192; ++ z >>= 8; ++} ++/* { dg-final { scan-assembler-not "\bsrli" } } */ ++/* { dg-final { scan-assembler "\ori\tr18,r0" } } */ ++/* { dg-final { scan-assembler "addk\tr(\[0-9]\|\[1-2]\[0-9]\|3\[0-1]),r(\[0-9]\|\[1-2]\[0-9]\|3\[0-1]),r0" } } */ ++/* { dg-final { scan-assembler "addik\tr18,r18,-1" } } */ ++/* { dg-final { scan-assembler "bneid\tr18,.-4" } } */ ++/* { dg-final { scan-assembler "\srl\tr(\[0-9]\|\[1-2]\[0-9]\|3\[0-1]),r(\[0-9]\|\[1-2]\[0-9]\|3\[0-1])" } } */ +-- +2.7.4 + diff --git a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-8/0019-Patch-microblaze-Modified-trap-instruction.patch b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-8/0019-Patch-microblaze-Modified-trap-instruction.patch new file mode 100644 index 00000000..5afcff43 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-8/0019-Patch-microblaze-Modified-trap-instruction.patch @@ -0,0 +1,29 @@ +From e8b05b5105655d276c93864ab90e15bfbe46cf74 Mon Sep 17 00:00:00 2001 +From: Mahesh Bodapati +Date: Tue, 17 Jan 2017 15:42:15 +0530 +Subject: [PATCH 19/54] [Patch, microblaze]: Modified trap instruction The + instruction was wrongly written to brki r0,-1 it should be bri r0. Modified + with the correct instruction + +Signed-off-by :Nagaraju Mekala + :Ajit Agarwal +--- + gcc/config/microblaze/microblaze.md | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/gcc/config/microblaze/microblaze.md b/gcc/config/microblaze/microblaze.md +index c063ffc..7bbdbe1 100644 +--- a/gcc/config/microblaze/microblaze.md ++++ b/gcc/config/microblaze/microblaze.md +@@ -2344,7 +2344,7 @@ + (define_insn "trap" + [(trap_if (const_int 1) (const_int 0))] + "" +- "brki\tr0,-1" ++ "bri\t0" + [(set_attr "type" "trap")] + ) + +-- +2.7.4 + diff --git a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-8/0020-Patch-microblaze-Reducing-Stack-space-for-arguments.patch b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-8/0020-Patch-microblaze-Reducing-Stack-space-for-arguments.patch new file mode 100644 index 00000000..6e07ac4f --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-8/0020-Patch-microblaze-Reducing-Stack-space-for-arguments.patch @@ -0,0 +1,206 @@ +From 0cc6aabbd3f7b331c3995f11efec545499297358 Mon Sep 17 00:00:00 2001 +From: Mahesh Bodapati +Date: Tue, 17 Jan 2017 16:42:44 +0530 +Subject: [PATCH 20/54] [Patch, microblaze]: Reducing Stack space for arguments + Currently in Microblaze target stack space for arguments in register is being + allocated even if there are no arguments in the function. This patch will + optimize the extra 24 bytes that are being allocated. + +Signed-off-by :Nagaraju Mekala + :Ajit Agarwal + +ChangeLog: +2015-04-17 Nagaraju Mekala + Ajit Agarwal + + *microblaze.c (microblaze_parm_needs_stack, microblaze_function_parms_need_stack): New + *microblaze.c (REG_PARM_STACK_SPACE): Modify +--- + gcc/config/microblaze/microblaze-protos.h | 1 + + gcc/config/microblaze/microblaze.c | 134 +++++++++++++++++++++++++++++- + gcc/config/microblaze/microblaze.h | 4 +- + 3 files changed, 136 insertions(+), 3 deletions(-) + +diff --git a/gcc/config/microblaze/microblaze-protos.h b/gcc/config/microblaze/microblaze-protos.h +index 4cbba0c..f8a56f7 100644 +--- a/gcc/config/microblaze/microblaze-protos.h ++++ b/gcc/config/microblaze/microblaze-protos.h +@@ -58,6 +58,7 @@ extern int symbol_mentioned_p (rtx); + extern int label_mentioned_p (rtx); + extern bool microblaze_cannot_force_const_mem (machine_mode, rtx); + extern void microblaze_eh_return (rtx op0); ++int microblaze_reg_parm_stack_space(tree fun); + #endif /* RTX_CODE */ + + /* Declare functions in microblaze-c.c. */ +diff --git a/gcc/config/microblaze/microblaze.c b/gcc/config/microblaze/microblaze.c +index 53b44df..0dec362 100644 +--- a/gcc/config/microblaze/microblaze.c ++++ b/gcc/config/microblaze/microblaze.c +@@ -1989,6 +1989,138 @@ microblaze_must_save_register (int regno) + return 0; + } + ++static bool ++microblaze_parm_needs_stack (cumulative_args_t args_so_far, tree type) ++{ ++ enum machine_mode mode; ++ int unsignedp; ++ rtx entry_parm; ++ ++ /* Catch errors. */ ++ if (type == NULL || type == error_mark_node) ++ return true; ++ ++ if (TREE_CODE (type) == POINTER_TYPE) ++ return true; ++ ++ /* Handle types with no storage requirement. */ ++ if (TYPE_MODE (type) == VOIDmode) ++ return false; ++ ++ /* Handle complex types. */ ++ if (TREE_CODE (type) == COMPLEX_TYPE) ++ return (microblaze_parm_needs_stack (args_so_far, TREE_TYPE (type)) ++ || microblaze_parm_needs_stack (args_so_far, TREE_TYPE (type))); ++ ++ /* Handle transparent aggregates. */ ++ if ((TREE_CODE (type) == UNION_TYPE || TREE_CODE (type) == RECORD_TYPE) ++ && TYPE_TRANSPARENT_AGGR (type)) ++ type = TREE_TYPE (first_field (type)); ++ ++ /* See if this arg was passed by invisible reference. */ ++ if (pass_by_reference (get_cumulative_args (args_so_far), ++ TYPE_MODE (type), type, true)) ++ type = build_pointer_type (type); ++ ++ /* Find mode as it is passed by the ABI. */ ++ unsignedp = TYPE_UNSIGNED (type); ++ mode = promote_mode (type, TYPE_MODE (type), &unsignedp); ++ ++/* If there is no incoming register, we need a stack. */ ++ entry_parm = microblaze_function_arg (args_so_far, mode, type, true); ++ if (entry_parm == NULL) ++ return true; ++ ++ /* Likewise if we need to pass both in registers and on the stack. */ ++ if (GET_CODE (entry_parm) == PARALLEL ++ && XEXP (XVECEXP (entry_parm, 0, 0), 0) == NULL_RTX) ++ return true; ++ ++ /* Also true if we're partially in registers and partially not. */ ++ if (function_arg_partial_bytes (args_so_far, mode, type, true) != 0) ++ return true; ++ ++ /* Update info on where next arg arrives in registers. */ ++ microblaze_function_arg_advance (args_so_far, mode, type, true); ++ return false; ++ } ++ ++static bool ++microblaze_function_parms_need_stack (tree fun, bool incoming) ++{ ++ tree fntype, result; ++ CUMULATIVE_ARGS args_so_far_v; ++ cumulative_args_t args_so_far; ++ int num_of_args = 0; ++ ++ /* Must be a libcall, all of which only use reg parms. */ ++ if (!fun) ++ return true; ++ ++ fntype = fun; ++ if (!TYPE_P (fun)) ++ fntype = TREE_TYPE (fun); ++ ++ /* Varargs functions need the parameter save area. */ ++ if ((!incoming && !prototype_p (fntype)) || stdarg_p (fntype)) ++ return true; ++ ++ INIT_CUMULATIVE_ARGS(args_so_far_v, fntype, NULL_RTX,0,0); ++ args_so_far = pack_cumulative_args (&args_so_far_v); ++ ++ /* When incoming, we will have been passed the function decl. ++ * It is necessary to use the decl to handle K&R style functions, ++ * where TYPE_ARG_TYPES may not be available. */ ++ if (incoming) ++ { ++ gcc_assert (DECL_P (fun)); ++ result = DECL_RESULT (fun); ++ } ++ else ++ result = TREE_TYPE (fntype); ++ ++ if (result && aggregate_value_p (result, fntype)) ++ { ++ if (!TYPE_P (result)) ++ result = build_pointer_type (result); ++ microblaze_parm_needs_stack (args_so_far, result); ++ } ++ ++ if (incoming) ++ { ++ tree parm; ++ for (parm = DECL_ARGUMENTS (fun); ++ parm && parm != void_list_node; ++ parm = TREE_CHAIN (parm)) ++ if (microblaze_parm_needs_stack (args_so_far, TREE_TYPE (parm))) ++ return true; ++ } ++ else ++ { ++ function_args_iterator args_iter; ++ tree arg_type; ++ ++ FOREACH_FUNCTION_ARGS (fntype, arg_type, args_iter) ++ { ++ num_of_args++; ++ if (microblaze_parm_needs_stack (args_so_far, arg_type)) ++ return true; ++ } ++ } ++ ++ if (num_of_args > 3) return true; ++ ++ return false; ++} ++ ++int microblaze_reg_parm_stack_space(tree fun) ++{ ++ if (microblaze_function_parms_need_stack (fun,false)) ++ return MAX_ARGS_IN_REGISTERS * UNITS_PER_WORD; ++ else ++ return 0; ++} ++ + /* Return the bytes needed to compute the frame pointer from the current + stack pointer. + +@@ -3298,7 +3430,7 @@ microblaze_asm_output_mi_thunk (FILE *file, tree thunk_fndecl ATTRIBUTE_UNUSED, + emit_insn (gen_indirect_jump (temp2)); + + /* Run just enough of rest_of_compilation. This sequence was +- "borrowed" from rs6000.c. */ ++ "borrowed" from microblaze.c. */ + insn = get_insns (); + shorten_branches (insn); + final_start_function (insn, file, 1); +diff --git a/gcc/config/microblaze/microblaze.h b/gcc/config/microblaze/microblaze.h +index 88e0351..9f74ec8 100644 +--- a/gcc/config/microblaze/microblaze.h ++++ b/gcc/config/microblaze/microblaze.h +@@ -434,9 +434,9 @@ extern struct microblaze_frame_info current_frame_info; + + #define ARG_POINTER_CFA_OFFSET(FNDECL) 0 + +-#define REG_PARM_STACK_SPACE(FNDECL) (MAX_ARGS_IN_REGISTERS * UNITS_PER_WORD) ++#define REG_PARM_STACK_SPACE(FNDECL) microblaze_reg_parm_stack_space(FNDECL) + +-#define OUTGOING_REG_PARM_STACK_SPACE(FNTYPE) 1 ++#define OUTGOING_REG_PARM_STACK_SPACE(FNTYPE) 1 + + #define STACK_BOUNDARY 32 + +-- +2.7.4 + diff --git a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-8/0021-Patch-microblaze-Add-cbranchsi4_reg.patch b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-8/0021-Patch-microblaze-Add-cbranchsi4_reg.patch new file mode 100644 index 00000000..b04ee580 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-8/0021-Patch-microblaze-Add-cbranchsi4_reg.patch @@ -0,0 +1,159 @@ +From f846bd900d5277dd9defb5fe0625f97e3417ee61 Mon Sep 17 00:00:00 2001 +From: Mahesh Bodapati +Date: Tue, 17 Jan 2017 17:04:37 +0530 +Subject: [PATCH 21/54] [Patch, microblaze]: Add cbranchsi4_reg This patch + optimizes the generation of pcmpne/pcmpeq instruction if the compare + instruction has no immediate values.For the immediate values the xor + instruction is generated + +Signed-off-by: Nagaraju Mekala +Signed-off-by: Ajit Agarwal + +ChangeLog: +2015-01-13 Nagaraju Mekala + Ajit Agarwal + + *microblaze.md (cbranchsi4_reg): New + *microblaze.c (microblaze_expand_conditional_branch_reg): New + +Conflicts: + + gcc/config/microblaze/microblaze-protos.h +--- + gcc/config/microblaze/microblaze-protos.h | 2 +- + gcc/testsuite/gcc.target/microblaze/isa/fcmp1.c | 2 +- + gcc/testsuite/gcc.target/microblaze/isa/fcmp2.c | 2 +- + gcc/testsuite/gcc.target/microblaze/isa/fcmp3.c | 2 +- + gcc/testsuite/gcc.target/microblaze/isa/fcmp4.c | 2 +- + gcc/testsuite/gcc.target/microblaze/isa/nofcmp.c | 14 +++++++------- + gcc/testsuite/gcc.target/microblaze/isa/vanilla.c | 12 ++++++------ + gcc/testsuite/gcc.target/microblaze/others/builtin-trap.c | 2 +- + 8 files changed, 19 insertions(+), 19 deletions(-) + +diff --git a/gcc/config/microblaze/microblaze-protos.h b/gcc/config/microblaze/microblaze-protos.h +index f8a56f7..c39e2e9 100644 +--- a/gcc/config/microblaze/microblaze-protos.h ++++ b/gcc/config/microblaze/microblaze-protos.h +@@ -32,7 +32,7 @@ extern int microblaze_expand_shift (rtx *); + extern bool microblaze_expand_move (machine_mode, rtx *); + extern bool microblaze_expand_block_move (rtx, rtx, rtx, rtx); + extern void microblaze_expand_divide (rtx *); +-extern void microblaze_expand_conditional_branch (machine_mode, rtx *); ++extern void microblaze_expand_conditional_branch (enum machine_mode, rtx *); + extern void microblaze_expand_conditional_branch_reg (machine_mode, rtx *); + extern void microblaze_expand_conditional_branch_sf (rtx *); + extern int microblaze_can_use_return_insn (void); +diff --git a/gcc/testsuite/gcc.target/microblaze/isa/fcmp1.c b/gcc/testsuite/gcc.target/microblaze/isa/fcmp1.c +index 4041a24..ccc6a46 100644 +--- a/gcc/testsuite/gcc.target/microblaze/isa/fcmp1.c ++++ b/gcc/testsuite/gcc.target/microblaze/isa/fcmp1.c +@@ -6,5 +6,5 @@ void float_func () + { + /* { dg-final { scan-assembler "fcmp\.(le|gt)\tr(\[0-9]\|\[1-2]\[0-9]\|3\[0-1]),r(\[0-9]\|\[1-2]\[0-9]\|3\[0-1]),r(\[0-9]\|\[1-2]\[0-9]\|3\[0-1])\[^0-9]" } } */ + if (f2 <= f3) +- print ("le"); ++ f2 = f3; + } +diff --git a/gcc/testsuite/gcc.target/microblaze/isa/fcmp2.c b/gcc/testsuite/gcc.target/microblaze/isa/fcmp2.c +index 3902b83..1dd5fe6 100644 +--- a/gcc/testsuite/gcc.target/microblaze/isa/fcmp2.c ++++ b/gcc/testsuite/gcc.target/microblaze/isa/fcmp2.c +@@ -6,5 +6,5 @@ void float_func () + { + /* { dg-final { scan-assembler "fcmp\.(lt|ge)\tr(\[0-9]\|\[1-2]\[0-9]\|3\[0-1]),r(\[0-9]\|\[1-2]\[0-9]\|3\[0-1]),r(\[0-9]\|\[1-2]\[0-9]\|3\[0-1])\[^0-9]" } } */ + if (f2 < f3) +- print ("lt"); ++ f2 = f3; + } +diff --git a/gcc/testsuite/gcc.target/microblaze/isa/fcmp3.c b/gcc/testsuite/gcc.target/microblaze/isa/fcmp3.c +index 8555974..d6f80fb 100644 +--- a/gcc/testsuite/gcc.target/microblaze/isa/fcmp3.c ++++ b/gcc/testsuite/gcc.target/microblaze/isa/fcmp3.c +@@ -6,5 +6,5 @@ void float_func () + { + /* { dg-final { scan-assembler "fcmp\.(eq|ne)\tr(\[0-9]\|\[1-2]\[0-9]\|3\[0-1]),r(\[0-9]\|\[1-2]\[0-9]\|3\[0-1]),r(\[0-9]\|\[1-2]\[0-9]\|3\[0-1])\[^0-9]" } } */ + if (f2 == f3) +- print ("eq"); ++ f1 = f2 + f3; + } +diff --git a/gcc/testsuite/gcc.target/microblaze/isa/fcmp4.c b/gcc/testsuite/gcc.target/microblaze/isa/fcmp4.c +index 79cc5f9..d117724 100644 +--- a/gcc/testsuite/gcc.target/microblaze/isa/fcmp4.c ++++ b/gcc/testsuite/gcc.target/microblaze/isa/fcmp4.c +@@ -5,5 +5,5 @@ void float_func(float f1, float f2, float f3) + /* { dg-final { scan-assembler "fcmp\.eq\tr(\[0-9]\|\[1-2]\[0-9]\|3\[0-1]),r(\[0-9]\|\[1-2]\[0-9]\|3\[0-1]),r(\[0-9]\|\[1-2]\[0-9]\|3\[0-1])\[^0-9]" } } */ + /* { dg-final { scan-assembler "fcmp\.le\tr(\[0-9]\|\[1-2]\[0-9]\|3\[0-1]),r(\[0-9]\|\[1-2]\[0-9]\|3\[0-1]),r(\[0-9]\|\[1-2]\[0-9]\|3\[0-1])\[^0-9]" } } */ + if(f1==f2 && f1<=f3) +- print ("f1 eq f2 && f1 le f3"); ++ f2 = f3; + } +diff --git a/gcc/testsuite/gcc.target/microblaze/isa/nofcmp.c b/gcc/testsuite/gcc.target/microblaze/isa/nofcmp.c +index ebfb170..7582297 100644 +--- a/gcc/testsuite/gcc.target/microblaze/isa/nofcmp.c ++++ b/gcc/testsuite/gcc.target/microblaze/isa/nofcmp.c +@@ -5,17 +5,17 @@ volatile float f1, f2, f3; + void float_func () + { + /* { dg-final { scan-assembler-not "fcmp" } } */ +- if (f2 <= f3) +- print ("le"); ++ if (f2 <= f3) ++ f1 = f3; + else if (f2 == f3) +- print ("eq"); ++ f1 = f3; + else if (f2 < f3) +- print ("lt"); ++ f1 = f3; + else if (f2 > f3) +- print ("gt"); ++ f1 = f3; + else if (f2 >= f3) +- print ("ge"); ++ f1 = f3; + else if (f2 != f3) +- print ("ne"); ++ f1 = f3; + + } +diff --git a/gcc/testsuite/gcc.target/microblaze/isa/vanilla.c b/gcc/testsuite/gcc.target/microblaze/isa/vanilla.c +index 1d6ba80..532c035 100644 +--- a/gcc/testsuite/gcc.target/microblaze/isa/vanilla.c ++++ b/gcc/testsuite/gcc.target/microblaze/isa/vanilla.c +@@ -74,16 +74,16 @@ void float_cmp_func () + { + /* { dg-final { scan-assembler-not "fcmp" } } */ + if (f2 <= f3) +- print ("le"); ++ f1 = f3; + else if (f2 == f3) +- print ("eq"); ++ f1 = f3; + else if (f2 < f3) +- print ("lt"); ++ f1 = f3; + else if (f2 > f3) +- print ("gt"); ++ f1 = f3; + else if (f2 >= f3) +- print ("ge"); ++ f1 = f3; + else if (f2 != f3) +- print ("ne"); ++ f1 = f3; + + } +diff --git a/gcc/testsuite/gcc.target/microblaze/others/builtin-trap.c b/gcc/testsuite/gcc.target/microblaze/others/builtin-trap.c +index fdcde1f..580b4db 100644 +--- a/gcc/testsuite/gcc.target/microblaze/others/builtin-trap.c ++++ b/gcc/testsuite/gcc.target/microblaze/others/builtin-trap.c +@@ -5,4 +5,4 @@ void trap () + __builtin_trap (); + } + +-/* { dg-final { scan-assembler "brki\tr0,-1" } } */ +\ No newline at end of file ++/* { dg-final { scan-assembler "bri\t0" } } */ +-- +2.7.4 + diff --git a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-8/0022-Patch-microblaze-Inline-Expansion-of-fsqrt-builtin.patch b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-8/0022-Patch-microblaze-Inline-Expansion-of-fsqrt-builtin.patch new file mode 100644 index 00000000..beeb80fd --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-8/0022-Patch-microblaze-Inline-Expansion-of-fsqrt-builtin.patch @@ -0,0 +1,58 @@ +From 7d70a287544dd915b66a5658a3857ebecb8b3583 Mon Sep 17 00:00:00 2001 +From: Mahesh Bodapati +Date: Tue, 17 Jan 2017 17:11:04 +0530 +Subject: [PATCH 22/54] [Patch,microblaze]: Inline Expansion of fsqrt builtin. + The changes are made in the patch for the inline expansion of the fsqrt + builtin with fqrt instruction. The sqrt math function takes double as + argument and return double as argument. The pattern is selected while + expanding the unary op through expand_unop which passes DFmode and the DFmode + pattern was not there returning zero. Thus the sqrt math function is not + inlined and expanded. The pattern with DFmode argument is added. Also the + source and destination argument is not same the DF through two different + consecutive registers with lower 32 bit is the argument passed to sqrt and + the higher 32 bit is zero. If the source and destinations are different the + DFmode 64 bits registers is not set properly giving the problem in runtime. + Such changes are taken care in the implementation of the pattern for DFmode + for inline expansion of the sqrt. + +ChangeLog: +2015-06-16 Ajit Agarwal + Nagaraju Mekala + + * config/microblaze/microblaze.md (sqrtdf2): New + pattern. + +Signed-off-by:Ajit Agarwal ajitkum@xilinx.com + Nagaraju Mekala nmekala@xilinx.com +--- + gcc/config/microblaze/microblaze.md | 14 ++++++++++++++ + 1 file changed, 14 insertions(+) + +diff --git a/gcc/config/microblaze/microblaze.md b/gcc/config/microblaze/microblaze.md +index 7bbdbe1..3a53e24 100644 +--- a/gcc/config/microblaze/microblaze.md ++++ b/gcc/config/microblaze/microblaze.md +@@ -449,6 +449,20 @@ + (set_attr "mode" "SF") + (set_attr "length" "4")]) + ++(define_insn "sqrtdf2" ++ [(set (match_operand:DF 0 "register_operand" "=d") ++ (sqrt:DF (match_operand:DF 1 "register_operand" "dG")))] ++ "TARGET_HARD_FLOAT && TARGET_FLOAT_SQRT" ++ { ++ if (REGNO (operands[0]) == REGNO (operands[1])) ++ return "fsqrt\t%0,%1"; ++ else ++ return "fsqrt\t%0,%1\n\taddk\t%D0,%D1,r0"; ++ } ++ [(set_attr "type" "fsqrt") ++ (set_attr "mode" "SF") ++ (set_attr "length" "4")]) ++ + (define_insn "fix_truncsfsi2" + [(set (match_operand:SI 0 "register_operand" "=d") + (fix:SI (match_operand:SF 1 "register_operand" "d")))] +-- +2.7.4 + diff --git a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-8/0023-Patch-OPT-Update-heuristics-for-loop-invariant-for-a.patch b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-8/0023-Patch-OPT-Update-heuristics-for-loop-invariant-for-a.patch new file mode 100644 index 00000000..8f5bed52 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-8/0023-Patch-OPT-Update-heuristics-for-loop-invariant-for-a.patch @@ -0,0 +1,47 @@ +From a28768eec0a9d5137196bed8e8c6d284cf4c3cbc Mon Sep 17 00:00:00 2001 +From: Mahesh Bodapati +Date: Tue, 17 Jan 2017 17:33:31 +0530 +Subject: [PATCH 23/54] [Patch] OPT: Update heuristics for loop-invariant for + address arithme. .tic. + +The changes are made in the patch to update the heuristics +for loop invariant for address arithmetic. The heuristics is +changed to calculate the estimated register pressure cost when +ira based register pressure is not enabled. The estimated +register pressure cost modifies the existing calculation cost +associated to perform the Loop invariant code motion for address +arithmetic. + +ChangeLog: +2015-06-17 Ajit Agarwal + Nagaraju Mekala + + * loop-invariant.c (gain_for_invariant): update the + heuristics for estimate_reg_pressure_cost. + +Signed-off-by:Ajit Agarwal ajitkum@xilinx.com + Nagaraju Mekala nmekala@xilinx.com +--- + gcc/loop-invariant.c | 6 ++---- + 1 file changed, 2 insertions(+), 4 deletions(-) + +diff --git a/gcc/loop-invariant.c b/gcc/loop-invariant.c +index bd31a51..8e22ca0 100644 +--- a/gcc/loop-invariant.c ++++ b/gcc/loop-invariant.c +@@ -1466,10 +1466,8 @@ gain_for_invariant (struct invariant *inv, unsigned *regs_needed, + + if (! flag_ira_loop_pressure) + { +- size_cost = (estimate_reg_pressure_cost (new_regs[0] + regs_needed[0], +- regs_used, speed, call_p) +- - estimate_reg_pressure_cost (new_regs[0], +- regs_used, speed, call_p)); ++ size_cost = estimate_reg_pressure_cost (regs_needed[0], ++ regs_used, speed, call_p); + } + else if (ret < 0) + return -1; +-- +2.7.4 + diff --git a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-8/0024-PATCH-microblaze.md-Improve-adddi3-and-subdi3-insn-d.patch b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-8/0024-PATCH-microblaze.md-Improve-adddi3-and-subdi3-insn-d.patch new file mode 100644 index 00000000..85a749e5 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-8/0024-PATCH-microblaze.md-Improve-adddi3-and-subdi3-insn-d.patch @@ -0,0 +1,63 @@ +From be9c512be09fa4ef67870ab0456eb3781394dac3 Mon Sep 17 00:00:00 2001 +From: Mahesh Bodapati +Date: Tue, 17 Jan 2017 18:07:24 +0530 +Subject: [PATCH 24/54] [PATCH] microblaze.md: Improve 'adddi3' and 'subdi3' + insn definitions Change adddi3 to handle DI immediates as the second operand, + this requires modification to the output template however reduces the need to + specify seperate templates for 16-bit positive/negative immediate operands. + The use of 32-bit immediates for the addi and addic instructions is handled + by the assembler, which will emit the imm instructions when required. This + conveniently handles the optimizable cases where the immediate constant value + does not need the higher half words of the operands upper/lower words. + +Change the constraints of the subdi3 instruction definition such that it +does not match the second operand as an immediate value. This is because +there is no definition to handle this case nor is it possible to +implement purely with instructions as microblaze does not provide an +instruction to perform a forward arithmetic subtraction (it only +provides reverse 'rD = IMM - rA'). + +Signed-off-by: Nathan Rossi +--- + gcc/config/microblaze/microblaze.md | 13 ++++++------- + 1 file changed, 6 insertions(+), 7 deletions(-) + +diff --git a/gcc/config/microblaze/microblaze.md b/gcc/config/microblaze/microblaze.md +index 3a53e24..949e103 100644 +--- a/gcc/config/microblaze/microblaze.md ++++ b/gcc/config/microblaze/microblaze.md +@@ -500,17 +500,16 @@ + ;; Adding 2 DI operands in register or reg/imm + + (define_insn "adddi3" +- [(set (match_operand:DI 0 "register_operand" "=d,d,d") +- (plus:DI (match_operand:DI 1 "register_operand" "%d,d,d") +- (match_operand:DI 2 "arith_operand32" "d,P,N")))] ++ [(set (match_operand:DI 0 "register_operand" "=d,d") ++ (plus:DI (match_operand:DI 1 "register_operand" "%d,d") ++ (match_operand:DI 2 "arith_operand" "d,i")))] + "" + "@ + add\t%L0,%L1,%L2\;addc\t%M0,%M1,%M2 +- addi\t%L0,%L1,%2\;addc\t%M0,%M1,r0 +- addi\t%L0,%L1,%2\;addc\t%M0,%M1,r0\;addi\t%M0,%M0,-1" ++ addi\t%L0,%L1,%j2\;addic\t%M0,%M1,%h2" + [(set_attr "type" "darith") + (set_attr "mode" "DI") +- (set_attr "length" "8,8,12")]) ++ (set_attr "length" "8,8")]) + + ;;---------------------------------------------------------------- + ;; Subtraction +@@ -547,7 +546,7 @@ + (define_insn "subdi3" + [(set (match_operand:DI 0 "register_operand" "=&d") + (minus:DI (match_operand:DI 1 "register_operand" "d") +- (match_operand:DI 2 "arith_operand32" "d")))] ++ (match_operand:DI 2 "register_operand" "d")))] + "" + "rsub\t%L0,%L2,%L1\;rsubc\t%M0,%M2,%M1" + [(set_attr "type" "darith") +-- +2.7.4 + diff --git a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-8/0025-Patch-microblaze-Update-ashlsi3-movsf-patterns.patch b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-8/0025-Patch-microblaze-Update-ashlsi3-movsf-patterns.patch new file mode 100644 index 00000000..17f25448 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-8/0025-Patch-microblaze-Update-ashlsi3-movsf-patterns.patch @@ -0,0 +1,72 @@ +From c8ee051fa3e0ad05b19eb6141a7cb72245b412b7 Mon Sep 17 00:00:00 2001 +From: Mahesh Bodapati +Date: Tue, 17 Jan 2017 18:18:41 +0530 +Subject: [PATCH 25/54] [Patch, microblaze]: Update ashlsi3 & movsf patterns + This patch removes the use of HOST_WIDE_INT_PRINT_HEX macro in print_operand + of ashlsi3_with_mul_nodelay,ashlsi3_with_mul_delay and movsf_internal + patterns beacuse HOST_WIDE_INT_PRINT_HEX is generating 64-bit value which our + instruction doesn't support so using gen_int_mode function + +Signed-off-by :Nagaraju Mekala + :Ajit Agarwal + +ChangeLog: +2016-01-07 Nagaraju Mekala + Ajit Agarwal + + *microblaze.md (ashlsi3_with_mul_nodelay, + ashlsi3_with_mul_delay, + movsf_internal): + Updated the patterns to use gen_int_mode function + *microblaze.c (print_operand): + updated the 'F' case to use "unsinged int" instead + of HOST_WIDE_INT_PRINT_HEX +--- + gcc/config/microblaze/microblaze.c | 2 +- + gcc/config/microblaze/microblaze.md | 10 ++++++++-- + 2 files changed, 9 insertions(+), 3 deletions(-) + +diff --git a/gcc/config/microblaze/microblaze.c b/gcc/config/microblaze/microblaze.c +index 0dec362..daf0269 100644 +--- a/gcc/config/microblaze/microblaze.c ++++ b/gcc/config/microblaze/microblaze.c +@@ -2531,7 +2531,7 @@ print_operand (FILE * file, rtx op, int letter) + unsigned long value_long; + REAL_VALUE_TO_TARGET_SINGLE (*CONST_DOUBLE_REAL_VALUE (op), + value_long); +- fprintf (file, HOST_WIDE_INT_PRINT_HEX, value_long); ++ fprintf (file, "0x%08x", (unsigned int) value_long); + } + else + { +diff --git a/gcc/config/microblaze/microblaze.md b/gcc/config/microblaze/microblaze.md +index 949e103..bc675ca 100644 +--- a/gcc/config/microblaze/microblaze.md ++++ b/gcc/config/microblaze/microblaze.md +@@ -1366,7 +1366,10 @@ + (match_operand:SI 2 "immediate_operand" "I")))] + "!TARGET_SOFT_MUL + && ((1 << INTVAL (operands[2])) <= 32767 && (1 << INTVAL (operands[2])) >= -32768)" +- "muli\t%0,%1,%m2" ++ { ++ operands[2] = gen_int_mode (1 << INTVAL (operands[2]), SImode); ++ return "muli\t%0,%1,%2"; ++ } + ;; This MUL will not generate an imm. Can go into a delay slot. + [(set_attr "type" "arith") + (set_attr "mode" "SI") +@@ -1378,7 +1381,10 @@ + (ashift:SI (match_operand:SI 1 "register_operand" "d") + (match_operand:SI 2 "immediate_operand" "I")))] + "!TARGET_SOFT_MUL" +- "muli\t%0,%1,%m2" ++ { ++ operands[2] = gen_int_mode (1 << INTVAL (operands[2]), SImode); ++ return "muli\t%0,%1,%2"; ++ } + ;; This MUL will generate an IMM. Cannot go into a delay slot + [(set_attr "type" "no_delay_arith") + (set_attr "mode" "SI") +-- +2.7.4 + diff --git a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-8/0026-Patch-microblaze-8-stage-pipeline-for-microblaze.patch b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-8/0026-Patch-microblaze-8-stage-pipeline-for-microblaze.patch new file mode 100644 index 00000000..506714bd --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-8/0026-Patch-microblaze-8-stage-pipeline-for-microblaze.patch @@ -0,0 +1,193 @@ +From 64e76f3be6ad78044ea2b89b555a07758c2b2950 Mon Sep 17 00:00:00 2001 +From: Mahesh Bodapati +Date: Tue, 17 Jan 2017 19:50:34 +0530 +Subject: [PATCH 26/54] [Patch, microblaze]: 8-stage pipeline for microblaze + This patch adds the support for the 8-stage pipeline. The new 8-stage + pipeline reduces the latencies of float & integer division drastically + +Signed-off-by :Nagaraju Mekala + +ChangeLog: +2016-01-18 Nagaraju Mekala + + *microblaze.md (define_automaton mbpipe_8): New + + *microblaze.c (microblaze_option_override): Update + Updated the logic to generate only when MB version is 10.0 + + *microblaze.h (pipeline_type): Update + Update the enum with MICROBLAZE_PIPE_8 + + *microblaze.opt (mxl-frequency): New + New flag added for 8-stage pipeline +--- + gcc/config/microblaze/microblaze.c | 13 ++++++ + gcc/config/microblaze/microblaze.h | 3 +- + gcc/config/microblaze/microblaze.md | 79 +++++++++++++++++++++++++++++++++++- + gcc/config/microblaze/microblaze.opt | 4 ++ + 4 files changed, 96 insertions(+), 3 deletions(-) + +diff --git a/gcc/config/microblaze/microblaze.c b/gcc/config/microblaze/microblaze.c +index daf0269..3832d16 100644 +--- a/gcc/config/microblaze/microblaze.c ++++ b/gcc/config/microblaze/microblaze.c +@@ -1772,6 +1772,19 @@ microblaze_option_override (void) + warning (0, "-mxl-reorder requires -mxl-pattern-compare for -mcpu=v8.30.a"); + TARGET_REORDER = 0; + } ++ ver = ver_int - microblaze_version_to_int("v10.0"); ++ if (ver < 0) ++ { ++ if (TARGET_AREA_OPTIMIZED_2) ++ warning (0, "-mxl-frequency can be used only with -mcpu=v10.0 or greater"); ++ } ++ else ++ { ++ if (TARGET_AREA_OPTIMIZED_2) ++ microblaze_pipe = MICROBLAZE_PIPE_8; ++ if (TARGET_BARREL_SHIFT) ++ microblaze_has_bitfield = 1; ++ } + + if (TARGET_MULTIPLY_HIGH && TARGET_SOFT_MUL) + error ("-mxl-multiply-high requires -mno-xl-soft-mul"); +diff --git a/gcc/config/microblaze/microblaze.h b/gcc/config/microblaze/microblaze.h +index 9f74ec8..2ac5aeec 100644 +--- a/gcc/config/microblaze/microblaze.h ++++ b/gcc/config/microblaze/microblaze.h +@@ -27,7 +27,8 @@ + enum pipeline_type + { + MICROBLAZE_PIPE_3 = 0, +- MICROBLAZE_PIPE_5 = 1 ++ MICROBLAZE_PIPE_5 = 1, ++ MICROBLAZE_PIPE_8 = 2 + }; + + #define MICROBLAZE_MASK_NO_UNSAFE_DELAY 0x00000001 +diff --git a/gcc/config/microblaze/microblaze.md b/gcc/config/microblaze/microblaze.md +index bc675ca..6395533 100644 +--- a/gcc/config/microblaze/microblaze.md ++++ b/gcc/config/microblaze/microblaze.md +@@ -35,6 +35,7 @@ + (R_GOT 20) ;; GOT ptr reg + (MB_PIPE_3 0) ;; Microblaze 3-stage pipeline + (MB_PIPE_5 1) ;; Microblaze 5-stage pipeline ++ (MB_PIPE_8 2) ;; Microblaze 8-stage pipeline + (UNSPEC_SET_GOT 101) ;; + (UNSPEC_GOTOFF 102) ;; GOT offset + (UNSPEC_PLT 103) ;; jump table +@@ -80,7 +81,7 @@ + ;; bshift Shift operations + + (define_attr "type" +- "unknown,branch,jump,call,load,store,move,arith,darith,imul,idiv,icmp,multi,nop,no_delay_arith,no_delay_load,no_delay_store,no_delay_imul,no_delay_move,bshift,fadd,frsub,fmul,fdiv,fcmp,fsl,fsqrt,fcvt,trap" ++ "unknown,branch,jump,call,load,store,move,arith,darith,imul,idiv,icmp,multi,nop,no_delay_arith,no_delay_load,no_delay_store,no_delay_imul,no_delay_move,bshift,fadd,frsub,fmul,fdiv,fcmp,fsl,fsqrt,fcvt,fint,trap" + (const_string "unknown")) + + ;; Main data type used by the insn +@@ -222,6 +223,80 @@ + ;;----------------------------------------------------------------- + + ++ ++;;---------------------------------------------------------------- ++;; Microblaze 8-stage pipeline description (v10.0 and later) ++;;---------------------------------------------------------------- ++ ++(define_automaton "mbpipe_8") ++(define_cpu_unit "mb8_issue,mb8_iu,mb8_wb,mb8_fpu,mb8_fpu_2,mb8_mul,mb8_mul_2,mb8_div,mb8_div_2,mb8_bs,mb8_bs_2" "mbpipe_8") ++ ++(define_insn_reservation "mb8-integer" 1 ++ (and (eq_attr "type" "branch,jump,call,arith,darith,icmp,nop,no_delay_arith") ++ (eq (symbol_ref "microblaze_pipe") (const_int MB_PIPE_8))) ++ "mb8_issue,mb8_iu,mb8_wb") ++ ++(define_insn_reservation "mb8-special-move" 2 ++ (and (eq_attr "type" "move") ++ (eq (symbol_ref "microblaze_pipe") (const_int MB_PIPE_8))) ++ "mb8_issue,mb8_iu*2,mb8_wb") ++ ++(define_insn_reservation "mb8-mem-load" 3 ++ (and (eq_attr "type" "load,no_delay_load") ++ (eq (symbol_ref "microblaze_pipe") (const_int MB_PIPE_8))) ++ "mb8_issue,mb8_iu,mb8_wb") ++ ++(define_insn_reservation "mb8-mem-store" 1 ++ (and (eq_attr "type" "store,no_delay_store") ++ (eq (symbol_ref "microblaze_pipe") (const_int MB_PIPE_8))) ++ "mb8_issue,mb8_iu,mb8_wb") ++ ++(define_insn_reservation "mb8-mul" 3 ++ (and (eq_attr "type" "imul,no_delay_imul") ++ (eq (symbol_ref "microblaze_pipe") (const_int MB_PIPE_8))) ++ "mb8_issue,mb8_mul,mb8_mul_2*2,mb8_wb") ++ ++(define_insn_reservation "mb8-div" 30 ++ (and (eq_attr "type" "idiv") ++ (eq (symbol_ref "microblaze_pipe") (const_int MB_PIPE_8))) ++ "mb8_issue,mb8_div,mb8_div_2*29,mb8_wb") ++ ++(define_insn_reservation "mb8-bs" 2 ++ (and (eq_attr "type" "bshift") ++ (eq (symbol_ref "microblaze_pipe") (const_int MB_PIPE_8))) ++ "mb8_issue,mb8_bs,mb8_bs_2,mb8_wb") ++ ++(define_insn_reservation "mb8-fpu-add-sub-mul" 1 ++ (and (eq_attr "type" "fadd,frsub,fmul") ++ (eq (symbol_ref "microblaze_pipe") (const_int MB_PIPE_8))) ++ "mb8_issue,mb8_fpu,mb8_wb") ++ ++(define_insn_reservation "mb8-fpu-fcmp" 3 ++ (and (eq_attr "type" "fcmp") ++ (eq (symbol_ref "microblaze_pipe") (const_int MB_PIPE_8))) ++ "mb8_issue,mb8_fpu,mb8_fpu*2,mb8_wb") ++ ++(define_insn_reservation "mb8-fpu-div" 24 ++ (and (eq_attr "type" "fdiv") ++ (eq (symbol_ref "microblaze_pipe") (const_int MB_PIPE_8))) ++ "mb8_issue,mb8_fpu,mb8_fpu_2*23,mb8_wb") ++ ++(define_insn_reservation "mb8-fpu-sqrt" 23 ++ (and (eq_attr "type" "fsqrt") ++ (eq (symbol_ref "microblaze_pipe") (const_int MB_PIPE_8))) ++ "mb8_issue,mb8_fpu,mb8_fpu_2*22,mb8_wb") ++ ++(define_insn_reservation "mb8-fpu-fcvt" 1 ++ (and (eq_attr "type" "fcvt") ++ (eq (symbol_ref "microblaze_pipe") (const_int MB_PIPE_8))) ++ "mb8_issue,mb8_fpu,mb8_wb") ++ ++(define_insn_reservation "mb8-fpu-fint" 2 ++ (and (eq_attr "type" "fint") ++ (eq (symbol_ref "microblaze_pipe") (const_int MB_PIPE_8))) ++ "mb8_issue,mb8_fpu,mb8_wb") ++ ++ + ;;---------------------------------------------------------------- + ;; Microblaze 5-stage pipeline description (v5.00.a and later) + ;;---------------------------------------------------------------- +@@ -468,7 +543,7 @@ + (fix:SI (match_operand:SF 1 "register_operand" "d")))] + "TARGET_HARD_FLOAT && TARGET_FLOAT_CONVERT" + "fint\t%0,%1" +- [(set_attr "type" "fcvt") ++ [(set_attr "type" "fint") + (set_attr "mode" "SF") + (set_attr "length" "4")]) + +diff --git a/gcc/config/microblaze/microblaze.opt b/gcc/config/microblaze/microblaze.opt +index 8242998..c8e6f00 100644 +--- a/gcc/config/microblaze/microblaze.opt ++++ b/gcc/config/microblaze/microblaze.opt +@@ -129,3 +129,7 @@ Use hardware prefetch instruction + + mxl-mode-xilkernel + Target ++ ++mxl-frequency ++Target Mask(AREA_OPTIMIZED_2) ++Use 8 stage pipeline (frequency optimization) +-- +2.7.4 + diff --git a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-8/0027-Patch-rtl-Optimization-Better-register-pressure-esti.patch b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-8/0027-Patch-rtl-Optimization-Better-register-pressure-esti.patch new file mode 100644 index 00000000..95b9b2aa --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-8/0027-Patch-rtl-Optimization-Better-register-pressure-esti.patch @@ -0,0 +1,142 @@ +From 5147c831c6a78d9b95138b679bb2ca7624abc3a1 Mon Sep 17 00:00:00 2001 +From: Mahesh Bodapati +Date: Wed, 18 Jan 2017 11:08:40 +0530 +Subject: [PATCH 27/54] [Patch,rtl Optimization]: Better register pressure + estimate for loop . .invariant code motion + +Calculate the loop liveness used for regs for calculating the register pressure +in the cost estimation. Loop liveness is based on the following properties. +We only need to find the set of objects that are live at the birth or the header +of the loop. We don't need to calculate the live through the loop by considering +live in and live out of all the basic blocks of the loop. This is based on the +point that the set of objects that are live-in at the birth or header of the loop +will be live-in at every node in the loop. + +If a v live is out at the header of the loop then the variable is live-in at every node +in the loop. To prove this, consider a loop L with header h such that the variable v +defined at d is live-in at h. Since v is live at h, d is not part of L. This follows i +from the dominance property, i.e. h is strictly dominated by d. Furthermore, there +exists a path from h to a use of v which does not go through d. For every node p in +the loop, since the loop is strongly connected and node is a component of the CFG, +there exists a path, consisting only of nodes of L from p to h. Concatenating these +two paths proves that v is live-in and live-out of p. + +Calculate the live-out and live-in for the exit edge of the loop. This patch considers +liveness for not only the loop latch but also the liveness outside the loops. + +ChangeLog: +2016-01-22 Ajit Agarwal + + * loop-invariant.c + (find_invariants_to_move): Add the logic of regs_used based + on liveness. + * cfgloopanal.c + (estimate_reg_pressure_cost): Update the heuristics in presence + of call_p. + +Signed-off-by:Ajit Agarwal ajitkum@xilinx.com. +--- + gcc/cfgloopanal.c | 4 +++- + gcc/loop-invariant.c | 63 +++++++++++++++++++++++++++++++++++++++------------- + 2 files changed, 50 insertions(+), 17 deletions(-) + +diff --git a/gcc/cfgloopanal.c b/gcc/cfgloopanal.c +index 3af0b2d..123dc6b 100644 +--- a/gcc/cfgloopanal.c ++++ b/gcc/cfgloopanal.c +@@ -411,7 +411,9 @@ estimate_reg_pressure_cost (unsigned n_new, unsigned n_old, bool speed, + if (regs_needed + target_res_regs <= available_regs) + return 0; + +- if (regs_needed <= available_regs) ++ if ((regs_needed <= available_regs) ++ || (call_p && (regs_needed <= ++ (available_regs + target_clobbered_regs)))) + /* If we are close to running out of registers, try to preserve + them. */ + cost = target_reg_cost [speed] * n_new; +diff --git a/gcc/loop-invariant.c b/gcc/loop-invariant.c +index 8e22ca0..c9ec8df 100644 +--- a/gcc/loop-invariant.c ++++ b/gcc/loop-invariant.c +@@ -1520,7 +1520,7 @@ gain_for_invariant (struct invariant *inv, unsigned *regs_needed, + size_cost = 0; + } + +- return comp_cost - size_cost; ++ return comp_cost - size_cost + 1; + } + + /* Finds invariant with best gain for moving. Returns the gain, stores +@@ -1614,22 +1614,53 @@ find_invariants_to_move (bool speed, bool call_p) + /* REGS_USED is actually never used when the flag is on. */ + regs_used = 0; + else +- /* We do not really do a good job in estimating number of +- registers used; we put some initial bound here to stand for +- induction variables etc. that we do not detect. */ ++ /* The logic used in estimating the number of regs_used is changed. ++ Now it will be based on liveness of the loop. */ + { +- unsigned int n_regs = DF_REG_SIZE (df); +- +- regs_used = 2; +- +- for (i = 0; i < n_regs; i++) +- { +- if (!DF_REGNO_FIRST_DEF (i) && DF_REGNO_LAST_USE (i)) +- { +- /* This is a value that is used but not changed inside loop. */ +- regs_used++; +- } +- } ++ int i; ++ edge e; ++ vec edges; ++ bitmap_head regs_live; ++ ++ bitmap_initialize (®s_live, ®_obstack); ++ edges = get_loop_exit_edges (curr_loop); ++ ++ /* Loop liveness is based on the following properties. ++ We only need to find the set of objects that are live at the ++ birth or the header of the loop. ++ We don't need to calculate the live through the loop considering ++ live-in and live-out of all the basic blocks of the loop. This is ++ based on the point that the set of objects that are live-in at the ++ birth or header of the loop will be live-in at every block in the ++ loop. ++ ++ If a v live out at the header of the loop then the variable is ++ live-in at every node in the Loop. To prove this, consider a loop ++ L with header h such that the variable v defined at d is live-in ++ at h. Since v is live at h, d is not part of L. This follows from ++ the dominance property, i.e. h is strictly dominated by d. Furthermore, ++ there exists a path from h to a use of v which does not go through d. ++ For every node of the loop, p, since the loop is strongly connected ++ component of the CFG, there exists a path, consisting only of nodes ++ of L from p to h. Concatenating these two paths prove that v is ++ live-in and live-out of p. */ ++ ++ bitmap_ior_into (®s_live, DF_LR_IN (curr_loop->header)); ++ bitmap_ior_into (®s_live, DF_LR_OUT (curr_loop->header)); ++ ++ /* Calculate the live-out and live-in for the exit edge of the loop. ++ This considers liveness for not only the loop latch but also the ++ liveness outside the loops. */ ++ ++ FOR_EACH_VEC_ELT (edges, i, e) ++ { ++ bitmap_ior_into (®s_live, DF_LR_OUT (e->src)); ++ bitmap_ior_into (®s_live, DF_LR_IN (e->dest)); ++ } ++ ++ regs_used = bitmap_count_bits (®s_live) + 2; ++ bitmap_clear (®s_live); ++ edges.release (); + } + + if (! flag_ira_loop_pressure) +-- +2.7.4 + diff --git a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-8/0028-Patch-microblaze-Correct-the-const-high-double-immed.patch b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-8/0028-Patch-microblaze-Correct-the-const-high-double-immed.patch new file mode 100644 index 00000000..3643ff19 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-8/0028-Patch-microblaze-Correct-the-const-high-double-immed.patch @@ -0,0 +1,69 @@ +From 2715b235b3db423bf35b9304a2ba5daa86b1680e Mon Sep 17 00:00:00 2001 +From: Mahesh Bodapati +Date: Wed, 18 Jan 2017 11:25:48 +0530 +Subject: [PATCH 28/54] [Patch, microblaze]: Correct the const high double + immediate value With this patch the loading of the DI mode immediate values + will be using REAL_VALUE_FROM_CONST_DOUBLE and REAL_VALUE_TO_TARGET_DOUBLE + functions, as CONST_DOUBLE_HIGH was returning the sign extension value even + of the unsigned long long constants also + +Signed-off-by :Nagaraju Mekala + Ajit Agarwal + +ChangeLog: +2016-02-03 Nagaraju Mekala + Ajit Agarwal + + *microblaze.c (print_operand): Use REAL_VALUE_FROM_CONST_DOUBLE & + REAL_VALUE_TO_TARGET_DOUBLE + *long.c (new): Added new testcase +--- + gcc/config/microblaze/microblaze.c | 8 ++++++-- + gcc/testsuite/gcc.target/microblaze/long.c | 10 ++++++++++ + 2 files changed, 16 insertions(+), 2 deletions(-) + create mode 100644 gcc/testsuite/gcc.target/microblaze/long.c + +diff --git a/gcc/config/microblaze/microblaze.c b/gcc/config/microblaze/microblaze.c +index 3832d16..29cd54f 100644 +--- a/gcc/config/microblaze/microblaze.c ++++ b/gcc/config/microblaze/microblaze.c +@@ -2517,14 +2517,18 @@ print_operand (FILE * file, rtx op, int letter) + else if (letter == 'h' || letter == 'j') + { + long val[2]; ++ long l[2]; + if (code == CONST_DOUBLE) + { + if (GET_MODE (op) == DFmode) + REAL_VALUE_TO_TARGET_DOUBLE (*CONST_DOUBLE_REAL_VALUE (op), val); + else + { +- val[0] = CONST_DOUBLE_HIGH (op); +- val[1] = CONST_DOUBLE_LOW (op); ++ REAL_VALUE_TYPE rv; ++ REAL_VALUE_FROM_CONST_DOUBLE (rv, op); ++ REAL_VALUE_TO_TARGET_DOUBLE (rv, l); ++ val[1] = l[WORDS_BIG_ENDIAN == 0]; ++ val[0] = l[WORDS_BIG_ENDIAN != 0]; + } + } + else if (code == CONST_INT) +diff --git a/gcc/testsuite/gcc.target/microblaze/long.c b/gcc/testsuite/gcc.target/microblaze/long.c +new file mode 100644 +index 0000000..4d45186 +--- /dev/null ++++ b/gcc/testsuite/gcc.target/microblaze/long.c +@@ -0,0 +1,10 @@ ++/* { dg-options "-O0" } */ ++#define BASEADDR 0xF0000000ULL ++int main () ++{ ++ unsigned long long start; ++ start = (unsigned long long) BASEADDR; ++ return 0; ++} ++/* { dg-final { scan-assembler "addik\tr(\[0-9]\|\[1-2]\[0-9]\|3\[0-1]),r0,0x00000000" } } */ ++/* { dg-final { scan-assembler "addik\tr(\[0-9]\|\[1-2]\[0-9]\|3\[0-1]),r0,0xf0000000" } } */ +-- +2.7.4 + diff --git a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-8/0029-Fix-microblaze-Fix-internal-compiler-error-with-msma.patch b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-8/0029-Fix-microblaze-Fix-internal-compiler-error-with-msma.patch new file mode 100644 index 00000000..b4b9d2ec --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-8/0029-Fix-microblaze-Fix-internal-compiler-error-with-msma.patch @@ -0,0 +1,36 @@ +From 7e025a0b22eee87bf9597267918bd16fc87c85c2 Mon Sep 17 00:00:00 2001 +From: Mahesh Bodapati +Date: Wed, 18 Jan 2017 11:49:58 +0530 +Subject: [PATCH 29/54] [Fix, microblaze]: Fix internal compiler error with + msmall-divides This patch will fix the internal error + microblaze_expand_divide function which comes because of rtx PLUS where the + mem_rtx is of type SI and the operand is of type QImode. This patch modifies + the mem_rtx as QImode and Plus as QImode to fix the error. + +Signed-off-by :Nagaraju Mekala + Ajit Agarwal +ChangeLog: + 2016-02-23 Nagaraju Mekala + Ajit Agarwal + + *microblaze.c (microblaze_expand_divide): Update +--- + gcc/config/microblaze/microblaze.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/gcc/config/microblaze/microblaze.c b/gcc/config/microblaze/microblaze.c +index 29cd54f..f8a417c 100644 +--- a/gcc/config/microblaze/microblaze.c ++++ b/gcc/config/microblaze/microblaze.c +@@ -3769,7 +3769,7 @@ microblaze_expand_divide (rtx operands[]) + emit_insn (gen_ashlsi3_bshift (regt1, operands[1], GEN_INT(4))); + emit_insn (gen_addsi3 (regt1, regt1, operands[2])); + mem_rtx = gen_rtx_MEM (QImode, +- gen_rtx_PLUS (Pmode, regt1, div_table_rtx)); ++ gen_rtx_PLUS (QImode, regt1, div_table_rtx)); + + insn = emit_insn (gen_zero_extendqisi2(operands[0],mem_rtx)); + jump = emit_jump_insn_after (gen_jump (div_end_label), insn); +-- +2.7.4 + diff --git a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-8/0030-patch-microblaze-Fix-the-calculation-of-high-word-in.patch b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-8/0030-patch-microblaze-Fix-the-calculation-of-high-word-in.patch new file mode 100644 index 00000000..52fd4bea --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-8/0030-patch-microblaze-Fix-the-calculation-of-high-word-in.patch @@ -0,0 +1,45 @@ +From 27a69d1873221747121360d0a1dffc4336a1d0cc Mon Sep 17 00:00:00 2001 +From: Mahesh Bodapati +Date: Wed, 18 Jan 2017 12:03:39 +0530 +Subject: [PATCH 30/54] [patch,microblaze]: Fix the calculation of high word in + a long long 6. .4-bit + +This patch will change the calculation of high word in a long long 64-bit. +Earlier to this patch the high word of long long word (0xF0000000ULL) is +coming to be 0xFFFFFFFF and low word is 0xF0000000. Instead the high word +should be 0x00000000 and the low word should be 0xF0000000. This patch +removes the condition of checking high word = 0 & low word < 0. +This check is not required for the correctness of calculating 32-bit high +and low words in a 64-bit long long. + +Signed-off-by :Nagaraju Mekala + Ajit Agarwal + +ChangeLog: +2016-03-01 Nagaraju Mekala + Ajit Agarwal + + *config/microblaze/microblaze.c (print_operand): Remove the condition of checking + high word = 0 & low word < 0. + *testsuite/gcc.target/microblaze/others/long.c: Add -O0 option. +--- + gcc/config/microblaze/microblaze.c | 3 --- + 1 file changed, 3 deletions(-) + +diff --git a/gcc/config/microblaze/microblaze.c b/gcc/config/microblaze/microblaze.c +index f8a417c..70d8d03 100644 +--- a/gcc/config/microblaze/microblaze.c ++++ b/gcc/config/microblaze/microblaze.c +@@ -2535,9 +2535,6 @@ print_operand (FILE * file, rtx op, int letter) + { + val[0] = (INTVAL (op) & 0xffffffff00000000LL) >> 32; + val[1] = INTVAL (op) & 0x00000000ffffffffLL; +- if (val[0] == 0 && val[1] < 0) +- val[0] = -1; +- + } + fprintf (file, "0x%8.8lx", (letter == 'h') ? val[0] : val[1]); + } +-- +2.7.4 + diff --git a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-8/0031-Patch-microblaze-Add-new-bit-field-instructions.patch b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-8/0031-Patch-microblaze-Add-new-bit-field-instructions.patch new file mode 100644 index 00000000..57144523 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-8/0031-Patch-microblaze-Add-new-bit-field-instructions.patch @@ -0,0 +1,120 @@ +From 35569bb20a5bb881f7f275d901a0be3408b16622 Mon Sep 17 00:00:00 2001 +From: Mahesh Bodapati +Date: Wed, 18 Jan 2017 12:14:51 +0530 +Subject: [PATCH 31/54] [Patch, microblaze]: Add new bit-field instructions + This patches adds new bsefi and bsifi instructions. BSEFI- The instruction + shall extract a bit field from a register and place it right-adjusted in the + destination register. The other bits in the destination register shall be set + to zero BSIFI- The instruction shall insert a right-adjusted bit field from a + register at another position in the destination register. The rest of the + bits in the destination register shall be unchanged + +Signed-off-by :Nagaraju Mekala + +ChangeLog: + 2016-02-03 Nagaraju Mekala + + *microblaze.md (Update): Added new patterns +--- + gcc/config/microblaze/microblaze.md | 73 +++++++++++++++++++++++++++++++++++++ + 1 file changed, 73 insertions(+) + +diff --git a/gcc/config/microblaze/microblaze.md b/gcc/config/microblaze/microblaze.md +index 6395533..5a2dd13 100644 +--- a/gcc/config/microblaze/microblaze.md ++++ b/gcc/config/microblaze/microblaze.md +@@ -980,6 +980,8 @@ + (set_attr "mode" "DI") + (set_attr "length" "20,20,20")]) + ++ ++ + ;;---------------------------------------------------------------- + ;; Data movement + ;;---------------------------------------------------------------- +@@ -1774,6 +1776,7 @@ + (set_attr "length" "28")] + ) + ++ + ;;---------------------------------------------------------------- + ;; Setting a register from an integer comparison. + ;;---------------------------------------------------------------- +@@ -2473,4 +2476,74 @@ + DONE; + }") + ++(define_expand "extvsi" ++ [(set (match_operand:SI 0 "register_operand" "r") ++ (zero_extract:SI (match_operand:SI 1 "register_operand" "r") ++ (match_operand:SI 2 "immediate_operand" "I") ++ (match_operand:SI 3 "immediate_operand" "I")))] ++"TARGET_HAS_BITFIELD" ++" ++{ ++ unsigned HOST_WIDE_INT len = UINTVAL (operands[2]); ++ unsigned HOST_WIDE_INT pos = UINTVAL (operands[3]); ++ ++ if ((len == 0) || (pos + len > 32) ) ++ FAIL; ++ ++ ;;if (!register_operand (operands[1], VOIDmode)) ++ ;; FAIL; ++ if (operands[0] == operands[1]) ++ FAIL; ++ if (GET_CODE (operands[1]) == ASHIFT) ++ FAIL; ++;; operands[2] = GEN_INT(INTVAL(operands[2])+1 ); ++ emit_insn (gen_extv_32 (operands[0], operands[1], ++ operands[2], operands[3])); ++ DONE; ++}") ++ ++(define_insn "extv_32" ++ [(set (match_operand:SI 0 "register_operand" "=r") ++ (zero_extract:SI (match_operand:SI 1 "register_operand" "r") ++ (match_operand:SI 2 "immediate_operand" "I") ++ (match_operand:SI 3 "immediate_operand" "I")))] ++ "TARGET_HAS_BITFIELD && (UINTVAL (operands[2]) > 0) ++ && ((UINTVAL (operands[2]) + UINTVAL (operands[3])) <= 32)" ++ "bsefi %0,%1,%2,%3" ++ [(set_attr "type" "bshift") ++ (set_attr "length" "4")]) ++ ++(define_expand "insvsi" ++ [(set (zero_extract:SI (match_operand:SI 0 "register_operand" "+r") ++ (match_operand:SI 1 "immediate_operand" "I") ++ (match_operand:SI 2 "immediate_operand" "I")) ++ (match_operand:SI 3 "register_operand" "r"))] ++ "TARGET_HAS_BITFIELD" ++ " ++{ ++ unsigned HOST_WIDE_INT len = UINTVAL (operands[1]); ++ unsigned HOST_WIDE_INT pos = UINTVAL (operands[2]); ++ ++ if (len <= 0 || pos + len > 32) ++ FAIL; ++ ++ ;;if (!register_operand (operands[0], VOIDmode)) ++ ;; FAIL; ++ ++ emit_insn (gen_insv_32 (operands[0], operands[1], ++ operands[2], operands[3])); ++ DONE; ++}") ++ ++(define_insn "insv_32" ++ [(set (zero_extract:SI (match_operand:SI 0 "register_operand" "+r") ++ (match_operand:SI 1 "immediate_operand" "I") ++ (match_operand:SI 2 "immediate_operand" "I")) ++ (match_operand:SI 3 "register_operand" "r"))] ++ "TARGET_HAS_BITFIELD && UINTVAL (operands[1]) > 0 ++ && UINTVAL (operands[1]) + UINTVAL (operands[2]) <= 32" ++ "bsifi %0, %3, %1, %2" ++ [(set_attr "type" "bshift") ++ (set_attr "length" "4")]) ++ + (include "sync.md") +-- +2.7.4 + diff --git a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-8/0032-Patch-microblaze-Fix-bug-in-MB-version-calculation.patch b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-8/0032-Patch-microblaze-Fix-bug-in-MB-version-calculation.patch new file mode 100644 index 00000000..dce1bc58 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-8/0032-Patch-microblaze-Fix-bug-in-MB-version-calculation.patch @@ -0,0 +1,247 @@ +From 3db8f0c3124d3001d3c10e6d400943f3ec57616b Mon Sep 17 00:00:00 2001 +From: Mahesh Bodapati +Date: Wed, 18 Jan 2017 12:42:10 +0530 +Subject: [PATCH 32/54] [Patch, microblaze]: Fix bug in MB version calculation + This patch fixes the bug in microblaze_version_to_int function. Earlier the + conversion of vXX.YY.Z to int has a bug which is fixed now. + +Signed-off-by : Mahesh Bodapati + Nagaraju Mekala +--- + gcc/config/microblaze/microblaze.c | 147 ++++++++++++++++++------------------- + 1 file changed, 70 insertions(+), 77 deletions(-) + +diff --git a/gcc/config/microblaze/microblaze.c b/gcc/config/microblaze/microblaze.c +index 70d8d03..30a0fcf 100644 +--- a/gcc/config/microblaze/microblaze.c ++++ b/gcc/config/microblaze/microblaze.c +@@ -238,6 +238,63 @@ section *sdata2_section; + #define TARGET_HAVE_TLS true + #endif + ++/* Convert a version number of the form "vX.YY.Z" to an integer encoding ++ for easier range comparison. */ ++static int ++microblaze_version_to_int (const char *version) ++{ ++ const char *p, *v; ++ const char *tmpl = "vXX.YY.Z"; ++ int iver1 =0, iver2 =0, iver3 =0; ++ ++ p = version; ++ v = tmpl; ++ ++ while (*p) ++ { ++ if (*v == 'X') ++ { /* Looking for major */ ++ if (*p == '.') ++ { ++ *v++; ++ } ++ else ++ { ++ if (!(*p >= '0' && *p <= '9')) ++ return -1; ++ iver1 += (int) (*p - '0'); ++ iver1 *= 1000; ++ } ++ } ++ else if (*v == 'Y') ++ { /* Looking for minor */ ++ if (!(*p >= '0' && *p <= '9')) ++ return -1; ++ iver2 += (int) (*p - '0'); ++ iver2 *= 10; ++ } ++ else if (*v == 'Z') ++ { /* Looking for compat */ ++ if (!(*p >= 'a' && *p <= 'z')) ++ return -1; ++ iver3 = ((int) (*p)) - 96; ++ } ++ else ++ { ++ if (*p != *v) ++ return -1; ++ } ++ ++ v++; ++ p++; ++ } ++ ++ if (*p) ++ return -1; ++ ++ return iver1 + iver2 + iver3; ++} ++ + /* Return truth value if a CONST_DOUBLE is ok to be a legitimate constant. */ + static bool + microblaze_const_double_ok (rtx op, machine_mode mode) +@@ -1266,8 +1323,7 @@ microblaze_rtx_costs (rtx x, machine_mode mode, int outer_code ATTRIBUTE_UNUSED, + { + if (TARGET_BARREL_SHIFT) + { +- if (MICROBLAZE_VERSION_COMPARE (microblaze_select_cpu, "v5.00.a") +- >= 0) ++ if (microblaze_version_to_int(microblaze_select_cpu) >= microblaze_version_to_int("v5.00.a")) + *total = COSTS_N_INSNS (1); + else + *total = COSTS_N_INSNS (2); +@@ -1328,8 +1384,7 @@ microblaze_rtx_costs (rtx x, machine_mode mode, int outer_code ATTRIBUTE_UNUSED, + } + else if (!TARGET_SOFT_MUL) + { +- if (MICROBLAZE_VERSION_COMPARE (microblaze_select_cpu, "v5.00.a") +- >= 0) ++ if (microblaze_version_to_int(microblaze_select_cpu) >= microblaze_version_to_int("v5.00.a")) + *total = COSTS_N_INSNS (1); + else + *total = COSTS_N_INSNS (3); +@@ -1609,72 +1664,13 @@ function_arg_partial_bytes (cumulative_args_t cum_v, machine_mode mode, + return 0; + } + +-/* Convert a version number of the form "vX.YY.Z" to an integer encoding +- for easier range comparison. */ +-static int +-microblaze_version_to_int (const char *version) +-{ +- const char *p, *v; +- const char *tmpl = "vXX.YY.Z"; +- int iver = 0; +- +- p = version; +- v = tmpl; +- +- while (*p) +- { +- if (*v == 'X') +- { /* Looking for major */ +- if (*p == '.') +- { +- v++; +- } +- else +- { +- if (!(*p >= '0' && *p <= '9')) +- return -1; +- iver += (int) (*p - '0'); +- iver *= 10; +- } +- } +- else if (*v == 'Y') +- { /* Looking for minor */ +- if (!(*p >= '0' && *p <= '9')) +- return -1; +- iver += (int) (*p - '0'); +- iver *= 10; +- } +- else if (*v == 'Z') +- { /* Looking for compat */ +- if (!(*p >= 'a' && *p <= 'z')) +- return -1; +- iver *= 10; +- iver += (int) (*p - 'a'); +- } +- else +- { +- if (*p != *v) +- return -1; +- } +- +- v++; +- p++; +- } +- +- if (*p) +- return -1; +- +- return iver; +-} +- +- + static void + microblaze_option_override (void) + { + register int i, start; + register int regno; + register machine_mode mode; +- int ver; ++ int ver,ver_int; + + microblaze_section_threshold = (global_options_set.x_g_switch_value + ? g_switch_value +@@ -1695,13 +1691,13 @@ microblaze_option_override (void) + /* Check the MicroBlaze CPU version for any special action to be done. */ + if (microblaze_select_cpu == NULL) + microblaze_select_cpu = MICROBLAZE_DEFAULT_CPU; +- ver = microblaze_version_to_int (microblaze_select_cpu); +- if (ver == -1) ++ ver_int = microblaze_version_to_int (microblaze_select_cpu); ++ if (ver_int == -1) + { + error ("%qs is an invalid argument to -mcpu=", microblaze_select_cpu); + } + +- ver = MICROBLAZE_VERSION_COMPARE (microblaze_select_cpu, "v3.00.a"); ++ ver = ver_int - microblaze_version_to_int("v3.00.a"); + if (ver < 0) + { + /* No hardware exceptions in earlier versions. So no worries. */ +@@ -1712,8 +1708,7 @@ microblaze_option_override (void) + microblaze_pipe = MICROBLAZE_PIPE_3; + } + else if (ver == 0 +- || (MICROBLAZE_VERSION_COMPARE (microblaze_select_cpu, "v4.00.b") +- == 0)) ++ || (ver_int == microblaze_version_to_int("v4.00.b"))) + { + #if 0 + microblaze_select_flags |= (MICROBLAZE_MASK_NO_UNSAFE_DELAY); +@@ -1730,11 +1725,9 @@ microblaze_option_override (void) + #endif + microblaze_no_unsafe_delay = 0; + microblaze_pipe = MICROBLAZE_PIPE_5; +- if (MICROBLAZE_VERSION_COMPARE (microblaze_select_cpu, "v5.00.a") == 0 +- || MICROBLAZE_VERSION_COMPARE (microblaze_select_cpu, +- "v5.00.b") == 0 +- || MICROBLAZE_VERSION_COMPARE (microblaze_select_cpu, +- "v5.00.c") == 0) ++ if ((ver_int == microblaze_version_to_int("v5.00.a")) ++ || (ver_int == microblaze_version_to_int("v5.00.b")) ++ || (ver_int == microblaze_version_to_int("v5.00.c"))) + { + /* Pattern compares are to be turned on by default only when + compiling for MB v5.00.'z'. */ +@@ -1742,7 +1735,7 @@ microblaze_option_override (void) + } + } + +- ver = MICROBLAZE_VERSION_COMPARE (microblaze_select_cpu, "v6.00.a"); ++ ver = ver_int - microblaze_version_to_int("v6.00.a"); + if (ver < 0) + { + if (TARGET_MULTIPLY_HIGH) +@@ -1750,7 +1743,7 @@ microblaze_option_override (void) + "-mxl-multiply-high can be used only with -mcpu=v6.00.a or greater"); + } + +- ver = MICROBLAZE_VERSION_COMPARE (microblaze_select_cpu, "v8.10.a"); ++ ver = ver_int - microblaze_version_to_int("v8.10.a"); + microblaze_has_clz = 1; + if (ver < 0) + { +@@ -1759,7 +1752,7 @@ microblaze_option_override (void) + } + + /* TARGET_REORDER defaults to 2 if -mxl-reorder not specified. */ +- ver = MICROBLAZE_VERSION_COMPARE (microblaze_select_cpu, "v8.30.a"); ++ ver = ver_int - microblaze_version_to_int("v8.30.a"); + if (ver < 0) + { + if (TARGET_REORDER == 1) +-- +2.7.4 + diff --git a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-8/0033-Fixing-the-bug-in-the-bit-field-instruction.patch b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-8/0033-Fixing-the-bug-in-the-bit-field-instruction.patch new file mode 100644 index 00000000..15111477 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-8/0033-Fixing-the-bug-in-the-bit-field-instruction.patch @@ -0,0 +1,48 @@ +From f3e259923788176ebb323155cc089e68c6de0895 Mon Sep 17 00:00:00 2001 +From: Mahesh Bodapati +Date: Wed, 18 Jan 2017 13:57:48 +0530 +Subject: [PATCH 33/54] Fixing the bug in the bit-field instruction. Bit field + instruction should be generated only if mcpu >10.0 + +--- + gcc/config/microblaze/microblaze.c | 3 +++ + gcc/config/microblaze/microblaze.h | 2 ++ + 2 files changed, 5 insertions(+) + +diff --git a/gcc/config/microblaze/microblaze.c b/gcc/config/microblaze/microblaze.c +index 30a0fcf..835e906 100644 +--- a/gcc/config/microblaze/microblaze.c ++++ b/gcc/config/microblaze/microblaze.c +@@ -163,6 +163,9 @@ int microblaze_no_unsafe_delay; + /* Set to one if the targeted core has the CLZ insn. */ + int microblaze_has_clz = 0; + ++/* Set to one if the targeted core has barrel-shift and cpu > 10.0 */ ++int microblaze_has_bitfield = 0; ++ + /* Which CPU pipeline do we use. We haven't really standardized on a CPU + version having only a particular type of pipeline. There can still be + options on the CPU to scale pipeline features up or down. :( +diff --git a/gcc/config/microblaze/microblaze.h b/gcc/config/microblaze/microblaze.h +index 2ac5aeec..991d0f7 100644 +--- a/gcc/config/microblaze/microblaze.h ++++ b/gcc/config/microblaze/microblaze.h +@@ -44,6 +44,7 @@ extern int microblaze_dbx_regno[]; + + extern int microblaze_no_unsafe_delay; + extern int microblaze_has_clz; ++extern int microblaze_has_bitfield; + extern enum pipeline_type microblaze_pipe; + + #define OBJECT_FORMAT_ELF +@@ -62,6 +63,7 @@ extern enum pipeline_type microblaze_pipe; + + /* Do we have CLZ? */ + #define TARGET_HAS_CLZ (TARGET_PATTERN_COMPARE && microblaze_has_clz) ++#define TARGET_HAS_BITFIELD (TARGET_BARREL_SHIFT && microblaze_has_bitfield) + + /* The default is to support PIC. */ + #define TARGET_SUPPORTS_PIC 1 +-- +2.7.4 + diff --git a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-8/0034-Patch-microblaze-Macros-used-in-Xilinx-internal-patc.patch b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-8/0034-Patch-microblaze-Macros-used-in-Xilinx-internal-patc.patch new file mode 100644 index 00000000..f22f2f3f --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-8/0034-Patch-microblaze-Macros-used-in-Xilinx-internal-patc.patch @@ -0,0 +1,32 @@ +From 52cf8e91f06ce9259d4d94bb8ea5cb327825b806 Mon Sep 17 00:00:00 2001 +From: Mahesh Bodapati +Date: Wed, 18 Jan 2017 20:57:10 +0530 +Subject: [PATCH 34/54] [Patch, microblaze]: Macros used in Xilinx internal + patches has been removed in gcc 6.2 version so modified the code accordingly. + +--- + gcc/config/microblaze/microblaze.c | 8 +++----- + 1 file changed, 3 insertions(+), 5 deletions(-) + +diff --git a/gcc/config/microblaze/microblaze.c b/gcc/config/microblaze/microblaze.c +index 835e906..2e3b4c9 100644 +--- a/gcc/config/microblaze/microblaze.c ++++ b/gcc/config/microblaze/microblaze.c +@@ -2520,11 +2520,9 @@ print_operand (FILE * file, rtx op, int letter) + REAL_VALUE_TO_TARGET_DOUBLE (*CONST_DOUBLE_REAL_VALUE (op), val); + else + { +- REAL_VALUE_TYPE rv; +- REAL_VALUE_FROM_CONST_DOUBLE (rv, op); +- REAL_VALUE_TO_TARGET_DOUBLE (rv, l); +- val[1] = l[WORDS_BIG_ENDIAN == 0]; +- val[0] = l[WORDS_BIG_ENDIAN != 0]; ++ REAL_VALUE_TO_TARGET_DOUBLE (*CONST_DOUBLE_REAL_VALUE (op), l); ++ val[1] = l[WORDS_BIG_ENDIAN == 0]; ++ val[0] = l[WORDS_BIG_ENDIAN != 0]; + } + } + else if (code == CONST_INT) +-- +2.7.4 + diff --git a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-8/0035-Fixing-the-issue-with-the-builtin_alloc.patch b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-8/0035-Fixing-the-issue-with-the-builtin_alloc.patch new file mode 100644 index 00000000..00d67bcf --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-8/0035-Fixing-the-issue-with-the-builtin_alloc.patch @@ -0,0 +1,44 @@ +From 727b0f7ae03279177559f5d85d8920352bd853b2 Mon Sep 17 00:00:00 2001 +From: Nagaraju Mekala +Date: Thu, 23 Feb 2017 17:09:04 +0530 +Subject: [PATCH 35/54] Fixing the issue with the builtin_alloc. register r18 + was not properly handling the stack pattern which was resolved by using free + available register + +signed-off-by:nagaraju mekala +--- + gcc/config/microblaze/microblaze.md | 8 ++++---- + 1 file changed, 4 insertions(+), 4 deletions(-) + +diff --git a/gcc/config/microblaze/microblaze.md b/gcc/config/microblaze/microblaze.md +index 5a2dd13..8072ffc 100644 +--- a/gcc/config/microblaze/microblaze.md ++++ b/gcc/config/microblaze/microblaze.md +@@ -2076,10 +2076,10 @@ + "" + { + rtx retaddr = gen_rtx_MEM (Pmode, stack_pointer_rtx); +- rtx rtmp = gen_rtx_REG (SImode, R_TMP); ++ rtx reg = gen_reg_rtx (Pmode); + rtx neg_op0; + +- emit_move_insn (rtmp, retaddr); ++ emit_move_insn (reg, retaddr); + if (GET_CODE (operands[1]) != CONST_INT) + { + neg_op0 = gen_reg_rtx (Pmode); +@@ -2088,9 +2088,9 @@ + neg_op0 = GEN_INT (- INTVAL (operands[1])); + + emit_insn (gen_addsi3 (stack_pointer_rtx, stack_pointer_rtx, neg_op0)); +- emit_move_insn (gen_rtx_MEM (Pmode, stack_pointer_rtx), rtmp); ++ emit_move_insn (gen_rtx_MEM (Pmode, stack_pointer_rtx), reg); + emit_move_insn (operands[0], virtual_stack_dynamic_rtx); +- emit_insn (gen_rtx_CLOBBER (SImode, rtmp)); ++ emit_insn (gen_rtx_CLOBBER (SImode, reg)); + DONE; + } + ) +-- +2.7.4 + diff --git a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-8/0036-Patch-Microblaze-reverting-the-cost-check-before-pro.patch b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-8/0036-Patch-Microblaze-reverting-the-cost-check-before-pro.patch new file mode 100644 index 00000000..54ccd9a0 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-8/0036-Patch-Microblaze-reverting-the-cost-check-before-pro.patch @@ -0,0 +1,49 @@ +From 7156e379a67fa47a5fb9ede1448c0d528dbda65b Mon Sep 17 00:00:00 2001 +From: Mahesh Bodapati +Date: Thu, 2 Mar 2017 19:02:31 +0530 +Subject: [PATCH 36/54] [Patch,Microblaze]:reverting the cost check before + propagating constants. + +--- + gcc/cprop.c | 4 ++++ + 1 file changed, 4 insertions(+) + +diff --git a/gcc/cprop.c b/gcc/cprop.c +index e4df509..deb706b 100644 +--- a/gcc/cprop.c ++++ b/gcc/cprop.c +@@ -733,6 +733,7 @@ try_replace_reg (rtx from, rtx to, rtx_insn *insn) + int success = 0; + rtx set = single_set (insn); + ++#if 0 + bool check_rtx_costs = true; + bool speed = optimize_bb_for_speed_p (BLOCK_FOR_INSN (insn)); + int old_cost = set ? set_rtx_cost (set, speed) : 0; +@@ -744,6 +745,7 @@ try_replace_reg (rtx from, rtx to, rtx_insn *insn) + && (GET_CODE (XEXP (note, 0)) == CONST + || CONSTANT_P (XEXP (note, 0))))) + check_rtx_costs = false; ++#endif + + /* Usually we substitute easy stuff, so we won't copy everything. + We however need to take care to not duplicate non-trivial CONST +@@ -752,6 +754,7 @@ try_replace_reg (rtx from, rtx to, rtx_insn *insn) + + validate_replace_src_group (from, to, insn); + ++#if 0 + /* If TO is a constant, check the cost of the set after propagation + to the cost of the set before the propagation. If the cost is + higher, then do not replace FROM with TO. */ +@@ -764,6 +767,7 @@ try_replace_reg (rtx from, rtx to, rtx_insn *insn) + return false; + } + ++#endif + + if (num_changes_pending () && apply_change_group ()) + success = 1; +-- +2.7.4 + diff --git a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-8/0037-Patch-Microblaze-update-in-constraints-for-bitfield-.patch b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-8/0037-Patch-Microblaze-update-in-constraints-for-bitfield-.patch new file mode 100644 index 00000000..26b685a5 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-8/0037-Patch-Microblaze-update-in-constraints-for-bitfield-.patch @@ -0,0 +1,80 @@ +From 149cf4619622d27641a2886cd8bf38a49ad88f87 Mon Sep 17 00:00:00 2001 +From: Mahesh Bodapati +Date: Mon, 19 Feb 2018 18:06:16 +0530 +Subject: [PATCH 37/54] [Patch,Microblaze]: update in constraints for bitfield + insert and extract instructions. + +--- + gcc/config/microblaze/microblaze.md | 43 ++++++------------------------------- + 1 file changed, 7 insertions(+), 36 deletions(-) + +diff --git a/gcc/config/microblaze/microblaze.md b/gcc/config/microblaze/microblaze.md +index 8072ffc..9bb87ec 100644 +--- a/gcc/config/microblaze/microblaze.md ++++ b/gcc/config/microblaze/microblaze.md +@@ -2476,33 +2476,17 @@ + DONE; + }") + +-(define_expand "extvsi" ++(define_expand "extzvsi" + [(set (match_operand:SI 0 "register_operand" "r") + (zero_extract:SI (match_operand:SI 1 "register_operand" "r") + (match_operand:SI 2 "immediate_operand" "I") + (match_operand:SI 3 "immediate_operand" "I")))] + "TARGET_HAS_BITFIELD" +-" +-{ +- unsigned HOST_WIDE_INT len = UINTVAL (operands[2]); +- unsigned HOST_WIDE_INT pos = UINTVAL (operands[3]); +- +- if ((len == 0) || (pos + len > 32) ) +- FAIL; +- +- ;;if (!register_operand (operands[1], VOIDmode)) +- ;; FAIL; +- if (operands[0] == operands[1]) +- FAIL; +- if (GET_CODE (operands[1]) == ASHIFT) +- FAIL; +-;; operands[2] = GEN_INT(INTVAL(operands[2])+1 ); +- emit_insn (gen_extv_32 (operands[0], operands[1], +- operands[2], operands[3])); +- DONE; +-}") ++"" ++) + +-(define_insn "extv_32" ++ ++(define_insn "extzv_32" + [(set (match_operand:SI 0 "register_operand" "=r") + (zero_extract:SI (match_operand:SI 1 "register_operand" "r") + (match_operand:SI 2 "immediate_operand" "I") +@@ -2519,21 +2503,8 @@ + (match_operand:SI 2 "immediate_operand" "I")) + (match_operand:SI 3 "register_operand" "r"))] + "TARGET_HAS_BITFIELD" +- " +-{ +- unsigned HOST_WIDE_INT len = UINTVAL (operands[1]); +- unsigned HOST_WIDE_INT pos = UINTVAL (operands[2]); +- +- if (len <= 0 || pos + len > 32) +- FAIL; +- +- ;;if (!register_operand (operands[0], VOIDmode)) +- ;; FAIL; +- +- emit_insn (gen_insv_32 (operands[0], operands[1], +- operands[2], operands[3])); +- DONE; +-}") ++"" ++) + + (define_insn "insv_32" + [(set (zero_extract:SI (match_operand:SI 0 "register_operand" "+r") +-- +2.7.4 + diff --git a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-8/0038-Patch-Microblaze-Removed-fsqrt-generation-for-double.patch b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-8/0038-Patch-Microblaze-Removed-fsqrt-generation-for-double.patch new file mode 100644 index 00000000..d8ae6c15 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-8/0038-Patch-Microblaze-Removed-fsqrt-generation-for-double.patch @@ -0,0 +1,38 @@ +From 5494699756f8e1dba6848fcf09780a031139c232 Mon Sep 17 00:00:00 2001 +From: Mahesh Bodapati +Date: Mon, 4 Jun 2018 10:10:18 +0530 +Subject: [PATCH 38/54] [Patch,Microblaze] : Removed fsqrt generation for + double values. + +--- + gcc/config/microblaze/microblaze.md | 14 -------------- + 1 file changed, 14 deletions(-) + +diff --git a/gcc/config/microblaze/microblaze.md b/gcc/config/microblaze/microblaze.md +index 9bb87ec..a93ddd0 100644 +--- a/gcc/config/microblaze/microblaze.md ++++ b/gcc/config/microblaze/microblaze.md +@@ -524,20 +524,6 @@ + (set_attr "mode" "SF") + (set_attr "length" "4")]) + +-(define_insn "sqrtdf2" +- [(set (match_operand:DF 0 "register_operand" "=d") +- (sqrt:DF (match_operand:DF 1 "register_operand" "dG")))] +- "TARGET_HARD_FLOAT && TARGET_FLOAT_SQRT" +- { +- if (REGNO (operands[0]) == REGNO (operands[1])) +- return "fsqrt\t%0,%1"; +- else +- return "fsqrt\t%0,%1\n\taddk\t%D0,%D1,r0"; +- } +- [(set_attr "type" "fsqrt") +- (set_attr "mode" "SF") +- (set_attr "length" "4")]) +- + (define_insn "fix_truncsfsi2" + [(set (match_operand:SI 0 "register_operand" "=d") + (fix:SI (match_operand:SF 1 "register_operand" "d")))] +-- +2.7.4 + diff --git a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-8/0039-Intial-commit-of-64-bit-Microblaze.patch b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-8/0039-Intial-commit-of-64-bit-Microblaze.patch new file mode 100644 index 00000000..88497a8e --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-8/0039-Intial-commit-of-64-bit-Microblaze.patch @@ -0,0 +1,810 @@ +From 6e8b37bf54646c38fb4071d542a60ea92715df9b Mon Sep 17 00:00:00 2001 +From: Nagaraju Mekala +Date: Tue, 3 Apr 2018 16:48:39 +0530 +Subject: [PATCH 39/54] Intial commit of 64-bit Microblaze + +--- + gcc/config/microblaze/microblaze-protos.h | 1 + + gcc/config/microblaze/microblaze.c | 109 +++++++-- + gcc/config/microblaze/microblaze.h | 4 +- + gcc/config/microblaze/microblaze.md | 370 +++++++++++++++++++++++++++++- + gcc/config/microblaze/microblaze.opt | 9 +- + gcc/config/microblaze/t-microblaze | 7 +- + 6 files changed, 461 insertions(+), 39 deletions(-) + +diff --git a/gcc/config/microblaze/microblaze-protos.h b/gcc/config/microblaze/microblaze-protos.h +index c39e2e9..a5ed62e 100644 +--- a/gcc/config/microblaze/microblaze-protos.h ++++ b/gcc/config/microblaze/microblaze-protos.h +@@ -35,6 +35,7 @@ extern void microblaze_expand_divide (rtx *); + extern void microblaze_expand_conditional_branch (enum machine_mode, rtx *); + extern void microblaze_expand_conditional_branch_reg (machine_mode, rtx *); + extern void microblaze_expand_conditional_branch_sf (rtx *); ++extern void microblaze_expand_conditional_branch_df (rtx *); + extern int microblaze_can_use_return_insn (void); + extern void print_operand (FILE *, rtx, int); + extern void print_operand_address (FILE *, rtx); +diff --git a/gcc/config/microblaze/microblaze.c b/gcc/config/microblaze/microblaze.c +index 2e3b4c9..2079ae9 100644 +--- a/gcc/config/microblaze/microblaze.c ++++ b/gcc/config/microblaze/microblaze.c +@@ -3457,11 +3457,11 @@ microblaze_expand_move (machine_mode mode, rtx operands[]) + op0 = operands[0]; + op1 = operands[1]; + +- if (!register_operand (op0, SImode) +- && !register_operand (op1, SImode) ++ if (!register_operand (op0, mode) ++ && !register_operand (op1, mode) + && (GET_CODE (op1) != CONST_INT || INTVAL (op1) != 0)) + { +- rtx temp = force_reg (SImode, op1); ++ rtx temp = force_reg (mode, op1); + emit_move_insn (op0, temp); + return true; + } +@@ -3499,12 +3499,12 @@ microblaze_expand_move (machine_mode mode, rtx operands[]) + && (flag_pic == 2 || microblaze_tls_symbol_p (p0) + || !SMALL_INT (p1))))) + { +- rtx temp = force_reg (SImode, p0); ++ rtx temp = force_reg (mode, p0); + rtx temp2 = p1; + + if (flag_pic && reload_in_progress) + df_set_regs_ever_live (PIC_OFFSET_TABLE_REGNUM, true); +- emit_move_insn (op0, gen_rtx_PLUS (SImode, temp, temp2)); ++ emit_move_insn (op0, gen_rtx_PLUS (mode, temp, temp2)); + return true; + } + } +@@ -3635,7 +3635,7 @@ microblaze_expand_conditional_branch (machine_mode mode, rtx operands[]) + rtx cmp_op0 = operands[1]; + rtx cmp_op1 = operands[2]; + rtx label1 = operands[3]; +- rtx comp_reg = gen_reg_rtx (SImode); ++ rtx comp_reg = gen_reg_rtx (mode); + rtx condition; + + gcc_assert ((GET_CODE (cmp_op0) == REG) || (GET_CODE (cmp_op0) == SUBREG)); +@@ -3644,23 +3644,36 @@ microblaze_expand_conditional_branch (machine_mode mode, rtx operands[]) + if (cmp_op1 == const0_rtx) + { + comp_reg = cmp_op0; +- condition = gen_rtx_fmt_ee (signed_condition (code), SImode, comp_reg, const0_rtx); +- emit_jump_insn (gen_condjump (condition, label1)); ++ condition = gen_rtx_fmt_ee (signed_condition (code), mode, comp_reg, const0_rtx); ++ if (mode == SImode) ++ emit_jump_insn (gen_condjump (condition, label1)); ++ else ++ emit_jump_insn (gen_long_condjump (condition, label1)); ++ + } + + else if (code == EQ || code == NE) + { + /* Use xor for equal/not-equal comparison. */ +- emit_insn (gen_xorsi3 (comp_reg, cmp_op0, cmp_op1)); +- condition = gen_rtx_fmt_ee (signed_condition (code), SImode, comp_reg, const0_rtx); +- emit_jump_insn (gen_condjump (condition, label1)); ++ if (mode == SImode) ++ emit_insn (gen_xorsi3 (comp_reg, cmp_op0, cmp_op1)); ++ else ++ emit_insn (gen_xordi3 (comp_reg, cmp_op0, cmp_op1)); ++ condition = gen_rtx_fmt_ee (signed_condition (code), mode, comp_reg, const0_rtx); ++ if (mode == SImode) ++ emit_jump_insn (gen_condjump (condition, label1)); ++ else ++ emit_jump_insn (gen_long_condjump (condition, label1)); + } + else + { + /* Generate compare and branch in single instruction. */ + cmp_op1 = force_reg (mode, cmp_op1); + condition = gen_rtx_fmt_ee (code, mode, cmp_op0, cmp_op1); +- emit_jump_insn (gen_branch_compare(condition, cmp_op0, cmp_op1, label1)); ++ if (mode == SImode) ++ emit_jump_insn (gen_branch_compare(condition, cmp_op0, cmp_op1, label1)); ++ else ++ emit_jump_insn (gen_long_branch_compare(condition, cmp_op0, cmp_op1, label1)); + } + } + +@@ -3671,7 +3684,7 @@ microblaze_expand_conditional_branch_reg (machine_mode mode, rtx operands[]) + rtx cmp_op0 = operands[1]; + rtx cmp_op1 = operands[2]; + rtx label1 = operands[3]; +- rtx comp_reg = gen_reg_rtx (SImode); ++ rtx comp_reg = gen_reg_rtx (mode); + rtx condition; + + gcc_assert ((GET_CODE (cmp_op0) == REG) +@@ -3682,30 +3695,63 @@ microblaze_expand_conditional_branch_reg (machine_mode mode, rtx operands[]) + { + comp_reg = cmp_op0; + condition = gen_rtx_fmt_ee (signed_condition (code), +- SImode, comp_reg, const0_rtx); +- emit_jump_insn (gen_condjump (condition, label1)); ++ mode, comp_reg, const0_rtx); ++ if (mode == SImode) ++ emit_jump_insn (gen_condjump (condition, label1)); ++ else ++ emit_jump_insn (gen_long_condjump (condition, label1)); + } + else if (code == EQ) + { +- emit_insn (gen_seq_internal_pat (comp_reg, +- cmp_op0, cmp_op1)); +- condition = gen_rtx_EQ (SImode, comp_reg, const0_rtx); +- emit_jump_insn (gen_condjump (condition, label1)); ++ if (mode == SImode) ++ { ++ emit_insn (gen_seq_internal_pat (comp_reg, cmp_op0, ++ cmp_op1)); ++ } ++ else ++ { ++ emit_insn (gen_seq_internal_pat (comp_reg, cmp_op0, ++ cmp_op1)); ++ } ++ condition = gen_rtx_EQ (mode, comp_reg, const0_rtx); ++ if (mode == SImode) ++ emit_jump_insn (gen_condjump (condition, label1)); ++ else ++ emit_jump_insn (gen_long_condjump (condition, label1)); ++ + } + else if (code == NE) + { +- emit_insn (gen_sne_internal_pat (comp_reg, cmp_op0, +- cmp_op1)); +- condition = gen_rtx_NE (SImode, comp_reg, const0_rtx); +- emit_jump_insn (gen_condjump (condition, label1)); ++ if (mode == SImode) ++ { ++ emit_insn (gen_sne_internal_pat (comp_reg, cmp_op0, ++ cmp_op1)); ++ } ++ else ++ { ++ emit_insn (gen_sne_internal_pat (comp_reg, cmp_op0, ++ cmp_op1)); ++ } ++ condition = gen_rtx_NE (mode, comp_reg, const0_rtx); ++ if (mode == SImode) ++ emit_jump_insn (gen_condjump (condition, label1)); ++ else ++ emit_jump_insn (gen_long_condjump (condition, label1)); + } + else + { + /* Generate compare and branch in single instruction. */ + cmp_op1 = force_reg (mode, cmp_op1); + condition = gen_rtx_fmt_ee (code, mode, cmp_op0, cmp_op1); +- emit_jump_insn (gen_branch_compare (condition, cmp_op0, +- cmp_op1, label1)); ++ if (mode == SImode) ++ emit_jump_insn (gen_branch_compare (condition, cmp_op0, ++ cmp_op1, label1)); ++ else ++ { ++ emit_jump_insn (gen_long_branch_compare (condition, cmp_op0, ++ cmp_op1, label1)); ++ } ++ + } + } + +@@ -3722,6 +3768,19 @@ microblaze_expand_conditional_branch_sf (rtx operands[]) + emit_jump_insn (gen_condjump (condition, operands[3])); + } + ++void ++microblaze_expand_conditional_branch_df (rtx operands[]) ++{ ++ rtx condition; ++ rtx cmp_op0 = XEXP (operands[0], 0); ++ rtx cmp_op1 = XEXP (operands[0], 1); ++ rtx comp_reg = gen_reg_rtx (DImode); ++ ++ emit_insn (gen_cstoredf4 (comp_reg, operands[0], cmp_op0, cmp_op1)); ++ condition = gen_rtx_NE (DImode, comp_reg, const0_rtx); ++ emit_jump_insn (gen_long_condjump (condition, operands[3])); ++} ++ + /* Implement TARGET_FRAME_POINTER_REQUIRED. */ + + static bool +diff --git a/gcc/config/microblaze/microblaze.h b/gcc/config/microblaze/microblaze.h +index 991d0f7..72fbee5 100644 +--- a/gcc/config/microblaze/microblaze.h ++++ b/gcc/config/microblaze/microblaze.h +@@ -102,6 +102,7 @@ extern enum pipeline_type microblaze_pipe; + #define ASM_SPEC "\ + %(target_asm_spec) \ + %{mbig-endian:-EB} \ ++%{m64:-m64} \ + %{mlittle-endian:-EL}" + + /* Extra switches sometimes passed to the linker. */ +@@ -110,6 +111,7 @@ extern enum pipeline_type microblaze_pipe; + #define LINK_SPEC "%{shared:-shared} -N -relax \ + %{mbig-endian:-EB --oformat=elf32-microblaze} \ + %{mlittle-endian:-EL --oformat=elf32-microblazeel} \ ++ %{m64:-EL --oformat=elf64-microblazeel} \ + %{Zxl-mode-xmdstub:-defsym _TEXT_START_ADDR=0x800} \ + %{mxl-mode-xmdstub:-defsym _TEXT_START_ADDR=0x800} \ + %{mxl-gp-opt:%{G*}} %{!mxl-gp-opt: -G 0} \ +@@ -217,7 +219,7 @@ extern enum pipeline_type microblaze_pipe; + #define MIN_UNITS_PER_WORD 4 + #define INT_TYPE_SIZE 32 + #define SHORT_TYPE_SIZE 16 +-#define LONG_TYPE_SIZE 32 ++#define LONG_TYPE_SIZE 64 + #define LONG_LONG_TYPE_SIZE 64 + #define FLOAT_TYPE_SIZE 32 + #define DOUBLE_TYPE_SIZE 64 +diff --git a/gcc/config/microblaze/microblaze.md b/gcc/config/microblaze/microblaze.md +index a93ddd0..6976b37 100644 +--- a/gcc/config/microblaze/microblaze.md ++++ b/gcc/config/microblaze/microblaze.md +@@ -495,7 +495,6 @@ + (set_attr "mode" "SF") + (set_attr "length" "4")]) + +- + (define_insn "divsf3" + [(set (match_operand:SF 0 "register_operand" "=d") + (div:SF (match_operand:SF 1 "register_operand" "d") +@@ -506,6 +505,7 @@ + (set_attr "mode" "SF") + (set_attr "length" "4")]) + ++ + (define_insn "sqrtsf2" + [(set (match_operand:SF 0 "register_operand" "=d") + (sqrt:SF (match_operand:SF 1 "register_operand" "d")))] +@@ -560,6 +560,18 @@ + + ;; Adding 2 DI operands in register or reg/imm + ++(define_insn "adddi3_long" ++ [(set (match_operand:DI 0 "register_operand" "=d,d") ++ (plus:DI (match_operand:DI 1 "reg_or_0_operand" "%dJ,dJ") ++ (match_operand:DI 2 "arith_plus_operand" "d,K")))] ++ "TARGET_MB_64" ++ "@ ++ addlk\t%0,%z1,%2 ++ addlik\t%0,%z1,%2" ++ [(set_attr "type" "arith,arith") ++ (set_attr "mode" "DI,DI") ++ (set_attr "length" "4,4")]) ++ + (define_insn "adddi3" + [(set (match_operand:DI 0 "register_operand" "=d,d") + (plus:DI (match_operand:DI 1 "register_operand" "%d,d") +@@ -604,6 +616,18 @@ + ;; Double Precision Subtraction + ;;---------------------------------------------------------------- + ++(define_insn "subdi3_long" ++ [(set (match_operand:DI 0 "register_operand" "=d,d") ++ (minus:DI (match_operand:DI 1 "register_operand" "d,d") ++ (match_operand:DI 2 "register_operand" "d,n")))] ++ "TARGET_MB_64" ++ "@ ++ rsubl\t%0,%2,%1 ++ addlik\t%0,%z1,-%2" ++ [(set_attr "type" "darith") ++ (set_attr "mode" "DI,DI") ++ (set_attr "length" "4,4")]) ++ + (define_insn "subdi3" + [(set (match_operand:DI 0 "register_operand" "=&d") + (minus:DI (match_operand:DI 1 "register_operand" "d") +@@ -793,6 +817,15 @@ + (set_attr "mode" "SI") + (set_attr "length" "4")]) + ++(define_insn "negdi2_long" ++ [(set (match_operand:DI 0 "register_operand" "=d") ++ (neg:DI (match_operand:DI 1 "register_operand" "d")))] ++ "TARGET_MB_64" ++ "rsubl\t%0,%1,r0" ++ [(set_attr "type" "darith") ++ (set_attr "mode" "DI") ++ (set_attr "length" "4")]) ++ + (define_insn "negdi2" + [(set (match_operand:DI 0 "register_operand" "=d") + (neg:DI (match_operand:DI 1 "register_operand" "d")))] +@@ -812,6 +845,15 @@ + (set_attr "mode" "SI") + (set_attr "length" "4")]) + ++(define_insn "one_cmpldi2_long" ++ [(set (match_operand:DI 0 "register_operand" "=d") ++ (not:DI (match_operand:DI 1 "register_operand" "d")))] ++ "TARGET_MB_64" ++ "xorli\t%0,%1,-1" ++ [(set_attr "type" "arith") ++ (set_attr "mode" "DI") ++ (set_attr "length" "4")]) ++ + (define_insn "*one_cmpldi2" + [(set (match_operand:DI 0 "register_operand" "=d") + (not:DI (match_operand:DI 1 "register_operand" "d")))] +@@ -838,6 +880,20 @@ + ;; Logical + ;;---------------------------------------------------------------- + ++(define_insn "anddi3" ++ [(set (match_operand:DI 0 "register_operand" "=d,d") ++ (and:DI (match_operand:DI 1 "arith_operand" "d,d") ++ (match_operand:DI 2 "arith_operand" "d,K")))] ++ "TARGET_MB_64" ++ "@ ++ andl\t%0,%1,%2 ++ andli\t%0,%1,%2 #andl1" ++ ;; andli\t%0,%1,%2 #andl3 ++ ;; andli\t%0,%1,%2 #andl2 ++ [(set_attr "type" "arith,arith") ++ (set_attr "mode" "DI,DI") ++ (set_attr "length" "4,4")]) ++ + (define_insn "andsi3" + [(set (match_operand:SI 0 "register_operand" "=d,d,d,d") + (and:SI (match_operand:SI 1 "arith_operand" "%d,d,d,d") +@@ -853,6 +909,18 @@ + (set_attr "length" "4,8,8,8")]) + + ++(define_insn "iordi3" ++ [(set (match_operand:DI 0 "register_operand" "=d,d") ++ (ior:DI (match_operand:DI 1 "arith_operand" "d,d") ++ (match_operand:DI 2 "arith_operand" "d,K")))] ++ "TARGET_MB_64" ++ "@ ++ orl\t%0,%1,%2 ++ orli\t%0,%1,%2 #andl1" ++ [(set_attr "type" "arith,arith") ++ (set_attr "mode" "DI,DI") ++ (set_attr "length" "4,4")]) ++ + (define_insn "iorsi3" + [(set (match_operand:SI 0 "register_operand" "=d,d,d,d") + (ior:SI (match_operand:SI 1 "arith_operand" "%d,d,d,d") +@@ -867,6 +935,19 @@ + (set_attr "mode" "SI,SI,SI,SI") + (set_attr "length" "4,8,8,8")]) + ++(define_insn "xordi3" ++ [(set (match_operand:DI 0 "register_operand" "=d,d") ++ (xor:DI (match_operand:DI 1 "arith_operand" "%d,d") ++ (match_operand:DI 2 "arith_operand" "d,K")))] ++ "TARGET_MB_64" ++ "@ ++ xorl\t%0,%1,%2 ++ xorli\t%0,%1,%2 #andl1" ++ [(set_attr "type" "arith,arith") ++ (set_attr "mode" "DI,DI") ++ (set_attr "length" "4,4")]) ++ ++ + (define_insn "xorsi3" + [(set (match_operand:SI 0 "register_operand" "=d,d,d") + (xor:SI (match_operand:SI 1 "arith_operand" "%d,d,d") +@@ -935,6 +1016,26 @@ + (set_attr "mode" "SI") + (set_attr "length" "4")]) + ++;;(define_expand "extendqidi2" ++;; [(set (match_operand:DI 0 "register_operand" "=d") ++;; (sign_extend:DI (match_operand:QI 1 "general_operand" "d")))] ++;; "TARGET_MB_64" ++;; { ++;; if (GET_CODE (operands[1]) != REG) ++;; FAIL; ++;; } ++;;) ++ ++ ++;;(define_insn "extendqidi2" ++;; [(set (match_operand:DI 0 "register_operand" "=d") ++;; (sign_extend:DI (match_operand:QI 1 "register_operand" "d")))] ++;; "TARGET_MB_64" ++;; "sextl8\t%0,%1" ++;; [(set_attr "type" "arith") ++;; (set_attr "mode" "DI") ++;; (set_attr "length" "4")]) ++ + (define_insn "extendhisi2" + [(set (match_operand:SI 0 "register_operand" "=d") + (sign_extend:SI (match_operand:HI 1 "register_operand" "d")))] +@@ -944,6 +1045,16 @@ + (set_attr "mode" "SI") + (set_attr "length" "4")]) + ++(define_insn "extendhidi2" ++ [(set (match_operand:DI 0 "register_operand" "=d") ++ (sign_extend:DI (match_operand:HI 1 "register_operand" "d")))] ++ "TARGET_MB_64" ++ "sextl16\t%0,%1" ++ [(set_attr "type" "arith") ++ (set_attr "mode" "DI") ++ (set_attr "length" "4")]) ++ ++ + ;; Those for integer source operand are ordered + ;; widest source type first. + +@@ -1009,7 +1120,6 @@ + ) + + +- + (define_insn "*movdi_internal" + [(set (match_operand:DI 0 "nonimmediate_operand" "=d,d,d,d,d,R,o") + (match_operand:DI 1 "general_operand" " d,i,J,R,o,d,d"))] +@@ -1421,6 +1531,36 @@ + (set_attr "length" "4,4")] + ) + ++;; Barrel shift left ++(define_expand "ashldi3" ++ [(set (match_operand:DI 0 "register_operand" "=&d") ++ (ashift:DI (match_operand:DI 1 "register_operand" "d") ++ (match_operand:DI 2 "arith_operand" "")))] ++"TARGET_MB_64" ++{ ++;;if (CONST_INT_P (operands[2]) && INTVAL (operands[2]) > 0 && INTVAL (operands[2]) < 65) ++if (INTVAL (operands[2]) > 0 && INTVAL (operands[2]) < 65) ++ { ++ emit_insn(gen_ashldi3_long (operands[0], operands[1],operands[2])); ++ DONE; ++ } ++else ++ FAIL; ++} ++) ++ ++(define_insn "ashldi3_long" ++ [(set (match_operand:DI 0 "register_operand" "=d,d") ++ (ashift:DI (match_operand:DI 1 "register_operand" "d,d") ++ (match_operand:DI 2 "arith_operand" "I,d")))] ++ "TARGET_MB_64" ++ "@ ++ bsllli\t%0,%1,%2 ++ bslll\t%0,%1,%2" ++ [(set_attr "type" "bshift,bshift") ++ (set_attr "mode" "DI,DI") ++ (set_attr "length" "4,4")] ++) + ;; The following patterns apply when there is no barrel shifter present + + (define_insn "*ashlsi3_with_mul_delay" +@@ -1546,6 +1686,36 @@ + ;;---------------------------------------------------------------- + ;; 32-bit right shifts + ;;---------------------------------------------------------------- ++;; Barrel shift left ++(define_expand "ashrdi3" ++ [(set (match_operand:DI 0 "register_operand" "=&d") ++ (ashiftrt:DI (match_operand:DI 1 "register_operand" "d") ++ (match_operand:DI 2 "arith_operand" "")))] ++"TARGET_MB_64" ++{ ++;;if (CONST_INT_P (operands[2]) && INTVAL (operands[2]) > 0 && INTVAL (operands[2]) < 65) ++if (INTVAL (operands[2]) > 0 && INTVAL (operands[2]) < 65) ++ { ++ emit_insn(gen_ashrdi3_long (operands[0], operands[1],operands[2])); ++ DONE; ++ } ++else ++ FAIL; ++} ++) ++ ++(define_insn "ashrdi3_long" ++ [(set (match_operand:DI 0 "register_operand" "=d,d") ++ (ashiftrt:DI (match_operand:DI 1 "register_operand" "d,d") ++ (match_operand:DI 2 "arith_operand" "I,d")))] ++ "TARGET_MB_64" ++ "@ ++ bslrai\t%0,%1,%2 ++ bslra\t%0,%1,%2" ++ [(set_attr "type" "bshift,bshift") ++ (set_attr "mode" "DI,DI") ++ (set_attr "length" "4,4")] ++ ) + (define_expand "ashrsi3" + [(set (match_operand:SI 0 "register_operand" "=&d") + (ashiftrt:SI (match_operand:SI 1 "register_operand" "d") +@@ -1655,6 +1825,36 @@ + ;;---------------------------------------------------------------- + ;; 32-bit right shifts (logical) + ;;---------------------------------------------------------------- ++;; Barrel shift left ++(define_expand "lshrdi3" ++ [(set (match_operand:DI 0 "register_operand" "=&d") ++ (lshiftrt:DI (match_operand:DI 1 "register_operand" "d") ++ (match_operand:DI 2 "arith_operand" "")))] ++"TARGET_MB_64" ++{ ++;;if (CONST_INT_P (operands[2]) && INTVAL (operands[2]) > 0 && INTVAL (operands[2]) < 65) ++if (INTVAL (operands[2]) > 0 && INTVAL (operands[2]) < 65) ++ { ++ emit_insn(gen_lshrdi3_long (operands[0], operands[1],operands[2])); ++ DONE; ++ } ++else ++ FAIL; ++} ++) ++ ++(define_insn "lshrdi3_long" ++ [(set (match_operand:DI 0 "register_operand" "=d,d") ++ (lshiftrt:DI (match_operand:DI 1 "register_operand" "d,d") ++ (match_operand:DI 2 "arith_operand" "I,d")))] ++ "TARGET_MB_64" ++ "@ ++ bslrli\t%0,%1,%2 ++ bslrl\t%0,%1,%2" ++ [(set_attr "type" "bshift,bshift") ++ (set_attr "mode" "DI,DI") ++ (set_attr "length" "4,4")] ++ ) + + (define_expand "lshrsi3" + [(set (match_operand:SI 0 "register_operand" "=&d") +@@ -1801,6 +2001,8 @@ + (set_attr "length" "4")] + ) + ++ ++ + ;;---------------------------------------------------------------- + ;; Setting a register from an floating point comparison. + ;;---------------------------------------------------------------- +@@ -1816,6 +2018,18 @@ + (set_attr "length" "4")] + ) + ++(define_insn "cstoredf4" ++ [(set (match_operand:DI 0 "register_operand" "=r") ++ (match_operator:DI 1 "ordered_comparison_operator" ++ [(match_operand:DF 2 "register_operand" "r") ++ (match_operand:DF 3 "register_operand" "r")]))] ++ "TARGET_MB_64" ++ "dcmp.%C1\t%0,%3,%2" ++ [(set_attr "type" "fcmp") ++ (set_attr "mode" "DF") ++ (set_attr "length" "4")] ++) ++ + ;;---------------------------------------------------------------- + ;; Conditional branches + ;;---------------------------------------------------------------- +@@ -1928,6 +2142,115 @@ + (set_attr "length" "12")] + ) + ++ ++(define_expand "cbranchdi4" ++ [(set (pc) ++ (if_then_else (match_operator 0 "ordered_comparison_operator" ++ [(match_operand:DI 1 "register_operand") ++ (match_operand:DI 2 "arith_operand" "I,i")]) ++ (label_ref (match_operand 3 "")) ++ (pc)))] ++ "TARGET_MB_64" ++{ ++ microblaze_expand_conditional_branch (DImode, operands); ++ DONE; ++}) ++ ++(define_expand "cbranchdi4_reg" ++ [(set (pc) ++ (if_then_else (match_operator 0 "ordered_comparison_operator" ++ [(match_operand:DI 1 "register_operand") ++ (match_operand:DI 2 "register_operand")]) ++ (label_ref (match_operand 3 "")) ++ (pc)))] ++ "TARGET_MB_64" ++{ ++ microblaze_expand_conditional_branch_reg (DImode, operands); ++ DONE; ++}) ++ ++(define_expand "cbranchdf4" ++ [(set (pc) ++ (if_then_else (match_operator 0 "ordered_comparison_operator" ++ [(match_operand:DF 1 "register_operand") ++ (match_operand:DF 2 "register_operand")]) ++ (label_ref (match_operand 3 "")) ++ (pc)))] ++ "TARGET_MB_64" ++{ ++ microblaze_expand_conditional_branch_df (operands); ++ DONE; ++ ++}) ++ ++;; Used to implement comparison instructions ++(define_expand "long_condjump" ++ [(set (pc) ++ (if_then_else (match_operand 0) ++ (label_ref (match_operand 1)) ++ (pc)))]) ++ ++(define_insn "long_branch_zero" ++ [(set (pc) ++ (if_then_else (match_operator:DI 0 "ordered_comparison_operator" ++ [(match_operand:DI 1 "register_operand" "d") ++ (const_int 0)]) ++ (match_operand:DI 2 "pc_or_label_operand" "") ++ (match_operand:DI 3 "pc_or_label_operand" ""))) ++ ] ++ "TARGET_MB_64" ++ { ++ if (operands[3] == pc_rtx) ++ return "beal%C0i%?\t%z1,%2"; ++ else ++ return "beal%N0i%?\t%z1,%3"; ++ } ++ [(set_attr "type" "branch") ++ (set_attr "mode" "none") ++ (set_attr "length" "4")] ++) ++ ++(define_insn "long_branch_compare" ++ [(set (pc) ++ (if_then_else (match_operator:DI 0 "cmp_op" ++ [(match_operand:DI 1 "register_operand" "d") ++ (match_operand:DI 2 "register_operand" "d") ++ ]) ++ (label_ref (match_operand 3)) ++ (pc))) ++ (clobber(reg:DI R_TMP))] ++ "TARGET_MB_64" ++ { ++ operands[4] = gen_rtx_REG (DImode, MB_ABI_ASM_TEMP_REGNUM); ++ enum rtx_code code = GET_CODE (operands[0]); ++ ++ if (code == GT || code == LE) ++ { ++ output_asm_insn ("cmpl\tr18,%z1,%z2", operands); ++ code = swap_condition (code); ++ } ++ else if (code == GTU || code == LEU) ++ { ++ output_asm_insn ("cmplu\tr18,%z1,%z2", operands); ++ code = swap_condition (code); ++ } ++ else if (code == GE || code == LT) ++ { ++ output_asm_insn ("cmpl\tr18,%z2,%z1", operands); ++ } ++ else if (code == GEU || code == LTU) ++ { ++ output_asm_insn ("cmplu\tr18,%z2,%z1", operands); ++ } ++ ++ operands[0] = gen_rtx_fmt_ee (signed_condition (code), DImode, operands[4], const0_rtx); ++ return "beal%C0i%?\tr18,%3"; ++ } ++ [(set_attr "type" "branch") ++ (set_attr "mode" "none") ++ (set_attr "length" "12")] ++) ++ + ;;---------------------------------------------------------------- + ;; Unconditional branches + ;;---------------------------------------------------------------- +@@ -2462,17 +2785,33 @@ + DONE; + }") + +-(define_expand "extzvsi" ++(define_expand "extvsi" + [(set (match_operand:SI 0 "register_operand" "r") + (zero_extract:SI (match_operand:SI 1 "register_operand" "r") + (match_operand:SI 2 "immediate_operand" "I") + (match_operand:SI 3 "immediate_operand" "I")))] + "TARGET_HAS_BITFIELD" +-"" +-) +- ++" ++{ ++ unsigned HOST_WIDE_INT len = UINTVAL (operands[2]); ++ unsigned HOST_WIDE_INT pos = UINTVAL (operands[3]); ++ ++ if ((len == 0) || (pos + len > 32) ) ++ FAIL; ++ ++ ;;if (!register_operand (operands[1], VOIDmode)) ++ ;; FAIL; ++ if (operands[0] == operands[1]) ++ FAIL; ++ if (GET_CODE (operands[1]) == ASHIFT) ++ FAIL; ++;; operands[2] = GEN_INT(INTVAL(operands[2])+1 ); ++ emit_insn (gen_extv_32 (operands[0], operands[1], ++ operands[2], operands[3])); ++ DONE; ++}") + +-(define_insn "extzv_32" ++(define_insn "extv_32" + [(set (match_operand:SI 0 "register_operand" "=r") + (zero_extract:SI (match_operand:SI 1 "register_operand" "r") + (match_operand:SI 2 "immediate_operand" "I") +@@ -2489,8 +2828,21 @@ + (match_operand:SI 2 "immediate_operand" "I")) + (match_operand:SI 3 "register_operand" "r"))] + "TARGET_HAS_BITFIELD" +-"" +-) ++ " ++{ ++ unsigned HOST_WIDE_INT len = UINTVAL (operands[1]); ++ unsigned HOST_WIDE_INT pos = UINTVAL (operands[2]); ++ ++ if (len <= 0 || pos + len > 32) ++ FAIL; ++ ++ ;;if (!register_operand (operands[0], VOIDmode)) ++ ;; FAIL; ++ ++ emit_insn (gen_insv_32 (operands[0], operands[1], ++ operands[2], operands[3])); ++ DONE; ++}") + + (define_insn "insv_32" + [(set (zero_extract:SI (match_operand:SI 0 "register_operand" "+r") +diff --git a/gcc/config/microblaze/microblaze.opt b/gcc/config/microblaze/microblaze.opt +index c8e6f00..cdcae00 100644 +--- a/gcc/config/microblaze/microblaze.opt ++++ b/gcc/config/microblaze/microblaze.opt +@@ -125,11 +125,16 @@ Description for mxl-mode-novectors. + + mxl-prefetch + Target Mask(PREFETCH) +-Use hardware prefetch instruction ++Use hardware prefetch instruction. + + mxl-mode-xilkernel + Target + + mxl-frequency + Target Mask(AREA_OPTIMIZED_2) +-Use 8 stage pipeline (frequency optimization) ++Use 8 stage pipeline (frequency optimization). ++ ++m64 ++Target Mask(MB_64) ++MicroBlaze 64-bit mode. ++ +diff --git a/gcc/config/microblaze/t-microblaze b/gcc/config/microblaze/t-microblaze +index 41fa9a9..e9a1921 100644 +--- a/gcc/config/microblaze/t-microblaze ++++ b/gcc/config/microblaze/t-microblaze +@@ -1,8 +1,11 @@ +-MULTILIB_OPTIONS = mxl-barrel-shift mno-xl-soft-mul mxl-multiply-high mlittle-endian +-MULTILIB_DIRNAMES = bs m mh le ++MULTILIB_OPTIONS = mxl-barrel-shift mno-xl-soft-mul mxl-multiply-high mlittle-endian m64 ++MULTILIB_DIRNAMES = bs m mh le m64 + MULTILIB_EXCEPTIONS = *mxl-barrel-shift/mxl-multiply-high mxl-multiply-high + MULTILIB_EXCEPTIONS += *mxl-barrel-shift/mxl-multiply-high/mlittle-endian ++MULTILIB_EXCEPTIONS += *mxl-barrel-shift/mxl-multiply-high/m64 + MULTILIB_EXCEPTIONS += mxl-multiply-high/mlittle-endian ++MULTILIB_EXCEPTIONS += mxl-multiply-high/m64 ++MULTILIB_EXCEPTIONS += *mxl-multiply-high/mlittle-endian/m64 + + # Extra files + microblaze-c.o: $(srcdir)/config/microblaze/microblaze-c.c \ +-- +2.7.4 + diff --git a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-8/0040-Added-load-store-pattern-movdi-and-also-adding-missi.patch b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-8/0040-Added-load-store-pattern-movdi-and-also-adding-missi.patch new file mode 100644 index 00000000..1157a82f --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-8/0040-Added-load-store-pattern-movdi-and-also-adding-missi.patch @@ -0,0 +1,83 @@ +From 5526d87787d61990be3187b230fae4d0591d0651 Mon Sep 17 00:00:00 2001 +From: Nagaraju Mekala +Date: Wed, 4 Apr 2018 16:41:41 +0530 +Subject: [PATCH 40/54] Added load store pattern movdi and also adding missing + files + +--- + gcc/config/microblaze/constraints.md | 5 +++++ + gcc/config/microblaze/microblaze.md | 26 ++++++++++++++++++++++++++ + gcc/config/microblaze/t-microblaze | 4 ++-- + 3 files changed, 33 insertions(+), 2 deletions(-) + +diff --git a/gcc/config/microblaze/constraints.md b/gcc/config/microblaze/constraints.md +index ae14944..a06b4d8 100644 +--- a/gcc/config/microblaze/constraints.md ++++ b/gcc/config/microblaze/constraints.md +@@ -52,6 +52,11 @@ + (and (match_code "const_int") + (match_test "ival > 0 && ival < 0x10000"))) + ++(define_constraint "K" ++ "A constant in the range 0xffffff8000000000L to 0x0000007fffffffffL (inclusive)." ++ (and (match_code "const_int") ++ (match_test "ival > (long)0xffffff8000000000L && ival < (long)0x0000007fffffffffL"))) ++ + ;; Define floating point constraints + + (define_constraint "G" +diff --git a/gcc/config/microblaze/microblaze.md b/gcc/config/microblaze/microblaze.md +index 6976b37..0cd0441 100644 +--- a/gcc/config/microblaze/microblaze.md ++++ b/gcc/config/microblaze/microblaze.md +@@ -1120,6 +1120,32 @@ + ) + + ++(define_insn "*movdi_internal_64" ++ [(set (match_operand:DI 0 "nonimmediate_operand" "=d,d,d,d,d,R,o") ++ (match_operand:DI 1 "general_operand" " d,K,J,R,o,d,d"))] ++ "TARGET_MB_64 && (INTVAL(operands[1]) < 0x7fffffffff) && (INTVAL(operands[1]) > 0xffffff8000000000)" ++ { ++ switch (which_alternative) ++ { ++ case 0: ++ return "addlk\t%0,%1"; ++ case 1: ++ return "addlik\t%0,r0,%1"; ++ case 2: ++ return "addlk\t%0,r0,r0"; ++ case 3: ++ case 4: ++ return "lli\t%0,%1"; ++ case 5: ++ case 6: ++ return "sli\t%1,%0"; ++ } ++ return "unreachable"; ++ } ++ [(set_attr "type" "no_delay_move,no_delay_arith,no_delay_arith,no_delay_load,no_delay_load,no_delay_store,no_delay_store") ++ (set_attr "mode" "DI") ++ (set_attr "length" "8,8,8,8,12,8,12")]) ++ + (define_insn "*movdi_internal" + [(set (match_operand:DI 0 "nonimmediate_operand" "=d,d,d,d,d,R,o") + (match_operand:DI 1 "general_operand" " d,i,J,R,o,d,d"))] +diff --git a/gcc/config/microblaze/t-microblaze b/gcc/config/microblaze/t-microblaze +index e9a1921..7671f63 100644 +--- a/gcc/config/microblaze/t-microblaze ++++ b/gcc/config/microblaze/t-microblaze +@@ -4,8 +4,8 @@ MULTILIB_EXCEPTIONS = *mxl-barrel-shift/mxl-multiply-high mxl-multiply-high + MULTILIB_EXCEPTIONS += *mxl-barrel-shift/mxl-multiply-high/mlittle-endian + MULTILIB_EXCEPTIONS += *mxl-barrel-shift/mxl-multiply-high/m64 + MULTILIB_EXCEPTIONS += mxl-multiply-high/mlittle-endian +-MULTILIB_EXCEPTIONS += mxl-multiply-high/m64 +-MULTILIB_EXCEPTIONS += *mxl-multiply-high/mlittle-endian/m64 ++#MULTILIB_EXCEPTIONS += mxl-multiply-high/m64 ++#MULTILIB_EXCEPTIONS += *mxl-multiply-high/mlittle-endian/m64 + + # Extra files + microblaze-c.o: $(srcdir)/config/microblaze/microblaze-c.c \ +-- +2.7.4 + diff --git a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-8/0041-Intial-commit-for-64bit-MB-sources.patch b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-8/0041-Intial-commit-for-64bit-MB-sources.patch new file mode 100644 index 00000000..411958e7 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-8/0041-Intial-commit-for-64bit-MB-sources.patch @@ -0,0 +1,2463 @@ +From eee9b7f7423823b133d6a5e5382863502433bdc6 Mon Sep 17 00:00:00 2001 +From: Nagaraju Mekala +Date: Fri, 27 Jul 2018 15:23:41 +0530 +Subject: [PATCH 41/54] Intial commit for 64bit-MB sources. Need to cleanup the + code later. + +--- + gcc/config/microblaze/constraints.md | 2 +- + gcc/config/microblaze/microblaze-c.c | 6 + + gcc/config/microblaze/microblaze.c | 218 ++++++++---- + gcc/config/microblaze/microblaze.h | 63 ++-- + gcc/config/microblaze/microblaze.md | 606 ++++++++++++++++++++++++-------- + gcc/config/microblaze/t-microblaze | 7 +- + libgcc/config/microblaze/crti.S | 4 +- + libgcc/config/microblaze/crtn.S | 4 +- + libgcc/config/microblaze/divdi3.S | 98 ++++++ + libgcc/config/microblaze/divdi3_table.c | 62 ++++ + libgcc/config/microblaze/moddi3.S | 97 +++++ + libgcc/config/microblaze/muldi3.S | 73 ++++ + libgcc/config/microblaze/t-microblaze | 11 +- + libgcc/config/microblaze/udivdi3.S | 107 ++++++ + libgcc/config/microblaze/umoddi3.S | 110 ++++++ + 15 files changed, 1232 insertions(+), 236 deletions(-) + create mode 100644 libgcc/config/microblaze/divdi3.S + create mode 100644 libgcc/config/microblaze/divdi3_table.c + create mode 100644 libgcc/config/microblaze/moddi3.S + create mode 100644 libgcc/config/microblaze/muldi3.S + create mode 100644 libgcc/config/microblaze/udivdi3.S + create mode 100644 libgcc/config/microblaze/umoddi3.S + +diff --git a/gcc/config/microblaze/constraints.md b/gcc/config/microblaze/constraints.md +index a06b4d8..867a7b5 100644 +--- a/gcc/config/microblaze/constraints.md ++++ b/gcc/config/microblaze/constraints.md +@@ -55,7 +55,7 @@ + (define_constraint "K" + "A constant in the range 0xffffff8000000000L to 0x0000007fffffffffL (inclusive)." + (and (match_code "const_int") +- (match_test "ival > (long)0xffffff8000000000L && ival < (long)0x0000007fffffffffL"))) ++ (match_test "ival > (long)-549755813888 && ival < (long)549755813887"))) + + ;; Define floating point constraints + +diff --git a/gcc/config/microblaze/microblaze-c.c b/gcc/config/microblaze/microblaze-c.c +index 7b020b5..d8a1d13 100644 +--- a/gcc/config/microblaze/microblaze-c.c ++++ b/gcc/config/microblaze/microblaze-c.c +@@ -100,4 +100,10 @@ microblaze_cpp_define (cpp_reader *pfile) + builtin_define ("HAVE_HW_FPU_SQRT"); + builtin_define ("__HAVE_HW_FPU_SQRT__"); + } ++ if (TARGET_MB_64) ++ { ++ builtin_define ("__arch64__"); ++ builtin_define ("__microblaze64__"); ++ builtin_define ("__MICROBLAZE64__"); ++ } + } +diff --git a/gcc/config/microblaze/microblaze.c b/gcc/config/microblaze/microblaze.c +index 2079ae9..ba7ade4 100644 +--- a/gcc/config/microblaze/microblaze.c ++++ b/gcc/config/microblaze/microblaze.c +@@ -382,10 +382,10 @@ simple_memory_operand (rtx op, machine_mode mode ATTRIBUTE_UNUSED) + { + return 1; + } +- else if (GET_CODE (plus0) == REG && GET_CODE (plus1) == REG) ++ /*else if (GET_CODE (plus0) == REG && GET_CODE (plus1) == REG) + { + return 1; +- } ++ }*/ + else + return 0; + +@@ -433,7 +433,7 @@ double_memory_operand (rtx op, machine_mode mode) + return 1; + + return memory_address_p ((GET_MODE_CLASS (mode) == MODE_INT +- ? E_SImode : E_SFmode), ++ ? Pmode : E_SFmode), + plus_constant (Pmode, addr, 4)); + } + +@@ -680,7 +680,7 @@ microblaze_legitimize_tls_address(rtx x, rtx reg) + /* Load the addend. */ + addend = gen_rtx_UNSPEC (Pmode, gen_rtvec (2, x, GEN_INT (TLS_DTPREL)), + UNSPEC_TLS); +- addend = force_reg (SImode, gen_rtx_CONST (SImode, addend)); ++ addend = force_reg (Pmode, gen_rtx_CONST (Pmode, addend)); + dest = gen_rtx_PLUS (Pmode, dest, addend); + break; + +@@ -698,7 +698,7 @@ microblaze_classify_unspec (struct microblaze_address_info *info, rtx x) + + if (XINT (x, 1) == UNSPEC_GOTOFF) + { +- info->regA = gen_rtx_REG (SImode, PIC_OFFSET_TABLE_REGNUM); ++ info->regA = gen_rtx_REG (Pmode, PIC_OFFSET_TABLE_REGNUM); + info->type = ADDRESS_GOTOFF; + } + else if (XINT (x, 1) == UNSPEC_PLT) +@@ -1230,8 +1230,16 @@ microblaze_block_move_loop (rtx dest, rtx src, HOST_WIDE_INT length) + emit_move_insn (dest_reg, plus_constant (Pmode, dest_reg, MAX_MOVE_BYTES)); + + /* Emit the test & branch. */ +- emit_insn (gen_cbranchsi4 (gen_rtx_NE (SImode, src_reg, final_src), ++ ++ if (TARGET_MB_64) { ++ emit_insn (gen_cbranchdi4 (gen_rtx_NE (Pmode, src_reg, final_src), ++ src_reg, final_src, label)); ++ } ++ else { ++ emit_insn (gen_cbranchsi4 (gen_rtx_NE (Pmode, src_reg, final_src), + src_reg, final_src, label)); ++ ++ } + + /* Mop up any left-over bytes. */ + if (leftover) +@@ -1561,14 +1569,20 @@ microblaze_function_arg_advance (cumulative_args_t cum_v, + break; + + case E_DFmode: +- cum->arg_words += 2; ++ if (TARGET_MB_64) ++ cum->arg_words++; ++ else ++ cum->arg_words += 2; + if (!cum->gp_reg_found && cum->arg_number <= 2) + cum->fp_code += 2 << ((cum->arg_number - 1) * 2); + break; + + case E_DImode: + cum->gp_reg_found = 1; +- cum->arg_words += 2; ++ if (TARGET_MB_64) ++ cum->arg_words++; ++ else ++ cum->arg_words += 2; + break; + + case E_QImode: +@@ -2219,7 +2233,7 @@ compute_frame_size (HOST_WIDE_INT size) + + if (regno != MB_ABI_SUB_RETURN_ADDR_REGNUM) + /* Don't account for link register. It is accounted specially below. */ +- gp_reg_size += GET_MODE_SIZE (SImode); ++ gp_reg_size += GET_MODE_SIZE (Pmode); + + mask |= (1L << (regno - GP_REG_FIRST)); + } +@@ -2487,7 +2501,7 @@ print_operand (FILE * file, rtx op, int letter) + + if ((letter == 'M' && !WORDS_BIG_ENDIAN) + || (letter == 'L' && WORDS_BIG_ENDIAN) || letter == 'D') +- regnum++; ++ regnum++; + + fprintf (file, "%s", reg_names[regnum]); + } +@@ -2513,6 +2527,7 @@ print_operand (FILE * file, rtx op, int letter) + else if (letter == 'h' || letter == 'j') + { + long val[2]; ++ int val1[2]; + long l[2]; + if (code == CONST_DOUBLE) + { +@@ -2525,12 +2540,12 @@ print_operand (FILE * file, rtx op, int letter) + val[0] = l[WORDS_BIG_ENDIAN != 0]; + } + } +- else if (code == CONST_INT) ++ else if (code == CONST_INT || code == CONST)// || code == SYMBOL_REF ||code == LABEL_REF) + { +- val[0] = (INTVAL (op) & 0xffffffff00000000LL) >> 32; +- val[1] = INTVAL (op) & 0x00000000ffffffffLL; ++ val1[0] = (INTVAL (op) & 0xffffffff00000000LL) >> 32; ++ val1[1] = INTVAL (op) & 0x00000000ffffffffLL; + } +- fprintf (file, "0x%8.8lx", (letter == 'h') ? val[0] : val[1]); ++ fprintf (file, "0x%8.8lx", (letter == 'h') ? val1[0] : val1[1]); + } + else if (code == CONST_DOUBLE) + { +@@ -2713,7 +2728,10 @@ microblaze_asm_constructor (rtx symbol ATTRIBUTE_UNUSED, int priority) + + switch_to_section (get_section (section, 0, NULL)); + assemble_align (POINTER_SIZE); +- fputs ("\t.word\t", asm_out_file); ++ if (TARGET_MB_64) ++ fputs ("\t.dword\t", asm_out_file); ++ else ++ fputs ("\t.word\t", asm_out_file); + output_addr_const (asm_out_file, symbol); + fputs ("\n", asm_out_file); + } +@@ -2736,7 +2754,10 @@ microblaze_asm_destructor (rtx symbol, int priority) + + switch_to_section (get_section (section, 0, NULL)); + assemble_align (POINTER_SIZE); +- fputs ("\t.word\t", asm_out_file); ++ if (TARGET_MB_64) ++ fputs ("\t.dword\t", asm_out_file); ++ else ++ fputs ("\t.word\t", asm_out_file); + output_addr_const (asm_out_file, symbol); + fputs ("\n", asm_out_file); + } +@@ -2802,7 +2823,7 @@ save_restore_insns (int prologue) + /* For interrupt_handlers, need to save/restore the MSR. */ + if (microblaze_is_interrupt_variant ()) + { +- isr_mem_rtx = gen_rtx_MEM (SImode, ++ isr_mem_rtx = gen_rtx_MEM (Pmode, + gen_rtx_PLUS (Pmode, base_reg_rtx, + GEN_INT (current_frame_info. + gp_offset - +@@ -2810,8 +2831,8 @@ save_restore_insns (int prologue) + + /* Do not optimize in flow analysis. */ + MEM_VOLATILE_P (isr_mem_rtx) = 1; +- isr_reg_rtx = gen_rtx_REG (SImode, MB_ABI_MSR_SAVE_REG); +- isr_msr_rtx = gen_rtx_REG (SImode, ST_REG); ++ isr_reg_rtx = gen_rtx_REG (Pmode, MB_ABI_MSR_SAVE_REG); ++ isr_msr_rtx = gen_rtx_REG (Pmode, ST_REG); + } + + if (microblaze_is_interrupt_variant () && !prologue) +@@ -2819,8 +2840,8 @@ save_restore_insns (int prologue) + emit_move_insn (isr_reg_rtx, isr_mem_rtx); + emit_move_insn (isr_msr_rtx, isr_reg_rtx); + /* Do not optimize in flow analysis. */ +- emit_insn (gen_rtx_USE (SImode, isr_reg_rtx)); +- emit_insn (gen_rtx_USE (SImode, isr_msr_rtx)); ++ emit_insn (gen_rtx_USE (Pmode, isr_reg_rtx)); ++ emit_insn (gen_rtx_USE (Pmode, isr_msr_rtx)); + } + + for (regno = GP_REG_FIRST; regno <= GP_REG_LAST; regno++) +@@ -2831,9 +2852,9 @@ save_restore_insns (int prologue) + /* Don't handle here. Already handled as the first register. */ + continue; + +- reg_rtx = gen_rtx_REG (SImode, regno); ++ reg_rtx = gen_rtx_REG (Pmode, regno); + insn = gen_rtx_PLUS (Pmode, base_reg_rtx, GEN_INT (gp_offset)); +- mem_rtx = gen_rtx_MEM (SImode, insn); ++ mem_rtx = gen_rtx_MEM (Pmode, insn); + if (microblaze_is_interrupt_variant () || save_volatiles) + /* Do not optimize in flow analysis. */ + MEM_VOLATILE_P (mem_rtx) = 1; +@@ -2848,7 +2869,7 @@ save_restore_insns (int prologue) + insn = emit_move_insn (reg_rtx, mem_rtx); + } + +- gp_offset += GET_MODE_SIZE (SImode); ++ gp_offset += GET_MODE_SIZE (Pmode); + } + } + +@@ -2858,8 +2879,8 @@ save_restore_insns (int prologue) + emit_move_insn (isr_mem_rtx, isr_reg_rtx); + + /* Do not optimize in flow analysis. */ +- emit_insn (gen_rtx_USE (SImode, isr_reg_rtx)); +- emit_insn (gen_rtx_USE (SImode, isr_msr_rtx)); ++ emit_insn (gen_rtx_USE (Pmode, isr_reg_rtx)); ++ emit_insn (gen_rtx_USE (Pmode, isr_msr_rtx)); + } + + /* Done saving and restoring */ +@@ -2949,7 +2970,10 @@ microblaze_elf_asm_cdtor (rtx symbol, int priority, bool is_ctor) + + switch_to_section (s); + assemble_align (POINTER_SIZE); +- fputs ("\t.word\t", asm_out_file); ++ if (TARGET_MB_64) ++ fputs ("\t.dword\t", asm_out_file); ++ else ++ fputs ("\t.word\t", asm_out_file); + output_addr_const (asm_out_file, symbol); + fputs ("\n", asm_out_file); + } +@@ -3095,10 +3119,10 @@ microblaze_expand_prologue (void) + { + if (offset != 0) + ptr = gen_rtx_PLUS (Pmode, stack_pointer_rtx, GEN_INT (offset)); +- emit_move_insn (gen_rtx_MEM (SImode, ptr), +- gen_rtx_REG (SImode, regno)); ++ emit_move_insn (gen_rtx_MEM (Pmode, ptr), ++ gen_rtx_REG (Pmode, regno)); + +- offset += GET_MODE_SIZE (SImode); ++ offset += GET_MODE_SIZE (Pmode); + } + + } +@@ -3108,15 +3132,23 @@ microblaze_expand_prologue (void) + rtx fsiz_rtx = GEN_INT (fsiz); + + rtx_insn *insn = NULL; +- insn = emit_insn (gen_subsi3 (stack_pointer_rtx, stack_pointer_rtx, ++ if (TARGET_MB_64) ++ { ++ ++ insn = emit_insn (gen_subdi3 (stack_pointer_rtx, stack_pointer_rtx, + fsiz_rtx)); ++ } ++ else { ++ insn = emit_insn (gen_subsi3 (stack_pointer_rtx, stack_pointer_rtx, ++ fsiz_rtx)); ++ } + if (insn) + RTX_FRAME_RELATED_P (insn) = 1; + + /* Handle SUB_RETURN_ADDR_REGNUM specially at first. */ + if (!crtl->is_leaf || interrupt_handler) + { +- mem_rtx = gen_rtx_MEM (SImode, ++ mem_rtx = gen_rtx_MEM (Pmode, + gen_rtx_PLUS (Pmode, stack_pointer_rtx, + const0_rtx)); + +@@ -3124,7 +3156,7 @@ microblaze_expand_prologue (void) + /* Do not optimize in flow analysis. */ + MEM_VOLATILE_P (mem_rtx) = 1; + +- reg_rtx = gen_rtx_REG (SImode, MB_ABI_SUB_RETURN_ADDR_REGNUM); ++ reg_rtx = gen_rtx_REG (Pmode, MB_ABI_SUB_RETURN_ADDR_REGNUM); + insn = emit_move_insn (mem_rtx, reg_rtx); + RTX_FRAME_RELATED_P (insn) = 1; + } +@@ -3224,12 +3256,12 @@ microblaze_expand_epilogue (void) + if (!crtl->is_leaf || interrupt_handler) + { + mem_rtx = +- gen_rtx_MEM (SImode, ++ gen_rtx_MEM (Pmode, + gen_rtx_PLUS (Pmode, stack_pointer_rtx, const0_rtx)); + if (interrupt_handler) + /* Do not optimize in flow analysis. */ + MEM_VOLATILE_P (mem_rtx) = 1; +- reg_rtx = gen_rtx_REG (SImode, MB_ABI_SUB_RETURN_ADDR_REGNUM); ++ reg_rtx = gen_rtx_REG (Pmode, MB_ABI_SUB_RETURN_ADDR_REGNUM); + emit_move_insn (reg_rtx, mem_rtx); + } + +@@ -3245,15 +3277,25 @@ microblaze_expand_epilogue (void) + /* _restore_ registers for epilogue. */ + save_restore_insns (0); + emit_insn (gen_blockage ()); +- emit_insn (gen_addsi3 (stack_pointer_rtx, stack_pointer_rtx, fsiz_rtx)); ++ if (TARGET_MB_64) ++ emit_insn (gen_adddi3 (stack_pointer_rtx, stack_pointer_rtx, fsiz_rtx)); ++ else ++ emit_insn (gen_addsi3 (stack_pointer_rtx, stack_pointer_rtx, fsiz_rtx)); + } + + if (crtl->calls_eh_return) +- emit_insn (gen_addsi3 (stack_pointer_rtx, ++ if (TARGET_MB_64) { ++ emit_insn (gen_adddi3 (stack_pointer_rtx, + stack_pointer_rtx, +- gen_raw_REG (SImode, ++ gen_raw_REG (Pmode, + MB_EH_STACKADJ_REGNUM))); +- ++ } ++ else { ++ emit_insn (gen_addsi3 (stack_pointer_rtx, ++ stack_pointer_rtx, ++ gen_raw_REG (Pmode, ++ MB_EH_STACKADJ_REGNUM))); ++ } + emit_jump_insn (gen_return_internal (gen_rtx_REG (Pmode, GP_REG_FIRST + + MB_ABI_SUB_RETURN_ADDR_REGNUM))); + } +@@ -3402,9 +3444,14 @@ microblaze_asm_output_mi_thunk (FILE *file, tree thunk_fndecl ATTRIBUTE_UNUSED, + else + this_rtx = gen_rtx_REG (Pmode, MB_ABI_FIRST_ARG_REGNUM); + +- /* Apply the constant offset, if required. */ ++ /* Apply the constant offset, if required. */ + if (delta) +- emit_insn (gen_addsi3 (this_rtx, this_rtx, GEN_INT (delta))); ++ { ++ if (TARGET_MB_64) ++ emit_insn (gen_adddi3 (this_rtx, this_rtx, GEN_INT (delta))); ++ else ++ emit_insn (gen_addsi3 (this_rtx, this_rtx, GEN_INT (delta))); ++ } + + /* Apply the offset from the vtable, if required. */ + if (vcall_offset) +@@ -3417,7 +3464,10 @@ microblaze_asm_output_mi_thunk (FILE *file, tree thunk_fndecl ATTRIBUTE_UNUSED, + rtx loc = gen_rtx_PLUS (Pmode, temp1, vcall_offset_rtx); + emit_move_insn (temp1, gen_rtx_MEM (Pmode, loc)); + +- emit_insn (gen_addsi3 (this_rtx, this_rtx, temp1)); ++ if (TARGET_MB_64) ++ emit_insn (gen_adddi3 (this_rtx, this_rtx, temp1)); ++ else ++ emit_insn (gen_addsi3 (this_rtx, this_rtx, temp1)); + } + + /* Generate a tail call to the target function. */ +@@ -3564,7 +3614,7 @@ microblaze_eh_return (rtx op0) + /* Queue an .ident string in the queue of top-level asm statements. + If the string size is below the threshold, put it into .sdata2. + If the front-end is done, we must be being called from toplev.c. +- In that case, do nothing. */ ++ In that case, do nothing. */ + void + microblaze_asm_output_ident (const char *string) + { +@@ -3619,9 +3669,9 @@ microblaze_trampoline_init (rtx m_tramp, tree fndecl, rtx chain_value) + emit_block_move (m_tramp, assemble_trampoline_template (), + GEN_INT (6*UNITS_PER_WORD), BLOCK_OP_NORMAL); + +- mem = adjust_address (m_tramp, SImode, 16); ++ mem = adjust_address (m_tramp, Pmode, 16); + emit_move_insn (mem, chain_value); +- mem = adjust_address (m_tramp, SImode, 20); ++ mem = adjust_address (m_tramp, Pmode, 20); + emit_move_insn (mem, fnaddr); + } + +@@ -3645,7 +3695,7 @@ microblaze_expand_conditional_branch (machine_mode mode, rtx operands[]) + { + comp_reg = cmp_op0; + condition = gen_rtx_fmt_ee (signed_condition (code), mode, comp_reg, const0_rtx); +- if (mode == SImode) ++ if (mode == Pmode) + emit_jump_insn (gen_condjump (condition, label1)); + else + emit_jump_insn (gen_long_condjump (condition, label1)); +@@ -3764,7 +3814,7 @@ microblaze_expand_conditional_branch_sf (rtx operands[]) + rtx comp_reg = gen_reg_rtx (SImode); + + emit_insn (gen_cstoresf4 (comp_reg, operands[0], cmp_op0, cmp_op1)); +- condition = gen_rtx_NE (SImode, comp_reg, const0_rtx); ++ condition = gen_rtx_NE (Pmode, comp_reg, const0_rtx); + emit_jump_insn (gen_condjump (condition, operands[3])); + } + +@@ -3774,10 +3824,10 @@ microblaze_expand_conditional_branch_df (rtx operands[]) + rtx condition; + rtx cmp_op0 = XEXP (operands[0], 0); + rtx cmp_op1 = XEXP (operands[0], 1); +- rtx comp_reg = gen_reg_rtx (DImode); ++ rtx comp_reg = gen_reg_rtx (Pmode); + + emit_insn (gen_cstoredf4 (comp_reg, operands[0], cmp_op0, cmp_op1)); +- condition = gen_rtx_NE (DImode, comp_reg, const0_rtx); ++ condition = gen_rtx_NE (Pmode, comp_reg, const0_rtx); + emit_jump_insn (gen_long_condjump (condition, operands[3])); + } + +@@ -3798,8 +3848,8 @@ microblaze_expand_divide (rtx operands[]) + { + /* Table lookup software divides. Works for all (nr/dr) where (0 <= nr,dr <= 15). */ + +- rtx regt1 = gen_reg_rtx (SImode); +- rtx reg18 = gen_rtx_REG (SImode, R_TMP); ++ rtx regt1 = gen_reg_rtx (Pmode); ++ rtx reg18 = gen_rtx_REG (Pmode, R_TMP); + rtx regqi = gen_reg_rtx (QImode); + rtx_code_label *div_label = gen_label_rtx (); + rtx_code_label *div_end_label = gen_label_rtx (); +@@ -3807,17 +3857,31 @@ microblaze_expand_divide (rtx operands[]) + rtx mem_rtx; + rtx ret; + rtx_insn *jump, *cjump, *insn; +- +- insn = emit_insn (gen_iorsi3 (regt1, operands[1], operands[2])); +- cjump = emit_jump_insn_after (gen_cbranchsi4 ( +- gen_rtx_GTU (SImode, regt1, GEN_INT (15)), ++ ++ if (TARGET_MB_64) { ++ insn = emit_insn (gen_iordi3 (regt1, operands[1], operands[2])); ++ cjump = emit_jump_insn_after (gen_cbranchdi4 ( ++ gen_rtx_GTU (Pmode, regt1, GEN_INT (15)), ++ regt1, GEN_INT (15), div_label), insn); ++ } ++ else { ++ insn = emit_insn (gen_iorsi3 (regt1, operands[1], operands[2])); ++ cjump = emit_jump_insn_after (gen_cbranchsi4 ( ++ gen_rtx_GTU (Pmode, regt1, GEN_INT (15)), + regt1, GEN_INT (15), div_label), insn); ++ } + LABEL_NUSES (div_label) = 1; + JUMP_LABEL (cjump) = div_label; +- emit_insn (gen_rtx_CLOBBER (SImode, reg18)); ++ emit_insn (gen_rtx_CLOBBER (Pmode, reg18)); + +- emit_insn (gen_ashlsi3_bshift (regt1, operands[1], GEN_INT(4))); +- emit_insn (gen_addsi3 (regt1, regt1, operands[2])); ++ if (TARGET_MB_64) { ++ emit_insn (gen_ashldi3_long (regt1, operands[1], GEN_INT(4))); ++ emit_insn (gen_adddi3 (regt1, regt1, operands[2])); ++ } ++ else { ++ emit_insn (gen_ashlsi3_bshift (regt1, operands[1], GEN_INT(4))); ++ emit_insn (gen_addsi3 (regt1, regt1, operands[2])); ++ } + mem_rtx = gen_rtx_MEM (QImode, + gen_rtx_PLUS (QImode, regt1, div_table_rtx)); + +@@ -3964,7 +4028,7 @@ insert_wic_for_ilb_runout (rtx_insn *first) + { + insn = + emit_insn_before (gen_iprefetch +- (gen_int_mode (addr_offset, SImode)), ++ (gen_int_mode (addr_offset, Pmode)), + before_4); + recog_memoized (insn); + INSN_LOCATION (insn) = INSN_LOCATION (before_4); +@@ -3974,7 +4038,27 @@ insert_wic_for_ilb_runout (rtx_insn *first) + } + } + } +- ++ ++/* Set the names for various arithmetic operations according to the ++ * MICROBLAZE ABI. */ ++static void ++microblaze_init_libfuncs (void) ++{ ++ set_optab_libfunc (smod_optab, SImode, "__modsi3"); ++ set_optab_libfunc (sdiv_optab, SImode, "__divsi3"); ++ set_optab_libfunc (smul_optab, SImode, "__mulsi3"); ++ set_optab_libfunc (umod_optab, SImode, "__umodsi3"); ++ set_optab_libfunc (udiv_optab, SImode, "__udivsi3"); ++ ++ if (TARGET_MB_64) ++ { ++ set_optab_libfunc (smod_optab, DImode, "__moddi3"); ++ set_optab_libfunc (sdiv_optab, DImode, "__divdi3"); ++ set_optab_libfunc (smul_optab, DImode, "__muldi3"); ++ set_optab_libfunc (umod_optab, DImode, "__umoddi3"); ++ set_optab_libfunc (udiv_optab, DImode, "__udivdi3"); ++ } ++} + /* Insert instruction prefetch instruction at the fall + through path of the function call. */ + +@@ -4127,6 +4211,17 @@ microblaze_starting_frame_offset (void) + #undef TARGET_LRA_P + #define TARGET_LRA_P hook_bool_void_false + ++#ifdef TARGET_MB_64 ++#undef TARGET_ASM_ALIGNED_DI_OP ++#define TARGET_ASM_ALIGNED_DI_OP "\t.dword\t" ++ ++#undef TARGET_ASM_ALIGNED_HI_OP ++#define TARGET_ASM_ALIGNED_HI_OP "\t.hword\t" ++ ++#undef TARGET_ASM_ALIGNED_SI_OP ++#define TARGET_ASM_ALIGNED_SI_OP "\t.word\t" ++#endif ++ + #undef TARGET_FRAME_POINTER_REQUIRED + #define TARGET_FRAME_POINTER_REQUIRED microblaze_frame_pointer_required + +@@ -4136,6 +4231,9 @@ microblaze_starting_frame_offset (void) + #undef TARGET_TRAMPOLINE_INIT + #define TARGET_TRAMPOLINE_INIT microblaze_trampoline_init + ++#undef TARGET_INIT_LIBFUNCS ++#define TARGET_INIT_LIBFUNCS microblaze_init_libfuncs ++ + #undef TARGET_PROMOTE_FUNCTION_MODE + #define TARGET_PROMOTE_FUNCTION_MODE default_promote_function_mode_always_promote + +diff --git a/gcc/config/microblaze/microblaze.h b/gcc/config/microblaze/microblaze.h +index 72fbee5..1e60513 100644 +--- a/gcc/config/microblaze/microblaze.h ++++ b/gcc/config/microblaze/microblaze.h +@@ -173,7 +173,6 @@ extern enum pipeline_type microblaze_pipe; + + /* Generate DWARF exception handling info. */ + #define DWARF2_UNWIND_INFO 1 +- + /* Don't generate .loc operations. */ + #define DWARF2_ASM_LINE_DEBUG_INFO 0 + +@@ -206,38 +205,51 @@ extern enum pipeline_type microblaze_pipe; + ((flag_pic || GLOBAL) ? DW_EH_PE_aligned : DW_EH_PE_absptr) + + /* Use DWARF 2 debugging information by default. */ +-#define DWARF2_DEBUGGING_INFO ++#define DWARF2_DEBUGGING_INFO 1 + #define PREFERRED_DEBUGGING_TYPE DWARF2_DEBUG ++#define DWARF2_ADDR_SIZE 4 + + /* Target machine storage layout */ + + #define BITS_BIG_ENDIAN 0 + #define BYTES_BIG_ENDIAN (TARGET_LITTLE_ENDIAN == 0) + #define WORDS_BIG_ENDIAN (BYTES_BIG_ENDIAN) +-#define BITS_PER_WORD 32 +-#define UNITS_PER_WORD 4 ++//#define BITS_PER_WORD 64 ++//Revisit ++#define MAX_BITS_PER_WORD 64 ++#define UNITS_PER_WORD (TARGET_MB_64 ? 8 : 4) ++//#define MIN_UNITS_PER_WORD (TARGET_MB_64 ? 8 : 4) ++//#define UNITS_PER_WORD 4 + #define MIN_UNITS_PER_WORD 4 + #define INT_TYPE_SIZE 32 + #define SHORT_TYPE_SIZE 16 +-#define LONG_TYPE_SIZE 64 ++#define LONG_TYPE_SIZE (TARGET_MB_64 ? 64 : 32) + #define LONG_LONG_TYPE_SIZE 64 + #define FLOAT_TYPE_SIZE 32 + #define DOUBLE_TYPE_SIZE 64 + #define LONG_DOUBLE_TYPE_SIZE 64 +-#define POINTER_SIZE 32 +-#define PARM_BOUNDARY 32 +-#define FUNCTION_BOUNDARY 32 +-#define EMPTY_FIELD_BOUNDARY 32 ++#define POINTER_SIZE (TARGET_MB_64 ? 64 : 32) ++//#define WIDEST_HARDWARE_FP_SIZE 64 ++//#define POINTERS_EXTEND_UNSIGNED 1 ++#define PARM_BOUNDARY (TARGET_MB_64 ? 64 : 32) ++#define FUNCTION_BOUNDARY (TARGET_MB_64 ? 64 : 32) ++#define EMPTY_FIELD_BOUNDARY (TARGET_MB_64 ? 64 : 32) + #define STRUCTURE_SIZE_BOUNDARY 8 +-#define BIGGEST_ALIGNMENT 32 ++#define BIGGEST_ALIGNMENT (TARGET_MB_64 ? 64 : 32) + #define STRICT_ALIGNMENT 1 + #define PCC_BITFIELD_TYPE_MATTERS 1 + ++//#define MAX_FIXED_MODE_SIZE GET_MODE_BITSIZE (TARGET_MB_64 ? TImode : DImode) + #undef SIZE_TYPE +-#define SIZE_TYPE "unsigned int" ++#define SIZE_TYPE (TARGET_MB_64 ? "long unsigned int" : "unsigned int") + + #undef PTRDIFF_TYPE +-#define PTRDIFF_TYPE "int" ++#define PTRDIFF_TYPE (TARGET_MB_64 ? "long int" : "int") ++ ++/*#undef INTPTR_TYPE ++#define INTPTR_TYPE (TARGET_MB_64 ? "long int" : "int")*/ ++#undef UINTPTR_TYPE ++#define UINTPTR_TYPE (TARGET_MB_64 ? "long unsigned int" : "unsigned int") + + #define DATA_ALIGNMENT(TYPE, ALIGN) \ + ((((ALIGN) < BITS_PER_WORD) \ +@@ -253,12 +265,12 @@ extern enum pipeline_type microblaze_pipe; + #define WORD_REGISTER_OPERATIONS 1 + + #define LOAD_EXTEND_OP(MODE) ZERO_EXTEND +- ++/* + #define PROMOTE_MODE(MODE, UNSIGNEDP, TYPE) \ + if (GET_MODE_CLASS (MODE) == MODE_INT \ +- && GET_MODE_SIZE (MODE) < 4) \ +- (MODE) = SImode; +- ++ && GET_MODE_SIZE (MODE) < (TARGET_MB_64 ? 8 : 4)) \ ++ (MODE) = TARGET_MB_64 ? DImode : SImode; ++*/ + /* Standard register usage. */ + + /* On the MicroBlaze, we have 32 integer registers */ +@@ -438,13 +450,16 @@ extern struct microblaze_frame_info current_frame_info; + #define FIRST_PARM_OFFSET(FNDECL) (UNITS_PER_WORD) + + #define ARG_POINTER_CFA_OFFSET(FNDECL) 0 ++#define DWARF_CIE_DATA_ALIGNMENT -1 + + #define REG_PARM_STACK_SPACE(FNDECL) microblaze_reg_parm_stack_space(FNDECL) + + #define OUTGOING_REG_PARM_STACK_SPACE(FNTYPE) 1 + +-#define STACK_BOUNDARY 32 ++#define STACK_BOUNDARY (TARGET_MB_64 ? 64 : 32) + ++#define PREFERRED_STACK_BOUNDARY (TARGET_MB_64 ? 64 : 32) ++ + #define NUM_OF_ARGS 6 + + #define GP_RETURN (GP_REG_FIRST + MB_ABI_INT_RETURN_VAL_REGNUM) +@@ -455,12 +470,15 @@ extern struct microblaze_frame_info current_frame_info; + #define MAX_ARGS_IN_REGISTERS MB_ABI_MAX_ARG_REGS + + #define LIBCALL_VALUE(MODE) \ ++ gen_rtx_REG (MODE,GP_RETURN) ++ ++/*#define LIBCALL_VALUE(MODE) \ + gen_rtx_REG ( \ + ((GET_MODE_CLASS (MODE) != MODE_INT \ + || GET_MODE_SIZE (MODE) >= 4) \ + ? (MODE) \ + : SImode), GP_RETURN) +- ++*/ + /* 1 if N is a possible register number for a function value. + On the MicroBlaze, R2 R3 are the only register thus used. + Currently, R2 are only implemented here (C has no complex type) */ +@@ -500,7 +518,7 @@ typedef struct microblaze_args + /* 4 insns + 2 words of data. */ + #define TRAMPOLINE_SIZE (6 * 4) + +-#define TRAMPOLINE_ALIGNMENT 32 ++#define TRAMPOLINE_ALIGNMENT 64 + + #define REGNO_OK_FOR_BASE_P(regno) microblaze_regno_ok_for_base_p ((regno), 1) + +@@ -533,13 +551,13 @@ typedef struct microblaze_args + addresses which require two reload registers. */ + #define LEGITIMATE_PIC_OPERAND_P(X) microblaze_legitimate_pic_operand (X) + +-#define CASE_VECTOR_MODE (SImode) ++#define CASE_VECTOR_MODE (TARGET_MB_64? DImode:SImode) + + #ifndef DEFAULT_SIGNED_CHAR + #define DEFAULT_SIGNED_CHAR 1 + #endif + +-#define MOVE_MAX 4 ++#define MOVE_MAX (TARGET_MB_64 ? 8 : 4) + #define MAX_MOVE_MAX 8 + + #define SLOW_BYTE_ACCESS 1 +@@ -549,7 +567,7 @@ typedef struct microblaze_args + + #define SHIFT_COUNT_TRUNCATED 1 + +-#define Pmode SImode ++#define Pmode (TARGET_MB_64? DImode:SImode) + + #define FUNCTION_MODE SImode + +@@ -711,6 +729,7 @@ do { \ + + #undef TARGET_ASM_OUTPUT_IDENT + #define TARGET_ASM_OUTPUT_IDENT microblaze_asm_output_ident ++//#define TARGET_ASM_OUTPUT_IDENT default_asm_output_ident_directive + + /* Default to -G 8 */ + #ifndef MICROBLAZE_DEFAULT_GVALUE +diff --git a/gcc/config/microblaze/microblaze.md b/gcc/config/microblaze/microblaze.md +index 0cd0441..0f41ac6 100644 +--- a/gcc/config/microblaze/microblaze.md ++++ b/gcc/config/microblaze/microblaze.md +@@ -26,6 +26,7 @@ + ;; Constants + ;;---------------------------------------------------- + (define_constants [ ++ (R_Z 0) ;; For reg r0 + (R_SP 1) ;; Stack pointer reg + (R_SR 15) ;; Sub-routine return addr reg + (R_IR 14) ;; Interrupt return addr reg +@@ -539,6 +540,7 @@ + + ;; Add 2 SImode integers [ src1 = reg ; src2 = arith ; dest = reg ] + ;; Leave carry as is ++ + (define_insn "addsi3" + [(set (match_operand:SI 0 "register_operand" "=d,d,d") + (plus:SI (match_operand:SI 1 "reg_or_0_operand" "%dJ,dJ,dJ") +@@ -560,23 +562,38 @@ + + ;; Adding 2 DI operands in register or reg/imm + +-(define_insn "adddi3_long" ++(define_expand "adddi3" ++ [(set (match_operand:DI 0 "register_operand" "") ++ (plus:DI (match_operand:DI 1 "register_operand" "") ++ (match_operand:DI 2 "arith_plus_operand" "")))] ++"" ++{ ++ if (TARGET_MB_64) ++ { ++ if (GET_CODE (operands[2]) == CONST_INT && ++ INTVAL(operands[2]) < (long)-549755813888 && ++ INTVAL(operands[2]) > (long)549755813887) ++ FAIL; ++ } ++}) ++ ++(define_insn "*adddi3_long" + [(set (match_operand:DI 0 "register_operand" "=d,d") +- (plus:DI (match_operand:DI 1 "reg_or_0_operand" "%dJ,dJ") ++ (plus:DI (match_operand:DI 1 "register_operand" "%d,d") + (match_operand:DI 2 "arith_plus_operand" "d,K")))] + "TARGET_MB_64" + "@ +- addlk\t%0,%z1,%2 +- addlik\t%0,%z1,%2" +- [(set_attr "type" "arith,arith") +- (set_attr "mode" "DI,DI") ++ addlk\t%0,%1,%2 ++ addlik\t%0,%1,%2 #N10" ++ [(set_attr "type" "darith,no_delay_arith") ++ (set_attr "mode" "DI") + (set_attr "length" "4,4")]) + +-(define_insn "adddi3" ++(define_insn "*adddi3_all" + [(set (match_operand:DI 0 "register_operand" "=d,d") + (plus:DI (match_operand:DI 1 "register_operand" "%d,d") + (match_operand:DI 2 "arith_operand" "d,i")))] +- "" ++ "!TARGET_MB_64" + "@ + add\t%L0,%L1,%L2\;addc\t%M0,%M1,%M2 + addi\t%L0,%L1,%j2\;addic\t%M0,%M1,%h2" +@@ -603,7 +620,7 @@ + (define_insn "iprefetch" + [(unspec [(match_operand:SI 0 "const_int_operand" "n")] UNSPEC_IPREFETCH) + (clobber (mem:BLK (scratch)))] +- "TARGET_PREFETCH" ++ "TARGET_PREFETCH && !TARGET_MB_64" + { + operands[2] = gen_rtx_REG (SImode, MB_ABI_ASM_TEMP_REGNUM); + return "mfs\t%2,rpc\n\twic\t%2,r0"; +@@ -616,23 +633,33 @@ + ;; Double Precision Subtraction + ;;---------------------------------------------------------------- + +-(define_insn "subdi3_long" +- [(set (match_operand:DI 0 "register_operand" "=d,d") +- (minus:DI (match_operand:DI 1 "register_operand" "d,d") +- (match_operand:DI 2 "register_operand" "d,n")))] ++(define_expand "subdi3" ++ [(set (match_operand:DI 0 "register_operand" "") ++ (minus:DI (match_operand:DI 1 "register_operand" "") ++ (match_operand:DI 2 "arith_operand" "")))] ++"" ++" ++{ ++}") ++ ++(define_insn "subsidi3" ++ [(set (match_operand:DI 0 "register_operand" "=d,d,d") ++ (minus:DI (match_operand:DI 1 "register_operand" "d,d,d") ++ (match_operand:DI 2 "arith_operand" "d,K,n")))] + "TARGET_MB_64" + "@ + rsubl\t%0,%2,%1 +- addlik\t%0,%z1,-%2" +- [(set_attr "type" "darith") +- (set_attr "mode" "DI,DI") +- (set_attr "length" "4,4")]) ++ addik\t%0,%z1,-%2 ++ addik\t%0,%z1,-%2" ++ [(set_attr "type" "arith,no_delay_arith,no_delay_arith") ++ (set_attr "mode" "DI") ++ (set_attr "length" "4,4,4")]) + +-(define_insn "subdi3" ++(define_insn "subdi3_small" + [(set (match_operand:DI 0 "register_operand" "=&d") + (minus:DI (match_operand:DI 1 "register_operand" "d") + (match_operand:DI 2 "register_operand" "d")))] +- "" ++ "!TARGET_MB_64" + "rsub\t%L0,%L2,%L1\;rsubc\t%M0,%M2,%M1" + [(set_attr "type" "darith") + (set_attr "mode" "DI") +@@ -661,7 +688,7 @@ + (mult:DI + (sign_extend:DI (match_operand:SI 1 "register_operand" "d")) + (sign_extend:DI (match_operand:SI 2 "register_operand" "d"))))] +- "!TARGET_SOFT_MUL && TARGET_MULTIPLY_HIGH" ++ "!TARGET_SOFT_MUL && TARGET_MULTIPLY_HIGH && !TARGET_MB_64" + "mul\t%L0,%1,%2\;mulh\t%M0,%1,%2" + [(set_attr "type" "no_delay_arith") + (set_attr "mode" "DI") +@@ -672,7 +699,7 @@ + (mult:DI + (zero_extend:DI (match_operand:SI 1 "register_operand" "d")) + (zero_extend:DI (match_operand:SI 2 "register_operand" "d"))))] +- "!TARGET_SOFT_MUL && TARGET_MULTIPLY_HIGH" ++ "!TARGET_SOFT_MUL && TARGET_MULTIPLY_HIGH && !TARGET_MB_64" + "mul\t%L0,%1,%2\;mulhu\t%M0,%1,%2" + [(set_attr "type" "no_delay_arith") + (set_attr "mode" "DI") +@@ -683,7 +710,7 @@ + (mult:DI + (zero_extend:DI (match_operand:SI 1 "register_operand" "d")) + (sign_extend:DI (match_operand:SI 2 "register_operand" "d"))))] +- "!TARGET_SOFT_MUL && TARGET_MULTIPLY_HIGH" ++ "!TARGET_SOFT_MUL && TARGET_MULTIPLY_HIGH && !TARGET_MB_64" + "mul\t%L0,%1,%2\;mulhsu\t%M0,%2,%1" + [(set_attr "type" "no_delay_arith") + (set_attr "mode" "DI") +@@ -787,7 +814,7 @@ + (match_operand:SI 4 "arith_operand")]) + (label_ref (match_operand 5)) + (pc)))] +- "TARGET_HARD_FLOAT" ++ "TARGET_HARD_FLOAT && !TARGET_MB_64" + [(set (match_dup 1) (match_dup 3))] + + { +@@ -817,6 +844,15 @@ + (set_attr "mode" "SI") + (set_attr "length" "4")]) + ++(define_insn "negsi_long" ++ [(set (match_operand:SI 0 "register_operand" "=d") ++ (neg:SI (match_operand:DI 1 "register_operand" "d")))] ++ "" ++ "rsubk\t%0,%1,r0" ++ [(set_attr "type" "arith") ++ (set_attr "mode" "SI") ++ (set_attr "length" "4")]) ++ + (define_insn "negdi2_long" + [(set (match_operand:DI 0 "register_operand" "=d") + (neg:DI (match_operand:DI 1 "register_operand" "d")))] +@@ -845,16 +881,24 @@ + (set_attr "mode" "SI") + (set_attr "length" "4")]) + +-(define_insn "one_cmpldi2_long" ++(define_expand "one_cmpldi2" ++ [(set (match_operand:DI 0 "register_operand" "") ++ (not:DI (match_operand:DI 1 "register_operand" "")))] ++ "" ++ " ++{ ++}") ++ ++(define_insn "" + [(set (match_operand:DI 0 "register_operand" "=d") +- (not:DI (match_operand:DI 1 "register_operand" "d")))] ++ (not:DI (match_operand:DI 1 "arith_operand" "d")))] + "TARGET_MB_64" + "xorli\t%0,%1,-1" +- [(set_attr "type" "arith") ++ [(set_attr "type" "no_delay_arith") + (set_attr "mode" "DI") + (set_attr "length" "4")]) + +-(define_insn "*one_cmpldi2" ++(define_insn "" + [(set (match_operand:DI 0 "register_operand" "=d") + (not:DI (match_operand:DI 1 "register_operand" "d")))] + "" +@@ -869,7 +913,8 @@ + (not:DI (match_operand:DI 1 "register_operand" "")))] + "reload_completed + && GET_CODE (operands[0]) == REG && GP_REG_P (REGNO (operands[0])) +- && GET_CODE (operands[1]) == REG && GP_REG_P (REGNO (operands[1]))" ++ && GET_CODE (operands[1]) == REG && GP_REG_P (REGNO (operands[1])) ++ && !TARGET_MB_64" + + [(set (subreg:SI (match_dup 0) 0) (not:SI (subreg:SI (match_dup 1) 0))) + (set (subreg:SI (match_dup 0) 4) (not:SI (subreg:SI (match_dup 1) 4)))] +@@ -881,18 +926,17 @@ + ;;---------------------------------------------------------------- + + (define_insn "anddi3" +- [(set (match_operand:DI 0 "register_operand" "=d,d") +- (and:DI (match_operand:DI 1 "arith_operand" "d,d") +- (match_operand:DI 2 "arith_operand" "d,K")))] ++ [(set (match_operand:DI 0 "register_operand" "=d,d,d") ++ (and:DI (match_operand:DI 1 "arith_operand" "d,d,d") ++ (match_operand:DI 2 "arith_operand" "d,K,I")))] + "TARGET_MB_64" + "@ + andl\t%0,%1,%2 +- andli\t%0,%1,%2 #andl1" +- ;; andli\t%0,%1,%2 #andl3 +- ;; andli\t%0,%1,%2 #andl2 +- [(set_attr "type" "arith,arith") +- (set_attr "mode" "DI,DI") +- (set_attr "length" "4,4")]) ++ andli\t%0,%1,%2 #andl2 ++ andli\t%0,%1,%2 #andl3" ++ [(set_attr "type" "arith,no_delay_arith,no_delay_arith") ++ (set_attr "mode" "DI,DI,DI") ++ (set_attr "length" "4,4,4")]) + + (define_insn "andsi3" + [(set (match_operand:SI 0 "register_operand" "=d,d,d,d") +@@ -917,7 +961,7 @@ + "@ + orl\t%0,%1,%2 + orli\t%0,%1,%2 #andl1" +- [(set_attr "type" "arith,arith") ++ [(set_attr "type" "arith,no_delay_arith") + (set_attr "mode" "DI,DI") + (set_attr "length" "4,4")]) + +@@ -943,7 +987,7 @@ + "@ + xorl\t%0,%1,%2 + xorli\t%0,%1,%2 #andl1" +- [(set_attr "type" "arith,arith") ++ [(set_attr "type" "arith,no_delay_arith") + (set_attr "mode" "DI,DI") + (set_attr "length" "4,4")]) + +@@ -1016,26 +1060,6 @@ + (set_attr "mode" "SI") + (set_attr "length" "4")]) + +-;;(define_expand "extendqidi2" +-;; [(set (match_operand:DI 0 "register_operand" "=d") +-;; (sign_extend:DI (match_operand:QI 1 "general_operand" "d")))] +-;; "TARGET_MB_64" +-;; { +-;; if (GET_CODE (operands[1]) != REG) +-;; FAIL; +-;; } +-;;) +- +- +-;;(define_insn "extendqidi2" +-;; [(set (match_operand:DI 0 "register_operand" "=d") +-;; (sign_extend:DI (match_operand:QI 1 "register_operand" "d")))] +-;; "TARGET_MB_64" +-;; "sextl8\t%0,%1" +-;; [(set_attr "type" "arith") +-;; (set_attr "mode" "DI") +-;; (set_attr "length" "4")]) +- + (define_insn "extendhisi2" + [(set (match_operand:SI 0 "register_operand" "=d") + (sign_extend:SI (match_operand:HI 1 "register_operand" "d")))] +@@ -1058,6 +1082,27 @@ + ;; Those for integer source operand are ordered + ;; widest source type first. + ++(define_insn "extendsidi2_long" ++ [(set (match_operand:DI 0 "register_operand" "=d,d,d") ++ (sign_extend:DI (match_operand:SI 1 "nonimmediate_operand" "d,R,m")))] ++ "TARGET_MB_64" ++ { ++ switch (which_alternative) ++ { ++ case 0: ++ return "sextl32\t%0,%1"; ++ case 1: ++ case 2: ++ { ++ output_asm_insn ("ll%i1\t%0,%1", operands); ++ return "sextl32\t%0,%0"; ++ } ++ } ++ } ++ [(set_attr "type" "multi,multi,multi") ++ (set_attr "mode" "DI") ++ (set_attr "length" "4,8,8")]) ++ + (define_insn "extendsidi2" + [(set (match_operand:DI 0 "register_operand" "=d,d,d") + (sign_extend:DI (match_operand:SI 1 "nonimmediate_operand" "d,R,m")))] +@@ -1088,68 +1133,117 @@ + ;; Unlike most other insns, the move insns can't be split with + ;; different predicates, because register spilling and other parts of + ;; the compiler, have memoized the insn number already. ++;; //} + + (define_expand "movdi" + [(set (match_operand:DI 0 "nonimmediate_operand" "") + (match_operand:DI 1 "general_operand" ""))] + "" + { +- /* If operands[1] is a constant address illegal for pic, then we need to +- handle it just like microblaze_legitimize_address does. */ +- if (flag_pic && pic_address_needs_scratch (operands[1])) ++ if (TARGET_MB_64) ++ { ++ if (microblaze_expand_move (DImode, operands)) DONE; ++ } ++ else + { ++ /* If operands[1] is a constant address illegal for pic, then we need to ++ handle it just like microblaze_legitimize_address does. */ ++ if (flag_pic && pic_address_needs_scratch (operands[1])) ++ { + rtx temp = force_reg (DImode, XEXP (XEXP (operands[1], 0), 0)); + rtx temp2 = XEXP (XEXP (operands[1], 0), 1); + emit_move_insn (operands[0], gen_rtx_PLUS (DImode, temp, temp2)); + DONE; +- } +- +- +- if ((reload_in_progress | reload_completed) == 0 +- && !register_operand (operands[0], DImode) +- && !register_operand (operands[1], DImode) +- && (((GET_CODE (operands[1]) != CONST_INT || INTVAL (operands[1]) != 0) +- && operands[1] != CONST0_RTX (DImode)))) +- { ++ } + +- rtx temp = force_reg (DImode, operands[1]); +- emit_move_insn (operands[0], temp); +- DONE; ++ if ((reload_in_progress | reload_completed) == 0 ++ && !register_operand (operands[0], DImode) ++ && !register_operand (operands[1], DImode) ++ && (((GET_CODE (operands[1]) != CONST_INT || INTVAL (operands[1]) != 0) ++ && operands[1] != CONST0_RTX (DImode)))) ++ { ++ rtx temp = force_reg (DImode, operands[1]); ++ emit_move_insn (operands[0], temp); ++ DONE; ++ } + } + } + ) + ++;; Added for status registers ++(define_insn "movdi_status" ++ [(set (match_operand:DI 0 "register_operand" "=d,d,z") ++ (match_operand:DI 1 "register_operand" "z,d,d"))] ++ "microblaze_is_interrupt_variant () && TARGET_MB_64" ++ "@ ++ mfs\t%0,%1 #mfs ++ addlk\t%0,%1,r0 #add movdi ++ mts\t%0,%1 #mts" ++ [(set_attr "type" "move") ++ (set_attr "mode" "DI") ++ (set_attr "length" "12")]) + +-(define_insn "*movdi_internal_64" +- [(set (match_operand:DI 0 "nonimmediate_operand" "=d,d,d,d,d,R,o") +- (match_operand:DI 1 "general_operand" " d,K,J,R,o,d,d"))] +- "TARGET_MB_64 && (INTVAL(operands[1]) < 0x7fffffffff) && (INTVAL(operands[1]) > 0xffffff8000000000)" ++;; This move will be not be moved to delay slot. ++(define_insn "*movdi_internal3" ++ [(set (match_operand:DI 0 "nonimmediate_operand" "=d,d,d") ++ (match_operand:DI 1 "immediate_operand" "J,I,Mnis"))] ++ "TARGET_MB_64 && (register_operand (operands[0], DImode) && ++ (GET_CODE (operands[1]) == CONST_INT && ++ (INTVAL (operands[1]) <= (long)549755813887 && INTVAL (operands[1]) >= (long)-549755813888)))" ++ "@ ++ addlk\t%0,r0,r0\t ++ addlik\t%0,r0,%1\t #N1 %X1 ++ addlik\t%0,r0,%1\t #N2 %X1" ++ [(set_attr "type" "arith,no_delay_arith,no_delay_arith") ++ (set_attr "mode" "DI") ++ (set_attr "length" "4")]) ++ ++;; This move may be used for PLT label operand ++(define_insn "*movdi_internal5_pltop" ++ [(set (match_operand:DI 0 "register_operand" "=d,d") ++ (match_operand:DI 1 "call_insn_operand" ""))] ++ "TARGET_MB_64 && (register_operand (operands[0], Pmode) && ++ PLT_ADDR_P (operands[1]))" ++ { ++ gcc_unreachable (); ++ } ++ [(set_attr "type" "load") ++ (set_attr "mode" "DI") ++ (set_attr "length" "4")]) ++ ++(define_insn "*movdi_internal2" ++ [(set (match_operand:DI 0 "nonimmediate_operand" "=d,d,d, d,d,R,m") ++ (match_operand:DI 1 "move_src_operand" " d,I,Mnis,R,m,dJ,dJ"))] ++ "TARGET_MB_64" + { + switch (which_alternative) + { + case 0: +- return "addlk\t%0,%1"; +- case 1: +- return "addlik\t%0,r0,%1"; +- case 2: +- return "addlk\t%0,r0,r0"; +- case 3: +- case 4: +- return "lli\t%0,%1"; +- case 5: +- case 6: +- return "sli\t%1,%0"; +- } +- return "unreachable"; +- } +- [(set_attr "type" "no_delay_move,no_delay_arith,no_delay_arith,no_delay_load,no_delay_load,no_delay_store,no_delay_store") ++ return "addlk\t%0,%1,r0"; ++ case 1: ++ case 2: ++ if (GET_CODE (operands[1]) == CONST_INT && ++ (INTVAL (operands[1]) > (long)549755813887 || INTVAL (operands[1]) < (long)-549755813888)) ++ return "addlik\t%0,r0,%h1\n\tbsllli\t%0,%0,32\n\taddlik\t%0,%0,%j1 #li => la"; ++ else ++ return "addlik\t%0,r0,%1"; ++ case 3: ++ case 4: ++ return "ll%i1\t%0,%1"; ++ case 5: ++ case 6: ++ return "sl%i0\t%z1,%0"; ++ } ++ } ++ [(set_attr "type" "load,no_delay_load,no_delay_load,no_delay_load,no_delay_load,no_delay_store,no_delay_store") + (set_attr "mode" "DI") +- (set_attr "length" "8,8,8,8,12,8,12")]) ++ (set_attr "length" "4,4,12,4,8,4,8")]) ++ + + (define_insn "*movdi_internal" + [(set (match_operand:DI 0 "nonimmediate_operand" "=d,d,d,d,d,R,o") + (match_operand:DI 1 "general_operand" " d,i,J,R,o,d,d"))] +- "" ++ "!TARGET_MB_64" + { + switch (which_alternative) + { +@@ -1181,7 +1275,8 @@ + "reload_completed + && GET_CODE (operands[0]) == REG && GP_REG_P (REGNO (operands[0])) + && GET_CODE (operands[1]) == REG && GP_REG_P (REGNO (operands[1])) +- && (REGNO(operands[0]) == (REGNO(operands[1]) + 1))" ++ && (REGNO(operands[0]) == (REGNO(operands[1]) + 1)) ++ && !(TARGET_MB_64)" + + [(set (subreg:SI (match_dup 0) 4) (subreg:SI (match_dup 1) 4)) + (set (subreg:SI (match_dup 0) 0) (subreg:SI (match_dup 1) 0))] +@@ -1193,12 +1288,22 @@ + "reload_completed + && GET_CODE (operands[0]) == REG && GP_REG_P (REGNO (operands[0])) + && GET_CODE (operands[1]) == REG && GP_REG_P (REGNO (operands[1])) +- && (REGNO (operands[0]) != (REGNO (operands[1]) + 1))" ++ && (REGNO (operands[0]) != (REGNO (operands[1]) + 1)) ++ && !(TARGET_MB_64)" + + [(set (subreg:SI (match_dup 0) 0) (subreg:SI (match_dup 1) 0)) + (set (subreg:SI (match_dup 0) 4) (subreg:SI (match_dup 1) 4))] + "") + ++(define_insn "movdi_long_int" ++ [(set (match_operand:DI 0 "nonimmediate_operand" "=d") ++ (match_operand:DI 1 "general_operand" "i"))] ++ "" ++ "addlik\t%0,r0,%h1\n\tbsllli\t%0,%0,32\n\taddlik\t%0,%0,%j1 #li => la"; ++ [(set_attr "type" "no_delay_arith") ++ (set_attr "mode" "DI") ++ (set_attr "length" "12")]) ++ + ;; Unlike most other insns, the move insns can't be split with + ;; different predicates, because register spilling and other parts of + ;; the compiler, have memoized the insn number already. +@@ -1270,6 +1375,8 @@ + (set_attr "length" "4,4,8,4,8,4,8")]) + + ++ ++ + ;; 16-bit Integer moves + + ;; Unlike most other insns, the move insns can't be split with +@@ -1302,8 +1409,8 @@ + "@ + addik\t%0,r0,%1\t# %X1 + addk\t%0,%1,r0 +- lhui\t%0,%1 +- lhui\t%0,%1 ++ lhu%i1\t%0,%1 ++ lhu%i1\t%0,%1 + sh%i0\t%z1,%0 + sh%i0\t%z1,%0" + [(set_attr "type" "arith,move,load,no_delay_load,store,no_delay_store") +@@ -1346,7 +1453,7 @@ + lbu%i1\t%0,%1 + lbu%i1\t%0,%1 + sb%i0\t%z1,%0 +- sbi\t%z1,%0" ++ sb%i0\t%z1,%0" + [(set_attr "type" "arith,arith,move,load,no_delay_load,store,no_delay_store") + (set_attr "mode" "QI") + (set_attr "length" "4,4,8,4,8,4,8")]) +@@ -1419,7 +1526,7 @@ + addik\t%0,r0,%F1 + lw%i1\t%0,%1 + sw%i0\t%z1,%0 +- swi\t%z1,%0" ++ sw%i0\t%z1,%0" + [(set_attr "type" "move,no_delay_load,load,no_delay_load,no_delay_load,store,no_delay_store") + (set_attr "mode" "SF") + (set_attr "length" "4,4,4,4,4,4,4")]) +@@ -1458,6 +1565,33 @@ + ;; movdf_internal + ;; Applies to both TARGET_SOFT_FLOAT and TARGET_HARD_FLOAT + ;; ++(define_insn "*movdf_internal_64" ++ [(set (match_operand:DF 0 "nonimmediate_operand" "=d,d,d,d,d,m") ++ (match_operand:DF 1 "general_operand" "d,dG,m,F,T,d"))] ++ "TARGET_MB_64" ++ { ++ switch (which_alternative) ++ { ++ case 0: ++ return "addlk\t%0,%1,r0"; ++ case 1: ++ return "addlk\t%0,r0,r0"; ++ case 2: ++ case 4: ++ return "ll%i1\t%0,%1"; ++ case 3: ++ { ++ return "addlik\t%0,r0,%h1 \n\tbsllli\t%0,%0,32\n\taddlik\t%0,%0,%j1 #Xfer Lo"; ++ } ++ case 5: ++ return "sl%i0\t%1,%0"; ++ } ++ gcc_unreachable (); ++ } ++ [(set_attr "type" "no_delay_move,no_delay_move,no_delay_load,no_delay_load,no_delay_load,no_delay_store") ++ (set_attr "mode" "DF") ++ (set_attr "length" "4,4,4,16,4,4")]) ++ + (define_insn "*movdf_internal" + [(set (match_operand:DF 0 "nonimmediate_operand" "=d,d,d,d,o") + (match_operand:DF 1 "general_operand" "dG,o,F,T,d"))] +@@ -1492,7 +1626,8 @@ + "reload_completed + && GET_CODE (operands[0]) == REG && GP_REG_P (REGNO (operands[0])) + && GET_CODE (operands[1]) == REG && GP_REG_P (REGNO (operands[1])) +- && (REGNO (operands[0]) == (REGNO (operands[1]) + 1))" ++ && (REGNO (operands[0]) == (REGNO (operands[1]) + 1)) ++ && !TARGET_MB_64" + [(set (subreg:SI (match_dup 0) 4) (subreg:SI (match_dup 1) 4)) + (set (subreg:SI (match_dup 0) 0) (subreg:SI (match_dup 1) 0))] + "") +@@ -1503,7 +1638,8 @@ + "reload_completed + && GET_CODE (operands[0]) == REG && GP_REG_P (REGNO (operands[0])) + && GET_CODE (operands[1]) == REG && GP_REG_P (REGNO (operands[1])) +- && (REGNO (operands[0]) != (REGNO (operands[1]) + 1))" ++ && (REGNO (operands[0]) != (REGNO (operands[1]) + 1)) ++ && !TARGET_MB_64" + [(set (subreg:SI (match_dup 0) 0) (subreg:SI (match_dup 1) 0)) + (set (subreg:SI (match_dup 0) 4) (subreg:SI (match_dup 1) 4))] + "") +@@ -2003,6 +2139,31 @@ else + " + ) + ++ ++(define_insn "seq_internal_pat_long" ++ [(set (match_operand:DI 0 "register_operand" "=d") ++ (eq:DI ++ (match_operand:DI 1 "register_operand" "d") ++ (match_operand:DI 2 "register_operand" "d")))] ++ "TARGET_MB_64" ++ "pcmpleq\t%0,%1,%2" ++ [(set_attr "type" "arith") ++ (set_attr "mode" "DI") ++ (set_attr "length" "4")] ++) ++ ++(define_insn "sne_internal_pat_long" ++ [(set (match_operand:DI 0 "register_operand" "=d") ++ (ne:DI ++ (match_operand:DI 1 "register_operand" "d") ++ (match_operand:DI 2 "register_operand" "d")))] ++ "TARGET_MB_64" ++ "pcmplne\t%0,%1,%2" ++ [(set_attr "type" "arith") ++ (set_attr "mode" "DI") ++ (set_attr "length" "4")] ++) ++ + (define_insn "seq_internal_pat" + [(set (match_operand:SI 0 "register_operand" "=d") + (eq:SI +@@ -2063,8 +2224,8 @@ else + (define_expand "cbranchsi4" + [(set (pc) + (if_then_else (match_operator 0 "ordered_comparison_operator" +- [(match_operand:SI 1 "register_operand") +- (match_operand:SI 2 "arith_operand" "I,i")]) ++ [(match_operand 1 "register_operand") ++ (match_operand 2 "arith_operand" "I,i")]) + (label_ref (match_operand 3 "")) + (pc)))] + "" +@@ -2076,13 +2237,13 @@ else + (define_expand "cbranchsi4_reg" + [(set (pc) + (if_then_else (match_operator 0 "ordered_comparison_operator" +- [(match_operand:SI 1 "register_operand") +- (match_operand:SI 2 "register_operand")]) ++ [(match_operand 1 "register_operand") ++ (match_operand 2 "register_operand")]) + (label_ref (match_operand 3 "")) + (pc)))] + "" + { +- microblaze_expand_conditional_branch_reg (SImode, operands); ++ microblaze_expand_conditional_branch_reg (Pmode, operands); + DONE; + }) + +@@ -2107,6 +2268,26 @@ else + (label_ref (match_operand 1)) + (pc)))]) + ++(define_insn "branch_zero64" ++ [(set (pc) ++ (if_then_else (match_operator 0 "ordered_comparison_operator" ++ [(match_operand 1 "register_operand" "d") ++ (const_int 0)]) ++ (match_operand 2 "pc_or_label_operand" "") ++ (match_operand 3 "pc_or_label_operand" ""))) ++ ] ++ "TARGET_MB_64" ++ { ++ if (operands[3] == pc_rtx) ++ return "bea%C0i%?\t%z1,%2"; ++ else ++ return "bea%N0i%?\t%z1,%3"; ++ } ++ [(set_attr "type" "branch") ++ (set_attr "mode" "none") ++ (set_attr "length" "4")] ++) ++ + (define_insn "branch_zero" + [(set (pc) + (if_then_else (match_operator:SI 0 "ordered_comparison_operator" +@@ -2127,6 +2308,47 @@ else + (set_attr "length" "4")] + ) + ++(define_insn "branch_compare64" ++ [(set (pc) ++ (if_then_else (match_operator 0 "cmp_op" ++ [(match_operand 1 "register_operand" "d") ++ (match_operand 2 "register_operand" "d") ++ ]) ++ (label_ref (match_operand 3)) ++ (pc))) ++ (clobber(reg:SI R_TMP))] ++ "TARGET_MB_64" ++ { ++ operands[4] = gen_rtx_REG (SImode, MB_ABI_ASM_TEMP_REGNUM); ++ enum rtx_code code = GET_CODE (operands[0]); ++ ++ if (code == GT || code == LE) ++ { ++ output_asm_insn ("cmp\tr18,%z1,%z2", operands); ++ code = swap_condition (code); ++ } ++ else if (code == GTU || code == LEU) ++ { ++ output_asm_insn ("cmpu\tr18,%z1,%z2", operands); ++ code = swap_condition (code); ++ } ++ else if (code == GE || code == LT) ++ { ++ output_asm_insn ("cmp\tr18,%z2,%z1", operands); ++ } ++ else if (code == GEU || code == LTU) ++ { ++ output_asm_insn ("cmpu\tr18,%z2,%z1", operands); ++ } ++ ++ operands[0] = gen_rtx_fmt_ee (signed_condition (code), SImode, operands[4], const0_rtx); ++ return "bea%C0i%?\tr18,%3"; ++ } ++ [(set_attr "type" "branch") ++ (set_attr "mode" "none") ++ (set_attr "length" "12")] ++) ++ + (define_insn "branch_compare" + [(set (pc) + (if_then_else (match_operator:SI 0 "cmp_op" +@@ -2310,7 +2532,7 @@ else + ;; Indirect jumps. Jump to register values. Assuming absolute jumps + + (define_insn "indirect_jump_internal1" +- [(set (pc) (match_operand:SI 0 "register_operand" "d"))] ++ [(set (pc) (match_operand 0 "register_operand" "d"))] + "" + "bra%?\t%0" + [(set_attr "type" "jump") +@@ -2323,7 +2545,7 @@ else + (use (label_ref (match_operand 1 "" "")))] + "" + { +- gcc_assert (GET_MODE (operands[0]) == Pmode); ++ //gcc_assert (GET_MODE (operands[0]) == Pmode); + + if (!flag_pic) + emit_jump_insn (gen_tablejump_internal1 (operands[0], operands[1])); +@@ -2335,7 +2557,7 @@ else + + (define_insn "tablejump_internal1" + [(set (pc) +- (match_operand:SI 0 "register_operand" "d")) ++ (match_operand 0 "register_operand" "d")) + (use (label_ref (match_operand 1 "" "")))] + "" + "bra%?\t%0 " +@@ -2345,9 +2567,9 @@ else + + (define_expand "tablejump_internal3" + [(parallel [(set (pc) +- (plus:SI (match_operand:SI 0 "register_operand" "d") +- (label_ref:SI (match_operand:SI 1 "" "")))) +- (use (label_ref:SI (match_dup 1)))])] ++ (plus (match_operand 0 "register_operand" "d") ++ (label_ref (match_operand:SI 1 "" "")))) ++ (use (label_ref (match_dup 1)))])] + "" + "" + ) +@@ -2408,7 +2630,7 @@ else + (minus (reg 1) (match_operand 1 "register_operand" ""))) + (set (reg 1) + (minus (reg 1) (match_dup 1)))] +- "" ++ "!TARGET_MB_64" + { + rtx retaddr = gen_rtx_MEM (Pmode, stack_pointer_rtx); + rtx reg = gen_reg_rtx (Pmode); +@@ -2433,7 +2655,7 @@ else + (define_expand "save_stack_block" + [(match_operand 0 "register_operand" "") + (match_operand 1 "register_operand" "")] +- "" ++ "!TARGET_MB_64" + { + emit_move_insn (operands[0], operands[1]); + DONE; +@@ -2443,7 +2665,7 @@ else + (define_expand "restore_stack_block" + [(match_operand 0 "register_operand" "") + (match_operand 1 "register_operand" "")] +- "" ++ "!TARGET_MB_64" + { + rtx retaddr = gen_rtx_MEM (Pmode, stack_pointer_rtx); + rtx rtmp = gen_rtx_REG (SImode, R_TMP); +@@ -2490,7 +2712,7 @@ else + + (define_insn "_internal" + [(any_return) +- (use (match_operand:SI 0 "register_operand" ""))] ++ (use (match_operand 0 "register_operand" ""))] + "" + { + if (microblaze_is_break_handler ()) +@@ -2523,7 +2745,7 @@ else + (define_expand "call" + [(parallel [(call (match_operand 0 "memory_operand" "m") + (match_operand 1 "" "i")) +- (clobber (reg:SI R_SR)) ++ (clobber (reg R_SR)) + (use (match_operand 2 "" "")) + (use (match_operand 3 "" ""))])] + "" +@@ -2543,12 +2765,12 @@ else + + if (GET_CODE (XEXP (operands[0], 0)) == UNSPEC) + emit_call_insn (gen_call_internal_plt0 (operands[0], operands[1], +- gen_rtx_REG (SImode, ++ gen_rtx_REG (Pmode, + GP_REG_FIRST + MB_ABI_SUB_RETURN_ADDR_REGNUM), + pic_offset_table_rtx)); + else + emit_call_insn (gen_call_internal0 (operands[0], operands[1], +- gen_rtx_REG (SImode, ++ gen_rtx_REG (Pmode, + GP_REG_FIRST + MB_ABI_SUB_RETURN_ADDR_REGNUM))); + + DONE; +@@ -2558,7 +2780,7 @@ else + (define_expand "call_internal0" + [(parallel [(call (match_operand 0 "" "") + (match_operand 1 "" "")) +- (clobber (match_operand:SI 2 "" ""))])] ++ (clobber (match_operand 2 "" ""))])] + "" + { + } +@@ -2567,18 +2789,34 @@ else + (define_expand "call_internal_plt0" + [(parallel [(call (match_operand 0 "" "") + (match_operand 1 "" "")) +- (clobber (match_operand:SI 2 "" "")) +- (use (match_operand:SI 3 "" ""))])] ++ (clobber (match_operand 2 "" "")) ++ (use (match_operand 3 "" ""))])] + "" + { + } + ) + ++(define_insn "call_internal_plt_64" ++ [(call (mem (match_operand 0 "call_insn_plt_operand" "")) ++ (match_operand 1 "" "i")) ++ (clobber (reg R_SR)) ++ (use (reg R_GOT))] ++ "flag_pic && TARGET_MB_64" ++ { ++ register rtx target2 = gen_rtx_REG (Pmode, ++ GP_REG_FIRST + MB_ABI_SUB_RETURN_ADDR_REGNUM); ++ gen_rtx_CLOBBER (VOIDmode, target2); ++ return "brealid\tr15,%0\;%#"; ++ } ++ [(set_attr "type" "call") ++ (set_attr "mode" "none") ++ (set_attr "length" "4")]) ++ + (define_insn "call_internal_plt" +- [(call (mem (match_operand:SI 0 "call_insn_plt_operand" "")) +- (match_operand:SI 1 "" "i")) +- (clobber (reg:SI R_SR)) +- (use (reg:SI R_GOT))] ++ [(call (mem (match_operand 0 "call_insn_plt_operand" "")) ++ (match_operand 1 "" "i")) ++ (clobber (reg R_SR)) ++ (use (reg R_GOT))] + "flag_pic" + { + register rtx target2 = gen_rtx_REG (Pmode, +@@ -2590,10 +2828,41 @@ else + (set_attr "mode" "none") + (set_attr "length" "4")]) + ++(define_insn "call_internal1_64" ++ [(call (mem (match_operand:VOID 0 "call_insn_simple_operand" "ri")) ++ (match_operand 1 "" "i")) ++ (clobber (reg R_SR))] ++ "TARGET_MB_64" ++ { ++ register rtx target = operands[0]; ++ register rtx target2 = gen_rtx_REG (Pmode, ++ GP_REG_FIRST + MB_ABI_SUB_RETURN_ADDR_REGNUM); ++ if (GET_CODE (target) == SYMBOL_REF) { ++ if (microblaze_break_function_p (SYMBOL_REF_DECL (target))) { ++ gen_rtx_CLOBBER (VOIDmode, target2); ++ return "breaki\tr16,%0\;%#"; ++ } ++ else { ++ gen_rtx_CLOBBER (VOIDmode, target2); ++ return "brealid\tr15,%0\;%#"; ++ } ++ } else if (GET_CODE (target) == CONST_INT) ++ return "la\t%@,r0,%0\;brald\tr15,%@\;%#"; ++ else if (GET_CODE (target) == REG) ++ return "brald\tr15,%0\;%#"; ++ else { ++ fprintf (stderr,"Unsupported call insn\n"); ++ return NULL; ++ } ++ } ++ [(set_attr "type" "call") ++ (set_attr "mode" "none") ++ (set_attr "length" "4")]) ++ + (define_insn "call_internal1" + [(call (mem (match_operand:VOID 0 "call_insn_simple_operand" "ri")) +- (match_operand:SI 1 "" "i")) +- (clobber (reg:SI R_SR))] ++ (match_operand 1 "" "i")) ++ (clobber (reg R_SR))] + "" + { + register rtx target = operands[0]; +@@ -2627,7 +2896,7 @@ else + [(parallel [(set (match_operand 0 "register_operand" "=d") + (call (match_operand 1 "memory_operand" "m") + (match_operand 2 "" "i"))) +- (clobber (reg:SI R_SR)) ++ (clobber (reg R_SR)) + (use (match_operand 3 "" ""))])] ;; next_arg_reg + "" + { +@@ -2647,13 +2916,13 @@ else + if (GET_CODE (XEXP (operands[1], 0)) == UNSPEC) + emit_call_insn (gen_call_value_intern_plt0 (operands[0], operands[1], + operands[2], +- gen_rtx_REG (SImode, ++ gen_rtx_REG (Pmode, + GP_REG_FIRST + MB_ABI_SUB_RETURN_ADDR_REGNUM), + pic_offset_table_rtx)); + else + emit_call_insn (gen_call_value_internal (operands[0], operands[1], + operands[2], +- gen_rtx_REG (SImode, ++ gen_rtx_REG (Pmode, + GP_REG_FIRST + MB_ABI_SUB_RETURN_ADDR_REGNUM))); + + DONE; +@@ -2665,7 +2934,7 @@ else + [(parallel [(set (match_operand 0 "" "") + (call (match_operand 1 "" "") + (match_operand 2 "" ""))) +- (clobber (match_operand:SI 3 "" "")) ++ (clobber (match_operand 3 "" "")) + ])] + "" + {} +@@ -2675,18 +2944,35 @@ else + [(parallel[(set (match_operand 0 "" "") + (call (match_operand 1 "" "") + (match_operand 2 "" ""))) +- (clobber (match_operand:SI 3 "" "")) +- (use (match_operand:SI 4 "" ""))])] ++ (clobber (match_operand 3 "" "")) ++ (use (match_operand 4 "" ""))])] + "flag_pic" + {} + ) + ++(define_insn "call_value_intern_plt_64" ++ [(set (match_operand:VOID 0 "register_operand" "=d") ++ (call (mem (match_operand 1 "call_insn_plt_operand" "")) ++ (match_operand 2 "" "i"))) ++ (clobber (match_operand 3 "register_operand" "=d")) ++ (use (match_operand 4 "register_operand"))] ++ "flag_pic && TARGET_MB_64" ++ { ++ register rtx target2=gen_rtx_REG (Pmode,GP_REG_FIRST + MB_ABI_SUB_RETURN_ADDR_REGNUM); ++ ++ gen_rtx_CLOBBER (VOIDmode,target2); ++ return "brealid\tr15,%1\;%#"; ++ } ++ [(set_attr "type" "call") ++ (set_attr "mode" "none") ++ (set_attr "length" "4")]) ++ + (define_insn "call_value_intern_plt" + [(set (match_operand:VOID 0 "register_operand" "=d") +- (call (mem (match_operand:SI 1 "call_insn_plt_operand" "")) +- (match_operand:SI 2 "" "i"))) +- (clobber (match_operand:SI 3 "register_operand" "=d")) +- (use (match_operand:SI 4 "register_operand"))] ++ (call (mem (match_operand 1 "call_insn_plt_operand" "")) ++ (match_operand 2 "" "i"))) ++ (clobber (match_operand 3 "register_operand" "=d")) ++ (use (match_operand 4 "register_operand"))] + "flag_pic" + { + register rtx target2=gen_rtx_REG (Pmode,GP_REG_FIRST + MB_ABI_SUB_RETURN_ADDR_REGNUM); +@@ -2698,11 +2984,46 @@ else + (set_attr "mode" "none") + (set_attr "length" "4")]) + ++(define_insn "call_value_intern_64" ++ [(set (match_operand:VOID 0 "register_operand" "=d") ++ (call (mem (match_operand:VOID 1 "call_insn_operand" "ri")) ++ (match_operand 2 "" "i"))) ++ (clobber (match_operand 3 "register_operand" "=d"))] ++ "TARGET_MB_64" ++ { ++ register rtx target = operands[1]; ++ register rtx target2=gen_rtx_REG (Pmode,GP_REG_FIRST + MB_ABI_SUB_RETURN_ADDR_REGNUM); ++ ++ if (GET_CODE (target) == SYMBOL_REF) ++ { ++ gen_rtx_CLOBBER (VOIDmode,target2); ++ if (microblaze_break_function_p (SYMBOL_REF_DECL (target))) ++ return "breaki\tr16,%1\;%#"; ++ else if (SYMBOL_REF_FLAGS (target) & SYMBOL_FLAG_FUNCTION) ++ { ++ return "brealid\tr15,%1\;%#"; ++ } ++ else ++ { ++ return "bralid\tr15,%1\;%#"; ++ } ++ } ++ else if (GET_CODE (target) == CONST_INT) ++ return "la\t%@,r0,%1\;brald\tr15,%@\;%#"; ++ else if (GET_CODE (target) == REG) ++ return "brald\tr15,%1\;%#"; ++ else ++ return "Unsupported call insn\n"; ++ } ++ [(set_attr "type" "call") ++ (set_attr "mode" "none") ++ (set_attr "length" "4")]) ++ + (define_insn "call_value_intern" + [(set (match_operand:VOID 0 "register_operand" "=d") + (call (mem (match_operand:VOID 1 "call_insn_operand" "ri")) +- (match_operand:SI 2 "" "i"))) +- (clobber (match_operand:SI 3 "register_operand" "=d"))] ++ (match_operand 2 "" "i"))) ++ (clobber (match_operand 3 "register_operand" "=d"))] + "" + { + register rtx target = operands[1]; +@@ -2864,7 +3185,6 @@ else + + ;;if (!register_operand (operands[0], VOIDmode)) + ;; FAIL; +- + emit_insn (gen_insv_32 (operands[0], operands[1], + operands[2], operands[3])); + DONE; +diff --git a/gcc/config/microblaze/t-microblaze b/gcc/config/microblaze/t-microblaze +index 7671f63..9fc80b1 100644 +--- a/gcc/config/microblaze/t-microblaze ++++ b/gcc/config/microblaze/t-microblaze +@@ -2,10 +2,11 @@ MULTILIB_OPTIONS = mxl-barrel-shift mno-xl-soft-mul mxl-multiply-high mlittle-en + MULTILIB_DIRNAMES = bs m mh le m64 + MULTILIB_EXCEPTIONS = *mxl-barrel-shift/mxl-multiply-high mxl-multiply-high + MULTILIB_EXCEPTIONS += *mxl-barrel-shift/mxl-multiply-high/mlittle-endian +-MULTILIB_EXCEPTIONS += *mxl-barrel-shift/mxl-multiply-high/m64 ++MULTILIB_EXCEPTIONS += *mxl-barrel-shift/mxl-multiply-high/mlittle-endian/m64 ++MULTILIB_EXCEPTIONS += *mxl-barrel-shift/mxl-multiply-high/m64 mxl-multiply-high + MULTILIB_EXCEPTIONS += mxl-multiply-high/mlittle-endian +-#MULTILIB_EXCEPTIONS += mxl-multiply-high/m64 +-#MULTILIB_EXCEPTIONS += *mxl-multiply-high/mlittle-endian/m64 ++MULTILIB_EXCEPTIONS += mxl-multiply-high/m64 ++MULTILIB_EXCEPTIONS += *mxl-multiply-high/mlittle-endian/m64 + + # Extra files + microblaze-c.o: $(srcdir)/config/microblaze/microblaze-c.c \ +diff --git a/libgcc/config/microblaze/crti.S b/libgcc/config/microblaze/crti.S +index 2e15be4..3386520 100644 +--- a/libgcc/config/microblaze/crti.S ++++ b/libgcc/config/microblaze/crti.S +@@ -40,7 +40,7 @@ + + .align 2 + __init: +- addik r1, r1, -8 ++ addik r1, r1, -16 + sw r15, r0, r1 + la r11, r0, _stack + mts rshr, r11 +@@ -51,5 +51,5 @@ __init: + .global __fini + .align 2 + __fini: +- addik r1, r1, -8 ++ addik r1, r1, -16 + sw r15, r0, r1 +diff --git a/libgcc/config/microblaze/crtn.S b/libgcc/config/microblaze/crtn.S +index cd5fd9e..04e73d7 100644 +--- a/libgcc/config/microblaze/crtn.S ++++ b/libgcc/config/microblaze/crtn.S +@@ -33,9 +33,9 @@ + .section .init, "ax" + lw r15, r0, r1 + rtsd r15, 8 +- addik r1, r1, 8 ++ addik r1, r1, 16 + + .section .fini, "ax" + lw r15, r0, r1 + rtsd r15, 8 +- addik r1, r1, 8 ++ addik r1, r1, 16 +diff --git a/libgcc/config/microblaze/divdi3.S b/libgcc/config/microblaze/divdi3.S +new file mode 100644 +index 0000000..d37bf51 +--- /dev/null ++++ b/libgcc/config/microblaze/divdi3.S +@@ -0,0 +1,98 @@ ++###################################- ++# ++# Copyright (C) 2009-2017 Free Software Foundation, Inc. ++# ++# Contributed by Michael Eager . ++# ++# This file is free software; you can redistribute it and/or modify it ++# under the terms of the GNU General Public License as published by the ++# Free Software Foundation; either version 3, or (at your option) any ++# later version. ++# ++# GCC is distributed in the hope that it will be useful, but WITHOUT ++# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY ++# or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public ++# License for more details. ++# ++# Under Section 7 of GPL version 3, you are granted additional ++# permissions described in the GCC Runtime Library Exception, version ++# 3.1, as published by the Free Software Foundation. ++# ++# You should have received a copy of the GNU General Public License and ++# a copy of the GCC Runtime Library Exception along with this program; ++# see the files COPYING3 and COPYING.RUNTIME respectively. If not, see ++# . ++# ++# divdi3.S ++# ++# Divide operation for 32 bit integers. ++# Input : Dividend in Reg r5 ++# Divisor in Reg r6 ++# Output: Result in Reg r3 ++# ++####################################### ++ ++#ifdef __arch64__ ++ .globl __divdi3 ++ .ent __divdi3 ++ .type __divdi3,@function ++__divdi3: ++ .frame r1,0,r15 ++ ++ ADDLIK r1,r1,-32 ++ SLI r28,r1,0 ++ SLI r29,r1,8 ++ SLI r30,r1,16 ++ SLI r31,r1,24 ++ ++ BEALEQI r6,$LaDiv_By_Zero # Div_by_Zero # Division Error ++ BEALEQI r5,$LaResult_Is_Zero # Result is Zero ++ XORL r28,r5,r6 # Get the sign of the result ++ BEALGEI r5,$LaR5_Pos ++ RSUBLI r5,r5,0 # Make r5 positive ++$LaR5_Pos: ++ BEALGEI r6,$LaR6_Pos ++ RSUBLI r6,r6,0 # Make r6 positive ++$LaR6_Pos: ++ ADDLIK r30,r0,0 # Clear mod ++ ADDLIK r3,r0,0 # clear div ++ ADDLIK r29,r0,64 # Initialize the loop count ++ ++ # First part try to find the first '1' in the r5 ++$LaDIV0: ++ BEALLTI r5,$LaDIV2 # This traps r5 == 0x80000000 ++$LaDIV1: ++ ADDL r5,r5,r5 # left shift logical r5 ++ ADDLIK r29,r29,-1 ++ BEALGTI r5,$LaDIV1 ++$LaDIV2: ++ ADDL r5,r5,r5 # left shift logical r5 get the '1' into the Carry ++ ADDLC r30,r30,r30 # Move that bit into the Mod register ++ RSUBL r31,r6,r30 # Try to subtract (r30 a r6) ++ BEALLTI r31,$LaMOD_TOO_SMALL ++ ORL r30,r0,r31 # Move the r31 to mod since the result was positive ++ ADDLIK r3,r3,1 ++$LaMOD_TOO_SMALL: ++ ADDLIK r29,r29,-1 ++ BEALEQi r29,$LaLOOP_END ++ ADDL r3,r3,r3 # Shift in the '1' into div ++ BREAI $LaDIV2 # Div2 ++$LaLOOP_END: ++ BEALGEI r28,$LaRETURN_HERE ++ RSUBLI r3,r3,0 # Negate the result ++ BREAI $LaRETURN_HERE ++$LaDiv_By_Zero: ++$LaResult_Is_Zero: ++ ORL r3,r0,r0 # set result to 0 ++$LaRETURN_HERE: ++# Restore values of CSRs and that of r3 and the divisor and the dividend ++ LLI r28,r1,0 ++ LLI r29,r1,8 ++ LLI r30,r1,16 ++ LLI r31,r1,24 ++ ADDLIK r1,r1,32 ++ RTSD r15,8 ++ nop ++.end __divdi3 ++ .size __divdi3, . - __divdi3 ++#endif +diff --git a/libgcc/config/microblaze/divdi3_table.c b/libgcc/config/microblaze/divdi3_table.c +new file mode 100644 +index 0000000..8096259 +--- /dev/null ++++ b/libgcc/config/microblaze/divdi3_table.c +@@ -0,0 +1,62 @@ ++/* Table for software lookup divide for Xilinx MicroBlaze. ++ ++ Copyright (C) 2009-2017 Free Software Foundation, Inc. ++ ++ Contributed by Michael Eager . ++ ++ This file is free software; you can redistribute it and/or modify it ++ under the terms of the GNU General Public License as published by the ++ Free Software Foundation; either version 3, or (at your option) any ++ later version. ++ ++ GCC is distributed in the hope that it will be useful, but WITHOUT ++ ANY WARRANTY; without even the implied warranty of MERCHANTABILITY ++ or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public ++ License for more details. ++ ++ Under Section 7 of GPL version 3, you are granted additional ++ permissions described in the GCC Runtime Library Exception, version ++ 3.1, as published by the Free Software Foundation. ++ ++ You should have received a copy of the GNU General Public License and ++ a copy of the GCC Runtime Library Exception along with this program; ++ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see ++ . */ ++ ++ ++unsigned char _divdi3_table[] = ++{ ++ 0, 0/1, 0/2, 0/3, 0/4, 0/5, 0/6, 0/7, ++ 0/8, 0/9, 0/10, 0/11, 0/12, 0/13, 0/14, 0/15, ++ 0, 1/1, 1/2, 1/3, 1/4, 1/5, 1/6, 1/7, ++ 1/8, 1/9, 1/10, 1/11, 1/12, 1/13, 1/14, 1/15, ++ 0, 2/1, 2/2, 2/3, 2/4, 2/5, 2/6, 2/7, ++ 2/8, 2/9, 2/10, 2/11, 2/12, 2/13, 2/14, 2/15, ++ 0, 3/1, 3/2, 3/3, 3/4, 3/5, 3/6, 3/7, ++ 3/8, 3/9, 3/10, 3/11, 3/12, 3/13, 3/14, 3/15, ++ 0, 4/1, 4/2, 4/3, 4/4, 4/5, 4/6, 4/7, ++ 4/8, 4/9, 4/10, 4/11, 4/12, 4/13, 4/14, 4/15, ++ 0, 5/1, 5/2, 5/3, 5/4, 5/5, 5/6, 5/7, ++ 5/8, 5/9, 5/10, 5/11, 5/12, 5/13, 5/14, 5/15, ++ 0, 6/1, 6/2, 6/3, 6/4, 6/5, 6/6, 6/7, ++ 6/8, 6/9, 6/10, 6/11, 6/12, 6/13, 6/14, 6/15, ++ 0, 7/1, 7/2, 7/3, 7/4, 7/5, 7/6, 7/7, ++ 7/8, 7/9, 7/10, 7/11, 7/12, 7/13, 7/14, 7/15, ++ 0, 8/1, 8/2, 8/3, 8/4, 8/5, 8/6, 8/7, ++ 8/8, 8/9, 8/10, 8/11, 8/12, 8/13, 8/14, 8/15, ++ 0, 9/1, 9/2, 9/3, 9/4, 9/5, 9/6, 9/7, ++ 9/8, 9/9, 9/10, 9/11, 9/12, 9/13, 9/14, 9/15, ++ 0, 10/1, 10/2, 10/3, 10/4, 10/5, 10/6, 10/7, ++ 10/8, 10/9, 10/10, 10/11, 10/12, 10/13, 10/14, 10/15, ++ 0, 11/1, 11/2, 11/3, 11/4, 11/5, 11/6, 11/7, ++ 11/8, 11/9, 11/10, 11/11, 11/12, 11/13, 11/14, 11/15, ++ 0, 12/1, 12/2, 12/3, 12/4, 12/5, 12/6, 12/7, ++ 12/8, 12/9, 12/10, 12/11, 12/12, 12/13, 12/14, 12/15, ++ 0, 13/1, 13/2, 13/3, 13/4, 13/5, 13/6, 13/7, ++ 13/8, 13/9, 13/10, 13/11, 13/12, 13/13, 13/14, 13/15, ++ 0, 14/1, 14/2, 14/3, 14/4, 14/5, 14/6, 14/7, ++ 14/8, 14/9, 14/10, 14/11, 14/12, 14/13, 14/14, 14/15, ++ 0, 15/1, 15/2, 15/3, 15/4, 15/5, 15/6, 15/7, ++ 15/8, 15/9, 15/10, 15/11, 15/12, 15/13, 15/14, 15/15, ++}; ++ +diff --git a/libgcc/config/microblaze/moddi3.S b/libgcc/config/microblaze/moddi3.S +new file mode 100644 +index 0000000..5d3f7c0 +--- /dev/null ++++ b/libgcc/config/microblaze/moddi3.S +@@ -0,0 +1,97 @@ ++################################### ++# ++# Copyright (C) 2009-2017 Free Software Foundation, Inc. ++# ++# Contributed by Michael Eager . ++# ++# This file is free software; you can redistribute it and/or modify it ++# under the terms of the GNU General Public License as published by the ++# Free Software Foundation; either version 3, or (at your option) any ++# later version. ++# ++# GCC is distributed in the hope that it will be useful, but WITHOUT ++# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY ++# or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public ++# License for more details. ++# ++# Under Section 7 of GPL version 3, you are granted additional ++# permissions described in the GCC Runtime Library Exception, version ++# 3.1, as published by the Free Software Foundation. ++# ++# You should have received a copy of the GNU General Public License and ++# a copy of the GCC Runtime Library Exception along with this program; ++# see the files COPYING3 and COPYING.RUNTIME respectively. If not, see ++# . ++# ++# moddi3.S ++# ++# modulo operation for 32 bit integers. ++# Input : op1 in Reg r5 ++# op2 in Reg r6 ++# Output: op1 mod op2 in Reg r3 ++# ++####################################### ++ ++#ifdef __arch64__ ++ .globl __moddi3 ++ .ent __moddi3 ++ .type __moddi3,@function ++__moddi3: ++ .frame r1,0,r15 ++ ++ addlik r1,r1,-32 ++ sli r28,r1,0 ++ sli r29,r1,8 ++ sli r30,r1,16 ++ sli r31,r1,32 ++ ++ BEALEQI r6,$LaDiv_By_Zero # Div_by_Zero # Division Error ++ BEALEQI r5,$LaResult_Is_Zero # Result is Zero ++ ADDL r28,r5,r0 # Get the sign of the result [ Depends only on the first arg] ++ BEALGEI r5,$LaR5_Pos ++ RSUBLI r5,r5,0 # Make r5 positive ++$LaR5_Pos: ++ BEALGEI r6,$LaR6_Pos ++ RSUBLI r6,r6,0 # Make r6 positive ++$LaR6_Pos: ++ ADDLIK r3,r0,0 # Clear mod ++ ADDLIK r30,r0,0 # clear div ++ ADDLIK r29,r0,64 # Initialize the loop count ++ BEALLTI r5,$LaDIV2 # If r5 is still negative (0x80000000), skip ++ # the first bit search. ++ # First part try to find the first '1' in the r5 ++$LaDIV1: ++ ADDL r5,r5,r5 # left shift logical r5 ++ ADDLIK r29,r29,-1 ++ BEALGEI r5,$LaDIV1 # ++$LaDIV2: ++ ADDL r5,r5,r5 # left shift logical r5 get the '1' into the Carry ++ ADDLC r3,r3,r3 # Move that bit into the Mod register ++ rSUBL r31,r6,r3 # Try to subtract (r30 a r6) ++ BEALLTi r31,$LaMOD_TOO_SMALL ++ ORL r3,r0,r31 # Move the r31 to mod since the result was positive ++ ADDLIK r30,r30,1 ++$LaMOD_TOO_SMALL: ++ ADDLIK r29,r29,-1 ++ BEALEQi r29,$LaLOOP_END ++ ADDL r30,r30,r30 # Shift in the '1' into div ++ BREAI $LaDIV2 # Div2 ++$LaLOOP_END: ++ BEALGEI r28,$LaRETURN_HERE ++ rsubli r3,r3,0 # Negate the result ++ BREAI $LaRETURN_HERE ++$LaDiv_By_Zero: ++$LaResult_Is_Zero: ++ orl r3,r0,r0 # set result to 0 [Both mod as well as div are 0] ++$LaRETURN_HERE: ++# Restore values of CSRs and that of r3 and the divisor and the dividend ++ lli r28,r1,0 ++ lli r29,r1,8 ++ lli r30,r1,16 ++ lli r31,r1,24 ++ addlik r1,r1,32 ++ rtsd r15,8 ++ nop ++ .end __moddi3 ++ .size __moddi3, . - __moddi3 ++#endif +diff --git a/libgcc/config/microblaze/muldi3.S b/libgcc/config/microblaze/muldi3.S +new file mode 100644 +index 0000000..5677841 +--- /dev/null ++++ b/libgcc/config/microblaze/muldi3.S +@@ -0,0 +1,73 @@ ++/*###################################-*-asm*- ++# ++# Copyright (C) 2009-2017 Free Software Foundation, Inc. ++# ++# Contributed by Michael Eager . ++# ++# This file is free software; you can redistribute it and/or modify it ++# under the terms of the GNU General Public License as published by the ++# Free Software Foundation; either version 3, or (at your option) any ++# later version. ++# ++# GCC is distributed in the hope that it will be useful, but WITHOUT ++# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY ++# or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public ++# License for more details. ++# ++# Under Section 7 of GPL version 3, you are granted additional ++# permissions described in the GCC Runtime Library Exception, version ++# 3.1, as published by the Free Software Foundation. ++# ++# You should have received a copy of the GNU General Public License and ++# a copy of the GCC Runtime Library Exception along with this program; ++# see the files COPYING3 and COPYING.RUNTIME respectively. If not, see ++# . ++# ++# muldi3.S ++# ++# Multiply operation for 32 bit integers. ++# Input : Operand1 in Reg r5 ++# Operand2 in Reg r6 ++# Output: Result [op1 * op2] in Reg r3 ++# ++#######################################*/ ++ ++#ifdef __arch64__ ++ .globl __muldi3 ++ .ent __muldi3 ++ .type __muldi3,@function ++__muldi3: ++ .frame r1,0,r15 ++ addl r3,r0,r0 ++ BEALEQI r5,$L_Result_Is_Zero # Multiply by Zero ++ BEALEQI r6,$L_Result_Is_Zero # Multiply by Zero ++ XORL r4,r5,r6 # Get the sign of the result ++ BEALGEI r5,$L_R5_Pos ++ RSUBLI r5,r5,0 # Make r5 positive ++$L_R5_Pos: ++ BEALGEI r6,$L_R6_Pos ++ RSUBLI r6,r6,0 # Make r6 positive ++$L_R6_Pos: ++ breai $L1 ++$L2: ++ addl r5,r5,r5 ++$L1: ++ srll r6,r6 ++ addlc r7,r0,r0 ++ bealeqi r7,$L2 ++ addl r3,r3,r5 ++ bealnei r6,$L2 ++ beallti r4,$L_NegateResult ++ rtsd r15,8 ++ nop ++$L_NegateResult: ++ rsubl r3,r3,r0 ++ rtsd r15,8 ++ nop ++$L_Result_Is_Zero: ++ addli r3,r0,0 ++ rtsd r15,8 ++ nop ++ .end __muldi3 ++ .size __muldi3, . - __muldi3 ++#endif +diff --git a/libgcc/config/microblaze/t-microblaze b/libgcc/config/microblaze/t-microblaze +index 8d954a4..35021b2 100644 +--- a/libgcc/config/microblaze/t-microblaze ++++ b/libgcc/config/microblaze/t-microblaze +@@ -1,11 +1,16 @@ +-LIB2FUNCS_EXCLUDE += _divsi3 _modsi3 _mulsi3 _udivsi3 _umodsi3 ++LIB2FUNCS_EXCLUDE += _divsi3 _modsi3 _mulsi3 _udivsi3 _umodsi3 \ ++ _divdi3 _moddi3 _muldi3 _udivdi3 _umoddi3 + + LIB2ADD += \ + $(srcdir)/config/microblaze/divsi3.S \ ++ $(srcdir)/config/microblaze/divdi3.S \ + $(srcdir)/config/microblaze/modsi3.S \ +- $(srcdir)/config/microblaze/muldi3_hard.S \ ++ $(srcdir)/config/microblaze/moddi3.S \ + $(srcdir)/config/microblaze/mulsi3.S \ ++ $(srcdir)/config/microblaze/muldi3.S \ + $(srcdir)/config/microblaze/stack_overflow_exit.S \ + $(srcdir)/config/microblaze/udivsi3.S \ ++ $(srcdir)/config/microblaze/udivdi3.S \ + $(srcdir)/config/microblaze/umodsi3.S \ +- $(srcdir)/config/microblaze/divsi3_table.c ++ $(srcdir)/config/microblaze/umoddi3.S \ ++ $(srcdir)/config/microblaze/divsi3_table.c \ +diff --git a/libgcc/config/microblaze/udivdi3.S b/libgcc/config/microblaze/udivdi3.S +new file mode 100644 +index 0000000..c210fbc +--- /dev/null ++++ b/libgcc/config/microblaze/udivdi3.S +@@ -0,0 +1,107 @@ ++###################################- ++# ++# Copyright (C) 2009-2017 Free Software Foundation, Inc. ++# ++# Contributed by Michael Eager . ++# ++# This file is free software; you can redistribute it and/or modify it ++# under the terms of the GNU General Public License as published by the ++# Free Software Foundation; either version 3, or (at your option) any ++# later version. ++# ++# GCC is distributed in the hope that it will be useful, but WITHOUT ++# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY ++# or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public ++# License for more details. ++# ++# Under Section 7 of GPL version 3, you are granted additional ++# permissions described in the GCC Runtime Library Exception, version ++# 3.1, as published by the Free Software Foundation. ++# ++# You should have received a copy of the GNU General Public License and ++# a copy of the GCC Runtime Library Exception along with this program; ++# see the files COPYING3 and COPYING.RUNTIME respectively. If not, see ++# . ++# ++# udivdi3.S ++# ++# Unsigned divide operation. ++# Input : Divisor in Reg r5 ++# Dividend in Reg r6 ++# Output: Result in Reg r3 ++# ++####################################### ++ ++#ifdef __arch64__ ++ .globl __udivdi3 ++ .ent __udivdi3 ++ .type __udivdi3,@function ++__udivdi3: ++ .frame r1,0,r15 ++ ++ ADDlIK r1,r1,-24 ++ SLI r29,r1,0 ++ SLI r30,r1,8 ++ SLI r31,r1,16 ++ ++ BEALEQI r6,$LaDiv_By_Zero # Div_by_Zero # Division Error ++ ADDLIK r30,r0,0 # Clear mod ++ BEALEQI r5,$LaResult_Is_Zero # Result is Zero ++ ADDLIK r29,r0,64 # Initialize the loop count ++ ++ # Check if r6 and r5 are equal # if yes, return 1 ++ RSUBL r18,r5,r6 ++ ADDLIK r3,r0,1 ++ BEALEQI r18,$LaRETURN_HERE ++ ++ # Check if (uns)r6 is greater than (uns)r5. In that case, just return 0 ++ XORL r18,r5,r6 ++ ADDL r3,r0,r0 # We would anyways clear r3 ++ BEALGEI r18,$LRSUBL ++ BEALLTI r6,$LaRETURN_HERE # r6[bit 31 = 1] hence is greater ++ BREAI $LCheckr6 ++$LRSUBL: ++ RSUBL r18,r6,r5 # MICROBLAZEcmp ++ BEALLTI r18,$LaRETURN_HERE ++ ++ # If r6 [bit 31] is set, then return result as 1 ++$LCheckr6: ++ BEALGTI r6,$LaDIV0 ++ ADDLIK r3,r0,1 ++ BREAI $LaRETURN_HERE ++ ++ # First part try to find the first '1' in the r5 ++$LaDIV0: ++ BEALLTI r5,$LaDIV2 ++$LaDIV1: ++ ADDL r5,r5,r5 # left shift logical r5 ++ ADDLIK r29,r29,-1 ++ BEALGTI r5,$LaDIV1 ++$LaDIV2: ++ ADDL r5,r5,r5 # left shift logical r5 get the '1' into the Carry ++ ADDLC r30,r30,r30 # Move that bit into the Mod register ++ RSUBL r31,r6,r30 # Try to subtract (r30 a r6) ++ BEALLTI r31,$LaMOD_TOO_SMALL ++ ORL r30,r0,r31 # Move the r31 to mod since the result was positive ++ ADDLIK r3,r3,1 ++$LaMOD_TOO_SMALL: ++ ADDLIK r29,r29,-1 ++ BEALEQi r29,$LaLOOP_END ++ ADDL r3,r3,r3 # Shift in the '1' into div ++ BREAI $LaDIV2 # Div2 ++$LaLOOP_END: ++ BREAI $LaRETURN_HERE ++$LaDiv_By_Zero: ++$LaResult_Is_Zero: ++ ORL r3,r0,r0 # set result to 0 ++$LaRETURN_HERE: ++ # Restore values of CSRs and that of r3 and the divisor and the dividend ++ LLI r29,r1,0 ++ LLI r30,r1,8 ++ LLI r31,r1,16 ++ ADDLIK r1,r1,24 ++ RTSD r15,8 ++ NOP ++ .end __udivdi3 ++ .size __udivdi3, . - __udivdi3 ++#endif +diff --git a/libgcc/config/microblaze/umoddi3.S b/libgcc/config/microblaze/umoddi3.S +new file mode 100644 +index 0000000..7f5cd23 +--- /dev/null ++++ b/libgcc/config/microblaze/umoddi3.S +@@ -0,0 +1,110 @@ ++################################### ++# ++# Copyright (C) 2009-2017 Free Software Foundation, Inc. ++# ++# Contributed by Michael Eager . ++# ++# This file is free software; you can redistribute it and/or modify it ++# under the terms of the GNU General Public License as published by the ++# Free Software Foundation; either version 3, or (at your option) any ++# later version. ++# ++# GCC is distributed in the hope that it will be useful, but WITHOUT ++# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY ++# or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public ++# License for more details. ++# ++# Under Section 7 of GPL version 3, you are granted additional ++# permissions described in the GCC Runtime Library Exception, version ++# 3.1, as published by the Free Software Foundation. ++# ++# You should have received a copy of the GNU General Public License and ++# a copy of the GCC Runtime Library Exception along with this program; ++# see the files COPYING3 and COPYING.RUNTIME respectively. If not, see ++# . ++# ++# umoddi3.S ++# ++# Unsigned modulo operation for 32 bit integers. ++# Input : op1 in Reg r5 ++# op2 in Reg r6 ++# Output: op1 mod op2 in Reg r3 ++# ++####################################### ++ ++#ifdef __arch64__ ++ .globl __umoddi3 ++ .ent __umoddi3 ++ .type __umoddi3,@function ++__umoddi3: ++ .frame r1,0,r15 ++ ++ addlik r1,r1,-24 ++ sli r29,r1,0 ++ sli r30,r1,8 ++ sli r31,r1,16 ++ ++ BEALEQI r6,$LaDiv_By_Zero # Div_by_Zero # Division Error ++ ADDLIK r3,r0,0 # Clear div ++ BEALEQI r5,$LaResult_Is_Zero # Result is Zero ++ ADDLIK r30,r0,0 # clear mod ++ ADDLIK r29,r0,64 # Initialize the loop count ++ ++# Check if r6 and r5 are equal # if yes, return 0 ++ rsubl r18,r5,r6 ++ bealeqi r18,$LaRETURN_HERE ++ ++# Check if (uns)r6 is greater than (uns)r5. In that case, just return r5 ++ xorl r18,r5,r6 ++ addlik r3,r5,0 ++ bealgei r18,$LRSUB ++ beallti r6,$LaRETURN_HERE ++ breai $LCheckr6 ++$LRSUB: ++ rsubl r18,r5,r6 # MICROBLAZEcmp ++ bealgti r18,$LaRETURN_HERE ++ ++# If r6 [bit 31] is set, then return result as r5-r6 ++$LCheckr6: ++ addlik r3,r0,0 ++ bealgti r6,$LaDIV0 ++ addlik r18,r0,0x7fffffff ++ andl r5,r5,r18 ++ andl r6,r6,r18 ++ breaid $LaRETURN_HERE ++ rsubl r3,r6,r5 ++# First part: try to find the first '1' in the r5 ++$LaDIV0: ++ BEALLTI r5,$LaDIV2 ++$LaDIV1: ++ ADDL r5,r5,r5 # left shift logical r5 ++ ADDLIK r29,r29,-1 ++ BEALGEI r5,$LaDIV1 # ++$LaDIV2: ++ ADDL r5,r5,r5 # left shift logical r5 get the '1' into the Carry ++ ADDLC r3,r3,r3 # Move that bit into the Mod register ++ rSUBL r31,r6,r3 # Try to subtract (r3 a r6) ++ BEALLTi r31,$LaMOD_TOO_SMALL ++ ORL r3,r0,r31 # Move the r31 to mod since the result was positive ++ ADDLIK r30,r30,1 ++$LaMOD_TOO_SMALL: ++ ADDLIK r29,r29,-1 ++ BEALEQi r29,$LaLOOP_END ++ ADDL r30,r30,r30 # Shift in the '1' into div ++ BREAI $LaDIV2 # Div2 ++$LaLOOP_END: ++ BREAI $LaRETURN_HERE ++$LaDiv_By_Zero: ++$LaResult_Is_Zero: ++ orl r3,r0,r0 # set result to 0 ++$LaRETURN_HERE: ++# Restore values of CSRs and that of r3 and the divisor and the dividend ++ lli r29,r1,0 ++ lli r30,r1,8 ++ lli r31,r1,16 ++ addlik r1,r1,24 ++ rtsd r15,8 ++ nop ++.end __umoddi3 ++ .size __umoddi3, . - __umoddi3 ++#endif +-- +2.7.4 + diff --git a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-8/0042-re-arrangement-of-the-compare-branches.patch b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-8/0042-re-arrangement-of-the-compare-branches.patch new file mode 100644 index 00000000..c33b247b --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-8/0042-re-arrangement-of-the-compare-branches.patch @@ -0,0 +1,268 @@ +From 9e45ca7bd65fe327e01e93d3c539c9d8cf049b79 Mon Sep 17 00:00:00 2001 +From: Nagaraju Mekala +Date: Fri, 3 Aug 2018 15:41:39 +0530 +Subject: [PATCH 42/54] re-arrangement of the compare branches + +--- + gcc/config/microblaze/microblaze.c | 28 ++----- + gcc/config/microblaze/microblaze.md | 141 +++++++++++++++++------------------- + 2 files changed, 73 insertions(+), 96 deletions(-) + +diff --git a/gcc/config/microblaze/microblaze.c b/gcc/config/microblaze/microblaze.c +index ba7ade4..fab79d9 100644 +--- a/gcc/config/microblaze/microblaze.c ++++ b/gcc/config/microblaze/microblaze.c +@@ -3695,11 +3695,7 @@ microblaze_expand_conditional_branch (machine_mode mode, rtx operands[]) + { + comp_reg = cmp_op0; + condition = gen_rtx_fmt_ee (signed_condition (code), mode, comp_reg, const0_rtx); +- if (mode == Pmode) +- emit_jump_insn (gen_condjump (condition, label1)); +- else +- emit_jump_insn (gen_long_condjump (condition, label1)); +- ++ emit_jump_insn (gen_condjump (condition, label1)); + } + + else if (code == EQ || code == NE) +@@ -3710,10 +3706,7 @@ microblaze_expand_conditional_branch (machine_mode mode, rtx operands[]) + else + emit_insn (gen_xordi3 (comp_reg, cmp_op0, cmp_op1)); + condition = gen_rtx_fmt_ee (signed_condition (code), mode, comp_reg, const0_rtx); +- if (mode == SImode) +- emit_jump_insn (gen_condjump (condition, label1)); +- else +- emit_jump_insn (gen_long_condjump (condition, label1)); ++ emit_jump_insn (gen_condjump (condition, label1)); + } + else + { +@@ -3746,10 +3739,7 @@ microblaze_expand_conditional_branch_reg (machine_mode mode, rtx operands[]) + comp_reg = cmp_op0; + condition = gen_rtx_fmt_ee (signed_condition (code), + mode, comp_reg, const0_rtx); +- if (mode == SImode) +- emit_jump_insn (gen_condjump (condition, label1)); +- else +- emit_jump_insn (gen_long_condjump (condition, label1)); ++ emit_jump_insn (gen_condjump (condition, label1)); + } + else if (code == EQ) + { +@@ -3764,10 +3754,7 @@ microblaze_expand_conditional_branch_reg (machine_mode mode, rtx operands[]) + cmp_op1)); + } + condition = gen_rtx_EQ (mode, comp_reg, const0_rtx); +- if (mode == SImode) +- emit_jump_insn (gen_condjump (condition, label1)); +- else +- emit_jump_insn (gen_long_condjump (condition, label1)); ++ emit_jump_insn (gen_condjump (condition, label1)); + + } + else if (code == NE) +@@ -3783,10 +3770,7 @@ microblaze_expand_conditional_branch_reg (machine_mode mode, rtx operands[]) + cmp_op1)); + } + condition = gen_rtx_NE (mode, comp_reg, const0_rtx); +- if (mode == SImode) +- emit_jump_insn (gen_condjump (condition, label1)); +- else +- emit_jump_insn (gen_long_condjump (condition, label1)); ++ emit_jump_insn (gen_condjump (condition, label1)); + } + else + { +@@ -3828,7 +3812,7 @@ microblaze_expand_conditional_branch_df (rtx operands[]) + + emit_insn (gen_cstoredf4 (comp_reg, operands[0], cmp_op0, cmp_op1)); + condition = gen_rtx_NE (Pmode, comp_reg, const0_rtx); +- emit_jump_insn (gen_long_condjump (condition, operands[3])); ++ emit_jump_insn (gen_condjump (condition, operands[3])); + } + + /* Implement TARGET_FRAME_POINTER_REQUIRED. */ +diff --git a/gcc/config/microblaze/microblaze.md b/gcc/config/microblaze/microblaze.md +index 0f41ac6..2213d6e 100644 +--- a/gcc/config/microblaze/microblaze.md ++++ b/gcc/config/microblaze/microblaze.md +@@ -2268,7 +2268,27 @@ else + (label_ref (match_operand 1)) + (pc)))]) + +-(define_insn "branch_zero64" ++(define_insn "branch_zero_64" ++ [(set (pc) ++ (if_then_else (match_operator:SI 0 "ordered_comparison_operator" ++ [(match_operand:SI 1 "register_operand" "d") ++ (const_int 0)]) ++ (match_operand:SI 2 "pc_or_label_operand" "") ++ (match_operand:SI 3 "pc_or_label_operand" ""))) ++ ] ++ "TARGET_MB_64" ++ { ++ if (operands[3] == pc_rtx) ++ return "bea%C0i%?\t%z1,%2"; ++ else ++ return "bea%N0i%?\t%z1,%3"; ++ } ++ [(set_attr "type" "branch") ++ (set_attr "mode" "none") ++ (set_attr "length" "4")] ++) ++ ++(define_insn "long_branch_zero" + [(set (pc) + (if_then_else (match_operator 0 "ordered_comparison_operator" + [(match_operand 1 "register_operand" "d") +@@ -2279,9 +2299,9 @@ else + "TARGET_MB_64" + { + if (operands[3] == pc_rtx) +- return "bea%C0i%?\t%z1,%2"; ++ return "beal%C0i%?\t%z1,%2"; + else +- return "bea%N0i%?\t%z1,%3"; ++ return "beal%N0i%?\t%z1,%3"; + } + [(set_attr "type" "branch") + (set_attr "mode" "none") +@@ -2310,9 +2330,9 @@ else + + (define_insn "branch_compare64" + [(set (pc) +- (if_then_else (match_operator 0 "cmp_op" +- [(match_operand 1 "register_operand" "d") +- (match_operand 2 "register_operand" "d") ++ (if_then_else (match_operator:SI 0 "cmp_op" ++ [(match_operand:SI 1 "register_operand" "d") ++ (match_operand:SI 2 "register_operand" "d") + ]) + (label_ref (match_operand 3)) + (pc))) +@@ -2349,6 +2369,47 @@ else + (set_attr "length" "12")] + ) + ++(define_insn "long_branch_compare" ++ [(set (pc) ++ (if_then_else (match_operator 0 "cmp_op" ++ [(match_operand 1 "register_operand" "d") ++ (match_operand 2 "register_operand" "d") ++ ]) ++ (label_ref (match_operand 3)) ++ (pc))) ++ (clobber(reg:DI R_TMP))] ++ "TARGET_MB_64" ++ { ++ operands[4] = gen_rtx_REG (DImode, MB_ABI_ASM_TEMP_REGNUM); ++ enum rtx_code code = GET_CODE (operands[0]); ++ ++ if (code == GT || code == LE) ++ { ++ output_asm_insn ("cmpl\tr18,%z1,%z2", operands); ++ code = swap_condition (code); ++ } ++ else if (code == GTU || code == LEU) ++ { ++ output_asm_insn ("cmplu\tr18,%z1,%z2", operands); ++ code = swap_condition (code); ++ } ++ else if (code == GE || code == LT) ++ { ++ output_asm_insn ("cmpl\tr18,%z2,%z1", operands); ++ } ++ else if (code == GEU || code == LTU) ++ { ++ output_asm_insn ("cmplu\tr18,%z2,%z1", operands); ++ } ++ ++ operands[0] = gen_rtx_fmt_ee (signed_condition (code), DImode, operands[4], const0_rtx); ++ return "beal%C0i%?\tr18,%3"; ++ } ++ [(set_attr "type" "branch") ++ (set_attr "mode" "none") ++ (set_attr "length" "12")] ++) ++ + (define_insn "branch_compare" + [(set (pc) + (if_then_else (match_operator:SI 0 "cmp_op" +@@ -2431,74 +2492,6 @@ else + + }) + +-;; Used to implement comparison instructions +-(define_expand "long_condjump" +- [(set (pc) +- (if_then_else (match_operand 0) +- (label_ref (match_operand 1)) +- (pc)))]) +- +-(define_insn "long_branch_zero" +- [(set (pc) +- (if_then_else (match_operator:DI 0 "ordered_comparison_operator" +- [(match_operand:DI 1 "register_operand" "d") +- (const_int 0)]) +- (match_operand:DI 2 "pc_or_label_operand" "") +- (match_operand:DI 3 "pc_or_label_operand" ""))) +- ] +- "TARGET_MB_64" +- { +- if (operands[3] == pc_rtx) +- return "beal%C0i%?\t%z1,%2"; +- else +- return "beal%N0i%?\t%z1,%3"; +- } +- [(set_attr "type" "branch") +- (set_attr "mode" "none") +- (set_attr "length" "4")] +-) +- +-(define_insn "long_branch_compare" +- [(set (pc) +- (if_then_else (match_operator:DI 0 "cmp_op" +- [(match_operand:DI 1 "register_operand" "d") +- (match_operand:DI 2 "register_operand" "d") +- ]) +- (label_ref (match_operand 3)) +- (pc))) +- (clobber(reg:DI R_TMP))] +- "TARGET_MB_64" +- { +- operands[4] = gen_rtx_REG (DImode, MB_ABI_ASM_TEMP_REGNUM); +- enum rtx_code code = GET_CODE (operands[0]); +- +- if (code == GT || code == LE) +- { +- output_asm_insn ("cmpl\tr18,%z1,%z2", operands); +- code = swap_condition (code); +- } +- else if (code == GTU || code == LEU) +- { +- output_asm_insn ("cmplu\tr18,%z1,%z2", operands); +- code = swap_condition (code); +- } +- else if (code == GE || code == LT) +- { +- output_asm_insn ("cmpl\tr18,%z2,%z1", operands); +- } +- else if (code == GEU || code == LTU) +- { +- output_asm_insn ("cmplu\tr18,%z2,%z1", operands); +- } +- +- operands[0] = gen_rtx_fmt_ee (signed_condition (code), DImode, operands[4], const0_rtx); +- return "beal%C0i%?\tr18,%3"; +- } +- [(set_attr "type" "branch") +- (set_attr "mode" "none") +- (set_attr "length" "12")] +-) +- + ;;---------------------------------------------------------------- + ;; Unconditional branches + ;;---------------------------------------------------------------- +-- +2.7.4 + diff --git a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-8/0043-Patch-Microblaze-previous-commit-broke-the-handling-.patch b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-8/0043-Patch-Microblaze-previous-commit-broke-the-handling-.patch new file mode 100644 index 00000000..d1cf4579 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-8/0043-Patch-Microblaze-previous-commit-broke-the-handling-.patch @@ -0,0 +1,28 @@ +From 0c132e74714d217108d65fca630ab497a0d8821a Mon Sep 17 00:00:00 2001 +From: Mahesh Bodapati +Date: Wed, 8 Aug 2018 17:37:26 +0530 +Subject: [PATCH 43/54] [Patch,Microblaze] : previous commit broke the + handling of SI Branch compare for Microblaze 32-bit.. + +--- + gcc/config/microblaze/microblaze.md | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/gcc/config/microblaze/microblaze.md b/gcc/config/microblaze/microblaze.md +index 2213d6e..53ea401 100644 +--- a/gcc/config/microblaze/microblaze.md ++++ b/gcc/config/microblaze/microblaze.md +@@ -2224,8 +2224,8 @@ else + (define_expand "cbranchsi4" + [(set (pc) + (if_then_else (match_operator 0 "ordered_comparison_operator" +- [(match_operand 1 "register_operand") +- (match_operand 2 "arith_operand" "I,i")]) ++ [(match_operand:SI 1 "register_operand") ++ (match_operand:SI 2 "arith_operand" "I,i")]) + (label_ref (match_operand 3 "")) + (pc)))] + "" +-- +2.7.4 + diff --git a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-8/0044-Patch-Microblaze-Support-of-multilibs-with-m64.patch b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-8/0044-Patch-Microblaze-Support-of-multilibs-with-m64.patch new file mode 100644 index 00000000..68791cb2 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-8/0044-Patch-Microblaze-Support-of-multilibs-with-m64.patch @@ -0,0 +1,73 @@ +From 259ed1ee33625964f5bc394ae660103b6c35510f Mon Sep 17 00:00:00 2001 +From: Mahesh Bodapati +Date: Tue, 11 Sep 2018 13:43:48 +0530 +Subject: [PATCH 44/54] [Patch, Microblaze] : Support of multilibs with m64 ... + +--- + gcc/config/microblaze/microblaze-c.c | 1 + + gcc/config/microblaze/t-microblaze | 15 ++++++--------- + libgcc/config/microblaze/t-microblaze | 11 +++-------- + 3 files changed, 10 insertions(+), 17 deletions(-) + +diff --git a/gcc/config/microblaze/microblaze-c.c b/gcc/config/microblaze/microblaze-c.c +index d8a1d13..6586575 100644 +--- a/gcc/config/microblaze/microblaze-c.c ++++ b/gcc/config/microblaze/microblaze-c.c +@@ -102,6 +102,7 @@ microblaze_cpp_define (cpp_reader *pfile) + } + if (TARGET_MB_64) + { ++ builtin_define ("__microblaze64"); + builtin_define ("__arch64__"); + builtin_define ("__microblaze64__"); + builtin_define ("__MICROBLAZE64__"); +diff --git a/gcc/config/microblaze/t-microblaze b/gcc/config/microblaze/t-microblaze +index 9fc80b1..35ab965 100644 +--- a/gcc/config/microblaze/t-microblaze ++++ b/gcc/config/microblaze/t-microblaze +@@ -1,12 +1,9 @@ +-MULTILIB_OPTIONS = mxl-barrel-shift mno-xl-soft-mul mxl-multiply-high mlittle-endian m64 +-MULTILIB_DIRNAMES = bs m mh le m64 +-MULTILIB_EXCEPTIONS = *mxl-barrel-shift/mxl-multiply-high mxl-multiply-high +-MULTILIB_EXCEPTIONS += *mxl-barrel-shift/mxl-multiply-high/mlittle-endian +-MULTILIB_EXCEPTIONS += *mxl-barrel-shift/mxl-multiply-high/mlittle-endian/m64 +-MULTILIB_EXCEPTIONS += *mxl-barrel-shift/mxl-multiply-high/m64 mxl-multiply-high +-MULTILIB_EXCEPTIONS += mxl-multiply-high/mlittle-endian +-MULTILIB_EXCEPTIONS += mxl-multiply-high/m64 +-MULTILIB_EXCEPTIONS += *mxl-multiply-high/mlittle-endian/m64 ++MULTILIB_OPTIONS = m64 mxl-barrel-shift mlittle-endian mno-xl-soft-mul mxl-multiply-high ++MULTILIB_DIRNAMES = m64 bs le m mh ++MULTILIB_EXCEPTIONS = *m64/mxl-multiply-high mxl-multiply-high ++MULTILIB_EXCEPTIONS += *mxl-barrel-shift/mxl-multiply-high mxl-multiply-high ++MULTILIB_EXCEPTIONS += *mlittle-endian/mxl-multiply-high mxl-multiply-high ++MULTILIB_EXCEPTIONS += *m64/mxl-barrel-shift/mlittle-endian/mxl-multiply-high + + # Extra files + microblaze-c.o: $(srcdir)/config/microblaze/microblaze-c.c \ +diff --git a/libgcc/config/microblaze/t-microblaze b/libgcc/config/microblaze/t-microblaze +index 35021b2..8d954a4 100644 +--- a/libgcc/config/microblaze/t-microblaze ++++ b/libgcc/config/microblaze/t-microblaze +@@ -1,16 +1,11 @@ +-LIB2FUNCS_EXCLUDE += _divsi3 _modsi3 _mulsi3 _udivsi3 _umodsi3 \ +- _divdi3 _moddi3 _muldi3 _udivdi3 _umoddi3 ++LIB2FUNCS_EXCLUDE += _divsi3 _modsi3 _mulsi3 _udivsi3 _umodsi3 + + LIB2ADD += \ + $(srcdir)/config/microblaze/divsi3.S \ +- $(srcdir)/config/microblaze/divdi3.S \ + $(srcdir)/config/microblaze/modsi3.S \ +- $(srcdir)/config/microblaze/moddi3.S \ ++ $(srcdir)/config/microblaze/muldi3_hard.S \ + $(srcdir)/config/microblaze/mulsi3.S \ +- $(srcdir)/config/microblaze/muldi3.S \ + $(srcdir)/config/microblaze/stack_overflow_exit.S \ + $(srcdir)/config/microblaze/udivsi3.S \ +- $(srcdir)/config/microblaze/udivdi3.S \ + $(srcdir)/config/microblaze/umodsi3.S \ +- $(srcdir)/config/microblaze/umoddi3.S \ +- $(srcdir)/config/microblaze/divsi3_table.c \ ++ $(srcdir)/config/microblaze/divsi3_table.c +-- +2.7.4 + diff --git a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-8/0045-Fixed-issues-like.patch b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-8/0045-Fixed-issues-like.patch new file mode 100644 index 00000000..8c0bde71 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-8/0045-Fixed-issues-like.patch @@ -0,0 +1,70 @@ +From 654582846ebf847b52e769eb6e015c8e486461d6 Mon Sep 17 00:00:00 2001 +From: Nagaraju Mekala +Date: Tue, 11 Sep 2018 14:58:00 +0530 +Subject: [PATCH 45/54] Fixed issues like: 1 Interrupt alignment issue 2 Sign + extension issue + +--- + gcc/config/microblaze/microblaze.c | 16 ++++++++++------ + gcc/config/microblaze/microblaze.md | 2 +- + 2 files changed, 11 insertions(+), 7 deletions(-) + +diff --git a/gcc/config/microblaze/microblaze.c b/gcc/config/microblaze/microblaze.c +index fab79d9..6b6ca61 100644 +--- a/gcc/config/microblaze/microblaze.c ++++ b/gcc/config/microblaze/microblaze.c +@@ -2241,9 +2241,14 @@ compute_frame_size (HOST_WIDE_INT size) + + total_size += gp_reg_size; + +- /* Add 4 bytes for MSR. */ ++ /* Add 4/8 bytes for MSR. */ + if (microblaze_is_interrupt_variant ()) +- total_size += 4; ++ { ++ if (TARGET_MB_64) ++ total_size += 8; ++ else ++ total_size += 4; ++ } + + /* No space to be allocated for link register in leaf functions with no other + stack requirements. */ +@@ -2527,7 +2532,6 @@ print_operand (FILE * file, rtx op, int letter) + else if (letter == 'h' || letter == 'j') + { + long val[2]; +- int val1[2]; + long l[2]; + if (code == CONST_DOUBLE) + { +@@ -2542,10 +2546,10 @@ print_operand (FILE * file, rtx op, int letter) + } + else if (code == CONST_INT || code == CONST)// || code == SYMBOL_REF ||code == LABEL_REF) + { +- val1[0] = (INTVAL (op) & 0xffffffff00000000LL) >> 32; +- val1[1] = INTVAL (op) & 0x00000000ffffffffLL; ++ val[0] = (INTVAL (op) & 0xffffffff00000000LL) >> 32; ++ val[1] = INTVAL (op) & 0x00000000ffffffffLL; + } +- fprintf (file, "0x%8.8lx", (letter == 'h') ? val1[0] : val1[1]); ++ fprintf (file, "0x%8.8lx", (letter == 'h') ? val[0] : val[1]); + } + else if (code == CONST_DOUBLE) + { +diff --git a/gcc/config/microblaze/microblaze.md b/gcc/config/microblaze/microblaze.md +index 53ea401..3a6943b 100644 +--- a/gcc/config/microblaze/microblaze.md ++++ b/gcc/config/microblaze/microblaze.md +@@ -1094,7 +1094,7 @@ + case 1: + case 2: + { +- output_asm_insn ("ll%i1\t%0,%1", operands); ++ output_asm_insn ("lw%i1\t%0,%1", operands); + return "sextl32\t%0,%0"; + } + } +-- +2.7.4 + diff --git a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-8/0046-Fixed-below-issues.patch b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-8/0046-Fixed-below-issues.patch new file mode 100644 index 00000000..22bb5b2f --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-8/0046-Fixed-below-issues.patch @@ -0,0 +1,306 @@ +From 48f9f9a1c6809b14e7cfdd2343df92c0de18d730 Mon Sep 17 00:00:00 2001 +From: Nagaraju Mekala +Date: Fri, 28 Sep 2018 11:59:12 +0530 +Subject: [PATCH 46/54] Fixed below issues: - Floating point print issues in + 64bit mode - Dejagnu Jump related issues - Added dbl instruction + +--- + gcc/config/microblaze/microblaze.c | 12 ++++- + gcc/config/microblaze/microblaze.h | 7 +++ + gcc/config/microblaze/microblaze.md | 89 ++++++++++++++++++++++++++++++------- + libgcc/config/microblaze/crti.S | 24 +++++++++- + libgcc/config/microblaze/crtn.S | 13 ++++++ + 5 files changed, 127 insertions(+), 18 deletions(-) + +diff --git a/gcc/config/microblaze/microblaze.c b/gcc/config/microblaze/microblaze.c +index 6b6ca61..33d183e 100644 +--- a/gcc/config/microblaze/microblaze.c ++++ b/gcc/config/microblaze/microblaze.c +@@ -2536,7 +2536,12 @@ print_operand (FILE * file, rtx op, int letter) + if (code == CONST_DOUBLE) + { + if (GET_MODE (op) == DFmode) +- REAL_VALUE_TO_TARGET_DOUBLE (*CONST_DOUBLE_REAL_VALUE (op), val); ++ { ++ if (TARGET_MB_64) ++ REAL_VALUE_TO_TARGET_LONG_DOUBLE (*CONST_DOUBLE_REAL_VALUE (op), val); ++ else ++ REAL_VALUE_TO_TARGET_DOUBLE (*CONST_DOUBLE_REAL_VALUE (op), val); ++ } + else + { + REAL_VALUE_TO_TARGET_DOUBLE (*CONST_DOUBLE_REAL_VALUE (op), l); +@@ -3874,7 +3879,10 @@ microblaze_expand_divide (rtx operands[]) + gen_rtx_PLUS (QImode, regt1, div_table_rtx)); + + insn = emit_insn (gen_zero_extendqisi2(operands[0],mem_rtx)); +- jump = emit_jump_insn_after (gen_jump (div_end_label), insn); ++ if (TARGET_MB_64) ++ jump = emit_jump_insn_after (gen_jump_64 (div_end_label), insn); ++ else ++ jump = emit_jump_insn_after (gen_jump (div_end_label), insn); + JUMP_LABEL (jump) = div_end_label; + LABEL_NUSES (div_end_label) = 1; + emit_barrier (); +diff --git a/gcc/config/microblaze/microblaze.h b/gcc/config/microblaze/microblaze.h +index 1e60513..e34f549 100644 +--- a/gcc/config/microblaze/microblaze.h ++++ b/gcc/config/microblaze/microblaze.h +@@ -892,10 +892,17 @@ do { \ + /* We do this to save a few 10s of code space that would be taken up + by the call_FUNC () wrappers, used by the generic CRT_CALL_STATIC_FUNCTION + definition in crtstuff.c. */ ++#ifdef __arch64__ ++#define CRT_CALL_STATIC_FUNCTION(SECTION_OP, FUNC) \ ++ asm ( SECTION_OP "\n" \ ++ "\tbrealid r15, " #FUNC "\n\t nop\n" \ ++ TEXT_SECTION_ASM_OP); ++#else + #define CRT_CALL_STATIC_FUNCTION(SECTION_OP, FUNC) \ + asm ( SECTION_OP "\n" \ + "\tbrlid r15, " #FUNC "\n\t nop\n" \ + TEXT_SECTION_ASM_OP); ++#endif + + /* We need to group -lm as well, since some Newlib math functions + reference __errno! */ +diff --git a/gcc/config/microblaze/microblaze.md b/gcc/config/microblaze/microblaze.md +index 3a6943b..2669a28 100644 +--- a/gcc/config/microblaze/microblaze.md ++++ b/gcc/config/microblaze/microblaze.md +@@ -525,6 +525,15 @@ + (set_attr "mode" "SF") + (set_attr "length" "4")]) + ++(define_insn "floatdidf2" ++ [(set (match_operand:DF 0 "register_operand" "=d") ++ (float:DF (match_operand:DI 1 "register_operand" "d")))] ++ "TARGET_MB_64" ++ "dbl\t%0,%1" ++ [(set_attr "type" "fcvt") ++ (set_attr "mode" "DF") ++ (set_attr "length" "4")]) ++ + (define_insn "fix_truncsfsi2" + [(set (match_operand:SI 0 "register_operand" "=d") + (fix:SI (match_operand:SF 1 "register_operand" "d")))] +@@ -1298,7 +1307,7 @@ + (define_insn "movdi_long_int" + [(set (match_operand:DI 0 "nonimmediate_operand" "=d") + (match_operand:DI 1 "general_operand" "i"))] +- "" ++ "TARGET_MB_64" + "addlik\t%0,r0,%h1\n\tbsllli\t%0,%0,32\n\taddlik\t%0,%0,%j1 #li => la"; + [(set_attr "type" "no_delay_arith") + (set_attr "mode" "DI") +@@ -1581,7 +1590,7 @@ + return "ll%i1\t%0,%1"; + case 3: + { +- return "addlik\t%0,r0,%h1 \n\tbsllli\t%0,%0,32\n\taddlik\t%0,%0,%j1 #Xfer Lo"; ++ return "addlik\t%0,r0,%j1 \n\tbsllli\t%0,%0,32\n\taddlik\t%0,%0,%h1 #Xfer Lo"; + } + case 5: + return "sl%i0\t%1,%0"; +@@ -2371,9 +2380,9 @@ else + + (define_insn "long_branch_compare" + [(set (pc) +- (if_then_else (match_operator 0 "cmp_op" +- [(match_operand 1 "register_operand" "d") +- (match_operand 2 "register_operand" "d") ++ (if_then_else (match_operator:DI 0 "cmp_op" ++ [(match_operand:DI 1 "register_operand" "d") ++ (match_operand:DI 2 "register_operand" "d") + ]) + (label_ref (match_operand 3)) + (pc))) +@@ -2495,6 +2504,20 @@ else + ;;---------------------------------------------------------------- + ;; Unconditional branches + ;;---------------------------------------------------------------- ++(define_insn "jump_64" ++ [(set (pc) ++ (label_ref (match_operand 0 "" "")))] ++ "TARGET_MB_64" ++ { ++ if (GET_CODE (operands[0]) == REG) ++ return "brea%?\t%0"; ++ else ++ return "breai%?\t%l0"; ++ } ++ [(set_attr "type" "jump") ++ (set_attr "mode" "none") ++ (set_attr "length" "4")]) ++ + (define_insn "jump" + [(set (pc) + (label_ref (match_operand 0 "" "")))] +@@ -2538,19 +2561,28 @@ else + (use (label_ref (match_operand 1 "" "")))] + "" + { +- //gcc_assert (GET_MODE (operands[0]) == Pmode); +- ++ gcc_assert (GET_MODE (operands[0]) == Pmode); ++ + if (!flag_pic) +- emit_jump_insn (gen_tablejump_internal1 (operands[0], operands[1])); +- else +- emit_jump_insn (gen_tablejump_internal3 (operands[0], operands[1])); ++ { ++ if (!TARGET_MB_64) ++ emit_jump_insn (gen_tablejump_internal1 (operands[0], operands[1])); ++ else ++ emit_jump_insn (gen_tablejump_internal2 (operands[0], operands[1])); ++ } ++ else { ++ if (!TARGET_MB_64) ++ emit_jump_insn (gen_tablejump_internal3 (operands[0], operands[1])); ++ else ++ emit_jump_insn (gen_tablejump_internal4 (operands[0], operands[1])); ++ } + DONE; + } + ) + + (define_insn "tablejump_internal1" + [(set (pc) +- (match_operand 0 "register_operand" "d")) ++ (match_operand:SI 0 "register_operand" "d")) + (use (label_ref (match_operand 1 "" "")))] + "" + "bra%?\t%0 " +@@ -2558,11 +2590,21 @@ else + (set_attr "mode" "none") + (set_attr "length" "4")]) + ++(define_insn "tablejump_internal2" ++ [(set (pc) ++ (match_operand:DI 0 "register_operand" "d")) ++ (use (label_ref (match_operand 1 "" "")))] ++ "TARGET_MB_64" ++ "bra%?\t%0 " ++ [(set_attr "type" "jump") ++ (set_attr "mode" "none") ++ (set_attr "length" "4")]) ++ + (define_expand "tablejump_internal3" + [(parallel [(set (pc) +- (plus (match_operand 0 "register_operand" "d") +- (label_ref (match_operand:SI 1 "" "")))) +- (use (label_ref (match_dup 1)))])] ++ (plus:SI (match_operand:SI 0 "register_operand" "d") ++ (label_ref:SI (match_operand:SI 1 "" "")))) ++ (use (label_ref:SI (match_dup 1)))])] + "" + "" + ) +@@ -2593,6 +2635,23 @@ else + "" + ) + ++(define_insn "" ++ [(set (pc) ++ (plus:DI (match_operand:DI 0 "register_operand" "d") ++ (label_ref:DI (match_operand 1 "" "")))) ++ (use (label_ref:DI (match_dup 1)))] ++ "TARGET_MB_64 && NEXT_INSN (as_a (operands[1])) != 0 ++ && GET_CODE (PATTERN (NEXT_INSN (as_a (operands[1])))) == ADDR_DIFF_VEC ++ && flag_pic" ++ { ++ output_asm_insn ("addlk\t%0,%0,r20",operands); ++ return "bra%?\t%0"; ++} ++ [(set_attr "type" "jump") ++ (set_attr "mode" "none") ++ (set_attr "length" "4")]) ++ ++ + ;;---------------------------------------------------------------- + ;; Function prologue/epilogue and stack allocation + ;;---------------------------------------------------------------- +@@ -3097,7 +3156,7 @@ else + ;; The insn to set GOT. The hardcoded number "8" accounts for $pc difference + ;; between "mfs" and "addik" instructions. + (define_insn "set_got" +- [(set (match_operand:SI 0 "register_operand" "=r") ++ [(set (match_operand 0 "register_operand" "=r") + (unspec:SI [(const_int 0)] UNSPEC_SET_GOT))] + "" + "mfs\t%0,rpc\n\taddik\t%0,%0,_GLOBAL_OFFSET_TABLE_+8" +diff --git a/libgcc/config/microblaze/crti.S b/libgcc/config/microblaze/crti.S +index 3386520..3d4cde2 100644 +--- a/libgcc/config/microblaze/crti.S ++++ b/libgcc/config/microblaze/crti.S +@@ -33,11 +33,32 @@ + .section .init, "ax" + .global __init + ++#ifdef __arch64__ + .weak _stack +- .set _stack, 0xffffffff ++ .set _stack, 0xffffffffffffffff + .weak _stack_end + .set _stack_end, 0 + ++ .align 3 ++__init: ++ addlik r1, r1, -32 ++ sl r15, r0, r1 ++ addlik r11, r0, _stack ++ mts rshr, r11 ++ addlik r11, r0, _stack_end ++ mts rslr, r11 ++ ++ .section .fini, "ax" ++ .global __fini ++ .align 3 ++__fini: ++ addlik r1, r1, -32 ++ sl r15, r0, r1 ++#else ++ .weak _stack ++ .set _stack, 0xffffffff ++ .weak _stack_end ++ .set _stack_end, 0 + .align 2 + __init: + addik r1, r1, -16 +@@ -53,3 +74,4 @@ __init: + __fini: + addik r1, r1, -16 + sw r15, r0, r1 ++#endif +diff --git a/libgcc/config/microblaze/crtn.S b/libgcc/config/microblaze/crtn.S +index 04e73d7..c262ce0 100644 +--- a/libgcc/config/microblaze/crtn.S ++++ b/libgcc/config/microblaze/crtn.S +@@ -29,7 +29,19 @@ + .section .note.GNU-stack,"",%progbits + .previous + #endif ++#ifdef __arch64__ ++ .section .init, "ax" ++ ll r15, r0, r1 ++ addlik r1, r1, 32 ++ rtsd r15, 8 ++ nop + ++ .section .fini, "ax" ++ ll r15, r0, r1 ++ addlik r1, r1, 32 ++ rtsd r15, 8 ++ nop ++#else + .section .init, "ax" + lw r15, r0, r1 + rtsd r15, 8 +@@ -39,3 +51,4 @@ + lw r15, r0, r1 + rtsd r15, 8 + addik r1, r1, 16 ++#endif +-- +2.7.4 + diff --git a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-8/0047-Added-double-arith-instructions.patch b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-8/0047-Added-double-arith-instructions.patch new file mode 100644 index 00000000..f28d9f51 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-8/0047-Added-double-arith-instructions.patch @@ -0,0 +1,135 @@ +From b09721c830dd0831f50084e2e64920f83618e3f4 Mon Sep 17 00:00:00 2001 +From: Nagaraju Mekala +Date: Tue, 9 Oct 2018 10:07:08 +0530 +Subject: [PATCH 47/54] -Added double arith instructions -Fixed prologue stack + pointer decrement issue + +--- + gcc/config/microblaze/microblaze.md | 78 ++++++++++++++++++++++++++++++++----- + gcc/config/microblaze/t-microblaze | 7 ++++ + 2 files changed, 76 insertions(+), 9 deletions(-) + +diff --git a/gcc/config/microblaze/microblaze.md b/gcc/config/microblaze/microblaze.md +index 2669a28..dca61d6 100644 +--- a/gcc/config/microblaze/microblaze.md ++++ b/gcc/config/microblaze/microblaze.md +@@ -525,6 +525,66 @@ + (set_attr "mode" "SF") + (set_attr "length" "4")]) + ++(define_insn "fix_truncsfsi2" ++ [(set (match_operand:SI 0 "register_operand" "=d") ++ (fix:SI (match_operand:SF 1 "register_operand" "d")))] ++ "TARGET_HARD_FLOAT && TARGET_FLOAT_CONVERT" ++ "fint\t%0,%1" ++ [(set_attr "type" "fint") ++ (set_attr "mode" "SF") ++ (set_attr "length" "4")]) ++ ++ ++(define_insn "adddf3" ++ [(set (match_operand:DF 0 "register_operand" "=d") ++ (plus:DF (match_operand:DF 1 "register_operand" "d") ++ (match_operand:DF 2 "register_operand" "d")))] ++ "TARGET_MB_64" ++ "dadd\t%0,%1,%2" ++ [(set_attr "type" "fadd") ++ (set_attr "mode" "DF") ++ (set_attr "length" "4")]) ++ ++(define_insn "subdf3" ++ [(set (match_operand:DF 0 "register_operand" "=d") ++ (minus:DF (match_operand:DF 1 "register_operand" "d") ++ (match_operand:DF 2 "register_operand" "d")))] ++ "TARGET_MB_64" ++ "drsub\t%0,%2,%1" ++ [(set_attr "type" "frsub") ++ (set_attr "mode" "DF") ++ (set_attr "length" "4")]) ++ ++(define_insn "muldf3" ++ [(set (match_operand:DF 0 "register_operand" "=d") ++ (mult:DF (match_operand:DF 1 "register_operand" "d") ++ (match_operand:DF 2 "register_operand" "d")))] ++ "TARGET_MB_64" ++ "dmul\t%0,%1,%2" ++ [(set_attr "type" "fmul") ++ (set_attr "mode" "DF") ++ (set_attr "length" "4")]) ++ ++(define_insn "divdf3" ++ [(set (match_operand:DF 0 "register_operand" "=d") ++ (div:DF (match_operand:DF 1 "register_operand" "d") ++ (match_operand:DF 2 "register_operand" "d")))] ++ "TARGET_MB_64" ++ "ddiv\t%0,%2,%1" ++ [(set_attr "type" "fdiv") ++ (set_attr "mode" "DF") ++ (set_attr "length" "4")]) ++ ++ ++(define_insn "sqrtdf2" ++ [(set (match_operand:DF 0 "register_operand" "=d") ++ (sqrt:DF (match_operand:DF 1 "register_operand" "d")))] ++ "TARGET_MB_64" ++ "dsqrt\t%0,%1" ++ [(set_attr "type" "fsqrt") ++ (set_attr "mode" "DF") ++ (set_attr "length" "4")]) ++ + (define_insn "floatdidf2" + [(set (match_operand:DF 0 "register_operand" "=d") + (float:DF (match_operand:DI 1 "register_operand" "d")))] +@@ -534,13 +594,13 @@ + (set_attr "mode" "DF") + (set_attr "length" "4")]) + +-(define_insn "fix_truncsfsi2" +- [(set (match_operand:SI 0 "register_operand" "=d") +- (fix:SI (match_operand:SF 1 "register_operand" "d")))] +- "TARGET_HARD_FLOAT && TARGET_FLOAT_CONVERT" +- "fint\t%0,%1" +- [(set_attr "type" "fint") +- (set_attr "mode" "SF") ++(define_insn "floatdfdi2" ++ [(set (match_operand:DI 0 "register_operand" "=d") ++ (float:DI (match_operand:DF 1 "register_operand" "d")))] ++ "TARGET_MB_64" ++ "dlong\t%0,%1" ++ [(set_attr "type" "fcvt") ++ (set_attr "mode" "DI") + (set_attr "length" "4")]) + + ;;---------------------------------------------------------------- +@@ -658,8 +718,8 @@ + "TARGET_MB_64" + "@ + rsubl\t%0,%2,%1 +- addik\t%0,%z1,-%2 +- addik\t%0,%z1,-%2" ++ addlik\t%0,%z1,-%2 ++ addlik\t%0,%z1,-%2" + [(set_attr "type" "arith,no_delay_arith,no_delay_arith") + (set_attr "mode" "DI") + (set_attr "length" "4,4,4")]) +diff --git a/gcc/config/microblaze/t-microblaze b/gcc/config/microblaze/t-microblaze +index 35ab965..dfef45c 100644 +--- a/gcc/config/microblaze/t-microblaze ++++ b/gcc/config/microblaze/t-microblaze +@@ -1,6 +1,13 @@ + MULTILIB_OPTIONS = m64 mxl-barrel-shift mlittle-endian mno-xl-soft-mul mxl-multiply-high + MULTILIB_DIRNAMES = m64 bs le m mh + MULTILIB_EXCEPTIONS = *m64/mxl-multiply-high mxl-multiply-high ++MULTILIB_EXCEPTIONS += *m64 ++MULTILIB_EXCEPTIONS += *m64/mxl-barrel-shift ++MULTILIB_EXCEPTIONS += *m64/mno-xl-soft-mul ++MULTILIB_EXCEPTIONS += *m64/mxl-barrel-shift/mno-xl-soft-mul ++MULTILIB_EXCEPTIONS += *m64/mno-xl-soft-mul ++MULTILIB_EXCEPTIONS += *m64/mxl-barrel-shift/mno-xl-soft-mul/mxl-multiply-high ++MULTILIB_EXCEPTIONS += *m64/mno-xl-soft-mul/mxl-multiply-high + MULTILIB_EXCEPTIONS += *mxl-barrel-shift/mxl-multiply-high mxl-multiply-high + MULTILIB_EXCEPTIONS += *mlittle-endian/mxl-multiply-high mxl-multiply-high + MULTILIB_EXCEPTIONS += *m64/mxl-barrel-shift/mlittle-endian/mxl-multiply-high +-- +2.7.4 + diff --git a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-8/0048-Fixed-the-issue-in-the-delay-slot-with-swap-instruct.patch b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-8/0048-Fixed-the-issue-in-the-delay-slot-with-swap-instruct.patch new file mode 100644 index 00000000..9a214d55 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-8/0048-Fixed-the-issue-in-the-delay-slot-with-swap-instruct.patch @@ -0,0 +1,37 @@ +From 1ed548dd5993b8c3e58ef393467bdeea49c437be Mon Sep 17 00:00:00 2001 +From: Nagaraju Mekala +Date: Fri, 12 Oct 2018 16:07:36 +0530 +Subject: [PATCH 48/54] Fixed the issue in the delay slot with swap + instructions + +--- + gcc/config/microblaze/microblaze.md | 6 ++++++ + 1 file changed, 6 insertions(+) + +diff --git a/gcc/config/microblaze/microblaze.md b/gcc/config/microblaze/microblaze.md +index dca61d6..d037843 100644 +--- a/gcc/config/microblaze/microblaze.md ++++ b/gcc/config/microblaze/microblaze.md +@@ -441,6 +441,9 @@ + (bswap:SI (match_operand:SI 1 "register_operand" "r")))] + "TARGET_REORDER" + "swapb %0, %1" ++ [(set_attr "type" "no_delay_arith") ++ (set_attr "mode" "SI") ++ (set_attr "length" "4")] + ) + + (define_insn "bswaphi2" +@@ -449,6 +452,9 @@ + "TARGET_REORDER" + "swapb %0, %1 + swaph %0, %0" ++ [(set_attr "type" "no_delay_arith") ++ (set_attr "mode" "SI") ++ (set_attr "length" "8")] + ) + + ;;---------------------------------------------------------------- +-- +2.7.4 + diff --git a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-8/0049-Fixed-the-load-store-issue-with-the-32bit-arith-libr.patch b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-8/0049-Fixed-the-load-store-issue-with-the-32bit-arith-libr.patch new file mode 100644 index 00000000..a682bc19 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-8/0049-Fixed-the-load-store-issue-with-the-32bit-arith-libr.patch @@ -0,0 +1,256 @@ +From 1c889b64454f63f164f34d79d891d91b0bb4731f Mon Sep 17 00:00:00 2001 +From: Nagaraju Mekala +Date: Sat, 13 Oct 2018 21:12:43 +0530 +Subject: [PATCH 49/54] Fixed the load store issue with the 32bit arith + libraries + +--- + libgcc/config/microblaze/divsi3.S | 25 ++++++++++++++++++++++++- + libgcc/config/microblaze/modsi3.S | 26 +++++++++++++++++++++++++- + libgcc/config/microblaze/mulsi3.S | 3 +++ + libgcc/config/microblaze/udivsi3.S | 24 +++++++++++++++++++++++- + libgcc/config/microblaze/umodsi3.S | 24 +++++++++++++++++++++++- + 5 files changed, 98 insertions(+), 4 deletions(-) + +diff --git a/libgcc/config/microblaze/divsi3.S b/libgcc/config/microblaze/divsi3.S +index 663d398..7e7d875 100644 +--- a/libgcc/config/microblaze/divsi3.S ++++ b/libgcc/config/microblaze/divsi3.S +@@ -41,6 +41,17 @@ + .globl __divsi3 + .ent __divsi3 + .type __divsi3,@function ++#ifdef __arch64__ ++ .align 3 ++__divsi3: ++ .frame r1,0,r15 ++ ++ ADDIK r1,r1,-32 ++ SLI r28,r1,0 ++ SLI r29,r1,8 ++ SLI r30,r1,16 ++ SLI r31,r1,24 ++#else + __divsi3: + .frame r1,0,r15 + +@@ -49,7 +60,7 @@ __divsi3: + SWI r29,r1,4 + SWI r30,r1,8 + SWI r31,r1,12 +- ++#endif + BEQI r6,$LaDiv_By_Zero # Div_by_Zero # Division Error + BEQI r5,$LaResult_Is_Zero # Result is Zero + BGEID r5,$LaR5_Pos +@@ -89,6 +100,17 @@ $LaLOOP_END: + $LaDiv_By_Zero: + $LaResult_Is_Zero: + OR r3,r0,r0 # set result to 0 ++#ifdef __arch64__ ++$LaRETURN_HERE: ++# Restore values of CSRs and that of r3 and the divisor and the dividend ++ LLI r28,r1,0 ++ LLI r29,r1,8 ++ LLI r30,r1,16 ++ LLI r31,r1,24 ++ ADDLIK r1,r1,32 ++ RTSD r15,8 ++ NOP ++#else + $LaRETURN_HERE: + # Restore values of CSRs and that of r3 and the divisor and the dividend + LWI r28,r1,0 +@@ -97,6 +119,7 @@ $LaRETURN_HERE: + LWI r31,r1,12 + RTSD r15,8 + ADDIK r1,r1,16 ++#endif + .end __divsi3 + .size __divsi3, . - __divsi3 + +diff --git a/libgcc/config/microblaze/modsi3.S b/libgcc/config/microblaze/modsi3.S +index 71b56e30..7e85064 100644 +--- a/libgcc/config/microblaze/modsi3.S ++++ b/libgcc/config/microblaze/modsi3.S +@@ -41,6 +41,17 @@ + .globl __modsi3 + .ent __modsi3 + .type __modsi3,@function ++#ifdef __arch64__ ++ .align 3 ++__modsi3: ++ .frame r1,0,r15 ++ ++ addlik r1,r1,-32 ++ sli r28,r1,0 ++ sli r29,r1,8 ++ sli r30,r1,16 ++ sli r31,r1,24 ++#else + __modsi3: + .frame r1,0,r15 + +@@ -49,6 +60,7 @@ __modsi3: + swi r29,r1,4 + swi r30,r1,8 + swi r31,r1,12 ++#endif + + BEQI r6,$LaDiv_By_Zero # Div_by_Zero # Division Error + BEQI r5,$LaResult_Is_Zero # Result is Zero +@@ -88,6 +100,18 @@ $LaLOOP_END: + $LaDiv_By_Zero: + $LaResult_Is_Zero: + or r3,r0,r0 # set result to 0 [Both mod as well as div are 0] ++ ++#ifdef __arch64__ ++$LaRETURN_HERE: ++# Restore values of CSRs and that of r3 and the divisor and the dividend ++ lli r28,r1,0 ++ lli r29,r1,8 ++ lli r30,r1,16 ++ lli r31,r1,24 ++ addik r1,r1,32 ++ rtsd r15,8 ++ nop ++#else + $LaRETURN_HERE: + # Restore values of CSRs and that of r3 and the divisor and the dividend + lwi r28,r1,0 +@@ -95,7 +119,7 @@ $LaRETURN_HERE: + lwi r30,r1,8 + lwi r31,r1,12 + rtsd r15,8 +- addik r1,r1,16 ++#endif + .end __modsi3 + .size __modsi3, . - __modsi3 + +diff --git a/libgcc/config/microblaze/mulsi3.S b/libgcc/config/microblaze/mulsi3.S +index 40b0b15..31a73c2 100644 +--- a/libgcc/config/microblaze/mulsi3.S ++++ b/libgcc/config/microblaze/mulsi3.S +@@ -41,6 +41,9 @@ + .globl __mulsi3 + .ent __mulsi3 + .type __mulsi3,@function ++#ifdef __arch64__ ++ .align 3 ++#endif + __mulsi3: + .frame r1,0,r15 + add r3,r0,r0 +diff --git a/libgcc/config/microblaze/udivsi3.S b/libgcc/config/microblaze/udivsi3.S +index 2aef8ed..94adb6a 100644 +--- a/libgcc/config/microblaze/udivsi3.S ++++ b/libgcc/config/microblaze/udivsi3.S +@@ -41,6 +41,16 @@ + .globl __udivsi3 + .ent __udivsi3 + .type __udivsi3,@function ++#ifdef __arch64__ ++ .align 3 ++__udivsi3: ++ .frame r1,0,r15 ++ ++ ADDLIK r1,r1,-24 ++ SLI r29,r1,0 ++ SLI r30,r1,8 ++ SLI r31,r1,16 ++#else + __udivsi3: + .frame r1,0,r15 + +@@ -48,7 +58,7 @@ __udivsi3: + SWI r29,r1,0 + SWI r30,r1,4 + SWI r31,r1,8 +- ++#endif + BEQI r6,$LaDiv_By_Zero # Div_by_Zero # Division Error + BEQID r5,$LaResult_Is_Zero # Result is Zero + ADDIK r30,r0,0 # Clear mod +@@ -98,6 +108,17 @@ $LaLOOP_END: + $LaDiv_By_Zero: + $LaResult_Is_Zero: + OR r3,r0,r0 # set result to 0 ++ ++#ifdef __arch64__ ++$LaRETURN_HERE: ++ # Restore values of CSRs and that of r3 and the divisor and the dividend ++ LLI r29,r1,0 ++ LLI r30,r1,8 ++ LLI r31,r1,16 ++ ADDIK r1,r1,24 ++ RTSD r15,8 ++ NOP ++#else + $LaRETURN_HERE: + # Restore values of CSRs and that of r3 and the divisor and the dividend + LWI r29,r1,0 +@@ -105,5 +126,6 @@ $LaRETURN_HERE: + LWI r31,r1,8 + RTSD r15,8 + ADDIK r1,r1,12 ++#endif + .end __udivsi3 + .size __udivsi3, . - __udivsi3 +diff --git a/libgcc/config/microblaze/umodsi3.S b/libgcc/config/microblaze/umodsi3.S +index a2582d0..00b3bdf 100644 +--- a/libgcc/config/microblaze/umodsi3.S ++++ b/libgcc/config/microblaze/umodsi3.S +@@ -41,6 +41,16 @@ + .globl __umodsi3 + .ent __umodsi3 + .type __umodsi3,@function ++#ifdef __arch64__ ++ .align 3 ++__umodsi3: ++ .frame r1,0,r15 ++ ++ addik r1,r1,-24 ++ swi r29,r1,0 ++ swi r30,r1,8 ++ swi r31,r1,16 ++#else + __umodsi3: + .frame r1,0,r15 + +@@ -48,7 +58,7 @@ __umodsi3: + swi r29,r1,0 + swi r30,r1,4 + swi r31,r1,8 +- ++#endif + BEQI r6,$LaDiv_By_Zero # Div_by_Zero # Division Error + BEQId r5,$LaResult_Is_Zero # Result is Zero + ADDIK r3,r0,0 # Clear div +@@ -101,6 +111,17 @@ $LaLOOP_END: + $LaDiv_By_Zero: + $LaResult_Is_Zero: + or r3,r0,r0 # set result to 0 ++ ++#ifdef __arch64__ ++$LaRETURN_HERE: ++# Restore values of CSRs and that of r3 and the divisor and the dividend ++ lli r29,r1,0 ++ lli r30,r1,8 ++ lli r31,r1,16 ++ addlik r1,r1,24 ++ rtsd r15,8 ++ nop ++#else + $LaRETURN_HERE: + # Restore values of CSRs and that of r3 and the divisor and the dividend + lwi r29,r1,0 +@@ -108,5 +129,6 @@ $LaRETURN_HERE: + lwi r31,r1,8 + rtsd r15,8 + addik r1,r1,12 ++#endif + .end __umodsi3 + .size __umodsi3, . - __umodsi3 +-- +2.7.4 + diff --git a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-8/0050-extending-the-Dwarf-support-to-64bit-Microblaze.patch b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-8/0050-extending-the-Dwarf-support-to-64bit-Microblaze.patch new file mode 100644 index 00000000..95a26db2 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-8/0050-extending-the-Dwarf-support-to-64bit-Microblaze.patch @@ -0,0 +1,25 @@ +From 751a01ce1eeaffcd41c504b9bf44868345b45da0 Mon Sep 17 00:00:00 2001 +From: Nagaraju Mekala +Date: Mon, 15 Oct 2018 12:00:10 +0530 +Subject: [PATCH 50/54] extending the Dwarf support to 64bit Microblaze + +--- + gcc/config/microblaze/microblaze.h | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/gcc/config/microblaze/microblaze.h b/gcc/config/microblaze/microblaze.h +index e34f549..0a5ff0a 100644 +--- a/gcc/config/microblaze/microblaze.h ++++ b/gcc/config/microblaze/microblaze.h +@@ -207,7 +207,7 @@ extern enum pipeline_type microblaze_pipe; + /* Use DWARF 2 debugging information by default. */ + #define DWARF2_DEBUGGING_INFO 1 + #define PREFERRED_DEBUGGING_TYPE DWARF2_DEBUG +-#define DWARF2_ADDR_SIZE 4 ++#define DWARF2_ADDR_SIZE (TARGET_MB_64 ? 8 : 4) + + /* Target machine storage layout */ + +-- +2.7.4 + diff --git a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-8/0051-fixing-the-typo-errors-in-umodsi3-file.patch b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-8/0051-fixing-the-typo-errors-in-umodsi3-file.patch new file mode 100644 index 00000000..574037ec --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-8/0051-fixing-the-typo-errors-in-umodsi3-file.patch @@ -0,0 +1,29 @@ +From 295046d0a63148fb5a685ae2bd7a06489274c72a Mon Sep 17 00:00:00 2001 +From: Nagaraju Mekala +Date: Tue, 16 Oct 2018 07:55:46 +0530 +Subject: [PATCH 51/54] fixing the typo errors in umodsi3 file + +--- + libgcc/config/microblaze/umodsi3.S | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +diff --git a/libgcc/config/microblaze/umodsi3.S b/libgcc/config/microblaze/umodsi3.S +index 00b3bdf..9bf65c3 100644 +--- a/libgcc/config/microblaze/umodsi3.S ++++ b/libgcc/config/microblaze/umodsi3.S +@@ -47,9 +47,9 @@ __umodsi3: + .frame r1,0,r15 + + addik r1,r1,-24 +- swi r29,r1,0 +- swi r30,r1,8 +- swi r31,r1,16 ++ sli r29,r1,0 ++ sli r30,r1,8 ++ sli r31,r1,16 + #else + __umodsi3: + .frame r1,0,r15 +-- +2.7.4 + diff --git a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-8/0052-fixing-the-32bit-LTO-related-issue9-1014024.patch b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-8/0052-fixing-the-32bit-LTO-related-issue9-1014024.patch new file mode 100644 index 00000000..95d39bb2 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-8/0052-fixing-the-32bit-LTO-related-issue9-1014024.patch @@ -0,0 +1,68 @@ +From d55eff09f175ddbc66e4e800fa5650ce9e2f599e Mon Sep 17 00:00:00 2001 +From: Nagaraju Mekala +Date: Wed, 17 Oct 2018 16:56:14 +0530 +Subject: [PATCH 52/54] fixing the 32bit LTO related issue9(1014024) + +--- + gcc/config/microblaze/microblaze.h | 24 ++++++++++++++---------- + 1 file changed, 14 insertions(+), 10 deletions(-) + +diff --git a/gcc/config/microblaze/microblaze.h b/gcc/config/microblaze/microblaze.h +index 0a5ff0a..740b8d9 100644 +--- a/gcc/config/microblaze/microblaze.h ++++ b/gcc/config/microblaze/microblaze.h +@@ -265,12 +265,14 @@ extern enum pipeline_type microblaze_pipe; + #define WORD_REGISTER_OPERATIONS 1 + + #define LOAD_EXTEND_OP(MODE) ZERO_EXTEND +-/* +-#define PROMOTE_MODE(MODE, UNSIGNEDP, TYPE) \ +- if (GET_MODE_CLASS (MODE) == MODE_INT \ +- && GET_MODE_SIZE (MODE) < (TARGET_MB_64 ? 8 : 4)) \ +- (MODE) = TARGET_MB_64 ? DImode : SImode; +-*/ ++ ++#ifndef __arch64__ ++#define PROMOTE_MODE(MODE, UNSIGNEDP, TYPE) \ ++ if (GET_MODE_CLASS (MODE) == MODE_INT \ ++ && GET_MODE_SIZE (MODE) < 4) \ ++ (MODE) = SImode; ++#endif ++ + /* Standard register usage. */ + + /* On the MicroBlaze, we have 32 integer registers */ +@@ -469,16 +471,18 @@ extern struct microblaze_frame_info current_frame_info; + + #define MAX_ARGS_IN_REGISTERS MB_ABI_MAX_ARG_REGS + ++#ifdef __aarch64__ + #define LIBCALL_VALUE(MODE) \ + gen_rtx_REG (MODE,GP_RETURN) +- +-/*#define LIBCALL_VALUE(MODE) \ ++#else ++#define LIBCALL_VALUE(MODE) \ + gen_rtx_REG ( \ + ((GET_MODE_CLASS (MODE) != MODE_INT \ + || GET_MODE_SIZE (MODE) >= 4) \ + ? (MODE) \ + : SImode), GP_RETURN) +-*/ ++#endif ++ + /* 1 if N is a possible register number for a function value. + On the MicroBlaze, R2 R3 are the only register thus used. + Currently, R2 are only implemented here (C has no complex type) */ +@@ -518,7 +522,7 @@ typedef struct microblaze_args + /* 4 insns + 2 words of data. */ + #define TRAMPOLINE_SIZE (6 * 4) + +-#define TRAMPOLINE_ALIGNMENT 64 ++#define TRAMPOLINE_ALIGNMENT (TARGET_MB_64 ? 64 : 32) + + #define REGNO_OK_FOR_BASE_P(regno) microblaze_regno_ok_for_base_p ((regno), 1) + +-- +2.7.4 + diff --git a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-8/0053-Fixed-the-missing-stack-adjustment-in-prologue-of-mo.patch b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-8/0053-Fixed-the-missing-stack-adjustment-in-prologue-of-mo.patch new file mode 100644 index 00000000..e992075b --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-8/0053-Fixed-the-missing-stack-adjustment-in-prologue-of-mo.patch @@ -0,0 +1,25 @@ +From 3e7161218dc8b4dd84ad8d31f6dbaa7c256e7a82 Mon Sep 17 00:00:00 2001 +From: Nagaraju Mekala +Date: Fri, 19 Oct 2018 14:26:25 +0530 +Subject: [PATCH 53/54] Fixed the missing stack adjustment in prologue of + modsi3 function + +--- + libgcc/config/microblaze/modsi3.S | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/libgcc/config/microblaze/modsi3.S b/libgcc/config/microblaze/modsi3.S +index 7e85064..46ff34a 100644 +--- a/libgcc/config/microblaze/modsi3.S ++++ b/libgcc/config/microblaze/modsi3.S +@@ -119,6 +119,7 @@ $LaRETURN_HERE: + lwi r30,r1,8 + lwi r31,r1,12 + rtsd r15,8 ++ addik r1,r1,16 + #endif + .end __modsi3 + .size __modsi3, . - __modsi3 +-- +2.7.4 + diff --git a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-8/0054-Patch-Microblaze-corrected-SPN-for-dlong-instruction.patch b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-8/0054-Patch-Microblaze-corrected-SPN-for-dlong-instruction.patch new file mode 100644 index 00000000..afb88d35 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-8/0054-Patch-Microblaze-corrected-SPN-for-dlong-instruction.patch @@ -0,0 +1,29 @@ +From a89b3e6902d7835129ad178f6af896eba15c5d5e Mon Sep 17 00:00:00 2001 +From: Mahesh Bodapati +Date: Wed, 24 Oct 2018 18:31:04 +0530 +Subject: [PATCH 54/54] [Patch,Microblaze] : corrected SPN for dlong + instruction mapping. + +--- + gcc/config/microblaze/microblaze.md | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/gcc/config/microblaze/microblaze.md b/gcc/config/microblaze/microblaze.md +index d037843..cbd7e77 100644 +--- a/gcc/config/microblaze/microblaze.md ++++ b/gcc/config/microblaze/microblaze.md +@@ -600,9 +600,9 @@ + (set_attr "mode" "DF") + (set_attr "length" "4")]) + +-(define_insn "floatdfdi2" ++(define_insn "fix_truncdfdi2" + [(set (match_operand:DI 0 "register_operand" "=d") +- (float:DI (match_operand:DF 1 "register_operand" "d")))] ++ (fix:DI (fix:DF (match_operand:DF 1 "register_operand" "d"))))] + "TARGET_MB_64" + "dlong\t%0,%1" + [(set_attr "type" "fcvt") +-- +2.7.4 + diff --git a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-8/0055-fixing-the-long-long-long-mingw-toolchain-issue.patch b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-8/0055-fixing-the-long-long-long-mingw-toolchain-issue.patch new file mode 100644 index 00000000..4c694723 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-8/0055-fixing-the-long-long-long-mingw-toolchain-issue.patch @@ -0,0 +1,59 @@ +From 76e231f92afd8fda13d6ae18ef3aef0ea6096489 Mon Sep 17 00:00:00 2001 +From: Nagaraju Mekala +Date: Thu, 29 Nov 2018 17:55:08 +0530 +Subject: [PATCH 55/57] fixing the long & long long mingw toolchain issue + +--- + gcc/config/microblaze/constraints.md | 2 +- + gcc/config/microblaze/microblaze.md | 8 ++++---- + 2 files changed, 5 insertions(+), 5 deletions(-) + +diff --git a/gcc/config/microblaze/constraints.md b/gcc/config/microblaze/constraints.md +index 867a7b5..27c6bfc 100644 +--- a/gcc/config/microblaze/constraints.md ++++ b/gcc/config/microblaze/constraints.md +@@ -55,7 +55,7 @@ + (define_constraint "K" + "A constant in the range 0xffffff8000000000L to 0x0000007fffffffffL (inclusive)." + (and (match_code "const_int") +- (match_test "ival > (long)-549755813888 && ival < (long)549755813887"))) ++ (match_test "ival > (long long)-549755813888 && ival < (long long)549755813887"))) + + ;; Define floating point constraints + +diff --git a/gcc/config/microblaze/microblaze.md b/gcc/config/microblaze/microblaze.md +index cbd7e77..e03b835 100644 +--- a/gcc/config/microblaze/microblaze.md ++++ b/gcc/config/microblaze/microblaze.md +@@ -646,8 +646,8 @@ + if (TARGET_MB_64) + { + if (GET_CODE (operands[2]) == CONST_INT && +- INTVAL(operands[2]) < (long)-549755813888 && +- INTVAL(operands[2]) > (long)549755813887) ++ INTVAL(operands[2]) < (long long)-549755813888 && ++ INTVAL(operands[2]) > (long long)549755813887) + FAIL; + } + }) +@@ -1264,7 +1264,7 @@ + (match_operand:DI 1 "immediate_operand" "J,I,Mnis"))] + "TARGET_MB_64 && (register_operand (operands[0], DImode) && + (GET_CODE (operands[1]) == CONST_INT && +- (INTVAL (operands[1]) <= (long)549755813887 && INTVAL (operands[1]) >= (long)-549755813888)))" ++ (INTVAL (operands[1]) <= (long long)549755813887 && INTVAL (operands[1]) >= (long long)-549755813888)))" + "@ + addlk\t%0,r0,r0\t + addlik\t%0,r0,%1\t #N1 %X1 +@@ -1298,7 +1298,7 @@ + case 1: + case 2: + if (GET_CODE (operands[1]) == CONST_INT && +- (INTVAL (operands[1]) > (long)549755813887 || INTVAL (operands[1]) < (long)-549755813888)) ++ (INTVAL (operands[1]) > (long long)549755813887 || INTVAL (operands[1]) < (long long)-549755813888)) + return "addlik\t%0,r0,%h1\n\tbsllli\t%0,%0,32\n\taddlik\t%0,%0,%j1 #li => la"; + else + return "addlik\t%0,r0,%1"; +-- +2.7.4 + diff --git a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-8/0055-microblaze_linker_script_xilinx_ld.patch b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-8/0055-microblaze_linker_script_xilinx_ld.patch new file mode 100644 index 00000000..c009c92d --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-8/0055-microblaze_linker_script_xilinx_ld.patch @@ -0,0 +1,16 @@ +diff --git a/gcc/config/microblaze/microblaze.h b/gcc/config/microblaze/microblaze.h +index 740b8d9..4bda9c2 100644 +--- a/gcc/config/microblaze/microblaze.h ++++ b/gcc/config/microblaze/microblaze.h +@@ -114,8 +114,9 @@ extern enum pipeline_type microblaze_pipe; + %{m64:-EL --oformat=elf64-microblazeel} \ + %{Zxl-mode-xmdstub:-defsym _TEXT_START_ADDR=0x800} \ + %{mxl-mode-xmdstub:-defsym _TEXT_START_ADDR=0x800} \ +- %{mxl-gp-opt:%{G*}} %{!mxl-gp-opt: -G 0} \ +- %{!T*: -dT xilinx.ld%s}" ++ %{mxl-gp-opt:%{G*}} %{!mxl-gp-opt: -G 0}" ++ ++// %{!T*: -dT xilinx.ld%s}" + + /* Specs for the compiler proper */ + diff --git a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-8/0057-Fix-the-MB-64-bug-of-handling-QI-objects.patch b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-8/0057-Fix-the-MB-64-bug-of-handling-QI-objects.patch new file mode 100644 index 00000000..a5a2039d --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-8/0057-Fix-the-MB-64-bug-of-handling-QI-objects.patch @@ -0,0 +1,47 @@ +From 6c58973f1cc1e37773aeab583aa3ac6331489106 Mon Sep 17 00:00:00 2001 +From: Nagaraju +Date: Thu, 14 Mar 2019 18:11:04 +0530 +Subject: [PATCH 57/57] Fix the MB-64 bug of handling QI objects + +--- + gcc/config/microblaze/microblaze.md | 14 +++++++------- + 1 file changed, 7 insertions(+), 7 deletions(-) + +diff --git a/gcc/config/microblaze/microblaze.md b/gcc/config/microblaze/microblaze.md +index e03b835..88aee9e 100644 +--- a/gcc/config/microblaze/microblaze.md ++++ b/gcc/config/microblaze/microblaze.md +@@ -2345,11 +2345,11 @@ else + + (define_insn "branch_zero_64" + [(set (pc) +- (if_then_else (match_operator:SI 0 "ordered_comparison_operator" ++ (if_then_else (match_operator 0 "ordered_comparison_operator" + [(match_operand:SI 1 "register_operand" "d") + (const_int 0)]) +- (match_operand:SI 2 "pc_or_label_operand" "") +- (match_operand:SI 3 "pc_or_label_operand" ""))) ++ (match_operand 2 "pc_or_label_operand" "") ++ (match_operand 3 "pc_or_label_operand" ""))) + ] + "TARGET_MB_64" + { +@@ -2365,11 +2365,11 @@ else + + (define_insn "long_branch_zero" + [(set (pc) +- (if_then_else (match_operator 0 "ordered_comparison_operator" +- [(match_operand 1 "register_operand" "d") ++ (if_then_else (match_operator:DI 0 "ordered_comparison_operator" ++ [(match_operand:DI 1 "register_operand" "d") + (const_int 0)]) +- (match_operand 2 "pc_or_label_operand" "") +- (match_operand 3 "pc_or_label_operand" ""))) ++ (match_operand:DI 2 "pc_or_label_operand" "") ++ (match_operand:DI 3 "pc_or_label_operand" ""))) + ] + "TARGET_MB_64" + { +-- +2.7.4 + diff --git a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-8/0058-Patch-Microblaze-We-will-check-the-possibility-of-pe.patch b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-8/0058-Patch-Microblaze-We-will-check-the-possibility-of-pe.patch new file mode 100644 index 00000000..8bc47a43 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-8/0058-Patch-Microblaze-We-will-check-the-possibility-of-pe.patch @@ -0,0 +1,87 @@ +From bcbfd9f69d858306a080aa7213e96ca6eca66106 Mon Sep 17 00:00:00 2001 +From: Mahesh Bodapati +Date: Fri, 29 Mar 2019 12:08:39 +0530 +Subject: [PATCH 58/61] [Patch,Microblaze] : We will check the possibility of + peephole2 optimization,if we can then we will fix the compiler issue. + +--- + gcc/config/microblaze/microblaze.md | 63 ++++++++++++++++++++++--------------- + 1 file changed, 38 insertions(+), 25 deletions(-) + +diff --git a/gcc/config/microblaze/microblaze.md b/gcc/config/microblaze/microblaze.md +index 88aee9e..8bd175f 100644 +--- a/gcc/config/microblaze/microblaze.md ++++ b/gcc/config/microblaze/microblaze.md +@@ -880,31 +880,44 @@ + (set_attr "mode" "SI") + (set_attr "length" "4")]) + +-(define_peephole2 +- [(set (match_operand:SI 0 "register_operand") +- (fix:SI (match_operand:SF 1 "register_operand"))) +- (set (pc) +- (if_then_else (match_operator 2 "ordered_comparison_operator" +- [(match_operand:SI 3 "register_operand") +- (match_operand:SI 4 "arith_operand")]) +- (label_ref (match_operand 5)) +- (pc)))] +- "TARGET_HARD_FLOAT && !TARGET_MB_64" +- [(set (match_dup 1) (match_dup 3))] +- +- { +- rtx condition; +- rtx cmp_op0 = operands[3]; +- rtx cmp_op1 = operands[4]; +- rtx comp_reg = gen_rtx_REG (SImode, MB_ABI_ASM_TEMP_REGNUM); +- +- emit_insn (gen_cstoresf4 (comp_reg, operands[2], +- gen_rtx_REG (SFmode, REGNO (cmp_op0)), +- gen_rtx_REG (SFmode, REGNO (cmp_op1)))); +- condition = gen_rtx_NE (SImode, comp_reg, const0_rtx); +- emit_jump_insn (gen_condjump (condition, operands[5])); +- } +-) ++;; peephole2 optimization will be done only if fint and if-then-else ++;; are dependent.added condition for the same. ++;; if they are dependent then gcc is giving "flow control insn inside a basic block" ++;; testcase: ++;; volatile float vec = 1.0; ++;; volatile int ci = 2; ++;; register int cj = (int)(vec); ++;;// ci=cj; ++;;// if (ci <0) { ++;; if (cj < 0) { ++;; ci = 0; ++;; } ++;; commenting for now.we will check the possibility of this optimization later ++ ++;;(define_peephole2 ++;; [(set (match_operand:SI 0 "register_operand") ++;; (fix:SI (match_operand:SF 1 "register_operand"))) ++;; (set (pc) ++;; (if_then_else (match_operator 2 "ordered_comparison_operator" ++;; [(match_operand:SI 3 "register_operand") ++;; (match_operand:SI 4 "arith_operand")]) ++;; (label_ref (match_operand 5)) ++;; (pc)))] ++;; "TARGET_HARD_FLOAT && !TARGET_MB_64 && ((REGNO (operands[0])) == (REGNO (operands[3])))" ++;; [(set (match_dup 1) (match_dup 3))] ++;; { ++;; rtx condition; ++;; rtx cmp_op0 = operands[3]; ++;; rtx cmp_op1 = operands[4]; ++;; rtx comp_reg = gen_rtx_REG (SImode, MB_ABI_ASM_TEMP_REGNUM); ++;; ++;; emit_insn (gen_cstoresf4 (comp_reg, operands[2], ++;; gen_rtx_REG (SFmode, REGNO (cmp_op0)), ++;; gen_rtx_REG (SFmode, REGNO (cmp_op1)))); ++;; condition = gen_rtx_NE (SImode, comp_reg, const0_rtx); ++;; emit_jump_insn (gen_condjump (condition, operands[5])); ++;; } ++;;) + + ;;---------------------------------------------------------------- + ;; Negation and one's complement +-- +2.7.4 + diff --git a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-8/0059-Reverting-the-patch-as-kernel-boot-is-not-working-wi.patch b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-8/0059-Reverting-the-patch-as-kernel-boot-is-not-working-wi.patch new file mode 100644 index 00000000..be4dfad5 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-8/0059-Reverting-the-patch-as-kernel-boot-is-not-working-wi.patch @@ -0,0 +1,51 @@ +From 2f22090a7e8216f7a9f7e958b77ac83006a7ce89 Mon Sep 17 00:00:00 2001 +From: Mahesh Bodapati +Date: Tue, 16 Apr 2019 17:20:24 +0530 +Subject: [PATCH 59/61] Reverting the patch as kernel boot is not working with + this patch CR-1026413 Revert "[Patch,Microblaze]:reverting the cost check + before propagating constants." + +This reverts commit 7156e379a67fa47a5fb9ede1448c0d528dbda65b. +--- + gcc/cprop.c | 4 ---- + 1 file changed, 4 deletions(-) + +diff --git a/gcc/cprop.c b/gcc/cprop.c +index deb706b..e4df509 100644 +--- a/gcc/cprop.c ++++ b/gcc/cprop.c +@@ -733,7 +733,6 @@ try_replace_reg (rtx from, rtx to, rtx_insn *insn) + int success = 0; + rtx set = single_set (insn); + +-#if 0 + bool check_rtx_costs = true; + bool speed = optimize_bb_for_speed_p (BLOCK_FOR_INSN (insn)); + int old_cost = set ? set_rtx_cost (set, speed) : 0; +@@ -745,7 +744,6 @@ try_replace_reg (rtx from, rtx to, rtx_insn *insn) + && (GET_CODE (XEXP (note, 0)) == CONST + || CONSTANT_P (XEXP (note, 0))))) + check_rtx_costs = false; +-#endif + + /* Usually we substitute easy stuff, so we won't copy everything. + We however need to take care to not duplicate non-trivial CONST +@@ -754,7 +752,6 @@ try_replace_reg (rtx from, rtx to, rtx_insn *insn) + + validate_replace_src_group (from, to, insn); + +-#if 0 + /* If TO is a constant, check the cost of the set after propagation + to the cost of the set before the propagation. If the cost is + higher, then do not replace FROM with TO. */ +@@ -767,7 +764,6 @@ try_replace_reg (rtx from, rtx to, rtx_insn *insn) + return false; + } + +-#endif + + if (num_changes_pending () && apply_change_group ()) + success = 1; +-- +2.7.4 + diff --git a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-8/0060-Patch-MicroBlaze-fixed-typos-in-mul-div-and-mod-asse.patch b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-8/0060-Patch-MicroBlaze-fixed-typos-in-mul-div-and-mod-asse.patch new file mode 100644 index 00000000..1548faad --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-8/0060-Patch-MicroBlaze-fixed-typos-in-mul-div-and-mod-asse.patch @@ -0,0 +1,466 @@ +From 80919b0f43b275e70521e4f85cd28bcd0ece3b80 Mon Sep 17 00:00:00 2001 +From: Mahesh Bodapati +Date: Wed, 17 Apr 2019 12:36:16 +0530 +Subject: [PATCH 60/61] [Patch,MicroBlaze]: fixed typos in mul,div and mod + assembly files. + +--- + libgcc/config/microblaze/divsi3.S | 47 ++++++++++++++++++++++++++---- + libgcc/config/microblaze/modsi3.S | 40 +++++++++++++++++++++++--- + libgcc/config/microblaze/mulsi3.S | 33 +++++++++++++++++++++- + libgcc/config/microblaze/udivsi3.S | 54 +++++++++++++++++++++++++++++++---- + libgcc/config/microblaze/umodsi3.S | 58 +++++++++++++++++++++++++++++++++++--- + 5 files changed, 212 insertions(+), 20 deletions(-) + +diff --git a/libgcc/config/microblaze/divsi3.S b/libgcc/config/microblaze/divsi3.S +index 7e7d875..cfb4c05 100644 +--- a/libgcc/config/microblaze/divsi3.S ++++ b/libgcc/config/microblaze/divsi3.S +@@ -46,7 +46,7 @@ + __divsi3: + .frame r1,0,r15 + +- ADDIK r1,r1,-32 ++ ADDLIK r1,r1,-32 + SLI r28,r1,0 + SLI r29,r1,8 + SLI r30,r1,16 +@@ -61,13 +61,23 @@ __divsi3: + SWI r30,r1,8 + SWI r31,r1,12 + #endif +- BEQI r6,$LaDiv_By_Zero # Div_by_Zero # Division Error +- BEQI r5,$LaResult_Is_Zero # Result is Zero +- BGEID r5,$LaR5_Pos ++#ifdef __arch64__ ++ BEAEQI r6,$LaDiv_By_Zero # Div_by_Zero # Division Error ++ BEAEQI r5,$LaResult_Is_Zero # Result is Zero ++ BEAGEID r5,$LaR5_Pos ++#else ++ BEQI r6,$LaDiv_By_Zero # Div_by_Zero # Division Error ++ BEQI r5,$LaResult_Is_Zero # Result is Zero ++ BGEID r5,$LaR5_Pos ++#endif + XOR r28,r5,r6 # Get the sign of the result + RSUBI r5,r5,0 # Make r5 positive + $LaR5_Pos: +- BGEI r6,$LaR6_Pos ++#ifdef __arch64__ ++ BEAGEI r6,$LaR6_Pos ++#else ++ BGEI r6,$LaR6_Pos ++#endif + RSUBI r6,r6,0 # Make r6 positive + $LaR6_Pos: + ADDIK r30,r0,0 # Clear mod +@@ -76,26 +86,51 @@ $LaR6_Pos: + + # First part try to find the first '1' in the r5 + $LaDIV0: +- BLTI r5,$LaDIV2 # This traps r5 == 0x80000000 ++#ifdef __arch64__ ++ BEALTI r5,$LaDIV2 # This traps r5 == 0x80000000 ++#else ++ BLTI r5,$LaDIV2 # This traps r5 == 0x80000000 ++#endif + $LaDIV1: + ADD r5,r5,r5 # left shift logical r5 ++#ifdef __arch64__ ++ BEAGTID r5,$LaDIV1 ++#else + BGTID r5,$LaDIV1 ++#endif + ADDIK r29,r29,-1 + $LaDIV2: + ADD r5,r5,r5 # left shift logical r5 get the '1' into the Carry + ADDC r30,r30,r30 # Move that bit into the Mod register + RSUB r31,r6,r30 # Try to subtract (r30 a r6) ++#ifdef __arch64__ ++ BEALTI r31,$LaMOD_TOO_SMALL ++#else + BLTI r31,$LaMOD_TOO_SMALL ++#endif + OR r30,r0,r31 # Move the r31 to mod since the result was positive + ADDIK r3,r3,1 + $LaMOD_TOO_SMALL: + ADDIK r29,r29,-1 ++#ifdef __arch64__ ++ BEAEQi r29,$LaLOOP_END ++#else + BEQi r29,$LaLOOP_END ++#endif + ADD r3,r3,r3 # Shift in the '1' into div ++#ifdef __arch64__ ++ BREAI $LaDIV2 # Div2 ++#else + BRI $LaDIV2 # Div2 ++#endif + $LaLOOP_END: ++#ifdef __arch64__ ++ BEAGEI r28,$LaRETURN_HERE ++ BREAID $LaRETURN_HERE ++#else + BGEI r28,$LaRETURN_HERE + BRID $LaRETURN_HERE ++#endif + RSUBI r3,r3,0 # Negate the result + $LaDiv_By_Zero: + $LaResult_Is_Zero: +diff --git a/libgcc/config/microblaze/modsi3.S b/libgcc/config/microblaze/modsi3.S +index 46ff34a..49618dd 100644 +--- a/libgcc/config/microblaze/modsi3.S ++++ b/libgcc/config/microblaze/modsi3.S +@@ -62,40 +62,72 @@ __modsi3: + swi r31,r1,12 + #endif + ++#ifdef __arch64__ ++ BEAEQI r6,$LaDiv_By_Zero # Div_by_Zero # Division Error ++ BEAEQI r5,$LaResult_Is_Zero # Result is Zero ++ BEAGEId r5,$LaR5_Pos ++#else + BEQI r6,$LaDiv_By_Zero # Div_by_Zero # Division Error + BEQI r5,$LaResult_Is_Zero # Result is Zero + BGEId r5,$LaR5_Pos ++#endif + ADD r28,r5,r0 # Get the sign of the result [ Depends only on the first arg] + RSUBI r5,r5,0 # Make r5 positive + $LaR5_Pos: +- BGEI r6,$LaR6_Pos ++#ifdef __arch64__ ++ BEAGEI r6,$LaR6_Pos ++#else ++ BGEI r6,$LaR6_Pos ++#endif + RSUBI r6,r6,0 # Make r6 positive + $LaR6_Pos: + ADDIK r3,r0,0 # Clear mod + ADDIK r30,r0,0 # clear div +- BLTId r5,$LaDIV2 # If r5 is still negative (0x80000000), skip ++#ifdef __arch64__ ++ BEALTId r5,$LaDIV2 # If r5 is still negative (0x80000000), skip + # the first bit search. ++#else ++ BLTId r5,$LaDIV2 # If r5 is still negative (0x80000000), skip ++ # the first bit search. ++#endif + ADDIK r29,r0,32 # Initialize the loop count + # First part try to find the first '1' in the r5 + $LaDIV1: + ADD r5,r5,r5 # left shift logical r5 +- BGEID r5,$LaDIV1 # ++#ifdef __arch64__ ++ BEAGEID r5,$LaDIV1 # ++#else ++ BGEID r5,$LaDIV1 # ++#endif + ADDIK r29,r29,-1 + $LaDIV2: + ADD r5,r5,r5 # left shift logical r5 get the '1' into the Carry + ADDC r3,r3,r3 # Move that bit into the Mod register + rSUB r31,r6,r3 # Try to subtract (r30 a r6) ++#ifdef __arch64__ ++ BEALTi r31,$LaMOD_TOO_SMALL ++#else + BLTi r31,$LaMOD_TOO_SMALL ++#endif + OR r3,r0,r31 # Move the r31 to mod since the result was positive + ADDIK r30,r30,1 + $LaMOD_TOO_SMALL: + ADDIK r29,r29,-1 ++#ifdef __arch64__ ++ BEAEQi r29,$LaLOOP_END ++ ADD r30,r30,r30 # Shift in the '1' into div ++ BREAI $LaDIV2 # Div2 ++$LaLOOP_END: ++ BEAGEI r28,$LaRETURN_HERE ++ BREAId $LaRETURN_HERE ++#else + BEQi r29,$LaLOOP_END + ADD r30,r30,r30 # Shift in the '1' into div + BRI $LaDIV2 # Div2 + $LaLOOP_END: + BGEI r28,$LaRETURN_HERE + BRId $LaRETURN_HERE ++#endif + rsubi r3,r3,0 # Negate the result + $LaDiv_By_Zero: + $LaResult_Is_Zero: +@@ -108,7 +140,7 @@ $LaRETURN_HERE: + lli r29,r1,8 + lli r30,r1,16 + lli r31,r1,24 +- addik r1,r1,32 ++ addlik r1,r1,32 + rtsd r15,8 + nop + #else +diff --git a/libgcc/config/microblaze/mulsi3.S b/libgcc/config/microblaze/mulsi3.S +index 31a73c2..39951be 100644 +--- a/libgcc/config/microblaze/mulsi3.S ++++ b/libgcc/config/microblaze/mulsi3.S +@@ -43,7 +43,37 @@ + .type __mulsi3,@function + #ifdef __arch64__ + .align 3 +-#endif ++__mulsi3: ++ .frame r1,0,r15 ++ add r3,r0,r0 ++ BEAEQI r5,$L_Result_Is_Zero # Multiply by Zero ++ BEAEQI r6,$L_Result_Is_Zero # Multiply by Zero ++ BEAGEId r5,$L_R5_Pos ++ XOR r4,r5,r6 # Get the sign of the result ++ RSUBI r5,r5,0 # Make r5 positive ++$L_R5_Pos: ++ BEAGEI r6,$L_R6_Pos ++ RSUBI r6,r6,0 # Make r6 positive ++$L_R6_Pos: ++ breai $L1 ++$L2: ++ add r5,r5,r5 ++$L1: ++ srl r6,r6 ++ addc r7,r0,r0 ++ beaeqi r7,$L2 ++ beaneid r6,$L2 ++ add r3,r3,r5 ++ bealti r4,$L_NegateResult ++ rtsd r15,8 ++ nop ++$L_NegateResult: ++ rtsd r15,8 ++ rsub r3,r3,r0 ++$L_Result_Is_Zero: ++ rtsd r15,8 ++ addi r3,r0,0 ++#else + __mulsi3: + .frame r1,0,r15 + add r3,r0,r0 +@@ -74,5 +104,6 @@ $L_NegateResult: + $L_Result_Is_Zero: + rtsd r15,8 + addi r3,r0,0 ++#endif + .end __mulsi3 + .size __mulsi3, . - __mulsi3 +diff --git a/libgcc/config/microblaze/udivsi3.S b/libgcc/config/microblaze/udivsi3.S +index 94adb6a..d4fe285 100644 +--- a/libgcc/config/microblaze/udivsi3.S ++++ b/libgcc/config/microblaze/udivsi3.S +@@ -59,52 +59,96 @@ __udivsi3: + SWI r30,r1,4 + SWI r31,r1,8 + #endif ++#ifdef __arch64__ ++ BEAEQI r6,$LaDiv_By_Zero # Div_by_Zero # Division Error ++ BEAEQID r5,$LaResult_Is_Zero # Result is Zero ++#else + BEQI r6,$LaDiv_By_Zero # Div_by_Zero # Division Error + BEQID r5,$LaResult_Is_Zero # Result is Zero ++#endif + ADDIK r30,r0,0 # Clear mod + ADDIK r29,r0,32 # Initialize the loop count + + # Check if r6 and r5 are equal # if yes, return 1 + RSUB r18,r5,r6 ++#ifdef __arch64__ ++ BEAEQID r18,$LaRETURN_HERE ++#else + BEQID r18,$LaRETURN_HERE ++#endif + ADDIK r3,r0,1 + + # Check if (uns)r6 is greater than (uns)r5. In that case, just return 0 + XOR r18,r5,r6 +- BGEID r18,16 ++#ifdef __arch64__ ++ BEAGEID r18,16 ++#else ++ BGEID r18,16 ++#endif + ADD r3,r0,r0 # We would anyways clear r3 ++#ifdef __arch64__ ++ BEALTI r6,$LaRETURN_HERE # r6[bit 31 = 1] hence is greater ++ BREAI $LCheckr6 ++ RSUB r18,r6,r5 # MICROBLAZEcmp ++ BEALTI r18,$LaRETURN_HERE ++#else + BLTI r6,$LaRETURN_HERE # r6[bit 31 = 1] hence is greater + BRI $LCheckr6 + RSUB r18,r6,r5 # MICROBLAZEcmp + BLTI r18,$LaRETURN_HERE +- ++#endif + # If r6 [bit 31] is set, then return result as 1 + $LCheckr6: +- BGTI r6,$LaDIV0 +- BRID $LaRETURN_HERE ++#ifdef __arch64__ ++ BEAGTI r6,$LaDIV0 ++ BREAID $LaRETURN_HERE ++#else ++ BGTI r6,$LaDIV0 ++ BRID $LaRETURN_HERE ++#endif + ADDIK r3,r0,1 + + # First part try to find the first '1' in the r5 + $LaDIV0: ++#ifdef __arch64__ ++ BEALTI r5,$LaDIV2 ++#else + BLTI r5,$LaDIV2 ++#endif + $LaDIV1: + ADD r5,r5,r5 # left shift logical r5 ++#ifdef __arch64__ ++ BEAGTID r5,$LaDIV1 ++#else + BGTID r5,$LaDIV1 ++#endif + ADDIK r29,r29,-1 + $LaDIV2: + ADD r5,r5,r5 # left shift logical r5 get the '1' into the Carry + ADDC r30,r30,r30 # Move that bit into the Mod register + RSUB r31,r6,r30 # Try to subtract (r30 a r6) ++#ifdef __arch64__ ++ BEALTI r31,$LaMOD_TOO_SMALL ++#else + BLTI r31,$LaMOD_TOO_SMALL ++#endif + OR r30,r0,r31 # Move the r31 to mod since the result was positive + ADDIK r3,r3,1 + $LaMOD_TOO_SMALL: + ADDIK r29,r29,-1 ++#ifdef __arch64__ ++ BEAEQi r29,$LaLOOP_END ++ ADD r3,r3,r3 # Shift in the '1' into div ++ BREAI $LaDIV2 # Div2 ++$LaLOOP_END: ++ BREAI $LaRETURN_HERE ++#else + BEQi r29,$LaLOOP_END + ADD r3,r3,r3 # Shift in the '1' into div + BRI $LaDIV2 # Div2 + $LaLOOP_END: + BRI $LaRETURN_HERE ++#endif + $LaDiv_By_Zero: + $LaResult_Is_Zero: + OR r3,r0,r0 # set result to 0 +@@ -115,7 +159,7 @@ $LaRETURN_HERE: + LLI r29,r1,0 + LLI r30,r1,8 + LLI r31,r1,16 +- ADDIK r1,r1,24 ++ ADDLIK r1,r1,24 + RTSD r15,8 + NOP + #else +diff --git a/libgcc/config/microblaze/umodsi3.S b/libgcc/config/microblaze/umodsi3.S +index 9bf65c3..3bd5d48 100644 +--- a/libgcc/config/microblaze/umodsi3.S ++++ b/libgcc/config/microblaze/umodsi3.S +@@ -46,7 +46,7 @@ + __umodsi3: + .frame r1,0,r15 + +- addik r1,r1,-24 ++ addlik r1,r1,-24 + sli r29,r1,0 + sli r30,r1,8 + sli r31,r1,16 +@@ -59,27 +59,77 @@ __umodsi3: + swi r30,r1,4 + swi r31,r1,8 + #endif ++#ifdef __arch64__ ++ BEAEQI r6,$LaDiv_By_Zero # Div_by_Zero # Division Error ++ BEAEQId r5,$LaResult_Is_Zero # Result is Zero ++#else + BEQI r6,$LaDiv_By_Zero # Div_by_Zero # Division Error + BEQId r5,$LaResult_Is_Zero # Result is Zero ++#endif + ADDIK r3,r0,0 # Clear div + ADDIK r30,r0,0 # clear mod + ADDIK r29,r0,32 # Initialize the loop count + + # Check if r6 and r5 are equal # if yes, return 0 + rsub r18,r5,r6 +- beqi r18,$LaRETURN_HERE + ++#ifdef __arch64__ ++ beaeqi r18,$LaRETURN_HERE ++#else ++ beqi r18,$LaRETURN_HERE ++#endif + # Check if (uns)r6 is greater than (uns)r5. In that case, just return r5 + xor r18,r5,r6 ++#ifdef __arch64__ ++ beageid r18,16 ++ addik r3,r5,0 ++ bealti r6,$LaRETURN_HERE ++ breai $LCheckr6 ++ rsub r18,r5,r6 # MICROBLAZEcmp ++ beagti r18,$LaRETURN_HERE ++#else + bgeid r18,16 + addik r3,r5,0 + blti r6,$LaRETURN_HERE + bri $LCheckr6 + rsub r18,r5,r6 # MICROBLAZEcmp + bgti r18,$LaRETURN_HERE +- ++#endif + # If r6 [bit 31] is set, then return result as r5-r6 + $LCheckr6: ++#ifdef __arch64__ ++ beagtid r6,$LaDIV0 ++ addik r3,r0,0 ++ addik r18,r0,0x7fffffff ++ and r5,r5,r18 ++ and r6,r6,r18 ++ breaid $LaRETURN_HERE ++ rsub r3,r6,r5 ++# First part: try to find the first '1' in the r5 ++$LaDIV0: ++ BEALTI r5,$LaDIV2 ++$LaDIV1: ++ ADD r5,r5,r5 # left shift logical r5 ++ BEAGEID r5,$LaDIV1 # ++ ADDIK r29,r29,-1 ++$LaDIV2: ++ ADD r5,r5,r5 # left shift logical r5 get the '1' into the Carry ++ ADDC r3,r3,r3 # Move that bit into the Mod register ++ rSUB r31,r6,r3 # Try to subtract (r3 a r6) ++ BEALTi r31,$LaMOD_TOO_SMALL ++ OR r3,r0,r31 # Move the r31 to mod since the result was positive ++ ADDIK r30,r30,1 ++$LaMOD_TOO_SMALL: ++ ADDIK r29,r29,-1 ++ BEAEQi r29,$LaLOOP_END ++ ADD r30,r30,r30 # Shift in the '1' into div ++ BREAI $LaDIV2 # Div2 ++$LaLOOP_END: ++ BREAI $LaRETURN_HERE ++$LaDiv_By_Zero: ++$LaResult_Is_Zero: ++ or r3,r0,r0 # set result to 0 ++#else + bgtid r6,$LaDIV0 + addik r3,r0,0 + addik r18,r0,0x7fffffff +@@ -111,7 +161,7 @@ $LaLOOP_END: + $LaDiv_By_Zero: + $LaResult_Is_Zero: + or r3,r0,r0 # set result to 0 +- ++#endif + #ifdef __arch64__ + $LaRETURN_HERE: + # Restore values of CSRs and that of r3 and the divisor and the dividend +-- +2.7.4 + diff --git a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-8/0061-Author-Nagaraju-nmekala-xilinx.com.patch b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-8/0061-Author-Nagaraju-nmekala-xilinx.com.patch new file mode 100644 index 00000000..690bc727 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-8/0061-Author-Nagaraju-nmekala-xilinx.com.patch @@ -0,0 +1,479 @@ +From e1b8cfe6c0b4a0bd90ecbd3e85ae7114df21b6cc Mon Sep 17 00:00:00 2001 +From: Nagaraju +Date: Thu, 18 Apr 2019 16:00:37 +0530 +Subject: [PATCH 61/62] Author: Nagaraju Date: Wed Apr + 17 14:11:00 2019 +0530 + + [Patch, microblaze]: MB-64 removal of barrel-shift instructions from default + By default MB-64 is generatting barrel-shift instructions. It has been + removed from default. Barrel-shift instructions will be generated only if + barrel-shifter is enabled. Similarly to double instructions as well. + + Signed-off-by :Nagaraju Mekala +--- + gcc/config/microblaze/microblaze.c | 2 +- + gcc/config/microblaze/microblaze.md | 269 +++++++++++++++++++++++++++++++++--- + 2 files changed, 252 insertions(+), 19 deletions(-) + +diff --git a/gcc/config/microblaze/microblaze.c b/gcc/config/microblaze/microblaze.c +index 33d183e..c321b03 100644 +--- a/gcc/config/microblaze/microblaze.c ++++ b/gcc/config/microblaze/microblaze.c +@@ -3868,7 +3868,7 @@ microblaze_expand_divide (rtx operands[]) + emit_insn (gen_rtx_CLOBBER (Pmode, reg18)); + + if (TARGET_MB_64) { +- emit_insn (gen_ashldi3_long (regt1, operands[1], GEN_INT(4))); ++ emit_insn (gen_ashldi3 (regt1, operands[1], GEN_INT(4))); + emit_insn (gen_adddi3 (regt1, regt1, operands[2])); + } + else { +diff --git a/gcc/config/microblaze/microblaze.md b/gcc/config/microblaze/microblaze.md +index 8bd175f..b5b60fb 100644 +--- a/gcc/config/microblaze/microblaze.md ++++ b/gcc/config/microblaze/microblaze.md +@@ -545,7 +545,7 @@ + [(set (match_operand:DF 0 "register_operand" "=d") + (plus:DF (match_operand:DF 1 "register_operand" "d") + (match_operand:DF 2 "register_operand" "d")))] +- "TARGET_MB_64" ++ "TARGET_MB_64 && TARGET_HARD_FLOAT && TARGET_FLOAT_CONVERT" + "dadd\t%0,%1,%2" + [(set_attr "type" "fadd") + (set_attr "mode" "DF") +@@ -555,7 +555,7 @@ + [(set (match_operand:DF 0 "register_operand" "=d") + (minus:DF (match_operand:DF 1 "register_operand" "d") + (match_operand:DF 2 "register_operand" "d")))] +- "TARGET_MB_64" ++ "TARGET_MB_64 && TARGET_HARD_FLOAT && TARGET_FLOAT_CONVERT" + "drsub\t%0,%2,%1" + [(set_attr "type" "frsub") + (set_attr "mode" "DF") +@@ -565,7 +565,7 @@ + [(set (match_operand:DF 0 "register_operand" "=d") + (mult:DF (match_operand:DF 1 "register_operand" "d") + (match_operand:DF 2 "register_operand" "d")))] +- "TARGET_MB_64" ++ "TARGET_MB_64 && TARGET_HARD_FLOAT && TARGET_FLOAT_CONVERT" + "dmul\t%0,%1,%2" + [(set_attr "type" "fmul") + (set_attr "mode" "DF") +@@ -575,7 +575,7 @@ + [(set (match_operand:DF 0 "register_operand" "=d") + (div:DF (match_operand:DF 1 "register_operand" "d") + (match_operand:DF 2 "register_operand" "d")))] +- "TARGET_MB_64" ++ "TARGET_MB_64 && TARGET_HARD_FLOAT && TARGET_FLOAT_CONVERT" + "ddiv\t%0,%2,%1" + [(set_attr "type" "fdiv") + (set_attr "mode" "DF") +@@ -585,7 +585,7 @@ + (define_insn "sqrtdf2" + [(set (match_operand:DF 0 "register_operand" "=d") + (sqrt:DF (match_operand:DF 1 "register_operand" "d")))] +- "TARGET_MB_64" ++ "TARGET_MB_64 && TARGET_HARD_FLOAT && TARGET_FLOAT_CONVERT" + "dsqrt\t%0,%1" + [(set_attr "type" "fsqrt") + (set_attr "mode" "DF") +@@ -594,7 +594,7 @@ + (define_insn "floatdidf2" + [(set (match_operand:DF 0 "register_operand" "=d") + (float:DF (match_operand:DI 1 "register_operand" "d")))] +- "TARGET_MB_64" ++ "TARGET_MB_64 && TARGET_HARD_FLOAT && TARGET_FLOAT_CONVERT" + "dbl\t%0,%1" + [(set_attr "type" "fcvt") + (set_attr "mode" "DF") +@@ -603,7 +603,7 @@ + (define_insn "fix_truncdfdi2" + [(set (match_operand:DI 0 "register_operand" "=d") + (fix:DI (fix:DF (match_operand:DF 1 "register_operand" "d"))))] +- "TARGET_MB_64" ++ "TARGET_MB_64 && TARGET_HARD_FLOAT && TARGET_FLOAT_CONVERT" + "dlong\t%0,%1" + [(set_attr "type" "fcvt") + (set_attr "mode" "DI") +@@ -1299,6 +1299,34 @@ + (set_attr "mode" "DI") + (set_attr "length" "4")]) + ++(define_insn "*movdi_internal2_bshift" ++ [(set (match_operand:DI 0 "nonimmediate_operand" "=d,d,d, d,d,R,m") ++ (match_operand:DI 1 "move_src_operand" " d,I,Mnis,R,m,dJ,dJ"))] ++ "TARGET_MB_64 && TARGET_BARREL_SHIFT" ++ { ++ switch (which_alternative) ++ { ++ case 0: ++ return "addlk\t%0,%1,r0"; ++ case 1: ++ case 2: ++ if (GET_CODE (operands[1]) == CONST_INT && ++ (INTVAL (operands[1]) > (long long)549755813887 || INTVAL (operands[1]) < (long long)-549755813888)) ++ return "addlik\t%0,r0,%h1\n\tbsllli\t%0,%0,32\n\taddlik\t%0,%0,%j1 #li => la"; ++ else ++ return "addlik\t%0,r0,%1"; ++ case 3: ++ case 4: ++ return "ll%i1\t%0,%1"; ++ case 5: ++ case 6: ++ return "sl%i0\t%z1,%0"; ++ } ++ } ++ [(set_attr "type" "load,no_delay_load,no_delay_load,no_delay_load,no_delay_load,no_delay_store,no_delay_store") ++ (set_attr "mode" "DI") ++ (set_attr "length" "4,4,12,4,8,4,8")]) ++ + (define_insn "*movdi_internal2" + [(set (match_operand:DI 0 "nonimmediate_operand" "=d,d,d, d,d,R,m") + (match_operand:DI 1 "move_src_operand" " d,I,Mnis,R,m,dJ,dJ"))] +@@ -1312,7 +1340,15 @@ + case 2: + if (GET_CODE (operands[1]) == CONST_INT && + (INTVAL (operands[1]) > (long long)549755813887 || INTVAL (operands[1]) < (long long)-549755813888)) +- return "addlik\t%0,r0,%h1\n\tbsllli\t%0,%0,32\n\taddlik\t%0,%0,%j1 #li => la"; ++ { ++ operands[2] = gen_rtx_REG (DImode, MB_ABI_ASM_TEMP_REGNUM); ++ output_asm_insn ("addlik\t%0,r0,%h1", operands); ++ output_asm_insn ("addlik\t%2,r0,32", operands); ++ output_asm_insn ("addlik\t%2,%2,-1", operands); ++ output_asm_insn ("beaneid\t%2,.-8", operands); ++ output_asm_insn ("addlk\t%0,%0,%0", operands); ++ return "addlik\t%0,%0,%j1 #li => la"; ++ } + else + return "addlik\t%0,r0,%1"; + case 3: +@@ -1386,7 +1422,7 @@ + (define_insn "movdi_long_int" + [(set (match_operand:DI 0 "nonimmediate_operand" "=d") + (match_operand:DI 1 "general_operand" "i"))] +- "TARGET_MB_64" ++ "TARGET_MB_64 && TARGET_BARREL_SHIFT" + "addlik\t%0,r0,%h1\n\tbsllli\t%0,%0,32\n\taddlik\t%0,%0,%j1 #li => la"; + [(set_attr "type" "no_delay_arith") + (set_attr "mode" "DI") +@@ -1653,6 +1689,33 @@ + ;; movdf_internal + ;; Applies to both TARGET_SOFT_FLOAT and TARGET_HARD_FLOAT + ;; ++(define_insn "*movdf_internal_64_bshift" ++ [(set (match_operand:DF 0 "nonimmediate_operand" "=d,d,d,d,d,m") ++ (match_operand:DF 1 "general_operand" "d,dG,m,F,T,d"))] ++ "TARGET_MB_64 && TARGET_BARREL_SHIFT" ++ { ++ switch (which_alternative) ++ { ++ case 0: ++ return "addlk\t%0,%1,r0"; ++ case 1: ++ return "addlk\t%0,r0,r0"; ++ case 2: ++ case 4: ++ return "ll%i1\t%0,%1"; ++ case 3: ++ { ++ return "addlik\t%0,r0,%j1 \n\tbsllli\t%0,%0,32\n\taddlik\t%0,%0,%h1 #Xfer Lo"; ++ } ++ case 5: ++ return "sl%i0\t%1,%0"; ++ } ++ gcc_unreachable (); ++ } ++ [(set_attr "type" "no_delay_move,no_delay_move,no_delay_load,no_delay_load,no_delay_load,no_delay_store") ++ (set_attr "mode" "DF") ++ (set_attr "length" "4,4,4,16,4,4")]) ++ + (define_insn "*movdf_internal_64" + [(set (match_operand:DF 0 "nonimmediate_operand" "=d,d,d,d,d,m") + (match_operand:DF 1 "general_operand" "d,dG,m,F,T,d"))] +@@ -1669,7 +1732,13 @@ + return "ll%i1\t%0,%1"; + case 3: + { +- return "addlik\t%0,r0,%j1 \n\tbsllli\t%0,%0,32\n\taddlik\t%0,%0,%h1 #Xfer Lo"; ++ operands[2] = gen_rtx_REG (DImode, MB_ABI_ASM_TEMP_REGNUM); ++ output_asm_insn ("addlik\t%0,r0,%h1", operands); ++ output_asm_insn ("addlik\t%2,r0,32", operands); ++ output_asm_insn ("addlik\t%2,%2,-1", operands); ++ output_asm_insn ("beaneid\t%2,.-8", operands); ++ output_asm_insn ("addlk\t%0,%0,%0", operands); ++ return "addlik\t%0,%0,%j1 #li => la"; + } + case 5: + return "sl%i0\t%1,%0"; +@@ -1789,11 +1858,21 @@ + "TARGET_MB_64" + { + ;;if (CONST_INT_P (operands[2]) && INTVAL (operands[2]) > 0 && INTVAL (operands[2]) < 65) +-if (INTVAL (operands[2]) > 0 && INTVAL (operands[2]) < 65) ++if (INTVAL (operands[2]) > 0 && INTVAL (operands[2]) < 65 && TARGET_BARREL_SHIFT) + { + emit_insn(gen_ashldi3_long (operands[0], operands[1],operands[2])); + DONE; + } ++else if(INTVAL (operands[2]) > 0 && INTVAL (operands[2]) < 65 && CONST_INT_P (operands[2])) ++ { ++ emit_insn(gen_ashldi3_const (operands[0], operands[1],operands[2])); ++ DONE; ++ } ++else if(INTVAL (operands[2]) > 0 && INTVAL (operands[2]) < 65 && GET_CODE (operands[2]) == REG) ++ { ++ emit_insn(gen_ashldi3_reg (operands[0], operands[1],operands[2])); ++ DONE; ++ } + else + FAIL; + } +@@ -1803,7 +1882,7 @@ else + [(set (match_operand:DI 0 "register_operand" "=d,d") + (ashift:DI (match_operand:DI 1 "register_operand" "d,d") + (match_operand:DI 2 "arith_operand" "I,d")))] +- "TARGET_MB_64" ++ "TARGET_MB_64 && TARGET_BARREL_SHIFT" + "@ + bsllli\t%0,%1,%2 + bslll\t%0,%1,%2" +@@ -1811,6 +1890,51 @@ else + (set_attr "mode" "DI,DI") + (set_attr "length" "4,4")] + ) ++ ++(define_insn "ashldi3_const" ++ [(set (match_operand:DI 0 "register_operand" "=&d") ++ (ashift:DI (match_operand:DI 1 "register_operand" "d") ++ (match_operand:DI 2 "immediate_operand" "I")))] ++ "TARGET_MB_64" ++ { ++ operands[3] = gen_rtx_REG (DImode, MB_ABI_ASM_TEMP_REGNUM); ++ ++ output_asm_insn ("orli\t%3,r0,%2", operands); ++ if (REGNO (operands[0]) != REGNO (operands[1])) ++ output_asm_insn ("addlk\t%0,%1,r0", operands); ++ ++ output_asm_insn ("addlik\t%3,%3,-1", operands); ++ output_asm_insn ("beaneid\t%3,.-8", operands); ++ return "addlk\t%0,%0,%0"; ++ } ++ [(set_attr "type" "multi") ++ (set_attr "mode" "DI") ++ (set_attr "length" "20")] ++) ++ ++(define_insn "ashldi3_reg" ++ [(set (match_operand:DI 0 "register_operand" "=&d") ++ (ashift:DI (match_operand:DI 1 "register_operand" "d") ++ (match_operand:DI 2 "register_operand" "d")))] ++ "TARGET_MB_64" ++ { ++ operands[3] = gen_rtx_REG (DImode, MB_ABI_ASM_TEMP_REGNUM); ++ output_asm_insn ("andli\t%3,%2,31", operands); ++ if (REGNO (operands[0]) != REGNO (operands[1])) ++ output_asm_insn ("addlk\t%0,r0,%1", operands); ++ /* Exit the loop if zero shift. */ ++ output_asm_insn ("beaeqid\t%3,.+24", operands); ++ /* Emit the loop. */ ++ output_asm_insn ("addlk\t%0,%0,r0", operands); ++ output_asm_insn ("addlik\t%3,%3,-1", operands); ++ output_asm_insn ("beaneid\t%3,.-8", operands); ++ return "addlk\t%0,%0,%0"; ++ } ++ [(set_attr "type" "multi") ++ (set_attr "mode" "DI") ++ (set_attr "length" "28")] ++) ++ + ;; The following patterns apply when there is no barrel shifter present + + (define_insn "*ashlsi3_with_mul_delay" +@@ -1944,11 +2068,21 @@ else + "TARGET_MB_64" + { + ;;if (CONST_INT_P (operands[2]) && INTVAL (operands[2]) > 0 && INTVAL (operands[2]) < 65) +-if (INTVAL (operands[2]) > 0 && INTVAL (operands[2]) < 65) ++if (INTVAL (operands[2]) > 0 && INTVAL (operands[2]) < 65 && TARGET_BARREL_SHIFT) + { + emit_insn(gen_ashrdi3_long (operands[0], operands[1],operands[2])); + DONE; + } ++else if(INTVAL (operands[2]) > 0 && INTVAL (operands[2]) < 65 && CONST_INT_P (operands[2])) ++ { ++ emit_insn(gen_ashrdi3_const (operands[0], operands[1],operands[2])); ++ DONE; ++ } ++else if(INTVAL (operands[2]) > 0 && INTVAL (operands[2]) < 65 && GET_CODE (operands[2]) == REG) ++ { ++ emit_insn(gen_ashrdi3_reg (operands[0], operands[1],operands[2])); ++ DONE; ++ } + else + FAIL; + } +@@ -1958,7 +2092,7 @@ else + [(set (match_operand:DI 0 "register_operand" "=d,d") + (ashiftrt:DI (match_operand:DI 1 "register_operand" "d,d") + (match_operand:DI 2 "arith_operand" "I,d")))] +- "TARGET_MB_64" ++ "TARGET_MB_64 && TARGET_BARREL_SHIFT" + "@ + bslrai\t%0,%1,%2 + bslra\t%0,%1,%2" +@@ -1966,6 +2100,51 @@ else + (set_attr "mode" "DI,DI") + (set_attr "length" "4,4")] + ) ++ ++(define_insn "ashrdi3_const" ++ [(set (match_operand:DI 0 "register_operand" "=&d") ++ (ashiftrt:DI (match_operand:DI 1 "register_operand" "d") ++ (match_operand:DI 2 "immediate_operand" "I")))] ++ "TARGET_MB_64" ++ { ++ operands[3] = gen_rtx_REG (DImode, MB_ABI_ASM_TEMP_REGNUM); ++ ++ output_asm_insn ("orli\t%3,r0,%2", operands); ++ if (REGNO (operands[0]) != REGNO (operands[1])) ++ output_asm_insn ("addlk\t%0,%1,r0", operands); ++ ++ output_asm_insn ("addlik\t%3,%3,-1", operands); ++ output_asm_insn ("beaneid\t%3,.-8", operands); ++ return "srla\t%0,%0"; ++ } ++ [(set_attr "type" "arith") ++ (set_attr "mode" "DI") ++ (set_attr "length" "20")] ++) ++ ++(define_insn "ashrdi3_reg" ++ [(set (match_operand:DI 0 "register_operand" "=&d") ++ (ashiftrt:DI (match_operand:DI 1 "register_operand" "d") ++ (match_operand:DI 2 "register_operand" "d")))] ++ "TARGET_MB_64" ++ { ++ operands[3] = gen_rtx_REG (DImode, MB_ABI_ASM_TEMP_REGNUM); ++ output_asm_insn ("andli\t%3,%2,31", operands); ++ if (REGNO (operands[0]) != REGNO (operands[1])) ++ output_asm_insn ("addlk\t%0,r0,%1", operands); ++ /* Exit the loop if zero shift. */ ++ output_asm_insn ("beaeqid\t%3,.+24", operands); ++ /* Emit the loop. */ ++ output_asm_insn ("addlk\t%0,%0,r0", operands); ++ output_asm_insn ("addlik\t%3,%3,-1", operands); ++ output_asm_insn ("beaneid\t%3,.-8", operands); ++ return "srla\t%0,%0"; ++ } ++ [(set_attr "type" "multi") ++ (set_attr "mode" "DI") ++ (set_attr "length" "28")] ++) ++ + (define_expand "ashrsi3" + [(set (match_operand:SI 0 "register_operand" "=&d") + (ashiftrt:SI (match_operand:SI 1 "register_operand" "d") +@@ -2083,11 +2262,21 @@ else + "TARGET_MB_64" + { + ;;if (CONST_INT_P (operands[2]) && INTVAL (operands[2]) > 0 && INTVAL (operands[2]) < 65) +-if (INTVAL (operands[2]) > 0 && INTVAL (operands[2]) < 65) ++if (INTVAL (operands[2]) > 0 && INTVAL (operands[2]) < 65 && TARGET_BARREL_SHIFT) + { + emit_insn(gen_lshrdi3_long (operands[0], operands[1],operands[2])); + DONE; + } ++else if(INTVAL (operands[2]) > 0 && INTVAL (operands[2]) < 65 && CONST_INT_P (operands[2])) ++ { ++ emit_insn(gen_lshrdi3_const (operands[0], operands[1],operands[2])); ++ DONE; ++ } ++else if(INTVAL (operands[2]) > 0 && INTVAL (operands[2]) < 65 && GET_CODE (operands[2]) == REG) ++ { ++ emit_insn(gen_lshrdi3_reg (operands[0], operands[1],operands[2])); ++ DONE; ++ } + else + FAIL; + } +@@ -2097,7 +2286,7 @@ else + [(set (match_operand:DI 0 "register_operand" "=d,d") + (lshiftrt:DI (match_operand:DI 1 "register_operand" "d,d") + (match_operand:DI 2 "arith_operand" "I,d")))] +- "TARGET_MB_64" ++ "TARGET_MB_64 && TARGET_BARREL_SHIFT" + "@ + bslrli\t%0,%1,%2 + bslrl\t%0,%1,%2" +@@ -2106,6 +2295,50 @@ else + (set_attr "length" "4,4")] + ) + ++(define_insn "lshrdi3_const" ++ [(set (match_operand:DI 0 "register_operand" "=&d") ++ (lshiftrt:DI (match_operand:DI 1 "register_operand" "d") ++ (match_operand:DI 2 "immediate_operand" "I")))] ++ "TARGET_MB_64" ++ { ++ operands[3] = gen_rtx_REG (DImode, MB_ABI_ASM_TEMP_REGNUM); ++ ++ output_asm_insn ("orli\t%3,r0,%2", operands); ++ if (REGNO (operands[0]) != REGNO (operands[1])) ++ output_asm_insn ("addlk\t%0,%1,r0", operands); ++ ++ output_asm_insn ("addlik\t%3,%3,-1", operands); ++ output_asm_insn ("beaneid\t%3,.-8", operands); ++ return "srll\t%0,%0"; ++ } ++ [(set_attr "type" "multi") ++ (set_attr "mode" "DI") ++ (set_attr "length" "20")] ++) ++ ++(define_insn "lshrdi3_reg" ++ [(set (match_operand:DI 0 "register_operand" "=&d") ++ (lshiftrt:DI (match_operand:DI 1 "register_operand" "d") ++ (match_operand:DI 2 "register_operand" "d")))] ++ "TARGET_MB_64" ++ { ++ operands[3] = gen_rtx_REG (DImode, MB_ABI_ASM_TEMP_REGNUM); ++ output_asm_insn ("andli\t%3,%2,31", operands); ++ if (REGNO (operands[0]) != REGNO (operands[1])) ++ output_asm_insn ("addlk\t%0,r0,%1", operands); ++ /* Exit the loop if zero shift. */ ++ output_asm_insn ("beaeqid\t%3,.+24", operands); ++ /* Emit the loop. */ ++ output_asm_insn ("addlk\t%0,%0,r0", operands); ++ output_asm_insn ("addlik\t%3,%3,-1", operands); ++ output_asm_insn ("beaneid\t%3,.-8", operands); ++ return "srll\t%0,%0"; ++ } ++ [(set_attr "type" "multi") ++ (set_attr "mode" "SI") ++ (set_attr "length" "28")] ++) ++ + (define_expand "lshrsi3" + [(set (match_operand:SI 0 "register_operand" "=&d") + (lshiftrt:SI (match_operand:SI 1 "register_operand" "d") +@@ -2233,7 +2466,7 @@ else + (eq:DI + (match_operand:DI 1 "register_operand" "d") + (match_operand:DI 2 "register_operand" "d")))] +- "TARGET_MB_64" ++ "TARGET_MB_64 && TARGET_PATTERN_COMPARE" + "pcmpleq\t%0,%1,%2" + [(set_attr "type" "arith") + (set_attr "mode" "DI") +@@ -2245,7 +2478,7 @@ else + (ne:DI + (match_operand:DI 1 "register_operand" "d") + (match_operand:DI 2 "register_operand" "d")))] +- "TARGET_MB_64" ++ "TARGET_MB_64 && TARGET_PATTERN_COMPARE" + "pcmplne\t%0,%1,%2" + [(set_attr "type" "arith") + (set_attr "mode" "DI") +-- +2.7.4 + diff --git a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-8/0062-Patch-microblaze-Add-TARGET_OPTION_OPTIMIZATION-and-.patch b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-8/0062-Patch-microblaze-Add-TARGET_OPTION_OPTIMIZATION-and-.patch new file mode 100644 index 00000000..e7dfa89c --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-8/0062-Patch-microblaze-Add-TARGET_OPTION_OPTIMIZATION-and-.patch @@ -0,0 +1,41 @@ +From 612e6579116e6714417ea21e6c13b0968bb6aac2 Mon Sep 17 00:00:00 2001 +From: Nagaraju +Date: Wed, 8 May 2019 14:12:03 +0530 +Subject: [PATCH 62/62] [Patch, microblaze]: Add TARGET_OPTION_OPTIMIZATION and + disable fivopts by default + +Added TARGET_OPTION_OPTIMIZATIONS and Turn off ivopts by default. + + * gcc/common/config/microblaze/microblaze-common.c + (microblaze_option_optimization_table): Disable fivopts by default. + +Signed-off-by: Nagaraju Mekala +--- + gcc/common/config/microblaze/microblaze-common.c | 6 ++++-- + 1 file changed, 4 insertions(+), 2 deletions(-) + +diff --git a/gcc/common/config/microblaze/microblaze-common.c b/gcc/common/config/microblaze/microblaze-common.c +index fe45f2e..2873d4b 100644 +--- a/gcc/common/config/microblaze/microblaze-common.c ++++ b/gcc/common/config/microblaze/microblaze-common.c +@@ -27,13 +27,15 @@ + /* Implement TARGET_OPTION_OPTIMIZATION_TABLE. */ + static const struct default_options microblaze_option_optimization_table[] = + { +- /* Turn off ivopts by default. It messes up cse. */ ++ /* Turn off ivopts by default. It messes up cse. ++ { OPT_LEVELS_1_PLUS, OPT_fomit_frame_pointer, NULL, 1 }, */ + { OPT_LEVELS_ALL, OPT_fivopts, NULL, 0 }, +- { OPT_LEVELS_1_PLUS, OPT_fomit_frame_pointer, NULL, 1 }, + { OPT_LEVELS_NONE, 0, NULL, 0 } + }; + + #undef TARGET_DEFAULT_TARGET_FLAGS + #define TARGET_DEFAULT_TARGET_FLAGS TARGET_DEFAULT + ++#undef TARGET_OPTION_OPTIMIZATION_TABLE ++#define TARGET_OPTION_OPTIMIZATION_TABLE microblaze_option_optimization_table + struct gcc_targetm_common targetm_common = TARGETM_COMMON_INITIALIZER; +-- +2.7.4 + diff --git a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-source_7.%.bbappend b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-source_7.%.bbappend deleted file mode 100644 index 9770af61..00000000 --- a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-source_7.%.bbappend +++ /dev/null @@ -1,38 +0,0 @@ -# Add MicroBlaze Patches (only when using MicroBlaze) -FILESEXTRAPATHS_append_microblaze := "${THISDIR}/gcc-7:" -SRC_URI_append_microblaze = " \ - file://0001-Revert.patch \ - file://0002-microblaze.md-Improve-adddi3-and-subdi3-insn-definit.patch \ - file://0003-PR-target-83013.patch \ - file://0004-dejagnu-static-testing-on-qemu-suppress-warnings.patch \ - file://0005-Testsuite-explicitly-add-fivopts-for-tests-that-depe.patch \ - file://0006-Add-MicroBlaze-to-target-supports-for-atomic-builtin.patch \ - file://0007-Update-MicroBlaze-strings-test-for-new-scan-assembly.patch \ - file://0008-Allow-MicroBlaze-.weakext-pattern-in-testsuite.patch \ - file://0009-Add-MicroBlaze-to-check_profiling_available-Testsuit.patch \ - file://0010-Fix-atomic-side-effects.patch \ - file://0011-Fix-atomic-boolean-return-value.patch \ - file://0012-Fix-the-Microblaze-crash-with-msmall-divides-flag.patch \ - file://0013-Add-MicroBlaze-ashrsi_3_with_size_opt.patch \ - file://0014-Removed-MicroBlaze-moddi3-routinue.patch \ - file://0015-MicroBlaze-fixed-missing-save-of-r18-in-fast_interru.patch \ - file://0016-MicroBlaze-use-bralid-for-profiler-calls.patch \ - file://0017-Disable-fivopts-by-default-Turn-off-ivopts-by-defaul.patch \ - file://0018-Add-INIT_PRIORITY-support-Added-TARGET_ASM_CONSTRUCT.patch \ - file://0019-MicroBlaze-add-optimized-lshrsi3-When-barrel-shifter.patch \ - file://0020-Modified-MicroBlaze-trap-instruction.patch \ - file://0021-Reducing-Stack-space-for-arguments-Currently-in-Micr.patch \ - file://0022-Inline-Expansion-of-fsqrt-builtin.patch \ - file://0023-Update-MicroBlaze-ashlsi3-movsf-patterns.patch \ - file://0024-8-stage-pipeline-for-microblaze.patch \ - file://0025-MicroBlaze-correct-the-const-high-double-immediate-v.patch \ - file://0026-Fix-internal-compiler-error-with-msmall-divides.patch \ - file://0027-Fix-the-calculation-of-high-word-in-a-long-long-64-b.patch \ - file://0028-Add-new-bit-field-instructions.patch \ - file://0029-Fix-bug-in-MB-version-calculation.patch \ - file://0030-MicroBlaze-fixing-the-bug-in-the-bit-field-instructi.patch \ - file://0031-Fixing-the-issue-with-MicroBlaze-builtin_alloc.patch \ - file://0032-MicroBlaze-remove-bitfield-instructions-macros.patch \ - file://0033-MicroBlaze-fix-signed-bit-fields-with-bit-field-inst.patch \ - " - diff --git a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-source_8.%.bbappend b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-source_8.%.bbappend new file mode 100644 index 00000000..d6a81912 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-source_8.%.bbappend @@ -0,0 +1,65 @@ +# Add MicroBlaze Patches (only when using MicroBlaze) +FILESEXTRAPATHS_append_microblaze := "${THISDIR}/gcc-8:" +SRC_URI_append_microblaze = " \ +file://0001-LOCAL-Testsuite-builtins-tests-require-fpic.patch \ + file://0002-LOCAL-Quick-fail-g-.dg-opt-memcpy1.C.patch \ + file://0003-LOCAL-Testsuite-explicitly-add-fivopts-for-tests-tha.patch \ + file://0004-LOCAL-For-dejagnu-static-testing-on-qemu-suppress-wa.patch \ + file://0005-Patch-testsuite-Add-MicroBlaze-to-target-supports-fo.patch \ + file://0006-Patch-testsuite-Update-MicroBlaze-strings-test.patch \ + file://0007-Patch-testsuite-Allow-MicroBlaze-.weakext-pattern-in.patch \ + file://0008-Patch-testsuite-Add-MicroBlaze-to-check_profiling_av.patch \ + file://0009-Patch-microblaze-Fix-atomic-side-effects.patch \ + file://0010-Patch-microblaze-Fix-atomic-boolean-return-value.patch \ + file://0011-Patch-microblaze-Fix-the-Microblaze-crash-with-msmal.patch \ + file://0012-Patch-microblaze-Added-ashrsi3_with_size_opt.patch \ + file://0013-Patch-microblaze-Fixed-missing-save-of-r18-in-fast_i.patch \ + file://0014-Patch-microblaze-Use-bralid-for-profiler-calls.patch \ + file://0015-Patch-microblaze-Disable-fivopts-by-default.patch \ + file://0016-Patch-microblaze-Removed-moddi3-routinue.patch \ + file://0017-Patch-microblaze-Add-INIT_PRIORITY-support.patch \ + file://0018-Patch-microblaze-Add-optimized-lshrsi3.patch \ + file://0019-Patch-microblaze-Modified-trap-instruction.patch \ + file://0020-Patch-microblaze-Reducing-Stack-space-for-arguments.patch \ + file://0021-Patch-microblaze-Add-cbranchsi4_reg.patch \ + file://0022-Patch-microblaze-Inline-Expansion-of-fsqrt-builtin.patch \ + file://0023-Patch-OPT-Update-heuristics-for-loop-invariant-for-a.patch \ + file://0024-PATCH-microblaze.md-Improve-adddi3-and-subdi3-insn-d.patch \ + file://0025-Patch-microblaze-Update-ashlsi3-movsf-patterns.patch \ + file://0026-Patch-microblaze-8-stage-pipeline-for-microblaze.patch \ + file://0027-Patch-rtl-Optimization-Better-register-pressure-esti.patch \ + file://0028-Patch-microblaze-Correct-the-const-high-double-immed.patch \ + file://0029-Fix-microblaze-Fix-internal-compiler-error-with-msma.patch \ + file://0030-patch-microblaze-Fix-the-calculation-of-high-word-in.patch \ + file://0031-Patch-microblaze-Add-new-bit-field-instructions.patch \ + file://0032-Patch-microblaze-Fix-bug-in-MB-version-calculation.patch \ + file://0033-Fixing-the-bug-in-the-bit-field-instruction.patch \ + file://0034-Patch-microblaze-Macros-used-in-Xilinx-internal-patc.patch \ + file://0035-Fixing-the-issue-with-the-builtin_alloc.patch \ + file://0036-Patch-Microblaze-reverting-the-cost-check-before-pro.patch \ + file://0037-Patch-Microblaze-update-in-constraints-for-bitfield-.patch \ + file://0038-Patch-Microblaze-Removed-fsqrt-generation-for-double.patch \ + file://0039-Intial-commit-of-64-bit-Microblaze.patch \ + file://0040-Added-load-store-pattern-movdi-and-also-adding-missi.patch \ + file://0041-Intial-commit-for-64bit-MB-sources.patch \ + file://0042-re-arrangement-of-the-compare-branches.patch \ + file://0043-Patch-Microblaze-previous-commit-broke-the-handling-.patch \ + file://0044-Patch-Microblaze-Support-of-multilibs-with-m64.patch \ + file://0045-Fixed-issues-like.patch \ + file://0046-Fixed-below-issues.patch \ + file://0047-Added-double-arith-instructions.patch \ + file://0048-Fixed-the-issue-in-the-delay-slot-with-swap-instruct.patch \ + file://0049-Fixed-the-load-store-issue-with-the-32bit-arith-libr.patch \ + file://0050-extending-the-Dwarf-support-to-64bit-Microblaze.patch \ + file://0051-fixing-the-typo-errors-in-umodsi3-file.patch \ + file://0052-fixing-the-32bit-LTO-related-issue9-1014024.patch \ + file://0053-Fixed-the-missing-stack-adjustment-in-prologue-of-mo.patch \ + file://0054-Patch-Microblaze-corrected-SPN-for-dlong-instruction.patch \ + file://0055-fixing-the-long-long-long-mingw-toolchain-issue.patch \ + file://0057-Fix-the-MB-64-bug-of-handling-QI-objects.patch \ + file://0058-Patch-Microblaze-We-will-check-the-possibility-of-pe.patch \ + file://0059-Reverting-the-patch-as-kernel-boot-is-not-working-wi.patch \ + file://0060-Patch-MicroBlaze-fixed-typos-in-mul-div-and-mod-asse.patch \ + file://0061-Author-Nagaraju-nmekala-xilinx.com.patch \ + file://0055-microblaze_linker_script_xilinx_ld.patch \ +" diff --git a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-multimedia/vcu/kernel-module-vcu.bb b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-multimedia/vcu/kernel-module-vcu.bb index 8d1380f0..3c13c697 100644 --- a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-multimedia/vcu/kernel-module-vcu.bb +++ b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-multimedia/vcu/kernel-module-vcu.bb @@ -5,14 +5,14 @@ LICENSE = "GPLv2" LIC_FILES_CHKSUM = "file://LICENSE.md;md5=eb723b61539feef013de476e68b5c50a" XILINX_VCU_VERSION = "1.0.0" -XILINX_RELEASE_VERSION = "2018.3" +XILINX_RELEASE_VERSION = "v2019.1" PV = "${XILINX_VCU_VERSION}-xilinx-${XILINX_RELEASE_VERSION}+git${SRCPV}" S = "${WORKDIR}/git" -BRANCH ?= "master" +BRANCH ?= "master-rel-2019.1" REPO ?= "git://github.com/xilinx/vcu-modules.git;protocol=https" -SRCREV ?= "f6a9093ec32ee97a2df065aee8b8e676c2024f01" +SRCREV ?= "13a8e5b3f614d94081481a808aa8d4bd00b26d76" BRANCHARG = "${@['nobranch=1', 'branch=${BRANCH}'][d.getVar('BRANCH', True) != '']}" SRC_URI = "${REPO};${BRANCHARG}" diff --git a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-multimedia/vcu/libomxil-xlnx.bb b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-multimedia/vcu/libomxil-xlnx.bb index 18fa032c..25bbffe9 100644 --- a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-multimedia/vcu/libomxil-xlnx.bb +++ b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-multimedia/vcu/libomxil-xlnx.bb @@ -4,12 +4,12 @@ LICENSE = "Proprietary" LIC_FILES_CHKSUM = "file://LICENSE.md;md5=03a7aef7e6f6a76a59fd9b8ba450b493" XILINX_VCU_VERSION = "1.0.0" -XILINX_RELEASE_VERSION = "2018.3" +XILINX_RELEASE_VERSION = "v2019.1" PV = "${XILINX_VCU_VERSION}-xilinx-${XILINX_RELEASE_VERSION}+git${SRCPV}" -BRANCH ?= "master" +BRANCH ?= "master-rel-2019.1" REPO ?= "git://github.com/xilinx/vcu-omx-il.git;protocol=https" -SRCREV ?= "cf4b031ac88c7889e4f29ac7fc8ca7592bf12144" +SRCREV ?= "b93cec02cd5da223fa965073dce130a08ffd6419" BRANCHARG = "${@['nobranch=1', 'branch=${BRANCH}'][d.getVar('BRANCH', True) != '']}" SRC_URI = "${REPO};${BRANCHARG}" diff --git a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-multimedia/vcu/libvcu-xlnx.bb b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-multimedia/vcu/libvcu-xlnx.bb index b068aa81..8f8c0ef2 100644 --- a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-multimedia/vcu/libvcu-xlnx.bb +++ b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-multimedia/vcu/libvcu-xlnx.bb @@ -4,12 +4,12 @@ LICENSE = "Proprietary" LIC_FILES_CHKSUM = "file://LICENSE.md;md5=03a7aef7e6f6a76a59fd9b8ba450b493" XILINX_VCU_VERSION = "1.0.0" -XILINX_RELEASE_VERSION = "2018.3" +XILINX_RELEASE_VERSION = "v2019.1" PV = "${XILINX_VCU_VERSION}-xilinx-${XILINX_RELEASE_VERSION}+git${SRCPV}" -BRANCH ?= "master" +BRANCH ?= "master-rel-2019.1" REPO ?= "git://github.com/xilinx/vcu-ctrl-sw.git;protocol=https" -SRCREV ?= "1cb5281d319ea4f3c0eb5514864c80d95e78fe6e" +SRCREV ?= "32b7be620987283f62e4469185da81dddad1071c" BRANCHARG = "${@['nobranch=1', 'branch=${BRANCH}'][d.getVar('BRANCH', True) != '']}" SRC_URI = "${REPO};${BRANCHARG}" diff --git a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-multimedia/vcu/vcu-firmware.bb b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-multimedia/vcu/vcu-firmware.bb index da447fc7..28bd0d37 100644 --- a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-multimedia/vcu/vcu-firmware.bb +++ b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-multimedia/vcu/vcu-firmware.bb @@ -4,14 +4,14 @@ LICENSE = "Proprietary" LIC_FILES_CHKSUM = "file://LICENSE;md5=63b45903a9a50120df488435f03cf498" XILINX_VCU_VERSION = "1.0.0" -XILINX_RELEASE_VERSION = "2018.3" +XILINX_RELEASE_VERSION = "v2019.1" PV = "${XILINX_VCU_VERSION}-xilinx-${XILINX_RELEASE_VERSION}+git${SRCPV}" S = "${WORKDIR}/git" -BRANCH ?= "master" +BRANCH ?= "master-rel-2019.1" REPO ?= "git://github.com/xilinx/vcu-firmware.git;protocol=https" -SRCREV ?= "d01951905e1aedb179d838a6b86016f34e2f4966" +SRCREV ?= "4078b74d16e5eccca5ae3132c3877d3aff7fb168" BRANCHARG = "${@['nobranch=1', 'branch=${BRANCH}'][d.getVar('BRANCH', True) != '']}" SRC_URI = "${REPO};${BRANCHARG}" diff --git a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-xrt/ocl-icd/ocl-icd_git.bb b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-xrt/ocl-icd/ocl-icd_git.bb new file mode 100644 index 00000000..d14ec53e --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-xrt/ocl-icd/ocl-icd_git.bb @@ -0,0 +1,19 @@ +SUMMARY = "OpenCL ICD library" +DESCRIPTION = "Open Source alternative to vendor specific OpenCL ICD loaders." + +# The LICENSE is BSD 2-Clause "Simplified" License +LICENSE = "BSD-2-Clause" +LIC_FILES_CHKSUM = "file://COPYING;md5=232257bbf7320320725ca9529d3782ab" + +SRC_URI = "git://github.com/OCL-dev/ocl-icd.git;protocol=https" + +PV = "2.2.12+git${SRCPV}" +SRCREV = "af79aebe4649f30dbd711c1bf6fc661eac6e5f01" + +S = "${WORKDIR}/git" + +inherit autotools + +DEPENDS = "ruby-native" + +BBCLASSEXTEND = "native" diff --git a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-xrt/opencl-clhpp/opencl-clhpp_git.bb b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-xrt/opencl-clhpp/opencl-clhpp_git.bb new file mode 100644 index 00000000..9af4442d --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-xrt/opencl-clhpp/opencl-clhpp_git.bb @@ -0,0 +1,29 @@ +SUMMARY = "Host API C++ bindings" +DESCRIPTION = "OpenCL compute API headers C++ bindings from Khronos Group" +LICENSE = "Khronos" +LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=7e4a01f0c56b39419aa287361a82df00" +SECTION = "base" + +SRC_URI = "git://github.com/KhronosGroup/OpenCL-CLHPP.git;protocol=https" + +PV = "2.0.10+git${SRCPV}" +SRCREV = "acd6972bc65845aa28bd9f670dec84cbf8b760f3" + +S = "${WORKDIR}/git" + +do_configure () { +: +} + +# Only cl2.hpp is necessary. +# Base on the repo, Directly input_cl2.hpp copied as cl2.hpp +do_compile () { +: +} + +do_install () { + install -d ${D}${includedir}/CL/ + install -m 0644 ${S}/input_cl2.hpp ${D}${includedir}/CL/cl2.hpp +} + +ALLOW_EMPTY_${PN} = "1" diff --git a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-xrt/opencl-headers/opencl-headers_%.bbappend b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-xrt/opencl-headers/opencl-headers_%.bbappend new file mode 100644 index 00000000..afe3e9cd --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-xrt/opencl-headers/opencl-headers_%.bbappend @@ -0,0 +1 @@ +ALLOW_EMPTY_${PN} = "1" diff --git a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-xrt/xrt/xrt_git.bb b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-xrt/xrt/xrt_git.bb new file mode 100644 index 00000000..4bb41b7d --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-xrt/xrt/xrt_git.bb @@ -0,0 +1,28 @@ +SUMMARY = "Xilinx Runtime(XRT) libraries" +DESCRIPTION = "Xilinx Runtime User Space Libraries and headers" + +LICENSE = "GPLv2 & Apache-2.0" +LIC_FILES_CHKSUM = "file://${WORKDIR}/git/LICENSE;md5=fa343562af4b9b922b8d7fe7b0b6d000 \ + file://runtime_src/driver/xclng/drm/xocl/LICENSE;md5=b234ee4d69f5fce4486a80fdaf4a4263 \ + file://runtime_src/driver/xclng/xrt/user_gem/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57 \ + file://runtime_src/driver/xclng/tools/xbutil/LICENSE;md5=d273d63619c9aeaf15cdaf76422c4f87" + +SRC_URI = "git://github.com/Xilinx/XRT.git;protocol=https;nobranch=1" + +PV = "2.2.0+git${SRCPV}" +SRCREV = "da87ac894a037d7e11c0496361458efed4bab438" + +S = "${WORKDIR}/git/src" + +inherit cmake + +BBCLASSEXTEND = "native nativesdk" + +# util-linux is for libuuid-dev. +DEPENDS = "libdrm opencl-headers ocl-icd opencl-clhpp boost util-linux git-replacement-native" +RDEPENDS_${PN} = "bash ocl-icd boost-system boost-filesystem" + +EXTRA_OECMAKE += " \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_EXPORT_COMPILE_COMANDS=ON \ + " diff --git a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-xrt/zocl/zocl_git.bb b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-xrt/zocl/zocl_git.bb new file mode 100644 index 00000000..b47f45fd --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-bsp/recipes-xrt/zocl/zocl_git.bb @@ -0,0 +1,14 @@ +SUMMARY = "Xilinx Runtime(XRT) driver module" +DESCRIPTION = "Xilinx Runtime driver module provides memory management and compute unit schedule" + +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://LICENSE;md5=b234ee4d69f5fce4486a80fdaf4a4263" + +SRC_URI = "git://github.com/Xilinx/XRT.git;protocol=https" + +PV = "2.2.0+git${SRCPV}" +SRCREV = "da87ac894a037d7e11c0496361458efed4bab438" + +S = "${WORKDIR}/git/src/runtime_src/driver/zynq/drm/zocl" + +inherit module diff --git a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-contrib/README.md b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-contrib/README.md index 55c98530..49942b96 100644 --- a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-contrib/README.md +++ b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-contrib/README.md @@ -26,6 +26,8 @@ https://lists.yoctoproject.org/listinfo/meta-xilinx Maintainers: Manjukumar Harthikote Matha + Sai Hari Chandana Kalluri + Mark Hatle Dependencies ============ diff --git a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-contrib/conf/layer.conf b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-contrib/conf/layer.conf index 58c2a46b..942925eb 100644 --- a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-contrib/conf/layer.conf +++ b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-contrib/conf/layer.conf @@ -12,5 +12,5 @@ BBFILE_PRIORITY_xilinx-contrib = "5" LAYERDEPENDS_xilinx-contrib = "core" LAYERDEPENDS_xilinx-contrib = "xilinx" -LAYERSERIES_COMPAT_xilinx-contrib = "sumo thud" +LAYERSERIES_COMPAT_xilinx-contrib = "warrior" diff --git a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-contrib/recipes-kernel/linux/linux-xlnx/v2018.3/0001-drm-xilinx-Add-encoder-for-Digilent-boards.patch b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-contrib/recipes-kernel/linux/linux-xlnx/v2019.1/0001-drm-xilinx-Add-encoder-for-Digilent-boards.patch similarity index 95% rename from Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-contrib/recipes-kernel/linux/linux-xlnx/v2018.3/0001-drm-xilinx-Add-encoder-for-Digilent-boards.patch rename to Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-contrib/recipes-kernel/linux/linux-xlnx/v2019.1/0001-drm-xilinx-Add-encoder-for-Digilent-boards.patch index b8ba70ea..660bc218 100644 --- a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-contrib/recipes-kernel/linux/linux-xlnx/v2018.3/0001-drm-xilinx-Add-encoder-for-Digilent-boards.patch +++ b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-contrib/recipes-kernel/linux/linux-xlnx/v2019.1/0001-drm-xilinx-Add-encoder-for-Digilent-boards.patch @@ -1,4 +1,4 @@ -From c1bf9e8c50baa237b514715dcb9c8fd367694c93 Mon Sep 17 00:00:00 2001 +From 21cc8144efdaa3cd8dbd7279f87b14fa3432fae4 Mon Sep 17 00:00:00 2001 From: Jason Wu Date: Sun, 10 Apr 2016 13:14:13 +1000 Subject: [PATCH 1/3] drm: xilinx: Add encoder for Digilent boards @@ -21,7 +21,7 @@ Signed-off-by: Jason Wu diff --git a/Documentation/devicetree/bindings/drm/xilinx/dglnt_encoder.txt b/Documentation/devicetree/bindings/drm/xilinx/dglnt_encoder.txt new file mode 100644 -index 0000000000..242b24e482 +index 0000000..242b24e --- /dev/null +++ b/Documentation/devicetree/bindings/drm/xilinx/dglnt_encoder.txt @@ -0,0 +1,23 @@ @@ -49,21 +49,24 @@ index 0000000000..242b24e482 + dglnt,edid-i2c = <&i2c1>; + }; diff --git a/drivers/gpu/drm/xilinx/Kconfig b/drivers/gpu/drm/xilinx/Kconfig -index 12b548c2a9..c3e2562e53 100644 +index 57e18a9..d9ecff2 100644 --- a/drivers/gpu/drm/xilinx/Kconfig +++ b/drivers/gpu/drm/xilinx/Kconfig -@@ -57,3 +57,9 @@ config DRM_XILINX_SDI - depends on DRM_XILINX +@@ -33,6 +33,12 @@ config DRM_XILINX_DP_SUB help DRM driver for Xilinx Display Port Subsystem. -+ + +config DRM_DIGILENT_ENCODER + tristate "Digilent VGA/HDMI DRM Encoder Driver" + depends on DRM_XILINX + help + DRM slave encoder for Video-out on Digilent boards. ++ + config DRM_XILINX_DP_SUB_DEBUG_FS + bool "Xilinx DRM DPSUB debugfs" + depends on DEBUG_FS && DRM_XILINX_DP_SUB diff --git a/drivers/gpu/drm/xilinx/Makefile b/drivers/gpu/drm/xilinx/Makefile -index 19bc1541ca..c2717e40ea 100644 +index 19bc154..c2717e40 100644 --- a/drivers/gpu/drm/xilinx/Makefile +++ b/drivers/gpu/drm/xilinx/Makefile @@ -7,6 +7,7 @@ xilinx_drm-y := xilinx_drm_crtc.o xilinx_drm_connector.o xilinx_drm_drv.o \ @@ -76,7 +79,7 @@ index 19bc1541ca..c2717e40ea 100644 obj-$(CONFIG_DRM_XILINX_DP_SUB) += xilinx_drm_dp_sub.o diff --git a/drivers/gpu/drm/xilinx/dglnt_encoder.c b/drivers/gpu/drm/xilinx/dglnt_encoder.c new file mode 100644 -index 0000000000..26a23986f9 +index 0000000..cb9fc7d --- /dev/null +++ b/drivers/gpu/drm/xilinx/dglnt_encoder.c @@ -0,0 +1,217 @@ @@ -177,7 +180,7 @@ index 0000000000..26a23986f9 + + if (dglnt->i2c_present) { + edid = drm_get_edid(connector, dglnt->i2c_bus); -+ drm_mode_connector_update_edid_property(connector, edid); ++ drm_connector_update_edid_property(connector, edid); + if (edid) { + num_modes = drm_add_edid_modes(connector, edid); + kfree(edid); @@ -298,5 +301,5 @@ index 0000000000..26a23986f9 +MODULE_DESCRIPTION("DRM slave encoder for Video-out on Digilent boards"); +MODULE_LICENSE("GPL v2"); -- -2.14.2 +2.7.4 diff --git a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-contrib/recipes-kernel/linux/linux-xlnx/v2018.3/0002-clk-Add-driver-for-axi_dynclk-IP-Core.patch b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-contrib/recipes-kernel/linux/linux-xlnx/v2019.1/0002-clk-Add-driver-for-axi_dynclk-IP-Core.patch similarity index 100% rename from Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-contrib/recipes-kernel/linux/linux-xlnx/v2018.3/0002-clk-Add-driver-for-axi_dynclk-IP-Core.patch rename to Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-contrib/recipes-kernel/linux/linux-xlnx/v2019.1/0002-clk-Add-driver-for-axi_dynclk-IP-Core.patch diff --git a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-contrib/recipes-kernel/linux/linux-xlnx/v2018.3/0003-drm-xilinx-Fix-DPMS-transition-to-on.patch b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-contrib/recipes-kernel/linux/linux-xlnx/v2019.1/0003-drm-xilinx-Fix-DPMS-transition-to-on.patch similarity index 100% rename from Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-contrib/recipes-kernel/linux/linux-xlnx/v2018.3/0003-drm-xilinx-Fix-DPMS-transition-to-on.patch rename to Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-contrib/recipes-kernel/linux/linux-xlnx/v2019.1/0003-drm-xilinx-Fix-DPMS-transition-to-on.patch diff --git a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-contrib/recipes-kernel/linux/linux-xlnx/v2018.3/0004-minized-wifi-bluetooth.cfg b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-contrib/recipes-kernel/linux/linux-xlnx/v2019.1/0004-minized-wifi-bluetooth.cfg similarity index 100% rename from Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-contrib/recipes-kernel/linux/linux-xlnx/v2018.3/0004-minized-wifi-bluetooth.cfg rename to Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-contrib/recipes-kernel/linux/linux-xlnx/v2019.1/0004-minized-wifi-bluetooth.cfg diff --git a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-contrib/recipes-kernel/linux/linux-xlnx_2018.3.bbappend b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-contrib/recipes-kernel/linux/linux-xlnx_2019.1.bbappend similarity index 100% rename from Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-contrib/recipes-kernel/linux/linux-xlnx_2018.3.bbappend rename to Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-contrib/recipes-kernel/linux/linux-xlnx_2019.1.bbappend diff --git a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-standalone/README.md b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-standalone/README.md index b800f372..c7bdeb6e 100644 --- a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-standalone/README.md +++ b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-standalone/README.md @@ -16,6 +16,8 @@ Maintainers: Alejandro Enedino Hernandez Samaniego Manjukumar Harthikote Matha + Sai Hari Chandana Kalluri + Mark Hatle Dependencies ============ diff --git a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-standalone/conf/layer.conf b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-standalone/conf/layer.conf index 7d9cc598..16bfb74a 100644 --- a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-standalone/conf/layer.conf +++ b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-standalone/conf/layer.conf @@ -11,4 +11,4 @@ BBFILE_PRIORITY_xilinx-standalone = "5" LAYERDEPENDS_xilinx-standalone = "core xilinx" -LAYERSERIES_COMPAT_xilinx-standalone = "thud" +LAYERSERIES_COMPAT_xilinx-standalone = "warrior" diff --git a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-standalone/recipes-standalone/pmu-firmware/pmu-firmware_2018.3.bb b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-standalone/recipes-standalone/pmu-firmware/pmu-firmware_2018.3.bb deleted file mode 100644 index 3432c1f2..00000000 --- a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-standalone/recipes-standalone/pmu-firmware/pmu-firmware_2018.3.bb +++ /dev/null @@ -1,74 +0,0 @@ -inherit deploy - -LICENSE = "Proprietary" -LIC_FILES_CHKSUM = "file://../../../../license.txt;md5=71602ce1bc2917a9be07ceee6fab6711" - -XILINX_RELEASE_VERSION = "v2018.3" -SRCREV = "56f3da2afbc817988c9a45b0b26a7fef2ac91706" -PV = "${XILINX_RELEASE_VERSION}+git${SRCPV}" - -SRC_URI = "git://github.com/Xilinx/embeddedsw.git;protocol=https;nobranch=1" - -COMPATIBLE_HOST = "microblaze.*-elf" -COMPATIBLE_MACHINE = "^$" -COMPATIBLE_MACHINE_zynqmp-pmu = "zynqmp-pmu" - - -S = "${WORKDIR}/git/lib/sw_apps/zynqmp_pmufw/src" - -# The makefile does not handle parallelization -PARALLEL_MAKE = "" - -do_configure() { - # manually do the copy_bsp step first, so as to be able to fix up use of - # mb-* commands - ${S}/../misc/copy_bsp.sh - - # fix xilfpga to include the zynqmp backend - mv ${S}/../misc/zynqmp_pmufw_bsp/psu_pmu_0/libsrc/xilfpga/src/interface/zynqmp/* ${S}/../misc/zynqmp_pmufw_bsp/psu_pmu_0/libsrc/xilfpga/src -} - -COMPILER = "${CC}" -COMPILER_FLAGS = "-O2 -c" -EXTRA_COMPILER_FLAGS = "-g -Wall -Wextra -Os -flto -ffat-lto-objects" -ARCHIVER = "${AR}" - -BSP_DIR ?= "${S}/../misc/zynqmp_pmufw_bsp" -BSP_TARGETS_DIR ?= "${BSP_DIR}/psu_pmu_0/libsrc" - -def bsp_make_vars(d): - s = ["COMPILER", "CC", "COMPILER_FLAGS", "EXTRA_COMPILER_FLAGS", "ARCHIVER", "AR", "AS"] - return " ".join(["\"%s=%s\"" % (v, d.getVar(v)) for v in s]) - -do_compile() { - # the Makefile in ${S}/../misc/Makefile, does not handle CC, AR, AS, etc - # properly. So do its job manually. Preparing the includes first, then libs. - for i in $(ls ${BSP_TARGETS_DIR}/*/src/Makefile); do - oe_runmake -C $(dirname $i) -s include ${@bsp_make_vars(d)} - done - for i in $(ls ${BSP_TARGETS_DIR}/*/src/Makefile); do - oe_runmake -C $(dirname $i) -s libs ${@bsp_make_vars(d)} - done - - # --build-id=none is required due to linker script not defining a location for it. - # Again, recipe-systoot include is necessary - oe_runmake CC="${CC}" CC_FLAGS="-MMD -MP -Wl,--build-id=none -I${STAGING_DIR_TARGET}/usr/include" -} - -do_install() { - : -} - -PMU_FIRMWARE_BASE_NAME ?= "${BPN}-${PKGE}-${PKGV}-${PKGR}-${MACHINE}-${DATETIME}" -PMU_FIRMWARE_BASE_NAME[vardepsexclude] = "DATETIME" - -do_deploy() { - install -Dm 0644 ${B}/executable.elf ${DEPLOYDIR}/${PMU_FIRMWARE_BASE_NAME}.elf - ln -sf ${PMU_FIRMWARE_BASE_NAME}.elf ${DEPLOYDIR}/${BPN}-${MACHINE}.elf - ${OBJCOPY} -O binary ${B}/executable.elf ${B}/executable.bin - install -m 0644 ${B}/executable.bin ${DEPLOYDIR}/${PMU_FIRMWARE_BASE_NAME}.bin - ln -sf ${PMU_FIRMWARE_BASE_NAME}.bin ${DEPLOYDIR}/${BPN}-${MACHINE}.bin -} - -addtask deploy before do_build after do_install - diff --git a/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-standalone/recipes-standalone/pmu-firmware/pmu-firmware_2019.1.bb b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-standalone/recipes-standalone/pmu-firmware/pmu-firmware_2019.1.bb new file mode 100644 index 00000000..030de054 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-xilinx/meta-xilinx-standalone/recipes-standalone/pmu-firmware/pmu-firmware_2019.1.bb @@ -0,0 +1,71 @@ +inherit deploy + +LICENSE = "Proprietary" +LIC_FILES_CHKSUM = "file://../../../../license.txt;md5=e9b6d01d45faccfbf05d8caea53f0a35" + +XILINX_RELEASE_VERSION = "v2019.1" +SRCREV = "26c14d9861010a0e3a55c73fb79efdb816eb42ca" +PV = "${XILINX_RELEASE_VERSION}+git${SRCPV}" + +SRC_URI = "git://github.com/Xilinx/embeddedsw.git;protocol=https;nobranch=1" + +COMPATIBLE_HOST = "microblaze.*-elf" +COMPATIBLE_MACHINE = "^$" +COMPATIBLE_MACHINE_zynqmp-pmu = "zynqmp-pmu" + + +S = "${WORKDIR}/git/lib/sw_apps/zynqmp_pmufw/src" + +# The makefile does not handle parallelization +PARALLEL_MAKE = "" + +do_configure() { + # manually do the copy_bsp step first, so as to be able to fix up use of + # mb-* commands + ${S}/../misc/copy_bsp.sh +} + +COMPILER = "${CC}" +COMPILER_FLAGS = "-O2 -c" +EXTRA_COMPILER_FLAGS = "-g -Wall -Wextra -Os -flto -ffat-lto-objects" +ARCHIVER = "${AR}" + +BSP_DIR ?= "${S}/../misc/zynqmp_pmufw_bsp" +BSP_TARGETS_DIR ?= "${BSP_DIR}/psu_pmu_0/libsrc" + +def bsp_make_vars(d): + s = ["COMPILER", "CC", "COMPILER_FLAGS", "EXTRA_COMPILER_FLAGS", "ARCHIVER", "AR", "AS"] + return " ".join(["\"%s=%s\"" % (v, d.getVar(v)) for v in s]) + +do_compile() { + # the Makefile in ${S}/../misc/Makefile, does not handle CC, AR, AS, etc + # properly. So do its job manually. Preparing the includes first, then libs. + for i in $(ls ${BSP_TARGETS_DIR}/*/src/Makefile); do + oe_runmake -C $(dirname $i) -s include ${@bsp_make_vars(d)} + done + for i in $(ls ${BSP_TARGETS_DIR}/*/src/Makefile); do + oe_runmake -C $(dirname $i) -s libs ${@bsp_make_vars(d)} + done + + # --build-id=none is required due to linker script not defining a location for it. + # Again, recipe-systoot include is necessary + oe_runmake CC="${CC}" CC_FLAGS="-MMD -MP -Wl,--build-id=none -I${STAGING_DIR_TARGET}/usr/include" +} + +do_install() { + : +} + +PMU_FIRMWARE_BASE_NAME ?= "${BPN}-${PKGE}-${PKGV}-${PKGR}-${MACHINE}-${DATETIME}" +PMU_FIRMWARE_BASE_NAME[vardepsexclude] = "DATETIME" + +do_deploy() { + install -Dm 0644 ${B}/executable.elf ${DEPLOYDIR}/${PMU_FIRMWARE_BASE_NAME}.elf + ln -sf ${PMU_FIRMWARE_BASE_NAME}.elf ${DEPLOYDIR}/${BPN}-${MACHINE}.elf + ${OBJCOPY} -O binary ${B}/executable.elf ${B}/executable.bin + install -m 0644 ${B}/executable.bin ${DEPLOYDIR}/${PMU_FIRMWARE_BASE_NAME}.bin + ln -sf ${PMU_FIRMWARE_BASE_NAME}.bin ${DEPLOYDIR}/${BPN}-${MACHINE}.bin +} + +addtask deploy before do_build after do_install + diff --git a/Contrib-Inspur/openbmc/meta-yadro/conf/layer.conf b/Contrib-Inspur/openbmc/meta-yadro/conf/layer.conf index 7feac4c2..794ada88 100644 --- a/Contrib-Inspur/openbmc/meta-yadro/conf/layer.conf +++ b/Contrib-Inspur/openbmc/meta-yadro/conf/layer.conf @@ -5,7 +5,4 @@ BBFILE_COLLECTIONS += "yadro-layer" BBFILE_PATTERN_yadro-layer = "^${LAYERDIR}/" BBFILE_PATTERN_IGNORE_EMPTY_yadro-layer = "1" -LAYERSERIES_COMPAT_yadro-layer = "thud warrior" - -# Provide a variable that points the base of the yadro layer. -YADROBASE = '${@os.path.normpath("${LAYERDIR}/")}' +LAYERSERIES_COMPAT_yadro-layer = "warrior zeus" diff --git a/Contrib-Inspur/openbmc/meta-yadro/meta-nicole/conf/bblayers.conf.sample b/Contrib-Inspur/openbmc/meta-yadro/meta-nicole/conf/bblayers.conf.sample new file mode 100644 index 00000000..62622c8c --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-yadro/meta-nicole/conf/bblayers.conf.sample @@ -0,0 +1,31 @@ +# LAYER_CONF_VERSION is increased each time build/conf/bblayers.conf +# changes incompatibly +LCONF_VERSION = "8" + +BBPATH = "${TOPDIR}" +BBFILES ?= "" + +BBLAYERS ?= " \ + ##OEROOT##/meta \ + ##OEROOT##/meta-openembedded/meta-oe \ + ##OEROOT##/meta-openembedded/meta-networking \ + ##OEROOT##/meta-openembedded/meta-perl \ + ##OEROOT##/meta-openembedded/meta-python \ + ##OEROOT##/meta-phosphor \ + ##OEROOT##/meta-aspeed \ + ##OEROOT##/meta-openpower \ + ##OEROOT##/meta-yadro \ + ##OEROOT##/meta-yadro/meta-nicole \ + " +BBLAYERS_NON_REMOVABLE ?= " \ + ##OEROOT##/meta \ + ##OEROOT##/meta-openembedded/meta-oe \ + ##OEROOT##/meta-openembedded/meta-networking \ + ##OEROOT##/meta-openembedded/meta-perl \ + ##OEROOT##/meta-openembedded/meta-python \ + ##OEROOT##/meta-phosphor \ + ##OEROOT##/meta-aspeed \ + ##OEROOT##/meta-openpower \ + ##OEROOT##/meta-yadro \ + ##OEROOT##/meta-yadro/meta-nicole \ + " diff --git a/Contrib-Inspur/openbmc/meta-yadro/meta-nicole/conf/conf-notes.txt b/Contrib-Inspur/openbmc/meta-yadro/meta-nicole/conf/conf-notes.txt new file mode 100644 index 00000000..9b3c01a5 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-yadro/meta-nicole/conf/conf-notes.txt @@ -0,0 +1,2 @@ +Common targets are: + obmc-phosphor-image diff --git a/Contrib-Inspur/openbmc/meta-yadro/meta-nicole/conf/layer.conf b/Contrib-Inspur/openbmc/meta-yadro/meta-nicole/conf/layer.conf new file mode 100644 index 00000000..c70d673a --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-yadro/meta-nicole/conf/layer.conf @@ -0,0 +1,10 @@ +# We have a conf and classes directory, add to BBPATH +BBPATH .= ":${LAYERDIR}" + +# We have recipes-* directories, add to BBFILES +BBFILES += "${LAYERDIR}/recipes-*/*/*.bb \ + ${LAYERDIR}/recipes-*/*/*.bbappend" + +BBFILE_COLLECTIONS += "nicole-layer" +BBFILE_PATTERN_nicole-layer := "^${LAYERDIR}/" +LAYERSERIES_COMPAT_nicole-layer = "warrior zeus" diff --git a/Contrib-Inspur/openbmc/meta-yadro/meta-nicole/conf/local.conf.sample b/Contrib-Inspur/openbmc/meta-yadro/meta-nicole/conf/local.conf.sample new file mode 100644 index 00000000..ba1d82e1 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-yadro/meta-nicole/conf/local.conf.sample @@ -0,0 +1,216 @@ +# +# This file is your local configuration file and is where all local user settings +# are placed. The comments in this file give some guide to the options a new user +# to the system might want to change but pretty much any configuration option can +# be set in this file. +# +# Lines starting with the '#' character are commented out and in some cases the +# default values are provided as comments to show people example syntax. Enabling +# the option is a question of removing the # character and making any change to the +# variable as required. + +# +# Machine Selection +# +MACHINE ??= "nicole" + +# +# Where to place downloads +# +# During a first build the system will download many different source code tarballs +# from various upstream projects. This can take a while, particularly if your network +# connection is slow. These are all stored in DL_DIR. When wiping and rebuilding you +# can preserve this directory to speed up this part of subsequent builds. This directory +# is safe to share between multiple builds on the same machine too. +# +# The default is a downloads directory under TOPDIR which is the build directory. +# +#DL_DIR ?= "${TOPDIR}/downloads" + +# +# Where to place shared-state files +# +# BitBake has the capability to accelerate builds based on previously built output. +# This is done using "shared state" files which can be thought of as cache objects +# and this option determines where those files are placed. +# +# You can wipe out TMPDIR leaving this directory intact and the build would regenerate +# from these files if no changes were made to the configuration. If changes were made +# to the configuration, only shared state files where the state was still valid would +# be used (done using checksums). +# +# The default is a sstate-cache directory under TOPDIR. +# +#SSTATE_DIR ?= "${TOPDIR}/sstate-cache" + +# +# Where to place the build output +# +# This option specifies where the bulk of the building work should be done and +# where BitBake should place its temporary files and output. Keep in mind that +# this includes the extraction and compilation of many applications and the toolchain +# which can use Gigabytes of hard disk space. +# +# The default is a tmp directory under TOPDIR. +# +#TMPDIR = "${TOPDIR}/tmp" + +# +# Default policy config +# +# The distribution setting controls which policy settings are used as defaults. +# The default value is fine for general Yocto project use, at least initially. +# Ultimately when creating custom policy, people will likely end up subclassing +# these defaults. +# +DISTRO ?= "openbmc-openpower" +# As an example of a subclass there is a "bleeding" edge policy configuration +# where many versions are set to the absolute latest code from the upstream +# source control systems. This is just mentioned here as an example, its not +# useful to most new users. +# DISTRO ?= "poky-bleeding" + +# +# Package Management configuration +# +# This variable lists which packaging formats to enable. Multiple package backends +# can be enabled at once and the first item listed in the variable will be used +# to generate the root filesystems. +# Options are: +# - 'package_deb' for debian style deb files +# - 'package_ipk' for ipk files are used by opkg (a debian style embedded package manager) +# - 'package_rpm' for rpm style packages +# E.g.: PACKAGE_CLASSES ?= "package_rpm package_deb package_ipk" +# We default to rpm: +PACKAGE_CLASSES ?= "package_rpm" + +# +# SDK/ADT target architecture +# +# This variable specifies the architecture to build SDK/ADT items for and means +# you can build the SDK packages for architectures other than the machine you are +# running the build on (i.e. building i686 packages on an x86_64 host). +# Supported values are i686 and x86_64 +#SDKMACHINE ?= "i686" + +SANITY_TESTED_DISTROS_append ?= " *" + +# +# Extra image configuration defaults +# +# The EXTRA_IMAGE_FEATURES variable allows extra packages to be added to the generated +# images. Some of these options are added to certain image types automatically. The +# variable can contain the following options: +# "dbg-pkgs" - add -dbg packages for all installed packages +# (adds symbol information for debugging/profiling) +# "dev-pkgs" - add -dev packages for all installed packages +# (useful if you want to develop against libs in the image) +# "ptest-pkgs" - add -ptest packages for all ptest-enabled packages +# (useful if you want to run the package test suites) +# "tools-sdk" - add development tools (gcc, make, pkgconfig etc.) +# "tools-debug" - add debugging tools (gdb, strace) +# "eclipse-debug" - add Eclipse remote debugging support +# "tools-profile" - add profiling tools (oprofile, exmap, lttng, valgrind) +# "tools-testapps" - add useful testing tools (ts_print, aplay, arecord etc.) +# "debug-tweaks" - make an image suitable for development +# e.g. ssh root access has a blank password +# There are other application targets that can be used here too, see +# meta/classes/image.bbclass and meta/classes/core-image.bbclass for more details. +# We default to enabling the debugging tweaks. +EXTRA_IMAGE_FEATURES = "debug-tweaks" + +# +# Additional image features +# +# The following is a list of additional classes to use when building images which +# enable extra features. Some available options which can be included in this variable +# are: +# - 'buildstats' collect build statistics +# - 'image-mklibs' to reduce shared library files size for an image +# - 'image-prelink' in order to prelink the filesystem image +# - 'image-swab' to perform host system intrusion detection +# NOTE: if listing mklibs & prelink both, then make sure mklibs is before prelink +# NOTE: mklibs also needs to be explicitly enabled for a given image, see local.conf.extended +USER_CLASSES ?= "buildstats image-mklibs image-prelink" + +# +# Runtime testing of images +# +# The build system can test booting virtual machine images under qemu (an emulator) +# after any root filesystems are created and run tests against those images. To +# enable this uncomment this line. See classes/testimage(-auto).bbclass for +# further details. +#TEST_IMAGE = "1" +# +# Interactive shell configuration +# +# Under certain circumstances the system may need input from you and to do this it +# can launch an interactive shell. It needs to do this since the build is +# multithreaded and needs to be able to handle the case where more than one parallel +# process may require the user's attention. The default is iterate over the available +# terminal types to find one that works. +# +# Examples of the occasions this may happen are when resolving patches which cannot +# be applied, to use the devshell or the kernel menuconfig +# +# Supported values are auto, gnome, xfce, rxvt, screen, konsole (KDE 3.x only), none +# Note: currently, Konsole support only works for KDE 3.x due to the way +# newer Konsole versions behave +#OE_TERMINAL = "auto" +# By default disable interactive patch resolution (tasks will just fail instead): +PATCHRESOLVE = "noop" + +# +# Disk Space Monitoring during the build +# +# Monitor the disk space during the build. If there is less that 1GB of space or less +# than 100K inodes in any key build location (TMPDIR, DL_DIR, SSTATE_DIR), gracefully +# shutdown the build. If there is less that 100MB or 1K inodes, perform a hard abort +# of the build. The reason for this is that running completely out of space can corrupt +# files and damages the build in ways which may not be easily recoverable. +# It's necessary to monitor /tmp, if there is no space left the build will fail +# with very exotic errors. +BB_DISKMON_DIRS = "\ + STOPTASKS,${TMPDIR},1G,100K \ + STOPTASKS,${DL_DIR},1G,100K \ + STOPTASKS,${SSTATE_DIR},1G,100K \ + STOPTASKS,/tmp,100M,100K \ + ABORT,${TMPDIR},100M,1K \ + ABORT,${DL_DIR},100M,1K \ + ABORT,${SSTATE_DIR},100M,1K \ + ABORT,/tmp,10M,1K" + +# +# Shared-state files from other locations +# +# As mentioned above, shared state files are prebuilt cache data objects which can +# used to accelerate build time. This variable can be used to configure the system +# to search other mirror locations for these objects before it builds the data itself. +# +# This can be a filesystem directory, or a remote url such as http or ftp. These +# would contain the sstate-cache results from previous builds (possibly from other +# machines). This variable works like fetcher MIRRORS/PREMIRRORS and points to the +# cache locations to check for the shared objects. +# NOTE: if the mirror uses the same structure as SSTATE_DIR, you need to add PATH +# at the end as shown in the examples below. This will be substituted with the +# correct path within the directory structure. +#SSTATE_MIRRORS ?= "\ +#file://.* http://someserver.tld/share/sstate/PATH;downloadfilename=PATH \n \ +#file://.* file:///some/local/dir/sstate/PATH" + + +# +# Qemu configuration +# +# By default qemu will build with a builtin VNC server where graphical output can be +# seen. The two lines below enable the SDL backend too. This assumes there is a +# libsdl library available on your build system. +#PACKAGECONFIG_append_pn-qemu-native = " sdl" +#PACKAGECONFIG_append_pn-nativesdk-qemu = " sdl" +#ASSUME_PROVIDED += "libsdl-native" + + +# CONF_VERSION is increased each time build/conf/ changes incompatibly and is used to +# track the version of this file when it was generated. This can safely be ignored if +# this doesn't mean anything to you. +CONF_VERSION = "1" diff --git a/Contrib-Inspur/openbmc/meta-yadro/meta-nicole/conf/machine/nicole.conf b/Contrib-Inspur/openbmc/meta-yadro/meta-nicole/conf/machine/nicole.conf new file mode 100644 index 00000000..488e6af1 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-yadro/meta-nicole/conf/machine/nicole.conf @@ -0,0 +1,13 @@ +KMACHINE = "aspeed" +KERNEL_DEVICETREE = "${KMACHINE}-bmc-opp-${MACHINE}.dtb" + +UBOOT_MACHINE = "ast_g5_ncsi_config" + +PREFERRED_PROVIDER_virtual/p9-vcs-workaround = '' + +require conf/machine/include/ast2500.inc +require conf/machine/include/obmc-bsp-common.inc +require conf/machine/include/openpower.inc +require conf/machine/include/p9.inc + +IMAGE_FEATURES_remove = " obmc-fan-control obmc-fan-mgmt obmc-leds" diff --git a/Contrib-Inspur/openbmc/meta-yadro/meta-nicole/recipes-kernel/linux/linux-aspeed/arch/arm/boot/dts/aspeed-bmc-opp-nicole.dts b/Contrib-Inspur/openbmc/meta-yadro/meta-nicole/recipes-kernel/linux/linux-aspeed/arch/arm/boot/dts/aspeed-bmc-opp-nicole.dts new file mode 100644 index 00000000..51c8de0d --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-yadro/meta-nicole/recipes-kernel/linux/linux-aspeed/arch/arm/boot/dts/aspeed-bmc-opp-nicole.dts @@ -0,0 +1,252 @@ +// SPDX-License-Identifier: GPL-2.0+ +// Copyright 2019 YADRO +/dts-v1/; +#include "aspeed-g5.dtsi" +#include + +/ { + model = "Nicole BMC"; + compatible = "yadro,nicole-bmc", "aspeed,ast2500"; + + chosen { + stdout-path = &uart5; + bootargs = "console=ttyS4,115200 earlyprintk"; + }; + + memory@80000000 { + reg = <0x80000000 0x20000000>; + }; + + reserved-memory { + #address-cells = <1>; + #size-cells = <1>; + ranges; + + vga_memory: framebuffer@9f000000 { + no-map; + reg = <0x9f000000 0x01000000>; /* 16M */ + }; + + flash_memory: region@98000000 { + no-map; + reg = <0x98000000 0x04000000>; /* 64M */ + }; + + coldfire_memory: codefire_memory@9ef00000 { + reg = <0x9ef00000 0x00100000>; + no-map; + }; + + gfx_memory: framebuffer { + size = <0x01000000>; + alignment = <0x01000000>; + compatible = "shared-dma-pool"; + reusable; + }; + + video_engine_memory: jpegbuffer { + size = <0x02000000>; /* 32M */ + alignment = <0x01000000>; + compatible = "shared-dma-pool"; + reusable; + }; + }; + + leds { + compatible = "gpio-leds"; + }; + + fsi: gpio-fsi { + compatible = "aspeed,ast2500-cf-fsi-master", "fsi-master"; + #address-cells = <2>; + #size-cells = <0>; + no-gpio-delays; + + memory-region = <&coldfire_memory>; + aspeed,sram = <&sram>; + aspeed,cvic = <&cvic>; + + clock-gpios = <&gpio ASPEED_GPIO(AA, 0) GPIO_ACTIVE_HIGH>; + data-gpios = <&gpio ASPEED_GPIO(AA, 2) GPIO_ACTIVE_HIGH>; + mux-gpios = <&gpio ASPEED_GPIO(A, 6) GPIO_ACTIVE_HIGH>; + enable-gpios = <&gpio ASPEED_GPIO(D, 0) GPIO_ACTIVE_HIGH>; + trans-gpios = <&gpio ASPEED_GPIO(P, 1) GPIO_ACTIVE_HIGH>; + }; + + gpio-keys { + compatible = "gpio-keys"; + + checkstop { + label = "checkstop"; + gpios = <&gpio ASPEED_GPIO(J, 2) GPIO_ACTIVE_LOW>; + linux,code = ; + }; + }; +}; + +&fmc { + status = "okay"; + flash@0 { + status = "okay"; + m25p,fast-read; + label = "bmc"; + spi-max-frequency = <50000000>; +#include "openbmc-flash-layout.dtsi" + }; +}; + +&spi1 { + status = "okay"; + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_spi1_default>; + + flash@0 { + status = "okay"; + m25p,fast-read; + label = "pnor"; + spi-max-frequency = <100000000>; + }; +}; + +&lpc_ctrl { + status = "okay"; + memory-region = <&flash_memory>; + flash = <&spi1>; +}; + +&uart1 { + /* Rear RS-232 connector */ + status = "okay"; + + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_txd1_default + &pinctrl_rxd1_default + &pinctrl_nrts1_default + &pinctrl_ndtr1_default + &pinctrl_ndsr1_default + &pinctrl_ncts1_default + &pinctrl_ndcd1_default + &pinctrl_nri1_default>; +}; + +&uart5 { + status = "okay"; +}; + +&mac0 { + status = "okay"; + + use-ncsi; + + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_rmii1_default>; + clocks = <&syscon ASPEED_CLK_GATE_MAC1CLK>, + <&syscon ASPEED_CLK_MAC1RCLK>; + clock-names = "MACCLK", "RCLK"; +}; + +&i2c1 { + status = "okay"; +}; + +&i2c2 { + status = "okay"; +}; + +&i2c3 { + status = "okay"; +}; + +&i2c4 { + status = "okay"; +}; + +&i2c5 { + status = "okay"; +}; + +&i2c6 { + status = "okay"; + + rtc@32 { + compatible = "epson,rx8900"; + reg = <0x32>; + }; +}; + +&i2c7 { + status = "okay"; +}; + +&i2c8 { + status = "okay"; +}; + +&i2c9 { + status = "okay"; +}; + +&i2c10 { + status = "okay"; +}; + +&i2c11 { + status = "okay"; +}; + +&i2c12 { + status = "okay"; +}; + +&gpio { + nic_func_mode0 { + gpio-hog; + gpios = ; + output-low; + line-name = "nic_func_mode0"; + }; + nic_func_mode1 { + gpio-hog; + gpios = ; + output-low; + line-name = "nic_func_mode1"; + }; + seq_cont { + gpio-hog; + gpios = ; + output-low; + line-name = "seq_cont"; + }; +}; + +&vuart { + status = "okay"; +}; + +&gfx { + status = "okay"; + memory-region = <&gfx_memory>; +}; + +&pinctrl { + aspeed,external-nodes = <&gfx &lhc>; +}; + +&ibt { + status = "okay"; +}; + +&vhub { + status = "okay"; +}; + +&adc { + status = "okay"; +}; + +&video { + status = "okay"; + memory-region = <&video_engine_memory>; +}; + +#include "ibm-power9-dual.dtsi" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-core/base-files/base-files/usbd b/Contrib-Inspur/openbmc/meta-yadro/meta-nicole/recipes-kernel/linux/linux-aspeed/nicole.cfg similarity index 100% rename from Contrib-Inspur/openbmc/poky/meta/recipes-core/base-files/base-files/usbd rename to Contrib-Inspur/openbmc/meta-yadro/meta-nicole/recipes-kernel/linux/linux-aspeed/nicole.cfg diff --git a/Contrib-Inspur/openbmc/meta-yadro/meta-nicole/recipes-kernel/linux/linux-aspeed_%.bbappend b/Contrib-Inspur/openbmc/meta-yadro/meta-nicole/recipes-kernel/linux/linux-aspeed_%.bbappend new file mode 100644 index 00000000..bd3e4759 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-yadro/meta-nicole/recipes-kernel/linux/linux-aspeed_%.bbappend @@ -0,0 +1,12 @@ +FILESEXTRAPATHS_prepend_nicole := "${THISDIR}/${PN}:" +SRC_URI += "file://nicole.cfg \ + file://arch \ +" + +# Merge source tree by original project with our layer of additional files +do_add_vesnin_files () { + cp -r "${WORKDIR}/arch" \ + "${STAGING_KERNEL_DIR}" +} +addtask do_add_vesnin_files after do_kernel_checkout before do_patch + diff --git a/Contrib-Inspur/openbmc/meta-yadro/meta-nicole/recipes-phosphor/chassis/avsbus-control.bb b/Contrib-Inspur/openbmc/meta-yadro/meta-nicole/recipes-phosphor/chassis/avsbus-control.bb new file mode 100644 index 00000000..1865e61e --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-yadro/meta-nicole/recipes-phosphor/chassis/avsbus-control.bb @@ -0,0 +1,25 @@ +SUMMARY = "Nicole AVSBus control" +PR = "r1" +LICENSE = "Apache-2.0" +LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10" + +inherit obmc-phosphor-systemd + +RDEPENDS_${PN} += "i2c-tools" + +S = "${WORKDIR}" +SRC_URI += "file://avsbus-control.sh" + +do_install() { + install -d ${D}${bindir} + install -m 0755 ${WORKDIR}/avsbus-control.sh \ + ${D}${bindir}/avsbus-control.sh +} + +TMPL= "avsbus-control@.service" +INSTFMT= "avsbus-control@{0}.service" +TGTFMT = "obmc-chassis-poweron@{0}.target" +FMT = "../${TMPL}:${TGTFMT}.requires/${INSTFMT}" + +SYSTEMD_SERVICE_${PN} += "${TMPL}" +SYSTEMD_LINK_${PN} += "${@compose_list(d, 'FMT', 'OBMC_CHASSIS_INSTANCES')}" diff --git a/Contrib-Inspur/openbmc/meta-yadro/meta-nicole/recipes-phosphor/chassis/avsbus-control/avsbus-control.sh b/Contrib-Inspur/openbmc/meta-yadro/meta-nicole/recipes-phosphor/chassis/avsbus-control/avsbus-control.sh new file mode 100755 index 00000000..0330b221 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-yadro/meta-nicole/recipes-phosphor/chassis/avsbus-control/avsbus-control.sh @@ -0,0 +1,31 @@ +#!/bin/sh -eu + +function override_avs_settings() +{ + BUS=$1 + + i2cset -y ${BUS} 0x44 0x00 0x00 b # VCS + i2cset -y ${BUS} 0x44 0x24 0x044C w # VOUT_MAX 1100mV + i2cset -y ${BUS} 0x44 0x40 0x0456 w # VOUT_OV_FAULT_LIMIT 1110mV + i2cset -y ${BUS} 0x44 0x25 0x0438 w # VOUT_MARGING_HIGH 1080mV + i2cset -y ${BUS} 0x44 0x26 0x03D4 w # VOUT_MARGING_LOW 980mV + i2cset -y ${BUS} 0x44 0x44 0x024E w # VOUT_UV_FAULT_LIMIT 590mV + i2cset -y ${BUS} 0x44 0x2B 0x0258 w # VOUT_MIN 600mV + + i2cset -y ${BUS} 0x44 0x00 0x01 b # VDD + i2cset -y ${BUS} 0x44 0x24 0x044C w # VOUT_MAX 1100mV + i2cset -y ${BUS} 0x44 0x40 0x0456 w # VOUT_OV_FAULT_LIMIT 1110mV + i2cset -y ${BUS} 0x44 0x25 0x041A w # VOUT_MARGING_HIGH 1050mV + i2cset -y ${BUS} 0x44 0x26 0x03B6 w # VOUT_MARGING_LOW 950mV + i2cset -y ${BUS} 0x44 0x44 0x024E w # VOUT_UV_FAULT_LIMIT 590mV + i2cset -y ${BUS} 0x44 0x2B 0x0258 w # VOUT_MIN 600mV + + i2cset -y ${BUS} 0x44 0x00 0xFF b # All pages (VCS & VDD) + i2cset -y ${BUS} 0x44 0x01 0xB0 b # Enable + + i2cset -y ${BUS} 0x46 0x00 0x01 b # VDN + i2cset -y ${BUS} 0x46 0x01 0xB0 b # Enable +} + +override_avs_settings 4 +override_avs_settings 5 diff --git a/Contrib-Inspur/openbmc/meta-yadro/meta-nicole/recipes-phosphor/chassis/avsbus-control/avsbus-control@.service b/Contrib-Inspur/openbmc/meta-yadro/meta-nicole/recipes-phosphor/chassis/avsbus-control/avsbus-control@.service new file mode 100644 index 00000000..247c506b --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-yadro/meta-nicole/recipes-phosphor/chassis/avsbus-control/avsbus-control@.service @@ -0,0 +1,20 @@ +[Unit] +Description=Enable the AVS bus on VRMs +Wants=obmc-host-start-pre@%i.target +Before=obmc-host-start-pre@%i.target +Wants=obmc-power-on@%i.target +After=obmc-power-on@%i.target +Wants=fsi-scan@%i.service +After=fsi-scan@%i.service +Conflicts=obmc-chassis-poweroff@%i.target +ConditionPathExists=!/run/openbmc/chassis@%i-on + +[Service] +ExecStart=/usr/bin/avsbus-control.sh +SyslogIdentifier=avsbus-control.sh +Type=oneshot +RemainAfterExit=yes + +[Install] +WantedBy=obmc-chassis-poweron@%i.target + diff --git a/Contrib-Inspur/openbmc/meta-yadro/meta-nicole/recipes-phosphor/configuration/nicole-yaml-config.bb b/Contrib-Inspur/openbmc/meta-yadro/meta-nicole/recipes-phosphor/configuration/nicole-yaml-config.bb new file mode 100644 index 00000000..26cad61d --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-yadro/meta-nicole/recipes-phosphor/configuration/nicole-yaml-config.bb @@ -0,0 +1,35 @@ +SUMMARY = "YAML configuration for Nicole" +PR = "r1" +LICENSE = "Apache-2.0" +LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10" + +inherit allarch + +SRC_URI = " \ + file://nicole-ipmi-fru.yaml \ + file://nicole-ipmi-fru-properties.yaml \ + file://nicole-ipmi-inventory-sensors.yaml \ + file://nicole-ipmi-sensors.yaml \ + " + +S = "${WORKDIR}" + +do_install() { + install -m 0644 -D nicole-ipmi-fru-properties.yaml \ + ${D}${datadir}/${BPN}/ipmi-extra-properties.yaml + install -m 0644 -D nicole-ipmi-fru.yaml \ + ${D}${datadir}/${BPN}/ipmi-fru-read.yaml + install -m 0644 -D nicole-ipmi-inventory-sensors.yaml \ + ${D}${datadir}/${BPN}/ipmi-inventory-sensors.yaml + install -m 0644 -D nicole-ipmi-sensors.yaml \ + ${D}${datadir}/${BPN}/ipmi-sensors.yaml +} + +FILES_${PN}-dev = " \ + ${datadir}/${BPN}/ipmi-extra-properties.yaml \ + ${datadir}/${BPN}/ipmi-fru-read.yaml \ + ${datadir}/${BPN}/ipmi-inventory-sensors.yaml \ + ${datadir}/${BPN}/ipmi-sensors.yaml \ + " + +ALLOW_EMPTY_${PN} = "1" diff --git a/Contrib-Inspur/openbmc/meta-yadro/meta-nicole/recipes-phosphor/configuration/nicole-yaml-config/nicole-ipmi-fru-properties.yaml b/Contrib-Inspur/openbmc/meta-yadro/meta-nicole/recipes-phosphor/configuration/nicole-yaml-config/nicole-ipmi-fru-properties.yaml new file mode 100644 index 00000000..ba2c9181 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-yadro/meta-nicole/recipes-phosphor/configuration/nicole-yaml-config/nicole-ipmi-fru-properties.yaml @@ -0,0 +1,45 @@ +/system: &DEFAULTS + xyz.openbmc_project.Inventory.Decorator.Cacheable: + Cached: 'true' + xyz.openbmc_project.Inventory.Decorator.Replaceable: + FieldReplaceable: 'true' + xyz.openbmc_project.Inventory.Item: + Present: 'true' +/system/chassis/motherboard: + <<: *DEFAULTS +/system/chassis/motherboard/cpu0: + <<: *DEFAULTS +/system/chassis/motherboard/cpu1: + <<: *DEFAULTS +/system/chassis/motherboard/dimm0: + <<: *DEFAULTS +/system/chassis/motherboard/dimm1: + <<: *DEFAULTS +/system/chassis/motherboard/dimm2: + <<: *DEFAULTS +/system/chassis/motherboard/dimm3: + <<: *DEFAULTS +/system/chassis/motherboard/dimm4: + <<: *DEFAULTS +/system/chassis/motherboard/dimm5: + <<: *DEFAULTS +/system/chassis/motherboard/dimm6: + <<: *DEFAULTS +/system/chassis/motherboard/dimm7: + <<: *DEFAULTS +/system/chassis/motherboard/dimm8: + <<: *DEFAULTS +/system/chassis/motherboard/dimm9: + <<: *DEFAULTS +/system/chassis/motherboard/dimm10: + <<: *DEFAULTS +/system/chassis/motherboard/dimm11: + <<: *DEFAULTS +/system/chassis/motherboard/dimm12: + <<: *DEFAULTS +/system/chassis/motherboard/dimm13: + <<: *DEFAULTS +/system/chassis/motherboard/dimm14: + <<: *DEFAULTS +/system/chassis/motherboard/dimm15: + <<: *DEFAULTS diff --git a/Contrib-Inspur/openbmc/meta-yadro/meta-nicole/recipes-phosphor/configuration/nicole-yaml-config/nicole-ipmi-fru.yaml b/Contrib-Inspur/openbmc/meta-yadro/meta-nicole/recipes-phosphor/configuration/nicole-yaml-config/nicole-ipmi-fru.yaml new file mode 100644 index 00000000..9d0d95d5 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-yadro/meta-nicole/recipes-phosphor/configuration/nicole-yaml-config/nicole-ipmi-fru.yaml @@ -0,0 +1,165 @@ +1: + /system/chassis/motherboard/cpu0: &CPU_DEFAULTS + entityID: 3 + entityInstance: 1 + interfaces: + xyz.openbmc_project.Inventory.Decorator.Asset: + BuildDate: + IPMIFruProperty: Mfg Date + IPMIFruSection: Board + Manufacturer: + IPMIFruProperty: Manufacturer + IPMIFruSection: Board + PartNumber: + IPMIFruProperty: Part Number + IPMIFruSection: Board + SerialNumber: + IPMIFruProperty: Serial Number + IPMIFruSection: Board + xyz.openbmc_project.Inventory.Decorator.Revision: + Version: + IPMIFruProperty: Custom Field 2 + IPMIFruSection: Board + IPMIFruValueDelimiter: 58 + xyz.openbmc_project.Inventory.Item: + PrettyName: + IPMIFruProperty: Name + IPMIFruSection: Board +2: + /system/chassis/motherboard/cpu1: + <<: *CPU_DEFAULTS + entityInstance: 2 +3: + /system: + entityID: 7 + entityInstance: 1 + interfaces: + xyz.openbmc_project.Inventory.Decorator.Asset: + Model: + IPMIFruProperty: Part Number + IPMIFruSection: Chassis + SerialNumber: + IPMIFruProperty: Serial Number + IPMIFruSection: Chassis + /system/chassis/motherboard: + entityID: 7 + entityInstance: 1 + interfaces: + xyz.openbmc_project.Inventory.Decorator.Asset: + BuildDate: + IPMIFruProperty: Mfg Date + IPMIFruSection: Board + Manufacturer: + IPMIFruProperty: Manufacturer + IPMIFruSection: Board + PartNumber: + IPMIFruProperty: Part Number + IPMIFruSection: Board + SerialNumber: + IPMIFruProperty: Serial Number + IPMIFruSection: Board + xyz.openbmc_project.Inventory.Item: + PrettyName: + IPMIFruProperty: Name + IPMIFruSection: Board +4: + /system/chassis/motherboard/dimm0: &DIMM_DEFAULTS + entityID: 32 + entityInstance: 1 + interfaces: + xyz.openbmc_project.Inventory.Decorator.Asset: + BuildDate: + IPMIFruProperty: Mfg Date + IPMIFruSection: Product + Manufacturer: + IPMIFruProperty: Manufacturer + IPMIFruSection: Product + Model: + IPMIFruProperty: Model Number + IPMIFruSection: Product + PartNumber: + IPMIFruProperty: Part Number + IPMIFruSection: Product + SerialNumber: + IPMIFruProperty: Serial Number + IPMIFruSection: Product + xyz.openbmc_project.Inventory.Decorator.Revision: + Version: + IPMIFruProperty: Version + xyz.openbmc_project.Inventory.Item: + PrettyName: + IPMIFruProperty: Name + IPMIFruSection: Product +5: + /system/chassis/motherboard/dimm1: + <<: *DIMM_DEFAULTS + entityInstance: 2 +6: + /system/chassis/motherboard/dimm2: + <<: *DIMM_DEFAULTS + entityInstance: 3 +7: + /system/chassis/motherboard/dimm3: + <<: *DIMM_DEFAULTS + entityInstance: 4 +8: + /system/chassis/motherboard/dimm4: + <<: *DIMM_DEFAULTS + entityInstance: 5 +9: + /system/chassis/motherboard/dimm5: + <<: *DIMM_DEFAULTS + entityInstance: 6 +10: + /system/chassis/motherboard/dimm6: + <<: *DIMM_DEFAULTS + entityInstance: 7 +11: + /system/chassis/motherboard/dimm7: + <<: *DIMM_DEFAULTS + entityInstance: 8 +12: + /system/chassis/motherboard/dimm8: + <<: *DIMM_DEFAULTS + entityInstance: 9 +13: + /system/chassis/motherboard/dimm9: + <<: *DIMM_DEFAULTS + entityInstance: 10 +14: + /system/chassis/motherboard/dimm10: + <<: *DIMM_DEFAULTS + entityInstance: 11 +15: + /system/chassis/motherboard/dimm11: + <<: *DIMM_DEFAULTS + entityInstance: 12 +16: + /system/chassis/motherboard/dimm12: + <<: *DIMM_DEFAULTS + entityInstance: 13 +17: + /system/chassis/motherboard/dimm13: + <<: *DIMM_DEFAULTS + entityInstance: 14 +18: + /system/chassis/motherboard/dimm14: + <<: *DIMM_DEFAULTS + entityInstance: 15 +19: + /system/chassis/motherboard/dimm15: + <<: *DIMM_DEFAULTS + entityInstance: 16 +28: + /system/chassis/motherboard/opfw: + entityID: 34 + entityInstance: 0 + interfaces: + xyz.openbmc_project.Inventory.Item: + PrettyName: + IPMIFruProperty: Name + IPMIFruSection: Product + xyz.openbmc_project.Inventory.Decorator.Revision: + Version: + IPMIFruProperty: Version + IPMIFruSection: Product diff --git a/Contrib-Inspur/openbmc/meta-yadro/meta-nicole/recipes-phosphor/configuration/nicole-yaml-config/nicole-ipmi-inventory-sensors.yaml b/Contrib-Inspur/openbmc/meta-yadro/meta-nicole/recipes-phosphor/configuration/nicole-yaml-config/nicole-ipmi-inventory-sensors.yaml new file mode 100644 index 00000000..5f96f87c --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-yadro/meta-nicole/recipes-phosphor/configuration/nicole-yaml-config/nicole-ipmi-inventory-sensors.yaml @@ -0,0 +1,340 @@ +/xyz/openbmc_project/inventory/system: + eventReadingType: 111 + offset: 2 + sensorID: 144 + sensorType: 18 +/xyz/openbmc_project/inventory/system/chassis/motherboard: + eventReadingType: 3 + offset: 0 + sensorID: 140 + sensorType: 199 +/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0: + eventReadingType: 111 + offset: 8 + sensorID: 8 + sensorType: 7 +/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core0: + eventReadingType: 111 + offset: 8 + sensorID: 43 + sensorType: 7 +/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core1: + eventReadingType: 111 + offset: 8 + sensorID: 44 + sensorType: 7 +/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core10: + eventReadingType: 111 + offset: 8 + sensorID: 53 + sensorType: 7 +/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core11: + eventReadingType: 111 + offset: 8 + sensorID: 54 + sensorType: 7 +/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core12: + eventReadingType: 111 + offset: 8 + sensorID: 55 + sensorType: 7 +/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core13: + eventReadingType: 111 + offset: 8 + sensorID: 56 + sensorType: 7 +/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core14: + eventReadingType: 111 + offset: 8 + sensorID: 57 + sensorType: 7 +/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core15: + eventReadingType: 111 + offset: 8 + sensorID: 58 + sensorType: 7 +/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core16: + eventReadingType: 111 + offset: 8 + sensorID: 59 + sensorType: 7 +/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core17: + eventReadingType: 111 + offset: 8 + sensorID: 60 + sensorType: 7 +/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core18: + eventReadingType: 111 + offset: 8 + sensorID: 61 + sensorType: 7 +/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core19: + eventReadingType: 111 + offset: 8 + sensorID: 62 + sensorType: 7 +/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core2: + eventReadingType: 111 + offset: 8 + sensorID: 45 + sensorType: 7 +/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core20: + eventReadingType: 111 + offset: 8 + sensorID: 63 + sensorType: 7 +/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core21: + eventReadingType: 111 + offset: 8 + sensorID: 64 + sensorType: 7 +/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core22: + eventReadingType: 111 + offset: 8 + sensorID: 65 + sensorType: 7 +/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core23: + eventReadingType: 111 + offset: 8 + sensorID: 66 + sensorType: 7 +/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core3: + eventReadingType: 111 + offset: 8 + sensorID: 46 + sensorType: 7 +/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core4: + eventReadingType: 111 + offset: 8 + sensorID: 47 + sensorType: 7 +/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core5: + eventReadingType: 111 + offset: 8 + sensorID: 48 + sensorType: 7 +/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core6: + eventReadingType: 111 + offset: 8 + sensorID: 49 + sensorType: 7 +/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core7: + eventReadingType: 111 + offset: 8 + sensorID: 50 + sensorType: 7 +/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core8: + eventReadingType: 111 + offset: 8 + sensorID: 51 + sensorType: 7 +/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core9: + eventReadingType: 111 + offset: 8 + sensorID: 52 + sensorType: 7 +/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1: + eventReadingType: 111 + offset: 8 + sensorID: 9 + sensorType: 7 +/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core0: + eventReadingType: 111 + offset: 8 + sensorID: 67 + sensorType: 7 +/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core1: + eventReadingType: 111 + offset: 8 + sensorID: 68 + sensorType: 7 +/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core10: + eventReadingType: 111 + offset: 8 + sensorID: 77 + sensorType: 7 +/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core11: + eventReadingType: 111 + offset: 8 + sensorID: 78 + sensorType: 7 +/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core12: + eventReadingType: 111 + offset: 8 + sensorID: 79 + sensorType: 7 +/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core13: + eventReadingType: 111 + offset: 8 + sensorID: 80 + sensorType: 7 +/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core14: + eventReadingType: 111 + offset: 8 + sensorID: 81 + sensorType: 7 +/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core15: + eventReadingType: 111 + offset: 8 + sensorID: 82 + sensorType: 7 +/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core16: + eventReadingType: 111 + offset: 8 + sensorID: 83 + sensorType: 7 +/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core17: + eventReadingType: 111 + offset: 8 + sensorID: 84 + sensorType: 7 +/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core18: + eventReadingType: 111 + offset: 8 + sensorID: 85 + sensorType: 7 +/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core19: + eventReadingType: 111 + offset: 8 + sensorID: 86 + sensorType: 7 +/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core2: + eventReadingType: 111 + offset: 8 + sensorID: 69 + sensorType: 7 +/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core20: + eventReadingType: 111 + offset: 8 + sensorID: 87 + sensorType: 7 +/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core21: + eventReadingType: 111 + offset: 8 + sensorID: 88 + sensorType: 7 +/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core22: + eventReadingType: 111 + offset: 8 + sensorID: 89 + sensorType: 7 +/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core23: + eventReadingType: 111 + offset: 8 + sensorID: 90 + sensorType: 7 +/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core3: + eventReadingType: 111 + offset: 8 + sensorID: 70 + sensorType: 7 +/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core4: + eventReadingType: 111 + offset: 8 + sensorID: 71 + sensorType: 7 +/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core5: + eventReadingType: 111 + offset: 8 + sensorID: 72 + sensorType: 7 +/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core6: + eventReadingType: 111 + offset: 8 + sensorID: 73 + sensorType: 7 +/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core7: + eventReadingType: 111 + offset: 8 + sensorID: 74 + sensorType: 7 +/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core8: + eventReadingType: 111 + offset: 8 + sensorID: 75 + sensorType: 7 +/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core9: + eventReadingType: 111 + offset: 8 + sensorID: 76 + sensorType: 7 +/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm0: + eventReadingType: 111 + offset: 4 + sensorID: 11 + sensorType: 12 +/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm1: + eventReadingType: 111 + offset: 4 + sensorID: 12 + sensorType: 12 +/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm10: + eventReadingType: 111 + offset: 4 + sensorID: 21 + sensorType: 12 +/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm11: + eventReadingType: 111 + offset: 4 + sensorID: 22 + sensorType: 12 +/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm12: + eventReadingType: 111 + offset: 4 + sensorID: 23 + sensorType: 12 +/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm13: + eventReadingType: 111 + offset: 4 + sensorID: 24 + sensorType: 12 +/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm14: + eventReadingType: 111 + offset: 4 + sensorID: 25 + sensorType: 12 +/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm15: + eventReadingType: 111 + offset: 4 + sensorID: 26 + sensorType: 12 +/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm2: + eventReadingType: 111 + offset: 4 + sensorID: 13 + sensorType: 12 +/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm3: + eventReadingType: 111 + offset: 4 + sensorID: 14 + sensorType: 12 +/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm4: + eventReadingType: 111 + offset: 4 + sensorID: 15 + sensorType: 12 +/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm5: + eventReadingType: 111 + offset: 4 + sensorID: 16 + sensorType: 12 +/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm6: + eventReadingType: 111 + offset: 4 + sensorID: 17 + sensorType: 12 +/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm7: + eventReadingType: 111 + offset: 4 + sensorID: 18 + sensorType: 12 +/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm8: + eventReadingType: 111 + offset: 4 + sensorID: 19 + sensorType: 12 +/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm9: + eventReadingType: 111 + offset: 4 + sensorID: 20 + sensorType: 12 diff --git a/Contrib-Inspur/openbmc/meta-yadro/meta-nicole/recipes-phosphor/configuration/nicole-yaml-config/nicole-ipmi-sensors.yaml b/Contrib-Inspur/openbmc/meta-yadro/meta-nicole/recipes-phosphor/configuration/nicole-yaml-config/nicole-ipmi-sensors.yaml new file mode 100644 index 00000000..2c056f9a --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-yadro/meta-nicole/recipes-phosphor/configuration/nicole-yaml-config/nicole-ipmi-sensors.yaml @@ -0,0 +1,741 @@ +2: + entityID: 34 + entityInstance: 1 + interfaces: + xyz.openbmc_project.State.Boot.Progress: + BootProgress: + Offsets: + 0: + set: xyz.openbmc_project.State.Boot.Progress.ProgressStages.Unspecified + type: string + 1: + set: xyz.openbmc_project.State.Boot.Progress.ProgressStages.MemoryInit + type: string + 3: + set: xyz.openbmc_project.State.Boot.Progress.ProgressStages.SecondaryProcInit + type: string + 7: + set: xyz.openbmc_project.State.Boot.Progress.ProgressStages.PCIInit + type: string + 19: + set: xyz.openbmc_project.State.Boot.Progress.ProgressStages.OSStart + type: string + 20: + set: xyz.openbmc_project.State.Boot.Progress.ProgressStages.MotherboardInit + type: string + mutability: Mutability::Write|Mutability::Read + path: /xyz/openbmc_project/state/host0 + readingType: eventdata2 + sensorNamePattern: nameProperty + sensorReadingType: 111 + sensorType: 15 + serviceInterface: org.freedesktop.DBus.Properties +3: &OCC_DEFAULTS + entityID: 210 + entityInstance: 1 + interfaces: + org.open_power.OCC.Status: + OccActive: + Offsets: + 0: + assert: false + deassert: true + type: bool + 1: + assert: true + deassert: false + type: bool + mutability: Mutability::Write|Mutability::Read + path: /org/open_power/control/occ0 + readingType: assertion + sensorNamePattern: nameLeaf + sensorReadingType: 9 + sensorType: 7 + serviceInterface: org.freedesktop.DBus.Properties +4: + <<: *OCC_DEFAULTS + entityInstance: 2 + path: /org/open_power/control/occ1 +8: &CPU_DEFAULTS + entityID: 3 + entityInstance: 1 + interfaces: + xyz.openbmc_project.Inventory.Item: + Present: + Offsets: + 7: + assert: true + deassert: false + type: bool + xyz.openbmc_project.State.Decorator.OperationalStatus: + Functional: + Offsets: + 8: + assert: false + deassert: true + type: bool + Prereqs: + 7: + assert: true + deassert: false + type: bool + mutability: Mutability::Write|Mutability::Read + path: /system/chassis/motherboard/cpu0 + readingType: assertion + sensorNamePattern: nameLeaf + sensorReadingType: 111 + sensorType: 7 + serviceInterface: xyz.openbmc_project.Inventory.Manager +9: + <<: *CPU_DEFAULTS + entityInstance: 2 + path: /system/chassis/motherboard/cpu1 +11: &DIMM_FUNC_DEFAULTS + entityID: 32 + entityInstance: 1 + interfaces: + xyz.openbmc_project.Inventory.Item: + Present: + Offsets: + 6: + assert: true + deassert: false + type: bool + xyz.openbmc_project.State.Decorator.OperationalStatus: + Functional: + Offsets: + 4: + assert: false + deassert: true + type: bool + Prereqs: + 6: + assert: true + deassert: false + type: bool + mutability: Mutability::Write|Mutability::Read + path: /system/chassis/motherboard/dimm0 + readingType: assertion + sensorNamePattern: nameLeaf + sensorReadingType: 111 + sensorType: 12 + serviceInterface: xyz.openbmc_project.Inventory.Manager +12: + <<: *DIMM_FUNC_DEFAULTS + entityInstance: 2 + path: /system/chassis/motherboard/dimm1 +13: + <<: *DIMM_FUNC_DEFAULTS + entityInstance: 3 + path: /system/chassis/motherboard/dimm2 +14: + <<: *DIMM_FUNC_DEFAULTS + entityInstance: 4 + path: /system/chassis/motherboard/dimm3 +15: + <<: *DIMM_FUNC_DEFAULTS + entityInstance: 5 + path: /system/chassis/motherboard/dimm4 +16: + <<: *DIMM_FUNC_DEFAULTS + entityInstance: 6 + path: /system/chassis/motherboard/dimm5 +17: + <<: *DIMM_FUNC_DEFAULTS + entityInstance: 7 + path: /system/chassis/motherboard/dimm6 +18: + <<: *DIMM_FUNC_DEFAULTS + entityInstance: 8 + path: /system/chassis/motherboard/dimm7 +19: + <<: *DIMM_FUNC_DEFAULTS + entityInstance: 9 + path: /system/chassis/motherboard/dimm8 +20: + <<: *DIMM_FUNC_DEFAULTS + entityInstance: 10 + path: /system/chassis/motherboard/dimm9 +21: + <<: *DIMM_FUNC_DEFAULTS + entityInstance: 11 + path: /system/chassis/motherboard/dimm10 +22: + <<: *DIMM_FUNC_DEFAULTS + entityInstance: 12 + path: /system/chassis/motherboard/dimm11 +23: + <<: *DIMM_FUNC_DEFAULTS + entityInstance: 13 + path: /system/chassis/motherboard/dimm12 +24: + <<: *DIMM_FUNC_DEFAULTS + entityInstance: 14 + path: /system/chassis/motherboard/dimm13 +25: + <<: *DIMM_FUNC_DEFAULTS + entityInstance: 15 + path: /system/chassis/motherboard/dimm14 +26: + <<: *DIMM_FUNC_DEFAULTS + entityInstance: 16 + path: /system/chassis/motherboard/dimm15 +27: &DIMM_TEMP_DEFAULTS + bExp: 0 + entityID: 32 + entityInstance: 17 + interfaces: + xyz.openbmc_project.Sensor.Value: + Value: + Offsets: + 255: + type: int64_t + multiplierM: 5 + mutability: Mutability::Write|Mutability::Read + offsetB: 0 + path: /xyz/openbmc_project/sensors/temperature/dimm0_temp + rExp: -1 + readingType: readingData + scale: -3 + sensorNamePattern: nameLeaf + sensorReadingType: 1 + sensorType: 1 + serviceInterface: org.freedesktop.DBus.Properties + unit: xyz.openbmc_project.Sensor.Value.Unit.DegreesC +28: + <<: *DIMM_TEMP_DEFAULTS + entityInstance: 18 + path: /xyz/openbmc_project/sensors/temperature/dimm1_temp +29: + <<: *DIMM_TEMP_DEFAULTS + entityInstance: 25 + path: /xyz/openbmc_project/sensors/temperature/dimm2_temp +30: + <<: *DIMM_TEMP_DEFAULTS + entityInstance: 26 + path: /xyz/openbmc_project/sensors/temperature/dimm3_temp +31: + <<: *DIMM_TEMP_DEFAULTS + entityInstance: 27 + path: /xyz/openbmc_project/sensors/temperature/dimm4_temp +32: + <<: *DIMM_TEMP_DEFAULTS + entityInstance: 28 + path: /xyz/openbmc_project/sensors/temperature/dimm5_temp +33: + <<: *DIMM_TEMP_DEFAULTS + entityInstance: 29 + path: /xyz/openbmc_project/sensors/temperature/dimm6_temp +34: + <<: *DIMM_TEMP_DEFAULTS + entityInstance: 30 + path: /xyz/openbmc_project/sensors/temperature/dimm7_temp +35: + <<: *DIMM_TEMP_DEFAULTS + entityInstance: 31 + path: /xyz/openbmc_project/sensors/temperature/dimm8_temp +36: + <<: *DIMM_TEMP_DEFAULTS + entityInstance: 32 + path: /xyz/openbmc_project/sensors/temperature/dimm9_temp +37: + <<: *DIMM_TEMP_DEFAULTS + entityInstance: 19 + path: /xyz/openbmc_project/sensors/temperature/dimm10_temp +38: + <<: *DIMM_TEMP_DEFAULTS + entityInstance: 20 + path: /xyz/openbmc_project/sensors/temperature/dimm11_temp +39: + <<: *DIMM_TEMP_DEFAULTS + entityInstance: 21 + path: /xyz/openbmc_project/sensors/temperature/dimm12_temp +40: + <<: *DIMM_TEMP_DEFAULTS + entityInstance: 22 + path: /xyz/openbmc_project/sensors/temperature/dimm13_temp +41: + <<: *DIMM_TEMP_DEFAULTS + entityInstance: 23 + path: /xyz/openbmc_project/sensors/temperature/dimm14_temp +42: + <<: *DIMM_TEMP_DEFAULTS + entityInstance: 24 + path: /xyz/openbmc_project/sensors/temperature/dimm15_temp +43: &CORE_FUNC_DEFAULTS + entityID: 208 + entityInstance: 1 + interfaces: + xyz.openbmc_project.Inventory.Item: + Present: + Offsets: + 7: + assert: true + deassert: false + skipOn: deassert + type: bool + xyz.openbmc_project.State.Decorator.OperationalStatus: + Functional: + Offsets: + 8: + assert: false + deassert: true + type: bool + Prereqs: + 7: + assert: true + deassert: false + type: bool + mutability: Mutability::Write|Mutability::Read + path: /system/chassis/motherboard/cpu0/core0 + readingType: assertion + sensorNamePattern: nameParentLeaf + sensorReadingType: 111 + sensorType: 7 + serviceInterface: xyz.openbmc_project.Inventory.Manager +44: + <<: *CORE_FUNC_DEFAULTS + entityInstance: 2 + path: /system/chassis/motherboard/cpu0/core1 +45: + <<: *CORE_FUNC_DEFAULTS + entityInstance: 3 + path: /system/chassis/motherboard/cpu0/core2 +46: + <<: *CORE_FUNC_DEFAULTS + entityInstance: 4 + path: /system/chassis/motherboard/cpu0/core3 +47: + <<: *CORE_FUNC_DEFAULTS + entityInstance: 5 + path: /system/chassis/motherboard/cpu0/core4 +48: + <<: *CORE_FUNC_DEFAULTS + entityInstance: 6 + path: /system/chassis/motherboard/cpu0/core5 +49: + <<: *CORE_FUNC_DEFAULTS + entityInstance: 7 + path: /system/chassis/motherboard/cpu0/core6 +50: + <<: *CORE_FUNC_DEFAULTS + entityInstance: 8 + path: /system/chassis/motherboard/cpu0/core7 +51: + <<: *CORE_FUNC_DEFAULTS + entityInstance: 9 + path: /system/chassis/motherboard/cpu0/core8 +52: + <<: *CORE_FUNC_DEFAULTS + entityInstance: 10 + path: /system/chassis/motherboard/cpu0/core9 +53: + <<: *CORE_FUNC_DEFAULTS + entityInstance: 11 + path: /system/chassis/motherboard/cpu0/core10 +54: + <<: *CORE_FUNC_DEFAULTS + entityInstance: 12 + path: /system/chassis/motherboard/cpu0/core11 +55: + <<: *CORE_FUNC_DEFAULTS + entityInstance: 13 + path: /system/chassis/motherboard/cpu0/core12 +56: + <<: *CORE_FUNC_DEFAULTS + entityInstance: 14 + path: /system/chassis/motherboard/cpu0/core13 +57: + <<: *CORE_FUNC_DEFAULTS + entityInstance: 15 + path: /system/chassis/motherboard/cpu0/core14 +58: + <<: *CORE_FUNC_DEFAULTS + entityInstance: 16 + path: /system/chassis/motherboard/cpu0/core15 +59: + <<: *CORE_FUNC_DEFAULTS + entityInstance: 17 + path: /system/chassis/motherboard/cpu0/core16 +60: + <<: *CORE_FUNC_DEFAULTS + entityInstance: 18 + path: /system/chassis/motherboard/cpu0/core17 +61: + <<: *CORE_FUNC_DEFAULTS + entityInstance: 19 + path: /system/chassis/motherboard/cpu0/core18 +62: + <<: *CORE_FUNC_DEFAULTS + entityInstance: 20 + path: /system/chassis/motherboard/cpu0/core19 +63: + <<: *CORE_FUNC_DEFAULTS + entityInstance: 21 + path: /system/chassis/motherboard/cpu0/core20 +64: + <<: *CORE_FUNC_DEFAULTS + entityInstance: 22 + path: /system/chassis/motherboard/cpu0/core21 +65: + <<: *CORE_FUNC_DEFAULTS + entityInstance: 23 + path: /system/chassis/motherboard/cpu0/core22 +66: + <<: *CORE_FUNC_DEFAULTS + entityInstance: 24 + path: /system/chassis/motherboard/cpu0/core23 +67: + <<: *CORE_FUNC_DEFAULTS + entityInstance: 25 + path: /system/chassis/motherboard/cpu1/core0 +68: + <<: *CORE_FUNC_DEFAULTS + entityInstance: 26 + path: /system/chassis/motherboard/cpu1/core1 +69: + <<: *CORE_FUNC_DEFAULTS + entityInstance: 27 + path: /system/chassis/motherboard/cpu1/core2 +70: + <<: *CORE_FUNC_DEFAULTS + entityInstance: 28 + path: /system/chassis/motherboard/cpu1/core3 +71: + <<: *CORE_FUNC_DEFAULTS + entityInstance: 29 + path: /system/chassis/motherboard/cpu1/core4 +72: + <<: *CORE_FUNC_DEFAULTS + entityInstance: 30 + path: /system/chassis/motherboard/cpu1/core5 +73: + <<: *CORE_FUNC_DEFAULTS + entityInstance: 31 + path: /system/chassis/motherboard/cpu1/core6 +74: + <<: *CORE_FUNC_DEFAULTS + entityInstance: 32 + path: /system/chassis/motherboard/cpu1/core7 +75: + <<: *CORE_FUNC_DEFAULTS + entityInstance: 33 + path: /system/chassis/motherboard/cpu1/core8 +76: + <<: *CORE_FUNC_DEFAULTS + entityInstance: 34 + path: /system/chassis/motherboard/cpu1/core9 +77: + <<: *CORE_FUNC_DEFAULTS + entityInstance: 35 + path: /system/chassis/motherboard/cpu1/core10 +78: + <<: *CORE_FUNC_DEFAULTS + entityInstance: 36 + path: /system/chassis/motherboard/cpu1/core11 +79: + <<: *CORE_FUNC_DEFAULTS + entityInstance: 37 + path: /system/chassis/motherboard/cpu1/core12 +80: + <<: *CORE_FUNC_DEFAULTS + entityInstance: 38 + path: /system/chassis/motherboard/cpu1/core13 +81: + <<: *CORE_FUNC_DEFAULTS + entityInstance: 39 + path: /system/chassis/motherboard/cpu1/core14 +82: + <<: *CORE_FUNC_DEFAULTS + entityInstance: 40 + path: /system/chassis/motherboard/cpu1/core15 +83: + <<: *CORE_FUNC_DEFAULTS + entityInstance: 41 + path: /system/chassis/motherboard/cpu1/core16 +84: + <<: *CORE_FUNC_DEFAULTS + entityInstance: 42 + path: /system/chassis/motherboard/cpu1/core17 +85: + <<: *CORE_FUNC_DEFAULTS + entityInstance: 43 + path: /system/chassis/motherboard/cpu1/core18 +86: + <<: *CORE_FUNC_DEFAULTS + entityInstance: 44 + path: /system/chassis/motherboard/cpu1/core19 +87: + <<: *CORE_FUNC_DEFAULTS + entityInstance: 45 + path: /system/chassis/motherboard/cpu1/core20 +88: + <<: *CORE_FUNC_DEFAULTS + entityInstance: 46 + path: /system/chassis/motherboard/cpu1/core21 +89: + <<: *CORE_FUNC_DEFAULTS + entityInstance: 47 + path: /system/chassis/motherboard/cpu1/core22 +90: + <<: *CORE_FUNC_DEFAULTS + entityInstance: 48 + path: /system/chassis/motherboard/cpu1/core23 +91: &CORE_TEMP_DEFAULTS + bExp: 0 + entityID: 208 + entityInstance: 49 + interfaces: + xyz.openbmc_project.Sensor.Value: + Value: + Offsets: + 255: + type: int64_t + multiplierM: 5 + mutability: Mutability::Write|Mutability::Read + offsetB: 0 + path: /xyz/openbmc_project/sensors/temperature/p0_core0_temp + rExp: -1 + readingType: readingData + scale: -3 + sensorNamePattern: nameLeaf + sensorReadingType: 1 + sensorType: 1 + serviceInterface: org.freedesktop.DBus.Properties + unit: xyz.openbmc_project.Sensor.Value.Unit.DegreesC +92: + <<: *CORE_TEMP_DEFAULTS + entityInstance: 50 + path: /xyz/openbmc_project/sensors/temperature/p0_core1_temp +93: + <<: *CORE_TEMP_DEFAULTS + entityInstance: 51 + path: /xyz/openbmc_project/sensors/temperature/p0_core2_temp +94: + <<: *CORE_TEMP_DEFAULTS + entityInstance: 52 + path: /xyz/openbmc_project/sensors/temperature/p0_core3_temp +95: + <<: *CORE_TEMP_DEFAULTS + entityInstance: 53 + path: /xyz/openbmc_project/sensors/temperature/p0_core4_temp +96: + <<: *CORE_TEMP_DEFAULTS + entityInstance: 54 + path: /xyz/openbmc_project/sensors/temperature/p0_core5_temp +97: + <<: *CORE_TEMP_DEFAULTS + entityInstance: 55 + path: /xyz/openbmc_project/sensors/temperature/p0_core6_temp +98: + <<: *CORE_TEMP_DEFAULTS + entityInstance: 56 + path: /xyz/openbmc_project/sensors/temperature/p0_core7_temp +99: + <<: *CORE_TEMP_DEFAULTS + entityInstance: 57 + path: /xyz/openbmc_project/sensors/temperature/p0_core8_temp +100: + <<: *CORE_TEMP_DEFAULTS + entityInstance: 58 + path: /xyz/openbmc_project/sensors/temperature/p0_core9_temp +101: + <<: *CORE_TEMP_DEFAULTS + entityInstance: 59 + path: /xyz/openbmc_project/sensors/temperature/p0_core10_temp +102: + <<: *CORE_TEMP_DEFAULTS + entityInstance: 60 + path: /xyz/openbmc_project/sensors/temperature/p0_core11_temp +103: + <<: *CORE_TEMP_DEFAULTS + entityInstance: 61 + path: /xyz/openbmc_project/sensors/temperature/p0_core12_temp +104: + <<: *CORE_TEMP_DEFAULTS + entityInstance: 62 + path: /xyz/openbmc_project/sensors/temperature/p0_core13_temp +105: + <<: *CORE_TEMP_DEFAULTS + entityInstance: 63 + path: /xyz/openbmc_project/sensors/temperature/p0_core14_temp +106: + <<: *CORE_TEMP_DEFAULTS + entityInstance: 64 + path: /xyz/openbmc_project/sensors/temperature/p0_core15_temp +107: + <<: *CORE_TEMP_DEFAULTS + entityInstance: 65 + path: /xyz/openbmc_project/sensors/temperature/p0_core16_temp +108: + <<: *CORE_TEMP_DEFAULTS + entityInstance: 66 + path: /xyz/openbmc_project/sensors/temperature/p0_core17_temp +109: + <<: *CORE_TEMP_DEFAULTS + entityInstance: 67 + path: /xyz/openbmc_project/sensors/temperature/p0_core18_temp +110: + <<: *CORE_TEMP_DEFAULTS + entityInstance: 68 + path: /xyz/openbmc_project/sensors/temperature/p0_core19_temp +111: + <<: *CORE_TEMP_DEFAULTS + entityInstance: 69 + path: /xyz/openbmc_project/sensors/temperature/p0_core20_temp +112: + <<: *CORE_TEMP_DEFAULTS + entityInstance: 70 + path: /xyz/openbmc_project/sensors/temperature/p0_core21_temp +113: + <<: *CORE_TEMP_DEFAULTS + entityInstance: 71 + path: /xyz/openbmc_project/sensors/temperature/p0_core22_temp +114: + <<: *CORE_TEMP_DEFAULTS + entityInstance: 72 + path: /xyz/openbmc_project/sensors/temperature/p0_core23_temp +115: + <<: *CORE_TEMP_DEFAULTS + entityInstance: 73 + path: /xyz/openbmc_project/sensors/temperature/p1_core0_temp +116: + <<: *CORE_TEMP_DEFAULTS + entityInstance: 74 + path: /xyz/openbmc_project/sensors/temperature/p1_core1_temp +117: + <<: *CORE_TEMP_DEFAULTS + entityInstance: 75 + path: /xyz/openbmc_project/sensors/temperature/p1_core2_temp +118: + <<: *CORE_TEMP_DEFAULTS + entityInstance: 76 + path: /xyz/openbmc_project/sensors/temperature/p1_core3_temp +119: + <<: *CORE_TEMP_DEFAULTS + entityInstance: 77 + path: /xyz/openbmc_project/sensors/temperature/p1_core4_temp +120: + <<: *CORE_TEMP_DEFAULTS + entityInstance: 78 + path: /xyz/openbmc_project/sensors/temperature/p1_core5_temp +121: + <<: *CORE_TEMP_DEFAULTS + entityInstance: 79 + path: /xyz/openbmc_project/sensors/temperature/p1_core6_temp +122: + <<: *CORE_TEMP_DEFAULTS + entityInstance: 80 + path: /xyz/openbmc_project/sensors/temperature/p1_core7_temp +123: + <<: *CORE_TEMP_DEFAULTS + entityInstance: 81 + path: /xyz/openbmc_project/sensors/temperature/p1_core8_temp +124: + <<: *CORE_TEMP_DEFAULTS + entityInstance: 82 + path: /xyz/openbmc_project/sensors/temperature/p1_core9_temp +125: + <<: *CORE_TEMP_DEFAULTS + entityInstance: 83 + path: /xyz/openbmc_project/sensors/temperature/p1_core10_temp +126: + <<: *CORE_TEMP_DEFAULTS + entityInstance: 84 + path: /xyz/openbmc_project/sensors/temperature/p1_core11_temp +127: + <<: *CORE_TEMP_DEFAULTS + entityInstance: 85 + path: /xyz/openbmc_project/sensors/temperature/p1_core12_temp +128: + <<: *CORE_TEMP_DEFAULTS + entityInstance: 86 + path: /xyz/openbmc_project/sensors/temperature/p1_core13_temp +129: + <<: *CORE_TEMP_DEFAULTS + entityInstance: 87 + path: /xyz/openbmc_project/sensors/temperature/p1_core14_temp +130: + <<: *CORE_TEMP_DEFAULTS + entityInstance: 88 + path: /xyz/openbmc_project/sensors/temperature/p1_core15_temp +131: + <<: *CORE_TEMP_DEFAULTS + entityInstance: 89 + path: /xyz/openbmc_project/sensors/temperature/p1_core16_temp +132: + <<: *CORE_TEMP_DEFAULTS + entityInstance: 90 + path: /xyz/openbmc_project/sensors/temperature/p1_core17_temp +133: + <<: *CORE_TEMP_DEFAULTS + entityInstance: 91 + path: /xyz/openbmc_project/sensors/temperature/p1_core18_temp +134: + <<: *CORE_TEMP_DEFAULTS + entityInstance: 92 + path: /xyz/openbmc_project/sensors/temperature/p1_core19_temp +135: + <<: *CORE_TEMP_DEFAULTS + entityInstance: 93 + path: /xyz/openbmc_project/sensors/temperature/p1_core20_temp +136: + <<: *CORE_TEMP_DEFAULTS + entityInstance: 94 + path: /xyz/openbmc_project/sensors/temperature/p1_core21_temp +137: + <<: *CORE_TEMP_DEFAULTS + entityInstance: 95 + path: /xyz/openbmc_project/sensors/temperature/p1_core22_temp +138: + <<: *CORE_TEMP_DEFAULTS + entityInstance: 96 + path: /xyz/openbmc_project/sensors/temperature/p1_core23_temp +139: + entityID: 34 + entityInstance: 2 + interfaces: + xyz.openbmc_project.Control.Boot.RebootAttempts: + AttemptsLeft: + Offsets: + 255: + type: uint32_t + mutability: Mutability::Write|Mutability::Read + path: /xyz/openbmc_project/state/host0 + readingType: readingAssertion + sensorNamePattern: nameProperty + sensorReadingType: 111 + sensorType: 195 + serviceInterface: org.freedesktop.DBus.Properties +145: + entityID: 35 + entityInstance: 1 + interfaces: + xyz.openbmc_project.State.OperatingSystem.Status: + OperatingSystemState: + Offsets: + 1: + assert: xyz.openbmc_project.State.OperatingSystem.Status.OSStatus.CBoot + type: string + 2: + assert: xyz.openbmc_project.State.OperatingSystem.Status.OSStatus.PXEBoot + type: string + 3: + assert: xyz.openbmc_project.State.OperatingSystem.Status.OSStatus.DiagBoot + type: string + 4: + assert: xyz.openbmc_project.State.OperatingSystem.Status.OSStatus.CDROMBoot + type: string + 5: + assert: xyz.openbmc_project.State.OperatingSystem.Status.OSStatus.ROMBoot + type: string + 6: + assert: xyz.openbmc_project.State.OperatingSystem.Status.OSStatus.BootComplete + type: string + mutability: Mutability::Write|Mutability::Read + path: /xyz/openbmc_project/state/host0 + readingType: assertion + sensorNamePattern: nameProperty + sensorReadingType: 111 + sensorType: 31 + serviceInterface: org.freedesktop.DBus.Properties diff --git a/Contrib-Inspur/openbmc/meta-yadro/meta-nicole/recipes-phosphor/console/obmc-console/obmc-console.conf b/Contrib-Inspur/openbmc/meta-yadro/meta-nicole/recipes-phosphor/console/obmc-console/obmc-console.conf new file mode 100644 index 00000000..a5ba3f32 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-yadro/meta-nicole/recipes-phosphor/console/obmc-console/obmc-console.conf @@ -0,0 +1,4 @@ +lpc-address = 0x3f8 +sirq = 4 +local-tty = ttyS0 +local-tty-baud = 115200 diff --git a/Contrib-Inspur/openbmc/meta-yadro/meta-nicole/recipes-phosphor/console/obmc-console_%.bbappend b/Contrib-Inspur/openbmc/meta-yadro/meta-nicole/recipes-phosphor/console/obmc-console_%.bbappend new file mode 100644 index 00000000..72d991c7 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-yadro/meta-nicole/recipes-phosphor/console/obmc-console_%.bbappend @@ -0,0 +1 @@ +FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:" diff --git a/Contrib-Inspur/openbmc/meta-yadro/meta-nicole/recipes-phosphor/host/p9-host-start.bbappend b/Contrib-Inspur/openbmc/meta-yadro/meta-nicole/recipes-phosphor/host/p9-host-start.bbappend new file mode 100644 index 00000000..83ef5455 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-yadro/meta-nicole/recipes-phosphor/host/p9-host-start.bbappend @@ -0,0 +1,2 @@ +RDEPENDS_${PN}_append = " avsbus-control" +RDEPENDS_${PN}_remove = " p9-vcs-workaround" diff --git a/Contrib-Inspur/openbmc/meta-yadro/meta-nicole/recipes-phosphor/images/obmc-phosphor-image.bbappend b/Contrib-Inspur/openbmc/meta-yadro/meta-nicole/recipes-phosphor/images/obmc-phosphor-image.bbappend new file mode 100644 index 00000000..aa57bbfe --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-yadro/meta-nicole/recipes-phosphor/images/obmc-phosphor-image.bbappend @@ -0,0 +1 @@ +OBMC_IMAGE_EXTRA_INSTALL_append = " mboxd" diff --git a/Contrib-Inspur/openbmc/meta-yadro/meta-nicole/recipes-phosphor/ipmi/openpower-ipmi-oem_%.bbappend b/Contrib-Inspur/openbmc/meta-yadro/meta-nicole/recipes-phosphor/ipmi/openpower-ipmi-oem_%.bbappend new file mode 100644 index 00000000..775119b5 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-yadro/meta-nicole/recipes-phosphor/ipmi/openpower-ipmi-oem_%.bbappend @@ -0,0 +1,5 @@ +DEPENDS_append = " nicole-yaml-config" + +EXTRA_OECONF = " \ + INVSENSOR_YAML_GEN=${STAGING_DIR_HOST}${datadir}/nicole-yaml-config/ipmi-inventory-sensors.yaml \ + " diff --git a/Contrib-Inspur/openbmc/meta-yadro/meta-nicole/recipes-phosphor/ipmi/phosphor-ipmi-fru_%.bbappend b/Contrib-Inspur/openbmc/meta-yadro/meta-nicole/recipes-phosphor/ipmi/phosphor-ipmi-fru_%.bbappend new file mode 100644 index 00000000..5ac83a8c --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-yadro/meta-nicole/recipes-phosphor/ipmi/phosphor-ipmi-fru_%.bbappend @@ -0,0 +1,5 @@ +DEPENDS_append = " nicole-yaml-config" + +EXTRA_OECONF = " \ + YAML_GEN=${STAGING_DIR_HOST}${datadir}/nicole-yaml-config/ipmi-fru-read.yaml \ + " diff --git a/Contrib-Inspur/openbmc/meta-yadro/meta-nicole/recipes-phosphor/ipmi/phosphor-ipmi-host_%.bbappend b/Contrib-Inspur/openbmc/meta-yadro/meta-nicole/recipes-phosphor/ipmi/phosphor-ipmi-host_%.bbappend new file mode 100644 index 00000000..7983e94b --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-yadro/meta-nicole/recipes-phosphor/ipmi/phosphor-ipmi-host_%.bbappend @@ -0,0 +1,7 @@ +DEPENDS_append = " nicole-yaml-config" + +EXTRA_OECONF = " \ + SENSOR_YAML_GEN=${STAGING_DIR_HOST}${datadir}/nicole-yaml-config/ipmi-sensors.yaml \ + INVSENSOR_YAML_GEN=${STAGING_DIR_HOST}${datadir}/nicole-yaml-config/ipmi-inventory-sensors.yaml \ + FRU_YAML_GEN=${STAGING_DIR_HOST}${datadir}/nicole-yaml-config/ipmi-fru-read.yaml \ + " diff --git a/Contrib-Inspur/openbmc/meta-yadro/meta-nicole/recipes-phosphor/logging/openpower-esel-parser_git.bb b/Contrib-Inspur/openbmc/meta-yadro/meta-nicole/recipes-phosphor/logging/openpower-esel-parser_git.bb new file mode 100644 index 00000000..fe9b8fee --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-yadro/meta-nicole/recipes-phosphor/logging/openpower-esel-parser_git.bb @@ -0,0 +1,23 @@ +SUMMARY = "OpenPOWER eSEL parser" +DESCRIPTION = "Shared library and console utility for parsing eSEL." +HOMEPAGE = "https://github.com/YADRO-KNS/openpower-esel-parser" +PR = "r1" +PV = "1.0+git${SRCPV}" + +inherit autotools +inherit pkgconfig +inherit perlnative + +# License info +LICENSE = "Apache-2.0" +LIC_FILES_CHKSUM = "file://LICENSE;md5=e3fc50a88d0a364313df4b21ef20c29e" + +# Dependencies +DEPENDS += "autoconf-archive-native \ + libxml-libxml-perl-native \ + libxml-simple-perl-native" + +# Source code repository +S = "${WORKDIR}/git" +SRC_URI = "gitsm://github.com/YADRO-KNS/openpower-esel-parser" +SRCREV = "c35879fa605f3aa8098fff2c0a395815d8cbfe51" diff --git a/Contrib-Inspur/openbmc/meta-yadro/meta-nicole/recipes-phosphor/mboxd/mboxd_%.bbappend b/Contrib-Inspur/openbmc/meta-yadro/meta-nicole/recipes-phosphor/mboxd/mboxd_%.bbappend new file mode 100644 index 00000000..8b6248a4 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-yadro/meta-nicole/recipes-phosphor/mboxd/mboxd_%.bbappend @@ -0,0 +1 @@ +MBOXD_FLASH_SIZE = "64M" diff --git a/Contrib-Inspur/openbmc/meta-yadro/meta-nicole/recipes-phosphor/occ/files/occ_sensor.yaml b/Contrib-Inspur/openbmc/meta-yadro/meta-nicole/recipes-phosphor/occ/files/occ_sensor.yaml new file mode 100644 index 00000000..ebfaf763 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-yadro/meta-nicole/recipes-phosphor/occ/files/occ_sensor.yaml @@ -0,0 +1,6 @@ +- Instance: 0 + SensorID: 0x03 + SensorName: occ0 +- Instance: 1 + SensorID: 0x04 + SensorName: occ1 diff --git a/Contrib-Inspur/openbmc/meta-yadro/meta-nicole/recipes-phosphor/occ/nicole-occ-control-config-native.bb b/Contrib-Inspur/openbmc/meta-yadro/meta-nicole/recipes-phosphor/occ/nicole-occ-control-config-native.bb new file mode 100644 index 00000000..83deb434 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-yadro/meta-nicole/recipes-phosphor/occ/nicole-occ-control-config-native.bb @@ -0,0 +1,18 @@ +SUMMARY = "Nicole OCC Control sensor IDs" +PR = "r1" +LICENSE = "Apache-2.0" +LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10" + +inherit native +inherit openpower-occ-control + +PROVIDES += "virtual/openpower-occ-control-config-native" + +FILESEXTRAPATHS_prepend := "${THISDIR}/files:" +SRC_URI += "file://occ_sensor.yaml" + +S = "${WORKDIR}" +do_install() { + install -d ${YAML_DEST}/ + install ${S}/occ_sensor.yaml ${YAML_DEST}/ +} diff --git a/Contrib-Inspur/openbmc/meta-yadro/meta-nicole/recipes-phosphor/packagegroups/packagegroup-obmc-apps.bbappend b/Contrib-Inspur/openbmc/meta-yadro/meta-nicole/recipes-phosphor/packagegroups/packagegroup-obmc-apps.bbappend new file mode 100644 index 00000000..ce3a6494 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-yadro/meta-nicole/recipes-phosphor/packagegroups/packagegroup-obmc-apps.bbappend @@ -0,0 +1,2 @@ +RDEPENDS_${PN}-inventory_append = " openpower-occ-control" +RDEPENDS_${PN}-extras += " phosphor-hostlogger openpower-esel-parser" diff --git a/Contrib-Inspur/openbmc/meta-yadro/meta-nicole/recipes-phosphor/sensors/phosphor-hwmon/obmc/hwmon/devices/platform/gpio-fsi/fsi0/slave@00--00/00--00--00--06/sbefifo1-dev0/occ-hwmon.1.conf b/Contrib-Inspur/openbmc/meta-yadro/meta-nicole/recipes-phosphor/sensors/phosphor-hwmon/obmc/hwmon/devices/platform/gpio-fsi/fsi0/slave@00--00/00--00--00--06/sbefifo1-dev0/occ-hwmon.1.conf new file mode 100644 index 00000000..21a4eaa1 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-yadro/meta-nicole/recipes-phosphor/sensors/phosphor-hwmon/obmc/hwmon/devices/platform/gpio-fsi/fsi0/slave@00--00/00--00--00--06/sbefifo1-dev0/occ-hwmon.1.conf @@ -0,0 +1,228 @@ +MODE_temp1 = "label" +MODE_temp2 = "label" +MODE_temp3 = "label" +MODE_temp4 = "label" +MODE_temp5 = "label" +MODE_temp6 = "label" +MODE_temp7 = "label" +MODE_temp8 = "label" +MODE_temp9 = "label" +MODE_temp10 = "label" +MODE_temp11 = "label" +MODE_temp12 = "label" +MODE_temp13 = "label" +MODE_temp14 = "label" +MODE_temp15 = "label" +MODE_temp16 = "label" +MODE_temp17 = "label" +MODE_temp18 = "label" +MODE_temp19 = "label" +MODE_temp20 = "label" +MODE_temp21 = "label" +MODE_temp22 = "label" +MODE_temp23 = "label" +MODE_temp24 = "label" +MODE_temp25 = "label" +MODE_temp26 = "label" +MODE_temp27 = "label" +MODE_temp28 = "label" +MODE_temp29 = "label" +MODE_temp30 = "label" +MODE_temp31 = "label" +MODE_temp32 = "label" + +LABEL_temp91 = "p0_core0_temp" +WARNHI_temp91 = "78000" +WARNLO_temp91 = "0" +CRITHI_temp91 = "83000" +CRITLO_temp91 = "0" + +LABEL_temp92 = "p0_core1_temp" +WARNHI_temp92 = "78000" +WARNLO_temp92 = "0" +CRITHI_temp92 = "83000" +CRITLO_temp92 = "0" + +LABEL_temp93 = "p0_core2_temp" +WARNHI_temp93 = "78000" +WARNLO_temp93 = "0" +CRITHI_temp93 = "83000" +CRITLO_temp93 = "0" + +LABEL_temp94 = "p0_core3_temp" +WARNHI_temp94 = "78000" +WARNLO_temp94 = "0" +CRITHI_temp94 = "83000" +CRITLO_temp94 = "0" + +LABEL_temp95 = "p0_core4_temp" +WARNHI_temp95 = "78000" +WARNLO_temp95 = "0" +CRITHI_temp95 = "83000" +CRITLO_temp95 = "0" + +LABEL_temp96 = "p0_core5_temp" +WARNHI_temp96 = "78000" +WARNLO_temp96 = "0" +CRITHI_temp96 = "83000" +CRITLO_temp96 = "0" + +LABEL_temp97 = "p0_core6_temp" +WARNHI_temp97 = "78000" +WARNLO_temp97 = "0" +CRITHI_temp97 = "83000" +CRITLO_temp97 = "0" + +LABEL_temp98 = "p0_core7_temp" +WARNHI_temp98 = "78000" +WARNLO_temp98 = "0" +CRITHI_temp98 = "83000" +CRITLO_temp98 = "0" + +LABEL_temp99 = "p0_core8_temp" +WARNHI_temp99 = "78000" +WARNLO_temp99 = "0" +CRITHI_temp99 = "83000" +CRITLO_temp99 = "0" + +LABEL_temp100 = "p0_core9_temp" +WARNHI_temp100 = "78000" +WARNLO_temp100 = "0" +CRITHI_temp100 = "83000" +CRITLO_temp100 = "0" + +LABEL_temp101 = "p0_core10_temp" +WARNHI_temp101 = "78000" +WARNLO_temp101 = "0" +CRITHI_temp101 = "83000" +CRITLO_temp101 = "0" + +LABEL_temp102 = "p0_core11_temp" +WARNHI_temp102 = "78000" +WARNLO_temp102 = "0" +CRITHI_temp102 = "83000" +CRITLO_temp102 = "0" + +LABEL_temp103 = "p0_core12_temp" +WARNHI_temp103 = "78000" +WARNLO_temp103 = "0" +CRITHI_temp103 = "83000" +CRITLO_temp103 = "0" + +LABEL_temp104 = "p0_core13_temp" +WARNHI_temp104 = "78000" +WARNLO_temp104 = "0" +CRITHI_temp104 = "83000" +CRITLO_temp104 = "0" + +LABEL_temp105 = "p0_core14_temp" +WARNHI_temp105 = "78000" +WARNLO_temp105 = "0" +CRITHI_temp105 = "83000" +CRITLO_temp105 = "0" + +LABEL_temp106 = "p0_core15_temp" +WARNHI_temp106 = "78000" +WARNLO_temp106 = "0" +CRITHI_temp106 = "83000" +CRITLO_temp106 = "0" + +LABEL_temp107 = "p0_core16_temp" +WARNHI_temp107 = "78000" +WARNLO_temp107 = "0" +CRITHI_temp107 = "83000" +CRITLO_temp107 = "0" + +LABEL_temp108 = "p0_core17_temp" +WARNHI_temp108 = "78000" +WARNLO_temp108 = "0" +CRITHI_temp108 = "83000" +CRITLO_temp108 = "0" + +LABEL_temp109 = "p0_core18_temp" +WARNHI_temp109 = "78000" +WARNLO_temp109 = "0" +CRITHI_temp109 = "83000" +CRITLO_temp109 = "0" + +LABEL_temp110 = "p0_core19_temp" +WARNHI_temp110 = "78000" +WARNLO_temp110 = "0" +CRITHI_temp110 = "83000" +CRITLO_temp110 = "0" + +LABEL_temp111 = "p0_core20_temp" +WARNHI_temp111 = "78000" +WARNLO_temp111 = "0" +CRITHI_temp111 = "83000" +CRITLO_temp111 = "0" + +LABEL_temp112 = "p0_core21_temp" +WARNHI_temp112 = "78000" +WARNLO_temp112 = "0" +CRITHI_temp112 = "83000" +CRITLO_temp112 = "0" + +LABEL_temp113 = "p0_core22_temp" +WARNHI_temp113 = "78000" +WARNLO_temp113 = "0" +CRITHI_temp113 = "83000" +CRITLO_temp113 = "0" + +LABEL_temp114 = "p0_core23_temp" +WARNHI_temp114 = "78000" +WARNLO_temp114 = "0" +CRITHI_temp114 = "83000" +CRITLO_temp114 = "0" + +LABEL_temp27 = "dimm0_temp" +WARNHI_temp27 = "78000" +WARNLO_temp27 = "0" +CRITHI_temp27 = "83000" +CRITLO_temp27 = "0" + +LABEL_temp28 = "dimm1_temp" +WARNHI_temp28 = "78000" +WARNLO_temp28 = "0" +CRITHI_temp28 = "83000" +CRITLO_temp28 = "0" + +LABEL_temp29 = "dimm2_temp" +WARNHI_temp29 = "78000" +WARNLO_temp29 = "0" +CRITHI_temp29 = "83000" +CRITLO_temp29 = "0" + +LABEL_temp30 = "dimm3_temp" +WARNHI_temp30 = "78000" +WARNLO_temp30 = "0" +CRITHI_temp30 = "83000" +CRITLO_temp30 = "0" + +LABEL_temp31 = "dimm4_temp" +WARNHI_temp31 = "78000" +WARNLO_temp31 = "0" +CRITHI_temp31 = "83000" +CRITLO_temp31 = "0" + +LABEL_temp32 = "dimm5_temp" +WARNHI_temp32 = "78000" +WARNLO_temp32 = "0" +CRITHI_temp32 = "83000" +CRITLO_temp32 = "0" + +LABEL_temp33 = "dimm6_temp" +WARNHI_temp33 = "78000" +WARNLO_temp33 = "0" +CRITHI_temp33 = "83000" +CRITLO_temp33 = "0" + +LABEL_temp34 = "dimm7_temp" +WARNHI_temp34 = "78000" +WARNLO_temp34 = "0" +CRITHI_temp34 = "83000" +CRITLO_temp34 = "0" + +LABEL_power2 = "p0_power" +LABEL_power3 = "p0_vdd_power" +LABEL_power4 = "p0_vdn_power" diff --git a/Contrib-Inspur/openbmc/meta-yadro/meta-nicole/recipes-phosphor/sensors/phosphor-hwmon/obmc/hwmon/devices/platform/gpio-fsi/fsi0/slave@00--00/00--00--00--0a/fsi1/slave@01--00/01--01--00--06/sbefifo2-dev0/occ-hwmon.2.conf b/Contrib-Inspur/openbmc/meta-yadro/meta-nicole/recipes-phosphor/sensors/phosphor-hwmon/obmc/hwmon/devices/platform/gpio-fsi/fsi0/slave@00--00/00--00--00--0a/fsi1/slave@01--00/01--01--00--06/sbefifo2-dev0/occ-hwmon.2.conf new file mode 100644 index 00000000..096c5c5d --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-yadro/meta-nicole/recipes-phosphor/sensors/phosphor-hwmon/obmc/hwmon/devices/platform/gpio-fsi/fsi0/slave@00--00/00--00--00--0a/fsi1/slave@01--00/01--01--00--06/sbefifo2-dev0/occ-hwmon.2.conf @@ -0,0 +1,228 @@ +MODE_temp1 = "label" +MODE_temp2 = "label" +MODE_temp3 = "label" +MODE_temp4 = "label" +MODE_temp5 = "label" +MODE_temp6 = "label" +MODE_temp7 = "label" +MODE_temp8 = "label" +MODE_temp9 = "label" +MODE_temp10 = "label" +MODE_temp11 = "label" +MODE_temp12 = "label" +MODE_temp13 = "label" +MODE_temp14 = "label" +MODE_temp15 = "label" +MODE_temp16 = "label" +MODE_temp17 = "label" +MODE_temp18 = "label" +MODE_temp19 = "label" +MODE_temp20 = "label" +MODE_temp21 = "label" +MODE_temp22 = "label" +MODE_temp23 = "label" +MODE_temp24 = "label" +MODE_temp25 = "label" +MODE_temp26 = "label" +MODE_temp27 = "label" +MODE_temp28 = "label" +MODE_temp29 = "label" +MODE_temp30 = "label" +MODE_temp31 = "label" +MODE_temp32 = "label" + +LABEL_temp115 = "p1_core0_temp" +WARNHI_temp115 = "78000" +WARNLO_temp115 = "0" +CRITHI_temp115 = "83000" +CRITLO_temp115 = "0" + +LABEL_temp116 = "p1_core1_temp" +WARNHI_temp116 = "78000" +WARNLO_temp116 = "0" +CRITHI_temp116 = "83000" +CRITLO_temp116 = "0" + +LABEL_temp117 = "p1_core2_temp" +WARNHI_temp117 = "78000" +WARNLO_temp117 = "0" +CRITHI_temp117 = "83000" +CRITLO_temp117 = "0" + +LABEL_temp118 = "p1_core3_temp" +WARNHI_temp118 = "78000" +WARNLO_temp118 = "0" +CRITHI_temp118 = "83000" +CRITLO_temp118 = "0" + +LABEL_temp119 = "p1_core4_temp" +WARNHI_temp119 = "78000" +WARNLO_temp119 = "0" +CRITHI_temp119 = "83000" +CRITLO_temp119 = "0" + +LABEL_temp120 = "p1_core5_temp" +WARNHI_temp120 = "78000" +WARNLO_temp120 = "0" +CRITHI_temp120 = "83000" +CRITLO_temp120 = "0" + +LABEL_temp121 = "p1_core6_temp" +WARNHI_temp121 = "78000" +WARNLO_temp121 = "0" +CRITHI_temp121 = "83000" +CRITLO_temp121 = "0" + +LABEL_temp122 = "p1_core7_temp" +WARNHI_temp122 = "78000" +WARNLO_temp122 = "0" +CRITHI_temp122 = "83000" +CRITLO_temp122 = "0" + +LABEL_temp123 = "p1_core8_temp" +WARNHI_temp123 = "78000" +WARNLO_temp123 = "0" +CRITHI_temp123 = "83000" +CRITLO_temp123 = "0" + +LABEL_temp124 = "p1_core9_temp" +WARNHI_temp124 = "78000" +WARNLO_temp124 = "0" +CRITHI_temp124 = "83000" +CRITLO_temp124 = "0" + +LABEL_temp125 = "p1_core10_temp" +WARNHI_temp125 = "78000" +WARNLO_temp125 = "0" +CRITHI_temp125 = "83000" +CRITLO_temp125 = "0" + +LABEL_temp126 = "p1_core11_temp" +WARNHI_temp126 = "78000" +WARNLO_temp126 = "0" +CRITHI_temp126 = "83000" +CRITLO_temp126 = "0" + +LABEL_temp127 = "p1_core12_temp" +WARNHI_temp127 = "78000" +WARNLO_temp127 = "0" +CRITHI_temp127 = "83000" +CRITLO_temp127 = "0" + +LABEL_temp128 = "p1_core13_temp" +WARNHI_temp128 = "78000" +WARNLO_temp128 = "0" +CRITHI_temp128 = "83000" +CRITLO_temp128 = "0" + +LABEL_temp129 = "p1_core14_temp" +WARNHI_temp129 = "78000" +WARNLO_temp129 = "0" +CRITHI_temp129 = "83000" +CRITLO_temp129 = "0" + +LABEL_temp130 = "p1_core15_temp" +WARNHI_temp130 = "78000" +WARNLO_temp130 = "0" +CRITHI_temp130 = "83000" +CRITLO_temp130 = "0" + +LABEL_temp131 = "p1_core16_temp" +WARNHI_temp131 = "78000" +WARNLO_temp131 = "0" +CRITHI_temp131 = "83000" +CRITLO_temp131 = "0" + +LABEL_temp132 = "p1_core17_temp" +WARNHI_temp132 = "78000" +WARNLO_temp132 = "0" +CRITHI_temp132 = "83000" +CRITLO_temp132 = "0" + +LABEL_temp133 = "p1_core18_temp" +WARNHI_temp133 = "78000" +WARNLO_temp133 = "0" +CRITHI_temp133 = "83000" +CRITLO_temp133 = "0" + +LABEL_temp134 = "p1_core19_temp" +WARNHI_temp134 = "78000" +WARNLO_temp134 = "0" +CRITHI_temp134 = "83000" +CRITLO_temp134 = "0" + +LABEL_temp135 = "p1_core20_temp" +WARNHI_temp135 = "78000" +WARNLO_temp135 = "0" +CRITHI_temp135 = "83000" +CRITLO_temp135 = "0" + +LABEL_temp136 = "p1_core21_temp" +WARNHI_temp136 = "78000" +WARNLO_temp136 = "0" +CRITHI_temp136 = "83000" +CRITLO_temp136 = "0" + +LABEL_temp137 = "p1_core22_temp" +WARNHI_temp137 = "78000" +WARNLO_temp137 = "0" +CRITHI_temp137 = "83000" +CRITLO_temp137 = "0" + +LABEL_temp138 = "p1_core23_temp" +WARNHI_temp138 = "78000" +WARNLO_temp138 = "0" +CRITHI_temp138 = "83000" +CRITLO_temp138 = "0" + +LABEL_temp35 = "dimm8_temp" +WARNHI_temp35 = "78000" +WARNLO_temp35 = "0" +CRITHI_temp35 = "83000" +CRITLO_temp35 = "0" + +LABEL_temp36 = "dimm9_temp" +WARNHI_temp36 = "78000" +WARNLO_temp36 = "0" +CRITHI_temp36 = "83000" +CRITLO_temp36 = "0" + +LABEL_temp37 = "dimm10_temp" +WARNHI_temp37 = "78000" +WARNLO_temp37 = "0" +CRITHI_temp37 = "83000" +CRITLO_temp37 = "0" + +LABEL_temp38 = "dimm11_temp" +WARNHI_temp38 = "78000" +WARNLO_temp38 = "0" +CRITHI_temp38 = "83000" +CRITLO_temp38 = "0" + +LABEL_temp39 = "dimm12_temp" +WARNHI_temp39 = "78000" +WARNLO_temp39 = "0" +CRITHI_temp39 = "83000" +CRITLO_temp39 = "0" + +LABEL_temp40 = "dimm13_temp" +WARNHI_temp40 = "78000" +WARNLO_temp40 = "0" +CRITHI_temp40 = "83000" +CRITLO_temp40 = "0" + +LABEL_temp41 = "dimm14_temp" +WARNHI_temp41 = "78000" +WARNLO_temp41 = "0" +CRITHI_temp41 = "83000" +CRITLO_temp41 = "0" + +LABEL_temp42 = "dimm15_temp" +WARNHI_temp42 = "78000" +WARNLO_temp42 = "0" +CRITHI_temp42 = "83000" +CRITLO_temp42 = "0" + +LABEL_power2 = "p1_power" +LABEL_power3 = "p1_vdd_power" +LABEL_power4 = "p1_vdn_power" diff --git a/Contrib-Inspur/openbmc/meta-yadro/meta-nicole/recipes-phosphor/sensors/phosphor-hwmon_%.bbappend b/Contrib-Inspur/openbmc/meta-yadro/meta-nicole/recipes-phosphor/sensors/phosphor-hwmon_%.bbappend new file mode 100644 index 00000000..ab859417 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-yadro/meta-nicole/recipes-phosphor/sensors/phosphor-hwmon_%.bbappend @@ -0,0 +1,14 @@ +FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:" + +EXTRA_OECONF_append = " --enable-negative-errno-on-fail" + +OCCS = " \ + 00--00--00--06/sbefifo1-dev0/occ-hwmon.1 \ + 00--00--00--0a/fsi1/slave@01--00/01--01--00--06/sbefifo2-dev0/occ-hwmon.2 \ + " + +OCCSFMT = "devices/platform/gpio-fsi/fsi0/slave@00--00/{0}.conf" +OCCITEMS = "${@compose_list(d, 'OCCSFMT', 'OCCS')}" + +ENVS = "obmc/hwmon/{0}" +SYSTEMD_ENVIRONMENT_FILE_${PN}_append = " ${@compose_list(d, 'ENVS', 'OCCITEMS')}" diff --git a/Contrib-Inspur/openbmc/meta-yadro/meta-nicole/recipes-phosphor/skeleton/obmc-libobmc-intf/gpio_defs.json b/Contrib-Inspur/openbmc/meta-yadro/meta-nicole/recipes-phosphor/skeleton/obmc-libobmc-intf/gpio_defs.json new file mode 100644 index 00000000..146b9af4 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-yadro/meta-nicole/recipes-phosphor/skeleton/obmc-libobmc-intf/gpio_defs.json @@ -0,0 +1,72 @@ +{ + "gpio_configs": { + + "power_config": { + "power_good_in": "SYS_PWROK_BUFF", + "power_up_outs": [ + { "name": "SOFTWARE_PGOOD", "polarity": true}, + { "name": "BMC_POWER_UP", "polarity": true} + ], + "reset_outs": [ + ] + } + }, + + "gpio_definitions": [ + { + "name": "SOFTWARE_PGOOD", + "pin": "R1", + "direction": "out" + }, + { + "name": "BMC_POWER_UP", + "pin": "D1", + "direction": "out" + }, + { + "name": "SYS_PWROK_BUFF", + "pin": "D2", + "direction": "in" + }, + { + "name": "BMC_WD_CLEAR_PULSE_N", + "pin": "N5", + "direction": "falling" + }, + { + "name": "CHECKSTOP", + "pin": "J2", + "direction": "falling" + }, + { + "name": "BMC_CP0_RESET_N", + "pin": "A1", + "direction": "out" + }, + { + "name": "BMC_CP0_PERST_ENABLE_R", + "pin": "A3", + "direction": "out" + }, + { + "name": "BMC_THROTTLE", + "pin": "J3", + "direction": "out" + }, + { + "name": "IDBTN", + "pin": "Q7", + "direction": "out" + }, + { + "name": "POWER_BUTTON", + "pin": "I3", + "direction": "both" + }, + { + "name": "RESET_BUTTON", + "pin": "J1", + "direction": "both" + } + ] +} diff --git a/Contrib-Inspur/openbmc/meta-yadro/meta-nicole/recipes-phosphor/skeleton/obmc-libobmc-intf_%.bbappend b/Contrib-Inspur/openbmc/meta-yadro/meta-nicole/recipes-phosphor/skeleton/obmc-libobmc-intf_%.bbappend new file mode 100644 index 00000000..72d991c7 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-yadro/meta-nicole/recipes-phosphor/skeleton/obmc-libobmc-intf_%.bbappend @@ -0,0 +1 @@ +FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:" diff --git a/Contrib-Inspur/openbmc/meta-yadro/meta-nicole/recipes.txt b/Contrib-Inspur/openbmc/meta-yadro/meta-nicole/recipes.txt new file mode 100644 index 00000000..3ec3f4a4 --- /dev/null +++ b/Contrib-Inspur/openbmc/meta-yadro/meta-nicole/recipes.txt @@ -0,0 +1,2 @@ +recipes-kernel - The kernel and generic applications/libraries with strong kernel dependencies +recipes-phosphor - Phosphor OpenBMC applications and configuration diff --git a/Contrib-Inspur/openbmc/meta-yadro/meta-vesnin/conf/layer.conf b/Contrib-Inspur/openbmc/meta-yadro/meta-vesnin/conf/layer.conf index c8e7890d..75d9c0f6 100644 --- a/Contrib-Inspur/openbmc/meta-yadro/meta-vesnin/conf/layer.conf +++ b/Contrib-Inspur/openbmc/meta-yadro/meta-vesnin/conf/layer.conf @@ -7,4 +7,4 @@ BBFILES += "${LAYERDIR}/recipes-*/*/*.bb \ BBFILE_COLLECTIONS += "vesnin-layer" BBFILE_PATTERN_vesnin-layer = "^${LAYERDIR}/" -LAYERSERIES_COMPAT_vesnin-layer = "thud warrior" +LAYERSERIES_COMPAT_vesnin-layer = "warrior zeus" diff --git a/Contrib-Inspur/openbmc/meta-yadro/meta-vesnin/recipes-kernel/linux/linux-aspeed/0001-vesnin-dts-add-mbox-and-lpc_host.patch b/Contrib-Inspur/openbmc/meta-yadro/meta-vesnin/recipes-kernel/linux/linux-aspeed/0001-vesnin-dts-add-mbox-and-lpc_host.patch deleted file mode 100644 index ba03640d..00000000 --- a/Contrib-Inspur/openbmc/meta-yadro/meta-vesnin/recipes-kernel/linux/linux-aspeed/0001-vesnin-dts-add-mbox-and-lpc_host.patch +++ /dev/null @@ -1,38 +0,0 @@ -From 229cd43c240a8395ac6ed684a5eee7a0586f9724 Mon Sep 17 00:00:00 2001 -From: Alexander Filippov -Date: Tue, 4 Jun 2019 14:12:00 +0300 -Subject: [PATCH] vesnin: dts: add mbox and lpc_host - -These nodes were removed from our DTS by the ask of Andrew Jeffery as -its are not upstreamed yet. But its are still required to start the -host. - -Signed-off-by: Alexander Filippov ---- - arch/arm/boot/dts/aspeed-bmc-opp-vesnin.dts | 10 ++++++++++ - 1 file changed, 10 insertions(+) - -diff --git a/arch/arm/boot/dts/aspeed-bmc-opp-vesnin.dts b/arch/arm/boot/dts/aspeed-bmc-opp-vesnin.dts -index 0b9e29c3212e..20f07f5bb4f4 100644 ---- a/arch/arm/boot/dts/aspeed-bmc-opp-vesnin.dts -+++ b/arch/arm/boot/dts/aspeed-bmc-opp-vesnin.dts -@@ -120,6 +120,16 @@ - status = "okay"; - }; - -+&lpc_host { -+ sio_regs: regs { -+ compatible = "aspeed,bmc-misc"; -+ }; -+}; -+ -+&mbox { -+ status = "okay"; -+}; -+ - &uart3 { - status = "okay"; - pinctrl-names = "default"; --- -2.20.1 - diff --git a/Contrib-Inspur/openbmc/meta-yadro/meta-vesnin/recipes-kernel/linux/linux-aspeed/0002-vesnin-remap-aspeed-uart.patch b/Contrib-Inspur/openbmc/meta-yadro/meta-vesnin/recipes-kernel/linux/linux-aspeed/0002-vesnin-remap-aspeed-uart.patch index fb286691..a745a18a 100644 --- a/Contrib-Inspur/openbmc/meta-yadro/meta-vesnin/recipes-kernel/linux/linux-aspeed/0002-vesnin-remap-aspeed-uart.patch +++ b/Contrib-Inspur/openbmc/meta-yadro/meta-vesnin/recipes-kernel/linux/linux-aspeed/0002-vesnin-remap-aspeed-uart.patch @@ -1,4 +1,4 @@ -From 85027d94696464269ae77702ead788a14fc8305f Mon Sep 17 00:00:00 2001 +From c10401d8c349610ea9cd29d28f87dd630c907aeb Mon Sep 17 00:00:00 2001 From: Alexander Filippov Date: Wed, 28 Mar 2018 17:46:28 +0300 Subject: [PATCH] vesnin: remap aspeed-uart @@ -7,14 +7,14 @@ Remaps UART2 <-> UART3 Signed-off-by: Alexander Filippov --- - drivers/misc/aspeed-lpc-ctrl.c | 8 ++++++++ + drivers/soc/aspeed/aspeed-lpc-ctrl.c | 8 ++++++++ 1 file changed, 8 insertions(+) -diff --git a/drivers/misc/aspeed-lpc-ctrl.c b/drivers/misc/aspeed-lpc-ctrl.c -index 332210e06e98..ce5138474130 100644 ---- a/drivers/misc/aspeed-lpc-ctrl.c -+++ b/drivers/misc/aspeed-lpc-ctrl.c -@@ -27,6 +27,7 @@ +diff --git a/drivers/soc/aspeed/aspeed-lpc-ctrl.c b/drivers/soc/aspeed/aspeed-lpc-ctrl.c +index 01ed21e8bfee..cbdca53a8805 100644 +--- a/drivers/soc/aspeed/aspeed-lpc-ctrl.c ++++ b/drivers/soc/aspeed/aspeed-lpc-ctrl.c +@@ -23,6 +23,7 @@ #define HICR7 0x8 #define HICR8 0xc @@ -22,7 +22,7 @@ index 332210e06e98..ce5138474130 100644 struct aspeed_lpc_ctrl { struct miscdevice miscdev; -@@ -274,6 +275,13 @@ static int aspeed_lpc_ctrl_probe(struct platform_device *pdev) +@@ -271,6 +272,13 @@ static int aspeed_lpc_ctrl_probe(struct platform_device *pdev) goto err; } diff --git a/Contrib-Inspur/openbmc/meta-yadro/meta-vesnin/recipes-kernel/linux/linux-aspeed_%.bbappend b/Contrib-Inspur/openbmc/meta-yadro/meta-vesnin/recipes-kernel/linux/linux-aspeed_%.bbappend index 5a892530..5680c693 100644 --- a/Contrib-Inspur/openbmc/meta-yadro/meta-vesnin/recipes-kernel/linux/linux-aspeed_%.bbappend +++ b/Contrib-Inspur/openbmc/meta-yadro/meta-vesnin/recipes-kernel/linux/linux-aspeed_%.bbappend @@ -1,6 +1,5 @@ FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:" SRC_URI_append_vesnin = "\ file://vesnin.cfg \ - file://0001-vesnin-dts-add-mbox-and-lpc_host.patch \ file://0002-vesnin-remap-aspeed-uart.patch \ " diff --git a/Contrib-Inspur/openbmc/meta-yadro/meta-vesnin/recipes-phosphor/configuration/vesnin-yaml-config.bb b/Contrib-Inspur/openbmc/meta-yadro/meta-vesnin/recipes-phosphor/configuration/vesnin-yaml-config.bb index dc786e56..94000a0a 100644 --- a/Contrib-Inspur/openbmc/meta-yadro/meta-vesnin/recipes-phosphor/configuration/vesnin-yaml-config.bb +++ b/Contrib-Inspur/openbmc/meta-yadro/meta-vesnin/recipes-phosphor/configuration/vesnin-yaml-config.bb @@ -1,7 +1,7 @@ SUMMARY = "YAML configuration for Vesnin" PR = "r1" LICENSE = "Apache-2.0" -LIC_FILES_CHKSUM = "file://${YADROBASE}/COPYING.apache-2.0;md5=34400b68072d710fecd0a2940a0d1658" +LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10" inherit allarch diff --git a/Contrib-Inspur/openbmc/meta-yadro/meta-vesnin/recipes-phosphor/configuration/vesnin-yaml-config/vesnin-ipmi-fru.yaml b/Contrib-Inspur/openbmc/meta-yadro/meta-vesnin/recipes-phosphor/configuration/vesnin-yaml-config/vesnin-ipmi-fru.yaml index 26c7831b..a1de5712 100644 --- a/Contrib-Inspur/openbmc/meta-yadro/meta-vesnin/recipes-phosphor/configuration/vesnin-yaml-config/vesnin-ipmi-fru.yaml +++ b/Contrib-Inspur/openbmc/meta-yadro/meta-vesnin/recipes-phosphor/configuration/vesnin-yaml-config/vesnin-ipmi-fru.yaml @@ -21,7 +21,7 @@ IPMIFruProperty: Name IPMIFruSection: Board 1: - /system/chassis/motherboard/cpu0: + /system/chassis/motherboard/cpu0: &CPU_DEFAULTS entityID: 3 entityInstance: 1 interfaces: @@ -47,90 +47,19 @@ PrettyName: IPMIFruProperty: Name IPMIFruSection: Board + Value: False 2: /system/chassis/motherboard/cpu1: - entityID: 3 + <<: *CPU_DEFAULTS entityInstance: 2 - interfaces: - xyz.openbmc_project.Inventory.Decorator.Revision: - Version: - IPMIFruProperty: Custom Field 2 - IPMIFruSection: Board - IPMIFruValueDelimiter: 58 - xyz.openbmc_project.Inventory.Decorator.Asset: - BuildDate: - IPMIFruProperty: Mfg Date - IPMIFruSection: Board - PartNumber: - IPMIFruProperty: Part Number - IPMIFruSection: Board - Manufacturer: - IPMIFruProperty: Manufacturer - IPMIFruSection: Board - SerialNumber: - IPMIFruProperty: Serial Number - IPMIFruSection: Board - xyz.openbmc_project.Inventory.Item: - PrettyName: - IPMIFruProperty: Name - IPMIFruSection: Board - Value: False 3: /system/chassis/motherboard/cpu2: - entityID: 3 + <<: *CPU_DEFAULTS entityInstance: 3 - interfaces: - xyz.openbmc_project.Inventory.Decorator.Revision: - Version: - IPMIFruProperty: Custom Field 2 - IPMIFruSection: Board - IPMIFruValueDelimiter: 58 - xyz.openbmc_project.Inventory.Decorator.Asset: - BuildDate: - IPMIFruProperty: Mfg Date - IPMIFruSection: Board - PartNumber: - IPMIFruProperty: Part Number - IPMIFruSection: Board - Manufacturer: - IPMIFruProperty: Manufacturer - IPMIFruSection: Board - SerialNumber: - IPMIFruProperty: Serial Number - IPMIFruSection: Board - xyz.openbmc_project.Inventory.Item: - PrettyName: - IPMIFruProperty: Name - IPMIFruSection: Board - Value: False 4: /system/chassis/motherboard/cpu3: - entityID: 3 + <<: *CPU_DEFAULTS entityInstance: 4 - interfaces: - xyz.openbmc_project.Inventory.Decorator.Revision: - Version: - IPMIFruProperty: Custom Field 2 - IPMIFruSection: Board - IPMIFruValueDelimiter: 58 - xyz.openbmc_project.Inventory.Decorator.Asset: - BuildDate: - IPMIFruProperty: Mfg Date - IPMIFruSection: Board - PartNumber: - IPMIFruProperty: Part Number - IPMIFruSection: Board - Manufacturer: - IPMIFruProperty: Manufacturer - IPMIFruSection: Board - SerialNumber: - IPMIFruProperty: Serial Number - IPMIFruSection: Board - xyz.openbmc_project.Inventory.Item: - PrettyName: - IPMIFruProperty: Name - IPMIFruSection: Board - Value: False 5: /system/chassis/motherboard: entityID: 7 @@ -171,7 +100,7 @@ IPMIFruProperty: Manufacturer IPMIFruSection: Board 6: - /system/chassis/motherboard/membuf1: + /system/chassis/motherboard/membuf1: &MEMBUF_DEFAULTS entityID: 23 entityInstance: 1 interfaces: @@ -194,336 +123,66 @@ IPMIFruSection: Board 7: /system/chassis/motherboard/membuf0: - entityID: 23 + <<: *MEMBUF_DEFAULTS entityInstance: 2 - interfaces: - xyz.openbmc_project.Inventory.Decorator.Asset: - BuildDate: - IPMIFruProperty: Mfg Date - IPMIFruSection: Board - PartNumber: - IPMIFruProperty: Part Number - IPMIFruSection: Board - Manufacturer: - IPMIFruProperty: Manufacturer - IPMIFruSection: Board - SerialNumber: - IPMIFruProperty: Serial Number - IPMIFruSection: Board - xyz.openbmc_project.Inventory.Item: - PrettyName: - IPMIFruProperty: Name - IPMIFruSection: Board 8: /system/chassis/motherboard/membuf5: - entityID: 23 + <<: *MEMBUF_DEFAULTS entityInstance: 3 - interfaces: - xyz.openbmc_project.Inventory.Decorator.Asset: - BuildDate: - IPMIFruProperty: Mfg Date - IPMIFruSection: Board - PartNumber: - IPMIFruProperty: Part Number - IPMIFruSection: Board - Manufacturer: - IPMIFruProperty: Manufacturer - IPMIFruSection: Board - SerialNumber: - IPMIFruProperty: Serial Number - IPMIFruSection: Board - xyz.openbmc_project.Inventory.Item: - PrettyName: - IPMIFruProperty: Name - IPMIFruSection: Board 9: /system/chassis/motherboard/membuf4: - entityID: 23 + <<: *MEMBUF_DEFAULTS entityInstance: 4 - interfaces: - xyz.openbmc_project.Inventory.Decorator.Asset: - BuildDate: - IPMIFruProperty: Mfg Date - IPMIFruSection: Board - PartNumber: - IPMIFruProperty: Part Number - IPMIFruSection: Board - Manufacturer: - IPMIFruProperty: Manufacturer - IPMIFruSection: Board - SerialNumber: - IPMIFruProperty: Serial Number - IPMIFruSection: Board - xyz.openbmc_project.Inventory.Item: - PrettyName: - IPMIFruProperty: Name - IPMIFruSection: Board 10: /system/chassis/motherboard/membuf9: - entityID: 23 + <<: *MEMBUF_DEFAULTS entityInstance: 5 - interfaces: - xyz.openbmc_project.Inventory.Decorator.Asset: - BuildDate: - IPMIFruProperty: Mfg Date - IPMIFruSection: Board - PartNumber: - IPMIFruProperty: Part Number - IPMIFruSection: Board - Manufacturer: - IPMIFruProperty: Manufacturer - IPMIFruSection: Board - SerialNumber: - IPMIFruProperty: Serial Number - IPMIFruSection: Board - xyz.openbmc_project.Inventory.Item: - PrettyName: - IPMIFruProperty: Name - IPMIFruSection: Board 11: /system/chassis/motherboard/membuf8: - entityID: 23 + <<: *MEMBUF_DEFAULTS entityInstance: 6 - interfaces: - xyz.openbmc_project.Inventory.Decorator.Asset: - BuildDate: - IPMIFruProperty: Mfg Date - IPMIFruSection: Board - PartNumber: - IPMIFruProperty: Part Number - IPMIFruSection: Board - Manufacturer: - IPMIFruProperty: Manufacturer - IPMIFruSection: Board - SerialNumber: - IPMIFruProperty: Serial Number - IPMIFruSection: Board - xyz.openbmc_project.Inventory.Item: - PrettyName: - IPMIFruProperty: Name - IPMIFruSection: Board 12: /system/chassis/motherboard/membuf13: - entityID: 23 + <<: *MEMBUF_DEFAULTS entityInstance: 7 - interfaces: - xyz.openbmc_project.Inventory.Decorator.Asset: - BuildDate: - IPMIFruProperty: Mfg Date - IPMIFruSection: Board - PartNumber: - IPMIFruProperty: Part Number - IPMIFruSection: Board - Manufacturer: - IPMIFruProperty: Manufacturer - IPMIFruSection: Board - SerialNumber: - IPMIFruProperty: Serial Number - IPMIFruSection: Board - xyz.openbmc_project.Inventory.Item: - PrettyName: - IPMIFruProperty: Name - IPMIFruSection: Board 13: /system/chassis/motherboard/membuf12: - entityID: 23 + <<: *MEMBUF_DEFAULTS entityInstance: 8 - interfaces: - xyz.openbmc_project.Inventory.Decorator.Asset: - BuildDate: - IPMIFruProperty: Mfg Date - IPMIFruSection: Board - PartNumber: - IPMIFruProperty: Part Number - IPMIFruSection: Board - Manufacturer: - IPMIFruProperty: Manufacturer - IPMIFruSection: Board - SerialNumber: - IPMIFruProperty: Serial Number - IPMIFruSection: Board - xyz.openbmc_project.Inventory.Item: - PrettyName: - IPMIFruProperty: Name - IPMIFruSection: Board 14: /system/chassis/motherboard/membuf17: - entityID: 23 + <<: *MEMBUF_DEFAULTS entityInstance: 9 - interfaces: - xyz.openbmc_project.Inventory.Decorator.Asset: - BuildDate: - IPMIFruProperty: Mfg Date - IPMIFruSection: Board - PartNumber: - IPMIFruProperty: Part Number - IPMIFruSection: Board - Manufacturer: - IPMIFruProperty: Manufacturer - IPMIFruSection: Board - SerialNumber: - IPMIFruProperty: Serial Number - IPMIFruSection: Board - xyz.openbmc_project.Inventory.Item: - PrettyName: - IPMIFruProperty: Name - IPMIFruSection: Board 15: /system/chassis/motherboard/membuf16: - entityID: 23 + <<: *MEMBUF_DEFAULTS entityInstance: 10 - interfaces: - xyz.openbmc_project.Inventory.Decorator.Asset: - BuildDate: - IPMIFruProperty: Mfg Date - IPMIFruSection: Board - PartNumber: - IPMIFruProperty: Part Number - IPMIFruSection: Board - Manufacturer: - IPMIFruProperty: Manufacturer - IPMIFruSection: Board - SerialNumber: - IPMIFruProperty: Serial Number - IPMIFruSection: Board - xyz.openbmc_project.Inventory.Item: - PrettyName: - IPMIFruProperty: Name - IPMIFruSection: Board 16: /system/chassis/motherboard/membuf21: - entityID: 23 + <<: *MEMBUF_DEFAULTS entityInstance: 11 - interfaces: - xyz.openbmc_project.Inventory.Decorator.Asset: - BuildDate: - IPMIFruProperty: Mfg Date - IPMIFruSection: Board - PartNumber: - IPMIFruProperty: Part Number - IPMIFruSection: Board - Manufacturer: - IPMIFruProperty: Manufacturer - IPMIFruSection: Board - SerialNumber: - IPMIFruProperty: Serial Number - IPMIFruSection: Board - xyz.openbmc_project.Inventory.Item: - PrettyName: - IPMIFruProperty: Name - IPMIFruSection: Board 17: /system/chassis/motherboard/membuf20: - entityID: 23 + <<: *MEMBUF_DEFAULTS entityInstance: 12 - interfaces: - xyz.openbmc_project.Inventory.Decorator.Asset: - BuildDate: - IPMIFruProperty: Mfg Date - IPMIFruSection: Board - PartNumber: - IPMIFruProperty: Part Number - IPMIFruSection: Board - Manufacturer: - IPMIFruProperty: Manufacturer - IPMIFruSection: Board - SerialNumber: - IPMIFruProperty: Serial Number - IPMIFruSection: Board - xyz.openbmc_project.Inventory.Item: - PrettyName: - IPMIFruProperty: Name - IPMIFruSection: Board 18: /system/chassis/motherboard/membuf25: - entityID: 23 + <<: *MEMBUF_DEFAULTS entityInstance: 13 - interfaces: - xyz.openbmc_project.Inventory.Decorator.Asset: - BuildDate: - IPMIFruProperty: Mfg Date - IPMIFruSection: Board - PartNumber: - IPMIFruProperty: Part Number - IPMIFruSection: Board - Manufacturer: - IPMIFruProperty: Manufacturer - IPMIFruSection: Board - SerialNumber: - IPMIFruProperty: Serial Number - IPMIFruSection: Board - xyz.openbmc_project.Inventory.Item: - PrettyName: - IPMIFruProperty: Name - IPMIFruSection: Board 19: /system/chassis/motherboard/membuf24: - entityID: 23 + <<: *MEMBUF_DEFAULTS entityInstance: 14 - interfaces: - xyz.openbmc_project.Inventory.Decorator.Asset: - BuildDate: - IPMIFruProperty: Mfg Date - IPMIFruSection: Board - PartNumber: - IPMIFruProperty: Part Number - IPMIFruSection: Board - Manufacturer: - IPMIFruProperty: Manufacturer - IPMIFruSection: Board - SerialNumber: - IPMIFruProperty: Serial Number - IPMIFruSection: Board - xyz.openbmc_project.Inventory.Item: - PrettyName: - IPMIFruProperty: Name - IPMIFruSection: Board 20: /system/chassis/motherboard/membuf29: - entityID: 23 + <<: *MEMBUF_DEFAULTS entityInstance: 15 - interfaces: - xyz.openbmc_project.Inventory.Decorator.Asset: - BuildDate: - IPMIFruProperty: Mfg Date - IPMIFruSection: Board - PartNumber: - IPMIFruProperty: Part Number - IPMIFruSection: Board - Manufacturer: - IPMIFruProperty: Manufacturer - IPMIFruSection: Board - SerialNumber: - IPMIFruProperty: Serial Number - IPMIFruSection: Board - xyz.openbmc_project.Inventory.Item: - PrettyName: - IPMIFruProperty: Name - IPMIFruSection: Board 21: /system/chassis/motherboard/membuf28: - entityID: 23 + <<: *MEMBUF_DEFAULTS entityInstance: 16 - interfaces: - xyz.openbmc_project.Inventory.Decorator.Asset: - BuildDate: - IPMIFruProperty: Mfg Date - IPMIFruSection: Board - PartNumber: - IPMIFruProperty: Part Number - IPMIFruSection: Board - Manufacturer: - IPMIFruProperty: Manufacturer - IPMIFruSection: Board - SerialNumber: - IPMIFruProperty: Serial Number - IPMIFruSection: Board - xyz.openbmc_project.Inventory.Item: - PrettyName: - IPMIFruProperty: Name - IPMIFruSection: Board 22: - /system/chassis/motherboard/dimm8: + /system/chassis/motherboard/dimm8: &DIMM_DEFAULTS entityID: 32 entityInstance: 1 interfaces: @@ -552,3665 +211,512 @@ IPMIFruProperty: Version 23: /system/chassis/motherboard/dimm9: - entityID: 32 + <<: *DIMM_DEFAULTS entityInstance: 2 - interfaces: - xyz.openbmc_project.Inventory.Item: - PrettyName: - IPMIFruProperty: Name - IPMIFruSection: Product - xyz.openbmc_project.Inventory.Decorator.Asset: - SerialNumber: - IPMIFruProperty: Serial Number - IPMIFruSection: Product - Manufacturer: - IPMIFruProperty: Manufacturer - IPMIFruSection: Product - PartNumber: - IPMIFruProperty: Part Number - IPMIFruSection: Product - BuildDate: - IPMIFruProperty: Mfg Date - IPMIFruSection: Product - Model: - IPMIFruProperty: Model Number - IPMIFruSection: Product - xyz.openbmc_project.Inventory.Decorator.Revision: - Version: - IPMIFruProperty: Version 24: /system/chassis/motherboard/dimm10: - entityID: 32 + <<: *DIMM_DEFAULTS entityInstance: 3 - interfaces: - xyz.openbmc_project.Inventory.Item: - PrettyName: - IPMIFruProperty: Name - IPMIFruSection: Product - xyz.openbmc_project.Inventory.Decorator.Asset: - SerialNumber: - IPMIFruProperty: Serial Number - IPMIFruSection: Product - Manufacturer: - IPMIFruProperty: Manufacturer - IPMIFruSection: Product - PartNumber: - IPMIFruProperty: Part Number - IPMIFruSection: Product - BuildDate: - IPMIFruProperty: Mfg Date - IPMIFruSection: Product - Model: - IPMIFruProperty: Model Number - IPMIFruSection: Product - xyz.openbmc_project.Inventory.Decorator.Revision: - Version: - IPMIFruProperty: Version 25: /system/chassis/motherboard/dimm11: - entityID: 32 + <<: *DIMM_DEFAULTS entityInstance: 4 - interfaces: - xyz.openbmc_project.Inventory.Item: - PrettyName: - IPMIFruProperty: Name - IPMIFruSection: Product - xyz.openbmc_project.Inventory.Decorator.Asset: - SerialNumber: - IPMIFruProperty: Serial Number - IPMIFruSection: Product - Manufacturer: - IPMIFruProperty: Manufacturer - IPMIFruSection: Product - PartNumber: - IPMIFruProperty: Part Number - IPMIFruSection: Product - BuildDate: - IPMIFruProperty: Mfg Date - IPMIFruSection: Product - Model: - IPMIFruProperty: Model Number - IPMIFruSection: Product - xyz.openbmc_project.Inventory.Decorator.Revision: - Version: - IPMIFruProperty: Version 26: /system/chassis/motherboard/dimm12: - entityID: 32 + <<: *DIMM_DEFAULTS entityInstance: 5 - interfaces: - xyz.openbmc_project.Inventory.Item: - PrettyName: - IPMIFruProperty: Name - IPMIFruSection: Product - xyz.openbmc_project.Inventory.Decorator.Asset: - SerialNumber: - IPMIFruProperty: Serial Number - IPMIFruSection: Product - Manufacturer: - IPMIFruProperty: Manufacturer - IPMIFruSection: Product - PartNumber: - IPMIFruProperty: Part Number - IPMIFruSection: Product - BuildDate: - IPMIFruProperty: Mfg Date - IPMIFruSection: Product - Model: - IPMIFruProperty: Model Number - IPMIFruSection: Product - xyz.openbmc_project.Inventory.Decorator.Revision: - Version: - IPMIFruProperty: Version 27: /system/chassis/motherboard/dimm13: - entityID: 32 + <<: *DIMM_DEFAULTS entityInstance: 6 - interfaces: - xyz.openbmc_project.Inventory.Item: - PrettyName: - IPMIFruProperty: Name - IPMIFruSection: Product - xyz.openbmc_project.Inventory.Decorator.Asset: - SerialNumber: - IPMIFruProperty: Serial Number - IPMIFruSection: Product - Manufacturer: - IPMIFruProperty: Manufacturer - IPMIFruSection: Product - PartNumber: - IPMIFruProperty: Part Number - IPMIFruSection: Product - BuildDate: - IPMIFruProperty: Mfg Date - IPMIFruSection: Product - Model: - IPMIFruProperty: Model Number - IPMIFruSection: Product - xyz.openbmc_project.Inventory.Decorator.Revision: - Version: - IPMIFruProperty: Version 28: /system/chassis/motherboard/dimm14: - entityID: 32 + <<: *DIMM_DEFAULTS entityInstance: 7 - interfaces: - xyz.openbmc_project.Inventory.Item: - PrettyName: - IPMIFruProperty: Name - IPMIFruSection: Product - xyz.openbmc_project.Inventory.Decorator.Asset: - SerialNumber: - IPMIFruProperty: Serial Number - IPMIFruSection: Product - Manufacturer: - IPMIFruProperty: Manufacturer - IPMIFruSection: Product - PartNumber: - IPMIFruProperty: Part Number - IPMIFruSection: Product - BuildDate: - IPMIFruProperty: Mfg Date - IPMIFruSection: Product - Model: - IPMIFruProperty: Model Number - IPMIFruSection: Product - xyz.openbmc_project.Inventory.Decorator.Revision: - Version: - IPMIFruProperty: Version 29: /system/chassis/motherboard/dimm15: - entityID: 32 + <<: *DIMM_DEFAULTS entityInstance: 8 - interfaces: - xyz.openbmc_project.Inventory.Item: - PrettyName: - IPMIFruProperty: Name - IPMIFruSection: Product - xyz.openbmc_project.Inventory.Decorator.Asset: - SerialNumber: - IPMIFruProperty: Serial Number - IPMIFruSection: Product - Manufacturer: - IPMIFruProperty: Manufacturer - IPMIFruSection: Product - PartNumber: - IPMIFruProperty: Part Number - IPMIFruSection: Product - BuildDate: - IPMIFruProperty: Mfg Date - IPMIFruSection: Product - Model: - IPMIFruProperty: Model Number - IPMIFruSection: Product - xyz.openbmc_project.Inventory.Decorator.Revision: - Version: - IPMIFruProperty: Version 30: /system/chassis/motherboard/dimm0: - entityID: 32 + <<: *DIMM_DEFAULTS entityInstance: 9 - interfaces: - xyz.openbmc_project.Inventory.Item: - PrettyName: - IPMIFruProperty: Name - IPMIFruSection: Product - xyz.openbmc_project.Inventory.Decorator.Asset: - SerialNumber: - IPMIFruProperty: Serial Number - IPMIFruSection: Product - Manufacturer: - IPMIFruProperty: Manufacturer - IPMIFruSection: Product - PartNumber: - IPMIFruProperty: Part Number - IPMIFruSection: Product - BuildDate: - IPMIFruProperty: Mfg Date - IPMIFruSection: Product - Model: - IPMIFruProperty: Model Number - IPMIFruSection: Product - xyz.openbmc_project.Inventory.Decorator.Revision: - Version: - IPMIFruProperty: Version 31: /system/chassis/motherboard/dimm1: - entityID: 32 + <<: *DIMM_DEFAULTS entityInstance: 10 - interfaces: - xyz.openbmc_project.Inventory.Item: - PrettyName: - IPMIFruProperty: Name - IPMIFruSection: Product - xyz.openbmc_project.Inventory.Decorator.Asset: - SerialNumber: - IPMIFruProperty: Serial Number - IPMIFruSection: Product - Manufacturer: - IPMIFruProperty: Manufacturer - IPMIFruSection: Product - PartNumber: - IPMIFruProperty: Part Number - IPMIFruSection: Product - BuildDate: - IPMIFruProperty: Mfg Date - IPMIFruSection: Product - Model: - IPMIFruProperty: Model Number - IPMIFruSection: Product - xyz.openbmc_project.Inventory.Decorator.Revision: - Version: - IPMIFruProperty: Version 32: /system/chassis/motherboard/dimm2: - entityID: 32 + <<: *DIMM_DEFAULTS entityInstance: 11 - interfaces: - xyz.openbmc_project.Inventory.Item: - PrettyName: - IPMIFruProperty: Name - IPMIFruSection: Product - xyz.openbmc_project.Inventory.Decorator.Asset: - SerialNumber: - IPMIFruProperty: Serial Number - IPMIFruSection: Product - Manufacturer: - IPMIFruProperty: Manufacturer - IPMIFruSection: Product - PartNumber: - IPMIFruProperty: Part Number - IPMIFruSection: Product - BuildDate: - IPMIFruProperty: Mfg Date - IPMIFruSection: Product - Model: - IPMIFruProperty: Model Number - IPMIFruSection: Product - xyz.openbmc_project.Inventory.Decorator.Revision: - Version: - IPMIFruProperty: Version 33: /system/chassis/motherboard/dimm3: - entityID: 32 + <<: *DIMM_DEFAULTS entityInstance: 12 - interfaces: - xyz.openbmc_project.Inventory.Item: - PrettyName: - IPMIFruProperty: Name - IPMIFruSection: Product - xyz.openbmc_project.Inventory.Decorator.Asset: - SerialNumber: - IPMIFruProperty: Serial Number - IPMIFruSection: Product - Manufacturer: - IPMIFruProperty: Manufacturer - IPMIFruSection: Product - PartNumber: - IPMIFruProperty: Part Number - IPMIFruSection: Product - BuildDate: - IPMIFruProperty: Mfg Date - IPMIFruSection: Product - Model: - IPMIFruProperty: Model Number - IPMIFruSection: Product - xyz.openbmc_project.Inventory.Decorator.Revision: - Version: - IPMIFruProperty: Version 34: /system/chassis/motherboard/dimm4: - entityID: 32 + <<: *DIMM_DEFAULTS entityInstance: 13 - interfaces: - xyz.openbmc_project.Inventory.Item: - PrettyName: - IPMIFruProperty: Name - IPMIFruSection: Product - xyz.openbmc_project.Inventory.Decorator.Asset: - SerialNumber: - IPMIFruProperty: Serial Number - IPMIFruSection: Product - Manufacturer: - IPMIFruProperty: Manufacturer - IPMIFruSection: Product - PartNumber: - IPMIFruProperty: Part Number - IPMIFruSection: Product - BuildDate: - IPMIFruProperty: Mfg Date - IPMIFruSection: Product - Model: - IPMIFruProperty: Model Number - IPMIFruSection: Product - xyz.openbmc_project.Inventory.Decorator.Revision: - Version: - IPMIFruProperty: Version 35: /system/chassis/motherboard/dimm5: - entityID: 32 + <<: *DIMM_DEFAULTS entityInstance: 14 - interfaces: - xyz.openbmc_project.Inventory.Item: - PrettyName: - IPMIFruProperty: Name - IPMIFruSection: Product - xyz.openbmc_project.Inventory.Decorator.Asset: - SerialNumber: - IPMIFruProperty: Serial Number - IPMIFruSection: Product - Manufacturer: - IPMIFruProperty: Manufacturer - IPMIFruSection: Product - PartNumber: - IPMIFruProperty: Part Number - IPMIFruSection: Product - BuildDate: - IPMIFruProperty: Mfg Date - IPMIFruSection: Product - Model: - IPMIFruProperty: Model Number - IPMIFruSection: Product - xyz.openbmc_project.Inventory.Decorator.Revision: - Version: - IPMIFruProperty: Version 36: /system/chassis/motherboard/dimm6: - entityID: 32 + <<: *DIMM_DEFAULTS entityInstance: 15 - interfaces: - xyz.openbmc_project.Inventory.Item: - PrettyName: - IPMIFruProperty: Name - IPMIFruSection: Product - xyz.openbmc_project.Inventory.Decorator.Asset: - SerialNumber: - IPMIFruProperty: Serial Number - IPMIFruSection: Product - Manufacturer: - IPMIFruProperty: Manufacturer - IPMIFruSection: Product - PartNumber: - IPMIFruProperty: Part Number - IPMIFruSection: Product - BuildDate: - IPMIFruProperty: Mfg Date - IPMIFruSection: Product - Model: - IPMIFruProperty: Model Number - IPMIFruSection: Product - xyz.openbmc_project.Inventory.Decorator.Revision: - Version: - IPMIFruProperty: Version 37: /system/chassis/motherboard/dimm7: - entityID: 32 + <<: *DIMM_DEFAULTS entityInstance: 16 - interfaces: - xyz.openbmc_project.Inventory.Item: - PrettyName: - IPMIFruProperty: Name - IPMIFruSection: Product - xyz.openbmc_project.Inventory.Decorator.Asset: - SerialNumber: - IPMIFruProperty: Serial Number - IPMIFruSection: Product - Manufacturer: - IPMIFruProperty: Manufacturer - IPMIFruSection: Product - PartNumber: - IPMIFruProperty: Part Number - IPMIFruSection: Product - BuildDate: - IPMIFruProperty: Mfg Date - IPMIFruSection: Product - Model: - IPMIFruProperty: Model Number - IPMIFruSection: Product - xyz.openbmc_project.Inventory.Decorator.Revision: - Version: - IPMIFruProperty: Version 38: /system/chassis/motherboard/dimm16: - entityID: 32 + <<: *DIMM_DEFAULTS entityInstance: 17 - interfaces: - xyz.openbmc_project.Inventory.Item: - PrettyName: - IPMIFruProperty: Name - IPMIFruSection: Product - xyz.openbmc_project.Inventory.Decorator.Asset: - SerialNumber: - IPMIFruProperty: Serial Number - IPMIFruSection: Product - Manufacturer: - IPMIFruProperty: Manufacturer - IPMIFruSection: Product - PartNumber: - IPMIFruProperty: Part Number - IPMIFruSection: Product - BuildDate: - IPMIFruProperty: Mfg Date - IPMIFruSection: Product - Model: - IPMIFruProperty: Model Number - IPMIFruSection: Product - xyz.openbmc_project.Inventory.Decorator.Revision: - Version: - IPMIFruProperty: Version 39: /system/chassis/motherboard/dimm17: - entityID: 32 + <<: *DIMM_DEFAULTS entityInstance: 18 - interfaces: - xyz.openbmc_project.Inventory.Item: - PrettyName: - IPMIFruProperty: Name - IPMIFruSection: Product - xyz.openbmc_project.Inventory.Decorator.Asset: - SerialNumber: - IPMIFruProperty: Serial Number - IPMIFruSection: Product - Manufacturer: - IPMIFruProperty: Manufacturer - IPMIFruSection: Product - PartNumber: - IPMIFruProperty: Part Number - IPMIFruSection: Product - BuildDate: - IPMIFruProperty: Mfg Date - IPMIFruSection: Product - Model: - IPMIFruProperty: Model Number - IPMIFruSection: Product - xyz.openbmc_project.Inventory.Decorator.Revision: - Version: - IPMIFruProperty: Version 40: /system/chassis/motherboard/dimm18: - entityID: 32 + <<: *DIMM_DEFAULTS entityInstance: 19 - interfaces: - xyz.openbmc_project.Inventory.Item: - PrettyName: - IPMIFruProperty: Name - IPMIFruSection: Product - xyz.openbmc_project.Inventory.Decorator.Asset: - SerialNumber: - IPMIFruProperty: Serial Number - IPMIFruSection: Product - Manufacturer: - IPMIFruProperty: Manufacturer - IPMIFruSection: Product - PartNumber: - IPMIFruProperty: Part Number - IPMIFruSection: Product - BuildDate: - IPMIFruProperty: Mfg Date - IPMIFruSection: Product - Model: - IPMIFruProperty: Model Number - IPMIFruSection: Product - xyz.openbmc_project.Inventory.Decorator.Revision: - Version: - IPMIFruProperty: Version 41: /system/chassis/motherboard/dimm19: - entityID: 32 + <<: *DIMM_DEFAULTS entityInstance: 20 - interfaces: - xyz.openbmc_project.Inventory.Item: - PrettyName: - IPMIFruProperty: Name - IPMIFruSection: Product - xyz.openbmc_project.Inventory.Decorator.Asset: - SerialNumber: - IPMIFruProperty: Serial Number - IPMIFruSection: Product - Manufacturer: - IPMIFruProperty: Manufacturer - IPMIFruSection: Product - PartNumber: - IPMIFruProperty: Part Number - IPMIFruSection: Product - BuildDate: - IPMIFruProperty: Mfg Date - IPMIFruSection: Product - Model: - IPMIFruProperty: Model Number - IPMIFruSection: Product - xyz.openbmc_project.Inventory.Decorator.Revision: - Version: - IPMIFruProperty: Version 42: /system/chassis/motherboard/dimm20: - entityID: 32 + <<: *DIMM_DEFAULTS entityInstance: 21 - interfaces: - xyz.openbmc_project.Inventory.Item: - PrettyName: - IPMIFruProperty: Name - IPMIFruSection: Product - xyz.openbmc_project.Inventory.Decorator.Asset: - SerialNumber: - IPMIFruProperty: Serial Number - IPMIFruSection: Product - Manufacturer: - IPMIFruProperty: Manufacturer - IPMIFruSection: Product - PartNumber: - IPMIFruProperty: Part Number - IPMIFruSection: Product - BuildDate: - IPMIFruProperty: Mfg Date - IPMIFruSection: Product - Model: - IPMIFruProperty: Model Number - IPMIFruSection: Product - xyz.openbmc_project.Inventory.Decorator.Revision: - Version: - IPMIFruProperty: Version 43: /system/chassis/motherboard/dimm21: - entityID: 32 + <<: *DIMM_DEFAULTS entityInstance: 22 - interfaces: - xyz.openbmc_project.Inventory.Item: - PrettyName: - IPMIFruProperty: Name - IPMIFruSection: Product - xyz.openbmc_project.Inventory.Decorator.Asset: - SerialNumber: - IPMIFruProperty: Serial Number - IPMIFruSection: Product - Manufacturer: - IPMIFruProperty: Manufacturer - IPMIFruSection: Product - PartNumber: - IPMIFruProperty: Part Number - IPMIFruSection: Product - BuildDate: - IPMIFruProperty: Mfg Date - IPMIFruSection: Product - Model: - IPMIFruProperty: Model Number - IPMIFruSection: Product - xyz.openbmc_project.Inventory.Decorator.Revision: - Version: - IPMIFruProperty: Version 44: /system/chassis/motherboard/dimm22: - entityID: 32 + <<: *DIMM_DEFAULTS entityInstance: 23 - interfaces: - xyz.openbmc_project.Inventory.Item: - PrettyName: - IPMIFruProperty: Name - IPMIFruSection: Product - xyz.openbmc_project.Inventory.Decorator.Asset: - SerialNumber: - IPMIFruProperty: Serial Number - IPMIFruSection: Product - Manufacturer: - IPMIFruProperty: Manufacturer - IPMIFruSection: Product - PartNumber: - IPMIFruProperty: Part Number - IPMIFruSection: Product - BuildDate: - IPMIFruProperty: Mfg Date - IPMIFruSection: Product - Model: - IPMIFruProperty: Model Number - IPMIFruSection: Product - xyz.openbmc_project.Inventory.Decorator.Revision: - Version: - IPMIFruProperty: Version - 45: /system/chassis/motherboard/dimm23: - entityID: 32 + <<: *DIMM_DEFAULTS entityInstance: 24 - interfaces: - xyz.openbmc_project.Inventory.Item: - PrettyName: - IPMIFruProperty: Name - IPMIFruSection: Product - xyz.openbmc_project.Inventory.Decorator.Asset: - SerialNumber: - IPMIFruProperty: Serial Number - IPMIFruSection: Product - Manufacturer: - IPMIFruProperty: Manufacturer - IPMIFruSection: Product - PartNumber: - IPMIFruProperty: Part Number - IPMIFruSection: Product - BuildDate: - IPMIFruProperty: Mfg Date - IPMIFruSection: Product - Model: - IPMIFruProperty: Model Number - IPMIFruSection: Product - xyz.openbmc_project.Inventory.Decorator.Revision: - Version: - IPMIFruProperty: Version - 46: /system/chassis/motherboard/dimm24: - entityID: 32 + <<: *DIMM_DEFAULTS entityInstance: 25 - interfaces: - xyz.openbmc_project.Inventory.Item: - PrettyName: - IPMIFruProperty: Name - IPMIFruSection: Product - xyz.openbmc_project.Inventory.Decorator.Asset: - SerialNumber: - IPMIFruProperty: Serial Number - IPMIFruSection: Product - Manufacturer: - IPMIFruProperty: Manufacturer - IPMIFruSection: Product - PartNumber: - IPMIFruProperty: Part Number - IPMIFruSection: Product - BuildDate: - IPMIFruProperty: Mfg Date - IPMIFruSection: Product - Model: - IPMIFruProperty: Model Number - IPMIFruSection: Product - xyz.openbmc_project.Inventory.Decorator.Revision: - Version: - IPMIFruProperty: Version - 47: /system/chassis/motherboard/dimm25: - entityID: 32 + <<: *DIMM_DEFAULTS entityInstance: 26 - interfaces: - xyz.openbmc_project.Inventory.Item: - PrettyName: - IPMIFruProperty: Name - IPMIFruSection: Product - xyz.openbmc_project.Inventory.Decorator.Asset: - SerialNumber: - IPMIFruProperty: Serial Number - IPMIFruSection: Product - Manufacturer: - IPMIFruProperty: Manufacturer - IPMIFruSection: Product - PartNumber: - IPMIFruProperty: Part Number - IPMIFruSection: Product - BuildDate: - IPMIFruProperty: Mfg Date - IPMIFruSection: Product - Model: - IPMIFruProperty: Model Number - IPMIFruSection: Product - xyz.openbmc_project.Inventory.Decorator.Revision: - Version: - IPMIFruProperty: Version - 48: /system/chassis/motherboard/dimm26: - entityID: 32 + <<: *DIMM_DEFAULTS entityInstance: 27 - interfaces: - xyz.openbmc_project.Inventory.Item: - PrettyName: - IPMIFruProperty: Name - IPMIFruSection: Product - xyz.openbmc_project.Inventory.Decorator.Asset: - SerialNumber: - IPMIFruProperty: Serial Number - IPMIFruSection: Product - Manufacturer: - IPMIFruProperty: Manufacturer - IPMIFruSection: Product - PartNumber: - IPMIFruProperty: Part Number - IPMIFruSection: Product - BuildDate: - IPMIFruProperty: Mfg Date - IPMIFruSection: Product - Model: - IPMIFruProperty: Model Number - IPMIFruSection: Product - xyz.openbmc_project.Inventory.Decorator.Revision: - Version: - IPMIFruProperty: Version - 49: /system/chassis/motherboard/dimm27: - entityID: 32 + <<: *DIMM_DEFAULTS entityInstance: 28 - interfaces: - xyz.openbmc_project.Inventory.Item: - PrettyName: - IPMIFruProperty: Name - IPMIFruSection: Product - xyz.openbmc_project.Inventory.Decorator.Asset: - SerialNumber: - IPMIFruProperty: Serial Number - IPMIFruSection: Product - Manufacturer: - IPMIFruProperty: Manufacturer - IPMIFruSection: Product - PartNumber: - IPMIFruProperty: Part Number - IPMIFruSection: Product - BuildDate: - IPMIFruProperty: Mfg Date - IPMIFruSection: Product - Model: - IPMIFruProperty: Model Number - IPMIFruSection: Product - xyz.openbmc_project.Inventory.Decorator.Revision: - Version: - IPMIFruProperty: Version - 50: /system/chassis/motherboard/dimm28: - entityID: 32 + <<: *DIMM_DEFAULTS entityInstance: 29 - interfaces: - xyz.openbmc_project.Inventory.Item: - PrettyName: - IPMIFruProperty: Name - IPMIFruSection: Product - xyz.openbmc_project.Inventory.Decorator.Asset: - SerialNumber: - IPMIFruProperty: Serial Number - IPMIFruSection: Product - Manufacturer: - IPMIFruProperty: Manufacturer - IPMIFruSection: Product - PartNumber: - IPMIFruProperty: Part Number - IPMIFruSection: Product - BuildDate: - IPMIFruProperty: Mfg Date - IPMIFruSection: Product - Model: - IPMIFruProperty: Model Number - IPMIFruSection: Product - xyz.openbmc_project.Inventory.Decorator.Revision: - Version: - IPMIFruProperty: Version - 51: /system/chassis/motherboard/dimm29: - entityID: 32 + <<: *DIMM_DEFAULTS entityInstance: 30 - interfaces: - xyz.openbmc_project.Inventory.Item: - PrettyName: - IPMIFruProperty: Name - IPMIFruSection: Product - xyz.openbmc_project.Inventory.Decorator.Asset: - SerialNumber: - IPMIFruProperty: Serial Number - IPMIFruSection: Product - Manufacturer: - IPMIFruProperty: Manufacturer - IPMIFruSection: Product - PartNumber: - IPMIFruProperty: Part Number - IPMIFruSection: Product - BuildDate: - IPMIFruProperty: Mfg Date - IPMIFruSection: Product - Model: - IPMIFruProperty: Model Number - IPMIFruSection: Product - xyz.openbmc_project.Inventory.Decorator.Revision: - Version: - IPMIFruProperty: Version - 52: /system/chassis/motherboard/dimm30: - entityID: 32 + <<: *DIMM_DEFAULTS entityInstance: 31 - interfaces: - xyz.openbmc_project.Inventory.Item: - PrettyName: - IPMIFruProperty: Name - IPMIFruSection: Product - xyz.openbmc_project.Inventory.Decorator.Asset: - SerialNumber: - IPMIFruProperty: Serial Number - IPMIFruSection: Product - Manufacturer: - IPMIFruProperty: Manufacturer - IPMIFruSection: Product - PartNumber: - IPMIFruProperty: Part Number - IPMIFruSection: Product - BuildDate: - IPMIFruProperty: Mfg Date - IPMIFruSection: Product - Model: - IPMIFruProperty: Model Number - IPMIFruSection: Product - xyz.openbmc_project.Inventory.Decorator.Revision: - Version: - IPMIFruProperty: Version - 53: /system/chassis/motherboard/dimm31: - entityID: 32 + <<: *DIMM_DEFAULTS entityInstance: 32 - interfaces: - xyz.openbmc_project.Inventory.Item: - PrettyName: - IPMIFruProperty: Name - IPMIFruSection: Product - xyz.openbmc_project.Inventory.Decorator.Asset: - SerialNumber: - IPMIFruProperty: Serial Number - IPMIFruSection: Product - Manufacturer: - IPMIFruProperty: Manufacturer - IPMIFruSection: Product - PartNumber: - IPMIFruProperty: Part Number - IPMIFruSection: Product - BuildDate: - IPMIFruProperty: Mfg Date - IPMIFruSection: Product - Model: - IPMIFruProperty: Model Number - IPMIFruSection: Product - xyz.openbmc_project.Inventory.Decorator.Revision: - Version: - IPMIFruProperty: Version - 54: /system/chassis/motherboard/dimm40: - entityID: 32 + <<: *DIMM_DEFAULTS entityInstance: 33 - interfaces: - xyz.openbmc_project.Inventory.Item: - PrettyName: - IPMIFruProperty: Name - IPMIFruSection: Product - xyz.openbmc_project.Inventory.Decorator.Asset: - SerialNumber: - IPMIFruProperty: Serial Number - IPMIFruSection: Product - Manufacturer: - IPMIFruProperty: Manufacturer - IPMIFruSection: Product - PartNumber: - IPMIFruProperty: Part Number - IPMIFruSection: Product - BuildDate: - IPMIFruProperty: Mfg Date - IPMIFruSection: Product - Model: - IPMIFruProperty: Model Number - IPMIFruSection: Product - xyz.openbmc_project.Inventory.Decorator.Revision: - Version: - IPMIFruProperty: Version - 55: /system/chassis/motherboard/dimm41: - entityID: 32 + <<: *DIMM_DEFAULTS entityInstance: 34 - interfaces: - xyz.openbmc_project.Inventory.Item: - PrettyName: - IPMIFruProperty: Name - IPMIFruSection: Product - xyz.openbmc_project.Inventory.Decorator.Asset: - SerialNumber: - IPMIFruProperty: Serial Number - IPMIFruSection: Product - Manufacturer: - IPMIFruProperty: Manufacturer - IPMIFruSection: Product - PartNumber: - IPMIFruProperty: Part Number - IPMIFruSection: Product - BuildDate: - IPMIFruProperty: Mfg Date - IPMIFruSection: Product - Model: - IPMIFruProperty: Model Number - IPMIFruSection: Product - xyz.openbmc_project.Inventory.Decorator.Revision: - Version: - IPMIFruProperty: Version - 56: /system/chassis/motherboard/dimm42: - entityID: 32 + <<: *DIMM_DEFAULTS entityInstance: 35 - interfaces: - xyz.openbmc_project.Inventory.Item: - PrettyName: - IPMIFruProperty: Name - IPMIFruSection: Product - xyz.openbmc_project.Inventory.Decorator.Asset: - SerialNumber: - IPMIFruProperty: Serial Number - IPMIFruSection: Product - Manufacturer: - IPMIFruProperty: Manufacturer - IPMIFruSection: Product - PartNumber: - IPMIFruProperty: Part Number - IPMIFruSection: Product - BuildDate: - IPMIFruProperty: Mfg Date - IPMIFruSection: Product - Model: - IPMIFruProperty: Model Number - IPMIFruSection: Product - xyz.openbmc_project.Inventory.Decorator.Revision: - Version: - IPMIFruProperty: Version - 57: /system/chassis/motherboard/dimm43: - entityID: 32 + <<: *DIMM_DEFAULTS entityInstance: 36 - interfaces: - xyz.openbmc_project.Inventory.Item: - PrettyName: - IPMIFruProperty: Name - IPMIFruSection: Product - xyz.openbmc_project.Inventory.Decorator.Asset: - SerialNumber: - IPMIFruProperty: Serial Number - IPMIFruSection: Product - Manufacturer: - IPMIFruProperty: Manufacturer - IPMIFruSection: Product - PartNumber: - IPMIFruProperty: Part Number - IPMIFruSection: Product - BuildDate: - IPMIFruProperty: Mfg Date - IPMIFruSection: Product - Model: - IPMIFruProperty: Model Number - IPMIFruSection: Product - xyz.openbmc_project.Inventory.Decorator.Revision: - Version: - IPMIFruProperty: Version - 58: /system/chassis/motherboard/dimm44: - entityID: 32 + <<: *DIMM_DEFAULTS entityInstance: 37 - interfaces: - xyz.openbmc_project.Inventory.Item: - PrettyName: - IPMIFruProperty: Name - IPMIFruSection: Product - xyz.openbmc_project.Inventory.Decorator.Asset: - SerialNumber: - IPMIFruProperty: Serial Number - IPMIFruSection: Product - Manufacturer: - IPMIFruProperty: Manufacturer - IPMIFruSection: Product - PartNumber: - IPMIFruProperty: Part Number - IPMIFruSection: Product - BuildDate: - IPMIFruProperty: Mfg Date - IPMIFruSection: Product - Model: - IPMIFruProperty: Model Number - IPMIFruSection: Product - xyz.openbmc_project.Inventory.Decorator.Revision: - Version: - IPMIFruProperty: Version - 59: /system/chassis/motherboard/dimm45: - entityID: 32 + <<: *DIMM_DEFAULTS entityInstance: 38 - interfaces: - xyz.openbmc_project.Inventory.Item: - PrettyName: - IPMIFruProperty: Name - IPMIFruSection: Product - xyz.openbmc_project.Inventory.Decorator.Asset: - SerialNumber: - IPMIFruProperty: Serial Number - IPMIFruSection: Product - Manufacturer: - IPMIFruProperty: Manufacturer - IPMIFruSection: Product - PartNumber: - IPMIFruProperty: Part Number - IPMIFruSection: Product - BuildDate: - IPMIFruProperty: Mfg Date - IPMIFruSection: Product - Model: - IPMIFruProperty: Model Number - IPMIFruSection: Product - xyz.openbmc_project.Inventory.Decorator.Revision: - Version: - IPMIFruProperty: Version - 60: /system/chassis/motherboard/dimm46: - entityID: 32 + <<: *DIMM_DEFAULTS entityInstance: 39 - interfaces: - xyz.openbmc_project.Inventory.Item: - PrettyName: - IPMIFruProperty: Name - IPMIFruSection: Product - xyz.openbmc_project.Inventory.Decorator.Asset: - SerialNumber: - IPMIFruProperty: Serial Number - IPMIFruSection: Product - Manufacturer: - IPMIFruProperty: Manufacturer - IPMIFruSection: Product - PartNumber: - IPMIFruProperty: Part Number - IPMIFruSection: Product - BuildDate: - IPMIFruProperty: Mfg Date - IPMIFruSection: Product - Model: - IPMIFruProperty: Model Number - IPMIFruSection: Product - xyz.openbmc_project.Inventory.Decorator.Revision: - Version: - IPMIFruProperty: Version - 61: /system/chassis/motherboard/dimm47: - entityID: 32 + <<: *DIMM_DEFAULTS entityInstance: 40 - interfaces: - xyz.openbmc_project.Inventory.Item: - PrettyName: - IPMIFruProperty: Name - IPMIFruSection: Product - xyz.openbmc_project.Inventory.Decorator.Asset: - SerialNumber: - IPMIFruProperty: Serial Number - IPMIFruSection: Product - Manufacturer: - IPMIFruProperty: Manufacturer - IPMIFruSection: Product - PartNumber: - IPMIFruProperty: Part Number - IPMIFruSection: Product - BuildDate: - IPMIFruProperty: Mfg Date - IPMIFruSection: Product - Model: - IPMIFruProperty: Model Number - IPMIFruSection: Product - xyz.openbmc_project.Inventory.Decorator.Revision: - Version: - IPMIFruProperty: Version - 62: /system/chassis/motherboard/dimm32: - entityID: 32 + <<: *DIMM_DEFAULTS entityInstance: 41 - interfaces: - xyz.openbmc_project.Inventory.Item: - PrettyName: - IPMIFruProperty: Name - IPMIFruSection: Product - xyz.openbmc_project.Inventory.Decorator.Asset: - SerialNumber: - IPMIFruProperty: Serial Number - IPMIFruSection: Product - Manufacturer: - IPMIFruProperty: Manufacturer - IPMIFruSection: Product - PartNumber: - IPMIFruProperty: Part Number - IPMIFruSection: Product - BuildDate: - IPMIFruProperty: Mfg Date - IPMIFruSection: Product - Model: - IPMIFruProperty: Model Number - IPMIFruSection: Product - xyz.openbmc_project.Inventory.Decorator.Revision: - Version: - IPMIFruProperty: Version - 63: /system/chassis/motherboard/dimm33: - entityID: 32 + <<: *DIMM_DEFAULTS entityInstance: 42 - interfaces: - xyz.openbmc_project.Inventory.Item: - PrettyName: - IPMIFruProperty: Name - IPMIFruSection: Product - xyz.openbmc_project.Inventory.Decorator.Asset: - SerialNumber: - IPMIFruProperty: Serial Number - IPMIFruSection: Product - Manufacturer: - IPMIFruProperty: Manufacturer - IPMIFruSection: Product - PartNumber: - IPMIFruProperty: Part Number - IPMIFruSection: Product - BuildDate: - IPMIFruProperty: Mfg Date - IPMIFruSection: Product - Model: - IPMIFruProperty: Model Number - IPMIFruSection: Product - xyz.openbmc_project.Inventory.Decorator.Revision: - Version: - IPMIFruProperty: Version - 64: /system/chassis/motherboard/dimm34: - entityID: 32 + <<: *DIMM_DEFAULTS entityInstance: 43 - interfaces: - xyz.openbmc_project.Inventory.Item: - PrettyName: - IPMIFruProperty: Name - IPMIFruSection: Product - xyz.openbmc_project.Inventory.Decorator.Asset: - SerialNumber: - IPMIFruProperty: Serial Number - IPMIFruSection: Product - Manufacturer: - IPMIFruProperty: Manufacturer - IPMIFruSection: Product - PartNumber: - IPMIFruProperty: Part Number - IPMIFruSection: Product - BuildDate: - IPMIFruProperty: Mfg Date - IPMIFruSection: Product - Model: - IPMIFruProperty: Model Number - IPMIFruSection: Product - xyz.openbmc_project.Inventory.Decorator.Revision: - Version: - IPMIFruProperty: Version - 65: /system/chassis/motherboard/dimm35: - entityID: 32 + <<: *DIMM_DEFAULTS entityInstance: 44 - interfaces: - xyz.openbmc_project.Inventory.Item: - PrettyName: - IPMIFruProperty: Name - IPMIFruSection: Product - xyz.openbmc_project.Inventory.Decorator.Asset: - SerialNumber: - IPMIFruProperty: Serial Number - IPMIFruSection: Product - Manufacturer: - IPMIFruProperty: Manufacturer - IPMIFruSection: Product - PartNumber: - IPMIFruProperty: Part Number - IPMIFruSection: Product - BuildDate: - IPMIFruProperty: Mfg Date - IPMIFruSection: Product - Model: - IPMIFruProperty: Model Number - IPMIFruSection: Product - xyz.openbmc_project.Inventory.Decorator.Revision: - Version: - IPMIFruProperty: Version - 66: /system/chassis/motherboard/dimm36: - entityID: 32 + <<: *DIMM_DEFAULTS entityInstance: 45 - interfaces: - xyz.openbmc_project.Inventory.Item: - PrettyName: - IPMIFruProperty: Name - IPMIFruSection: Product - xyz.openbmc_project.Inventory.Decorator.Asset: - SerialNumber: - IPMIFruProperty: Serial Number - IPMIFruSection: Product - Manufacturer: - IPMIFruProperty: Manufacturer - IPMIFruSection: Product - PartNumber: - IPMIFruProperty: Part Number - IPMIFruSection: Product - BuildDate: - IPMIFruProperty: Mfg Date - IPMIFruSection: Product - Model: - IPMIFruProperty: Model Number - IPMIFruSection: Product - xyz.openbmc_project.Inventory.Decorator.Revision: - Version: - IPMIFruProperty: Version - 67: /system/chassis/motherboard/dimm37: - entityID: 32 + <<: *DIMM_DEFAULTS entityInstance: 46 - interfaces: - xyz.openbmc_project.Inventory.Item: - PrettyName: - IPMIFruProperty: Name - IPMIFruSection: Product - xyz.openbmc_project.Inventory.Decorator.Asset: - SerialNumber: - IPMIFruProperty: Serial Number - IPMIFruSection: Product - Manufacturer: - IPMIFruProperty: Manufacturer - IPMIFruSection: Product - PartNumber: - IPMIFruProperty: Part Number - IPMIFruSection: Product - BuildDate: - IPMIFruProperty: Mfg Date - IPMIFruSection: Product - Model: - IPMIFruProperty: Model Number - IPMIFruSection: Product - xyz.openbmc_project.Inventory.Decorator.Revision: - Version: - IPMIFruProperty: Version - 68: /system/chassis/motherboard/dimm38: - entityID: 32 + <<: *DIMM_DEFAULTS entityInstance: 47 - interfaces: - xyz.openbmc_project.Inventory.Item: - PrettyName: - IPMIFruProperty: Name - IPMIFruSection: Product - xyz.openbmc_project.Inventory.Decorator.Asset: - SerialNumber: - IPMIFruProperty: Serial Number - IPMIFruSection: Product - Manufacturer: - IPMIFruProperty: Manufacturer - IPMIFruSection: Product - PartNumber: - IPMIFruProperty: Part Number - IPMIFruSection: Product - BuildDate: - IPMIFruProperty: Mfg Date - IPMIFruSection: Product - Model: - IPMIFruProperty: Model Number - IPMIFruSection: Product - xyz.openbmc_project.Inventory.Decorator.Revision: - Version: - IPMIFruProperty: Version - 69: /system/chassis/motherboard/dimm39: - entityID: 32 + <<: *DIMM_DEFAULTS entityInstance: 48 - interfaces: - xyz.openbmc_project.Inventory.Item: - PrettyName: - IPMIFruProperty: Name - IPMIFruSection: Product - xyz.openbmc_project.Inventory.Decorator.Asset: - SerialNumber: - IPMIFruProperty: Serial Number - IPMIFruSection: Product - Manufacturer: - IPMIFruProperty: Manufacturer - IPMIFruSection: Product - PartNumber: - IPMIFruProperty: Part Number - IPMIFruSection: Product - BuildDate: - IPMIFruProperty: Mfg Date - IPMIFruSection: Product - Model: - IPMIFruProperty: Model Number - IPMIFruSection: Product - xyz.openbmc_project.Inventory.Decorator.Revision: - Version: - IPMIFruProperty: Version - 70: /system/chassis/motherboard/dimm48: - entityID: 32 + <<: *DIMM_DEFAULTS entityInstance: 49 - interfaces: - xyz.openbmc_project.Inventory.Item: - PrettyName: - IPMIFruProperty: Name - IPMIFruSection: Product - xyz.openbmc_project.Inventory.Decorator.Asset: - SerialNumber: - IPMIFruProperty: Serial Number - IPMIFruSection: Product - Manufacturer: - IPMIFruProperty: Manufacturer - IPMIFruSection: Product - PartNumber: - IPMIFruProperty: Part Number - IPMIFruSection: Product - BuildDate: - IPMIFruProperty: Mfg Date - IPMIFruSection: Product - Model: - IPMIFruProperty: Model Number - IPMIFruSection: Product - xyz.openbmc_project.Inventory.Decorator.Revision: - Version: - IPMIFruProperty: Version - 71: /system/chassis/motherboard/dimm49: - entityID: 32 + <<: *DIMM_DEFAULTS entityInstance: 50 - interfaces: - xyz.openbmc_project.Inventory.Item: - PrettyName: - IPMIFruProperty: Name - IPMIFruSection: Product - xyz.openbmc_project.Inventory.Decorator.Asset: - SerialNumber: - IPMIFruProperty: Serial Number - IPMIFruSection: Product - Manufacturer: - IPMIFruProperty: Manufacturer - IPMIFruSection: Product - PartNumber: - IPMIFruProperty: Part Number - IPMIFruSection: Product - BuildDate: - IPMIFruProperty: Mfg Date - IPMIFruSection: Product - Model: - IPMIFruProperty: Model Number - IPMIFruSection: Product - xyz.openbmc_project.Inventory.Decorator.Revision: - Version: - IPMIFruProperty: Version - 72: /system/chassis/motherboard/dimm50: - entityID: 32 + <<: *DIMM_DEFAULTS entityInstance: 51 - interfaces: - xyz.openbmc_project.Inventory.Item: - PrettyName: - IPMIFruProperty: Name - IPMIFruSection: Product - xyz.openbmc_project.Inventory.Decorator.Asset: - SerialNumber: - IPMIFruProperty: Serial Number - IPMIFruSection: Product - Manufacturer: - IPMIFruProperty: Manufacturer - IPMIFruSection: Product - PartNumber: - IPMIFruProperty: Part Number - IPMIFruSection: Product - BuildDate: - IPMIFruProperty: Mfg Date - IPMIFruSection: Product - Model: - IPMIFruProperty: Model Number - IPMIFruSection: Product - xyz.openbmc_project.Inventory.Decorator.Revision: - Version: - IPMIFruProperty: Version - 73: /system/chassis/motherboard/dimm51: - entityID: 32 + <<: *DIMM_DEFAULTS entityInstance: 52 - interfaces: - xyz.openbmc_project.Inventory.Item: - PrettyName: - IPMIFruProperty: Name - IPMIFruSection: Product - xyz.openbmc_project.Inventory.Decorator.Asset: - SerialNumber: - IPMIFruProperty: Serial Number - IPMIFruSection: Product - Manufacturer: - IPMIFruProperty: Manufacturer - IPMIFruSection: Product - PartNumber: - IPMIFruProperty: Part Number - IPMIFruSection: Product - BuildDate: - IPMIFruProperty: Mfg Date - IPMIFruSection: Product - Model: - IPMIFruProperty: Model Number - IPMIFruSection: Product - xyz.openbmc_project.Inventory.Decorator.Revision: - Version: - IPMIFruProperty: Version - 74: /system/chassis/motherboard/dimm52: - entityID: 32 + <<: *DIMM_DEFAULTS entityInstance: 53 - interfaces: - xyz.openbmc_project.Inventory.Item: - PrettyName: - IPMIFruProperty: Name - IPMIFruSection: Product - xyz.openbmc_project.Inventory.Decorator.Asset: - SerialNumber: - IPMIFruProperty: Serial Number - IPMIFruSection: Product - Manufacturer: - IPMIFruProperty: Manufacturer - IPMIFruSection: Product - PartNumber: - IPMIFruProperty: Part Number - IPMIFruSection: Product - BuildDate: - IPMIFruProperty: Mfg Date - IPMIFruSection: Product - Model: - IPMIFruProperty: Model Number - IPMIFruSection: Product - xyz.openbmc_project.Inventory.Decorator.Revision: - Version: - IPMIFruProperty: Version - 75: /system/chassis/motherboard/dimm53: - entityID: 32 + <<: *DIMM_DEFAULTS entityInstance: 54 - interfaces: - xyz.openbmc_project.Inventory.Item: - PrettyName: - IPMIFruProperty: Name - IPMIFruSection: Product - xyz.openbmc_project.Inventory.Decorator.Asset: - SerialNumber: - IPMIFruProperty: Serial Number - IPMIFruSection: Product - Manufacturer: - IPMIFruProperty: Manufacturer - IPMIFruSection: Product - PartNumber: - IPMIFruProperty: Part Number - IPMIFruSection: Product - BuildDate: - IPMIFruProperty: Mfg Date - IPMIFruSection: Product - Model: - IPMIFruProperty: Model Number - IPMIFruSection: Product - xyz.openbmc_project.Inventory.Decorator.Revision: - Version: - IPMIFruProperty: Version - 76: /system/chassis/motherboard/dimm54: - entityID: 32 + <<: *DIMM_DEFAULTS entityInstance: 55 - interfaces: - xyz.openbmc_project.Inventory.Item: - PrettyName: - IPMIFruProperty: Name - IPMIFruSection: Product - xyz.openbmc_project.Inventory.Decorator.Asset: - SerialNumber: - IPMIFruProperty: Serial Number - IPMIFruSection: Product - Manufacturer: - IPMIFruProperty: Manufacturer - IPMIFruSection: Product - PartNumber: - IPMIFruProperty: Part Number - IPMIFruSection: Product - BuildDate: - IPMIFruProperty: Mfg Date - IPMIFruSection: Product - Model: - IPMIFruProperty: Model Number - IPMIFruSection: Product - xyz.openbmc_project.Inventory.Decorator.Revision: - Version: - IPMIFruProperty: Version - 77: /system/chassis/motherboard/dimm55: - entityID: 32 + <<: *DIMM_DEFAULTS entityInstance: 56 - interfaces: - xyz.openbmc_project.Inventory.Item: - PrettyName: - IPMIFruProperty: Name - IPMIFruSection: Product - xyz.openbmc_project.Inventory.Decorator.Asset: - SerialNumber: - IPMIFruProperty: Serial Number - IPMIFruSection: Product - Manufacturer: - IPMIFruProperty: Manufacturer - IPMIFruSection: Product - PartNumber: - IPMIFruProperty: Part Number - IPMIFruSection: Product - BuildDate: - IPMIFruProperty: Mfg Date - IPMIFruSection: Product - Model: - IPMIFruProperty: Model Number - IPMIFruSection: Product - xyz.openbmc_project.Inventory.Decorator.Revision: - Version: - IPMIFruProperty: Version - 78: /system/chassis/motherboard/dimm56: - entityID: 32 + <<: *DIMM_DEFAULTS entityInstance: 57 - interfaces: - xyz.openbmc_project.Inventory.Item: - PrettyName: - IPMIFruProperty: Name - IPMIFruSection: Product - xyz.openbmc_project.Inventory.Decorator.Asset: - SerialNumber: - IPMIFruProperty: Serial Number - IPMIFruSection: Product - Manufacturer: - IPMIFruProperty: Manufacturer - IPMIFruSection: Product - PartNumber: - IPMIFruProperty: Part Number - IPMIFruSection: Product - BuildDate: - IPMIFruProperty: Mfg Date - IPMIFruSection: Product - Model: - IPMIFruProperty: Model Number - IPMIFruSection: Product - xyz.openbmc_project.Inventory.Decorator.Revision: - Version: - IPMIFruProperty: Version - 79: /system/chassis/motherboard/dimm57: - entityID: 32 + <<: *DIMM_DEFAULTS entityInstance: 58 - interfaces: - xyz.openbmc_project.Inventory.Item: - PrettyName: - IPMIFruProperty: Name - IPMIFruSection: Product - xyz.openbmc_project.Inventory.Decorator.Asset: - SerialNumber: - IPMIFruProperty: Serial Number - IPMIFruSection: Product - Manufacturer: - IPMIFruProperty: Manufacturer - IPMIFruSection: Product - PartNumber: - IPMIFruProperty: Part Number - IPMIFruSection: Product - BuildDate: - IPMIFruProperty: Mfg Date - IPMIFruSection: Product - Model: - IPMIFruProperty: Model Number - IPMIFruSection: Product - xyz.openbmc_project.Inventory.Decorator.Revision: - Version: - IPMIFruProperty: Version - 80: /system/chassis/motherboard/dimm58: - entityID: 32 + <<: *DIMM_DEFAULTS entityInstance: 59 - interfaces: - xyz.openbmc_project.Inventory.Item: - PrettyName: - IPMIFruProperty: Name - IPMIFruSection: Product - xyz.openbmc_project.Inventory.Decorator.Asset: - SerialNumber: - IPMIFruProperty: Serial Number - IPMIFruSection: Product - Manufacturer: - IPMIFruProperty: Manufacturer - IPMIFruSection: Product - PartNumber: - IPMIFruProperty: Part Number - IPMIFruSection: Product - BuildDate: - IPMIFruProperty: Mfg Date - IPMIFruSection: Product - Model: - IPMIFruProperty: Model Number - IPMIFruSection: Product - xyz.openbmc_project.Inventory.Decorator.Revision: - Version: - IPMIFruProperty: Version - 81: /system/chassis/motherboard/dimm59: - entityID: 32 + <<: *DIMM_DEFAULTS entityInstance: 60 - interfaces: - xyz.openbmc_project.Inventory.Item: - PrettyName: - IPMIFruProperty: Name - IPMIFruSection: Product - xyz.openbmc_project.Inventory.Decorator.Asset: - SerialNumber: - IPMIFruProperty: Serial Number - IPMIFruSection: Product - Manufacturer: - IPMIFruProperty: Manufacturer - IPMIFruSection: Product - PartNumber: - IPMIFruProperty: Part Number - IPMIFruSection: Product - BuildDate: - IPMIFruProperty: Mfg Date - IPMIFruSection: Product - Model: - IPMIFruProperty: Model Number - IPMIFruSection: Product - xyz.openbmc_project.Inventory.Decorator.Revision: - Version: - IPMIFruProperty: Version - 82: /system/chassis/motherboard/dimm60: - entityID: 32 + <<: *DIMM_DEFAULTS entityInstance: 61 - interfaces: - xyz.openbmc_project.Inventory.Item: - PrettyName: - IPMIFruProperty: Name - IPMIFruSection: Product - xyz.openbmc_project.Inventory.Decorator.Asset: - SerialNumber: - IPMIFruProperty: Serial Number - IPMIFruSection: Product - Manufacturer: - IPMIFruProperty: Manufacturer - IPMIFruSection: Product - PartNumber: - IPMIFruProperty: Part Number - IPMIFruSection: Product - BuildDate: - IPMIFruProperty: Mfg Date - IPMIFruSection: Product - Model: - IPMIFruProperty: Model Number - IPMIFruSection: Product - xyz.openbmc_project.Inventory.Decorator.Revision: - Version: - IPMIFruProperty: Version - 83: /system/chassis/motherboard/dimm61: - entityID: 32 + <<: *DIMM_DEFAULTS entityInstance: 62 - interfaces: - xyz.openbmc_project.Inventory.Item: - PrettyName: - IPMIFruProperty: Name - IPMIFruSection: Product - xyz.openbmc_project.Inventory.Decorator.Asset: - SerialNumber: - IPMIFruProperty: Serial Number - IPMIFruSection: Product - Manufacturer: - IPMIFruProperty: Manufacturer - IPMIFruSection: Product - PartNumber: - IPMIFruProperty: Part Number - IPMIFruSection: Product - BuildDate: - IPMIFruProperty: Mfg Date - IPMIFruSection: Product - Model: - IPMIFruProperty: Model Number - IPMIFruSection: Product - xyz.openbmc_project.Inventory.Decorator.Revision: - Version: - IPMIFruProperty: Version - 84: /system/chassis/motherboard/dimm62: - entityID: 32 + <<: *DIMM_DEFAULTS entityInstance: 63 - interfaces: - xyz.openbmc_project.Inventory.Item: - PrettyName: - IPMIFruProperty: Name - IPMIFruSection: Product - xyz.openbmc_project.Inventory.Decorator.Asset: - SerialNumber: - IPMIFruProperty: Serial Number - IPMIFruSection: Product - Manufacturer: - IPMIFruProperty: Manufacturer - IPMIFruSection: Product - PartNumber: - IPMIFruProperty: Part Number - IPMIFruSection: Product - BuildDate: - IPMIFruProperty: Mfg Date - IPMIFruSection: Product - Model: - IPMIFruProperty: Model Number - IPMIFruSection: Product - xyz.openbmc_project.Inventory.Decorator.Revision: - Version: - IPMIFruProperty: Version - 85: /system/chassis/motherboard/dimm63: - entityID: 32 + <<: *DIMM_DEFAULTS entityInstance: 64 - interfaces: - xyz.openbmc_project.Inventory.Item: - PrettyName: - IPMIFruProperty: Name - IPMIFruSection: Product - xyz.openbmc_project.Inventory.Decorator.Asset: - SerialNumber: - IPMIFruProperty: Serial Number - IPMIFruSection: Product - Manufacturer: - IPMIFruProperty: Manufacturer - IPMIFruSection: Product - PartNumber: - IPMIFruProperty: Part Number - IPMIFruSection: Product - BuildDate: - IPMIFruProperty: Mfg Date - IPMIFruSection: Product - Model: - IPMIFruProperty: Model Number - IPMIFruSection: Product - xyz.openbmc_project.Inventory.Decorator.Revision: - Version: - IPMIFruProperty: Version - 86: /system/chassis/motherboard/dimm72: - entityID: 32 + <<: *DIMM_DEFAULTS entityInstance: 65 - interfaces: - xyz.openbmc_project.Inventory.Item: - PrettyName: - IPMIFruProperty: Name - IPMIFruSection: Product - xyz.openbmc_project.Inventory.Decorator.Asset: - SerialNumber: - IPMIFruProperty: Serial Number - IPMIFruSection: Product - Manufacturer: - IPMIFruProperty: Manufacturer - IPMIFruSection: Product - PartNumber: - IPMIFruProperty: Part Number - IPMIFruSection: Product - BuildDate: - IPMIFruProperty: Mfg Date - IPMIFruSection: Product - Model: - IPMIFruProperty: Model Number - IPMIFruSection: Product - xyz.openbmc_project.Inventory.Decorator.Revision: - Version: - IPMIFruProperty: Version - 87: /system/chassis/motherboard/dimm73: - entityID: 32 + <<: *DIMM_DEFAULTS entityInstance: 66 - interfaces: - xyz.openbmc_project.Inventory.Item: - PrettyName: - IPMIFruProperty: Name - IPMIFruSection: Product - xyz.openbmc_project.Inventory.Decorator.Asset: - SerialNumber: - IPMIFruProperty: Serial Number - IPMIFruSection: Product - Manufacturer: - IPMIFruProperty: Manufacturer - IPMIFruSection: Product - PartNumber: - IPMIFruProperty: Part Number - IPMIFruSection: Product - BuildDate: - IPMIFruProperty: Mfg Date - IPMIFruSection: Product - Model: - IPMIFruProperty: Model Number - IPMIFruSection: Product - xyz.openbmc_project.Inventory.Decorator.Revision: - Version: - IPMIFruProperty: Version - 88: /system/chassis/motherboard/dimm74: - entityID: 32 + <<: *DIMM_DEFAULTS entityInstance: 67 - interfaces: - xyz.openbmc_project.Inventory.Item: - PrettyName: - IPMIFruProperty: Name - IPMIFruSection: Product - xyz.openbmc_project.Inventory.Decorator.Asset: - SerialNumber: - IPMIFruProperty: Serial Number - IPMIFruSection: Product - Manufacturer: - IPMIFruProperty: Manufacturer - IPMIFruSection: Product - PartNumber: - IPMIFruProperty: Part Number - IPMIFruSection: Product - BuildDate: - IPMIFruProperty: Mfg Date - IPMIFruSection: Product - Model: - IPMIFruProperty: Model Number - IPMIFruSection: Product - xyz.openbmc_project.Inventory.Decorator.Revision: - Version: - IPMIFruProperty: Version - 89: /system/chassis/motherboard/dimm75: - entityID: 32 + <<: *DIMM_DEFAULTS entityInstance: 68 - interfaces: - xyz.openbmc_project.Inventory.Item: - PrettyName: - IPMIFruProperty: Name - IPMIFruSection: Product - xyz.openbmc_project.Inventory.Decorator.Asset: - SerialNumber: - IPMIFruProperty: Serial Number - IPMIFruSection: Product - Manufacturer: - IPMIFruProperty: Manufacturer - IPMIFruSection: Product - PartNumber: - IPMIFruProperty: Part Number - IPMIFruSection: Product - BuildDate: - IPMIFruProperty: Mfg Date - IPMIFruSection: Product - Model: - IPMIFruProperty: Model Number - IPMIFruSection: Product - xyz.openbmc_project.Inventory.Decorator.Revision: - Version: - IPMIFruProperty: Version - 90: /system/chassis/motherboard/dimm76: - entityID: 32 + <<: *DIMM_DEFAULTS entityInstance: 69 - interfaces: - xyz.openbmc_project.Inventory.Item: - PrettyName: - IPMIFruProperty: Name - IPMIFruSection: Product - xyz.openbmc_project.Inventory.Decorator.Asset: - SerialNumber: - IPMIFruProperty: Serial Number - IPMIFruSection: Product - Manufacturer: - IPMIFruProperty: Manufacturer - IPMIFruSection: Product - PartNumber: - IPMIFruProperty: Part Number - IPMIFruSection: Product - BuildDate: - IPMIFruProperty: Mfg Date - IPMIFruSection: Product - Model: - IPMIFruProperty: Model Number - IPMIFruSection: Product - xyz.openbmc_project.Inventory.Decorator.Revision: - Version: - IPMIFruProperty: Version - 91: /system/chassis/motherboard/dimm77: - entityID: 32 + <<: *DIMM_DEFAULTS entityInstance: 70 - interfaces: - xyz.openbmc_project.Inventory.Item: - PrettyName: - IPMIFruProperty: Name - IPMIFruSection: Product - xyz.openbmc_project.Inventory.Decorator.Asset: - SerialNumber: - IPMIFruProperty: Serial Number - IPMIFruSection: Product - Manufacturer: - IPMIFruProperty: Manufacturer - IPMIFruSection: Product - PartNumber: - IPMIFruProperty: Part Number - IPMIFruSection: Product - BuildDate: - IPMIFruProperty: Mfg Date - IPMIFruSection: Product - Model: - IPMIFruProperty: Model Number - IPMIFruSection: Product - xyz.openbmc_project.Inventory.Decorator.Revision: - Version: - IPMIFruProperty: Version - 92: /system/chassis/motherboard/dimm78: - entityID: 32 + <<: *DIMM_DEFAULTS entityInstance: 71 - interfaces: - xyz.openbmc_project.Inventory.Item: - PrettyName: - IPMIFruProperty: Name - IPMIFruSection: Product - xyz.openbmc_project.Inventory.Decorator.Asset: - SerialNumber: - IPMIFruProperty: Serial Number - IPMIFruSection: Product - Manufacturer: - IPMIFruProperty: Manufacturer - IPMIFruSection: Product - PartNumber: - IPMIFruProperty: Part Number - IPMIFruSection: Product - BuildDate: - IPMIFruProperty: Mfg Date - IPMIFruSection: Product - Model: - IPMIFruProperty: Model Number - IPMIFruSection: Product - xyz.openbmc_project.Inventory.Decorator.Revision: - Version: - IPMIFruProperty: Version - 93: /system/chassis/motherboard/dimm79: - entityID: 32 + <<: *DIMM_DEFAULTS entityInstance: 72 - interfaces: - xyz.openbmc_project.Inventory.Item: - PrettyName: - IPMIFruProperty: Name - IPMIFruSection: Product - xyz.openbmc_project.Inventory.Decorator.Asset: - SerialNumber: - IPMIFruProperty: Serial Number - IPMIFruSection: Product - Manufacturer: - IPMIFruProperty: Manufacturer - IPMIFruSection: Product - PartNumber: - IPMIFruProperty: Part Number - IPMIFruSection: Product - BuildDate: - IPMIFruProperty: Mfg Date - IPMIFruSection: Product - Model: - IPMIFruProperty: Model Number - IPMIFruSection: Product - xyz.openbmc_project.Inventory.Decorator.Revision: - Version: - IPMIFruProperty: Version - 94: /system/chassis/motherboard/dimm64: - entityID: 32 + <<: *DIMM_DEFAULTS entityInstance: 73 - interfaces: - xyz.openbmc_project.Inventory.Item: - PrettyName: - IPMIFruProperty: Name - IPMIFruSection: Product - xyz.openbmc_project.Inventory.Decorator.Asset: - SerialNumber: - IPMIFruProperty: Serial Number - IPMIFruSection: Product - Manufacturer: - IPMIFruProperty: Manufacturer - IPMIFruSection: Product - PartNumber: - IPMIFruProperty: Part Number - IPMIFruSection: Product - BuildDate: - IPMIFruProperty: Mfg Date - IPMIFruSection: Product - Model: - IPMIFruProperty: Model Number - IPMIFruSection: Product - xyz.openbmc_project.Inventory.Decorator.Revision: - Version: - IPMIFruProperty: Version - 95: /system/chassis/motherboard/dimm65: - entityID: 32 + <<: *DIMM_DEFAULTS entityInstance: 74 - interfaces: - xyz.openbmc_project.Inventory.Item: - PrettyName: - IPMIFruProperty: Name - IPMIFruSection: Product - xyz.openbmc_project.Inventory.Decorator.Asset: - SerialNumber: - IPMIFruProperty: Serial Number - IPMIFruSection: Product - Manufacturer: - IPMIFruProperty: Manufacturer - IPMIFruSection: Product - PartNumber: - IPMIFruProperty: Part Number - IPMIFruSection: Product - BuildDate: - IPMIFruProperty: Mfg Date - IPMIFruSection: Product - Model: - IPMIFruProperty: Model Number - IPMIFruSection: Product - xyz.openbmc_project.Inventory.Decorator.Revision: - Version: - IPMIFruProperty: Version - 96: /system/chassis/motherboard/dimm66: - entityID: 32 + <<: *DIMM_DEFAULTS entityInstance: 75 - interfaces: - xyz.openbmc_project.Inventory.Item: - PrettyName: - IPMIFruProperty: Name - IPMIFruSection: Product - xyz.openbmc_project.Inventory.Decorator.Asset: - SerialNumber: - IPMIFruProperty: Serial Number - IPMIFruSection: Product - Manufacturer: - IPMIFruProperty: Manufacturer - IPMIFruSection: Product - PartNumber: - IPMIFruProperty: Part Number - IPMIFruSection: Product - BuildDate: - IPMIFruProperty: Mfg Date - IPMIFruSection: Product - Model: - IPMIFruProperty: Model Number - IPMIFruSection: Product - xyz.openbmc_project.Inventory.Decorator.Revision: - Version: - IPMIFruProperty: Version - 97: /system/chassis/motherboard/dimm67: - entityID: 32 + <<: *DIMM_DEFAULTS entityInstance: 76 - interfaces: - xyz.openbmc_project.Inventory.Item: - PrettyName: - IPMIFruProperty: Name - IPMIFruSection: Product - xyz.openbmc_project.Inventory.Decorator.Asset: - SerialNumber: - IPMIFruProperty: Serial Number - IPMIFruSection: Product - Manufacturer: - IPMIFruProperty: Manufacturer - IPMIFruSection: Product - PartNumber: - IPMIFruProperty: Part Number - IPMIFruSection: Product - BuildDate: - IPMIFruProperty: Mfg Date - IPMIFruSection: Product - Model: - IPMIFruProperty: Model Number - IPMIFruSection: Product - xyz.openbmc_project.Inventory.Decorator.Revision: - Version: - IPMIFruProperty: Version - 98: /system/chassis/motherboard/dimm68: - entityID: 32 + <<: *DIMM_DEFAULTS entityInstance: 77 - interfaces: - xyz.openbmc_project.Inventory.Item: - PrettyName: - IPMIFruProperty: Name - IPMIFruSection: Product - xyz.openbmc_project.Inventory.Decorator.Asset: - SerialNumber: - IPMIFruProperty: Serial Number - IPMIFruSection: Product - Manufacturer: - IPMIFruProperty: Manufacturer - IPMIFruSection: Product - PartNumber: - IPMIFruProperty: Part Number - IPMIFruSection: Product - BuildDate: - IPMIFruProperty: Mfg Date - IPMIFruSection: Product - Model: - IPMIFruProperty: Model Number - IPMIFruSection: Product - xyz.openbmc_project.Inventory.Decorator.Revision: - Version: - IPMIFruProperty: Version - 99: /system/chassis/motherboard/dimm69: - entityID: 32 + <<: *DIMM_DEFAULTS entityInstance: 78 - interfaces: - xyz.openbmc_project.Inventory.Item: - PrettyName: - IPMIFruProperty: Name - IPMIFruSection: Product - xyz.openbmc_project.Inventory.Decorator.Asset: - SerialNumber: - IPMIFruProperty: Serial Number - IPMIFruSection: Product - Manufacturer: - IPMIFruProperty: Manufacturer - IPMIFruSection: Product - PartNumber: - IPMIFruProperty: Part Number - IPMIFruSection: Product - BuildDate: - IPMIFruProperty: Mfg Date - IPMIFruSection: Product - Model: - IPMIFruProperty: Model Number - IPMIFruSection: Product - xyz.openbmc_project.Inventory.Decorator.Revision: - Version: - IPMIFruProperty: Version - 100: /system/chassis/motherboard/dimm70: - entityID: 32 + <<: *DIMM_DEFAULTS entityInstance: 79 - interfaces: - xyz.openbmc_project.Inventory.Item: - PrettyName: - IPMIFruProperty: Name - IPMIFruSection: Product - xyz.openbmc_project.Inventory.Decorator.Asset: - SerialNumber: - IPMIFruProperty: Serial Number - IPMIFruSection: Product - Manufacturer: - IPMIFruProperty: Manufacturer - IPMIFruSection: Product - PartNumber: - IPMIFruProperty: Part Number - IPMIFruSection: Product - BuildDate: - IPMIFruProperty: Mfg Date - IPMIFruSection: Product - Model: - IPMIFruProperty: Model Number - IPMIFruSection: Product - xyz.openbmc_project.Inventory.Decorator.Revision: - Version: - IPMIFruProperty: Version - 101: /system/chassis/motherboard/dimm71: - entityID: 32 + <<: *DIMM_DEFAULTS entityInstance: 80 - interfaces: - xyz.openbmc_project.Inventory.Item: - PrettyName: - IPMIFruProperty: Name - IPMIFruSection: Product - xyz.openbmc_project.Inventory.Decorator.Asset: - SerialNumber: - IPMIFruProperty: Serial Number - IPMIFruSection: Product - Manufacturer: - IPMIFruProperty: Manufacturer - IPMIFruSection: Product - PartNumber: - IPMIFruProperty: Part Number - IPMIFruSection: Product - BuildDate: - IPMIFruProperty: Mfg Date - IPMIFruSection: Product - Model: - IPMIFruProperty: Model Number - IPMIFruSection: Product - xyz.openbmc_project.Inventory.Decorator.Revision: - Version: - IPMIFruProperty: Version - 102: /system/chassis/motherboard/dimm80: - entityID: 32 + <<: *DIMM_DEFAULTS entityInstance: 81 - interfaces: - xyz.openbmc_project.Inventory.Item: - PrettyName: - IPMIFruProperty: Name - IPMIFruSection: Product - xyz.openbmc_project.Inventory.Decorator.Asset: - SerialNumber: - IPMIFruProperty: Serial Number - IPMIFruSection: Product - Manufacturer: - IPMIFruProperty: Manufacturer - IPMIFruSection: Product - PartNumber: - IPMIFruProperty: Part Number - IPMIFruSection: Product - BuildDate: - IPMIFruProperty: Mfg Date - IPMIFruSection: Product - Model: - IPMIFruProperty: Model Number - IPMIFruSection: Product - xyz.openbmc_project.Inventory.Decorator.Revision: - Version: - IPMIFruProperty: Version - 103: /system/chassis/motherboard/dimm81: - entityID: 32 + <<: *DIMM_DEFAULTS entityInstance: 82 - interfaces: - xyz.openbmc_project.Inventory.Item: - PrettyName: - IPMIFruProperty: Name - IPMIFruSection: Product - xyz.openbmc_project.Inventory.Decorator.Asset: - SerialNumber: - IPMIFruProperty: Serial Number - IPMIFruSection: Product - Manufacturer: - IPMIFruProperty: Manufacturer - IPMIFruSection: Product - PartNumber: - IPMIFruProperty: Part Number - IPMIFruSection: Product - BuildDate: - IPMIFruProperty: Mfg Date - IPMIFruSection: Product - Model: - IPMIFruProperty: Model Number - IPMIFruSection: Product - xyz.openbmc_project.Inventory.Decorator.Revision: - Version: - IPMIFruProperty: Version - 104: /system/chassis/motherboard/dimm82: - entityID: 32 + <<: *DIMM_DEFAULTS entityInstance: 83 - interfaces: - xyz.openbmc_project.Inventory.Item: - PrettyName: - IPMIFruProperty: Name - IPMIFruSection: Product - xyz.openbmc_project.Inventory.Decorator.Asset: - SerialNumber: - IPMIFruProperty: Serial Number - IPMIFruSection: Product - Manufacturer: - IPMIFruProperty: Manufacturer - IPMIFruSection: Product - PartNumber: - IPMIFruProperty: Part Number - IPMIFruSection: Product - BuildDate: - IPMIFruProperty: Mfg Date - IPMIFruSection: Product - Model: - IPMIFruProperty: Model Number - IPMIFruSection: Product - xyz.openbmc_project.Inventory.Decorator.Revision: - Version: - IPMIFruProperty: Version - 105: /system/chassis/motherboard/dimm83: - entityID: 32 + <<: *DIMM_DEFAULTS entityInstance: 84 - interfaces: - xyz.openbmc_project.Inventory.Item: - PrettyName: - IPMIFruProperty: Name - IPMIFruSection: Product - xyz.openbmc_project.Inventory.Decorator.Asset: - SerialNumber: - IPMIFruProperty: Serial Number - IPMIFruSection: Product - Manufacturer: - IPMIFruProperty: Manufacturer - IPMIFruSection: Product - PartNumber: - IPMIFruProperty: Part Number - IPMIFruSection: Product - BuildDate: - IPMIFruProperty: Mfg Date - IPMIFruSection: Product - Model: - IPMIFruProperty: Model Number - IPMIFruSection: Product - xyz.openbmc_project.Inventory.Decorator.Revision: - Version: - IPMIFruProperty: Version - 106: /system/chassis/motherboard/dimm84: - entityID: 32 + <<: *DIMM_DEFAULTS entityInstance: 85 - interfaces: - xyz.openbmc_project.Inventory.Item: - PrettyName: - IPMIFruProperty: Name - IPMIFruSection: Product - xyz.openbmc_project.Inventory.Decorator.Asset: - SerialNumber: - IPMIFruProperty: Serial Number - IPMIFruSection: Product - Manufacturer: - IPMIFruProperty: Manufacturer - IPMIFruSection: Product - PartNumber: - IPMIFruProperty: Part Number - IPMIFruSection: Product - BuildDate: - IPMIFruProperty: Mfg Date - IPMIFruSection: Product - Model: - IPMIFruProperty: Model Number - IPMIFruSection: Product - xyz.openbmc_project.Inventory.Decorator.Revision: - Version: - IPMIFruProperty: Version - 107: /system/chassis/motherboard/dimm85: - entityID: 32 + <<: *DIMM_DEFAULTS entityInstance: 86 - interfaces: - xyz.openbmc_project.Inventory.Item: - PrettyName: - IPMIFruProperty: Name - IPMIFruSection: Product - xyz.openbmc_project.Inventory.Decorator.Asset: - SerialNumber: - IPMIFruProperty: Serial Number - IPMIFruSection: Product - Manufacturer: - IPMIFruProperty: Manufacturer - IPMIFruSection: Product - PartNumber: - IPMIFruProperty: Part Number - IPMIFruSection: Product - BuildDate: - IPMIFruProperty: Mfg Date - IPMIFruSection: Product - Model: - IPMIFruProperty: Model Number - IPMIFruSection: Product - xyz.openbmc_project.Inventory.Decorator.Revision: - Version: - IPMIFruProperty: Version - 108: /system/chassis/motherboard/dimm86: - entityID: 32 + <<: *DIMM_DEFAULTS entityInstance: 87 - interfaces: - xyz.openbmc_project.Inventory.Item: - PrettyName: - IPMIFruProperty: Name - IPMIFruSection: Product - xyz.openbmc_project.Inventory.Decorator.Asset: - SerialNumber: - IPMIFruProperty: Serial Number - IPMIFruSection: Product - Manufacturer: - IPMIFruProperty: Manufacturer - IPMIFruSection: Product - PartNumber: - IPMIFruProperty: Part Number - IPMIFruSection: Product - BuildDate: - IPMIFruProperty: Mfg Date - IPMIFruSection: Product - Model: - IPMIFruProperty: Model Number - IPMIFruSection: Product - xyz.openbmc_project.Inventory.Decorator.Revision: - Version: - IPMIFruProperty: Version - 109: /system/chassis/motherboard/dimm87: - entityID: 32 + <<: *DIMM_DEFAULTS entityInstance: 88 - interfaces: - xyz.openbmc_project.Inventory.Item: - PrettyName: - IPMIFruProperty: Name - IPMIFruSection: Product - xyz.openbmc_project.Inventory.Decorator.Asset: - SerialNumber: - IPMIFruProperty: Serial Number - IPMIFruSection: Product - Manufacturer: - IPMIFruProperty: Manufacturer - IPMIFruSection: Product - PartNumber: - IPMIFruProperty: Part Number - IPMIFruSection: Product - BuildDate: - IPMIFruProperty: Mfg Date - IPMIFruSection: Product - Model: - IPMIFruProperty: Model Number - IPMIFruSection: Product - xyz.openbmc_project.Inventory.Decorator.Revision: - Version: - IPMIFruProperty: Version - 110: /system/chassis/motherboard/dimm88: - entityID: 32 + <<: *DIMM_DEFAULTS entityInstance: 89 - interfaces: - xyz.openbmc_project.Inventory.Item: - PrettyName: - IPMIFruProperty: Name - IPMIFruSection: Product - xyz.openbmc_project.Inventory.Decorator.Asset: - SerialNumber: - IPMIFruProperty: Serial Number - IPMIFruSection: Product - Manufacturer: - IPMIFruProperty: Manufacturer - IPMIFruSection: Product - PartNumber: - IPMIFruProperty: Part Number - IPMIFruSection: Product - BuildDate: - IPMIFruProperty: Mfg Date - IPMIFruSection: Product - Model: - IPMIFruProperty: Model Number - IPMIFruSection: Product - xyz.openbmc_project.Inventory.Decorator.Revision: - Version: - IPMIFruProperty: Version - 111: /system/chassis/motherboard/dimm89: - entityID: 32 + <<: *DIMM_DEFAULTS entityInstance: 90 - interfaces: - xyz.openbmc_project.Inventory.Item: - PrettyName: - IPMIFruProperty: Name - IPMIFruSection: Product - xyz.openbmc_project.Inventory.Decorator.Asset: - SerialNumber: - IPMIFruProperty: Serial Number - IPMIFruSection: Product - Manufacturer: - IPMIFruProperty: Manufacturer - IPMIFruSection: Product - PartNumber: - IPMIFruProperty: Part Number - IPMIFruSection: Product - BuildDate: - IPMIFruProperty: Mfg Date - IPMIFruSection: Product - Model: - IPMIFruProperty: Model Number - IPMIFruSection: Product - xyz.openbmc_project.Inventory.Decorator.Revision: - Version: - IPMIFruProperty: Version - 112: /system/chassis/motherboard/dimm90: - entityID: 32 + <<: *DIMM_DEFAULTS entityInstance: 91 - interfaces: - xyz.openbmc_project.Inventory.Item: - PrettyName: - IPMIFruProperty: Name - IPMIFruSection: Product - xyz.openbmc_project.Inventory.Decorator.Asset: - SerialNumber: - IPMIFruProperty: Serial Number - IPMIFruSection: Product - Manufacturer: - IPMIFruProperty: Manufacturer - IPMIFruSection: Product - PartNumber: - IPMIFruProperty: Part Number - IPMIFruSection: Product - BuildDate: - IPMIFruProperty: Mfg Date - IPMIFruSection: Product - Model: - IPMIFruProperty: Model Number - IPMIFruSection: Product - xyz.openbmc_project.Inventory.Decorator.Revision: - Version: - IPMIFruProperty: Version - 113: /system/chassis/motherboard/dimm91: - entityID: 32 + <<: *DIMM_DEFAULTS entityInstance: 92 - interfaces: - xyz.openbmc_project.Inventory.Item: - PrettyName: - IPMIFruProperty: Name - IPMIFruSection: Product - xyz.openbmc_project.Inventory.Decorator.Asset: - SerialNumber: - IPMIFruProperty: Serial Number - IPMIFruSection: Product - Manufacturer: - IPMIFruProperty: Manufacturer - IPMIFruSection: Product - PartNumber: - IPMIFruProperty: Part Number - IPMIFruSection: Product - BuildDate: - IPMIFruProperty: Mfg Date - IPMIFruSection: Product - Model: - IPMIFruProperty: Model Number - IPMIFruSection: Product - xyz.openbmc_project.Inventory.Decorator.Revision: - Version: - IPMIFruProperty: Version - 114: /system/chassis/motherboard/dimm92: - entityID: 32 + <<: *DIMM_DEFAULTS entityInstance: 93 - interfaces: - xyz.openbmc_project.Inventory.Item: - PrettyName: - IPMIFruProperty: Name - IPMIFruSection: Product - xyz.openbmc_project.Inventory.Decorator.Asset: - SerialNumber: - IPMIFruProperty: Serial Number - IPMIFruSection: Product - Manufacturer: - IPMIFruProperty: Manufacturer - IPMIFruSection: Product - PartNumber: - IPMIFruProperty: Part Number - IPMIFruSection: Product - BuildDate: - IPMIFruProperty: Mfg Date - IPMIFruSection: Product - Model: - IPMIFruProperty: Model Number - IPMIFruSection: Product - xyz.openbmc_project.Inventory.Decorator.Revision: - Version: - IPMIFruProperty: Version - 115: /system/chassis/motherboard/dimm93: - entityID: 32 + <<: *DIMM_DEFAULTS entityInstance: 94 - interfaces: - xyz.openbmc_project.Inventory.Item: - PrettyName: - IPMIFruProperty: Name - IPMIFruSection: Product - xyz.openbmc_project.Inventory.Decorator.Asset: - SerialNumber: - IPMIFruProperty: Serial Number - IPMIFruSection: Product - Manufacturer: - IPMIFruProperty: Manufacturer - IPMIFruSection: Product - PartNumber: - IPMIFruProperty: Part Number - IPMIFruSection: Product - BuildDate: - IPMIFruProperty: Mfg Date - IPMIFruSection: Product - Model: - IPMIFruProperty: Model Number - IPMIFruSection: Product - xyz.openbmc_project.Inventory.Decorator.Revision: - Version: - IPMIFruProperty: Version - 116: /system/chassis/motherboard/dimm94: - entityID: 32 + <<: *DIMM_DEFAULTS entityInstance: 95 - interfaces: - xyz.openbmc_project.Inventory.Item: - PrettyName: - IPMIFruProperty: Name - IPMIFruSection: Product - xyz.openbmc_project.Inventory.Decorator.Asset: - SerialNumber: - IPMIFruProperty: Serial Number - IPMIFruSection: Product - Manufacturer: - IPMIFruProperty: Manufacturer - IPMIFruSection: Product - PartNumber: - IPMIFruProperty: Part Number - IPMIFruSection: Product - BuildDate: - IPMIFruProperty: Mfg Date - IPMIFruSection: Product - Model: - IPMIFruProperty: Model Number - IPMIFruSection: Product - xyz.openbmc_project.Inventory.Decorator.Revision: - Version: - IPMIFruProperty: Version - 117: /system/chassis/motherboard/dimm95: - entityID: 32 + <<: *DIMM_DEFAULTS entityInstance: 96 - interfaces: - xyz.openbmc_project.Inventory.Item: - PrettyName: - IPMIFruProperty: Name - IPMIFruSection: Product - xyz.openbmc_project.Inventory.Decorator.Asset: - SerialNumber: - IPMIFruProperty: Serial Number - IPMIFruSection: Product - Manufacturer: - IPMIFruProperty: Manufacturer - IPMIFruSection: Product - PartNumber: - IPMIFruProperty: Part Number - IPMIFruSection: Product - BuildDate: - IPMIFruProperty: Mfg Date - IPMIFruSection: Product - Model: - IPMIFruProperty: Model Number - IPMIFruSection: Product - xyz.openbmc_project.Inventory.Decorator.Revision: - Version: - IPMIFruProperty: Version - 118: /system/chassis/motherboard/dimm104: - entityID: 32 + <<: *DIMM_DEFAULTS entityInstance: 97 - interfaces: - xyz.openbmc_project.Inventory.Item: - PrettyName: - IPMIFruProperty: Name - IPMIFruSection: Product - xyz.openbmc_project.Inventory.Decorator.Asset: - SerialNumber: - IPMIFruProperty: Serial Number - IPMIFruSection: Product - Manufacturer: - IPMIFruProperty: Manufacturer - IPMIFruSection: Product - PartNumber: - IPMIFruProperty: Part Number - IPMIFruSection: Product - BuildDate: - IPMIFruProperty: Mfg Date - IPMIFruSection: Product - Model: - IPMIFruProperty: Model Number - IPMIFruSection: Product - xyz.openbmc_project.Inventory.Decorator.Revision: - Version: - IPMIFruProperty: Version - 119: /system/chassis/motherboard/dimm105: - entityID: 32 + <<: *DIMM_DEFAULTS entityInstance: 98 - interfaces: - xyz.openbmc_project.Inventory.Item: - PrettyName: - IPMIFruProperty: Name - IPMIFruSection: Product - xyz.openbmc_project.Inventory.Decorator.Asset: - SerialNumber: - IPMIFruProperty: Serial Number - IPMIFruSection: Product - Manufacturer: - IPMIFruProperty: Manufacturer - IPMIFruSection: Product - PartNumber: - IPMIFruProperty: Part Number - IPMIFruSection: Product - BuildDate: - IPMIFruProperty: Mfg Date - IPMIFruSection: Product - Model: - IPMIFruProperty: Model Number - IPMIFruSection: Product - xyz.openbmc_project.Inventory.Decorator.Revision: - Version: - IPMIFruProperty: Version - 120: /system/chassis/motherboard/dimm106: - entityID: 32 + <<: *DIMM_DEFAULTS entityInstance: 99 - interfaces: - xyz.openbmc_project.Inventory.Item: - PrettyName: - IPMIFruProperty: Name - IPMIFruSection: Product - xyz.openbmc_project.Inventory.Decorator.Asset: - SerialNumber: - IPMIFruProperty: Serial Number - IPMIFruSection: Product - Manufacturer: - IPMIFruProperty: Manufacturer - IPMIFruSection: Product - PartNumber: - IPMIFruProperty: Part Number - IPMIFruSection: Product - BuildDate: - IPMIFruProperty: Mfg Date - IPMIFruSection: Product - Model: - IPMIFruProperty: Model Number - IPMIFruSection: Product - xyz.openbmc_project.Inventory.Decorator.Revision: - Version: - IPMIFruProperty: Version - 121: /system/chassis/motherboard/dimm107: - entityID: 32 + <<: *DIMM_DEFAULTS entityInstance: 100 - interfaces: - xyz.openbmc_project.Inventory.Item: - PrettyName: - IPMIFruProperty: Name - IPMIFruSection: Product - xyz.openbmc_project.Inventory.Decorator.Asset: - SerialNumber: - IPMIFruProperty: Serial Number - IPMIFruSection: Product - Manufacturer: - IPMIFruProperty: Manufacturer - IPMIFruSection: Product - PartNumber: - IPMIFruProperty: Part Number - IPMIFruSection: Product - BuildDate: - IPMIFruProperty: Mfg Date - IPMIFruSection: Product - Model: - IPMIFruProperty: Model Number - IPMIFruSection: Product - xyz.openbmc_project.Inventory.Decorator.Revision: - Version: - IPMIFruProperty: Version - 122: /system/chassis/motherboard/dimm108: - entityID: 32 + <<: *DIMM_DEFAULTS entityInstance: 101 - interfaces: - xyz.openbmc_project.Inventory.Item: - PrettyName: - IPMIFruProperty: Name - IPMIFruSection: Product - xyz.openbmc_project.Inventory.Decorator.Asset: - SerialNumber: - IPMIFruProperty: Serial Number - IPMIFruSection: Product - Manufacturer: - IPMIFruProperty: Manufacturer - IPMIFruSection: Product - PartNumber: - IPMIFruProperty: Part Number - IPMIFruSection: Product - BuildDate: - IPMIFruProperty: Mfg Date - IPMIFruSection: Product - Model: - IPMIFruProperty: Model Number - IPMIFruSection: Product - xyz.openbmc_project.Inventory.Decorator.Revision: - Version: - IPMIFruProperty: Version - 123: /system/chassis/motherboard/dimm109: - entityID: 32 + <<: *DIMM_DEFAULTS entityInstance: 102 - interfaces: - xyz.openbmc_project.Inventory.Item: - PrettyName: - IPMIFruProperty: Name - IPMIFruSection: Product - xyz.openbmc_project.Inventory.Decorator.Asset: - SerialNumber: - IPMIFruProperty: Serial Number - IPMIFruSection: Product - Manufacturer: - IPMIFruProperty: Manufacturer - IPMIFruSection: Product - PartNumber: - IPMIFruProperty: Part Number - IPMIFruSection: Product - BuildDate: - IPMIFruProperty: Mfg Date - IPMIFruSection: Product - Model: - IPMIFruProperty: Model Number - IPMIFruSection: Product - xyz.openbmc_project.Inventory.Decorator.Revision: - Version: - IPMIFruProperty: Version - 124: /system/chassis/motherboard/dimm110: - entityID: 32 + <<: *DIMM_DEFAULTS entityInstance: 103 - interfaces: - xyz.openbmc_project.Inventory.Item: - PrettyName: - IPMIFruProperty: Name - IPMIFruSection: Product - xyz.openbmc_project.Inventory.Decorator.Asset: - SerialNumber: - IPMIFruProperty: Serial Number - IPMIFruSection: Product - Manufacturer: - IPMIFruProperty: Manufacturer - IPMIFruSection: Product - PartNumber: - IPMIFruProperty: Part Number - IPMIFruSection: Product - BuildDate: - IPMIFruProperty: Mfg Date - IPMIFruSection: Product - Model: - IPMIFruProperty: Model Number - IPMIFruSection: Product - xyz.openbmc_project.Inventory.Decorator.Revision: - Version: - IPMIFruProperty: Version - 125: /system/chassis/motherboard/dimm111: - entityID: 32 + <<: *DIMM_DEFAULTS entityInstance: 104 - interfaces: - xyz.openbmc_project.Inventory.Item: - PrettyName: - IPMIFruProperty: Name - IPMIFruSection: Product - xyz.openbmc_project.Inventory.Decorator.Asset: - SerialNumber: - IPMIFruProperty: Serial Number - IPMIFruSection: Product - Manufacturer: - IPMIFruProperty: Manufacturer - IPMIFruSection: Product - PartNumber: - IPMIFruProperty: Part Number - IPMIFruSection: Product - BuildDate: - IPMIFruProperty: Mfg Date - IPMIFruSection: Product - Model: - IPMIFruProperty: Model Number - IPMIFruSection: Product - xyz.openbmc_project.Inventory.Decorator.Revision: - Version: - IPMIFruProperty: Version - 126: /system/chassis/motherboard/dimm96: - entityID: 32 + <<: *DIMM_DEFAULTS entityInstance: 105 - interfaces: - xyz.openbmc_project.Inventory.Item: - PrettyName: - IPMIFruProperty: Name - IPMIFruSection: Product - xyz.openbmc_project.Inventory.Decorator.Asset: - SerialNumber: - IPMIFruProperty: Serial Number - IPMIFruSection: Product - Manufacturer: - IPMIFruProperty: Manufacturer - IPMIFruSection: Product - PartNumber: - IPMIFruProperty: Part Number - IPMIFruSection: Product - BuildDate: - IPMIFruProperty: Mfg Date - IPMIFruSection: Product - Model: - IPMIFruProperty: Model Number - IPMIFruSection: Product - xyz.openbmc_project.Inventory.Decorator.Revision: - Version: - IPMIFruProperty: Version - 127: /system/chassis/motherboard/dimm97: - entityID: 32 + <<: *DIMM_DEFAULTS entityInstance: 106 - interfaces: - xyz.openbmc_project.Inventory.Item: - PrettyName: - IPMIFruProperty: Name - IPMIFruSection: Product - xyz.openbmc_project.Inventory.Decorator.Asset: - SerialNumber: - IPMIFruProperty: Serial Number - IPMIFruSection: Product - Manufacturer: - IPMIFruProperty: Manufacturer - IPMIFruSection: Product - PartNumber: - IPMIFruProperty: Part Number - IPMIFruSection: Product - BuildDate: - IPMIFruProperty: Mfg Date - IPMIFruSection: Product - Model: - IPMIFruProperty: Model Number - IPMIFruSection: Product - xyz.openbmc_project.Inventory.Decorator.Revision: - Version: - IPMIFruProperty: Version - 128: /system/chassis/motherboard/dimm98: - entityID: 32 + <<: *DIMM_DEFAULTS entityInstance: 107 - interfaces: - xyz.openbmc_project.Inventory.Item: - PrettyName: - IPMIFruProperty: Name - IPMIFruSection: Product - xyz.openbmc_project.Inventory.Decorator.Asset: - SerialNumber: - IPMIFruProperty: Serial Number - IPMIFruSection: Product - Manufacturer: - IPMIFruProperty: Manufacturer - IPMIFruSection: Product - PartNumber: - IPMIFruProperty: Part Number - IPMIFruSection: Product - BuildDate: - IPMIFruProperty: Mfg Date - IPMIFruSection: Product - Model: - IPMIFruProperty: Model Number - IPMIFruSection: Product - xyz.openbmc_project.Inventory.Decorator.Revision: - Version: - IPMIFruProperty: Version - 129: /system/chassis/motherboard/dimm99: - entityID: 32 + <<: *DIMM_DEFAULTS entityInstance: 108 - interfaces: - xyz.openbmc_project.Inventory.Item: - PrettyName: - IPMIFruProperty: Name - IPMIFruSection: Product - xyz.openbmc_project.Inventory.Decorator.Asset: - SerialNumber: - IPMIFruProperty: Serial Number - IPMIFruSection: Product - Manufacturer: - IPMIFruProperty: Manufacturer - IPMIFruSection: Product - PartNumber: - IPMIFruProperty: Part Number - IPMIFruSection: Product - BuildDate: - IPMIFruProperty: Mfg Date - IPMIFruSection: Product - Model: - IPMIFruProperty: Model Number - IPMIFruSection: Product - xyz.openbmc_project.Inventory.Decorator.Revision: - Version: - IPMIFruProperty: Version - 130: /system/chassis/motherboard/dimm100: - entityID: 32 + <<: *DIMM_DEFAULTS entityInstance: 109 - interfaces: - xyz.openbmc_project.Inventory.Item: - PrettyName: - IPMIFruProperty: Name - IPMIFruSection: Product - xyz.openbmc_project.Inventory.Decorator.Asset: - SerialNumber: - IPMIFruProperty: Serial Number - IPMIFruSection: Product - Manufacturer: - IPMIFruProperty: Manufacturer - IPMIFruSection: Product - PartNumber: - IPMIFruProperty: Part Number - IPMIFruSection: Product - BuildDate: - IPMIFruProperty: Mfg Date - IPMIFruSection: Product - Model: - IPMIFruProperty: Model Number - IPMIFruSection: Product - xyz.openbmc_project.Inventory.Decorator.Revision: - Version: - IPMIFruProperty: Version - 131: /system/chassis/motherboard/dimm101: - entityID: 32 + <<: *DIMM_DEFAULTS entityInstance: 110 - interfaces: - xyz.openbmc_project.Inventory.Item: - PrettyName: - IPMIFruProperty: Name - IPMIFruSection: Product - xyz.openbmc_project.Inventory.Decorator.Asset: - SerialNumber: - IPMIFruProperty: Serial Number - IPMIFruSection: Product - Manufacturer: - IPMIFruProperty: Manufacturer - IPMIFruSection: Product - PartNumber: - IPMIFruProperty: Part Number - IPMIFruSection: Product - BuildDate: - IPMIFruProperty: Mfg Date - IPMIFruSection: Product - Model: - IPMIFruProperty: Model Number - IPMIFruSection: Product - xyz.openbmc_project.Inventory.Decorator.Revision: - Version: - IPMIFruProperty: Version - 132: /system/chassis/motherboard/dimm102: - entityID: 32 + <<: *DIMM_DEFAULTS entityInstance: 111 - interfaces: - xyz.openbmc_project.Inventory.Item: - PrettyName: - IPMIFruProperty: Name - IPMIFruSection: Product - xyz.openbmc_project.Inventory.Decorator.Asset: - SerialNumber: - IPMIFruProperty: Serial Number - IPMIFruSection: Product - Manufacturer: - IPMIFruProperty: Manufacturer - IPMIFruSection: Product - PartNumber: - IPMIFruProperty: Part Number - IPMIFruSection: Product - BuildDate: - IPMIFruProperty: Mfg Date - IPMIFruSection: Product - Model: - IPMIFruProperty: Model Number - IPMIFruSection: Product - xyz.openbmc_project.Inventory.Decorator.Revision: - Version: - IPMIFruProperty: Version - 133: /system/chassis/motherboard/dimm103: - entityID: 32 + <<: *DIMM_DEFAULTS entityInstance: 112 - interfaces: - xyz.openbmc_project.Inventory.Item: - PrettyName: - IPMIFruProperty: Name - IPMIFruSection: Product - xyz.openbmc_project.Inventory.Decorator.Asset: - SerialNumber: - IPMIFruProperty: Serial Number - IPMIFruSection: Product - Manufacturer: - IPMIFruProperty: Manufacturer - IPMIFruSection: Product - PartNumber: - IPMIFruProperty: Part Number - IPMIFruSection: Product - BuildDate: - IPMIFruProperty: Mfg Date - IPMIFruSection: Product - Model: - IPMIFruProperty: Model Number - IPMIFruSection: Product - xyz.openbmc_project.Inventory.Decorator.Revision: - Version: - IPMIFruProperty: Version - 134: /system/chassis/motherboard/dimm112: - entityID: 32 + <<: *DIMM_DEFAULTS entityInstance: 113 - interfaces: - xyz.openbmc_project.Inventory.Item: - PrettyName: - IPMIFruProperty: Name - IPMIFruSection: Product - xyz.openbmc_project.Inventory.Decorator.Asset: - SerialNumber: - IPMIFruProperty: Serial Number - IPMIFruSection: Product - Manufacturer: - IPMIFruProperty: Manufacturer - IPMIFruSection: Product - PartNumber: - IPMIFruProperty: Part Number - IPMIFruSection: Product - BuildDate: - IPMIFruProperty: Mfg Date - IPMIFruSection: Product - Model: - IPMIFruProperty: Model Number - IPMIFruSection: Product - xyz.openbmc_project.Inventory.Decorator.Revision: - Version: - IPMIFruProperty: Version - 135: /system/chassis/motherboard/dimm113: - entityID: 32 + <<: *DIMM_DEFAULTS entityInstance: 114 - interfaces: - xyz.openbmc_project.Inventory.Item: - PrettyName: - IPMIFruProperty: Name - IPMIFruSection: Product - xyz.openbmc_project.Inventory.Decorator.Asset: - SerialNumber: - IPMIFruProperty: Serial Number - IPMIFruSection: Product - Manufacturer: - IPMIFruProperty: Manufacturer - IPMIFruSection: Product - PartNumber: - IPMIFruProperty: Part Number - IPMIFruSection: Product - BuildDate: - IPMIFruProperty: Mfg Date - IPMIFruSection: Product - Model: - IPMIFruProperty: Model Number - IPMIFruSection: Product - xyz.openbmc_project.Inventory.Decorator.Revision: - Version: - IPMIFruProperty: Version - 136: /system/chassis/motherboard/dimm114: - entityID: 32 + <<: *DIMM_DEFAULTS entityInstance: 115 - interfaces: - xyz.openbmc_project.Inventory.Item: - PrettyName: - IPMIFruProperty: Name - IPMIFruSection: Product - xyz.openbmc_project.Inventory.Decorator.Asset: - SerialNumber: - IPMIFruProperty: Serial Number - IPMIFruSection: Product - Manufacturer: - IPMIFruProperty: Manufacturer - IPMIFruSection: Product - PartNumber: - IPMIFruProperty: Part Number - IPMIFruSection: Product - BuildDate: - IPMIFruProperty: Mfg Date - IPMIFruSection: Product - Model: - IPMIFruProperty: Model Number - IPMIFruSection: Product - xyz.openbmc_project.Inventory.Decorator.Revision: - Version: - IPMIFruProperty: Version - 137: /system/chassis/motherboard/dimm115: - entityID: 32 + <<: *DIMM_DEFAULTS entityInstance: 116 - interfaces: - xyz.openbmc_project.Inventory.Item: - PrettyName: - IPMIFruProperty: Name - IPMIFruSection: Product - xyz.openbmc_project.Inventory.Decorator.Asset: - SerialNumber: - IPMIFruProperty: Serial Number - IPMIFruSection: Product - Manufacturer: - IPMIFruProperty: Manufacturer - IPMIFruSection: Product - PartNumber: - IPMIFruProperty: Part Number - IPMIFruSection: Product - BuildDate: - IPMIFruProperty: Mfg Date - IPMIFruSection: Product - Model: - IPMIFruProperty: Model Number - IPMIFruSection: Product - xyz.openbmc_project.Inventory.Decorator.Revision: - Version: - IPMIFruProperty: Version - 138: /system/chassis/motherboard/dimm116: - entityID: 32 + <<: *DIMM_DEFAULTS entityInstance: 117 - interfaces: - xyz.openbmc_project.Inventory.Item: - PrettyName: - IPMIFruProperty: Name - IPMIFruSection: Product - xyz.openbmc_project.Inventory.Decorator.Asset: - SerialNumber: - IPMIFruProperty: Serial Number - IPMIFruSection: Product - Manufacturer: - IPMIFruProperty: Manufacturer - IPMIFruSection: Product - PartNumber: - IPMIFruProperty: Part Number - IPMIFruSection: Product - BuildDate: - IPMIFruProperty: Mfg Date - IPMIFruSection: Product - Model: - IPMIFruProperty: Model Number - IPMIFruSection: Product - xyz.openbmc_project.Inventory.Decorator.Revision: - Version: - IPMIFruProperty: Version - 139: - /system/chassis/motherboard/dimm117: - entityID: 32 - entityInstance: 118 - interfaces: - xyz.openbmc_project.Inventory.Item: - PrettyName: - IPMIFruProperty: Name - IPMIFruSection: Product - xyz.openbmc_project.Inventory.Decorator.Asset: - SerialNumber: - IPMIFruProperty: Serial Number - IPMIFruSection: Product - Manufacturer: - IPMIFruProperty: Manufacturer - IPMIFruSection: Product - PartNumber: - IPMIFruProperty: Part Number - IPMIFruSection: Product - BuildDate: - IPMIFruProperty: Mfg Date - IPMIFruSection: Product - Model: - IPMIFruProperty: Model Number - IPMIFruSection: Product - xyz.openbmc_project.Inventory.Decorator.Revision: - Version: - IPMIFruProperty: Version - -140: - /system/chassis/motherboard/dimm118: - entityID: 32 - entityInstance: 119 - interfaces: - xyz.openbmc_project.Inventory.Item: - PrettyName: - IPMIFruProperty: Name - IPMIFruSection: Product - xyz.openbmc_project.Inventory.Decorator.Asset: - SerialNumber: - IPMIFruProperty: Serial Number - IPMIFruSection: Product - Manufacturer: - IPMIFruProperty: Manufacturer - IPMIFruSection: Product - PartNumber: - IPMIFruProperty: Part Number - IPMIFruSection: Product - BuildDate: - IPMIFruProperty: Mfg Date - IPMIFruSection: Product - Model: - IPMIFruProperty: Model Number - IPMIFruSection: Product - xyz.openbmc_project.Inventory.Decorator.Revision: - Version: - IPMIFruProperty: Version - -141: - /system/chassis/motherboard/dimm119: - entityID: 32 - entityInstance: 120 - interfaces: - xyz.openbmc_project.Inventory.Item: - PrettyName: - IPMIFruProperty: Name - IPMIFruSection: Product - xyz.openbmc_project.Inventory.Decorator.Asset: - SerialNumber: - IPMIFruProperty: Serial Number - IPMIFruSection: Product - Manufacturer: - IPMIFruProperty: Manufacturer - IPMIFruSection: Product - PartNumber: - IPMIFruProperty: Part Number - IPMIFruSection: Product - BuildDate: - IPMIFruProperty: Mfg Date - IPMIFruSection: Product - Model: - IPMIFruProperty: Model Number - IPMIFruSection: Product - xyz.openbmc_project.Inventory.Decorator.Revision: - Version: - IPMIFruProperty: Version - -142: - /system/chassis/motherboard/dimm120: - entityID: 32 - entityInstance: 121 - interfaces: - xyz.openbmc_project.Inventory.Item: - PrettyName: - IPMIFruProperty: Name - IPMIFruSection: Product - xyz.openbmc_project.Inventory.Decorator.Asset: - SerialNumber: - IPMIFruProperty: Serial Number - IPMIFruSection: Product - Manufacturer: - IPMIFruProperty: Manufacturer - IPMIFruSection: Product - PartNumber: - IPMIFruProperty: Part Number - IPMIFruSection: Product - BuildDate: - IPMIFruProperty: Mfg Date - IPMIFruSection: Product - Model: - IPMIFruProperty: Model Number - IPMIFruSection: Product - xyz.openbmc_project.Inventory.Decorator.Revision: - Version: - IPMIFruProperty: Version - + /system/chassis/motherboard/dimm117: + <<: *DIMM_DEFAULTS + entityInstance: 118 +140: + /system/chassis/motherboard/dimm118: + <<: *DIMM_DEFAULTS + entityInstance: 119 +141: + /system/chassis/motherboard/dimm119: + <<: *DIMM_DEFAULTS + entityInstance: 120 +142: + /system/chassis/motherboard/dimm120: + <<: *DIMM_DEFAULTS + entityInstance: 121 143: /system/chassis/motherboard/dimm121: - entityID: 32 + <<: *DIMM_DEFAULTS entityInstance: 122 - interfaces: - xyz.openbmc_project.Inventory.Item: - PrettyName: - IPMIFruProperty: Name - IPMIFruSection: Product - xyz.openbmc_project.Inventory.Decorator.Asset: - SerialNumber: - IPMIFruProperty: Serial Number - IPMIFruSection: Product - Manufacturer: - IPMIFruProperty: Manufacturer - IPMIFruSection: Product - PartNumber: - IPMIFruProperty: Part Number - IPMIFruSection: Product - BuildDate: - IPMIFruProperty: Mfg Date - IPMIFruSection: Product - Model: - IPMIFruProperty: Model Number - IPMIFruSection: Product - xyz.openbmc_project.Inventory.Decorator.Revision: - Version: - IPMIFruProperty: Version - 144: /system/chassis/motherboard/dimm122: - entityID: 32 + <<: *DIMM_DEFAULTS entityInstance: 123 - interfaces: - xyz.openbmc_project.Inventory.Item: - PrettyName: - IPMIFruProperty: Name - IPMIFruSection: Product - xyz.openbmc_project.Inventory.Decorator.Asset: - SerialNumber: - IPMIFruProperty: Serial Number - IPMIFruSection: Product - Manufacturer: - IPMIFruProperty: Manufacturer - IPMIFruSection: Product - PartNumber: - IPMIFruProperty: Part Number - IPMIFruSection: Product - BuildDate: - IPMIFruProperty: Mfg Date - IPMIFruSection: Product - Model: - IPMIFruProperty: Model Number - IPMIFruSection: Product - xyz.openbmc_project.Inventory.Decorator.Revision: - Version: - IPMIFruProperty: Version - 145: /system/chassis/motherboard/dimm123: - entityID: 32 + <<: *DIMM_DEFAULTS entityInstance: 124 - interfaces: - xyz.openbmc_project.Inventory.Item: - PrettyName: - IPMIFruProperty: Name - IPMIFruSection: Product - xyz.openbmc_project.Inventory.Decorator.Asset: - SerialNumber: - IPMIFruProperty: Serial Number - IPMIFruSection: Product - Manufacturer: - IPMIFruProperty: Manufacturer - IPMIFruSection: Product - PartNumber: - IPMIFruProperty: Part Number - IPMIFruSection: Product - BuildDate: - IPMIFruProperty: Mfg Date - IPMIFruSection: Product - Model: - IPMIFruProperty: Model Number - IPMIFruSection: Product - xyz.openbmc_project.Inventory.Decorator.Revision: - Version: - IPMIFruProperty: Version - 146: /system/chassis/motherboard/dimm124: - entityID: 32 + <<: *DIMM_DEFAULTS entityInstance: 125 - interfaces: - xyz.openbmc_project.Inventory.Item: - PrettyName: - IPMIFruProperty: Name - IPMIFruSection: Product - xyz.openbmc_project.Inventory.Decorator.Asset: - SerialNumber: - IPMIFruProperty: Serial Number - IPMIFruSection: Product - Manufacturer: - IPMIFruProperty: Manufacturer - IPMIFruSection: Product - PartNumber: - IPMIFruProperty: Part Number - IPMIFruSection: Product - BuildDate: - IPMIFruProperty: Mfg Date - IPMIFruSection: Product - Model: - IPMIFruProperty: Model Number - IPMIFruSection: Product - xyz.openbmc_project.Inventory.Decorator.Revision: - Version: - IPMIFruProperty: Version - 147: /system/chassis/motherboard/dimm125: - entityID: 32 + <<: *DIMM_DEFAULTS entityInstance: 126 - interfaces: - xyz.openbmc_project.Inventory.Item: - PrettyName: - IPMIFruProperty: Name - IPMIFruSection: Product - xyz.openbmc_project.Inventory.Decorator.Asset: - SerialNumber: - IPMIFruProperty: Serial Number - IPMIFruSection: Product - Manufacturer: - IPMIFruProperty: Manufacturer - IPMIFruSection: Product - PartNumber: - IPMIFruProperty: Part Number - IPMIFruSection: Product - BuildDate: - IPMIFruProperty: Mfg Date - IPMIFruSection: Product - Model: - IPMIFruProperty: Model Number - IPMIFruSection: Product - xyz.openbmc_project.Inventory.Decorator.Revision: - Version: - IPMIFruProperty: Version - 148: /system/chassis/motherboard/dimm126: - entityID: 32 + <<: *DIMM_DEFAULTS entityInstance: 127 - interfaces: - xyz.openbmc_project.Inventory.Item: - PrettyName: - IPMIFruProperty: Name - IPMIFruSection: Product - xyz.openbmc_project.Inventory.Decorator.Asset: - SerialNumber: - IPMIFruProperty: Serial Number - IPMIFruSection: Product - Manufacturer: - IPMIFruProperty: Manufacturer - IPMIFruSection: Product - PartNumber: - IPMIFruProperty: Part Number - IPMIFruSection: Product - BuildDate: - IPMIFruProperty: Mfg Date - IPMIFruSection: Product - Model: - IPMIFruProperty: Model Number - IPMIFruSection: Product - xyz.openbmc_project.Inventory.Decorator.Revision: - Version: - IPMIFruProperty: Version - 149: /system/chassis/motherboard/dimm127: - entityID: 32 + <<: *DIMM_DEFAULTS entityInstance: 128 - interfaces: - xyz.openbmc_project.Inventory.Item: - PrettyName: - IPMIFruProperty: Name - IPMIFruSection: Product - xyz.openbmc_project.Inventory.Decorator.Asset: - SerialNumber: - IPMIFruProperty: Serial Number - IPMIFruSection: Product - Manufacturer: - IPMIFruProperty: Manufacturer - IPMIFruSection: Product - PartNumber: - IPMIFruProperty: Part Number - IPMIFruSection: Product - BuildDate: - IPMIFruProperty: Mfg Date - IPMIFruSection: Product - Model: - IPMIFruProperty: Model Number - IPMIFruSection: Product - xyz.openbmc_project.Inventory.Decorator.Revision: - Version: - IPMIFruProperty: Version 150: /system/chassis/motherboard/powersupply0: @@ -4303,7 +809,7 @@ IPMIFruSection: MultiRecord 152: - /system/chassis/motherboard/fan0: + /system/chassis/motherboard/fan0: &FAN_DEFAULTS entityID: 29 entityInstance: 0 interfaces: @@ -4324,83 +830,23 @@ 153: /system/chassis/motherboard/fan1: - entityID: 29 + <<: *FAN_DEFAULTS entityInstance: 1 - interfaces: - xyz.openbmc_project.Inventory.Item: - PrettyName: - IPMIFruProperty: Name - IPMIFruSection: Product - xyz.openbmc_project.Inventory.Decorator.Asset: - Manufacturer: - IPMIFruProperty: Manufacturer - IPMIFruSection: Product - PartNumber: - IPMIFruProperty: Model Number - IPMIFruSection: Product - Model: - IPMIFruProperty: Model Number - IPMIFruSection: Product 154: /system/chassis/motherboard/fan2: - entityID: 29 + <<: *FAN_DEFAULTS entityInstance: 2 - interfaces: - xyz.openbmc_project.Inventory.Item: - PrettyName: - IPMIFruProperty: Name - IPMIFruSection: Product - xyz.openbmc_project.Inventory.Decorator.Asset: - Manufacturer: - IPMIFruProperty: Manufacturer - IPMIFruSection: Product - PartNumber: - IPMIFruProperty: Model Number - IPMIFruSection: Product - Model: - IPMIFruProperty: Model Number - IPMIFruSection: Product 155: /system/chassis/motherboard/fan3: - entityID: 29 + <<: *FAN_DEFAULTS entityInstance: 3 - interfaces: - xyz.openbmc_project.Inventory.Item: - PrettyName: - IPMIFruProperty: Name - IPMIFruSection: Product - xyz.openbmc_project.Inventory.Decorator.Asset: - Manufacturer: - IPMIFruProperty: Manufacturer - IPMIFruSection: Product - PartNumber: - IPMIFruProperty: Model Number - IPMIFruSection: Product - Model: - IPMIFruProperty: Model Number - IPMIFruSection: Product 156: /system/chassis/motherboard/fan4: - entityID: 29 + <<: *FAN_DEFAULTS entityInstance: 4 - interfaces: - xyz.openbmc_project.Inventory.Item: - PrettyName: - IPMIFruProperty: Name - IPMIFruSection: Product - xyz.openbmc_project.Inventory.Decorator.Asset: - Manufacturer: - IPMIFruProperty: Manufacturer - IPMIFruSection: Product - PartNumber: - IPMIFruProperty: Model Number - IPMIFruSection: Product - Model: - IPMIFruProperty: Model Number - IPMIFruSection: Product 254: /system/chassis/motherboard/opfw: diff --git a/Contrib-Inspur/openbmc/meta-yadro/meta-vesnin/recipes-phosphor/leds/vesnin-led-manager-config-native.bb b/Contrib-Inspur/openbmc/meta-yadro/meta-vesnin/recipes-phosphor/leds/vesnin-led-manager-config-native.bb index 51a2f0b0..c1030106 100644 --- a/Contrib-Inspur/openbmc/meta-yadro/meta-vesnin/recipes-phosphor/leds/vesnin-led-manager-config-native.bb +++ b/Contrib-Inspur/openbmc/meta-yadro/meta-vesnin/recipes-phosphor/leds/vesnin-led-manager-config-native.bb @@ -1,7 +1,7 @@ SUMMARY = "Phosphor LED Group Management for Vesnin" PR = "r1" LICENSE = "Apache-2.0" -LIC_FILES_CHKSUM = "file://${YADROBASE}/COPYING.apache-2.0;md5=34400b68072d710fecd0a2940a0d1658" +LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10" inherit native inherit obmc-phosphor-utils diff --git a/Contrib-Inspur/openbmc/meta-yadro/meta-vesnin/recipes-phosphor/leds/vesnin-led-manager-config/led.yaml b/Contrib-Inspur/openbmc/meta-yadro/meta-vesnin/recipes-phosphor/leds/vesnin-led-manager-config/led.yaml index 3330e25e..3dfc4619 100644 --- a/Contrib-Inspur/openbmc/meta-yadro/meta-vesnin/recipes-phosphor/leds/vesnin-led-manager-config/led.yaml +++ b/Contrib-Inspur/openbmc/meta-yadro/meta-vesnin/recipes-phosphor/leds/vesnin-led-manager-config/led.yaml @@ -7,6 +7,9 @@ BmcBooted: Action: 'On' Priority: 'Blink' PowerOn: + power_green: + Action: 'On' + Priority: 'On' PgoodTimeout: power_red: Action: 'On' diff --git a/Contrib-Inspur/openbmc/meta-yadro/meta-vesnin/recipes-phosphor/occ/vesnin-openpower-occ-control-config-native.bb b/Contrib-Inspur/openbmc/meta-yadro/meta-vesnin/recipes-phosphor/occ/vesnin-openpower-occ-control-config-native.bb index 2db6c366..71ce60ce 100644 --- a/Contrib-Inspur/openbmc/meta-yadro/meta-vesnin/recipes-phosphor/occ/vesnin-openpower-occ-control-config-native.bb +++ b/Contrib-Inspur/openbmc/meta-yadro/meta-vesnin/recipes-phosphor/occ/vesnin-openpower-occ-control-config-native.bb @@ -1,7 +1,7 @@ SUMMARY = "Vesnin OCC Control sensor IDs" PR = "r1" LICENSE = "Apache-2.0" -LIC_FILES_CHKSUM = "file://${YADROBASE}/COPYING.apache-2.0;md5=34400b68072d710fecd0a2940a0d1658" +LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10" inherit native inherit openpower-occ-control diff --git a/Contrib-Inspur/openbmc/poky/README.LSB b/Contrib-Inspur/openbmc/poky/README.LSB deleted file mode 100644 index f68d07c9..00000000 --- a/Contrib-Inspur/openbmc/poky/README.LSB +++ /dev/null @@ -1,26 +0,0 @@ -OE-Core aims to be able to provide basic LSB compatible images. There -are some challenges for OE as LSB isn't always 100% relevant to its -target embedded and IoT audiences. - -One challenge is that the LSB spec is no longer being actively -developed [https://github.com/LinuxStandardBase/lsb] and has -components which are end of life or significantly dated. OE -therefore provides compatibility with the following caveats: - -* Qt4 is provided by the separate meta-qt4 layer. Its noted that Qt4 - is end of life and this isn't something the core project regularly - tests any longer. Users are recommended to group together to support - maintenance of that layer. [http://git.yoctoproject.org/cgit/cgit.cgi/meta-qt4/] - -* mailx has been dropped since its no longer being developed upstream - and there are better, more modern replacements such as s-nail - (http://sdaoden.eu/code.html) or mailutils (http://mailutils.org/). - -* A few perl modules that were required by LSB 4.x aren't provided: - libclass-isa, libenv, libdumpvalue, libfile-checktree, - libi18n-collate, libpod-plainer. - -* libpng 1.2 isn't provided; oe-core includes the latest release of libpng - instead. - -* pax (POSIX standard archive) tool is not provided. diff --git a/Contrib-Inspur/openbmc/poky/bitbake/bin/bitbake b/Contrib-Inspur/openbmc/poky/bitbake/bin/bitbake index b219d362..66d08f81 100755 --- a/Contrib-Inspur/openbmc/poky/bitbake/bin/bitbake +++ b/Contrib-Inspur/openbmc/poky/bitbake/bin/bitbake @@ -26,7 +26,7 @@ from bb.main import bitbake_main, BitBakeConfigParameters, BBMainException if sys.getfilesystemencoding() != "utf-8": sys.exit("Please use a locale setting which supports UTF-8 (such as LANG=en_US.UTF-8).\nPython can't change the filesystem locale after loading so we need a UTF-8 when Python starts or things won't work.") -__version__ = "1.43.0" +__version__ = "1.44.0" if __name__ == "__main__": if __version__ != bb.__version__: diff --git a/Contrib-Inspur/openbmc/poky/bitbake/bin/bitbake-hashclient b/Contrib-Inspur/openbmc/poky/bitbake/bin/bitbake-hashclient new file mode 100755 index 00000000..29ab65f1 --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/bitbake/bin/bitbake-hashclient @@ -0,0 +1,170 @@ +#! /usr/bin/env python3 +# +# Copyright (C) 2019 Garmin Ltd. +# +# SPDX-License-Identifier: GPL-2.0-only +# + +import argparse +import hashlib +import logging +import os +import pprint +import sys +import threading +import time + +try: + import tqdm + ProgressBar = tqdm.tqdm +except ImportError: + class ProgressBar(object): + def __init__(self, *args, **kwargs): + pass + + def __enter__(self): + return self + + def __exit__(self, *args, **kwargs): + pass + + def update(self): + pass + +sys.path.insert(0, os.path.join(os.path.dirname(os.path.dirname(__file__)), 'lib')) + +import hashserv + +DEFAULT_ADDRESS = 'unix://./hashserve.sock' +METHOD = 'stress.test.method' + + +def main(): + def handle_stats(args, client): + if args.reset: + s = client.reset_stats() + else: + s = client.get_stats() + pprint.pprint(s) + return 0 + + def handle_stress(args, client): + def thread_main(pbar, lock): + nonlocal found_hashes + nonlocal missed_hashes + nonlocal max_time + + client = hashserv.create_client(args.address) + + for i in range(args.requests): + taskhash = hashlib.sha256() + taskhash.update(args.taskhash_seed.encode('utf-8')) + taskhash.update(str(i).encode('utf-8')) + + start_time = time.perf_counter() + l = client.get_unihash(METHOD, taskhash.hexdigest()) + elapsed = time.perf_counter() - start_time + + with lock: + if l: + found_hashes += 1 + else: + missed_hashes += 1 + + max_time = max(elapsed, max_time) + pbar.update() + + max_time = 0 + found_hashes = 0 + missed_hashes = 0 + lock = threading.Lock() + total_requests = args.clients * args.requests + start_time = time.perf_counter() + with ProgressBar(total=total_requests) as pbar: + threads = [threading.Thread(target=thread_main, args=(pbar, lock), daemon=False) for _ in range(args.clients)] + for t in threads: + t.start() + + for t in threads: + t.join() + + elapsed = time.perf_counter() - start_time + with lock: + print("%d requests in %.1fs. %.1f requests per second" % (total_requests, elapsed, total_requests / elapsed)) + print("Average request time %.8fs" % (elapsed / total_requests)) + print("Max request time was %.8fs" % max_time) + print("Found %d hashes, missed %d" % (found_hashes, missed_hashes)) + + if args.report: + with ProgressBar(total=args.requests) as pbar: + for i in range(args.requests): + taskhash = hashlib.sha256() + taskhash.update(args.taskhash_seed.encode('utf-8')) + taskhash.update(str(i).encode('utf-8')) + + outhash = hashlib.sha256() + outhash.update(args.outhash_seed.encode('utf-8')) + outhash.update(str(i).encode('utf-8')) + + client.report_unihash(taskhash.hexdigest(), METHOD, outhash.hexdigest(), taskhash.hexdigest()) + + with lock: + pbar.update() + + parser = argparse.ArgumentParser(description='Hash Equivalence Client') + parser.add_argument('--address', default=DEFAULT_ADDRESS, help='Server address (default "%(default)s")') + parser.add_argument('--log', default='WARNING', help='Set logging level') + + subparsers = parser.add_subparsers() + + stats_parser = subparsers.add_parser('stats', help='Show server stats') + stats_parser.add_argument('--reset', action='store_true', + help='Reset server stats') + stats_parser.set_defaults(func=handle_stats) + + stress_parser = subparsers.add_parser('stress', help='Run stress test') + stress_parser.add_argument('--clients', type=int, default=10, + help='Number of simultaneous clients') + stress_parser.add_argument('--requests', type=int, default=1000, + help='Number of requests each client will perform') + stress_parser.add_argument('--report', action='store_true', + help='Report new hashes') + stress_parser.add_argument('--taskhash-seed', default='', + help='Include string in taskhash') + stress_parser.add_argument('--outhash-seed', default='', + help='Include string in outhash') + stress_parser.set_defaults(func=handle_stress) + + args = parser.parse_args() + + logger = logging.getLogger('hashserv') + + level = getattr(logging, args.log.upper(), None) + if not isinstance(level, int): + raise ValueError('Invalid log level: %s' % args.log) + + logger.setLevel(level) + console = logging.StreamHandler() + console.setLevel(level) + logger.addHandler(console) + + func = getattr(args, 'func', None) + if func: + client = hashserv.create_client(args.address) + # Try to establish a connection to the server now to detect failures + # early + client.connect() + + return func(args, client) + + return 0 + + +if __name__ == '__main__': + try: + ret = main() + except Exception: + ret = 1 + import traceback + traceback.print_exc() + sys.exit(ret) diff --git a/Contrib-Inspur/openbmc/poky/bitbake/bin/bitbake-hashserv b/Contrib-Inspur/openbmc/poky/bitbake/bin/bitbake-hashserv index 848a0ca3..1bc1f91f 100755 --- a/Contrib-Inspur/openbmc/poky/bitbake/bin/bitbake-hashserv +++ b/Contrib-Inspur/openbmc/poky/bitbake/bin/bitbake-hashserv @@ -11,20 +11,26 @@ import logging import argparse import sqlite3 -sys.path.insert(0, os.path.join(os.path.dirname(os.path.dirname(__file__)),'lib')) +sys.path.insert(0, os.path.join(os.path.dirname(os.path.dirname(__file__)), 'lib')) import hashserv VERSION = "1.0.0" -DEFAULT_HOST = '' -DEFAULT_PORT = 8686 +DEFAULT_BIND = 'unix://./hashserve.sock' + def main(): - parser = argparse.ArgumentParser(description='HTTP Equivalence Reference Server. Version=%s' % VERSION) - parser.add_argument('--address', default=DEFAULT_HOST, help='Bind address (default "%(default)s")') - parser.add_argument('--port', type=int, default=DEFAULT_PORT, help='Bind port (default %(default)d)') - parser.add_argument('--prefix', default='', help='HTTP path prefix (default "%(default)s")') + parser = argparse.ArgumentParser(description='Hash Equivalence Reference Server. Version=%s' % VERSION, + epilog='''The bind address is the path to a unix domain socket if it is + prefixed with "unix://". Otherwise, it is an IP address + and port in form ADDRESS:PORT. To bind to all addresses, leave + the ADDRESS empty, e.g. "--bind :8686". To bind to a specific + IPv6 address, enclose the address in "[]", e.g. + "--bind [::1]:8686"''' + ) + + parser.add_argument('--bind', default=DEFAULT_BIND, help='Bind address (default "%(default)s")') parser.add_argument('--database', default='./hashserv.db', help='Database file (default "%(default)s")') parser.add_argument('--log', default='WARNING', help='Set logging level') @@ -41,12 +47,11 @@ def main(): console.setLevel(level) logger.addHandler(console) - db = sqlite3.connect(args.database) - - server = hashserv.create_server((args.address, args.port), db, args.prefix) + server = hashserv.create_server(args.bind, args.database) server.serve_forever() return 0 + if __name__ == '__main__': try: ret = main() @@ -55,4 +60,3 @@ if __name__ == '__main__': import traceback traceback.print_exc() sys.exit(ret) - diff --git a/Contrib-Inspur/openbmc/poky/bitbake/bin/bitbake-selftest b/Contrib-Inspur/openbmc/poky/bitbake/bin/bitbake-selftest index 20553e98..041a2719 100755 --- a/Contrib-Inspur/openbmc/poky/bitbake/bin/bitbake-selftest +++ b/Contrib-Inspur/openbmc/poky/bitbake/bin/bitbake-selftest @@ -25,6 +25,7 @@ tests = ["bb.tests.codeparser", "bb.tests.fetch", "bb.tests.parse", "bb.tests.persist_data", + "bb.tests.runqueue", "bb.tests.utils", "hashserv.tests", "layerindexlib.tests.layerindexobj", diff --git a/Contrib-Inspur/openbmc/poky/bitbake/bin/bitbake-worker b/Contrib-Inspur/openbmc/poky/bitbake/bin/bitbake-worker index f63f060c..1e641e81 100755 --- a/Contrib-Inspur/openbmc/poky/bitbake/bin/bitbake-worker +++ b/Contrib-Inspur/openbmc/poky/bitbake/bin/bitbake-worker @@ -195,9 +195,6 @@ def fork_off_task(cfg, data, databuilder, workerdata, fn, task, taskname, taskha global worker_pipe_lock pipein.close() - signal.signal(signal.SIGTERM, sigterm_handler) - # Let SIGHUP exit as SIGTERM - signal.signal(signal.SIGHUP, sigterm_handler) bb.utils.signal_on_parent_exit("SIGTERM") # Save out the PID so that the event can include it the @@ -212,6 +209,11 @@ def fork_off_task(cfg, data, databuilder, workerdata, fn, task, taskname, taskha # This ensures signals sent to the controlling terminal like Ctrl+C # don't stop the child processes. os.setsid() + + signal.signal(signal.SIGTERM, sigterm_handler) + # Let SIGHUP exit as SIGTERM + signal.signal(signal.SIGHUP, sigterm_handler) + # No stdin newsi = os.open(os.devnull, os.O_RDWR) os.dup2(newsi, sys.stdin.fileno()) @@ -234,6 +236,8 @@ def fork_off_task(cfg, data, databuilder, workerdata, fn, task, taskname, taskha the_data.setVar(varname, value) bb.parse.siggen.set_taskdata(workerdata["sigdata"]) + if "newhashes" in workerdata: + bb.parse.siggen.set_taskhashes(workerdata["newhashes"]) ret = 0 the_data = bb_cache.loadDataFull(fn, appends) @@ -377,6 +381,7 @@ class BitbakeWorker(object): self.handle_item(b"cookerconfig", self.handle_cookercfg) self.handle_item(b"extraconfigdata", self.handle_extraconfigdata) self.handle_item(b"workerdata", self.handle_workerdata) + self.handle_item(b"newtaskhashes", self.handle_newtaskhashes) self.handle_item(b"runtask", self.handle_runtask) self.handle_item(b"finishnow", self.handle_finishnow) self.handle_item(b"ping", self.handle_ping) @@ -415,6 +420,10 @@ class BitbakeWorker(object): bb.msg.loggerDefaultDomains = self.workerdata["logdefaultdomain"] for mc in self.databuilder.mcdata: self.databuilder.mcdata[mc].setVar("PRSERV_HOST", self.workerdata["prhost"]) + self.databuilder.mcdata[mc].setVar("BB_HASHSERVE", self.workerdata["hashservaddr"]) + + def handle_newtaskhashes(self, data): + self.workerdata["newhashes"] = pickle.loads(data) def handle_ping(self, _): workerlog_write("Handling ping\n") diff --git a/Contrib-Inspur/openbmc/poky/bitbake/contrib/vim/indent/bitbake.vim b/Contrib-Inspur/openbmc/poky/bitbake/contrib/vim/indent/bitbake.vim new file mode 100644 index 00000000..13810340 --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/bitbake/contrib/vim/indent/bitbake.vim @@ -0,0 +1,343 @@ +" Vim indent file +" Language: BitBake +" Copyright: Copyright (C) 2019 Agilent Technologies, Inc. +" Maintainer: Chris Laplante +" License: You may redistribute this under the same terms as Vim itself + + +if exists("b:did_indent") + finish +endif + +if exists("*BitbakeIndent") + finish +endif + +runtime! indent/sh.vim +unlet b:did_indent + +setlocal indentexpr=BitbakeIndent(v:lnum) +setlocal autoindent nolisp + +function s:is_bb_python_func_def(lnum) + let stack = synstack(a:lnum, 1) + if len(stack) == 0 + return 0 + endif + + let top = synIDattr(stack[0], "name") + echo top + + return synIDattr(stack[0], "name") == "bbPyFuncDef" +endfunction + +"""" begin modified from indent/python.vim, upstream commit 7a9bd7c1e0ce1baf5a02daf36eeae3638aa315c7 +"""" This copied code is licensed the same as Vim itself. +setlocal indentkeys+=<:>,=elif,=except + +let s:keepcpo= &cpo +set cpo&vim + +let s:maxoff = 50 " maximum number of lines to look backwards for () + +function GetPythonIndent(lnum) + + " If this line is explicitly joined: If the previous line was also joined, + " line it up with that one, otherwise add two 'shiftwidth' + if getline(a:lnum - 1) =~ '\\$' + if a:lnum > 1 && getline(a:lnum - 2) =~ '\\$' + return indent(a:lnum - 1) + endif + return indent(a:lnum - 1) + (exists("g:pyindent_continue") ? eval(g:pyindent_continue) : (shiftwidth() * 2)) + endif + + " If the start of the line is in a string don't change the indent. + if has('syntax_items') + \ && synIDattr(synID(a:lnum, 1, 1), "name") =~ "String$" + return -1 + endif + + " Search backwards for the previous non-empty line. + let plnum = prevnonblank(v:lnum - 1) + + if plnum == 0 + " This is the first non-empty line, use zero indent. + return 0 + endif + + call cursor(plnum, 1) + + " Identing inside parentheses can be very slow, regardless of the searchpair() + " timeout, so let the user disable this feature if he doesn't need it + let disable_parentheses_indenting = get(g:, "pyindent_disable_parentheses_indenting", 0) + + if disable_parentheses_indenting == 1 + let plindent = indent(plnum) + let plnumstart = plnum + else + " searchpair() can be slow sometimes, limit the time to 150 msec or what is + " put in g:pyindent_searchpair_timeout + let searchpair_stopline = 0 + let searchpair_timeout = get(g:, 'pyindent_searchpair_timeout', 150) + + " If the previous line is inside parenthesis, use the indent of the starting + " line. + " Trick: use the non-existing "dummy" variable to break out of the loop when + " going too far back. + let parlnum = searchpair('(\|{\|\[', '', ')\|}\|\]', 'nbW', + \ "line('.') < " . (plnum - s:maxoff) . " ? dummy :" + \ . " synIDattr(synID(line('.'), col('.'), 1), 'name')" + \ . " =~ '\\(Comment\\|Todo\\|String\\)$'", + \ searchpair_stopline, searchpair_timeout) + if parlnum > 0 + " We may have found the opening brace of a BitBake Python task, e.g. 'python do_task {' + " If so, ignore it here - it will be handled later. + if s:is_bb_python_func_def(parlnum) + let parlnum = 0 + let plindent = indent(plnum) + let plnumstart = plnum + else + let plindent = indent(parlnum) + let plnumstart = parlnum + endif + else + let plindent = indent(plnum) + let plnumstart = plnum + endif + + " When inside parenthesis: If at the first line below the parenthesis add + " two 'shiftwidth', otherwise same as previous line. + " i = (a + " + b + " + c) + call cursor(a:lnum, 1) + let p = searchpair('(\|{\|\[', '', ')\|}\|\]', 'bW', + \ "line('.') < " . (a:lnum - s:maxoff) . " ? dummy :" + \ . " synIDattr(synID(line('.'), col('.'), 1), 'name')" + \ . " =~ '\\(Comment\\|Todo\\|String\\)$'", + \ searchpair_stopline, searchpair_timeout) + if p > 0 + if s:is_bb_python_func_def(p) + " Handle first non-empty line inside a BB Python task + if p == plnum + return shiftwidth() + endif + + " Handle the user actually trying to close a BitBake Python task + let line = getline(a:lnum) + if line =~ '^\s*}' + return -2 + endif + + " Otherwise ignore the brace + let p = 0 + else + if p == plnum + " When the start is inside parenthesis, only indent one 'shiftwidth'. + let pp = searchpair('(\|{\|\[', '', ')\|}\|\]', 'bW', + \ "line('.') < " . (a:lnum - s:maxoff) . " ? dummy :" + \ . " synIDattr(synID(line('.'), col('.'), 1), 'name')" + \ . " =~ '\\(Comment\\|Todo\\|String\\)$'", + \ searchpair_stopline, searchpair_timeout) + if pp > 0 + return indent(plnum) + (exists("g:pyindent_nested_paren") ? eval(g:pyindent_nested_paren) : shiftwidth()) + endif + return indent(plnum) + (exists("g:pyindent_open_paren") ? eval(g:pyindent_open_paren) : (shiftwidth() * 2)) + endif + if plnumstart == p + return indent(plnum) + endif + return plindent + endif + endif + + endif + + + " Get the line and remove a trailing comment. + " Use syntax highlighting attributes when possible. + let pline = getline(plnum) + let pline_len = strlen(pline) + if has('syntax_items') + " If the last character in the line is a comment, do a binary search for + " the start of the comment. synID() is slow, a linear search would take + " too long on a long line. + if synIDattr(synID(plnum, pline_len, 1), "name") =~ "\\(Comment\\|Todo\\)$" + let min = 1 + let max = pline_len + while min < max + let col = (min + max) / 2 + if synIDattr(synID(plnum, col, 1), "name") =~ "\\(Comment\\|Todo\\)$" + let max = col + else + let min = col + 1 + endif + endwhile + let pline = strpart(pline, 0, min - 1) + endif + else + let col = 0 + while col < pline_len + if pline[col] == '#' + let pline = strpart(pline, 0, col) + break + endif + let col = col + 1 + endwhile + endif + + " If the previous line ended with a colon, indent this line + if pline =~ ':\s*$' + return plindent + shiftwidth() + endif + + " If the previous line was a stop-execution statement... + " TODO: utilize this logic to deindent when ending a bbPyDefRegion + if getline(plnum) =~ '^\s*\(break\|continue\|raise\|return\|pass\|bb\.fatal\)\>' + " See if the user has already dedented + if indent(a:lnum) > indent(plnum) - shiftwidth() + " If not, recommend one dedent + return indent(plnum) - shiftwidth() + endif + " Otherwise, trust the user + return -1 + endif + + " If the current line begins with a keyword that lines up with "try" + if getline(a:lnum) =~ '^\s*\(except\|finally\)\>' + let lnum = a:lnum - 1 + while lnum >= 1 + if getline(lnum) =~ '^\s*\(try\|except\)\>' + let ind = indent(lnum) + if ind >= indent(a:lnum) + return -1 " indent is already less than this + endif + return ind " line up with previous try or except + endif + let lnum = lnum - 1 + endwhile + return -1 " no matching "try"! + endif + + " If the current line begins with a header keyword, dedent + if getline(a:lnum) =~ '^\s*\(elif\|else\)\>' + + " Unless the previous line was a one-liner + if getline(plnumstart) =~ '^\s*\(for\|if\|try\)\>' + return plindent + endif + + " Or the user has already dedented + if indent(a:lnum) <= plindent - shiftwidth() + return -1 + endif + + return plindent - shiftwidth() + endif + + " When after a () construct we probably want to go back to the start line. + " a = (b + " + c) + " here + if parlnum > 0 + return plindent + endif + + return -1 + +endfunction + +let &cpo = s:keepcpo +unlet s:keepcpo + +""" end of stuff from indent/python.vim + + +let b:did_indent = 1 +setlocal indentkeys+=0\" + + +function BitbakeIndent(lnum) + if !has('syntax_items') + return -1 + endif + + let stack = synstack(a:lnum, 1) + if len(stack) == 0 + return -1 + endif + + let name = synIDattr(stack[0], "name") + + " TODO: support different styles of indentation for assignments. For now, + " we only support like this: + " VAR = " \ + " value1 \ + " value2 \ + " " + " + " i.e. each value indented by shiftwidth(), with the final quote " completely unindented. + if name == "bbVarValue" + " Quote handling is tricky. kernel.bbclass has this line for instance: + " EXTRA_OEMAKE = " HOSTCC="${BUILD_CC} ${BUILD_CFLAGS} ${BUILD_LDFLAGS}" " HOSTCPP="${BUILD_CPP}"" + " Instead of trying to handle crazy cases like that, just assume that a + " double-quote on a line by itself (following an assignment) means the + " user is closing the assignment, and de-dent. + if getline(a:lnum) =~ '^\s*"$' + return 0 + endif + + let prevstack = synstack(a:lnum - 1, 1) + if len(prevstack) == 0 + return -1 + endif + + let prevname = synIDattr(prevstack[0], "name") + + " Only indent if there was actually a continuation character on + " the previous line, to avoid misleading indentation. + let prevlinelastchar = synIDattr(synID(a:lnum - 1, col([a:lnum - 1, "$"]) - 1, 1), "name") + let prev_continued = prevlinelastchar == "bbContinue" + + " Did the previous line introduce an assignment? + if index(["bbVarDef", "bbVarFlagDef"], prevname) != -1 + if prev_continued + return shiftwidth() + endif + endif + + if !prev_continued + return 0 + endif + + " Autoindent can take it from here + return -1 + endif + + if index(["bbPyDefRegion", "bbPyFuncRegion"], name) != -1 + let ret = GetPythonIndent(a:lnum) + " Should normally always be indented by at least one shiftwidth; but allow + " return of -1 (defer to autoindent) or -2 (force indent to 0) + if ret == 0 + return shiftwidth() + elseif ret == -2 + return 0 + endif + return ret + endif + + " TODO: GetShIndent doesn't detect tasks prepended with 'fakeroot' + " Need to submit a patch upstream to Vim to provide an extension point. + " Unlike the Python indenter, the Sh indenter is way too large to copy and + " modify here. + if name == "bbShFuncRegion" + return GetShIndent() + endif + + " TODO: + " + heuristics for de-denting out of a bbPyDefRegion? e.g. when the user + " types an obvious BB keyword like addhandler or addtask, or starts + " writing a shell task. Maybe too hard to implement... + + return -1 +endfunction diff --git a/Contrib-Inspur/openbmc/poky/bitbake/doc/bitbake-user-manual/bitbake-user-manual-intro.xml b/Contrib-Inspur/openbmc/poky/bitbake/doc/bitbake-user-manual/bitbake-user-manual-intro.xml index 02058a6f..8f2a960c 100644 --- a/Contrib-Inspur/openbmc/poky/bitbake/doc/bitbake-user-manual/bitbake-user-manual-intro.xml +++ b/Contrib-Inspur/openbmc/poky/bitbake/doc/bitbake-user-manual/bitbake-user-manual-intro.xml @@ -791,7 +791,7 @@ The following statement in the local.conf file both enables BitBake to perform multiple configuration builds and - specifies the two multiconfigs: + specifies the two extra multiconfigs: BBMULTICONFIG = "target1 target2" @@ -803,13 +803,13 @@ builds, use the following command form to start the builds: - $ bitbake [multiconfig:multiconfigname:]target [[[multiconfig:multiconfigname:]target] ... ] + $ bitbake [mc:multiconfigname:]target [[[mc:multiconfigname:]target] ... ] - Here is an example for two multiconfigs: + Here is an example for two extra multiconfigs: target1 and target2: - $ bitbake multiconfig:target1:target multiconfig:target2:target + $ bitbake mc::target mc:target1:target mc:target2:target @@ -837,13 +837,13 @@ build, you must declare the dependencies in the recipe using the following statement form: - task_or_package[mcdepends] = "multiconfig:from_multiconfig:to_multiconfig:recipe_name:task_on_which_to_depend" + task_or_package[mcdepends] = "mc:from_multiconfig:to_multiconfig:recipe_name:task_on_which_to_depend" To better show how to use this statement, consider an example with two multiconfigs: target1 and target2: - image_task[mcdepends] = "multiconfig:target1:target2:image2:rootfs_task" + image_task[mcdepends] = "mc:target1:target2:image2:rootfs_task" In this example, the from_multiconfig is "target1" and @@ -859,7 +859,7 @@ Once you set up this dependency, you can build the "target1" multiconfig using a BitBake command as follows: - $ bitbake multiconfig:target1:image1 + $ bitbake mc:target1:image1 This command executes all the tasks needed to create image1 for the "target1" @@ -875,7 +875,7 @@ Consider this change to the statement in the image1 recipe: - image_task[mcdepends] = "multiconfig:target1:target2:image2:image_task" + image_task[mcdepends] = "mc:target1:target2:image2:image_task" In this case, BitBake must create image2 for the "target2" diff --git a/Contrib-Inspur/openbmc/poky/bitbake/doc/bitbake-user-manual/bitbake-user-manual-metadata.xml b/Contrib-Inspur/openbmc/poky/bitbake/doc/bitbake-user-manual/bitbake-user-manual-metadata.xml index a125ad33..421364c2 100644 --- a/Contrib-Inspur/openbmc/poky/bitbake/doc/bitbake-user-manual/bitbake-user-manual-metadata.xml +++ b/Contrib-Inspur/openbmc/poky/bitbake/doc/bitbake-user-manual/bitbake-user-manual-metadata.xml @@ -369,9 +369,8 @@ These operators differ from the ":=", ".=", "=.", "+=", and "=+" - operators in that their effects are deferred - until after parsing completes rather than being immediately - applied. + operators in that their effects are applied at variable + expansion time rather than being immediately applied. Here are some examples: B = "bval" @@ -420,18 +419,22 @@ FOO = "123 456 789 123456 123 456 123 456" FOO_remove = "123" FOO_remove = "456" - FOO2 = "abc def ghi abcdef abc def abc def" - FOO2_remove = "abc def" + FOO2 = " abc def ghi abcdef abc def abc def def" + FOO2_remove = " \ + def \ + abc \ + ghi \ + " The variable FOO becomes - "  789 123456    " + "  789 123456    " and FOO2 becomes - "  ghi abcdef    ". + "     jkl  abcdef      ". Like "_append" and "_prepend", "_remove" - is deferred until after parsing completes. + is applied at variable expansion time. @@ -796,17 +799,15 @@ Key Expansion - Key expansion happens when the BitBake datastore is finalized - just before BitBake expands overrides. + Key expansion happens when the BitBake datastore is finalized. To better understand this, consider the following example: A${B} = "X" B = "2" A2 = "Y" - In this case, after all the parsing is complete, and - before any overrides are handled, BitBake expands - ${B} into "2". + In this case, after all the parsing is complete, + BitBake expands ${B} into "2". This expansion causes A2, which was set to "Y" before the expansion, to become "X". diff --git a/Contrib-Inspur/openbmc/poky/bitbake/lib/bb/__init__.py b/Contrib-Inspur/openbmc/poky/bitbake/lib/bb/__init__.py index 7579a893..c144311b 100644 --- a/Contrib-Inspur/openbmc/poky/bitbake/lib/bb/__init__.py +++ b/Contrib-Inspur/openbmc/poky/bitbake/lib/bb/__init__.py @@ -9,7 +9,7 @@ # SPDX-License-Identifier: GPL-2.0-only # -__version__ = "1.43.0" +__version__ = "1.44.0" import sys if sys.version_info < (3, 4, 0): diff --git a/Contrib-Inspur/openbmc/poky/bitbake/lib/bb/build.py b/Contrib-Inspur/openbmc/poky/bitbake/lib/bb/build.py index e2f91fa3..30a2ba23 100644 --- a/Contrib-Inspur/openbmc/poky/bitbake/lib/bb/build.py +++ b/Contrib-Inspur/openbmc/poky/bitbake/lib/bb/build.py @@ -54,23 +54,6 @@ def reset_cache(): builtins['bb'] = bb builtins['os'] = os -class FuncFailed(Exception): - def __init__(self, name = None, logfile = None): - self.logfile = logfile - self.name = name - if name: - self.msg = 'Function failed: %s' % name - else: - self.msg = "Function failed" - - def __str__(self): - if self.logfile and os.path.exists(self.logfile): - msg = ("%s (log file is located at %s)" % - (self.msg, self.logfile)) - else: - msg = self.msg - return msg - class TaskBase(event.Event): """Base class for task events""" @@ -189,12 +172,7 @@ def name(self): return sys.stdout.name -# -# pythonexception allows the python exceptions generated to be raised -# as the real exceptions (not FuncFailed) and without a backtrace at the -# origin of the failure. -# -def exec_func(func, d, dirs = None, pythonexception=False): +def exec_func(func, d, dirs = None): """Execute a BB 'function'""" try: @@ -266,7 +244,7 @@ def exec_func(func, d, dirs = None, pythonexception=False): with bb.utils.fileslocked(lockfiles): if ispython: - exec_func_python(func, d, runfile, cwd=adir, pythonexception=pythonexception) + exec_func_python(func, d, runfile, cwd=adir) else: exec_func_shell(func, d, runfile, cwd=adir) @@ -286,7 +264,7 @@ def exec_func(func, d, dirs = None, pythonexception=False): {function}(d) """ logformatter = bb.msg.BBLogFormatter("%(levelname)s: %(message)s") -def exec_func_python(func, d, runfile, cwd=None, pythonexception=False): +def exec_func_python(func, d, runfile, cwd=None): """Execute a python BB 'function'""" code = _functionfmt.format(function=func) @@ -311,14 +289,7 @@ def exec_func_python(func, d, runfile, cwd=None, pythonexception=False): bb.methodpool.insert_method(func, text, fn, lineno - 1) comp = utils.better_compile(code, func, "exec_python_func() autogenerated") - utils.better_exec(comp, {"d": d}, code, "exec_python_func() autogenerated", pythonexception=pythonexception) - except (bb.parse.SkipRecipe, bb.build.FuncFailed): - raise - except Exception as e: - if pythonexception: - raise - logger.error(str(e)) - raise FuncFailed(func, None) + utils.better_exec(comp, {"d": d}, code, "exec_python_func() autogenerated") finally: bb.debug(2, "Python function %s finished" % func) @@ -475,13 +446,8 @@ def readfifo(data): with open(fifopath, 'r+b', buffering=0) as fifo: try: bb.debug(2, "Executing shell function %s" % func) - - try: - with open(os.devnull, 'r+') as stdin, logfile: - bb.process.run(cmd, shell=False, stdin=stdin, log=logfile, extrafiles=[(fifo,readfifo)]) - except bb.process.CmdError: - logfn = d.getVar('BB_LOGFILE') - raise FuncFailed(func, logfn) + with open(os.devnull, 'r+') as stdin, logfile: + bb.process.run(cmd, shell=False, stdin=stdin, log=logfile, extrafiles=[(fifo,readfifo)]) finally: os.unlink(fifopath) @@ -609,9 +575,6 @@ def emit(self, record): event.fire(TaskStarted(task, logfn, flags, localdata), localdata) except (bb.BBHandledException, SystemExit): return 1 - except FuncFailed as exc: - logger.error(str(exc)) - return 1 try: for func in (prefuncs or '').split(): @@ -619,7 +582,10 @@ def emit(self, record): exec_func(task, localdata) for func in (postfuncs or '').split(): exec_func(func, localdata) - except FuncFailed as exc: + except bb.BBHandledException: + event.fire(TaskFailed(task, logfn, localdata, True), localdata) + return 1 + except Exception as exc: if quieterr: event.fire(TaskFailedSilent(task, logfn, localdata), localdata) else: @@ -627,9 +593,6 @@ def emit(self, record): logger.error(str(exc)) event.fire(TaskFailed(task, logfn, localdata, errprinted), localdata) return 1 - except bb.BBHandledException: - event.fire(TaskFailed(task, logfn, localdata, True), localdata) - return 1 finally: sys.stdout.flush() sys.stderr.flush() diff --git a/Contrib-Inspur/openbmc/poky/bitbake/lib/bb/cache.py b/Contrib-Inspur/openbmc/poky/bitbake/lib/bb/cache.py index 5fb2f17c..b6f7da59 100644 --- a/Contrib-Inspur/openbmc/poky/bitbake/lib/bb/cache.py +++ b/Contrib-Inspur/openbmc/poky/bitbake/lib/bb/cache.py @@ -83,21 +83,21 @@ def __init__(self, filename, metadata): self.appends = self.listvar('__BBAPPEND', metadata) self.nocache = self.getvar('BB_DONT_CACHE', metadata) + self.provides = self.depvar('PROVIDES', metadata) + self.rprovides = self.depvar('RPROVIDES', metadata) + self.pn = self.getvar('PN', metadata) or bb.parse.vars_from_file(filename,metadata)[0] + self.packages = self.listvar('PACKAGES', metadata) + if not self.packages: + self.packages.append(self.pn) + self.packages_dynamic = self.listvar('PACKAGES_DYNAMIC', metadata) + self.skipreason = self.getvar('__SKIPPED', metadata) if self.skipreason: - self.pn = self.getvar('PN', metadata) or bb.parse.vars_from_file(filename,metadata)[0] self.skipped = True - self.provides = self.depvar('PROVIDES', metadata) - self.rprovides = self.depvar('RPROVIDES', metadata) return self.tasks = metadata.getVar('__BBTASKS', False) - self.pn = self.getvar('PN', metadata) - self.packages = self.listvar('PACKAGES', metadata) - if not self.packages: - self.packages.append(self.pn) - self.basetaskhashes = self.taskvar('BB_BASEHASH', self.tasks, metadata) self.hashfilename = self.getvar('BB_HASHFILENAME', metadata) @@ -113,11 +113,8 @@ def __init__(self, filename, metadata): self.stampclean = self.getvar('STAMPCLEAN', metadata) self.stamp_extrainfo = self.flaglist('stamp-extra-info', self.tasks, metadata) self.file_checksums = self.flaglist('file-checksums', self.tasks, metadata, True) - self.packages_dynamic = self.listvar('PACKAGES_DYNAMIC', metadata) self.depends = self.depvar('DEPENDS', metadata) - self.provides = self.depvar('PROVIDES', metadata) self.rdepends = self.depvar('RDEPENDS', metadata) - self.rprovides = self.depvar('RPROVIDES', metadata) self.rrecommends = self.depvar('RRECOMMENDS', metadata) self.rprovides_pkg = self.pkgvar('RPROVIDES', self.packages, metadata) self.rdepends_pkg = self.pkgvar('RDEPENDS', self.packages, metadata) @@ -223,7 +220,7 @@ def add_cacheData(self, cachedata, fn): cachedata.hashfn[fn] = self.hashfilename for task, taskhash in self.basetaskhashes.items(): - identifier = '%s.%s' % (fn, task) + identifier = '%s:%s' % (fn, task) cachedata.basetaskhash[identifier] = taskhash cachedata.inherits[fn] = self.inherits @@ -399,6 +396,15 @@ def __init__(self, databuilder, data_hash, caches_array): else: logger.debug(1, "Cache file %s not found, building..." % self.cachefile) + # We don't use the symlink, its just for debugging convinience + symlink = os.path.join(self.cachedir, "bb_cache.dat") + if os.path.exists(symlink): + bb.utils.remove(symlink) + try: + os.symlink(os.path.basename(self.cachefile), symlink) + except OSError: + pass + def load_cachefile(self): cachesize = 0 previous_progress = 0 @@ -877,3 +883,56 @@ def save_merge(self): p.dump([data, self.__class__.CACHE_VERSION]) bb.utils.unlockfile(glf) + + +class SimpleCache(object): + """ + BitBake multi-process cache implementation + + Used by the codeparser & file checksum caches + """ + + def __init__(self, version): + self.cachefile = None + self.cachedata = None + self.cacheversion = version + + def init_cache(self, d, cache_file_name=None, defaultdata=None): + cachedir = (d.getVar("PERSISTENT_DIR") or + d.getVar("CACHE")) + if not cachedir: + return defaultdata + + bb.utils.mkdirhier(cachedir) + self.cachefile = os.path.join(cachedir, + cache_file_name or self.__class__.cache_file_name) + logger.debug(1, "Using cache in '%s'", self.cachefile) + + glf = bb.utils.lockfile(self.cachefile + ".lock") + + try: + with open(self.cachefile, "rb") as f: + p = pickle.Unpickler(f) + data, version = p.load() + except: + bb.utils.unlockfile(glf) + return defaultdata + + bb.utils.unlockfile(glf) + + if version != self.cacheversion: + return defaultdata + + return data + + def save(self, data): + if not self.cachefile: + return + + glf = bb.utils.lockfile(self.cachefile + ".lock") + + with open(self.cachefile, "wb") as f: + p = pickle.Pickler(f, -1) + p.dump([data, self.cacheversion]) + + bb.utils.unlockfile(glf) diff --git a/Contrib-Inspur/openbmc/poky/bitbake/lib/bb/cooker.py b/Contrib-Inspur/openbmc/poky/bitbake/lib/bb/cooker.py index 0008c2fd..e6442bff 100644 --- a/Contrib-Inspur/openbmc/poky/bitbake/lib/bb/cooker.py +++ b/Contrib-Inspur/openbmc/poky/bitbake/lib/bb/cooker.py @@ -1,4 +1,3 @@ -#!/usr/bin/env python # # Copyright (C) 2003, 2004 Chris Larson # Copyright (C) 2003, 2004 Phil Blundell @@ -32,6 +31,7 @@ import json import pickle import codecs +import hashserv logger = logging.getLogger("BitBake") collectlog = logging.getLogger("BitBake.Collection") @@ -193,6 +193,8 @@ def __init__(self, configuration, featureSet=None): bb.parse.BBHandler.cached_statements = {} self.ui_cmdline = None + self.hashserv = None + self.hashservaddr = None self.initConfigurationData() @@ -369,12 +371,6 @@ def initConfigurationData(self): self.data.setVar('BB_CMDLINE', self.ui_cmdline) - # - # Copy of the data store which has been expanded. - # Used for firing events and accessing variables where expansion needs to be accounted for - # - bb.parse.init_parser(self.data) - if CookerFeatures.BASEDATASTORE_TRACKING in self.featureset: self.disableDataTracking() @@ -392,6 +388,22 @@ def handlePRServ(self): except prserv.serv.PRServiceConfigError as e: bb.fatal("Unable to start PR Server, exitting") + if self.data.getVar("BB_HASHSERVE") == "auto": + # Create a new hash server bound to a unix domain socket + if not self.hashserv: + dbfile = (self.data.getVar("PERSISTENT_DIR") or self.data.getVar("CACHE")) + "/hashserv.db" + self.hashservaddr = "unix://%s/hashserve.sock" % self.data.getVar("TOPDIR") + self.hashserv = hashserv.create_server(self.hashservaddr, dbfile, sync=False) + self.hashserv.process = multiprocessing.Process(target=self.hashserv.serve_forever) + self.hashserv.process.start() + self.data.setVar("BB_HASHSERVE", self.hashservaddr) + self.databuilder.origdata.setVar("BB_HASHSERVE", self.hashservaddr) + self.databuilder.data.setVar("BB_HASHSERVE", self.hashservaddr) + for mc in self.databuilder.mcdata: + self.databuilder.mcdata[mc].setVar("BB_HASHSERVE", self.hashservaddr) + + bb.parse.init_parser(self.data) + def enableDataTracking(self): self.configuration.tracking = True if hasattr(self, "data"): @@ -903,6 +915,10 @@ def generateDotGraphFiles(self, pkgs_to_build, task): os.unlink('package-depends.dot') except FileNotFoundError: pass + try: + os.unlink('recipe-depends.dot') + except FileNotFoundError: + pass with open('task-depends.dot', 'w') as f: f.write("digraph depends {\n") @@ -916,27 +932,6 @@ def generateDotGraphFiles(self, pkgs_to_build, task): f.write("}\n") logger.info("Task dependencies saved to 'task-depends.dot'") - with open('recipe-depends.dot', 'w') as f: - f.write("digraph depends {\n") - pndeps = {} - for task in sorted(depgraph["tdepends"]): - (pn, taskname) = task.rsplit(".", 1) - if pn not in pndeps: - pndeps[pn] = set() - for dep in sorted(depgraph["tdepends"][task]): - (deppn, deptaskname) = dep.rsplit(".", 1) - pndeps[pn].add(deppn) - for pn in sorted(pndeps): - fn = depgraph["pn"][pn]["filename"] - version = depgraph["pn"][pn]["version"] - f.write('"%s" [label="%s\\n%s\\n%s"]\n' % (pn, pn, version, fn)) - for dep in sorted(pndeps[pn]): - if dep == pn: - continue - f.write('"%s" -> "%s"\n' % (pn, dep)) - f.write("}\n") - logger.info("Flattened recipe dependencies saved to 'recipe-depends.dot'") - def show_appends_with_no_recipes(self): # Determine which bbappends haven't been applied @@ -1646,9 +1641,11 @@ def pre_serve(self): def post_serve(self): prserv.serv.auto_shutdown() + if self.hashserv: + self.hashserv.process.terminate() + self.hashserv.process.join() bb.event.fire(CookerExit(), self.data) - def shutdown(self, force = False): if force: self.state = state.forceshutdown @@ -1663,6 +1660,7 @@ def finishcommand(self): def reset(self): self.initConfigurationData() + self.handlePRServ() def clientComplete(self): """Called when the client is done using the server""" @@ -2063,6 +2061,14 @@ def shutdown(self, clean=True, force=False): for process in self.processes: self.parser_quit.put(None) + # Cleanup the queue before call process.join(), otherwise there might be + # deadlocks. + while True: + try: + self.result_queue.get(timeout=0.25) + except queue.Empty: + break + for process in self.processes: if force: process.join(.1) diff --git a/Contrib-Inspur/openbmc/poky/bitbake/lib/bb/cookerdata.py b/Contrib-Inspur/openbmc/poky/bitbake/lib/bb/cookerdata.py index 842275d5..472423fd 100644 --- a/Contrib-Inspur/openbmc/poky/bitbake/lib/bb/cookerdata.py +++ b/Contrib-Inspur/openbmc/poky/bitbake/lib/bb/cookerdata.py @@ -1,4 +1,3 @@ -#!/usr/bin/env python # # Copyright (C) 2003, 2004 Chris Larson # Copyright (C) 2003, 2004 Phil Blundell @@ -14,6 +13,7 @@ import os import re import sys +import hashlib from functools import wraps import bb from bb import data @@ -122,6 +122,7 @@ def __init__(self): self.profile = False self.nosetscene = False self.setsceneonly = False + self.skipsetscene = False self.invalidate_stamp = False self.dump_signatures = [] self.dry_run = False @@ -267,12 +268,13 @@ def __init__(self, cookercfg, worker = False): self.mcdata = {} def parseBaseConfiguration(self): + data_hash = hashlib.sha256() try: - bb.parse.init_parser(self.basedata) self.data = self.parseConfigurationFiles(self.prefiles, self.postfiles) if self.data.getVar("BB_WORKERCONTEXT", False) is None: bb.fetch.fetcher_init(self.data) + bb.parse.init_parser(self.data) bb.codeparser.parser_cache_init(self.data) bb.event.fire(bb.event.ConfigParsed(), self.data) @@ -290,7 +292,7 @@ def parseBaseConfiguration(self): bb.event.fire(bb.event.ConfigParsed(), self.data) bb.parse.init_parser(self.data) - self.data_hash = self.data.get_hash() + data_hash.update(self.data.get_hash().encode('utf-8')) self.mcdata[''] = self.data multiconfig = (self.data.getVar("BBMULTICONFIG") or "").split() @@ -298,9 +300,11 @@ def parseBaseConfiguration(self): mcdata = self.parseConfigurationFiles(self.prefiles, self.postfiles, config) bb.event.fire(bb.event.ConfigParsed(), mcdata) self.mcdata[config] = mcdata + data_hash.update(mcdata.get_hash().encode('utf-8')) if multiconfig: bb.event.fire(bb.event.MultiConfigParsed(self.mcdata), self.data) + self.data_hash = data_hash.hexdigest() except (SyntaxError, bb.BBHandledException): raise bb.BBHandledException except bb.data_smart.ExpansionError as e: diff --git a/Contrib-Inspur/openbmc/poky/bitbake/lib/bb/data.py b/Contrib-Inspur/openbmc/poky/bitbake/lib/bb/data.py index 92ef4053..0d75d0c1 100644 --- a/Contrib-Inspur/openbmc/poky/bitbake/lib/bb/data.py +++ b/Contrib-Inspur/openbmc/poky/bitbake/lib/bb/data.py @@ -130,7 +130,7 @@ def emit_var(var, o=sys.__stdout__, d = init(), all=False): if all: oval = d.getVar(var, False) val = d.getVar(var) - except (KeyboardInterrupt, bb.build.FuncFailed): + except (KeyboardInterrupt): raise except Exception as exc: o.write('# expansion of %s threw %s: %s\n' % (var, exc.__class__.__name__, str(exc))) @@ -422,7 +422,7 @@ def generate_dependency_hash(tasklist, gendeps, lookupcache, whitelist, fn): var = lookupcache[dep] if var is not None: data = data + str(var) - k = fn + "." + task + k = fn + ":" + task basehash[k] = hashlib.sha256(data.encode("utf-8")).hexdigest() taskdeps[task] = alldeps diff --git a/Contrib-Inspur/openbmc/poky/bitbake/lib/bb/event.py b/Contrib-Inspur/openbmc/poky/bitbake/lib/bb/event.py index 7cbb5ca4..d44621ed 100644 --- a/Contrib-Inspur/openbmc/poky/bitbake/lib/bb/event.py +++ b/Contrib-Inspur/openbmc/poky/bitbake/lib/bb/event.py @@ -124,6 +124,7 @@ def fire_class_handlers(event, d): ui_queue = [] @atexit.register def print_ui_queue(): + global ui_queue """If we're exiting before a UI has been spawned, display any queued LogRecords to the console.""" logger = logging.getLogger("BitBake") @@ -168,6 +169,7 @@ def print_ui_queue(): logger.removeHandler(stderr) else: logger.removeHandler(stdout) + ui_queue = [] def fire_ui_handlers(event, d): global _thread_lock @@ -402,23 +404,6 @@ def __init__(self, fn, tasklist): class RecipeParsed(RecipeEvent): """ Recipe Parsing Complete """ -class StampUpdate(Event): - """Trigger for any adjustment of the stamp files to happen""" - - def __init__(self, targets, stampfns): - self._targets = targets - self._stampfns = stampfns - Event.__init__(self) - - def getStampPrefix(self): - return self._stampfns - - def getTargets(self): - return self._targets - - stampPrefix = property(getStampPrefix) - targets = property(getTargets) - class BuildBase(Event): """Base class for bitbake build events""" diff --git a/Contrib-Inspur/openbmc/poky/bitbake/lib/bb/fetch2/__init__.py b/Contrib-Inspur/openbmc/poky/bitbake/lib/bb/fetch2/__init__.py index f6b5529b..07de6c26 100644 --- a/Contrib-Inspur/openbmc/poky/bitbake/lib/bb/fetch2/__init__.py +++ b/Contrib-Inspur/openbmc/poky/bitbake/lib/bb/fetch2/__init__.py @@ -962,7 +962,8 @@ def rename_bad_checksum(ud, suffix): new_localpath = "%s_bad-checksum_%s" % (ud.localpath, suffix) bb.warn("Renaming %s to %s" % (ud.localpath, new_localpath)) - bb.utils.movefile(ud.localpath, new_localpath) + if not bb.utils.movefile(ud.localpath, new_localpath): + bb.warn("Renaming %s to %s failed, grep movefile in log.do_fetch to see why" % (ud.localpath, new_localpath)) def try_mirror_url(fetch, origud, ud, ld, check = False): @@ -1592,7 +1593,7 @@ def __init__(self, urls, d, cache = True, localonly = False, connection_cache = fn = d.getVar('FILE') mc = d.getVar('__BBMULTICONFIG') or "" if cache and fn and mc + fn in urldata_cache: - self.ud = urldata_cache[mc + fn] + self.ud = urldata_cache[mc + fn + str(id(d))] for url in urls: if url not in self.ud: @@ -1604,7 +1605,7 @@ def __init__(self, urls, d, cache = True, localonly = False, connection_cache = pass if fn and cache: - urldata_cache[mc + fn] = self.ud + urldata_cache[mc + fn + str(id(d))] = self.ud def localpath(self, url): if url not in self.urls: diff --git a/Contrib-Inspur/openbmc/poky/bitbake/lib/bb/fetch2/clearcase.py b/Contrib-Inspur/openbmc/poky/bitbake/lib/bb/fetch2/clearcase.py index 9ed0d9be..e2934ef9 100644 --- a/Contrib-Inspur/openbmc/poky/bitbake/lib/bb/fetch2/clearcase.py +++ b/Contrib-Inspur/openbmc/poky/bitbake/lib/bb/fetch2/clearcase.py @@ -54,6 +54,8 @@ import bb from bb.fetch2 import FetchMethod from bb.fetch2 import FetchError +from bb.fetch2 import MissingParameterError +from bb.fetch2 import ParameterError from bb.fetch2 import runfetchcmd from bb.fetch2 import logger @@ -79,7 +81,7 @@ def urldata_init(self, ud, d): if 'protocol' in ud.parm: ud.proto = ud.parm['protocol'] if not ud.proto in ('http', 'https'): - raise fetch2.ParameterError("Invalid protocol type", ud.url) + raise ParameterError("Invalid protocol type", ud.url) ud.vob = '' if 'vob' in ud.parm: @@ -143,18 +145,18 @@ def _build_ccase_command(self, ud, command): basecmd = "%s %s" % (ud.basecmd, command) - if command is 'mkview': + if command == 'mkview': if not "rcleartool" in ud.basecmd: # Cleartool needs a -snapshot view options.append("-snapshot") options.append("-tag %s" % ud.viewname) options.append(ud.viewdir) - elif command is 'rmview': + elif command == 'rmview': options.append("-force") options.append("%s" % ud.viewdir) - elif command is 'setcs': + elif command == 'setcs': options.append("-overwrite") options.append(ud.configspecfile) diff --git a/Contrib-Inspur/openbmc/poky/bitbake/lib/bb/fetch2/git.py b/Contrib-Inspur/openbmc/poky/bitbake/lib/bb/fetch2/git.py index e171aa7e..fa41b078 100644 --- a/Contrib-Inspur/openbmc/poky/bitbake/lib/bb/fetch2/git.py +++ b/Contrib-Inspur/openbmc/poky/bitbake/lib/bb/fetch2/git.py @@ -292,11 +292,21 @@ def need_update(self, ud, d): def clonedir_need_update(self, ud, d): if not os.path.exists(ud.clonedir): return True + if ud.shallow and ud.write_shallow_tarballs and self.clonedir_need_shallow_revs(ud, d): + return True for name in ud.names: if not self._contains_ref(ud, d, name, ud.clonedir): return True return False + def clonedir_need_shallow_revs(self, ud, d): + for rev in ud.shallow_revs: + try: + runfetchcmd('%s rev-parse -q --verify %s' % (ud.basecmd, rev), d, quiet=True, workdir=ud.clonedir) + except bb.fetch2.FetchError: + return rev + return None + def shallow_tarball_need_update(self, ud): return ud.shallow and ud.write_shallow_tarballs and not os.path.exists(ud.fullshallow) @@ -339,13 +349,7 @@ def download(self, ud, d): runfetchcmd(clone_cmd, d, log=progresshandler) # Update the checkout if needed - needupdate = False - for name in ud.names: - if not self._contains_ref(ud, d, name, ud.clonedir): - needupdate = True - break - - if needupdate: + if self.clonedir_need_update(ud, d): output = runfetchcmd("%s remote" % ud.basecmd, d, quiet=True, workdir=ud.clonedir) if "origin" in output: runfetchcmd("%s remote rm origin" % ud.basecmd, d, workdir=ud.clonedir) @@ -369,6 +373,11 @@ def download(self, ud, d): if not self._contains_ref(ud, d, name, ud.clonedir): raise bb.fetch2.FetchError("Unable to find revision %s in branch %s even from upstream" % (ud.revisions[name], ud.branches[name])) + if ud.shallow and ud.write_shallow_tarballs: + missing_rev = self.clonedir_need_shallow_revs(ud, d) + if missing_rev: + raise bb.fetch2.FetchError("Unable to find revision %s even from upstream" % missing_rev) + def build_mirror_data(self, ud, d): if ud.shallow and ud.write_shallow_tarballs: if not os.path.exists(ud.fullshallow): @@ -464,6 +473,8 @@ def unpack(self, ud, destdir, d): if os.path.exists(destdir): bb.utils.prunedir(destdir) + need_lfs = ud.parm.get("lfs", "1") == "1" + source_found = False source_error = [] @@ -493,14 +504,10 @@ def unpack(self, ud, destdir, d): runfetchcmd("%s remote set-url origin %s" % (ud.basecmd, repourl), d, workdir=destdir) if self._contains_lfs(ud, d, destdir): - path = d.getVar('PATH') - if path: - gitlfstool = bb.utils.which(path, "git-lfs", executable=True) - if not gitlfstool: - raise bb.fetch2.FetchError("Repository %s has lfs content, install git-lfs plugin on host to download" % (repourl)) + if need_lfs and not self._find_git_lfs(d): + raise bb.fetch2.FetchError("Repository %s has LFS content, install git-lfs on host to download (or set lfs=0 to ignore it)" % (repourl)) else: - bb.note("Could not find 'PATH'") - + bb.note("Repository %s has LFS content but it is not being fetched" % (repourl)) if not ud.nocheckout: if subdir != "": @@ -566,6 +573,13 @@ def _contains_lfs(self, ud, d, wd): pass return False + def _find_git_lfs(self, d): + """ + Return True if git-lfs can be found, False otherwise. + """ + import shutil + return shutil.which("git-lfs", path=d.getVar('PATH')) is not None + def _get_repo_url(self, ud): """ Return the repository URL diff --git a/Contrib-Inspur/openbmc/poky/bitbake/lib/bb/fetch2/hg.py b/Contrib-Inspur/openbmc/poky/bitbake/lib/bb/fetch2/hg.py index 15d729e7..e21115de 100644 --- a/Contrib-Inspur/openbmc/poky/bitbake/lib/bb/fetch2/hg.py +++ b/Contrib-Inspur/openbmc/poky/bitbake/lib/bb/fetch2/hg.py @@ -54,13 +54,6 @@ def urldata_init(self, ud, d): else: ud.proto = "hg" - ud.setup_revisions(d) - - if 'rev' in ud.parm: - ud.revision = ud.parm['rev'] - elif not ud.revision: - ud.revision = self.latest_revision(ud, d) - # Create paths to mercurial checkouts hgsrcname = '%s_%s_%s' % (ud.module.replace('/', '.'), \ ud.host, ud.path.replace('/', '.')) @@ -74,6 +67,13 @@ def urldata_init(self, ud, d): ud.localfile = ud.moddir ud.basecmd = d.getVar("FETCHCMD_hg") or "/usr/bin/env hg" + ud.setup_revisions(d) + + if 'rev' in ud.parm: + ud.revision = ud.parm['rev'] + elif not ud.revision: + ud.revision = self.latest_revision(ud, d) + ud.write_tarballs = d.getVar("BB_GENERATE_MIRROR_TARBALLS") def need_update(self, ud, d): @@ -139,7 +139,7 @@ def _buildhgcommand(self, ud, d, command): cmd = "%s --config auth.default.prefix=* --config auth.default.username=%s --config auth.default.password=%s --config \"auth.default.schemes=%s\" pull" % (ud.basecmd, ud.user, ud.pswd, proto) else: cmd = "%s pull" % (ud.basecmd) - elif command == "update": + elif command == "update" or command == "up": if ud.user and ud.pswd: cmd = "%s --config auth.default.prefix=* --config auth.default.username=%s --config auth.default.password=%s --config \"auth.default.schemes=%s\" update -C %s" % (ud.basecmd, ud.user, ud.pswd, proto, " ".join(options)) else: @@ -247,12 +247,19 @@ def unpack(self, ud, destdir, d): scmdata = ud.parm.get("scmdata", "") if scmdata != "nokeep": + proto = ud.parm.get('protocol', 'http') if not os.access(os.path.join(codir, '.hg'), os.R_OK): logger.debug(2, "Unpack: creating new hg repository in '" + codir + "'") runfetchcmd("%s init %s" % (ud.basecmd, codir), d) logger.debug(2, "Unpack: updating source in '" + codir + "'") - runfetchcmd("%s pull %s" % (ud.basecmd, ud.moddir), d, workdir=codir) - runfetchcmd("%s up -C %s" % (ud.basecmd, revflag), d, workdir=codir) + if ud.user and ud.pswd: + runfetchcmd("%s --config auth.default.prefix=* --config auth.default.username=%s --config auth.default.password=%s --config \"auth.default.schemes=%s\" pull %s" % (ud.basecmd, ud.user, ud.pswd, proto, ud.moddir), d, workdir=codir) + else: + runfetchcmd("%s pull %s" % (ud.basecmd, ud.moddir), d, workdir=codir) + if ud.user and ud.pswd: + runfetchcmd("%s --config auth.default.prefix=* --config auth.default.username=%s --config auth.default.password=%s --config \"auth.default.schemes=%s\" up -C %s" % (ud.basecmd, ud.user, ud.pswd, proto, revflag), d, workdir=codir) + else: + runfetchcmd("%s up -C %s" % (ud.basecmd, revflag), d, workdir=codir) else: logger.debug(2, "Unpack: extracting source to '" + codir + "'") runfetchcmd("%s archive -t files %s %s" % (ud.basecmd, revflag, codir), d, workdir=ud.moddir) diff --git a/Contrib-Inspur/openbmc/poky/bitbake/lib/bb/fetch2/npm.py b/Contrib-Inspur/openbmc/poky/bitbake/lib/bb/fetch2/npm.py index 4427b1bb..9700e610 100644 --- a/Contrib-Inspur/openbmc/poky/bitbake/lib/bb/fetch2/npm.py +++ b/Contrib-Inspur/openbmc/poky/bitbake/lib/bb/fetch2/npm.py @@ -101,11 +101,19 @@ def need_update(self, ud, d): return False return True - def _runwget(self, ud, d, command, quiet): - logger.debug(2, "Fetching %s using command '%s'" % (ud.url, command)) - bb.fetch2.check_network_access(d, command, ud.url) + def _runpack(self, ud, d, pkgfullname: str, quiet=False) -> str: + """ + Runs npm pack on a full package name. + Returns the filename of the downloaded package + """ + bb.fetch2.check_network_access(d, pkgfullname, ud.registry) dldir = d.getVar("DL_DIR") - runfetchcmd(command, d, quiet, workdir=dldir) + dldir = os.path.join(dldir, ud.prefixdir) + + command = "npm pack {} --registry {}".format(pkgfullname, ud.registry) + logger.debug(2, "Fetching {} using command '{}' in {}".format(pkgfullname, command, dldir)) + filename = runfetchcmd(command, d, quiet, workdir=dldir) + return filename.rstrip() def _unpackdep(self, ud, pkg, data, destdir, dldir, d): file = data[pkg]['tgz'] @@ -163,6 +171,9 @@ def _getdependencies(self, pkg, data, version, d, ud, optional=False, fetchedlis pkgfullname = pkg if version != '*' and not '/' in version: pkgfullname += "@'%s'" % version + if pkgfullname in fetchedlist: + return + logger.debug(2, "Calling getdeps on %s" % pkg) fetchcmd = "npm view %s --json --registry %s" % (pkgfullname, ud.registry) output = runfetchcmd(fetchcmd, d, True) @@ -182,15 +193,10 @@ def _getdependencies(self, pkg, data, version, d, ud, optional=False, fetchedlis if (not blacklist and 'linux' not in pkg_os) or '!linux' in pkg_os: logger.debug(2, "Skipping %s since it's incompatible with Linux" % pkg) return - #logger.debug(2, "Output URL is %s - %s - %s" % (ud.basepath, ud.basename, ud.localfile)) - outputurl = pdata['dist']['tarball'] + filename = self._runpack(ud, d, pkgfullname) data[pkg] = {} - data[pkg]['tgz'] = os.path.basename(outputurl) - if outputurl in fetchedlist: - return - - self._runwget(ud, d, "%s --directory-prefix=%s %s" % (self.basecmd, ud.prefixdir, outputurl), False) - fetchedlist.append(outputurl) + data[pkg]['tgz'] = filename + fetchedlist.append(pkgfullname) dependencies = pdata.get('dependencies', {}) optionalDependencies = pdata.get('optionalDependencies', {}) @@ -217,17 +223,12 @@ def _getshrinkeddependencies(self, pkg, data, version, d, ud, lockdown, manifest if obj == pkg: self._getshrinkeddependencies(obj, data['dependencies'][obj], data['dependencies'][obj]['version'], d, ud, lockdown, manifest, False) return - outputurl = "invalid" - if ('resolved' not in data) or (not data['resolved'].startswith('http://') and not data['resolved'].startswith('https://')): - # will be the case for ${PN} - fetchcmd = "npm view %s@%s dist.tarball --registry %s" % (pkg, version, ud.registry) - logger.debug(2, "Found this matching URL: %s" % str(fetchcmd)) - outputurl = runfetchcmd(fetchcmd, d, True) - else: - outputurl = data['resolved'] - self._runwget(ud, d, "%s --directory-prefix=%s %s" % (self.basecmd, ud.prefixdir, outputurl), False) + + pkgnameWithVersion = "{}@{}".format(pkg, version) + logger.debug(2, "Get dependencies for {}".format(pkgnameWithVersion)) + filename = self._runpack(ud, d, pkgnameWithVersion) manifest[pkg] = {} - manifest[pkg]['tgz'] = os.path.basename(outputurl).rstrip() + manifest[pkg]['tgz'] = filename manifest[pkg]['deps'] = {} if pkg in lockdown: diff --git a/Contrib-Inspur/openbmc/poky/bitbake/lib/bb/fetch2/svn.py b/Contrib-Inspur/openbmc/poky/bitbake/lib/bb/fetch2/svn.py index 59ce9316..96d666ba 100644 --- a/Contrib-Inspur/openbmc/poky/bitbake/lib/bb/fetch2/svn.py +++ b/Contrib-Inspur/openbmc/poky/bitbake/lib/bb/fetch2/svn.py @@ -145,7 +145,7 @@ def download(self, ud, d): if not ("externals" in ud.parm and ud.parm["externals"] == "nowarn"): # Warn the user if this had externals (won't catch them all) - output = runfetchcmd("svn propget svn:externals", d, workdir=ud.moddir) + output = runfetchcmd("svn propget svn:externals || true", d, workdir=ud.moddir) if output: if "--ignore-externals" in svnfetchcmd.split(): bb.warn("%s contains svn:externals." % ud.url) diff --git a/Contrib-Inspur/openbmc/poky/bitbake/lib/bb/fetch2/wget.py b/Contrib-Inspur/openbmc/poky/bitbake/lib/bb/fetch2/wget.py index 0f71ee4e..725586d2 100644 --- a/Contrib-Inspur/openbmc/poky/bitbake/lib/bb/fetch2/wget.py +++ b/Contrib-Inspur/openbmc/poky/bitbake/lib/bb/fetch2/wget.py @@ -257,13 +257,15 @@ def http_error_405(self, req, fp, code, msg, headers): fp.read() fp.close() - newheaders = dict((k, v) for k, v in list(req.headers.items()) - if k.lower() not in ("content-length", "content-type")) - return self.parent.open(urllib.request.Request(req.get_full_url(), - headers=newheaders, - origin_req_host=req.origin_req_host, - unverifiable=True)) - + if req.get_method() != 'GET': + newheaders = dict((k, v) for k, v in list(req.headers.items()) + if k.lower() not in ("content-length", "content-type")) + return self.parent.open(urllib.request.Request(req.get_full_url(), + headers=newheaders, + origin_req_host=req.origin_req_host, + unverifiable=True)) + + raise urllib.request.HTTPError(req, code, msg, headers, None) # Some servers (e.g. GitHub archives, hosted on Amazon S3) return 403 # Forbidden when they actually mean 405 Method Not Allowed. diff --git a/Contrib-Inspur/openbmc/poky/bitbake/lib/bb/main.py b/Contrib-Inspur/openbmc/poky/bitbake/lib/bb/main.py index ca59eb9a..af2880f8 100755 --- a/Contrib-Inspur/openbmc/poky/bitbake/lib/bb/main.py +++ b/Contrib-Inspur/openbmc/poky/bitbake/lib/bb/main.py @@ -1,4 +1,3 @@ -#!/usr/bin/env python # # Copyright (C) 2003, 2004 Chris Larson # Copyright (C) 2003, 2004 Phil Blundell @@ -255,6 +254,11 @@ def parseCommandLine(self, argv=sys.argv): help="Do not run any setscene tasks. sstate will be ignored and " "everything needed, built.") + parser.add_option("", "--skip-setscene", action="store_true", + dest="skipsetscene", default=False, + help="Skip setscene tasks if they would be executed. Tasks previously " + "restored from sstate will be kept, unlike --no-setscene") + parser.add_option("", "--setscene-only", action="store_true", dest="setsceneonly", default=False, help="Only run setscene tasks, don't run any real tasks.") @@ -448,12 +452,7 @@ def setup_bitbake(configParams, configuration, extrafeatures=None): bb.utils.unlockfile(lock) raise bb.server.process.ProcessTimeout("Bitbake still shutting down as socket exists but no lock?") if not configParams.server_only: - try: - server_connection = bb.server.process.connectProcessServer(sockname, featureset) - except EOFError: - # The server may have been shutting down but not closed the socket yet. If that happened, - # ignore it. - pass + server_connection = bb.server.process.connectProcessServer(sockname, featureset) if server_connection or configParams.server_only: break @@ -464,12 +463,13 @@ def setup_bitbake(configParams, configuration, extrafeatures=None): raise retries -= 1 tryno = 8 - retries - if isinstance(e, (bb.server.process.ProcessTimeout, BrokenPipeError)): + if isinstance(e, (bb.server.process.ProcessTimeout, BrokenPipeError, EOFError)): logger.info("Retrying server connection (#%d)..." % tryno) else: logger.info("Retrying server connection (#%d)... (%s)" % (tryno, traceback.format_exc())) if not retries: - bb.fatal("Unable to connect to bitbake server, or start one") + bb.fatal("Unable to connect to bitbake server, or start one (server startup failures would be in bitbake-cookerdaemon.log).") + bb.event.print_ui_queue() if retries < 5: time.sleep(5) diff --git a/Contrib-Inspur/openbmc/poky/bitbake/lib/bb/monitordisk.py b/Contrib-Inspur/openbmc/poky/bitbake/lib/bb/monitordisk.py index 69b25c77..1a25b004 100644 --- a/Contrib-Inspur/openbmc/poky/bitbake/lib/bb/monitordisk.py +++ b/Contrib-Inspur/openbmc/poky/bitbake/lib/bb/monitordisk.py @@ -1,4 +1,3 @@ -#!/usr/bin/env python # # Copyright (C) 2012 Robert Yang # diff --git a/Contrib-Inspur/openbmc/poky/bitbake/lib/bb/namedtuple_with_abc.py b/Contrib-Inspur/openbmc/poky/bitbake/lib/bb/namedtuple_with_abc.py index c8e1d55c..646aed6f 100644 --- a/Contrib-Inspur/openbmc/poky/bitbake/lib/bb/namedtuple_with_abc.py +++ b/Contrib-Inspur/openbmc/poky/bitbake/lib/bb/namedtuple_with_abc.py @@ -1,5 +1,4 @@ # http://code.activestate.com/recipes/577629-namedtupleabc-abstract-base-class-mix-in-for-named/ -#!/usr/bin/env python # Copyright (c) 2011 Jan Kaliszewski (zuo). Available under the MIT License. # # SPDX-License-Identifier: MIT diff --git a/Contrib-Inspur/openbmc/poky/bitbake/lib/bb/parse/parse_py/BBHandler.py b/Contrib-Inspur/openbmc/poky/bitbake/lib/bb/parse/parse_py/BBHandler.py index 889f230f..6f7cf82b 100644 --- a/Contrib-Inspur/openbmc/poky/bitbake/lib/bb/parse/parse_py/BBHandler.py +++ b/Contrib-Inspur/openbmc/poky/bitbake/lib/bb/parse/parse_py/BBHandler.py @@ -1,4 +1,3 @@ -#!/usr/bin/env python """ class for handling .bb files diff --git a/Contrib-Inspur/openbmc/poky/bitbake/lib/bb/parse/parse_py/ConfHandler.py b/Contrib-Inspur/openbmc/poky/bitbake/lib/bb/parse/parse_py/ConfHandler.py index 71bf61b7..af64d344 100644 --- a/Contrib-Inspur/openbmc/poky/bitbake/lib/bb/parse/parse_py/ConfHandler.py +++ b/Contrib-Inspur/openbmc/poky/bitbake/lib/bb/parse/parse_py/ConfHandler.py @@ -1,4 +1,3 @@ -#!/usr/bin/env python """ class for handling configuration data files @@ -120,30 +119,30 @@ def handle(fn, data, include): oldfile = data.getVar('FILE', False) abs_fn = resolve_file(fn, data) - f = open(abs_fn, 'r') - - statements = ast.StatementGroup() - lineno = 0 - while True: - lineno = lineno + 1 - s = f.readline() - if not s: - break - w = s.strip() - # skip empty lines - if not w: - continue - s = s.rstrip() - while s[-1] == '\\': - s2 = f.readline().rstrip() + with open(abs_fn, 'r') as f: + + statements = ast.StatementGroup() + lineno = 0 + while True: lineno = lineno + 1 - if (not s2 or s2 and s2[0] != "#") and s[0] == "#" : - bb.fatal("There is a confusing multiline, partially commented expression on line %s of file %s (%s).\nPlease clarify whether this is all a comment or should be parsed." % (lineno, fn, s)) - s = s[:-1] + s2 - # skip comments - if s[0] == '#': - continue - feeder(lineno, s, abs_fn, statements) + s = f.readline() + if not s: + break + w = s.strip() + # skip empty lines + if not w: + continue + s = s.rstrip() + while s[-1] == '\\': + s2 = f.readline().rstrip() + lineno = lineno + 1 + if (not s2 or s2 and s2[0] != "#") and s[0] == "#" : + bb.fatal("There is a confusing multiline, partially commented expression on line %s of file %s (%s).\nPlease clarify whether this is all a comment or should be parsed." % (lineno, fn, s)) + s = s[:-1] + s2 + # skip comments + if s[0] == '#': + continue + feeder(lineno, s, abs_fn, statements) # DONE WITH PARSING... time to evaluate data.setVar('FILE', abs_fn) diff --git a/Contrib-Inspur/openbmc/poky/bitbake/lib/bb/parse/parse_py/__init__.py b/Contrib-Inspur/openbmc/poky/bitbake/lib/bb/parse/parse_py/__init__.py index cdebe440..f508afa1 100644 --- a/Contrib-Inspur/openbmc/poky/bitbake/lib/bb/parse/parse_py/__init__.py +++ b/Contrib-Inspur/openbmc/poky/bitbake/lib/bb/parse/parse_py/__init__.py @@ -1,4 +1,3 @@ -#!/usr/bin/env python """ BitBake Parsers diff --git a/Contrib-Inspur/openbmc/poky/bitbake/lib/bb/runqueue.py b/Contrib-Inspur/openbmc/poky/bitbake/lib/bb/runqueue.py index 010b0850..26492e70 100644 --- a/Contrib-Inspur/openbmc/poky/bitbake/lib/bb/runqueue.py +++ b/Contrib-Inspur/openbmc/poky/bitbake/lib/bb/runqueue.py @@ -1,4 +1,3 @@ -#!/usr/bin/env python """ BitBake 'RunQueue' implementation @@ -26,6 +25,7 @@ import pickle from multiprocessing import Process import shlex +import pprint bblogger = logging.getLogger("BitBake") logger = logging.getLogger("BitBake.RunQueue") @@ -68,6 +68,14 @@ def build_tid(mc, fn, taskname): return "mc:" + mc + ":" + fn + ":" + taskname return fn + ":" + taskname +# Index used to pair up potentially matching multiconfig tasks +# We match on PN, taskname and hash being equal +def pending_hash_index(tid, rqdata): + (mc, fn, taskname, taskfn) = split_tid_mcfn(tid) + pn = rqdata.dataCaches[mc].pkg_fn[taskfn] + h = rqdata.runtaskentries[tid].unihash + return pn + ":" + "taskname" + h + class RunQueueStats: """ Holds statistics on the tasks handled by the associated runQueue @@ -103,8 +111,6 @@ def taskActive(self): # runQueue state machine runQueuePrepare = 2 runQueueSceneInit = 3 -runQueueSceneRun = 4 -runQueueRunInit = 5 runQueueRunning = 6 runQueueFailed = 7 runQueueCleanUp = 8 @@ -127,7 +133,7 @@ def __init__(self, runqueue, rqdata): self.prio_map = [self.rqdata.runtaskentries.keys()] - self.buildable = [] + self.buildable = set() self.skip_maxthread = {} self.stamps = {} for tid in self.rqdata.runtaskentries: @@ -142,8 +148,11 @@ def next_buildable_task(self): """ Return the id of the first task we find that is buildable """ - self.buildable = [x for x in self.buildable if x not in self.rq.runq_running] - if not self.buildable: + buildable = set(self.buildable) + buildable.difference_update(self.rq.runq_running) + buildable.difference_update(self.rq.holdoff_tasks) + buildable.intersection_update(self.rq.tasks_covered | self.rq.tasks_notcovered) + if not buildable: return None # Filter out tasks that have a max number of threads that have been exceeded @@ -159,8 +168,8 @@ def next_buildable_task(self): else: skip_buildable[rtaskname] = 1 - if len(self.buildable) == 1: - tid = self.buildable[0] + if len(buildable) == 1: + tid = buildable.pop() taskname = taskname_from_tid(tid) if taskname in skip_buildable and skip_buildable[taskname] >= int(self.skip_maxthread[taskname]): return None @@ -175,7 +184,7 @@ def next_buildable_task(self): best = None bestprio = None - for tid in self.buildable: + for tid in buildable: taskname = taskname_from_tid(tid) if taskname in skip_buildable and skip_buildable[taskname] >= int(self.skip_maxthread[taskname]): continue @@ -197,7 +206,12 @@ def next(self): return self.next_buildable_task() def newbuildable(self, task): - self.buildable.append(task) + self.buildable.add(task) + # Once tasks are running we don't need to worry about them again + self.buildable.difference_update(self.rq.runq_running) + + def removebuildable(self, task): + self.buildable.remove(task) def describe_task(self, taskid): result = 'ID %s' % taskid @@ -837,6 +851,20 @@ def mark_active(tid, depth): for depend in depends: mark_active(depend, depth+1) + def invalidate_task(tid, error_nostamp): + (mc, fn, taskname, taskfn) = split_tid_mcfn(tid) + taskdep = self.dataCaches[mc].task_deps[taskfn] + if fn + ":" + taskname not in taskData[mc].taskentries: + logger.warning("Task %s does not exist, invalidating this task will have no effect" % taskname) + if 'nostamp' in taskdep and taskname in taskdep['nostamp']: + if error_nostamp: + bb.fatal("Task %s is marked nostamp, cannot invalidate this task" % taskname) + else: + bb.debug(1, "Task %s is marked nostamp, cannot invalidate this task" % taskname) + else: + logger.verbose("Invalidate task %s, %s", taskname, fn) + bb.parse.siggen.invalidate_task(taskname, self.dataCaches[mc], taskfn) + self.target_tids = [] for (mc, target, task, fn) in self.targets: @@ -905,6 +933,8 @@ def mark_active(tid, depth): for tid in list(runall_tids): mark_active(tid,1) + if self.cooker.configuration.force: + invalidate_task(tid, False) for tid in list(self.runtaskentries.keys()): if tid not in runq_build: @@ -926,6 +956,8 @@ def mark_active(tid, depth): for tid in list(runonly_tids): mark_active(tid,1) + if self.cooker.configuration.force: + invalidate_task(tid, False) for tid in list(self.runtaskentries.keys()): if tid not in runq_build: @@ -1102,20 +1134,6 @@ def mark_active(tid, depth): continue self.runq_setscene_tids.append(tid) - def invalidate_task(tid, error_nostamp): - (mc, fn, taskname, taskfn) = split_tid_mcfn(tid) - taskdep = self.dataCaches[mc].task_deps[taskfn] - if fn + ":" + taskname not in taskData[mc].taskentries: - logger.warning("Task %s does not exist, invalidating this task will have no effect" % taskname) - if 'nostamp' in taskdep and taskname in taskdep['nostamp']: - if error_nostamp: - bb.fatal("Task %s is marked nostamp, cannot invalidate this task" % taskname) - else: - bb.debug(1, "Task %s is marked nostamp, cannot invalidate this task" % taskname) - else: - logger.verbose("Invalidate task %s, %s", taskname, fn) - bb.parse.siggen.invalidate_task(taskname, self.dataCaches[mc], taskfn) - self.init_progress_reporter.next_stage() # Invalidate task if force mode active @@ -1146,6 +1164,8 @@ def invalidate_task(tid, error_nostamp): self.init_progress_reporter.next_stage() + bb.parse.siggen.set_setscene_tasks(self.runq_setscene_tids) + # Iterate over the task list and call into the siggen code dealtwith = set() todeal = set(self.runtaskentries) @@ -1164,10 +1184,9 @@ def invalidate_task(tid, error_nostamp): def prepare_task_hash(self, tid): procdep = [] for dep in self.runtaskentries[tid].depends: - procdep.append(fn_from_tid(dep) + "." + taskname_from_tid(dep)) - (mc, fn, taskname, taskfn) = split_tid_mcfn(tid) - self.runtaskentries[tid].hash = bb.parse.siggen.get_taskhash(taskfn, taskname, procdep, self.dataCaches[mc]) - self.runtaskentries[tid].unihash = bb.parse.siggen.get_unihash(taskfn + "." + taskname) + procdep.append(dep) + self.runtaskentries[tid].hash = bb.parse.siggen.get_taskhash(tid, procdep, self.dataCaches[mc_from_tid(tid)]) + self.runtaskentries[tid].unihash = bb.parse.siggen.get_unihash(tid) def dump_data(self): """ @@ -1194,7 +1213,6 @@ def __init__(self, cooker, cfgData, dataCaches, taskData, targets): self.stamppolicy = cfgData.getVar("BB_STAMP_POLICY") or "perfile" self.hashvalidate = cfgData.getVar("BB_HASHCHECK_FUNCTION") or None - self.setsceneverify = cfgData.getVar("BB_SETSCENE_VERIFY_FUNCTION2") or None self.depvalidate = cfgData.getVar("BB_SETSCENE_DEPVALID") or None self.state = runQueuePrepare @@ -1203,7 +1221,7 @@ def __init__(self, cooker, cfgData, dataCaches, taskData, targets): # Invoked at regular time intervals via the bitbake heartbeat event # while the build is running. We generate a unique name for the handler # here, just in case that there ever is more than one RunQueue instance, - # start the handler when reaching runQueueSceneRun, and stop it when + # start the handler when reaching runQueueSceneInit, and stop it when # done with the build. self.dm = monitordisk.diskMonitor(cfgData) self.dm_event_handler_name = '_bb_diskmonitor_' + str(id(self)) @@ -1245,6 +1263,7 @@ def _start_worker(self, mc, fakeroot = False, rqexec = None): "buildname" : self.cfgData.getVar("BUILDNAME"), "date" : self.cfgData.getVar("DATE"), "time" : self.cfgData.getVar("TIME"), + "hashservaddr" : self.cooker.hashservaddr, } worker.stdin.write(b"" + pickle.dumps(self.cooker.configuration) + b"") @@ -1378,24 +1397,29 @@ def get_timestamp(f): cache[tid] = iscurrent return iscurrent - def validate_hash(self, *, sq_fn, sq_task, sq_hash, sq_hashfn, siginfo, sq_unihash, d): - locs = {"sq_fn" : sq_fn, "sq_task" : sq_task, "sq_hash" : sq_hash, "sq_hashfn" : sq_hashfn, - "sq_unihash" : sq_unihash, "siginfo" : siginfo, "d" : d} + def validate_hashes(self, tocheck, data, currentcount=0, siginfo=False, summary=True): + valid = set() + if self.hashvalidate: + sq_data = {} + sq_data['hash'] = {} + sq_data['hashfn'] = {} + sq_data['unihash'] = {} + for tid in tocheck: + (mc, fn, taskname, taskfn) = split_tid_mcfn(tid) + sq_data['hash'][tid] = self.rqdata.runtaskentries[tid].hash + sq_data['hashfn'][tid] = self.rqdata.dataCaches[mc].hashfn[taskfn] + sq_data['unihash'][tid] = self.rqdata.runtaskentries[tid].unihash - hashvalidate_args = ("(sq_fn, sq_task, sq_hash, sq_hashfn, d, siginfo=siginfo, sq_unihash=sq_unihash)", - "(sq_fn, sq_task, sq_hash, sq_hashfn, d, siginfo=siginfo)", - "(sq_fn, sq_task, sq_hash, sq_hashfn, d)") + valid = self.validate_hash(sq_data, data, siginfo, currentcount, summary) - for args in hashvalidate_args[:-1]: - try: - call = self.hashvalidate + args - return bb.utils.better_eval(call, locs) - except TypeError: - continue + return valid + + def validate_hash(self, sq_data, d, siginfo, currentcount, summary): + locs = {"sq_data" : sq_data, "d" : d, "siginfo" : siginfo, "currentcount" : currentcount, "summary" : summary} + + # Metadata has **kwargs so args can be added, sq_data can also gain new fields + call = self.hashvalidate + "(sq_data, d, siginfo=siginfo, currentcount=currentcount, summary=summary)" - # Call the last entry without a try...catch to propagate any thrown - # TypeError - call = self.hashvalidate + hashvalidate_args[-1] return bb.utils.better_eval(call, locs) def _execute_runqueue(self): @@ -1408,7 +1432,6 @@ def _execute_runqueue(self): retval = True if self.state is runQueuePrepare: - self.rqexe = RunQueueExecuteDummy(self) # NOTE: if you add, remove or significantly refactor the stages of this # process then you should recalculate the weightings here. This is quite # easy to do - just change the next line temporarily to pass debug=True as @@ -1422,18 +1445,20 @@ def _execute_runqueue(self): self.state = runQueueComplete else: self.state = runQueueSceneInit - self.rqdata.init_progress_reporter.next_stage() - - # we are ready to run, emit dependency info to any UI or class which - # needs it - depgraph = self.cooker.buildDependTree(self, self.rqdata.taskData) - self.rqdata.init_progress_reporter.next_stage() - bb.event.fire(bb.event.DepTreeGenerated(depgraph), self.cooker.data) + bb.parse.siggen.save_unitaskhashes() if self.state is runQueueSceneInit: + self.rqdata.init_progress_reporter.next_stage() + + # we are ready to run, emit dependency info to any UI or class which + # needs it + depgraph = self.cooker.buildDependTree(self, self.rqdata.taskData) + self.rqdata.init_progress_reporter.next_stage() + bb.event.fire(bb.event.DepTreeGenerated(depgraph), self.cooker.data) + if not self.dm_event_handler_registered: res = bb.event.register(self.dm_event_handler_name, - lambda x: self.dm.check(self) if self.state in [runQueueSceneRun, runQueueRunning, runQueueCleanUp] else False, + lambda x: self.dm.check(self) if self.state in [runQueueRunning, runQueueCleanUp] else False, ('bb.event.HeartbeatEvent',)) self.dm_event_handler_registered = True @@ -1446,24 +1471,23 @@ def _execute_runqueue(self): if 'printdiff' in dump: self.write_diffscenetasks(invalidtasks) self.state = runQueueComplete - else: - self.rqdata.init_progress_reporter.next_stage() - self.start_worker() - self.rqdata.init_progress_reporter.next_stage() - self.rqexe = RunQueueExecuteScenequeue(self) - if self.state is runQueueSceneRun: - retval = self.rqexe.execute() - - if self.state is runQueueRunInit: - if self.cooker.configuration.setsceneonly: - self.state = runQueueComplete - else: - # Just in case we didn't setscene - self.rqdata.init_progress_reporter.finish() - logger.info("Executing RunQueue Tasks") - self.rqexe = RunQueueExecuteTasks(self) - self.state = runQueueRunning + if self.state is runQueueSceneInit: + self.rqdata.init_progress_reporter.next_stage() + self.start_worker() + self.rqdata.init_progress_reporter.next_stage() + self.rqexe = RunQueueExecute(self) + + # If we don't have any setscene functions, skip execution + if len(self.rqdata.runq_setscene_tids) == 0: + logger.info('No setscene tasks') + for tid in self.rqdata.runtaskentries: + if len(self.rqdata.runtaskentries[tid].depends) == 0: + self.rqexe.setbuildable(tid) + self.rqexe.tasks_notcovered.add(tid) + self.rqexe.sqdone = True + logger.info('Executing Tasks') + self.state = runQueueRunning if self.state is runQueueRunning: retval = self.rqexe.execute() @@ -1478,12 +1502,14 @@ def _execute_runqueue(self): self.dm_event_handler_registered = False if build_done and self.rqexe: + bb.parse.siggen.save_unitaskhashes() self.teardown_workers() - if self.rqexe.stats.failed: - logger.info("Tasks Summary: Attempted %d tasks of which %d didn't need to be rerun and %d failed.", self.rqexe.stats.completed + self.rqexe.stats.failed, self.rqexe.stats.skipped, self.rqexe.stats.failed) - else: - # Let's avoid the word "failed" if nothing actually did - logger.info("Tasks Summary: Attempted %d tasks of which %d didn't need to be rerun and all succeeded.", self.rqexe.stats.completed, self.rqexe.stats.skipped) + if self.rqexe: + if self.rqexe.stats.failed: + logger.info("Tasks Summary: Attempted %d tasks of which %d didn't need to be rerun and %d failed.", self.rqexe.stats.completed + self.rqexe.stats.failed, self.rqexe.stats.skipped, self.rqexe.stats.failed) + else: + # Let's avoid the word "failed" if nothing actually did + logger.info("Tasks Summary: Attempted %d tasks of which %d didn't need to be rerun and all succeeded.", self.rqexe.stats.completed, self.rqexe.stats.skipped) if self.state is runQueueFailed: raise bb.runqueue.TaskFailure(self.rqexe.failed_tids) @@ -1566,16 +1592,8 @@ def dump_signatures(self, options): def print_diffscenetasks(self): - valid = [] - sq_hash = [] - sq_hashfn = [] - sq_unihash = [] - sq_fn = [] - sq_taskname = [] - sq_task = [] noexec = [] - stamppresent = [] - valid_new = set() + tocheck = set() for tid in self.rqdata.runtaskentries: (mc, fn, taskname, taskfn) = split_tid_mcfn(tid) @@ -1585,18 +1603,9 @@ def print_diffscenetasks(self): noexec.append(tid) continue - sq_fn.append(fn) - sq_hashfn.append(self.rqdata.dataCaches[mc].hashfn[taskfn]) - sq_hash.append(self.rqdata.runtaskentries[tid].hash) - sq_unihash.append(self.rqdata.runtaskentries[tid].unihash) - sq_taskname.append(taskname) - sq_task.append(tid) - - valid = self.validate_hash(sq_fn=sq_fn, sq_task=sq_taskname, sq_hash=sq_hash, sq_hashfn=sq_hashfn, - siginfo=True, sq_unihash=sq_unihash, d=self.cooker.data) + tocheck.add(tid) - for v in valid: - valid_new.add(sq_task[v]) + valid_new = self.validate_hashes(tocheck, self.cooker.data, 0, True, summary=False) # Tasks which are both setscene and noexec never care about dependencies # We therefore find tasks which are setscene and noexec and mark their @@ -1680,6 +1689,7 @@ def recursecb(key, hash1, hash2): output = bb.siggen.compare_sigfiles(latestmatch, match, recursecb) bb.plain("\nTask %s:%s couldn't be used from the cache because:\n We need hash %s, closest matching task was %s\n " % (pn, taskname, h, prevh) + '\n '.join(output)) + class RunQueueExecute: def __init__(self, rq): @@ -1691,6 +1701,13 @@ def __init__(self, rq): self.number_tasks = int(self.cfgData.getVar("BB_NUMBER_THREADS") or 1) self.scheduler = self.cfgData.getVar("BB_SCHEDULER") or "speed" + self.sq_buildable = set() + self.sq_running = set() + self.sq_live = set() + + self.updated_taskhash_queue = [] + self.pending_migrations = set() + self.runq_buildable = set() self.runq_running = set() self.runq_complete = set() @@ -1698,9 +1715,17 @@ def __init__(self, rq): self.build_stamps = {} self.build_stamps2 = [] self.failed_tids = [] + self.sq_deferred = {} self.stampcache = {} + self.holdoff_tasks = set() + self.holdoff_need_update = True + self.sqdone = False + + self.stats = RunQueueStats(len(self.rqdata.runtaskentries)) + self.sq_stats = RunQueueStats(len(self.rqdata.runq_setscene_tids)) + for mc in rq.worker: rq.worker[mc].pipe.setrunqueueexec(self) for mc in rq.fakeworker: @@ -1709,6 +1734,34 @@ def __init__(self, rq): if self.number_tasks <= 0: bb.fatal("Invalid BB_NUMBER_THREADS %s" % self.number_tasks) + # List of setscene tasks which we've covered + self.scenequeue_covered = set() + # List of tasks which are covered (including setscene ones) + self.tasks_covered = set() + self.tasks_scenequeue_done = set() + self.scenequeue_notcovered = set() + self.tasks_notcovered = set() + self.scenequeue_notneeded = set() + + # We can't skip specified target tasks which aren't setscene tasks + self.cantskip = set(self.rqdata.target_tids) + self.cantskip.difference_update(self.rqdata.runq_setscene_tids) + self.cantskip.intersection_update(self.rqdata.runtaskentries) + + schedulers = self.get_schedulers() + for scheduler in schedulers: + if self.scheduler == scheduler.name: + self.sched = scheduler(self, self.rqdata) + logger.debug(1, "Using runqueue scheduler '%s'", scheduler.name) + break + else: + bb.fatal("Invalid scheduler '%s'. Available schedulers: %s" % + (self.scheduler, ", ".join(obj.name for obj in schedulers))) + + #if len(self.rqdata.runq_setscene_tids) > 0: + self.sqdata = SQData() + build_scenequeue_data(self.sqdata, self.rqdata, self.rq, self.cooker, self.stampcache, self) + def runqueue_process_waitpid(self, task, status): # self.build_stamps[pid] may not exist when use shared work directory. @@ -1716,10 +1769,17 @@ def runqueue_process_waitpid(self, task, status): self.build_stamps2.remove(self.build_stamps[task]) del self.build_stamps[task] - if status != 0: - self.task_fail(task, status) + if task in self.sq_live: + if status != 0: + self.sq_task_fail(task, status) + else: + self.sq_task_complete(task) + self.sq_live.remove(task) else: - self.task_complete(task) + if status != 0: + self.task_fail(task, status) + else: + self.task_complete(task) return True def finish_now(self): @@ -1748,8 +1808,9 @@ def finish_now(self): def finish(self): self.rq.state = runQueueCleanUp - if self.stats.active > 0: - bb.event.fire(runQueueExitWait(self.stats.active), self.cfgData) + active = self.stats.active + self.sq_stats.active + if active > 0: + bb.event.fire(runQueueExitWait(active), self.cfgData) self.rq.read_workers() return self.rq.active_fds() @@ -1760,10 +1821,14 @@ def finish(self): self.rq.state = runQueueComplete return True - def check_dependencies(self, task, taskdeps, setscene = False): + # Used by setscene only + def check_dependencies(self, task, taskdeps): if not self.rq.depvalidate: return False + # Must not edit parent data + taskdeps = set(taskdeps) + taskdata = {} taskdeps.add(task) for dep in taskdeps: @@ -1776,121 +1841,10 @@ def check_dependencies(self, task, taskdeps, setscene = False): return valid def can_start_task(self): - can_start = self.stats.active < self.number_tasks + active = self.stats.active + self.sq_stats.active + can_start = active < self.number_tasks return can_start -class RunQueueExecuteDummy(RunQueueExecute): - def __init__(self, rq): - self.rq = rq - self.stats = RunQueueStats(0) - - def finish(self): - self.rq.state = runQueueComplete - return - -class RunQueueExecuteTasks(RunQueueExecute): - def __init__(self, rq): - RunQueueExecute.__init__(self, rq) - - self.stats = RunQueueStats(len(self.rqdata.runtaskentries)) - - self.stampcache = {} - - initial_covered = self.rq.scenequeue_covered.copy() - - # Mark initial buildable tasks - for tid in self.rqdata.runtaskentries: - if len(self.rqdata.runtaskentries[tid].depends) == 0: - self.runq_buildable.add(tid) - if len(self.rqdata.runtaskentries[tid].revdeps) > 0 and self.rqdata.runtaskentries[tid].revdeps.issubset(self.rq.scenequeue_covered): - self.rq.scenequeue_covered.add(tid) - - found = True - while found: - found = False - for tid in self.rqdata.runtaskentries: - if tid in self.rq.scenequeue_covered: - continue - logger.debug(1, 'Considering %s: %s' % (tid, str(self.rqdata.runtaskentries[tid].revdeps))) - - if len(self.rqdata.runtaskentries[tid].revdeps) > 0 and self.rqdata.runtaskentries[tid].revdeps.issubset(self.rq.scenequeue_covered): - if tid in self.rq.scenequeue_notcovered: - continue - found = True - self.rq.scenequeue_covered.add(tid) - - logger.debug(1, 'Skip list (pre setsceneverify) %s', sorted(self.rq.scenequeue_covered)) - - # Allow the metadata to elect for setscene tasks to run anyway - covered_remove = set() - if self.rq.setsceneverify: - invalidtasks = [] - tasknames = {} - fns = {} - for tid in self.rqdata.runtaskentries: - (mc, fn, taskname, taskfn) = split_tid_mcfn(tid) - taskdep = self.rqdata.dataCaches[mc].task_deps[taskfn] - fns[tid] = taskfn - tasknames[tid] = taskname - if 'noexec' in taskdep and taskname in taskdep['noexec']: - continue - if self.rq.check_stamp_task(tid, taskname + "_setscene", cache=self.stampcache): - logger.debug(2, 'Setscene stamp current for task %s', tid) - continue - if self.rq.check_stamp_task(tid, taskname, recurse = True, cache=self.stampcache): - logger.debug(2, 'Normal stamp current for task %s', tid) - continue - invalidtasks.append(tid) - - call = self.rq.setsceneverify + "(covered, tasknames, fns, d, invalidtasks=invalidtasks)" - locs = { "covered" : self.rq.scenequeue_covered, "tasknames" : tasknames, "fns" : fns, "d" : self.cooker.data, "invalidtasks" : invalidtasks } - covered_remove = bb.utils.better_eval(call, locs) - - def removecoveredtask(tid): - (mc, fn, taskname, taskfn) = split_tid_mcfn(tid) - taskname = taskname + '_setscene' - bb.build.del_stamp(taskname, self.rqdata.dataCaches[mc], taskfn) - self.rq.scenequeue_covered.remove(tid) - - toremove = covered_remove | self.rq.scenequeue_notcovered - for task in toremove: - logger.debug(1, 'Not skipping task %s due to setsceneverify', task) - while toremove: - covered_remove = [] - for task in toremove: - if task in self.rq.scenequeue_covered: - removecoveredtask(task) - for deptask in self.rqdata.runtaskentries[task].depends: - if deptask not in self.rq.scenequeue_covered: - continue - if deptask in toremove or deptask in covered_remove or deptask in initial_covered: - continue - logger.debug(1, 'Task %s depends on task %s so not skipping' % (task, deptask)) - covered_remove.append(deptask) - toremove = covered_remove - - logger.debug(1, 'Full skip list %s', self.rq.scenequeue_covered) - - - for mc in self.rqdata.dataCaches: - target_pairs = [] - for tid in self.rqdata.target_tids: - (tidmc, fn, taskname, _) = split_tid_mcfn(tid) - if tidmc == mc: - target_pairs.append((fn, taskname)) - - event.fire(bb.event.StampUpdate(target_pairs, self.rqdata.dataCaches[mc].stamp), self.cfgData) - - schedulers = self.get_schedulers() - for scheduler in schedulers: - if self.scheduler == scheduler.name: - self.sched = scheduler(self, self.rqdata) - logger.debug(1, "Using runqueue scheduler '%s'", scheduler.name) - break - else: - bb.fatal("Invalid scheduler '%s'. Available schedulers: %s" % - (self.scheduler, ", ".join(obj.name for obj in schedulers))) - def get_schedulers(self): schedulers = set(obj for obj in globals().values() if type(obj) is type and @@ -1962,67 +1916,172 @@ def task_skip(self, task, reason): self.stats.taskSkipped() self.stats.taskCompleted() + def summarise_scenequeue_errors(self): + err = False + if not self.sqdone: + logger.debug(1, 'We could skip tasks %s', "\n".join(sorted(self.scenequeue_covered))) + completeevent = sceneQueueComplete(self.sq_stats, self.rq) + bb.event.fire(completeevent, self.cfgData) + if self.sq_deferred: + logger.error("Scenequeue had deferred entries: %s" % pprint.pformat(self.sq_deferred)) + err = True + if self.updated_taskhash_queue: + logger.error("Scenequeue had unprocessed changed taskhash entries: %s" % pprint.pformat(self.updated_taskhash_queue)) + err = True + if self.holdoff_tasks: + logger.error("Scenequeue had holdoff tasks: %s" % pprint.pformat(self.holdoff_tasks)) + err = True + + for tid in self.rqdata.runq_setscene_tids: + if tid not in self.scenequeue_covered and tid not in self.scenequeue_notcovered: + err = True + logger.error("Setscene Task %s was never marked as covered or not covered" % tid) + if tid not in self.sq_buildable: + err = True + logger.error("Setscene Task %s was never marked as buildable" % tid) + if tid not in self.sq_running: + err = True + logger.error("Setscene Task %s was never marked as running" % tid) + + for x in self.rqdata.runtaskentries: + if x not in self.tasks_covered and x not in self.tasks_notcovered: + logger.error("Task %s was never moved from the setscene queue" % x) + err = True + if x not in self.tasks_scenequeue_done: + logger.error("Task %s was never processed by the setscene code" % x) + err = True + if len(self.rqdata.runtaskentries[x].depends) == 0 and x not in self.runq_buildable: + logger.error("Task %s was never marked as buildable by the setscene code" % x) + err = True + return err + + def execute(self): """ - Run the tasks in a queue prepared by rqdata.prepare() + Run the tasks in a queue prepared by prepare_runqueue """ - if self.rqdata.setscenewhitelist is not None and not self.rqdata.setscenewhitelist_checked: - self.rqdata.setscenewhitelist_checked = True - - # Check tasks that are going to run against the whitelist - def check_norun_task(tid, showerror=False): - (mc, fn, taskname, taskfn) = split_tid_mcfn(tid) - # Ignore covered tasks - if tid in self.rq.scenequeue_covered: - return False - # Ignore stamped tasks - if self.rq.check_stamp_task(tid, taskname, cache=self.stampcache): - return False - # Ignore noexec tasks - taskdep = self.rqdata.dataCaches[mc].task_deps[taskfn] - if 'noexec' in taskdep and taskname in taskdep['noexec']: - return False + self.rq.read_workers() + self.process_possible_migrations() - pn = self.rqdata.dataCaches[mc].pkg_fn[taskfn] - if not check_setscene_enforce_whitelist(pn, taskname, self.rqdata.setscenewhitelist): - if showerror: - if tid in self.rqdata.runq_setscene_tids: - logger.error('Task %s.%s attempted to execute unexpectedly and should have been setscened' % (pn, taskname)) + task = None + if not self.sqdone and self.can_start_task(): + # Find the next setscene to run + for nexttask in sorted(self.rqdata.runq_setscene_tids): + if nexttask in self.sq_buildable and nexttask not in self.sq_running and self.sqdata.stamps[nexttask] not in self.build_stamps.values(): + if nexttask not in self.sqdata.unskippable and len(self.sqdata.sq_revdeps[nexttask]) > 0 and self.sqdata.sq_revdeps[nexttask].issubset(self.scenequeue_covered) and self.check_dependencies(nexttask, self.sqdata.sq_revdeps[nexttask]): + if nexttask not in self.rqdata.target_tids: + logger.debug(2, "Skipping setscene for task %s" % nexttask) + self.sq_task_skip(nexttask) + self.scenequeue_notneeded.add(nexttask) + if nexttask in self.sq_deferred: + del self.sq_deferred[nexttask] + return True + # If covered tasks are running, need to wait for them to complete + for t in self.sqdata.sq_covered_tasks[nexttask]: + if t in self.runq_running and t not in self.runq_complete: + continue + if nexttask in self.sq_deferred: + if self.sq_deferred[nexttask] not in self.runq_complete: + continue + logger.debug(1, "Task %s no longer deferred" % nexttask) + del self.sq_deferred[nexttask] + valid = self.rq.validate_hashes(set([nexttask]), self.cooker.data, 0, False, summary=False) + if not valid: + logger.debug(1, "%s didn't become valid, skipping setscene" % nexttask) + self.sq_task_failoutright(nexttask) + return True else: - logger.error('Task %s.%s attempted to execute unexpectedly' % (pn, taskname)) - return True - return False - # Look to see if any tasks that we think shouldn't run are going to - unexpected = False - for tid in self.rqdata.runtaskentries: - if check_norun_task(tid): - unexpected = True + self.sqdata.outrightfail.remove(nexttask) + if nexttask in self.sqdata.outrightfail: + logger.debug(2, 'No package found, so skipping setscene task %s', nexttask) + self.sq_task_failoutright(nexttask) + return True + if nexttask in self.sqdata.unskippable: + logger.debug(2, "Setscene task %s is unskippable" % nexttask) + task = nexttask break - if unexpected: - # Run through the tasks in the rough order they'd have executed and print errors - # (since the order can be useful - usually missing sstate for the last few tasks - # is the cause of the problem) - task = self.sched.next() - while task is not None: - check_norun_task(task, showerror=True) - self.task_skip(task, 'Setscene enforcement check') - task = self.sched.next() + if task is not None: + (mc, fn, taskname, taskfn) = split_tid_mcfn(task) + taskname = taskname + "_setscene" + if self.rq.check_stamp_task(task, taskname_from_tid(task), recurse = True, cache=self.stampcache): + logger.debug(2, 'Stamp for underlying task %s is current, so skipping setscene variant', task) + self.sq_task_failoutright(task) + return True - self.rq.state = runQueueCleanUp + if self.cooker.configuration.force: + if task in self.rqdata.target_tids: + self.sq_task_failoutright(task) + return True + + if self.rq.check_stamp_task(task, taskname, cache=self.stampcache): + logger.debug(2, 'Setscene stamp current task %s, so skip it and its dependencies', task) + self.sq_task_skip(task) return True - self.rq.read_workers() + if self.cooker.configuration.skipsetscene: + logger.debug(2, 'No setscene tasks should be executed. Skipping %s', task) + self.sq_task_failoutright(task) + return True - if self.stats.total == 0: - # nothing to do - self.rq.state = runQueueCleanUp + startevent = sceneQueueTaskStarted(task, self.sq_stats, self.rq) + bb.event.fire(startevent, self.cfgData) - task = self.sched.next() + taskdepdata = self.sq_build_taskdepdata(task) + + taskdep = self.rqdata.dataCaches[mc].task_deps[taskfn] + taskhash = self.rqdata.get_task_hash(task) + unihash = self.rqdata.get_task_unihash(task) + if 'fakeroot' in taskdep and taskname in taskdep['fakeroot'] and not self.cooker.configuration.dry_run: + if not mc in self.rq.fakeworker: + self.rq.start_fakeworker(self, mc) + self.rq.fakeworker[mc].process.stdin.write(b"" + pickle.dumps((taskfn, task, taskname, taskhash, unihash, True, self.cooker.collection.get_file_appends(taskfn), taskdepdata, False)) + b"") + self.rq.fakeworker[mc].process.stdin.flush() + else: + self.rq.worker[mc].process.stdin.write(b"" + pickle.dumps((taskfn, task, taskname, taskhash, unihash, True, self.cooker.collection.get_file_appends(taskfn), taskdepdata, False)) + b"") + self.rq.worker[mc].process.stdin.flush() + + self.build_stamps[task] = bb.build.stampfile(taskname, self.rqdata.dataCaches[mc], taskfn, noextra=True) + self.build_stamps2.append(self.build_stamps[task]) + self.sq_running.add(task) + self.sq_live.add(task) + self.sq_stats.taskActive() + if self.can_start_task(): + return True + + self.update_holdofftasks() + + if not self.sq_live and not self.sqdone and not self.sq_deferred and not self.updated_taskhash_queue and not self.holdoff_tasks: + logger.info("Setscene tasks completed") + + err = self.summarise_scenequeue_errors() + if err: + self.rq.state = runQueueFailed + return True + + if self.cooker.configuration.setsceneonly: + self.rq.state = runQueueComplete + return True + self.sqdone = True + + if self.stats.total == 0: + # nothing to do + self.rq.state = runQueueComplete + return True + + if self.cooker.configuration.setsceneonly: + task = None + else: + task = self.sched.next() if task is not None: (mc, fn, taskname, taskfn) = split_tid_mcfn(task) - if task in self.rq.scenequeue_covered: + if self.rqdata.setscenewhitelist is not None: + if self.check_setscenewhitelist(task): + self.task_fail(task, "setscene whitelist") + return True + + if task in self.tasks_covered: logger.debug(2, "Setscene covered task %s", task) self.task_skip(task, "covered") return True @@ -2075,43 +2134,58 @@ def check_norun_task(tid, showerror=False): if self.can_start_task(): return True - if self.stats.active > 0: + if self.stats.active > 0 or self.sq_stats.active > 0: self.rq.read_workers() return self.rq.active_fds() + # No more tasks can be run. If we have deferred setscene tasks we should run them. + if self.sq_deferred: + tid = self.sq_deferred.pop(list(self.sq_deferred.keys())[0]) + logger.warning("Runqeueue deadlocked on deferred tasks, forcing task %s" % tid) + self.sq_task_failoutright(tid) + return True + if len(self.failed_tids) != 0: self.rq.state = runQueueFailed return True # Sanity Checks + err = self.summarise_scenequeue_errors() for task in self.rqdata.runtaskentries: if task not in self.runq_buildable: logger.error("Task %s never buildable!", task) - if task not in self.runq_running: + err = True + elif task not in self.runq_running: logger.error("Task %s never ran!", task) - if task not in self.runq_complete: + err = True + elif task not in self.runq_complete: logger.error("Task %s never completed!", task) - self.rq.state = runQueueComplete + err = True + + if err: + self.rq.state = runQueueFailed + else: + self.rq.state = runQueueComplete return True - def filtermcdeps(self, task, deps): + def filtermcdeps(self, task, mc, deps): ret = set() - mainmc = mc_from_tid(task) for dep in deps: - mc = mc_from_tid(dep) - if mc != mainmc: + thismc = mc_from_tid(dep) + if thismc != mc: continue ret.add(dep) return ret - # We filter out multiconfig dependencies from taskdepdata we pass to the tasks + # We filter out multiconfig dependencies from taskdepdata we pass to the tasks # as most code can't handle them def build_taskdepdata(self, task): taskdepdata = {} - next = self.rqdata.runtaskentries[task].depends + mc = mc_from_tid(task) + next = self.rqdata.runtaskentries[task].depends.copy() next.add(task) - next = self.filtermcdeps(task, next) + next = self.filtermcdeps(task, mc, next) while next: additional = [] for revdep in next: @@ -2121,7 +2195,7 @@ def build_taskdepdata(self, task): provides = self.rqdata.dataCaches[mc].fn_provides[taskfn] taskhash = self.rqdata.runtaskentries[revdep].hash unihash = self.rqdata.runtaskentries[revdep].unihash - deps = self.filtermcdeps(task, deps) + deps = self.filtermcdeps(task, mc, deps) taskdepdata[revdep] = [pn, taskname, fn, deps, provides, taskhash, unihash] for revdep2 in deps: if revdep2 not in taskdepdata: @@ -2131,270 +2205,207 @@ def build_taskdepdata(self, task): #bb.note("Task %s: " % task + str(taskdepdata).replace("], ", "],\n")) return taskdepdata -class RunQueueExecuteScenequeue(RunQueueExecute): - def __init__(self, rq): - RunQueueExecute.__init__(self, rq) - - self.scenequeue_covered = set() - self.scenequeue_notcovered = set() - self.scenequeue_notneeded = set() + def update_holdofftasks(self): - # If we don't have any setscene functions, skip this step - if len(self.rqdata.runq_setscene_tids) == 0: - rq.scenequeue_covered = set() - rq.scenequeue_notcovered = set() - rq.state = runQueueRunInit + if not self.holdoff_need_update: return - self.stats = RunQueueStats(len(self.rqdata.runq_setscene_tids)) + notcovered = set(self.scenequeue_notcovered) + notcovered |= self.cantskip + for tid in self.scenequeue_notcovered: + notcovered |= self.sqdata.sq_covered_tasks[tid] + notcovered |= self.sqdata.unskippable.difference(self.rqdata.runq_setscene_tids) + notcovered.intersection_update(self.tasks_scenequeue_done) - sq_revdeps = {} - sq_revdeps_new = {} - sq_revdeps_squash = {} - self.sq_harddeps = {} - self.stamps = {} - - # We need to construct a dependency graph for the setscene functions. Intermediate - # dependencies between the setscene tasks only complicate the code. This code - # therefore aims to collapse the huge runqueue dependency tree into a smaller one - # only containing the setscene functions. - - self.rqdata.init_progress_reporter.next_stage() - - # First process the chains up to the first setscene task. - endpoints = {} - for tid in self.rqdata.runtaskentries: - sq_revdeps[tid] = copy.copy(self.rqdata.runtaskentries[tid].revdeps) - sq_revdeps_new[tid] = set() - if (len(sq_revdeps[tid]) == 0) and tid not in self.rqdata.runq_setscene_tids: - #bb.warn("Added endpoint %s" % (tid)) - endpoints[tid] = set() + covered = set(self.scenequeue_covered) + for tid in self.scenequeue_covered: + covered |= self.sqdata.sq_covered_tasks[tid] + covered.difference_update(notcovered) + covered.intersection_update(self.tasks_scenequeue_done) - self.rqdata.init_progress_reporter.next_stage() + for tid in notcovered | covered: + if len(self.rqdata.runtaskentries[tid].depends) == 0: + self.setbuildable(tid) + elif self.rqdata.runtaskentries[tid].depends.issubset(self.runq_complete): + self.setbuildable(tid) - # Secondly process the chains between setscene tasks. - for tid in self.rqdata.runq_setscene_tids: - #bb.warn("Added endpoint 2 %s" % (tid)) - for dep in self.rqdata.runtaskentries[tid].depends: - if tid in sq_revdeps[dep]: - sq_revdeps[dep].remove(tid) - if dep not in endpoints: - endpoints[dep] = set() - #bb.warn(" Added endpoint 3 %s" % (dep)) - endpoints[dep].add(tid) - - self.rqdata.init_progress_reporter.next_stage() - - def process_endpoints(endpoints): - newendpoints = {} - for point, task in endpoints.items(): - tasks = set() - if task: - tasks |= task - if sq_revdeps_new[point]: - tasks |= sq_revdeps_new[point] - sq_revdeps_new[point] = set() - if point in self.rqdata.runq_setscene_tids: - sq_revdeps_new[point] = tasks - tasks = set() - continue - for dep in self.rqdata.runtaskentries[point].depends: - if point in sq_revdeps[dep]: - sq_revdeps[dep].remove(point) - if tasks: - sq_revdeps_new[dep] |= tasks - if len(sq_revdeps[dep]) == 0 and dep not in self.rqdata.runq_setscene_tids: - newendpoints[dep] = task - if len(newendpoints) != 0: - process_endpoints(newendpoints) - - process_endpoints(endpoints) - - self.rqdata.init_progress_reporter.next_stage() - - # Build a list of setscene tasks which are "unskippable" - # These are direct endpoints referenced by the build - endpoints2 = {} - sq_revdeps2 = {} - sq_revdeps_new2 = {} - def process_endpoints2(endpoints): - newendpoints = {} - for point, task in endpoints.items(): - tasks = set([point]) - if task: - tasks |= task - if sq_revdeps_new2[point]: - tasks |= sq_revdeps_new2[point] - sq_revdeps_new2[point] = set() - if point in self.rqdata.runq_setscene_tids: - sq_revdeps_new2[point] = tasks - for dep in self.rqdata.runtaskentries[point].depends: - if point in sq_revdeps2[dep]: - sq_revdeps2[dep].remove(point) - if tasks: - sq_revdeps_new2[dep] |= tasks - if (len(sq_revdeps2[dep]) == 0 or len(sq_revdeps_new2[dep]) != 0) and dep not in self.rqdata.runq_setscene_tids: - newendpoints[dep] = tasks - if len(newendpoints) != 0: - process_endpoints2(newendpoints) - for tid in self.rqdata.runtaskentries: - sq_revdeps2[tid] = copy.copy(self.rqdata.runtaskentries[tid].revdeps) - sq_revdeps_new2[tid] = set() - if (len(sq_revdeps2[tid]) == 0) and tid not in self.rqdata.runq_setscene_tids: - endpoints2[tid] = set() - process_endpoints2(endpoints2) - self.unskippable = [] - for tid in self.rqdata.runq_setscene_tids: - if sq_revdeps_new2[tid]: - self.unskippable.append(tid) + self.tasks_covered = covered + self.tasks_notcovered = notcovered - self.rqdata.init_progress_reporter.next_stage(len(self.rqdata.runtaskentries)) + self.holdoff_tasks = set() - for taskcounter, tid in enumerate(self.rqdata.runtaskentries): - if tid in self.rqdata.runq_setscene_tids: - deps = set() - for dep in sq_revdeps_new[tid]: - deps.add(dep) - sq_revdeps_squash[tid] = deps - elif len(sq_revdeps_new[tid]) != 0: - bb.msg.fatal("RunQueue", "Something went badly wrong during scenequeue generation, aborting. Please report this problem.") - self.rqdata.init_progress_reporter.update(taskcounter) - - self.rqdata.init_progress_reporter.next_stage() - - # Resolve setscene inter-task dependencies - # e.g. do_sometask_setscene[depends] = "targetname:do_someothertask_setscene" - # Note that anything explicitly depended upon will have its reverse dependencies removed to avoid circular dependencies for tid in self.rqdata.runq_setscene_tids: - (mc, fn, taskname, taskfn) = split_tid_mcfn(tid) - realtid = tid + "_setscene" - idepends = self.rqdata.taskData[mc].taskentries[realtid].idepends - self.stamps[tid] = bb.build.stampfile(taskname + "_setscene", self.rqdata.dataCaches[mc], taskfn, noextra=True) - for (depname, idependtask) in idepends: - - if depname not in self.rqdata.taskData[mc].build_targets: - continue + if tid not in self.scenequeue_covered and tid not in self.scenequeue_notcovered: + self.holdoff_tasks.add(tid) - depfn = self.rqdata.taskData[mc].build_targets[depname][0] - if depfn is None: - continue - deptid = depfn + ":" + idependtask.replace("_setscene", "") - if deptid not in self.rqdata.runtaskentries: - bb.msg.fatal("RunQueue", "Task %s depends upon non-existent task %s:%s" % (realtid, depfn, idependtask)) - - if not deptid in self.sq_harddeps: - self.sq_harddeps[deptid] = set() - self.sq_harddeps[deptid].add(tid) - - sq_revdeps_squash[tid].add(deptid) - # Have to zero this to avoid circular dependencies - sq_revdeps_squash[deptid] = set() - - self.rqdata.init_progress_reporter.next_stage() - - for task in self.sq_harddeps: - for dep in self.sq_harddeps[task]: - sq_revdeps_squash[dep].add(task) + for tid in self.holdoff_tasks.copy(): + for dep in self.sqdata.sq_covered_tasks[tid]: + if dep not in self.runq_complete: + self.holdoff_tasks.add(dep) - self.rqdata.init_progress_reporter.next_stage() + self.holdoff_need_update = False - #for tid in sq_revdeps_squash: - # for dep in sq_revdeps_squash[tid]: - # data = data + "\n %s" % dep - # bb.warn("Task %s_setscene: is %s " % (tid, data + def process_possible_migrations(self): - self.sq_deps = {} - self.sq_revdeps = sq_revdeps_squash - self.sq_revdeps2 = copy.deepcopy(self.sq_revdeps) - - for tid in self.sq_revdeps: - self.sq_deps[tid] = set() - for tid in self.sq_revdeps: - for dep in self.sq_revdeps[tid]: - self.sq_deps[dep].add(tid) - - self.rqdata.init_progress_reporter.next_stage() - - for tid in self.sq_revdeps: - if len(self.sq_revdeps[tid]) == 0: - self.runq_buildable.add(tid) - - self.rqdata.init_progress_reporter.finish() - - self.outrightfail = [] - if self.rq.hashvalidate: - sq_hash = [] - sq_hashfn = [] - sq_unihash = [] - sq_fn = [] - sq_taskname = [] - sq_task = [] - noexec = [] - stamppresent = [] - for tid in self.sq_revdeps: - (mc, fn, taskname, taskfn) = split_tid_mcfn(tid) + changed = set() + for tid, unihash in self.updated_taskhash_queue.copy(): + if tid in self.runq_running and tid not in self.runq_complete: + continue - taskdep = self.rqdata.dataCaches[mc].task_deps[taskfn] + self.updated_taskhash_queue.remove((tid, unihash)) + + if unihash != self.rqdata.runtaskentries[tid].unihash: + logger.info("Task %s unihash changed to %s" % (tid, unihash)) + self.rqdata.runtaskentries[tid].unihash = unihash + bb.parse.siggen.set_unihash(tid, unihash) + + # Work out all tasks which depend on this one + total = set() + next = set(self.rqdata.runtaskentries[tid].revdeps) + while next: + current = next.copy() + total = total |next + next = set() + for ntid in current: + next |= self.rqdata.runtaskentries[ntid].revdeps + next.difference_update(total) + + # Now iterate those tasks in dependency order to regenerate their taskhash/unihash + done = set() + next = set(self.rqdata.runtaskentries[tid].revdeps) + while next: + current = next.copy() + next = set() + for tid in current: + if not self.rqdata.runtaskentries[tid].depends.isdisjoint(total): + continue + procdep = [] + for dep in self.rqdata.runtaskentries[tid].depends: + procdep.append(dep) + orighash = self.rqdata.runtaskentries[tid].hash + self.rqdata.runtaskentries[tid].hash = bb.parse.siggen.get_taskhash(tid, procdep, self.rqdata.dataCaches[mc_from_tid(tid)]) + origuni = self.rqdata.runtaskentries[tid].unihash + self.rqdata.runtaskentries[tid].unihash = bb.parse.siggen.get_unihash(tid) + logger.debug(1, "Task %s hash changes: %s->%s %s->%s" % (tid, orighash, self.rqdata.runtaskentries[tid].hash, origuni, self.rqdata.runtaskentries[tid].unihash)) + next |= self.rqdata.runtaskentries[tid].revdeps + changed.add(tid) + total.remove(tid) + next.intersection_update(total) + + if changed: + for mc in self.rq.worker: + self.rq.worker[mc].process.stdin.write(b"" + pickle.dumps(bb.parse.siggen.get_taskhashes()) + b"") + for mc in self.rq.fakeworker: + self.rq.fakeworker[mc].process.stdin.write(b"" + pickle.dumps(bb.parse.siggen.get_taskhashes()) + b"") + + logger.debug(1, pprint.pformat("Tasks changed:\n%s" % (changed))) + + for tid in changed: + if tid not in self.rqdata.runq_setscene_tids: + continue + if tid not in self.pending_migrations: + self.pending_migrations.add(tid) - if 'noexec' in taskdep and taskname in taskdep['noexec']: - noexec.append(tid) - self.task_skip(tid) - bb.build.make_stamp(taskname + "_setscene", self.rqdata.dataCaches[mc], taskfn) - continue + for tid in self.pending_migrations.copy(): + if tid in self.runq_running: + # Too late, task already running, not much we can do now + self.pending_migrations.remove(tid) + continue - if self.rq.check_stamp_task(tid, taskname + "_setscene", cache=self.stampcache): - logger.debug(2, 'Setscene stamp current for task %s', tid) - stamppresent.append(tid) - self.task_skip(tid) - continue + if tid in self.scenequeue_covered or tid in self.sq_live: + # Already ran this setscene task or it running + # Potentially risky, should we report this hash as a match? + logger.info("Already covered setscene for %s so ignoring rehash" % (tid)) + self.pending_migrations.remove(tid) + continue - if self.rq.check_stamp_task(tid, taskname, recurse = True, cache=self.stampcache): - logger.debug(2, 'Normal stamp current for task %s', tid) - stamppresent.append(tid) - self.task_skip(tid) - continue + valid = True + # Check no tasks this covers are running + for dep in self.sqdata.sq_covered_tasks[tid]: + if dep in self.runq_running and dep not in self.runq_complete: + logger.debug(2, "Task %s is running which blocks setscene for %s from running" % (dep, tid)) + valid = False + break + if not valid: + continue - sq_fn.append(fn) - sq_hashfn.append(self.rqdata.dataCaches[mc].hashfn[taskfn]) - sq_hash.append(self.rqdata.runtaskentries[tid].hash) - sq_unihash.append(self.rqdata.runtaskentries[tid].unihash) - sq_taskname.append(taskname) - sq_task.append(tid) + self.pending_migrations.remove(tid) + changed = True - self.cooker.data.setVar("BB_SETSCENE_STAMPCURRENT_COUNT", len(stamppresent)) + if tid in self.tasks_scenequeue_done: + self.tasks_scenequeue_done.remove(tid) + for dep in self.sqdata.sq_covered_tasks[tid]: + if dep not in self.runq_complete: + if dep in self.tasks_scenequeue_done and dep not in self.sqdata.unskippable: + self.tasks_scenequeue_done.remove(dep) + + if tid in self.sq_buildable: + self.sq_buildable.remove(tid) + if tid in self.sq_running: + self.sq_running.remove(tid) + if self.sqdata.sq_revdeps[tid].issubset(self.scenequeue_covered | self.scenequeue_notcovered): + if tid not in self.sq_buildable: + self.sq_buildable.add(tid) + if len(self.sqdata.sq_revdeps[tid]) == 0: + self.sq_buildable.add(tid) + + if tid in self.sqdata.outrightfail: + self.sqdata.outrightfail.remove(tid) + if tid in self.scenequeue_notcovered: + self.scenequeue_notcovered.remove(tid) + if tid in self.scenequeue_covered: + self.scenequeue_covered.remove(tid) + if tid in self.scenequeue_notneeded: + self.scenequeue_notneeded.remove(tid) - valid = self.rq.validate_hash(sq_fn=sq_fn, sq_task=sq_taskname, sq_hash=sq_hash, sq_hashfn=sq_hashfn, - siginfo=False, sq_unihash=sq_unihash, d=self.cooker.data) + (mc, fn, taskname, taskfn) = split_tid_mcfn(tid) + self.sqdata.stamps[tid] = bb.build.stampfile(taskname + "_setscene", self.rqdata.dataCaches[mc], taskfn, noextra=True) - self.cooker.data.delVar("BB_SETSCENE_STAMPCURRENT_COUNT") + if tid in self.stampcache: + del self.stampcache[tid] - valid_new = stamppresent - for v in valid: - valid_new.append(sq_task[v]) + if tid in self.build_stamps: + del self.build_stamps[tid] - for tid in self.sq_revdeps: - if tid not in valid_new and tid not in noexec: - logger.debug(2, 'No package found, so skipping setscene task %s', tid) - self.outrightfail.append(tid) + origvalid = False + if tid in self.sqdata.valid: + origvalid = True + self.sqdone = False + update_scenequeue_data([tid], self.sqdata, self.rqdata, self.rq, self.cooker, self.stampcache, self, summary=False) + if tid in self.sqdata.valid and not origvalid: + logger.info("Setscene task %s became valid" % tid) - logger.info('Executing SetScene Tasks') + if changed: + self.holdoff_need_update = True - self.rq.state = runQueueSceneRun + def scenequeue_updatecounters(self, task, fail=False): - def scenequeue_updatecounters(self, task, fail = False): - for dep in self.sq_deps[task]: - if fail and task in self.sq_harddeps and dep in self.sq_harddeps[task]: + for dep in sorted(self.sqdata.sq_deps[task]): + if fail and task in self.sqdata.sq_harddeps and dep in self.sqdata.sq_harddeps[task]: logger.debug(2, "%s was unavailable and is a hard dependency of %s so skipping" % (task, dep)) - self.scenequeue_updatecounters(dep, fail) + self.sq_task_failoutright(dep) continue - if task not in self.sq_revdeps2[dep]: - # May already have been removed by the fail case above - continue - self.sq_revdeps2[dep].remove(task) - if len(self.sq_revdeps2[dep]) == 0: - self.runq_buildable.add(dep) + if self.sqdata.sq_revdeps[dep].issubset(self.scenequeue_covered | self.scenequeue_notcovered): + if dep not in self.sq_buildable: + self.sq_buildable.add(dep) - def task_completeoutright(self, task): + next = set([task]) + while next: + new = set() + for t in sorted(next): + self.tasks_scenequeue_done.add(t) + # Look down the dependency chain for non-setscene things which this task depends on + # and mark as 'done' + for dep in self.rqdata.runtaskentries[t].depends: + if dep in self.rqdata.runq_setscene_tids or dep in self.tasks_scenequeue_done: + continue + if self.rqdata.runtaskentries[dep].revdeps.issubset(self.tasks_scenequeue_done): + new.add(dep) + next = new + + self.holdoff_need_update = True + + def sq_task_completeoutright(self, task): """ Mark a task as completed Look at the reverse dependencies and mark any task with @@ -2405,7 +2416,7 @@ def task_completeoutright(self, task): self.scenequeue_covered.add(task) self.scenequeue_updatecounters(task) - def check_taskfail(self, task): + def sq_check_taskfail(self, task): if self.rqdata.setscenewhitelist is not None: realtask = task.split('_setscene')[0] (mc, fn, taskname, taskfn) = split_tid_mcfn(realtask) @@ -2414,132 +2425,34 @@ def check_taskfail(self, task): logger.error('Task %s.%s failed' % (pn, taskname + "_setscene")) self.rq.state = runQueueCleanUp - def task_complete(self, task): - self.stats.taskCompleted() - bb.event.fire(sceneQueueTaskCompleted(task, self.stats, self.rq), self.cfgData) - self.task_completeoutright(task) + def sq_task_complete(self, task): + self.sq_stats.taskCompleted() + bb.event.fire(sceneQueueTaskCompleted(task, self.sq_stats, self.rq), self.cfgData) + self.sq_task_completeoutright(task) - def task_fail(self, task, result): - self.stats.taskFailed() - bb.event.fire(sceneQueueTaskFailed(task, self.stats, result, self), self.cfgData) + def sq_task_fail(self, task, result): + self.sq_stats.taskFailed() + bb.event.fire(sceneQueueTaskFailed(task, self.sq_stats, result, self), self.cfgData) self.scenequeue_notcovered.add(task) self.scenequeue_updatecounters(task, True) - self.check_taskfail(task) + self.sq_check_taskfail(task) - def task_failoutright(self, task): - self.runq_running.add(task) - self.runq_buildable.add(task) - self.stats.taskSkipped() - self.stats.taskCompleted() + def sq_task_failoutright(self, task): + self.sq_running.add(task) + self.sq_buildable.add(task) + self.sq_stats.taskSkipped() + self.sq_stats.taskCompleted() self.scenequeue_notcovered.add(task) self.scenequeue_updatecounters(task, True) - def task_skip(self, task): - self.runq_running.add(task) - self.runq_buildable.add(task) - self.task_completeoutright(task) - self.stats.taskSkipped() - self.stats.taskCompleted() - - def execute(self): - """ - Run the tasks in a queue prepared by prepare_runqueue - """ - - self.rq.read_workers() - - task = None - if self.can_start_task(): - # Find the next setscene to run - for nexttask in self.rqdata.runq_setscene_tids: - if nexttask in self.runq_buildable and nexttask not in self.runq_running and self.stamps[nexttask] not in self.build_stamps.values(): - if nexttask in self.unskippable: - logger.debug(2, "Setscene task %s is unskippable" % nexttask) - if nexttask not in self.unskippable and len(self.sq_revdeps[nexttask]) > 0 and self.sq_revdeps[nexttask].issubset(self.scenequeue_covered) and self.check_dependencies(nexttask, self.sq_revdeps[nexttask], True): - fn = fn_from_tid(nexttask) - foundtarget = False - - if nexttask in self.rqdata.target_tids: - foundtarget = True - if not foundtarget: - logger.debug(2, "Skipping setscene for task %s" % nexttask) - self.task_skip(nexttask) - self.scenequeue_notneeded.add(nexttask) - return True - if nexttask in self.outrightfail: - self.task_failoutright(nexttask) - return True - task = nexttask - break - if task is not None: - (mc, fn, taskname, taskfn) = split_tid_mcfn(task) - taskname = taskname + "_setscene" - if self.rq.check_stamp_task(task, taskname_from_tid(task), recurse = True, cache=self.stampcache): - logger.debug(2, 'Stamp for underlying task %s is current, so skipping setscene variant', task) - self.task_failoutright(task) - return True - - if self.cooker.configuration.force: - if task in self.rqdata.target_tids: - self.task_failoutright(task) - return True - - if self.rq.check_stamp_task(task, taskname, cache=self.stampcache): - logger.debug(2, 'Setscene stamp current task %s, so skip it and its dependencies', task) - self.task_skip(task) - return True + def sq_task_skip(self, task): + self.sq_running.add(task) + self.sq_buildable.add(task) + self.sq_task_completeoutright(task) + self.sq_stats.taskSkipped() + self.sq_stats.taskCompleted() - startevent = sceneQueueTaskStarted(task, self.stats, self.rq) - bb.event.fire(startevent, self.cfgData) - - taskdepdata = self.build_taskdepdata(task) - - taskdep = self.rqdata.dataCaches[mc].task_deps[taskfn] - taskhash = self.rqdata.get_task_hash(task) - unihash = self.rqdata.get_task_unihash(task) - if 'fakeroot' in taskdep and taskname in taskdep['fakeroot'] and not self.cooker.configuration.dry_run: - if not mc in self.rq.fakeworker: - self.rq.start_fakeworker(self, mc) - self.rq.fakeworker[mc].process.stdin.write(b"" + pickle.dumps((taskfn, task, taskname, taskhash, unihash, True, self.cooker.collection.get_file_appends(taskfn), taskdepdata, False)) + b"") - self.rq.fakeworker[mc].process.stdin.flush() - else: - self.rq.worker[mc].process.stdin.write(b"" + pickle.dumps((taskfn, task, taskname, taskhash, unihash, True, self.cooker.collection.get_file_appends(taskfn), taskdepdata, False)) + b"") - self.rq.worker[mc].process.stdin.flush() - - self.build_stamps[task] = bb.build.stampfile(taskname, self.rqdata.dataCaches[mc], taskfn, noextra=True) - self.build_stamps2.append(self.build_stamps[task]) - self.runq_running.add(task) - self.stats.taskActive() - if self.can_start_task(): - return True - - if self.stats.active > 0: - self.rq.read_workers() - return self.rq.active_fds() - - #for tid in self.sq_revdeps: - # if tid not in self.runq_running: - # buildable = tid in self.runq_buildable - # revdeps = self.sq_revdeps[tid] - # bb.warn("Found we didn't run %s %s %s" % (tid, buildable, str(revdeps))) - - self.rq.scenequeue_covered = self.scenequeue_covered - self.rq.scenequeue_notcovered = self.scenequeue_notcovered - - logger.debug(1, 'We can skip tasks %s', "\n".join(sorted(self.rq.scenequeue_covered))) - - self.rq.state = runQueueRunInit - - completeevent = sceneQueueComplete(self.stats, self.rq) - bb.event.fire(completeevent, self.cfgData) - - return True - - def runqueue_process_waitpid(self, task, status): - RunQueueExecute.runqueue_process_waitpid(self, task, status) - - - def build_taskdepdata(self, task): + def sq_build_taskdepdata(self, task): def getsetscenedeps(tid): deps = set() (mc, fn, taskname, _) = split_tid_mcfn(tid) @@ -2577,6 +2490,279 @@ def getsetscenedeps(tid): #bb.note("Task %s: " % task + str(taskdepdata).replace("], ", "],\n")) return taskdepdata + def check_setscenewhitelist(self, tid): + # Check task that is going to run against the whitelist + (mc, fn, taskname, taskfn) = split_tid_mcfn(tid) + # Ignore covered tasks + if tid in self.tasks_covered: + return False + # Ignore stamped tasks + if self.rq.check_stamp_task(tid, taskname, cache=self.stampcache): + return False + # Ignore noexec tasks + taskdep = self.rqdata.dataCaches[mc].task_deps[taskfn] + if 'noexec' in taskdep and taskname in taskdep['noexec']: + return False + + pn = self.rqdata.dataCaches[mc].pkg_fn[taskfn] + if not check_setscene_enforce_whitelist(pn, taskname, self.rqdata.setscenewhitelist): + if tid in self.rqdata.runq_setscene_tids: + msg = 'Task %s.%s attempted to execute unexpectedly and should have been setscened' % (pn, taskname) + else: + msg = 'Task %s.%s attempted to execute unexpectedly' % (pn, taskname) + logger.error(msg + '\nThis is usually due to missing setscene tasks. Those missing in this build were: %s' % pprint.pformat(self.scenequeue_notcovered)) + return True + return False + +class SQData(object): + def __init__(self): + # SceneQueue dependencies + self.sq_deps = {} + # SceneQueue reverse dependencies + self.sq_revdeps = {} + # Injected inter-setscene task dependencies + self.sq_harddeps = {} + # Cache of stamp files so duplicates can't run in parallel + self.stamps = {} + # Setscene tasks directly depended upon by the build + self.unskippable = set() + # List of setscene tasks which aren't present + self.outrightfail = set() + # A list of normal tasks a setscene task covers + self.sq_covered_tasks = {} + +def build_scenequeue_data(sqdata, rqdata, rq, cooker, stampcache, sqrq): + + sq_revdeps = {} + sq_revdeps_squash = {} + sq_collated_deps = {} + + # We need to construct a dependency graph for the setscene functions. Intermediate + # dependencies between the setscene tasks only complicate the code. This code + # therefore aims to collapse the huge runqueue dependency tree into a smaller one + # only containing the setscene functions. + + rqdata.init_progress_reporter.next_stage() + + # First process the chains up to the first setscene task. + endpoints = {} + for tid in rqdata.runtaskentries: + sq_revdeps[tid] = copy.copy(rqdata.runtaskentries[tid].revdeps) + sq_revdeps_squash[tid] = set() + if (len(sq_revdeps[tid]) == 0) and tid not in rqdata.runq_setscene_tids: + #bb.warn("Added endpoint %s" % (tid)) + endpoints[tid] = set() + + rqdata.init_progress_reporter.next_stage() + + # Secondly process the chains between setscene tasks. + for tid in rqdata.runq_setscene_tids: + sq_collated_deps[tid] = set() + #bb.warn("Added endpoint 2 %s" % (tid)) + for dep in rqdata.runtaskentries[tid].depends: + if tid in sq_revdeps[dep]: + sq_revdeps[dep].remove(tid) + if dep not in endpoints: + endpoints[dep] = set() + #bb.warn(" Added endpoint 3 %s" % (dep)) + endpoints[dep].add(tid) + + rqdata.init_progress_reporter.next_stage() + + def process_endpoints(endpoints): + newendpoints = {} + for point, task in endpoints.items(): + tasks = set() + if task: + tasks |= task + if sq_revdeps_squash[point]: + tasks |= sq_revdeps_squash[point] + if point not in rqdata.runq_setscene_tids: + for t in tasks: + sq_collated_deps[t].add(point) + sq_revdeps_squash[point] = set() + if point in rqdata.runq_setscene_tids: + sq_revdeps_squash[point] = tasks + tasks = set() + continue + for dep in rqdata.runtaskentries[point].depends: + if point in sq_revdeps[dep]: + sq_revdeps[dep].remove(point) + if tasks: + sq_revdeps_squash[dep] |= tasks + if len(sq_revdeps[dep]) == 0 and dep not in rqdata.runq_setscene_tids: + newendpoints[dep] = task + if len(newendpoints) != 0: + process_endpoints(newendpoints) + + process_endpoints(endpoints) + + rqdata.init_progress_reporter.next_stage() + + # Build a list of tasks which are "unskippable" + # These are direct endpoints referenced by the build upto and including setscene tasks + # Take the build endpoints (no revdeps) and find the sstate tasks they depend upon + new = True + for tid in rqdata.runtaskentries: + if len(rqdata.runtaskentries[tid].revdeps) == 0: + sqdata.unskippable.add(tid) + sqdata.unskippable |= sqrq.cantskip + while new: + new = False + orig = sqdata.unskippable.copy() + for tid in sorted(orig, reverse=True): + if tid in rqdata.runq_setscene_tids: + continue + if len(rqdata.runtaskentries[tid].depends) == 0: + # These are tasks which have no setscene tasks in their chain, need to mark as directly buildable + sqrq.setbuildable(tid) + sqdata.unskippable |= rqdata.runtaskentries[tid].depends + if sqdata.unskippable != orig: + new = True + + sqrq.tasks_scenequeue_done |= sqdata.unskippable.difference(rqdata.runq_setscene_tids) + + rqdata.init_progress_reporter.next_stage(len(rqdata.runtaskentries)) + + # Sanity check all dependencies could be changed to setscene task references + for taskcounter, tid in enumerate(rqdata.runtaskentries): + if tid in rqdata.runq_setscene_tids: + pass + elif len(sq_revdeps_squash[tid]) != 0: + bb.msg.fatal("RunQueue", "Something went badly wrong during scenequeue generation, aborting. Please report this problem.") + else: + del sq_revdeps_squash[tid] + rqdata.init_progress_reporter.update(taskcounter) + + rqdata.init_progress_reporter.next_stage() + + # Resolve setscene inter-task dependencies + # e.g. do_sometask_setscene[depends] = "targetname:do_someothertask_setscene" + # Note that anything explicitly depended upon will have its reverse dependencies removed to avoid circular dependencies + for tid in rqdata.runq_setscene_tids: + (mc, fn, taskname, taskfn) = split_tid_mcfn(tid) + realtid = tid + "_setscene" + idepends = rqdata.taskData[mc].taskentries[realtid].idepends + sqdata.stamps[tid] = bb.build.stampfile(taskname + "_setscene", rqdata.dataCaches[mc], taskfn, noextra=True) + for (depname, idependtask) in idepends: + + if depname not in rqdata.taskData[mc].build_targets: + continue + + depfn = rqdata.taskData[mc].build_targets[depname][0] + if depfn is None: + continue + deptid = depfn + ":" + idependtask.replace("_setscene", "") + if deptid not in rqdata.runtaskentries: + bb.msg.fatal("RunQueue", "Task %s depends upon non-existent task %s:%s" % (realtid, depfn, idependtask)) + + if not deptid in sqdata.sq_harddeps: + sqdata.sq_harddeps[deptid] = set() + sqdata.sq_harddeps[deptid].add(tid) + + sq_revdeps_squash[tid].add(deptid) + # Have to zero this to avoid circular dependencies + sq_revdeps_squash[deptid] = set() + + rqdata.init_progress_reporter.next_stage() + + for task in sqdata.sq_harddeps: + for dep in sqdata.sq_harddeps[task]: + sq_revdeps_squash[dep].add(task) + + rqdata.init_progress_reporter.next_stage() + + #for tid in sq_revdeps_squash: + # data = "" + # for dep in sq_revdeps_squash[tid]: + # data = data + "\n %s" % dep + # bb.warn("Task %s_setscene: is %s " % (tid, data)) + + sqdata.sq_revdeps = sq_revdeps_squash + sqdata.sq_covered_tasks = sq_collated_deps + + # Build reverse version of revdeps to populate deps structure + for tid in sqdata.sq_revdeps: + sqdata.sq_deps[tid] = set() + for tid in sqdata.sq_revdeps: + for dep in sqdata.sq_revdeps[tid]: + sqdata.sq_deps[dep].add(tid) + + rqdata.init_progress_reporter.next_stage() + + sqdata.multiconfigs = set() + for tid in sqdata.sq_revdeps: + sqdata.multiconfigs.add(mc_from_tid(tid)) + if len(sqdata.sq_revdeps[tid]) == 0: + sqrq.sq_buildable.add(tid) + + rqdata.init_progress_reporter.finish() + + sqdata.noexec = set() + sqdata.stamppresent = set() + sqdata.valid = set() + + update_scenequeue_data(sqdata.sq_revdeps, sqdata, rqdata, rq, cooker, stampcache, sqrq, summary=True) + +def update_scenequeue_data(tids, sqdata, rqdata, rq, cooker, stampcache, sqrq, summary=True): + + tocheck = set() + + for tid in sorted(tids): + if tid in sqdata.stamppresent: + sqdata.stamppresent.remove(tid) + if tid in sqdata.valid: + sqdata.valid.remove(tid) + + (mc, fn, taskname, taskfn) = split_tid_mcfn(tid) + + taskdep = rqdata.dataCaches[mc].task_deps[taskfn] + + if 'noexec' in taskdep and taskname in taskdep['noexec']: + sqdata.noexec.add(tid) + sqrq.sq_task_skip(tid) + bb.build.make_stamp(taskname + "_setscene", rqdata.dataCaches[mc], taskfn) + continue + + if rq.check_stamp_task(tid, taskname + "_setscene", cache=stampcache): + logger.debug(2, 'Setscene stamp current for task %s', tid) + sqdata.stamppresent.add(tid) + sqrq.sq_task_skip(tid) + continue + + if rq.check_stamp_task(tid, taskname, recurse = True, cache=stampcache): + logger.debug(2, 'Normal stamp current for task %s', tid) + sqdata.stamppresent.add(tid) + sqrq.sq_task_skip(tid) + continue + + tocheck.add(tid) + + sqdata.valid |= rq.validate_hashes(tocheck, cooker.data, len(sqdata.stamppresent), False, summary=summary) + + sqdata.hashes = {} + for mc in sorted(sqdata.multiconfigs): + for tid in sorted(sqdata.sq_revdeps): + if mc_from_tid(tid) != mc: + continue + if tid in sqdata.stamppresent: + continue + if tid in sqdata.valid: + continue + if tid in sqdata.noexec: + continue + if tid in sqrq.scenequeue_notcovered: + continue + sqdata.outrightfail.add(tid) + + h = pending_hash_index(tid, rqdata) + if h not in sqdata.hashes: + sqdata.hashes[h] = tid + else: + sqrq.sq_deferred[tid] = sqdata.hashes[h] + bb.warn("Deferring %s after %s" % (tid, sqdata.hashes[h])) + + class TaskFailure(Exception): """ Exception raised when a task in a runqueue fails @@ -2683,6 +2869,15 @@ def __init__(self, task, stats, rq, reason): runQueueEvent.__init__(self, task, stats, rq) self.reason = reason +class taskUniHashUpdate(bb.event.Event): + """ + Base runQueue event class + """ + def __init__(self, task, unihash): + self.taskid = task + self.unihash = unihash + bb.event.Event.__init__(self) + class runQueuePipe(): """ Abstraction for a pipe between a worker thread and the server @@ -2725,6 +2920,8 @@ def read(self): except ValueError as e: bb.msg.fatal("RunQueue", "failed load pickle '%s': '%s'" % (e, self.queue[7:index])) bb.event.fire_from_worker(event, self.d) + if isinstance(event, taskUniHashUpdate): + self.rqexec.updated_taskhash_queue.append((event.taskid, event.unihash)) found = True self.queue = self.queue[index+8:] index = self.queue.find(b"") diff --git a/Contrib-Inspur/openbmc/poky/bitbake/lib/bb/server/process.py b/Contrib-Inspur/openbmc/poky/bitbake/lib/bb/server/process.py index f901fe50..69aae626 100644 --- a/Contrib-Inspur/openbmc/poky/bitbake/lib/bb/server/process.py +++ b/Contrib-Inspur/openbmc/poky/bitbake/lib/bb/server/process.py @@ -456,7 +456,10 @@ def _startServer(self): self.configuration.setServerRegIdleCallback(server.register_idle_function) os.close(self.readypipe) writer = ConnectionWriter(self.readypipein) - self.cooker = bb.cooker.BBCooker(self.configuration, self.featureset) + try: + self.cooker = bb.cooker.BBCooker(self.configuration, self.featureset) + except bb.BBHandledException: + return None writer.send("r") writer.close() server.cooker = self.cooker diff --git a/Contrib-Inspur/openbmc/poky/bitbake/lib/bb/siggen.py b/Contrib-Inspur/openbmc/poky/bitbake/lib/bb/siggen.py index fe580e48..a4bb1ff7 100644 --- a/Contrib-Inspur/openbmc/poky/bitbake/lib/bb/siggen.py +++ b/Contrib-Inspur/openbmc/poky/bitbake/lib/bb/siggen.py @@ -12,6 +12,8 @@ import difflib import simplediff from bb.checksum import FileChecksumCache +from bb import runqueue +import hashserv logger = logging.getLogger('BitBake.SigGen') @@ -41,15 +43,18 @@ def __init__(self, data): self.runtaskdeps = {} self.file_checksum_values = {} self.taints = {} + self.unitaskhashes = {} + self.setscenetasks = {} def finalise(self, fn, d, varient): return - def get_unihash(self, task): - return self.taskhash[task] + def get_unihash(self, tid): + return self.taskhash[tid] - def get_taskhash(self, fn, task, deps, dataCache): - return "0" + def get_taskhash(self, tid, deps, dataCache): + self.taskhash[tid] = hashlib.sha256(tid.encode("utf-8")).hexdigest() + return self.taskhash[tid] def writeout_file_checksum_cache(self): """Write/update the file checksum cache onto disk""" @@ -71,14 +76,25 @@ def dump_sigs(self, dataCache, options): return def get_taskdata(self): - return (self.runtaskdeps, self.taskhash, self.file_checksum_values, self.taints, self.basehash) + return (self.runtaskdeps, self.taskhash, self.file_checksum_values, self.taints, self.basehash, self.unitaskhashes, self.setscenetasks) def set_taskdata(self, data): - self.runtaskdeps, self.taskhash, self.file_checksum_values, self.taints, self.basehash = data + self.runtaskdeps, self.taskhash, self.file_checksum_values, self.taints, self.basehash, self.unitaskhashes, self.setscenetasks = data def reset(self, data): self.__init__(data) + def get_taskhashes(self): + return self.taskhash, self.unitaskhashes + + def set_taskhashes(self, hashes): + self.taskhash, self.unitaskhashes = hashes + + def save_unitaskhashes(self): + return + + def set_setscene_tasks(self, setscene_tasks): + return class SignatureGeneratorBasic(SignatureGenerator): """ @@ -94,7 +110,7 @@ def __init__(self, data): self.taints = {} self.gendeps = {} self.lookupcache = {} - self.pkgnameextract = re.compile(r"(?P.*)\..*") + self.setscenetasks = {} self.basewhitelist = set((data.getVar("BB_HASHBASE_WHITELIST") or "").split()) self.taskwhitelist = None self.init_rundepcheck(data) @@ -105,6 +121,9 @@ def __init__(self, data): else: self.checksum_cache = None + self.unihash_cache = bb.cache.SimpleCache("1") + self.unitaskhashes = self.unihash_cache.init_cache(data, "bb_unihashes.dat", {}) + def init_rundepcheck(self, data): self.taskwhitelist = data.getVar("BB_HASHTASK_WHITELIST") or None if self.taskwhitelist: @@ -120,16 +139,16 @@ def _build_data(self, fn, d): taskdeps, basehash = bb.data.generate_dependency_hash(tasklist, gendeps, lookupcache, self.basewhitelist, fn) for task in tasklist: - k = fn + "." + task - if not ignore_mismatch and k in self.basehash and self.basehash[k] != basehash[k]: - bb.error("When reparsing %s, the basehash value changed from %s to %s. The metadata is not deterministic and this needs to be fixed." % (k, self.basehash[k], basehash[k])) + tid = fn + ":" + task + if not ignore_mismatch and tid in self.basehash and self.basehash[tid] != basehash[tid]: + bb.error("When reparsing %s, the basehash value changed from %s to %s. The metadata is not deterministic and this needs to be fixed." % (tid, self.basehash[tid], basehash[tid])) bb.error("The following commands may help:") cmd = "$ bitbake %s -c%s" % (d.getVar('PN'), task) # Make sure sigdata is dumped before run printdiff bb.error("%s -Snone" % cmd) bb.error("Then:") bb.error("%s -Sprintdiff\n" % cmd) - self.basehash[k] = basehash[k] + self.basehash[tid] = basehash[tid] self.taskdeps[fn] = taskdeps self.gendeps[fn] = gendeps @@ -137,6 +156,9 @@ def _build_data(self, fn, d): return taskdeps + def set_setscene_tasks(self, setscene_tasks): + self.setscenetasks = setscene_tasks + def finalise(self, fn, d, variant): mc = d.getVar("__BBMULTICONFIG", False) or "" @@ -156,7 +178,7 @@ def finalise(self, fn, d, variant): # self.dump_sigtask(fn, task, d.getVar("STAMP"), False) for task in taskdeps: - d.setVar("BB_BASEHASH_task-%s" % task, self.basehash[fn + "." + task]) + d.setVar("BB_BASEHASH_task-%s" % task, self.basehash[fn + ":" + task]) def rundep_check(self, fn, recipename, task, dep, depname, dataCache): # Return True if we should keep the dependency, False to drop it @@ -176,33 +198,26 @@ def read_taint(self, fn, task, stampbase): pass return taint - def get_taskhash(self, fn, task, deps, dataCache): + def get_taskhash(self, tid, deps, dataCache): - mc = '' - if fn.startswith('mc:'): - mc = fn.split(':')[1] - k = fn + "." + task + (mc, _, task, fn) = bb.runqueue.split_tid_mcfn(tid) - data = dataCache.basetaskhash[k] - self.basehash[k] = data - self.runtaskdeps[k] = [] - self.file_checksum_values[k] = [] + data = dataCache.basetaskhash[tid] + self.basehash[tid] = data + self.runtaskdeps[tid] = [] + self.file_checksum_values[tid] = [] recipename = dataCache.pkg_fn[fn] for dep in sorted(deps, key=clean_basepath): - pkgname = self.pkgnameextract.search(dep).group('fn') - if mc: - depmc = pkgname.split(':')[1] - if mc != depmc: - continue - if dep.startswith("mc:") and not mc: + (depmc, _, deptaskname, depfn) = bb.runqueue.split_tid_mcfn(dep) + if mc != depmc: continue - depname = dataCache.pkg_fn[pkgname] + depname = dataCache.pkg_fn[depfn] if not self.rundep_check(fn, recipename, task, dep, depname, dataCache): continue if dep not in self.taskhash: bb.fatal("%s is not in taskhash, caller isn't calling in dependency order?" % dep) data = data + self.get_unihash(dep) - self.runtaskdeps[k].append(dep) + self.runtaskdeps[tid].append(dep) if task in dataCache.file_checksums[fn]: if self.checksum_cache: @@ -210,7 +225,7 @@ def get_taskhash(self, fn, task, deps, dataCache): else: checksums = bb.fetch2.get_file_checksums(dataCache.file_checksums[fn][task], recipename) for (f,cs) in checksums: - self.file_checksum_values[k].append((f,cs)) + self.file_checksum_values[tid].append((f,cs)) if cs: data = data + cs @@ -220,16 +235,16 @@ def get_taskhash(self, fn, task, deps, dataCache): import uuid taint = str(uuid.uuid4()) data = data + taint - self.taints[k] = "nostamp:" + taint + self.taints[tid] = "nostamp:" + taint taint = self.read_taint(fn, task, dataCache.stamp[fn]) if taint: data = data + taint - self.taints[k] = taint - logger.warning("%s is tainted from a forced run" % k) + self.taints[tid] = taint + logger.warning("%s is tainted from a forced run" % tid) h = hashlib.sha256(data.encode("utf-8")).hexdigest() - self.taskhash[k] = h + self.taskhash[tid] = h #d.setVar("BB_TASKHASH_task-%s" % task, taskhash[task]) return h @@ -242,17 +257,20 @@ def writeout_file_checksum_cache(self): bb.fetch2.fetcher_parse_save() bb.fetch2.fetcher_parse_done() + def save_unitaskhashes(self): + self.unihash_cache.save(self.unitaskhashes) + def dump_sigtask(self, fn, task, stampbase, runtime): - k = fn + "." + task + tid = fn + ":" + task referencestamp = stampbase if isinstance(runtime, str) and runtime.startswith("customfile"): sigfile = stampbase referencestamp = runtime[11:] - elif runtime and k in self.taskhash: - sigfile = stampbase + "." + task + ".sigdata" + "." + self.taskhash[k] + elif runtime and tid in self.taskhash: + sigfile = stampbase + "." + task + ".sigdata" + "." + self.get_unihash(tid) else: - sigfile = stampbase + "." + task + ".sigbasedata" + "." + self.basehash[k] + sigfile = stampbase + "." + task + ".sigbasedata" + "." + self.basehash[tid] bb.utils.mkdirhier(os.path.dirname(sigfile)) @@ -261,7 +279,7 @@ def dump_sigtask(self, fn, task, stampbase, runtime): data['basewhitelist'] = self.basewhitelist data['taskwhitelist'] = self.taskwhitelist data['taskdeps'] = self.taskdeps[fn][task] - data['basehash'] = self.basehash[k] + data['basehash'] = self.basehash[tid] data['gendeps'] = {} data['varvals'] = {} data['varvals'][task] = self.lookupcache[fn][task] @@ -271,30 +289,31 @@ def dump_sigtask(self, fn, task, stampbase, runtime): data['gendeps'][dep] = self.gendeps[fn][dep] data['varvals'][dep] = self.lookupcache[fn][dep] - if runtime and k in self.taskhash: - data['runtaskdeps'] = self.runtaskdeps[k] - data['file_checksum_values'] = [(os.path.basename(f), cs) for f,cs in self.file_checksum_values[k]] + if runtime and tid in self.taskhash: + data['runtaskdeps'] = self.runtaskdeps[tid] + data['file_checksum_values'] = [(os.path.basename(f), cs) for f,cs in self.file_checksum_values[tid]] data['runtaskhashes'] = {} for dep in data['runtaskdeps']: data['runtaskhashes'][dep] = self.get_unihash(dep) - data['taskhash'] = self.taskhash[k] + data['taskhash'] = self.taskhash[tid] + data['unihash'] = self.get_unihash(tid) taint = self.read_taint(fn, task, referencestamp) if taint: data['taint'] = taint - if runtime and k in self.taints: - if 'nostamp:' in self.taints[k]: - data['taint'] = self.taints[k] + if runtime and tid in self.taints: + if 'nostamp:' in self.taints[tid]: + data['taint'] = self.taints[tid] computed_basehash = calc_basehash(data) - if computed_basehash != self.basehash[k]: - bb.error("Basehash mismatch %s versus %s for %s" % (computed_basehash, self.basehash[k], k)) - if runtime and k in self.taskhash: + if computed_basehash != self.basehash[tid]: + bb.error("Basehash mismatch %s versus %s for %s" % (computed_basehash, self.basehash[tid], tid)) + if runtime and tid in self.taskhash: computed_taskhash = calc_taskhash(data) - if computed_taskhash != self.taskhash[k]: - bb.error("Taskhash mismatch %s versus %s for %s" % (computed_taskhash, self.taskhash[k], k)) - sigfile = sigfile.replace(self.taskhash[k], computed_taskhash) + if computed_taskhash != self.taskhash[tid]: + bb.error("Taskhash mismatch %s versus %s for %s" % (computed_taskhash, self.taskhash[tid], tid)) + sigfile = sigfile.replace(self.taskhash[tid], computed_taskhash) fd, tmpfile = tempfile.mkstemp(dir=os.path.dirname(sigfile), prefix="sigtask.") try: @@ -314,34 +333,33 @@ def dump_sigfn(self, fn, dataCaches, options): if fn in self.taskdeps: for task in self.taskdeps[fn]: tid = fn + ":" + task - (mc, _, _) = bb.runqueue.split_tid(tid) - k = fn + "." + task - if k not in self.taskhash: + mc = bb.runqueue.mc_from_tid(tid) + if tid not in self.taskhash: continue - if dataCaches[mc].basetaskhash[k] != self.basehash[k]: - bb.error("Bitbake's cached basehash does not match the one we just generated (%s)!" % k) - bb.error("The mismatched hashes were %s and %s" % (dataCaches[mc].basetaskhash[k], self.basehash[k])) + if dataCaches[mc].basetaskhash[tid] != self.basehash[tid]: + bb.error("Bitbake's cached basehash does not match the one we just generated (%s)!" % tid) + bb.error("The mismatched hashes were %s and %s" % (dataCaches[mc].basetaskhash[tid], self.basehash[tid])) self.dump_sigtask(fn, task, dataCaches[mc].stamp[fn], True) class SignatureGeneratorBasicHash(SignatureGeneratorBasic): name = "basichash" - def get_stampfile_hash(self, task): - if task in self.taskhash: - return self.taskhash[task] + def get_stampfile_hash(self, tid): + if tid in self.taskhash: + return self.taskhash[tid] # If task is not in basehash, then error - return self.basehash[task] + return self.basehash[tid] def stampfile(self, stampbase, fn, taskname, extrainfo, clean=False): if taskname != "do_setscene" and taskname.endswith("_setscene"): - k = fn + "." + taskname[:-9] + tid = fn + ":" + taskname[:-9] else: - k = fn + "." + taskname + tid = fn + ":" + taskname if clean: h = "*" else: - h = self.get_stampfile_hash(k) + h = self.get_stampfile_hash(tid) return ("%s.%s.%s.%s" % (stampbase, taskname, h, extrainfo)).rstrip('.') @@ -352,6 +370,172 @@ def invalidate_task(self, task, d, fn): bb.note("Tainting hash to force rebuild of task %s, %s" % (fn, task)) bb.build.write_taint(task, d, fn) +class SignatureGeneratorUniHashMixIn(object): + def get_taskdata(self): + return (self.server, self.method) + super().get_taskdata() + + def set_taskdata(self, data): + self.server, self.method = data[:2] + super().set_taskdata(data[2:]) + + def client(self): + if getattr(self, '_client', None) is None: + self._client = hashserv.create_client(self.server) + return self._client + + def __get_task_unihash_key(self, tid): + # TODO: The key only *needs* to be the taskhash, the tid is just + # convenient + return '%s:%s' % (tid.rsplit("/", 1)[1], self.taskhash[tid]) + + def get_stampfile_hash(self, tid): + if tid in self.taskhash: + # If a unique hash is reported, use it as the stampfile hash. This + # ensures that if a task won't be re-run if the taskhash changes, + # but it would result in the same output hash + unihash = self.unitaskhashes.get(self.__get_task_unihash_key(tid), None) + if unihash is not None: + return unihash + + return super().get_stampfile_hash(tid) + + def set_unihash(self, tid, unihash): + self.unitaskhashes[self.__get_task_unihash_key(tid)] = unihash + + def get_unihash(self, tid): + taskhash = self.taskhash[tid] + + # If its not a setscene task we can return + if self.setscenetasks and tid not in self.setscenetasks: + return taskhash + + key = self.__get_task_unihash_key(tid) + + # TODO: This cache can grow unbounded. It probably only needs to keep + # for each task + unihash = self.unitaskhashes.get(key, None) + if unihash is not None: + return unihash + + # In the absence of being able to discover a unique hash from the + # server, make it be equivalent to the taskhash. The unique "hash" only + # really needs to be a unique string (not even necessarily a hash), but + # making it match the taskhash has a few advantages: + # + # 1) All of the sstate code that assumes hashes can be the same + # 2) It provides maximal compatibility with builders that don't use + # an equivalency server + # 3) The value is easy for multiple independent builders to derive the + # same unique hash from the same input. This means that if the + # independent builders find the same taskhash, but it isn't reported + # to the server, there is a better chance that they will agree on + # the unique hash. + unihash = taskhash + + try: + data = self.client().get_unihash(self.method, self.taskhash[tid]) + if data: + unihash = data + # A unique hash equal to the taskhash is not very interesting, + # so it is reported it at debug level 2. If they differ, that + # is much more interesting, so it is reported at debug level 1 + bb.debug((1, 2)[unihash == taskhash], 'Found unihash %s in place of %s for %s from %s' % (unihash, taskhash, tid, self.server)) + else: + bb.debug(2, 'No reported unihash for %s:%s from %s' % (tid, taskhash, self.server)) + except hashserv.client.HashConnectionError as e: + bb.warn('Error contacting Hash Equivalence Server %s: %s' % (self.server, str(e))) + + self.unitaskhashes[key] = unihash + return unihash + + def report_unihash(self, path, task, d): + import importlib + + taskhash = d.getVar('BB_TASKHASH') + unihash = d.getVar('BB_UNIHASH') + report_taskdata = d.getVar('SSTATE_HASHEQUIV_REPORT_TASKDATA') == '1' + tempdir = d.getVar('T') + fn = d.getVar('BB_FILENAME') + tid = fn + ':do_' + task + key = tid.rsplit("/", 1)[1] + ':' + taskhash + + if self.setscenetasks and tid not in self.setscenetasks: + return + + # Sanity checks + cache_unihash = self.unitaskhashes.get(key, None) + if cache_unihash is None: + bb.fatal('%s not in unihash cache. Please report this error' % key) + + if cache_unihash != unihash: + bb.fatal("Cache unihash %s doesn't match BB_UNIHASH %s" % (cache_unihash, unihash)) + + sigfile = None + sigfile_name = "depsig.do_%s.%d" % (task, os.getpid()) + sigfile_link = "depsig.do_%s" % task + + try: + sigfile = open(os.path.join(tempdir, sigfile_name), 'w+b') + + locs = {'path': path, 'sigfile': sigfile, 'task': task, 'd': d} + + if "." in self.method: + (module, method) = self.method.rsplit('.', 1) + locs['method'] = getattr(importlib.import_module(module), method) + outhash = bb.utils.better_eval('method(path, sigfile, task, d)', locs) + else: + outhash = bb.utils.better_eval(self.method + '(path, sigfile, task, d)', locs) + + try: + extra_data = {} + + owner = d.getVar('SSTATE_HASHEQUIV_OWNER') + if owner: + extra_data['owner'] = owner + + if report_taskdata: + sigfile.seek(0) + + extra_data['PN'] = d.getVar('PN') + extra_data['PV'] = d.getVar('PV') + extra_data['PR'] = d.getVar('PR') + extra_data['task'] = task + extra_data['outhash_siginfo'] = sigfile.read().decode('utf-8') + + data = self.client().report_unihash(taskhash, self.method, outhash, unihash, extra_data) + new_unihash = data['unihash'] + + if new_unihash != unihash: + bb.debug(1, 'Task %s unihash changed %s -> %s by server %s' % (taskhash, unihash, new_unihash, self.server)) + bb.event.fire(bb.runqueue.taskUniHashUpdate(fn + ':do_' + task, new_unihash), d) + else: + bb.debug(1, 'Reported task %s as unihash %s to %s' % (taskhash, unihash, self.server)) + except hashserv.client.HashConnectionError as e: + bb.warn('Error contacting Hash Equivalence Server %s: %s' % (self.server, str(e))) + finally: + if sigfile: + sigfile.close() + + sigfile_link_path = os.path.join(tempdir, sigfile_link) + bb.utils.remove(sigfile_link_path) + + try: + os.symlink(sigfile_name, sigfile_link_path) + except OSError: + pass + + +# +# Dummy class used for bitbake-selftest +# +class SignatureGeneratorTestEquivHash(SignatureGeneratorUniHashMixIn, SignatureGeneratorBasicHash): + name = "TestEquivHash" + def init_rundepcheck(self, data): + super().init_rundepcheck(data) + self.server = data.getVar('BB_HASHSERVE') + self.method = "sstate_output_hash" + + def dump_this_task(outfile, d): import bb.parse fn = d.getVar("BB_FILENAME") @@ -643,9 +827,9 @@ def file_checksums_diff(a, b): a_taint = a_data.get('taint', None) b_taint = b_data.get('taint', None) if a_taint != b_taint: - if a_taint.startswith('nostamp:'): + if a_taint and a_taint.startswith('nostamp:'): a_taint = a_taint.replace('nostamp:', 'nostamp(uuid4):') - if b_taint.startswith('nostamp:'): + if b_taint and b_taint.startswith('nostamp:'): b_taint = b_taint.replace('nostamp:', 'nostamp(uuid4):') output.append(color_format("{color_title}Taint (by forced/invalidated task) changed{color_default} from %s to %s") % (a_taint, b_taint)) diff --git a/Contrib-Inspur/openbmc/poky/bitbake/lib/bb/taskdata.py b/Contrib-Inspur/openbmc/poky/bitbake/lib/bb/taskdata.py index d13bd7c3..8c25e09e 100644 --- a/Contrib-Inspur/openbmc/poky/bitbake/lib/bb/taskdata.py +++ b/Contrib-Inspur/openbmc/poky/bitbake/lib/bb/taskdata.py @@ -1,4 +1,3 @@ -#!/usr/bin/env python """ BitBake 'TaskData' implementation diff --git a/Contrib-Inspur/openbmc/poky/bitbake/lib/bb/tests/data.py b/Contrib-Inspur/openbmc/poky/bitbake/lib/bb/tests/data.py index 3cf5abec..3e49984c 100644 --- a/Contrib-Inspur/openbmc/poky/bitbake/lib/bb/tests/data.py +++ b/Contrib-Inspur/openbmc/poky/bitbake/lib/bb/tests/data.py @@ -381,6 +381,19 @@ def test_remove_with_override(self): self.d.setVar("OVERRIDES", "foo:bar:some_val") self.assertEqual(self.d.getVar("TEST"), " testvalue5") + def test_append_and_override_1(self): + self.d.setVar("TEST_append", "testvalue2") + self.d.setVar("TEST_bar", "testvalue3") + self.assertEqual(self.d.getVar("TEST"), "testvalue3testvalue2") + + def test_append_and_override_2(self): + self.d.setVar("TEST_append_bar", "testvalue2") + self.assertEqual(self.d.getVar("TEST"), "testvaluetestvalue2") + + def test_append_and_override_3(self): + self.d.setVar("TEST_bar_append", "testvalue2") + self.assertEqual(self.d.getVar("TEST"), "testvalue2") + # Test an override with _ in it based on a real world OE issue def test_underscore_override(self): self.d.setVar("TARGET_ARCH", "x86_64") @@ -466,7 +479,7 @@ def gettask_bashhash(taskname, d): tasklist, gendeps, lookupcache = bb.data.generate_dependencies(d) taskdeps, basehash = bb.data.generate_dependency_hash(tasklist, gendeps, lookupcache, set(), "somefile") bb.warn(str(lookupcache)) - return basehash["somefile." + taskname] + return basehash["somefile:" + taskname] d = bb.data.init() d.setVar("__BBTASKS", ["mytask"]) diff --git a/Contrib-Inspur/openbmc/poky/bitbake/lib/bb/tests/event.py b/Contrib-Inspur/openbmc/poky/bitbake/lib/bb/tests/event.py index b6e40c6a..9229b63d 100644 --- a/Contrib-Inspur/openbmc/poky/bitbake/lib/bb/tests/event.py +++ b/Contrib-Inspur/openbmc/poky/bitbake/lib/bb/tests/event.py @@ -561,14 +561,6 @@ def test_RecipeParsed(self): self.assertEqual(event.fn(1), callback(1)) self.assertEqual(event.pid, EventClassesTest._worker_pid) - def test_StampUpdate(self): - targets = ["foo", "bar"] - stampfns = [lambda:"foobar"] - event = bb.event.StampUpdate(targets, stampfns) - self.assertEqual(event.targets, targets) - self.assertEqual(event.stampPrefix, stampfns) - self.assertEqual(event.pid, EventClassesTest._worker_pid) - def test_BuildBase(self): """ Test base class for bitbake build events """ name = "foo" diff --git a/Contrib-Inspur/openbmc/poky/bitbake/lib/bb/tests/fetch.py b/Contrib-Inspur/openbmc/poky/bitbake/lib/bb/tests/fetch.py index 16f975b1..83fad3ff 100644 --- a/Contrib-Inspur/openbmc/poky/bitbake/lib/bb/tests/fetch.py +++ b/Contrib-Inspur/openbmc/poky/bitbake/lib/bb/tests/fetch.py @@ -899,6 +899,7 @@ def test_git_submodule(self): if os.path.exists(os.path.join(repo_path, 'bitbake-gitsm-test1')): self.assertTrue(os.path.exists(os.path.join(repo_path, 'bitbake-gitsm-test1', 'bitbake')), msg='submodule of submodule missing') + @skipIfNoNetwork() def test_git_submodule_dbus_broker(self): # The following external repositories have show failures in fetch and unpack operations # We want to avoid regressions! @@ -916,6 +917,7 @@ def test_git_submodule_dbus_broker(self): self.assertTrue(os.path.exists(os.path.join(repo_path, '.git/modules/subprojects/c-sundry/config')), msg='Missing submodule config "subprojects/c-sundry"') self.assertTrue(os.path.exists(os.path.join(repo_path, '.git/modules/subprojects/c-utf8/config')), msg='Missing submodule config "subprojects/c-utf8"') + @skipIfNoNetwork() def test_git_submodule_CLI11(self): url = "gitsm://github.com/CLIUtils/CLI11;protocol=git;rev=bd4dc911847d0cde7a6b41dfa626a85aab213baf" fetcher = bb.fetch.Fetch([url], self.d) @@ -929,6 +931,7 @@ def test_git_submodule_CLI11(self): self.assertTrue(os.path.exists(os.path.join(repo_path, '.git/modules/extern/json/config')), msg='Missing submodule config "extern/json"') self.assertTrue(os.path.exists(os.path.join(repo_path, '.git/modules/extern/sanitizers/config')), msg='Missing submodule config "extern/sanitizers"') + @skipIfNoNetwork() def test_git_submodule_update_CLI11(self): """ Prevent regression on update detection not finding missing submodule, or modules without needed commits """ url = "gitsm://github.com/CLIUtils/CLI11;protocol=git;rev=cf6a99fa69aaefe477cc52e3ef4a7d2d7fa40714" @@ -948,6 +951,7 @@ def test_git_submodule_update_CLI11(self): self.assertTrue(os.path.exists(os.path.join(repo_path, '.git/modules/extern/json/config')), msg='Missing submodule config "extern/json"') self.assertTrue(os.path.exists(os.path.join(repo_path, '.git/modules/extern/sanitizers/config')), msg='Missing submodule config "extern/sanitizers"') + @skipIfNoNetwork() def test_git_submodule_aktualizr(self): url = "gitsm://github.com/advancedtelematic/aktualizr;branch=master;protocol=git;rev=d00d1a04cc2366d1a5f143b84b9f507f8bd32c44" fetcher = bb.fetch.Fetch([url], self.d) @@ -964,6 +968,7 @@ def test_git_submodule_aktualizr(self): self.assertTrue(os.path.exists(os.path.join(repo_path, '.git/modules/third_party/googletest/config')), msg='Missing submodule config "third_party/googletest/config"') self.assertTrue(os.path.exists(os.path.join(repo_path, '.git/modules/third_party/HdrHistogram_c/config')), msg='Missing submodule config "third_party/HdrHistogram_c/config"') + @skipIfNoNetwork() def test_git_submodule_iotedge(self): """ Prevent regression on deeply nested submodules not being checked out properly, even though they were fetched. """ @@ -1195,8 +1200,8 @@ class FetchLatestVersionTest(FetcherTest): # packages with valid UPSTREAM_CHECK_URI and UPSTREAM_CHECK_REGEX ("cups", "http://www.cups.org/software/1.7.2/cups-1.7.2-source.tar.bz2", "https://github.com/apple/cups/releases", "(?Pcups\-)(?P((\d+[\.\-_]*)+))\-source\.tar\.gz") : "2.0.0", - ("db", "http://download.oracle.com/berkeley-db/db-5.3.21.tar.gz", "http://www.oracle.com/technetwork/products/berkeleydb/downloads/index-082944.html", "http://download.oracle.com/otn/berkeley-db/(?Pdb-)(?P((\d+[\.\-_]*)+))\.tar\.gz") - : "6.1.19", + ("db", "http://download.oracle.com/berkeley-db/db-5.3.21.tar.gz", "http://ftp.debian.org/debian/pool/main/d/db5.3/", "(?Pdb5\.3_)(?P\d+(\.\d+)+).+\.orig\.tar\.xz") + : "5.3.10", } @skipIfNoNetwork() @@ -1858,6 +1863,26 @@ def test_shallow_invalid_revs(self): with self.assertRaises(bb.fetch2.FetchError): self.fetch() + def test_shallow_fetch_missing_revs(self): + self.add_empty_file('a') + self.add_empty_file('b') + fetcher, ud = self.fetch(self.d.getVar('SRC_URI')) + self.git('tag v0.0 master', cwd=self.srcdir) + self.d.setVar('BB_GIT_SHALLOW_DEPTH', '0') + self.d.setVar('BB_GIT_SHALLOW_REVS', 'v0.0') + self.fetch_shallow() + + def test_shallow_fetch_missing_revs_fails(self): + self.add_empty_file('a') + self.add_empty_file('b') + fetcher, ud = self.fetch(self.d.getVar('SRC_URI')) + self.d.setVar('BB_GIT_SHALLOW_DEPTH', '0') + self.d.setVar('BB_GIT_SHALLOW_REVS', 'v0.0') + + with self.assertRaises(bb.fetch2.FetchError), self.assertLogs("BitBake.Fetcher", level="ERROR") as cm: + self.fetch_shallow() + self.assertIn("Unable to find revision v0.0 even from upstream", cm.output[0]) + @skipIfNoNetwork() def test_bitbake(self): self.git('remote add --mirror=fetch origin git://github.com/openembedded/bitbake', cwd=self.srcdir) @@ -1903,3 +1928,83 @@ def test_that_unpack_does_work_when_using_git_shallow_tarball_but_tarball_is_not dir = os.listdir(self.unpackdir + "/git/") self.assertIn("fstests.doap", dir) + +class GitLfsTest(FetcherTest): + def setUp(self): + FetcherTest.setUp(self) + + self.gitdir = os.path.join(self.tempdir, 'git') + self.srcdir = os.path.join(self.tempdir, 'gitsource') + + self.d.setVar('WORKDIR', self.tempdir) + self.d.setVar('S', self.gitdir) + self.d.delVar('PREMIRRORS') + self.d.delVar('MIRRORS') + + self.d.setVar('SRCREV', '${AUTOREV}') + self.d.setVar('AUTOREV', '${@bb.fetch2.get_autorev(d)}') + + bb.utils.mkdirhier(self.srcdir) + self.git('init', cwd=self.srcdir) + with open(os.path.join(self.srcdir, '.gitattributes'), 'wt') as attrs: + attrs.write('*.mp3 filter=lfs -text') + self.git(['add', '.gitattributes'], cwd=self.srcdir) + self.git(['commit', '-m', "attributes", '.gitattributes'], cwd=self.srcdir) + + def git(self, cmd, cwd=None): + if isinstance(cmd, str): + cmd = 'git ' + cmd + else: + cmd = ['git'] + cmd + if cwd is None: + cwd = self.gitdir + return bb.process.run(cmd, cwd=cwd)[0] + + def fetch(self, uri=None): + uris = self.d.getVar('SRC_URI').split() + uri = uris[0] + d = self.d + + fetcher = bb.fetch2.Fetch(uris, d) + fetcher.download() + ud = fetcher.ud[uri] + return fetcher, ud + + def test_lfs_enabled(self): + import shutil + + uri = 'git://%s;protocol=file;subdir=${S};lfs=1' % self.srcdir + self.d.setVar('SRC_URI', uri) + + fetcher, ud = self.fetch() + self.assertIsNotNone(ud.method._find_git_lfs) + + # If git-lfs can be found, the unpack should be successful + ud.method._find_git_lfs = lambda d: True + shutil.rmtree(self.gitdir, ignore_errors=True) + fetcher.unpack(self.d.getVar('WORKDIR')) + + # If git-lfs cannot be found, the unpack should throw an error + with self.assertRaises(bb.fetch2.FetchError): + ud.method._find_git_lfs = lambda d: False + shutil.rmtree(self.gitdir, ignore_errors=True) + fetcher.unpack(self.d.getVar('WORKDIR')) + + def test_lfs_disabled(self): + import shutil + + uri = 'git://%s;protocol=file;subdir=${S};lfs=0' % self.srcdir + self.d.setVar('SRC_URI', uri) + + fetcher, ud = self.fetch() + self.assertIsNotNone(ud.method._find_git_lfs) + + # If git-lfs can be found, the unpack should be successful + ud.method._find_git_lfs = lambda d: True + shutil.rmtree(self.gitdir, ignore_errors=True) + fetcher.unpack(self.d.getVar('WORKDIR')) + + # If git-lfs cannot be found, the unpack should be successful + ud.method._find_git_lfs = lambda d: False + shutil.rmtree(self.gitdir, ignore_errors=True) + fetcher.unpack(self.d.getVar('WORKDIR')) diff --git a/Contrib-Inspur/openbmc/poky/bitbake/lib/bb/tests/runqueue-tests/classes/base.bbclass b/Contrib-Inspur/openbmc/poky/bitbake/lib/bb/tests/runqueue-tests/classes/base.bbclass new file mode 100644 index 00000000..b57650d5 --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/bitbake/lib/bb/tests/runqueue-tests/classes/base.bbclass @@ -0,0 +1,262 @@ +SLOWTASKS ??= "" +SSTATEVALID ??= "" + +def stamptask(d): + import time + + thistask = d.expand("${PN}:${BB_CURRENTTASK}") + stampname = d.expand("${TOPDIR}/%s.run" % thistask) + with open(stampname, "a+") as f: + f.write(d.getVar("BB_UNIHASH") + "\n") + + if d.getVar("BB_CURRENT_MC") != "default": + thistask = d.expand("${BB_CURRENT_MC}:${PN}:${BB_CURRENTTASK}") + if thistask in d.getVar("SLOWTASKS").split(): + bb.note("Slowing task %s" % thistask) + time.sleep(0.5) + if d.getVar("BB_HASHSERVE"): + task = d.getVar("BB_CURRENTTASK") + if task in ['package', 'package_qa', 'packagedata', 'package_write_ipk', 'package_write_rpm', 'populate_lic', 'populate_sysroot']: + bb.parse.siggen.report_unihash(os.getcwd(), d.getVar("BB_CURRENTTASK"), d) + + with open(d.expand("${TOPDIR}/task.log"), "a+") as f: + f.write(thistask + "\n") + + +def sstate_output_hash(path, sigfile, task, d): + import hashlib + h = hashlib.sha256() + h.update(d.expand("${PN}:${BB_CURRENTTASK}").encode('utf-8')) + return h.hexdigest() + +python do_fetch() { + # fetch + stamptask(d) +} +python do_unpack() { + # unpack + stamptask(d) +} +python do_patch() { + # patch + stamptask(d) +} +python do_populate_lic() { + # populate_lic + stamptask(d) +} +python do_prepare_recipe_sysroot() { + # prepare_recipe_sysroot + stamptask(d) +} +python do_configure() { + # configure + stamptask(d) +} +python do_compile() { + # compile + stamptask(d) +} +python do_install() { + # install + stamptask(d) +} +python do_populate_sysroot() { + # populate_sysroot + stamptask(d) +} +python do_package() { + # package + stamptask(d) +} +python do_package_write_ipk() { + # package_write_ipk + stamptask(d) +} +python do_package_write_rpm() { + # package_write_rpm + stamptask(d) +} +python do_packagedata() { + # packagedata + stamptask(d) +} +python do_package_qa() { + # package_qa + stamptask(d) +} +python do_build() { + # build + stamptask(d) +} +do_prepare_recipe_sysroot[deptask] = "do_populate_sysroot" +do_package[deptask] += "do_packagedata" +do_build[recrdeptask] += "do_deploy" +do_build[recrdeptask] += "do_package_write_ipk" +do_build[recrdeptask] += "do_package_write_rpm" +do_package_qa[rdeptask] = "do_packagedata" +do_populate_lic_deploy[recrdeptask] += "do_populate_lic do_deploy" + +DEBIANRDEP = "do_packagedata" +oo_package_write_ipk[rdeptask] = "${DEBIANRDEP}" +do_package_write_rpm[rdeptask] = "${DEBIANRDEP}" + +addtask fetch +addtask unpack after do_fetch +addtask patch after do_unpack +addtask prepare_recipe_sysroot after do_patch +addtask configure after do_prepare_recipe_sysroot +addtask compile after do_configure +addtask install after do_compile +addtask populate_sysroot after do_install +addtask package after do_install +addtask package_write_ipk after do_packagedata do_package +addtask package_write_rpm after do_packagedata do_package +addtask packagedata after do_package +addtask package_qa after do_package +addtask build after do_package_qa do_package_write_rpm do_package_write_ipk do_populate_sysroot + +python do_package_setscene() { + stamptask(d) +} +python do_package_qa_setscene() { + stamptask(d) +} +python do_package_write_ipk_setscene() { + stamptask(d) +} +python do_package_write_rpm_setscene() { + stamptask(d) +} +python do_packagedata_setscene() { + stamptask(d) +} +python do_populate_lic_setscene() { + stamptask(d) +} +python do_populate_sysroot_setscene() { + stamptask(d) +} + +addtask package_setscene +addtask package_qa_setscene +addtask package_write_ipk_setscene +addtask package_write_rpm_setscene +addtask packagedata_setscene +addtask populate_lic_setscene +addtask populate_sysroot_setscene + +BB_SETSCENE_DEPVALID = "setscene_depvalid" + +def setscene_depvalid(task, taskdependees, notneeded, d, log=None): + # taskdependees is a dict of tasks which depend on task, each being a 3 item list of [PN, TASKNAME, FILENAME] + # task is included in taskdependees too + # Return - False - We need this dependency + # - True - We can skip this dependency + import re + + def logit(msg, log): + if log is not None: + log.append(msg) + else: + bb.debug(2, msg) + + logit("Considering setscene task: %s" % (str(taskdependees[task])), log) + + def isNativeCross(x): + return x.endswith("-native") or "-cross-" in x or "-crosssdk" in x or x.endswith("-cross") + + # We only need to trigger populate_lic through direct dependencies + if taskdependees[task][1] == "do_populate_lic": + return True + + # We only need to trigger packagedata through direct dependencies + # but need to preserve packagedata on packagedata links + if taskdependees[task][1] == "do_packagedata": + for dep in taskdependees: + if taskdependees[dep][1] == "do_packagedata": + return False + return True + + for dep in taskdependees: + logit(" considering dependency: %s" % (str(taskdependees[dep])), log) + if task == dep: + continue + if dep in notneeded: + continue + # do_package_write_* and do_package doesn't need do_package + if taskdependees[task][1] == "do_package" and taskdependees[dep][1] in ['do_package', 'do_package_write_ipk', 'do_package_write_rpm', 'do_packagedata', 'do_package_qa']: + continue + # do_package_write_* need do_populate_sysroot as they're mainly postinstall dependencies + if taskdependees[task][1] == "do_populate_sysroot" and taskdependees[dep][1] in ['do_package_write_ipk', 'do_package_write_rpm']: + return False + # do_package/packagedata/package_qa don't need do_populate_sysroot + if taskdependees[task][1] == "do_populate_sysroot" and taskdependees[dep][1] in ['do_package', 'do_packagedata', 'do_package_qa']: + continue + # Native/Cross packages don't exist and are noexec anyway + if isNativeCross(taskdependees[dep][0]) and taskdependees[dep][1] in ['do_package_write_ipk', 'do_package_write_rpm', 'do_packagedata', 'do_package', 'do_package_qa']: + continue + + # This is due to the [depends] in useradd.bbclass complicating matters + # The logic *is* reversed here due to the way hard setscene dependencies are injected + if (taskdependees[task][1] == 'do_package' or taskdependees[task][1] == 'do_populate_sysroot') and taskdependees[dep][0].endswith(('shadow-native', 'shadow-sysroot', 'base-passwd', 'pseudo-native')) and taskdependees[dep][1] == 'do_populate_sysroot': + continue + + # Consider sysroot depending on sysroot tasks + if taskdependees[task][1] == 'do_populate_sysroot' and taskdependees[dep][1] == 'do_populate_sysroot': + # Native/Cross populate_sysroot need their dependencies + if isNativeCross(taskdependees[task][0]) and isNativeCross(taskdependees[dep][0]): + return False + # Target populate_sysroot depended on by cross tools need to be installed + if isNativeCross(taskdependees[dep][0]): + return False + # Native/cross tools depended upon by target sysroot are not needed + # Add an exception for shadow-native as required by useradd.bbclass + if isNativeCross(taskdependees[task][0]) and taskdependees[task][0] != 'shadow-native': + continue + # Target populate_sysroot need their dependencies + return False + + + if taskdependees[dep][1] == "do_populate_lic": + continue + + # Safe fallthrough default + logit(" Default setscene dependency fall through due to dependency: %s" % (str(taskdependees[dep])), log) + return False + return True + +BB_HASHCHECK_FUNCTION = "sstate_checkhashes" + +def sstate_checkhashes(sq_data, d, siginfo=False, currentcount=0, **kwargs): + + found = set() + missed = set() + + valid = d.getVar("SSTATEVALID").split() + + for tid in sorted(sq_data['hash']): + n = os.path.basename(bb.runqueue.fn_from_tid(tid)).split(".")[0] + ":do_" + bb.runqueue.taskname_from_tid(tid)[3:] + print(n) + stampfile = d.expand("${TOPDIR}/%s.run" % n.replace("do_", "")) + if n in valid: + bb.note("SState: Found valid sstate for %s" % n) + found.add(tid) + elif n + ":" + sq_data['hash'][tid] in valid: + bb.note("SState: Found valid sstate for %s" % n) + found.add(tid) + elif os.path.exists(stampfile): + with open(stampfile, "r") as f: + hash = f.readline().strip() + if hash == sq_data['hash'][tid]: + bb.note("SState: Found valid sstate for %s (already run)" % n) + found.add(tid) + else: + bb.note("SState: sstate hash didn't match previous run for %s (%s vs %s)" % (n, sq_data['hash'][tid], hash)) + missed.add(tid) + else: + missed.add(tid) + bb.note("SState: Found no valid sstate for %s (%s)" % (n, sq_data['hash'][tid])) + + return found + diff --git a/Contrib-Inspur/openbmc/poky/bitbake/lib/bb/tests/runqueue-tests/classes/image.bbclass b/Contrib-Inspur/openbmc/poky/bitbake/lib/bb/tests/runqueue-tests/classes/image.bbclass new file mode 100644 index 00000000..da9ff110 --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/bitbake/lib/bb/tests/runqueue-tests/classes/image.bbclass @@ -0,0 +1,5 @@ +do_rootfs[recrdeptask] += "do_package_write_deb do_package_qa" +do_rootfs[recrdeptask] += "do_package_write_ipk do_package_qa" +do_rootfs[recrdeptask] += "do_package_write_rpm do_package_qa +do_rootfs[recrdeptask] += "do_packagedata" +do_rootfs[recrdeptask] += "do_populate_lic" diff --git a/Contrib-Inspur/openbmc/poky/bitbake/lib/bb/tests/runqueue-tests/classes/native.bbclass b/Contrib-Inspur/openbmc/poky/bitbake/lib/bb/tests/runqueue-tests/classes/native.bbclass new file mode 100644 index 00000000..7eaaee54 --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/bitbake/lib/bb/tests/runqueue-tests/classes/native.bbclass @@ -0,0 +1,2 @@ +RECIPERDEPTASK = "do_populate_sysroot" +do_populate_sysroot[rdeptask] = "${RECIPERDEPTASK}" diff --git a/Contrib-Inspur/openbmc/poky/bitbake/lib/bb/tests/runqueue-tests/conf/bitbake.conf b/Contrib-Inspur/openbmc/poky/bitbake/lib/bb/tests/runqueue-tests/conf/bitbake.conf new file mode 100644 index 00000000..5e451fc2 --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/bitbake/lib/bb/tests/runqueue-tests/conf/bitbake.conf @@ -0,0 +1,16 @@ +CACHE = "${TOPDIR}/cache" +THISDIR = "${@os.path.dirname(d.getVar('FILE'))}" +COREBASE := "${@os.path.normpath(os.path.dirname(d.getVar('FILE')+'/../../'))}" +BBFILES = "${COREBASE}/recipes/*.bb" +PROVIDES = "${PN}" +PN = "${@bb.parse.vars_from_file(d.getVar('FILE', False),d)[0]}" +PF = "${BB_CURRENT_MC}:${PN}" +export PATH +TMPDIR ??= "${TOPDIR}" +STAMP = "${TMPDIR}/stamps/${PN}" +T = "${TMPDIR}/workdir/${PN}/temp" +BB_NUMBER_THREADS = "4" + +BB_HASHBASE_WHITELIST = "BB_CURRENT_MC BB_HASHSERVE TMPDIR TOPDIR SLOWTASKS SSTATEVALID FILE" + +include conf/multiconfig/${BB_CURRENT_MC}.conf diff --git a/Contrib-Inspur/openbmc/poky/bitbake/lib/bb/tests/runqueue-tests/conf/multiconfig/mc1.conf b/Contrib-Inspur/openbmc/poky/bitbake/lib/bb/tests/runqueue-tests/conf/multiconfig/mc1.conf new file mode 100644 index 00000000..ecf23e1c --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/bitbake/lib/bb/tests/runqueue-tests/conf/multiconfig/mc1.conf @@ -0,0 +1 @@ +TMPDIR = "${TOPDIR}/mc1/" diff --git a/Contrib-Inspur/openbmc/poky/bitbake/lib/bb/tests/runqueue-tests/conf/multiconfig/mc2.conf b/Contrib-Inspur/openbmc/poky/bitbake/lib/bb/tests/runqueue-tests/conf/multiconfig/mc2.conf new file mode 100644 index 00000000..eef338e4 --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/bitbake/lib/bb/tests/runqueue-tests/conf/multiconfig/mc2.conf @@ -0,0 +1 @@ +TMPDIR = "${TOPDIR}/mc2/" diff --git a/Contrib-Inspur/openbmc/poky/bitbake/lib/bb/tests/runqueue-tests/recipes/a1.bb b/Contrib-Inspur/openbmc/poky/bitbake/lib/bb/tests/runqueue-tests/recipes/a1.bb new file mode 100644 index 00000000..e69de29b diff --git a/Contrib-Inspur/openbmc/poky/bitbake/lib/bb/tests/runqueue-tests/recipes/b1.bb b/Contrib-Inspur/openbmc/poky/bitbake/lib/bb/tests/runqueue-tests/recipes/b1.bb new file mode 100644 index 00000000..c0b288e5 --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/bitbake/lib/bb/tests/runqueue-tests/recipes/b1.bb @@ -0,0 +1 @@ +DEPENDS = "a1" \ No newline at end of file diff --git a/Contrib-Inspur/openbmc/poky/bitbake/lib/bb/tests/runqueue-tests/recipes/c1.bb b/Contrib-Inspur/openbmc/poky/bitbake/lib/bb/tests/runqueue-tests/recipes/c1.bb new file mode 100644 index 00000000..e69de29b diff --git a/Contrib-Inspur/openbmc/poky/bitbake/lib/bb/tests/runqueue-tests/recipes/d1.bb b/Contrib-Inspur/openbmc/poky/bitbake/lib/bb/tests/runqueue-tests/recipes/d1.bb new file mode 100644 index 00000000..5ba19751 --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/bitbake/lib/bb/tests/runqueue-tests/recipes/d1.bb @@ -0,0 +1,3 @@ +DEPENDS = "a1" + +do_package_setscene[depends] = "a1:do_populate_sysroot_setscene" diff --git a/Contrib-Inspur/openbmc/poky/bitbake/lib/bb/tests/runqueue-tests/recipes/e1.bb b/Contrib-Inspur/openbmc/poky/bitbake/lib/bb/tests/runqueue-tests/recipes/e1.bb new file mode 100644 index 00000000..1588bc8a --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/bitbake/lib/bb/tests/runqueue-tests/recipes/e1.bb @@ -0,0 +1 @@ +DEPENDS = "b1" \ No newline at end of file diff --git a/Contrib-Inspur/openbmc/poky/bitbake/lib/bb/tests/runqueue.py b/Contrib-Inspur/openbmc/poky/bitbake/lib/bb/tests/runqueue.py new file mode 100644 index 00000000..5e643915 --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/bitbake/lib/bb/tests/runqueue.py @@ -0,0 +1,323 @@ +# +# BitBake Tests for runqueue task processing +# +# Copyright (C) 2019 Richard Purdie +# +# SPDX-License-Identifier: GPL-2.0-only +# + +import unittest +import bb +import os +import tempfile +import subprocess +import sys +import time + +# +# TODO: +# Add tests on task ordering (X happens before Y after Z) +# + +class RunQueueTests(unittest.TestCase): + + alltasks = ['package', 'fetch', 'unpack', 'patch', 'prepare_recipe_sysroot', 'configure', + 'compile', 'install', 'packagedata', 'package_qa', 'package_write_rpm', 'package_write_ipk', + 'populate_sysroot', 'build'] + a1_sstatevalid = "a1:do_package a1:do_package_qa a1:do_packagedata a1:do_package_write_ipk a1:do_package_write_rpm a1:do_populate_lic a1:do_populate_sysroot" + b1_sstatevalid = "b1:do_package b1:do_package_qa b1:do_packagedata b1:do_package_write_ipk b1:do_package_write_rpm b1:do_populate_lic b1:do_populate_sysroot" + + def run_bitbakecmd(self, cmd, builddir, sstatevalid="", slowtasks="", extraenv=None, cleanup=False): + env = os.environ.copy() + env["BBPATH"] = os.path.realpath(os.path.join(os.path.dirname(__file__), "runqueue-tests")) + env["BB_ENV_EXTRAWHITE"] = "SSTATEVALID SLOWTASKS" + env["SSTATEVALID"] = sstatevalid + env["SLOWTASKS"] = slowtasks + if extraenv: + for k in extraenv: + env[k] = extraenv[k] + env["BB_ENV_EXTRAWHITE"] = env["BB_ENV_EXTRAWHITE"] + " " + k + try: + output = subprocess.check_output(cmd, env=env, stderr=subprocess.STDOUT,universal_newlines=True, cwd=builddir) + print(output) + except subprocess.CalledProcessError as e: + self.fail("Command %s failed with %s" % (cmd, e.output)) + tasks = [] + tasklog = builddir + "/task.log" + if os.path.exists(tasklog): + with open(tasklog, "r") as f: + tasks = [line.rstrip() for line in f] + if cleanup: + os.remove(tasklog) + return tasks + + def test_no_setscenevalid(self): + with tempfile.TemporaryDirectory(prefix="runqueuetest") as tempdir: + cmd = ["bitbake", "a1"] + sstatevalid = "" + tasks = self.run_bitbakecmd(cmd, tempdir, sstatevalid) + expected = ['a1:' + x for x in self.alltasks] + self.assertEqual(set(tasks), set(expected)) + + def test_single_setscenevalid(self): + with tempfile.TemporaryDirectory(prefix="runqueuetest") as tempdir: + cmd = ["bitbake", "a1"] + sstatevalid = "a1:do_package" + tasks = self.run_bitbakecmd(cmd, tempdir, sstatevalid) + expected = ['a1:package_setscene', 'a1:fetch', 'a1:unpack', 'a1:patch', 'a1:prepare_recipe_sysroot', 'a1:configure', + 'a1:compile', 'a1:install', 'a1:packagedata', 'a1:package_qa', 'a1:package_write_rpm', 'a1:package_write_ipk', + 'a1:populate_sysroot', 'a1:build'] + self.assertEqual(set(tasks), set(expected)) + + def test_intermediate_setscenevalid(self): + with tempfile.TemporaryDirectory(prefix="runqueuetest") as tempdir: + cmd = ["bitbake", "a1"] + sstatevalid = "a1:do_package a1:do_populate_sysroot" + tasks = self.run_bitbakecmd(cmd, tempdir, sstatevalid) + expected = ['a1:package_setscene', 'a1:packagedata', 'a1:package_qa', 'a1:package_write_rpm', 'a1:package_write_ipk', + 'a1:populate_sysroot_setscene', 'a1:build'] + self.assertEqual(set(tasks), set(expected)) + + def test_intermediate_notcovered(self): + with tempfile.TemporaryDirectory(prefix="runqueuetest") as tempdir: + cmd = ["bitbake", "a1"] + sstatevalid = "a1:do_package_qa a1:do_packagedata a1:do_package_write_ipk a1:do_package_write_rpm a1:do_populate_lic a1:do_populate_sysroot" + tasks = self.run_bitbakecmd(cmd, tempdir, sstatevalid) + expected = ['a1:package_write_ipk_setscene', 'a1:package_write_rpm_setscene', 'a1:packagedata_setscene', + 'a1:package_qa_setscene', 'a1:build', 'a1:populate_sysroot_setscene'] + self.assertEqual(set(tasks), set(expected)) + + def test_all_setscenevalid(self): + with tempfile.TemporaryDirectory(prefix="runqueuetest") as tempdir: + cmd = ["bitbake", "a1"] + sstatevalid = self.a1_sstatevalid + tasks = self.run_bitbakecmd(cmd, tempdir, sstatevalid) + expected = ['a1:package_write_ipk_setscene', 'a1:package_write_rpm_setscene', 'a1:packagedata_setscene', + 'a1:package_qa_setscene', 'a1:build', 'a1:populate_sysroot_setscene'] + self.assertEqual(set(tasks), set(expected)) + + def test_no_settasks(self): + with tempfile.TemporaryDirectory(prefix="runqueuetest") as tempdir: + cmd = ["bitbake", "a1", "-c", "patch"] + sstatevalid = self.a1_sstatevalid + tasks = self.run_bitbakecmd(cmd, tempdir, sstatevalid) + expected = ['a1:fetch', 'a1:unpack', 'a1:patch'] + self.assertEqual(set(tasks), set(expected)) + + def test_mix_covered_notcovered(self): + with tempfile.TemporaryDirectory(prefix="runqueuetest") as tempdir: + cmd = ["bitbake", "a1:do_patch", "a1:do_populate_sysroot"] + sstatevalid = self.a1_sstatevalid + tasks = self.run_bitbakecmd(cmd, tempdir, sstatevalid) + expected = ['a1:fetch', 'a1:unpack', 'a1:patch', 'a1:populate_sysroot_setscene'] + self.assertEqual(set(tasks), set(expected)) + + + # Test targets with intermediate setscene tasks alongside a target with no intermediate setscene tasks + def test_mixed_direct_tasks_setscene_tasks(self): + with tempfile.TemporaryDirectory(prefix="runqueuetest") as tempdir: + cmd = ["bitbake", "c1:do_patch", "a1"] + sstatevalid = self.a1_sstatevalid + tasks = self.run_bitbakecmd(cmd, tempdir, sstatevalid) + expected = ['c1:fetch', 'c1:unpack', 'c1:patch', 'a1:package_write_ipk_setscene', 'a1:package_write_rpm_setscene', 'a1:packagedata_setscene', + 'a1:package_qa_setscene', 'a1:build', 'a1:populate_sysroot_setscene'] + self.assertEqual(set(tasks), set(expected)) + + # This test slows down the execution of do_package_setscene until after other real tasks have + # started running which tests for a bug where tasks were being lost from the buildable list of real + # tasks if they weren't in tasks_covered or tasks_notcovered + def test_slow_setscene(self): + with tempfile.TemporaryDirectory(prefix="runqueuetest") as tempdir: + cmd = ["bitbake", "a1"] + sstatevalid = "a1:do_package" + slowtasks = "a1:package_setscene" + tasks = self.run_bitbakecmd(cmd, tempdir, sstatevalid, slowtasks) + expected = ['a1:package_setscene', 'a1:fetch', 'a1:unpack', 'a1:patch', 'a1:prepare_recipe_sysroot', 'a1:configure', + 'a1:compile', 'a1:install', 'a1:packagedata', 'a1:package_qa', 'a1:package_write_rpm', 'a1:package_write_ipk', + 'a1:populate_sysroot', 'a1:build'] + self.assertEqual(set(tasks), set(expected)) + + def test_setscenewhitelist(self): + with tempfile.TemporaryDirectory(prefix="runqueuetest") as tempdir: + cmd = ["bitbake", "a1"] + extraenv = { + "BB_SETSCENE_ENFORCE" : "1", + "BB_SETSCENE_ENFORCE_WHITELIST" : "a1:do_package_write_rpm a1:do_build" + } + sstatevalid = "a1:do_package a1:do_package_qa a1:do_packagedata a1:do_package_write_ipk a1:do_populate_lic a1:do_populate_sysroot" + tasks = self.run_bitbakecmd(cmd, tempdir, sstatevalid, extraenv=extraenv) + expected = ['a1:packagedata_setscene', 'a1:package_qa_setscene', 'a1:package_write_ipk_setscene', + 'a1:populate_sysroot_setscene', 'a1:package_setscene'] + self.assertEqual(set(tasks), set(expected)) + + # Tests for problems with dependencies between setscene tasks + def test_no_setscenevalid_harddeps(self): + with tempfile.TemporaryDirectory(prefix="runqueuetest") as tempdir: + cmd = ["bitbake", "d1"] + sstatevalid = "" + tasks = self.run_bitbakecmd(cmd, tempdir, sstatevalid) + expected = ['a1:package', 'a1:fetch', 'a1:unpack', 'a1:patch', 'a1:prepare_recipe_sysroot', 'a1:configure', + 'a1:compile', 'a1:install', 'a1:packagedata', 'a1:package_write_rpm', 'a1:package_write_ipk', + 'a1:populate_sysroot', 'd1:package', 'd1:fetch', 'd1:unpack', 'd1:patch', 'd1:prepare_recipe_sysroot', 'd1:configure', + 'd1:compile', 'd1:install', 'd1:packagedata', 'd1:package_qa', 'd1:package_write_rpm', 'd1:package_write_ipk', + 'd1:populate_sysroot', 'd1:build'] + self.assertEqual(set(tasks), set(expected)) + + def test_no_setscenevalid_withdeps(self): + with tempfile.TemporaryDirectory(prefix="runqueuetest") as tempdir: + cmd = ["bitbake", "b1"] + sstatevalid = "" + tasks = self.run_bitbakecmd(cmd, tempdir, sstatevalid) + expected = ['a1:' + x for x in self.alltasks] + ['b1:' + x for x in self.alltasks] + expected.remove('a1:build') + expected.remove('a1:package_qa') + self.assertEqual(set(tasks), set(expected)) + + def test_single_a1_setscenevalid_withdeps(self): + with tempfile.TemporaryDirectory(prefix="runqueuetest") as tempdir: + cmd = ["bitbake", "b1"] + sstatevalid = "a1:do_package" + tasks = self.run_bitbakecmd(cmd, tempdir, sstatevalid) + expected = ['a1:package_setscene', 'a1:fetch', 'a1:unpack', 'a1:patch', 'a1:prepare_recipe_sysroot', 'a1:configure', + 'a1:compile', 'a1:install', 'a1:packagedata', 'a1:package_write_rpm', 'a1:package_write_ipk', + 'a1:populate_sysroot'] + ['b1:' + x for x in self.alltasks] + self.assertEqual(set(tasks), set(expected)) + + def test_single_b1_setscenevalid_withdeps(self): + with tempfile.TemporaryDirectory(prefix="runqueuetest") as tempdir: + cmd = ["bitbake", "b1"] + sstatevalid = "b1:do_package" + tasks = self.run_bitbakecmd(cmd, tempdir, sstatevalid) + expected = ['a1:package', 'a1:fetch', 'a1:unpack', 'a1:patch', 'a1:prepare_recipe_sysroot', 'a1:configure', + 'a1:compile', 'a1:install', 'a1:packagedata', 'a1:package_write_rpm', 'a1:package_write_ipk', + 'a1:populate_sysroot', 'b1:package_setscene'] + ['b1:' + x for x in self.alltasks] + expected.remove('b1:package') + self.assertEqual(set(tasks), set(expected)) + + def test_intermediate_setscenevalid_withdeps(self): + with tempfile.TemporaryDirectory(prefix="runqueuetest") as tempdir: + cmd = ["bitbake", "b1"] + sstatevalid = "a1:do_package a1:do_populate_sysroot b1:do_package" + tasks = self.run_bitbakecmd(cmd, tempdir, sstatevalid) + expected = ['a1:package_setscene', 'a1:packagedata', 'a1:package_write_rpm', 'a1:package_write_ipk', + 'a1:populate_sysroot_setscene', 'b1:package_setscene'] + ['b1:' + x for x in self.alltasks] + expected.remove('b1:package') + self.assertEqual(set(tasks), set(expected)) + + def test_all_setscenevalid_withdeps(self): + with tempfile.TemporaryDirectory(prefix="runqueuetest") as tempdir: + cmd = ["bitbake", "b1"] + sstatevalid = self.a1_sstatevalid + " " + self.b1_sstatevalid + tasks = self.run_bitbakecmd(cmd, tempdir, sstatevalid) + expected = ['a1:package_write_ipk_setscene', 'a1:package_write_rpm_setscene', 'a1:packagedata_setscene', + 'b1:build', 'a1:populate_sysroot_setscene', 'b1:package_write_ipk_setscene', 'b1:package_write_rpm_setscene', + 'b1:packagedata_setscene', 'b1:package_qa_setscene', 'b1:populate_sysroot_setscene'] + self.assertEqual(set(tasks), set(expected)) + + def test_multiconfig_setscene_optimise(self): + with tempfile.TemporaryDirectory(prefix="runqueuetest") as tempdir: + extraenv = { + "BBMULTICONFIG" : "mc1 mc2", + "BB_SIGNATURE_HANDLER" : "basic" + } + cmd = ["bitbake", "b1", "mc:mc1:b1", "mc:mc2:b1"] + setscenetasks = ['package_write_ipk_setscene', 'package_write_rpm_setscene', 'packagedata_setscene', + 'populate_sysroot_setscene', 'package_qa_setscene'] + sstatevalid = "" + tasks = self.run_bitbakecmd(cmd, tempdir, sstatevalid, extraenv=extraenv) + expected = ['a1:' + x for x in self.alltasks] + ['b1:' + x for x in self.alltasks] + \ + ['mc1:b1:' + x for x in setscenetasks] + ['mc1:a1:' + x for x in setscenetasks] + \ + ['mc2:b1:' + x for x in setscenetasks] + ['mc2:a1:' + x for x in setscenetasks] + \ + ['mc1:b1:build', 'mc2:b1:build'] + for x in ['mc1:a1:package_qa_setscene', 'mc2:a1:package_qa_setscene', 'a1:build', 'a1:package_qa']: + expected.remove(x) + self.assertEqual(set(tasks), set(expected)) + + + @unittest.skipIf(sys.version_info < (3, 5, 0), 'Python 3.5 or later required') + def test_hashserv_single(self): + with tempfile.TemporaryDirectory(prefix="runqueuetest") as tempdir: + extraenv = { + "BB_HASHSERVE" : "auto", + "BB_SIGNATURE_HANDLER" : "TestEquivHash" + } + cmd = ["bitbake", "a1", "b1"] + setscenetasks = ['package_write_ipk_setscene', 'package_write_rpm_setscene', 'packagedata_setscene', + 'populate_sysroot_setscene', 'package_qa_setscene'] + sstatevalid = "" + tasks = self.run_bitbakecmd(cmd, tempdir, sstatevalid, extraenv=extraenv, cleanup=True) + expected = ['a1:' + x for x in self.alltasks] + ['b1:' + x for x in self.alltasks] + self.assertEqual(set(tasks), set(expected)) + cmd = ["bitbake", "a1", "-c", "install", "-f"] + tasks = self.run_bitbakecmd(cmd, tempdir, sstatevalid, extraenv=extraenv, cleanup=True) + expected = ['a1:install'] + self.assertEqual(set(tasks), set(expected)) + cmd = ["bitbake", "a1", "b1"] + tasks = self.run_bitbakecmd(cmd, tempdir, sstatevalid, extraenv=extraenv, cleanup=True) + expected = ['a1:populate_sysroot', 'a1:package', 'a1:package_write_rpm_setscene', 'a1:packagedata_setscene', + 'a1:package_write_ipk_setscene', 'a1:package_qa_setscene'] + self.assertEqual(set(tasks), set(expected)) + + self.shutdown(tempdir) + + @unittest.skipIf(sys.version_info < (3, 5, 0), 'Python 3.5 or later required') + def test_hashserv_double(self): + with tempfile.TemporaryDirectory(prefix="runqueuetest") as tempdir: + extraenv = { + "BB_HASHSERVE" : "auto", + "BB_SIGNATURE_HANDLER" : "TestEquivHash" + } + cmd = ["bitbake", "a1", "b1", "e1"] + setscenetasks = ['package_write_ipk_setscene', 'package_write_rpm_setscene', 'packagedata_setscene', + 'populate_sysroot_setscene', 'package_qa_setscene'] + sstatevalid = "" + tasks = self.run_bitbakecmd(cmd, tempdir, sstatevalid, extraenv=extraenv, cleanup=True) + expected = ['a1:' + x for x in self.alltasks] + ['b1:' + x for x in self.alltasks] + ['e1:' + x for x in self.alltasks] + self.assertEqual(set(tasks), set(expected)) + cmd = ["bitbake", "a1", "b1", "-c", "install", "-fn"] + tasks = self.run_bitbakecmd(cmd, tempdir, sstatevalid, extraenv=extraenv, cleanup=True) + cmd = ["bitbake", "e1"] + tasks = self.run_bitbakecmd(cmd, tempdir, sstatevalid, extraenv=extraenv, cleanup=True) + expected = ['a1:package', 'a1:install', 'b1:package', 'b1:install', 'a1:populate_sysroot', 'b1:populate_sysroot', + 'a1:package_write_ipk_setscene', 'b1:packagedata_setscene', 'b1:package_write_rpm_setscene', + 'a1:package_write_rpm_setscene', 'b1:package_write_ipk_setscene', 'a1:packagedata_setscene'] + self.assertEqual(set(tasks), set(expected)) + + self.shutdown(tempdir) + + @unittest.skipIf(sys.version_info < (3, 5, 0), 'Python 3.5 or later required') + def test_hashserv_multiple_setscene(self): + # Runs e1:do_package_setscene twice + with tempfile.TemporaryDirectory(prefix="runqueuetest") as tempdir: + extraenv = { + "BB_HASHSERVE" : "auto", + "BB_SIGNATURE_HANDLER" : "TestEquivHash" + } + cmd = ["bitbake", "a1", "b1", "e1"] + setscenetasks = ['package_write_ipk_setscene', 'package_write_rpm_setscene', 'packagedata_setscene', + 'populate_sysroot_setscene', 'package_qa_setscene'] + sstatevalid = "" + tasks = self.run_bitbakecmd(cmd, tempdir, sstatevalid, extraenv=extraenv, cleanup=True) + expected = ['a1:' + x for x in self.alltasks] + ['b1:' + x for x in self.alltasks] + ['e1:' + x for x in self.alltasks] + self.assertEqual(set(tasks), set(expected)) + cmd = ["bitbake", "a1", "b1", "-c", "install", "-fn"] + tasks = self.run_bitbakecmd(cmd, tempdir, sstatevalid, extraenv=extraenv, cleanup=True) + cmd = ["bitbake", "e1"] + sstatevalid = "e1:do_package" + tasks = self.run_bitbakecmd(cmd, tempdir, sstatevalid, extraenv=extraenv, cleanup=True, slowtasks="a1:populate_sysroot b1:populate_sysroot") + expected = ['a1:package', 'a1:install', 'b1:package', 'b1:install', 'a1:populate_sysroot', 'b1:populate_sysroot', + 'a1:package_write_ipk_setscene', 'b1:packagedata_setscene', 'b1:package_write_rpm_setscene', + 'a1:package_write_rpm_setscene', 'b1:package_write_ipk_setscene', 'a1:packagedata_setscene', + 'e1:package_setscene'] + self.assertEqual(set(tasks), set(expected)) + for i in expected: + self.assertEqual(tasks.count(i), 1, "%s not in task list once" % i) + + self.shutdown(tempdir) + + def shutdown(self, tempdir): + # Wait for the hashserve socket to disappear else we'll see races with the tempdir cleanup + while os.path.exists(tempdir + "/hashserve.sock"): + time.sleep(0.5) + + diff --git a/Contrib-Inspur/openbmc/poky/bitbake/lib/bb/tests/utils.py b/Contrib-Inspur/openbmc/poky/bitbake/lib/bb/tests/utils.py index f4adf1d4..5c910b4b 100644 --- a/Contrib-Inspur/openbmc/poky/bitbake/lib/bb/tests/utils.py +++ b/Contrib-Inspur/openbmc/poky/bitbake/lib/bb/tests/utils.py @@ -103,6 +103,32 @@ def test_unsafe_delete_path(self): result = bb.utils._check_unsafe_delete_path(arg1) self.assertEqual(result, correctresult, '_check_unsafe_delete_path("%s") != %s' % (arg1, correctresult)) +class Checksum(unittest.TestCase): + filler = b"Shiver me timbers square-rigged spike Gold Road galleon bilge water boatswain wherry jack pirate. Mizzenmast rum lad Privateer jack salmagundi hang the jib piracy Pieces of Eight Corsair. Parrel marooned black spot yawl provost quarterdeck cable no prey, no pay spirits lateen sail." + + def test_md5(self): + import hashlib + with tempfile.NamedTemporaryFile() as f: + f.write(self.filler) + f.flush() + checksum = bb.utils.md5_file(f.name) + self.assertEqual(checksum, "bd572cd5de30a785f4efcb6eaf5089e3") + + def test_sha1(self): + import hashlib + with tempfile.NamedTemporaryFile() as f: + f.write(self.filler) + f.flush() + checksum = bb.utils.sha1_file(f.name) + self.assertEqual(checksum, "249eb8fd654732ea836d5e702d7aa567898eca71") + + def test_sha256(self): + import hashlib + with tempfile.NamedTemporaryFile() as f: + f.write(self.filler) + f.flush() + checksum = bb.utils.sha256_file(f.name) + self.assertEqual(checksum, "fcfbae8bf6b721dbb9d2dc6a9334a58f2031a9a9b302999243f99da4d7f12d0f") class EditMetadataFile(unittest.TestCase): _origfile = """ diff --git a/Contrib-Inspur/openbmc/poky/bitbake/lib/bb/ui/buildinfohelper.py b/Contrib-Inspur/openbmc/poky/bitbake/lib/bb/ui/buildinfohelper.py index f2151c2d..5cbca97f 100644 --- a/Contrib-Inspur/openbmc/poky/bitbake/lib/bb/ui/buildinfohelper.py +++ b/Contrib-Inspur/openbmc/poky/bitbake/lib/bb/ui/buildinfohelper.py @@ -646,6 +646,9 @@ def save_target_package_information(self, build_obj, target_obj, packagedict, pk Target_Installed_Package.objects.create(target = target_obj, package = packagedict[p]['object']) packagedeps_objs = [] + pattern_so = re.compile(r'.*\.so(\.\d*)?$') + pattern_lib = re.compile(r'.*\-suffix(\d*)?$') + pattern_ko = re.compile(r'^kernel-module-.*') for p in packagedict: for (px,deptype) in packagedict[p]['depends']: if deptype == 'depends': @@ -654,6 +657,13 @@ def save_target_package_information(self, build_obj, target_obj, packagedict, pk tdeptype = Package_Dependency.TYPE_TRECOMMENDS try: + # Skip known non-package objects like libraries and kernel modules + if pattern_so.match(px) or pattern_lib.match(px): + logger.info("Toaster does not add library file dependencies to packages (%s,%s)", p, px) + continue + if pattern_ko.match(px): + logger.info("Toaster does not add kernel module dependencies to packages (%s,%s)", p, px) + continue packagedeps_objs.append(Package_Dependency( package = packagedict[p]['object'], depends_on = packagedict[px]['object'], diff --git a/Contrib-Inspur/openbmc/poky/bitbake/lib/bb/ui/knotty.py b/Contrib-Inspur/openbmc/poky/bitbake/lib/bb/ui/knotty.py index 88f638fb..35736ade 100644 --- a/Contrib-Inspur/openbmc/poky/bitbake/lib/bb/ui/knotty.py +++ b/Contrib-Inspur/openbmc/poky/bitbake/lib/bb/ui/knotty.py @@ -660,7 +660,6 @@ def main(server, eventHandler, params, tf = TerminalFilter): # ignore if isinstance(event, (bb.event.BuildBase, bb.event.MetadataEvent, - bb.event.StampUpdate, bb.event.ConfigParsed, bb.event.MultiConfigParsed, bb.event.RecipeParsed, @@ -690,17 +689,27 @@ def main(server, eventHandler, params, tf = TerminalFilter): if params.observe_only: print("\nKeyboard Interrupt, exiting observer...") main.shutdown = 2 - if not params.observe_only and main.shutdown == 1: + + def state_force_shutdown(): print("\nSecond Keyboard Interrupt, stopping...\n") _, error = server.runCommand(["stateForceShutdown"]) if error: logger.error("Unable to cleanly stop: %s" % error) + + if not params.observe_only and main.shutdown == 1: + state_force_shutdown() + if not params.observe_only and main.shutdown == 0: print("\nKeyboard Interrupt, closing down...\n") interrupted = True - _, error = server.runCommand(["stateShutdown"]) - if error: - logger.error("Unable to cleanly shutdown: %s" % error) + # Capture the second KeyboardInterrupt during stateShutdown is running + try: + _, error = server.runCommand(["stateShutdown"]) + if error: + logger.error("Unable to cleanly shutdown: %s" % error) + except KeyboardInterrupt: + state_force_shutdown() + main.shutdown = main.shutdown + 1 pass except Exception as e: diff --git a/Contrib-Inspur/openbmc/poky/bitbake/lib/bb/ui/uihelper.py b/Contrib-Inspur/openbmc/poky/bitbake/lib/bb/ui/uihelper.py index db7f0ca0..c8dd7df0 100644 --- a/Contrib-Inspur/openbmc/poky/bitbake/lib/bb/ui/uihelper.py +++ b/Contrib-Inspur/openbmc/poky/bitbake/lib/bb/ui/uihelper.py @@ -40,7 +40,7 @@ def eventHandler(self, event): self.running_pids.remove(event.pid) self.failed_tasks.append( { 'title' : "%s %s" % (event._package, event._task)}) self.needUpdate = True - elif isinstance(event, bb.runqueue.runQueueTaskStarted) or isinstance(event, bb.runqueue.sceneQueueTaskStarted): + elif isinstance(event, bb.runqueue.runQueueTaskStarted): self.tasknumber_current = event.stats.completed + event.stats.active + event.stats.failed + 1 self.tasknumber_total = event.stats.total self.needUpdate = True diff --git a/Contrib-Inspur/openbmc/poky/bitbake/lib/bb/utils.py b/Contrib-Inspur/openbmc/poky/bitbake/lib/bb/utils.py index ed19825f..8d40bcdf 100644 --- a/Contrib-Inspur/openbmc/poky/bitbake/lib/bb/utils.py +++ b/Contrib-Inspur/openbmc/poky/bitbake/lib/bb/utils.py @@ -394,7 +394,7 @@ def better_exec(code, context, text = None, realfile = "", pythonexception code = better_compile(code, realfile, realfile) try: exec(code, get_context(), context) - except (bb.BBHandledException, bb.parse.SkipRecipe, bb.build.FuncFailed, bb.data_smart.ExpansionError): + except (bb.BBHandledException, bb.parse.SkipRecipe, bb.data_smart.ExpansionError): # Error already shown so passthrough, no need for traceback raise except Exception as e: @@ -520,22 +520,26 @@ def unlockfile(lf): fcntl.flock(lf.fileno(), fcntl.LOCK_UN) lf.close() -def md5_file(filename): - """ - Return the hex string representation of the MD5 checksum of filename. - """ - import hashlib, mmap +def _hasher(method, filename): + import mmap with open(filename, "rb") as f: - m = hashlib.md5() try: with mmap.mmap(f.fileno(), 0, access=mmap.ACCESS_READ) as mm: for chunk in iter(lambda: mm.read(8192), b''): - m.update(chunk) + method.update(chunk) except ValueError: # You can't mmap() an empty file so silence this exception pass - return m.hexdigest() + return method.hexdigest() + + +def md5_file(filename): + """ + Return the hex string representation of the MD5 checksum of filename. + """ + import hashlib + return _hasher(hashlib.md5(), filename) def sha256_file(filename): """ @@ -543,24 +547,14 @@ def sha256_file(filename): filename. """ import hashlib - - s = hashlib.sha256() - with open(filename, "rb") as f: - for line in f: - s.update(line) - return s.hexdigest() + return _hasher(hashlib.sha256(), filename) def sha1_file(filename): """ Return the hex string representation of the SHA1 checksum of the filename """ import hashlib - - s = hashlib.sha1() - with open(filename, "rb") as f: - for line in f: - s.update(line) - return s.hexdigest() + return _hasher(hashlib.sha1(), filename) def preserved_envvars_exported(): """Variables which are taken from the environment and placed in and exported @@ -677,7 +671,7 @@ def _check_unsafe_delete_path(path): return True return False -def remove(path, recurse=False): +def remove(path, recurse=False, ionice=False): """Equivalent to rm -f or rm -rf""" if not path: return @@ -686,7 +680,10 @@ def remove(path, recurse=False): if _check_unsafe_delete_path(path): raise Exception('bb.utils.remove: called with dangerous path "%s" and recurse=True, refusing to delete!' % path) # shutil.rmtree(name) would be ideal but its too slow - subprocess.check_call(['rm', '-rf'] + glob.glob(path)) + cmd = [] + if ionice: + cmd = ['ionice', '-c', '3'] + subprocess.check_call(cmd + ['rm', '-rf'] + glob.glob(path)) return for name in glob.glob(path): try: @@ -695,12 +692,12 @@ def remove(path, recurse=False): if exc.errno != errno.ENOENT: raise -def prunedir(topdir): +def prunedir(topdir, ionice=False): # Delete everything reachable from the directory named in 'topdir'. # CAUTION: This is dangerous! if _check_unsafe_delete_path(topdir): raise Exception('bb.utils.prunedir: called with dangerous path "%s", refusing to delete!' % topdir) - remove(topdir, recurse=True) + remove(topdir, recurse=True, ionice=ionice) # # Could also use return re.compile("(%s)" % "|".join(map(re.escape, suffixes))).sub(lambda mo: "", var) @@ -780,7 +777,7 @@ def movefile(src, dest, newmtime = None, sstat = None): os.rename(src, destpath) renamefailed = 0 except Exception as e: - if e[0] != errno.EXDEV: + if e.errno != errno.EXDEV: # Some random error. print("movefile: Failed to move", src, "to", dest, e) return None diff --git a/Contrib-Inspur/openbmc/poky/bitbake/lib/bblayers/query.py b/Contrib-Inspur/openbmc/poky/bitbake/lib/bblayers/query.py index 993589de..7db49c8e 100644 --- a/Contrib-Inspur/openbmc/poky/bitbake/lib/bblayers/query.py +++ b/Contrib-Inspur/openbmc/poky/bitbake/lib/bblayers/query.py @@ -46,7 +46,7 @@ def do_show_overlayed(self, args): are overlayed will also be listed, with a " (skipped)" suffix. """ - items_listed = self.list_recipes('Overlayed recipes', None, True, args.same_version, args.filenames, True, None) + items_listed = self.list_recipes('Overlayed recipes', None, True, args.same_version, args.filenames, False, True, None, False, None) # Check for overlayed .bbclass files classes = collections.defaultdict(list) @@ -112,9 +112,9 @@ def do_show_recipes(self, args): title = 'Matching recipes:' else: title = 'Available recipes:' - self.list_recipes(title, args.pnspec, False, False, args.filenames, args.multiple, inheritlist) + self.list_recipes(title, args.pnspec, False, False, args.filenames, args.recipes_only, args.multiple, args.layer, args.bare, inheritlist) - def list_recipes(self, title, pnspec, show_overlayed_only, show_same_ver_only, show_filenames, show_multi_provider_only, inherits): + def list_recipes(self, title, pnspec, show_overlayed_only, show_same_ver_only, show_filenames, show_recipes_only, show_multi_provider_only, selected_layer, bare, inherits): if inherits: bbpath = str(self.tinfoil.config_data.getVar('BBPATH')) for classname in inherits: @@ -144,24 +144,30 @@ def list_recipes(self, title, pnspec, show_overlayed_only, show_same_ver_only, s preferred_versions[p] = (ver, fn) def print_item(f, pn, ver, layer, ispref): - if f in skiplist: - skipped = ' (skipped)' - else: - skipped = '' - if show_filenames: - if ispref: - logger.plain("%s%s", f, skipped) + if not selected_layer or layer == selected_layer: + if not bare and f in skiplist: + skipped = ' (skipped)' else: - logger.plain(" %s%s", f, skipped) - else: - if ispref: - logger.plain("%s:", pn) - logger.plain(" %s %s%s", layer.ljust(20), ver, skipped) + skipped = '' + if show_filenames: + if ispref: + logger.plain("%s%s", f, skipped) + else: + logger.plain(" %s%s", f, skipped) + elif show_recipes_only: + if pn not in show_unique_pn: + show_unique_pn.append(pn) + logger.plain("%s%s", pn, skipped) + else: + if ispref: + logger.plain("%s:", pn) + logger.plain(" %s %s%s", layer.ljust(20), ver, skipped) global_inherit = (self.tinfoil.config_data.getVar('INHERIT') or "").split() cls_re = re.compile('classes/') preffiles = [] + show_unique_pn = [] items_listed = False for p in sorted(pkg_pn): if pnspec: @@ -493,8 +499,11 @@ def register_commands(self, sp): parser_show_recipes = self.add_command(sp, 'show-recipes', self.do_show_recipes) parser_show_recipes.add_argument('-f', '--filenames', help='instead of the default formatting, list filenames of higher priority recipes with the ones they overlay indented underneath', action='store_true') + parser_show_recipes.add_argument('-r', '--recipes-only', help='instead of the default formatting, list recipes only', action='store_true') parser_show_recipes.add_argument('-m', '--multiple', help='only list where multiple recipes (in the same layer or different layers) exist for the same recipe name', action='store_true') parser_show_recipes.add_argument('-i', '--inherits', help='only list recipes that inherit the named class(es) - separate multiple classes using , (without spaces)', metavar='CLASS', default='') + parser_show_recipes.add_argument('-l', '--layer', help='only list recipes from the selected layer', default='') + parser_show_recipes.add_argument('-b', '--bare', help='output just names without the "(skipped)" marker', action='store_true') parser_show_recipes.add_argument('pnspec', nargs='*', help='optional recipe name specification (wildcards allowed, enclose in quotes to avoid shell expansion)') parser_show_appends = self.add_command(sp, 'show-appends', self.do_show_appends) diff --git a/Contrib-Inspur/openbmc/poky/bitbake/lib/hashserv/__init__.py b/Contrib-Inspur/openbmc/poky/bitbake/lib/hashserv/__init__.py index fdc9ced9..c3318620 100644 --- a/Contrib-Inspur/openbmc/poky/bitbake/lib/hashserv/__init__.py +++ b/Contrib-Inspur/openbmc/poky/bitbake/lib/hashserv/__init__.py @@ -1,126 +1,25 @@ -# Copyright (C) 2018 Garmin Ltd. +# Copyright (C) 2018-2019 Garmin Ltd. # # SPDX-License-Identifier: GPL-2.0-only # -from http.server import BaseHTTPRequestHandler, HTTPServer -import contextlib -import urllib.parse +from contextlib import closing +import re import sqlite3 -import json -import traceback -import logging -from datetime import datetime - -logger = logging.getLogger('hashserv') - -class HashEquivalenceServer(BaseHTTPRequestHandler): - def log_message(self, f, *args): - logger.debug(f, *args) - - def do_GET(self): - try: - p = urllib.parse.urlparse(self.path) - - if p.path != self.prefix + '/v1/equivalent': - self.send_error(404) - return - - query = urllib.parse.parse_qs(p.query, strict_parsing=True) - method = query['method'][0] - taskhash = query['taskhash'][0] - - d = None - with contextlib.closing(self.db.cursor()) as cursor: - cursor.execute('SELECT taskhash, method, unihash FROM tasks_v1 WHERE method=:method AND taskhash=:taskhash ORDER BY created ASC LIMIT 1', - {'method': method, 'taskhash': taskhash}) - - row = cursor.fetchone() - - if row is not None: - logger.debug('Found equivalent task %s', row['taskhash']) - d = {k: row[k] for k in ('taskhash', 'method', 'unihash')} - - self.send_response(200) - self.send_header('Content-Type', 'application/json; charset=utf-8') - self.end_headers() - self.wfile.write(json.dumps(d).encode('utf-8')) - except: - logger.exception('Error in GET') - self.send_error(400, explain=traceback.format_exc()) - return - - def do_POST(self): - try: - p = urllib.parse.urlparse(self.path) - - if p.path != self.prefix + '/v1/equivalent': - self.send_error(404) - return - - length = int(self.headers['content-length']) - data = json.loads(self.rfile.read(length).decode('utf-8')) - - with contextlib.closing(self.db.cursor()) as cursor: - cursor.execute(''' - SELECT taskhash, method, unihash FROM tasks_v1 WHERE method=:method AND outhash=:outhash - ORDER BY CASE WHEN taskhash=:taskhash THEN 1 ELSE 2 END, - created ASC - LIMIT 1 - ''', {k: data[k] for k in ('method', 'outhash', 'taskhash')}) - - row = cursor.fetchone() - - if row is None or row['taskhash'] != data['taskhash']: - unihash = data['unihash'] - if row is not None: - unihash = row['unihash'] - - insert_data = { - 'method': data['method'], - 'outhash': data['outhash'], - 'taskhash': data['taskhash'], - 'unihash': unihash, - 'created': datetime.now() - } - - for k in ('owner', 'PN', 'PV', 'PR', 'task', 'outhash_siginfo'): - if k in data: - insert_data[k] = data[k] - - cursor.execute('''INSERT INTO tasks_v1 (%s) VALUES (%s)''' % ( - ', '.join(sorted(insert_data.keys())), - ', '.join(':' + k for k in sorted(insert_data.keys()))), - insert_data) - - logger.info('Adding taskhash %s with unihash %s', data['taskhash'], unihash) - cursor.execute('SELECT taskhash, method, unihash FROM tasks_v1 WHERE id=:id', {'id': cursor.lastrowid}) - row = cursor.fetchone() - - self.db.commit() - - d = {k: row[k] for k in ('taskhash', 'method', 'unihash')} - - self.send_response(200) - self.send_header('Content-Type', 'application/json; charset=utf-8') - self.end_headers() - self.wfile.write(json.dumps(d).encode('utf-8')) - except: - logger.exception('Error in POST') - self.send_error(400, explain=traceback.format_exc()) - return - -def create_server(addr, db, prefix=''): - class Handler(HashEquivalenceServer): - pass - - Handler.prefix = prefix - Handler.db = db + +UNIX_PREFIX = "unix://" + +ADDR_TYPE_UNIX = 0 +ADDR_TYPE_TCP = 1 + + +def setup_database(database, sync=True): + db = sqlite3.connect(database) db.row_factory = sqlite3.Row - with contextlib.closing(db.cursor()) as cursor: + with closing(db.cursor()) as cursor: cursor.execute(''' - CREATE TABLE IF NOT EXISTS tasks_v1 ( + CREATE TABLE IF NOT EXISTS tasks_v2 ( id INTEGER PRIMARY KEY AUTOINCREMENT, method TEXT NOT NULL, outhash TEXT NOT NULL, @@ -134,9 +33,61 @@ class Handler(HashEquivalenceServer): PV TEXT, PR TEXT, task TEXT, - outhash_siginfo TEXT + outhash_siginfo TEXT, + + UNIQUE(method, outhash, taskhash) ) ''') + cursor.execute('PRAGMA journal_mode = WAL') + cursor.execute('PRAGMA synchronous = %s' % ('NORMAL' if sync else 'OFF')) + + # Drop old indexes + cursor.execute('DROP INDEX IF EXISTS taskhash_lookup') + cursor.execute('DROP INDEX IF EXISTS outhash_lookup') + + # Create new indexes + cursor.execute('CREATE INDEX IF NOT EXISTS taskhash_lookup_v2 ON tasks_v2 (method, taskhash, created)') + cursor.execute('CREATE INDEX IF NOT EXISTS outhash_lookup_v2 ON tasks_v2 (method, outhash)') + + return db + + +def parse_address(addr): + if addr.startswith(UNIX_PREFIX): + return (ADDR_TYPE_UNIX, (addr[len(UNIX_PREFIX):],)) + else: + m = re.match(r'\[(?P[^\]]*)\]:(?P\d+)$', addr) + if m is not None: + host = m.group('host') + port = m.group('port') + else: + host, port = addr.split(':') + + return (ADDR_TYPE_TCP, (host, int(port))) + + +def create_server(addr, dbname, *, sync=True): + from . import server + db = setup_database(dbname, sync=sync) + s = server.Server(db) + + (typ, a) = parse_address(addr) + if typ == ADDR_TYPE_UNIX: + s.start_unix_server(*a) + else: + s.start_tcp_server(*a) + + return s + + +def create_client(addr): + from . import client + c = client.Client() + + (typ, a) = parse_address(addr) + if typ == ADDR_TYPE_UNIX: + c.connect_unix(*a) + else: + c.connect_tcp(*a) - logger.info('Starting server on %s', addr) - return HTTPServer(addr, Handler) + return c diff --git a/Contrib-Inspur/openbmc/poky/bitbake/lib/hashserv/client.py b/Contrib-Inspur/openbmc/poky/bitbake/lib/hashserv/client.py new file mode 100644 index 00000000..f6595661 --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/bitbake/lib/hashserv/client.py @@ -0,0 +1,157 @@ +# Copyright (C) 2019 Garmin Ltd. +# +# SPDX-License-Identifier: GPL-2.0-only +# + +from contextlib import closing +import json +import logging +import socket +import os + + +logger = logging.getLogger('hashserv.client') + + +class HashConnectionError(Exception): + pass + + +class Client(object): + MODE_NORMAL = 0 + MODE_GET_STREAM = 1 + + def __init__(self): + self._socket = None + self.reader = None + self.writer = None + self.mode = self.MODE_NORMAL + + def connect_tcp(self, address, port): + def connect_sock(): + s = socket.create_connection((address, port)) + + s.setsockopt(socket.SOL_TCP, socket.TCP_NODELAY, 1) + s.setsockopt(socket.SOL_TCP, socket.TCP_QUICKACK, 1) + s.setsockopt(socket.SOL_SOCKET, socket.SO_KEEPALIVE, 1) + return s + + self._connect_sock = connect_sock + + def connect_unix(self, path): + def connect_sock(): + s = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM) + # AF_UNIX has path length issues so chdir here to workaround + cwd = os.getcwd() + try: + os.chdir(os.path.dirname(path)) + s.connect(os.path.basename(path)) + finally: + os.chdir(cwd) + return s + + self._connect_sock = connect_sock + + def connect(self): + if self._socket is None: + self._socket = self._connect_sock() + + self.reader = self._socket.makefile('r', encoding='utf-8') + self.writer = self._socket.makefile('w', encoding='utf-8') + + self.writer.write('OEHASHEQUIV 1.0\n\n') + self.writer.flush() + + # Restore mode if the socket is being re-created + cur_mode = self.mode + self.mode = self.MODE_NORMAL + self._set_mode(cur_mode) + + return self._socket + + def close(self): + if self._socket is not None: + self._socket.close() + self._socket = None + self.reader = None + self.writer = None + + def _send_wrapper(self, proc): + count = 0 + while True: + try: + self.connect() + return proc() + except (OSError, HashConnectionError, json.JSONDecodeError, UnicodeDecodeError) as e: + logger.warning('Error talking to server: %s' % e) + if count >= 3: + if not isinstance(e, HashConnectionError): + raise HashConnectionError(str(e)) + raise e + self.close() + count += 1 + + def send_message(self, msg): + def proc(): + self.writer.write('%s\n' % json.dumps(msg)) + self.writer.flush() + + l = self.reader.readline() + if not l: + raise HashConnectionError('Connection closed') + + if not l.endswith('\n'): + raise HashConnectionError('Bad message %r' % message) + + return json.loads(l) + + return self._send_wrapper(proc) + + def send_stream(self, msg): + def proc(): + self.writer.write("%s\n" % msg) + self.writer.flush() + l = self.reader.readline() + if not l: + raise HashConnectionError('Connection closed') + return l.rstrip() + + return self._send_wrapper(proc) + + def _set_mode(self, new_mode): + if new_mode == self.MODE_NORMAL and self.mode == self.MODE_GET_STREAM: + r = self.send_stream('END') + if r != 'ok': + raise HashConnectionError('Bad response from server %r' % r) + elif new_mode == self.MODE_GET_STREAM and self.mode == self.MODE_NORMAL: + r = self.send_message({'get-stream': None}) + if r != 'ok': + raise HashConnectionError('Bad response from server %r' % r) + elif new_mode != self.mode: + raise Exception('Undefined mode transition %r -> %r' % (self.mode, new_mode)) + + self.mode = new_mode + + def get_unihash(self, method, taskhash): + self._set_mode(self.MODE_GET_STREAM) + r = self.send_stream('%s %s' % (method, taskhash)) + if not r: + return None + return r + + def report_unihash(self, taskhash, method, outhash, unihash, extra={}): + self._set_mode(self.MODE_NORMAL) + m = extra.copy() + m['taskhash'] = taskhash + m['method'] = method + m['outhash'] = outhash + m['unihash'] = unihash + return self.send_message({'report': m}) + + def get_stats(self): + self._set_mode(self.MODE_NORMAL) + return self.send_message({'get-stats': None}) + + def reset_stats(self): + self._set_mode(self.MODE_NORMAL) + return self.send_message({'reset-stats': None}) diff --git a/Contrib-Inspur/openbmc/poky/bitbake/lib/hashserv/server.py b/Contrib-Inspur/openbmc/poky/bitbake/lib/hashserv/server.py new file mode 100644 index 00000000..0aff7768 --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/bitbake/lib/hashserv/server.py @@ -0,0 +1,414 @@ +# Copyright (C) 2019 Garmin Ltd. +# +# SPDX-License-Identifier: GPL-2.0-only +# + +from contextlib import closing +from datetime import datetime +import asyncio +import json +import logging +import math +import os +import signal +import socket +import time + +logger = logging.getLogger('hashserv.server') + + +class Measurement(object): + def __init__(self, sample): + self.sample = sample + + def start(self): + self.start_time = time.perf_counter() + + def end(self): + self.sample.add(time.perf_counter() - self.start_time) + + def __enter__(self): + self.start() + return self + + def __exit__(self, *args, **kwargs): + self.end() + + +class Sample(object): + def __init__(self, stats): + self.stats = stats + self.num_samples = 0 + self.elapsed = 0 + + def measure(self): + return Measurement(self) + + def __enter__(self): + return self + + def __exit__(self, *args, **kwargs): + self.end() + + def add(self, elapsed): + self.num_samples += 1 + self.elapsed += elapsed + + def end(self): + if self.num_samples: + self.stats.add(self.elapsed) + self.num_samples = 0 + self.elapsed = 0 + + +class Stats(object): + def __init__(self): + self.reset() + + def reset(self): + self.num = 0 + self.total_time = 0 + self.max_time = 0 + self.m = 0 + self.s = 0 + self.current_elapsed = None + + def add(self, elapsed): + self.num += 1 + if self.num == 1: + self.m = elapsed + self.s = 0 + else: + last_m = self.m + self.m = last_m + (elapsed - last_m) / self.num + self.s = self.s + (elapsed - last_m) * (elapsed - self.m) + + self.total_time += elapsed + + if self.max_time < elapsed: + self.max_time = elapsed + + def start_sample(self): + return Sample(self) + + @property + def average(self): + if self.num == 0: + return 0 + return self.total_time / self.num + + @property + def stdev(self): + if self.num <= 1: + return 0 + return math.sqrt(self.s / (self.num - 1)) + + def todict(self): + return {k: getattr(self, k) for k in ('num', 'total_time', 'max_time', 'average', 'stdev')} + + +class ServerClient(object): + def __init__(self, reader, writer, db, request_stats): + self.reader = reader + self.writer = writer + self.db = db + self.request_stats = request_stats + + async def process_requests(self): + try: + self.addr = self.writer.get_extra_info('peername') + logger.debug('Client %r connected' % (self.addr,)) + + # Read protocol and version + protocol = await self.reader.readline() + if protocol is None: + return + + (proto_name, proto_version) = protocol.decode('utf-8').rstrip().split() + if proto_name != 'OEHASHEQUIV' or proto_version != '1.0': + return + + # Read headers. Currently, no headers are implemented, so look for + # an empty line to signal the end of the headers + while True: + line = await self.reader.readline() + if line is None: + return + + line = line.decode('utf-8').rstrip() + if not line: + break + + # Handle messages + handlers = { + 'get': self.handle_get, + 'report': self.handle_report, + 'get-stream': self.handle_get_stream, + 'get-stats': self.handle_get_stats, + 'reset-stats': self.handle_reset_stats, + } + + while True: + d = await self.read_message() + if d is None: + break + + for k in handlers.keys(): + if k in d: + logger.debug('Handling %s' % k) + if 'stream' in k: + await handlers[k](d[k]) + else: + with self.request_stats.start_sample() as self.request_sample, \ + self.request_sample.measure(): + await handlers[k](d[k]) + break + else: + logger.warning("Unrecognized command %r" % d) + break + + await self.writer.drain() + finally: + self.writer.close() + + def write_message(self, msg): + self.writer.write(('%s\n' % json.dumps(msg)).encode('utf-8')) + + async def read_message(self): + l = await self.reader.readline() + if not l: + return None + + try: + message = l.decode('utf-8') + + if not message.endswith('\n'): + return None + + return json.loads(message) + except (json.JSONDecodeError, UnicodeDecodeError) as e: + logger.error('Bad message from client: %r' % message) + raise e + + async def handle_get(self, request): + method = request['method'] + taskhash = request['taskhash'] + + row = self.query_equivalent(method, taskhash) + if row is not None: + logger.debug('Found equivalent task %s -> %s', (row['taskhash'], row['unihash'])) + d = {k: row[k] for k in ('taskhash', 'method', 'unihash')} + + self.write_message(d) + else: + self.write_message(None) + + async def handle_get_stream(self, request): + self.write_message('ok') + + while True: + l = await self.reader.readline() + if not l: + return + + try: + # This inner loop is very sensitive and must be as fast as + # possible (which is why the request sample is handled manually + # instead of using 'with', and also why logging statements are + # commented out. + self.request_sample = self.request_stats.start_sample() + request_measure = self.request_sample.measure() + request_measure.start() + + l = l.decode('utf-8').rstrip() + if l == 'END': + self.writer.write('ok\n'.encode('utf-8')) + return + + (method, taskhash) = l.split() + #logger.debug('Looking up %s %s' % (method, taskhash)) + row = self.query_equivalent(method, taskhash) + if row is not None: + msg = ('%s\n' % row['unihash']).encode('utf-8') + #logger.debug('Found equivalent task %s -> %s', (row['taskhash'], row['unihash'])) + else: + msg = '\n'.encode('utf-8') + + self.writer.write(msg) + finally: + request_measure.end() + self.request_sample.end() + + await self.writer.drain() + + async def handle_report(self, data): + with closing(self.db.cursor()) as cursor: + cursor.execute(''' + -- Find tasks with a matching outhash (that is, tasks that + -- are equivalent) + SELECT taskhash, method, unihash FROM tasks_v2 WHERE method=:method AND outhash=:outhash + + -- If there is an exact match on the taskhash, return it. + -- Otherwise return the oldest matching outhash of any + -- taskhash + ORDER BY CASE WHEN taskhash=:taskhash THEN 1 ELSE 2 END, + created ASC + + -- Only return one row + LIMIT 1 + ''', {k: data[k] for k in ('method', 'outhash', 'taskhash')}) + + row = cursor.fetchone() + + # If no matching outhash was found, or one *was* found but it + # wasn't an exact match on the taskhash, a new entry for this + # taskhash should be added + if row is None or row['taskhash'] != data['taskhash']: + # If a row matching the outhash was found, the unihash for + # the new taskhash should be the same as that one. + # Otherwise the caller provided unihash is used. + unihash = data['unihash'] + if row is not None: + unihash = row['unihash'] + + insert_data = { + 'method': data['method'], + 'outhash': data['outhash'], + 'taskhash': data['taskhash'], + 'unihash': unihash, + 'created': datetime.now() + } + + for k in ('owner', 'PN', 'PV', 'PR', 'task', 'outhash_siginfo'): + if k in data: + insert_data[k] = data[k] + + cursor.execute('''INSERT INTO tasks_v2 (%s) VALUES (%s)''' % ( + ', '.join(sorted(insert_data.keys())), + ', '.join(':' + k for k in sorted(insert_data.keys()))), + insert_data) + + self.db.commit() + + logger.info('Adding taskhash %s with unihash %s', + data['taskhash'], unihash) + + d = { + 'taskhash': data['taskhash'], + 'method': data['method'], + 'unihash': unihash + } + else: + d = {k: row[k] for k in ('taskhash', 'method', 'unihash')} + + self.write_message(d) + + async def handle_get_stats(self, request): + d = { + 'requests': self.request_stats.todict(), + } + + self.write_message(d) + + async def handle_reset_stats(self, request): + d = { + 'requests': self.request_stats.todict(), + } + + self.request_stats.reset() + self.write_message(d) + + def query_equivalent(self, method, taskhash): + # This is part of the inner loop and must be as fast as possible + try: + cursor = self.db.cursor() + cursor.execute('SELECT taskhash, method, unihash FROM tasks_v2 WHERE method=:method AND taskhash=:taskhash ORDER BY created ASC LIMIT 1', + {'method': method, 'taskhash': taskhash}) + return cursor.fetchone() + except: + cursor.close() + + +class Server(object): + def __init__(self, db, loop=None): + self.request_stats = Stats() + self.db = db + + if loop is None: + self.loop = asyncio.new_event_loop() + self.close_loop = True + else: + self.loop = loop + self.close_loop = False + + self._cleanup_socket = None + + def start_tcp_server(self, host, port): + self.server = self.loop.run_until_complete( + asyncio.start_server(self.handle_client, host, port, loop=self.loop) + ) + + for s in self.server.sockets: + logger.info('Listening on %r' % (s.getsockname(),)) + # Newer python does this automatically. Do it manually here for + # maximum compatibility + s.setsockopt(socket.SOL_TCP, socket.TCP_NODELAY, 1) + s.setsockopt(socket.SOL_TCP, socket.TCP_QUICKACK, 1) + + name = self.server.sockets[0].getsockname() + if self.server.sockets[0].family == socket.AF_INET6: + self.address = "[%s]:%d" % (name[0], name[1]) + else: + self.address = "%s:%d" % (name[0], name[1]) + + def start_unix_server(self, path): + def cleanup(): + os.unlink(path) + + cwd = os.getcwd() + try: + # Work around path length limits in AF_UNIX + os.chdir(os.path.dirname(path)) + self.server = self.loop.run_until_complete( + asyncio.start_unix_server(self.handle_client, os.path.basename(path), loop=self.loop) + ) + finally: + os.chdir(cwd) + + logger.info('Listening on %r' % path) + + self._cleanup_socket = cleanup + self.address = "unix://%s" % os.path.abspath(path) + + async def handle_client(self, reader, writer): + # writer.transport.set_write_buffer_limits(0) + try: + client = ServerClient(reader, writer, self.db, self.request_stats) + await client.process_requests() + except Exception as e: + import traceback + logger.error('Error from client: %s' % str(e), exc_info=True) + traceback.print_exc() + writer.close() + logger.info('Client disconnected') + + def serve_forever(self): + def signal_handler(): + self.loop.stop() + + self.loop.add_signal_handler(signal.SIGTERM, signal_handler) + + try: + self.loop.run_forever() + except KeyboardInterrupt: + pass + + self.server.close() + self.loop.run_until_complete(self.server.wait_closed()) + logger.info('Server shutting down') + + if self.close_loop: + self.loop.close() + + if self._cleanup_socket is not None: + self._cleanup_socket() diff --git a/Contrib-Inspur/openbmc/poky/bitbake/lib/hashserv/tests.py b/Contrib-Inspur/openbmc/poky/bitbake/lib/hashserv/tests.py index 8300a255..a5472a99 100644 --- a/Contrib-Inspur/openbmc/poky/bitbake/lib/hashserv/tests.py +++ b/Contrib-Inspur/openbmc/poky/bitbake/lib/hashserv/tests.py @@ -1,48 +1,48 @@ #! /usr/bin/env python3 # -# Copyright (C) 2018 Garmin Ltd. +# Copyright (C) 2018-2019 Garmin Ltd. # # SPDX-License-Identifier: GPL-2.0-only # -import unittest -import threading -import sqlite3 +from . import create_server, create_client import hashlib -import urllib.request -import json -from . import create_server +import logging +import multiprocessing +import sys +import tempfile +import threading +import unittest + + +class TestHashEquivalenceServer(object): + METHOD = 'TestMethod' + + def _run_server(self): + # logging.basicConfig(level=logging.DEBUG, filename='bbhashserv.log', filemode='w', + # format='%(levelname)s %(filename)s:%(lineno)d %(message)s') + self.server.serve_forever() -class TestHashEquivalenceServer(unittest.TestCase): def setUp(self): - # Start an in memory hash equivalence server in the background bound to - # an ephemeral port - db = sqlite3.connect(':memory:', check_same_thread=False) - self.server = create_server(('localhost', 0), db) - self.server_addr = 'http://localhost:%d' % self.server.socket.getsockname()[1] - self.server_thread = threading.Thread(target=self.server.serve_forever) + if sys.version_info < (3, 5, 0): + self.skipTest('Python 3.5 or later required') + + self.temp_dir = tempfile.TemporaryDirectory(prefix='bb-hashserv') + self.dbfile = os.path.join(self.temp_dir.name, 'db.sqlite') + + self.server = create_server(self.get_server_addr(), self.dbfile) + self.server_thread = multiprocessing.Process(target=self._run_server) self.server_thread.start() + self.client = create_client(self.server.address) def tearDown(self): # Shutdown server s = getattr(self, 'server', None) if s is not None: - self.server.shutdown() + self.server_thread.terminate() self.server_thread.join() - self.server.server_close() - - def send_get(self, path): - url = '%s/%s' % (self.server_addr, path) - request = urllib.request.Request(url) - response = urllib.request.urlopen(request) - return json.loads(response.read().decode('utf-8')) - - def send_post(self, path, data): - headers = {'content-type': 'application/json'} - url = '%s/%s' % (self.server_addr, path) - request = urllib.request.Request(url, json.dumps(data).encode('utf-8'), headers) - response = urllib.request.urlopen(request) - return json.loads(response.read().decode('utf-8')) + self.client.close() + self.temp_dir.cleanup() def test_create_hash(self): # Simple test that hashes can be created @@ -50,16 +50,11 @@ def test_create_hash(self): outhash = '2765d4a5884be49b28601445c2760c5f21e7e5c0ee2b7e3fce98fd7e5970796f' unihash = 'f46d3fbb439bd9b921095da657a4de906510d2cd' - d = self.send_get('v1/equivalent?method=TestMethod&taskhash=%s' % taskhash) - self.assertIsNone(d, msg='Found unexpected task, %r' % d) + result = self.client.get_unihash(self.METHOD, taskhash) + self.assertIsNone(result, msg='Found unexpected task, %r' % result) - d = self.send_post('v1/equivalent', { - 'taskhash': taskhash, - 'method': 'TestMethod', - 'outhash': outhash, - 'unihash': unihash, - }) - self.assertEqual(d['unihash'], unihash, 'Server returned bad unihash') + result = self.client.report_unihash(taskhash, self.METHOD, outhash, unihash) + self.assertEqual(result['unihash'], unihash, 'Server returned bad unihash') def test_create_equivalent(self): # Tests that a second reported task with the same outhash will be @@ -67,25 +62,16 @@ def test_create_equivalent(self): taskhash = '53b8dce672cb6d0c73170be43f540460bfc347b4' outhash = '5a9cb1649625f0bf41fc7791b635cd9c2d7118c7f021ba87dcd03f72b67ce7a8' unihash = 'f37918cc02eb5a520b1aff86faacbc0a38124646' - d = self.send_post('v1/equivalent', { - 'taskhash': taskhash, - 'method': 'TestMethod', - 'outhash': outhash, - 'unihash': unihash, - }) - self.assertEqual(d['unihash'], unihash, 'Server returned bad unihash') + + result = self.client.report_unihash(taskhash, self.METHOD, outhash, unihash) + self.assertEqual(result['unihash'], unihash, 'Server returned bad unihash') # Report a different task with the same outhash. The returned unihash # should match the first task taskhash2 = '3bf6f1e89d26205aec90da04854fbdbf73afe6b4' unihash2 = 'af36b199320e611fbb16f1f277d3ee1d619ca58b' - d = self.send_post('v1/equivalent', { - 'taskhash': taskhash2, - 'method': 'TestMethod', - 'outhash': outhash, - 'unihash': unihash2, - }) - self.assertEqual(d['unihash'], unihash, 'Server returned bad unihash') + result = self.client.report_unihash(taskhash2, self.METHOD, outhash, unihash2) + self.assertEqual(result['unihash'], unihash, 'Server returned bad unihash') def test_duplicate_taskhash(self): # Tests that duplicate reports of the same taskhash with different @@ -94,38 +80,63 @@ def test_duplicate_taskhash(self): taskhash = '8aa96fcffb5831b3c2c0cb75f0431e3f8b20554a' outhash = 'afe240a439959ce86f5e322f8c208e1fedefea9e813f2140c81af866cc9edf7e' unihash = '218e57509998197d570e2c98512d0105985dffc9' - d = self.send_post('v1/equivalent', { - 'taskhash': taskhash, - 'method': 'TestMethod', - 'outhash': outhash, - 'unihash': unihash, - }) + self.client.report_unihash(taskhash, self.METHOD, outhash, unihash) - d = self.send_get('v1/equivalent?method=TestMethod&taskhash=%s' % taskhash) - self.assertEqual(d['unihash'], unihash) + result = self.client.get_unihash(self.METHOD, taskhash) + self.assertEqual(result, unihash) outhash2 = '0904a7fe3dc712d9fd8a74a616ddca2a825a8ee97adf0bd3fc86082c7639914d' unihash2 = 'ae9a7d252735f0dafcdb10e2e02561ca3a47314c' - d = self.send_post('v1/equivalent', { - 'taskhash': taskhash, - 'method': 'TestMethod', - 'outhash': outhash2, - 'unihash': unihash2 - }) + self.client.report_unihash(taskhash, self.METHOD, outhash2, unihash2) - d = self.send_get('v1/equivalent?method=TestMethod&taskhash=%s' % taskhash) - self.assertEqual(d['unihash'], unihash) + result = self.client.get_unihash(self.METHOD, taskhash) + self.assertEqual(result, unihash) outhash3 = '77623a549b5b1a31e3732dfa8fe61d7ce5d44b3370f253c5360e136b852967b4' unihash3 = '9217a7d6398518e5dc002ed58f2cbbbc78696603' - d = self.send_post('v1/equivalent', { - 'taskhash': taskhash, - 'method': 'TestMethod', - 'outhash': outhash3, - 'unihash': unihash3 - }) + self.client.report_unihash(taskhash, self.METHOD, outhash3, unihash3) + + result = self.client.get_unihash(self.METHOD, taskhash) + self.assertEqual(result, unihash) + + def test_stress(self): + def query_server(failures): + client = Client(self.server.address) + try: + for i in range(1000): + taskhash = hashlib.sha256() + taskhash.update(str(i).encode('utf-8')) + taskhash = taskhash.hexdigest() + result = client.get_unihash(self.METHOD, taskhash) + if result != taskhash: + failures.append("taskhash mismatch: %s != %s" % (result, taskhash)) + finally: + client.close() + + # Report hashes + for i in range(1000): + taskhash = hashlib.sha256() + taskhash.update(str(i).encode('utf-8')) + taskhash = taskhash.hexdigest() + self.client.report_unihash(taskhash, self.METHOD, taskhash, taskhash) + + failures = [] + threads = [threading.Thread(target=query_server, args=(failures,)) for t in range(100)] + + for t in threads: + t.start() + + for t in threads: + t.join() + + self.assertFalse(failures) + - d = self.send_get('v1/equivalent?method=TestMethod&taskhash=%s' % taskhash) - self.assertEqual(d['unihash'], unihash) +class TestHashEquivalenceUnixServer(TestHashEquivalenceServer, unittest.TestCase): + def get_server_addr(self): + return "unix://" + os.path.join(self.temp_dir.name, 'sock') +class TestHashEquivalenceTCPServer(TestHashEquivalenceServer, unittest.TestCase): + def get_server_addr(self): + return "localhost:0" diff --git a/Contrib-Inspur/openbmc/poky/bitbake/lib/layerindexlib/__init__.py b/Contrib-Inspur/openbmc/poky/bitbake/lib/layerindexlib/__init__.py index d231cf6a..77196b40 100644 --- a/Contrib-Inspur/openbmc/poky/bitbake/lib/layerindexlib/__init__.py +++ b/Contrib-Inspur/openbmc/poky/bitbake/lib/layerindexlib/__init__.py @@ -376,7 +376,7 @@ def find_dependencies(self, names=None, layerbranches=None, ignores=None): invalid.append(name) - def _resolve_dependencies(layerbranches, ignores, dependencies, invalid): + def _resolve_dependencies(layerbranches, ignores, dependencies, invalid, processed=None): for layerbranch in layerbranches: if ignores and layerbranch.layer.name in ignores: continue @@ -388,6 +388,13 @@ def _resolve_dependencies(layerbranches, ignores, dependencies, invalid): if ignores and deplayerbranch.layer.name in ignores: continue + # Since this is depth first, we need to know what we're currently processing + # in order to avoid infinite recursion on a loop. + if processed and deplayerbranch.layer.name in processed: + # We have found a recursion... + logger.warning('Circular layer dependency found: %s -> %s' % (processed, deplayerbranch.layer.name)) + continue + # This little block is why we can't re-use the LayerIndexObj version, # we must be able to satisfy each dependencies across layer indexes and # use the layer index order for priority. (r stands for replacement below) @@ -411,7 +418,17 @@ def _resolve_dependencies(layerbranches, ignores, dependencies, invalid): # New dependency, we need to resolve it now... depth-first if deplayerbranch.layer.name not in dependencies: - (dependencies, invalid) = _resolve_dependencies([deplayerbranch], ignores, dependencies, invalid) + # Avoid recursion on this branch. + # We copy so we don't end up polluting the depth-first branch with other + # branches. Duplication between individual branches IS expected and + # handled by 'dependencies' processing. + if not processed: + local_processed = [] + else: + local_processed = processed.copy() + local_processed.append(deplayerbranch.layer.name) + + (dependencies, invalid) = _resolve_dependencies([deplayerbranch], ignores, dependencies, invalid, local_processed) if deplayerbranch.layer.name not in dependencies: dependencies[deplayerbranch.layer.name] = [deplayerbranch, layerdependency] diff --git a/Contrib-Inspur/openbmc/poky/bitbake/lib/prserv/db.py b/Contrib-Inspur/openbmc/poky/bitbake/lib/prserv/db.py index d6188a67..117d8c05 100644 --- a/Contrib-Inspur/openbmc/poky/bitbake/lib/prserv/db.py +++ b/Contrib-Inspur/openbmc/poky/bitbake/lib/prserv/db.py @@ -257,7 +257,7 @@ def __init__(self, filename, nohist=True): self.connection=sqlite3.connect(self.filename, isolation_level="EXCLUSIVE", check_same_thread = False) self.connection.row_factory=sqlite3.Row self.connection.execute("pragma synchronous = off;") - self.connection.execute("PRAGMA journal_mode = WAL;") + self.connection.execute("PRAGMA journal_mode = MEMORY;") self._tables={} def disconnect(self): diff --git a/Contrib-Inspur/openbmc/poky/bitbake/lib/prserv/serv.py b/Contrib-Inspur/openbmc/poky/bitbake/lib/prserv/serv.py index be3acec3..b854ba14 100644 --- a/Contrib-Inspur/openbmc/poky/bitbake/lib/prserv/serv.py +++ b/Contrib-Inspur/openbmc/poky/bitbake/lib/prserv/serv.py @@ -243,6 +243,7 @@ def fork(self): try: pid = os.fork() if pid > 0: + self.socket.close() # avoid ResourceWarning in parent return pid except OSError as e: raise Exception("%s [%d]" % (e.strerror, e.errno)) @@ -379,9 +380,8 @@ def stop_daemon(host, port): ip = socket.gethostbyname(host) pidfile = PIDPREFIX % (ip, port) try: - pf = open(pidfile,'r') - pid = int(pf.readline().strip()) - pf.close() + with open(pidfile) as pf: + pid = int(pf.readline().strip()) except IOError: pid = None diff --git a/Contrib-Inspur/openbmc/poky/bitbake/lib/pyinotify.py b/Contrib-Inspur/openbmc/poky/bitbake/lib/pyinotify.py index 9dcfd0d2..1528a22e 100644 --- a/Contrib-Inspur/openbmc/poky/bitbake/lib/pyinotify.py +++ b/Contrib-Inspur/openbmc/poky/bitbake/lib/pyinotify.py @@ -1,5 +1,4 @@ -#!/usr/bin/env python - +# # pyinotify.py - python interface to inotify # Copyright (c) 2005-2015 Sebastien Martini # diff --git a/Contrib-Inspur/openbmc/poky/bitbake/lib/toaster/orm/fixtures/oe-core.xml b/Contrib-Inspur/openbmc/poky/bitbake/lib/toaster/orm/fixtures/oe-core.xml index 9ae2e423..a723f5a2 100644 --- a/Contrib-Inspur/openbmc/poky/bitbake/lib/toaster/orm/fixtures/oe-core.xml +++ b/Contrib-Inspur/openbmc/poky/bitbake/lib/toaster/orm/fixtures/oe-core.xml @@ -23,9 +23,9 @@ master - thud + zeus git://git.openembedded.org/bitbake - 1.40 + 1.44 @@ -51,11 +51,11 @@ Toaster will run your builds using the tip of the <a href=\"http://cgit.openembedded.org/openembedded-core/log/\">OpenEmbedded master</a> branch. - thud - Openembedded Thud + zeus + Openembedded Zeus 4 - thud - Toaster will run your builds using the tip of the <a href=\"http://cgit.openembedded.org/openembedded-core/log/?h=thud\">OpenEmbedded Thud</a> branch. + zeus + Toaster will run your builds using the tip of the <a href=\"http://cgit.openembedded.org/openembedded-core/log/?h=zeus\">OpenEmbedded Zeus</a> branch. diff --git a/Contrib-Inspur/openbmc/poky/bitbake/lib/toaster/orm/fixtures/poky.xml b/Contrib-Inspur/openbmc/poky/bitbake/lib/toaster/orm/fixtures/poky.xml index da3b9303..79923837 100644 --- a/Contrib-Inspur/openbmc/poky/bitbake/lib/toaster/orm/fixtures/poky.xml +++ b/Contrib-Inspur/openbmc/poky/bitbake/lib/toaster/orm/fixtures/poky.xml @@ -26,9 +26,9 @@ bitbake - thud + zeus git://git.yoctoproject.org/poky - thud + zeus bitbake @@ -56,11 +56,11 @@ Toaster will run your builds using the tip of the <a href="http://git.yoctoproject.org/cgit/cgit.cgi/poky/log/">Yocto Project Master branch</a>. - thud - Yocto Project 2.6 "Thud" + zeus + Yocto Project 3.0 "Zeus" 4 - thud - Toaster will run your builds using the tip of the <a href="http://git.yoctoproject.org/cgit/cgit.cgi/poky/log/?h=thud">Yocto Project Thud branch</a>. + zeus + Toaster will run your builds using the tip of the <a href="http://git.yoctoproject.org/cgit/cgit.cgi/poky/log/?h=zeus">Yocto Project Zeus branch</a>. @@ -152,7 +152,7 @@ 1 0 4 - thud + zeus meta @@ -190,7 +190,7 @@ 2 0 4 - thud + zeus meta-poky @@ -228,7 +228,7 @@ 3 0 4 - thud + zeus meta-yocto-bsp diff --git a/Contrib-Inspur/openbmc/poky/bitbake/lib/toaster/orm/models.py b/Contrib-Inspur/openbmc/poky/bitbake/lib/toaster/orm/models.py index 41a9f819..bb6b5dec 100644 --- a/Contrib-Inspur/openbmc/poky/bitbake/lib/toaster/orm/models.py +++ b/Contrib-Inspur/openbmc/poky/bitbake/lib/toaster/orm/models.py @@ -965,12 +965,12 @@ def basename(self): class Target_Image_File(models.Model): # valid suffixes for image files produced by a build SUFFIXES = { - 'btrfs', 'cpio', 'cpio.gz', 'cpio.lz4', 'cpio.lzma', 'cpio.xz', - 'cramfs', 'elf', 'ext2', 'ext2.bz2', 'ext2.gz', 'ext2.lzma', 'ext4', - 'ext4.gz', 'ext3', 'ext3.gz', 'hdddirect', 'hddimg', 'iso', 'jffs2', - 'jffs2.sum', 'multiubi', 'qcow2', 'squashfs', 'squashfs-lzo', + 'btrfs', 'container', 'cpio', 'cpio.gz', 'cpio.lz4', 'cpio.lzma', + 'cpio.xz', 'cramfs', 'ext2', 'ext2.bz2', 'ext2.gz', 'ext2.lzma', + 'ext3', 'ext3.gz', 'ext4', 'ext4.gz', 'f2fs', 'hddimg', 'iso', 'jffs2', + 'jffs2.sum', 'multiubi', 'squashfs', 'squashfs-lz4', 'squashfs-lzo', 'squashfs-xz', 'tar', 'tar.bz2', 'tar.gz', 'tar.lz4', 'tar.xz', 'ubi', - 'ubifs', 'vdi', 'vmdk', 'wic', 'wic.bmap', 'wic.bz2', 'wic.gz', 'wic.lzma' + 'ubifs', 'wic', 'wic.bz2', 'wic.gz', 'wic.lzma' } target = models.ForeignKey(Target) diff --git a/Contrib-Inspur/openbmc/poky/bitbake/lib/toaster/tests/browser/selenium_helpers.py b/Contrib-Inspur/openbmc/poky/bitbake/lib/toaster/tests/browser/selenium_helpers.py index 6d9bb809..02d4f4b5 100644 --- a/Contrib-Inspur/openbmc/poky/bitbake/lib/toaster/tests/browser/selenium_helpers.py +++ b/Contrib-Inspur/openbmc/poky/bitbake/lib/toaster/tests/browser/selenium_helpers.py @@ -1,4 +1,4 @@ -#! /usr/bin/env python +#! /usr/bin/env python3 # # BitBake Toaster Implementation # diff --git a/Contrib-Inspur/openbmc/poky/bitbake/lib/toaster/tests/browser/selenium_helpers_base.py b/Contrib-Inspur/openbmc/poky/bitbake/lib/toaster/tests/browser/selenium_helpers_base.py index 8417aa3b..6c94684e 100644 --- a/Contrib-Inspur/openbmc/poky/bitbake/lib/toaster/tests/browser/selenium_helpers_base.py +++ b/Contrib-Inspur/openbmc/poky/bitbake/lib/toaster/tests/browser/selenium_helpers_base.py @@ -1,4 +1,4 @@ -#! /usr/bin/env python +#! /usr/bin/env python3 # # BitBake Toaster Implementation # diff --git a/Contrib-Inspur/openbmc/poky/bitbake/lib/toaster/tests/browser/test_all_builds_page.py b/Contrib-Inspur/openbmc/poky/bitbake/lib/toaster/tests/browser/test_all_builds_page.py index f4021614..fba627bd 100644 --- a/Contrib-Inspur/openbmc/poky/bitbake/lib/toaster/tests/browser/test_all_builds_page.py +++ b/Contrib-Inspur/openbmc/poky/bitbake/lib/toaster/tests/browser/test_all_builds_page.py @@ -1,4 +1,4 @@ -#! /usr/bin/env python +#! /usr/bin/env python3 # # BitBake Toaster Implementation # diff --git a/Contrib-Inspur/openbmc/poky/bitbake/lib/toaster/tests/browser/test_all_projects_page.py b/Contrib-Inspur/openbmc/poky/bitbake/lib/toaster/tests/browser/test_all_projects_page.py index f86d19d2..afd2d356 100644 --- a/Contrib-Inspur/openbmc/poky/bitbake/lib/toaster/tests/browser/test_all_projects_page.py +++ b/Contrib-Inspur/openbmc/poky/bitbake/lib/toaster/tests/browser/test_all_projects_page.py @@ -1,4 +1,4 @@ -#! /usr/bin/env python +#! /usr/bin/env python3 # # BitBake Toaster Implementation # diff --git a/Contrib-Inspur/openbmc/poky/bitbake/lib/toaster/tests/browser/test_builddashboard_page.py b/Contrib-Inspur/openbmc/poky/bitbake/lib/toaster/tests/browser/test_builddashboard_page.py index 53c125ec..d972aff1 100644 --- a/Contrib-Inspur/openbmc/poky/bitbake/lib/toaster/tests/browser/test_builddashboard_page.py +++ b/Contrib-Inspur/openbmc/poky/bitbake/lib/toaster/tests/browser/test_builddashboard_page.py @@ -1,4 +1,4 @@ -#! /usr/bin/env python +#! /usr/bin/env python3 # # BitBake Toaster Implementation # diff --git a/Contrib-Inspur/openbmc/poky/bitbake/lib/toaster/tests/browser/test_builddashboard_page_artifacts.py b/Contrib-Inspur/openbmc/poky/bitbake/lib/toaster/tests/browser/test_builddashboard_page_artifacts.py index c560d7de..e2623e8a 100644 --- a/Contrib-Inspur/openbmc/poky/bitbake/lib/toaster/tests/browser/test_builddashboard_page_artifacts.py +++ b/Contrib-Inspur/openbmc/poky/bitbake/lib/toaster/tests/browser/test_builddashboard_page_artifacts.py @@ -1,4 +1,4 @@ -#! /usr/bin/env python +#! /usr/bin/env python3 # # BitBake Toaster Implementation # diff --git a/Contrib-Inspur/openbmc/poky/bitbake/lib/toaster/tests/browser/test_builddashboard_page_recipes.py b/Contrib-Inspur/openbmc/poky/bitbake/lib/toaster/tests/browser/test_builddashboard_page_recipes.py index e4f3d685..c542d45f 100644 --- a/Contrib-Inspur/openbmc/poky/bitbake/lib/toaster/tests/browser/test_builddashboard_page_recipes.py +++ b/Contrib-Inspur/openbmc/poky/bitbake/lib/toaster/tests/browser/test_builddashboard_page_recipes.py @@ -1,4 +1,4 @@ -#! /usr/bin/env python +#! /usr/bin/env python3 # # BitBake Toaster Implementation # diff --git a/Contrib-Inspur/openbmc/poky/bitbake/lib/toaster/tests/browser/test_builddashboard_page_tasks.py b/Contrib-Inspur/openbmc/poky/bitbake/lib/toaster/tests/browser/test_builddashboard_page_tasks.py index bdb0c27b..22acb470 100644 --- a/Contrib-Inspur/openbmc/poky/bitbake/lib/toaster/tests/browser/test_builddashboard_page_tasks.py +++ b/Contrib-Inspur/openbmc/poky/bitbake/lib/toaster/tests/browser/test_builddashboard_page_tasks.py @@ -1,4 +1,4 @@ -#! /usr/bin/env python +#! /usr/bin/env python3 # # BitBake Toaster Implementation # diff --git a/Contrib-Inspur/openbmc/poky/bitbake/lib/toaster/tests/browser/test_js_unit_tests.py b/Contrib-Inspur/openbmc/poky/bitbake/lib/toaster/tests/browser/test_js_unit_tests.py index 63f3f4a7..e8b4295b 100644 --- a/Contrib-Inspur/openbmc/poky/bitbake/lib/toaster/tests/browser/test_js_unit_tests.py +++ b/Contrib-Inspur/openbmc/poky/bitbake/lib/toaster/tests/browser/test_js_unit_tests.py @@ -1,4 +1,4 @@ -#! /usr/bin/env python +#! /usr/bin/env python3 # # BitBake Toaster Implementation # diff --git a/Contrib-Inspur/openbmc/poky/bitbake/lib/toaster/tests/browser/test_landing_page.py b/Contrib-Inspur/openbmc/poky/bitbake/lib/toaster/tests/browser/test_landing_page.py index 0a00fccc..07901989 100644 --- a/Contrib-Inspur/openbmc/poky/bitbake/lib/toaster/tests/browser/test_landing_page.py +++ b/Contrib-Inspur/openbmc/poky/bitbake/lib/toaster/tests/browser/test_landing_page.py @@ -1,4 +1,4 @@ -#! /usr/bin/env python +#! /usr/bin/env python3 # # BitBake Toaster Implementation # diff --git a/Contrib-Inspur/openbmc/poky/bitbake/lib/toaster/tests/browser/test_layerdetails_page.py b/Contrib-Inspur/openbmc/poky/bitbake/lib/toaster/tests/browser/test_layerdetails_page.py index e34aa13d..f81e696a 100644 --- a/Contrib-Inspur/openbmc/poky/bitbake/lib/toaster/tests/browser/test_layerdetails_page.py +++ b/Contrib-Inspur/openbmc/poky/bitbake/lib/toaster/tests/browser/test_layerdetails_page.py @@ -1,4 +1,4 @@ -#! /usr/bin/env python +#! /usr/bin/env python3 # # BitBake Toaster Implementation # diff --git a/Contrib-Inspur/openbmc/poky/bitbake/lib/toaster/tests/browser/test_most_recent_builds_states.py b/Contrib-Inspur/openbmc/poky/bitbake/lib/toaster/tests/browser/test_most_recent_builds_states.py index d52b1842..15d25dc3 100644 --- a/Contrib-Inspur/openbmc/poky/bitbake/lib/toaster/tests/browser/test_most_recent_builds_states.py +++ b/Contrib-Inspur/openbmc/poky/bitbake/lib/toaster/tests/browser/test_most_recent_builds_states.py @@ -1,4 +1,4 @@ -#! /usr/bin/env python +#! /usr/bin/env python3 # # BitBake Toaster Implementation # diff --git a/Contrib-Inspur/openbmc/poky/bitbake/lib/toaster/tests/browser/test_new_custom_image_page.py b/Contrib-Inspur/openbmc/poky/bitbake/lib/toaster/tests/browser/test_new_custom_image_page.py index 3b47a497..0aa3b7a7 100644 --- a/Contrib-Inspur/openbmc/poky/bitbake/lib/toaster/tests/browser/test_new_custom_image_page.py +++ b/Contrib-Inspur/openbmc/poky/bitbake/lib/toaster/tests/browser/test_new_custom_image_page.py @@ -1,4 +1,4 @@ -#! /usr/bin/env python +#! /usr/bin/env python3 # # BitBake Toaster Implementation # diff --git a/Contrib-Inspur/openbmc/poky/bitbake/lib/toaster/tests/browser/test_new_project_page.py b/Contrib-Inspur/openbmc/poky/bitbake/lib/toaster/tests/browser/test_new_project_page.py index d250bd14..8e56bb04 100644 --- a/Contrib-Inspur/openbmc/poky/bitbake/lib/toaster/tests/browser/test_new_project_page.py +++ b/Contrib-Inspur/openbmc/poky/bitbake/lib/toaster/tests/browser/test_new_project_page.py @@ -1,4 +1,4 @@ -#! /usr/bin/env python +#! /usr/bin/env python3 # # BitBake Toaster Implementation # diff --git a/Contrib-Inspur/openbmc/poky/bitbake/lib/toaster/tests/browser/test_project_builds_page.py b/Contrib-Inspur/openbmc/poky/bitbake/lib/toaster/tests/browser/test_project_builds_page.py index 065f3ebe..47fb10b2 100644 --- a/Contrib-Inspur/openbmc/poky/bitbake/lib/toaster/tests/browser/test_project_builds_page.py +++ b/Contrib-Inspur/openbmc/poky/bitbake/lib/toaster/tests/browser/test_project_builds_page.py @@ -1,4 +1,4 @@ -#! /usr/bin/env python +#! /usr/bin/env python3 # # BitBake Toaster Implementation # diff --git a/Contrib-Inspur/openbmc/poky/bitbake/lib/toaster/tests/browser/test_project_config_page.py b/Contrib-Inspur/openbmc/poky/bitbake/lib/toaster/tests/browser/test_project_config_page.py index 48508dff..2816eb90 100644 --- a/Contrib-Inspur/openbmc/poky/bitbake/lib/toaster/tests/browser/test_project_config_page.py +++ b/Contrib-Inspur/openbmc/poky/bitbake/lib/toaster/tests/browser/test_project_config_page.py @@ -1,4 +1,4 @@ -#! /usr/bin/env python +#! /usr/bin/env python3 # # BitBake Toaster Implementation # diff --git a/Contrib-Inspur/openbmc/poky/bitbake/lib/toaster/tests/browser/test_project_page.py b/Contrib-Inspur/openbmc/poky/bitbake/lib/toaster/tests/browser/test_project_page.py index 5cb607dd..8b5e1b67 100644 --- a/Contrib-Inspur/openbmc/poky/bitbake/lib/toaster/tests/browser/test_project_page.py +++ b/Contrib-Inspur/openbmc/poky/bitbake/lib/toaster/tests/browser/test_project_page.py @@ -1,4 +1,4 @@ -#! /usr/bin/env python +#! /usr/bin/env python3 # # BitBake Toaster Implementation # diff --git a/Contrib-Inspur/openbmc/poky/bitbake/lib/toaster/tests/browser/test_sample.py b/Contrib-Inspur/openbmc/poky/bitbake/lib/toaster/tests/browser/test_sample.py index 008ba14a..f4ad670a 100644 --- a/Contrib-Inspur/openbmc/poky/bitbake/lib/toaster/tests/browser/test_sample.py +++ b/Contrib-Inspur/openbmc/poky/bitbake/lib/toaster/tests/browser/test_sample.py @@ -1,4 +1,4 @@ -#! /usr/bin/env python +#! /usr/bin/env python3 # # BitBake Toaster Implementation # diff --git a/Contrib-Inspur/openbmc/poky/bitbake/lib/toaster/tests/browser/test_task_page.py b/Contrib-Inspur/openbmc/poky/bitbake/lib/toaster/tests/browser/test_task_page.py index 47c8c1ae..26f3dca8 100644 --- a/Contrib-Inspur/openbmc/poky/bitbake/lib/toaster/tests/browser/test_task_page.py +++ b/Contrib-Inspur/openbmc/poky/bitbake/lib/toaster/tests/browser/test_task_page.py @@ -1,4 +1,4 @@ -#! /usr/bin/env python +#! /usr/bin/env python3 # # BitBake Toaster Implementation # diff --git a/Contrib-Inspur/openbmc/poky/bitbake/lib/toaster/tests/browser/test_toastertable_ui.py b/Contrib-Inspur/openbmc/poky/bitbake/lib/toaster/tests/browser/test_toastertable_ui.py index b4f83447..ef78cbb1 100644 --- a/Contrib-Inspur/openbmc/poky/bitbake/lib/toaster/tests/browser/test_toastertable_ui.py +++ b/Contrib-Inspur/openbmc/poky/bitbake/lib/toaster/tests/browser/test_toastertable_ui.py @@ -1,4 +1,4 @@ -#! /usr/bin/env python +#! /usr/bin/env python3 # # BitBake Toaster Implementation # diff --git a/Contrib-Inspur/openbmc/poky/bitbake/lib/toaster/tests/builds/buildtest.py b/Contrib-Inspur/openbmc/poky/bitbake/lib/toaster/tests/builds/buildtest.py index 9f40f978..872bbd37 100644 --- a/Contrib-Inspur/openbmc/poky/bitbake/lib/toaster/tests/builds/buildtest.py +++ b/Contrib-Inspur/openbmc/poky/bitbake/lib/toaster/tests/builds/buildtest.py @@ -1,4 +1,4 @@ -#! /usr/bin/env python +#! /usr/bin/env python3 # # BitBake Toaster Implementation # diff --git a/Contrib-Inspur/openbmc/poky/bitbake/lib/toaster/tests/builds/test_core_image_min.py b/Contrib-Inspur/openbmc/poky/bitbake/lib/toaster/tests/builds/test_core_image_min.py index 3d3aa2a8..44b6cbec 100644 --- a/Contrib-Inspur/openbmc/poky/bitbake/lib/toaster/tests/builds/test_core_image_min.py +++ b/Contrib-Inspur/openbmc/poky/bitbake/lib/toaster/tests/builds/test_core_image_min.py @@ -1,4 +1,4 @@ -#! /usr/bin/env python +#! /usr/bin/env python3 # # BitBake Toaster Implementation # diff --git a/Contrib-Inspur/openbmc/poky/bitbake/lib/toaster/tests/commands/test_loaddata.py b/Contrib-Inspur/openbmc/poky/bitbake/lib/toaster/tests/commands/test_loaddata.py index b633d977..9e8d5553 100644 --- a/Contrib-Inspur/openbmc/poky/bitbake/lib/toaster/tests/commands/test_loaddata.py +++ b/Contrib-Inspur/openbmc/poky/bitbake/lib/toaster/tests/commands/test_loaddata.py @@ -1,4 +1,4 @@ -#! /usr/bin/env python +#! /usr/bin/env python3 # # BitBake Toaster Implementation # diff --git a/Contrib-Inspur/openbmc/poky/bitbake/lib/toaster/tests/commands/test_lsupdates.py b/Contrib-Inspur/openbmc/poky/bitbake/lib/toaster/tests/commands/test_lsupdates.py index 23a84a24..3c4fbe05 100644 --- a/Contrib-Inspur/openbmc/poky/bitbake/lib/toaster/tests/commands/test_lsupdates.py +++ b/Contrib-Inspur/openbmc/poky/bitbake/lib/toaster/tests/commands/test_lsupdates.py @@ -1,4 +1,4 @@ -#! /usr/bin/env python +#! /usr/bin/env python3 # # BitBake Toaster Implementation # diff --git a/Contrib-Inspur/openbmc/poky/bitbake/lib/toaster/tests/commands/test_runbuilds.py b/Contrib-Inspur/openbmc/poky/bitbake/lib/toaster/tests/commands/test_runbuilds.py index 29bc7c90..e223b95f 100644 --- a/Contrib-Inspur/openbmc/poky/bitbake/lib/toaster/tests/commands/test_runbuilds.py +++ b/Contrib-Inspur/openbmc/poky/bitbake/lib/toaster/tests/commands/test_runbuilds.py @@ -1,4 +1,4 @@ -#! /usr/bin/env python +#! /usr/bin/env python3 # # BitBake Toaster Implementation # diff --git a/Contrib-Inspur/openbmc/poky/bitbake/lib/toaster/tests/eventreplay/__init__.py b/Contrib-Inspur/openbmc/poky/bitbake/lib/toaster/tests/eventreplay/__init__.py index 3606cba4..8ed6792e 100644 --- a/Contrib-Inspur/openbmc/poky/bitbake/lib/toaster/tests/eventreplay/__init__.py +++ b/Contrib-Inspur/openbmc/poky/bitbake/lib/toaster/tests/eventreplay/__init__.py @@ -1,4 +1,4 @@ -#! /usr/bin/env python +#! /usr/bin/env python3 # # BitBake Toaster Implementation # diff --git a/Contrib-Inspur/openbmc/poky/bitbake/lib/toaster/tests/functional/functional_helpers.py b/Contrib-Inspur/openbmc/poky/bitbake/lib/toaster/tests/functional/functional_helpers.py index 6a3f74ba..455c408e 100644 --- a/Contrib-Inspur/openbmc/poky/bitbake/lib/toaster/tests/functional/functional_helpers.py +++ b/Contrib-Inspur/openbmc/poky/bitbake/lib/toaster/tests/functional/functional_helpers.py @@ -1,4 +1,4 @@ -#! /usr/bin/env python +#! /usr/bin/env python3 # # BitBake Toaster functional tests implementation # diff --git a/Contrib-Inspur/openbmc/poky/bitbake/lib/toaster/tests/functional/test_functional_basic.py b/Contrib-Inspur/openbmc/poky/bitbake/lib/toaster/tests/functional/test_functional_basic.py index 2b3a2886..56c84fba 100644 --- a/Contrib-Inspur/openbmc/poky/bitbake/lib/toaster/tests/functional/test_functional_basic.py +++ b/Contrib-Inspur/openbmc/poky/bitbake/lib/toaster/tests/functional/test_functional_basic.py @@ -1,4 +1,4 @@ -#! /usr/bin/env python +#! /usr/bin/env python3 # # BitBake Toaster functional tests implementation # diff --git a/Contrib-Inspur/openbmc/poky/bitbake/lib/toaster/tests/views/test_views.py b/Contrib-Inspur/openbmc/poky/bitbake/lib/toaster/tests/views/test_views.py index 477654ea..68d9e9de 100644 --- a/Contrib-Inspur/openbmc/poky/bitbake/lib/toaster/tests/views/test_views.py +++ b/Contrib-Inspur/openbmc/poky/bitbake/lib/toaster/tests/views/test_views.py @@ -1,4 +1,4 @@ -#! /usr/bin/env python +#! /usr/bin/env python3 # # BitBake Toaster Implementation # diff --git a/Contrib-Inspur/openbmc/poky/bitbake/lib/toaster/toastergui/static/js/importlayer.js b/Contrib-Inspur/openbmc/poky/bitbake/lib/toaster/toastergui/static/js/importlayer.js index 29648398..8e2032de 100644 --- a/Contrib-Inspur/openbmc/poky/bitbake/lib/toaster/toastergui/static/js/importlayer.js +++ b/Contrib-Inspur/openbmc/poky/bitbake/lib/toaster/toastergui/static/js/importlayer.js @@ -17,11 +17,15 @@ function importLayerPageInit (ctx) { var currentLayerDepSelection; var validLayerName = /^(\w|-)+$/; + /* Catch 'disable' race condition between type-ahead started and "input change" */ + var typeAheadStarted = 0; + libtoaster.makeTypeahead(layerDepInput, libtoaster.ctx.layersTypeAheadUrl, { include_added: "true" }, function(item){ currentLayerDepSelection = item; layerDepBtn.removeAttr("disabled"); + typeAheadStarted = 1; }); layerDepInput.on("typeahead:select", function(event, data){ @@ -34,7 +38,10 @@ function importLayerPageInit (ctx) { // disable the "Add layer" button when the layer input typeahead is empty // or not in the typeahead choices layerDepInput.on("input change", function(){ - layerDepBtn.attr("disabled","disabled"); + if (0 == typeAheadStarted) { + layerDepBtn.attr("disabled","disabled"); + } + typeAheadStarted = 0; }); /* We automatically add "openembedded-core" layer for convenience as a @@ -50,6 +57,7 @@ function importLayerPageInit (ctx) { }); layerDepBtn.click(function(){ + typeAheadStarted = 0; if (currentLayerDepSelection == undefined) return; @@ -77,7 +85,7 @@ function importLayerPageInit (ctx) { $("#layer-deps-list").append(newLayerDep); - libtoaster.getLayerDepsForProject(currentLayerDepSelection.layerdetailurl, + libtoaster.getLayerDepsForProject(currentLayerDepSelection.xhrLayerUrl, function (data){ /* These are the dependencies of the layer added as a dependency */ if (data.list.length > 0) { diff --git a/Contrib-Inspur/openbmc/poky/bitbake/lib/toaster/toastermain/management/commands/checksocket.py b/Contrib-Inspur/openbmc/poky/bitbake/lib/toaster/toastermain/management/commands/checksocket.py index c1758f34..811fd5d5 100644 --- a/Contrib-Inspur/openbmc/poky/bitbake/lib/toaster/toastermain/management/commands/checksocket.py +++ b/Contrib-Inspur/openbmc/poky/bitbake/lib/toaster/toastermain/management/commands/checksocket.py @@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/env python3 # # BitBake Toaster Implementation # diff --git a/Contrib-Inspur/openbmc/poky/contrib/artwork/oe.svg b/Contrib-Inspur/openbmc/poky/contrib/artwork/oe.svg new file mode 100644 index 00000000..a3545cb1 --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/contrib/artwork/oe.svg @@ -0,0 +1,80 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Contrib-Inspur/openbmc/poky/documentation/bsp-guide/bsp-guide.xml b/Contrib-Inspur/openbmc/poky/documentation/bsp-guide/bsp-guide.xml index addb4211..dd0c76ad 100644 --- a/Contrib-Inspur/openbmc/poky/documentation/bsp-guide/bsp-guide.xml +++ b/Contrib-Inspur/openbmc/poky/documentation/bsp-guide/bsp-guide.xml @@ -132,9 +132,9 @@ Released with the Yocto Project 2.7 Release. - 2.8 + 3.0 &REL_MONTH_YEAR; - Released with the Yocto Project 2.8 Release. + Released with the Yocto Project 3.0 Release. diff --git a/Contrib-Inspur/openbmc/poky/documentation/dev-manual/dev-manual-common-tasks.xml b/Contrib-Inspur/openbmc/poky/documentation/dev-manual/dev-manual-common-tasks.xml index 9231d141..00741ee4 100644 --- a/Contrib-Inspur/openbmc/poky/documentation/dev-manual/dev-manual-common-tasks.xml +++ b/Contrib-Inspur/openbmc/poky/documentation/dev-manual/dev-manual-common-tasks.xml @@ -2349,7 +2349,7 @@ Most software provides some means of setting build-time configuration options before compilation. Typically, setting these options is accomplished by running a - configure script with some options, or by modifying a build + configure script with options, or by modifying a build configuration file. As of Yocto Project Release 1.7, some of the core recipes @@ -2389,6 +2389,7 @@ software is built using Autotools. If this is the case, you just need to worry about modifying the configuration. + When using Autotools, your recipe needs to inherit the autotools @@ -2401,13 +2402,15 @@ or PACKAGECONFIG_CONFARGS to pass any needed configure options that are specific - to the recipe. + to the recipe. + CMake: If your source files have a CMakeLists.txt file, then your software is built using CMake. If this is the case, you just need to worry about modifying the configuration. + When you use CMake, your recipe needs to inherit the cmake @@ -2417,7 +2420,16 @@ You can make some adjustments by setting EXTRA_OECMAKE to pass any needed configure options that are specific - to the recipe. + to the recipe. + + If you need to install one or more custom CMake + toolchain files that are supplied by the + application you are building, install the files to + ${D}${datadir}/cmake/ Modules + during + do_install. + + Other: If your source files do not have a configure.ac or @@ -2780,6 +2792,14 @@ PARALLEL_MAKEINST for additional information. + + If you need to install one or more custom CMake + toolchain files that are supplied by the + application you are building, install the files to + ${D}${datadir}/cmake/ Modules + during + do_install. + @@ -5420,26 +5440,39 @@ BBMULTICONFIG = "x86 arm" + + A "default" configuration already exists by + definition. + This configuration is named: "" (i.e. empty + string) and is defined by the variables coming + from your local.conf file. + Consequently, the previous example actually + adds two additional configurations to your + build: "arm" and "x86" along with "". + Launch BitBake: Use the following BitBake command form to launch the multiple configuration build: - $ bitbake [multiconfig:multiconfigname:]target [[[multiconfig:multiconfigname:]target] ... ] + $ bitbake [mc:multiconfigname:]target [[[mc:multiconfigname:]target] ... ] For the example in this section, the following command applies: - $ bitbake multiconfig:x86:core-image-minimal multiconfig:arm:core-image-sato + $ bitbake mc:x86:core-image-minimal mc:arm:core-image-sato mc::core-image-base The previous BitBake command builds a core-image-minimal image that is configured through the - x86.conf configuration file - and builds a core-image-sato + x86.conf configuration file, + a core-image-sato image that is configured through the - arm.conf configuration file. + arm.conf configuration file + and a core-image-base that is + configured through your + local.conf configuration file. @@ -5479,7 +5512,7 @@ build, you must declare the dependencies in the recipe using the following statement form: - task_or_package[mcdepends] = "multiconfig:from_multiconfig:to_multiconfig:recipe_name:task_on_which_to_depend" + task_or_package[mcdepends] = "mc:from_multiconfig:to_multiconfig:recipe_name:task_on_which_to_depend" To better show how to use this statement, consider the example scenario from the first paragraph of this section. @@ -5487,7 +5520,7 @@ that builds the core-image-sato image: - do_image[mcdepends] = "multiconfig:x86:arm:core-image-minimal:do_rootfs" + do_image[mcdepends] = "mc:x86:arm:core-image-minimal:do_rootfs" In this example, the from_multiconfig is "x86". @@ -5502,7 +5535,7 @@ Once you set up this dependency, you can build the "x86" multiconfig using a BitBake command as follows: - $ bitbake multiconfig:x86:core-image-sato + $ bitbake mc:x86:core-image-sato This command executes all the tasks needed to create the core-image-sato image for the @@ -5518,7 +5551,7 @@ Consider this change to the statement in the core-image-sato recipe: - do_image[mcdepends] = "multiconfig:x86:arm:core-image-minimal:do_image" + do_image[mcdepends] = "mc:x86:arm:core-image-minimal:do_image" In this case, BitBake must create the core-image-minimal image for the @@ -7129,7 +7162,8 @@ This problem is solved with the OpenEmbedded build system by running the code through QEMU, which allows precisely that. Unfortunately, QEMU does not always work perfectly as mentioned - in the xxx section. + in the + "Known Issues" section.
@@ -10810,6 +10844,47 @@ features that are used by many distributions. + + By default, the Yocto Project uses SysVinit as the initialization + manager. + However, support also exists for systemd, + which is a full replacement for init with + parallel starting of services, reduced shell overhead and other + features that are used by many distributions. + + + + Within the system, SysVinit treats system components as services. + These services are maintained as shell scripts stored in the + /etc/init.d/ directory. + Services organize into different run levels. + This organization is maintained by putting links to the services + in the /etc/rcN.d/ directories, where + N/ is one of the following options: + "S", "0", "1", "2", "3", "4", "5", or "6". + + Each runlevel has a dependency on the previous runlevel. + This dependency allows the services to work properly. + + + + + In comparison, systemd treats components as units. + Using units is a broader concept as compared to using a service. + A unit includes several different types of entities. + Service is one of the types of entities. + The runlevel concept in SysVinit corresponds to the concept of a + target in systemd, where target is also a type of supported unit. + + + + In a SysVinit-based system, services load sequentially (i.e. one + by one) during and parallelization is not supported. + With systemd, services start in parallel. + Needless to say, the method can have an impact on system startup + performance. + + If you want to use SysVinit, you do not have to do anything. diff --git a/Contrib-Inspur/openbmc/poky/documentation/dev-manual/dev-manual-start.xml b/Contrib-Inspur/openbmc/poky/documentation/dev-manual/dev-manual-start.xml index 5625dfcd..59ffa49b 100644 --- a/Contrib-Inspur/openbmc/poky/documentation/dev-manual/dev-manual-start.xml +++ b/Contrib-Inspur/openbmc/poky/documentation/dev-manual/dev-manual-start.xml @@ -23,9 +23,8 @@ It might not be immediately clear how you can use the Yocto Project in a team development environment, or how to scale it for a large team of developers. - One of the strengths of the Yocto Project is that it is extremely - flexible. - Thus, you can adapt it to many different use cases and scenarios. + You can adapt the Yocto Project to many different use cases and + scenarios. However, this flexibility could cause difficulties if you are trying to create a working setup that scales across a large team. diff --git a/Contrib-Inspur/openbmc/poky/documentation/dev-manual/dev-manual.xml b/Contrib-Inspur/openbmc/poky/documentation/dev-manual/dev-manual.xml index 42deff10..04fa1e4f 100644 --- a/Contrib-Inspur/openbmc/poky/documentation/dev-manual/dev-manual.xml +++ b/Contrib-Inspur/openbmc/poky/documentation/dev-manual/dev-manual.xml @@ -117,9 +117,9 @@ Released with the Yocto Project 2.7 Release. - 2.8 + 3.0 &REL_MONTH_YEAR; - Released with the Yocto Project 2.8 Release. + Released with the Yocto Project 3.0 Release. diff --git a/Contrib-Inspur/openbmc/poky/documentation/kernel-dev/kernel-dev-common.xml b/Contrib-Inspur/openbmc/poky/documentation/kernel-dev/kernel-dev-common.xml index 7d8826fa..2ea5d3f3 100644 --- a/Contrib-Inspur/openbmc/poky/documentation/kernel-dev/kernel-dev-common.xml +++ b/Contrib-Inspur/openbmc/poky/documentation/kernel-dev/kernel-dev-common.xml @@ -549,9 +549,9 @@ FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:" - SRC_URI_append += "file://patch-file-one" - SRC_URI_append += "file://patch-file-two" - SRC_URI_append += "file://patch-file-three" + SRC_URI_append = " file://patch-file-one" + SRC_URI_append = " file://patch-file-two" + SRC_URI_append = " file://patch-file-three" The FILESEXTRAPATHS diff --git a/Contrib-Inspur/openbmc/poky/documentation/kernel-dev/kernel-dev.xml b/Contrib-Inspur/openbmc/poky/documentation/kernel-dev/kernel-dev.xml index c43330a3..4c5881b0 100644 --- a/Contrib-Inspur/openbmc/poky/documentation/kernel-dev/kernel-dev.xml +++ b/Contrib-Inspur/openbmc/poky/documentation/kernel-dev/kernel-dev.xml @@ -102,9 +102,9 @@ Released with the Yocto Project 2.7 Release. - 2.8 + 3.0 &REL_MONTH_YEAR; - Released with the Yocto Project 2.8 Release. + Released with the Yocto Project 3.0 Release. diff --git a/Contrib-Inspur/openbmc/poky/documentation/mega-manual/mega-manual.xml b/Contrib-Inspur/openbmc/poky/documentation/mega-manual/mega-manual.xml index b66b9334..cd9a3da8 100644 --- a/Contrib-Inspur/openbmc/poky/documentation/mega-manual/mega-manual.xml +++ b/Contrib-Inspur/openbmc/poky/documentation/mega-manual/mega-manual.xml @@ -88,9 +88,9 @@ Released with the Yocto Project 2.7 Release. - 2.8 + 3.0 &REL_MONTH_YEAR; - Released with the Yocto Project 2.8 Release. + Released with the Yocto Project 3.0 Release. @@ -332,22 +332,22 @@ + xmlns:xi="http://www.w3.org/2003/XInclude" href="../../bitbake/doc/bitbake-user-manual/bitbake-user-manual-intro.xml"/> + xmlns:xi="http://www.w3.org/2003/XInclude" href="../../bitbake/doc/bitbake-user-manual/bitbake-user-manual-execution.xml"/> + xmlns:xi="http://www.w3.org/2003/XInclude" href="../../bitbake/doc/bitbake-user-manual/bitbake-user-manual-metadata.xml"/> + xmlns:xi="http://www.w3.org/2003/XInclude" href="../../bitbake/doc/bitbake-user-manual/bitbake-user-manual-fetching.xml"/> + xmlns:xi="http://www.w3.org/2003/XInclude" href="../../bitbake/doc/bitbake-user-manual/bitbake-user-manual-ref-variables.xml"/> + xmlns:xi="http://www.w3.org/2003/XInclude" href="../../bitbake/doc/bitbake-user-manual/bitbake-user-manual-hello.xml"/> diff --git a/Contrib-Inspur/openbmc/poky/documentation/overview-manual/overview-manual.xml b/Contrib-Inspur/openbmc/poky/documentation/overview-manual/overview-manual.xml index e74ba8d5..c7716e46 100644 --- a/Contrib-Inspur/openbmc/poky/documentation/overview-manual/overview-manual.xml +++ b/Contrib-Inspur/openbmc/poky/documentation/overview-manual/overview-manual.xml @@ -36,15 +36,20 @@ May 2018 The initial document released with the Yocto Project 2.5 Release. + + 2.6 + November 2018 + Released with the Yocto Project 2.7 Release. + 2.7 May 2019 Released with the Yocto Project 2.7 Release. - 2.8 + 3.0 &REL_MONTH_YEAR; - Released with the Yocto Project 2.8 Release. + Released with the Yocto Project 3.0 Release. diff --git a/Contrib-Inspur/openbmc/poky/documentation/poky.ent b/Contrib-Inspur/openbmc/poky/documentation/poky.ent index b5f60096..7af47df7 100644 --- a/Contrib-Inspur/openbmc/poky/documentation/poky.ent +++ b/Contrib-Inspur/openbmc/poky/documentation/poky.ent @@ -1,14 +1,14 @@ - - + + - + - + - + @@ -60,7 +60,7 @@ + pylint3 xterm"> Released with the Yocto Project 2.7 Release. - 2.8 + 3.0 &REL_MONTH_YEAR; - Released with the Yocto Project 2.8 Release. + Released with the Yocto Project 3.0 Release. diff --git a/Contrib-Inspur/openbmc/poky/documentation/ref-manual/migration.xml b/Contrib-Inspur/openbmc/poky/documentation/ref-manual/migration.xml index ade8787b..8d50ab91 100644 --- a/Contrib-Inspur/openbmc/poky/documentation/ref-manual/migration.xml +++ b/Contrib-Inspur/openbmc/poky/documentation/ref-manual/migration.xml @@ -2103,10 +2103,9 @@ - Additionally, a - bluetooth - class has been added to make selection of the appropriate bluetooth - support within a recipe a little easier. + Additionally, a bluetooth class has been added + to make selection of the appropriate bluetooth support within a + recipe a little easier. If you wish to make use of this class in a recipe, add something such as the following: @@ -4740,7 +4739,7 @@ id=f4d4f99cfbc2396e49c1613a7d237b9e57f06f81'>commit message. This section provides information about packaging changes that have - ocurred: + occurred: python3 Changes: @@ -6597,6 +6596,505 @@ id=f4d4f99cfbc2396e49c1613a7d237b9e57f06f81'>commit message.
+ +
+ Moving to the Yocto Project 3.0 Release + + + This section provides migration information for moving to the + Yocto Project 3.0 Release from the prior release. + + +
+ Init System Selection + + + Changing the init system manager previously required setting a + number of different variables. + You can now change the manager by setting the + INIT_MANAGER variable and the corresponding + include files + (i.e. conf/distro/include/init-manager-*.conf). + Include files are provided for four values: "none", "sysvinit", + "systemd", and "mdev-busybox". + The default value, "none", for INIT_MANAGER + should allow your current settings to continue working. + However, it is advisable to explicitly set + INIT_MANAGER. + +
+ +
+ LSB Support Removed + + + Linux Standard Base (LSB) as a standard is not current, and + is not well suited for embedded applications. + Support can be continued in a separate layer if needed. + However, presently LSB support has been removed from the core. + + + + As a result of this change, the poky-lsb + derivative distribution configuration that was also used for + testing alternative configurations has been replaced with a + poky-altcfg distribution that has LSB + parts removed. + +
+ +
+ Removed Recipes + + + The following recipes have been removed. + + + core-image-lsb-dev: Part of removed + LSB support. + + + core-image-lsb: Part of removed + LSB support. + + + core-image-lsb-sdk: Part of removed + LSB support. + + + cve-check-tool: Functionally replaced + by the cve-update-db recipe and + cve-check class. + + + eglinfo: No longer maintained. + eglinfo from + mesa-demos is an adequate and + maintained alternative. + + + gcc-8.3: Version 8.3 removed. + Replaced by 9.2. + + + gnome-themes-standard: Only needed + by gtk+ 2.x, which has been removed. + + + gtk+: GTK+ 2 is obsolete and has been + replaced by gtk+3. + + + irda-utils: Has become obsolete. + IrDA support has been removed from the Linux kernel in + version 4.17 and later. + + + libnewt-python: + libnewt Python support merged into + main libnewt recipe. + + + libsdl: Replaced by newer + libsdl2. + + + libx11-diet: Became obsolete. + + + libxx86dga: Removed obsolete client + library. + + + libxx86misc: Removed. Library is + redundant. + + + linux-yocto: Version 5.0 removed, + which is now redundant (5.2 / 4.19 present). + + + lsbinitscripts: Part of removed LSB + support. + + + lsb: Part of removed LSB support. + + + lsbtest: Part of removed LSB support. + + + openssl10: Replaced by newer + openssl version 1.1. + + + packagegroup-core-lsb: Part of removed + LSB support. + + + python-nose: Removed the Python 2.x + version of the recipe. + + + python-numpy: Removed the Python 2.x + version of the recipe. + + + python-scons: Removed the Python 2.x + version of the recipe. + + + source-highlight: No longer needed. + + + stress: Replaced by + stress-ng. + + + vulkan: Split into + vulkan-loader, + vulkan-headers, and + vulkan-tools. + + + weston-conf: Functionality moved to + weston-init. + + + +
+ +
+ Packaging Changes + + + The following packaging changes have occurred. + + + The + Epiphany + browser has been dropped from + packagegroup-self-hosted as it has + not been needed inside + build-appliance-image for + quite some time and was causing resource problems. + + + libcap-ng Python support has been + moved to a separate libcap-ng-python + recipe to streamline the build process when the Python + bindings are not needed. + + + libdrm now packages the file + amdgpu.ids into a separate + libdrm-amdgpu package. + + + python3: The + runpy module is now in the + python3-core package as it is + required to support the common "python3 -m" command usage. + + + distcc now provides separate + distcc-client and + distcc-server packages as typically + one or the other are needed, rather than both. + + + python*-setuptools recipes now + separately package the pkg_resources + module in a python-pkg-resources / + python3-pkg-resources package as + the module is useful independent of the rest of the + setuptools package. + The main python-setuptools / + python3-setuptools package depends + on this new package so you should only need to update + dependencies unless you want to take advantage of the + increased granularity. + + + +
+ +
+ CVE Checking + + + cve-check-tool has been functionally replaced + by a new cve-update-db recipe and + functionality built into the cve-check class. + The result uses NVD JSON data feeds rather than the deprecated + XML feeds that cve-check-tool was using, + supports CVSSv3 scoring, and makes other improvements. + + + + Additionally, the CVE_CHECK_CVE_WHITELIST + variable has been replaced by + CVE_CHECK_WHITELIST. + +
+ +
+ Bitbake Changes + + + The following BitBake changes have occurred. + + + addtask statements now properly + validate dependent tasks. + Previously, an invalid task was silently ignored. + With this change, the invalid task generates a warning. + + + Other invalid addtask and + deltask usages now trigger these + warnings: "multiple target tasks arguments with + addtask / deltask", and "multiple before/after clauses". + + + The "multiconfig" prefix is now shortened to "mc". + "multiconfig" will continue to work, however it may be + removed in a future release. + + + The bitbake -g command no longer + generates a recipe-depends.dot file + as the contents (i.e. a reprocessed version of + task-depends.dot) were confusing. + + + The bb.build.FuncFailed exception, + previously raised by + bb.build.exec_func() when certain + other exceptions have occurred, has been removed. + The real underlying exceptions will be raised instead. + If you have calls to + bb.build.exec_func() in custom classes + or tinfoil-using scripts, any + references to bb.build.FuncFailed + should be cleaned up. + + + Additionally, the + bb.build.exec_func() no longer accepts + the "pythonexception" parameter. + The function now always raises exceptions. + Remove this argument in any calls to + bb.build.exec_func() in custom classes + or scripts. + + + The + BB_SETSCENE_VERIFY_FUNCTION2 + is no longer used. + In the unlikely event that you have any references to it, + they should be removed. + + + The RunQueueExecuteScenequeue and + RunQueueExecuteTasks events have been + removed since setscene tasks are now executed as part of + the normal runqueue. + Any event handling code in custom classes or scripts that + handles these two events need to be updated. + + + The arguments passed to functions used with + BB_HASHCHECK_FUNCTION + have changed. + If you are using your own custom hash check function, see + + for details. + + + Task specifications in BB_TASKDEPDATA + and class implementations used in signature generator + classes now use "<fn>:<task>" everywhere rather than + the "." delimiter that was being used in some places. + This change makes it consistent with all areas in the code. + Custom signature generator classes and code that reads + BB_TASKDEPDATA need to be updated to + use ':' as a separator rather than '.'. + + + +
+ +
+ Sanity Checks + + + The following sanity check changes occurred. + + + SRC_URI + is now checked for usage of two problematic items: + + + "${PN}" prefix/suffix use - Warnings always appear + if ${PN} is used. + You must fix the issue regardless of whether + multiconfig or anything else that would cause + prefixing/suffixing to happen. + + + Github archive tarballs - these are not guaranteed + to be stable. + Consequently, it is likely that the tarballs will + be refreshed and thus the SRC_URI checksums + will fail to apply. + It is recommended that you fetch either an official + release tarball or a specific revision from the + actual Git repository instead. + + + Either one of these items now trigger a warning by default. + If you wish to disable this check, remove + src-uri-bad from + WARN_QA. + + + The file-rdeps runtime dependency + check no longer expands + RDEPENDS + recursively as there is no mechanism to ensure they can be + fully computed, and thus races sometimes result in errors + either showing up or not. + Thus, you might now see errors for missing runtime + dependencies that were previously satisfied recursively. + Here is an example: package A contains a shell script + starting with #!/bin/bash but has no + dependency on bash. + However, package A depends on package B, which does depend + on bash. + You need to add the missing dependency or dependencies to + resolve the warning. + + + Setting DEPENDS_${PN} anywhere + (i.e. typically in a recipe) now triggers an error. + The error is triggered because + DEPENDS + is not a package-specific variable unlike RDEPENDS. + You should set DEPENDS instead. + + + systemd currently does not work well with the musl C + library because only upstream officially supports linking + the library with glibc. + Thus, a warning is shown when building systemd in + conjunction with musl. + + + +
+ +
+ Miscellaneous Changes + + + The following miscellaneous changes have occurred. + + + The gnome + class has been removed because it now does very little. + You should update recipes that previously inherited this + class to do the following: + + inherit gnomebase gtk-icon-cache gconf mime + + + + The + meta/recipes-kernel/linux/linux-dtb.inc + file has been removed. + This file was previously deprecated in favor of setting + KERNEL_DEVICETREE + in any kernel recipe and only produced a warning. + Remove any include or + require statements pointing to this + file. + + + TARGET_CFLAGS, + TARGET_CPPFLAGS, + TARGET_CXXFLAGS, + and + TARGET_LDFLAGS + are no longer exported to the external environment. + This change did not require any changes to core recipes, + which is a good indicator that no changes will be + required. + However, if for some reason the software being built by one + of your recipes is expecting these variables to be set, + then building the recipe will fail. + In such cases, you must either export the variable or + variables in the recipe or change the scripts so that + exporting is not necessary. + + + You must change the host distro identifier used in + NATIVELSBSTRING + to use all lowercase characters even if it does not contain + a version number. + This change is necessary only if you are not using + uninative and + SANITY_TESTED_DISTROS. + + + In the base-files recipe, writing the + hostname into /etc/hosts and + /etc/hostname is now done within the + main + do_install + function rather than in the + do_install_basefilesissue function. + The reason for the change is because + do_install_basefilesissue is more + easily overridden without having to duplicate the hostname + functionality. + If you have done the latter (e.g. in a + base-files bbappend), then you should + remove it from your customized + do_install_basefilesissue function. + + + The wic --expand command now uses + commas to separate "key:value" pairs rather than hyphens. + + The wic command-line help is not updated. + + You must update any scripts or commands where you use + wic --expand with multiple + "key:value" pairs. + + + UEFI image variable settings have been moved from various + places to a central + conf/image-uefi.conf. + This change should not influence any existing configuration + as the meta/conf/image-uefi.conf + in the core metadata sets defaults that can be overridden + in the same manner as before. + + + conf/distro/include/world-broken.inc + has been removed. + For cases where certain recipes need to be disabled when + using the musl C library, these recipes now have + COMPATIBLE_HOST_libc-musl set with a + comment that explains why. + + + +
+
+ - - While the Yocto Project Team attempts to ensure all Yocto Project releases are one hundred percent compatible with each officially diff --git a/Contrib-Inspur/openbmc/poky/documentation/ref-manual/ref-variables.xml b/Contrib-Inspur/openbmc/poky/documentation/ref-manual/ref-variables.xml index 12876e3d..02abc590 100644 --- a/Contrib-Inspur/openbmc/poky/documentation/ref-manual/ref-variables.xml +++ b/Contrib-Inspur/openbmc/poky/documentation/ref-manual/ref-variables.xml @@ -335,7 +335,7 @@ - The minimal command and arguments used to run the + Minimal command and arguments needed to run the assembler. @@ -1344,13 +1344,13 @@ BBMULTICONFIG - BBMULTICONFIG[doc] = "Specifies each separate configuration when you are building targets with multiple configurations." + BBMULTICONFIG[doc] = "Specifies each additional separate configuration when you are building targets with multiple configurations." - Specifies each separate configuration when you are - building targets with multiple configurations. + Specifies each additional separate configuration when you + are building targets with multiple configurations. Use this variable in your conf/local.conf configuration file. Specify a multiconfigname for @@ -1358,7 +1358,7 @@ For example, the following line specifies three configuration files: - BBMULTIFONFIG = "configA configB configC" + BBMULTICONFIG = "configA configB configC" Each configuration file you use must reside in the Build Directory @@ -2182,9 +2182,10 @@ The BUSYBOX_SPLIT_SUID variable - defaults to "1", which results in a single output + defaults to "1", which results in splitting the output executable file. - Set the variable to "0" to split the output file. + Set the variable to "0" to get a single output executable + file. @@ -6606,6 +6607,7 @@ by default: btrfs + container cpio cpio.gz cpio.lz4 @@ -6621,13 +6623,14 @@ ext3.gz ext4 ext4.gz - hdddirect + f2fs hddimg iso jffs2 jffs2.sum multiubi squashfs + squashfs-lz4 squashfs-lzo squashfs-xz tar @@ -7580,15 +7583,9 @@ However, providing just the .dtb file is preferred. - In order to use this variable, you must have the include - files in your kernel recipe: - - require recipes-kernel/linux/linux-dtb.inc - - or - - require recipes-kernel/linux/linux-yocto.inc - + In order to use this variable, the + kernel-devicetree + class must be inherited. @@ -11694,8 +11691,7 @@ or setuptools classes, specifies the major Python version being built. - For Python 2.x, PYTHON_PN would - be "python2". For Python 3.x, the variable would be + For Python 3.x, PYTHON_PN would be "python3". You do not have to set this variable as the OpenEmbedded build system automatically sets it for you. diff --git a/Contrib-Inspur/openbmc/poky/documentation/sdk-manual/sdk-extensible.xml b/Contrib-Inspur/openbmc/poky/documentation/sdk-manual/sdk-extensible.xml index bd527849..94d2a241 100644 --- a/Contrib-Inspur/openbmc/poky/documentation/sdk-manual/sdk-extensible.xml +++ b/Contrib-Inspur/openbmc/poky/documentation/sdk-manual/sdk-extensible.xml @@ -618,7 +618,23 @@ The result is that the command sets up both the source code and an append file within the workspace while the recipe remains in its - original location. + original location. + + Additionally, if you have any non-patch + local files (i.e. files referred to with + file:// entries in + SRC_URI statement excluding + *.patch/ or + *.diff), these files are + copied to an + oe-local-files folder + under the newly created source tree. + Copying the files here gives you a convenient + area from which you can modify the files. + Any changes or additions you make to those + files are incorporated into the build the next + time you build the software just as are other + changes you might have made to the source. Middle: @@ -633,10 +649,10 @@ The following command tells - devtool what recipe with + devtool the recipe with which to work and, in this case, identifies a local area for the extracted source files that - is outside of the default + exists outside of the default devtool workspace: $ devtool modify recipe srctree @@ -650,8 +666,12 @@ the recipe's SRC_URI statements to locate the source files and any associated patch files. - Once the files are located, the command by - default extracts them into + Non-patch files are copied to an + oe-local-files folder + under the newly created source tree. + + Once the files are located, the command + by default extracts them into srctree. Within workspace, @@ -685,9 +705,21 @@ - Once the command finishes, it creates only - an append file for the recipe in the - devtool workspace. + If an oe-local-files + subdirectory happens to exist and it contains + non-patch files, the files are used. + However, if the subdirectory does not exist and + you run the devtool finish + command, any non-patch files that might exist + next to the recipe are removed because it + appears to devtool that + you have deleted those files. + + Once the + devtool modify command + finishes, it creates only an append file for + the recipe in the devtool + workspace. The recipe and the source code remain in their original locations. @@ -778,7 +810,12 @@ original recipe in the original layer or the command creates a .bbappend file in a different layer as provided by - layer. + layer. + Any work you did in the + oe-local-files directory is + preserved in the original files next to the recipe + during the devtool finish + command. As a final process of the devtool finish command, the state @@ -898,7 +935,23 @@ files from other developers. The result is that the command sets up the source code, the new version of the recipe, and an append file - all within the workspace. + all within the workspace. + + Additionally, if you have any non-patch + local files (i.e. files referred to with + file:// entries in + SRC_URI statement excluding + *.patch/ or + *.diff), these files are + copied to an + oe-local-files folder + under the newly created source tree. + Copying the files here gives you a convenient + area from which you can modify the files. + Any changes or additions you make to those + files are incorporated into the build the next + time you build the software just as are other + changes you might have made to the source. Resolve any Conflicts created by the Upgrade: @@ -976,10 +1029,18 @@ Git repository, moves the new recipe to a more permanent layer, and then resets the recipe so that the recipe is built normally rather than from the - workspace. + workspace. + + Any work you did in the + oe-local-files directory is + preserved in the original files next to the recipe + during the devtool finish + command. + + If you specify a destination layer that is the same as the original source, then the old version of the - recipe and associated files will be removed prior to + recipe and associated files are removed prior to adding the new version. $ devtool finish recipe layer diff --git a/Contrib-Inspur/openbmc/poky/documentation/sdk-manual/sdk-manual.xml b/Contrib-Inspur/openbmc/poky/documentation/sdk-manual/sdk-manual.xml index 7edd2c46..8d5f6ec4 100644 --- a/Contrib-Inspur/openbmc/poky/documentation/sdk-manual/sdk-manual.xml +++ b/Contrib-Inspur/openbmc/poky/documentation/sdk-manual/sdk-manual.xml @@ -67,9 +67,9 @@ Released with the Yocto Project 2.7 Release. - 2.8 + 3.0 &REL_MONTH_YEAR; - Released with the Yocto Project 2.8 Release. + Released with the Yocto Project 3.0 Release. diff --git a/Contrib-Inspur/openbmc/poky/documentation/toaster-manual/toaster-manual.xml b/Contrib-Inspur/openbmc/poky/documentation/toaster-manual/toaster-manual.xml index b31659ff..d7b4bcee 100644 --- a/Contrib-Inspur/openbmc/poky/documentation/toaster-manual/toaster-manual.xml +++ b/Contrib-Inspur/openbmc/poky/documentation/toaster-manual/toaster-manual.xml @@ -77,9 +77,9 @@ Released with the Yocto Project 2.7 Release. - 2.8 + 3.0 &REL_MONTH_YEAR; - Released with the Yocto Project 2.8 Release. + Released with the Yocto Project 3.0 Release. diff --git a/Contrib-Inspur/openbmc/poky/documentation/tools/mega-manual.sed b/Contrib-Inspur/openbmc/poky/documentation/tools/mega-manual.sed index 9c4f4e2e..374d8e7b 100644 --- a/Contrib-Inspur/openbmc/poky/documentation/tools/mega-manual.sed +++ b/Contrib-Inspur/openbmc/poky/documentation/tools/mega-manual.sed @@ -1,36 +1,36 @@ # Processes bitbake-user-manual (-- style). # This style is for manual three-word folders, which currently is only the BitBake User Manual. # We used to have the "yocto-project-qs" and "poky-ref-manual" folders but no longer do. -# s@"ulink" href="http://www.yoctoproject.org/docs/2.8/[a-z]*-[a-z]*-[a-z]*/[a-z]*-[a-z]*-[a-z]*.html#@"link" href="#@g -s@"ulink" href="http://www.yoctoproject.org/docs/2.8/bitbake-user-manual/bitbake-user-manual.html#@"link" href="#@g +# s@"ulink" href="http://www.yoctoproject.org/docs/3.0/[a-z]*-[a-z]*-[a-z]*/[a-z]*-[a-z]*-[a-z]*.html#@"link" href="#@g +s@"ulink" href="http://www.yoctoproject.org/docs/3.0/bitbake-user-manual/bitbake-user-manual.html#@"link" href="#@g # Processes all other manuals (- style). # This style is for manual folders that use two word, which is the standard now (e.g. "ref-manual"). # Here is the one-liner: -# s@"ulink" href="http://www.yoctoproject.org/docs/2.8/[a-z]*-[a-z]*/[a-z]*-[a-z]*.html#@"link" href="#@g +# s@"ulink" href="http://www.yoctoproject.org/docs/3.0/[a-z]*-[a-z]*/[a-z]*-[a-z]*.html#@"link" href="#@g -s@"ulink" href="http://www.yoctoproject.org/docs/2.8/sdk-manual/sdk-manual.html#@"link" href="#@g -s@"ulink" href="http://www.yoctoproject.org/docs/2.8/bsp-guide/bsp-guide.html#@"link" href="#@g -s@"ulink" href="http://www.yoctoproject.org/docs/2.8/dev-manual/dev-manual.html#@"link" href="#@g -s@"ulink" href="http://www.yoctoproject.org/docs/2.8/overview-manual/overview-manual.html#@"link" href="#@g -s@"ulink" href="http://www.yoctoproject.org/docs/2.8/brief-yoctoprojectqs/brief-yoctoprojectqs.html#@"link" href="#@g -s@"ulink" href="http://www.yoctoproject.org/docs/2.8/kernel-dev/kernel-dev.html#@"link" href="#@g -s@"ulink" href="http://www.yoctoproject.org/docs/2.8/profile-manual/profile-manual.html#@"link" href="#@g -s@"ulink" href="http://www.yoctoproject.org/docs/2.8/ref-manual/ref-manual.html#@"link" href="#@g -s@"ulink" href="http://www.yoctoproject.org/docs/2.8/toaster-manual/toaster-manual.html#@"link" href="#@g +s@"ulink" href="http://www.yoctoproject.org/docs/3.0/sdk-manual/sdk-manual.html#@"link" href="#@g +s@"ulink" href="http://www.yoctoproject.org/docs/3.0/bsp-guide/bsp-guide.html#@"link" href="#@g +s@"ulink" href="http://www.yoctoproject.org/docs/3.0/dev-manual/dev-manual.html#@"link" href="#@g +s@"ulink" href="http://www.yoctoproject.org/docs/3.0/overview-manual/overview-manual.html#@"link" href="#@g +s@"ulink" href="http://www.yoctoproject.org/docs/3.0/brief-yoctoprojectqs/brief-yoctoprojectqs.html#@"link" href="#@g +s@"ulink" href="http://www.yoctoproject.org/docs/3.0/kernel-dev/kernel-dev.html#@"link" href="#@g +s@"ulink" href="http://www.yoctoproject.org/docs/3.0/profile-manual/profile-manual.html#@"link" href="#@g +s@"ulink" href="http://www.yoctoproject.org/docs/3.0/ref-manual/ref-manual.html#@"link" href="#@g +s@"ulink" href="http://www.yoctoproject.org/docs/3.0/toaster-manual/toaster-manual.html#@"link" href="#@g # Process cases where just an external manual is referenced without an id anchor -s@Yocto Project Quick Build@Yocto Project Quick Build@g -s@BitBake User Manual@BitBake User Manual@g -s@Yocto Project Development Tasks Manual@Yocto Project Development Tasks Manual@g -s@Yocto Project Overview and Concepts Manual@Yocto project Overview and Concepts Manual@g -s@Yocto Project Application Development and the Extensible Software Development Kit (eSDK)@Yocto Project Application Development and the Extensible Software Development Kit (eSDK)@g -s@Yocto Project Board Support Package (BSP) Developer's Guide@Yocto Project Board Support Package (BSP) Developer's Guide@g -s@Yocto Project Profiling and Tracing Manual@Yocto Project Profiling and Tracing Manual@g -s@Yocto Project Linux Kernel Development Manual@Yocto Project Linux Kernel Development Manual@g -s@Yocto Project Reference Manual@Yocto Project Reference Manual@g -s@Toaster User Manual@Toaster User Manual@g +s@Yocto Project Quick Build@Yocto Project Quick Build@g +s@BitBake User Manual@BitBake User Manual@g +s@Yocto Project Development Tasks Manual@Yocto Project Development Tasks Manual@g +s@Yocto Project Overview and Concepts Manual@Yocto project Overview and Concepts Manual@g +s@Yocto Project Application Development and the Extensible Software Development Kit (eSDK)@Yocto Project Application Development and the Extensible Software Development Kit (eSDK)@g +s@Yocto Project Board Support Package (BSP) Developer's Guide@Yocto Project Board Support Package (BSP) Developer's Guide@g +s@Yocto Project Profiling and Tracing Manual@Yocto Project Profiling and Tracing Manual@g +s@Yocto Project Linux Kernel Development Manual@Yocto Project Linux Kernel Development Manual@g +s@Yocto Project Reference Manual@Yocto Project Reference Manual@g +s@Toaster User Manual@Toaster User Manual@g # Process a single, rouge occurrence of a linked reference to the Mega-Manual. -s@Yocto Project Mega-Manual@Yocto Project Mega-Manual@g +s@Yocto Project Mega-Manual@Yocto Project Mega-Manual@g diff --git a/Contrib-Inspur/openbmc/poky/meta-poky/conf/conf-notes.txt b/Contrib-Inspur/openbmc/poky/meta-poky/conf/conf-notes.txt index f1a4f4da..67c177db 100644 --- a/Contrib-Inspur/openbmc/poky/meta-poky/conf/conf-notes.txt +++ b/Contrib-Inspur/openbmc/poky/meta-poky/conf/conf-notes.txt @@ -10,3 +10,8 @@ Common targets are: meta-ide-support You can also run generated qemu images with a command like 'runqemu qemux86' + +Other commonly useful commands are: + - 'devtool' and 'recipetool' handle common recipe tasks + - 'bitbake-layers' handles common layer tasks + - 'oe-pkgdata-util' handles common target package tasks diff --git a/Contrib-Inspur/openbmc/poky/meta-poky/conf/distro/include/poky-distro-alt-test-config.inc b/Contrib-Inspur/openbmc/poky/meta-poky/conf/distro/include/poky-distro-alt-test-config.inc new file mode 100644 index 00000000..9926c1bb --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta-poky/conf/distro/include/poky-distro-alt-test-config.inc @@ -0,0 +1,8 @@ +# Add an extra DISTRO_FEATURE +DISTRO_FEATURES_append = " pam" + +# Use the LTSI Kernel +PREFERRED_VERSION_linux-yocto ?= "4.19%" + +# Ensure the kernel nfs server is enabled +KERNEL_FEATURES_append_pn-linux-yocto = " features/nfsd/nfsd-enable.scc" diff --git a/Contrib-Inspur/openbmc/poky/meta-poky/conf/distro/poky-altcfg.conf b/Contrib-Inspur/openbmc/poky/meta-poky/conf/distro/poky-altcfg.conf new file mode 100644 index 00000000..177bf8d1 --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta-poky/conf/distro/poky-altcfg.conf @@ -0,0 +1,15 @@ +# +# An example of subclassing a distro, primarily used for testing alternate configuration +# combinations on the Yocto Project autobuilder +# +require conf/distro/poky.conf + +DISTRO = "poky-altcfg" +DISTROOVERRIDES = "poky:poky-altcfg" +#DISTROOVERRIDES = "poky:linuxstdbase" + +INIT_MANAGER ?= "systemd" +# systemd isn't suitable with musl +INIT_MANAGER_libc-musl ?= "sysvinit" + +require conf/distro/include/poky-distro-alt-test-config.inc diff --git a/Contrib-Inspur/openbmc/poky/meta-poky/conf/distro/poky-lsb.conf b/Contrib-Inspur/openbmc/poky/meta-poky/conf/distro/poky-lsb.conf deleted file mode 100644 index 5c7e2720..00000000 --- a/Contrib-Inspur/openbmc/poky/meta-poky/conf/distro/poky-lsb.conf +++ /dev/null @@ -1,14 +0,0 @@ - -require conf/distro/poky.conf - -DISTRO = "poky-lsb" -DISTROOVERRIDES = "poky:linuxstdbase" - -DISTRO_FEATURES_append = " pam largefile opengl" -PREFERRED_PROVIDER_virtual/libx11 = "libx11" - -# Ensure the kernel nfs server is enabled -KERNEL_FEATURES_append_pn-linux-yocto = " features/nfsd/nfsd-enable.scc" - -# Use the LTSI Kernel for LSB Testing -PREFERRED_VERSION_linux-yocto_linuxstdbase ?= "4.19%" diff --git a/Contrib-Inspur/openbmc/poky/meta-poky/conf/distro/poky-tiny.conf b/Contrib-Inspur/openbmc/poky/meta-poky/conf/distro/poky-tiny.conf index 1f8b6e8f..c6d4b88f 100644 --- a/Contrib-Inspur/openbmc/poky/meta-poky/conf/distro/poky-tiny.conf +++ b/Contrib-Inspur/openbmc/poky/meta-poky/conf/distro/poky-tiny.conf @@ -82,12 +82,7 @@ DISTRO_FEATURES_class-native = "${DISTRO_FEATURES_DEFAULT} ${POKY_DEFAULT_DISTRO DISTRO_FEATURES_class-nativesdk = "${DISTRO_FEATURES_DEFAULT} ${POKY_DEFAULT_DISTRO_FEATURES}" # enable mdev/busybox for init -VIRTUAL-RUNTIME_dev_manager = "busybox-mdev" -VIRTUAL-RUNTIME_login_manager = "busybox" -VIRTUAL-RUNTIME_init_manager = "busybox" -VIRTUAL-RUNTIME_initscripts = "initscripts" -VIRTUAL-RUNTIME_keymaps = "keymaps" -DISTRO_FEATURES_BACKFILL_CONSIDERED += "sysvinit" +INIT_MANAGER ?= "mdev-busybox" # FIXME: Consider adding "modules" to MACHINE_FEATURES and using that in # packagegroup-core-base to select modutils-initscripts or not. Similar with "net" and @@ -117,9 +112,6 @@ PNBLACKLIST[build-appliance-image] = "not buildable with poky-tiny" PNBLACKLIST[core-image-base] = "not buildable with poky-tiny" PNBLACKLIST[core-image-clutter] = "not buildable with poky-tiny" PNBLACKLIST[core-image-full-cmdline] = "not buildable with poky-tiny" -PNBLACKLIST[core-image-lsb] = "not buildable with poky-tiny" -PNBLACKLIST[core-image-lsb-dev] = "not buildable with poky-tiny" -PNBLACKLIST[core-image-lsb-sdk] = "not buildable with poky-tiny" PNBLACKLIST[core-image-rt] = "not buildable with poky-tiny" PNBLACKLIST[core-image-rt-sdk] = "not buildable with poky-tiny" PNBLACKLIST[core-image-sato] = "not buildable with poky-tiny" diff --git a/Contrib-Inspur/openbmc/poky/meta-poky/conf/distro/poky.conf b/Contrib-Inspur/openbmc/poky/meta-poky/conf/distro/poky.conf index 78621e6d..61941429 100644 --- a/Contrib-Inspur/openbmc/poky/meta-poky/conf/distro/poky.conf +++ b/Contrib-Inspur/openbmc/poky/meta-poky/conf/distro/poky.conf @@ -1,7 +1,7 @@ DISTRO = "poky" DISTRO_NAME = "Poky (Yocto Project Reference Distro)" -DISTRO_VERSION = "2.7+snapshot-${DATE}" -DISTRO_CODENAME = "master" +DISTRO_VERSION = "3.0" +DISTRO_CODENAME = "zeus" SDK_VENDOR = "-pokysdk" SDK_VERSION = "${@d.getVar('DISTRO_VERSION').replace('snapshot-${DATE}', 'snapshot')}" @@ -21,7 +21,7 @@ POKY_DEFAULT_EXTRA_RRECOMMENDS = "kernel-module-af-packet" DISTRO_FEATURES ?= "${DISTRO_FEATURES_DEFAULT} ${POKY_DEFAULT_DISTRO_FEATURES}" -PREFERRED_VERSION_linux-yocto ?= "5.0%" +PREFERRED_VERSION_linux-yocto ?= "5.2%" SDK_NAME = "${DISTRO}-${TCLIBC}-${SDKMACHINE}-${IMAGE_BASENAME}-${TUNE_PKGARCH}-${MACHINE}" SDKPATH = "/opt/${DISTRO}/${SDK_VERSION}" @@ -50,16 +50,19 @@ p4://.*/.* http://downloads.yoctoproject.org/mirror/sources/ \n \ svn://.*/.* http://downloads.yoctoproject.org/mirror/sources/ \n" SANITY_TESTED_DISTROS ?= " \ - poky-2.6 \n \ poky-2.7 \n \ + poky-3.0 \n \ ubuntu-16.04 \n \ ubuntu-18.04 \n \ + ubuntu-19.04 \n \ fedora-28 \n \ fedora-29 \n \ + fedora-30 \n \ centos-7 \n \ debian-8 \n \ debian-9 \n \ - opensuse-42.3 \n \ + debian-10 \n \ + opensuseleap-15.1 \n \ " # # OELAYOUT_ABI allows us to notify users when the format of TMPDIR changes in diff --git a/Contrib-Inspur/openbmc/poky/meta-poky/conf/layer.conf b/Contrib-Inspur/openbmc/poky/meta-poky/conf/layer.conf index 0d74f4ea..a4b3d1e9 100644 --- a/Contrib-Inspur/openbmc/poky/meta-poky/conf/layer.conf +++ b/Contrib-Inspur/openbmc/poky/meta-poky/conf/layer.conf @@ -9,7 +9,7 @@ BBFILE_COLLECTIONS += "yocto" BBFILE_PATTERN_yocto = "^${LAYERDIR}/" BBFILE_PRIORITY_yocto = "5" -LAYERSERIES_COMPAT_yocto = "warrior" +LAYERSERIES_COMPAT_yocto = "zeus" # This should only be incremented on significant changes that will # cause compatibility issues with other layers diff --git a/Contrib-Inspur/openbmc/poky/meta-poky/conf/local.conf.sample b/Contrib-Inspur/openbmc/poky/meta-poky/conf/local.conf.sample index 59b4d956..2e0bb41e 100644 --- a/Contrib-Inspur/openbmc/poky/meta-poky/conf/local.conf.sample +++ b/Contrib-Inspur/openbmc/poky/meta-poky/conf/local.conf.sample @@ -237,14 +237,31 @@ BB_DISKMON_DIRS ??= "\ # # Qemu configuration # -# By default qemu will build with a builtin VNC server where graphical output can be -# seen. The two lines below enable the SDL backend too. By default libsdl2-native will -# be built, if you want to use your host's libSDL instead of the minimal libsdl built -# by libsdl2-native then uncomment the ASSUME_PROVIDED line below. +# By default native qemu will build with a builtin VNC server where graphical output can be +# seen. The line below enables the SDL UI frontend too. PACKAGECONFIG_append_pn-qemu-system-native = " sdl" -PACKAGECONFIG_append_pn-nativesdk-qemu = " sdl" +# By default libsdl2-native will be built, if you want to use your host's libSDL instead of +# the minimal libsdl built by libsdl2-native then uncomment the ASSUME_PROVIDED line below. #ASSUME_PROVIDED += "libsdl2-native" +# You can also enable the Gtk UI frontend, which takes somewhat longer to build, but adds +# a handy set of menus for controlling the emulator. +#PACKAGECONFIG_append_pn-qemu-system-native = " gtk+" + +# +# Hash Equivalence +# +# Enable support for automatically running a local hash equivalence server and +# instruct bitbake to use a hash equivalence aware signature generator. Hash +# equivalence improves reuse of sstate by detecting when a given sstate +# artifact can be reused as equivalent, even if the current task hash doesn't +# match the one that generated the artifact. +# +# A shared hash equivalent server can be set with ":" format +# +#BB_HASHSERVE = "auto" +#BB_SIGNATURE_HANDLER = "OEEquivHash" + # CONF_VERSION is increased each time build/conf/ changes incompatibly and is used to # track the version of this file when it was generated. This can safely be ignored if # this doesn't mean anything to you. diff --git a/Contrib-Inspur/openbmc/poky/meta-poky/conf/local.conf.sample.extended b/Contrib-Inspur/openbmc/poky/meta-poky/conf/local.conf.sample.extended index 77e8be26..dc92a16f 100644 --- a/Contrib-Inspur/openbmc/poky/meta-poky/conf/local.conf.sample.extended +++ b/Contrib-Inspur/openbmc/poky/meta-poky/conf/local.conf.sample.extended @@ -270,7 +270,7 @@ DISTRO_FEATURES_remove = "x11" # # By including the security_flags include file you enable flags # to the compiler and linker that cause them to generate more secure -# code, this is enabled by default in the poky-lsb distro. +# code. # This does affect compile speed slightly. # # Use the following line to enable the security compiler and linker flags to your build diff --git a/Contrib-Inspur/openbmc/poky/meta-selftest/conf/layer.conf b/Contrib-Inspur/openbmc/poky/meta-selftest/conf/layer.conf index 080350a5..08181a88 100644 --- a/Contrib-Inspur/openbmc/poky/meta-selftest/conf/layer.conf +++ b/Contrib-Inspur/openbmc/poky/meta-selftest/conf/layer.conf @@ -9,4 +9,4 @@ BBFILE_COLLECTIONS += "selftest" BBFILE_PATTERN_selftest = "^${LAYERDIR}/" BBFILE_PRIORITY_selftest = "5" -LAYERSERIES_COMPAT_selftest = "warrior" +LAYERSERIES_COMPAT_selftest = "zeus" diff --git a/Contrib-Inspur/openbmc/poky/meta-selftest/lib/oeqa/runtime/cases/virgl.py b/Contrib-Inspur/openbmc/poky/meta-selftest/lib/oeqa/runtime/cases/virgl.py index d301a19f..c0abfd1b 100644 --- a/Contrib-Inspur/openbmc/poky/meta-selftest/lib/oeqa/runtime/cases/virgl.py +++ b/Contrib-Inspur/openbmc/poky/meta-selftest/lib/oeqa/runtime/cases/virgl.py @@ -13,11 +13,6 @@ def test_kernel_driver(self): @OETestDepends(['virgl.VirglTest.test_kernel_driver']) def test_kmscube(self): - - distro = oe.lsb.distro_identifier() - if distro and distro == 'centos-7': - self.skipTest('kmscube is not working when centos 7 is the host OS') - status, output = self.target.run('kmscube', timeout=30) self.assertEqual(status, 0, "kmscube exited with non-zero status %d and output:\n%s" %(status, output)) self.assertIn('renderer: "virgl"', output, "kmscube does not seem to use virgl:\n%s" %(output)) diff --git a/Contrib-Inspur/openbmc/poky/meta-selftest/recipes-test/aspell/aspell_0.0.0.1.bb b/Contrib-Inspur/openbmc/poky/meta-selftest/recipes-test/aspell/aspell_0.0.0.1.bb index 922518bc..9f905a51 100644 --- a/Contrib-Inspur/openbmc/poky/meta-selftest/recipes-test/aspell/aspell_0.0.0.1.bb +++ b/Contrib-Inspur/openbmc/poky/meta-selftest/recipes-test/aspell/aspell_0.0.0.1.bb @@ -8,8 +8,6 @@ SECTION = "console/utils" LICENSE = "LGPLv2 | LGPLv2.1" LIC_FILES_CHKSUM = "file://COPYING;md5=7fbc338309ac38fefcd64b04bb903e34" -PR = "r1" - SRC_URI = "${GNU_MIRROR}/aspell/aspell-${PV}.tar.gz" SRC_URI[md5sum] = "e66a9c9af6a60dc46134fdacf6ce97d7" SRC_URI[sha256sum] = "f52583a83a63633701c5f71db3dc40aab87b7f76b29723aeb27941eff42df6e1" diff --git a/Contrib-Inspur/openbmc/poky/meta-selftest/recipes-test/aspell/aspell_0.60.6.1.bbappend b/Contrib-Inspur/openbmc/poky/meta-selftest/recipes-test/aspell/aspell_0.60.8.bbappend similarity index 100% rename from Contrib-Inspur/openbmc/poky/meta-selftest/recipes-test/aspell/aspell_0.60.6.1.bbappend rename to Contrib-Inspur/openbmc/poky/meta-selftest/recipes-test/aspell/aspell_0.60.8.bbappend diff --git a/Contrib-Inspur/openbmc/poky/meta-selftest/recipes-test/devtool/devtool-upgrade-test1-1.5.3/backported.patch b/Contrib-Inspur/openbmc/poky/meta-selftest/recipes-test/devtool/devtool-upgrade-test1-1.5.3/backported.patch new file mode 100644 index 00000000..c4f3f126 --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta-selftest/recipes-test/devtool/devtool-upgrade-test1-1.5.3/backported.patch @@ -0,0 +1,37 @@ +commit ced2ec32b657a7f52604b2e16e5d5881041c517a +Author: OpenEmbedded +Date: Mon Nov 18 18:43:15 2019 +0100 + + Backport of the NEWS file from version 1.6.0 + +diff --git a/doc/NEWS b/doc/NEWS +index 69793fc..fd49b1c 100644 +--- a/doc/NEWS ++++ b/doc/NEWS +@@ -1,3 +1,26 @@ ++1.6.0 - 15 March 2015 ++ - fix lstat64 support when unavailable - separate patches supplied by ++ Ganael Laplanche and Peter Korsgaard ++ - (#1506) new option "-D" / "--delay-start" to only show bar after N ++ seconds (Damon Harper) ++ - new option "--fineta" / "-I" to show ETA as time of day rather than time ++ remaining - patch supplied by Erkki Seppälä (r147) ++ - (#1509) change ETA (--eta / -e) so that days are given if the hours ++ remaining are 24 or more (Jacek Wielemborek) ++ - (#1499) repeat read and write attempts on partial buffer fill/empty to ++ work around post-signal transfer rate drop reported by Ralf Ramsauer ++ - (#1507) do not try to calculate total size in line mode, due to bug ++ reported by Jacek Wielemborek and Michiel Van Herwegen ++ - cleanup: removed defunct RATS comments and unnecessary copyright notices ++ - clean up displayed lines when using --watchfd PID, when PID exits ++ - output errors on a new line to avoid overwriting transfer bar ++ ++1.5.7 - 26 August 2014 ++ - show KiB instead of incorrect kiB (Debian bug #706175) ++ - (#1284) do not gzip man page, for non-Linux OSes (Bob Friesenhahn) ++ - work around "awk" bug in tests/016-numeric-timer in decimal "," locales ++ - fix "make rpm" and "make srpm", extend "make release" to sign releases ++ + 1.5.3 - 4 May 2014 + - remove SPLICE_F_NONBLOCK to fix problem with slow splice() (Jan Seda) + diff --git a/Contrib-Inspur/openbmc/poky/meta-selftest/recipes-test/devtool/devtool-upgrade-test1_1.5.3.bb b/Contrib-Inspur/openbmc/poky/meta-selftest/recipes-test/devtool/devtool-upgrade-test1_1.5.3.bb index 333ecac7..fee5bee7 100644 --- a/Contrib-Inspur/openbmc/poky/meta-selftest/recipes-test/devtool/devtool-upgrade-test1_1.5.3.bb +++ b/Contrib-Inspur/openbmc/poky/meta-selftest/recipes-test/devtool/devtool-upgrade-test1_1.5.3.bb @@ -3,7 +3,9 @@ LICENSE = "Artistic-2.0" LIC_FILES_CHKSUM = "file://doc/COPYING;md5=9c50db2589ee3ef10a9b7b2e50ce1d02" SRC_URI = "http://www.ivarch.com/programs/sources/pv-${PV}.tar.gz \ - file://0001-Add-a-note-line-to-the-quick-reference.patch" + file://0001-Add-a-note-line-to-the-quick-reference.patch \ + file://backported.patch \ + " UPSTREAM_CHECK_URI = "http://www.ivarch.com/programs/pv.shtml" RECIPE_NO_UPDATE_REASON = "This recipe is used to test devtool upgrade feature" diff --git a/Contrib-Inspur/openbmc/poky/meta-selftest/recipes-test/devtool/devtool-upgrade-test1_1.5.3.bb.upgraded b/Contrib-Inspur/openbmc/poky/meta-selftest/recipes-test/devtool/devtool-upgrade-test1_1.5.3.bb.upgraded index 9d94f671..66e45c7e 100644 --- a/Contrib-Inspur/openbmc/poky/meta-selftest/recipes-test/devtool/devtool-upgrade-test1_1.5.3.bb.upgraded +++ b/Contrib-Inspur/openbmc/poky/meta-selftest/recipes-test/devtool/devtool-upgrade-test1_1.5.3.bb.upgraded @@ -3,7 +3,9 @@ LICENSE = "Artistic-2.0" LIC_FILES_CHKSUM = "file://doc/COPYING;md5=9c50db2589ee3ef10a9b7b2e50ce1d02" SRC_URI = "http://www.ivarch.com/programs/sources/pv-${PV}.tar.gz \ - file://0001-Add-a-note-line-to-the-quick-reference.patch" + file://0001-Add-a-note-line-to-the-quick-reference.patch \ + file://backported.patch \ + " UPSTREAM_CHECK_URI = "http://www.ivarch.com/programs/pv.shtml" RECIPE_NO_UPDATE_REASON = "This recipe is used to test devtool upgrade feature" diff --git a/Contrib-Inspur/openbmc/poky/meta-selftest/recipes-test/fortran/files/hello.f95 b/Contrib-Inspur/openbmc/poky/meta-selftest/recipes-test/fortran/files/hello.f95 new file mode 100644 index 00000000..a0745fc6 --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta-selftest/recipes-test/fortran/files/hello.f95 @@ -0,0 +1,5 @@ +program helloworld + + print * , "Hello World!" + +end program helloworld diff --git a/Contrib-Inspur/openbmc/poky/meta-selftest/recipes-test/fortran/fortran-helloworld.bb b/Contrib-Inspur/openbmc/poky/meta-selftest/recipes-test/fortran/fortran-helloworld.bb new file mode 100644 index 00000000..3a464044 --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta-selftest/recipes-test/fortran/fortran-helloworld.bb @@ -0,0 +1,24 @@ +SUMMARY = "Fortran Hello World" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420" + +DEPENDS = "libgfortran" + +SRC_URI = "file://hello.f95" + +# These set flags that Fortran doesn't support +SECURITY_CFLAGS = "" +SECURITY_LDFLAGS = "" + +do_compile() { + ${FC} ${LDFLAGS} ${WORKDIR}/hello.f95 -o ${B}/fortran-hello +} + +do_install() { + install -D ${B}/fortran-hello ${D}${bindir}/fortran-hello +} + +python () { + if not d.getVar("FORTRAN"): + raise bb.parse.SkipRecipe("Fortran isn't enabled") +} diff --git a/Contrib-Inspur/openbmc/poky/meta-selftest/recipes-test/multiconfig/multiconfig-test-parse.bb b/Contrib-Inspur/openbmc/poky/meta-selftest/recipes-test/multiconfig/multiconfig-test-parse.bb new file mode 100644 index 00000000..62366974 --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta-selftest/recipes-test/multiconfig/multiconfig-test-parse.bb @@ -0,0 +1,11 @@ +SUMMARY = "Test Multiconfig Parsing" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420" + +INHIBIT_DEFAULT_DEPS = "1" + +do_showvar() { + bbplain "MCTESTVAR=${MCTESTVAR}" +} +addtask do_showvar + diff --git a/Contrib-Inspur/openbmc/poky/meta-selftest/recipes-test/recipeutils/recipeutils-test_1.2.bb b/Contrib-Inspur/openbmc/poky/meta-selftest/recipes-test/recipeutils/recipeutils-test_1.2.bb index 7c20d9a6..0cd0494d 100644 --- a/Contrib-Inspur/openbmc/poky/meta-selftest/recipes-test/recipeutils/recipeutils-test_1.2.bb +++ b/Contrib-Inspur/openbmc/poky/meta-selftest/recipes-test/recipeutils/recipeutils-test_1.2.bb @@ -4,7 +4,7 @@ require recipeutils-test.inc LICENSE = "Proprietary" LIC_FILES_CHKSUM = "file://${WORKDIR}/somefile;md5=d41d8cd98f00b204e9800998ecf8427e" -DEPENDS += "virtual/libx11" +DEPENDS += "zlib" BBCLASSEXTEND = "native nativesdk" diff --git a/Contrib-Inspur/openbmc/poky/meta-selftest/wic/test_biosplusefi_plugin.wks b/Contrib-Inspur/openbmc/poky/meta-selftest/wic/test_biosplusefi_plugin.wks new file mode 100644 index 00000000..5a56c845 --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta-selftest/wic/test_biosplusefi_plugin.wks @@ -0,0 +1,6 @@ +# short-description: This file is used in oe-selftest wic module to test biosplusefi plugin + +part /boot --source bootimg-biosplusefi --sourceparams="loader=grub-efi" --active --align 1024 --use-uuid +part / --source rootfs --fstype=ext4 --align 1024 --use-uuid + +bootloader --timeout=0 --append="console=ttyS0,115200n8" diff --git a/Contrib-Inspur/openbmc/poky/meta-skeleton/conf/layer.conf b/Contrib-Inspur/openbmc/poky/meta-skeleton/conf/layer.conf index 7d4ffb46..7d7381a7 100644 --- a/Contrib-Inspur/openbmc/poky/meta-skeleton/conf/layer.conf +++ b/Contrib-Inspur/openbmc/poky/meta-skeleton/conf/layer.conf @@ -14,4 +14,4 @@ LAYERVERSION_skeleton = "1" LAYERDEPENDS_skeleton = "core" -LAYERSERIES_COMPAT_skeleton = "warrior" +LAYERSERIES_COMPAT_skeleton = "zeus" diff --git a/Contrib-Inspur/openbmc/poky/meta-yocto-bsp/conf/layer.conf b/Contrib-Inspur/openbmc/poky/meta-yocto-bsp/conf/layer.conf index 3c8f775b..c94bb003 100644 --- a/Contrib-Inspur/openbmc/poky/meta-yocto-bsp/conf/layer.conf +++ b/Contrib-Inspur/openbmc/poky/meta-yocto-bsp/conf/layer.conf @@ -9,4 +9,4 @@ BBFILE_COLLECTIONS += "yoctobsp" BBFILE_PATTERN_yoctobsp = "^${LAYERDIR}/" BBFILE_PRIORITY_yoctobsp = "5" LAYERVERSION_yoctobsp = "4" -LAYERSERIES_COMPAT_yoctobsp = "warrior" +LAYERSERIES_COMPAT_yoctobsp = "zeus" diff --git a/Contrib-Inspur/openbmc/poky/meta-yocto-bsp/conf/machine/beaglebone-yocto.conf b/Contrib-Inspur/openbmc/poky/meta-yocto-bsp/conf/machine/beaglebone-yocto.conf index 35814cd8..08dd3a50 100644 --- a/Contrib-Inspur/openbmc/poky/meta-yocto-bsp/conf/machine/beaglebone-yocto.conf +++ b/Contrib-Inspur/openbmc/poky/meta-yocto-bsp/conf/machine/beaglebone-yocto.conf @@ -20,11 +20,11 @@ WKS_FILE ?= "beaglebone-yocto.wks" IMAGE_INSTALL_append = " kernel-devicetree kernel-image-zimage" do_image_wic[depends] += "mtools-native:do_populate_sysroot dosfstools-native:do_populate_sysroot u-boot:do_deploy" -SERIAL_CONSOLES ?= "115200;ttyS0 115200;ttyO0" +SERIAL_CONSOLES ?= "115200;ttyS0 115200;ttyO0 115200;ttyAMA0" SERIAL_CONSOLES_CHECK = "${SERIAL_CONSOLES}" PREFERRED_PROVIDER_virtual/kernel ?= "linux-yocto" -PREFERRED_VERSION_linux-yocto ?= "5.0%" +PREFERRED_VERSION_linux-yocto ?= "5.2%" KERNEL_IMAGETYPE = "zImage" KERNEL_DEVICETREE = "am335x-bone.dtb am335x-boneblack.dtb am335x-bonegreen.dtb" @@ -39,3 +39,20 @@ UBOOT_LOADADDRESS = "0x80008000" MACHINE_FEATURES = "usbgadget usbhost vfat alsa" IMAGE_BOOT_FILES ?= "u-boot.${UBOOT_SUFFIX} MLO zImage am335x-bone.dtb am335x-boneblack.dtb am335x-bonegreen.dtb" + +# support runqemu +EXTRA_IMAGEDEPENDS += "qemu-native qemu-helper-native" +IMAGE_CLASSES += "qemuboot" +QB_DEFAULT_FSTYPE = "wic" +QB_FSINFO = "wic:no-kernel-in-fs" +QB_KERNEL_ROOT = "/dev/vda2" +QB_SYSTEM_NAME = "qemu-system-arm" +QB_MACHINE = "-machine virt" +QB_CPU = "-cpu cortex-a15" +QB_KERNEL_CMDLINE_APPEND = "console=ttyAMA0 systemd.mask=systemd-networkd" +QB_OPT_APPEND = "-device virtio-rng-device" +QB_TAP_OPT = "-netdev tap,id=net0,ifname=@TAP@,script=no,downscript=no" +QB_NETWORK_DEVICE = "-device virtio-net-device,netdev=net0,mac=@MAC@" +QB_ROOTFS_OPT = "-drive id=disk0,file=@ROOTFS@,if=none,format=raw -device virtio-blk-device,drive=disk0" +QB_SERIAL_OPT = "" +QB_TCPSERIAL_OPT = "-device virtio-serial-device -chardev socket,id=virtcon,port=@PORT@,host=127.0.0.1 -device virtconsole,chardev=virtcon" diff --git a/Contrib-Inspur/openbmc/poky/meta-yocto-bsp/conf/machine/edgerouter.conf b/Contrib-Inspur/openbmc/poky/meta-yocto-bsp/conf/machine/edgerouter.conf index 88592dbc..6331368f 100644 --- a/Contrib-Inspur/openbmc/poky/meta-yocto-bsp/conf/machine/edgerouter.conf +++ b/Contrib-Inspur/openbmc/poky/meta-yocto-bsp/conf/machine/edgerouter.conf @@ -11,7 +11,7 @@ KERNEL_ALT_IMAGETYPE = "vmlinux.bin" KERNEL_IMAGE_STRIP_EXTRA_SECTIONS = ".comment" PREFERRED_PROVIDER_virtual/kernel ?= "linux-yocto" -PREFERRED_VERSION_linux-yocto ?= "5.0%" +PREFERRED_VERSION_linux-yocto ?= "5.2%" SERIAL_CONSOLES = "115200;ttyS0" USE_VT ?= "0" diff --git a/Contrib-Inspur/openbmc/poky/meta-yocto-bsp/conf/machine/genericx86-64.conf b/Contrib-Inspur/openbmc/poky/meta-yocto-bsp/conf/machine/genericx86-64.conf index c489462d..81ec24e9 100644 --- a/Contrib-Inspur/openbmc/poky/meta-yocto-bsp/conf/machine/genericx86-64.conf +++ b/Contrib-Inspur/openbmc/poky/meta-yocto-bsp/conf/machine/genericx86-64.conf @@ -7,3 +7,5 @@ require conf/machine/include/tune-core2.inc require conf/machine/include/genericx86-common.inc SERIAL_CONSOLES_CHECK = "ttyS0" +#For runqemu +QB_SYSTEM_NAME = "qemu-system-x86_64" diff --git a/Contrib-Inspur/openbmc/poky/meta-yocto-bsp/conf/machine/genericx86.conf b/Contrib-Inspur/openbmc/poky/meta-yocto-bsp/conf/machine/genericx86.conf index 9929d278..1387bde8 100644 --- a/Contrib-Inspur/openbmc/poky/meta-yocto-bsp/conf/machine/genericx86.conf +++ b/Contrib-Inspur/openbmc/poky/meta-yocto-bsp/conf/machine/genericx86.conf @@ -7,3 +7,5 @@ require conf/machine/include/tune-core2.inc require conf/machine/include/genericx86-common.inc MACHINE_ESSENTIAL_EXTRA_RRECOMMENDS += "gma500-gfx-check" +#For runqemu +QB_SYSTEM_NAME = "qemu-system-i386" diff --git a/Contrib-Inspur/openbmc/poky/meta-yocto-bsp/conf/machine/mpc8315e-rdb.conf b/Contrib-Inspur/openbmc/poky/meta-yocto-bsp/conf/machine/mpc8315e-rdb.conf index e2dce567..53827962 100644 --- a/Contrib-Inspur/openbmc/poky/meta-yocto-bsp/conf/machine/mpc8315e-rdb.conf +++ b/Contrib-Inspur/openbmc/poky/meta-yocto-bsp/conf/machine/mpc8315e-rdb.conf @@ -15,7 +15,7 @@ SERIAL_CONSOLES = "115200;ttyS0" MACHINE_FEATURES = "keyboard pci ext2 ext3 serial" -PREFERRED_VERSION_linux-yocto ?= "5.0%" +PREFERRED_VERSION_linux-yocto ?= "5.2%" PREFERRED_PROVIDER_virtual/kernel ?= "linux-yocto" PREFERRED_PROVIDER_virtual/xserver ?= "xserver-xorg" diff --git a/Contrib-Inspur/openbmc/poky/meta-yocto-bsp/recipes-kernel/linux/linux-yocto_5.0.bbappend b/Contrib-Inspur/openbmc/poky/meta-yocto-bsp/recipes-kernel/linux/linux-yocto_5.0.bbappend deleted file mode 100644 index d7cf1216..00000000 --- a/Contrib-Inspur/openbmc/poky/meta-yocto-bsp/recipes-kernel/linux/linux-yocto_5.0.bbappend +++ /dev/null @@ -1,27 +0,0 @@ -KBRANCH_genericx86 = "v5.0/standard/base" -KBRANCH_genericx86-64 = "v5.0/standard/base" -KBRANCH_edgerouter = "v5.0/standard/edgerouter" -KBRANCH_beaglebone-yocto = "v5.0/standard/beaglebone" -KBRANCH_mpc8315e-rdb = "v5.0/standard/fsl-mpc8315e-rdb" - -KMACHINE_genericx86 ?= "common-pc" -KMACHINE_genericx86-64 ?= "common-pc-64" -KMACHINE_beaglebone-yocto ?= "beaglebone" - -SRCREV_machine_genericx86 ?= "f990fd0ce123aa6035042efad09b2ddc3e7d48f4" -SRCREV_machine_genericx86-64 ?= "f990fd0ce123aa6035042efad09b2ddc3e7d48f4" -SRCREV_machine_edgerouter ?= "f990fd0ce123aa6035042efad09b2ddc3e7d48f4" -SRCREV_machine_beaglebone-yocto ?= "f990fd0ce123aa6035042efad09b2ddc3e7d48f4" -SRCREV_machine_mpc8315e-rdb ?= "670ce7e9db627d0c2067cfdb571ddc1f117818d8" - -COMPATIBLE_MACHINE_genericx86 = "genericx86" -COMPATIBLE_MACHINE_genericx86-64 = "genericx86-64" -COMPATIBLE_MACHINE_edgerouter = "edgerouter" -COMPATIBLE_MACHINE_beaglebone-yocto = "beaglebone-yocto" -COMPATIBLE_MACHINE_mpc8315e-rdb = "mpc8315e-rdb" - -LINUX_VERSION_genericx86 = "5.0.13" -LINUX_VERSION_genericx86-64 = "5.0.13" -LINUX_VERSION_edgerouter = "5.0.13" -LINUX_VERSION_beaglebone-yocto = "5.0.13" -LINUX_VERSION_mpc8315e-rdb = "5.0.13" diff --git a/Contrib-Inspur/openbmc/poky/meta-yocto-bsp/recipes-kernel/linux/linux-yocto_5.2.bbappend b/Contrib-Inspur/openbmc/poky/meta-yocto-bsp/recipes-kernel/linux/linux-yocto_5.2.bbappend new file mode 100644 index 00000000..f15bccba --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta-yocto-bsp/recipes-kernel/linux/linux-yocto_5.2.bbappend @@ -0,0 +1,27 @@ +KBRANCH_genericx86 = "v5.2/standard/base" +KBRANCH_genericx86-64 = "v5.2/standard/base" +KBRANCH_edgerouter = "v5.2/standard/edgerouter" +KBRANCH_beaglebone-yocto = "v5.2/standard/beaglebone" +KBRANCH_mpc8315e-rdb = "v5.2/standard/fsl-mpc8315e-rdb" + +KMACHINE_genericx86 ?= "common-pc" +KMACHINE_genericx86-64 ?= "common-pc-64" +KMACHINE_beaglebone-yocto ?= "beaglebone" + +SRCREV_machine_genericx86 ?= "25b14cdf9659c68ab32d66616dfdbbe2ece3fd94" +SRCREV_machine_genericx86-64 ?= "25b14cdf9659c68ab32d66616dfdbbe2ece3fd94" +SRCREV_machine_edgerouter ?= "25b14cdf9659c68ab32d66616dfdbbe2ece3fd94" +SRCREV_machine_beaglebone-yocto ?= "25b14cdf9659c68ab32d66616dfdbbe2ece3fd94" +SRCREV_machine_mpc8315e-rdb ?= "77f031b182885c177b3a96098ae61271911a7954" + +COMPATIBLE_MACHINE_genericx86 = "genericx86" +COMPATIBLE_MACHINE_genericx86-64 = "genericx86-64" +COMPATIBLE_MACHINE_edgerouter = "edgerouter" +COMPATIBLE_MACHINE_beaglebone-yocto = "beaglebone-yocto" +COMPATIBLE_MACHINE_mpc8315e-rdb = "mpc8315e-rdb" + +LINUX_VERSION_genericx86 = "5.2.17" +LINUX_VERSION_genericx86-64 = "5.2.17" +LINUX_VERSION_edgerouter = "5.2.17" +LINUX_VERSION_beaglebone-yocto = "5.2.17" +LINUX_VERSION_mpc8315e-rdb = "5.2.17" diff --git a/Contrib-Inspur/openbmc/poky/meta/classes/archiver.bbclass b/Contrib-Inspur/openbmc/poky/meta/classes/archiver.bbclass index af9f010d..7c46cff9 100644 --- a/Contrib-Inspur/openbmc/poky/meta/classes/archiver.bbclass +++ b/Contrib-Inspur/openbmc/poky/meta/classes/archiver.bbclass @@ -78,6 +78,9 @@ python () { bb.debug(1, 'archiver: %s is excluded, covered by gcc-source' % pn) return + def hasTask(task): + return bool(d.getVarFlag(task, "task", False)) and not bool(d.getVarFlag(task, "noexec", False)) + ar_src = d.getVarFlag('ARCHIVER_MODE', 'src') ar_dumpdata = d.getVarFlag('ARCHIVER_MODE', 'dumpdata') ar_recipe = d.getVarFlag('ARCHIVER_MODE', 'recipe') @@ -98,9 +101,6 @@ python () { # There is a corner case with "gcc-source-${PV}" recipes, they don't have # the "do_configure" task, so we need to use "do_preconfigure" - def hasTask(task): - return bool(d.getVarFlag(task, "task", False)) and not bool(d.getVarFlag(task, "noexec", False)) - if hasTask("do_preconfigure"): d.appendVarFlag('do_ar_configured', 'depends', ' %s:do_preconfigure' % pn) elif hasTask("do_configure"): @@ -118,7 +118,11 @@ python () { # Output the SRPM package if d.getVarFlag('ARCHIVER_MODE', 'srpm') == "1" and d.getVar('PACKAGES'): - if "package_rpm" in d.getVar('PACKAGE_CLASSES'): + if "package_rpm" not in d.getVar('PACKAGE_CLASSES'): + bb.fatal("ARCHIVER_MODE[srpm] needs package_rpm in PACKAGE_CLASSES") + + # Some recipes do not have any packaging tasks + if hasTask("do_package_write_rpm"): d.appendVarFlag('do_deploy_archives', 'depends', ' %s:do_package_write_rpm' % pn) d.appendVarFlag('do_package_write_rpm', 'dirs', ' ${ARCHIVER_RPMTOPDIR}') d.appendVarFlag('do_package_write_rpm', 'sstate-inputdirs', ' ${ARCHIVER_RPMTOPDIR}') @@ -133,8 +137,6 @@ python () { d.appendVarFlag('do_package_write_rpm', 'depends', ' %s:do_ar_patched' % pn) elif ar_src == "configured": d.appendVarFlag('do_package_write_rpm', 'depends', ' %s:do_ar_configured' % pn) - else: - bb.fatal("ARCHIVER_MODE[srpm] needs package_rpm in PACKAGE_CLASSES") } # Take all the sources for a recipe and puts them in WORKDIR/archiver-work/. @@ -219,9 +221,10 @@ python do_ar_patched() { # Get the ARCHIVER_OUTDIR before we reset the WORKDIR ar_outdir = d.getVar('ARCHIVER_OUTDIR') - ar_workdir = d.getVar('ARCHIVER_WORKDIR') + if not is_work_shared(d): + ar_workdir = d.getVar('ARCHIVER_WORKDIR') + d.setVar('WORKDIR', ar_workdir) bb.note('Archiving the patched source...') - d.setVar('WORKDIR', ar_workdir) create_tarball(d, d.getVar('S'), 'patched', ar_outdir) } @@ -438,9 +441,10 @@ python do_ar_recipe () { incfile = include_re.match(line).group(1) if incfile: incfile = d.expand(incfile) + if incfile: incfile = bb.utils.which(bbpath, incfile) - if incfile: - shutil.copy(incfile, outdir) + if incfile: + shutil.copy(incfile, outdir) create_tarball(d, outdir, 'recipe', d.getVar('ARCHIVER_OUTDIR')) bb.utils.remove(outdir, recurse=True) diff --git a/Contrib-Inspur/openbmc/poky/meta/classes/autotools.bbclass b/Contrib-Inspur/openbmc/poky/meta/classes/autotools.bbclass index 8768a6ad..3d22ad02 100644 --- a/Contrib-Inspur/openbmc/poky/meta/classes/autotools.bbclass +++ b/Contrib-Inspur/openbmc/poky/meta/classes/autotools.bbclass @@ -25,7 +25,9 @@ inherit siteinfo # Space separated list of shell scripts with variables defined to supply test # results for autoconf tests we cannot run at build time. -export CONFIG_SITE = "${@siteinfo_get_files(d)}" +# The value of this variable is filled in in a prefunc because it depends on +# the contents of the sysroot. +export CONFIG_SITE acpaths ?= "default" EXTRA_AUTORECONF = "--exclude=autopoint" @@ -132,6 +134,8 @@ EXTRACONFFUNCS ??= "" EXTRA_OECONF_append = " ${PACKAGECONFIG_CONFARGS}" do_configure[prefuncs] += "autotools_preconfigure autotools_aclocals ${EXTRACONFFUNCS}" +do_compile[prefuncs] += "autotools_aclocals" +do_install[prefuncs] += "autotools_aclocals" do_configure[postfuncs] += "autotools_postconfigure" ACLOCALDIR = "${STAGING_DATADIR}/aclocal" @@ -140,7 +144,6 @@ ACLOCALEXTRAPATH_class-target = " -I ${STAGING_DATADIR_NATIVE}/aclocal/" ACLOCALEXTRAPATH_class-nativesdk = " -I ${STAGING_DATADIR_NATIVE}/aclocal/" python autotools_aclocals () { - # Refresh variable with cache files d.setVar("CONFIG_SITE", siteinfo_get_files(d, sysrootcache=True)) } diff --git a/Contrib-Inspur/openbmc/poky/meta/classes/base.bbclass b/Contrib-Inspur/openbmc/poky/meta/classes/base.bbclass index 0c8a4b28..1cea3a22 100644 --- a/Contrib-Inspur/openbmc/poky/meta/classes/base.bbclass +++ b/Contrib-Inspur/openbmc/poky/meta/classes/base.bbclass @@ -32,9 +32,11 @@ def oe_import(d): import oe.data for toimport in oe.data.typed_value("OE_IMPORTS", d): - imported = __import__(toimport) - inject(toimport.split(".", 1)[0], imported) - + try: + imported = __import__(toimport) + inject(toimport.split(".", 1)[0], imported) + except AttributeError as e: + bb.error("Error importing OE modules: %s" % str(e)) return "" # We need the oe module name space early (before INHERITs get added) @@ -480,6 +482,7 @@ python () { # If we're building a target package we need to use fakeroot (pseudo) # in order to capture permissions, owners, groups and special files if not bb.data.inherits_class('native', d) and not bb.data.inherits_class('cross', d): + d.appendVarFlag('do_prepare_recipe_sysroot', 'depends', ' virtual/fakeroot-native:do_populate_sysroot') d.setVarFlag('do_unpack', 'umask', '022') d.setVarFlag('do_configure', 'umask', '022') d.setVarFlag('do_compile', 'umask', '022') diff --git a/Contrib-Inspur/openbmc/poky/meta/classes/bluetooth.bbclass b/Contrib-Inspur/openbmc/poky/meta/classes/bluetooth.bbclass deleted file mode 100644 index f88b4ae5..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/classes/bluetooth.bbclass +++ /dev/null @@ -1,14 +0,0 @@ -# Avoid code duplication in bluetooth-dependent recipes. - -# Define a variable that expands to the recipe (package) providing core -# bluetooth support on the platform: -# "" if bluetooth is not in DISTRO_FEATURES -# else "bluez5" if bluez5 is in DISTRO_FEATURES -# else "bluez4" - -# Use this with: -# inherit bluetooth -# PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'bluetooth', '${BLUEZ}', '', d)} -# PACKAGECONFIG[bluez4] = "--enable-bluez4,--disable-bluez4,bluez4" - -BLUEZ ?= "${@bb.utils.contains('DISTRO_FEATURES', 'bluetooth', bb.utils.contains('DISTRO_FEATURES', 'bluez5', 'bluez5', 'bluez4', d), '', d)}" diff --git a/Contrib-Inspur/openbmc/poky/meta/classes/buildhistory.bbclass b/Contrib-Inspur/openbmc/poky/meta/classes/buildhistory.bbclass index 2e501df2..affdf272 100644 --- a/Contrib-Inspur/openbmc/poky/meta/classes/buildhistory.bbclass +++ b/Contrib-Inspur/openbmc/poky/meta/classes/buildhistory.bbclass @@ -60,15 +60,34 @@ SSTATEPOSTUNPACKFUNCS[vardepvalueexclude] .= "| buildhistory_emit_outputsigs" # When extending build history, derive your class from buildhistory.bbclass # and extend this list here with the additional files created by the derived # class. -BUILDHISTORY_PRESERVE = "latest latest_srcrev" +BUILDHISTORY_PRESERVE = "latest latest_srcrev sysroot" PATCH_GIT_USER_EMAIL ?= "buildhistory@oe" PATCH_GIT_USER_NAME ?= "OpenEmbedded" +# +# Write out the contents of the sysroot +# +buildhistory_emit_sysroot() { + mkdir --parents ${BUILDHISTORY_DIR_PACKAGE} + case ${CLASSOVERRIDE} in + class-native|class-cross|class-crosssdk) + BASE=${SYSROOT_DESTDIR}/${STAGING_DIR_NATIVE} + ;; + *) + BASE=${SYSROOT_DESTDIR} + ;; + esac + buildhistory_list_files_no_owners $BASE ${BUILDHISTORY_DIR_PACKAGE}/sysroot +} + # # Write out metadata about this package for comparison when writing future packages # python buildhistory_emit_pkghistory() { + if d.getVar('BB_CURRENTTASK') in ['populate_sysroot', 'populate_sysroot_setscene']: + bb.build.exec_func("buildhistory_emit_sysroot", d) + if not d.getVar('BB_CURRENTTASK') in ['packagedata', 'packagedata_setscene']: return 0 @@ -261,7 +280,7 @@ python buildhistory_emit_pkghistory() { last_pkgr = lastversion.pkgr r = bb.utils.vercmp((pkge, pkgv, pkgr), (last_pkge, last_pkgv, last_pkgr)) if r < 0: - msg = "Package version for package %s went backwards which would break package feeds from (%s:%s-%s to %s:%s-%s)" % (pkg, last_pkge, last_pkgv, last_pkgr, pkge, pkgv, pkgr) + msg = "Package version for package %s went backwards which would break package feeds (from %s:%s-%s to %s:%s-%s)" % (pkg, last_pkge, last_pkgv, last_pkgr, pkge, pkgv, pkgr) package_qa_handle_error("version-going-backwards", msg, d) pkginfo = PackageInfo(pkg) @@ -529,6 +548,20 @@ buildhistory_list_files() { fi | sort -k5 | sed 's/ * -> $//' > $2 ) } +buildhistory_list_files_no_owners() { + # List the files in the specified directory, but exclude date/time etc. + # Also don't output the ownership data, but instead output just - - so + # that the same parsing code as for _list_files works. + # This is somewhat messy, but handles where the size is not printed for device files under pseudo + ( cd $1 + find_cmd='find . ! -path . -printf "%M - - %10s %p -> %l\n"' + if [ "$3" = "fakeroot" ] ; then + eval ${FAKEROOTENV} ${FAKEROOTCMD} "$find_cmd" + else + eval "$find_cmd" + fi | sort -k5 | sed 's/ * -> $//' > $2 ) +} + buildhistory_list_pkg_files() { # Create individual files-in-package for each recipe's package for pkgdir in $(find ${PKGDEST}/* -maxdepth 0 -type d); do diff --git a/Contrib-Inspur/openbmc/poky/meta/classes/chrpath.bbclass b/Contrib-Inspur/openbmc/poky/meta/classes/chrpath.bbclass index ad3c3975..2870c10d 100644 --- a/Contrib-Inspur/openbmc/poky/meta/classes/chrpath.bbclass +++ b/Contrib-Inspur/openbmc/poky/meta/classes/chrpath.bbclass @@ -1,7 +1,7 @@ CHRPATH_BIN ?= "chrpath" PREPROCESS_RELOCATE_DIRS ?= "" -def process_file_linux(cmd, fpath, rootdir, baseprefix, tmpdir, d): +def process_file_linux(cmd, fpath, rootdir, baseprefix, tmpdir, d, break_hardlinks = False): import subprocess as sub p = sub.Popen([cmd, '-l', fpath],stdout=sub.PIPE,stderr=sub.PIPE) @@ -39,6 +39,9 @@ def process_file_linux(cmd, fpath, rootdir, baseprefix, tmpdir, d): # if we have modified some rpaths call chrpath to update the binary if modified: + if break_hardlinks: + bb.utils.break_hardlinks(fpath) + args = ":".join(new_rpaths) #bb.note("Setting rpath for %s to %s" %(fpath, args)) p = sub.Popen([cmd, '-r', args, fpath],stdout=sub.PIPE,stderr=sub.PIPE) @@ -46,7 +49,7 @@ def process_file_linux(cmd, fpath, rootdir, baseprefix, tmpdir, d): if p.returncode != 0: bb.fatal("%s: chrpath command failed with exit code %d:\n%s%s" % (d.getVar('PN'), p.returncode, out, err)) -def process_file_darwin(cmd, fpath, rootdir, baseprefix, tmpdir, d): +def process_file_darwin(cmd, fpath, rootdir, baseprefix, tmpdir, d, break_hardlinks = False): import subprocess as sub p = sub.Popen([d.expand("${HOST_PREFIX}otool"), '-L', fpath],stdout=sub.PIPE,stderr=sub.PIPE) @@ -61,11 +64,14 @@ def process_file_darwin(cmd, fpath, rootdir, baseprefix, tmpdir, d): if baseprefix not in rpath: continue + if break_hardlinks: + bb.utils.break_hardlinks(fpath) + newpath = "@loader_path/" + os.path.relpath(rpath, os.path.dirname(fpath.replace(rootdir, "/"))) p = sub.Popen([d.expand("${HOST_PREFIX}install_name_tool"), '-change', rpath, newpath, fpath],stdout=sub.PIPE,stderr=sub.PIPE) out, err = p.communicate() -def process_dir (rootdir, directory, d): +def process_dir(rootdir, directory, d, break_hardlinks = False): import stat rootdir = os.path.normpath(rootdir) @@ -95,7 +101,7 @@ def process_dir (rootdir, directory, d): continue if os.path.isdir(fpath): - process_dir(rootdir, fpath, d) + process_dir(rootdir, fpath, d, break_hardlinks = break_hardlinks) else: #bb.note("Testing %s for relocatability" % fpath) @@ -108,8 +114,9 @@ def process_dir (rootdir, directory, d): else: # Temporarily make the file writeable so we can chrpath it os.chmod(fpath, perms|stat.S_IRWXU) - process_file(cmd, fpath, rootdir, baseprefix, tmpdir, d) - + + process_file(cmd, fpath, rootdir, baseprefix, tmpdir, d, break_hardlinks = break_hardlinks) + if perms: os.chmod(fpath, perms) diff --git a/Contrib-Inspur/openbmc/poky/meta/classes/cmake.bbclass b/Contrib-Inspur/openbmc/poky/meta/classes/cmake.bbclass index 2b317c83..291f1e8d 100644 --- a/Contrib-Inspur/openbmc/poky/meta/classes/cmake.bbclass +++ b/Contrib-Inspur/openbmc/poky/meta/classes/cmake.bbclass @@ -106,11 +106,12 @@ set( CMAKE_CXX_LINK_FLAGS "${OECMAKE_CXX_LINK_FLAGS}" CACHE STRING "LDFLAGS" ) # only search in the paths provided so cmake doesnt pick # up libraries and tools from the native build machine -set( CMAKE_FIND_ROOT_PATH ${STAGING_DIR_HOST} ${STAGING_DIR_NATIVE} ${CROSS_DIR} ${OECMAKE_PERLNATIVE_DIR} ${OECMAKE_EXTRA_ROOT_PATH} ${EXTERNAL_TOOLCHAIN}) +set( CMAKE_FIND_ROOT_PATH ${STAGING_DIR_HOST} ${STAGING_DIR_NATIVE} ${CROSS_DIR} ${OECMAKE_PERLNATIVE_DIR} ${OECMAKE_EXTRA_ROOT_PATH} ${EXTERNAL_TOOLCHAIN} ${HOSTTOOLS_DIR}) set( CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY ) set( CMAKE_FIND_ROOT_PATH_MODE_PROGRAM ${OECMAKE_FIND_ROOT_PATH_MODE_PROGRAM} ) set( CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY ) set( CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY ) +set( CMAKE_PROGRAM_PATH "/" ) # Use qt.conf settings set( ENV{QT_CONF_PATH} ${WORKDIR}/qt.conf ) diff --git a/Contrib-Inspur/openbmc/poky/meta/classes/core-image.bbclass b/Contrib-Inspur/openbmc/poky/meta/classes/core-image.bbclass index a9a2cec6..94f112c3 100644 --- a/Contrib-Inspur/openbmc/poky/meta/classes/core-image.bbclass +++ b/Contrib-Inspur/openbmc/poky/meta/classes/core-image.bbclass @@ -30,6 +30,7 @@ # - dev-pkgs - development packages (headers, etc.) for all installed packages in the rootfs # - dbg-pkgs - debug symbol packages for all installed packages in the rootfs # - doc-pkgs - documentation packages for all installed packages in the rootfs +# - bash-completion-pkgs - bash-completion packages for recipes using bash-completion bbclass # - ptest-pkgs - ptest packages for all ptest-enabled recipes # - read-only-rootfs - tweaks an image to support read-only rootfs # - splash - bootup splash screen diff --git a/Contrib-Inspur/openbmc/poky/meta/classes/cve-check.bbclass b/Contrib-Inspur/openbmc/poky/meta/classes/cve-check.bbclass index 379f7121..19ed5548 100644 --- a/Contrib-Inspur/openbmc/poky/meta/classes/cve-check.bbclass +++ b/Contrib-Inspur/openbmc/poky/meta/classes/cve-check.bbclass @@ -26,7 +26,7 @@ CVE_PRODUCT ??= "${BPN}" CVE_VERSION ??= "${PV}" CVE_CHECK_DB_DIR ?= "${DL_DIR}/CVE_CHECK" -CVE_CHECK_DB_FILE ?= "${CVE_CHECK_DB_DIR}/nvd-json.db" +CVE_CHECK_DB_FILE ?= "${CVE_CHECK_DB_DIR}/nvdcve_1.0.db" CVE_CHECK_LOG ?= "${T}/cve.log" CVE_CHECK_TMP_FILE ?= "${TMPDIR}/cve_check" @@ -37,39 +37,39 @@ CVE_CHECK_COPY_FILES ??= "1" CVE_CHECK_CREATE_MANIFEST ??= "1" # Whitelist for packages (PN) -CVE_CHECK_PN_WHITELIST = "\ - glibc-locale \ -" +CVE_CHECK_PN_WHITELIST ?= "" -# Whitelist for CVE and version of package -CVE_CHECK_CVE_WHITELIST = "{\ - 'CVE-2014-2524': ('6.3','5.2',), \ -}" +# Whitelist for CVE. If a CVE is found, then it is considered patched. +# The value is a string containing space separated CVE values: +# +# CVE_CHECK_WHITELIST = 'CVE-2014-2524 CVE-2018-1234' +# +CVE_CHECK_WHITELIST ?= "" python do_cve_check () { """ Check recipe for patched and unpatched CVEs """ - if os.path.exists(d.getVar("CVE_CHECK_TMP_FILE")): + if os.path.exists(d.getVar("CVE_CHECK_DB_FILE")): patched_cves = get_patches_cves(d) patched, unpatched = check_cves(d, patched_cves) if patched or unpatched: cve_data = get_cve_info(d, patched + unpatched) cve_write_data(d, patched, unpatched, cve_data) else: - bb.note("Failed to update CVE database, skipping CVE check") + bb.note("No CVE database found, skipping CVE check") + } -addtask cve_check after do_unpack before do_build -do_cve_check[depends] = "cve-update-db:do_populate_cve_db" +addtask cve_check before do_build +do_cve_check[depends] = "cve-update-db-native:do_populate_cve_db" do_cve_check[nostamp] = "1" python cve_check_cleanup () { """ Delete the file used to gather all the CVE information. """ - bb.utils.remove(e.data.getVar("CVE_CHECK_TMP_FILE")) } @@ -165,82 +165,119 @@ def check_cves(d, patched_cves): """ Connect to the NVD database and find unpatched cves. """ - import ast, csv, tempfile, subprocess, io from distutils.version import LooseVersion cves_unpatched = [] # CVE_PRODUCT can contain more than one product (eg. curl/libcurl) - bpn = d.getVar("CVE_PRODUCT").split() + products = d.getVar("CVE_PRODUCT").split() # If this has been unset then we're not scanning for CVEs here (for example, image recipes) - if len(bpn) == 0: + if not products: return ([], []) pv = d.getVar("CVE_VERSION").split("+git")[0] - cve_whitelist = ast.literal_eval(d.getVar("CVE_CHECK_CVE_WHITELIST")) # If the recipe has been whitlisted we return empty lists if d.getVar("PN") in d.getVar("CVE_CHECK_PN_WHITELIST").split(): bb.note("Recipe has been whitelisted, skipping check") return ([], []) + old_cve_whitelist = d.getVar("CVE_CHECK_CVE_WHITELIST") + if old_cve_whitelist: + bb.warn("CVE_CHECK_CVE_WHITELIST is deprecated, please use CVE_CHECK_WHITELIST.") + cve_whitelist = d.getVar("CVE_CHECK_WHITELIST").split() + import sqlite3 - db_file = d.getVar("CVE_CHECK_DB_FILE") - conn = sqlite3.connect(db_file) - c = conn.cursor() - - query = """SELECT * FROM PRODUCTS WHERE - (PRODUCT IS '{0}' AND VERSION = '{1}' AND OPERATOR IS '=') OR - (PRODUCT IS '{0}' AND OPERATOR IS '<=');""" - for idx in range(len(bpn)): - for row in c.execute(query.format(bpn[idx],pv)): - cve = row[1] - version = row[4] + db_file = d.expand("file:${CVE_CHECK_DB_FILE}?mode=ro") + conn = sqlite3.connect(db_file, uri=True) - try: - discardVersion = LooseVersion(version) < LooseVersion(pv) - except: - discardVersion = True + # For each of the known product names (e.g. curl has CPEs using curl and libcurl)... + for product in products: + if ":" in product: + vendor, product = product.split(":", 1) + else: + vendor = "%" - if pv in cve_whitelist.get(cve,[]): - bb.note("%s-%s has been whitelisted for %s" % (bpn[idx], pv, cve)) + # Find all relevant CVE IDs. + for cverow in conn.execute("SELECT DISTINCT ID FROM PRODUCTS WHERE PRODUCT IS ? AND VENDOR LIKE ?", (product, vendor)): + cve = cverow[0] + + if cve in cve_whitelist: + bb.note("%s-%s has been whitelisted for %s" % (product, pv, cve)) + # TODO: this should be in the report as 'whitelisted' + patched_cves.add(cve) + continue elif cve in patched_cves: bb.note("%s has been patched" % (cve)) - elif discardVersion: - bb.debug(2, "Do not consider version %s " % (version)) - else: - cves_unpatched.append(cve) - bb.debug(2, "%s-%s is not patched for %s" % (bpn[idx], pv, cve)) + continue + + vulnerable = False + for row in conn.execute("SELECT * FROM PRODUCTS WHERE ID IS ? AND PRODUCT IS ? AND VENDOR LIKE ?", (cve, product, vendor)): + (_, _, _, version_start, operator_start, version_end, operator_end) = row + #bb.debug(2, "Evaluating row " + str(row)) + + if (operator_start == '=' and pv == version_start): + vulnerable = True + else: + if operator_start: + try: + vulnerable_start = (operator_start == '>=' and LooseVersion(pv) >= LooseVersion(version_start)) + vulnerable_start |= (operator_start == '>' and LooseVersion(pv) > LooseVersion(version_start)) + except: + bb.warn("%s: Failed to compare %s %s %s for %s" % + (product, pv, operator_start, version_start, cve)) + vulnerable_start = False + else: + vulnerable_start = False + + if operator_end: + try: + vulnerable_end = (operator_end == '<=' and LooseVersion(pv) <= LooseVersion(version_end)) + vulnerable_end |= (operator_end == '<' and LooseVersion(pv) < LooseVersion(version_end)) + except: + bb.warn("%s: Failed to compare %s %s %s for %s" % + (product, pv, operator_end, version_end, cve)) + vulnerable_end = False + else: + vulnerable_end = False + + if operator_start and operator_end: + vulnerable = vulnerable_start and vulnerable_end + else: + vulnerable = vulnerable_start or vulnerable_end + + if vulnerable: + bb.note("%s-%s is vulnerable to %s" % (product, pv, cve)) + cves_unpatched.append(cve) + break + + if not vulnerable: + bb.note("%s-%s is not vulnerable to %s" % (product, pv, cve)) + # TODO: not patched but not vulnerable + patched_cves.add(cve) + conn.close() return (list(patched_cves), cves_unpatched) def get_cve_info(d, cves): """ - Get CVE information from the database used by cve-check-tool. - - Unfortunately the only way to get CVE info is set the output to - html (hard to parse) or query directly the database. + Get CVE information from the database. """ - try: - import sqlite3 - except ImportError: - from pysqlite2 import dbapi2 as sqlite3 + import sqlite3 cve_data = {} - db_file = d.getVar("CVE_CHECK_DB_FILE") - placeholder = ",".join("?" * len(cves)) - query = "SELECT * FROM NVD WHERE id IN (%s)" % placeholder - conn = sqlite3.connect(db_file) - cur = conn.cursor() - for row in cur.execute(query, tuple(cves)): - cve_data[row[0]] = {} - cve_data[row[0]]["summary"] = row[1] - cve_data[row[0]]["scorev2"] = row[2] - cve_data[row[0]]["scorev3"] = row[3] - cve_data[row[0]]["modified"] = row[4] - cve_data[row[0]]["vector"] = row[5] - conn.close() + conn = sqlite3.connect(d.getVar("CVE_CHECK_DB_FILE")) + + for cve in cves: + for row in conn.execute("SELECT * FROM NVD WHERE ID IS ?", (cve,)): + cve_data[row[0]] = {} + cve_data[row[0]]["summary"] = row[1] + cve_data[row[0]]["scorev2"] = row[2] + cve_data[row[0]]["scorev3"] = row[3] + cve_data[row[0]]["modified"] = row[4] + cve_data[row[0]]["vector"] = row[5] + conn.close() return cve_data def cve_write_data(d, patched, unpatched, cve_data): diff --git a/Contrib-Inspur/openbmc/poky/meta/classes/devtool-source.bbclass b/Contrib-Inspur/openbmc/poky/meta/classes/devtool-source.bbclass index a8110006..280d6009 100644 --- a/Contrib-Inspur/openbmc/poky/meta/classes/devtool-source.bbclass +++ b/Contrib-Inspur/openbmc/poky/meta/classes/devtool-source.bbclass @@ -97,17 +97,15 @@ python devtool_post_unpack() { local_files = oe.recipeutils.get_recipe_local_files(d) if is_kernel_yocto: - for key in local_files.copy(): - if key.endswith('scc'): - sccfile = open(local_files[key], 'r') + for key in [f for f in local_files if f.endswith('scc')]: + with open(local_files[key], 'r') as sccfile: for l in sccfile: line = l.split() if line and line[0] in ('kconf', 'patch'): cfg = os.path.join(os.path.dirname(local_files[key]), line[-1]) - if not cfg in local_files.values(): + if cfg not in local_files.values(): local_files[line[-1]] = cfg shutil.copy2(cfg, workdir) - sccfile.close() # Ignore local files with subdir={BP} srcabspath = os.path.abspath(srcsubdir) diff --git a/Contrib-Inspur/openbmc/poky/meta/classes/distro_features_check.bbclass b/Contrib-Inspur/openbmc/poky/meta/classes/distro_features_check.bbclass index eeaa3b44..8124a8ca 100644 --- a/Contrib-Inspur/openbmc/poky/meta/classes/distro_features_check.bbclass +++ b/Contrib-Inspur/openbmc/poky/meta/classes/distro_features_check.bbclass @@ -1,32 +1,7 @@ -# Allow checking of required and conflicting DISTRO_FEATURES -# -# ANY_OF_DISTRO_FEATURES: ensure at least one item on this list is included -# in DISTRO_FEATURES. -# REQUIRED_DISTRO_FEATURES: ensure every item on this list is included -# in DISTRO_FEATURES. -# CONFLICT_DISTRO_FEATURES: ensure no item in this list is included in -# DISTRO_FEATURES. -# -# Copyright 2013 (C) O.S. Systems Software LTDA. +# Temporarily provide fallback to the old name of the class -python () { - # Assume at least one var is set. - distro_features = set((d.getVar('DISTRO_FEATURES') or '').split()) - - any_of_distro_features = set((d.getVar('ANY_OF_DISTRO_FEATURES') or '').split()) - if any_of_distro_features: - if set.isdisjoint(any_of_distro_features, distro_features): - raise bb.parse.SkipRecipe("one of '%s' needs to be in DISTRO_FEATURES" % ' '.join(any_of_distro_features)) - - required_distro_features = set((d.getVar('REQUIRED_DISTRO_FEATURES') or '').split()) - if required_distro_features: - missing = set.difference(required_distro_features, distro_features) - if missing: - raise bb.parse.SkipRecipe("missing required distro feature%s '%s' (not in DISTRO_FEATURES)" % ('s' if len(missing) > 1 else '', ' '.join(missing))) - - conflict_distro_features = set((d.getVar('CONFLICT_DISTRO_FEATURES') or '').split()) - if conflict_distro_features: - conflicts = set.intersection(conflict_distro_features, distro_features) - if conflicts: - raise bb.parse.SkipRecipe("conflicting distro feature%s '%s' (in DISTRO_FEATURES)" % ('s' if len(conflicts) > 1 else '', ' '.join(conflicts))) +python __anonymous() { + bb.warn("distro_features_check.bbclass is deprecated, please use features_check.bbclass instead") } + +inherit features_check diff --git a/Contrib-Inspur/openbmc/poky/meta/classes/externalsrc.bbclass b/Contrib-Inspur/openbmc/poky/meta/classes/externalsrc.bbclass index 3618b99a..ea59d02e 100644 --- a/Contrib-Inspur/openbmc/poky/meta/classes/externalsrc.bbclass +++ b/Contrib-Inspur/openbmc/poky/meta/classes/externalsrc.bbclass @@ -203,7 +203,7 @@ def srctree_hash_files(d, srcdir=None): ret = " " if git_dir is not None: - oe_hash_file = os.path.join(git_dir, 'oe-devtool-tree-sha1') + oe_hash_file = os.path.join(git_dir, 'oe-devtool-tree-sha1-%s' % d.getVar('PN')) with tempfile.NamedTemporaryFile(prefix='oe-devtool-index') as tmp_index: # Clone index shutil.copyfile(os.path.join(git_dir, 'index'), tmp_index.name) diff --git a/Contrib-Inspur/openbmc/poky/meta/classes/features_check.bbclass b/Contrib-Inspur/openbmc/poky/meta/classes/features_check.bbclass new file mode 100644 index 00000000..391fbe1c --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/classes/features_check.bbclass @@ -0,0 +1,85 @@ +# Allow checking of required and conflicting DISTRO_FEATURES +# +# ANY_OF_DISTRO_FEATURES: ensure at least one item on this list is included +# in DISTRO_FEATURES. +# REQUIRED_DISTRO_FEATURES: ensure every item on this list is included +# in DISTRO_FEATURES. +# CONFLICT_DISTRO_FEATURES: ensure no item in this list is included in +# DISTRO_FEATURES. +# ANY_OF_MACHINE_FEATURES: ensure at least one item on this list is included +# in MACHINE_FEATURES. +# REQUIRED_MACHINE_FEATURES: ensure every item on this list is included +# in MACHINE_FEATURES. +# CONFLICT_MACHINE_FEATURES: ensure no item in this list is included in +# MACHINE_FEATURES. +# ANY_OF_COMBINED_FEATURES: ensure at least one item on this list is included +# in COMBINED_FEATURES. +# REQUIRED_COMBINED_FEATURES: ensure every item on this list is included +# in COMBINED_FEATURES. +# CONFLICT_COMBINED_FEATURES: ensure no item in this list is included in +# COMBINED_FEATURES. +# +# Copyright 2019 (C) Texas Instruments Inc. +# Copyright 2013 (C) O.S. Systems Software LTDA. + +python () { + # Assume at least one var is set. + distro_features = set((d.getVar('DISTRO_FEATURES') or '').split()) + + any_of_distro_features = set((d.getVar('ANY_OF_DISTRO_FEATURES') or '').split()) + if any_of_distro_features: + if set.isdisjoint(any_of_distro_features, distro_features): + raise bb.parse.SkipRecipe("one of '%s' needs to be in DISTRO_FEATURES" % ' '.join(any_of_distro_features)) + + required_distro_features = set((d.getVar('REQUIRED_DISTRO_FEATURES') or '').split()) + if required_distro_features: + missing = set.difference(required_distro_features, distro_features) + if missing: + raise bb.parse.SkipRecipe("missing required distro feature%s '%s' (not in DISTRO_FEATURES)" % ('s' if len(missing) > 1 else '', ' '.join(missing))) + + conflict_distro_features = set((d.getVar('CONFLICT_DISTRO_FEATURES') or '').split()) + if conflict_distro_features: + conflicts = set.intersection(conflict_distro_features, distro_features) + if conflicts: + raise bb.parse.SkipRecipe("conflicting distro feature%s '%s' (in DISTRO_FEATURES)" % ('s' if len(conflicts) > 1 else '', ' '.join(conflicts))) + + # Assume at least one var is set. + machine_features = set((d.getVar('MACHINE_FEATURES') or '').split()) + + any_of_machine_features = set((d.getVar('ANY_OF_MACHINE_FEATURES') or '').split()) + if any_of_machine_features: + if set.isdisjoint(any_of_machine_features, machine_features): + raise bb.parse.SkipRecipe("one of '%s' needs to be in MACHINE_FEATURES" % ' '.join(any_of_machine_features)) + + required_machine_features = set((d.getVar('REQUIRED_MACHINE_FEATURES') or '').split()) + if required_machine_features: + missing = set.difference(required_machine_features, machine_features) + if missing: + raise bb.parse.SkipRecipe("missing required machine feature%s '%s' (not in MACHINE_FEATURES)" % ('s' if len(missing) > 1 else '', ' '.join(missing))) + + conflict_machine_features = set((d.getVar('CONFLICT_MACHINE_FEATURES') or '').split()) + if conflict_machine_features: + conflicts = set.intersection(conflict_machine_features, machine_features) + if conflicts: + raise bb.parse.SkipRecipe("conflicting machine feature%s '%s' (in MACHINE_FEATURES)" % ('s' if len(conflicts) > 1 else '', ' '.join(conflicts))) + + # Assume at least one var is set. + combined_features = set((d.getVar('COMBINED_FEATURES') or '').split()) + + any_of_combined_features = set((d.getVar('ANY_OF_COMBINED_FEATURES') or '').split()) + if any_of_combined_features: + if set.isdisjoint(any_of_combined_features, combined_features): + raise bb.parse.SkipRecipe("one of '%s' needs to be in COMBINED_FEATURES" % ' '.join(any_of_combined_features)) + + required_combined_features = set((d.getVar('REQUIRED_COMBINED_FEATURES') or '').split()) + if required_combined_features: + missing = set.difference(required_combined_features, combined_features) + if missing: + raise bb.parse.SkipRecipe("missing required machine feature%s '%s' (not in COMBINED_FEATURES)" % ('s' if len(missing) > 1 else '', ' '.join(missing))) + + conflict_combined_features = set((d.getVar('CONFLICT_COMBINED_FEATURES') or '').split()) + if conflict_combined_features: + conflicts = set.intersection(conflict_combined_features, combined_features) + if conflicts: + raise bb.parse.SkipRecipe("conflicting machine feature%s '%s' (in COMBINED_FEATURES)" % ('s' if len(conflicts) > 1 else '', ' '.join(conflicts))) +} diff --git a/Contrib-Inspur/openbmc/poky/meta/classes/gnome.bbclass b/Contrib-Inspur/openbmc/poky/meta/classes/gnome.bbclass deleted file mode 100644 index c6202bbb..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/classes/gnome.bbclass +++ /dev/null @@ -1 +0,0 @@ -inherit gnomebase gtk-icon-cache gconf mime diff --git a/Contrib-Inspur/openbmc/poky/meta/classes/go-ptest.bbclass b/Contrib-Inspur/openbmc/poky/meta/classes/go-ptest.bbclass new file mode 100644 index 00000000..e230a805 --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/classes/go-ptest.bbclass @@ -0,0 +1,54 @@ +inherit go ptest + +do_compile_ptest_base() { + export TMPDIR="${GOTMPDIR}" + rm -f ${B}/.go_compiled_tests.list + go_list_package_tests | while read pkg; do + cd ${B}/src/$pkg + ${GO} test ${GOPTESTBUILDFLAGS} $pkg + find . -mindepth 1 -maxdepth 1 -type f -name '*.test' -exec echo $pkg/{} \; | \ + sed -e's,/\./,/,'>> ${B}/.go_compiled_tests.list + done + do_compile_ptest +} + +do_compile_ptest_base[dirs] =+ "${GOTMPDIR}" + +go_make_ptest_wrapper() { + cat >${D}${PTEST_PATH}/run-ptest <&3) | sed -r -e"s,^(PASS|SKIP|FAIL)\$,\\1: \$1/\$2," >&4) 3>&1) | (read rc; exit \$rc)) 4>&1 + exit \$?) +EOF + +} + +do_install_ptest_base() { + test -f "${B}/.go_compiled_tests.list" || exit 0 + install -d ${D}${PTEST_PATH} + go_stage_testdata + go_make_ptest_wrapper + havetests="" + while read test; do + testdir=`dirname $test` + testprog=`basename $test` + install -d ${D}${PTEST_PATH}/$testdir + install -m 0755 ${B}/src/$test ${D}${PTEST_PATH}/$test + echo "run_test $testdir $testprog || RC=1" >> ${D}${PTEST_PATH}/run-ptest + havetests="yes" + done < ${B}/.go_compiled_tests.list + if [ -n "$havetests" ]; then + echo "exit \$RC" >> ${D}${PTEST_PATH}/run-ptest + chmod +x ${D}${PTEST_PATH}/run-ptest + else + rm -rf ${D}${PTEST_PATH} + fi + do_install_ptest + chown -R root:root ${D}${PTEST_PATH} +} + +INSANE_SKIP_${PN}-ptest += "ldflags" + diff --git a/Contrib-Inspur/openbmc/poky/meta/classes/go.bbclass b/Contrib-Inspur/openbmc/poky/meta/classes/go.bbclass index e05a5c64..e40e5568 100644 --- a/Contrib-Inspur/openbmc/poky/meta/classes/go.bbclass +++ b/Contrib-Inspur/openbmc/poky/meta/classes/go.bbclass @@ -1,4 +1,4 @@ -inherit goarch ptest +inherit goarch GO_PARALLEL_BUILD ?= "${@oe.utils.parallel_make_argument(d, '-p %d')}" @@ -71,17 +71,13 @@ python go_do_unpack() { if len(src_uri) == 0: return - try: - fetcher = bb.fetch2.Fetch(src_uri, d) - for url in fetcher.urls: - if fetcher.ud[url].type == 'git': - if fetcher.ud[url].parm.get('destsuffix') is None: - s_dirname = os.path.basename(d.getVar('S')) - fetcher.ud[url].parm['destsuffix'] = os.path.join(s_dirname, 'src', - d.getVar('GO_IMPORT')) + '/' - fetcher.unpack(d.getVar('WORKDIR')) - except bb.fetch2.BBFetchException as e: - raise bb.build.FuncFailed(e) + fetcher = bb.fetch2.Fetch(src_uri, d) + for url in fetcher.urls: + if fetcher.ud[url].type == 'git': + if fetcher.ud[url].parm.get('destsuffix') is None: + s_dirname = os.path.basename(d.getVar('S')) + fetcher.ud[url].parm['destsuffix'] = os.path.join(s_dirname, 'src', d.getVar('GO_IMPORT')) + '/' + fetcher.unpack(d.getVar('WORKDIR')) } go_list_packages() { @@ -114,19 +110,6 @@ go_do_compile() { do_compile[dirs] =+ "${GOTMPDIR}" do_compile[cleandirs] = "${B}/bin ${B}/pkg" -do_compile_ptest_base() { - export TMPDIR="${GOTMPDIR}" - rm -f ${B}/.go_compiled_tests.list - go_list_package_tests | while read pkg; do - cd ${B}/src/$pkg - ${GO} test ${GOPTESTBUILDFLAGS} $pkg - find . -mindepth 1 -maxdepth 1 -type f -name '*.test' -exec echo $pkg/{} \; | \ - sed -e's,/\./,/,'>> ${B}/.go_compiled_tests.list - done - do_compile_ptest -} -do_compile_ptest_base[dirs] =+ "${GOTMPDIR}" - go_do_install() { install -d ${D}${libdir}/go/src/${GO_IMPORT} tar -C ${S}/src/${GO_IMPORT} -cf - --exclude-vcs --exclude '*.test' --exclude 'testdata' . | \ @@ -139,18 +122,6 @@ go_do_install() { fi } -go_make_ptest_wrapper() { - cat >${D}${PTEST_PATH}/run-ptest <&3) | sed -r -e"s,^(PASS|SKIP|FAIL)\$,\\1: \$1/\$2," >&4) 3>&1) | (read rc; exit \$rc)) 4>&1 - exit \$?) -EOF - -} - go_stage_testdata() { oldwd="$PWD" cd ${S}/src @@ -165,37 +136,12 @@ go_stage_testdata() { cd "$oldwd" } -do_install_ptest_base() { - test -f "${B}/.go_compiled_tests.list" || exit 0 - install -d ${D}${PTEST_PATH} - go_stage_testdata - go_make_ptest_wrapper - havetests="" - while read test; do - testdir=`dirname $test` - testprog=`basename $test` - install -d ${D}${PTEST_PATH}/$testdir - install -m 0755 ${B}/src/$test ${D}${PTEST_PATH}/$test - echo "run_test $testdir $testprog || RC=1" >> ${D}${PTEST_PATH}/run-ptest - havetests="yes" - done < ${B}/.go_compiled_tests.list - if [ -n "$havetests" ]; then - echo "exit \$RC" >> ${D}${PTEST_PATH}/run-ptest - chmod +x ${D}${PTEST_PATH}/run-ptest - else - rm -rf ${D}${PTEST_PATH} - fi - do_install_ptest - chown -R root:root ${D}${PTEST_PATH} -} - EXPORT_FUNCTIONS do_unpack do_configure do_compile do_install FILES_${PN}-dev = "${libdir}/go/src" FILES_${PN}-staticdev = "${libdir}/go/pkg" INSANE_SKIP_${PN} += "ldflags" -INSANE_SKIP_${PN}-ptest += "ldflags" # Add -buildmode=pie to GOBUILDFLAGS to satisfy "textrel" QA checking, but mips # doesn't support -buildmode=pie, so skip the QA checking for mips and its diff --git a/Contrib-Inspur/openbmc/poky/meta/classes/grub-efi-cfg.bbclass b/Contrib-Inspur/openbmc/poky/meta/classes/grub-efi-cfg.bbclass index f661a69f..8b5ff20c 100644 --- a/Contrib-Inspur/openbmc/poky/meta/classes/grub-efi-cfg.bbclass +++ b/Contrib-Inspur/openbmc/poky/meta/classes/grub-efi-cfg.bbclass @@ -23,7 +23,6 @@ GRUB_TIMEOUT ?= "10" #FIXME: build this from the machine config GRUB_OPTS ?= "serial --unit=0 --speed=115200 --word=8 --parity=no --stop=1" -EFIDIR = "/EFI/BOOT" GRUB_ROOT ?= "${ROOT}" APPEND ?= "" diff --git a/Contrib-Inspur/openbmc/poky/meta/classes/grub-efi.bbclass b/Contrib-Inspur/openbmc/poky/meta/classes/grub-efi.bbclass index 90badc03..8fc6999e 100644 --- a/Contrib-Inspur/openbmc/poky/meta/classes/grub-efi.bbclass +++ b/Contrib-Inspur/openbmc/poky/meta/classes/grub-efi.bbclass @@ -1,39 +1,8 @@ inherit grub-efi-cfg +require conf/image-uefi.conf efi_populate() { - # DEST must be the root of the image so that EFIDIR is not - # nested under a top level directory. - DEST=$1 - - install -d ${DEST}${EFIDIR} - - GRUB_IMAGE="grub-efi-bootia32.efi" - DEST_IMAGE="bootia32.efi" - if [ "${TARGET_ARCH}" = "x86_64" ]; then - GRUB_IMAGE="grub-efi-bootx64.efi" - DEST_IMAGE="bootx64.efi" - fi - install -m 0644 ${DEPLOY_DIR_IMAGE}/${GRUB_IMAGE} ${DEST}${EFIDIR}/${DEST_IMAGE} - EFIPATH=$(echo "${EFIDIR}" | sed 's/\//\\/g') - printf 'fs0:%s\%s\n' "$EFIPATH" "$DEST_IMAGE" >${DEST}/startup.nsh + efi_populate_common "$1" grub-efi install -m 0644 ${GRUB_CFG} ${DEST}${EFIDIR}/grub.cfg } - -efi_iso_populate() { - iso_dir=$1 - efi_populate $iso_dir - # Build a EFI directory to create efi.img - mkdir -p ${EFIIMGDIR}/${EFIDIR} - cp $iso_dir/${EFIDIR}/* ${EFIIMGDIR}${EFIDIR} - cp $iso_dir/${KERNEL_IMAGETYPE} ${EFIIMGDIR} - EFIPATH=$(echo "${EFIDIR}" | sed 's/\//\\/g') - printf 'fs0:%s\%s\n' "$EFIPATH" "$GRUB_IMAGE" > ${EFIIMGDIR}/startup.nsh - if [ -f "$iso_dir/initrd" ] ; then - cp $iso_dir/initrd ${EFIIMGDIR} - fi -} - -efi_hddimg_populate() { - efi_populate $1 -} diff --git a/Contrib-Inspur/openbmc/poky/meta/classes/gtk-icon-cache.bbclass b/Contrib-Inspur/openbmc/poky/meta/classes/gtk-icon-cache.bbclass index 66fe781b..91cb4ad4 100644 --- a/Contrib-Inspur/openbmc/poky/meta/classes/gtk-icon-cache.bbclass +++ b/Contrib-Inspur/openbmc/poky/meta/classes/gtk-icon-cache.bbclass @@ -6,7 +6,7 @@ PACKAGE_WRITE_DEPS += "gtk+3-native gdk-pixbuf-native" gtk_icon_cache_postinst() { if [ "x$D" != "x" ]; then - $INTERCEPT_DIR/postinst_intercept update_icon_cache ${PKG} \ + $INTERCEPT_DIR/postinst_intercept update_gtk_icon_cache ${PKG} \ mlprefix=${MLPREFIX} \ libdir_native=${libdir_native} else @@ -24,7 +24,7 @@ fi gtk_icon_cache_postrm() { if [ "x$D" != "x" ]; then - $INTERCEPT_DIR/postinst_intercept update_icon_cache ${PKG} \ + $INTERCEPT_DIR/postinst_intercept update_gtk_icon_cache ${PKG} \ mlprefix=${MLPREFIX} \ libdir=${libdir} else diff --git a/Contrib-Inspur/openbmc/poky/meta/classes/icecc.bbclass b/Contrib-Inspur/openbmc/poky/meta/classes/icecc.bbclass index edb0e104..bc3d6f4c 100644 --- a/Contrib-Inspur/openbmc/poky/meta/classes/icecc.bbclass +++ b/Contrib-Inspur/openbmc/poky/meta/classes/icecc.bbclass @@ -57,7 +57,7 @@ ICECC_ENV_VERSION = "2" # See: https://github.com/icecc/icecream/issues/190 export ICECC_CARET_WORKAROUND ??= "0" -export ICECC_REMOTE_CPP ??= "1" +export ICECC_REMOTE_CPP ??= "0" ICECC_CFLAGS = "" CFLAGS += "${ICECC_CFLAGS}" @@ -73,10 +73,16 @@ ICECC_ENV_DEBUG ??= "" # # libgcc-initial - fails with CPP sanity check error if host sysroot contains # cross gcc built for another target tune/variant +# pixman - prng_state: TLS reference mismatches non-TLS reference, possibly due to +# pragma omp threadprivate(prng_state) +# systemtap - _HelperSDT.c undefs macros and uses the identifiers in macros emitting +# inline assembly # target-sdk-provides-dummy - ${HOST_PREFIX} is empty which triggers the "NULL # prefix" error. ICECC_SYSTEM_PACKAGE_BL += "\ libgcc-initial \ + pixman \ + systemtap \ target-sdk-provides-dummy \ " @@ -132,6 +138,10 @@ def use_icecc(bb,d): if icecc_is_cross_canadian(bb, d): return "no" + if d.getVar('INHIBIT_DEFAULT_DEPS', False): + # We don't have a compiler, so no icecc + return "no" + pn = d.getVar('PN') bpn = d.getVar('BPN') @@ -243,7 +253,11 @@ def icecc_get_external_tool(bb, d, tool): def icecc_get_tool_link(tool, d): import subprocess - return subprocess.check_output("readlink -f %s" % tool, shell=True).decode("utf-8")[:-1] + try: + return subprocess.check_output("readlink -f %s" % tool, shell=True).decode("utf-8")[:-1] + except subprocess.CalledProcessError as e: + bb.note("icecc: one of the tools probably disappeared during recipe parsing, cmd readlink -f %s returned %d:\n%s" % (tool, e.returncode, e.output.decode("utf-8"))) + return tool def icecc_get_path_tool(tool, d): # This is a little ugly, but we want to make sure we add an actual @@ -342,17 +356,6 @@ set_icecc_env() { return fi - # Create symlinks to icecc in the recipe-sysroot directory - mkdir -p ${ICE_PATH} - if [ -n "${KERNEL_CC}" ]; then - compilers="${@get_cross_kernel_cc(bb,d)}" - else - compilers="${HOST_PREFIX}gcc ${HOST_PREFIX}g++" - fi - for compiler in $compilers; do - ln -sf ${ICECC_BIN} ${ICE_PATH}/$compiler - done - ICECC_CC="${@icecc_get_and_check_tool(bb, d, "gcc")}" ICECC_CXX="${@icecc_get_and_check_tool(bb, d, "g++")}" # cannot use icecc_get_and_check_tool here because it assumes as without target_sys prefix @@ -371,6 +374,26 @@ set_icecc_env() { return fi + # Create symlinks to icecc and wrapper-scripts in the recipe-sysroot directory + mkdir -p $ICE_PATH/symlinks + if [ -n "${KERNEL_CC}" ]; then + compilers="${@get_cross_kernel_cc(bb,d)}" + else + compilers="${HOST_PREFIX}gcc ${HOST_PREFIX}g++" + fi + for compiler in $compilers; do + ln -sf $ICECC_BIN $ICE_PATH/symlinks/$compiler + rm -f $ICE_PATH/$compiler + cat <<-__EOF__ > $ICE_PATH/$compiler + #!/bin/sh -e + export ICECC_VERSION=$ICECC_VERSION + export ICECC_CC=$ICECC_CC + export ICECC_CXX=$ICECC_CXX + $ICE_PATH/symlinks/$compiler "\$@" + __EOF__ + chmod 775 $ICE_PATH/$compiler + done + ICECC_AS="`${ICECC_CC} -print-prog-name=as`" # for target recipes should return something like: # /OE/tmp-eglibc/sysroots/x86_64-linux/usr/libexec/arm920tt-oe-linux-gnueabi/gcc/arm-oe-linux-gnueabi/4.8.2/as @@ -403,7 +426,6 @@ set_icecc_env() { export CCACHE_PATH="$PATH" export CCACHE_DISABLE="1" - export ICECC_VERSION ICECC_CC ICECC_CXX export PATH="$ICE_PATH:$PATH" bbnote "Using icecc path: $ICE_PATH" diff --git a/Contrib-Inspur/openbmc/poky/meta/classes/image-live.bbclass b/Contrib-Inspur/openbmc/poky/meta/classes/image-live.bbclass index af71be50..54058b35 100644 --- a/Contrib-Inspur/openbmc/poky/meta/classes/image-live.bbclass +++ b/Contrib-Inspur/openbmc/poky/meta/classes/image-live.bbclass @@ -37,7 +37,7 @@ do_bootimg[depends] += "dosfstools-native:do_populate_sysroot \ LABELS_LIVE ?= "boot install" ROOT_LIVE ?= "root=/dev/ram0" INITRD_IMAGE_LIVE ?= "${MLPREFIX}core-image-minimal-initramfs" -INITRD_LIVE ?= "${DEPLOY_DIR_IMAGE}/${INITRD_IMAGE_LIVE}-${MACHINE}.cpio.gz" +INITRD_LIVE ?= "${DEPLOY_DIR_IMAGE}/${INITRD_IMAGE_LIVE}-${MACHINE}.${INITRAMFS_FSTYPES}" LIVE_ROOTFS_TYPE ?= "ext4" ROOTFS ?= "${IMGDEPLOYDIR}/${IMAGE_LINK_NAME}.${LIVE_ROOTFS_TYPE}" diff --git a/Contrib-Inspur/openbmc/poky/meta/classes/image.bbclass b/Contrib-Inspur/openbmc/poky/meta/classes/image.bbclass index d2b2fb97..c2824395 100644 --- a/Contrib-Inspur/openbmc/poky/meta/classes/image.bbclass +++ b/Contrib-Inspur/openbmc/poky/meta/classes/image.bbclass @@ -124,7 +124,7 @@ python () { def rootfs_variables(d): from oe.rootfs import variable_depends variables = ['IMAGE_DEVICE_TABLE','IMAGE_DEVICE_TABLES','BUILD_IMAGES_FROM_FEEDS','IMAGE_TYPES_MASKED','IMAGE_ROOTFS_ALIGNMENT','IMAGE_OVERHEAD_FACTOR','IMAGE_ROOTFS_SIZE','IMAGE_ROOTFS_EXTRA_SPACE', - 'IMAGE_ROOTFS_MAXSIZE','IMAGE_NAME','IMAGE_LINK_NAME','IMAGE_MANIFEST','DEPLOY_DIR_IMAGE','IMAGE_FSTYPES','IMAGE_INSTALL_COMPLEMENTARY','IMAGE_LINGUAS', + 'IMAGE_ROOTFS_MAXSIZE','IMAGE_NAME','IMAGE_LINK_NAME','IMAGE_MANIFEST','DEPLOY_DIR_IMAGE','IMAGE_FSTYPES','IMAGE_INSTALL_COMPLEMENTARY','IMAGE_LINGUAS', 'IMAGE_LINGUAS_COMPLEMENTARY', 'MULTILIBRE_ALLOW_REP','MULTILIB_TEMP_ROOTFS','MULTILIB_VARIANTS','MULTILIBS','ALL_MULTILIB_PACKAGE_ARCHS','MULTILIB_GLOBAL_VARIANTS','BAD_RECOMMENDATIONS','NO_RECOMMENDATIONS', 'PACKAGE_ARCHS','PACKAGE_CLASSES','TARGET_VENDOR','TARGET_ARCH','TARGET_OS','OVERRIDES','BBEXTENDVARIANT','FEED_DEPLOYDIR_BASE_URI','INTERCEPT_DIR','USE_DEVFS', 'CONVERSIONTYPES', 'IMAGE_GEN_DEBUGFS', 'ROOTFS_RO_UNNEEDED', 'IMGDEPLOYDIR', 'PACKAGE_EXCLUDE_COMPLEMENTARY', 'REPRODUCIBLE_TIMESTAMP_ROOTFS', 'IMAGE_INSTALL_DEBUGFS'] @@ -305,11 +305,8 @@ fakeroot python do_image_qa () { bb.build.exec_func(cmd, d) except oe.utils.ImageQAFailed as e: qamsg = qamsg + '\tImage QA function %s failed: %s\n' % (e.name, e.description) - except bb.build.FuncFailed as e: - qamsg = qamsg + '\tImage QA function %s failed' % e.name - if e.logfile: - qamsg = qamsg + ' (log file is located at %s)' % e.logfile - qamsg = qamsg + '\n' + except Exception as e: + qamsg = qamsg + '\tImage QA function %s failed\n' % cmd if qamsg: imgname = d.getVar('IMAGE_NAME') @@ -328,7 +325,8 @@ addtask do_image_qa_setscene def setup_debugfs_variables(d): d.appendVar('IMAGE_ROOTFS', '-dbg') - d.appendVar('IMAGE_LINK_NAME', '-dbg') + if d.getVar('IMAGE_LINK_NAME'): + d.appendVar('IMAGE_LINK_NAME', '-dbg') d.appendVar('IMAGE_NAME','-dbg') d.setVar('IMAGE_BUILDING_DEBUGFS', 'true') debugfs_image_fstypes = d.getVar('IMAGE_FSTYPES_DEBUGFS') @@ -528,7 +526,7 @@ def get_rootfs_size(d): base_size = size_kb * overhead_factor bb.debug(1, '%f = %d * %f' % (base_size, size_kb, overhead_factor)) base_size2 = max(base_size, rootfs_req_size) + rootfs_extra_space - bb.debug(1, '%f = max(%f, %d)[%f] + %d' % (base_size2, base_size, rootfs_req_size, max(base_size, rootfs_req_size), overhead_factor)) + bb.debug(1, '%f = max(%f, %d)[%f] + %d' % (base_size2, base_size, rootfs_req_size, max(base_size, rootfs_req_size), rootfs_extra_space)) base_size = base_size2 if base_size != int(base_size): @@ -666,10 +664,11 @@ reproducible_final_image_task () { } systemd_preset_all () { - systemctl --root="${IMAGE_ROOTFS}" --preset-mode=enable-only preset-all + if [ -e ${IMAGE_ROOTFS}${root_prefix}/lib/systemd/systemd ]; then + systemctl --root="${IMAGE_ROOTFS}" --preset-mode=enable-only preset-all + fi } -IMAGE_EXTRADEPENDS += "${@ 'systemd-systemctl-native' if bb.utils.contains('DISTRO_FEATURES', 'systemd', True, False, d) and not bb.utils.contains('IMAGE_FEATURES', 'stateless-rootfs', True, False, d) else ''}" IMAGE_PREPROCESS_COMMAND_append = " ${@ 'systemd_preset_all;' if bb.utils.contains('DISTRO_FEATURES', 'systemd', True, False, d) and not bb.utils.contains('IMAGE_FEATURES', 'stateless-rootfs', True, False, d) else ''} reproducible_final_image_task; " CVE_PRODUCT = "" diff --git a/Contrib-Inspur/openbmc/poky/meta/classes/image_types.bbclass b/Contrib-Inspur/openbmc/poky/meta/classes/image_types.bbclass index fd98a7d1..2eeffbb3 100644 --- a/Contrib-Inspur/openbmc/poky/meta/classes/image_types.bbclass +++ b/Contrib-Inspur/openbmc/poky/meta/classes/image_types.bbclass @@ -284,7 +284,7 @@ COMPRESSIONTYPES ?= "" CONVERSIONTYPES = "gz bz2 lzma xz lz4 lzo zip sum md5sum sha1sum sha224sum sha256sum sha384sum sha512sum bmap u-boot vmdk vdi qcow2 base64 ${COMPRESSIONTYPES}" CONVERSION_CMD_lzma = "lzma -k -f -7 ${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.${type}" -CONVERSION_CMD_gz = "gzip -f -9 -n -c ${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.${type} > ${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.${type}.gz" +CONVERSION_CMD_gz = "gzip -f -9 -n -c --rsyncable ${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.${type} > ${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.${type}.gz" CONVERSION_CMD_bz2 = "pbzip2 -f -k ${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.${type}" CONVERSION_CMD_xz = "xz -f -k -c ${XZ_COMPRESSION_LEVEL} ${XZ_DEFAULTS} --check=${XZ_INTEGRITY_CHECK} ${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.${type} > ${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.${type}.xz" CONVERSION_CMD_lz4 = "lz4 -9 -z -l ${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.${type} ${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.${type}.lz4" @@ -324,7 +324,7 @@ RUNNABLE_MACHINE_PATTERNS ?= "qemu" DEPLOYABLE_IMAGE_TYPES ?= "hddimg iso" # The IMAGE_TYPES_MASKED variable will be used to mask out from the IMAGE_FSTYPES, -# images that will not be built at do_rootfs time: vmdk, vdi, qcow2, hdddirect, hddimg, iso, etc. +# images that will not be built at do_rootfs time: vmdk, vdi, qcow2, hddimg, iso, etc. IMAGE_TYPES_MASKED ?= "" # bmap requires python3 to be in the PATH diff --git a/Contrib-Inspur/openbmc/poky/meta/classes/image_types_wic.bbclass b/Contrib-Inspur/openbmc/poky/meta/classes/image_types_wic.bbclass index 5b40a9e9..f350dc27 100644 --- a/Contrib-Inspur/openbmc/poky/meta/classes/image_types_wic.bbclass +++ b/Contrib-Inspur/openbmc/poky/meta/classes/image_types_wic.bbclass @@ -3,7 +3,10 @@ WICVARS ?= "\ BBLAYERS IMGDEPLOYDIR DEPLOY_DIR_IMAGE FAKEROOTCMD IMAGE_BASENAME IMAGE_BOOT_FILES \ IMAGE_LINK_NAME IMAGE_ROOTFS INITRAMFS_FSTYPES INITRD INITRD_LIVE ISODIR RECIPE_SYSROOT_NATIVE \ - ROOTFS_SIZE STAGING_DATADIR STAGING_DIR STAGING_LIBDIR TARGET_SYS" + ROOTFS_SIZE STAGING_DATADIR STAGING_DIR STAGING_LIBDIR TARGET_SYS \ + KERNEL_IMAGETYPE MACHINE INITRAMFS_IMAGE INITRAMFS_IMAGE_BUNDLE INITRAMFS_LINK_NAME" + +inherit ${@bb.utils.contains('INITRAMFS_IMAGE_BUNDLE', '1', 'kernel-artifact-names', '', d)} WKS_FILE ??= "${IMAGE_BASENAME}.${MACHINE}.wks" WKS_FILES ?= "${WKS_FILE} ${IMAGE_BASENAME}.wks" @@ -44,7 +47,8 @@ do_image_wic[depends] += "${@' '.join('%s-native:do_populate_sysroot' % r for r # We ensure all artfacts are deployed (e.g virtual/bootloader) do_image_wic[recrdeptask] += "do_deploy" -WKS_FILE_DEPENDS_DEFAULT = "syslinux-native bmap-tools-native cdrtools-native btrfs-tools-native squashfs-tools-native e2fsprogs-native" +WKS_FILE_DEPENDS_DEFAULT = '${@bb.utils.contains_any("BUILD_ARCH", [ 'x86_64', 'i686' ], "syslinux-native", "",d)}' +WKS_FILE_DEPENDS_DEFAULT += "bmap-tools-native cdrtools-native btrfs-tools-native squashfs-tools-native e2fsprogs-native" WKS_FILE_DEPENDS_BOOTLOADERS = "" WKS_FILE_DEPENDS_BOOTLOADERS_x86 = "syslinux grub-efi systemd-boot" WKS_FILE_DEPENDS_BOOTLOADERS_x86-64 = "syslinux grub-efi systemd-boot" @@ -73,6 +77,11 @@ python do_write_wks_template () { wks_file = d.getVar('WKS_FULL_PATH') with open(wks_file, 'w') as f: f.write(template_body) + f.close() + # Copy the finalized wks file to the deploy directory for later use + depdir = d.getVar('IMGDEPLOYDIR') + basename = d.getVar('IMAGE_BASENAME') + bb.utils.copyfile(wks_file, "%s/%s" % (depdir, basename + '-' + os.path.basename(wks_file))) } python () { @@ -101,7 +110,7 @@ python () { # file in process_wks_template as well, so just put it in # a variable and let the metadata deal with the deps. d.setVar('_WKS_TEMPLATE', body) - bb.build.addtask('do_write_wks_template', 'do_image_wic', None, d) + bb.build.addtask('do_write_wks_template', 'do_image_wic', 'do_image', d) bb.build.addtask('do_image_wic', 'do_image_complete', None, d) } @@ -123,6 +132,10 @@ python do_rootfs_wicenv () { value = d.getVar(var) if value: envf.write('%s="%s"\n' % (var, value.strip())) + envf.close() + # Copy .env file to deploy directory for later use with stand alone wic + depdir = d.getVar('IMGDEPLOYDIR') + bb.utils.copyfile(os.path.join(outdir, basename) + '.env', os.path.join(depdir, basename) + '.env') } addtask do_rootfs_wicenv after do_image before do_image_wic do_rootfs_wicenv[vardeps] += "${WICVARS}" diff --git a/Contrib-Inspur/openbmc/poky/meta/classes/insane.bbclass b/Contrib-Inspur/openbmc/poky/meta/classes/insane.bbclass index 0695a044..f856cf6a 100644 --- a/Contrib-Inspur/openbmc/poky/meta/classes/insane.bbclass +++ b/Contrib-Inspur/openbmc/poky/meta/classes/insane.bbclass @@ -34,7 +34,7 @@ ERROR_QA ?= "dev-so debug-deps dev-deps debug-files arch pkgconfig la \ split-strip packages-list pkgv-undefined var-undefined \ version-going-backwards expanded-d invalid-chars \ license-checksum dev-elf file-rdeps configure-unsafe \ - configure-gettext \ + configure-gettext perllocalpod \ " # Add usrmerge QA check based on distro feature ERROR_QA_append = "${@bb.utils.contains('DISTRO_FEATURES', 'usrmerge', ' usrmerge', '', d)}" @@ -340,9 +340,11 @@ def package_qa_textrel(path, name, d, elf, messages): for line in phdrs.split("\n"): if textrel_re.match(line): sane = False + break if not sane: - package_qa_add_message(messages, "textrel", "ELF binary '%s' has relocations in .text" % path) + path = package_qa_clean_path(path, d, name) + package_qa_add_message(messages, "textrel", "%s: ELF binary %s has relocations in .text" % (name, path)) QAPATHTEST[ldflags] = "package_qa_hash_style" def package_qa_hash_style(path, name, d, elf, messages): @@ -722,25 +724,7 @@ def package_qa_check_rdepends(pkg, pkgdest, skip, taskdeps, packages, d): filerdepends[subkey] = key[13:] if filerdepends: - next = rdepends done = rdepends[:] - # Find all the rdepends on the dependency chain - while next: - new = [] - for rdep in next: - rdep_data = oe.packagedata.read_subpkgdata(rdep, d) - sub_rdeps = rdep_data.get("RDEPENDS_" + rdep) - if not sub_rdeps: - continue - for sub_rdep in bb.utils.explode_deps(sub_rdeps): - if sub_rdep in done: - continue - if oe.packagedata.has_subpkgdata(sub_rdep, d): - # It's a new rdep - done.append(sub_rdep) - new.append(sub_rdep) - next = new - # Add the rprovides of itself if pkg not in done: done.insert(0, pkg) @@ -813,6 +797,23 @@ def package_qa_check_usrmerge(pkg, d, messages): return False return True +QAPKGTEST[perllocalpod] = "package_qa_check_perllocalpod" +def package_qa_check_perllocalpod(pkg, d, messages): + """ + Check that the recipe didn't ship a perlocal.pod file, which shouldn't be + installed in a distribution package. cpan.bbclass sets NO_PERLLOCAL=1 to + handle this for most recipes. + """ + import glob + pkgd = oe.path.join(d.getVar('PKGDEST'), pkg) + podpath = oe.path.join(pkgd, d.getVar("libdir"), "perl*", "*", "*", "perllocal.pod") + + matches = glob.glob(podpath) + if matches: + matches = [package_qa_clean_path(path, d, pkg) for path in matches] + msg = "%s contains perllocal.pod (%s), should not be installed" % (pkg, " ".join(matches)) + package_qa_add_message(messages, "perllocalpod", msg) + QAPKGTEST[expanded-d] = "package_qa_check_expanded_d" def package_qa_check_expanded_d(package, d, messages): """ @@ -874,15 +875,14 @@ def package_qa_check_host_user(path, name, d, elf, messages): if exc.errno != errno.ENOENT: raise else: - rootfs_path = path[len(dest):] check_uid = int(d.getVar('HOST_USER_UID')) if stat.st_uid == check_uid: - package_qa_add_message(messages, "host-user-contaminated", "%s: %s is owned by uid %d, which is the same as the user running bitbake. This may be due to host contamination" % (pn, rootfs_path, check_uid)) + package_qa_add_message(messages, "host-user-contaminated", "%s: %s is owned by uid %d, which is the same as the user running bitbake. This may be due to host contamination" % (pn, package_qa_clean_path(path, d, name), check_uid)) return False check_gid = int(d.getVar('HOST_USER_GID')) if stat.st_gid == check_gid: - package_qa_add_message(messages, "host-user-contaminated", "%s: %s is owned by gid %d, which is the same as the user running bitbake. This may be due to host contamination" % (pn, rootfs_path, check_gid)) + package_qa_add_message(messages, "host-user-contaminated", "%s: %s is owned by gid %d, which is the same as the user running bitbake. This may be due to host contamination" % (pn, package_qa_clean_path(path, d, name), check_gid)) return False return True @@ -1238,6 +1238,11 @@ python () { if prog.search(pn): package_qa_handle_error("uppercase-pn", 'PN: %s is upper case, this can result in unexpected behavior.' % pn, d) + # Some people mistakenly use DEPENDS_${PN} instead of DEPENDS and wonder + # why it doesn't work. + if (d.getVar(d.expand('DEPENDS_${PN}'))): + package_qa_handle_error("pkgvarcheck", "recipe uses DEPENDS_${PN}, should use DEPENDS", d) + issues = [] if (d.getVar('PACKAGES') or "").split(): for dep in (d.getVar('QADEPENDS') or "").split(): diff --git a/Contrib-Inspur/openbmc/poky/meta/classes/kernel-devicetree.bbclass b/Contrib-Inspur/openbmc/poky/meta/classes/kernel-devicetree.bbclass index 867b776a..522c4657 100644 --- a/Contrib-Inspur/openbmc/poky/meta/classes/kernel-devicetree.bbclass +++ b/Contrib-Inspur/openbmc/poky/meta/classes/kernel-devicetree.bbclass @@ -71,23 +71,23 @@ do_deploy_append() { dtb=`normalize_dtb "$dtbf"` dtb_ext=${dtb##*.} dtb_base_name=`basename $dtb .$dtb_ext` - install -d ${DEPLOYDIR} - install -m 0644 ${D}/${KERNEL_IMAGEDEST}/$dtb_base_name.$dtb_ext ${DEPLOYDIR}/$dtb_base_name-${KERNEL_DTB_NAME}.$dtb_ext - ln -sf $dtb_base_name-${KERNEL_DTB_NAME}.$dtb_ext ${DEPLOYDIR}/$dtb_base_name.$dtb_ext - ln -sf $dtb_base_name-${KERNEL_DTB_NAME}.$dtb_ext ${DEPLOYDIR}/$dtb_base_name-${KERNEL_DTB_LINK_NAME}.$dtb_ext + install -d $deployDir + install -m 0644 ${D}/${KERNEL_IMAGEDEST}/$dtb_base_name.$dtb_ext $deployDir/$dtb_base_name-${KERNEL_DTB_NAME}.$dtb_ext + ln -sf $dtb_base_name-${KERNEL_DTB_NAME}.$dtb_ext $deployDir/$dtb_base_name.$dtb_ext + ln -sf $dtb_base_name-${KERNEL_DTB_NAME}.$dtb_ext $deployDir/$dtb_base_name-${KERNEL_DTB_LINK_NAME}.$dtb_ext for type in ${KERNEL_IMAGETYPE_FOR_MAKE}; do if [ "$type" = "zImage" ] && [ "${KERNEL_DEVICETREE_BUNDLE}" = "1" ]; then cat ${D}/${KERNEL_IMAGEDEST}/$type \ - ${DEPLOYDIR}/$dtb_base_name-${KERNEL_DTB_NAME}.$dtb_ext \ - > ${DEPLOYDIR}/$type-$dtb_base_name-${KERNEL_DTB_NAME}.$dtb_ext.bin + $deployDir/$dtb_base_name-${KERNEL_DTB_NAME}.$dtb_ext \ + > $deployDir/$type-$dtb_base_name-${KERNEL_DTB_NAME}.$dtb_ext.bin ln -sf $type-$dtb_base_name-${KERNEL_DTB_NAME}.$dtb_ext.bin \ - ${DEPLOYDIR}/$type-$dtb_base_name-${KERNEL_DTB_LINK_NAME}.$dtb_ext.bin + $deployDir/$type-$dtb_base_name-${KERNEL_DTB_LINK_NAME}.$dtb_ext.bin if [ -e "${KERNEL_OUTPUT_DIR}/${type}.initramfs" ]; then cat ${KERNEL_OUTPUT_DIR}/${type}.initramfs \ - ${DEPLOYDIR}/$dtb_base_name-${KERNEL_DTB_NAME}.$dtb_ext - > ${DEPLOYDIR}/${type}-${INITRAMFS_NAME}-$dtb_base_name-${KERNEL_DTB_NAME}.$dtb_ext.bin + $deployDir/$dtb_base_name-${KERNEL_DTB_NAME}.$dtb_ext \ + > $deployDir/${type}-${INITRAMFS_NAME}-$dtb_base_name-${KERNEL_DTB_NAME}.$dtb_ext.bin ln -sf ${type}-${INITRAMFS_NAME}-$dtb_base_name-${KERNEL_DTB_NAME}.$dtb_ext.bin \ - ${DEPLOYDIR}/${type}-${INITRAMFS_NAME}-$dtb_base_name-${KERNEL_DTB_LINK_NAME}.$dtb_ext.bin + $deployDir/${type}-${INITRAMFS_NAME}-$dtb_base_name-${KERNEL_DTB_LINK_NAME}.$dtb_ext.bin fi fi done diff --git a/Contrib-Inspur/openbmc/poky/meta/classes/kernel-fitimage.bbclass b/Contrib-Inspur/openbmc/poky/meta/classes/kernel-fitimage.bbclass index b51882dc..ec18a3d6 100644 --- a/Contrib-Inspur/openbmc/poky/meta/classes/kernel-fitimage.bbclass +++ b/Contrib-Inspur/openbmc/poky/meta/classes/kernel-fitimage.bbclass @@ -53,6 +53,9 @@ UBOOT_MKIMAGE_DTCOPTS ??= "" # fitImage Hash Algo FIT_HASH_ALG ?= "sha256" +# fitImage Signature Algo +FIT_SIGN_ALG ?= "rsa2048" + # # Emit the fitImage ITS header # @@ -207,7 +210,6 @@ EOF fitimage_emit_section_ramdisk() { ramdisk_csum="${FIT_HASH_ALG}" - ramdisk_ctype="none" ramdisk_loadline="" ramdisk_entryline="" @@ -218,24 +220,6 @@ fitimage_emit_section_ramdisk() { ramdisk_entryline="entry = <${UBOOT_RD_ENTRYPOINT}>;" fi - case $3 in - *.gz) - ramdisk_ctype="gzip" - ;; - *.bz2) - ramdisk_ctype="bzip2" - ;; - *.lzma) - ramdisk_ctype="lzma" - ;; - *.lzo) - ramdisk_ctype="lzo" - ;; - *.lz4) - ramdisk_ctype="lz4" - ;; - esac - cat << EOF >> ${1} ramdisk@${2} { description = "${INITRAMFS_IMAGE}"; @@ -243,7 +227,7 @@ fitimage_emit_section_ramdisk() { type = "ramdisk"; arch = "${UBOOT_ARCH}"; os = "linux"; - compression = "${ramdisk_ctype}"; + compression = "none"; ${ramdisk_loadline} ${ramdisk_entryline} hash@1 { @@ -265,6 +249,7 @@ EOF fitimage_emit_section_config() { conf_csum="${FIT_HASH_ALG}" + conf_sign_algo="${FIT_SIGN_ALG}" if [ -n "${UBOOT_SIGN_ENABLE}" ] ; then conf_sign_keyname="${UBOOT_SIGN_KEYNAME}" fi @@ -346,7 +331,7 @@ EOF cat << EOF >> ${1} signature@1 { - algo = "${conf_csum},rsa2048"; + algo = "${conf_csum},${conf_sign_algo}"; key-name-hint = "${conf_sign_keyname}"; ${sign_line} }; @@ -519,27 +504,27 @@ kernel_do_deploy_append() { # Update deploy directory if echo ${KERNEL_IMAGETYPES} | grep -wq "fitImage"; then echo "Copying fit-image.its source file..." - install -m 0644 ${B}/fit-image.its ${DEPLOYDIR}/fitImage-its-${KERNEL_FIT_NAME}.its - ln -snf fitImage-its-${KERNEL_FIT_NAME}.its ${DEPLOYDIR}/fitImage-its-${KERNEL_FIT_LINK_NAME} + install -m 0644 ${B}/fit-image.its "$deployDir/fitImage-its-${KERNEL_FIT_NAME}.its" + ln -snf fitImage-its-${KERNEL_FIT_NAME}.its "$deployDir/fitImage-its-${KERNEL_FIT_LINK_NAME}" echo "Copying linux.bin file..." - install -m 0644 ${B}/linux.bin ${DEPLOYDIR}/fitImage-linux.bin-${KERNEL_FIT_NAME}.bin - ln -snf fitImage-linux.bin-${KERNEL_FIT_NAME}.bin ${DEPLOYDIR}/fitImage-linux.bin-${KERNEL_FIT_LINK_NAME} + install -m 0644 ${B}/linux.bin $deployDir/fitImage-linux.bin-${KERNEL_FIT_NAME}.bin + ln -snf fitImage-linux.bin-${KERNEL_FIT_NAME}.bin "$deployDir/fitImage-linux.bin-${KERNEL_FIT_LINK_NAME}" if [ -n "${INITRAMFS_IMAGE}" ]; then echo "Copying fit-image-${INITRAMFS_IMAGE}.its source file..." - install -m 0644 ${B}/fit-image-${INITRAMFS_IMAGE}.its ${DEPLOYDIR}/fitImage-its-${INITRAMFS_IMAGE_NAME}-${KERNEL_FIT_NAME}.its - ln -snf fitImage-its-${INITRAMFS_IMAGE_NAME}-${KERNEL_FIT_NAME}.its ${DEPLOYDIR}/fitImage-its-${INITRAMFS_IMAGE_NAME}-${KERNEL_FIT_LINK_NAME} + install -m 0644 ${B}/fit-image-${INITRAMFS_IMAGE}.its "$deployDir/fitImage-its-${INITRAMFS_IMAGE_NAME}-${KERNEL_FIT_NAME}.its" + ln -snf fitImage-its-${INITRAMFS_IMAGE_NAME}-${KERNEL_FIT_NAME}.its "$deployDir/fitImage-its-${INITRAMFS_IMAGE_NAME}-${KERNEL_FIT_LINK_NAME}" echo "Copying fitImage-${INITRAMFS_IMAGE} file..." - install -m 0644 ${B}/arch/${ARCH}/boot/fitImage-${INITRAMFS_IMAGE} ${DEPLOYDIR}/fitImage-${INITRAMFS_IMAGE_NAME}-${KERNEL_FIT_NAME}.bin - ln -snf fitImage-${INITRAMFS_IMAGE_NAME}-${KERNEL_FIT_NAME}.bin ${DEPLOYDIR}/fitImage-${INITRAMFS_IMAGE_NAME}-${KERNEL_FIT_LINK_NAME} + install -m 0644 ${B}/arch/${ARCH}/boot/fitImage-${INITRAMFS_IMAGE} "$deployDir/fitImage-${INITRAMFS_IMAGE_NAME}-${KERNEL_FIT_NAME}.bin" + ln -snf fitImage-${INITRAMFS_IMAGE_NAME}-${KERNEL_FIT_NAME}.bin "$deployDir/fitImage-${INITRAMFS_IMAGE_NAME}-${KERNEL_FIT_LINK_NAME}" fi if [ "${UBOOT_SIGN_ENABLE}" = "1" -a -n "${UBOOT_DTB_BINARY}" ] ; then # UBOOT_DTB_IMAGE is a realfile, but we can't use # ${UBOOT_DTB_IMAGE} since it contains ${PV} which is aimed # for u-boot, but we are in kernel env now. - install -m 0644 ${B}/u-boot-${MACHINE}*.dtb ${DEPLOYDIR}/ + install -m 0644 ${B}/u-boot-${MACHINE}*.dtb "$deployDir/" fi fi } diff --git a/Contrib-Inspur/openbmc/poky/meta/classes/kernel-uboot.bbclass b/Contrib-Inspur/openbmc/poky/meta/classes/kernel-uboot.bbclass index 0457c5d1..87f02654 100644 --- a/Contrib-Inspur/openbmc/poky/meta/classes/kernel-uboot.bbclass +++ b/Contrib-Inspur/openbmc/poky/meta/classes/kernel-uboot.bbclass @@ -3,10 +3,6 @@ uboot_prep_kimage() { vmlinux_path="arch/${ARCH}/boot/compressed/vmlinux" linux_suffix="" linux_comp="none" - elif [ -e arch/${ARCH}/boot/Image ] ; then - vmlinux_path="vmlinux" - linux_suffix=".gz" - linux_comp="gzip" elif [ -e arch/${ARCH}/boot/vmlinuz.bin ]; then rm -f linux.bin cp -l arch/${ARCH}/boot/vmlinuz.bin linux.bin diff --git a/Contrib-Inspur/openbmc/poky/meta/classes/kernel.bbclass b/Contrib-Inspur/openbmc/poky/meta/classes/kernel.bbclass index a60e15b5..ebcb79a5 100644 --- a/Contrib-Inspur/openbmc/poky/meta/classes/kernel.bbclass +++ b/Contrib-Inspur/openbmc/poky/meta/classes/kernel.bbclass @@ -96,8 +96,10 @@ python __anonymous () { d.setVar('ALLOW_EMPTY_%s-image-%s' % (kname, typelower), '1') image = d.getVar('INITRAMFS_IMAGE') - image_bundle = d.getVar('INITRAMFS_IMAGE_BUNDLE') - if image and bb.utils.to_boolean(image_bundle, False): + # If the INTIRAMFS_IMAGE is set but the INITRAMFS_IMAGE_BUNDLE is set to 0, + # the do_bundle_initramfs does nothing, but the INITRAMFS_IMAGE is built + # standalone for use by wic and other tools. + if image: d.appendVarFlag('do_bundle_initramfs', 'depends', ' ${INITRAMFS_IMAGE}:do_image_complete') # NOTE: setting INITRAMFS_TASK is for backward compatibility @@ -454,7 +456,7 @@ do_shared_workdir () { cp .config $kerneldir/ mkdir -p $kerneldir/include/config cp include/config/kernel.release $kerneldir/include/config/kernel.release - if [ -e certs/signing_key.pem ]; then + if [ -e certs/signing_key.x509 ]; then # The signing_key.* files are stored in the certs/ dir in # newer Linux kernels mkdir -p $kerneldir/certs diff --git a/Contrib-Inspur/openbmc/poky/meta/classes/libc-package.bbclass b/Contrib-Inspur/openbmc/poky/meta/classes/libc-package.bbclass index 8859dad5..de816bce 100644 --- a/Contrib-Inspur/openbmc/poky/meta/classes/libc-package.bbclass +++ b/Contrib-Inspur/openbmc/poky/meta/classes/libc-package.bbclass @@ -82,6 +82,9 @@ do_collect_bins_from_locale_tree() { parent=$(dirname ${localedir}) mkdir -p ${PKGD}/$parent tar -cf - -C $treedir/$parent -p $(basename ${localedir}) | tar -xf - -C ${PKGD}$parent + + # Finalize tree by chaning all duplicate files into hard links + cross-localedef-hardlink -c -v ${WORKDIR}/locale-tree } inherit qemu @@ -265,7 +268,7 @@ python package_do_split_gconvs () { bb.error("locale_arch_options not found for target_arch=" + target_arch) bb.fatal("unknown arch:" + target_arch + " for locale_arch_options") - localedef_opts += " --force --no-archive --prefix=%s \ + localedef_opts += " --force --no-hard-links --no-archive --prefix=%s \ --inputfile=%s/%s/i18n/locales/%s --charmap=%s %s/%s" \ % (treedir, treedir, datadir, locale, encoding, outputpath, name) @@ -273,7 +276,7 @@ python package_do_split_gconvs () { (path, i18npath, gconvpath, localedef_opts) else: # earlier slower qemu way qemu = qemu_target_binary(d) - localedef_opts = "--force --no-archive --prefix=%s \ + localedef_opts = "--force --no-hard-links --no-archive --prefix=%s \ --inputfile=%s/i18n/locales/%s --charmap=%s %s" \ % (treedir, datadir, locale, encoding, name) @@ -343,14 +346,13 @@ python package_do_split_gconvs () { if use_bin == "compile": makefile = oe.path.join(d.getVar("WORKDIR"), "locale-tree", "Makefile") - m = open(makefile, "w") - m.write("all: %s\n\n" % " ".join(commands.keys())) - total = len(commands) - for i, cmd in enumerate(commands): - m.write(cmd + ":\n") - m.write("\t@echo 'Progress %d/%d'\n" % (i, total)) - m.write("\t" + commands[cmd] + "\n\n") - m.close() + with open(makefile, "w") as m: + m.write("all: %s\n\n" % " ".join(commands.keys())) + total = len(commands) + for i, (maketarget, makerecipe) in enumerate(commands.items()): + m.write(maketarget + ":\n") + m.write("\t@echo 'Progress %d/%d'\n" % (i, total)) + m.write("\t" + makerecipe + "\n\n") d.setVar("EXTRA_OEMAKE", "-C %s ${PARALLEL_MAKE}" % (os.path.dirname(makefile))) d.setVarFlag("oe_runmake", "progress", "outof:Progress\s(\d+)/(\d+)") bb.note("Executing binary locale generation makefile") diff --git a/Contrib-Inspur/openbmc/poky/meta/classes/license.bbclass b/Contrib-Inspur/openbmc/poky/meta/classes/license.bbclass index adca881c..648a4d78 100644 --- a/Contrib-Inspur/openbmc/poky/meta/classes/license.bbclass +++ b/Contrib-Inspur/openbmc/poky/meta/classes/license.bbclass @@ -287,17 +287,7 @@ def incompatible_license_contains(license, truevalue, falsevalue, d): bad_licenses = expand_wildcard_licenses(d, bad_licenses) return truevalue if license in bad_licenses else falsevalue -def incompatible_license(d, dont_want_licenses, package=None): - """ - This function checks if a recipe has only incompatible licenses. It also - take into consideration 'or' operand. dont_want_licenses should be passed - as canonical (SPDX) names. - """ - import oe.license - license = d.getVar("LICENSE_%s" % package) if package else None - if not license: - license = d.getVar('LICENSE') - +def incompatible_pkg_license(d, dont_want_licenses, license): # Handles an "or" or two license sets provided by # flattened_licenses(), pick one that works if possible. def choose_lic_set(a, b): @@ -311,6 +301,19 @@ def incompatible_license(d, dont_want_licenses, package=None): return any(not oe.license.license_ok(canonical_license(d, l), \ dont_want_licenses) for l in licenses) +def incompatible_license(d, dont_want_licenses, package=None): + """ + This function checks if a recipe has only incompatible licenses. It also + take into consideration 'or' operand. dont_want_licenses should be passed + as canonical (SPDX) names. + """ + import oe.license + license = d.getVar("LICENSE_%s" % package) if package else None + if not license: + license = d.getVar('LICENSE') + + return incompatible_pkg_license(d, dont_want_licenses, license) + def check_license_flags(d): """ This function checks if a recipe has any LICENSE_FLAGS that diff --git a/Contrib-Inspur/openbmc/poky/meta/classes/license_image.bbclass b/Contrib-Inspur/openbmc/poky/meta/classes/license_image.bbclass index 2cfda81c..b5399b6d 100644 --- a/Contrib-Inspur/openbmc/poky/meta/classes/license_image.bbclass +++ b/Contrib-Inspur/openbmc/poky/meta/classes/license_image.bbclass @@ -43,10 +43,16 @@ def write_license_files(d, license_manifest, pkg_dic, rootfs=True): bad_licenses = [canonical_license(d, l) for l in bad_licenses] bad_licenses = expand_wildcard_licenses(d, bad_licenses) + whitelist = [] + for lic in bad_licenses: + whitelist.extend((d.getVar("WHITELIST_" + lic) or "").split()) + with open(license_manifest, "w") as license_file: for pkg in sorted(pkg_dic): - if bad_licenses: + if bad_licenses and pkg not in whitelist: try: + if incompatible_pkg_license(d, bad_licenses, pkg_dic[pkg]["LICENSE"]): + bb.fatal("Package %s has an incompatible license %s and cannot be installed into the image." %(pkg, pkg_dic[pkg]["LICENSE"])) (pkg_dic[pkg]["LICENSE"], pkg_dic[pkg]["LICENSES"]) = \ oe.license.manifest_licenses(pkg_dic[pkg]["LICENSE"], bad_licenses, canonical_license, d) @@ -56,6 +62,8 @@ def write_license_files(d, license_manifest, pkg_dic, rootfs=True): pkg_dic[pkg]["LICENSES"] = re.sub(r'[|&()*]', ' ', pkg_dic[pkg]["LICENSE"]) pkg_dic[pkg]["LICENSES"] = re.sub(r' *', ' ', pkg_dic[pkg]["LICENSES"]) pkg_dic[pkg]["LICENSES"] = pkg_dic[pkg]["LICENSES"].split() + if pkg in whitelist: + bb.warn("Including %s with an incompatible license %s into the image, because it has been whitelisted." %(pkg, pkg_dic[pkg]["LICENSE"])) if not "IMAGE_MANIFEST" in pkg_dic[pkg]: # Rootfs manifest @@ -198,10 +206,6 @@ def get_deployed_dependencies(d): deploy = {} # Get all the dependencies for the current task (rootfs). - # Also get EXTRA_IMAGEDEPENDS because the bootloader is - # usually in this var and not listed in rootfs. - # At last, get the dependencies from boot classes because - # it might contain the bootloader. taskdata = d.getVar("BB_TASKDEPDATA", False) depends = list(set([dep[0] for dep in list(taskdata.values()) diff --git a/Contrib-Inspur/openbmc/poky/meta/classes/linuxloader.bbclass b/Contrib-Inspur/openbmc/poky/meta/classes/linuxloader.bbclass index b4c41349..c0fbf268 100644 --- a/Contrib-Inspur/openbmc/poky/meta/classes/linuxloader.bbclass +++ b/Contrib-Inspur/openbmc/poky/meta/classes/linuxloader.bbclass @@ -19,6 +19,8 @@ def get_musl_loader(d): dynamic_loader = "${base_libdir}/ld-musl-arm${ARMPKGSFX_ENDIAN}${ARMPKGSFX_EABI}.so.1" elif targetarch.startswith("aarch64"): dynamic_loader = "${base_libdir}/ld-musl-aarch64${ARMPKGSFX_ENDIAN_64}.so.1" + elif targetarch.startswith("riscv64"): + dynamic_loader = "${base_libdir}/ld-musl-riscv64${@['', '-sf'][d.getVar('TARGET_FPU') == 'soft']}.so.1" return dynamic_loader def get_glibc_loader(d): @@ -42,6 +44,8 @@ def get_glibc_loader(d): dynamic_loader = "${base_libdir}/ld-linux.so.3" elif targetarch.startswith("aarch64"): dynamic_loader = "${base_libdir}/ld-linux-aarch64${ARMPKGSFX_ENDIAN_64}.so.1" + elif targetarch.startswith("riscv64"): + dynamic_loader = "${base_libdir}/ld-linux-riscv64-lp64${@['d', ''][d.getVar('TARGET_FPU') == 'soft']}.so.1" return dynamic_loader def get_linuxloader(d): diff --git a/Contrib-Inspur/openbmc/poky/meta/classes/live-vm-common.bbclass b/Contrib-Inspur/openbmc/poky/meta/classes/live-vm-common.bbclass index 68105d9b..74e7074a 100644 --- a/Contrib-Inspur/openbmc/poky/meta/classes/live-vm-common.bbclass +++ b/Contrib-Inspur/openbmc/poky/meta/classes/live-vm-common.bbclass @@ -29,6 +29,39 @@ def pcbios(d): PCBIOS = "${@pcbios(d)}" PCBIOS_CLASS = "${@['','syslinux'][d.getVar('PCBIOS') == '1']}" +# efi_populate_common DEST BOOTLOADER +efi_populate_common() { + # DEST must be the root of the image so that EFIDIR is not + # nested under a top level directory. + DEST=$1 + + install -d ${DEST}${EFIDIR} + + install -m 0644 ${DEPLOY_DIR_IMAGE}/$2-${EFI_BOOT_IMAGE} ${DEST}${EFIDIR}/${EFI_BOOT_IMAGE} + EFIPATH=$(echo "${EFIDIR}" | sed 's/\//\\/g') + printf 'fs0:%s\%s\n' "$EFIPATH" "${EFI_BOOT_IMAGE}" >${DEST}/startup.nsh +} + +efi_iso_populate() { + iso_dir=$1 + efi_populate $iso_dir + # Build a EFI directory to create efi.img + mkdir -p ${EFIIMGDIR}/${EFIDIR} + cp $iso_dir/${EFIDIR}/* ${EFIIMGDIR}${EFIDIR} + cp $iso_dir/${KERNEL_IMAGETYPE} ${EFIIMGDIR} + + EFIPATH=$(echo "${EFIDIR}" | sed 's/\//\\/g') + printf 'fs0:%s\%s\n' "$EFIPATH" "${EFI_BOOT_IMAGE}" >${EFIIMGDIR}/startup.nsh + + if [ -f "$iso_dir/initrd" ] ; then + cp $iso_dir/initrd ${EFIIMGDIR} + fi +} + +efi_hddimg_populate() { + efi_populate $1 +} + inherit ${EFI_CLASS} inherit ${PCBIOS_CLASS} diff --git a/Contrib-Inspur/openbmc/poky/meta/classes/meson.bbclass b/Contrib-Inspur/openbmc/poky/meta/classes/meson.bbclass index 0edbfc18..efa62340 100644 --- a/Contrib-Inspur/openbmc/poky/meta/classes/meson.bbclass +++ b/Contrib-Inspur/openbmc/poky/meta/classes/meson.bbclass @@ -24,16 +24,7 @@ MESONOPTS = " --prefix ${prefix} \ --infodir ${@noprefix('infodir', d)} \ --sysconfdir ${sysconfdir} \ --localstatedir ${localstatedir} \ - --sharedstatedir ${sharedstatedir} \ - -Dc_args='${BUILD_CPPFLAGS} ${BUILD_CFLAGS}' \ - -Dc_link_args='${BUILD_LDFLAGS}' \ - -Dcpp_args='${BUILD_CPPFLAGS} ${BUILD_CXXFLAGS}' \ - -Dcpp_link_args='${BUILD_LDFLAGS}'" - -MESON_TOOLCHAIN_ARGS = "${HOST_CC_ARCH}${TOOLCHAIN_OPTIONS}" -MESON_C_ARGS = "${MESON_TOOLCHAIN_ARGS} ${CFLAGS}" -MESON_CPP_ARGS = "${MESON_TOOLCHAIN_ARGS} ${CXXFLAGS}" -MESON_LINK_ARGS = "${MESON_TOOLCHAIN_ARGS} ${LDFLAGS}" + --sharedstatedir ${sharedstatedir} " EXTRA_OEMESON_append = " ${PACKAGECONFIG_CONFARGS}" @@ -64,6 +55,8 @@ def meson_cpu_family(var, d): return 'mips64' elif re.match(r"i[3-6]86", arch): return "x86" + elif arch == "microblazeel" or arch == "microblazeeb": + return "microblaze" else: return arch @@ -78,7 +71,7 @@ def meson_endian(prefix, d): bb.fatal("Cannot determine endianism for %s-%s" % (arch, os)) addtask write_config before do_configure -do_write_config[vardeps] += "MESON_C_ARGS MESON_CPP_ARGS MESON_LINK_ARGS CC CXX LD AR NM STRIP READELF" +do_write_config[vardeps] += "CC CXX LD AR NM STRIP READELF CFLAGS CXXFLAGS LDFLAGS" do_write_config() { # This needs to be Py to split the args into single-element lists cat >${WORKDIR}/meson.cross < 0: msg = "%s package %s - suspicious values '%s' in %s" \ diff --git a/Contrib-Inspur/openbmc/poky/meta/classes/multilib_global.bbclass b/Contrib-Inspur/openbmc/poky/meta/classes/multilib_global.bbclass index 19ce1a50..98f65c8a 100644 --- a/Contrib-Inspur/openbmc/poky/meta/classes/multilib_global.bbclass +++ b/Contrib-Inspur/openbmc/poky/meta/classes/multilib_global.bbclass @@ -172,21 +172,27 @@ python multilib_virtclass_handler_global () { if bb.data.inherits_class('kernel', e.data) or \ bb.data.inherits_class('module-base', e.data) or \ d.getVar('BPN') in non_ml_recipes: + + # We need to avoid expanding KERNEL_VERSION which we can do by deleting it + # from a copy of the datastore + localdata = bb.data.createCopy(d) + localdata.delVar("KERNEL_VERSION") + variants = (e.data.getVar("MULTILIB_VARIANTS") or "").split() import oe.classextend clsextends = [] for variant in variants: - clsextends.append(oe.classextend.ClassExtender(variant, e.data)) + clsextends.append(oe.classextend.ClassExtender(variant, localdata)) # Process PROVIDES - origprovs = provs = e.data.getVar("PROVIDES") or "" + origprovs = provs = localdata.getVar("PROVIDES") or "" for clsextend in clsextends: provs = provs + " " + clsextend.map_variable("PROVIDES", setvar=False) e.data.setVar("PROVIDES", provs) # Process RPROVIDES - origrprovs = rprovs = e.data.getVar("RPROVIDES") or "" + origrprovs = rprovs = localdata.getVar("RPROVIDES") or "" for clsextend in clsextends: rprovs = rprovs + " " + clsextend.map_variable("RPROVIDES", setvar=False) if rprovs.strip(): @@ -194,7 +200,7 @@ python multilib_virtclass_handler_global () { # Process RPROVIDES_${PN}... for pkg in (e.data.getVar("PACKAGES") or "").split(): - origrprovs = rprovs = e.data.getVar("RPROVIDES_%s" % pkg) or "" + origrprovs = rprovs = localdata.getVar("RPROVIDES_%s" % pkg) or "" for clsextend in clsextends: rprovs = rprovs + " " + clsextend.map_variable("RPROVIDES_%s" % pkg, setvar=False) rprovs = rprovs + " " + clsextend.extname + "-" + pkg @@ -202,5 +208,4 @@ python multilib_virtclass_handler_global () { } addhandler multilib_virtclass_handler_global -multilib_virtclass_handler_global[eventmask] = "bb.event.RecipeParsed" - +multilib_virtclass_handler_global[eventmask] = "bb.event.RecipeTaskPreProcess" diff --git a/Contrib-Inspur/openbmc/poky/meta/classes/multilib_script.bbclass b/Contrib-Inspur/openbmc/poky/meta/classes/multilib_script.bbclass index dc166d06..b11efc1e 100644 --- a/Contrib-Inspur/openbmc/poky/meta/classes/multilib_script.bbclass +++ b/Contrib-Inspur/openbmc/poky/meta/classes/multilib_script.bbclass @@ -17,18 +17,18 @@ multilibscript_rename() { python () { # Do nothing if multilib isn't being used if not d.getVar("MULTILIB_VARIANTS"): - return + return # Do nothing for native/cross if bb.data.inherits_class('native', d) or bb.data.inherits_class('cross', d): - return + return for entry in (d.getVar("MULTILIB_SCRIPTS", False) or "").split(): - pkg, script = entry.split(":") - epkg = d.expand(pkg) - scriptname = os.path.basename(script) - d.appendVar("ALTERNATIVE_" + epkg, " " + scriptname + " ") - d.setVarFlag("ALTERNATIVE_LINK_NAME", scriptname, script) - d.setVarFlag("ALTERNATIVE_TARGET", scriptname, script + "-${MULTILIB_SUFFIX}") - d.appendVar("multilibscript_rename", "\n mv ${PKGD}" + script + " ${PKGD}" + script + "-${MULTILIB_SUFFIX}") - d.appendVar("FILES_" + epkg, " " + script + "-${MULTILIB_SUFFIX}") + pkg, script = entry.split(":") + epkg = d.expand(pkg) + scriptname = os.path.basename(script) + d.appendVar("ALTERNATIVE_" + epkg, " " + scriptname + " ") + d.setVarFlag("ALTERNATIVE_LINK_NAME", scriptname, script) + d.setVarFlag("ALTERNATIVE_TARGET", scriptname, script + "-${MULTILIB_SUFFIX}") + d.appendVar("multilibscript_rename", "\n mv ${PKGD}" + script + " ${PKGD}" + script + "-${MULTILIB_SUFFIX}") + d.appendVar("FILES_" + epkg, " " + script + "-${MULTILIB_SUFFIX}") } diff --git a/Contrib-Inspur/openbmc/poky/meta/classes/nativesdk.bbclass b/Contrib-Inspur/openbmc/poky/meta/classes/nativesdk.bbclass index f25b0c31..03135ace 100644 --- a/Contrib-Inspur/openbmc/poky/meta/classes/nativesdk.bbclass +++ b/Contrib-Inspur/openbmc/poky/meta/classes/nativesdk.bbclass @@ -100,6 +100,8 @@ python () { clsextend.map_packagevars() clsextend.map_variable("PROVIDES") clsextend.map_regexp_variable("PACKAGES_DYNAMIC") + d.setVar("LIBCEXTENSION", "") + d.setVar("ABIEXTENSION", "") } addhandler nativesdk_virtclass_handler diff --git a/Contrib-Inspur/openbmc/poky/meta/classes/package.bbclass b/Contrib-Inspur/openbmc/poky/meta/classes/package.bbclass index 20d72bba..e0d6ff67 100644 --- a/Contrib-Inspur/openbmc/poky/meta/classes/package.bbclass +++ b/Contrib-Inspur/openbmc/poky/meta/classes/package.bbclass @@ -40,6 +40,7 @@ inherit packagedata inherit chrpath +inherit package_pkgdata # Need the package_qa_handle_error() in insane.bbclass inherit insane @@ -825,8 +826,9 @@ python fixup_perms () { # Now we actually load from the configuration files for conf in get_fs_perms_list(d).split(): - if os.path.exists(conf): - f = open(conf) + if not os.path.exists(conf): + continue + with open(conf) as f: for line in f: if line.startswith('#'): continue @@ -847,7 +849,6 @@ python fixup_perms () { fs_perms_table[entry.path] = entry if entry.path in fs_link_table: fs_link_table.pop(entry.path) - f.close() # Debug -- list out in-memory table #for dir in fs_perms_table: @@ -1216,7 +1217,8 @@ python populate_packages () { src = os.path.join(src, p) dest = os.path.join(dest, p) fstat = cpath.stat(src) - os.mkdir(dest, fstat.st_mode) + os.mkdir(dest) + os.chmod(dest, fstat.st_mode) os.chown(dest, fstat.st_uid, fstat.st_gid) if p not in seen: seen.append(p) @@ -1356,12 +1358,16 @@ python emit_pkgdata() { import json def process_postinst_on_target(pkg, mlprefix): + pkgval = d.getVar('PKG_%s' % pkg) + if pkgval is None: + pkgval = pkg + defer_fragment = """ if [ -n "$D" ]; then $INTERCEPT_DIR/postinst_intercept delay_to_first_boot %s mlprefix=%s exit 0 fi -""" % (pkg, mlprefix) +""" % (pkgval, mlprefix) postinst = d.getVar('pkg_postinst_%s' % pkg) postinst_ontarget = d.getVar('pkg_postinst_ontarget_%s' % pkg) @@ -1418,10 +1424,9 @@ fi pkgdest = d.getVar('PKGDEST') pkgdatadir = d.getVar('PKGDESTWORK') - data_file = pkgdatadir + d.expand("/${PN}" ) - f = open(data_file, 'w') - f.write("PACKAGES: %s\n" % packages) - f.close() + data_file = pkgdatadir + d.expand("/${PN}") + with open(data_file, 'w') as fd: + fd.write("PACKAGES: %s\n" % packages) pn = d.getVar('PN') global_variants = (d.getVar('MULTILIB_GLOBAL_VARIANTS') or "").split() @@ -1570,10 +1575,11 @@ python package_do_filedeps() { d.setVar("FILERPROVIDESFLIST_" + pkg, " ".join(provides_files[pkg])) } -SHLIBSDIRS = "${PKGDATA_DIR}/${MLPREFIX}shlibs2" +SHLIBSDIRS = "${WORKDIR_PKGDATA}/${MLPREFIX}shlibs2" SHLIBSWORKDIR = "${PKGDESTWORK}/${MLPREFIX}shlibs2" python package_do_shlibs() { + import itertools import re, pipes import subprocess @@ -1640,7 +1646,8 @@ python package_do_shlibs() { prov = (this_soname, ldir, pkgver) if not prov in sonames: # if library is private (only used by package) then do not build shlib for it - if not private_libs or this_soname not in private_libs: + import fnmatch + if not private_libs or len([i for i in private_libs if fnmatch.fnmatch(this_soname, i)]) == 0: sonames.add(prov) if libdir_re.match(os.path.dirname(file)): needs_ldconfig = True @@ -1724,14 +1731,9 @@ python package_do_shlibs() { else: snap_symlinks = False - use_ldconfig = bb.utils.contains('DISTRO_FEATURES', 'ldconfig', True, False, d) - needed = {} - # Take shared lock since we're only reading, not writing - lf = bb.utils.lockfile(d.expand("${PACKAGELOCK}"), True) shlib_provider = oe.package.read_shlib_providers(d) - bb.utils.unlockfile(lf) for pkg in shlib_pkgs: private_libs = d.getVar('PRIVATE_LIBS_' + pkg) or d.getVar('PRIVATE_LIBS') or "" @@ -1773,22 +1775,21 @@ python package_do_shlibs() { bb.note("Renaming %s to %s" % (old, new)) os.rename(old, new) pkgfiles[pkg].remove(old) - + shlibs_file = os.path.join(shlibswork_dir, pkg + ".list") if len(sonames): - fd = open(shlibs_file, 'w') - for s in sonames: - if s[0] in shlib_provider and s[1] in shlib_provider[s[0]]: - (old_pkg, old_pkgver) = shlib_provider[s[0]][s[1]] - if old_pkg != pkg: - bb.warn('%s-%s was registered as shlib provider for %s, changing it to %s-%s because it was built later' % (old_pkg, old_pkgver, s[0], pkg, pkgver)) - bb.debug(1, 'registering %s-%s as shlib provider for %s' % (pkg, pkgver, s[0])) - fd.write(s[0] + ':' + s[1] + ':' + s[2] + '\n') - if s[0] not in shlib_provider: - shlib_provider[s[0]] = {} - shlib_provider[s[0]][s[1]] = (pkg, pkgver) - fd.close() - if needs_ldconfig and use_ldconfig: + with open(shlibs_file, 'w') as fd: + for s in sonames: + if s[0] in shlib_provider and s[1] in shlib_provider[s[0]]: + (old_pkg, old_pkgver) = shlib_provider[s[0]][s[1]] + if old_pkg != pkg: + bb.warn('%s-%s was registered as shlib provider for %s, changing it to %s-%s because it was built later' % (old_pkg, old_pkgver, s[0], pkg, pkgver)) + bb.debug(1, 'registering %s-%s as shlib provider for %s' % (pkg, pkgver, s[0])) + fd.write(s[0] + ':' + s[1] + ':' + s[2] + '\n') + if s[0] not in shlib_provider: + shlib_provider[s[0]] = {} + shlib_provider[s[0]][s[1]] = (pkg, pkgver) + if needs_ldconfig: bb.debug(1, 'adding ldconfig call to postinst for %s' % pkg) postinst = d.getVar('pkg_postinst_%s' % pkg) if not postinst: @@ -1826,20 +1827,21 @@ python package_do_shlibs() { # /opt/abc/lib/libfoo.so.1 and contains /usr/bin/abc depending on system library libfoo.so.1 # but skipping it is still better alternative than providing own # version and then adding runtime dependency for the same system library - if private_libs and n[0] in private_libs: + import fnmatch + if private_libs and len([i for i in private_libs if fnmatch.fnmatch(n[0], i)]) > 0: bb.debug(2, '%s: Dependency %s covered by PRIVATE_LIBS' % (pkg, n[0])) continue if n[0] in shlib_provider.keys(): - shlib_provider_path = [] - for k in shlib_provider[n[0]].keys(): - shlib_provider_path.append(k) - match = None - for p in list(n[2]) + shlib_provider_path + libsearchpath: - if p in shlib_provider[n[0]]: - match = p - break - if match: - (dep_pkg, ver_needed) = shlib_provider[n[0]][match] + shlib_provider_map = shlib_provider[n[0]] + matches = set() + for p in itertools.chain(list(n[2]), sorted(shlib_provider_map.keys()), libsearchpath): + if p in shlib_provider_map: + matches.add(p) + if len(matches) > 1: + matchpkgs = ', '.join([shlib_provider_map[match][0] for match in matches]) + bb.error("%s: Multiple shlib providers for %s: %s (used by files: %s)" % (pkg, n[0], matchpkgs, n[1])) + elif len(matches) == 1: + (dep_pkg, ver_needed) = shlib_provider_map[matches.pop()] bb.debug(2, '%s: Dependency %s requires package %s (used by files: %s)' % (pkg, n[0], dep_pkg, n[1])) @@ -1858,11 +1860,10 @@ python package_do_shlibs() { deps_file = os.path.join(pkgdest, pkg + ".shlibdeps") if os.path.exists(deps_file): os.remove(deps_file) - if len(deps): - fd = open(deps_file, 'w') - for dep in sorted(deps): - fd.write(dep + '\n') - fd.close() + if deps: + with open(deps_file, 'w') as fd: + for dep in sorted(deps): + fd.write(dep + '\n') } python package_do_pkgconfig () { @@ -1892,9 +1893,8 @@ python package_do_pkgconfig () { pkgconfig_provided[pkg].append(name) if not os.access(file, os.R_OK): continue - f = open(file, 'r') - lines = f.readlines() - f.close() + with open(file, 'r') as f: + lines = f.readlines() for l in lines: m = var_re.match(l) if m: @@ -1912,31 +1912,24 @@ python package_do_pkgconfig () { for pkg in packages.split(): pkgs_file = os.path.join(shlibswork_dir, pkg + ".pclist") if pkgconfig_provided[pkg] != []: - f = open(pkgs_file, 'w') - for p in pkgconfig_provided[pkg]: - f.write('%s\n' % p) - f.close() - - # Take shared lock since we're only reading, not writing - lf = bb.utils.lockfile(d.expand("${PACKAGELOCK}"), True) + with open(pkgs_file, 'w') as f: + for p in pkgconfig_provided[pkg]: + f.write('%s\n' % p) # Go from least to most specific since the last one found wins for dir in reversed(shlibs_dirs): if not os.path.exists(dir): continue - for file in os.listdir(dir): + for file in sorted(os.listdir(dir)): m = re.match(r'^(.*)\.pclist$', file) if m: pkg = m.group(1) - fd = open(os.path.join(dir, file)) - lines = fd.readlines() - fd.close() + with open(os.path.join(dir, file)) as fd: + lines = fd.readlines() pkgconfig_provided[pkg] = [] for l in lines: pkgconfig_provided[pkg].append(l.rstrip()) - bb.utils.unlockfile(lf) - for pkg in packages.split(): deps = [] for n in pkgconfig_needed[pkg]: @@ -1950,10 +1943,9 @@ python package_do_pkgconfig () { bb.note("couldn't find pkgconfig module '%s' in any package" % n) deps_file = os.path.join(pkgdest, pkg + ".pcdeps") if len(deps): - fd = open(deps_file, 'w') - for dep in deps: - fd.write(dep + '\n') - fd.close() + with open(deps_file, 'w') as fd: + for dep in deps: + fd.write(dep + '\n') } def read_libdep_files(d): @@ -1964,9 +1956,8 @@ def read_libdep_files(d): for extension in ".shlibdeps", ".pcdeps", ".clilibdeps": depsfile = d.expand("${PKGDEST}/" + pkg + extension) if os.access(depsfile, os.R_OK): - fd = open(depsfile) - lines = fd.readlines() - fd.close() + with open(depsfile) as fd: + lines = fd.readlines() for l in lines: l.rstrip() deps = bb.utils.explode_dep_versions2(l) @@ -2133,6 +2124,7 @@ def gen_packagevar(d): PACKAGE_PREPROCESS_FUNCS ?= "" # Functions for setting up PKGD PACKAGEBUILDPKGD ?= " \ + package_prepare_pkgdata \ perform_packagecopy \ ${PACKAGE_PREPROCESS_FUNCS} \ split_and_strip_files \ @@ -2253,19 +2245,19 @@ python do_package_setscene () { } addtask do_package_setscene -do_packagedata () { - : +# Copy from PKGDESTWORK to tempdirectory as tempdirectory can be cleaned at both +# do_package_setscene and do_packagedata_setscene leading to races +python do_packagedata () { + src = d.expand("${PKGDESTWORK}") + dest = d.expand("${WORKDIR}/pkgdata-pdata-input") + oe.path.copyhardlinktree(src, dest) } addtask packagedata before do_build after do_package SSTATETASKS += "do_packagedata" -# PACKAGELOCK protects readers of PKGDATA_DIR against writes -# whilst code is reading in do_package -PACKAGELOCK = "${STAGING_DIR}/package-output.lock" -do_packagedata[sstate-inputdirs] = "${PKGDESTWORK}" +do_packagedata[sstate-inputdirs] = "${WORKDIR}/pkgdata-pdata-input" do_packagedata[sstate-outputdirs] = "${PKGDATA_DIR}" -do_packagedata[sstate-lockfile] = "${PACKAGELOCK}" do_packagedata[stamp-extra-info] = "${MACHINE_ARCH}" python do_packagedata_setscene () { diff --git a/Contrib-Inspur/openbmc/poky/meta/classes/package_deb.bbclass b/Contrib-Inspur/openbmc/poky/meta/classes/package_deb.bbclass index 6f815916..790b26ae 100644 --- a/Contrib-Inspur/openbmc/poky/meta/classes/package_deb.bbclass +++ b/Contrib-Inspur/openbmc/poky/meta/classes/package_deb.bbclass @@ -6,6 +6,8 @@ inherit package IMAGE_PKGTYPE ?= "deb" +DPKG_BUILDCMD ??= "dpkg-deb" + DPKG_ARCH ?= "${@debian_arch_map(d.getVar('TARGET_ARCH'), d.getVar('TUNE_FEATURES'))}" DPKG_ARCH[vardepvalue] = "${DPKG_ARCH}" @@ -269,7 +271,8 @@ def deb_write_pkg(pkg, d): conffiles.close() os.chdir(basedir) - subprocess.check_output("PATH=\"%s\" dpkg-deb -b %s %s" % (localdata.getVar("PATH"), root, pkgoutdir), + subprocess.check_output("PATH=\"%s\" %s -b %s %s" % (localdata.getVar("PATH"), localdata.getVar("DPKG_BUILDCMD"), + root, pkgoutdir), stderr=subprocess.STDOUT, shell=True) diff --git a/Contrib-Inspur/openbmc/poky/meta/classes/package_ipk.bbclass b/Contrib-Inspur/openbmc/poky/meta/classes/package_ipk.bbclass index d1b317b4..4f239770 100644 --- a/Contrib-Inspur/openbmc/poky/meta/classes/package_ipk.bbclass +++ b/Contrib-Inspur/openbmc/poky/meta/classes/package_ipk.bbclass @@ -14,7 +14,7 @@ OPKG_ARGS += "--force_postinstall --prefer-arch-to-version" OPKG_ARGS += "${@['', '--no-install-recommends'][d.getVar("NO_RECOMMENDATIONS") == "1"]}" OPKG_ARGS += "${@['', '--add-exclude ' + ' --add-exclude '.join((d.getVar('PACKAGE_EXCLUDE') or "").split())][(d.getVar("PACKAGE_EXCLUDE") or "").strip() != ""]}" -OPKGLIBDIR = "${localstatedir}/lib" +OPKGLIBDIR ??= "${localstatedir}/lib" python do_package_ipk () { workdir = d.getVar('WORKDIR') @@ -154,7 +154,6 @@ def ipk_write_pkg(pkg, d): ctrlfile.write('%s\n' % textwrap.fill(description, width=74, initial_indent=' ', subsequent_indent=' ')) else: ctrlfile.write(c % tuple(pullData(fs, localdata))) - # more fields custom_fields_chunk = get_package_additional_metadata("ipk", localdata) if custom_fields_chunk is not None: diff --git a/Contrib-Inspur/openbmc/poky/meta/classes/package_pkgdata.bbclass b/Contrib-Inspur/openbmc/poky/meta/classes/package_pkgdata.bbclass new file mode 100644 index 00000000..18b7ed62 --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/classes/package_pkgdata.bbclass @@ -0,0 +1,167 @@ +WORKDIR_PKGDATA = "${WORKDIR}/pkgdata-sysroot" + +def package_populate_pkgdata_dir(pkgdatadir, d): + import glob + + postinsts = [] + seendirs = set() + stagingdir = d.getVar("PKGDATA_DIR") + pkgarchs = ['${MACHINE_ARCH}'] + pkgarchs = pkgarchs + list(reversed(d.getVar("PACKAGE_EXTRA_ARCHS").split())) + pkgarchs.append('allarch') + + bb.utils.mkdirhier(pkgdatadir) + for pkgarch in pkgarchs: + for manifest in glob.glob(d.expand("${SSTATE_MANIFESTS}/manifest-%s-*.packagedata" % pkgarch)): + with open(manifest, "r") as f: + for l in f: + l = l.strip() + dest = l.replace(stagingdir, "") + if l.endswith("/"): + staging_copydir(l, pkgdatadir, dest, seendirs) + continue + try: + staging_copyfile(l, pkgdatadir, dest, postinsts, seendirs) + except FileExistsError: + continue + +python package_prepare_pkgdata() { + import copy + import glob + + taskdepdata = d.getVar("BB_TASKDEPDATA", False) + mytaskname = d.getVar("BB_RUNTASK") + if mytaskname.endswith("_setscene"): + mytaskname = mytaskname.replace("_setscene", "") + workdir = d.getVar("WORKDIR") + pn = d.getVar("PN") + stagingdir = d.getVar("PKGDATA_DIR") + pkgdatadir = d.getVar("WORKDIR_PKGDATA") + + # Detect bitbake -b usage + nodeps = d.getVar("BB_LIMITEDDEPS") or False + if nodeps: + staging_package_populate_pkgdata_dir(pkgdatadir, d) + return + + start = None + configuredeps = [] + for dep in taskdepdata: + data = taskdepdata[dep] + if data[1] == mytaskname and data[0] == pn: + start = dep + break + if start is None: + bb.fatal("Couldn't find ourself in BB_TASKDEPDATA?") + + # We need to figure out which sysroot files we need to expose to this task. + # This needs to match what would get restored from sstate, which is controlled + # ultimately by calls from bitbake to setscene_depvalid(). + # That function expects a setscene dependency tree. We build a dependency tree + # condensed to inter-sstate task dependencies, similar to that used by setscene + # tasks. We can then call into setscene_depvalid() and decide + # which dependencies we can "see" and should expose in the recipe specific sysroot. + setscenedeps = copy.deepcopy(taskdepdata) + + start = set([start]) + + sstatetasks = d.getVar("SSTATETASKS").split() + # Add recipe specific tasks referenced by setscene_depvalid() + sstatetasks.append("do_stash_locale") + + # If start is an sstate task (like do_package) we need to add in its direct dependencies + # else the code below won't recurse into them. + for dep in set(start): + for dep2 in setscenedeps[dep][3]: + start.add(dep2) + start.remove(dep) + + # Create collapsed do_populate_sysroot -> do_populate_sysroot tree + for dep in taskdepdata: + data = setscenedeps[dep] + if data[1] not in sstatetasks: + for dep2 in setscenedeps: + data2 = setscenedeps[dep2] + if dep in data2[3]: + data2[3].update(setscenedeps[dep][3]) + data2[3].remove(dep) + if dep in start: + start.update(setscenedeps[dep][3]) + start.remove(dep) + del setscenedeps[dep] + + # Remove circular references + for dep in setscenedeps: + if dep in setscenedeps[dep][3]: + setscenedeps[dep][3].remove(dep) + + # Direct dependencies should be present and can be depended upon + for dep in set(start): + if setscenedeps[dep][1] == "do_packagedata": + if dep not in configuredeps: + configuredeps.append(dep) + + msgbuf = [] + # Call into setscene_depvalid for each sub-dependency and only copy sysroot files + # for ones that would be restored from sstate. + done = list(start) + next = list(start) + while next: + new = [] + for dep in next: + data = setscenedeps[dep] + for datadep in data[3]: + if datadep in done: + continue + taskdeps = {} + taskdeps[dep] = setscenedeps[dep][:2] + taskdeps[datadep] = setscenedeps[datadep][:2] + retval = setscene_depvalid(datadep, taskdeps, [], d, msgbuf) + done.append(datadep) + new.append(datadep) + if retval: + msgbuf.append("Skipping setscene dependency %s" % datadep) + continue + if datadep not in configuredeps and setscenedeps[datadep][1] == "do_packagedata": + configuredeps.append(datadep) + msgbuf.append("Adding dependency on %s" % setscenedeps[datadep][0]) + else: + msgbuf.append("Following dependency on %s" % setscenedeps[datadep][0]) + next = new + + # This logging is too verbose for day to day use sadly + #bb.debug(2, "\n".join(msgbuf)) + + seendirs = set() + postinsts = [] + multilibs = {} + manifests = {} + + msg_adding = [] + + for dep in configuredeps: + c = setscenedeps[dep][0] + msg_adding.append(c) + + manifest, d2 = oe.sstatesig.find_sstate_manifest(c, setscenedeps[dep][2], "packagedata", d, multilibs) + destsysroot = pkgdatadir + + if manifest: + targetdir = destsysroot + with open(manifest, "r") as f: + manifests[dep] = manifest + for l in f: + l = l.strip() + dest = targetdir + l.replace(stagingdir, "") + if l.endswith("/"): + staging_copydir(l, targetdir, dest, seendirs) + continue + staging_copyfile(l, targetdir, dest, postinsts, seendirs) + + bb.note("Installed into pkgdata-sysroot: %s" % str(msg_adding)) + +} +package_prepare_pkgdata[cleandirs] = "${WORKDIR_PKGDATA}" +package_prepare_pkgdata[vardepsexclude] += "MACHINE_ARCH PACKAGE_EXTRA_ARCHS SDK_ARCH BUILD_ARCH SDK_OS BB_TASKDEPDATA" + + diff --git a/Contrib-Inspur/openbmc/poky/meta/classes/package_rpm.bbclass b/Contrib-Inspur/openbmc/poky/meta/classes/package_rpm.bbclass index 1a64cb27..9145717f 100644 --- a/Contrib-Inspur/openbmc/poky/meta/classes/package_rpm.bbclass +++ b/Contrib-Inspur/openbmc/poky/meta/classes/package_rpm.bbclass @@ -36,7 +36,7 @@ def write_rpm_perfiledata(srcname, d): pkgd = d.getVar('PKGD') def dump_filerdeps(varname, outfile, d): - outfile.write("#!/usr/bin/env python\n\n") + outfile.write("#!/usr/bin/env python3\n\n") outfile.write("# Dependency table\n") outfile.write('deps = {\n') for pkg in packages.split(): @@ -409,7 +409,6 @@ python write_specfile () { if not file_list and localdata.getVar('ALLOW_EMPTY', False) != "1": bb.note("Not creating empty RPM package for %s" % splitname) else: - bb.note("Creating RPM package for %s" % splitname) spec_files_top.append('%files') if extra_pkgdata: package_rpm_extra_pkgdata(splitname, spec_files_top, localdata) @@ -418,7 +417,7 @@ python write_specfile () { bb.note("Creating RPM package for %s" % splitname) spec_files_top.extend(file_list) else: - bb.note("Creating EMPTY RPM Package for %s" % splitname) + bb.note("Creating empty RPM package for %s" % splitname) spec_files_top.append('') continue @@ -510,7 +509,7 @@ python write_specfile () { bb.note("Creating RPM package for %s" % splitname) spec_files_bottom.extend(file_list) else: - bb.note("Creating EMPTY RPM Package for %s" % splitname) + bb.note("Creating empty RPM package for %s" % splitname) spec_files_bottom.append('') del localdata diff --git a/Contrib-Inspur/openbmc/poky/meta/classes/packagegroup.bbclass b/Contrib-Inspur/openbmc/poky/meta/classes/packagegroup.bbclass index 94a59e0c..1541c8fb 100644 --- a/Contrib-Inspur/openbmc/poky/meta/classes/packagegroup.bbclass +++ b/Contrib-Inspur/openbmc/poky/meta/classes/packagegroup.bbclass @@ -8,7 +8,7 @@ PACKAGES = "${PN}" # By default, packagegroup packages do not depend on a certain architecture. # Only if dependencies are modified by MACHINE_FEATURES, packages -# need to be set to MACHINE_ARCH after inheriting packagegroup.bbclass +# need to be set to MACHINE_ARCH before inheriting packagegroup.bbclass PACKAGE_ARCH ?= "all" # Fully expanded - so it applies the overrides as well diff --git a/Contrib-Inspur/openbmc/poky/meta/classes/populate_sdk_base.bbclass b/Contrib-Inspur/openbmc/poky/meta/classes/populate_sdk_base.bbclass index 59920a57..d03465b6 100644 --- a/Contrib-Inspur/openbmc/poky/meta/classes/populate_sdk_base.bbclass +++ b/Contrib-Inspur/openbmc/poky/meta/classes/populate_sdk_base.bbclass @@ -8,6 +8,7 @@ COMPLEMENTARY_GLOB[doc-pkgs] = '*-doc' COMPLEMENTARY_GLOB[dbg-pkgs] = '*-dbg' COMPLEMENTARY_GLOB[src-pkgs] = '*-src' COMPLEMENTARY_GLOB[ptest-pkgs] = '*-ptest' +COMPLEMENTARY_GLOB[bash-completion-pkgs] = '*-bash-completion' def complementary_globs(featurevar, d): all_globs = d.getVarFlags('COMPLEMENTARY_GLOB') @@ -63,7 +64,7 @@ python () { SDK_RDEPENDS = "${TOOLCHAIN_TARGET_TASK} ${TOOLCHAIN_HOST_TASK}" SDK_DEPENDS = "virtual/fakeroot-native ${SDK_ARCHIVE_DEPENDS} cross-localedef-native nativesdk-qemuwrapper-cross ${@' '.join(["%s-qemuwrapper-cross" % m for m in d.getVar("MULTILIB_VARIANTS").split()])} qemuwrapper-cross" PATH_prepend = "${STAGING_DIR_HOST}${SDKPATHNATIVE}${bindir}/crossscripts:${@":".join(all_multilib_tune_values(d, 'STAGING_BINDIR_CROSS').split())}:" -SDK_DEPENDS_append_libc-glibc = " nativesdk-glibc-locale" +SDK_DEPENDS += "nativesdk-glibc-locale" # We want the MULTIARCH_TARGET_SYS to point to the TUNE_PKGARCH, not PACKAGE_ARCH as it # could be set to the MACHINE_ARCH diff --git a/Contrib-Inspur/openbmc/poky/meta/classes/populate_sdk_ext.bbclass b/Contrib-Inspur/openbmc/poky/meta/classes/populate_sdk_ext.bbclass index 800e1175..05cfc1cc 100644 --- a/Contrib-Inspur/openbmc/poky/meta/classes/populate_sdk_ext.bbclass +++ b/Contrib-Inspur/openbmc/poky/meta/classes/populate_sdk_ext.bbclass @@ -20,6 +20,8 @@ SDK_EXT_task-populate-sdk-ext = "-ext" SDK_EXT_TYPE ?= "full" SDK_INCLUDE_PKGDATA ?= "0" SDK_INCLUDE_TOOLCHAIN ?= "${@'1' if d.getVar('SDK_EXT_TYPE') == 'full' else '0'}" +SDK_INCLUDE_NATIVESDK ?= "0" +SDK_INCLUDE_BUILDTOOLS ?= '1' SDK_RECRDEP_TASKS ?= "" @@ -93,6 +95,7 @@ python write_target_sdk_ext_manifest () { real_target_multimach = d.getVar('REAL_MULTIMACH_TARGET_SYS') pkgs = {} + os.makedirs(os.path.dirname(d.getVar('SDK_EXT_TARGET_MANIFEST')), exist_ok=True) with open(d.getVar('SDK_EXT_TARGET_MANIFEST'), 'w') as f: for fn in extra_info['filesizes']: info = fn.split(':') @@ -378,6 +381,11 @@ python copy_buildsystem () { f.write('require conf/locked-sigs.inc\n') f.write('require conf/unlocked-sigs.inc\n') + if os.path.exists(builddir + '/cache/bb_unihashes.dat'): + bb.parse.siggen.save_unitaskhashes() + bb.utils.mkdirhier(os.path.join(baseoutpath, 'cache')) + shutil.copyfile(builddir + '/cache/bb_unihashes.dat', baseoutpath + '/cache/bb_unihashes.dat') + # Write a templateconf.cfg with open(baseoutpath + '/conf/templateconf.cfg', 'w') as f: f.write('meta/conf\n') @@ -401,9 +409,27 @@ python copy_buildsystem () { excluded_targets = get_sdk_install_targets(d, images_only=True) sigfile = d.getVar('WORKDIR') + '/locked-sigs.inc' lockedsigs_pruned = baseoutpath + '/conf/locked-sigs.inc' + #nativesdk-only sigfile to merge into locked-sigs.inc + sdk_include_nativesdk = (d.getVar("SDK_INCLUDE_NATIVESDK") == '1') + nativesigfile = d.getVar('WORKDIR') + '/locked-sigs_nativesdk.inc' + nativesigfile_pruned = d.getVar('WORKDIR') + '/locked-sigs_nativesdk_pruned.inc' + + if sdk_include_nativesdk: + oe.copy_buildsystem.prune_lockedsigs([], + excluded_targets.split(), + nativesigfile, + True, + nativesigfile_pruned) + + oe.copy_buildsystem.merge_lockedsigs([], + sigfile, + nativesigfile_pruned, + sigfile) + oe.copy_buildsystem.prune_lockedsigs([], excluded_targets.split(), sigfile, + False, lockedsigs_pruned) sstate_out = baseoutpath + '/sstate-cache' @@ -414,13 +440,18 @@ python copy_buildsystem () { sdk_include_toolchain = (d.getVar('SDK_INCLUDE_TOOLCHAIN') == '1') sdk_ext_type = d.getVar('SDK_EXT_TYPE') - if sdk_ext_type != 'minimal' or sdk_include_toolchain or derivative: + if (sdk_ext_type != 'minimal' or sdk_include_toolchain or derivative) and not sdk_include_nativesdk: # Create the filtered task list used to generate the sstate cache shipped with the SDK tasklistfn = d.getVar('WORKDIR') + '/tasklist.txt' create_filtered_tasklist(d, baseoutpath, tasklistfn, conf_initpath) else: tasklistfn = None + if os.path.exists(builddir + '/cache/bb_unihashes.dat'): + bb.parse.siggen.save_unitaskhashes() + bb.utils.mkdirhier(os.path.join(baseoutpath, 'cache')) + shutil.copyfile(builddir + '/cache/bb_unihashes.dat', baseoutpath + '/cache/bb_unihashes.dat') + # Add packagedata if enabled if d.getVar('SDK_INCLUDE_PKGDATA') == '1': lockedsigs_base = d.getVar('WORKDIR') + '/locked-sigs-base.inc' @@ -506,8 +537,12 @@ def get_sdk_required_utilities(buildtools_fn, d): sanity_required_utilities = (d.getVar('SANITY_REQUIRED_UTILITIES') or '').split() sanity_required_utilities.append(d.expand('${BUILD_PREFIX}gcc')) sanity_required_utilities.append(d.expand('${BUILD_PREFIX}g++')) - buildtools_installer = os.path.join(d.getVar('SDK_DEPLOY'), buildtools_fn) - filelist, _ = bb.process.run('%s -l' % buildtools_installer) + if buildtools_fn: + buildtools_installer = os.path.join(d.getVar('SDK_DEPLOY'), buildtools_fn) + filelist, _ = bb.process.run('%s -l' % buildtools_installer) + else: + buildtools_installer = None + filelist = "" localdata = bb.data.createCopy(d) localdata.setVar('SDKPATH', '.') sdkpathnative = localdata.getVar('SDKPATHNATIVE') @@ -550,7 +585,9 @@ install_tools() { touch ${SDK_OUTPUT}/${SDKPATH}/.devtoolbase # find latest buildtools-tarball and install it - install ${SDK_DEPLOY}/${SDK_BUILDTOOLS_INSTALLER} ${SDK_OUTPUT}/${SDKPATH} + if [ -n "${SDK_BUILDTOOLS_INSTALLER}" ]; then + install ${SDK_DEPLOY}/${SDK_BUILDTOOLS_INSTALLER} ${SDK_OUTPUT}/${SDKPATH} + fi install -m 0644 ${COREBASE}/meta/files/ext-sdk-prepare.py ${SDK_OUTPUT}/${SDKPATH} } @@ -600,16 +637,18 @@ sdk_ext_postinst() { printf "\nExtracting buildtools...\n" cd $target_sdk_dir env_setup_script="$target_sdk_dir/environment-setup-${REAL_MULTIMACH_TARGET_SYS}" - printf "buildtools\ny" | ./${SDK_BUILDTOOLS_INSTALLER} > buildtools.log || { printf 'ERROR: buildtools installation failed:\n' ; cat buildtools.log ; echo "printf 'ERROR: this SDK was not fully installed and needs reinstalling\n'" >> $env_setup_script ; exit 1 ; } + if [ -n "${SDK_BUILDTOOLS_INSTALLER}" ]; then + printf "buildtools\ny" | ./${SDK_BUILDTOOLS_INSTALLER} > buildtools.log || { printf 'ERROR: buildtools installation failed:\n' ; cat buildtools.log ; echo "printf 'ERROR: this SDK was not fully installed and needs reinstalling\n'" >> $env_setup_script ; exit 1 ; } - # Delete the buildtools tar file since it won't be used again - rm -f ./${SDK_BUILDTOOLS_INSTALLER} - # We don't need the log either since it succeeded - rm -f buildtools.log + # Delete the buildtools tar file since it won't be used again + rm -f ./${SDK_BUILDTOOLS_INSTALLER} + # We don't need the log either since it succeeded + rm -f buildtools.log - # Make sure when the user sets up the environment, they also get - # the buildtools-tarball tools in their path. - echo ". $target_sdk_dir/buildtools/environment-setup*" >> $env_setup_script + # Make sure when the user sets up the environment, they also get + # the buildtools-tarball tools in their path. + echo ". $target_sdk_dir/buildtools/environment-setup*" >> $env_setup_script + fi # Allow bitbake environment setup to be ran as part of this sdk. echo "export OE_SKIP_SDK_CHECK=1" >> $env_setup_script @@ -625,7 +664,7 @@ sdk_ext_postinst() { # Warn if trying to use external bitbake and the ext SDK together echo "(which bitbake > /dev/null 2>&1 && echo 'WARNING: attempting to use the extensible SDK in an environment set up to run bitbake - this may lead to unexpected results. Please source this script in a new shell session instead.') || true" >> $env_setup_script - if [ "$prepare_buildsystem" != "no" ]; then + if [ "$prepare_buildsystem" != "no" -a -n "${SDK_BUILDTOOLS_INSTALLER}" ]; then printf "Preparing build system...\n" # dash which is /bin/sh on Ubuntu will not preserve the # current working directory when first ran, nor will it set $1 when @@ -651,15 +690,25 @@ fakeroot python do_populate_sdk_ext() { bb.fatal('The extensible SDK can currently only be built for the same architecture as the machine being built on - SDK_ARCH is set to %s (likely via setting SDKMACHINE) which is different from the architecture of the build machine (%s). Unable to continue.' % (d.getVar('SDK_ARCH'), d.getVar('BUILD_ARCH'))) d.setVar('SDK_INSTALL_TARGETS', get_sdk_install_targets(d)) - buildtools_fn = get_current_buildtools(d) + if d.getVar('SDK_INCLUDE_BUILDTOOLS') == '1': + buildtools_fn = get_current_buildtools(d) + else: + buildtools_fn = None d.setVar('SDK_REQUIRED_UTILITIES', get_sdk_required_utilities(buildtools_fn, d)) d.setVar('SDK_BUILDTOOLS_INSTALLER', buildtools_fn) d.setVar('SDKDEPLOYDIR', '${SDKEXTDEPLOYDIR}') # ESDKs have a libc from the buildtools so ensure we don't ship linguas twice d.delVar('SDKIMAGE_LINGUAS') + if d.getVar("SDK_INCLUDE_NATIVESDK") == '1': + generate_nativesdk_lockedsigs(d) populate_sdk_common(d) } +def generate_nativesdk_lockedsigs(d): + import oe.copy_buildsystem + sigfile = d.getVar('WORKDIR') + '/locked-sigs_nativesdk.inc' + oe.copy_buildsystem.generate_locked_sigs(sigfile, d) + def get_ext_sdk_depends(d): # Note: the deps varflag is a list not a string, so we need to specify expand=False deps = d.getVarFlag('do_image_complete', 'deps', False) @@ -695,7 +744,7 @@ def get_sdk_ext_rdepends(d): do_populate_sdk_ext[dirs] = "${@d.getVarFlag('do_populate_sdk', 'dirs', False)}" do_populate_sdk_ext[depends] = "${@d.getVarFlag('do_populate_sdk', 'depends', False)} \ - buildtools-tarball:do_populate_sdk \ + ${@'buildtools-tarball:do_populate_sdk' if d.getVar('SDK_INCLUDE_BUILDTOOLS') == '1' else ''} \ ${@'meta-world-pkgdata:do_collect_packagedata' if d.getVar('SDK_INCLUDE_PKGDATA') == '1' else ''} \ ${@'meta-extsdk-toolchain:do_locked_sigs' if d.getVar('SDK_INCLUDE_TOOLCHAIN') == '1' else ''}" diff --git a/Contrib-Inspur/openbmc/poky/meta/classes/python3native.bbclass b/Contrib-Inspur/openbmc/poky/meta/classes/python3native.bbclass index a3acaf61..d98fb4c7 100644 --- a/Contrib-Inspur/openbmc/poky/meta/classes/python3native.bbclass +++ b/Contrib-Inspur/openbmc/poky/meta/classes/python3native.bbclass @@ -9,6 +9,14 @@ DEPENDS_append = " python3-native " export STAGING_INCDIR export STAGING_LIBDIR +# Packages can use +# find_package(PythonInterp REQUIRED) +# find_package(PythonLibs REQUIRED) +# which ends up using libs/includes from build host +# Therefore pre-empt that effort +export PYTHON_LIBRARY="${STAGING_LIBDIR}/lib${PYTHON_DIR}${PYTHON_ABI}.so" +export PYTHON_INCLUDE_DIR="${STAGING_INCDIR}/${PYTHON_DIR}${PYTHON_ABI}" + export _PYTHON_SYSCONFIGDATA_NAME="_sysconfigdata" # suppress host user's site-packages dirs. diff --git a/Contrib-Inspur/openbmc/poky/meta/classes/pythonnative.bbclass b/Contrib-Inspur/openbmc/poky/meta/classes/pythonnative.bbclass index ae6600cd..0e9019d1 100644 --- a/Contrib-Inspur/openbmc/poky/meta/classes/pythonnative.bbclass +++ b/Contrib-Inspur/openbmc/poky/meta/classes/pythonnative.bbclass @@ -12,6 +12,14 @@ DEPENDS_append = " python-native " export STAGING_INCDIR export STAGING_LIBDIR +# Packages can use +# find_package(PythonInterp REQUIRED) +# find_package(PythonLibs REQUIRED) +# which ends up using libs/includes from build host +# Therefore pre-empt that effort +export PYTHON_LIBRARY="${STAGING_LIBDIR}/lib${PYTHON_DIR}${PYTHON_ABI}.so" +export PYTHON_INCLUDE_DIR="${STAGING_INCDIR}/${PYTHON_DIR}${PYTHON_ABI}" + # suppress host user's site-packages dirs. export PYTHONNOUSERSITE = "1" diff --git a/Contrib-Inspur/openbmc/poky/meta/classes/report-error.bbclass b/Contrib-Inspur/openbmc/poky/meta/classes/report-error.bbclass index 1c55abfb..1a12db12 100644 --- a/Contrib-Inspur/openbmc/poky/meta/classes/report-error.bbclass +++ b/Contrib-Inspur/openbmc/poky/meta/classes/report-error.bbclass @@ -25,6 +25,19 @@ def errorreport_savedata(e, newdata, file): json.dump(newdata, f, indent=4, sort_keys=True) return datafile +def get_conf_data(e, filename): + builddir = e.data.getVar('TOPDIR') + filepath = os.path.join(builddir, "conf", filename) + jsonstring = "" + if os.path.exists(filepath): + with open(filepath, 'r') as f: + for line in f.readlines(): + if line.startswith("#") or len(line.strip()) == 0: + continue + else: + jsonstring=jsonstring + line + return jsonstring + python errorreport_handler () { import json import codecs @@ -51,6 +64,8 @@ python errorreport_handler () { data['failures'] = [] data['component'] = " ".join(e.getPkgs()) data['branch_commit'] = str(base_detect_branch(e.data)) + ": " + str(base_detect_revision(e.data)) + data['local_conf'] = get_conf_data(e, 'local.conf') + data['auto_conf'] = get_conf_data(e, 'auto.conf') lock = bb.utils.lockfile(datafile + '.lock') errorreport_savedata(e, data, "error-report.txt") bb.utils.unlockfile(lock) @@ -63,19 +78,15 @@ python errorreport_handler () { taskdata['task'] = task if log: try: - logFile = codecs.open(log, 'r', 'utf-8') - logdata = logFile.read() - + with codecs.open(log, encoding='utf-8') as logFile: + logdata = logFile.read() # Replace host-specific paths so the logs are cleaner for d in ("TOPDIR", "TMPDIR"): s = e.data.getVar(d) if s: logdata = logdata.replace(s, d) - - logFile.close() except: logdata = "Unable to read log file" - else: logdata = "No Log" diff --git a/Contrib-Inspur/openbmc/poky/meta/classes/reproducible_build.bbclass b/Contrib-Inspur/openbmc/poky/meta/classes/reproducible_build.bbclass index 8788ad71..39b6e40c 100644 --- a/Contrib-Inspur/openbmc/poky/meta/classes/reproducible_build.bbclass +++ b/Contrib-Inspur/openbmc/poky/meta/classes/reproducible_build.bbclass @@ -39,19 +39,28 @@ inherit ${@oe.utils.ifelse(d.getVar('BUILD_REPRODUCIBLE_BINARIES') == '1', 'repr SDE_DIR ="${WORKDIR}/source-date-epoch" SDE_FILE = "${SDE_DIR}/__source_date_epoch.txt" +SDE_DEPLOYDIR = "${WORKDIR}/deploy-source-date-epoch" SSTATETASKS += "do_deploy_source_date_epoch" do_deploy_source_date_epoch () { echo "Deploying SDE to ${SDE_DIR}." + mkdir -p ${SDE_DEPLOYDIR} + if [ -e ${SDE_FILE} ]; then + cp -p ${SDE_FILE} ${SDE_DEPLOYDIR}/__source_date_epoch.txt + fi } python do_deploy_source_date_epoch_setscene () { sstate_setscene(d) + bb.utils.mkdirhier(d.getVar('SDE_DIR')) + sde_file = os.path.join(d.getVar('SDE_DEPLOYDIR'), '__source_date_epoch.txt') + if os.path.exists(sde_file): + os.rename(sde_file, d.getVar('SDE_FILE')) } -do_deploy_source_date_epoch[dirs] = "${SDE_DIR}" -do_deploy_source_date_epoch[sstate-plaindirs] = "${SDE_DIR}" +do_deploy_source_date_epoch[dirs] = "${SDE_DEPLOYDIR}" +do_deploy_source_date_epoch[sstate-plaindirs] = "${SDE_DEPLOYDIR}" addtask do_deploy_source_date_epoch_setscene addtask do_deploy_source_date_epoch before do_configure after do_patch diff --git a/Contrib-Inspur/openbmc/poky/meta/classes/rm_work.bbclass b/Contrib-Inspur/openbmc/poky/meta/classes/rm_work.bbclass index c478f4a1..01c2ab1c 100644 --- a/Contrib-Inspur/openbmc/poky/meta/classes/rm_work.bbclass +++ b/Contrib-Inspur/openbmc/poky/meta/classes/rm_work.bbclass @@ -47,30 +47,26 @@ do_rm_work () { cd `dirname ${STAMP}` for i in `basename ${STAMP}`* do - # By default we'll delete the stamp, unless $i is changed by the inner loop - # (i=dummy does this) - case $i in *sigdata*|*sigbasedata*) # Save/skip anything that looks like a signature data file. - i=dummy ;; - *do_image_complete_setscene*) - # Ensure we don't 'stack' setscene extensions to this stamp with the section below - i=dummy + *do_image_complete_setscene*|*do_image_qa_setscene*) + # Ensure we don't 'stack' setscene extensions to these stamps with the sections below ;; *do_image_complete*) # Promote do_image_complete stamps to setscene versions (ahead of *do_image* below) mv $i `echo $i | sed -e "s#do_image_complete#do_image_complete_setscene#"` - i=dummy + ;; + *do_image_qa*) + # Promote do_image_qa stamps to setscene versions (ahead of *do_image* below) + mv $i `echo $i | sed -e "s#do_image_qa#do_image_qa_setscene#"` ;; *do_package_write*|*do_rootfs*|*do_image*|*do_bootimg*|*do_write_qemuboot_conf*|*do_build*) - i=dummy ;; *do_addto_recipe_sysroot*) # Preserve recipe-sysroot-native if do_addto_recipe_sysroot has been used excludes="$excludes recipe-sysroot-native" - i=dummy ;; *do_package|*do_package.*|*do_package_setscene.*) # We remove do_package entirely, including any @@ -78,30 +74,24 @@ do_rm_work () { # such as 'packages' and 'packages-split' and these can be large. No end # of chain tasks depend directly on do_package anymore. rm -f $i; - i=dummy ;; *_setscene*) # Skip stamps which are already setscene versions - i=dummy ;; + *) + # For everything else: if suitable, promote the stamp to a setscene + # version, otherwise remove it + for j in ${SSTATETASKS} do_shared_workdir + do + case $i in + *$j|*$j.*) + mv $i `echo $i | sed -e "s#${j}#${j}_setscene#"` + break + ;; + esac + done + rm -f $i esac - - for j in ${SSTATETASKS} do_shared_workdir - do - case $i in - dummy) - break - ;; - *$j|*$j.*) - # Promote the stamp to a setscene version - mv $i `echo $i | sed -e "s#${j}#${j}_setscene#"` - i=dummy - break - ;; - esac - done - - rm -f $i done cd ${WORKDIR} @@ -121,7 +111,7 @@ do_rm_work_all () { } do_rm_work_all[recrdeptask] = "do_rm_work" do_rm_work_all[noexec] = "1" -addtask rm_work_all after before do_build +addtask rm_work_all before do_build do_populate_sdk[postfuncs] += "rm_work_populatesdk" rm_work_populatesdk () { diff --git a/Contrib-Inspur/openbmc/poky/meta/classes/rootfs-postcommands.bbclass b/Contrib-Inspur/openbmc/poky/meta/classes/rootfs-postcommands.bbclass index 89f8efd3..2f171836 100644 --- a/Contrib-Inspur/openbmc/poky/meta/classes/rootfs-postcommands.bbclass +++ b/Contrib-Inspur/openbmc/poky/meta/classes/rootfs-postcommands.bbclass @@ -29,7 +29,7 @@ APPEND_append = '${@bb.utils.contains("IMAGE_FEATURES", "read-only-rootfs", " ro ROOTFS_POSTPROCESS_COMMAND += "write_image_test_data ; " # Write manifest -IMAGE_MANIFEST = "${IMGDEPLOYDIR}/${IMAGE_NAME}.rootfs.manifest" +IMAGE_MANIFEST = "${IMGDEPLOYDIR}/${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.manifest" ROOTFS_POSTUNINSTALL_COMMAND =+ "write_image_manifest ; " # Set default postinst log file POSTINST_LOGFILE ?= "${localstatedir}/log/postinstall.log" @@ -95,6 +95,11 @@ read_only_rootfs_hook () { sed -i -e '/^[#[:space:]]*\/dev\/root/{s/defaults/ro/;s/\([[:space:]]*[[:digit:]]\)\([[:space:]]*\)[[:digit:]]$/\1\20/}' ${IMAGE_ROOTFS}/etc/fstab fi + # Tweak the "mount -o remount,rw /" command in busybox-inittab inittab + if [ -f ${IMAGE_ROOTFS}/etc/inittab ]; then + sed -i 's|/bin/mount -o remount,rw /|/bin/mount -o remount,ro /|' ${IMAGE_ROOTFS}/etc/inittab + fi + # If we're using openssh and the /etc/ssh directory has no pre-generated keys, # we should configure openssh to use the configuration file /etc/ssh/sshd_config_readonly # and the keys under /var/run/ssh. @@ -260,7 +265,7 @@ python write_image_manifest () { with open(manifest_name, 'w+') as image_manifest: image_manifest.write(format_pkg_list(pkgs, "ver")) - if os.path.exists(manifest_name): + if os.path.exists(manifest_name) and link_name: manifest_link = deploy_dir + "/" + link_name + ".manifest" if os.path.lexists(manifest_link): os.remove(manifest_link) @@ -328,7 +333,7 @@ python write_image_test_data() { searchString = "%s/"%(d.getVar("TOPDIR")).replace("//","/") export2json(d, testdata_name, searchString=searchString, replaceString="") - if os.path.exists(testdata_name): + if os.path.exists(testdata_name) and link_name: testdata_link = os.path.join(deploy_dir, "%s.testdata.json" % link_name) if os.path.lexists(testdata_link): os.remove(testdata_link) @@ -356,7 +361,9 @@ rootfs_reproducible () { echo $sformatted > ${IMAGE_ROOTFS}/etc/version bbnote "rootfs_reproducible: set /etc/version to $sformatted" - find ${IMAGE_ROOTFS}/etc/gconf -name '%gconf.xml' -print0 | xargs -0r \ - sed -i -e 's@\bmtime="[0-9][0-9]*"@mtime="'${REPRODUCIBLE_TIMESTAMP_ROOTFS}'"@g' + if [ -d ${IMAGE_ROOTFS}${sysconfdir}/gconf ]; then + find ${IMAGE_ROOTFS}${sysconfdir}/gconf -name '%gconf.xml' -print0 | xargs -0r \ + sed -i -e 's@\bmtime="[0-9][0-9]*"@mtime="'${REPRODUCIBLE_TIMESTAMP_ROOTFS}'"@g' + fi fi } diff --git a/Contrib-Inspur/openbmc/poky/meta/classes/rootfs_ipk.bbclass b/Contrib-Inspur/openbmc/poky/meta/classes/rootfs_ipk.bbclass index aabc370c..e73d2bfd 100644 --- a/Contrib-Inspur/openbmc/poky/meta/classes/rootfs_ipk.bbclass +++ b/Contrib-Inspur/openbmc/poky/meta/classes/rootfs_ipk.bbclass @@ -21,7 +21,7 @@ OPKG_PREPROCESS_COMMANDS = "" OPKG_POSTPROCESS_COMMANDS = "" -OPKGLIBDIR = "${localstatedir}/lib" +OPKGLIBDIR ??= "${localstatedir}/lib" MULTILIBRE_ALLOW_REP = "${OPKGLIBDIR}/opkg|/usr/lib/opkg" diff --git a/Contrib-Inspur/openbmc/poky/meta/classes/sanity.bbclass b/Contrib-Inspur/openbmc/poky/meta/classes/sanity.bbclass index 9429202d..63ab6cf3 100644 --- a/Contrib-Inspur/openbmc/poky/meta/classes/sanity.bbclass +++ b/Contrib-Inspur/openbmc/poky/meta/classes/sanity.bbclass @@ -523,6 +523,7 @@ def check_wsl(d): # Tar version 1.24 and onwards handle overwriting symlinks correctly # but earlier versions do not; this needs to work properly for sstate +# Version 1.28 is needed so opkg-build works correctly when reproducibile builds are enabled def check_tar_version(sanity_data): from distutils.version import LooseVersion import subprocess @@ -532,7 +533,9 @@ def check_tar_version(sanity_data): return "Unable to execute tar --version, exit code %d\n%s\n" % (e.returncode, e.output) version = result.split()[3] if LooseVersion(version) < LooseVersion("1.24"): - return "Your version of tar is older than 1.24 and has bugs which will break builds. Please install a newer version of tar.\n" + return "Your version of tar is older than 1.24 and has bugs which will break builds. Please install a newer version of tar (1.28+).\n" + if LooseVersion(version) < LooseVersion("1.28"): + return "Your version of tar is older than 1.28 and does not have the support needed to enable reproducible builds. Please install a newer version of tar (you could use the projects buildtools-tarball from our last release).\n" return None # We use git parameters and functionality only found in 1.7.8 or later @@ -573,7 +576,7 @@ def sanity_check_conffiles(d): if check_conf_exists(conffile, d) and d.getVar(current_version) is not None and \ d.getVar(current_version) != d.getVar(required_version): try: - bb.build.exec_func(func, d, pythonexception=True) + bb.build.exec_func(func, d) except NotImplementedError as e: bb.fatal(str(e)) d.setVar("BB_INVALIDCONF", True) @@ -622,13 +625,14 @@ def check_sanity_version_change(status, d): # In other words, these tests run once in a given build directory and then # never again until the sanity version or host distrubution id/version changes. - # Check the python install is complete. glib-2.0-natives requries - # xml.parsers.expat + # Check the python install is complete. Examples that are often removed in + # minimal installations: glib-2.0-natives requries # xml.parsers.expat and icu + # requires distutils.sysconfig. try: import xml.parsers.expat - except ImportError: - status.addresult('Your python is not a full install. Please install the module xml.parsers.expat (python-xml on openSUSE and SUSE Linux).\n') - import stat + import distutils.sysconfig + except ImportError as e: + status.addresult('Your Python 3 is not a full install. Please install the module %s (see the Getting Started guide for further information).\n' % e.name) status.addresult(check_make_version(d)) status.addresult(check_patch_version(d)) @@ -664,6 +668,7 @@ def check_sanity_version_change(status, d): status.addresult('Please use ASSUME_PROVIDED +=, not ASSUME_PROVIDED = in your local.conf\n') # Check that TMPDIR isn't on a filesystem with limited filename length (eg. eCryptFS) + import stat tmpdir = d.getVar('TMPDIR') status.addresult(check_create_long_filename(tmpdir, "TMPDIR")) tmpdirmode = os.stat(tmpdir).st_mode @@ -798,6 +803,11 @@ def check_sanity_everybuild(status, d): elif d.getVar('SDK_ARCH', False) == "${BUILD_ARCH}": status.addresult('SDKMACHINE is set, but SDK_ARCH has not been changed as a result - SDKMACHINE may have been set too late (e.g. in the distro configuration)\n') + # If SDK_VENDOR looks like "-my-sdk" then the triples are badly formed so fail early + sdkvendor = d.getVar("SDK_VENDOR") + if not (sdkvendor.startswith("-") and sdkvendor.count("-") == 1): + status.addresult("SDK_VENDOR should be of the form '-foosdk' with a single dash\n") + check_supported_distro(d) omask = os.umask(0o022) diff --git a/Contrib-Inspur/openbmc/poky/meta/classes/sstate.bbclass b/Contrib-Inspur/openbmc/poky/meta/classes/sstate.bbclass index 424acfb1..64808f8e 100644 --- a/Contrib-Inspur/openbmc/poky/meta/classes/sstate.bbclass +++ b/Contrib-Inspur/openbmc/poky/meta/classes/sstate.bbclass @@ -89,11 +89,6 @@ SSTATE_HASHEQUIV_METHOD[doc] = "The fully-qualified function used to calculate \ the output hash for a task, which in turn is used to determine equivalency. \ " -SSTATE_HASHEQUIV_SERVER ?= "" -SSTATE_HASHEQUIV_SERVER[doc] = "The hash equivalence sever. For example, \ - 'http://192.168.0.1:5000'. Do not include a trailing slash \ - " - SSTATE_HASHEQUIV_REPORT_TASKDATA ?= "0" SSTATE_HASHEQUIV_REPORT_TASKDATA[doc] = "Report additional useful data to the \ hash equivalency server, such as PN, PV, taskname, etc. This information \ @@ -329,7 +324,7 @@ def sstate_installpkg(ss, d): pstaging_fetch(sstatefetch, d) if not os.path.isfile(sstatepkg): - bb.note("Staging package %s does not exist" % sstatepkg) + bb.note("Sstate package %s does not exist" % sstatepkg) return False sstate_clean(ss, d) @@ -340,7 +335,8 @@ def sstate_installpkg(ss, d): if bb.utils.to_boolean(d.getVar("SSTATE_VERIFY_SIG"), False): signer = get_signer(d, 'local') if not signer.verify(sstatepkg + '.sig'): - bb.warn("Cannot verify signature on sstate package %s" % sstatepkg) + bb.warn("Cannot verify signature on sstate package %s, skipping acceleration..." % sstatepkg) + return False # Empty sstateinst directory, ensure its clean if os.path.exists(sstateinst): @@ -658,8 +654,12 @@ def sstate_package(ss, d): if d.getVar('SSTATE_SKIP_CREATION') == '1': return + sstate_create_package = ['sstate_report_unihash', 'sstate_create_package'] + if d.getVar('SSTATE_SIG_KEY'): + sstate_create_package.append('sstate_sign_package') + for f in (d.getVar('SSTATECREATEFUNCS') or '').split() + \ - ['sstate_report_unihash', 'sstate_create_package', 'sstate_sign_package'] + \ + sstate_create_package + \ (d.getVar('SSTATEPOSTCREATEFUNCS') or '').split(): # All hooks should run in SSTATE_BUILDDIR. bb.build.exec_func(f, d, (sstatebuild,)) @@ -750,6 +750,11 @@ sstate_task_postfunc[dirs] = "${WORKDIR}" sstate_create_package () { TFILE=`mktemp ${SSTATE_PKG}.XXXXXXXX` + # Exit earlu if it already exists + if [ -e ${SSTATE_PKG} ]; then + return + fi + # Use pigz if available OPT="-czS" if [ -x "$(command -v pigz)" ]; then @@ -769,19 +774,24 @@ sstate_create_package () { tar $OPT --file=$TFILE --files-from=/dev/null fi chmod 0664 $TFILE - mv -f $TFILE ${SSTATE_PKG} + # Skip if it was already created by some other process + if [ ! -e ${SSTATE_PKG} ]; then + mv -f $TFILE ${SSTATE_PKG} + else + rm $TFILE + fi } python sstate_sign_package () { from oe.gpg_sign import get_signer - if d.getVar('SSTATE_SIG_KEY'): - signer = get_signer(d, 'local') - sstate_pkg = d.getVar('SSTATE_PKG') - if os.path.exists(sstate_pkg + '.sig'): - os.unlink(sstate_pkg + '.sig') - signer.detach_sign(sstate_pkg, d.getVar('SSTATE_SIG_KEY', False), None, - d.getVar('SSTATE_SIG_PASSPHRASE'), armor=False) + + signer = get_signer(d, 'local') + sstate_pkg = d.getVar('SSTATE_PKG') + if os.path.exists(sstate_pkg + '.sig'): + os.unlink(sstate_pkg + '.sig') + signer.detach_sign(sstate_pkg, d.getVar('SSTATE_SIG_KEY', False), None, + d.getVar('SSTATE_SIG_PASSPHRASE'), armor=False) } python sstate_report_unihash() { @@ -808,29 +818,26 @@ sstate_unpack_package () { BB_HASHCHECK_FUNCTION = "sstate_checkhashes" -def sstate_checkhashes(sq_fn, sq_task, sq_hash, sq_hashfn, d, siginfo=False, *, sq_unihash=None): - - ret = [] - missed = [] +def sstate_checkhashes(sq_data, d, siginfo=False, currentcount=0, summary=True, **kwargs): + found = set() + missed = set() extension = ".tgz" if siginfo: extension = extension + ".siginfo" def gethash(task): - if sq_unihash is not None: - return sq_unihash[task] - return sq_hash[task] + return sq_data['unihash'][task] def getpathcomponents(task, d): # Magic data from BB_HASHFILENAME - splithashfn = sq_hashfn[task].split(" ") + splithashfn = sq_data['hashfn'][task].split(" ") spec = splithashfn[1] if splithashfn[0] == "True": extrapath = d.getVar("NATIVELSBSTRING") + "/" else: extrapath = "" - - tname = sq_task[task][3:] + + tname = bb.runqueue.taskname_from_tid(task)[3:] if tname in ["fetch", "unpack", "patch", "populate_lic", "preconfigure"] and splithashfn[2]: spec = splithashfn[2] @@ -839,18 +846,18 @@ def sstate_checkhashes(sq_fn, sq_task, sq_hash, sq_hashfn, d, siginfo=False, *, return spec, extrapath, tname - for task in range(len(sq_fn)): + for tid in sq_data['hash']: - spec, extrapath, tname = getpathcomponents(task, d) + spec, extrapath, tname = getpathcomponents(tid, d) - sstatefile = d.expand("${SSTATE_DIR}/" + extrapath + generate_sstatefn(spec, gethash(task), d) + "_" + tname + extension) + sstatefile = d.expand("${SSTATE_DIR}/" + extrapath + generate_sstatefn(spec, gethash(tid), d) + "_" + tname + extension) if os.path.exists(sstatefile): bb.debug(2, "SState: Found valid sstate file %s" % sstatefile) - ret.append(task) + found.add(tid) continue else: - missed.append(task) + missed.add(tid) bb.debug(2, "SState: Looked for but didn't find file %s" % sstatefile) mirrors = d.getVar("SSTATE_MIRRORS") @@ -880,7 +887,7 @@ def sstate_checkhashes(sq_fn, sq_task, sq_hash, sq_hashfn, d, siginfo=False, *, thread_worker.connection_cache.close_connections() def checkstatus(thread_worker, arg): - (task, sstatefile) = arg + (tid, sstatefile) = arg localdata2 = bb.data.createCopy(localdata) srcuri = "file://" + sstatefile @@ -892,22 +899,22 @@ def sstate_checkhashes(sq_fn, sq_task, sq_hash, sq_hashfn, d, siginfo=False, *, connection_cache=thread_worker.connection_cache) fetcher.checkstatus() bb.debug(2, "SState: Successful fetch test for %s" % srcuri) - ret.append(task) - if task in missed: - missed.remove(task) + found.add(tid) + if tid in missed: + missed.remove(tid) except: - missed.append(task) + missed.add(tid) bb.debug(2, "SState: Unsuccessful fetch test for %s" % srcuri) pass bb.event.fire(bb.event.ProcessProgress(msg, len(tasklist) - thread_worker.tasks.qsize()), d) tasklist = [] - for task in range(len(sq_fn)): - if task in ret: + for tid in sq_data['hash']: + if tid in found: continue - spec, extrapath, tname = getpathcomponents(task, d) - sstatefile = d.expand(extrapath + generate_sstatefn(spec, gethash(task), d) + "_" + tname + extension) - tasklist.append((task, sstatefile)) + spec, extrapath, tname = getpathcomponents(tid, d) + sstatefile = d.expand(extrapath + generate_sstatefn(spec, gethash(tid), d) + "_" + tname + extension) + tasklist.append((tid, sstatefile)) if tasklist: msg = "Checking sstate mirror object availability" @@ -927,35 +934,39 @@ def sstate_checkhashes(sq_fn, sq_task, sq_hash, sq_hashfn, d, siginfo=False, *, bb.event.fire(bb.event.ProcessFinished(msg), d) + # Likely checking an individual task hash again for multiconfig sharing of sstate tasks so skip reporting + if len(sq_data['hash']) == 1: + return found + inheritlist = d.getVar("INHERIT") if "toaster" in inheritlist: evdata = {'missed': [], 'found': []}; - for task in missed: - spec, extrapath, tname = getpathcomponents(task, d) - sstatefile = d.expand(extrapath + generate_sstatefn(spec, gethash(task), d) + "_" + tname + ".tgz") - evdata['missed'].append( (sq_fn[task], sq_task[task], gethash(task), sstatefile ) ) - for task in ret: - spec, extrapath, tname = getpathcomponents(task, d) - sstatefile = d.expand(extrapath + generate_sstatefn(spec, gethash(task), d) + "_" + tname + ".tgz") - evdata['found'].append( (sq_fn[task], sq_task[task], gethash(task), sstatefile ) ) + for tid in missed: + spec, extrapath, tname = getpathcomponents(tid, d) + sstatefile = d.expand(extrapath + generate_sstatefn(spec, gethash(tid), d) + "_" + tname + ".tgz") + evdata['missed'].append((bb.runqueue.fn_from_tid(tid), bb.runqueue.taskname_from_tid(tid), gethash(tid), sstatefile ) ) + for tid in found: + spec, extrapath, tname = getpathcomponents(tid, d) + sstatefile = d.expand(extrapath + generate_sstatefn(spec, gethash(tid), d) + "_" + tname + ".tgz") + evdata['found'].append((bb.runqueue.fn_from_tid(tid), bb.runqueue.taskname_from_tid(tid), gethash(tid), sstatefile ) ) bb.event.fire(bb.event.MetadataEvent("MissedSstate", evdata), d) - # Print some summary statistics about the current task completion and how much sstate - # reuse there was. Avoid divide by zero errors. - total = len(sq_fn) - currentcount = d.getVar("BB_SETSCENE_STAMPCURRENT_COUNT") or 0 - complete = 0 - if currentcount: - complete = (len(ret) + currentcount) / (total + currentcount) * 100 - match = 0 - if total: - match = len(ret) / total * 100 - bb.plain("Sstate summary: Wanted %d Found %d Missed %d Current %d (%d%% match, %d%% complete)" % (total, len(ret), len(missed), currentcount, match, complete)) + if summary: + # Print some summary statistics about the current task completion and how much sstate + # reuse there was. Avoid divide by zero errors. + total = len(sq_data['hash']) + complete = 0 + if currentcount: + complete = (len(found) + currentcount) / (total + currentcount) * 100 + match = 0 + if total: + match = len(found) / total * 100 + bb.plain("Sstate summary: Wanted %d Found %d Missed %d Current %d (%d%% match, %d%% complete)" % (total, len(found), len(missed), currentcount, match, complete)) if hasattr(bb.parse.siggen, "checkhashes"): - bb.parse.siggen.checkhashes(missed, ret, sq_fn, sq_task, sq_hash, sq_hashfn, d) + bb.parse.siggen.checkhashes(sq_data, missed, found, d) - return ret + return found BB_SETSCENE_DEPVALID = "setscene_depvalid" diff --git a/Contrib-Inspur/openbmc/poky/meta/classes/staging.bbclass b/Contrib-Inspur/openbmc/poky/meta/classes/staging.bbclass index 92070602..cca0b7e0 100644 --- a/Contrib-Inspur/openbmc/poky/meta/classes/staging.bbclass +++ b/Contrib-Inspur/openbmc/poky/meta/classes/staging.bbclass @@ -197,7 +197,7 @@ def staging_populate_sysroot_dir(targetsysroot, nativesysroot, native, d): for pkgarch in pkgarchs: for manifest in glob.glob(d.expand("${SSTATE_MANIFESTS}/manifest-%s-*.populate_sysroot" % pkgarch)): if manifest.endswith("-initial.populate_sysroot"): - # skip glibc-initial and libgcc-initial due to file overlap + # skip libgcc-initial due to file overlap continue if not native and (manifest.endswith("-native.populate_sysroot") or "nativesdk-" in manifest): continue @@ -261,12 +261,10 @@ python extend_recipe_sysroot() { workdir = d.getVar("WORKDIR") #bb.warn(str(taskdepdata)) pn = d.getVar("PN") - mc = d.getVar("BB_CURRENT_MC") stagingdir = d.getVar("STAGING_DIR") sharedmanifests = d.getVar("COMPONENTS_DIR") + "/manifests" recipesysroot = d.getVar("RECIPE_SYSROOT") recipesysrootnative = d.getVar("RECIPE_SYSROOT_NATIVE") - current_variant = d.getVar("BBEXTENDVARIANT") # Detect bitbake -b usage nodeps = d.getVar("BB_LIMITEDDEPS") or False @@ -451,12 +449,8 @@ python extend_recipe_sysroot() { msg_exists = [] msg_adding = [] + # Handle all removals first since files may move between recipes for dep in configuredeps: - if mc != 'default': - # We should not care about other multiconfigs - depmc = dep.split(':')[1] - if depmc != mc: - continue c = setscenedeps[dep][0] if c not in installed: continue @@ -466,7 +460,6 @@ python extend_recipe_sysroot() { if os.path.exists(depdir + "/" + c): lnk = os.readlink(depdir + "/" + c) if lnk == c + "." + taskhash and os.path.exists(depdir + "/" + c + ".complete"): - msg_exists.append(c) continue else: bb.note("%s exists in sysroot, but is stale (%s vs. %s), removing." % (c, lnk, c + "." + taskhash)) @@ -477,6 +470,20 @@ python extend_recipe_sysroot() { elif os.path.lexists(depdir + "/" + c): os.unlink(depdir + "/" + c) + # Now handle installs + for dep in configuredeps: + c = setscenedeps[dep][0] + if c not in installed: + continue + taskhash = setscenedeps[dep][5] + taskmanifest = depdir + "/" + c + "." + taskhash + + if os.path.exists(depdir + "/" + c): + lnk = os.readlink(depdir + "/" + c) + if lnk == c + "." + taskhash and os.path.exists(depdir + "/" + c + ".complete"): + msg_exists.append(c) + continue + msg_adding.append(c) os.symlink(c + "." + taskhash, depdir + "/" + c) @@ -584,17 +591,6 @@ python do_prepare_recipe_sysroot () { } addtask do_prepare_recipe_sysroot before do_configure after do_fetch -# Clean out the recipe specific sysroots before do_fetch -# (use a prefunc so we can order before extend_recipe_sysroot if it gets added) -python clean_recipe_sysroot() { - # We remove these stamps since we're removing any content they'd have added with - # cleandirs. This removes the sigdata too, likely not a big deal, - oe.path.remove(d.getVar("STAMP") + "*addto_recipe_sysroot*") - return -} -clean_recipe_sysroot[cleandirs] += "${RECIPE_SYSROOT} ${RECIPE_SYSROOT_NATIVE}" -do_fetch[prefuncs] += "clean_recipe_sysroot" - python staging_taskhandler() { bbtasks = e.tasklist for task in bbtasks: diff --git a/Contrib-Inspur/openbmc/poky/meta/classes/syslinux.bbclass b/Contrib-Inspur/openbmc/poky/meta/classes/syslinux.bbclass index 031dacbf..894f6b37 100644 --- a/Contrib-Inspur/openbmc/poky/meta/classes/syslinux.bbclass +++ b/Contrib-Inspur/openbmc/poky/meta/classes/syslinux.bbclass @@ -75,11 +75,6 @@ syslinux_hddimg_install() { syslinux ${IMGDEPLOYDIR}/${IMAGE_NAME}.hddimg } -syslinux_hdddirect_install() { - DEST=$1 - syslinux $DEST -} - python build_syslinux_cfg () { import copy import sys diff --git a/Contrib-Inspur/openbmc/poky/meta/classes/systemd-boot.bbclass b/Contrib-Inspur/openbmc/poky/meta/classes/systemd-boot.bbclass index 3cd6811a..336c4c2f 100644 --- a/Contrib-Inspur/openbmc/poky/meta/classes/systemd-boot.bbclass +++ b/Contrib-Inspur/openbmc/poky/meta/classes/systemd-boot.bbclass @@ -11,50 +11,25 @@ do_bootimg[depends] += "${MLPREFIX}systemd-boot:do_deploy" -EFIDIR = "/EFI/BOOT" +require conf/image-uefi.conf # Need UUID utility code. inherit fs-uuid efi_populate() { - DEST=$1 + efi_populate_common "$1" systemd - EFI_IMAGE="systemd-bootia32.efi" - DEST_EFI_IMAGE="bootia32.efi" - if [ "${TARGET_ARCH}" = "x86_64" ]; then - EFI_IMAGE="systemd-bootx64.efi" - DEST_EFI_IMAGE="bootx64.efi" - fi - - install -d ${DEST}${EFIDIR} # systemd-boot requires these paths for configuration files # they are not customizable so no point in new vars install -d ${DEST}/loader install -d ${DEST}/loader/entries - install -m 0644 ${DEPLOY_DIR_IMAGE}/${EFI_IMAGE} ${DEST}${EFIDIR}/${DEST_EFI_IMAGE} - EFIPATH=$(echo "${EFIDIR}" | sed 's/\//\\/g') - printf 'fs0:%s\%s\n' "$EFIPATH" "$DEST_EFI_IMAGE" >${DEST}/startup.nsh install -m 0644 ${SYSTEMD_BOOT_CFG} ${DEST}/loader/loader.conf for i in ${SYSTEMD_BOOT_ENTRIES}; do install -m 0644 ${i} ${DEST}/loader/entries done } -efi_iso_populate() { - iso_dir=$1 - efi_populate $iso_dir - mkdir -p ${EFIIMGDIR}/${EFIDIR} - cp $iso_dir/${EFIDIR}/* ${EFIIMGDIR}${EFIDIR} +efi_iso_populate_append() { cp -r $iso_dir/loader ${EFIIMGDIR} - cp $iso_dir/${KERNEL_IMAGETYPE} ${EFIIMGDIR} - EFIPATH=$(echo "${EFIDIR}" | sed 's/\//\\/g') - echo "fs0:${EFIPATH}\\${DEST_EFI_IMAGE}" > ${EFIIMGDIR}/startup.nsh - if [ -f "$iso_dir/initrd" ] ; then - cp $iso_dir/initrd ${EFIIMGDIR} - fi -} - -efi_hddimg_populate() { - efi_populate $1 } inherit systemd-boot-cfg diff --git a/Contrib-Inspur/openbmc/poky/meta/classes/systemd.bbclass b/Contrib-Inspur/openbmc/poky/meta/classes/systemd.bbclass index d1cb17dc..9e8a82c9 100644 --- a/Contrib-Inspur/openbmc/poky/meta/classes/systemd.bbclass +++ b/Contrib-Inspur/openbmc/poky/meta/classes/systemd.bbclass @@ -32,11 +32,7 @@ if type systemctl >/dev/null 2>/dev/null; then if [ "${SYSTEMD_AUTO_ENABLE}" = "enable" ]; then for service in ${SYSTEMD_SERVICE_ESCAPED}; do - case "${service}" in - *@*) - systemctl ${OPTS} enable "${service}" - ;; - esac + systemctl ${OPTS} enable "$service" done fi @@ -214,7 +210,6 @@ python rm_systemd_unitdir (){ if (os.path.exists(systemd_libdir) and not os.listdir(systemd_libdir)): os.rmdir(systemd_libdir) } -do_install[postfuncs] += "rm_systemd_unitdir " python rm_sysvinit_initddir (){ import shutil @@ -229,4 +224,9 @@ python rm_sysvinit_initddir (){ if (os.path.exists(systemd_system_unitdir) and os.listdir(systemd_system_unitdir)): shutil.rmtree(sysv_initddir) } -do_install[postfuncs] += "rm_sysvinit_initddir " + +do_install[postfuncs] += "${RMINITDIR} " +RMINITDIR_class-target = " rm_sysvinit_initddir rm_systemd_unitdir " +RMINITDIR_class-nativesdk = " rm_sysvinit_initddir rm_systemd_unitdir " +RMINITDIR = "" + diff --git a/Contrib-Inspur/openbmc/poky/meta/classes/testimage.bbclass b/Contrib-Inspur/openbmc/poky/meta/classes/testimage.bbclass index 525c5a61..844ed879 100644 --- a/Contrib-Inspur/openbmc/poky/meta/classes/testimage.bbclass +++ b/Contrib-Inspur/openbmc/poky/meta/classes/testimage.bbclass @@ -262,6 +262,24 @@ def testimage_main(d): # It would be better to find these modules using instrospection. target_kwargs['target_modules_path'] = d.getVar('BBPATH') + # hardware controlled targets might need further access + target_kwargs['powercontrol_cmd'] = d.getVar("TEST_POWERCONTROL_CMD") or None + target_kwargs['powercontrol_extra_args'] = d.getVar("TEST_POWERCONTROL_EXTRA_ARGS") or "" + target_kwargs['serialcontrol_cmd'] = d.getVar("TEST_SERIALCONTROL_CMD") or None + target_kwargs['serialcontrol_extra_args'] = d.getVar("TEST_SERIALCONTROL_EXTRA_ARGS") or "" + + def export_ssh_agent(d): + import os + + variables = ['SSH_AGENT_PID', 'SSH_AUTH_SOCK'] + for v in variables: + if v not in os.environ.keys(): + val = d.getVar(v) + if val is not None: + os.environ[v] = val + + export_ssh_agent(d) + # runtime use network for download projects for build export_proxies(d) diff --git a/Contrib-Inspur/openbmc/poky/meta/classes/tinderclient.bbclass b/Contrib-Inspur/openbmc/poky/meta/classes/tinderclient.bbclass deleted file mode 100644 index 00f453ce..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/classes/tinderclient.bbclass +++ /dev/null @@ -1,368 +0,0 @@ -def tinder_http_post(server, selector, content_type, body): - import httplib - # now post it - for i in range(0,5): - try: - h = httplib.HTTP(server) - h.putrequest('POST', selector) - h.putheader('content-type', content_type) - h.putheader('content-length', str(len(body))) - h.endheaders() - h.send(body) - errcode, errmsg, headers = h.getreply() - #print(errcode, errmsg, headers) - return (errcode,errmsg, headers, h.file) - except: - print("Error sending the report!") - # try again - pass - - # return some garbage - return (-1, "unknown", "unknown", None) - -def tinder_form_data(bound, dict, log): - output = [] - # for each key in the dictionary - for name in dict: - assert dict[name] - output.append( "--" + bound ) - output.append( 'Content-Disposition: form-data; name="%s"' % name ) - output.append( "" ) - output.append( dict[name] ) - if log: - output.append( "--" + bound ) - output.append( 'Content-Disposition: form-data; name="log"; filename="log.txt"' ) - output.append( '' ) - output.append( log ) - output.append( '--' + bound + '--' ) - output.append( '' ) - - return "\r\n".join(output) - -def tinder_time_string(): - """ - Return the time as GMT - """ - return "" - -def tinder_format_http_post(d,status,log): - """ - Format the Tinderbox HTTP post with the data needed - for the tinderbox to be happy. - """ - - import random - - # the variables we will need to send on this form post - variables = { - "tree" : d.getVar('TINDER_TREE'), - "machine_name" : d.getVar('TINDER_MACHINE'), - "os" : os.uname()[0], - "os_version" : os.uname()[2], - "compiler" : "gcc", - "clobber" : d.getVar('TINDER_CLOBBER') or "0", - "srcdate" : d.getVar('SRCDATE'), - "PN" : d.getVar('PN'), - "PV" : d.getVar('PV'), - "PR" : d.getVar('PR'), - "FILE" : d.getVar('FILE') or "N/A", - "TARGETARCH" : d.getVar('TARGET_ARCH'), - "TARGETFPU" : d.getVar('TARGET_FPU') or "Unknown", - "TARGETOS" : d.getVar('TARGET_OS') or "Unknown", - "MACHINE" : d.getVar('MACHINE') or "Unknown", - "DISTRO" : d.getVar('DISTRO') or "Unknown", - "zecke-rocks" : "sure", - } - - # optionally add the status - if status: - variables["status"] = str(status) - - # try to load the machine id - # we only need on build_status.pl but sending it - # always does not hurt - try: - f = open(d.getVar('TMPDIR')+'/tinder-machine.id', 'r') - id = f.read() - variables['machine_id'] = id - except: - pass - - # the boundary we will need - boundary = "----------------------------------%d" % int(random.random()*1000000000000) - - # now format the body - body = tinder_form_data( boundary, variables, log ) - - return ("multipart/form-data; boundary=%s" % boundary),body - - -def tinder_build_start(d): - """ - Inform the tinderbox that a build is starting. We do this - by posting our name and tree to the build_start.pl script - on the server. - """ - - # get the body and type - content_type, body = tinder_format_http_post(d,None,None) - server = d.getVar('TINDER_HOST') - url = d.getVar('TINDER_URL') - - selector = url + "/xml/build_start.pl" - - #print("selector %s and url %s" % (selector, url)) - - # now post it - errcode, errmsg, headers, h_file = tinder_http_post(server,selector,content_type, body) - #print(errcode, errmsg, headers) - report = h_file.read() - - # now let us find the machine id that was assigned to us - search = " 0: - content_type, body = tinder_format_http_post(d,status,new_log[0:18000]) - errcode, errmsg, headers, h_file = tinder_http_post(server,selector,content_type, body) - #print(errcode, errmsg, headers) - #print(h.file.read()) - new_log = new_log[18000:] - - -def tinder_print_info(d): - """ - Print the TinderBox Info - Including informations of the BaseSystem and the Tree - we use. - """ - - # get the local vars - time = tinder_time_string() - ops = os.uname()[0] - version = os.uname()[2] - url = d.getVar('TINDER_URL') - tree = d.getVar('TINDER_TREE') - branch = d.getVar('TINDER_BRANCH') - srcdate = d.getVar('SRCDATE') - machine = d.getVar('MACHINE') - distro = d.getVar('DISTRO') - bbfiles = d.getVar('BBFILES') - tarch = d.getVar('TARGET_ARCH') - fpu = d.getVar('TARGET_FPU') - oerev = d.getVar('OE_REVISION') or "unknown" - - # there is a bug with tipple quoted strings - # i will work around but will fix the original - # bug as well - output = [] - output.append("== Tinderbox Info" ) - output.append("Time: %(time)s" ) - output.append("OS: %(ops)s" ) - output.append("%(version)s" ) - output.append("Compiler: gcc" ) - output.append("Tinderbox Client: 0.1" ) - output.append("Tinderbox Client Last Modified: yesterday" ) - output.append("Tinderbox Protocol: 0.1" ) - output.append("URL: %(url)s" ) - output.append("Tree: %(tree)s" ) - output.append("Config:" ) - output.append("branch = '%(branch)s'" ) - output.append("TARGET_ARCH = '%(tarch)s'" ) - output.append("TARGET_FPU = '%(fpu)s'" ) - output.append("SRCDATE = '%(srcdate)s'" ) - output.append("MACHINE = '%(machine)s'" ) - output.append("DISTRO = '%(distro)s'" ) - output.append("BBFILES = '%(bbfiles)s'" ) - output.append("OEREV = '%(oerev)s'" ) - output.append("== End Tinderbox Client Info" ) - - # now create the real output - return "\n".join(output) % vars() - - -def tinder_print_env(): - """ - Print the environment variables of this build - """ - time_start = tinder_time_string() - time_end = tinder_time_string() - - # build the environment - env = "" - for var in os.environ: - env += "%s=%s\n" % (var, os.environ[var]) - - output = [] - output.append( "---> TINDERBOX RUNNING env %(time_start)s" ) - output.append( env ) - output.append( "<--- TINDERBOX FINISHED (SUCCESS) %(time_end)s" ) - - return "\n".join(output) % vars() - -def tinder_tinder_start(d, event): - """ - PRINT the configuration of this build - """ - - time_start = tinder_time_string() - config = tinder_print_info(d) - #env = tinder_print_env() - time_end = tinder_time_string() - packages = " ".join( event.getPkgs() ) - - output = [] - output.append( "---> TINDERBOX PRINTING CONFIGURATION %(time_start)s" ) - output.append( config ) - #output.append( env ) - output.append( "<--- TINDERBOX FINISHED PRINTING CONFIGURATION %(time_end)s" ) - output.append( "---> TINDERBOX BUILDING '%(packages)s'" ) - output.append( "<--- TINDERBOX STARTING BUILD NOW" ) - - output.append( "" ) - - return "\n".join(output) % vars() - -def tinder_do_tinder_report(event): - """ - Report to the tinderbox: - On the BuildStart we will inform the box directly - On the other events we will write to the TINDER_LOG and - when the Task is finished we will send the report. - - The above is not yet fully implemented. Currently we send - information immediately. The caching/queuing needs to be - implemented. Also sending more or less information is not - implemented yet. - - We have two temporary files stored in the TMP directory. One file - contains the assigned machine id for the tinderclient. This id gets - assigned when we connect the box and start the build process the second - file is used to workaround an EventHandler limitation. If BitBake is ran - with the continue option we want the Build to fail even if we get the - BuildCompleted Event. In this case we have to look up the status and - send it instead of 100/success. - """ - import glob - - # variables - name = bb.event.getName(event) - log = "" - status = 1 - # Check what we need to do Build* shows we start or are done - if name == "BuildStarted": - tinder_build_start(event.data) - log = tinder_tinder_start(event.data,event) - - try: - # truncate the tinder log file - f = open(event.data.getVar('TINDER_LOG'), 'w') - f.write("") - f.close() - except: - pass - - try: - # write a status to the file. This is needed for the -k option - # of BitBake - g = open(event.data.getVar('TMPDIR')+"/tinder-status", 'w') - g.write("") - g.close() - except IOError: - pass - - # Append the Task-Log (compile,configure...) to the log file - # we will send to the server - if name == "TaskSucceeded" or name == "TaskFailed": - log_file = glob.glob("%s/log.%s.*" % (event.data.getVar('T'), event.task)) - - if len(log_file) != 0: - to_file = event.data.getVar('TINDER_LOG') - log += "".join(open(log_file[0], 'r').readlines()) - - # set the right 'HEADER'/Summary for the TinderBox - if name == "TaskStarted": - log += "---> TINDERBOX Task %s started\n" % event.task - elif name == "TaskSucceeded": - log += "<--- TINDERBOX Task %s done (SUCCESS)\n" % event.task - elif name == "TaskFailed": - log += "<--- TINDERBOX Task %s failed (FAILURE)\n" % event.task - elif name == "PkgStarted": - log += "---> TINDERBOX Package %s started\n" % event.data.getVar('PF') - elif name == "PkgSucceeded": - log += "<--- TINDERBOX Package %s done (SUCCESS)\n" % event.data.getVar('PF') - elif name == "PkgFailed": - if not event.data.getVar('TINDER_AUTOBUILD') == "0": - build.exec_task('do_clean', event.data) - log += "<--- TINDERBOX Package %s failed (FAILURE)\n" % event.data.getVar('PF') - status = 200 - # remember the failure for the -k case - h = open(event.data.getVar('TMPDIR')+"/tinder-status", 'w') - h.write("200") - elif name == "BuildCompleted": - log += "Build Completed\n" - status = 100 - # Check if we have a old status... - try: - h = open(event.data.getVar('TMPDIR')+'/tinder-status', 'r') - status = int(h.read()) - except: - pass - - elif name == "MultipleProviders": - log += "---> TINDERBOX Multiple Providers\n" - log += "multiple providers are available (%s);\n" % ", ".join(event.getCandidates()) - log += "consider defining PREFERRED_PROVIDER_%s\n" % event.getItem() - log += "is runtime: %d\n" % event.isRuntime() - log += "<--- TINDERBOX Multiple Providers\n" - elif name == "NoProvider": - log += "Error: No Provider for: %s\n" % event.getItem() - log += "Error:Was Runtime: %d\n" % event.isRuntime() - status = 200 - # remember the failure for the -k case - h = open(event.data.getVar('TMPDIR')+"/tinder-status", 'w') - h.write("200") - - # now post the log - if len(log) == 0: - return - - # for now we will use the http post method as it is the only one - log_post_method = tinder_send_http - log_post_method(event.data, status, log) - - -# we want to be an event handler -addhandler tinderclient_eventhandler -python tinderclient_eventhandler() { - if e.data is None or bb.event.getName(e) == "MsgNote": - return - - do_tinder_report = e.data.getVar('TINDER_REPORT') - if do_tinder_report and do_tinder_report == "1": - tinder_do_tinder_report(e) - - return -} diff --git a/Contrib-Inspur/openbmc/poky/meta/classes/toolchain-scripts.bbclass b/Contrib-Inspur/openbmc/poky/meta/classes/toolchain-scripts.bbclass index 1a2ec4f3..db1d3215 100644 --- a/Contrib-Inspur/openbmc/poky/meta/classes/toolchain-scripts.bbclass +++ b/Contrib-Inspur/openbmc/poky/meta/classes/toolchain-scripts.bbclass @@ -90,6 +90,7 @@ toolchain_shared_env_script () { echo 'export RANLIB=${TARGET_PREFIX}ranlib' >> $script echo 'export OBJCOPY=${TARGET_PREFIX}objcopy' >> $script echo 'export OBJDUMP=${TARGET_PREFIX}objdump' >> $script + echo 'export READELF=${TARGET_PREFIX}readelf' >> $script echo 'export AR=${TARGET_PREFIX}ar' >> $script echo 'export NM=${TARGET_PREFIX}nm' >> $script echo 'export M4=m4' >> $script diff --git a/Contrib-Inspur/openbmc/poky/meta/classes/uboot-extlinux-config.bbclass b/Contrib-Inspur/openbmc/poky/meta/classes/uboot-extlinux-config.bbclass index b5b1a81d..f4bf94be 100644 --- a/Contrib-Inspur/openbmc/poky/meta/classes/uboot-extlinux-config.bbclass +++ b/Contrib-Inspur/openbmc/poky/meta/classes/uboot-extlinux-config.bbclass @@ -104,13 +104,16 @@ python do_create_extlinux_config() { if default: cfgfile.write('DEFAULT %s\n' % (default)) - for label in labels.split(): + # Need to deconflict the labels with existing overrides + label_overrides = labels.split() + default_overrides = localdata.getVar('OVERRIDES').split(':') + # We're keeping all the existing overrides that aren't used as a label + # an override for that label will be added back in while we're processing that label + keep_overrides = list(filter(lambda x: x not in label_overrides, default_overrides)) - overrides = localdata.getVar('OVERRIDES') - if not overrides: - bb.fatal('OVERRIDES not defined') + for label in labels.split(): - localdata.setVar('OVERRIDES', label + ':' + overrides) + localdata.setVar('OVERRIDES', ':'.join(keep_overrides + [label])) extlinux_console = localdata.getVar('UBOOT_EXTLINUX_CONSOLE') diff --git a/Contrib-Inspur/openbmc/poky/meta/classes/uboot-sign.bbclass b/Contrib-Inspur/openbmc/poky/meta/classes/uboot-sign.bbclass index de81ad1b..982ed46d 100644 --- a/Contrib-Inspur/openbmc/poky/meta/classes/uboot-sign.bbclass +++ b/Contrib-Inspur/openbmc/poky/meta/classes/uboot-sign.bbclass @@ -66,7 +66,7 @@ concat_dtb_helper() { install ${UBOOT_BINARY} ${DEPLOYDIR}/${UBOOT_IMAGE} elif [ -e "${DEPLOYDIR}/${UBOOT_NODTB_IMAGE}" -a -e "$deployed_uboot_dtb_binary" ]; then cd ${DEPLOYDIR} - cat ${UBOOT_NODTB_IMAGE} $deployed_uboot_dtb_binary | tee ${UBOOT_BINARY} > ${UBOOT_IMAGE} + cat ${UBOOT_NODTB_IMAGE} $deployed_uboot_dtb_binary | tee ${B}/${CONFIG_B_PATH}/${UBOOT_BINARY} > ${UBOOT_IMAGE} else bbwarn "Failure while adding public key to u-boot binary. Verified boot won't be available." fi @@ -77,10 +77,12 @@ concat_dtb() { mkdir -p ${DEPLOYDIR} if [ -n "${UBOOT_CONFIG}" ]; then for config in ${UBOOT_MACHINE}; do + CONFIG_B_PATH="${config}" cd ${B}/${config} concat_dtb_helper done else + CONFIG_B_PATH="" cd ${B} concat_dtb_helper fi diff --git a/Contrib-Inspur/openbmc/poky/meta/classes/uninative.bbclass b/Contrib-Inspur/openbmc/poky/meta/classes/uninative.bbclass index 3326c0db..9f8645a3 100644 --- a/Contrib-Inspur/openbmc/poky/meta/classes/uninative.bbclass +++ b/Contrib-Inspur/openbmc/poky/meta/classes/uninative.bbclass @@ -45,7 +45,7 @@ python uninative_event_fetchloader() { tarballdir = os.path.join(d.getVar("UNINATIVE_DLDIR"), chksum) tarballpath = os.path.join(tarballdir, tarball) - if not os.path.exists(tarballpath): + if not os.path.exists(tarballpath + ".done"): bb.utils.mkdirhier(tarballdir) if d.getVar("UNINATIVE_URL") == "unset": bb.fatal("Uninative selected but not configured, please set UNINATIVE_URL") diff --git a/Contrib-Inspur/openbmc/poky/meta/classes/update-alternatives.bbclass b/Contrib-Inspur/openbmc/poky/meta/classes/update-alternatives.bbclass index b702e77e..8c2b66e7 100644 --- a/Contrib-Inspur/openbmc/poky/meta/classes/update-alternatives.bbclass +++ b/Contrib-Inspur/openbmc/poky/meta/classes/update-alternatives.bbclass @@ -284,8 +284,11 @@ python populate_packages_updatealternatives () { bb.note('adding update-alternatives calls to postinst/prerm for %s' % pkg) bb.note('%s' % alt_setup_links) - postinst = d.getVar('pkg_postinst_%s' % pkg) or '#!/bin/sh\n' - postinst += alt_setup_links + postinst = d.getVar('pkg_postinst_%s' % pkg) + if postinst: + postinst = alt_setup_links + postinst + else: + postinst = '#!/bin/sh\n' + alt_setup_links d.setVar('pkg_postinst_%s' % pkg, postinst) bb.note('%s' % alt_remove_links) diff --git a/Contrib-Inspur/openbmc/poky/meta/classes/xmlcatalog.bbclass b/Contrib-Inspur/openbmc/poky/meta/classes/xmlcatalog.bbclass index 075aef8c..ae4811fd 100644 --- a/Contrib-Inspur/openbmc/poky/meta/classes/xmlcatalog.bbclass +++ b/Contrib-Inspur/openbmc/poky/meta/classes/xmlcatalog.bbclass @@ -1,3 +1,5 @@ +DEPENDS = "libxml2-native" + # A whitespace-separated list of XML catalogs to be registered, for example # "${sysconfdir}/xml/docbook-xml.xml". XMLCATALOGS ?= "" diff --git a/Contrib-Inspur/openbmc/poky/meta/conf/bitbake.conf b/Contrib-Inspur/openbmc/poky/meta/conf/bitbake.conf index 4b907d68..263d8aea 100644 --- a/Contrib-Inspur/openbmc/poky/meta/conf/bitbake.conf +++ b/Contrib-Inspur/openbmc/poky/meta/conf/bitbake.conf @@ -360,12 +360,6 @@ CACHE = "${TMPDIR}/cache${@['', '/' + str(d.getVar('MACHINE'))][bool(d.getVar('M # The persistent cache should be shared by all builds PERSISTENT_DIR = "${TOPDIR}/cache" LOG_DIR = "${TMPDIR}/log" -CO_DIR = "${DL_DIR}" -CVSDIR = "${CO_DIR}/cvs" -SVNDIR = "${CO_DIR}/svn" -GITDIR = "${CO_DIR}/git2" -BZRDIR = "${CO_DIR}/bzr" -HGDIR = "${CO_DIR}/hg" STAMPS_DIR ?= "${TMPDIR}/stamps" STAMP = "${STAMPS_DIR}/${MULTIMACH_TARGET_SYS}/${PN}/${EXTENDPE}${PV}-${PR}" @@ -569,17 +563,17 @@ PATCHRESOLVE = "noop" export BUILD_CPPFLAGS = "-isystem${STAGING_INCDIR_NATIVE}" BUILDSDK_CPPFLAGS = "" export CPPFLAGS = "${TARGET_CPPFLAGS}" -export TARGET_CPPFLAGS = "" +TARGET_CPPFLAGS = "" export BUILD_CFLAGS = "${BUILD_CPPFLAGS} ${BUILD_OPTIMIZATION}" BUILDSDK_CFLAGS = "${BUILDSDK_CPPFLAGS} ${BUILD_OPTIMIZATION} ${DEBUG_PREFIX_MAP}" export CFLAGS = "${TARGET_CFLAGS}" -export TARGET_CFLAGS = "${TARGET_CPPFLAGS} ${SELECTED_OPTIMIZATION}" +TARGET_CFLAGS = "${TARGET_CPPFLAGS} ${SELECTED_OPTIMIZATION}" export BUILD_CXXFLAGS = "${BUILD_CFLAGS}" BUILDSDK_CXXFLAGS = "${BUILDSDK_CFLAGS}" export CXXFLAGS = "${TARGET_CXXFLAGS}" -export TARGET_CXXFLAGS = "${TARGET_CFLAGS}" +TARGET_CXXFLAGS = "${TARGET_CFLAGS}" export BUILD_LDFLAGS = "-L${STAGING_LIBDIR_NATIVE} \ -L${STAGING_BASE_LIBDIR_NATIVE} \ @@ -601,7 +595,7 @@ TARGET_LINK_HASH_STYLE ?= "${@['-Wl,--hash-style=gnu',''][d.getVar('LINKER_HASH_ ASNEEDED ?= "-Wl,--as-needed" export LDFLAGS = "${TARGET_LDFLAGS}" -export TARGET_LDFLAGS = "-Wl,-O1 ${TARGET_LINK_HASH_STYLE} ${ASNEEDED}" +TARGET_LDFLAGS = "-Wl,-O1 ${TARGET_LINK_HASH_STYLE} ${ASNEEDED}" # Pass parallel make options to the compile task EXTRA_OEMAKE_prepend_task-compile = "${PARALLEL_MAKE} " @@ -649,7 +643,7 @@ GPE_MIRROR = "http://gpe.linuxtogo.org/download/source" KERNELORG_MIRROR = "https://cdn.kernel.org/pub" SOURCEFORGE_MIRROR = "https://downloads.sourceforge.net" XLIBS_MIRROR = "https://xlibs.freedesktop.org/release" -XORG_MIRROR = "http://xorg.freedesktop.org/releases" +XORG_MIRROR = "https://www.x.org/releases/" SAVANNAH_GNU_MIRROR = "https://download.savannah.gnu.org/releases" SAVANNAH_NONGNU_MIRROR = "https://download.savannah.nongnu.org/releases" CPAN_MIRROR = "https://search.cpan.org/CPAN" @@ -676,12 +670,6 @@ SRC_URI[vardepsexclude] += "\ # export DEBIAN_MIRROR = "http://ftp.de.debian.org/debian/pool" # into your local.conf -FETCHCMD_svn = "/usr/bin/env svn --non-interactive --trust-server-cert" -FETCHCMD_cvs = "/usr/bin/env cvs" -FETCHCMD_wget = "/usr/bin/env wget -t 2 -T 30 --passive-ftp --no-check-certificate" -FETCHCMD_bzr = "/usr/bin/env bzr" -FETCHCMD_hg = "/usr/bin/env hg" - SRCDATE = "${DATE}" SRCREV ??= "INVALID" AUTOREV = "${@bb.fetch2.get_autorev(d)}" @@ -839,7 +827,7 @@ DISTRO_FEATURES_NATIVESDK ?= "x11" DISTRO_FEATURES_FILTER_NATIVE ?= "api-documentation" DISTRO_FEATURES_FILTER_NATIVESDK ?= "api-documentation" -DISTRO_FEATURES_BACKFILL = "pulseaudio sysvinit bluez5 gobject-introspection-data ldconfig" +DISTRO_FEATURES_BACKFILL = "pulseaudio sysvinit gobject-introspection-data ldconfig" MACHINE_FEATURES_BACKFILL = "rtc qemu-usermode" COMBINED_FEATURES = "${@oe.utils.set_intersect('DISTRO_FEATURES', 'MACHINE_FEATURES', d)}" @@ -884,8 +872,8 @@ BB_HASHBASE_WHITELIST ?= "TMPDIR FILE PATH PWD BB_TASKHASH BBPATH BBSERVER DL_DI CCACHE_DIR EXTERNAL_TOOLCHAIN CCACHE CCACHE_NOHASHDIR LICENSE_PATH SDKPKGSUFFIX \ WARN_QA ERROR_QA WORKDIR STAMPCLEAN PKGDATA_DIR BUILD_ARCH SSTATE_PKGARCH \ BB_WORKERCONTEXT BB_LIMITEDDEPS BB_UNIHASH extend_recipe_sysroot DEPLOY_DIR \ - SSTATE_HASHEQUIV_METHOD SSTATE_HASHEQUIV_SERVER SSTATE_HASHEQUIV_REPORT_TASKDATA \ - SSTATE_HASHEQUIV_OWNER CCACHE_TOP_DIR" + SSTATE_HASHEQUIV_METHOD SSTATE_HASHEQUIV_REPORT_TASKDATA \ + SSTATE_HASHEQUIV_OWNER CCACHE_TOP_DIR BB_HASHSERVE" BB_HASHCONFIG_WHITELIST ?= "${BB_HASHBASE_WHITELIST} DATE TIME SSH_AGENT_PID \ SSH_AUTH_SOCK PSEUDO_BUILD BB_ENV_EXTRAWHITE DISABLE_SANITY_CHECKS \ PARALLEL_MAKE BB_NUMBER_THREADS BB_ORIGENV BB_INVALIDCONF BBINCLUDED \ diff --git a/Contrib-Inspur/openbmc/poky/meta/conf/conf-notes.txt b/Contrib-Inspur/openbmc/poky/meta/conf/conf-notes.txt index f1a4f4da..5af13a83 100644 --- a/Contrib-Inspur/openbmc/poky/meta/conf/conf-notes.txt +++ b/Contrib-Inspur/openbmc/poky/meta/conf/conf-notes.txt @@ -9,4 +9,9 @@ Common targets are: meta-toolchain meta-ide-support -You can also run generated qemu images with a command like 'runqemu qemux86' +You can also run generated qemu images with a command like 'runqemu qemux86'. + +Other commonly useful commands are: + - 'devtool' and 'recipetool' handle common recipe tasks + - 'bitbake-layers' handles common layer tasks + - 'oe-pkgdata-util' handles common target package tasks diff --git a/Contrib-Inspur/openbmc/poky/meta/conf/distro/defaultsetup.conf b/Contrib-Inspur/openbmc/poky/meta/conf/distro/defaultsetup.conf index 20e61232..66fd2465 100644 --- a/Contrib-Inspur/openbmc/poky/meta/conf/distro/defaultsetup.conf +++ b/Contrib-Inspur/openbmc/poky/meta/conf/distro/defaultsetup.conf @@ -1,7 +1,6 @@ include conf/distro/include/default-providers.inc include conf/distro/include/default-versions.inc include conf/distro/include/default-distrovars.inc -include conf/distro/include/world-broken.inc include conf/distro/include/maintainers.inc TCMODE ?= "default" @@ -23,3 +22,6 @@ PACKAGE_CLASSES ?= "package_ipk" INHERIT_BLACKLIST = "blacklist" INHERIT_DISTRO ?= "debian devshell sstate license remove-libtool" INHERIT += "${PACKAGE_CLASSES} ${USER_CLASSES} ${INHERIT_DISTRO} ${INHERIT_BLACKLIST}" + +INIT_MANAGER ??= "none" +require conf/distro/include/init-manager-${INIT_MANAGER}.inc diff --git a/Contrib-Inspur/openbmc/poky/meta/conf/distro/include/default-providers.inc b/Contrib-Inspur/openbmc/poky/meta/conf/distro/include/default-providers.inc index 2be33787..ea88bd48 100644 --- a/Contrib-Inspur/openbmc/poky/meta/conf/distro/include/default-providers.inc +++ b/Contrib-Inspur/openbmc/poky/meta/conf/distro/include/default-providers.inc @@ -5,6 +5,8 @@ PREFERRED_PROVIDER_virtual/xserver ?= "xserver-xorg" PREFERRED_PROVIDER_virtual/xserver-xf86 ?= "xserver-xorg" PREFERRED_PROVIDER_virtual/egl ?= "mesa" PREFERRED_PROVIDER_virtual/libgl ?= "mesa" +PREFERRED_PROVIDER_virtual/libgl-native ?= "mesa-native" +PREFERRED_PROVIDER_virtual/nativesdk-libgl ?= "nativesdk-mesa" PREFERRED_PROVIDER_virtual/libgles1 ?= "mesa" PREFERRED_PROVIDER_virtual/libgles2 ?= "mesa" PREFERRED_PROVIDER_virtual/mesa ?= "mesa" @@ -44,7 +46,6 @@ PREFERRED_PROVIDER_nativesdk-opkg ?= "nativesdk-opkg" PREFERRED_PROVIDER_console-tools ?= "kbd" PREFERRED_PROVIDER_gzip-native ?= "pigz-native" PREFERRED_PROVIDER_udev ?= "${@bb.utils.contains('DISTRO_FEATURES','systemd','systemd','eudev',d)}" -PREFERRED_RPROVIDER_bluez-hcidump ?= "${@bb.utils.contains('DISTRO_FEATURES','bluetooth bluez5','bluez5','bluez-hcidump',d)}" # Alternative is ltp-ddt in meta-oe: meta-oe/recipes-devtools/ltp-ddt/ltp-ddt_0.0.4.bb PREFERRED_PROVIDER_ltp ?= "ltp" PREFERRED_PROVIDER_getopt ?= "util-linux-getopt" diff --git a/Contrib-Inspur/openbmc/poky/meta/conf/distro/include/distro_alias.inc b/Contrib-Inspur/openbmc/poky/meta/conf/distro/include/distro_alias.inc index d2ccb1ee..e314642b 100644 --- a/Contrib-Inspur/openbmc/poky/meta/conf/distro/include/distro_alias.inc +++ b/Contrib-Inspur/openbmc/poky/meta/conf/distro/include/distro_alias.inc @@ -43,9 +43,6 @@ DISTRO_PN_ALIAS_pn-core-image-base = "OE-Core" DISTRO_PN_ALIAS_pn-core-image-clutter = "OE-Core" DISTRO_PN_ALIAS_pn-core-image-full-cmdline = "OE-Core" DISTRO_PN_ALIAS_pn-core-image-kernel-dev = "OE-Core" -DISTRO_PN_ALIAS_pn-core-image-lsb = "OE-Core" -DISTRO_PN_ALIAS_pn-core-image-lsb-dev = "OE-Core" -DISTRO_PN_ALIAS_pn-core-image-lsb-sdk = "OE-Core" DISTRO_PN_ALIAS_pn-core-image-minimal = "OE-Core" DISTRO_PN_ALIAS_pn-core-image-minimal-dev = "OE-Core" DISTRO_PN_ALIAS_pn-core-image-minimal-initramfs = "OE-Core" @@ -80,8 +77,6 @@ DISTRO_PN_ALIAS_pn-docbook-xml-dtd4-native = "Ubuntu=docbook-xml Fedora=docbook- DISTRO_PN_ALIAS_pn-docbook-xsl-stylesheets = "Fedora=docbook-xsl-stylesheets Opensuse=docbook-xsl-stylesheets" DISTRO_PN_ALIAS_pn-dropbear = "Debian=dropbear Ubuntu=dropbear" DISTRO_PN_ALIAS_pn-dtc = "Fedora=dtc Ubuntu=dtc" -DISTRO_PN_ALIAS_pn-eglinfo-fb = "OE-Core" -DISTRO_PN_ALIAS_pn-eglinfo-x11 = "OE-Core" DISTRO_PN_ALIAS_pn-encodings = "Ubuntu=xfonts-encodings Mandriva=x11-font-encodings Debian=xfonts-encodings" DISTRO_PN_ALIAS_pn-font-alias = "Fedora=xorg-x11-fonts-base Mandriva=x11-font-alias Meego=xorg-x11-fonts" DISTRO_PN_ALIAS_pn-font-util = "Meego=xorg-x11-font-utils Fedora=xorg-x11-font-utils Ubuntu=xfonts-utils Mandriva=x11-font-util Debian=xfonts-utils" @@ -181,7 +176,6 @@ DISTRO_PN_ALIAS_pn-libpcre2 = "Fedora=pcre2 Debian=pcre2 Clear=pcre2" DISTRO_PN_ALIAS_pn-libpng12 = "Debian=libpng12-0 Fedora=libpng" DISTRO_PN_ALIAS_pn-libpod-plainer-perl = "OSPDT" DISTRO_PN_ALIAS_pn-libsamplerate0 = "Meego=libsamplerate Fedora=libsamplerate OpenSuSE=libsamplerate Ubuntu=libsamplerate Mandriva=libsamplerate Debian=libsamplerate" -DISTRO_PN_ALIAS_pn-libsdl = "Fedora=SDL Opensuse=SDL" DISTRO_PN_ALIAS_pn-libsdl2 = "Fedora=sdl2 Opensuse=libsdl2 Ubuntu=libsdl2 Debian=libsdl2" DISTRO_PN_ALIAS_pn-libsndfile1 = "Meego=libsndfile Fedora=libsndfile OpenSuSE=libsndfile Ubuntu=libsndfile Mandriva=libsndfile Debian=libsndfile" DISTRO_PN_ALIAS_pn-libsoup-2.4 = "Meego=libsoup Fedora=libsoup OpenSuSE=libsoup Ubuntu=libsoup2.4 Mandriva=libsoup Debian=libsoup2.4" @@ -196,7 +190,6 @@ DISTRO_PN_ALIAS_pn-libxft = "Mandriva=libxft Debian=libxft2 Ubuntu=libxft2" DISTRO_PN_ALIAS_pn-libxi = "Ubuntu=libxi Fedora=libXi" DISTRO_PN_ALIAS_pn-libxkbcommon = "Fedora=libxkbcommon Debian=libxkbcommon" DISTRO_PN_ALIAS_pn-libxscrnsaver = "Fedora=libXScrnSaver Ubuntu=libxss1 Mandriva=libxscrnsaver" -DISTRO_PN_ALIAS_pn-libxxf86misc = "Mandriva=libxxf86misc Fedora=libXxf86misc" DISTRO_PN_ALIAS_pn-linux-dummy = "Intel" DISTRO_PN_ALIAS_pn-linux-firmware = "Fedora=linux-firmware Ubuntu=linux-firmware" DISTRO_PN_ALIAS_pn-linux-libc-headers = "Debian=linux-kernel-headers Ubuntu=linux-kernel-headers" @@ -204,8 +197,6 @@ DISTRO_PN_ALIAS_pn-linux-libc-headers-yocto = "Debian=linux-kernel-headers Ubunt DISTRO_PN_ALIAS_pn-linux-yocto = "Debian=linux-base Ubuntu=linux" DISTRO_PN_ALIAS_pn-linux-yocto-rt = "Debian=linux-base Ubuntu=linux" DISTRO_PN_ALIAS_pn-linux-yocto-tiny = "OSPDT" -DISTRO_PN_ALIAS_pn-lsbinitscripts = "Windriver" -DISTRO_PN_ALIAS_pn-lsbtest = "Windriver" DISTRO_PN_ALIAS_pn-ltp = "Mandriva=ltp Ubuntu=ltp" DISTRO_PN_ALIAS_pn-lttng-modules = "OSPDT upstream=http://lttng.org/" DISTRO_PN_ALIAS_pn-lttng-tools = "OSPDT upstream=http://lttng.org/" @@ -267,7 +258,6 @@ DISTRO_PN_ALIAS_pn-packagegroup-core-clutter = "OE-Core" DISTRO_PN_ALIAS_pn-packagegroup-core-device-devel = "OE-Core" DISTRO_PN_ALIAS_pn-packagegroup-core-eclipse-debug = "OE-Core" DISTRO_PN_ALIAS_pn-packagegroup-core-full-cmdline = "OE-Core" -DISTRO_PN_ALIAS_pn-packagegroup-core-lsb = "OE-Core" DISTRO_PN_ALIAS_pn-packagegroup-core-nfs = "OE-Core" DISTRO_PN_ALIAS_pn-packagegroup-core-sdk = "OE-Core" DISTRO_PN_ALIAS_pn-packagegroup-core-ssh-dropbear = "OE-Core" diff --git a/Contrib-Inspur/openbmc/poky/meta/conf/distro/include/init-manager-mdev-busybox.inc b/Contrib-Inspur/openbmc/poky/meta/conf/distro/include/init-manager-mdev-busybox.inc new file mode 100644 index 00000000..4e3be14a --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/conf/distro/include/init-manager-mdev-busybox.inc @@ -0,0 +1,7 @@ +# enable mdev/busybox for init +DISTRO_FEATURES_BACKFILL_CONSIDERED_append = " systemd sysvinit" +VIRTUAL-RUNTIME_dev_manager ??= "busybox-mdev" +VIRTUAL-RUNTIME_init_manager ??= "busybox" +VIRTUAL-RUNTIME_initscripts ??= "initscripts" +VIRTUAL-RUNTIME_keymaps ??= "keymaps" +VIRTUAL-RUNTIME_login_manager ??= "busybox" diff --git a/Contrib-Inspur/openbmc/poky/meta/conf/distro/include/init-manager-none.inc b/Contrib-Inspur/openbmc/poky/meta/conf/distro/include/init-manager-none.inc new file mode 100644 index 00000000..bbedf898 --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/conf/distro/include/init-manager-none.inc @@ -0,0 +1,3 @@ +VIRTUAL-RUNTIME_init_manager ??= "sysvinit" +VIRTUAL-RUNTIME_initscripts ??= "initscripts" +VIRTUAL-RUNTIME_login_manager ??= "busybox" diff --git a/Contrib-Inspur/openbmc/poky/meta/conf/distro/include/init-manager-systemd.inc b/Contrib-Inspur/openbmc/poky/meta/conf/distro/include/init-manager-systemd.inc new file mode 100644 index 00000000..1558b852 --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/conf/distro/include/init-manager-systemd.inc @@ -0,0 +1,6 @@ +# Use systemd for system initialization +DISTRO_FEATURES_append = " systemd" +DISTRO_FEATURES_BACKFILL_CONSIDERED_append = " sysvinit" +VIRTUAL-RUNTIME_init_manager ??= "systemd" +VIRTUAL-RUNTIME_initscripts ??= "systemd-compat-units" +VIRTUAL-RUNTIME_login_manager ??= "shadow-base" diff --git a/Contrib-Inspur/openbmc/poky/meta/conf/distro/include/init-manager-sysvinit.inc b/Contrib-Inspur/openbmc/poky/meta/conf/distro/include/init-manager-sysvinit.inc new file mode 100644 index 00000000..6b662d60 --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/conf/distro/include/init-manager-sysvinit.inc @@ -0,0 +1,6 @@ +# Use sysvinit for system initialization +DISTRO_FEATURES_append = " sysvinit" +DISTRO_FEATURES_BACKFILL_CONSIDERED_append = " systemd" +VIRTUAL-RUNTIME_init_manager ??= "sysvinit" +VIRTUAL-RUNTIME_initscripts ??= "initscripts" +VIRTUAL-RUNTIME_login_manager ??= "busybox" diff --git a/Contrib-Inspur/openbmc/poky/meta/conf/distro/include/maintainers.inc b/Contrib-Inspur/openbmc/poky/meta/conf/distro/include/maintainers.inc index 64856e10..d85e5b69 100644 --- a/Contrib-Inspur/openbmc/poky/meta/conf/distro/include/maintainers.inc +++ b/Contrib-Inspur/openbmc/poky/meta/conf/distro/include/maintainers.inc @@ -28,7 +28,7 @@ # Please keep this list in alphabetical order. # RECIPE_MAINTAINER_pn-acl = "Chen Qi " -RECIPE_MAINTAINER_pn-acpica = "Fathi Boudra " +RECIPE_MAINTAINER_pn-acpica = "Ross Burton " RECIPE_MAINTAINER_pn-acpid = "Ross Burton " RECIPE_MAINTAINER_pn-adwaita-icon-theme = "Ross Burton " RECIPE_MAINTAINER_pn-alsa-lib = "Tanu Kaskinen " @@ -66,6 +66,7 @@ RECIPE_MAINTAINER_pn-bind = "Armin Kuster " RECIPE_MAINTAINER_pn-binutils = "Khem Raj " RECIPE_MAINTAINER_pn-binutils-cross-${TARGET_ARCH} = "Khem Raj " RECIPE_MAINTAINER_pn-binutils-cross-canadian-${TRANSLATED_TARGET_ARCH} = "Khem Raj " +RECIPE_MAINTAINER_pn-binutils-cross-testsuite = "Khem Raj " RECIPE_MAINTAINER_pn-binutils-crosssdk-${SDK_SYS} = "Khem Raj " RECIPE_MAINTAINER_pn-bison = "Chen Qi " RECIPE_MAINTAINER_pn-bjam-native = "Alexander Kanavin " @@ -114,8 +115,6 @@ RECIPE_MAINTAINER_pn-core-image-full-cmdline = "Richard Purdie " RECIPE_MAINTAINER_pn-gcc-sanitizers = "Khem Raj " RECIPE_MAINTAINER_pn-gcc-source-8.3.0 = "Khem Raj " -RECIPE_MAINTAINER_pn-gcc-source-9.1.0 = "Khem Raj " +RECIPE_MAINTAINER_pn-gcc-source-9.2.0 = "Khem Raj " RECIPE_MAINTAINER_pn-gccmakedep = "Khem Raj " RECIPE_MAINTAINER_pn-gconf = "Ross Burton " RECIPE_MAINTAINER_pn-gcr = "Alexander Kanavin " @@ -217,10 +214,10 @@ RECIPE_MAINTAINER_pn-glew = "Anuj Mittal " RECIPE_MAINTAINER_pn-glib-2.0 = "Anuj Mittal " RECIPE_MAINTAINER_pn-glib-networking = "Anuj Mittal " RECIPE_MAINTAINER_pn-glibc = "Khem Raj " -RECIPE_MAINTAINER_pn-glibc-initial = "Khem Raj " RECIPE_MAINTAINER_pn-glibc-locale = "Khem Raj " RECIPE_MAINTAINER_pn-glibc-mtrace = "Khem Raj " RECIPE_MAINTAINER_pn-glibc-scripts = "Khem Raj " +RECIPE_MAINTAINER_pn-glibc-testsuite = "Khem Raj " RECIPE_MAINTAINER_pn-glide = "Otavio Salvador " RECIPE_MAINTAINER_pn-gmp = "Khem Raj " RECIPE_MAINTAINER_pn-gnome-desktop-testing = "Ross Burton " @@ -326,6 +323,7 @@ RECIPE_MAINTAINER_pn-libdazzle = "Alexander Kanavin " RECIPE_MAINTAINER_pn-libdmx = "Armin Kuster " RECIPE_MAINTAINER_pn-libdnf = "Alexander Kanavin " RECIPE_MAINTAINER_pn-libdrm = "Otavio Salvador " +RECIPE_MAINTAINER_pn-libedit = "Khem Raj " RECIPE_MAINTAINER_pn-libepoxy = "Anuj Mittal " RECIPE_MAINTAINER_pn-liberation-fonts = "Alexander Kanavin " RECIPE_MAINTAINER_pn-liberror-perl = "Tim Orling " @@ -357,7 +355,7 @@ RECIPE_MAINTAINER_pn-libmatchbox = "Ross Burton " RECIPE_MAINTAINER_pn-libmnl = "Khem Raj " RECIPE_MAINTAINER_pn-libmpc = "Khem Raj " RECIPE_MAINTAINER_pn-libmodule-build-perl = "Tim Orling " -RECIPE_MAINTAINER_pn-libmodulemd = "Alexander Kanavin " +RECIPE_MAINTAINER_pn-libmodulemd-v1 = "Alexander Kanavin " RECIPE_MAINTAINER_pn-libnewt = "Hongxu Jia " RECIPE_MAINTAINER_pn-libnewt-python = "Hongxu Jia " RECIPE_MAINTAINER_pn-libnl = "Alexander Kanavin " @@ -380,13 +378,13 @@ RECIPE_MAINTAINER_pn-libpsl = "Anuj Mittal " RECIPE_MAINTAINER_pn-librepo = "Alexander Kanavin " RECIPE_MAINTAINER_pn-librsvg = "Anuj Mittal " RECIPE_MAINTAINER_pn-libsamplerate0 = "Tanu Kaskinen " -RECIPE_MAINTAINER_pn-libsdl = "Yi Zhao " RECIPE_MAINTAINER_pn-libsdl2 = "Yi Zhao " RECIPE_MAINTAINER_pn-libsecret = "Alexander Kanavin " RECIPE_MAINTAINER_pn-libsm = "Armin Kuster " RECIPE_MAINTAINER_pn-libsndfile1 = "Tanu Kaskinen " RECIPE_MAINTAINER_pn-libsolv = "Anuj Mittal " RECIPE_MAINTAINER_pn-libsoup-2.4 = "Anuj Mittal " +RECIPE_MAINTAINER_pn-libssp-nonshared = "Khem Raj " RECIPE_MAINTAINER_pn-libtasn1 = "Anuj Mittal " RECIPE_MAINTAINER_pn-libtest-needs-perl = "Tim Orling " RECIPE_MAINTAINER_pn-libtheora = "Alexander Kanavin " @@ -405,7 +403,6 @@ RECIPE_MAINTAINER_pn-libva-utils = "Anuj Mittal " RECIPE_MAINTAINER_pn-libvorbis = "Tanu Kaskinen " RECIPE_MAINTAINER_pn-libwebp = "Alexander Kanavin " RECIPE_MAINTAINER_pn-libx11 = "Armin Kuster " -RECIPE_MAINTAINER_pn-libx11-diet = "Armin Kuster " RECIPE_MAINTAINER_pn-libxau = "Armin Kuster " RECIPE_MAINTAINER_pn-libxcb = "Armin Kuster " RECIPE_MAINTAINER_pn-libxcomposite = "Armin Kuster " @@ -442,8 +439,6 @@ RECIPE_MAINTAINER_pn-libxt = "Armin Kuster " RECIPE_MAINTAINER_pn-libxtst = "Armin Kuster " RECIPE_MAINTAINER_pn-libxv = "Armin Kuster " RECIPE_MAINTAINER_pn-libxvmc = "Armin Kuster " -RECIPE_MAINTAINER_pn-libxxf86dga = "Armin Kuster " -RECIPE_MAINTAINER_pn-libxxf86misc = "Armin Kuster " RECIPE_MAINTAINER_pn-libxxf86vm = "Armin Kuster " RECIPE_MAINTAINER_pn-libyaml = "Alexander Kanavin " RECIPE_MAINTAINER_pn-lighttpd = "Alexander Kanavin " @@ -457,9 +452,7 @@ RECIPE_MAINTAINER_pn-linux-yocto-tiny = "Bruce Ashfield Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: -Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. -Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. -THIS SOFTWARE IS PROVIDED BY THE FREEBSD PROJECT ``AS IS`` AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FREEBSD PROJECT OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. -The views and conclusions contained in the software and documentation are those of the authors and should not be interpreted as representing official policies, either expressed or implied, of the FreeBSD Project. +2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/Contrib-Inspur/openbmc/poky/meta/files/common-licenses/Intel b/Contrib-Inspur/openbmc/poky/meta/files/common-licenses/Intel new file mode 100644 index 00000000..29ddf57a --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/files/common-licenses/Intel @@ -0,0 +1,105 @@ +1. Copyright Notice + +Some or all of this work - Copyright (c) 1999 - 2017, Intel Corp. +All rights reserved. + +2. License + +2.1. This is your license from Intel Corp. under its intellectual property +rights. You may have additional license terms from the party that provided +you this software, covering your right to use that party's intellectual +property rights. + +2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a +copy of the source code appearing in this file ("Covered Code") an +irrevocable, perpetual, worldwide license under Intel's copyrights in the +base code distributed originally by Intel ("Original Intel Code") to copy, +make derivatives, distribute, use and display any portion of the Covered +Code in any form, with the right to sublicense such rights; and + +2.3. Intel grants Licensee a non-exclusive and non-transferable patent +license (with the right to sublicense), under only those claims of Intel +patents that are infringed by the Original Intel Code, to make, use, sell, +offer to sell, and import the Covered Code and derivative works thereof +solely to the minimum extent necessary to exercise the above copyright +license, and in no event shall the patent license extend to any additions +to or modifications of the Original Intel Code. No other license or right +is granted directly or by implication, estoppel or otherwise; + +The above copyright and patent license is granted only if the following +conditions are met: + +3. Conditions + +3.1. Redistribution of Source with Rights to Further Distribute Source. +Redistribution of source code of any substantial portion of the Covered +Code or modification with rights to further distribute source must include +the above Copyright Notice, the above License, this list of Conditions, +and the following Disclaimer and Export Compliance provision. In addition, +Licensee must cause all Covered Code to which Licensee contributes to +contain a file documenting the changes Licensee made to create that Covered +Code and the date of any change. Licensee must include in that file the +documentation of any changes made by any predecessor Licensee. Licensee +must include a prominent statement that the modification is derived, +directly or indirectly, from Original Intel Code. + +3.2. Redistribution of Source with no Rights to Further Distribute Source. +Redistribution of source code of any substantial portion of the Covered +Code or modification without rights to further distribute source must +include the following Disclaimer and Export Compliance provision in the +documentation and/or other materials provided with distribution. In +addition, Licensee may not authorize further sublicense of source of any +portion of the Covered Code, and must include terms to the effect that the +license from Licensee to its licensee is limited to the intellectual +property embodied in the software Licensee provides to its licensee, and +not to intellectual property embodied in modifications its licensee may +make. + +3.3. Redistribution of Executable. Redistribution in executable form of any +substantial portion of the Covered Code or modification must reproduce the +above Copyright Notice, and the following Disclaimer and Export Compliance +provision in the documentation and/or other materials provided with the +distribution. + +3.4. Intel retains all right, title, and interest in and to the Original +Intel Code. + +3.5. Neither the name Intel nor any other trademark owned or controlled by +Intel shall be used in advertising or otherwise to promote the sale, use or +other dealings in products derived from or relating to the Covered Code +without prior written authorization from Intel. + +4. Disclaimer and Export Compliance + +4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED +HERE. ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE +IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT, ASSISTANCE, +INSTALLATION, TRAINING OR OTHER SERVICES. INTEL WILL NOT PROVIDE ANY +UPDATES, ENHANCEMENTS OR EXTENSIONS. INTEL SPECIFICALLY DISCLAIMS ANY +IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A +PARTICULAR PURPOSE. + +4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES +OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR +COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT, +SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY +CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL +HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. THESE LIMITATIONS +SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY +LIMITED REMEDY. + +4.3. Licensee shall not export, either directly or indirectly, any of this +software or system incorporating such software without first obtaining any +required license or other approval from the U. S. Department of Commerce or +any other agency or department of the United States Government. In the +event Licensee exports any such software from the United States or +re-exports any such software from a foreign destination, Licensee shall +ensure that the distribution and export/re-export of the software is in +compliance with all laws, regulations, orders, or other restrictions of the +U.S. Export Administration Regulations. Licensee agrees that neither it nor +any of its subsidiaries will export/re-export any technical data, process, +software, or service, directly or indirectly, to any country for which the +United States government or any agency thereof requires an export license, +other governmental approval, or letter of assurance, without first obtaining +such license, approval or letter. + diff --git a/Contrib-Inspur/openbmc/poky/meta/files/ext-sdk-prepare.py b/Contrib-Inspur/openbmc/poky/meta/files/ext-sdk-prepare.py index 96c5212a..163d5e99 100644 --- a/Contrib-Inspur/openbmc/poky/meta/files/ext-sdk-prepare.py +++ b/Contrib-Inspur/openbmc/poky/meta/files/ext-sdk-prepare.py @@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/env python3 # Prepare the build system within the extensible SDK diff --git a/Contrib-Inspur/openbmc/poky/meta/lib/oe/buildhistory_analysis.py b/Contrib-Inspur/openbmc/poky/meta/lib/oe/buildhistory_analysis.py index 62c7a2e5..5b28774c 100644 --- a/Contrib-Inspur/openbmc/poky/meta/lib/oe/buildhistory_analysis.py +++ b/Contrib-Inspur/openbmc/poky/meta/lib/oe/buildhistory_analysis.py @@ -181,7 +181,7 @@ def detect_renamed_dirs(aitems, bitems): diff = difflib.unified_diff(alines, blines, self.fieldname, self.fieldname, lineterm='') out += '\n '.join(list(diff)[2:]) out += '\n --' - elif self.fieldname in img_monitor_files or '/image-files/' in self.path: + elif self.fieldname in img_monitor_files or '/image-files/' in self.path or self.fieldname == "sysroot": if self.filechanges or (self.oldvalue and self.newvalue): fieldname = self.fieldname if '/image-files/' in self.path: @@ -282,7 +282,7 @@ def file_list_to_dict(lines): return adict -def compare_file_lists(alines, blines): +def compare_file_lists(alines, blines, compare_ownership=True): adict = file_list_to_dict(alines) bdict = file_list_to_dict(blines) filechanges = [] @@ -294,16 +294,20 @@ def compare_file_lists(alines, blines): newvalue = newsplitv[0][0] if oldvalue != newvalue: filechanges.append(FileChange(path, FileChange.changetype_type, oldvalue, newvalue)) + # Check permissions oldvalue = splitv[0][1:] newvalue = newsplitv[0][1:] if oldvalue != newvalue: filechanges.append(FileChange(path, FileChange.changetype_perms, oldvalue, newvalue)) - # Check owner/group - oldvalue = '%s/%s' % (splitv[1], splitv[2]) - newvalue = '%s/%s' % (newsplitv[1], newsplitv[2]) - if oldvalue != newvalue: - filechanges.append(FileChange(path, FileChange.changetype_ownergroup, oldvalue, newvalue)) + + if compare_ownership: + # Check owner/group + oldvalue = '%s/%s' % (splitv[1], splitv[2]) + newvalue = '%s/%s' % (newsplitv[1], newsplitv[2]) + if oldvalue != newvalue: + filechanges.append(FileChange(path, FileChange.changetype_ownergroup, oldvalue, newvalue)) + # Check symlink target if newsplitv[0][0] == 'l': if len(splitv) > 3: @@ -409,7 +413,7 @@ def compare_dict_blobs(path, ablob, bblob, report_all, report_ver): if abs(percentchg) < monitor_numeric_threshold: continue elif (not report_all) and key in list_fields: - if key == "FILELIST" and path.endswith("-dbg") and bstr.strip() != '': + if key == "FILELIST" and (path.endswith("-dbg") or path.endswith("-src")) and bstr.strip() != '': continue if key in ['RPROVIDES', 'RDEPENDS', 'RRECOMMENDS', 'RSUGGESTS', 'RREPLACES', 'RCONFLICTS']: (depvera, depverb) = compare_pkg_lists(astr, bstr) @@ -571,6 +575,15 @@ def process_changes(repopath, revision1, revision2='HEAD', report_all=False, rep elif filename.startswith('latest.'): chg = ChangeRecord(path, filename, d.a_blob.data_stream.read().decode('utf-8'), d.b_blob.data_stream.read().decode('utf-8'), True) changes.append(chg) + elif filename == 'sysroot': + alines = d.a_blob.data_stream.read().decode('utf-8').splitlines() + blines = d.b_blob.data_stream.read().decode('utf-8').splitlines() + filechanges = compare_file_lists(alines,blines, compare_ownership=False) + if filechanges: + chg = ChangeRecord(path, filename, None, None, True) + chg.filechanges = filechanges + changes.append(chg) + elif path.startswith('images/'): filename = os.path.basename(d.a_blob.path) if filename in img_monitor_files: diff --git a/Contrib-Inspur/openbmc/poky/meta/lib/oe/classextend.py b/Contrib-Inspur/openbmc/poky/meta/lib/oe/classextend.py index e25122e8..f02fbe9f 100644 --- a/Contrib-Inspur/openbmc/poky/meta/lib/oe/classextend.py +++ b/Contrib-Inspur/openbmc/poky/meta/lib/oe/classextend.py @@ -24,6 +24,8 @@ def extend_name(self, name): if not subs.startswith(self.extname): return "virtual/" + self.extname + "-" + subs return name + if name.startswith("/"): + return name if not name.startswith(self.extname): return self.extname + "-" + name return name diff --git a/Contrib-Inspur/openbmc/poky/meta/lib/oe/copy_buildsystem.py b/Contrib-Inspur/openbmc/poky/meta/lib/oe/copy_buildsystem.py index 5b96121d..31a84f5b 100644 --- a/Contrib-Inspur/openbmc/poky/meta/lib/oe/copy_buildsystem.py +++ b/Contrib-Inspur/openbmc/poky/meta/lib/oe/copy_buildsystem.py @@ -45,6 +45,9 @@ def copy_bitbake_and_layers(self, destdir, workspace_name=None): corebase = os.path.abspath(self.d.getVar('COREBASE')) layers.append(corebase) + # Get relationship between TOPDIR and COREBASE + # Layers should respect it + corebase_relative = os.path.dirname(os.path.relpath(os.path.abspath(self.d.getVar('TOPDIR')), corebase)) # The bitbake build system uses the meta-skeleton layer as a layout # for common recipies, e.g: the recipetool script to create kernel recipies # Add the meta-skeleton layer to be included as part of the eSDK installation @@ -98,7 +101,10 @@ def copy_bitbake_and_layers(self, destdir, workspace_name=None): if corebase == os.path.dirname(layer): layerdestpath += '/' + os.path.basename(corebase) else: - layer_relative = os.path.basename(corebase) + '/' + os.path.relpath(layer, corebase) + layer_relative = os.path.relpath(layer, corebase) + if os.path.dirname(layer_relative) == corebase_relative: + layer_relative = os.path.dirname(corebase_relative) + '/' + layernewname + layer_relative = os.path.basename(corebase) + '/' + layer_relative if os.path.dirname(layer_relative) != layernewname: layerdestpath += '/' + os.path.dirname(layer_relative) @@ -168,10 +174,10 @@ def copy_bitbake_and_layers(self, destdir, workspace_name=None): def generate_locked_sigs(sigfile, d): bb.utils.mkdirhier(os.path.dirname(sigfile)) depd = d.getVar('BB_TASKDEPDATA', False) - tasks = ['%s.%s' % (v[2], v[1]) for v in depd.values()] + tasks = ['%s:%s' % (v[2], v[1]) for v in depd.values()] bb.parse.siggen.dump_lockedsigs(sigfile, tasks) -def prune_lockedsigs(excluded_tasks, excluded_targets, lockedsigs, pruned_output): +def prune_lockedsigs(excluded_tasks, excluded_targets, lockedsigs, onlynative, pruned_output): with open(lockedsigs, 'r') as infile: bb.utils.mkdirhier(os.path.dirname(pruned_output)) with open(pruned_output, 'w') as f: @@ -181,7 +187,11 @@ def prune_lockedsigs(excluded_tasks, excluded_targets, lockedsigs, pruned_output if line.endswith('\\\n'): splitval = line.strip().split(':') if not splitval[1] in excluded_tasks and not splitval[0] in excluded_targets: - f.write(line) + if onlynative: + if 'nativesdk' in splitval[0]: + f.write(line) + else: + f.write(line) else: f.write(line) invalue = False diff --git a/Contrib-Inspur/openbmc/poky/meta/lib/oe/gpg_sign.py b/Contrib-Inspur/openbmc/poky/meta/lib/oe/gpg_sign.py index 2fd8c3b1..7634d7ef 100644 --- a/Contrib-Inspur/openbmc/poky/meta/lib/oe/gpg_sign.py +++ b/Contrib-Inspur/openbmc/poky/meta/lib/oe/gpg_sign.py @@ -6,7 +6,6 @@ import os import bb -import oe.utils import subprocess import shlex @@ -89,8 +88,7 @@ def detach_sign(self, input_file, keyid, passphrase_file, passphrase=None, armor (_, stderr) = job.communicate(passphrase.encode("utf-8")) if job.returncode: - raise bb.build.FuncFailed("GPG exited with code %d: %s" % - (job.returncode, stderr.decode("utf-8"))) + bb.fatal("GPG exited with code %d: %s" % (job.returncode, stderr.decode("utf-8"))) except IOError as e: bb.error("IO error (%s): %s" % (e.errno, e.strerror)) @@ -108,7 +106,7 @@ def get_gpg_version(self): ver_str = subprocess.check_output(cmd).split()[2].decode("utf-8") return tuple([int(i) for i in ver_str.split("-")[0].split('.')]) except subprocess.CalledProcessError as e: - raise bb.build.FuncFailed("Could not get gpg version: %s" % e) + bb.fatal("Could not get gpg version: %s" % e) def verify(self, sig_file): diff --git a/Contrib-Inspur/openbmc/poky/meta/lib/oe/lsb.py b/Contrib-Inspur/openbmc/poky/meta/lib/oe/lsb.py index 4f2b419e..43e46380 100644 --- a/Contrib-Inspur/openbmc/poky/meta/lib/oe/lsb.py +++ b/Contrib-Inspur/openbmc/poky/meta/lib/oe/lsb.py @@ -110,12 +110,12 @@ def distro_identifier(adjust_hook=None): if adjust_hook: distro_id, release = adjust_hook(distro_id, release) if not distro_id: - return "Unknown" - # Filter out any non-alphanumerics - distro_id = re.sub(r'\W', '', distro_id) + return "unknown" + # Filter out any non-alphanumerics and convert to lowercase + distro_id = re.sub(r'\W', '', distro_id).lower() if release: - id_str = '{0}-{1}'.format(distro_id.lower(), release) + id_str = '{0}-{1}'.format(distro_id, release) else: id_str = distro_id return id_str.replace(' ','-').replace('/','-') diff --git a/Contrib-Inspur/openbmc/poky/meta/lib/oe/package.py b/Contrib-Inspur/openbmc/poky/meta/lib/oe/package.py index b5951322..b8585d42 100644 --- a/Contrib-Inspur/openbmc/poky/meta/lib/oe/package.py +++ b/Contrib-Inspur/openbmc/poky/meta/lib/oe/package.py @@ -265,7 +265,7 @@ def read_shlib_providers(d): bb.debug(2, "Reading shlib providers in %s" % (dir)) if not os.path.exists(dir): continue - for file in os.listdir(dir): + for file in sorted(os.listdir(dir)): m = list_re.match(file) if m: dep_pkg = m.group(1) diff --git a/Contrib-Inspur/openbmc/poky/meta/lib/oe/package_manager.py b/Contrib-Inspur/openbmc/poky/meta/lib/oe/package_manager.py index 06feb4de..4ff19cf0 100644 --- a/Contrib-Inspur/openbmc/poky/meta/lib/oe/package_manager.py +++ b/Contrib-Inspur/openbmc/poky/meta/lib/oe/package_manager.py @@ -217,7 +217,7 @@ def write_index(self): if not os.path.exists(pkgs_file): open(pkgs_file, "w").close() - index_cmds.add('%s -r %s -p %s -m %s' % + index_cmds.add('%s --checksum md5 --checksum sha256 -r %s -p %s -m %s' % (opkg_index_cmd, pkgs_file, pkgs_file, pkgs_dir)) index_sign_files.add(pkgs_file) @@ -298,7 +298,7 @@ def write_index(self): release.write("Label: %s\n" % arch) cmd += "PSEUDO_UNLOAD=1 %s release . >> Release" % apt_ftparchive - + index_cmds.append(cmd) deb_dirs_found = True @@ -570,6 +570,8 @@ def install_complementary(self, globs=None): for lang in split_linguas: globs += " *-locale-%s" % lang + for complementary_linguas in (self.d.getVar('IMAGE_LINGUAS_COMPLEMENTARY') or "").split(): + globs += (" " + complementary_linguas) % lang if globs is None: return @@ -655,7 +657,7 @@ def create_packages_dir(d, subrepo_dir, deploydir, taskname, filterbydependencie pn = d.getVar("PN") seendirs = set() multilibs = {} - + bb.utils.remove(subrepo_dir, recurse=True) bb.utils.mkdirhier(subrepo_dir) @@ -1006,8 +1008,8 @@ def dump_install_solution(self, pkgs): def load_old_install_solution(self): if not os.path.exists(self.solution_manifest): return [] - - return open(self.solution_manifest, 'r').read().split() + with open(self.solution_manifest, 'r') as fd: + return fd.read().split() def _script_num_prefix(self, path): files = os.listdir(path) @@ -1297,6 +1299,8 @@ def insert_feeds_uris(self, feed_uris, feed_base_paths, feed_archs): rootfs_config = os.path.join('%s/etc/opkg/base-feeds.conf' % self.target_rootfs) + os.makedirs('%s/etc/opkg' % self.target_rootfs, exist_ok=True) + feed_uris = self.construct_uris(feed_uris.split(), feed_base_paths.split()) archs = self.pkg_archs.split() if feed_archs is None else feed_archs.split() diff --git a/Contrib-Inspur/openbmc/poky/meta/lib/oe/packagedata.py b/Contrib-Inspur/openbmc/poky/meta/lib/oe/packagedata.py index cbde380b..a82085a7 100644 --- a/Contrib-Inspur/openbmc/poky/meta/lib/oe/packagedata.py +++ b/Contrib-Inspur/openbmc/poky/meta/lib/oe/packagedata.py @@ -17,9 +17,8 @@ def decode(str): if os.access(fn, os.R_OK): import re - f = open(fn, 'r') - lines = f.readlines() - f.close() + with open(fn, 'r') as f: + lines = f.readlines() r = re.compile("([^:]+):\s*(.*)") for l in lines: m = r.match(l) diff --git a/Contrib-Inspur/openbmc/poky/meta/lib/oe/sdk.py b/Contrib-Inspur/openbmc/poky/meta/lib/oe/sdk.py index b4fbdb79..d02a2748 100644 --- a/Contrib-Inspur/openbmc/poky/meta/lib/oe/sdk.py +++ b/Contrib-Inspur/openbmc/poky/meta/lib/oe/sdk.py @@ -88,10 +88,6 @@ def remove(self, path, recurse=False): bb.warn("cannot remove SDK dir: %s" % path) def install_locales(self, pm): - # This is only relevant for glibc - if self.d.getVar("TCLIBC") != "glibc": - return - linguas = self.d.getVar("SDKIMAGE_LINGUAS") if linguas: import fnmatch diff --git a/Contrib-Inspur/openbmc/poky/meta/lib/oe/sstatesig.py b/Contrib-Inspur/openbmc/poky/meta/lib/oe/sstatesig.py index 13af16e4..c566ce5a 100644 --- a/Contrib-Inspur/openbmc/poky/meta/lib/oe/sstatesig.py +++ b/Contrib-Inspur/openbmc/poky/meta/lib/oe/sstatesig.py @@ -59,7 +59,7 @@ def isImage(fn): # is machine specific. # Therefore if we're not a kernel or a module recipe (inheriting the kernel classes) # and we reccomend a kernel-module, we exclude the dependency. - depfn = dep.rsplit(".", 1)[0] + depfn = dep.rsplit(":", 1)[0] if dataCache and isKernel(depfn) and not isKernel(fn): for pkg in dataCache.runrecs[fn]: if " ".join(dataCache.runrecs[fn][pkg]).find("kernel-module-") != -1: @@ -90,8 +90,7 @@ def init_rundepcheck(self, data): def rundep_check(self, fn, recipename, task, dep, depname, dataCache = None): return sstate_rundepfilter(self, fn, recipename, task, dep, depname, dataCache) -class SignatureGeneratorOEBasicHash(bb.siggen.SignatureGeneratorBasicHash): - name = "OEBasicHash" +class SignatureGeneratorOEBasicHashMixIn(object): def init_rundepcheck(self, data): self.abisaferecipes = (data.getVar("SIGGEN_EXCLUDERECIPES_ABISAFE") or "").split() self.saferecipedeps = (data.getVar("SIGGEN_EXCLUDE_SAFE_RECIPE_DEPS") or "").split() @@ -129,12 +128,11 @@ def rundep_check(self, fn, recipename, task, dep, depname, dataCache = None): return sstate_rundepfilter(self, fn, recipename, task, dep, depname, dataCache) def get_taskdata(self): - data = super(bb.siggen.SignatureGeneratorBasicHash, self).get_taskdata() - return (data, self.lockedpnmap, self.lockedhashfn) + return (self.lockedpnmap, self.lockedhashfn, self.lockedhashes) + super().get_taskdata() def set_taskdata(self, data): - coredata, self.lockedpnmap, self.lockedhashfn = data - super(bb.siggen.SignatureGeneratorBasicHash, self).set_taskdata(coredata) + self.lockedpnmap, self.lockedhashfn, self.lockedhashes = data[:3] + super().set_taskdata(data[3:]) def dump_sigs(self, dataCache, options): sigfile = os.getcwd() + "/locked-sigs.inc" @@ -142,8 +140,10 @@ def dump_sigs(self, dataCache, options): self.dump_lockedsigs(sigfile) return super(bb.siggen.SignatureGeneratorBasicHash, self).dump_sigs(dataCache, options) - def get_taskhash(self, fn, task, deps, dataCache): - h = super(bb.siggen.SignatureGeneratorBasicHash, self).get_taskhash(fn, task, deps, dataCache) + def get_taskhash(self, tid, deps, dataCache): + h = super(bb.siggen.SignatureGeneratorBasicHash, self).get_taskhash(tid, deps, dataCache) + + (mc, _, task, fn) = bb.runqueue.split_tid_mcfn(tid) recipename = dataCache.pkg_fn[fn] self.lockedpnmap[fn] = recipename @@ -153,37 +153,27 @@ def get_taskhash(self, fn, task, deps, dataCache): if recipename in self.unlockedrecipes: unlocked = True else: - def get_mc(tid): - tid = tid.rsplit('.', 1)[0] - if tid.startswith('mc:'): - elems = tid.split(':') - return elems[1] def recipename_from_dep(dep): - # The dep entry will look something like - # /path/path/recipename.bb.task, virtual:native:/p/foo.bb.task, - # ... - - fn = dep.rsplit('.', 1)[0] + fn = bb.runqueue.fn_from_tid(dep) return dataCache.pkg_fn[fn] - mc = get_mc(fn) # If any unlocked recipe is in the direct dependencies then the # current recipe should be unlocked as well. - depnames = [ recipename_from_dep(x) for x in deps if mc == get_mc(x)] + depnames = [ recipename_from_dep(x) for x in deps if mc == bb.runqueue.mc_from_tid(x)] if any(x in y for y in depnames for x in self.unlockedrecipes): self.unlockedrecipes[recipename] = '' unlocked = True if not unlocked and recipename in self.lockedsigs: if task in self.lockedsigs[recipename]: - k = fn + "." + task h_locked = self.lockedsigs[recipename][task][0] var = self.lockedsigs[recipename][task][1] - self.lockedhashes[k] = h_locked - self.taskhash[k] = h_locked + self.lockedhashes[tid] = h_locked + unihash = super().get_unihash(tid) + self.taskhash[tid] = h_locked #bb.warn("Using %s %s %s" % (recipename, task, h)) - if h != h_locked: + if h != h_locked and h_locked != unihash: self.mismatch_msgs.append('The %s:%s sig is computed to be %s, but the sig is locked to %s in %s' % (recipename, task, h, h_locked, var)) @@ -191,37 +181,41 @@ def recipename_from_dep(dep): #bb.warn("%s %s %s" % (recipename, task, h)) return h + def get_unihash(self, tid): + if tid in self.lockedhashes: + return self.lockedhashes[tid] + return super().get_unihash(tid) + def dump_sigtask(self, fn, task, stampbase, runtime): - k = fn + "." + task - if k in self.lockedhashes: + tid = fn + ":" + task + if tid in self.lockedhashes: return super(bb.siggen.SignatureGeneratorBasicHash, self).dump_sigtask(fn, task, stampbase, runtime) def dump_lockedsigs(self, sigfile, taskfilter=None): types = {} - for k in self.runtaskdeps: + for tid in self.runtaskdeps: if taskfilter: - if not k in taskfilter: + if not tid in taskfilter: continue - fn = k.rsplit(".",1)[0] + fn = bb.runqueue.fn_from_tid(tid) t = self.lockedhashfn[fn].split(" ")[1].split(":")[5] t = 't-' + t.replace('_', '-') if t not in types: types[t] = [] - types[t].append(k) + types[t].append(tid) with open(sigfile, "w") as f: l = sorted(types) for t in l: f.write('SIGGEN_LOCKEDSIGS_%s = "\\\n' % t) types[t].sort() - sortedk = sorted(types[t], key=lambda k: self.lockedpnmap[k.rsplit(".",1)[0]]) - for k in sortedk: - fn = k.rsplit(".",1)[0] - task = k.rsplit(".",1)[1] - if k not in self.taskhash: + sortedtid = sorted(types[t], key=lambda tid: self.lockedpnmap[bb.runqueue.fn_from_tid(tid)]) + for tid in sortedtid: + (_, _, task, fn) = bb.runqueue.split_tid_mcfn(tid) + if tid not in self.taskhash: continue - f.write(" " + self.lockedpnmap[fn] + ":" + task + ":" + self.taskhash[k] + " \\\n") + f.write(" " + self.lockedpnmap[fn] + ":" + task + ":" + self.get_unihash(tid) + " \\\n") f.write(' "\n') f.write('SIGGEN_LOCKEDSIGS_TYPES_%s = "%s"' % (self.machine, " ".join(l))) @@ -229,25 +223,26 @@ def dump_siglist(self, sigfile): with open(sigfile, "w") as f: tasks = [] for taskitem in self.taskhash: - (fn, task) = taskitem.rsplit(".", 1) + (fn, task) = taskitem.rsplit(":", 1) pn = self.lockedpnmap[fn] tasks.append((pn, task, fn, self.taskhash[taskitem])) for (pn, task, fn, taskhash) in sorted(tasks): - f.write('%s.%s %s %s\n' % (pn, task, fn, taskhash)) + f.write('%s:%s %s %s\n' % (pn, task, fn, taskhash)) - def checkhashes(self, missed, ret, sq_fn, sq_task, sq_hash, sq_hashfn, d): + def checkhashes(self, sq_data, missed, found, d): warn_msgs = [] error_msgs = [] sstate_missing_msgs = [] - for task in range(len(sq_fn)): - if task not in ret: + for tid in sq_data['hash']: + if tid not in found: for pn in self.lockedsigs: - if sq_hash[task] in iter(self.lockedsigs[pn].values()): - if sq_task[task] == 'do_shared_workdir': + taskname = bb.runqueue.taskname_from_tid(tid) + if sq_data['hash'][tid] in iter(self.lockedsigs[pn].values()): + if taskname == 'do_shared_workdir': continue sstate_missing_msgs.append("Locked sig is set for %s:%s (%s) yet not in sstate cache?" - % (pn, sq_task[task], sq_hash[task])) + % (pn, taskname, sq_data['hash'][tid])) checklevel = d.getVar("SIGGEN_LOCKEDSIGS_TASKSIG_CHECK") if checklevel == 'warn': @@ -266,176 +261,20 @@ def checkhashes(self, missed, ret, sq_fn, sq_task, sq_hash, sq_hashfn, d): if error_msgs: bb.fatal("\n".join(error_msgs)) -class SignatureGeneratorOEEquivHash(SignatureGeneratorOEBasicHash): +class SignatureGeneratorOEBasicHash(SignatureGeneratorOEBasicHashMixIn, bb.siggen.SignatureGeneratorBasicHash): + name = "OEBasicHash" + +class SignatureGeneratorOEEquivHash(SignatureGeneratorOEBasicHashMixIn, bb.siggen.SignatureGeneratorUniHashMixIn, bb.siggen.SignatureGeneratorBasicHash): name = "OEEquivHash" def init_rundepcheck(self, data): super().init_rundepcheck(data) - self.server = data.getVar('SSTATE_HASHEQUIV_SERVER') + self.server = data.getVar('BB_HASHSERVE') + if not self.server: + bb.fatal("OEEquivHash requires BB_HASHSERVE to be set") self.method = data.getVar('SSTATE_HASHEQUIV_METHOD') - self.unihashes = bb.persist_data.persist('SSTATESIG_UNIHASH_CACHE_v1_' + self.method.replace('.', '_'), data) - - def get_taskdata(self): - return (self.server, self.method) + super().get_taskdata() - - def set_taskdata(self, data): - self.server, self.method = data[:2] - super().set_taskdata(data[2:]) - - def __get_task_unihash_key(self, task): - # TODO: The key only *needs* to be the taskhash, the task is just - # convenient - return '%s:%s' % (task, self.taskhash[task]) - - def get_stampfile_hash(self, task): - if task in self.taskhash: - # If a unique hash is reported, use it as the stampfile hash. This - # ensures that if a task won't be re-run if the taskhash changes, - # but it would result in the same output hash - unihash = self.unihashes.get(self.__get_task_unihash_key(task)) - if unihash is not None: - return unihash - - return super().get_stampfile_hash(task) - - def get_unihash(self, task): - import urllib - import json - - taskhash = self.taskhash[task] - - key = self.__get_task_unihash_key(task) - - # TODO: This cache can grow unbounded. It probably only needs to keep - # for each task - unihash = self.unihashes.get(key) - if unihash is not None: - return unihash - - # In the absence of being able to discover a unique hash from the - # server, make it be equivalent to the taskhash. The unique "hash" only - # really needs to be a unique string (not even necessarily a hash), but - # making it match the taskhash has a few advantages: - # - # 1) All of the sstate code that assumes hashes can be the same - # 2) It provides maximal compatibility with builders that don't use - # an equivalency server - # 3) The value is easy for multiple independent builders to derive the - # same unique hash from the same input. This means that if the - # independent builders find the same taskhash, but it isn't reported - # to the server, there is a better chance that they will agree on - # the unique hash. - unihash = taskhash - - try: - url = '%s/v1/equivalent?%s' % (self.server, - urllib.parse.urlencode({'method': self.method, 'taskhash': self.taskhash[task]})) - - request = urllib.request.Request(url) - response = urllib.request.urlopen(request) - data = response.read().decode('utf-8') - - json_data = json.loads(data) - - if json_data: - unihash = json_data['unihash'] - # A unique hash equal to the taskhash is not very interesting, - # so it is reported it at debug level 2. If they differ, that - # is much more interesting, so it is reported at debug level 1 - bb.debug((1, 2)[unihash == taskhash], 'Found unihash %s in place of %s for %s from %s' % (unihash, taskhash, task, self.server)) - else: - bb.debug(2, 'No reported unihash for %s:%s from %s' % (task, taskhash, self.server)) - except urllib.error.URLError as e: - bb.warn('Failure contacting Hash Equivalence Server %s: %s' % (self.server, str(e))) - except (KeyError, json.JSONDecodeError) as e: - bb.warn('Poorly formatted response from %s: %s' % (self.server, str(e))) - - self.unihashes[key] = unihash - return unihash - - def report_unihash(self, path, task, d): - import urllib - import json - import tempfile - import base64 - import importlib - - taskhash = d.getVar('BB_TASKHASH') - unihash = d.getVar('BB_UNIHASH') - report_taskdata = d.getVar('SSTATE_HASHEQUIV_REPORT_TASKDATA') == '1' - tempdir = d.getVar('T') - fn = d.getVar('BB_FILENAME') - key = fn + '.do_' + task + ':' + taskhash - - # Sanity checks - cache_unihash = self.unihashes.get(key) - if cache_unihash is None: - bb.fatal('%s not in unihash cache. Please report this error' % key) - - if cache_unihash != unihash: - bb.fatal("Cache unihash %s doesn't match BB_UNIHASH %s" % (cache_unihash, unihash)) - - sigfile = None - sigfile_name = "depsig.do_%s.%d" % (task, os.getpid()) - sigfile_link = "depsig.do_%s" % task - - try: - sigfile = open(os.path.join(tempdir, sigfile_name), 'w+b') - - locs = {'path': path, 'sigfile': sigfile, 'task': task, 'd': d} - - (module, method) = self.method.rsplit('.', 1) - locs['method'] = getattr(importlib.import_module(module), method) - - outhash = bb.utils.better_eval('method(path, sigfile, task, d)', locs) - - try: - url = '%s/v1/equivalent' % self.server - task_data = { - 'taskhash': taskhash, - 'method': self.method, - 'outhash': outhash, - 'unihash': unihash, - 'owner': d.getVar('SSTATE_HASHEQUIV_OWNER') - } - - if report_taskdata: - sigfile.seek(0) - - task_data['PN'] = d.getVar('PN') - task_data['PV'] = d.getVar('PV') - task_data['PR'] = d.getVar('PR') - task_data['task'] = task - task_data['outhash_siginfo'] = sigfile.read().decode('utf-8') - - headers = {'content-type': 'application/json'} - - request = urllib.request.Request(url, json.dumps(task_data).encode('utf-8'), headers) - response = urllib.request.urlopen(request) - data = response.read().decode('utf-8') - - json_data = json.loads(data) - new_unihash = json_data['unihash'] - - if new_unihash != unihash: - bb.debug(1, 'Task %s unihash changed %s -> %s by server %s' % (taskhash, unihash, new_unihash, self.server)) - else: - bb.debug(1, 'Reported task %s as unihash %s to %s' % (taskhash, unihash, self.server)) - except urllib.error.URLError as e: - bb.warn('Failure contacting Hash Equivalence Server %s: %s' % (self.server, str(e))) - except (KeyError, json.JSONDecodeError) as e: - bb.warn('Poorly formatted response from %s: %s' % (self.server, str(e))) - finally: - if sigfile: - sigfile.close() - - sigfile_link_path = os.path.join(tempdir, sigfile_link) - bb.utils.remove(sigfile_link_path) - - try: - os.symlink(sigfile_name, sigfile_link_path) - except OSError: - pass + if not self.method: + bb.fatal("OEEquivHash requires SSTATE_HASHEQUIV_METHOD to be set") # Insert these classes into siggen's namespace so it can see and select them bb.siggen.SignatureGeneratorOEBasic = SignatureGeneratorOEBasic @@ -452,7 +291,7 @@ def find_siginfo(pn, taskname, taskhashlist, d): if not taskname: # We have to derive pn and taskname key = pn - splitit = key.split('.bb.') + splitit = key.split('.bb:') taskname = splitit[1] pn = os.path.basename(splitit[0]).split('_')[0] if key.startswith('virtual:native:'): diff --git a/Contrib-Inspur/openbmc/poky/meta/lib/oe/terminal.py b/Contrib-Inspur/openbmc/poky/meta/lib/oe/terminal.py index 9bda3efd..a1daa2be 100644 --- a/Contrib-Inspur/openbmc/poky/meta/lib/oe/terminal.py +++ b/Contrib-Inspur/openbmc/poky/meta/lib/oe/terminal.py @@ -55,7 +55,7 @@ def __init__(self, sh_cmd, title=None, env=None, d=None): raise UnsupportedTerminal(self.name) class Gnome(XTerminal): - command = 'gnome-terminal -t "{title}" -x {command}' + command = 'gnome-terminal -t "{title}" -- {command}' priority = 2 def __init__(self, sh_cmd, title=None, env=None, d=None): diff --git a/Contrib-Inspur/openbmc/poky/meta/lib/oe/types.py b/Contrib-Inspur/openbmc/poky/meta/lib/oe/types.py index 77ee7ee5..bbbabafb 100644 --- a/Contrib-Inspur/openbmc/poky/meta/lib/oe/types.py +++ b/Contrib-Inspur/openbmc/poky/meta/lib/oe/types.py @@ -154,7 +154,8 @@ def path(value, relativeto='', normalize='true', mustexist='false'): if boolean(mustexist): try: - open(value, 'r') + with open(value, 'r'): + pass except IOError as exc: if exc.errno == errno.ENOENT: raise ValueError("{0}: {1}".format(value, os.strerror(errno.ENOENT))) @@ -183,4 +184,3 @@ def qemu_use_kvm(kvm, target_arch): elif build_arch == target_arch: use_kvm = True return use_kvm - diff --git a/Contrib-Inspur/openbmc/poky/meta/lib/oe/useradd.py b/Contrib-Inspur/openbmc/poky/meta/lib/oe/useradd.py index bedfe0ec..8fc77568 100644 --- a/Contrib-Inspur/openbmc/poky/meta/lib/oe/useradd.py +++ b/Contrib-Inspur/openbmc/poky/meta/lib/oe/useradd.py @@ -14,7 +14,7 @@ def exit(self, status=0, message=None): error(message) def error(self, message): - raise bb.build.FuncFailed(message) + bb.fatal(message) def split_commands(params): params = re.split('''[ \t]*;[ \t]*(?=(?:[^'"]|'[^']*'|"[^"]*")*$)''', params.strip()) diff --git a/Contrib-Inspur/openbmc/poky/meta/lib/oe/utils.py b/Contrib-Inspur/openbmc/poky/meta/lib/oe/utils.py index d686ce1b..652b2be1 100644 --- a/Contrib-Inspur/openbmc/poky/meta/lib/oe/utils.py +++ b/Contrib-Inspur/openbmc/poky/meta/lib/oe/utils.py @@ -486,7 +486,7 @@ def write_ld_so_conf(d): f.write(d.getVar("base_libdir") + '\n') f.write(d.getVar("libdir") + '\n') -class ImageQAFailed(bb.build.FuncFailed): +class ImageQAFailed(Exception): def __init__(self, description, name=None, logfile=None): self.description = description self.name = name diff --git a/Contrib-Inspur/openbmc/poky/meta/lib/oeqa/core/case.py b/Contrib-Inspur/openbmc/poky/meta/lib/oeqa/core/case.py index aca144e9..aae451fe 100644 --- a/Contrib-Inspur/openbmc/poky/meta/lib/oeqa/core/case.py +++ b/Contrib-Inspur/openbmc/poky/meta/lib/oeqa/core/case.py @@ -4,6 +4,8 @@ # SPDX-License-Identifier: MIT # +import base64 +import zlib import unittest from oeqa.core.exception import OEQAMissingVariable @@ -49,3 +51,50 @@ def _oeTearDown(self): for d in self.decorators: d.tearDownDecorator() self.tearDownMethod() + +class OEPTestResultTestCase: + """ + Mix-in class to provide functions to make interacting with extraresults for + the purposes of storing ptestresult data. + """ + @staticmethod + def _compress_log(log): + logdata = log.encode("utf-8") if isinstance(log, str) else log + logdata = zlib.compress(logdata) + logdata = base64.b64encode(logdata).decode("utf-8") + return {"compressed" : logdata} + + def ptest_rawlog(self, log): + if not hasattr(self, "extraresults"): + self.extraresults = {"ptestresult.sections" : {}} + self.extraresults["ptestresult.rawlogs"] = {"log" : self._compress_log(log)} + + def ptest_section(self, section, duration = None, log = None, logfile = None, exitcode = None): + if not hasattr(self, "extraresults"): + self.extraresults = {"ptestresult.sections" : {}} + + sections = self.extraresults.get("ptestresult.sections") + if section not in sections: + sections[section] = {} + + if log is not None: + sections[section]["log"] = self._compress_log(log) + elif logfile is not None: + with open(logfile, "rb") as f: + sections[section]["log"] = self._compress_log(f.read()) + + if duration is not None: + sections[section]["duration"] = duration + if exitcode is not None: + sections[section]["exitcode"] = exitcode + + def ptest_result(self, section, test, result): + if not hasattr(self, "extraresults"): + self.extraresults = {"ptestresult.sections" : {}} + + sections = self.extraresults.get("ptestresult.sections") + if section not in sections: + sections[section] = {} + resultname = "ptestresult.{}.{}".format(section, test) + self.extraresults[resultname] = {"status" : result} + diff --git a/Contrib-Inspur/openbmc/poky/meta/lib/oeqa/core/context.py b/Contrib-Inspur/openbmc/poky/meta/lib/oeqa/core/context.py index 68819cc3..14fc6a54 100644 --- a/Contrib-Inspur/openbmc/poky/meta/lib/oeqa/core/context.py +++ b/Contrib-Inspur/openbmc/poky/meta/lib/oeqa/core/context.py @@ -64,12 +64,12 @@ def func(): setattr(tclass, 'setUpHooker', skipfuncgen('Skip by the command line argument "%s"' % skip)) def loadTests(self, module_paths, modules=[], tests=[], - modules_manifest="", modules_required=[], filters={}): + modules_manifest="", modules_required=[], **kwargs): if modules_manifest: modules = self._read_modules_from_manifest(modules_manifest) self.loader = self.loaderClass(self, module_paths, modules, tests, - modules_required, filters) + modules_required, **kwargs) self.suites = self.loader.discover() def runTests(self, processes=None, skips=[]): diff --git a/Contrib-Inspur/openbmc/poky/meta/lib/oeqa/core/decorator/__init__.py b/Contrib-Inspur/openbmc/poky/meta/lib/oeqa/core/decorator/__init__.py index 923b2182..1a82518a 100644 --- a/Contrib-Inspur/openbmc/poky/meta/lib/oeqa/core/decorator/__init__.py +++ b/Contrib-Inspur/openbmc/poky/meta/lib/oeqa/core/decorator/__init__.py @@ -6,6 +6,7 @@ from functools import wraps from abc import abstractmethod, ABCMeta +from oeqa.core.utils.misc import strToList decoratorClasses = set() @@ -63,12 +64,16 @@ class OETestDiscover(OETestDecorator): def discover(registry): return registry['cases'] -class OETestFilter(OETestDecorator): +def OETestTag(*tags): + expandedtags = [] + for tag in tags: + expandedtags += strToList(tag) + def decorator(item): + if hasattr(item, "__oeqa_testtags"): + # do not append, create a new list (to handle classes with inheritance) + item.__oeqa_testtags = list(item.__oeqa_testtags) + expandedtags + else: + item.__oeqa_testtags = expandedtags + return item + return decorator - # OETestLoader call it while loading the tests - # in loadTestsFromTestCase method, it needs to - # return a bool, True if needs to be filtered. - # This method must consume the filter used. - @abstractmethod - def filtrate(self, filters): - return False diff --git a/Contrib-Inspur/openbmc/poky/meta/lib/oeqa/core/decorator/data.py b/Contrib-Inspur/openbmc/poky/meta/lib/oeqa/core/decorator/data.py index babc9789..bc4939e8 100644 --- a/Contrib-Inspur/openbmc/poky/meta/lib/oeqa/core/decorator/data.py +++ b/Contrib-Inspur/openbmc/poky/meta/lib/oeqa/core/decorator/data.py @@ -18,6 +18,26 @@ def has_feature(td, feature): return True return False +def has_machine(td, machine): + """ + Checks for MACHINE. + """ + + if (machine in td.get('MACHINE', '')): + return True + return False + +def is_qemu(td, qemu): + """ + Checks if MACHINE is qemu. + """ + + machine = td.get('MACHINE', '') + if (qemu in td.get('MACHINE', '') or + machine.startswith('qemu')): + return True + return False + @registerDecorator class skipIfDataVar(OETestDecorator): """ @@ -113,3 +133,90 @@ def setUpDecorator(self): self.logger.debug(msg) if not has_feature(self.case.td, self.value): self.case.skipTest(self.msg) + +@registerDecorator +class skipIfFeature(OETestDecorator): + """ + Skip test based on DISTRO_FEATURES. + + value must not be in distro features or it will skip the test + with msg as the reason. + """ + + attrs = ('value', 'msg') + + def setUpDecorator(self): + msg = ('Checking if %s is not in DISTRO_FEATURES ' + 'or IMAGE_FEATURES' % (self.value)) + self.logger.debug(msg) + if has_feature(self.case.td, self.value): + self.case.skipTest(self.msg) + +@registerDecorator +class skipIfNotMachine(OETestDecorator): + """ + Skip test based on MACHINE. + + value must be match MACHINE or it will skip the test + with msg as the reason. + """ + + attrs = ('value', 'msg') + + def setUpDecorator(self): + msg = ('Checking if %s is not this MACHINE' % self.value) + self.logger.debug(msg) + if not has_machine(self.case.td, self.value): + self.case.skipTest(self.msg) + +@registerDecorator +class skipIfMachine(OETestDecorator): + """ + Skip test based on Machine. + + value must not be this machine or it will skip the test + with msg as the reason. + """ + + attrs = ('value', 'msg') + + def setUpDecorator(self): + msg = ('Checking if %s is this MACHINE' % self.value) + self.logger.debug(msg) + if has_machine(self.case.td, self.value): + self.case.skipTest(self.msg) + +@registerDecorator +class skipIfNotQemu(OETestDecorator): + """ + Skip test based on MACHINE. + + value must be a qemu MACHINE or it will skip the test + with msg as the reason. + """ + + attrs = ('value', 'msg') + + def setUpDecorator(self): + msg = ('Checking if %s is not this MACHINE' % self.value) + self.logger.debug(msg) + if not is_qemu(self.case.td, self.value): + self.case.skipTest(self.msg) + +@registerDecorator +class skipIfQemu(OETestDecorator): + """ + Skip test based on Qemu Machine. + + value must not be a qemu machine or it will skip the test + with msg as the reason. + """ + + attrs = ('value', 'msg') + + def setUpDecorator(self): + msg = ('Checking if %s is this MACHINE' % self.value) + self.logger.debug(msg) + if is_qemu(self.case.td, self.value): + self.case.skipTest(self.msg) + diff --git a/Contrib-Inspur/openbmc/poky/meta/lib/oeqa/core/decorator/oetag.py b/Contrib-Inspur/openbmc/poky/meta/lib/oeqa/core/decorator/oetag.py deleted file mode 100644 index 8c31138d..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/lib/oeqa/core/decorator/oetag.py +++ /dev/null @@ -1,27 +0,0 @@ -# -# Copyright (C) 2016 Intel Corporation -# -# SPDX-License-Identifier: MIT -# - -from . import OETestFilter, registerDecorator -from oeqa.core.utils.misc import strToList - -def _tagFilter(tags, filters): - return False if set(tags) & set(filters) else True - -@registerDecorator -class OETestTag(OETestFilter): - attrs = ('oetag',) - - def bind(self, registry, case): - super(OETestTag, self).bind(registry, case) - self.oetag = strToList(self.oetag, 'oetag') - - def filtrate(self, filters): - if filters.get('oetag'): - filterx = strToList(filters['oetag'], 'oetag') - del filters['oetag'] - if _tagFilter(self.oetag, filterx): - return True - return False diff --git a/Contrib-Inspur/openbmc/poky/meta/lib/oeqa/core/loader.py b/Contrib-Inspur/openbmc/poky/meta/lib/oeqa/core/loader.py index 7fea0585..0d7970d4 100644 --- a/Contrib-Inspur/openbmc/poky/meta/lib/oeqa/core/loader.py +++ b/Contrib-Inspur/openbmc/poky/meta/lib/oeqa/core/loader.py @@ -16,7 +16,7 @@ from oeqa.core.exception import OEQATestNotFound from oeqa.core.case import OETestCase from oeqa.core.decorator import decoratorClasses, OETestDecorator, \ - OETestFilter, OETestDiscover + OETestDiscover # When loading tests, the unittest framework stores any exceptions and # displays them only when the run method is called. @@ -68,7 +68,7 @@ class OETestLoader(unittest.TestLoader): '_top_level_dir'] def __init__(self, tc, module_paths, modules, tests, modules_required, - filters, *args, **kwargs): + *args, **kwargs): self.tc = tc self.modules = _built_modules_dict(modules) @@ -76,13 +76,7 @@ def __init__(self, tc, module_paths, modules, tests, modules_required, self.tests = tests self.modules_required = modules_required - self.filters = filters - self.decorator_filters = [d for d in decoratorClasses if \ - issubclass(d, OETestFilter)] - self._validateFilters(self.filters, self.decorator_filters) - self.used_filters = [d for d in self.decorator_filters - for f in self.filters - if f in d.attrs] + self.tags_filter = kwargs.get("tags_filter", None) if isinstance(module_paths, str): module_paths = [module_paths] @@ -104,28 +98,6 @@ def _patchCaseClass(self, testCaseClass): setattr(testCaseClass, 'td', self.tc.td) setattr(testCaseClass, 'logger', self.tc.logger) - def _validateFilters(self, filters, decorator_filters): - # Validate if filter isn't empty - for key,value in filters.items(): - if not value: - raise TypeError("Filter %s specified is empty" % key) - - # Validate unique attributes - attr_filters = [attr for clss in decorator_filters \ - for attr in clss.attrs] - dup_attr = [attr for attr in attr_filters - if attr_filters.count(attr) > 1] - if dup_attr: - raise TypeError('Detected duplicated attribute(s) %s in filter' - ' decorators' % ' ,'.join(dup_attr)) - - # Validate if filter is supported - for f in filters: - if f not in attr_filters: - classes = ', '.join([d.__name__ for d in decorator_filters]) - raise TypeError('Found "%s" filter but not declared in any of ' - '%s decorators' % (f, classes)) - def _registerTestCase(self, case): case_id = case.id() self.tc._registry['cases'][case_id] = case @@ -188,19 +160,20 @@ def _filterTest(self, case): return True # Decorator filters - if self.filters and isinstance(case, OETestCase): - filters = self.filters.copy() - case_decorators = [cd for cd in case.decorators - if cd.__class__ in self.used_filters] - - # Iterate over case decorators to check if needs to be filtered. - for cd in case_decorators: - if cd.filtrate(filters): - return True - - # Case is missing one or more decorators for all the filters - # being used, so filter test case. - if filters: + if self.tags_filter is not None and callable(self.tags_filter): + alltags = set() + # pull tags from the case class + if hasattr(case, "__oeqa_testtags"): + for t in getattr(case, "__oeqa_testtags"): + alltags.add(t) + # pull tags from the method itself + if hasattr(case, test_name): + method = getattr(case, test_name) + if hasattr(method, "__oeqa_testtags"): + for t in getattr(method, "__oeqa_testtags"): + alltags.add(t) + + if self.tags_filter(alltags): return True return False diff --git a/Contrib-Inspur/openbmc/poky/meta/lib/oeqa/core/runner.py b/Contrib-Inspur/openbmc/poky/meta/lib/oeqa/core/runner.py index 930620ea..f656e1a9 100644 --- a/Contrib-Inspur/openbmc/poky/meta/lib/oeqa/core/runner.py +++ b/Contrib-Inspur/openbmc/poky/meta/lib/oeqa/core/runner.py @@ -43,6 +43,7 @@ def __init__(self, tc, *args, **kwargs): self.starttime = {} self.endtime = {} self.progressinfo = {} + self.extraresults = {} # Inject into tc so that TestDepends decorator can see results tc.results = self @@ -129,19 +130,51 @@ def _getTestResultDetails(self, case): return 'UNKNOWN', None - def addSuccess(self, test): + def extractExtraResults(self, test, details = None): + extraresults = None + if details is not None and "extraresults" in details: + extraresults = details.get("extraresults", {}) + elif hasattr(test, "extraresults"): + extraresults = test.extraresults + + if extraresults is not None: + for k, v in extraresults.items(): + # handle updating already existing entries (e.g. ptestresults.sections) + if k in self.extraresults: + self.extraresults[k].update(v) + else: + self.extraresults[k] = v + + def addError(self, test, *args, details = None): + self.extractExtraResults(test, details = details) + return super(OETestResult, self).addError(test, *args) + + def addFailure(self, test, *args, details = None): + self.extractExtraResults(test, details = details) + return super(OETestResult, self).addFailure(test, *args) + + def addSuccess(self, test, details = None): #Added so we can keep track of successes too self.successes.append((test, None)) - super(OETestResult, self).addSuccess(test) + self.extractExtraResults(test, details = details) + return super(OETestResult, self).addSuccess(test) + + def addExpectedFailure(self, test, *args, details = None): + self.extractExtraResults(test, details = details) + return super(OETestResult, self).addExpectedFailure(test, *args) + + def addUnexpectedSuccess(self, test, details = None): + self.extractExtraResults(test, details = details) + return super(OETestResult, self).addUnexpectedSuccess(test) def logDetails(self, json_file_dir=None, configuration=None, result_id=None, dump_streams=False): self.tc.logger.info("RESULTS:") - result = {} + result = self.extraresults logs = {} if hasattr(self.tc, "extraresults"): - result = self.tc.extraresults + result.update(self.tc.extraresults) for case_name in self.tc._registry['cases']: case = self.tc._registry['cases'][case_name] @@ -205,23 +238,20 @@ def _walk_suite(self, suite, func): self._walked_cases = self._walked_cases + 1 def _list_tests_name(self, suite): - from oeqa.core.decorator.oetag import OETestTag - self._walked_cases = 0 def _list_cases(logger, case): - oetag = None - - if hasattr(case, 'decorators'): - for d in case.decorators: - if isinstance(d, OETestTag): - oetag = d.oetag - - logger.info("%s\t\t%s" % (oetag, case.id())) + oetags = [] + if hasattr(case, '__oeqa_testtags'): + oetags = getattr(case, '__oeqa_testtags') + if oetags: + logger.info("%s (%s)" % (case.id(), ",".join(oetags))) + else: + logger.info("%s" % (case.id())) self.tc.logger.info("Listing all available tests:") self._walked_cases = 0 - self.tc.logger.info("id\ttag\t\ttest") + self.tc.logger.info("test (tags)") self.tc.logger.info("-" * 80) self._walk_suite(suite, _list_cases) self.tc.logger.info("-" * 80) diff --git a/Contrib-Inspur/openbmc/poky/meta/lib/oeqa/core/tests/cases/data.py b/Contrib-Inspur/openbmc/poky/meta/lib/oeqa/core/tests/cases/data.py index 0d8de87a..61f88547 100644 --- a/Contrib-Inspur/openbmc/poky/meta/lib/oeqa/core/tests/cases/data.py +++ b/Contrib-Inspur/openbmc/poky/meta/lib/oeqa/core/tests/cases/data.py @@ -5,7 +5,7 @@ # from oeqa.core.case import OETestCase -from oeqa.core.decorator.oetag import OETestTag +from oeqa.core.decorator import OETestTag from oeqa.core.decorator.data import OETestDataDepends class DataTest(OETestCase): diff --git a/Contrib-Inspur/openbmc/poky/meta/lib/oeqa/core/tests/cases/oetag.py b/Contrib-Inspur/openbmc/poky/meta/lib/oeqa/core/tests/cases/oetag.py index 4e1d0809..52f97dfd 100644 --- a/Contrib-Inspur/openbmc/poky/meta/lib/oeqa/core/tests/cases/oetag.py +++ b/Contrib-Inspur/openbmc/poky/meta/lib/oeqa/core/tests/cases/oetag.py @@ -5,10 +5,9 @@ # from oeqa.core.case import OETestCase -from oeqa.core.decorator.oetag import OETestTag +from oeqa.core.decorator import OETestTag class TagTest(OETestCase): - @OETestTag('goodTag') def testTagGood(self): self.assertTrue(True, msg='How is this possible?') @@ -17,5 +16,23 @@ def testTagGood(self): def testTagOther(self): self.assertTrue(True, msg='How is this possible?') + @OETestTag('otherTag', 'multiTag') + def testTagOtherMulti(self): + self.assertTrue(True, msg='How is this possible?') + def testTagNone(self): self.assertTrue(True, msg='How is this possible?') + +@OETestTag('classTag') +class TagClassTest(OETestCase): + @OETestTag('otherTag') + def testTagOther(self): + self.assertTrue(True, msg='How is this possible?') + + @OETestTag('otherTag', 'multiTag') + def testTagOtherMulti(self): + self.assertTrue(True, msg='How is this possible?') + + def testTagNone(self): + self.assertTrue(True, msg='How is this possible?') + diff --git a/Contrib-Inspur/openbmc/poky/meta/lib/oeqa/core/tests/common.py b/Contrib-Inspur/openbmc/poky/meta/lib/oeqa/core/tests/common.py index 39efd504..88cc758a 100644 --- a/Contrib-Inspur/openbmc/poky/meta/lib/oeqa/core/tests/common.py +++ b/Contrib-Inspur/openbmc/poky/meta/lib/oeqa/core/tests/common.py @@ -30,9 +30,9 @@ def setUp(self): directory = os.path.dirname(os.path.abspath(__file__)) self.cases_path = os.path.join(directory, 'cases') - def _testLoader(self, d={}, modules=[], tests=[], filters={}): + def _testLoader(self, d={}, modules=[], tests=[], **kwargs): from oeqa.core.context import OETestContext tc = OETestContext(d, self.logger) tc.loadTests(self.cases_path, modules=modules, tests=tests, - filters=filters) + **kwargs) return tc diff --git a/Contrib-Inspur/openbmc/poky/meta/lib/oeqa/core/tests/test_data.py b/Contrib-Inspur/openbmc/poky/meta/lib/oeqa/core/tests/test_data.py index 50811bb3..ac74098b 100755 --- a/Contrib-Inspur/openbmc/poky/meta/lib/oeqa/core/tests/test_data.py +++ b/Contrib-Inspur/openbmc/poky/meta/lib/oeqa/core/tests/test_data.py @@ -22,8 +22,9 @@ def test_data_fail_missing_variable(self): expectedException = "oeqa.core.exception.OEQAMissingVariable" tc = self._testLoader(modules=self.modules) - self.assertEqual(False, tc.runTests().wasSuccessful()) - for test, data in tc.errors: + results = tc.runTests() + self.assertFalse(results.wasSuccessful()) + for test, data in results.errors: expect = False if expectedException in data: expect = True @@ -35,8 +36,9 @@ def test_data_fail_wrong_variable(self): d = {'IMAGE' : 'core-image-sato', 'ARCH' : 'arm'} tc = self._testLoader(d=d, modules=self.modules) - self.assertEqual(False, tc.runTests().wasSuccessful()) - for test, data in tc.failures: + results = tc.runTests() + self.assertFalse(results.wasSuccessful()) + for test, data in results.failures: expect = False if expectedError in data: expect = True diff --git a/Contrib-Inspur/openbmc/poky/meta/lib/oeqa/core/tests/test_decorators.py b/Contrib-Inspur/openbmc/poky/meta/lib/oeqa/core/tests/test_decorators.py index 499cd66f..b798bf7d 100755 --- a/Contrib-Inspur/openbmc/poky/meta/lib/oeqa/core/tests/test_decorators.py +++ b/Contrib-Inspur/openbmc/poky/meta/lib/oeqa/core/tests/test_decorators.py @@ -14,35 +14,58 @@ from oeqa.core.exception import OEQADependency from oeqa.core.utils.test import getCaseMethod, getSuiteCasesNames, getSuiteCasesIDs -class TestFilterDecorator(TestBase): - - def _runFilterTest(self, modules, filters, expect, msg): - tc = self._testLoader(modules=modules, filters=filters) - test_loaded = set(getSuiteCasesNames(tc.suites)) - self.assertEqual(expect, test_loaded, msg=msg) +class TestTagDecorator(TestBase): + def _runTest(self, modules, filterfn, expect): + tc = self._testLoader(modules = modules, tags_filter = filterfn) + test_loaded = set(getSuiteCasesIDs(tc.suites)) + self.assertEqual(expect, test_loaded) def test_oetag(self): - # Get all cases without filtering. - filter_all = {} - test_all = {'testTagGood', 'testTagOther', 'testTagNone'} - msg_all = 'Failed to get all oetag cases without filtering.' - - # Get cases with 'goodTag'. - filter_good = {'oetag':'goodTag'} - test_good = {'testTagGood'} - msg_good = 'Failed to get just one test filtering with "goodTag" oetag.' - - # Get cases with an invalid tag. - filter_invalid = {'oetag':'invalidTag'} - test_invalid = set() - msg_invalid = 'Failed to filter all test using an invalid oetag.' - - tests = ((filter_all, test_all, msg_all), - (filter_good, test_good, msg_good), - (filter_invalid, test_invalid, msg_invalid)) - - for test in tests: - self._runFilterTest(['oetag'], test[0], test[1], test[2]) + # get all cases without any filtering + self._runTest(['oetag'], None, { + 'oetag.TagTest.testTagGood', + 'oetag.TagTest.testTagOther', + 'oetag.TagTest.testTagOtherMulti', + 'oetag.TagTest.testTagNone', + 'oetag.TagClassTest.testTagOther', + 'oetag.TagClassTest.testTagOtherMulti', + 'oetag.TagClassTest.testTagNone', + }) + + # exclude any case with tags + self._runTest(['oetag'], lambda tags: tags, { + 'oetag.TagTest.testTagNone', + }) + + # exclude any case with otherTag + self._runTest(['oetag'], lambda tags: "otherTag" in tags, { + 'oetag.TagTest.testTagGood', + 'oetag.TagTest.testTagNone', + 'oetag.TagClassTest.testTagNone', + }) + + # exclude any case with classTag + self._runTest(['oetag'], lambda tags: "classTag" in tags, { + 'oetag.TagTest.testTagGood', + 'oetag.TagTest.testTagOther', + 'oetag.TagTest.testTagOtherMulti', + 'oetag.TagTest.testTagNone', + }) + + # include any case with classTag + self._runTest(['oetag'], lambda tags: "classTag" not in tags, { + 'oetag.TagClassTest.testTagOther', + 'oetag.TagClassTest.testTagOtherMulti', + 'oetag.TagClassTest.testTagNone', + }) + + # include any case with classTag or no tags + self._runTest(['oetag'], lambda tags: tags and "classTag" not in tags, { + 'oetag.TagTest.testTagNone', + 'oetag.TagClassTest.testTagOther', + 'oetag.TagClassTest.testTagOtherMulti', + 'oetag.TagClassTest.testTagNone', + }) class TestDependsDecorator(TestBase): modules = ['depends'] diff --git a/Contrib-Inspur/openbmc/poky/meta/lib/oeqa/core/tests/test_loader.py b/Contrib-Inspur/openbmc/poky/meta/lib/oeqa/core/tests/test_loader.py index 519ba960..cb38ac84 100755 --- a/Contrib-Inspur/openbmc/poky/meta/lib/oeqa/core/tests/test_loader.py +++ b/Contrib-Inspur/openbmc/poky/meta/lib/oeqa/core/tests/test_loader.py @@ -15,31 +15,7 @@ from oeqa.core.utils.test import getSuiteModules, getSuiteCasesIDs class TestLoader(TestBase): - - def test_fail_empty_filter(self): - filters = {'oetag' : ''} - expect = 'Filter oetag specified is empty' - msg = 'Expected TypeError exception for having invalid filter' - try: - # Must throw TypeError because empty filter - tc = self._testLoader(filters=filters) - self.fail(msg) - except TypeError as e: - result = True if expect in str(e) else False - self.assertTrue(result, msg=msg) - - def test_fail_invalid_filter(self): - filters = {'invalid' : 'good'} - expect = 'filter but not declared in any of' - msg = 'Expected TypeError exception for having invalid filter' - try: - # Must throw TypeError because invalid filter - tc = self._testLoader(filters=filters) - self.fail(msg) - except TypeError as e: - result = True if expect in str(e) else False - self.assertTrue(result, msg=msg) - + @unittest.skip("invalid directory is missing oetag.py") def test_fail_duplicated_module(self): cases_path = self.cases_path invalid_path = os.path.join(cases_path, 'loader', 'invalid') diff --git a/Contrib-Inspur/openbmc/poky/meta/lib/oeqa/core/utils/concurrencytest.py b/Contrib-Inspur/openbmc/poky/meta/lib/oeqa/core/utils/concurrencytest.py index 6bf77188..0f7b3dcc 100644 --- a/Contrib-Inspur/openbmc/poky/meta/lib/oeqa/core/utils/concurrencytest.py +++ b/Contrib-Inspur/openbmc/poky/meta/lib/oeqa/core/utils/concurrencytest.py @@ -21,6 +21,7 @@ import threading import time import io +import json import subunit from queue import Queue @@ -28,6 +29,8 @@ from subunit import ProtocolTestCase, TestProtocolClient from subunit.test_results import AutoTimingTestResultDecorator from testtools import ThreadsafeForwardingResult, iterate_tests +from testtools.content import Content +from testtools.content_type import ContentType from oeqa.utils.commands import get_test_layer import bb.utils @@ -70,6 +73,63 @@ def _add_result_with_semaphore(self, method, test, *args, **kwargs): self.semaphore.release() super(BBThreadsafeForwardingResult, self)._add_result_with_semaphore(method, test, *args, **kwargs) +class ProxyTestResult: + # a very basic TestResult proxy, in order to modify add* calls + def __init__(self, target): + self.result = target + + def _addResult(self, method, test, *args, exception = False, **kwargs): + return method(test, *args, **kwargs) + + def addError(self, test, err = None, **kwargs): + self._addResult(self.result.addError, test, err, exception = True, **kwargs) + + def addFailure(self, test, err = None, **kwargs): + self._addResult(self.result.addFailure, test, err, exception = True, **kwargs) + + def addSuccess(self, test, **kwargs): + self._addResult(self.result.addSuccess, test, **kwargs) + + def addExpectedFailure(self, test, err = None, **kwargs): + self._addResult(self.result.addExpectedFailure, test, err, exception = True, **kwargs) + + def addUnexpectedSuccess(self, test, **kwargs): + self._addResult(self.result.addUnexpectedSuccess, test, **kwargs) + + def __getattr__(self, attr): + return getattr(self.result, attr) + +class ExtraResultsDecoderTestResult(ProxyTestResult): + def _addResult(self, method, test, *args, exception = False, **kwargs): + if "details" in kwargs and "extraresults" in kwargs["details"]: + if isinstance(kwargs["details"]["extraresults"], Content): + kwargs = kwargs.copy() + kwargs["details"] = kwargs["details"].copy() + extraresults = kwargs["details"]["extraresults"] + data = bytearray() + for b in extraresults.iter_bytes(): + data += b + extraresults = json.loads(data.decode()) + kwargs["details"]["extraresults"] = extraresults + return method(test, *args, **kwargs) + +class ExtraResultsEncoderTestResult(ProxyTestResult): + def _addResult(self, method, test, *args, exception = False, **kwargs): + if hasattr(test, "extraresults"): + extras = lambda : [json.dumps(test.extraresults).encode()] + kwargs = kwargs.copy() + if "details" not in kwargs: + kwargs["details"] = {} + else: + kwargs["details"] = kwargs["details"].copy() + kwargs["details"]["extraresults"] = Content(ContentType("application", "json", {'charset': 'utf8'}), extras) + # if using details, need to encode any exceptions into the details obj, + # testtools does not handle "err" and "details" together. + if "details" in kwargs and exception and (len(args) >= 1 and args[0] is not None): + kwargs["details"]["traceback"] = testtools.content.TracebackContent(args[0], test) + args = [] + return method(test, *args, **kwargs) + # # We have to patch subunit since it doesn't understand how to handle addError # outside of a running test case. This can happen if classSetUp() fails @@ -116,7 +176,9 @@ def run(self, result): result.threadprogress = {} for i, (test, testnum) in enumerate(tests): result.threadprogress[i] = [] - process_result = BBThreadsafeForwardingResult(result, semaphore, i, testnum, totaltests) + process_result = BBThreadsafeForwardingResult( + ExtraResultsDecoderTestResult(result), + semaphore, i, testnum, totaltests) # Force buffering of stdout/stderr so the console doesn't get corrupted by test output # as per default in parent code process_result.buffer = True @@ -159,7 +221,7 @@ def removebuilddir(d): while delay and os.path.exists(d + "/bitbake.lock"): time.sleep(1) delay = delay - 1 - bb.utils.prunedir(d) + bb.utils.prunedir(d, ionice=True) def fork_for_tests(concurrency_num, suite): result = [] @@ -231,7 +293,7 @@ def fork_for_tests(concurrency_num, suite): # as per default in parent code subunit_client.buffer = True subunit_result = AutoTimingTestResultDecorator(subunit_client) - process_suite.run(subunit_result) + process_suite.run(ExtraResultsEncoderTestResult(subunit_result)) if ourpid != os.getpid(): os._exit(0) if newbuilddir: diff --git a/Contrib-Inspur/openbmc/poky/meta/lib/oeqa/manual/bsp-hw.json b/Contrib-Inspur/openbmc/poky/meta/lib/oeqa/manual/bsp-hw.json index 4b7c76f7..5c5b9b50 100644 --- a/Contrib-Inspur/openbmc/poky/meta/lib/oeqa/manual/bsp-hw.json +++ b/Contrib-Inspur/openbmc/poky/meta/lib/oeqa/manual/bsp-hw.json @@ -1,30 +1,4 @@ [ - { - "test": { - "@alias": "bsps-hw.bsps-hw.rpm_-__install_dependency_package", - "author": [ - { - "email": "alexandru.c.georgescu@intel.com", - "name": "alexandru.c.georgescu@intel.com" - } - ], - "execution": { - "1": { - "action": "Get a not previously installed RPM package or build one on local machine, which should have run-time dependency.For example, \"mc\" (Midnight Commander, which is a visual file manager) should depend on \"ncurses-terminfo\". \n\n$ bitbake mc \n\n\n", - "expected_results": "" - }, - "2": { - "action": "Copy the package into a system folder (for example /home/root/rpm_packages). \n\n\n", - "expected_results": "" - }, - "3": { - "action": "Run \"rpm -ivh package_name\" and check the output, for example \"rpm -ivh mc.rpm*\" should report the dependency on \"ncurses-terminfo\".\n\n\n\n", - "expected_results": "3 . rpm command should report message when some RPM installation depends on other packages." - } - }, - "summary": "rpm_-__install_dependency_package" - } - }, { "test": { "@alias": "bsps-hw.bsps-hw.boot_and_install_from_USB", @@ -171,28 +145,6 @@ "summary": "shutdown_system" } }, - { - "test": { - "@alias": "bsps-hw.bsps-hw.reboot_system", - "author": [ - { - "email": "alexandru.c.georgescu@intel.com", - "name": "alexandru.c.georgescu@intel.com" - } - ], - "execution": { - "1": { - "action": "boot system", - "expected_results": "" - }, - "2": { - "action": "launch terminal and run \"reboot\"", - "expected_results": "System can reboot successfully . " - } - }, - "summary": "reboot_system" - } - }, { "test": { "@alias": "bsps-hw.bsps-hw.switch_among_multi_applications_and_desktop", @@ -223,114 +175,6 @@ "summary": "switch_among_multi_applications_and_desktop" } }, - { - "test": { - "@alias": "bsps-hw.bsps-hw.USB_-_mount", - "author": [ - { - "email": "alexandru.c.georgescu@intel.com", - "name": "alexandru.c.georgescu@intel.com" - } - ], - "execution": { - "1": { - "action": "Boot system \n\n", - "expected_results": "" - }, - "2": { - "action": "Plug USB stick, it should be mount in /run/media/sd(x) If X-window system does not start and show USB device, then use the terminal to mount it, following the next steps: \na. Locate the usb stick (usually it is on /dev/sdb) \nb. Create a directory with \"mkdir stick\" (so you will have such a path as: /home/root/stick). \nc. Run the command \"mount /dev/sdb /home/root/stick\" to mount USB device on it. \n\n", - "expected_results": "USB device should be mounted in /run/media/sd(x) \nor in /home/root/stick \n\n" - }, - "3": { - "action": "Then you can access USB stick (/home/root/stick) via Terminal or GUI and try various commands and actions like \"cp\", \"mv\", \"touch\" and \"rm\". Type \"dmesg\" command and check for recent mounted devices.", - "expected_results": "Basic commands work properly. The system sends a notification in \"dmesg\" command, showing that the USB stick is accessible and the device is mounted ." - } - }, - "summary": "USB_-_mount" - } - }, - { - "test": { - "@alias": "bsps-hw.bsps-hw.USB_-_read_files", - "author": [ - { - "email": "alexandru.c.georgescu@intel.com", - "name": "alexandru.c.georgescu@intel.com" - } - ], - "execution": { - "1": { - "action": "boot system", - "expected_results": "view/copy successfully" - }, - "2": { - "action": "plug usb stick", - "expected_results": "" - }, - "3": { - "action": "view files in usb by file browser", - "expected_results": "" - }, - "4": { - "action": "copy some files from usb to local hardware", - "expected_results": "" - } - }, - "summary": "USB_-_read_files" - } - }, - { - "test": { - "@alias": "bsps-hw.bsps-hw.USB_-_umount", - "author": [ - { - "email": "alexandru.c.georgescu@intel.com", - "name": "alexandru.c.georgescu@intel.com" - } - ], - "execution": { - "1": { - "action": "boot system", - "expected_results": "usb directory in file browser automatically missed" - }, - "2": { - "action": "plug usb stick", - "expected_results": "" - }, - "3": { - "action": "view files in usb by file browser \n4.unplug usb", - "expected_results": "" - } - }, - "summary": "USB_-_umount" - } - }, - { - "test": { - "@alias": "bsps-hw.bsps-hw.USB_-_write_files", - "author": [ - { - "email": "alexandru.c.georgescu@intel.com", - "name": "alexandru.c.georgescu@intel.com" - } - ], - "execution": { - "1": { - "action": "boot system", - "expected_results": "create/copy successfully" - }, - "2": { - "action": "plug usb stick", - "expected_results": "" - }, - "3": { - "action": "create files in usb \n4.copy some files from local hardware to usb", - "expected_results": "" - } - }, - "summary": "USB_-_write_files" - } - }, { "test": { "@alias": "bsps-hw.bsps-hw.ethernet_static_ip_set_in_connman", @@ -526,7 +370,7 @@ "expected_results": "" }, "4": { - "action": "check ping status \n\nNote: This TC apply only for core-image-full-cmd and core-image-lsb .", + "action": "check ping status \n\nNote: This TC apply only for core-image-full-cmd.", "expected_results": "ping should always work before/after standby" } }, @@ -611,136 +455,6 @@ "summary": "Add_multiple_files_in_media_player" } }, - { - "test": { - "@alias": "bsps-hw.bsps-hw.check_bash_in_image", - "author": [ - { - "email": "alexandru.c.georgescu@intel.com", - "name": "alexandru.c.georgescu@intel.com" - } - ], - "execution": { - "1": { - "action": "After system is up, check if bash command exists with command \"which bash\"", - "expected_results": "bash command should exist in image giving something as below \"/bin/bash\"" - } - }, - "summary": "check_bash_in_image" - } - }, - { - "test": { - "@alias": "bsps-hw.bsps-hw.MicroSD_-__mount", - "author": [ - { - "email": "alexandru.c.georgescu@intel.com", - "name": "alexandru.c.georgescu@intel.com" - } - ], - "execution": { - "1": { - "action": "boot system", - "expected_results": "system notify that MicroSDis accessible" - }, - "2": { - "action": "plug MicroSD card", - "expected_results": "" - } - }, - "summary": "MicroSD_-__mount" - } - }, - { - "test": { - "@alias": "bsps-hw.bsps-hw.MicroSD_-__read_files", - "author": [ - { - "email": "alexandru.c.georgescu@intel.com", - "name": "alexandru.c.georgescu@intel.com" - } - ], - "execution": { - "1": { - "action": "boot system", - "expected_results": "view/copy successfully" - }, - "2": { - "action": "plug MicroSD card", - "expected_results": "" - }, - "3": { - "action": "view files inMicroSD by file browser", - "expected_results": "" - }, - "4": { - "action": "copy some files fromMicroSD to local hardware", - "expected_results": "" - } - }, - "summary": "MicroSD_-__read_files" - } - }, - { - "test": { - "@alias": "bsps-hw.bsps-hw.MicroSD_-__umount", - "author": [ - { - "email": "alexandru.c.georgescu@intel.com", - "name": "alexandru.c.georgescu@intel.com" - } - ], - "execution": { - "1": { - "action": "boot system", - "expected_results": "MicroSD in file browser automatically missed . " - }, - "2": { - "action": "plug MicroSD card", - "expected_results": "" - }, - "3": { - "action": "view files in MicroSDby file browser", - "expected_results": "" - }, - "4": { - "action": "unplug MicroSD", - "expected_results": "" - } - }, - "summary": "MicroSD_-__umount" - } - }, - { - "test": { - "@alias": "bsps-hw.bsps-hw.MicroSD_-__write_files", - "author": [ - { - "email": "alexandru.c.georgescu@intel.com", - "name": "alexandru.c.georgescu@intel.com" - } - ], - "execution": { - "1": { - "action": "boot system", - "expected_results": "create/copy successfully" - }, - "2": { - "action": "plug MicroSD card", - "expected_results": "" - }, - "3": { - "action": "create files in MicroSD", - "expected_results": "" - }, - "4": { - "action": "copy some files from local hardware to MicroSD", - "expected_results": "" - } - }, - "summary": "MicroSD_-__write_files" - } - }, { "test": { "@alias": "bsps-hw.bsps-hw.video_-_libva_check_(ogg_video_play)", @@ -1283,4 +997,4 @@ "summary": "Boot_from_JFFS2_image" } } -] \ No newline at end of file +] diff --git a/Contrib-Inspur/openbmc/poky/meta/lib/oeqa/manual/bsp-qemu.json b/Contrib-Inspur/openbmc/poky/meta/lib/oeqa/manual/bsp-qemu.json deleted file mode 100644 index cf51b6ab..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/lib/oeqa/manual/bsp-qemu.json +++ /dev/null @@ -1,222 +0,0 @@ -[ - { - "test": { - "@alias": "bsps-qemu.bsps-tools.qemu_can_be_started_with_KVM_enabled", - "author": [ - { - "email": "alexandru.c.georgescu@intel.com", - "name": "alexandru.c.georgescu@intel.com" - } - ], - "execution": { - "1": { - "action": "Build a kernel with KVM enabled \n\nIn Local.conf add \n\nQEMU_USE_KVM = \"${@ '1' if os.access('/dev/kvm', os.R_OK|os.W_OK) else '0' }\" \n\n ", - "expected_results": "" - }, - "2": { - "action": "Start qemu with option \"kvm\" with runqemu \n a. If you start qemu with kvm failed, maybe it is because host not install kvm and vhost_net module. Follow below link to install them. \n b. vhost_test refer: https://wiki.yoctoproject.org/wiki/Running_an_x86_Yocto_Linux_image_under_QEMU_KVM \n c. kvm refer: https://wiki.yoctoproject.org/wiki/How_to_enable_KVM_for_Poky_qemu", - "expected_results": "" - }, - "3": { - "action": "Check if qemu starts up and if kvm_intel module is used", - "expected_results": "" - }, - "4": { - "action": "If kvm_intel module is not used when starting qemu, it will show 0 in \"Used by\" column when you run \"lsmod | grep kvm_intel\" ", - "expected_results": "KVM enabled with qemu \nExecute \"lsmod | grep kvm_intel\" from your host twice, before and after you \nstart the qemu with kvm option. Before start, the number should be 0, \nafter start, the number should bigger than 0." - } - }, - "summary": "qemu_can_be_started_with_KVM_enabled" - } - }, - { - "test": { - "@alias": "bsps-qemu.bsps-tools.Post-installation_logging", - "author": [ - { - "email": "yi.zhao@windriver.com", - "name": "yi.zhao@windriver.com" - } - ], - "execution": { - "1": { - "action": "Download the poky source and set environment \n", - "expected_results": "The /var/log/postinstall.log should exist in the first boot. The content of this log is like below: \n\nRunning postinst /etc/rpm-postinsts/man... \nList directory to check the output log \nbin \nboot \ndev \netc \nhome \nlib \nlost+found \nmedia \nmnt \nproc \nrun \nsbin \nsys \ntmp \nusr \nvar \nList nonexist directory to check the stderr redirection log \nls: /nonexist: No such file or directory " - }, - "2": { - "action": "Add the following lines to a .bb file. For expample, meta/recipes-connectivity/openssh/openssh_6.2p2.bb: \n\npkg_postinst_ontarget_${PN} () { \n #!/bin/sh -e \n if [ x\"$D\" = \"x\" ]; then \n echo \"List directory to check the output log\" \n ls / \n echo \"List nonexist directory to check the stderr redirection log\" \n ls /nonexist \n else \n exit 1 \n fi \n} \n\nMake sure the feature \"debug-tweaks\" is added in conf/local.conf \n", - "expected_results": "" - }, - "3": { - "action": "Add ssh-server-openssh to EXTRA_IMAGE_FEATURES in local.conf \n", - "expected_results": "" - }, - "4": { - "action": "Build core-image-minimal \n", - "expected_results": "" - }, - "5": { - "action": "Boot up the image and check the /var/log/postinstall.log ", - "expected_results": "" - } - }, - "summary": "Post-installation_logging" - } - }, - { - "test": { - "@alias": "bsps-qemu.bsps-tools.Add_user_with_cleartext_type_password_during_filesystem_construction", - "author": [ - { - "email": "ke.zou@windriver.com", - "name": "ke.zou@windriver.com" - } - ], - "execution": { - "1": { - "action": "Download the poky source and set the environment \n\n", - "expected_results": "No error during image building procedure. \n" - }, - "2": { - "action": "Add the following lines in conf/local.conf \n\nINHERIT += \"extrausers\" \n\nEXTRA_USERS_PARAMS = \"\\ \nuseradd -s /bin/sh -P 'tester3' tester3;\\ \n\" \n\nThe above settings do the following things: \na. Add a user tester3 with cleartext password 'tester3' ", - "expected_results": "Image can boot up \n" - }, - "3": { - "action": "Build the image\n ", - "expected_results": "Login with user name \"tester3\" and password \"tester3\" " - } - }, - "summary": "Add_user_with_cleartext_type_password_during_filesystem_construction" - } - }, - { - "test": { - "@alias": "bsps-qemu.bsps-tools.rpm_-__install_dependency_package", - "author": [ - { - "email": "alexandru.c.georgescu@intel.com", - "name": "alexandru.c.georgescu@intel.com" - } - ], - "execution": { - "1": { - "action": "Get a not previously installed RPM package or build one on local machine, which should have run-time dependency.For example, \"mc\" (Midnight Commander, which is a visual file manager) should depend on \"ncurses-terminfo\". \n\n$ bitbake mc \n\n\n", - "expected_results": "" - }, - "2": { - "action": "Copy the package into a system folder (for example /home/root/rpm_packages). \n\n\n", - "expected_results": "" - }, - "3": { - "action": "Run \"rpm -ivh package_name\" and check the output, for example \"rpm -ivh mc.rpm*\" should report the dependency on \"ncurses-terminfo\".\n\n\n\n", - "expected_results": "3 . rpm command should report message when some RPM installation depends on other packages." - } - }, - "summary": "rpm_-__install_dependency_package" - } - }, - { - "test": { - "@alias": "bsps-qemu.bsps-tools.Check_rpm_install/removal_log_file_size(auto)", - "author": [ - { - "email": "alexandru.c.georgescu@intel.com", - "name": "alexandru.c.georgescu@intel.com" - } - ], - "execution": { - "1": { - "action": "Get some rpm or other kind of installation packages. \n\n", - "expected_results": "Steps 1- 4 (more than 2.3) \nEach file will occupy around 10MB, and there should be some method to keep rpm log in a small size. (the size of the db of RPMs must not be taking so much space) \nStep 5 (less than or equal to 2.3)\nThe size on /var/lib/rpm/ must keep around 30MB" - }, - "2": { - "action": "After system is up, check the size of log file named as \"log.xxxxxx\" on /var/lib/rpm/log \n\n", - "expected_results": "" - }, - "3": { - "action": "After several install/removal of packages, with either of the install/removal commands (rpm/smart/zypper/dnf install/removal), check again the size of log file. \n\n", - "expected_results": "" - }, - "4": { - "action": "For packages installation, there will be some database files under /var/lib/rpm/, named as \"__db.xxx\" and there will be some log files \nunder /var/lib/rpm/log, named as \"\"log.xxxxxx\"\". \n\nNote: You will only see the log.xxxx on /var/lib/rpm/log mentioned above if the poky version is minor than 2.3.For poky 2.3 or major versions this has been modified and the package RPM4 does not show the logs.xxxx. if major, follow the next step. \n\n", - "expected_results": "" - }, - "5": { - "action": "Repeat steps (1 and 3) and check the size of /var/lib/rpm/ \n\nMore info: https://bugzilla.yoctoproject.org/show_bug.cgi?id=9259", - "expected_results": "" - } - }, - "summary": "Check_rpm_install/removal_log_file_size" - } - }, - { - "test": { - "@alias": "bsps-qemu.bsps-runtime.only_one_connmand_in_background(auto)", - "author": [ - { - "email": "alexandru.c.georgescu@intel.com", - "name": "alexandru.c.georgescu@intel.com" - } - ], - "execution": { - "1": { - "action": "Boot system", - "expected_results": "" - }, - "2": { - "action": "Run \"ps aux |grep connmand\" or \"ps -ef | grep connmand\" or \"ps | grep connmand\"", - "expected_results": "Connmand (connection manager, used to manage internet connections) should be shown as an active process \n\n" - }, - "3": { - "action": "Run command \"connmand\" to try to launch to a second connmand process", - "expected_results": "" - }, - "4": { - "action": "Check, with \"ps\" connmand if a second connmand can be generated ", - "expected_results": "There should be only one connmand process instance in background ." - } - }, - "summary": "only_one_connmand_in_background" - } - }, - { - "test": { - "@alias": "bsps-qemu.bsps-runtime.X_server_can_start_up_with_runlevel_5_boot", - "author": [ - { - "email": "alexandru.c.georgescu@intel.com", - "name": "alexandru.c.georgescu@intel.com" - } - ], - "execution": { - "1": { - "action": "boot up system with default runlevel \n\n", - "expected_results": "X server can start up well and desktop display has no problem . \n\n" - }, - "2": { - "action": "type runlevel at command prompt", - "expected_results": "Output:N 5" - } - }, - "summary": "X_server_can_start_up_with_runlevel_5_boot" - } - }, - { - "test": { - "@alias": "bsps-qemu.bsps-runtime.check_bash_in_image", - "author": [ - { - "email": "alexandru.c.georgescu@intel.com", - "name": "alexandru.c.georgescu@intel.com" - } - ], - "execution": { - "1": { - "action": "After system is up, check if bash command exists with command \"which bash\"", - "expected_results": "bash command should exist in image giving something as below \"/bin/bash\"" - } - }, - "summary": "check_bash_in_image" - } - } -] diff --git a/Contrib-Inspur/openbmc/poky/meta/lib/oeqa/manual/compliance-test.json b/Contrib-Inspur/openbmc/poky/meta/lib/oeqa/manual/compliance-test.json deleted file mode 100644 index 8c13b68e..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/lib/oeqa/manual/compliance-test.json +++ /dev/null @@ -1,106 +0,0 @@ -[ - { - "test": { - "@alias": "compliance-test.compliance-test.LSB_subset_test_suite", - "author": [ - { - "email": "corneliux.stoicescu@intel.com", - "name": "corneliux.stoicescu@intel.com" - } - ], - "execution": { - "1": { - "action": "Get lsd-sdk image and install it on target device or start the image(if it is QEMU) with option \"-m 512M\"", - "expected_results": "" - }, - "2": { - "action": "Comment in /opt/lsb-test/session any tests you don't want to run.", - "expected_results": "" - }, - "3": { - "action": "Run /usr/bin/LSB_Test.sh which should download the LSB suite and set it up. Some packages may fail to download because their location changed on ftp.linuxfoundation.org. You need to manually update /opt/lsb-test/packages_list", - "expected_results": "" - }, - "4": { - "action": "Tests should start automatically, you can use the web interface to reconfigure the setup. ", - "expected_results": "Check the result on wiki https://wiki.yoctoproject.org/wiki/LSB_Result No regression failures should be met." - } - }, - "summary": "LSB_subset_test_suite" - } - }, - { - "test": { - "@alias": "compliance-test.compliance-test.stress_test_-_Genericx86-64", - "author": [ - { - "email": "corneliux.stoicescu@intel.com", - "name": "corneliux.stoicescu@intel.com" - } - ], - "execution": { - "1": { - "action": "Bootup with core-image-lsb-sdk image", - "expected_results": "" - }, - "2": { - "action": "Execute the crashme test with below command \n\n./opt/ltp/runltp f crashme", - "expected_results": "The stress testing should not make the target crash. Check CPU usage and basic functionality of the system after the tests are over. " - } - }, - "summary": "stress_test_-_Genericx86-64" - } - }, - { - "test": { - "@alias": "compliance-test.compliance-test.stress_test_-_- crashme_-_-Beaglebone", - "author": [ - { - "email": "corneliux.stoicescu@intel.com", - "name": "corneliux.stoicescu@intel.com" - } - ], - "execution": { - "1": { - "action": " Get crashme from http://people.delphiforums.com/gjc/crashme.html", - "expected_results": "" - }, - "2": { - "action": "Follow the setup steps on above URL, build crashme in target", - "expected_results": "" - }, - "3": { - "action": " Run crashme for 24 hours", - "expected_results": "Target should not crash with the program." - } - }, - "summary": "stress_test_-_crashme_-Beaglebone" - } - }, - { - "test": { - "@alias": "compliance-test.compliance-test.stress_test_-_ltp_-Beaglebone", - "author": [ - { - "email": "corneliux.stoicescu@intel.com", - "name": "corneliux.stoicescu@intel.com" - } - ], - "execution": { - "1": { - "action": "Build LTP with toolchain or in sdk image", - "expected_results": "" - }, - "2": { - "action": "Copy LTP folder into target, for example, /opt/ltp. Modify script, testscripts/ltpstress.sh, set Iostat=1, NO_NETWORK=1", - "expected_results": "" - }, - "3": { - "action": "cd testscripts/ && ./ltpstress.sh", - "expected_results": "This stress case will run for 24 hours Check the result\ntarget should not crash with the program " - } - }, - "summary": "stress_test_-_-ltp_-Beaglebone" - } - } -] diff --git a/Contrib-Inspur/openbmc/poky/meta/lib/oeqa/manual/crops.json b/Contrib-Inspur/openbmc/poky/meta/lib/oeqa/manual/crops.json index 1cf3c8f3..5cfa6538 100644 --- a/Contrib-Inspur/openbmc/poky/meta/lib/oeqa/manual/crops.json +++ b/Contrib-Inspur/openbmc/poky/meta/lib/oeqa/manual/crops.json @@ -234,16 +234,16 @@ "expected_results": "this should output the directory of the devtool script and it should be within the sdk workdir you are working in. \n\n" }, "5": { - "action": "devtool add v4l2loopback-driver https://github.com/umlaeute/v4l2loopback.git \n\n", - "expected_results": "This should automatically create the recipe v4l2loopback-driver.bb under /recipes/v4l2loopback-driver/v4l2loopback-driver.bb " + "action": "devtool add kernel-module-hello-world https://git.yoctoproject.org/git/kernel-module-hello-world \n\n", + "expected_results": "This should automatically create the recipe kernel-module-hello-world.bb under /recipes/kernel-module-hello-world/kernel-module-hello-world.bb " }, "6": { - "action": "devtool build v4l2loopback-driver \n\n", + "action": "devtool build kernel-module-hello-world \n\n", "expected_results": "This should compile an image \n\n" }, "7": { - "action": "devtool reset v4l2loopback-driver ", - "expected_results": "This cleans sysroot of the v4l2loopback-driver recipe, but it leaves the source tree intact. meaning it does not erase." + "action": "devtool reset kernel-module-hello-world ", + "expected_results": "This cleans sysroot of the kernel-module-hello-world recipe, but it leaves the source tree intact. meaning it does not erase." } }, "summary": "sdkext_devtool_kernelmodule" @@ -291,4 +291,4 @@ "summary": "sdkext_recipes_for_nodejs" } } -] \ No newline at end of file +] diff --git a/Contrib-Inspur/openbmc/poky/meta/lib/oeqa/manual/oe-core.json b/Contrib-Inspur/openbmc/poky/meta/lib/oeqa/manual/oe-core.json index 3ee0aa95..fb47c5ec 100644 --- a/Contrib-Inspur/openbmc/poky/meta/lib/oeqa/manual/oe-core.json +++ b/Contrib-Inspur/openbmc/poky/meta/lib/oeqa/manual/oe-core.json @@ -1,80 +1,4 @@ [ - { - "test": { - "@alias": "oe-core.scripts.Crosstap_script_check", - "author": [ - { - "email": "alexandru.c.georgescu@intel.com", - "name": "alexandru.c.georgescu@intel.com" - } - ], - "execution": { - "1": { - "action": "Create the trace_open.stp script as follows in the host machine: \n\n\nprobe syscall.open \n\n{ \n\n\n printf (\"%s(%d) open (%s)\\n\", execname(), pid(), argstr) \n\n} \n\n\n\nif the above failed, then create the below instead. \n\nprobe syscall.open \n{ \n printf (\"%s(%d) open\\n\", execname(), pid()) \n\n} \n \n", - "expected_results": "" - }, - "2": { - "action": "Add 'tools-profile' and 'ssh-server-openssh' to EXTRA_IMAGE_FEATURES in local.conf \n\n\n", - "expected_results": "" - }, - "3": { - "action": "Build a core-image-minimal image, build systemtap-native. Start the image under qemu. \n\n", - "expected_results": "" - }, - "4": { - "action": "Make sure that the ssh service is started on the Qemu machine. \n\n", - "expected_results": "" - }, - "5": { - "action": "From the host machine poky build_dir, run \"crosstap root@192.168.7.2 trace_open.stp\".", - "expected_results": "" - }, - "6": { - "action": "In QEMU, try to open some applications, such as open a terminal, input some command, \n\n", - "expected_results": "" - }, - "7": { - "action": "Check the host machine, \"crosstap\" has related output. \n\n\n\nNOTE: Do not build the kernel from shared state(sstate-cache) for this to work.", - "expected_results": "The script should successfully connect to the qemu machine and there \nshould be presented a list of services(pid, process name) which run on \nthe qemu machine. " - } - }, - "summary": "Crosstap_script_check" - } - }, - { - "test": { - "@alias": "oe-core.scripts.List_all_the_PACKAGECONFIG's_flags", - "author": [ - { - "email": "yi.zhao@windriver.com", - "name": "yi.zhao@windriver.com" - } - ], - "execution": { - "1": { - "action": " Download the poky source and setup the environment. ", - "expected_results": "" - }, - "2": { - "action": "Run \"../scripts/contrib/list-packageconfig-flags.py\" ", - "expected_results": "In step 2, will list available pkgs which have PACKAGECONFIG flags: \nPACKAGE NAME (or RECIPE NAME) PACKAGECONFIG FLAGS \n============================================================== \nalsa-tools-1.0.26.1 defaultval gtk+ \navahi-ui-0.6.31 defaultval python \nbluez4-4.101 alsa defaultval pie \n" - }, - "3": { - "action": "Run \"../scripts/contrib/list-packageconfig-flags.py -f\" ", - "expected_results": "In step 3, will list available PACKAGECONFIG flags and all affected pkgs \nPACKAGECONFIG FLAG PACKAGE NAMES (or RECIPE NAMES) \n==================================== \n3g connman-1.16 \n \navahi cups-1.6.3 pulseaudio-4.0 \nbeecrypt rpm-5.4.9 rpm-native-5.4.9 \n" - }, - "4": { - "action": "Run \"../scripts/contrib/list-packageconfig-flags.py -a\" ", - "expected_results": "In step 4, will list all pkgs and PACKAGECONFIG information: \n================================================== \ngtk+-2.24.18 \n/home/jiahongxu/yocto/poky/meta/recipes-gnome/gtk+/gtk+_2.24.18.bb \nPACKAGECONFIG x11 \nPACKAGECONFIG[x11] --with-x=yes --with-gdktarget=x11,--with-x=no,${X11DEPENDS} \nxf86-video-intel-2.21.9 \n/home/jiahongxu/yocto/poky/meta/recipes-graphics/xorg-driver/xf86-video-intel_2.21.9.bb \nPACKAGECONFIG None \nPACKAGECONFIG[xvmc] --enable-xvmc,--disable-xvmc,libxvmc \nPACKAGECONFIG[sna] --enable-sna,--disable-sna \n" - }, - "5": { - "action": "Run \"../scripts/contrib/list-packageconfig-flags.py -p\" ", - "expected_results": "In step 5, will list pkgs with preferred version: \nPACKAGE NAME (or RECIPE NAME) PACKAGECONFIG FLAGS \n=================================================== \nalsa-tools-1.0.26.1 defaultval gtk+ \navahi-ui-0.6.31 defaultval python \nbluez4-4.101 alsa defaultval pie \nbluez5-5.7 alsa defaultval obex-profiles \n\n\n\n " - } - }, - "summary": "List_all_the_PACKAGECONFIG's_flags" - } - }, { "test": { "@alias": "oe-core.bitbake.Test_bitbake_menuconfig", @@ -231,4 +155,4 @@ "summary": "test_bitbake_sane_error_for_invalid_layer" } } -] \ No newline at end of file +] diff --git a/Contrib-Inspur/openbmc/poky/meta/lib/oeqa/manual/toaster-managed-mode.json b/Contrib-Inspur/openbmc/poky/meta/lib/oeqa/manual/toaster-managed-mode.json index 812f57da..12374c7c 100644 --- a/Contrib-Inspur/openbmc/poky/meta/lib/oeqa/manual/toaster-managed-mode.json +++ b/Contrib-Inspur/openbmc/poky/meta/lib/oeqa/manual/toaster-managed-mode.json @@ -1494,7 +1494,7 @@ "expected_results": "A type in form appears. \n\n\t" }, "6": { - "action": "Change distro (ex: poky-lsb). \n\n\t", + "action": "Change distro (ex: poky-tiny). \n\n\t", "expected_results": "Distro has changed. \n\n\t" }, "7": { @@ -1503,7 +1503,7 @@ }, "8": { "action": " Build a recipe (ex: core-image-minimal) and wait until build finish.", - "expected_results": "Build finishes successfully. \n\nThe 'success' criteria for this one should be that the build is reported as using the poky-lsb distro in the build summary page, and that the DISTRO variable value in the bitbake variables table is set to the value specified in toaster (poky-lsb again)." + "expected_results": "Build finishes successfully. \n\nThe 'success' criteria for this one should be that the build is reported as using the poky-tiny distro in the build summary page, and that the DISTRO variable value in the bitbake variables table is set to the value specified in toaster (poky-tiny again)." } }, "summary": "Build_a_recipe_with_different_distro" @@ -1612,7 +1612,7 @@ "expected_results": "" }, "3": { - "action": "Check that the table is populated with the list of image recipes (eg. core-image minimal, core-image-lsb) \n\n\n", + "action": "Check that the table is populated with the list of image recipes (eg. core-image minimal) \n\n\n", "expected_results": "" }, "4": { @@ -1670,7 +1670,7 @@ "expected_results": "" }, "7": { - "action": "Sort the table by \"Layer\" and then navigate away by selecting an image (such as core-image-lsb). When you click the \"back\" button in the web-browser to go back, the \"New custom image\" table should still be sorted by \"Layer\". \nThis should apply also by navigating back to the page by any other means. \n\n", + "action": "Sort the table by \"Layer\" and then navigate away by selecting an image. When you click the \"back\" button in the web-browser to go back, the \"New custom image\" table should still be sorted by \"Layer\". \nThis should apply also by navigating back to the page by any other means. \n\n", "expected_results": "" }, "8": { @@ -2348,7 +2348,7 @@ "expected_results": "" }, "3": { - "action": "Build 6 recipes example (core-image-sato, core-image-minimal, core-image-base, core-image-lsb, core-image-clutter) to name a few. ", + "action": "Build 6 recipes example (core-image-sato, core-image-minimal, core-image-base, core-image-clutter) to name a few. ", "expected_results": " All recipes are built correctly \n\n" }, "4": { @@ -2382,7 +2382,7 @@ "expected_results": "" }, "3": { - "action": "Build 6 recipes example (core-image-sato, core-image-minimal, core-image-base, core-image-lsb, core-image-clutter) to name a few. \n\n", + "action": "Build 6 recipes example (core-image-sato, core-image-minimal, core-image-base, core-image-clutter) to name a few. \n\n", "expected_results": "All recipes are built correctly \n\n" }, "4": { @@ -2420,7 +2420,7 @@ "expected_results": "" }, "3": { - "action": "Build 4 recipes example (core-image-sato, core-image-minimal, core-image-base, core-image-lsb, core-image-clutter) to name a few. \n\n", + "action": "Build 4 recipes example (core-image-sato, core-image-minimal, core-image-base, core-image-clutter) to name a few. \n\n", "expected_results": " All recipes are built correctly \n\n" }, "4": { diff --git a/Contrib-Inspur/openbmc/poky/meta/lib/oeqa/runtime/cases/boot.py b/Contrib-Inspur/openbmc/poky/meta/lib/oeqa/runtime/cases/boot.py new file mode 100644 index 00000000..2142f400 --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/lib/oeqa/runtime/cases/boot.py @@ -0,0 +1,33 @@ +# +# SPDX-License-Identifier: MIT +# + +from subprocess import Popen, PIPE +import time + +from oeqa.runtime.case import OERuntimeTestCase +from oeqa.core.decorator.depends import OETestDepends +from oeqa.core.decorator.oetimeout import OETimeout +from oeqa.core.decorator.data import skipIfQemu + +class BootTest(OERuntimeTestCase): + + @OETimeout(120) + @skipIfQemu('qemuall', 'Test only runs on real hardware') + @OETestDepends(['ssh.SSHTest.test_ssh']) + def test_reboot(self): + output = '' + count = 0 + (status, output) = self.target.run('reboot -h') + while count < 5: + time.sleep(5) + cmd = 'ping -c 1 %s' % self.target.ip + proc = Popen(cmd, shell=True, stdout=PIPE) + output += proc.communicate()[0].decode('utf-8') + if proc.poll() == 0: + count += 1 + else: + count = 0 + msg = ('Expected 5 consecutive, got %d.\n' + 'ping output is:\n%s' % (count,output)) + self.assertEqual(count, 5, msg = msg) diff --git a/Contrib-Inspur/openbmc/poky/meta/lib/oeqa/runtime/cases/buildgalculator.py b/Contrib-Inspur/openbmc/poky/meta/lib/oeqa/runtime/cases/buildgalculator.py index 6dd1faee..e5cc3e28 100644 --- a/Contrib-Inspur/openbmc/poky/meta/lib/oeqa/runtime/cases/buildgalculator.py +++ b/Contrib-Inspur/openbmc/poky/meta/lib/oeqa/runtime/cases/buildgalculator.py @@ -25,6 +25,7 @@ def tearDownClass(cls): @OEHasPackage(['gcc']) @OEHasPackage(['make']) @OEHasPackage(['autoconf']) + @OEHasPackage(['gtk+3']) def test_galculator(self): self.project.download_archive() self.project.run_configure() diff --git a/Contrib-Inspur/openbmc/poky/meta/lib/oeqa/runtime/cases/df.py b/Contrib-Inspur/openbmc/poky/meta/lib/oeqa/runtime/cases/df.py index d8d79f32..89fd0fb9 100644 --- a/Contrib-Inspur/openbmc/poky/meta/lib/oeqa/runtime/cases/df.py +++ b/Contrib-Inspur/openbmc/poky/meta/lib/oeqa/runtime/cases/df.py @@ -11,7 +11,7 @@ class DfTest(OERuntimeTestCase): @OETestDepends(['ssh.SSHTest.test_ssh']) @OEHasPackage(['coreutils', 'busybox']) def test_df(self): - cmd = "df / | sed -n '2p' | awk '{print $4}'" + cmd = "df -P / | sed -n '2p' | awk '{print $4}'" (status,output) = self.target.run(cmd) msg = 'Not enough space on image. Current size is %s' % output self.assertTrue(int(output)>5120, msg=msg) diff --git a/Contrib-Inspur/openbmc/poky/meta/lib/oeqa/runtime/cases/dnf.py b/Contrib-Inspur/openbmc/poky/meta/lib/oeqa/runtime/cases/dnf.py index 629b9af3..de375999 100644 --- a/Contrib-Inspur/openbmc/poky/meta/lib/oeqa/runtime/cases/dnf.py +++ b/Contrib-Inspur/openbmc/poky/meta/lib/oeqa/runtime/cases/dnf.py @@ -9,7 +9,7 @@ from oeqa.runtime.case import OERuntimeTestCase from oeqa.core.decorator.depends import OETestDepends -from oeqa.core.decorator.data import skipIfNotDataVar, skipIfNotFeature +from oeqa.core.decorator.data import skipIfNotDataVar, skipIfNotFeature, skipIfInDataVar, skipIfNotInDataVar from oeqa.runtime.decorator.package import OEHasPackage class DnfTest(OERuntimeTestCase): @@ -116,6 +116,8 @@ def test_dnf_reinstall(self): self.dnf_with_repo('reinstall -y run-postinsts-dev') @OETestDepends(['dnf.DnfRepoTest.test_dnf_makecache']) + @skipIfInDataVar('DISTRO_FEATURES', 'usrmerge', 'Test run when not enable usrmerge') + @OEHasPackage('busybox') def test_dnf_installroot(self): rootpath = '/home/root/chroot/test' #Copy necessary files to avoid errors with not yet installed tools on @@ -140,6 +142,38 @@ def test_dnf_installroot(self): status, output = self.target.run('test -e %s/bin/busybox' % rootpath, 1500) self.assertEqual(0, status, output) + @OETestDepends(['dnf.DnfRepoTest.test_dnf_makecache']) + @skipIfNotInDataVar('DISTRO_FEATURES', 'usrmerge', 'Test run when enable usrmege') + @OEHasPackage('busybox') + def test_dnf_installroot_usrmerge(self): + rootpath = '/home/root/chroot/test' + #Copy necessary files to avoid errors with not yet installed tools on + #installroot directory. + self.target.run('mkdir -p %s/etc' % rootpath, 1500) + self.target.run('mkdir -p %s/usr/bin %s/usr/sbin' % (rootpath, rootpath), 1500) + self.target.run('ln -sf -r %s/usr/bin %s/bin' % (rootpath, rootpath), 1500) + self.target.run('ln -sf -r %s/usr/sbin %s/sbin' % (rootpath, rootpath), 1500) + self.target.run('mkdir -p %s/dev' % rootpath, 1500) + #Handle different architectures lib dirs + self.target.run('mkdir -p %s/usr/lib' % rootpath, 1500) + self.target.run('mkdir -p %s/usr/libx32' % rootpath, 1500) + self.target.run('mkdir -p %s/usr/lib64' % rootpath, 1500) + self.target.run('cp /lib/libtinfo.so.5 %s/usr/lib' % rootpath, 1500) + self.target.run('cp /libx32/libtinfo.so.5 %s/usr/libx32' % rootpath, 1500) + self.target.run('cp /lib64/libtinfo.so.5 %s/usr/lib64' % rootpath, 1500) + self.target.run('ln -sf -r %s/lib %s/usr/lib' % (rootpath,rootpath), 1500) + self.target.run('ln -sf -r %s/libx32 %s/usr/libx32' % (rootpath,rootpath), 1500) + self.target.run('ln -sf -r %s/lib64 %s/usr/lib64' % (rootpath,rootpath), 1500) + self.target.run('cp -r /etc/rpm %s/etc' % rootpath, 1500) + self.target.run('cp -r /etc/dnf %s/etc' % rootpath, 1500) + self.target.run('cp /bin/sh %s/bin' % rootpath, 1500) + self.target.run('mount -o bind /dev %s/dev/' % rootpath, 1500) + self.dnf_with_repo('install --installroot=%s -v -y --rpmverbosity=debug busybox run-postinsts' % rootpath) + status, output = self.target.run('test -e %s/var/cache/dnf' % rootpath, 1500) + self.assertEqual(0, status, output) + status, output = self.target.run('test -e %s/bin/busybox' % rootpath, 1500) + self.assertEqual(0, status, output) + @OETestDepends(['dnf.DnfRepoTest.test_dnf_makecache']) def test_dnf_exclude(self): excludepkg = 'curl-dev' diff --git a/Contrib-Inspur/openbmc/poky/meta/lib/oeqa/runtime/cases/ltp_stress.py b/Contrib-Inspur/openbmc/poky/meta/lib/oeqa/runtime/cases/ltp_stress.py new file mode 100644 index 00000000..2445ffbc --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/lib/oeqa/runtime/cases/ltp_stress.py @@ -0,0 +1,98 @@ +# LTP Stress runtime +# +# Copyright (c) 2019 MontaVista Software, LLC +# +# SPDX-License-Identifier: MIT +# + +import time +import datetime +import pprint + +from oeqa.runtime.case import OERuntimeTestCase +from oeqa.core.decorator.depends import OETestDepends +from oeqa.runtime.decorator.package import OEHasPackage +from oeqa.core.decorator.data import skipIfQemu +from oeqa.utils.logparser import LtpParser + +class LtpStressBase(OERuntimeTestCase): + + @classmethod + def setUpClass(cls): + cls.ltp_startup() + + @classmethod + def tearDownClass(cls): + cls.ltp_finishup() + + @classmethod + def ltp_startup(cls): + cls.sections = {} + cls.failmsg = "" + test_log_dir = os.path.join(cls.td.get('WORKDIR', ''), 'testimage') + timestamp = datetime.datetime.now().strftime('%Y%m%d%H%M%S') + + cls.ltptest_log_dir_link = os.path.join(test_log_dir, 'ltpstress_log') + cls.ltptest_log_dir = '%s.%s' % (cls.ltptest_log_dir_link, timestamp) + os.makedirs(cls.ltptest_log_dir) + + cls.tc.target.run("mkdir -p /opt/ltp/results") + + if not hasattr(cls.tc, "extraresults"): + cls.tc.extraresults = {} + cls.extras = cls.tc.extraresults + cls.extras['ltpstressresult.rawlogs'] = {'log': ""} + + + @classmethod + def ltp_finishup(cls): + cls.extras['ltpstressresult.sections'] = cls.sections + + # update symlink to ltp_log + if os.path.exists(cls.ltptest_log_dir_link): + os.remove(cls.ltptest_log_dir_link) + + os.symlink(os.path.basename(cls.ltptest_log_dir), cls.ltptest_log_dir_link) + + if cls.failmsg: + cls.fail(cls.failmsg) + +class LtpStressTest(LtpStressBase): + + def runltp(self, stress_group): + cmd = '/opt/ltp/runltp -f %s -p -q 2>@1 | tee /opt/ltp/results/%s' % (stress_group, stress_group) + starttime = time.time() + (status, output) = self.target.run(cmd) + endtime = time.time() + with open(os.path.join(self.ltptest_log_dir, "%s" % stress_group), 'w') as f: + f.write(output) + + self.extras['ltpstressresult.rawlogs']['log'] = self.extras['ltpstressresult.rawlogs']['log'] + output + + parser = LtpParser() + results, sections = parser.parse(os.path.join(self.ltptest_log_dir, "%s" % stress_group)) + + runtime = int(endtime-starttime) + sections['duration'] = runtime + self.sections[stress_group] = sections + + failed_tests = {} + for test in results: + result = results[test] + testname = ("ltpstressresult." + stress_group + "." + test) + self.extras[testname] = {'status': result} + if result == 'FAILED': + failed_tests[stress_group] = test + + if failed_tests: + self.failmsg = self.failmsg + "Failed ptests:\n%s" % pprint.pformat(failed_tests) + + # LTP stress runtime tests + # + @skipIfQemu('qemuall', 'Test only runs on real hardware') + + @OETestDepends(['ssh.SSHTest.test_ssh']) + @OEHasPackage(["ltp"]) + def test_ltp_stress(self): + self.tc.target.run("sed -i -r 's/^fork12.*//' /opt/ltp/runtest/crashme") + self.runltp('crashme') diff --git a/Contrib-Inspur/openbmc/poky/meta/lib/oeqa/runtime/cases/oe_syslog.py b/Contrib-Inspur/openbmc/poky/meta/lib/oeqa/runtime/cases/oe_syslog.py index 0f5f9f43..f3c2bedb 100644 --- a/Contrib-Inspur/openbmc/poky/meta/lib/oeqa/runtime/cases/oe_syslog.py +++ b/Contrib-Inspur/openbmc/poky/meta/lib/oeqa/runtime/cases/oe_syslog.py @@ -6,6 +6,7 @@ from oeqa.core.decorator.depends import OETestDepends from oeqa.core.decorator.data import skipIfDataVar from oeqa.runtime.decorator.package import OEHasPackage +import time class SyslogTest(OERuntimeTestCase): @@ -16,17 +17,77 @@ def test_syslog_running(self): msg = "Failed to execute %s" % self.tc.target_cmds['ps'] self.assertEqual(status, 0, msg=msg) msg = "No syslog daemon process; %s output:\n%s" % (self.tc.target_cmds['ps'], output) - hasdaemon = "syslogd" in output or "syslog-ng" in output + hasdaemon = "syslogd" in output or "syslog-ng" in output or "svlogd" in output self.assertTrue(hasdaemon, msg=msg) class SyslogTestConfig(OERuntimeTestCase): + def verif_not_running(self, pids): + for pid in pids: + status, err_output = self.target.run('kill -0 %s' %pid) + if not status: + self.logger.debug("previous %s is still running" %pid) + return 1 + + def verify_running(self, names): + pids = [] + for name in names: + status, pid = self.target.run('pidof %s' %name) + if status: + self.logger.debug("%s is not running" %name) + return 1, pids + pids.append(pid) + return 0, pids + + + def restart_sanity(self, names, restart_cmd, pidchange=True): + status, original_pids = self.verify_running(names) + if status: + return False + + status, output = self.target.run(restart_cmd) + + msg = ('Could not restart %s service. Status and output: %s and %s' % (names, status, output)) + self.assertEqual(status, 0, msg) + + if not pidchange: + return True + + # Always check for an error, most likely a race between shutting down and starting up + timeout = time.time() + 30 + + restarted = False + status = "" + while time.time() < timeout: + # Verify the previous ones are no longer running + status = self.verif_not_running(original_pids) + if status: + status = "Original syslog processes still running" + continue + + status, pids = self.verify_running(names) + if status: + status = "New syslog processes not running" + continue + + # Everything is fine now, so exit to continue the test + restarted = True + break + + msg = ('%s didn\'t appear to restart: %s' % (names, status)) + self.assertTrue(restarted, msg) + + return True + @OETestDepends(['oe_syslog.SyslogTest.test_syslog_running']) def test_syslog_logger(self): status, output = self.target.run('logger foobar') msg = "Can't log into syslog. Output: %s " % output self.assertEqual(status, 0, msg=msg) + # There is no way to flush the logger to disk in all cases + time.sleep(1) + status, output = self.target.run('grep foobar /var/log/messages') if status != 0: if self.tc.td.get("VIRTUAL-RUNTIME_init_manager") == "systemd": @@ -37,12 +98,17 @@ def test_syslog_logger(self): ' Output: %s ' % output) self.assertEqual(status, 0, msg=msg) + @OETestDepends(['oe_syslog.SyslogTest.test_syslog_running']) def test_syslog_restart(self): - if "systemd" != self.tc.td.get("VIRTUAL-RUNTIME_init_manager", ""): - (_, _) = self.target.run('/etc/init.d/syslog restart') + if self.restart_sanity(['systemd-journald'], 'systemctl restart syslog.service', pidchange=False): + pass + elif self.restart_sanity(['rsyslogd'], '/etc/init.d/rsyslog restart'): + pass + elif self.restart_sanity(['syslogd', 'klogd'], '/etc/init.d/syslog restart'): + pass else: - (_, _) = self.target.run('systemctl restart syslog.service') + self.logger.info("No syslog found to restart, ignoring") @OETestDepends(['oe_syslog.SyslogTestConfig.test_syslog_logger']) @@ -52,10 +118,8 @@ def test_syslog_restart(self): def test_syslog_startup_config(self): cmd = 'echo "LOGFILE=/var/log/test" >> /etc/syslog-startup.conf' self.target.run(cmd) - status, output = self.target.run('/etc/init.d/syslog restart') - msg = ('Could not restart syslog service. Status and output:' - ' %s and %s' % (status,output)) - self.assertEqual(status, 0, msg) + + self.test_syslog_restart() cmd = 'logger foobar && grep foobar /var/log/test' status,output = self.target.run(cmd) @@ -64,4 +128,4 @@ def test_syslog_startup_config(self): cmd = "sed -i 's#LOGFILE=/var/log/test##' /etc/syslog-startup.conf" self.target.run(cmd) - self.target.run('/etc/init.d/syslog restart') + self.test_syslog_restart() diff --git a/Contrib-Inspur/openbmc/poky/meta/lib/oeqa/runtime/cases/opkg.py b/Contrib-Inspur/openbmc/poky/meta/lib/oeqa/runtime/cases/opkg.py index bb8b6d99..75070616 100644 --- a/Contrib-Inspur/openbmc/poky/meta/lib/oeqa/runtime/cases/opkg.py +++ b/Contrib-Inspur/openbmc/poky/meta/lib/oeqa/runtime/cases/opkg.py @@ -5,7 +5,7 @@ import os from oeqa.utils.httpserver import HTTPService from oeqa.runtime.case import OERuntimeTestCase -from oeqa.core.decorator.data import skipIfNotDataVar, skipIfNotFeature +from oeqa.core.decorator.data import skipIfNotDataVar, skipIfNotFeature, skipIfFeature from oeqa.runtime.decorator.package import OEHasPackage class OpkgTest(OERuntimeTestCase): @@ -45,6 +45,8 @@ def cleanup_source_config_for_package_install(self): 'Test requires package-management to be in IMAGE_FEATURES') @skipIfNotDataVar('IMAGE_PKGTYPE', 'ipk', 'IPK is not the primary package manager') + @skipIfFeature('read-only-rootfs', + 'Test does not work with read-only-rootfs in IMAGE_FEATURES') @OEHasPackage(['opkg']) def test_opkg_install_from_repo(self): self.setup_source_config_for_package_install() diff --git a/Contrib-Inspur/openbmc/poky/meta/lib/oeqa/runtime/cases/parselogs.py b/Contrib-Inspur/openbmc/poky/meta/lib/oeqa/runtime/cases/parselogs.py index eb2ebb19..15343d7a 100644 --- a/Contrib-Inspur/openbmc/poky/meta/lib/oeqa/runtime/cases/parselogs.py +++ b/Contrib-Inspur/openbmc/poky/meta/lib/oeqa/runtime/cases/parselogs.py @@ -83,6 +83,10 @@ 'amd_nb: Cannot enumerate AMD northbridges', 'uvesafb: 5000 ms task timeout, infinitely waiting', 'tsc: HPET/PMTIMER calibration failed', + "modeset(0): Failed to initialize the DRI2 extension", + "uvesafb: cannot reserve video memory at", + "uvesafb: probe of uvesafb.0 failed with error", + "glamor initialization failed", ] + common_errors ignore_errors = { @@ -292,7 +296,7 @@ def build_grepcmd(self, errors, ignore_errors, log): grepcmd = 'grep ' grepcmd += '-Ei "' for error in errors: - grepcmd += error + '|' + grepcmd += '\<' + error + '\>' + '|' grepcmd = grepcmd[:-1] grepcmd += '" ' + str(log) + " | grep -Eiv \'" diff --git a/Contrib-Inspur/openbmc/poky/meta/lib/oeqa/runtime/cases/rpm.py b/Contrib-Inspur/openbmc/poky/meta/lib/oeqa/runtime/cases/rpm.py index d8cabd36..8e18b426 100644 --- a/Contrib-Inspur/openbmc/poky/meta/lib/oeqa/runtime/cases/rpm.py +++ b/Contrib-Inspur/openbmc/poky/meta/lib/oeqa/runtime/cases/rpm.py @@ -4,6 +4,7 @@ import os import fnmatch +import time from oeqa.runtime.case import OERuntimeTestCase from oeqa.core.decorator.depends import OETestDepends @@ -29,35 +30,6 @@ def test_rpm_query(self): msg = 'status and output: %s and %s' % (status, output) self.assertEqual(status, 0, msg=msg) -class RpmInstallRemoveTest(OERuntimeTestCase): - - @classmethod - def setUpClass(cls): - pkgarch = cls.td['TUNE_PKGARCH'].replace('-', '_') - rpmdir = os.path.join(cls.tc.td['DEPLOY_DIR'], 'rpm', pkgarch) - # Pick base-passwd-doc as a test file to get installed, because it's small - # and it will always be built for standard targets - rpm_doc = 'base-passwd-doc-*.%s.rpm' % pkgarch - if not os.path.exists(rpmdir): - return - for f in fnmatch.filter(os.listdir(rpmdir), rpm_doc): - cls.test_file = os.path.join(rpmdir, f) - cls.dst = '/tmp/base-passwd-doc.rpm' - - @OETestDepends(['rpm.RpmBasicTest.test_rpm_query']) - def test_rpm_install(self): - self.tc.target.copyTo(self.test_file, self.dst) - status, output = self.target.run('rpm -ivh /tmp/base-passwd-doc.rpm') - msg = 'Failed to install base-passwd-doc package: %s' % output - self.assertEqual(status, 0, msg=msg) - self.tc.target.run('rm -f %s' % self.dst) - - @OETestDepends(['rpm.RpmInstallRemoveTest.test_rpm_install']) - def test_rpm_remove(self): - status,output = self.target.run('rpm -e base-passwd-doc') - msg = 'Failed to remove base-passwd-doc package: %s' % output - self.assertEqual(status, 0, msg=msg) - @OETestDepends(['rpm.RpmBasicTest.test_rpm_query']) def test_rpm_query_nonroot(self): @@ -77,7 +49,21 @@ def exec_as_test_user(u): msg = 'status: %s. Cannot run rpm -qa: %s' % (status, output) self.assertEqual(status, 0, msg=msg) + def check_no_process_for_user(u): + _, output = self.target.run(self.tc.target_cmds['ps']) + if u + ' ' in output: + return False + else: + return True + def unset_up_test_user(u): + # ensure no test1 process in running + timeout = time.time() + 30 + while time.time() < timeout: + if check_no_process_for_user(u): + break + else: + time.sleep(1) status, output = self.target.run('userdel -r %s' % u) msg = 'Failed to erase user: %s' % output self.assertTrue(status == 0, msg=msg) @@ -90,6 +76,36 @@ def unset_up_test_user(u): finally: unset_up_test_user(tuser) + +class RpmInstallRemoveTest(OERuntimeTestCase): + + @classmethod + def setUpClass(cls): + pkgarch = cls.td['TUNE_PKGARCH'].replace('-', '_') + rpmdir = os.path.join(cls.tc.td['DEPLOY_DIR'], 'rpm', pkgarch) + # Pick base-passwd-doc as a test file to get installed, because it's small + # and it will always be built for standard targets + rpm_doc = 'base-passwd-doc-*.%s.rpm' % pkgarch + if not os.path.exists(rpmdir): + return + for f in fnmatch.filter(os.listdir(rpmdir), rpm_doc): + cls.test_file = os.path.join(rpmdir, f) + cls.dst = '/tmp/base-passwd-doc.rpm' + + @OETestDepends(['rpm.RpmBasicTest.test_rpm_query']) + def test_rpm_install(self): + self.tc.target.copyTo(self.test_file, self.dst) + status, output = self.target.run('rpm -ivh /tmp/base-passwd-doc.rpm') + msg = 'Failed to install base-passwd-doc package: %s' % output + self.assertEqual(status, 0, msg=msg) + self.tc.target.run('rm -f %s' % self.dst) + + @OETestDepends(['rpm.RpmInstallRemoveTest.test_rpm_install']) + def test_rpm_remove(self): + status,output = self.target.run('rpm -e base-passwd-doc') + msg = 'Failed to remove base-passwd-doc package: %s' % output + self.assertEqual(status, 0, msg=msg) + @OETestDepends(['rpm.RpmInstallRemoveTest.test_rpm_remove']) def test_check_rpm_install_removal_log_file_size(self): """ diff --git a/Contrib-Inspur/openbmc/poky/meta/lib/oeqa/runtime/cases/storage.py b/Contrib-Inspur/openbmc/poky/meta/lib/oeqa/runtime/cases/storage.py new file mode 100644 index 00000000..166d26b2 --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/lib/oeqa/runtime/cases/storage.py @@ -0,0 +1,149 @@ +# +# SPDX-License-Identifier: MIT +# + +import re +import time + +from oeqa.runtime.case import OERuntimeTestCase +from oeqa.core.decorator.depends import OETestDepends +from oeqa.core.decorator.data import skipIfQemu + +class StorageBase(OERuntimeTestCase): + def storage_mount(cls, tmo=1): + + (status, output) = cls.target.run('mkdir -p %s' % cls.mount_point) + (status, output) = cls.target.run('mount %s %s' % (cls.device, cls.mount_point)) + msg = ('Mount failed: %s.' % status) + cls.assertFalse(output, msg = msg) + time.sleep(tmo) + (status, output) = cls.target.run('cat /proc/mounts') + match = re.search('%s' % cls.device, output) + if match: + msg = ('Device %s not mounted.' % cls.device) + cls.assertTrue(match, msg = msg) + + (status, output) = cls.target.run('mkdir -p %s' % cls.test_dir) + + (status, output) = cls.target.run('rm -f %s/*' % cls.test_dir) + msg = ('Failed to cleanup files @ %s/*' % cls.test_dir) + cls.assertFalse(output, msg = msg) + + + def storage_basic(cls): + # create file on device + (status, output) = cls.target.run('touch %s/%s' % (cls.test_dir, cls.test_file)) + msg = ('File %s not created on %s' % (cls.test_file, cls.device)) + cls.assertFalse(status, msg = msg) + # move file + (status, output) = cls.target.run('mv %s/%s %s/%s1' % + (cls.test_dir, cls.test_file, cls.test_dir, cls.test_file)) + msg = ('File %s not moved to %s' % (cls.test_file, cls.device)) + cls.assertFalse(status, msg = msg) + # remove file + (status, output) = cls.target.run('rm %s/%s1' % (cls.test_dir, cls.test_file)) + msg = ('File %s not removed on %s' % (cls.test_file, cls.device)) + cls.assertFalse(status, msg = msg) + + def storage_read(cls): + # check if message is in file + (status, output) = cls.target.run('cat %s/%s' % + (cls.test_dir, cls.test_file)) + + match = re.search('%s' % cls.test_msg, output) + msg = ('Test message %s not in file %s.' % (cls.test_msg, cls.test_file)) + cls.assertEqual(status, 0, msg = msg) + + def storage_write(cls): + # create test message in file on device + (status, output) = cls.target.run('echo "%s" > %s/%s' % + (cls.test_msg, cls.test_dir, cls.test_file)) + msg = ('File %s not create test message on %s' % (cls.test_file, cls.device)) + cls.assertEqual(status, 0, msg = msg) + + def storage_umount(cls, tmo=1): + time.sleep(tmo) + (status, output) = cls.target.run('umount %s' % cls.mount_point) + + if status == 32: + # already unmounted, should it fail? + return + else: + msg = ('Device not unmount %s' % cls.mount_point) + cls.assertEqual(status, 0, msg = msg) + + (status, output) = cls.target.run('cat /proc/mounts') + match = re.search('%s' % cls.device, output) + if match: + msg = ('Device %s still mounted.' % cls.device) + cls.assertTrue(match, msg = msg) + + +class UsbTest(StorageBase): + ''' + This is to mimic the usb test previously done in manual bsp-hw.json + ''' + @classmethod + def setUpClass(self): + self.test_msg = "Hello World - USB" + self.mount_point = "/media/usb" + self.device = "/dev/sda1" + self.test_file = "usb.tst" + self.test_dir = os.path.join(self.mount_point, "oeqa") + + @skipIfQemu('qemuall', 'Test only runs on real hardware') + @OETestDepends(['ssh.SSHTest.test_ssh']) + def test_usb_mount(self): + self.storage_umount(2) + self.storage_mount(5) + + @skipIfQemu('qemuall', 'Test only runs on real hardware') + @OETestDepends(['storage.UsbTest.test_usb_mount']) + def test_usb_basic_operations(self): + self.storage_basic() + + @skipIfQemu('qemuall', 'Test only runs on real hardware') + @OETestDepends(['storage.UsbTest.test_usb_basic_operations']) + def test_usb_basic_rw(self): + self.storage_write() + self.storage_read() + + @skipIfQemu('qemuall', 'Test only runs on real hardware') + @OETestDepends(['storage.UsbTest.test_usb_mount']) + def test_usb_umount(self): + self.storage_umount(2) + + +class MMCTest(StorageBase): + ''' + This is to mimic the usb test previously done in manual bsp-hw.json + ''' + @classmethod + def setUpClass(self): + self.test_msg = "Hello World - MMC" + self.mount_point = "/media/mmc" + self.device = "/dev/mmcblk1p1" + self.test_file = "mmc.tst" + self.test_dir = os.path.join(self.mount_point, "oeqa") + + @skipIfQemu('qemuall', 'Test only runs on real hardware') + @OETestDepends(['ssh.SSHTest.test_ssh']) + def test_mmc_mount(self): + self.storage_umount(2) + self.storage_mount() + + @skipIfQemu('qemuall', 'Test only runs on real hardware') + @OETestDepends(['storage.MMCTest.test_mmc_mount']) + def test_mmc_basic_operations(self): + self.storage_basic() + + @skipIfQemu('qemuall', 'Test only runs on real hardware') + @OETestDepends(['storage.MMCTest.test_mmc_basic_operations']) + def test_mmc_basic_rw(self): + self.storage_write() + self.storage_read() + + @skipIfQemu('qemuall', 'Test only runs on real hardware') + @OETestDepends(['storage.MMCTest.test_mmc_mount']) + def test_mmc_umount(self): + self.storage_umount(2) diff --git a/Contrib-Inspur/openbmc/poky/meta/lib/oeqa/runtime/cases/systemd.py b/Contrib-Inspur/openbmc/poky/meta/lib/oeqa/runtime/cases/systemd.py index c11fa49b..7c44abe8 100644 --- a/Contrib-Inspur/openbmc/poky/meta/lib/oeqa/runtime/cases/systemd.py +++ b/Contrib-Inspur/openbmc/poky/meta/lib/oeqa/runtime/cases/systemd.py @@ -9,7 +9,7 @@ from oeqa.core.decorator.depends import OETestDepends from oeqa.core.decorator.data import skipIfDataVar, skipIfNotDataVar from oeqa.runtime.decorator.package import OEHasPackage -from oeqa.core.decorator.data import skipIfNotFeature +from oeqa.core.decorator.data import skipIfNotFeature, skipIfFeature class SystemdTest(OERuntimeTestCase): @@ -114,12 +114,26 @@ def test_systemd_stop_start(self): self.systemctl('is-active', 'avahi-daemon.service', verbose=True) @OETestDepends(['systemd.SystemdServiceTests.test_systemd_status']) + @skipIfFeature('read-only-rootfs', + 'Test is only meant to run without read-only-rootfs in IMAGE_FEATURES') def test_systemd_disable_enable(self): self.systemctl('disable', 'avahi-daemon.service') self.systemctl('is-enabled', 'avahi-daemon.service', expected=1) self.systemctl('enable', 'avahi-daemon.service') self.systemctl('is-enabled', 'avahi-daemon.service') + @OETestDepends(['systemd.SystemdServiceTests.test_systemd_status']) + @skipIfNotFeature('read-only-rootfs', + 'Test is only meant to run with read-only-rootfs in IMAGE_FEATURES') + def test_systemd_disable_enable_ro(self): + status = self.target.run('mount -orw,remount /')[0] + self.assertTrue(status == 0, msg='Remounting / as r/w failed') + try: + self.test_systemd_disable_enable() + finally: + status = self.target.run('mount -oro,remount /')[0] + self.assertTrue(status == 0, msg='Remounting / as r/o failed') + class SystemdJournalTests(SystemdTest): @OETestDepends(['systemd.SystemdBasicTests.test_systemd_basic']) diff --git a/Contrib-Inspur/openbmc/poky/meta/lib/oeqa/runtime/context.py b/Contrib-Inspur/openbmc/poky/meta/lib/oeqa/runtime/context.py index 77d58eef..ef738a33 100644 --- a/Contrib-Inspur/openbmc/poky/meta/lib/oeqa/runtime/context.py +++ b/Contrib-Inspur/openbmc/poky/meta/lib/oeqa/runtime/context.py @@ -138,7 +138,7 @@ def _getControllerModulenames(target_modules_path): def add_controller_list(path): if not os.path.exists(os.path.join(path, '__init__.py')): raise OSError('Controllers directory %s exists but is missing __init__.py' % path) - files = sorted([f for f in os.listdir(path) if f.endswith('.py') and not f.startswith('_')]) + files = sorted([f for f in os.listdir(path) if f.endswith('.py') and not f.startswith('_') and not f.startswith('.#')]) for f in files: module = 'oeqa.controllers.' + f[:-3] if module not in controllerslist: diff --git a/Contrib-Inspur/openbmc/poky/meta/lib/oeqa/sdk/cases/buildepoxy.py b/Contrib-Inspur/openbmc/poky/meta/lib/oeqa/sdk/cases/buildepoxy.py index f3d207c6..4211955f 100644 --- a/Contrib-Inspur/openbmc/poky/meta/lib/oeqa/sdk/cases/buildepoxy.py +++ b/Contrib-Inspur/openbmc/poky/meta/lib/oeqa/sdk/cases/buildepoxy.py @@ -32,7 +32,9 @@ def test_epoxy(self): self.assertTrue(os.path.isdir(dirs["source"])) os.makedirs(dirs["build"]) - self._run("meson -Degl=no -Dglx=no -Dx11=false {build} {source}".format(**dirs)) + log = self._run("meson -Degl=no -Dglx=no -Dx11=false {build} {source}".format(**dirs)) + # Check that Meson thinks we're doing a cross build and not a native + self.assertIn("Build type: cross build", log) self._run("ninja -C {build} -v".format(**dirs)) self._run("DESTDIR={install} ninja -C {build} -v install".format(**dirs)) diff --git a/Contrib-Inspur/openbmc/poky/meta/lib/oeqa/sdkext/cases/devtool.py b/Contrib-Inspur/openbmc/poky/meta/lib/oeqa/sdkext/cases/devtool.py index 5a02add7..8e92bf80 100644 --- a/Contrib-Inspur/openbmc/poky/meta/lib/oeqa/sdkext/cases/devtool.py +++ b/Contrib-Inspur/openbmc/poky/meta/lib/oeqa/sdkext/cases/devtool.py @@ -73,8 +73,8 @@ def test_extend_autotools_recipe_creation(self): self._run('devtool reset %s' % recipe) def test_devtool_kernelmodule(self): - docfile = 'https://github.com/umlaeute/v4l2loopback.git' - recipe = 'v4l2loopback-driver' + docfile = 'https://git.yoctoproject.org/git/kernel-module-hello-world' + recipe = 'kernel-module-hello-world' self._run('devtool add %s %s' % (recipe, docfile) ) try: self._run('devtool build %s' % recipe) diff --git a/Contrib-Inspur/openbmc/poky/meta/lib/oeqa/selftest/case.py b/Contrib-Inspur/openbmc/poky/meta/lib/oeqa/selftest/case.py index d207a0af..ac3308d8 100644 --- a/Contrib-Inspur/openbmc/poky/meta/lib/oeqa/selftest/case.py +++ b/Contrib-Inspur/openbmc/poky/meta/lib/oeqa/selftest/case.py @@ -193,13 +193,20 @@ def track_for_cleanup(self, path): self.logger.debug("Adding path '%s' to be cleaned up when test is over" % path) self._track_for_cleanup.append(path) - def write_config(self, data): - """Write to /conf/selftest.inc""" + def write_config(self, data, multiconfig=None): + """Write to config file""" + if multiconfig: + multiconfigdir = "%s/conf/multiconfig" % self.builddir + os.makedirs(multiconfigdir, exist_ok=True) + dest_path = '%s/%s.conf' % (multiconfigdir, multiconfig) + self.track_for_cleanup(dest_path) + else: + dest_path = self.testinc_path - self.logger.debug("Writing to: %s\n%s\n" % (self.testinc_path, data)) - ftools.write_file(self.testinc_path, data) + self.logger.debug("Writing to: %s\n%s\n" % (dest_path, data)) + ftools.write_file(dest_path, data) - if self.tc.custommachine and 'MACHINE' in data: + if not multiconfig and self.tc.custommachine and 'MACHINE' in data: machine = get_bb_var('MACHINE') self.logger.warning('MACHINE overridden: %s' % machine) diff --git a/Contrib-Inspur/openbmc/poky/meta/lib/oeqa/selftest/cases/bblayers.py b/Contrib-Inspur/openbmc/poky/meta/lib/oeqa/selftest/cases/bblayers.py index 954488df..f131d985 100644 --- a/Contrib-Inspur/openbmc/poky/meta/lib/oeqa/selftest/cases/bblayers.py +++ b/Contrib-Inspur/openbmc/poky/meta/lib/oeqa/selftest/cases/bblayers.py @@ -14,21 +14,21 @@ class BitbakeLayers(OESelftestTestCase): def test_bitbakelayers_showcrossdepends(self): result = runCmd('bitbake-layers show-cross-depends') - self.assertTrue('aspell' in result.output, msg = "No dependencies were shown. bitbake-layers show-cross-depends output: %s" % result.output) + self.assertIn('aspell', result.output) def test_bitbakelayers_showlayers(self): result = runCmd('bitbake-layers show-layers') - self.assertTrue('meta-selftest' in result.output, msg = "No layers were shown. bitbake-layers show-layers output: %s" % result.output) + self.assertIn('meta-selftest', result.output) def test_bitbakelayers_showappends(self): recipe = "xcursor-transparent-theme" bb_file = self.get_recipe_basename(recipe) result = runCmd('bitbake-layers show-appends') - self.assertTrue(bb_file in result.output, msg="%s file was not recognised. bitbake-layers show-appends output: %s" % (bb_file, result.output)) + self.assertIn(bb_file, result.output) def test_bitbakelayers_showoverlayed(self): result = runCmd('bitbake-layers show-overlayed') - self.assertTrue('aspell' in result.output, msg="aspell overlayed recipe was not recognised bitbake-layers show-overlayed %s" % result.output) + self.assertIn('aspell', result.output) def test_bitbakelayers_flatten(self): recipe = "xcursor-transparent-theme" diff --git a/Contrib-Inspur/openbmc/poky/meta/lib/oeqa/selftest/cases/bbtests.py b/Contrib-Inspur/openbmc/poky/meta/lib/oeqa/selftest/cases/bbtests.py index e9ad44b0..dc423ec4 100644 --- a/Contrib-Inspur/openbmc/poky/meta/lib/oeqa/selftest/cases/bbtests.py +++ b/Contrib-Inspur/openbmc/poky/meta/lib/oeqa/selftest/cases/bbtests.py @@ -40,11 +40,11 @@ def test_run_bitbake_from_dir_3(self): def test_event_handler(self): self.write_config("INHERIT += \"test_events\"") result = bitbake('m4-native') - find_build_started = re.search(r"NOTE: Test for bb\.event\.BuildStarted(\n.*)*NOTE: Executing RunQueue Tasks", result.output) + find_build_started = re.search(r"NOTE: Test for bb\.event\.BuildStarted(\n.*)*NOTE: Executing.*Tasks", result.output) find_build_completed = re.search(r"Tasks Summary:.*(\n.*)*NOTE: Test for bb\.event\.BuildCompleted", result.output) self.assertTrue(find_build_started, msg = "Match failed in:\n%s" % result.output) self.assertTrue(find_build_completed, msg = "Match failed in:\n%s" % result.output) - self.assertFalse('Test for bb.event.InvalidEvent' in result.output, msg = "\"Test for bb.event.InvalidEvent\" message found during bitbake process. bitbake output: %s" % result.output) + self.assertNotIn('Test for bb.event.InvalidEvent', result.output) def test_local_sstate(self): bitbake('m4-native') @@ -59,7 +59,7 @@ def test_bitbake_invalid_recipe(self): def test_bitbake_invalid_target(self): result = bitbake('asdf', ignore_status=True) - self.assertTrue("ERROR: Nothing PROVIDES 'asdf'" in result.output, msg = "Though no 'asdf' target exists, bitbake didn't output any err. message. bitbake output: %s" % result.output) + self.assertIn("ERROR: Nothing PROVIDES 'asdf'", result.output) def test_warnings_errors(self): result = bitbake('-b asdf', ignore_status=True) @@ -75,8 +75,11 @@ def test_invalid_patch(self): result = bitbake('man-db -c patch', ignore_status=True) self.delete_recipeinc('man-db') bitbake('-cclean man-db') - line = self.getline(result, "Function failed: patch_do_patch") - self.assertTrue(line and line.startswith("ERROR:"), msg = "Incorrectly formed patch application didn't fail. bitbake output: %s" % result.output) + found = False + for l in result.output.split('\n'): + if l.startswith("ERROR:") and "failed" in l and "do_patch" in l: + found = l + self.assertTrue(found and found.startswith("ERROR:"), msg = "Incorrectly formed patch application didn't fail. bitbake output: %s" % result.output) def test_force_task_1(self): # test 1 from bug 5875 @@ -115,11 +118,12 @@ def test_force_task_2(self): self.assertIn(task, result.output, msg="Couldn't find %s task.") def test_bitbake_g(self): - result = bitbake('-g core-image-minimal') - for f in ['pn-buildlist', 'recipe-depends.dot', 'task-depends.dot']: + recipe = 'base-files' + result = bitbake('-g %s' % recipe) + for f in ['pn-buildlist', 'task-depends.dot']: self.addCleanup(os.remove, f) self.assertTrue('Task dependencies saved to \'task-depends.dot\'' in result.output, msg = "No task dependency \"task-depends.dot\" file was generated for the given task target. bitbake output: %s" % result.output) - self.assertTrue('busybox' in ftools.read_file(os.path.join(self.builddir, 'task-depends.dot')), msg = "No \"busybox\" dependency found in task-depends.dot file.") + self.assertIn(recipe, ftools.read_file(os.path.join(self.builddir, 'task-depends.dot'))) def test_image_manifest(self): bitbake('core-image-minimal') @@ -143,8 +147,7 @@ def test_invalid_recipe_src_uri(self): bitbake('-ccleanall man-db') self.delete_recipeinc('man-db') self.assertEqual(result.status, 1, msg="Command succeded when it should have failed. bitbake output: %s" % result.output) - self.assertTrue('Fetcher failure: Unable to find file file://invalid anywhere. The paths that were searched were:' in result.output, msg = "\"invalid\" file \ -doesn't exist, yet no error message encountered. bitbake output: %s" % result.output) + self.assertIn('Fetcher failure: Unable to find file file://invalid anywhere. The paths that were searched were:', result.output) line = self.getline(result, 'Fetcher failure for URL: \'file://invalid\'. Unable to fetch URL from any source.') self.assertTrue(line and line.startswith("ERROR:"), msg = "\"invalid\" file \ doesn't exist, yet fetcher didn't report any error. bitbake output: %s" % result.output) @@ -169,7 +172,7 @@ def test_rename_downloaded_file(self): def test_environment(self): self.write_config("TEST_ENV=\"localconf\"") result = runCmd('bitbake -e | grep TEST_ENV=') - self.assertTrue('localconf' in result.output, msg = "bitbake didn't report any value for TEST_ENV variable. To test, run 'bitbake -e | grep TEST_ENV='") + self.assertIn('localconf', result.output) def test_dry_run(self): result = runCmd('bitbake -n m4-native') @@ -189,10 +192,10 @@ def test_prefile(self): self.track_for_cleanup(preconf) ftools.write_file(preconf ,"TEST_PREFILE=\"prefile\"") result = runCmd('bitbake -r conf/prefile.conf -e | grep TEST_PREFILE=') - self.assertTrue('prefile' in result.output, "Preconfigure file \"prefile.conf\"was not taken into consideration. ") + self.assertIn('prefile', result.output) self.write_config("TEST_PREFILE=\"localconf\"") result = runCmd('bitbake -r conf/prefile.conf -e | grep TEST_PREFILE=') - self.assertTrue('localconf' in result.output, "Preconfigure file \"prefile.conf\"was not taken into consideration.") + self.assertIn('localconf', result.output) def test_postfile(self): postconf = os.path.join(self.builddir, 'conf/postfile.conf') @@ -200,7 +203,7 @@ def test_postfile(self): ftools.write_file(postconf , "TEST_POSTFILE=\"postfile\"") self.write_config("TEST_POSTFILE=\"localconf\"") result = runCmd('bitbake -R conf/postfile.conf -e | grep TEST_POSTFILE=') - self.assertTrue('postfile' in result.output, "Postconfigure file \"postfile.conf\"was not taken into consideration.") + self.assertIn('postfile', result.output) def test_checkuri(self): result = runCmd('bitbake -c checkuri m4') @@ -242,6 +245,36 @@ def test_setscene_only(self): self.assertIn('_setscene', task, 'A task different from _setscene ran: %s.\n' 'Executed tasks were: %s' % (task, str(tasks))) + def test_skip_setscene(self): + test_recipe = 'ed' + + bitbake(test_recipe) + bitbake('-c clean %s' % test_recipe) + + ret = bitbake('--setscene-only %s' % test_recipe) + tasks = re.findall(r'task\s+(do_\S+):', ret.output) + + for task in tasks: + self.assertIn('_setscene', task, 'A task different from _setscene ran: %s.\n' + 'Executed tasks were: %s' % (task, str(tasks))) + + # Run without setscene. Should do nothing + ret = bitbake('--skip-setscene %s' % test_recipe) + tasks = re.findall(r'task\s+(do_\S+):', ret.output) + + self.assertFalse(tasks, 'Tasks %s ran when they should not have' % (str(tasks))) + + # Clean (leave sstate cache) and run with --skip-setscene. No setscene + # tasks should run + bitbake('-c clean %s' % test_recipe) + + ret = bitbake('--skip-setscene %s' % test_recipe) + tasks = re.findall(r'task\s+(do_\S+):', ret.output) + + for task in tasks: + self.assertNotIn('_setscene', task, 'A _setscene task ran: %s.\n' + 'Executed tasks were: %s' % (task, str(tasks))) + def test_bbappend_order(self): """ Bitbake should bbappend to recipe in a predictable order """ test_recipe = 'ed' diff --git a/Contrib-Inspur/openbmc/poky/meta/lib/oeqa/selftest/cases/binutils.py b/Contrib-Inspur/openbmc/poky/meta/lib/oeqa/selftest/cases/binutils.py new file mode 100644 index 00000000..821f52f5 --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/lib/oeqa/selftest/cases/binutils.py @@ -0,0 +1,50 @@ +# SPDX-License-Identifier: MIT +import os +import sys +import re +import logging +from oeqa.core.decorator import OETestTag +from oeqa.core.case import OEPTestResultTestCase +from oeqa.selftest.case import OESelftestTestCase +from oeqa.utils.commands import bitbake, get_bb_var, get_bb_vars + +def parse_values(content): + for i in content: + for v in ["PASS", "FAIL", "XPASS", "XFAIL", "UNRESOLVED", "UNSUPPORTED", "UNTESTED", "ERROR", "WARNING"]: + if i.startswith(v + ": "): + yield i[len(v) + 2:].strip(), v + break + +@OETestTag("toolchain-user", "toolchain-system") +class BinutilsCrossSelfTest(OESelftestTestCase, OEPTestResultTestCase): + def test_binutils(self): + self.run_binutils("binutils") + + def test_gas(self): + self.run_binutils("gas") + + def test_ld(self): + self.run_binutils("ld") + + def run_binutils(self, suite): + features = [] + features.append('CHECK_TARGETS = "{0}"'.format(suite)) + self.write_config("\n".join(features)) + + recipe = "binutils-cross-testsuite" + bb_vars = get_bb_vars(["B", "TARGET_SYS", "T"], recipe) + builddir, target_sys, tdir = bb_vars["B"], bb_vars["TARGET_SYS"], bb_vars["T"] + + bitbake("{0} -c check".format(recipe)) + + sumspath = os.path.join(builddir, suite, "{0}.sum".format(suite)) + if not os.path.exists(sumspath): + sumspath = os.path.join(builddir, suite, "testsuite", "{0}.sum".format(suite)) + logpath = os.path.splitext(sumspath)[0] + ".log" + + ptestsuite = "binutils-{}".format(suite) if suite != "binutils" else suite + self.ptest_section(ptestsuite, logfile = logpath) + with open(sumspath, "r") as f: + for test, result in parse_values(f): + self.ptest_result(ptestsuite, test, result) + diff --git a/Contrib-Inspur/openbmc/poky/meta/lib/oeqa/selftest/cases/buildoptions.py b/Contrib-Inspur/openbmc/poky/meta/lib/oeqa/selftest/cases/buildoptions.py index 3ad65b40..e91f0bd1 100644 --- a/Contrib-Inspur/openbmc/poky/meta/lib/oeqa/selftest/cases/buildoptions.py +++ b/Contrib-Inspur/openbmc/poky/meta/lib/oeqa/selftest/cases/buildoptions.py @@ -143,7 +143,7 @@ def test_buildhistory_basic(self): def test_buildhistory_buildtime_pr_backwards(self): target = 'xcursor-transparent-theme' - error = "ERROR:.*QA Issue: Package version for package %s went backwards which would break package feeds from (.*-r1.* to .*-r0.*)" % target + error = "ERROR:.*QA Issue: Package version for package %s went backwards which would break package feeds \(from .*-r1.* to .*-r0.*\)" % target self.run_buildhistory_operation(target, target_config="PR = \"r1\"", change_bh_location=True) self.run_buildhistory_operation(target, target_config="PR = \"r0\"", change_bh_location=False, expect_error=True, error_regex=error) @@ -162,17 +162,14 @@ def test_arch_work_dir_and_export_source(self): self.assertTrue((g.glob(src_file_glob) and g.glob(tar_file_glob)), "Couldn't find .src.rpm and .tar.gz files under %s/allarch*/xcursor*" % deploy_dir_src) class ToolchainOptions(OESelftestTestCase): - def test_toolchain_fortran(self): """ - Test whether we can enable and build fortran and its supporting libraries + Test that Fortran works by building a Hello, World binary. """ features = 'FORTRAN_forcevariable = ",fortran"\n' - features += 'RUNTIMETARGET_append_pn-gcc-runtime = " libquadmath"\n' self.write_config(features) - - bitbake('gcc-runtime libgfortran') + bitbake('fortran-helloworld') class SourceMirroring(OESelftestTestCase): # Can we download everything from the Yocto Sources Mirror over http only diff --git a/Contrib-Inspur/openbmc/poky/meta/lib/oeqa/selftest/cases/devtool.py b/Contrib-Inspur/openbmc/poky/meta/lib/oeqa/selftest/cases/devtool.py index 904ff698..57e6662e 100644 --- a/Contrib-Inspur/openbmc/poky/meta/lib/oeqa/selftest/cases/devtool.py +++ b/Contrib-Inspur/openbmc/poky/meta/lib/oeqa/selftest/cases/devtool.py @@ -137,6 +137,7 @@ def _test_recipe_contents(self, recipefile, checkvars, checkinherits): with open(recipefile, 'r') as f: invar = None invalue = None + inherits = set() for line in f: var = None if invar: @@ -158,7 +159,7 @@ def _test_recipe_contents(self, recipefile, checkvars, checkinherits): invar = var continue elif line.startswith('inherit '): - inherits = line.split()[1:] + inherits.update(line.split()[1:]) if var and var in checkvars: needvalue = checkvars.pop(var) @@ -240,6 +241,9 @@ def test_create_workspace(self): # Check preconditions result = runCmd('bitbake-layers show-layers') self.assertTrue('\nworkspace' not in result.output, 'This test cannot be run with a workspace layer in bblayers.conf') + # remove conf/devtool.conf to avoid it corrupting tests + devtoolconf = os.path.join(self.builddir, 'conf', 'devtool.conf') + self.track_for_cleanup(devtoolconf) # Try creating a workspace layer with a specific path tempdir = tempfile.mkdtemp(prefix='devtoolqa') self.track_for_cleanup(tempdir) @@ -515,8 +519,8 @@ def test_devtool_modify(self): tempdir = tempfile.mkdtemp(prefix='devtoolqa') self.track_for_cleanup(tempdir) self.track_for_cleanup(self.workspacedir) - self.add_command_to_tearDown('bitbake-layers remove-layer */workspace') self.add_command_to_tearDown('bitbake -c clean mdadm') + self.add_command_to_tearDown('bitbake-layers remove-layer */workspace') result = runCmd('devtool modify mdadm -x %s' % tempdir) self.assertExists(os.path.join(tempdir, 'Makefile'), 'Extracted source could not be found') self.assertExists(os.path.join(self.workspacedir, 'conf', 'layer.conf'), 'Workspace directory not created') @@ -584,8 +588,8 @@ def assertNoFile(path, *paths): self.track_for_cleanup(tempdir_m4) self.track_for_cleanup(builddir_m4) self.track_for_cleanup(self.workspacedir) - self.add_command_to_tearDown('bitbake-layers remove-layer */workspace') self.add_command_to_tearDown('bitbake -c clean mdadm m4') + self.add_command_to_tearDown('bitbake-layers remove-layer */workspace') self.write_recipeinc('m4', 'EXTERNALSRC_BUILD = "%s"\ndo_clean() {\n\t:\n}\n' % builddir_m4) try: runCmd('devtool modify mdadm -x %s' % tempdir_mdadm) @@ -601,6 +605,7 @@ def assertNoFile(path, *paths): bitbake('mdadm m4 -c buildclean') assertNoFile(tempdir_mdadm, 'mdadm') assertNoFile(builddir_m4, 'src/m4') + runCmd('echo "#Trigger rebuild" >> %s/Makefile' % tempdir_mdadm) bitbake('mdadm m4 -c compile') assertFile(tempdir_mdadm, 'mdadm') assertFile(builddir_m4, 'src/m4') @@ -680,8 +685,8 @@ def test_devtool_modify_git(self): tempdir = tempfile.mkdtemp(prefix='devtoolqa') self.track_for_cleanup(tempdir) self.track_for_cleanup(self.workspacedir) - self.add_command_to_tearDown('bitbake-layers remove-layer */workspace') self.add_command_to_tearDown('bitbake -c clean %s' % testrecipe) + self.add_command_to_tearDown('bitbake-layers remove-layer */workspace') result = runCmd('devtool modify %s -x %s' % (testrecipe, tempdir)) self.assertExists(os.path.join(tempdir, 'Makefile.am'), 'Extracted source could not be found') self.assertExists(os.path.join(self.workspacedir, 'conf', 'layer.conf'), 'Workspace directory not created. devtool output: %s' % result.output) @@ -712,8 +717,8 @@ def test_devtool_modify_localfiles(self): tempdir = tempfile.mkdtemp(prefix='devtoolqa') self.track_for_cleanup(tempdir) self.track_for_cleanup(self.workspacedir) - self.add_command_to_tearDown('bitbake-layers remove-layer */workspace') self.add_command_to_tearDown('bitbake -c clean %s' % testrecipe) + self.add_command_to_tearDown('bitbake-layers remove-layer */workspace') result = runCmd('devtool modify %s -x %s' % (testrecipe, tempdir)) self.assertExists(os.path.join(tempdir, 'configure.ac'), 'Extracted source could not be found') self.assertExists(os.path.join(self.workspacedir, 'conf', 'layer.conf'), 'Workspace directory not created') @@ -1243,8 +1248,8 @@ def test_devtool_deploy_target(self): tempdir = tempfile.mkdtemp(prefix='devtoolqa') self.track_for_cleanup(tempdir) self.track_for_cleanup(self.workspacedir) - self.add_command_to_tearDown('bitbake-layers remove-layer */workspace') self.add_command_to_tearDown('bitbake -c clean %s' % testrecipe) + self.add_command_to_tearDown('bitbake-layers remove-layer */workspace') result = runCmd('devtool modify %s -x %s' % (testrecipe, tempdir)) # Test that deploy-target at this point fails (properly) result = runCmd('devtool deploy-target -n %s root@localhost' % testrecipe, ignore_status=True) @@ -1294,8 +1299,8 @@ def test_devtool_build_image(self): self.assertTrue(not os.path.exists(self.workspacedir), 'This test cannot be run with a workspace directory under the build directory') image = 'core-image-minimal' self.track_for_cleanup(self.workspacedir) - self.add_command_to_tearDown('bitbake-layers remove-layer */workspace') self.add_command_to_tearDown('bitbake -c clean %s' % image) + self.add_command_to_tearDown('bitbake-layers remove-layer */workspace') bitbake('%s -c clean' % image) # Add target and native recipes to workspace recipes = ['mdadm', 'parted-native'] @@ -1492,11 +1497,13 @@ def _setup_test_devtool_finish_upgrade(self): recipedir = os.path.dirname(oldrecipefile) olddir = os.path.join(recipedir, recipe + '-' + oldversion) patchfn = '0001-Add-a-note-line-to-the-quick-reference.patch' + backportedpatchfn = 'backported.patch' self.assertExists(os.path.join(olddir, patchfn), 'Original patch file does not exist') - return recipe, oldrecipefile, recipedir, olddir, newversion, patchfn + self.assertExists(os.path.join(olddir, backportedpatchfn), 'Backported patch file does not exist') + return recipe, oldrecipefile, recipedir, olddir, newversion, patchfn, backportedpatchfn def test_devtool_finish_upgrade_origlayer(self): - recipe, oldrecipefile, recipedir, olddir, newversion, patchfn = self._setup_test_devtool_finish_upgrade() + recipe, oldrecipefile, recipedir, olddir, newversion, patchfn, backportedpatchfn = self._setup_test_devtool_finish_upgrade() # Ensure the recipe is where we think it should be (so that cleanup doesn't trash things) self.assertIn('/meta-selftest/', recipedir) # Try finish to the original layer @@ -1507,14 +1514,23 @@ def test_devtool_finish_upgrade_origlayer(self): self.assertNotExists(os.path.join(self.workspacedir, 'recipes', recipe), 'Recipe directory should not exist after finish') self.assertNotExists(oldrecipefile, 'Old recipe file should have been deleted but wasn\'t') self.assertNotExists(os.path.join(olddir, patchfn), 'Old patch file should have been deleted but wasn\'t') + self.assertNotExists(os.path.join(olddir, backportedpatchfn), 'Old backported patch file should have been deleted but wasn\'t') newrecipefile = os.path.join(recipedir, '%s_%s.bb' % (recipe, newversion)) newdir = os.path.join(recipedir, recipe + '-' + newversion) self.assertExists(newrecipefile, 'New recipe file should have been copied into existing layer but wasn\'t') self.assertExists(os.path.join(newdir, patchfn), 'Patch file should have been copied into new directory but wasn\'t') + self.assertNotExists(os.path.join(newdir, backportedpatchfn), 'Backported patch file should not have been copied into new directory but was') self.assertExists(os.path.join(newdir, '0002-Add-a-comment-to-the-code.patch'), 'New patch file should have been created but wasn\'t') + with open(newrecipefile, 'r') as f: + newcontent = f.read() + self.assertNotIn(backportedpatchfn, newcontent, "Backported patch should have been removed from the recipe but wasn't") + self.assertIn(patchfn, newcontent, "Old patch should have not been removed from the recipe but was") + self.assertIn("0002-Add-a-comment-to-the-code.patch", newcontent, "New patch should have been added to the recipe but wasn't") + self.assertIn("http://www.ivarch.com/programs/sources/pv-${PV}.tar.gz", newcontent, "New recipe no longer has upstream source in SRC_URI") + def test_devtool_finish_upgrade_otherlayer(self): - recipe, oldrecipefile, recipedir, olddir, newversion, patchfn = self._setup_test_devtool_finish_upgrade() + recipe, oldrecipefile, recipedir, olddir, newversion, patchfn, backportedpatchfn = self._setup_test_devtool_finish_upgrade() # Ensure the recipe is where we think it should be (so that cleanup doesn't trash things) self.assertIn('/meta-selftest/', recipedir) # Try finish to a different layer - should create a bbappend @@ -1530,10 +1546,18 @@ def test_devtool_finish_upgrade_otherlayer(self): self.assertNotExists(os.path.join(self.workspacedir, 'recipes', recipe), 'Recipe directory should not exist after finish') self.assertExists(oldrecipefile, 'Old recipe file should not have been deleted') self.assertExists(os.path.join(olddir, patchfn), 'Old patch file should not have been deleted') + self.assertExists(os.path.join(olddir, backportedpatchfn), 'Old backported patch file should not have been deleted') newdir = os.path.join(newrecipedir, recipe + '-' + newversion) self.assertExists(newrecipefile, 'New recipe file should have been copied into existing layer but wasn\'t') self.assertExists(os.path.join(newdir, patchfn), 'Patch file should have been copied into new directory but wasn\'t') + self.assertNotExists(os.path.join(newdir, backportedpatchfn), 'Backported patch file should not have been copied into new directory but was') self.assertExists(os.path.join(newdir, '0002-Add-a-comment-to-the-code.patch'), 'New patch file should have been created but wasn\'t') + with open(newrecipefile, 'r') as f: + newcontent = f.read() + self.assertNotIn(backportedpatchfn, newcontent, "Backported patch should have been removed from the recipe but wasn't") + self.assertIn(patchfn, newcontent, "Old patch should have not been removed from the recipe but was") + self.assertIn("0002-Add-a-comment-to-the-code.patch", newcontent, "New patch should have been added to the recipe but wasn't") + self.assertIn("http://www.ivarch.com/programs/sources/pv-${PV}.tar.gz", newcontent, "New recipe no longer has upstream source in SRC_URI") def _setup_test_devtool_finish_modify(self): # Check preconditions @@ -1704,8 +1728,8 @@ def test_devtool_virtual_kernel_modify(self): self.track_for_cleanup(tempdir) self.track_for_cleanup(tempdir_cfg) self.track_for_cleanup(self.workspacedir) - self.add_command_to_tearDown('bitbake-layers remove-layer */workspace') self.add_command_to_tearDown('bitbake -c clean %s' % kernel_provider) + self.add_command_to_tearDown('bitbake-layers remove-layer */workspace') #Step 1 #Here is just generated the config file instead of all the kernel to optimize the #time of executing this test case. diff --git a/Contrib-Inspur/openbmc/poky/meta/lib/oeqa/selftest/cases/gcc.py b/Contrib-Inspur/openbmc/poky/meta/lib/oeqa/selftest/cases/gcc.py new file mode 100644 index 00000000..5a917b9c --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/lib/oeqa/selftest/cases/gcc.py @@ -0,0 +1,140 @@ +# SPDX-License-Identifier: MIT +import os +from oeqa.core.decorator import OETestTag +from oeqa.core.case import OEPTestResultTestCase +from oeqa.selftest.case import OESelftestTestCase +from oeqa.utils.commands import bitbake, get_bb_var, get_bb_vars, runqemu, Command + +def parse_values(content): + for i in content: + for v in ["PASS", "FAIL", "XPASS", "XFAIL", "UNRESOLVED", "UNSUPPORTED", "UNTESTED", "ERROR", "WARNING"]: + if i.startswith(v + ": "): + yield i[len(v) + 2:].strip(), v + break + +class GccSelfTestBase(OESelftestTestCase, OEPTestResultTestCase): + def check_skip(self, suite): + targets = get_bb_var("RUNTIMETARGET", "gcc-runtime").split() + if suite not in targets: + self.skipTest("Target does not use {0}".format(suite)) + + def run_check(self, *suites, ssh = None): + targets = set() + for s in suites: + if s in ["gcc", "g++"]: + targets.add("check-gcc") + else: + targets.add("check-target-{}".format(s)) + + # configure ssh target + features = [] + features.append('MAKE_CHECK_TARGETS = "{0}"'.format(" ".join(targets))) + if ssh is not None: + features.append('TOOLCHAIN_TEST_TARGET = "ssh"') + features.append('TOOLCHAIN_TEST_HOST = "{0}"'.format(ssh)) + features.append('TOOLCHAIN_TEST_HOST_USER = "root"') + features.append('TOOLCHAIN_TEST_HOST_PORT = "22"') + self.write_config("\n".join(features)) + + recipe = "gcc-runtime" + bitbake("{} -c check".format(recipe)) + + bb_vars = get_bb_vars(["B", "TARGET_SYS"], recipe) + builddir, target_sys = bb_vars["B"], bb_vars["TARGET_SYS"] + + for suite in suites: + sumspath = os.path.join(builddir, "gcc", "testsuite", suite, "{0}.sum".format(suite)) + if not os.path.exists(sumspath): # check in target dirs + sumspath = os.path.join(builddir, target_sys, suite, "testsuite", "{0}.sum".format(suite)) + if not os.path.exists(sumspath): # handle libstdc++-v3 -> libstdc++ + sumspath = os.path.join(builddir, target_sys, suite, "testsuite", "{0}.sum".format(suite.split("-")[0])) + logpath = os.path.splitext(sumspath)[0] + ".log" + + ptestsuite = "gcc-{}".format(suite) if suite != "gcc" else suite + ptestsuite = ptestsuite + "-user" if ssh is None else ptestsuite + self.ptest_section(ptestsuite, logfile = logpath) + with open(sumspath, "r") as f: + for test, result in parse_values(f): + self.ptest_result(ptestsuite, test, result) + + def run_check_emulated(self, *args, **kwargs): + # build core-image-minimal with required packages + default_installed_packages = ["libgcc", "libstdc++", "libatomic", "libgomp"] + features = [] + features.append('IMAGE_FEATURES += "ssh-server-openssh"') + features.append('CORE_IMAGE_EXTRA_INSTALL += "{0}"'.format(" ".join(default_installed_packages))) + self.write_config("\n".join(features)) + bitbake("core-image-minimal") + + # wrap the execution with a qemu instance + with runqemu("core-image-minimal", runqemuparams = "nographic") as qemu: + # validate that SSH is working + status, _ = qemu.run("uname") + self.assertEqual(status, 0) + + return self.run_check(*args, ssh=qemu.ip, **kwargs) + +@OETestTag("toolchain-user") +class GccCrossSelfTest(GccSelfTestBase): + def test_cross_gcc(self): + self.run_check("gcc", "g++") + +@OETestTag("toolchain-user") +class GccLibAtomicSelfTest(GccSelfTestBase): + def test_libatomic(self): + self.run_check("libatomic") + +@OETestTag("toolchain-user") +class GccLibGompSelfTest(GccSelfTestBase): + def test_libgomp(self): + self.run_check("libgomp") + +@OETestTag("toolchain-user") +class GccLibStdCxxSelfTest(GccSelfTestBase): + def test_libstdcxx(self): + self.run_check("libstdc++-v3") + +@OETestTag("toolchain-user") +class GccLibSspSelfTest(GccSelfTestBase): + def test_libssp(self): + self.check_skip("libssp") + self.run_check("libssp") + +@OETestTag("toolchain-user") +class GccLibItmSelfTest(GccSelfTestBase): + def test_libitm(self): + self.check_skip("libitm") + self.run_check("libitm") + +@OETestTag("toolchain-system") +class GccCrossSelfTestSystemEmulated(GccSelfTestBase): + def test_cross_gcc(self): + self.run_check_emulated("gcc", "g++") + +@OETestTag("toolchain-system") +class GccLibAtomicSelfTestSystemEmulated(GccSelfTestBase): + def test_libatomic(self): + self.run_check_emulated("libatomic") + +@OETestTag("toolchain-system") +class GccLibGompSelfTestSystemEmulated(GccSelfTestBase): + def test_libgomp(self): + self.run_check_emulated("libgomp") + +@OETestTag("toolchain-system") +class GccLibStdCxxSelfTestSystemEmulated(GccSelfTestBase): + def test_libstdcxx(self): + self.run_check_emulated("libstdc++-v3") + +@OETestTag("toolchain-system") +class GccLibSspSelfTestSystemEmulated(GccSelfTestBase): + def test_libssp(self): + self.check_skip("libssp") + self.run_check_emulated("libssp") + +@OETestTag("toolchain-system") +class GccLibItmSelfTestSystemEmulated(GccSelfTestBase): + def test_libitm(self): + self.check_skip("libitm") + self.run_check_emulated("libitm") + diff --git a/Contrib-Inspur/openbmc/poky/meta/lib/oeqa/selftest/cases/glibc.py b/Contrib-Inspur/openbmc/poky/meta/lib/oeqa/selftest/cases/glibc.py new file mode 100644 index 00000000..c687f6ef --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/lib/oeqa/selftest/cases/glibc.py @@ -0,0 +1,89 @@ +# SPDX-License-Identifier: MIT +import os +import contextlib +from oeqa.core.decorator import OETestTag +from oeqa.core.case import OEPTestResultTestCase +from oeqa.selftest.case import OESelftestTestCase +from oeqa.utils.commands import bitbake, get_bb_var, get_bb_vars, runqemu, Command +from oeqa.utils.nfs import unfs_server + +def parse_values(content): + for i in content: + for v in ["PASS", "FAIL", "XPASS", "XFAIL", "UNRESOLVED", "UNSUPPORTED", "UNTESTED", "ERROR", "WARNING"]: + if i.startswith(v + ": "): + yield i[len(v) + 2:].strip(), v + break + +class GlibcSelfTestBase(OESelftestTestCase, OEPTestResultTestCase): + def run_check(self, ssh = None): + # configure ssh target + features = [] + if ssh is not None: + features.append('TOOLCHAIN_TEST_TARGET = "ssh"') + features.append('TOOLCHAIN_TEST_HOST = "{0}"'.format(ssh)) + features.append('TOOLCHAIN_TEST_HOST_USER = "root"') + features.append('TOOLCHAIN_TEST_HOST_PORT = "22"') + # force single threaded test execution + features.append('EGLIBCPARALLELISM_task-check_pn-glibc-testsuite = "PARALLELMFLAGS="-j1""') + self.write_config("\n".join(features)) + + bitbake("glibc-testsuite -c check") + + builddir = get_bb_var("B", "glibc-testsuite") + + ptestsuite = "glibc-user" if ssh is None else "glibc" + self.ptest_section(ptestsuite) + with open(os.path.join(builddir, "tests.sum"), "r") as f: + for test, result in parse_values(f): + self.ptest_result(ptestsuite, test, result) + + def run_check_emulated(self): + with contextlib.ExitStack() as s: + # use the base work dir, as the nfs mount, since the recipe directory may not exist + tmpdir = get_bb_var("BASE_WORKDIR") + nfsport, mountport = s.enter_context(unfs_server(tmpdir)) + + # build core-image-minimal with required packages + default_installed_packages = [ + "glibc-charmaps", + "libgcc", + "libstdc++", + "libatomic", + "libgomp", + # "python3", + # "python3-pexpect", + "nfs-utils", + ] + features = [] + features.append('IMAGE_FEATURES += "ssh-server-openssh"') + features.append('CORE_IMAGE_EXTRA_INSTALL += "{0}"'.format(" ".join(default_installed_packages))) + self.write_config("\n".join(features)) + bitbake("core-image-minimal") + + # start runqemu + qemu = s.enter_context(runqemu("core-image-minimal", runqemuparams = "nographic")) + + # validate that SSH is working + status, _ = qemu.run("uname") + self.assertEqual(status, 0) + + # setup nfs mount + if qemu.run("mkdir -p \"{0}\"".format(tmpdir))[0] != 0: + raise Exception("Failed to setup NFS mount directory on target") + mountcmd = "mount -o noac,nfsvers=3,port={0},udp,mountport={1} \"{2}:{3}\" \"{3}\"".format(nfsport, mountport, qemu.server_ip, tmpdir) + status, output = qemu.run(mountcmd) + if status != 0: + raise Exception("Failed to setup NFS mount on target ({})".format(repr(output))) + + self.run_check(ssh = qemu.ip) + +@OETestTag("toolchain-user") +class GlibcSelfTest(GlibcSelfTestBase): + def test_glibc(self): + self.run_check() + +@OETestTag("toolchain-system") +class GlibcSelfTestSystemEmulated(GlibcSelfTestBase): + def test_glibc(self): + self.run_check_emulated() + diff --git a/Contrib-Inspur/openbmc/poky/meta/lib/oeqa/selftest/cases/imagefeatures.py b/Contrib-Inspur/openbmc/poky/meta/lib/oeqa/selftest/cases/imagefeatures.py index afc629f2..ef2eefa8 100644 --- a/Contrib-Inspur/openbmc/poky/meta/lib/oeqa/selftest/cases/imagefeatures.py +++ b/Contrib-Inspur/openbmc/poky/meta/lib/oeqa/selftest/cases/imagefeatures.py @@ -124,7 +124,7 @@ def test_bmap(self): # check if result image is sparse image_stat = os.stat(image_path) - self.assertTrue(image_stat.st_size > image_stat.st_blocks * 512) + self.assertGreater(image_stat.st_size, image_stat.st_blocks * 512) # check if the resulting gzip is valid self.assertTrue(runCmd('gzip -t %s' % gzip_path)) @@ -161,7 +161,12 @@ def test_hypervisor_fmts(self): sysroot = get_bb_var('STAGING_DIR_NATIVE', 'core-image-minimal') result = runCmd('qemu-img info --output json %s' % image_path, native_sysroot=sysroot) - self.assertTrue(json.loads(result.output).get('format') == itype) + try: + data = json.loads(result.output) + self.assertEqual(data.get('format'), itype, + msg="Unexpected format in '%s'" % (result.output)) + except json.decoder.JSONDecodeError: + self.fail("Could not parse '%ss'" % result.output) def test_long_chain_conversion(self): """ diff --git a/Contrib-Inspur/openbmc/poky/meta/lib/oeqa/selftest/cases/incompatible_lic.py b/Contrib-Inspur/openbmc/poky/meta/lib/oeqa/selftest/cases/incompatible_lic.py index 8fb93af8..904b5b40 100644 --- a/Contrib-Inspur/openbmc/poky/meta/lib/oeqa/selftest/cases/incompatible_lic.py +++ b/Contrib-Inspur/openbmc/poky/meta/lib/oeqa/selftest/cases/incompatible_lic.py @@ -39,3 +39,55 @@ def test_incompatible_alias_spdx_license_alias(self): # INCOMPATIBLE_LICENSE contains this license def test_incompatible_nonspdx_license(self): self.lic_test('incompatible-nonspdx-license', 'FooLicense', 'FooLicense') + +class IncompatibleLicensePerImageTests(OESelftestTestCase): + def default_config(self): + return """ +IMAGE_INSTALL_append = "bash" +INCOMPATIBLE_LICENSE_pn-core-image-minimal = "GPL-3.0 LGPL-3.0" +""" + + def test_bash_default(self): + self.write_config(self.default_config()) + error_msg = "ERROR: core-image-minimal-1.0-r0 do_rootfs: Package bash has an incompatible license GPLv3+ and cannot be installed into the image." + + result = bitbake('core-image-minimal', ignore_status=True) + if error_msg not in result.output: + raise AssertionError(result.output) + + def test_bash_and_license(self): + self.write_config(self.default_config() + '\nLICENSE_append_pn-bash = " & SomeLicense"') + error_msg = "ERROR: core-image-minimal-1.0-r0 do_rootfs: Package bash has an incompatible license GPLv3+ & SomeLicense and cannot be installed into the image." + + result = bitbake('core-image-minimal', ignore_status=True) + if error_msg not in result.output: + raise AssertionError(result.output) + + def test_bash_or_license(self): + self.write_config(self.default_config() + '\nLICENSE_append_pn-bash = " | SomeLicense"') + + bitbake('core-image-minimal') + + def test_bash_whitelist(self): + self.write_config(self.default_config() + '\nWHITELIST_GPL-3.0_pn-core-image-minimal = "bash"') + + bitbake('core-image-minimal') + +class NoGPL3InImagesTests(OESelftestTestCase): + def test_core_image_minimal(self): + self.write_config(""" +INCOMPATIBLE_LICENSE_pn-core-image-minimal = "GPL-3.0 LGPL-3.0" +""") + bitbake('core-image-minimal') + + def test_core_image_full_cmdline(self): + self.write_config(""" +INHERIT += "testimage"\n +INCOMPATIBLE_LICENSE_pn-core-image-full-cmdline = "GPL-3.0 LGPL-3.0"\n +RDEPENDS_packagegroup-core-full-cmdline-utils_remove = "bash bc coreutils cpio ed findutils gawk grep mc mc-fish mc-helpers mc-helpers-perl sed tar time"\n +RDEPENDS_packagegroup-core-full-cmdline-dev-utils_remove = "diffutils m4 make patch"\n +RDEPENDS_packagegroup-core-full-cmdline-multiuser_remove = "gzip"\n +""") + bitbake('core-image-full-cmdline') + bitbake('-c testimage core-image-full-cmdline') + diff --git a/Contrib-Inspur/openbmc/poky/meta/lib/oeqa/selftest/cases/kerneldevelopment.py b/Contrib-Inspur/openbmc/poky/meta/lib/oeqa/selftest/cases/kerneldevelopment.py new file mode 100644 index 00000000..a61876ee --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/lib/oeqa/selftest/cases/kerneldevelopment.py @@ -0,0 +1,67 @@ +import os +from oeqa.selftest.case import OESelftestTestCase +from oeqa.utils.commands import runCmd, get_bb_var +from oeqa.utils.git import GitRepo + +class KernelDev(OESelftestTestCase): + + @classmethod + def setUpClass(cls): + super(KernelDev, cls).setUpClass() + # Create the recipe directory structure inside the created layer + cls.layername = 'meta-kerneltest' + runCmd('bitbake-layers create-layer %s' % cls.layername) + runCmd('mkdir -p %s/recipes-kernel/linux/linux-yocto' % cls.layername) + cls.recipes_linuxyocto_dir = os.path.join \ + (cls.builddir, cls.layername, 'recipes-kernel', 'linux', 'linux-yocto') + cls.recipeskernel_dir = os.path.dirname(cls.recipes_linuxyocto_dir) + runCmd('bitbake-layers add-layer %s' % cls.layername) + + @classmethod + def tearDownClass(cls): + runCmd('bitbake-layers remove-layer %s' % cls.layername, ignore_status=True) + runCmd('rm -rf %s' % cls.layername) + super(KernelDev, cls).tearDownClass() + + def setUp(self): + super(KernelDev, self).setUp() + self.set_machine_config('MACHINE = "qemux86-64"\n') + + def test_apply_patches(self): + """ + Summary: Able to apply a single patch to the Linux kernel source + Expected: The README file should exist and the patch changes should be + displayed at the end of the file. + Product: Kernel Development + Author: Yeoh Ee Peng + AutomatedBy: Mazliana Mohamad + """ + runCmd('bitbake virtual/kernel -c patch') + kernel_source = get_bb_var('STAGING_KERNEL_DIR') + readme = os.path.join(kernel_source, 'README') + + # This test step adds modified file 'README' to git and creates a + # patch file '0001-KERNEL_DEV_TEST_CASE.patch' at the same location as file + patch_content = 'This is a test to apply a patch to the kernel' + with open(readme, 'a+') as f: + f.write(patch_content) + repo = GitRepo('%s' % kernel_source, is_topdir=True) + repo.run_cmd('add %s' % readme) + repo.run_cmd(['commit', '-m', 'KERNEL_DEV_TEST_CASE']) + repo.run_cmd(['format-patch', '-1']) + patch_name = '0001-KERNEL_DEV_TEST_CASE.patch' + patchpath = os.path.join(kernel_source, patch_name) + runCmd('mv %s %s' % (patchpath, self.recipes_linuxyocto_dir)) + runCmd('rm %s ' % readme) + self.assertFalse(os.path.exists(readme)) + + recipe_append = os.path.join(self.recipeskernel_dir, 'linux-yocto_%.bbappend') + with open(recipe_append, 'w+') as fh: + fh.write('SRC_URI += "file://%s"\n' % patch_name) + fh.write('FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"') + + runCmd('bitbake virtual/kernel -c clean') + runCmd('bitbake virtual/kernel -c patch') + self.assertTrue(os.path.exists(readme)) + result = runCmd('tail -n 1 %s' % readme) + self.assertEqual(result.output, patch_content) diff --git a/Contrib-Inspur/openbmc/poky/meta/lib/oeqa/selftest/cases/meta_ide.py b/Contrib-Inspur/openbmc/poky/meta/lib/oeqa/selftest/cases/meta_ide.py index f47bc709..03901a2f 100644 --- a/Contrib-Inspur/openbmc/poky/meta/lib/oeqa/selftest/cases/meta_ide.py +++ b/Contrib-Inspur/openbmc/poky/meta/lib/oeqa/selftest/cases/meta_ide.py @@ -5,9 +5,11 @@ from oeqa.selftest.case import OESelftestTestCase from oeqa.sdk.utils.sdkbuildproject import SDKBuildProject from oeqa.utils.commands import bitbake, get_bb_vars, runCmd +from oeqa.core.decorator import OETestTag import tempfile import shutil +@OETestTag("machine") class MetaIDE(OESelftestTestCase): @classmethod diff --git a/Contrib-Inspur/openbmc/poky/meta/lib/oeqa/selftest/cases/multiconfig.py b/Contrib-Inspur/openbmc/poky/meta/lib/oeqa/selftest/cases/multiconfig.py index d21bf0a4..39b92f24 100644 --- a/Contrib-Inspur/openbmc/poky/meta/lib/oeqa/selftest/cases/multiconfig.py +++ b/Contrib-Inspur/openbmc/poky/meta/lib/oeqa/selftest/cases/multiconfig.py @@ -3,16 +3,16 @@ # import os +import textwrap from oeqa.selftest.case import OESelftestTestCase from oeqa.utils.commands import bitbake -import oeqa.utils.ftools as ftools class MultiConfig(OESelftestTestCase): def test_multiconfig(self): """ - Test that a simple multiconfig build works. This uses the mcextend class and the - multiconfig-image-packager test recipe to build a core-image-full-cmdline image which + Test that a simple multiconfig build works. This uses the mcextend class and the + multiconfig-image-packager test recipe to build a core-image-full-cmdline image which contains a tiny core-image-minimal and a musl core-image-minimal, installed as packages. """ @@ -28,20 +28,45 @@ def test_multiconfig(self): TCLIBC = "musl" TMPDIR = "${TOPDIR}/tmp-mc-musl" """ + self.write_config(muslconfig, 'musl') tinyconfig = """ MACHINE = "qemux86" DISTRO = "poky-tiny" TMPDIR = "${TOPDIR}/tmp-mc-tiny" """ - - multiconfigdir = self.builddir + "/conf/multiconfig" - os.makedirs(multiconfigdir, exist_ok=True) - self.track_for_cleanup(multiconfigdir + "/musl.conf") - ftools.write_file(multiconfigdir + "/musl.conf", muslconfig) - self.track_for_cleanup(multiconfigdir + "/tiny.conf") - ftools.write_file(multiconfigdir + "/tiny.conf", tinyconfig) + self.write_config(tinyconfig, 'tiny') # Build a core-image-minimal bitbake('core-image-full-cmdline') + def test_multiconfig_reparse(self): + """ + Test that changes to a multiconfig conf file are correctly detected and + cause a reparse/rebuild of a recipe. + """ + config = textwrap.dedent('''\ + MCTESTVAR = "test" + BBMULTICONFIG = "test" + ''') + self.write_config(config) + + testconfig = textwrap.dedent('''\ + MCTESTVAR_append = "1" + ''') + self.write_config(testconfig, 'test') + + # Check that the 1) the task executed and 2) that it output the correct + # value. Note "bitbake -e" is not used because it always reparses the + # recipe and we want to ensure that the automatic reparsing and parse + # caching is detected. + result = bitbake('mc:test:multiconfig-test-parse -c showvar') + self.assertIn('MCTESTVAR=test1', result.output.splitlines()) + + testconfig = textwrap.dedent('''\ + MCTESTVAR_append = "2" + ''') + self.write_config(testconfig, 'test') + + result = bitbake('mc:test:multiconfig-test-parse -c showvar') + self.assertIn('MCTESTVAR=test2', result.output.splitlines()) diff --git a/Contrib-Inspur/openbmc/poky/meta/lib/oeqa/selftest/cases/oescripts.py b/Contrib-Inspur/openbmc/poky/meta/lib/oeqa/selftest/cases/oescripts.py index 7770b66a..41cbe048 100644 --- a/Contrib-Inspur/openbmc/poky/meta/lib/oeqa/selftest/cases/oescripts.py +++ b/Contrib-Inspur/openbmc/poky/meta/lib/oeqa/selftest/cases/oescripts.py @@ -3,10 +3,12 @@ # import os +import shutil import unittest from oeqa.selftest.case import OESelftestTestCase from oeqa.selftest.cases.buildhistory import BuildhistoryBase from oeqa.utils.commands import Command, runCmd, bitbake, get_bb_var, get_test_layer +from oeqa.utils import CommandError class BuildhistoryDiffTests(BuildhistoryBase): @@ -63,3 +65,124 @@ def test_pybootchartguy_to_generate_build_pdf_output(self): runCmd('%s/pybootchartgui/pybootchartgui.py %s -o %s/charts -f pdf' % (self.scripts_dir, self.buildstats, self.tmpdir)) self.assertTrue(os.path.exists(self.tmpdir + "/charts.pdf")) + +class OEGitproxyTests(OESelftestTestCase): + + scripts_dir = os.path.join(get_bb_var('COREBASE'), 'scripts') + + def test_oegitproxy_help(self): + try: + res = runCmd('%s/oe-git-proxy --help' % self.scripts_dir, assert_error=False) + self.assertTrue(False) + except CommandError as e: + self.assertEqual(2, e.retcode) + + def run_oegitproxy(self, custom_shell=None): + os.environ['SOCAT'] = shutil.which("echo") + os.environ['ALL_PROXY'] = "https://proxy.example.com:3128" + os.environ['NO_PROXY'] = "*.example.com,.no-proxy.org,192.168.42.0/24,127.*.*.*" + + if custom_shell is None: + prefix = '' + else: + prefix = custom_shell + ' ' + + # outside, use the proxy + res = runCmd('%s%s/oe-git-proxy host.outside-example.com 9418' % + (prefix,self.scripts_dir)) + self.assertIn('PROXY:', res.output) + # match with wildcard suffix + res = runCmd('%s%s/oe-git-proxy host.example.com 9418' % + (prefix, self.scripts_dir)) + self.assertIn('TCP:', res.output) + # match just suffix + res = runCmd('%s%s/oe-git-proxy host.no-proxy.org 9418' % + (prefix, self.scripts_dir)) + self.assertIn('TCP:', res.output) + # match IP subnet + res = runCmd('%s%s/oe-git-proxy 192.168.42.42 9418' % + (prefix, self.scripts_dir)) + self.assertIn('TCP:', res.output) + # match IP wildcard + res = runCmd('%s%s/oe-git-proxy 127.1.2.3 9418' % + (prefix, self.scripts_dir)) + self.assertIn('TCP:', res.output) + + # test that * globbering is off + os.environ['NO_PROXY'] = "*" + res = runCmd('%s%s/oe-git-proxy host.example.com 9418' % + (prefix, self.scripts_dir)) + self.assertIn('TCP:', res.output) + + def test_oegitproxy_proxy(self): + self.run_oegitproxy() + + def test_oegitproxy_proxy_dash(self): + dash = shutil.which("dash") + if dash is None: + self.skipTest("No \"dash\" found on test system.") + self.run_oegitproxy(custom_shell=dash) + +class OeRunNativeTest(OESelftestTestCase): + def test_oe_run_native(self): + bitbake("qemu-helper-native -c addto_recipe_sysroot") + result = runCmd("oe-run-native qemu-helper-native tunctl -h") + self.assertIn("Delete: tunctl -d device-name [-f tun-clone-device]", result.output) + +class OEListPackageconfigTests(OEScriptTests): + #oe-core.scripts.List_all_the_PACKAGECONFIG's_flags + def check_endlines(self, results, expected_endlines): + for line in results.output.splitlines(): + for el in expected_endlines: + if line == el: + expected_endlines.remove(el) + break + + if expected_endlines: + self.fail('Missing expected listings:\n %s' % '\n '.join(expected_endlines)) + + + #oe-core.scripts.List_all_the_PACKAGECONFIG's_flags + def test_packageconfig_flags_help(self): + runCmd('%s/contrib/list-packageconfig-flags.py -h' % self.scripts_dir) + + def test_packageconfig_flags_default(self): + results = runCmd('%s/contrib/list-packageconfig-flags.py' % self.scripts_dir) + expected_endlines = [] + expected_endlines.append("RECIPE NAME PACKAGECONFIG FLAGS") + expected_endlines.append("pinentry gtk2 libcap ncurses qt secret") + expected_endlines.append("tar acl") + + self.check_endlines(results, expected_endlines) + + + def test_packageconfig_flags_option_flags(self): + results = runCmd('%s/contrib/list-packageconfig-flags.py -f' % self.scripts_dir) + expected_endlines = [] + expected_endlines.append("PACKAGECONFIG FLAG RECIPE NAMES") + expected_endlines.append("qt nativesdk-pinentry pinentry pinentry-native") + expected_endlines.append("secret nativesdk-pinentry pinentry pinentry-native") + + self.check_endlines(results, expected_endlines) + + def test_packageconfig_flags_option_all(self): + results = runCmd('%s/contrib/list-packageconfig-flags.py -a' % self.scripts_dir) + expected_endlines = [] + expected_endlines.append("pinentry-1.1.0") + expected_endlines.append("PACKAGECONFIG ncurses libcap") + expected_endlines.append("PACKAGECONFIG[qt] --enable-pinentry-qt, --disable-pinentry-qt, qtbase-native qtbase") + expected_endlines.append("PACKAGECONFIG[gtk2] --enable-pinentry-gtk2, --disable-pinentry-gtk2, gtk+ glib-2.0") + expected_endlines.append("PACKAGECONFIG[libcap] --with-libcap, --without-libcap, libcap") + expected_endlines.append("PACKAGECONFIG[ncurses] --enable-ncurses --with-ncurses-include-dir=${STAGING_INCDIR}, --disable-ncurses, ncurses") + expected_endlines.append("PACKAGECONFIG[secret] --enable-libsecret, --disable-libsecret, libsecret") + + self.check_endlines(results, expected_endlines) + + def test_packageconfig_flags_optiins_preferred_only(self): + results = runCmd('%s/contrib/list-packageconfig-flags.py -p' % self.scripts_dir) + expected_endlines = [] + expected_endlines.append("RECIPE NAME PACKAGECONFIG FLAGS") + expected_endlines.append("pinentry gtk2 libcap ncurses qt secret") + + self.check_endlines(results, expected_endlines) + diff --git a/Contrib-Inspur/openbmc/poky/meta/lib/oeqa/selftest/cases/recipetool.py b/Contrib-Inspur/openbmc/poky/meta/lib/oeqa/selftest/cases/recipetool.py index e3f5c716..c1562c63 100644 --- a/Contrib-Inspur/openbmc/poky/meta/lib/oeqa/selftest/cases/recipetool.py +++ b/Contrib-Inspur/openbmc/poky/meta/lib/oeqa/selftest/cases/recipetool.py @@ -406,22 +406,19 @@ def test_recipetool_create_simple(self): self._test_recipe_contents(os.path.join(temprecipe, dirlist[0]), checkvars, inherits) def test_recipetool_create_cmake(self): - bitbake('-c packagedata gtk+') - - # Try adding a recipe temprecipe = os.path.join(self.tempdir, 'recipe') os.makedirs(temprecipe) - recipefile = os.path.join(temprecipe, 'navit_0.5.0.bb') - srcuri = 'http://downloads.yoctoproject.org/mirror/sources/navit-0.5.0.tar.gz' + recipefile = os.path.join(temprecipe, 'taglib_1.11.1.bb') + srcuri = 'http://taglib.github.io/releases/taglib-1.11.1.tar.gz' result = runCmd('recipetool create -o %s %s' % (temprecipe, srcuri)) self.assertTrue(os.path.isfile(recipefile)) checkvars = {} - checkvars['LICENSE'] = set(['Unknown', 'GPLv2', 'LGPLv2']) - checkvars['SRC_URI'] = 'http://downloads.yoctoproject.org/mirror/sources/navit-${PV}.tar.gz' - checkvars['SRC_URI[md5sum]'] = '242f398e979a6b8c0f3c802b63435b68' - checkvars['SRC_URI[sha256sum]'] = '13353481d7fc01a4f64e385dda460b51496366bba0fd2cc85a89a0747910e94d' - checkvars['DEPENDS'] = set(['freetype', 'zlib', 'openssl', 'glib-2.0', 'virtual/libgl', 'virtual/egl', 'gtk+', 'libpng', 'libsdl', 'freeglut', 'dbus-glib', 'fribidi']) - inherits = ['cmake', 'python-dir', 'gettext', 'pkgconfig'] + checkvars['LICENSE'] = set(['LGPLv2.1', 'MPL-1.1']) + checkvars['SRC_URI'] = 'http://taglib.github.io/releases/taglib-${PV}.tar.gz' + checkvars['SRC_URI[md5sum]'] = 'cee7be0ccfc892fa433d6c837df9522a' + checkvars['SRC_URI[sha256sum]'] = 'b6d1a5a610aae6ff39d93de5efd0fdc787aa9e9dc1e7026fa4c961b26563526b' + checkvars['DEPENDS'] = set(['boost', 'zlib']) + inherits = ['cmake'] self._test_recipe_contents(recipefile, checkvars, inherits) def test_recipetool_create_github(self): @@ -688,7 +685,9 @@ def test_recipetool_appendsrcfile_replace_file_srcdir(self): self._test_appendsrcfile(testrecipe, filepath, srcdir=subdir) bitbake('%s:do_unpack' % testrecipe) - self.assertEqual(open(self.testfile, 'r').read(), open(os.path.join(srcdir, filepath), 'r').read()) + with open(self.testfile, 'r') as testfile: + with open(os.path.join(srcdir, filepath), 'r') as makefilein: + self.assertEqual(testfile.read(), makefilein.read()) def test_recipetool_appendsrcfiles_basic(self, destdir=None): newfiles = [self.testfile] diff --git a/Contrib-Inspur/openbmc/poky/meta/lib/oeqa/selftest/cases/reproducible.py b/Contrib-Inspur/openbmc/poky/meta/lib/oeqa/selftest/cases/reproducible.py index 6dc83d28..a9110565 100644 --- a/Contrib-Inspur/openbmc/poky/meta/lib/oeqa/selftest/cases/reproducible.py +++ b/Contrib-Inspur/openbmc/poky/meta/lib/oeqa/selftest/cases/reproducible.py @@ -5,10 +5,16 @@ from oeqa.selftest.case import OESelftestTestCase from oeqa.utils.commands import runCmd, bitbake, get_bb_var, get_bb_vars +import bb.utils import functools import multiprocessing import textwrap +import json import unittest +import tempfile +import shutil +import stat +import os MISSING = 'MISSING' DIFFERENT = 'DIFFERENT' @@ -71,8 +77,9 @@ def compare_file(reference, test, diffutils_sysroot): return result class ReproducibleTests(OESelftestTestCase): - package_classes = ['deb'] + package_classes = ['deb', 'ipk'] images = ['core-image-minimal'] + save_results = False def setUpLocal(self): super().setUpLocal() @@ -81,14 +88,12 @@ def setUpLocal(self): for v in needed_vars: setattr(self, v.lower(), bb_vars[v]) - if not hasattr(self.tc, "extraresults"): - self.tc.extraresults = {} - self.extras = self.tc.extraresults - - self.extras.setdefault('reproducible.rawlogs', {})['log'] = '' + self.extrasresults = {} + self.extrasresults.setdefault('reproducible.rawlogs', {})['log'] = '' + self.extrasresults.setdefault('reproducible', {}).setdefault('files', {}) def append_to_log(self, msg): - self.extras['reproducible.rawlogs']['log'] += msg + self.extrasresults['reproducible.rawlogs']['log'] += msg def compare_packages(self, reference_dir, test_dir, diffutils_sysroot): result = PackageCompareResults() @@ -114,47 +119,84 @@ def compare_packages(self, reference_dir, test_dir, diffutils_sysroot): result.sort() return result - @unittest.skip("Reproducible builds do not yet pass") + def write_package_list(self, package_class, name, packages): + self.extrasresults['reproducible']['files'].setdefault(package_class, {})[name] = [ + {'reference': p.reference, 'test': p.test} for p in packages] + + def copy_file(self, source, dest): + bb.utils.mkdirhier(os.path.dirname(dest)) + shutil.copyfile(source, dest) + def test_reproducible_builds(self): capture_vars = ['DEPLOY_DIR_' + c.upper() for c in self.package_classes] + if self.save_results: + save_dir = tempfile.mkdtemp(prefix='oe-reproducible-') + os.chmod(save_dir, stat.S_IRWXU | stat.S_IRGRP | stat.S_IXGRP | stat.S_IROTH | stat.S_IXOTH) + self.logger.info('Non-reproducible packages will be copied to %s', save_dir) + + # Build native utilities + self.write_config('') + bitbake("diffutils-native -c addto_recipe_sysroot") + diffutils_sysroot = get_bb_var("RECIPE_SYSROOT_NATIVE", "diffutils-native") + + # Reproducible builds should not pull from sstate or mirrors, but + # sharing DL_DIR is fine common_config = textwrap.dedent('''\ INHERIT += "reproducible_build" PACKAGE_CLASSES = "%s" + SSTATE_DIR = "${TMPDIR}/sstate" ''') % (' '.join('package_%s' % c for c in self.package_classes)) - # Do an initial build. It's acceptable for this build to use sstate - self.write_config(common_config) - vars_reference = get_bb_vars(capture_vars) + # Perform a build. + reproducibleA_tmp = os.path.join(self.topdir, 'reproducibleA', 'tmp') + if os.path.exists(reproducibleA_tmp): + bb.utils.remove(reproducibleA_tmp, recurse=True) + + self.write_config((textwrap.dedent('''\ + TMPDIR = "%s" + ''') % reproducibleA_tmp) + common_config) + vars_A = get_bb_vars(capture_vars) bitbake(' '.join(self.images)) - # Build native utilities - bitbake("diffutils-native -c addto_recipe_sysroot") - diffutils_sysroot = get_bb_var("RECIPE_SYSROOT_NATIVE", "diffutils-native") + # Perform another build. + reproducibleB_tmp = os.path.join(self.topdir, 'reproducibleB', 'tmp') + if os.path.exists(reproducibleB_tmp): + bb.utils.remove(reproducibleB_tmp, recurse=True) - # Perform another build. This build should *not* share sstate or pull - # from any mirrors, but sharing a DL_DIR is fine - self.write_config(textwrap.dedent('''\ - TMPDIR = "${TOPDIR}/reproducible/tmp" - SSTATE_DIR = "${TMPDIR}/sstate" + self.write_config((textwrap.dedent('''\ SSTATE_MIRROR = "" - ''') + common_config) - vars_test = get_bb_vars(capture_vars) + TMPDIR = "%s" + ''') % reproducibleB_tmp) + common_config) + vars_B = get_bb_vars(capture_vars) bitbake(' '.join(self.images)) + # NOTE: The temp directories from the reproducible build are purposely + # kept after the build so it can be diffed for debugging. + for c in self.package_classes: - package_class = 'package_' + c + with self.subTest(package_class=c): + package_class = 'package_' + c + + deploy_A = vars_A['DEPLOY_DIR_' + c.upper()] + deploy_B = vars_B['DEPLOY_DIR_' + c.upper()] + + result = self.compare_packages(deploy_A, deploy_B, diffutils_sysroot) - deploy_reference = vars_reference['DEPLOY_DIR_' + c.upper()] - deploy_test = vars_test['DEPLOY_DIR_' + c.upper()] + self.logger.info('Reproducibility summary for %s: %s' % (c, result)) - result = self.compare_packages(deploy_reference, deploy_test, diffutils_sysroot) + self.append_to_log('\n'.join("%s: %s" % (r.status, r.test) for r in result.total)) - self.logger.info('Reproducibility summary for %s: %s' % (c, result)) + self.write_package_list(package_class, 'missing', result.missing) + self.write_package_list(package_class, 'different', result.different) + self.write_package_list(package_class, 'same', result.same) - self.append_to_log('\n'.join("%s: %s" % (r.status, r.test) for r in result.total)) + if self.save_results: + for d in result.different: + self.copy_file(d.reference, '/'.join([save_dir, d.reference])) + self.copy_file(d.test, '/'.join([save_dir, d.test])) - if result.missing or result.different: - self.fail("The following %s packages are missing or different: %s" % - (c, ' '.join(r.test for r in (result.missing + result.different)))) + if result.missing or result.different: + self.fail("The following %s packages are missing or different: %s" % + (c, ' '.join(r.test for r in (result.missing + result.different)))) diff --git a/Contrib-Inspur/openbmc/poky/meta/lib/oeqa/selftest/cases/runqemu.py b/Contrib-Inspur/openbmc/poky/meta/lib/oeqa/selftest/cases/runqemu.py index b88ae306..7e676bcb 100644 --- a/Contrib-Inspur/openbmc/poky/meta/lib/oeqa/selftest/cases/runqemu.py +++ b/Contrib-Inspur/openbmc/poky/meta/lib/oeqa/selftest/cases/runqemu.py @@ -8,6 +8,7 @@ import tempfile import time import oe.types +from oeqa.core.decorator import OETestTag from oeqa.selftest.case import OESelftestTestCase from oeqa.utils.commands import bitbake, runqemu, get_bb_var, runCmd @@ -147,6 +148,7 @@ def test_boot_rootfs(self): # dedicated for MACHINE=qemux86-64 where it test that qemux86-64 will # bootup various filesystem types, including live image(iso and hddimg) # where live image was not supported on all qemu architecture. +@OETestTag("machine") class QemuTest(OESelftestTestCase): @classmethod diff --git a/Contrib-Inspur/openbmc/poky/meta/lib/oeqa/selftest/cases/runtime_test.py b/Contrib-Inspur/openbmc/poky/meta/lib/oeqa/selftest/cases/runtime_test.py index d817b755..4b56e5be 100644 --- a/Contrib-Inspur/openbmc/poky/meta/lib/oeqa/selftest/cases/runtime_test.py +++ b/Contrib-Inspur/openbmc/poky/meta/lib/oeqa/selftest/cases/runtime_test.py @@ -153,6 +153,7 @@ def test_testimage_dnf(self): # Enable package feed signing self.gpg_home = tempfile.mkdtemp(prefix="oeqa-feed-sign-") + self.track_for_cleanup(self.gpg_home) signing_key_dir = os.path.join(self.testlayer_path, 'files', 'signing') runCmd('gpg --batch --homedir %s --import %s' % (self.gpg_home, os.path.join(signing_key_dir, 'key.secret')), native_sysroot=get_bb_var("RECIPE_SYSROOT_NATIVE", "gnupg-native")) features += 'INHERIT += "sign_package_feed"\n' @@ -165,9 +166,6 @@ def test_testimage_dnf(self): bitbake('core-image-full-cmdline socat') bitbake('-c testimage core-image-full-cmdline') - # remove the oeqa-feed-sign temporal directory - shutil.rmtree(self.gpg_home, ignore_errors=True) - def test_testimage_virgl_gtk(self): """ Summary: Check host-assisted accelerate OpenGL functionality in qemu with gtk frontend @@ -181,6 +179,8 @@ def test_testimage_virgl_gtk(self): distro = oe.lsb.distro_identifier() if distro and distro == 'debian-8': self.skipTest('virgl isn\'t working with Debian 8') + if distro and distro == 'centos-7': + self.skipTest('virgl isn\'t working with Centos 7') qemu_packageconfig = get_bb_var('PACKAGECONFIG', 'qemu-system-native') features = 'INHERIT += "testimage"\n' @@ -193,7 +193,7 @@ def test_testimage_virgl_gtk(self): features += 'TEST_SUITES = "ping ssh virgl"\n' features += 'IMAGE_FEATURES_append = " ssh-server-dropbear"\n' features += 'IMAGE_INSTALL_append = " kmscube"\n' - features += 'TEST_RUNQEMUPARAMS = "gtk-gl"\n' + features += 'TEST_RUNQEMUPARAMS = "gtk gl"\n' self.write_config(features) bitbake('core-image-minimal') bitbake('-c testimage core-image-minimal') @@ -322,3 +322,80 @@ def test_failing_postinst(self): self.assertFalse(os.path.isfile(os.path.join(hosttestdir, "rootfs-after-failure")), "rootfs-after-failure file was created") +class SystemTap(OESelftestTestCase): + """ + Summary: The purpose of this test case is to verify native crosstap + works while talking to a target. + Expected: The script should successfully connect to the qemu machine + and run some systemtap examples on a qemu machine. + """ + + @classmethod + def setUpClass(cls): + super(SystemTap, cls).setUpClass() + cls.image = "core-image-minimal" + + def default_config(self): + return """ +# These aren't the actual IP addresses but testexport class needs something defined +TEST_SERVER_IP = "192.168.7.1" +TEST_TARGET_IP = "192.168.7.2" + +EXTRA_IMAGE_FEATURES += "tools-profile dbg-pkgs" +IMAGE_FEATURES_append = " ssh-server-dropbear" + +# enables kernel debug symbols +KERNEL_EXTRA_FEATURES_append = " features/debug/debug-kernel.scc" +KERNEL_EXTRA_FEATURES_append = " features/systemtap/systemtap.scc" + +# add systemtap run-time into target image if it is not there yet +IMAGE_INSTALL_append = " systemtap" +""" + + def test_crosstap_helloworld(self): + self.write_config(self.default_config()) + bitbake('systemtap-native') + systemtap_examples = os.path.join(get_bb_var("WORKDIR","systemtap-native"), "usr/share/systemtap/examples") + bitbake(self.image) + + with runqemu(self.image) as qemu: + cmd = "crosstap -r root@192.168.7.2 -s %s/general/helloworld.stp " % systemtap_examples + result = runCmd(cmd) + self.assertEqual(0, result.status, 'crosstap helloworld returned a non 0 status:%s' % result.output) + + def test_crosstap_pstree(self): + self.write_config(self.default_config()) + + bitbake('systemtap-native') + systemtap_examples = os.path.join(get_bb_var("WORKDIR","systemtap-native"), "usr/share/systemtap/examples") + bitbake(self.image) + + with runqemu(self.image) as qemu: + cmd = "crosstap -r root@192.168.7.2 -s %s/process/pstree.stp" % systemtap_examples + result = runCmd(cmd) + self.assertEqual(0, result.status, 'crosstap pstree returned a non 0 status:%s' % result.output) + + def test_crosstap_syscalls_by_proc(self): + self.write_config(self.default_config()) + + bitbake('systemtap-native') + systemtap_examples = os.path.join(get_bb_var("WORKDIR","systemtap-native"), "usr/share/systemtap/examples") + bitbake(self.image) + + with runqemu(self.image) as qemu: + cmd = "crosstap -r root@192.168.7.2 -s %s/process/ syscalls_by_proc.stp" % systemtap_examples + result = runCmd(cmd) + self.assertEqual(0, result.status, 'crosstap syscalls_by_proc returned a non 0 status:%s' % result.output) + + def test_crosstap_syscalls_by_pid(self): + self.write_config(self.default_config()) + + bitbake('systemtap-native') + systemtap_examples = os.path.join(get_bb_var("WORKDIR","systemtap-native"), "usr/share/systemtap/examples") + bitbake(self.image) + + with runqemu(self.image) as qemu: + cmd = "crosstap -r root@192.168.7.2 -s %s/process/ syscalls_by_pid.stp" % systemtap_examples + result = runCmd(cmd) + self.assertEqual(0, result.status, 'crosstap syscalls_by_pid returned a non 0 status:%s' % result.output) + diff --git a/Contrib-Inspur/openbmc/poky/meta/lib/oeqa/selftest/cases/signing.py b/Contrib-Inspur/openbmc/poky/meta/lib/oeqa/selftest/cases/signing.py index b390f37d..93b15ae6 100644 --- a/Contrib-Inspur/openbmc/poky/meta/lib/oeqa/selftest/cases/signing.py +++ b/Contrib-Inspur/openbmc/poky/meta/lib/oeqa/selftest/cases/signing.py @@ -3,7 +3,7 @@ # from oeqa.selftest.case import OESelftestTestCase -from oeqa.utils.commands import runCmd, bitbake, get_bb_var, get_bb_vars +from oeqa.utils.commands import runCmd, bitbake, get_bb_var, get_bb_vars, create_temp_layer import os import oe import glob @@ -180,11 +180,11 @@ def test_locked_signatures(self): AutomatedBy: Daniel Istrate """ + import uuid + test_recipe = 'ed' locked_sigs_file = 'locked-sigs.inc' - self.add_command_to_tearDown('rm -f %s' % os.path.join(self.builddir, locked_sigs_file)) - bitbake(test_recipe) # Generate locked sigs include file bitbake('-S none %s' % test_recipe) @@ -196,21 +196,29 @@ def test_locked_signatures(self): # Build a locked recipe bitbake(test_recipe) + templayerdir = tempfile.mkdtemp(prefix='signingqa') + create_temp_layer(templayerdir, 'selftestsigning') + runCmd('bitbake-layers add-layer %s' % templayerdir) + # Make a change that should cause the locked task signature to change + # Use uuid so hash equivalance server isn't triggered recipe_append_file = test_recipe + '_' + get_bb_var('PV', test_recipe) + '.bbappend' - recipe_append_path = os.path.join(self.testlayer_path, 'recipes-test', test_recipe, recipe_append_file) - feature = 'SUMMARY += "test locked signature"\n' + recipe_append_path = os.path.join(templayerdir, 'recipes-test', test_recipe, recipe_append_file) + feature = 'SUMMARY_${PN} = "test locked signature%s"\n' % uuid.uuid4() - os.mkdir(os.path.join(self.testlayer_path, 'recipes-test', test_recipe)) + os.mkdir(os.path.join(templayerdir, 'recipes-test')) + os.mkdir(os.path.join(templayerdir, 'recipes-test', test_recipe)) write_file(recipe_append_path, feature) - self.add_command_to_tearDown('rm -rf %s' % os.path.join(self.testlayer_path, 'recipes-test', test_recipe)) + self.add_command_to_tearDown('bitbake-layers remove-layer %s' % templayerdir) + self.add_command_to_tearDown('rm -f %s' % os.path.join(self.builddir, locked_sigs_file)) + self.add_command_to_tearDown('rm -rf %s' % templayerdir) # Build the recipe again ret = bitbake(test_recipe) # Verify you get the warning and that the real task *isn't* run (i.e. the locked signature has worked) - patt = r'WARNING: The %s:do_package sig is computed to be \S+, but the sig is locked to \S+ in SIGGEN_LOCKEDSIGS\S+' % test_recipe + patt = r'The %s:do_package sig is computed to be \S+, but the sig is locked to \S+ in SIGGEN_LOCKEDSIGS\S+' % test_recipe found_warn = re.search(patt, ret.output) self.assertIsNotNone(found_warn, "Didn't find the expected warning message. Output: %s" % ret.output) diff --git a/Contrib-Inspur/openbmc/poky/meta/lib/oeqa/selftest/cases/sstatetests.py b/Contrib-Inspur/openbmc/poky/meta/lib/oeqa/selftest/cases/sstatetests.py index 2867cb78..6757a0ec 100644 --- a/Contrib-Inspur/openbmc/poky/meta/lib/oeqa/selftest/cases/sstatetests.py +++ b/Contrib-Inspur/openbmc/poky/meta/lib/oeqa/selftest/cases/sstatetests.py @@ -255,6 +255,7 @@ def test_sstate_32_64_same_hash(self): BUILD_OS = "linux" SDKMACHINE = "x86_64" PACKAGE_CLASSES = "package_rpm package_ipk package_deb" +BB_SIGNATURE_HANDLER = "OEBasicHash" """) self.track_for_cleanup(self.topdir + "/tmp-sstatesamehash") bitbake("core-image-sato -S none") @@ -266,6 +267,7 @@ def test_sstate_32_64_same_hash(self): BUILD_OS = "linux" SDKMACHINE = "i686" PACKAGE_CLASSES = "package_rpm package_ipk package_deb" +BB_SIGNATURE_HANDLER = "OEBasicHash" """) self.track_for_cleanup(self.topdir + "/tmp-sstatesamehash2") bitbake("core-image-sato -S none") @@ -298,6 +300,7 @@ def test_sstate_nativelsbstring_same_hash(self): TMPDIR = \"${TOPDIR}/tmp-sstatesamehash\" TCLIBCAPPEND = \"\" NATIVELSBSTRING = \"DistroA\" +BB_SIGNATURE_HANDLER = "OEBasicHash" """) self.track_for_cleanup(self.topdir + "/tmp-sstatesamehash") bitbake("core-image-sato -S none") @@ -305,6 +308,7 @@ def test_sstate_nativelsbstring_same_hash(self): TMPDIR = \"${TOPDIR}/tmp-sstatesamehash2\" TCLIBCAPPEND = \"\" NATIVELSBSTRING = \"DistroB\" +BB_SIGNATURE_HANDLER = "OEBasicHash" """) self.track_for_cleanup(self.topdir + "/tmp-sstatesamehash2") bitbake("core-image-sato -S none") @@ -332,11 +336,13 @@ def test_sstate_allarch_samesigs(self): TMPDIR = \"${TOPDIR}/tmp-sstatesamehash\" TCLIBCAPPEND = \"\" MACHINE = \"qemux86-64\" +BB_SIGNATURE_HANDLER = "OEBasicHash" """ configB = """ TMPDIR = \"${TOPDIR}/tmp-sstatesamehash2\" TCLIBCAPPEND = \"\" MACHINE = \"qemuarm\" +BB_SIGNATURE_HANDLER = "OEBasicHash" """ self.sstate_allarch_samesigs(configA, configB) @@ -352,6 +358,7 @@ def test_sstate_nativesdk_samesigs_multilib(self): require conf/multilib.conf MULTILIBS = \"multilib:lib32\" DEFAULTTUNE_virtclass-multilib-lib32 = \"x86\" +BB_SIGNATURE_HANDLER = "OEBasicHash" """ configB = """ TMPDIR = \"${TOPDIR}/tmp-sstatesamehash2\" @@ -359,6 +366,7 @@ def test_sstate_nativesdk_samesigs_multilib(self): MACHINE = \"qemuarm\" require conf/multilib.conf MULTILIBS = \"\" +BB_SIGNATURE_HANDLER = "OEBasicHash" """ self.sstate_allarch_samesigs(configA, configB) @@ -404,6 +412,7 @@ def test_sstate_sametune_samesigs(self): require conf/multilib.conf MULTILIBS = "multilib:lib32" DEFAULTTUNE_virtclass-multilib-lib32 = "x86" +BB_SIGNATURE_HANDLER = "OEBasicHash" """) self.track_for_cleanup(self.topdir + "/tmp-sstatesamehash") bitbake("world meta-toolchain -S none") @@ -414,6 +423,7 @@ def test_sstate_sametune_samesigs(self): require conf/multilib.conf MULTILIBS = "multilib:lib32" DEFAULTTUNE_virtclass-multilib-lib32 = "x86" +BB_SIGNATURE_HANDLER = "OEBasicHash" """) self.track_for_cleanup(self.topdir + "/tmp-sstatesamehash2") bitbake("world meta-toolchain -S none") @@ -452,6 +462,7 @@ def test_sstate_noop_samesigs(self): DATE = "20161111" INHERIT_remove = "buildstats-summary buildhistory uninative" http_proxy = "" +BB_SIGNATURE_HANDLER = "OEBasicHash" """) self.track_for_cleanup(self.topdir + "/tmp-sstatesamehash") self.track_for_cleanup(self.topdir + "/download1") @@ -468,6 +479,7 @@ def test_sstate_noop_samesigs(self): INHERIT_remove = "uninative" INHERIT += "buildstats-summary buildhistory" http_proxy = "http://example.com/" +BB_SIGNATURE_HANDLER = "OEBasicHash" """) self.track_for_cleanup(self.topdir + "/tmp-sstatesamehash2") self.track_for_cleanup(self.topdir + "/download2") diff --git a/Contrib-Inspur/openbmc/poky/meta/lib/oeqa/selftest/cases/wic.py b/Contrib-Inspur/openbmc/poky/meta/lib/oeqa/selftest/cases/wic.py index d16eae58..0c03b4b0 100644 --- a/Contrib-Inspur/openbmc/poky/meta/lib/oeqa/selftest/cases/wic.py +++ b/Contrib-Inspur/openbmc/poky/meta/lib/oeqa/selftest/cases/wic.py @@ -1,4 +1,3 @@ -#!/usr/bin/env python # # Copyright (c) 2015, Intel Corporation. # @@ -500,7 +499,8 @@ def test_image_env(self): wicvars = set(bb_vars['WICVARS'].split()) # filter out optional variables wicvars = wicvars.difference(('DEPLOY_DIR_IMAGE', 'IMAGE_BOOT_FILES', - 'INITRD', 'INITRD_LIVE', 'ISODIR')) + 'INITRD', 'INITRD_LIVE', 'ISODIR','INITRAMFS_IMAGE', + 'INITRAMFS_IMAGE_BUNDLE', 'INITRAMFS_LINK_NAME')) with open(path) as envfile: content = dict(line.split("=", 1) for line in envfile) # test if variables used by wic present in the .env file @@ -632,8 +632,10 @@ def test_fixed_size(self): # 1:0.00MiB:200MiB:200MiB:ext4::;\n partlns = res.output.splitlines()[2:] - self.assertEqual(1, len(partlns)) - self.assertEqual("1:0.00MiB:200MiB:200MiB:ext4::;", partlns[0]) + self.assertEqual(1, len(partlns), + msg="Partition list '%s'" % res.output) + self.assertEqual("1:0.00MiB:200MiB:200MiB:ext4::;", partlns[0], + msg="Partition list '%s'" % res.output) def test_fixed_size_error(self): """ @@ -681,6 +683,63 @@ def test_rawcopy_plugin(self): out = glob(self.resultdir + "%s-*direct" % wksname) self.assertEqual(1, len(out)) + @only_for_arch(['i586', 'i686', 'x86_64']) + def test_biosplusefi_plugin_qemu(self): + """Test biosplusefi plugin in qemu""" + config = 'IMAGE_FSTYPES = "wic"\nWKS_FILE = "test_biosplusefi_plugin.wks"\nMACHINE_FEATURES_append = " efi"\n' + self.append_config(config) + self.assertEqual(0, bitbake('core-image-minimal').status) + self.remove_config(config) + + with runqemu('core-image-minimal', ssh=False, image_fstype='wic') as qemu: + # Check that we have ONLY two /dev/sda* partitions (/boot and /) + cmd = "grep sda. /proc/partitions | wc -l" + status, output = qemu.run_serial(cmd) + self.assertEqual(1, status, 'Failed to run command "%s": %s' % (cmd, output)) + self.assertEqual(output, '2') + # Check that /dev/sda1 is /boot and that either /dev/root OR /dev/sda2 is / + cmd = "mount | grep '^/dev/' | cut -f1,3 -d ' ' | egrep -c -e '/dev/sda1 /boot' -e '/dev/root /|/dev/sda2 /'" + status, output = qemu.run_serial(cmd) + self.assertEqual(1, status, 'Failed to run command "%s": %s' % (cmd, output)) + self.assertEqual(output, '2') + # Check that /boot has EFI bootx64.efi (required for EFI) + cmd = "ls /boot/EFI/BOOT/bootx64.efi | wc -l" + status, output = qemu.run_serial(cmd) + self.assertEqual(1, status, 'Failed to run command "%s": %s' % (cmd, output)) + self.assertEqual(output, '1') + # Check that "BOOTABLE" flag is set on boot partition (required for PC-Bios) + # Trailing "cat" seems to be required; otherwise run_serial() sends back echo of the input command + cmd = "fdisk -l /dev/sda | grep /dev/sda1 | awk {print'$2'} | cat" + status, output = qemu.run_serial(cmd) + self.assertEqual(1, status, 'Failed to run command "%s": %s' % (cmd, output)) + self.assertEqual(output, '*') + + @only_for_arch(['i586', 'i686', 'x86_64']) + def test_biosplusefi_plugin(self): + """Test biosplusefi plugin""" + # Wic generation below may fail depending on the order of the unittests + # This is because bootimg-pcbios (that bootimg-biosplusefi uses) generate its MBR inside STAGING_DATADIR directory + # which may or may not exists depending on what was built already + # If an image hasn't been built yet, directory ${STAGING_DATADIR}/syslinux won't exists and _get_bootimg_dir() + # will raise with "Couldn't find correct bootimg_dir" + # The easiest way to work-around this issue is to make sure we already built an image here, hence the bitbake call + config = 'IMAGE_FSTYPES = "wic"\nWKS_FILE = "test_biosplusefi_plugin.wks"\nMACHINE_FEATURES_append = " efi"\n' + self.append_config(config) + self.assertEqual(0, bitbake('core-image-minimal').status) + self.remove_config(config) + + img = 'core-image-minimal' + with NamedTemporaryFile("w", suffix=".wks") as wks: + wks.writelines(['part /boot --active --source bootimg-biosplusefi --sourceparams="loader=grub-efi"\n', + 'part / --source rootfs --fstype=ext4 --align 1024 --use-uuid\n'\ + 'bootloader --timeout=0 --append="console=ttyS0,115200n8"\n']) + wks.flush() + cmd = "wic create %s -e %s -o %s" % (wks.name, img, self.resultdir) + runCmd(cmd) + wksname = os.path.splitext(os.path.basename(wks.name))[0] + out = glob(self.resultdir + "%s-*.direct" % wksname) + self.assertEqual(1, len(out)) + def test_fs_types(self): """Test filesystem types for empty and not empty partitions""" img = 'core-image-minimal' @@ -966,3 +1025,10 @@ def test_wic_rm_ext(self): # check if it's removed result = runCmd("wic ls %s:2/etc/ -n %s" % (images[0], sysroot)) self.assertTrue('fstab' not in [line.split()[-1] for line in result.output.split('\n') if line]) + + # remove non-empty directory + runCmd("wic rm -r %s:2/etc/ -n %s" % (images[0], sysroot)) + + # check if it's removed + result = runCmd("wic ls %s:2/ -n %s" % (images[0], sysroot)) + self.assertTrue('etc' not in [line.split()[-1] for line in result.output.split('\n') if line]) diff --git a/Contrib-Inspur/openbmc/poky/meta/lib/oeqa/selftest/context.py b/Contrib-Inspur/openbmc/poky/meta/lib/oeqa/selftest/context.py index d279994d..c4eb5d61 100644 --- a/Contrib-Inspur/openbmc/poky/meta/lib/oeqa/selftest/context.py +++ b/Contrib-Inspur/openbmc/poky/meta/lib/oeqa/selftest/context.py @@ -77,7 +77,14 @@ def register_commands(self, logger, parser): parser.add_argument('--machine', required=False, choices=['random', 'all'], help='Run tests on different machines (random/all).') - + + parser.add_argument('-t', '--select-tag', dest="select_tags", + action='append', default=None, + help='Filter all (unhidden) tests to any that match any of the specified tag(s).') + parser.add_argument('-T', '--exclude-tag', dest="exclude_tags", + action='append', default=None, + help='Exclude all (unhidden) tests that match any of the specified tag(s). (exclude applies before select)') + parser.set_defaults(func=self.run) def _get_available_machines(self): @@ -149,6 +156,18 @@ def _process_args(self, logger, args): copyfile(self.tc_kwargs['init']['config_paths']['bblayers'], self.tc_kwargs['init']['config_paths']['bblayers_backup']) + def tag_filter(tags): + if args.exclude_tags: + if any(tag in args.exclude_tags for tag in tags): + return True + if args.select_tags: + if not tags or not any(tag in args.select_tags for tag in tags): + return True + return False + + if args.select_tags or args.exclude_tags: + self.tc_kwargs['load']['tags_filter'] = tag_filter + self.tc_kwargs['run']['skips'] = args.skips self.tc_kwargs['run']['processes'] = args.processes diff --git a/Contrib-Inspur/openbmc/poky/meta/lib/oeqa/targetcontrol.py b/Contrib-Inspur/openbmc/poky/meta/lib/oeqa/targetcontrol.py index 15e617c9..1445e3ec 100644 --- a/Contrib-Inspur/openbmc/poky/meta/lib/oeqa/targetcontrol.py +++ b/Contrib-Inspur/openbmc/poky/meta/lib/oeqa/targetcontrol.py @@ -175,7 +175,7 @@ def start(self, params=None, ssh=True, extra_bootparams='', runqemuparams='', la if os.path.exists(self.qemulog): with open(self.qemulog, 'r') as f: bb.error("Qemu log output from %s:\n%s" % (self.qemulog, f.read())) - raise bb.build.FuncFailed("%s - FAILED to start qemu - check the task log and the boot log" % self.pn) + raise RuntimeError("%s - FAILED to start qemu - check the task log and the boot log" % self.pn) def check(self): return self.runner.is_alive() @@ -192,7 +192,7 @@ def restart(self, params=None): self.server_ip = self.runner.server_ip self.connection = SSHControl(ip=self.ip, logfile=self.sshlog) else: - raise bb.build.FuncFailed("%s - FAILED to re-start qemu - check the task log and the boot log" % self.pn) + raise RuntimError("%s - FAILED to re-start qemu - check the task log and the boot log" % self.pn) def run_serial(self, command, timeout=60): return self.runner.run_serial(command, timeout=timeout) diff --git a/Contrib-Inspur/openbmc/poky/meta/lib/oeqa/utils/commands.py b/Contrib-Inspur/openbmc/poky/meta/lib/oeqa/utils/commands.py index 59ebfbe1..dc1e286d 100644 --- a/Contrib-Inspur/openbmc/poky/meta/lib/oeqa/utils/commands.py +++ b/Contrib-Inspur/openbmc/poky/meta/lib/oeqa/utils/commands.py @@ -172,8 +172,11 @@ def runCmd(command, ignore_status=False, timeout=None, assert_error=True, if native_sysroot: extra_paths = "%s/sbin:%s/usr/sbin:%s/usr/bin" % \ (native_sysroot, native_sysroot, native_sysroot) + extra_libpaths = "%s/lib:%s/usr/lib" % \ + (native_sysroot, native_sysroot) nenv = dict(options.get('env', os.environ)) nenv['PATH'] = extra_paths + ':' + nenv.get('PATH', '') + nenv['LD_LIBRARY_PATH'] = extra_libpaths + ':' + nenv.get('LD_LIBRARY_PATH', '') options['env'] = nenv cmd = Command(command, timeout=timeout, output_log=output_log, **options) @@ -337,8 +340,8 @@ def runqemu(pn, ssh=True, runqemuparams='', image_fstype=None, launch_cmd=None, qemu.deploy() try: qemu.start(params=qemuparams, ssh=ssh, runqemuparams=runqemuparams, launch_cmd=launch_cmd, discard_writes=discard_writes) - except bb.build.FuncFailed: - msg = 'Failed to start QEMU - see the logs in %s' % logdir + except Exception as e: + msg = str(e) + '\nFailed to start QEMU - see the logs in %s' % logdir if os.path.exists(qemu.qemurunnerlog): with open(qemu.qemurunnerlog, 'r') as f: msg = msg + "Qemurunner log output from %s:\n%s" % (qemu.qemurunnerlog, f.read()) diff --git a/Contrib-Inspur/openbmc/poky/meta/lib/oeqa/utils/logparser.py b/Contrib-Inspur/openbmc/poky/meta/lib/oeqa/utils/logparser.py index b31214b1..7313df8e 100644 --- a/Contrib-Inspur/openbmc/poky/meta/lib/oeqa/utils/logparser.py +++ b/Contrib-Inspur/openbmc/poky/meta/lib/oeqa/utils/logparser.py @@ -1,4 +1,3 @@ -#!/usr/bin/env python # # SPDX-License-Identifier: MIT # diff --git a/Contrib-Inspur/openbmc/poky/meta/lib/oeqa/utils/network.py b/Contrib-Inspur/openbmc/poky/meta/lib/oeqa/utils/network.py index 59cbbc4f..59d01723 100644 --- a/Contrib-Inspur/openbmc/poky/meta/lib/oeqa/utils/network.py +++ b/Contrib-Inspur/openbmc/poky/meta/lib/oeqa/utils/network.py @@ -4,8 +4,8 @@ import socket -def get_free_port(): - s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) +def get_free_port(udp = False): + s = socket.socket(socket.AF_INET, socket.SOCK_STREAM if not udp else socket.SOCK_DGRAM) s.bind(('', 0)) addr = s.getsockname() s.close() diff --git a/Contrib-Inspur/openbmc/poky/meta/lib/oeqa/utils/nfs.py b/Contrib-Inspur/openbmc/poky/meta/lib/oeqa/utils/nfs.py new file mode 100644 index 00000000..a37686c9 --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/lib/oeqa/utils/nfs.py @@ -0,0 +1,39 @@ +# SPDX-License-Identifier: MIT +import os +import sys +import tempfile +import contextlib +import socket +from oeqa.utils.commands import bitbake, get_bb_var, Command +from oeqa.utils.network import get_free_port + +@contextlib.contextmanager +def unfs_server(directory, logger = None): + unfs_sysroot = get_bb_var("RECIPE_SYSROOT_NATIVE", "unfs3-native") + if not os.path.exists(os.path.join(unfs_sysroot, "usr", "bin", "unfsd")): + # build native tool + bitbake("unfs3-native -c addto_recipe_sysroot") + + exports = None + cmd = None + try: + # create the exports file + with tempfile.NamedTemporaryFile(delete = False) as exports: + exports.write("{0} (rw,no_root_squash,no_all_squash,insecure)\n".format(directory).encode()) + + # find some ports for the server + nfsport, mountport = get_free_port(udp = True), get_free_port(udp = True) + + nenv = dict(os.environ) + nenv['PATH'] = "{0}/sbin:{0}/usr/sbin:{0}/usr/bin:".format(unfs_sysroot) + nenv.get('PATH', '') + cmd = Command(["unfsd", "-d", "-p", "-N", "-e", exports.name, "-n", str(nfsport), "-m", str(mountport)], + bg = True, env = nenv, output_log = logger) + cmd.run() + yield nfsport, mountport + finally: + if cmd is not None: + cmd.stop() + if exports is not None: + # clean up exports file + os.unlink(exports.name) + diff --git a/Contrib-Inspur/openbmc/poky/meta/lib/oeqa/utils/qemurunner.py b/Contrib-Inspur/openbmc/poky/meta/lib/oeqa/utils/qemurunner.py index c16227fc..fe8b77d9 100644 --- a/Contrib-Inspur/openbmc/poky/meta/lib/oeqa/utils/qemurunner.py +++ b/Contrib-Inspur/openbmc/poky/meta/lib/oeqa/utils/qemurunner.py @@ -98,7 +98,7 @@ def getOutput(self, o): def handleSIGCHLD(self, signum, frame): if self.runqemu and self.runqemu.poll(): if self.runqemu.returncode: - self.logger.debug('runqemu exited with code %d' % self.runqemu.returncode) + self.logger.warning('runqemu exited with code %d' % self.runqemu.returncode) self.logger.debug("Output from runqemu:\n%s" % self.getOutput(self.runqemu.stdout)) self.stop() self._dump_host() @@ -126,7 +126,7 @@ def start(self, qemuparams = None, get_ip = True, extra_bootparams = None, runqe env["DEPLOY_DIR_IMAGE"] = self.deploy_dir_image if not launch_cmd: - launch_cmd = 'runqemu %s %s ' % ('snapshot' if discard_writes else '', runqemuparams) + launch_cmd = 'runqemu %s' % ('snapshot' if discard_writes else '') if self.use_kvm: self.logger.debug('Using kvm for runqemu') launch_cmd += ' kvm' @@ -136,7 +136,7 @@ def start(self, qemuparams = None, get_ip = True, extra_bootparams = None, runqe launch_cmd += ' nographic' if self.use_slirp: launch_cmd += ' slirp' - launch_cmd += ' %s %s' % (self.machine, self.rootfs) + launch_cmd += ' %s %s %s' % (runqemuparams, self.machine, self.rootfs) return self.launch(launch_cmd, qemuparams=qemuparams, get_ip=get_ip, extra_bootparams=extra_bootparams, env=env) @@ -208,9 +208,9 @@ def launch(self, launch_cmd, get_ip = True, qemuparams = None, extra_bootparams if self.runqemu.poll(): if self.runqemu.returncode: # No point waiting any longer - self.logger.debug('runqemu exited with code %d' % self.runqemu.returncode) + self.logger.warning('runqemu exited with code %d' % self.runqemu.returncode) self._dump_host() - self.logger.debug("Output from runqemu:\n%s" % self.getOutput(output)) + self.logger.warning("Output from runqemu:\n%s" % self.getOutput(output)) self.stop() return False time.sleep(0.5) @@ -329,14 +329,14 @@ def launch(self, launch_cmd, get_ip = True, qemuparams = None, extra_bootparams if not reachedlogin: if time.time() >= endtime: - self.logger.debug("Target didn't reach login banner in %d seconds (%s)" % + self.logger.warning("Target didn't reach login banner in %d seconds (%s)" % (self.boottime, time.strftime("%D %H:%M:%S"))) tail = lambda l: "\n".join(l.splitlines()[-25:]) bootlog = bootlog.decode("utf-8") # in case bootlog is empty, use tail qemu log store at self.msg lines = tail(bootlog if bootlog else self.msg) - self.logger.debug("Last 25 lines of text:\n%s" % lines) - self.logger.debug("Check full boot log: %s" % self.logfile) + self.logger.warning("Last 25 lines of text:\n%s" % lines) + self.logger.warning("Check full boot log: %s" % self.logfile) self._dump_host() self.stop() return False @@ -356,11 +356,11 @@ def launch(self, launch_cmd, get_ip = True, qemuparams = None, extra_bootparams else: self.logger.debug("Couldn't configure guest networking") else: - self.logger.debug("Couldn't login into serial console" + self.logger.warning("Couldn't login into serial console" " as root using blank password") - self.logger.debug("The output:\n%s" % output) + self.logger.warning("The output:\n%s" % output) except: - self.logger.debug("Serial console failed while trying to login") + self.logger.warning("Serial console failed while trying to login") return True def stop(self): @@ -414,7 +414,7 @@ def stop_thread(self): self.thread.join() def restart(self, qemuparams = None): - self.logger.debug("Restarting qemu process") + self.logger.warning("Restarting qemu process") if self.runqemu.poll() is None: self.stop() if self.start(qemuparams): @@ -425,13 +425,20 @@ def is_alive(self): if not self.runqemu or self.runqemu.poll() is not None: return False if os.path.isfile(self.qemu_pidfile): - f = open(self.qemu_pidfile, 'r') - qemu_pid = f.read() - f.close() - qemupid = int(qemu_pid) - if os.path.exists("/proc/" + str(qemupid)): - self.qemupid = qemupid - return True + # when handling pidfile, qemu creates the file, stat it, lock it and then write to it + # so it's possible that the file has been created but the content is empty + pidfile_timeout = time.time() + 3 + while time.time() < pidfile_timeout: + with open(self.qemu_pidfile, 'r') as f: + qemu_pid = f.read().strip() + # file created but not yet written contents + if not qemu_pid: + time.sleep(0.5) + continue + else: + if os.path.exists("/proc/" + qemu_pid): + self.qemupid = int(qemu_pid) + return True return False def run_serial(self, command, raw=False, timeout=60): diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-bsp/acpid/acpid.inc b/Contrib-Inspur/openbmc/poky/meta/recipes-bsp/acpid/acpid.inc index 766ed4f8..1e43e7a9 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-bsp/acpid/acpid.inc +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-bsp/acpid/acpid.inc @@ -1,4 +1,10 @@ SUMMARY = "A daemon for delivering ACPI events" +DESCRIPTION = "ACPID is a completely flexible, totally extensible daemon for \ +delivering ACPI events. It listens on netlink interface (or on the \ +deprecated file /proc/acpi/event), and when an event occurs, executes programs \ +to handle the event. The programs it executes are configured through a set of \ +configuration files, which can be dropped into place by packages or by the \ +admin." HOMEPAGE = "http://sourceforge.net/projects/acpid2" BUGTRACKER = "http://sourceforge.net/p/acpid2/tickets/?source=navbar" SECTION = "base" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-bsp/acpid/acpid_2.0.31.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-bsp/acpid/acpid_2.0.31.bb deleted file mode 100644 index 40749213..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-bsp/acpid/acpid_2.0.31.bb +++ /dev/null @@ -1,7 +0,0 @@ -require acpid.inc - -LIC_FILES_CHKSUM = "file://COPYING;md5=8ca43cbc842c2336e835926c2166c28b \ - file://acpid.h;endline=24;md5=324a9cf225ae69ddaad1bf9d942115b5" - -SRC_URI[md5sum] = "599dd38681b5917eeeafb58176793952" -SRC_URI[sha256sum] = "fc9dc669ed85d9a1739aa76915e0667c6697c5431160f8dfb253046c6a072cc3" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-bsp/acpid/acpid_2.0.32.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-bsp/acpid/acpid_2.0.32.bb new file mode 100644 index 00000000..227e4a46 --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-bsp/acpid/acpid_2.0.32.bb @@ -0,0 +1,7 @@ +require acpid.inc + +LIC_FILES_CHKSUM = "file://COPYING;md5=8ca43cbc842c2336e835926c2166c28b \ + file://acpid.h;endline=24;md5=324a9cf225ae69ddaad1bf9d942115b5" + +SRC_URI[md5sum] = "248995264b9d1cd8bdb923d5b190fd44" +SRC_URI[sha256sum] = "f2d2d30b3edc3234bd82f6f7186699a6aa3c85c8d20bc4e30e9b3c68a1ed157e" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-bsp/efibootmgr/efibootmgr/97668ae0bce776a36ea2001dea63d376be8274ac.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-bsp/efibootmgr/efibootmgr/97668ae0bce776a36ea2001dea63d376be8274ac.patch new file mode 100644 index 00000000..9525ed8c --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-bsp/efibootmgr/efibootmgr/97668ae0bce776a36ea2001dea63d376be8274ac.patch @@ -0,0 +1,83 @@ +From 97668ae0bce776a36ea2001dea63d376be8274ac Mon Sep 17 00:00:00 2001 +From: Peter Jones +Date: Wed, 6 Mar 2019 13:08:33 -0500 +Subject: [PATCH] Make sure PKGS= is propogated into the submake for "make + deps" + +When we're doing make deps with "$(CC) -MF", gcc and clang have different +behavior, both broken in different ways, which we're hitting because of a +missing -I argument for libefivar's includes. On clang, when a header can't +be found, it emits a rule with the header as a prerequisite without a path, +such as efivar.h here: + +efibootmgr.o: efibootmgr.c fix_coverity.h efivar.h efiboot.h \ + /home/pjones/devel/github.com/efibootmgr/master/src/include/list.h \ + /home/pjones/devel/github.com/efibootmgr/master/src/include/efi.h \ + /home/pjones/devel/github.com/efibootmgr/master/src/include/unparse_path.h \ + /home/pjones/devel/github.com/efibootmgr/master/src/include/efibootmgr.h \ + error.h + +Then the build that utilizes that rule will fail to find the +prerequisite and tell you something like: + +make[1]: *** No rule to make target 'efivar.h', needed by 'efibootmgr.o'. Stop. +make[1]: Leaving directory '/home/pjones/devel/github.com/efibootmgr/master/src' + +With gcc, when a header can't be found, it emits a rule without that header +as a prerequisite, as such (again with efivar.h): + +efibootmgr.o: efibootmgr.c fix_coverity.h \ + /home/pjones/devel/github.com/efibootmgr/master/src/include/list.h \ + /home/pjones/devel/github.com/efibootmgr/master/src/include/efi.h \ + /home/pjones/devel/github.com/efibootmgr/master/src/include/unparse_path.h \ + /home/pjones/devel/github.com/efibootmgr/master/src/include/efi.h \ + /home/pjones/devel/github.com/efibootmgr/master/src/include/efibootmgr.h \ + error.h + +And then your build will fail if you haven't adjusted CFLAGS to tell it +where to find the header. + +Both of these would be better just erroring, but at least gcc's doesn't +insert a *wrong* dependency. + +This patch adds "PKGS=efivar efibootmgr popt" for all deps under src/. +Technically that's overkill, as efibootmgr itself doesn't need popt, but it +doesn't hurt anything to have the extra part there. The resulting +.efibootmgr.d file has the prerequisites expressed correctly: + +efibootmgr.o: efibootmgr.c fix_coverity.h /usr/include/efivar/efivar.h \ + /usr/include/efivar/efiboot.h \ + /home/pjones/devel/github.com/efibootmgr/master/src/include/list.h \ + /home/pjones/devel/github.com/efibootmgr/master/src/include/efi.h \ + /home/pjones/devel/github.com/efibootmgr/master/src/include/unparse_path.h \ + /home/pjones/devel/github.com/efibootmgr/master/src/include/efi.h \ + /home/pjones/devel/github.com/efibootmgr/master/src/include/efibootmgr.h \ + error.h + +This fixes the issue described in github PR #96 + +Signed-off-by: Peter Jones +Upstream-Status: Backport [https://github.com/rhboot/efibootmgr/commit/97668ae0bce776a36ea2001dea63d376be8274ac] +--- + src/Makefile | 7 ++++++- + 1 file changed, 6 insertions(+), 1 deletion(-) + +diff --git a/src/Makefile b/src/Makefile +index 258bac1..32fa188 100644 +--- a/src/Makefile ++++ b/src/Makefile +@@ -31,8 +31,13 @@ efibootdump : PKGS=efivar efiboot popt + efibootnext : $(call objects-of,$(EFIBOOTNEXT_SOURCES)) + efibootnext : PKGS=efivar efiboot popt + ++deps : PKGS=efivar efiboot popt + deps : $(ALL_SOURCES) +- $(MAKE) -f $(TOPDIR)/Make.deps deps SOURCES="$(ALL_SOURCES)" SUBDIR_CFLAGS="$(SUBDIR_CFLAGS)" ++ $(MAKE) -f $(TOPDIR)/Make.deps \ ++ SOURCES="$(ALL_SOURCES)" \ ++ SUBDIR_CFLAGS="$(SUBDIR_CFLAGS)" \ ++ PKGS="$(PKGS)" \ ++ deps + + clean : + @rm -rfv *.o *.a *.so $(TARGETS) diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-bsp/efibootmgr/efibootmgr_17.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-bsp/efibootmgr/efibootmgr_17.bb index 0e5a81e3..5d6f200a 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-bsp/efibootmgr/efibootmgr_17.bb +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-bsp/efibootmgr/efibootmgr_17.bb @@ -12,6 +12,7 @@ COMPATIBLE_HOST = "(i.86|x86_64|arm|aarch64).*-linux" SRC_URI = "git://github.com/rhinstaller/efibootmgr.git;protocol=https \ file://0001-remove-extra-decl.patch \ + file://97668ae0bce776a36ea2001dea63d376be8274ac.patch \ " SRCREV = "e067160ecef8208e1944002e5d50b275733211fb" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-bsp/efivar/efivar_37.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-bsp/efivar/efivar_37.bb index c4254c70..9b95721a 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-bsp/efivar/efivar_37.bb +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-bsp/efivar/efivar_37.bb @@ -23,7 +23,10 @@ LDFLAGS += "-fuse-ld=bfd" do_compile_prepend() { # Remove when https://github.com/rhboot/efivar/issues/130 is fixed - oe_runmake CFLAGS="${BUILD_CFLAGS}" -C src makeguids + oe_runmake \ + CFLAGS="${BUILD_CFLAGS}" \ + LDFLAGS="${BUILD_LDFLAGS}" \ + -C src makeguids } do_install() { diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-bsp/formfactor/formfactor_0.0.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-bsp/formfactor/formfactor_0.0.bb index 53cf1cf7..ea1fa4c7 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-bsp/formfactor/formfactor_0.0.bb +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-bsp/formfactor/formfactor_0.0.bb @@ -1,4 +1,7 @@ SUMMARY = "Device formfactor information" +DESCRIPTION = "A formfactor configuration file provides information about the \ +target hardware for which the image is being built and information that the \ +build system cannot obtain from other sources such as the kernel." SECTION = "base" LICENSE = "MIT" LIC_FILES_CHKSUM = "file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-bsp/gnu-efi/gnu-efi/gnu-efi-3.0.9-fix-clang-build.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-bsp/gnu-efi/gnu-efi/gnu-efi-3.0.9-fix-clang-build.patch new file mode 100644 index 00000000..c6d66009 --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-bsp/gnu-efi/gnu-efi/gnu-efi-3.0.9-fix-clang-build.patch @@ -0,0 +1,24 @@ +Fix building with CLANG-9.0.0 + +Fixes +clang-9: error: unknown argument: '-maccumulate-outgoing-args' + +Upstream-Status: Submitted [https://sourceforge.net/p/gnu-efi/patches/70/] +Signed-off-by: Khem Raj + +--- a/Make.defaults ++++ b/Make.defaults +@@ -110,10 +110,10 @@ + || ( [ $(GCCVERSION) -eq "4" ] \ + && [ $(GCCMINOR) -ge "7" ] ) ) \ + && echo 1) +- ifeq ($(GCCNEWENOUGH),1) +- CPPFLAGS += -DGNU_EFI_USE_MS_ABI -maccumulate-outgoing-args --std=c11 +- else ifeq ($(USING_CLANG),clang) ++ ifeq ($(USING_CLANG),clang) + CPPFLAGS += -DGNU_EFI_USE_MS_ABI --std=c11 ++ else ifeq ($(GCCNEWENOUGH),1) ++ CPPFLAGS += -DGNU_EFI_USE_MS_ABI -maccumulate-outgoing-args --std=c11 + endif + + CFLAGS += -mno-red-zone diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-bsp/gnu-efi/gnu-efi/parallel-make-archives.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-bsp/gnu-efi/gnu-efi/parallel-make-archives.patch index a9806cfd..8a0138bb 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-bsp/gnu-efi/gnu-efi/parallel-make-archives.patch +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-bsp/gnu-efi/gnu-efi/parallel-make-archives.patch @@ -19,25 +19,7 @@ Signed-off-by: Darren Hart Signed-off-by: California Sullivan [Rebased for 3.0.8] Signed-off-by: Yi Zhao ---- - gnuefi/Makefile | 3 ++- - lib/Makefile | 2 +- - 2 files changed, 3 insertions(+), 2 deletions(-) -diff --git a/gnuefi/Makefile b/gnuefi/Makefile -index 2a61699..89b560a 100644 ---- a/gnuefi/Makefile -+++ b/gnuefi/Makefile -@@ -54,7 +54,8 @@ TARGETS = crt0-efi-$(ARCH).o libgnuefi.a - - all: $(TARGETS) - --libgnuefi.a: $(patsubst %,libgnuefi.a(%),$(OBJS)) -+libgnuefi.a: $(OBJS) -+ $(AR) $(ARFLAGS) $@ $(OBJS) - - clean: - rm -f $(TARGETS) *~ *.o $(OBJS) diff --git a/lib/Makefile b/lib/Makefile index 0e6410d..048751a 100644 --- a/lib/Makefile diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-bsp/gnu-efi/gnu-efi_3.0.11.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-bsp/gnu-efi/gnu-efi_3.0.11.bb new file mode 100644 index 00000000..9954d7f5 --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-bsp/gnu-efi/gnu-efi_3.0.11.bb @@ -0,0 +1,71 @@ +SUMMARY = "Libraries for producing EFI binaries" +HOMEPAGE = "http://sourceforge.net/projects/gnu-efi/" +SECTION = "devel" +LICENSE = "GPLv2+ | BSD-2-Clause" +LIC_FILES_CHKSUM = "file://gnuefi/crt0-efi-arm.S;beginline=4;endline=16;md5=e582764a4776e60c95bf9ab617343d36 \ + file://gnuefi/crt0-efi-aarch64.S;beginline=4;endline=16;md5=e582764a4776e60c95bf9ab617343d36 \ + file://inc/efishellintf.h;beginline=13;endline=20;md5=202766b79d708eff3cc70fce15fb80c7 \ + file://inc/efishellparm.h;beginline=4;endline=11;md5=468b1231b05bbc84bae3a0d5774e3bb5 \ + file://lib/arm/math.c;beginline=2;endline=15;md5=8ed772501da77b2b3345aa6df8744c9e \ + file://lib/arm/initplat.c;beginline=2;endline=15;md5=8ed772501da77b2b3345aa6df8744c9e \ + file://lib/aarch64/math.c;beginline=2;endline=15;md5=8ed772501da77b2b3345aa6df8744c9e \ + file://lib/aarch64/initplat.c;beginline=2;endline=15;md5=8ed772501da77b2b3345aa6df8744c9e \ + " + +SRC_URI = "${SOURCEFORGE_MIRROR}/${BPN}/${BP}.tar.bz2 \ + file://parallel-make-archives.patch \ + file://lib-Makefile-fix-parallel-issue.patch \ + file://gnu-efi-3.0.9-fix-clang-build.patch \ + " + +SRC_URI[md5sum] = "21148bbcccec385a9bfdf5f678959577" +SRC_URI[sha256sum] = "f28da792a2532e91e18e0101468811739a22cde9eee5eacfd0efb9bf3a61d6b9" + +COMPATIBLE_HOST = "(x86_64.*|i.86.*|aarch64.*|arm.*)-linux" +COMPATIBLE_HOST_armv4 = 'null' + +do_configure_linux-gnux32_prepend() { + cp ${STAGING_INCDIR}/gnu/stubs-x32.h ${STAGING_INCDIR}/gnu/stubs-64.h + cp ${STAGING_INCDIR}/bits/long-double-32.h ${STAGING_INCDIR}/bits/long-double-64.h +} + +def gnu_efi_arch(d): + import re + tarch = d.getVar("TARGET_ARCH") + if re.match("i[3456789]86", tarch): + return "ia32" + return tarch + +EXTRA_OEMAKE = "'ARCH=${@gnu_efi_arch(d)}' 'CC=${CC}' 'AS=${AS}' 'LD=${LD}' 'AR=${AR}' \ + 'RANLIB=${RANLIB}' 'OBJCOPY=${OBJCOPY}' 'PREFIX=${prefix}' 'LIBDIR=${libdir}' \ + " + +# gnu-efi's Makefile treats prefix as toolchain prefix, so don't +# export it. +prefix[unexport] = "1" + +do_install() { + oe_runmake install INSTALLROOT="${D}" +} + +FILES_${PN} += "${libdir}/*.lds" + +# 64-bit binaries are expected for EFI when targeting X32 +INSANE_SKIP_${PN}-dev_append_linux-gnux32 = " arch" +INSANE_SKIP_${PN}-dev_append_linux-muslx32 = " arch" + +BBCLASSEXTEND = "native" + +# It doesn't support sse, its make.defaults sets: +# CFLAGS += -mno-mmx -mno-sse +# So also remove -mfpmath=sse from TUNE_CCARGS +TUNE_CCARGS_remove = "-mfpmath=sse" + +python () { + ccargs = d.getVar('TUNE_CCARGS').split() + if '-mx32' in ccargs: + # use x86_64 EFI ABI + ccargs.remove('-mx32') + ccargs.append('-m64') + d.setVar('TUNE_CCARGS', ' '.join(ccargs)) +} diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-bsp/gnu-efi/gnu-efi_3.0.9.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-bsp/gnu-efi/gnu-efi_3.0.9.bb deleted file mode 100644 index f8444354..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-bsp/gnu-efi/gnu-efi_3.0.9.bb +++ /dev/null @@ -1,70 +0,0 @@ -SUMMARY = "Libraries for producing EFI binaries" -HOMEPAGE = "http://sourceforge.net/projects/gnu-efi/" -SECTION = "devel" -LICENSE = "GPLv2+ | BSD-2-Clause" -LIC_FILES_CHKSUM = "file://gnuefi/crt0-efi-arm.S;beginline=4;endline=16;md5=e582764a4776e60c95bf9ab617343d36 \ - file://gnuefi/crt0-efi-aarch64.S;beginline=4;endline=16;md5=e582764a4776e60c95bf9ab617343d36 \ - file://inc/efishellintf.h;beginline=13;endline=20;md5=202766b79d708eff3cc70fce15fb80c7 \ - file://inc/efishellparm.h;beginline=4;endline=11;md5=468b1231b05bbc84bae3a0d5774e3bb5 \ - file://lib/arm/math.c;beginline=2;endline=15;md5=8ed772501da77b2b3345aa6df8744c9e \ - file://lib/arm/initplat.c;beginline=2;endline=15;md5=8ed772501da77b2b3345aa6df8744c9e \ - file://lib/aarch64/math.c;beginline=2;endline=15;md5=8ed772501da77b2b3345aa6df8744c9e \ - file://lib/aarch64/initplat.c;beginline=2;endline=15;md5=8ed772501da77b2b3345aa6df8744c9e \ - " - -SRC_URI = "${SOURCEFORGE_MIRROR}/${BPN}/${BP}.tar.bz2 \ - file://parallel-make-archives.patch \ - file://lib-Makefile-fix-parallel-issue.patch \ - " - -SRC_URI[md5sum] = "32af17b917545a693e549af2439c4a99" -SRC_URI[sha256sum] = "6715ea7eae1c7e4fc5041034bd3f107ec2911962ed284a081e491646b12277f0" - -COMPATIBLE_HOST = "(x86_64.*|i.86.*|aarch64.*|arm.*)-linux" -COMPATIBLE_HOST_armv4 = 'null' - -do_configure_linux-gnux32_prepend() { - cp ${STAGING_INCDIR}/gnu/stubs-x32.h ${STAGING_INCDIR}/gnu/stubs-64.h - cp ${STAGING_INCDIR}/bits/long-double-32.h ${STAGING_INCDIR}/bits/long-double-64.h -} - -def gnu_efi_arch(d): - import re - tarch = d.getVar("TARGET_ARCH") - if re.match("i[3456789]86", tarch): - return "ia32" - return tarch - -EXTRA_OEMAKE = "'ARCH=${@gnu_efi_arch(d)}' 'CC=${CC}' 'AS=${AS}' 'LD=${LD}' 'AR=${AR}' \ - 'RANLIB=${RANLIB}' 'OBJCOPY=${OBJCOPY}' 'PREFIX=${prefix}' 'LIBDIR=${libdir}' \ - " - -# gnu-efi's Makefile treats prefix as toolchain prefix, so don't -# export it. -prefix[unexport] = "1" - -do_install() { - oe_runmake install INSTALLROOT="${D}" -} - -FILES_${PN} += "${libdir}/*.lds" - -# 64-bit binaries are expected for EFI when targeting X32 -INSANE_SKIP_${PN}-dev_append_linux-gnux32 = " arch" -INSANE_SKIP_${PN}-dev_append_linux-muslx32 = " arch" - -BBCLASSEXTEND = "native" - -# It doesn't support sse, its make.defaults sets: -# CFLAGS += -mno-mmx -mno-sse -# So also remove -mfpmath=sse from TUNE_CCARGS -TUNE_CCARGS_remove = "-mfpmath=sse" - -python () { - ccargs = d.getVar('TUNE_CCARGS').split() - if '-mx32' in ccargs: - # use x86_64 EFI ABI - ccargs.remove('-mx32') - ccargs.append('-m64') - d.setVar('TUNE_CCARGS', ' '.join(ccargs)) -} diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-bsp/grub/files/0001-Disable-mfpmath-sse-as-well-when-SSE-is-disabled.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-bsp/grub/files/0001-Disable-mfpmath-sse-as-well-when-SSE-is-disabled.patch index ce3238f3..6b73878c 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-bsp/grub/files/0001-Disable-mfpmath-sse-as-well-when-SSE-is-disabled.patch +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-bsp/grub/files/0001-Disable-mfpmath-sse-as-well-when-SSE-is-disabled.patch @@ -1,4 +1,4 @@ -From fb7b827a56b1f92f882d0f5ef130acc968b23293 Mon Sep 17 00:00:00 2001 +From 96d9aa55d29b24e2490d5647a9efc66940fc400f Mon Sep 17 00:00:00 2001 From: Khem Raj Date: Wed, 13 Jan 2016 19:17:31 +0000 Subject: [PATCH] Disable -mfpmath=sse as well when SSE is disabled @@ -22,17 +22,17 @@ cc1: all warnings being treated as errors Signed-off-by: Nitin A Kamble Signed-off-by: Khem Raj ---- -Upstream-Status: Pending +Upstream-Status: Pending +--- configure.ac | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/configure.ac b/configure.ac -index 26d2f33..9ce56de 100644 +index 7656f24..0868ea9 100644 --- a/configure.ac +++ b/configure.ac -@@ -783,7 +783,7 @@ fi +@@ -824,7 +824,7 @@ fi if ( test "x$target_cpu" = xi386 || test "x$target_cpu" = xx86_64 ) && test "x$platform" != xemu; then # Some toolchains enable these features by default, but they need # registers that aren't set up properly in GRUB. @@ -41,6 +41,3 @@ index 26d2f33..9ce56de 100644 fi # GRUB doesn't use float or doubles at all. Yet some toolchains may decide --- -2.7.0 - diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-bsp/grub/files/0001-Unset-need_charset_alias-when-building-for-musl.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-bsp/grub/files/0001-Unset-need_charset_alias-when-building-for-musl.patch deleted file mode 100644 index 67dc1154..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-bsp/grub/files/0001-Unset-need_charset_alias-when-building-for-musl.patch +++ /dev/null @@ -1,30 +0,0 @@ -From b9565dc2fe0c4f7daaec91b7e83bc7313dee2f4a Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Mon, 13 Apr 2015 17:02:13 -0700 -Subject: [PATCH] Unset need_charset_alias when building for musl - -localcharset uses ac_cv_gnu_library_2_1 from glibc21.m4 -which actually shoudl be fixed in gnulib and then all downstream -projects will get it eventually. For now we apply the fix to -coreutils - -Upstream-Status: Pending - -Signed-off-by: Khem Raj ---- - lib/gnulib.mk | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -Index: grub-2.00/grub-core/gnulib/Makefile.am -=================================================================== ---- grub-2.00.orig/grub-core/gnulib/Makefile.am -+++ grub-2.00/grub-core/gnulib/Makefile.am -@@ -410,7 +410,7 @@ install-exec-localcharset: all-local - case '$(host_os)' in \ - darwin[56]*) \ - need_charset_alias=true ;; \ -- darwin* | cygwin* | mingw* | pw32* | cegcc*) \ -+ darwin* | cygwin* | mingw* | pw32* | cegcc* | linux-musl*) \ - need_charset_alias=false ;; \ - *) \ - need_charset_alias=true ;; \ diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-bsp/grub/files/0001-grub-setup-Debug-message-cleanup.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-bsp/grub/files/0001-grub-setup-Debug-message-cleanup.patch deleted file mode 100644 index e01fcdff..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-bsp/grub/files/0001-grub-setup-Debug-message-cleanup.patch +++ /dev/null @@ -1,34 +0,0 @@ -From 4e9d9358e0cda6d01020005eb6343e3b69f7201a Mon Sep 17 00:00:00 2001 -From: Cao jin -Date: Tue, 3 Jul 2018 18:51:13 +0800 -Subject: [PATCH] grub-setup: Debug message cleanup - -Variable "root" is initialized after root device probing and is null in -current place, so, drop it. - -Signed-off-by: Cao jin -Reviewed-by: Daniel Kiper ---- -Upstream-Status: Backport [http://git.savannah.gnu.org/cgit/grub.git/commit/?id=4e9d9358e0cda6d01020005eb6343e3b69f7201a] - - util/setup.c | 3 +-- - 1 file changed, 1 insertion(+), 2 deletions(-) - -diff --git a/util/setup.c b/util/setup.c -index 80363075d..9c1e1b7da 100644 ---- a/util/setup.c -+++ b/util/setup.c -@@ -305,9 +305,8 @@ SETUP (const char *dir, - bl.first_block = (struct grub_boot_blocklist *) (core_img - + GRUB_DISK_SECTOR_SIZE - - sizeof (*bl.block)); -- grub_util_info ("root is `%s', dest is `%s'", root, dest); - -- grub_util_info ("Opening dest"); -+ grub_util_info ("Opening dest `%s'", dest); - dest_dev = grub_device_open (dest); - if (! dest_dev) - grub_util_error ("%s", grub_errmsg); --- -2.17.2 (Apple Git-113) - diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-bsp/grub/files/0001-grub.d-10_linux.in-add-oe-s-kernel-name.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-bsp/grub/files/0001-grub.d-10_linux.in-add-oe-s-kernel-name.patch index d5bfaa17..69b04aa5 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-bsp/grub/files/0001-grub.d-10_linux.in-add-oe-s-kernel-name.patch +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-bsp/grub/files/0001-grub.d-10_linux.in-add-oe-s-kernel-name.patch @@ -1,4 +1,4 @@ -From b512c77222a8b133d7dd71a0dcef081a921d97d4 Mon Sep 17 00:00:00 2001 +From 8f47ed4aaefba087b6ca76e59c9f832b6a0702bc Mon Sep 17 00:00:00 2001 From: Khem Raj Date: Wed, 13 Jan 2016 19:28:00 +0000 Subject: [PATCH] grub.d/10_linux.in: add oe's kernel name @@ -11,18 +11,19 @@ to util/grub.d/20_linux_xen.in to keep compatibility. Signed-off-by: Robert Yang Signed-off-by: Khem Raj ---- + Upstream-Status: Inappropriate [OE specific] +--- util/grub.d/10_linux.in | 6 +++--- util/grub.d/20_linux_xen.in | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/util/grub.d/10_linux.in b/util/grub.d/10_linux.in -index 859b608..946be5d 100644 +index 4532266..cba2617 100644 --- a/util/grub.d/10_linux.in +++ b/util/grub.d/10_linux.in -@@ -148,12 +148,12 @@ machine=`uname -m` +@@ -164,12 +164,12 @@ machine=`uname -m` case "x$machine" in xi?86 | xx86_64) list= @@ -39,10 +40,10 @@ index 859b608..946be5d 100644 done ;; esac diff --git a/util/grub.d/20_linux_xen.in b/util/grub.d/20_linux_xen.in -index f532fb9..1994244 100644 +index 96179ea..98d16ae 100644 --- a/util/grub.d/20_linux_xen.in +++ b/util/grub.d/20_linux_xen.in -@@ -138,7 +138,7 @@ EOF +@@ -154,7 +154,7 @@ EOF } linux_list= @@ -51,6 +52,3 @@ index f532fb9..1994244 100644 if grub_file_is_not_garbage "$i"; then basename=$(basename $i) version=$(echo $basename | sed -e "s,^[^0-9]*-,,g") --- -2.7.0 - diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-bsp/grub/files/0001-x86-64-Treat-R_X86_64_PLT32-as-R_X86_64_PC32.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-bsp/grub/files/0001-x86-64-Treat-R_X86_64_PLT32-as-R_X86_64_PC32.patch deleted file mode 100644 index 61d58c40..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-bsp/grub/files/0001-x86-64-Treat-R_X86_64_PLT32-as-R_X86_64_PC32.patch +++ /dev/null @@ -1,76 +0,0 @@ -Upstream-Status: Backport -Signed-off-by: Ross Burton - -From 842c390469e2c2e10b5aa36700324cd3bde25875 Mon Sep 17 00:00:00 2001 -From: "H.J. Lu" -Date: Sat, 17 Feb 2018 06:47:28 -0800 -Subject: [PATCH] x86-64: Treat R_X86_64_PLT32 as R_X86_64_PC32 - -Starting from binutils commit bd7ab16b4537788ad53521c45469a1bdae84ad4a: - -https://sourceware.org/git/?p=binutils-gdb.git;a=commit;h=bd7ab16b4537788ad53521c45469a1bdae84ad4a - -x86-64 assembler generates R_X86_64_PLT32, instead of R_X86_64_PC32, for -32-bit PC-relative branches. Grub2 should treat R_X86_64_PLT32 as -R_X86_64_PC32. - -Signed-off-by: H.J. Lu -Reviewed-by: Daniel Kiper ---- - grub-core/efiemu/i386/loadcore64.c | 1 + - grub-core/kern/x86_64/dl.c | 1 + - util/grub-mkimagexx.c | 1 + - util/grub-module-verifier.c | 1 + - 4 files changed, 4 insertions(+) - -diff --git a/grub-core/efiemu/i386/loadcore64.c b/grub-core/efiemu/i386/loadcore64.c -index e49d0b6ff..18facf47f 100644 ---- a/grub-core/efiemu/i386/loadcore64.c -+++ b/grub-core/efiemu/i386/loadcore64.c -@@ -98,6 +98,7 @@ grub_arch_efiemu_relocate_symbols64 (grub_efiemu_segment_t segs, - break; - - case R_X86_64_PC32: -+ case R_X86_64_PLT32: - err = grub_efiemu_write_value (addr, - *addr32 + rel->r_addend - + sym.off -diff --git a/grub-core/kern/x86_64/dl.c b/grub-core/kern/x86_64/dl.c -index 440690673..3a73e6e6c 100644 ---- a/grub-core/kern/x86_64/dl.c -+++ b/grub-core/kern/x86_64/dl.c -@@ -70,6 +70,7 @@ grub_arch_dl_relocate_symbols (grub_dl_t mod, void *ehdr, - break; - - case R_X86_64_PC32: -+ case R_X86_64_PLT32: - { - grub_int64_t value; - value = ((grub_int32_t) *addr32) + rel->r_addend + sym->st_value - -diff --git a/util/grub-mkimagexx.c b/util/grub-mkimagexx.c -index a2bb05439..39d7efb91 100644 ---- a/util/grub-mkimagexx.c -+++ b/util/grub-mkimagexx.c -@@ -841,6 +841,7 @@ SUFFIX (relocate_addresses) (Elf_Ehdr *e, Elf_Shdr *sections, - break; - - case R_X86_64_PC32: -+ case R_X86_64_PLT32: - { - grub_uint32_t *t32 = (grub_uint32_t *) target; - *t32 = grub_host_to_target64 (grub_target_to_host32 (*t32) -diff --git a/util/grub-module-verifier.c b/util/grub-module-verifier.c -index 9179285a5..a79271f66 100644 ---- a/util/grub-module-verifier.c -+++ b/util/grub-module-verifier.c -@@ -19,6 +19,7 @@ struct grub_module_verifier_arch archs[] = { - -1 - }, (int[]){ - R_X86_64_PC32, -+ R_X86_64_PLT32, - -1 - } - }, --- -2.11.0 - diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-bsp/grub/files/autogen.sh-exclude-pc.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-bsp/grub/files/autogen.sh-exclude-pc.patch index fc5aa4e3..faa7fde2 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-bsp/grub/files/autogen.sh-exclude-pc.patch +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-bsp/grub/files/autogen.sh-exclude-pc.patch @@ -1,4 +1,4 @@ -From ff8f68cc48fd3c30d55e1d570d51f2e0952c968e Mon Sep 17 00:00:00 2001 +From 72c30928d3d461e0e2d20c5ff33bd96b6991d585 Mon Sep 17 00:00:00 2001 From: Robert Yang Date: Sat, 25 Jan 2014 23:49:44 -0500 Subject: [PATCH] autogen.sh: exclude .pc from po/POTFILES.in @@ -12,23 +12,24 @@ try to read it. Upstream-Status: Inappropriate [OE specific] Signed-off-by: Robert Yang +Signed-off-by: Anuj Mittal --- - autogen.sh | 2 +- + autogen.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/autogen.sh b/autogen.sh -index 7424428..843619e 100755 +index ef43270..a7067a7 100755 --- a/autogen.sh +++ b/autogen.sh -@@ -5,7 +5,7 @@ set -e +@@ -13,7 +13,7 @@ fi export LC_COLLATE=C unset LC_ALL --find . -iname '*.[ch]' ! -ipath './grub-core/lib/libgcrypt-grub/*' ! -ipath './build-aux/*' ! -ipath './grub-core/lib/libgcrypt/src/misc.c' ! -ipath './grub-core/lib/libgcrypt/src/global.c' ! -ipath './grub-core/lib/libgcrypt/src/secmem.c' ! -ipath './util/grub-gen-widthspec.c' ! -ipath './util/grub-gen-asciih.c' |sort > po/POTFILES.in -+find . -iname '*.[ch]' ! -ipath './grub-core/lib/libgcrypt-grub/*' ! -ipath './build-aux/*' ! -ipath './grub-core/lib/libgcrypt/src/misc.c' ! -ipath './grub-core/lib/libgcrypt/src/global.c' ! -ipath './grub-core/lib/libgcrypt/src/secmem.c' ! -ipath './util/grub-gen-widthspec.c' ! -ipath './util/grub-gen-asciih.c' ! -path './.pc/*' | sort > po/POTFILES.in +-find . -iname '*.[ch]' ! -ipath './grub-core/lib/libgcrypt-grub/*' ! -ipath './build-aux/*' ! -ipath './grub-core/lib/libgcrypt/src/misc.c' ! -ipath './grub-core/lib/libgcrypt/src/global.c' ! -ipath './grub-core/lib/libgcrypt/src/secmem.c' ! -ipath './util/grub-gen-widthspec.c' ! -ipath './util/grub-gen-asciih.c' ! -ipath './gnulib/*' ! -iname './grub-core/lib/gnulib/*' |sort > po/POTFILES.in ++find . -iname '*.[ch]' ! -ipath './grub-core/lib/libgcrypt-grub/*' ! -ipath './build-aux/*' ! -ipath './grub-core/lib/libgcrypt/src/misc.c' ! -ipath './grub-core/lib/libgcrypt/src/global.c' ! -ipath './grub-core/lib/libgcrypt/src/secmem.c' ! -ipath './util/grub-gen-widthspec.c' ! -ipath './util/grub-gen-asciih.c' ! -ipath './gnulib/*' ! -iname './grub-core/lib/gnulib/*' ! -path './.pc/*' |sort > po/POTFILES.in find util -iname '*.in' ! -name Makefile.in |sort > po/POTFILES-shell.in echo "Importing unicode..." -- -1.7.10.4 +2.7.4 diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-bsp/grub/files/gcc8.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-bsp/grub/files/gcc8.patch deleted file mode 100644 index fa7331f1..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-bsp/grub/files/gcc8.patch +++ /dev/null @@ -1,74 +0,0 @@ -From 563b1da6e6ae7af46cc8354cadb5dab416989f0a Mon Sep 17 00:00:00 2001 -From: Michael Chang -Date: Mon, 26 Mar 2018 16:52:34 +0800 -Subject: Fix packed-not-aligned error on GCC 8 -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -When building with GCC 8, there are several errors regarding packed-not-aligned. - -./include/grub/gpt_partition.h:79:1: error: alignment 1 of ‘struct grub_gpt_partentry’ is less than 8 [-Werror=packed-not-aligned] - -This patch fixes the build error by cleaning up the ambiguity of placing -aligned structure in a packed one. In "struct grub_btrfs_time" and "struct -grub_gpt_part_type", the aligned attribute seems to be superfluous, and also -has to be packed, to ensure the structure is bit-to-bit mapped to the format -laid on disk. I think we could blame to copy and paste error here for the -mistake. In "struct efi_variable", we have to use grub_efi_packed_guid_t, as -the name suggests. :) - -Signed-off-by: Michael Chang -Tested-by: Michael Chang -Tested-by: Paul Menzel -Reviewed-by: Daniel Kiper - -Upstream-Status: Backport http://git.savannah.gnu.org/cgit/grub.git/commit/?id=563b1da6e6ae7af46cc8354cadb5dab416989f0a ---- - grub-core/fs/btrfs.c | 2 +- - include/grub/efiemu/runtime.h | 2 +- - include/grub/gpt_partition.h | 2 +- - 3 files changed, 3 insertions(+), 3 deletions(-) - -diff --git a/grub-core/fs/btrfs.c b/grub-core/fs/btrfs.c -index 4849c1c..be19544 100644 ---- a/grub-core/fs/btrfs.c -+++ b/grub-core/fs/btrfs.c -@@ -175,7 +175,7 @@ struct grub_btrfs_time - { - grub_int64_t sec; - grub_uint32_t nanosec; --} __attribute__ ((aligned (4))); -+} GRUB_PACKED; - - struct grub_btrfs_inode - { -diff --git a/include/grub/efiemu/runtime.h b/include/grub/efiemu/runtime.h -index 9b6b729..36d2ded 100644 ---- a/include/grub/efiemu/runtime.h -+++ b/include/grub/efiemu/runtime.h -@@ -29,7 +29,7 @@ struct grub_efiemu_ptv_rel - - struct efi_variable - { -- grub_efi_guid_t guid; -+ grub_efi_packed_guid_t guid; - grub_uint32_t namelen; - grub_uint32_t size; - grub_efi_uint32_t attributes; -diff --git a/include/grub/gpt_partition.h b/include/grub/gpt_partition.h -index 1b32f67..9668a68 100644 ---- a/include/grub/gpt_partition.h -+++ b/include/grub/gpt_partition.h -@@ -28,7 +28,7 @@ struct grub_gpt_part_type - grub_uint16_t data2; - grub_uint16_t data3; - grub_uint8_t data4[8]; --} __attribute__ ((aligned(8))); -+} GRUB_PACKED; - typedef struct grub_gpt_part_type grub_gpt_part_type_t; - - #define GRUB_GPT_PARTITION_TYPE_EMPTY \ --- -cgit v1.0-41-gc330 - diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-bsp/grub/files/grub-module-explicitly-keeps-symbole-.module_license.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-bsp/grub/files/grub-module-explicitly-keeps-symbole-.module_license.patch index ffc2d40d..26890261 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-bsp/grub/files/grub-module-explicitly-keeps-symbole-.module_license.patch +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-bsp/grub/files/grub-module-explicitly-keeps-symbole-.module_license.patch @@ -1,13 +1,14 @@ -From 7461a3de38b66edbe2f5593f9bdab9f2704d32bc Mon Sep 17 00:00:00 2001 +From 917133acc701dbc4636165d3b08d15dc5829a06f Mon Sep 17 00:00:00 2001 From: Hongxu Jia Date: Wed, 17 Aug 2016 04:06:34 -0400 Subject: [PATCH] grub module explicitly keeps symbole .module_license While using oe-core toolchain to strip grub module 'all_video.mod', it stripped symbol table: --------------- -root@localhost:~# objdump -t all_video.mod +--------------- +root@localhost:~# objdump -t all_video.mod + all_video.mod: file format elf64-x86-64 SYMBOL TABLE: @@ -43,16 +44,16 @@ Signed-off-by: Hongxu Jia grub-core/genmod.sh.in | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) -Index: grub-2.02/grub-core/genmod.sh.in -=================================================================== ---- grub-2.02.orig/grub-core/genmod.sh.in -+++ grub-2.02/grub-core/genmod.sh.in -@@ -56,7 +56,7 @@ if test x@TARGET_APPLE_LINKER@ != x1; th +diff --git a/grub-core/genmod.sh.in b/grub-core/genmod.sh.in +index 1250589..dd14308 100644 +--- a/grub-core/genmod.sh.in ++++ b/grub-core/genmod.sh.in +@@ -56,7 +56,7 @@ if test x@TARGET_APPLE_LINKER@ != x1; then if test x@platform@ != xemu; then @TARGET_STRIP@ --strip-unneeded \ -K grub_mod_init -K grub_mod_fini \ - -K _grub_mod_init -K _grub_mod_fini \ + -K _grub_mod_init -K _grub_mod_fini -K .module_license \ -R .note.gnu.gold-version -R .note.GNU-stack \ - -R .note -R .comment -R .ARM.exidx $tmpfile || exit 1 - fi + -R .gnu.build.attributes \ + -R .rel.gnu.build.attributes \ diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-bsp/grub/grub-bootconf_1.00.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-bsp/grub/grub-bootconf_1.00.bb index 750f8c80..57258031 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-bsp/grub/grub-bootconf_1.00.bb +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-bsp/grub/grub-bootconf_1.00.bb @@ -1,11 +1,16 @@ LICENSE = "MIT" LIC_FILES_CHKSUM = "file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420" SUMMARY = "Basic grub.cfg for use in EFI systems" +DESCRIPTION = "Grub might require different configuration file for \ +different machines." +HOMEPAGE = "https://www.gnu.org/software/grub/manual/grub/grub.html#Configuration" RPROVIDES_${PN} += "virtual/grub-bootconf" inherit grub-efi-cfg +require conf/image-uefi.conf + S = "${WORKDIR}" GRUB_CFG = "${S}/grub-bootconf" @@ -20,10 +25,8 @@ python do_configure() { do_configure[vardeps] += "APPEND ROOT" do_install() { - install -d ${D}/boot - install -d ${D}/boot/EFI - install -d ${D}/boot/EFI/BOOT - install grub-bootconf ${D}/boot/EFI/BOOT/grub.cfg + install -d ${D}${EFI_FILES_PATH} + install grub-bootconf ${D}${EFI_FILES_PATH}/grub.cfg } -FILES_${PN} = "/boot/EFI/BOOT/grub.cfg" +FILES_${PN} = "${EFI_FILES_PATH}/grub.cfg" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-bsp/grub/grub-efi_2.02.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-bsp/grub/grub-efi_2.02.bb deleted file mode 100644 index 0028a9b6..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-bsp/grub/grub-efi_2.02.bb +++ /dev/null @@ -1,109 +0,0 @@ -require grub2.inc - -GRUBPLATFORM = "efi" - -DEPENDS_append_class-target = " grub-efi-native" -RDEPENDS_${PN}_class-target = "diffutils freetype grub-common virtual/grub-bootconf" - -SRC_URI += " \ - file://cfg \ - " - -S = "${WORKDIR}/grub-${PV}" - -# Determine the target arch for the grub modules -python __anonymous () { - import re - target = d.getVar('TARGET_ARCH') - prefix = "" if d.getVar('EFI_PROVIDER') == "grub-efi" else "grub-efi-" - if target == "x86_64": - grubtarget = 'x86_64' - grubimage = prefix + "bootx64.efi" - elif re.match('i.86', target): - grubtarget = 'i386' - grubimage = prefix + "bootia32.efi" - elif re.match('aarch64', target): - grubtarget = 'arm64' - grubimage = prefix + "bootaa64.efi" - elif re.match('arm', target): - grubtarget = 'arm' - grubimage = prefix + "bootarm.efi" - else: - raise bb.parse.SkipRecipe("grub-efi is incompatible with target %s" % target) - d.setVar("GRUB_TARGET", grubtarget) - d.setVar("GRUB_IMAGE", grubimage) - prefix = "grub-efi-" if prefix == "" else "" - d.setVar("GRUB_IMAGE_PREFIX", prefix) -} - -inherit deploy - -CACHED_CONFIGUREVARS += "ac_cv_path_HELP2MAN=" -EXTRA_OECONF += "--enable-efiemu=no" - -do_mkimage() { - cd ${B} - # Search for the grub.cfg on the local boot media by using the - # built in cfg file provided via this recipe - grub-mkimage -c ../cfg -p /EFI/BOOT -d ./grub-core/ \ - -O ${GRUB_TARGET}-efi -o ./${GRUB_IMAGE_PREFIX}${GRUB_IMAGE} \ - ${GRUB_BUILDIN} -} - -addtask mkimage before do_install after do_compile - -do_mkimage_class-native() { - : -} - -do_install_append_class-target() { - install -d ${D}/boot - install -d ${D}/boot/EFI - install -d ${D}/boot/EFI/BOOT - install -m 644 ${B}/${GRUB_IMAGE_PREFIX}${GRUB_IMAGE} ${D}/boot/EFI/BOOT/${GRUB_IMAGE} -} - -do_install_class-native() { - install -d ${D}${bindir} - install -m 755 grub-mkimage ${D}${bindir} - install -m 755 grub-editenv ${D}${bindir} -} - -do_install_class-target() { - oe_runmake 'DESTDIR=${D}' -C grub-core install - - # Remove build host references... - find "${D}" -name modinfo.sh -type f -exec \ - sed -i \ - -e 's,--sysroot=${STAGING_DIR_TARGET},,g' \ - -e 's|${DEBUG_PREFIX_MAP}||g' \ - -e 's:${RECIPE_SYSROOT_NATIVE}::g' \ - {} + -} - -GRUB_BUILDIN ?= "boot linux ext2 fat serial part_msdos part_gpt normal \ - efi_gop iso9660 configfile search loadenv test" - -do_deploy() { - install -m 644 ${B}/${GRUB_IMAGE_PREFIX}${GRUB_IMAGE} ${DEPLOYDIR} -} - -do_deploy_class-native() { - : -} - -addtask deploy after do_install before do_build - -FILES_${PN} = "${libdir}/grub/${GRUB_TARGET}-efi \ - ${datadir}/grub \ - /boot/EFI/BOOT/${GRUB_IMAGE} \ - " - - -# 64-bit binaries are expected for the bootloader with an x32 userland -INSANE_SKIP_${PN}_append_linux-gnux32 = " arch" -INSANE_SKIP_${PN}-dbg_append_linux-gnux32 = " arch" -INSANE_SKIP_${PN}_append_linux-muslx32 = " arch" -INSANE_SKIP_${PN}-dbg_append_linux-muslx32 = " arch" - -BBCLASSEXTEND = "native" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-bsp/grub/grub-efi_2.04.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-bsp/grub/grub-efi_2.04.bb new file mode 100644 index 00000000..b9d6225d --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-bsp/grub/grub-efi_2.04.bb @@ -0,0 +1,109 @@ +require grub2.inc + +require conf/image-uefi.conf + +GRUBPLATFORM = "efi" + +DEPENDS_append_class-target = " grub-efi-native" +RDEPENDS_${PN}_class-target = "grub-common virtual/grub-bootconf" + +SRC_URI += " \ + file://cfg \ + " + +S = "${WORKDIR}/grub-${PV}" + +# Determine the target arch for the grub modules +python __anonymous () { + import re + target = d.getVar('TARGET_ARCH') + prefix = "" if d.getVar('EFI_PROVIDER') == "grub-efi" else "grub-efi-" + if target == "x86_64": + grubtarget = 'x86_64' + elif re.match('i.86', target): + grubtarget = 'i386' + elif re.match('aarch64', target): + grubtarget = 'arm64' + elif re.match('arm', target): + grubtarget = 'arm' + else: + raise bb.parse.SkipRecipe("grub-efi is incompatible with target %s" % target) + grubimage = prefix + d.getVar("EFI_BOOT_IMAGE") + d.setVar("GRUB_TARGET", grubtarget) + d.setVar("GRUB_IMAGE", grubimage) + prefix = "grub-efi-" if prefix == "" else "" + d.setVar("GRUB_IMAGE_PREFIX", prefix) +} + +inherit deploy + +CACHED_CONFIGUREVARS += "ac_cv_path_HELP2MAN=" +EXTRA_OECONF += "--enable-efiemu=no" + +do_mkimage() { + cd ${B} + # Search for the grub.cfg on the local boot media by using the + # built in cfg file provided via this recipe + grub-mkimage -c ../cfg -p ${EFIDIR} -d ./grub-core/ \ + -O ${GRUB_TARGET}-efi -o ./${GRUB_IMAGE_PREFIX}${GRUB_IMAGE} \ + ${GRUB_BUILDIN} +} + +addtask mkimage before do_install after do_compile + +do_mkimage_class-native() { + : +} + +do_install_append_class-target() { + install -d ${D}${EFI_FILES_PATH} + install -m 644 ${B}/${GRUB_IMAGE_PREFIX}${GRUB_IMAGE} ${D}${EFI_FILES_PATH}/${GRUB_IMAGE} +} + +do_install_class-native() { + install -d ${D}${bindir} + install -m 755 grub-mkimage ${D}${bindir} + install -m 755 grub-editenv ${D}${bindir} +} + +do_install_class-target() { + oe_runmake 'DESTDIR=${D}' -C grub-core install + + # Remove build host references... + find "${D}" -name modinfo.sh -type f -exec \ + sed -i \ + -e 's,--sysroot=${STAGING_DIR_TARGET},,g' \ + -e 's|${DEBUG_PREFIX_MAP}||g' \ + -e 's:${RECIPE_SYSROOT_NATIVE}::g' \ + {} + +} + +do_install_append_aarch64() { + rm -rf ${D}/${prefix}/ +} + +GRUB_BUILDIN ?= "boot linux ext2 fat serial part_msdos part_gpt normal \ + efi_gop iso9660 configfile search loadenv test" + +do_deploy() { + install -m 644 ${B}/${GRUB_IMAGE_PREFIX}${GRUB_IMAGE} ${DEPLOYDIR} +} + +do_deploy_class-native() { + : +} + +addtask deploy after do_install before do_build + +FILES_${PN} = "${libdir}/grub/${GRUB_TARGET}-efi \ + ${datadir}/grub \ + ${EFI_FILES_PATH}/${GRUB_IMAGE} \ + " + +FILES_${PN}_remove_aarch64 = "${libdir}/grub/${GRUB_TARGET}-efi" + +# 64-bit binaries are expected for the bootloader with an x32 userland +INSANE_SKIP_${PN}_append_linux-gnux32 = " arch" +INSANE_SKIP_${PN}-dbg_append_linux-gnux32 = " arch" +INSANE_SKIP_${PN}_append_linux-muslx32 = " arch" +INSANE_SKIP_${PN}-dbg_append_linux-muslx32 = " arch" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-bsp/grub/grub2.inc b/Contrib-Inspur/openbmc/poky/meta/recipes-bsp/grub/grub2.inc index bac2d7d4..c81def2a 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-bsp/grub/grub2.inc +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-bsp/grub/grub2.inc @@ -11,20 +11,16 @@ SECTION = "bootloaders" LICENSE = "GPLv3" LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504" -SRC_URI = "https://ftp.gnu.org/gnu/grub/grub-${PV}.tar.gz \ +SRC_URI = "${GNU_MIRROR}/grub/grub-${PV}.tar.gz \ file://0001-Disable-mfpmath-sse-as-well-when-SSE-is-disabled.patch \ - file://0001-Unset-need_charset_alias-when-building-for-musl.patch \ file://autogen.sh-exclude-pc.patch \ file://grub-module-explicitly-keeps-symbole-.module_license.patch \ file://0001-grub.d-10_linux.in-add-oe-s-kernel-name.patch \ - file://gcc8.patch \ - file://0001-x86-64-Treat-R_X86_64_PLT32-as-R_X86_64_PC32.patch \ - file://0001-grub-setup-Debug-message-cleanup.patch \ " -SRC_URI[md5sum] = "1116d1f60c840e6dbd67abbc99acb45d" -SRC_URI[sha256sum] = "660ee136fbcee08858516ed4de2ad87068bfe1b6b8b37896ce3529ff054a726d" +SRC_URI[md5sum] = "5ce674ca6b2612d8939b9e6abed32934" +SRC_URI[sha256sum] = "f10c85ae3e204dbaec39ae22fa3c5e99f0665417e91c2cb49b7e5031658ba6ea" -DEPENDS = "flex-native bison-native" +DEPENDS = "flex-native bison-native gettext-native" COMPATIBLE_HOST = '(x86_64.*|i.86.*|arm.*|aarch64.*)-(linux.*|freebsd.*)' COMPATIBLE_HOST_armv7a = 'null' @@ -45,6 +41,7 @@ EXTRA_OECONF = "--with-platform=${GRUBPLATFORM} \ --enable-liblzma=no \ --enable-libzfs=no \ --enable-largefile \ + --disable-werror \ " PACKAGECONFIG ??= "" @@ -60,15 +57,13 @@ BUILD_CFLAGS = "" BUILD_CXXFLAGS = "" BUILD_LDFLAGS = "" -CFLAGS_append = " -Wno-error" +export PYTHON = "python3" do_configure_prepend() { - # The grub2 configure script uses variables such as TARGET_CFLAGS etc - # for its own purposes. Remove the OE versions from the environment to - # avoid conflicts. - unset TARGET_CPPFLAGS TARGET_CFLAGS TARGET_CXXFLAGS TARGET_LDFLAGS ( cd ${S} ${S}/autogen.sh ) } RDEPENDS_${PN}_class-native = "" + +BBCLASSEXTEND = "native" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-bsp/grub/grub_2.02.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-bsp/grub/grub_2.02.bb deleted file mode 100644 index e0973759..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-bsp/grub/grub_2.02.bb +++ /dev/null @@ -1,29 +0,0 @@ -require grub2.inc - -RDEPENDS_${PN}-common += "${PN}-editenv" -RDEPENDS_${PN} += "diffutils freetype ${PN}-common" - -RPROVIDES_${PN}-editenv += "${PN}-efi-editenv" - -PACKAGES =+ "${PN}-editenv ${PN}-common" -FILES_${PN}-editenv = "${bindir}/grub-editenv" -FILES_${PN}-common = " \ - ${bindir} \ - ${sysconfdir} \ - ${sbindir} \ - ${datadir}/grub \ -" - -do_install_append () { - install -d ${D}${sysconfdir}/grub.d - # Remove build host references... - find "${D}" -name modinfo.sh -type f -exec \ - sed -i \ - -e 's,--sysroot=${STAGING_DIR_TARGET},,g' \ - -e 's|${DEBUG_PREFIX_MAP}||g' \ - -e 's:${RECIPE_SYSROOT_NATIVE}::g' \ - {} + -} - -INSANE_SKIP_${PN} = "arch" -INSANE_SKIP_${PN}-dbg = "arch" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-bsp/grub/grub_2.04.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-bsp/grub/grub_2.04.bb new file mode 100644 index 00000000..9232ea81 --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-bsp/grub/grub_2.04.bb @@ -0,0 +1,33 @@ +require grub2.inc + +RDEPENDS_${PN}-common += "${PN}-editenv" +RDEPENDS_${PN} += "${PN}-common" + +RPROVIDES_${PN}-editenv += "${PN}-efi-editenv" + +PACKAGES =+ "${PN}-editenv ${PN}-common" +FILES_${PN}-editenv = "${bindir}/grub-editenv" +FILES_${PN}-common = " \ + ${bindir} \ + ${sysconfdir} \ + ${sbindir} \ + ${datadir}/grub \ +" + +FILES_${PN}-common_append_aarch64 = " \ + ${libdir}/${BPN} \ +" + +do_install_append () { + install -d ${D}${sysconfdir}/grub.d + # Remove build host references... + find "${D}" -name modinfo.sh -type f -exec \ + sed -i \ + -e 's,--sysroot=${STAGING_DIR_TARGET},,g' \ + -e 's|${DEBUG_PREFIX_MAP}||g' \ + -e 's:${RECIPE_SYSROOT_NATIVE}::g' \ + {} + +} + +INSANE_SKIP_${PN} = "arch" +INSANE_SKIP_${PN}-dbg = "arch" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-bsp/opensbi/files/0002-lib-Create-a-sbi_ipi_data-structure.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-bsp/opensbi/files/0002-lib-Create-a-sbi_ipi_data-structure.patch deleted file mode 100644 index 3c846bde..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-bsp/opensbi/files/0002-lib-Create-a-sbi_ipi_data-structure.patch +++ /dev/null @@ -1,128 +0,0 @@ -From 508a27204cbbca0a9430236e56681e5e0d343fb9 Mon Sep 17 00:00:00 2001 -From: Alistair Francis -Date: Fri, 8 Mar 2019 11:22:22 -0800 -Subject: [PATCH] lib: Create a sbi_ipi_data structure - -Create a sbi_ipi_data structure that holds unpacked IPI information. At -the same time remove ipi_type from the sbi_scratch struct and use a -fixed offset to access it. - -This structure fits in behind the sbi_scratch structure. - -This fixes https://github.com/riscv/opensbi/issues/81 - -Upstream-Status: Backport [https://github.com/riscv/opensbi/commit/508a27204cbbca0a9430236e56681e5e0d343fb9] -Signed-off-by: Alistair Francis ---- - firmware/fw_base.S | 1 - - include/sbi/sbi_scratch.h | 23 ++++++++++++++++------- - lib/sbi_ipi.c | 8 +++++--- - 3 files changed, 21 insertions(+), 11 deletions(-) - -diff --git a/firmware/fw_base.S b/firmware/fw_base.S -index cf2c6a0..69cfc90 100644 ---- a/firmware/fw_base.S -+++ b/firmware/fw_base.S -@@ -183,7 +183,6 @@ _start_warm: - REG_S a4, SBI_SCRATCH_PLATFORM_ADDR_OFFSET(tp) - la a4, _hartid_to_scratch - REG_S a4, SBI_SCRATCH_HARTID_TO_SCRATCH_OFFSET(tp) -- REG_S zero, SBI_SCRATCH_IPI_TYPE_OFFSET(tp) - REG_S zero, SBI_SCRATCH_TMP0_OFFSET(tp) - - /* Setup stack */ -diff --git a/include/sbi/sbi_scratch.h b/include/sbi/sbi_scratch.h -index 8389ef3..70ab384 100644 ---- a/include/sbi/sbi_scratch.h -+++ b/include/sbi/sbi_scratch.h -@@ -28,17 +28,24 @@ - #define SBI_SCRATCH_PLATFORM_ADDR_OFFSET (6 * __SIZEOF_POINTER__) - /** Offset of hartid_to_scratch member in sbi_scratch */ - #define SBI_SCRATCH_HARTID_TO_SCRATCH_OFFSET (7 * __SIZEOF_POINTER__) --/** Offset of ipi_type member in sbi_scratch */ --#define SBI_SCRATCH_IPI_TYPE_OFFSET (8 * __SIZEOF_POINTER__) - /** Offset of tmp0 member in sbi_scratch */ --#define SBI_SCRATCH_TMP0_OFFSET (9 * __SIZEOF_POINTER__) --/** Maximum size of sbi_scratch */ --#define SBI_SCRATCH_SIZE 256 -+#define SBI_SCRATCH_TMP0_OFFSET (8 * __SIZEOF_POINTER__) -+ -+/** sbi_ipi_data is located behind sbi_scratch. This struct is not packed. */ -+/** Offset of ipi_type in sbi_ipi_data */ -+#define SBI_IPI_DATA_IPI_TYPE_OFFSET (15 * __SIZEOF_POINTER__) -+ -+/** Maximum size of sbi_scratch and sbi_ipi_data */ -+#define SBI_SCRATCH_SIZE (32 * __SIZEOF_POINTER__) - - #ifndef __ASSEMBLY__ - - #include - -+struct sbi_ipi_data { -+ unsigned long ipi_type; -+}; -+ - /** Representation of per-HART scratch space */ - struct sbi_scratch { - /** Start (or base) address of firmware linked to OpenSBI library */ -@@ -57,8 +64,6 @@ struct sbi_scratch { - unsigned long platform_addr; - /** Address of HART ID to sbi_scratch conversion function */ - unsigned long hartid_to_scratch; -- /** IPI type (or flags) */ -- unsigned long ipi_type; - /** Temporary storage */ - unsigned long tmp0; - } __packed; -@@ -71,6 +76,10 @@ struct sbi_scratch { - #define sbi_scratch_thishart_arg1_ptr() \ - ((void *)(sbi_scratch_thishart_ptr()->next_arg1)) - -+/** Get pointer to sbi_ipi_data from sbi_scratch */ -+#define sbi_ipi_data_ptr(scratch) \ -+((struct sbi_ipi_data *)(void*)scratch + SBI_IPI_DATA_IPI_TYPE_OFFSET) -+ - #endif - - #endif -diff --git a/lib/sbi_ipi.c b/lib/sbi_ipi.c -index 0e371d7..e0f2a19 100644 ---- a/lib/sbi_ipi.c -+++ b/lib/sbi_ipi.c -@@ -31,7 +31,7 @@ static int sbi_ipi_send(struct sbi_scratch *scratch, u32 hartid, u32 event) - * trigger the interrupt - */ - remote_scratch = sbi_hart_id_to_scratch(scratch, hartid); -- atomic_raw_set_bit(event, &remote_scratch->ipi_type); -+ atomic_raw_set_bit(event, &sbi_ipi_data_ptr(remote_scratch)->ipi_type); - mb(); - sbi_platform_ipi_send(plat, hartid); - if (event != SBI_IPI_EVENT_SOFT) -@@ -80,7 +80,7 @@ void sbi_ipi_process(struct sbi_scratch *scratch) - sbi_platform_ipi_clear(plat, hartid); - - do { -- ipi_type = scratch->ipi_type; -+ ipi_type = sbi_ipi_data_ptr(scratch)->ipi_type; - rmb(); - ipi_event = __ffs(ipi_type); - switch (ipi_event) { -@@ -97,12 +97,14 @@ void sbi_ipi_process(struct sbi_scratch *scratch) - sbi_hart_hang(); - break; - }; -- ipi_type = atomic_raw_clear_bit(ipi_event, &scratch->ipi_type); -+ ipi_type = atomic_raw_clear_bit(ipi_event, &sbi_ipi_data_ptr(scratch)->ipi_type); - } while(ipi_type > 0); - } - - int sbi_ipi_init(struct sbi_scratch *scratch, bool cold_boot) - { -+ sbi_ipi_data_ptr(scratch)->ipi_type = 0x00; -+ - /* Enable software interrupts */ - csr_set(CSR_MIE, MIP_MSIP); - --- -2.22.0 - diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-bsp/opensbi/opensbi-payloads.inc b/Contrib-Inspur/openbmc/poky/meta/recipes-bsp/opensbi/opensbi-payloads.inc index 7828599c..b9714a7a 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-bsp/opensbi/opensbi-payloads.inc +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-bsp/opensbi/opensbi-payloads.inc @@ -5,10 +5,7 @@ def riscv_get_extra_oemake_image(d): if sbi_payload is None: return "" - if d.getVar('RISCV_SBI_PAYLOAD'): - return "FW_PAYLOAD_PATH=" + deploy_dir + "/" + sbi_payload - - return "" + return "FW_PAYLOAD_PATH=" + deploy_dir + "/" + sbi_payload def riscv_get_extra_oemake_fdt(d): sbi_fdt_payload = d.getVar('RISCV_SBI_FDT') @@ -17,14 +14,11 @@ def riscv_get_extra_oemake_fdt(d): if sbi_fdt_payload is None: return "" - if d.getVar('RISCV_SBI_PAYLOAD'): - # This is internal to openSBI, not a full path - return "FW_PAYLOAD_FDT=" + sbi_fdt_payload - - return "" + return "FW_PAYLOAD_FDT_PATH=" + deploy_dir + "/" + sbi_fdt_payload def riscv_get_do_compile_depends(d): sbi_payload = d.getVar('RISCV_SBI_PAYLOAD') + sbi_fdt_payload = d.getVar('RISCV_SBI_FDT') if sbi_payload is None: return "" @@ -32,6 +26,14 @@ def riscv_get_do_compile_depends(d): if 'linux' in sbi_payload or 'Image' in sbi_payload: return "virtual/kernel:do_deploy" if 'u-boot.bin' in sbi_payload: - return "virtual/bootloader:do_deploy" + # If we want U-Boot and a FDT then we need to depend on U-Boot and + # the kernel + if sbi_fdt_payload is not None: + return "virtual/bootloader:do_deploy virtual/kernel:do_deploy" + else: + return "virtual/bootloader:do_deploy" + # If we want a custom FDT then we need to depend on the kernel + if sbi_fdt_payload is not None: + return "virtual/kernel:do_deploy" return "" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-bsp/opensbi/opensbi_0.3.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-bsp/opensbi/opensbi_0.3.bb deleted file mode 100644 index 2b4fb97d..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-bsp/opensbi/opensbi_0.3.bb +++ /dev/null @@ -1,49 +0,0 @@ -SUMMARY = "RISC-V Open Source Supervisor Binary Interface (OpenSBI)" -DESCRIPTION = "OpenSBI aims to provide an open-source and extensible implementation of the RISC-V SBI specification for a platform specific firmware (M-mode) and a general purpose OS, hypervisor or bootloader (S-mode or HS-mode). OpenSBI implementation can be easily extended by RISC-V platform or System-on-Chip vendors to fit a particular hadware configuration." -LICENSE = "BSD-2-Clause" -LIC_FILES_CHKSUM = "file://COPYING.BSD;md5=c36118b4f615f9da37635f2a7ac8ccaf" -DEPENDS += "dtc-native" - -require opensbi-payloads.inc - -inherit autotools-brokensep - -SRCREV = "ca20ac0cd4c099006d4eea4d9ac7bd7b58e2ae0f" -SRC_URI = "git://github.com/riscv/opensbi.git \ - file://0001-Makefile-Don-t-specify-mabi-or-march.patch \ - file://0002-lib-Create-a-sbi_ipi_data-structure.patch \ - " - -S = "${WORKDIR}/git" - -SRC_URI[md5sum] = "621f38d8205ef5fb185e4055025e73df" -SRC_URI[sha256sum] = "07f18b73abf3b85aabe5bead19a923716c100d30eb58033459f39c3a224be300" - -EXTRA_OEMAKE += "PLATFORM=${RISCV_SBI_PLAT} I=${D}" -# If RISCV_SBI_PAYLOAD is set then include it as a payload -EXTRA_OEMAKE_append = " ${@riscv_get_extra_oemake_image(d)} ${@riscv_get_extra_oemake_fdt(d)}" - -# Required if specifying a custom payload -do_compile[depends] += "${@riscv_get_do_compile_depends(d)}" - -do_install_append() { - # In the future these might be required as a dependency for other packages. - # At the moment just delete them to avoid warnings - rm -r ${D}/include - rm -r ${D}/platform/${RISCV_SBI_PLAT}/lib - rm -r ${D}/platform/${RISCV_SBI_PLAT}/firmware/payloads -} - -do_deploy () { - install -d ${DEPLOY_DIR_IMAGE} - install -m 755 ${D}/platform/${RISCV_SBI_PLAT}/firmware/fw_payload.* ${DEPLOY_DIR_IMAGE}/ - install -m 755 ${D}/platform/${RISCV_SBI_PLAT}/firmware/fw_jump.* ${DEPLOY_DIR_IMAGE}/ -} - -addtask deploy after do_install - -FILES_${PN} += "/platform/${RISCV_SBI_PLAT}/firmware/fw_jump.*" -FILES_${PN} += "/platform/${RISCV_SBI_PLAT}/firmware/fw_payload.*" - -COMPATIBLE_HOST = "(riscv64|riscv32).*" -INHIBIT_PACKAGE_STRIP = "1" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-bsp/opensbi/opensbi_0.5.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-bsp/opensbi/opensbi_0.5.bb new file mode 100644 index 00000000..759bbbfd --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-bsp/opensbi/opensbi_0.5.bb @@ -0,0 +1,53 @@ +SUMMARY = "RISC-V Open Source Supervisor Binary Interface (OpenSBI)" +DESCRIPTION = "OpenSBI aims to provide an open-source and extensible implementation of the RISC-V SBI specification for a platform specific firmware (M-mode) and a general purpose OS, hypervisor or bootloader (S-mode or HS-mode). OpenSBI implementation can be easily extended by RISC-V platform or System-on-Chip vendors to fit a particular hadware configuration." +LICENSE = "BSD-2-Clause" +LIC_FILES_CHKSUM = "file://COPYING.BSD;md5=42dd9555eb177f35150cf9aa240b61e5" +DEPENDS += "dtc-native" + +require opensbi-payloads.inc + +inherit autotools-brokensep deploy + +SRCREV = "be92da280d87c38a2e0adc5d3f43bab7b5468f09" +SRC_URI = "git://github.com/riscv/opensbi.git \ + file://0001-Makefile-Don-t-specify-mabi-or-march.patch \ + " + +S = "${WORKDIR}/git" + +SRC_URI[md5sum] = "621f38d8205ef5fb185e4055025e73df" +SRC_URI[sha256sum] = "07f18b73abf3b85aabe5bead19a923716c100d30eb58033459f39c3a224be300" + +EXTRA_OEMAKE += "PLATFORM=${RISCV_SBI_PLAT} I=${D}" +# If RISCV_SBI_PAYLOAD is set then include it as a payload +EXTRA_OEMAKE_append = " ${@riscv_get_extra_oemake_image(d)} ${@riscv_get_extra_oemake_fdt(d)}" + +# Required if specifying a custom payload +do_compile[depends] += "${@riscv_get_do_compile_depends(d)}" + +do_install_append() { + # In the future these might be required as a dependency for other packages. + # At the moment just delete them to avoid warnings + rm -r ${D}/include + rm -r ${D}/platform/${RISCV_SBI_PLAT}/lib + rm -r ${D}/platform/${RISCV_SBI_PLAT}/firmware/payloads + rm -r ${D}/lib +} + +do_deploy () { + install -m 755 ${D}/platform/${RISCV_SBI_PLAT}/firmware/fw_payload.* ${DEPLOYDIR}/ + install -m 755 ${D}/platform/${RISCV_SBI_PLAT}/firmware/fw_jump.* ${DEPLOYDIR}/ + install -m 755 ${D}/platform/${RISCV_SBI_PLAT}/firmware/fw_dynamic.* ${DEPLOYDIR}/ +} + +addtask deploy before do_build after do_install + +FILES_${PN} += "/platform/${RISCV_SBI_PLAT}/firmware/fw_jump.*" +FILES_${PN} += "/platform/${RISCV_SBI_PLAT}/firmware/fw_payload.*" +FILES_${PN} += "/platform/${RISCV_SBI_PLAT}/firmware/fw_dynamic.*" + + +COMPATIBLE_HOST = "(riscv64|riscv32).*" +INHIBIT_PACKAGE_STRIP = "1" + +SECURITY_CFLAGS = "" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-bsp/u-boot/files/0001-include-env.h-Ensure-ulong-is-defined.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-bsp/u-boot/files/0001-include-env.h-Ensure-ulong-is-defined.patch new file mode 100644 index 00000000..b9118164 --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-bsp/u-boot/files/0001-include-env.h-Ensure-ulong-is-defined.patch @@ -0,0 +1,31 @@ +From 0565a080d153d5baaaacfeb5045a832e126f4f9e Mon Sep 17 00:00:00 2001 +From: Alistair Francis +Date: Mon, 14 Oct 2019 17:37:30 -0700 +Subject: [PATCH] include/env.h: Ensure ulong is defined + +To fix these failures when building with musl: + include/env.h:166:1: error: unknown type name 'ulong'; did you mean 'long'? +ensure that ulong is defined. + +Upstream-Status: Pending +Signed-off-by: Alistair Francis +--- + include/env.h | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/include/env.h b/include/env.h +index b72239f6a5..5ca49a3456 100644 +--- a/include/env.h ++++ b/include/env.h +@@ -13,6 +13,8 @@ + #include + #include + ++typedef unsigned long ulong; ++ + struct environment_s; + + /* Value for environment validity */ +-- +2.23.0 + diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-bsp/u-boot/u-boot-common.inc b/Contrib-Inspur/openbmc/poky/meta/recipes-bsp/u-boot/u-boot-common.inc index a0212e1b..c3e458e9 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-bsp/u-boot/u-boot-common.inc +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-bsp/u-boot/u-boot-common.inc @@ -1,4 +1,8 @@ HOMEPAGE = "http://www.denx.de/wiki/U-Boot/WebHome" +DESCRIPTION = "U-Boot, a boot loader for Embedded boards based on PowerPC, \ +ARM, MIPS and several other processors, which can be installed in a boot \ +ROM and used to initialize and test the hardware or to download and run \ +application code." SECTION = "bootloaders" DEPENDS += "flex-native bison-native" @@ -8,8 +12,9 @@ PE = "1" # We use the revision in order to avoid having to fetch it from the # repo during parse -SRCREV = "3c99166441bf3ea325af2da83cfe65430b49c066" +SRCREV = "61ba1244b548463dbfb3c5285b6b22e7c772c5bd" -SRC_URI = "git://git.denx.de/u-boot.git" +SRC_URI = "git://git.denx.de/u-boot.git \ + " S = "${WORKDIR}/git" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-bsp/u-boot/u-boot-fw-utils_2019.04.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-bsp/u-boot/u-boot-fw-utils_2019.04.bb deleted file mode 100644 index b5ce5684..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-bsp/u-boot/u-boot-fw-utils_2019.04.bb +++ /dev/null @@ -1,34 +0,0 @@ -require u-boot-common.inc - -SUMMARY = "U-Boot bootloader fw_printenv/setenv utilities" -DEPENDS += "mtd-utils" - -INSANE_SKIP_${PN} = "already-stripped" -EXTRA_OEMAKE_class-target = 'CROSS_COMPILE=${TARGET_PREFIX} CC="${CC} ${CFLAGS} ${LDFLAGS}" HOSTCC="${BUILD_CC} ${BUILD_CFLAGS} ${BUILD_LDFLAGS}" V=1' -EXTRA_OEMAKE_class-cross = 'HOSTCC="${CC} ${CFLAGS} ${LDFLAGS}" V=1' - -inherit uboot-config - -do_compile () { - oe_runmake ${UBOOT_MACHINE} - oe_runmake envtools -} - -do_install () { - install -d ${D}${base_sbindir} - install -d ${D}${sysconfdir} - install -m 755 ${S}/tools/env/fw_printenv ${D}${base_sbindir}/fw_printenv - install -m 755 ${S}/tools/env/fw_printenv ${D}${base_sbindir}/fw_setenv - install -m 0644 ${S}/tools/env/fw_env.config ${D}${sysconfdir}/fw_env.config -} - -do_install_class-cross () { - install -d ${D}${bindir_cross} - install -m 755 ${S}/tools/env/fw_printenv ${D}${bindir_cross}/fw_printenv - install -m 755 ${S}/tools/env/fw_printenv ${D}${bindir_cross}/fw_setenv -} - -SYSROOT_DIRS_append_class-cross = " ${bindir_cross}" - -PACKAGE_ARCH = "${MACHINE_ARCH}" -BBCLASSEXTEND = "cross" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-bsp/u-boot/u-boot-fw-utils_2019.10.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-bsp/u-boot/u-boot-fw-utils_2019.10.bb new file mode 100644 index 00000000..04321b7b --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-bsp/u-boot/u-boot-fw-utils_2019.10.bb @@ -0,0 +1,36 @@ +require u-boot-common.inc + +SUMMARY = "U-Boot bootloader fw_printenv/setenv utilities" +DEPENDS += "mtd-utils" + +SRC_URI += "file://0001-include-env.h-Ensure-ulong-is-defined.patch" + +INSANE_SKIP_${PN} = "already-stripped" +EXTRA_OEMAKE_class-target = 'CROSS_COMPILE=${TARGET_PREFIX} CC="${CC} ${CFLAGS} ${LDFLAGS}" HOSTCC="${BUILD_CC} ${BUILD_CFLAGS} ${BUILD_LDFLAGS}" V=1' +EXTRA_OEMAKE_class-cross = 'HOSTCC="${CC} ${CFLAGS} ${LDFLAGS}" V=1' + +inherit uboot-config + +do_compile () { + oe_runmake ${UBOOT_MACHINE} + oe_runmake envtools +} + +do_install () { + install -d ${D}${base_sbindir} + install -d ${D}${sysconfdir} + install -m 755 ${S}/tools/env/fw_printenv ${D}${base_sbindir}/fw_printenv + install -m 755 ${S}/tools/env/fw_printenv ${D}${base_sbindir}/fw_setenv + install -m 0644 ${S}/tools/env/fw_env.config ${D}${sysconfdir}/fw_env.config +} + +do_install_class-cross () { + install -d ${D}${bindir_cross} + install -m 755 ${S}/tools/env/fw_printenv ${D}${bindir_cross}/fw_printenv + install -m 755 ${S}/tools/env/fw_printenv ${D}${bindir_cross}/fw_setenv +} + +SYSROOT_DIRS_append_class-cross = " ${bindir_cross}" + +PACKAGE_ARCH = "${MACHINE_ARCH}" +BBCLASSEXTEND = "cross" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-bsp/u-boot/u-boot-tools_2019.04.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-bsp/u-boot/u-boot-tools_2019.10.bb similarity index 100% rename from Contrib-Inspur/openbmc/poky/meta/recipes-bsp/u-boot/u-boot-tools_2019.04.bb rename to Contrib-Inspur/openbmc/poky/meta/recipes-bsp/u-boot/u-boot-tools_2019.10.bb diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-bsp/u-boot/u-boot_2019.04.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-bsp/u-boot/u-boot_2019.10.bb similarity index 100% rename from Contrib-Inspur/openbmc/poky/meta/recipes-bsp/u-boot/u-boot_2019.04.bb rename to Contrib-Inspur/openbmc/poky/meta/recipes-bsp/u-boot/u-boot_2019.10.bb diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-bsp/usbinit/usbinit.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-bsp/usbinit/usbinit.bb index aba44b40..ef98f0bf 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-bsp/usbinit/usbinit.bb +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-bsp/usbinit/usbinit.bb @@ -1,4 +1,8 @@ SUMMARY = "Initscript for enabling USB gadget Ethernet" +DESCRIPTION = "This module allows ethernet emulation over USB, allowing for \ +all sorts of nifty things like SSH and NFS in one go plus charging over the \ +same wire, at higher speeds than most Wifi connections." +HOMEPAGE = "http://linux-sunxi.org/USB_Gadget/Ethernet" LICENSE = "GPLv2" LIC_FILES_CHKSUM = "file://${WORKDIR}/COPYING.GPL;md5=751419260aa954499f7abaabaa882bbe" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-bsp/usbutils/usbutils_012.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-bsp/usbutils/usbutils_012.bb index 0213e7af..b670fa4a 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-bsp/usbutils/usbutils_012.bb +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-bsp/usbutils/usbutils_012.bb @@ -15,7 +15,7 @@ SRC_URI = "${KERNELORG_MIRROR}/linux/utils/usb/usbutils/usbutils-${PV}.tar.gz \ SRC_URI[md5sum] = "7484445cbcf04b3eacac892fe58f8d9f" SRC_URI[sha256sum] = "ae2e10aad530d95839b6f4d46cd41715eae6f0f1789310d793e9be21b3e7ae20" -inherit autotools pkgconfig distro_features_check update-alternatives +inherit autotools pkgconfig features_check update-alternatives ALTERNATIVE_${PN} = "lsusb" ALTERNATIVE_PRIORITY = "100" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-connectivity/avahi/avahi-ui_0.7.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-connectivity/avahi/avahi-ui_0.7.bb index a77653bf..1510a0ef 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-connectivity/avahi/avahi-ui_0.7.bb +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-connectivity/avahi/avahi-ui_0.7.bb @@ -1,6 +1,6 @@ require avahi.inc -inherit distro_features_check +inherit features_check ANY_OF_DISTRO_FEATURES = "${GTK3DISTROFEATURES}" DEPENDS += "avahi" @@ -20,7 +20,13 @@ FILES_avahi-discover = "${datadir}/applications/avahi-discover.desktop \ do_install_append () { rm ${D}${sysconfdir} -rf - rm ${D}${base_libdir} -rf + if ${@bb.utils.contains('DISTRO_FEATURES','usrmerge','true','false',d)}; then + if [ "${nonarch_base_libdir}" != "${base_libdir}" ];then + rm ${D}${nonarch_base_libdir} -rf + fi + else + rm ${D}${base_libdir} -rf + fi rm ${D}${systemd_unitdir} -rf # The ${systemd_unitdir} is /lib/systemd, so we need rmdir /lib, # but not ${base_libdir} here. And the /lib may not exist diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-connectivity/avahi/files/0001-Fix-opening-etc-resolv.conf-error.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-connectivity/avahi/files/0001-Fix-opening-etc-resolv.conf-error.patch index 11e7e8a9..cb8b83fd 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-connectivity/avahi/files/0001-Fix-opening-etc-resolv.conf-error.patch +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-connectivity/avahi/files/0001-Fix-opening-etc-resolv.conf-error.patch @@ -19,6 +19,11 @@ is marked as OE specific. Upstream-Status: Inappropriate [OE Specific] Signed-off-by: Chen Qi + +When connman installed to image, /etc/resolv.conf is link to +/etc/resolv-conf.connman. So launch avahi-daemon after connman too. + +Signed-off-by: Kai Kang --- avahi-daemon/avahi-daemon.service.in | 1 + 1 file changed, 1 insertion(+) @@ -31,7 +36,7 @@ index 548c834..63e28e4 100644 [Unit] Description=Avahi mDNS/DNS-SD Stack Requires=avahi-daemon.socket -+After=systemd-resolved.service ++After=systemd-resolved.service connman.service [Service] Type=dbus diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-connectivity/bind/bind/0001-bind-fix-CVE-2019-6471.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-connectivity/bind/bind/0001-bind-fix-CVE-2019-6471.patch new file mode 100644 index 00000000..2fed99e1 --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-connectivity/bind/bind/0001-bind-fix-CVE-2019-6471.patch @@ -0,0 +1,64 @@ +Backport patch to fix CVE-2019-6471. + +Ref: +https://security-tracker.debian.org/tracker/CVE-2019-6471 + +CVE: CVE-2019-6471 +Upstream-Status: Backport [https://gitlab.isc.org/isc-projects/bind9/commit/3a9c7bb] + +Signed-off-by: Kai Kang + +From 3a9c7bb80d4a609b86427406d9dd783199920b5b Mon Sep 17 00:00:00 2001 +From: Mark Andrews +Date: Tue, 19 Mar 2019 14:14:21 +1100 +Subject: [PATCH] move item_out test inside lock in dns_dispatch_getnext() + +(cherry picked from commit 60c42f849d520564ed42e5ed0ba46b4b69c07712) +--- + lib/dns/dispatch.c | 12 ++++++++---- + 1 file changed, 8 insertions(+), 4 deletions(-) + +diff --git a/lib/dns/dispatch.c b/lib/dns/dispatch.c +index 408beda367..3278db4a07 100644 +--- a/lib/dns/dispatch.c ++++ b/lib/dns/dispatch.c +@@ -134,7 +134,7 @@ struct dns_dispentry { + isc_task_t *task; + isc_taskaction_t action; + void *arg; +- bool item_out; ++ bool item_out; + dispsocket_t *dispsocket; + ISC_LIST(dns_dispatchevent_t) items; + ISC_LINK(dns_dispentry_t) link; +@@ -3422,13 +3422,14 @@ dns_dispatch_getnext(dns_dispentry_t *resp, dns_dispatchevent_t **sockevent) { + disp = resp->disp; + REQUIRE(VALID_DISPATCH(disp)); + +- REQUIRE(resp->item_out == true); +- resp->item_out = false; +- + ev = *sockevent; + *sockevent = NULL; + + LOCK(&disp->lock); ++ ++ REQUIRE(resp->item_out == true); ++ resp->item_out = false; ++ + if (ev->buffer.base != NULL) + free_buffer(disp, ev->buffer.base, ev->buffer.length); + free_devent(disp, ev); +@@ -3573,6 +3574,9 @@ dns_dispatch_removeresponse(dns_dispentry_t **resp, + isc_task_send(disp->task[0], &disp->ctlevent); + } + ++/* ++ * disp must be locked. ++ */ + static void + do_cancel(dns_dispatch_t *disp) { + dns_dispatchevent_t *ev; +-- +2.20.1 + diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-connectivity/bind/bind/0001-fix-enforcement-of-tcp-clients-v1.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-connectivity/bind/bind/0001-fix-enforcement-of-tcp-clients-v1.patch new file mode 100644 index 00000000..48ae125f --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-connectivity/bind/bind/0001-fix-enforcement-of-tcp-clients-v1.patch @@ -0,0 +1,60 @@ +Backport patch to fix CVE-2018-5743. + +Ref: +https://security-tracker.debian.org/tracker/CVE-2018-5743 + +CVE: CVE-2018-5743 +Upstream-Status: Backport [https://gitlab.isc.org/isc-projects/bind9/commit/ec2d50d] + +Signed-off-by: Kai Kang + +From ec2d50da8d81814640e28593d912f4b96c7efece Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Witold=20Kr=C4=99cicki?= +Date: Thu, 3 Jan 2019 14:17:43 +0100 +Subject: [PATCH 1/6] fix enforcement of tcp-clients (v1) + +tcp-clients settings could be exceeded in some cases by +creating more and more active TCP clients that are over +the set quota limit, which in the end could lead to a +DoS attack by e.g. exhaustion of file descriptors. + +If TCP client we're closing went over the quota (so it's +not attached to a quota) mark it as mortal - so that it +will be destroyed and not set up to listen for new +connections - unless it's the last client for a specific +interface. + +(cherry picked from commit f97131d21b97381cef72b971b157345c1f9b4115) +(cherry picked from commit 9689ffc485df8f971f0ad81ab8ab1f5389493776) +--- + bin/named/client.c | 13 ++++++++++++- + 1 file changed, 12 insertions(+), 1 deletion(-) + +diff --git a/bin/named/client.c b/bin/named/client.c +index d482da7121..0739dd48af 100644 +--- a/bin/named/client.c ++++ b/bin/named/client.c +@@ -421,8 +421,19 @@ exit_check(ns_client_t *client) { + isc_socket_detach(&client->tcpsocket); + } + +- if (client->tcpquota != NULL) ++ if (client->tcpquota != NULL) { + isc_quota_detach(&client->tcpquota); ++ } else { ++ /* ++ * We went over quota with this client, we don't ++ * want to restart listening unless this is the ++ * last client on this interface, which is ++ * checked later. ++ */ ++ if (TCP_CLIENT(client)) { ++ client->mortal = true; ++ } ++ } + + if (client->timerset) { + (void)isc_timer_reset(client->timer, +-- +2.20.1 + diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-connectivity/bind/bind/0002-tcp-clients-could-still-be-exceeded-v2.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-connectivity/bind/bind/0002-tcp-clients-could-still-be-exceeded-v2.patch new file mode 100644 index 00000000..ca4e8b1a --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-connectivity/bind/bind/0002-tcp-clients-could-still-be-exceeded-v2.patch @@ -0,0 +1,670 @@ +Backport patch to fix CVE-2018-5743. + +Ref: +https://security-tracker.debian.org/tracker/CVE-2018-5743 + +CVE: CVE-2018-5743 +Upstream-Status: Backport [https://gitlab.isc.org/isc-projects/bind9/commit/719f604] + +Signed-off-by: Kai Kang + +From 719f604e3fad5b7479bd14e2fa0ef4413f0a8fdc Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Witold=20Kr=C4=99cicki?= +Date: Fri, 4 Jan 2019 12:50:51 +0100 +Subject: [PATCH 2/6] tcp-clients could still be exceeded (v2) + +the TCP client quota could still be ineffective under some +circumstances. this change: + +- improves quota accounting to ensure that TCP clients are + properly limited, while still guaranteeing that at least one client + is always available to serve TCP connections on each interface. +- uses more descriptive names and removes one (ntcptarget) that + was no longer needed +- adds comments + +(cherry picked from commit 924651f1d5e605cd186d03f4f7340bcc54d77cc2) +(cherry picked from commit 55a7a458e30e47874d34bdf1079eb863a0512396) +--- + bin/named/client.c | 311 ++++++++++++++++++++----- + bin/named/include/named/client.h | 14 +- + bin/named/include/named/interfacemgr.h | 11 +- + bin/named/interfacemgr.c | 8 +- + 4 files changed, 267 insertions(+), 77 deletions(-) + +diff --git a/bin/named/client.c b/bin/named/client.c +index 0739dd48af..a7b49a0f71 100644 +--- a/bin/named/client.c ++++ b/bin/named/client.c +@@ -246,10 +246,11 @@ static void ns_client_dumpmessage(ns_client_t *client, const char *reason); + static isc_result_t get_client(ns_clientmgr_t *manager, ns_interface_t *ifp, + dns_dispatch_t *disp, bool tcp); + static isc_result_t get_worker(ns_clientmgr_t *manager, ns_interface_t *ifp, +- isc_socket_t *sock); ++ isc_socket_t *sock, ns_client_t *oldclient); + static inline bool +-allowed(isc_netaddr_t *addr, dns_name_t *signer, isc_netaddr_t *ecs_addr, +- uint8_t ecs_addrlen, uint8_t *ecs_scope, dns_acl_t *acl); ++allowed(isc_netaddr_t *addr, dns_name_t *signer, ++ isc_netaddr_t *ecs_addr, uint8_t ecs_addrlen, ++ uint8_t *ecs_scope, dns_acl_t *acl) + static void compute_cookie(ns_client_t *client, uint32_t when, + uint32_t nonce, const unsigned char *secret, + isc_buffer_t *buf); +@@ -405,8 +406,11 @@ exit_check(ns_client_t *client) { + */ + INSIST(client->recursionquota == NULL); + INSIST(client->newstate <= NS_CLIENTSTATE_READY); +- if (client->nreads > 0) ++ ++ if (client->nreads > 0) { + dns_tcpmsg_cancelread(&client->tcpmsg); ++ } ++ + if (client->nreads != 0) { + /* Still waiting for read cancel completion. */ + return (true); +@@ -416,25 +420,58 @@ exit_check(ns_client_t *client) { + dns_tcpmsg_invalidate(&client->tcpmsg); + client->tcpmsg_valid = false; + } ++ + if (client->tcpsocket != NULL) { + CTRACE("closetcp"); + isc_socket_detach(&client->tcpsocket); ++ ++ if (client->tcpactive) { ++ LOCK(&client->interface->lock); ++ INSIST(client->interface->ntcpactive > 0); ++ client->interface->ntcpactive--; ++ UNLOCK(&client->interface->lock); ++ client->tcpactive = false; ++ } + } + + if (client->tcpquota != NULL) { +- isc_quota_detach(&client->tcpquota); +- } else { + /* +- * We went over quota with this client, we don't +- * want to restart listening unless this is the +- * last client on this interface, which is +- * checked later. ++ * If we are not in a pipeline group, or ++ * we are the last client in the group, detach from ++ * tcpquota; otherwise, transfer the quota to ++ * another client in the same group. + */ +- if (TCP_CLIENT(client)) { +- client->mortal = true; ++ if (!ISC_LINK_LINKED(client, glink) || ++ (client->glink.next == NULL && ++ client->glink.prev == NULL)) ++ { ++ isc_quota_detach(&client->tcpquota); ++ } else if (client->glink.next != NULL) { ++ INSIST(client->glink.next->tcpquota == NULL); ++ client->glink.next->tcpquota = client->tcpquota; ++ client->tcpquota = NULL; ++ } else { ++ INSIST(client->glink.prev->tcpquota == NULL); ++ client->glink.prev->tcpquota = client->tcpquota; ++ client->tcpquota = NULL; + } + } + ++ /* ++ * Unlink from pipeline group. ++ */ ++ if (ISC_LINK_LINKED(client, glink)) { ++ if (client->glink.next != NULL) { ++ client->glink.next->glink.prev = ++ client->glink.prev; ++ } ++ if (client->glink.prev != NULL) { ++ client->glink.prev->glink.next = ++ client->glink.next; ++ } ++ ISC_LINK_INIT(client, glink); ++ } ++ + if (client->timerset) { + (void)isc_timer_reset(client->timer, + isc_timertype_inactive, +@@ -455,15 +492,16 @@ exit_check(ns_client_t *client) { + * that already. Check whether this client needs to remain + * active and force it to go inactive if not. + * +- * UDP clients go inactive at this point, but TCP clients +- * may remain active if we have fewer active TCP client +- * objects than desired due to an earlier quota exhaustion. ++ * UDP clients go inactive at this point, but a TCP client ++ * will needs to remain active if no other clients are ++ * listening for TCP requests on this interface, to ++ * prevent this interface from going nonresponsive. + */ + if (client->mortal && TCP_CLIENT(client) && !ns_g_clienttest) { + LOCK(&client->interface->lock); +- if (client->interface->ntcpcurrent < +- client->interface->ntcptarget) ++ if (client->interface->ntcpaccepting == 0) { + client->mortal = false; ++ } + UNLOCK(&client->interface->lock); + } + +@@ -472,15 +510,17 @@ exit_check(ns_client_t *client) { + * queue for recycling. + */ + if (client->mortal) { +- if (client->newstate > NS_CLIENTSTATE_INACTIVE) ++ if (client->newstate > NS_CLIENTSTATE_INACTIVE) { + client->newstate = NS_CLIENTSTATE_INACTIVE; ++ } + } + + if (NS_CLIENTSTATE_READY == client->newstate) { + if (TCP_CLIENT(client)) { + client_accept(client); +- } else ++ } else { + client_udprecv(client); ++ } + client->newstate = NS_CLIENTSTATE_MAX; + return (true); + } +@@ -492,41 +532,57 @@ exit_check(ns_client_t *client) { + /* + * We are trying to enter the inactive state. + */ +- if (client->naccepts > 0) ++ if (client->naccepts > 0) { + isc_socket_cancel(client->tcplistener, client->task, + ISC_SOCKCANCEL_ACCEPT); ++ } + + /* Still waiting for accept cancel completion. */ +- if (! (client->naccepts == 0)) ++ if (! (client->naccepts == 0)) { + return (true); ++ } + + /* Accept cancel is complete. */ +- if (client->nrecvs > 0) ++ if (client->nrecvs > 0) { + isc_socket_cancel(client->udpsocket, client->task, + ISC_SOCKCANCEL_RECV); ++ } + + /* Still waiting for recv cancel completion. */ +- if (! (client->nrecvs == 0)) ++ if (! (client->nrecvs == 0)) { + return (true); ++ } + + /* Still waiting for control event to be delivered */ +- if (client->nctls > 0) ++ if (client->nctls > 0) { + return (true); +- +- /* Deactivate the client. */ +- if (client->interface) +- ns_interface_detach(&client->interface); ++ } + + INSIST(client->naccepts == 0); + INSIST(client->recursionquota == NULL); +- if (client->tcplistener != NULL) ++ if (client->tcplistener != NULL) { + isc_socket_detach(&client->tcplistener); + +- if (client->udpsocket != NULL) ++ if (client->tcpactive) { ++ LOCK(&client->interface->lock); ++ INSIST(client->interface->ntcpactive > 0); ++ client->interface->ntcpactive--; ++ UNLOCK(&client->interface->lock); ++ client->tcpactive = false; ++ } ++ } ++ if (client->udpsocket != NULL) { + isc_socket_detach(&client->udpsocket); ++ } + +- if (client->dispatch != NULL) ++ /* Deactivate the client. */ ++ if (client->interface != NULL) { ++ ns_interface_detach(&client->interface); ++ } ++ ++ if (client->dispatch != NULL) { + dns_dispatch_detach(&client->dispatch); ++ } + + client->attributes = 0; + client->mortal = false; +@@ -551,10 +607,13 @@ exit_check(ns_client_t *client) { + client->newstate = NS_CLIENTSTATE_MAX; + if (!ns_g_clienttest && manager != NULL && + !manager->exiting) ++ { + ISC_QUEUE_PUSH(manager->inactive, client, + ilink); +- if (client->needshutdown) ++ } ++ if (client->needshutdown) { + isc_task_shutdown(client->task); ++ } + return (true); + } + } +@@ -675,7 +734,6 @@ client_start(isc_task_t *task, isc_event_t *event) { + } + } + +- + /*% + * The client's task has received a shutdown event. + */ +@@ -2507,17 +2565,12 @@ client_request(isc_task_t *task, isc_event_t *event) { + /* + * Pipeline TCP query processing. + */ +- if (client->message->opcode != dns_opcode_query) ++ if (client->message->opcode != dns_opcode_query) { + client->pipelined = false; ++ } + if (TCP_CLIENT(client) && client->pipelined) { +- result = isc_quota_reserve(&ns_g_server->tcpquota); +- if (result == ISC_R_SUCCESS) +- result = ns_client_replace(client); ++ result = ns_client_replace(client); + if (result != ISC_R_SUCCESS) { +- ns_client_log(client, NS_LOGCATEGORY_CLIENT, +- NS_LOGMODULE_CLIENT, ISC_LOG_WARNING, +- "no more TCP clients(read): %s", +- isc_result_totext(result)); + client->pipelined = false; + } + } +@@ -3087,6 +3140,7 @@ client_create(ns_clientmgr_t *manager, ns_client_t **clientp) { + client->filter_aaaa = dns_aaaa_ok; + #endif + client->needshutdown = ns_g_clienttest; ++ client->tcpactive = false; + + ISC_EVENT_INIT(&client->ctlevent, sizeof(client->ctlevent), 0, NULL, + NS_EVENT_CLIENTCONTROL, client_start, client, client, +@@ -3100,6 +3154,7 @@ client_create(ns_clientmgr_t *manager, ns_client_t **clientp) { + client->formerrcache.id = 0; + ISC_LINK_INIT(client, link); + ISC_LINK_INIT(client, rlink); ++ ISC_LINK_INIT(client, glink); + ISC_QLINK_INIT(client, ilink); + client->keytag = NULL; + client->keytag_len = 0; +@@ -3193,12 +3248,19 @@ client_newconn(isc_task_t *task, isc_event_t *event) { + + INSIST(client->state == NS_CLIENTSTATE_READY); + ++ /* ++ * The accept() was successful and we're now establishing a new ++ * connection. We need to make note of it in the client and ++ * interface objects so client objects can do the right thing ++ * when going inactive in exit_check() (see comments in ++ * client_accept() for details). ++ */ + INSIST(client->naccepts == 1); + client->naccepts--; + + LOCK(&client->interface->lock); +- INSIST(client->interface->ntcpcurrent > 0); +- client->interface->ntcpcurrent--; ++ INSIST(client->interface->ntcpaccepting > 0); ++ client->interface->ntcpaccepting--; + UNLOCK(&client->interface->lock); + + /* +@@ -3232,6 +3294,9 @@ client_newconn(isc_task_t *task, isc_event_t *event) { + NS_LOGMODULE_CLIENT, ISC_LOG_DEBUG(3), + "accept failed: %s", + isc_result_totext(nevent->result)); ++ if (client->tcpquota != NULL) { ++ isc_quota_detach(&client->tcpquota); ++ } + } + + if (exit_check(client)) +@@ -3270,18 +3335,12 @@ client_newconn(isc_task_t *task, isc_event_t *event) { + * deny service to legitimate TCP clients. + */ + client->pipelined = false; +- result = isc_quota_attach(&ns_g_server->tcpquota, +- &client->tcpquota); +- if (result == ISC_R_SUCCESS) +- result = ns_client_replace(client); +- if (result != ISC_R_SUCCESS) { +- ns_client_log(client, NS_LOGCATEGORY_CLIENT, +- NS_LOGMODULE_CLIENT, ISC_LOG_WARNING, +- "no more TCP clients(accept): %s", +- isc_result_totext(result)); +- } else if (ns_g_server->keepresporder == NULL || +- !allowed(&netaddr, NULL, NULL, 0, NULL, +- ns_g_server->keepresporder)) { ++ result = ns_client_replace(client); ++ if (result == ISC_R_SUCCESS && ++ (client->sctx->keepresporder == NULL || ++ !allowed(&netaddr, NULL, NULL, 0, NULL, ++ ns_g_server->keepresporder))) ++ { + client->pipelined = true; + } + +@@ -3298,12 +3357,80 @@ client_accept(ns_client_t *client) { + + CTRACE("accept"); + ++ /* ++ * The tcpquota object can only be simultaneously referenced a ++ * pre-defined number of times; this is configured by 'tcp-clients' ++ * in named.conf. If we can't attach to it here, that means the TCP ++ * client quota has been exceeded. ++ */ ++ result = isc_quota_attach(&client->sctx->tcpquota, ++ &client->tcpquota); ++ if (result != ISC_R_SUCCESS) { ++ bool exit; ++ ++ ns_client_log(client, NS_LOGCATEGORY_CLIENT, ++ NS_LOGMODULE_CLIENT, ISC_LOG_DEBUG(1), ++ "no more TCP clients: %s", ++ isc_result_totext(result)); ++ ++ /* ++ * We have exceeded the system-wide TCP client ++ * quota. But, we can't just block this accept ++ * in all cases, because if we did, a heavy TCP ++ * load on other interfaces might cause this ++ * interface to be starved, with no clients able ++ * to accept new connections. ++ * ++ * So, we check here to see if any other client ++ * is already servicing TCP queries on this ++ * interface (whether accepting, reading, or ++ * processing). ++ * ++ * If so, then it's okay *not* to call ++ * accept - we can let this client to go inactive ++ * and the other one handle the next connection ++ * when it's ready. ++ * ++ * But if not, then we need to be a little bit ++ * flexible about the quota. We allow *one* extra ++ * TCP client through, to ensure we're listening on ++ * every interface. ++ * ++ * (Note: In practice this means that the *real* ++ * TCP client quota is tcp-clients plus the number ++ * of interfaces.) ++ */ ++ LOCK(&client->interface->lock); ++ exit = (client->interface->ntcpactive > 0); ++ UNLOCK(&client->interface->lock); ++ ++ if (exit) { ++ client->newstate = NS_CLIENTSTATE_INACTIVE; ++ (void)exit_check(client); ++ return; ++ } ++ } ++ ++ /* ++ * By incrementing the interface's ntcpactive counter we signal ++ * that there is at least one client servicing TCP queries for the ++ * interface. ++ * ++ * We also make note of the fact in the client itself with the ++ * tcpactive flag. This ensures proper accounting by preventing ++ * us from accidentally incrementing or decrementing ntcpactive ++ * more than once per client object. ++ */ ++ if (!client->tcpactive) { ++ LOCK(&client->interface->lock); ++ client->interface->ntcpactive++; ++ UNLOCK(&client->interface->lock); ++ client->tcpactive = true; ++ } ++ + result = isc_socket_accept(client->tcplistener, client->task, + client_newconn, client); + if (result != ISC_R_SUCCESS) { +- UNEXPECTED_ERROR(__FILE__, __LINE__, +- "isc_socket_accept() failed: %s", +- isc_result_totext(result)); + /* + * XXXRTH What should we do? We're trying to accept but + * it didn't work. If we just give up, then TCP +@@ -3311,12 +3438,39 @@ client_accept(ns_client_t *client) { + * + * For now, we just go idle. + */ ++ UNEXPECTED_ERROR(__FILE__, __LINE__, ++ "isc_socket_accept() failed: %s", ++ isc_result_totext(result)); ++ if (client->tcpquota != NULL) { ++ isc_quota_detach(&client->tcpquota); ++ } + return; + } ++ ++ /* ++ * The client's 'naccepts' counter indicates that this client has ++ * called accept() and is waiting for a new connection. It should ++ * never exceed 1. ++ */ + INSIST(client->naccepts == 0); + client->naccepts++; ++ ++ /* ++ * The interface's 'ntcpaccepting' counter is incremented when ++ * any client calls accept(), and decremented in client_newconn() ++ * once the connection is established. ++ * ++ * When the client object is shutting down after handling a TCP ++ * request (see exit_check()), it looks to see whether this value is ++ * non-zero. If so, that means another client has already called ++ * accept() and is waiting to establish the next connection, which ++ * means the first client is free to go inactive. Otherwise, ++ * the first client must come back and call accept() again; this ++ * guarantees there will always be at least one client listening ++ * for new TCP connections on each interface. ++ */ + LOCK(&client->interface->lock); +- client->interface->ntcpcurrent++; ++ client->interface->ntcpaccepting++; + UNLOCK(&client->interface->lock); + } + +@@ -3390,13 +3544,14 @@ ns_client_replace(ns_client_t *client) { + tcp = TCP_CLIENT(client); + if (tcp && client->pipelined) { + result = get_worker(client->manager, client->interface, +- client->tcpsocket); ++ client->tcpsocket, client); + } else { + result = get_client(client->manager, client->interface, + client->dispatch, tcp); + } +- if (result != ISC_R_SUCCESS) ++ if (result != ISC_R_SUCCESS) { + return (result); ++ } + + /* + * The responsibility for listening for new requests is hereby +@@ -3585,6 +3740,7 @@ get_client(ns_clientmgr_t *manager, ns_interface_t *ifp, + client->attributes |= NS_CLIENTATTR_TCP; + isc_socket_attach(ifp->tcpsocket, + &client->tcplistener); ++ + } else { + isc_socket_t *sock; + +@@ -3602,7 +3758,8 @@ get_client(ns_clientmgr_t *manager, ns_interface_t *ifp, + } + + static isc_result_t +-get_worker(ns_clientmgr_t *manager, ns_interface_t *ifp, isc_socket_t *sock) ++get_worker(ns_clientmgr_t *manager, ns_interface_t *ifp, isc_socket_t *sock, ++ ns_client_t *oldclient) + { + isc_result_t result = ISC_R_SUCCESS; + isc_event_t *ev; +@@ -3610,6 +3767,7 @@ get_worker(ns_clientmgr_t *manager, ns_interface_t *ifp, isc_socket_t *sock) + MTRACE("get worker"); + + REQUIRE(manager != NULL); ++ REQUIRE(oldclient != NULL); + + if (manager->exiting) + return (ISC_R_SHUTTINGDOWN); +@@ -3642,7 +3800,28 @@ get_worker(ns_clientmgr_t *manager, ns_interface_t *ifp, isc_socket_t *sock) + ns_interface_attach(ifp, &client->interface); + client->newstate = client->state = NS_CLIENTSTATE_WORKING; + INSIST(client->recursionquota == NULL); +- client->tcpquota = &ns_g_server->tcpquota; ++ ++ /* ++ * Transfer TCP quota to the new client. ++ */ ++ INSIST(client->tcpquota == NULL); ++ INSIST(oldclient->tcpquota != NULL); ++ client->tcpquota = oldclient->tcpquota; ++ oldclient->tcpquota = NULL; ++ ++ /* ++ * Link to a pipeline group, creating it if needed. ++ */ ++ if (!ISC_LINK_LINKED(oldclient, glink)) { ++ oldclient->glink.next = NULL; ++ oldclient->glink.prev = NULL; ++ } ++ client->glink.next = oldclient->glink.next; ++ client->glink.prev = oldclient; ++ if (oldclient->glink.next != NULL) { ++ oldclient->glink.next->glink.prev = client; ++ } ++ oldclient->glink.next = client; + + client->dscp = ifp->dscp; + +@@ -3656,6 +3835,12 @@ get_worker(ns_clientmgr_t *manager, ns_interface_t *ifp, isc_socket_t *sock) + (void)isc_socket_getpeername(client->tcpsocket, &client->peeraddr); + client->peeraddr_valid = true; + ++ LOCK(&client->interface->lock); ++ client->interface->ntcpactive++; ++ UNLOCK(&client->interface->lock); ++ ++ client->tcpactive = true; ++ + INSIST(client->tcpmsg_valid == false); + dns_tcpmsg_init(client->mctx, client->tcpsocket, &client->tcpmsg); + client->tcpmsg_valid = true; +diff --git a/bin/named/include/named/client.h b/bin/named/include/named/client.h +index b23a7b191d..1f7973f9c5 100644 +--- a/bin/named/include/named/client.h ++++ b/bin/named/include/named/client.h +@@ -94,7 +94,8 @@ struct ns_client { + int nupdates; + int nctls; + int references; +- bool needshutdown; /* ++ bool tcpactive; ++ bool needshutdown; /* + * Used by clienttest to get + * the client to go from + * inactive to free state +@@ -130,9 +131,9 @@ struct ns_client { + isc_stdtime_t now; + isc_time_t tnow; + dns_name_t signername; /*%< [T]SIG key name */ +- dns_name_t * signer; /*%< NULL if not valid sig */ +- bool mortal; /*%< Die after handling request */ +- bool pipelined; /*%< TCP queries not in sequence */ ++ dns_name_t *signer; /*%< NULL if not valid sig */ ++ bool mortal; /*%< Die after handling request */ ++ bool pipelined; /*%< TCP queries not in sequence */ + isc_quota_t *tcpquota; + isc_quota_t *recursionquota; + ns_interface_t *interface; +@@ -143,8 +144,8 @@ struct ns_client { + isc_sockaddr_t destsockaddr; + + isc_netaddr_t ecs_addr; /*%< EDNS client subnet */ +- uint8_t ecs_addrlen; +- uint8_t ecs_scope; ++ uint8_t ecs_addrlen; ++ uint8_t ecs_scope; + + struct in6_pktinfo pktinfo; + isc_dscp_t dscp; +@@ -166,6 +167,7 @@ struct ns_client { + + ISC_LINK(ns_client_t) link; + ISC_LINK(ns_client_t) rlink; ++ ISC_LINK(ns_client_t) glink; + ISC_QLINK(ns_client_t) ilink; + unsigned char cookie[8]; + uint32_t expire; +diff --git a/bin/named/include/named/interfacemgr.h b/bin/named/include/named/interfacemgr.h +index 7d1883e1e8..61b08826a6 100644 +--- a/bin/named/include/named/interfacemgr.h ++++ b/bin/named/include/named/interfacemgr.h +@@ -77,9 +77,14 @@ struct ns_interface { + /*%< UDP dispatchers. */ + isc_socket_t * tcpsocket; /*%< TCP socket. */ + isc_dscp_t dscp; /*%< "listen-on" DSCP value */ +- int ntcptarget; /*%< Desired number of concurrent +- TCP accepts */ +- int ntcpcurrent; /*%< Current ditto, locked */ ++ int ntcpaccepting; /*%< Number of clients ++ ready to accept new ++ TCP connections on this ++ interface */ ++ int ntcpactive; /*%< Number of clients ++ servicing TCP queries ++ (whether accepting or ++ connected) */ + int nudpdispatch; /*%< Number of UDP dispatches */ + ns_clientmgr_t * clientmgr; /*%< Client manager. */ + ISC_LINK(ns_interface_t) link; +diff --git a/bin/named/interfacemgr.c b/bin/named/interfacemgr.c +index 419927bf54..955096ef47 100644 +--- a/bin/named/interfacemgr.c ++++ b/bin/named/interfacemgr.c +@@ -386,8 +386,8 @@ ns_interface_create(ns_interfacemgr_t *mgr, isc_sockaddr_t *addr, + * connections will be handled in parallel even though there is + * only one client initially. + */ +- ifp->ntcptarget = 1; +- ifp->ntcpcurrent = 0; ++ ifp->ntcpaccepting = 0; ++ ifp->ntcpactive = 0; + ifp->nudpdispatch = 0; + + ifp->dscp = -1; +@@ -522,9 +522,7 @@ ns_interface_accepttcp(ns_interface_t *ifp) { + */ + (void)isc_socket_filter(ifp->tcpsocket, "dataready"); + +- result = ns_clientmgr_createclients(ifp->clientmgr, +- ifp->ntcptarget, ifp, +- true); ++ result = ns_clientmgr_createclients(ifp->clientmgr, 1, ifp, true); + if (result != ISC_R_SUCCESS) { + UNEXPECTED_ERROR(__FILE__, __LINE__, + "TCP ns_clientmgr_createclients(): %s", +-- +2.20.1 + diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-connectivity/bind/bind/0003-use-reference-counter-for-pipeline-groups-v3.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-connectivity/bind/bind/0003-use-reference-counter-for-pipeline-groups-v3.patch new file mode 100644 index 00000000..032cfb8c --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-connectivity/bind/bind/0003-use-reference-counter-for-pipeline-groups-v3.patch @@ -0,0 +1,278 @@ +Backport patch to fix CVE-2018-5743. + +Ref: +https://security-tracker.debian.org/tracker/CVE-2018-5743 + +CVE: CVE-2018-5743 +Upstream-Status: Backport [https://gitlab.isc.org/isc-projects/bind9/commit/366b4e1] + +Signed-off-by: Kai Kang + +From 366b4e1ede8aed690e981e07137cb1cb77879c36 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Micha=C5=82=20K=C4=99pie=C5=84?= +Date: Thu, 17 Jan 2019 15:53:38 +0100 +Subject: [PATCH 3/6] use reference counter for pipeline groups (v3) + +Track pipeline groups using a shared reference counter +instead of a linked list. + +(cherry picked from commit 513afd33eb17d5dc41a3f0d2d38204ef8c5f6f91) +(cherry picked from commit 9446629b730c59c4215f08d37fbaf810282fbccb) +--- + bin/named/client.c | 171 ++++++++++++++++++++----------- + bin/named/include/named/client.h | 2 +- + 2 files changed, 110 insertions(+), 63 deletions(-) + +diff --git a/bin/named/client.c b/bin/named/client.c +index a7b49a0f71..277656cef0 100644 +--- a/bin/named/client.c ++++ b/bin/named/client.c +@@ -299,6 +299,75 @@ ns_client_settimeout(ns_client_t *client, unsigned int seconds) { + } + } + ++/*% ++ * Allocate a reference counter that will track the number of client structures ++ * using the TCP connection that 'client' called accept() for. This counter ++ * will be shared between all client structures associated with this TCP ++ * connection. ++ */ ++static void ++pipeline_init(ns_client_t *client) { ++ isc_refcount_t *refs; ++ ++ REQUIRE(client->pipeline_refs == NULL); ++ ++ /* ++ * A global memory context is used for the allocation as different ++ * client structures may have different memory contexts assigned and a ++ * reference counter allocated here might need to be freed by a ++ * different client. The performance impact caused by memory context ++ * contention here is expected to be negligible, given that this code ++ * is only executed for TCP connections. ++ */ ++ refs = isc_mem_allocate(client->sctx->mctx, sizeof(*refs)); ++ isc_refcount_init(refs, 1); ++ client->pipeline_refs = refs; ++} ++ ++/*% ++ * Increase the count of client structures using the TCP connection that ++ * 'source' is associated with and put a pointer to that count in 'target', ++ * thus associating it with the same TCP connection. ++ */ ++static void ++pipeline_attach(ns_client_t *source, ns_client_t *target) { ++ int old_refs; ++ ++ REQUIRE(source->pipeline_refs != NULL); ++ REQUIRE(target->pipeline_refs == NULL); ++ ++ old_refs = isc_refcount_increment(source->pipeline_refs); ++ INSIST(old_refs > 0); ++ target->pipeline_refs = source->pipeline_refs; ++} ++ ++/*% ++ * Decrease the count of client structures using the TCP connection that ++ * 'client' is associated with. If this is the last client using this TCP ++ * connection, free the reference counter and return true; otherwise, return ++ * false. ++ */ ++static bool ++pipeline_detach(ns_client_t *client) { ++ isc_refcount_t *refs; ++ int old_refs; ++ ++ REQUIRE(client->pipeline_refs != NULL); ++ ++ refs = client->pipeline_refs; ++ client->pipeline_refs = NULL; ++ ++ old_refs = isc_refcount_decrement(refs); ++ INSIST(old_refs > 0); ++ ++ if (old_refs == 1) { ++ isc_mem_free(client->sctx->mctx, refs); ++ return (true); ++ } ++ ++ return (false); ++} ++ + /*% + * Check for a deactivation or shutdown request and take appropriate + * action. Returns true if either is in progress; in this case +@@ -421,6 +490,40 @@ exit_check(ns_client_t *client) { + client->tcpmsg_valid = false; + } + ++ if (client->tcpquota != NULL) { ++ if (client->pipeline_refs == NULL || ++ pipeline_detach(client)) ++ { ++ /* ++ * Only detach from the TCP client quota if ++ * there are no more client structures using ++ * this TCP connection. ++ * ++ * Note that we check 'pipeline_refs' and not ++ * 'pipelined' because in some cases (e.g. ++ * after receiving a request with an opcode ++ * different than QUERY) 'pipelined' is set to ++ * false after the reference counter gets ++ * allocated in pipeline_init() and we must ++ * still drop our reference as failing to do so ++ * would prevent the reference counter itself ++ * from being freed. ++ */ ++ isc_quota_detach(&client->tcpquota); ++ } else { ++ /* ++ * There are other client structures using this ++ * TCP connection, so we cannot detach from the ++ * TCP client quota to prevent excess TCP ++ * connections from being accepted. However, ++ * this client structure might later be reused ++ * for accepting new connections and thus must ++ * have its 'tcpquota' field set to NULL. ++ */ ++ client->tcpquota = NULL; ++ } ++ } ++ + if (client->tcpsocket != NULL) { + CTRACE("closetcp"); + isc_socket_detach(&client->tcpsocket); +@@ -434,44 +537,6 @@ exit_check(ns_client_t *client) { + } + } + +- if (client->tcpquota != NULL) { +- /* +- * If we are not in a pipeline group, or +- * we are the last client in the group, detach from +- * tcpquota; otherwise, transfer the quota to +- * another client in the same group. +- */ +- if (!ISC_LINK_LINKED(client, glink) || +- (client->glink.next == NULL && +- client->glink.prev == NULL)) +- { +- isc_quota_detach(&client->tcpquota); +- } else if (client->glink.next != NULL) { +- INSIST(client->glink.next->tcpquota == NULL); +- client->glink.next->tcpquota = client->tcpquota; +- client->tcpquota = NULL; +- } else { +- INSIST(client->glink.prev->tcpquota == NULL); +- client->glink.prev->tcpquota = client->tcpquota; +- client->tcpquota = NULL; +- } +- } +- +- /* +- * Unlink from pipeline group. +- */ +- if (ISC_LINK_LINKED(client, glink)) { +- if (client->glink.next != NULL) { +- client->glink.next->glink.prev = +- client->glink.prev; +- } +- if (client->glink.prev != NULL) { +- client->glink.prev->glink.next = +- client->glink.next; +- } +- ISC_LINK_INIT(client, glink); +- } +- + if (client->timerset) { + (void)isc_timer_reset(client->timer, + isc_timertype_inactive, +@@ -3130,6 +3195,7 @@ client_create(ns_clientmgr_t *manager, ns_client_t **clientp) { + dns_name_init(&client->signername, NULL); + client->mortal = false; + client->pipelined = false; ++ client->pipeline_refs = NULL; + client->tcpquota = NULL; + client->recursionquota = NULL; + client->interface = NULL; +@@ -3154,7 +3220,6 @@ client_create(ns_clientmgr_t *manager, ns_client_t **clientp) { + client->formerrcache.id = 0; + ISC_LINK_INIT(client, link); + ISC_LINK_INIT(client, rlink); +- ISC_LINK_INIT(client, glink); + ISC_QLINK_INIT(client, ilink); + client->keytag = NULL; + client->keytag_len = 0; +@@ -3341,6 +3406,7 @@ client_newconn(isc_task_t *task, isc_event_t *event) { + !allowed(&netaddr, NULL, NULL, 0, NULL, + ns_g_server->keepresporder))) + { ++ pipeline_init(client); + client->pipelined = true; + } + +@@ -3800,35 +3866,16 @@ get_worker(ns_clientmgr_t *manager, ns_interface_t *ifp, isc_socket_t *sock, + ns_interface_attach(ifp, &client->interface); + client->newstate = client->state = NS_CLIENTSTATE_WORKING; + INSIST(client->recursionquota == NULL); +- +- /* +- * Transfer TCP quota to the new client. +- */ +- INSIST(client->tcpquota == NULL); +- INSIST(oldclient->tcpquota != NULL); +- client->tcpquota = oldclient->tcpquota; +- oldclient->tcpquota = NULL; +- +- /* +- * Link to a pipeline group, creating it if needed. +- */ +- if (!ISC_LINK_LINKED(oldclient, glink)) { +- oldclient->glink.next = NULL; +- oldclient->glink.prev = NULL; +- } +- client->glink.next = oldclient->glink.next; +- client->glink.prev = oldclient; +- if (oldclient->glink.next != NULL) { +- oldclient->glink.next->glink.prev = client; +- } +- oldclient->glink.next = client; ++ client->tcpquota = &client->sctx->tcpquota; + + client->dscp = ifp->dscp; + + client->attributes |= NS_CLIENTATTR_TCP; +- client->pipelined = true; + client->mortal = true; + ++ pipeline_attach(oldclient, client); ++ client->pipelined = true; ++ + isc_socket_attach(ifp->tcpsocket, &client->tcplistener); + isc_socket_attach(sock, &client->tcpsocket); + isc_socket_setname(client->tcpsocket, "worker-tcp", NULL); +diff --git a/bin/named/include/named/client.h b/bin/named/include/named/client.h +index 1f7973f9c5..aeed9ccdda 100644 +--- a/bin/named/include/named/client.h ++++ b/bin/named/include/named/client.h +@@ -134,6 +134,7 @@ struct ns_client { + dns_name_t *signer; /*%< NULL if not valid sig */ + bool mortal; /*%< Die after handling request */ + bool pipelined; /*%< TCP queries not in sequence */ ++ isc_refcount_t *pipeline_refs; + isc_quota_t *tcpquota; + isc_quota_t *recursionquota; + ns_interface_t *interface; +@@ -167,7 +168,6 @@ struct ns_client { + + ISC_LINK(ns_client_t) link; + ISC_LINK(ns_client_t) rlink; +- ISC_LINK(ns_client_t) glink; + ISC_QLINK(ns_client_t) ilink; + unsigned char cookie[8]; + uint32_t expire; +-- +2.20.1 + diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-connectivity/bind/bind/0004-better-tcpquota-accounting-and-client-mortality-chec.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-connectivity/bind/bind/0004-better-tcpquota-accounting-and-client-mortality-chec.patch new file mode 100644 index 00000000..034ab133 --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-connectivity/bind/bind/0004-better-tcpquota-accounting-and-client-mortality-chec.patch @@ -0,0 +1,512 @@ +Backport patch to fix CVE-2018-5743. + +Ref: +https://security-tracker.debian.org/tracker/CVE-2018-5743 + +CVE: CVE-2018-5743 +Upstream-Status: Backport [https://gitlab.isc.org/isc-projects/bind9/commit/2ab8a08] + +Signed-off-by: Kai Kang + +From 2ab8a085b3c666f28f1f9229bd6ecb59915b26c3 Mon Sep 17 00:00:00 2001 +From: Evan Hunt +Date: Fri, 5 Apr 2019 16:12:18 -0700 +Subject: [PATCH 4/6] better tcpquota accounting and client mortality checks + +- ensure that tcpactive is cleaned up correctly when accept() fails. +- set 'client->tcpattached' when the client is attached to the tcpquota. + carry this value on to new clients sharing the same pipeline group. + don't call isc_quota_detach() on the tcpquota unless tcpattached is + set. this way clients that were allowed to accept TCP connections + despite being over quota (and therefore, were never attached to the + quota) will not inadvertently detach from it and mess up the + accounting. +- simplify the code for tcpquota disconnection by using a new function + tcpquota_disconnect(). +- before deciding whether to reject a new connection due to quota + exhaustion, check to see whether there are at least two active + clients. previously, this was "at least one", but that could be + insufficient if there was one other client in READING state (waiting + for messages on an open connection) but none in READY (listening + for new connections). +- before deciding whether a TCP client object can to go inactive, we + must ensure there are enough other clients to maintain service + afterward -- both accepting new connections and reading/processing new + queries. A TCP client can't shut down unless at least one + client is accepting new connections and (in the case of pipelined + clients) at least one additional client is waiting to read. + +(cherry picked from commit c7394738b2445c16f728a88394864dd61baad900) +(cherry picked from commit e965d5f11d3d0f6d59704e614fceca2093cb1856) +(cherry picked from commit 87d431161450777ea093821212abfb52d51b36e3) +--- + bin/named/client.c | 244 +++++++++++++++++++------------ + bin/named/include/named/client.h | 3 +- + 2 files changed, 152 insertions(+), 95 deletions(-) + +diff --git a/bin/named/client.c b/bin/named/client.c +index 277656cef0..61e96dd28c 100644 +--- a/bin/named/client.c ++++ b/bin/named/client.c +@@ -244,13 +244,14 @@ static void client_start(isc_task_t *task, isc_event_t *event); + static void client_request(isc_task_t *task, isc_event_t *event); + static void ns_client_dumpmessage(ns_client_t *client, const char *reason); + static isc_result_t get_client(ns_clientmgr_t *manager, ns_interface_t *ifp, +- dns_dispatch_t *disp, bool tcp); ++ dns_dispatch_t *disp, ns_client_t *oldclient, ++ bool tcp); + static isc_result_t get_worker(ns_clientmgr_t *manager, ns_interface_t *ifp, + isc_socket_t *sock, ns_client_t *oldclient); + static inline bool + allowed(isc_netaddr_t *addr, dns_name_t *signer, + isc_netaddr_t *ecs_addr, uint8_t ecs_addrlen, +- uint8_t *ecs_scope, dns_acl_t *acl) ++ uint8_t *ecs_scope, dns_acl_t *acl); + static void compute_cookie(ns_client_t *client, uint32_t when, + uint32_t nonce, const unsigned char *secret, + isc_buffer_t *buf); +@@ -319,7 +320,7 @@ pipeline_init(ns_client_t *client) { + * contention here is expected to be negligible, given that this code + * is only executed for TCP connections. + */ +- refs = isc_mem_allocate(client->sctx->mctx, sizeof(*refs)); ++ refs = isc_mem_allocate(ns_g_mctx, sizeof(*refs)); + isc_refcount_init(refs, 1); + client->pipeline_refs = refs; + } +@@ -331,13 +332,13 @@ pipeline_init(ns_client_t *client) { + */ + static void + pipeline_attach(ns_client_t *source, ns_client_t *target) { +- int old_refs; ++ int refs; + + REQUIRE(source->pipeline_refs != NULL); + REQUIRE(target->pipeline_refs == NULL); + +- old_refs = isc_refcount_increment(source->pipeline_refs); +- INSIST(old_refs > 0); ++ isc_refcount_increment(source->pipeline_refs, &refs); ++ INSIST(refs > 1); + target->pipeline_refs = source->pipeline_refs; + } + +@@ -349,25 +350,51 @@ pipeline_attach(ns_client_t *source, ns_client_t *target) { + */ + static bool + pipeline_detach(ns_client_t *client) { +- isc_refcount_t *refs; +- int old_refs; ++ isc_refcount_t *refcount; ++ int refs; + + REQUIRE(client->pipeline_refs != NULL); + +- refs = client->pipeline_refs; ++ refcount = client->pipeline_refs; + client->pipeline_refs = NULL; + +- old_refs = isc_refcount_decrement(refs); +- INSIST(old_refs > 0); ++ isc_refcount_decrement(refcount, refs); + +- if (old_refs == 1) { +- isc_mem_free(client->sctx->mctx, refs); ++ if (refs == 0) { ++ isc_mem_free(ns_g_mctx, refs); + return (true); + } + + return (false); + } + ++/* ++ * Detach a client from the TCP client quota if appropriate, and set ++ * the quota pointer to NULL. ++ * ++ * Sometimes when the TCP client quota is exhausted but there are no other ++ * clients servicing the interface, a client will be allowed to continue ++ * running despite not having been attached to the quota. In this event, ++ * the TCP quota was never attached to the client, so when the client (or ++ * associated pipeline group) shuts down, the quota must NOT be detached. ++ * ++ * Otherwise, if the quota pointer is set, it should be detached. If not ++ * set at all, we just return without doing anything. ++ */ ++static void ++tcpquota_disconnect(ns_client_t *client) { ++ if (client->tcpquota == NULL) { ++ return; ++ } ++ ++ if (client->tcpattached) { ++ isc_quota_detach(&client->tcpquota); ++ client->tcpattached = false; ++ } else { ++ client->tcpquota = NULL; ++ } ++} ++ + /*% + * Check for a deactivation or shutdown request and take appropriate + * action. Returns true if either is in progress; in this case +@@ -490,38 +517,31 @@ exit_check(ns_client_t *client) { + client->tcpmsg_valid = false; + } + +- if (client->tcpquota != NULL) { +- if (client->pipeline_refs == NULL || +- pipeline_detach(client)) +- { +- /* +- * Only detach from the TCP client quota if +- * there are no more client structures using +- * this TCP connection. +- * +- * Note that we check 'pipeline_refs' and not +- * 'pipelined' because in some cases (e.g. +- * after receiving a request with an opcode +- * different than QUERY) 'pipelined' is set to +- * false after the reference counter gets +- * allocated in pipeline_init() and we must +- * still drop our reference as failing to do so +- * would prevent the reference counter itself +- * from being freed. +- */ +- isc_quota_detach(&client->tcpquota); +- } else { +- /* +- * There are other client structures using this +- * TCP connection, so we cannot detach from the +- * TCP client quota to prevent excess TCP +- * connections from being accepted. However, +- * this client structure might later be reused +- * for accepting new connections and thus must +- * have its 'tcpquota' field set to NULL. +- */ +- client->tcpquota = NULL; +- } ++ /* ++ * Detach from pipeline group and from TCP client quota, ++ * if appropriate. ++ * ++ * - If no pipeline group is active, attempt to ++ * detach from the TCP client quota. ++ * ++ * - If a pipeline group is active, detach from it; ++ * if the return code indicates that there no more ++ * clients left if this pipeline group, we also detach ++ * from the TCP client quota. ++ * ++ * - Otherwise we don't try to detach, we just set the ++ * TCP quota pointer to NULL if it wasn't NULL already. ++ * ++ * tcpquota_disconnect() will set tcpquota to NULL, either ++ * by detaching it or by assignment, depending on the ++ * needs of the client. See the comments on that function ++ * for further information. ++ */ ++ if (client->pipeline_refs == NULL || pipeline_detach(client)) { ++ tcpquota_disconnect(client); ++ } else { ++ client->tcpquota = NULL; ++ client->tcpattached = false; + } + + if (client->tcpsocket != NULL) { +@@ -544,8 +564,6 @@ exit_check(ns_client_t *client) { + client->timerset = false; + } + +- client->pipelined = false; +- + client->peeraddr_valid = false; + + client->state = NS_CLIENTSTATE_READY; +@@ -558,18 +576,27 @@ exit_check(ns_client_t *client) { + * active and force it to go inactive if not. + * + * UDP clients go inactive at this point, but a TCP client +- * will needs to remain active if no other clients are +- * listening for TCP requests on this interface, to +- * prevent this interface from going nonresponsive. ++ * may need to remain active and go into ready state if ++ * no other clients are available to listen for TCP ++ * requests on this interface or (in the case of pipelined ++ * clients) to read for additional messages on the current ++ * connection. + */ + if (client->mortal && TCP_CLIENT(client) && !ns_g_clienttest) { + LOCK(&client->interface->lock); +- if (client->interface->ntcpaccepting == 0) { ++ if ((client->interface->ntcpaccepting == 0 || ++ (client->pipelined && ++ client->interface->ntcpactive < 2)) && ++ client->newstate != NS_CLIENTSTATE_FREED) ++ { + client->mortal = false; ++ client->newstate = NS_CLIENTSTATE_READY; + } + UNLOCK(&client->interface->lock); + } + ++ client->pipelined = false; ++ + /* + * We don't need the client; send it to the inactive + * queue for recycling. +@@ -2634,6 +2661,18 @@ client_request(isc_task_t *task, isc_event_t *event) { + client->pipelined = false; + } + if (TCP_CLIENT(client) && client->pipelined) { ++ /* ++ * We're pipelining. Replace the client; the ++ * the replacement can read the TCP socket looking ++ * for new messages and this client can process the ++ * current message asynchronously. ++ * ++ * There are now at least three clients using this ++ * TCP socket - one accepting new connections, ++ * one reading an existing connection to get new ++ * messages, and one answering the message already ++ * received. ++ */ + result = ns_client_replace(client); + if (result != ISC_R_SUCCESS) { + client->pipelined = false; +@@ -3197,6 +3236,7 @@ client_create(ns_clientmgr_t *manager, ns_client_t **clientp) { + client->pipelined = false; + client->pipeline_refs = NULL; + client->tcpquota = NULL; ++ client->tcpattached = false; + client->recursionquota = NULL; + client->interface = NULL; + client->peeraddr_valid = false; +@@ -3359,9 +3399,7 @@ client_newconn(isc_task_t *task, isc_event_t *event) { + NS_LOGMODULE_CLIENT, ISC_LOG_DEBUG(3), + "accept failed: %s", + isc_result_totext(nevent->result)); +- if (client->tcpquota != NULL) { +- isc_quota_detach(&client->tcpquota); +- } ++ tcpquota_disconnect(client); + } + + if (exit_check(client)) +@@ -3402,7 +3440,7 @@ client_newconn(isc_task_t *task, isc_event_t *event) { + client->pipelined = false; + result = ns_client_replace(client); + if (result == ISC_R_SUCCESS && +- (client->sctx->keepresporder == NULL || ++ (ns_g_server->keepresporder == NULL || + !allowed(&netaddr, NULL, NULL, 0, NULL, + ns_g_server->keepresporder))) + { +@@ -3429,7 +3467,7 @@ client_accept(ns_client_t *client) { + * in named.conf. If we can't attach to it here, that means the TCP + * client quota has been exceeded. + */ +- result = isc_quota_attach(&client->sctx->tcpquota, ++ result = isc_quota_attach(&ns_g_server->tcpquota, + &client->tcpquota); + if (result != ISC_R_SUCCESS) { + bool exit; +@@ -3447,27 +3485,27 @@ client_accept(ns_client_t *client) { + * interface to be starved, with no clients able + * to accept new connections. + * +- * So, we check here to see if any other client +- * is already servicing TCP queries on this ++ * So, we check here to see if any other clients ++ * are already servicing TCP queries on this + * interface (whether accepting, reading, or +- * processing). +- * +- * If so, then it's okay *not* to call +- * accept - we can let this client to go inactive +- * and the other one handle the next connection +- * when it's ready. ++ * processing). If there are at least two ++ * (one reading and one processing a request) ++ * then it's okay *not* to call accept - we ++ * can let this client go inactive and another ++ * one will resume accepting when it's done. + * +- * But if not, then we need to be a little bit +- * flexible about the quota. We allow *one* extra +- * TCP client through, to ensure we're listening on +- * every interface. ++ * If there aren't enough active clients on the ++ * interface, then we can be a little bit ++ * flexible about the quota. We'll allow *one* ++ * extra client through to ensure we're listening ++ * on every interface. + * +- * (Note: In practice this means that the *real* +- * TCP client quota is tcp-clients plus the number +- * of interfaces.) ++ * (Note: In practice this means that the real ++ * TCP client quota is tcp-clients plus the ++ * number of listening interfaces plus 2.) + */ + LOCK(&client->interface->lock); +- exit = (client->interface->ntcpactive > 0); ++ exit = (client->interface->ntcpactive > 1); + UNLOCK(&client->interface->lock); + + if (exit) { +@@ -3475,6 +3513,9 @@ client_accept(ns_client_t *client) { + (void)exit_check(client); + return; + } ++ ++ } else { ++ client->tcpattached = true; + } + + /* +@@ -3507,9 +3548,16 @@ client_accept(ns_client_t *client) { + UNEXPECTED_ERROR(__FILE__, __LINE__, + "isc_socket_accept() failed: %s", + isc_result_totext(result)); +- if (client->tcpquota != NULL) { +- isc_quota_detach(&client->tcpquota); ++ ++ tcpquota_disconnect(client); ++ ++ if (client->tcpactive) { ++ LOCK(&client->interface->lock); ++ client->interface->ntcpactive--; ++ UNLOCK(&client->interface->lock); ++ client->tcpactive = false; + } ++ + return; + } + +@@ -3527,13 +3575,12 @@ client_accept(ns_client_t *client) { + * once the connection is established. + * + * When the client object is shutting down after handling a TCP +- * request (see exit_check()), it looks to see whether this value is +- * non-zero. If so, that means another client has already called +- * accept() and is waiting to establish the next connection, which +- * means the first client is free to go inactive. Otherwise, +- * the first client must come back and call accept() again; this +- * guarantees there will always be at least one client listening +- * for new TCP connections on each interface. ++ * request (see exit_check()), if this value is at least one, that ++ * means another client has called accept() and is waiting to ++ * establish the next connection. That means the client may be ++ * be free to become inactive; otherwise it may need to start ++ * listening for connections itself to prevent the interface ++ * going dead. + */ + LOCK(&client->interface->lock); + client->interface->ntcpaccepting++; +@@ -3613,19 +3660,19 @@ ns_client_replace(ns_client_t *client) { + client->tcpsocket, client); + } else { + result = get_client(client->manager, client->interface, +- client->dispatch, tcp); ++ client->dispatch, client, tcp); ++ ++ /* ++ * The responsibility for listening for new requests is hereby ++ * transferred to the new client. Therefore, the old client ++ * should refrain from listening for any more requests. ++ */ ++ client->mortal = true; + } + if (result != ISC_R_SUCCESS) { + return (result); + } + +- /* +- * The responsibility for listening for new requests is hereby +- * transferred to the new client. Therefore, the old client +- * should refrain from listening for any more requests. +- */ +- client->mortal = true; +- + return (ISC_R_SUCCESS); + } + +@@ -3759,7 +3806,7 @@ ns_clientmgr_destroy(ns_clientmgr_t **managerp) { + + static isc_result_t + get_client(ns_clientmgr_t *manager, ns_interface_t *ifp, +- dns_dispatch_t *disp, bool tcp) ++ dns_dispatch_t *disp, ns_client_t *oldclient, bool tcp) + { + isc_result_t result = ISC_R_SUCCESS; + isc_event_t *ev; +@@ -3803,6 +3850,16 @@ get_client(ns_clientmgr_t *manager, ns_interface_t *ifp, + client->dscp = ifp->dscp; + + if (tcp) { ++ client->tcpattached = false; ++ if (oldclient != NULL) { ++ client->tcpattached = oldclient->tcpattached; ++ } ++ ++ LOCK(&client->interface->lock); ++ client->interface->ntcpactive++; ++ UNLOCK(&client->interface->lock); ++ client->tcpactive = true; ++ + client->attributes |= NS_CLIENTATTR_TCP; + isc_socket_attach(ifp->tcpsocket, + &client->tcplistener); +@@ -3866,7 +3923,8 @@ get_worker(ns_clientmgr_t *manager, ns_interface_t *ifp, isc_socket_t *sock, + ns_interface_attach(ifp, &client->interface); + client->newstate = client->state = NS_CLIENTSTATE_WORKING; + INSIST(client->recursionquota == NULL); +- client->tcpquota = &client->sctx->tcpquota; ++ client->tcpquota = &ns_g_server->tcpquota; ++ client->tcpattached = oldclient->tcpattached; + + client->dscp = ifp->dscp; + +@@ -3885,7 +3943,6 @@ get_worker(ns_clientmgr_t *manager, ns_interface_t *ifp, isc_socket_t *sock, + LOCK(&client->interface->lock); + client->interface->ntcpactive++; + UNLOCK(&client->interface->lock); +- + client->tcpactive = true; + + INSIST(client->tcpmsg_valid == false); +@@ -3913,7 +3970,8 @@ ns_clientmgr_createclients(ns_clientmgr_t *manager, unsigned int n, + MTRACE("createclients"); + + for (disp = 0; disp < n; disp++) { +- result = get_client(manager, ifp, ifp->udpdispatch[disp], tcp); ++ result = get_client(manager, ifp, ifp->udpdispatch[disp], ++ NULL, tcp); + if (result != ISC_R_SUCCESS) + break; + } +diff --git a/bin/named/include/named/client.h b/bin/named/include/named/client.h +index aeed9ccdda..e2c40acd28 100644 +--- a/bin/named/include/named/client.h ++++ b/bin/named/include/named/client.h +@@ -9,8 +9,6 @@ + * information regarding copyright ownership. + */ + +-/* $Id: client.h,v 1.96 2012/01/31 23:47:31 tbox Exp $ */ +- + #ifndef NAMED_CLIENT_H + #define NAMED_CLIENT_H 1 + +@@ -136,6 +134,7 @@ struct ns_client { + bool pipelined; /*%< TCP queries not in sequence */ + isc_refcount_t *pipeline_refs; + isc_quota_t *tcpquota; ++ bool tcpattached; + isc_quota_t *recursionquota; + ns_interface_t *interface; + +-- +2.20.1 + diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-connectivity/bind/bind/0005-refactor-tcpquota-and-pipeline-refs-allow-special-ca.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-connectivity/bind/bind/0005-refactor-tcpquota-and-pipeline-refs-allow-special-ca.patch new file mode 100644 index 00000000..987e75bc --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-connectivity/bind/bind/0005-refactor-tcpquota-and-pipeline-refs-allow-special-ca.patch @@ -0,0 +1,911 @@ +Backport patch to fix CVE-2018-5743. + +Ref: +https://security-tracker.debian.org/tracker/CVE-2018-5743 + +CVE: CVE-2018-5743 +Upstream-Status: Backport [https://gitlab.isc.org/isc-projects/bind9/commit/c47ccf6] + +Signed-off-by: Kai Kang + +From c47ccf630f147378568b33e8fdb7b754f228c346 Mon Sep 17 00:00:00 2001 +From: Evan Hunt +Date: Fri, 5 Apr 2019 16:26:05 -0700 +Subject: [PATCH 5/6] refactor tcpquota and pipeline refs; allow special-case + overrun in isc_quota + +- if the TCP quota has been exceeded but there are no clients listening + for new connections on the interface, we can now force attachment to the + quota using isc_quota_force(), instead of carrying on with the quota not + attached. +- the TCP client quota is now referenced via a reference-counted + 'ns_tcpconn' object, one of which is created whenever a client begins + listening for new connections, and attached to by members of that + client's pipeline group. when the last reference to the tcpconn + object is detached, it is freed and the TCP quota slot is released. +- reduce code duplication by adding mark_tcp_active() function. +- convert counters to atomic. + +(cherry picked from commit 7e8222378ca24f1302a0c1c638565050ab04681b) +(cherry picked from commit 4939451275722bfda490ea86ca13e84f6bc71e46) +(cherry picked from commit 13f7c918b8720d890408f678bd73c20e634539d9) +--- + bin/named/client.c | 444 +++++++++++-------------- + bin/named/include/named/client.h | 12 +- + bin/named/include/named/interfacemgr.h | 6 +- + bin/named/interfacemgr.c | 1 + + lib/isc/include/isc/quota.h | 7 + + lib/isc/quota.c | 33 +- + lib/isc/win32/libisc.def.in | 1 + + 7 files changed, 236 insertions(+), 268 deletions(-) + +diff --git a/bin/named/client.c b/bin/named/client.c +index 61e96dd28c..d826ab32bf 100644 +--- a/bin/named/client.c ++++ b/bin/named/client.c +@@ -244,8 +244,7 @@ static void client_start(isc_task_t *task, isc_event_t *event); + static void client_request(isc_task_t *task, isc_event_t *event); + static void ns_client_dumpmessage(ns_client_t *client, const char *reason); + static isc_result_t get_client(ns_clientmgr_t *manager, ns_interface_t *ifp, +- dns_dispatch_t *disp, ns_client_t *oldclient, +- bool tcp); ++ dns_dispatch_t *disp, bool tcp); + static isc_result_t get_worker(ns_clientmgr_t *manager, ns_interface_t *ifp, + isc_socket_t *sock, ns_client_t *oldclient); + static inline bool +@@ -301,16 +300,32 @@ ns_client_settimeout(ns_client_t *client, unsigned int seconds) { + } + + /*% +- * Allocate a reference counter that will track the number of client structures +- * using the TCP connection that 'client' called accept() for. This counter +- * will be shared between all client structures associated with this TCP +- * connection. ++ * Allocate a reference-counted object that will maintain a single pointer to ++ * the (also reference-counted) TCP client quota, shared between all the ++ * clients processing queries on a single TCP connection, so that all ++ * clients sharing the one socket will together consume only one slot in ++ * the 'tcp-clients' quota. + */ +-static void +-pipeline_init(ns_client_t *client) { +- isc_refcount_t *refs; ++static isc_result_t ++tcpconn_init(ns_client_t *client, bool force) { ++ isc_result_t result; ++ isc_quota_t *quota = NULL; ++ ns_tcpconn_t *tconn = NULL; + +- REQUIRE(client->pipeline_refs == NULL); ++ REQUIRE(client->tcpconn == NULL); ++ ++ /* ++ * Try to attach to the quota first, so we won't pointlessly ++ * allocate memory for a tcpconn object if we can't get one. ++ */ ++ if (force) { ++ result = isc_quota_force(&ns_g_server->tcpquota, "a); ++ } else { ++ result = isc_quota_attach(&ns_g_server->tcpquota, "a); ++ } ++ if (result != ISC_R_SUCCESS) { ++ return (result); ++ } + + /* + * A global memory context is used for the allocation as different +@@ -320,78 +335,80 @@ pipeline_init(ns_client_t *client) { + * contention here is expected to be negligible, given that this code + * is only executed for TCP connections. + */ +- refs = isc_mem_allocate(ns_g_mctx, sizeof(*refs)); +- isc_refcount_init(refs, 1); +- client->pipeline_refs = refs; ++ tconn = isc_mem_allocate(ns_g_mctx, sizeof(*tconn)); ++ ++ isc_refcount_init(&tconn->refs, 1); ++ tconn->tcpquota = quota; ++ quota = NULL; ++ tconn->pipelined = false; ++ ++ client->tcpconn = tconn; ++ ++ return (ISC_R_SUCCESS); + } + + /*% +- * Increase the count of client structures using the TCP connection that +- * 'source' is associated with and put a pointer to that count in 'target', +- * thus associating it with the same TCP connection. ++ * Increase the count of client structures sharing the TCP connection ++ * that 'source' is associated with; add a pointer to the same tcpconn ++ * to 'target', thus associating it with the same TCP connection. + */ + static void +-pipeline_attach(ns_client_t *source, ns_client_t *target) { ++tcpconn_attach(ns_client_t *source, ns_client_t *target) { + int refs; + +- REQUIRE(source->pipeline_refs != NULL); +- REQUIRE(target->pipeline_refs == NULL); ++ REQUIRE(source->tcpconn != NULL); ++ REQUIRE(target->tcpconn == NULL); ++ REQUIRE(source->tcpconn->pipelined); + +- isc_refcount_increment(source->pipeline_refs, &refs); ++ isc_refcount_increment(&source->tcpconn->refs, &refs); + INSIST(refs > 1); +- target->pipeline_refs = source->pipeline_refs; ++ target->tcpconn = source->tcpconn; + } + + /*% +- * Decrease the count of client structures using the TCP connection that ++ * Decrease the count of client structures sharing the TCP connection that + * 'client' is associated with. If this is the last client using this TCP +- * connection, free the reference counter and return true; otherwise, return +- * false. ++ * connection, we detach from the TCP quota and free the tcpconn ++ * object. Either way, client->tcpconn is set to NULL. + */ +-static bool +-pipeline_detach(ns_client_t *client) { +- isc_refcount_t *refcount; ++static void ++tcpconn_detach(ns_client_t *client) { ++ ns_tcpconn_t *tconn = NULL; + int refs; + +- REQUIRE(client->pipeline_refs != NULL); +- +- refcount = client->pipeline_refs; +- client->pipeline_refs = NULL; ++ REQUIRE(client->tcpconn != NULL); + +- isc_refcount_decrement(refcount, refs); ++ tconn = client->tcpconn; ++ client->tcpconn = NULL; + ++ isc_refcount_decrement(&tconn->refs, &refs); + if (refs == 0) { +- isc_mem_free(ns_g_mctx, refs); +- return (true); ++ isc_quota_detach(&tconn->tcpquota); ++ isc_mem_free(ns_g_mctx, tconn); + } +- +- return (false); + } + +-/* +- * Detach a client from the TCP client quota if appropriate, and set +- * the quota pointer to NULL. +- * +- * Sometimes when the TCP client quota is exhausted but there are no other +- * clients servicing the interface, a client will be allowed to continue +- * running despite not having been attached to the quota. In this event, +- * the TCP quota was never attached to the client, so when the client (or +- * associated pipeline group) shuts down, the quota must NOT be detached. ++/*% ++ * Mark a client as active and increment the interface's 'ntcpactive' ++ * counter, as a signal that there is at least one client servicing ++ * TCP queries for the interface. If we reach the TCP client quota at ++ * some point, this will be used to determine whether a quota overrun ++ * should be permitted. + * +- * Otherwise, if the quota pointer is set, it should be detached. If not +- * set at all, we just return without doing anything. ++ * Marking the client active with the 'tcpactive' flag ensures proper ++ * accounting, by preventing us from incrementing or decrementing ++ * 'ntcpactive' more than once per client. + */ + static void +-tcpquota_disconnect(ns_client_t *client) { +- if (client->tcpquota == NULL) { +- return; +- } +- +- if (client->tcpattached) { +- isc_quota_detach(&client->tcpquota); +- client->tcpattached = false; +- } else { +- client->tcpquota = NULL; ++mark_tcp_active(ns_client_t *client, bool active) { ++ if (active && !client->tcpactive) { ++ isc_atomic_xadd(&client->interface->ntcpactive, 1); ++ client->tcpactive = active; ++ } else if (!active && client->tcpactive) { ++ uint32_t old = ++ isc_atomic_xadd(&client->interface->ntcpactive, -1); ++ INSIST(old > 0); ++ client->tcpactive = active; + } + } + +@@ -484,7 +501,8 @@ exit_check(ns_client_t *client) { + INSIST(client->recursionquota == NULL); + + if (NS_CLIENTSTATE_READING == client->newstate) { +- if (!client->pipelined) { ++ INSIST(client->tcpconn != NULL); ++ if (!client->tcpconn->pipelined) { + client_read(client); + client->newstate = NS_CLIENTSTATE_MAX; + return (true); /* We're done. */ +@@ -507,8 +525,8 @@ exit_check(ns_client_t *client) { + dns_tcpmsg_cancelread(&client->tcpmsg); + } + +- if (client->nreads != 0) { +- /* Still waiting for read cancel completion. */ ++ /* Still waiting for read cancel completion. */ ++ if (client->nreads > 0) { + return (true); + } + +@@ -518,43 +536,45 @@ exit_check(ns_client_t *client) { + } + + /* +- * Detach from pipeline group and from TCP client quota, +- * if appropriate. ++ * Soon the client will be ready to accept a new TCP ++ * connection or UDP request, but we may have enough ++ * clients doing that already. Check whether this client ++ * needs to remain active and allow it go inactive if ++ * not. + * +- * - If no pipeline group is active, attempt to +- * detach from the TCP client quota. ++ * UDP clients always go inactive at this point, but a TCP ++ * client may need to stay active and return to READY ++ * state if no other clients are available to listen ++ * for TCP requests on this interface. + * +- * - If a pipeline group is active, detach from it; +- * if the return code indicates that there no more +- * clients left if this pipeline group, we also detach +- * from the TCP client quota. +- * +- * - Otherwise we don't try to detach, we just set the +- * TCP quota pointer to NULL if it wasn't NULL already. +- * +- * tcpquota_disconnect() will set tcpquota to NULL, either +- * by detaching it or by assignment, depending on the +- * needs of the client. See the comments on that function +- * for further information. ++ * Regardless, if we're going to FREED state, that means ++ * the system is shutting down and we don't need to ++ * retain clients. + */ +- if (client->pipeline_refs == NULL || pipeline_detach(client)) { +- tcpquota_disconnect(client); +- } else { +- client->tcpquota = NULL; +- client->tcpattached = false; ++ if (client->mortal && TCP_CLIENT(client) && ++ client->newstate != NS_CLIENTSTATE_FREED && ++ !ns_g_clienttest && ++ isc_atomic_xadd(&client->interface->ntcpaccepting, 0) == 0) ++ { ++ /* Nobody else is accepting */ ++ client->mortal = false; ++ client->newstate = NS_CLIENTSTATE_READY; ++ } ++ ++ /* ++ * Detach from TCP connection and TCP client quota, ++ * if appropriate. If this is the last reference to ++ * the TCP connection in our pipeline group, the ++ * TCP quota slot will be released. ++ */ ++ if (client->tcpconn) { ++ tcpconn_detach(client); + } + + if (client->tcpsocket != NULL) { + CTRACE("closetcp"); + isc_socket_detach(&client->tcpsocket); +- +- if (client->tcpactive) { +- LOCK(&client->interface->lock); +- INSIST(client->interface->ntcpactive > 0); +- client->interface->ntcpactive--; +- UNLOCK(&client->interface->lock); +- client->tcpactive = false; +- } ++ mark_tcp_active(client, false); + } + + if (client->timerset) { +@@ -567,35 +587,6 @@ exit_check(ns_client_t *client) { + client->peeraddr_valid = false; + + client->state = NS_CLIENTSTATE_READY; +- INSIST(client->recursionquota == NULL); +- +- /* +- * Now the client is ready to accept a new TCP connection +- * or UDP request, but we may have enough clients doing +- * that already. Check whether this client needs to remain +- * active and force it to go inactive if not. +- * +- * UDP clients go inactive at this point, but a TCP client +- * may need to remain active and go into ready state if +- * no other clients are available to listen for TCP +- * requests on this interface or (in the case of pipelined +- * clients) to read for additional messages on the current +- * connection. +- */ +- if (client->mortal && TCP_CLIENT(client) && !ns_g_clienttest) { +- LOCK(&client->interface->lock); +- if ((client->interface->ntcpaccepting == 0 || +- (client->pipelined && +- client->interface->ntcpactive < 2)) && +- client->newstate != NS_CLIENTSTATE_FREED) +- { +- client->mortal = false; +- client->newstate = NS_CLIENTSTATE_READY; +- } +- UNLOCK(&client->interface->lock); +- } +- +- client->pipelined = false; + + /* + * We don't need the client; send it to the inactive +@@ -630,7 +621,7 @@ exit_check(ns_client_t *client) { + } + + /* Still waiting for accept cancel completion. */ +- if (! (client->naccepts == 0)) { ++ if (client->naccepts > 0) { + return (true); + } + +@@ -641,7 +632,7 @@ exit_check(ns_client_t *client) { + } + + /* Still waiting for recv cancel completion. */ +- if (! (client->nrecvs == 0)) { ++ if (client->nrecvs > 0) { + return (true); + } + +@@ -654,14 +645,7 @@ exit_check(ns_client_t *client) { + INSIST(client->recursionquota == NULL); + if (client->tcplistener != NULL) { + isc_socket_detach(&client->tcplistener); +- +- if (client->tcpactive) { +- LOCK(&client->interface->lock); +- INSIST(client->interface->ntcpactive > 0); +- client->interface->ntcpactive--; +- UNLOCK(&client->interface->lock); +- client->tcpactive = false; +- } ++ mark_tcp_active(client, false); + } + if (client->udpsocket != NULL) { + isc_socket_detach(&client->udpsocket); +@@ -816,7 +800,7 @@ client_start(isc_task_t *task, isc_event_t *event) { + return; + + if (TCP_CLIENT(client)) { +- if (client->pipelined) { ++ if (client->tcpconn != NULL) { + client_read(client); + } else { + client_accept(client); +@@ -2470,6 +2454,7 @@ client_request(isc_task_t *task, isc_event_t *event) { + client->nrecvs--; + } else { + INSIST(TCP_CLIENT(client)); ++ INSIST(client->tcpconn != NULL); + REQUIRE(event->ev_type == DNS_EVENT_TCPMSG); + REQUIRE(event->ev_sender == &client->tcpmsg); + buffer = &client->tcpmsg.buffer; +@@ -2657,17 +2642,19 @@ client_request(isc_task_t *task, isc_event_t *event) { + /* + * Pipeline TCP query processing. + */ +- if (client->message->opcode != dns_opcode_query) { +- client->pipelined = false; ++ if (TCP_CLIENT(client) && ++ client->message->opcode != dns_opcode_query) ++ { ++ client->tcpconn->pipelined = false; + } +- if (TCP_CLIENT(client) && client->pipelined) { ++ if (TCP_CLIENT(client) && client->tcpconn->pipelined) { + /* + * We're pipelining. Replace the client; the +- * the replacement can read the TCP socket looking +- * for new messages and this client can process the ++ * replacement can read the TCP socket looking ++ * for new messages and this one can process the + * current message asynchronously. + * +- * There are now at least three clients using this ++ * There will now be at least three clients using this + * TCP socket - one accepting new connections, + * one reading an existing connection to get new + * messages, and one answering the message already +@@ -2675,7 +2662,7 @@ client_request(isc_task_t *task, isc_event_t *event) { + */ + result = ns_client_replace(client); + if (result != ISC_R_SUCCESS) { +- client->pipelined = false; ++ client->tcpconn->pipelined = false; + } + } + +@@ -3233,10 +3220,7 @@ client_create(ns_clientmgr_t *manager, ns_client_t **clientp) { + client->signer = NULL; + dns_name_init(&client->signername, NULL); + client->mortal = false; +- client->pipelined = false; +- client->pipeline_refs = NULL; +- client->tcpquota = NULL; +- client->tcpattached = false; ++ client->tcpconn = NULL; + client->recursionquota = NULL; + client->interface = NULL; + client->peeraddr_valid = false; +@@ -3341,9 +3325,10 @@ client_read(ns_client_t *client) { + + static void + client_newconn(isc_task_t *task, isc_event_t *event) { ++ isc_result_t result; + ns_client_t *client = event->ev_arg; + isc_socket_newconnev_t *nevent = (isc_socket_newconnev_t *)event; +- isc_result_t result; ++ uint32_t old; + + REQUIRE(event->ev_type == ISC_SOCKEVENT_NEWCONN); + REQUIRE(NS_CLIENT_VALID(client)); +@@ -3363,10 +3348,8 @@ client_newconn(isc_task_t *task, isc_event_t *event) { + INSIST(client->naccepts == 1); + client->naccepts--; + +- LOCK(&client->interface->lock); +- INSIST(client->interface->ntcpaccepting > 0); +- client->interface->ntcpaccepting--; +- UNLOCK(&client->interface->lock); ++ old = isc_atomic_xadd(&client->interface->ntcpaccepting, -1); ++ INSIST(old > 0); + + /* + * We must take ownership of the new socket before the exit +@@ -3399,7 +3382,7 @@ client_newconn(isc_task_t *task, isc_event_t *event) { + NS_LOGMODULE_CLIENT, ISC_LOG_DEBUG(3), + "accept failed: %s", + isc_result_totext(nevent->result)); +- tcpquota_disconnect(client); ++ tcpconn_detach(client); + } + + if (exit_check(client)) +@@ -3437,15 +3420,13 @@ client_newconn(isc_task_t *task, isc_event_t *event) { + * telnetting to port 53 (once per CPU) will + * deny service to legitimate TCP clients. + */ +- client->pipelined = false; + result = ns_client_replace(client); + if (result == ISC_R_SUCCESS && + (ns_g_server->keepresporder == NULL || + !allowed(&netaddr, NULL, NULL, 0, NULL, + ns_g_server->keepresporder))) + { +- pipeline_init(client); +- client->pipelined = true; ++ client->tcpconn->pipelined = true; + } + + client_read(client); +@@ -3462,78 +3443,59 @@ client_accept(ns_client_t *client) { + CTRACE("accept"); + + /* +- * The tcpquota object can only be simultaneously referenced a +- * pre-defined number of times; this is configured by 'tcp-clients' +- * in named.conf. If we can't attach to it here, that means the TCP +- * client quota has been exceeded. ++ * Set up a new TCP connection. This means try to attach to the ++ * TCP client quota (tcp-clients), but fail if we're over quota. + */ +- result = isc_quota_attach(&ns_g_server->tcpquota, +- &client->tcpquota); ++ result = tcpconn_init(client, false); + if (result != ISC_R_SUCCESS) { +- bool exit; ++ bool exit; + +- ns_client_log(client, NS_LOGCATEGORY_CLIENT, +- NS_LOGMODULE_CLIENT, ISC_LOG_DEBUG(1), +- "no more TCP clients: %s", +- isc_result_totext(result)); +- +- /* +- * We have exceeded the system-wide TCP client +- * quota. But, we can't just block this accept +- * in all cases, because if we did, a heavy TCP +- * load on other interfaces might cause this +- * interface to be starved, with no clients able +- * to accept new connections. +- * +- * So, we check here to see if any other clients +- * are already servicing TCP queries on this +- * interface (whether accepting, reading, or +- * processing). If there are at least two +- * (one reading and one processing a request) +- * then it's okay *not* to call accept - we +- * can let this client go inactive and another +- * one will resume accepting when it's done. +- * +- * If there aren't enough active clients on the +- * interface, then we can be a little bit +- * flexible about the quota. We'll allow *one* +- * extra client through to ensure we're listening +- * on every interface. +- * +- * (Note: In practice this means that the real +- * TCP client quota is tcp-clients plus the +- * number of listening interfaces plus 2.) +- */ +- LOCK(&client->interface->lock); +- exit = (client->interface->ntcpactive > 1); +- UNLOCK(&client->interface->lock); ++ ns_client_log(client, NS_LOGCATEGORY_CLIENT, ++ NS_LOGMODULE_CLIENT, ISC_LOG_WARNING, ++ "TCP client quota reached: %s", ++ isc_result_totext(result)); + +- if (exit) { +- client->newstate = NS_CLIENTSTATE_INACTIVE; +- (void)exit_check(client); +- return; +- } ++ /* ++ * We have exceeded the system-wide TCP client quota. But, ++ * we can't just block this accept in all cases, because if ++ * we did, a heavy TCP load on other interfaces might cause ++ * this interface to be starved, with no clients able to ++ * accept new connections. ++ * ++ * So, we check here to see if any other clients are ++ * already servicing TCP queries on this interface (whether ++ * accepting, reading, or processing). If we find at least ++ * one, then it's okay *not* to call accept - we can let this ++ * client go inactive and another will take over when it's ++ * done. ++ * ++ * If there aren't enough active clients on the interface, ++ * then we can be a little bit flexible about the quota. ++ * We'll allow *one* extra client through to ensure we're ++ * listening on every interface; we do this by setting the ++ * 'force' option to tcpconn_init(). ++ * ++ * (Note: In practice this means that the real TCP client ++ * quota is tcp-clients plus the number of listening ++ * interfaces plus 1.) ++ */ ++ exit = (isc_atomic_xadd(&client->interface->ntcpactive, 0) > 0); ++ if (exit) { ++ client->newstate = NS_CLIENTSTATE_INACTIVE; ++ (void)exit_check(client); ++ return; ++ } + +- } else { +- client->tcpattached = true; ++ result = tcpconn_init(client, true); ++ RUNTIME_CHECK(result == ISC_R_SUCCESS); + } + + /* +- * By incrementing the interface's ntcpactive counter we signal +- * that there is at least one client servicing TCP queries for the +- * interface. +- * +- * We also make note of the fact in the client itself with the +- * tcpactive flag. This ensures proper accounting by preventing +- * us from accidentally incrementing or decrementing ntcpactive +- * more than once per client object. ++ * If this client was set up using get_client() or get_worker(), ++ * then TCP is already marked active. However, if it was restarted ++ * from exit_check(), it might not be, so we take care of it now. + */ +- if (!client->tcpactive) { +- LOCK(&client->interface->lock); +- client->interface->ntcpactive++; +- UNLOCK(&client->interface->lock); +- client->tcpactive = true; +- } ++ mark_tcp_active(client, true); + + result = isc_socket_accept(client->tcplistener, client->task, + client_newconn, client); +@@ -3549,15 +3511,8 @@ client_accept(ns_client_t *client) { + "isc_socket_accept() failed: %s", + isc_result_totext(result)); + +- tcpquota_disconnect(client); +- +- if (client->tcpactive) { +- LOCK(&client->interface->lock); +- client->interface->ntcpactive--; +- UNLOCK(&client->interface->lock); +- client->tcpactive = false; +- } +- ++ tcpconn_detach(client); ++ mark_tcp_active(client, false); + return; + } + +@@ -3582,9 +3537,7 @@ client_accept(ns_client_t *client) { + * listening for connections itself to prevent the interface + * going dead. + */ +- LOCK(&client->interface->lock); +- client->interface->ntcpaccepting++; +- UNLOCK(&client->interface->lock); ++ isc_atomic_xadd(&client->interface->ntcpaccepting, 1); + } + + static void +@@ -3655,24 +3608,25 @@ ns_client_replace(ns_client_t *client) { + REQUIRE(client->manager != NULL); + + tcp = TCP_CLIENT(client); +- if (tcp && client->pipelined) { ++ if (tcp && client->tcpconn != NULL && client->tcpconn->pipelined) { + result = get_worker(client->manager, client->interface, + client->tcpsocket, client); + } else { + result = get_client(client->manager, client->interface, +- client->dispatch, client, tcp); ++ client->dispatch, tcp); + +- /* +- * The responsibility for listening for new requests is hereby +- * transferred to the new client. Therefore, the old client +- * should refrain from listening for any more requests. +- */ +- client->mortal = true; + } + if (result != ISC_R_SUCCESS) { + return (result); + } + ++ /* ++ * The responsibility for listening for new requests is hereby ++ * transferred to the new client. Therefore, the old client ++ * should refrain from listening for any more requests. ++ */ ++ client->mortal = true; ++ + return (ISC_R_SUCCESS); + } + +@@ -3806,7 +3760,7 @@ ns_clientmgr_destroy(ns_clientmgr_t **managerp) { + + static isc_result_t + get_client(ns_clientmgr_t *manager, ns_interface_t *ifp, +- dns_dispatch_t *disp, ns_client_t *oldclient, bool tcp) ++ dns_dispatch_t *disp, bool tcp) + { + isc_result_t result = ISC_R_SUCCESS; + isc_event_t *ev; +@@ -3850,15 +3804,7 @@ get_client(ns_clientmgr_t *manager, ns_interface_t *ifp, + client->dscp = ifp->dscp; + + if (tcp) { +- client->tcpattached = false; +- if (oldclient != NULL) { +- client->tcpattached = oldclient->tcpattached; +- } +- +- LOCK(&client->interface->lock); +- client->interface->ntcpactive++; +- UNLOCK(&client->interface->lock); +- client->tcpactive = true; ++ mark_tcp_active(client, true); + + client->attributes |= NS_CLIENTATTR_TCP; + isc_socket_attach(ifp->tcpsocket, +@@ -3923,16 +3869,14 @@ get_worker(ns_clientmgr_t *manager, ns_interface_t *ifp, isc_socket_t *sock, + ns_interface_attach(ifp, &client->interface); + client->newstate = client->state = NS_CLIENTSTATE_WORKING; + INSIST(client->recursionquota == NULL); +- client->tcpquota = &ns_g_server->tcpquota; +- client->tcpattached = oldclient->tcpattached; + + client->dscp = ifp->dscp; + + client->attributes |= NS_CLIENTATTR_TCP; + client->mortal = true; + +- pipeline_attach(oldclient, client); +- client->pipelined = true; ++ tcpconn_attach(oldclient, client); ++ mark_tcp_active(client, true); + + isc_socket_attach(ifp->tcpsocket, &client->tcplistener); + isc_socket_attach(sock, &client->tcpsocket); +@@ -3940,11 +3884,6 @@ get_worker(ns_clientmgr_t *manager, ns_interface_t *ifp, isc_socket_t *sock, + (void)isc_socket_getpeername(client->tcpsocket, &client->peeraddr); + client->peeraddr_valid = true; + +- LOCK(&client->interface->lock); +- client->interface->ntcpactive++; +- UNLOCK(&client->interface->lock); +- client->tcpactive = true; +- + INSIST(client->tcpmsg_valid == false); + dns_tcpmsg_init(client->mctx, client->tcpsocket, &client->tcpmsg); + client->tcpmsg_valid = true; +@@ -3970,8 +3909,7 @@ ns_clientmgr_createclients(ns_clientmgr_t *manager, unsigned int n, + MTRACE("createclients"); + + for (disp = 0; disp < n; disp++) { +- result = get_client(manager, ifp, ifp->udpdispatch[disp], +- NULL, tcp); ++ result = get_client(manager, ifp, ifp->udpdispatch[disp], tcp); + if (result != ISC_R_SUCCESS) + break; + } +diff --git a/bin/named/include/named/client.h b/bin/named/include/named/client.h +index e2c40acd28..969ee4c08f 100644 +--- a/bin/named/include/named/client.h ++++ b/bin/named/include/named/client.h +@@ -78,6 +78,13 @@ + *** Types + ***/ + ++/*% reference-counted TCP connection object */ ++typedef struct ns_tcpconn { ++ isc_refcount_t refs; ++ isc_quota_t *tcpquota; ++ bool pipelined; ++} ns_tcpconn_t; ++ + /*% nameserver client structure */ + struct ns_client { + unsigned int magic; +@@ -131,10 +138,7 @@ struct ns_client { + dns_name_t signername; /*%< [T]SIG key name */ + dns_name_t *signer; /*%< NULL if not valid sig */ + bool mortal; /*%< Die after handling request */ +- bool pipelined; /*%< TCP queries not in sequence */ +- isc_refcount_t *pipeline_refs; +- isc_quota_t *tcpquota; +- bool tcpattached; ++ ns_tcpconn_t *tcpconn; + isc_quota_t *recursionquota; + ns_interface_t *interface; + +diff --git a/bin/named/include/named/interfacemgr.h b/bin/named/include/named/interfacemgr.h +index 61b08826a6..3535ef22a8 100644 +--- a/bin/named/include/named/interfacemgr.h ++++ b/bin/named/include/named/interfacemgr.h +@@ -9,8 +9,6 @@ + * information regarding copyright ownership. + */ + +-/* $Id: interfacemgr.h,v 1.35 2011/07/28 23:47:58 tbox Exp $ */ +- + #ifndef NAMED_INTERFACEMGR_H + #define NAMED_INTERFACEMGR_H 1 + +@@ -77,11 +75,11 @@ struct ns_interface { + /*%< UDP dispatchers. */ + isc_socket_t * tcpsocket; /*%< TCP socket. */ + isc_dscp_t dscp; /*%< "listen-on" DSCP value */ +- int ntcpaccepting; /*%< Number of clients ++ int32_t ntcpaccepting; /*%< Number of clients + ready to accept new + TCP connections on this + interface */ +- int ntcpactive; /*%< Number of clients ++ int32_t ntcpactive; /*%< Number of clients + servicing TCP queries + (whether accepting or + connected) */ +diff --git a/bin/named/interfacemgr.c b/bin/named/interfacemgr.c +index 955096ef47..d9f6df5802 100644 +--- a/bin/named/interfacemgr.c ++++ b/bin/named/interfacemgr.c +@@ -388,6 +388,7 @@ ns_interface_create(ns_interfacemgr_t *mgr, isc_sockaddr_t *addr, + */ + ifp->ntcpaccepting = 0; + ifp->ntcpactive = 0; ++ + ifp->nudpdispatch = 0; + + ifp->dscp = -1; +diff --git a/lib/isc/include/isc/quota.h b/lib/isc/include/isc/quota.h +index b9bf59877a..36c5830242 100644 +--- a/lib/isc/include/isc/quota.h ++++ b/lib/isc/include/isc/quota.h +@@ -100,6 +100,13 @@ isc_quota_attach(isc_quota_t *quota, isc_quota_t **p); + * quota if successful (ISC_R_SUCCESS or ISC_R_SOFTQUOTA). + */ + ++isc_result_t ++isc_quota_force(isc_quota_t *quota, isc_quota_t **p); ++/*%< ++ * Like isc_quota_attach, but will attach '*p' to the quota ++ * even if the hard quota has been exceeded. ++ */ ++ + void + isc_quota_detach(isc_quota_t **p); + /*%< +diff --git a/lib/isc/quota.c b/lib/isc/quota.c +index 3ddff0d875..556a61f21d 100644 +--- a/lib/isc/quota.c ++++ b/lib/isc/quota.c +@@ -74,20 +74,39 @@ isc_quota_release(isc_quota_t *quota) { + UNLOCK("a->lock); + } + +-isc_result_t +-isc_quota_attach(isc_quota_t *quota, isc_quota_t **p) +-{ ++static isc_result_t ++doattach(isc_quota_t *quota, isc_quota_t **p, bool force) { + isc_result_t result; +- INSIST(p != NULL && *p == NULL); ++ REQUIRE(p != NULL && *p == NULL); ++ + result = isc_quota_reserve(quota); +- if (result == ISC_R_SUCCESS || result == ISC_R_SOFTQUOTA) ++ if (result == ISC_R_SUCCESS || result == ISC_R_SOFTQUOTA) { ++ *p = quota; ++ } else if (result == ISC_R_QUOTA && force) { ++ /* attach anyway */ ++ LOCK("a->lock); ++ quota->used++; ++ UNLOCK("a->lock); ++ + *p = quota; ++ result = ISC_R_SUCCESS; ++ } ++ + return (result); + } + ++isc_result_t ++isc_quota_attach(isc_quota_t *quota, isc_quota_t **p) { ++ return (doattach(quota, p, false)); ++} ++ ++isc_result_t ++isc_quota_force(isc_quota_t *quota, isc_quota_t **p) { ++ return (doattach(quota, p, true)); ++} ++ + void +-isc_quota_detach(isc_quota_t **p) +-{ ++isc_quota_detach(isc_quota_t **p) { + INSIST(p != NULL && *p != NULL); + isc_quota_release(*p); + *p = NULL; +diff --git a/lib/isc/win32/libisc.def.in b/lib/isc/win32/libisc.def.in +index a82facec0f..7b9f23d776 100644 +--- a/lib/isc/win32/libisc.def.in ++++ b/lib/isc/win32/libisc.def.in +@@ -519,6 +519,7 @@ isc_portset_removerange + isc_quota_attach + isc_quota_destroy + isc_quota_detach ++isc_quota_force + isc_quota_init + isc_quota_max + isc_quota_release +-- +2.20.1 + diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-connectivity/bind/bind/0006-restore-allowance-for-tcp-clients-interfaces.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-connectivity/bind/bind/0006-restore-allowance-for-tcp-clients-interfaces.patch new file mode 100644 index 00000000..3821d185 --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-connectivity/bind/bind/0006-restore-allowance-for-tcp-clients-interfaces.patch @@ -0,0 +1,80 @@ +Backport patch to fix CVE-2018-5743. + +Ref: +https://security-tracker.debian.org/tracker/CVE-2018-5743 + +CVE: CVE-2018-5743 +Upstream-Status: Backport [https://gitlab.isc.org/isc-projects/bind9/commit/59434b9] + +Signed-off-by: Kai Kang + +From 59434b987e8eb436b08c24e559ee094c4e939daa Mon Sep 17 00:00:00 2001 +From: Evan Hunt +Date: Fri, 5 Apr 2019 16:26:19 -0700 +Subject: [PATCH 6/6] restore allowance for tcp-clients < interfaces + +in the "refactor tcpquota and pipeline refs" commit, the counting +of active interfaces was tightened in such a way that named could +fail to listen on an interface if there were more interfaces than +tcp-clients. when checking the quota to start accepting on an +interface, if the number of active clients was above zero, then +it was presumed that some other client was able to handle accepting +new connections. this, however, ignored the fact that the current client +could be included in that count, so if the quota was already exceeded +before all the interfaces were listening, some interfaces would never +listen. + +we now check whether the current client has been marked active; if so, +then the number of active clients on the interface must be greater +than 1, not 0. + +(cherry picked from commit 0b4e2cd4c3192ba88569dd344f542a8cc43742b5) +(cherry picked from commit d01023aaac35543daffbdf48464e320150235d41) +--- + bin/named/client.c | 8 +++++--- + doc/arm/Bv9ARM-book.xml | 3 ++- + 2 files changed, 7 insertions(+), 4 deletions(-) + +diff --git a/bin/named/client.c b/bin/named/client.c +index d826ab32bf..845326abc0 100644 +--- a/bin/named/client.c ++++ b/bin/named/client.c +@@ -3464,8 +3464,9 @@ client_accept(ns_client_t *client) { + * + * So, we check here to see if any other clients are + * already servicing TCP queries on this interface (whether +- * accepting, reading, or processing). If we find at least +- * one, then it's okay *not* to call accept - we can let this ++ * accepting, reading, or processing). If we find that at ++ * least one client other than this one is active, then ++ * it's okay *not* to call accept - we can let this + * client go inactive and another will take over when it's + * done. + * +@@ -3479,7 +3480,8 @@ client_accept(ns_client_t *client) { + * quota is tcp-clients plus the number of listening + * interfaces plus 1.) + */ +- exit = (isc_atomic_xadd(&client->interface->ntcpactive, 0) > 0); ++ exit = (isc_atomic_xadd(&client->interface->ntcpactive, 0) > ++ (client->tcpactive ? 1 : 0)); + if (exit) { + client->newstate = NS_CLIENTSTATE_INACTIVE; + (void)exit_check(client); +diff --git a/doc/arm/Bv9ARM-book.xml b/doc/arm/Bv9ARM-book.xml +index 381768d540..9c76d3cd6f 100644 +--- a/doc/arm/Bv9ARM-book.xml ++++ b/doc/arm/Bv9ARM-book.xml +@@ -8493,7 +8493,8 @@ avoid-v6-udp-ports { 40000; range 50000 60000; }; + + The number of file descriptors reserved for TCP, stdio, + etc. This needs to be big enough to cover the number of +- interfaces named listens on, tcp-clients as well as ++ interfaces named listens on plus ++ tcp-clients, as well as + to provide room for outgoing TCP queries and incoming zone + transfers. The default is 512. + The minimum value is 128 and the +-- +2.20.1 + diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-connectivity/bind/bind/0007-Replace-atomic-operations-in-bin-named-client.c-with.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-connectivity/bind/bind/0007-Replace-atomic-operations-in-bin-named-client.c-with.patch new file mode 100644 index 00000000..1a84eca5 --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-connectivity/bind/bind/0007-Replace-atomic-operations-in-bin-named-client.c-with.patch @@ -0,0 +1,140 @@ +Backport commit to fix compile error on arm caused by commits which are +to fix CVE-2018-5743. + +CVE: CVE-2018-5743 +Upstream-Status: Backport [https://gitlab.isc.org/isc-projects/bind9/commit/ef49780] + +Signed-off-by: Kai Kang + +From ef49780d30d3ddc5735cfc32561b678a634fa72f Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Ond=C5=99ej=20Sur=C3=BD?= +Date: Wed, 17 Apr 2019 15:22:27 +0200 +Subject: [PATCH] Replace atomic operations in bin/named/client.c with + isc_refcount reference counting + +--- + bin/named/client.c | 18 +++++++----------- + bin/named/include/named/interfacemgr.h | 5 +++-- + bin/named/interfacemgr.c | 7 +++++-- + 3 files changed, 15 insertions(+), 15 deletions(-) + +diff --git a/bin/named/client.c b/bin/named/client.c +index 845326abc0..29fecadca8 100644 +--- a/bin/named/client.c ++++ b/bin/named/client.c +@@ -402,12 +402,10 @@ tcpconn_detach(ns_client_t *client) { + static void + mark_tcp_active(ns_client_t *client, bool active) { + if (active && !client->tcpactive) { +- isc_atomic_xadd(&client->interface->ntcpactive, 1); ++ isc_refcount_increment0(&client->interface->ntcpactive, NULL); + client->tcpactive = active; + } else if (!active && client->tcpactive) { +- uint32_t old = +- isc_atomic_xadd(&client->interface->ntcpactive, -1); +- INSIST(old > 0); ++ isc_refcount_decrement(&client->interface->ntcpactive, NULL); + client->tcpactive = active; + } + } +@@ -554,7 +552,7 @@ exit_check(ns_client_t *client) { + if (client->mortal && TCP_CLIENT(client) && + client->newstate != NS_CLIENTSTATE_FREED && + !ns_g_clienttest && +- isc_atomic_xadd(&client->interface->ntcpaccepting, 0) == 0) ++ isc_refcount_current(&client->interface->ntcpaccepting) == 0) + { + /* Nobody else is accepting */ + client->mortal = false; +@@ -3328,7 +3326,6 @@ client_newconn(isc_task_t *task, isc_event_t *event) { + isc_result_t result; + ns_client_t *client = event->ev_arg; + isc_socket_newconnev_t *nevent = (isc_socket_newconnev_t *)event; +- uint32_t old; + + REQUIRE(event->ev_type == ISC_SOCKEVENT_NEWCONN); + REQUIRE(NS_CLIENT_VALID(client)); +@@ -3348,8 +3345,7 @@ client_newconn(isc_task_t *task, isc_event_t *event) { + INSIST(client->naccepts == 1); + client->naccepts--; + +- old = isc_atomic_xadd(&client->interface->ntcpaccepting, -1); +- INSIST(old > 0); ++ isc_refcount_decrement(&client->interface->ntcpaccepting, NULL); + + /* + * We must take ownership of the new socket before the exit +@@ -3480,8 +3476,8 @@ client_accept(ns_client_t *client) { + * quota is tcp-clients plus the number of listening + * interfaces plus 1.) + */ +- exit = (isc_atomic_xadd(&client->interface->ntcpactive, 0) > +- (client->tcpactive ? 1 : 0)); ++ exit = (isc_refcount_current(&client->interface->ntcpactive) > ++ (client->tcpactive ? 1U : 0U)); + if (exit) { + client->newstate = NS_CLIENTSTATE_INACTIVE; + (void)exit_check(client); +@@ -3539,7 +3535,7 @@ client_accept(ns_client_t *client) { + * listening for connections itself to prevent the interface + * going dead. + */ +- isc_atomic_xadd(&client->interface->ntcpaccepting, 1); ++ isc_refcount_increment0(&client->interface->ntcpaccepting, NULL); + } + + static void +diff --git a/bin/named/include/named/interfacemgr.h b/bin/named/include/named/interfacemgr.h +index 3535ef22a8..6e10f210fd 100644 +--- a/bin/named/include/named/interfacemgr.h ++++ b/bin/named/include/named/interfacemgr.h +@@ -45,6 +45,7 @@ + #include + #include + #include ++#include + + #include + +@@ -75,11 +76,11 @@ struct ns_interface { + /*%< UDP dispatchers. */ + isc_socket_t * tcpsocket; /*%< TCP socket. */ + isc_dscp_t dscp; /*%< "listen-on" DSCP value */ +- int32_t ntcpaccepting; /*%< Number of clients ++ isc_refcount_t ntcpaccepting; /*%< Number of clients + ready to accept new + TCP connections on this + interface */ +- int32_t ntcpactive; /*%< Number of clients ++ isc_refcount_t ntcpactive; /*%< Number of clients + servicing TCP queries + (whether accepting or + connected) */ +diff --git a/bin/named/interfacemgr.c b/bin/named/interfacemgr.c +index d9f6df5802..135533be6b 100644 +--- a/bin/named/interfacemgr.c ++++ b/bin/named/interfacemgr.c +@@ -386,8 +386,8 @@ ns_interface_create(ns_interfacemgr_t *mgr, isc_sockaddr_t *addr, + * connections will be handled in parallel even though there is + * only one client initially. + */ +- ifp->ntcpaccepting = 0; +- ifp->ntcpactive = 0; ++ isc_refcount_init(&ifp->ntcpaccepting, 0); ++ isc_refcount_init(&ifp->ntcpactive, 0); + + ifp->nudpdispatch = 0; + +@@ -618,6 +618,9 @@ ns_interface_destroy(ns_interface_t *ifp) { + + ns_interfacemgr_detach(&ifp->mgr); + ++ isc_refcount_destroy(&ifp->ntcpactive); ++ isc_refcount_destroy(&ifp->ntcpaccepting); ++ + ifp->magic = 0; + isc_mem_put(mctx, ifp, sizeof(*ifp)); + } +-- +2.20.1 + diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-connectivity/bind/bind_9.11.5-P4.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-connectivity/bind/bind_9.11.5-P4.bb index 1355841e..08977063 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-connectivity/bind/bind_9.11.5-P4.bb +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-connectivity/bind/bind_9.11.5-P4.bb @@ -20,14 +20,26 @@ SRC_URI = "https://ftp.isc.org/isc/bind9/${PV}/${BPN}-${PV}.tar.gz \ file://0001-configure.in-remove-useless-L-use_openssl-lib.patch \ file://0001-named-lwresd-V-and-start-log-hide-build-options.patch \ file://0001-avoid-start-failure-with-bind-user.patch \ + file://0001-bind-fix-CVE-2019-6471.patch \ + file://0001-fix-enforcement-of-tcp-clients-v1.patch \ + file://0002-tcp-clients-could-still-be-exceeded-v2.patch \ + file://0003-use-reference-counter-for-pipeline-groups-v3.patch \ + file://0004-better-tcpquota-accounting-and-client-mortality-chec.patch \ + file://0005-refactor-tcpquota-and-pipeline-refs-allow-special-ca.patch \ + file://0006-restore-allowance-for-tcp-clients-interfaces.patch \ + file://0007-Replace-atomic-operations-in-bin-named-client.c-with.patch \ " SRC_URI[md5sum] = "8ddab4b61fa4516fe404679c74e37960" SRC_URI[sha256sum] = "7e8c08192bcbaeb6e9f2391a70e67583b027b90e8c4bc1605da6eb126edde434" UPSTREAM_CHECK_URI = "https://ftp.isc.org/isc/bind9/" -UPSTREAM_CHECK_REGEX = "(?P9(\.\d+)+(-P\d+)*)/" -RECIPE_NO_UPDATE_REASON = "9.11 is LTS 2021" +# stay at 9.11 until 9.16, from 9.16 follow the ESV versions divisible by 4 +UPSTREAM_CHECK_REGEX = "(?P9.(11|16|20|24|28)(\.\d+)+(-P\d+)*)/" + +# BIND >= 9.11.2 need dhcpd >= 4.4.0, +# don't report it here since dhcpd is already recent enough. +CVE_CHECK_WHITELIST += "CVE-2019-6470" inherit autotools update-rc.d systemd useradd pkgconfig multilib_script @@ -39,7 +51,7 @@ PACKAGECONFIG[httpstats] = "--with-libxml2=${STAGING_DIR_HOST}${prefix},--withou PACKAGECONFIG[readline] = "--with-readline=-lreadline,,readline" PACKAGECONFIG[libedit] = "--with-readline=-ledit,,libedit" PACKAGECONFIG[urandom] = "--with-randomdev=/dev/urandom,--with-randomdev=/dev/random,," -PACKAGECONFIG[python3] = "--with-python=${PYTHON} --with-python-install-dir=${D}/${PYTHON_SITEPACKAGES_DIR} , --without-python, python3-ply-native," +PACKAGECONFIG[python3] = "--with-python=yes --with-python-install-dir=${PYTHON_SITEPACKAGES_DIR} , --without-python, python3-ply-native," ENABLE_IPV6 = "--enable-ipv6=${@bb.utils.contains('DISTRO_FEATURES', 'ipv6', 'yes', 'no', d)}" EXTRA_OECONF = " ${ENABLE_IPV6} --with-libtool --enable-threads \ @@ -133,7 +145,5 @@ PACKAGE_BEFORE_PN += "${@bb.utils.contains('PACKAGECONFIG', 'python3', 'python3- FILES_python3-bind = "${sbindir}/dnssec-coverage ${sbindir}/dnssec-checkds \ ${sbindir}/dnssec-keymgr ${PYTHON_SITEPACKAGES_DIR}" -RDEPENDS_${PN} = "bash" -RDEPENDS_${PN}-utils = "bash" RDEPENDS_${PN}-dev = "" RDEPENDS_python3-bind = "python3-core python3-ply" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-connectivity/bluez5/bluez5.inc b/Contrib-Inspur/openbmc/poky/meta/recipes-connectivity/bluez5/bluez5.inc index 8f321638..48450935 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-connectivity/bluez5/bluez5.inc +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-connectivity/bluez5/bluez5.inc @@ -6,7 +6,7 @@ LICENSE = "GPLv2+ & LGPLv2.1+" LIC_FILES_CHKSUM = "file://COPYING;md5=12f884d2ae1ff87c09e5b7ccc2c4ca7e \ file://COPYING.LIB;md5=fb504b67c50331fc78734fed90fb0e09 \ file://src/main.c;beginline=1;endline=24;md5=9bc54b93cd7e17bf03f52513f39f926e" -DEPENDS = "dbus-glib glib-2.0" +DEPENDS = "dbus glib-2.0" PROVIDES += "bluez-hcidump" RPROVIDES_${PN} += "bluez-hcidump" @@ -57,12 +57,14 @@ SRC_URI = "\ file://0001-Makefile.am-Fix-a-race-issue-for-tools.patch \ file://CVE-2018-10910.patch \ file://gcc9-fixes.patch \ + file://0001-tools-Fix-build-after-y2038-changes-in-glibc.patch \ + file://0001-tools-btpclient.c-include-signal.h.patch \ " S = "${WORKDIR}/bluez-${PV}" CVE_PRODUCT = "bluez" -inherit autotools pkgconfig systemd update-rc.d distro_features_check ptest gobject-introspection-data +inherit autotools pkgconfig systemd update-rc.d features_check ptest gobject-introspection-data EXTRA_OECONF = "\ --enable-test \ @@ -139,7 +141,7 @@ def get_noinst_tools_paths (d, bb, tools): FILES_${PN}-noinst-tools = "${@get_noinst_tools_paths(d, bb, d.getVar('NOINST_TOOLS'))}" -RDEPENDS_${PN}-testtools += "python3 python3-dbus" +RDEPENDS_${PN}-testtools += "python3-core python3-dbus" RDEPENDS_${PN}-testtools += "${@bb.utils.contains('GI_DATA_ENABLED', 'True', 'python3-pygobject', '', d)}" SYSTEMD_SERVICE_${PN} = "${@bb.utils.contains('PACKAGECONFIG', 'systemd', 'bluetooth.service', '', d)}" @@ -154,3 +156,5 @@ do_install_ptest() { cp -r ${B}/unit/ ${D}${PTEST_PATH} rm -f ${D}${PTEST_PATH}/unit/*.o } + +RDEPENDS_${PN}-ptest_append_libc-glibc = " glibc-gconv-utf-16" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-connectivity/bluez5/bluez5/0001-Makefile.am-Fix-a-race-issue-for-tools.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-connectivity/bluez5/bluez5/0001-Makefile.am-Fix-a-race-issue-for-tools.patch index 3c227a8e..b6cb9783 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-connectivity/bluez5/bluez5/0001-Makefile.am-Fix-a-race-issue-for-tools.patch +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-connectivity/bluez5/bluez5/0001-Makefile.am-Fix-a-race-issue-for-tools.patch @@ -1,32 +1,30 @@ -From 048e1844092cb4b3afd23f16fc2cc70dd2e122b7 Mon Sep 17 00:00:00 2001 -From: Robert Yang -Date: Mon, 24 Dec 2018 17:57:14 -0800 -Subject: [PATCH] Makefile.am: Fix a race issue for tools +Upstream-Status: Backport +Signed-off-by: Ross Burton -Fixed: -cp ../bluez-5.50/tools/hid2hci.rules tools/97-hid2hci.rules -cp: cannot create regular file tools/97-hid2hci.rules: No such file or directory -make[1]: *** [tools/97-hid2hci.rules] Error 1 +From 117c41242c01e057295aed80ed973c6dc7e35fe2 Mon Sep 17 00:00:00 2001 +From: Ross Burton +Date: Tue, 8 Oct 2019 11:01:56 +0100 +Subject: [PATCH BlueZ] Makefile.am: add missing mkdir in rules generation -Upstream-Status: Submitted[https://www.spinics.net/lists/linux-bluetooth/msg78361.html] - -Signed-off-by: Robert Yang +In parallel out-of-tree builds it's possible that tools/*.rules are +generated before the target directory has been implicitly created. Solve this by +creating the directory before writing into it. --- Makefile.am | 1 + 1 file changed, 1 insertion(+) diff --git a/Makefile.am b/Makefile.am -index 6d1ff11..35a01f2 100644 +index 2ac28b23d..e7bcd2366 100644 --- a/Makefile.am +++ b/Makefile.am -@@ -504,6 +504,7 @@ src/builtin.h: src/genbuiltin $(builtin_sources) +@@ -589,6 +589,7 @@ src/builtin.h: src/genbuiltin $(builtin_sources) $(AM_V_GEN)$(srcdir)/src/genbuiltin $(builtin_modules) > $@ tools/%.rules: -+ [ -e tools ] || $(MKDIR_P) tools ++ $(AM_V_at)$(MKDIR_P) tools $(AM_V_GEN)cp $(srcdir)/$(subst 97-,,$@) $@ $(lib_libbluetooth_la_OBJECTS): $(local_headers) -- -2.10.2 +2.20.1 diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-connectivity/bluez5/bluez5/0001-tools-Fix-build-after-y2038-changes-in-glibc.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-connectivity/bluez5/bluez5/0001-tools-Fix-build-after-y2038-changes-in-glibc.patch new file mode 100644 index 00000000..9ca20ae5 --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-connectivity/bluez5/bluez5/0001-tools-Fix-build-after-y2038-changes-in-glibc.patch @@ -0,0 +1,68 @@ +From f36f71f60b1e68c0f12e615b9b128d089ec3dd19 Mon Sep 17 00:00:00 2001 +From: Bastien Nocera +Date: Fri, 7 Jun 2019 09:51:33 +0200 +Subject: [PATCH] tools: Fix build after y2038 changes in glibc + +The 32-bit SIOCGSTAMP has been deprecated. Use the deprecated name +to fix the build. + +Upstream-Status: backport commit f36f71f60b1e68c0f12e615b9b128d089ec3dd19 + +Signed-off-by: Bruce Ashfield + +--- + tools/l2test.c | 6 +++++- + tools/rctest.c | 6 +++++- + 2 files changed, 10 insertions(+), 2 deletions(-) + +diff --git a/tools/l2test.c b/tools/l2test.c +index e755ac881..e787c2ce2 100644 +--- a/tools/l2test.c ++++ b/tools/l2test.c +@@ -55,6 +55,10 @@ + #define BREDR_DEFAULT_PSM 0x1011 + #define LE_DEFAULT_PSM 0x0080 + ++#ifndef SIOCGSTAMP_OLD ++#define SIOCGSTAMP_OLD SIOCGSTAMP ++#endif ++ + /* Test modes */ + enum { + SEND, +@@ -907,7 +911,7 @@ static void recv_mode(int sk) + if (timestamp) { + struct timeval tv; + +- if (ioctl(sk, SIOCGSTAMP, &tv) < 0) { ++ if (ioctl(sk, SIOCGSTAMP_OLD, &tv) < 0) { + timestamp = 0; + memset(ts, 0, sizeof(ts)); + } else { +diff --git a/tools/rctest.c b/tools/rctest.c +index 94490f462..bc8ed875d 100644 +--- a/tools/rctest.c ++++ b/tools/rctest.c +@@ -50,6 +50,10 @@ + + #include "src/shared/util.h" + ++#ifndef SIOCGSTAMP_OLD ++#define SIOCGSTAMP_OLD SIOCGSTAMP ++#endif ++ + /* Test modes */ + enum { + SEND, +@@ -505,7 +509,7 @@ static void recv_mode(int sk) + if (timestamp) { + struct timeval tv; + +- if (ioctl(sk, SIOCGSTAMP, &tv) < 0) { ++ if (ioctl(sk, SIOCGSTAMP_OLD, &tv) < 0) { + timestamp = 0; + memset(ts, 0, sizeof(ts)); + } else { +-- +2.19.1 + diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-connectivity/bluez5/bluez5/0001-tools-btpclient.c-include-signal.h.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-connectivity/bluez5/bluez5/0001-tools-btpclient.c-include-signal.h.patch new file mode 100644 index 00000000..620aaabc --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-connectivity/bluez5/bluez5/0001-tools-btpclient.c-include-signal.h.patch @@ -0,0 +1,30 @@ +From 0b1766514f6847c7367fce07f19a750ec74c11a6 Mon Sep 17 00:00:00 2001 +From: Robert Yang +Date: Thu, 26 Sep 2019 16:19:34 +0800 +Subject: [PATCH] tools/btpclient.c: include signal.h + +Fix compile failure when configure --enable-btpclient: +btpclient.c:2834:7: error: 'SIGINT' undeclared (first use in this function) + +Upstream-Status: Backport [A subset of the full fix that went upstream] + +Signed-off-by: Robert Yang +--- + tools/btpclient.c | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/tools/btpclient.c b/tools/btpclient.c +index b217df5..aece7fe 100644 +--- a/tools/btpclient.c ++++ b/tools/btpclient.c +@@ -29,6 +29,7 @@ + #include + #include + #include ++#include + + #include + +-- +2.7.4 + diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-connectivity/bluez5/bluez5/CVE-2018-10910.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-connectivity/bluez5/bluez5/CVE-2018-10910.patch index b4b1846c..2a780774 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-connectivity/bluez5/bluez5/CVE-2018-10910.patch +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-connectivity/bluez5/bluez5/CVE-2018-10910.patch @@ -1,3 +1,8 @@ +From 977321f2c7f974ea68a3d90df296c66189a3f254 Mon Sep 17 00:00:00 2001 +From: Lei Maohui +Date: Fri, 21 Jun 2019 17:57:35 +0900 +Subject: [PATCH] CVE-2018-10910 + A bug in Bluez may allow for the Bluetooth Discoverable state being set to on when no Bluetooth agent is registered with the system. This situation could lead to the unauthorized pairing of certain Bluetooth devices without any @@ -21,14 +26,24 @@ DiscoverableTimeout property: [bluetooth]# discoverable-timeout 180 Changing discoverable-timeout 180 succeeded --- - client/main.c | 43 +++++++++++++++++++++++++++++++++++++++++++ - 1 file changed, 43 insertions(+) + client/main.c | 82 +++++++++++++++++++++++++++++++++- + doc/adapter-api.txt | 6 +++ + src/adapter.c | 125 ++++++++++++++++++++++++++++++++++++++++++++++------ + 3 files changed, 198 insertions(+), 15 deletions(-) diff --git a/client/main.c b/client/main.c -index 87323d8f7..59820c6d9 100644 +index 87323d8..1a66a3a 100644 --- a/client/main.c +++ b/client/main.c -@@ -1061,6 +1061,47 @@ static void cmd_discoverable(int argc, char *argv[]) +@@ -877,6 +877,7 @@ static void cmd_show(int argc, char *argv[]) + print_property(proxy, "Class"); + print_property(proxy, "Powered"); + print_property(proxy, "Discoverable"); ++ print_property(proxy, "DiscoverableTimeout"); + print_property(proxy, "Pairable"); + print_uuids(proxy); + print_property(proxy, "Modalias"); +@@ -1061,6 +1062,47 @@ static void cmd_discoverable(int argc, char *argv[]) return bt_shell_noninteractive_quit(EXIT_FAILURE); } @@ -76,7 +91,87 @@ index 87323d8f7..59820c6d9 100644 static void cmd_agent(int argc, char *argv[]) { dbus_bool_t enable; -@@ -2549,6 +2590,8 @@ static const struct bt_shell_menu main_menu = { +@@ -1124,6 +1166,7 @@ static struct set_discovery_filter_args { + char **uuids; + size_t uuids_len; + dbus_bool_t duplicate; ++ dbus_bool_t discoverable; + bool set; + } filter = { + .rssi = DISTANCE_VAL_INVALID, +@@ -1163,6 +1206,11 @@ static void set_discovery_filter_setup(DBusMessageIter *iter, void *user_data) + DBUS_TYPE_BOOLEAN, + &args->duplicate); + ++ if (args->discoverable) ++ g_dbus_dict_append_entry(&dict, "Discoverable", ++ DBUS_TYPE_BOOLEAN, ++ &args->discoverable); ++ + dbus_message_iter_close_container(iter, &dict); + } + +@@ -1320,6 +1368,26 @@ static void cmd_scan_filter_duplicate_data(int argc, char *argv[]) + filter.set = false; + } + ++static void cmd_scan_filter_discoverable(int argc, char *argv[]) ++{ ++ if (argc < 2 || !strlen(argv[1])) { ++ bt_shell_printf("Discoverable: %s\n", ++ filter.discoverable ? "on" : "off"); ++ return bt_shell_noninteractive_quit(EXIT_SUCCESS); ++ } ++ ++ if (!strcmp(argv[1], "on")) ++ filter.discoverable = true; ++ else if (!strcmp(argv[1], "off")) ++ filter.discoverable = false; ++ else { ++ bt_shell_printf("Invalid option: %s\n", argv[1]); ++ return bt_shell_noninteractive_quit(EXIT_FAILURE); ++ } ++ ++ filter.set = false; ++} ++ + static void filter_clear_uuids(void) + { + g_strfreev(filter.uuids); +@@ -1348,6 +1416,11 @@ static void filter_clear_duplicate(void) + filter.duplicate = false; + } + ++static void filter_clear_discoverable(void) ++{ ++ filter.discoverable = false; ++} ++ + struct clear_entry { + const char *name; + void (*clear) (void); +@@ -1359,6 +1432,7 @@ static const struct clear_entry filter_clear[] = { + { "pathloss", filter_clear_pathloss }, + { "transport", filter_clear_transport }, + { "duplicate-data", filter_clear_duplicate }, ++ { "discoverable", filter_clear_discoverable }, + {} + }; + +@@ -2468,7 +2542,11 @@ static const struct bt_shell_menu scan_menu = { + { "duplicate-data", "[on/off]", cmd_scan_filter_duplicate_data, + "Set/Get duplicate data filter", + NULL }, +- { "clear", "[uuids/rssi/pathloss/transport/duplicate-data]", ++ { "discoverable", "[on/off]", cmd_scan_filter_discoverable, ++ "Set/Get discoverable filter", ++ NULL }, ++ { "clear", ++ "[uuids/rssi/pathloss/transport/duplicate-data/discoverable]", + cmd_scan_filter_clear, + "Clears discovery filter.", + filter_clear_generator }, +@@ -2549,6 +2627,8 @@ static const struct bt_shell_menu main_menu = { { "discoverable", "", cmd_discoverable, "Set controller discoverable mode", NULL }, @@ -85,74 +180,36 @@ index 87323d8f7..59820c6d9 100644 { "agent", "", cmd_agent, "Enable/disable agent with given capability", capability_generator}, --- -2.17.1 - -Subject: [PATCH BlueZ 2/4] client: Make show command print DiscoverableTimeout -From: Luiz Augusto von Dentz -Date: 2018-07-25 10:20:33 -Message-ID: 20180725102035.19439-2-luiz.dentz () gmail ! com -[Download RAW message or body] - -From: Luiz Augusto von Dentz - -Controller XX:XX:XX:XX:XX:XX (public) - Name: Vudentz's T460s - Alias: Intel-1 - Class: 0x004c010c - Powered: yes - Discoverable: no - DiscoverableTimeout: 0x00000000 - Pairable: yes - UUID: Headset AG (00001112-0000-1000-8000-00805f9b34fb) - UUID: Generic Attribute Profile (00001801-0000-1000-8000-00805f9b34fb) - UUID: A/V Remote Control (0000110e-0000-1000-8000-00805f9b34fb) - UUID: SIM Access (0000112d-0000-1000-8000-00805f9b34fb) - UUID: Generic Access Profile (00001800-0000-1000-8000-00805f9b34fb) - UUID: PnP Information (00001200-0000-1000-8000-00805f9b34fb) - UUID: A/V Remote Control Target (0000110c-0000-1000-8000-00805f9b34fb) - UUID: Audio Source (0000110a-0000-1000-8000-00805f9b34fb) - UUID: Audio Sink (0000110b-0000-1000-8000-00805f9b34fb) - UUID: Headset (00001108-0000-1000-8000-00805f9b34fb) - Modalias: usb:v1D6Bp0246d0532 - Discovering: no ---- - client/main.c | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/client/main.c b/client/main.c -index 59820c6d9..6f472d050 100644 ---- a/client/main.c -+++ b/client/main.c -@@ -877,6 +877,7 @@ static void cmd_show(int argc, char *argv[]) - print_property(proxy, "Class"); - print_property(proxy, "Powered"); - print_property(proxy, "Discoverable"); -+ print_property(proxy, "DiscoverableTimeout"); - print_property(proxy, "Pairable"); - print_uuids(proxy); - print_property(proxy, "Modalias"); --- -2.17.1 -Subject: [PATCH BlueZ 3/4] adapter: Track pending settings -From: Luiz Augusto von Dentz -Date: 2018-07-25 10:20:34 -Message-ID: 20180725102035.19439-3-luiz.dentz () gmail ! com -[Download RAW message or body] - -From: Luiz Augusto von Dentz - -This tracks settings being changed and in case the settings is already -pending considered it to be done. ---- - src/adapter.c | 30 ++++++++++++++++++++++++++++-- - 1 file changed, 28 insertions(+), 2 deletions(-) - +diff --git a/doc/adapter-api.txt b/doc/adapter-api.txt +index d14d0ca..4791af2 100644 +--- a/doc/adapter-api.txt ++++ b/doc/adapter-api.txt +@@ -113,6 +113,12 @@ Methods void StartDiscovery() + generated for either ManufacturerData and + ServiceData everytime they are discovered. + ++ bool Discoverable (Default: false) ++ ++ Make adapter discoverable while discovering, ++ if the adapter is already discoverable this ++ setting this filter won't do anything. ++ + When discovery filter is set, Device objects will be + created as new devices with matching criteria are + discovered regardless of they are connectable or diff --git a/src/adapter.c b/src/adapter.c -index af340fd6e..20c20f9e9 100644 +index af340fd..822bd34 100644 --- a/src/adapter.c +++ b/src/adapter.c -@@ -196,6 +196,7 @@ struct btd_adapter { +@@ -157,6 +157,7 @@ struct discovery_filter { + int16_t rssi; + GSList *uuids; + bool duplicate; ++ bool discoverable; + }; + + struct watch_client { +@@ -196,6 +197,7 @@ struct btd_adapter { char *name; /* controller device name */ char *short_name; /* controller short name */ uint32_t supported_settings; /* controller supported settings */ @@ -160,7 +217,15 @@ index af340fd6e..20c20f9e9 100644 uint32_t current_settings; /* current controller settings */ char *path; /* adapter object path */ -@@ -509,8 +510,10 @@ static void settings_changed(struct btd_adapter *adapter, uint32_t settings) +@@ -213,6 +215,7 @@ struct btd_adapter { + + bool discovering; /* discovering property state */ + bool filtered_discovery; /* we are doing filtered discovery */ ++ bool filtered_discoverable; /* we are doing filtered discovery */ + bool no_scan_restart_delay; /* when this flag is set, restart scan + * without delay */ + uint8_t discovery_type; /* current active discovery type */ +@@ -509,8 +512,10 @@ static void settings_changed(struct btd_adapter *adapter, uint32_t settings) changed_mask = adapter->current_settings ^ settings; adapter->current_settings = settings; @@ -171,7 +236,7 @@ index af340fd6e..20c20f9e9 100644 if (changed_mask & MGMT_SETTING_POWERED) { g_dbus_emit_property_changed(dbus_conn, adapter->path, -@@ -596,10 +599,31 @@ static bool set_mode(struct btd_adapter *adapter, uint16_t opcode, +@@ -596,10 +601,31 @@ static bool set_mode(struct btd_adapter *adapter, uint16_t opcode, uint8_t mode) { struct mgmt_mode cp; @@ -203,160 +268,11 @@ index af340fd6e..20c20f9e9 100644 DBG("sending set mode command for index %u", adapter->dev_id); if (mgmt_send(adapter->mgmt, opcode, -@@ -2739,13 +2763,15 @@ static void property_set_mode(struct btd_adapter *adapter, uint32_t setting, - else - current_enable = FALSE; - -- if (enable == current_enable) { -+ if (enable == current_enable || adapter->pending_settings & setting) { - g_dbus_pending_property_success(id); - return; - } - - mode = (enable == TRUE) ? 0x01 : 0x00; - -+ adapter->pending_settings |= setting; -+ - switch (setting) { - case MGMT_SETTING_POWERED: - opcode = MGMT_OP_SET_POWERED; -@@ -2798,7 +2824,7 @@ static void property_set_mode(struct btd_adapter *adapter, uint32_t setting, - data->id = id; - - if (mgmt_send(adapter->mgmt, opcode, adapter->dev_id, len, param, -- property_set_mode_complete, data, g_free) > 0) -+ property_set_mode_complete, data, g_free) > 0) - return; - - g_free(data); --- -2.17.1 -Subject: [PATCH BlueZ 4/4] adapter: Check pending when setting DiscoverableTimeout -From: Luiz Augusto von Dentz -Date: 2018-07-25 10:20:35 -Message-ID: 20180725102035.19439-4-luiz.dentz () gmail ! com -[Download RAW message or body] - -From: Luiz Augusto von Dentz - -This makes DiscoverableTimeout check if discoverable is already pending -and don't attempt to set it once again which may cause discoverable to -be re-enabled when in fact the application just want to set the timeout -alone. ---- - src/adapter.c | 14 +++++++++++++- - 1 file changed, 13 insertions(+), 1 deletion(-) - -diff --git a/src/adapter.c b/src/adapter.c -index 20c20f9e9..f92c897c7 100644 ---- a/src/adapter.c -+++ b/src/adapter.c -@@ -2901,6 +2901,7 @@ static void property_set_discoverable_timeout( - GDBusPendingPropertySet id, void *user_data) - { - struct btd_adapter *adapter = user_data; -+ bool enabled; - dbus_uint32_t value; - - dbus_message_iter_get_basic(iter, &value); -@@ -2914,8 +2915,19 @@ static void property_set_discoverable_timeout( - g_dbus_emit_property_changed(dbus_conn, adapter->path, - ADAPTER_INTERFACE, "DiscoverableTimeout"); - -+ if (adapter->pending_settings & MGMT_SETTING_DISCOVERABLE) { -+ if (adapter->current_settings & MGMT_SETTING_DISCOVERABLE) -+ enabled = false; -+ else -+ enabled = true; -+ } else { -+ if (adapter->current_settings & MGMT_SETTING_DISCOVERABLE) -+ enabled = true; -+ else -+ enabled = false; -+ } - -- if (adapter->current_settings & MGMT_SETTING_DISCOVERABLE) -+ if (enabled) - set_discoverable(adapter, 0x01, adapter->discoverable_timeout); - } - --- -2.17.1 -Subject: [PATCH BlueZ 1/5] doc/adapter-api: Add Discoverable option to SetDiscoveryFilter -From: Luiz Augusto von Dentz -Date: 2018-07-26 14:17:19 -Message-ID: 20180726141723.20199-1-luiz.dentz () gmail ! com -[Download RAW message or body] - -From: Luiz Augusto von Dentz - -This enables the client to set its discoverable setting while -discovering which is very typical situation as usually the setings -application would allow incoming pairing request while scanning, so -this would reduce the number of calls setting Discoverable and -DiscoverableTimeout and restoring after done with discovery. ---- - doc/adapter-api.txt | 6 ++++++ - 1 file changed, 6 insertions(+) - -diff --git a/doc/adapter-api.txt b/doc/adapter-api.txt -index d14d0ca50..4791af2c7 100644 ---- a/doc/adapter-api.txt -+++ b/doc/adapter-api.txt -@@ -113,6 +113,12 @@ Methods void StartDiscovery() - generated for either ManufacturerData and - ServiceData everytime they are discovered. - -+ bool Discoverable (Default: false) -+ -+ Make adapter discoverable while discovering, -+ if the adapter is already discoverable this -+ setting this filter won't do anything. -+ - When discovery filter is set, Device objects will be - created as new devices with matching criteria are - discovered regardless of they are connectable or --- -2.17.1 -Subject: [PATCH BlueZ 2/5] adapter: Discovery filter discoverable -From: Luiz Augusto von Dentz -Date: 2018-07-26 14:17:20 -Message-ID: 20180726141723.20199-2-luiz.dentz () gmail ! com -[Download RAW message or body] - -From: Luiz Augusto von Dentz - -This implements the discovery filter discoverable and tracks which -clients had enabled it and restores the settings when the last client -enabling it exits. ---- - src/adapter.c | 56 +++++++++++++++++++++++++++++++++++++++++++++++++-- - 1 file changed, 54 insertions(+), 2 deletions(-) - -diff --git a/src/adapter.c b/src/adapter.c -index f92c897c7..bd9edddc6 100644 ---- a/src/adapter.c -+++ b/src/adapter.c -@@ -157,6 +157,7 @@ struct discovery_filter { - int16_t rssi; - GSList *uuids; - bool duplicate; -+ bool discoverable; - }; - - struct watch_client { -@@ -214,6 +215,7 @@ struct btd_adapter { - - bool discovering; /* discovering property state */ - bool filtered_discovery; /* we are doing filtered discovery */ -+ bool filtered_discoverable; /* we are doing filtered discovery */ - bool no_scan_restart_delay; /* when this flag is set, restart scan - * without delay */ - uint8_t discovery_type; /* current active discovery type */ -@@ -1842,6 +1844,16 @@ static void discovery_free(void *user_data) +@@ -1818,7 +1844,17 @@ static void discovery_free(void *user_data) g_free(client); } +-static void discovery_remove(struct watch_client *client) +static bool set_filtered_discoverable(struct btd_adapter *adapter, bool enable) +{ + if (adapter->filtered_discoverable == enable) @@ -367,13 +283,15 @@ index f92c897c7..bd9edddc6 100644 + return set_discoverable(adapter, enable, 0); +} + - static void discovery_remove(struct watch_client *client) ++static void discovery_remove(struct watch_client *client, bool exit) { struct btd_adapter *adapter = client->adapter; -@@ -1854,6 +1866,22 @@ static void discovery_remove(struct watch_client *client) + +@@ -1830,7 +1866,27 @@ static void discovery_remove(struct watch_client *client) adapter->discovery_list = g_slist_remove(adapter->discovery_list, client); +- discovery_free(client); + if (adapter->filtered_discoverable && + client->discovery_filter->discoverable) { + GSList *l; @@ -390,10 +308,72 @@ index f92c897c7..bd9edddc6 100644 + set_filtered_discoverable(adapter, false); + } + - discovery_free(client); ++ if (!exit && client->discovery_filter) ++ adapter->set_filter_list = g_slist_prepend( ++ adapter->set_filter_list, client); ++ else ++ discovery_free(client); /* -@@ -2224,6 +2252,15 @@ static DBusMessage *start_discovery(DBusConnection *conn, + * If there are other client discoveries in progress, then leave +@@ -1859,8 +1915,11 @@ static void stop_discovery_complete(uint8_t status, uint16_t length, + goto done; + } + +- if (client->msg) ++ if (client->msg) { + g_dbus_send_reply(dbus_conn, client->msg, DBUS_TYPE_INVALID); ++ dbus_message_unref(client->msg); ++ client->msg = NULL; ++ } + + adapter->discovery_type = 0x00; + adapter->discovery_enable = 0x00; +@@ -1873,7 +1932,7 @@ static void stop_discovery_complete(uint8_t status, uint16_t length, + trigger_passive_scanning(adapter); + + done: +- discovery_remove(client); ++ discovery_remove(client, false); + } + + static int compare_sender(gconstpointer a, gconstpointer b) +@@ -2094,14 +2153,14 @@ static int update_discovery_filter(struct btd_adapter *adapter) + return -EINPROGRESS; + } + +-static int discovery_stop(struct watch_client *client) ++static int discovery_stop(struct watch_client *client, bool exit) + { + struct btd_adapter *adapter = client->adapter; + struct mgmt_cp_stop_discovery cp; + + /* Check if there are more client discovering */ + if (g_slist_next(adapter->discovery_list)) { +- discovery_remove(client); ++ discovery_remove(client, exit); + update_discovery_filter(adapter); + return 0; + } +@@ -2111,7 +2170,7 @@ static int discovery_stop(struct watch_client *client) + * and so it is enough to send out the signal and just return. + */ + if (adapter->discovery_enable == 0x00) { +- discovery_remove(client); ++ discovery_remove(client, exit); + adapter->discovering = false; + g_dbus_emit_property_changed(dbus_conn, adapter->path, + ADAPTER_INTERFACE, "Discovering"); +@@ -2136,7 +2195,7 @@ static void discovery_disconnect(DBusConnection *conn, void *user_data) + + DBG("owner %s", client->owner); + +- discovery_stop(client); ++ discovery_stop(client, true); + } + + /* +@@ -2200,6 +2259,15 @@ static DBusMessage *start_discovery(DBusConnection *conn, adapter->set_filter_list, client); adapter->discovery_list = g_slist_prepend( adapter->discovery_list, client); @@ -409,7 +389,7 @@ index f92c897c7..bd9edddc6 100644 goto done; } -@@ -2348,6 +2385,17 @@ static bool parse_duplicate_data(DBusMessageIter *value, +@@ -2324,6 +2392,17 @@ static bool parse_duplicate_data(DBusMessageIter *value, return true; } @@ -427,7 +407,7 @@ index f92c897c7..bd9edddc6 100644 struct filter_parser { const char *name; bool (*func)(DBusMessageIter *iter, struct discovery_filter *filter); -@@ -2357,6 +2405,7 @@ struct filter_parser { +@@ -2333,6 +2412,7 @@ struct filter_parser { { "Pathloss", parse_pathloss }, { "Transport", parse_transport }, { "DuplicateData", parse_duplicate_data }, @@ -435,7 +415,7 @@ index f92c897c7..bd9edddc6 100644 { } }; -@@ -2396,6 +2445,7 @@ static bool parse_discovery_filter_dict(struct btd_adapter *adapter, +@@ -2372,6 +2452,7 @@ static bool parse_discovery_filter_dict(struct btd_adapter *adapter, (*filter)->rssi = DISTANCE_VAL_INVALID; (*filter)->type = get_scan_type(adapter); (*filter)->duplicate = false; @@ -443,7 +423,7 @@ index f92c897c7..bd9edddc6 100644 dbus_message_iter_init(msg, &iter); if (dbus_message_iter_get_arg_type(&iter) != DBUS_TYPE_ARRAY || -@@ -2441,8 +2491,10 @@ static bool parse_discovery_filter_dict(struct btd_adapter *adapter, +@@ -2417,8 +2498,10 @@ static bool parse_discovery_filter_dict(struct btd_adapter *adapter, goto invalid_args; DBG("filtered discovery params: transport: %d rssi: %d pathloss: %d " @@ -456,250 +436,70 @@ index f92c897c7..bd9edddc6 100644 return true; --- -2.17.1 -Subject: [PATCH BlueZ 3/5] client: Add scan.discoverable command -From: Luiz Augusto von Dentz -Date: 2018-07-26 14:17:21 -Message-ID: 20180726141723.20199-3-luiz.dentz () gmail ! com -[Download RAW message or body] - -From: Luiz Augusto von Dentz - -This adds discoverable command to scan menu which can be used to set -if adapter should become discoverable while scanning: - -[bluetooth]# scan.discoverable on -[bluetooth]# scan on -SetDiscoveryFilter success -[CHG] Controller XX:XX:XX:XX:XX:XX Discoverable: yes -Discovery started -[CHG] Controller XX:XX:XX:XX:XX:XX Discovering: yes -[bluetooth]# scan off -Discovery stopped -[CHG] Controller XX:XX:XX:XX:XX:XX Discoverable: no ---- - client/main.c | 29 +++++++++++++++++++++++++++++ - 1 file changed, 29 insertions(+) - -diff --git a/client/main.c b/client/main.c -index 6f472d050..6e6f6d2fb 100644 ---- a/client/main.c -+++ b/client/main.c -@@ -1166,6 +1166,7 @@ static struct set_discovery_filter_args { - char **uuids; - size_t uuids_len; - dbus_bool_t duplicate; -+ dbus_bool_t discoverable; - bool set; - } filter = { - .rssi = DISTANCE_VAL_INVALID, -@@ -1205,6 +1206,11 @@ static void set_discovery_filter_setup(DBusMessageIter *iter, void *user_data) - DBUS_TYPE_BOOLEAN, - &args->duplicate); +@@ -2510,7 +2593,7 @@ static DBusMessage *stop_discovery(DBusConnection *conn, + if (client->msg) + return btd_error_busy(msg); -+ if (args->discoverable) -+ g_dbus_dict_append_entry(&dict, "Discoverable", -+ DBUS_TYPE_BOOLEAN, -+ &args->discoverable); -+ - dbus_message_iter_close_container(iter, &dict); - } +- err = discovery_stop(client); ++ err = discovery_stop(client, false); + switch (err) { + case 0: + return dbus_message_new_method_return(msg); +@@ -2739,13 +2822,15 @@ static void property_set_mode(struct btd_adapter *adapter, uint32_t setting, + else + current_enable = FALSE; -@@ -1362,6 +1368,26 @@ static void cmd_scan_filter_duplicate_data(int argc, char *argv[]) - filter.set = false; - } +- if (enable == current_enable) { ++ if (enable == current_enable || adapter->pending_settings & setting) { + g_dbus_pending_property_success(id); + return; + } -+static void cmd_scan_filter_discoverable(int argc, char *argv[]) -+{ -+ if (argc < 2 || !strlen(argv[1])) { -+ bt_shell_printf("Discoverable: %s\n", -+ filter.discoverable ? "on" : "off"); -+ return bt_shell_noninteractive_quit(EXIT_SUCCESS); -+ } -+ -+ if (!strcmp(argv[1], "on")) -+ filter.discoverable = true; -+ else if (!strcmp(argv[1], "off")) -+ filter.discoverable = false; -+ else { -+ bt_shell_printf("Invalid option: %s\n", argv[1]); -+ return bt_shell_noninteractive_quit(EXIT_FAILURE); -+ } -+ -+ filter.set = false; -+} -+ - static void filter_clear_uuids(void) - { - g_strfreev(filter.uuids); -@@ -2510,6 +2536,9 @@ static const struct bt_shell_menu scan_menu = { - { "duplicate-data", "[on/off]", cmd_scan_filter_duplicate_data, - "Set/Get duplicate data filter", - NULL }, -+ { "discoverable", "[on/off]", cmd_scan_filter_discoverable, -+ "Set/Get discoverable filter", -+ NULL }, - { "clear", "[uuids/rssi/pathloss/transport/duplicate-data]", - cmd_scan_filter_clear, - "Clears discovery filter.", --- -2.17.1 -Subject: [PATCH BlueZ 4/5] client: Add scan.clear discoverable -From: Luiz Augusto von Dentz -Date: 2018-07-26 14:17:22 -Message-ID: 20180726141723.20199-4-luiz.dentz () gmail ! com -[Download RAW message or body] - -From: Luiz Augusto von Dentz - -This implements scan.clear for discoverable filter. ---- - client/main.c | 9 ++++++++- - 1 file changed, 8 insertions(+), 1 deletion(-) - -diff --git a/client/main.c b/client/main.c -index 6e6f6d2fb..1a66a3ab4 100644 ---- a/client/main.c -+++ b/client/main.c -@@ -1416,6 +1416,11 @@ static void filter_clear_duplicate(void) - filter.duplicate = false; - } + mode = (enable == TRUE) ? 0x01 : 0x00; -+static void filter_clear_discoverable(void) -+{ -+ filter.discoverable = false; -+} ++ adapter->pending_settings |= setting; + - struct clear_entry { - const char *name; - void (*clear) (void); -@@ -1427,6 +1432,7 @@ static const struct clear_entry filter_clear[] = { - { "pathloss", filter_clear_pathloss }, - { "transport", filter_clear_transport }, - { "duplicate-data", filter_clear_duplicate }, -+ { "discoverable", filter_clear_discoverable }, - {} - }; + switch (setting) { + case MGMT_SETTING_POWERED: + opcode = MGMT_OP_SET_POWERED; +@@ -2798,7 +2883,7 @@ static void property_set_mode(struct btd_adapter *adapter, uint32_t setting, + data->id = id; -@@ -2539,7 +2545,8 @@ static const struct bt_shell_menu scan_menu = { - { "discoverable", "[on/off]", cmd_scan_filter_discoverable, - "Set/Get discoverable filter", - NULL }, -- { "clear", "[uuids/rssi/pathloss/transport/duplicate-data]", -+ { "clear", -+ "[uuids/rssi/pathloss/transport/duplicate-data/discoverable]", - cmd_scan_filter_clear, - "Clears discovery filter.", - filter_clear_generator }, --- -2.17.1 -Subject: [PATCH BlueZ 5/5] adapter: Fix not keeping discovery filters -From: Luiz Augusto von Dentz -Date: 2018-07-26 14:17:23 -Message-ID: 20180726141723.20199-5-luiz.dentz () gmail ! com -[Download RAW message or body] - -From: Luiz Augusto von Dentz - -If the discovery has been stopped and the client has set filters those -should be put back into filter list since the client may still be -interested in using them the next time it start a scanning. ---- - src/adapter.c | 25 ++++++++++++++++--------- - 1 file changed, 16 insertions(+), 9 deletions(-) - -diff --git a/src/adapter.c b/src/adapter.c -index bd9edddc6..822bd3472 100644 ---- a/src/adapter.c -+++ b/src/adapter.c -@@ -1854,7 +1854,7 @@ static bool set_filtered_discoverable(struct btd_adapter *adapter, bool enable) - return set_discoverable(adapter, enable, 0); - } + if (mgmt_send(adapter->mgmt, opcode, adapter->dev_id, len, param, +- property_set_mode_complete, data, g_free) > 0) ++ property_set_mode_complete, data, g_free) > 0) + return; --static void discovery_remove(struct watch_client *client) -+static void discovery_remove(struct watch_client *client, bool exit) + g_free(data); +@@ -2875,6 +2960,7 @@ static void property_set_discoverable_timeout( + GDBusPendingPropertySet id, void *user_data) { - struct btd_adapter *adapter = client->adapter; - -@@ -1882,7 +1882,11 @@ static void discovery_remove(struct watch_client *client) - set_filtered_discoverable(adapter, false); - } - -- discovery_free(client); -+ if (!exit && client->discovery_filter) -+ adapter->set_filter_list = g_slist_prepend( -+ adapter->set_filter_list, client); -+ else -+ discovery_free(client); + struct btd_adapter *adapter = user_data; ++ bool enabled; + dbus_uint32_t value; - /* - * If there are other client discoveries in progress, then leave -@@ -1911,8 +1915,11 @@ static void stop_discovery_complete(uint8_t status, uint16_t length, - goto done; - } + dbus_message_iter_get_basic(iter, &value); +@@ -2888,8 +2974,19 @@ static void property_set_discoverable_timeout( + g_dbus_emit_property_changed(dbus_conn, adapter->path, + ADAPTER_INTERFACE, "DiscoverableTimeout"); -- if (client->msg) -+ if (client->msg) { - g_dbus_send_reply(dbus_conn, client->msg, DBUS_TYPE_INVALID); -+ dbus_message_unref(client->msg); -+ client->msg = NULL; ++ if (adapter->pending_settings & MGMT_SETTING_DISCOVERABLE) { ++ if (adapter->current_settings & MGMT_SETTING_DISCOVERABLE) ++ enabled = false; ++ else ++ enabled = true; ++ } else { ++ if (adapter->current_settings & MGMT_SETTING_DISCOVERABLE) ++ enabled = true; ++ else ++ enabled = false; + } - adapter->discovery_type = 0x00; - adapter->discovery_enable = 0x00; -@@ -1925,7 +1932,7 @@ static void stop_discovery_complete(uint8_t status, uint16_t length, - trigger_passive_scanning(adapter); - - done: -- discovery_remove(client); -+ discovery_remove(client, false); - } - - static int compare_sender(gconstpointer a, gconstpointer b) -@@ -2146,14 +2153,14 @@ static int update_discovery_filter(struct btd_adapter *adapter) - return -EINPROGRESS; - } - --static int discovery_stop(struct watch_client *client) -+static int discovery_stop(struct watch_client *client, bool exit) - { - struct btd_adapter *adapter = client->adapter; - struct mgmt_cp_stop_discovery cp; - - /* Check if there are more client discovering */ - if (g_slist_next(adapter->discovery_list)) { -- discovery_remove(client); -+ discovery_remove(client, exit); - update_discovery_filter(adapter); - return 0; - } -@@ -2163,7 +2170,7 @@ static int discovery_stop(struct watch_client *client) - * and so it is enough to send out the signal and just return. - */ - if (adapter->discovery_enable == 0x00) { -- discovery_remove(client); -+ discovery_remove(client, exit); - adapter->discovering = false; - g_dbus_emit_property_changed(dbus_conn, adapter->path, - ADAPTER_INTERFACE, "Discovering"); -@@ -2188,7 +2195,7 @@ static void discovery_disconnect(DBusConnection *conn, void *user_data) - - DBG("owner %s", client->owner); - -- discovery_stop(client); -+ discovery_stop(client, true); +- if (adapter->current_settings & MGMT_SETTING_DISCOVERABLE) ++ if (enabled) + set_discoverable(adapter, 0x01, adapter->discoverable_timeout); } - /* -@@ -2586,7 +2593,7 @@ static DBusMessage *stop_discovery(DBusConnection *conn, - if (client->msg) - return btd_error_busy(msg); - -- err = discovery_stop(client); -+ err = discovery_stop(client, false); - switch (err) { - case 0: - return dbus_message_new_method_return(msg); -- -2.17.1 +2.7.4 + diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-connectivity/bluez5/bluez5/out-of-tree.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-connectivity/bluez5/bluez5/out-of-tree.patch index 3ee79d70..76ed7792 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-connectivity/bluez5/bluez5/out-of-tree.patch +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-connectivity/bluez5/bluez5/out-of-tree.patch @@ -7,7 +7,7 @@ In parallel out-of-tree builds it's possible that obexd/src/builtin.h is generated before the target directory has been implicitly created. Solve this by creating the directory before writing into it. -Upstream-Status: Submitted +Upstream-Status: Backport Signed-off-by: Ross Burton --- Makefile.obexd | 1 + diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-connectivity/bluez5/bluez5_5.50.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-connectivity/bluez5/bluez5_5.50.bb index 66271432..4e443e5f 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-connectivity/bluez5/bluez5_5.50.bb +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-connectivity/bluez5/bluez5_5.50.bb @@ -1,7 +1,5 @@ require bluez5.inc -REQUIRED_DISTRO_FEATURES = "bluez5" - SRC_URI[md5sum] = "8e35c67c81a55d3ad4c9f22280dae178" SRC_URI[sha256sum] = "5ffcaae18bbb6155f1591be8c24898dc12f062075a40b538b745bfd477481911" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-connectivity/connman/connman-gnome_0.7.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-connectivity/connman/connman-gnome_0.7.bb index a56bd375..778bf501 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-connectivity/connman/connman-gnome_0.7.bb +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-connectivity/connman/connman-gnome_0.7.bb @@ -20,7 +20,7 @@ SRC_URI = "git://github.com/connectivity/connman-gnome.git \ S = "${WORKDIR}/git" -inherit autotools-brokensep gtk-icon-cache pkgconfig distro_features_check +inherit autotools-brokensep gtk-icon-cache pkgconfig features_check ANY_OF_DISTRO_FEATURES = "${GTK3DISTROFEATURES}" RDEPENDS_${PN} = "connman" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-connectivity/connman/connman.inc b/Contrib-Inspur/openbmc/poky/meta/recipes-connectivity/connman/connman.inc index ae67079c..fb38ab4f 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-connectivity/connman/connman.inc +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-connectivity/connman/connman.inc @@ -13,7 +13,7 @@ LICENSE = "GPLv2" LIC_FILES_CHKSUM = "file://COPYING;md5=12f884d2ae1ff87c09e5b7ccc2c4ca7e \ file://src/main.c;beginline=1;endline=20;md5=486a279a6ab0c8d152bcda3a5b5edc36" -inherit autotools pkgconfig systemd update-rc.d bluetooth update-alternatives +inherit autotools pkgconfig systemd update-rc.d update-alternatives DEPENDS = "dbus glib-2.0 ppp readline" @@ -42,7 +42,7 @@ PACKAGECONFIG ??= "wispr \ PACKAGECONFIG[systemd] = "--with-systemdunitdir=${systemd_unitdir}/system/ --with-tmpfilesdir=${sysconfdir}/tmpfiles.d/,--with-systemdunitdir='' --with-tmpfilesdir=''" PACKAGECONFIG[wifi] = "--enable-wifi, --disable-wifi, wpa-supplicant, wpa-supplicant" -PACKAGECONFIG[bluez] = "--enable-bluetooth, --disable-bluetooth, ${BLUEZ}, ${BLUEZ}" +PACKAGECONFIG[bluez] = "--enable-bluetooth, --disable-bluetooth, bluez5, bluez5" PACKAGECONFIG[3g] = "--enable-ofono, --disable-ofono, ofono, ofono" PACKAGECONFIG[tist] = "--enable-tist,--disable-tist," PACKAGECONFIG[openvpn] = "--enable-openvpn --with-openvpn=${sbindir}/openvpn,--disable-openvpn,,openvpn" @@ -59,7 +59,7 @@ INITSCRIPT_NAME = "connman" INITSCRIPT_PARAMS = "start 05 5 2 3 . stop 22 0 1 6 ." python __anonymous () { - systemd_packages = "${PN}" + systemd_packages = "${PN} ${PN}-wait-online" pkgconfig = d.getVar('PACKAGECONFIG') if ('openvpn' or 'vpnc' or 'l2tp' or 'pptp') in pkgconfig.split(): systemd_packages += " ${PN}-vpn" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-connectivity/dhcp/dhcp.inc b/Contrib-Inspur/openbmc/poky/meta/recipes-connectivity/dhcp/dhcp.inc index 3e65e5cf..c4697bea 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-connectivity/dhcp/dhcp.inc +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-connectivity/dhcp/dhcp.inc @@ -21,7 +21,7 @@ SRC_URI = "http://ftp.isc.org/isc/dhcp/${PV}/dhcp-${PV}.tar.gz \ file://dhcpd.service file://dhcrelay.service \ file://dhcpd6.service \ " -UPSTREAM_CHECK_URI = "ftp://ftp.isc.org/isc/dhcp/" +UPSTREAM_CHECK_URI = "http://ftp.isc.org/isc/dhcp/" UPSTREAM_CHECK_REGEX = "(?P\d+\.\d+\.(\d+?))/" inherit autotools-brokensep systemd useradd update-rc.d @@ -43,7 +43,7 @@ INITSCRIPT_PACKAGES = "dhcp-server" INITSCRIPT_NAME_dhcp-server = "dhcp-server" INITSCRIPT_PARAMS_dhcp-server = "defaults" -TARGET_CFLAGS += "-D_GNU_SOURCE" +CFLAGS += "-D_GNU_SOURCE" EXTRA_OECONF = "--with-srv-lease-file=${localstatedir}/lib/dhcp/dhcpd.leases \ --with-srv6-lease-file=${localstatedir}/lib/dhcp/dhcpd6.leases \ --with-cli-lease-file=${localstatedir}/lib/dhcp/dhclient.leases \ diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-connectivity/dhcp/dhcp/0001-workaround-busybox-limitation-in-linux-dhclient-script.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-connectivity/dhcp/dhcp/0001-workaround-busybox-limitation-in-linux-dhclient-script.patch new file mode 100644 index 00000000..2359381b --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-connectivity/dhcp/dhcp/0001-workaround-busybox-limitation-in-linux-dhclient-script.patch @@ -0,0 +1,65 @@ +From eec0503cfc36f63d777f5cb3f2719cecedcb8468 Mon Sep 17 00:00:00 2001 +From: Haris Okanovic +Date: Mon, 7 Jan 2019 13:22:09 -0600 +Subject: [PATCH] Workaround busybox limitation in Linux dhclient-script + +Busybox is a lightweight implementation of coreutils commonly used on +space-constrained embedded Linux distributions. It's implementation of +chown and chmod doesn't provide a "--reference" option added to +client/scripts/linux as of commit 9261cb14. This change works around +that limitation by using stat to read ownership and permissions flags +and simple chown/chmod calls supported in both coreutils and busybox. + + modified: client/scripts/linux + +Signed-off-by: Haris Okanovic +Upstream-Status: Pending [ISC-Bugs #48771] +--- + client/scripts/linux | 17 +++++++++++++---- + 1 file changed, 13 insertions(+), 4 deletions(-) + +diff --git a/client/scripts/linux b/client/scripts/linux +index 0c429697..2435a44b 100755 +--- a/client/scripts/linux ++++ b/client/scripts/linux +@@ -32,6 +32,17 @@ + # if your system holds ip tool in a non-standard location. + ip=/sbin/ip + ++chown_chmod_by_reference() { ++ local reference_file="$1" ++ local target_file="$2" ++ ++ local owner=$(stat -c "%u:%g" "$reference_file") ++ local perm=$(stat -c "%a" "$reference_file") ++ ++ chown "$owner" "$target_file" ++ chmod "$perm" "$target_file" ++} ++ + # update /etc/resolv.conf based on received values + # This updated version mostly follows Debian script by Andrew Pollock et al. + make_resolv_conf() { +@@ -74,8 +85,7 @@ make_resolv_conf() { + fi + + if [ -f /etc/resolv.conf ]; then +- chown --reference=/etc/resolv.conf $new_resolv_conf +- chmod --reference=/etc/resolv.conf $new_resolv_conf ++ chown_chmod_by_reference /etc/resolv.conf $new_resolv_conf + fi + mv -f $new_resolv_conf /etc/resolv.conf + # DHCPv6 +@@ -101,8 +111,7 @@ make_resolv_conf() { + fi + + if [ -f /etc/resolv.conf ]; then +- chown --reference=/etc/resolv.conf $new_resolv_conf +- chmod --reference=/etc/resolv.conf $new_resolv_conf ++ chown_chmod_by_reference /etc/resolv.conf $new_resolv_conf + fi + mv -f $new_resolv_conf /etc/resolv.conf + fi +-- +2.20.0 + diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-connectivity/dhcp/dhcp_4.4.1.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-connectivity/dhcp/dhcp_4.4.1.bb index 275961a6..020777b8 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-connectivity/dhcp/dhcp_4.4.1.bb +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-connectivity/dhcp/dhcp_4.4.1.bb @@ -11,6 +11,7 @@ SRC_URI += "file://0001-define-macro-_PATH_DHCPD_CONF-and-_PATH_DHCLIENT_CON.pat file://0013-fixup_use_libbind.patch \ file://0001-master-Added-includes-of-new-BIND9-compatibility-hea.patch \ file://0001-Fix-a-NSUPDATE-compiling-issue.patch \ + file://0001-workaround-busybox-limitation-in-linux-dhclient-script.patch \ " SRC_URI[md5sum] = "18c7f4dcbb0a63df25098216d47b1ede" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-connectivity/inetutils/inetutils/fix-buffer-fortify-tfpt.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-connectivity/inetutils/inetutils/fix-buffer-fortify-tfpt.patch new file mode 100644 index 00000000..a91913cb --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-connectivity/inetutils/inetutils/fix-buffer-fortify-tfpt.patch @@ -0,0 +1,25 @@ +tftpd: Fix abort on error path + +When trying to fetch a non existent file, the app crashes with: + +*** buffer overflow detected ***: +Aborted + + +Upstream-Status: Submitted [https://www.mail-archive.com/bug-inetutils@gnu.org/msg03036.html https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91205] +Signed-off-by: Ricardo Ribalda Delgado +diff --git a/src/tftpd.c b/src/tftpd.c +index 56002a0..144012f 100644 +--- a/src/tftpd.c ++++ b/src/tftpd.c +@@ -864,9 +864,8 @@ nak (int error) + pe->e_msg = strerror (error - 100); + tp->th_code = EUNDEF; /* set 'undef' errorcode */ + } +- strcpy (tp->th_msg, pe->e_msg); + length = strlen (pe->e_msg); +- tp->th_msg[length] = '\0'; ++ memcpy(tp->th_msg, pe->e_msg, length + 1); + length += 5; + if (sendto (peer, buf, length, 0, (struct sockaddr *) &from, fromlen) != length) + syslog (LOG_ERR, "nak: %m\n"); diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-connectivity/inetutils/inetutils_1.9.4.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-connectivity/inetutils/inetutils_1.9.4.bb index ac2e017d..684fbe09 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-connectivity/inetutils/inetutils_1.9.4.bb +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-connectivity/inetutils/inetutils_1.9.4.bb @@ -22,6 +22,7 @@ SRC_URI = "${GNU_MIRROR}/inetutils/inetutils-${PV}.tar.gz \ file://inetutils-1.9-PATH_PROCNET_DEV.patch \ file://inetutils-only-check-pam_appl.h-when-pam-enabled.patch \ file://0001-rcp-fix-to-work-with-large-files.patch \ + file://fix-buffer-fortify-tfpt.patch \ " SRC_URI[md5sum] = "04852c26c47cc8c6b825f2b74f191f52" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-connectivity/iproute2/iproute2.inc b/Contrib-Inspur/openbmc/poky/meta/recipes-connectivity/iproute2/iproute2.inc index d7287176..fc31b844 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-connectivity/iproute2/iproute2.inc +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-connectivity/iproute2/iproute2.inc @@ -9,14 +9,15 @@ LICENSE = "GPLv2+" LIC_FILES_CHKSUM = "file://COPYING;md5=eb723b61539feef013de476e68b5c50a \ file://ip/ip.c;beginline=3;endline=8;md5=689d691d0410a4b64d3899f8d6e31817" -DEPENDS = "flex-native bison-native iptables elfutils libcap" +DEPENDS = "flex-native bison-native iptables libcap" inherit update-alternatives bash-completion pkgconfig CLEANBROKEN = "1" -PACKAGECONFIG ??= "tipc" +PACKAGECONFIG ??= "tipc elf" PACKAGECONFIG[tipc] = ",,libmnl," +PACKAGECONFIG[elf] = ",,elfutils," EXTRA_OEMAKE = "CC='${CC}' KERNEL_INCLUDE=${STAGING_INCDIR} DOCDIR=${docdir}/iproute2 SUBDIRS='lib tc ip bridge misc genl \ ${@bb.utils.contains('PACKAGECONFIG', 'tipc', 'tipc', '', d)}' SBINDIR='${base_sbindir}' LIBDIR='${libdir}'" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-connectivity/iproute2/iproute2/configure-cross.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-connectivity/iproute2/iproute2/configure-cross.patch deleted file mode 100644 index b0c4a088..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-connectivity/iproute2/iproute2/configure-cross.patch +++ /dev/null @@ -1,39 +0,0 @@ -From 3835b1cc4a55361443c2b37dea688da652217635 Mon Sep 17 00:00:00 2001 -From: Koen Kooi -Date: Sun, 31 Mar 2019 17:32:07 +0200 -Subject: [PATCH] make configure cross compile safe - -According to Kevin Tian: -Upstream-Status: Pending - -Signed-off-by: Koen Kooi -Signed-off-by: Shane Wang - ---- - configure | 3 ++- - 1 file changed, 2 insertions(+), 1 deletion(-) - -diff --git a/configure b/configure -index 45fcffb6..0c5c9146 100755 ---- a/configure -+++ b/configure -@@ -3,6 +3,7 @@ - # This is not an autoconf generated configure - # - INCLUDE=${1:-"$PWD/include"} -+SYSROOT=$1 - - # Output file which is input to Makefile - CONFIG=config.mk -@@ -162,7 +163,7 @@ check_ipt_lib_dir() - return - fi - -- for dir in /lib /usr/lib /usr/local/lib; do -+ for dir in $SYSROOT/lib $SYSROOT/usr/lib $SYSROOT/usr/local/lib; do - for file in "xtables" "iptables"; do - file="$dir/$file/lib*t_*so" - if [ -f $file ]; then --- -2.17.1 - diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-connectivity/iproute2/iproute2_5.1.0.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-connectivity/iproute2/iproute2_5.1.0.bb deleted file mode 100644 index 6854a130..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-connectivity/iproute2/iproute2_5.1.0.bb +++ /dev/null @@ -1,13 +0,0 @@ -require iproute2.inc - -SRC_URI = "${KERNELORG_MIRROR}/linux/utils/net/${BPN}/${BP}.tar.xz \ - file://configure-cross.patch \ - file://0001-libc-compat.h-add-musl-workaround.patch \ - " - -SRC_URI[md5sum] = "a2b8349abf4ae00e92155fda22de4d5e" -SRC_URI[sha256sum] = "dc5a980873eabf6b00c0be976b6e5562b1400d47d1d07d2ac35d5e5acbcf7bcf" - -# CFLAGS are computed in Makefile and reference CCOPTS -# -EXTRA_OEMAKE_append = " CCOPTS='${CFLAGS}'" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-connectivity/iproute2/iproute2_5.3.0.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-connectivity/iproute2/iproute2_5.3.0.bb new file mode 100644 index 00000000..8a86cbf7 --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-connectivity/iproute2/iproute2_5.3.0.bb @@ -0,0 +1,12 @@ +require iproute2.inc + +SRC_URI = "${KERNELORG_MIRROR}/linux/utils/net/${BPN}/${BP}.tar.xz \ + file://0001-libc-compat.h-add-musl-workaround.patch \ + " + +SRC_URI[md5sum] = "227404413c8d6db649d6188ead1e5a6e" +SRC_URI[sha256sum] = "cb1c1e45993a3bd2438543fd4332d70f1726a6e6ff97dc613a8258c993117b3f" + +# CFLAGS are computed in Makefile and reference CCOPTS +# +EXTRA_OEMAKE_append = " CCOPTS='${CFLAGS}'" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-connectivity/iw/iw_5.0.1.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-connectivity/iw/iw_5.0.1.bb deleted file mode 100644 index e1279635..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-connectivity/iw/iw_5.0.1.bb +++ /dev/null @@ -1,33 +0,0 @@ -SUMMARY = "nl80211 based CLI configuration utility for wireless devices" -DESCRIPTION = "iw is a new nl80211 based CLI configuration utility for \ -wireless devices. It supports almost all new drivers that have been added \ -to the kernel recently. " -HOMEPAGE = "http://wireless.kernel.org/en/users/Documentation/iw" -SECTION = "base" -LICENSE = "BSD" -LIC_FILES_CHKSUM = "file://COPYING;md5=878618a5c4af25e9b93ef0be1a93f774" - -DEPENDS = "libnl" - -SRC_URI = "http://www.kernel.org/pub/software/network/iw/${BP}.tar.gz \ - file://0001-iw-version.sh-don-t-use-git-describe-for-versioning.patch \ - file://separate-objdir.patch \ -" - -SRC_URI[md5sum] = "a0a17ab1b20132c716bba9a4f9974ba6" -SRC_URI[sha256sum] = "36fc7592dde7bec934df83cd53ef1f2c08ceec5cd58d07eb8f71cc6e8464013c" - -inherit pkgconfig - -EXTRA_OEMAKE = "\ - -f '${S}/Makefile' \ - \ - 'PREFIX=${prefix}' \ - 'SBINDIR=${sbindir}' \ - 'MANDIR=${mandir}' \ -" -B = "${WORKDIR}/build" - -do_install() { - oe_runmake 'DESTDIR=${D}' install -} diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-connectivity/iw/iw_5.3.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-connectivity/iw/iw_5.3.bb new file mode 100644 index 00000000..f7f13f5a --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-connectivity/iw/iw_5.3.bb @@ -0,0 +1,32 @@ +SUMMARY = "nl80211 based CLI configuration utility for wireless devices" +DESCRIPTION = "iw is a new nl80211 based CLI configuration utility for \ +wireless devices. It supports almost all new drivers that have been added \ +to the kernel recently. " +HOMEPAGE = "http://wireless.kernel.org/en/users/Documentation/iw" +SECTION = "base" +LICENSE = "BSD-2-Clause" +LIC_FILES_CHKSUM = "file://COPYING;md5=878618a5c4af25e9b93ef0be1a93f774" + +DEPENDS = "libnl" + +SRC_URI = "http://www.kernel.org/pub/software/network/iw/${BP}.tar.gz \ + file://0001-iw-version.sh-don-t-use-git-describe-for-versioning.patch \ + file://separate-objdir.patch \ +" + +SRC_URI[md5sum] = "6d4d1c0ee34f3a7bda0e6aafcd7aaf31" +SRC_URI[sha256sum] = "175abbfce86348c0b70e778c13a94c0bfc9abc7a506d2bd608261583aeedf64a" + +inherit pkgconfig + +EXTRA_OEMAKE = "\ + -f '${S}/Makefile' \ + \ + 'PREFIX=${prefix}' \ + 'SBINDIR=${sbindir}' \ + 'MANDIR=${mandir}' \ +" + +do_install() { + oe_runmake 'DESTDIR=${D}' install +} diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-connectivity/libpcap/libpcap/0001-pcap-usb-linux.c-add-missing-limits.h-for-musl-syste.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-connectivity/libpcap/libpcap/0001-pcap-usb-linux.c-add-missing-limits.h-for-musl-syste.patch deleted file mode 100644 index 01773834..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-connectivity/libpcap/libpcap/0001-pcap-usb-linux.c-add-missing-limits.h-for-musl-syste.patch +++ /dev/null @@ -1,29 +0,0 @@ -From aafa3512b7b742f5e66a5543e41974cc5e7eebfa Mon Sep 17 00:00:00 2001 -From: maxice8 -Date: Sun, 22 Jul 2018 18:54:17 -0300 -Subject: [PATCH] pcap-usb-linux.c: add missing limits.h for musl systems. - -fix compilation on musl libc systems like Void Linux and Alpine. - -Upstream-Status: Backport [https://github.com/the-tcpdump-group/libpcap/commit/d557c98a16dc254aaff03762b694fe624e180bea] - -Signed-off-by: Anuj Mittal ---- - pcap-usb-linux.c | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/pcap-usb-linux.c b/pcap-usb-linux.c -index 6f8adf65..b92c05ea 100644 ---- a/pcap-usb-linux.c -+++ b/pcap-usb-linux.c -@@ -50,6 +50,7 @@ - #include - #include - #include -+#include - #include - #include - #include --- -2.17.1 - diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-connectivity/libpcap/libpcap_1.9.0.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-connectivity/libpcap/libpcap_1.9.0.bb deleted file mode 100644 index 78361561..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-connectivity/libpcap/libpcap_1.9.0.bb +++ /dev/null @@ -1,45 +0,0 @@ -SUMMARY = "Interface for user-level network packet capture" -DESCRIPTION = "Libpcap provides a portable framework for low-level network \ -monitoring. Libpcap can provide network statistics collection, \ -security monitoring and network debugging." -HOMEPAGE = "http://www.tcpdump.org/" -BUGTRACKER = "http://sourceforge.net/tracker/?group_id=53067&atid=469577" -SECTION = "libs/network" -LICENSE = "BSD" -LIC_FILES_CHKSUM = "file://LICENSE;md5=5eb289217c160e2920d2e35bddc36453 \ - file://pcap.h;beginline=1;endline=32;md5=39af3510e011f34b8872f120b1dc31d2" -DEPENDS = "flex-native bison-native" - -SRC_URI = "https://www.tcpdump.org/release/${BP}.tar.gz \ - file://0001-pcap-usb-linux.c-add-missing-limits.h-for-musl-syste.patch \ - " -SRC_URI[md5sum] = "dffd65cb14406ab9841f421732eb0f33" -SRC_URI[sha256sum] = "2edb88808e5913fdaa8e9c1fcaf272e19b2485338742b5074b9fe44d68f37019" - -inherit autotools binconfig-disabled pkgconfig bluetooth - -BINCONFIG = "${bindir}/pcap-config" - -# Explicitly disable dag support. We don't have recipe for it and if enabled here, -# configure script poisons the include dirs with /usr/local/include even when the -# support hasn't been detected. -EXTRA_OECONF = " \ - --with-pcap=linux \ - --without-dag \ - " -EXTRA_AUTORECONF += "--exclude=aclocal" - -PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'bluetooth', '${BLUEZ}', '', d)} \ - ${@bb.utils.filter('DISTRO_FEATURES', 'ipv6', d)} \ -" -PACKAGECONFIG[bluez5] = "--enable-bluetooth,--disable-bluetooth,bluez5" -PACKAGECONFIG[dbus] = "--enable-dbus,--disable-dbus,dbus" -PACKAGECONFIG[ipv6] = "--enable-ipv6,--disable-ipv6," -PACKAGECONFIG[libnl] = "--with-libnl,--without-libnl,libnl" - -do_configure_prepend () { - #remove hardcoded references to /usr/include - sed 's|\([ "^'\''I]\+\)/usr/include/|\1${STAGING_INCDIR}/|g' -i ${S}/configure.ac -} - -BBCLASSEXTEND = "native" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-connectivity/libpcap/libpcap_1.9.1.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-connectivity/libpcap/libpcap_1.9.1.bb new file mode 100644 index 00000000..35bb5650 --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-connectivity/libpcap/libpcap_1.9.1.bb @@ -0,0 +1,44 @@ +SUMMARY = "Interface for user-level network packet capture" +DESCRIPTION = "Libpcap provides a portable framework for low-level network \ +monitoring. Libpcap can provide network statistics collection, \ +security monitoring and network debugging." +HOMEPAGE = "http://www.tcpdump.org/" +BUGTRACKER = "http://sourceforge.net/tracker/?group_id=53067&atid=469577" +SECTION = "libs/network" +LICENSE = "BSD-3-Clause" +LIC_FILES_CHKSUM = "file://LICENSE;md5=5eb289217c160e2920d2e35bddc36453 \ + file://pcap.h;beginline=1;endline=32;md5=39af3510e011f34b8872f120b1dc31d2" +DEPENDS = "flex-native bison-native" + +SRC_URI = "https://www.tcpdump.org/release/${BP}.tar.gz \ + " +SRC_URI[md5sum] = "21af603d9a591c7d96a6457021d84e6c" +SRC_URI[sha256sum] = "635237637c5b619bcceba91900666b64d56ecb7be63f298f601ec786ce087094" + +inherit autotools binconfig-disabled pkgconfig + +BINCONFIG = "${bindir}/pcap-config" + +# Explicitly disable dag support. We don't have recipe for it and if enabled here, +# configure script poisons the include dirs with /usr/local/include even when the +# support hasn't been detected. +EXTRA_OECONF = " \ + --with-pcap=linux \ + --without-dag \ + " +EXTRA_AUTORECONF += "--exclude=aclocal" + +PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'bluetooth', 'bluez5', '', d)} \ + ${@bb.utils.filter('DISTRO_FEATURES', 'ipv6', d)} \ +" +PACKAGECONFIG[bluez5] = "--enable-bluetooth,--disable-bluetooth,bluez5" +PACKAGECONFIG[dbus] = "--enable-dbus,--disable-dbus,dbus" +PACKAGECONFIG[ipv6] = "--enable-ipv6,--disable-ipv6," +PACKAGECONFIG[libnl] = "--with-libnl,--without-libnl,libnl" + +do_configure_prepend () { + #remove hardcoded references to /usr/include + sed 's|\([ "^'\''I]\+\)/usr/include/|\1${STAGING_INCDIR}/|g' -i ${S}/configure.ac +} + +BBCLASSEXTEND = "native" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-connectivity/mobile-broadband-provider-info/mobile-broadband-provider-info_git.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-connectivity/mobile-broadband-provider-info/mobile-broadband-provider-info_git.bb index 77adcebb..0b0bbab1 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-connectivity/mobile-broadband-provider-info/mobile-broadband-provider-info_git.bb +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-connectivity/mobile-broadband-provider-info/mobile-broadband-provider-info_git.bb @@ -3,11 +3,13 @@ HOMEPAGE = "http://live.gnome.org/NetworkManager/MobileBroadband/ServiceProvider SECTION = "network" LICENSE = "PD" LIC_FILES_CHKSUM = "file://COPYING;md5=87964579b2a8ece4bc6744d2dc9a8b04" -SRCREV = "c7def60ba50d9cc30a90f69f89d7e82243501e86" -PV = "20190116" +SRCREV = "22b49d86fb7aded2c195a9d49e5924da696b3228" +PV = "20190618" PE = "1" SRC_URI = "git://gitlab.gnome.org/GNOME/mobile-broadband-provider-info.git;protocol=https" S = "${WORKDIR}/git" inherit autotools + +DEPENDS += "libxslt-native" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-connectivity/neard/neard_0.16.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-connectivity/neard/neard_0.16.bb index cc6af4e1..7c124a3c 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-connectivity/neard/neard_0.16.bb +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-connectivity/neard/neard_0.16.bb @@ -18,7 +18,7 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=12f884d2ae1ff87c09e5b7ccc2c4ca7e \ file://src/near.h;beginline=1;endline=20;md5=358e4deefef251a4761e1ffacc965d13 \ " -inherit autotools pkgconfig systemd update-rc.d bluetooth +inherit autotools pkgconfig systemd update-rc.d PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)}" @@ -40,7 +40,7 @@ RDEPENDS_${PN} = "dbus" # Bluez & Wifi are not mandatory except for handover RRECOMMENDS_${PN} = "\ - ${@bb.utils.contains('DISTRO_FEATURES', 'bluetooth', '${BLUEZ}', '', d)} \ + ${@bb.utils.contains('DISTRO_FEATURES', 'bluetooth', 'bluez5', '', d)} \ ${@bb.utils.contains('DISTRO_FEATURES', 'wifi','wpa-supplicant', '', d)} \ " diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-connectivity/nfs-utils/nfs-utils/0001-Do-not-pass-null-pointer-to-freeaddrinfo.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-connectivity/nfs-utils/nfs-utils/0001-Do-not-pass-null-pointer-to-freeaddrinfo.patch deleted file mode 100644 index a44d1bf2..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-connectivity/nfs-utils/nfs-utils/0001-Do-not-pass-null-pointer-to-freeaddrinfo.patch +++ /dev/null @@ -1,32 +0,0 @@ -From 4f115fc314646500f7b4178d7248a02654c7cd10 Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Fri, 30 Nov 2018 16:47:57 -0800 -Subject: [PATCH] Do not pass null pointer to freeaddrinfo() - -Passing null pointer as input parameter to freeaddrinfo() is undefined -behaviour, some libcs e.g. glibc might just call free() which does -accept null pointer but other libcs e.g. musl might not and instead -cause the program to segfault. Therefore do not rely on undefined -behaviour instead make it deterministic - -Upstream-Status: Pending - -Signed-off-by: Khem Raj ---- - support/export/client.c | 3 ++- - 1 file changed, 2 insertions(+), 1 deletion(-) - -Index: nfs-utils-2.3.2/support/export/client.c -=================================================================== ---- nfs-utils-2.3.2.orig/support/export/client.c -+++ nfs-utils-2.3.2/support/export/client.c -@@ -309,7 +309,8 @@ client_lookup(char *hname, int canonical - init_addrlist(clp, ai); - - out: -- freeaddrinfo(ai); -+ if (ai) -+ freeaddrinfo(ai); - return clp; - } - diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-connectivity/nfs-utils/nfs-utils/0001-Fix-include-order-between-config.h-and-stat.h.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-connectivity/nfs-utils/nfs-utils/0001-Fix-include-order-between-config.h-and-stat.h.patch new file mode 100644 index 00000000..7b0f9353 --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-connectivity/nfs-utils/nfs-utils/0001-Fix-include-order-between-config.h-and-stat.h.patch @@ -0,0 +1,156 @@ +From 2fbc62e2a13fc22b6ae4910e295a2c10fb790486 Mon Sep 17 00:00:00 2001 +From: Zoltan Karcagi +Date: Mon, 12 Aug 2019 13:27:16 -0400 +Subject: [PATCH] Fix include order between config.h and stat.h + +At least on Arch linux ARM, the definition of struct stat in stat.h depends +on __USE_FILE_OFFSET64. This symbol comes from config.h when defined, +therefore config.h must always be included before stat.h. Fix all +occurrences where the order is wrong by moving config.h to the top. + +This fixes the client side error "Stale file handle" when mounting from +a server running Arch Linux ARM. + +Signed-off-by: Zoltan Karcagi +Signed-off-by: Steve Dickson + +Upstream-Status: Backport +[http://git.linux-nfs.org/?p=steved/nfs-utils.git;a=commit;h=2fbc62e2a13fc22b6ae4910e295a2c10fb790486] + +Signed-off-by: Yi Zhao +--- + support/misc/nfsd_path.c | 5 ++++- + support/misc/xstat.c | 5 ++++- + support/nfs/conffile.c | 8 +++++++- + utils/blkmapd/device-discovery.c | 8 ++++---- + utils/idmapd/idmapd.c | 8 ++++---- + 5 files changed, 23 insertions(+), 11 deletions(-) + +diff --git a/support/misc/nfsd_path.c b/support/misc/nfsd_path.c +index 84e4802..f078a66 100644 +--- a/support/misc/nfsd_path.c ++++ b/support/misc/nfsd_path.c +@@ -1,3 +1,7 @@ ++#ifdef HAVE_CONFIG_H ++#include ++#endif ++ + #include + #include + #include +@@ -5,7 +9,6 @@ + #include + #include + +-#include "config.h" + #include "conffile.h" + #include "xmalloc.h" + #include "xlog.h" +diff --git a/support/misc/xstat.c b/support/misc/xstat.c +index fa04788..4c997ee 100644 +--- a/support/misc/xstat.c ++++ b/support/misc/xstat.c +@@ -1,3 +1,7 @@ ++#ifdef HAVE_CONFIG_H ++#include ++#endif ++ + #include + #include + #include +@@ -5,7 +9,6 @@ + #include + #include + +-#include "config.h" + #include "xstat.h" + + #ifdef HAVE_FSTATAT +diff --git a/support/nfs/conffile.c b/support/nfs/conffile.c +index b6400be..6ba8a35 100644 +--- a/support/nfs/conffile.c ++++ b/support/nfs/conffile.c +@@ -500,7 +500,7 @@ conf_readfile(const char *path) + + if ((stat (path, &sb) == 0) || (errno != ENOENT)) { + char *new_conf_addr = NULL; +- size_t sz = sb.st_size; ++ off_t sz; + int fd = open (path, O_RDONLY, 0); + + if (fd == -1) { +@@ -517,6 +517,11 @@ conf_readfile(const char *path) + + /* only after we have the lock, check the file size ready to read it */ + sz = lseek(fd, 0, SEEK_END); ++ if (sz < 0) { ++ xlog_warn("conf_readfile: unable to determine file size: %s", ++ strerror(errno)); ++ goto fail; ++ } + lseek(fd, 0, SEEK_SET); + + new_conf_addr = malloc(sz+1); +@@ -2162,6 +2167,7 @@ conf_write(const char *filename, const char *section, const char *arg, + ret = 0; + + cleanup: ++ flush_outqueue(&inqueue, NULL); + flush_outqueue(&outqueue, NULL); + + if (buff) +diff --git a/utils/blkmapd/device-discovery.c b/utils/blkmapd/device-discovery.c +index e811703..f5f9b10 100644 +--- a/utils/blkmapd/device-discovery.c ++++ b/utils/blkmapd/device-discovery.c +@@ -26,6 +26,10 @@ + * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + ++#ifdef HAVE_CONFIG_H ++#include "config.h" ++#endif /* HAVE_CONFIG_H */ ++ + #include + #include + #include +@@ -51,10 +55,6 @@ + #include + #include + +-#ifdef HAVE_CONFIG_H +-#include "config.h" +-#endif /* HAVE_CONFIG_H */ +- + #include "device-discovery.h" + #include "xcommon.h" + #include "nfslib.h" +diff --git a/utils/idmapd/idmapd.c b/utils/idmapd/idmapd.c +index 62e37b8..267acea 100644 +--- a/utils/idmapd/idmapd.c ++++ b/utils/idmapd/idmapd.c +@@ -34,6 +34,10 @@ + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + ++#ifdef HAVE_CONFIG_H ++#include "config.h" ++#endif /* HAVE_CONFIG_H */ ++ + #include + #include + #include +@@ -62,10 +66,6 @@ + #include + #include + +-#ifdef HAVE_CONFIG_H +-#include "config.h" +-#endif /* HAVE_CONFIG_H */ +- + #include "xlog.h" + #include "conffile.h" + #include "queue.h" +-- +2.7.4 + diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-connectivity/nfs-utils/nfs-utils/0001-Makefile.am-fix-undefined-function-for-libnsm.a.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-connectivity/nfs-utils/nfs-utils/0001-Makefile.am-fix-undefined-function-for-libnsm.a.patch index aa551ebd..fcb0e99b 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-connectivity/nfs-utils/nfs-utils/0001-Makefile.am-fix-undefined-function-for-libnsm.a.patch +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-connectivity/nfs-utils/nfs-utils/0001-Makefile.am-fix-undefined-function-for-libnsm.a.patch @@ -22,25 +22,28 @@ so rename ../support/misc/file.c to ../support/misc/misc.c. Upstream-Status: Submitted[https://marc.info/?l=linux-nfs&m=154502780423058&w=2] Signed-off-by: Mingli Yu + +Rebase it. + +Signed-off-by: Robert Yang --- support/misc/Makefile.am | 2 +- - support/misc/file.c | 111 ----------------------------------------------- - support/misc/misc.c | 111 +++++++++++++++++++++++++++++++++++++++++++++++ + support/misc/file.c | 111 --------------------------------------------------------------------------------------------------------------- + support/misc/misc.c | 111 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ support/nsm/Makefile.am | 2 +- 4 files changed, 113 insertions(+), 113 deletions(-) - delete mode 100644 support/misc/file.c - create mode 100644 support/misc/misc.c diff --git a/support/misc/Makefile.am b/support/misc/Makefile.am -index 8936b0d..d4c1f76 100644 +index f9993e3..8b0e9db 100644 --- a/support/misc/Makefile.am +++ b/support/misc/Makefile.am -@@ -1,6 +1,6 @@ +@@ -1,7 +1,7 @@ ## Process this file with automake to produce Makefile.in noinst_LIBRARIES = libmisc.a --libmisc_a_SOURCES = tcpwrapper.c from_local.c mountpoint.c file.c -+libmisc_a_SOURCES = tcpwrapper.c from_local.c mountpoint.c misc.c +-libmisc_a_SOURCES = tcpwrapper.c from_local.c mountpoint.c file.c \ ++libmisc_a_SOURCES = tcpwrapper.c from_local.c mountpoint.c misc.c \ + nfsd_path.c workqueue.c xstat.c MAINTAINERCLEANFILES = Makefile.in diff --git a/support/misc/file.c b/support/misc/file.c @@ -290,6 +293,3 @@ index 8f5874e..68f1a46 100644 BUILT_SOURCES = $(GENFILES) --- -2.7.4 - diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-connectivity/nfs-utils/nfs-utils/0001-Makefile.am-update-the-path-of-libnfs.a.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-connectivity/nfs-utils/nfs-utils/0001-Makefile.am-update-the-path-of-libnfs.a.patch deleted file mode 100644 index 906ac0f9..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-connectivity/nfs-utils/nfs-utils/0001-Makefile.am-update-the-path-of-libnfs.a.patch +++ /dev/null @@ -1,50 +0,0 @@ -From fcece65d1b713eaeef41706898440302f8ce92d9 Mon Sep 17 00:00:00 2001 -From: Mingli Yu -Date: Thu, 12 Jul 2018 15:19:41 +0800 -Subject: [PATCH] Makefile.am: update the path of libnfs.a - -The libnfs.a is under ../support/nfs/.libs/ now, -update the reference path accordingly to fix below -build error when run "make -C tests statdb_dump": -| make: *** No rule to make target '../support/nfs/libnfs.a', needed by 'statdb_dump'. Stop. - -And below error when run "make -C tests/nsm_client nsm_client" -| make: *** No rule to make target '../../support/nfs/libnfs.a', needed by 'nsm_client'. Stop. - -Upstream-Status: Submitted[https://marc.info/?l=linux-nfs&m=154502636522745&w=2] - -Signed-off-by: Mingli Yu ---- - tests/Makefile.am | 2 +- - tests/nsm_client/Makefile.am | 2 +- - 2 files changed, 2 insertions(+), 2 deletions(-) - -diff --git a/tests/Makefile.am b/tests/Makefile.am -index 1f96264..74aa629 100644 ---- a/tests/Makefile.am -+++ b/tests/Makefile.am -@@ -3,7 +3,7 @@ - check_PROGRAMS = statdb_dump - statdb_dump_SOURCES = statdb_dump.c - --statdb_dump_LDADD = ../support/nfs/libnfs.a \ -+statdb_dump_LDADD = ../support/nfs/.libs/libnfs.a \ - ../support/nsm/libnsm.a $(LIBCAP) - - SUBDIRS = nsm_client -diff --git a/tests/nsm_client/Makefile.am b/tests/nsm_client/Makefile.am -index a8fc131..43db9c2 100644 ---- a/tests/nsm_client/Makefile.am -+++ b/tests/nsm_client/Makefile.am -@@ -13,7 +13,7 @@ check_PROGRAMS = nsm_client - nsm_client_SOURCES = $(GENFILES) nsm_client.c - - BUILT_SOURCES = $(GENFILES) --nsm_client_LDADD = ../../support/nfs/libnfs.a \ -+nsm_client_LDADD = ../../support/nfs/.libs/libnfs.a \ - ../../support/nsm/libnsm.a $(LIBCAP) $(LIBTIRPC) - - if CONFIG_RPCGEN --- -2.7.4 - diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-connectivity/nfs-utils/nfs-utils/0001-configure.ac-Do-not-fatalize-Wmissing-prototypes.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-connectivity/nfs-utils/nfs-utils/0001-configure.ac-Do-not-fatalize-Wmissing-prototypes.patch index 17aabb9e..d14f0789 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-connectivity/nfs-utils/nfs-utils/0001-configure.ac-Do-not-fatalize-Wmissing-prototypes.patch +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-connectivity/nfs-utils/nfs-utils/0001-configure.ac-Do-not-fatalize-Wmissing-prototypes.patch @@ -26,18 +26,15 @@ Signed-off-by: Mingli Yu 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/configure.ac b/configure.ac -index e82ff14..d0cc5d5 100644 +index 50002b4..aebff01 100644 --- a/configure.ac +++ b/configure.ac -@@ -548,7 +548,7 @@ my_am_cflags="\ +@@ -582,7 +582,7 @@ my_am_cflags="\ -Wall \ -Wextra \ - -Werror=strict-prototypes \ + $rpcgen_cflags \ - -Werror=missing-prototypes \ + -Wmissing-prototypes \ -Werror=missing-declarations \ -Werror=format=2 \ -Werror=undef \ --- -2.7.4 - diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-connectivity/nfs-utils/nfs-utils/bugfix-adjust-statd-service-name.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-connectivity/nfs-utils/nfs-utils/bugfix-adjust-statd-service-name.patch index 822939f0..f13d7b38 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-connectivity/nfs-utils/nfs-utils/bugfix-adjust-statd-service-name.patch +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-connectivity/nfs-utils/nfs-utils/bugfix-adjust-statd-service-name.patch @@ -12,20 +12,28 @@ instead but forgot to update the mount.nfs helper 'start-statd' accordingly. Upstream-Status: Inappropriate [other] Signed-off-by: Ulrich Ölmann + +Rebase it. + +Signed-off-by: Robert Yang --- - utils/statd/start-statd | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) + utils/statd/start-statd | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) -Index: nfs-utils-2.1.1/utils/statd/start-statd -=================================================================== ---- nfs-utils-2.1.1.orig/utils/statd/start-statd -+++ nfs-utils-2.1.1/utils/statd/start-statd -@@ -28,7 +28,7 @@ fi +diff --git a/utils/statd/start-statd b/utils/statd/start-statd +index af5c950..df9b9be 100755 +--- a/utils/statd/start-statd ++++ b/utils/statd/start-statd +@@ -28,10 +28,10 @@ fi # First try systemd if it's installed. if [ -d /run/systemd/system ]; then # Quit only if the call worked. -- systemctl start rpc-statd.service && exit -+ systemctl start nfs-statd.service && exit +- if systemctl start rpc-statd.service; then ++ if systemctl start nfs-statd.service; then + # Ensure systemd knows not to stop rpc.statd or its dependencies + # on 'systemctl isolate ..' +- systemctl add-wants --runtime remote-fs.target rpc-statd.service ++ systemctl add-wants --runtime remote-fs.target nfs-statd.service + exit 0 + fi fi - - cd / diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-connectivity/nfs-utils/nfs-utils/nfs-mountd.service b/Contrib-Inspur/openbmc/poky/meta/recipes-connectivity/nfs-utils/nfs-utils/nfs-mountd.service index 27ea58d3..c01415de 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-connectivity/nfs-utils/nfs-utils/nfs-mountd.service +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-connectivity/nfs-utils/nfs-utils/nfs-mountd.service @@ -1,6 +1,7 @@ [Unit] Description=NFS Mount Daemon DefaultDependencies=no +After=rpcbind.socket Requires=proc-fs-nfsd.mount After=proc-fs-nfsd.mount After=network.target local-fs.target @@ -10,6 +11,7 @@ ConditionPathExists=@SYSCONFDIR@/exports [Service] EnvironmentFile=-@SYSCONFDIR@/nfs-utils.conf ExecStart=@SBINDIR@/rpc.mountd -F $MOUNTD_OPTS +LimitNOFILE=@HIGH_RLIMIT_NOFILE@ [Install] WantedBy=multi-user.target diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-connectivity/nfs-utils/nfs-utils/nfs-statd.service b/Contrib-Inspur/openbmc/poky/meta/recipes-connectivity/nfs-utils/nfs-utils/nfs-statd.service index 6e196b8c..4fa64e19 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-connectivity/nfs-utils/nfs-utils/nfs-statd.service +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-connectivity/nfs-utils/nfs-utils/nfs-statd.service @@ -8,6 +8,7 @@ After=network.target nss-lookup.target rpcbind.service [Service] EnvironmentFile=-@SYSCONFDIR@/nfs-utils.conf ExecStart=@SBINDIR@/rpc.statd -F $STATD_OPTS +LimitNOFILE=@HIGH_RLIMIT_NOFILE@ [Install] WantedBy=multi-user.target diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-connectivity/nfs-utils/nfs-utils/nfs-utils-musl-limits.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-connectivity/nfs-utils/nfs-utils/nfs-utils-musl-limits.patch deleted file mode 100644 index 25ca4151..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-connectivity/nfs-utils/nfs-utils/nfs-utils-musl-limits.patch +++ /dev/null @@ -1,133 +0,0 @@ -Fixed: -| file.c: In function 'generic_make_pathname': -| file.c:48:13: error: 'PATH_MAX' undeclared (first use in this function); did you mean 'RAND_MAX'? -| if (size > PATH_MAX) -| ^~~~~~~~ -[snip] - -Upstream-Status: Pending [https://git.alpinelinux.org/cgit/aports/tree/main/nfs-utils/limits.patch?id=f6734a77d3caee73325f8cc1f77d1b5117a75096] - -Signed-off-by: Robert Yang ---- - support/export/export.c | 1 + - support/export/xtab.c | 1 + - support/misc/file.c | 1 + - support/nfs/xcommon.c | 1 + - support/nsm/file.c | 1 + - utils/blkmapd/device-discovery.c | 1 + - utils/gssd/krb5_util.c | 1 + - utils/mountd/cache.c | 1 + - utils/mountd/mountd.c | 1 + - utils/mountd/rmtab.c | 1 + - 10 files changed, 10 insertions(+) - -diff --git a/support/export/export.c b/support/export/export.c ---- a/support/export/export.c -+++ b/support/export/export.c -@@ -17,6 +17,7 @@ - #include - #include - #include -+#include - #include "xmalloc.h" - #include "nfslib.h" - #include "exportfs.h" -diff --git a/support/export/xtab.c b/support/export/xtab.c ---- a/support/export/xtab.c -+++ b/support/export/xtab.c -@@ -18,6 +18,7 @@ - #include - #include - #include -+#include - - #include "nfslib.h" - #include "exportfs.h" -diff --git a/support/misc/file.c b/support/misc/file.c ---- a/support/misc/file.c -+++ b/support/misc/file.c -@@ -27,6 +27,7 @@ - #include - #include - #include -+#include - - #include "xlog.h" - #include "misc.h" -diff --git a/support/nfs/xcommon.c b/support/nfs/xcommon.c ---- a/support/nfs/xcommon.c -+++ b/support/nfs/xcommon.c -@@ -16,6 +16,7 @@ - #include - #include - #include -+#include - - #include "xcommon.h" - #include "nls.h" /* _() */ -diff --git a/support/nsm/file.c b/support/nsm/file.c ---- a/support/nsm/file.c -+++ b/support/nsm/file.c -@@ -85,6 +85,7 @@ - #include - #include - #include -+#include - - #include "xlog.h" - #include "nsm.h" -diff --git a/utils/blkmapd/device-discovery.c b/utils/blkmapd/device-discovery.c ---- a/utils/blkmapd/device-discovery.c -+++ b/utils/blkmapd/device-discovery.c -@@ -49,6 +49,7 @@ - #include - #include - #include -+#include - #include - - #ifdef HAVE_CONFIG_H -diff --git a/utils/gssd/krb5_util.c b/utils/gssd/krb5_util.c ---- a/utils/gssd/krb5_util.c -+++ b/utils/gssd/krb5_util.c -@@ -120,6 +120,7 @@ - #endif - #include - #include -+#include - - #include "gssd.h" - #include "err_util.h" -diff --git a/utils/mountd/cache.c b/utils/mountd/cache.c ---- a/utils/mountd/cache.c -+++ b/utils/mountd/cache.c -@@ -26,6 +26,7 @@ - #include - #include - #include -+#include - #include "misc.h" - #include "nfslib.h" - #include "exportfs.h" -diff --git a/utils/mountd/mountd.c b/utils/mountd/mountd.c ---- a/utils/mountd/mountd.c -+++ b/utils/mountd/mountd.c -@@ -22,6 +22,7 @@ - #include - #include - #include -+#include - - #include "conffile.h" - #include "xmalloc.h" -diff --git a/utils/mountd/rmtab.c b/utils/mountd/rmtab.c ---- a/utils/mountd/rmtab.c -+++ b/utils/mountd/rmtab.c -@@ -16,6 +16,7 @@ - #include - #include - #include -+#include - - #include "misc.h" - #include "exportfs.h" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-connectivity/nfs-utils/nfs-utils/nfs-utils-musl-res_querydomain.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-connectivity/nfs-utils/nfs-utils/nfs-utils-musl-res_querydomain.patch index 22002fad..921f5edc 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-connectivity/nfs-utils/nfs-utils/nfs-utils-musl-res_querydomain.patch +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-connectivity/nfs-utils/nfs-utils/nfs-utils-musl-res_querydomain.patch @@ -11,30 +11,19 @@ Upstream-Status: Pending [https://github.com/alpinelinux/aports/blob/master/main Signed-off-by: Robert Yang --- - configure.ac | 13 ++++++------- - 1 file changed, 6 insertions(+), 7 deletions(-) + configure.ac | 9 ++++----- + 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/configure.ac b/configure.ac -index 276dec3..760238b 100644 +index 50002b4..dcadb23 100644 --- a/configure.ac +++ b/configure.ac -@@ -408,7 +408,7 @@ if test "$enable_gss" = yes; then - fi - - dnl libdnsidmap specific checks --AC_CHECK_LIB([resolv], [__res_querydomain], , AC_MSG_ERROR(res_querydomain needed)) -+AC_CHECK_LIB([resolv], [res_querydomain], , AC_MSG_ERROR(res_querydomain needed)) - - AC_ARG_ENABLE([ldap], - [AS_HELP_STRING([--disable-ldap],[Disable support for LDAP @<:default=detect@:>@])]) -@@ -547,11 +547,11 @@ my_am_cflags="\ - -pipe \ +@@ -582,10 +582,10 @@ my_am_cflags="\ -Wall \ -Wextra \ -- -Werror=strict-prototypes \ + $rpcgen_cflags \ - -Werror=missing-prototypes \ - -Werror=missing-declarations \ -+ -Wstrict-prototypes \ + -Wmissing-prototypes \ + -Wmissing-declarations \ -Werror=format=2 \ @@ -43,7 +32,7 @@ index 276dec3..760238b 100644 -Werror=missing-include-dirs \ -Werror=strict-aliasing=2 \ -Werror=init-self \ -@@ -579,10 +579,9 @@ AC_DEFUN([CHECK_CCSUPPORT], [ +@@ -614,10 +614,9 @@ AC_DEFUN([CHECK_CCSUPPORT], [ CHECK_CCSUPPORT([-Werror=format-overflow=2], [flg1]) CHECK_CCSUPPORT([-Werror=int-conversion], [flg2]) diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-connectivity/nfs-utils/nfs-utils/nfsserver b/Contrib-Inspur/openbmc/poky/meta/recipes-connectivity/nfs-utils/nfs-utils/nfsserver index d5e9c38a..0f5747cc 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-connectivity/nfs-utils/nfs-utils/nfsserver +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-connectivity/nfs-utils/nfs-utils/nfsserver @@ -107,7 +107,7 @@ stop_nfsd(){ #FIXME: need to create the /var/lib/nfs/... directories case "$1" in start) - exportfs -r + test -r /etc/exports && exportfs -r start_nfsd "$NFS_SERVERS" start_mountd test -r /etc/exports && exportfs -a;; diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-connectivity/nfs-utils/nfs-utils_2.3.3.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-connectivity/nfs-utils/nfs-utils_2.3.3.bb deleted file mode 100644 index ac4437b9..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-connectivity/nfs-utils/nfs-utils_2.3.3.bb +++ /dev/null @@ -1,153 +0,0 @@ -SUMMARY = "userspace utilities for kernel nfs" -DESCRIPTION = "The nfs-utils package provides a daemon for the kernel \ -NFS server and related tools." -HOMEPAGE = "http://nfs.sourceforge.net/" -SECTION = "console/network" - -LICENSE = "MIT & GPLv2+ & BSD" -LIC_FILES_CHKSUM = "file://COPYING;md5=95f3a93a5c3c7888de623b46ea085a84" - -# util-linux for libblkid -DEPENDS = "libcap libevent util-linux sqlite3 libtirpc" -RDEPENDS_${PN} = "${PN}-client bash" -RRECOMMENDS_${PN} = "kernel-module-nfsd" - -inherit useradd - -USERADD_PACKAGES = "${PN}-client" -USERADD_PARAM_${PN}-client = "--system --home-dir /var/lib/nfs \ - --shell /bin/false --user-group rpcuser" - -SRC_URI = "${KERNELORG_MIRROR}/linux/utils/nfs-utils/${PV}/nfs-utils-${PV}.tar.xz \ - file://nfsserver \ - file://nfscommon \ - file://nfs-utils.conf \ - file://nfs-server.service \ - file://nfs-mountd.service \ - file://nfs-statd.service \ - file://proc-fs-nfsd.mount \ - file://nfs-utils-debianize-start-statd.patch \ - file://bugfix-adjust-statd-service-name.patch \ - file://nfs-utils-musl-limits.patch \ - file://0001-cacheio-use-intmax_t-for-formatted-IO.patch \ - file://0001-Do-not-pass-null-pointer-to-freeaddrinfo.patch \ - file://clang-format-string.patch \ - file://0001-Makefile.am-update-the-path-of-libnfs.a.patch \ - file://0001-Makefile.am-fix-undefined-function-for-libnsm.a.patch \ - file://0001-Don-t-build-tools-with-CC_FOR_BUILD.patch \ -" -SRC_URI_append_libc-glibc = " file://0001-configure.ac-Do-not-fatalize-Wmissing-prototypes.patch" -SRC_URI_append_libc-musl = " file://nfs-utils-musl-res_querydomain.patch" - -SRC_URI[md5sum] = "b6c9c032995af1c08fea9fbcc1ce33e9" -SRC_URI[sha256sum] = "f68b34793831b05f1fd5760d6bdec92772c7684177586a99a61e7b444f336322" - -# Only kernel-module-nfsd is required here (but can be built-in) - the nfsd module will -# pull in the remainder of the dependencies. - -INITSCRIPT_PACKAGES = "${PN} ${PN}-client" -INITSCRIPT_NAME = "nfsserver" -INITSCRIPT_PARAMS = "defaults" -INITSCRIPT_NAME_${PN}-client = "nfscommon" -INITSCRIPT_PARAMS_${PN}-client = "defaults 19 21" - -inherit autotools-brokensep update-rc.d systemd pkgconfig - -SYSTEMD_PACKAGES = "${PN} ${PN}-client" -SYSTEMD_SERVICE_${PN} = "nfs-server.service nfs-mountd.service" -SYSTEMD_SERVICE_${PN}-client = "nfs-statd.service" - -# --enable-uuid is need for cross-compiling -EXTRA_OECONF = "--with-statduser=rpcuser \ - --enable-mountconfig \ - --enable-libmount-mount \ - --enable-uuid \ - --disable-gss \ - --disable-nfsdcltrack \ - --with-statdpath=/var/lib/nfs/statd \ - " - -CFLAGS += "-Wno-error=format-overflow" - -PACKAGECONFIG ??= "tcp-wrappers \ - ${@bb.utils.filter('DISTRO_FEATURES', 'ipv6', d)} \ -" -PACKAGECONFIG_remove_libc-musl = "tcp-wrappers" -PACKAGECONFIG[tcp-wrappers] = "--with-tcp-wrappers,--without-tcp-wrappers,tcp-wrappers" -PACKAGECONFIG[ipv6] = "--enable-ipv6,--disable-ipv6," -# libdevmapper is available in meta-oe -PACKAGECONFIG[nfsv41] = "--enable-nfsv41,--disable-nfsv41,libdevmapper" -# keyutils is available in meta-security -PACKAGECONFIG[nfsv4] = "--enable-nfsv4,--disable-nfsv4,keyutils" - -PACKAGES =+ "${PN}-client ${PN}-mount ${PN}-stats" - -CONFFILES_${PN}-client += "${localstatedir}/lib/nfs/etab \ - ${localstatedir}/lib/nfs/rmtab \ - ${localstatedir}/lib/nfs/xtab \ - ${localstatedir}/lib/nfs/statd/state \ - ${sysconfdir}/nfsmount.conf" - -FILES_${PN}-client = "${sbindir}/*statd \ - ${sbindir}/rpc.idmapd ${sbindir}/sm-notify \ - ${sbindir}/showmount ${sbindir}/nfsstat \ - ${localstatedir}/lib/nfs \ - ${sysconfdir}/nfs-utils.conf \ - ${sysconfdir}/nfsmount.conf \ - ${sysconfdir}/init.d/nfscommon \ - ${systemd_unitdir}/system/nfs-statd.service" -RDEPENDS_${PN}-client = "${PN}-mount rpcbind" - -FILES_${PN}-mount = "${base_sbindir}/*mount.nfs*" - -FILES_${PN}-stats = "${sbindir}/mountstats ${sbindir}/nfsiostat" -RDEPENDS_${PN}-stats = "python3-core" - -FILES_${PN} += "${systemd_unitdir}" - -do_configure_prepend() { - sed -i -e 's,sbindir = /sbin,sbindir = ${base_sbindir},g' \ - ${S}/utils/mount/Makefile.am - - sed -i -e 's,sbindir = /sbin,sbindir = ${base_sbindir},g' \ - ${S}/utils/osd_login/Makefile.am -} - -# Make clean needed because the package comes with -# precompiled 64-bit objects that break the build -do_compile_prepend() { - make clean -} - -do_install_append () { - install -d ${D}${sysconfdir}/init.d - install -m 0755 ${WORKDIR}/nfsserver ${D}${sysconfdir}/init.d/nfsserver - install -m 0755 ${WORKDIR}/nfscommon ${D}${sysconfdir}/init.d/nfscommon - - install -m 0755 ${WORKDIR}/nfs-utils.conf ${D}${sysconfdir} - install -m 0755 ${S}/utils/mount/nfsmount.conf ${D}${sysconfdir} - - install -d ${D}${systemd_unitdir}/system - install -m 0644 ${WORKDIR}/nfs-server.service ${D}${systemd_unitdir}/system/ - install -m 0644 ${WORKDIR}/nfs-mountd.service ${D}${systemd_unitdir}/system/ - install -m 0644 ${WORKDIR}/nfs-statd.service ${D}${systemd_unitdir}/system/ - sed -i -e 's,@SBINDIR@,${sbindir},g' \ - -e 's,@SYSCONFDIR@,${sysconfdir},g' \ - ${D}${systemd_unitdir}/system/*.service - if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}; then - install -m 0644 ${WORKDIR}/proc-fs-nfsd.mount ${D}${systemd_unitdir}/system/ - install -d ${D}${systemd_unitdir}/system/sysinit.target.wants/ - ln -sf ../proc-fs-nfsd.mount ${D}${systemd_unitdir}/system/sysinit.target.wants/proc-fs-nfsd.mount - fi - - # kernel code as of 3.8 hard-codes this path as a default - install -d ${D}/var/lib/nfs/v4recovery - - # chown the directories and files - chown -R rpcuser:rpcuser ${D}${localstatedir}/lib/nfs/statd - chmod 0644 ${D}${localstatedir}/lib/nfs/statd/state - - # Make python tools use python 3 - sed -i -e '1s,#!.*python.*,#!${bindir}/python3,' ${D}${sbindir}/mountstats ${D}${sbindir}/nfsiostat - -} diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-connectivity/nfs-utils/nfs-utils_2.4.1.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-connectivity/nfs-utils/nfs-utils_2.4.1.bb new file mode 100644 index 00000000..eb32bccb --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-connectivity/nfs-utils/nfs-utils_2.4.1.bb @@ -0,0 +1,152 @@ +SUMMARY = "userspace utilities for kernel nfs" +DESCRIPTION = "The nfs-utils package provides a daemon for the kernel \ +NFS server and related tools." +HOMEPAGE = "http://nfs.sourceforge.net/" +SECTION = "console/network" + +LICENSE = "MIT & GPLv2+ & BSD" +LIC_FILES_CHKSUM = "file://COPYING;md5=95f3a93a5c3c7888de623b46ea085a84" + +# util-linux for libblkid +DEPENDS = "libcap libevent util-linux sqlite3 libtirpc" +RDEPENDS_${PN} = "${PN}-client" +RRECOMMENDS_${PN} = "kernel-module-nfsd" + +inherit useradd + +USERADD_PACKAGES = "${PN}-client" +USERADD_PARAM_${PN}-client = "--system --home-dir /var/lib/nfs \ + --shell /bin/false --user-group rpcuser" + +SRC_URI = "${KERNELORG_MIRROR}/linux/utils/nfs-utils/${PV}/nfs-utils-${PV}.tar.xz \ + file://nfsserver \ + file://nfscommon \ + file://nfs-utils.conf \ + file://nfs-server.service \ + file://nfs-mountd.service \ + file://nfs-statd.service \ + file://proc-fs-nfsd.mount \ + file://nfs-utils-debianize-start-statd.patch \ + file://bugfix-adjust-statd-service-name.patch \ + file://0001-cacheio-use-intmax_t-for-formatted-IO.patch \ + file://clang-format-string.patch \ + file://0001-Makefile.am-fix-undefined-function-for-libnsm.a.patch \ + file://0001-Don-t-build-tools-with-CC_FOR_BUILD.patch \ + file://0001-Fix-include-order-between-config.h-and-stat.h.patch \ +" +SRC_URI_append_libc-glibc = " file://0001-configure.ac-Do-not-fatalize-Wmissing-prototypes.patch" +SRC_URI_append_libc-musl = " file://nfs-utils-musl-res_querydomain.patch" + +SRC_URI[md5sum] = "161efe469ec1b06f1c750bd87f8ba6dd" +SRC_URI[sha256sum] = "85274ada94479b1beba9f8eeffd19f477c53a6710b9998d1192c807854087736" + +# Only kernel-module-nfsd is required here (but can be built-in) - the nfsd module will +# pull in the remainder of the dependencies. + +INITSCRIPT_PACKAGES = "${PN} ${PN}-client" +INITSCRIPT_NAME = "nfsserver" +INITSCRIPT_PARAMS = "defaults" +INITSCRIPT_NAME_${PN}-client = "nfscommon" +INITSCRIPT_PARAMS_${PN}-client = "defaults 19 21" + +inherit autotools-brokensep update-rc.d systemd pkgconfig + +SYSTEMD_PACKAGES = "${PN} ${PN}-client" +SYSTEMD_SERVICE_${PN} = "nfs-server.service nfs-mountd.service" +SYSTEMD_SERVICE_${PN}-client = "nfs-statd.service" + +# --enable-uuid is need for cross-compiling +EXTRA_OECONF = "--with-statduser=rpcuser \ + --enable-mountconfig \ + --enable-libmount-mount \ + --enable-uuid \ + --disable-gss \ + --disable-nfsdcltrack \ + --with-statdpath=/var/lib/nfs/statd \ + " + +CFLAGS += "-Wno-error=format-overflow" + +PACKAGECONFIG ??= "tcp-wrappers \ + ${@bb.utils.filter('DISTRO_FEATURES', 'ipv6', d)} \ +" +PACKAGECONFIG_remove_libc-musl = "tcp-wrappers" +PACKAGECONFIG[tcp-wrappers] = "--with-tcp-wrappers,--without-tcp-wrappers,tcp-wrappers" +PACKAGECONFIG[ipv6] = "--enable-ipv6,--disable-ipv6," +# libdevmapper is available in meta-oe +PACKAGECONFIG[nfsv41] = "--enable-nfsv41,--disable-nfsv41,libdevmapper" +# keyutils is available in meta-security +PACKAGECONFIG[nfsv4] = "--enable-nfsv4,--disable-nfsv4,keyutils" + +PACKAGES =+ "${PN}-client ${PN}-mount ${PN}-stats" + +CONFFILES_${PN}-client += "${localstatedir}/lib/nfs/etab \ + ${localstatedir}/lib/nfs/rmtab \ + ${localstatedir}/lib/nfs/xtab \ + ${localstatedir}/lib/nfs/statd/state \ + ${sysconfdir}/nfsmount.conf" + +FILES_${PN}-client = "${sbindir}/*statd \ + ${sbindir}/rpc.idmapd ${sbindir}/sm-notify \ + ${sbindir}/showmount ${sbindir}/nfsstat \ + ${localstatedir}/lib/nfs \ + ${sysconfdir}/nfs-utils.conf \ + ${sysconfdir}/nfsmount.conf \ + ${sysconfdir}/init.d/nfscommon \ + ${systemd_unitdir}/system/nfs-statd.service" +RDEPENDS_${PN}-client = "${PN}-mount rpcbind" + +FILES_${PN}-mount = "${base_sbindir}/*mount.nfs*" + +FILES_${PN}-stats = "${sbindir}/mountstats ${sbindir}/nfsiostat" +RDEPENDS_${PN}-stats = "python3-core" + +FILES_${PN} += "${systemd_unitdir}" + +do_configure_prepend() { + sed -i -e 's,sbindir = /sbin,sbindir = ${base_sbindir},g' \ + ${S}/utils/mount/Makefile.am +} + +# Make clean needed because the package comes with +# precompiled 64-bit objects that break the build +do_compile_prepend() { + make clean +} + +# Works on systemd only +HIGH_RLIMIT_NOFILE ??= "4096" + +do_install_append () { + install -d ${D}${sysconfdir}/init.d + install -m 0755 ${WORKDIR}/nfsserver ${D}${sysconfdir}/init.d/nfsserver + install -m 0755 ${WORKDIR}/nfscommon ${D}${sysconfdir}/init.d/nfscommon + + install -m 0755 ${WORKDIR}/nfs-utils.conf ${D}${sysconfdir} + install -m 0755 ${S}/utils/mount/nfsmount.conf ${D}${sysconfdir} + + install -d ${D}${systemd_unitdir}/system + install -m 0644 ${WORKDIR}/nfs-server.service ${D}${systemd_unitdir}/system/ + install -m 0644 ${WORKDIR}/nfs-mountd.service ${D}${systemd_unitdir}/system/ + install -m 0644 ${WORKDIR}/nfs-statd.service ${D}${systemd_unitdir}/system/ + sed -i -e 's,@SBINDIR@,${sbindir},g' \ + -e 's,@SYSCONFDIR@,${sysconfdir},g' \ + -e 's,@HIGH_RLIMIT_NOFILE@,${HIGH_RLIMIT_NOFILE},g' \ + ${D}${systemd_unitdir}/system/*.service + if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}; then + install -m 0644 ${WORKDIR}/proc-fs-nfsd.mount ${D}${systemd_unitdir}/system/ + install -d ${D}${systemd_unitdir}/system/sysinit.target.wants/ + ln -sf ../proc-fs-nfsd.mount ${D}${systemd_unitdir}/system/sysinit.target.wants/proc-fs-nfsd.mount + fi + + # kernel code as of 3.8 hard-codes this path as a default + install -d ${D}/var/lib/nfs/v4recovery + + # chown the directories and files + chown -R rpcuser:rpcuser ${D}${localstatedir}/lib/nfs/statd + chmod 0644 ${D}${localstatedir}/lib/nfs/statd/state + + # Make python tools use python 3 + sed -i -e '1s,#!.*python.*,#!${bindir}/python3,' ${D}${sbindir}/mountstats ${D}${sbindir}/nfsiostat + +} diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-connectivity/ofono/ofono.inc b/Contrib-Inspur/openbmc/poky/meta/recipes-connectivity/ofono/ofono.inc deleted file mode 100644 index e1185c6e..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-connectivity/ofono/ofono.inc +++ /dev/null @@ -1,39 +0,0 @@ -HOMEPAGE = "http://www.ofono.org" -SUMMARY = "open source telephony" -DESCRIPTION = "oFono is a stack for mobile telephony devices on Linux. oFono supports speaking to telephony devices through specific drivers, or with generic AT commands." -LICENSE = "GPLv2" -LIC_FILES_CHKSUM = "file://COPYING;md5=eb723b61539feef013de476e68b5c50a \ - file://src/ofono.h;beginline=1;endline=20;md5=3ce17d5978ef3445def265b98899c2ee" - -inherit autotools pkgconfig update-rc.d systemd bluetooth gobject-introspection-data - -DEPENDS = "dbus glib-2.0 udev mobile-broadband-provider-info ell" - -INITSCRIPT_NAME = "ofono" -INITSCRIPT_PARAMS = "defaults 22" - -PACKAGECONFIG ??= "\ - ${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)} \ - ${@bb.utils.contains('DISTRO_FEATURES', 'bluetooth', 'bluez', '', d)} \ - " -PACKAGECONFIG[systemd] = "--with-systemdunitdir=${systemd_unitdir}/system/,--with-systemdunitdir=" -PACKAGECONFIG[bluez] = "--enable-bluetooth, --disable-bluetooth, ${BLUEZ}" - -EXTRA_OECONF += "--enable-test --enable-external-ell" - -SYSTEMD_SERVICE_${PN} = "ofono.service" - -do_install_append() { - install -d ${D}${sysconfdir}/init.d/ - install -m 0755 ${WORKDIR}/ofono ${D}${sysconfdir}/init.d/ofono -} - -PACKAGES =+ "${PN}-tests" - -RDEPENDS_${PN} += "dbus" -RRECOMMENDS_${PN} += "kernel-module-tun mobile-broadband-provider-info" - -FILES_${PN} += "${systemd_unitdir}" -FILES_${PN}-tests = "${libdir}/${BPN}/test" -RDEPENDS_${PN}-tests = "python3 python3-dbus" -RDEPENDS_${PN}-tests += "${@bb.utils.contains('GI_DATA_ENABLED', 'True', 'python3-pygobject', '', d)}" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-connectivity/ofono/ofono/0001-Makefile.am-Don-t-overwrite-src_ofonod_DEPENDENCIES.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-connectivity/ofono/ofono/0001-Makefile.am-Don-t-overwrite-src_ofonod_DEPENDENCIES.patch deleted file mode 100644 index 77073ddb..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-connectivity/ofono/ofono/0001-Makefile.am-Don-t-overwrite-src_ofonod_DEPENDENCIES.patch +++ /dev/null @@ -1,50 +0,0 @@ -From eeaf8dac80f15a2b7c18d1d4ee63106973a6a873 Mon Sep 17 00:00:00 2001 -From: Adrian Bunk -Date: Tue, 21 May 2019 14:13:35 +0300 -Subject: Makefile.am: Don't overwrite src_ofonod_DEPENDENCIES - -src_ofonod_DEPENDENCIES did overwrite the dependencies -automatically generated from src_ofonod_LDADD with -incomplete dependencies. - -This fixes the following build error: -... - CCLD src/ofonod -libtool: error: cannot find the library 'gdbus/libgdbus-internal.la' or unhandled argument 'gdbus/libgdbus-internal.la' -make: *** [Makefile:3448: src/ofonod] Error 1 - -Upstream-Status: Submitted -Signed-off-by: Adrian Bunk ---- - Makefile.am | 4 ---- - 1 file changed, 4 deletions(-) - -diff --git a/Makefile.am b/Makefile.am -index d2e310d5..5edc4488 100644 ---- a/Makefile.am -+++ b/Makefile.am -@@ -6,12 +6,10 @@ noinst_LTLIBRARIES = - if EXTERNAL_ELL - ell_cflags = @ELL_CFLAGS@ - ell_ldadd = @ELL_LIBS@ --ell_dependencies = - ell_built_sources = - else - ell_cflags = - ell_ldadd = ell/libell-internal.la --ell_dependencies = $(ell_ldadd) - ell_built_sources = ell/internal ell/ell.h - - noinst_LTLIBRARIES += ell/libell-internal.la -@@ -729,8 +727,6 @@ src_ofonod_LDADD = gdbus/libgdbus-internal.la $(builtin_libadd) $(ell_ldadd) \ - src_ofonod_LDFLAGS = -Wl,--export-dynamic \ - -Wl,--version-script=$(srcdir)/src/ofono.ver - --src_ofonod_DEPENDENCIES = $(ell_dependencies) -- - BUILT_SOURCES = $(local_headers) $(ell_built_sources) src/builtin.h - - CLEANFILES = $(BUILT_SOURCES) $(rules_DATA) --- -2.20.1 - diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-connectivity/ofono/ofono/0001-build-Add-check-for-explicit_bzero-support.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-connectivity/ofono/ofono/0001-build-Add-check-for-explicit_bzero-support.patch deleted file mode 100644 index 4676bb76..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-connectivity/ofono/ofono/0001-build-Add-check-for-explicit_bzero-support.patch +++ /dev/null @@ -1,27 +0,0 @@ -From dff595671bf5a46f7c9231966a6cd7d2a0183076 Mon Sep 17 00:00:00 2001 -From: Marcel Holtmann -Date: Wed, 15 May 2019 09:39:44 +0200 -Subject: build: Add check for explicit_bzero support - -Upstream-Status: Backport -Signed-off-by: Adrian Bunk ---- - configure.ac | 2 ++ - 1 file changed, 2 insertions(+) - -diff --git a/configure.ac b/configure.ac -index bacb7ac5..cad35c5d 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -54,6 +54,8 @@ AC_ARG_ENABLE(pie, AC_HELP_STRING([--enable-pie], - fi - ]) - -+AC_CHECK_FUNCS(explicit_bzero) -+ - AC_CHECK_FUNC(signalfd, dummy=yes, - AC_MSG_ERROR(signalfd support is required)) - --- -2.20.1 - diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-connectivity/ofono/ofono/0001-build-Fix-a-race-condition.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-connectivity/ofono/ofono/0001-build-Fix-a-race-condition.patch deleted file mode 100644 index 2e2aa882..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-connectivity/ofono/ofono/0001-build-Fix-a-race-condition.patch +++ /dev/null @@ -1,28 +0,0 @@ -From 3e43e3342f3fada1624a28500a5337019fed7d89 Mon Sep 17 00:00:00 2001 -From: Adrian Bunk -Date: Thu, 9 May 2019 12:19:51 +0300 -Subject: build: Fix a race condition - -ell/ell.h was written before ell/ existed - -Upstream-Status: Backport -Signed-off-by: Adrian Bunk ---- - Makefile.am | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/Makefile.am b/Makefile.am -index a569c4a3..d2e310d5 100644 ---- a/Makefile.am -+++ b/Makefile.am -@@ -1107,6 +1107,7 @@ ell/internal: Makefile - done > $@ - - ell/ell.h: Makefile -+ $(AM_V_at)$(MKDIR_P) ell - $(AM_V_at)echo -n > $@ - $(AM_V_GEN)for f in $(ell_headers) ; do \ - echo "#include <$$f>" >> $@ ; \ --- -2.20.1 - diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-connectivity/ofono/ofono/0001-main-Quiet-ld-errors-with-external-ell.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-connectivity/ofono/ofono/0001-main-Quiet-ld-errors-with-external-ell.patch deleted file mode 100644 index f9858e7f..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-connectivity/ofono/ofono/0001-main-Quiet-ld-errors-with-external-ell.patch +++ /dev/null @@ -1,36 +0,0 @@ -From 48e31f9fc3cf3c486c3d27a67b2687f6df0c5c71 Mon Sep 17 00:00:00 2001 -From: Denis Kenzior -Date: Thu, 16 May 2019 15:10:53 -0500 -Subject: main: Quiet ld errors with external ell - -When oFono is built with --enable-external-ell, the compiler for some -reason does not generate a debug section on some systems. This is due -to the fact that l_debug is never called. However, ell also does not -call l_debug, yet when built-in ell is used, the section is created by -the compiler. - -For now work around this by adding a no-op l_debug() call in main.c. -The real fix is to migrate all of the oFono logging functionality to use -ell instead. - -Upstream-Status: Backport -Signed-off-by: Adrian Bunk ---- - src/main.c | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/src/main.c b/src/main.c -index 8623a060..4529cde1 100644 ---- a/src/main.c -+++ b/src/main.c -@@ -236,6 +236,7 @@ int main(int argc, char **argv) - event_loop = g_main_loop_new(NULL, FALSE); - - l_log_set_stderr(); -+ l_debug(""); - l_debug_enable("*"); - l_main_init(); - --- -2.20.1 - diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-connectivity/ofono/ofono_1.29.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-connectivity/ofono/ofono_1.29.bb deleted file mode 100644 index 900a6d26..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-connectivity/ofono/ofono_1.29.bb +++ /dev/null @@ -1,13 +0,0 @@ -require ofono.inc - -SRC_URI = "\ - ${KERNELORG_MIRROR}/linux/network/${BPN}/${BP}.tar.xz \ - file://ofono \ - file://0001-build-Fix-a-race-condition.patch \ - file://0001-build-Add-check-for-explicit_bzero-support.patch \ - file://0001-main-Quiet-ld-errors-with-external-ell.patch \ - file://0001-Makefile.am-Don-t-overwrite-src_ofonod_DEPENDENCIES.patch \ - file://0001-mbim-add-an-optional-TEMP_FAILURE_RETRY-macro-copy.patch \ -" -SRC_URI[md5sum] = "4fa0372630ff03f223452e4d05efa8f8" -SRC_URI[sha256sum] = "67f0f8e5740dea5b46309e40667d1e560be39c90ef08dd01ff9e9ce8e61f0679" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-connectivity/ofono/ofono_1.31.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-connectivity/ofono/ofono_1.31.bb new file mode 100644 index 00000000..7d0976ad --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-connectivity/ofono/ofono_1.31.bb @@ -0,0 +1,50 @@ +SUMMARY = "open source telephony" +DESCRIPTION = "oFono is a stack for mobile telephony devices on Linux. oFono supports speaking to telephony devices through specific drivers, or with generic AT commands." +HOMEPAGE = "http://www.ofono.org" +BUGTRACKER = "https://01.org/jira/browse/OF" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=eb723b61539feef013de476e68b5c50a \ + file://src/ofono.h;beginline=1;endline=20;md5=3ce17d5978ef3445def265b98899c2ee" +DEPENDS = "dbus glib-2.0 udev mobile-broadband-provider-info ell" + +SRC_URI = "\ + ${KERNELORG_MIRROR}/linux/network/${BPN}/${BP}.tar.xz \ + file://ofono \ + file://0001-mbim-add-an-optional-TEMP_FAILURE_RETRY-macro-copy.patch \ +" +SRC_URI[md5sum] = "1c26340e3c6ed132cc812595081bb3dc" +SRC_URI[sha256sum] = "a15c5d28096c10eb30e47a68b6dc2e7c4a5a99d7f4cfedf0b69624f33d859e9b" + +inherit autotools pkgconfig update-rc.d systemd gobject-introspection-data + +INITSCRIPT_NAME = "ofono" +INITSCRIPT_PARAMS = "defaults 22" +SYSTEMD_SERVICE_${PN} = "ofono.service" + +PACKAGECONFIG ??= "\ + ${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)} \ + ${@bb.utils.contains('DISTRO_FEATURES', 'bluetooth', 'bluez', '', d)} \ +" +PACKAGECONFIG[systemd] = "--with-systemdunitdir=${systemd_unitdir}/system/,--with-systemdunitdir=" +PACKAGECONFIG[bluez] = "--enable-bluetooth, --disable-bluetooth, bluez5" + +EXTRA_OECONF += "--enable-test --enable-external-ell" + +do_install_append() { + install -d ${D}${sysconfdir}/init.d/ + install -m 0755 ${WORKDIR}/ofono ${D}${sysconfdir}/init.d/ofono +} + +PACKAGES =+ "${PN}-tests" + +FILES_${PN} += "${systemd_unitdir}" +FILES_${PN}-tests = "${libdir}/${BPN}/test" + +RDEPENDS_${PN} += "dbus" +RDEPENDS_${PN}-tests = "\ + python3-core \ + python3-dbus \ + ${@bb.utils.contains('GI_DATA_ENABLED', 'True', 'python3-pygobject', '', d)} \ +" + +RRECOMMENDS_${PN} += "kernel-module-tun mobile-broadband-provider-info" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-connectivity/openssh/openssh/0001-upstream-fix-integer-overflow-in-XMSS-private-key-pa.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-connectivity/openssh/openssh/0001-upstream-fix-integer-overflow-in-XMSS-private-key-pa.patch new file mode 100644 index 00000000..3265be34 --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-connectivity/openssh/openssh/0001-upstream-fix-integer-overflow-in-XMSS-private-key-pa.patch @@ -0,0 +1,40 @@ +From 2014fad3d28090b59d2f8a0971166c06e5fa6da6 Mon Sep 17 00:00:00 2001 +From: Hongxu Jia +Date: Fri, 18 Oct 2019 14:56:58 +0800 +Subject: [PATCH] upstream: fix integer overflow in XMSS private key parsing. + +Reported by Adam Zabrocki via SecuriTeam's SSH program. + +Note that this code is experimental and not compiled by default. + +ok markus@ + +OpenBSD-Commit-ID: cd0361896d15e8a1bac495ac583ff065ffca2be1 + +Signed-off-by: "djm@openbsd.org" + +Upstream-Status: Backport [https://github.com/openssh/openssh-portable/commit/a546b17bbaeb12beac4c9aeed56f74a42b18a93a] +CVE: CVE-2019-16905 + +Signed-off-by: Hongxu Jia +--- + sshkey-xmss.c | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +diff --git a/sshkey-xmss.c b/sshkey-xmss.c +index aaae702..c57681a 100644 +--- a/sshkey-xmss.c ++++ b/sshkey-xmss.c +@@ -977,7 +977,8 @@ sshkey_xmss_decrypt_state(const struct sshkey *k, struct sshbuf *encoded, + goto out; + } + /* check that an appropriate amount of auth data is present */ +- if (sshbuf_len(encoded) < encrypted_len + authlen) { ++ if (sshbuf_len(encoded) < authlen || ++ sshbuf_len(encoded) - authlen < encrypted_len) { + r = SSH_ERR_INVALID_FORMAT; + goto out; + } +-- +2.7.4 + diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-connectivity/openssh/openssh_8.0p1.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-connectivity/openssh/openssh_8.0p1.bb index 35cdf71e..2ffbc9a9 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-connectivity/openssh/openssh_8.0p1.bb +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-connectivity/openssh/openssh_8.0p1.bb @@ -5,7 +5,7 @@ Ssh (Secure Shell) is a program for logging into a remote machine \ and for executing commands on a remote machine." HOMEPAGE = "http://www.openssh.com/" SECTION = "console/network" -LICENSE = "BSD" +LICENSE = "BSD & ISC & MIT" LIC_FILES_CHKSUM = "file://LICENCE;md5=429658c6612f3a9b1293782366ab29d8" DEPENDS = "zlib openssl virtual/crypt" @@ -24,6 +24,7 @@ SRC_URI = "http://ftp.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-${PV}.tar file://fix-potential-signed-overflow-in-pointer-arithmatic.patch \ file://sshd_check_keys \ file://add-test-support-for-busybox.patch \ + file://0001-upstream-fix-integer-overflow-in-XMSS-private-key-pa.patch \ " SRC_URI[md5sum] = "bf050f002fe510e1daecd39044e1122d" SRC_URI[sha256sum] = "bd943879e69498e8031eb6b7f44d08cdc37d59a7ab689aa0b437320c3481fd68" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-connectivity/openssl/openssl/0001-Fix-build-error-for-aarch64-big-endian.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-connectivity/openssl/openssl/0001-Fix-build-error-for-aarch64-big-endian.patch deleted file mode 100644 index 9a90a68c..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-connectivity/openssl/openssl/0001-Fix-build-error-for-aarch64-big-endian.patch +++ /dev/null @@ -1,43 +0,0 @@ -From 1f8c0f2feea5cdcae0bcd9dfc78198d9e2c4cf09 Mon Sep 17 00:00:00 2001 -From: Lei Maohui -Date: Thu, 13 Jun 2019 12:17:30 +0900 -Subject: [PATCH] Fix build error for aarch64 big endian. - -Modified rev to rev64, because rev only takes integer registers. -https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90827 -Otherwise, the following error will occur. - -Error: operand 1 must be an integer register -- `rev v31.16b,v31.16b' - -Upstream-Status: Submitted [https://github.com/openssl/openssl/pull/9151] - -Signed-off-by: Lei Maohui ---- - crypto/sha/asm/keccak1600-armv8.pl | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/crypto/sha/asm/keccak1600-armv8.pl b/crypto/sha/asm/keccak1600-armv8.pl -index dc72f18..6620690 100755 ---- a/crypto/sha/asm/keccak1600-armv8.pl -+++ b/crypto/sha/asm/keccak1600-armv8.pl -@@ -731,7 +731,7 @@ $code.=<<___; - blo .Lprocess_block_ce - ldr d31,[$inp],#8 // *inp++ - #ifdef __AARCH64EB__ -- rev v31.16b,v31.16b -+ rev64 v31.16b,v31.16b - #endif - eor $A[$j/5][$j%5],$A[$j/5][$j%5],v31.16b - beq .Lprocess_block_ce -@@ -740,7 +740,7 @@ ___ - $code.=<<___; - ldr d31,[$inp],#8 // *inp++ - #ifdef __AARCH64EB__ -- rev v31.16b,v31.16b -+ rev64 v31.16b,v31.16b - #endif - eor $A[4][4],$A[4][4],v31.16b - --- -2.7.4 - diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-connectivity/openssl/openssl_1.1.1c.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-connectivity/openssl/openssl_1.1.1c.bb deleted file mode 100644 index 01174073..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-connectivity/openssl/openssl_1.1.1c.bb +++ /dev/null @@ -1,202 +0,0 @@ -SUMMARY = "Secure Socket Layer" -DESCRIPTION = "Secure Socket Layer (SSL) binary and related cryptographic tools." -HOMEPAGE = "http://www.openssl.org/" -BUGTRACKER = "http://www.openssl.org/news/vulnerabilities.html" -SECTION = "libs/network" - -# "openssl" here actually means both OpenSSL and SSLeay licenses apply -# (see meta/files/common-licenses/OpenSSL to which "openssl" is SPDXLICENSEMAPped) -LICENSE = "openssl" -LIC_FILES_CHKSUM = "file://LICENSE;md5=d343e62fc9c833710bbbed25f27364c8" - -DEPENDS = "hostperl-runtime-native" - -SRC_URI = "http://www.openssl.org/source/openssl-${PV}.tar.gz \ - file://run-ptest \ - file://0001-skip-test_symbol_presence.patch \ - file://0001-buildinfo-strip-sysroot-and-debug-prefix-map-from-co.patch \ - file://afalg.patch \ - file://0001-Fix-build-error-for-aarch64-big-endian.patch \ - " - -SRC_URI_append_class-nativesdk = " \ - file://environment.d-openssl.sh \ - " - -SRC_URI[md5sum] = "15e21da6efe8aa0e0768ffd8cd37a5f6" -SRC_URI[sha256sum] = "f6fb3079ad15076154eda9413fed42877d668e7069d9b87396d0804fdb3f4c90" - -inherit lib_package multilib_header ptest - -PACKAGECONFIG ?= "" -PACKAGECONFIG_class-native = "" -PACKAGECONFIG_class-nativesdk = "" - -PACKAGECONFIG[cryptodev-linux] = "enable-devcryptoeng,disable-devcryptoeng,cryptodev-linux" - -B = "${WORKDIR}/build" -do_configure[cleandirs] = "${B}" - -#| ./libcrypto.so: undefined reference to `getcontext' -#| ./libcrypto.so: undefined reference to `setcontext' -#| ./libcrypto.so: undefined reference to `makecontext' -EXTRA_OECONF_append_libc-musl = " no-async" -EXTRA_OECONF_append_libc-musl_powerpc64 = " no-asm" - -# This prevents openssl from using getrandom() which is not available on older glibc versions -# (native versions can be built with newer glibc, but then relocated onto a system with older glibc) -EXTRA_OECONF_class-native = "--with-rand-seed=devrandom" -EXTRA_OECONF_class-nativesdk = "--with-rand-seed=devrandom" - -# Relying on hardcoded built-in paths causes openssl-native to not be relocateable from sstate. -CFLAGS_append_class-native = " -DOPENSSLDIR=/not/builtin -DENGINESDIR=/not/builtin" -CFLAGS_append_class-nativesdk = " -DOPENSSLDIR=/not/builtin -DENGINESDIR=/not/builtin" - -do_configure () { - os=${HOST_OS} - case $os in - linux-gnueabi |\ - linux-gnuspe |\ - linux-musleabi |\ - linux-muslspe |\ - linux-musl ) - os=linux - ;; - *) - ;; - esac - target="$os-${HOST_ARCH}" - case $target in - linux-arm*) - target=linux-armv4 - ;; - linux-aarch64*) - target=linux-aarch64 - ;; - linux-i?86 | linux-viac3) - target=linux-x86 - ;; - linux-gnux32-x86_64 | linux-muslx32-x86_64 ) - target=linux-x32 - ;; - linux-gnu64-x86_64) - target=linux-x86_64 - ;; - linux-mips | linux-mipsel) - # specifying TARGET_CC_ARCH prevents openssl from (incorrectly) adding target architecture flags - target="linux-mips32 ${TARGET_CC_ARCH}" - ;; - linux-gnun32-mips*) - target=linux-mips64 - ;; - linux-*-mips64 | linux-mips64 | linux-*-mips64el | linux-mips64el) - target=linux64-mips64 - ;; - linux-microblaze* | linux-nios2* | linux-sh3 | linux-sh4 | linux-arc*) - target=linux-generic32 - ;; - linux-powerpc) - target=linux-ppc - ;; - linux-powerpc64) - target=linux-ppc64 - ;; - linux-riscv32) - target=linux-generic32 - ;; - linux-riscv64) - target=linux-generic64 - ;; - linux-sparc | linux-supersparc) - target=linux-sparcv9 - ;; - esac - - useprefix=${prefix} - if [ "x$useprefix" = "x" ]; then - useprefix=/ - fi - # WARNING: do not set compiler/linker flags (-I/-D etc.) in EXTRA_OECONF, as they will fully replace the - # environment variables set by bitbake. Adjust the environment variables instead. - PERL5LIB="${S}/external/perl/Text-Template-1.46/lib/" \ - perl ${S}/Configure ${EXTRA_OECONF} ${PACKAGECONFIG_CONFARGS} --prefix=$useprefix --openssldir=${libdir}/ssl-1.1 --libdir=${libdir} $target - perl ${B}/configdata.pm --dump -} - -do_install () { - oe_runmake DESTDIR="${D}" MANDIR="${mandir}" MANSUFFIX=ssl install - - oe_multilib_header openssl/opensslconf.h - - # Create SSL structure for packages such as ca-certificates which - # contain hard-coded paths to /etc/ssl. Debian does the same. - install -d ${D}${sysconfdir}/ssl - mv ${D}${libdir}/ssl-1.1/certs \ - ${D}${libdir}/ssl-1.1/private \ - ${D}${libdir}/ssl-1.1/openssl.cnf \ - ${D}${sysconfdir}/ssl/ - - # Although absolute symlinks would be OK for the target, they become - # invalid if native or nativesdk are relocated from sstate. - ln -sf ${@oe.path.relative('${libdir}/ssl-1.1', '${sysconfdir}/ssl/certs')} ${D}${libdir}/ssl-1.1/certs - ln -sf ${@oe.path.relative('${libdir}/ssl-1.1', '${sysconfdir}/ssl/private')} ${D}${libdir}/ssl-1.1/private - ln -sf ${@oe.path.relative('${libdir}/ssl-1.1', '${sysconfdir}/ssl/openssl.cnf')} ${D}${libdir}/ssl-1.1/openssl.cnf -} - -do_install_append_class-native () { - create_wrapper ${D}${bindir}/openssl \ - OPENSSL_CONF=${libdir}/ssl-1.1/openssl.cnf \ - SSL_CERT_DIR=${libdir}/ssl-1.1/certs \ - SSL_CERT_FILE=${libdir}/ssl-1.1/cert.pem \ - OPENSSL_ENGINES=${libdir}/ssl-1.1/engines -} - -do_install_append_class-nativesdk () { - mkdir -p ${D}${SDKPATHNATIVE}/environment-setup.d - install -m 644 ${WORKDIR}/environment.d-openssl.sh ${D}${SDKPATHNATIVE}/environment-setup.d/openssl.sh - sed 's|/usr/lib/ssl/|/usr/lib/ssl-1.1/|g' -i ${D}${SDKPATHNATIVE}/environment-setup.d/openssl.sh -} - -PTEST_BUILD_HOST_FILES += "configdata.pm" -PTEST_BUILD_HOST_PATTERN = "perl_version =" -do_install_ptest () { - # Prune the build tree - rm -f ${B}/fuzz/*.* ${B}/test/*.* - - cp ${S}/Configure ${B}/configdata.pm ${D}${PTEST_PATH} - cp -r ${S}/external ${B}/test ${S}/test ${B}/fuzz ${S}/util ${B}/util ${D}${PTEST_PATH} - - # For test_shlibload - ln -s ${libdir}/libcrypto.so.1.1 ${D}${PTEST_PATH}/ - ln -s ${libdir}/libssl.so.1.1 ${D}${PTEST_PATH}/ - - install -d ${D}${PTEST_PATH}/apps - ln -s ${bindir}/openssl ${D}${PTEST_PATH}/apps - install -m644 ${S}/apps/*.pem ${S}/apps/*.srl ${S}/apps/openssl.cnf ${D}${PTEST_PATH}/apps - install -m755 ${B}/apps/CA.pl ${D}${PTEST_PATH}/apps - - install -d ${D}${PTEST_PATH}/engines - install -m755 ${B}/engines/ossltest.so ${D}${PTEST_PATH}/engines -} - -# Add the openssl.cnf file to the openssl-conf package. Make the libcrypto -# package RRECOMMENDS on this package. This will enable the configuration -# file to be installed for both the openssl-bin package and the libcrypto -# package since the openssl-bin package depends on the libcrypto package. - -PACKAGES =+ "libcrypto libssl openssl-conf ${PN}-engines ${PN}-misc" - -FILES_libcrypto = "${libdir}/libcrypto${SOLIBS}" -FILES_libssl = "${libdir}/libssl${SOLIBS}" -FILES_openssl-conf = "${sysconfdir}/ssl/openssl.cnf" -FILES_${PN}-engines = "${libdir}/engines-1.1" -FILES_${PN}-misc = "${libdir}/ssl-1.1/misc" -FILES_${PN} =+ "${libdir}/ssl-1.1/*" -FILES_${PN}_append_class-nativesdk = " ${SDKPATHNATIVE}/environment-setup.d/openssl.sh" - -CONFFILES_openssl-conf = "${sysconfdir}/ssl/openssl.cnf" - -RRECOMMENDS_libcrypto += "openssl-conf" -RDEPENDS_${PN}-ptest += "openssl-bin perl perl-modules bash" - -BBCLASSEXTEND = "native nativesdk" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-connectivity/openssl/openssl_1.1.1d.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-connectivity/openssl/openssl_1.1.1d.bb new file mode 100644 index 00000000..8819e19e --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-connectivity/openssl/openssl_1.1.1d.bb @@ -0,0 +1,204 @@ +SUMMARY = "Secure Socket Layer" +DESCRIPTION = "Secure Socket Layer (SSL) binary and related cryptographic tools." +HOMEPAGE = "http://www.openssl.org/" +BUGTRACKER = "http://www.openssl.org/news/vulnerabilities.html" +SECTION = "libs/network" + +# "openssl" here actually means both OpenSSL and SSLeay licenses apply +# (see meta/files/common-licenses/OpenSSL to which "openssl" is SPDXLICENSEMAPped) +LICENSE = "openssl" +LIC_FILES_CHKSUM = "file://LICENSE;md5=d343e62fc9c833710bbbed25f27364c8" + +DEPENDS = "hostperl-runtime-native" + +SRC_URI = "http://www.openssl.org/source/openssl-${PV}.tar.gz \ + file://run-ptest \ + file://0001-skip-test_symbol_presence.patch \ + file://0001-buildinfo-strip-sysroot-and-debug-prefix-map-from-co.patch \ + file://afalg.patch \ + " + +SRC_URI_append_class-nativesdk = " \ + file://environment.d-openssl.sh \ + " + +SRC_URI[md5sum] = "3be209000dbc7e1b95bcdf47980a3baa" +SRC_URI[sha256sum] = "1e3a91bc1f9dfce01af26026f856e064eab4c8ee0a8f457b5ae30b40b8b711f2" + +inherit lib_package multilib_header multilib_script ptest +MULTILIB_SCRIPTS = "${PN}-bin:${bindir}/c_rehash" + +PACKAGECONFIG ?= "" +PACKAGECONFIG_class-native = "" +PACKAGECONFIG_class-nativesdk = "" + +PACKAGECONFIG[cryptodev-linux] = "enable-devcryptoeng,disable-devcryptoeng,cryptodev-linux" + +B = "${WORKDIR}/build" +do_configure[cleandirs] = "${B}" + +#| ./libcrypto.so: undefined reference to `getcontext' +#| ./libcrypto.so: undefined reference to `setcontext' +#| ./libcrypto.so: undefined reference to `makecontext' +EXTRA_OECONF_append_libc-musl = " no-async" +EXTRA_OECONF_append_libc-musl_powerpc64 = " no-asm" + +# adding devrandom prevents openssl from using getrandom() which is not available on older glibc versions +# (native versions can be built with newer glibc, but then relocated onto a system with older glibc) +EXTRA_OECONF_class-native = "--with-rand-seed=os,devrandom" +EXTRA_OECONF_class-nativesdk = "--with-rand-seed=os,devrandom" + +# Relying on hardcoded built-in paths causes openssl-native to not be relocateable from sstate. +CFLAGS_append_class-native = " -DOPENSSLDIR=/not/builtin -DENGINESDIR=/not/builtin" +CFLAGS_append_class-nativesdk = " -DOPENSSLDIR=/not/builtin -DENGINESDIR=/not/builtin" + +do_configure () { + os=${HOST_OS} + case $os in + linux-gnueabi |\ + linux-gnuspe |\ + linux-musleabi |\ + linux-muslspe |\ + linux-musl ) + os=linux + ;; + *) + ;; + esac + target="$os-${HOST_ARCH}" + case $target in + linux-arm*) + target=linux-armv4 + ;; + linux-aarch64*) + target=linux-aarch64 + ;; + linux-i?86 | linux-viac3) + target=linux-x86 + ;; + linux-gnux32-x86_64 | linux-muslx32-x86_64 ) + target=linux-x32 + ;; + linux-gnu64-x86_64) + target=linux-x86_64 + ;; + linux-mips | linux-mipsel) + # specifying TARGET_CC_ARCH prevents openssl from (incorrectly) adding target architecture flags + target="linux-mips32 ${TARGET_CC_ARCH}" + ;; + linux-gnun32-mips*) + target=linux-mips64 + ;; + linux-*-mips64 | linux-mips64 | linux-*-mips64el | linux-mips64el) + target=linux64-mips64 + ;; + linux-microblaze* | linux-nios2* | linux-sh3 | linux-sh4 | linux-arc*) + target=linux-generic32 + ;; + linux-powerpc) + target=linux-ppc + ;; + linux-powerpc64) + target=linux-ppc64 + ;; + linux-riscv32) + target=linux-generic32 + ;; + linux-riscv64) + target=linux-generic64 + ;; + linux-sparc | linux-supersparc) + target=linux-sparcv9 + ;; + esac + + useprefix=${prefix} + if [ "x$useprefix" = "x" ]; then + useprefix=/ + fi + # WARNING: do not set compiler/linker flags (-I/-D etc.) in EXTRA_OECONF, as they will fully replace the + # environment variables set by bitbake. Adjust the environment variables instead. + PERL5LIB="${S}/external/perl/Text-Template-1.46/lib/" \ + perl ${S}/Configure ${EXTRA_OECONF} ${PACKAGECONFIG_CONFARGS} --prefix=$useprefix --openssldir=${libdir}/ssl-1.1 --libdir=${libdir} $target + perl ${B}/configdata.pm --dump +} + +do_install () { + oe_runmake DESTDIR="${D}" MANDIR="${mandir}" MANSUFFIX=ssl install + + oe_multilib_header openssl/opensslconf.h + + # Create SSL structure for packages such as ca-certificates which + # contain hard-coded paths to /etc/ssl. Debian does the same. + install -d ${D}${sysconfdir}/ssl + mv ${D}${libdir}/ssl-1.1/certs \ + ${D}${libdir}/ssl-1.1/private \ + ${D}${libdir}/ssl-1.1/openssl.cnf \ + ${D}${sysconfdir}/ssl/ + + # Although absolute symlinks would be OK for the target, they become + # invalid if native or nativesdk are relocated from sstate. + ln -sf ${@oe.path.relative('${libdir}/ssl-1.1', '${sysconfdir}/ssl/certs')} ${D}${libdir}/ssl-1.1/certs + ln -sf ${@oe.path.relative('${libdir}/ssl-1.1', '${sysconfdir}/ssl/private')} ${D}${libdir}/ssl-1.1/private + ln -sf ${@oe.path.relative('${libdir}/ssl-1.1', '${sysconfdir}/ssl/openssl.cnf')} ${D}${libdir}/ssl-1.1/openssl.cnf +} + +do_install_append_class-native () { + create_wrapper ${D}${bindir}/openssl \ + OPENSSL_CONF=${libdir}/ssl-1.1/openssl.cnf \ + SSL_CERT_DIR=${libdir}/ssl-1.1/certs \ + SSL_CERT_FILE=${libdir}/ssl-1.1/cert.pem \ + OPENSSL_ENGINES=${libdir}/engines-1.1 +} + +do_install_append_class-nativesdk () { + mkdir -p ${D}${SDKPATHNATIVE}/environment-setup.d + install -m 644 ${WORKDIR}/environment.d-openssl.sh ${D}${SDKPATHNATIVE}/environment-setup.d/openssl.sh + sed 's|/usr/lib/ssl/|/usr/lib/ssl-1.1/|g' -i ${D}${SDKPATHNATIVE}/environment-setup.d/openssl.sh +} + +PTEST_BUILD_HOST_FILES += "configdata.pm" +PTEST_BUILD_HOST_PATTERN = "perl_version =" +do_install_ptest () { + # Prune the build tree + rm -f ${B}/fuzz/*.* ${B}/test/*.* + + cp ${S}/Configure ${B}/configdata.pm ${D}${PTEST_PATH} + cp -r ${S}/external ${B}/test ${S}/test ${B}/fuzz ${S}/util ${B}/util ${D}${PTEST_PATH} + + # For test_shlibload + ln -s ${libdir}/libcrypto.so.1.1 ${D}${PTEST_PATH}/ + ln -s ${libdir}/libssl.so.1.1 ${D}${PTEST_PATH}/ + + install -d ${D}${PTEST_PATH}/apps + ln -s ${bindir}/openssl ${D}${PTEST_PATH}/apps + install -m644 ${S}/apps/*.pem ${S}/apps/*.srl ${S}/apps/openssl.cnf ${D}${PTEST_PATH}/apps + install -m755 ${B}/apps/CA.pl ${D}${PTEST_PATH}/apps + + install -d ${D}${PTEST_PATH}/engines + install -m755 ${B}/engines/ossltest.so ${D}${PTEST_PATH}/engines +} + +# Add the openssl.cnf file to the openssl-conf package. Make the libcrypto +# package RRECOMMENDS on this package. This will enable the configuration +# file to be installed for both the openssl-bin package and the libcrypto +# package since the openssl-bin package depends on the libcrypto package. + +PACKAGES =+ "libcrypto libssl openssl-conf ${PN}-engines ${PN}-misc" + +FILES_libcrypto = "${libdir}/libcrypto${SOLIBS}" +FILES_libssl = "${libdir}/libssl${SOLIBS}" +FILES_openssl-conf = "${sysconfdir}/ssl/openssl.cnf" +FILES_${PN}-engines = "${libdir}/engines-1.1" +FILES_${PN}-misc = "${libdir}/ssl-1.1/misc" +FILES_${PN} =+ "${libdir}/ssl-1.1/*" +FILES_${PN}_append_class-nativesdk = " ${SDKPATHNATIVE}/environment-setup.d/openssl.sh" + +CONFFILES_openssl-conf = "${sysconfdir}/ssl/openssl.cnf" + +RRECOMMENDS_libcrypto += "openssl-conf" +RDEPENDS_${PN}-ptest += "openssl-bin perl perl-modules bash" + +BBCLASSEXTEND = "native nativesdk" + +CVE_PRODUCT = "openssl:openssl" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-connectivity/socat/socat_1.7.3.3.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-connectivity/socat/socat_1.7.3.3.bb index 067f7c64..1dbbe5cd 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-connectivity/socat/socat_1.7.3.3.bb +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-connectivity/socat/socat_1.7.3.3.bb @@ -5,7 +5,7 @@ HOMEPAGE = "http://www.dest-unreach.org/socat/" SECTION = "console/network" -DEPENDS = "openssl readline" +DEPENDS = "openssl" LICENSE = "GPL-2.0-with-OpenSSL-exception" LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \ @@ -39,9 +39,10 @@ TERMBITS_SHIFTS_powerpc64 = "sc_cv_sys_crdly_shift=12 \ sc_cv_sys_tabdly_shift=10 \ sc_cv_sys_csize_shift=8" -PACKAGECONFIG_class-target ??= "tcp-wrappers" -PACKAGECONFIG ??= "" +PACKAGECONFIG_class-target ??= "tcp-wrappers readline" +PACKAGECONFIG ??= "readline" PACKAGECONFIG[tcp-wrappers] = "--enable-libwrap,--disable-libwrap,tcp-wrappers" +PACKAGECONFIG[readline] = "--enable-readline,--disable-readline,readline" do_install_prepend () { mkdir -p ${D}${bindir} diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-connectivity/wpa-supplicant/wpa-supplicant/0001-AP-Silently-ignore-management-frame-from-unexpected-.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-connectivity/wpa-supplicant/wpa-supplicant/0001-AP-Silently-ignore-management-frame-from-unexpected-.patch new file mode 100644 index 00000000..7b0713cf --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-connectivity/wpa-supplicant/wpa-supplicant/0001-AP-Silently-ignore-management-frame-from-unexpected-.patch @@ -0,0 +1,82 @@ +hostapd before 2.10 and wpa_supplicant before 2.10 allow an incorrect indication +of disconnection in certain situations because source address validation is +mishandled. This is a denial of service that should have been prevented by PMF +(aka management frame protection). The attacker must send a crafted 802.11 frame +from a location that is within the 802.11 communications range. + +CVE: CVE-2019-16275 +Upstream-Status: Backport +Signed-off-by: Ross Burton + +From 8c07fa9eda13e835f3f968b2e1c9a8be3a851ff9 Mon Sep 17 00:00:00 2001 +From: Jouni Malinen +Date: Thu, 29 Aug 2019 11:52:04 +0300 +Subject: [PATCH] AP: Silently ignore management frame from unexpected source + address + +Do not process any received Management frames with unexpected/invalid SA +so that we do not add any state for unexpected STA addresses or end up +sending out frames to unexpected destination. This prevents unexpected +sequences where an unprotected frame might end up causing the AP to send +out a response to another device and that other device processing the +unexpected response. + +In particular, this prevents some potential denial of service cases +where the unexpected response frame from the AP might result in a +connected station dropping its association. + +Signed-off-by: Jouni Malinen +--- + src/ap/drv_callbacks.c | 13 +++++++++++++ + src/ap/ieee802_11.c | 12 ++++++++++++ + 2 files changed, 25 insertions(+) + +diff --git a/src/ap/drv_callbacks.c b/src/ap/drv_callbacks.c +index 31587685fe3b..34ca379edc3d 100644 +--- a/src/ap/drv_callbacks.c ++++ b/src/ap/drv_callbacks.c +@@ -131,6 +131,19 @@ int hostapd_notif_assoc(struct hostapd_data *hapd, const u8 *addr, + "hostapd_notif_assoc: Skip event with no address"); + return -1; + } ++ ++ if (is_multicast_ether_addr(addr) || ++ is_zero_ether_addr(addr) || ++ os_memcmp(addr, hapd->own_addr, ETH_ALEN) == 0) { ++ /* Do not process any frames with unexpected/invalid SA so that ++ * we do not add any state for unexpected STA addresses or end ++ * up sending out frames to unexpected destination. */ ++ wpa_printf(MSG_DEBUG, "%s: Invalid SA=" MACSTR ++ " in received indication - ignore this indication silently", ++ __func__, MAC2STR(addr)); ++ return 0; ++ } ++ + random_add_randomness(addr, ETH_ALEN); + + hostapd_logger(hapd, addr, HOSTAPD_MODULE_IEEE80211, +diff --git a/src/ap/ieee802_11.c b/src/ap/ieee802_11.c +index c85a28db44b7..e7065372e158 100644 +--- a/src/ap/ieee802_11.c ++++ b/src/ap/ieee802_11.c +@@ -4626,6 +4626,18 @@ int ieee802_11_mgmt(struct hostapd_data *hapd, const u8 *buf, size_t len, + fc = le_to_host16(mgmt->frame_control); + stype = WLAN_FC_GET_STYPE(fc); + ++ if (is_multicast_ether_addr(mgmt->sa) || ++ is_zero_ether_addr(mgmt->sa) || ++ os_memcmp(mgmt->sa, hapd->own_addr, ETH_ALEN) == 0) { ++ /* Do not process any frames with unexpected/invalid SA so that ++ * we do not add any state for unexpected STA addresses or end ++ * up sending out frames to unexpected destination. */ ++ wpa_printf(MSG_DEBUG, "MGMT: Invalid SA=" MACSTR ++ " in received frame - ignore this frame silently", ++ MAC2STR(mgmt->sa)); ++ return 0; ++ } ++ + if (stype == WLAN_FC_STYPE_BEACON) { + handle_beacon(hapd, mgmt, len, fi); + return 1; +-- +2.20.1 diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-connectivity/wpa-supplicant/wpa-supplicant_2.8.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-connectivity/wpa-supplicant/wpa-supplicant_2.8.bb deleted file mode 100644 index bd4167c3..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-connectivity/wpa-supplicant/wpa-supplicant_2.8.bb +++ /dev/null @@ -1,109 +0,0 @@ -SUMMARY = "Client for Wi-Fi Protected Access (WPA)" -HOMEPAGE = "http://w1.fi/wpa_supplicant/" -BUGTRACKER = "http://w1.fi/security/" -SECTION = "network" -LICENSE = "BSD" -LIC_FILES_CHKSUM = "file://COPYING;md5=279b4f5abb9c153c285221855ddb78cc \ - file://README;beginline=1;endline=56;md5=e7d3dbb01f75f0b9799e192731d1e1ff \ - file://wpa_supplicant/wpa_supplicant.c;beginline=1;endline=12;md5=0a8b56d3543498b742b9c0e94cc2d18b" -DEPENDS = "dbus libnl" -RRECOMMENDS_${PN} = "wpa-supplicant-passphrase wpa-supplicant-cli" - -PACKAGECONFIG ??= "gnutls" -PACKAGECONFIG[gnutls] = ",,gnutls libgcrypt" -PACKAGECONFIG[openssl] = ",,openssl" - -inherit pkgconfig systemd - -SYSTEMD_SERVICE_${PN} = "wpa_supplicant.service wpa_supplicant-nl80211@.service wpa_supplicant-wired@.service" -SYSTEMD_AUTO_ENABLE = "disable" - -SRC_URI = "http://w1.fi/releases/wpa_supplicant-${PV}.tar.gz \ - file://defconfig \ - file://wpa-supplicant.sh \ - file://wpa_supplicant.conf \ - file://wpa_supplicant.conf-sane \ - file://99_wpa_supplicant \ - file://0001-replace-systemd-install-Alias-with-WantedBy.patch \ - " -SRC_URI[md5sum] = "0af5998c5d924e985cab16b9a1c77904" -SRC_URI[sha256sum] = "a689336a12a99151b9de5e25bfccadb88438f4f4438eb8db331cd94346fd3d96" - -CVE_PRODUCT = "wpa_supplicant" - -S = "${WORKDIR}/wpa_supplicant-${PV}" - -PACKAGES_prepend = "wpa-supplicant-passphrase wpa-supplicant-cli " -FILES_wpa-supplicant-passphrase = "${bindir}/wpa_passphrase" -FILES_wpa-supplicant-cli = "${sbindir}/wpa_cli" -FILES_${PN} += "${datadir}/dbus-1/system-services/*" -CONFFILES_${PN} += "${sysconfdir}/wpa_supplicant.conf" - -do_configure () { - ${MAKE} -C wpa_supplicant clean - install -m 0755 ${WORKDIR}/defconfig wpa_supplicant/.config - - if echo "${PACKAGECONFIG}" | grep -qw "openssl"; then - ssl=openssl - elif echo "${PACKAGECONFIG}" | grep -qw "gnutls"; then - ssl=gnutls - fi - if [ -n "$ssl" ]; then - sed -i "s/%ssl%/$ssl/" wpa_supplicant/.config - fi - - # For rebuild - rm -f wpa_supplicant/*.d wpa_supplicant/dbus/*.d -} - -export EXTRA_CFLAGS = "${CFLAGS}" -export BINDIR = "${sbindir}" - -do_compile () { - unset CFLAGS CPPFLAGS CXXFLAGS - sed -e "s:CFLAGS\ =.*:& \$(EXTRA_CFLAGS):g" -i ${S}/src/lib.rules - oe_runmake -C wpa_supplicant -} - -do_install () { - install -d ${D}${sbindir} - install -m 755 wpa_supplicant/wpa_supplicant ${D}${sbindir} - install -m 755 wpa_supplicant/wpa_cli ${D}${sbindir} - - install -d ${D}${bindir} - install -m 755 wpa_supplicant/wpa_passphrase ${D}${bindir} - - install -d ${D}${docdir}/wpa_supplicant - install -m 644 wpa_supplicant/README ${WORKDIR}/wpa_supplicant.conf ${D}${docdir}/wpa_supplicant - - install -d ${D}${sysconfdir} - install -m 600 ${WORKDIR}/wpa_supplicant.conf-sane ${D}${sysconfdir}/wpa_supplicant.conf - - install -d ${D}${sysconfdir}/network/if-pre-up.d/ - install -d ${D}${sysconfdir}/network/if-post-down.d/ - install -d ${D}${sysconfdir}/network/if-down.d/ - install -m 755 ${WORKDIR}/wpa-supplicant.sh ${D}${sysconfdir}/network/if-pre-up.d/wpa-supplicant - cd ${D}${sysconfdir}/network/ && \ - ln -sf ../if-pre-up.d/wpa-supplicant if-post-down.d/wpa-supplicant - - install -d ${D}/${sysconfdir}/dbus-1/system.d - install -m 644 ${S}/wpa_supplicant/dbus/dbus-wpa_supplicant.conf ${D}/${sysconfdir}/dbus-1/system.d - install -d ${D}/${datadir}/dbus-1/system-services - install -m 644 ${S}/wpa_supplicant/dbus/*.service ${D}/${datadir}/dbus-1/system-services - - if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}; then - install -d ${D}/${systemd_unitdir}/system - install -m 644 ${S}/wpa_supplicant/systemd/*.service ${D}/${systemd_unitdir}/system - fi - - install -d ${D}/etc/default/volatiles - install -m 0644 ${WORKDIR}/99_wpa_supplicant ${D}/etc/default/volatiles -} - -pkg_postinst_wpa-supplicant () { - # If we're offline, we don't need to do this. - if [ "x$D" = "x" ]; then - killall -q -HUP dbus-daemon || true - fi - -} diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-connectivity/wpa-supplicant/wpa-supplicant_2.9.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-connectivity/wpa-supplicant/wpa-supplicant_2.9.bb new file mode 100644 index 00000000..3e92427b --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-connectivity/wpa-supplicant/wpa-supplicant_2.9.bb @@ -0,0 +1,110 @@ +SUMMARY = "Client for Wi-Fi Protected Access (WPA)" +HOMEPAGE = "http://w1.fi/wpa_supplicant/" +BUGTRACKER = "http://w1.fi/security/" +SECTION = "network" +LICENSE = "BSD-3-Clause" +LIC_FILES_CHKSUM = "file://COPYING;md5=279b4f5abb9c153c285221855ddb78cc \ + file://README;beginline=1;endline=56;md5=e7d3dbb01f75f0b9799e192731d1e1ff \ + file://wpa_supplicant/wpa_supplicant.c;beginline=1;endline=12;md5=0a8b56d3543498b742b9c0e94cc2d18b" +DEPENDS = "dbus libnl" +RRECOMMENDS_${PN} = "wpa-supplicant-passphrase wpa-supplicant-cli" + +PACKAGECONFIG ??= "gnutls" +PACKAGECONFIG[gnutls] = ",,gnutls libgcrypt" +PACKAGECONFIG[openssl] = ",,openssl" + +inherit pkgconfig systemd + +SYSTEMD_SERVICE_${PN} = "wpa_supplicant.service wpa_supplicant-nl80211@.service wpa_supplicant-wired@.service" +SYSTEMD_AUTO_ENABLE = "disable" + +SRC_URI = "http://w1.fi/releases/wpa_supplicant-${PV}.tar.gz \ + file://defconfig \ + file://wpa-supplicant.sh \ + file://wpa_supplicant.conf \ + file://wpa_supplicant.conf-sane \ + file://99_wpa_supplicant \ + file://0001-replace-systemd-install-Alias-with-WantedBy.patch \ + file://0001-AP-Silently-ignore-management-frame-from-unexpected-.patch \ + " +SRC_URI[md5sum] = "2d2958c782576dc9901092fbfecb4190" +SRC_URI[sha256sum] = "fcbdee7b4a64bea8177973299c8c824419c413ec2e3a95db63dd6a5dc3541f17" + +CVE_PRODUCT = "wpa_supplicant" + +S = "${WORKDIR}/wpa_supplicant-${PV}" + +PACKAGES_prepend = "wpa-supplicant-passphrase wpa-supplicant-cli " +FILES_wpa-supplicant-passphrase = "${bindir}/wpa_passphrase" +FILES_wpa-supplicant-cli = "${sbindir}/wpa_cli" +FILES_${PN} += "${datadir}/dbus-1/system-services/*" +CONFFILES_${PN} += "${sysconfdir}/wpa_supplicant.conf" + +do_configure () { + ${MAKE} -C wpa_supplicant clean + install -m 0755 ${WORKDIR}/defconfig wpa_supplicant/.config + + if echo "${PACKAGECONFIG}" | grep -qw "openssl"; then + ssl=openssl + elif echo "${PACKAGECONFIG}" | grep -qw "gnutls"; then + ssl=gnutls + fi + if [ -n "$ssl" ]; then + sed -i "s/%ssl%/$ssl/" wpa_supplicant/.config + fi + + # For rebuild + rm -f wpa_supplicant/*.d wpa_supplicant/dbus/*.d +} + +export EXTRA_CFLAGS = "${CFLAGS}" +export BINDIR = "${sbindir}" + +do_compile () { + unset CFLAGS CPPFLAGS CXXFLAGS + sed -e "s:CFLAGS\ =.*:& \$(EXTRA_CFLAGS):g" -i ${S}/src/lib.rules + oe_runmake -C wpa_supplicant +} + +do_install () { + install -d ${D}${sbindir} + install -m 755 wpa_supplicant/wpa_supplicant ${D}${sbindir} + install -m 755 wpa_supplicant/wpa_cli ${D}${sbindir} + + install -d ${D}${bindir} + install -m 755 wpa_supplicant/wpa_passphrase ${D}${bindir} + + install -d ${D}${docdir}/wpa_supplicant + install -m 644 wpa_supplicant/README ${WORKDIR}/wpa_supplicant.conf ${D}${docdir}/wpa_supplicant + + install -d ${D}${sysconfdir} + install -m 600 ${WORKDIR}/wpa_supplicant.conf-sane ${D}${sysconfdir}/wpa_supplicant.conf + + install -d ${D}${sysconfdir}/network/if-pre-up.d/ + install -d ${D}${sysconfdir}/network/if-post-down.d/ + install -d ${D}${sysconfdir}/network/if-down.d/ + install -m 755 ${WORKDIR}/wpa-supplicant.sh ${D}${sysconfdir}/network/if-pre-up.d/wpa-supplicant + cd ${D}${sysconfdir}/network/ && \ + ln -sf ../if-pre-up.d/wpa-supplicant if-post-down.d/wpa-supplicant + + install -d ${D}/${sysconfdir}/dbus-1/system.d + install -m 644 ${S}/wpa_supplicant/dbus/dbus-wpa_supplicant.conf ${D}/${sysconfdir}/dbus-1/system.d + install -d ${D}/${datadir}/dbus-1/system-services + install -m 644 ${S}/wpa_supplicant/dbus/*.service ${D}/${datadir}/dbus-1/system-services + + if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}; then + install -d ${D}/${systemd_unitdir}/system + install -m 644 ${S}/wpa_supplicant/systemd/*.service ${D}/${systemd_unitdir}/system + fi + + install -d ${D}/etc/default/volatiles + install -m 0644 ${WORKDIR}/99_wpa_supplicant ${D}/etc/default/volatiles +} + +pkg_postinst_wpa-supplicant () { + # If we're offline, we don't need to do this. + if [ "x$D" = "x" ]; then + killall -q -HUP dbus-daemon || true + fi + +} diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-core/base-files/base-files_3.0.14.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-core/base-files/base-files_3.0.14.bb index 4b4027f1..94299431 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-core/base-files/base-files_3.0.14.bb +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-core/base-files/base-files_3.0.14.bb @@ -20,7 +20,6 @@ SRC_URI = "file://rotation \ file://fstab \ file://issue.net \ file://issue \ - file://usbd \ file://share/dot.bashrc \ file://share/dot.profile \ file://licenses/GPL-2 \ @@ -122,14 +121,12 @@ do_install () { fi install -m 0644 ${WORKDIR}/fstab ${D}${sysconfdir}/fstab - install -m 0644 ${WORKDIR}/usbd ${D}${sysconfdir}/default/usbd install -m 0644 ${WORKDIR}/profile ${D}${sysconfdir}/profile sed -i 's#ROOTHOME#${ROOT_HOME}#' ${D}${sysconfdir}/profile sed -i 's#@BINDIR@#${bindir}#g' ${D}${sysconfdir}/profile install -m 0644 ${WORKDIR}/shells ${D}${sysconfdir}/shells install -m 0755 ${WORKDIR}/share/dot.profile ${D}${sysconfdir}/skel/.profile install -m 0755 ${WORKDIR}/share/dot.bashrc ${D}${sysconfdir}/skel/.bashrc - install -m 0644 ${WORKDIR}/nsswitch.conf ${D}${sysconfdir}/nsswitch.conf install -m 0644 ${WORKDIR}/host.conf ${D}${sysconfdir}/host.conf install -m 0644 ${WORKDIR}/motd ${D}${sysconfdir}/motd @@ -142,6 +139,10 @@ do_install () { fi } +do_install_append_libc-glibc () { + install -m 0644 ${WORKDIR}/nsswitch.conf ${D}${sysconfdir}/nsswitch.conf +} + DISTRO_VERSION[vardepsexclude] += "DATE" do_install_basefilesissue () { install -m 644 ${WORKDIR}/issue* ${D}${sysconfdir} diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-core/busybox/busybox-inittab_1.30.1.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-core/busybox/busybox-inittab_1.30.1.bb deleted file mode 100644 index c347daf5..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-core/busybox/busybox-inittab_1.30.1.bb +++ /dev/null @@ -1,34 +0,0 @@ -SUMMARY = "inittab configuration for BusyBox" -LICENSE = "GPLv2" -LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/GPL-2.0;md5=801f80980d171dd6425610833a22dbe6" - -SRC_URI = "file://inittab" - -S = "${WORKDIR}" - -INHIBIT_DEFAULT_DEPS = "1" - -do_compile() { - : -} - -do_install() { - install -d ${D}${sysconfdir} - install -D -m 0644 ${WORKDIR}/inittab ${D}${sysconfdir}/inittab - tmp="${SERIAL_CONSOLES}" - for i in $tmp - do - j=`echo ${i} | sed s/\;/\ /g` - id=`echo ${i} | sed -e 's/^.*;//' -e 's/;.*//'` - echo "$id::respawn:${base_sbindir}/getty ${j}" >> ${D}${sysconfdir}/inittab - done -} - -# SERIAL_CONSOLES is generally defined by the MACHINE .conf. -# Set PACKAGE_ARCH appropriately. -PACKAGE_ARCH = "${MACHINE_ARCH}" - -FILES_${PN} = "${sysconfdir}/inittab" -CONFFILES_${PN} = "${sysconfdir}/inittab" - -RCONFLICTS_${PN} = "sysvinit-inittab" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-core/busybox/busybox-inittab_1.31.0.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-core/busybox/busybox-inittab_1.31.0.bb new file mode 100644 index 00000000..61fb8cba --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-core/busybox/busybox-inittab_1.31.0.bb @@ -0,0 +1,35 @@ +SUMMARY = "inittab configuration for BusyBox" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/GPL-2.0;md5=801f80980d171dd6425610833a22dbe6" + +SRC_URI = "file://inittab" + +S = "${WORKDIR}" + +INHIBIT_DEFAULT_DEPS = "1" + +do_compile() { + : +} + +do_install() { + install -d ${D}${sysconfdir} + install -D -m 0644 ${WORKDIR}/inittab ${D}${sysconfdir}/inittab + tmp="${SERIAL_CONSOLES}" + [ -n "$tmp" ] && echo >> ${D}${sysconfdir}/inittab + for i in $tmp + do + j=`echo ${i} | sed s/\;/\ /g` + id=`echo ${i} | sed -e 's/^.*;//' -e 's/;.*//'` + echo "$id::respawn:${base_sbindir}/getty ${j}" >> ${D}${sysconfdir}/inittab + done +} + +# SERIAL_CONSOLES is generally defined by the MACHINE .conf. +# Set PACKAGE_ARCH appropriately. +PACKAGE_ARCH = "${MACHINE_ARCH}" + +FILES_${PN} = "${sysconfdir}/inittab" +CONFFILES_${PN} = "${sysconfdir}/inittab" + +RCONFLICTS_${PN} = "sysvinit-inittab" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-core/busybox/busybox.inc b/Contrib-Inspur/openbmc/poky/meta/recipes-core/busybox/busybox.inc index 174ce5a8..d08fa8d3 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-core/busybox/busybox.inc +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-core/busybox/busybox.inc @@ -128,7 +128,9 @@ do_prepare_config () { ${S}/.config.oe-tmp > ${S}/.config fi sed -i 's/CONFIG_IFUPDOWN_UDHCPC_CMD_OPTIONS="-R -n"/CONFIG_IFUPDOWN_UDHCPC_CMD_OPTIONS="-R -b"/' ${S}/.config - sed -i 's|${DEBUG_PREFIX_MAP}||g' ${S}/.config + if [ -n "${DEBUG_PREFIX_MAP}" ]; then + sed -i 's|${DEBUG_PREFIX_MAP}||g' ${S}/.config + fi } # returns all the elements from the src uri that are .cfg files @@ -142,6 +144,7 @@ def find_cfgs(d): return sources_list do_configure () { + set -x do_prepare_config merge_config.sh -m .config ${@" ".join(find_cfgs(d))} cml1_do_configure @@ -316,8 +319,8 @@ do_install () { fi fi if grep -q "CONFIG_INIT=y" ${B}/.config; then - install -D -m 0777 ${WORKDIR}/rcS ${D}${sysconfdir}/init.d/rcS - install -D -m 0777 ${WORKDIR}/rcK ${D}${sysconfdir}/init.d/rcK + install -D -m 0755 ${WORKDIR}/rcS ${D}${sysconfdir}/init.d/rcS + install -D -m 0755 ${WORKDIR}/rcK ${D}${sysconfdir}/init.d/rcK fi if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}; then @@ -392,34 +395,40 @@ python do_package_prepend () { set_alternative_vars("${sysconfdir}/busybox.links.suid", "${base_bindir}/busybox.suid") } -pkg_postinst_${PN} () { - # This part of code is dedicated to the on target upgrade problem. - # It's known that if we don't make appropriate symlinks before update-alternatives calls, - # there will be errors indicating missing commands such as 'sed'. - # These symlinks will later be updated by update-alternatives calls. - test -n 2 > /dev/null || alias test='busybox test' - if test "x$D" = "x"; then - # Remove busybox.nosuid if it's a symlink, because this situation indicates - # that we're installing or upgrading to a one-binary busybox. - if test -h ${base_bindir}/busybox.nosuid; then - rm -f ${base_bindir}/busybox.nosuid - fi - for suffix in "" ".nosuid" ".suid"; do - if test -e ${sysconfdir}/busybox.links$suffix; then - while read link; do - if test ! -e "$link"; then - # we can use busybox here because even if we are using splitted busybox - # we've made a symlink from /bin/busybox to /bin/busybox.nosuid. - busybox rm -f $link - busybox ln -s "${base_bindir}/busybox$suffix" $link - fi - done < ${sysconfdir}/busybox.links$suffix - fi - done - fi - if grep -q "^${base_bindir}/bash$" $D${sysconfdir}/busybox.links*; then - grep -q "^${base_bindir}/bash$" $D${sysconfdir}/shells || echo ${base_bindir}/bash >> $D${sysconfdir}/shells - fi +# This part of code is dedicated to the on target upgrade problem. It's known +# that if we don't make appropriate symlinks before update-alternatives calls, +# there will be errors indicating missing commands such as 'sed'. +# These symlinks will later be updated by update-alternatives calls. +# The update-alternatives.bbclass' postinst script runs firstly before other +# postinst, but this part of code needs run firstly, so add this funtion. +python populate_packages_updatealternatives_append() { + postinst = """ +test -n 2 > /dev/null || alias test='busybox test' +if test "x$D" = "x"; then + # Remove busybox.nosuid if it's a symlink, because this situation indicates + # that we're installing or upgrading to a one-binary busybox. + if test -h ${base_bindir}/busybox.nosuid; then + rm -f ${base_bindir}/busybox.nosuid + fi + for suffix in "" ".nosuid" ".suid"; do + if test -e ${sysconfdir}/busybox.links$suffix; then + while read link; do + if test ! -e "$link"; then + # we can use busybox here because even if we are using splitted busybox + # we've made a symlink from /bin/busybox to /bin/busybox.nosuid. + busybox rm -f $link + busybox ln -s "${base_bindir}/busybox$suffix" $link + fi + done < ${sysconfdir}/busybox.links$suffix + fi + done +fi +if grep -q "^${base_bindir}/bash$" $D${sysconfdir}/busybox.links*; then + grep -q "^${base_bindir}/bash$" $D${sysconfdir}/shells || echo ${base_bindir}/bash >> $D${sysconfdir}/shells +fi + +""" + d.prependVar('pkg_postinst_%s' % pkg, postinst) } pkg_prerm_${PN} () { diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-core/busybox/busybox/0001-dc.tests-fix-two-test-case-to-also-depend-on-DC_BIG.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-core/busybox/busybox/0001-dc.tests-fix-two-test-case-to-also-depend-on-DC_BIG.patch deleted file mode 100644 index d22db4a6..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-core/busybox/busybox/0001-dc.tests-fix-two-test-case-to-also-depend-on-DC_BIG.patch +++ /dev/null @@ -1,39 +0,0 @@ -From a4e03fbb4d82f91069d96005405f89c45b8fd157 Mon Sep 17 00:00:00 2001 -From: Chen Qi -Date: Wed, 17 Apr 2019 09:24:37 +0800 -Subject: [PATCH] dc.tests: fix two test case to also depend on DC_BIG - -Upstream-Status: Submitted [http://lists.busybox.net/pipermail/busybox/2019-April/087205.html] - -Signed-off-by: Chen Qi ---- - testsuite/dc.tests | 6 +++--- - 1 file changed, 3 insertions(+), 3 deletions(-) - -diff --git a/testsuite/dc.tests b/testsuite/dc.tests -index 1708a48..8c3af41 100755 ---- a/testsuite/dc.tests -+++ b/testsuite/dc.tests -@@ -41,6 +41,9 @@ testing "dc complex without spaces (multiple args)" \ - "16\n" \ - "" "" - -+optional FEATURE_DC_BIG -+# All tests below depend on FEATURE_DC_BIG -+ - testing "dc read" \ - "dc -finput" \ - "2\n9\n1\n" \ -@@ -51,9 +54,6 @@ testing "dc read string" \ - "2\nstr\n1\n" \ - "1?2\nf" "[str]\n" - --optional FEATURE_DC_BIG --# All tests below depend on FEATURE_DC_BIG -- - testing "dc '>a' (conditional execute string) 1" \ - "dc" \ - "1\n9\n" \ --- -2.7.4 - diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-core/busybox/busybox/busybox-udhcpc-no_deconfig.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-core/busybox/busybox/busybox-udhcpc-no_deconfig.patch index 76daaf1f..2a0a40c5 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-core/busybox/busybox/busybox-udhcpc-no_deconfig.patch +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-core/busybox/busybox/busybox-udhcpc-no_deconfig.patch @@ -31,10 +31,10 @@ Signed-off-by: Andreas Oberritter networking/udhcp/dhcpc.c | 29 ++++++++++++++++------ 1 file changed, 21 insertions(+), 8 deletions(-) -Index: busybox-1.29.1/networking/udhcp/dhcpc.c +Index: busybox-1.31.0/networking/udhcp/dhcpc.c =================================================================== ---- busybox-1.29.1.orig/networking/udhcp/dhcpc.c -+++ busybox-1.29.1/networking/udhcp/dhcpc.c +--- busybox-1.31.0.orig/networking/udhcp/dhcpc.c ++++ busybox-1.31.0/networking/udhcp/dhcpc.c @@ -48,6 +48,8 @@ }; #endif @@ -42,21 +42,21 @@ Index: busybox-1.29.1/networking/udhcp/dhcpc.c +/* option whether to down the interface when reconfiguring */ +static int allow_deconfig = 1; - /* "struct client_config_t client_config" is in bb_common_bufsiz1 */ + /* "struct client_data_t client_data" is in bb_common_bufsiz1 */ -@@ -103,8 +105,9 @@ +@@ -103,8 +105,10 @@ OPT_x = 1 << 18, OPT_f = 1 << 19, OPT_B = 1 << 20, + OPT_D = 1 << 21, /* The rest has variable bit positions, need to be clever */ -- OPTBIT_B = 20, + OPTBIT_B = 20, + OPTBIT_D = 21, USE_FOR_MMU( OPTBIT_b,) IF_FEATURE_UDHCPC_ARPING(OPTBIT_a,) IF_FEATURE_UDHCP_PORT( OPTBIT_P,) -@@ -1116,7 +1119,8 @@ - state = RENEW_REQUESTED; +@@ -1124,7 +1128,8 @@ + client_data.state = RENEW_REQUESTED; break; case RENEW_REQUESTED: /* impatient are we? fine, square 1 */ - udhcp_run_script(NULL, "deconfig"); @@ -65,7 +65,7 @@ Index: busybox-1.29.1/networking/udhcp/dhcpc.c case REQUESTING: case RELEASED: change_listen_mode(LISTEN_RAW); -@@ -1152,7 +1156,8 @@ +@@ -1160,7 +1165,8 @@ * Users requested to be notified in all cases, even if not in one * of the states above. */ @@ -74,8 +74,8 @@ Index: busybox-1.29.1/networking/udhcp/dhcpc.c + udhcp_run_script(NULL, "deconfig"); change_listen_mode(LISTEN_NONE); - state = RELEASED; -@@ -1265,7 +1270,7 @@ + client_data.state = RELEASED; +@@ -1278,7 +1284,7 @@ /* Parse command line */ opt = getopt32long(argv, "^" /* O,x: list; -T,-t,-A take numeric param */ @@ -84,7 +84,7 @@ Index: busybox-1.29.1/networking/udhcp/dhcpc.c USE_FOR_MMU("b") IF_FEATURE_UDHCPC_ARPING("a::") IF_FEATURE_UDHCP_PORT("P:") -@@ -1376,6 +1381,10 @@ +@@ -1389,6 +1395,10 @@ logmode |= LOGMODE_SYSLOG; } @@ -92,52 +92,52 @@ Index: busybox-1.29.1/networking/udhcp/dhcpc.c + allow_deconfig = 0; + } + - /* Make sure fd 0,1,2 are open */ - bb_sanitize_stdio(); /* Create pidfile */ -@@ -1388,7 +1397,8 @@ + write_pidfile(client_data.pidfile); + /* Goes to stdout (unless NOMMU) and possibly syslog */ +@@ -1397,7 +1407,8 @@ srand(monotonic_us()); - state = INIT_SELECTING; + client_data.state = INIT_SELECTING; - udhcp_run_script(NULL, "deconfig"); + if (allow_deconfig) + udhcp_run_script(NULL, "deconfig"); change_listen_mode(LISTEN_RAW); packet_num = 0; timeout = 0; -@@ -1555,7 +1565,8 @@ +@@ -1570,7 +1581,8 @@ } /* Timed out, enter init state */ - bb_error_msg("lease lost, entering init state"); + bb_info_msg("lease lost, entering init state"); - udhcp_run_script(NULL, "deconfig"); + if (allow_deconfig) + udhcp_run_script(NULL, "deconfig"); - state = INIT_SELECTING; - client_config.first_secs = 0; /* make secs field count from 0 */ + client_data.state = INIT_SELECTING; + client_data.first_secs = 0; /* make secs field count from 0 */ /*timeout = 0; - already is */ -@@ -1748,8 +1759,10 @@ +@@ -1762,8 +1774,10 @@ "(got ARP reply), declining"); send_decline(/*xid,*/ server_addr, packet.yiaddr); -- if (state != REQUESTING) +- if (client_data.state != REQUESTING) - udhcp_run_script(NULL, "deconfig"); -+ if (state != REQUESTING) { ++ if (client_data.state != REQUESTING) { + if (allow_deconfig) + udhcp_run_script(NULL, "deconfig"); + } change_listen_mode(LISTEN_RAW); - state = INIT_SELECTING; - client_config.first_secs = 0; /* make secs field count from 0 */ -@@ -1818,8 +1831,10 @@ + client_data.state = INIT_SELECTING; + client_data.first_secs = 0; /* make secs field count from 0 */ +@@ -1832,8 +1846,10 @@ /* return to init state */ - bb_error_msg("received %s", "DHCP NAK"); + bb_info_msg("received %s", "DHCP NAK"); udhcp_run_script(&packet, "nak"); -- if (state != REQUESTING) +- if (client_data.state != REQUESTING) - udhcp_run_script(NULL, "deconfig"); -+ if (state != REQUESTING) { ++ if (client_data.state != REQUESTING) { + if (allow_deconfig) + udhcp_run_script(NULL, "deconfig"); + } change_listen_mode(LISTEN_RAW); sleep(3); /* avoid excessive network traffic */ - state = INIT_SELECTING; + client_data.state = INIT_SELECTING; diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-core/busybox/busybox/unicode.cfg b/Contrib-Inspur/openbmc/poky/meta/recipes-core/busybox/busybox/unicode.cfg new file mode 100644 index 00000000..ecb5a64f --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-core/busybox/busybox/unicode.cfg @@ -0,0 +1,10 @@ +CONFIG_UNICODE_SUPPORT=y +# CONFIG_UNICODE_USING_LOCALE is not set +CONFIG_FEATURE_CHECK_UNICODE_IN_ENV=y +CONFIG_SUBST_WCHAR=63 +CONFIG_LAST_SUPPORTED_WCHAR=767 +CONFIG_UNICODE_COMBINING_WCHARS=y +CONFIG_UNICODE_WIDE_WCHARS=y +# CONFIG_UNICODE_BIDI_SUPPORT is not set +# CONFIG_UNICODE_NEUTRAL_TABLE is not set +# CONFIG_UNICODE_PRESERVE_BROKEN is not set diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-core/busybox/busybox_1.30.1.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-core/busybox/busybox_1.30.1.bb deleted file mode 100644 index ba76755d..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-core/busybox/busybox_1.30.1.bb +++ /dev/null @@ -1,52 +0,0 @@ -require busybox.inc - -SRC_URI = "http://www.busybox.net/downloads/busybox-${PV}.tar.bz2;name=tarball \ - file://busybox-udhcpc-no_deconfig.patch \ - file://find-touchscreen.sh \ - file://busybox-cron \ - file://busybox-httpd \ - file://busybox-udhcpd \ - file://default.script \ - file://simple.script \ - file://hwclock.sh \ - file://mount.busybox \ - file://syslog \ - file://syslog-startup.conf \ - file://syslog.conf \ - file://busybox-syslog.default \ - file://mdev \ - file://mdev.conf \ - file://mdev-mount.sh \ - file://umount.busybox \ - file://defconfig \ - file://busybox-syslog.service.in \ - file://busybox-klogd.service.in \ - file://fail_on_no_media.patch \ - file://run-ptest \ - file://inetd.conf \ - file://inetd \ - file://login-utilities.cfg \ - file://recognize_connmand.patch \ - file://busybox-cross-menuconfig.patch \ - file://0001-Use-CC-when-linking-instead-of-LD-and-use-CFLAGS-and.patch \ - file://mount-via-label.cfg \ - file://sha1sum.cfg \ - file://sha256sum.cfg \ - file://getopts.cfg \ - file://resize.cfg \ - ${@["", "file://init.cfg"][(d.getVar('VIRTUAL-RUNTIME_init_manager') == 'busybox')]} \ - ${@["", "file://mdev.cfg"][(d.getVar('VIRTUAL-RUNTIME_dev_manager') == 'busybox-mdev')]} \ - file://syslog.cfg \ - file://inittab \ - file://rcS \ - file://rcK \ - file://makefile-libbb-race.patch \ - file://0001-testsuite-check-uudecode-before-using-it.patch \ - file://0001-testsuite-use-www.example.org-for-wget-test-cases.patch \ - file://0001-du-l-works-fix-to-use-145-instead-of-144.patch \ - file://0001-dc.tests-fix-two-test-case-to-also-depend-on-DC_BIG.patch \ -" -SRC_URI_append_libc-musl = " file://musl.cfg " - -SRC_URI[tarball.md5sum] = "4f72fc6abd736d5f4741fc4a2485547a" -SRC_URI[tarball.sha256sum] = "3d1d04a4dbd34048f4794815a5c48ebb9eb53c5277e09ffffc060323b95dfbdc" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-core/busybox/busybox_1.31.0.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-core/busybox/busybox_1.31.0.bb new file mode 100644 index 00000000..34b1f2cc --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-core/busybox/busybox_1.31.0.bb @@ -0,0 +1,49 @@ +require busybox.inc + +SRC_URI = "http://www.busybox.net/downloads/busybox-${PV}.tar.bz2;name=tarball \ + file://busybox-udhcpc-no_deconfig.patch \ + file://find-touchscreen.sh \ + file://busybox-cron \ + file://busybox-httpd \ + file://busybox-udhcpd \ + file://default.script \ + file://simple.script \ + file://hwclock.sh \ + file://syslog \ + file://syslog-startup.conf \ + file://syslog.conf \ + file://busybox-syslog.default \ + file://mdev \ + file://mdev.conf \ + file://mdev-mount.sh \ + file://defconfig \ + file://busybox-syslog.service.in \ + file://busybox-klogd.service.in \ + file://fail_on_no_media.patch \ + file://run-ptest \ + file://inetd.conf \ + file://inetd \ + file://login-utilities.cfg \ + file://recognize_connmand.patch \ + file://busybox-cross-menuconfig.patch \ + file://0001-Use-CC-when-linking-instead-of-LD-and-use-CFLAGS-and.patch \ + file://mount-via-label.cfg \ + file://sha1sum.cfg \ + file://sha256sum.cfg \ + file://getopts.cfg \ + file://resize.cfg \ + ${@["", "file://init.cfg"][(d.getVar('VIRTUAL-RUNTIME_init_manager') == 'busybox')]} \ + ${@["", "file://mdev.cfg"][(d.getVar('VIRTUAL-RUNTIME_dev_manager') == 'busybox-mdev')]} \ + file://syslog.cfg \ + file://unicode.cfg \ + file://rcS \ + file://rcK \ + file://makefile-libbb-race.patch \ + file://0001-testsuite-check-uudecode-before-using-it.patch \ + file://0001-testsuite-use-www.example.org-for-wget-test-cases.patch \ + file://0001-du-l-works-fix-to-use-145-instead-of-144.patch \ +" +SRC_URI_append_libc-musl = " file://musl.cfg " + +SRC_URI[tarball.md5sum] = "cdba5d4458f944ceec5cdcf7c4914b69" +SRC_URI[tarball.sha256sum] = "0e4925392fd9f3743cc517e031b68b012b24a63b0cf6c1ff03cce7bb3846cc99" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-core/busybox/files/mount.busybox b/Contrib-Inspur/openbmc/poky/meta/recipes-core/busybox/files/mount.busybox deleted file mode 100755 index fef945b7..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-core/busybox/files/mount.busybox +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/sh - -exec /bin/busybox mount $@ diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-core/busybox/files/syslog b/Contrib-Inspur/openbmc/poky/meta/recipes-core/busybox/files/syslog index 89c4d12e..2208613e 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-core/busybox/files/syslog +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-core/busybox/files/syslog @@ -51,6 +51,22 @@ else SYSLOG_ARGS="-C" fi +waitpid () +{ + pid=$1 + # Give pid a chance to exit before we restart with a 5s timeout in 1s intervals + if [ -z "$pid" ]; then + return + fi + timeout=5; + while [ $timeout -gt 0 ] + do + timeout=$(( $timeout-1 )) + kill -0 $pid 2> /dev/null || break + sleep 1 + done +} + case "$1" in start) echo -n "Starting syslogd/klogd: " @@ -65,7 +81,11 @@ case "$1" in echo "done" ;; restart) - $0 stop + pid1=`pidof syslogd` + pid2=`pidof klogd` + $0 stop + waitpid $pid1 + waitpid $pid2 $0 start ;; *) diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-core/busybox/files/umount.busybox b/Contrib-Inspur/openbmc/poky/meta/recipes-core/busybox/files/umount.busybox deleted file mode 100755 index f3731626..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-core/busybox/files/umount.busybox +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/sh - -exec /bin/busybox umount $@ diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-core/coreutils/coreutils_8.31.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-core/coreutils/coreutils_8.31.bb index 4a74f619..57b2c1bd 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-core/coreutils/coreutils_8.31.bb +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-core/coreutils/coreutils_8.31.bb @@ -49,7 +49,7 @@ bindir_progs = "arch basename chcon cksum comm csplit cut dir dircolors dirname env expand expr factor fmt fold groups head hostid id install \ join link logname md5sum mkfifo nl nohup nproc od paste pathchk \ pinky pr printf ptx readlink realpath runcon seq sha1sum sha224sum sha256sum \ - sha384sum sha512sum shred shuf sort split stdbuf sum tac tail tee test timeout \ + sha384sum sha512sum shred shuf sort split sum tac tail tee test timeout \ tr truncate tsort tty unexpand uniq unlink uptime users vdir wc who whoami yes" # hostname gets a special treatment and is not included in this @@ -58,6 +58,10 @@ base_bindir_progs = "cat chgrp chmod chown cp date dd echo false hostname kill l sbindir_progs= "chroot" +PACKAGE_BEFORE_PN_class-target += "coreutils-stdbuf" +FILES_coreutils-stdbuf = "${bindir}/stdbuf ${libdir}/coreutils/libstdbuf.so" +RDEPENDS_coreutils_class-target += "coreutils-stdbuf" + # Let aclocal use the relative path for the m4 file rather than the # absolute since coreutils has a lot of m4 files, otherwise there might # be an "Argument list too long" error when it is built in a long/deep diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-core/dbus/dbus/dbus-1.init b/Contrib-Inspur/openbmc/poky/meta/recipes-core/dbus/dbus/dbus-1.init index 42c86297..90e167e5 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-core/dbus/dbus/dbus-1.init +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-core/dbus/dbus/dbus-1.init @@ -21,8 +21,8 @@ DAEMON=@bindir@/dbus-daemon NAME=dbus -DAEMONUSER=messagebus # must match /etc/dbus-1/system.conf -PIDFILE=/var/run/messagebus.pid # must match /etc/dbus-1/system.conf +DAEMONUSER=messagebus # must match /usr/share/dbus-1/system.conf +PIDFILE=/var/run/dbus/pid # must match /usr/share/dbus-1/system.conf UUIDDIR=/var/lib/dbus DESC="system message bus" EVENTDIR=/etc/dbus-1/event.d diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-core/dbus/dbus/run-ptest b/Contrib-Inspur/openbmc/poky/meta/recipes-core/dbus/dbus/run-ptest index cf2e68fa..48535e13 100755 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-core/dbus/dbus/run-ptest +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-core/dbus/dbus/run-ptest @@ -21,7 +21,8 @@ do #these programs are used by testcase test-bus, don't run here if [ $i = "test/test-service" ] \ || [ $i = "test/test-shell-service" ] \ - || [ $i = "test/test-segfault" ] + || [ $i = "test/test-segfault" ] \ + || [ $i = "test/test-bus" ] then continue fi diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-core/dbus/dbus_1.12.16.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-core/dbus/dbus_1.12.16.bb index 05716608..96b50368 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-core/dbus/dbus_1.12.16.bb +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-core/dbus/dbus_1.12.16.bb @@ -32,7 +32,6 @@ python __anonymous() { } USERADD_PACKAGES = "${PN}" -GROUPADD_PARAM_${PN} = "-r netdev" USERADD_PARAM_${PN} = "--system --home ${localstatedir}/lib/dbus \ --no-create-home --shell /bin/false \ --user-group messagebus" @@ -92,11 +91,13 @@ pkg_postinst_dbus() { fi } + EXTRA_OECONF = "--disable-tests \ --disable-xml-docs \ --disable-doxygen-docs \ --disable-libaudit \ --enable-largefile \ + --with-system-socket=/run/dbus/system_bus_socket \ " EXTRA_OECONF_append_class-target = " SYSTEMCTL=${base_bindir}/systemctl" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-core/dropbear/dropbear.inc b/Contrib-Inspur/openbmc/poky/meta/recipes-core/dropbear/dropbear.inc index dcbda741..7269888a 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-core/dropbear/dropbear.inc +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-core/dropbear/dropbear.inc @@ -70,8 +70,13 @@ do_install() { install -m 0644 ${WORKDIR}/dropbear.default ${D}${sysconfdir}/default/dropbear install -m 0755 dropbearmulti ${D}${sbindir}/ - ln -s ${sbindir}/dropbearmulti ${D}${bindir}/dbclient + for i in ${BINCOMMANDS} + do + # ssh and scp symlinks are created by update-alternatives + if [ $i = ssh ] || [ $i = scp ]; then continue; fi + ln -s ${sbindir}/dropbearmulti ${D}${bindir}/$i + done for i in ${SBINCOMMANDS} do ln -s ./dropbearmulti ${D}${sbindir}/$i @@ -101,7 +106,7 @@ do_install() { inherit update-alternatives ALTERNATIVE_PRIORITY = "20" -ALTERNATIVE_${PN} = "scp ssh" +ALTERNATIVE_${PN} = "${@bb.utils.filter('BINCOMMANDS', 'scp ssh', d)}" ALTERNATIVE_TARGET = "${sbindir}/dropbearmulti" @@ -113,3 +118,5 @@ pkg_postrm_append_${PN} () { rm ${sysconfdir}/dropbear/dropbear_dss_host_key fi } + +FILES_${PN} += "${bindir}" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-core/ell/ell_0.20.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-core/ell/ell_0.20.bb deleted file mode 100644 index 81caa80f..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-core/ell/ell_0.20.bb +++ /dev/null @@ -1,22 +0,0 @@ -SUMMARY = "Embedded Linux Library" -DESCRIPTION = "The Embedded Linux Library (ELL) provides core, \ -low-level functionality for system daemons. It typically has no \ -dependencies other than the Linux kernel, C standard library, and \ -libdl (for dynamic linking). While ELL is designed to be efficient \ -and compact enough for use on embedded Linux platforms, it is not \ -limited to resource-constrained systems." -SECTION = "libs" -LICENSE = "LGPLv2.1" -LIC_FILES_CHKSUM = "file://COPYING;md5=fb504b67c50331fc78734fed90fb0e09" - -DEPENDS = "dbus" - -inherit autotools pkgconfig - -SRC_URI = "https://mirrors.edge.kernel.org/pub/linux/libs/${BPN}/${BPN}-${PV}.tar.xz" -SRC_URI[md5sum] = "920189f5be4ee4cd72d610baeb20da65" -SRC_URI[sha256sum] = "d4aa08915f4058ecaab509dffbe22665d71dba6fe9626caff63c0e5f4b78a394" - -do_configure_prepend () { - mkdir -p ${S}/build-aux -} diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-core/ell/ell_0.26.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-core/ell/ell_0.26.bb new file mode 100644 index 00000000..f1f252ce --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-core/ell/ell_0.26.bb @@ -0,0 +1,22 @@ +SUMMARY = "Embedded Linux Library" +DESCRIPTION = "The Embedded Linux Library (ELL) provides core, \ +low-level functionality for system daemons. It typically has no \ +dependencies other than the Linux kernel, C standard library, and \ +libdl (for dynamic linking). While ELL is designed to be efficient \ +and compact enough for use on embedded Linux platforms, it is not \ +limited to resource-constrained systems." +SECTION = "libs" +LICENSE = "LGPLv2.1" +LIC_FILES_CHKSUM = "file://COPYING;md5=fb504b67c50331fc78734fed90fb0e09" + +DEPENDS = "dbus" + +inherit autotools pkgconfig + +SRC_URI = "https://mirrors.edge.kernel.org/pub/linux/libs/${BPN}/${BPN}-${PV}.tar.xz" +SRC_URI[md5sum] = "4660e25541071e933a2bb02ef2f94e7d" +SRC_URI[sha256sum] = "7855b4b8f271ba6ee67d87d0965b975a9a8dbeaa616665ca2248afa3b5fcbc77" + +do_configure_prepend () { + mkdir -p ${S}/build-aux +} diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-core/expat/expat/autotools.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-core/expat/expat/autotools.patch deleted file mode 100644 index 104717ea..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-core/expat/expat/autotools.patch +++ /dev/null @@ -1,25 +0,0 @@ -Avoid using expat's m4 files - -Upstream-Status: Inappropriate [Other] -Workaround specific to our build system. - -Signed-off-by: Kevin Tian -Signed-off-by: Scott Garman - -Updated to apply over expat 2.1.0 - -Signed-off-by: Marko Lindqvist - -Index: expat-2.2.5/configure.ac -=================================================================== ---- expat-2.2.5.orig/configure.ac -+++ expat-2.2.5/configure.ac -@@ -53,8 +53,6 @@ LIBAGE=6 # CMakeLists.txt! - CPPFLAGS="${CPPFLAGS} -DHAVE_EXPAT_CONFIG_H" - AC_CONFIG_HEADER(expat_config.h) - --sinclude(conftools/ac_c_bigendian_cross.m4) -- - AC_LIBTOOL_WIN32_DLL - AC_PROG_LIBTOOL - diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-core/expat/expat_2.2.6.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-core/expat/expat_2.2.6.bb deleted file mode 100644 index c9e6081a..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-core/expat/expat_2.2.6.bb +++ /dev/null @@ -1,23 +0,0 @@ -SUMMARY = "A stream-oriented XML parser library" -DESCRIPTION = "Expat is an XML parser library written in C. It is a stream-oriented parser in which an application registers handlers for things the parser might find in the XML document (like start tags)" -HOMEPAGE = "http://expat.sourceforge.net/" -SECTION = "libs" -LICENSE = "MIT" - -LIC_FILES_CHKSUM = "file://COPYING;md5=5b8620d98e49772d95fc1d291c26aa79" - -SRC_URI = "${SOURCEFORGE_MIRROR}/expat/expat-${PV}.tar.bz2 \ - file://autotools.patch \ - file://libtool-tag.patch \ - " - -SRC_URI[md5sum] = "ca047ae951b40020ac831c28859161b2" -SRC_URI[sha256sum] = "17b43c2716d521369f82fc2dc70f359860e90fa440bea65b3b85f0b246ea81f2" - -inherit autotools lib_package - -do_configure_prepend () { - rm -f ${S}/conftools/libtool.m4 -} - -BBCLASSEXTEND = "native nativesdk" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-core/expat/expat_2.2.9.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-core/expat/expat_2.2.9.bb new file mode 100644 index 00000000..8f3db413 --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-core/expat/expat_2.2.9.bb @@ -0,0 +1,22 @@ +SUMMARY = "A stream-oriented XML parser library" +DESCRIPTION = "Expat is an XML parser library written in C. It is a stream-oriented parser in which an application registers handlers for things the parser might find in the XML document (like start tags)" +HOMEPAGE = "http://expat.sourceforge.net/" +SECTION = "libs" +LICENSE = "MIT" + +LIC_FILES_CHKSUM = "file://COPYING;md5=5b8620d98e49772d95fc1d291c26aa79" + +SRC_URI = "${SOURCEFORGE_MIRROR}/expat/expat-${PV}.tar.bz2 \ + file://libtool-tag.patch \ + " + +SRC_URI[md5sum] = "875a2c2ff3e8eb9e5a5cd62db2033ab5" +SRC_URI[sha256sum] = "f1063084dc4302a427dabcca499c8312b3a32a29b7d2506653ecc8f950a9a237" + +inherit autotools lib_package + +do_configure_prepend () { + rm -f ${S}/conftools/libtool.m4 +} + +BBCLASSEXTEND = "native nativesdk" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-core/glib-2.0/glib-2.0/0001-Do-not-write-bindir-into-pkg-config-files.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-core/glib-2.0/glib-2.0/0001-Do-not-write-bindir-into-pkg-config-files.patch index ede29c90..edac4c9f 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-core/glib-2.0/glib-2.0/0001-Do-not-write-bindir-into-pkg-config-files.patch +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-core/glib-2.0/glib-2.0/0001-Do-not-write-bindir-into-pkg-config-files.patch @@ -1,4 +1,4 @@ -From 474e59abec88de0c455836c1f53152bf2aa26c34 Mon Sep 17 00:00:00 2001 +From 60b36289ac314ad972cf81c1acd19f6f2e58ff25 Mon Sep 17 00:00:00 2001 From: Alexander Kanavin Date: Fri, 15 Feb 2019 11:17:27 +0100 Subject: [PATCH] Do not write $bindir into pkg-config files @@ -9,33 +9,44 @@ rather than use target paths). Upstream-Status: Inappropriate [upstream wants the paths in .pc files] Signed-off-by: Alexander Kanavin + --- - gio/meson.build | 6 +++--- - glib/meson.build | 6 +++--- - 2 files changed, 6 insertions(+), 6 deletions(-) + gio/meson.build | 16 ++++++++-------- + glib/meson.build | 6 +++--- + 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/gio/meson.build b/gio/meson.build -index 85d8b14..657720a 100644 +index 71e88c4..8ce3987 100644 --- a/gio/meson.build +++ b/gio/meson.build -@@ -813,9 +813,9 @@ pkg.generate(libraries : libgio, +@@ -831,14 +831,14 @@ pkg.generate(libgio, 'schemasdir=' + join_paths('${datadir}', schemas_subdir), 'bindir=' + join_paths('${prefix}', get_option('bindir')), 'giomoduledir=' + giomodulesdir, +- 'gio=' + join_paths('${bindir}', 'gio'), +- 'gio_querymodules=' + join_paths('${bindir}', 'gio-querymodules'), - 'glib_compile_schemas=' + join_paths('${bindir}', 'glib-compile-schemas'), - 'glib_compile_resources=' + join_paths('${bindir}', 'glib-compile-resources'), -- 'gdbus_codegen=' + join_paths('${bindir}', 'gdbus-codegen')], +- 'gdbus=' + join_paths('${bindir}', 'gdbus'), +- 'gdbus_codegen=' + join_paths('${bindir}', 'gdbus-codegen'), +- 'gresource=' + join_paths('${bindir}', 'gresource'), +- 'gsettings=' + join_paths('${bindir}', 'gsettings')], ++ 'gio=gio', ++ 'gio_querymodules=gio-querymodules', + 'glib_compile_schemas=glib-compile-schemas', + 'glib_compile_resources=glib-compile-resources', -+ 'gdbus_codegen=gdbus-codegen'], ++ 'gdbus=gdbus', ++ 'gdbus_codegen=gdbus-codegen', ++ 'gresource=gresource', ++ 'gsettings=gsettings'], version : glib_version, install_dir : glib_pkgconfigreldir, filebase : 'gio-2.0', diff --git a/glib/meson.build b/glib/meson.build -index c05c694..434e8b1 100644 +index 91a48f1..978fb73 100644 --- a/glib/meson.build +++ b/glib/meson.build -@@ -261,9 +261,9 @@ pkg.generate(libraries : [libglib, libintl], +@@ -375,9 +375,9 @@ pkg.generate(libglib, subdirs : ['glib-2.0'], extra_cflags : ['-I${libdir}/glib-2.0/include'] + win32_cflags, variables : ['bindir=' + join_paths('${prefix}', get_option('bindir')), diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-core/glib-2.0/glib-2.0/0001-Fix-DATADIRNAME-on-uclibc-Linux.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-core/glib-2.0/glib-2.0/0001-Fix-DATADIRNAME-on-uclibc-Linux.patch new file mode 100644 index 00000000..d8cf269b --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-core/glib-2.0/glib-2.0/0001-Fix-DATADIRNAME-on-uclibc-Linux.patch @@ -0,0 +1,34 @@ +From 15f807481de53942525b48952c5b6bbb9fb66542 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Sat, 15 Mar 2014 22:42:29 -0700 +Subject: [PATCH] Fix DATADIRNAME on uclibc/Linux + +translation files are always installed under PREFIX/share/locale in uclibc +based systems therefore lets set DATADIRNAME to "share". + +Signed-off-by: Khem Raj +Upstream-Status: Pending + +%% original patch: uclibc_musl_translation.patch +--- + m4macros/glib-gettext.m4 | 4 ++++ + 1 file changed, 4 insertions(+) + +diff --git a/m4macros/glib-gettext.m4 b/m4macros/glib-gettext.m4 +index df6fbf0..47db864 100644 +--- a/m4macros/glib-gettext.m4 ++++ b/m4macros/glib-gettext.m4 +@@ -293,6 +293,10 @@ msgstr "" + CATOBJEXT=.mo + DATADIRNAME=share + ;; ++ *-*-musl* | *-*-linux-uclibc*) ++ CATOBJEXT=.gmo ++ DATADIRNAME=share ++ ;; + *) + CATOBJEXT=.mo + DATADIRNAME=lib +-- +2.17.1 + diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-core/glib-2.0/glib-2.0/0001-Set-host_machine-correctly-when-building-with-mingw3.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-core/glib-2.0/glib-2.0/0001-Set-host_machine-correctly-when-building-with-mingw3.patch index d22a646c..b02169e0 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-core/glib-2.0/glib-2.0/0001-Set-host_machine-correctly-when-building-with-mingw3.patch +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-core/glib-2.0/glib-2.0/0001-Set-host_machine-correctly-when-building-with-mingw3.patch @@ -1,4 +1,4 @@ -From f5a4b4c0579734923c9caf70944322efff57318b Mon Sep 17 00:00:00 2001 +From cfff734af6bff6a30a649f784ecf698658c01884 Mon Sep 17 00:00:00 2001 From: Alexander Kanavin Date: Wed, 13 Feb 2019 15:32:05 +0100 Subject: [PATCH] Set host_machine correctly when building with mingw32 @@ -14,11 +14,11 @@ Signed-off-by: Alexander Kanavin 4 files changed, 9 insertions(+), 6 deletions(-) diff --git a/gio/tests/meson.build b/gio/tests/meson.build -index 028b196..217ccb1 100644 +index 95aafc1..9025eb2 100644 --- a/gio/tests/meson.build +++ b/gio/tests/meson.build -@@ -12,7 +12,7 @@ test_c_args = [ - '-DGLIB_COMPILE_SCHEMAS="@0@"'.format(glib_compile_schemas.full_path()), +@@ -13,7 +13,7 @@ test_c_args = [ + '-UG_DISABLE_ASSERT', ] -if host_machine.system() == 'windows' @@ -26,7 +26,7 @@ index 028b196..217ccb1 100644 common_gio_tests_deps += [iphlpapi_dep, winsock2, cc.find_library ('secur32')] endif -@@ -119,7 +119,7 @@ if dbus1_dep.found() +@@ -120,7 +120,7 @@ if dbus1_dep.found() endif # Test programs buildable on UNIX only @@ -35,7 +35,7 @@ index 028b196..217ccb1 100644 gio_tests += { 'file' : {}, 'gdbus-peer' : { -@@ -327,7 +327,7 @@ if host_machine.system() != 'windows' +@@ -332,7 +332,7 @@ if host_machine.system() != 'windows' endif # unix # Test programs buildable on Windows only @@ -44,7 +44,7 @@ index 028b196..217ccb1 100644 gio_tests += {'win32-streams' : {}} endif -@@ -392,7 +392,7 @@ if cc.get_id() != 'msvc' +@@ -397,7 +397,7 @@ if cc.get_id() != 'msvc' and cc.get_id() != 'clang-cl' } endif @@ -54,7 +54,7 @@ index 028b196..217ccb1 100644 'gdbus-example-unix-fd-client' : { 'install' : false, diff --git a/glib/tests/meson.build b/glib/tests/meson.build -index d54fc41..a4761fe 100644 +index c47133f..cad975f 100644 --- a/glib/tests/meson.build +++ b/glib/tests/meson.build @@ -132,7 +132,7 @@ if glib_conf.has('HAVE_EVENTFD') @@ -67,10 +67,10 @@ index d54fc41..a4761fe 100644 glib_tests += { 'gpoll' : { diff --git a/meson.build b/meson.build -index a745024..e87eae5 100644 +index 717d1bc..2a3beb8 100644 --- a/meson.build +++ b/meson.build -@@ -31,6 +31,9 @@ else +@@ -32,6 +32,9 @@ else endif host_system = host_machine.system() @@ -81,7 +81,7 @@ index a745024..e87eae5 100644 glib_version = meson.project_version() glib_api_version = '2.0' diff --git a/tests/meson.build b/tests/meson.build -index 11075dd..cd6067b 100644 +index ce30442..5710f2c 100644 --- a/tests/meson.build +++ b/tests/meson.build @@ -66,7 +66,7 @@ test_extra_programs = { diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-core/glib-2.0/glib-2.0/0001-meson-Run-atomics-test-on-clang-as-well.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-core/glib-2.0/glib-2.0/0001-meson-Run-atomics-test-on-clang-as-well.patch new file mode 100644 index 00000000..833ad254 --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-core/glib-2.0/glib-2.0/0001-meson-Run-atomics-test-on-clang-as-well.patch @@ -0,0 +1,31 @@ +From cce617bec254e327ed7bcad60f58208024c6dc42 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Sat, 12 Oct 2019 17:46:26 -0700 +Subject: [PATCH] meson: Run atomics test on clang as well + +Fixes +./glib-2.62.1/glib/gatomic.c:675:2: error: G_ATOMIC_LOCK_FREE defined, but incapable of lock-free atomics. +^ + +Upstream-Status: Pending +Signed-off-by: Khem Raj +--- + meson.build | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/meson.build b/meson.build +index 9731de4..c678931 100644 +--- a/meson.build ++++ b/meson.build +@@ -1634,7 +1634,7 @@ atomicdefine = ''' + # We know that we can always use real ("lock free") atomic operations with MSVC + if cc.get_id() == 'msvc' or cc.get_id() == 'clang-cl' or cc.links(atomictest, name : 'atomic ops') + have_atomic_lock_free = true +- if cc.get_id() == 'gcc' and not cc.compiles(atomicdefine, name : 'atomic ops define') ++ if (cc.get_id() == 'gcc' or cc.get_id() == 'clang') and not cc.compiles(atomicdefine, name : 'atomic ops define') + # Old gcc release may provide + # __sync_bool_compare_and_swap but doesn't define + # __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4 +-- +2.23.0 + diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-core/glib-2.0/glib-2.0/0001-meson-do-a-build-time-check-for-strlcpy-before-attem.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-core/glib-2.0/glib-2.0/0001-meson-do-a-build-time-check-for-strlcpy-before-attem.patch deleted file mode 100644 index d1ed0287..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-core/glib-2.0/glib-2.0/0001-meson-do-a-build-time-check-for-strlcpy-before-attem.patch +++ /dev/null @@ -1,62 +0,0 @@ -Upstream-Status: Backport [fc88e56bfc2b09a8fb2b350e76f6425ab0a056d7] -Signed-off-by: Ross Burton - -From 141acf6a2f3b21d63c9cfe620b8e20a506e78493 Mon Sep 17 00:00:00 2001 -From: Ross Burton -Date: Wed, 13 Mar 2019 16:22:09 +0000 -Subject: [PATCH] meson: do a build-time check for strlcpy before attempting - runtime check - -In cross-compilation environments the runtime check isn't possible so it is up -to the builder to seed the cross file, but we can definitely state that strlcpy -doesn't exist with a build test. ---- - meson.build | 30 ++++++++++++++++-------------- - 1 file changed, 16 insertions(+), 14 deletions(-) - -diff --git a/meson.build b/meson.build -index 15039e448..414f2d9b1 100644 ---- a/meson.build -+++ b/meson.build -@@ -1860,22 +1860,24 @@ endif - - # Test if we have strlcpy/strlcat with a compatible implementation: - # https://bugzilla.gnome.org/show_bug.cgi?id=53933 --if cc_can_run -- rres = cc.run('''#include -- #include -- int main() { -- char p[10]; -- (void) strlcpy (p, "hi", 10); -- if (strlcat (p, "bye", 0) != 3) -- return 1; -- return 0; -- }''', -- name : 'OpenBSD strlcpy/strlcat') -- if rres.compiled() and rres.returncode() == 0 -+if cc.has_function('strlcpy') -+ if cc_can_run -+ rres = cc.run('''#include -+ #include -+ int main() { -+ char p[10]; -+ (void) strlcpy (p, "hi", 10); -+ if (strlcat (p, "bye", 0) != 3) -+ return 1; -+ return 0; -+ }''', -+ name : 'OpenBSD strlcpy/strlcat') -+ if rres.compiled() and rres.returncode() == 0 -+ glib_conf.set('HAVE_STRLCPY', 1) -+ endif -+ elif meson.get_cross_property('have_strlcpy', false) - glib_conf.set('HAVE_STRLCPY', 1) - endif --elif meson.get_cross_property('have_strlcpy', false) -- glib_conf.set('HAVE_STRLCPY', 1) - endif - - python = import('python').find_installation('python3') --- -2.11.0 - diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-core/glib-2.0/glib-2.0/0001-meson.build-do-not-hardcode-linux-as-the-host-system.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-core/glib-2.0/glib-2.0/0001-meson.build-do-not-hardcode-linux-as-the-host-system.patch deleted file mode 100644 index 5a1a5898..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-core/glib-2.0/glib-2.0/0001-meson.build-do-not-hardcode-linux-as-the-host-system.patch +++ /dev/null @@ -1,27 +0,0 @@ -From 635fe26af51f20194c8b208e7d01303be1086d68 Mon Sep 17 00:00:00 2001 -From: Alexander Kanavin -Date: Tue, 19 Feb 2019 10:31:11 +0100 -Subject: [PATCH] meson.build: do not hardcode 'linux' as the host system - -OE build system can set this to other values that include 'linux', -e.g. 'linux-gnueabi' - -Upstream-Status: Pending -Signed-off-by: Alexander Kanavin ---- - meson.build | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/meson.build b/meson.build -index 4348f20..af5ed63 100644 ---- a/meson.build -+++ b/meson.build -@@ -1574,7 +1574,7 @@ atomicdefine = ''' - # We know that we can always use real ("lock free") atomic operations with MSVC - if cc.get_id() == 'msvc' or cc.links(atomictest, name : 'atomic ops') - have_atomic_lock_free = true -- if (host_system == 'android' or host_system == 'linux') and not cc.compiles(atomicdefine, name : 'atomic ops define') -+ if (host_system == 'android' or host_system.contains('linux')) and not cc.compiles(atomicdefine, name : 'atomic ops define') - # When building for armv5 on Linux, gcc provides - # __sync_bool_compare_and_swap but doesn't define - # __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4 diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-core/glib-2.0/glib-2.0/CVE-2019-12450.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-core/glib-2.0/glib-2.0/CVE-2019-12450.patch deleted file mode 100644 index 59e49195..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-core/glib-2.0/glib-2.0/CVE-2019-12450.patch +++ /dev/null @@ -1,62 +0,0 @@ -glib-2.0: fix CVE-2019-12450 - -Not in release 2.61.1. - -CVE: CVE-2019-12450 - -Upstream-Status: Backport [github.com/GNOME/glib.git] -Signed-off-by: Joe Slater ---- -From d8f8f4d637ce43f8699ba94c9b7648beda0ca174 Mon Sep 17 00:00:00 2001 -From: Ondrej Holy -Date: Thu, 23 May 2019 10:41:53 +0200 -Subject: [PATCH] gfile: Limit access to files when copying - -file_copy_fallback creates new files with default permissions and -set the correct permissions after the operation is finished. This -might cause that the files can be accessible by more users during -the operation than expected. Use G_FILE_CREATE_PRIVATE for the new -files to limit access to those files. ---- - gio/gfile.c | 11 ++++++----- - 1 file changed, 6 insertions(+), 5 deletions(-) - -diff --git a/gio/gfile.c b/gio/gfile.c -index 24b136d80..74b58047c 100644 ---- a/gio/gfile.c -+++ b/gio/gfile.c -@@ -3284,12 +3284,12 @@ file_copy_fallback (GFile *source, - out = (GOutputStream*)_g_local_file_output_stream_replace (_g_local_file_get_filename (G_LOCAL_FILE (destination)), - FALSE, NULL, - flags & G_FILE_COPY_BACKUP, -- G_FILE_CREATE_REPLACE_DESTINATION, -- info, -+ G_FILE_CREATE_REPLACE_DESTINATION | -+ G_FILE_CREATE_PRIVATE, info, - cancellable, error); - else - out = (GOutputStream*)_g_local_file_output_stream_create (_g_local_file_get_filename (G_LOCAL_FILE (destination)), -- FALSE, 0, info, -+ FALSE, G_FILE_CREATE_PRIVATE, info, - cancellable, error); - } - else if (flags & G_FILE_COPY_OVERWRITE) -@@ -3297,12 +3297,13 @@ file_copy_fallback (GFile *source, - out = (GOutputStream *)g_file_replace (destination, - NULL, - flags & G_FILE_COPY_BACKUP, -- G_FILE_CREATE_REPLACE_DESTINATION, -+ G_FILE_CREATE_REPLACE_DESTINATION | -+ G_FILE_CREATE_PRIVATE, - cancellable, error); - } - else - { -- out = (GOutputStream *)g_file_create (destination, 0, cancellable, error); -+ out = (GOutputStream *)g_file_create (destination, G_FILE_CREATE_PRIVATE, cancellable, error); - } - - if (!out) --- -2.17.1 - diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-core/glib-2.0/glib-2.0/relocate-modules.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-core/glib-2.0/glib-2.0/relocate-modules.patch index 2d698a67..7e992584 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-core/glib-2.0/glib-2.0/relocate-modules.patch +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-core/glib-2.0/glib-2.0/relocate-modules.patch @@ -1,4 +1,4 @@ -From 17ca85e329bf39c004b73a02e94b597dac41ddfe Mon Sep 17 00:00:00 2001 +From 6325bf4e8a2f569c55c8e1a36b9439d3566f98f6 Mon Sep 17 00:00:00 2001 From: Ross Burton Date: Fri, 11 Mar 2016 15:35:55 +0000 Subject: [PATCH] glib-2.0: relocate the GIO module directory for native builds @@ -19,10 +19,10 @@ Signed-off-by: Jussi Kukkonen 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/gio/giomodule.c b/gio/giomodule.c -index b92162d..fce9933 100644 +index 1007abd..5380982 100644 --- a/gio/giomodule.c +++ b/gio/giomodule.c -@@ -40,6 +40,8 @@ +@@ -44,6 +44,8 @@ #include "gnetworkmonitor.h" #ifdef G_OS_WIN32 #include "gregistrysettingsbackend.h" @@ -31,7 +31,7 @@ index b92162d..fce9933 100644 #endif #include -@@ -1156,7 +1158,15 @@ get_gio_module_dir (void) +@@ -1158,7 +1160,15 @@ get_gio_module_dir (void) #endif g_free (install_dir); #else diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-core/glib-2.0/glib-2.0/uclibc_musl_translation.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-core/glib-2.0/glib-2.0/uclibc_musl_translation.patch deleted file mode 100644 index 7aa6217d..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-core/glib-2.0/glib-2.0/uclibc_musl_translation.patch +++ /dev/null @@ -1,22 +0,0 @@ -Fix DATADIRNAME on uclibc/Linux - -translation files are always installed under PREFIX/share/locale in uclibc -based systems therefore lets set DATADIRNAME to "share". - -Signed-off-by: Khem Raj -Upstream-Status: Pending -Index: glib-2.46.1/m4macros/glib-gettext.m4 -=================================================================== ---- glib-2.46.1.orig/m4macros/glib-gettext.m4 -+++ glib-2.46.1/m4macros/glib-gettext.m4 -@@ -243,6 +243,10 @@ msgstr "" - CATOBJEXT=.mo - DATADIRNAME=share - ;; -+ *-*-musl* | *-*-linux-uclibc*) -+ CATOBJEXT=.gmo -+ DATADIRNAME=share -+ ;; - *) - CATOBJEXT=.mo - DATADIRNAME=lib diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-core/glib-2.0/glib-2.0_2.60.3.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-core/glib-2.0/glib-2.0_2.60.3.bb deleted file mode 100644 index 5942241d..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-core/glib-2.0/glib-2.0_2.60.3.bb +++ /dev/null @@ -1,26 +0,0 @@ -require glib.inc - -PE = "1" - -SHRT_VER = "${@oe.utils.trim_version("${PV}", 2)}" - -SRC_URI = "${GNOME_MIRROR}/glib/${SHRT_VER}/glib-${PV}.tar.xz \ - file://run-ptest \ - file://uclibc_musl_translation.patch \ - file://Enable-more-tests-while-cross-compiling.patch \ - file://0001-Remove-the-warning-about-deprecated-paths-in-schemas.patch \ - file://0001-Install-gio-querymodules-as-libexec_PROGRAM.patch \ - file://0001-Do-not-ignore-return-value-of-write.patch \ - file://0010-Do-not-hardcode-python-path-into-various-tools.patch \ - file://0001-Set-host_machine-correctly-when-building-with-mingw3.patch \ - file://0001-Do-not-write-bindir-into-pkg-config-files.patch \ - file://0001-meson.build-do-not-hardcode-linux-as-the-host-system.patch \ - file://0001-meson-do-a-build-time-check-for-strlcpy-before-attem.patch \ - file://CVE-2019-12450.patch \ - " - -SRC_URI_append_class-native = " file://relocate-modules.patch" -SRC_URI_append_class-target = " file://glib-meson.cross" - -SRC_URI[md5sum] = "112a850caa8d2c21e24d4c9844e8b1fe" -SRC_URI[sha256sum] = "04ab0d560d45790d055f50db2d69974eab8b693a77390075462c56e652b760b9" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-core/glib-2.0/glib-2.0_2.62.2.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-core/glib-2.0/glib-2.0_2.62.2.bb new file mode 100644 index 00000000..27a15a9b --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-core/glib-2.0/glib-2.0_2.62.2.bb @@ -0,0 +1,24 @@ +require glib.inc + +PE = "1" + +SHRT_VER = "${@oe.utils.trim_version("${PV}", 2)}" + +SRC_URI = "${GNOME_MIRROR}/glib/${SHRT_VER}/glib-${PV}.tar.xz \ + file://run-ptest \ + file://0001-Fix-DATADIRNAME-on-uclibc-Linux.patch \ + file://Enable-more-tests-while-cross-compiling.patch \ + file://0001-Remove-the-warning-about-deprecated-paths-in-schemas.patch \ + file://0001-Install-gio-querymodules-as-libexec_PROGRAM.patch \ + file://0001-Do-not-ignore-return-value-of-write.patch \ + file://0010-Do-not-hardcode-python-path-into-various-tools.patch \ + file://0001-Set-host_machine-correctly-when-building-with-mingw3.patch \ + file://0001-Do-not-write-bindir-into-pkg-config-files.patch \ + file://0001-meson-Run-atomics-test-on-clang-as-well.patch \ + " + +SRC_URI_append_class-native = " file://relocate-modules.patch" +SRC_URI_append_class-target = " file://glib-meson.cross" + +SRC_URI[md5sum] = "bed3a70397a019965efac0c49f9c8164" +SRC_URI[sha256sum] = "698824a413f76df039739c2a78f45b10939d526ae7495bab4e694e6730deb3f1" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-core/glib-2.0/glib.inc b/Contrib-Inspur/openbmc/poky/meta/recipes-core/glib-2.0/glib.inc index 3ae22f5e..e811b42d 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-core/glib-2.0/glib.inc +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-core/glib-2.0/glib.inc @@ -28,7 +28,7 @@ PACKAGES += "${PN}-codegen ${PN}-utils" LEAD_SONAME = "libglib-2.0.*" -inherit meson gettext gtk-doc pkgconfig ptest-gnome upstream-version-is-even bash-completion gio-module-cache manpages distro_features_check +inherit meson gettext gtk-doc pkgconfig ptest-gnome upstream-version-is-even bash-completion gio-module-cache manpages features_check GTKDOC_MESON_OPTION = "gtk_doc" @@ -158,6 +158,8 @@ RDEPENDS_${PN}-ptest += "\ ${PN}-locale-pl \ ${PN}-locale-ru \ ${PN}-locale-th \ + python3-core \ + python3-modules \ " RDEPENDS_${PN}-ptest_append_libc-glibc = "\ diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-core/glib-networking/glib-networking_2.60.2.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-core/glib-networking/glib-networking_2.60.2.bb deleted file mode 100644 index 4d4fe649..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-core/glib-networking/glib-networking_2.60.2.bb +++ /dev/null @@ -1,32 +0,0 @@ -SUMMARY = "GLib networking extensions" -DESCRIPTION = "glib-networking contains the implementations of certain GLib networking features that cannot be implemented directly in GLib itself because of their dependencies." -HOMEPAGE = "https://gitlab.gnome.org/GNOME/glib-networking/" -BUGTRACKER = "http://bugzilla.gnome.org" - -LICENSE = "LGPLv2.1" -LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c" - -SECTION = "libs" -DEPENDS = "glib-2.0" - -SRC_URI[archive.md5sum] = "bf46d1208ac00d78a45fbf621d459025" -SRC_URI[archive.sha256sum] = "c022f3d10f55a5b7c31676fb001b4cb6401db8ab9f6e8418c69de00d0f268732" - -PACKAGECONFIG ??= "gnutls" - -PACKAGECONFIG[gnutls] = "-Dgnutls=enabled,-Dgnutls=disabled,gnutls" -PACKAGECONFIG[openssl] = "-Dopenssl=enabled,-Dopenssl=disabled,openssl" -PACKAGECONFIG[libproxy] = "-Dlibproxy=enabled,-Dlibproxy=disabled,libproxy" - -EXTRA_OEMESON = "-Dgnome_proxy=disabled" - -GNOMEBASEBUILDCLASS = "meson" -inherit gnomebase gettext upstream-version-is-even gio-module-cache - -FILES_${PN} += "\ - ${libdir}/gio/modules/libgio*.so \ - ${datadir}/dbus-1/services/ \ - ${systemd_user_unitdir} \ - " -FILES_${PN}-dev += "${libdir}/gio/modules/libgio*.la" -FILES_${PN}-staticdev += "${libdir}/gio/modules/libgio*.a" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-core/glib-networking/glib-networking_2.62.1.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-core/glib-networking/glib-networking_2.62.1.bb new file mode 100644 index 00000000..81d3fd43 --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-core/glib-networking/glib-networking_2.62.1.bb @@ -0,0 +1,34 @@ +SUMMARY = "GLib networking extensions" +DESCRIPTION = "glib-networking contains the implementations of certain GLib networking features that cannot be implemented directly in GLib itself because of their dependencies." +HOMEPAGE = "https://gitlab.gnome.org/GNOME/glib-networking/" +BUGTRACKER = "http://bugzilla.gnome.org" + +LICENSE = "LGPLv2.1" +LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c" + +SECTION = "libs" +DEPENDS = "glib-2.0" + +SRC_URI[archive.md5sum] = "64ca1e1e43e623b916059585bf7e4758" +SRC_URI[archive.sha256sum] = "3c55ae6771ad7a79fa606a834f4686ed555c2774ed6e9ece6f3c0f6a3dab7110" + +PACKAGECONFIG ??= "gnutls" + +PACKAGECONFIG[gnutls] = "-Dgnutls=enabled,-Dgnutls=disabled,gnutls" +PACKAGECONFIG[openssl] = "-Dopenssl=enabled,-Dopenssl=disabled,openssl" +PACKAGECONFIG[libproxy] = "-Dlibproxy=enabled,-Dlibproxy=disabled,libproxy" + +EXTRA_OEMESON = "-Dgnome_proxy=disabled" + +GNOMEBASEBUILDCLASS = "meson" +inherit gnomebase gettext upstream-version-is-even gio-module-cache + +FILES_${PN} += "\ + ${libdir}/gio/modules/libgio*.so \ + ${datadir}/dbus-1/services/ \ + ${systemd_user_unitdir} \ + " +FILES_${PN}-dev += "${libdir}/gio/modules/libgio*.la" +FILES_${PN}-staticdev += "${libdir}/gio/modules/libgio*.a" + +BBCLASSEXTEND = "native" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-core/glibc/cross-localedef-native_2.29.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-core/glibc/cross-localedef-native_2.29.bb deleted file mode 100644 index 8bc7cd64..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-core/glibc/cross-localedef-native_2.29.bb +++ /dev/null @@ -1,53 +0,0 @@ -SUMMARY = "Cross locale generation tool for glibc" -HOMEPAGE = "http://www.gnu.org/software/libc/libc.html" -SECTION = "libs" -LICENSE = "LGPL-2.1" - -LIC_FILES_CHKSUM = "file://LICENSES;md5=cfc0ed77a9f62fa62eded042ebe31d72 \ - file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \ - file://posix/rxspencer/COPYRIGHT;md5=dc5485bb394a13b2332ec1c785f5d83a \ - file://COPYING.LIB;md5=4fbd65380cdd255951079008b364516c" - -# Tell autotools that we're working in the localedef directory -# -AUTOTOOLS_SCRIPT_PATH = "${S}/localedef" - -inherit native -inherit autotools - -FILESEXTRAPATHS =. "${FILE_DIRNAME}/${PN}:${FILE_DIRNAME}/glibc:" - -SRCBRANCH ?= "release/${PV}/master" -GLIBC_GIT_URI ?= "git://sourceware.org/git/glibc.git" -UPSTREAM_CHECK_GITTAGREGEX = "(?P\d+\.\d+(\.(?!90)\d+)*)" - -PV = "2.29" - -SRCREV_glibc ?= "86013ef5cea322b8f4b9c22f230c22cce369e947" -SRCREV_localedef ?= "cd9f958c4c94a638fa7b2b4e21627364f1a1a655" - -SRC_URI = "${GLIBC_GIT_URI};branch=${SRCBRANCH};name=glibc \ - git://github.com/kraj/localedef;branch=master;name=localedef;destsuffix=git/localedef \ - file://0016-timezone-re-written-tzselect-as-posix-sh.patch \ - file://0017-Remove-bash-dependency-for-nscd-init-script.patch \ - file://0018-eglibc-Cross-building-and-testing-instructions.patch \ - file://0019-eglibc-Help-bootstrap-cross-toolchain.patch \ - file://0020-eglibc-Clear-cache-lines-on-ppc8xx.patch \ - file://0021-eglibc-Resolve-__fpscr_values-on-SH4.patch \ - file://0022-eglibc-Forward-port-cross-locale-generation-support.patch \ - file://0023-Define-DUMMY_LOCALE_T-if-not-defined.patch \ - file://0024-localedef-add-to-archive-uses-a-hard-coded-locale-pa.patch \ -" -# Makes for a rather long rev (22 characters), but... -# -SRCREV_FORMAT = "glibc_localedef" - -S = "${WORKDIR}/git" - -EXTRA_OECONF = "--with-glibc=${S}" -CFLAGS += "-fgnu89-inline -std=gnu99 -DIS_IN\(x\)='0'" - -do_install() { - install -d ${D}${bindir} - install -m 0755 ${B}/localedef ${D}${bindir}/cross-localedef -} diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-core/glibc/cross-localedef-native_2.30.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-core/glibc/cross-localedef-native_2.30.bb new file mode 100644 index 00000000..29cd43e8 --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-core/glibc/cross-localedef-native_2.30.bb @@ -0,0 +1,49 @@ +SUMMARY = "Cross locale generation tool for glibc" +HOMEPAGE = "http://www.gnu.org/software/libc/libc.html" +SECTION = "libs" +LICENSE = "LGPL-2.1" + +LIC_FILES_CHKSUM = "file://LICENSES;md5=cfc0ed77a9f62fa62eded042ebe31d72 \ + file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \ + file://posix/rxspencer/COPYRIGHT;md5=dc5485bb394a13b2332ec1c785f5d83a \ + file://COPYING.LIB;md5=4fbd65380cdd255951079008b364516c" + +require glibc-version.inc + +# Tell autotools that we're working in the localedef directory +# +AUTOTOOLS_SCRIPT_PATH = "${S}/localedef" + +inherit native +inherit autotools + +FILESEXTRAPATHS =. "${FILE_DIRNAME}/${PN}:${FILE_DIRNAME}/glibc:" + +SRC_URI = "${GLIBC_GIT_URI};branch=${SRCBRANCH};name=glibc \ + git://github.com/kraj/localedef;branch=master;name=localedef;destsuffix=git/localedef \ + file://0016-timezone-re-written-tzselect-as-posix-sh.patch \ + file://0017-Remove-bash-dependency-for-nscd-init-script.patch \ + file://0018-eglibc-Cross-building-and-testing-instructions.patch \ + file://0019-eglibc-Help-bootstrap-cross-toolchain.patch \ + file://0020-eglibc-Clear-cache-lines-on-ppc8xx.patch \ + file://0021-eglibc-Resolve-__fpscr_values-on-SH4.patch \ + file://0022-eglibc-Forward-port-cross-locale-generation-support.patch \ + file://0023-Define-DUMMY_LOCALE_T-if-not-defined.patch \ + file://0024-localedef-add-to-archive-uses-a-hard-coded-locale-pa.patch \ + file://add-cross-localedef-hardlink.patch \ + file://allow-compile-separate-from-util-linux-hardlink.patch \ +" +# Makes for a rather long rev (22 characters), but... +# +SRCREV_FORMAT = "glibc_localedef" + +S = "${WORKDIR}/git" + +EXTRA_OECONF = "--with-glibc=${S}" +CFLAGS += "-fgnu89-inline -std=gnu99 -DIS_IN\(x\)='0'" + +do_install() { + install -d ${D}${bindir} + install -m 0755 ${B}/localedef ${D}${bindir}/cross-localedef + install -m 0755 ${B}/cross-localedef-hardlink ${D}${bindir}/cross-localedef-hardlink +} diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-core/glibc/glibc-common.inc b/Contrib-Inspur/openbmc/poky/meta/recipes-core/glibc/glibc-common.inc index cded3845..fa46fd89 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-core/glibc/glibc-common.inc +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-core/glibc/glibc-common.inc @@ -3,10 +3,11 @@ DESCRIPTION = "The GNU C Library is used as the system C library in most systems HOMEPAGE = "http://www.gnu.org/software/libc/libc.html" SECTION = "libs" LICENSE = "GPLv2 & LGPLv2.1" -LIC_FILES_CHKSUM ?= "file://LICENSES;md5=07a394b26e0902b9ffdec03765209770 \ - file://COPYING;md5=393a5ca445f6965873eca0259a17f833 \ + +LIC_FILES_CHKSUM ?= "file://LICENSES;md5=cfc0ed77a9f62fa62eded042ebe31d72 \ + file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \ file://posix/rxspencer/COPYRIGHT;md5=dc5485bb394a13b2332ec1c785f5d83a \ - file://COPYING.LIB;md5=bbb461211a33b134d42ed5ee802b37ff " + file://COPYING.LIB;md5=4fbd65380cdd255951079008b364516c" CVE_PRODUCT = "glibc" @@ -21,4 +22,4 @@ ARM_INSTRUCTION_SET_armv6 = "arm" # COMPATIBLE_HOST_libc-musl_class-target = "null" -PV = "2.29" +PV = "2.30" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-core/glibc/glibc-locale.inc b/Contrib-Inspur/openbmc/poky/meta/recipes-core/glibc/glibc-locale.inc index f033635b..ef06389f 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-core/glibc/glibc-locale.inc +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-core/glibc/glibc-locale.inc @@ -87,6 +87,9 @@ do_install() { if [ ${PACKAGE_NO_GCONV} -eq 0 ]; then copy_locale_files ${libdir}/gconv 0755 copy_locale_files ${datadir}/i18n 0644 + else + # Remove the libdir if it is empty when gconv is not copied + find ${D}${libdir} -type d -empty -delete fi copy_locale_files ${datadir}/locale 0644 install -m 0644 ${LOCALETREESRC}/SUPPORTED ${WORKDIR}/SUPPORTED @@ -95,3 +98,6 @@ do_install() { inherit libc-package BBCLASSEXTEND = "nativesdk" + +# Don't scan for CVEs as glibc will be scanned +CVE_PRODUCT = "" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-core/glibc/glibc-locale_2.29.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-core/glibc/glibc-locale_2.30.bb similarity index 100% rename from Contrib-Inspur/openbmc/poky/meta/recipes-core/glibc/glibc-locale_2.29.bb rename to Contrib-Inspur/openbmc/poky/meta/recipes-core/glibc/glibc-locale_2.30.bb diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-core/glibc/glibc-mtrace.inc b/Contrib-Inspur/openbmc/poky/meta/recipes-core/glibc/glibc-mtrace.inc index d703c14b..ef9d60ec 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-core/glibc/glibc-mtrace.inc +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-core/glibc/glibc-mtrace.inc @@ -11,3 +11,6 @@ do_install() { install -d -m 0755 ${D}${bindir} install -m 0755 ${SRC}/mtrace ${D}${bindir}/ } + +# Don't scan for CVEs as glibc will be scanned +CVE_PRODUCT = "" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-core/glibc/glibc-mtrace_2.29.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-core/glibc/glibc-mtrace_2.30.bb similarity index 100% rename from Contrib-Inspur/openbmc/poky/meta/recipes-core/glibc/glibc-mtrace_2.29.bb rename to Contrib-Inspur/openbmc/poky/meta/recipes-core/glibc/glibc-mtrace_2.30.bb diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-core/glibc/glibc-package.inc b/Contrib-Inspur/openbmc/poky/meta/recipes-core/glibc/glibc-package.inc index b7c64a0b..9dd5a0d4 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-core/glibc/glibc-package.inc +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-core/glibc/glibc-package.inc @@ -1,6 +1,6 @@ INHIBIT_SYSROOT_STRIP = "1" -PACKAGES = "${PN}-dbg catchsegv sln nscd ldd tzcode glibc-thread-db ${PN}-pic libcidn libmemusage libnss-db libsegfault ${PN}-pcprofile libsotruss ${PN} ${PN}-utils glibc-extra-nss ${PN}-dev ${PN}-staticdev ${PN}-doc" +PACKAGES = "${PN}-dbg catchsegv sln nscd ldd tzcode glibc-thread-db ${PN}-pic libcidn libmemusage libnss-db libsegfault ${PN}-pcprofile libsotruss ${PN} ${PN}-utils glibc-extra-nss ${PN}-dev ${PN}-staticdev ${PN}-doc ldconfig" # The ld.so in this glibc supports the GNU_HASH RPROVIDES_${PN} = "eglibc rtld(GNU_HASH)" @@ -23,7 +23,9 @@ ARCH_DYNAMIC_LOADER_aarch64 = "ld-linux-${TARGET_ARCH}.so.1" libc_baselibs_append = " ${@oe.utils.conditional('ARCH_DYNAMIC_LOADER', '', '', '${root_prefix}/lib/${ARCH_DYNAMIC_LOADER}', d)}" INSANE_SKIP_${PN}_append_aarch64 = " libdir" -FILES_${PN} = "${libc_baselibs} ${libexecdir}/* ${base_sbindir}/ldconfig ${sysconfdir}/ld.so.conf" +FILES_${PN} = "${libc_baselibs} ${libexecdir}/*" +RRECOMMENDS_${PN} = "${@bb.utils.filter('DISTRO_FEATURES', 'ldconfig', d)}" +FILES_ldconfig = "${base_sbindir}/ldconfig ${sysconfdir}/ld.so.conf" FILES_ldd = "${bindir}/ldd" FILES_libsegfault = "${base_libdir}/libSegFault*" FILES_libcidn = "${base_libdir}/libcidn-*.so ${base_libdir}/libcidn.so.*" @@ -36,6 +38,7 @@ FILES_${PN}-pic = "${libdir}/*_pic.a ${libdir}/*_pic.map ${libdir}/libc_pic/*.o" FILES_libsotruss = "${libdir}/audit/sotruss-lib.so" FILES_SOLIBSDEV = "${libdir}/lib*${SOLIBSDEV}" FILES_${PN}-dev += "${libdir}/*_nonshared.a ${base_libdir}/*_nonshared.a ${base_libdir}/*.o ${datadir}/aclocal" +RDEPENDS_${PN}-dev = "linux-libc-headers-dev" FILES_${PN}-staticdev += "${libdir}/*.a ${base_libdir}/*.a" FILES_nscd = "${sbindir}/nscd* ${sysconfdir}/init.d/nscd ${systemd_unitdir}/system/nscd* ${sysconfdir}/tmpfiles.d/nscd.conf \ ${sysconfdir}/nscd.conf ${sysconfdir}/default/volatiles/98_nscd ${localstatedir}/db/nscd" @@ -82,21 +85,6 @@ do_install_append () { rm -f ${D}${infodir}/dir fi - if ! ${@bb.utils.contains('DISTRO_FEATURES', 'ldconfig', 'true', 'false', d)}; then - # The distro doesn't want these files so let's not install them - rm -f ${D}${sysconfdir}/ld.so.conf - rm -f ${D}${base_sbindir}/ldconfig - # This directory will be empty now so remove it too. - # But check whether it exists first, since it won't for glibc-initial. - if [ -d ${D}${sysconfdir} ]; then - rmdir ${D}${sysconfdir} - fi - fi - - if echo ${PN}|grep -q "glibc-initial"; then - return - fi - install -d ${D}${sysconfdir}/init.d install -d ${D}${localstatedir}/db/nscd install -m 0755 ${S}/nscd/nscd.init ${D}${sysconfdir}/init.d/nscd @@ -108,6 +96,19 @@ do_install_append () { install -d ${D}${systemd_unitdir}/system install -m 0644 ${S}/nscd/nscd.service ${D}${systemd_unitdir}/system/ + # The dynamic loader will have been installed into + # ${base_libdir}. However, if that isn't going to end up being + # available in the ABI-mandated location, then a symlink must + # be created. + + if [ -n "${ARCH_DYNAMIC_LOADER}" -a ! -e "${D}${root_prefix}/lib/${ARCH_DYNAMIC_LOADER}" ]; then + install -d ${D}${root_prefix}/lib + ln -s ${@oe.path.relative('${root_prefix}/lib', '${base_libdir}')}/${ARCH_DYNAMIC_LOADER} \ + ${D}${root_prefix}/lib/${ARCH_DYNAMIC_LOADER} + fi +} + +do_install_append_class-target() { if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then install -d ${D}${sysconfdir}/tmpfiles.d echo "d /run/nscd 755 root root -" \ @@ -120,18 +121,7 @@ do_install_append () { > ${D}${sysconfdir}/default/volatiles/98_nscd fi - # The dynamic loader will have been installed into - # ${base_libdir}. However, if that isn't going to end up being - # available in the ABI-mandated location, then a symlink must - # be created. - - if [ -n "${ARCH_DYNAMIC_LOADER}" -a ! -e "${D}${root_prefix}/lib/${ARCH_DYNAMIC_LOADER}" ]; then - install -d ${D}${root_prefix}/lib - ln -s ${@oe.path.relative('${root_prefix}/lib', '${base_libdir}')}/${ARCH_DYNAMIC_LOADER} \ - ${D}${root_prefix}/lib/${ARCH_DYNAMIC_LOADER} - fi } - do_install_append_aarch64 () { do_install_armmultilib } @@ -161,27 +151,34 @@ bashscripts = "mtrace sotruss xtrace" do_stash_locale () { dest=${LOCALESTASH} - install -d ${dest}${base_libdir} ${dest}${bindir} ${dest}${libdir} ${dest}${datadir} - if [ "${base_libdir}" != "${libdir}" ]; then - cp -fpPR ${D}${base_libdir}/* ${dest}${base_libdir} - fi + install -d $dest${base_libdir} $dest${bindir} $dest${libdir} $dest${datadir} + # Hide away the locale data from the deployment if [ -e ${D}${bindir}/localedef ]; then - mv -f ${D}${bindir}/localedef ${dest}${bindir} + cp -a ${D}${bindir}/localedef $dest${bindir} fi if [ -e ${D}${libdir}/gconv ]; then - mv -f ${D}${libdir}/gconv ${dest}${libdir} - fi - if [ -e ${D}${exec_prefix}/lib ]; then - cp -fpPR ${D}${exec_prefix}/lib ${dest}${exec_prefix} + cp -a ${D}${libdir}/gconv $dest${libdir} fi if [ -e ${D}${datadir}/i18n ]; then - mv ${D}${datadir}/i18n ${dest}${datadir} + cp -a ${D}${datadir}/i18n $dest${datadir} fi - cp -fpPR ${D}${datadir}/* ${dest}${datadir} + + # Make a copy of all the libraries into the locale stash + cp -fpPR ${D}${libdir}/* $dest${libdir} + if [ "${base_libdir}" != "${libdir}" ]; then + cp -fpPR ${D}${base_libdir}/* $dest${base_libdir} + fi + if [ -e ${D}${exec_prefix}/lib ]; then + if [ ${exec_prefix}/lib != ${base_libdir} ] && [ ${exec_prefix}/lib != ${libdir} ]; then + cp -fpPR ${D}${exec_prefix}/lib $dest${exec_prefix} + fi + fi + + cp -fpPR ${D}${datadir}/* $dest${datadir} rm -rf ${D}${datadir}/locale/ - cp -fpPR ${WORKDIR}/SUPPORTED ${dest} + cp -fpPR ${WORKDIR}/SUPPORTED $dest - target=${dest}/scripts + target=$dest/scripts mkdir -p $target for i in ${bashscripts}; do if [ -f ${D}${bindir}/$i ]; then @@ -203,30 +200,38 @@ python do_stash_locale_setscene () { } addtask do_stash_locale_setscene -do_poststash_install_cleanup () { - # Remove all files which do_stash_locale would remove (mv) - # since that task could have come from sstate and not get run. +PACKAGE_PREPROCESS_FUNCS += "stash_locale_package_cleanup" +SYSROOT_PREPROCESS_FUNCS += "stash_locale_sysroot_cleanup" +stash_locale_cleanup () { + cleanupdir=$1 + # Remove all files which do_stash_locale() copies for i in ${bashscripts}; do - rm -f ${D}${bindir}/$i + rm -f $cleanupdir${bindir}/$i done - rm -f ${D}${bindir}/localedef - rm -rf ${D}${datadir}/i18n - rm -rf ${D}${libdir}/gconv - rm -rf ${D}/${localedir} - rm -rf ${D}${datadir}/locale - if [ "${libdir}" != "${exec_prefix}/lib" ]; then - if [ -d "${D}${exec_prefix}/lib" ]; then - if [ -z "${ARCH_DYNAMIC_LOADER}" -o \ - ! -e "${D}${exec_prefix}/lib/${ARCH_DYNAMIC_LOADER}" ]; then - # error out if directory isn't empty - # this dir should only contain locale dir - # which has been deleted in the previous step - rmdir ${D}${exec_prefix}/lib + rm -f $cleanupdir${bindir}/localedef + rm -rf $cleanupdir${datadir}/i18n + rm -rf $cleanupdir${libdir}/gconv + rm -rf $cleanupdir${localedir} + rm -rf $cleanupdir${datadir}/locale + if [ "${libdir}" != "${exec_prefix}/lib" ] && [ "${root_prefix}/lib" != "${exec_prefix}/lib" ]; then + if [ -d "$cleanupdir${exec_prefix}/lib" ]; then + if [ -z "${ARCH_DYNAMIC_LOADER}" -o \ + ! -e "$cleanupdir${exec_prefix}/lib/${ARCH_DYNAMIC_LOADER}" ]; then + # error out if directory isn't empty + # this dir should only contain locale dir + # which has been deleted in the previous step + rmdir $cleanupdir${exec_prefix}/lib + fi fi - fi fi } -addtask do_poststash_install_cleanup after do_stash_locale do_install before do_populate_sysroot do_package + +stash_locale_sysroot_cleanup() { + stash_locale_cleanup ${SYSROOT_DESTDIR} +} +stash_locale_package_cleanup() { + stash_locale_cleanup ${PKGD} +} pkg_postinst_nscd () { if [ -z "$D" ]; then diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-core/glibc/glibc-scripts.inc b/Contrib-Inspur/openbmc/poky/meta/recipes-core/glibc/glibc-scripts.inc index 2a2b4150..14a14e45 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-core/glibc/glibc-scripts.inc +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-core/glibc/glibc-scripts.inc @@ -18,3 +18,6 @@ do_install() { # sotruss script requires sotruss-lib.so (given by libsotruss package), # to produce trace of the library calls. RDEPENDS_${PN} += "libsotruss" + +# Don't scan for CVEs as glibc will be scanned +CVE_PRODUCT = "" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-core/glibc/glibc-scripts_2.29.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-core/glibc/glibc-scripts_2.30.bb similarity index 100% rename from Contrib-Inspur/openbmc/poky/meta/recipes-core/glibc/glibc-scripts_2.29.bb rename to Contrib-Inspur/openbmc/poky/meta/recipes-core/glibc/glibc-scripts_2.30.bb diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-core/glibc/glibc-testsuite_2.30.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-core/glibc/glibc-testsuite_2.30.bb new file mode 100644 index 00000000..657fd4db --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-core/glibc/glibc-testsuite_2.30.bb @@ -0,0 +1,60 @@ +require glibc_${PV}.bb + +# handle PN differences +FILESEXTRAPATHS_prepend := "${THISDIR}/glibc:" + +# strip provides +PROVIDES = "" +# setup depends +INHIBIT_DEFAULT_DEPS = "" + +python () { + libc = d.getVar("PREFERRED_PROVIDER_virtual/libc") + libclocale = d.getVar("PREFERRED_PROVIDER_virtual/libc-locale") + if libc != "glibc" or libclocale != "glibc-locale": + raise bb.parse.SkipRecipe("glibc-testsuite requires that virtual/libc is glibc") +} + +DEPENDS += "glibc-locale libgcc gcc-runtime" + +# remove the initial depends +DEPENDS_remove = "libgcc-initial" + +inherit qemu + +SRC_URI += "file://check-test-wrapper" + +DEPENDS += "${@'qemu-native' if d.getVar('TOOLCHAIN_TEST_TARGET') == 'user' else ''}" + +TOOLCHAIN_TEST_TARGET ??= "user" +TOOLCHAIN_TEST_HOST ??= "localhost" +TOOLCHAIN_TEST_HOST_USER ??= "root" +TOOLCHAIN_TEST_HOST_PORT ??= "2222" + +do_check[dirs] += "${B}" +do_check[nostamp] = "1" +do_check () { + chmod 0755 ${WORKDIR}/check-test-wrapper + + # clean out previous test results + oe_runmake tests-clean + # makefiles don't clean entirely (and also sometimes fails due to too many args) + find ${B} -type f -name "*.out" -delete + find ${B} -type f -name "*.test-result" -delete + find ${B}/catgets -name "*.cat" -delete + find ${B}/conform -name "symlist-*" -delete + [ ! -e ${B}/timezone/testdata ] || rm -rf ${B}/timezone/testdata + + oe_runmake -i \ + QEMU_SYSROOT="${RECIPE_SYSROOT}" \ + QEMU_OPTIONS="${@qemu_target_binary(d)} ${QEMU_OPTIONS}" \ + SSH_HOST="${TOOLCHAIN_TEST_HOST}" \ + SSH_HOST_USER="${TOOLCHAIN_TEST_HOST_USER}" \ + SSH_HOST_PORT="${TOOLCHAIN_TEST_HOST_PORT}" \ + test-wrapper="${WORKDIR}/check-test-wrapper ${TOOLCHAIN_TEST_TARGET}" \ + check +} +addtask do_check after do_compile + +inherit nopackages +deltask do_stash_locale diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-core/glibc/glibc-version.inc b/Contrib-Inspur/openbmc/poky/meta/recipes-core/glibc/glibc-version.inc new file mode 100644 index 00000000..c18c5833 --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-core/glibc/glibc-version.inc @@ -0,0 +1,8 @@ +SRCBRANCH ?= "release/2.30/master" +PV = "2.30" +SRCREV_glibc ?= "be9a328c93834648e0bec106a1f86357d1a8c7e1" +SRCREV_localedef ?= "cd9f958c4c94a638fa7b2b4e21627364f1a1a655" + +GLIBC_GIT_URI ?= "git://sourceware.org/git/glibc.git" + +UPSTREAM_CHECK_GITTAGREGEX = "(?P\d+\.\d+(\.(?!90)\d+)*)" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-core/glibc/glibc.inc b/Contrib-Inspur/openbmc/poky/meta/recipes-core/glibc/glibc.inc index 252fd56c..ea9a04ac 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-core/glibc/glibc.inc +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-core/glibc/glibc.inc @@ -6,7 +6,7 @@ DEPENDS = "virtual/${TARGET_PREFIX}gcc libgcc-initial linux-libc-headers" PROVIDES = "virtual/libc" PROVIDES += "virtual/libintl virtual/libiconv" -inherit autotools texinfo distro_features_check systemd +inherit autotools texinfo features_check systemd LEAD_SONAME = "libc.so" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-core/glibc/glibc/0001-nativesdk-glibc-Look-for-host-system-ld.so.cache-as-.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-core/glibc/glibc/0001-nativesdk-glibc-Look-for-host-system-ld.so.cache-as-.patch index 86ad9eaf..d86d1d8d 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-core/glibc/glibc/0001-nativesdk-glibc-Look-for-host-system-ld.so.cache-as-.patch +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-core/glibc/glibc/0001-nativesdk-glibc-Look-for-host-system-ld.so.cache-as-.patch @@ -1,7 +1,7 @@ -From 0cac7493366586e8f87e8459359c15f702ef8c81 Mon Sep 17 00:00:00 2001 +From f6984c923b41155979764bfa3f44609572be5414 Mon Sep 17 00:00:00 2001 From: Khem Raj Date: Wed, 18 Mar 2015 01:48:24 +0000 -Subject: [PATCH 01/30] nativesdk-glibc: Look for host system ld.so.cache as +Subject: [PATCH 01/28] nativesdk-glibc: Look for host system ld.so.cache as well Upstream-Status: Inappropriate [embedded specific] @@ -31,10 +31,10 @@ Signed-off-by: Khem Raj 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/elf/dl-load.c b/elf/dl-load.c -index f972524421..e53c3a1b7b 100644 +index 5abeb867f1..981bd5b4af 100644 --- a/elf/dl-load.c +++ b/elf/dl-load.c -@@ -2085,6 +2085,14 @@ _dl_map_object (struct link_map *loader, const char *name, +@@ -2080,6 +2080,14 @@ _dl_map_object (struct link_map *loader, const char *name, } } @@ -49,7 +49,7 @@ index f972524421..e53c3a1b7b 100644 #ifdef USE_LDCONFIG if (fd == -1 && (__glibc_likely ((mode & __RTLD_SECURE) == 0) -@@ -2143,14 +2151,6 @@ _dl_map_object (struct link_map *loader, const char *name, +@@ -2138,14 +2146,6 @@ _dl_map_object (struct link_map *loader, const char *name, } #endif @@ -65,5 +65,5 @@ index f972524421..e53c3a1b7b 100644 if (__glibc_unlikely (GLRO(dl_debug_mask) & DL_DEBUG_LIBS)) _dl_debug_printf ("\n"); -- -2.20.1 +2.22.0 diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-core/glibc/glibc/0001-x86-64-memcmp-Use-unsigned-Jcc-instructions-on-size-.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-core/glibc/glibc/0001-x86-64-memcmp-Use-unsigned-Jcc-instructions-on-size-.patch deleted file mode 100644 index 1a343149..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-core/glibc/glibc/0001-x86-64-memcmp-Use-unsigned-Jcc-instructions-on-size-.patch +++ /dev/null @@ -1,204 +0,0 @@ -From 3f635fb43389b54f682fc9ed2acc0b2aaf4a923d Mon Sep 17 00:00:00 2001 -From: "H.J. Lu" -Date: Mon, 4 Feb 2019 06:31:01 -0800 -Subject: [PATCH] x86-64 memcmp: Use unsigned Jcc instructions on size [BZ - #24155] - -Since the size argument is unsigned. we should use unsigned Jcc -instructions, instead of signed, to check size. - -Tested on x86-64 and x32, with and without --disable-multi-arch. - - [BZ #24155] - CVE-2019-7309 - * NEWS: Updated for CVE-2019-7309. - * sysdeps/x86_64/memcmp.S: Use RDX_LP for size. Clear the - upper 32 bits of RDX register for x32. Use unsigned Jcc - instructions, instead of signed. - * sysdeps/x86_64/x32/Makefile (tests): Add tst-size_t-memcmp-2. - * sysdeps/x86_64/x32/tst-size_t-memcmp-2.c: New test. - -CVE: CVE-2019-7309 -Upstream-Status: Backport -Signed-off-by: Zhixiong Chi -Signed-off-by: Alistair Francis ---- - sysdeps/x86_64/memcmp.S | 20 +++--- - sysdeps/x86_64/x32/Makefile | 3 +- - sysdeps/x86_64/x32/tst-size_t-memcmp-2.c | 79 ++++++++++++++++++++++++ - 5 files changed, 111 insertions(+), 10 deletions(-) - create mode 100644 sysdeps/x86_64/x32/tst-size_t-memcmp-2.c - -diff --git a/sysdeps/x86_64/memcmp.S b/sysdeps/x86_64/memcmp.S -index 1fc487caa5..1322bb3b92 100644 ---- a/sysdeps/x86_64/memcmp.S -+++ b/sysdeps/x86_64/memcmp.S -@@ -21,14 +21,18 @@ - - .text - ENTRY (memcmp) -- test %rdx, %rdx -+#ifdef __ILP32__ -+ /* Clear the upper 32 bits. */ -+ movl %edx, %edx -+#endif -+ test %RDX_LP, %RDX_LP - jz L(finz) - cmpq $1, %rdx -- jle L(finr1b) -+ jbe L(finr1b) - subq %rdi, %rsi - movq %rdx, %r10 - cmpq $32, %r10 -- jge L(gt32) -+ jae L(gt32) - /* Handle small chunks and last block of less than 32 bytes. */ - L(small): - testq $1, %r10 -@@ -156,7 +160,7 @@ L(A32): - movq %r11, %r10 - andq $-32, %r10 - cmpq %r10, %rdi -- jge L(mt16) -+ jae L(mt16) - /* Pre-unroll to be ready for unrolled 64B loop. */ - testq $32, %rdi - jz L(A64) -@@ -178,7 +182,7 @@ L(A64): - movq %r11, %r10 - andq $-64, %r10 - cmpq %r10, %rdi -- jge L(mt32) -+ jae L(mt32) - - L(A64main): - movdqu (%rdi,%rsi), %xmm0 -@@ -216,7 +220,7 @@ L(mt32): - movq %r11, %r10 - andq $-32, %r10 - cmpq %r10, %rdi -- jge L(mt16) -+ jae L(mt16) - - L(A32main): - movdqu (%rdi,%rsi), %xmm0 -@@ -254,7 +258,7 @@ L(ATR): - movq %r11, %r10 - andq $-32, %r10 - cmpq %r10, %rdi -- jge L(mt16) -+ jae L(mt16) - testq $16, %rdi - jz L(ATR32) - -@@ -325,7 +329,7 @@ L(ATR64main): - movq %r11, %r10 - andq $-32, %r10 - cmpq %r10, %rdi -- jge L(mt16) -+ jae L(mt16) - - L(ATR32res): - movdqa (%rdi,%rsi), %xmm0 -diff --git a/sysdeps/x86_64/x32/Makefile b/sysdeps/x86_64/x32/Makefile -index 1557724b0c..8748956563 100644 ---- a/sysdeps/x86_64/x32/Makefile -+++ b/sysdeps/x86_64/x32/Makefile -@@ -8,7 +8,8 @@ endif - ifeq ($(subdir),string) - tests += tst-size_t-memchr tst-size_t-memcmp tst-size_t-memcpy \ - tst-size_t-memrchr tst-size_t-memset tst-size_t-strncasecmp \ -- tst-size_t-strncmp tst-size_t-strncpy tst-size_t-strnlen -+ tst-size_t-strncmp tst-size_t-strncpy tst-size_t-strnlen \ -+ tst-size_t-memcmp-2 - endif - - ifeq ($(subdir),wcsmbs) -diff --git a/sysdeps/x86_64/x32/tst-size_t-memcmp-2.c b/sysdeps/x86_64/x32/tst-size_t-memcmp-2.c -new file mode 100644 -index 0000000000..d8ae1a0813 ---- /dev/null -+++ b/sysdeps/x86_64/x32/tst-size_t-memcmp-2.c -@@ -0,0 +1,79 @@ -+/* Test memcmp with size_t in the lower 32 bits of 64-bit register. -+ Copyright (C) 2019 Free Software Foundation, Inc. -+ This file is part of the GNU C Library. -+ -+ The GNU C Library is free software; you can redistribute it and/or -+ modify it under the terms of the GNU Lesser General Public -+ License as published by the Free Software Foundation; either -+ version 2.1 of the License, or (at your option) any later version. -+ -+ The GNU C Library is distributed in the hope that it will be useful, -+ but WITHOUT ANY WARRANTY; without even the implied warranty of -+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -+ Lesser General Public License for more details. -+ -+ You should have received a copy of the GNU Lesser General Public -+ License along with the GNU C Library; if not, see -+ . */ -+ -+#define TEST_MAIN -+#ifdef WIDE -+# define TEST_NAME "wmemcmp" -+#else -+# define TEST_NAME "memcmp" -+#endif -+ -+#include "test-size_t.h" -+ -+#ifdef WIDE -+# include -+# include -+ -+# define MEMCMP wmemcmp -+# define CHAR wchar_t -+#else -+# define MEMCMP memcmp -+# define CHAR char -+#endif -+ -+IMPL (MEMCMP, 1) -+ -+typedef int (*proto_t) (const CHAR *, const CHAR *, size_t); -+ -+static int -+__attribute__ ((noinline, noclone)) -+do_memcmp (parameter_t a, parameter_t b) -+{ -+ return CALL (&b, a.p, b.p, a.len); -+} -+ -+static int -+test_main (void) -+{ -+ test_init (); -+ -+ parameter_t dest = { { page_size / sizeof (CHAR) }, buf1 }; -+ parameter_t src = { { 0 }, buf2 }; -+ -+ memcpy (buf1, buf2, page_size); -+ -+ CHAR *p = (CHAR *) buf1; -+ p[page_size / sizeof (CHAR) - 1] = (CHAR) 1; -+ -+ int ret = 0; -+ FOR_EACH_IMPL (impl, 0) -+ { -+ src.fn = impl->fn; -+ int res = do_memcmp (dest, src); -+ if (res >= 0) -+ { -+ error (0, 0, "Wrong result in function %s: %i >= 0", -+ impl->name, res); -+ ret = 1; -+ } -+ } -+ -+ return ret ? EXIT_FAILURE : EXIT_SUCCESS; -+} -+ -+#include --- -2.17.1 - diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-core/glibc/glibc/0002-nativesdk-glibc-Fix-buffer-overrun-with-a-relocated-.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-core/glibc/glibc/0002-nativesdk-glibc-Fix-buffer-overrun-with-a-relocated-.patch index f663e18e..63531082 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-core/glibc/glibc/0002-nativesdk-glibc-Fix-buffer-overrun-with-a-relocated-.patch +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-core/glibc/glibc/0002-nativesdk-glibc-Fix-buffer-overrun-with-a-relocated-.patch @@ -1,7 +1,7 @@ -From f275c04e263fc2ebf2eaad6ac1ab3c838647bb14 Mon Sep 17 00:00:00 2001 +From b91c323d809039bf9b8c445418579a8b5fe61aea Mon Sep 17 00:00:00 2001 From: Khem Raj Date: Wed, 18 Mar 2015 01:50:00 +0000 -Subject: [PATCH 02/30] nativesdk-glibc: Fix buffer overrun with a relocated +Subject: [PATCH 02/28] nativesdk-glibc: Fix buffer overrun with a relocated SDK When ld-linux-*.so.2 is relocated to a path that is longer than the @@ -22,10 +22,10 @@ Signed-off-by: Khem Raj 1 file changed, 12 insertions(+) diff --git a/elf/dl-load.c b/elf/dl-load.c -index e53c3a1b7b..2bd9bc27f2 100644 +index 981bd5b4af..c7a0fa58cb 100644 --- a/elf/dl-load.c +++ b/elf/dl-load.c -@@ -1785,7 +1785,19 @@ open_path (const char *name, size_t namelen, int mode, +@@ -1780,7 +1780,19 @@ open_path (const char *name, size_t namelen, int mode, given on the command line when rtld is run directly. */ return -1; @@ -46,5 +46,5 @@ index e53c3a1b7b..2bd9bc27f2 100644 { struct r_search_path_elem *this_dir = *dirs; -- -2.20.1 +2.22.0 diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-core/glibc/glibc/0003-nativesdk-glibc-Raise-the-size-of-arrays-containing-.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-core/glibc/glibc/0003-nativesdk-glibc-Raise-the-size-of-arrays-containing-.patch index fd909f64..48f5a787 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-core/glibc/glibc/0003-nativesdk-glibc-Raise-the-size-of-arrays-containing-.patch +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-core/glibc/glibc/0003-nativesdk-glibc-Raise-the-size-of-arrays-containing-.patch @@ -1,7 +1,7 @@ -From 92df5673de18779b612609afa4f687e33e5ecb6e Mon Sep 17 00:00:00 2001 +From 3aceb84e2bc0f796204fe059beede91179b1bc6e Mon Sep 17 00:00:00 2001 From: Khem Raj Date: Wed, 18 Mar 2015 01:51:38 +0000 -Subject: [PATCH 03/30] nativesdk-glibc: Raise the size of arrays containing dl +Subject: [PATCH 03/28] nativesdk-glibc: Raise the size of arrays containing dl paths This patch puts the dynamic loader path in the binaries, SYSTEM_DIRS strings @@ -41,7 +41,7 @@ index d8d1e2344e..d2247bfc4f 100644 _dl_cache_libcmp (const char *p1, const char *p2) { diff --git a/elf/dl-load.c b/elf/dl-load.c -index 2bd9bc27f2..4170cc1a09 100644 +index c7a0fa58cb..4b87505d45 100644 --- a/elf/dl-load.c +++ b/elf/dl-load.c @@ -110,8 +110,8 @@ static size_t max_capstrlen attribute_relro; @@ -67,7 +67,7 @@ index 243829f5f7..0e74241703 100644 +const char __invoke_dynamic_linker__[4096] __attribute__ ((section (".interp"))) = RUNTIME_LINKER; diff --git a/elf/ldconfig.c b/elf/ldconfig.c -index 206cd51df6..2fd4fb54ae 100644 +index 3bc9e61891..6a23096435 100644 --- a/elf/ldconfig.c +++ b/elf/ldconfig.c @@ -168,6 +168,9 @@ static struct argp argp = @@ -81,10 +81,10 @@ index 206cd51df6..2fd4fb54ae 100644 a platform. */ static int diff --git a/elf/rtld.c b/elf/rtld.c -index 5d97f41b7b..26c5fef929 100644 +index c9490ff694..3962373ebb 100644 --- a/elf/rtld.c +++ b/elf/rtld.c -@@ -130,6 +130,7 @@ dso_name_valid_for_suid (const char *p) +@@ -173,6 +173,7 @@ dso_name_valid_for_suid (const char *p) } return *p != '\0'; } @@ -92,7 +92,7 @@ index 5d97f41b7b..26c5fef929 100644 /* LD_AUDIT variable contents. Must be processed before the audit_list below. */ -@@ -1001,12 +1002,12 @@ of this helper program; chances are you did not intend to run this program.\n\ +@@ -1220,13 +1221,13 @@ of this helper program; chances are you did not intend to run this program.\n\ --list list all dependencies and how they are resolved\n\ --verify verify that given object really is a dynamically linked\n\ object we can handle\n\ @@ -102,8 +102,9 @@ index 5d97f41b7b..26c5fef929 100644 variable LD_LIBRARY_PATH\n\ --inhibit-rpath LIST ignore RUNPATH and RPATH information in object names\n\ in LIST\n\ -- --audit LIST use objects named in LIST as auditors\n"); -+ --audit LIST use objects named in LIST as auditors\n", LD_SO_CACHE); + --audit LIST use objects named in LIST as auditors\n\ +- --preload LIST preload objects named in LIST\n"); ++ --preload LIST preload objects named in LIST\n", LD_SO_CACHE); ++_dl_skip_args; --_dl_argc; @@ -136,5 +137,5 @@ index bc8b40331d..b0fdd2144b 100644 # define add_system_dir(dir) add_dir (dir) #endif -- -2.20.1 +2.22.0 diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-core/glibc/glibc/0004-nativesdk-glibc-Allow-64-bit-atomics-for-x86.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-core/glibc/glibc/0004-nativesdk-glibc-Allow-64-bit-atomics-for-x86.patch index d6c9aac6..a43f2943 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-core/glibc/glibc/0004-nativesdk-glibc-Allow-64-bit-atomics-for-x86.patch +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-core/glibc/glibc/0004-nativesdk-glibc-Allow-64-bit-atomics-for-x86.patch @@ -1,7 +1,7 @@ -From ff0f4756f1a98202726c65745aca38354864e033 Mon Sep 17 00:00:00 2001 +From e41e042149eac349e09fa629fcac4c64e574322c Mon Sep 17 00:00:00 2001 From: Khem Raj Date: Thu, 31 Dec 2015 14:35:35 -0800 -Subject: [PATCH 04/30] nativesdk-glibc: Allow 64 bit atomics for x86 +Subject: [PATCH 04/28] nativesdk-glibc: Allow 64 bit atomics for x86 The fix consist of allowing 64bit atomic ops for x86. This should be safe for i586 and newer CPUs. @@ -38,5 +38,5 @@ index aa60ca4cd6..3e42e00183 100644 # define SEG_REG "gs" # define BR_CONSTRAINT "r" -- -2.20.1 +2.22.0 diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-core/glibc/glibc/0005-nativesdk-glibc-Make-relocatable-install-for-locales.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-core/glibc/glibc/0005-nativesdk-glibc-Make-relocatable-install-for-locales.patch index 9f9f503a..3aad603a 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-core/glibc/glibc/0005-nativesdk-glibc-Make-relocatable-install-for-locales.patch +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-core/glibc/glibc/0005-nativesdk-glibc-Make-relocatable-install-for-locales.patch @@ -1,7 +1,7 @@ -From b2ec111dc3a42d9dce71c903524724ae82ff22d8 Mon Sep 17 00:00:00 2001 +From 50ab0b0c116f4ae3d975ec1b15ed4595fd9147f6 Mon Sep 17 00:00:00 2001 From: Khem Raj Date: Fri, 3 Aug 2018 09:55:12 -0700 -Subject: [PATCH 05/30] nativesdk-glibc: Make relocatable install for locales +Subject: [PATCH 05/28] nativesdk-glibc: Make relocatable install for locales The glibc locale path is hard-coded to the install prefix, but in SDKs we need to be able to relocate the binaries. Expand the strings to 4K and put them in a @@ -66,5 +66,5 @@ index 7c1cc3eecb..53cb8bfc59 100644 /* Load the locale data for CATEGORY from the file specified by *NAME. If *NAME is "", use environment variables as specified by POSIX, and -- -2.20.1 +2.22.0 diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-core/glibc/glibc/0006-fsl-e500-e5500-e6500-603e-fsqrt-implementation.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-core/glibc/glibc/0006-fsl-e500-e5500-e6500-603e-fsqrt-implementation.patch index a6dddebb..5e1c5914 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-core/glibc/glibc/0006-fsl-e500-e5500-e6500-603e-fsqrt-implementation.patch +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-core/glibc/glibc/0006-fsl-e500-e5500-e6500-603e-fsqrt-implementation.patch @@ -1,7 +1,7 @@ -From 4dc4b4f63dd79734078fa54446edb7fe2d9c74fa Mon Sep 17 00:00:00 2001 +From 7cccf5cec09f2a42cc3fe5d82ce21b7309330b33 Mon Sep 17 00:00:00 2001 From: Khem Raj Date: Wed, 18 Mar 2015 00:01:50 +0000 -Subject: [PATCH 06/30] fsl e500/e5500/e6500/603e fsqrt implementation +Subject: [PATCH 06/28] fsl e500/e5500/e6500/603e fsqrt implementation Upstream-Status: Pending Signed-off-by: Edmar Wienskoski @@ -1580,5 +1580,5 @@ index 0000000000..04ff8cc181 @@ -0,0 +1 @@ +powerpc/powerpc64/e6500/fpu -- -2.20.1 +2.22.0 diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-core/glibc/glibc/0007-readlib-Add-OECORE_KNOWN_INTERPRETER_NAMES-to-known-.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-core/glibc/glibc/0007-readlib-Add-OECORE_KNOWN_INTERPRETER_NAMES-to-known-.patch index 17ffc6fd..ae6fb268 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-core/glibc/glibc/0007-readlib-Add-OECORE_KNOWN_INTERPRETER_NAMES-to-known-.patch +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-core/glibc/glibc/0007-readlib-Add-OECORE_KNOWN_INTERPRETER_NAMES-to-known-.patch @@ -1,7 +1,7 @@ -From 5506296ef55a6e4916febab63805ddf2d5a5293c Mon Sep 17 00:00:00 2001 +From dc715f6c70d01e9c3b31c1825fa5bc447967c847 Mon Sep 17 00:00:00 2001 From: Khem Raj Date: Wed, 18 Mar 2015 00:11:22 +0000 -Subject: [PATCH 07/30] readlib: Add OECORE_KNOWN_INTERPRETER_NAMES to known +Subject: [PATCH 07/28] readlib: Add OECORE_KNOWN_INTERPRETER_NAMES to known names This bolts in a hook for OE to pass its own version of interpreter @@ -29,5 +29,5 @@ index c9743e6692..6307f918fc 100644 static struct known_names known_libs[] = -- -2.20.1 +2.22.0 diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-core/glibc/glibc/0008-ppc-sqrt-Fix-undefined-reference-to-__sqrt_finite.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-core/glibc/glibc/0008-ppc-sqrt-Fix-undefined-reference-to-__sqrt_finite.patch index aacc9f2e..8bed2030 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-core/glibc/glibc/0008-ppc-sqrt-Fix-undefined-reference-to-__sqrt_finite.patch +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-core/glibc/glibc/0008-ppc-sqrt-Fix-undefined-reference-to-__sqrt_finite.patch @@ -1,7 +1,7 @@ -From ea969d7767428d73823c91ad9955829bd66b9e58 Mon Sep 17 00:00:00 2001 +From 42a01c55786a9472934e12e0bf0c40983579b607 Mon Sep 17 00:00:00 2001 From: Khem Raj Date: Wed, 18 Mar 2015 00:15:07 +0000 -Subject: [PATCH 08/30] ppc/sqrt: Fix undefined reference to `__sqrt_finite' +Subject: [PATCH 08/28] ppc/sqrt: Fix undefined reference to `__sqrt_finite' on ppc fixes the errors like below | ./.libs/libpulsecore-1.1.so: undefined reference to `__sqrt_finite' @@ -204,5 +204,5 @@ index 26fa067abf..9d175122a8 100644 } +strong_alias (__ieee754_sqrtf, __sqrtf_finite) -- -2.20.1 +2.22.0 diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-core/glibc/glibc/0009-__ieee754_sqrt-f-are-now-inline-functions-and-call-o.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-core/glibc/glibc/0009-__ieee754_sqrt-f-are-now-inline-functions-and-call-o.patch index b1d44130..8a5d6d8b 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-core/glibc/glibc/0009-__ieee754_sqrt-f-are-now-inline-functions-and-call-o.patch +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-core/glibc/glibc/0009-__ieee754_sqrt-f-are-now-inline-functions-and-call-o.patch @@ -1,7 +1,7 @@ -From a9e6ca45cdaf13ee595089a5a580d00a95a06bf1 Mon Sep 17 00:00:00 2001 +From a0fcb9135bc8c2b9d8a161d166b6f9d56d7af245 Mon Sep 17 00:00:00 2001 From: Khem Raj Date: Wed, 18 Mar 2015 00:16:38 +0000 -Subject: [PATCH 09/30] __ieee754_sqrt{,f} are now inline functions and call +Subject: [PATCH 09/28] __ieee754_sqrt{,f} are now inline functions and call out __slow versions Upstream-Status: Pending @@ -383,5 +383,5 @@ index 9d175122a8..10de1f0cc3 100644 + strong_alias (__ieee754_sqrtf, __sqrtf_finite) -- -2.20.1 +2.22.0 diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-core/glibc/glibc/0010-Quote-from-bug-1443-which-explains-what-the-patch-do.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-core/glibc/glibc/0010-Quote-from-bug-1443-which-explains-what-the-patch-do.patch index 46d20580..a140a154 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-core/glibc/glibc/0010-Quote-from-bug-1443-which-explains-what-the-patch-do.patch +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-core/glibc/glibc/0010-Quote-from-bug-1443-which-explains-what-the-patch-do.patch @@ -1,7 +1,7 @@ -From 50ad00401eb16bb88c57d95bc927deeec4033e01 Mon Sep 17 00:00:00 2001 +From 9c1f2229c48c37b38628c485ef16e01f6780160c Mon Sep 17 00:00:00 2001 From: Khem Raj Date: Wed, 18 Mar 2015 00:20:09 +0000 -Subject: [PATCH 10/30] Quote from bug 1443 which explains what the patch does +Subject: [PATCH 10/28] Quote from bug 1443 which explains what the patch does : We build some random program and link it with -lust. When we run it, @@ -58,5 +58,5 @@ index 7a2f9d9b78..36a1dd1888 100644 case R_ARM_TLS_TPOFF32: -- -2.20.1 +2.22.0 diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-core/glibc/glibc/0011-eglibc-run-libm-err-tab.pl-with-specific-dirs-in-S.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-core/glibc/glibc/0011-eglibc-run-libm-err-tab.pl-with-specific-dirs-in-S.patch index 293b72e7..cb99092e 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-core/glibc/glibc/0011-eglibc-run-libm-err-tab.pl-with-specific-dirs-in-S.patch +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-core/glibc/glibc/0011-eglibc-run-libm-err-tab.pl-with-specific-dirs-in-S.patch @@ -1,7 +1,7 @@ -From a29a718890a3f32e7135f6b64b1a80c74f2d1454 Mon Sep 17 00:00:00 2001 +From 171d2afb930917b0cfbe9df770774da1c92dd185 Mon Sep 17 00:00:00 2001 From: Ting Liu Date: Wed, 19 Dec 2012 04:39:57 -0600 -Subject: [PATCH 11/30] eglibc: run libm-err-tab.pl with specific dirs in ${S} +Subject: [PATCH 11/28] eglibc: run libm-err-tab.pl with specific dirs in ${S} libm-err-tab.pl will parse all the files named "libm-test-ulps" in the given dir recursively. To avoid parsing the one in @@ -32,5 +32,5 @@ index 4f76ee85d2..04b8c8c320 100644 touch $@ -- -2.20.1 +2.22.0 diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-core/glibc/glibc/0012-__ieee754_sqrt-f-are-now-inline-functions-and-call-o.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-core/glibc/glibc/0012-__ieee754_sqrt-f-are-now-inline-functions-and-call-o.patch index 6e175b64..e233fbe5 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-core/glibc/glibc/0012-__ieee754_sqrt-f-are-now-inline-functions-and-call-o.patch +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-core/glibc/glibc/0012-__ieee754_sqrt-f-are-now-inline-functions-and-call-o.patch @@ -1,7 +1,7 @@ -From 777da88a819738683e4389580cfbfded2a83e87e Mon Sep 17 00:00:00 2001 +From 376be7b96152ef501c8cf95ed6dc52c0318bd26a Mon Sep 17 00:00:00 2001 From: Khem Raj Date: Wed, 18 Mar 2015 00:24:46 +0000 -Subject: [PATCH 12/30] __ieee754_sqrt{,f} are now inline functions and call +Subject: [PATCH 12/28] __ieee754_sqrt{,f} are now inline functions and call out __slow versions Upstream-Status: Pending @@ -57,5 +57,5 @@ index 812653558f..10de1f0cc3 100644 #endif { -- -2.20.1 +2.22.0 diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-core/glibc/glibc/0013-sysdeps-gnu-configure.ac-handle-correctly-libc_cv_ro.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-core/glibc/glibc/0013-sysdeps-gnu-configure.ac-handle-correctly-libc_cv_ro.patch index b5adecba..9ba52e6e 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-core/glibc/glibc/0013-sysdeps-gnu-configure.ac-handle-correctly-libc_cv_ro.patch +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-core/glibc/glibc/0013-sysdeps-gnu-configure.ac-handle-correctly-libc_cv_ro.patch @@ -1,7 +1,7 @@ -From f98b1b9e6b569abd3594b4923ace0c966c9daece Mon Sep 17 00:00:00 2001 +From 1ba4e9577437632856d719cbd5d63b5a76cbb4c4 Mon Sep 17 00:00:00 2001 From: Khem Raj Date: Wed, 18 Mar 2015 00:27:10 +0000 -Subject: [PATCH 13/30] sysdeps/gnu/configure.ac: handle correctly +Subject: [PATCH 13/28] sysdeps/gnu/configure.ac: handle correctly $libc_cv_rootsbindir Upstream-Status:Pending @@ -38,5 +38,5 @@ index 634fe4de2a..3db1697f4f 100644 ;; esac -- -2.20.1 +2.22.0 diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-core/glibc/glibc/0014-Add-unused-attribute.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-core/glibc/glibc/0014-Add-unused-attribute.patch index 1cd91475..0a602bb3 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-core/glibc/glibc/0014-Add-unused-attribute.patch +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-core/glibc/glibc/0014-Add-unused-attribute.patch @@ -1,7 +1,7 @@ -From b9cd992052550d4b2bba954099e221677a6652e7 Mon Sep 17 00:00:00 2001 +From b84999dcf642b07e6c14e6ff507be14743349949 Mon Sep 17 00:00:00 2001 From: Khem Raj Date: Wed, 18 Mar 2015 00:28:41 +0000 -Subject: [PATCH 14/30] Add unused attribute +Subject: [PATCH 14/28] Add unused attribute Helps in avoiding gcc warning when header is is included in a source file which does not use both functions @@ -30,5 +30,5 @@ index 91e0ad3141..2e9549fe49 100644 { int slash_count = 0; -- -2.20.1 +2.22.0 diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-core/glibc/glibc/0015-yes-within-the-path-sets-wrong-config-variables.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-core/glibc/glibc/0015-yes-within-the-path-sets-wrong-config-variables.patch index f2e18023..dd6562a6 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-core/glibc/glibc/0015-yes-within-the-path-sets-wrong-config-variables.patch +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-core/glibc/glibc/0015-yes-within-the-path-sets-wrong-config-variables.patch @@ -1,7 +1,7 @@ -From e8a88fb3bb6ffcc43871a7caf7ad9c59bd183e50 Mon Sep 17 00:00:00 2001 +From 7c57f84bef4aaffe4204a7a354411ab3ea7e5273 Mon Sep 17 00:00:00 2001 From: Khem Raj Date: Wed, 18 Mar 2015 00:31:06 +0000 -Subject: [PATCH 15/30] 'yes' within the path sets wrong config variables +Subject: [PATCH 15/28] 'yes' within the path sets wrong config variables It seems that the 'AC_EGREP_CPP(yes...' example is quite popular but being such a short word to grep it is likely to produce @@ -259,5 +259,5 @@ index f9cba6e15d..b21f72f1e4 100644 ], libc_cv_ppc64_def_call_elf=yes, libc_cv_ppc64_def_call_elf=no)]) if test $libc_cv_ppc64_def_call_elf = no; then -- -2.20.1 +2.22.0 diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-core/glibc/glibc/0016-timezone-re-written-tzselect-as-posix-sh.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-core/glibc/glibc/0016-timezone-re-written-tzselect-as-posix-sh.patch index 8a9fa491..4d1cf319 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-core/glibc/glibc/0016-timezone-re-written-tzselect-as-posix-sh.patch +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-core/glibc/glibc/0016-timezone-re-written-tzselect-as-posix-sh.patch @@ -1,7 +1,7 @@ -From 10f470476dc947d7b950d6a66f7c06f500c96c60 Mon Sep 17 00:00:00 2001 +From a74f31ea9edf105f1a6dc26497aa2a12ae736660 Mon Sep 17 00:00:00 2001 From: Khem Raj Date: Wed, 18 Mar 2015 00:33:03 +0000 -Subject: [PATCH 16/30] timezone: re-written tzselect as posix sh +Subject: [PATCH 16/28] timezone: re-written tzselect as posix sh To avoid the bash dependency. @@ -41,5 +41,5 @@ index 18fce27e24..70745f9d36 100755 # Output one argument as-is to standard output. # Safer than 'echo', which can mishandle '\' or leading '-'. -- -2.20.1 +2.22.0 diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-core/glibc/glibc/0017-Remove-bash-dependency-for-nscd-init-script.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-core/glibc/glibc/0017-Remove-bash-dependency-for-nscd-init-script.patch index a27759a3..e4f8a135 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-core/glibc/glibc/0017-Remove-bash-dependency-for-nscd-init-script.patch +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-core/glibc/glibc/0017-Remove-bash-dependency-for-nscd-init-script.patch @@ -1,7 +1,7 @@ -From 809392d20fa9a9f8159242451f9969e65a658835 Mon Sep 17 00:00:00 2001 +From 95882b9864ff20e476d15c6825c83728eb99597f Mon Sep 17 00:00:00 2001 From: Khem Raj Date: Thu, 31 Dec 2015 14:33:02 -0800 -Subject: [PATCH 17/30] Remove bash dependency for nscd init script +Subject: [PATCH 17/28] Remove bash dependency for nscd init script The nscd init script uses #! /bin/bash but only really uses one bashism (translated strings), so remove them and switch the shell to #!/bin/sh. @@ -71,5 +71,5 @@ index a882da7d8b..b02986ec15 100644 ;; esac -- -2.20.1 +2.22.0 diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-core/glibc/glibc/0018-eglibc-Cross-building-and-testing-instructions.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-core/glibc/glibc/0018-eglibc-Cross-building-and-testing-instructions.patch index f80a3ee1..b5efc430 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-core/glibc/glibc/0018-eglibc-Cross-building-and-testing-instructions.patch +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-core/glibc/glibc/0018-eglibc-Cross-building-and-testing-instructions.patch @@ -1,7 +1,7 @@ -From 016d6987600d49d3f45874096e943b97d1667539 Mon Sep 17 00:00:00 2001 +From 6b603d25cc5723ba631dfc60b544774db1147d81 Mon Sep 17 00:00:00 2001 From: Khem Raj Date: Wed, 18 Mar 2015 00:42:58 +0000 -Subject: [PATCH 18/30] eglibc: Cross building and testing instructions +Subject: [PATCH 18/28] eglibc: Cross building and testing instructions Ported from eglibc Upstream-Status: Pending @@ -615,5 +615,5 @@ index 0000000000..b67b468466 + simply place copies of these libraries in the top GLIBC build + directory. -- -2.20.1 +2.22.0 diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-core/glibc/glibc/0019-eglibc-Help-bootstrap-cross-toolchain.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-core/glibc/glibc/0019-eglibc-Help-bootstrap-cross-toolchain.patch index 603bf218..0333db28 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-core/glibc/glibc/0019-eglibc-Help-bootstrap-cross-toolchain.patch +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-core/glibc/glibc/0019-eglibc-Help-bootstrap-cross-toolchain.patch @@ -1,7 +1,7 @@ -From 7e4423528d362cf6268b1902a8e30d710431f333 Mon Sep 17 00:00:00 2001 +From 2864aaae984d945445f3f79869c703e0b791df88 Mon Sep 17 00:00:00 2001 From: Khem Raj Date: Wed, 18 Mar 2015 00:49:28 +0000 -Subject: [PATCH 19/30] eglibc: Help bootstrap cross toolchain +Subject: [PATCH 19/28] eglibc: Help bootstrap cross toolchain Taken from EGLIBC, r1484 + r1525 @@ -29,7 +29,7 @@ Signed-off-by: Khem Raj create mode 100644 include/stubs-bootstrap.h diff --git a/Makefile b/Makefile -index 4a014d6eff..3a1f419bc3 100644 +index 9fbf705200..64bfd455bc 100644 --- a/Makefile +++ b/Makefile @@ -70,9 +70,18 @@ subdir-dirs = include @@ -52,7 +52,7 @@ index 4a014d6eff..3a1f419bc3 100644 ifeq (yes,$(build-shared)) headers += gnu/lib-names.h endif -@@ -195,6 +204,16 @@ others: $(common-objpfx)testrun.sh +@@ -196,6 +205,16 @@ others: $(common-objpfx)testrun.sh subdir-stubs := $(foreach dir,$(subdirs),$(common-objpfx)$(dir)/stubs) @@ -69,7 +69,7 @@ index 4a014d6eff..3a1f419bc3 100644 ifndef abi-variants installed-stubs = $(inst_includedir)/gnu/stubs.h else -@@ -221,6 +240,7 @@ $(inst_includedir)/gnu/stubs.h: $(+force) +@@ -222,6 +241,7 @@ $(inst_includedir)/gnu/stubs.h: $(+force) install-others-nosubdir: $(installed-stubs) endif @@ -96,5 +96,5 @@ index 0000000000..1d2b669aff + EGLIBC subdir 'stubs' make targets, on every .o file in EGLIBC, but + an empty stubs.h like this will do fine for GCC. */ -- -2.20.1 +2.22.0 diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-core/glibc/glibc/0020-eglibc-Clear-cache-lines-on-ppc8xx.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-core/glibc/glibc/0020-eglibc-Clear-cache-lines-on-ppc8xx.patch index 985b17b5..965ad657 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-core/glibc/glibc/0020-eglibc-Clear-cache-lines-on-ppc8xx.patch +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-core/glibc/glibc/0020-eglibc-Clear-cache-lines-on-ppc8xx.patch @@ -1,7 +1,7 @@ -From 8c4d7d70a84a69fe5e8d69539368aa11f8fe20aa Mon Sep 17 00:00:00 2001 +From e2667086bf984de4d3f1226b9467761cd5a4c39f Mon Sep 17 00:00:00 2001 From: Khem Raj Date: Thu, 31 Dec 2015 15:15:09 -0800 -Subject: [PATCH 20/30] eglibc: Clear cache lines on ppc8xx +Subject: [PATCH 20/28] eglibc: Clear cache lines on ppc8xx 2007-06-13 Nathan Sidwell Mark Shinwell @@ -79,5 +79,5 @@ index 4fd5f70700..1a21e4675c 100644 break; #ifndef SHARED -- -2.20.1 +2.22.0 diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-core/glibc/glibc/0021-eglibc-Resolve-__fpscr_values-on-SH4.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-core/glibc/glibc/0021-eglibc-Resolve-__fpscr_values-on-SH4.patch index fb1b43b1..76551cf5 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-core/glibc/glibc/0021-eglibc-Resolve-__fpscr_values-on-SH4.patch +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-core/glibc/glibc/0021-eglibc-Resolve-__fpscr_values-on-SH4.patch @@ -1,7 +1,7 @@ -From 19f041215673d4499ee9b23805d5c224c4063689 Mon Sep 17 00:00:00 2001 +From b7290e54a1bda7a0212131655bc27926fc22de22 Mon Sep 17 00:00:00 2001 From: Khem Raj Date: Wed, 18 Mar 2015 00:55:53 +0000 -Subject: [PATCH 21/30] eglibc: Resolve __fpscr_values on SH4 +Subject: [PATCH 21/28] eglibc: Resolve __fpscr_values on SH4 2010-09-29 Nobuhiro Iwamatsu Andrew Stubbs @@ -52,5 +52,5 @@ index 6ce36d6dd5..425811cc77 100644 +weak_alias (___fpscr_values, __fpscr_values) + -- -2.20.1 +2.22.0 diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-core/glibc/glibc/0022-eglibc-Forward-port-cross-locale-generation-support.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-core/glibc/glibc/0022-eglibc-Forward-port-cross-locale-generation-support.patch index a2d35d43..c46021a4 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-core/glibc/glibc/0022-eglibc-Forward-port-cross-locale-generation-support.patch +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-core/glibc/glibc/0022-eglibc-Forward-port-cross-locale-generation-support.patch @@ -1,7 +1,7 @@ -From 1ae15f60a84f16187e06a05906f44a6658bae487 Mon Sep 17 00:00:00 2001 +From be382b4e0c6de52573f7e037f2d4ff9b1b5bbb6b Mon Sep 17 00:00:00 2001 From: Khem Raj Date: Wed, 18 Mar 2015 01:33:49 +0000 -Subject: [PATCH 22/30] eglibc: Forward port cross locale generation support +Subject: [PATCH 22/28] eglibc: Forward port cross locale generation support Upstream-Status: Pending @@ -23,7 +23,7 @@ Signed-off-by: Khem Raj create mode 100644 locale/catnames.c diff --git a/locale/Makefile b/locale/Makefile -index 764e751c36..866957fefa 100644 +index d78cf9b83a..e166f5252e 100644 --- a/locale/Makefile +++ b/locale/Makefile @@ -26,7 +26,8 @@ headers = langinfo.h locale.h bits/locale.h \ @@ -150,7 +150,7 @@ index 94c122df68..80e53e12c8 100644 return NULL; } diff --git a/locale/programs/ld-collate.c b/locale/programs/ld-collate.c -index bb4e2c539d..9d08d422c4 100644 +index 6baab6cfb0..b12a2fceab 100644 --- a/locale/programs/ld-collate.c +++ b/locale/programs/ld-collate.c @@ -349,7 +349,7 @@ new_element (struct locale_collate_t *collate, const char *mbs, size_t mbslen, @@ -199,7 +199,7 @@ index bb4e2c539d..9d08d422c4 100644 == runp->wcnext->wcs[runp->nwcs - 1] + 1)); diff --git a/locale/programs/ld-ctype.c b/locale/programs/ld-ctype.c -index 36fd08ba80..08155a27d6 100644 +index cfc9c43fd5..6572cc199c 100644 --- a/locale/programs/ld-ctype.c +++ b/locale/programs/ld-ctype.c @@ -915,7 +915,7 @@ ctype_output (struct localedef_t *locale, const struct charmap_t *charmap, @@ -211,7 +211,7 @@ index 36fd08ba80..08155a27d6 100644 : 0); init_locale_data (&file, nelems); -@@ -1926,7 +1926,7 @@ read_translit_entry (struct linereader *ldfile, struct locale_ctype_t *ctype, +@@ -1927,7 +1927,7 @@ read_translit_entry (struct linereader *ldfile, struct locale_ctype_t *ctype, ignore = 1; else /* This value is usable. */ @@ -220,7 +220,7 @@ index 36fd08ba80..08155a27d6 100644 first = 0; } -@@ -2460,8 +2460,8 @@ with character code range values one must use the absolute ellipsis `...'")); +@@ -2461,8 +2461,8 @@ with character code range values one must use the absolute ellipsis `...'")); } handle_tok_digit: @@ -231,7 +231,7 @@ index 36fd08ba80..08155a27d6 100644 handle_digits = 1; goto read_charclass; -@@ -3901,8 +3901,7 @@ allocate_arrays (struct locale_ctype_t *ctype, const struct charmap_t *charmap, +@@ -3904,8 +3904,7 @@ allocate_arrays (struct locale_ctype_t *ctype, const struct charmap_t *charmap, while (idx < number) { @@ -241,7 +241,7 @@ index 36fd08ba80..08155a27d6 100644 if (res == 0) { replace = 1; -@@ -3939,11 +3938,11 @@ allocate_arrays (struct locale_ctype_t *ctype, const struct charmap_t *charmap, +@@ -3942,11 +3941,11 @@ allocate_arrays (struct locale_ctype_t *ctype, const struct charmap_t *charmap, for (size_t cnt = 0; cnt < number; ++cnt) { struct translit_to_t *srunp; @@ -255,7 +255,7 @@ index 36fd08ba80..08155a27d6 100644 srunp = srunp->next; } /* Plus one for the extra NUL character marking the end of -@@ -3967,18 +3966,18 @@ allocate_arrays (struct locale_ctype_t *ctype, const struct charmap_t *charmap, +@@ -3970,18 +3969,18 @@ allocate_arrays (struct locale_ctype_t *ctype, const struct charmap_t *charmap, ctype->translit_from_idx[cnt] = from_len; ctype->translit_to_idx[cnt] = to_len; @@ -521,7 +521,7 @@ index c063fc097d..4e7465e55a 100644 + #endif /* locfile.h */ diff --git a/locale/setlocale.c b/locale/setlocale.c -index 9427a5ad28..8f4140d684 100644 +index 9bd35454b9..2a67dc6589 100644 --- a/locale/setlocale.c +++ b/locale/setlocale.c @@ -64,36 +64,6 @@ static char *const _nl_current_used[] = @@ -562,5 +562,5 @@ index 9427a5ad28..8f4140d684 100644 # define WEAK_POSTLOAD(postload) weak_extern (postload) #else -- -2.20.1 +2.22.0 diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-core/glibc/glibc/0023-Define-DUMMY_LOCALE_T-if-not-defined.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-core/glibc/glibc/0023-Define-DUMMY_LOCALE_T-if-not-defined.patch index 0f7c5fdf..17667da9 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-core/glibc/glibc/0023-Define-DUMMY_LOCALE_T-if-not-defined.patch +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-core/glibc/glibc/0023-Define-DUMMY_LOCALE_T-if-not-defined.patch @@ -1,7 +1,7 @@ -From 809c79b7d554a4ec83921df9d8773c99a03dc81c Mon Sep 17 00:00:00 2001 +From afa8d6faeddeb80aca318b33edf49d9f8ce65761 Mon Sep 17 00:00:00 2001 From: Khem Raj Date: Wed, 20 Apr 2016 21:11:00 -0700 -Subject: [PATCH 23/30] Define DUMMY_LOCALE_T if not defined +Subject: [PATCH 23/28] Define DUMMY_LOCALE_T if not defined This is a hack to fix building the locale bits on an older CentOs 5.X machine @@ -28,5 +28,5 @@ index a1e6e0ec3c..7f75528eae 100644 #define PACKAGE _libc_intl_domainname #ifndef VERSION -- -2.20.1 +2.22.0 diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-core/glibc/glibc/0024-localedef-add-to-archive-uses-a-hard-coded-locale-pa.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-core/glibc/glibc/0024-localedef-add-to-archive-uses-a-hard-coded-locale-pa.patch index c289e544..f68e4f4f 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-core/glibc/glibc/0024-localedef-add-to-archive-uses-a-hard-coded-locale-pa.patch +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-core/glibc/glibc/0024-localedef-add-to-archive-uses-a-hard-coded-locale-pa.patch @@ -1,7 +1,7 @@ -From b2d1c9b4159bfd661a4996588d06d922491dfecb Mon Sep 17 00:00:00 2001 +From c13e18adb634a6fd59129150ab7f9468f64dc931 Mon Sep 17 00:00:00 2001 From: Khem Raj Date: Fri, 3 Aug 2018 09:42:06 -0700 -Subject: [PATCH 24/30] localedef --add-to-archive uses a hard-coded locale +Subject: [PATCH 24/28] localedef --add-to-archive uses a hard-coded locale path it doesn't exist in normal use, and there's no way to pass an @@ -80,5 +80,5 @@ index e6310b18be..f54a76eade 100644 if (readonly) { -- -2.20.1 +2.22.0 diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-core/glibc/glibc/0025-elf-dl-deps.c-Make-_dl_build_local_scope-breadth-fir.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-core/glibc/glibc/0025-elf-dl-deps.c-Make-_dl_build_local_scope-breadth-fir.patch index 0ddd2e58..76a9eb25 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-core/glibc/glibc/0025-elf-dl-deps.c-Make-_dl_build_local_scope-breadth-fir.patch +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-core/glibc/glibc/0025-elf-dl-deps.c-Make-_dl_build_local_scope-breadth-fir.patch @@ -1,7 +1,7 @@ -From 804b05a034bfaf4e3427243e6baf736086822cd0 Mon Sep 17 00:00:00 2001 +From 7c9ebe966bb97dd14de5719905b61311211ae3c8 Mon Sep 17 00:00:00 2001 From: Mark Hatle Date: Thu, 18 Aug 2016 14:07:58 -0500 -Subject: [PATCH 25/30] elf/dl-deps.c: Make _dl_build_local_scope breadth first +Subject: [PATCH 25/28] elf/dl-deps.c: Make _dl_build_local_scope breadth first According to the ELF specification: @@ -52,5 +52,5 @@ index e12c353158..9234daac05 100644 } -- -2.20.1 +2.22.0 diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-core/glibc/glibc/0026-intl-Emit-no-lines-in-bison-generated-files.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-core/glibc/glibc/0026-intl-Emit-no-lines-in-bison-generated-files.patch new file mode 100644 index 00000000..7589e11d --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-core/glibc/glibc/0026-intl-Emit-no-lines-in-bison-generated-files.patch @@ -0,0 +1,34 @@ +From aa5c758fbb7dbb026df33fc6bdc05548547bdb17 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Fri, 3 Aug 2018 09:44:00 -0700 +Subject: [PATCH 26/28] intl: Emit no lines in bison generated files + +Improve reproducibility: +Do not put any #line preprocessor commands in bison generated files. +These lines contain absolute paths containing file locations on +the host build machine. + +Upstream-Status: Pending + +Signed-off-by: Juro Bystricky +Signed-off-by: Khem Raj +--- + intl/Makefile | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/intl/Makefile b/intl/Makefile +index 9eea8d57e3..627dce4cf1 100644 +--- a/intl/Makefile ++++ b/intl/Makefile +@@ -155,7 +155,7 @@ $(objpfx)tst-gettext6.out: $(objpfx)tst-gettext.out + + CPPFLAGS += -D'LOCALEDIR="$(localedir)"' \ + -D'LOCALE_ALIAS_PATH="$(localedir)"' +-BISONFLAGS = --yacc --name-prefix=__gettext --output ++BISONFLAGS = --yacc --no-lines --name-prefix=__gettext --output + + $(inst_localedir)/locale.alias: locale.alias $(+force) + $(do-install) +-- +2.22.0 + diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-core/glibc/glibc/0027-inject-file-assembly-directives.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-core/glibc/glibc/0027-inject-file-assembly-directives.patch new file mode 100644 index 00000000..dc205a83 --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-core/glibc/glibc/0027-inject-file-assembly-directives.patch @@ -0,0 +1,304 @@ +From fecd98040a2ae1bc5943a40a1623d76a696e0785 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Thu, 29 Nov 2018 17:29:35 -0800 +Subject: [PATCH 27/28] inject file assembly directives + +Currently, non-IA builds are not reproducibile since build paths are +being injected into the debug symbols. These are coming from the use of +.S assembler files during the glibc build. No STT_FILE section is added +during the assembly but when linking, ld decides to add one to aid +debugging and ensure references between the different object files its +linking remain clear. + +We can avoid this by injecting a file header into the assembler files +ahead of time, choosing a filename which does not contain build system +paths. + +This is a bit of a workaround/hack but does significantly reduce the +build system references in target binaries for the non-IA architectures +which use .S files. + +RP +2018/10/3 + +Upstream-Status: Pending + +Signed-off-by: Khem Raj +--- + csu/abi-note.S | 2 ++ + sysdeps/aarch64/crti.S | 2 ++ + sysdeps/aarch64/crtn.S | 2 ++ + sysdeps/aarch64/dl-tlsdesc.S | 2 ++ + sysdeps/aarch64/dl-trampoline.S | 2 ++ + sysdeps/aarch64/start.S | 2 ++ + sysdeps/arm/abi-note.S | 2 ++ + sysdeps/arm/crti.S | 2 ++ + sysdeps/arm/crtn.S | 2 ++ + sysdeps/arm/dl-tlsdesc.S | 2 ++ + sysdeps/arm/dl-trampoline.S | 2 ++ + sysdeps/arm/start.S | 2 ++ + sysdeps/mips/start.S | 2 ++ + sysdeps/powerpc/powerpc32/dl-start.S | 2 ++ + sysdeps/powerpc/powerpc32/start.S | 2 ++ + sysdeps/powerpc/powerpc64/start.S | 2 ++ + sysdeps/unix/sysv/linux/aarch64/__read_tp.S | 2 ++ + sysdeps/unix/sysv/linux/arm/aeabi_read_tp.S | 2 ++ + sysdeps/unix/sysv/linux/arm/libc-do-syscall.S | 2 ++ + sysdeps/unix/sysv/linux/powerpc/dl-brk.S | 2 ++ + 20 files changed, 40 insertions(+) + +diff --git a/csu/abi-note.S b/csu/abi-note.S +index fa1f014a88..098731362a 100644 +--- a/csu/abi-note.S ++++ b/csu/abi-note.S +@@ -56,6 +56,8 @@ offset length contents + #include + #include /* OS-specific ABI tag value */ + ++ .file "abi-note.S" ++ + /* The linker (GNU ld 2.8 and later) recognizes an allocated section whose + name begins with `.note' and creates a PT_NOTE program header entry + pointing at it. */ +diff --git a/sysdeps/aarch64/crti.S b/sysdeps/aarch64/crti.S +index d4e7dfcf5c..e0218df30c 100644 +--- a/sysdeps/aarch64/crti.S ++++ b/sysdeps/aarch64/crti.S +@@ -50,6 +50,8 @@ + # define PREINIT_FUNCTION_WEAK 1 + #endif + ++ .file "crti.S" ++ + #if PREINIT_FUNCTION_WEAK + weak_extern (PREINIT_FUNCTION) + #else +diff --git a/sysdeps/aarch64/crtn.S b/sysdeps/aarch64/crtn.S +index 363f752460..2fb06fba62 100644 +--- a/sysdeps/aarch64/crtn.S ++++ b/sysdeps/aarch64/crtn.S +@@ -37,6 +37,8 @@ + /* crtn.S puts function epilogues in the .init and .fini sections + corresponding to the prologues in crti.S. */ + ++ .file "crtn.S" ++ + .section .init,"ax",%progbits + ldp x29, x30, [sp], 16 + RET +diff --git a/sysdeps/aarch64/dl-tlsdesc.S b/sysdeps/aarch64/dl-tlsdesc.S +index 4abe6b82a3..8c44b2ff8a 100644 +--- a/sysdeps/aarch64/dl-tlsdesc.S ++++ b/sysdeps/aarch64/dl-tlsdesc.S +@@ -22,6 +22,8 @@ + #include + #include "tlsdesc.h" + ++ .file "dl-tlsdesc.S" ++ + #define NSAVEDQREGPAIRS 16 + #define SAVE_Q_REGISTERS \ + stp q0, q1, [sp, #-32*NSAVEDQREGPAIRS]!; \ +diff --git a/sysdeps/aarch64/dl-trampoline.S b/sysdeps/aarch64/dl-trampoline.S +index 19b117e8f9..38c78b5409 100644 +--- a/sysdeps/aarch64/dl-trampoline.S ++++ b/sysdeps/aarch64/dl-trampoline.S +@@ -21,6 +21,8 @@ + + #include "dl-link.h" + ++ .file "dl-trampoline.S" ++ + #define ip0 x16 + #define ip0l PTR_REG (16) + #define ip1 x17 +diff --git a/sysdeps/aarch64/start.S b/sysdeps/aarch64/start.S +index f5e9b9c223..ae3e22a6a5 100644 +--- a/sysdeps/aarch64/start.S ++++ b/sysdeps/aarch64/start.S +@@ -18,6 +18,8 @@ + + #include + ++ .file "start.S" ++ + /* This is the canonical entry point, usually the first thing in the text + segment. + +diff --git a/sysdeps/arm/abi-note.S b/sysdeps/arm/abi-note.S +index 07bd4c4619..7213b16f27 100644 +--- a/sysdeps/arm/abi-note.S ++++ b/sysdeps/arm/abi-note.S +@@ -1,3 +1,5 @@ ++ .file "abi-note.S" ++ + /* Tag_ABI_align8_preserved: This code preserves 8-byte + alignment in any callee. */ + .eabi_attribute 25, 1 +diff --git a/sysdeps/arm/crti.S b/sysdeps/arm/crti.S +index 26dbba66a3..dd84ecd566 100644 +--- a/sysdeps/arm/crti.S ++++ b/sysdeps/arm/crti.S +@@ -57,6 +57,8 @@ + .hidden PREINIT_FUNCTION + #endif + ++ .file "crti.S" ++ + #if PREINIT_FUNCTION_WEAK + .p2align 2 + .type call_weak_fn, %function +diff --git a/sysdeps/arm/crtn.S b/sysdeps/arm/crtn.S +index 8f91c8d88b..a87fe49e07 100644 +--- a/sysdeps/arm/crtn.S ++++ b/sysdeps/arm/crtn.S +@@ -37,6 +37,8 @@ + #define NO_THUMB + #include + ++ .file "crtn.S" ++ + /* crtn.S puts function epilogues in the .init and .fini sections + corresponding to the prologues in crti.S. */ + +diff --git a/sysdeps/arm/dl-tlsdesc.S b/sysdeps/arm/dl-tlsdesc.S +index a929340b42..b724c9776d 100644 +--- a/sysdeps/arm/dl-tlsdesc.S ++++ b/sysdeps/arm/dl-tlsdesc.S +@@ -21,6 +21,8 @@ + #include + #include "tlsdesc.h" + ++ .file "dl-tlsdesc.S" ++ + .text + @ emit debug information with cfi + @ use arm-specific pseudos for unwinding itself +diff --git a/sysdeps/arm/dl-trampoline.S b/sysdeps/arm/dl-trampoline.S +index 325cfcd2ce..4bfdcbce51 100644 +--- a/sysdeps/arm/dl-trampoline.S ++++ b/sysdeps/arm/dl-trampoline.S +@@ -21,6 +21,8 @@ + #include + #include + ++ .file "dl-trampoline.S" ++ + .text + .globl _dl_runtime_resolve + .type _dl_runtime_resolve, #function +diff --git a/sysdeps/arm/start.S b/sysdeps/arm/start.S +index a05f8a4651..2f4374fcaa 100644 +--- a/sysdeps/arm/start.S ++++ b/sysdeps/arm/start.S +@@ -57,6 +57,8 @@ + NULL + */ + ++ .file "start.S" ++ + /* Tag_ABI_align8_preserved: This code preserves 8-byte + alignment in any callee. */ + .eabi_attribute 25, 1 +diff --git a/sysdeps/mips/start.S b/sysdeps/mips/start.S +index 8638e5b545..93f6564aec 100644 +--- a/sysdeps/mips/start.S ++++ b/sysdeps/mips/start.S +@@ -38,6 +38,8 @@ + #include + #include + ++ .file "start.S" ++ + #ifndef ENTRY_POINT + #error ENTRY_POINT needs to be defined for start.S on MIPS/ELF. + #endif +diff --git a/sysdeps/powerpc/powerpc32/dl-start.S b/sysdeps/powerpc/powerpc32/dl-start.S +index 99a10d643a..e47fc0d245 100644 +--- a/sysdeps/powerpc/powerpc32/dl-start.S ++++ b/sysdeps/powerpc/powerpc32/dl-start.S +@@ -18,6 +18,8 @@ + + #include + ++ .file "dl-start.S" ++ + /* Initial entry point code for the dynamic linker. + The C function `_dl_start' is the real entry point; + its return value is the user program's entry point. */ +diff --git a/sysdeps/powerpc/powerpc32/start.S b/sysdeps/powerpc/powerpc32/start.S +index 172fb5a56b..ef1471b861 100644 +--- a/sysdeps/powerpc/powerpc32/start.S ++++ b/sysdeps/powerpc/powerpc32/start.S +@@ -35,6 +35,8 @@ + + #include + ++ .file "start.S" ++ + /* We do not want .eh_frame info for crt1.o since crt1.o is linked + before crtbegin.o, the file defining __EH_FRAME_BEGIN__. */ + #undef cfi_startproc +diff --git a/sysdeps/powerpc/powerpc64/start.S b/sysdeps/powerpc/powerpc64/start.S +index 55fae68ad6..0cb608fe0f 100644 +--- a/sysdeps/powerpc/powerpc64/start.S ++++ b/sysdeps/powerpc/powerpc64/start.S +@@ -35,6 +35,8 @@ + + #include + ++ .file "start.S" ++ + /* We do not want .eh_frame info for crt1.o since crt1.o is linked + before crtbegin.o, the file defining __EH_FRAME_BEGIN__. */ + #undef cfi_startproc +diff --git a/sysdeps/unix/sysv/linux/aarch64/__read_tp.S b/sysdeps/unix/sysv/linux/aarch64/__read_tp.S +index 30a29b9fb0..07892b383f 100644 +--- a/sysdeps/unix/sysv/linux/aarch64/__read_tp.S ++++ b/sysdeps/unix/sysv/linux/aarch64/__read_tp.S +@@ -18,6 +18,8 @@ + + #include + ++ .file "__read_tp.S" ++ + .hidden __read_tp + ENTRY (__read_tp) + mrs x0, tpidr_el0 +diff --git a/sysdeps/unix/sysv/linux/arm/aeabi_read_tp.S b/sysdeps/unix/sysv/linux/arm/aeabi_read_tp.S +index f64c4ffe8a..2da315ab08 100644 +--- a/sysdeps/unix/sysv/linux/arm/aeabi_read_tp.S ++++ b/sysdeps/unix/sysv/linux/arm/aeabi_read_tp.S +@@ -39,6 +39,8 @@ + a normal function call) in a high page of memory; tail call to the + helper. */ + ++ .file "aeabi_read_tp.S" ++ + .hidden __aeabi_read_tp + ENTRY (__aeabi_read_tp) + #ifdef ARCH_HAS_HARD_TP +diff --git a/sysdeps/unix/sysv/linux/arm/libc-do-syscall.S b/sysdeps/unix/sysv/linux/arm/libc-do-syscall.S +index 0b6237ac55..8cda491c28 100644 +--- a/sysdeps/unix/sysv/linux/arm/libc-do-syscall.S ++++ b/sysdeps/unix/sysv/linux/arm/libc-do-syscall.S +@@ -27,6 +27,8 @@ + ARM unwind tables for register to register moves, the actual opcodes + are not defined. */ + ++ .file "libc-do-syscall.S" ++ + #if defined(__thumb__) + .thumb + .syntax unified +diff --git a/sysdeps/unix/sysv/linux/powerpc/dl-brk.S b/sysdeps/unix/sysv/linux/powerpc/dl-brk.S +index eeb96544e3..da182b28f8 100644 +--- a/sysdeps/unix/sysv/linux/powerpc/dl-brk.S ++++ b/sysdeps/unix/sysv/linux/powerpc/dl-brk.S +@@ -1 +1,3 @@ ++ .file "dl-brk.S" ++ + #include +-- +2.22.0 + diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-core/glibc/glibc/0028-intl-Emit-no-lines-in-bison-generated-files.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-core/glibc/glibc/0028-intl-Emit-no-lines-in-bison-generated-files.patch deleted file mode 100644 index 0eb006ff..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-core/glibc/glibc/0028-intl-Emit-no-lines-in-bison-generated-files.patch +++ /dev/null @@ -1,34 +0,0 @@ -From 39f910a4b8195d0538425aad7f0ebdc232b7a582 Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Fri, 3 Aug 2018 09:44:00 -0700 -Subject: [PATCH 28/30] intl: Emit no lines in bison generated files - -Improve reproducibility: -Do not put any #line preprocessor commands in bison generated files. -These lines contain absolute paths containing file locations on -the host build machine. - -Upstream-Status: Pending - -Signed-off-by: Juro Bystricky -Signed-off-by: Khem Raj ---- - intl/Makefile | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/intl/Makefile b/intl/Makefile -index 9eea8d57e3..627dce4cf1 100644 ---- a/intl/Makefile -+++ b/intl/Makefile -@@ -155,7 +155,7 @@ $(objpfx)tst-gettext6.out: $(objpfx)tst-gettext.out - - CPPFLAGS += -D'LOCALEDIR="$(localedir)"' \ - -D'LOCALE_ALIAS_PATH="$(localedir)"' --BISONFLAGS = --yacc --name-prefix=__gettext --output -+BISONFLAGS = --yacc --no-lines --name-prefix=__gettext --output - - $(inst_localedir)/locale.alias: locale.alias $(+force) - $(do-install) --- -2.20.1 - diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-core/glibc/glibc/0028-locale-prevent-maybe-uninitialized-errors-with-Os-BZ.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-core/glibc/glibc/0028-locale-prevent-maybe-uninitialized-errors-with-Os-BZ.patch new file mode 100644 index 00000000..6c49066f --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-core/glibc/glibc/0028-locale-prevent-maybe-uninitialized-errors-with-Os-BZ.patch @@ -0,0 +1,56 @@ +From d934788e3221c28c9a1892235cbe4cfd1b28ced0 Mon Sep 17 00:00:00 2001 +From: Martin Jansa +Date: Mon, 17 Dec 2018 21:36:18 +0000 +Subject: [PATCH 28/28] locale: prevent maybe-uninitialized errors with -Os [BZ + #19444] + +Fixes following error when building for aarch64 with -Os: +| In file included from strcoll_l.c:43: +| strcoll_l.c: In function '__strcoll_l': +| ../locale/weight.h:31:26: error: 'seq2.back_us' may be used uninitialized in this function [-Werror=maybe-uninitialized] +| int_fast32_t i = table[*(*cpp)++]; +| ^~~~~~~~~ +| strcoll_l.c:304:18: note: 'seq2.back_us' was declared here +| coll_seq seq1, seq2; +| ^~~~ +| In file included from strcoll_l.c:43: +| ../locale/weight.h:31:26: error: 'seq1.back_us' may be used uninitialized in this function [-Werror=maybe-uninitialized] +| int_fast32_t i = table[*(*cpp)++]; +| ^~~~~~~~~ +| strcoll_l.c:304:12: note: 'seq1.back_us' was declared here +| coll_seq seq1, seq2; +| ^~~~ + + Partial fix for [BZ #19444] + * locale/weight.h: Fix build with -Os. + +Upstream-Status: Submitted [https://patchwork.ozlabs.org/patch/1014766] + +Signed-off-by: Martin Jansa +Signed-off-by: Khem Raj +--- + locale/weight.h | 7 +++++++ + 1 file changed, 7 insertions(+) + +diff --git a/locale/weight.h b/locale/weight.h +index 7ca81498b2..d608ca70bb 100644 +--- a/locale/weight.h ++++ b/locale/weight.h +@@ -28,7 +28,14 @@ findidx (const int32_t *table, + const unsigned char *extra, + const unsigned char **cpp, size_t len) + { ++ /* With GCC 8 when compiling with -Os the compiler warns that ++ seq1.back_us and seq2.back_us might be used uninitialized. ++ This uninitialized use is impossible for the same reason ++ as described in comments in locale/weightwc.h. */ ++ DIAG_PUSH_NEEDS_COMMENT; ++ DIAG_IGNORE_Os_NEEDS_COMMENT (8, "-Wmaybe-uninitialized"); + int_fast32_t i = table[*(*cpp)++]; ++ DIAG_POP_NEEDS_COMMENT; + const unsigned char *cp; + const unsigned char *usrc; + +-- +2.22.0 + diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-core/glibc/glibc/0029-inject-file-assembly-directives.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-core/glibc/glibc/0029-inject-file-assembly-directives.patch deleted file mode 100644 index 2874fb58..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-core/glibc/glibc/0029-inject-file-assembly-directives.patch +++ /dev/null @@ -1,304 +0,0 @@ -From 649bfb399265eb48a9fe8db1c2b5a31633c55152 Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Thu, 29 Nov 2018 17:29:35 -0800 -Subject: [PATCH 29/30] inject file assembly directives - -Currently, non-IA builds are not reproducibile since build paths are -being injected into the debug symbols. These are coming from the use of -.S assembler files during the glibc build. No STT_FILE section is added -during the assembly but when linking, ld decides to add one to aid -debugging and ensure references between the different object files its -linking remain clear. - -We can avoid this by injecting a file header into the assembler files -ahead of time, choosing a filename which does not contain build system -paths. - -This is a bit of a workaround/hack but does significantly reduce the -build system references in target binaries for the non-IA architectures -which use .S files. - -RP -2018/10/3 - -Upstream-Status: Pending - -Signed-off-by: Khem Raj ---- - csu/abi-note.S | 2 ++ - sysdeps/aarch64/crti.S | 2 ++ - sysdeps/aarch64/crtn.S | 2 ++ - sysdeps/aarch64/dl-tlsdesc.S | 2 ++ - sysdeps/aarch64/dl-trampoline.S | 2 ++ - sysdeps/aarch64/start.S | 2 ++ - sysdeps/arm/abi-note.S | 2 ++ - sysdeps/arm/crti.S | 2 ++ - sysdeps/arm/crtn.S | 2 ++ - sysdeps/arm/dl-tlsdesc.S | 2 ++ - sysdeps/arm/dl-trampoline.S | 2 ++ - sysdeps/arm/start.S | 2 ++ - sysdeps/mips/start.S | 2 ++ - sysdeps/powerpc/powerpc32/dl-start.S | 2 ++ - sysdeps/powerpc/powerpc32/start.S | 2 ++ - sysdeps/powerpc/powerpc64/start.S | 2 ++ - sysdeps/unix/sysv/linux/aarch64/__read_tp.S | 2 ++ - sysdeps/unix/sysv/linux/arm/aeabi_read_tp.S | 2 ++ - sysdeps/unix/sysv/linux/arm/libc-do-syscall.S | 2 ++ - sysdeps/unix/sysv/linux/powerpc/dl-brk.S | 2 ++ - 20 files changed, 40 insertions(+) - -diff --git a/csu/abi-note.S b/csu/abi-note.S -index fa1f014a88..098731362a 100644 ---- a/csu/abi-note.S -+++ b/csu/abi-note.S -@@ -56,6 +56,8 @@ offset length contents - #include - #include /* OS-specific ABI tag value */ - -+ .file "abi-note.S" -+ - /* The linker (GNU ld 2.8 and later) recognizes an allocated section whose - name begins with `.note' and creates a PT_NOTE program header entry - pointing at it. */ -diff --git a/sysdeps/aarch64/crti.S b/sysdeps/aarch64/crti.S -index d4e7dfcf5c..e0218df30c 100644 ---- a/sysdeps/aarch64/crti.S -+++ b/sysdeps/aarch64/crti.S -@@ -50,6 +50,8 @@ - # define PREINIT_FUNCTION_WEAK 1 - #endif - -+ .file "crti.S" -+ - #if PREINIT_FUNCTION_WEAK - weak_extern (PREINIT_FUNCTION) - #else -diff --git a/sysdeps/aarch64/crtn.S b/sysdeps/aarch64/crtn.S -index 363f752460..2fb06fba62 100644 ---- a/sysdeps/aarch64/crtn.S -+++ b/sysdeps/aarch64/crtn.S -@@ -37,6 +37,8 @@ - /* crtn.S puts function epilogues in the .init and .fini sections - corresponding to the prologues in crti.S. */ - -+ .file "crtn.S" -+ - .section .init,"ax",%progbits - ldp x29, x30, [sp], 16 - RET -diff --git a/sysdeps/aarch64/dl-tlsdesc.S b/sysdeps/aarch64/dl-tlsdesc.S -index 4abe6b82a3..8c44b2ff8a 100644 ---- a/sysdeps/aarch64/dl-tlsdesc.S -+++ b/sysdeps/aarch64/dl-tlsdesc.S -@@ -22,6 +22,8 @@ - #include - #include "tlsdesc.h" - -+ .file "dl-tlsdesc.S" -+ - #define NSAVEDQREGPAIRS 16 - #define SAVE_Q_REGISTERS \ - stp q0, q1, [sp, #-32*NSAVEDQREGPAIRS]!; \ -diff --git a/sysdeps/aarch64/dl-trampoline.S b/sysdeps/aarch64/dl-trampoline.S -index 19b117e8f9..38c78b5409 100644 ---- a/sysdeps/aarch64/dl-trampoline.S -+++ b/sysdeps/aarch64/dl-trampoline.S -@@ -21,6 +21,8 @@ - - #include "dl-link.h" - -+ .file "dl-trampoline.S" -+ - #define ip0 x16 - #define ip0l PTR_REG (16) - #define ip1 x17 -diff --git a/sysdeps/aarch64/start.S b/sysdeps/aarch64/start.S -index f5e9b9c223..ae3e22a6a5 100644 ---- a/sysdeps/aarch64/start.S -+++ b/sysdeps/aarch64/start.S -@@ -18,6 +18,8 @@ - - #include - -+ .file "start.S" -+ - /* This is the canonical entry point, usually the first thing in the text - segment. - -diff --git a/sysdeps/arm/abi-note.S b/sysdeps/arm/abi-note.S -index 07bd4c4619..7213b16f27 100644 ---- a/sysdeps/arm/abi-note.S -+++ b/sysdeps/arm/abi-note.S -@@ -1,3 +1,5 @@ -+ .file "abi-note.S" -+ - /* Tag_ABI_align8_preserved: This code preserves 8-byte - alignment in any callee. */ - .eabi_attribute 25, 1 -diff --git a/sysdeps/arm/crti.S b/sysdeps/arm/crti.S -index 26dbba66a3..dd84ecd566 100644 ---- a/sysdeps/arm/crti.S -+++ b/sysdeps/arm/crti.S -@@ -57,6 +57,8 @@ - .hidden PREINIT_FUNCTION - #endif - -+ .file "crti.S" -+ - #if PREINIT_FUNCTION_WEAK - .p2align 2 - .type call_weak_fn, %function -diff --git a/sysdeps/arm/crtn.S b/sysdeps/arm/crtn.S -index 8f91c8d88b..a87fe49e07 100644 ---- a/sysdeps/arm/crtn.S -+++ b/sysdeps/arm/crtn.S -@@ -37,6 +37,8 @@ - #define NO_THUMB - #include - -+ .file "crtn.S" -+ - /* crtn.S puts function epilogues in the .init and .fini sections - corresponding to the prologues in crti.S. */ - -diff --git a/sysdeps/arm/dl-tlsdesc.S b/sysdeps/arm/dl-tlsdesc.S -index a929340b42..b724c9776d 100644 ---- a/sysdeps/arm/dl-tlsdesc.S -+++ b/sysdeps/arm/dl-tlsdesc.S -@@ -21,6 +21,8 @@ - #include - #include "tlsdesc.h" - -+ .file "dl-tlsdesc.S" -+ - .text - @ emit debug information with cfi - @ use arm-specific pseudos for unwinding itself -diff --git a/sysdeps/arm/dl-trampoline.S b/sysdeps/arm/dl-trampoline.S -index 325cfcd2ce..4bfdcbce51 100644 ---- a/sysdeps/arm/dl-trampoline.S -+++ b/sysdeps/arm/dl-trampoline.S -@@ -21,6 +21,8 @@ - #include - #include - -+ .file "dl-trampoline.S" -+ - .text - .globl _dl_runtime_resolve - .type _dl_runtime_resolve, #function -diff --git a/sysdeps/arm/start.S b/sysdeps/arm/start.S -index a05f8a4651..2f4374fcaa 100644 ---- a/sysdeps/arm/start.S -+++ b/sysdeps/arm/start.S -@@ -57,6 +57,8 @@ - NULL - */ - -+ .file "start.S" -+ - /* Tag_ABI_align8_preserved: This code preserves 8-byte - alignment in any callee. */ - .eabi_attribute 25, 1 -diff --git a/sysdeps/mips/start.S b/sysdeps/mips/start.S -index 8638e5b545..93f6564aec 100644 ---- a/sysdeps/mips/start.S -+++ b/sysdeps/mips/start.S -@@ -38,6 +38,8 @@ - #include - #include - -+ .file "start.S" -+ - #ifndef ENTRY_POINT - #error ENTRY_POINT needs to be defined for start.S on MIPS/ELF. - #endif -diff --git a/sysdeps/powerpc/powerpc32/dl-start.S b/sysdeps/powerpc/powerpc32/dl-start.S -index 99a10d643a..e47fc0d245 100644 ---- a/sysdeps/powerpc/powerpc32/dl-start.S -+++ b/sysdeps/powerpc/powerpc32/dl-start.S -@@ -18,6 +18,8 @@ - - #include - -+ .file "dl-start.S" -+ - /* Initial entry point code for the dynamic linker. - The C function `_dl_start' is the real entry point; - its return value is the user program's entry point. */ -diff --git a/sysdeps/powerpc/powerpc32/start.S b/sysdeps/powerpc/powerpc32/start.S -index 172fb5a56b..ef1471b861 100644 ---- a/sysdeps/powerpc/powerpc32/start.S -+++ b/sysdeps/powerpc/powerpc32/start.S -@@ -35,6 +35,8 @@ - - #include - -+ .file "start.S" -+ - /* We do not want .eh_frame info for crt1.o since crt1.o is linked - before crtbegin.o, the file defining __EH_FRAME_BEGIN__. */ - #undef cfi_startproc -diff --git a/sysdeps/powerpc/powerpc64/start.S b/sysdeps/powerpc/powerpc64/start.S -index 55fae68ad6..0cb608fe0f 100644 ---- a/sysdeps/powerpc/powerpc64/start.S -+++ b/sysdeps/powerpc/powerpc64/start.S -@@ -35,6 +35,8 @@ - - #include - -+ .file "start.S" -+ - /* We do not want .eh_frame info for crt1.o since crt1.o is linked - before crtbegin.o, the file defining __EH_FRAME_BEGIN__. */ - #undef cfi_startproc -diff --git a/sysdeps/unix/sysv/linux/aarch64/__read_tp.S b/sysdeps/unix/sysv/linux/aarch64/__read_tp.S -index 30a29b9fb0..07892b383f 100644 ---- a/sysdeps/unix/sysv/linux/aarch64/__read_tp.S -+++ b/sysdeps/unix/sysv/linux/aarch64/__read_tp.S -@@ -18,6 +18,8 @@ - - #include - -+ .file "__read_tp.S" -+ - .hidden __read_tp - ENTRY (__read_tp) - mrs x0, tpidr_el0 -diff --git a/sysdeps/unix/sysv/linux/arm/aeabi_read_tp.S b/sysdeps/unix/sysv/linux/arm/aeabi_read_tp.S -index f64c4ffe8a..2da315ab08 100644 ---- a/sysdeps/unix/sysv/linux/arm/aeabi_read_tp.S -+++ b/sysdeps/unix/sysv/linux/arm/aeabi_read_tp.S -@@ -39,6 +39,8 @@ - a normal function call) in a high page of memory; tail call to the - helper. */ - -+ .file "aeabi_read_tp.S" -+ - .hidden __aeabi_read_tp - ENTRY (__aeabi_read_tp) - #ifdef ARCH_HAS_HARD_TP -diff --git a/sysdeps/unix/sysv/linux/arm/libc-do-syscall.S b/sysdeps/unix/sysv/linux/arm/libc-do-syscall.S -index 0b6237ac55..8cda491c28 100644 ---- a/sysdeps/unix/sysv/linux/arm/libc-do-syscall.S -+++ b/sysdeps/unix/sysv/linux/arm/libc-do-syscall.S -@@ -27,6 +27,8 @@ - ARM unwind tables for register to register moves, the actual opcodes - are not defined. */ - -+ .file "libc-do-syscall.S" -+ - #if defined(__thumb__) - .thumb - .syntax unified -diff --git a/sysdeps/unix/sysv/linux/powerpc/dl-brk.S b/sysdeps/unix/sysv/linux/powerpc/dl-brk.S -index eeb96544e3..da182b28f8 100644 ---- a/sysdeps/unix/sysv/linux/powerpc/dl-brk.S -+++ b/sysdeps/unix/sysv/linux/powerpc/dl-brk.S -@@ -1 +1,3 @@ -+ .file "dl-brk.S" -+ - #include --- -2.20.1 - diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-core/glibc/glibc/0030-locale-prevent-maybe-uninitialized-errors-with-Os-BZ.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-core/glibc/glibc/0030-locale-prevent-maybe-uninitialized-errors-with-Os-BZ.patch deleted file mode 100644 index adc24240..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-core/glibc/glibc/0030-locale-prevent-maybe-uninitialized-errors-with-Os-BZ.patch +++ /dev/null @@ -1,56 +0,0 @@ -From 6ddab9c8692e6a777c2e2e7a6ca26a65df7d2c5d Mon Sep 17 00:00:00 2001 -From: Martin Jansa -Date: Mon, 17 Dec 2018 21:36:18 +0000 -Subject: [PATCH 30/30] locale: prevent maybe-uninitialized errors with -Os [BZ - #19444] - -Fixes following error when building for aarch64 with -Os: -| In file included from strcoll_l.c:43: -| strcoll_l.c: In function '__strcoll_l': -| ../locale/weight.h:31:26: error: 'seq2.back_us' may be used uninitialized in this function [-Werror=maybe-uninitialized] -| int_fast32_t i = table[*(*cpp)++]; -| ^~~~~~~~~ -| strcoll_l.c:304:18: note: 'seq2.back_us' was declared here -| coll_seq seq1, seq2; -| ^~~~ -| In file included from strcoll_l.c:43: -| ../locale/weight.h:31:26: error: 'seq1.back_us' may be used uninitialized in this function [-Werror=maybe-uninitialized] -| int_fast32_t i = table[*(*cpp)++]; -| ^~~~~~~~~ -| strcoll_l.c:304:12: note: 'seq1.back_us' was declared here -| coll_seq seq1, seq2; -| ^~~~ - - Partial fix for [BZ #19444] - * locale/weight.h: Fix build with -Os. - -Upstream-Status: Submitted [https://patchwork.ozlabs.org/patch/1014766] - -Signed-off-by: Martin Jansa -Signed-off-by: Khem Raj ---- - locale/weight.h | 7 +++++++ - 1 file changed, 7 insertions(+) - -diff --git a/locale/weight.h b/locale/weight.h -index 7ca81498b2..d608ca70bb 100644 ---- a/locale/weight.h -+++ b/locale/weight.h -@@ -28,7 +28,14 @@ findidx (const int32_t *table, - const unsigned char *extra, - const unsigned char **cpp, size_t len) - { -+ /* With GCC 8 when compiling with -Os the compiler warns that -+ seq1.back_us and seq2.back_us might be used uninitialized. -+ This uninitialized use is impossible for the same reason -+ as described in comments in locale/weightwc.h. */ -+ DIAG_PUSH_NEEDS_COMMENT; -+ DIAG_IGNORE_Os_NEEDS_COMMENT (8, "-Wmaybe-uninitialized"); - int_fast32_t i = table[*(*cpp)++]; -+ DIAG_POP_NEEDS_COMMENT; - const unsigned char *cp; - const unsigned char *usrc; - --- -2.20.1 - diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-core/glibc/glibc/CVE-2019-9169.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-core/glibc/glibc/CVE-2019-9169.patch deleted file mode 100644 index bc40361c..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-core/glibc/glibc/CVE-2019-9169.patch +++ /dev/null @@ -1,36 +0,0 @@ -CVE: CVE-2019-9169 -Upstream-Status: Backport -Signed-off-by: Ross Burton - -From 583dd860d5b833037175247230a328f0050dbfe9 Mon Sep 17 00:00:00 2001 -From: Paul Eggert -Date: Mon, 21 Jan 2019 11:08:13 -0800 -Subject: [PATCH] regex: fix read overrun [BZ #24114] - -Problem found by AddressSanitizer, reported by Hongxu Chen in: -https://debbugs.gnu.org/34140 -* posix/regexec.c (proceed_next_node): -Do not read past end of input buffer. ---- - posix/regexec.c | 6 ++++-- - 2 files changed, 13 insertions(+), 3 deletions(-) - -diff --git a/posix/regexec.c b/posix/regexec.c -index 91d5a79..084b122 100644 ---- a/posix/regexec.c -+++ b/posix/regexec.c -@@ -1293,8 +1293,10 @@ proceed_next_node (const re_match_context_t *mctx, Idx nregs, regmatch_t *regs, - else if (naccepted) - { - char *buf = (char *) re_string_get_buffer (&mctx->input); -- if (memcmp (buf + regs[subexp_idx].rm_so, buf + *pidx, -- naccepted) != 0) -+ if (mctx->input.valid_len - *pidx < naccepted -+ || (memcmp (buf + regs[subexp_idx].rm_so, buf + *pidx, -+ naccepted) -+ != 0)) - return -1; - } - } --- -2.9.3 diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-core/glibc/glibc/add-cross-localedef-hardlink.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-core/glibc/glibc/add-cross-localedef-hardlink.patch new file mode 100644 index 00000000..84711219 --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-core/glibc/glibc/add-cross-localedef-hardlink.patch @@ -0,0 +1,1115 @@ +--- + locale/programs/c.h | 407 ++++++++++++++++++++++ + locale/programs/cross-localedef-hardlink.c | 528 +++++++++++++++++++++++++++++ + locale/programs/xalloc.h | 129 +++++++ + localedef/Makefile.in | 8 + 4 files changed, 1071 insertions(+), 1 deletion(-) + +--- /dev/null ++++ b/locale/programs/cross-localedef-hardlink.c +@@ -0,0 +1,528 @@ ++/* ++ * hardlink - consolidate duplicate files via hardlinks ++ * ++ * Copyright (C) 2018 Red Hat, Inc. All rights reserved. ++ * Written by Jakub Jelinek ++ * ++ * Copyright (C) 2019 Karel Zak ++ * ++ * This program is free software; you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License as published by ++ * the Free Software Foundation; either version 2 of the License, or ++ * (at your option) any later version. ++ * ++ * This program is distributed in the hope that it would be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ * ++ * You should have received a copy of the GNU General Public License along ++ * with this program; if not, write to the Free Software Foundation, Inc., ++ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. ++ */ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#ifdef HAVE_PCRE ++# define PCRE2_CODE_UNIT_WIDTH 8 ++# include ++#endif ++ ++#include "c.h" ++#include "xalloc.h" ++#include "nls.h" ++#include "closestream.h" ++ ++#define NHASH (1<<17) /* Must be a power of 2! */ ++#define NBUF 64 ++ ++struct hardlink_file; ++ ++struct hardlink_hash { ++ struct hardlink_hash *next; ++ struct hardlink_file *chain; ++ off_t size; ++ time_t mtime; ++}; ++ ++struct hardlink_dir { ++ struct hardlink_dir *next; ++ char name[]; ++}; ++ ++struct hardlink_file { ++ struct hardlink_file *next; ++ ino_t ino; ++ dev_t dev; ++ unsigned int cksum; ++ char name[]; ++}; ++ ++struct hardlink_dynstr { ++ char *buf; ++ size_t alloc; ++}; ++ ++struct hardlink_ctl { ++ struct hardlink_dir *dirs; ++ struct hardlink_hash *hps[NHASH]; ++ char iobuf1[BUFSIZ]; ++ char iobuf2[BUFSIZ]; ++ /* summary counters */ ++ unsigned long long ndirs; ++ unsigned long long nobjects; ++ unsigned long long nregfiles; ++ unsigned long long ncomp; ++ unsigned long long nlinks; ++ unsigned long long nsaved; ++ /* current device */ ++ dev_t dev; ++ /* flags */ ++ unsigned int verbose; ++ unsigned int ++ no_link:1, ++ content_only:1, ++ force:1; ++}; ++/* ctl is in global scope due use in atexit() */ ++struct hardlink_ctl global_ctl; ++ ++__attribute__ ((always_inline)) ++static inline unsigned int hash(off_t size, time_t mtime) ++{ ++ return (size ^ mtime) & (NHASH - 1); ++} ++ ++__attribute__ ((always_inline)) ++static inline int stcmp(struct stat *st1, struct stat *st2, int content_scope) ++{ ++ if (content_scope) ++ return st1->st_size != st2->st_size; ++ ++ return st1->st_mode != st2->st_mode ++ || st1->st_uid != st2->st_uid ++ || st1->st_gid != st2->st_gid ++ || st1->st_size != st2->st_size ++ || st1->st_mtime != st2->st_mtime; ++} ++ ++static void print_summary(void) ++{ ++ struct hardlink_ctl const *const ctl = &global_ctl; ++ ++ if (!ctl->verbose) ++ return; ++ ++ if (ctl->verbose > 1 && ctl->nlinks) ++ fputc('\n', stdout); ++ ++ printf(_("Directories: %9lld\n"), ctl->ndirs); ++ printf(_("Objects: %9lld\n"), ctl->nobjects); ++ printf(_("Regular files: %9lld\n"), ctl->nregfiles); ++ printf(_("Comparisons: %9lld\n"), ctl->ncomp); ++ printf( "%s%9lld\n", (ctl->no_link ? ++ _("Would link: ") : ++ _("Linked: ")), ctl->nlinks); ++ printf( "%s %9lld\n", (ctl->no_link ? ++ _("Would save: ") : ++ _("Saved: ")), ctl->nsaved); ++} ++ ++static void __attribute__((__noreturn__)) usage(void) ++{ ++ fputs(USAGE_HEADER, stdout); ++ printf(_(" %s [options] directory...\n"), program_invocation_short_name); ++ ++ fputs(USAGE_SEPARATOR, stdout); ++ puts(_("Consolidate duplicate files using hardlinks.")); ++ ++ fputs(USAGE_OPTIONS, stdout); ++ puts(_(" -c, --content compare only contents, ignore permission, etc.")); ++ puts(_(" -n, --dry-run don't actually link anything")); ++ puts(_(" -v, --verbose print summary after hardlinking")); ++ puts(_(" -vv print every hardlinked file and summary")); ++ puts(_(" -f, --force force hardlinking across filesystems")); ++ puts(_(" -x, --exclude exclude files matching pattern")); ++ ++ fputs(USAGE_SEPARATOR, stdout); ++ printf(USAGE_HELP_OPTIONS(16)); /* char offset to align option descriptions */ ++ printf(USAGE_MAN_TAIL("hardlink(1)")); ++ exit(EXIT_SUCCESS); ++} ++ ++__attribute__ ((always_inline)) ++static inline size_t add2(size_t a, size_t b) ++{ ++ size_t sum = a + b; ++ ++ if (sum < a) ++ errx(EXIT_FAILURE, _("integer overflow")); ++ return sum; ++} ++ ++__attribute__ ((always_inline)) ++static inline size_t add3(size_t a, size_t b, size_t c) ++{ ++ return add2(add2(a, b), c); ++} ++ ++static void growstr(struct hardlink_dynstr *str, size_t newlen) ++{ ++ if (newlen < str->alloc) ++ return; ++ str->buf = xrealloc(str->buf, str->alloc = add2(newlen, 1)); ++} ++ ++static void process_path(struct hardlink_ctl *ctl, const char *name) ++{ ++ struct stat st, st2, st3; ++ const size_t namelen = strlen(name); ++ ++ ctl->nobjects++; ++ if (lstat(name, &st)) ++ return; ++ ++ if (st.st_dev != ctl->dev && !ctl->force) { ++ if (ctl->dev) ++ errx(EXIT_FAILURE, ++ _("%s is on different filesystem than the rest " ++ "(use -f option to override)."), name); ++ ctl->dev = st.st_dev; ++ } ++ if (S_ISDIR(st.st_mode)) { ++ struct hardlink_dir *dp = xmalloc(add3(sizeof(*dp), namelen, 1)); ++ memcpy(dp->name, name, namelen + 1); ++ dp->next = ctl->dirs; ++ ctl->dirs = dp; ++ ++ } else if (S_ISREG(st.st_mode)) { ++ int fd, i; ++ struct hardlink_file *fp, *fp2; ++ struct hardlink_hash *hp; ++ const char *n1, *n2; ++ unsigned int buf[NBUF]; ++ int cksumsize = sizeof(buf); ++ unsigned int cksum; ++ time_t mtime = ctl->content_only ? 0 : st.st_mtime; ++ unsigned int hsh = hash(st.st_size, mtime); ++ off_t fsize; ++ ++ ctl->nregfiles++; ++ if (ctl->verbose > 1) ++ printf("%s\n", name); ++ ++ fd = open(name, O_RDONLY); ++ if (fd < 0) ++ return; ++ ++ if ((size_t)st.st_size < sizeof(buf)) { ++ cksumsize = st.st_size; ++ memset(((char *)buf) + cksumsize, 0, ++ (sizeof(buf) - cksumsize) % sizeof(buf[0])); ++ } ++ if (read(fd, buf, cksumsize) != cksumsize) { ++ close(fd); ++ return; ++ } ++ cksumsize = (cksumsize + sizeof(buf[0]) - 1) / sizeof(buf[0]); ++ for (i = 0, cksum = 0; i < cksumsize; i++) { ++ if (cksum + buf[i] < cksum) ++ cksum += buf[i] + 1; ++ else ++ cksum += buf[i]; ++ } ++ for (hp = ctl->hps[hsh]; hp; hp = hp->next) { ++ if (hp->size == st.st_size && hp->mtime == mtime) ++ break; ++ } ++ if (!hp) { ++ hp = xmalloc(sizeof(*hp)); ++ hp->size = st.st_size; ++ hp->mtime = mtime; ++ hp->chain = NULL; ++ hp->next = ctl->hps[hsh]; ++ ctl->hps[hsh] = hp; ++ } ++ for (fp = hp->chain; fp; fp = fp->next) { ++ if (fp->cksum == cksum) ++ break; ++ } ++ for (fp2 = fp; fp2 && fp2->cksum == cksum; fp2 = fp2->next) { ++ if (fp2->ino == st.st_ino && fp2->dev == st.st_dev) { ++ close(fd); ++ return; ++ } ++ } ++ for (fp2 = fp; fp2 && fp2->cksum == cksum; fp2 = fp2->next) { ++ ++ if (!lstat(fp2->name, &st2) && S_ISREG(st2.st_mode) && ++ !stcmp(&st, &st2, ctl->content_only) && ++ st2.st_ino != st.st_ino && ++ st2.st_dev == st.st_dev) { ++ ++ int fd2 = open(fp2->name, O_RDONLY); ++ if (fd2 < 0) ++ continue; ++ ++ if (fstat(fd2, &st2) || !S_ISREG(st2.st_mode) ++ || st2.st_size == 0) { ++ close(fd2); ++ continue; ++ } ++ ctl->ncomp++; ++ lseek(fd, 0, SEEK_SET); ++ ++ for (fsize = st.st_size; fsize > 0; ++ fsize -= (off_t)sizeof(ctl->iobuf1)) { ++ ssize_t xsz; ++ ssize_t rsize = fsize > (ssize_t) sizeof(ctl->iobuf1) ? ++ (ssize_t) sizeof(ctl->iobuf1) : fsize; ++ ++ if ((xsz = read(fd, ctl->iobuf1, rsize)) != rsize) ++ warn(_("cannot read %s"), name); ++ else if ((xsz = read(fd2, ctl->iobuf2, rsize)) != rsize) ++ warn(_("cannot read %s"), fp2->name); ++ ++ if (xsz != rsize) { ++ close(fd); ++ close(fd2); ++ return; ++ } ++ if (memcmp(ctl->iobuf1, ctl->iobuf2, rsize)) ++ break; ++ } ++ close(fd2); ++ if (fsize > 0) ++ continue; ++ if (lstat(name, &st3)) { ++ warn(_("cannot stat %s"), name); ++ close(fd); ++ return; ++ } ++ st3.st_atime = st.st_atime; ++ if (stcmp(&st, &st3, 0)) { ++ warnx(_("file %s changed underneath us"), name); ++ close(fd); ++ return; ++ } ++ n1 = fp2->name; ++ n2 = name; ++ ++ if (!ctl->no_link) { ++ const char *suffix = ++ ".$$$___cleanit___$$$"; ++ const size_t suffixlen = strlen(suffix); ++ size_t n2len = strlen(n2); ++ struct hardlink_dynstr nam2 = { NULL, 0 }; ++ ++ growstr(&nam2, add2(n2len, suffixlen)); ++ memcpy(nam2.buf, n2, n2len); ++ memcpy(&nam2.buf[n2len], suffix, ++ suffixlen + 1); ++ /* First create a temporary link to n1 under a new name */ ++ if (link(n1, nam2.buf)) { ++ warn(_("failed to hardlink %s to %s (create temporary link as %s failed)"), ++ n1, n2, nam2.buf); ++ free(nam2.buf); ++ continue; ++ } ++ /* Then rename into place over the existing n2 */ ++ if (rename(nam2.buf, n2)) { ++ warn(_("failed to hardlink %s to %s (rename temporary link to %s failed)"), ++ n1, n2, n2); ++ /* Something went wrong, try to remove the now redundant temporary link */ ++ if (unlink(nam2.buf)) ++ warn(_("failed to remove temporary link %s"), nam2.buf); ++ free(nam2.buf); ++ continue; ++ } ++ free(nam2.buf); ++ } ++ ctl->nlinks++; ++ if (st3.st_nlink > 1) { ++ /* We actually did not save anything this time, since the link second argument ++ had some other links as well. */ ++ if (ctl->verbose > 1) ++ printf(_(" %s %s to %s\n"), ++ (ctl->no_link ? _("Would link") : _("Linked")), ++ n1, n2); ++ } else { ++ ctl->nsaved += ((st.st_size + 4095) / 4096) * 4096; ++ if (ctl->verbose > 1) ++ printf(_(" %s %s to %s, %s %jd\n"), ++ (ctl->no_link ? _("Would link") : _("Linked")), ++ n1, n2, ++ (ctl->no_link ? _("would save") : _("saved")), ++ (intmax_t)st.st_size); ++ } ++ close(fd); ++ return; ++ } ++ } ++ fp2 = xmalloc(add3(sizeof(*fp2), namelen, 1)); ++ close(fd); ++ fp2->ino = st.st_ino; ++ fp2->dev = st.st_dev; ++ fp2->cksum = cksum; ++ memcpy(fp2->name, name, namelen + 1); ++ ++ if (fp) { ++ fp2->next = fp->next; ++ fp->next = fp2; ++ } else { ++ fp2->next = hp->chain; ++ hp->chain = fp2; ++ } ++ return; ++ } ++} ++ ++int main(int argc, char **argv) ++{ ++ int ch; ++ int i; ++#ifdef HAVE_PCRE ++ int errornumber; ++ PCRE2_SIZE erroroffset; ++ pcre2_code *re = NULL; ++ PCRE2_SPTR exclude_pattern = NULL; ++ pcre2_match_data *match_data = NULL; ++#endif ++ struct hardlink_dynstr nam1 = { NULL, 0 }; ++ struct hardlink_ctl *ctl = &global_ctl; ++ ++ static const struct option longopts[] = { ++ { "content", no_argument, NULL, 'c' }, ++ { "dry-run", no_argument, NULL, 'n' }, ++ { "exclude", required_argument, NULL, 'x' }, ++ { "force", no_argument, NULL, 'f' }, ++ { "help", no_argument, NULL, 'h' }, ++ { "verbose", no_argument, NULL, 'v' }, ++ { "version", no_argument, NULL, 'V' }, ++ { NULL, 0, NULL, 0 }, ++ }; ++ ++ setlocale(LC_ALL, ""); ++ bindtextdomain(PACKAGE, LOCALEDIR); ++ textdomain(PACKAGE); ++ close_stdout_atexit(); ++ ++ while ((ch = getopt_long(argc, argv, "cnvfx:Vh", longopts, NULL)) != -1) { ++ switch (ch) { ++ case 'n': ++ ctl->no_link = 1; ++ break; ++ case 'v': ++ ctl->verbose++; ++ break; ++ case 'c': ++ ctl->content_only = 1; ++ break; ++ case 'f': ++ ctl->force = 1; ++ break; ++ case 'x': ++#ifdef HAVE_PCRE ++ exclude_pattern = (PCRE2_SPTR) optarg; ++#else ++ errx(EXIT_FAILURE, ++ _("option --exclude not supported (built without pcre2)")); ++#endif ++ break; ++ case 'V': ++ print_version(EXIT_SUCCESS); ++ case 'h': ++ usage(); ++ default: ++ errtryhelp(EXIT_FAILURE); ++ } ++ } ++ ++ if (optind == argc) { ++ warnx(_("no directory specified")); ++ errtryhelp(EXIT_FAILURE); ++ } ++ ++#ifdef HAVE_PCRE ++ if (exclude_pattern) { ++ re = pcre2_compile(exclude_pattern, /* the pattern */ ++ PCRE2_ZERO_TERMINATED, /* indicates pattern is zero-terminate */ ++ 0, /* default options */ ++ &errornumber, &erroroffset, NULL); /* use default compile context */ ++ if (!re) { ++ PCRE2_UCHAR buffer[256]; ++ pcre2_get_error_message(errornumber, buffer, ++ sizeof(buffer)); ++ errx(EXIT_FAILURE, _("pattern error at offset %d: %s"), ++ (int)erroroffset, buffer); ++ } ++ match_data = pcre2_match_data_create_from_pattern(re, NULL); ++ } ++#endif ++ atexit(print_summary); ++ ++ for (i = optind; i < argc; i++) ++ process_path(ctl, argv[i]); ++ ++ while (ctl->dirs) { ++ DIR *dh; ++ struct dirent *di; ++ struct hardlink_dir *dp = ctl->dirs; ++ size_t nam1baselen = strlen(dp->name); ++ ++ ctl->dirs = dp->next; ++ growstr(&nam1, add2(nam1baselen, 1)); ++ memcpy(nam1.buf, dp->name, nam1baselen); ++ free(dp); ++ nam1.buf[nam1baselen++] = '/'; ++ nam1.buf[nam1baselen] = 0; ++ dh = opendir(nam1.buf); ++ ++ if (dh == NULL) ++ continue; ++ ctl->ndirs++; ++ ++ while ((di = readdir(dh)) != NULL) { ++ if (!di->d_name[0]) ++ continue; ++ if (di->d_name[0] == '.') { ++ if (!di->d_name[1] || !strcmp(di->d_name, "..")) ++ continue; ++ } ++#ifdef HAVE_PCRE ++ if (re && pcre2_match(re, /* compiled regex */ ++ (PCRE2_SPTR) di->d_name, strlen(di->d_name), 0, /* start at offset 0 */ ++ 0, /* default options */ ++ match_data, /* block for storing the result */ ++ NULL) /* use default match context */ ++ >=0) { ++ if (ctl->verbose) { ++ nam1.buf[nam1baselen] = 0; ++ printf(_("Skipping %s%s\n"), nam1.buf, di->d_name); ++ } ++ continue; ++ } ++#endif ++ { ++ size_t subdirlen; ++ growstr(&nam1, ++ add2(nam1baselen, subdirlen = ++ strlen(di->d_name))); ++ memcpy(&nam1.buf[nam1baselen], di->d_name, ++ add2(subdirlen, 1)); ++ } ++ process_path(ctl, nam1.buf); ++ } ++ closedir(dh); ++ } ++ ++ return 0; ++} +--- a/localedef/Makefile.in ++++ b/localedef/Makefile.in +@@ -40,6 +40,8 @@ WARNFLAGS = -Wall -Wno-format + FULLCC = $(CC) $(CPPFLAGS) $(CFLAGS) \ + $(DEFINES) $(INCLUDES) $(WARNFLAGS) + ++CROSS_LOCALEDEF_HARDLINK_OBJS = cross-localedef-hardlink.o ++ + LOCALEDEF_OBJS = charmap.o charmap-dir.o ld-address.o ld-collate.o \ + ld-ctype.o ld-identification.o ld-measurement.o \ + ld-messages.o ld-monetary.o ld-name.o ld-numeric.o \ +@@ -54,11 +56,14 @@ LOCALEDEF_OBJS = charmap.o charmap-dir.o + asprintf.o getdelim.o localedef_extra.o \ + obstack_printf.o vasprintf.o + +-all: localedef$(EXEEXT) ++all: localedef$(EXEEXT) cross-localedef-hardlink$(EXEEXT) + + localedef$(EXEEXT): $(LOCALEDEF_OBJS) + $(CC) -o $@ $(LOCALEDEF_OBJS) $(LIBS) + ++cross-localedef-hardlink$(EXEEXT): $(CROSS_LOCALEDEF_HARDLINK_OBJS) ++ $(CC) -o $@ $(CROSS_LOCALEDEF_HARDLINK_OBJS) $(LIBS) ++ + clean: + rm -f locale$(EXEEXT) $(LOCALEDEF_OBJS) + +@@ -77,6 +82,7 @@ clean: + %.o: $(srcdir)/%.c + $(FULLCC) -c -o $@ $< + ++cross-localedef-hardlink.o: glibc/locale/programs/cross-localedef-hardlink.c + charmap.o: glibc/locale/programs/charmap.c + charmap-dir.o: glibc/locale/programs/charmap-dir.c + ld-address.o: glibc/locale/programs/ld-address.c +--- /dev/null ++++ b/locale/programs/c.h +@@ -0,0 +1,407 @@ ++/* ++ * Fundamental C definitions. ++ */ ++ ++#ifndef UTIL_LINUX_C_H ++#define UTIL_LINUX_C_H ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#include ++ ++#ifdef HAVE_ERR_H ++# include ++#endif ++ ++#ifdef HAVE_SYS_SYSMACROS_H ++# include /* for major, minor */ ++#endif ++ ++#ifndef LOGIN_NAME_MAX ++# define LOGIN_NAME_MAX 256 ++#endif ++ ++#ifndef NAME_MAX ++# define NAME_MAX PATH_MAX ++#endif ++ ++/* ++ * __GNUC_PREREQ is deprecated in favour of __has_attribute() and ++ * __has_feature(). The __has macros are supported by clang and gcc>=5. ++ */ ++#ifndef __GNUC_PREREQ ++# if defined __GNUC__ && defined __GNUC_MINOR__ ++# define __GNUC_PREREQ(maj, min) \ ++ ((__GNUC__ << 16) + __GNUC_MINOR__ >= ((maj) << 16) + (min)) ++# else ++# define __GNUC_PREREQ(maj, min) 0 ++# endif ++#endif ++ ++#ifdef __GNUC__ ++ ++/* &a[0] degrades to a pointer: a different type from an array */ ++# define __must_be_array(a) \ ++ UL_BUILD_BUG_ON_ZERO(__builtin_types_compatible_p(__typeof__(a), __typeof__(&a[0]))) ++ ++# define ignore_result(x) __extension__ ({ \ ++ __typeof__(x) __dummy __attribute__((__unused__)) = (x); (void) __dummy; \ ++}) ++ ++#else /* !__GNUC__ */ ++# define __must_be_array(a) 0 ++# define __attribute__(_arg_) ++# define ignore_result(x) ((void) (x)) ++#endif /* !__GNUC__ */ ++ ++/* ++ * It evaluates to 1 if the attribute/feature is supported by the current ++ * compilation targed. Fallback for old compilers. ++ */ ++#ifndef __has_attribute ++ #define __has_attribute(x) 0 ++#endif ++ ++#ifndef __has_feature ++ #define __has_feature(x) 0 ++#endif ++ ++/* ++ * Function attributes ++ */ ++#ifndef __ul_alloc_size ++# if (__has_attribute(alloc_size) && __has_attribute(warn_unused_result)) || __GNUC_PREREQ (4, 3) ++# define __ul_alloc_size(s) __attribute__((alloc_size(s), warn_unused_result)) ++# else ++# define __ul_alloc_size(s) ++# endif ++#endif ++ ++#ifndef __ul_calloc_size ++# if (__has_attribute(alloc_size) && __has_attribute(warn_unused_result)) || __GNUC_PREREQ (4, 3) ++# define __ul_calloc_size(n, s) __attribute__((alloc_size(n, s), warn_unused_result)) ++# else ++# define __ul_calloc_size(n, s) ++# endif ++#endif ++ ++#if __has_attribute(returns_nonnull) || __GNUC_PREREQ (4, 9) ++# define __ul_returns_nonnull __attribute__((returns_nonnull)) ++#else ++# define __ul_returns_nonnull ++#endif ++ ++/* ++ * Force a compilation error if condition is true, but also produce a ++ * result (of value 0 and type size_t), so the expression can be used ++ * e.g. in a structure initializer (or wherever else comma expressions ++ * aren't permitted). ++ */ ++#define UL_BUILD_BUG_ON_ZERO(e) __extension__ (sizeof(struct { int:-!!(e); })) ++#define BUILD_BUG_ON_NULL(e) ((void *)sizeof(struct { int:-!!(e); })) ++ ++#ifndef ARRAY_SIZE ++# define ARRAY_SIZE(arr) (sizeof(arr) / sizeof((arr)[0]) + __must_be_array(arr)) ++#endif ++ ++#ifndef PATH_MAX ++# define PATH_MAX 4096 ++#endif ++ ++#ifndef TRUE ++# define TRUE 1 ++#endif ++ ++#ifndef FALSE ++# define FALSE 0 ++#endif ++ ++#ifndef min ++# define min(x, y) __extension__ ({ \ ++ __typeof__(x) _min1 = (x); \ ++ __typeof__(y) _min2 = (y); \ ++ (void) (&_min1 == &_min2); \ ++ _min1 < _min2 ? _min1 : _min2; }) ++#endif ++ ++#ifndef max ++# define max(x, y) __extension__ ({ \ ++ __typeof__(x) _max1 = (x); \ ++ __typeof__(y) _max2 = (y); \ ++ (void) (&_max1 == &_max2); \ ++ _max1 > _max2 ? _max1 : _max2; }) ++#endif ++ ++#ifndef cmp_numbers ++# define cmp_numbers(x, y) __extension__ ({ \ ++ __typeof__(x) _a = (x); \ ++ __typeof__(y) _b = (y); \ ++ (void) (&_a == &_b); \ ++ _a == _b ? 0 : _a > _b ? 1 : -1; }) ++#endif ++ ++#ifndef offsetof ++#define offsetof(TYPE, MEMBER) ((size_t) &((TYPE *)0)->MEMBER) ++#endif ++ ++/* ++ * container_of - cast a member of a structure out to the containing structure ++ * @ptr: the pointer to the member. ++ * @type: the type of the container struct this is embedded in. ++ * @member: the name of the member within the struct. ++ */ ++#ifndef container_of ++#define container_of(ptr, type, member) __extension__ ({ \ ++ const __typeof__( ((type *)0)->member ) *__mptr = (ptr); \ ++ (type *)( (char *)__mptr - offsetof(type,member) );}) ++#endif ++ ++#ifndef HAVE_PROGRAM_INVOCATION_SHORT_NAME ++# ifdef HAVE___PROGNAME ++extern char *__progname; ++# define program_invocation_short_name __progname ++# else ++# ifdef HAVE_GETEXECNAME ++# define program_invocation_short_name \ ++ prog_inv_sh_nm_from_file(getexecname(), 0) ++# else ++# define program_invocation_short_name \ ++ prog_inv_sh_nm_from_file(__FILE__, 1) ++# endif ++static char prog_inv_sh_nm_buf[256]; ++static inline char * ++prog_inv_sh_nm_from_file(char *f, char stripext) ++{ ++ char *t; ++ ++ if ((t = strrchr(f, '/')) != NULL) ++ t++; ++ else ++ t = f; ++ ++ strncpy(prog_inv_sh_nm_buf, t, sizeof(prog_inv_sh_nm_buf) - 1); ++ prog_inv_sh_nm_buf[sizeof(prog_inv_sh_nm_buf) - 1] = '\0'; ++ ++ if (stripext && (t = strrchr(prog_inv_sh_nm_buf, '.')) != NULL) ++ *t = '\0'; ++ ++ return prog_inv_sh_nm_buf; ++} ++# endif ++#endif ++ ++ ++#ifndef HAVE_ERR_H ++static inline void ++errmsg(char doexit, int excode, char adderr, const char *fmt, ...) ++{ ++ fprintf(stderr, "%s: ", program_invocation_short_name); ++ if (fmt != NULL) { ++ va_list argp; ++ va_start(argp, fmt); ++ vfprintf(stderr, fmt, argp); ++ va_end(argp); ++ if (adderr) ++ fprintf(stderr, ": "); ++ } ++ if (adderr) ++ fprintf(stderr, "%m"); ++ fprintf(stderr, "\n"); ++ if (doexit) ++ exit(excode); ++} ++ ++#ifndef HAVE_ERR ++# define err(E, FMT...) errmsg(1, E, 1, FMT) ++#endif ++ ++#ifndef HAVE_ERRX ++# define errx(E, FMT...) errmsg(1, E, 0, FMT) ++#endif ++ ++#ifndef HAVE_WARN ++# define warn(FMT...) errmsg(0, 0, 1, FMT) ++#endif ++ ++#ifndef HAVE_WARNX ++# define warnx(FMT...) errmsg(0, 0, 0, FMT) ++#endif ++#endif /* !HAVE_ERR_H */ ++ ++ ++/* Don't use inline function to avoid '#include "nls.h"' in c.h ++ */ ++#define errtryhelp(eval) __extension__ ({ \ ++ fprintf(stderr, _("Try '%s --help' for more information.\n"), \ ++ program_invocation_short_name); \ ++ exit(eval); \ ++}) ++ ++/* After failed execvp() */ ++#define EX_EXEC_FAILED 126 /* Program located, but not usable. */ ++#define EX_EXEC_ENOENT 127 /* Could not find program to exec. */ ++#define errexec(name) err(errno == ENOENT ? EX_EXEC_ENOENT : EX_EXEC_FAILED, \ ++ _("failed to execute %s"), name) ++ ++ ++static inline __attribute__((const)) int is_power_of_2(unsigned long num) ++{ ++ return (num != 0 && ((num & (num - 1)) == 0)); ++} ++ ++#ifndef HAVE_LOFF_T ++typedef int64_t loff_t; ++#endif ++ ++#if !defined(HAVE_DIRFD) && (!defined(HAVE_DECL_DIRFD) || HAVE_DECL_DIRFD == 0) && defined(HAVE_DIR_DD_FD) ++#include ++#include ++static inline int dirfd(DIR *d) ++{ ++ return d->dd_fd; ++} ++#endif ++ ++/* ++ * Fallback defines for old versions of glibc ++ */ ++#include ++ ++#ifdef O_CLOEXEC ++#define UL_CLOEXECSTR "e" ++#else ++#define UL_CLOEXECSTR "" ++#endif ++ ++#ifndef O_CLOEXEC ++#define O_CLOEXEC 0 ++#endif ++ ++#ifdef __FreeBSD_kernel__ ++#ifndef F_DUPFD_CLOEXEC ++#define F_DUPFD_CLOEXEC 17 /* Like F_DUPFD, but FD_CLOEXEC is set */ ++#endif ++#endif ++ ++ ++#ifndef AI_ADDRCONFIG ++#define AI_ADDRCONFIG 0x0020 ++#endif ++ ++#ifndef IUTF8 ++#define IUTF8 0040000 ++#endif ++ ++/* ++ * MAXHOSTNAMELEN replacement ++ */ ++static inline size_t get_hostname_max(void) ++{ ++ long len = sysconf(_SC_HOST_NAME_MAX); ++ ++ if (0 < len) ++ return len; ++ ++#ifdef MAXHOSTNAMELEN ++ return MAXHOSTNAMELEN; ++#elif HOST_NAME_MAX ++ return HOST_NAME_MAX; ++#endif ++ return 64; ++} ++ ++ ++/* ++ * Constant strings for usage() functions. For more info see ++ * Documentation/{howto-usage-function.txt,boilerplate.c} ++ */ ++#define USAGE_HEADER ("\nUsage:\n") ++#define USAGE_OPTIONS ("\nOptions:\n") ++#define USAGE_FUNCTIONS ("\nFunctions:\n") ++#define USAGE_COMMANDS ("\nCommands:\n") ++#define USAGE_COLUMNS ("\nAvailable output columns:\n") ++#define USAGE_SEPARATOR "\n" ++ ++#define USAGE_OPTSTR_HELP ("display this help") ++#define USAGE_OPTSTR_VERSION ("display version") ++ ++#define USAGE_HELP_OPTIONS(marg_dsc) \ ++ "%-" #marg_dsc "s%s\n" \ ++ "%-" #marg_dsc "s%s\n" \ ++ , " -h, --help", USAGE_OPTSTR_HELP \ ++ , " -V, --version", USAGE_OPTSTR_VERSION ++ ++#define USAGE_MAN_TAIL(_man) ("\nFor more details see %s.\n"), _man ++ ++#define UTIL_LINUX_VERSION ("%s from %s\n"), program_invocation_short_name, PACKAGE_STRING ++ ++#define print_version(eval) __extension__ ({ \ ++ printf(UTIL_LINUX_VERSION); \ ++ exit(eval); \ ++}) ++ ++/* ++ * scanf modifiers for "strings allocation" ++ */ ++#ifdef HAVE_SCANF_MS_MODIFIER ++#define UL_SCNsA "%ms" ++#elif defined(HAVE_SCANF_AS_MODIFIER) ++#define UL_SCNsA "%as" ++#endif ++ ++/* ++ * seek stuff ++ */ ++#ifndef SEEK_DATA ++# define SEEK_DATA 3 ++#endif ++#ifndef SEEK_HOLE ++# define SEEK_HOLE 4 ++#endif ++ ++ ++/* ++ * Macros to convert #define'itions to strings, for example ++ * #define XYXXY 42 ++ * printf ("%s=%s\n", stringify(XYXXY), stringify_value(XYXXY)); ++ */ ++#define stringify_value(s) stringify(s) ++#define stringify(s) #s ++ ++/* ++ * UL_ASAN_BLACKLIST is a macro to tell AddressSanitizer (a compile-time ++ * instrumentation shipped with Clang and GCC) to not instrument the ++ * annotated function. Furthermore, it will prevent the compiler from ++ * inlining the function because inlining currently breaks the blacklisting ++ * mechanism of AddressSanitizer. ++ */ ++#if __has_feature(address_sanitizer) && __has_attribute(no_sanitize_memory) && __has_attribute(no_sanitize_address) ++# define UL_ASAN_BLACKLIST __attribute__((noinline)) __attribute__((no_sanitize_memory)) __attribute__((no_sanitize_address)) ++#else ++# define UL_ASAN_BLACKLIST /* nothing */ ++#endif ++ ++/* ++ * Note that sysconf(_SC_GETPW_R_SIZE_MAX) returns *initial* suggested size for ++ * pwd buffer and in some cases it is not large enough. See POSIX and ++ * getpwnam_r man page for more details. ++ */ ++#define UL_GETPW_BUFSIZ (16 * 1024) ++ ++/* ++ * Darwin or other BSDs may only have MAP_ANON. To get it on Darwin we must ++ * define _DARWIN_C_SOURCE before including sys/mman.h. We do this in config.h. ++ */ ++#if !defined MAP_ANONYMOUS && defined MAP_ANON ++# define MAP_ANONYMOUS (MAP_ANON) ++#endif ++ ++#endif /* UTIL_LINUX_C_H */ +--- /dev/null ++++ b/locale/programs/xalloc.h +@@ -0,0 +1,129 @@ ++/* ++ * Copyright (C) 2010 Davidlohr Bueso ++ * ++ * This file may be redistributed under the terms of the ++ * GNU Lesser General Public License. ++ * ++ * General memory allocation wrappers for malloc, realloc, calloc and strdup ++ */ ++ ++#ifndef UTIL_LINUX_XALLOC_H ++#define UTIL_LINUX_XALLOC_H ++ ++#include ++#include ++ ++#include "c.h" ++ ++#ifndef XALLOC_EXIT_CODE ++# define XALLOC_EXIT_CODE EXIT_FAILURE ++#endif ++ ++static inline void __attribute__((__noreturn__)) ++__err_oom(const char *file, unsigned int line) ++{ ++ err(XALLOC_EXIT_CODE, "%s: %u: cannot allocate memory", file, line); ++} ++ ++#define err_oom() __err_oom(__FILE__, __LINE__) ++ ++static inline __ul_alloc_size(1) __ul_returns_nonnull ++void *xmalloc(const size_t size) ++{ ++ void *ret = malloc(size); ++ ++ if (!ret && size) ++ err(XALLOC_EXIT_CODE, "cannot allocate %zu bytes", size); ++ return ret; ++} ++ ++static inline __ul_alloc_size(2) __ul_returns_nonnull ++void *xrealloc(void *ptr, const size_t size) ++{ ++ void *ret = realloc(ptr, size); ++ ++ if (!ret && size) ++ err(XALLOC_EXIT_CODE, "cannot allocate %zu bytes", size); ++ return ret; ++} ++ ++static inline __ul_calloc_size(1, 2) __ul_returns_nonnull ++void *xcalloc(const size_t nelems, const size_t size) ++{ ++ void *ret = calloc(nelems, size); ++ ++ if (!ret && size && nelems) ++ err(XALLOC_EXIT_CODE, "cannot allocate %zu bytes", size); ++ return ret; ++} ++ ++static inline char __attribute__((warn_unused_result)) __ul_returns_nonnull ++*xstrdup(const char *str) ++{ ++ char *ret; ++ ++ if (!str) ++ return NULL; ++ ++ ret = strdup(str); ++ ++ if (!ret) ++ err(XALLOC_EXIT_CODE, "cannot duplicate string"); ++ return ret; ++} ++ ++static inline char * __attribute__((warn_unused_result)) __ul_returns_nonnull ++xstrndup(const char *str, size_t size) ++{ ++ char *ret; ++ ++ if (!str) ++ return NULL; ++ ++ ret = strndup(str, size); ++ ++ if (!ret) ++ err(XALLOC_EXIT_CODE, "cannot duplicate string"); ++ return ret; ++} ++ ++ ++static inline int __attribute__ ((__format__(printf, 2, 3))) ++ xasprintf(char **strp, const char *fmt, ...) ++{ ++ int ret; ++ va_list args; ++ va_start(args, fmt); ++ ret = vasprintf(&(*strp), fmt, args); ++ va_end(args); ++ if (ret < 0) ++ err(XALLOC_EXIT_CODE, "cannot allocate string"); ++ return ret; ++} ++ ++static inline int __attribute__ ((__format__(printf, 2, 0))) ++xvasprintf(char **strp, const char *fmt, va_list ap) ++{ ++ int ret = vasprintf(&(*strp), fmt, ap); ++ if (ret < 0) ++ err(XALLOC_EXIT_CODE, "cannot allocate string"); ++ return ret; ++} ++ ++ ++static inline char * __attribute__((warn_unused_result)) xgethostname(void) ++{ ++ char *name; ++ size_t sz = get_hostname_max() + 1; ++ ++ name = xmalloc(sizeof(char) * sz); ++ ++ if (gethostname(name, sz) != 0) { ++ free(name); ++ return NULL; ++ } ++ name[sz - 1] = '\0'; ++ return name; ++} ++ ++#endif diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-core/glibc/glibc/allow-compile-separate-from-util-linux-hardlink.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-core/glibc/glibc/allow-compile-separate-from-util-linux-hardlink.patch new file mode 100644 index 00000000..1148ebfc --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-core/glibc/glibc/allow-compile-separate-from-util-linux-hardlink.patch @@ -0,0 +1,226 @@ +--- + locale/programs/c.h | 2 + locale/programs/cross-localedef-hardlink.c | 79 +++++++++++++---------------- + 2 files changed, 39 insertions(+), 42 deletions(-) + +--- a/locale/programs/cross-localedef-hardlink.c ++++ b/locale/programs/cross-localedef-hardlink.c +@@ -20,6 +20,8 @@ + * with this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + */ ++ ++#undef HAVE_PCRE + #include + #include + #include +@@ -38,8 +40,8 @@ + + #include "c.h" + #include "xalloc.h" +-#include "nls.h" +-#include "closestream.h" ++//#include "nls.h" ++//#include "closestream.h" + + #define NHASH (1<<17) /* Must be a power of 2! */ + #define NBUF 64 +@@ -124,33 +126,33 @@ static void print_summary(void) + if (ctl->verbose > 1 && ctl->nlinks) + fputc('\n', stdout); + +- printf(_("Directories: %9lld\n"), ctl->ndirs); +- printf(_("Objects: %9lld\n"), ctl->nobjects); +- printf(_("Regular files: %9lld\n"), ctl->nregfiles); +- printf(_("Comparisons: %9lld\n"), ctl->ncomp); ++ printf(("Directories: %9lld\n"), ctl->ndirs); ++ printf(("Objects: %9lld\n"), ctl->nobjects); ++ printf(("Regular files: %9lld\n"), ctl->nregfiles); ++ printf(("Comparisons: %9lld\n"), ctl->ncomp); + printf( "%s%9lld\n", (ctl->no_link ? +- _("Would link: ") : +- _("Linked: ")), ctl->nlinks); ++ ("Would link: ") : ++ ("Linked: ")), ctl->nlinks); + printf( "%s %9lld\n", (ctl->no_link ? +- _("Would save: ") : +- _("Saved: ")), ctl->nsaved); ++ ("Would save: ") : ++ ("Saved: ")), ctl->nsaved); + } + + static void __attribute__((__noreturn__)) usage(void) + { + fputs(USAGE_HEADER, stdout); +- printf(_(" %s [options] directory...\n"), program_invocation_short_name); ++ printf((" %s [options] directory...\n"), program_invocation_short_name); + + fputs(USAGE_SEPARATOR, stdout); +- puts(_("Consolidate duplicate files using hardlinks.")); ++ puts(("Consolidate duplicate files using hardlinks.")); + + fputs(USAGE_OPTIONS, stdout); +- puts(_(" -c, --content compare only contents, ignore permission, etc.")); +- puts(_(" -n, --dry-run don't actually link anything")); +- puts(_(" -v, --verbose print summary after hardlinking")); +- puts(_(" -vv print every hardlinked file and summary")); +- puts(_(" -f, --force force hardlinking across filesystems")); +- puts(_(" -x, --exclude exclude files matching pattern")); ++ puts((" -c, --content compare only contents, ignore permission, etc.")); ++ puts((" -n, --dry-run don't actually link anything")); ++ puts((" -v, --verbose print summary after hardlinking")); ++ puts((" -vv print every hardlinked file and summary")); ++ puts((" -f, --force force hardlinking across filesystems")); ++ puts((" -x, --exclude exclude files matching pattern")); + + fputs(USAGE_SEPARATOR, stdout); + printf(USAGE_HELP_OPTIONS(16)); /* char offset to align option descriptions */ +@@ -164,7 +166,7 @@ static inline size_t add2(size_t a, size + size_t sum = a + b; + + if (sum < a) +- errx(EXIT_FAILURE, _("integer overflow")); ++ errx(EXIT_FAILURE, ("integer overflow")); + return sum; + } + +@@ -193,7 +195,7 @@ static void process_path(struct hardlink + if (st.st_dev != ctl->dev && !ctl->force) { + if (ctl->dev) + errx(EXIT_FAILURE, +- _("%s is on different filesystem than the rest " ++ ("%s is on different filesystem than the rest " + "(use -f option to override)."), name); + ctl->dev = st.st_dev; + } +@@ -287,9 +289,9 @@ static void process_path(struct hardlink + (ssize_t) sizeof(ctl->iobuf1) : fsize; + + if ((xsz = read(fd, ctl->iobuf1, rsize)) != rsize) +- warn(_("cannot read %s"), name); ++ warn(("cannot read %s"), name); + else if ((xsz = read(fd2, ctl->iobuf2, rsize)) != rsize) +- warn(_("cannot read %s"), fp2->name); ++ warn(("cannot read %s"), fp2->name); + + if (xsz != rsize) { + close(fd); +@@ -303,13 +305,13 @@ static void process_path(struct hardlink + if (fsize > 0) + continue; + if (lstat(name, &st3)) { +- warn(_("cannot stat %s"), name); ++ warn(("cannot stat %s"), name); + close(fd); + return; + } + st3.st_atime = st.st_atime; + if (stcmp(&st, &st3, 0)) { +- warnx(_("file %s changed underneath us"), name); ++ warnx(("file %s changed underneath us"), name); + close(fd); + return; + } +@@ -329,18 +331,18 @@ static void process_path(struct hardlink + suffixlen + 1); + /* First create a temporary link to n1 under a new name */ + if (link(n1, nam2.buf)) { +- warn(_("failed to hardlink %s to %s (create temporary link as %s failed)"), ++ warn(("failed to hardlink %s to %s (create temporary link as %s failed)"), + n1, n2, nam2.buf); + free(nam2.buf); + continue; + } + /* Then rename into place over the existing n2 */ + if (rename(nam2.buf, n2)) { +- warn(_("failed to hardlink %s to %s (rename temporary link to %s failed)"), ++ warn(("failed to hardlink %s to %s (rename temporary link to %s failed)"), + n1, n2, n2); + /* Something went wrong, try to remove the now redundant temporary link */ + if (unlink(nam2.buf)) +- warn(_("failed to remove temporary link %s"), nam2.buf); ++ warn(("failed to remove temporary link %s"), nam2.buf); + free(nam2.buf); + continue; + } +@@ -351,16 +353,16 @@ static void process_path(struct hardlink + /* We actually did not save anything this time, since the link second argument + had some other links as well. */ + if (ctl->verbose > 1) +- printf(_(" %s %s to %s\n"), +- (ctl->no_link ? _("Would link") : _("Linked")), ++ printf((" %s %s to %s\n"), ++ (ctl->no_link ? ("Would link") : ("Linked")), + n1, n2); + } else { + ctl->nsaved += ((st.st_size + 4095) / 4096) * 4096; + if (ctl->verbose > 1) +- printf(_(" %s %s to %s, %s %jd\n"), +- (ctl->no_link ? _("Would link") : _("Linked")), ++ printf((" %s %s to %s, %s %jd\n"), ++ (ctl->no_link ? ("Would link") : ("Linked")), + n1, n2, +- (ctl->no_link ? _("would save") : _("saved")), ++ (ctl->no_link ? ("would save") : ("saved")), + (intmax_t)st.st_size); + } + close(fd); +@@ -410,11 +412,6 @@ int main(int argc, char **argv) + { NULL, 0, NULL, 0 }, + }; + +- setlocale(LC_ALL, ""); +- bindtextdomain(PACKAGE, LOCALEDIR); +- textdomain(PACKAGE); +- close_stdout_atexit(); +- + while ((ch = getopt_long(argc, argv, "cnvfx:Vh", longopts, NULL)) != -1) { + switch (ch) { + case 'n': +@@ -434,7 +431,7 @@ int main(int argc, char **argv) + exclude_pattern = (PCRE2_SPTR) optarg; + #else + errx(EXIT_FAILURE, +- _("option --exclude not supported (built without pcre2)")); ++ ("option --exclude not supported (built without pcre2)")); + #endif + break; + case 'V': +@@ -447,7 +444,7 @@ int main(int argc, char **argv) + } + + if (optind == argc) { +- warnx(_("no directory specified")); ++ warnx(("no directory specified")); + errtryhelp(EXIT_FAILURE); + } + +@@ -461,7 +458,7 @@ int main(int argc, char **argv) + PCRE2_UCHAR buffer[256]; + pcre2_get_error_message(errornumber, buffer, + sizeof(buffer)); +- errx(EXIT_FAILURE, _("pattern error at offset %d: %s"), ++ errx(EXIT_FAILURE, ("pattern error at offset %d: %s"), + (int)erroroffset, buffer); + } + match_data = pcre2_match_data_create_from_pattern(re, NULL); +@@ -506,7 +503,7 @@ int main(int argc, char **argv) + >=0) { + if (ctl->verbose) { + nam1.buf[nam1baselen] = 0; +- printf(_("Skipping %s%s\n"), nam1.buf, di->d_name); ++ printf(("Skipping %s%s\n"), nam1.buf, di->d_name); + } + continue; + } +--- a/locale/programs/c.h ++++ b/locale/programs/c.h +@@ -240,7 +240,7 @@ errmsg(char doexit, int excode, char add + /* Don't use inline function to avoid '#include "nls.h"' in c.h + */ + #define errtryhelp(eval) __extension__ ({ \ +- fprintf(stderr, _("Try '%s --help' for more information.\n"), \ ++ fprintf(stderr, ("Try '%s --help' for more information.\n"), \ + program_invocation_short_name); \ + exit(eval); \ + }) diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-core/glibc/glibc/check-test-wrapper b/Contrib-Inspur/openbmc/poky/meta/recipes-core/glibc/glibc/check-test-wrapper new file mode 100644 index 00000000..f8e04e02 --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-core/glibc/glibc/check-test-wrapper @@ -0,0 +1,71 @@ +#!/usr/bin/env python3 +import sys +import os +import subprocess + +env = os.environ.copy() +args = sys.argv[1:] +targettype = args.pop(0) + +if targettype == "user": + qemuargs = os.environ.get("QEMU_OPTIONS", "").split() + if not os.path.exists(qemuargs[0]): + # ensure qemu args has a valid absolute path + for i in os.environ.get("PATH", "").split(":"): + if os.path.exists(os.path.join(i, qemuargs[0])): + qemuargs[0] = os.path.join(i, qemuargs[0]) + break + sysroot = os.environ.get("QEMU_SYSROOT", None) + if not sysroot: + sys.exit(-1) + libpaths = [sysroot + "/usr/lib", sysroot + "/lib"] + + if args[0] == "env": + args.pop(0) + if len(args) == 0: + args = ["env"] + else: + # process options + while args[0].startswith("-"): + opt = args.pop(0).lstrip("-") + if "i" in opt: + env.clear() + # process environment vars + while "=" in args[0]: + key, val = args.pop(0).split("=", 1) + if key == "LD_LIBRARY_PATH": + libpaths += val.split(":") + else: + env[key] = val + if args[0] == "cp": + # ignore copies, the filesystem is the same + sys.exit(0) + + qemuargs += ["-L", sysroot] + qemuargs += ["-E", "LD_LIBRARY_PATH={}".format(":".join(libpaths))] + command = qemuargs + args +elif targettype == "ssh": + host = os.environ.get("SSH_HOST", None) + user = os.environ.get("SSH_HOST_USER", None) + port = os.environ.get("SSH_HOST_PORT", None) + + command = ["ssh", "-o", "UserKnownHostsFile=/dev/null", "-o", "StrictHostKeyChecking=no"] + if port: + command += ["-p", str(port)] + if not host: + sys.exit(-1) + command += ["{}@{}".format(user, host) if user else host] + + # wrap and replace quotes for correct transformation on ssh + wrapped = " ".join(["'{0}'".format(i.replace("'", r"'\''")) for i in ["cd", os.getcwd()]]) + "; " + wrapped += " ".join(["'{0}'".format(i.replace("'", r"'\''")) for i in args]) + command += ["sh", "-c", "\"{}\"".format(wrapped)] +else: + sys.exit(-1) + +try: + r = subprocess.run(command, timeout = 1800, env = env) + sys.exit(r.returncode) +except subprocess.TimeoutExpired: + sys.exit(-1) + diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-core/glibc/glibc_2.29.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-core/glibc/glibc_2.29.bb deleted file mode 100644 index 073d1533..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-core/glibc/glibc_2.29.bb +++ /dev/null @@ -1,129 +0,0 @@ -require glibc.inc - -LIC_FILES_CHKSUM = "file://LICENSES;md5=cfc0ed77a9f62fa62eded042ebe31d72 \ - file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \ - file://posix/rxspencer/COPYRIGHT;md5=dc5485bb394a13b2332ec1c785f5d83a \ - file://COPYING.LIB;md5=4fbd65380cdd255951079008b364516c" - -DEPENDS += "gperf-native bison-native make-native" - -PV = "2.29" - -SRCREV ?= "86013ef5cea322b8f4b9c22f230c22cce369e947" - -SRCBRANCH ?= "release/${PV}/master" - -GLIBC_GIT_URI ?= "git://sourceware.org/git/glibc.git" -UPSTREAM_CHECK_GITTAGREGEX = "(?P\d+\.\d+(\.(?!90)\d+)*)" - -NATIVESDKFIXES ?= "" -NATIVESDKFIXES_class-nativesdk = "\ - file://0001-nativesdk-glibc-Look-for-host-system-ld.so.cache-as-.patch \ - file://0002-nativesdk-glibc-Fix-buffer-overrun-with-a-relocated-.patch \ - file://0003-nativesdk-glibc-Raise-the-size-of-arrays-containing-.patch \ - file://0004-nativesdk-glibc-Allow-64-bit-atomics-for-x86.patch \ - file://0005-nativesdk-glibc-Make-relocatable-install-for-locales.patch \ -" - -SRC_URI = "${GLIBC_GIT_URI};branch=${SRCBRANCH};name=glibc \ - file://etc/ld.so.conf \ - file://generate-supported.mk \ - file://makedbs.sh \ - \ - ${NATIVESDKFIXES} \ - file://0006-fsl-e500-e5500-e6500-603e-fsqrt-implementation.patch \ - file://0007-readlib-Add-OECORE_KNOWN_INTERPRETER_NAMES-to-known-.patch \ - file://0008-ppc-sqrt-Fix-undefined-reference-to-__sqrt_finite.patch \ - file://0009-__ieee754_sqrt-f-are-now-inline-functions-and-call-o.patch \ - file://0010-Quote-from-bug-1443-which-explains-what-the-patch-do.patch \ - file://0011-eglibc-run-libm-err-tab.pl-with-specific-dirs-in-S.patch \ - file://0012-__ieee754_sqrt-f-are-now-inline-functions-and-call-o.patch \ - file://0013-sysdeps-gnu-configure.ac-handle-correctly-libc_cv_ro.patch \ - file://0014-Add-unused-attribute.patch \ - file://0015-yes-within-the-path-sets-wrong-config-variables.patch \ - file://0016-timezone-re-written-tzselect-as-posix-sh.patch \ - file://0017-Remove-bash-dependency-for-nscd-init-script.patch \ - file://0018-eglibc-Cross-building-and-testing-instructions.patch \ - file://0019-eglibc-Help-bootstrap-cross-toolchain.patch \ - file://0020-eglibc-Clear-cache-lines-on-ppc8xx.patch \ - file://0021-eglibc-Resolve-__fpscr_values-on-SH4.patch \ - file://0022-eglibc-Forward-port-cross-locale-generation-support.patch \ - file://0023-Define-DUMMY_LOCALE_T-if-not-defined.patch \ - file://0024-localedef-add-to-archive-uses-a-hard-coded-locale-pa.patch \ - file://0025-elf-dl-deps.c-Make-_dl_build_local_scope-breadth-fir.patch \ - file://0028-intl-Emit-no-lines-in-bison-generated-files.patch \ - file://0029-inject-file-assembly-directives.patch \ - file://0030-locale-prevent-maybe-uninitialized-errors-with-Os-BZ.patch \ - file://0001-x86-64-memcmp-Use-unsigned-Jcc-instructions-on-size-.patch \ - file://CVE-2019-9169.patch \ -" - -S = "${WORKDIR}/git" -B = "${WORKDIR}/build-${TARGET_SYS}" - -PACKAGES_DYNAMIC = "" - -# the -isystem in bitbake.conf screws up glibc do_stage -BUILD_CPPFLAGS = "-I${STAGING_INCDIR_NATIVE}" -TARGET_CPPFLAGS = "-I${STAGING_DIR_TARGET}${includedir}" - -GLIBC_BROKEN_LOCALES = "" - -GLIBCPIE ??= "" - -EXTRA_OECONF = "--enable-kernel=${OLDEST_KERNEL} \ - --disable-profile \ - --disable-debug --without-gd \ - --enable-clocale=gnu \ - --with-headers=${STAGING_INCDIR} \ - --without-selinux \ - --enable-tunables \ - --enable-bind-now \ - --enable-stack-protector=strong \ - --enable-stackguard-randomization \ - --disable-crypt \ - --with-default-link \ - --enable-nscd \ - ${@bb.utils.contains_any('SELECTED_OPTIMIZATION', '-O0 -Og', '--disable-werror', '', d)} \ - ${GLIBCPIE} \ - ${GLIBC_EXTRA_OECONF}" - -EXTRA_OECONF += "${@get_libc_fpu_setting(bb, d)}" - -do_patch_append() { - bb.build.exec_func('do_fix_readlib_c', d) -} - -do_fix_readlib_c () { - sed -i -e 's#OECORE_KNOWN_INTERPRETER_NAMES#${EGLIBC_KNOWN_INTERPRETER_NAMES}#' ${S}/elf/readlib.c -} - -do_configure () { -# override this function to avoid the autoconf/automake/aclocal/autoheader -# calls for now -# don't pass CPPFLAGS into configure, since it upsets the kernel-headers -# version check and doesn't really help with anything - (cd ${S} && gnu-configize) || die "failure in running gnu-configize" - find ${S} -name "configure" | xargs touch - CPPFLAGS="" oe_runconf -} - -do_compile () { - # -Wl,-rpath-link /lib in LDFLAGS can cause breakage if another glibc is in staging - LDFLAGS="-fuse-ld=bfd" - base_do_compile - echo "Adjust ldd script" - if [ -n "${RTLDLIST}" ] - then - prevrtld=`cat ${B}/elf/ldd | grep "^RTLDLIST=" | sed 's#^RTLDLIST="\?\([^"]*\)"\?$#\1#'` - # remove duplicate entries - newrtld=`echo $(printf '%s\n' ${prevrtld} ${RTLDLIST} | LC_ALL=C sort -u)` - echo "ldd \"${prevrtld} ${RTLDLIST}\" -> \"${newrtld}\"" - sed -i ${B}/elf/ldd -e "s#^RTLDLIST=.*\$#RTLDLIST=\"${newrtld}\"#" - fi - -} - -require glibc-package.inc - -BBCLASSEXTEND = "nativesdk" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-core/glibc/glibc_2.30.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-core/glibc/glibc_2.30.bb new file mode 100644 index 00000000..03add336 --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-core/glibc/glibc_2.30.bb @@ -0,0 +1,112 @@ +require glibc.inc +require glibc-version.inc + +DEPENDS += "gperf-native bison-native make-native" + +NATIVESDKFIXES ?= "" +NATIVESDKFIXES_class-nativesdk = "\ + file://0001-nativesdk-glibc-Look-for-host-system-ld.so.cache-as-.patch \ + file://0002-nativesdk-glibc-Fix-buffer-overrun-with-a-relocated-.patch \ + file://0003-nativesdk-glibc-Raise-the-size-of-arrays-containing-.patch \ + file://0004-nativesdk-glibc-Allow-64-bit-atomics-for-x86.patch \ + file://0005-nativesdk-glibc-Make-relocatable-install-for-locales.patch \ +" + +SRC_URI = "${GLIBC_GIT_URI};branch=${SRCBRANCH};name=glibc \ + file://etc/ld.so.conf \ + file://generate-supported.mk \ + file://makedbs.sh \ + \ + ${NATIVESDKFIXES} \ + file://0006-fsl-e500-e5500-e6500-603e-fsqrt-implementation.patch \ + file://0007-readlib-Add-OECORE_KNOWN_INTERPRETER_NAMES-to-known-.patch \ + file://0008-ppc-sqrt-Fix-undefined-reference-to-__sqrt_finite.patch \ + file://0009-__ieee754_sqrt-f-are-now-inline-functions-and-call-o.patch \ + file://0010-Quote-from-bug-1443-which-explains-what-the-patch-do.patch \ + file://0011-eglibc-run-libm-err-tab.pl-with-specific-dirs-in-S.patch \ + file://0012-__ieee754_sqrt-f-are-now-inline-functions-and-call-o.patch \ + file://0013-sysdeps-gnu-configure.ac-handle-correctly-libc_cv_ro.patch \ + file://0014-Add-unused-attribute.patch \ + file://0015-yes-within-the-path-sets-wrong-config-variables.patch \ + file://0016-timezone-re-written-tzselect-as-posix-sh.patch \ + file://0017-Remove-bash-dependency-for-nscd-init-script.patch \ + file://0018-eglibc-Cross-building-and-testing-instructions.patch \ + file://0019-eglibc-Help-bootstrap-cross-toolchain.patch \ + file://0020-eglibc-Clear-cache-lines-on-ppc8xx.patch \ + file://0021-eglibc-Resolve-__fpscr_values-on-SH4.patch \ + file://0022-eglibc-Forward-port-cross-locale-generation-support.patch \ + file://0023-Define-DUMMY_LOCALE_T-if-not-defined.patch \ + file://0024-localedef-add-to-archive-uses-a-hard-coded-locale-pa.patch \ + file://0025-elf-dl-deps.c-Make-_dl_build_local_scope-breadth-fir.patch \ + file://0026-intl-Emit-no-lines-in-bison-generated-files.patch \ + file://0027-inject-file-assembly-directives.patch \ + file://0028-locale-prevent-maybe-uninitialized-errors-with-Os-BZ.patch \ + " +S = "${WORKDIR}/git" +B = "${WORKDIR}/build-${TARGET_SYS}" + +PACKAGES_DYNAMIC = "" + +# the -isystem in bitbake.conf screws up glibc do_stage +BUILD_CPPFLAGS = "-I${STAGING_INCDIR_NATIVE}" +TARGET_CPPFLAGS = "-I${STAGING_DIR_TARGET}${includedir}" + +GLIBC_BROKEN_LOCALES = "" + +GLIBCPIE ??= "" + +EXTRA_OECONF = "--enable-kernel=${OLDEST_KERNEL} \ + --disable-profile \ + --disable-debug --without-gd \ + --enable-clocale=gnu \ + --with-headers=${STAGING_INCDIR} \ + --without-selinux \ + --enable-tunables \ + --enable-bind-now \ + --enable-stack-protector=strong \ + --enable-stackguard-randomization \ + --disable-crypt \ + --with-default-link \ + --enable-nscd \ + ${@bb.utils.contains_any('SELECTED_OPTIMIZATION', '-O0 -Og', '--disable-werror', '', d)} \ + ${GLIBCPIE} \ + ${GLIBC_EXTRA_OECONF}" + +EXTRA_OECONF += "${@get_libc_fpu_setting(bb, d)}" + +do_patch_append() { + bb.build.exec_func('do_fix_readlib_c', d) +} + +do_fix_readlib_c () { + sed -i -e 's#OECORE_KNOWN_INTERPRETER_NAMES#${EGLIBC_KNOWN_INTERPRETER_NAMES}#' ${S}/elf/readlib.c +} + +do_configure () { +# override this function to avoid the autoconf/automake/aclocal/autoheader +# calls for now +# don't pass CPPFLAGS into configure, since it upsets the kernel-headers +# version check and doesn't really help with anything + (cd ${S} && gnu-configize) || die "failure in running gnu-configize" + find ${S} -name "configure" | xargs touch + CPPFLAGS="" oe_runconf +} + +do_compile () { + # -Wl,-rpath-link /lib in LDFLAGS can cause breakage if another glibc is in staging + LDFLAGS="-fuse-ld=bfd" + base_do_compile + echo "Adjust ldd script" + if [ -n "${RTLDLIST}" ] + then + prevrtld=`cat ${B}/elf/ldd | grep "^RTLDLIST=" | sed 's#^RTLDLIST="\?\([^"]*\)"\?$#\1#'` + # remove duplicate entries + newrtld=`echo $(printf '%s\n' ${prevrtld} ${RTLDLIST} | LC_ALL=C sort -u)` + echo "ldd \"${prevrtld} ${RTLDLIST}\" -> \"${newrtld}\"" + sed -i ${B}/elf/ldd -e "s#^RTLDLIST=.*\$#RTLDLIST=\"${newrtld}\"#" + fi +} + +require glibc-package.inc + +BBCLASSEXTEND = "nativesdk" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-core/ifupdown/files/0001-Define-FNM_EXTMATCH-for-musl.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-core/ifupdown/files/0001-Define-FNM_EXTMATCH-for-musl.patch new file mode 100644 index 00000000..7bf02ea5 --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-core/ifupdown/files/0001-Define-FNM_EXTMATCH-for-musl.patch @@ -0,0 +1,47 @@ +From ff714d6461569d69b253089110ec659e4ebec248 Mon Sep 17 00:00:00 2001 +From: Oleksandr Kravchuk +Date: Tue, 2 Jul 2019 20:10:42 +0200 +Subject: [PATCH] Define FNM_EXTMATCH for musl + +Fixes the following compilation errors with musl that does not have +FNM_EXTMATCH defined: + +| main.c: In function 'expand_matches': +| main.c:700:40: error: 'FNM_EXTMATCH' undeclared (first use in this +function); did you mean 'FNM_NOMATCH'? +| 700 | if(fnmatch(pattern, ifa->ifa_name, FNM_EXTMATCH)) +| | ^~~~~~~~~~~~ +| | FNM_NOMATCH + +and + +| archlinux.c:40:28: error: 'FNM_EXTMATCH' undeclared (first use in this +function); did you mean 'FNM_NOMATCH'? +| 40 | if(fnmatch(pattern, buf, FNM_EXTMATCH) == 0) { +| | ^~~~~~~~~~~~ +| | FNM_NOMATCH + +Upstream-Status: Submitted [https://salsa.debian.org/debian/ifupdown/merge_requests/5] + +Signed-off-by: Oleksandr Kravchuk +--- + archcommon.h | 4 ++++ + 1 file changed, 4 insertions(+) + +diff --git a/archcommon.h b/archcommon.h +index fe99950..f257f9d 100644 +--- a/archcommon.h ++++ b/archcommon.h +@@ -1,5 +1,9 @@ + #include "header.h" + ++#if !defined(FNM_EXTMATCH) ++#define FNM_EXTMATCH 0 ++#endif ++ + bool execable(const char *); + + #define iface_is_link() (!_iface_has(ifd->real_iface, ":.")) +-- +2.17.1 + diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-core/ifupdown/files/defn2-c-man-don-t-rely-on-dpkg-architecture-to-set-a.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-core/ifupdown/files/defn2-c-man-don-t-rely-on-dpkg-architecture-to-set-a.patch index a24b8cda..d1c3d260 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-core/ifupdown/files/defn2-c-man-don-t-rely-on-dpkg-architecture-to-set-a.patch +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-core/ifupdown/files/defn2-c-man-don-t-rely-on-dpkg-architecture-to-set-a.patch @@ -1,4 +1,4 @@ -From 7af9db748974cb3a2c6ef8f9e03d7db1f9f8ee16 Mon Sep 17 00:00:00 2001 +From 40257d65b338b6e2ed9d89d6fa7c7b8701a4c311 Mon Sep 17 00:00:00 2001 From: Paul Gortmaker Date: Wed, 6 Aug 2014 14:54:12 -0400 Subject: [PATCH 1/2] defn2[c|man]: don't rely on dpkg-architecture to set arch @@ -19,7 +19,7 @@ Upstream-Status: Pending 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/defn2c.pl b/defn2c.pl -index c449de2f3d1c..38845e374c76 100755 +index 8798dc2..f2551c7 100755 --- a/defn2c.pl +++ b/defn2c.pl @@ -2,9 +2,9 @@ @@ -36,7 +36,7 @@ index c449de2f3d1c..38845e374c76 100755 # declarations my $address_family = ""; diff --git a/defn2man.pl b/defn2man.pl -index 6ddcfdd4fe68..c9c4dd046597 100755 +index 6ddcfdd..c9c4dd0 100755 --- a/defn2man.pl +++ b/defn2man.pl @@ -2,9 +2,9 @@ @@ -53,5 +53,5 @@ index 6ddcfdd4fe68..c9c4dd046597 100755 # declarations my $line; -- -1.9.1 +2.17.1 diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-core/ifupdown/files/inet-6-.defn-fix-inverted-checks-for-loopback.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-core/ifupdown/files/inet-6-.defn-fix-inverted-checks-for-loopback.patch index 37a61c9b..5b0d51d7 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-core/ifupdown/files/inet-6-.defn-fix-inverted-checks-for-loopback.patch +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-core/ifupdown/files/inet-6-.defn-fix-inverted-checks-for-loopback.patch @@ -1,7 +1,7 @@ -From 7efe4676747e4e4a056b9bfb4e9424c8354e9996 Mon Sep 17 00:00:00 2001 +From 6fce99c9e42cbacde1855473b745ca1fded3fbf7 Mon Sep 17 00:00:00 2001 From: "Maxin B. John" Date: Wed, 21 Dec 2016 15:32:07 +0200 -Subject: [PATCH] inet[6].defn: fix inverted checks for loopback +Subject: [PATCH 2/2] inet[6].defn: fix inverted checks for loopback Compared to the hurd link.defn for loopback, we see these are inverted, meaning that you would only be able to configure @@ -37,11 +37,11 @@ Signed-off-by: Paul Gortmaker Signed-off-by: Maxin B. John Signed-off-by: Yi Zhao --- - inet.defn | 140 +++++++++++++++++++++++++++++++------------------------------- - 1 file changed, 70 insertions(+), 70 deletions(-) + inet.defn | 134 +++++++++++++++++++++++++++--------------------------- + 1 file changed, 67 insertions(+), 67 deletions(-) diff --git a/inet.defn b/inet.defn -index 75e6744..23c7756 100644 +index 182b56b..31067bc 100644 --- a/inet.defn +++ b/inet.defn @@ -6,10 +6,10 @@ method loopback @@ -103,9 +103,9 @@ index 75e6744..23c7756 100644 up - [[/bin/ip link set dev %iface% address %hwaddress%]] -- /sbin/dhclient -v -pf /run/dhclient.%iface%.pid -lf /var/lib/dhcp/dhclient.%iface%.leases -I -df /var/lib/dhcp/dhclient6.%iface%.leases %iface% \ +- /sbin/dhclient -4 -v -pf /run/dhclient.%iface%.pid -lf /var/lib/dhcp/dhclient.%iface%.leases -I -df /var/lib/dhcp/dhclient6.%iface%.leases %iface% \ + [[ip link set dev %iface% address %hwaddress%]] -+ dhclient -v -pf /run/dhclient.%iface%.pid -lf /var/lib/dhcp/dhclient.%iface%.leases -I -df /var/lib/dhcp/dhclient6.%iface%.leases %iface% \ ++ dhclient -4 -v -pf /run/dhclient.%iface%.pid -lf /var/lib/dhcp/dhclient.%iface%.leases -I -df /var/lib/dhcp/dhclient6.%iface%.leases %iface% \ [[-e IF_METRIC=%metric%]] \ if (execable("/sbin/dhclient")) - /sbin/pump -i %iface% [[-h %hostname%]] [[-l %leasehours%]] \ @@ -122,14 +122,13 @@ index 75e6744..23c7756 100644 elsif (1) down -- /sbin/dhclient -v -r -pf /run/dhclient.%iface%.pid -lf /var/lib/dhcp/dhclient.%iface%.leases -I -df /var/lib/dhcp/dhclient6.%iface%.leases %iface% \ -+ dhclient -v -r -pf /run/dhclient.%iface%.pid -lf /var/lib/dhcp/dhclient.%iface%.leases -I -df /var/lib/dhcp/dhclient6.%iface%.leases %iface% \ +- /sbin/dhclient -4 -v -r -pf /run/dhclient.%iface%.pid -lf /var/lib/dhcp/dhclient.%iface%.leases -I -df /var/lib/dhcp/dhclient6.%iface%.leases %iface% \ ++ dhclient -4 -v -r -pf /run/dhclient.%iface%.pid -lf /var/lib/dhcp/dhclient.%iface%.leases -I -df /var/lib/dhcp/dhclient6.%iface%.leases %iface% \ if (execable("/sbin/dhclient")) - /sbin/pump -i %iface% -r \ + pump -i %iface% -r \ elsif (execable("/sbin/pump")) -- if test -f /run/udhcpc.%iface%.pid; then kill -USR2 $(/bin/cat /run/udhcpc.%iface%.pid); kill -TERM $(/bin/cat /run/udhcpc.%iface%.pid); fi \ -+ if test -f /run/udhcpc.%iface%.pid; then kill -USR2 $(cat /run/udhcpc.%iface%.pid); kill -TERM $(cat /run/udhcpc.%iface%.pid); fi \ + if test -f /run/udhcpc.%iface%.pid; then kill -USR2 $(/bin/cat /run/udhcpc.%iface%.pid); kill -TERM $(/bin/cat /run/udhcpc.%iface%.pid); fi \ elsif (execable("/sbin/udhcpc")) - /sbin/dhcpcd -k %iface% \ + dhcpcd -k %iface% \ @@ -252,9 +251,9 @@ index 75e6744..23c7756 100644 up - [[/sbin/ifconfig %iface% link %hwaddress%]] -- /sbin/dhclient -v -pf /run/dhclient.%iface%.pid -lf /var/lib/dhcp/dhclient.%iface%.leases -I -df /var/lib/dhcp/dhclient6.%iface%.leases %iface% \ +- /sbin/dhclient -4 -v -pf /run/dhclient.%iface%.pid -lf /var/lib/dhcp/dhclient.%iface%.leases -I -df /var/lib/dhcp/dhclient6.%iface%.leases %iface% \ + [[ifconfig %iface% link %hwaddress%]] -+ dhclient -v -pf /run/dhclient.%iface%.pid -lf /var/lib/dhcp/dhclient.%iface%.leases -I -df /var/lib/dhcp/dhclient6.%iface%.leases %iface% \ ++ dhclient -4 -v -pf /run/dhclient.%iface%.pid -lf /var/lib/dhcp/dhclient.%iface%.leases -I -df /var/lib/dhcp/dhclient6.%iface%.leases %iface% \ [[-e IF_METRIC=%metric%]] \ if (execable("/sbin/dhclient")) - /sbin/udhcpc -n -p /run/udhcpc.%iface%.pid -i %iface% [[-H %hostname%]] \ @@ -269,11 +268,10 @@ index 75e6744..23c7756 100644 elsif (1) down -- /sbin/dhclient -v -r -pf /run/dhclient.%iface%.pid -lf /var/lib/dhcp/dhclient.%iface%.leases -I -df /var/lib/dhcp/dhclient6.%iface%.leases %iface% \ -+ dhclient -v -r -pf /run/dhclient.%iface%.pid -lf /var/lib/dhcp/dhclient.%iface%.leases -I -df /var/lib/dhcp/dhclient6.%iface%.leases %iface% \ +- /sbin/dhclient -4 -v -r -pf /run/dhclient.%iface%.pid -lf /var/lib/dhcp/dhclient.%iface%.leases -I -df /var/lib/dhcp/dhclient6.%iface%.leases %iface% \ ++ dhclient -4 -v -r -pf /run/dhclient.%iface%.pid -lf /var/lib/dhcp/dhclient.%iface%.leases -I -df /var/lib/dhcp/dhclient6.%iface%.leases %iface% \ if (execable("/sbin/dhclient")) -- if test -f /run/udhcpc.%iface%.pid; then kill -USR2 $(/bin/cat /run/udhcpc.%iface%.pid); kill -TERM $(/bin/cat /run/udhcpc.%iface%.pid); fi \ -+ if test -f /run/udhcpc.%iface%.pid; then kill -USR2 $(cat /run/udhcpc.%iface%.pid); kill -TERM $(cat /run/udhcpc.%iface%.pid); fi \ + if test -f /run/udhcpc.%iface%.pid; then kill -USR2 $(/bin/cat /run/udhcpc.%iface%.pid); kill -TERM $(/bin/cat /run/udhcpc.%iface%.pid); fi \ elsif (execable("/sbin/udhcpc")) - /sbin/dhcpcd -k %iface% \ + dhcpcd -k %iface% \ @@ -341,8 +339,8 @@ index 75e6744..23c7756 100644 up [[Warning: Option hwaddress: %hwaddress% not yet supported]] -- /sbin/dhclient -v -pf /run/dhclient.%iface///.%.pid -lf /var/lib/dhcp/dhclient.%iface///.%.leases -I -df /var/lib/dhcp/dhclient6.%iface///.%.leases %iface% \ -+ dhclient -v -pf /run/dhclient.%iface///.%.pid -lf /var/lib/dhcp/dhclient.%iface///.%.leases -I -df /var/lib/dhcp/dhclient6.%iface///.%.leases %iface% \ +- /sbin/dhclient -4 -v -pf /run/dhclient.%iface///.%.pid -lf /var/lib/dhcp/dhclient.%iface///.%.leases -I -df /var/lib/dhcp/dhclient6.%iface///.%.leases %iface% \ ++ dhclient -4 -v -pf /run/dhclient.%iface///.%.pid -lf /var/lib/dhcp/dhclient.%iface///.%.leases -I -df /var/lib/dhcp/dhclient6.%iface///.%.leases %iface% \ if (execable("/sbin/dhclient")) - /sbin/udhcpc -n -p /run/udhcpc.%iface///.%.pid -i %iface% [[-H %hostname%]] \ + udhcpc -n -p /run/udhcpc.%iface///.%.pid -i %iface% [[-H %hostname%]] \ @@ -356,11 +354,10 @@ index 75e6744..23c7756 100644 elsif (1) down -- /sbin/dhclient -v -r -pf /run/dhclient.%iface///.%.pid -lf /var/lib/dhcp/dhclient.%iface///.%.leases -I -df /var/lib/dhcp/dhclient6.%iface///.%.leases %iface% \ -+ dhclient -v -r -pf /run/dhclient.%iface///.%.pid -lf /var/lib/dhcp/dhclient.%iface///.%.leases -I -df /var/lib/dhcp/dhclient6.%iface///.%.leases %iface% \ +- /sbin/dhclient -4 -v -r -pf /run/dhclient.%iface///.%.pid -lf /var/lib/dhcp/dhclient.%iface///.%.leases -I -df /var/lib/dhcp/dhclient6.%iface///.%.leases %iface% \ ++ dhclient -4 -v -r -pf /run/dhclient.%iface///.%.pid -lf /var/lib/dhcp/dhclient.%iface///.%.leases -I -df /var/lib/dhcp/dhclient6.%iface///.%.leases %iface% \ if (execable("/sbin/dhclient")) -- if test -f /run/udhcpc.%iface///.%.pid; then kill -USR2 $(/bin/cat /run/udhcpc.%iface///.%.pid); kill -TERM $(/bin/cat /run/udhcpc.%iface///.%.pid); fi \ -+ if test -f /run/udhcpc.%iface///.%.pid; then kill -USR2 $(cat /run/udhcpc.%iface///.%.pid); kill -TERM $(cat /run/udhcpc.%iface///.%.pid); fi \ + if test -f /run/udhcpc.%iface///.%.pid; then kill -USR2 $(/bin/cat /run/udhcpc.%iface///.%.pid); kill -TERM $(/bin/cat /run/udhcpc.%iface///.%.pid); fi \ elsif (execable("/sbin/udhcpc")) - /sbin/dhcpcd -k %iface% \ + dhcpcd -k %iface% \ @@ -402,5 +399,5 @@ index 75e6744..23c7756 100644 - /usr/sbin/avahi-autoipd --kill %iface% + avahi-autoipd --kill %iface% -- -2.7.4 +2.17.1 diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-core/ifupdown/ifupdown_0.8.16.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-core/ifupdown/ifupdown_0.8.16.bb deleted file mode 100644 index e9f3a2ae..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-core/ifupdown/ifupdown_0.8.16.bb +++ /dev/null @@ -1,46 +0,0 @@ -SUMMARY = "ifupdown: basic ifup and ifdown used by initscripts" -DESCRIPTION = "High level tools to configure network interfaces \ -This package provides the tools ifup and ifdown which may be used to \ -configure (or, respectively, deconfigure) network interfaces, based on \ -the file /etc/network/interfaces." -LICENSE = "GPLv2" -LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f" - -SRC_URI = "git://salsa.debian.org/debian/ifupdown.git;protocol=https \ - file://defn2-c-man-don-t-rely-on-dpkg-architecture-to-set-a.patch \ - file://inet-6-.defn-fix-inverted-checks-for-loopback.patch \ - file://99_network \ - " -SRCREV = "11b9f99f7ecc7052497e6786156cfed531f11823" - -S = "${WORKDIR}/git" - - -inherit update-alternatives - -do_compile () { - chmod a+rx *.pl *.sh - oe_runmake 'CC=${CC}' "CFLAGS=${CFLAGS} -Wall -W -D'IFUPDOWN_VERSION=\"${PV}\"'" -} - -do_install () { - install -d ${D}${mandir}/man8 \ - ${D}${mandir}/man5 \ - ${D}${base_sbindir} - - # If volatiles are used, then we'll also need /run/network there too. - install -d ${D}/etc/default/volatiles - install -m 0644 ${WORKDIR}/99_network ${D}/etc/default/volatiles - - install -m 0755 ifup ${D}${base_sbindir}/ - ln ${D}${base_sbindir}/ifup ${D}${base_sbindir}/ifdown - install -m 0644 ifup.8 ${D}${mandir}/man8 - install -m 0644 interfaces.5 ${D}${mandir}/man5 - cd ${D}${mandir}/man8 && ln -s ifup.8 ifdown.8 -} - -ALTERNATIVE_PRIORITY = "100" -ALTERNATIVE_${PN} = "ifup ifdown" - -ALTERNATIVE_LINK_NAME[ifup] = "${base_sbindir}/ifup" -ALTERNATIVE_LINK_NAME[ifdown] = "${base_sbindir}/ifdown" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-core/ifupdown/ifupdown_0.8.22.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-core/ifupdown/ifupdown_0.8.22.bb new file mode 100644 index 00000000..bd0989e8 --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-core/ifupdown/ifupdown_0.8.22.bb @@ -0,0 +1,47 @@ +SUMMARY = "ifupdown: basic ifup and ifdown used by initscripts" +DESCRIPTION = "High level tools to configure network interfaces \ +This package provides the tools ifup and ifdown which may be used to \ +configure (or, respectively, deconfigure) network interfaces, based on \ +the file /etc/network/interfaces." +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f" + +SRC_URI = "git://salsa.debian.org/debian/ifupdown.git;protocol=https \ + file://defn2-c-man-don-t-rely-on-dpkg-architecture-to-set-a.patch \ + file://inet-6-.defn-fix-inverted-checks-for-loopback.patch \ + file://99_network \ + file://0001-Define-FNM_EXTMATCH-for-musl.patch \ + " +SRCREV = "ab5a0f464e53e172316a5ca8b5dcdc49e8848999" + +S = "${WORKDIR}/git" + + +inherit update-alternatives + +do_compile () { + chmod a+rx *.pl *.sh + oe_runmake 'CC=${CC}' "CFLAGS=${CFLAGS} -Wall -W -D'IFUPDOWN_VERSION=\"${PV}\"'" +} + +do_install () { + install -d ${D}${mandir}/man8 \ + ${D}${mandir}/man5 \ + ${D}${base_sbindir} + + # If volatiles are used, then we'll also need /run/network there too. + install -d ${D}/etc/default/volatiles + install -m 0644 ${WORKDIR}/99_network ${D}/etc/default/volatiles + + install -m 0755 ifup ${D}${base_sbindir}/ + ln ${D}${base_sbindir}/ifup ${D}${base_sbindir}/ifdown + install -m 0644 ifup.8 ${D}${mandir}/man8 + install -m 0644 interfaces.5 ${D}${mandir}/man5 + cd ${D}${mandir}/man8 && ln -s ifup.8 ifdown.8 +} + +ALTERNATIVE_PRIORITY = "100" +ALTERNATIVE_${PN} = "ifup ifdown" + +ALTERNATIVE_LINK_NAME[ifup] = "${base_sbindir}/ifup" +ALTERNATIVE_LINK_NAME[ifdown] = "${base_sbindir}/ifdown" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-core/images/build-appliance-image_15.0.0.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-core/images/build-appliance-image_15.0.0.bb index e9cac98c..1d74ee51 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-core/images/build-appliance-image_15.0.0.bb +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-core/images/build-appliance-image_15.0.0.bb @@ -11,6 +11,8 @@ IMAGE_INSTALL = "packagegroup-core-boot packagegroup-core-ssh-openssh packagegro IMAGE_FEATURES += "x11-base package-management splash" +QB_MEM = '${@bb.utils.contains("DISTRO_FEATURES", "opengl", "-m 512", "-m 256", d)}' + # Ensure there's enough space to do a core-image-sato build, with rm_work enabled IMAGE_ROOTFS_EXTRA_SPACE = "41943040" @@ -22,7 +24,7 @@ IMAGE_FSTYPES = "wic.vmdk" inherit core-image module-base setuptools3 -SRCREV ?= "bb59bcd016bdd815809ac10df45d61c364c46df0" +SRCREV ?= "8181681b33da272fef83276104d5c7a93f84da46" SRC_URI = "git://git.yoctoproject.org/poky \ file://Yocto_Build_Appliance.vmx \ file://Yocto_Build_Appliance.vmxf \ diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-core/initrdscripts/initramfs-framework/rootfs b/Contrib-Inspur/openbmc/poky/meta/recipes-core/initrdscripts/initramfs-framework/rootfs index 76fa84d3..748c9391 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-core/initrdscripts/initramfs-framework/rootfs +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-core/initrdscripts/initramfs-framework/rootfs @@ -27,8 +27,18 @@ rootfs_run() { fi if [ "`echo ${bootparam_root} | cut -c1-9`" = "PARTUUID=" ]; then - root_uuid=`echo $bootparam_root | cut -c10-` - bootparam_root="/dev/disk/by-partuuid/$root_uuid" + root_partuuid=`echo $bootparam_root | cut -c10-` + bootparam_root="/dev/disk/by-partuuid/$root_partuuid" + fi + + if [ "`echo ${bootparam_root} | cut -c1-10`" = "PARTLABEL=" ]; then + root_partlabel=`echo $bootparam_root | cut -c11-` + bootparam_root="/dev/disk/by-partlabel/$root_partlabel" + fi + + if [ "`echo ${bootparam_root} | cut -c1-10`" = "PARTLABEL=" ]; then + root_partlabel=`echo $bootparam_root | cut -c11-` + bootparam_root="/dev/disk/by-partlabel/$root_partlabel" fi if [ "`echo ${bootparam_root} | cut -c1-6`" = "LABEL=" ]; then diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-core/initscripts/initscripts-1.0/arm/alignment.sh b/Contrib-Inspur/openbmc/poky/meta/recipes-core/initscripts/initscripts-1.0/alignment.sh similarity index 100% rename from Contrib-Inspur/openbmc/poky/meta/recipes-core/initscripts/initscripts-1.0/arm/alignment.sh rename to Contrib-Inspur/openbmc/poky/meta/recipes-core/initscripts/initscripts-1.0/alignment.sh diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-core/initscripts/initscripts-1.0/populate-volatile.sh b/Contrib-Inspur/openbmc/poky/meta/recipes-core/initscripts/initscripts-1.0/populate-volatile.sh index 6f965a68..1c525b71 100755 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-core/initscripts/initscripts-1.0/populate-volatile.sh +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-core/initscripts/initscripts-1.0/populate-volatile.sh @@ -80,7 +80,7 @@ mk_dir() { link_file() { EXEC=" if [ -L \"$2\" ]; then - [ \"\$(readlink -f \"$2\")\" != \"$1\" ] && { rm -f \"$2\"; ln -sf \"$1\" \"$2\"; }; + [ \"\$(readlink \"$2\")\" != \"$1\" ] && { rm -f \"$2\"; ln -sf \"$1\" \"$2\"; }; elif [ -d \"$2\" ]; then if awk '\$2 == \"$2\" {exit 1}' /proc/mounts; then cp -a $2/* $1 2>/dev/null; diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-core/initscripts/initscripts-1.0/sysfs.sh b/Contrib-Inspur/openbmc/poky/meta/recipes-core/initscripts/initscripts-1.0/sysfs.sh index f5b5b990..4871ee94 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-core/initscripts/initscripts-1.0/sysfs.sh +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-core/initscripts/initscripts-1.0/sysfs.sh @@ -26,6 +26,10 @@ if [ -e /sys/kernel/config ] && grep -q configfs /proc/filesystems; then mount -t configfs configfs /sys/kernel/config fi +if [ -e /sys/firmware/efi/efivars ] && grep -q efivarfs /proc/filesystems; then + mount -t efivarfs efivarfs /sys/firmware/efi/efivars +fi + if ! [ -e /dev/zero ] && [ -e /dev ] && grep -q devtmpfs /proc/filesystems; then mount -n -t devtmpfs devtmpfs /dev fi diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-core/initscripts/initscripts_1.0.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-core/initscripts/initscripts_1.0.bb index 91eea4b8..1a59b82f 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-core/initscripts/initscripts_1.0.bb +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-core/initscripts/initscripts_1.0.bb @@ -40,6 +40,7 @@ SRC_URI = "file://functions \ S = "${WORKDIR}" SRC_URI_append_arm = " file://alignment.sh" +SRC_URI_append_armeb = " file://alignment.sh" KERNEL_VERSION = "" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-core/libxcrypt/libxcrypt-compat_4.4.6.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-core/libxcrypt/libxcrypt-compat_4.4.8.bb similarity index 100% rename from Contrib-Inspur/openbmc/poky/meta/recipes-core/libxcrypt/libxcrypt-compat_4.4.6.bb rename to Contrib-Inspur/openbmc/poky/meta/recipes-core/libxcrypt/libxcrypt-compat_4.4.8.bb diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-core/libxcrypt/libxcrypt_4.4.6.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-core/libxcrypt/libxcrypt_4.4.6.bb deleted file mode 100644 index 893f5e73..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-core/libxcrypt/libxcrypt_4.4.6.bb +++ /dev/null @@ -1,35 +0,0 @@ -SUMMARY = "Extended cryptographic library (from glibc)" -DESCRIPTION = "Forked code from glibc libary to extract only crypto part." -HOMEPAGE = "https://github.com/besser82/libxcrypt" -SECTION = "libs" -LICENSE = "LGPLv2.1" -LIC_FILES_CHKSUM ?= "file://LICENSING;md5=be275bc7f91642efe7709a8ae7a1433b \ - file://COPYING.LIB;md5=4fbd65380cdd255951079008b364516c \ -" - -inherit autotools pkgconfig - -PV = "4.4.6" - -SRC_URI = "git://github.com/besser82/libxcrypt.git;branch=${SRCBRANCH}" -SRCREV = "398943774c5ff38baf1bc5ee088855fd8983bb05" -SRCBRANCH ?= "develop" - -PROVIDES = "virtual/crypt" - -FILES_${PN} = "${libdir}/libcrypt*.so.* \ - ${libdir}/libcrypt-*.so \ - ${libdir}/libowcrypt*.so.* \ - ${libdir}/libowcrypt-*.so \ -" - -S = "${WORKDIR}/git" - -BUILD_CPPFLAGS = "-I${STAGING_INCDIR_NATIVE}" -TARGET_CPPFLAGS = "-I${STAGING_DIR_TARGET}${includedir} -Wno-error=missing-attributes" -CPPFLAGS_append_class-nativesdk = " -Wno-error=missing-attributes" - -API = "--disable-obsolete-api" -EXTRA_OECONF += "${API}" - -BBCLASSEXTEND = "nativesdk" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-core/libxcrypt/libxcrypt_4.4.8.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-core/libxcrypt/libxcrypt_4.4.8.bb new file mode 100644 index 00000000..1787f692 --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-core/libxcrypt/libxcrypt_4.4.8.bb @@ -0,0 +1,33 @@ +SUMMARY = "Extended cryptographic library (from glibc)" +DESCRIPTION = "Forked code from glibc libary to extract only crypto part." +HOMEPAGE = "https://github.com/besser82/libxcrypt" +SECTION = "libs" +LICENSE = "LGPLv2.1" +LIC_FILES_CHKSUM ?= "file://LICENSING;md5=3bb6614cf5880cbf1b9dbd9e3d145e2c \ + file://COPYING.LIB;md5=4fbd65380cdd255951079008b364516c \ +" + +inherit autotools pkgconfig + +SRC_URI = "git://github.com/besser82/libxcrypt.git;branch=${SRCBRANCH}" +SRCREV = "acd84997a5a8b2badd28b70a642abee11272fad2" +SRCBRANCH ?= "develop" + +PROVIDES = "virtual/crypt" + +FILES_${PN} = "${libdir}/libcrypt*.so.* \ + ${libdir}/libcrypt-*.so \ + ${libdir}/libowcrypt*.so.* \ + ${libdir}/libowcrypt-*.so \ +" + +S = "${WORKDIR}/git" + +BUILD_CPPFLAGS = "-I${STAGING_INCDIR_NATIVE}" +TARGET_CPPFLAGS = "-I${STAGING_DIR_TARGET}${includedir} -Wno-error" +CPPFLAGS_append_class-nativesdk = " -Wno-error" + +API = "--disable-obsolete-api" +EXTRA_OECONF += "${API}" + +BBCLASSEXTEND = "nativesdk" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-core/libxml/libxml2_2.9.9.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-core/libxml/libxml2_2.9.9.bb index c38f883e..5a7e098f 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-core/libxml/libxml2_2.9.9.bb +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-core/libxml/libxml2_2.9.9.bb @@ -35,7 +35,7 @@ PACKAGECONFIG ??= "python \ PACKAGECONFIG[python] = "--with-python=${PYTHON},--without-python,python3" PACKAGECONFIG[ipv6] = "--enable-ipv6,--disable-ipv6," -inherit autotools pkgconfig binconfig-disabled ptest distro_features_check +inherit autotools pkgconfig binconfig-disabled ptest features_check inherit ${@bb.utils.contains('PACKAGECONFIG', 'python', 'python3native', '', d)} diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-core/meta/buildtools-tarball.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-core/meta/buildtools-tarball.bb index 91df6f1a..9c5c2cc8 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-core/meta/buildtools-tarball.bb +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-core/meta/buildtools-tarball.bb @@ -72,6 +72,7 @@ create_sdk_files_append () { toolchain_create_sdk_version ${SDK_OUTPUT}/${SDKPATH}/version-${SDK_SYS} echo 'export GIT_SSL_CAINFO="${SDKPATHNATIVE}${sysconfdir}/ssl/certs/ca-certificates.crt"' >>$script + echo 'export OPENSSL_CONF="${SDKPATHNATIVE}${sysconfdir}/ssl/openssl.cnf"' >>$script if [ "${SDKMACHINE}" = "i686" ]; then echo 'export NO32LIBS="0"' >>$script diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-core/meta/cve-update-db-native.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-core/meta/cve-update-db-native.bb new file mode 100644 index 00000000..db1d69a2 --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-core/meta/cve-update-db-native.bb @@ -0,0 +1,185 @@ +SUMMARY = "Updates the NVD CVE database" +LICENSE = "MIT" + +INHIBIT_DEFAULT_DEPS = "1" + +inherit native + +deltask do_unpack +deltask do_patch +deltask do_configure +deltask do_compile +deltask do_install +deltask do_populate_sysroot + +python () { + if not d.getVar("CVE_CHECK_DB_FILE"): + raise bb.parse.SkipRecipe("Skip recipe when cve-check class is not loaded.") +} + +python do_populate_cve_db() { + """ + Update NVD database with json data feed + """ + import bb.utils + import sqlite3, urllib, urllib.parse, shutil, gzip + from datetime import date + + bb.utils.export_proxies(d) + + BASE_URL = "https://nvd.nist.gov/feeds/json/cve/1.0/nvdcve-1.0-" + YEAR_START = 2002 + + db_file = d.getVar("CVE_CHECK_DB_FILE") + db_dir = os.path.dirname(db_file) + json_tmpfile = os.path.join(db_dir, 'nvd.json.gz') + + # Don't refresh the database more than once an hour + try: + import time + if time.time() - os.path.getmtime(db_file) < (60*60): + return + except OSError: + pass + + cve_f = open(os.path.join(d.getVar("TMPDIR"), 'cve_check'), 'a') + + if not os.path.isdir(db_dir): + os.mkdir(db_dir) + + # Connect to database + conn = sqlite3.connect(db_file) + c = conn.cursor() + + initialize_db(c) + + for year in range(YEAR_START, date.today().year + 1): + year_url = BASE_URL + str(year) + meta_url = year_url + ".meta" + json_url = year_url + ".json.gz" + + # Retrieve meta last modified date + response = urllib.request.urlopen(meta_url) + if response: + for l in response.read().decode("utf-8").splitlines(): + key, value = l.split(":", 1) + if key == "lastModifiedDate": + last_modified = value + break + else: + bb.warn("Cannot parse CVE metadata, update failed") + return + + # Compare with current db last modified date + c.execute("select DATE from META where YEAR = ?", (year,)) + meta = c.fetchone() + if not meta or meta[0] != last_modified: + # Clear products table entries corresponding to current year + c.execute("delete from PRODUCTS where ID like ?", ('CVE-%d%%' % year,)) + + # Update db with current year json file + try: + response = urllib.request.urlopen(json_url) + if response: + update_db(c, gzip.decompress(response.read()).decode('utf-8')) + c.execute("insert or replace into META values (?, ?)", [year, last_modified]) + except urllib.error.URLError as e: + cve_f.write('Warning: CVE db update error, CVE data is outdated.\n\n') + bb.warn("Cannot parse CVE data (%s), update failed" % e.reason) + return + + # Update success, set the date to cve_check file. + if year == date.today().year: + cve_f.write('CVE database update : %s\n\n' % date.today()) + + cve_f.close() + conn.commit() + conn.close() +} + +def initialize_db(c): + c.execute("CREATE TABLE IF NOT EXISTS META (YEAR INTEGER UNIQUE, DATE TEXT)") + + c.execute("CREATE TABLE IF NOT EXISTS NVD (ID TEXT UNIQUE, SUMMARY TEXT, \ + SCOREV2 TEXT, SCOREV3 TEXT, MODIFIED INTEGER, VECTOR TEXT)") + + c.execute("CREATE TABLE IF NOT EXISTS PRODUCTS (ID TEXT, \ + VENDOR TEXT, PRODUCT TEXT, VERSION_START TEXT, OPERATOR_START TEXT, \ + VERSION_END TEXT, OPERATOR_END TEXT)") + c.execute("CREATE INDEX IF NOT EXISTS PRODUCT_ID_IDX on PRODUCTS(ID);") + +def parse_node_and_insert(c, node, cveId): + # Parse children node if needed + for child in node.get('children', ()): + parse_node_and_insert(c, child, cveId) + + def cpe_generator(): + for cpe in node.get('cpe_match', ()): + if not cpe['vulnerable']: + return + cpe23 = cpe['cpe23Uri'].split(':') + vendor = cpe23[3] + product = cpe23[4] + version = cpe23[5] + + if version != '*': + # Version is defined, this is a '=' match + yield [cveId, vendor, product, version, '=', '', ''] + else: + # Parse start version, end version and operators + op_start = '' + op_end = '' + v_start = '' + v_end = '' + + if 'versionStartIncluding' in cpe: + op_start = '>=' + v_start = cpe['versionStartIncluding'] + + if 'versionStartExcluding' in cpe: + op_start = '>' + v_start = cpe['versionStartExcluding'] + + if 'versionEndIncluding' in cpe: + op_end = '<=' + v_end = cpe['versionEndIncluding'] + + if 'versionEndExcluding' in cpe: + op_end = '<' + v_end = cpe['versionEndExcluding'] + + yield [cveId, vendor, product, v_start, op_start, v_end, op_end] + + c.executemany("insert into PRODUCTS values (?, ?, ?, ?, ?, ?, ?)", cpe_generator()) + +def update_db(c, jsondata): + import json + root = json.loads(jsondata) + + for elt in root['CVE_Items']: + if not elt['impact']: + continue + + cveId = elt['cve']['CVE_data_meta']['ID'] + cveDesc = elt['cve']['description']['description_data'][0]['value'] + date = elt['lastModifiedDate'] + accessVector = elt['impact']['baseMetricV2']['cvssV2']['accessVector'] + cvssv2 = elt['impact']['baseMetricV2']['cvssV2']['baseScore'] + + try: + cvssv3 = elt['impact']['baseMetricV3']['cvssV3']['baseScore'] + except: + cvssv3 = 0.0 + + c.execute("insert or replace into NVD values (?, ?, ?, ?, ?, ?)", + [cveId, cveDesc, cvssv2, cvssv3, date, accessVector]) + + configurations = elt['configurations']['nodes'] + for config in configurations: + parse_node_and_insert(c, config, cveId) + + +addtask do_populate_cve_db before do_fetch +do_populate_cve_db[nostamp] = "1" + +EXCLUDE_FROM_WORLD = "1" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-core/meta/cve-update-db.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-core/meta/cve-update-db.bb deleted file mode 100644 index 522fd238..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-core/meta/cve-update-db.bb +++ /dev/null @@ -1,121 +0,0 @@ -SUMMARY = "Updates the NVD CVE database" -LICENSE = "MIT" - -INHIBIT_DEFAULT_DEPS = "1" -PACKAGES = "" - -inherit nopackages - -deltask do_fetch -deltask do_unpack -deltask do_patch -deltask do_configure -deltask do_compile -deltask do_install -deltask do_populate_sysroot - -python do_populate_cve_db() { - """ - Update NVD database with json data feed - """ - - import sqlite3, urllib3, shutil, gzip, re - from datetime import date - - BASE_URL = "https://nvd.nist.gov/feeds/json/cve/1.0/nvdcve-1.0-" - YEAR_START = 2002 - JSON_TMPFILE = d.getVar("CVE_CHECK_DB_DIR") + '/nvd.json.gz' - - # Connect to database - db_file = d.getVar("CVE_CHECK_DB_FILE") - conn = sqlite3.connect(db_file) - c = conn.cursor() - - initialize_db(c) - - http = urllib3.PoolManager() - - for year in range(YEAR_START, date.today().year + 1): - year_url = BASE_URL + str(year) - meta_url = year_url + ".meta" - json_url = year_url + ".json.gz" - - # Retrieve meta last modified date - with http.request('GET', meta_url, preload_content=False) as r: - date_line = str(r.data.splitlines()[0]) - last_modified = re.search('lastModifiedDate:(.*)', date_line).group(1) - - # Compare with current db last modified date - c.execute("select DATE from META where YEAR = '%d'" % year) - meta = c.fetchone() - if not meta or meta[0] != last_modified: - # Update db with current year json file - with http.request('GET', json_url, preload_content=False) as r, open(JSON_TMPFILE, 'wb') as tmpfile: - shutil.copyfileobj(r, tmpfile) - with gzip.open(JSON_TMPFILE, 'rt') as jsonfile: - update_db(c, jsonfile) - c.execute("insert or replace into META values (?, ?)", - [year, last_modified]) - - conn.commit() - conn.close() - - with open(d.getVar("CVE_CHECK_TMP_FILE"), 'a'): - os.utime(d.getVar("CVE_CHECK_TMP_FILE"), None) -} - -# DJB2 hash algorithm -def hash_djb2(s): - hash = 5381 - for x in s: - hash = (( hash << 5) + hash) + ord(x) - - return hash & 0xFFFFFFFF - -def initialize_db(c): - c.execute("CREATE TABLE IF NOT EXISTS META (YEAR INTEGER UNIQUE, DATE TEXT)") - c.execute("CREATE TABLE IF NOT EXISTS NVD (ID TEXT UNIQUE, SUMMARY TEXT, \ - SCOREV2 TEXT, SCOREV3 TEXT, MODIFIED INTEGER, VECTOR TEXT)") - c.execute("CREATE TABLE IF NOT EXISTS PRODUCTS (HASH INTEGER UNIQUE, ID TEXT, \ - VENDOR TEXT, PRODUCT TEXT, VERSION TEXT, OPERATOR TEXT)") - c.execute("CREATE INDEX IF NOT EXISTS PRODUCT_IDX ON PRODUCTS \ - (PRODUCT, VERSION)") - -def update_db(c, json_filename): - import json - root = json.load(json_filename) - - for elt in root['CVE_Items']: - if not elt['impact']: - continue - - cveId = elt['cve']['CVE_data_meta']['ID'] - cveDesc = elt['cve']['description']['description_data'][0]['value'] - date = elt['lastModifiedDate'] - accessVector = elt['impact']['baseMetricV2']['cvssV2']['accessVector'] - cvssv2 = elt['impact']['baseMetricV2']['cvssV2']['baseScore'] - - try: - cvssv3 = elt['impact']['baseMetricV3']['cvssV3']['baseScore'] - except: - cvssv3 = 0.0 - - c.execute("insert or replace into NVD values (?, ?, ?, ?, ?, ?)", - [cveId, cveDesc, cvssv2, cvssv3, date, accessVector]) - - for vendor in elt['cve']['affects']['vendor']['vendor_data']: - for product in vendor['product']['product_data']: - for version in product['version']['version_data']: - product_str = cveId+vendor['vendor_name']+product['product_name']+version['version_value'] - hashstr = hash_djb2(product_str) - c.execute("insert or replace into PRODUCTS values (?, ?, ?, ?, ?, ?)", - [ hashstr, cveId, vendor['vendor_name'], - product['product_name'], version['version_value'], - version['version_affected']]) - - - -addtask do_populate_cve_db before do_cve_check -do_populate_cve_db[nostamp] = "1" - -EXCLUDE_FROM_WORLD = "1" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-core/meta/target-sdk-provides-dummy.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-core/meta/target-sdk-provides-dummy.bb index b5e8c0f0..87b8bfab 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-core/meta/target-sdk-provides-dummy.bb +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-core/meta/target-sdk-provides-dummy.bb @@ -1,6 +1,6 @@ DUMMYARCH = "sdk-provides-dummy-target" -DUMMYPROVIDES = "\ +DUMMYPROVIDES_PACKAGES = "\ busybox \ busybox-dev \ busybox-src \ @@ -42,14 +42,19 @@ DUMMYPROVIDES = "\ perl-module-threads \ perl-module-warnings \ perl-module-warnings-register \ + pkgconfig \ + pkgconfig-dev \ + pkgconfig-src \ +" + +DUMMYPROVIDES = "\ + ${@' '.join([multilib_pkg_extend(d, pkg) for pkg in d.getVar('DUMMYPROVIDES_PACKAGES').split()])} \ /bin/sh \ /bin/bash \ /usr/bin/env \ /usr/bin/perl \ libperl.so.5 \ - pkgconfig \ - pkgconfig-dev \ - pkgconfig-src \ + libperl.so.5()(64bit) \ " require dummy-sdk-package.inc diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-core/musl/musl-obstack.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-core/musl/musl-obstack.bb new file mode 100644 index 00000000..3003935f --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-core/musl/musl-obstack.bb @@ -0,0 +1,22 @@ +# Copyright (C) 2019 Khem Raj +# Released under the MIT license (see COPYING.MIT for the terms) + +SUMMARY = "A standalone library to implement GNU libc's obstack" +DESCRIPTION = "copy + paste of the obstack functions and macros found in GNU gcc libiberty library for use with musl libc" +HOMEPAGE = "https://github.com/pullmoll/musl-obstack" +LICENSE = "GPL-2.0+" +LIC_FILES_CHKSUM = "file://COPYING;md5=3d23e4eef8243efcaab6f0a438078932" +SECTION = "libs" + +PV = "1.1" +SRCREV = "d2ad66b0df44a4b784956f7f7f2717131ddc05f4" +SRC_URI = "git://github.com/pullmoll/musl-obstack" + +UPSTREAM_CHECK_COMMITS = "1" + +inherit autotools pkgconfig + +S = "${WORKDIR}/git" + +COMPATIBLE_HOST = ".*-musl.*" + diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-core/musl/musl.inc b/Contrib-Inspur/openbmc/poky/meta/recipes-core/musl/musl.inc index 8408c5da..0683bf85 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-core/musl/musl.inc +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-core/musl/musl.inc @@ -9,7 +9,7 @@ standards-conformance and safety." HOMEPAGE = "http://www.musl-libc.org/" LICENSE = "MIT" SECTION = "libs" -LIC_FILES_CHKSUM = "file://COPYRIGHT;md5=8a4bb28f771c817fe57d3a7c4240e3aa" +LIC_FILES_CHKSUM = "file://COPYRIGHT;md5=d0fe2be17bc45ff4a42ade1c13ed6340" INHIBIT_DEFAULT_DEPS = "1" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-core/musl/musl/0001-riscv-Define-sigcontext-again.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-core/musl/musl/0001-riscv-Define-sigcontext-again.patch new file mode 100644 index 00000000..fcb324e1 --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-core/musl/musl/0001-riscv-Define-sigcontext-again.patch @@ -0,0 +1,48 @@ +commit a0993f8f0f161423ecdcb754f282ffd2fe47a7b5 +Author: Rich Felker +Date: Wed Oct 2 09:28:03 2019 -0400 + + reintroduce riscv64 struct sigcontext + + commit ab3eb89a8b83353cdaab12ed017a67a7730f90e9 removed it as part of + correcting the mcontext_t definition, but there is still code using + struct sigcontext and expecting the member names present in it, most + notably libgcc_eh. almost all such usage is incorrect, but bring back + struct sigcontext at least for now so as not to introduce regressions. + +Upstream-Status: Pending +Signed-off-by: Khem Raj +diff --git a/arch/riscv64/bits/signal.h b/arch/riscv64/bits/signal.h +index 03fe48c1..2ff4be30 100644 +--- a/arch/riscv64/bits/signal.h ++++ b/arch/riscv64/bits/signal.h +@@ -6,12 +6,6 @@ + # define SIGSTKSZ 8192 + #endif + +-#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE) +-typedef unsigned long greg_t; +-typedef unsigned long gregset_t[32]; +-typedef union __riscv_mc_fp_state fpregset_t; +-#endif +- + typedef unsigned long __riscv_mc_gp_state[32]; + + struct __riscv_mc_f_ext_state { +@@ -41,6 +35,16 @@ typedef struct mcontext_t { + union __riscv_mc_fp_state __fpregs; + } mcontext_t; + ++#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE) ++typedef unsigned long greg_t; ++typedef unsigned long gregset_t[32]; ++typedef union __riscv_mc_fp_state fpregset_t; ++struct sigcontext { ++ gregset_t gregs; ++ fpregset_t fpregs; ++}; ++#endif ++ + struct sigaltstack { + void *ss_sp; + int ss_flags; diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-core/musl/musl_git.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-core/musl/musl_git.bb index a7fae4a6..aacff79f 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-core/musl/musl_git.bb +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-core/musl/musl_git.bb @@ -4,9 +4,9 @@ require musl.inc inherit linuxloader -SRCREV = "ac304227bb3ea1787d581f17d76a5f5f3abff51f" +SRCREV = "2c2477da9a553c0b9b2fa18073a5dcdbe6d395af" -BASEVER = "1.1.22" +BASEVER = "1.1.23" PV = "${BASEVER}+git${SRCPV}" @@ -15,6 +15,7 @@ PV = "${BASEVER}+git${SRCPV}" SRC_URI = "git://git.musl-libc.org/musl \ file://0001-Make-dynamic-linker-a-relative-symlink-to-libc.patch \ file://0002-ldso-Use-syslibdir-and-libdir-as-default-pathes-to-l.patch \ + file://0001-riscv-Define-sigcontext-again.patch \ " S = "${WORKDIR}/git" @@ -63,7 +64,7 @@ do_install() { oe_runmake install DESTDIR='${D}' install -d ${D}${bindir} - rm -f ${D}${bindir}/ldd + rm -f ${D}${bindir}/ldd ${D}${GLIBC_LDSO} lnr ${D}${libdir}/libc.so ${D}${bindir}/ldd lnr ${D}${libdir}/libc.so ${D}${GLIBC_LDSO} for l in crypt dl m pthread resolv rt util xnet diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-core/ncurses/files/0001-ncurses-selective-backport-of-20191012-patch.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-core/ncurses/files/0001-ncurses-selective-backport-of-20191012-patch.patch new file mode 100644 index 00000000..7870c4ba --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-core/ncurses/files/0001-ncurses-selective-backport-of-20191012-patch.patch @@ -0,0 +1,169 @@ +From 064b77f173337aa790f1cec0d741bfbc61a33d31 Mon Sep 17 00:00:00 2001 +From: Trevor Gamblin +Date: Fri, 18 Oct 2019 09:57:43 -0400 +Subject: [PATCH] ncurses: selective backport of 20191012 patch + +Upstream-Status: Backport [https://salsa.debian.org/debian/ncurses/commit/243908b1e3d81] + +Contents of the upstream patch that are not applied to comp_hash.c, +parse_entry.c, or dump_entry.c have been omitted. + +CVE: CVE-2019-17594 +CVE: CVE-2019-17595 + +Signed-off-by: Trevor Gamblin + +--- + ncurses/tinfo/comp_hash.c | 14 ++++++++++---- + ncurses/tinfo/parse_entry.c | 32 ++++++++++++++++---------------- + progs/dump_entry.c | 7 ++++--- + 3 files changed, 30 insertions(+), 23 deletions(-) + +diff --git a/ncurses/tinfo/comp_hash.c b/ncurses/tinfo/comp_hash.c +index 21f165ca..a62d38f9 100644 +--- a/ncurses/tinfo/comp_hash.c ++++ b/ncurses/tinfo/comp_hash.c +@@ -44,7 +44,7 @@ + #include + #include + +-MODULE_ID("$Id: comp_hash.c,v 1.49 2019/03/10 00:06:48 tom Exp $") ++MODULE_ID("$Id: comp_hash.c,v 1.51 2019/10/12 16:32:13 tom Exp $") + + /* + * Finds the entry for the given string in the hash table if present. +@@ -63,7 +63,9 @@ _nc_find_entry(const char *string, + + hashvalue = data->hash_of(string); + +- if (data->table_data[hashvalue] >= 0) { ++ if (hashvalue >= 0 ++ && (unsigned) hashvalue < data->table_size ++ && data->table_data[hashvalue] >= 0) { + + real_table = _nc_get_table(termcap); + ptr = real_table + data->table_data[hashvalue]; +@@ -96,7 +98,9 @@ _nc_find_type_entry(const char *string, + const HashData *data = _nc_get_hash_info(termcap); + int hashvalue = data->hash_of(string); + +- if (data->table_data[hashvalue] >= 0) { ++ if (hashvalue >= 0 ++ && (unsigned) hashvalue < data->table_size ++ && data->table_data[hashvalue] >= 0) { + const struct name_table_entry *const table = _nc_get_table(termcap); + + ptr = table + data->table_data[hashvalue]; +@@ -124,7 +128,9 @@ _nc_find_user_entry(const char *string) + + hashvalue = data->hash_of(string); + +- if (data->table_data[hashvalue] >= 0) { ++ if (hashvalue >= 0 ++ && (unsigned) hashvalue < data->table_size ++ && data->table_data[hashvalue] >= 0) { + + real_table = _nc_get_userdefs_table(); + ptr = real_table + data->table_data[hashvalue]; +diff --git a/ncurses/tinfo/parse_entry.c b/ncurses/tinfo/parse_entry.c +index f8cca8b5..064376c5 100644 +--- a/ncurses/tinfo/parse_entry.c ++++ b/ncurses/tinfo/parse_entry.c +@@ -47,7 +47,7 @@ + #include + #include + +-MODULE_ID("$Id: parse_entry.c,v 1.97 2019/08/03 23:10:38 tom Exp $") ++MODULE_ID("$Id: parse_entry.c,v 1.98 2019/10/12 00:50:31 tom Exp $") + + #ifdef LINT + static short const parametrized[] = +@@ -654,12 +654,12 @@ _nc_capcmp(const char *s, const char *t) + } + + static void +-append_acs0(string_desc * dst, int code, int src) ++append_acs0(string_desc * dst, int code, char *src, size_t off) + { +- if (src != 0) { ++ if (src != 0 && off < strlen(src)) { + char temp[3]; + temp[0] = (char) code; +- temp[1] = (char) src; ++ temp[1] = src[off]; + temp[2] = 0; + _nc_safe_strcat(dst, temp); + } +@@ -669,7 +669,7 @@ static void + append_acs(string_desc * dst, int code, char *src) + { + if (VALID_STRING(src) && strlen(src) == 1) { +- append_acs0(dst, code, *src); ++ append_acs0(dst, code, src, 0); + } + } + +@@ -1038,17 +1038,17 @@ postprocess_terminfo(TERMTYPE2 *tp) + _nc_str_init(&result, buf2, sizeof(buf2)); + _nc_safe_strcat(&result, acs_chars); + +- append_acs0(&result, 'l', box_chars_1[0]); /* ACS_ULCORNER */ +- append_acs0(&result, 'q', box_chars_1[1]); /* ACS_HLINE */ +- append_acs0(&result, 'k', box_chars_1[2]); /* ACS_URCORNER */ +- append_acs0(&result, 'x', box_chars_1[3]); /* ACS_VLINE */ +- append_acs0(&result, 'j', box_chars_1[4]); /* ACS_LRCORNER */ +- append_acs0(&result, 'm', box_chars_1[5]); /* ACS_LLCORNER */ +- append_acs0(&result, 'w', box_chars_1[6]); /* ACS_TTEE */ +- append_acs0(&result, 'u', box_chars_1[7]); /* ACS_RTEE */ +- append_acs0(&result, 'v', box_chars_1[8]); /* ACS_BTEE */ +- append_acs0(&result, 't', box_chars_1[9]); /* ACS_LTEE */ +- append_acs0(&result, 'n', box_chars_1[10]); /* ACS_PLUS */ ++ append_acs0(&result, 'l', box_chars_1, 0); /* ACS_ULCORNER */ ++ append_acs0(&result, 'q', box_chars_1, 1); /* ACS_HLINE */ ++ append_acs0(&result, 'k', box_chars_1, 2); /* ACS_URCORNER */ ++ append_acs0(&result, 'x', box_chars_1, 3); /* ACS_VLINE */ ++ append_acs0(&result, 'j', box_chars_1, 4); /* ACS_LRCORNER */ ++ append_acs0(&result, 'm', box_chars_1, 5); /* ACS_LLCORNER */ ++ append_acs0(&result, 'w', box_chars_1, 6); /* ACS_TTEE */ ++ append_acs0(&result, 'u', box_chars_1, 7); /* ACS_RTEE */ ++ append_acs0(&result, 'v', box_chars_1, 8); /* ACS_BTEE */ ++ append_acs0(&result, 't', box_chars_1, 9); /* ACS_LTEE */ ++ append_acs0(&result, 'n', box_chars_1, 10); /* ACS_PLUS */ + + if (buf2[0]) { + acs_chars = _nc_save_str(buf2); +diff --git a/progs/dump_entry.c b/progs/dump_entry.c +index d0e420ec..8a47084a 100644 +--- a/progs/dump_entry.c ++++ b/progs/dump_entry.c +@@ -39,7 +39,7 @@ + #include "termsort.c" /* this C file is generated */ + #include /* so is this */ + +-MODULE_ID("$Id: dump_entry.c,v 1.173 2019/05/11 21:02:24 tom Exp $") ++MODULE_ID("$Id: dump_entry.c,v 1.175 2019/10/12 15:59:07 tom Exp $") + + #define DISCARD(string) string = ABSENT_STRING + #define PRINTF (void) printf +@@ -1136,7 +1136,8 @@ fmt_entry(TERMTYPE2 *tterm, + *d++ = '\\'; + *d = ':'; + } else if (*d == '\\') { +- *++d = *s++; ++ if ((*++d = *s++) == '\0') ++ break; + } + d++; + *d = '\0'; +@@ -1396,7 +1397,7 @@ one_one_mapping(const char *mapping) + + if (VALID_STRING(mapping)) { + int n = 0; +- while (mapping[n] != '\0') { ++ while (mapping[n] != '\0' && mapping[n + 1] != '\0') { + if (isLine(mapping[n]) && + mapping[n] != mapping[n + 1]) { + result = FALSE; +-- +2.17.1 + diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-core/ncurses/ncurses_6.1+20181013.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-core/ncurses/ncurses_6.1+20181013.bb deleted file mode 100644 index ef6ca987..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-core/ncurses/ncurses_6.1+20181013.bb +++ /dev/null @@ -1,11 +0,0 @@ -require ncurses.inc - -SRC_URI += "file://0001-tic-hang.patch \ - file://0002-configure-reproducible.patch \ - file://config.cache \ -" -# commit id corresponds to the revision in package version -SRCREV = "7a97a7f937762ba342d5b2fd7cd090885a809835" -S = "${WORKDIR}/git" -EXTRA_OECONF += "--with-abi-version=5 --cache-file=${B}/config.cache" -UPSTREAM_CHECK_GITTAGREGEX = "(?P\d+(\.\d+)+(\+\d+)*)" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-core/ncurses/ncurses_6.1+20190803.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-core/ncurses/ncurses_6.1+20190803.bb new file mode 100644 index 00000000..e638a373 --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-core/ncurses/ncurses_6.1+20190803.bb @@ -0,0 +1,12 @@ +require ncurses.inc + +SRC_URI += "file://0001-tic-hang.patch \ + file://0002-configure-reproducible.patch \ + file://config.cache \ + file://0001-ncurses-selective-backport-of-20191012-patch.patch \ +" +# commit id corresponds to the revision in package version +SRCREV = "3c9b2677c96c645496997321bf2fe465a5e7e21f" +S = "${WORKDIR}/git" +EXTRA_OECONF += "--with-abi-version=5 --cache-file=${B}/config.cache" +UPSTREAM_CHECK_GITTAGREGEX = "(?P\d+(\.\d+)+(\+\d+)*)" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-core/newlib/newlib.inc b/Contrib-Inspur/openbmc/poky/meta/recipes-core/newlib/newlib.inc index 418cf079..2f0553bd 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-core/newlib/newlib.inc +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-core/newlib/newlib.inc @@ -15,7 +15,7 @@ LIC_FILES_CHKSUM = " \ file://newlib/libc/sys/linux/linuxthreads/LICENSE;md5=73640207fbc79b198c7ffd4ad4d97aa0 \ " -SRC_URI = "ftp://sourceware.org/pub/newlib/newlib-${PV}.tar.gz" +SRC_URI = "https://sourceware.org/pub/newlib/newlib-${PV}.tar.gz" SRC_URI[md5sum] = "f84263b7d524df92a9c9fb30b79e0134" SRC_URI[sha256sum] = "fb4fa1cc21e9060719208300a61420e4089d6de6ef59cf533b57fe74801d102a" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-core/ovmf/ovmf/0001-BaseTools-header.makefile-add-Wno-stringop-truncatio.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-core/ovmf/ovmf/0001-BaseTools-header.makefile-add-Wno-stringop-truncatio.patch deleted file mode 100644 index 342fcc62..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-core/ovmf/ovmf/0001-BaseTools-header.makefile-add-Wno-stringop-truncatio.patch +++ /dev/null @@ -1,71 +0,0 @@ -From 9fce4bab014b9aa618060eba13d6dd04b0fa1b70 Mon Sep 17 00:00:00 2001 -From: Laszlo Ersek -Date: Fri, 2 Mar 2018 17:11:52 +0100 -Subject: [PATCH 1/4] BaseTools/header.makefile: add "-Wno-stringop-truncation" - -gcc-8 (which is part of Fedora 28) enables the new warning -"-Wstringop-truncation" in "-Wall". This warning is documented in detail -at ; the -introduction says - -> Warn for calls to bounded string manipulation functions such as strncat, -> strncpy, and stpncpy that may either truncate the copied string or leave -> the destination unchanged. - -It breaks the BaseTools build with: - -> EfiUtilityMsgs.c: In function 'PrintMessage': -> EfiUtilityMsgs.c:484:9: error: 'strncat' output may be truncated copying -> between 0 and 511 bytes from a string of length 511 -> [-Werror=stringop-truncation] -> strncat (Line, Line2, MAX_LINE_LEN - strlen (Line) - 1); -> ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -> EfiUtilityMsgs.c:469:9: error: 'strncat' output may be truncated copying -> between 0 and 511 bytes from a string of length 511 -> [-Werror=stringop-truncation] -> strncat (Line, Line2, MAX_LINE_LEN - strlen (Line) - 1); -> ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -> EfiUtilityMsgs.c:511:5: error: 'strncat' output may be truncated copying -> between 0 and 511 bytes from a string of length 511 -> [-Werror=stringop-truncation] -> strncat (Line, Line2, MAX_LINE_LEN - strlen (Line) - 1); -> ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -The right way to fix the warning would be to implement string concat with -snprintf(). However, Microsoft does not appear to support snprintf() -before VS2015 -, -so we just have to shut up the warning. The strncat() calls flagged above -are valid BTW. - -Cc: Ard Biesheuvel -Cc: Cole Robinson -Cc: Liming Gao -Cc: Paolo Bonzini -Cc: Yonghong Zhu -Contributed-under: TianoCore Contribution Agreement 1.1 -Signed-off-by: Laszlo Ersek -Reviewed-by: Liming Gao ---- -Signed-off-by: Khem Raj -Upstream-Status: Backport - - BaseTools/Source/C/Makefiles/header.makefile | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -Index: git/BaseTools/Source/C/Makefiles/header.makefile -=================================================================== ---- git.orig/BaseTools/Source/C/Makefiles/header.makefile -+++ git/BaseTools/Source/C/Makefiles/header.makefile -@@ -47,9 +47,9 @@ INCLUDE = $(TOOL_INCLUDE) -I $(MAKEROOT) - BUILD_CPPFLAGS += $(INCLUDE) -O2 - ifeq ($(DARWIN),Darwin) - # assume clang or clang compatible flags on OS X --BUILD_CFLAGS += -MD -fshort-wchar -fno-strict-aliasing -Wall -Werror -Wno-deprecated-declarations -Wno-self-assign -Wno-unused-result -nostdlib -c -g -+BUILD_CFLAGS += -MD -fshort-wchar -fno-strict-aliasing -Wall -Werror -Wno-deprecated-declarations -Wno-stringop-truncation -Wno-self-assign -Wno-unused-result -nostdlib -c -g - else --BUILD_CFLAGS += -MD -fshort-wchar -fno-strict-aliasing -Wall -Werror -Wno-deprecated-declarations -Wno-unused-result -nostdlib -c -g -+BUILD_CFLAGS += -MD -fshort-wchar -fno-strict-aliasing -Wall -Werror -Wno-deprecated-declarations -Wno-stringop-truncation -Wno-unused-result -nostdlib -c -g - endif - BUILD_LFLAGS = $(LDFLAGS) - BUILD_CXXFLAGS += -Wno-unused-result diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-core/ovmf/ovmf/0001-ia32-Dont-use-pie.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-core/ovmf/ovmf/0001-ia32-Dont-use-pie.patch deleted file mode 100644 index 5bb418b9..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-core/ovmf/ovmf/0001-ia32-Dont-use-pie.patch +++ /dev/null @@ -1,46 +0,0 @@ -From f65e9cc025278387b494c2383c5d9ff3bed98687 Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Sun, 11 Jun 2017 00:47:24 -0700 -Subject: [PATCH] ia32: Dont use -pie - -Upstream-Status: Pending - -Signed-off-by: Khem Raj ---- - BaseTools/Conf/tools_def.template | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -Index: git/BaseTools/Conf/tools_def.template -=================================================================== ---- git.orig/BaseTools/Conf/tools_def.template -+++ git/BaseTools/Conf/tools_def.template -@@ -4336,7 +4336,7 @@ RELEASE_*_*_OBJCOPY_ADDDEBUGFLAG = - NOOPT_*_*_OBJCOPY_ADDDEBUGFLAG = --add-gnu-debuglink=$(DEBUG_DIR)/$(MODULE_NAME).debug - - DEFINE GCC_ALL_CC_FLAGS = -g -Os -fshort-wchar -fno-builtin -fno-strict-aliasing -Wall -Werror -Wno-array-bounds -include AutoGen.h -fno-common --DEFINE GCC_IA32_CC_FLAGS = DEF(GCC_ALL_CC_FLAGS) -m32 -malign-double -freorder-blocks -freorder-blocks-and-partition -O2 -mno-stack-arg-probe -+DEFINE GCC_IA32_CC_FLAGS = DEF(GCC_ALL_CC_FLAGS) -m32 -malign-double -freorder-blocks -freorder-blocks-and-partition -O2 -mno-stack-arg-probe -fno-PIE -no-pie - DEFINE GCC_X64_CC_FLAGS = DEF(GCC_ALL_CC_FLAGS) -mno-red-zone -Wno-address -mno-stack-arg-probe - DEFINE GCC_IPF_CC_FLAGS = DEF(GCC_ALL_CC_FLAGS) -minline-int-divide-min-latency - DEFINE GCC_ARM_CC_FLAGS = DEF(GCC_ALL_CC_FLAGS) -mlittle-endian -mabi=aapcs -fno-short-enums -funsigned-char -ffunction-sections -fdata-sections -fomit-frame-pointer -Wno-address -mthumb -mfloat-abi=soft -fno-pic -fno-pie -@@ -4369,9 +4369,9 @@ DEFINE GCC_ARM_RC_FLAGS = -I - DEFINE GCC_AARCH64_RC_FLAGS = -I binary -O elf64-littleaarch64 -B aarch64 --rename-section .data=.hii - - DEFINE GCC44_ALL_CC_FLAGS = -g -fshort-wchar -fno-builtin -fno-strict-aliasing -Wall -Werror -Wno-array-bounds -ffunction-sections -fdata-sections -include AutoGen.h -fno-common -DSTRING_ARRAY_NAME=$(BASE_NAME)Strings --DEFINE GCC44_IA32_CC_FLAGS = DEF(GCC44_ALL_CC_FLAGS) -m32 -march=i586 -malign-double -fno-stack-protector -D EFI32 -fno-asynchronous-unwind-tables -+DEFINE GCC44_IA32_CC_FLAGS = DEF(GCC44_ALL_CC_FLAGS) -m32 -march=i586 -malign-double -fno-stack-protector -D EFI32 -fno-asynchronous-unwind-tables -fno-PIE -no-pie - DEFINE GCC44_X64_CC_FLAGS = DEF(GCC44_ALL_CC_FLAGS) -m64 -fno-stack-protector "-DEFIAPI=__attribute__((ms_abi))" -maccumulate-outgoing-args -mno-red-zone -Wno-address -mcmodel=small -fpie -fno-asynchronous-unwind-tables --DEFINE GCC44_IA32_X64_DLINK_COMMON = -nostdlib -Wl,-n,-q,--gc-sections -z common-page-size=0x20 -+DEFINE GCC44_IA32_X64_DLINK_COMMON = -nostdlib -Wl,-n,-q,--gc-sections -z common-page-size=0x20 -no-pie - DEFINE GCC44_IA32_X64_ASLDLINK_FLAGS = DEF(GCC44_IA32_X64_DLINK_COMMON) -Wl,--entry,ReferenceAcpiTable -u ReferenceAcpiTable - DEFINE GCC44_IA32_X64_DLINK_FLAGS = DEF(GCC44_IA32_X64_DLINK_COMMON) -Wl,--entry,$(IMAGE_ENTRY_POINT) -u $(IMAGE_ENTRY_POINT) -Wl,-Map,$(DEST_DIR_DEBUG)/$(BASE_NAME).map - DEFINE GCC44_IA32_DLINK2_FLAGS = -Wl,--defsym=PECOFF_HEADER_SIZE=0x220 DEF(GCC_DLINK2_FLAGS_COMMON) -@@ -4451,7 +4451,7 @@ DEFINE GCC48_AARCH64_ASLDLINK_FLAGS = D - - DEFINE GCC49_IA32_CC_FLAGS = DEF(GCC48_IA32_CC_FLAGS) - DEFINE GCC49_X64_CC_FLAGS = DEF(GCC48_X64_CC_FLAGS) --DEFINE GCC49_IA32_X64_DLINK_COMMON = -nostdlib -Wl,-n,-q,--gc-sections -z common-page-size=0x40 -+DEFINE GCC49_IA32_X64_DLINK_COMMON = -nostdlib -Wl,-n,-q,--gc-sections -z common-page-size=0x40 -no-pie - DEFINE GCC49_IA32_X64_ASLDLINK_FLAGS = DEF(GCC49_IA32_X64_DLINK_COMMON) -Wl,--entry,ReferenceAcpiTable -u ReferenceAcpiTable - DEFINE GCC49_IA32_X64_DLINK_FLAGS = DEF(GCC49_IA32_X64_DLINK_COMMON) -Wl,--entry,$(IMAGE_ENTRY_POINT) -u $(IMAGE_ENTRY_POINT) -Wl,-Map,$(DEST_DIR_DEBUG)/$(BASE_NAME).map - DEFINE GCC49_IA32_DLINK2_FLAGS = DEF(GCC48_IA32_DLINK2_FLAGS) diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-core/ovmf/ovmf/0002-BaseTools-header.makefile-add-Wno-restrict.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-core/ovmf/ovmf/0002-BaseTools-header.makefile-add-Wno-restrict.patch deleted file mode 100644 index a076665c..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-core/ovmf/ovmf/0002-BaseTools-header.makefile-add-Wno-restrict.patch +++ /dev/null @@ -1,102 +0,0 @@ -From 86dbdac5a25bd23deb4a0e0a97b527407e02184d Mon Sep 17 00:00:00 2001 -From: Laszlo Ersek -Date: Fri, 2 Mar 2018 17:11:52 +0100 -Subject: [PATCH 2/4] BaseTools/header.makefile: add "-Wno-restrict" - -gcc-8 (which is part of Fedora 28) enables the new warning -"-Wrestrict" in "-Wall". This warning is documented in detail -at ; the -introduction says - -> Warn when an object referenced by a restrict-qualified parameter (or, in -> C++, a __restrict-qualified parameter) is aliased by another argument, -> or when copies between such objects overlap. - -It breaks the BaseTools build (in the Brotli compression library) with: - -> In function 'ProcessCommandsInternal', -> inlined from 'ProcessCommands' at dec/decode.c:1828:10: -> dec/decode.c:1781:9: error: 'memcpy' accessing between 17 and 2147483631 -> bytes at offsets 16 and 16 overlaps between 17 and 2147483631 bytes at -> offset 16 [-Werror=restrict] -> memcpy(copy_dst + 16, copy_src + 16, (size_t)(i - 16)); -> ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -> In function 'ProcessCommandsInternal', -> inlined from 'SafeProcessCommands' at dec/decode.c:1833:10: -> dec/decode.c:1781:9: error: 'memcpy' accessing between 17 and 2147483631 -> bytes at offsets 16 and 16 overlaps between 17 and 2147483631 bytes at -> offset 16 [-Werror=restrict] -> memcpy(copy_dst + 16, copy_src + 16, (size_t)(i - 16)); -> ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -Paolo Bonzini analyzed the Brotli source in detail, -and concluded that the warning is a false positive: - -> This seems safe to me, because it's preceded by: -> -> uint8_t* copy_dst = &s->ringbuffer[pos]; -> uint8_t* copy_src = &s->ringbuffer[src_start]; -> int dst_end = pos + i; -> int src_end = src_start + i; -> if (src_end > pos && dst_end > src_start) { -> /* Regions intersect. */ -> goto CommandPostWrapCopy; -> } -> -> If [src_start, src_start + i) and [pos, pos + i) don't intersect, then -> neither do [src_start + 16, src_start + i) and [pos + 16, pos + i). -> -> The if seems okay: -> -> (src_start + i > pos && pos + i > src_start) -> -> which can be rewritten to: -> -> (pos < src_start + i && src_start < pos + i) -> -> Then the numbers are in one of these two orders: -> -> pos <= src_start < pos + i <= src_start + i -> src_start <= pos < src_start + i <= pos + i -> -> These two would be allowed by the "if", but they can only happen if pos -> == src_start so they degenerate to the same two orders above: -> -> pos <= src_start < src_start + i <= pos + i -> src_start <= pos < pos + i <= src_start + i -> -> So it is a false positive in GCC. - -Disable the warning for now. - -Cc: Ard Biesheuvel -Cc: Cole Robinson -Cc: Liming Gao -Cc: Paolo Bonzini -Cc: Yonghong Zhu -Reported-by: Cole Robinson -Contributed-under: TianoCore Contribution Agreement 1.1 -Signed-off-by: Laszlo Ersek -Reviewed-by: Liming Gao ---- -Signed-off-by: Khem Raj -Upstream-Status: Backport - BaseTools/Source/C/Makefiles/header.makefile | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -Index: git/BaseTools/Source/C/Makefiles/header.makefile -=================================================================== ---- git.orig/BaseTools/Source/C/Makefiles/header.makefile -+++ git/BaseTools/Source/C/Makefiles/header.makefile -@@ -47,9 +47,9 @@ INCLUDE = $(TOOL_INCLUDE) -I $(MAKEROOT) - BUILD_CPPFLAGS += $(INCLUDE) -O2 - ifeq ($(DARWIN),Darwin) - # assume clang or clang compatible flags on OS X --BUILD_CFLAGS += -MD -fshort-wchar -fno-strict-aliasing -Wall -Werror -Wno-deprecated-declarations -Wno-stringop-truncation -Wno-self-assign -Wno-unused-result -nostdlib -c -g -+BUILD_CFLAGS += -MD -fshort-wchar -fno-strict-aliasing -Wall -Werror -Wno-deprecated-declarations -Wno-stringop-truncation -Wno-restrict -Wno-self-assign -Wno-unused-result -nostdlib -c -g - else --BUILD_CFLAGS += -MD -fshort-wchar -fno-strict-aliasing -Wall -Werror -Wno-deprecated-declarations -Wno-stringop-truncation -Wno-unused-result -nostdlib -c -g -+BUILD_CFLAGS += -MD -fshort-wchar -fno-strict-aliasing -Wall -Werror -Wno-deprecated-declarations -Wno-stringop-truncation -Wno-restrict -Wno-unused-result -nostdlib -c -g - endif - BUILD_LFLAGS = $(LDFLAGS) - BUILD_CXXFLAGS += -Wno-unused-result diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-core/ovmf/ovmf/0003-BaseTools-header.makefile-revert-gcc-8-Wno-xxx-optio.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-core/ovmf/ovmf/0003-BaseTools-header.makefile-revert-gcc-8-Wno-xxx-optio.patch deleted file mode 100644 index 920723e3..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-core/ovmf/ovmf/0003-BaseTools-header.makefile-revert-gcc-8-Wno-xxx-optio.patch +++ /dev/null @@ -1,53 +0,0 @@ -From 6866325dd9c17412e555974dde41f9631224db52 Mon Sep 17 00:00:00 2001 -From: Laszlo Ersek -Date: Wed, 7 Mar 2018 10:17:28 +0100 -Subject: [PATCH 3/4] BaseTools/header.makefile: revert gcc-8 "-Wno-xxx" - options on OSX - -I recently added the gcc-8 specific "-Wno-stringop-truncation" and -"-Wno-restrict" options to BUILD_CFLAGS, both for "Darwin" (XCODE5 / -clang, OSX) and otherwise (gcc, Linux / Cygwin). - -I also regression-tested the change with gcc-4.8 on Linux -- gcc-4.8 does -not know either of the (gcc-8 specific) "-Wno-stringop-truncation" and -"-Wno-restrict" options, yet the build completed fine (by GCC design). - -Regarding OSX, my expectation was that - -- XCODE5 / clang would either recognize these warnings options (because - clang does recognize most -W options of gcc), - -- or, similarly to gcc, clang would simply ignore the "-Wno-xxx" flags - that it didn't recognize. - -Neither is the case; the new flags have broken the BaseTools build on OSX. -Revert them (for OSX only). - -Cc: Liming Gao -Cc: Yonghong Zhu -Reported-by: Liming Gao -Fixes: 1d212a83df0eaf32a6f5d4159beb2d77832e0231 -Fixes: 9222154ae7b3eef75ae88cdb56158256227cb929 -Contributed-under: TianoCore Contribution Agreement 1.1 -Signed-off-by: Laszlo Ersek -Reviewed-by: Liming Gao -Acked-by: Ard Biesheuvel ---- -Signed-off-by: Khem Raj -Upstream-Status: Backport - BaseTools/Source/C/Makefiles/header.makefile | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -Index: git/BaseTools/Source/C/Makefiles/header.makefile -=================================================================== ---- git.orig/BaseTools/Source/C/Makefiles/header.makefile -+++ git/BaseTools/Source/C/Makefiles/header.makefile -@@ -47,7 +47,7 @@ INCLUDE = $(TOOL_INCLUDE) -I $(MAKEROOT) - BUILD_CPPFLAGS += $(INCLUDE) -O2 - ifeq ($(DARWIN),Darwin) - # assume clang or clang compatible flags on OS X --BUILD_CFLAGS += -MD -fshort-wchar -fno-strict-aliasing -Wall -Werror -Wno-deprecated-declarations -Wno-stringop-truncation -Wno-restrict -Wno-self-assign -Wno-unused-result -nostdlib -c -g -+BUILD_CFLAGS += -MD -fshort-wchar -fno-strict-aliasing -Wall -Werror -Wno-deprecated-declarations -Wno-self-assign -Wno-unused-result -nostdlib -c -g - else - BUILD_CFLAGS += -MD -fshort-wchar -fno-strict-aliasing -Wall -Werror -Wno-deprecated-declarations -Wno-stringop-truncation -Wno-restrict -Wno-unused-result -nostdlib -c -g - endif diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-core/ovmf/ovmf/0003-BaseTools-makefile-adjust-to-build-in-under-bitbake.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-core/ovmf/ovmf/0003-BaseTools-makefile-adjust-to-build-in-under-bitbake.patch index 65b5c16d..070b0ac5 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-core/ovmf/ovmf/0003-BaseTools-makefile-adjust-to-build-in-under-bitbake.patch +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-core/ovmf/ovmf/0003-BaseTools-makefile-adjust-to-build-in-under-bitbake.patch @@ -1,6 +1,6 @@ From 2320650c6d381b914fe91b2dedaa5870279a8bcf Mon Sep 17 00:00:00 2001 From: Ricardo Neri -Date: Sun, 27 Nov 2016 18:42:55 -0800 +Date: Fri, 26 Jul 2019 17:34:26 -0400 Subject: [PATCH] BaseTools: makefile: adjust to build in under bitbake Prepend the build flags with those of bitbake. This is to build @@ -9,31 +9,42 @@ using the bitbake native sysroot include and library directories. Signed-off-by: Ricardo Neri Upstream-Status: Pending --- - BaseTools/Source/C/Makefiles/header.makefile | 8 ++++---- - 1 file changed, 4 insertions(+), 4 deletions(-) + BaseTools/Source/C/Makefiles/header.makefile | 10 +++++----- + 1 file changed, 5 insertions(+), 5 deletions(-) Index: git/BaseTools/Source/C/Makefiles/header.makefile =================================================================== --- git.orig/BaseTools/Source/C/Makefiles/header.makefile +++ git/BaseTools/Source/C/Makefiles/header.makefile -@@ -44,15 +44,15 @@ ARCH_INCLUDE = -I $(MAKEROOT)/Include/AA +@@ -62,23 +62,23 @@ $(error Bad HOST_ARCH) endif INCLUDE = $(TOOL_INCLUDE) -I $(MAKEROOT) -I $(MAKEROOT)/Include/Common -I $(MAKEROOT)/Include/ -I $(MAKEROOT)/Include/IndustryStandard -I $(MAKEROOT)/Common/ -I .. -I . $(ARCH_INCLUDE) --BUILD_CPPFLAGS = $(INCLUDE) -O2 -+BUILD_CPPFLAGS += $(INCLUDE) -O2 +-BUILD_CPPFLAGS = $(INCLUDE) ++BUILD_CPPFLAGS += $(INCLUDE) + + # keep EXTRA_OPTFLAGS last + BUILD_OPTFLAGS = -O2 $(EXTRA_OPTFLAGS) + ifeq ($(DARWIN),Darwin) # assume clang or clang compatible flags on OS X --BUILD_CFLAGS = -MD -fshort-wchar -fno-strict-aliasing -Wall -Werror -Wno-deprecated-declarations -Wno-self-assign -Wno-unused-result -nostdlib -c -g -+BUILD_CFLAGS += -MD -fshort-wchar -fno-strict-aliasing -Wall -Werror -Wno-deprecated-declarations -Wno-self-assign -Wno-unused-result -nostdlib -c -g +-BUILD_CFLAGS = -MD -fshort-wchar -fno-strict-aliasing -Wall -Werror \ ++BUILD_CFLAGS += -MD -fshort-wchar -fno-strict-aliasing -Wall -Werror \ + -Wno-deprecated-declarations -Wno-self-assign -Wno-unused-result -nostdlib -g else --BUILD_CFLAGS = -MD -fshort-wchar -fno-strict-aliasing -Wall -Werror -Wno-deprecated-declarations -Wno-unused-result -nostdlib -c -g -+BUILD_CFLAGS += -MD -fshort-wchar -fno-strict-aliasing -Wall -Werror -Wno-deprecated-declarations -Wno-unused-result -nostdlib -c -g +-BUILD_CFLAGS = -MD -fshort-wchar -fno-strict-aliasing -fwrapv \ ++BUILD_CFLAGS += -MD -fshort-wchar -fno-strict-aliasing -fwrapv \ + -fno-delete-null-pointer-checks -Wall -Werror \ + -Wno-deprecated-declarations -Wno-stringop-truncation -Wno-restrict \ + -Wno-unused-result -nostdlib -g endif -BUILD_LFLAGS = -BUILD_CXXFLAGS = -Wno-unused-result +BUILD_LFLAGS = $(LDFLAGS) +BUILD_CXXFLAGS += -Wno-unused-result - ifeq ($(ARCH), IA32) + ifeq ($(HOST_ARCH), IA32) # +-- +2.20.1 + diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-core/ovmf/ovmf/0004-BaseTools-GenVtf-silence-false-stringop-overflow-war.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-core/ovmf/ovmf/0004-BaseTools-GenVtf-silence-false-stringop-overflow-war.patch deleted file mode 100644 index 7ad7cdf0..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-core/ovmf/ovmf/0004-BaseTools-GenVtf-silence-false-stringop-overflow-war.patch +++ /dev/null @@ -1,66 +0,0 @@ -From dfb42a5bff78d9239a80731e337855234badef3e Mon Sep 17 00:00:00 2001 -From: Laszlo Ersek -Date: Fri, 2 Mar 2018 17:11:52 +0100 -Subject: [PATCH 4/4] BaseTools/GenVtf: silence false "stringop-overflow" - warning with memcpy() - -gcc-8 (which is part of Fedora 28) enables the new warning -"-Wstringop-overflow" in "-Wall". This warning is documented in detail at -; the -introduction says - -> Warn for calls to string manipulation functions such as memcpy and -> strcpy that are determined to overflow the destination buffer. - -It breaks the BaseTools build with: - -> GenVtf.c: In function 'ConvertVersionInfo': -> GenVtf.c:132:7: error: 'strncpy' specified bound depends on the length -> of the source argument [-Werror=stringop-overflow=] -> strncpy (TemStr + 4 - Length, Str, Length); -> ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -> GenVtf.c:130:14: note: length computed here -> Length = strlen(Str); -> ^~~~~~~~~~~ - -It is a false positive because, while the bound equals the length of the -source argument, the destination pointer is moved back towards the -beginning of the destination buffer by the same amount (and this amount is -range-checked first, so we can't precede the start of the dest buffer). - -Replace both strncpy() calls with memcpy(). - -Cc: Ard Biesheuvel -Cc: Cole Robinson -Cc: Liming Gao -Cc: Paolo Bonzini -Cc: Yonghong Zhu -Reported-by: Cole Robinson -Contributed-under: TianoCore Contribution Agreement 1.1 -Signed-off-by: Laszlo Ersek -Reviewed-by: Liming Gao ---- -Signed-off-by: Khem Raj -Upstream-Status: Backport - BaseTools/Source/C/GenVtf/GenVtf.c | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/BaseTools/Source/C/GenVtf/GenVtf.c b/BaseTools/Source/C/GenVtf/GenVtf.c -index 2ae9a7be2c..0cd33e71e9 100644 ---- a/BaseTools/Source/C/GenVtf/GenVtf.c -+++ b/BaseTools/Source/C/GenVtf/GenVtf.c -@@ -129,9 +129,9 @@ Returns: - } else { - Length = strlen(Str); - if (Length < 4) { -- strncpy (TemStr + 4 - Length, Str, Length); -+ memcpy (TemStr + 4 - Length, Str, Length); - } else { -- strncpy (TemStr, Str + Length - 4, 4); -+ memcpy (TemStr, Str + Length - 4, 4); - } - - sscanf ( --- -2.17.0 - diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-core/ovmf/ovmf/0007-OvmfPkg-EnrollDefaultKeys-application-for-enrolling-.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-core/ovmf/ovmf/0007-OvmfPkg-EnrollDefaultKeys-application-for-enrolling-.patch deleted file mode 100644 index 3aa6cc4a..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-core/ovmf/ovmf/0007-OvmfPkg-EnrollDefaultKeys-application-for-enrolling-.patch +++ /dev/null @@ -1,1124 +0,0 @@ -From: Laszlo Ersek -Date: Mon, 6 Jul 2015 20:22:02 +0200 -Subject: [PATCH] OvmfPkg: EnrollDefaultKeys: application for enrolling default - keys - -(A port of the patch -to Gerd's public RPMs.) - -This application is meant to be invoked by the management layer, after -booting the UEFI shell and getting a shell prompt on the serial console. -The app enrolls a number of certificates (see below), and then reports -status to the serial console as well. The expected output is "info: -success": - -> Shell> EnrollDefaultKeys.efi -> info: SetupMode=1 SecureBoot=0 SecureBootEnable=0 CustomMode=0 VendorKeys=1 -> info: SetupMode=0 SecureBoot=1 SecureBootEnable=1 CustomMode=0 VendorKeys=0 -> info: success -> Shell> - -In case of success, the management layer can force off or reboot the VM -(for example with the "reset -s" or "reset -c" UEFI shell commands, -respectively), and start the guest installation with SecureBoot enabled. - -PK: -- A unique, static, ad-hoc certificate whose private half has been - destroyed (more precisely, never saved) and is therefore unusable for - signing. (The command for creating this certificate is saved in the - source code.) - -KEK: -- same ad-hoc certificate as used for the PK, -- "Microsoft Corporation KEK CA 2011" -- the dbx data in Fedora's dbxtool - package is signed (indirectly, through a chain) with this; enrolling - such a KEK should allow guests to install those updates. - -DB: -- "Microsoft Windows Production PCA 2011" -- to load Windows 8 and Windows - Server 2012 R2, -- "Microsoft Corporation UEFI CA 2011" -- to load Linux and signed PCI - oproms. - -Contributed-under: TianoCore Contribution Agreement 1.0 -Signed-off-by: Laszlo Ersek -Upstream-Status: Inappropriate [not author] -Signed-off-by: Patrick Ohly ---- - OvmfPkg/EnrollDefaultKeys/EnrollDefaultKeys.c | 960 ++++++++++++++++++++++++ - OvmfPkg/EnrollDefaultKeys/EnrollDefaultKeys.inf | 51 ++ - OvmfPkg/OvmfPkgIa32.dsc | 4 + - OvmfPkg/OvmfPkgIa32X64.dsc | 4 + - OvmfPkg/OvmfPkgX64.dsc | 4 + - 5 files changed, 1023 insertions(+) - create mode 100644 OvmfPkg/EnrollDefaultKeys/EnrollDefaultKeys.c - create mode 100644 OvmfPkg/EnrollDefaultKeys/EnrollDefaultKeys.inf - -diff --git a/OvmfPkg/EnrollDefaultKeys/EnrollDefaultKeys.c b/OvmfPkg/EnrollDefaultKeys/EnrollDefaultKeys.c -new file mode 100644 -index 0000000..081212b ---- /dev/null -+++ b/OvmfPkg/EnrollDefaultKeys/EnrollDefaultKeys.c -@@ -0,0 +1,960 @@ -+/** @file -+ Enroll default PK, KEK, DB. -+ -+ Copyright (C) 2014, Red Hat, Inc. -+ -+ This program and the accompanying materials are licensed and made available -+ under the terms and conditions of the BSD License which accompanies this -+ distribution. The full text of the license may be found at -+ http://opensource.org/licenses/bsd-license. -+ -+ THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, WITHOUT -+ WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. -+**/ -+#include // gEfiCustomModeEnableGuid -+#include // EFI_SETUP_MODE_NAME -+#include // EFI_IMAGE_SECURITY_DATABASE -+#include // CopyGuid() -+#include // ASSERT() -+#include // FreePool() -+#include // ShellAppMain() -+#include // AsciiPrint() -+#include // gRT -+ -+// -+// The example self-signed certificate below, which we'll use for both Platform -+// Key, and first Key Exchange Key, has been generated with the following -+// non-interactive openssl command. The passphrase is read from /dev/urandom, -+// and not saved, and the private key is written to /dev/null. In other words, -+// we can't sign anything else against this certificate, which is our purpose. -+// -+/* -+ openssl req \ -+ -passout file:<(head -c 16 /dev/urandom) \ -+ -x509 \ -+ -newkey rsa:2048 \ -+ -keyout /dev/null \ -+ -outform DER \ -+ -subj $( -+ printf /C=US -+ printf /ST=TestStateOrProvince -+ printf /L=TestLocality -+ printf /O=TestOrganization -+ printf /OU=TestOrganizationalUnit -+ printf /CN=TestCommonName -+ printf /emailAddress=test@example.com -+ ) \ -+ 2>/dev/null \ -+ | xxd -i -+*/ -+STATIC CONST UINT8 ExampleCert[] = { -+ 0x30, 0x82, 0x04, 0x45, 0x30, 0x82, 0x03, 0x2d, 0xa0, 0x03, 0x02, 0x01, 0x02, -+ 0x02, 0x09, 0x00, 0xcf, 0x9f, 0x51, 0xa3, 0x07, 0xdb, 0x54, 0xa1, 0x30, 0x0d, -+ 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00, -+ 0x30, 0x81, 0xb8, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, -+ 0x02, 0x55, 0x53, 0x31, 0x1c, 0x30, 0x1a, 0x06, 0x03, 0x55, 0x04, 0x08, 0x0c, -+ 0x13, 0x54, 0x65, 0x73, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x4f, 0x72, 0x50, -+ 0x72, 0x6f, 0x76, 0x69, 0x6e, 0x63, 0x65, 0x31, 0x15, 0x30, 0x13, 0x06, 0x03, -+ 0x55, 0x04, 0x07, 0x0c, 0x0c, 0x54, 0x65, 0x73, 0x74, 0x4c, 0x6f, 0x63, 0x61, -+ 0x6c, 0x69, 0x74, 0x79, 0x31, 0x19, 0x30, 0x17, 0x06, 0x03, 0x55, 0x04, 0x0a, -+ 0x0c, 0x10, 0x54, 0x65, 0x73, 0x74, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, -+ 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x31, 0x1f, 0x30, 0x1d, 0x06, 0x03, 0x55, 0x04, -+ 0x0b, 0x0c, 0x16, 0x54, 0x65, 0x73, 0x74, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, -+ 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x55, 0x6e, 0x69, 0x74, 0x31, -+ 0x17, 0x30, 0x15, 0x06, 0x03, 0x55, 0x04, 0x03, 0x0c, 0x0e, 0x54, 0x65, 0x73, -+ 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x31, 0x1f, -+ 0x30, 0x1d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x09, 0x01, -+ 0x16, 0x10, 0x74, 0x65, 0x73, 0x74, 0x40, 0x65, 0x78, 0x61, 0x6d, 0x70, 0x6c, -+ 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x30, 0x1e, 0x17, 0x0d, 0x31, 0x34, 0x31, 0x30, -+ 0x30, 0x39, 0x31, 0x33, 0x32, 0x38, 0x32, 0x32, 0x5a, 0x17, 0x0d, 0x31, 0x34, -+ 0x31, 0x31, 0x30, 0x38, 0x31, 0x33, 0x32, 0x38, 0x32, 0x32, 0x5a, 0x30, 0x81, -+ 0xb8, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x55, -+ 0x53, 0x31, 0x1c, 0x30, 0x1a, 0x06, 0x03, 0x55, 0x04, 0x08, 0x0c, 0x13, 0x54, -+ 0x65, 0x73, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x4f, 0x72, 0x50, 0x72, 0x6f, -+ 0x76, 0x69, 0x6e, 0x63, 0x65, 0x31, 0x15, 0x30, 0x13, 0x06, 0x03, 0x55, 0x04, -+ 0x07, 0x0c, 0x0c, 0x54, 0x65, 0x73, 0x74, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x69, -+ 0x74, 0x79, 0x31, 0x19, 0x30, 0x17, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x0c, 0x10, -+ 0x54, 0x65, 0x73, 0x74, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, -+ 0x69, 0x6f, 0x6e, 0x31, 0x1f, 0x30, 0x1d, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x0c, -+ 0x16, 0x54, 0x65, 0x73, 0x74, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, -+ 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x55, 0x6e, 0x69, 0x74, 0x31, 0x17, 0x30, -+ 0x15, 0x06, 0x03, 0x55, 0x04, 0x03, 0x0c, 0x0e, 0x54, 0x65, 0x73, 0x74, 0x43, -+ 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x31, 0x1f, 0x30, 0x1d, -+ 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x09, 0x01, 0x16, 0x10, -+ 0x74, 0x65, 0x73, 0x74, 0x40, 0x65, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x2e, -+ 0x63, 0x6f, 0x6d, 0x30, 0x82, 0x01, 0x22, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, -+ 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x01, 0x05, 0x00, 0x03, 0x82, 0x01, 0x0f, -+ 0x00, 0x30, 0x82, 0x01, 0x0a, 0x02, 0x82, 0x01, 0x01, 0x00, 0xbf, 0xf1, 0xce, -+ 0x17, 0x32, 0xac, 0xc4, 0x4b, 0xb2, 0xed, 0x84, 0x76, 0xe5, 0xd0, 0xf8, 0x21, -+ 0xac, 0x10, 0xf8, 0x18, 0x09, 0x0e, 0x07, 0x13, 0x76, 0x21, 0x5c, 0xc4, 0xcc, -+ 0xd5, 0xe6, 0x25, 0xa7, 0x26, 0x53, 0x79, 0x2f, 0x16, 0x4b, 0x85, 0xbd, 0xae, -+ 0x42, 0x64, 0x58, 0xcb, 0x5e, 0xe8, 0x6e, 0x5a, 0xd0, 0xc4, 0x0f, 0x38, 0x16, -+ 0xbe, 0xd3, 0x22, 0xa7, 0x3c, 0x9b, 0x8b, 0x5e, 0xcb, 0x62, 0x35, 0xc5, 0x9b, -+ 0xe2, 0x8e, 0x4c, 0x65, 0x57, 0x4f, 0xcb, 0x27, 0xad, 0xe7, 0x63, 0xa7, 0x77, -+ 0x2b, 0xd5, 0x02, 0x42, 0x70, 0x46, 0xac, 0xba, 0xb6, 0x60, 0x57, 0xd9, 0xce, -+ 0x31, 0xc5, 0x12, 0x03, 0x4a, 0xf7, 0x2a, 0x2b, 0x40, 0x06, 0xb4, 0xdb, 0x31, -+ 0xb7, 0x83, 0x6c, 0x67, 0x87, 0x98, 0x8b, 0xce, 0x1b, 0x30, 0x7a, 0xfa, 0x35, -+ 0x6c, 0x86, 0x20, 0x74, 0xc5, 0x7d, 0x32, 0x31, 0x18, 0xeb, 0x69, 0xf7, 0x2d, -+ 0x20, 0xc4, 0xf0, 0xd2, 0xfa, 0x67, 0x81, 0xc1, 0xbb, 0x23, 0xbb, 0x75, 0x1a, -+ 0xe4, 0xb4, 0x49, 0x99, 0xdf, 0x12, 0x4c, 0xe3, 0x6d, 0x76, 0x24, 0x85, 0x24, -+ 0xae, 0x5a, 0x9e, 0xbd, 0x54, 0x1c, 0xf9, 0x0e, 0xed, 0x96, 0xb5, 0xd8, 0xa2, -+ 0x0d, 0x2a, 0x38, 0x5d, 0x12, 0x97, 0xb0, 0x4d, 0x75, 0x85, 0x1e, 0x47, 0x6d, -+ 0xe1, 0x25, 0x59, 0xcb, 0xe9, 0x33, 0x86, 0x6a, 0xef, 0x98, 0x24, 0xa0, 0x2b, -+ 0x02, 0x7b, 0xc0, 0x9f, 0x88, 0x03, 0xb0, 0xbe, 0x22, 0x65, 0x83, 0x77, 0xb3, -+ 0x30, 0xba, 0xe0, 0x3b, 0x54, 0x31, 0x3a, 0x45, 0x81, 0x9c, 0x48, 0xaf, 0xc1, -+ 0x11, 0x5b, 0xf2, 0x3a, 0x1e, 0x33, 0x1b, 0x8f, 0x0e, 0x04, 0xa4, 0x16, 0xd4, -+ 0x6b, 0x57, 0xee, 0xe7, 0xba, 0xf5, 0xee, 0xaf, 0xe2, 0x4c, 0x50, 0xf8, 0x68, -+ 0x57, 0x88, 0xfb, 0x7f, 0xa3, 0xcf, 0x02, 0x03, 0x01, 0x00, 0x01, 0xa3, 0x50, -+ 0x30, 0x4e, 0x30, 0x1d, 0x06, 0x03, 0x55, 0x1d, 0x0e, 0x04, 0x16, 0x04, 0x14, -+ 0x1e, 0x44, 0xe5, 0xef, 0xcd, 0x6e, 0x1f, 0xdb, 0xcb, 0x4f, 0x94, 0x8f, 0xe3, -+ 0x3b, 0x1a, 0x8c, 0xe6, 0x95, 0x29, 0x61, 0x30, 0x1f, 0x06, 0x03, 0x55, 0x1d, -+ 0x23, 0x04, 0x18, 0x30, 0x16, 0x80, 0x14, 0x1e, 0x44, 0xe5, 0xef, 0xcd, 0x6e, -+ 0x1f, 0xdb, 0xcb, 0x4f, 0x94, 0x8f, 0xe3, 0x3b, 0x1a, 0x8c, 0xe6, 0x95, 0x29, -+ 0x61, 0x30, 0x0c, 0x06, 0x03, 0x55, 0x1d, 0x13, 0x04, 0x05, 0x30, 0x03, 0x01, -+ 0x01, 0xff, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, -+ 0x01, 0x0b, 0x05, 0x00, 0x03, 0x82, 0x01, 0x01, 0x00, 0x12, 0x9c, 0x3e, 0x38, -+ 0xfc, 0x26, 0xea, 0x6d, 0xb7, 0x5c, 0x29, 0x3c, 0x76, 0x20, 0x0c, 0xb2, 0xa9, -+ 0x0f, 0xdf, 0xc0, 0x85, 0xfe, 0xeb, 0xec, 0x1d, 0x5d, 0x73, 0x84, 0xac, 0x8a, -+ 0xb4, 0x2a, 0x86, 0x38, 0x30, 0xaf, 0xd2, 0x2d, 0x2a, 0xde, 0x54, 0xc8, 0x5c, -+ 0x29, 0x90, 0x24, 0xf2, 0x39, 0xc1, 0xa5, 0x00, 0xb4, 0xb7, 0xd8, 0xdc, 0x59, -+ 0x64, 0x50, 0x62, 0x5f, 0x54, 0xf1, 0x73, 0x02, 0x4d, 0x43, 0xc5, 0xc3, 0xc4, -+ 0x0e, 0x62, 0x60, 0x8c, 0x53, 0x66, 0x57, 0x77, 0xb5, 0x81, 0xda, 0x1f, 0x81, -+ 0xda, 0xe9, 0xd6, 0x5e, 0x82, 0xce, 0xa7, 0x5c, 0xc0, 0xa6, 0xbe, 0x9c, 0x5c, -+ 0x7b, 0xa5, 0x15, 0xc8, 0xd7, 0x14, 0x53, 0xd3, 0x5c, 0x1c, 0x9f, 0x8a, 0x9f, -+ 0x66, 0x15, 0xd5, 0xd3, 0x2a, 0x27, 0x0c, 0xee, 0x9f, 0x80, 0x39, 0x88, 0x7b, -+ 0x24, 0xde, 0x0c, 0x61, 0xa3, 0x44, 0xd8, 0x8d, 0x2e, 0x79, 0xf8, 0x1e, 0x04, -+ 0x5a, 0xcb, 0xd6, 0x9c, 0xa3, 0x22, 0x8f, 0x09, 0x32, 0x1e, 0xe1, 0x65, 0x8f, -+ 0x10, 0x5f, 0xd8, 0x52, 0x56, 0xd5, 0x77, 0xac, 0x58, 0x46, 0x60, 0xba, 0x2e, -+ 0xe2, 0x3f, 0x58, 0x7d, 0x60, 0xfc, 0x31, 0x4a, 0x3a, 0xaf, 0x61, 0x55, 0x5f, -+ 0xfb, 0x68, 0x14, 0x74, 0xda, 0xdc, 0x42, 0x78, 0xcc, 0xee, 0xff, 0x5c, 0x03, -+ 0x24, 0x26, 0x2c, 0xb8, 0x3a, 0x81, 0xad, 0xdb, 0xe7, 0xed, 0xe1, 0x62, 0x84, -+ 0x07, 0x1a, 0xc8, 0xa4, 0x4e, 0xb0, 0x87, 0xf7, 0x96, 0xd8, 0x33, 0x9b, 0x0d, -+ 0xa7, 0x77, 0xae, 0x5b, 0xaf, 0xad, 0xe6, 0x5a, 0xc9, 0xfa, 0xa4, 0xe4, 0xe5, -+ 0x57, 0xbb, 0x97, 0xdd, 0x92, 0x85, 0xd8, 0x03, 0x45, 0xfe, 0xd8, 0x6b, 0xb1, -+ 0xdb, 0x85, 0x36, 0xb9, 0xd9, 0x28, 0xbf, 0x17, 0xae, 0x11, 0xde, 0x10, 0x19, -+ 0x26, 0x5b, 0xc0, 0x3d, 0xc7 -+}; -+ -+// -+// Second KEK: "Microsoft Corporation KEK CA 2011". -+// SHA1: 31:59:0b:fd:89:c9:d7:4e:d0:87:df:ac:66:33:4b:39:31:25:4b:30 -+// -+// "dbx" updates in "dbxtool" are signed with a key derived from this KEK. -+// -+STATIC CONST UINT8 MicrosoftKEK[] = { -+ 0x30, 0x82, 0x05, 0xe8, 0x30, 0x82, 0x03, 0xd0, 0xa0, 0x03, 0x02, 0x01, 0x02, -+ 0x02, 0x0a, 0x61, 0x0a, 0xd1, 0x88, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x30, -+ 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05, -+ 0x00, 0x30, 0x81, 0x91, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, -+ 0x13, 0x02, 0x55, 0x53, 0x31, 0x13, 0x30, 0x11, 0x06, 0x03, 0x55, 0x04, 0x08, -+ 0x13, 0x0a, 0x57, 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x74, 0x6f, 0x6e, 0x31, -+ 0x10, 0x30, 0x0e, 0x06, 0x03, 0x55, 0x04, 0x07, 0x13, 0x07, 0x52, 0x65, 0x64, -+ 0x6d, 0x6f, 0x6e, 0x64, 0x31, 0x1e, 0x30, 0x1c, 0x06, 0x03, 0x55, 0x04, 0x0a, -+ 0x13, 0x15, 0x4d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x6f, 0x66, 0x74, 0x20, 0x43, -+ 0x6f, 0x72, 0x70, 0x6f, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x31, 0x3b, 0x30, -+ 0x39, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x32, 0x4d, 0x69, 0x63, 0x72, 0x6f, -+ 0x73, 0x6f, 0x66, 0x74, 0x20, 0x43, 0x6f, 0x72, 0x70, 0x6f, 0x72, 0x61, 0x74, -+ 0x69, 0x6f, 0x6e, 0x20, 0x54, 0x68, 0x69, 0x72, 0x64, 0x20, 0x50, 0x61, 0x72, -+ 0x74, 0x79, 0x20, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x70, 0x6c, 0x61, 0x63, -+ 0x65, 0x20, 0x52, 0x6f, 0x6f, 0x74, 0x30, 0x1e, 0x17, 0x0d, 0x31, 0x31, 0x30, -+ 0x36, 0x32, 0x34, 0x32, 0x30, 0x34, 0x31, 0x32, 0x39, 0x5a, 0x17, 0x0d, 0x32, -+ 0x36, 0x30, 0x36, 0x32, 0x34, 0x32, 0x30, 0x35, 0x31, 0x32, 0x39, 0x5a, 0x30, -+ 0x81, 0x80, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, -+ 0x55, 0x53, 0x31, 0x13, 0x30, 0x11, 0x06, 0x03, 0x55, 0x04, 0x08, 0x13, 0x0a, -+ 0x57, 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x74, 0x6f, 0x6e, 0x31, 0x10, 0x30, -+ 0x0e, 0x06, 0x03, 0x55, 0x04, 0x07, 0x13, 0x07, 0x52, 0x65, 0x64, 0x6d, 0x6f, -+ 0x6e, 0x64, 0x31, 0x1e, 0x30, 0x1c, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x15, -+ 0x4d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x6f, 0x66, 0x74, 0x20, 0x43, 0x6f, 0x72, -+ 0x70, 0x6f, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x31, 0x2a, 0x30, 0x28, 0x06, -+ 0x03, 0x55, 0x04, 0x03, 0x13, 0x21, 0x4d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x6f, -+ 0x66, 0x74, 0x20, 0x43, 0x6f, 0x72, 0x70, 0x6f, 0x72, 0x61, 0x74, 0x69, 0x6f, -+ 0x6e, 0x20, 0x4b, 0x45, 0x4b, 0x20, 0x43, 0x41, 0x20, 0x32, 0x30, 0x31, 0x31, -+ 0x30, 0x82, 0x01, 0x22, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, -+ 0x0d, 0x01, 0x01, 0x01, 0x05, 0x00, 0x03, 0x82, 0x01, 0x0f, 0x00, 0x30, 0x82, -+ 0x01, 0x0a, 0x02, 0x82, 0x01, 0x01, 0x00, 0xc4, 0xe8, 0xb5, 0x8a, 0xbf, 0xad, -+ 0x57, 0x26, 0xb0, 0x26, 0xc3, 0xea, 0xe7, 0xfb, 0x57, 0x7a, 0x44, 0x02, 0x5d, -+ 0x07, 0x0d, 0xda, 0x4a, 0xe5, 0x74, 0x2a, 0xe6, 0xb0, 0x0f, 0xec, 0x6d, 0xeb, -+ 0xec, 0x7f, 0xb9, 0xe3, 0x5a, 0x63, 0x32, 0x7c, 0x11, 0x17, 0x4f, 0x0e, 0xe3, -+ 0x0b, 0xa7, 0x38, 0x15, 0x93, 0x8e, 0xc6, 0xf5, 0xe0, 0x84, 0xb1, 0x9a, 0x9b, -+ 0x2c, 0xe7, 0xf5, 0xb7, 0x91, 0xd6, 0x09, 0xe1, 0xe2, 0xc0, 0x04, 0xa8, 0xac, -+ 0x30, 0x1c, 0xdf, 0x48, 0xf3, 0x06, 0x50, 0x9a, 0x64, 0xa7, 0x51, 0x7f, 0xc8, -+ 0x85, 0x4f, 0x8f, 0x20, 0x86, 0xce, 0xfe, 0x2f, 0xe1, 0x9f, 0xff, 0x82, 0xc0, -+ 0xed, 0xe9, 0xcd, 0xce, 0xf4, 0x53, 0x6a, 0x62, 0x3a, 0x0b, 0x43, 0xb9, 0xe2, -+ 0x25, 0xfd, 0xfe, 0x05, 0xf9, 0xd4, 0xc4, 0x14, 0xab, 0x11, 0xe2, 0x23, 0x89, -+ 0x8d, 0x70, 0xb7, 0xa4, 0x1d, 0x4d, 0xec, 0xae, 0xe5, 0x9c, 0xfa, 0x16, 0xc2, -+ 0xd7, 0xc1, 0xcb, 0xd4, 0xe8, 0xc4, 0x2f, 0xe5, 0x99, 0xee, 0x24, 0x8b, 0x03, -+ 0xec, 0x8d, 0xf2, 0x8b, 0xea, 0xc3, 0x4a, 0xfb, 0x43, 0x11, 0x12, 0x0b, 0x7e, -+ 0xb5, 0x47, 0x92, 0x6c, 0xdc, 0xe6, 0x04, 0x89, 0xeb, 0xf5, 0x33, 0x04, 0xeb, -+ 0x10, 0x01, 0x2a, 0x71, 0xe5, 0xf9, 0x83, 0x13, 0x3c, 0xff, 0x25, 0x09, 0x2f, -+ 0x68, 0x76, 0x46, 0xff, 0xba, 0x4f, 0xbe, 0xdc, 0xad, 0x71, 0x2a, 0x58, 0xaa, -+ 0xfb, 0x0e, 0xd2, 0x79, 0x3d, 0xe4, 0x9b, 0x65, 0x3b, 0xcc, 0x29, 0x2a, 0x9f, -+ 0xfc, 0x72, 0x59, 0xa2, 0xeb, 0xae, 0x92, 0xef, 0xf6, 0x35, 0x13, 0x80, 0xc6, -+ 0x02, 0xec, 0xe4, 0x5f, 0xcc, 0x9d, 0x76, 0xcd, 0xef, 0x63, 0x92, 0xc1, 0xaf, -+ 0x79, 0x40, 0x84, 0x79, 0x87, 0x7f, 0xe3, 0x52, 0xa8, 0xe8, 0x9d, 0x7b, 0x07, -+ 0x69, 0x8f, 0x15, 0x02, 0x03, 0x01, 0x00, 0x01, 0xa3, 0x82, 0x01, 0x4f, 0x30, -+ 0x82, 0x01, 0x4b, 0x30, 0x10, 0x06, 0x09, 0x2b, 0x06, 0x01, 0x04, 0x01, 0x82, -+ 0x37, 0x15, 0x01, 0x04, 0x03, 0x02, 0x01, 0x00, 0x30, 0x1d, 0x06, 0x03, 0x55, -+ 0x1d, 0x0e, 0x04, 0x16, 0x04, 0x14, 0x62, 0xfc, 0x43, 0xcd, 0xa0, 0x3e, 0xa4, -+ 0xcb, 0x67, 0x12, 0xd2, 0x5b, 0xd9, 0x55, 0xac, 0x7b, 0xcc, 0xb6, 0x8a, 0x5f, -+ 0x30, 0x19, 0x06, 0x09, 0x2b, 0x06, 0x01, 0x04, 0x01, 0x82, 0x37, 0x14, 0x02, -+ 0x04, 0x0c, 0x1e, 0x0a, 0x00, 0x53, 0x00, 0x75, 0x00, 0x62, 0x00, 0x43, 0x00, -+ 0x41, 0x30, 0x0b, 0x06, 0x03, 0x55, 0x1d, 0x0f, 0x04, 0x04, 0x03, 0x02, 0x01, -+ 0x86, 0x30, 0x0f, 0x06, 0x03, 0x55, 0x1d, 0x13, 0x01, 0x01, 0xff, 0x04, 0x05, -+ 0x30, 0x03, 0x01, 0x01, 0xff, 0x30, 0x1f, 0x06, 0x03, 0x55, 0x1d, 0x23, 0x04, -+ 0x18, 0x30, 0x16, 0x80, 0x14, 0x45, 0x66, 0x52, 0x43, 0xe1, 0x7e, 0x58, 0x11, -+ 0xbf, 0xd6, 0x4e, 0x9e, 0x23, 0x55, 0x08, 0x3b, 0x3a, 0x22, 0x6a, 0xa8, 0x30, -+ 0x5c, 0x06, 0x03, 0x55, 0x1d, 0x1f, 0x04, 0x55, 0x30, 0x53, 0x30, 0x51, 0xa0, -+ 0x4f, 0xa0, 0x4d, 0x86, 0x4b, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x63, -+ 0x72, 0x6c, 0x2e, 0x6d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x6f, 0x66, 0x74, 0x2e, -+ 0x63, 0x6f, 0x6d, 0x2f, 0x70, 0x6b, 0x69, 0x2f, 0x63, 0x72, 0x6c, 0x2f, 0x70, -+ 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x73, 0x2f, 0x4d, 0x69, 0x63, 0x43, 0x6f, -+ 0x72, 0x54, 0x68, 0x69, 0x50, 0x61, 0x72, 0x4d, 0x61, 0x72, 0x52, 0x6f, 0x6f, -+ 0x5f, 0x32, 0x30, 0x31, 0x30, 0x2d, 0x31, 0x30, 0x2d, 0x30, 0x35, 0x2e, 0x63, -+ 0x72, 0x6c, 0x30, 0x60, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x01, -+ 0x01, 0x04, 0x54, 0x30, 0x52, 0x30, 0x50, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, -+ 0x05, 0x07, 0x30, 0x02, 0x86, 0x44, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, -+ 0x77, 0x77, 0x77, 0x2e, 0x6d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x6f, 0x66, 0x74, -+ 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x70, 0x6b, 0x69, 0x2f, 0x63, 0x65, 0x72, 0x74, -+ 0x73, 0x2f, 0x4d, 0x69, 0x63, 0x43, 0x6f, 0x72, 0x54, 0x68, 0x69, 0x50, 0x61, -+ 0x72, 0x4d, 0x61, 0x72, 0x52, 0x6f, 0x6f, 0x5f, 0x32, 0x30, 0x31, 0x30, 0x2d, -+ 0x31, 0x30, 0x2d, 0x30, 0x35, 0x2e, 0x63, 0x72, 0x74, 0x30, 0x0d, 0x06, 0x09, -+ 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00, 0x03, 0x82, -+ 0x02, 0x01, 0x00, 0xd4, 0x84, 0x88, 0xf5, 0x14, 0x94, 0x18, 0x02, 0xca, 0x2a, -+ 0x3c, 0xfb, 0x2a, 0x92, 0x1c, 0x0c, 0xd7, 0xa0, 0xd1, 0xf1, 0xe8, 0x52, 0x66, -+ 0xa8, 0xee, 0xa2, 0xb5, 0x75, 0x7a, 0x90, 0x00, 0xaa, 0x2d, 0xa4, 0x76, 0x5a, -+ 0xea, 0x79, 0xb7, 0xb9, 0x37, 0x6a, 0x51, 0x7b, 0x10, 0x64, 0xf6, 0xe1, 0x64, -+ 0xf2, 0x02, 0x67, 0xbe, 0xf7, 0xa8, 0x1b, 0x78, 0xbd, 0xba, 0xce, 0x88, 0x58, -+ 0x64, 0x0c, 0xd6, 0x57, 0xc8, 0x19, 0xa3, 0x5f, 0x05, 0xd6, 0xdb, 0xc6, 0xd0, -+ 0x69, 0xce, 0x48, 0x4b, 0x32, 0xb7, 0xeb, 0x5d, 0xd2, 0x30, 0xf5, 0xc0, 0xf5, -+ 0xb8, 0xba, 0x78, 0x07, 0xa3, 0x2b, 0xfe, 0x9b, 0xdb, 0x34, 0x56, 0x84, 0xec, -+ 0x82, 0xca, 0xae, 0x41, 0x25, 0x70, 0x9c, 0x6b, 0xe9, 0xfe, 0x90, 0x0f, 0xd7, -+ 0x96, 0x1f, 0xe5, 0xe7, 0x94, 0x1f, 0xb2, 0x2a, 0x0c, 0x8d, 0x4b, 0xff, 0x28, -+ 0x29, 0x10, 0x7b, 0xf7, 0xd7, 0x7c, 0xa5, 0xd1, 0x76, 0xb9, 0x05, 0xc8, 0x79, -+ 0xed, 0x0f, 0x90, 0x92, 0x9c, 0xc2, 0xfe, 0xdf, 0x6f, 0x7e, 0x6c, 0x0f, 0x7b, -+ 0xd4, 0xc1, 0x45, 0xdd, 0x34, 0x51, 0x96, 0x39, 0x0f, 0xe5, 0x5e, 0x56, 0xd8, -+ 0x18, 0x05, 0x96, 0xf4, 0x07, 0xa6, 0x42, 0xb3, 0xa0, 0x77, 0xfd, 0x08, 0x19, -+ 0xf2, 0x71, 0x56, 0xcc, 0x9f, 0x86, 0x23, 0xa4, 0x87, 0xcb, 0xa6, 0xfd, 0x58, -+ 0x7e, 0xd4, 0x69, 0x67, 0x15, 0x91, 0x7e, 0x81, 0xf2, 0x7f, 0x13, 0xe5, 0x0d, -+ 0x8b, 0x8a, 0x3c, 0x87, 0x84, 0xeb, 0xe3, 0xce, 0xbd, 0x43, 0xe5, 0xad, 0x2d, -+ 0x84, 0x93, 0x8e, 0x6a, 0x2b, 0x5a, 0x7c, 0x44, 0xfa, 0x52, 0xaa, 0x81, 0xc8, -+ 0x2d, 0x1c, 0xbb, 0xe0, 0x52, 0xdf, 0x00, 0x11, 0xf8, 0x9a, 0x3d, 0xc1, 0x60, -+ 0xb0, 0xe1, 0x33, 0xb5, 0xa3, 0x88, 0xd1, 0x65, 0x19, 0x0a, 0x1a, 0xe7, 0xac, -+ 0x7c, 0xa4, 0xc1, 0x82, 0x87, 0x4e, 0x38, 0xb1, 0x2f, 0x0d, 0xc5, 0x14, 0x87, -+ 0x6f, 0xfd, 0x8d, 0x2e, 0xbc, 0x39, 0xb6, 0xe7, 0xe6, 0xc3, 0xe0, 0xe4, 0xcd, -+ 0x27, 0x84, 0xef, 0x94, 0x42, 0xef, 0x29, 0x8b, 0x90, 0x46, 0x41, 0x3b, 0x81, -+ 0x1b, 0x67, 0xd8, 0xf9, 0x43, 0x59, 0x65, 0xcb, 0x0d, 0xbc, 0xfd, 0x00, 0x92, -+ 0x4f, 0xf4, 0x75, 0x3b, 0xa7, 0xa9, 0x24, 0xfc, 0x50, 0x41, 0x40, 0x79, 0xe0, -+ 0x2d, 0x4f, 0x0a, 0x6a, 0x27, 0x76, 0x6e, 0x52, 0xed, 0x96, 0x69, 0x7b, 0xaf, -+ 0x0f, 0xf7, 0x87, 0x05, 0xd0, 0x45, 0xc2, 0xad, 0x53, 0x14, 0x81, 0x1f, 0xfb, -+ 0x30, 0x04, 0xaa, 0x37, 0x36, 0x61, 0xda, 0x4a, 0x69, 0x1b, 0x34, 0xd8, 0x68, -+ 0xed, 0xd6, 0x02, 0xcf, 0x6c, 0x94, 0x0c, 0xd3, 0xcf, 0x6c, 0x22, 0x79, 0xad, -+ 0xb1, 0xf0, 0xbc, 0x03, 0xa2, 0x46, 0x60, 0xa9, 0xc4, 0x07, 0xc2, 0x21, 0x82, -+ 0xf1, 0xfd, 0xf2, 0xe8, 0x79, 0x32, 0x60, 0xbf, 0xd8, 0xac, 0xa5, 0x22, 0x14, -+ 0x4b, 0xca, 0xc1, 0xd8, 0x4b, 0xeb, 0x7d, 0x3f, 0x57, 0x35, 0xb2, 0xe6, 0x4f, -+ 0x75, 0xb4, 0xb0, 0x60, 0x03, 0x22, 0x53, 0xae, 0x91, 0x79, 0x1d, 0xd6, 0x9b, -+ 0x41, 0x1f, 0x15, 0x86, 0x54, 0x70, 0xb2, 0xde, 0x0d, 0x35, 0x0f, 0x7c, 0xb0, -+ 0x34, 0x72, 0xba, 0x97, 0x60, 0x3b, 0xf0, 0x79, 0xeb, 0xa2, 0xb2, 0x1c, 0x5d, -+ 0xa2, 0x16, 0xb8, 0x87, 0xc5, 0xe9, 0x1b, 0xf6, 0xb5, 0x97, 0x25, 0x6f, 0x38, -+ 0x9f, 0xe3, 0x91, 0xfa, 0x8a, 0x79, 0x98, 0xc3, 0x69, 0x0e, 0xb7, 0xa3, 0x1c, -+ 0x20, 0x05, 0x97, 0xf8, 0xca, 0x14, 0xae, 0x00, 0xd7, 0xc4, 0xf3, 0xc0, 0x14, -+ 0x10, 0x75, 0x6b, 0x34, 0xa0, 0x1b, 0xb5, 0x99, 0x60, 0xf3, 0x5c, 0xb0, 0xc5, -+ 0x57, 0x4e, 0x36, 0xd2, 0x32, 0x84, 0xbf, 0x9e -+}; -+ -+// -+// First DB entry: "Microsoft Windows Production PCA 2011" -+// SHA1: 58:0a:6f:4c:c4:e4:b6:69:b9:eb:dc:1b:2b:3e:08:7b:80:d0:67:8d -+// -+// Windows 8 and Windows Server 2012 R2 boot loaders are signed with a chain -+// rooted in this certificate. -+// -+STATIC CONST UINT8 MicrosoftPCA[] = { -+ 0x30, 0x82, 0x05, 0xd7, 0x30, 0x82, 0x03, 0xbf, 0xa0, 0x03, 0x02, 0x01, 0x02, -+ 0x02, 0x0a, 0x61, 0x07, 0x76, 0x56, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x30, -+ 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05, -+ 0x00, 0x30, 0x81, 0x88, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, -+ 0x13, 0x02, 0x55, 0x53, 0x31, 0x13, 0x30, 0x11, 0x06, 0x03, 0x55, 0x04, 0x08, -+ 0x13, 0x0a, 0x57, 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x74, 0x6f, 0x6e, 0x31, -+ 0x10, 0x30, 0x0e, 0x06, 0x03, 0x55, 0x04, 0x07, 0x13, 0x07, 0x52, 0x65, 0x64, -+ 0x6d, 0x6f, 0x6e, 0x64, 0x31, 0x1e, 0x30, 0x1c, 0x06, 0x03, 0x55, 0x04, 0x0a, -+ 0x13, 0x15, 0x4d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x6f, 0x66, 0x74, 0x20, 0x43, -+ 0x6f, 0x72, 0x70, 0x6f, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x31, 0x32, 0x30, -+ 0x30, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x29, 0x4d, 0x69, 0x63, 0x72, 0x6f, -+ 0x73, 0x6f, 0x66, 0x74, 0x20, 0x52, 0x6f, 0x6f, 0x74, 0x20, 0x43, 0x65, 0x72, -+ 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x20, 0x41, 0x75, 0x74, 0x68, -+ 0x6f, 0x72, 0x69, 0x74, 0x79, 0x20, 0x32, 0x30, 0x31, 0x30, 0x30, 0x1e, 0x17, -+ 0x0d, 0x31, 0x31, 0x31, 0x30, 0x31, 0x39, 0x31, 0x38, 0x34, 0x31, 0x34, 0x32, -+ 0x5a, 0x17, 0x0d, 0x32, 0x36, 0x31, 0x30, 0x31, 0x39, 0x31, 0x38, 0x35, 0x31, -+ 0x34, 0x32, 0x5a, 0x30, 0x81, 0x84, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, -+ 0x04, 0x06, 0x13, 0x02, 0x55, 0x53, 0x31, 0x13, 0x30, 0x11, 0x06, 0x03, 0x55, -+ 0x04, 0x08, 0x13, 0x0a, 0x57, 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x74, 0x6f, -+ 0x6e, 0x31, 0x10, 0x30, 0x0e, 0x06, 0x03, 0x55, 0x04, 0x07, 0x13, 0x07, 0x52, -+ 0x65, 0x64, 0x6d, 0x6f, 0x6e, 0x64, 0x31, 0x1e, 0x30, 0x1c, 0x06, 0x03, 0x55, -+ 0x04, 0x0a, 0x13, 0x15, 0x4d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x6f, 0x66, 0x74, -+ 0x20, 0x43, 0x6f, 0x72, 0x70, 0x6f, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x31, -+ 0x2e, 0x30, 0x2c, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x25, 0x4d, 0x69, 0x63, -+ 0x72, 0x6f, 0x73, 0x6f, 0x66, 0x74, 0x20, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, -+ 0x73, 0x20, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, -+ 0x50, 0x43, 0x41, 0x20, 0x32, 0x30, 0x31, 0x31, 0x30, 0x82, 0x01, 0x22, 0x30, -+ 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x01, 0x05, -+ 0x00, 0x03, 0x82, 0x01, 0x0f, 0x00, 0x30, 0x82, 0x01, 0x0a, 0x02, 0x82, 0x01, -+ 0x01, 0x00, 0xdd, 0x0c, 0xbb, 0xa2, 0xe4, 0x2e, 0x09, 0xe3, 0xe7, 0xc5, 0xf7, -+ 0x96, 0x69, 0xbc, 0x00, 0x21, 0xbd, 0x69, 0x33, 0x33, 0xef, 0xad, 0x04, 0xcb, -+ 0x54, 0x80, 0xee, 0x06, 0x83, 0xbb, 0xc5, 0x20, 0x84, 0xd9, 0xf7, 0xd2, 0x8b, -+ 0xf3, 0x38, 0xb0, 0xab, 0xa4, 0xad, 0x2d, 0x7c, 0x62, 0x79, 0x05, 0xff, 0xe3, -+ 0x4a, 0x3f, 0x04, 0x35, 0x20, 0x70, 0xe3, 0xc4, 0xe7, 0x6b, 0xe0, 0x9c, 0xc0, -+ 0x36, 0x75, 0xe9, 0x8a, 0x31, 0xdd, 0x8d, 0x70, 0xe5, 0xdc, 0x37, 0xb5, 0x74, -+ 0x46, 0x96, 0x28, 0x5b, 0x87, 0x60, 0x23, 0x2c, 0xbf, 0xdc, 0x47, 0xa5, 0x67, -+ 0xf7, 0x51, 0x27, 0x9e, 0x72, 0xeb, 0x07, 0xa6, 0xc9, 0xb9, 0x1e, 0x3b, 0x53, -+ 0x35, 0x7c, 0xe5, 0xd3, 0xec, 0x27, 0xb9, 0x87, 0x1c, 0xfe, 0xb9, 0xc9, 0x23, -+ 0x09, 0x6f, 0xa8, 0x46, 0x91, 0xc1, 0x6e, 0x96, 0x3c, 0x41, 0xd3, 0xcb, 0xa3, -+ 0x3f, 0x5d, 0x02, 0x6a, 0x4d, 0xec, 0x69, 0x1f, 0x25, 0x28, 0x5c, 0x36, 0xff, -+ 0xfd, 0x43, 0x15, 0x0a, 0x94, 0xe0, 0x19, 0xb4, 0xcf, 0xdf, 0xc2, 0x12, 0xe2, -+ 0xc2, 0x5b, 0x27, 0xee, 0x27, 0x78, 0x30, 0x8b, 0x5b, 0x2a, 0x09, 0x6b, 0x22, -+ 0x89, 0x53, 0x60, 0x16, 0x2c, 0xc0, 0x68, 0x1d, 0x53, 0xba, 0xec, 0x49, 0xf3, -+ 0x9d, 0x61, 0x8c, 0x85, 0x68, 0x09, 0x73, 0x44, 0x5d, 0x7d, 0xa2, 0x54, 0x2b, -+ 0xdd, 0x79, 0xf7, 0x15, 0xcf, 0x35, 0x5d, 0x6c, 0x1c, 0x2b, 0x5c, 0xce, 0xbc, -+ 0x9c, 0x23, 0x8b, 0x6f, 0x6e, 0xb5, 0x26, 0xd9, 0x36, 0x13, 0xc3, 0x4f, 0xd6, -+ 0x27, 0xae, 0xb9, 0x32, 0x3b, 0x41, 0x92, 0x2c, 0xe1, 0xc7, 0xcd, 0x77, 0xe8, -+ 0xaa, 0x54, 0x4e, 0xf7, 0x5c, 0x0b, 0x04, 0x87, 0x65, 0xb4, 0x43, 0x18, 0xa8, -+ 0xb2, 0xe0, 0x6d, 0x19, 0x77, 0xec, 0x5a, 0x24, 0xfa, 0x48, 0x03, 0x02, 0x03, -+ 0x01, 0x00, 0x01, 0xa3, 0x82, 0x01, 0x43, 0x30, 0x82, 0x01, 0x3f, 0x30, 0x10, -+ 0x06, 0x09, 0x2b, 0x06, 0x01, 0x04, 0x01, 0x82, 0x37, 0x15, 0x01, 0x04, 0x03, -+ 0x02, 0x01, 0x00, 0x30, 0x1d, 0x06, 0x03, 0x55, 0x1d, 0x0e, 0x04, 0x16, 0x04, -+ 0x14, 0xa9, 0x29, 0x02, 0x39, 0x8e, 0x16, 0xc4, 0x97, 0x78, 0xcd, 0x90, 0xf9, -+ 0x9e, 0x4f, 0x9a, 0xe1, 0x7c, 0x55, 0xaf, 0x53, 0x30, 0x19, 0x06, 0x09, 0x2b, -+ 0x06, 0x01, 0x04, 0x01, 0x82, 0x37, 0x14, 0x02, 0x04, 0x0c, 0x1e, 0x0a, 0x00, -+ 0x53, 0x00, 0x75, 0x00, 0x62, 0x00, 0x43, 0x00, 0x41, 0x30, 0x0b, 0x06, 0x03, -+ 0x55, 0x1d, 0x0f, 0x04, 0x04, 0x03, 0x02, 0x01, 0x86, 0x30, 0x0f, 0x06, 0x03, -+ 0x55, 0x1d, 0x13, 0x01, 0x01, 0xff, 0x04, 0x05, 0x30, 0x03, 0x01, 0x01, 0xff, -+ 0x30, 0x1f, 0x06, 0x03, 0x55, 0x1d, 0x23, 0x04, 0x18, 0x30, 0x16, 0x80, 0x14, -+ 0xd5, 0xf6, 0x56, 0xcb, 0x8f, 0xe8, 0xa2, 0x5c, 0x62, 0x68, 0xd1, 0x3d, 0x94, -+ 0x90, 0x5b, 0xd7, 0xce, 0x9a, 0x18, 0xc4, 0x30, 0x56, 0x06, 0x03, 0x55, 0x1d, -+ 0x1f, 0x04, 0x4f, 0x30, 0x4d, 0x30, 0x4b, 0xa0, 0x49, 0xa0, 0x47, 0x86, 0x45, -+ 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x63, 0x72, 0x6c, 0x2e, 0x6d, 0x69, -+ 0x63, 0x72, 0x6f, 0x73, 0x6f, 0x66, 0x74, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x70, -+ 0x6b, 0x69, 0x2f, 0x63, 0x72, 0x6c, 0x2f, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, -+ 0x74, 0x73, 0x2f, 0x4d, 0x69, 0x63, 0x52, 0x6f, 0x6f, 0x43, 0x65, 0x72, 0x41, -+ 0x75, 0x74, 0x5f, 0x32, 0x30, 0x31, 0x30, 0x2d, 0x30, 0x36, 0x2d, 0x32, 0x33, -+ 0x2e, 0x63, 0x72, 0x6c, 0x30, 0x5a, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, -+ 0x07, 0x01, 0x01, 0x04, 0x4e, 0x30, 0x4c, 0x30, 0x4a, 0x06, 0x08, 0x2b, 0x06, -+ 0x01, 0x05, 0x05, 0x07, 0x30, 0x02, 0x86, 0x3e, 0x68, 0x74, 0x74, 0x70, 0x3a, -+ 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x6d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x6f, -+ 0x66, 0x74, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x70, 0x6b, 0x69, 0x2f, 0x63, 0x65, -+ 0x72, 0x74, 0x73, 0x2f, 0x4d, 0x69, 0x63, 0x52, 0x6f, 0x6f, 0x43, 0x65, 0x72, -+ 0x41, 0x75, 0x74, 0x5f, 0x32, 0x30, 0x31, 0x30, 0x2d, 0x30, 0x36, 0x2d, 0x32, -+ 0x33, 0x2e, 0x63, 0x72, 0x74, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, -+ 0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00, 0x03, 0x82, 0x02, 0x01, 0x00, 0x14, -+ 0xfc, 0x7c, 0x71, 0x51, 0xa5, 0x79, 0xc2, 0x6e, 0xb2, 0xef, 0x39, 0x3e, 0xbc, -+ 0x3c, 0x52, 0x0f, 0x6e, 0x2b, 0x3f, 0x10, 0x13, 0x73, 0xfe, 0xa8, 0x68, 0xd0, -+ 0x48, 0xa6, 0x34, 0x4d, 0x8a, 0x96, 0x05, 0x26, 0xee, 0x31, 0x46, 0x90, 0x61, -+ 0x79, 0xd6, 0xff, 0x38, 0x2e, 0x45, 0x6b, 0xf4, 0xc0, 0xe5, 0x28, 0xb8, 0xda, -+ 0x1d, 0x8f, 0x8a, 0xdb, 0x09, 0xd7, 0x1a, 0xc7, 0x4c, 0x0a, 0x36, 0x66, 0x6a, -+ 0x8c, 0xec, 0x1b, 0xd7, 0x04, 0x90, 0xa8, 0x18, 0x17, 0xa4, 0x9b, 0xb9, 0xe2, -+ 0x40, 0x32, 0x36, 0x76, 0xc4, 0xc1, 0x5a, 0xc6, 0xbf, 0xe4, 0x04, 0xc0, 0xea, -+ 0x16, 0xd3, 0xac, 0xc3, 0x68, 0xef, 0x62, 0xac, 0xdd, 0x54, 0x6c, 0x50, 0x30, -+ 0x58, 0xa6, 0xeb, 0x7c, 0xfe, 0x94, 0xa7, 0x4e, 0x8e, 0xf4, 0xec, 0x7c, 0x86, -+ 0x73, 0x57, 0xc2, 0x52, 0x21, 0x73, 0x34, 0x5a, 0xf3, 0xa3, 0x8a, 0x56, 0xc8, -+ 0x04, 0xda, 0x07, 0x09, 0xed, 0xf8, 0x8b, 0xe3, 0xce, 0xf4, 0x7e, 0x8e, 0xae, -+ 0xf0, 0xf6, 0x0b, 0x8a, 0x08, 0xfb, 0x3f, 0xc9, 0x1d, 0x72, 0x7f, 0x53, 0xb8, -+ 0xeb, 0xbe, 0x63, 0xe0, 0xe3, 0x3d, 0x31, 0x65, 0xb0, 0x81, 0xe5, 0xf2, 0xac, -+ 0xcd, 0x16, 0xa4, 0x9f, 0x3d, 0xa8, 0xb1, 0x9b, 0xc2, 0x42, 0xd0, 0x90, 0x84, -+ 0x5f, 0x54, 0x1d, 0xff, 0x89, 0xea, 0xba, 0x1d, 0x47, 0x90, 0x6f, 0xb0, 0x73, -+ 0x4e, 0x41, 0x9f, 0x40, 0x9f, 0x5f, 0xe5, 0xa1, 0x2a, 0xb2, 0x11, 0x91, 0x73, -+ 0x8a, 0x21, 0x28, 0xf0, 0xce, 0xde, 0x73, 0x39, 0x5f, 0x3e, 0xab, 0x5c, 0x60, -+ 0xec, 0xdf, 0x03, 0x10, 0xa8, 0xd3, 0x09, 0xe9, 0xf4, 0xf6, 0x96, 0x85, 0xb6, -+ 0x7f, 0x51, 0x88, 0x66, 0x47, 0x19, 0x8d, 0xa2, 0xb0, 0x12, 0x3d, 0x81, 0x2a, -+ 0x68, 0x05, 0x77, 0xbb, 0x91, 0x4c, 0x62, 0x7b, 0xb6, 0xc1, 0x07, 0xc7, 0xba, -+ 0x7a, 0x87, 0x34, 0x03, 0x0e, 0x4b, 0x62, 0x7a, 0x99, 0xe9, 0xca, 0xfc, 0xce, -+ 0x4a, 0x37, 0xc9, 0x2d, 0xa4, 0x57, 0x7c, 0x1c, 0xfe, 0x3d, 0xdc, 0xb8, 0x0f, -+ 0x5a, 0xfa, 0xd6, 0xc4, 0xb3, 0x02, 0x85, 0x02, 0x3a, 0xea, 0xb3, 0xd9, 0x6e, -+ 0xe4, 0x69, 0x21, 0x37, 0xde, 0x81, 0xd1, 0xf6, 0x75, 0x19, 0x05, 0x67, 0xd3, -+ 0x93, 0x57, 0x5e, 0x29, 0x1b, 0x39, 0xc8, 0xee, 0x2d, 0xe1, 0xcd, 0xe4, 0x45, -+ 0x73, 0x5b, 0xd0, 0xd2, 0xce, 0x7a, 0xab, 0x16, 0x19, 0x82, 0x46, 0x58, 0xd0, -+ 0x5e, 0x9d, 0x81, 0xb3, 0x67, 0xaf, 0x6c, 0x35, 0xf2, 0xbc, 0xe5, 0x3f, 0x24, -+ 0xe2, 0x35, 0xa2, 0x0a, 0x75, 0x06, 0xf6, 0x18, 0x56, 0x99, 0xd4, 0x78, 0x2c, -+ 0xd1, 0x05, 0x1b, 0xeb, 0xd0, 0x88, 0x01, 0x9d, 0xaa, 0x10, 0xf1, 0x05, 0xdf, -+ 0xba, 0x7e, 0x2c, 0x63, 0xb7, 0x06, 0x9b, 0x23, 0x21, 0xc4, 0xf9, 0x78, 0x6c, -+ 0xe2, 0x58, 0x17, 0x06, 0x36, 0x2b, 0x91, 0x12, 0x03, 0xcc, 0xa4, 0xd9, 0xf2, -+ 0x2d, 0xba, 0xf9, 0x94, 0x9d, 0x40, 0xed, 0x18, 0x45, 0xf1, 0xce, 0x8a, 0x5c, -+ 0x6b, 0x3e, 0xab, 0x03, 0xd3, 0x70, 0x18, 0x2a, 0x0a, 0x6a, 0xe0, 0x5f, 0x47, -+ 0xd1, 0xd5, 0x63, 0x0a, 0x32, 0xf2, 0xaf, 0xd7, 0x36, 0x1f, 0x2a, 0x70, 0x5a, -+ 0xe5, 0x42, 0x59, 0x08, 0x71, 0x4b, 0x57, 0xba, 0x7e, 0x83, 0x81, 0xf0, 0x21, -+ 0x3c, 0xf4, 0x1c, 0xc1, 0xc5, 0xb9, 0x90, 0x93, 0x0e, 0x88, 0x45, 0x93, 0x86, -+ 0xe9, 0xb1, 0x20, 0x99, 0xbe, 0x98, 0xcb, 0xc5, 0x95, 0xa4, 0x5d, 0x62, 0xd6, -+ 0xa0, 0x63, 0x08, 0x20, 0xbd, 0x75, 0x10, 0x77, 0x7d, 0x3d, 0xf3, 0x45, 0xb9, -+ 0x9f, 0x97, 0x9f, 0xcb, 0x57, 0x80, 0x6f, 0x33, 0xa9, 0x04, 0xcf, 0x77, 0xa4, -+ 0x62, 0x1c, 0x59, 0x7e -+}; -+ -+// -+// Second DB entry: "Microsoft Corporation UEFI CA 2011" -+// SHA1: 46:de:f6:3b:5c:e6:1c:f8:ba:0d:e2:e6:63:9c:10:19:d0:ed:14:f3 -+// -+// To verify the "shim" binary and PCI expansion ROMs with. -+// -+STATIC CONST UINT8 MicrosoftUefiCA[] = { -+ 0x30, 0x82, 0x06, 0x10, 0x30, 0x82, 0x03, 0xf8, 0xa0, 0x03, 0x02, 0x01, 0x02, -+ 0x02, 0x0a, 0x61, 0x08, 0xd3, 0xc4, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x30, -+ 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05, -+ 0x00, 0x30, 0x81, 0x91, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, -+ 0x13, 0x02, 0x55, 0x53, 0x31, 0x13, 0x30, 0x11, 0x06, 0x03, 0x55, 0x04, 0x08, -+ 0x13, 0x0a, 0x57, 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x74, 0x6f, 0x6e, 0x31, -+ 0x10, 0x30, 0x0e, 0x06, 0x03, 0x55, 0x04, 0x07, 0x13, 0x07, 0x52, 0x65, 0x64, -+ 0x6d, 0x6f, 0x6e, 0x64, 0x31, 0x1e, 0x30, 0x1c, 0x06, 0x03, 0x55, 0x04, 0x0a, -+ 0x13, 0x15, 0x4d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x6f, 0x66, 0x74, 0x20, 0x43, -+ 0x6f, 0x72, 0x70, 0x6f, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x31, 0x3b, 0x30, -+ 0x39, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x32, 0x4d, 0x69, 0x63, 0x72, 0x6f, -+ 0x73, 0x6f, 0x66, 0x74, 0x20, 0x43, 0x6f, 0x72, 0x70, 0x6f, 0x72, 0x61, 0x74, -+ 0x69, 0x6f, 0x6e, 0x20, 0x54, 0x68, 0x69, 0x72, 0x64, 0x20, 0x50, 0x61, 0x72, -+ 0x74, 0x79, 0x20, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x70, 0x6c, 0x61, 0x63, -+ 0x65, 0x20, 0x52, 0x6f, 0x6f, 0x74, 0x30, 0x1e, 0x17, 0x0d, 0x31, 0x31, 0x30, -+ 0x36, 0x32, 0x37, 0x32, 0x31, 0x32, 0x32, 0x34, 0x35, 0x5a, 0x17, 0x0d, 0x32, -+ 0x36, 0x30, 0x36, 0x32, 0x37, 0x32, 0x31, 0x33, 0x32, 0x34, 0x35, 0x5a, 0x30, -+ 0x81, 0x81, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, -+ 0x55, 0x53, 0x31, 0x13, 0x30, 0x11, 0x06, 0x03, 0x55, 0x04, 0x08, 0x13, 0x0a, -+ 0x57, 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x74, 0x6f, 0x6e, 0x31, 0x10, 0x30, -+ 0x0e, 0x06, 0x03, 0x55, 0x04, 0x07, 0x13, 0x07, 0x52, 0x65, 0x64, 0x6d, 0x6f, -+ 0x6e, 0x64, 0x31, 0x1e, 0x30, 0x1c, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x15, -+ 0x4d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x6f, 0x66, 0x74, 0x20, 0x43, 0x6f, 0x72, -+ 0x70, 0x6f, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x31, 0x2b, 0x30, 0x29, 0x06, -+ 0x03, 0x55, 0x04, 0x03, 0x13, 0x22, 0x4d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x6f, -+ 0x66, 0x74, 0x20, 0x43, 0x6f, 0x72, 0x70, 0x6f, 0x72, 0x61, 0x74, 0x69, 0x6f, -+ 0x6e, 0x20, 0x55, 0x45, 0x46, 0x49, 0x20, 0x43, 0x41, 0x20, 0x32, 0x30, 0x31, -+ 0x31, 0x30, 0x82, 0x01, 0x22, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, -+ 0xf7, 0x0d, 0x01, 0x01, 0x01, 0x05, 0x00, 0x03, 0x82, 0x01, 0x0f, 0x00, 0x30, -+ 0x82, 0x01, 0x0a, 0x02, 0x82, 0x01, 0x01, 0x00, 0xa5, 0x08, 0x6c, 0x4c, 0xc7, -+ 0x45, 0x09, 0x6a, 0x4b, 0x0c, 0xa4, 0xc0, 0x87, 0x7f, 0x06, 0x75, 0x0c, 0x43, -+ 0x01, 0x54, 0x64, 0xe0, 0x16, 0x7f, 0x07, 0xed, 0x92, 0x7d, 0x0b, 0xb2, 0x73, -+ 0xbf, 0x0c, 0x0a, 0xc6, 0x4a, 0x45, 0x61, 0xa0, 0xc5, 0x16, 0x2d, 0x96, 0xd3, -+ 0xf5, 0x2b, 0xa0, 0xfb, 0x4d, 0x49, 0x9b, 0x41, 0x80, 0x90, 0x3c, 0xb9, 0x54, -+ 0xfd, 0xe6, 0xbc, 0xd1, 0x9d, 0xc4, 0xa4, 0x18, 0x8a, 0x7f, 0x41, 0x8a, 0x5c, -+ 0x59, 0x83, 0x68, 0x32, 0xbb, 0x8c, 0x47, 0xc9, 0xee, 0x71, 0xbc, 0x21, 0x4f, -+ 0x9a, 0x8a, 0x7c, 0xff, 0x44, 0x3f, 0x8d, 0x8f, 0x32, 0xb2, 0x26, 0x48, 0xae, -+ 0x75, 0xb5, 0xee, 0xc9, 0x4c, 0x1e, 0x4a, 0x19, 0x7e, 0xe4, 0x82, 0x9a, 0x1d, -+ 0x78, 0x77, 0x4d, 0x0c, 0xb0, 0xbd, 0xf6, 0x0f, 0xd3, 0x16, 0xd3, 0xbc, 0xfa, -+ 0x2b, 0xa5, 0x51, 0x38, 0x5d, 0xf5, 0xfb, 0xba, 0xdb, 0x78, 0x02, 0xdb, 0xff, -+ 0xec, 0x0a, 0x1b, 0x96, 0xd5, 0x83, 0xb8, 0x19, 0x13, 0xe9, 0xb6, 0xc0, 0x7b, -+ 0x40, 0x7b, 0xe1, 0x1f, 0x28, 0x27, 0xc9, 0xfa, 0xef, 0x56, 0x5e, 0x1c, 0xe6, -+ 0x7e, 0x94, 0x7e, 0xc0, 0xf0, 0x44, 0xb2, 0x79, 0x39, 0xe5, 0xda, 0xb2, 0x62, -+ 0x8b, 0x4d, 0xbf, 0x38, 0x70, 0xe2, 0x68, 0x24, 0x14, 0xc9, 0x33, 0xa4, 0x08, -+ 0x37, 0xd5, 0x58, 0x69, 0x5e, 0xd3, 0x7c, 0xed, 0xc1, 0x04, 0x53, 0x08, 0xe7, -+ 0x4e, 0xb0, 0x2a, 0x87, 0x63, 0x08, 0x61, 0x6f, 0x63, 0x15, 0x59, 0xea, 0xb2, -+ 0x2b, 0x79, 0xd7, 0x0c, 0x61, 0x67, 0x8a, 0x5b, 0xfd, 0x5e, 0xad, 0x87, 0x7f, -+ 0xba, 0x86, 0x67, 0x4f, 0x71, 0x58, 0x12, 0x22, 0x04, 0x22, 0x22, 0xce, 0x8b, -+ 0xef, 0x54, 0x71, 0x00, 0xce, 0x50, 0x35, 0x58, 0x76, 0x95, 0x08, 0xee, 0x6a, -+ 0xb1, 0xa2, 0x01, 0xd5, 0x02, 0x03, 0x01, 0x00, 0x01, 0xa3, 0x82, 0x01, 0x76, -+ 0x30, 0x82, 0x01, 0x72, 0x30, 0x12, 0x06, 0x09, 0x2b, 0x06, 0x01, 0x04, 0x01, -+ 0x82, 0x37, 0x15, 0x01, 0x04, 0x05, 0x02, 0x03, 0x01, 0x00, 0x01, 0x30, 0x23, -+ 0x06, 0x09, 0x2b, 0x06, 0x01, 0x04, 0x01, 0x82, 0x37, 0x15, 0x02, 0x04, 0x16, -+ 0x04, 0x14, 0xf8, 0xc1, 0x6b, 0xb7, 0x7f, 0x77, 0x53, 0x4a, 0xf3, 0x25, 0x37, -+ 0x1d, 0x4e, 0xa1, 0x26, 0x7b, 0x0f, 0x20, 0x70, 0x80, 0x30, 0x1d, 0x06, 0x03, -+ 0x55, 0x1d, 0x0e, 0x04, 0x16, 0x04, 0x14, 0x13, 0xad, 0xbf, 0x43, 0x09, 0xbd, -+ 0x82, 0x70, 0x9c, 0x8c, 0xd5, 0x4f, 0x31, 0x6e, 0xd5, 0x22, 0x98, 0x8a, 0x1b, -+ 0xd4, 0x30, 0x19, 0x06, 0x09, 0x2b, 0x06, 0x01, 0x04, 0x01, 0x82, 0x37, 0x14, -+ 0x02, 0x04, 0x0c, 0x1e, 0x0a, 0x00, 0x53, 0x00, 0x75, 0x00, 0x62, 0x00, 0x43, -+ 0x00, 0x41, 0x30, 0x0b, 0x06, 0x03, 0x55, 0x1d, 0x0f, 0x04, 0x04, 0x03, 0x02, -+ 0x01, 0x86, 0x30, 0x0f, 0x06, 0x03, 0x55, 0x1d, 0x13, 0x01, 0x01, 0xff, 0x04, -+ 0x05, 0x30, 0x03, 0x01, 0x01, 0xff, 0x30, 0x1f, 0x06, 0x03, 0x55, 0x1d, 0x23, -+ 0x04, 0x18, 0x30, 0x16, 0x80, 0x14, 0x45, 0x66, 0x52, 0x43, 0xe1, 0x7e, 0x58, -+ 0x11, 0xbf, 0xd6, 0x4e, 0x9e, 0x23, 0x55, 0x08, 0x3b, 0x3a, 0x22, 0x6a, 0xa8, -+ 0x30, 0x5c, 0x06, 0x03, 0x55, 0x1d, 0x1f, 0x04, 0x55, 0x30, 0x53, 0x30, 0x51, -+ 0xa0, 0x4f, 0xa0, 0x4d, 0x86, 0x4b, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, -+ 0x63, 0x72, 0x6c, 0x2e, 0x6d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x6f, 0x66, 0x74, -+ 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x70, 0x6b, 0x69, 0x2f, 0x63, 0x72, 0x6c, 0x2f, -+ 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x73, 0x2f, 0x4d, 0x69, 0x63, 0x43, -+ 0x6f, 0x72, 0x54, 0x68, 0x69, 0x50, 0x61, 0x72, 0x4d, 0x61, 0x72, 0x52, 0x6f, -+ 0x6f, 0x5f, 0x32, 0x30, 0x31, 0x30, 0x2d, 0x31, 0x30, 0x2d, 0x30, 0x35, 0x2e, -+ 0x63, 0x72, 0x6c, 0x30, 0x60, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, -+ 0x01, 0x01, 0x04, 0x54, 0x30, 0x52, 0x30, 0x50, 0x06, 0x08, 0x2b, 0x06, 0x01, -+ 0x05, 0x05, 0x07, 0x30, 0x02, 0x86, 0x44, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, -+ 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x6d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x6f, 0x66, -+ 0x74, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x70, 0x6b, 0x69, 0x2f, 0x63, 0x65, 0x72, -+ 0x74, 0x73, 0x2f, 0x4d, 0x69, 0x63, 0x43, 0x6f, 0x72, 0x54, 0x68, 0x69, 0x50, -+ 0x61, 0x72, 0x4d, 0x61, 0x72, 0x52, 0x6f, 0x6f, 0x5f, 0x32, 0x30, 0x31, 0x30, -+ 0x2d, 0x31, 0x30, 0x2d, 0x30, 0x35, 0x2e, 0x63, 0x72, 0x74, 0x30, 0x0d, 0x06, -+ 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00, 0x03, -+ 0x82, 0x02, 0x01, 0x00, 0x35, 0x08, 0x42, 0xff, 0x30, 0xcc, 0xce, 0xf7, 0x76, -+ 0x0c, 0xad, 0x10, 0x68, 0x58, 0x35, 0x29, 0x46, 0x32, 0x76, 0x27, 0x7c, 0xef, -+ 0x12, 0x41, 0x27, 0x42, 0x1b, 0x4a, 0xaa, 0x6d, 0x81, 0x38, 0x48, 0x59, 0x13, -+ 0x55, 0xf3, 0xe9, 0x58, 0x34, 0xa6, 0x16, 0x0b, 0x82, 0xaa, 0x5d, 0xad, 0x82, -+ 0xda, 0x80, 0x83, 0x41, 0x06, 0x8f, 0xb4, 0x1d, 0xf2, 0x03, 0xb9, 0xf3, 0x1a, -+ 0x5d, 0x1b, 0xf1, 0x50, 0x90, 0xf9, 0xb3, 0x55, 0x84, 0x42, 0x28, 0x1c, 0x20, -+ 0xbd, 0xb2, 0xae, 0x51, 0x14, 0xc5, 0xc0, 0xac, 0x97, 0x95, 0x21, 0x1c, 0x90, -+ 0xdb, 0x0f, 0xfc, 0x77, 0x9e, 0x95, 0x73, 0x91, 0x88, 0xca, 0xbd, 0xbd, 0x52, -+ 0xb9, 0x05, 0x50, 0x0d, 0xdf, 0x57, 0x9e, 0xa0, 0x61, 0xed, 0x0d, 0xe5, 0x6d, -+ 0x25, 0xd9, 0x40, 0x0f, 0x17, 0x40, 0xc8, 0xce, 0xa3, 0x4a, 0xc2, 0x4d, 0xaf, -+ 0x9a, 0x12, 0x1d, 0x08, 0x54, 0x8f, 0xbd, 0xc7, 0xbc, 0xb9, 0x2b, 0x3d, 0x49, -+ 0x2b, 0x1f, 0x32, 0xfc, 0x6a, 0x21, 0x69, 0x4f, 0x9b, 0xc8, 0x7e, 0x42, 0x34, -+ 0xfc, 0x36, 0x06, 0x17, 0x8b, 0x8f, 0x20, 0x40, 0xc0, 0xb3, 0x9a, 0x25, 0x75, -+ 0x27, 0xcd, 0xc9, 0x03, 0xa3, 0xf6, 0x5d, 0xd1, 0xe7, 0x36, 0x54, 0x7a, 0xb9, -+ 0x50, 0xb5, 0xd3, 0x12, 0xd1, 0x07, 0xbf, 0xbb, 0x74, 0xdf, 0xdc, 0x1e, 0x8f, -+ 0x80, 0xd5, 0xed, 0x18, 0xf4, 0x2f, 0x14, 0x16, 0x6b, 0x2f, 0xde, 0x66, 0x8c, -+ 0xb0, 0x23, 0xe5, 0xc7, 0x84, 0xd8, 0xed, 0xea, 0xc1, 0x33, 0x82, 0xad, 0x56, -+ 0x4b, 0x18, 0x2d, 0xf1, 0x68, 0x95, 0x07, 0xcd, 0xcf, 0xf0, 0x72, 0xf0, 0xae, -+ 0xbb, 0xdd, 0x86, 0x85, 0x98, 0x2c, 0x21, 0x4c, 0x33, 0x2b, 0xf0, 0x0f, 0x4a, -+ 0xf0, 0x68, 0x87, 0xb5, 0x92, 0x55, 0x32, 0x75, 0xa1, 0x6a, 0x82, 0x6a, 0x3c, -+ 0xa3, 0x25, 0x11, 0xa4, 0xed, 0xad, 0xd7, 0x04, 0xae, 0xcb, 0xd8, 0x40, 0x59, -+ 0xa0, 0x84, 0xd1, 0x95, 0x4c, 0x62, 0x91, 0x22, 0x1a, 0x74, 0x1d, 0x8c, 0x3d, -+ 0x47, 0x0e, 0x44, 0xa6, 0xe4, 0xb0, 0x9b, 0x34, 0x35, 0xb1, 0xfa, 0xb6, 0x53, -+ 0xa8, 0x2c, 0x81, 0xec, 0xa4, 0x05, 0x71, 0xc8, 0x9d, 0xb8, 0xba, 0xe8, 0x1b, -+ 0x44, 0x66, 0xe4, 0x47, 0x54, 0x0e, 0x8e, 0x56, 0x7f, 0xb3, 0x9f, 0x16, 0x98, -+ 0xb2, 0x86, 0xd0, 0x68, 0x3e, 0x90, 0x23, 0xb5, 0x2f, 0x5e, 0x8f, 0x50, 0x85, -+ 0x8d, 0xc6, 0x8d, 0x82, 0x5f, 0x41, 0xa1, 0xf4, 0x2e, 0x0d, 0xe0, 0x99, 0xd2, -+ 0x6c, 0x75, 0xe4, 0xb6, 0x69, 0xb5, 0x21, 0x86, 0xfa, 0x07, 0xd1, 0xf6, 0xe2, -+ 0x4d, 0xd1, 0xda, 0xad, 0x2c, 0x77, 0x53, 0x1e, 0x25, 0x32, 0x37, 0xc7, 0x6c, -+ 0x52, 0x72, 0x95, 0x86, 0xb0, 0xf1, 0x35, 0x61, 0x6a, 0x19, 0xf5, 0xb2, 0x3b, -+ 0x81, 0x50, 0x56, 0xa6, 0x32, 0x2d, 0xfe, 0xa2, 0x89, 0xf9, 0x42, 0x86, 0x27, -+ 0x18, 0x55, 0xa1, 0x82, 0xca, 0x5a, 0x9b, 0xf8, 0x30, 0x98, 0x54, 0x14, 0xa6, -+ 0x47, 0x96, 0x25, 0x2f, 0xc8, 0x26, 0xe4, 0x41, 0x94, 0x1a, 0x5c, 0x02, 0x3f, -+ 0xe5, 0x96, 0xe3, 0x85, 0x5b, 0x3c, 0x3e, 0x3f, 0xbb, 0x47, 0x16, 0x72, 0x55, -+ 0xe2, 0x25, 0x22, 0xb1, 0xd9, 0x7b, 0xe7, 0x03, 0x06, 0x2a, 0xa3, 0xf7, 0x1e, -+ 0x90, 0x46, 0xc3, 0x00, 0x0d, 0xd6, 0x19, 0x89, 0xe3, 0x0e, 0x35, 0x27, 0x62, -+ 0x03, 0x71, 0x15, 0xa6, 0xef, 0xd0, 0x27, 0xa0, 0xa0, 0x59, 0x37, 0x60, 0xf8, -+ 0x38, 0x94, 0xb8, 0xe0, 0x78, 0x70, 0xf8, 0xba, 0x4c, 0x86, 0x87, 0x94, 0xf6, -+ 0xe0, 0xae, 0x02, 0x45, 0xee, 0x65, 0xc2, 0xb6, 0xa3, 0x7e, 0x69, 0x16, 0x75, -+ 0x07, 0x92, 0x9b, 0xf5, 0xa6, 0xbc, 0x59, 0x83, 0x58 -+}; -+ -+// -+// The most important thing about the variable payload is that it is a list of -+// lists, where the element size of any given *inner* list is constant. -+// -+// Since X509 certificates vary in size, each of our *inner* lists will contain -+// one element only (one X.509 certificate). This is explicitly mentioned in -+// the UEFI specification, in "28.4.1 Signature Database", in a Note. -+// -+// The list structure looks as follows: -+// -+// struct EFI_VARIABLE_AUTHENTICATION_2 { | -+// struct EFI_TIME { | -+// UINT16 Year; | -+// UINT8 Month; | -+// UINT8 Day; | -+// UINT8 Hour; | -+// UINT8 Minute; | -+// UINT8 Second; | -+// UINT8 Pad1; | -+// UINT32 Nanosecond; | -+// INT16 TimeZone; | -+// UINT8 Daylight; | -+// UINT8 Pad2; | -+// } TimeStamp; | -+// | -+// struct WIN_CERTIFICATE_UEFI_GUID { | | -+// struct WIN_CERTIFICATE { | | -+// UINT32 dwLength; ----------------------------------------+ | -+// UINT16 wRevision; | | -+// UINT16 wCertificateType; | | -+// } Hdr; | +- DataSize -+// | | -+// EFI_GUID CertType; | | -+// UINT8 CertData[1] = { <--- "struct hack" | | -+// struct EFI_SIGNATURE_LIST { | | | -+// EFI_GUID SignatureType; | | | -+// UINT32 SignatureListSize; -------------------------+ | | -+// UINT32 SignatureHeaderSize; | | | -+// UINT32 SignatureSize; ---------------------------+ | | | -+// UINT8 SignatureHeader[SignatureHeaderSize]; | | | | -+// v | | | -+// struct EFI_SIGNATURE_DATA { | | | | -+// EFI_GUID SignatureOwner; | | | | -+// UINT8 SignatureData[1] = { <--- "struct hack" | | | | -+// X.509 payload | | | | -+// } | | | | -+// } Signatures[]; | | | -+// } SigLists[]; | | -+// }; | | -+// } AuthInfo; | | -+// }; | -+// -+// Given that the "struct hack" invokes undefined behavior (which is why C99 -+// introduced the flexible array member), and because subtracting those pesky -+// sizes of 1 is annoying, and because the format is fully specified in the -+// UEFI specification, we'll introduce two matching convenience structures that -+// are customized for our X.509 purposes. -+// -+#pragma pack(1) -+typedef struct { -+ EFI_TIME TimeStamp; -+ -+ // -+ // dwLength covers data below -+ // -+ UINT32 dwLength; -+ UINT16 wRevision; -+ UINT16 wCertificateType; -+ EFI_GUID CertType; -+} SINGLE_HEADER; -+ -+typedef struct { -+ // -+ // SignatureListSize covers data below -+ // -+ EFI_GUID SignatureType; -+ UINT32 SignatureListSize; -+ UINT32 SignatureHeaderSize; // constant 0 -+ UINT32 SignatureSize; -+ -+ // -+ // SignatureSize covers data below -+ // -+ EFI_GUID SignatureOwner; -+ -+ // -+ // X.509 certificate follows -+ // -+} REPEATING_HEADER; -+#pragma pack() -+ -+/** -+ Enroll a set of DER-formatted X.509 certificates in a global variable, -+ overwriting it. -+ -+ The variable will be rewritten with NV+BS+RT+AT attributes. -+ -+ @param[in] VariableName The name of the variable to overwrite. -+ -+ @param[in] VendorGuid The namespace (ie. vendor GUID) of the variable to -+ overwrite. -+ -+ @param[in] ... A list of -+ -+ IN CONST UINT8 *Cert, -+ IN UINTN CertSize, -+ IN CONST EFI_GUID *OwnerGuid -+ -+ triplets. If the first component of a triplet is -+ NULL, then the other two components are not -+ accessed, and processing is terminated. The list of -+ X.509 certificates is enrolled in the variable -+ specified, overwriting it. The OwnerGuid component -+ identifies the agent installing the certificate. -+ -+ @retval EFI_INVALID_PARAMETER The triplet list is empty (ie. the first Cert -+ value is NULL), or one of the CertSize values -+ is 0, or one of the CertSize values would -+ overflow the accumulated UINT32 data size. -+ -+ @retval EFI_OUT_OF_RESOURCES Out of memory while formatting variable -+ payload. -+ -+ @retval EFI_SUCCESS Enrollment successful; the variable has been -+ overwritten (or created). -+ -+ @return Error codes from gRT->GetTime() and -+ gRT->SetVariable(). -+**/ -+STATIC -+EFI_STATUS -+EFIAPI -+EnrollListOfX509Certs ( -+ IN CHAR16 *VariableName, -+ IN EFI_GUID *VendorGuid, -+ ... -+ ) -+{ -+ UINTN DataSize; -+ SINGLE_HEADER *SingleHeader; -+ REPEATING_HEADER *RepeatingHeader; -+ VA_LIST Marker; -+ CONST UINT8 *Cert; -+ EFI_STATUS Status = EFI_SUCCESS; -+ UINT8 *Data; -+ UINT8 *Position; -+ -+ // -+ // compute total size first, for UINT32 range check, and allocation -+ // -+ DataSize = sizeof *SingleHeader; -+ VA_START (Marker, VendorGuid); -+ for (Cert = VA_ARG (Marker, CONST UINT8 *); -+ Cert != NULL; -+ Cert = VA_ARG (Marker, CONST UINT8 *)) { -+ UINTN CertSize; -+ -+ CertSize = VA_ARG (Marker, UINTN); -+ (VOID)VA_ARG (Marker, CONST EFI_GUID *); -+ -+ if (CertSize == 0 || -+ CertSize > MAX_UINT32 - sizeof *RepeatingHeader || -+ DataSize > MAX_UINT32 - sizeof *RepeatingHeader - CertSize) { -+ Status = EFI_INVALID_PARAMETER; -+ break; -+ } -+ DataSize += sizeof *RepeatingHeader + CertSize; -+ } -+ VA_END (Marker); -+ -+ if (DataSize == sizeof *SingleHeader) { -+ Status = EFI_INVALID_PARAMETER; -+ } -+ if (EFI_ERROR (Status)) { -+ goto Out; -+ } -+ -+ Data = AllocatePool (DataSize); -+ if (Data == NULL) { -+ Status = EFI_OUT_OF_RESOURCES; -+ goto Out; -+ } -+ -+ Position = Data; -+ -+ SingleHeader = (SINGLE_HEADER *)Position; -+ Status = gRT->GetTime (&SingleHeader->TimeStamp, NULL); -+ if (EFI_ERROR (Status)) { -+ goto FreeData; -+ } -+ SingleHeader->TimeStamp.Pad1 = 0; -+ SingleHeader->TimeStamp.Nanosecond = 0; -+ SingleHeader->TimeStamp.TimeZone = 0; -+ SingleHeader->TimeStamp.Daylight = 0; -+ SingleHeader->TimeStamp.Pad2 = 0; -+#if 0 -+ SingleHeader->dwLength = DataSize - sizeof SingleHeader->TimeStamp; -+#else -+ // -+ // This looks like a bug in edk2. According to the UEFI specification, -+ // dwLength is "The length of the entire certificate, including the length of -+ // the header, in bytes". That shouldn't stop right after CertType -- it -+ // should include everything below it. -+ // -+ SingleHeader->dwLength = sizeof *SingleHeader -+ - sizeof SingleHeader->TimeStamp; -+#endif -+ SingleHeader->wRevision = 0x0200; -+ SingleHeader->wCertificateType = WIN_CERT_TYPE_EFI_GUID; -+ CopyGuid (&SingleHeader->CertType, &gEfiCertPkcs7Guid); -+ Position += sizeof *SingleHeader; -+ -+ VA_START (Marker, VendorGuid); -+ for (Cert = VA_ARG (Marker, CONST UINT8 *); -+ Cert != NULL; -+ Cert = VA_ARG (Marker, CONST UINT8 *)) { -+ UINTN CertSize; -+ CONST EFI_GUID *OwnerGuid; -+ -+ CertSize = VA_ARG (Marker, UINTN); -+ OwnerGuid = VA_ARG (Marker, CONST EFI_GUID *); -+ -+ RepeatingHeader = (REPEATING_HEADER *)Position; -+ CopyGuid (&RepeatingHeader->SignatureType, &gEfiCertX509Guid); -+ RepeatingHeader->SignatureListSize = sizeof *RepeatingHeader + CertSize; -+ RepeatingHeader->SignatureHeaderSize = 0; -+ RepeatingHeader->SignatureSize = -+ sizeof RepeatingHeader->SignatureOwner + CertSize; -+ CopyGuid (&RepeatingHeader->SignatureOwner, OwnerGuid); -+ Position += sizeof *RepeatingHeader; -+ -+ CopyMem (Position, Cert, CertSize); -+ Position += CertSize; -+ } -+ VA_END (Marker); -+ -+ ASSERT (Data + DataSize == Position); -+ -+ Status = gRT->SetVariable (VariableName, VendorGuid, -+ (EFI_VARIABLE_NON_VOLATILE | -+ EFI_VARIABLE_BOOTSERVICE_ACCESS | -+ EFI_VARIABLE_RUNTIME_ACCESS | -+ EFI_VARIABLE_TIME_BASED_AUTHENTICATED_WRITE_ACCESS), -+ DataSize, Data); -+ -+FreeData: -+ FreePool (Data); -+ -+Out: -+ if (EFI_ERROR (Status)) { -+ AsciiPrint ("error: %a(\"%s\", %g): %r\n", __FUNCTION__, VariableName, -+ VendorGuid, Status); -+ } -+ return Status; -+} -+ -+ -+STATIC -+EFI_STATUS -+EFIAPI -+GetExact ( -+ IN CHAR16 *VariableName, -+ IN EFI_GUID *VendorGuid, -+ OUT VOID *Data, -+ IN UINTN DataSize, -+ IN BOOLEAN AllowMissing -+ ) -+{ -+ UINTN Size; -+ EFI_STATUS Status; -+ -+ Size = DataSize; -+ Status = gRT->GetVariable (VariableName, VendorGuid, NULL, &Size, Data); -+ if (EFI_ERROR (Status)) { -+ if (Status == EFI_NOT_FOUND && AllowMissing) { -+ ZeroMem (Data, DataSize); -+ return EFI_SUCCESS; -+ } -+ -+ AsciiPrint ("error: GetVariable(\"%s\", %g): %r\n", VariableName, -+ VendorGuid, Status); -+ return Status; -+ } -+ -+ if (Size != DataSize) { -+ AsciiPrint ("error: GetVariable(\"%s\", %g): expected size 0x%Lx, " -+ "got 0x%Lx\n", VariableName, VendorGuid, (UINT64)DataSize, (UINT64)Size); -+ return EFI_PROTOCOL_ERROR; -+ } -+ -+ return EFI_SUCCESS; -+} -+ -+typedef struct { -+ UINT8 SetupMode; -+ UINT8 SecureBoot; -+ UINT8 SecureBootEnable; -+ UINT8 CustomMode; -+ UINT8 VendorKeys; -+} SETTINGS; -+ -+STATIC -+EFI_STATUS -+EFIAPI -+GetSettings ( -+ OUT SETTINGS *Settings -+ ) -+{ -+ EFI_STATUS Status; -+ -+ Status = GetExact (EFI_SETUP_MODE_NAME, &gEfiGlobalVariableGuid, -+ &Settings->SetupMode, sizeof Settings->SetupMode, FALSE); -+ if (EFI_ERROR (Status)) { -+ return Status; -+ } -+ -+ Status = GetExact (EFI_SECURE_BOOT_MODE_NAME, &gEfiGlobalVariableGuid, -+ &Settings->SecureBoot, sizeof Settings->SecureBoot, FALSE); -+ if (EFI_ERROR (Status)) { -+ return Status; -+ } -+ -+ Status = GetExact (EFI_SECURE_BOOT_ENABLE_NAME, -+ &gEfiSecureBootEnableDisableGuid, &Settings->SecureBootEnable, -+ sizeof Settings->SecureBootEnable, TRUE); -+ if (EFI_ERROR (Status)) { -+ return Status; -+ } -+ -+ Status = GetExact (EFI_CUSTOM_MODE_NAME, &gEfiCustomModeEnableGuid, -+ &Settings->CustomMode, sizeof Settings->CustomMode, FALSE); -+ if (EFI_ERROR (Status)) { -+ return Status; -+ } -+ -+ Status = GetExact (EFI_VENDOR_KEYS_VARIABLE_NAME, &gEfiGlobalVariableGuid, -+ &Settings->VendorKeys, sizeof Settings->VendorKeys, FALSE); -+ return Status; -+} -+ -+STATIC -+VOID -+EFIAPI -+PrintSettings ( -+ IN CONST SETTINGS *Settings -+ ) -+{ -+ AsciiPrint ("info: SetupMode=%d SecureBoot=%d SecureBootEnable=%d " -+ "CustomMode=%d VendorKeys=%d\n", Settings->SetupMode, Settings->SecureBoot, -+ Settings->SecureBootEnable, Settings->CustomMode, Settings->VendorKeys); -+} -+ -+ -+INTN -+EFIAPI -+ShellAppMain ( -+ IN UINTN Argc, -+ IN CHAR16 **Argv -+ ) -+{ -+ EFI_STATUS Status; -+ SETTINGS Settings; -+ -+ Status = GetSettings (&Settings); -+ if (EFI_ERROR (Status)) { -+ return 1; -+ } -+ PrintSettings (&Settings); -+ -+ if (Settings.SetupMode != 1) { -+ AsciiPrint ("error: already in User Mode\n"); -+ return 1; -+ } -+ -+ if (Settings.CustomMode != CUSTOM_SECURE_BOOT_MODE) { -+ Settings.CustomMode = CUSTOM_SECURE_BOOT_MODE; -+ Status = gRT->SetVariable (EFI_CUSTOM_MODE_NAME, &gEfiCustomModeEnableGuid, -+ (EFI_VARIABLE_NON_VOLATILE | -+ EFI_VARIABLE_BOOTSERVICE_ACCESS), -+ sizeof Settings.CustomMode, &Settings.CustomMode); -+ if (EFI_ERROR (Status)) { -+ AsciiPrint ("error: SetVariable(\"%s\", %g): %r\n", EFI_CUSTOM_MODE_NAME, -+ &gEfiCustomModeEnableGuid, Status); -+ return 1; -+ } -+ } -+ -+ Status = EnrollListOfX509Certs ( -+ EFI_IMAGE_SECURITY_DATABASE, -+ &gEfiImageSecurityDatabaseGuid, -+ MicrosoftPCA, sizeof MicrosoftPCA, &gEfiCallerIdGuid, -+ MicrosoftUefiCA, sizeof MicrosoftUefiCA, &gEfiCallerIdGuid, -+ NULL); -+ if (EFI_ERROR (Status)) { -+ return 1; -+ } -+ -+ Status = EnrollListOfX509Certs ( -+ EFI_KEY_EXCHANGE_KEY_NAME, -+ &gEfiGlobalVariableGuid, -+ ExampleCert, sizeof ExampleCert, &gEfiCallerIdGuid, -+ MicrosoftKEK, sizeof MicrosoftKEK, &gEfiCallerIdGuid, -+ NULL); -+ if (EFI_ERROR (Status)) { -+ return 1; -+ } -+ -+ Status = EnrollListOfX509Certs ( -+ EFI_PLATFORM_KEY_NAME, -+ &gEfiGlobalVariableGuid, -+ ExampleCert, sizeof ExampleCert, &gEfiGlobalVariableGuid, -+ NULL); -+ if (EFI_ERROR (Status)) { -+ return 1; -+ } -+ -+ Settings.CustomMode = STANDARD_SECURE_BOOT_MODE; -+ Status = gRT->SetVariable (EFI_CUSTOM_MODE_NAME, &gEfiCustomModeEnableGuid, -+ EFI_VARIABLE_NON_VOLATILE | EFI_VARIABLE_BOOTSERVICE_ACCESS, -+ sizeof Settings.CustomMode, &Settings.CustomMode); -+ if (EFI_ERROR (Status)) { -+ AsciiPrint ("error: SetVariable(\"%s\", %g): %r\n", EFI_CUSTOM_MODE_NAME, -+ &gEfiCustomModeEnableGuid, Status); -+ return 1; -+ } -+ -+ Status = GetSettings (&Settings); -+ if (EFI_ERROR (Status)) { -+ return 1; -+ } -+ PrintSettings (&Settings); -+ -+ if (Settings.SetupMode != 0 || Settings.SecureBoot != 1 || -+ Settings.SecureBootEnable != 1 || Settings.CustomMode != 0 || -+ Settings.VendorKeys != 0) { -+ AsciiPrint ("error: unexpected\n"); -+ return 1; -+ } -+ -+ AsciiPrint ("info: success\n"); -+ return 0; -+} -diff --git a/OvmfPkg/EnrollDefaultKeys/EnrollDefaultKeys.inf b/OvmfPkg/EnrollDefaultKeys/EnrollDefaultKeys.inf -new file mode 100644 -index 0000000..ac919bb ---- /dev/null -+++ b/OvmfPkg/EnrollDefaultKeys/EnrollDefaultKeys.inf -@@ -0,0 +1,51 @@ -+## @file -+# Enroll default PK, KEK, DB. -+# -+# Copyright (C) 2014, Red Hat, Inc. -+# -+# This program and the accompanying materials are licensed and made available -+# under the terms and conditions of the BSD License which accompanies this -+# distribution. The full text of the license may be found at -+# http://opensource.org/licenses/bsd-license. -+# -+# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, -+# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR -+# IMPLIED. -+## -+ -+[Defines] -+ INF_VERSION = 0x00010006 -+ BASE_NAME = EnrollDefaultKeys -+ FILE_GUID = D5C1DF0B-1BAC-4EDF-BA48-08834009CA5A -+ MODULE_TYPE = UEFI_APPLICATION -+ VERSION_STRING = 0.1 -+ ENTRY_POINT = ShellCEntryLib -+ -+# -+# VALID_ARCHITECTURES = IA32 X64 -+# -+ -+[Sources] -+ EnrollDefaultKeys.c -+ -+[Packages] -+ MdePkg/MdePkg.dec -+ MdeModulePkg/MdeModulePkg.dec -+ SecurityPkg/SecurityPkg.dec -+ ShellPkg/ShellPkg.dec -+ -+[Guids] -+ gEfiCertPkcs7Guid -+ gEfiCertX509Guid -+ gEfiCustomModeEnableGuid -+ gEfiGlobalVariableGuid -+ gEfiImageSecurityDatabaseGuid -+ gEfiSecureBootEnableDisableGuid -+ -+[LibraryClasses] -+ BaseMemoryLib -+ DebugLib -+ MemoryAllocationLib -+ ShellCEntryLib -+ UefiLib -+ UefiRuntimeServicesTableLib -diff --git a/OvmfPkg/OvmfPkgIa32.dsc b/OvmfPkg/OvmfPkgIa32.dsc -index fa9661c..e2e6ba3 100644 ---- a/OvmfPkg/OvmfPkgIa32.dsc -+++ b/OvmfPkg/OvmfPkgIa32.dsc -@@ -764,6 +764,10 @@ - - !if $(SECURE_BOOT_ENABLE) == TRUE - SecurityPkg/VariableAuthenticated/SecureBootConfigDxe/SecureBootConfigDxe.inf -+ OvmfPkg/EnrollDefaultKeys/EnrollDefaultKeys.inf { -+ -+ ShellCEntryLib|ShellPkg/Library/UefiShellCEntryLib/UefiShellCEntryLib.inf -+ } - !endif - - OvmfPkg/PlatformDxe/Platform.inf -diff --git a/OvmfPkg/OvmfPkgIa32X64.dsc b/OvmfPkg/OvmfPkgIa32X64.dsc -index 667584a..a0ae1aa 100644 ---- a/OvmfPkg/OvmfPkgIa32X64.dsc -+++ b/OvmfPkg/OvmfPkgIa32X64.dsc -@@ -773,6 +773,10 @@ - - !if $(SECURE_BOOT_ENABLE) == TRUE - SecurityPkg/VariableAuthenticated/SecureBootConfigDxe/SecureBootConfigDxe.inf -+ OvmfPkg/EnrollDefaultKeys/EnrollDefaultKeys.inf { -+ -+ ShellCEntryLib|ShellPkg/Library/UefiShellCEntryLib/UefiShellCEntryLib.inf -+ } - !endif - - OvmfPkg/PlatformDxe/Platform.inf -diff --git a/OvmfPkg/OvmfPkgX64.dsc b/OvmfPkg/OvmfPkgX64.dsc -index 5ae8469..87cee52 100644 ---- a/OvmfPkg/OvmfPkgX64.dsc -+++ b/OvmfPkg/OvmfPkgX64.dsc -@@ -771,6 +771,10 @@ - - !if $(SECURE_BOOT_ENABLE) == TRUE - SecurityPkg/VariableAuthenticated/SecureBootConfigDxe/SecureBootConfigDxe.inf -+ OvmfPkg/EnrollDefaultKeys/EnrollDefaultKeys.inf { -+ -+ ShellCEntryLib|ShellPkg/Library/UefiShellCEntryLib/UefiShellCEntryLib.inf -+ } - !endif - - OvmfPkg/PlatformDxe/Platform.inf diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-core/ovmf/ovmf/no-stack-protector-all-archs.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-core/ovmf/ovmf/no-stack-protector-all-archs.patch index 25e5b58e..1b65348e 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-core/ovmf/ovmf/no-stack-protector-all-archs.patch +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-core/ovmf/ovmf/no-stack-protector-all-archs.patch @@ -9,12 +9,26 @@ Index: git/BaseTools/Conf/tools_def.template =================================================================== --- git.orig/BaseTools/Conf/tools_def.template +++ git/BaseTools/Conf/tools_def.template -@@ -4368,7 +4368,7 @@ DEFINE GCC_IPF_RC_FLAGS = -I +@@ -1736,10 +1736,10 @@ DEFINE GCC_X64_RC_FLAGS = -I binary -O elf64-x86-64 -B i386 DEFINE GCC_ARM_RC_FLAGS = -I binary -O elf32-littlearm -B arm --rename-section .data=.hii DEFINE GCC_AARCH64_RC_FLAGS = -I binary -O elf64-littleaarch64 -B aarch64 --rename-section .data=.hii --DEFINE GCC44_ALL_CC_FLAGS = -g -fshort-wchar -fno-builtin -fno-strict-aliasing -Wall -Werror -Wno-array-bounds -ffunction-sections -fdata-sections -include AutoGen.h -fno-common -DSTRING_ARRAY_NAME=$(BASE_NAME)Strings -+DEFINE GCC44_ALL_CC_FLAGS = -g -fshort-wchar -fno-builtin -fno-strict-aliasing -Wall -Werror -Wno-array-bounds -ffunction-sections -fdata-sections -fno-stack-protector -include AutoGen.h -fno-common -DSTRING_ARRAY_NAME=$(BASE_NAME)Strings - DEFINE GCC44_IA32_CC_FLAGS = DEF(GCC44_ALL_CC_FLAGS) -m32 -march=i586 -malign-double -fno-stack-protector -D EFI32 -fno-asynchronous-unwind-tables -fno-PIE -no-pie - DEFINE GCC44_X64_CC_FLAGS = DEF(GCC44_ALL_CC_FLAGS) -m64 -fno-stack-protector "-DEFIAPI=__attribute__((ms_abi))" -maccumulate-outgoing-args -mno-red-zone -Wno-address -mcmodel=small -fpie -fno-asynchronous-unwind-tables - DEFINE GCC44_IA32_X64_DLINK_COMMON = -nostdlib -Wl,-n,-q,--gc-sections -z common-page-size=0x20 -no-pie +-DEFINE GCC48_ALL_CC_FLAGS = -g -fshort-wchar -fno-builtin -fno-strict-aliasing -Wall -Werror -Wno-array-bounds -ffunction-sections -fdata-sections -include AutoGen.h -fno-common -DSTRING_ARRAY_NAME=$(BASE_NAME)Strings ++DEFINE GCC48_ALL_CC_FLAGS = -g -fshort-wchar -fno-builtin -fno-strict-aliasing -Wall -Werror -Wno-array-bounds -ffunction-sections -fdata-sections -fno-stack-protector -include AutoGen.h -fno-common -DSTRING_ARRAY_NAME=$(BASE_NAME)Strings + DEFINE GCC48_IA32_X64_DLINK_COMMON = -nostdlib -Wl,-n,-q,--gc-sections -z common-page-size=0x20 +-DEFINE GCC48_IA32_CC_FLAGS = DEF(GCC48_ALL_CC_FLAGS) -m32 -march=i586 -malign-double -fno-stack-protector -D EFI32 -fno-asynchronous-unwind-tables -Wno-address +-DEFINE GCC48_X64_CC_FLAGS = DEF(GCC48_ALL_CC_FLAGS) -m64 -fno-stack-protector "-DEFIAPI=__attribute__((ms_abi))" -maccumulate-outgoing-args -mno-red-zone -Wno-address -mcmodel=small -fpie -fno-asynchronous-unwind-tables -Wno-address ++DEFINE GCC48_IA32_CC_FLAGS = DEF(GCC48_ALL_CC_FLAGS) -m32 -march=i586 -malign-double -D EFI32 -fno-asynchronous-unwind-tables -Wno-address ++DEFINE GCC48_X64_CC_FLAGS = DEF(GCC48_ALL_CC_FLAGS) -m64 "-DEFIAPI=__attribute__((ms_abi))" -maccumulate-outgoing-args -mno-red-zone -Wno-address -mcmodel=small -fpie -fno-asynchronous-unwind-tables -Wno-address + DEFINE GCC48_IA32_X64_ASLDLINK_FLAGS = DEF(GCC48_IA32_X64_DLINK_COMMON) -Wl,--entry,ReferenceAcpiTable -u ReferenceAcpiTable + DEFINE GCC48_IA32_X64_DLINK_FLAGS = DEF(GCC48_IA32_X64_DLINK_COMMON) -Wl,--entry,$(IMAGE_ENTRY_POINT) -u $(IMAGE_ENTRY_POINT) -Wl,-Map,$(DEST_DIR_DEBUG)/$(BASE_NAME).map,--whole-archive + DEFINE GCC48_IA32_DLINK2_FLAGS = -Wl,--defsym=PECOFF_HEADER_SIZE=0x220 DEF(GCC_DLINK2_FLAGS_COMMON) +@@ -1748,7 +1748,7 @@ DEFINE GCC48_X64_DLINK2_FLAGS = -Wl,--defsym=PECOFF_HEADER_SIZE=0x228 DEF + DEFINE GCC48_ASM_FLAGS = DEF(GCC_ASM_FLAGS) + DEFINE GCC48_ARM_ASM_FLAGS = $(ARCHASM_FLAGS) $(PLATFORM_FLAGS) DEF(GCC_ASM_FLAGS) -mlittle-endian + DEFINE GCC48_AARCH64_ASM_FLAGS = $(ARCHASM_FLAGS) $(PLATFORM_FLAGS) DEF(GCC_ASM_FLAGS) -mlittle-endian +-DEFINE GCC48_ARM_CC_FLAGS = $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) DEF(GCC_ARM_CC_FLAGS) -fstack-protector -mword-relocations ++DEFINE GCC48_ARM_CC_FLAGS = $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) DEF(GCC_ARM_CC_FLAGS) -mword-relocations + DEFINE GCC48_ARM_CC_XIPFLAGS = DEF(GCC_ARM_CC_XIPFLAGS) + DEFINE GCC48_AARCH64_CC_FLAGS = $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) -mcmodel=large DEF(GCC_AARCH64_CC_FLAGS) + DEFINE GCC48_AARCH64_CC_XIPFLAGS = DEF(GCC_AARCH64_CC_XIPFLAGS) diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-core/ovmf/ovmf_git.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-core/ovmf/ovmf_git.bb index 71828d8d..ff2b2a53 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-core/ovmf/ovmf_git.bb +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-core/ovmf/ovmf_git.bb @@ -2,9 +2,9 @@ SUMMARY = "OVMF - UEFI firmware for Qemu and KVM" DESCRIPTION = "OVMF is an EDK II based project to enable UEFI support for \ Virtual Machines. OVMF contains sample UEFI firmware for QEMU and KVM" HOMEPAGE = "https://github.com/tianocore/tianocore.github.io/wiki/OVMF" -LICENSE = "BSD" +LICENSE = "BSD-2-Clause" LICENSE_class-target = "${@bb.utils.contains('PACKAGECONFIG', 'secureboot', 'BSD & OpenSSL', 'BSD', d)}" -LIC_FILES_CHKSUM = "file://OvmfPkg/License.txt;md5=343dc88e82ff33d042074f62050c3496" +LIC_FILES_CHKSUM = "file://OvmfPkg/License.txt;md5=06357ddc23f46577c2aeaeaf7b776d65" # Enabling Secure Boot adds a dependency on OpenSSL and implies # compiling OVMF twice, so it is disabled by default. Distros @@ -12,30 +12,16 @@ LIC_FILES_CHKSUM = "file://OvmfPkg/License.txt;md5=343dc88e82ff33d042074f62050c3 PACKAGECONFIG ??= "" PACKAGECONFIG[secureboot] = ",,," -SRC_URI = "git://github.com/tianocore/edk2.git;branch=master \ - file://0001-ia32-Dont-use-pie.patch \ +SRC_URI = "gitsm://github.com/tianocore/edk2.git;branch=master;protocol=git \ file://0002-ovmf-update-path-to-native-BaseTools.patch \ file://0003-BaseTools-makefile-adjust-to-build-in-under-bitbake.patch \ file://0004-ovmf-enable-long-path-file.patch \ - file://VfrCompile-increase-path-length-limit.patch \ file://no-stack-protector-all-archs.patch \ - file://0001-BaseTools-header.makefile-add-Wno-stringop-truncatio.patch \ - file://0002-BaseTools-header.makefile-add-Wno-restrict.patch \ - file://0003-BaseTools-header.makefile-revert-gcc-8-Wno-xxx-optio.patch \ - file://0004-BaseTools-GenVtf-silence-false-stringop-overflow-war.patch \ " -UPSTREAM_VERSION_UNKNOWN = "1" -OPENSSL_RELEASE = "openssl-1.1.0e" - -SRC_URI_append_class-target = " \ - ${@bb.utils.contains('PACKAGECONFIG', 'secureboot', 'http://www.openssl.org/source/${OPENSSL_RELEASE}.tar.gz;name=openssl;subdir=${S}/CryptoPkg/Library/OpensslLib', '', d)} \ - file://0007-OvmfPkg-EnrollDefaultKeys-application-for-enrolling-.patch \ -" - -SRCREV="ec4910cd3336565fdb61dafdd9ec4ae7a6160ba3" -SRC_URI[openssl.md5sum] = "51c42d152122e474754aea96f66928c6" -SRC_URI[openssl.sha256sum] = "57be8618979d80c910728cfc99369bf97b2a1abd8f366ab6ebdee8975ad3874c" +PV = "edk2-stable201905" +SRCREV="20d2e5a125e34fc8501026613a71549b2a1a3e54" +UPSTREAM_CHECK_GITTAGREGEX = "(?Pedk2-stable.*)" inherit deploy @@ -43,10 +29,7 @@ PARALLEL_MAKE = "" S = "${WORKDIR}/git" -DEPENDS_class-native="util-linux-native iasl-native" -DEPENDS_class-target="ovmf-native" - -DEPENDS_append = " nasm-native" +DEPENDS = "nasm-native acpica-native ovmf-native util-linux-native" EDK_TOOLS_DIR="edk2_basetools" @@ -61,6 +44,8 @@ COMPATIBLE_HOST='(i.86|x86_64).*' OVMF_SECURE_BOOT_EXTRA_FLAGS ??= "" OVMF_SECURE_BOOT_FLAGS = "-DSECURE_BOOT_ENABLE=TRUE ${OVMF_SECURE_BOOT_EXTRA_FLAGS}" +export PYTHON_COMMAND = "${HOSTTOOLS_DIR}/python3" + do_patch[postfuncs] += "fix_basetools_location" fix_basetools_location () { } @@ -191,12 +176,9 @@ do_compile_class-target() { ln ${build_dir}/${OVMF_ARCH}/Shell.efi ${WORKDIR}/ovmf/ if ${@bb.utils.contains('PACKAGECONFIG', 'secureboot', 'true', 'false', d)}; then - # See CryptoPkg/Library/OpensslLib/Patch-HOWTO.txt and - # https://src.fedoraproject.org/cgit/rpms/edk2.git/tree/ for - # building with Secure Boot enabled. + # Repeat build with the Secure Boot flags. bbnote "Building with Secure Boot." rm -rf ${S}/Build/Ovmf$OVMF_DIR_SUFFIX - ln -sf ${OPENSSL_RELEASE} ${S}/CryptoPkg/Library/OpensslLib/openssl ${S}/OvmfPkg/build.sh $PARALLEL_JOBS -a $OVMF_ARCH -b RELEASE -t ${FIXED_GCCVER} ${OVMF_SECURE_BOOT_FLAGS} ln ${build_dir}/FV/OVMF.fd ${WORKDIR}/ovmf/ovmf.secboot.fd ln ${build_dir}/FV/OVMF_CODE.fd ${WORKDIR}/ovmf/ovmf.secboot.code.fd @@ -233,6 +215,7 @@ FILES_ovmf-shell-efi = " \ DEPLOYDEP = "" DEPLOYDEP_class-target = "qemu-system-native:do_populate_sysroot" +DEPLOYDEP_class-target += " ${@bb.utils.contains('PACKAGECONFIG', 'secureboot', 'openssl-native:do_populate_sysroot', '', d)}" do_deploy[depends] += "${DEPLOYDEP}" do_deploy() { @@ -248,6 +231,13 @@ do_deploy_class-target() { ; do qemu-img convert -f raw -O qcow2 ${WORKDIR}/ovmf/$i.fd ${DEPLOYDIR}/$i.qcow2 done + + if ${@bb.utils.contains('PACKAGECONFIG', 'secureboot', 'true', 'false', d)}; then + # Create a test Platform Key and first Key Exchange Key to use with EnrollDefaultKeys + openssl req -new -x509 -newkey rsa:2048 -keyout ${DEPLOYDIR}/OvmfPkKek1.key \ + -out ${DEPLOYDIR}/OvmfPkKek1.crt -nodes -days 20 -subj "/CN=OVMFSecBootTest" + openssl x509 -in ${DEPLOYDIR}/OvmfPkKek1.crt -out ${DEPLOYDIR}/OvmfPkKek1.pem -outform PEM + fi } addtask do_deploy after do_compile before do_build diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-core/packagegroups/packagegroup-base.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-core/packagegroups/packagegroup-base.bb index d0540363..1f802da0 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-core/packagegroups/packagegroup-base.bb +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-core/packagegroups/packagegroup-base.bb @@ -7,7 +7,6 @@ PR = "r83" PACKAGE_ARCH = "${MACHINE_ARCH}" inherit packagegroup -inherit bluetooth PROVIDES = "${PACKAGES}" PACKAGES = ' \ @@ -199,8 +198,7 @@ RRECOMMENDS_packagegroup-base-pcmcia = "\ SUMMARY_packagegroup-base-bluetooth = "Bluetooth support" RDEPENDS_packagegroup-base-bluetooth = "\ - ${BLUEZ} \ - ${@bb.utils.contains('COMBINED_FEATURES', 'alsa', bb.utils.contains('BLUEZ', 'bluez4', 'libasound-module-bluez', '', d), '',d)} \ + bluez5 \ " RRECOMMENDS_packagegroup-base-bluetooth = "\ diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-core/packagegroups/packagegroup-core-boot.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-core/packagegroups/packagegroup-core-boot.bb index 8dc445dc..abbee14b 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-core/packagegroups/packagegroup-core-boot.bb +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-core/packagegroups/packagegroup-core-boot.bb @@ -10,17 +10,8 @@ PACKAGE_ARCH = "${MACHINE_ARCH}" inherit packagegroup -# -# Set by the machine configuration with packages essential for device bootup -# -MACHINE_ESSENTIAL_EXTRA_RDEPENDS ?= "" -MACHINE_ESSENTIAL_EXTRA_RRECOMMENDS ?= "" - # Distro can override the following VIRTUAL-RUNTIME providers: VIRTUAL-RUNTIME_dev_manager ?= "udev" -VIRTUAL-RUNTIME_login_manager ?= "busybox" -VIRTUAL-RUNTIME_init_manager ?= "sysvinit" -VIRTUAL-RUNTIME_initscripts ?= "initscripts" VIRTUAL-RUNTIME_keymaps ?= "keymaps" EFI_PROVIDER ??= "grub-efi" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-core/packagegroups/packagegroup-core-sdk.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-core/packagegroups/packagegroup-core-sdk.bb index 15d0989b..8854ec48 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-core/packagegroups/packagegroup-core-sdk.bb +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-core/packagegroups/packagegroup-core-sdk.bb @@ -32,6 +32,7 @@ SANITIZERS_microblaze = "" SANITIZERS_mipsarch = "" SANITIZERS_nios2 = "" SANITIZERS_riscv64 = "" +SANITIZERS_riscv32 = "" SANITIZERS_libc-musl = "" RRECOMMENDS_packagegroup-core-sdk = "\ diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-core/packagegroups/packagegroup-core-standalone-sdk-target.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-core/packagegroups/packagegroup-core-standalone-sdk-target.bb index f5b2d69c..2a54f1ca 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-core/packagegroups/packagegroup-core-standalone-sdk-target.bb +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-core/packagegroups/packagegroup-core-standalone-sdk-target.bb @@ -1,6 +1,8 @@ SUMMARY = "Target packages for the standalone SDK" PR = "r8" +PACKAGE_ARCH = "${TUNE_PKGARCH}" + inherit packagegroup RDEPENDS_${PN} = "\ diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-core/packagegroups/packagegroup-core-tools-debug.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-core/packagegroups/packagegroup-core-tools-debug.bb index 9fc2b0ef..81fbdf46 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-core/packagegroups/packagegroup-core-tools-debug.bb +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-core/packagegroups/packagegroup-core-tools-debug.bb @@ -4,6 +4,8 @@ SUMMARY = "Debugging tools" +PACKAGE_ARCH = "${TUNE_PKGARCH}" + inherit packagegroup PR = "r3" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-core/packagegroups/packagegroup-self-hosted.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-core/packagegroups/packagegroup-self-hosted.bb index f206cee3..0aab23e3 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-core/packagegroups/packagegroup-self-hosted.bb +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-core/packagegroups/packagegroup-self-hosted.bb @@ -6,7 +6,9 @@ SUMMARY = "Self-hosting" DESCRIPTION = "Packages required to run the build system" PR = "r13" -inherit packagegroup distro_features_check +PACKAGE_ARCH = "${TUNE_PKGARCH}" + +inherit packagegroup features_check # rdepends on libx11-dev REQUIRED_DISTRO_FEATURES = "x11" @@ -37,7 +39,7 @@ RDEPENDS_packagegroup-self-hosted-host-tools = "\ e2fsprogs-tune2fs \ hdparm \ iptables \ - lsb \ + lsb-release \ mc \ mc-fish \ mc-helpers \ diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-core/psplash/files/psplash-init b/Contrib-Inspur/openbmc/poky/meta/recipes-core/psplash/files/psplash-init index 0bce1de5..4bee866b 100755 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-core/psplash/files/psplash-init +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-core/psplash/files/psplash-init @@ -24,7 +24,10 @@ for x in $CMDLINE; do done export TMPDIR=/mnt/.psplash -mount tmpfs -t tmpfs $TMPDIR -o,size=40k +[ -d $TMPDIR ] || mkdir -p $TMPDIR +if ! mountpoint -q $TMPDIR; then + mount tmpfs -t tmpfs $TMPDIR -o,size=40k +fi rotation=0 if [ -e /etc/rotation ]; then diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-core/psplash/psplash_git.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-core/psplash/psplash_git.bb index 3161a5e3..56734c15 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-core/psplash/psplash_git.bb +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-core/psplash/psplash_git.bb @@ -97,7 +97,6 @@ python do_compile () { } do_install_append() { - install -d ${D}/mnt/.psplash/ install -d ${D}${sysconfdir}/init.d/ install -m 0755 ${WORKDIR}/psplash-init ${D}${sysconfdir}/init.d/psplash.sh install -d ${D}${bindir} @@ -107,8 +106,6 @@ do_install_append() { rm -f ${D}${bindir}/psplash } -FILES_${PN} += "/mnt/.psplash" - INITSCRIPT_NAME = "psplash.sh" INITSCRIPT_PARAMS = "start 0 S . stop 20 0 1 6 ." diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-core/readline/readline-8.0/rl-native.map b/Contrib-Inspur/openbmc/poky/meta/recipes-core/readline/readline-8.0/rl-native.map new file mode 100644 index 00000000..5e7d49cd --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-core/readline/readline-8.0/rl-native.map @@ -0,0 +1,12 @@ +READLINE_6.3 { + rl_change_environment; + rl_clear_history; + rl_executing_key; + rl_executing_keyseq; + rl_filename_stat_hook; + rl_history_substr_search_backward; + rl_history_substr_search_forward; + rl_input_available_hook; + rl_print_last_kbd_macro; + rl_signal_event_hook; +}; diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-core/readline/readline.inc b/Contrib-Inspur/openbmc/poky/meta/recipes-core/readline/readline.inc index e9665228..07f54a76 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-core/readline/readline.inc +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-core/readline/readline.inc @@ -43,3 +43,8 @@ do_install_append () { BBCLASSEXTEND = "native nativesdk" CONFFILES_${PN} += "${sysconfdir}/inputrc" + +# OpenSuse injects versions into libreadline leading to conficits between our native one and theirs +# see their spec file for where this is injected. Extra versioning is harmless so we just do the same. +SRC_URI_append_class-native = " file://rl-native.map" +LDFLAGS_append_class-native = " -Wl,--version-script=${WORKDIR}/rl-native.map" \ No newline at end of file diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-core/systemd/systemd-boot_242.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-core/systemd/systemd-boot_242.bb deleted file mode 100644 index 56e68a3d..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-core/systemd/systemd-boot_242.bb +++ /dev/null @@ -1,71 +0,0 @@ -require systemd.inc -FILESEXTRAPATHS =. "${FILE_DIRNAME}/systemd:" - -DEPENDS = "intltool-native libcap util-linux gnu-efi gperf-native" - -# NOTE: These three patches are in theory not needed, but we haven't -# figured out how to correctly pass efi-cc parameter if it's an array. -SRC_URI += "file://0001-Revert-meson-use-an-array-option-for-efi-cc.patch \ - file://0001-Revert-meson-print-EFI-CC-configuration-nicely.patch \ - file://0001-Fix-to-run-efi_cc-and-efi_ld-correctly-when-cross-co.patch \ - " - -inherit meson pkgconfig gettext -inherit deploy - -EFI_CC ?= "${CC}" -EXTRA_OEMESON += "-Defi=true \ - -Dgnu-efi=true \ - -Defi-includedir=${STAGING_INCDIR}/efi \ - -Defi-ldsdir=${STAGING_LIBDIR} \ - -Defi-libdir=${STAGING_LIBDIR} \ - -Dman=false \ - -Defi-cc='${EFI_CC}' \ - -Defi-ld='${LD}' \ - " - -# install to the image as boot*.efi if its the EFI_PROVIDER, -# otherwise install as the full name. -# This allows multiple bootloaders to coexist in a single image. -python __anonymous () { - import re - target = d.getVar('TARGET_ARCH') - prefix = "" if d.getVar('EFI_PROVIDER') == "systemd-boot" else "systemd-" - if target == "x86_64": - systemdimage = prefix + "bootx64.efi" - else: - systemdimage = prefix + "bootia32.efi" - d.setVar("SYSTEMD_BOOT_IMAGE", systemdimage) - prefix = "systemd-" if prefix == "" else "" - d.setVar("SYSTEMD_BOOT_IMAGE_PREFIX", prefix) -} - -FILES_${PN} = "/boot/EFI/BOOT/${SYSTEMD_BOOT_IMAGE}" - -RDEPENDS_${PN} += "virtual/systemd-bootconf" - -# Imported from the old gummiboot recipe -TUNE_CCARGS_remove = "-mfpmath=sse" -COMPATIBLE_HOST = "(x86_64.*|i.86.*)-linux" -COMPATIBLE_HOST_x86-x32 = "null" - -do_compile() { - SYSTEMD_BOOT_EFI_ARCH="ia32" - if [ "${TARGET_ARCH}" = "x86_64" ]; then - SYSTEMD_BOOT_EFI_ARCH="x64" - fi - - ninja src/boot/efi/${SYSTEMD_BOOT_IMAGE_PREFIX}${SYSTEMD_BOOT_IMAGE} -} - -do_install() { - install -d ${D}/boot - install -d ${D}/boot/EFI - install -d ${D}/boot/EFI/BOOT - install ${B}/src/boot/efi/systemd-boot*.efi ${D}/boot/EFI/BOOT/${SYSTEMD_BOOT_IMAGE} -} - -do_deploy () { - install ${B}/src/boot/efi/systemd-boot*.efi ${DEPLOYDIR} -} -addtask deploy before do_build after do_compile diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-core/systemd/systemd-boot_243.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-core/systemd/systemd-boot_243.bb new file mode 100644 index 00000000..515abc28 --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-core/systemd/systemd-boot_243.bb @@ -0,0 +1,70 @@ +require systemd.inc +FILESEXTRAPATHS =. "${FILE_DIRNAME}/systemd:" + +require conf/image-uefi.conf + +DEPENDS = "intltool-native libcap util-linux gnu-efi gperf-native" + +# NOTE: These three patches are in theory not needed, but we haven't +# figured out how to correctly pass efi-cc parameter if it's an array. +SRC_URI += "file://0001-Revert-meson-use-an-array-option-for-efi-cc.patch \ + file://0001-Revert-meson-print-EFI-CC-configuration-nicely.patch \ + file://0001-Fix-to-run-efi_cc-and-efi_ld-correctly-when-cross-co.patch \ + file://0001-meson-Add-Defi-objcopy-option-to-specify-objcopy.patch \ + " + +inherit meson pkgconfig gettext +inherit deploy + +EFI_CC ?= "${CC}" +EXTRA_OEMESON += "-Defi=true \ + -Dgnu-efi=true \ + -Defi-includedir=${STAGING_INCDIR}/efi \ + -Defi-ldsdir=${STAGING_LIBDIR} \ + -Defi-libdir=${STAGING_LIBDIR} \ + -Dman=false \ + -Defi-cc='${EFI_CC}' \ + -Defi-ld='${LD}' \ + -Defi-objcopy='${OBJCOPY}' \ + " + +# install to the image as boot*.efi if its the EFI_PROVIDER, +# otherwise install as the full name. +# This allows multiple bootloaders to coexist in a single image. +python __anonymous () { + import re + target = d.getVar('TARGET_ARCH') + prefix = "" if d.getVar('EFI_PROVIDER') == "systemd-boot" else "systemd-" + systemdimage = prefix + d.getVar("EFI_BOOT_IMAGE") + d.setVar("SYSTEMD_BOOT_IMAGE", systemdimage) + prefix = "systemd-" if prefix == "" else "" + d.setVar("SYSTEMD_BOOT_IMAGE_PREFIX", prefix) +} + +FILES_${PN} = "${EFI_FILES_PATH}/${SYSTEMD_BOOT_IMAGE}" + +RDEPENDS_${PN} += "virtual/systemd-bootconf" + +# Imported from the old gummiboot recipe +TUNE_CCARGS_remove = "-mfpmath=sse" +COMPATIBLE_HOST = "(x86_64.*|i.86.*)-linux" +COMPATIBLE_HOST_x86-x32 = "null" + +do_compile() { + SYSTEMD_BOOT_EFI_ARCH="ia32" + if [ "${TARGET_ARCH}" = "x86_64" ]; then + SYSTEMD_BOOT_EFI_ARCH="x64" + fi + + ninja src/boot/efi/${SYSTEMD_BOOT_IMAGE_PREFIX}${SYSTEMD_BOOT_IMAGE} +} + +do_install() { + install -d ${D}${EFI_FILES_PATH} + install ${B}/src/boot/efi/systemd-boot*.efi ${D}${EFI_FILES_PATH}/${SYSTEMD_BOOT_IMAGE} +} + +do_deploy () { + install ${B}/src/boot/efi/systemd-boot*.efi ${DEPLOYDIR} +} +addtask deploy before do_build after do_compile diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-core/systemd/systemd-bootconf_1.00.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-core/systemd/systemd-bootconf_1.00.bb index e9c24664..d13b8c51 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-core/systemd/systemd-bootconf_1.00.bb +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-core/systemd/systemd-bootconf_1.00.bb @@ -3,6 +3,7 @@ LIC_FILES_CHKSUM = "file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384 SUMMARY = "Basic systemd-boot configuration files" RPROVIDES_${PN} += "virtual/systemd-bootconf" +PACKAGE_ARCH = "${MACHINE_ARCH}" inherit systemd-boot-cfg diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-core/systemd/systemd-compat-units.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-core/systemd/systemd-compat-units.bb index d228a51c..faa428b5 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-core/systemd/systemd-compat-units.bb +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-core/systemd/systemd-compat-units.bb @@ -8,7 +8,7 @@ PACKAGE_WRITE_DEPS += "systemd-systemctl-native" S = "${WORKDIR}" -inherit distro_features_check +inherit features_check ALLOW_EMPTY_${PN} = "1" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-core/systemd/systemd-conf_242.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-core/systemd/systemd-conf_243.bb similarity index 100% rename from Contrib-Inspur/openbmc/poky/meta/recipes-core/systemd/systemd-conf_242.bb rename to Contrib-Inspur/openbmc/poky/meta/recipes-core/systemd/systemd-conf_243.bb diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-core/systemd/systemd-serialgetty.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-core/systemd/systemd-serialgetty.bb index 65a931f4..044c6c5b 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-core/systemd/systemd-serialgetty.bb +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-core/systemd/systemd-serialgetty.bb @@ -12,7 +12,7 @@ SRC_URI = "file://serial-getty@.service" S = "${WORKDIR}" # As this package is tied to systemd, only build it when we're also building systemd. -inherit distro_features_check +inherit features_check REQUIRED_DISTRO_FEATURES = "systemd" do_install() { diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-core/systemd/systemd-serialgetty/serial-getty@.service b/Contrib-Inspur/openbmc/poky/meta/recipes-core/systemd/systemd-serialgetty/serial-getty@.service index e8b027e9..15af16a9 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-core/systemd/systemd-serialgetty/serial-getty@.service +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-core/systemd/systemd-serialgetty/serial-getty@.service @@ -9,7 +9,8 @@ Description=Serial Getty on %I Documentation=man:agetty(8) man:systemd-getty-generator(8) Documentation=http://0pointer.de/blog/projects/serial-console.html -BindsTo=dev-%i.device +PartOf=dev-%i.device +ConditionPathExists=/dev/%i After=dev-%i.device systemd-user-sessions.service plymouth-quit-wait.service After=rc-local.service diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-core/systemd/systemd-systemctl/systemctl b/Contrib-Inspur/openbmc/poky/meta/recipes-core/systemd/systemd-systemctl/systemctl index 8d7b3ba3..ebac8637 100755 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-core/systemd/systemd-systemctl/systemctl +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-core/systemd/systemd-systemctl/systemctl @@ -28,6 +28,10 @@ class SystemdFile(): def __init__(self, root, path): self.sections = dict() self._parse(root, path) + dirname = os.path.basename(path.name) + ".d" + for location in locations: + for path2 in sorted((root / location / "system" / dirname).glob("*.conf")): + self._parse(root, path2) def _parse(self, root, path): """Parse a systemd syntax configuration file @@ -53,11 +57,14 @@ class SystemdFile(): if skip_re.match(line): continue - line = line.rstrip("\n") + line = line.strip() m = section_re.match(line) if m: - section = dict() - self.sections[m.group('section')] = section + if m.group('section') not in self.sections: + section = dict() + self.sections[m.group('section')] = section + else: + section = self.sections[m.group('section')] continue while line.endswith("\\"): diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-core/systemd/systemd.inc b/Contrib-Inspur/openbmc/poky/meta/recipes-core/systemd/systemd.inc index 3a353b00..7f3a59c2 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-core/systemd/systemd.inc +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-core/systemd/systemd.inc @@ -14,8 +14,8 @@ LICENSE = "GPLv2 & LGPLv2.1" LIC_FILES_CHKSUM = "file://LICENSE.GPL2;md5=751419260aa954499f7abaabaa882bbe \ file://LICENSE.LGPL2.1;md5=4fbd65380cdd255951079008b364516c" -SRCREV = "db2e367bfc3b119609f837eb973d915f6c550b2f" -SRCBRANCH = "v242-stable" +SRCREV = "efb536d0cbe2e58f80e501d19999928c75e08f6a" +SRCBRANCH = "v243-stable" SRC_URI = "git://github.com/systemd/systemd-stable.git;protocol=git;branch=${SRCBRANCH}" S = "${WORKDIR}/git" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-core/systemd/systemd/0001-Replace-the-legacy-ULONG_LONG_MAX-with-the-C99-ULLON.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-core/systemd/systemd/0001-Replace-the-legacy-ULONG_LONG_MAX-with-the-C99-ULLON.patch deleted file mode 100644 index 6f192a2a..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-core/systemd/systemd/0001-Replace-the-legacy-ULONG_LONG_MAX-with-the-C99-ULLON.patch +++ /dev/null @@ -1,50 +0,0 @@ -From f491dfdc88ddbba36a24a75b2063aff027461b83 Mon Sep 17 00:00:00 2001 -From: Adrian Bunk -Date: Thu, 16 May 2019 22:20:07 +0300 -Subject: Replace the legacy ULONG_LONG_MAX with the C99 ULLONG_MAX - -Upstream-Status: Backport -Signed-off-by: Adrian Bunk ---- - src/journal-remote/journal-remote-main.c | 4 ++-- - src/shutdown/shutdown.c | 2 +- - 2 files changed, 3 insertions(+), 3 deletions(-) - -diff --git a/src/journal-remote/journal-remote-main.c b/src/journal-remote/journal-remote-main.c -index 2321a91e7b..d32c51c3ce 100644 ---- a/src/journal-remote/journal-remote-main.c -+++ b/src/journal-remote/journal-remote-main.c -@@ -528,7 +528,7 @@ static int dispatch_http_event(sd_event_source *event, - void *userdata) { - MHDDaemonWrapper *d = userdata; - int r; -- MHD_UNSIGNED_LONG_LONG timeout = ULONG_LONG_MAX; -+ MHD_UNSIGNED_LONG_LONG timeout = ULLONG_MAX; - - assert(d); - -@@ -538,7 +538,7 @@ static int dispatch_http_event(sd_event_source *event, - return log_error_errno(SYNTHETIC_ERRNO(EINVAL), - "MHD_run failed!"); - if (MHD_get_timeout(d->daemon, &timeout) == MHD_NO) -- timeout = ULONG_LONG_MAX; -+ timeout = ULLONG_MAX; - - r = sd_event_source_set_time(d->timer_event, timeout); - if (r < 0) { -diff --git a/src/shutdown/shutdown.c b/src/shutdown/shutdown.c -index 35b2c2aa46..9623fe9ea2 100644 ---- a/src/shutdown/shutdown.c -+++ b/src/shutdown/shutdown.c -@@ -212,7 +212,7 @@ static int sync_making_progress(unsigned long long *prev_dirty) { - } - - static void sync_with_progress(void) { -- unsigned long long dirty = ULONG_LONG_MAX; -+ unsigned long long dirty = ULLONG_MAX; - unsigned checks; - pid_t pid; - int r; --- -2.20.1 - diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-core/systemd/systemd/0001-Use-getenv-when-secure-versions-are-not-available.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-core/systemd/systemd/0001-Use-getenv-when-secure-versions-are-not-available.patch deleted file mode 100644 index 37979755..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-core/systemd/systemd/0001-Use-getenv-when-secure-versions-are-not-available.patch +++ /dev/null @@ -1,32 +0,0 @@ -From b8055a61b5df6b43b8d3117936587b874b0a339b Mon Sep 17 00:00:00 2001 -From: Chen Qi -Date: Mon, 25 Feb 2019 11:01:18 +0800 -Subject: [PATCH 01/24] Use getenv when secure versions are not available - -musl doesnt implement secure version, so we default -to it if configure does not detect a secure implementation - -Signed-off-by: Khem Raj - -Upstream-Status: Denied - -Signed-off-by: Chen Qi ---- - src/basic/missing_stdlib.h | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/src/basic/missing_stdlib.h b/src/basic/missing_stdlib.h -index 188a8d4..c0ffe86 100644 ---- a/src/basic/missing_stdlib.h -+++ b/src/basic/missing_stdlib.h -@@ -8,6 +8,6 @@ - # if HAVE___SECURE_GETENV - # define secure_getenv __secure_getenv - # else --# error "neither secure_getenv nor __secure_getenv are available" -+# define secure_getenv getenv - # endif - #endif --- -2.7.4 - diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-core/systemd/systemd/0001-binfmt-Don-t-install-dependency-links-at-install-tim.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-core/systemd/systemd/0001-binfmt-Don-t-install-dependency-links-at-install-tim.patch index 00670ca2..73e65ff7 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-core/systemd/systemd/0001-binfmt-Don-t-install-dependency-links-at-install-tim.patch +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-core/systemd/systemd/0001-binfmt-Don-t-install-dependency-links-at-install-tim.patch @@ -16,6 +16,8 @@ Upstream-Status: Denied Signed-off-by: Ross Burton Signed-off-by: Khem Raj Signed-off-by: Chen Qi +[rebased for systemd 243] +Signed-off-by: Scott Murray --- units/meson.build | 6 ++---- units/proc-sys-fs-binfmt_misc.automount | 3 +++ @@ -23,10 +25,10 @@ Signed-off-by: Chen Qi 3 files changed, 9 insertions(+), 4 deletions(-) diff --git a/units/meson.build b/units/meson.build -index d695084..7b1f14a 100644 +index e1ee9f86c3..6bb7771b36 100644 --- a/units/meson.build +++ b/units/meson.build -@@ -47,8 +47,7 @@ units = [ +@@ -46,8 +46,7 @@ units = [ ['poweroff.target', '', 'runlevel0.target'], ['printer.target', ''], @@ -36,7 +38,7 @@ index d695084..7b1f14a 100644 ['proc-sys-fs-binfmt_misc.mount', 'ENABLE_BINFMT'], ['reboot.target', '', 'runlevel6.target ctrl-alt-del.target'], -@@ -134,8 +133,7 @@ in_units = [ +@@ -130,8 +129,7 @@ in_units = [ ['systemd-ask-password-console.service', ''], ['systemd-ask-password-wall.service', ''], ['systemd-backlight@.service', 'ENABLE_BACKLIGHT'], @@ -45,9 +47,9 @@ index d695084..7b1f14a 100644 + ['systemd-binfmt.service', 'ENABLE_BINFMT'], ['systemd-bless-boot.service', 'ENABLE_EFI HAVE_BLKID'], ['systemd-boot-check-no-failures.service', ''], - ['systemd-coredump@.service', 'ENABLE_COREDUMP'], + ['systemd-boot-system-token.service', 'ENABLE_EFI', diff --git a/units/proc-sys-fs-binfmt_misc.automount b/units/proc-sys-fs-binfmt_misc.automount -index 30a6bc9..4231f3b 100644 +index 30a6bc9918..4231f3b70f 100644 --- a/units/proc-sys-fs-binfmt_misc.automount +++ b/units/proc-sys-fs-binfmt_misc.automount @@ -18,3 +18,6 @@ ConditionPathIsReadWrite=/proc/sys/ @@ -58,7 +60,7 @@ index 30a6bc9..4231f3b 100644 +[Install] +WantedBy=sysinit.target diff --git a/units/systemd-binfmt.service.in b/units/systemd-binfmt.service.in -index e940c7c..6be7f5c 100644 +index e940c7c9ad..6be7f5cc9b 100644 --- a/units/systemd-binfmt.service.in +++ b/units/systemd-binfmt.service.in @@ -14,6 +14,7 @@ Documentation=https://www.kernel.org/doc/html/latest/admin-guide/binfmt-misc.htm @@ -76,6 +78,3 @@ index e940c7c..6be7f5c 100644 + +[Install] +WantedBy=sysinit.target --- -2.7.4 - diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-core/systemd/systemd/0001-do-not-disable-buffer-in-writing-files.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-core/systemd/systemd/0001-do-not-disable-buffer-in-writing-files.patch index 68ca604d..2f4daf86 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-core/systemd/systemd/0001-do-not-disable-buffer-in-writing-files.patch +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-core/systemd/systemd/0001-do-not-disable-buffer-in-writing-files.patch @@ -16,6 +16,8 @@ Upstream-Status: Inappropriate [musl] Signed-off-by: Chen Qi [Rebased for v242] Signed-off-by: Andrej Valek +[rebased for systemd 243] +Signed-off-by: Scott Murray --- src/basic/cgroup-util.c | 14 +++++++------- src/basic/procfs-util.c | 4 ++-- @@ -30,17 +32,17 @@ Signed-off-by: Andrej Valek src/nspawn/nspawn-cgroup.c | 2 +- src/nspawn/nspawn.c | 6 +++--- src/shared/sysctl-util.c | 2 +- - src/sleep/sleep.c | 12 ++++++------ + src/sleep/sleep.c | 10 +++++----- src/udev/udevadm-trigger.c | 2 +- - src/udev/udevd.c | 6 +++--- + src/udev/udevd.c | 2 +- src/vconsole/vconsole-setup.c | 2 +- - 17 files changed, 39 insertions(+), 39 deletions(-) + 17 files changed, 36 insertions(+), 36 deletions(-) diff --git a/src/basic/cgroup-util.c b/src/basic/cgroup-util.c -index fc28109..44fe985 100644 +index 7b5839ccd6..18f6e8ffc8 100644 --- a/src/basic/cgroup-util.c +++ b/src/basic/cgroup-util.c -@@ -822,7 +822,7 @@ int cg_attach(const char *controller, const char *path, pid_t pid) { +@@ -860,7 +860,7 @@ int cg_attach(const char *controller, const char *path, pid_t pid) { xsprintf(c, PID_FMT "\n", pid); @@ -49,7 +51,7 @@ index fc28109..44fe985 100644 if (r < 0) return r; -@@ -1104,7 +1104,7 @@ int cg_install_release_agent(const char *controller, const char *agent) { +@@ -1142,7 +1142,7 @@ int cg_install_release_agent(const char *controller, const char *agent) { sc = strstrip(contents); if (isempty(sc)) { @@ -58,7 +60,7 @@ index fc28109..44fe985 100644 if (r < 0) return r; } else if (!path_equal(sc, agent)) -@@ -1122,7 +1122,7 @@ int cg_install_release_agent(const char *controller, const char *agent) { +@@ -1160,7 +1160,7 @@ int cg_install_release_agent(const char *controller, const char *agent) { sc = strstrip(contents); if (streq(sc, "0")) { @@ -67,7 +69,7 @@ index fc28109..44fe985 100644 if (r < 0) return r; -@@ -1149,7 +1149,7 @@ int cg_uninstall_release_agent(const char *controller) { +@@ -1187,7 +1187,7 @@ int cg_uninstall_release_agent(const char *controller) { if (r < 0) return r; @@ -76,7 +78,7 @@ index fc28109..44fe985 100644 if (r < 0) return r; -@@ -1159,7 +1159,7 @@ int cg_uninstall_release_agent(const char *controller) { +@@ -1197,7 +1197,7 @@ int cg_uninstall_release_agent(const char *controller) { if (r < 0) return r; @@ -85,7 +87,7 @@ index fc28109..44fe985 100644 if (r < 0) return r; -@@ -2016,7 +2016,7 @@ int cg_set_attribute(const char *controller, const char *path, const char *attri +@@ -2053,7 +2053,7 @@ int cg_set_attribute(const char *controller, const char *path, const char *attri if (r < 0) return r; @@ -94,7 +96,7 @@ index fc28109..44fe985 100644 } int cg_get_attribute(const char *controller, const char *path, const char *attribute, char **ret) { -@@ -2664,7 +2664,7 @@ int cg_enable_everywhere( +@@ -2697,7 +2697,7 @@ int cg_enable_everywhere( return log_debug_errno(errno, "Failed to open cgroup.subtree_control file of %s: %m", p); } @@ -104,10 +106,10 @@ index fc28109..44fe985 100644 log_debug_errno(r, "Failed to %s controller %s for %s (%s): %m", FLAGS_SET(mask, bit) ? "enable" : "disable", n, p, fs); diff --git a/src/basic/procfs-util.c b/src/basic/procfs-util.c -index 7aaf95b..25fc3de 100644 +index 42ce53d5aa..57512532a6 100644 --- a/src/basic/procfs-util.c +++ b/src/basic/procfs-util.c -@@ -85,13 +85,13 @@ int procfs_tasks_set_limit(uint64_t limit) { +@@ -86,13 +86,13 @@ int procfs_tasks_set_limit(uint64_t limit) { * decrease it, as threads-max is the much more relevant sysctl. */ if (limit > pid_max-1) { sprintf(buffer, "%" PRIu64, limit+1); /* Add one, since PID 0 is not a valid PID */ @@ -124,7 +126,7 @@ index 7aaf95b..25fc3de 100644 uint64_t threads_max; diff --git a/src/basic/smack-util.c b/src/basic/smack-util.c -index 123d00e..e7ea78f 100644 +index 123d00e13e..e7ea78f349 100644 --- a/src/basic/smack-util.c +++ b/src/basic/smack-util.c @@ -115,7 +115,7 @@ int mac_smack_apply_pid(pid_t pid, const char *label) { @@ -137,7 +139,7 @@ index 123d00e..e7ea78f 100644 return r; diff --git a/src/basic/util.c b/src/basic/util.c -index 93d610b..97dca64 100644 +index 93d610bc98..97dca64f73 100644 --- a/src/basic/util.c +++ b/src/basic/util.c @@ -294,7 +294,7 @@ void disable_coredumps(void) { @@ -150,7 +152,7 @@ index 93d610b..97dca64 100644 log_debug_errno(r, "Failed to turn off coredumps, ignoring: %m"); } diff --git a/src/binfmt/binfmt.c b/src/binfmt/binfmt.c -index 66e2f01..5daa43b 100644 +index aa9d811f2e..8c7f2dae7a 100644 --- a/src/binfmt/binfmt.c +++ b/src/binfmt/binfmt.c @@ -48,7 +48,7 @@ static int delete_rule(const char *rule) { @@ -175,16 +177,16 @@ index 66e2f01..5daa43b 100644 } /* Flush out all rules */ -- write_string_file("/proc/sys/fs/binfmt_misc/status", "-1", WRITE_STRING_FILE_DISABLE_BUFFER); -+ write_string_file("/proc/sys/fs/binfmt_misc/status", "-1", 0); +- (void) write_string_file("/proc/sys/fs/binfmt_misc/status", "-1", WRITE_STRING_FILE_DISABLE_BUFFER); ++ (void) write_string_file("/proc/sys/fs/binfmt_misc/status", "-1", 0); STRV_FOREACH(f, files) { k = apply_file(*f, true); diff --git a/src/core/main.c b/src/core/main.c -index 46db471..726ccaf 100644 +index bcce7178a8..4199cedab9 100644 --- a/src/core/main.c +++ b/src/core/main.c -@@ -1469,7 +1469,7 @@ static int bump_unix_max_dgram_qlen(void) { +@@ -1285,7 +1285,7 @@ static int bump_unix_max_dgram_qlen(void) { if (v >= DEFAULT_UNIX_MAX_DGRAM_QLEN) return 0; @@ -193,7 +195,7 @@ index 46db471..726ccaf 100644 if (r < 0) return log_full_errno(IN_SET(r, -EROFS, -EPERM, -EACCES) ? LOG_DEBUG : LOG_WARNING, r, "Failed to bump AF_UNIX datagram queue length, ignoring: %m"); -@@ -1684,7 +1684,7 @@ static void initialize_core_pattern(bool skip_setup) { +@@ -1509,7 +1509,7 @@ static void initialize_core_pattern(bool skip_setup) { if (getpid_cached() != 1) return; @@ -203,10 +205,10 @@ index 46db471..726ccaf 100644 log_warning_errno(r, "Failed to write '%s' to /proc/sys/kernel/core_pattern, ignoring: %m", arg_early_core_pattern); } diff --git a/src/core/smack-setup.c b/src/core/smack-setup.c -index cd7fb01..077e861 100644 +index b95e6239d4..fdbdaaaccb 100644 --- a/src/core/smack-setup.c +++ b/src/core/smack-setup.c -@@ -351,17 +351,17 @@ int mac_smack_setup(bool *loaded_policy) { +@@ -325,17 +325,17 @@ int mac_smack_setup(bool *loaded_policy) { } #ifdef SMACK_RUN_LABEL @@ -229,7 +231,7 @@ index cd7fb01..077e861 100644 log_warning_errno(r, "Failed to set SMACK netlabel rule \"127.0.0.1 -CIPSO\": %m"); #endif diff --git a/src/hibernate-resume/hibernate-resume.c b/src/hibernate-resume/hibernate-resume.c -index 17e7cd1..87a7667 100644 +index 17e7cd1a00..87a7667716 100644 --- a/src/hibernate-resume/hibernate-resume.c +++ b/src/hibernate-resume/hibernate-resume.c @@ -45,7 +45,7 @@ int main(int argc, char *argv[]) { @@ -242,10 +244,10 @@ index 17e7cd1..87a7667 100644 log_error_errno(r, "Failed to write '%s' to /sys/power/resume: %m", major_minor); return EXIT_FAILURE; diff --git a/src/libsystemd/sd-device/sd-device.c b/src/libsystemd/sd-device/sd-device.c -index c2315c0..00f81b4 100644 +index c4a7f2f3d3..bcac758284 100644 --- a/src/libsystemd/sd-device/sd-device.c +++ b/src/libsystemd/sd-device/sd-device.c -@@ -1852,7 +1852,7 @@ _public_ int sd_device_set_sysattr_value(sd_device *device, const char *sysattr, +@@ -1849,7 +1849,7 @@ _public_ int sd_device_set_sysattr_value(sd_device *device, const char *sysattr, if (!value) return -ENOMEM; @@ -255,10 +257,10 @@ index c2315c0..00f81b4 100644 if (r == -ELOOP) return -EINVAL; diff --git a/src/login/logind-dbus.c b/src/login/logind-dbus.c -index 2cebcce..7111fc1 100644 +index 30b9a66334..cc1d577933 100644 --- a/src/login/logind-dbus.c +++ b/src/login/logind-dbus.c -@@ -1285,7 +1285,7 @@ static int trigger_device(Manager *m, sd_device *d) { +@@ -1325,7 +1325,7 @@ static int trigger_device(Manager *m, sd_device *d) { if (!t) return -ENOMEM; @@ -268,23 +270,23 @@ index 2cebcce..7111fc1 100644 return 0; diff --git a/src/nspawn/nspawn-cgroup.c b/src/nspawn/nspawn-cgroup.c -index 168125d..dd0ab79 100644 +index 0462b46413..7c53d41483 100644 --- a/src/nspawn/nspawn-cgroup.c +++ b/src/nspawn/nspawn-cgroup.c -@@ -124,7 +124,7 @@ int sync_cgroup(pid_t pid, CGroupUnified unified_requested, uid_t uid_shift) { - (void) mkdir_parents(fn, 0755); +@@ -123,7 +123,7 @@ int sync_cgroup(pid_t pid, CGroupUnified unified_requested, uid_t uid_shift) { + fn = strjoina(tree, cgroup, "/cgroup.procs"); sprintf(pid_string, PID_FMT, pid); -- r = write_string_file(fn, pid_string, WRITE_STRING_FILE_DISABLE_BUFFER); -+ r = write_string_file(fn, pid_string, 0); +- r = write_string_file(fn, pid_string, WRITE_STRING_FILE_DISABLE_BUFFER|WRITE_STRING_FILE_MKDIR_0755); ++ r = write_string_file(fn, pid_string, WRITE_STRING_FILE_MKDIR_0755); if (r < 0) { log_error_errno(r, "Failed to move process: %m"); goto finish; diff --git a/src/nspawn/nspawn.c b/src/nspawn/nspawn.c -index 3b0ecb1..a1b5240 100644 +index 2aec8041f0..841542f2f3 100644 --- a/src/nspawn/nspawn.c +++ b/src/nspawn/nspawn.c -@@ -2341,7 +2341,7 @@ static int reset_audit_loginuid(void) { +@@ -2357,7 +2357,7 @@ static int reset_audit_loginuid(void) { if (streq(p, "4294967295")) return 0; @@ -293,7 +295,7 @@ index 3b0ecb1..a1b5240 100644 if (r < 0) { log_error_errno(r, "Failed to reset audit login UID. This probably means that your kernel is too\n" -@@ -3531,13 +3531,13 @@ static int setup_uid_map(pid_t pid) { +@@ -3566,13 +3566,13 @@ static int setup_uid_map(pid_t pid) { xsprintf(uid_map, "/proc/" PID_FMT "/uid_map", pid); xsprintf(line, UID_FMT " " UID_FMT " " UID_FMT "\n", 0, arg_uid_shift, arg_uid_range); @@ -310,10 +312,10 @@ index 3b0ecb1..a1b5240 100644 return log_error_errno(r, "Failed to write GID map: %m"); diff --git a/src/shared/sysctl-util.c b/src/shared/sysctl-util.c -index 9be4055..f935cde 100644 +index 93bdcf11bf..68cddb7a9f 100644 --- a/src/shared/sysctl-util.c +++ b/src/shared/sysctl-util.c -@@ -73,7 +73,7 @@ int sysctl_write_ip_property(int af, const char *ifname, const char *property, c +@@ -88,7 +88,7 @@ int sysctl_write_ip_property(int af, const char *ifname, const char *property, c log_debug("Setting '%s' to '%s'", p, value); @@ -323,19 +325,19 @@ index 9be4055..f935cde 100644 int sysctl_read(const char *property, char **content) { diff --git a/src/sleep/sleep.c b/src/sleep/sleep.c -index 11aabaf..6aa5d37 100644 +index b9fe96635d..f168d7f890 100644 --- a/src/sleep/sleep.c +++ b/src/sleep/sleep.c -@@ -48,7 +48,7 @@ static int write_hibernate_location_info(void) { +@@ -54,7 +54,7 @@ static int write_hibernate_location_info(void) { /* if it's a swap partition, we just write the disk to /sys/power/resume */ if (streq(type, "partition")) { - r = write_string_file("/sys/power/resume", device, WRITE_STRING_FILE_DISABLE_BUFFER); + r = write_string_file("/sys/power/resume", device, 0); if (r < 0) - return log_debug_errno(r, "Faileed to write partitoin device to /sys/power/resume: %m"); + return log_debug_errno(r, "Failed to write partition device to /sys/power/resume: %m"); -@@ -84,12 +84,12 @@ static int write_hibernate_location_info(void) { +@@ -98,14 +98,14 @@ static int write_hibernate_location_info(void) { offset = fiemap->fm_extents[0].fe_physical / page_size(); xsprintf(offset_str, "%" PRIu64, offset); @@ -344,13 +346,15 @@ index 11aabaf..6aa5d37 100644 if (r < 0) return log_debug_errno(r, "Failed to write offset '%s': %m", offset_str); + log_debug("Wrote calculated resume_offset value to /sys/power/resume_offset: %s", offset_str); + xsprintf(device_str, "%lx", (unsigned long)stb.st_dev); - r = write_string_file("/sys/power/resume", device_str, WRITE_STRING_FILE_DISABLE_BUFFER); + r = write_string_file("/sys/power/resume", device_str, 0); if (r < 0) return log_debug_errno(r, "Failed to write device '%s': %m", device_str); -@@ -103,7 +103,7 @@ static int write_mode(char **modes) { +@@ -121,7 +121,7 @@ static int write_mode(char **modes) { STRV_FOREACH(mode, modes) { int k; @@ -359,7 +363,7 @@ index 11aabaf..6aa5d37 100644 if (k >= 0) return 0; -@@ -122,7 +122,7 @@ static int write_state(FILE **f, char **states) { +@@ -140,7 +140,7 @@ static int write_state(FILE **f, char **states) { STRV_FOREACH(state, states) { int k; @@ -368,17 +372,8 @@ index 11aabaf..6aa5d37 100644 if (k >= 0) return 0; log_debug_errno(k, "Failed to write '%s' to /sys/power/state: %m", *state); -@@ -217,7 +217,7 @@ static int rtc_write_wake_alarm(uint64_t sec) { - - xsprintf(buf, "%" PRIu64, sec); - -- r = write_string_file("/sys/class/rtc/rtc0/wakealarm", buf, WRITE_STRING_FILE_DISABLE_BUFFER); -+ r = write_string_file("/sys/class/rtc/rtc0/wakealarm", buf, 0); - if (r < 0) - return log_error_errno(r, "Failed to write '%s' to /sys/class/rtc/rtc0/wakealarm: %m", buf); - diff --git a/src/udev/udevadm-trigger.c b/src/udev/udevadm-trigger.c -index b7dafb7..bab4907 100644 +index 77d95e513f..25ce4abfb1 100644 --- a/src/udev/udevadm-trigger.c +++ b/src/udev/udevadm-trigger.c @@ -43,7 +43,7 @@ static int exec_list(sd_device_enumerator *e, const char *action, Set *settle_se @@ -388,44 +383,26 @@ index b7dafb7..bab4907 100644 - r = write_string_file(filename, action, WRITE_STRING_FILE_DISABLE_BUFFER); + r = write_string_file(filename, action, 0); if (r < 0) { - log_debug_errno(r, "Failed to write '%s' to '%s', ignoring: %m", action, filename); - continue; + log_full_errno(r == -ENOENT ? LOG_DEBUG : LOG_ERR, r, + "Failed to write '%s' to '%s': %m", action, filename); diff --git a/src/udev/udevd.c b/src/udev/udevd.c -index 140ec35..33063a9 100644 +index cb5123042a..ea309a9e7f 100644 --- a/src/udev/udevd.c +++ b/src/udev/udevd.c -@@ -1185,7 +1185,7 @@ static int synthesize_change(sd_device *dev) { - */ - log_debug("Device '%s' is closed, synthesising 'change'", devname); - strscpyl(filename, sizeof(filename), syspath, "/uevent", NULL); -- write_string_file(filename, "change", WRITE_STRING_FILE_DISABLE_BUFFER); -+ write_string_file(filename, "change", 0); - - FOREACH_DEVICE(e, d) { - const char *t, *n, *s; -@@ -1200,7 +1200,7 @@ static int synthesize_change(sd_device *dev) { - - log_debug("Device '%s' is closed, synthesising partition '%s' 'change'", devname, n); - strscpyl(filename, sizeof(filename), s, "/uevent", NULL); -- write_string_file(filename, "change", WRITE_STRING_FILE_DISABLE_BUFFER); -+ write_string_file(filename, "change", 0); - } - - return 0; -@@ -1208,7 +1208,7 @@ static int synthesize_change(sd_device *dev) { - - log_debug("Device %s is closed, synthesising 'change'", devname); - strscpyl(filename, sizeof(filename), syspath, "/uevent", NULL); -- write_string_file(filename, "change", WRITE_STRING_FILE_DISABLE_BUFFER); -+ write_string_file(filename, "change", 0); +@@ -1113,7 +1113,7 @@ static int synthesize_change_one(sd_device *dev, const char *syspath) { + filename = strjoina(syspath, "/uevent"); + log_device_debug(dev, "device is closed, synthesising 'change' on %s", syspath); +- r = write_string_file(filename, "change", WRITE_STRING_FILE_DISABLE_BUFFER); ++ r = write_string_file(filename, "change", 0); + if (r < 0) + return log_device_debug_errno(dev, r, "Failed to write 'change' to %s: %m", filename); return 0; - } diff --git a/src/vconsole/vconsole-setup.c b/src/vconsole/vconsole-setup.c -index 67dc2e4..01b83d0 100644 +index 75d052ae70..5a15c939d8 100644 --- a/src/vconsole/vconsole-setup.c +++ b/src/vconsole/vconsole-setup.c -@@ -116,7 +116,7 @@ static int toggle_utf8(const char *name, int fd, bool utf8) { +@@ -117,7 +117,7 @@ static int toggle_utf8_vc(const char *name, int fd, bool utf8) { static int toggle_utf8_sysfs(bool utf8) { int r; @@ -434,6 +411,3 @@ index 67dc2e4..01b83d0 100644 if (r < 0) return log_warning_errno(r, "Failed to %s sysfs UTF-8 flag: %m", enable_disable(utf8)); --- -2.11.0 - diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-core/systemd/systemd/0001-meson-Add-Defi-objcopy-option-to-specify-objcopy.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-core/systemd/systemd/0001-meson-Add-Defi-objcopy-option-to-specify-objcopy.patch new file mode 100644 index 00000000..7d764b41 --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-core/systemd/systemd/0001-meson-Add-Defi-objcopy-option-to-specify-objcopy.patch @@ -0,0 +1,48 @@ +From 3f37ad5e083dcad51c21c1050b2829b70d240b52 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Tue, 6 Aug 2019 03:10:20 +0000 +Subject: [PATCH] meson: Add -Defi-objcopy option to specify objcopy + +This helps in cross compiling for x86 target on a aarch64 host e.g. +Fixes +TOPDIR/build/tmp/hosttools/objcopy:src/boot/efi/systemd_boot.so: Invalid bfd target + +Upstream-Status: Pending +Signed-off-by: Khem Raj +--- + meson_options.txt | 2 ++ + src/boot/efi/meson.build | 5 ++++- + 2 files changed, 6 insertions(+), 1 deletion(-) + +diff --git a/meson_options.txt b/meson_options.txt +index d4ec37dda2..dc1c96e112 100644 +--- a/meson_options.txt ++++ b/meson_options.txt +@@ -296,6 +296,8 @@ option('efi-cc', type : 'array', + description : 'the compiler to use for EFI modules') + option('efi-ld', type : 'string', + description : 'the linker to use for EFI modules') ++option('efi-objcopy', type : 'string', ++ description : 'the objcopy to use for EFI') + option('efi-libdir', type : 'string', + description : 'path to the EFI lib directory') + option('efi-ldsdir', type : 'string', +diff --git a/src/boot/efi/meson.build b/src/boot/efi/meson.build +index 0ae3191635..5a7137bc84 100644 +--- a/src/boot/efi/meson.build ++++ b/src/boot/efi/meson.build +@@ -88,7 +88,10 @@ if have_gnu_efi + output : 'efi_config.h', + configuration : efi_conf) + +- objcopy = find_program('objcopy') ++ objcopy = get_option('efi-objcopy') ++ if objcopy == '' ++ objcopy = find_program('objcopy', required: true) ++ endif + + efi_ldsdir = get_option('efi-ldsdir') + arch_lds = 'elf_@0@_efi.lds'.format(gnu_efi_path_arch) +-- +2.17.1 + diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-core/systemd/systemd/0001-pstore-fix-use-after-free.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-core/systemd/systemd/0001-pstore-fix-use-after-free.patch new file mode 100644 index 00000000..fd147a18 --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-core/systemd/systemd/0001-pstore-fix-use-after-free.patch @@ -0,0 +1,39 @@ +From 1b3156edd291e0882d80a695d035dd30521345d1 Mon Sep 17 00:00:00 2001 +From: Michael Olbrich +Date: Fri, 6 Sep 2019 15:04:01 +0200 +Subject: [PATCH] pstore: fix use after free + +The memory is still needed in the sd_journal_sendv() after the 'if' block. + +(cherry picked from commit 1e19f5ac0d680a63eccae7ef1fc6ce225dca0bbf) + +Upstream-Status: Backport + +Signed-off-by: Yongxin Liu +--- + src/pstore/pstore.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/pstore/pstore.c b/src/pstore/pstore.c +index c760b3e899..8ffe523830 100644 +--- a/src/pstore/pstore.c ++++ b/src/pstore/pstore.c +@@ -117,6 +117,7 @@ static int compare_pstore_entries(const void *_a, const void *_b) { + + static int move_file(PStoreEntry *pe, const char *subdir) { + _cleanup_free_ char *ifd_path = NULL, *ofd_path = NULL; ++ _cleanup_free_ void *field = NULL; + const char *suffix, *message; + struct iovec iovec[2]; + int n_iovec = 0, r; +@@ -138,7 +139,6 @@ static int move_file(PStoreEntry *pe, const char *subdir) { + iovec[n_iovec++] = IOVEC_MAKE_STRING(message); + + if (pe->content_size > 0) { +- _cleanup_free_ void *field = NULL; + size_t field_size; + + field_size = strlen("FILE=") + pe->content_size; +-- +2.14.4 + diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-core/systemd/systemd/0001-resolved-Fix-incorrect-use-of-OpenSSL-BUF_MEM.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-core/systemd/systemd/0001-resolved-Fix-incorrect-use-of-OpenSSL-BUF_MEM.patch deleted file mode 100644 index f0ae1db6..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-core/systemd/systemd/0001-resolved-Fix-incorrect-use-of-OpenSSL-BUF_MEM.patch +++ /dev/null @@ -1,41 +0,0 @@ -From 18bddeaaf225d5becfc10cd2c6a1d037c90574a2 Mon Sep 17 00:00:00 2001 -From: Tomas Mraz -Date: Tue, 11 Jun 2019 15:10:21 +0200 -Subject: [PATCH] resolved: Fix incorrect use of OpenSSL BUF_MEM - -Fixes: #12763 -Upstream-Status: Backport [Not yet released] - https://github.com/systemd/systemd/commit/18bddeaaf225d5becfc10cd2c6a1d037c90574a2 -Signed-off-by: Alex Kiernan ---- - src/resolve/resolved-dnstls-openssl.c | 5 ++++- - 1 file changed, 4 insertions(+), 1 deletion(-) - -diff --git a/src/resolve/resolved-dnstls-openssl.c b/src/resolve/resolved-dnstls-openssl.c -index f269e4d6487f..5d9223007581 100644 ---- a/src/resolve/resolved-dnstls-openssl.c -+++ b/src/resolve/resolved-dnstls-openssl.c -@@ -6,6 +6,7 @@ - - #include - #include -+#include - - #include "io-util.h" - #include "resolved-dns-stream.h" -@@ -34,9 +35,11 @@ static int dnstls_flush_write_buffer(DnsStream *stream) { - return ss; - } else { - stream->dnstls_data.write_buffer->length -= ss; -- stream->dnstls_data.write_buffer->data += ss; - - if (stream->dnstls_data.write_buffer->length > 0) { -+ memmove(stream->dnstls_data.write_buffer->data, -+ stream->dnstls_data.write_buffer->data + ss, -+ stream->dnstls_data.write_buffer->length); - stream->dnstls_events |= EPOLLOUT; - return -EAGAIN; - } --- -2.17.1 - diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-core/systemd/systemd/0001-src-udev-udev-event.c-must-include-sys-wait.h.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-core/systemd/systemd/0001-src-udev-udev-event.c-must-include-sys-wait.h.patch deleted file mode 100644 index 565deba1..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-core/systemd/systemd/0001-src-udev-udev-event.c-must-include-sys-wait.h.patch +++ /dev/null @@ -1,35 +0,0 @@ -From 010f917cf222d2c7205584056fe0e4c581a2e1b1 Mon Sep 17 00:00:00 2001 -From: Adrian Bunk -Date: Thu, 16 May 2019 22:09:46 +0300 -Subject: src/udev/udev-event.c must #include - -Fixes the following build failure with musl: -../git/src/udev/udev-event.c: In function 'spawn_wait': -../git/src/udev/udev-event.c:600:53: error: 'WEXITED' undeclared (first use in this function); did you mean 'WIFEXITED'? - r = sd_event_add_child(e, NULL, spawn->pid, WEXITED, on_spawn_sigchld, spawn); - ^~~~~~~ - -This looks like a bug in udev-event.c that could also have broken -the compilation after some future glibc header reshuffle. - -Upstream-Status: Backport -Signed-off-by: Adrian Bunk ---- - src/udev/udev-event.c | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/src/udev/udev-event.c b/src/udev/udev-event.c -index cab1b5ac0c..a0a7ac0f9e 100644 ---- a/src/udev/udev-event.c -+++ b/src/udev/udev-event.c -@@ -7,6 +7,7 @@ - #include - #include - #include -+#include - #include - - #include "sd-event.h" --- -2.20.1 - diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-core/systemd/systemd/0001-unit-file.c-consider-symlink-on-filesystems-like-NFS.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-core/systemd/systemd/0001-unit-file.c-consider-symlink-on-filesystems-like-NFS.patch new file mode 100644 index 00000000..ba20a0bb --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-core/systemd/systemd/0001-unit-file.c-consider-symlink-on-filesystems-like-NFS.patch @@ -0,0 +1,42 @@ +From d0122c077d2d8fd0fd29b463c501e7ddf9177ff3 Mon Sep 17 00:00:00 2001 +From: Chen Qi +Date: Tue, 24 Sep 2019 17:04:50 +0800 +Subject: [PATCH] unit-file.c: consider symlink on filesystems like NFS + +Some filesystems do not fully support readdir, according to the manual, +so we should also consider DT_UNKNOWN to correctly handle symlinks. + +Signed-off-by: Chen Qi + +Upstream-Status: Submitted [https://github.com/systemd/systemd/pull/13637] +--- + src/shared/unit-file.c | 6 +++++- + 1 file changed, 5 insertions(+), 1 deletion(-) + +diff --git a/src/shared/unit-file.c b/src/shared/unit-file.c +index 4a5f23e6c1..8373103000 100644 +--- a/src/shared/unit-file.c ++++ b/src/shared/unit-file.c +@@ -247,6 +247,7 @@ int unit_file_build_name_map( + _cleanup_free_ char *_filename_free = NULL, *simplified = NULL; + const char *suffix, *dst = NULL; + bool valid_unit_name; ++ struct stat sb; + + valid_unit_name = unit_name_is_valid(de->d_name, UNIT_NAME_ANY); + +@@ -279,7 +280,10 @@ int unit_file_build_name_map( + if (hashmap_contains(ids, de->d_name)) + continue; + +- if (de->d_type == DT_LNK) { ++ if (de->d_type == DT_LNK || ++ (de->d_type == DT_UNKNOWN && ++ lstat(filename, &sb) == 0 && ++ (sb.st_mode & S_IFMT) == S_IFLNK)) { + /* We don't explicitly check for alias loops here. unit_ids_map_get() which + * limits the number of hops should be used to access the map. */ + +-- +2.17.1 + diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-core/systemd/systemd/0002-src-login-brightness.c-include-sys-wait.h.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-core/systemd/systemd/0002-src-login-brightness.c-include-sys-wait.h.patch new file mode 100644 index 00000000..dcae668d --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-core/systemd/systemd/0002-src-login-brightness.c-include-sys-wait.h.patch @@ -0,0 +1,25 @@ +Include sys/wait.h + +Fixes: +src/login/logind-brightness.c:158:85: error: 'WEXITED' undeclared (first use in this function); did you mean 'WIFEXITED'? + 158 | r = sd_event_add_child(w->manager->event, &w->child_event_source, w->child, WEXITED, on_brightness_writer_exit, w); + | ^~~~~~~ + +Upstream-Status: Pending + +Signed-off-by: Scott Murray +--- + src/login/logind-brightness.c | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/src/login/logind-brightness.c b/src/login/logind-brightness.c +index 8dfa97d7ae..bddd4a2727 100644 +--- a/src/login/logind-brightness.c ++++ b/src/login/logind-brightness.c +@@ -1,5 +1,6 @@ + /* SPDX-License-Identifier: LGPL-2.1+ */ + ++#include + #include "bus-util.h" + #include "device-util.h" + #include "hash-funcs.h" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-core/systemd/systemd/0002-use-lnr-wrapper-instead-of-looking-for-relative-opti.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-core/systemd/systemd/0002-use-lnr-wrapper-instead-of-looking-for-relative-opti.patch index df5506cc..49a334d0 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-core/systemd/systemd/0002-use-lnr-wrapper-instead-of-looking-for-relative-opti.patch +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-core/systemd/systemd/0002-use-lnr-wrapper-instead-of-looking-for-relative-opti.patch @@ -11,6 +11,8 @@ Upstream-Status: Inappropriate [OE-Specific] Signed-off-by: Khem Raj Signed-off-by: Chen Qi +[rebased for systemd 243] +Signed-off-by: Scott Murray --- meson.build | 4 ---- tools/meson-make-symlink.sh | 3 ++- @@ -18,10 +20,10 @@ Signed-off-by: Chen Qi 3 files changed, 8 insertions(+), 6 deletions(-) diff --git a/meson.build b/meson.build -index 56c98b9..3386546 100644 +index e5ceb1e169..79b762faeb 100644 --- a/meson.build +++ b/meson.build -@@ -630,10 +630,6 @@ endforeach +@@ -579,10 +579,6 @@ endforeach conf.set_quoted('TELINIT', get_option('telinit-path')) @@ -33,23 +35,23 @@ index 56c98b9..3386546 100644 gperf = find_program('gperf') diff --git a/tools/meson-make-symlink.sh b/tools/meson-make-symlink.sh -index 501cd43..f4e4ac9 100755 +index da0d13a341..90bc0a93c2 100755 --- a/tools/meson-make-symlink.sh +++ b/tools/meson-make-symlink.sh @@ -8,5 +8,6 @@ mkdir -vp "$(dirname "${DESTDIR:-}$2")" if [ "$(dirname $1)" = . ]; then - ln -vfs -T "$1" "${DESTDIR:-}$2" + ln -vfs -T "$1" "${DESTDIR:-}$2" else -- ln -vfs -T --relative "${DESTDIR:-}$1" "${DESTDIR:-}$2" -+ rm -f "${DESTDIR:-}$2" -+ lnr "${DESTDIR:-}$1" "${DESTDIR:-}$2" +- ln -vfs -T --relative "${DESTDIR:-}$1" "${DESTDIR:-}$2" ++ rm -f "${DESTDIR:-}$2" ++ lnr "${DESTDIR:-}$1" "${DESTDIR:-}$2" fi diff --git a/units/meson-add-wants.sh b/units/meson-add-wants.sh -index e2b2603..210d604 100755 +index a483d75b86..3c01c523f1 100755 --- a/units/meson-add-wants.sh +++ b/units/meson-add-wants.sh @@ -25,4 +25,9 @@ case "$target" in - ;; + ;; esac -ln -vfs --relative "$unitpath" "$dir" @@ -59,6 +61,3 @@ index e2b2603..210d604 100755 +else + lnr "$unitpath" "$dir" +fi --- -2.7.4 - diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-core/systemd/systemd/0003-src-basic-copy.c-include-signal.h.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-core/systemd/systemd/0003-src-basic-copy.c-include-signal.h.patch new file mode 100644 index 00000000..7ee0d48f --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-core/systemd/systemd/0003-src-basic-copy.c-include-signal.h.patch @@ -0,0 +1,27 @@ +Include signal.h + +Fixes several signal set related errors: +src/basic/copy.c:92:19: error: implicit declaration of function 'sigemptyset' [-Werror=implicit-function-declaration] +src/basic/copy.c:93:19: error: implicit declaration of function 'sigaddset' [-Werror=implicit-function-declaration] +src/basic/copy.c:93:34: error: 'SIGINT' undeclared (first use in this function) +src/basic/copy.c:95:13: error: implicit declaration of function 'sigtimedwait' [-Werror=implicit-function-declaration] + +Upstream-Status: Pending + +Signed-off-by: Scott Murray +--- + src/basic/copy.c | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/src/basic/copy.c b/src/basic/copy.c +index ca311e021e..3cf7fc1697 100644 +--- a/src/basic/copy.c ++++ b/src/basic/copy.c +@@ -12,6 +12,7 @@ + #include + #include + #include ++#include + + #include "alloc-util.h" + #include "btrfs-util.h" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-core/systemd/systemd/0004-add-fallback-parse_printf_format-implementation.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-core/systemd/systemd/0004-add-fallback-parse_printf_format-implementation.patch index fa8217e3..a2aad40a 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-core/systemd/systemd/0004-add-fallback-parse_printf_format-implementation.patch +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-core/systemd/systemd/0004-add-fallback-parse_printf_format-implementation.patch @@ -8,6 +8,8 @@ Upstream-Status: Inappropriate [musl specific] Signed-off-by: Emil Renner Berthing Signed-off-by: Khem Raj Signed-off-by: Chen Qi +[rebased for systemd 243] +Signed-off-by: Scott Murray --- meson.build | 1 + src/basic/meson.build | 5 + @@ -20,22 +22,22 @@ Signed-off-by: Chen Qi create mode 100644 src/basic/parse-printf-format.h diff --git a/meson.build b/meson.build -index 79195c9748..0bffbf29c5 100644 +index 79b762faeb..7f8c679411 100644 --- a/meson.build +++ b/meson.build -@@ -685,6 +685,7 @@ foreach header : ['crypt.h', +@@ -613,6 +613,7 @@ endif + foreach header : ['crypt.h', 'linux/memfd.h', 'linux/vm_sockets.h', - 'linux/can/vxcan.h', + 'printf.h', 'sys/auxv.h', 'valgrind/memcheck.h', 'valgrind/valgrind.h', diff --git a/src/basic/meson.build b/src/basic/meson.build -index 91e0df3d2f..a732b554da 100644 +index d6caf28f14..32c1acf349 100644 --- a/src/basic/meson.build +++ b/src/basic/meson.build -@@ -298,6 +298,11 @@ foreach item : [['af', af_list_txt, 'af', ''], +@@ -312,6 +312,11 @@ foreach item : [['af', af_list_txt, 'af', ''], endforeach basic_sources += generated_gperf_headers @@ -428,6 +430,3 @@ index 5ef11fa1a4..6384ab620c 100644 #define SNDBUF_SIZE (8*1024*1024) --- -2.11.0 - diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-core/systemd/systemd/0004-rules-whitelist-hd-devices.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-core/systemd/systemd/0004-rules-whitelist-hd-devices.patch index 738f8eb7..f9c5996f 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-core/systemd/systemd/0004-rules-whitelist-hd-devices.patch +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-core/systemd/systemd/0004-rules-whitelist-hd-devices.patch @@ -13,23 +13,22 @@ Signed-off-by: Patrick Ohly Signed-off-by: Khem Raj [rebased for systemd 241] Signed-off-by: Chen Qi +[rebased for systemd 243] +Signed-off-by: Scott Murray --- rules/60-persistent-storage.rules | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rules/60-persistent-storage.rules b/rules/60-persistent-storage.rules -index 1d8880e..e53c8ea 100644 +index 7802b1c94f..c0534ae26a 100644 --- a/rules/60-persistent-storage.rules +++ b/rules/60-persistent-storage.rules @@ -7,7 +7,7 @@ ACTION=="remove", GOTO="persistent_storage_end" ENV{UDEV_DISABLE_PERSISTENT_STORAGE_RULES_FLAG}=="1", GOTO="persistent_storage_end" SUBSYSTEM!="block", GOTO="persistent_storage_end" --KERNEL!="loop*|mmcblk*[0-9]|msblk*[0-9]|mspblk*[0-9]|nvme*|sd*|sr*|vd*|xvd*|bcache*|cciss*|dasd*|ubd*|scm*|pmem*|nbd*|zd*", GOTO="persistent_storage_end" -+KERNEL!="loop*|mmcblk*[0-9]|msblk*[0-9]|mspblk*[0-9]|nvme*|sd*|sr*|vd*|xvd*|bcache*|cciss*|dasd*|ubd*|scm*|pmem*|nbd*|zd*|hd*", GOTO="persistent_storage_end" +-KERNEL!="loop*|mmcblk*[0-9]|msblk*[0-9]|mspblk*[0-9]|nvme*|sd*|sr*|vd*|xvd*|bcache*|cciss*|dasd*|ubd*|ubi*|scm*|pmem*|nbd*|zd*", GOTO="persistent_storage_end" ++KERNEL!="loop*|mmcblk*[0-9]|msblk*[0-9]|mspblk*[0-9]|nvme*|sd*|sr*|vd*|xvd*|bcache*|cciss*|dasd*|ubd*|ubi*|scm*|pmem*|nbd*|zd*|hd*", GOTO="persistent_storage_end" # ignore partitions that span the entire disk TEST=="whole_disk", GOTO="persistent_storage_end" --- -2.7.4 - diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-core/systemd/systemd/0004-src-shared-cpu-set-util.h-add-__cpu_mask-definition.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-core/systemd/systemd/0004-src-shared-cpu-set-util.h-add-__cpu_mask-definition.patch new file mode 100644 index 00000000..0f75e8c1 --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-core/systemd/systemd/0004-src-shared-cpu-set-util.h-add-__cpu_mask-definition.patch @@ -0,0 +1,54 @@ +Handle __cpu_mask usage + +Fixes errors: + +src/test/test-cpu-set-util.c:18:54: error: '__cpu_mask' undeclared (first use in this function) +src/test/test-sizeof.c:73:14: error: '__cpu_mask' undeclared (first use in this function) + +__cpu_mask is an internal type of glibc's cpu_set implementation, not +part of the POSIX definition, which is problematic when building with +musl, which does not define a matching type. From inspection of musl's +sched.h, however, it is clear that the corresponding type would be +unsigned long, which does match glibc's actual __CPU_MASK_TYPE. So, +add a typedef to cpu-set-util.h defining __cpu_mask appropriately. + +Upstream-Status: Inappropriate [musl specific] + +Signed-off-by: Scott Murray +--- + src/shared/cpu-set-util.h | 2 ++ + src/test/test-sizeof.c | 2 +- + 2 files changed, 3 insertions(+), 1 deletion(-) + +diff --git a/src/shared/cpu-set-util.h b/src/shared/cpu-set-util.h +index 27812dfd59..f698f9df83 100644 +--- a/src/shared/cpu-set-util.h ++++ b/src/shared/cpu-set-util.h +@@ -6,6 +6,8 @@ + #include "macro.h" + #include "missing_syscall.h" + ++typedef unsigned long __cpu_mask; ++ + /* This wraps the libc interface with a variable to keep the allocated size. */ + typedef struct CPUSet { + cpu_set_t *set; +diff --git a/src/test/test-sizeof.c b/src/test/test-sizeof.c +index a710db5370..d1601ad929 100644 +--- a/src/test/test-sizeof.c ++++ b/src/test/test-sizeof.c +@@ -1,6 +1,5 @@ + /* SPDX-License-Identifier: LGPL-2.1+ */ + +-#include + #include + #include + +@@ -8,6 +7,7 @@ + #include + + #include "time-util.h" ++#include "cpu-set-util.h" + + /* Print information about various types. Useful when diagnosing + * gcc diagnostics on an unfamiliar architecture. */ diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-core/systemd/systemd/0005-rules-watch-metadata-changes-in-ide-devices.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-core/systemd/systemd/0005-rules-watch-metadata-changes-in-ide-devices.patch index 5312083f..96175b5b 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-core/systemd/systemd/0005-rules-watch-metadata-changes-in-ide-devices.patch +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-core/systemd/systemd/0005-rules-watch-metadata-changes-in-ide-devices.patch @@ -26,20 +26,20 @@ is deprecated. Signed-off-by: Hongxu Jia [rebased for systemd 241] Signed-off-by: Chen Qi +[rebased for systemd 243] +Signed-off-by: Scott Murray --- rules/60-block.rules | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rules/60-block.rules b/rules/60-block.rules -index a1458e9..3ba4b6b4 100644 +index 3134ab995e..cd72a494a1 100644 --- a/rules/60-block.rules +++ b/rules/60-block.rules -@@ -8,4 +8,4 @@ ACTION=="add", SUBSYSTEM=="module", KERNEL=="block", ATTR{parameters/events_dfl_ - ACTION=="change", SUBSYSTEM=="scsi", ENV{DEVTYPE}=="scsi_device", TEST=="block", ATTR{block/*/uevent}="change" +@@ -9,5 +9,5 @@ ACTION=="change", SUBSYSTEM=="scsi", ENV{DEVTYPE}=="scsi_device", TEST=="block", # watch metadata changes, caused by tools closing the device node which was opened for writing --ACTION!="remove", SUBSYSTEM=="block", KERNEL=="loop*|nvme*|sd*|vd*|xvd*|pmem*|mmcblk*|dasd*|nbd*", OPTIONS+="watch" -+ACTION!="remove", SUBSYSTEM=="block", KERNEL=="loop*|nvme*|sd*|vd*|xvd*|pmem*|mmcblk*|dasd*|nbd*|hd*", OPTIONS+="watch" --- -2.7.4 - + ACTION!="remove", SUBSYSTEM=="block", \ +- KERNEL=="loop*|mmcblk*[0-9]|msblk*[0-9]|mspblk*[0-9]|nvme*|sd*|vd*|xvd*|bcache*|cciss*|dasd*|ubd*|ubi*|scm*|pmem*|nbd*|zd*", \ ++ KERNEL=="loop*|mmcblk*[0-9]|msblk*[0-9]|mspblk*[0-9]|nvme*|sd*|vd*|xvd*|bcache*|cciss*|dasd*|ubd*|ubi*|scm*|pmem*|nbd*|zd*|hd*", \ + OPTIONS+="watch" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-core/systemd/systemd/0005-src-basic-missing.h-check-for-missing-strndupa.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-core/systemd/systemd/0005-src-basic-missing.h-check-for-missing-strndupa.patch index a2e25a97..adfc3b78 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-core/systemd/systemd/0005-src-basic-missing.h-check-for-missing-strndupa.patch +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-core/systemd/systemd/0005-src-basic-missing.h-check-for-missing-strndupa.patch @@ -11,6 +11,8 @@ Signed-off-by: Khem Raj Signed-off-by: Chen Qi [Rebased for v242] Signed-off-by: Andrej Valek +[rebased for systemd 243] +Signed-off-by: Scott Murray --- meson.build | 1 + src/backlight/backlight.c | 1 + @@ -30,6 +32,8 @@ Signed-off-by: Andrej Valek src/libsystemd/sd-bus/bus-objects.c | 1 + src/libsystemd/sd-bus/test-bus-benchmark.c | 1 + src/locale/keymap-util.c | 1 + + src/login/pam_systemd.c | 1 + + src/network/generator/network-generator.c | 1 + src/nspawn/nspawn-settings.c | 1 + src/shared/dns-domain.c | 1 + src/shared/journal-importer.c | 1 + @@ -40,23 +44,24 @@ Signed-off-by: Andrej Valek src/socket-proxy/socket-proxyd.c | 1 + src/test/test-hexdecoct.c | 1 + src/udev/udev-builtin-path_id.c | 1 + + src/udev/udev-event.c | 1 + src/udev/udev-rules.c | 1 + - 29 files changed, 40 insertions(+) + 32 files changed, 43 insertions(+) diff --git a/meson.build b/meson.build -index 79195c9..80d9564 100644 +index 7f8c679411..81c061b768 100644 --- a/meson.build +++ b/meson.build -@@ -572,6 +572,7 @@ foreach ident : [ +@@ -506,6 +506,7 @@ foreach ident : [ + #include '''], + ['get_mempolicy', '''#include #include '''], - ['explicit_bzero' , '''#include '''], - ['reallocarray', '''#include '''], + ['strndupa' , '''#include '''], ] have = cc.has_function(ident[0], prefix : ident[1], args : '-D_GNU_SOURCE') diff --git a/src/backlight/backlight.c b/src/backlight/backlight.c -index dfd6805..c2b2ace 100644 +index dfd6805398..c2b2ace6ec 100644 --- a/src/backlight/backlight.c +++ b/src/backlight/backlight.c @@ -17,6 +17,7 @@ @@ -68,7 +73,7 @@ index dfd6805..c2b2ace 100644 static int find_pci_or_platform_parent(sd_device *device, sd_device **ret) { const char *subsystem, *sysname, *value; diff --git a/src/basic/env-util.c b/src/basic/env-util.c -index fd449dc..e2b0722 100644 +index a6503cf2b6..ceef9a62c8 100644 --- a/src/basic/env-util.c +++ b/src/basic/env-util.c @@ -16,6 +16,7 @@ @@ -80,11 +85,11 @@ index fd449dc..e2b0722 100644 #define VALID_CHARS_ENV_NAME \ DIGITS LETTERS \ diff --git a/src/basic/missing_stdlib.h b/src/basic/missing_stdlib.h -index 188a8d4..1e16ec2 100644 +index 188a8d4406..1e16ec287a 100644 --- a/src/basic/missing_stdlib.h +++ b/src/basic/missing_stdlib.h @@ -11,3 +11,15 @@ - # define secure_getenv getenv + # error "neither secure_getenv nor __secure_getenv are available" # endif #endif + @@ -100,7 +105,7 @@ index 188a8d4..1e16ec2 100644 + }) +#endif diff --git a/src/basic/mkdir.c b/src/basic/mkdir.c -index 6b82eab..51c6b78 100644 +index 6b82eab640..51c6b78615 100644 --- a/src/basic/mkdir.c +++ b/src/basic/mkdir.c @@ -14,6 +14,7 @@ @@ -112,10 +117,10 @@ index 6b82eab..51c6b78 100644 int mkdir_safe_internal(const char *path, mode_t mode, uid_t uid, gid_t gid, MkdirFlags flags, mkdir_func_t _mkdir) { struct stat st; diff --git a/src/basic/parse-util.c b/src/basic/parse-util.c -index 87724af..d9c53bc 100644 +index 115a1494a2..07a34bfd53 100644 --- a/src/basic/parse-util.c +++ b/src/basic/parse-util.c -@@ -19,6 +19,7 @@ +@@ -20,6 +20,7 @@ #include "process-util.h" #include "stat-util.h" #include "string-util.h" @@ -124,7 +129,7 @@ index 87724af..d9c53bc 100644 int parse_boolean(const char *v) { if (!v) diff --git a/src/basic/proc-cmdline.c b/src/basic/proc-cmdline.c -index 1670001..b51feaa 100644 +index 09169cf963..f411ba897f 100644 --- a/src/basic/proc-cmdline.c +++ b/src/basic/proc-cmdline.c @@ -15,6 +15,7 @@ @@ -136,7 +141,7 @@ index 1670001..b51feaa 100644 int proc_cmdline(char **ret) { const char *e; diff --git a/src/basic/procfs-util.c b/src/basic/procfs-util.c -index 7aaf95b..42ce53d 100644 +index 7aaf95bfce..42ce53d5aa 100644 --- a/src/basic/procfs-util.c +++ b/src/basic/procfs-util.c @@ -11,6 +11,7 @@ @@ -148,7 +153,7 @@ index 7aaf95b..42ce53d 100644 int procfs_tasks_get_limit(uint64_t *ret) { _cleanup_free_ char *value = NULL; diff --git a/src/basic/time-util.c b/src/basic/time-util.c -index daf952b..374b97f 100644 +index 3018e81acb..4e2b3b66c1 100644 --- a/src/basic/time-util.c +++ b/src/basic/time-util.c @@ -28,6 +28,7 @@ @@ -160,7 +165,7 @@ index daf952b..374b97f 100644 static clockid_t map_clock_id(clockid_t c) { diff --git a/src/core/dbus-cgroup.c b/src/core/dbus-cgroup.c -index 4615aea..bc1364f 100644 +index 2f2313c599..c9937f9d62 100644 --- a/src/core/dbus-cgroup.c +++ b/src/core/dbus-cgroup.c @@ -15,6 +15,7 @@ @@ -172,7 +177,7 @@ index 4615aea..bc1364f 100644 static BUS_DEFINE_PROPERTY_GET_ENUM(property_get_cgroup_device_policy, cgroup_device_policy, CGroupDevicePolicy); diff --git a/src/core/dbus-util.c b/src/core/dbus-util.c -index f4fbb72..0a1e3b5 100644 +index 7862beaacb..19f6968cfe 100644 --- a/src/core/dbus-util.c +++ b/src/core/dbus-util.c @@ -7,6 +7,7 @@ @@ -184,7 +189,7 @@ index f4fbb72..0a1e3b5 100644 int bus_property_get_triggered_unit( sd_bus *bus, diff --git a/src/core/kmod-setup.c b/src/core/kmod-setup.c -index a91cfeb..a459610 100644 +index a91cfebc67..a45961013f 100644 --- a/src/core/kmod-setup.c +++ b/src/core/kmod-setup.c @@ -11,6 +11,7 @@ @@ -196,10 +201,10 @@ index a91cfeb..a459610 100644 #if HAVE_KMOD #include diff --git a/src/core/service.c b/src/core/service.c -index 0289990..0e725b5 100644 +index 73b3c9c316..ef74f00a08 100644 --- a/src/core/service.c +++ b/src/core/service.c -@@ -42,6 +42,7 @@ +@@ -43,6 +43,7 @@ #include "unit.h" #include "utf8.h" #include "util.h" @@ -208,19 +213,19 @@ index 0289990..0e725b5 100644 static const UnitActiveState state_translation_table[_SERVICE_STATE_MAX] = { [SERVICE_DEAD] = UNIT_INACTIVE, diff --git a/src/journal/journalctl.c b/src/journal/journalctl.c -index 0048909..0e85eb7 100644 +index 6d6bb1cf63..6666349a35 100644 --- a/src/journal/journalctl.c +++ b/src/journal/journalctl.c -@@ -67,6 +67,7 @@ - #include "tmpfile-util.h" +@@ -70,6 +70,7 @@ #include "unit-name.h" #include "user-util.h" + #include "varlink.h" +#include "missing.h" #define DEFAULT_FSS_INTERVAL_USEC (15*USEC_PER_MINUTE) diff --git a/src/libsystemd/sd-bus/bus-message.c b/src/libsystemd/sd-bus/bus-message.c -index 427d42f..b050568 100644 +index eb029e4453..f31fe9d5a8 100644 --- a/src/libsystemd/sd-bus/bus-message.c +++ b/src/libsystemd/sd-bus/bus-message.c @@ -21,6 +21,7 @@ @@ -232,7 +237,7 @@ index 427d42f..b050568 100644 static int message_append_basic(sd_bus_message *m, char type, const void *p, const void **stored); diff --git a/src/libsystemd/sd-bus/bus-objects.c b/src/libsystemd/sd-bus/bus-objects.c -index d9fc256..e9c6932 100644 +index ae643cacc7..1b752271a5 100644 --- a/src/libsystemd/sd-bus/bus-objects.c +++ b/src/libsystemd/sd-bus/bus-objects.c @@ -13,6 +13,7 @@ @@ -244,7 +249,7 @@ index d9fc256..e9c6932 100644 static int node_vtable_get_userdata( sd_bus *bus, diff --git a/src/libsystemd/sd-bus/test-bus-benchmark.c b/src/libsystemd/sd-bus/test-bus-benchmark.c -index 8de0a85..4fd0a2e 100644 +index 8de0a859ee..4fd0a2e692 100644 --- a/src/libsystemd/sd-bus/test-bus-benchmark.c +++ b/src/libsystemd/sd-bus/test-bus-benchmark.c @@ -14,6 +14,7 @@ @@ -256,10 +261,10 @@ index 8de0a85..4fd0a2e 100644 #define MAX_SIZE (2*1024*1024) diff --git a/src/locale/keymap-util.c b/src/locale/keymap-util.c -index b8bd181..fe0cae0 100644 +index f8c36c94f5..41f5606aea 100644 --- a/src/locale/keymap-util.c +++ b/src/locale/keymap-util.c -@@ -23,6 +23,7 @@ +@@ -22,6 +22,7 @@ #include "string-util.h" #include "strv.h" #include "tmpfile-util.h" @@ -267,8 +272,32 @@ index b8bd181..fe0cae0 100644 static bool startswith_comma(const char *s, const char *prefix) { s = startswith(s, prefix); +diff --git a/src/login/pam_systemd.c b/src/login/pam_systemd.c +index 3f762cbbc3..005cfea658 100644 +--- a/src/login/pam_systemd.c ++++ b/src/login/pam_systemd.c +@@ -28,6 +28,7 @@ + #include "hostname-util.h" + #include "login-util.h" + #include "macro.h" ++#include "missing.h" + #include "parse-util.h" + #include "path-util.h" + #include "process-util.h" +diff --git a/src/network/generator/network-generator.c b/src/network/generator/network-generator.c +index 0b5af33566..9c808cd014 100644 +--- a/src/network/generator/network-generator.c ++++ b/src/network/generator/network-generator.c +@@ -13,6 +13,7 @@ + #include "string-table.h" + #include "string-util.h" + #include "strv.h" ++#include "missing.h" + + /* + # .network diff --git a/src/nspawn/nspawn-settings.c b/src/nspawn/nspawn-settings.c -index 476cb07..91e28de 100644 +index 3a99736813..279fea4d88 100644 --- a/src/nspawn/nspawn-settings.c +++ b/src/nspawn/nspawn-settings.c @@ -16,6 +16,7 @@ @@ -280,7 +309,7 @@ index 476cb07..91e28de 100644 Settings *settings_new(void) { Settings *s; diff --git a/src/shared/dns-domain.c b/src/shared/dns-domain.c -index 4b31cb3..989ebf3 100644 +index f62ad0a0f5..f1a27e158d 100644 --- a/src/shared/dns-domain.c +++ b/src/shared/dns-domain.c @@ -24,6 +24,7 @@ @@ -292,10 +321,10 @@ index 4b31cb3..989ebf3 100644 int dns_label_unescape(const char **name, char *dest, size_t sz, DNSLabelFlags flags) { const char *n; diff --git a/src/shared/journal-importer.c b/src/shared/journal-importer.c -index 8638cd3..d03774a 100644 +index 7c4fc7021d..a6ff2214df 100644 --- a/src/shared/journal-importer.c +++ b/src/shared/journal-importer.c -@@ -13,6 +13,7 @@ +@@ -14,6 +14,7 @@ #include "parse-util.h" #include "string-util.h" #include "unaligned.h" @@ -304,10 +333,10 @@ index 8638cd3..d03774a 100644 enum { IMPORTER_STATE_LINE = 0, /* waiting to read, or reading line */ diff --git a/src/shared/logs-show.c b/src/shared/logs-show.c -index 5fb736f..19cb165 100644 +index b615c70dff..75b26e9c21 100644 --- a/src/shared/logs-show.c +++ b/src/shared/logs-show.c -@@ -38,6 +38,7 @@ +@@ -39,6 +39,7 @@ #include "time-util.h" #include "utf8.h" #include "util.h" @@ -316,7 +345,7 @@ index 5fb736f..19cb165 100644 /* up to three lines (each up to 100 characters) or 300 characters, whichever is less */ #define PRINT_LINE_THRESHOLD 3 diff --git a/src/shared/pager.c b/src/shared/pager.c -index 2abb0f6..a00c95f 100644 +index 7c20b100b4..e4209d3a95 100644 --- a/src/shared/pager.c +++ b/src/shared/pager.c @@ -25,6 +25,7 @@ @@ -328,7 +357,7 @@ index 2abb0f6..a00c95f 100644 static pid_t pager_pid = 0; diff --git a/src/shared/path-lookup.c b/src/shared/path-lookup.c -index 442fde7..0eb1188 100644 +index 6bf0ff0316..f6c8009cd2 100644 --- a/src/shared/path-lookup.c +++ b/src/shared/path-lookup.c @@ -20,6 +20,7 @@ @@ -340,7 +369,7 @@ index 442fde7..0eb1188 100644 int xdg_user_runtime_dir(char **ret, const char *suffix) { const char *e; diff --git a/src/shared/uid-range.c b/src/shared/uid-range.c -index 7cb7d8a..8b12b91 100644 +index 7cb7d8a477..8b12b91084 100644 --- a/src/shared/uid-range.c +++ b/src/shared/uid-range.c @@ -9,6 +9,7 @@ @@ -352,7 +381,7 @@ index 7cb7d8a..8b12b91 100644 static bool uid_range_intersect(UidRange *range, uid_t start, uid_t nr) { assert(range); diff --git a/src/socket-proxy/socket-proxyd.c b/src/socket-proxy/socket-proxyd.c -index abbbc9f..6179b58 100644 +index abbbc9f2d6..6179b5851e 100644 --- a/src/socket-proxy/socket-proxyd.c +++ b/src/socket-proxy/socket-proxyd.c @@ -28,6 +28,7 @@ @@ -364,7 +393,7 @@ index abbbc9f..6179b58 100644 #define BUFFER_SIZE (256 * 1024) diff --git a/src/test/test-hexdecoct.c b/src/test/test-hexdecoct.c -index 5221742..a05e778 100644 +index 52217429b1..a05e7782f6 100644 --- a/src/test/test-hexdecoct.c +++ b/src/test/test-hexdecoct.c @@ -6,6 +6,7 @@ @@ -376,7 +405,7 @@ index 5221742..a05e778 100644 static void test_hexchar(void) { assert_se(hexchar(0xa) == 'a'); diff --git a/src/udev/udev-builtin-path_id.c b/src/udev/udev-builtin-path_id.c -index 7ce1c56..cc19b8e 100644 +index e8f1ce1354..8693cb02a4 100644 --- a/src/udev/udev-builtin-path_id.c +++ b/src/udev/udev-builtin-path_id.c @@ -23,6 +23,7 @@ @@ -387,18 +416,27 @@ index 7ce1c56..cc19b8e 100644 _printf_(2,3) static void path_prepend(char **path, const char *fmt, ...) { +diff --git a/src/udev/udev-event.c b/src/udev/udev-event.c +index 8cfa2cdf23..b0670c77ec 100644 +--- a/src/udev/udev-event.c ++++ b/src/udev/udev-event.c +@@ -35,6 +35,7 @@ + #include "udev-util.h" + #include "udev-watch.h" + #include "user-util.h" ++#include "missing.h" + + typedef struct Spawn { + sd_device *device; diff --git a/src/udev/udev-rules.c b/src/udev/udev-rules.c -index ee87d7c..9aced10 100644 +index 1642f10535..fe2aa75478 100644 --- a/src/udev/udev-rules.c +++ b/src/udev/udev-rules.c -@@ -40,6 +40,7 @@ - #include "udev.h" +@@ -28,6 +28,7 @@ + #include "udev-event.h" + #include "udev-rules.h" #include "user-util.h" - #include "util.h" +#include "missing.h" - #define PREALLOC_TOKEN 2048 #define RULES_DIRS (const char* const*) CONF_PATHS_STRV("udev/rules.d") --- -2.11.0 - + diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-core/systemd/systemd/0006-Include-netinet-if_ether.h.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-core/systemd/systemd/0006-Include-netinet-if_ether.h.patch index b41f6c7b..6d73d715 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-core/systemd/systemd/0006-Include-netinet-if_ether.h.patch +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-core/systemd/systemd/0006-Include-netinet-if_ether.h.patch @@ -1,28 +1,63 @@ -From 67a988ae82c776d11be76de7180d50ea027ac442 Mon Sep 17 00:00:00 2001 -From: Chen Qi -Date: Mon, 25 Feb 2019 14:24:20 +0800 -Subject: [PATCH 06/24] Include netinet/if_ether.h +Include netinet/if_ether.h Fixes /path/to/systemd/recipe-sysroot/usr/include/netinet/if_ether.h:101:8: error: redefinition of 'struct ethhdr' struct ethhdr { ^~~~~~ +and related arphdr, arpreq, and arpreq_old errors +/path/to/systemd/recipe-sysroot/usr/include/net/if_arp.h:22:8: error: redefinition of 'struct arphdr' + struct arphdr { + ^~~~~~ + +The latter requires removing some includes of net/if_arp.h to avoid +conflicting with netinet/if_ether.h. + +Upstream-Status: Inappropriate [musl specific] + +Signed-off-by: Khem Raj +Signed-off-by: Chen Qi +[rebased for systemd 243] +Signed-off-by: Scott Murray + Upstream-Status: Inappropriate [musl specific] Signed-off-by: Khem Raj Signed-off-by: Chen Qi +[rebased for systemd 243] +Signed-off-by: Scott Murray --- + src/libsystemd-network/sd-dhcp6-client.c | 1 - src/libsystemd/sd-netlink/netlink-types.c | 1 + - src/network/netdev/tuntap.c | 1 + + src/machine/machine-dbus.c | 1 + + src/network/netdev/macsec.c | 1 + + src/network/netdev/netdev.c | 1 + src/network/networkd-brvlan.c | 1 + - src/udev/net/ethtool-util.c | 1 + - src/udev/net/ethtool-util.h | 1 + + src/network/networkd-dhcp-common.c | 1 + + src/network/networkd-dhcp4.c | 2 +- + src/network/networkd-dhcp6.c | 2 +- + src/network/networkd-link.c | 2 +- + src/network/networkd-network.c | 1 + + src/shared/ethtool-util.c | 1 + + src/shared/ethtool-util.h | 1 + + src/udev/net/link-config.c | 1 + src/udev/udev-builtin-net_setup_link.c | 1 + - 6 files changed, 6 insertions(+) + 15 files changed, 14 insertions(+), 4 deletions(-) +diff --git a/src/libsystemd-network/sd-dhcp6-client.c b/src/libsystemd-network/sd-dhcp6-client.c +index d7a5349c70..68b41dfb6c 100644 +--- a/src/libsystemd-network/sd-dhcp6-client.c ++++ b/src/libsystemd-network/sd-dhcp6-client.c +@@ -6,7 +6,6 @@ + #include + #include + #include +-#include + #include + + #include "sd-dhcp6-client.h" diff --git a/src/libsystemd/sd-netlink/netlink-types.c b/src/libsystemd/sd-netlink/netlink-types.c -index 9dcd3f2..e23ff4c 100644 +index de9b8b21ab..f64f6500f7 100644 --- a/src/libsystemd/sd-netlink/netlink-types.c +++ b/src/libsystemd/sd-netlink/netlink-types.c @@ -3,6 +3,7 @@ @@ -30,23 +65,45 @@ index 9dcd3f2..e23ff4c 100644 #include #include +#include + #include #include #include - #include -diff --git a/src/network/netdev/tuntap.c b/src/network/netdev/tuntap.c -index 951138d..1ad499d 100644 ---- a/src/network/netdev/tuntap.c -+++ b/src/network/netdev/tuntap.c -@@ -2,6 +2,7 @@ +diff --git a/src/machine/machine-dbus.c b/src/machine/machine-dbus.c +index 0d58b5eb8b..01093c1f62 100644 +--- a/src/machine/machine-dbus.c ++++ b/src/machine/machine-dbus.c +@@ -4,6 +4,7 @@ + #include + #include + #include ++#include + + /* When we include libgen.h because we need dirname() we immediately + * undefine basename() since libgen.h defines it as a macro to the POSIX +diff --git a/src/network/netdev/macsec.c b/src/network/netdev/macsec.c +index cf281e75a6..269dc618ff 100644 +--- a/src/network/netdev/macsec.c ++++ b/src/network/netdev/macsec.c +@@ -1,5 +1,6 @@ + /* SPDX-License-Identifier: LGPL-2.1+ */ + ++#include + #include + #include + #include +diff --git a/src/network/netdev/netdev.c b/src/network/netdev/netdev.c +index 7735b455b7..ed4eda4a44 100644 +--- a/src/network/netdev/netdev.c ++++ b/src/network/netdev/netdev.c +@@ -1,5 +1,6 @@ + /* SPDX-License-Identifier: LGPL-2.1+ */ - #include - #include +#include - #include #include - #include + #include + diff --git a/src/network/networkd-brvlan.c b/src/network/networkd-brvlan.c -index 8377623..132af60 100644 +index c3c5d535ac..ebea408c89 100644 --- a/src/network/networkd-brvlan.c +++ b/src/network/networkd-brvlan.c @@ -4,6 +4,7 @@ @@ -57,10 +114,76 @@ index 8377623..132af60 100644 #include #include -diff --git a/src/udev/net/ethtool-util.c b/src/udev/net/ethtool-util.c -index 0dcec03..3695b10 100644 ---- a/src/udev/net/ethtool-util.c -+++ b/src/udev/net/ethtool-util.c +diff --git a/src/network/networkd-dhcp-common.c b/src/network/networkd-dhcp-common.c +index 626b975839..42fe92f320 100644 +--- a/src/network/networkd-dhcp-common.c ++++ b/src/network/networkd-dhcp-common.c +@@ -1,6 +1,7 @@ + /* SPDX-License-Identifier: LGPL-2.1+ */ + + #include "networkd-dhcp-common.h" ++#include + #include "networkd-network.h" + #include "parse-util.h" + #include "string-table.h" +diff --git a/src/network/networkd-dhcp4.c b/src/network/networkd-dhcp4.c +index 662770b50e..c6ab62a94d 100644 +--- a/src/network/networkd-dhcp4.c ++++ b/src/network/networkd-dhcp4.c +@@ -1,8 +1,8 @@ + /* SPDX-License-Identifier: LGPL-2.1+ */ + ++#include + #include + #include +-#include + + #include "alloc-util.h" + #include "hostname-util.h" +diff --git a/src/network/networkd-dhcp6.c b/src/network/networkd-dhcp6.c +index 8ad736a82b..f41b4d834e 100644 +--- a/src/network/networkd-dhcp6.c ++++ b/src/network/networkd-dhcp6.c +@@ -3,9 +3,9 @@ + Copyright © 2014 Intel Corporation. All rights reserved. + ***/ + ++#include + #include + #include +-#include + #include "sd-radv.h" + + #include "sd-dhcp6-client.h" +diff --git a/src/network/networkd-link.c b/src/network/networkd-link.c +index f5bb78890a..f13a36b791 100644 +--- a/src/network/networkd-link.c ++++ b/src/network/networkd-link.c +@@ -1,8 +1,8 @@ + /* SPDX-License-Identifier: LGPL-2.1+ */ + ++#include + #include + #include +-#include + #include + + #include "alloc-util.h" +diff --git a/src/network/networkd-network.c b/src/network/networkd-network.c +index 2b8d0eb2fb..2f79ef25cd 100644 +--- a/src/network/networkd-network.c ++++ b/src/network/networkd-network.c +@@ -1,5 +1,6 @@ + /* SPDX-License-Identifier: LGPL-2.1+ */ + ++#include + #include + #include + #include +diff --git a/src/shared/ethtool-util.c b/src/shared/ethtool-util.c +index b0961df72e..53fcbbd84b 100644 +--- a/src/shared/ethtool-util.c ++++ b/src/shared/ethtool-util.c @@ -1,5 +1,6 @@ /* SPDX-License-Identifier: LGPL-2.1+ */ @@ -68,10 +191,10 @@ index 0dcec03..3695b10 100644 #include #include #include -diff --git a/src/udev/net/ethtool-util.h b/src/udev/net/ethtool-util.h -index 618b26b..ebfe82a 100644 ---- a/src/udev/net/ethtool-util.h -+++ b/src/udev/net/ethtool-util.h +diff --git a/src/shared/ethtool-util.h b/src/shared/ethtool-util.h +index 8b32b243f3..262b819976 100644 +--- a/src/shared/ethtool-util.h ++++ b/src/shared/ethtool-util.h @@ -2,6 +2,7 @@ #pragma once @@ -80,8 +203,19 @@ index 618b26b..ebfe82a 100644 #include #include "conf-parser.h" +diff --git a/src/udev/net/link-config.c b/src/udev/net/link-config.c +index d44af64d5e..fd052f1591 100644 +--- a/src/udev/net/link-config.c ++++ b/src/udev/net/link-config.c +@@ -1,5 +1,6 @@ + /* SPDX-License-Identifier: LGPL-2.1+ */ + ++#include + #include + #include + diff --git a/src/udev/udev-builtin-net_setup_link.c b/src/udev/udev-builtin-net_setup_link.c -index a845dfa..177289a 100644 +index ee3ca9fa38..9aa4e82874 100644 --- a/src/udev/udev-builtin-net_setup_link.c +++ b/src/udev/udev-builtin-net_setup_link.c @@ -1,5 +1,6 @@ @@ -91,6 +225,3 @@ index a845dfa..177289a 100644 #include "device-util.h" #include "alloc-util.h" #include "link-config.h" --- -2.7.4 - diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-core/systemd/systemd/0006-network-remove-redunant-link-name-in-message.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-core/systemd/systemd/0006-network-remove-redunant-link-name-in-message.patch deleted file mode 100644 index 33f482ae..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-core/systemd/systemd/0006-network-remove-redunant-link-name-in-message.patch +++ /dev/null @@ -1,41 +0,0 @@ -From 9e6940858c7dbdd56b297bdf49f58d623e3430b7 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= -Date: Tue, 7 May 2019 13:46:55 +0200 -Subject: [PATCH] network: remove redunant link name in message - -Fixes #12454. - -gcc was complaining that the link->ifname argument is NULL. Adding -assert(link->ifname) right before the call has no effect. It seems that -gcc is confused by the fact that log_link_warning_errno() internally -calls log_object(), with link->ifname passed as the object. log_object() -is also a macro and is does a check whether the passed object is NULL. -So we have a check if something is NULL right next an unconditional use -of it where it cannot be NULL. I think it's a bug in gcc. - -Anyway, we don't need to use link->ifname here. log_object() already prepends -the object name to the message. - -Signed-off-by: Khem Raj -Upstream-Status: backport [https://github.com/systemd/systemd/commit/c98b3545008d8e984ab456dcf79787418fcbfe13] ---- - src/network/networkd-link.c | 3 +-- - 1 file changed, 1 insertion(+), 2 deletions(-) - -diff --git a/src/network/networkd-link.c b/src/network/networkd-link.c -index 3e334c8d29..a158c01bbd 100644 ---- a/src/network/networkd-link.c -+++ b/src/network/networkd-link.c -@@ -321,8 +321,7 @@ static int link_enable_ipv6(Link *link) { - - r = sysctl_write_ip_property_boolean(AF_INET6, link->ifname, "disable_ipv6", disabled); - if (r < 0) -- log_link_warning_errno(link, r, "Cannot %s IPv6 for interface %s: %m", -- enable_disable(!disabled), link->ifname); -+ log_link_warning_errno(link, r, "Cannot %s IPv6: %m", enable_disable(!disabled)); - else - log_link_info(link, "IPv6 successfully %sd", enable_disable(!disabled)); - --- -2.21.0 - diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-core/systemd/systemd/0007-don-t-fail-if-GLOB_BRACE-and-GLOB_ALTDIRFUNC-is-not.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-core/systemd/systemd/0007-don-t-fail-if-GLOB_BRACE-and-GLOB_ALTDIRFUNC-is-not.patch index aa2b4cbc..34f7f5fb 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-core/systemd/systemd/0007-don-t-fail-if-GLOB_BRACE-and-GLOB_ALTDIRFUNC-is-not.patch +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-core/systemd/systemd/0007-don-t-fail-if-GLOB_BRACE-and-GLOB_ALTDIRFUNC-is-not.patch @@ -15,17 +15,19 @@ Upstream-Status: Inappropriate [musl specific] Signed-off-by: Khem Raj Signed-off-by: Chen Qi +[rebased for systemd 243] +Signed-off-by: Scott Murray --- - src/basic/glob-util.c | 13 ++++++++++++- + src/basic/glob-util.c | 12 ++++++++++++ src/test/test-glob-util.c | 16 ++++++++++++++++ src/tmpfiles/tmpfiles.c | 10 ++++++++++ - 3 files changed, 38 insertions(+), 1 deletion(-) + 3 files changed, 38 insertions(+) diff --git a/src/basic/glob-util.c b/src/basic/glob-util.c -index 32c53f8..ae358d9 100644 +index b335af8d97..2cdfc11f16 100644 --- a/src/basic/glob-util.c +++ b/src/basic/glob-util.c -@@ -13,6 +13,12 @@ +@@ -14,6 +14,12 @@ #include "path-util.h" #include "strv.h" @@ -38,7 +40,7 @@ index 32c53f8..ae358d9 100644 static void closedir_wrapper(void* v) { (void) closedir(v); } -@@ -20,6 +26,7 @@ static void closedir_wrapper(void* v) { +@@ -21,6 +27,7 @@ static void closedir_wrapper(void* v) { int safe_glob(const char *path, int flags, glob_t *pglob) { int k; @@ -46,7 +48,7 @@ index 32c53f8..ae358d9 100644 /* We want to set GLOB_ALTDIRFUNC ourselves, don't allow it to be set. */ assert(!(flags & GLOB_ALTDIRFUNC)); -@@ -33,10 +40,14 @@ int safe_glob(const char *path, int flags, glob_t *pglob) { +@@ -34,9 +41,14 @@ int safe_glob(const char *path, int flags, glob_t *pglob) { pglob->gl_lstat = lstat; if (!pglob->gl_stat) pglob->gl_stat = stat; @@ -55,7 +57,6 @@ index 32c53f8..ae358d9 100644 errno = 0; +#ifdef GLOB_ALTDIRFUNC k = glob(path, flags | GLOB_ALTDIRFUNC, NULL, pglob); -- +#else + k = glob(path, flags, NULL, pglob); +#endif @@ -63,7 +64,7 @@ index 32c53f8..ae358d9 100644 return -ENOENT; if (k == GLOB_NOSPACE) diff --git a/src/test/test-glob-util.c b/src/test/test-glob-util.c -index b4f4144..f0d474e 100644 +index b4f41445fe..f0d474ed14 100644 --- a/src/test/test-glob-util.c +++ b/src/test/test-glob-util.c @@ -13,6 +13,12 @@ @@ -114,7 +115,7 @@ index b4f4144..f0d474e 100644 (void) rm_rf(template, REMOVE_ROOT|REMOVE_PHYSICAL); diff --git a/src/tmpfiles/tmpfiles.c b/src/tmpfiles/tmpfiles.c -index d9d1cc1..477d1e3 100644 +index 3c30612af1..14bc428085 100644 --- a/src/tmpfiles/tmpfiles.c +++ b/src/tmpfiles/tmpfiles.c @@ -63,6 +63,12 @@ @@ -130,7 +131,7 @@ index d9d1cc1..477d1e3 100644 /* This reads all files listed in /etc/tmpfiles.d/?*.conf and creates * them in the file system. This is intended to be used to create * properly owned directories beneath /tmp, /var/tmp, /run, which are -@@ -1839,7 +1845,9 @@ finish: +@@ -1853,7 +1859,9 @@ finish: static int glob_item(Item *i, action_t action) { _cleanup_globfree_ glob_t g = { @@ -140,7 +141,7 @@ index d9d1cc1..477d1e3 100644 }; int r = 0, k; char **fn; -@@ -1859,7 +1867,9 @@ static int glob_item(Item *i, action_t action) { +@@ -1873,7 +1881,9 @@ static int glob_item(Item *i, action_t action) { static int glob_item_recursively(Item *i, fdaction_t action) { _cleanup_globfree_ glob_t g = { @@ -150,6 +151,3 @@ index d9d1cc1..477d1e3 100644 }; int r = 0, k; char **fn; --- -2.11.0 - diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-core/systemd/systemd/0017-Do-not-disable-buffering-when-writing-to-oom_score_a.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-core/systemd/systemd/0017-Do-not-disable-buffering-when-writing-to-oom_score_a.patch index b54635e8..24e24e8e 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-core/systemd/systemd/0017-Do-not-disable-buffering-when-writing-to-oom_score_a.patch +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-core/systemd/systemd/0017-Do-not-disable-buffering-when-writing-to-oom_score_a.patch @@ -17,15 +17,17 @@ This is libc implementation specific, as glibc does not have this issue. Upstream-Status: Inappropriate [musl specific] Signed-off-by: Chen Qi +[rebased for systemd 243] +Signed-off-by: Scott Murray --- src/basic/process-util.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/basic/process-util.c b/src/basic/process-util.c -index f773eea..79af915 100644 +index b1c08fcade..0a7a1f7d89 100644 --- a/src/basic/process-util.c +++ b/src/basic/process-util.c -@@ -1546,7 +1546,7 @@ int set_oom_score_adjust(int value) { +@@ -1474,7 +1474,7 @@ int set_oom_score_adjust(int value) { sprintf(t, "%i", value); return write_string_file("/proc/self/oom_score_adj", t, @@ -33,8 +35,4 @@ index f773eea..79af915 100644 + WRITE_STRING_FILE_VERIFY_ON_FAILURE); } - int cpus_in_affinity_mask(void) { --- -2.11.0 - - + static const char *const ioprio_class_table[] = { diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-core/systemd/systemd/0023-socket-util.h-include-string.h.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-core/systemd/systemd/0023-socket-util.h-include-string.h.patch deleted file mode 100644 index 37987b57..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-core/systemd/systemd/0023-socket-util.h-include-string.h.patch +++ /dev/null @@ -1,30 +0,0 @@ -From 56fb30d93e96d7f983af0cb4dff9155da91dd671 Mon Sep 17 00:00:00 2001 -From: Chen Qi -Date: Mon, 25 Feb 2019 16:37:19 +0800 -Subject: socket-util.h: include string.h - -Fix the following compile error: -src/basic/socket-util.h:187:30: error: implicit declaration of function 'strnlen'; did you mean 'strlen'? [-Werror=implicit-function-declaration] - -Upstream-Status: Accepted - -Signed-off-by: Chen Qi ---- - src/basic/socket-util.h | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/src/basic/socket-util.h b/src/basic/socket-util.h -index 6920fd99ba..36ec422f2c 100644 ---- a/src/basic/socket-util.h -+++ b/src/basic/socket-util.h -@@ -9,6 +9,7 @@ - #include - #include - #include -+#include - #include - #include - #include --- -2.20.1 - diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-core/systemd/systemd/0025-fs-utilh-add-missing-sys-stat-include.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-core/systemd/systemd/0025-fs-utilh-add-missing-sys-stat-include.patch deleted file mode 100644 index ada404b0..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-core/systemd/systemd/0025-fs-utilh-add-missing-sys-stat-include.patch +++ /dev/null @@ -1,30 +0,0 @@ -From 56e3c9581e2c9b7435d5fcbd74b47c7ccf6b3891 Mon Sep 17 00:00:00 2001 -From: Andrej Valek -Date: Thu, 18 Apr 2019 10:47:11 +0200 -Subject: fs-util.h: add missing sys/stat include - -fix error: -| error: passing argument 5 of 'chase_symlinks_and_stat' from incompatible pointer type [-Werror=incompatible-pointer-types] - -Signed-off-by: Andrej Valek - -Upstream-Status: Accepted ---- - src/basic/fs-util.h | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/src/basic/fs-util.h b/src/basic/fs-util.h -index b9651205e6..c153bc4448 100644 ---- a/src/basic/fs-util.h -+++ b/src/basic/fs-util.h -@@ -7,6 +7,7 @@ - #include - #include - #include -+#include - #include - #include - --- -2.20.1 - diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-core/systemd/systemd_242.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-core/systemd/systemd_242.bb deleted file mode 100644 index 29f64b99..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-core/systemd/systemd_242.bb +++ /dev/null @@ -1,667 +0,0 @@ -require systemd.inc - -PROVIDES = "udev" - -PE = "1" - -DEPENDS = "intltool-native gperf-native libcap util-linux" - -SECTION = "base/shell" - -inherit useradd pkgconfig meson perlnative update-rc.d update-alternatives qemu systemd gettext bash-completion manpages distro_features_check - -# As this recipe builds udev, respect systemd being in DISTRO_FEATURES so -# that we don't build both udev and systemd in world builds. -REQUIRED_DISTRO_FEATURES = "systemd" - -SRC_URI += "file://touchscreen.rules \ - file://00-create-volatile.conf \ - file://init \ - file://0001-binfmt-Don-t-install-dependency-links-at-install-tim.patch \ - file://0002-use-lnr-wrapper-instead-of-looking-for-relative-opti.patch \ - file://0003-implment-systemd-sysv-install-for-OE.patch \ - file://0004-rules-whitelist-hd-devices.patch \ - file://0005-rules-watch-metadata-changes-in-ide-devices.patch \ - file://0006-network-remove-redunant-link-name-in-message.patch \ - file://99-default.preset \ - file://0001-resolved-Fix-incorrect-use-of-OpenSSL-BUF_MEM.patch \ - " - -# patches needed by musl -SRC_URI_append_libc-musl = " ${SRC_URI_MUSL}" -SRC_URI_MUSL = "file://0001-Use-getenv-when-secure-versions-are-not-available.patch \ - file://0002-don-t-use-glibc-specific-qsort_r.patch \ - file://0003-missing_type.h-add-__compare_fn_t-and-comparison_fn_.patch \ - file://0004-add-fallback-parse_printf_format-implementation.patch \ - file://0005-src-basic-missing.h-check-for-missing-strndupa.patch \ - file://0006-Include-netinet-if_ether.h.patch \ - file://0007-don-t-fail-if-GLOB_BRACE-and-GLOB_ALTDIRFUNC-is-not.patch \ - file://0008-add-missing-FTW_-macros-for-musl.patch \ - file://0010-fix-missing-of-__register_atfork-for-non-glibc-build.patch \ - file://0011-Use-uintmax_t-for-handling-rlim_t.patch \ - file://0001-Replace-the-legacy-ULONG_LONG_MAX-with-the-C99-ULLON.patch \ - file://0014-test-sizeof.c-Disable-tests-for-missing-typedefs-in-.patch \ - file://0015-don-t-pass-AT_SYMLINK_NOFOLLOW-flag-to-faccessat.patch \ - file://0016-Define-glibc-compatible-basename-for-non-glibc-syste.patch \ - file://0017-Do-not-disable-buffering-when-writing-to-oom_score_a.patch \ - file://0018-distinguish-XSI-compliant-strerror_r-from-GNU-specif.patch \ - file://0019-Hide-__start_BUS_ERROR_MAP-and-__stop_BUS_ERROR_MAP.patch \ - file://0020-missing_type.h-add-__compar_d_fn_t-definition.patch \ - file://0021-avoid-redefinition-of-prctl_mm_map-structure.patch \ - file://0001-src-udev-udev-event.c-must-include-sys-wait.h.patch \ - file://0023-socket-util.h-include-string.h.patch \ - file://0024-test-json.c-define-M_PIl.patch \ - file://0025-fs-utilh-add-missing-sys-stat-include.patch \ - file://0001-do-not-disable-buffer-in-writing-files.patch \ - " - -PAM_PLUGINS = " \ - pam-plugin-unix \ - pam-plugin-loginuid \ - pam-plugin-keyinit \ -" - -PACKAGECONFIG ??= " \ - ${@bb.utils.filter('DISTRO_FEATURES', 'efi ldconfig pam selinux usrmerge polkit', d)} \ - ${@bb.utils.contains('DISTRO_FEATURES', 'wifi', 'rfkill', '', d)} \ - ${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'xkbcommon', '', d)} \ - acl \ - backlight \ - binfmt \ - gshadow \ - hibernate \ - hostnamed \ - idn \ - ima \ - kmod \ - localed \ - logind \ - machined \ - myhostname \ - networkd \ - nss \ - nss-mymachines \ - nss-resolve \ - quotacheck \ - randomseed \ - resolved \ - smack \ - sysusers \ - timedated \ - timesyncd \ - utmp \ - vconsole \ - xz \ -" - -PACKAGECONFIG_remove_libc-musl = " \ - gshadow \ - idn \ - localed \ - myhostname \ - nss \ - nss-mymachines \ - nss-resolve \ - resolved \ - smack \ - sysusers \ - utmp \ -" - -# Use the upstream systemd serial-getty@.service and rely on -# systemd-getty-generator instead of using the OE-core specific -# systemd-serialgetty.bb - not enabled by default. -PACKAGECONFIG[serial-getty-generator] = "" - -PACKAGECONFIG[acl] = "-Dacl=true,-Dacl=false,acl" -PACKAGECONFIG[audit] = "-Daudit=true,-Daudit=false,audit" -PACKAGECONFIG[backlight] = "-Dbacklight=true,-Dbacklight=false" -PACKAGECONFIG[binfmt] = "-Dbinfmt=true,-Dbinfmt=false" -PACKAGECONFIG[bzip2] = "-Dbzip2=true,-Dbzip2=false,bzip2" -PACKAGECONFIG[cgroupv2] = "-Ddefault-hierarchy=unified,-Ddefault-hierarchy=hybrid" -PACKAGECONFIG[coredump] = "-Dcoredump=true,-Dcoredump=false" -PACKAGECONFIG[cryptsetup] = "-Dlibcryptsetup=true,-Dlibcryptsetup=false,cryptsetup" -PACKAGECONFIG[dbus] = "-Ddbus=true,-Ddbus=false,dbus" -PACKAGECONFIG[efi] = "-Defi=true,-Defi=false" -PACKAGECONFIG[elfutils] = "-Delfutils=true,-Delfutils=false,elfutils" -PACKAGECONFIG[firstboot] = "-Dfirstboot=true,-Dfirstboot=false" -# Sign the journal for anti-tampering -PACKAGECONFIG[gcrypt] = "-Dgcrypt=true,-Dgcrypt=false,libgcrypt" -PACKAGECONFIG[gnutls] = "-Dgnutls=true,-Dgnutls=false,gnutls" -PACKAGECONFIG[gshadow] = "-Dgshadow=true,-Dgshadow=false" -PACKAGECONFIG[hibernate] = "-Dhibernate=true,-Dhibernate=false" -PACKAGECONFIG[hostnamed] = "-Dhostnamed=true,-Dhostnamed=false" -PACKAGECONFIG[idn] = "-Didn=true,-Didn=false" -PACKAGECONFIG[ima] = "-Dima=true,-Dima=false" -# importd requires curl/xz/zlib/bzip2/gcrypt -PACKAGECONFIG[importd] = "-Dimportd=true,-Dimportd=false" -# Update NAT firewall rules -PACKAGECONFIG[iptc] = "-Dlibiptc=true,-Dlibiptc=false,iptables" -PACKAGECONFIG[journal-upload] = "-Dlibcurl=true,-Dlibcurl=false,curl" -PACKAGECONFIG[kmod] = "-Dkmod=true,-Dkmod=false,kmod" -PACKAGECONFIG[ldconfig] = "-Dldconfig=true,-Dldconfig=false" -PACKAGECONFIG[libidn] = "-Dlibidn=true,-Dlibidn=false,libidn" -PACKAGECONFIG[localed] = "-Dlocaled=true,-Dlocaled=false" -PACKAGECONFIG[logind] = "-Dlogind=true,-Dlogind=false" -PACKAGECONFIG[lz4] = "-Dlz4=true,-Dlz4=false,lz4" -PACKAGECONFIG[machined] = "-Dmachined=true,-Dmachined=false" -PACKAGECONFIG[manpages] = "-Dman=true,-Dman=false,libxslt-native xmlto-native docbook-xml-dtd4-native docbook-xsl-stylesheets-native" -PACKAGECONFIG[microhttpd] = "-Dmicrohttpd=true,-Dmicrohttpd=false,libmicrohttpd" -PACKAGECONFIG[myhostname] = "-Dnss-myhostname=true,-Dnss-myhostname=false,,libnss-myhostname" -PACKAGECONFIG[networkd] = "-Dnetworkd=true,-Dnetworkd=false" -PACKAGECONFIG[nss] = "-Dnss-systemd=true,-Dnss-systemd=false" -PACKAGECONFIG[nss-mymachines] = "-Dnss-mymachines=true,-Dnss-mymachines=false" -PACKAGECONFIG[nss-resolve] = "-Dnss-resolve=true,-Dnss-resolve=false" -PACKAGECONFIG[openssl] = "-Dopenssl=true,-Dopenssl=false,openssl" -PACKAGECONFIG[pam] = "-Dpam=true,-Dpam=false,libpam,${PAM_PLUGINS}" -PACKAGECONFIG[pcre2] = "-Dpcre2=true,-Dpcre2=false,libpcre2" -PACKAGECONFIG[polkit] = "-Dpolkit=true,-Dpolkit=false" -PACKAGECONFIG[portabled] = "-Dportabled=true,-Dportabled=false" -PACKAGECONFIG[qrencode] = "-Dqrencode=true,-Dqrencode=false,qrencode" -PACKAGECONFIG[quotacheck] = "-Dquotacheck=true,-Dquotacheck=false" -PACKAGECONFIG[randomseed] = "-Drandomseed=true,-Drandomseed=false" -PACKAGECONFIG[resolved] = "-Dresolve=true,-Dresolve=false" -PACKAGECONFIG[rfkill] = "-Drfkill=true,-Drfkill=false" -# libseccomp is found in meta-security -PACKAGECONFIG[seccomp] = "-Dseccomp=true,-Dseccomp=false,libseccomp" -PACKAGECONFIG[selinux] = "-Dselinux=true,-Dselinux=false,libselinux,initscripts-sushell" -PACKAGECONFIG[smack] = "-Dsmack=true,-Dsmack=false" -PACKAGECONFIG[sysusers] = "-Dsysusers=true,-Dsysusers=false" -PACKAGECONFIG[time-epoch] = "-Dtime-epoch=0,," -PACKAGECONFIG[timedated] = "-Dtimedated=true,-Dtimedated=false" -PACKAGECONFIG[timesyncd] = "-Dtimesyncd=true,-Dtimesyncd=false" -PACKAGECONFIG[usrmerge] = "-Dsplit-usr=false,-Dsplit-usr=true" -PACKAGECONFIG[sbinmerge] = "-Dsplit-bin=false,-Dsplit-bin=true" -PACKAGECONFIG[utmp] = "-Dutmp=true,-Dutmp=false" -PACKAGECONFIG[valgrind] = "-DVALGRIND=1,,valgrind" -PACKAGECONFIG[vconsole] = "-Dvconsole=true,-Dvconsole=false,,${PN}-vconsole-setup" -# Verify keymaps on locale change -PACKAGECONFIG[xkbcommon] = "-Dxkbcommon=true,-Dxkbcommon=false,libxkbcommon" -PACKAGECONFIG[xz] = "-Dxz=true,-Dxz=false,xz" -PACKAGECONFIG[zlib] = "-Dzlib=true,-Dzlib=false,zlib" - -# Helper variables to clarify locations. This mirrors the logic in systemd's -# build system. -rootprefix ?= "${root_prefix}" -rootlibdir ?= "${base_libdir}" -rootlibexecdir = "${rootprefix}/lib" - -# This links udev statically with systemd helper library. -# Otherwise udev package would depend on systemd package (which has the needed shared library), -# and always pull it into images. -EXTRA_OEMESON += "-Dlink-udev-shared=false" - -EXTRA_OEMESON += "-Dnobody-user=nobody \ - -Dnobody-group=nobody \ - -Drootlibdir=${rootlibdir} \ - -Drootprefix=${rootprefix} \ - -Dsysvrcnd-path=${sysconfdir} \ - -Ddefault-locale=C \ - " - -# Hardcode target binary paths to avoid using paths from sysroot -EXTRA_OEMESON += "-Dkexec-path=${sbindir}/kexec \ - -Dkmod-path=${base_bindir}/kmod \ - -Dmount-path=${base_bindir}/mount \ - -Dquotacheck-path=${sbindir}/quotacheck \ - -Dquotaon-path=${sbindir}/quotaon \ - -Dsulogin-path=${base_sbindir}/sulogin \ - -Dumount-path=${base_bindir}/umount" - -do_install() { - meson_do_install - install -d ${D}/${base_sbindir} - if ${@bb.utils.contains('PACKAGECONFIG', 'serial-getty-generator', 'false', 'true', d)}; then - # Provided by a separate recipe - rm ${D}${systemd_unitdir}/system/serial-getty* -f - fi - - # Provide support for initramfs - [ ! -e ${D}/init ] && ln -s ${rootlibexecdir}/systemd/systemd ${D}/init - [ ! -e ${D}/${base_sbindir}/udevd ] && ln -s ${rootlibexecdir}/systemd/systemd-udevd ${D}/${base_sbindir}/udevd - - install -d ${D}${sysconfdir}/udev/rules.d/ - install -d ${D}${sysconfdir}/tmpfiles.d - install -m 0644 ${WORKDIR}/*.rules ${D}${sysconfdir}/udev/rules.d/ - install -d ${D}${libdir}/pkgconfig - install -m 0644 ${B}/src/udev/udev.pc ${D}${libdir}/pkgconfig/ - - install -m 0644 ${WORKDIR}/00-create-volatile.conf ${D}${sysconfdir}/tmpfiles.d/ - - if ${@bb.utils.contains('DISTRO_FEATURES','sysvinit','true','false',d)}; then - install -d ${D}${sysconfdir}/init.d - install -m 0755 ${WORKDIR}/init ${D}${sysconfdir}/init.d/systemd-udevd - sed -i s%@UDEVD@%${rootlibexecdir}/systemd/systemd-udevd% ${D}${sysconfdir}/init.d/systemd-udevd - fi - - chown root:systemd-journal ${D}/${localstatedir}/log/journal - - # Delete journal README, as log can be symlinked inside volatile. - rm -f ${D}/${localstatedir}/log/README - - # journal-remote creates this at start - rm -rf ${D}/${localstatedir}/log/journal/remote - - install -d ${D}${systemd_unitdir}/system/graphical.target.wants - install -d ${D}${systemd_unitdir}/system/multi-user.target.wants - install -d ${D}${systemd_unitdir}/system/poweroff.target.wants - install -d ${D}${systemd_unitdir}/system/reboot.target.wants - install -d ${D}${systemd_unitdir}/system/rescue.target.wants - - # Create symlinks for systemd-update-utmp-runlevel.service - if ${@bb.utils.contains('PACKAGECONFIG', 'utmp', 'true', 'false', d)}; then - ln -sf ../systemd-update-utmp-runlevel.service ${D}${systemd_unitdir}/system/graphical.target.wants/systemd-update-utmp-runlevel.service - ln -sf ../systemd-update-utmp-runlevel.service ${D}${systemd_unitdir}/system/multi-user.target.wants/systemd-update-utmp-runlevel.service - ln -sf ../systemd-update-utmp-runlevel.service ${D}${systemd_unitdir}/system/poweroff.target.wants/systemd-update-utmp-runlevel.service - ln -sf ../systemd-update-utmp-runlevel.service ${D}${systemd_unitdir}/system/reboot.target.wants/systemd-update-utmp-runlevel.service - ln -sf ../systemd-update-utmp-runlevel.service ${D}${systemd_unitdir}/system/rescue.target.wants/systemd-update-utmp-runlevel.service - fi - - # this file is needed to exist if networkd is disabled but timesyncd is still in use since timesyncd checks it - # for existence else it fails - if [ -s ${D}${exec_prefix}/lib/tmpfiles.d/systemd.conf ]; then - ${@bb.utils.contains('PACKAGECONFIG', 'networkd', ':', 'sed -i -e "\$ad /run/systemd/netif/links 0755 root root -" ${D}${exec_prefix}/lib/tmpfiles.d/systemd.conf', d)} - fi - if ! ${@bb.utils.contains('PACKAGECONFIG', 'resolved', 'true', 'false', d)}; then - echo 'L! ${sysconfdir}/resolv.conf - - - - ../run/systemd/resolve/resolv.conf' >>${D}${exec_prefix}/lib/tmpfiles.d/etc.conf - echo 'd /run/systemd/resolve 0755 root root -' >>${D}${exec_prefix}/lib/tmpfiles.d/systemd.conf - echo 'f /run/systemd/resolve/resolv.conf 0644 root root' >>${D}${exec_prefix}/lib/tmpfiles.d/systemd.conf - ln -s ../run/systemd/resolve/resolv.conf ${D}${sysconfdir}/resolv-conf.systemd - else - sed -i -e "s%^L! /etc/resolv.conf.*$%L! /etc/resolv.conf - - - - ../run/systemd/resolve/resolv.conf%g" ${D}${exec_prefix}/lib/tmpfiles.d/etc.conf - ln -s ../run/systemd/resolve/resolv.conf ${D}${sysconfdir}/resolv-conf.systemd - fi - install -Dm 0755 ${S}/src/systemctl/systemd-sysv-install.SKELETON ${D}${systemd_unitdir}/systemd-sysv-install - - # If polkit is setup fixup permissions and ownership - if ${@bb.utils.contains('PACKAGECONFIG', 'polkit', 'true', 'false', d)}; then - if [ -d ${D}${datadir}/polkit-1/rules.d ]; then - chmod 700 ${D}${datadir}/polkit-1/rules.d - chown polkitd:root ${D}${datadir}/polkit-1/rules.d - fi - fi - - # duplicate udevadm for postinst script - install -d ${D}${libexecdir} - ln ${D}${base_bindir}/udevadm ${D}${libexecdir}/${MLPREFIX}udevadm - - # install default policy for presets - # https://www.freedesktop.org/wiki/Software/systemd/Preset/#howto - install -Dm 0644 ${WORKDIR}/99-default.preset ${D}${systemd_unitdir}/system-preset/99-default.preset -} - - -python populate_packages_prepend (){ - systemdlibdir = d.getVar("rootlibdir") - do_split_packages(d, systemdlibdir, '^lib(.*)\.so\.*', 'lib%s', 'Systemd %s library', extra_depends='', allow_links=True) -} -PACKAGES_DYNAMIC += "^lib(udev|systemd|nss).*" - -PACKAGES =+ "\ - ${PN}-gui \ - ${PN}-vconsole-setup \ - ${PN}-initramfs \ - ${PN}-analyze \ - ${PN}-kernel-install \ - ${PN}-rpm-macros \ - ${PN}-binfmt \ - ${PN}-zsh-completion \ - ${PN}-xorg-xinitrc \ - ${PN}-container \ - ${PN}-journal-gatewayd \ - ${PN}-journal-upload \ - ${PN}-journal-remote \ - ${PN}-extra-utils \ -" - -SUMMARY_${PN}-container = "Tools for containers and VMs" -DESCRIPTION_${PN}-container = "Systemd tools to spawn and manage containers and virtual machines." - -SUMMARY_${PN}-journal-gatewayd = "HTTP server for journal events" -DESCRIPTION_${PN}-journal-gatewayd = "systemd-journal-gatewayd serves journal events over the network. Clients must connect using HTTP. The server listens on port 19531 by default." - -SUMMARY_${PN}-journal-upload = "Send journal messages over the network" -DESCRIPTION_${PN}-journal-upload = "systemd-journal-upload uploads journal entries to a specified URL." - -SUMMARY_${PN}-journal-remote = "Receive journal messages over the network" -DESCRIPTION_${PN}-journal-remote = "systemd-journal-remote is a command to receive serialized journal events and store them to journal files." - -SYSTEMD_PACKAGES = "${@bb.utils.contains('PACKAGECONFIG', 'binfmt', '${PN}-binfmt', '', d)} \ - ${@bb.utils.contains('PACKAGECONFIG', 'microhttpd', '${PN}-journal-gatewayd', '', d)} \ - ${@bb.utils.contains('PACKAGECONFIG', 'microhttpd', '${PN}-journal-remote', '', d)} \ - ${@bb.utils.contains('PACKAGECONFIG', 'journal-upload', '${PN}-journal-upload', '', d)} \ -" -SYSTEMD_SERVICE_${PN}-binfmt = "systemd-binfmt.service" - -USERADD_PACKAGES = "${PN} ${PN}-extra-utils \ - ${@bb.utils.contains('PACKAGECONFIG', 'microhttpd', '${PN}-journal-gateway', '', d)} \ - ${@bb.utils.contains('PACKAGECONFIG', 'microhttpd', '${PN}-journal-remote', '', d)} \ - ${@bb.utils.contains('PACKAGECONFIG', 'journal-upload', '${PN}-journal-upload', '', d)} \ -" -GROUPADD_PARAM_${PN} = "-r systemd-journal" -USERADD_PARAM_${PN} += "${@bb.utils.contains('PACKAGECONFIG', 'coredump', '--system -d / -M --shell /bin/nologin systemd-coredump;', '', d)}" -USERADD_PARAM_${PN} += "${@bb.utils.contains('PACKAGECONFIG', 'networkd', '--system -d / -M --shell /bin/nologin systemd-network;', '', d)}" -USERADD_PARAM_${PN} += "${@bb.utils.contains('PACKAGECONFIG', 'polkit', '--system --no-create-home --user-group --home-dir ${sysconfdir}/polkit-1 polkitd;', '', d)}" -USERADD_PARAM_${PN} += "${@bb.utils.contains('PACKAGECONFIG', 'resolved', '--system -d / -M --shell /bin/nologin systemd-resolve;', '', d)}" -USERADD_PARAM_${PN} += "${@bb.utils.contains('PACKAGECONFIG', 'timesyncd', '--system -d / -M --shell /bin/nologin systemd-timesync;', '', d)}" -USERADD_PARAM_${PN}-extra-utils = "--system -d / -M --shell /bin/nologin systemd-bus-proxy" -USERADD_PARAM_${PN}-journal-gateway = "--system -d / -M --shell /bin/nologin systemd-journal-gateway" -USERADD_PARAM_${PN}-journal-remote = "--system -d / -M --shell /bin/nologin systemd-journal-remote" -USERADD_PARAM_${PN}-journal-upload = "--system -d / -M --shell /bin/nologin systemd-journal-upload" - -FILES_${PN}-analyze = "${bindir}/systemd-analyze" - -FILES_${PN}-initramfs = "/init" -RDEPENDS_${PN}-initramfs = "${PN}" - -FILES_${PN}-gui = "${bindir}/systemadm" - -FILES_${PN}-vconsole-setup = "${rootlibexecdir}/systemd/systemd-vconsole-setup \ - ${systemd_unitdir}/system/systemd-vconsole-setup.service \ - ${systemd_unitdir}/system/sysinit.target.wants/systemd-vconsole-setup.service" - -RDEPENDS_${PN}-kernel-install += "bash" -FILES_${PN}-kernel-install = "${bindir}/kernel-install \ - ${sysconfdir}/kernel/ \ - ${exec_prefix}/lib/kernel \ - " -FILES_${PN}-rpm-macros = "${exec_prefix}/lib/rpm \ - " - -FILES_${PN}-xorg-xinitrc = "${sysconfdir}/X11/xinit/xinitrc.d/*" - -FILES_${PN}-zsh-completion = "${datadir}/zsh/site-functions" - -FILES_${PN}-binfmt = "${sysconfdir}/binfmt.d/ \ - ${exec_prefix}/lib/binfmt.d \ - ${rootlibexecdir}/systemd/systemd-binfmt \ - ${systemd_unitdir}/system/proc-sys-fs-binfmt_misc.* \ - ${systemd_unitdir}/system/systemd-binfmt.service" -RRECOMMENDS_${PN}-binfmt = "kernel-module-binfmt-misc" - -RRECOMMENDS_${PN}-vconsole-setup = "kbd kbd-consolefonts kbd-keymaps" - - -FILES_${PN}-journal-gatewayd = "${rootlibexecdir}/systemd/systemd-journal-gatewayd \ - ${systemd_system_unitdir}/systemd-journal-gatewayd.service \ - ${systemd_system_unitdir}/systemd-journal-gatewayd.socket \ - ${systemd_system_unitdir}/sockets.target.wants/systemd-journal-gatewayd.socket \ - ${datadir}/systemd/gatewayd/browse.html \ - " -SYSTEMD_SERVICE_${PN}-journal-gatewayd = "systemd-journal-gatewayd.socket" - -FILES_${PN}-journal-upload = "${rootlibexecdir}/systemd/systemd-journal-upload \ - ${systemd_system_unitdir}/systemd-journal-upload.service \ - ${sysconfdir}/systemd/journal-upload.conf \ - " -SYSTEMD_SERVICE_${PN}-journal-upload = "systemd-journal-upload.service" - -FILES_${PN}-journal-remote = "${rootlibexecdir}/systemd/systemd-journal-remote \ - ${sysconfdir}/systemd/journal-remote.conf \ - ${systemd_system_unitdir}/systemd-journal-remote.service \ - ${systemd_system_unitdir}/systemd-journal-remote.socket \ - " -SYSTEMD_SERVICE_${PN}-remote = "systemd-journal-remote.socket" - - -FILES_${PN}-container = "${sysconfdir}/dbus-1/system.d/org.freedesktop.import1.conf \ - ${sysconfdir}/dbus-1/system.d/org.freedesktop.machine1.conf \ - ${sysconfdir}/systemd/system/multi-user.target.wants/machines.target \ - ${base_bindir}/machinectl \ - ${bindir}/systemd-nspawn \ - ${nonarch_libdir}/systemd/import-pubring.gpg \ - ${systemd_system_unitdir}/busnames.target.wants/org.freedesktop.import1.busname \ - ${systemd_system_unitdir}/busnames.target.wants/org.freedesktop.machine1.busname \ - ${systemd_system_unitdir}/local-fs.target.wants/var-lib-machines.mount \ - ${systemd_system_unitdir}/machines.target.wants/var-lib-machines.mount \ - ${systemd_system_unitdir}/remote-fs.target.wants/var-lib-machines.mount \ - ${systemd_system_unitdir}/machine.slice \ - ${systemd_system_unitdir}/machines.target \ - ${systemd_system_unitdir}/org.freedesktop.import1.busname \ - ${systemd_system_unitdir}/org.freedesktop.machine1.busname \ - ${systemd_system_unitdir}/systemd-importd.service \ - ${systemd_system_unitdir}/systemd-machined.service \ - ${systemd_system_unitdir}/dbus-org.freedesktop.machine1.service \ - ${systemd_system_unitdir}/var-lib-machines.mount \ - ${rootlibexecdir}/systemd/systemd-import \ - ${rootlibexecdir}/systemd/systemd-importd \ - ${rootlibexecdir}/systemd/systemd-machined \ - ${rootlibexecdir}/systemd/systemd-pull \ - ${exec_prefix}/lib/tmpfiles.d/systemd-nspawn.conf \ - ${systemd_system_unitdir}/systemd-nspawn@.service \ - ${libdir}/libnss_mymachines.so.2 \ - ${datadir}/dbus-1/system-services/org.freedesktop.import1.service \ - ${datadir}/dbus-1/system-services/org.freedesktop.machine1.service \ - ${datadir}/dbus-1/system.d/org.freedesktop.import1.conf \ - ${datadir}/dbus-1/system.d/org.freedesktop.machine1.conf \ - ${datadir}/polkit-1/actions/org.freedesktop.import1.policy \ - ${datadir}/polkit-1/actions/org.freedesktop.machine1.policy \ - " - -RRECOMMENDS_${PN}-container += "\ - ${PN}-journal-upload \ - ${PN}-journal-remote \ - ${PN}-journal-gatewayd \ - " - -FILES_${PN}-extra-utils = "\ - ${base_bindir}/systemd-escape \ - ${base_bindir}/systemd-inhibit \ - ${bindir}/systemd-detect-virt \ - ${bindir}/systemd-path \ - ${bindir}/systemd-run \ - ${bindir}/systemd-cat \ - ${bindir}/systemd-delta \ - ${bindir}/systemd-cgls \ - ${bindir}/systemd-cgtop \ - ${bindir}/systemd-stdio-bridge \ - ${base_bindir}/systemd-ask-password \ - ${base_bindir}/systemd-tty-ask-password-agent \ - ${systemd_unitdir}/system/systemd-ask-password-console.path \ - ${systemd_unitdir}/system/systemd-ask-password-console.service \ - ${systemd_unitdir}/system/systemd-ask-password-wall.path \ - ${systemd_unitdir}/system/systemd-ask-password-wall.service \ - ${systemd_unitdir}/system/sysinit.target.wants/systemd-ask-password-console.path \ - ${systemd_unitdir}/system/sysinit.target.wants/systemd-ask-password-wall.path \ - ${systemd_unitdir}/system/multi-user.target.wants/systemd-ask-password-wall.path \ - ${rootlibexecdir}/systemd/systemd-resolve-host \ - ${rootlibexecdir}/systemd/systemd-ac-power \ - ${rootlibexecdir}/systemd/systemd-activate \ - ${rootlibexecdir}/systemd/systemd-bus-proxyd \ - ${systemd_unitdir}/system/systemd-bus-proxyd.service \ - ${systemd_unitdir}/system/systemd-bus-proxyd.socket \ - ${rootlibexecdir}/systemd/systemd-socket-proxyd \ - ${rootlibexecdir}/systemd/systemd-reply-password \ - ${rootlibexecdir}/systemd/systemd-sleep \ - ${rootlibexecdir}/systemd/system-sleep \ - ${systemd_unitdir}/system/systemd-hibernate.service \ - ${systemd_unitdir}/system/systemd-hybrid-sleep.service \ - ${systemd_unitdir}/system/systemd-suspend.service \ - ${systemd_unitdir}/system/sleep.target \ - ${rootlibexecdir}/systemd/systemd-initctl \ - ${systemd_unitdir}/system/systemd-initctl.service \ - ${systemd_unitdir}/system/systemd-initctl.socket \ - ${systemd_unitdir}/system/sockets.target.wants/systemd-initctl.socket \ - ${rootlibexecdir}/systemd/system-generators/systemd-gpt-auto-generator \ - ${rootlibexecdir}/systemd/systemd-cgroups-agent \ -" - -CONFFILES_${PN} = "${sysconfdir}/systemd/coredump.conf \ - ${sysconfdir}/systemd/journald.conf \ - ${sysconfdir}/systemd/logind.conf \ - ${sysconfdir}/systemd/system.conf \ - ${sysconfdir}/systemd/user.conf \ - ${sysconfdir}/systemd/resolved.conf \ - ${sysconfdir}/systemd/timesyncd.conf \ -" - -FILES_${PN} = " ${base_bindir}/* \ - ${base_sbindir}/shutdown \ - ${base_sbindir}/halt \ - ${base_sbindir}/poweroff \ - ${base_sbindir}/runlevel \ - ${base_sbindir}/telinit \ - ${base_sbindir}/resolvconf \ - ${base_sbindir}/reboot \ - ${base_sbindir}/init \ - ${datadir}/dbus-1/services \ - ${datadir}/dbus-1/system-services \ - ${datadir}/polkit-1 \ - ${datadir}/${BPN} \ - ${datadir}/factory \ - ${sysconfdir}/dbus-1/ \ - ${sysconfdir}/modules-load.d/ \ - ${sysconfdir}/pam.d/ \ - ${sysconfdir}/sysctl.d/ \ - ${sysconfdir}/systemd/ \ - ${sysconfdir}/tmpfiles.d/ \ - ${sysconfdir}/xdg/ \ - ${sysconfdir}/init.d/README \ - ${sysconfdir}/resolv-conf.systemd \ - ${rootlibexecdir}/systemd/* \ - ${systemd_unitdir}/* \ - ${base_libdir}/security/*.so \ - /cgroup \ - ${bindir}/systemd* \ - ${bindir}/busctl \ - ${bindir}/coredumpctl \ - ${bindir}/localectl \ - ${bindir}/hostnamectl \ - ${bindir}/resolvectl \ - ${bindir}/timedatectl \ - ${bindir}/bootctl \ - ${bindir}/kernel-install \ - ${exec_prefix}/lib/tmpfiles.d/*.conf \ - ${exec_prefix}/lib/systemd \ - ${exec_prefix}/lib/modules-load.d \ - ${exec_prefix}/lib/sysctl.d \ - ${exec_prefix}/lib/sysusers.d \ - ${exec_prefix}/lib/environment.d \ - ${localstatedir} \ - ${nonarch_base_libdir}/udev/rules.d/70-uaccess.rules \ - ${nonarch_base_libdir}/udev/rules.d/71-seat.rules \ - ${nonarch_base_libdir}/udev/rules.d/73-seat-late.rules \ - ${nonarch_base_libdir}/udev/rules.d/99-systemd.rules \ - ${nonarch_base_libdir}/modprobe.d/systemd.conf \ - ${datadir}/dbus-1/system.d/org.freedesktop.timedate1.conf \ - ${datadir}/dbus-1/system.d/org.freedesktop.locale1.conf \ - ${datadir}/dbus-1/system.d/org.freedesktop.network1.conf \ - ${datadir}/dbus-1/system.d/org.freedesktop.resolve1.conf \ - ${datadir}/dbus-1/system.d/org.freedesktop.systemd1.conf \ - ${datadir}/dbus-1/system.d/org.freedesktop.hostname1.conf \ - ${datadir}/dbus-1/system.d/org.freedesktop.login1.conf \ - ${datadir}/dbus-1/system.d/org.freedesktop.timesync1.conf \ - ${datadir}/dbus-1/system.d/org.freedesktop.portable1.conf \ - " - -FILES_${PN}-dev += "${base_libdir}/security/*.la ${datadir}/dbus-1/interfaces/ ${sysconfdir}/rpm/macros.systemd" - -RDEPENDS_${PN} += "kmod dbus util-linux-mount util-linux-umount udev (= ${EXTENDPKGV}) util-linux-agetty util-linux-fsck" -RDEPENDS_${PN} += "${@bb.utils.contains('PACKAGECONFIG', 'serial-getty-generator', '', 'systemd-serialgetty', d)}" -RDEPENDS_${PN} += "volatile-binds update-rc.d" - -RRECOMMENDS_${PN} += "systemd-extra-utils \ - systemd-compat-units udev-hwdb \ - e2fsprogs-e2fsck \ - kernel-module-autofs4 kernel-module-unix kernel-module-ipv6 \ - os-release \ - systemd-conf \ -" - -INSANE_SKIP_${PN} += "dev-so libdir" -INSANE_SKIP_${PN}-dbg += "libdir" -INSANE_SKIP_${PN}-doc += " libdir" - -PACKAGES =+ "udev udev-hwdb" - -RPROVIDES_udev = "hotplug" - -RDEPENDS_udev-hwdb += "udev" - -FILES_udev += "${base_sbindir}/udevd \ - ${rootlibexecdir}/systemd/network/99-default.link \ - ${rootlibexecdir}/systemd/systemd-udevd \ - ${rootlibexecdir}/udev/accelerometer \ - ${rootlibexecdir}/udev/ata_id \ - ${rootlibexecdir}/udev/cdrom_id \ - ${rootlibexecdir}/udev/collect \ - ${rootlibexecdir}/udev/findkeyboards \ - ${rootlibexecdir}/udev/keyboard-force-release.sh \ - ${rootlibexecdir}/udev/keymap \ - ${rootlibexecdir}/udev/mtd_probe \ - ${rootlibexecdir}/udev/scsi_id \ - ${rootlibexecdir}/udev/v4l_id \ - ${rootlibexecdir}/udev/keymaps \ - ${rootlibexecdir}/udev/rules.d/*.rules \ - ${sysconfdir}/udev \ - ${sysconfdir}/init.d/systemd-udevd \ - ${systemd_unitdir}/system/*udev* \ - ${systemd_unitdir}/system/*.wants/*udev* \ - ${base_bindir}/udevadm \ - ${libexecdir}/${MLPREFIX}udevadm \ - ${datadir}/bash-completion/completions/udevadm \ - " - -FILES_udev-hwdb = "${rootlibexecdir}/udev/hwdb.d" - -RCONFLICTS_${PN} = "tiny-init ${@bb.utils.contains('PACKAGECONFIG', 'resolved', 'resolvconf', '', d)}" - -INITSCRIPT_PACKAGES = "udev" -INITSCRIPT_NAME_udev = "systemd-udevd" -INITSCRIPT_PARAMS_udev = "start 03 S ." - -python __anonymous() { - if not bb.utils.contains('DISTRO_FEATURES', 'sysvinit', True, False, d): - d.setVar("INHIBIT_UPDATERCD_BBCLASS", "1") -} - -ALTERNATIVE_${PN} = "halt reboot shutdown poweroff runlevel resolv-conf" - -ALTERNATIVE_TARGET[resolv-conf] = "${sysconfdir}/resolv-conf.systemd" -ALTERNATIVE_LINK_NAME[resolv-conf] = "${sysconfdir}/resolv.conf" -ALTERNATIVE_PRIORITY[resolv-conf] ?= "50" - -ALTERNATIVE_TARGET[halt] = "${base_bindir}/systemctl" -ALTERNATIVE_LINK_NAME[halt] = "${base_sbindir}/halt" -ALTERNATIVE_PRIORITY[halt] ?= "300" - -ALTERNATIVE_TARGET[reboot] = "${base_bindir}/systemctl" -ALTERNATIVE_LINK_NAME[reboot] = "${base_sbindir}/reboot" -ALTERNATIVE_PRIORITY[reboot] ?= "300" - -ALTERNATIVE_TARGET[shutdown] = "${base_bindir}/systemctl" -ALTERNATIVE_LINK_NAME[shutdown] = "${base_sbindir}/shutdown" -ALTERNATIVE_PRIORITY[shutdown] ?= "300" - -ALTERNATIVE_TARGET[poweroff] = "${base_bindir}/systemctl" -ALTERNATIVE_LINK_NAME[poweroff] = "${base_sbindir}/poweroff" -ALTERNATIVE_PRIORITY[poweroff] ?= "300" - -ALTERNATIVE_TARGET[runlevel] = "${base_bindir}/systemctl" -ALTERNATIVE_LINK_NAME[runlevel] = "${base_sbindir}/runlevel" -ALTERNATIVE_PRIORITY[runlevel] ?= "300" - -pkg_postinst_${PN} () { - sed -e '/^hosts:/s/\s*\//' \ - -e 's/\(^hosts:.*\)\(\\)\(.*\)\(\\)\(.*\)/\1\2 myhostname \3\4\5/' \ - -i $D${sysconfdir}/nsswitch.conf -} - -pkg_prerm_${PN} () { - sed -e '/^hosts:/s/\s*\//' \ - -e '/^hosts:/s/\s*myhostname//' \ - -i $D${sysconfdir}/nsswitch.conf -} - -PACKAGE_WRITE_DEPS += "qemu-native" -pkg_postinst_udev-hwdb () { - if test -n "$D"; then - $INTERCEPT_DIR/postinst_intercept update_udev_hwdb ${PKG} mlprefix=${MLPREFIX} binprefix=${MLPREFIX} - else - udevadm hwdb --update - fi -} - -pkg_prerm_udev-hwdb () { - rm -f $D${sysconfdir}/udev/hwdb.bin -} diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-core/systemd/systemd_243.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-core/systemd/systemd_243.bb new file mode 100644 index 00000000..b31d0b5e --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-core/systemd/systemd_243.bb @@ -0,0 +1,683 @@ +require systemd.inc + +PROVIDES = "udev" + +PE = "1" + +DEPENDS = "intltool-native gperf-native libcap util-linux" + +SECTION = "base/shell" + +inherit useradd pkgconfig meson perlnative update-rc.d update-alternatives qemu systemd gettext bash-completion manpages features_check + +# As this recipe builds udev, respect systemd being in DISTRO_FEATURES so +# that we don't build both udev and systemd in world builds. +REQUIRED_DISTRO_FEATURES = "systemd" + +SRC_URI += "file://touchscreen.rules \ + file://00-create-volatile.conf \ + file://init \ + file://0001-binfmt-Don-t-install-dependency-links-at-install-tim.patch \ + file://0002-use-lnr-wrapper-instead-of-looking-for-relative-opti.patch \ + file://0003-implment-systemd-sysv-install-for-OE.patch \ + file://0004-rules-whitelist-hd-devices.patch \ + file://0005-rules-watch-metadata-changes-in-ide-devices.patch \ + file://0001-unit-file.c-consider-symlink-on-filesystems-like-NFS.patch \ + file://99-default.preset \ + file://0001-pstore-fix-use-after-free.patch \ + " + +# patches needed by musl +SRC_URI_append_libc-musl = " ${SRC_URI_MUSL}" +SRC_URI_MUSL = "\ + file://0002-don-t-use-glibc-specific-qsort_r.patch \ + file://0003-missing_type.h-add-__compare_fn_t-and-comparison_fn_.patch \ + file://0004-add-fallback-parse_printf_format-implementation.patch \ + file://0005-src-basic-missing.h-check-for-missing-strndupa.patch \ + file://0006-Include-netinet-if_ether.h.patch \ + file://0007-don-t-fail-if-GLOB_BRACE-and-GLOB_ALTDIRFUNC-is-not.patch \ + file://0008-add-missing-FTW_-macros-for-musl.patch \ + file://0010-fix-missing-of-__register_atfork-for-non-glibc-build.patch \ + file://0011-Use-uintmax_t-for-handling-rlim_t.patch \ + file://0014-test-sizeof.c-Disable-tests-for-missing-typedefs-in-.patch \ + file://0015-don-t-pass-AT_SYMLINK_NOFOLLOW-flag-to-faccessat.patch \ + file://0016-Define-glibc-compatible-basename-for-non-glibc-syste.patch \ + file://0017-Do-not-disable-buffering-when-writing-to-oom_score_a.patch \ + file://0018-distinguish-XSI-compliant-strerror_r-from-GNU-specif.patch \ + file://0019-Hide-__start_BUS_ERROR_MAP-and-__stop_BUS_ERROR_MAP.patch \ + file://0020-missing_type.h-add-__compar_d_fn_t-definition.patch \ + file://0021-avoid-redefinition-of-prctl_mm_map-structure.patch \ + file://0024-test-json.c-define-M_PIl.patch \ + file://0001-do-not-disable-buffer-in-writing-files.patch \ + file://0002-src-login-brightness.c-include-sys-wait.h.patch \ + file://0003-src-basic-copy.c-include-signal.h.patch \ + file://0004-src-shared-cpu-set-util.h-add-__cpu_mask-definition.patch \ + " + +PAM_PLUGINS = " \ + pam-plugin-unix \ + pam-plugin-loginuid \ + pam-plugin-keyinit \ +" + +PACKAGECONFIG ??= " \ + ${@bb.utils.filter('DISTRO_FEATURES', 'efi ldconfig pam selinux usrmerge polkit', d)} \ + ${@bb.utils.contains('DISTRO_FEATURES', 'wifi', 'rfkill', '', d)} \ + ${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'xkbcommon', '', d)} \ + acl \ + backlight \ + binfmt \ + gshadow \ + hibernate \ + hostnamed \ + idn \ + ima \ + kmod \ + localed \ + logind \ + machined \ + myhostname \ + networkd \ + nss \ + nss-mymachines \ + nss-resolve \ + quotacheck \ + randomseed \ + resolved \ + set-time-epoch \ + smack \ + sysusers \ + timedated \ + timesyncd \ + utmp \ + vconsole \ + xz \ +" + +PACKAGECONFIG_remove_libc-musl = " \ + gshadow \ + idn \ + localed \ + myhostname \ + nss \ + nss-mymachines \ + nss-resolve \ + resolved \ + smack \ + sysusers \ + utmp \ +" + +# Use the upstream systemd serial-getty@.service and rely on +# systemd-getty-generator instead of using the OE-core specific +# systemd-serialgetty.bb - not enabled by default. +PACKAGECONFIG[serial-getty-generator] = "" + +PACKAGECONFIG[acl] = "-Dacl=true,-Dacl=false,acl" +PACKAGECONFIG[audit] = "-Daudit=true,-Daudit=false,audit" +PACKAGECONFIG[backlight] = "-Dbacklight=true,-Dbacklight=false" +PACKAGECONFIG[binfmt] = "-Dbinfmt=true,-Dbinfmt=false" +PACKAGECONFIG[bzip2] = "-Dbzip2=true,-Dbzip2=false,bzip2" +PACKAGECONFIG[cgroupv2] = "-Ddefault-hierarchy=unified,-Ddefault-hierarchy=hybrid" +PACKAGECONFIG[coredump] = "-Dcoredump=true,-Dcoredump=false" +PACKAGECONFIG[cryptsetup] = "-Dlibcryptsetup=true,-Dlibcryptsetup=false,cryptsetup" +PACKAGECONFIG[dbus] = "-Ddbus=true,-Ddbus=false,dbus" +PACKAGECONFIG[efi] = "-Defi=true,-Defi=false" +PACKAGECONFIG[gnu-efi] = "-Dgnu-efi=true -Defi-libdir=${STAGING_LIBDIR} -Defi-includedir=${STAGING_INCDIR}/efi,-Dgnu-efi=false,gnu-efi" +PACKAGECONFIG[elfutils] = "-Delfutils=true,-Delfutils=false,elfutils" +PACKAGECONFIG[firstboot] = "-Dfirstboot=true,-Dfirstboot=false" +# Sign the journal for anti-tampering +PACKAGECONFIG[gcrypt] = "-Dgcrypt=true,-Dgcrypt=false,libgcrypt" +PACKAGECONFIG[gnutls] = "-Dgnutls=true,-Dgnutls=false,gnutls" +PACKAGECONFIG[gshadow] = "-Dgshadow=true,-Dgshadow=false" +PACKAGECONFIG[hibernate] = "-Dhibernate=true,-Dhibernate=false" +PACKAGECONFIG[hostnamed] = "-Dhostnamed=true,-Dhostnamed=false" +PACKAGECONFIG[idn] = "-Didn=true,-Didn=false" +PACKAGECONFIG[ima] = "-Dima=true,-Dima=false" +# importd requires curl/xz/zlib/bzip2/gcrypt +PACKAGECONFIG[importd] = "-Dimportd=true,-Dimportd=false" +# Update NAT firewall rules +PACKAGECONFIG[iptc] = "-Dlibiptc=true,-Dlibiptc=false,iptables" +PACKAGECONFIG[journal-upload] = "-Dlibcurl=true,-Dlibcurl=false,curl" +PACKAGECONFIG[kmod] = "-Dkmod=true,-Dkmod=false,kmod" +PACKAGECONFIG[ldconfig] = "-Dldconfig=true,-Dldconfig=false,,ldconfig" +PACKAGECONFIG[libidn] = "-Dlibidn=true,-Dlibidn=false,libidn" +PACKAGECONFIG[localed] = "-Dlocaled=true,-Dlocaled=false" +PACKAGECONFIG[logind] = "-Dlogind=true,-Dlogind=false" +PACKAGECONFIG[lz4] = "-Dlz4=true,-Dlz4=false,lz4" +PACKAGECONFIG[machined] = "-Dmachined=true,-Dmachined=false" +PACKAGECONFIG[manpages] = "-Dman=true,-Dman=false,libxslt-native xmlto-native docbook-xml-dtd4-native docbook-xsl-stylesheets-native" +PACKAGECONFIG[microhttpd] = "-Dmicrohttpd=true,-Dmicrohttpd=false,libmicrohttpd" +PACKAGECONFIG[myhostname] = "-Dnss-myhostname=true,-Dnss-myhostname=false,,libnss-myhostname" +PACKAGECONFIG[networkd] = "-Dnetworkd=true,-Dnetworkd=false" +PACKAGECONFIG[nss] = "-Dnss-systemd=true,-Dnss-systemd=false" +PACKAGECONFIG[nss-mymachines] = "-Dnss-mymachines=true,-Dnss-mymachines=false" +PACKAGECONFIG[nss-resolve] = "-Dnss-resolve=true,-Dnss-resolve=false" +PACKAGECONFIG[openssl] = "-Dopenssl=true,-Dopenssl=false,openssl" +PACKAGECONFIG[pam] = "-Dpam=true,-Dpam=false,libpam,${PAM_PLUGINS}" +PACKAGECONFIG[pcre2] = "-Dpcre2=true,-Dpcre2=false,libpcre2" +PACKAGECONFIG[polkit] = "-Dpolkit=true,-Dpolkit=false" +PACKAGECONFIG[portabled] = "-Dportabled=true,-Dportabled=false" +PACKAGECONFIG[qrencode] = "-Dqrencode=true,-Dqrencode=false,qrencode" +PACKAGECONFIG[quotacheck] = "-Dquotacheck=true,-Dquotacheck=false" +PACKAGECONFIG[randomseed] = "-Drandomseed=true,-Drandomseed=false" +PACKAGECONFIG[resolved] = "-Dresolve=true,-Dresolve=false" +PACKAGECONFIG[rfkill] = "-Drfkill=true,-Drfkill=false" +# libseccomp is found in meta-security +PACKAGECONFIG[seccomp] = "-Dseccomp=true,-Dseccomp=false,libseccomp" +PACKAGECONFIG[selinux] = "-Dselinux=true,-Dselinux=false,libselinux,initscripts-sushell" +PACKAGECONFIG[smack] = "-Dsmack=true,-Dsmack=false" +PACKAGECONFIG[sysusers] = "-Dsysusers=true,-Dsysusers=false" +# When enabled use reproducble build timestamp if set as time epoch, +# or build time if not. When disabled, time epoch is unset. +def build_epoch(d): + epoch = d.getVar('SOURCE_DATE_EPOCH') or "-1" + return '-Dtime-epoch=%d' % int(epoch) +PACKAGECONFIG[set-time-epoch] = "${@build_epoch(d)},-Dtime-epoch=0" +PACKAGECONFIG[timedated] = "-Dtimedated=true,-Dtimedated=false" +PACKAGECONFIG[timesyncd] = "-Dtimesyncd=true,-Dtimesyncd=false" +PACKAGECONFIG[usrmerge] = "-Dsplit-usr=false,-Dsplit-usr=true" +PACKAGECONFIG[sbinmerge] = "-Dsplit-bin=false,-Dsplit-bin=true" +PACKAGECONFIG[utmp] = "-Dutmp=true,-Dutmp=false" +PACKAGECONFIG[valgrind] = "-DVALGRIND=1,,valgrind" +PACKAGECONFIG[vconsole] = "-Dvconsole=true,-Dvconsole=false,,${PN}-vconsole-setup" +# Verify keymaps on locale change +PACKAGECONFIG[xkbcommon] = "-Dxkbcommon=true,-Dxkbcommon=false,libxkbcommon" +PACKAGECONFIG[xz] = "-Dxz=true,-Dxz=false,xz" +PACKAGECONFIG[zlib] = "-Dzlib=true,-Dzlib=false,zlib" + +# Helper variables to clarify locations. This mirrors the logic in systemd's +# build system. +rootprefix ?= "${root_prefix}" +rootlibdir ?= "${base_libdir}" +rootlibexecdir = "${rootprefix}/lib" + +# This links udev statically with systemd helper library. +# Otherwise udev package would depend on systemd package (which has the needed shared library), +# and always pull it into images. +EXTRA_OEMESON += "-Dlink-udev-shared=false" + +EXTRA_OEMESON += "-Dnobody-user=nobody \ + -Dnobody-group=nobody \ + -Drootlibdir=${rootlibdir} \ + -Drootprefix=${rootprefix} \ + -Dsysvrcnd-path=${sysconfdir} \ + -Ddefault-locale=C \ + " + +# Hardcode target binary paths to avoid using paths from sysroot +EXTRA_OEMESON += "-Dkexec-path=${sbindir}/kexec \ + -Dkmod-path=${base_bindir}/kmod \ + -Dmount-path=${base_bindir}/mount \ + -Dquotacheck-path=${sbindir}/quotacheck \ + -Dquotaon-path=${sbindir}/quotaon \ + -Dsulogin-path=${base_sbindir}/sulogin \ + -Dnologin-path=${base_sbindir}/nologin \ + -Dumount-path=${base_bindir}/umount" + +do_install() { + meson_do_install + install -d ${D}/${base_sbindir} + if ${@bb.utils.contains('PACKAGECONFIG', 'serial-getty-generator', 'false', 'true', d)}; then + # Provided by a separate recipe + rm ${D}${systemd_unitdir}/system/serial-getty* -f + fi + + # Provide support for initramfs + [ ! -e ${D}/init ] && ln -s ${rootlibexecdir}/systemd/systemd ${D}/init + [ ! -e ${D}/${base_sbindir}/udevd ] && ln -s ${rootlibexecdir}/systemd/systemd-udevd ${D}/${base_sbindir}/udevd + + install -d ${D}${sysconfdir}/udev/rules.d/ + install -d ${D}${sysconfdir}/tmpfiles.d + install -m 0644 ${WORKDIR}/*.rules ${D}${sysconfdir}/udev/rules.d/ + + install -m 0644 ${WORKDIR}/00-create-volatile.conf ${D}${sysconfdir}/tmpfiles.d/ + + if ${@bb.utils.contains('DISTRO_FEATURES','sysvinit','true','false',d)}; then + install -d ${D}${sysconfdir}/init.d + install -m 0755 ${WORKDIR}/init ${D}${sysconfdir}/init.d/systemd-udevd + sed -i s%@UDEVD@%${rootlibexecdir}/systemd/systemd-udevd% ${D}${sysconfdir}/init.d/systemd-udevd + fi + + chown root:systemd-journal ${D}/${localstatedir}/log/journal + + # Delete journal README, as log can be symlinked inside volatile. + rm -f ${D}/${localstatedir}/log/README + + # journal-remote creates this at start + rm -rf ${D}/${localstatedir}/log/journal/remote + + install -d ${D}${systemd_unitdir}/system/graphical.target.wants + install -d ${D}${systemd_unitdir}/system/multi-user.target.wants + install -d ${D}${systemd_unitdir}/system/poweroff.target.wants + install -d ${D}${systemd_unitdir}/system/reboot.target.wants + install -d ${D}${systemd_unitdir}/system/rescue.target.wants + + # Create symlinks for systemd-update-utmp-runlevel.service + if ${@bb.utils.contains('PACKAGECONFIG', 'utmp', 'true', 'false', d)}; then + ln -sf ../systemd-update-utmp-runlevel.service ${D}${systemd_unitdir}/system/graphical.target.wants/systemd-update-utmp-runlevel.service + ln -sf ../systemd-update-utmp-runlevel.service ${D}${systemd_unitdir}/system/multi-user.target.wants/systemd-update-utmp-runlevel.service + ln -sf ../systemd-update-utmp-runlevel.service ${D}${systemd_unitdir}/system/poweroff.target.wants/systemd-update-utmp-runlevel.service + ln -sf ../systemd-update-utmp-runlevel.service ${D}${systemd_unitdir}/system/reboot.target.wants/systemd-update-utmp-runlevel.service + ln -sf ../systemd-update-utmp-runlevel.service ${D}${systemd_unitdir}/system/rescue.target.wants/systemd-update-utmp-runlevel.service + fi + + # this file is needed to exist if networkd is disabled but timesyncd is still in use since timesyncd checks it + # for existence else it fails + if [ -s ${D}${exec_prefix}/lib/tmpfiles.d/systemd.conf ]; then + ${@bb.utils.contains('PACKAGECONFIG', 'networkd', ':', 'sed -i -e "\$ad /run/systemd/netif/links 0755 root root -" ${D}${exec_prefix}/lib/tmpfiles.d/systemd.conf', d)} + fi + if ! ${@bb.utils.contains('PACKAGECONFIG', 'resolved', 'true', 'false', d)}; then + echo 'L! ${sysconfdir}/resolv.conf - - - - ../run/systemd/resolve/resolv.conf' >>${D}${exec_prefix}/lib/tmpfiles.d/etc.conf + echo 'd /run/systemd/resolve 0755 root root -' >>${D}${exec_prefix}/lib/tmpfiles.d/systemd.conf + echo 'f /run/systemd/resolve/resolv.conf 0644 root root' >>${D}${exec_prefix}/lib/tmpfiles.d/systemd.conf + ln -s ../run/systemd/resolve/resolv.conf ${D}${sysconfdir}/resolv-conf.systemd + else + sed -i -e "s%^L! /etc/resolv.conf.*$%L! /etc/resolv.conf - - - - ../run/systemd/resolve/resolv.conf%g" ${D}${exec_prefix}/lib/tmpfiles.d/etc.conf + ln -s ../run/systemd/resolve/resolv.conf ${D}${sysconfdir}/resolv-conf.systemd + fi + install -Dm 0755 ${S}/src/systemctl/systemd-sysv-install.SKELETON ${D}${systemd_unitdir}/systemd-sysv-install + + # If polkit is setup fixup permissions and ownership + if ${@bb.utils.contains('PACKAGECONFIG', 'polkit', 'true', 'false', d)}; then + if [ -d ${D}${datadir}/polkit-1/rules.d ]; then + chmod 700 ${D}${datadir}/polkit-1/rules.d + chown polkitd:root ${D}${datadir}/polkit-1/rules.d + fi + fi + + # create link for existing udev rules + ln -s ${base_bindir}/udevadm ${D}${base_sbindir}/udevadm + + # duplicate udevadm for postinst script + install -d ${D}${libexecdir} + ln ${D}${base_bindir}/udevadm ${D}${libexecdir}/${MLPREFIX}udevadm + + # install default policy for presets + # https://www.freedesktop.org/wiki/Software/systemd/Preset/#howto + install -Dm 0644 ${WORKDIR}/99-default.preset ${D}${systemd_unitdir}/system-preset/99-default.preset + + # We use package postinsts for the hwdb update, as the update service is + # easily triggered for no reason and will slow down boots. + find ${D} -name systemd-hwdb-update.service -delete +} + +python populate_packages_prepend (){ + systemdlibdir = d.getVar("rootlibdir") + do_split_packages(d, systemdlibdir, '^lib(.*)\.so\.*', 'lib%s', 'Systemd %s library', extra_depends='', allow_links=True) +} +PACKAGES_DYNAMIC += "^lib(udev|systemd|nss).*" + +PACKAGES =+ "\ + ${PN}-gui \ + ${PN}-vconsole-setup \ + ${PN}-initramfs \ + ${PN}-analyze \ + ${PN}-kernel-install \ + ${PN}-rpm-macros \ + ${PN}-binfmt \ + ${PN}-zsh-completion \ + ${PN}-container \ + ${PN}-journal-gatewayd \ + ${PN}-journal-upload \ + ${PN}-journal-remote \ + ${PN}-extra-utils \ +" + +SUMMARY_${PN}-container = "Tools for containers and VMs" +DESCRIPTION_${PN}-container = "Systemd tools to spawn and manage containers and virtual machines." + +SUMMARY_${PN}-journal-gatewayd = "HTTP server for journal events" +DESCRIPTION_${PN}-journal-gatewayd = "systemd-journal-gatewayd serves journal events over the network. Clients must connect using HTTP. The server listens on port 19531 by default." + +SUMMARY_${PN}-journal-upload = "Send journal messages over the network" +DESCRIPTION_${PN}-journal-upload = "systemd-journal-upload uploads journal entries to a specified URL." + +SUMMARY_${PN}-journal-remote = "Receive journal messages over the network" +DESCRIPTION_${PN}-journal-remote = "systemd-journal-remote is a command to receive serialized journal events and store them to journal files." + +SYSTEMD_PACKAGES = "${@bb.utils.contains('PACKAGECONFIG', 'binfmt', '${PN}-binfmt', '', d)} \ + ${@bb.utils.contains('PACKAGECONFIG', 'microhttpd', '${PN}-journal-gatewayd', '', d)} \ + ${@bb.utils.contains('PACKAGECONFIG', 'microhttpd', '${PN}-journal-remote', '', d)} \ + ${@bb.utils.contains('PACKAGECONFIG', 'journal-upload', '${PN}-journal-upload', '', d)} \ +" +SYSTEMD_SERVICE_${PN}-binfmt = "systemd-binfmt.service" + +USERADD_PACKAGES = "${PN} ${PN}-extra-utils \ + ${@bb.utils.contains('PACKAGECONFIG', 'microhttpd', '${PN}-journal-gateway', '', d)} \ + ${@bb.utils.contains('PACKAGECONFIG', 'microhttpd', '${PN}-journal-remote', '', d)} \ + ${@bb.utils.contains('PACKAGECONFIG', 'journal-upload', '${PN}-journal-upload', '', d)} \ +" +GROUPADD_PARAM_${PN} = "-r systemd-journal" +USERADD_PARAM_${PN} += "${@bb.utils.contains('PACKAGECONFIG', 'coredump', '--system -d / -M --shell /bin/nologin systemd-coredump;', '', d)}" +USERADD_PARAM_${PN} += "${@bb.utils.contains('PACKAGECONFIG', 'networkd', '--system -d / -M --shell /bin/nologin systemd-network;', '', d)}" +USERADD_PARAM_${PN} += "${@bb.utils.contains('PACKAGECONFIG', 'polkit', '--system --no-create-home --user-group --home-dir ${sysconfdir}/polkit-1 polkitd;', '', d)}" +USERADD_PARAM_${PN} += "${@bb.utils.contains('PACKAGECONFIG', 'resolved', '--system -d / -M --shell /bin/nologin systemd-resolve;', '', d)}" +USERADD_PARAM_${PN} += "${@bb.utils.contains('PACKAGECONFIG', 'timesyncd', '--system -d / -M --shell /bin/nologin systemd-timesync;', '', d)}" +USERADD_PARAM_${PN}-extra-utils = "--system -d / -M --shell /bin/nologin systemd-bus-proxy" +USERADD_PARAM_${PN}-journal-gateway = "--system -d / -M --shell /bin/nologin systemd-journal-gateway" +USERADD_PARAM_${PN}-journal-remote = "--system -d / -M --shell /bin/nologin systemd-journal-remote" +USERADD_PARAM_${PN}-journal-upload = "--system -d / -M --shell /bin/nologin systemd-journal-upload" + +FILES_${PN}-analyze = "${bindir}/systemd-analyze" + +FILES_${PN}-initramfs = "/init" +RDEPENDS_${PN}-initramfs = "${PN}" + +FILES_${PN}-gui = "${bindir}/systemadm" + +FILES_${PN}-vconsole-setup = "${rootlibexecdir}/systemd/systemd-vconsole-setup \ + ${systemd_unitdir}/system/systemd-vconsole-setup.service \ + ${systemd_unitdir}/system/sysinit.target.wants/systemd-vconsole-setup.service" + +RDEPENDS_${PN}-kernel-install += "bash" +FILES_${PN}-kernel-install = "${bindir}/kernel-install \ + ${sysconfdir}/kernel/ \ + ${exec_prefix}/lib/kernel \ + " +FILES_${PN}-rpm-macros = "${exec_prefix}/lib/rpm \ + " + +FILES_${PN}-zsh-completion = "${datadir}/zsh/site-functions" + +FILES_${PN}-binfmt = "${sysconfdir}/binfmt.d/ \ + ${exec_prefix}/lib/binfmt.d \ + ${rootlibexecdir}/systemd/systemd-binfmt \ + ${systemd_unitdir}/system/proc-sys-fs-binfmt_misc.* \ + ${systemd_unitdir}/system/systemd-binfmt.service" +RRECOMMENDS_${PN}-binfmt = "kernel-module-binfmt-misc" + +RRECOMMENDS_${PN}-vconsole-setup = "kbd kbd-consolefonts kbd-keymaps" + + +FILES_${PN}-journal-gatewayd = "${rootlibexecdir}/systemd/systemd-journal-gatewayd \ + ${systemd_system_unitdir}/systemd-journal-gatewayd.service \ + ${systemd_system_unitdir}/systemd-journal-gatewayd.socket \ + ${systemd_system_unitdir}/sockets.target.wants/systemd-journal-gatewayd.socket \ + ${datadir}/systemd/gatewayd/browse.html \ + " +SYSTEMD_SERVICE_${PN}-journal-gatewayd = "systemd-journal-gatewayd.socket" + +FILES_${PN}-journal-upload = "${rootlibexecdir}/systemd/systemd-journal-upload \ + ${systemd_system_unitdir}/systemd-journal-upload.service \ + ${sysconfdir}/systemd/journal-upload.conf \ + " +SYSTEMD_SERVICE_${PN}-journal-upload = "systemd-journal-upload.service" + +FILES_${PN}-journal-remote = "${rootlibexecdir}/systemd/systemd-journal-remote \ + ${sysconfdir}/systemd/journal-remote.conf \ + ${systemd_system_unitdir}/systemd-journal-remote.service \ + ${systemd_system_unitdir}/systemd-journal-remote.socket \ + " +SYSTEMD_SERVICE_${PN}-remote = "systemd-journal-remote.socket" + + +FILES_${PN}-container = "${sysconfdir}/dbus-1/system.d/org.freedesktop.import1.conf \ + ${sysconfdir}/dbus-1/system.d/org.freedesktop.machine1.conf \ + ${sysconfdir}/systemd/system/multi-user.target.wants/machines.target \ + ${base_bindir}/machinectl \ + ${bindir}/systemd-nspawn \ + ${nonarch_libdir}/systemd/import-pubring.gpg \ + ${systemd_system_unitdir}/busnames.target.wants/org.freedesktop.import1.busname \ + ${systemd_system_unitdir}/busnames.target.wants/org.freedesktop.machine1.busname \ + ${systemd_system_unitdir}/local-fs.target.wants/var-lib-machines.mount \ + ${systemd_system_unitdir}/machines.target.wants/var-lib-machines.mount \ + ${systemd_system_unitdir}/remote-fs.target.wants/var-lib-machines.mount \ + ${systemd_system_unitdir}/machine.slice \ + ${systemd_system_unitdir}/machines.target \ + ${systemd_system_unitdir}/org.freedesktop.import1.busname \ + ${systemd_system_unitdir}/org.freedesktop.machine1.busname \ + ${systemd_system_unitdir}/systemd-importd.service \ + ${systemd_system_unitdir}/systemd-machined.service \ + ${systemd_system_unitdir}/dbus-org.freedesktop.machine1.service \ + ${systemd_system_unitdir}/var-lib-machines.mount \ + ${rootlibexecdir}/systemd/systemd-import \ + ${rootlibexecdir}/systemd/systemd-importd \ + ${rootlibexecdir}/systemd/systemd-machined \ + ${rootlibexecdir}/systemd/systemd-pull \ + ${exec_prefix}/lib/tmpfiles.d/systemd-nspawn.conf \ + ${systemd_system_unitdir}/systemd-nspawn@.service \ + ${libdir}/libnss_mymachines.so.2 \ + ${datadir}/dbus-1/system-services/org.freedesktop.import1.service \ + ${datadir}/dbus-1/system-services/org.freedesktop.machine1.service \ + ${datadir}/dbus-1/system.d/org.freedesktop.import1.conf \ + ${datadir}/dbus-1/system.d/org.freedesktop.machine1.conf \ + ${datadir}/polkit-1/actions/org.freedesktop.import1.policy \ + ${datadir}/polkit-1/actions/org.freedesktop.machine1.policy \ + " + +RRECOMMENDS_${PN}-container += "\ + ${PN}-journal-upload \ + ${PN}-journal-remote \ + ${PN}-journal-gatewayd \ + " + +FILES_${PN}-extra-utils = "\ + ${base_bindir}/systemd-escape \ + ${base_bindir}/systemd-inhibit \ + ${bindir}/systemd-detect-virt \ + ${bindir}/systemd-path \ + ${bindir}/systemd-run \ + ${bindir}/systemd-cat \ + ${bindir}/systemd-delta \ + ${bindir}/systemd-cgls \ + ${bindir}/systemd-cgtop \ + ${bindir}/systemd-stdio-bridge \ + ${base_bindir}/systemd-ask-password \ + ${base_bindir}/systemd-tty-ask-password-agent \ + ${systemd_unitdir}/system/systemd-ask-password-console.path \ + ${systemd_unitdir}/system/systemd-ask-password-console.service \ + ${systemd_unitdir}/system/systemd-ask-password-wall.path \ + ${systemd_unitdir}/system/systemd-ask-password-wall.service \ + ${systemd_unitdir}/system/sysinit.target.wants/systemd-ask-password-console.path \ + ${systemd_unitdir}/system/sysinit.target.wants/systemd-ask-password-wall.path \ + ${systemd_unitdir}/system/multi-user.target.wants/systemd-ask-password-wall.path \ + ${rootlibexecdir}/systemd/systemd-resolve-host \ + ${rootlibexecdir}/systemd/systemd-ac-power \ + ${rootlibexecdir}/systemd/systemd-activate \ + ${rootlibexecdir}/systemd/systemd-bus-proxyd \ + ${systemd_unitdir}/system/systemd-bus-proxyd.service \ + ${systemd_unitdir}/system/systemd-bus-proxyd.socket \ + ${rootlibexecdir}/systemd/systemd-socket-proxyd \ + ${rootlibexecdir}/systemd/systemd-reply-password \ + ${rootlibexecdir}/systemd/systemd-sleep \ + ${rootlibexecdir}/systemd/system-sleep \ + ${systemd_unitdir}/system/systemd-hibernate.service \ + ${systemd_unitdir}/system/systemd-hybrid-sleep.service \ + ${systemd_unitdir}/system/systemd-suspend.service \ + ${systemd_unitdir}/system/sleep.target \ + ${rootlibexecdir}/systemd/systemd-initctl \ + ${systemd_unitdir}/system/systemd-initctl.service \ + ${systemd_unitdir}/system/systemd-initctl.socket \ + ${systemd_unitdir}/system/sockets.target.wants/systemd-initctl.socket \ + ${rootlibexecdir}/systemd/system-generators/systemd-gpt-auto-generator \ + ${rootlibexecdir}/systemd/systemd-cgroups-agent \ +" + +CONFFILES_${PN} = "${sysconfdir}/systemd/coredump.conf \ + ${sysconfdir}/systemd/journald.conf \ + ${sysconfdir}/systemd/logind.conf \ + ${sysconfdir}/systemd/system.conf \ + ${sysconfdir}/systemd/user.conf \ + ${sysconfdir}/systemd/resolved.conf \ + ${sysconfdir}/systemd/timesyncd.conf \ +" + +FILES_${PN} = " ${base_bindir}/* \ + ${base_sbindir}/shutdown \ + ${base_sbindir}/halt \ + ${base_sbindir}/poweroff \ + ${base_sbindir}/runlevel \ + ${base_sbindir}/telinit \ + ${base_sbindir}/resolvconf \ + ${base_sbindir}/reboot \ + ${base_sbindir}/init \ + ${datadir}/dbus-1/services \ + ${datadir}/dbus-1/system-services \ + ${datadir}/polkit-1 \ + ${datadir}/${BPN} \ + ${datadir}/factory \ + ${sysconfdir}/dbus-1/ \ + ${sysconfdir}/modules-load.d/ \ + ${sysconfdir}/pam.d/ \ + ${sysconfdir}/sysctl.d/ \ + ${sysconfdir}/systemd/ \ + ${sysconfdir}/tmpfiles.d/ \ + ${sysconfdir}/xdg/ \ + ${sysconfdir}/init.d/README \ + ${sysconfdir}/resolv-conf.systemd \ + ${sysconfdir}/X11/xinit/xinitrc.d/* \ + ${rootlibexecdir}/systemd/* \ + ${systemd_unitdir}/* \ + ${base_libdir}/security/*.so \ + /cgroup \ + ${bindir}/systemd* \ + ${bindir}/busctl \ + ${bindir}/coredumpctl \ + ${bindir}/localectl \ + ${bindir}/hostnamectl \ + ${bindir}/resolvectl \ + ${bindir}/timedatectl \ + ${bindir}/bootctl \ + ${bindir}/kernel-install \ + ${exec_prefix}/lib/tmpfiles.d/*.conf \ + ${exec_prefix}/lib/systemd \ + ${exec_prefix}/lib/modules-load.d \ + ${exec_prefix}/lib/sysctl.d \ + ${exec_prefix}/lib/sysusers.d \ + ${exec_prefix}/lib/environment.d \ + ${localstatedir} \ + ${nonarch_base_libdir}/udev/rules.d/70-uaccess.rules \ + ${nonarch_base_libdir}/udev/rules.d/71-seat.rules \ + ${nonarch_base_libdir}/udev/rules.d/73-seat-late.rules \ + ${nonarch_base_libdir}/udev/rules.d/99-systemd.rules \ + ${nonarch_base_libdir}/modprobe.d/systemd.conf \ + ${datadir}/dbus-1/system.d/org.freedesktop.timedate1.conf \ + ${datadir}/dbus-1/system.d/org.freedesktop.locale1.conf \ + ${datadir}/dbus-1/system.d/org.freedesktop.network1.conf \ + ${datadir}/dbus-1/system.d/org.freedesktop.resolve1.conf \ + ${datadir}/dbus-1/system.d/org.freedesktop.systemd1.conf \ + ${datadir}/dbus-1/system.d/org.freedesktop.hostname1.conf \ + ${datadir}/dbus-1/system.d/org.freedesktop.login1.conf \ + ${datadir}/dbus-1/system.d/org.freedesktop.timesync1.conf \ + ${datadir}/dbus-1/system.d/org.freedesktop.portable1.conf \ + " + +FILES_${PN}-dev += "${base_libdir}/security/*.la ${datadir}/dbus-1/interfaces/ ${sysconfdir}/rpm/macros.systemd" + +RDEPENDS_${PN} += "kmod dbus util-linux-mount util-linux-umount udev (= ${EXTENDPKGV}) util-linux-agetty util-linux-fsck" +RDEPENDS_${PN} += "${@bb.utils.contains('PACKAGECONFIG', 'serial-getty-generator', '', 'systemd-serialgetty', d)}" +RDEPENDS_${PN} += "volatile-binds update-rc.d" + +RRECOMMENDS_${PN} += "systemd-extra-utils \ + systemd-compat-units udev-hwdb \ + e2fsprogs-e2fsck \ + kernel-module-autofs4 kernel-module-unix kernel-module-ipv6 \ + os-release \ + systemd-conf \ +" + +INSANE_SKIP_${PN} += "dev-so libdir" +INSANE_SKIP_${PN}-dbg += "libdir" +INSANE_SKIP_${PN}-doc += " libdir" + +PACKAGES =+ "udev udev-hwdb" + +RPROVIDES_udev = "hotplug" + +RDEPENDS_udev-hwdb += "udev" + +FILES_udev += "${base_sbindir}/udevd \ + ${rootlibexecdir}/systemd/network/99-default.link \ + ${rootlibexecdir}/systemd/systemd-udevd \ + ${rootlibexecdir}/udev/accelerometer \ + ${rootlibexecdir}/udev/ata_id \ + ${rootlibexecdir}/udev/cdrom_id \ + ${rootlibexecdir}/udev/collect \ + ${rootlibexecdir}/udev/findkeyboards \ + ${rootlibexecdir}/udev/keyboard-force-release.sh \ + ${rootlibexecdir}/udev/keymap \ + ${rootlibexecdir}/udev/mtd_probe \ + ${rootlibexecdir}/udev/scsi_id \ + ${rootlibexecdir}/udev/v4l_id \ + ${rootlibexecdir}/udev/keymaps \ + ${rootlibexecdir}/udev/rules.d/*.rules \ + ${sysconfdir}/udev \ + ${sysconfdir}/init.d/systemd-udevd \ + ${systemd_unitdir}/system/*udev* \ + ${systemd_unitdir}/system/*.wants/*udev* \ + ${base_bindir}/udevadm \ + ${base_sbindir}/udevadm \ + ${libexecdir}/${MLPREFIX}udevadm \ + ${datadir}/bash-completion/completions/udevadm \ + " + +FILES_udev-hwdb = "${rootlibexecdir}/udev/hwdb.d" + +RCONFLICTS_${PN} = "tiny-init ${@bb.utils.contains('PACKAGECONFIG', 'resolved', 'resolvconf', '', d)}" + +INITSCRIPT_PACKAGES = "udev" +INITSCRIPT_NAME_udev = "systemd-udevd" +INITSCRIPT_PARAMS_udev = "start 03 S ." + +python __anonymous() { + if not bb.utils.contains('DISTRO_FEATURES', 'sysvinit', True, False, d): + d.setVar("INHIBIT_UPDATERCD_BBCLASS", "1") +} + +python do_warn_musl() { + if d.getVar('TCLIBC') == "musl": + bb.warn("Using systemd with musl is not recommended since it is not supported upstream and some patches are known to be problematic.") +} +addtask warn_musl before do_configure + +ALTERNATIVE_${PN} = "halt reboot shutdown poweroff runlevel ${@bb.utils.contains('PACKAGECONFIG', 'resolved', 'resolv-conf', '', d)}" + +ALTERNATIVE_TARGET[resolv-conf] = "${sysconfdir}/resolv-conf.systemd" +ALTERNATIVE_LINK_NAME[resolv-conf] = "${sysconfdir}/resolv.conf" +ALTERNATIVE_PRIORITY[resolv-conf] ?= "50" + +ALTERNATIVE_TARGET[halt] = "${base_bindir}/systemctl" +ALTERNATIVE_LINK_NAME[halt] = "${base_sbindir}/halt" +ALTERNATIVE_PRIORITY[halt] ?= "300" + +ALTERNATIVE_TARGET[reboot] = "${base_bindir}/systemctl" +ALTERNATIVE_LINK_NAME[reboot] = "${base_sbindir}/reboot" +ALTERNATIVE_PRIORITY[reboot] ?= "300" + +ALTERNATIVE_TARGET[shutdown] = "${base_bindir}/systemctl" +ALTERNATIVE_LINK_NAME[shutdown] = "${base_sbindir}/shutdown" +ALTERNATIVE_PRIORITY[shutdown] ?= "300" + +ALTERNATIVE_TARGET[poweroff] = "${base_bindir}/systemctl" +ALTERNATIVE_LINK_NAME[poweroff] = "${base_sbindir}/poweroff" +ALTERNATIVE_PRIORITY[poweroff] ?= "300" + +ALTERNATIVE_TARGET[runlevel] = "${base_bindir}/systemctl" +ALTERNATIVE_LINK_NAME[runlevel] = "${base_sbindir}/runlevel" +ALTERNATIVE_PRIORITY[runlevel] ?= "300" + +pkg_postinst_${PN}_libc-glibc () { + sed -e '/^hosts:/s/\s*\//' \ + -e 's/\(^hosts:.*\)\(\\)\(.*\)\(\\)\(.*\)/\1\2 myhostname \3\4\5/' \ + -i $D${sysconfdir}/nsswitch.conf +} + +pkg_prerm_${PN}_libc-glibc () { + sed -e '/^hosts:/s/\s*\//' \ + -e '/^hosts:/s/\s*myhostname//' \ + -i $D${sysconfdir}/nsswitch.conf +} + +PACKAGE_WRITE_DEPS += "qemu-native" +pkg_postinst_udev-hwdb () { + if test -n "$D"; then + $INTERCEPT_DIR/postinst_intercept update_udev_hwdb ${PKG} mlprefix=${MLPREFIX} binprefix=${MLPREFIX} + else + udevadm hwdb --update + fi +} + +pkg_prerm_udev-hwdb () { + rm -f $D${sysconfdir}/udev/hwdb.bin +} diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-core/sysvinit/sysvinit/0001-include-sys-sysmacros.h-for-major-minor-defines-in-g.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-core/sysvinit/sysvinit/0001-include-sys-sysmacros.h-for-major-minor-defines-in-g.patch index 2575b59b..e13ac9d0 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-core/sysvinit/sysvinit/0001-include-sys-sysmacros.h-for-major-minor-defines-in-g.patch +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-core/sysvinit/sysvinit/0001-include-sys-sysmacros.h-for-major-minor-defines-in-g.patch @@ -1,71 +1,50 @@ -From 29c7a529d3bb0c1e20239f885e74c5036f1a908c Mon Sep 17 00:00:00 2001 +From 3c29a86f351ea4827dc445bb8e6cb774543c9be6 Mon Sep 17 00:00:00 2001 From: Khem Raj Date: Mon, 6 Aug 2018 15:38:58 -0700 -Subject: [PATCH] include sys/sysmacros.h for major/minor defines in glibc +Subject: [PATCH] include sys/sysmacros.h for major/minor definitions Signed-off-by: Khem Raj Upstream-Status: Pending + --- - src/bootlogd.c | 3 +++ - src/bootlogd.o | Bin 58448 -> 60376 bytes - src/dowall.c | 3 +++ - src/shutdown.c | 4 +++- - 4 files changed, 9 insertions(+), 1 deletion(-) + src/bootlogd.c | 1 + + src/mountpoint.c | 1 + + src/shutdown.c | 1 + + 3 files changed, 3 insertions(+) -Index: sysvinit-2.88dsf/src/bootlogd.c -=================================================================== ---- sysvinit-2.88dsf.orig/src/bootlogd.c -+++ sysvinit-2.88dsf/src/bootlogd.c -@@ -53,6 +53,9 @@ - #ifdef __linux__ - #include - #endif -+#ifdef __GLIBC__ -+#include -+#endif - - char *Version = "@(#) bootlogd 2.86 03-Jun-2004 miquels@cistron.nl"; - -Index: sysvinit-2.88dsf/src/dowall.c -=================================================================== ---- sysvinit-2.88dsf.orig/src/dowall.c -+++ sysvinit-2.88dsf/src/dowall.c -@@ -37,6 +37,9 @@ - #include - #include - #include -+#ifdef __GLIBC__ +diff --git a/src/bootlogd.c b/src/bootlogd.c +index 570d382..68d62f3 100644 +--- a/src/bootlogd.c ++++ b/src/bootlogd.c +@@ -35,6 +35,7 @@ + #include + #include + #include +#include -+#endif + #include + #include + #include +diff --git a/src/mountpoint.c b/src/mountpoint.c +index 9e3dd9c..91f74ed 100644 +--- a/src/mountpoint.c ++++ b/src/mountpoint.c +@@ -25,6 +25,7 @@ - #ifndef _PATH_DEV - # define _PATH_DEV "/dev/" -Index: sysvinit-2.88dsf/src/shutdown.c -=================================================================== ---- sysvinit-2.88dsf.orig/src/shutdown.c -+++ sysvinit-2.88dsf/src/shutdown.c -@@ -57,7 +57,9 @@ - #include "reboot.h" - #include "initreq.h" - #include "init.h" -- -+#ifdef __GLIBC__ + #include + #include +#include -+#endif - - char *Version = "@(#) shutdown 2.86-1 31-Jul-2004 miquels@cistron.nl"; - -Index: sysvinit-2.88dsf/src/mountpoint.c -=================================================================== ---- sysvinit-2.88dsf.orig/src/mountpoint.c -+++ sysvinit-2.88dsf/src/mountpoint.c -@@ -32,6 +32,9 @@ - #include - #include - #include -+#ifdef __GLIBC__ + #include + #include + #include +diff --git a/src/shutdown.c b/src/shutdown.c +index 7e997da..17de58d 100644 +--- a/src/shutdown.c ++++ b/src/shutdown.c +@@ -40,6 +40,7 @@ + #endif + #include + #include +#include -+#endif - - int dostat(char *path, struct stat *st, int do_lstat, int quiet) - { + #include + #include + #include diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-core/sysvinit/sysvinit_2.88dsf.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-core/sysvinit/sysvinit_2.88dsf.bb index bfc1283f..8fd6df9d 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-core/sysvinit/sysvinit_2.88dsf.bb +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-core/sysvinit/sysvinit_2.88dsf.bb @@ -29,7 +29,7 @@ SRC_URI[sha256sum] = "60bbc8c1e1792056e23761d22960b30bb13eccc2cabff8c7310a01f4d5 S = "${WORKDIR}/sysvinit-${PV}" B = "${S}/src" -inherit update-alternatives distro_features_check +inherit update-alternatives features_check DEPENDS_append = " update-rc.d-native base-passwd virtual/crypt" REQUIRED_DISTRO_FEATURES = "sysvinit" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-core/udev/eudev_3.2.7.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-core/udev/eudev_3.2.7.bb deleted file mode 100644 index 1bea4ebd..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-core/udev/eudev_3.2.7.bb +++ /dev/null @@ -1,96 +0,0 @@ -SUMMARY = "eudev is a fork of systemd's udev" -HOMEPAGE = "https://wiki.gentoo.org/wiki/Eudev" -LICENSE = "GPLv2.0+ & LGPL-2.1+" -LICENSE_libudev = "LGPL-2.1+" -LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe" - -DEPENDS = "glib-2.0 glib-2.0-native gperf-native kmod libxslt-native util-linux" - -PROVIDES = "udev" - -SRC_URI = "http://dev.gentoo.org/~blueness/${BPN}/${BP}.tar.gz \ - file://0014-Revert-rules-remove-firmware-loading-rules.patch \ - file://Revert-udev-remove-userspace-firmware-loading-suppor.patch \ - file://devfs-udev.rules \ - file://init \ - file://links.conf \ - file://local.rules \ - file://permissions.rules \ - file://run.rules \ - file://udev.rules \ -" - -SRC_URI[md5sum] = "c75d99910c1791dd9430d26ab76059c0" -SRC_URI[sha256sum] = "3004614bd253c1f98558460215027aaf60d7592c70be27fd384ec01db87bf062" - -inherit autotools update-rc.d qemu pkgconfig distro_features_check - -CONFLICT_DISTRO_FEATURES = "systemd" - -EXTRA_OECONF = " \ - --sbindir=${base_sbindir} \ - --with-rootlibdir=${base_libdir} \ - --with-rootlibexecdir=${nonarch_base_libdir}/udev \ - --with-rootprefix= \ -" - -PACKAGECONFIG ??= "hwdb" -PACKAGECONFIG[hwdb] = "--enable-hwdb,--disable-hwdb" - -do_install_append() { - install -d ${D}${sysconfdir}/init.d - install -m 0755 ${WORKDIR}/init ${D}${sysconfdir}/init.d/udev - sed -i s%@UDEVD@%${base_sbindir}/udevd% ${D}${sysconfdir}/init.d/udev - - install -d ${D}${sysconfdir}/udev/rules.d - install -m 0644 ${WORKDIR}/local.rules ${D}${sysconfdir}/udev/rules.d/local.rules - - # Use classic network interface naming scheme - touch ${D}${sysconfdir}/udev/rules.d/80-net-name-slot.rules - - # hid2hci has moved to bluez4. removed in udev as of version 169 - rm -f ${D}${base_libdir}/udev/hid2hci - - # duplicate udevadm for postinst script - install -d ${D}${libexecdir} - ln ${D}${bindir}/udevadm ${D}${libexecdir}/${MLPREFIX}udevadm -} - -do_install_prepend_class-target () { - # Remove references to buildmachine - sed -i -e 's:${RECIPE_SYSROOT_NATIVE}::g' \ - ${B}/src/udev/keyboard-keys-from-name.h -} - -INITSCRIPT_NAME = "udev" -INITSCRIPT_PARAMS = "start 04 S ." - -PACKAGES =+ "libudev" -PACKAGES =+ "eudev-hwdb" - - -FILES_${PN} += "${libexecdir} ${nonarch_base_libdir}/udev ${bindir}/udevadm" -FILES_${PN}-dev = "${datadir}/pkgconfig/udev.pc \ - ${includedir}/libudev.h ${libdir}/libudev.so \ - ${includedir}/udev.h ${libdir}/libudev.la \ - ${libdir}/libudev.a ${libdir}/pkgconfig/libudev.pc" -FILES_libudev = "${base_libdir}/libudev.so.*" -FILES_eudev-hwdb = "${sysconfdir}/udev/hwdb.d" - -RDEPENDS_eudev-hwdb += "eudev" - -RPROVIDES_${PN} = "hotplug udev" -RPROVIDES_eudev-hwdb += "udev-hwdb" - -PACKAGE_WRITE_DEPS += "qemu-native" -pkg_postinst_eudev-hwdb () { - if test -n "$D"; then - $INTERCEPT_DIR/postinst_intercept update_udev_hwdb ${PKG} mlprefix=${MLPREFIX} binprefix=${MLPREFIX} - else - udevadm hwdb --update - fi -} - -pkg_prerm_eudev-hwdb () { - rm -f $D${sysconfdir}/udev/hwdb.bin -} diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-core/udev/eudev_3.2.8.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-core/udev/eudev_3.2.8.bb new file mode 100644 index 00000000..08729e14 --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-core/udev/eudev_3.2.8.bb @@ -0,0 +1,96 @@ +SUMMARY = "eudev is a fork of systemd's udev" +HOMEPAGE = "https://wiki.gentoo.org/wiki/Eudev" +LICENSE = "GPLv2.0+ & LGPL-2.1+" +LICENSE_libudev = "LGPL-2.1+" +LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe" + +DEPENDS = "glib-2.0 glib-2.0-native gperf-native kmod libxslt-native util-linux" + +PROVIDES = "udev" + +SRC_URI = "http://dev.gentoo.org/~blueness/${BPN}/${BP}.tar.gz \ + file://0014-Revert-rules-remove-firmware-loading-rules.patch \ + file://Revert-udev-remove-userspace-firmware-loading-suppor.patch \ + file://devfs-udev.rules \ + file://init \ + file://links.conf \ + file://local.rules \ + file://permissions.rules \ + file://run.rules \ + file://udev.rules \ +" + +SRC_URI[md5sum] = "ce166b3fdd910c2a4a840378f48fedaf" +SRC_URI[sha256sum] = "61e4948e9e51271c3cce2bb5311a30b206dd03ef011062e6c627fb007e43f6b8" + +inherit autotools update-rc.d qemu pkgconfig features_check + +CONFLICT_DISTRO_FEATURES = "systemd" + +EXTRA_OECONF = " \ + --sbindir=${base_sbindir} \ + --with-rootlibdir=${base_libdir} \ + --with-rootlibexecdir=${nonarch_base_libdir}/udev \ + --with-rootprefix= \ +" + +PACKAGECONFIG ??= "hwdb" +PACKAGECONFIG[hwdb] = "--enable-hwdb,--disable-hwdb" + +do_install_append() { + install -d ${D}${sysconfdir}/init.d + install -m 0755 ${WORKDIR}/init ${D}${sysconfdir}/init.d/udev + sed -i s%@UDEVD@%${base_sbindir}/udevd% ${D}${sysconfdir}/init.d/udev + + install -d ${D}${sysconfdir}/udev/rules.d + install -m 0644 ${WORKDIR}/local.rules ${D}${sysconfdir}/udev/rules.d/local.rules + + # Use classic network interface naming scheme + touch ${D}${sysconfdir}/udev/rules.d/80-net-name-slot.rules + + # hid2hci has moved to bluez4. removed in udev as of version 169 + rm -f ${D}${base_libdir}/udev/hid2hci + + # duplicate udevadm for postinst script + install -d ${D}${libexecdir} + ln ${D}${bindir}/udevadm ${D}${libexecdir}/${MLPREFIX}udevadm +} + +do_install_prepend_class-target () { + # Remove references to buildmachine + sed -i -e 's:${RECIPE_SYSROOT_NATIVE}::g' \ + ${B}/src/udev/keyboard-keys-from-name.h +} + +INITSCRIPT_NAME = "udev" +INITSCRIPT_PARAMS = "start 04 S ." + +PACKAGES =+ "libudev" +PACKAGES =+ "eudev-hwdb" + + +FILES_${PN} += "${libexecdir} ${nonarch_base_libdir}/udev ${bindir}/udevadm" +FILES_${PN}-dev = "${datadir}/pkgconfig/udev.pc \ + ${includedir}/libudev.h ${libdir}/libudev.so \ + ${includedir}/udev.h ${libdir}/libudev.la \ + ${libdir}/libudev.a ${libdir}/pkgconfig/libudev.pc" +FILES_libudev = "${base_libdir}/libudev.so.*" +FILES_eudev-hwdb = "${sysconfdir}/udev/hwdb.d" + +RDEPENDS_eudev-hwdb += "eudev" + +RPROVIDES_${PN} = "hotplug udev" +RPROVIDES_eudev-hwdb += "udev-hwdb" + +PACKAGE_WRITE_DEPS += "qemu-native" +pkg_postinst_eudev-hwdb () { + if test -n "$D"; then + $INTERCEPT_DIR/postinst_intercept update_udev_hwdb ${PKG} mlprefix=${MLPREFIX} binprefix=${MLPREFIX} + else + udevadm hwdb --update + fi +} + +pkg_prerm_eudev-hwdb () { + rm -f $D${sysconfdir}/udev/hwdb.bin +} diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-core/udev/udev-extraconf/mount.sh b/Contrib-Inspur/openbmc/poky/meta/recipes-core/udev/udev-extraconf/mount.sh index 3ee67b13..b2373187 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-core/udev/udev-extraconf/mount.sh +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-core/udev/udev-extraconf/mount.sh @@ -38,6 +38,12 @@ done automount_systemd() { name="`basename "$DEVNAME"`" + # Skip already mounted partitions + if [ -f /run/systemd/transient/run-media-$name.mount ]; then + logger "mount.sh/automount" "/run/media/$name already mounted" + return + fi + # Skip the partition which are already in /etc/fstab grep "^[[:space:]]*$DEVNAME" /etc/fstab && return for n in LABEL PARTLABEL UUID PARTUUID; do @@ -57,6 +63,8 @@ automount_systemd() { vfat|fat) MOUNT="$MOUNT -o umask=007,gid=`awk -F':' '/^disk/{print $3}' /etc/group`" ;; + swap) + return ;; # TODO *) ;; @@ -98,6 +106,8 @@ automount() { vfat|fat) MOUNT="$MOUNT -o umask=007,gid=`awk -F':' '/^disk/{print $3}' /etc/group`" ;; + swap) + return ;; # TODO *) ;; diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-core/util-linux/util-linux.inc b/Contrib-Inspur/openbmc/poky/meta/recipes-core/util-linux/util-linux.inc index 84c70127..1fa82363 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-core/util-linux/util-linux.inc +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-core/util-linux/util-linux.inc @@ -190,20 +190,19 @@ do_install () { echo 'MOUNTALL="-t nonfs,nosmbfs,noncpfs"' > ${D}${sysconfdir}/default/mountall rm -f ${D}${bindir}/chkdupexe +} - if [ "${@bb.utils.filter('DISTRO_FEATURES', 'pam', d)}" ]; then +do_install_append_class-target () { + if [ "${@bb.utils.filter('PACKAGECONFIG', 'pam', d)}" ]; then install -d ${D}${sysconfdir}/pam.d install -m 0644 ${WORKDIR}/runuser.pamd ${D}${sysconfdir}/pam.d/runuser install -m 0644 ${WORKDIR}/runuser-l.pamd ${D}${sysconfdir}/pam.d/runuser-l - fi - if [ "${@bb.utils.filter('PACKAGECONFIG', 'pam', d)}" ]; then # Required for "su -" aka "su --login" because # otherwise it uses "other", which has "auth pam_deny.so" # and thus prevents the operation. ln -s su ${D}${sysconfdir}/pam.d/su-l fi } - # nologin causes a conflict with shadow-native # kill causes a conflict with coreutils-native (if ${bindir}==${base_bindir}) do_install_append_class-native () { diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-core/util-linux/util-linux/0001-lsblk-force-to-print-PKNAME-for-partition.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-core/util-linux/util-linux/0001-lsblk-force-to-print-PKNAME-for-partition.patch new file mode 100644 index 00000000..5d4c148f --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-core/util-linux/util-linux/0001-lsblk-force-to-print-PKNAME-for-partition.patch @@ -0,0 +1,36 @@ +From e3bb9bfb76c17b1d05814436ced62c05c4011f48 Mon Sep 17 00:00:00 2001 +From: Karel Zak +Date: Thu, 27 Jun 2019 09:22:18 +0200 +Subject: [PATCH] lsblk: force to print PKNAME for partition + +PKNAME (parent kernel device name) is based on printed tree according +to parent -> child relationship. The tree is optional and not printed +if partition specified (.e.g "lsblk -o+PKNAME /dev/sda1"), but old +versions print the PKNAME also in this case. + +Upstream-Status: Backport [https://github.com/karelzak/util-linux/commit/e3bb9bfb76c17b1d05814436ced62c05c4011f48] + +Addresses: https://github.com/karelzak/util-linux/issues/813 +Signed-off-by: Karel Zak +Signed-off-by: Liwei Song +--- + misc-utils/lsblk.c | 3 +++ + 1 file changed, 3 insertions(+) + +diff --git a/misc-utils/lsblk.c b/misc-utils/lsblk.c +index e95af7af0256..3ce6da730264 100644 +--- a/misc-utils/lsblk.c ++++ b/misc-utils/lsblk.c +@@ -1019,6 +1019,9 @@ static void device_to_scols( + DBG(DEV, ul_debugobj(dev, "add '%s' to scols", dev->name)); + ON_DBG(DEV, if (ul_path_isopen_dirfd(dev->sysfs)) ul_debugobj(dev, " %s ---> is open!", dev->name)); + ++ if (!parent && dev->wholedisk) ++ parent = dev->wholedisk; ++ + /* Do not print device more than one in --list mode */ + if (!(lsblk->flags & LSBLK_TREE) && dev->is_printed) + return; +-- +2.17.1 + diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-core/util-linux/util-linux/check-for-_HAVE_STRUCT_TERMIOS_C_OSPEED.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-core/util-linux/util-linux/check-for-_HAVE_STRUCT_TERMIOS_C_OSPEED.patch deleted file mode 100644 index c92c276a..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-core/util-linux/util-linux/check-for-_HAVE_STRUCT_TERMIOS_C_OSPEED.patch +++ /dev/null @@ -1,16 +0,0 @@ -Checking for exitence of the define is not enough since -it will be defined with 0 or 1 value - -Upstream-Status: Pending -Signed-off-by: Khem Raj ---- a/sys-utils/ldattach.c -+++ b/sys-utils/ldattach.c -@@ -242,7 +242,7 @@ static int my_cfsetspeed(struct termios - * -- we have to bypass glibc and set the speed manually (because glibc - * checks for speed and supports Bxxx bit rates only)... - */ --#ifdef _HAVE_STRUCT_TERMIOS_C_ISPEED -+#if _HAVE_STRUCT_TERMIOS_C_ISPEED - # define BOTHER 0010000 /* non standard rate */ - dbg("using non-standard speeds"); - ts->c_ospeed = ts->c_ispeed = speed; diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-core/util-linux/util-linux_2.33.2.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-core/util-linux/util-linux_2.33.2.bb deleted file mode 100644 index 538e2761..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-core/util-linux/util-linux_2.33.2.bb +++ /dev/null @@ -1,13 +0,0 @@ -require util-linux.inc - -SRC_URI += "file://configure-sbindir.patch \ - file://runuser.pamd \ - file://runuser-l.pamd \ - file://ptest.patch \ - file://run-ptest \ - file://display_testname_for_subtest.patch \ - file://avoid_parallel_tests.patch \ - file://check-for-_HAVE_STRUCT_TERMIOS_C_OSPEED.patch \ -" -SRC_URI[md5sum] = "91653b90fcbe9c161153e39b8cc69fb5" -SRC_URI[sha256sum] = "631be8eac6cf6230ba478de211941d526808dba3cd436380793334496013ce97" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-core/util-linux/util-linux_2.34.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-core/util-linux/util-linux_2.34.bb new file mode 100644 index 00000000..e9c2d80e --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-core/util-linux/util-linux_2.34.bb @@ -0,0 +1,13 @@ +require util-linux.inc + +SRC_URI += "file://configure-sbindir.patch \ + file://runuser.pamd \ + file://runuser-l.pamd \ + file://ptest.patch \ + file://run-ptest \ + file://display_testname_for_subtest.patch \ + file://avoid_parallel_tests.patch \ + file://0001-lsblk-force-to-print-PKNAME-for-partition.patch \ +" +SRC_URI[md5sum] = "a78cbeaed9c39094b96a48ba8f891d50" +SRC_URI[sha256sum] = "743f9d0c7252b6db246b659c1e1ce0bd45d8d4508b4dfa427bbb4a3e9b9f62b5" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-core/volatile-binds/volatile-binds.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-core/volatile-binds/volatile-binds.bb index d861a71a..b273293e 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-core/volatile-binds/volatile-binds.bb +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-core/volatile-binds/volatile-binds.bb @@ -11,7 +11,7 @@ SRC_URI = "\ S = "${WORKDIR}" -inherit allarch systemd distro_features_check +inherit allarch systemd features_check REQUIRED_DISTRO_FEATURES = "systemd" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/apt/apt-native_1.2.24.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/apt/apt-native_1.2.31.bb similarity index 100% rename from Contrib-Inspur/openbmc/poky/meta/recipes-devtools/apt/apt-native_1.2.24.bb rename to Contrib-Inspur/openbmc/poky/meta/recipes-devtools/apt/apt-native_1.2.31.bb diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/apt/apt-package.inc b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/apt/apt-package.inc index da91451d..922f739d 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/apt/apt-package.inc +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/apt/apt-package.inc @@ -35,6 +35,7 @@ FILES_${PN} = "${bindir}/apt-cdrom ${bindir}/apt-get \ ${libdir}/dpkg \ ${systemd_unitdir}/system \ " +RDEPENDS_${PN} += "perl" FILES_${PN}-utils = "${bindir}/apt-sortpkgs ${bindir}/apt-extracttemplates" FILES_${PN}-doc = "${@get_files_apt_doc(d, bb, d.getVar('apt-manpages'))} \ ${docdir}/apt" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/apt/apt.inc b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/apt/apt.inc index 842c3024..50c4d848 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/apt/apt.inc +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/apt/apt.inc @@ -1,4 +1,7 @@ SUMMARY = "Advanced front-end for dpkg" +DESCRIPTION = "Provides command-line tools for searching and managing as well \ +as querying information about packages as a low-level access to all features \ +of the libapt-pkg library." LICENSE = "GPLv2.0+" SECTION = "base" @@ -15,8 +18,8 @@ SRC_URI = "https://launchpad.net/ubuntu/+archive/primary/+sourcefiles/${BPN}/${P file://0001-apt-1.2.12-Fix-musl-build.patch \ file://0001-Include-array.h-for-std-array.patch \ " -SRC_URI[md5sum] = "ce8f9ab11f4fd0a08ec73eaffd75c8f0" -SRC_URI[sha256sum] = "fa1311a9ce00e72379a0a3bc6d240ba30c0968cfbbb3472859e50b99e24e9598" +SRC_URI[md5sum] = "d30eed9304e82ea8238c854b5c5a34d9" +SRC_URI[sha256sum] = "03ded4f5e9b8d43ecec083704b2dcabf20c182ed382db9ac7251da0b0b038059" LIC_FILES_CHKSUM = "file://COPYING.GPL;md5=b234ee4d69f5fce4486a80fdaf4a4263" # the package is taken from snapshots.debian.org; that source is static and goes stale diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/apt/apt_1.2.24.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/apt/apt_1.2.31.bb similarity index 100% rename from Contrib-Inspur/openbmc/poky/meta/recipes-devtools/apt/apt_1.2.24.bb rename to Contrib-Inspur/openbmc/poky/meta/recipes-devtools/apt/apt_1.2.31.bb diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/autoconf-archive/autoconf-archive_2018.03.13.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/autoconf-archive/autoconf-archive_2018.03.13.bb deleted file mode 100644 index 7d62e52a..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/autoconf-archive/autoconf-archive_2018.03.13.bb +++ /dev/null @@ -1,18 +0,0 @@ -SUMMARY = "a collection of freely re-usable Autoconf macros" -HOMEPAGE = "http://www.gnu.org/software/autoconf-archive/" -SECTION = "devel" -LICENSE = "GPL-3.0-with-autoconf-exception" -LIC_FILES_CHKSUM = "file://COPYING;md5=11cc2d3ee574f9d6b7ee797bdce4d423 \ - file://COPYING.EXCEPTION;md5=fdef168ebff3bc2f13664c365a5fb515" - -SRC_URI = "${GNU_MIRROR}/${BPN}/${BPN}-${PV}.tar.xz" -SRC_URI[md5sum] = "46b13a5936372297b6d49980327a3c35" -SRC_URI[sha256sum] = "6175f90d9fa64c4d939bdbb3e8511ae0ee2134863a2c7bf8d9733819efa6e159" - -inherit autotools allarch - -PACKAGES = "${PN} ${PN}-doc" - -FILES_${PN} += "${datadir}/aclocal" - -BBCLASSEXTEND = "native nativesdk" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/autoconf-archive/autoconf-archive_2019.01.06.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/autoconf-archive/autoconf-archive_2019.01.06.bb new file mode 100644 index 00000000..985a254f --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/autoconf-archive/autoconf-archive_2019.01.06.bb @@ -0,0 +1,18 @@ +SUMMARY = "a collection of freely re-usable Autoconf macros" +HOMEPAGE = "http://www.gnu.org/software/autoconf-archive/" +SECTION = "devel" +LICENSE = "GPL-3.0-with-autoconf-exception" +LIC_FILES_CHKSUM = "file://COPYING;md5=11cc2d3ee574f9d6b7ee797bdce4d423 \ + file://COPYING.EXCEPTION;md5=fdef168ebff3bc2f13664c365a5fb515" + +SRC_URI = "${GNU_MIRROR}/${BPN}/${BPN}-${PV}.tar.xz" +SRC_URI[md5sum] = "d46413c8b00a125b1529bae385bbec55" +SRC_URI[sha256sum] = "17195c833098da79de5778ee90948f4c5d90ed1a0cf8391b4ab348e2ec511e3f" + +inherit autotools allarch + +PACKAGES = "${PN} ${PN}-doc" + +FILES_${PN} += "${datadir}/aclocal" + +BBCLASSEXTEND = "native nativesdk" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/binutils/binutils-2.32.inc b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/binutils/binutils-2.32.inc index 49e6827c..349c3e11 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/binutils/binutils-2.32.inc +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/binutils/binutils-2.32.inc @@ -14,11 +14,8 @@ def binutils_branch_version(d): pvsplit = d.getVar('PV').split('.') return pvsplit[0] + "_" + pvsplit[1] -# Actual upstream version is 2.32 (without the .0), so we have to set -# UPSTREAM_VERSION_UNKNOWN to avoid the version check failure. The line can -# be removed when a new version of binutils is released (if the PV is then -# correctly set to match the upstream version tag). -UPSTREAM_VERSION_UNKNOWN = "1" +# When upgrading to 2.33, please make sure there is no trailing .0, so +# that upstream version check can work correctly. PV = "2.32.0" CVE_VERSION = "2.32" BINUPV = "${@binutils_branch_version(d)}" @@ -48,6 +45,12 @@ SRC_URI = "\ file://CVE-2019-9075.patch \ file://CVE-2019-9076.patch \ file://CVE-2019-9077.patch \ + file://CVE-2019-9071.patch \ + file://CVE-2019-12972.patch \ + file://CVE-2019-14250.patch \ + file://CVE-2019-14444.patch \ + file://CVE-2019-17450.patch \ + file://CVE-2019-17451.patch \ " S = "${WORKDIR}/git" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/binutils/binutils-cross-testsuite_2.32.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/binutils/binutils-cross-testsuite_2.32.bb new file mode 100644 index 00000000..07a8e7c4 --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/binutils/binutils-cross-testsuite_2.32.bb @@ -0,0 +1,85 @@ +require binutils.inc +require binutils-${PV}.inc + +BPN = "binutils" + +DEPENDS += "dejagnu-native expect-native" +DEPENDS += "binutils-native" + +deltask do_compile +deltask do_install + +inherit nopackages + +do_configure[dirs] += "${B}/ld ${B}/bfd" +do_configure() { + # create config.h, oe enables initfini-array by default + echo "#define HAVE_INITFINI_ARRAY" > ${B}/ld/config.h + # use the bfd_stdint.h from binutils-native, this is the same of the one + # generated by binutils-cross + cp ${RECIPE_SYSROOT_NATIVE}/usr/include/bfd_stdint.h ${B}/bfd/ +} + +# target depends +DEPENDS += "virtual/${MLPREFIX}${TARGET_PREFIX}binutils" +DEPENDS += "virtual/${MLPREFIX}${TARGET_PREFIX}gcc" +DEPENDS += "virtual/${MLPREFIX}${TARGET_PREFIX}compilerlibs" +DEPENDS += "virtual/${MLPREFIX}libc" + +python check_prepare() { + def suffix_sys(sys): + if sys.endswith("-linux"): + return sys + "-gnu" + return sys + + def generate_site_exp(d, suite): + content = [] + content.append('set srcdir "{0}/{1}"'.format(d.getVar("S"), suite)) + content.append('set objdir "{0}/{1}"'.format(d.getVar("B"), suite)) + content.append('set build_alias "{0}"'.format(d.getVar("BUILD_SYS"))) + content.append('set build_triplet {0}'.format(d.getVar("BUILD_SYS"))) + # use BUILD here since HOST=TARGET + content.append('set host_alias "{0}"'.format(d.getVar("BUILD_SYS"))) + content.append('set host_triplet {0}'.format(d.getVar("BUILD_SYS"))) + content.append('set target_alias "{0}"'.format(d.getVar("TARGET_SYS"))) + content.append('set target_triplet {0}'.format(suffix_sys(d.getVar("TARGET_SYS")))) + content.append("set development true") + content.append("set experimental false") + + content.append(d.expand('set CXXFILT "${TARGET_PREFIX}c++filt"')) + content.append(d.expand('set CC "${TARGET_PREFIX}gcc --sysroot=${STAGING_DIR_TARGET} ${TUNE_CCARGS}"')) + content.append(d.expand('set CXX "${TARGET_PREFIX}g++ --sysroot=${STAGING_DIR_TARGET} ${TUNE_CCARGS}"')) + content.append(d.expand('set CFLAGS_FOR_TARGET "--sysroot=${STAGING_DIR_TARGET} ${TUNE_CCARGS}"')) + + if suite == "ld" and d.getVar("TUNE_ARCH") == "mips64": + # oe patches binutils to have the default mips64 abi as 64bit, but + # skips gas causing issues with the ld test suite (which uses gas) + content.append('set ASFLAGS "-64"') + + return "\n".join(content) + + for i in ["binutils", "gas", "ld"]: + builddir = os.path.join(d.getVar("B"), i) + if not os.path.isdir(builddir): + os.makedirs(builddir) + with open(os.path.join(builddir, "site.exp"), "w") as f: + f.write(generate_site_exp(d, i)) +} + +CHECK_TARGETS ??= "binutils gas ld" + +do_check[dirs] = "${B} ${B}/binutils ${B}/gas ${B}/ld" +do_check[prefuncs] += "check_prepare" +do_check[nostamp] = "1" +do_check() { + export LC_ALL=C + for i in ${CHECK_TARGETS}; do + (cd ${B}/$i; runtest \ + --tool $i \ + --srcdir ${S}/$i/testsuite \ + --ignore 'plugin.exp' \ + || true) + done +} +addtask check after do_configure + diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/binutils/binutils/0010-Change-default-emulation-for-mips64-linux.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/binutils/binutils/0010-Change-default-emulation-for-mips64-linux.patch index ba5e4c2c..5f4ac72f 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/binutils/binutils/0010-Change-default-emulation-for-mips64-linux.patch +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/binutils/binutils/0010-Change-default-emulation-for-mips64-linux.patch @@ -1,4 +1,4 @@ -From d540e95d05cd7c4b8924ac7b257c14ae0105d0ab Mon Sep 17 00:00:00 2001 +From 958a49749b772660d3bafb80748829cba6bed065 Mon Sep 17 00:00:00 2001 From: Khem Raj Date: Mon, 2 Mar 2015 01:44:14 +0000 Subject: [PATCH 10/15] Change default emulation for mips64*-*-linux @@ -14,7 +14,7 @@ Signed-off-by: Khem Raj 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/bfd/config.bfd b/bfd/config.bfd -index 0e1ddb659c..cc65547588 100644 +index 0e1ddb659c..d4f50f0a8d 100644 --- a/bfd/config.bfd +++ b/bfd/config.bfd @@ -919,12 +919,12 @@ case "${targ}" in @@ -30,7 +30,7 @@ index 0e1ddb659c..cc65547588 100644 - targ_defvec=mips_elf32_ntrad_be_vec - targ_selvecs="mips_elf32_ntrad_le_vec mips_elf32_trad_be_vec mips_elf32_trad_le_vec mips_elf64_trad_be_vec mips_elf64_trad_le_vec" + targ_defvec=mips_elf64_trad_be_vec -+ targ_selvecs="mips_elf32_ntrad_be_vec mips_elf32_ntrad_be_vec mips_elf32_trad_be_vec mips_elf32_trad_le_vec mips_elf64_trad_le_vec" ++ targ_selvecs="mips_elf32_ntrad_be_vec mips_elf32_ntrad_le_vec mips_elf32_trad_be_vec mips_elf32_trad_le_vec mips_elf64_trad_le_vec" ;; mips*el-*-linux*) targ_defvec=mips_elf32_trad_le_vec @@ -54,6 +54,3 @@ index beba17ef51..917be6f8eb 100644 targ_extra_libpath=$targ_extra_emuls ;; mips*el-*-linux-*) targ_emul=elf32ltsmip targ_extra_emuls="elf32btsmip elf32ltsmipn32 elf64ltsmip elf32btsmipn32 elf64btsmip" --- -2.20.1 - diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/binutils/binutils/CVE-2019-12972.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/binutils/binutils/CVE-2019-12972.patch new file mode 100644 index 00000000..07d1d654 --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/binutils/binutils/CVE-2019-12972.patch @@ -0,0 +1,51 @@ +From 30bcc01478433a1cb05b36dc5c4beef7d2c89b5b Mon Sep 17 00:00:00 2001 +From: Alan Modra +Date: Fri, 21 Jun 2019 11:51:38 +0930 +Subject: [PATCH] PR24689, string table corruption + +The testcase in the PR had a e_shstrndx section of type SHT_GROUP. +hdr->contents were initialized by setup_group rather than being read +from the file, thus last byte was not zero and string dereference ran +off the end of the buffer. + + PR 24689 + * elfcode.h (elf_object_p): Check type of e_shstrndx section. + +Upstream-Status: Backport +CVE: CVE-2019-12972 +Signed-off-by: Anuj Mittal +--- + bfd/ChangeLog | 5 +++++ + bfd/elfcode.h | 3 ++- + 2 files changed, 7 insertions(+), 1 deletion(-) + +diff --git a/bfd/ChangeLog b/bfd/ChangeLog +index 91f09e6346..e66fb40a2c 100644 +--- a/bfd/ChangeLog ++++ b/bfd/ChangeLog +@@ -1,3 +1,8 @@ ++2019-06-21 Alan Modra ++ ++ PR 24689 ++ * elfcode.h (elf_object_p): Check type of e_shstrndx section. ++ + 2019-02-20 Alan Modra + + PR 24236 +diff --git a/bfd/elfcode.h b/bfd/elfcode.h +index ec5ea766de..a35a629087 100644 +--- a/bfd/elfcode.h ++++ b/bfd/elfcode.h +@@ -755,7 +755,8 @@ elf_object_p (bfd *abfd) + /* A further sanity check. */ + if (i_ehdrp->e_shnum != 0) + { +- if (i_ehdrp->e_shstrndx >= elf_numsections (abfd)) ++ if (i_ehdrp->e_shstrndx >= elf_numsections (abfd) ++ || i_shdrp[i_ehdrp->e_shstrndx].sh_type != SHT_STRTAB) + { + /* PR 2257: + We used to just goto got_wrong_format_error here +-- +2.20.1 + diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/binutils/binutils/CVE-2019-14250.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/binutils/binutils/CVE-2019-14250.patch new file mode 100644 index 00000000..c915a832 --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/binutils/binutils/CVE-2019-14250.patch @@ -0,0 +1,33 @@ +From df78be05daf4eb07f60f50ec1080cb979af32ec0 Mon Sep 17 00:00:00 2001 +From: marxin +Date: Tue, 23 Jul 2019 07:33:32 +0000 +Subject: [PATCH] libiberty: Check zero value shstrndx in simple-object-elf.c + +git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@273718 138bc75d-0d04-0410-961f-82ee72b054a4 + +CVE: CVE-2019-14250 +Upstream-Status: Backport [from gcc: https://gcc.gnu.org/viewcvs/gcc?view=revision&revision=273718] +[Removed Changelog entry] +Signed-off-by: Anuj Mittal +--- +diff --git a/libiberty/simple-object-elf.c b/libiberty/simple-object-elf.c +index 502388991a08..bdee963634d6 100644 +--- a/libiberty/simple-object-elf.c ++++ b/libiberty/simple-object-elf.c +@@ -548,7 +548,15 @@ simple_object_elf_match (unsigned char header[SIMPLE_OBJECT_MATCH_HEADER_LEN], + XDELETE (eor); + return NULL; + } +- ++ ++ if (eor->shstrndx == 0) ++ { ++ *errmsg = "invalid ELF shstrndx == 0"; ++ *err = 0; ++ XDELETE (eor); ++ return NULL; ++ } ++ + return (void *) eor; + } + diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/binutils/binutils/CVE-2019-14444.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/binutils/binutils/CVE-2019-14444.patch new file mode 100644 index 00000000..85b9a9f9 --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/binutils/binutils/CVE-2019-14444.patch @@ -0,0 +1,28 @@ +From e17869db99195849826eaaf5d2d0eb2cfdd7a2a7 Mon Sep 17 00:00:00 2001 +From: Nick Clifton +Date: Mon, 5 Aug 2019 10:40:35 +0100 +Subject: [PATCH] Catch potential integer overflow in readelf when processing + corrupt binaries. + + PR 24829 + * readelf.c (apply_relocations): Catch potential integer overflow + whilst checking reloc location against section size. + +CVE: CVE-2019-14444 +Upstream-Status: Backport [https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=e17869db99195849826eaaf5d2d0eb2cfdd7a2a7] +[Removed Changelog entry] +Signed-off-by: Anuj Mittal +--- +diff --git a/binutils/readelf.c b/binutils/readelf.c +index b896ad9f406..e785fde43e7 100644 +--- a/binutils/readelf.c ++++ b/binutils/readelf.c +@@ -13366,7 +13366,7 @@ apply_relocations (Filedata * filedata, + } + + rloc = start + rp->r_offset; +- if ((rloc + reloc_size) > end || (rloc < start)) ++ if (rloc >= end || (rloc + reloc_size) > end || (rloc < start)) + { + warn (_("skipping invalid relocation offset 0x%lx in section %s\n"), + (unsigned long) rp->r_offset, diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/binutils/binutils/CVE-2019-17450.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/binutils/binutils/CVE-2019-17450.patch new file mode 100644 index 00000000..a6ce0b9a --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/binutils/binutils/CVE-2019-17450.patch @@ -0,0 +1,99 @@ +From 09dd135df9ebc7a4b640537e23e26a03a288a789 Mon Sep 17 00:00:00 2001 +From: Alan Modra +Date: Wed, 9 Oct 2019 00:07:29 +1030 +Subject: [PATCH] PR25078, stack overflow in function find_abstract_instance + +Selectively backporting fix for bfd/dwarf2.c, but not the ChangeLog +file. There are newer versions of binutils, but none of them contain the +commit fixing CVE-2019-17450, so backport it to master and zeus. + +Upstream-Status: Backport [https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=063c511bd79] +CVE: CVE-2019-17450 +Signed-off-by: Trevor Gamblin + + PR 25078 + * dwarf2.c (find_abstract_instance): Delete orig_info_ptr, add + recur_count. Error on recur_count reaching 100 rather than + info_ptr matching orig_info_ptr. Adjust calls. + +--- + bfd/dwarf2.c | 35 +++++++++++++++++------------------ + 1 file changed, 17 insertions(+), 18 deletions(-) + +diff --git a/bfd/dwarf2.c b/bfd/dwarf2.c +index 0b4e485582..20ec9e2e56 100644 +--- a/bfd/dwarf2.c ++++ b/bfd/dwarf2.c +@@ -2803,13 +2803,13 @@ lookup_symbol_in_variable_table (struct comp_unit *unit, + } + + static bfd_boolean +-find_abstract_instance (struct comp_unit * unit, +- bfd_byte * orig_info_ptr, +- struct attribute * attr_ptr, +- const char ** pname, +- bfd_boolean * is_linkage, +- char ** filename_ptr, +- int * linenumber_ptr) ++find_abstract_instance (struct comp_unit *unit, ++ struct attribute *attr_ptr, ++ unsigned int recur_count, ++ const char **pname, ++ bfd_boolean *is_linkage, ++ char **filename_ptr, ++ int *linenumber_ptr) + { + bfd *abfd = unit->abfd; + bfd_byte *info_ptr; +@@ -2820,6 +2820,14 @@ find_abstract_instance (struct comp_unit * unit, + struct attribute attr; + const char *name = NULL; + ++ if (recur_count == 100) ++ { ++ _bfd_error_handler ++ (_("DWARF error: abstract instance recursion detected")); ++ bfd_set_error (bfd_error_bad_value); ++ return FALSE; ++ } ++ + /* DW_FORM_ref_addr can reference an entry in a different CU. It + is an offset from the .debug_info section, not the current CU. */ + if (attr_ptr->form == DW_FORM_ref_addr) +@@ -2939,15 +2947,6 @@ find_abstract_instance (struct comp_unit * unit, + info_ptr, info_ptr_end); + if (info_ptr == NULL) + break; +- /* It doesn't ever make sense for DW_AT_specification to +- refer to the same DIE. Stop simple recursion. */ +- if (info_ptr == orig_info_ptr) +- { +- _bfd_error_handler +- (_("DWARF error: abstract instance recursion detected")); +- bfd_set_error (bfd_error_bad_value); +- return FALSE; +- } + switch (attr.name) + { + case DW_AT_name: +@@ -2961,7 +2960,7 @@ find_abstract_instance (struct comp_unit * unit, + } + break; + case DW_AT_specification: +- if (!find_abstract_instance (unit, info_ptr, &attr, ++ if (!find_abstract_instance (unit, &attr, recur_count + 1, + &name, is_linkage, + filename_ptr, linenumber_ptr)) + return FALSE; +@@ -3175,7 +3174,7 @@ scan_unit_for_symbols (struct comp_unit *unit) + + case DW_AT_abstract_origin: + case DW_AT_specification: +- if (!find_abstract_instance (unit, info_ptr, &attr, ++ if (!find_abstract_instance (unit, &attr, 0, + &func->name, + &func->is_linkage, + &func->file, +-- +2.23.0 + diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/binutils/binutils/CVE-2019-17451.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/binutils/binutils/CVE-2019-17451.patch new file mode 100644 index 00000000..b36a5326 --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/binutils/binutils/CVE-2019-17451.patch @@ -0,0 +1,51 @@ +From 0192438051a7e781585647d5581a2a6f62fda362 Mon Sep 17 00:00:00 2001 +From: Alan Modra +Date: Wed, 9 Oct 2019 10:47:13 +1030 +Subject: [PATCH] PR25070, SEGV in function _bfd_dwarf2_find_nearest_line + +Selectively backporting fix for bfd/dwarf2.c, but not the ChangeLog +file. There are newer versions of binutils, but none of them contain the +commit fixing CVE-2019-17451, so backport it to master and zeus. + +Upstream-Status: Backport +[https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=336bfbeb1848] +CVE: CVE-2019-17451 +Signed-off-by: Trevor Gamblin + + +Evil testcase with two debug info sections, with sizes of 2aaaabac4ec1 +and ffffd5555453b140 result in a total size of 1. Reading the first +section of course overflows the buffer and tramples on other memory. + + PR 25070 + * dwarf2.c (_bfd_dwarf2_slurp_debug_info): Catch overflow of + total_size calculation. +--- + bfd/dwarf2.c | 11 ++++++++++- + 1 file changed, 10 insertions(+), 1 deletion(-) + +diff --git a/bfd/dwarf2.c b/bfd/dwarf2.c +index 0b4e485582..a91597b1d0 100644 +--- a/bfd/dwarf2.c ++++ b/bfd/dwarf2.c +@@ -4426,7 +4426,16 @@ _bfd_dwarf2_slurp_debug_info (bfd *abfd, bfd *debug_bfd, + for (total_size = 0; + msec; + msec = find_debug_info (debug_bfd, debug_sections, msec)) +- total_size += msec->size; ++ { ++ /* Catch PR25070 testcase overflowing size calculation here. */ ++ if (total_size + msec->size < total_size ++ || total_size + msec->size < msec->size) ++ { ++ bfd_set_error (bfd_error_no_memory); ++ return FALSE; ++ } ++ total_size += msec->size; ++ } + + stash->info_ptr_memory = (bfd_byte *) bfd_malloc (total_size); + if (stash->info_ptr_memory == NULL) +-- +2.23.0 + diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/binutils/binutils/CVE-2019-9071.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/binutils/binutils/CVE-2019-9071.patch new file mode 100644 index 00000000..f0253994 --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/binutils/binutils/CVE-2019-9071.patch @@ -0,0 +1,165 @@ +From c1202057eb9161a86af27d867703235fee7b7555 Mon Sep 17 00:00:00 2001 +From: Nick Clifton +Date: Wed, 10 Apr 2019 15:49:36 +0100 +Subject: [PATCH] Pull in patch for libiberty that fixes a stack exhaustion bug + when demangling a pathalogically constructed mangled name. + + PR 89394 + * cp-demangle.c (cplus_demangle_fill_name): Reject negative + lengths. + (d_count_templates_scopes): Replace num_templates and num_scopes + parameters with a struct d_print_info pointer parameter. Adjust + body of the function accordingly. Add recursion counter and check + that the recursion limit is not reached. + (d_print_init): Pass dpi parameter to d_count_templates_scopes. + Reset recursion counter afterwards, unless the recursion limit was + reached. + +CVE: CVE-2019-9071 +CVE: CVE-2019-9070 +Upstream-Status: Backport +Signed-off-by: Anuj Mittal +--- + ChangeLog | 16 ++++++++++++++ + libiberty/cp-demangle.c | 48 ++++++++++++++++++++++------------------- + 2 files changed, 42 insertions(+), 22 deletions(-) + +diff --git a/ChangeLog b/ChangeLog +index cd631a15b6..4df3aaa62c 100644 +--- a/ChangeLog ++++ b/ChangeLog +@@ -1,3 +1,19 @@ ++2019-04-10 Nick Clifton ++ ++ * libiberty: Sync with gcc. Bring in: ++ 2019-04-10 Nick Clifton ++ ++ PR 89394 ++ * cp-demangle.c (cplus_demangle_fill_name): Reject negative ++ lengths. ++ (d_count_templates_scopes): Replace num_templates and num_scopes ++ parameters with a struct d_print_info pointer parameter. Adjust ++ body of the function accordingly. Add recursion counter and check ++ that the recursion limit is not reached. ++ (d_print_init): Pass dpi parameter to d_count_templates_scopes. ++ Reset recursion counter afterwards, unless the recursion limit was ++ reached. ++ + 2018-06-24 Nick Clifton + + 2.32 branch created. +diff --git a/libiberty/cp-demangle.c b/libiberty/cp-demangle.c +index b34b485692..779b4e763a 100644 +--- a/libiberty/cp-demangle.c ++++ b/libiberty/cp-demangle.c +@@ -861,7 +861,7 @@ CP_STATIC_IF_GLIBCPP_V3 + int + cplus_demangle_fill_name (struct demangle_component *p, const char *s, int len) + { +- if (p == NULL || s == NULL || len == 0) ++ if (p == NULL || s == NULL || len <= 0) + return 0; + p->d_printing = 0; + p->type = DEMANGLE_COMPONENT_NAME; +@@ -4061,7 +4061,7 @@ d_growable_string_callback_adapter (const char *s, size_t l, void *opaque) + are larger than the actual numbers encountered. */ + + static void +-d_count_templates_scopes (int *num_templates, int *num_scopes, ++d_count_templates_scopes (struct d_print_info *dpi, + const struct demangle_component *dc) + { + if (dc == NULL) +@@ -4081,13 +4081,13 @@ d_count_templates_scopes (int *num_templates, int *num_scopes, + break; + + case DEMANGLE_COMPONENT_TEMPLATE: +- (*num_templates)++; ++ dpi->num_copy_templates++; + goto recurse_left_right; + + case DEMANGLE_COMPONENT_REFERENCE: + case DEMANGLE_COMPONENT_RVALUE_REFERENCE: + if (d_left (dc)->type == DEMANGLE_COMPONENT_TEMPLATE_PARAM) +- (*num_scopes)++; ++ dpi->num_saved_scopes++; + goto recurse_left_right; + + case DEMANGLE_COMPONENT_QUAL_NAME: +@@ -4152,42 +4152,42 @@ d_count_templates_scopes (int *num_templates, int *num_scopes, + case DEMANGLE_COMPONENT_TAGGED_NAME: + case DEMANGLE_COMPONENT_CLONE: + recurse_left_right: +- d_count_templates_scopes (num_templates, num_scopes, +- d_left (dc)); +- d_count_templates_scopes (num_templates, num_scopes, +- d_right (dc)); ++ /* PR 89394 - Check for too much recursion. */ ++ if (dpi->recursion > DEMANGLE_RECURSION_LIMIT) ++ /* FIXME: There ought to be a way to report to the ++ user that the recursion limit has been reached. */ ++ return; ++ ++ ++ dpi->recursion; ++ d_count_templates_scopes (dpi, d_left (dc)); ++ d_count_templates_scopes (dpi, d_right (dc)); ++ -- dpi->recursion; + break; + + case DEMANGLE_COMPONENT_CTOR: +- d_count_templates_scopes (num_templates, num_scopes, +- dc->u.s_ctor.name); ++ d_count_templates_scopes (dpi, dc->u.s_ctor.name); + break; + + case DEMANGLE_COMPONENT_DTOR: +- d_count_templates_scopes (num_templates, num_scopes, +- dc->u.s_dtor.name); ++ d_count_templates_scopes (dpi, dc->u.s_dtor.name); + break; + + case DEMANGLE_COMPONENT_EXTENDED_OPERATOR: +- d_count_templates_scopes (num_templates, num_scopes, +- dc->u.s_extended_operator.name); ++ d_count_templates_scopes (dpi, dc->u.s_extended_operator.name); + break; + + case DEMANGLE_COMPONENT_FIXED_TYPE: +- d_count_templates_scopes (num_templates, num_scopes, +- dc->u.s_fixed.length); ++ d_count_templates_scopes (dpi, dc->u.s_fixed.length); + break; + + case DEMANGLE_COMPONENT_GLOBAL_CONSTRUCTORS: + case DEMANGLE_COMPONENT_GLOBAL_DESTRUCTORS: +- d_count_templates_scopes (num_templates, num_scopes, +- d_left (dc)); ++ d_count_templates_scopes (dpi, d_left (dc)); + break; + + case DEMANGLE_COMPONENT_LAMBDA: + case DEMANGLE_COMPONENT_DEFAULT_ARG: +- d_count_templates_scopes (num_templates, num_scopes, +- dc->u.s_unary_num.sub); ++ d_count_templates_scopes (dpi, dc->u.s_unary_num.sub); + break; + } + } +@@ -4222,8 +4222,12 @@ d_print_init (struct d_print_info *dpi, demangle_callbackref callback, + dpi->next_copy_template = 0; + dpi->num_copy_templates = 0; + +- d_count_templates_scopes (&dpi->num_copy_templates, +- &dpi->num_saved_scopes, dc); ++ d_count_templates_scopes (dpi, dc); ++ /* If we did not reach the recursion limit, then reset the ++ current recursion value back to 0, so that we can print ++ the templates. */ ++ if (dpi->recursion < DEMANGLE_RECURSION_LIMIT) ++ dpi->recursion = 0; + dpi->num_copy_templates *= dpi->num_saved_scopes; + + dpi->current_template = NULL; +-- +2.20.1 + diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/bison/bison_3.3.2.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/bison/bison_3.3.2.bb deleted file mode 100644 index adb9d48e..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/bison/bison_3.3.2.bb +++ /dev/null @@ -1,40 +0,0 @@ -SUMMARY = "GNU Project parser generator (yacc replacement)" -DESCRIPTION = "Bison is a general-purpose parser generator that converts an annotated context-free grammar into \ -an LALR(1) or GLR parser for that grammar. Bison is upward compatible with Yacc: all properly-written Yacc \ -grammars ought to work with Bison with no change. Anyone familiar with Yacc should be able to use Bison with \ -little trouble." -HOMEPAGE = "http://www.gnu.org/software/bison/" -LICENSE = "GPLv3" -LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504" -SECTION = "devel" -DEPENDS = "bison-native flex-native" - -SRC_URI = "${GNU_MIRROR}/bison/bison-${PV}.tar.xz \ - file://dont-depend-on-help2man.patch.patch \ - file://add-with-bisonlocaledir.patch \ -" - -# No point in hardcoding path to m4, just use PATH -EXTRA_OECONF += "M4=m4" - -SRC_URI[md5sum] = "c9b552dee234b2f6b66e56b27e5234c9" -SRC_URI[sha256sum] = "039ee45b61d95e5003e7e8376f9080001b4066ff357bde271b7faace53b9d804" - -inherit autotools gettext texinfo - -# The automatic m4 path detection gets confused, so force the right value -acpaths = "-I ${S}/m4" - -do_compile_prepend() { - for i in mfcalc calc++ rpcalc; do mkdir -p ${B}/examples/$i; done -} - -do_install_append_class-native() { - create_wrapper ${D}/${bindir}/bison \ - BISON_PKGDATADIR=${STAGING_DATADIR_NATIVE}/bison -} -do_install_append_class-nativesdk() { - create_wrapper ${D}/${bindir}/bison \ - BISON_PKGDATADIR=${datadir}/bison -} -BBCLASSEXTEND = "native nativesdk" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/bison/bison_3.4.2.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/bison/bison_3.4.2.bb new file mode 100644 index 00000000..46f0f908 --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/bison/bison_3.4.2.bb @@ -0,0 +1,40 @@ +SUMMARY = "GNU Project parser generator (yacc replacement)" +DESCRIPTION = "Bison is a general-purpose parser generator that converts an annotated context-free grammar into \ +an LALR(1) or GLR parser for that grammar. Bison is upward compatible with Yacc: all properly-written Yacc \ +grammars ought to work with Bison with no change. Anyone familiar with Yacc should be able to use Bison with \ +little trouble." +HOMEPAGE = "http://www.gnu.org/software/bison/" +LICENSE = "GPLv3" +LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504" +SECTION = "devel" +DEPENDS = "bison-native flex-native" + +SRC_URI = "${GNU_MIRROR}/bison/bison-${PV}.tar.xz \ + file://dont-depend-on-help2man.patch.patch \ + file://add-with-bisonlocaledir.patch \ +" + +# No point in hardcoding path to m4, just use PATH +EXTRA_OECONF += "M4=m4" + +SRC_URI[md5sum] = "d1ceb9dfde2d03b24a4c1137f7f1b572" +SRC_URI[sha256sum] = "27d05534699735dc69e86add5b808d6cb35900ad3fd63fa82e3eb644336abfa0" + +inherit autotools gettext texinfo + +# The automatic m4 path detection gets confused, so force the right value +acpaths = "-I ${S}/m4" + +do_compile_prepend() { + for i in mfcalc calc++ rpcalc; do mkdir -p ${B}/examples/$i; done +} + +do_install_append_class-native() { + create_wrapper ${D}/${bindir}/bison \ + BISON_PKGDATADIR=${STAGING_DATADIR_NATIVE}/bison +} +do_install_append_class-nativesdk() { + create_wrapper ${D}/${bindir}/bison \ + BISON_PKGDATADIR=${datadir}/bison +} +BBCLASSEXTEND = "native nativesdk" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/bootchart2/bootchart2/0001-bootchart2-support-usrmerge.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/bootchart2/bootchart2/0001-bootchart2-support-usrmerge.patch new file mode 100644 index 00000000..8ee6723d --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/bootchart2/bootchart2/0001-bootchart2-support-usrmerge.patch @@ -0,0 +1,37 @@ +From b6d1a1ff2de363b1b76c8c70f77ae56a4e4d4b56 Mon Sep 17 00:00:00 2001 +From: Changqing Li +Date: Thu, 5 Sep 2019 18:37:31 +0800 +Subject: [PATCH] bootchart2: support usrmerge + +Upstream-Status: Inappropriate[oe-specific] + +Signed-off-by: Changqing Li +--- + Makefile | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/Makefile b/Makefile +index 1cc2974..f988904 100644 +--- a/Makefile ++++ b/Makefile +@@ -36,7 +36,7 @@ endif + PY_SITEDIR ?= $(PY_LIBDIR)/site-packages + LIBC_A_PATH = /usr$(LIBDIR) + # Always lib, even on systems that otherwise use lib64 +-SYSTEMD_UNIT_DIR = $(EARLY_PREFIX)/lib/systemd/system ++SYSTEMD_UNIT_DIR ?= $(EARLY_PREFIX)/lib/systemd/system + COLLECTOR = \ + collector/collector.o \ + collector/output.o \ +@@ -99,7 +99,7 @@ install-chroot: + install -d $(DESTDIR)$(PKGLIBDIR)/tmpfs + + install-collector: all install-chroot +- install -m 755 -D bootchartd $(DESTDIR)$(EARLY_PREFIX)/sbin/$(PROGRAM_PREFIX)bootchartd$(PROGRAM_SUFFIX) ++ install -m 755 -D bootchartd $(DESTDIR)${BASE_SBINDIR}/$(PROGRAM_PREFIX)bootchartd$(PROGRAM_SUFFIX) + install -m 644 -D bootchartd.conf $(DESTDIR)/etc/$(PROGRAM_PREFIX)bootchartd$(PROGRAM_SUFFIX).conf + install -m 755 -D bootchart-collector $(DESTDIR)$(PKGLIBDIR)/$(PROGRAM_PREFIX)bootchart$(PROGRAM_SUFFIX)-collector + +-- +2.7.4 + diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/bootchart2/bootchart2_0.14.8.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/bootchart2/bootchart2_0.14.8.bb index 396d0ec0..a938b2da 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/bootchart2/bootchart2_0.14.8.bb +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/bootchart2/bootchart2_0.14.8.bb @@ -93,6 +93,7 @@ UPSTREAM_CHECK_GITTAGREGEX = "(?P\d+\.\d+(\.\d+)*)" SRC_URI = "git://github.com/xrmx/bootchart.git \ file://bootchartd_stop.sh \ file://0001-collector-Allocate-space-on-heap-for-chunks.patch \ + file://0001-bootchart2-support-usrmerge.patch \ " S = "${WORKDIR}/git" @@ -114,6 +115,8 @@ UPDATERCPN = "bootchartd-stop-initscript" INITSCRIPT_NAME = "bootchartd_stop.sh" INITSCRIPT_PARAMS = "start 99 2 3 4 5 ." +EXTRA_OEMAKE = 'BASE_SBINDIR="${base_sbindir}"' + do_compile_prepend () { export PY_LIBDIR="${libdir}/${PYTHON_DIR}" export BINDIR="${bindir}" @@ -126,6 +129,8 @@ do_install () { export BINDIR="${bindir}" export DESTDIR="${D}" export LIBDIR="${base_libdir}" + export PKGLIBDIR="${base_libdir}/bootchart" + export SYSTEMD_UNIT_DIR="${systemd_unitdir}/system" oe_runmake install install -d ${D}${sysconfdir}/init.d @@ -141,7 +146,7 @@ PACKAGES =+ "pybootchartgui" FILES_pybootchartgui += "${PYTHON_SITEPACKAGES_DIR}/pybootchartgui ${bindir}/pybootchartgui" RDEPENDS_pybootchartgui = "python3-pycairo python3-compression python3-image python3-shell python3-compression python3-codecs" RDEPENDS_${PN}_class-target += "${@bb.utils.contains('DISTRO_FEATURES', 'sysvinit', 'sysvinit-pidof', 'procps', d)}" -RDEPENDS_${PN}_class-target += "lsb" +RDEPENDS_${PN}_class-target += "lsb-release" DEPENDS_append_class-native = " python3-pycairo-native" PACKAGES =+ "bootchartd-stop-initscript" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/btrfs-tools/btrfs-tools_5.1.1.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/btrfs-tools/btrfs-tools_5.1.1.bb deleted file mode 100644 index 2cd99706..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/btrfs-tools/btrfs-tools_5.1.1.bb +++ /dev/null @@ -1,46 +0,0 @@ -SUMMARY = "Checksumming Copy on Write Filesystem utilities" -DESCRIPTION = "Btrfs is a new copy on write filesystem for Linux aimed at \ -implementing advanced features while focusing on fault tolerance, repair and \ -easy administration. \ -This package contains utilities (mkfs, fsck, btrfsctl) used to work with \ -btrfs and an utility (btrfs-convert) to make a btrfs filesystem from an ext3." - -HOMEPAGE = "https://btrfs.wiki.kernel.org" - -LICENSE = "GPLv2" -LIC_FILES_CHKSUM = "file://COPYING;md5=fcb02dc552a041dee27e4b85c7396067" -SECTION = "base" -DEPENDS = "util-linux attr e2fsprogs lzo acl python3-setuptools-native" -DEPENDS_append_class-target = " udev" -RDEPENDS_${PN} = "libgcc" - -SRCREV = "781e36a784faa58a4f0515eef124af860d59e2c0" -SRC_URI = "git://git.kernel.org/pub/scm/linux/kernel/git/kdave/btrfs-progs.git \ - file://0001-Add-a-possibility-to-specify-where-python-modules-ar.patch \ - " - -inherit autotools-brokensep pkgconfig manpages distutils3-base - -CLEANBROKEN = "1" - -PACKAGECONFIG[manpages] = "--enable-documentation, --disable-documentation, asciidoc-native xmlto-native" -EXTRA_OECONF = " --disable-zstd" -EXTRA_OECONF_append_libc-musl = " --disable-backtrace " -EXTRA_PYTHON_CFLAGS = "${DEBUG_PREFIX_MAP}" -EXTRA_PYTHON_CFLAGS_class-native = "" -EXTRA_PYTHON_LDFLAGS = "${LDFLAGS}" -EXTRA_OEMAKE = "V=1 'EXTRA_PYTHON_CFLAGS=${EXTRA_PYTHON_CFLAGS}' 'EXTRA_PYTHON_LDFLAGS=${EXTRA_PYTHON_LDFLAGS}'" - -do_configure_prepend() { - # Upstream doesn't ship this and autoreconf won't install it as automake isn't used. - mkdir -p ${S}/config - cp -f $(automake --print-libdir)/install-sh ${S}/config/ -} - -S = "${WORKDIR}/git" - -do_install_append() { - oe_runmake 'DESTDIR=${D}' 'PYTHON_SITEPACKAGES_DIR=${PYTHON_SITEPACKAGES_DIR}' install_python -} - -BBCLASSEXTEND = "native" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/btrfs-tools/btrfs-tools_5.3.1.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/btrfs-tools/btrfs-tools_5.3.1.bb new file mode 100644 index 00000000..a44c0bc8 --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/btrfs-tools/btrfs-tools_5.3.1.bb @@ -0,0 +1,52 @@ +SUMMARY = "Checksumming Copy on Write Filesystem utilities" +DESCRIPTION = "Btrfs is a new copy on write filesystem for Linux aimed at \ +implementing advanced features while focusing on fault tolerance, repair and \ +easy administration. \ +This package contains utilities (mkfs, fsck, btrfsctl) used to work with \ +btrfs and an utility (btrfs-convert) to make a btrfs filesystem from an ext3." + +HOMEPAGE = "https://btrfs.wiki.kernel.org" + +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=fcb02dc552a041dee27e4b85c7396067" +SECTION = "base" +DEPENDS = "util-linux attr e2fsprogs lzo acl" +DEPENDS_append_class-target = " udev" +RDEPENDS_${PN} = "libgcc" + +SRCREV = "f82e569b33c3c1cfd4f8f405085ff8d439a0a915" +SRC_URI = "git://git.kernel.org/pub/scm/linux/kernel/git/kdave/btrfs-progs.git \ + file://0001-Add-a-possibility-to-specify-where-python-modules-ar.patch \ + " + +PACKAGECONFIG ??= "python" +PACKAGECONFIG[manpages] = "--enable-documentation, --disable-documentation, asciidoc-native xmlto-native" +PACKAGECONFIG[python] = "--enable-python,--disable-python,python3-setuptools-native" +PACKAGECONFIG[zstd] = "--enable-zstd,--disable-zstd,zstd" + +inherit autotools-brokensep pkgconfig manpages +inherit ${@bb.utils.contains('PACKAGECONFIG', 'python', 'distutils3-base', '', d)} + +CLEANBROKEN = "1" + +EXTRA_OECONF_append_libc-musl = " --disable-backtrace " +EXTRA_PYTHON_CFLAGS = "${DEBUG_PREFIX_MAP}" +EXTRA_PYTHON_CFLAGS_class-native = "" +EXTRA_PYTHON_LDFLAGS = "${LDFLAGS}" +EXTRA_OEMAKE = "V=1 'EXTRA_PYTHON_CFLAGS=${EXTRA_PYTHON_CFLAGS}' 'EXTRA_PYTHON_LDFLAGS=${EXTRA_PYTHON_LDFLAGS}'" + +do_configure_prepend() { + # Upstream doesn't ship this and autoreconf won't install it as automake isn't used. + mkdir -p ${S}/config + cp -f $(automake --print-libdir)/install-sh ${S}/config/ +} + +S = "${WORKDIR}/git" + +do_install_append() { + if [ "${@bb.utils.filter('PACKAGECONFIG', 'python', d)}" ]; then + oe_runmake 'DESTDIR=${D}' 'PYTHON_SITEPACKAGES_DIR=${PYTHON_SITEPACKAGES_DIR}' install_python + fi +} + +BBCLASSEXTEND = "native" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/build-compare/build-compare_git.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/build-compare/build-compare_git.bb index efcf6b6d..b0560cc2 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/build-compare/build-compare_git.bb +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/build-compare/build-compare_git.bb @@ -6,22 +6,14 @@ LICENSE = "GPLv2" LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe" SRC_URI = "git://github.com/openSUSE/build-compare.git \ - file://Rename-rpm-check.sh-to-pkg-diff.sh.patch;striplevel=1 \ file://Ignore-DWARF-sections.patch;striplevel=1 \ - file://0001-Add-support-for-deb-and-ipk-packaging.patch \ - file://functions.sh-remove-space-at-head.patch \ - file://functions.sh-run-rpm-once-to-make-it-faster.patch \ - file://pkg-diff.sh-check-for-fifo-named-pipe.patch \ - file://pkg-diff.sh-check_single_file-return-at-once-when-sa.patch \ - file://pkg-diff.sh-remove-space-in-the-end-for-ftype.patch \ - file://functions.sh-improve-deb-and-ipk-checking.patch \ " # Date matches entry in build-compare.changes and date of SRCREV. # -SRCREV = "c5352c054c6ef15735da31b76d6d88620f4aff0a" +SRCREV = "4dfa207660776cae120afa4353aec7f1f2a998d2" PE = "1" -PV = "2015.02.10+git${SRCPV}" +PV = "2019.08.14+git${SRCPV}" UPSTREAM_CHECK_COMMITS = "1" S = "${WORKDIR}/git" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/build-compare/files/0001-Add-support-for-deb-and-ipk-packaging.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/build-compare/files/0001-Add-support-for-deb-and-ipk-packaging.patch deleted file mode 100644 index 82fd8169..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/build-compare/files/0001-Add-support-for-deb-and-ipk-packaging.patch +++ /dev/null @@ -1,64 +0,0 @@ -From 02dbc7e3478e409d6f5e3e1c53daddf8838be999 Mon Sep 17 00:00:00 2001 -From: Paul Eggleton -Date: Tue, 1 Sep 2015 12:04:33 +0100 -Subject: [PATCH] Add support for deb and ipk packaging - -Upstream-Status: Submitted [https://github.com/openSUSE/build-compare/pull/10] - -Signed-off-by: Paul Eggleton ---- - functions.sh | 15 +++++++++++++++ - pkg-diff.sh | 6 ++++++ - 2 files changed, 21 insertions(+) - -diff --git a/functions.sh b/functions.sh -index 06079df..85c9003 100644 ---- a/functions.sh -+++ b/functions.sh -@@ -85,6 +85,13 @@ function unpackage() - CPIO_OPTS="--extract --unconditional --preserve-modification-time --make-directories --quiet" - rpm2cpio $file | cpio ${CPIO_OPTS} - ;; -+ *.ipk|*.deb) -+ ar x $file -+ tar xf control.tar.gz -+ rm control.tar.gz -+ tar xf data.tar.gz -+ rm data.tar.gz -+ ;; - esac - popd 1>/dev/null - } -@@ -255,4 +262,12 @@ function cmp_spec () - rm $file1 $file2 - return $RES - } -+ -+function adjust_controlfile() { -+ cat $1/control | sed '/^Version: /d' > $1/control.fixed -+ mv $1/control.fixed $1/control -+ cat $2/control | sed '/^Version: /d' > $2/control.fixed -+ mv $2/control.fixed $2/control -+} -+ - # vim: tw=666 ts=2 et -diff --git a/pkg-diff.sh b/pkg-diff.sh -index 0f1fa76..3cf10aa 100644 ---- a/pkg-diff.sh -+++ b/pkg-diff.sh -@@ -138,6 +138,12 @@ echo "Extracting packages" - unpackage $oldpkg $dir/old - unpackage $newpkg $dir/new - -+case $oldpkg in -+ *.deb|*.ipk) -+ adjust_controlfile $dir/old $dir/new -+ ;; -+esac -+ - # files is set in cmp_spec for rpms, so if RES is empty we should assume - # it wasn't an rpm and pick all files for comparison. - if [ -z $RES ]; then --- -2.1.0 - diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/build-compare/files/Ignore-DWARF-sections.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/build-compare/files/Ignore-DWARF-sections.patch index 7dda1acb..2fb62ae8 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/build-compare/files/Ignore-DWARF-sections.patch +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/build-compare/files/Ignore-DWARF-sections.patch @@ -23,18 +23,15 @@ Signed-off-by: Randy Witt 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg-diff.sh b/pkg-diff.sh -index 56035c1..0f1fa76 100755 +index 9c2125e..b0d77c8 100755 --- a/pkg-diff.sh +++ b/pkg-diff.sh -@@ -658,7 +658,7 @@ check_single_file() +@@ -851,7 +851,7 @@ check_single_file() echo "" >$file1 echo "" >$file2 - # Don't compare .build-id and .gnu_debuglink sections -- sections="$(objdump -s new/$file | grep "Contents of section .*:" | sed -r "s,.* (.*):,\1,g" | grep -v -e "\.build-id" -e "\.gnu_debuglink" | tr "\n" " ")" -+ sections="$(objdump -s new/$file | grep "Contents of section .*:" | sed -r "s,.* (.*):,\1,g" | grep -v -e "\.build-id" -e "\.gnu_debuglink" -e "\.debug_abbrev" -e "\.debug_aranges" -e "\.debug_frame" -e "\.debug_info" -e "\.debug_line" -e "\.debug_loc" -e "\.debug_macinfo" -e "\.debug_pubnames" -e "\.debug_pubtypes" -e "\.debug_ranges" -e "\.debug_str" | tr "\n" " ")" + # Don't compare .build-id, .gnu_debuglink and .gnu_debugdata sections +- sections="$($OBJDUMP -s new/$file | grep "Contents of section .*:" | sed -r "s,.* (.*):,\1,g" | grep -v -e "\.build-id" -e "\.gnu_debuglink" -e "\.gnu_debugdata" | tr "\n" " ")" ++ sections="$($OBJDUMP -s new/$file | grep "Contents of section .*:" | sed -r "s,.* (.*):,\1,g" | grep -v -e "\.build-id" -e "\.gnu_debuglink" -e "\.gnu_debugdata" -e "\.debug_abbrev" -e "\.debug_aranges" -e "\.debug_frame" -e "\.debug_info" -e "\.debug_line" -e "\.debug_loc" -e "\.debug_macinfo" -e "\.debug_pubnames" -e "\.debug_pubtypes" -e "\.debug_ranges" -e "\.debug_str" | tr "\n" " ")" for section in $sections; do - objdump -s -j $section old/$file | sed "s,^old/,," > $file1 - objdump -s -j $section new/$file | sed "s,^new/,," > $file2 --- -1.9.3 - + $OBJDUMP -s -j $section old/$file | sed "s,^old/,," > $file1 + $OBJDUMP -s -j $section new/$file | sed "s,^new/,," > $file2 diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/build-compare/files/Rename-rpm-check.sh-to-pkg-diff.sh.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/build-compare/files/Rename-rpm-check.sh-to-pkg-diff.sh.patch deleted file mode 100644 index cff3a9e2..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/build-compare/files/Rename-rpm-check.sh-to-pkg-diff.sh.patch +++ /dev/null @@ -1,1599 +0,0 @@ -From 4de3df5a1b361cd09a081f0e0bdb94cbf684ed48 Mon Sep 17 00:00:00 2001 -From: Robert Yang -Date: Thu, 19 Feb 2015 00:34:47 -0800 -Subject: [PATCH] Rename rpm-check.sh to pkg-diff.sh. - -The tool now accepts package input other than rpm, so change the name -which could be misleading. - -Upstream-Status: Submitted [https://github.com/openSUSE/build-compare/pulls] - -Signed-off-by: Randy Witt - -Updated for rpm-check.sh. - -Signed-off-by: Robert Yang ---- - build-compare.spec | 2 +- - pkg-diff.sh | 765 ++++++++++++++++++++++++++++++++++++++++++++++++++ - rpm-check.sh | 764 ------------------------------------------------- - same-build-result.sh | 4 +- - 4 files changed, 768 insertions(+), 767 deletions(-) - create mode 100644 pkg-diff.sh - delete mode 100755 rpm-check.sh - -diff --git a/build-compare.spec b/build-compare.spec -index 14a97e9..5f47ca1 100644 ---- a/build-compare.spec -+++ b/build-compare.spec -@@ -25,7 +25,7 @@ Version: 2015.02.10 - Release: 0 - Source1: COPYING - Source2: same-build-result.sh --Source3: rpm-check.sh -+Source3: pkg-diff.sh - Source4: functions.sh - Source5: srpm-check.sh - BuildRoot: %{_tmppath}/%{name}-%{version}-build -diff --git a/pkg-diff.sh b/pkg-diff.sh -new file mode 100644 -index 0000000..56035c1 ---- /dev/null -+++ b/pkg-diff.sh -@@ -0,0 +1,765 @@ -+#! /bin/bash -+# -+# Copyright (c) 2009, 2010, 2011, 2012 SUSE Linux Product GmbH, Germany. -+# Licensed under GPL v2, see COPYING file for details. -+# -+# Written by Michael Matz and Stephan Coolo -+# Enhanced by Andreas Jaeger -+ -+FUNCTIONS=${0%/*}/functions.sh -+ -+check_all= -+case $1 in -+ -a | --check-all) -+ check_all=1 -+ shift -+esac -+ -+if test "$#" != 2; then -+ echo "usage: $0 [-a|--check-all] old.rpm new.rpm" -+ exit 1 -+fi -+ -+self_script=$(cd $(dirname $0); echo $(pwd)/$(basename $0)) -+ -+source $FUNCTIONS -+ -+oldpkg=`readlink -f $1` -+newpkg=`readlink -f $2` -+rename_script=`mktemp` -+ -+if test ! -f "$oldpkg"; then -+ echo "can't open $1" -+ exit 1 -+fi -+ -+if test ! -f "$newpkg"; then -+ echo "can't open $2" -+ exit 1 -+fi -+ -+#usage unjar -+function unjar() -+{ -+ local file -+ file=$1 -+ -+ if [[ $(type -p fastjar) ]]; then -+ UNJAR=fastjar -+ elif [[ $(type -p jar) ]]; then -+ UNJAR=jar -+ elif [[ $(type -p unzip) ]]; then -+ UNJAR=unzip -+ else -+ echo "ERROR: jar, fastjar, or unzip is not installed (trying file $file)" -+ exit 1 -+ fi -+ -+ case $UNJAR in -+ jar|fastjar) -+ # echo jar -xf $file -+ ${UNJAR} -xf $file -+ ;; -+ unzip) -+ unzip -oqq $file -+ ;; -+ esac -+} -+ -+# list files in directory -+#usage unjar_l -+function unjar_l() -+{ -+ local file -+ file=$1 -+ -+ if [[ $(type -p fastjar) ]]; then -+ UNJAR=fastjar -+ elif [[ $(type -p jar) ]]; then -+ UNJAR=jar -+ elif [[ $(type -p unzip) ]]; then -+ UNJAR=unzip -+ else -+ echo "ERROR: jar, fastjar, or unzip is not installed (trying file $file)" -+ exit 1 -+ fi -+ -+ case $UNJAR in -+ jar|fastjar) -+ ${UNJAR} -tf $file -+ ;; -+ unzip) -+ unzip -l $file -+ ;; -+ esac -+} -+ -+filter_disasm() -+{ -+ sed -e 's/^ *[0-9a-f]\+://' -e 's/\$0x[0-9a-f]\+/$something/' -e 's/callq *[0-9a-f]\+/callq /' -e 's/# *[0-9a-f]\+/# /' -e 's/\(0x\)\?[0-9a-f]\+(/offset(/' -e 's/[0-9a-f]\+ :/\1:/' -e 's/<\(.*\)+0x[0-9a-f]\+>/<\1 + ofs>/' -+} -+ -+echo "Comparing `basename $oldpkg` to `basename $newpkg`" -+ -+case $oldpkg in -+ *.rpm) -+ cmp_spec $rename_script $oldpkg $newpkg -+ RES=$? -+ case $RES in -+ 0) -+ echo "RPM meta information is identical" -+ if test -z "$check_all"; then -+ exit 0 -+ fi -+ ;; -+ 1) -+ echo "RPM meta information is different" -+ if test -z "$check_all"; then -+ exit 1 -+ fi -+ ;; -+ 2) -+ echo "RPM file checksum differs." -+ RES=0 -+ ;; -+ *) -+ echo "Wrong exit code!" -+ exit 1 -+ ;; -+ esac -+ ;; -+esac -+ -+file1=`mktemp` -+file2=`mktemp` -+ -+dir=`mktemp -d` -+echo "Extracting packages" -+unpackage $oldpkg $dir/old -+unpackage $newpkg $dir/new -+ -+# files is set in cmp_spec for rpms, so if RES is empty we should assume -+# it wasn't an rpm and pick all files for comparison. -+if [ -z $RES ]; then -+ oldfiles=`cd $dir/old; find . -type f` -+ newfiles=`cd $dir/new; find . -type f` -+ -+ files=`echo -e "$oldfiles\n$newfiles" | sort -u` -+fi -+ -+cd $dir -+bash $rename_script -+ -+dfile=`mktemp` -+ -+diff_two_files() -+{ -+ if ! cmp -s old/$file new/$file; then -+ echo "$file differs ($ftype)" -+ hexdump -C old/$file > $file1 -+ hexdump -C new/$file > $file2 -+ diff -u $file1 $file2 | head -n 200 -+ return 1 -+ fi -+ return 0 -+} -+ -+trim_man_first_line() -+{ -+ # Handles the first line if it is like: -+ #.\" Automatically generated by Pod::Man 2.28 (Pod::Simple 3.28) -+ #.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.43.3. -+ local f=$1 -+ sed -i -e '1{ -+ s|^\.\\"[[:blank:]]\+Automatically[[:blank:]]generated[[:blank:]]by[[:blank:]]Pod::Man[[:blank:]].*|.\\" Overly verbose Pod::Man| -+ s|^\.\\"[[:blank:]]\+DO[[:blank:]]NOT[[:blank:]]MODIFY[[:blank:]]THIS[[:blank:]]FILE![[:blank:]]\+It[[:blank:]]was[[:blank:]]generated[[:blank:]]by[[:blank:]]help2man[[:blank:]].*|.\\" Overly verbose help2man| -+ }' $f -+} -+ -+trim_man_TH() -+{ -+ # Handles lines like: -+ # .TH debhelper 7 "2010-02-27" "7.4.15" "Debhelper" -+ # .TH DIRMNGR-CLIENT 1 2010-02-27 "Dirmngr 1.0.3" "GNU Privacy Guard" -+ # .TH ccmake 1 "March 06, 2010" "ccmake 2.8.1-rc3" -+ # .TH QEMU-IMG 1 "2010-03-14" " " " " -+ # .TH kdecmake 1 "May 07, 2010" "cmake 2.8.1" -+ # .TH "appender.h" 3 "12 May 2010" "Version 1.2.1" "log4c" \" -*- nroff -*- -+ # .TH "appender.h" 3 "Tue Aug 31 2010" "Version 1.2.1" "log4c" \" -*- nroff -*- -+ # .TH "OFFLINEIMAP" "1" "11 May 2010" "John Goerzen" "OfflineIMAP Manual" -+ # .TH gv 3guile "13 May 2010" -+ #.TH "GIT\-ARCHIMPORT" "1" "09/13/2010" "Git 1\&.7\&.1" "Git Manual" -+ # .TH LDIRECTORD 8 "2010-10-20" "perl v5.12.2" "User Contributed Perl Documentation" -+ # .TH ccmake 1 "February 05, 2012" "ccmake 2.8.7" -+ # .TH "appender.h" 3 "Tue Aug 31 2010" "Version 1.2.1" "log4c" \" -*- nroff -*- -+ # .TH ARCH "1" "September 2010" "GNU coreutils 8.5" "User Commands" -+ # .TH "GCM-CALIBRATE" "1" "03 February 2012" "" "" -+ #.TH Locale::Po4a::Xml.pm 3pm "2015-01-30" "Po4a Tools" "Po4a Tools" -+ local f=$1 -+ # (.TH quoted section) (quoted_date)(*) -+ sed -i -e 's|^\([[:blank:]]*\.TH[[:blank:]]\+"[^"]\+"[[:blank:]]\+[^[:blank:]]\+\)[[:blank:]]\+\("[^"]\+"\)\([[:blank:]]\+.*\)\?|\1 "qq2000-01-01"\3|' $f -+ # (.TH unquoted section) (quoted_date)(*) -+ sed -i -e 's|^\([[:blank:]]*\.TH[[:blank:]]\+[^"][^[:blank:]]\+[[:blank:]]\+[^[:blank:]]\+\)[[:blank:]]\+\("[^"]\+"\)\([[:blank:]]\+.*\)\?|\1 "uq2000-02-02"\3|' $f -+ # (.TH quoted section) (unquoted_date)(*) -+ sed -i -e 's|^\([[:blank:]]*\.TH[[:blank:]]\+"[^"]\+"[[:blank:]]\+[^[:blank:]]\+\)[[:blank:]]\+\([^"][^[:blank:]]\+\)\([[:blank:]]\+.*\)\?|\1 qu2000-03-03\3|' $f -+ # (.TH unquoted section) (unquoted_date)(*) -+ sed -i -e 's|^\([[:blank:]]*\.TH[[:blank:]]\+[^"][^[:blank:]]\+[[:blank:]]\+[^[:blank:]]\+\)[[:blank:]]\+\([^"][^[:blank:]]\+\)\([[:blank:]]\+.*\)\?|\1 uu2000-04-04\3|' $f -+} -+ -+strip_numbered_anchors() -+{ -+ # Remove numbered anchors on Docbook / HTML files. -+ # This should be save since we remove them from old and new files. -+ # A trailing or tag will stay also on both files. -+ for f in old/$file new/$file; do -+ sed -i -e 's%<[ ]*a[ ]\+name[^<]*[0-9]\+[^<]*%%g' \ -+ -e 's%<[ ]*a[ ]\+href[^<]*#[^<]*[0-9]\+[^<]*%%g' \ -+ -e 's%<[^<]*id="ftn\.[^<]*[0-9]\+[^<]*%%g' $f -+ done -+} -+ -+ -+check_compressed_file() -+{ -+ local file=$1 -+ local ext=$2 -+ local tmpdir=`mktemp -d` -+ local ftype -+ local ret=0 -+ echo "$ext file with odd filename: $file" -+ if test -n "$tmpdir"; then -+ mkdir $tmpdir/{old,new} -+ cp --parents --dereference old/$file $tmpdir/ -+ cp --parents --dereference new/$file $tmpdir/ -+ if pushd $tmpdir > /dev/null ; then -+ case "$ext" in -+ bz2) -+ mv old/$file{,.bz2} -+ mv new/$file{,.bz2} -+ bzip2 -d old/$file.bz2 -+ bzip2 -d new/$file.bz2 -+ ;; -+ gzip) -+ mv old/$file{,.gz} -+ mv new/$file{,.gz} -+ gzip -d old/$file.gz -+ gzip -d new/$file.gz -+ ;; -+ xz) -+ mv old/$file{,.xz} -+ mv new/$file{,.xz} -+ xz -d old/$file.xz -+ xz -d new/$file.xz -+ ;; -+ esac -+ ftype=`/usr/bin/file old/$file | sed 's@^[^:]\+:[[:blank:]]*@@'` -+ case $ftype in -+ POSIX\ tar\ archive) -+ echo "$ext content is: $ftype" -+ mv old/$file{,.tar} -+ mv new/$file{,.tar} -+ if ! check_single_file ${file}.tar; then -+ ret=1 -+ fi -+ ;; -+ ASCII\ cpio\ archive\ *) -+ echo "$ext content is: $ftype" -+ mv old/$file{,.cpio} -+ mv new/$file{,.cpio} -+ if ! check_single_file ${file}.cpio; then -+ ret=1 -+ fi -+ ;; -+ *) -+ echo "unhandled $ext content: $ftype" -+ if ! diff_two_files; then -+ ret=1 -+ fi -+ ;; -+ esac -+ popd > /dev/null -+ fi -+ rm -rf "$tmpdir" -+ fi -+ return $ret -+} -+ -+check_single_file() -+{ -+ local file="$1" -+ case $file in -+ *.spec) -+ sed -i -e "s,Release:.*$release1,Release: @RELEASE@," old/$file -+ sed -i -e "s,Release:.*$release2,Release: @RELEASE@," new/$file -+ ;; -+ *.exe.mdb|*.dll.mdb) -+ # Just debug information, we can skip them -+ echo "$file skipped as debug file." -+ return 0 -+ ;; -+ *.a) -+ flist=`ar t new/$file` -+ pwd=$PWD -+ fdir=`dirname $file` -+ cd old/$fdir -+ ar x `basename $file` -+ cd $pwd/new/$fdir -+ ar x `basename $file` -+ cd $pwd -+ for f in $flist; do -+ if ! check_single_file $fdir/$f; then -+ return 1 -+ fi -+ done -+ return 0 -+ ;; -+ *.cpio) -+ flist=`cpio --quiet --list --force-local < "new/$file"` -+ pwd=$PWD -+ fdir=$file.extract.$PPID.$$ -+ mkdir old/$fdir new/$fdir -+ cd old/$fdir -+ cpio --quiet --extract --force-local < "../${file##*/}" -+ cd $pwd/new/$fdir -+ cpio --quiet --extract --force-local < "../${file##*/}" -+ cd $pwd -+ local ret=0 -+ for f in $flist; do -+ if ! check_single_file $fdir/$f; then -+ ret=1 -+ if test -z "$check_all"; then -+ break -+ fi -+ fi -+ done -+ rm -rf old/$fdir new/$fdir -+ return $ret -+ ;; -+ *.tar|*.tar.bz2|*.tar.gz|*.tgz|*.tbz2) -+ flist=`tar tf new/$file` -+ pwd=$PWD -+ fdir=`dirname $file` -+ cd old/$fdir -+ tar xf `basename $file` -+ cd $pwd/new/$fdir -+ tar xf `basename $file` -+ cd $pwd -+ local ret=0 -+ for f in $flist; do -+ if ! check_single_file $fdir/$f; then -+ ret=1 -+ if test -z "$check_all"; then -+ break -+ fi -+ fi -+ done -+ return $ret -+ ;; -+ *.zip|*.jar|*.war) -+ cd old -+ unjar_l ./$file |sort > flist -+ # 10-05-2010 14:39 -+ sed -i -e "s, [0-9][0-9]-[0-9][0-9]-[0-9]\+ [0-9][0-9]:[0-9][0-9] , date ," flist -+ # 2012-02-03 07:59 -+ sed -i -e "s, 20[0-9][0-9]-[0-9][0-9]-[0-9][0-9] [0-9][0-9]:[0-9][0-9] , date ," flist -+ cd ../new -+ unjar_l ./$file |sort> flist -+ sed -i -e "s, [0-9][0-9]-[0-9][0-9]-[0-9]\+ [0-9][0-9]:[0-9][0-9] , date ,; " flist -+ sed -i -e "s, 20[0-9][0-9]-[0-9][0-9]-[0-9][0-9] [0-9][0-9]:[0-9][0-9] , date ," flist -+ cd .. -+ if ! cmp -s old/flist new/flist; then -+ echo "$file has different file list" -+ diff -u old/flist new/flist -+ return 1 -+ fi -+ flist=`grep date new/flist | sed -e 's,.* date ,,'` -+ pwd=$PWD -+ fdir=`dirname $file` -+ cd old/$fdir -+ unjar `basename $file` -+ cd $pwd/new/$fdir -+ unjar `basename $file` -+ cd $pwd -+ local ret=0 -+ for f in $flist; do -+ if test -f new/$fdir/$f && ! check_single_file $fdir/$f; then -+ ret=1 -+ if test -z "$check_all"; then -+ break -+ fi -+ fi -+ done -+ return $ret;; -+ *.pyc|*.pyo) -+ perl -e "open fh, '+<', 'old/$file'; seek fh, 4, SEEK_SET; print fh '0000';" -+ perl -e "open fh, '+<', 'new/$file'; seek fh, 4, SEEK_SET; print fh '0000';" -+ ;; -+ *.bz2) -+ bunzip2 -c old/$file > old/${file/.bz2/} -+ bunzip2 -c new/$file > new/${file/.bz2/} -+ check_single_file ${file/.bz2/} -+ return $? -+ ;; -+ *.gz) -+ gunzip -c old/$file > old/${file/.gz/} -+ gunzip -c new/$file > new/${file/.gz/} -+ check_single_file ${file/.gz/} -+ return $? -+ ;; -+ *.rpm) -+ $self_script -a old/$file new/$file -+ return $? -+ ;; -+ *png) -+ # Try to remove timestamps, only if convert from ImageMagick is installed -+ if [[ $(type -p convert) ]]; then -+ convert old/$file +set date:create +set date:modify old/${file/.png/_n.png} -+ convert old/$file +set date:create +set date:modify new/${file/.png/_n.png} -+ if ! cmp -s old/${file/.png/_n.png} new/${file/.png/_n.png}; then -+ echo "$file differs ($ftype)" -+ hexdump -C old/${file/.png/_n.png} > $file1 -+ hexdump -C new/${file/.png/_n.png} > $file2 -+ diff -u $file1 $file2 | head -n 20 -+ return 1 -+ fi -+ return 0 -+ fi -+ ;; -+ /usr/share/locale/*/LC_MESSAGES/*.mo|/usr/share/locale-bundle/*/LC_MESSAGES/*.mo) -+ for f in old/$file new/$file; do -+ sed -i -e "s,POT-Creation-Date: ....-..-.. ..:..+....,POT-Creation-Date: 1970-01-01 00:00+0000," $f -+ done -+ ;; -+ /usr/share/doc/packages/*/*.html|\ -+ /usr/share/doc/kde/HTML/*/*/*.html|/usr/share/doc/*/html/*.html) -+ for f in old/$file new/$file; do -+ # texi2html output, e.g. in kvm, indent, qemu -+ sed -i -e "s|^ -+ # -+ # -+ # -+ sed -i -e ' -+ /^/{ -+ : next -+ n -+ /^<\/head>/{ -+ b end_head -+ } -+ s/^\(\)/\1 some-date-removed-by-build-compare \5/ -+ t next -+ s/^\(\)/\1 some-date-removed-by-build-compare \3/ -+ t next -+ s/^// -+ b next -+ } -+ : end_head -+ ' $f -+ # Gjdoc HtmlDoclet: -+ sed -i -e 's%Generated by Gjdoc HtmlDoclet [0-9,.]*, part of GNU Classpath Tools, on .*, 20.. [0-9]*:..:.. \(a\|p\)\.m\. GMT.%Generated by Gjdoc.%' $f -+ sed -i -e 's%, on [A-Z][a-z]* [0-9]*, 20?? [0-9]*:??:?? \(a|p\)\.m\. GMT.

%, on January 1, 2009 0:00:00 a.m. GMT.

%' $f -+ sed -i -e 's%\), on [a-zA-Z]* [0-9][0-9], 20.. [0-9]*:..:.. \(a\|p\)\.m\. GMT.

%%' $f -+ # deprecated-list is randomly ordered, sort it for comparison -+ case $f in -+ */deprecated-list.html) -+ sort -o $f $f -+ ;; -+ esac -+ done -+ ;; -+ /usr/share/javadoc/gjdoc.properties |\ -+ /usr/share/javadoc/*/gjdoc.properties) -+ for f in old/$file new/$file; do -+ sed -i -e 's|^#[A-Z][a-z]\{2\} [A-Z][a-z]\{2\} [0-9]\{2\} ..:..:.. GMT 20..$|#Fri Jan 01 11:27:36 GMT 2009|' $f -+ done -+ ;; -+ */fonts.scale|*/fonts.dir|*/encodings.dir) -+ for f in old/$file new/$file; do -+ # sort files before comparing -+ sort -o $f $f -+ done -+ ;; -+ /var/adm/perl-modules/*) -+ for f in old/$file new/$file; do -+ sed -i -e 's|^=head2 ... ... .. ..:..:.. ....: C|=head2 Wed Jul 1 00:00:00 2009: C|' $f -+ done -+ ;; -+ /usr/share/man/man3/*3pm) -+ for f in old/$file new/$file; do -+ sed -i -e 's| 3 "20..-..-.." "perl v5....." "User Contributed Perl Documentation"$| 3 "2009-01-01" "perl v5.10.0" "User Contributed Perl Documentation"|' $f -+ trim_man_TH $f -+ trim_man_first_line $f -+ done -+ ;; -+ /usr/share/man/*/man*|/usr/share/man/man*|/usr/lib/texmf/doc/man/*/*) -+ -+ for f in old/$file new/$file; do -+ trim_man_TH $f -+ trim_man_first_line $f -+ # generated by docbook xml: -+ #.\" Date: 09/13/2010 -+ sed -i -e 's|Date: [0-1][0-9]/[0-9][0-9]/201[0-9]|Date: 09/13/2010|' $f -+ done -+ ;; -+ *.elc) -+ # emacs lisp files -+ for f in old/$file new/$file; do -+ sed -i -e 's|Compiled by abuild@.* on ... ... .. ..:..:.. 20..$|compiled by abuild@buildhost on Wed Jul 01 00:00:00 2009|' $f -+ done -+ ;; -+ /var/lib/texmf/web2c/*/*fmt |\ -+ /var/lib/texmf/web2c/metafont/*.base|\ -+ /var/lib/texmf/web2c/metapost/*.mem) -+ # binary dump of TeX and Metafont formats, we can ignore them for good -+ echo "difference in $file ignored." -+ return 0 -+ ;; -+ */libtool) -+ for f in old/$file new/$file; do -+ sed -i -e 's|^# Libtool was configured on host [A-Za-z0-9]*:$|# Libtool was configured on host x42:|' $f -+ done -+ ;; -+ /etc/mail/*cf|/etc/sendmail.cf) -+ # from sendmail package -+ for f in old/$file new/$file; do -+ # - ##### built by abuild@build33 on Thu May 6 11:21:17 UTC 2010 -+ sed -i -e 's|built by abuild@[a-z0-9]* on ... ... [0-9]* [0-9]*:[0-9][0-9]:[0-9][0-9] .* 20[0-9][0-9]|built by abuild@build42 on Thu May 6 11:21:17 UTC 2010|' $f -+ done -+ ;; -+ /usr/share/doc/kde/HTML/*/*/index.cache|/usr/share/doc/kde/HTML/*/*/*/index.cache|\ -+ /usr/share/gtk-doc/html/*/*.html|/usr/share/gtk-doc/html/*/*.devhelp2) -+ # various kde and gtk packages -+ strip_numbered_anchors -+ ;; -+ */created.rid) -+ # ruby documentation -+ # file just contains a timestamp and nothing else, so ignore it -+ echo "Ignore $file" -+ return 0 -+ ;; -+ */rdoc/files/*.html) -+ # ruby documentation -+ # Mon Sep 20 19:02:43 +0000 2010 -+ for f in old/$file new/$file; do -+ sed -i -e 's%[A-Z][a-z][a-z] [A-Z][a-z][a-z] [0-9]\+ [0-9]\+:[0-9]\+:[0-9]\+ +0000 201[0-9]%Mon Sep 20 19:02:43 +0000 2010%g' $f -+ done -+ strip_numbered_anchors -+ ;; -+ */Linux*Env.Set.sh) -+ # LibreOffice files, contains: -+ # Generated on: Mon Apr 18 13:19:22 UTC 2011 -+ for f in old/$file new/$file; do -+ sed -i -e 's%^# Generated on:.*UTC 201[0-9] *$%# Generated on: Sometime%g' $f -+ done -+ ;; -+ /usr/lib/libreoffice/solver/inc/*/deliver.log) -+ # LibreOffice log file -+ echo "Ignore $file" -+ return 0 -+ ;; -+ /var/adm/update-messages/*|/var/adm/update-scripts/*) -+ # encode version-release inside -+ oldfn=`echo "$file"|sed -e s/-$release2/-$release1/;` -+ -+ # fetchmsttfonts embeds the release number in the update shell script. -+ echo sed -i -e "s/-$release1/-$release2/g;" "old/$oldfn" -+ sed -i -e "s/-$release1/-$release2/g;" "old/$oldfn" -+ -+ if ! diff -u old/$oldfn new/$file; then -+ echo "$oldfn is not same as $file" -+ return 1 -+ fi -+ echo "$file and $oldfn are same" -+ return 0 -+ ;; -+ *.ps) -+ for f in "old/$file" "new/$file"; do -+ sed -i -e ' -+ /^%%CreationDate:[[:blank:]]/d -+ /^%%Creator:[[:blank:]]groff[[:blank:]]version[[:blank:]]/d -+ /^%DVIPSSource:[[:blank:]]/d -+ ' "$f" -+ done -+ ;; -+ *pdf) -+ # PDF files contain a unique ID, remove it -+ # Format of the ID is: -+ # /ID [<9ACE247A70CF9BEAFEE15E116259BD6D> <9ACE247A70CF9BEAFEE15E116259BD6D>] -+ # with optional spaces. pdftex creates also: -+ # /CreationDate (D:20120103083206Z) -+ # /ModDate (D:20120103083206Z) -+ # and possibly XML metadata as well -+ for f in "old/$file" "new/$file"; do -+ sed -i \ -+ '/obj/,/endobj/{ -+ s%/ID \?\[ \?<[^>]\+> \?<[^>]\+> \?\]%/IDrandom%g; -+ s%/CreationDate \?(D:[^)]*)%/CreationDate (D: XXX)%g; -+ s%/ModDate \?(D:[^)]*)%/ModDate (D: XXX)%g; -+ s%[^<]*%XXX%g; -+ s%[^<]*%XXX%g; -+ s%[^<]*%XXX%g; -+ s%[^<]*%XXX%g; -+ s%[^<]*%XXX%g; -+ }' "$f" -+ done -+ ;; -+ esac -+ -+ ftype=`/usr/bin/file old/$file | sed 's@^[^:]\+:[[:blank:]]*@@'` -+ case $ftype in -+ PE32\ executable*Mono\/\.Net\ assembly*) -+ echo "PE32 Mono/.Net assembly: $file" -+ if [ -x /usr/bin/monodis ] ; then -+ monodis old/$file 2>/dev/null|sed -e 's/GUID = {.*}/GUID = { 42 }/;'> ${file1} -+ monodis new/$file 2>/dev/null|sed -e 's/GUID = {.*}/GUID = { 42 }/;'> ${file2} -+ if ! cmp -s ${file1} ${file2}; then -+ echo "$file differs ($ftype)" -+ diff -u ${file1} ${file2} -+ return 1 -+ fi -+ else -+ echo "Cannot compare, no monodis installed" -+ return 1 -+ fi -+ ;; -+ ELF*executable*|ELF*[LM]SB\ shared\ object*) -+ objdump -d --no-show-raw-insn old/$file | filter_disasm > $file1 -+ if ! test -s $file1; then -+ # objdump has no idea how to handle it -+ if ! diff_two_files; then -+ ret=1 -+ break -+ fi -+ fi -+ elfdiff= -+ sed -i -e "s,old/,," $file1 -+ objdump -d --no-show-raw-insn new/$file | filter_disasm > $file2 -+ sed -i -e "s,new/,," $file2 -+ if ! diff -u $file1 $file2 > $dfile; then -+ echo "$file differs in assembler output" -+ head -n 200 $dfile -+ elfdiff="1" -+ fi -+ echo "" >$file1 -+ echo "" >$file2 -+ # Don't compare .build-id and .gnu_debuglink sections -+ sections="$(objdump -s new/$file | grep "Contents of section .*:" | sed -r "s,.* (.*):,\1,g" | grep -v -e "\.build-id" -e "\.gnu_debuglink" | tr "\n" " ")" -+ for section in $sections; do -+ objdump -s -j $section old/$file | sed "s,^old/,," > $file1 -+ objdump -s -j $section new/$file | sed "s,^new/,," > $file2 -+ if ! diff -u $file1 $file2 > $dfile; then -+ echo "$file differs in ELF section $section" -+ head -n 200 $dfile -+ elfdiff="1" -+ fi -+ done -+ if test -z "$elfdiff"; then -+ echo "$file: only difference was in build-id or gnu_debuglink, GOOD." -+ return 0 -+ fi -+ return 1 -+ ;; -+ *ASCII*|*text*) -+ if ! cmp -s old/$file new/$file; then -+ echo "$file differs ($ftype)" -+ diff -u old/$file new/$file | head -n 200 -+ return 1 -+ fi -+ ;; -+ directory|setuid,\ directory|sticky,\ directory) -+ # tar might package directories - ignore them here -+ return 0 -+ ;; -+ bzip2\ compressed\ data*) -+ if ! check_compressed_file "$file" "bz2"; then -+ return 1 -+ fi -+ ;; -+ gzip\ compressed\ data*) -+ if ! check_compressed_file "$file" "gzip"; then -+ return 1 -+ fi -+ ;; -+ XZ\ compressed\ data*) -+ if ! check_compressed_file "$file" "xz"; then -+ return 1 -+ fi -+ ;; -+ POSIX\ tar\ archive) -+ mv old/$file{,.tar} -+ mv new/$file{,.tar} -+ if ! check_single_file ${file}.tar; then -+ return 1 -+ fi -+ ;; -+ cpio\ archive) -+ mv old/$file{,.cpio} -+ mv new/$file{,.cpio} -+ if ! check_single_file ${file}.cpio; then -+ return 1 -+ fi -+ ;; -+ symbolic\ link\ to\ *) -+ readlink "old/$file" > $file1 -+ readlink "new/$file" > $file2 -+ if ! diff -u $file1 $file2; then -+ echo "symlink target for $file differs" -+ return 1 -+ fi -+ ;; -+ *) -+ if ! diff_two_files; then -+ return 1 -+ fi -+ ;; -+ esac -+ return 0 -+} -+ -+# We need /proc mounted for some tests, so check that it's mounted and -+# complain if not. -+PROC_MOUNTED=0 -+if [ ! -d /proc/self/ ]; then -+ echo "/proc is not mounted" -+ mount -orw -n -tproc none /proc -+ PROC_MOUNTED=1 -+fi -+ -+# preserve cmp_spec result for check_all runs -+ret=$RES -+for file in $files; do -+ if ! check_single_file $file; then -+ ret=1 -+ if test -z "$check_all"; then -+ break -+ fi -+ fi -+done -+ -+if [ "$PROC_MOUNTED" -eq "1" ]; then -+ echo "Unmounting proc" -+ umount /proc -+fi -+ -+rm $file1 $file2 $dfile $rename_script -+rm -rf $dir -+if test "$ret" = 0; then -+ echo "Package content is identical" -+fi -+exit $ret -+# vim: tw=666 ts=2 et -diff --git a/rpm-check.sh b/rpm-check.sh -deleted file mode 100755 -index dd47642..0000000 ---- a/rpm-check.sh -+++ /dev/null -@@ -1,764 +0,0 @@ --#! /bin/bash --# --# Copyright (c) 2009, 2010, 2011, 2012 SUSE Linux Product GmbH, Germany. --# Licensed under GPL v2, see COPYING file for details. --# --# Written by Michael Matz and Stephan Coolo --# Enhanced by Andreas Jaeger -- --FUNCTIONS=${0%/*}/functions.sh -- --check_all= --case $1 in -- -a | --check-all) -- check_all=1 -- shift --esac -- --if test "$#" != 2; then -- echo "usage: $0 [-a|--check-all] old.rpm new.rpm" -- exit 1 --fi -- --self_script=$(cd $(dirname $0); echo $(pwd)/$(basename $0)) -- --source $FUNCTIONS -- --oldpkg=`readlink -f $1` --newpkg=`readlink -f $2` --rename_script=`mktemp` -- --if test ! -f "$oldpkg"; then -- echo "can't open $1" -- exit 1 --fi -- --if test ! -f "$newpkg"; then -- echo "can't open $2" -- exit 1 --fi -- --#usage unjar --function unjar() --{ -- local file -- file=$1 -- -- if [[ $(type -p fastjar) ]]; then -- UNJAR=fastjar -- elif [[ $(type -p jar) ]]; then -- UNJAR=jar -- elif [[ $(type -p unzip) ]]; then -- UNJAR=unzip -- else -- echo "ERROR: jar, fastjar, or unzip is not installed (trying file $file)" -- exit 1 -- fi -- -- case $UNJAR in -- jar|fastjar) -- # echo jar -xf $file -- ${UNJAR} -xf $file -- ;; -- unzip) -- unzip -oqq $file -- ;; -- esac --} -- --# list files in directory --#usage unjar_l --function unjar_l() --{ -- local file -- file=$1 -- -- if [[ $(type -p fastjar) ]]; then -- UNJAR=fastjar -- elif [[ $(type -p jar) ]]; then -- UNJAR=jar -- elif [[ $(type -p unzip) ]]; then -- UNJAR=unzip -- else -- echo "ERROR: jar, fastjar, or unzip is not installed (trying file $file)" -- exit 1 -- fi -- -- case $UNJAR in -- jar|fastjar) -- ${UNJAR} -tf $file -- ;; -- unzip) -- unzip -l $file -- ;; -- esac --} -- --filter_disasm() --{ -- sed -e 's/^ *[0-9a-f]\+://' -e 's/\$0x[0-9a-f]\+/$something/' -e 's/callq *[0-9a-f]\+/callq /' -e 's/# *[0-9a-f]\+/# /' -e 's/\(0x\)\?[0-9a-f]\+(/offset(/' -e 's/[0-9a-f]\+ :/\1:/' -e 's/<\(.*\)+0x[0-9a-f]\+>/<\1 + ofs>/' --} -- --echo "Comparing `basename $oldpkg` to `basename $newpkg`" -- --case $oldpkg in -- *.rpm) -- cmp_spec $rename_script $oldpkg $newpkg -- RES=$? -- case $RES in -- 0) -- echo "RPM meta information is identical" -- if test -z "$check_all"; then -- exit 0 -- fi -- ;; -- 1) -- echo "RPM meta information is different" -- if test -z "$check_all"; then -- exit 1 -- fi -- ;; -- 2) -- echo "RPM file checksum differs." -- RES=0 -- ;; -- *) -- echo "Wrong exit code!" -- exit 1 -- ;; -- esac -- ;; --esac -- --file1=`mktemp` --file2=`mktemp` -- --dir=`mktemp -d` --echo "Extracting packages" --unpackage $oldpkg $dir/old --unpackage $newpkg $dir/new -- --# files is set in cmp_spec for rpms, so if RES is empty we should assume --# it wasn't an rpm and pick all files for comparison. --if [ -z $RES ]; then -- oldfiles=`cd $dir/old; find . -type f` -- newfiles=`cd $dir/new; find . -type f` -- -- files=`echo -e "$oldfiles\n$newfiles" | sort -u` --fi -- --cd $dir --bash $rename_script -- --dfile=`mktemp` -- --diff_two_files() --{ -- if ! cmp -s old/$file new/$file; then -- echo "$file differs ($ftype)" -- hexdump -C old/$file > $file1 -- hexdump -C new/$file > $file2 -- diff -u $file1 $file2 | head -n 200 -- return 1 -- fi -- return 0 --} -- --trim_man_first_line() --{ -- # Handles the first line if it is like: -- #.\" Automatically generated by Pod::Man 2.28 (Pod::Simple 3.28) -- #.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.43.3. -- local f=$1 -- sed -i -e '1{ -- s|^\.\\"[[:blank:]]\+Automatically[[:blank:]]generated[[:blank:]]by[[:blank:]]Pod::Man[[:blank:]].*|.\\" Overly verbose Pod::Man| -- s|^\.\\"[[:blank:]]\+DO[[:blank:]]NOT[[:blank:]]MODIFY[[:blank:]]THIS[[:blank:]]FILE![[:blank:]]\+It[[:blank:]]was[[:blank:]]generated[[:blank:]]by[[:blank:]]help2man[[:blank:]].*|.\\" Overly verbose help2man| -- }' $f --} -- --trim_man_TH() --{ -- # Handles lines like: -- # .TH debhelper 7 "2010-02-27" "7.4.15" "Debhelper" -- # .TH DIRMNGR-CLIENT 1 2010-02-27 "Dirmngr 1.0.3" "GNU Privacy Guard" -- # .TH ccmake 1 "March 06, 2010" "ccmake 2.8.1-rc3" -- # .TH QEMU-IMG 1 "2010-03-14" " " " " -- # .TH kdecmake 1 "May 07, 2010" "cmake 2.8.1" -- # .TH "appender.h" 3 "12 May 2010" "Version 1.2.1" "log4c" \" -*- nroff -*- -- # .TH "appender.h" 3 "Tue Aug 31 2010" "Version 1.2.1" "log4c" \" -*- nroff -*- -- # .TH "OFFLINEIMAP" "1" "11 May 2010" "John Goerzen" "OfflineIMAP Manual" -- # .TH gv 3guile "13 May 2010" -- #.TH "GIT\-ARCHIMPORT" "1" "09/13/2010" "Git 1\&.7\&.1" "Git Manual" -- # .TH LDIRECTORD 8 "2010-10-20" "perl v5.12.2" "User Contributed Perl Documentation" -- # .TH ccmake 1 "February 05, 2012" "ccmake 2.8.7" -- # .TH "appender.h" 3 "Tue Aug 31 2010" "Version 1.2.1" "log4c" \" -*- nroff -*- -- # .TH ARCH "1" "September 2010" "GNU coreutils 8.5" "User Commands" -- # .TH "GCM-CALIBRATE" "1" "03 February 2012" "" "" -- #.TH Locale::Po4a::Xml.pm 3pm "2015-01-30" "Po4a Tools" "Po4a Tools" -- local f=$1 -- # (.TH quoted section) (quoted_date)(*) -- sed -i -e 's|^\([[:blank:]]*\.TH[[:blank:]]\+"[^"]\+"[[:blank:]]\+[^[:blank:]]\+\)[[:blank:]]\+\("[^"]\+"\)\([[:blank:]]\+.*\)\?|\1 "qq2000-01-01"\3|' $f -- # (.TH unquoted section) (quoted_date)(*) -- sed -i -e 's|^\([[:blank:]]*\.TH[[:blank:]]\+[^"][^[:blank:]]\+[[:blank:]]\+[^[:blank:]]\+\)[[:blank:]]\+\("[^"]\+"\)\([[:blank:]]\+.*\)\?|\1 "uq2000-02-02"\3|' $f -- # (.TH quoted section) (unquoted_date)(*) -- sed -i -e 's|^\([[:blank:]]*\.TH[[:blank:]]\+"[^"]\+"[[:blank:]]\+[^[:blank:]]\+\)[[:blank:]]\+\([^"][^[:blank:]]\+\)\([[:blank:]]\+.*\)\?|\1 qu2000-03-03\3|' $f -- # (.TH unquoted section) (unquoted_date)(*) -- sed -i -e 's|^\([[:blank:]]*\.TH[[:blank:]]\+[^"][^[:blank:]]\+[[:blank:]]\+[^[:blank:]]\+\)[[:blank:]]\+\([^"][^[:blank:]]\+\)\([[:blank:]]\+.*\)\?|\1 uu2000-04-04\3|' $f --} -- --strip_numbered_anchors() --{ -- # Remove numbered anchors on Docbook / HTML files. -- # This should be save since we remove them from old and new files. -- # A trailing or tag will stay also on both files. -- for f in old/$file new/$file; do -- sed -i -e 's%<[ ]*a[ ]\+name[^<]*[0-9]\+[^<]*%%g' \ -- -e 's%<[ ]*a[ ]\+href[^<]*#[^<]*[0-9]\+[^<]*%%g' \ -- -e 's%<[^<]*id="ftn\.[^<]*[0-9]\+[^<]*%%g' $f -- done --} -- -- --check_compressed_file() --{ -- local file=$1 -- local ext=$2 -- local tmpdir=`mktemp -d` -- local ftype -- local ret=0 -- echo "$ext file with odd filename: $file" -- if test -n "$tmpdir"; then -- mkdir $tmpdir/{old,new} -- cp --parents --dereference old/$file $tmpdir/ -- cp --parents --dereference new/$file $tmpdir/ -- if pushd $tmpdir > /dev/null ; then -- case "$ext" in -- bz2) -- mv old/$file{,.bz2} -- mv new/$file{,.bz2} -- bzip2 -d old/$file.bz2 -- bzip2 -d new/$file.bz2 -- ;; -- gzip) -- mv old/$file{,.gz} -- mv new/$file{,.gz} -- gzip -d old/$file.gz -- gzip -d new/$file.gz -- ;; -- xz) -- mv old/$file{,.xz} -- mv new/$file{,.xz} -- xz -d old/$file.xz -- xz -d new/$file.xz -- ;; -- esac -- ftype=`/usr/bin/file old/$file | sed 's@^[^:]\+:[[:blank:]]*@@'` -- case $ftype in -- POSIX\ tar\ archive) -- echo "$ext content is: $ftype" -- mv old/$file{,.tar} -- mv new/$file{,.tar} -- if ! check_single_file ${file}.tar; then -- ret=1 -- fi -- ;; -- ASCII\ cpio\ archive\ *) -- echo "$ext content is: $ftype" -- mv old/$file{,.cpio} -- mv new/$file{,.cpio} -- if ! check_single_file ${file}.cpio; then -- ret=1 -- fi -- ;; -- *) -- echo "unhandled $ext content: $ftype" -- if ! diff_two_files; then -- ret=1 -- fi -- ;; -- esac -- popd > /dev/null -- fi -- rm -rf "$tmpdir" -- fi -- return $ret --} -- --check_single_file() --{ -- local file="$1" -- case $file in -- *.spec) -- sed -i -e "s,Release:.*$release1,Release: @RELEASE@," old/$file -- sed -i -e "s,Release:.*$release2,Release: @RELEASE@," new/$file -- ;; -- *.exe.mdb|*.dll.mdb) -- # Just debug information, we can skip them -- echo "$file skipped as debug file." -- return 0 -- ;; -- *.a) -- flist=`ar t new/$file` -- pwd=$PWD -- fdir=`dirname $file` -- cd old/$fdir -- ar x `basename $file` -- cd $pwd/new/$fdir -- ar x `basename $file` -- cd $pwd -- for f in $flist; do -- if ! check_single_file $fdir/$f; then -- return 1 -- fi -- done -- return 0 -- ;; -- *.cpio) -- flist=`cpio --quiet --list --force-local < "new/$file"` -- pwd=$PWD -- fdir=$file.extract.$PPID.$$ -- mkdir old/$fdir new/$fdir -- cd old/$fdir -- cpio --quiet --extract --force-local < "../${file##*/}" -- cd $pwd/new/$fdir -- cpio --quiet --extract --force-local < "../${file##*/}" -- cd $pwd -- local ret=0 -- for f in $flist; do -- if ! check_single_file $fdir/$f; then -- ret=1 -- if test -z "$check_all"; then -- break -- fi -- fi -- done -- rm -rf old/$fdir new/$fdir -- return $ret -- ;; -- *.tar|*.tar.bz2|*.tar.gz|*.tgz|*.tbz2) -- flist=`tar tf new/$file` -- pwd=$PWD -- fdir=`dirname $file` -- cd old/$fdir -- tar xf `basename $file` -- cd $pwd/new/$fdir -- tar xf `basename $file` -- cd $pwd -- local ret=0 -- for f in $flist; do -- if ! check_single_file $fdir/$f; then -- ret=1 -- if test -z "$check_all"; then -- break -- fi -- fi -- done -- return $ret -- ;; -- *.zip|*.jar|*.war) -- cd old -- unjar_l ./$file |sort > flist -- # 10-05-2010 14:39 -- sed -i -e "s, [0-9][0-9]-[0-9][0-9]-[0-9]\+ [0-9][0-9]:[0-9][0-9] , date ," flist -- # 2012-02-03 07:59 -- sed -i -e "s, 20[0-9][0-9]-[0-9][0-9]-[0-9][0-9] [0-9][0-9]:[0-9][0-9] , date ," flist -- cd ../new -- unjar_l ./$file |sort> flist -- sed -i -e "s, [0-9][0-9]-[0-9][0-9]-[0-9]\+ [0-9][0-9]:[0-9][0-9] , date ,; " flist -- sed -i -e "s, 20[0-9][0-9]-[0-9][0-9]-[0-9][0-9] [0-9][0-9]:[0-9][0-9] , date ," flist -- cd .. -- if ! cmp -s old/flist new/flist; then -- echo "$file has different file list" -- diff -u old/flist new/flist -- return 1 -- fi -- flist=`grep date new/flist | sed -e 's,.* date ,,'` -- pwd=$PWD -- fdir=`dirname $file` -- cd old/$fdir -- unjar `basename $file` -- cd $pwd/new/$fdir -- unjar `basename $file` -- cd $pwd -- local ret=0 -- for f in $flist; do -- if test -f new/$fdir/$f && ! check_single_file $fdir/$f; then -- ret=1 -- if test -z "$check_all"; then -- break -- fi -- fi -- done -- return $ret;; -- *.pyc|*.pyo) -- perl -e "open fh, '+<', 'old/$file'; seek fh, 4, SEEK_SET; print fh '0000';" -- perl -e "open fh, '+<', 'new/$file'; seek fh, 4, SEEK_SET; print fh '0000';" -- ;; -- *.bz2) -- bunzip2 -c old/$file > old/${file/.bz2/} -- bunzip2 -c new/$file > new/${file/.bz2/} -- check_single_file ${file/.bz2/} -- return $? -- ;; -- *.gz) -- gunzip -c old/$file > old/${file/.gz/} -- gunzip -c new/$file > new/${file/.gz/} -- check_single_file ${file/.gz/} -- return $? -- ;; -- *.rpm) -- $self_script -a old/$file new/$file -- return $? -- ;; -- *png) -- # Try to remove timestamps, only if convert from ImageMagick is installed -- if [[ $(type -p convert) ]]; then -- convert old/$file +set date:create +set date:modify old/${file/.png/_n.png} -- convert old/$file +set date:create +set date:modify new/${file/.png/_n.png} -- if ! cmp -s old/${file/.png/_n.png} new/${file/.png/_n.png}; then -- echo "$file differs ($ftype)" -- hexdump -C old/${file/.png/_n.png} > $file1 -- hexdump -C new/${file/.png/_n.png} > $file2 -- diff -u $file1 $file2 | head -n 20 -- return 1 -- fi -- return 0 -- fi -- ;; -- /usr/share/locale/*/LC_MESSAGES/*.mo|/usr/share/locale-bundle/*/LC_MESSAGES/*.mo) -- for f in old/$file new/$file; do -- sed -i -e "s,POT-Creation-Date: ....-..-.. ..:..+....,POT-Creation-Date: 1970-01-01 00:00+0000," $f -- done -- ;; -- /usr/share/doc/packages/*/*.html|\ -- /usr/share/doc/kde/HTML/*/*/*.html|/usr/share/doc/*/html/*.html) -- for f in old/$file new/$file; do -- # texi2html output, e.g. in kvm, indent, qemu -- sed -i -e "s|^ -- # -- # -- # -- sed -i -e ' -- /^/{ -- : next -- n -- /^<\/head>/{ -- b end_head -- } -- s/^\(\)/\1 some-date-removed-by-build-compare \5/ -- t next -- s/^\(\)/\1 some-date-removed-by-build-compare \3/ -- t next -- s/^// -- b next -- } -- : end_head -- ' $f -- # Gjdoc HtmlDoclet: -- sed -i -e 's%Generated by Gjdoc HtmlDoclet [0-9,.]*, part of GNU Classpath Tools, on .*, 20.. [0-9]*:..:.. \(a\|p\)\.m\. GMT.%Generated by Gjdoc.%' $f -- sed -i -e 's%, on [A-Z][a-z]* [0-9]*, 20?? [0-9]*:??:?? \(a|p\)\.m\. GMT.

%, on January 1, 2009 0:00:00 a.m. GMT.

%' $f -- sed -i -e 's%\), on [a-zA-Z]* [0-9][0-9], 20.. [0-9]*:..:.. \(a\|p\)\.m\. GMT.

%%' $f -- # deprecated-list is randomly ordered, sort it for comparison -- case $f in -- */deprecated-list.html) -- sort -o $f $f -- ;; -- esac -- done -- ;; -- /usr/share/javadoc/gjdoc.properties |\ -- /usr/share/javadoc/*/gjdoc.properties) -- for f in old/$file new/$file; do -- sed -i -e 's|^#[A-Z][a-z]\{2\} [A-Z][a-z]\{2\} [0-9]\{2\} ..:..:.. GMT 20..$|#Fri Jan 01 11:27:36 GMT 2009|' $f -- done -- ;; -- */fonts.scale|*/fonts.dir|*/encodings.dir) -- for f in old/$file new/$file; do -- # sort files before comparing -- sort -o $f $f -- done -- ;; -- /var/adm/perl-modules/*) -- for f in old/$file new/$file; do -- sed -i -e 's|^=head2 ... ... .. ..:..:.. ....: C|=head2 Wed Jul 1 00:00:00 2009: C|' $f -- done -- ;; -- /usr/share/man/man3/*3pm) -- for f in old/$file new/$file; do -- sed -i -e 's| 3 "20..-..-.." "perl v5....." "User Contributed Perl Documentation"$| 3 "2009-01-01" "perl v5.10.0" "User Contributed Perl Documentation"|' $f -- trim_man_TH $f -- trim_man_first_line $f -- done -- ;; -- /usr/share/man/*/man*|/usr/share/man/man*|/usr/lib/texmf/doc/man/*/*) -- -- for f in old/$file new/$file; do -- trim_man_TH $f -- trim_man_first_line $f -- # generated by docbook xml: -- #.\" Date: 09/13/2010 -- sed -i -e 's|Date: [0-1][0-9]/[0-9][0-9]/201[0-9]|Date: 09/13/2010|' $f -- done -- ;; -- *.elc) -- # emacs lisp files -- for f in old/$file new/$file; do -- sed -i -e 's|Compiled by abuild@.* on ... ... .. ..:..:.. 20..$|compiled by abuild@buildhost on Wed Jul 01 00:00:00 2009|' $f -- done -- ;; -- /var/lib/texmf/web2c/*/*fmt |\ -- /var/lib/texmf/web2c/metafont/*.base|\ -- /var/lib/texmf/web2c/metapost/*.mem) -- # binary dump of TeX and Metafont formats, we can ignore them for good -- echo "difference in $file ignored." -- return 0 -- ;; -- */libtool) -- for f in old/$file new/$file; do -- sed -i -e 's|^# Libtool was configured on host [A-Za-z0-9]*:$|# Libtool was configured on host x42:|' $f -- done -- ;; -- /etc/mail/*cf|/etc/sendmail.cf) -- # from sendmail package -- for f in old/$file new/$file; do -- # - ##### built by abuild@build33 on Thu May 6 11:21:17 UTC 2010 -- sed -i -e 's|built by abuild@[a-z0-9]* on ... ... [0-9]* [0-9]*:[0-9][0-9]:[0-9][0-9] .* 20[0-9][0-9]|built by abuild@build42 on Thu May 6 11:21:17 UTC 2010|' $f -- done -- ;; -- /usr/share/doc/kde/HTML/*/*/index.cache|/usr/share/doc/kde/HTML/*/*/*/index.cache|\ -- /usr/share/gtk-doc/html/*/*.html|/usr/share/gtk-doc/html/*/*.devhelp2) -- # various kde and gtk packages -- strip_numbered_anchors -- ;; -- */created.rid) -- # ruby documentation -- # file just contains a timestamp and nothing else, so ignore it -- echo "Ignore $file" -- return 0 -- ;; -- */rdoc/files/*.html) -- # ruby documentation -- # Mon Sep 20 19:02:43 +0000 2010 -- for f in old/$file new/$file; do -- sed -i -e 's%[A-Z][a-z][a-z] [A-Z][a-z][a-z] [0-9]\+ [0-9]\+:[0-9]\+:[0-9]\+ +0000 201[0-9]%Mon Sep 20 19:02:43 +0000 2010%g' $f -- done -- strip_numbered_anchors -- ;; -- */Linux*Env.Set.sh) -- # LibreOffice files, contains: -- # Generated on: Mon Apr 18 13:19:22 UTC 2011 -- for f in old/$file new/$file; do -- sed -i -e 's%^# Generated on:.*UTC 201[0-9] *$%# Generated on: Sometime%g' $f -- done -- ;; -- /usr/lib/libreoffice/solver/inc/*/deliver.log) -- # LibreOffice log file -- echo "Ignore $file" -- return 0 -- ;; -- /var/adm/update-messages/*|/var/adm/update-scripts/*) -- # encode version-release inside -- oldfn=`echo "$file"|sed -e s/-$release2/-$release1/;` -- -- # fetchmsttfonts embeds the release number in the update shell script. -- echo sed -i -e "s/-$release1/-$release2/g;" "old/$oldfn" -- sed -i -e "s/-$release1/-$release2/g;" "old/$oldfn" -- -- if ! diff -u old/$oldfn new/$file; then -- echo "$oldfn is not same as $file" -- return 1 -- fi -- echo "$file and $oldfn are same" -- return 0 -- ;; -- *.ps) -- for f in "old/$file" "new/$file"; do -- sed -i -e ' -- /^%%CreationDate:[[:blank:]]/d -- /^%%Creator:[[:blank:]]groff[[:blank:]]version[[:blank:]]/d -- ' "$f" -- done -- ;; -- *pdf) -- # PDF files contain a unique ID, remove it -- # Format of the ID is: -- # /ID [<9ACE247A70CF9BEAFEE15E116259BD6D> <9ACE247A70CF9BEAFEE15E116259BD6D>] -- # with optional spaces. pdftex creates also: -- # /CreationDate (D:20120103083206Z) -- # /ModDate (D:20120103083206Z) -- # and possibly XML metadata as well -- for f in "old/$file" "new/$file"; do -- sed -i \ -- '/obj/,/endobj/{ -- s%/ID \?\[ \?<[^>]\+> \?<[^>]\+> \?\]%/IDrandom%g; -- s%/CreationDate \?(D:[^)]*)%/CreationDate (D: XXX)%g; -- s%/ModDate \?(D:[^)]*)%/ModDate (D: XXX)%g; -- s%[^<]*%XXX%g; -- s%[^<]*%XXX%g; -- s%[^<]*%XXX%g; -- s%[^<]*%XXX%g; -- s%[^<]*%XXX%g; -- }' "$f" -- done -- ;; -- esac -- -- ftype=`/usr/bin/file old/$file | sed 's@^[^:]\+:[[:blank:]]*@@'` -- case $ftype in -- PE32\ executable*Mono\/\.Net\ assembly*) -- echo "PE32 Mono/.Net assembly: $file" -- if [ -x /usr/bin/monodis ] ; then -- monodis old/$file 2>/dev/null|sed -e 's/GUID = {.*}/GUID = { 42 }/;'> ${file1} -- monodis new/$file 2>/dev/null|sed -e 's/GUID = {.*}/GUID = { 42 }/;'> ${file2} -- if ! cmp -s ${file1} ${file2}; then -- echo "$file differs ($ftype)" -- diff -u ${file1} ${file2} -- return 1 -- fi -- else -- echo "Cannot compare, no monodis installed" -- return 1 -- fi -- ;; -- ELF*executable*|ELF*[LM]SB\ shared\ object*) -- objdump -d --no-show-raw-insn old/$file | filter_disasm > $file1 -- if ! test -s $file1; then -- # objdump has no idea how to handle it -- if ! diff_two_files; then -- ret=1 -- break -- fi -- fi -- elfdiff= -- sed -i -e "s,old/,," $file1 -- objdump -d --no-show-raw-insn new/$file | filter_disasm > $file2 -- sed -i -e "s,new/,," $file2 -- if ! diff -u $file1 $file2 > $dfile; then -- echo "$file differs in assembler output" -- head -n 200 $dfile -- elfdiff="1" -- fi -- echo "" >$file1 -- echo "" >$file2 -- # Don't compare .build-id and .gnu_debuglink sections -- sections="$(objdump -s new/$file | grep "Contents of section .*:" | sed -r "s,.* (.*):,\1,g" | grep -v -e "\.build-id" -e "\.gnu_debuglink" | tr "\n" " ")" -- for section in $sections; do -- objdump -s -j $section old/$file | sed "s,^old/,," > $file1 -- objdump -s -j $section new/$file | sed "s,^new/,," > $file2 -- if ! diff -u $file1 $file2 > $dfile; then -- echo "$file differs in ELF section $section" -- head -n 200 $dfile -- elfdiff="1" -- fi -- done -- if test -z "$elfdiff"; then -- echo "$file: only difference was in build-id or gnu_debuglink, GOOD." -- return 0 -- fi -- return 1 -- ;; -- *ASCII*|*text*) -- if ! cmp -s old/$file new/$file; then -- echo "$file differs ($ftype)" -- diff -u old/$file new/$file | head -n 200 -- return 1 -- fi -- ;; -- directory|setuid,\ directory|sticky,\ directory) -- # tar might package directories - ignore them here -- return 0 -- ;; -- bzip2\ compressed\ data*) -- if ! check_compressed_file "$file" "bz2"; then -- return 1 -- fi -- ;; -- gzip\ compressed\ data*) -- if ! check_compressed_file "$file" "gzip"; then -- return 1 -- fi -- ;; -- XZ\ compressed\ data*) -- if ! check_compressed_file "$file" "xz"; then -- return 1 -- fi -- ;; -- POSIX\ tar\ archive) -- mv old/$file{,.tar} -- mv new/$file{,.tar} -- if ! check_single_file ${file}.tar; then -- return 1 -- fi -- ;; -- cpio\ archive) -- mv old/$file{,.cpio} -- mv new/$file{,.cpio} -- if ! check_single_file ${file}.cpio; then -- return 1 -- fi -- ;; -- symbolic\ link\ to\ *) -- readlink "old/$file" > $file1 -- readlink "new/$file" > $file2 -- if ! diff -u $file1 $file2; then -- echo "symlink target for $file differs" -- return 1 -- fi -- ;; -- *) -- if ! diff_two_files; then -- return 1 -- fi -- ;; -- esac -- return 0 --} -- --# We need /proc mounted for some tests, so check that it's mounted and --# complain if not. --PROC_MOUNTED=0 --if [ ! -d /proc/self/ ]; then -- echo "/proc is not mounted" -- mount -orw -n -tproc none /proc -- PROC_MOUNTED=1 --fi -- --# preserve cmp_spec result for check_all runs --ret=$RES --for file in $files; do -- if ! check_single_file $file; then -- ret=1 -- if test -z "$check_all"; then -- break -- fi -- fi --done -- --if [ "$PROC_MOUNTED" -eq "1" ]; then -- echo "Unmounting proc" -- umount /proc --fi -- --rm $file1 $file2 $dfile $rename_script --rm -rf $dir --if test "$ret" = 0; then -- echo "Package content is identical" --fi --exit $ret --# vim: tw=666 ts=2 et -diff --git a/same-build-result.sh b/same-build-result.sh -index c8907e2..7e9bd4f 100644 ---- a/same-build-result.sh -+++ b/same-build-result.sh -@@ -7,11 +7,11 @@ - # Enhanced by Andreas Jaeger - # - # The script decides if the new build differes from the former one, --# using rpm-check.sh. -+# using pkg-diff.sh. - # The script is called as part of the build process as: - # /usr/lib/build/same-build-result.sh /.build.oldpackages /usr/src/packages/RPMS /usr/src/packages/SRPMS - --CMPSCRIPT=${0%/*}/rpm-check.sh -+CMPSCRIPT=${0%/*}/pkg-diff.sh - SCMPSCRIPT=${0%/*}/srpm-check.sh - - check_all=1 --- -1.7.9.5 - diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/build-compare/files/functions.sh-improve-deb-and-ipk-checking.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/build-compare/files/functions.sh-improve-deb-and-ipk-checking.patch deleted file mode 100644 index 05420f89..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/build-compare/files/functions.sh-improve-deb-and-ipk-checking.patch +++ /dev/null @@ -1,117 +0,0 @@ -From b4eb7fde10318162bd2d02b9017ef51746752a91 Mon Sep 17 00:00:00 2001 -From: Robert Yang -Date: Thu, 14 Jul 2016 23:14:21 -0700 -Subject: [PATCH 4/4] functions.sh: improve deb and ipk checking - -* The deb and ipk's depends version string is like: - Depends: libc6 (>= 2.24) - Update trim_release_old and trim_release_new to match the bracket in - the end ")". - -* The deb's data tarball now is .tar.xz, and ipk's is .tar.gz. - -* Update adjust_controlfile() to make ituse trim_release_old and - trim_release_new. - -Upstream-Status: Submitted [https://github.com/openSUSE/build-compare/pull/10] - -Signed-off-by: Robert Yang ---- - functions.sh | 45 ++++++++++++++++++++++++++++----------------- - 1 file changed, 28 insertions(+), 17 deletions(-) - -diff --git a/functions.sh b/functions.sh -index aa572f9..fe493ba 100755 ---- a/functions.sh -+++ b/functions.sh -@@ -78,7 +78,7 @@ check_header() - function trim_release_old() - { - sed -e " -- /\(\/boot\|\/lib\/modules\|\/lib\/firmware\|\/usr\/src\|$version_release_old_regex_l\$\)/{s,$version_release_old_regex_l,@VERSION@-@RELEASE_LONG@,g;s,$version_release_old_regex_s,@VERSION@-@RELEASE_SHORT@,g} -+ /\(\/boot\|\/lib\/modules\|\/lib\/firmware\|\/usr\/src\|$version_release_old_regex_l\$\|$version_release_old_regex_l)\)/{s,$version_release_old_regex_l,@VERSION@-@RELEASE_LONG@,g;s,$version_release_old_regex_s,@VERSION@-@RELEASE_SHORT@,g} - s/\(\/var\/adm\/update-scripts\/\)${name_ver_rel_old_regex_l}\([^[:blank:]]\+\)/\1@NAME_VER_REL@\2/g - s/^ *//g - " -@@ -86,7 +86,7 @@ function trim_release_old() - function trim_release_new() - { - sed -e " -- /\(\/boot\|\/lib\/modules\|\/lib\/firmware\|\/usr\/src\|$version_release_new_regex_l\$\)/{s,$version_release_new_regex_l,@VERSION@-@RELEASE_LONG@,g;s,$version_release_new_regex_s,@VERSION@-@RELEASE_SHORT@,g} -+ /\(\/boot\|\/lib\/modules\|\/lib\/firmware\|\/usr\/src\|$version_release_new_regex_l\$\|$version_release_new_regex_l)\)/{s,$version_release_new_regex_l,@VERSION@-@RELEASE_LONG@,g;s,$version_release_new_regex_s,@VERSION@-@RELEASE_SHORT@,g} - s/\(\/var\/adm\/update-scripts\/\)${name_ver_rel_new_regex_l}\([^[:blank:]]\+\)/\1@NAME_VER_REL@\2/g - s/^ *//g - " -@@ -133,8 +133,8 @@ function unpackage() - ar x $file - tar xf control.tar.gz - rm control.tar.gz -- tar xf data.tar.gz -- rm data.tar.gz -+ tar xf data.tar.[xg]z -+ rm data.tar.[xg]z - ;; - esac - popd 1>/dev/null -@@ -164,6 +164,22 @@ function get_value() - sed -n -e "/^___${1}___/,/^___${1}___/p" $2 | sed -e "/^___${1}___/d" - } - -+# Set version_release_old_regex_s, version_release_old_regex_l and -+# name_ver_rel_old_regex_l, also the new ones. -+function set_regex() { -+ # Remember to quote the . which is in release -+ # Short version without B_CN -+ version_release_old_regex_s=${version_release_old%.*} -+ version_release_old_regex_s=${version_release_old_regex_s//./\\.} -+ version_release_new_regex_s=${version_release_new%.*} -+ version_release_new_regex_s=${version_release_new_regex_s//./\\.} -+ # Long version with B_CNT -+ version_release_old_regex_l=${version_release_old//./\\.} -+ version_release_new_regex_l=${version_release_new//./\\.} -+ name_ver_rel_old_regex_l=${name_ver_rel_old//./\\.} -+ name_ver_rel_new_regex_l=${name_ver_rel_new//./\\.} -+} -+ - # Compare just the rpm meta data of two rpms - # Returns: - # 0 in case of same content -@@ -194,17 +210,7 @@ function cmp_spec () - version_release_old="$(get_value QF_VER_REL $spec_old)" - name_ver_rel_old="$(get_value QF_NAME_VER_REL $spec_old)" - -- # Remember to quote the . which is in release -- # Short version without B_CN -- version_release_old_regex_s=${version_release_old%.*} -- version_release_old_regex_s=${version_release_old_regex_s//./\\.} -- version_release_new_regex_s=${version_release_new%.*} -- version_release_new_regex_s=${version_release_new_regex_s//./\\.} -- # Long version with B_CNT -- version_release_old_regex_l=${version_release_old//./\\.} -- version_release_new_regex_l=${version_release_new//./\\.} -- name_ver_rel_old_regex_l=${name_ver_rel_old//./\\.} -- name_ver_rel_new_regex_l=${name_ver_rel_new//./\\.} -+ set_regex - - # Check the whole spec file at first, return 0 immediately if the - # are the same. -@@ -285,9 +291,14 @@ function cmp_spec () - } - - function adjust_controlfile() { -- cat $1/control | sed '/^Version: /d' > $1/control.fixed -+ version_release_old="`sed -ne 's/^Version: \(.*\)/\1/p' $1/control`" -+ name_ver_rel_old="`sed -n -e 's/^Package: \(.*\)/\1/p' $1/control`-`sed -n -e 's/^Version: \(.*\)/\1/p' $1/control`" -+ version_release_new="`sed -ne 's/^Version: \(.*\)/\1/p' $2/control`" -+ name_ver_rel_new="`sed -n -e 's/^Package: \(.*\)/\1/p' $2/control`-`sed -n -e 's/^Version: \(.*\)/\1/p' $2/control`" -+ set_regex -+ cat $1/control | trim_release_old > $1/control.fixed - mv $1/control.fixed $1/control -- cat $2/control | sed '/^Version: /d' > $2/control.fixed -+ cat $2/control | trim_release_new > $2/control.fixed - mv $2/control.fixed $2/control - } - --- -2.9.0 - diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/build-compare/files/functions.sh-remove-space-at-head.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/build-compare/files/functions.sh-remove-space-at-head.patch deleted file mode 100644 index 02e96bab..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/build-compare/files/functions.sh-remove-space-at-head.patch +++ /dev/null @@ -1,41 +0,0 @@ -From 402a821e604f280e62c34bf4d40c6d1b4c6c892d Mon Sep 17 00:00:00 2001 -From: Robert Yang -Date: Mon, 4 Jul 2016 20:11:33 -0700 -Subject: [PATCH] functions.sh: remove space at head - -The command like: -rpm -qp --nodigest --nosignature --qf ' [%{REQUIRENAME}\n]\n' - ^^space - -The space will be printed, and will impact the check result, so remove it. - -Upstream-Status: Submitted [https://github.com/openSUSE/build-compare/pull/9] - -Signed-off-by: Robert Yang ---- - functions.sh | 2 ++ - 1 file changed, 2 insertions(+) - -diff --git a/functions.sh b/functions.sh -index 85c9003..b1069d2 100644 ---- a/functions.sh -+++ b/functions.sh -@@ -26,6 +26,7 @@ function trim_release_old() - sed -e " - /\(\/boot\|\/lib\/modules\|\/lib\/firmware\|\/usr\/src\|$version_release_old_regex_l\$\)/{s,$version_release_old_regex_l,@VERSION@-@RELEASE_LONG@,g;s,$version_release_old_regex_s,@VERSION@-@RELEASE_SHORT@,g} - s/\(\/var\/adm\/update-scripts\/\)${name_ver_rel_old_regex_l}\([^[:blank:]]\+\)/\1@NAME_VER_REL@\2/g -+ s/^ *//g - " - } - function trim_release_new() -@@ -33,6 +34,7 @@ function trim_release_new() - sed -e " - /\(\/boot\|\/lib\/modules\|\/lib\/firmware\|\/usr\/src\|$version_release_new_regex_l\$\)/{s,$version_release_new_regex_l,@VERSION@-@RELEASE_LONG@,g;s,$version_release_new_regex_s,@VERSION@-@RELEASE_SHORT@,g} - s/\(\/var\/adm\/update-scripts\/\)${name_ver_rel_new_regex_l}\([^[:blank:]]\+\)/\1@NAME_VER_REL@\2/g -+ s/^ *//g - " - } - # Get single directory or filename with long or short release string --- -2.9.0 - diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/build-compare/files/functions.sh-run-rpm-once-to-make-it-faster.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/build-compare/files/functions.sh-run-rpm-once-to-make-it-faster.patch deleted file mode 100644 index f5b99d94..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/build-compare/files/functions.sh-run-rpm-once-to-make-it-faster.patch +++ /dev/null @@ -1,361 +0,0 @@ -From f34d632c427b1e1570ef9136454fc01d8c9f10a6 Mon Sep 17 00:00:00 2001 -From: Robert Yang -Date: Thu, 7 Jul 2016 19:34:09 -0700 -Subject: [PATCH] functions.sh: run rpm once to make it faster - -The rpm tool is a heavy process, it ran 16 (or 17 for kernel) -"rpm -qp" times when the pkgs are identical, now we only run -"rpm -qp --qf " twice (one is for old pkg, and one is for -new), save the results to spec_old and spec_new, then use sed command to -get what we need later, this can make it 75% faster when the pkgs are -identical. Here is the rough data on my host Ubuntu 14.04.4, 32 cores -CPU and 128G mem: -* When the pkgs are identical: - - Before the patch: 1s - - After the patch: 0.26s - I compare the whole spec firstly, and return 0 if they are the same, - or go on checking one by one if not, without this, it would be 0.46s, - the gain is great when there are lot of packages, usually, we have - more than 10,000 rpms to compare. - -* When the pkgs are different: - That depends on where is the different, if the different is at the - comparing rpmtags stage: - - Before the patch: 0.26s - - After the patch: 0.29s - Increased 0.03s, but if the different is happend later than comparing - rpmtags, it will save time. - -Upstream-Status: Submitted [https://github.com/openSUSE/build-compare/pull/9] - -Signed-off-by: Robert Yang ---- - functions.sh | 245 ++++++++++++++++++++++++++++++++--------------------------- - 1 file changed, 132 insertions(+), 113 deletions(-) - mode change 100644 => 100755 functions.sh - -diff --git a/functions.sh b/functions.sh -old mode 100644 -new mode 100755 -index b1069d2..aa572f9 ---- a/functions.sh -+++ b/functions.sh -@@ -10,9 +10,63 @@ - - RPM="rpm -qp --nodigest --nosignature" - --check_header() -+# Name, Version, Release -+QF_NAME="%{NAME}" -+QF_VER_REL="%{VERSION}-%{RELEASE}" -+QF_NAME_VER_REL="%{NAME}-%{VERSION}-%{RELEASE}" -+ -+# provides destroy this because at least the self-provide includes the -+# -buildnumber :-( -+QF_PROVIDES="[%{PROVIDENAME} %{PROVIDEFLAGS} %{PROVIDEVERSION}\\n]\\n" -+QF_PROVIDES="$QF_PROVIDES [%{REQUIRENAME} %{REQUIREFLAGS} %{REQUIREVERSION}\\n]\\n" -+QF_PROVIDES="$QF_PROVIDES [%{CONFLICTNAME} %{CONFLICTFLAGS} %{CONFLICTVERSION}\\n]\\n" -+QF_PROVIDES="$QF_PROVIDES [%{OBSOLETENAME} %{OBSOLETEFLAGS} %{OBSOLETEVERSION}\\n]\\n" -+ -+# don't look at RELEASE, it contains our build number -+QF_TAGS="%{NAME} %{VERSION} %{EPOCH}\\n" -+QF_TAGS="$QF_TAGS %{SUMMARY}\\n%{DESCRIPTION}\\n" -+# the DISTURL tag can be used as checkin ID -+QF_TAGS="$QF_TAGS %{VENDOR} %{DISTRIBUTION} %{DISTURL}" -+QF_TAGS="$QF_TAGS %{LICENSE} %{LICENSE}\\n" -+QF_TAGS="$QF_TAGS %{GROUP} %{URL} %{EXCLUDEARCH} %{EXCLUDEOS} %{EXCLUSIVEARCH}\\n" -+QF_TAGS="$QF_TAGS %{EXCLUSIVEOS} %{RPMVERSION} %{PLATFORM}\\n" -+QF_TAGS="$QF_TAGS %{PAYLOADFORMAT} %{PAYLOADCOMPRESSOR} %{PAYLOADFLAGS}\\n" -+ -+# XXX We also need to check the existence (but not the content (!)) -+# of SIGGPG (and perhaps the other SIG*) -+# XXX We don't look at triggers -+QF_TAGS="$QF_TAGS [%{VERIFYSCRIPTPROG} %{VERIFYSCRIPT}]\\n" -+# Only the first ChangeLog entry; should be enough -+QF_TAGS="$QF_TAGS %{CHANGELOGTIME} %{CHANGELOGNAME} %{CHANGELOGTEXT}\\n" -+ -+# scripts, might contain release number -+QF_SCRIPT="[%{PREINPROG} %{PREIN}\\n]\\n[%{POSTINPROG} %{POSTIN}\\n]\\n[%{PREUNPROG} %{PREUN}\\n]\\n[%{POSTUNPROG} %{POSTUN}\\n]\\n" -+ -+# Now the files. We leave out mtime and size. For normal files -+# the size will influence the MD5 anyway. For directories the sizes can -+# differ, depending on which file system the package was built. To not -+# have to filter out directories we simply ignore all sizes. -+# Also leave out FILEDEVICES, FILEINODES (depends on the build host), -+# FILECOLORS, FILECLASS (normally useful but file output contains mtimes), -+# FILEDEPENDSX and FILEDEPENDSN. -+# Also FILELANGS (or?) -+QF_FILELIST="[%{FILENAMES} %{FILEFLAGS} %{FILESTATES} %{FILEMODES:octal} %{FILEUSERNAME} %{FILEGROUPNAME} %{FILERDEVS} %{FILEVERIFYFLAGS} %{FILELINKTOS}\n]\\n" -+# ??? what to do with FILEPROVIDE and FILEREQUIRE? -+ -+QF_CHECKSUM="[%{FILENAMES} %{FILEMD5S} %{FILEFLAGS}\n]\\n" -+ -+QF_ALL="\n___QF_NAME___\n${QF_NAME}\n___QF_NAME___\n" -+QF_ALL="$QF_ALL\n___QF_TAGS___\n${QF_TAGS}\n___QF_TAGS___\n" -+QF_ALL="$QF_ALL\n___QF_VER_REL___\n${QF_VER_REL}\n___QF_VER_REL___\n" -+QF_ALL="$QF_ALL\n___QF_NAME_VER_REL___\n${QF_NAME_VER_REL}\n___QF_NAME_VER_REL___\n" -+QF_ALL="$QF_ALL\n___QF_PROVIDES___\n${QF_PROVIDES}\n___QF_PROVIDES___\n" -+QF_ALL="$QF_ALL\n___QF_SCRIPT___\n${QF_SCRIPT}\n___QF_SCRIPT___\n" -+QF_ALL="$QF_ALL\n___QF_FILELIST___\n${QF_FILELIST}\n___QF_FILELIST___\n" -+QF_ALL="$QF_ALL\n___QF_CHECKSUM___\n${QF_CHECKSUM}\n___QF_CHECKSUM___\n" -+ -+check_header() - { -- $RPM --qf "$QF" "$1" -+ $RPM --qf "$1" "$2" - } - - # Trim version-release string: -@@ -47,18 +101,6 @@ function grep_release_new() - grep -E "(/boot|/lib/modules|/lib/firmware|/usr/src)/[^/]+(${version_release_new_regex_l}(\$|[^/]+\$)|${version_release_new_regex_s}(\$|[^/]+\$))" - } - --function check_provides() --{ -- local pkg=$1 -- # provides destroy this because at least the self-provide includes the -- # -buildnumber :-( -- QF="[%{PROVIDENAME} %{PROVIDEFLAGS} %{PROVIDEVERSION}\\n]\\n" -- QF="$QF [%{REQUIRENAME} %{REQUIREFLAGS} %{REQUIREVERSION}\\n]\\n" -- QF="$QF [%{CONFLICTNAME} %{CONFLICTFLAGS} %{CONFLICTVERSION}\\n]\\n" -- QF="$QF [%{OBSOLETENAME} %{OBSOLETEFLAGS} %{OBSOLETEVERSION}\\n]\\n" -- check_header "$pkg" --} -- - #usage unpackage $dir - # Unpack files in directory $dir - # like /usr/bin/unpackage - just for one file and with no options -@@ -98,6 +140,30 @@ function unpackage() - popd 1>/dev/null - } - -+# Run diff command on the files -+# $1: printed info -+# $2: file1 -+# $3: file2 -+function comp_file() -+{ -+ echo "comparing $1" -+ if ! diff -au $2 $3; then -+ if test -z "$check_all"; then -+ rm $2 $3 $spec_old $spec_new -+ return 1 -+ fi -+ fi -+ return 0 -+} -+ -+# Get var's value from specfile. -+# $1: var name -+# $2: specfile -+function get_value() -+{ -+ sed -n -e "/^___${1}___/,/^___${1}___/p" $2 | sed -e "/^___${1}___/d" -+} -+ - # Compare just the rpm meta data of two rpms - # Returns: - # 0 in case of same content -@@ -107,56 +173,29 @@ function unpackage() - function cmp_spec () - { - local RES -- local file1 file2 -+ local file_old file_new - local f - local sh=$1 - local oldrpm=$2 - local newrpm=$3 - -- QF="%{NAME}" -- -- # don't look at RELEASE, it contains our build number -- QF="$QF %{VERSION} %{EPOCH}\\n" -- QF="$QF %{SUMMARY}\\n%{DESCRIPTION}\\n" -- QF="$QF %{VENDOR} %{DISTRIBUTION} %{DISTURL}" -- QF="$QF %{LICENSE} %{LICENSE}\\n" -- QF="$QF %{GROUP} %{URL} %{EXCLUDEARCH} %{EXCLUDEOS} %{EXCLUSIVEARCH}\\n" -- QF="$QF %{EXCLUSIVEOS} %{RPMVERSION} %{PLATFORM}\\n" -- QF="$QF %{PAYLOADFORMAT} %{PAYLOADCOMPRESSOR} %{PAYLOADFLAGS}\\n" -- -- -- # XXX We also need to check the existence (but not the content (!)) -- # of SIGGPG (and perhaps the other SIG*) -- -- # XXX We don't look at triggers -- -- QF="$QF [%{VERIFYSCRIPTPROG} %{VERIFYSCRIPT}]\\n" -- -- # Only the first ChangeLog entry; should be enough -- QF="$QF %{CHANGELOGTIME} %{CHANGELOGNAME} %{CHANGELOGTEXT}\\n" -- -- file1=`mktemp` -- file2=`mktemp` -- -- check_header $oldrpm > $file1 -- check_header $newrpm > $file2 -- -- # the DISTURL tag can be used as checkin ID -- #echo "$QF" -- echo "comparing rpmtags" -- if ! diff -au $file1 $file2; then -- if test -z "$check_all"; then -- rm $file1 $file2 -- return 1 -- fi -- fi -- -+ file_old=`mktemp` -+ file_new=`mktemp` -+ spec_old=`mktemp` -+ spec_new=`mktemp` -+ -+ check_header "$QF_ALL" $oldrpm > $spec_old -+ check_header "$QF_ALL" $newrpm > $spec_new -+ -+ name_new="$(get_value QF_NAME $spec_new)" -+ version_release_new="$(get_value QF_VER_REL $spec_new)" -+ name_ver_rel_new="$(get_value QF_NAME_VER_REL $spec_new)" -+ -+ version_release_old="$(get_value QF_VER_REL $spec_old)" -+ name_ver_rel_old="$(get_value QF_NAME_VER_REL $spec_old)" -+ - # Remember to quote the . which is in release -- version_release_old=$($RPM --qf "%{VERSION}-%{RELEASE}" "$oldrpm") -- version_release_new=$($RPM --qf "%{VERSION}-%{RELEASE}" "$newrpm") -- name_ver_rel_old=$($RPM --qf "%{NAME}-%{VERSION}-%{RELEASE}" "$oldrpm") -- name_ver_rel_new=$($RPM --qf "%{NAME}-%{VERSION}-%{RELEASE}" "$newrpm") -- # Short version without B_CNT -+ # Short version without B_CN - version_release_old_regex_s=${version_release_old%.*} - version_release_old_regex_s=${version_release_old_regex_s//./\\.} - version_release_new_regex_s=${version_release_new%.*} -@@ -166,10 +205,27 @@ function cmp_spec () - version_release_new_regex_l=${version_release_new//./\\.} - name_ver_rel_old_regex_l=${name_ver_rel_old//./\\.} - name_ver_rel_new_regex_l=${name_ver_rel_new//./\\.} -+ -+ # Check the whole spec file at first, return 0 immediately if the -+ # are the same. -+ cat $spec_old | trim_release_old > $file_old -+ cat $spec_new | trim_release_new > $file_new -+ echo "comparing the whole specfile" -+ if diff -au $spec_old $spec_new; then -+ if test -z "$check_all"; then -+ rm $file_old $file_new $spec_old $spec_new -+ return 0 -+ fi -+ fi -+ -+ get_value QF_TAGS $spec_old > $file_old -+ get_value QF_TAGS $spec_new > $file_new -+ comp_file rpmtags $file_old $file_new || return 1 -+ - # This might happen when?! - echo "comparing RELEASE" - if [ "${version_release_old%.*}" != "${version_release_new%.*}" ] ; then -- case $($RPM --qf '%{NAME}' "$newrpm") in -+ case $name_new in - kernel-*) - # Make sure all kernel packages have the same %RELEASE - echo "release prefix mismatch" -@@ -181,71 +237,34 @@ function cmp_spec () - *) ;; - esac - fi -- -- check_provides $oldrpm | trim_release_old | sort > $file1 -- check_provides $newrpm | trim_release_new | sort > $file2 -- -- echo "comparing PROVIDES" -- if ! diff -au $file1 $file2; then -- if test -z "$check_all"; then -- rm $file1 $file2 -- return 1 -- fi -- fi - -- # scripts, might contain release number -- QF="[%{PREINPROG} %{PREIN}\\n]\\n[%{POSTINPROG} %{POSTIN}\\n]\\n[%{PREUNPROG} %{PREUN}\\n]\\n[%{POSTUNPROG} %{POSTUN}\\n]\\n" -- check_header $oldrpm | trim_release_old > $file1 -- check_header $newrpm | trim_release_new > $file2 -+ get_value QF_PROVIDES $spec_old | trim_release_old | sort > $file_old -+ get_value QF_PROVIDES $spec_new | trim_release_new | sort > $file_new -+ comp_file PROVIDES $file_old $file_new || return 1 -+ -+ get_value QF_SCRIPT $spec_old | trim_release_old > $file_old -+ get_value QF_SCRIPT $spec_new | trim_release_new > $file_new -+ comp_file scripts $file_old $file_new || return 1 - -- echo "comparing scripts" -- if ! diff -au $file1 $file2; then -- if test -z "$check_all"; then -- rm $file1 $file2 -- return 1 -- fi -- fi -- - # First check the file attributes and later the md5s -- -- # Now the files. We leave out mtime and size. For normal files -- # the size will influence the MD5 anyway. For directories the sizes can -- # differ, depending on which file system the package was built. To not -- # have to filter out directories we simply ignore all sizes. -- # Also leave out FILEDEVICES, FILEINODES (depends on the build host), -- # FILECOLORS, FILECLASS (normally useful but file output contains mtimes), -- # FILEDEPENDSX and FILEDEPENDSN. -- # Also FILELANGS (or?) -- QF="[%{FILENAMES} %{FILEFLAGS} %{FILESTATES} %{FILEMODES:octal} %{FILEUSERNAME} %{FILEGROUPNAME} %{FILERDEVS} %{FILEVERIFYFLAGS} %{FILELINKTOS}\n]\\n" -- # ??? what to do with FILEPROVIDE and FILEREQUIRE? -- -- check_header $oldrpm | trim_release_old > $file1 -- check_header $newrpm | trim_release_new > $file2 -- -- echo "comparing filelist" -- if ! diff -au $file1 $file2; then -- if test -z "$check_all"; then -- rm $file1 $file2 -- return 1 -- fi -- fi -- -+ get_value QF_FILELIST $spec_old | trim_release_old > $file_old -+ get_value QF_FILELIST $spec_new | trim_release_new > $file_new -+ comp_file filelist $file_old $file_new || return 1 -+ - # now the md5sums. if they are different, we check more detailed - # if there are different filenames, we will already have aborted before - # file flag 64 means "ghost", filter those out. -- QF="[%{FILENAMES} %{FILEMD5S} %{FILEFLAGS}\n]\\n" -- check_header $oldrpm |grep -v " 64$"| trim_release_old > $file1 -- check_header $newrpm |grep -v " 64$"| trim_release_new > $file2 -- -+ get_value QF_CHECKSUM $spec_old | grep -v " 64$" | trim_release_old > $file_old -+ get_value QF_CHECKSUM $spec_new | grep -v " 64$" | trim_release_new > $file_new - RES=2 - # done if the same - echo "comparing file checksum" -- if cmp -s $file1 $file2; then -+ if cmp -s $file_old $file_new; then - RES=0 - fi -- -+ - # Get only files with different MD5sums -- files=`diff -U0 $file1 $file2 | fgrep -v +++ | grep ^+ | cut -b2- | awk '{print $1}'` -+ files=`diff -U0 $file_old $file_new | fgrep -v +++ | grep ^+ | cut -b2- | awk '{print $1}'` - - if test -f "$sh"; then - echo "creating rename script" -@@ -261,7 +280,7 @@ function cmp_spec () - done >> "${sh}" - fi - # -- rm $file1 $file2 -+ rm $file_old $file_new - return $RES - } - --- -2.9.0 - diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/build-compare/files/pkg-diff.sh-check-for-fifo-named-pipe.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/build-compare/files/pkg-diff.sh-check-for-fifo-named-pipe.patch deleted file mode 100644 index e4f0c541..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/build-compare/files/pkg-diff.sh-check-for-fifo-named-pipe.patch +++ /dev/null @@ -1,35 +0,0 @@ -From a78fe4f792a9ac9f4d364e836c8855f48561d6f2 Mon Sep 17 00:00:00 2001 -From: Robert Yang -Date: Thu, 14 Jul 2016 19:52:18 -0700 -Subject: [PATCH 3/4] pkg-diff.sh: check for fifo(named pipe) - -Otherwise "cmp -s fifo1 fifo2" will wait for inputing forever. - -Upstream-Status: Submitted [https://github.com/openSUSE/build-compare/pull/10] - -Signed-off-by: Robert Yang ---- - pkg-diff.sh | 7 +++++++ - 1 file changed, 7 insertions(+) - -diff --git a/pkg-diff.sh b/pkg-diff.sh -index 5dd3a38..1f353aa 100644 ---- a/pkg-diff.sh -+++ b/pkg-diff.sh -@@ -735,6 +735,13 @@ check_single_file() - return 1 - fi - ;; -+ fifo*pipe*) -+ ftype_new="`/usr/bin/file new/$file | sed -e 's@^[^:]\+:[[:blank:]]*@@' -e 's@[[:blank:]]*$@@'`" -+ if [ "$ftype_new" = "$ftype" ]; then -+ return 0 -+ fi -+ return 1 -+ ;; - *) - if ! diff_two_files; then - return 1 --- -2.9.0 - diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/build-compare/files/pkg-diff.sh-check_single_file-return-at-once-when-sa.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/build-compare/files/pkg-diff.sh-check_single_file-return-at-once-when-sa.patch deleted file mode 100644 index b42af253..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/build-compare/files/pkg-diff.sh-check_single_file-return-at-once-when-sa.patch +++ /dev/null @@ -1,37 +0,0 @@ -From 657983ef9ca8f8354172682e17408c4f6b5bc667 Mon Sep 17 00:00:00 2001 -From: Robert Yang -Date: Thu, 14 Jul 2016 19:46:08 -0700 -Subject: [PATCH 1/4] pkg-diff.sh: check_single_file(): return at once when - same - -If the two files are the same, return at once, this can save a lot of -time when there are archives inside archives. - -Upstream-Status: Submitted [https://github.com/openSUSE/build-compare/pull/10] - -Signed-off-by: Robert Yang ---- - pkg-diff.sh | 7 +++++++ - 1 file changed, 7 insertions(+) - -diff --git a/pkg-diff.sh b/pkg-diff.sh -index 3cf10aa..402d4a4 100644 ---- a/pkg-diff.sh -+++ b/pkg-diff.sh -@@ -293,6 +293,13 @@ check_compressed_file() - check_single_file() - { - local file="$1" -+ -+ # If the two files are the same, return at once. -+ if [ -f old/$file -a -f new/$file ]; then -+ if cmp -s old/$file new/$file; then -+ return 0 -+ fi -+ fi - case $file in - *.spec) - sed -i -e "s,Release:.*$release1,Release: @RELEASE@," old/$file --- -2.9.0 - diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/build-compare/files/pkg-diff.sh-remove-space-in-the-end-for-ftype.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/build-compare/files/pkg-diff.sh-remove-space-in-the-end-for-ftype.patch deleted file mode 100644 index 80771723..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/build-compare/files/pkg-diff.sh-remove-space-in-the-end-for-ftype.patch +++ /dev/null @@ -1,32 +0,0 @@ -From 836a6783df9c582a834fca239f227063a5687715 Mon Sep 17 00:00:00 2001 -From: Robert Yang -Date: Thu, 14 Jul 2016 19:49:12 -0700 -Subject: [PATCH 2/4] pkg-diff.sh: remove space in the end for ftype - -Versions of file like 5.14 returns a " " in the end, for example: -ftype="directory ", but we need ftype="directory", remove the space to -fix the problem. - -Upstream-Status: Submitted [https://github.com/openSUSE/build-compare/pull/10] - -Signed-off-by: Robert Yang ---- - pkg-diff.sh | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/pkg-diff.sh b/pkg-diff.sh -index 402d4a4..5dd3a38 100644 ---- a/pkg-diff.sh -+++ b/pkg-diff.sh -@@ -633,7 +633,7 @@ check_single_file() - ;; - esac - -- ftype=`/usr/bin/file old/$file | sed 's@^[^:]\+:[[:blank:]]*@@'` -+ ftype=`/usr/bin/file old/$file | sed -e 's@^[^:]\+:[[:blank:]]*@@' -e 's@[[:blank:]]*$@@'` - case $ftype in - PE32\ executable*Mono\/\.Net\ assembly*) - echo "PE32 Mono/.Net assembly: $file" --- -2.9.0 - diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/ccache/ccache_3.7.1.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/ccache/ccache_3.7.1.bb deleted file mode 100644 index 1db7094b..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/ccache/ccache_3.7.1.bb +++ /dev/null @@ -1,7 +0,0 @@ -require ccache.inc - -LICENSE = "GPLv3+" -LIC_FILES_CHKSUM = "file://LICENSE.adoc;md5=0094c59039cec66b8a4c905204333514" - -SRC_URI[md5sum] = "74339465ab87e0b406985ed69515f19b" -SRC_URI[sha256sum] = "e562fcdbe766406b6fe4bf97ce5c001d2be8a17465f33bcddefc9499bbb057d8" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/ccache/ccache_3.7.3.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/ccache/ccache_3.7.3.bb new file mode 100644 index 00000000..c6a682ee --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/ccache/ccache_3.7.3.bb @@ -0,0 +1,7 @@ +require ccache.inc + +LICENSE = "GPLv3+" +LIC_FILES_CHKSUM = "file://LICENSE.adoc;md5=0094c59039cec66b8a4c905204333514" + +SRC_URI[md5sum] = "7be62ea6e190941a8c12a3d5394fd926" +SRC_URI[sha256sum] = "355955a61562c53c4ec4669e1c92708b0008f50d214b27f07a87cf4a1fa6b01e" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/cdrtools/cdrtools-native_3.01.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/cdrtools/cdrtools-native_3.01.bb index 78e1565e..1c602e7c 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/cdrtools/cdrtools-native_3.01.bb +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/cdrtools/cdrtools-native_3.01.bb @@ -7,7 +7,10 @@ SECTION = "console/utils" LICENSE = "GPLv2 & CDDL-1.0 & LGPLv2.1+" LIC_FILES_CHKSUM = "file://COPYING;md5=32f68170be424c2cd64804337726b312" -SRC_URI = "${SOURCEFORGE_MIRROR}/project/cdrtools/cdrtools-${REALPV}.tar.bz2" +SRC_URI = " \ + ${SOURCEFORGE_MIRROR}/project/cdrtools/cdrtools-${REALPV}.tar.bz2 \ + file://0001-Don-t-set-uid-gid-during-install.patch \ + " UPSTREAM_VERSION_UNKNOWN = "1" SRC_URI[md5sum] = "7d45c5b7e1f78d85d1583b361aee6e8b" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/cdrtools/cdrtools/0001-Don-t-set-uid-gid-during-install.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/cdrtools/cdrtools/0001-Don-t-set-uid-gid-during-install.patch new file mode 100644 index 00000000..9d38294b --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/cdrtools/cdrtools/0001-Don-t-set-uid-gid-during-install.patch @@ -0,0 +1,27 @@ +From 529cd5b007aa681c3ca14e5ab1e30469dd51646b Mon Sep 17 00:00:00 2001 +From: Paul Barker +Date: Tue, 12 Nov 2019 22:17:19 +0000 +Subject: [PATCH] Don't set uid/gid during install + +Signed-off-by: Paul Barker +Upstream-Status: Inappropriate [native] +--- + RULES/rules.prg | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/RULES/rules.prg b/RULES/rules.prg +index 023555c..f70f1a7 100644 +--- a/RULES/rules.prg ++++ b/RULES/rules.prg +@@ -94,7 +94,7 @@ INSGRP= $(__DEFINSGRP:$(_UNIQ)%=%) + + LD= @echo " ==> LINKING \"$@\""; ld + LOCALIZE= @echo " ==> LOCALIZING \"$@\""; $(RM_F) $@; cp +-INSTALL= @echo " ==> INSTALLING \"$@\""; sh $(SRCROOT)/conf/install-sh -c -m $(INSMODEINS) -o $(INSUSR) -g $(INSGRP) ++INSTALL= @echo " ==> INSTALLING \"$@\""; sh $(SRCROOT)/conf/install-sh -c -m $(INSMODEINS) + CHMOD= @echo " ==> SETTING PERMISSIONS ON \"$@\""; chmod + CHOWN= @echo " ==> SETTING OWNER ON \"$@\""; chown + CHGRP= @echo " ==> SETTING GROUP ON \"$@\""; chgrp +-- +2.24.0 + diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/cmake/cmake-native_3.14.1.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/cmake/cmake-native_3.15.3.bb similarity index 100% rename from Contrib-Inspur/openbmc/poky/meta/recipes-devtools/cmake/cmake-native_3.14.1.bb rename to Contrib-Inspur/openbmc/poky/meta/recipes-devtools/cmake/cmake-native_3.15.3.bb diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/cmake/cmake.inc b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/cmake/cmake.inc index 5b0bce68..d8a9e2dd 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/cmake/cmake.inc +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/cmake/cmake.inc @@ -2,10 +2,14 @@ # Released under the MIT license (see packages/COPYING) SUMMARY = "Cross-platform, open-source make system" +DESCRIPTION = "CMake is used to control the software compilation process \ +using simple platform and compiler independent configuration files. CMake \ +generates native makefiles and workspaces that can be used in the compiler \ +environment of your choice." HOMEPAGE = "http://www.cmake.org/" BUGTRACKER = "http://public.kitware.com/Bug/my_view_page.php" SECTION = "console/utils" -LICENSE = "BSD" +LICENSE = "BSD-3-Clause" LIC_FILES_CHKSUM = "file://Copyright.txt;md5=622747147b46f22e1953876a7cba3323 \ file://Source/cmake.h;md5=4494dee184212fc89c469c3acd555a14;beginline=1;endline=3 \ " @@ -18,7 +22,7 @@ SRC_URI = "https://cmake.org/files/v${CMAKE_MAJOR_VERSION}/cmake-${PV}.tar.gz \ file://0004-Fail-silently-if-system-Qt-installation-is-broken.patch \ " -SRC_URI[md5sum] = "7efe5394e85c3292ad020b8b70e55669" -SRC_URI[sha256sum] = "7321be640406338fc12590609c42b0fae7ea12980855c1be363d25dcd76bb25f" +SRC_URI[md5sum] = "bf69e837eeda3dd4e9f52cffcf546a11" +SRC_URI[sha256sum] = "13958243a01365b05652fa01b21d40fa834f70a9e30efa69c02604e64f58b8f5" UPSTREAM_CHECK_REGEX = "cmake-(?P\d+(\.\d+)+)\.tar" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/cmake/cmake/0001-CMakeDetermineSystem-use-oe-environment-vars-to-load.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/cmake/cmake/0001-CMakeDetermineSystem-use-oe-environment-vars-to-load.patch index cdeea647..3720833d 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/cmake/cmake/0001-CMakeDetermineSystem-use-oe-environment-vars-to-load.patch +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/cmake/cmake/0001-CMakeDetermineSystem-use-oe-environment-vars-to-load.patch @@ -1,9 +1,8 @@ -From 71085723f8028b3e1c4029fc1abe1243ac49ffc6 Mon Sep 17 00:00:00 2001 +From 1e67c3fe52c6c51c00cf1ebb0bfc30c7a5ef9fdb Mon Sep 17 00:00:00 2001 From: Cody P Schafer Date: Thu, 27 Apr 2017 11:35:05 -0400 -Subject: [PATCH 1/5] CMakeDetermineSystem: use oe environment vars to load - default toolchain file in sdk -Organization: O.S. Systems Software LTDA. +Subject: [PATCH] CMakeDetermineSystem: use oe environment vars to load default + toolchain file in sdk Passing the toolchain by: @@ -20,12 +19,13 @@ because '-D' options are cache entries themselves. Upstream-Status: Inappropriate [oe-core specific] Signed-off-by: Cody P Schafer Signed-off-by: Otavio Salvador + --- Modules/CMakeDetermineSystem.cmake | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/Modules/CMakeDetermineSystem.cmake b/Modules/CMakeDetermineSystem.cmake -index 600d5580e..32d7f1945 100644 +index dc208c6..e0af4ca 100644 --- a/Modules/CMakeDetermineSystem.cmake +++ b/Modules/CMakeDetermineSystem.cmake @@ -81,6 +81,13 @@ else() @@ -42,6 +42,3 @@ index 600d5580e..32d7f1945 100644 # 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. --- -2.18.0 - diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/cmake/cmake/0002-cmake-Prevent-the-detection-of-Qt5.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/cmake/cmake/0002-cmake-Prevent-the-detection-of-Qt5.patch index 8d2dc10c..db229e63 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/cmake/cmake/0002-cmake-Prevent-the-detection-of-Qt5.patch +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/cmake/cmake/0002-cmake-Prevent-the-detection-of-Qt5.patch @@ -1,7 +1,8 @@ -From b4b6e9b1be33213ede3f612e87840c0045824d9e Mon Sep 17 00:00:00 2001 +From 5cb6c86696f842274043e7d406f84b3ead1c36e0 Mon Sep 17 00:00:00 2001 From: Otavio Salvador Date: Wed, 17 Jan 2018 10:02:14 -0200 -Subject: [PATCH 2/5] cmake: Prevent the detection of Qt5 +Subject: [PATCH] cmake: Prevent the detection of Qt5 + Organization: O.S. Systems Software LTDA. CMake doesn't have dependency on qt4/qt5, so these tests usually fail @@ -12,6 +13,7 @@ while running the test in cmake) Upstream-Status: Inappropriate [configuration] Signed-off-by: Otavio Salvador + --- Source/QtDialog/CMakeLists.txt | 2 +- Tests/CMakeLists.txt | 2 +- @@ -23,12 +25,12 @@ Signed-off-by: Otavio Salvador 7 files changed, 8 insertions(+), 9 deletions(-) diff --git a/Source/QtDialog/CMakeLists.txt b/Source/QtDialog/CMakeLists.txt -index 9ce0323844..06c86d63eb 100644 +index cb89d19..9e68981 100644 --- a/Source/QtDialog/CMakeLists.txt +++ b/Source/QtDialog/CMakeLists.txt -@@ -6,7 +6,7 @@ if(POLICY CMP0020) - cmake_policy(SET CMP0020 NEW) # Drop when CMake >= 2.8.11 required - endif() +@@ -3,7 +3,7 @@ + + project(QtDialog) CMake_OPTIONAL_COMPONENT(cmake-gui) -find_package(Qt5Widgets QUIET) +#find_package(Qt5Widgets QUIET) @@ -36,10 +38,10 @@ index 9ce0323844..06c86d63eb 100644 include_directories(${Qt5Widgets_INCLUDE_DIRS}) add_definitions(${Qt5Widgets_DEFINITONS}) diff --git a/Tests/CMakeLists.txt b/Tests/CMakeLists.txt -index ed98d974b0..7adfbc301b 100644 +index e73b277..91b8b67 100644 --- a/Tests/CMakeLists.txt +++ b/Tests/CMakeLists.txt -@@ -1342,7 +1342,7 @@ ${CMake_BINARY_DIR}/bin/cmake -DDIR=dev -P ${CMake_SOURCE_DIR}/Utilities/Release +@@ -1348,7 +1348,7 @@ ${CMake_SOURCE_DIR}/Utilities/Release/push.bash --dir dev -- '${CMake_BUILD_NIGH set(CMake_TEST_Qt5 1) endif() if(CMake_TEST_Qt5) @@ -49,7 +51,7 @@ index ed98d974b0..7adfbc301b 100644 if(CMake_TEST_Qt5 AND Qt5Widgets_FOUND) add_subdirectory(Qt5Autogen) diff --git a/Tests/Qt4And5Automoc/CMakeLists.txt b/Tests/Qt4And5Automoc/CMakeLists.txt -index ad74961d9f..a9dd74b151 100644 +index ad74961..a9dd74b 100644 --- a/Tests/Qt4And5Automoc/CMakeLists.txt +++ b/Tests/Qt4And5Automoc/CMakeLists.txt @@ -3,11 +3,11 @@ cmake_minimum_required(VERSION 2.8.12) @@ -67,7 +69,7 @@ index ad74961d9f..a9dd74b151 100644 set(CMAKE_AUTOMOC ON) diff --git a/Tests/QtAutogen/AutogenGuiTest.cmake b/Tests/QtAutogen/AutogenGuiTest.cmake -index b76d341a45..a6e0acbafa 100644 +index b76d341..a6e0acb 100644 --- a/Tests/QtAutogen/AutogenGuiTest.cmake +++ b/Tests/QtAutogen/AutogenGuiTest.cmake @@ -22,8 +22,7 @@ if (QT_TEST_VERSION EQUAL 4) @@ -81,7 +83,7 @@ index b76d341a45..a6e0acbafa 100644 set(QT_QTCORE_TARGET Qt5::Core) set(QT_LIBRARIES Qt5::Widgets) diff --git a/Tests/QtAutogen/MacOsFW/CMakeLists.txt b/Tests/QtAutogen/MacOsFW/CMakeLists.txt -index c08efc47a2..87e25d9391 100644 +index c08efc4..87e25d9 100644 --- a/Tests/QtAutogen/MacOsFW/CMakeLists.txt +++ b/Tests/QtAutogen/MacOsFW/CMakeLists.txt @@ -2,7 +2,7 @@ cmake_minimum_required(VERSION 3.10) @@ -94,10 +96,10 @@ index c08efc47a2..87e25d9391 100644 set(CMAKE_CXX_STANDARD 11) set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/output/bin) diff --git a/Tests/RunCMake/CMakeLists.txt b/Tests/RunCMake/CMakeLists.txt -index 1f3e5c3006..8ed8d6ac54 100644 +index 69f8162..f389523 100644 --- a/Tests/RunCMake/CMakeLists.txt +++ b/Tests/RunCMake/CMakeLists.txt -@@ -326,7 +326,7 @@ add_RunCMake_test(configure_file) +@@ -334,7 +334,7 @@ add_RunCMake_test(configure_file) add_RunCMake_test(CTestTimeoutAfterMatch) find_package(Qt4 QUIET) @@ -107,7 +109,7 @@ index 1f3e5c3006..8ed8d6ac54 100644 add_RunCMake_test(IncompatibleQt) endif() diff --git a/Tests/RunCMake/IncompatibleQt/IncompatibleQt.cmake b/Tests/RunCMake/IncompatibleQt/IncompatibleQt.cmake -index 4fccdc418f..b76e1e5313 100644 +index 4fccdc4..b76e1e5 100644 --- a/Tests/RunCMake/IncompatibleQt/IncompatibleQt.cmake +++ b/Tests/RunCMake/IncompatibleQt/IncompatibleQt.cmake @@ -1,6 +1,6 @@ @@ -118,6 +120,3 @@ index 4fccdc418f..b76e1e5313 100644 add_executable(mainexe main.cpp) target_link_libraries(mainexe Qt4::QtCore Qt5::Core) --- -2.11.0 - diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/cmake/cmake/0003-cmake-support-OpenEmbedded-Qt4-tool-binary-names.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/cmake/cmake/0003-cmake-support-OpenEmbedded-Qt4-tool-binary-names.patch index 4f2e8433..d7d87a52 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/cmake/cmake/0003-cmake-support-OpenEmbedded-Qt4-tool-binary-names.patch +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/cmake/cmake/0003-cmake-support-OpenEmbedded-Qt4-tool-binary-names.patch @@ -1,8 +1,7 @@ -From c783ceeef485c23e13c3d9f0418719cb0e0b86ee Mon Sep 17 00:00:00 2001 +From b003857d3481105c473e2e75bad4e9e2c6e70004 Mon Sep 17 00:00:00 2001 From: Otavio Salvador Date: Thu, 12 May 2011 15:36:03 +0000 -Subject: [PATCH 3/5] cmake: support OpenEmbedded Qt4 tool binary names -Organization: O.S. Systems Software LTDA. +Subject: [PATCH] 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 @@ -20,12 +19,13 @@ Instead of find_program, _find_qt4_program is now used. Signed-off-by: Moritz Blume Signed-off-by: Otavio Salvador + --- Modules/FindQt4.cmake | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/Modules/FindQt4.cmake b/Modules/FindQt4.cmake -index 847a798af..7ad981879 100644 +index a145b46..7e18243 100644 --- a/Modules/FindQt4.cmake +++ b/Modules/FindQt4.cmake @@ -518,7 +518,7 @@ endfunction() @@ -54,6 +54,3 @@ index 847a798af..7ad981879 100644 _find_qt4_program(QT_DESIGNER_EXECUTABLE Qt4::designer designer-qt4 designer4 designer) _find_qt4_program(QT_LINGUIST_EXECUTABLE Qt4::linguist linguist-qt4 linguist4 linguist) --- -2.18.0 - diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/cmake/cmake/0004-Fail-silently-if-system-Qt-installation-is-broken.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/cmake/cmake/0004-Fail-silently-if-system-Qt-installation-is-broken.patch index 6c67dcf1..676e2857 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/cmake/cmake/0004-Fail-silently-if-system-Qt-installation-is-broken.patch +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/cmake/cmake/0004-Fail-silently-if-system-Qt-installation-is-broken.patch @@ -1,8 +1,7 @@ -From 9516fc4260f701c6d9db0c341bb36480362e1747 Mon Sep 17 00:00:00 2001 +From d4a78e8739e845c2963666f7ef6a6c7a89827988 Mon Sep 17 00:00:00 2001 From: Otavio Salvador Date: Thu, 5 Jul 2018 10:26:48 -0300 -Subject: [PATCH 4/5] Fail silently if system Qt installation is broken -Organization: O.S. Systems Software LTDA. +Subject: [PATCH] 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: @@ -23,12 +22,13 @@ within the if(QT_QTCORE_FOUND) statement. Signed-off-by: Moritz Blume Signed-off-by: Otavio Salvador + --- Modules/FindQt4.cmake | 39 ++++++++++++++++++++------------------- 1 file changed, 20 insertions(+), 19 deletions(-) diff --git a/Modules/FindQt4.cmake b/Modules/FindQt4.cmake -index 7ad981879..8b6f43cda 100644 +index 7e18243..497d5c3 100644 --- a/Modules/FindQt4.cmake +++ b/Modules/FindQt4.cmake @@ -988,25 +988,26 @@ if (QT_QMAKE_EXECUTABLE AND @@ -77,6 +77,3 @@ index 7ad981879..8b6f43cda 100644 foreach(QT_MODULE ${QT_MODULES}) _QT4_ADJUST_LIB_VARS(${QT_MODULE}) --- -2.18.0 - diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/cmake/cmake_3.14.1.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/cmake/cmake_3.15.3.bb similarity index 100% rename from Contrib-Inspur/openbmc/poky/meta/recipes-devtools/cmake/cmake_3.14.1.bb rename to Contrib-Inspur/openbmc/poky/meta/recipes-devtools/cmake/cmake_3.15.3.bb diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/createrepo-c/createrepo-c_0.14.2.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/createrepo-c/createrepo-c_0.14.2.bb deleted file mode 100644 index 80c559fe..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/createrepo-c/createrepo-c_0.14.2.bb +++ /dev/null @@ -1,34 +0,0 @@ -DESCRIPTION = "C implementation of createrepo." -HOMEPAGE = "https://github.com/rpm-software-management/createrepo_c/wiki" - -LICENSE = "GPLv2" -LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263" - -SRC_URI = "git://github.com/rpm-software-management/createrepo_c \ - file://0001-Do-not-set-PYTHON_INSTALL_DIR-by-running-python.patch \ - " - -SRCREV = "f390af98c8f1bb04010e293ea864eae160f75879" - -S = "${WORKDIR}/git" - -DEPENDS = "expat curl glib-2.0 libxml2 openssl bzip2 zlib file sqlite3 xz rpm libmodulemd" -DEPENDS_append_class-native = " file-replacement-native" - -inherit cmake pkgconfig bash-completion distutils3-base - -EXTRA_OECMAKE = " -DPYTHON_INSTALL_DIR=${PYTHON_SITEPACKAGES_DIR} -DPYTHON_DESIRED=3 -DWITH_ZCHUNK=OFF" - -BBCLASSEXTEND = "native nativesdk" - -# Direct createrepo to read rpm configuration from our sysroot, not the one it was compiled in -do_install_append_class-native() { - create_wrapper ${D}/${bindir}/createrepo_c \ - RPM_CONFIGDIR=${STAGING_LIBDIR_NATIVE}/rpm -} - -do_install_append_class-nativesdk() { - create_wrapper ${D}/${bindir}/createrepo_c \ - RPM_CONFIGDIR=${SDKPATHNATIVE}${libdir_nativesdk}/rpm - rm -rf ${D}/etc -} diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/createrepo-c/createrepo-c_0.15.1.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/createrepo-c/createrepo-c_0.15.1.bb new file mode 100644 index 00000000..797db738 --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/createrepo-c/createrepo-c_0.15.1.bb @@ -0,0 +1,34 @@ +DESCRIPTION = "C implementation of createrepo." +HOMEPAGE = "https://github.com/rpm-software-management/createrepo_c/wiki" + +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263" + +SRC_URI = "git://github.com/rpm-software-management/createrepo_c \ + file://0001-Do-not-set-PYTHON_INSTALL_DIR-by-running-python.patch \ + " + +SRCREV = "bc67f19ed09593e3886ebeee2391e9d51cc3439f" + +S = "${WORKDIR}/git" + +DEPENDS = "expat curl glib-2.0 libxml2 openssl bzip2 zlib file sqlite3 xz rpm" +DEPENDS_append_class-native = " file-replacement-native" + +inherit cmake pkgconfig bash-completion distutils3-base + +EXTRA_OECMAKE = " -DPYTHON_INSTALL_DIR=${PYTHON_SITEPACKAGES_DIR} -DPYTHON_DESIRED=3 -DWITH_ZCHUNK=OFF -DENABLE_DRPM=OFF -DWITH_LIBMODULEMD=OFF" + +BBCLASSEXTEND = "native nativesdk" + +# Direct createrepo to read rpm configuration from our sysroot, not the one it was compiled in +do_install_append_class-native() { + create_wrapper ${D}/${bindir}/createrepo_c \ + RPM_CONFIGDIR=${STAGING_LIBDIR_NATIVE}/rpm +} + +do_install_append_class-nativesdk() { + create_wrapper ${D}/${bindir}/createrepo_c \ + RPM_CONFIGDIR=${SDKPATHNATIVE}${libdir_nativesdk}/rpm + rm -rf ${D}/etc +} diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/cve-check-tool/cve-check-tool_5.6.4.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/cve-check-tool/cve-check-tool_5.6.4.bb deleted file mode 100644 index 1c84fb1c..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/cve-check-tool/cve-check-tool_5.6.4.bb +++ /dev/null @@ -1,62 +0,0 @@ -SUMMARY = "cve-check-tool" -DESCRIPTION = "cve-check-tool is a tool for checking known (public) CVEs.\ -The tool will identify potentially vunlnerable software packages within Linux distributions through version matching." -HOMEPAGE = "https://github.com/ikeydoherty/cve-check-tool" -SECTION = "Development/Tools" -LICENSE = "GPL-2.0+" -LIC_FILES_CHKSUM = "file://LICENSE;md5=e8c1458438ead3c34974bc0be3a03ed6" - -SRC_URI = "https://github.com/ikeydoherty/${BPN}/releases/download/v${PV}/${BP}.tar.xz \ - file://check-for-malloc_trim-before-using-it.patch \ - file://0001-print-progress-in-percent-when-downloading-CVE-db.patch \ - file://0001-curl-allow-overriding-default-CA-certificate-file.patch \ - file://0001-update-Compare-computed-vs-expected-sha256-digit-str.patch \ - file://0001-Fix-freeing-memory-allocated-by-sqlite.patch \ - " - -SRC_URI[md5sum] = "c5f4247140fc9be3bf41491d31a34155" -SRC_URI[sha256sum] = "b8f283be718af8d31232ac1bfc10a0378fb958aaaa49af39168f8acf501e6a5b" - -UPSTREAM_CHECK_URI = "https://github.com/ikeydoherty/cve-check-tool/releases" - -DEPENDS = "libcheck glib-2.0 json-glib curl libxml2 sqlite3 openssl ca-certificates" - -RDEPENDS_${PN} = "ca-certificates" - -inherit pkgconfig autotools - -EXTRA_OECONF = "--disable-coverage --enable-relative-plugins" -CFLAGS_append = " -Wno-error=pedantic" - -do_populate_cve_db() { - if [ "${BB_NO_NETWORK}" = "1" ] ; then - bbwarn "BB_NO_NETWORK is set; Can't update cve-check-tool database, new CVEs won't be detected" - return - fi - - # In case we don't inherit cve-check class, use default values defined in the class. - cve_dir="${CVE_CHECK_DB_DIR}" - cve_file="${CVE_CHECK_TMP_FILE}" - - [ -z "${cve_dir}" ] && cve_dir="${DL_DIR}/CVE_CHECK" - [ -z "${cve_file}" ] && cve_file="${TMPDIR}/cve_check" - - unused="${@bb.utils.export_proxies(d)}" - bbdebug 2 "Updating cve-check-tool database located in $cve_dir" - # --cacert works around curl-native not finding the CA bundle - if cve-check-update --cacert ${sysconfdir}/ssl/certs/ca-certificates.crt -d "$cve_dir" ; then - printf "CVE database was updated on %s UTC\n\n" "$(LANG=C date --utc +'%F %T')" > "$cve_file" - else - bbwarn "Error in executing cve-check-update" - if [ "${@'1' if bb.data.inherits_class('cve-check', d) else '0'}" -ne 0 ] ; then - bbwarn "Failed to update cve-check-tool database, CVEs won't be checked" - fi - fi -} - -addtask populate_cve_db after do_populate_sysroot -do_populate_cve_db[depends] = "cve-check-tool-native:do_populate_sysroot" -do_populate_cve_db[nostamp] = "1" -do_populate_cve_db[progress] = "percent" - -BBCLASSEXTEND = "native nativesdk" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/cve-check-tool/files/0001-Fix-freeing-memory-allocated-by-sqlite.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/cve-check-tool/files/0001-Fix-freeing-memory-allocated-by-sqlite.patch deleted file mode 100644 index 4a82cf2d..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/cve-check-tool/files/0001-Fix-freeing-memory-allocated-by-sqlite.patch +++ /dev/null @@ -1,50 +0,0 @@ -From a3353429652f83bb8b0316500faa88fa2555542d Mon Sep 17 00:00:00 2001 -From: Peter Marko -Date: Thu, 13 Apr 2017 23:09:52 +0200 -Subject: [PATCH] Fix freeing memory allocated by sqlite - -Upstream-Status: Backport -Signed-off-by: Peter Marko ---- - src/core.c | 8 ++++---- - 1 file changed, 4 insertions(+), 4 deletions(-) - -diff --git a/src/core.c b/src/core.c -index 6263031..6788f16 100644 ---- a/src/core.c -+++ b/src/core.c -@@ -82,7 +82,7 @@ static bool ensure_table(CveDB *self) - rc = sqlite3_exec(self->db, query, NULL, NULL, &err); - if (rc != SQLITE_OK) { - fprintf(stderr, "ensure_table(): %s\n", err); -- free(err); -+ sqlite3_free(err); - return false; - } - -@@ -91,7 +91,7 @@ static bool ensure_table(CveDB *self) - rc = sqlite3_exec(self->db, query, NULL, NULL, &err); - if (rc != SQLITE_OK) { - fprintf(stderr, "ensure_table(): %s\n", err); -- free(err); -+ sqlite3_free(err); - return false; - } - -@@ -99,11 +99,11 @@ static bool ensure_table(CveDB *self) - rc = sqlite3_exec(self->db, query, NULL, NULL, &err); - if (rc != SQLITE_OK) { - fprintf(stderr, "ensure_table(): %s\n", err); -- free(err); -+ sqlite3_free(err); - return false; - } - if (err) { -- free(err); -+ sqlite3_free(err); - } - - return true; --- -2.1.4 - diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/cve-check-tool/files/0001-curl-allow-overriding-default-CA-certificate-file.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/cve-check-tool/files/0001-curl-allow-overriding-default-CA-certificate-file.patch deleted file mode 100644 index 3d8ebd1b..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/cve-check-tool/files/0001-curl-allow-overriding-default-CA-certificate-file.patch +++ /dev/null @@ -1,215 +0,0 @@ -From 825a9969dea052b02ba868bdf39e676349f10dce Mon Sep 17 00:00:00 2001 -From: Jussi Kukkonen -Date: Thu, 9 Feb 2017 14:51:28 +0200 -Subject: [PATCH] curl: allow overriding default CA certificate file - -Similar to curl, --cacert can now be used in cve-check-tool and -cve-check-update to override the default CA certificate file. Useful -in cases where the system default is unsuitable (for example, -out-dated) or broken (as in OE's current native libcurl, which embeds -a path string from one build host and then uses it on another although -the right path may have become something different). - -Upstream-Status: Submitted [https://github.com/ikeydoherty/cve-check-tool/pull/45] - -Signed-off-by: Patrick Ohly - - -Took Patrick Ohlys original patch from meta-security-isafw, rebased -on top of other patches. - -Signed-off-by: Jussi Kukkonen ---- - src/library/cve-check-tool.h | 1 + - src/library/fetch.c | 10 +++++++++- - src/library/fetch.h | 3 ++- - src/main.c | 5 ++++- - src/update-main.c | 4 +++- - src/update.c | 12 +++++++----- - src/update.h | 2 +- - 7 files changed, 27 insertions(+), 10 deletions(-) - -diff --git a/src/library/cve-check-tool.h b/src/library/cve-check-tool.h -index e4bb5b1..f89eade 100644 ---- a/src/library/cve-check-tool.h -+++ b/src/library/cve-check-tool.h -@@ -43,6 +43,7 @@ typedef struct CveCheckTool { - bool bugs; /**output_file = output_file; -+ self->cacert_file = cacert_file; - - if (!csv_mode && self->output_file) { - quiet = false; -@@ -530,7 +533,7 @@ int main(int argc, char **argv) - if (status) { - fprintf(stderr, "Update of db forced\n"); - cve_db_unlock(); -- if (!update_db(quiet, db_path->str)) { -+ if (!update_db(quiet, db_path->str, self->cacert_file)) { - fprintf(stderr, "DB update failure\n"); - goto cleanup; - } -diff --git a/src/update-main.c b/src/update-main.c -index 2379cfa..c52d9d0 100644 ---- a/src/update-main.c -+++ b/src/update-main.c -@@ -43,11 +43,13 @@ the Free Software Foundation; either version 2 of the License, or\n\ - static gchar *nvds = NULL; - static bool _show_version = false; - static bool _quiet = false; -+static const char *_cacert_file = NULL; - - static GOptionEntry _entries[] = { - { "nvd-dir", 'd', 0, G_OPTION_ARG_STRING, &nvds, "NVD directory in filesystem", NULL }, - { "version", 'v', 0, G_OPTION_ARG_NONE, &_show_version, "Show version", NULL }, - { "quiet", 'q', 0, G_OPTION_ARG_NONE, &_quiet, "Run silently", NULL }, -+ { "cacert", 'C', 0, G_OPTION_ARG_STRING, &_cacert_file, "Path to the combined SSL certificates file (system default is used if not set)", NULL}, - { .short_name = 0 } - }; - -@@ -88,7 +90,7 @@ int main(int argc, char **argv) - goto end; - } - -- if (update_db(_quiet, db_path->str)) { -+ if (update_db(_quiet, db_path->str, _cacert_file)) { - ret = EXIT_SUCCESS; - } else { - fprintf(stderr, "Failed to update database\n"); -diff --git a/src/update.c b/src/update.c -index 070560a..8cb4a39 100644 ---- a/src/update.c -+++ b/src/update.c -@@ -267,7 +267,8 @@ static inline void update_end(int fd, const char *update_fname, bool ok) - - static int do_fetch_update(int year, const char *db_dir, CveDB *cve_db, - bool db_exist, bool verbose, -- unsigned int this_percent, unsigned int next_percent) -+ unsigned int this_percent, unsigned int next_percent, -+ const char *cacert_file) - { - const char nvd_uri[] = URI_PREFIX; - autofree(cve_string) *uri_meta = NULL; -@@ -331,14 +332,14 @@ refetch: - } - - /* Fetch NVD META file */ -- st = fetch_uri(uri_meta->str, nvdcve_meta->str, verbose, this_percent, this_percent); -+ st = fetch_uri(uri_meta->str, nvdcve_meta->str, verbose, this_percent, this_percent, cacert_file); - if (st == FETCH_STATUS_FAIL) { - fprintf(stderr, "Failed to fetch %s\n", uri_meta->str); - return -1; - } - - /* Fetch NVD XML file */ -- st = fetch_uri(uri_data_gz->str, nvdcve_data_gz->str, verbose, this_percent, next_percent); -+ st = fetch_uri(uri_data_gz->str, nvdcve_data_gz->str, verbose, this_percent, next_percent, cacert_file); - switch (st) { - case FETCH_STATUS_FAIL: - fprintf(stderr, "Failed to fetch %s\n", uri_data_gz->str); -@@ -391,7 +392,7 @@ refetch: - return 0; - } - --bool update_db(bool quiet, const char *db_file) -+bool update_db(bool quiet, const char *db_file, const char *cacert_file) - { - autofree(char) *db_dir = NULL; - autofree(CveDB) *cve_db = NULL; -@@ -466,7 +467,8 @@ bool update_db(bool quiet, const char *db_file) - if (!quiet) - fprintf(stderr, "completed: %u%%\r", start_percent); - rc = do_fetch_update(y, db_dir, cve_db, db_exist, !quiet, -- start_percent, end_percent); -+ start_percent, end_percent, -+ cacert_file); - switch (rc) { - case 0: - if (!quiet) -diff --git a/src/update.h b/src/update.h -index b8e9911..ceea0c3 100644 ---- a/src/update.h -+++ b/src/update.h -@@ -15,7 +15,7 @@ cve_string *get_db_path(const char *path); - - int update_required(const char *db_file); - --bool update_db(bool quiet, const char *db_file); -+bool update_db(bool quiet, const char *db_file, const char *cacert_file); - - - /* --- -2.1.4 - diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/cve-check-tool/files/0001-print-progress-in-percent-when-downloading-CVE-db.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/cve-check-tool/files/0001-print-progress-in-percent-when-downloading-CVE-db.patch deleted file mode 100644 index 8ea6f686..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/cve-check-tool/files/0001-print-progress-in-percent-when-downloading-CVE-db.patch +++ /dev/null @@ -1,135 +0,0 @@ -From e9ed26cde63f8ca7607a010a518329339f8c02d3 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Andr=C3=A9=20Draszik?= -Date: Mon, 26 Sep 2016 12:12:41 +0100 -Subject: [PATCH] print progress in percent when downloading CVE db -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Upstream-Status: Pending -Signed-off-by: André Draszik ---- - src/library/fetch.c | 28 +++++++++++++++++++++++++++- - src/library/fetch.h | 3 ++- - src/update.c | 16 ++++++++++++---- - 3 files changed, 41 insertions(+), 6 deletions(-) - -diff --git a/src/library/fetch.c b/src/library/fetch.c -index 06d4b30..0fe6d76 100644 ---- a/src/library/fetch.c -+++ b/src/library/fetch.c -@@ -37,13 +37,37 @@ static size_t write_func(void *ptr, size_t size, size_t nmemb, struct fetch_t *f - return fwrite(ptr, size, nmemb, f->f); - } - --FetchStatus fetch_uri(const char *uri, const char *target, bool verbose) -+struct percent_t { -+ unsigned int start; -+ unsigned int end; -+}; -+ -+static int progress_callback_new(void *ptr, curl_off_t dltotal, curl_off_t dlnow, curl_off_t ultotal, curl_off_t ulnow) -+{ -+ (void) ultotal; -+ (void) ulnow; -+ -+ struct percent_t *percent = (struct percent_t *) ptr; -+ -+ if (dltotal && percent && percent->end >= percent->start) { -+ unsigned int diff = percent->end - percent->start; -+ if (diff) { -+ fprintf(stderr,"completed: %"CURL_FORMAT_CURL_OFF_T"%%\r", percent->start + (diff * dlnow / dltotal)); -+ } -+ } -+ -+ return 0; -+} -+ -+FetchStatus fetch_uri(const char *uri, const char *target, bool verbose, -+ unsigned int start_percent, unsigned int end_percent) - { - FetchStatus ret = FETCH_STATUS_FAIL; - CURLcode res; - struct stat st; - CURL *curl = NULL; - struct fetch_t *f = NULL; -+ struct percent_t percent = { .start = start_percent, .end = end_percent }; - - curl = curl_easy_init(); - if (!curl) { -@@ -67,6 +91,8 @@ FetchStatus fetch_uri(const char *uri, const char *target, bool verbose) - } - if (verbose) { - (void)curl_easy_setopt(curl, CURLOPT_NOPROGRESS, 0L); -+ (void)curl_easy_setopt(curl, CURLOPT_XFERINFODATA, &percent); -+ (void)curl_easy_setopt(curl, CURLOPT_XFERINFOFUNCTION, progress_callback_new); - } - res = curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, (curl_write_callback)write_func); - if (res != CURLE_OK) { -diff --git a/src/library/fetch.h b/src/library/fetch.h -index 70c3779..4cce5d1 100644 ---- a/src/library/fetch.h -+++ b/src/library/fetch.h -@@ -28,7 +28,8 @@ typedef enum { - * @param verbose Whether to be verbose - * @return A FetchStatus, indicating the operation taken - */ --FetchStatus fetch_uri(const char *uri, const char *target, bool verbose); -+FetchStatus fetch_uri(const char *uri, const char *target, bool verbose, -+ unsigned int this_percent, unsigned int next_percent); - - /** - * Attempt to extract the given gzipped file -diff --git a/src/update.c b/src/update.c -index 30fbe96..eaeeefd 100644 ---- a/src/update.c -+++ b/src/update.c -@@ -266,7 +266,8 @@ static inline void update_end(int fd, const char *update_fname, bool ok) - } - - static int do_fetch_update(int year, const char *db_dir, CveDB *cve_db, -- bool db_exist, bool verbose) -+ bool db_exist, bool verbose, -+ unsigned int this_percent, unsigned int next_percent) - { - const char nvd_uri[] = URI_PREFIX; - autofree(cve_string) *uri_meta = NULL; -@@ -330,14 +331,14 @@ refetch: - } - - /* Fetch NVD META file */ -- st = fetch_uri(uri_meta->str, nvdcve_meta->str, verbose); -+ st = fetch_uri(uri_meta->str, nvdcve_meta->str, verbose, this_percent, this_percent); - if (st == FETCH_STATUS_FAIL) { - fprintf(stderr, "Failed to fetch %s\n", uri_meta->str); - return -1; - } - - /* Fetch NVD XML file */ -- st = fetch_uri(uri_data_gz->str, nvdcve_data_gz->str, verbose); -+ st = fetch_uri(uri_data_gz->str, nvdcve_data_gz->str, verbose, this_percent, next_percent); - switch (st) { - case FETCH_STATUS_FAIL: - fprintf(stderr, "Failed to fetch %s\n", uri_data_gz->str); -@@ -459,10 +460,17 @@ bool update_db(bool quiet, const char *db_file) - for (int i = YEAR_START; i <= year+1; i++) { - int y = i > year ? -1 : i; - int rc; -+ unsigned int start_percent = ((i+0 - YEAR_START) * 100) / (year+2 - YEAR_START); -+ unsigned int end_percent = ((i+1 - YEAR_START) * 100) / (year+2 - YEAR_START); - -- rc = do_fetch_update(y, db_dir, cve_db, db_exist, !quiet); -+ if (!quiet) -+ fprintf(stderr, "completed: %u%%\r", start_percent); -+ rc = do_fetch_update(y, db_dir, cve_db, db_exist, !quiet, -+ start_percent, end_percent); - switch (rc) { - case 0: -+ if (!quiet) -+ fprintf(stderr,"completed: %u%%\r", end_percent); - continue; - case ENOMEM: - goto oom; --- -2.9.3 - diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/cve-check-tool/files/0001-update-Compare-computed-vs-expected-sha256-digit-str.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/cve-check-tool/files/0001-update-Compare-computed-vs-expected-sha256-digit-str.patch deleted file mode 100644 index 458c0cc8..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/cve-check-tool/files/0001-update-Compare-computed-vs-expected-sha256-digit-str.patch +++ /dev/null @@ -1,52 +0,0 @@ -From b0426e63c9ac61657e029f689bcb8dd051e752c6 Mon Sep 17 00:00:00 2001 -From: Sergey Popovich -Date: Fri, 21 Apr 2017 07:32:23 -0700 -Subject: [PATCH] update: Compare computed vs expected sha256 digit string - ignoring case - -We produce sha256 digest string using %x snprintf() -qualifier for each byte of digest which uses alphabetic -characters from "a" to "f" in lower case to represent -integer values from 10 to 15. - -Previously all of the NVD META files supply sha256 -digest string for corresponding XML file in lower case. - -However due to some reason this changed recently to -provide digest digits in upper case causing fetched -data consistency checks to fail. This prevents database -from being updated periodically. - -While commit c4f6e94 (update: Do not treat sha256 failure -as fatal if requested) adds useful option to skip -digest validation at all and thus provides workaround for -this situation, it might be unacceptable for some -deployments where we need to ensure that downloaded -data is consistent before start parsing it and update -SQLite database. - -Use strcasecmp() to compare two digest strings case -insensitively and addressing this case. - -Upstream-Status: Backport -Signed-off-by: Sergey Popovich ---- - src/update.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/src/update.c b/src/update.c -index 8588f38..3cc6b67 100644 ---- a/src/update.c -+++ b/src/update.c -@@ -187,7 +187,7 @@ static bool nvdcve_data_ok(const char *meta, const char *data) - snprintf(&csum_data[idx], len, "%02hhx", digest[i]); - } - -- ret = streq(csum_meta, csum_data); -+ ret = !strcasecmp(csum_meta, csum_data); - - err_unmap: - munmap(buffer, length); --- -2.11.0 - diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/cve-check-tool/files/check-for-malloc_trim-before-using-it.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/cve-check-tool/files/check-for-malloc_trim-before-using-it.patch deleted file mode 100644 index 0774ad94..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/cve-check-tool/files/check-for-malloc_trim-before-using-it.patch +++ /dev/null @@ -1,51 +0,0 @@ -From ce64633b9733e962b8d8482244301f614d8b5845 Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Mon, 22 Aug 2016 22:54:24 -0700 -Subject: [PATCH] Check for malloc_trim before using it - -malloc_trim is gnu specific and not all libc -implement it, threfore write a configure check -to poke for it first and use the define to -guard its use. - -Helps in compiling on musl based systems - -Signed-off-by: Khem Raj ---- -Upstream-Status: Submitted [https://github.com/ikeydoherty/cve-check-tool/pull/48] - configure.ac | 2 ++ - src/core.c | 4 ++-- - 2 files changed, 4 insertions(+), 2 deletions(-) - -diff --git a/configure.ac b/configure.ac -index d3b66ce..79c3542 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -19,6 +19,8 @@ m4_define([json_required_version], [0.16.0]) - m4_define([openssl_required_version],[1.0.0]) - # TODO: Set minimum sqlite - -+AC_CHECK_FUNCS_ONCE(malloc_trim) -+ - PKG_CHECK_MODULES(CVE_CHECK_TOOL, - [ - glib-2.0 >= glib_required_version, -diff --git a/src/core.c b/src/core.c -index 6263031..0d5df29 100644 ---- a/src/core.c -+++ b/src/core.c -@@ -498,9 +498,9 @@ bool cve_db_load(CveDB *self, const char *fname) - } - - b = true; -- -+#ifdef HAVE_MALLOC_TRIM - malloc_trim(0); -- -+#endif - xmlFreeTextReader(r); - if (fd) { - close(fd); --- -2.9.3 - diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/dejagnu/dejagnu_1.6.2.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/dejagnu/dejagnu_1.6.2.bb new file mode 100644 index 00000000..10220ebc --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/dejagnu/dejagnu_1.6.2.bb @@ -0,0 +1,17 @@ +SUMMARY = "GNU unit testing framework, written in Expect and Tcl" +DESCRIPTION = "DejaGnu is a framework for testing other programs. Its purpose \ +is to provide a single front end for all tests." +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504" +SECTION = "devel" + +DEPENDS += "expect-native" + +inherit autotools + +SRC_URI = "${GNU_MIRROR}/${BPN}/${BP}.tar.gz" + +SRC_URI[md5sum] = "e1b07516533f351b3aba3423fafeffd6" +SRC_URI[sha256sum] = "0d0671e1b45189c5fc8ade4b3b01635fb9eeab45cf54f57db23e4c4c1a17d261" + +BBCLASSEXTEND = "native" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/desktop-file-utils/desktop-file-utils_0.23.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/desktop-file-utils/desktop-file-utils_0.23.bb deleted file mode 100644 index 6446f471..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/desktop-file-utils/desktop-file-utils_0.23.bb +++ /dev/null @@ -1,19 +0,0 @@ -SECTION = "console/utils" -SUMMARY = "Command line utilities for working with *.desktop files" -HOMEPAGE = "http://www.freedesktop.org/wiki/Software/desktop-file-utils" -LICENSE = "GPLv2+" - -LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \ - file://src/validator.c;beginline=4;endline=27;md5=281e1114ee6c486a1a0a4295986b9416" - -SRC_URI = "http://freedesktop.org/software/${BPN}/releases/${BP}.tar.xz" -SRC_URI[md5sum] = "599133d51cc9a41bfec186414906b6f1" -SRC_URI[sha256sum] = "6c094031bdec46c9f621708f919084e1cb5294e2c5b1e4c883b3e70cb8903385" - -DEPENDS = "glib-2.0" - -inherit autotools pkgconfig - -EXTRA_OECONF += "ac_cv_prog_EMACS=no" - -BBCLASSEXTEND = "native nativesdk" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/desktop-file-utils/desktop-file-utils_0.24.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/desktop-file-utils/desktop-file-utils_0.24.bb new file mode 100644 index 00000000..aecba072 --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/desktop-file-utils/desktop-file-utils_0.24.bb @@ -0,0 +1,24 @@ +SECTION = "console/utils" +SUMMARY = "Command line utilities for working with *.desktop files" +HOMEPAGE = "http://www.freedesktop.org/wiki/Software/desktop-file-utils" +LICENSE = "GPLv2+" + +LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \ + file://src/validator.c;beginline=4;endline=27;md5=281e1114ee6c486a1a0a4295986b9416" + +SRC_URI = "http://freedesktop.org/software/${BPN}/releases/${BP}.tar.xz" +SRC_URI[md5sum] = "9364b82e14cfcad881161aa7ea5257ae" +SRC_URI[sha256sum] = "a1de5da60cbdbe91e5c9c10ac9afee6c3deb019e0cee5fdb9a99dddc245f83d9" + +DEPENDS = "glib-2.0" + +inherit autotools pkgconfig + +EXTRA_OECONF += "ac_cv_prog_EMACS=no" + +BBCLASSEXTEND = "native nativesdk" + +do_install_append() { + rm -rf ${D}${datadir}/emacs +} + diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/distcc/distcc_3.3.2.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/distcc/distcc_3.3.2.bb deleted file mode 100644 index a93604bc..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/distcc/distcc_3.3.2.bb +++ /dev/null @@ -1,95 +0,0 @@ -SUMMARY = "A parallel build system" -DESCRIPTION = "distcc is a parallel build system that distributes \ -compilation of C/C++/ObjC code across machines on a network." -SECTION = "devel" -LICENSE = "GPLv2" -LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f" - -DEPENDS = "avahi binutils" - -PACKAGECONFIG ??= "popt" -PACKAGECONFIG[gtk] = "--with-gtk,--without-gtk --without-gnome,gtk+" -# use system popt by default -PACKAGECONFIG[popt] = "--without-included-popt,--with-included-popt,popt" - -RRECOMMENDS_${PN} = "avahi-daemon" - -SRC_URI = "git://github.com/distcc/distcc.git \ - file://separatebuilddir.patch \ - file://default \ - file://distccmon-gnome.desktop \ - file://distcc \ - file://distcc.service" -SRCREV = "8600f0857dac55ea393dc11a860948692d215fc8" -S = "${WORKDIR}/git" - -inherit autotools pkgconfig update-rc.d useradd systemd - -ASNEEDED = "" - -EXTRA_OECONF += "--disable-Werror PYTHON='' --disable-pump-mode" - -USERADD_PACKAGES = "${PN}" -USERADD_PARAM_${PN} = "--system \ - --home /dev/null \ - --no-create-home \ - --gid nogroup \ - distcc" - -INITSCRIPT_NAME = "distcc" - -SYSTEMD_PACKAGES = "${PN}" -SYSTEMD_SERVICE_${PN} = "distcc.service" - -do_install() { - # Improve reproducibility: compress w/o timestamps - oe_runmake 'DESTDIR=${D}' "GZIP_BIN=gzip -n" install - install -d ${D}${sysconfdir}/init.d/ - install -d ${D}${sysconfdir}/default - install -m 0755 ${WORKDIR}/distcc ${D}${sysconfdir}/init.d/ - install -m 0755 ${WORKDIR}/default ${D}${sysconfdir}/default/distcc - install -d ${D}${systemd_unitdir}/system/ - install -m 0644 ${WORKDIR}/distcc.service ${D}${systemd_unitdir}/system - sed -i -e 's,@BINDIR@,${bindir},g' ${D}${systemd_unitdir}/system/distcc.service - ${DESKTOPINSTALL} -} -DESKTOPINSTALL = "" -DESKTOPINSTALL_libc-glibc () { - install -d ${D}${datadir}/distcc/ - install -m 0644 ${WORKDIR}/distccmon-gnome.desktop ${D}${datadir}/distcc/ -} -PACKAGES += "distcc-distmon-gnome" - -FILES_${PN} = " ${sysconfdir} \ - ${bindir}/distcc \ - ${bindir}/lsdistcc \ - ${bindir}/distccd \ - ${bindir}/distccmon-text \ - ${sbindir}/update-distcc-symlinks \ - ${systemd_unitdir}/system/distcc.service" -FILES_distcc-distmon-gnome = " ${bindir}/distccmon-gnome \ - ${datadir}/distcc" - - -# -# distcc upstream dropped the 3.2 branch which we reference in older project releases -# the revisions are there, just the branch is not. In order to be able to continue -# to build those old releases, adjust any mirror tarball to contain the missing branch -# -fixup_distcc_mirror_tarball () { - TBALL=${DL_DIR}/git2_github.com.distcc.distcc.git.tar.gz - if [ -f $TBALL ]; then - TDIR=`mktemp -d` - cd $TDIR - tar -xzf $TBALL - set +e - git rev-parse --verify 3.2 - if [ "$?" != "0" ]; then - git branch 3.2 d8b18df3e9dcbe4f092bed565835d3975e99432c - tar -czf $TBALL * - fi - set -e - rm -rf $TDIR/* - fi -} -do_fetch[postfuncs] += "fixup_distcc_mirror_tarball" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/distcc/distcc_3.3.3.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/distcc/distcc_3.3.3.bb new file mode 100644 index 00000000..c52f136b --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/distcc/distcc_3.3.3.bb @@ -0,0 +1,87 @@ +SUMMARY = "A parallel build system" +DESCRIPTION = "distcc is a parallel build system that distributes \ +compilation of C/C++/ObjC code across machines on a network." +SECTION = "devel" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f" + +DEPENDS = "avahi binutils" + +PACKAGECONFIG ??= "popt" +PACKAGECONFIG[gtk] = "--with-gtk,--without-gtk --without-gnome,gtk+" +# use system popt by default +PACKAGECONFIG[popt] = "--without-included-popt,--with-included-popt,popt" + +RRECOMMENDS_${PN}-server = "avahi-daemon" + +SRC_URI = "git://github.com/distcc/distcc.git \ + file://fix-gnome.patch \ + file://separatebuilddir.patch \ + file://default \ + file://distcc \ + file://distcc.service" +SRCREV = "4cde9bcfbda589abd842e3bbc652ce369085eaae" +S = "${WORKDIR}/git" + +inherit autotools pkgconfig update-rc.d useradd systemd + +ASNEEDED = "" + +EXTRA_OECONF += "--disable-Werror PYTHON='' --disable-pump-mode" + +PACKAGE_BEFORE_PN = "${PN}-distmon-gnome ${PN}-server" + +USERADD_PACKAGES = "${PN}-server" +USERADD_PARAM_${PN}-server = "--system \ + --home /dev/null \ + --no-create-home \ + --gid nogroup \ + distcc" + +UPDATERCPN = "${PN}-server" +INITSCRIPT_NAME = "distcc" + +SYSTEMD_PACKAGES = "${PN}-server" +SYSTEMD_SERVICE_${PN}-server = "distcc.service" + +do_install() { + # Improve reproducibility: compress w/o timestamps + oe_runmake 'DESTDIR=${D}' "GZIP_BIN=gzip -n" install + install -d ${D}${sysconfdir}/init.d/ + install -d ${D}${sysconfdir}/default + install -m 0755 ${WORKDIR}/distcc ${D}${sysconfdir}/init.d/ + install -m 0755 ${WORKDIR}/default ${D}${sysconfdir}/default/distcc + install -d ${D}${systemd_unitdir}/system/ + install -m 0644 ${WORKDIR}/distcc.service ${D}${systemd_unitdir}/system + sed -i -e 's,@BINDIR@,${bindir},g' ${D}${systemd_unitdir}/system/distcc.service +} + +FILES_${PN}-server = "${sysconfdir} \ + ${bindir}/distccd \ + ${sbindir}" +FILES_${PN}-distmon-gnome = "${bindir}/distccmon-gnome \ + ${datadir}/applications \ + ${datadir}/pixmaps" + +# +# distcc upstream dropped the 3.2 branch which we reference in older project releases +# the revisions are there, just the branch is not. In order to be able to continue +# to build those old releases, adjust any mirror tarball to contain the missing branch +# +fixup_distcc_mirror_tarball () { + TBALL=${DL_DIR}/git2_github.com.distcc.distcc.git.tar.gz + if [ -f $TBALL ]; then + TDIR=`mktemp -d` + cd $TDIR + tar -xzf $TBALL + set +e + git rev-parse --verify 3.2 + if [ "$?" != "0" ]; then + git branch 3.2 d8b18df3e9dcbe4f092bed565835d3975e99432c + tar -czf $TBALL * + fi + set -e + rm -rf $TDIR/* + fi +} +do_fetch[postfuncs] += "fixup_distcc_mirror_tarball" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/distcc/files/default b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/distcc/files/default index e5ca68b8..a5bc13ec 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/distcc/files/default +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/distcc/files/default @@ -21,4 +21,4 @@ ALLOWEDNETS="127.0.0.1" # # OPTIONS is used for the systemd service file # -OPTIONS="--allow 127.0.0.1 --make-me-a-botnet" +OPTIONS="--allow 127.0.0.1 --enable-tcp-insecure" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/distcc/files/distccmon-gnome.desktop b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/distcc/files/distccmon-gnome.desktop deleted file mode 100644 index 7b5d85ce..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/distcc/files/distccmon-gnome.desktop +++ /dev/null @@ -1,12 +0,0 @@ -[Desktop Entry] -Version=0.9.4 -Exec=distccmon-gnome -Name=distcc monitor -GenericName=Distributed Compile Monitor -Comment=Graphical view of distributed compile tasks -Icon=distccmon-gnome-icon -TryExec=distccmon-gnome -Terminal=false -Type=Application -Categories=GNOME;Development; -StartupNotify=true diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/distcc/files/fix-gnome.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/distcc/files/fix-gnome.patch new file mode 100644 index 00000000..f1f5ed1a --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/distcc/files/fix-gnome.patch @@ -0,0 +1,122 @@ +Upstream-Status: Backport [https://github.com/distcc/distcc/pull/319] +Signed-off-by: Ross Burton + +From 2faacc2be8d7eeee0a3f66d88fedd1d3ab11070e Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= +Date: Sat, 8 Dec 2018 12:50:07 +0100 +Subject: [PATCH] Fix desktop spec compliance of distccmon-gnome install + +Update the .desktop file and install rules for distccmon-gnome to +conform to the freedesktop.org specifications. More specifically: + +- update to version 1.0 of the spec +- remove obsolete 'Encoding' key +- remove obsolete 'Application' category and add recommended 'GTK' +- install icon file to the correct directory +- strip suffix from desktop file (specifying it is deprecated) +- while at it, remove redundant '-icon' from the filename +- install desktop file to the correct directory +--- + Makefile.in | 18 ++++++++++-------- + gnome/distccmon-gnome.desktop | 7 +++---- + ...mon-gnome-icon.png => distccmon-gnome.png} | Bin + src/mon-gnome.c | 2 +- + 4 files changed, 14 insertions(+), 13 deletions(-) + rename gnome/{distccmon-gnome-icon.png => distccmon-gnome.png} (100%) + +diff --git a/Makefile.in b/Makefile.in +index 6e1e467..1106559 100644 +--- a/Makefile.in ++++ b/Makefile.in +@@ -52,13 +52,14 @@ mandir = @mandir@ + includedir = @includedir@ + oldincludedir = /usr/include + docdir = @docdir@ +-pkgdatadir = $(datadir)/@PACKAGE_NAME@ ++icondir = $(datarootdir)/pixmaps ++desktopdir = $(datarootdir)/applications + + include_server_builddir = $(builddir)/_include_server + + # These must be done from here, not from autoconf, because they can + # contain variable expansions written in Make syntax. Ew. +-DIR_DEFS = -DLIBDIR="\"${libdir}\"" -DSYSCONFDIR="\"${sysconfdir}\"" -DPKGDATADIR="\"${pkgdatadir}\"" ++DIR_DEFS = -DLIBDIR="\"${libdir}\"" -DSYSCONFDIR="\"${sysconfdir}\"" -DICONDIR="\"${icondir}\"" + + # arguments to pkgconfig + GNOME_PACKAGES = @GNOME_PACKAGES@ +@@ -387,7 +388,7 @@ man_HTML = man/distcc_1.html man/distccd_1.html man/distccmon_text_1.html \ + man/lsdistcc_1.html man/pump_1.html man/include_server_1.html + MEN = $(man1_MEN) + +-gnome_data = gnome/distccmon-gnome-icon.png \ ++gnome_data = gnome/distccmon-gnome.png \ + gnome/distccmon-gnome.desktop + + popt_OBJS=popt/findme.o popt/popt.o popt/poptconfig.o \ +@@ -1033,7 +1034,8 @@ showpaths: + @echo " programs $(DESTDIR)$(bindir)" + @echo " sbin programs $(DESTDIR)$(sbindir)" + @echo " system configuration $(DESTDIR)$(sysconfdir)" +- @echo " shared data files $(DESTDIR)$(pkgdatadir)" ++ @echo " icon file $(DESTDIR)$(icondir)" ++ @echo " application file $(DESTDIR)$(desktopdir)" + + + # install-sh can't handle multiple arguments, but we don't need any +@@ -1129,10 +1131,10 @@ install-example: $(example_DOCS) + done + + install-gnome-data: $(gnome_data) +- $(mkinstalldirs) "$(DESTDIR)$(pkgdatadir)" +- for p in $(gnome_data); do \ +- $(INSTALL_DATA) "$$p" "$(DESTDIR)$(pkgdatadir)" || exit 1; \ +- done ++ $(mkinstalldirs) "$(DESTDIR)$(icondir)" ++ $(mkinstalldirs) "$(DESTDIR)$(desktopdir)" ++ $(INSTALL_DATA) gnome/distccmon-gnome.png "$(DESTDIR)$(icondir)" ++ $(INSTALL_DATA) gnome/distccmon-gnome.desktop "$(DESTDIR)$(desktopdir)" + + install-conf: $(conf_files) $(default_files) + $(mkinstalldirs) "$(DESTDIR)$(sysconfdir)/distcc" +diff --git a/gnome/distccmon-gnome.desktop b/gnome/distccmon-gnome.desktop +index bd1fa26..7205f5e 100644 +--- a/gnome/distccmon-gnome.desktop ++++ b/gnome/distccmon-gnome.desktop +@@ -1,6 +1,5 @@ + [Desktop Entry] +-Version=0.9.4 +-Encoding=UTF-8 ++Version=1.0 + Exec=distccmon-gnome + Name=distcc monitor + Name[sv]=distcc övervakare +@@ -8,9 +7,9 @@ GenericName=Distributed Compile Monitor + GenericName[sv]=Distribuerad kompilerings-övervakare + Comment=Graphical view of distributed compile tasks + Comment[sv]=Grafisk vy av distribuerade kompileringsuppgifter +-Icon=distccmon-gnome-icon.png ++Icon=distccmon-gnome + TryExec=distccmon-gnome + Terminal=false + Type=Application +-Categories=GNOME;Application;Development; ++Categories=GNOME;GTK;Development; + StartupNotify=true +diff --git a/gnome/distccmon-gnome-icon.png b/gnome/distccmon-gnome.png +similarity index 100% +rename from gnome/distccmon-gnome-icon.png +rename to gnome/distccmon-gnome.png +diff --git a/src/mon-gnome.c b/src/mon-gnome.c +index 24681d0..bfc286d 100644 +--- a/src/mon-gnome.c ++++ b/src/mon-gnome.c +@@ -599,7 +599,7 @@ static GtkWidget * dcc_gnome_make_mainwin (void) + + #if GTK_CHECK_VERSION(2,2,0) + gtk_window_set_icon_from_file (GTK_WINDOW (mainwin), +- PKGDATADIR "/distccmon-gnome-icon.png", ++ ICONDIR "/distccmon-gnome.png", + NULL); + #endif + diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/distcc/files/separatebuilddir.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/distcc/files/separatebuilddir.patch index 7580b558..c8da9d51 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/distcc/files/separatebuilddir.patch +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/distcc/files/separatebuilddir.patch @@ -1,21 +1,33 @@ -When building with a separate build directory, make install fails, -unable to find the gnome_data files. This patch corrects the -patch and ensures the build works in this case. +Upstream-Status: Backport [https://github.com/distcc/distcc/pull/363] +Signed-off-by: Ross Burton -RP 2013/3/8 +From 469628ee8dc90c7162d1a850c0b179b7349f9cf3 Mon Sep 17 00:00:00 2001 +From: Ross Burton +Date: Tue, 17 Sep 2019 13:04:22 +0100 +Subject: [PATCH] Makefile.in: fix out-of-tree builds when the GNOME UI is + enabled -Upstream-Status: Pending +The install command doesn't use $(srcdir) so out-of-tree builds fail. -Index: git/Makefile.in -=================================================================== ---- git.orig/Makefile.in -+++ git/Makefile.in -@@ -1117,7 +1117,7 @@ install-example: $(example_DOCS) +Signed-off-by: Ross Burton +--- + Makefile.in | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/Makefile.in b/Makefile.in +index 123054f..b9ce974 100644 +--- a/Makefile.in ++++ b/Makefile.in +@@ -1130,8 +1130,8 @@ install-example: $(example_DOCS) install-gnome-data: $(gnome_data) - $(mkinstalldirs) "$(DESTDIR)$(pkgdatadir)" - for p in $(gnome_data); do \ -- $(INSTALL_DATA) "$$p" "$(DESTDIR)$(pkgdatadir)" || exit 1; \ -+ $(INSTALL_DATA) "$(srcdir)/$$p" "$(DESTDIR)$(pkgdatadir)" || exit 1; \ - done + $(mkinstalldirs) "$(DESTDIR)$(icondir)" + $(mkinstalldirs) "$(DESTDIR)$(desktopdir)" +- $(INSTALL_DATA) gnome/distccmon-gnome.png "$(DESTDIR)$(icondir)" +- $(INSTALL_DATA) gnome/distccmon-gnome.desktop "$(DESTDIR)$(desktopdir)" ++ $(INSTALL_DATA) $(srcdir)/gnome/distccmon-gnome.png "$(DESTDIR)$(icondir)" ++ $(INSTALL_DATA) $(srcdir)/gnome/distccmon-gnome.desktop "$(DESTDIR)$(desktopdir)" install-conf: $(conf_files) $(default_files) + $(mkinstalldirs) "$(DESTDIR)$(sysconfdir)/distcc" +-- +2.20.1 diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/dnf/dnf_4.2.2.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/dnf/dnf_4.2.2.bb index c7777333..f38167f1 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/dnf/dnf_4.2.2.bb +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/dnf/dnf_4.2.2.bb @@ -1,4 +1,7 @@ SUMMARY = "Package manager forked from Yum, using libsolv as a dependency resolver" +DESCRIPTION = "Software package manager that installs, updates, and removes \ +packages on RPM-based Linux distributions. It automatically computes \ +dependencies and determines the actions required to install packages." LICENSE = "GPLv2" LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \ file://PACKAGE-LICENSING;md5=4a0548e303dbc77f067335b4d688e745 \ @@ -71,7 +74,7 @@ do_install_append_class-native() { do_install_append_class-nativesdk() { create_wrapper ${D}/${bindir}/dnf \ RPM_CONFIGDIR=${SDKPATHNATIVE}${libdir_nativesdk}/rpm \ - RPM_NO_CHROOT_FOR_SCRIPTS=1 + RPM_NO_CHROOT_FOR_SCRIPTS=1 } SYSTEMD_SERVICE_${PN} = "dnf-makecache.service dnf-makecache.timer \ diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/docbook-xml/docbook-xml-dtd4_4.5.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/docbook-xml/docbook-xml-dtd4_4.5.bb index 4b6a28e3..6452c8d9 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/docbook-xml/docbook-xml-dtd4_4.5.bb +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/docbook-xml/docbook-xml-dtd4_4.5.bb @@ -8,8 +8,6 @@ HOMEPAGE = "http://www.docbook.org/xml/" LICENSE = "OASIS" LIC_FILES_CHKSUM = "file://${WORKDIR}/LICENSE-OASIS;md5=c608985dd5f7f215e669e7639a0b1d2e" -DEPENDS = "libxml2-native" - # Note: the upstream sources are not distributed with a license file. # LICENSE-OASIS is included as a "patch" to workaround this. When # upgrading this recipe, please verify whether this is still needed. diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/docbook-xml/docbook-xsl-stylesheets_1.79.1.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/docbook-xml/docbook-xsl-stylesheets_1.79.1.bb index ff38e874..c5d3a248 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/docbook-xml/docbook-xsl-stylesheets_1.79.1.bb +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/docbook-xml/docbook-xsl-stylesheets_1.79.1.bb @@ -14,8 +14,6 @@ UPSTREAM_CHECK_URI = "http://sourceforge.net/projects/docbook/files/docbook-xsl/ # Reject versions ending in .0 as those are release candidates UPSTREAM_CHECK_REGEX = "/docbook-xsl/(?P(\d+[\.\-_]*)+(?!\.0)\.\d+)/" -DEPENDS = "libxml2-native" - S = "${WORKDIR}/docbook-xsl-${PV}" inherit allarch xmlcatalog diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/dpkg/dpkg.inc b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/dpkg/dpkg.inc index fee7a758..1c3c585d 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/dpkg/dpkg.inc +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/dpkg/dpkg.inc @@ -9,7 +9,7 @@ RDEPENDS_${PN}_class-native = "" UPSTREAM_CHECK_URI = "${DEBIAN_MIRROR}/main/d/dpkg/" -inherit autotools gettext perlnative pkgconfig perl-version +inherit autotools gettext perlnative pkgconfig perl-version update-alternatives PERL_class-native = "${STAGING_BINDIR_NATIVE}/perl-native/perl" @@ -76,7 +76,10 @@ RDEPENDS_${PN}-perl += "perl-module-carp perl-module-constant \ # the bitbake version. # PACKAGES =+ "${PN}-start-stop" -FILES_${PN}-start-stop = "${sbindir}/start-stop-daemon" +FILES_${PN}-start-stop = "${sbindir}/start-stop-daemon.${BPN}" +ALTERNATIVE_${PN}-start-stop = "start-stop-daemon" +ALTERNATIVE_LINK_NAME[start-stop-daemon] = "${sbindir}/start-stop-daemon" +ALTERNATIVE_PRIORITY = "100" RDEPENDS_${PN} += "${PN}-start-stop" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/dpkg/dpkg/0003-Our-pre-postinsts-expect-D-to-be-set-when-running-in.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/dpkg/dpkg/0003-Our-pre-postinsts-expect-D-to-be-set-when-running-in.patch index b88be874..9ca7262e 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/dpkg/dpkg/0003-Our-pre-postinsts-expect-D-to-be-set-when-running-in.patch +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/dpkg/dpkg/0003-Our-pre-postinsts-expect-D-to-be-set-when-running-in.patch @@ -1,7 +1,7 @@ -From 24229971492515b64c81e8c6392e5dfbdc22b44c Mon Sep 17 00:00:00 2001 +From dd11ed66640f79143e42d778b58fdd5a61fb5836 Mon Sep 17 00:00:00 2001 From: Alexander Kanavin Date: Wed, 26 Aug 2015 16:25:45 +0300 -Subject: [PATCH 3/5] Our pre/postinsts expect $D to be set when running in a +Subject: [PATCH] Our pre/postinsts expect $D to be set when running in a sysroot and don't expect a chroot. This matches up our system expectations with what dpkg does. @@ -12,11 +12,11 @@ ALIMON 2016/05/26 ALIMON 2017/02/21 KKang 2019/02/20 --- - src/script.c | 44 +++----------------------------------------- - 1 file changed, 3 insertions(+), 41 deletions(-) + src/script.c | 53 +++------------------------------------------------- + 1 file changed, 3 insertions(+), 50 deletions(-) diff --git a/src/script.c b/src/script.c -index 0865b95..73ed35d 100644 +index abe65b6f7..621ff9b27 100644 --- a/src/script.c +++ b/src/script.c @@ -96,58 +96,11 @@ setexecute(const char *path, struct stat *stab) @@ -27,12 +27,12 @@ index 0865b95..73ed35d 100644 - const char *changedir; - size_t instdirlen = strlen(instdir); - -- if (instdirlen > 0 && fc_script_chrootless) +- if (instdirlen > 0 && in_force(FORCE_SCRIPT_CHROOTLESS)) - changedir = instdir; - else - changedir = "/"; - -- if (instdirlen > 0 && !fc_script_chrootless) { +- if (instdirlen > 0 && !in_force(FORCE_SCRIPT_CHROOTLESS)) { - int rc; - - if (strncmp(admindir, instdir, instdirlen) != 0) @@ -43,7 +43,7 @@ index 0865b95..73ed35d 100644 - ohshite(_("unable to setenv for subprocesses")); - - rc = chroot(instdir); -- if (rc && fc_nonroot && errno == EPERM) +- if (rc && in_force(FORCE_NON_ROOT) && errno == EPERM) - ohshit(_("not enough privileges to change root " - "directory with --force-not-root, consider " - "using --force-script-chrootless?")); @@ -69,7 +69,7 @@ index 0865b95..73ed35d 100644 - args.buf); - varbuf_destroy(&args); - } -- if (instdirlen == 0 || fc_script_chrootless) +- if (instdirlen == 0 || in_force(FORCE_SCRIPT_CHROOTLESS)) - return cmd->filename; - - if (strlen(cmd->filename) < instdirlen) @@ -82,5 +82,5 @@ index 0865b95..73ed35d 100644 /** -- -2.1.4 +2.17.1 diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/dpkg/dpkg_1.19.4.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/dpkg/dpkg_1.19.4.bb deleted file mode 100644 index b83868fe..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/dpkg/dpkg_1.19.4.bb +++ /dev/null @@ -1,22 +0,0 @@ -require dpkg.inc -LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe" - -SRC_URI = "${DEBIAN_MIRROR}/main/d/${BPN}/${BPN}_${PV}.tar.xz \ - file://noman.patch \ - file://remove-tar-no-timestamp.patch \ - file://arch_pm.patch \ - file://add_armeb_triplet_entry.patch \ - file://0002-Adapt-to-linux-wrs-kernel-version-which-has-characte.patch \ - file://0003-Our-pre-postinsts-expect-D-to-be-set-when-running-in.patch \ - file://0004-The-lutimes-function-doesn-t-work-properly-for-all-s.patch \ - file://0006-add-musleabi-to-known-target-tripets.patch \ - file://0007-dpkg-deb-build.c-Remove-usage-of-clamp-mtime-in-tar.patch \ - file://0001-dpkg-Support-muslx32-build.patch \ - file://pager.patch \ - " -SRC_URI_append_class-native = " \ - file://tweak-options-require-tar-1.27.patch \ -" - -SRC_URI[md5sum] = "1e4420409426d8c58bbe13a8e07c0c0b" -SRC_URI[sha256sum] = "c15234e98655689586bff2d517a6fdc6135d139c54d52ae9cfa6a90007fee0ae" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/dpkg/dpkg_1.19.7.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/dpkg/dpkg_1.19.7.bb new file mode 100644 index 00000000..e9dec337 --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/dpkg/dpkg_1.19.7.bb @@ -0,0 +1,22 @@ +require dpkg.inc +LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe" + +SRC_URI = "${DEBIAN_MIRROR}/main/d/${BPN}/${BPN}_${PV}.tar.xz \ + file://noman.patch \ + file://remove-tar-no-timestamp.patch \ + file://arch_pm.patch \ + file://add_armeb_triplet_entry.patch \ + file://0002-Adapt-to-linux-wrs-kernel-version-which-has-characte.patch \ + file://0003-Our-pre-postinsts-expect-D-to-be-set-when-running-in.patch \ + file://0004-The-lutimes-function-doesn-t-work-properly-for-all-s.patch \ + file://0006-add-musleabi-to-known-target-tripets.patch \ + file://0007-dpkg-deb-build.c-Remove-usage-of-clamp-mtime-in-tar.patch \ + file://0001-dpkg-Support-muslx32-build.patch \ + file://pager.patch \ + " +SRC_URI_append_class-native = " \ + file://tweak-options-require-tar-1.27.patch \ +" + +SRC_URI[md5sum] = "60f57c5494e6dfa177504d47bfa0e383" +SRC_URI[sha256sum] = "4c27fededf620c0aa522fff1a48577ba08144445341257502e7730f2b1a296e8" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/e2fsprogs/e2fsprogs/0001-create_inode-fix-copying-large-files.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/e2fsprogs/e2fsprogs/0001-create_inode-fix-copying-large-files.patch deleted file mode 100644 index c89581dc..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/e2fsprogs/e2fsprogs/0001-create_inode-fix-copying-large-files.patch +++ /dev/null @@ -1,50 +0,0 @@ -Upstream-Status: Submitted -Signed-off-by: Ross Burton - -From 674ab87b8338372338d20e21a350f88b4ff6c7c8 Mon Sep 17 00:00:00 2001 -From: Ross Burton -Date: Fri, 1 Feb 2019 10:59:59 +0000 -Subject: [PATCH] create_inode: fix copying large files - -When copying large files into a ext filesystem at mkfs time the copy fails at -2^31 bytes in. There are two problems: - -copy_file_chunk() passes an offset (off_t, 64-bit typically) to -ext2fs_file_lseek() which expects a ext2_off_t (typedef to __u32) so the value -is truncated. Solve by calling ext2fs_file_llseek() which takes a u64 offset -instead. - -try_lseek_copy() rounds the data and hole offsets as found by lseek() to block -boundaries, but the calculation gets truncated to 32-bits. Solve by casting the -32-bit blocksize to off_t to ensure this doesn't happen. - -Signed-off-by: Ross Burton ---- - misc/create_inode.c | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/misc/create_inode.c b/misc/create_inode.c -index 05aa6363..f106dcda 100644 ---- a/misc/create_inode.c -+++ b/misc/create_inode.c -@@ -438,7 +438,7 @@ static errcode_t copy_file_chunk(ext2_filsys fs, int fd, ext2_file_t e2_file, - ptr += blen; - continue; - } -- err = ext2fs_file_lseek(e2_file, off + bpos, -+ err = ext2fs_file_llseek(e2_file, off + bpos, - EXT2_SEEK_SET, NULL); - if (err) - goto fail; -@@ -481,7 +481,7 @@ static errcode_t try_lseek_copy(ext2_filsys fs, int fd, struct stat *statbuf, - return EXT2_ET_UNIMPLEMENTED; - - data_blk = data & ~(fs->blocksize - 1); -- hole_blk = (hole + (fs->blocksize - 1)) & ~(fs->blocksize - 1); -+ hole_blk = (hole + (off_t)(fs->blocksize - 1)) & ~(off_t)(fs->blocksize - 1); - err = copy_file_chunk(fs, fd, e2_file, data_blk, hole_blk, buf, - zerobuf); - if (err) --- -2.11.0 - diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/e2fsprogs/e2fsprogs/Revert-mke2fs-enable-the-metadata_csum-and-64bit-fea.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/e2fsprogs/e2fsprogs/Revert-mke2fs-enable-the-metadata_csum-and-64bit-fea.patch deleted file mode 100644 index d7e09b6b..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/e2fsprogs/e2fsprogs/Revert-mke2fs-enable-the-metadata_csum-and-64bit-fea.patch +++ /dev/null @@ -1,36 +0,0 @@ -From 0a392baf1874964651115d9f77b0daa6851d1daa Mon Sep 17 00:00:00 2001 -From: Jonathan Liu -Date: Tue, 1 Mar 2016 14:28:01 +1100 -Subject: [PATCH] Revert "mke2fs: enable the metadata_csum and 64bit features - by default" - -This reverts commit cd27af3ecb83e8fd1e3eaa14994284a1818c7c15 as we -don't want to enable features by default that are not supported by -the latest stable e2fsprogs release. - -Upstream-Status: Inappropriate [configuration] -Signed-off-by: Jonathan Liu - -Rebase to 1.43: -The upstream has disabled metadata_csum by default -this rebase just revert 64bit feature. -Signed-off-by: Hongxu Jia ---- - misc/mke2fs.conf.in | 3 ++- - 1 file changed, 2 insertions(+), 1 deletion(-) - -diff --git a/misc/mke2fs.conf.in b/misc/mke2fs.conf.in -index 01e35cf..25105b3 100644 ---- a/misc/mke2fs.conf.in -+++ b/misc/mke2fs.conf.in -@@ -11,8 +11,9 @@ - features = has_journal - } - ext4 = { -- features = has_journal,extent,huge_file,flex_bg,metadata_csum,64bit,dir_nlink,extra_isize -+ features = has_journal,extent,huge_file,flex_bg,metadata_csum,dir_nlink,extra_isize - inode_size = 256 -+ auto_64-bit_support = 1 - } - small = { - blocksize = 1024 diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/e2fsprogs/e2fsprogs/ptest.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/e2fsprogs/e2fsprogs/ptest.patch index 4e6b6292..c3e46ce6 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/e2fsprogs/e2fsprogs/ptest.patch +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/e2fsprogs/e2fsprogs/ptest.patch @@ -5,11 +5,13 @@ Subject: [PATCH] e2fsprogs: add ptest Upstream-Status: Inappropriate +Rebase for e2fsprogs 1.45.3. + +Signed-off-by: Kai Kang --- - tests/Makefile.in | 4 ++-- - tests/test_config | 32 ++++++++++++++++---------------- - tests/test_script.in | 2 +- - 3 files changed, 19 insertions(+), 19 deletions(-) + tests/Makefile.in | 4 ++-- + tests/test_config | 32 ++++++++++++++++---------------- + 2 files changed, 18 insertions(+), 18 deletions(-) diff --git a/tests/Makefile.in b/tests/Makefile.in index 8c4d2048..e021af32 100644 @@ -34,10 +36,10 @@ index 8c4d2048..e021af32 100644 @chmod +x-w test_script diff --git a/tests/test_config b/tests/test_config -index 1f146ca2..05125f9c 100644 +index 9dc762ce..a5fbdef6 100644 --- a/tests/test_config +++ b/tests/test_config -@@ -3,16 +3,16 @@ +@@ -3,25 +3,25 @@ # unset LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER LC_TELEPHONE LC_TIME PAGER @@ -62,12 +64,6 @@ index 1f146ca2..05125f9c 100644 +DEBUGFS="$USE_VALGRIND debugfs" +DEBUGFS_EXE="/sbin/debugfs" TEST_BITS="test_data.tmp" - if [ ! -s $TEST_BITS ]; then - # create a non-sparse test file if possible, since debugfs may be -@@ -21,14 +21,14 @@ if [ ! -s $TEST_BITS ]; then - dd if=/dev/urandom of=$TEST_BITS bs=128k count=1 > /dev/null 2>&1 || - TEST_BITS="$DEFBUGFS_EXE" - fi -RESIZE2FS_EXE="../resize/resize2fs" +RESIZE2FS_EXE="/sbin/resize2fs" RESIZE2FS="$USE_VALGRIND $RESIZE2FS_EXE" @@ -85,16 +81,3 @@ index 1f146ca2..05125f9c 100644 CLEAN_OUTPUT="sed -f $cmd_dir/filter.sed" LD_LIBRARY_PATH=../lib:../lib/ext2fs:../lib/e2p:../lib/et:../lib/ss:${LD_LIBRARY_PATH} DYLD_LIBRARY_PATH=../lib:../lib/ext2fs:../lib/e2p:../lib/et:../lib/ss:${DYLD_LIBRARY_PATH} -diff --git a/tests/test_script.in b/tests/test_script.in -index 9959e308..442999db 100644 ---- a/tests/test_script.in -+++ b/tests/test_script.in -@@ -39,7 +39,7 @@ for i; do - done - - if test "$TESTS"x = x ; then -- if test -n "DO_FAILED"; then -+ if test -n "$DO_FAILED"; then - exit 0 - fi - TESTS=`ls -d $SRCDIR/[a-zA-Z]_*` diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/e2fsprogs/e2fsprogs_1.44.5.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/e2fsprogs/e2fsprogs_1.44.5.bb deleted file mode 100644 index ed946159..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/e2fsprogs/e2fsprogs_1.44.5.bb +++ /dev/null @@ -1,137 +0,0 @@ -require e2fsprogs.inc - -SRC_URI += "file://remove.ldconfig.call.patch \ - file://run-ptest \ - file://ptest.patch \ - file://Revert-mke2fs-enable-the-metadata_csum-and-64bit-fea.patch \ - file://mkdir_p.patch \ - file://0001-misc-create_inode.c-set-dir-s-mode-correctly.patch \ - file://0001-create_inode-fix-copying-large-files.patch \ - " - -SRC_URI_append_class-native = " file://e2fsprogs-fix-missing-check-for-permission-denied.patch \ - file://quiet-debugfs.patch \ -" - -SRCREV = "9a03c07e00f09a772245281d84a284c67e905148" -UPSTREAM_CHECK_GITTAGREGEX = "v(?P\d+\.\d+(\.\d+)*)$" - -EXTRA_OECONF += "--libdir=${base_libdir} --sbindir=${base_sbindir} \ - --enable-elf-shlibs --disable-libuuid --disable-uuidd \ - --disable-libblkid --enable-verbose-makecmds" - -EXTRA_OECONF_darwin = "--libdir=${base_libdir} --sbindir=${base_sbindir} --enable-bsd-shlibs" - -PACKAGECONFIG ??= "" -PACKAGECONFIG[fuse] = '--enable-fuse2fs,--disable-fuse2fs,fuse' - -# make locale rules sometimes fire, sometimes don't as git doesn't preserve -# file mktime. Touch the files introducing non-determinism to the build -do_compile_prepend (){ - find ${S}/po -type f -name "*.po" -exec touch {} + -} - -do_install () { - oe_runmake 'DESTDIR=${D}' install - oe_runmake 'DESTDIR=${D}' install-libs - # We use blkid from util-linux now so remove from here - rm -f ${D}${base_libdir}/libblkid* - rm -rf ${D}${includedir}/blkid - rm -f ${D}${base_libdir}/pkgconfig/blkid.pc - rm -f ${D}${base_sbindir}/blkid - rm -f ${D}${base_sbindir}/fsck - rm -f ${D}${base_sbindir}/findfs - - # e2initrd_helper and the pkgconfig files belong in libdir - if [ ! ${D}${libdir} -ef ${D}${base_libdir} ]; then - install -d ${D}${libdir} - mv ${D}${base_libdir}/e2initrd_helper ${D}${libdir} - mv ${D}${base_libdir}/pkgconfig ${D}${libdir} - fi - - oe_multilib_header ext2fs/ext2_types.h - install -d ${D}${base_bindir} - mv ${D}${bindir}/chattr ${D}${base_bindir}/chattr.e2fsprogs - - install -v -m 755 ${S}/contrib/populate-extfs.sh ${D}${base_sbindir}/ - - # Clean host path (build directory) in compile_et, mk_cmds - sed -i -e "s,\(ET_DIR=.*\)${S}/lib/et\(.*\),\1${datadir}/et\2,g" ${D}${bindir}/compile_et - sed -i -e "s,\(SS_DIR=.*\)${S}/lib/ss\(.*\),\1${datadir}/ss\2,g" ${D}${bindir}/mk_cmds -} - -# Need to find the right mke2fs.conf file -e2fsprogs_conf_fixup () { - for i in mke2fs mkfs.ext2 mkfs.ext3 mkfs.ext4; do - create_wrapper ${D}${base_sbindir}/$i MKE2FS_CONFIG=${sysconfdir}/mke2fs.conf - done -} - -do_install_append_class-native() { - e2fsprogs_conf_fixup -} - -do_install_append_class-nativesdk() { - e2fsprogs_conf_fixup -} - -do_install_append_class-target() { - mv ${D}${base_sbindir}/mke2fs ${D}${base_sbindir}/mke2fs.e2fsprogs - mv ${D}${base_sbindir}/mkfs.ext2 ${D}${base_sbindir}/mkfs.ext2.e2fsprogs - mv ${D}${base_sbindir}/tune2fs ${D}${base_sbindir}/tune2fs.e2fsprogs -} - -RDEPENDS_e2fsprogs = "e2fsprogs-badblocks" -RRECOMMENDS_e2fsprogs = "e2fsprogs-mke2fs e2fsprogs-e2fsck" - -PACKAGES =+ "e2fsprogs-e2fsck e2fsprogs-mke2fs e2fsprogs-tune2fs e2fsprogs-badblocks e2fsprogs-resize2fs" -PACKAGES =+ "libcomerr libss libe2p libext2fs" - -FILES_e2fsprogs-resize2fs = "${base_sbindir}/resize2fs*" -FILES_e2fsprogs-e2fsck = "${base_sbindir}/e2fsck ${base_sbindir}/fsck.ext*" -FILES_e2fsprogs-mke2fs = "${base_sbindir}/mke2fs.e2fsprogs ${base_sbindir}/mkfs.ext* ${sysconfdir}/mke2fs.conf" -FILES_e2fsprogs-tune2fs = "${base_sbindir}/tune2fs.e2fsprogs ${base_sbindir}/e2label" -FILES_e2fsprogs-badblocks = "${base_sbindir}/badblocks" -FILES_libcomerr = "${base_libdir}/libcom_err.so.*" -FILES_libss = "${base_libdir}/libss.so.*" -FILES_libe2p = "${base_libdir}/libe2p.so.*" -FILES_libext2fs = "${libdir}/e2initrd_helper ${base_libdir}/libext2fs.so.*" -FILES_${PN}-dev += "${datadir}/*/*.awk ${datadir}/*/*.sed ${base_libdir}/*.so ${bindir}/compile_et ${bindir}/mk_cmds" - -ALTERNATIVE_${PN} = "chattr" -ALTERNATIVE_PRIORITY = "100" -ALTERNATIVE_LINK_NAME[chattr] = "${base_bindir}/chattr" -ALTERNATIVE_TARGET[chattr] = "${base_bindir}/chattr.e2fsprogs" - -ALTERNATIVE_${PN}-doc = "fsck.8" -ALTERNATIVE_LINK_NAME[fsck.8] = "${mandir}/man8/fsck.8" - -ALTERNATIVE_${PN}-mke2fs = "mke2fs mkfs.ext2" -ALTERNATIVE_LINK_NAME[mke2fs] = "${base_sbindir}/mke2fs" -ALTERNATIVE_LINK_NAME[mkfs.ext2] = "${base_sbindir}/mkfs.ext2" - -ALTERNATIVE_${PN}-tune2fs = "tune2fs" -ALTERNATIVE_LINK_NAME[tune2fs] = "${base_sbindir}/tune2fs" - -RDEPENDS_${PN}-ptest += "coreutils procps bash bzip2 diffutils perl sed" -RDEPENDS_${PN}-ptest += "e2fsprogs-e2fsck e2fsprogs-mke2fs e2fsprogs-tune2fs e2fsprogs-badblocks e2fsprogs-resize2fs" - -do_compile_ptest() { - oe_runmake -C ${B}/tests -} - -do_install_ptest() { - cp -R --no-dereference --preserve=mode,links -v ${B}/tests ${D}${PTEST_PATH}/test - cp -R --no-dereference --preserve=mode,links -v ${S}/tests/* ${D}${PTEST_PATH}/test - sed -e 's!../e2fsck/e2fsck!e2fsck!g' \ - -e 's!../misc/tune2fs!tune2fs!g' -i ${D}${PTEST_PATH}/test/*/expect* - sed -e 's!../e2fsck/e2fsck!${base_sbindir}/e2fsck!g' -i ${D}${PTEST_PATH}/test/*/script - - # Remove various files - find "${D}${PTEST_PATH}" -type f \ - \( -name 'Makefile' -o -name 'Makefile.in' -o -name '*.o' -o -name '*.c' -o -name '*.h' \)\ - -exec rm -f {} + - - install -d ${D}${PTEST_PATH}/lib - install -m 0644 ${B}/lib/config.h ${D}${PTEST_PATH}/lib/ -} diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/e2fsprogs/e2fsprogs_1.45.4.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/e2fsprogs/e2fsprogs_1.45.4.bb new file mode 100644 index 00000000..90db71df --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/e2fsprogs/e2fsprogs_1.45.4.bb @@ -0,0 +1,138 @@ +require e2fsprogs.inc + +SRC_URI += "file://remove.ldconfig.call.patch \ + file://run-ptest \ + file://ptest.patch \ + file://mkdir_p.patch \ + file://0001-misc-create_inode.c-set-dir-s-mode-correctly.patch \ + " + +SRC_URI_append_class-native = " file://e2fsprogs-fix-missing-check-for-permission-denied.patch \ + file://quiet-debugfs.patch \ +" + +SRCREV = "984ff8d6a0a1d5dc300505f67b38ed5047d51dac" +UPSTREAM_CHECK_GITTAGREGEX = "v(?P\d+\.\d+(\.\d+)*)$" + +EXTRA_OECONF += "--libdir=${base_libdir} --sbindir=${base_sbindir} \ + --enable-elf-shlibs --disable-libuuid --disable-uuidd \ + --disable-libblkid --enable-verbose-makecmds \ + --with-crond-dir=no" + +EXTRA_OECONF_darwin = "--libdir=${base_libdir} --sbindir=${base_sbindir} --enable-bsd-shlibs" + +PACKAGECONFIG ??= "" +PACKAGECONFIG[fuse] = '--enable-fuse2fs,--disable-fuse2fs,fuse' + +# make locale rules sometimes fire, sometimes don't as git doesn't preserve +# file mktime. Touch the files introducing non-determinism to the build +do_compile_prepend (){ + find ${S}/po -type f -name "*.po" -exec touch {} + +} + +do_install () { + oe_runmake 'DESTDIR=${D}' install + oe_runmake 'DESTDIR=${D}' install-libs + # We use blkid from util-linux now so remove from here + rm -f ${D}${base_libdir}/libblkid* + rm -rf ${D}${includedir}/blkid + rm -f ${D}${base_libdir}/pkgconfig/blkid.pc + rm -f ${D}${base_sbindir}/blkid + rm -f ${D}${base_sbindir}/fsck + rm -f ${D}${base_sbindir}/findfs + + # e2initrd_helper and the pkgconfig files belong in libdir + if [ ! ${D}${libdir} -ef ${D}${base_libdir} ]; then + install -d ${D}${libdir} + mv ${D}${base_libdir}/e2initrd_helper ${D}${libdir} + mv ${D}${base_libdir}/pkgconfig ${D}${libdir} + fi + + oe_multilib_header ext2fs/ext2_types.h + install -d ${D}${base_bindir} + mv ${D}${bindir}/chattr ${D}${base_bindir}/chattr.e2fsprogs + + install -v -m 755 ${S}/contrib/populate-extfs.sh ${D}${base_sbindir}/ + + # Clean host path (build directory) in compile_et, mk_cmds + sed -i -e "s,\(ET_DIR=.*\)${S}/lib/et\(.*\),\1${datadir}/et\2,g" ${D}${bindir}/compile_et + sed -i -e "s,\(SS_DIR=.*\)${S}/lib/ss\(.*\),\1${datadir}/ss\2,g" ${D}${bindir}/mk_cmds +} + +# Need to find the right mke2fs.conf file +e2fsprogs_conf_fixup () { + for i in mke2fs mkfs.ext2 mkfs.ext3 mkfs.ext4; do + create_wrapper ${D}${base_sbindir}/$i MKE2FS_CONFIG=${sysconfdir}/mke2fs.conf + done +} + +do_install_append_class-native() { + e2fsprogs_conf_fixup +} + +do_install_append_class-nativesdk() { + e2fsprogs_conf_fixup +} + +do_install_append_class-target() { + mv ${D}${base_sbindir}/mke2fs ${D}${base_sbindir}/mke2fs.e2fsprogs + mv ${D}${base_sbindir}/mkfs.ext2 ${D}${base_sbindir}/mkfs.ext2.e2fsprogs + mv ${D}${base_sbindir}/tune2fs ${D}${base_sbindir}/tune2fs.e2fsprogs +} + +RDEPENDS_e2fsprogs = "e2fsprogs-badblocks" +RRECOMMENDS_e2fsprogs = "e2fsprogs-mke2fs e2fsprogs-e2fsck" + +PACKAGES =+ "e2fsprogs-e2fsck e2fsprogs-e2scrub e2fsprogs-mke2fs e2fsprogs-tune2fs e2fsprogs-badblocks e2fsprogs-resize2fs" +PACKAGES =+ "libcomerr libss libe2p libext2fs" + +FILES_e2fsprogs-resize2fs = "${base_sbindir}/resize2fs*" +FILES_e2fsprogs-e2fsck = "${base_sbindir}/e2fsck ${base_sbindir}/fsck.ext*" +FILES_e2fsprogs-e2scrub = "${base_sbindir}/e2scrub*" +FILES_e2fsprogs-mke2fs = "${base_sbindir}/mke2fs.e2fsprogs ${base_sbindir}/mkfs.ext* ${sysconfdir}/mke2fs.conf" +FILES_e2fsprogs-tune2fs = "${base_sbindir}/tune2fs.e2fsprogs ${base_sbindir}/e2label" +FILES_e2fsprogs-badblocks = "${base_sbindir}/badblocks" +FILES_libcomerr = "${base_libdir}/libcom_err.so.*" +FILES_libss = "${base_libdir}/libss.so.*" +FILES_libe2p = "${base_libdir}/libe2p.so.*" +FILES_libext2fs = "${libdir}/e2initrd_helper ${base_libdir}/libext2fs.so.*" +FILES_${PN}-dev += "${datadir}/*/*.awk ${datadir}/*/*.sed ${base_libdir}/*.so ${bindir}/compile_et ${bindir}/mk_cmds" + +ALTERNATIVE_${PN} = "chattr" +ALTERNATIVE_PRIORITY = "100" +ALTERNATIVE_LINK_NAME[chattr] = "${base_bindir}/chattr" +ALTERNATIVE_TARGET[chattr] = "${base_bindir}/chattr.e2fsprogs" + +ALTERNATIVE_${PN}-doc = "fsck.8" +ALTERNATIVE_LINK_NAME[fsck.8] = "${mandir}/man8/fsck.8" + +ALTERNATIVE_${PN}-mke2fs = "mke2fs mkfs.ext2" +ALTERNATIVE_LINK_NAME[mke2fs] = "${base_sbindir}/mke2fs" +ALTERNATIVE_LINK_NAME[mkfs.ext2] = "${base_sbindir}/mkfs.ext2" + +ALTERNATIVE_${PN}-tune2fs = "tune2fs" +ALTERNATIVE_LINK_NAME[tune2fs] = "${base_sbindir}/tune2fs" + +RDEPENDS_e2fsprogs-e2scrub = "bash" +RDEPENDS_${PN}-ptest += "coreutils procps bash bzip2 diffutils perl sed" +RDEPENDS_${PN}-ptest += "e2fsprogs-e2fsck e2fsprogs-mke2fs e2fsprogs-tune2fs e2fsprogs-badblocks e2fsprogs-resize2fs" + +do_compile_ptest() { + oe_runmake -C ${B}/tests +} + +do_install_ptest() { + cp -R --no-dereference --preserve=mode,links -v ${B}/tests ${D}${PTEST_PATH}/test + cp -R --no-dereference --preserve=mode,links -v ${S}/tests/* ${D}${PTEST_PATH}/test + sed -e 's!../e2fsck/e2fsck!e2fsck!g' \ + -e 's!../misc/tune2fs!tune2fs!g' -i ${D}${PTEST_PATH}/test/*/expect* + sed -e 's!../e2fsck/e2fsck!${base_sbindir}/e2fsck!g' -i ${D}${PTEST_PATH}/test/*/script + + # Remove various files + find "${D}${PTEST_PATH}" -type f \ + \( -name 'Makefile' -o -name 'Makefile.in' -o -name '*.o' -o -name '*.c' -o -name '*.h' \)\ + -exec rm -f {} + + + install -d ${D}${PTEST_PATH}/lib + install -m 0644 ${B}/lib/config.h ${D}${PTEST_PATH}/lib/ +} diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/elfutils/elfutils_0.176.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/elfutils/elfutils_0.176.bb deleted file mode 100644 index 5b8049f5..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/elfutils/elfutils_0.176.bb +++ /dev/null @@ -1,146 +0,0 @@ -SUMMARY = "Utilities and libraries for handling compiled object files" -HOMEPAGE = "https://sourceware.org/elfutils" -SECTION = "base" -LICENSE = "GPLv2 & LGPLv3+ & GPLv3+" -LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504" -DEPENDS = "libtool bzip2 zlib virtual/libintl" -DEPENDS_append_libc-musl = " argp-standalone fts " -# The Debian patches below are from: -# http://ftp.de.debian.org/debian/pool/main/e/elfutils/elfutils_0.175-1.debian.tar.xz -SRC_URI = "https://sourceware.org/elfutils/ftp/${PV}/${BP}.tar.bz2 \ - file://0001-dso-link-change.patch \ - file://0002-Fix-elf_cvt_gunhash-if-dest-and-src-are-same.patch \ - file://0003-fixheadercheck.patch \ - file://0004-Disable-the-test-to-convert-euc-jp.patch \ - file://0006-Fix-build-on-aarch64-musl.patch \ - file://0007-Fix-control-path-where-we-have-str-as-uninitialized-.patch \ - file://0001-libasm-may-link-with-libbz2-if-found.patch \ - file://0001-libelf-elf_end.c-check-data_list.data.d.d_buf-before.patch \ - file://debian/hppa_backend.diff \ - file://debian/arm_backend.diff \ - file://debian/mips_backend.diff \ - file://debian/mips_readelf_w.patch \ - file://debian/kfreebsd_path.patch \ - file://debian/0001-Ignore-differences-between-mips-machine-identifiers.patch \ - file://debian/0002-Add-support-for-mips64-abis-in-mips_retval.c.patch \ - file://debian/0003-Add-mips-n64-relocation-format-hack.patch \ - file://debian/hurd_path.patch \ - file://debian/ignore_strmerge.diff \ - file://debian/disable_werror.patch \ - file://debian/testsuite-ignore-elflint.diff \ - file://0001-skip-the-test-when-gcc-not-deployed.patch \ - file://run-ptest \ - file://ptest.patch \ - file://musl.patch \ - " -SRC_URI_append_libc-musl = " file://0008-build-Provide-alternatives-for-glibc-assumptions-hel.patch \ - file://0001-fix-err-variable-and-function-conflicts.patch \ -" - -SRC_URI[md5sum] = "077e4f49320cad82bf17a997068b1db9" -SRC_URI[sha256sum] = "eb5747c371b0af0f71e86215a5ebb88728533c3a104a43d4231963f308cd1023" - -inherit autotools gettext ptest - -EXTRA_OECONF = "--program-prefix=eu- --without-lzma" -EXTRA_OECONF_append_class-native = " --without-bzlib" -RDEPENDS_${PN}-ptest += "libasm libelf bash make coreutils ${PN}-binutils" - -EXTRA_OECONF_append_class-target += "--disable-tests-rpath" - -do_install_append() { - if [ "${TARGET_ARCH}" != "x86_64" ] && [ -z `echo "${TARGET_ARCH}"|grep 'i.86'` ];then - rm -f ${D}${bindir}/eu-objdump - fi -} - -do_compile_ptest() { - cd ${B}/tests - oe_runmake buildtest-TESTS oecheck -} - -do_install_ptest() { - if [ ${PTEST_ENABLED} = "1" ]; then - # copy the files which needed by the cases - TEST_FILES="strip strip.o addr2line elfcmp objdump readelf size.o nm.o nm elflint" - install -d -m 755 ${D}${PTEST_PATH}/src - install -d -m 755 ${D}${PTEST_PATH}/libelf - install -d -m 755 ${D}${PTEST_PATH}/libdw - for test_file in ${TEST_FILES}; do - if [ -f ${B}/src/${test_file} ]; then - cp -r ${B}/src/${test_file} ${D}${PTEST_PATH}/src - fi - done - cp ${D}${libdir}/libelf-${PV}.so ${D}${PTEST_PATH}/libelf/libelf.so - cp ${D}${libdir}/libdw-${PV}.so ${D}${PTEST_PATH}/libdw/libdw.so - cp -r ${S}/tests/ ${D}${PTEST_PATH} - cp -r ${B}/tests/* ${D}${PTEST_PATH}/tests - cp -r ${B}/config.h ${D}${PTEST_PATH} - cp -r ${B}/backends ${D}${PTEST_PATH} - sed -i '/^Makefile:/c Makefile:' ${D}${PTEST_PATH}/tests/Makefile - find ${D}${PTEST_PATH} -type f -name *.[hoc] | xargs -i rm {} - fi -} - -EXTRA_OEMAKE_class-native = "" -EXTRA_OEMAKE_class-nativesdk = "" - -ALLOW_EMPTY_${PN}_libc-musl = "1" - -BBCLASSEXTEND = "native nativesdk" - -# Package utilities separately -PACKAGES =+ "${PN}-binutils libelf libasm libdw" - -# shared libraries are licensed GPLv2 or GPLv3+, binaries GPLv3+ -# according to NEWS file: -# "The license is now GPLv2/LGPLv3+ for the libraries and GPLv3+ for stand-alone -# programs. There is now also a formal CONTRIBUTING document describing how to -# submit patches." -LICENSE_${PN}-binutils = "GPLv3+" -LICENSE_${PN} = "GPLv3+" -LICENSE_libelf = "GPLv2 | LGPLv3+" -LICENSE_libasm = "GPLv2 | LGPLv3+" -LICENSE_libdw = "GPLv2 | LGPLv3+" - -FILES_${PN}-binutils = "\ - ${bindir}/eu-addr2line \ - ${bindir}/eu-ld \ - ${bindir}/eu-nm \ - ${bindir}/eu-readelf \ - ${bindir}/eu-size \ - ${bindir}/eu-strip" - -FILES_libelf = "${libdir}/libelf-${PV}.so ${libdir}/libelf.so.*" -FILES_libasm = "${libdir}/libasm-${PV}.so ${libdir}/libasm.so.*" -FILES_libdw = "${libdir}/libdw-${PV}.so ${libdir}/libdw.so.* ${libdir}/elfutils/lib*" -# Some packages have the version preceeding the .so instead properly -# versioned .so., so we need to reorder and repackage. -#FILES_${PN} += "${libdir}/*-${PV}.so ${base_libdir}/*-${PV}.so" -#FILES_SOLIBSDEV = "${libdir}/libasm.so ${libdir}/libdw.so ${libdir}/libelf.so" - -# The package contains symlinks that trip up insane -INSANE_SKIP_${MLPREFIX}libdw = "dev-so" - -# avoid stripping some generated binaries otherwise some of the tests such as test-nlist, -# run-strip-reloc.sh, run-strip-strmerge.sh and so on will fail -INHIBIT_PACKAGE_STRIP_FILES = "\ - ${PKGD}${PTEST_PATH}/tests/test-nlist \ - ${PKGD}${PTEST_PATH}/tests/elfstrmerge \ - ${PKGD}${PTEST_PATH}/tests/backtrace-child \ - ${PKGD}${PTEST_PATH}/tests/backtrace-data \ - ${PKGD}${PTEST_PATH}/tests/deleted \ - ${PKGD}${PTEST_PATH}/src/strip \ - ${PKGD}${PTEST_PATH}/src/addr2line \ - ${PKGD}${PTEST_PATH}/src/elfcmp \ - ${PKGD}${PTEST_PATH}/src/objdump \ - ${PKGD}${PTEST_PATH}/src/readelf \ - ${PKGD}${PTEST_PATH}/src/nm \ - ${PKGD}${PTEST_PATH}/src/elflint \ - ${PKGD}${PTEST_PATH}/libelf/libelf.so \ - ${PKGD}${PTEST_PATH}/libdw/libdw.so \ - ${PKGD}${PTEST_PATH}/backends/libebl_i386.so \ - ${PKGD}${PTEST_PATH}/backends/libebl_x86_64.so \ -" - -EXCLUDE_PACKAGES_FROM_SHLIBS = "${PN}-ptest" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/elfutils/elfutils_0.177.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/elfutils/elfutils_0.177.bb new file mode 100644 index 00000000..e7740c7f --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/elfutils/elfutils_0.177.bb @@ -0,0 +1,155 @@ +SUMMARY = "Utilities and libraries for handling compiled object files" +HOMEPAGE = "https://sourceware.org/elfutils" +SECTION = "base" +LICENSE = "GPLv2 & LGPLv3+ & GPLv3+" +LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504" +DEPENDS = "zlib virtual/libintl" +DEPENDS_append_libc-musl = " argp-standalone fts musl-obstack " +# The Debian patches below are from: +# http://ftp.de.debian.org/debian/pool/main/e/elfutils/elfutils_0.176-1.debian.tar.xz +SRC_URI = "https://sourceware.org/elfutils/ftp/${PV}/${BP}.tar.bz2 \ + file://0001-dso-link-change.patch \ + file://0002-Fix-elf_cvt_gunhash-if-dest-and-src-are-same.patch \ + file://0003-fixheadercheck.patch \ + file://0004-Disable-the-test-to-convert-euc-jp.patch \ + file://0006-Fix-build-on-aarch64-musl.patch \ + file://0007-Fix-control-path-where-we-have-str-as-uninitialized-.patch \ + file://0001-libasm-may-link-with-libbz2-if-found.patch \ + file://0001-libelf-elf_end.c-check-data_list.data.d.d_buf-before.patch \ + file://debian/hppa_backend.diff \ + file://debian/arm_backend.diff \ + file://debian/mips_backend.diff \ + file://debian/mips_readelf_w.patch \ + file://debian/kfreebsd_path.patch \ + file://debian/0001-Ignore-differences-between-mips-machine-identifiers.patch \ + file://debian/0002-Add-support-for-mips64-abis-in-mips_retval.c.patch \ + file://debian/0003-Add-mips-n64-relocation-format-hack.patch \ + file://debian/hurd_path.patch \ + file://debian/ignore_strmerge.diff \ + file://debian/disable_werror.patch \ + file://debian/testsuite-ignore-elflint.diff \ + file://debian/mips_cfi.patch \ + file://debian/0001-fix-compile-failure-with-debian-patches.patch \ + file://0001-skip-the-test-when-gcc-not-deployed.patch \ + file://0001-ppc_initreg.c-Incliude-asm-ptrace.h-for-pt_regs-defi.patch \ + file://run-ptest \ + file://ptest.patch \ + " +SRC_URI_append_libc-musl = " \ + file://musl-obstack-fts.patch \ + file://musl-libs.patch \ + file://musl-utils.patch \ + file://musl-tests.patch \ + " +SRC_URI[md5sum] = "0b583722f911e1632544718d502aab87" +SRC_URI[sha256sum] = "fa489deccbcae7d8c920f60d85906124c1989c591196d90e0fd668e3dc05042e" + +inherit autotools gettext ptest + +EXTRA_OECONF = "--program-prefix=eu-" + +DEPENDS_BZIP2 = "bzip2-replacement-native" +DEPENDS_BZIP2_class-target = "bzip2" + +PACKAGECONFIG ??= "" +PACKAGECONFIG[bzip2] = "--with-bzlib,--without-bzlib,${DEPENDS_BZIP2}" +PACKAGECONFIG[xz] = "--with-lzma,--without-lzma,xz" + +RDEPENDS_${PN}-ptest += "libasm libelf bash make coreutils ${PN}-binutils" + +EXTRA_OECONF_append_class-target += "--disable-tests-rpath" + +do_install_append() { + if [ "${TARGET_ARCH}" != "x86_64" ] && [ -z `echo "${TARGET_ARCH}"|grep 'i.86'` ];then + rm -f ${D}${bindir}/eu-objdump + fi +} + +do_compile_ptest() { + cd ${B}/tests + oe_runmake buildtest-TESTS oecheck +} + +do_install_ptest() { + if [ ${PTEST_ENABLED} = "1" ]; then + # copy the files which needed by the cases + TEST_FILES="strip strip.o addr2line elfcmp objdump readelf size.o nm.o nm elflint" + install -d -m 755 ${D}${PTEST_PATH}/src + install -d -m 755 ${D}${PTEST_PATH}/libelf + install -d -m 755 ${D}${PTEST_PATH}/libdw + for test_file in ${TEST_FILES}; do + if [ -f ${B}/src/${test_file} ]; then + cp -r ${B}/src/${test_file} ${D}${PTEST_PATH}/src + fi + done + cp ${D}${libdir}/libelf-${PV}.so ${D}${PTEST_PATH}/libelf/libelf.so + cp ${D}${libdir}/libdw-${PV}.so ${D}${PTEST_PATH}/libdw/libdw.so + cp -r ${S}/tests/ ${D}${PTEST_PATH} + cp -r ${B}/tests/* ${D}${PTEST_PATH}/tests + cp -r ${B}/config.h ${D}${PTEST_PATH} + cp -r ${B}/backends ${D}${PTEST_PATH} + sed -i '/^Makefile:/c Makefile:' ${D}${PTEST_PATH}/tests/Makefile + find ${D}${PTEST_PATH} -type f -name *.[hoc] | xargs -i rm {} + fi +} + +EXTRA_OEMAKE_class-native = "" +EXTRA_OEMAKE_class-nativesdk = "" + +BBCLASSEXTEND = "native nativesdk" + +# Package utilities separately +PACKAGES =+ "${PN}-binutils libelf libasm libdw" + +# shared libraries are licensed GPLv2 or GPLv3+, binaries GPLv3+ +# according to NEWS file: +# "The license is now GPLv2/LGPLv3+ for the libraries and GPLv3+ for stand-alone +# programs. There is now also a formal CONTRIBUTING document describing how to +# submit patches." +LICENSE_${PN}-binutils = "GPLv3+" +LICENSE_${PN} = "GPLv3+" +LICENSE_libelf = "GPLv2 | LGPLv3+" +LICENSE_libasm = "GPLv2 | LGPLv3+" +LICENSE_libdw = "GPLv2 | LGPLv3+" + +FILES_${PN}-binutils = "\ + ${bindir}/eu-addr2line \ + ${bindir}/eu-ld \ + ${bindir}/eu-nm \ + ${bindir}/eu-readelf \ + ${bindir}/eu-size \ + ${bindir}/eu-strip" + +FILES_libelf = "${libdir}/libelf-${PV}.so ${libdir}/libelf.so.*" +FILES_libasm = "${libdir}/libasm-${PV}.so ${libdir}/libasm.so.*" +FILES_libdw = "${libdir}/libdw-${PV}.so ${libdir}/libdw.so.* ${libdir}/elfutils/lib*" +# Some packages have the version preceeding the .so instead properly +# versioned .so., so we need to reorder and repackage. +#FILES_${PN} += "${libdir}/*-${PV}.so ${base_libdir}/*-${PV}.so" +#FILES_SOLIBSDEV = "${libdir}/libasm.so ${libdir}/libdw.so ${libdir}/libelf.so" + +# The package contains symlinks that trip up insane +INSANE_SKIP_${MLPREFIX}libdw = "dev-so" + +# avoid stripping some generated binaries otherwise some of the tests such as test-nlist, +# run-strip-reloc.sh, run-strip-strmerge.sh and so on will fail +INHIBIT_PACKAGE_STRIP_FILES = "\ + ${PKGD}${PTEST_PATH}/tests/test-nlist \ + ${PKGD}${PTEST_PATH}/tests/elfstrmerge \ + ${PKGD}${PTEST_PATH}/tests/backtrace-child \ + ${PKGD}${PTEST_PATH}/tests/backtrace-data \ + ${PKGD}${PTEST_PATH}/tests/deleted \ + ${PKGD}${PTEST_PATH}/src/strip \ + ${PKGD}${PTEST_PATH}/src/addr2line \ + ${PKGD}${PTEST_PATH}/src/elfcmp \ + ${PKGD}${PTEST_PATH}/src/objdump \ + ${PKGD}${PTEST_PATH}/src/readelf \ + ${PKGD}${PTEST_PATH}/src/nm \ + ${PKGD}${PTEST_PATH}/src/elflint \ + ${PKGD}${PTEST_PATH}/libelf/libelf.so \ + ${PKGD}${PTEST_PATH}/libdw/libdw.so \ + ${PKGD}${PTEST_PATH}/backends/libebl_i386.so \ + ${PKGD}${PTEST_PATH}/backends/libebl_x86_64.so \ +" + +PRIVATE_LIBS_${PN}-ptest = "libdw.so.1 libelf.so.1" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/elfutils/files/0001-fix-err-variable-and-function-conflicts.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/elfutils/files/0001-fix-err-variable-and-function-conflicts.patch deleted file mode 100644 index 433db133..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/elfutils/files/0001-fix-err-variable-and-function-conflicts.patch +++ /dev/null @@ -1,91 +0,0 @@ -From 2c50fe7068bd6911958c6d851aef88179e73bb21 Mon Sep 17 00:00:00 2001 -From: Mingli Yu -Date: Tue, 16 Apr 2019 15:30:38 +0800 -Subject: [PATCH] fix err variable and function conflicts - -There comes below build failure with musl when -ptest enabled. -| In file included from ../../elfutils-0.176/tests/dwfl-proc-attach.c:33: -| ../../elfutils-0.176/lib/system.h:63:35: error: called object 'err' is not a function or function pointer -| #define error(status, errno, ...) err(status, __VA_ARGS__) -| ^~~ -| ../../elfutils-0.176/tests/dwfl-proc-attach.c:92:5: note: in expansion of macro 'error' -| error (-1, 0, "dwfl_linux_proc_attach pid %d: %s", pid, -| ^~~~~ -| ../../elfutils-0.176/tests/dwfl-proc-attach.c:79:7: note: declared here -| int err; -| ^~~ - -It is because there is no error.h in musl and -the patch 0008-build-Provide-alternatives-for-glibc-assumptions-hel.patch -has updated to use err.h to replace error.h -and also added macro definiton as below when -use musl. - #define error(status, errno, ...) err(status, __VA_ARGS__) - -And in err.h, there is below logic: -_Noreturn void err(int, const char *, ...); - -But when ptest enabled, there comes below error -as there is both variable and function defined -to be err in tests/dwfl-proc-attach.c. -So change the err variable's name to workaround -the build failure with musl. - -Upstream-Status: Inappropriate [workaround in musl] - -Signed-off-by: Mingli Yu ---- - tests/dwfl-proc-attach.c | 6 +++--- - 1 file changed, 3 insertions(+), 3 deletions(-) - -Index: elfutils-0.176/tests/dwfl-proc-attach.c -=================================================================== ---- elfutils-0.176.orig/tests/dwfl-proc-attach.c -+++ elfutils-0.176/tests/dwfl-proc-attach.c -@@ -76,10 +76,10 @@ main (int argc __attribute__ ((unused)), - char **argv __attribute__ ((unused))) - { - /* Create two extra threads to iterate through. */ -- int err; -- if ((err = pthread_create (&thread1, NULL, sleeper, NULL)) != 0) -+ int err1; -+ if ((err1 = pthread_create (&thread1, NULL, sleeper, NULL)) != 0) - error (-1, err, "Couldn't create thread1"); -- if ((err = pthread_create (&thread2, NULL, sleeper, NULL)) != 0) -+ if ((err1 = pthread_create (&thread2, NULL, sleeper, NULL)) != 0) - error (-1, err, "Couldn't create thread2"); - - Dwfl *dwfl = dwfl_begin (&proc_callbacks); -Index: elfutils-0.176/tests/backtrace.c -=================================================================== ---- elfutils-0.176.orig/tests/backtrace.c -+++ elfutils-0.176/tests/backtrace.c -@@ -219,23 +219,23 @@ dump (Dwfl *dwfl) - { - ptrdiff_t ptrdiff = dwfl_getmodules (dwfl, dump_modules, NULL, 0); - assert (ptrdiff == 0); -- bool err = false; -+ bool err1 = false; - switch (dwfl_getthreads (dwfl, thread_callback, NULL)) - { - case 0: - break; - case DWARF_CB_ABORT: -- err = true; -+ err1 = true; - break; - case -1: - error (0, 0, "dwfl_getthreads: %s", dwfl_errmsg (-1)); -- err = true; -+ err1 = true; - break; - default: - abort (); - } - callback_verify (0, 0, 0, NULL, dwfl); -- if (err) -+ if (err1) - exit (EXIT_FAILURE); - } - diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/elfutils/files/0001-ppc_initreg.c-Incliude-asm-ptrace.h-for-pt_regs-defi.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/elfutils/files/0001-ppc_initreg.c-Incliude-asm-ptrace.h-for-pt_regs-defi.patch new file mode 100644 index 00000000..3303333c --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/elfutils/files/0001-ppc_initreg.c-Incliude-asm-ptrace.h-for-pt_regs-defi.patch @@ -0,0 +1,32 @@ +From 2e2232d0935bf8ef6e66ebffba3be68a73b5b3e5 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Sun, 8 Sep 2019 15:57:59 -0700 +Subject: [PATCH] ppc_initreg.c: Incliude asm/ptrace.h for pt_regs definition + +Fixes +| ../../elfutils-0.176/backends/ppc_initreg.c:79:22: error: field 'r' has incomplete type +| struct pt_regs r; +| ^ + +Upstream-Status: Pending + +Signed-off-by: Khem Raj +--- + backends/ppc_initreg.c | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/backends/ppc_initreg.c b/backends/ppc_initreg.c +index 0e0d359..e5cca7e 100644 +--- a/backends/ppc_initreg.c ++++ b/backends/ppc_initreg.c +@@ -33,6 +33,7 @@ + #include + #if defined(__powerpc__) && defined(__linux__) + # include ++# include + # include + #endif + +-- +2.23.0 + diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/elfutils/files/0008-build-Provide-alternatives-for-glibc-assumptions-hel.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/elfutils/files/0008-build-Provide-alternatives-for-glibc-assumptions-hel.patch deleted file mode 100644 index 10cdac64..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/elfutils/files/0008-build-Provide-alternatives-for-glibc-assumptions-hel.patch +++ /dev/null @@ -1,196 +0,0 @@ -From 990d377a92f4bab04bf6820fc81b3dcb6cf5e31d Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Mon, 2 Jul 2018 09:52:23 +0800 -Subject: [PATCH] build: Provide alternatives for glibc assumptions helps - compiling it on musl - -Upstream-Status: Pending -Signed-off-by: Khem Raj - -Rebase to 0.175 - -Signed-off-by: Hongxu Jia - ---- - Makefile.am | 2 +- - lib/fixedsizehash.h | 1 - - lib/system.h | 12 +++++++++++- - libdw/Makefile.am | 3 ++- - libdwfl/dwfl_build_id_find_elf.c | 1 + - libdwfl/dwfl_error.c | 4 +++- - libdwfl/dwfl_module_getdwarf.c | 1 + - libdwfl/libdwfl_crc32_file.c | 9 +++++++++ - libdwfl/linux-kernel-modules.c | 1 + - libelf/elf.h | 8 ++++++-- - libelf/libelf.h | 1 + - libelf/libelfP.h | 1 + - 12 files changed, 37 insertions(+), 7 deletions(-) - -diff --git a/Makefile.am b/Makefile.am -index 2ff444e..41f77df 100644 ---- a/Makefile.am -+++ b/Makefile.am -@@ -28,7 +28,7 @@ pkginclude_HEADERS = version.h - - # Add doc back when we have some real content. - SUBDIRS = config m4 lib libelf libebl libdwelf libdwfl libdw libcpu libasm \ -- backends src po tests -+ backends po tests - - EXTRA_DIST = elfutils.spec GPG-KEY NOTES CONTRIBUTING \ - COPYING COPYING-GPLV2 COPYING-LGPLV3 -diff --git a/lib/fixedsizehash.h b/lib/fixedsizehash.h -index dac2a5f..43016fc 100644 ---- a/lib/fixedsizehash.h -+++ b/lib/fixedsizehash.h -@@ -30,7 +30,6 @@ - #include - #include - #include --#include - - #include - -diff --git a/lib/system.h b/lib/system.h -index 292082b..308a762 100644 ---- a/lib/system.h -+++ b/lib/system.h -@@ -30,7 +30,7 @@ - #define LIB_SYSTEM_H 1 - - #include --#include -+#include - #include - #include - #include -@@ -51,6 +51,8 @@ - #else - # error "Unknown byte order" - #endif -+ -+#define error(status, errno, ...) err(status, __VA_ARGS__) - - #ifndef MAX - #define MAX(m, n) ((m) < (n) ? (n) : (m)) -diff --git a/libdw/Makefile.am b/libdw/Makefile.am -index 7a3d532..7ac1241 100644 ---- a/libdw/Makefile.am -+++ b/libdw/Makefile.am -@@ -108,7 +108,8 @@ am_libdw_pic_a_OBJECTS = $(libdw_a_SOURCES:.c=.os) - libdw_so_LIBS = libdw_pic.a ../libdwelf/libdwelf_pic.a \ - ../libdwfl/libdwfl_pic.a ../libebl/libebl.a - libdw_so_DEPS = ../lib/libeu.a ../libelf/libelf.so --libdw_so_LDLIBS = $(libdw_so_DEPS) -ldl -lz $(argp_LDADD) $(zip_LIBS) -+fts_LDADD = -lfts -+libdw_so_LDLIBS = $(libdw_so_DEPS) -ldl -lz $(argp_LDADD) $(zip_LIBS) $(fts_LDADD) - libdw_so_SOURCES = - libdw.so$(EXEEXT): $(srcdir)/libdw.map $(libdw_so_LIBS) $(libdw_so_DEPS) - # The rpath is necessary for libebl because its $ORIGIN use will -diff --git a/libdwfl/dwfl_build_id_find_elf.c b/libdwfl/dwfl_build_id_find_elf.c -index cc6c3f6..b06ab59 100644 ---- a/libdwfl/dwfl_build_id_find_elf.c -+++ b/libdwfl/dwfl_build_id_find_elf.c -@@ -31,6 +31,7 @@ - #endif - - #include "libdwflP.h" -+#include "system.h" - #include - #include - #include -diff --git a/libdwfl/dwfl_error.c b/libdwfl/dwfl_error.c -index 7bcf61c..c345797 100644 ---- a/libdwfl/dwfl_error.c -+++ b/libdwfl/dwfl_error.c -@@ -140,6 +140,7 @@ __libdwfl_seterrno (Dwfl_Error error) - const char * - dwfl_errmsg (int error) - { -+ static __thread char s[64] = ""; - if (error == 0 || error == -1) - { - int last_error = global_error; -@@ -154,7 +155,8 @@ dwfl_errmsg (int error) - switch (error &~ 0xffff) - { - case OTHER_ERROR (ERRNO): -- return strerror_r (error & 0xffff, "bad", 0); -+ strerror_r (error & 0xffff, s, sizeof(s)); -+ return s; - case OTHER_ERROR (LIBELF): - return elf_errmsg (error & 0xffff); - case OTHER_ERROR (LIBDW): -diff --git a/libdwfl/dwfl_module_getdwarf.c b/libdwfl/dwfl_module_getdwarf.c -index 56e6105..f4a0649 100644 ---- a/libdwfl/dwfl_module_getdwarf.c -+++ b/libdwfl/dwfl_module_getdwarf.c -@@ -35,6 +35,7 @@ - #include - #include - #include -+#include "system.h" - #include "../libdw/libdwP.h" /* DWARF_E_* values are here. */ - #include "../libelf/libelfP.h" - #include "system.h" -diff --git a/libdwfl/linux-kernel-modules.c b/libdwfl/linux-kernel-modules.c -index 360e4ee..b5aa397 100644 ---- a/libdwfl/linux-kernel-modules.c -+++ b/libdwfl/linux-kernel-modules.c -@@ -41,6 +41,7 @@ - - #include "libelfP.h" - #include "libdwflP.h" -+#include "system.h" - #include - #include - #include -diff --git a/libelf/elf.h b/libelf/elf.h -index 5dc632b..14da1b7 100644 ---- a/libelf/elf.h -+++ b/libelf/elf.h -@@ -21,7 +21,9 @@ - - #include - --__BEGIN_DECLS -+#ifdef __cplusplus -+extern "C" { -+#endif - - /* Standard ELF types. */ - -@@ -3937,6 +3939,8 @@ enum - #define R_METAG_TLS_LE_HI16 60 - #define R_METAG_TLS_LE_LO16 61 - --__END_DECLS -+#ifdef __cplusplus -+} -+#endif - - #endif /* elf.h */ -diff --git a/libelf/libelf.h b/libelf/libelf.h -index 1ff11c9..c21e018 100644 ---- a/libelf/libelf.h -+++ b/libelf/libelf.h -@@ -29,6 +29,7 @@ - #ifndef _LIBELF_H - #define _LIBELF_H 1 - -+#include - #include - #include - -diff --git a/libelf/libelfP.h b/libelf/libelfP.h -index 9f3e8e9..10a347a 100644 ---- a/libelf/libelfP.h -+++ b/libelf/libelfP.h -@@ -32,6 +32,7 @@ - - #include - #include -+#include - - #include - #include diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/elfutils/files/debian/0001-Ignore-differences-between-mips-machine-identifiers.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/elfutils/files/debian/0001-Ignore-differences-between-mips-machine-identifiers.patch index 892b8e87..a2983c57 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/elfutils/files/debian/0001-Ignore-differences-between-mips-machine-identifiers.patch +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/elfutils/files/debian/0001-Ignore-differences-between-mips-machine-identifiers.patch @@ -1,25 +1,25 @@ -From 46d2c2f8fecad85baeed9fe211f5285820220442 Mon Sep 17 00:00:00 2001 +From 77cb4a53c270d5854d3af24f19547bc3de825233 Mon Sep 17 00:00:00 2001 From: James Cowgill Date: Mon, 5 Jan 2015 15:16:58 +0000 -Subject: [PATCH] Ignore differences between mips machine identifiers +Subject: [PATCH 1/3] Ignore differences between mips machine identifiers Little endian binaries actually use EM_MIPS so you can't tell the endianness from the elf machine id. Also, the EM_MIPS_RS3_LE machine is dead anyway (the kernel will not load binaries containing it). Signed-off-by: James Cowgill + Upstream-Status: Pending [from debian] Signed-off-by: Hongxu Jia - --- backends/mips_init.c | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) -diff --git a/backends/mips_init.c b/backends/mips_init.c -index 975c04e..8482e7f 100644 +Index: b/backends/mips_init.c +=================================================================== --- a/backends/mips_init.c +++ b/backends/mips_init.c -@@ -45,11 +45,7 @@ mips_init (Elf *elf __attribute__ ((unused)), +@@ -45,11 +45,7 @@ mips_init (Elf *elf __attribute__ ((unus return NULL; /* We handle it. */ diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/elfutils/files/debian/0001-fix-compile-failure-with-debian-patches.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/elfutils/files/debian/0001-fix-compile-failure-with-debian-patches.patch new file mode 100644 index 00000000..19a20150 --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/elfutils/files/debian/0001-fix-compile-failure-with-debian-patches.patch @@ -0,0 +1,48 @@ +From 3f3e7b16934ec58ab47d2bdc9982f54a55b07534 Mon Sep 17 00:00:00 2001 +From: Hongxu Jia +Date: Wed, 21 Aug 2019 16:25:33 +0800 +Subject: [PATCH] fix compile failure with debian patches + +While applying debian patches, there is a compile failure +... +elfutils-0.177/backends/mips_init.c:48:5: error: 'Ebl' {aka 'struct ebl'} has no member named 'name' +... + +Since upstream applied commit [b323391 libdwelf: Add dwelf_elf_e_machine_string +and use it in readelf], it remove 'name' from 'struct ebl' + +Upstream-Status: Pending + +Signed-off-by: Hongxu Jia +--- + backends/mips_init.c | 1 - + backends/parisc_init.c | 1 - + 2 files changed, 2 deletions(-) + +diff --git a/backends/mips_init.c b/backends/mips_init.c +index bce5abe..e1c65c8 100644 +--- a/backends/mips_init.c ++++ b/backends/mips_init.c +@@ -45,7 +45,6 @@ mips_init (Elf *elf __attribute__ ((unused)), + return NULL; + + /* We handle it. */ +- eh->name = "MIPS"; + mips_init_reloc (eh); + HOOK (eh, reloc_simple_type); + HOOK (eh, return_value_location); +diff --git a/backends/parisc_init.c b/backends/parisc_init.c +index f1e401c..97b4a8c 100644 +--- a/backends/parisc_init.c ++++ b/backends/parisc_init.c +@@ -56,7 +56,6 @@ parisc_init (Elf *elf __attribute__ ((unused)), + pa64 = 1; + } + /* We handle it. */ +- eh->name = "PA-RISC"; + parisc_init_reloc (eh); + HOOK (eh, reloc_simple_type); + HOOK (eh, machine_flag_check); +-- +2.7.4 + diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/elfutils/files/debian/0002-Add-support-for-mips64-abis-in-mips_retval.c.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/elfutils/files/debian/0002-Add-support-for-mips64-abis-in-mips_retval.c.patch index 7c0b9c6d..aee00cba 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/elfutils/files/debian/0002-Add-support-for-mips64-abis-in-mips_retval.c.patch +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/elfutils/files/debian/0002-Add-support-for-mips64-abis-in-mips_retval.c.patch @@ -1,18 +1,18 @@ -From 93ae9bb7d25a1adbcbab23a9b8493f370a93f0a3 Mon Sep 17 00:00:00 2001 +From fdaab18a65ed2529656baa64cb6169f34d7e507b Mon Sep 17 00:00:00 2001 From: James Cowgill Date: Mon, 5 Jan 2015 15:17:01 +0000 -Subject: [PATCH] Add support for mips64 abis in mips_retval.c +Subject: [PATCH 2/3] Add support for mips64 abis in mips_retval.c Signed-off-by: James Cowgill + Upstream-Status: Pending [from debian] Signed-off-by: Hongxu Jia - --- - backends/mips_retval.c | 104 +++++++++++++++++++++++++++++++++++++---- + backends/mips_retval.c | 104 ++++++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 94 insertions(+), 10 deletions(-) diff --git a/backends/mips_retval.c b/backends/mips_retval.c -index 656cd1f..57487bb 100644 +index 33f12a7..d5c6ef0 100644 --- a/backends/mips_retval.c +++ b/backends/mips_retval.c @@ -91,6 +91,8 @@ enum mips_abi find_mips_abi(Elf *elf) @@ -166,3 +166,6 @@ index 656cd1f..57487bb 100644 *locp = loc_aggregate; return nloc_aggregate; } +-- +2.1.4 + diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/elfutils/files/debian/0003-Add-mips-n64-relocation-format-hack.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/elfutils/files/debian/0003-Add-mips-n64-relocation-format-hack.patch index 17b98a79..c949e965 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/elfutils/files/debian/0003-Add-mips-n64-relocation-format-hack.patch +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/elfutils/files/debian/0003-Add-mips-n64-relocation-format-hack.patch @@ -1,7 +1,7 @@ -From bce44aece915698a224a8aefa66784b27455675b Mon Sep 17 00:00:00 2001 +From 59d4b8c48e5040af7e02b34eb26ea602ec82a38e Mon Sep 17 00:00:00 2001 From: James Cowgill Date: Mon, 5 Jan 2015 15:17:02 +0000 -Subject: [PATCH] Add mips n64 relocation format hack +Subject: [PATCH 3/3] Add mips n64 relocation format hack MIPSEL N64 ELF files use a slightly different format for storing relocation entries which is incompatible with the normal R_SYM / R_INFO macros. @@ -12,9 +12,9 @@ This patch also ensures that strip.c sets the correct value of e_machine before manipulating relocations so that these changes take effect. Signed-off-by: James Cowgill + Upstream-Status: Pending [from debian] Signed-off-by: Hongxu Jia - --- libelf/gelf_getrel.c | 25 +++++++++++++++++++++++-- libelf/gelf_getrela.c | 25 +++++++++++++++++++++++-- @@ -23,10 +23,10 @@ Signed-off-by: Hongxu Jia src/strip.c | 17 +++++++++++++++++ 5 files changed, 101 insertions(+), 6 deletions(-) -diff --git a/libelf/gelf_getrel.c b/libelf/gelf_getrel.c -index 309e3d3..2a81a97 100644 ---- a/libelf/gelf_getrel.c -+++ b/libelf/gelf_getrel.c +Index: elfutils-0.175/libelf/gelf_getrel.c +=================================================================== +--- elfutils-0.175.orig/libelf/gelf_getrel.c ++++ elfutils-0.175/libelf/gelf_getrel.c @@ -36,6 +36,7 @@ #include "libelfP.h" @@ -35,7 +35,7 @@ index 309e3d3..2a81a97 100644 GElf_Rel * gelf_getrel (Elf_Data *data, int ndx, GElf_Rel *dst) -@@ -89,8 +90,28 @@ gelf_getrel (Elf_Data *data, int ndx, GElf_Rel *dst) +@@ -89,8 +90,28 @@ gelf_getrel (Elf_Data *data, int ndx, GE result = NULL; } else @@ -66,10 +66,10 @@ index 309e3d3..2a81a97 100644 } rwlock_unlock (scn->elf->lock); -diff --git a/libelf/gelf_getrela.c b/libelf/gelf_getrela.c -index d695f65..1f42a80 100644 ---- a/libelf/gelf_getrela.c -+++ b/libelf/gelf_getrela.c +Index: elfutils-0.175/libelf/gelf_getrela.c +=================================================================== +--- elfutils-0.175.orig/libelf/gelf_getrela.c ++++ elfutils-0.175/libelf/gelf_getrela.c @@ -36,6 +36,7 @@ #include "libelfP.h" @@ -78,7 +78,7 @@ index d695f65..1f42a80 100644 GElf_Rela * gelf_getrela (Elf_Data *data, int ndx, GElf_Rela *dst) -@@ -90,8 +91,28 @@ gelf_getrela (Elf_Data *data, int ndx, GElf_Rela *dst) +@@ -90,8 +91,28 @@ gelf_getrela (Elf_Data *data, int ndx, G result = NULL; } else @@ -109,10 +109,10 @@ index d695f65..1f42a80 100644 } rwlock_unlock (scn->elf->lock); -diff --git a/libelf/gelf_update_rel.c b/libelf/gelf_update_rel.c -index 14f62e9..9095556 100644 ---- a/libelf/gelf_update_rel.c -+++ b/libelf/gelf_update_rel.c +Index: elfutils-0.175/libelf/gelf_update_rel.c +=================================================================== +--- elfutils-0.175.orig/libelf/gelf_update_rel.c ++++ elfutils-0.175/libelf/gelf_update_rel.c @@ -36,6 +36,7 @@ #include "libelfP.h" @@ -121,7 +121,7 @@ index 14f62e9..9095556 100644 int gelf_update_rel (Elf_Data *dst, int ndx, GElf_Rel *src) -@@ -86,6 +87,9 @@ gelf_update_rel (Elf_Data *dst, int ndx, GElf_Rel *src) +@@ -86,6 +87,9 @@ gelf_update_rel (Elf_Data *dst, int ndx, } else { @@ -131,7 +131,7 @@ index 14f62e9..9095556 100644 /* Check whether we have to resize the data buffer. */ if (INVALID_NDX (ndx, Elf64_Rel, &data_scn->d)) { -@@ -93,7 +97,21 @@ gelf_update_rel (Elf_Data *dst, int ndx, GElf_Rel *src) +@@ -93,7 +97,21 @@ gelf_update_rel (Elf_Data *dst, int ndx, goto out; } @@ -154,10 +154,10 @@ index 14f62e9..9095556 100644 } result = 1; -diff --git a/libelf/gelf_update_rela.c b/libelf/gelf_update_rela.c -index 8825270..4caa85f 100644 ---- a/libelf/gelf_update_rela.c -+++ b/libelf/gelf_update_rela.c +Index: elfutils-0.175/libelf/gelf_update_rela.c +=================================================================== +--- elfutils-0.175.orig/libelf/gelf_update_rela.c ++++ elfutils-0.175/libelf/gelf_update_rela.c @@ -36,6 +36,7 @@ #include "libelfP.h" @@ -166,7 +166,7 @@ index 8825270..4caa85f 100644 int gelf_update_rela (Elf_Data *dst, int ndx, GElf_Rela *src) -@@ -89,6 +90,9 @@ gelf_update_rela (Elf_Data *dst, int ndx, GElf_Rela *src) +@@ -89,6 +90,9 @@ gelf_update_rela (Elf_Data *dst, int ndx } else { @@ -176,7 +176,7 @@ index 8825270..4caa85f 100644 /* Check whether we have to resize the data buffer. */ if (INVALID_NDX (ndx, Elf64_Rela, &data_scn->d)) { -@@ -96,7 +100,21 @@ gelf_update_rela (Elf_Data *dst, int ndx, GElf_Rela *src) +@@ -96,7 +100,21 @@ gelf_update_rela (Elf_Data *dst, int ndx goto out; } @@ -199,11 +199,11 @@ index 8825270..4caa85f 100644 } result = 1; -diff --git a/src/strip.c b/src/strip.c -index a73009d..75bd7ba 100644 ---- a/src/strip.c -+++ b/src/strip.c -@@ -1062,6 +1062,23 @@ handle_elf (int fd, Elf *elf, const char *prefix, const char *fname, +Index: elfutils-0.175/src/strip.c +=================================================================== +--- elfutils-0.175.orig/src/strip.c ++++ elfutils-0.175/src/strip.c +@@ -1062,6 +1062,23 @@ handle_elf (int fd, Elf *elf, const char goto fail; } diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/elfutils/files/debian/arm_backend.diff b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/elfutils/files/debian/arm_backend.diff index 9904f241..ba0ce33b 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/elfutils/files/debian/arm_backend.diff +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/elfutils/files/debian/arm_backend.diff @@ -1,25 +1,25 @@ -From f3384466475eab373c0f1cb79c61d45709913b00 Mon Sep 17 00:00:00 2001 +From 4e6fededb3d8c90694c44214c862ac216a69ecae Mon Sep 17 00:00:00 2001 From: Hongxu Jia -Date: Wed, 28 May 2014 16:49:57 +0800 -Subject: [PATCH] elfutils: upgrade to 0.158 +Date: Wed, 21 Aug 2019 16:50:33 +0800 +Subject: [PATCH] arm_backend Upstream-Status: Pending [from debian] +Rebase to 0.177 Signed-off-by: Hongxu Jia - --- - backends/arm_init.c | 18 +++- - backends/arm_regs.c | 132 ++++++++++++++++++++++++++++ - backends/arm_retval.c | 43 ++++++++- - backends/libebl_arm.h | 9 ++ + backends/arm_init.c | 18 ++++- + backends/arm_regs.c | 132 ++++++++++++++++++++++++++++++++++++ + backends/arm_retval.c | 43 +++++++++++- + backends/libebl_arm.h | 9 +++ libelf/elf.h | 11 +++ - tests/run-addrcfi.sh | 93 +++++++++++++++++++- - tests/run-allregs.sh | 95 +++++++++++++++++++- + tests/run-addrcfi.sh | 93 ++++++++++++++++++++++++- + tests/run-allregs.sh | 95 +++++++++++++++++++++++++- tests/run-readelf-mixed-corenote.sh | 11 ++- 8 files changed, 400 insertions(+), 12 deletions(-) create mode 100644 backends/libebl_arm.h diff --git a/backends/arm_init.c b/backends/arm_init.c -index f2b1b11..1b71f16 100644 +index af023f0..ea2bcb7 100644 --- a/backends/arm_init.c +++ b/backends/arm_init.c @@ -35,20 +35,31 @@ @@ -53,9 +53,9 @@ index f2b1b11..1b71f16 100644 + } + /* We handle it. */ - eh->name = "ARM"; arm_init_reloc (eh); -@@ -60,7 +71,10 @@ arm_init (Elf *elf __attribute__ ((unused)), + HOOK (eh, segment_type_name); +@@ -59,7 +70,10 @@ arm_init (Elf *elf __attribute__ ((unused)), HOOK (eh, core_note); HOOK (eh, auxv_info); HOOK (eh, check_object_attribute); @@ -324,10 +324,10 @@ index 0000000..c00770c + +#endif diff --git a/libelf/elf.h b/libelf/elf.h -index 6310054..5dc632b 100644 +index 01648bd..05b7e7e 100644 --- a/libelf/elf.h +++ b/libelf/elf.h -@@ -2694,6 +2694,9 @@ enum +@@ -2690,6 +2690,9 @@ enum #define EF_ARM_EABI_VER4 0x04000000 #define EF_ARM_EABI_VER5 0x05000000 @@ -337,7 +337,7 @@ index 6310054..5dc632b 100644 /* Additional symbol types for Thumb. */ #define STT_ARM_TFUNC STT_LOPROC /* A Thumb function. */ #define STT_ARM_16BIT STT_HIPROC /* A Thumb label. */ -@@ -2711,12 +2714,19 @@ enum +@@ -2707,12 +2710,19 @@ enum /* Processor specific values for the Phdr p_type field. */ #define PT_ARM_EXIDX (PT_LOPROC + 1) /* ARM unwind segment. */ @@ -357,7 +357,7 @@ index 6310054..5dc632b 100644 /* AArch64 relocs. */ -@@ -3009,6 +3019,7 @@ enum +@@ -3005,6 +3015,7 @@ enum TLS block (LDR, STR). */ #define R_ARM_TLS_IE12GP 111 /* 12 bit GOT entry relative to GOT origin (LDR). */ @@ -366,7 +366,7 @@ index 6310054..5dc632b 100644 #define R_ARM_THM_TLS_DESCSEQ 129 #define R_ARM_THM_TLS_DESCSEQ16 129 diff --git a/tests/run-addrcfi.sh b/tests/run-addrcfi.sh -index fd89d02..462d7c5 100755 +index 64fa24d..1c2aa4d 100755 --- a/tests/run-addrcfi.sh +++ b/tests/run-addrcfi.sh @@ -3554,6 +3554,38 @@ dwarf_cfi_addrframe (.eh_frame): no matching address range @@ -619,3 +619,6 @@ index c960f1d..e4bf074 100755 CORE 124 PRPSINFO state: 0, sname: R, zomb: 0, nice: 0, flag: 0x00400500 uid: 0, gid: 0, pid: 11087, ppid: 11063, pgrp: 11087, sid: 11063 +-- +2.7.4 + diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/elfutils/files/debian/disable_werror.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/elfutils/files/debian/disable_werror.patch index bb5670a8..bd98dae4 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/elfutils/files/debian/disable_werror.patch +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/elfutils/files/debian/disable_werror.patch @@ -1,23 +1,16 @@ -From dece09fb8c59dbdab356b63fbe6b7554dd2461a4 Mon Sep 17 00:00:00 2001 From: Helmut Grohne -Date: Fri, 23 Nov 2018 15:47:20 +0800 -Subject: [PATCH] disable -Werror as it tends to break with new gcc versions - +Subject: disable -Werror as it tends to break with new gcc versions Bug-Debian: https://bugs.debian.org/886004 Last-Update: 2018-01-01 Upstream-Status: Pending [from debian] Signed-off-by: Hongxu Jia ---- - config/eu.am | 1 - - 1 file changed, 1 deletion(-) - -diff --git a/config/eu.am b/config/eu.am -index 82acda3..dede5c6 100644 ---- a/config/eu.am -+++ b/config/eu.am -@@ -73,7 +73,6 @@ AM_CFLAGS = -std=gnu99 -Wall -Wshadow -Wformat=2 \ +Index: elfutils-0.176/config/eu.am +=================================================================== +--- elfutils-0.176.orig/config/eu.am ++++ elfutils-0.176/config/eu.am +@@ -73,7 +73,6 @@ AM_CFLAGS = -std=gnu99 -Wall -Wshadow -W -Wold-style-definition -Wstrict-prototypes -Wtrampolines \ $(LOGICAL_OP_WARNING) $(DUPLICATED_COND_WARNING) \ $(NULL_DEREFERENCE_WARNING) $(IMPLICIT_FALLTHROUGH_WARNING) \ diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/elfutils/files/debian/hppa_backend.diff b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/elfutils/files/debian/hppa_backend.diff index afcc30ab..4460d582 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/elfutils/files/debian/hppa_backend.diff +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/elfutils/files/debian/hppa_backend.diff @@ -1,21 +1,21 @@ -From 8fe468682c550606ea961a1f996a8618940eb084 Mon Sep 17 00:00:00 2001 +From 8efad9105b38985bea373416ae8fcacf21d1d129 Mon Sep 17 00:00:00 2001 From: Hongxu Jia -Date: Fri, 16 Jul 2010 12:26:46 +0800 -Subject: [PATCH] elfutils: upgrade to version 0.148 +Date: Wed, 21 Aug 2019 15:44:18 +0800 +Subject: [PATCH] hppa backend +Rebase to 0.177 Upstream-Status: Pending [from debian] Signed-off-by: Hongxu Jia - --- - backends/Makefile.am | 8 +- + backends/Makefile.am | 7 +- backends/libebl_parisc.h | 9 ++ - backends/parisc_init.c | 73 +++++++++++++ - backends/parisc_regs.c | 159 ++++++++++++++++++++++++++++ - backends/parisc_reloc.def | 128 +++++++++++++++++++++++ - backends/parisc_retval.c | 213 ++++++++++++++++++++++++++++++++++++++ - backends/parisc_symbol.c | 113 ++++++++++++++++++++ - libelf/elf.h | 11 ++ - 8 files changed, 712 insertions(+), 2 deletions(-) + backends/parisc_init.c | 73 ++++++++++++++++ + backends/parisc_regs.c | 159 ++++++++++++++++++++++++++++++++++ + backends/parisc_reloc.def | 128 ++++++++++++++++++++++++++++ + backends/parisc_retval.c | 213 ++++++++++++++++++++++++++++++++++++++++++++++ + backends/parisc_symbol.c | 113 ++++++++++++++++++++++++ + libelf/elf.h | 11 +++ + 8 files changed, 711 insertions(+), 2 deletions(-) create mode 100644 backends/libebl_parisc.h create mode 100644 backends/parisc_init.c create mode 100644 backends/parisc_regs.c @@ -24,35 +24,31 @@ Signed-off-by: Hongxu Jia create mode 100644 backends/parisc_symbol.c diff --git a/backends/Makefile.am b/backends/Makefile.am -index 2126a2e..5671a32 100644 +index 175468f..91a38e2 100644 --- a/backends/Makefile.am +++ b/backends/Makefile.am -@@ -33,12 +33,13 @@ AM_CPPFLAGS += -I$(top_srcdir)/libebl -I$(top_srcdir)/libasm \ +@@ -33,16 +33,19 @@ AM_CPPFLAGS += -I$(top_srcdir)/libebl -I$(top_srcdir)/libasm \ modules = i386 sh x86_64 ia64 alpha arm aarch64 sparc ppc ppc64 s390 \ -- tilegx m68k bpf riscv -+ tilegx m68k bpf riscv parisc +- tilegx m68k bpf riscv csky ++ tilegx m68k bpf riscv csky parisc libebl_pic = libebl_i386_pic.a libebl_sh_pic.a libebl_x86_64_pic.a \ libebl_ia64_pic.a libebl_alpha_pic.a libebl_arm_pic.a \ libebl_aarch64_pic.a libebl_sparc_pic.a libebl_ppc_pic.a \ libebl_ppc64_pic.a libebl_s390_pic.a libebl_tilegx_pic.a \ -- libebl_m68k_pic.a libebl_bpf_pic.a libebl_riscv_pic.a -+ libebl_m68k_pic.a libebl_bpf_pic.a libebl_riscv_pic.a \ -+ libebl_parisc_pic.a + libebl_m68k_pic.a libebl_bpf_pic.a libebl_riscv_pic.a \ +- libebl_csky_pic.a ++ libebl_csky_pic.a libebl_parisc_pic.a noinst_LIBRARIES = $(libebl_pic) noinst_DATA = $(libebl_pic:_pic.a=.so) -@@ -136,6 +137,9 @@ riscv_SRCS = riscv_init.c riscv_symbol.c riscv_cfi.c riscv_regs.c \ - libebl_riscv_pic_a_SOURCES = $(riscv_SRCS) - am_libebl_riscv_pic_a_OBJECTS = $(riscv_SRCS:.c=.os) - +parisc_SRCS = parisc_init.c parisc_symbol.c parisc_regs.c parisc_retval.c +libebl_parisc_pic_a_SOURCES = $(parisc_SRCS) +am_libebl_parisc_pic_a_OBJECTS = $(parisc_SRCS:.c=.os) - libebl_%.so libebl_%.map: libebl_%_pic.a $(libelf) $(libdw) $(libeu) - @rm -f $(@:.so=.map) + libelf = ../libelf/libelf.so + libdw = ../libdw/libdw.so diff --git a/backends/libebl_parisc.h b/backends/libebl_parisc.h new file mode 100644 index 0000000..f473b79 @@ -785,10 +781,10 @@ index 0000000..5754bd8 + } +} diff --git a/libelf/elf.h b/libelf/elf.h -index 75043bc..6310054 100644 +index 01648bd..218ceb2 100644 --- a/libelf/elf.h +++ b/libelf/elf.h -@@ -2155,16 +2155,24 @@ enum +@@ -2162,16 +2162,24 @@ enum #define R_PARISC_PCREL17F 12 /* 17 bits of rel. address. */ #define R_PARISC_PCREL14R 14 /* Right 14 bits of rel. address. */ #define R_PARISC_DPREL21L 18 /* Left 21 bits of rel. address. */ @@ -813,7 +809,7 @@ index 75043bc..6310054 100644 #define R_PARISC_LTOFF_FPTR32 57 /* 32 bits LT-rel. function pointer. */ #define R_PARISC_LTOFF_FPTR21L 58 /* LT-rel. fct ptr, left 21 bits. */ #define R_PARISC_LTOFF_FPTR14R 62 /* LT-rel. fct ptr, right 14 bits. */ -@@ -2173,6 +2181,7 @@ enum +@@ -2180,6 +2188,7 @@ enum #define R_PARISC_PLABEL21L 66 /* Left 21 bits of fdesc address. */ #define R_PARISC_PLABEL14R 70 /* Right 14 bits of fdesc address. */ #define R_PARISC_PCREL64 72 /* 64 bits PC-rel. address. */ @@ -821,7 +817,7 @@ index 75043bc..6310054 100644 #define R_PARISC_PCREL22F 74 /* 22 bits PC-rel. address. */ #define R_PARISC_PCREL14WR 75 /* PC-rel. address, right 14 bits. */ #define R_PARISC_PCREL14DR 76 /* PC rel. address, right 14 bits. */ -@@ -2198,6 +2207,8 @@ enum +@@ -2205,6 +2214,8 @@ enum #define R_PARISC_LTOFF16WF 102 /* 16 bits LT-rel. address. */ #define R_PARISC_LTOFF16DF 103 /* 16 bits LT-rel. address. */ #define R_PARISC_SECREL64 104 /* 64 bits section rel. address. */ @@ -830,3 +826,6 @@ index 75043bc..6310054 100644 #define R_PARISC_SEGREL64 112 /* 64 bits segment rel. address. */ #define R_PARISC_PLTOFF14WR 115 /* PLT-rel. address, right 14 bits. */ #define R_PARISC_PLTOFF14DR 116 /* PLT-rel. address, right 14 bits. */ +-- +2.7.4 + diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/elfutils/files/debian/hurd_path.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/elfutils/files/debian/hurd_path.patch index f014ae2a..62a960f3 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/elfutils/files/debian/hurd_path.patch +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/elfutils/files/debian/hurd_path.patch @@ -1,19 +1,10 @@ -From 2f54a8cf959ea83c452b1a22acbc47d2738b5fa0 Mon Sep 17 00:00:00 2001 -From: Hongxu Jia -Date: Fri, 23 Nov 2018 15:47:20 +0800 -Subject: [PATCH] elfutils: 0.170 -> 0.172 - Upstream-Status: Pending [from debian] Signed-off-by: Hongxu Jia ---- - tests/run-native-test.sh | 3 +++ - 1 file changed, 3 insertions(+) - -diff --git a/tests/run-native-test.sh b/tests/run-native-test.sh -index 5351e02..70f6681 100755 ---- a/tests/run-native-test.sh -+++ b/tests/run-native-test.sh +Index: elfutils-0.165/tests/run-native-test.sh +=================================================================== +--- elfutils-0.165.orig/tests/run-native-test.sh ++++ elfutils-0.165/tests/run-native-test.sh @@ -83,6 +83,9 @@ native_test() # "cannot attach to process: Function not implemented". [ "$(uname)" = "GNU/kFreeBSD" ] && exit 77 diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/elfutils/files/debian/ignore_strmerge.diff b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/elfutils/files/debian/ignore_strmerge.diff index 53332467..55513eed 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/elfutils/files/debian/ignore_strmerge.diff +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/elfutils/files/debian/ignore_strmerge.diff @@ -1,19 +1,8 @@ -From d326ad99be856815260a04e573fc97044c02f444 Mon Sep 17 00:00:00 2001 -From: Hongxu Jia -Date: Mon, 2 Jul 2018 13:57:09 +0800 -Subject: [PATCH] elfutils: 0.170 -> 0.172 - Upstream-Status: Pending [from debian] Signed-off-by: Hongxu Jia ---- - tests/run-strip-strmerge.sh | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/tests/run-strip-strmerge.sh b/tests/run-strip-strmerge.sh -index aa9c1eb..2bab8ec 100755 ---- a/tests/run-strip-strmerge.sh -+++ b/tests/run-strip-strmerge.sh +--- elfutils-0.165.orig/tests/run-strip-strmerge.sh ++++ elfutils-0.165/tests/run-strip-strmerge.sh @@ -30,7 +30,7 @@ remerged=remerged.elf tempfiles $merged $stripped $debugfile $remerged diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/elfutils/files/debian/kfreebsd_path.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/elfutils/files/debian/kfreebsd_path.patch index 805da80d..e85a2fed 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/elfutils/files/debian/kfreebsd_path.patch +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/elfutils/files/debian/kfreebsd_path.patch @@ -1,17 +1,8 @@ -From bac45996ece75900e0cde97f3889eaf6c1b286f8 Mon Sep 17 00:00:00 2001 -From: Hongxu Jia -Date: Fri, 23 Nov 2018 15:47:20 +0800 -Subject: [PATCH] elfutils: 0.170 -> 0.172 - Upstream-Status: Pending [from debian] Signed-off-by: Hongxu Jia ---- - tests/run-native-test.sh | 6 ++++++ - 1 file changed, 6 insertions(+) - -diff --git a/tests/run-native-test.sh b/tests/run-native-test.sh -index d19007f..5351e02 100755 +Index: b/tests/run-native-test.sh +=================================================================== --- a/tests/run-native-test.sh +++ b/tests/run-native-test.sh @@ -77,6 +77,12 @@ native_test() diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/elfutils/files/debian/mips_backend.diff b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/elfutils/files/debian/mips_backend.diff index 697306f8..1097b0ec 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/elfutils/files/debian/mips_backend.diff +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/elfutils/files/debian/mips_backend.diff @@ -1,18 +1,19 @@ -From 10a75fd2beefafe2043163f85426d0e575de58d8 Mon Sep 17 00:00:00 2001 +From 68b497668cde5171880d073a7ea50d11c3bddbfc Mon Sep 17 00:00:00 2001 From: Hongxu Jia -Date: Fri, 16 Jul 2010 12:26:46 +0800 -Subject: [PATCH] elfutils: upgrade to version 0.148 +Date: Wed, 21 Aug 2019 15:49:52 +0800 +Subject: [PATCH] mips backend +Rebase to 0.177 Upstream-Status: Pending [from debian] -Signed-off-by: Hongxu Jia +Signed-off-by: Hongxu Jia --- backends/Makefile.am | 8 +- - backends/mips_init.c | 59 ++++++++ - backends/mips_regs.c | 104 +++++++++++++ - backends/mips_reloc.def | 79 ++++++++++ - backends/mips_retval.c | 321 ++++++++++++++++++++++++++++++++++++++++ - backends/mips_symbol.c | 53 +++++++ + backends/mips_init.c | 59 +++++++++ + backends/mips_regs.c | 104 ++++++++++++++++ + backends/mips_reloc.def | 79 ++++++++++++ + backends/mips_retval.c | 321 ++++++++++++++++++++++++++++++++++++++++++++++++ + backends/mips_symbol.c | 53 ++++++++ libebl/eblopenbackend.c | 2 + 7 files changed, 624 insertions(+), 2 deletions(-) create mode 100644 backends/mips_init.c @@ -22,28 +23,28 @@ Signed-off-by: Hongxu Jia create mode 100644 backends/mips_symbol.c diff --git a/backends/Makefile.am b/backends/Makefile.am -index 5671a32..ba84da6 100644 +index 91a38e2..aba8a4a 100644 --- a/backends/Makefile.am +++ b/backends/Makefile.am @@ -33,13 +33,13 @@ AM_CPPFLAGS += -I$(top_srcdir)/libebl -I$(top_srcdir)/libasm \ modules = i386 sh x86_64 ia64 alpha arm aarch64 sparc ppc ppc64 s390 \ -- tilegx m68k bpf riscv parisc -+ tilegx m68k bpf riscv parisc mips +- tilegx m68k bpf riscv csky parisc ++ tilegx m68k bpf riscv csky parisc mips libebl_pic = libebl_i386_pic.a libebl_sh_pic.a libebl_x86_64_pic.a \ libebl_ia64_pic.a libebl_alpha_pic.a libebl_arm_pic.a \ libebl_aarch64_pic.a libebl_sparc_pic.a libebl_ppc_pic.a \ libebl_ppc64_pic.a libebl_s390_pic.a libebl_tilegx_pic.a \ - libebl_m68k_pic.a libebl_bpf_pic.a libebl_riscv_pic.a \ -- libebl_parisc_pic.a -+ libebl_parisc_pic.a libebl_mips_pic.a + libebl_m68k_pic.a libebl_bpf_pic.a libebl_riscv_pic.a \ +- libebl_csky_pic.a libebl_parisc_pic.a ++ libebl_csky_pic.a libebl_parisc_pic.a libebl_mips_pic.a noinst_LIBRARIES = $(libebl_pic) noinst_DATA = $(libebl_pic:_pic.a=.so) -@@ -141,6 +141,10 @@ parisc_SRCS = parisc_init.c parisc_symbol.c parisc_regs.c parisc_retval.c - libebl_parisc_pic_a_SOURCES = $(parisc_SRCS) - am_libebl_parisc_pic_a_OBJECTS = $(parisc_SRCS:.c=.os) +@@ -145,6 +145,10 @@ csky_SRCS = csky_attrs.c csky_init.c csky_symbol.c csky_cfi.c \ + libebl_csky_pic_a_SOURCES = $(csky_SRCS) + am_libebl_csky_pic_a_OBJECTS = $(csky_SRCS:.c=.os) +mips_SRCS = mips_init.c mips_symbol.c mips_regs.c mips_retval.c +libebl_mips_pic_a_SOURCES = $(mips_SRCS) @@ -699,7 +700,7 @@ index 0000000..261b05d + } +} diff --git a/libebl/eblopenbackend.c b/libebl/eblopenbackend.c -index d54b720..6cf766f 100644 +index 01711f5..d0c3589 100644 --- a/libebl/eblopenbackend.c +++ b/libebl/eblopenbackend.c @@ -71,6 +71,8 @@ static const struct @@ -711,3 +712,6 @@ index d54b720..6cf766f 100644 { "m32", "elf_m32", "m32", 3, EM_M32, 0, 0 }, { "m68k", "elf_m68k", "m68k", 4, EM_68K, ELFCLASS32, ELFDATA2MSB }, +-- +2.7.4 + diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/elfutils/files/debian/mips_cfi.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/elfutils/files/debian/mips_cfi.patch new file mode 100644 index 00000000..fda4f680 --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/elfutils/files/debian/mips_cfi.patch @@ -0,0 +1,131 @@ +From 96e38289f2887ddb8e6d2fb91ea04bdbdf034ab5 Mon Sep 17 00:00:00 2001 +From: Hongxu Jia +Date: Wed, 21 Aug 2019 17:00:30 +0800 +Subject: [PATCH 2/2] mips_cfi + +Upstream-Status: Pending [from debian] + +Rebase to 0.177 + +Signed-off-by: Hongxu Jia +--- + backends/Makefile.am | 2 +- + backends/mips_cfi.c | 80 ++++++++++++++++++++++++++++++++++++++++++++++++++++ + backends/mips_init.c | 1 + + 3 files changed, 82 insertions(+), 1 deletion(-) + create mode 100644 backends/mips_cfi.c + +diff --git a/backends/Makefile.am b/backends/Makefile.am +index aba8a4a..6ac0eec 100644 +--- a/backends/Makefile.am ++++ b/backends/Makefile.am +@@ -145,7 +145,7 @@ csky_SRCS = csky_attrs.c csky_init.c csky_symbol.c csky_cfi.c \ + libebl_csky_pic_a_SOURCES = $(csky_SRCS) + am_libebl_csky_pic_a_OBJECTS = $(csky_SRCS:.c=.os) + +-mips_SRCS = mips_init.c mips_symbol.c mips_regs.c mips_retval.c ++mips_SRCS = mips_init.c mips_symbol.c mips_regs.c mips_retval.c mips_cfi.c + libebl_mips_pic_a_SOURCES = $(mips_SRCS) + am_libebl_mips_pic_a_OBJECTS = $(mips_SRCS:.c=.os) + +diff --git a/backends/mips_cfi.c b/backends/mips_cfi.c +new file mode 100644 +index 0000000..9ffdab5 +--- /dev/null ++++ b/backends/mips_cfi.c +@@ -0,0 +1,80 @@ ++/* MIPS ABI-specified defaults for DWARF CFI. ++ Copyright (C) 2018 Kurt Roeckx, Inc. ++ This file is part of elfutils. ++ ++ This file is free software; you can redistribute it and/or modify ++ it under the terms of either ++ ++ * the GNU Lesser General Public License as published by the Free ++ Software Foundation; either version 3 of the License, or (at ++ your option) any later version ++ ++ or ++ ++ * the GNU General Public License as published by the Free ++ Software Foundation; either version 2 of the License, or (at ++ your option) any later version ++ ++ or both in parallel, as here. ++ ++ elfutils is distributed in the hope that it will be useful, but ++ WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ General Public License for more details. ++ ++ You should have received copies of the GNU General Public License and ++ the GNU Lesser General Public License along with this program. If ++ not, see . */ ++ ++#ifdef HAVE_CONFIG_H ++# include ++#endif ++ ++#include ++ ++#define BACKEND mips_ ++#include "libebl_CPU.h" ++ ++int ++mips_abi_cfi (Ebl *ebl __attribute__ ((unused)), Dwarf_CIE *abi_info) ++{ ++ static const uint8_t abi_cfi[] = ++ { ++ /* Call-saved regs. */ ++ DW_CFA_same_value, ULEB128_7 (16), /* $16 */ ++ DW_CFA_same_value, ULEB128_7 (17), /* $17 */ ++ DW_CFA_same_value, ULEB128_7 (18), /* $18 */ ++ DW_CFA_same_value, ULEB128_7 (19), /* $19 */ ++ DW_CFA_same_value, ULEB128_7 (20), /* $20 */ ++ DW_CFA_same_value, ULEB128_7 (21), /* $21 */ ++ DW_CFA_same_value, ULEB128_7 (22), /* $22 */ ++ DW_CFA_same_value, ULEB128_7 (23), /* $23 */ ++ DW_CFA_same_value, ULEB128_7 (28), /* $28 */ ++ DW_CFA_same_value, ULEB128_7 (29), /* $29 */ ++ DW_CFA_same_value, ULEB128_7 (30), /* $30 */ ++ ++ DW_CFA_same_value, ULEB128_7 (52), /* $f20 */ ++ DW_CFA_same_value, ULEB128_7 (53), /* $f21 */ ++ DW_CFA_same_value, ULEB128_7 (54), /* $f22 */ ++ DW_CFA_same_value, ULEB128_7 (55), /* $f23 */ ++ DW_CFA_same_value, ULEB128_7 (56), /* $f24 */ ++ DW_CFA_same_value, ULEB128_7 (57), /* $f25 */ ++ DW_CFA_same_value, ULEB128_7 (58), /* $f26 */ ++ DW_CFA_same_value, ULEB128_7 (59), /* $f27 */ ++ DW_CFA_same_value, ULEB128_7 (60), /* $f28 */ ++ DW_CFA_same_value, ULEB128_7 (61), /* $f29 */ ++ DW_CFA_same_value, ULEB128_7 (62), /* $f30 */ ++ DW_CFA_same_value, ULEB128_7 (63), /* $f31 */ ++ ++ /* The CFA is the SP. */ ++ DW_CFA_def_cfa, ULEB128_7 (29), ULEB128_7 (0), ++ }; ++ ++ abi_info->initial_instructions = abi_cfi; ++ abi_info->initial_instructions_end = &abi_cfi[sizeof abi_cfi]; ++ abi_info->data_alignment_factor = 4; ++ ++ abi_info->return_address_register = 31; /* $31 */ ++ ++ return 0; ++} +diff --git a/backends/mips_init.c b/backends/mips_init.c +index 8482e7f..bce5abe 100644 +--- a/backends/mips_init.c ++++ b/backends/mips_init.c +@@ -50,6 +50,7 @@ mips_init (Elf *elf __attribute__ ((unused)), + HOOK (eh, reloc_simple_type); + HOOK (eh, return_value_location); + HOOK (eh, register_info); ++ HOOK (eh, abi_cfi); + + return MODVERSION; + } +-- +2.7.4 + diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/elfutils/files/debian/mips_readelf_w.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/elfutils/files/debian/mips_readelf_w.patch index 1737e0db..c6d42e16 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/elfutils/files/debian/mips_readelf_w.patch +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/elfutils/files/debian/mips_readelf_w.patch @@ -1,23 +1,22 @@ -From 33da4b4347aacdfb8b1b42e06e29e68a4b882d96 Mon Sep 17 00:00:00 2001 -From: Kurt Roeckx -Date: Mon, 4 Mar 2019 09:45:00 +0000 -Subject: [PATCH] Make readelf -w output debug information on mips - -Upstreams wants a change where this is handled by a hook that needs -to be filled in by the backend for the arch. +From 7bdc83296865cf2b2a5615dbdb7ac0d441fb1849 Mon Sep 17 00:00:00 2001 +From: Hongxu Jia +Date: Wed, 21 Aug 2019 16:55:01 +0800 +Subject: [PATCH] mips_readelf_w Upstream-Status: Pending [from debian] -Signed-off-by: Hongxu Jia +Rebase to 0.177 + +Signed-off-by: Hongxu Jia --- src/readelf.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/readelf.c b/src/readelf.c -index 33706bd..ef13159 100644 +index 2084fb1..5c02a9b 100644 --- a/src/readelf.c +++ b/src/readelf.c -@@ -11148,7 +11148,8 @@ print_debug (Dwfl_Module *dwflmod, Ebl *ebl, GElf_Ehdr *ehdr) +@@ -11256,7 +11256,8 @@ print_debug (Dwfl_Module *dwflmod, Ebl *ebl, GElf_Ehdr *ehdr) GElf_Shdr shdr_mem; GElf_Shdr *shdr = gelf_getshdr (scn, &shdr_mem); @@ -27,3 +26,6 @@ index 33706bd..ef13159 100644 { static const struct { +-- +2.7.4 + diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/elfutils/files/debian/testsuite-ignore-elflint.diff b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/elfutils/files/debian/testsuite-ignore-elflint.diff index c4ce20c8..e6d7948c 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/elfutils/files/debian/testsuite-ignore-elflint.diff +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/elfutils/files/debian/testsuite-ignore-elflint.diff @@ -1,16 +1,13 @@ -From 03a343c6b1b72598fce654b8a638f106da44abfb Mon Sep 17 00:00:00 2001 -From: OpenEmbedded -Date: Fri, 12 Apr 2019 08:05:50 +0000 -Subject: [PATCH] On many architectures this test fails because binaries/libs - produced by binutils don't pass elflint. However elfutils shouldn't FTBFS - because of this. +From 6393b0e57872b3ffedf0dbd6784cd29694010878 Mon Sep 17 00:00:00 2001 +From: Hongxu Jia +Date: Wed, 21 Aug 2019 16:59:01 +0800 +Subject: [PATCH 1/2] testsuite-ignore-elflint -So we run the tests on all archs to see what breaks, but if it breaks we ignore -the result (exitcode 77 means: this test was skipped). +Upstream-Status: Pending [from debian] -Upstream-Status: Inappropriate [oe specific] +Rebase to 0.177 -Signed-off-by: Mingli Yu +Signed-off-by: Hongxu Jia --- tests/run-elflint-self.sh | 2 +- tests/test-subr.sh | 15 +++++++++++++++ @@ -50,3 +47,6 @@ index 09f428d..26f61f1 100644 + if test $exit_status != 0; then exit $exit_status; fi +} + +-- +2.7.4 + diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/elfutils/files/musl-libs.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/elfutils/files/musl-libs.patch new file mode 100644 index 00000000..b9b9f120 --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/elfutils/files/musl-libs.patch @@ -0,0 +1,144 @@ +From d5a1651df9884fcf57ed320bc2f866538af2f420 Mon Sep 17 00:00:00 2001 +From: Hongxu Jia +Date: Fri, 23 Aug 2019 10:18:47 +0800 +Subject: [PATCH 2/3] musl-libs + +Collection of fixes needed to compile libelf and other libraries +provided by elfutils for musl targets + +error is glibc specific API, so this patch will mostly not accepted +upstream given that elfutils has been closely tied to glibc + +Signed-off-by: Khem Raj +Upstream-Status: Inappropriate [workaround for musl] + +Rebase to 0.177 +Signed-off-by: Hongxu Jia +--- + lib/error.h | 27 +++++++++++++++++++++++++++ + lib/fixedsizehash.h | 1 - + lib/libeu.h | 1 + + libdwfl/dwfl_error.c | 9 +++++++++ + libdwfl/linux-kernel-modules.c | 1 + + libelf/elf.h | 9 ++++++--- + 6 files changed, 44 insertions(+), 4 deletions(-) + create mode 100644 lib/error.h + +diff --git a/lib/error.h b/lib/error.h +new file mode 100644 +index 0000000..ef06827 +--- /dev/null ++++ b/lib/error.h +@@ -0,0 +1,27 @@ ++#ifndef _ERROR_H_ ++#define _ERROR_H_ ++ ++#include ++#include ++#include ++#include ++#include ++ ++static unsigned int error_message_count = 0; ++ ++static inline void error(int status, int errnum, const char* format, ...) ++{ ++ va_list ap; ++ fprintf(stderr, "%s: ", program_invocation_name); ++ va_start(ap, format); ++ vfprintf(stderr, format, ap); ++ va_end(ap); ++ if (errnum) ++ fprintf(stderr, ": %s", strerror(errnum)); ++ fprintf(stderr, "\n"); ++ error_message_count++; ++ if (status) ++ exit(status); ++} ++ ++#endif /* _ERROR_H_ */ +diff --git a/lib/fixedsizehash.h b/lib/fixedsizehash.h +index dac2a5f..43016fc 100644 +--- a/lib/fixedsizehash.h ++++ b/lib/fixedsizehash.h +@@ -30,7 +30,6 @@ + #include + #include + #include +-#include + + #include + +diff --git a/lib/libeu.h b/lib/libeu.h +index ecb4d01..edc85e3 100644 +--- a/lib/libeu.h ++++ b/lib/libeu.h +@@ -29,6 +29,7 @@ + #ifndef LIBEU_H + #define LIBEU_H + ++#include "system.h" + #include + #include + +diff --git a/libdwfl/dwfl_error.c b/libdwfl/dwfl_error.c +index 7bcf61c..11dcc8b 100644 +--- a/libdwfl/dwfl_error.c ++++ b/libdwfl/dwfl_error.c +@@ -154,7 +154,16 @@ dwfl_errmsg (int error) + switch (error &~ 0xffff) + { + case OTHER_ERROR (ERRNO): ++#if defined(__GLIBC__) + return strerror_r (error & 0xffff, "bad", 0); ++#else ++ { ++ static __thread char buf[128] = ""; ++ if (strerror_r (error & 0xffff, buf, sizeof(buf)) == 0) ++ return buf; ++ } ++ return "strerror_r() failed"; ++#endif + case OTHER_ERROR (LIBELF): + return elf_errmsg (error & 0xffff); + case OTHER_ERROR (LIBDW): +diff --git a/libdwfl/linux-kernel-modules.c b/libdwfl/linux-kernel-modules.c +index d46ab5a..1c3faee 100644 +--- a/libdwfl/linux-kernel-modules.c ++++ b/libdwfl/linux-kernel-modules.c +@@ -50,6 +50,7 @@ + #include + #include + #include ++#include "system.h" + + /* If fts.h is included before config.h, its indirect inclusions may not + give us the right LFS aliases of these functions, so map them manually. */ +diff --git a/libelf/elf.h b/libelf/elf.h +index bed273d..be228e6 100644 +--- a/libelf/elf.h ++++ b/libelf/elf.h +@@ -21,7 +21,9 @@ + + #include + +-__BEGIN_DECLS ++#ifdef __cplusplus ++extern "C" { ++#endif + + /* Standard ELF types. */ + +@@ -4029,6 +4031,7 @@ enum + #define R_NDS32_TLS_TPOFF 102 + #define R_NDS32_TLS_DESC 119 + +-__END_DECLS +- ++#ifdef __cplusplus ++} ++#endif + #endif /* elf.h */ +-- +2.7.4 + diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/elfutils/files/musl-obstack-fts.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/elfutils/files/musl-obstack-fts.patch new file mode 100644 index 00000000..40f2b69c --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/elfutils/files/musl-obstack-fts.patch @@ -0,0 +1,128 @@ +From 77b89dbc9f9f965ad0ef2e341d7d46bce5f07549 Mon Sep 17 00:00:00 2001 +From: Hongxu Jia +Date: Fri, 23 Aug 2019 10:17:25 +0800 +Subject: [PATCH 1/3] musl-obstack-fts + +Look for libfts and libobstack during configure, these +libraries are external to libc when using musl, whereas +on glibc these libraries are provided in libc itself. + +Signed-off-by: Khem Raj +Upstream-Status: Inappropriate [workaround for musl] + +Rebase to 0.177 +Signed-off-by: Hongxu Jia +--- + configure.ac | 54 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ + libdw/Makefile.am | 2 +- + src/Makefile.am | 8 ++++---- + 3 files changed, 59 insertions(+), 5 deletions(-) + +diff --git a/configure.ac b/configure.ac +index f93964c..b87b762 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -494,6 +494,60 @@ else + fi + AC_SUBST([argp_LDADD]) + ++dnl Check if we have fts available from our libc ++AC_LINK_IFELSE( ++ [AC_LANG_PROGRAM( ++ [#if !defined(__x86_64__) ++ #undef _FILE_OFFSET_BITS ++ #define _FILE_OFFSET_BITS 32 ++ #endif ++ #include ], ++ [FTS* fts = 0; return fts_close(fts); return 0;] ++ )], ++ [libc_has_fts="true"], ++ [libc_has_fts="false"] ++) ++ ++dnl If our libc doesn't provide fts, then test for libfts ++if test "$libc_has_fts" = "false" ; then ++ AC_MSG_WARN("libc does not have fts") ++ AC_CHECK_LIB([fts], [fts_close], [have_fts="true"], [have_fts="false"]) ++ ++ if test "$have_fts" = "false"; then ++ AC_MSG_ERROR("no libfts found") ++ else ++ fts_LDADD="-lfts" ++ fi ++else ++ fts_LDADD="" ++fi ++AC_SUBST([fts_LDADD]) ++ ++dnl Check if we have obstack available from our libc ++AC_LINK_IFELSE( ++ [AC_LANG_PROGRAM( ++ [#include ], ++ [_obstack_begin(0, 0, 0, NULL, NULL); return 0;] ++ )], ++ [libc_has_obstack="true"], ++ [libc_has_obstack="false"] ++) ++ ++dnl If our libc doesn't provide obstack, then test for libobstack ++if test "$libc_has_obstack" = "false" ; then ++ AC_MSG_WARN("libc does not have obstack") ++ AC_CHECK_LIB([obstack], [_obstack_begin], [have_obstack="true"], [have_obstack="false"]) ++ ++ if test "$have_obstack" = "false"; then ++ AC_MSG_ERROR("no libobstack found") ++ else ++ obstack_LDADD="-lobstack" ++ fi ++else ++ obstack_LDADD="" ++fi ++AC_SUBST([obstack_LDADD]) ++ + dnl The directories with content. + + dnl Documentation. +diff --git a/libdw/Makefile.am b/libdw/Makefile.am +index 7a3d532..a541fa3 100644 +--- a/libdw/Makefile.am ++++ b/libdw/Makefile.am +@@ -108,7 +108,7 @@ am_libdw_pic_a_OBJECTS = $(libdw_a_SOURCES:.c=.os) + libdw_so_LIBS = libdw_pic.a ../libdwelf/libdwelf_pic.a \ + ../libdwfl/libdwfl_pic.a ../libebl/libebl.a + libdw_so_DEPS = ../lib/libeu.a ../libelf/libelf.so +-libdw_so_LDLIBS = $(libdw_so_DEPS) -ldl -lz $(argp_LDADD) $(zip_LIBS) ++libdw_so_LDLIBS = $(libdw_so_DEPS) -ldl -lz $(argp_LDADD) $(fts_LDADD) $(zip_LIBS) + libdw_so_SOURCES = + libdw.so$(EXEEXT): $(srcdir)/libdw.map $(libdw_so_LIBS) $(libdw_so_DEPS) + # The rpath is necessary for libebl because its $ORIGIN use will +diff --git a/src/Makefile.am b/src/Makefile.am +index b72f853..2f3dfce 100644 +--- a/src/Makefile.am ++++ b/src/Makefile.am +@@ -69,8 +69,8 @@ ar_no_Wstack_usage = yes + unstrip_no_Wstack_usage = yes + + readelf_LDADD = $(libdw) $(libebl) $(libelf) $(libeu) $(argp_LDADD) -ldl +-nm_LDADD = $(libdw) $(libebl) $(libelf) $(libeu) $(argp_LDADD) -ldl \ +- $(demanglelib) ++nm_LDADD = $(libdw) $(libebl) $(libelf) $(libeu) $(argp_LDADD) \ ++ $(obstack_LDADD) -ldl $(demanglelib) + size_LDADD = $(libelf) $(libeu) $(argp_LDADD) + strip_LDADD = $(libebl) $(libelf) $(libdw) $(libeu) $(argp_LDADD) -ldl + elflint_LDADD = $(libebl) $(libelf) $(libeu) $(argp_LDADD) -ldl +@@ -78,9 +78,9 @@ findtextrel_LDADD = $(libdw) $(libelf) $(libeu) $(argp_LDADD) + addr2line_LDADD = $(libdw) $(libelf) $(libeu) $(argp_LDADD) $(demanglelib) + elfcmp_LDADD = $(libebl) $(libelf) $(libeu) $(argp_LDADD) -ldl + objdump_LDADD = $(libasm) $(libebl) $(libelf) $(libeu) $(argp_LDADD) -ldl +-ranlib_LDADD = libar.a $(libelf) $(libeu) $(argp_LDADD) ++ranlib_LDADD = libar.a $(libelf) $(libeu) $(argp_LDADD) $(obstack_LDADD) + strings_LDADD = $(libelf) $(libeu) $(argp_LDADD) +-ar_LDADD = libar.a $(libelf) $(libeu) $(argp_LDADD) ++ar_LDADD = libar.a $(libelf) $(libeu) $(argp_LDADD) $(obstack_LDADD) + unstrip_LDADD = $(libebl) $(libelf) $(libdw) $(libeu) $(argp_LDADD) -ldl + stack_LDADD = $(libebl) $(libelf) $(libdw) $(libeu) $(argp_LDADD) -ldl $(demanglelib) + elfcompress_LDADD = $(libebl) $(libelf) $(libdw) $(libeu) $(argp_LDADD) +-- +2.7.4 + diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/elfutils/files/musl.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/elfutils/files/musl-tests.patch similarity index 100% rename from Contrib-Inspur/openbmc/poky/meta/recipes-devtools/elfutils/files/musl.patch rename to Contrib-Inspur/openbmc/poky/meta/recipes-devtools/elfutils/files/musl-tests.patch diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/elfutils/files/musl-utils.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/elfutils/files/musl-utils.patch new file mode 100644 index 00000000..a8ad9312 --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/elfutils/files/musl-utils.patch @@ -0,0 +1,165 @@ +From 7f5e2fd86d54e0a4d195ec65afb9b411829dff9f Mon Sep 17 00:00:00 2001 +From: Hongxu Jia +Date: Fri, 23 Aug 2019 10:19:48 +0800 +Subject: [PATCH 3/3] musl-utils + +Provide missing defines which otherwise are available on glibc system headers + +Alter the error API to match posix version +use qsort instead of qsort_r which is glibc specific API + +Signed-off-by: Khem Raj +Upstream-Status: Inappropriate [workaround for musl] + +Rebase to 0.177 +Signed-off-by: Hongxu Jia +--- + src/arlib.h | 6 ++++++ + src/elfcompress.c | 7 +++++++ + src/readelf.c | 20 ++++++++++++-------- + src/strip.c | 7 +++++++ + src/unstrip.c | 9 +++++++++ + 5 files changed, 41 insertions(+), 8 deletions(-) + +diff --git a/src/arlib.h b/src/arlib.h +index e117166..8326f6c 100644 +--- a/src/arlib.h ++++ b/src/arlib.h +@@ -29,6 +29,12 @@ + #include + #include + ++#if !defined(ALLPERMS) ++# define ALLPERMS (S_ISUID|S_ISGID|S_ISVTX|S_IRWXU|S_IRWXG|S_IRWXO) /* 07777 */ ++#endif ++#if !defined(DEFFILEMODE) ++# define DEFFILEMODE (S_IRUSR|S_IWUSR|S_IRGRP|S_IWGRP|S_IROTH|S_IWOTH)/* 0666*/ ++#endif + + /* State of -D/-U flags. */ + extern bool arlib_deterministic_output; +diff --git a/src/elfcompress.c b/src/elfcompress.c +index 6ba6af4..0c7674b 100644 +--- a/src/elfcompress.c ++++ b/src/elfcompress.c +@@ -37,6 +37,13 @@ + #include "libeu.h" + #include "printversion.h" + ++#if !defined(ALLPERMS) ++# define ALLPERMS (S_ISUID|S_ISGID|S_ISVTX|S_IRWXU|S_IRWXG|S_IRWXO) /* 07777 */ ++#endif ++#if !defined(FNM_EXTMATCH) ++# define FNM_EXTMATCH (0) ++#endif ++ + /* Name and version of program. */ + ARGP_PROGRAM_VERSION_HOOK_DEF = print_version; + +diff --git a/src/readelf.c b/src/readelf.c +index 5c02a9b..817562d 100644 +--- a/src/readelf.c ++++ b/src/readelf.c +@@ -4813,10 +4813,11 @@ listptr_base (struct listptr *p) + return cudie_base (&cu); + } + ++static const char *listptr_name; ++ + static int +-compare_listptr (const void *a, const void *b, void *arg) ++compare_listptr (const void *a, const void *b) + { +- const char *name = arg; + struct listptr *p1 = (void *) a; + struct listptr *p2 = (void *) b; + +@@ -4832,21 +4833,21 @@ compare_listptr (const void *a, const void *b, void *arg) + p1->warned = p2->warned = true; + error (0, 0, + gettext ("%s %#" PRIx64 " used with different address sizes"), +- name, (uint64_t) p1->offset); ++ listptr_name, (uint64_t) p1->offset); + } + if (p1->dwarf64 != p2->dwarf64) + { + p1->warned = p2->warned = true; + error (0, 0, + gettext ("%s %#" PRIx64 " used with different offset sizes"), +- name, (uint64_t) p1->offset); ++ listptr_name, (uint64_t) p1->offset); + } + if (listptr_base (p1) != listptr_base (p2)) + { + p1->warned = p2->warned = true; + error (0, 0, + gettext ("%s %#" PRIx64 " used with different base addresses"), +- name, (uint64_t) p1->offset); ++ listptr_name, (uint64_t) p1->offset); + } + if (p1->attr != p2 ->attr) + { +@@ -4854,7 +4855,7 @@ compare_listptr (const void *a, const void *b, void *arg) + error (0, 0, + gettext ("%s %#" PRIx64 + " used with different attribute %s and %s"), +- name, (uint64_t) p1->offset, dwarf_attr_name (p2->attr), ++ listptr_name, (uint64_t) p1->offset, dwarf_attr_name (p2->attr), + dwarf_attr_name (p2->attr)); + } + } +@@ -4926,8 +4927,11 @@ static void + sort_listptr (struct listptr_table *table, const char *name) + { + if (table->n > 0) +- qsort_r (table->table, table->n, sizeof table->table[0], +- &compare_listptr, (void *) name); ++ { ++ listptr_name = name; ++ qsort (table->table, table->n, sizeof table->table[0], ++ &compare_listptr); ++ } + } + + static bool +diff --git a/src/strip.c b/src/strip.c +index 4054c2a..d2d2176 100644 +--- a/src/strip.c ++++ b/src/strip.c +@@ -46,6 +46,13 @@ + #include + #include + ++#if !defined(ACCESSPERMS) ++# define ACCESSPERMS (S_IRWXU|S_IRWXG|S_IRWXO) /* 0777 */ ++#endif ++#if !defined(FNM_EXTMATCH) ++# define FNM_EXTMATCH (0) ++#endif ++ + typedef uint8_t GElf_Byte; + + /* Name and version of program. */ +diff --git a/src/unstrip.c b/src/unstrip.c +index fc87832..21ea6b3 100644 +--- a/src/unstrip.c ++++ b/src/unstrip.c +@@ -56,6 +56,15 @@ + # define _(str) gettext (str) + #endif + ++#ifndef strndupa ++#define strndupa(s, n) \ ++ ({const char *__in = (s); \ ++ size_t __len = strnlen (__in, (n)) + 1; \ ++ char *__out = (char *) alloca (__len); \ ++ __out[__len-1] = '\0'; \ ++ (char *) memcpy (__out, __in, __len-1);}) ++#endif ++ + /* Name and version of program. */ + ARGP_PROGRAM_VERSION_HOOK_DEF = print_version; + +-- +2.7.4 + diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/expect/expect/0001-exp_main_sub.c-Use-PATH_MAX-for-path.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/expect/expect/0001-exp_main_sub.c-Use-PATH_MAX-for-path.patch new file mode 100644 index 00000000..37512fb9 --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/expect/expect/0001-exp_main_sub.c-Use-PATH_MAX-for-path.patch @@ -0,0 +1,55 @@ +From 1407fcad6f1dac0a4efe8041660bf6139c1cd16a Mon Sep 17 00:00:00 2001 +From: Robert Yang +Date: Tue, 24 Sep 2019 13:40:10 +0800 +Subject: [PATCH] exp_main_sub.c: Use PATH_MAX for path + +If expect was built from a long path whose length > 200, then it couldn't run: +$ expect -c 'puts yes' +*** buffer overflow detected ***: expect terminated +Aborted (core dumped) + +Use PATH_MAX to fix the problem. + +Upstream-Status: Pending [Upstream seems dead] + +Signed-off-by: Robert Yang +--- + exp_main_sub.c | 8 ++++++-- + 1 file changed, 6 insertions(+), 2 deletions(-) + +diff --git a/exp_main_sub.c b/exp_main_sub.c +index fcfaa6e..bf6c4be 100644 +--- a/exp_main_sub.c ++++ b/exp_main_sub.c +@@ -48,6 +48,10 @@ char exp_version[] = PACKAGE_VERSION; + #define NEED_TCL_MAJOR 7 + #define NEED_TCL_MINOR 5 + ++#ifndef PATH_MAX ++#define PATH_MAX 4096 ++#endif ++ + char *exp_argv0 = "this program"; /* default program name */ + void (*exp_app_exit)() = 0; + void (*exp_event_exit)() = 0; +@@ -901,7 +905,7 @@ int sys_rc; + int rc; + + if (sys_rc) { +- char file[200]; ++ char file[PATH_MAX]; + int fd; + + sprintf(file,"%s/expect.rc",SCRIPTDIR); +@@ -917,7 +921,7 @@ int sys_rc; + } + } + if (my_rc) { +- char file[200]; ++ char file[PATH_MAX]; + char *home; + int fd; + char *getenv(); +-- +2.7.4 + diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/expect/expect_5.45.4.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/expect/expect_5.45.4.bb index 96eacd92..39ae6151 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/expect/expect_5.45.4.bb +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/expect/expect_5.45.4.bb @@ -25,6 +25,7 @@ SRC_URI = "${SOURCEFORGE_MIRROR}/expect/Expect/${PV}/${BPN}${PV}.tar.gz \ file://0001-expect-install-scripts-without-using-the-fixline1-tc.patch \ file://0001-Resolve-string-formatting-issues.patch \ file://0001-expect-Fix-segfaults-if-Tcl-is-built-with-stubs-and-.patch \ + file://0001-exp_main_sub.c-Use-PATH_MAX-for-path.patch \ " SRC_URI[md5sum] = "00fce8de158422f5ccd2666512329bd2" SRC_URI[sha256sum] = "49a7da83b0bdd9f46d04a04deec19c7767bb9a323e40c4781f89caf760b92c34" @@ -44,9 +45,9 @@ do_install_append() { } # Apparently the public Tcl headers are only in /usr/include/tcl8.6 -# when building for the target. -TCL_INCLUDE_PATH = "" -TCL_INCLUDE_PATH_class-target = "--with-tclinclude=${STAGING_INCDIR}/tcl8.6" +# when building for the target and nativesdk. +TCL_INCLUDE_PATH = "--with-tclinclude=${STAGING_INCDIR}/tcl8.6" +TCL_INCLUDE_PATH_class-native = "" EXTRA_OECONF += "--with-tcl=${STAGING_LIBDIR} \ --enable-shared \ diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/file/file/CVE-2019-18218.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/file/file/CVE-2019-18218.patch new file mode 100644 index 00000000..3d02c5ad --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/file/file/CVE-2019-18218.patch @@ -0,0 +1,55 @@ +cdf_read_property_info in cdf.c in file through 5.37 does not restrict the +number of CDF_VECTOR elements, which allows a heap-based buffer overflow (4-byte +out-of-bounds write). + +CVE: CVE-2019-18218 +Upstream-Status: Backport +Signed-off-by: Ross Burton + +From 46a8443f76cec4b41ec736eca396984c74664f84 Mon Sep 17 00:00:00 2001 +From: Christos Zoulas +Date: Mon, 26 Aug 2019 14:31:39 +0000 +Subject: [PATCH] Limit the number of elements in a vector (found by oss-fuzz) + +--- + src/cdf.c | 9 ++++----- + src/cdf.h | 1 + + 2 files changed, 5 insertions(+), 5 deletions(-) + +diff --git a/src/cdf.c b/src/cdf.c +index 9d6396742..bb81d6374 100644 +--- a/src/cdf.c ++++ b/src/cdf.c +@@ -1016,8 +1016,9 @@ cdf_read_property_info(const cdf_stream_t *sst, const cdf_header_t *h, + goto out; + } + nelements = CDF_GETUINT32(q, 1); +- if (nelements == 0) { +- DPRINTF(("CDF_VECTOR with nelements == 0\n")); ++ if (nelements > CDF_ELEMENT_LIMIT || nelements == 0) { ++ DPRINTF(("CDF_VECTOR with nelements == %" ++ SIZE_T_FORMAT "u\n", nelements)); + goto out; + } + slen = 2; +@@ -1060,8 +1061,6 @@ cdf_read_property_info(const cdf_stream_t *sst, const cdf_header_t *h, + goto out; + inp += nelem; + } +- DPRINTF(("nelements = %" SIZE_T_FORMAT "u\n", +- nelements)); + for (j = 0; j < nelements && i < sh.sh_properties; + j++, i++) + { +diff --git a/src/cdf.h b/src/cdf.h +index 2f7e554b7..05056668f 100644 +--- a/src/cdf.h ++++ b/src/cdf.h +@@ -48,6 +48,7 @@ + typedef int32_t cdf_secid_t; + + #define CDF_LOOP_LIMIT 10000 ++#define CDF_ELEMENT_LIMIT 100000 + + #define CDF_SECID_NULL 0 + #define CDF_SECID_FREE -1 diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/file/file_5.37.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/file/file_5.37.bb index 803aa9a2..a96ccc0d 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/file/file_5.37.bb +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/file/file_5.37.bb @@ -5,22 +5,22 @@ HOMEPAGE = "http://www.darwinsys.com/file/" SECTION = "console/utils" # two clause BSD -LICENSE = "BSD" +LICENSE = "BSD-2-Clause" LIC_FILES_CHKSUM = "file://COPYING;beginline=2;md5=0251eaec1188b20d9a72c502ecfdda1b" DEPENDS = "zlib file-replacement-native" DEPENDS_class-native = "zlib-native" -# Blacklist a bogus tag in upstream check -UPSTREAM_CHECK_GITTAGREGEX = "FILE(?P(?!6_23).+)" - -SRC_URI = "git://github.com/file/file.git" +SRC_URI = "git://github.com/file/file.git \ + file://CVE-2019-18218.patch" SRCREV = "a0d5b0e4e9f97d74a9911e95cedd579852e25398" S = "${WORKDIR}/git" inherit autotools update-alternatives +EXTRA_OECONF += "--disable-libseccomp" + ALTERNATIVE_${PN} = "file" ALTERNATIVE_LINK_NAME[file] = "${bindir}/file" @@ -29,6 +29,10 @@ EXTRA_OEMAKE_append_class-nativesdk = "-e FILE_COMPILE=${STAGING_BINDIR_NATIVE}/ FILES_${PN} += "${datadir}/misc/*.mgc" +do_compile_append_class-native() { + oe_runmake check +} + do_install_append_class-native() { create_cmdline_wrapper ${D}/${bindir}/file \ --magic-file ${datadir}/misc/magic.mgc diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/flex/flex_2.6.0.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/flex/flex_2.6.0.bb index b477cd8c..9bdd99c5 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/flex/flex_2.6.0.bb +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/flex/flex_2.6.0.bb @@ -3,7 +3,7 @@ DESCRIPTION = "Flex is a fast lexical analyser generator. Flex is a tool for ge lexical patterns in text." HOMEPAGE = "http://sourceforge.net/projects/flex/" SECTION = "devel" -LICENSE = "BSD" +LICENSE = "BSD-2-Clause" DEPENDS = "${@bb.utils.contains('PTEST_ENABLED', '1', 'bison-native flex-native', '', d)}" BBCLASSEXTEND = "native nativesdk" @@ -68,3 +68,6 @@ do_install_ptest() { -e 's/^builddir = \(.*\)/builddir = ./' -e 's/^top_builddir = \(.*\)/top_builddir = ./' \ -i ${D}${PTEST_PATH}/Makefile } + +# Not Apache Flex, or Adobe Flex, or IBM Flex. +CVE_PRODUCT = "flex_project:flex" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-8.3.inc b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-8.3.inc deleted file mode 100644 index 1781ff5b..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-8.3.inc +++ /dev/null @@ -1,112 +0,0 @@ -require gcc-common.inc - -# Third digit in PV should be incremented after a minor release - -PV = "8.3.0" - -# BINV should be incremented to a revision after a minor gcc release - -BINV = "8.3.0" - -FILESEXTRAPATHS =. "${FILE_DIRNAME}/gcc-8.3:" - -DEPENDS =+ "mpfr gmp libmpc zlib flex-native" -NATIVEDEPS = "mpfr-native gmp-native libmpc-native zlib-native flex-native" - -LICENSE = "GPL-3.0-with-GCC-exception & GPLv3" - -LIC_FILES_CHKSUM = "\ - file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552 \ - file://COPYING3;md5=d32239bcb673463ab874e80d47fae504 \ - file://COPYING3.LIB;md5=6a6a8e020838b23406c81b19c1d46df6 \ - file://COPYING.LIB;md5=2d5025d4aa3495befef8f17206a5b0a1 \ - file://COPYING.RUNTIME;md5=fe60d87048567d4fe8c8a0ed2448bcc8 \ -" - -#RELEASE = "8.0.1-RC-20180427" -BASEURI ?= "${GNU_MIRROR}/gcc/gcc-${PV}/gcc-${PV}.tar.xz" -#SRCREV = "f7cf798b73fd1a07098f9a490deec1e2a36e0bed" -#BASEURI ?= "git://github.com/gcc-mirror/gcc;branch=gcc-6-branch;protocol=git" -#BASEURI ?= "http://mirrors.concertpass.com/gcc/snapshots/${RELEASE}/gcc-${RELEASE}.tar.xz" - -SRC_URI = "\ - ${BASEURI} \ - file://0001-gcc-4.3.1-ARCH_FLAGS_FOR_TARGET.patch \ - file://0002-gcc-poison-system-directories.patch \ - file://0003-gcc-4.3.3-SYSROOT_CFLAGS_FOR_TARGET.patch \ - file://0004-64-bit-multilib-hack.patch \ - file://0005-optional-libstdc.patch \ - file://0007-COLLECT_GCC_OPTIONS.patch \ - file://0008-Use-the-defaults.h-in-B-instead-of-S-and-t-oe-in-B.patch \ - file://0009-fortran-cross-compile-hack.patch \ - file://0010-cpp-honor-sysroot.patch \ - file://0011-MIPS64-Default-to-N64-ABI.patch \ - file://0012-Define-GLIBC_DYNAMIC_LINKER-and-UCLIBC_DYNAMIC_LINKE.patch \ - file://0013-gcc-Fix-argument-list-too-long-error.patch \ - file://0014-Disable-sdt.patch \ - file://0015-libtool.patch \ - file://0016-gcc-armv4-pass-fix-v4bx-to-linker-to-support-EABI.patch \ - file://0017-Use-the-multilib-config-files-from-B-instead-of-usin.patch \ - file://0018-Avoid-using-libdir-from-.la-which-usually-points-to-.patch \ - file://0019-export-CPP.patch \ - file://0020-Disable-the-MULTILIB_OSDIRNAMES-and-other-multilib-o.patch \ - file://0021-Ensure-target-gcc-headers-can-be-included.patch \ - file://0022-gcc-4.8-won-t-build-with-disable-dependency-tracking.patch \ - file://0023-Don-t-search-host-directory-during-relink-if-inst_pr.patch \ - file://0024-Use-SYSTEMLIBS_DIR-replacement-instead-of-hardcoding.patch \ - file://0025-aarch64-Add-support-for-musl-ldso.patch \ - file://0026-libcc1-fix-libcc1-s-install-path-and-rpath.patch \ - file://0027-handle-sysroot-support-for-nativesdk-gcc.patch \ - file://0028-Search-target-sysroot-gcc-version-specific-dirs-with.patch \ - file://0029-Fix-various-_FOR_BUILD-and-related-variables.patch \ - file://0030-nios2-Define-MUSL_DYNAMIC_LINKER.patch \ - file://0031-Add-ssp_nonshared-to-link-commandline-for-musl-targe.patch \ - file://0032-libgcc-Add-knob-to-use-ldbl-128-on-ppc.patch \ - file://0033-Link-libgcc-using-LDFLAGS-not-just-SHLIB_LDFLAGS.patch \ - file://0034-libgcc_s-Use-alias-for-__cpu_indicator_init-instead-.patch \ - file://0035-sync-gcc-stddef.h-with-musl.patch \ - file://0036-fix-segmentation-fault-in-precompiled-header-generat.patch \ - file://0037-Fix-for-testsuite-failure.patch \ - file://0038-Re-introduce-spe-commandline-options.patch \ - file://0039-riscv-Disable-multilib-for-OE.patch \ - file://0040-powerpc-powerpc64-Add-support-for-musl-ldso.patch \ - file://0041-Add-a-recursion-limit-to-libiberty-s-demangling-code.patch \ - file://0042-PR-debug-86964.patch \ - file://0043-PR85434-Prevent-spilling-of-stack-protector-guard-s-.patch \ -" -SRC_URI[md5sum] = "65b210b4bfe7e060051f799e0f994896" -SRC_URI[sha256sum] = "64baadfe6cc0f4947a84cb12d7f0dfaf45bb58b7e92461639596c21e02d97d2c" - -S = "${TMPDIR}/work-shared/gcc-${PV}-${PR}/gcc-${PV}" -#S = "${TMPDIR}/work-shared/gcc-${PV}-${PR}/git" -#S = "${TMPDIR}/work-shared/gcc-${PV}-${PR}/gcc-${RELEASE}" -B = "${WORKDIR}/gcc-${PV}/build.${HOST_SYS}.${TARGET_SYS}" - -# Language Overrides -FORTRAN = "" - -LTO = "--enable-lto" -SSP ?= "--disable-libssp" -SSP_mingw32 = "--enable-libssp" - -EXTRA_OECONF_BASE = "\ - ${LTO} \ - ${SSP} \ - --enable-libitm \ - --disable-bootstrap \ - --disable-libmudflap \ - --with-system-zlib \ - ${@'--with-linker-hash-style=${LINKER_HASH_STYLE}' if '${LINKER_HASH_STYLE}' else ''} \ - --enable-linker-build-id \ - --with-ppl=no \ - --with-cloog=no \ - --enable-checking=release \ - --enable-cheaders=c_global \ - --without-isl \ -" - -EXTRA_OECONF_PATHS = "\ - --with-gxx-include-dir=/not/exist{target_includedir}/c++/${BINV} \ - --with-sysroot=/not/exist \ - --with-build-sysroot=${STAGING_DIR_TARGET} \ -" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-8.3/0001-gcc-4.3.1-ARCH_FLAGS_FOR_TARGET.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-8.3/0001-gcc-4.3.1-ARCH_FLAGS_FOR_TARGET.patch deleted file mode 100644 index 4ad79e44..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-8.3/0001-gcc-4.3.1-ARCH_FLAGS_FOR_TARGET.patch +++ /dev/null @@ -1,42 +0,0 @@ -From d7b284a9bede9d5059ad7e95a867254bf913c638 Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Fri, 29 Mar 2013 08:37:11 +0400 -Subject: [PATCH 01/40] gcc-4.3.1: ARCH_FLAGS_FOR_TARGET - -Signed-off-by: Khem Raj - -Upstream-Status: Inappropriate [embedded specific] ---- - configure | 2 +- - configure.ac | 2 +- - 2 files changed, 2 insertions(+), 2 deletions(-) - -diff --git a/configure b/configure -index 0601395512f..8c5b1e9d561 100755 ---- a/configure -+++ b/configure -@@ -7507,7 +7507,7 @@ fi - # for target_alias and gcc doesn't manage it consistently. - target_configargs="--cache-file=./config.cache ${target_configargs}" - --FLAGS_FOR_TARGET= -+FLAGS_FOR_TARGET="$ARCH_FLAGS_FOR_TARGET" - case " $target_configdirs " in - *" newlib "*) - case " $target_configargs " in -diff --git a/configure.ac b/configure.ac -index c3433336523..69c31c65ad7 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -3096,7 +3096,7 @@ fi - # for target_alias and gcc doesn't manage it consistently. - target_configargs="--cache-file=./config.cache ${target_configargs}" - --FLAGS_FOR_TARGET= -+FLAGS_FOR_TARGET="$ARCH_FLAGS_FOR_TARGET" - case " $target_configdirs " in - *" newlib "*) - case " $target_configargs " in --- -2.21.0 - diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-8.3/0002-gcc-poison-system-directories.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-8.3/0002-gcc-poison-system-directories.patch deleted file mode 100644 index e7ff1246..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-8.3/0002-gcc-poison-system-directories.patch +++ /dev/null @@ -1,203 +0,0 @@ -From 95ec476dd7726cc9c1bfd6fb23ba3aea8bbf61a4 Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Fri, 29 Mar 2013 08:59:00 +0400 -Subject: [PATCH 02/40] gcc: poison-system-directories - -Add /sw/include and /opt/include based on the original -zecke-no-host-includes.patch patch. The original patch checked for -/usr/include, /sw/include and /opt/include and then triggered a failure and -aborted. - -Instead, we add the two missing items to the current scan. If the user -wants this to be a failure, they can add "-Werror=poison-system-directories". - -Signed-off-by: Mark Hatle -Signed-off-by: Khem Raj - -Upstream-Status: Pending ---- - gcc/common.opt | 4 ++++ - gcc/config.in | 6 ++++++ - gcc/configure | 16 ++++++++++++++++ - gcc/configure.ac | 10 ++++++++++ - gcc/doc/invoke.texi | 9 +++++++++ - gcc/gcc.c | 2 ++ - gcc/incpath.c | 21 +++++++++++++++++++++ - 7 files changed, 68 insertions(+) - -diff --git a/gcc/common.opt b/gcc/common.opt -index b52ef0b38c8..0de3f0924cd 100644 ---- a/gcc/common.opt -+++ b/gcc/common.opt -@@ -679,6 +679,10 @@ Wreturn-local-addr - Common Var(warn_return_local_addr) Init(1) Warning - Warn about returning a pointer/reference to a local or temporary variable. - -+Wpoison-system-directories -+Common Var(flag_poison_system_directories) Init(1) Warning -+Warn for -I and -L options using system directories if cross compiling -+ - Wshadow - Common Var(warn_shadow) Warning - Warn when one variable shadows another. Same as -Wshadow=global. -diff --git a/gcc/config.in b/gcc/config.in -index 5bccb408016..1c784a8276b 100644 ---- a/gcc/config.in -+++ b/gcc/config.in -@@ -194,6 +194,12 @@ - #endif - - -+/* Define to warn for use of native system header directories */ -+#ifndef USED_FOR_TARGET -+#undef ENABLE_POISON_SYSTEM_DIRECTORIES -+#endif -+ -+ - /* Define if you want all operations on RTL (the basic data structure of the - optimizer and back end) to be checked for dynamic type safety at runtime. - This is quite expensive. */ -diff --git a/gcc/configure b/gcc/configure -index 6121e163259..3901722400c 100755 ---- a/gcc/configure -+++ b/gcc/configure -@@ -953,6 +953,7 @@ with_system_zlib - enable_maintainer_mode - enable_link_mutex - enable_version_specific_runtime_libs -+enable_poison_system_directories - enable_plugin - enable_host_shared - enable_libquadmath_support -@@ -1696,6 +1697,8 @@ Optional Features: - --enable-version-specific-runtime-libs - specify that runtime libraries should be installed - in a compiler-specific directory -+ --enable-poison-system-directories -+ warn for use of native system header directories - --enable-plugin enable plugin support - --enable-host-shared build host code as shared libraries - --disable-libquadmath-support -@@ -29701,6 +29704,19 @@ if test "${enable_version_specific_runtime_libs+set}" = set; then : - fi - - -+# Check whether --enable-poison-system-directories was given. -+if test "${enable_poison_system_directories+set}" = set; then : -+ enableval=$enable_poison_system_directories; -+else -+ enable_poison_system_directories=no -+fi -+ -+if test "x${enable_poison_system_directories}" = "xyes"; then -+ -+$as_echo "#define ENABLE_POISON_SYSTEM_DIRECTORIES 1" >>confdefs.h -+ -+fi -+ - # Substitute configuration variables - - -diff --git a/gcc/configure.ac b/gcc/configure.ac -index b066cc609e1..1b1362f70fe 100644 ---- a/gcc/configure.ac -+++ b/gcc/configure.ac -@@ -6327,6 +6327,16 @@ AC_ARG_ENABLE(version-specific-runtime-libs, - [specify that runtime libraries should be - installed in a compiler-specific directory])]) - -+AC_ARG_ENABLE([poison-system-directories], -+ AS_HELP_STRING([--enable-poison-system-directories], -+ [warn for use of native system header directories]),, -+ [enable_poison_system_directories=no]) -+if test "x${enable_poison_system_directories}" = "xyes"; then -+ AC_DEFINE([ENABLE_POISON_SYSTEM_DIRECTORIES], -+ [1], -+ [Define to warn for use of native system header directories]) -+fi -+ - # Substitute configuration variables - AC_SUBST(subdirs) - AC_SUBST(srcdir) -diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi -index e5c4e8125aa..fb228631a42 100644 ---- a/gcc/doc/invoke.texi -+++ b/gcc/doc/invoke.texi -@@ -304,6 +304,7 @@ Objective-C and Objective-C++ Dialects}. - -Wpacked -Wpacked-bitfield-compat -Wpacked-not-aligned -Wpadded @gol - -Wparentheses -Wno-pedantic-ms-format @gol - -Wplacement-new -Wplacement-new=@var{n} @gol -+-Wno-poison-system-directories @gol - -Wpointer-arith -Wpointer-compare -Wno-pointer-to-int-cast @gol - -Wno-pragmas -Wredundant-decls -Wrestrict -Wno-return-local-addr @gol - -Wreturn-type -Wsequence-point -Wshadow -Wno-shadow-ivar @gol -@@ -5743,6 +5744,14 @@ made up of data only and thus requires no special treatment. But, for - most targets, it is made up of code and thus requires the stack to be - made executable in order for the program to work properly. - -+@item -Wno-poison-system-directories -+@opindex Wno-poison-system-directories -+Do not warn for @option{-I} or @option{-L} options using system -+directories such as @file{/usr/include} when cross compiling. This -+option is intended for use in chroot environments when such -+directories contain the correct headers and libraries for the target -+system rather than the host. -+ - @item -Wfloat-equal - @opindex Wfloat-equal - @opindex Wno-float-equal -diff --git a/gcc/gcc.c b/gcc/gcc.c -index a716f708259..02b3cd39fc2 100644 ---- a/gcc/gcc.c -+++ b/gcc/gcc.c -@@ -1037,6 +1037,8 @@ proper position among the other output files. */ - "%{fuse-ld=*:-fuse-ld=%*} " LINK_COMPRESS_DEBUG_SPEC \ - "%X %{o*} %{e*} %{N} %{n} %{r}\ - %{s} %{t} %{u*} %{z} %{Z} %{!nostdlib:%{!nostartfiles:%S}} \ -+ %{Wno-poison-system-directories:--no-poison-system-directories} \ -+ %{Werror=poison-system-directories:--error-poison-system-directories} \ - %{static|no-pie|static-pie:} %{L*} %(mfwrap) %(link_libgcc) " \ - VTABLE_VERIFICATION_SPEC " " SANITIZER_EARLY_SPEC " %o " CHKP_SPEC " \ - %{fopenacc|fopenmp|%:gt(%{ftree-parallelize-loops=*:%*} 1):\ -diff --git a/gcc/incpath.c b/gcc/incpath.c -index b11c6a57939..9a457e02dd3 100644 ---- a/gcc/incpath.c -+++ b/gcc/incpath.c -@@ -26,6 +26,7 @@ - #include "intl.h" - #include "incpath.h" - #include "cppdefault.h" -+#include "diagnostic-core.h" - - /* Microsoft Windows does not natively support inodes. - VMS has non-numeric inodes. */ -@@ -393,6 +394,26 @@ merge_include_chains (const char *sysroot, cpp_reader *pfile, int verbose) - } - fprintf (stderr, _("End of search list.\n")); - } -+ -+#ifdef ENABLE_POISON_SYSTEM_DIRECTORIES -+ if (flag_poison_system_directories) -+ { -+ struct cpp_dir *p; -+ -+ for (p = heads[INC_QUOTE]; p; p = p->next) -+ { -+ if ((!strncmp (p->name, "/usr/include", 12)) -+ || (!strncmp (p->name, "/usr/local/include", 18)) -+ || (!strncmp (p->name, "/usr/X11R6/include", 18)) -+ || (!strncmp (p->name, "/sw/include", 11)) -+ || (!strncmp (p->name, "/opt/include", 12))) -+ warning (OPT_Wpoison_system_directories, -+ "include location \"%s\" is unsafe for " -+ "cross-compilation", -+ p->name); -+ } -+ } -+#endif - } - - /* Use given -I paths for #include "..." but not #include <...>, and --- -2.21.0 - diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-8.3/0003-gcc-4.3.3-SYSROOT_CFLAGS_FOR_TARGET.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-8.3/0003-gcc-4.3.3-SYSROOT_CFLAGS_FOR_TARGET.patch deleted file mode 100644 index e62deb2e..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-8.3/0003-gcc-4.3.3-SYSROOT_CFLAGS_FOR_TARGET.patch +++ /dev/null @@ -1,73 +0,0 @@ -From 6640d7e39b13d1ef26d249153ab15d510fda3566 Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Fri, 29 Mar 2013 09:08:31 +0400 -Subject: [PATCH 03/40] gcc-4.3.3: SYSROOT_CFLAGS_FOR_TARGET - -Before committing, I noticed that PR/32161 was marked as a dup of PR/32009, but my previous patch did not fix it. - -This alternative patch is better because it lets you just use CFLAGS_FOR_TARGET to set the compilation flags for libgcc. Since bootstrapped target libraries are never compiled with the native compiler, it makes little sense to use different flags for stage1 and later stages. And it also makes little sense to use a different variable than CFLAGS_FOR_TARGET. - -Other changes I had to do include: - -- moving the creation of default CFLAGS_FOR_TARGET from Makefile.am to configure.ac, because otherwise the BOOT_CFLAGS are substituted into CFLAGS_FOR_TARGET (which is "-O2 -g $(CFLAGS)") via $(CFLAGS). It is also cleaner this way though. - -- passing the right CFLAGS to configure scripts as exported environment variables - -I also stopped passing LIBCFLAGS to configure scripts since they are unused in the whole src tree. And I updated the documentation as H-P reminded me to do. - -Bootstrapped/regtested i686-pc-linux-gnu, will commit to 4.4 shortly. Ok for 4.3? - -Signed-off-by: Paolo Bonzini -Signed-off-by: Khem Raj - -Upstream-Status: Pending ---- - configure | 32 ++++++++++++++++++++++++++++++++ - 1 file changed, 32 insertions(+) - -diff --git a/configure b/configure -index 8c5b1e9d561..2d1fc6b94d9 100755 ---- a/configure -+++ b/configure -@@ -6768,6 +6768,38 @@ fi - - - -+# During gcc bootstrap, if we use some random cc for stage1 then CFLAGS -+# might be empty or "-g". We don't require a C++ compiler, so CXXFLAGS -+# might also be empty (or "-g", if a non-GCC C++ compiler is in the path). -+# We want to ensure that TARGET libraries (which we know are built with -+# gcc) are built with "-O2 -g", so include those options when setting -+# CFLAGS_FOR_TARGET and CXXFLAGS_FOR_TARGET. -+if test "x$CFLAGS_FOR_TARGET" = x; then -+ CFLAGS_FOR_TARGET=$CFLAGS -+ case " $CFLAGS " in -+ *" -O2 "*) ;; -+ *) CFLAGS_FOR_TARGET="-O2 $CFLAGS" ;; -+ esac -+ case " $CFLAGS " in -+ *" -g "* | *" -g3 "*) ;; -+ *) CFLAGS_FOR_TARGET="-g $CFLAGS" ;; -+ esac -+fi -+ -+ -+if test "x$CXXFLAGS_FOR_TARGET" = x; then -+ CXXFLAGS_FOR_TARGET=$CXXFLAGS -+ case " $CXXFLAGS " in -+ *" -O2 "*) ;; -+ *) CXXFLAGS_FOR_TARGET="-O2 $CXXFLAGS" ;; -+ esac -+ case " $CXXFLAGS " in -+ *" -g "* | *" -g3 "*) ;; -+ *) CXXFLAGS_FOR_TARGET="-g $CXXFLAGS" ;; -+ esac -+fi -+ -+ - # Handle --with-headers=XXX. If the value is not "yes", the contents of - # the named directory are copied to $(tooldir)/sys-include. - if test x"${with_headers}" != x && test x"${with_headers}" != xno ; then --- -2.21.0 - diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-8.3/0004-64-bit-multilib-hack.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-8.3/0004-64-bit-multilib-hack.patch deleted file mode 100644 index 371d8775..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-8.3/0004-64-bit-multilib-hack.patch +++ /dev/null @@ -1,85 +0,0 @@ -From 1e649d81ca662c4cdf73882ebb8a11f0f19f5baf Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Fri, 29 Mar 2013 09:10:06 +0400 -Subject: [PATCH 04/40] 64-bit multilib hack. - -GCC has internal multilib handling code but it assumes a very specific rigid directory -layout. The build system implementation of multilib layout is very generic and allows -complete customisation of the library directories. - -This patch is a partial solution to allow any custom directories to be passed into gcc -and handled correctly. It forces gcc to use the base_libdir (which is the current -directory, "."). We need to do this for each multilib that is configured as we don't -know which compiler options may be being passed into the compiler. Since we have a compiler -per mulitlib at this point that isn't an issue. - -The one problem is the target compiler is only going to work for the default multlilib at -this point. Ideally we'd figure out which multilibs were being enabled with which paths -and be able to patch these entries with a complete set of correct paths but this we -don't have such code at this point. This is something the target gcc recipe should do -and override these platform defaults in its build config. - -RP 15/8/11 - -Signed-off-by: Khem Raj -Signed-off-by: Elvis Dowson - -Upstream-Status: Pending ---- - gcc/config/i386/t-linux64 | 6 ++---- - gcc/config/mips/t-linux64 | 10 +++------- - gcc/config/rs6000/t-linux64 | 5 ++--- - 3 files changed, 7 insertions(+), 14 deletions(-) - -diff --git a/gcc/config/i386/t-linux64 b/gcc/config/i386/t-linux64 -index 8ea0faff369..266c6008004 100644 ---- a/gcc/config/i386/t-linux64 -+++ b/gcc/config/i386/t-linux64 -@@ -32,7 +32,5 @@ - # - comma=, - MULTILIB_OPTIONS = $(subst $(comma),/,$(TM_MULTILIB_CONFIG)) --MULTILIB_DIRNAMES = $(patsubst m%, %, $(subst /, ,$(MULTILIB_OPTIONS))) --MULTILIB_OSDIRNAMES = m64=../lib64$(call if_multiarch,:x86_64-linux-gnu) --MULTILIB_OSDIRNAMES+= m32=$(if $(wildcard $(shell echo $(SYSTEM_HEADER_DIR))/../../usr/lib32),../lib32,../lib)$(call if_multiarch,:i386-linux-gnu) --MULTILIB_OSDIRNAMES+= mx32=../libx32$(call if_multiarch,:x86_64-linux-gnux32) -+MULTILIB_DIRNAMES = . . -+MULTILIB_OSDIRNAMES = ../$(shell basename $(base_libdir)) ../$(shell basename $(base_libdir)) -diff --git a/gcc/config/mips/t-linux64 b/gcc/config/mips/t-linux64 -index c017b7d04c5..126892cf40b 100644 ---- a/gcc/config/mips/t-linux64 -+++ b/gcc/config/mips/t-linux64 -@@ -17,10 +17,6 @@ - # . - - MULTILIB_OPTIONS = mabi=n32/mabi=32/mabi=64 --MULTILIB_DIRNAMES = n32 32 64 --MIPS_EL = $(if $(filter %el, $(firstword $(subst -, ,$(target)))),el) --MIPS_SOFT = $(if $(strip $(filter MASK_SOFT_FLOAT_ABI, $(target_cpu_default)) $(filter soft, $(with_float))),soft) --MULTILIB_OSDIRNAMES = \ -- ../lib32$(call if_multiarch,:mips64$(MIPS_EL)-linux-gnuabin32$(MIPS_SOFT)) \ -- ../lib$(call if_multiarch,:mips$(MIPS_EL)-linux-gnu$(MIPS_SOFT)) \ -- ../lib64$(call if_multiarch,:mips64$(MIPS_EL)-linux-gnuabi64$(MIPS_SOFT)) -+MULTILIB_DIRNAMES = . . . -+MULTILIB_OSDIRNAMES = ../$(shell basename $(base_libdir)) ../$(shell basename $(base_libdir)) ../$(shell basename $(base_libdir)) -+ -diff --git a/gcc/config/rs6000/t-linux64 b/gcc/config/rs6000/t-linux64 -index 0faa2a02df4..13fd8ca971e 100644 ---- a/gcc/config/rs6000/t-linux64 -+++ b/gcc/config/rs6000/t-linux64 -@@ -26,10 +26,9 @@ - # MULTILIB_OSDIRNAMES according to what is found on the target. - - MULTILIB_OPTIONS := m64/m32 --MULTILIB_DIRNAMES := 64 32 -+MULTILIB_DIRNAMES := . . - MULTILIB_EXTRA_OPTS := --MULTILIB_OSDIRNAMES := m64=../lib64$(call if_multiarch,:powerpc64-linux-gnu) --MULTILIB_OSDIRNAMES += m32=$(if $(wildcard $(shell echo $(SYSTEM_HEADER_DIR))/../../usr/lib32),../lib32,../lib)$(call if_multiarch,:powerpc-linux-gnu) -+MULTILIB_OSDIRNAMES := ../$(shell basename $(base_libdir)) ../$(shell basename $(base_libdir)) - - rs6000-linux.o: $(srcdir)/config/rs6000/rs6000-linux.c - $(COMPILE) $< --- -2.21.0 - diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-8.3/0005-optional-libstdc.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-8.3/0005-optional-libstdc.patch deleted file mode 100644 index f9cf6c20..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-8.3/0005-optional-libstdc.patch +++ /dev/null @@ -1,125 +0,0 @@ -From b486380dcc4758e856ab6d847eb358d05bd79d64 Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Fri, 29 Mar 2013 09:12:56 +0400 -Subject: [PATCH 05/40] optional libstdc - -gcc-runtime builds libstdc++ separately from gcc-cross-*. Its configure tests using g++ -will not run correctly since by default the linker will try to link against libstdc++ -which shouldn't exist yet. We need an option to disable -lstdc++ -option whilst leaving -lc, -lgcc and other automatic library dependencies added by gcc -driver. This patch adds such an option which only disables the -lstdc++. - -A "standard" gcc build uses xgcc and hence avoids this. We should ask upstream how to -do this officially, the likely answer is don't build libstdc++ separately. - -RP 29/6/10 - -Signed-off-by: Khem Raj - -Upstream-Status: Inappropriate [embedded specific] ---- - gcc/c-family/c.opt | 4 ++++ - gcc/cp/g++spec.c | 1 + - gcc/doc/invoke.texi | 32 +++++++++++++++++++++++++++++++- - gcc/gcc.c | 1 + - 4 files changed, 37 insertions(+), 1 deletion(-) - -diff --git a/gcc/c-family/c.opt b/gcc/c-family/c.opt -index f591b39be5a..2955fcea867 100644 ---- a/gcc/c-family/c.opt -+++ b/gcc/c-family/c.opt -@@ -1901,6 +1901,10 @@ nostdinc++ - C++ ObjC++ - Do not search standard system include directories for C++. - -+nostdlib++ -+Driver -+Do not link standard C++ runtime library -+ - o - C ObjC C++ ObjC++ Joined Separate - ; Documented in common.opt -diff --git a/gcc/cp/g++spec.c b/gcc/cp/g++spec.c -index 443a1746da3..e9b51be62ef 100644 ---- a/gcc/cp/g++spec.c -+++ b/gcc/cp/g++spec.c -@@ -137,6 +137,7 @@ lang_specific_driver (struct cl_decoded_option **in_decoded_options, - switch (decoded_options[i].opt_index) - { - case OPT_nostdlib: -+ case OPT_nostdlib__: - case OPT_nodefaultlibs: - library = -1; - break; -diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi -index fb228631a42..310ba8109ed 100644 ---- a/gcc/doc/invoke.texi -+++ b/gcc/doc/invoke.texi -@@ -212,6 +212,9 @@ in the following sections. - -fno-weak -nostdinc++ @gol - -fvisibility-inlines-hidden @gol - -fvisibility-ms-compat @gol -+-fvtable-verify=@r{[}std@r{|}preinit@r{|}none@r{]} @gol -+-fvtv-counts -fvtv-debug @gol -+-nostdlib++ @gol - -fext-numeric-literals @gol - -Wabi=@var{n} -Wabi-tag -Wconversion-null -Wctor-dtor-privacy @gol - -Wdelete-non-virtual-dtor -Wliteral-suffix -Wmultiple-inheritance @gol -@@ -510,7 +513,7 @@ Objective-C and Objective-C++ Dialects}. - -s -static -static-pie -static-libgcc -static-libstdc++ @gol - -static-libasan -static-libtsan -static-liblsan -static-libubsan @gol - -static-libmpx -static-libmpxwrappers @gol ---shared -shared-libgcc -symbolic @gol -+-shared -shared-libgcc -symbolic -nostdlib++ @gol - -T @var{script} -Wl,@var{option} -Xlinker @var{option} @gol - -u @var{symbol} -z @var{keyword}} - -@@ -12359,6 +12362,33 @@ library subroutines. - constructors are called; @pxref{Collect2,,@code{collect2}, gccint, - GNU Compiler Collection (GCC) Internals}.) - -+@item -nostdlib++ -+@opindex nostdlib++ -+Do not use the standard system C++ runtime libraries when linking. -+Only the libraries you specify will be passed to the linker. -+ -+@cindex @option{-lgcc}, use with @option{-nostdlib} -+@cindex @option{-nostdlib} and unresolved references -+@cindex unresolved references and @option{-nostdlib} -+@cindex @option{-lgcc}, use with @option{-nodefaultlibs} -+@cindex @option{-nodefaultlibs} and unresolved references -+@cindex unresolved references and @option{-nodefaultlibs} -+One of the standard libraries bypassed by @option{-nostdlib} and -+@option{-nodefaultlibs} is @file{libgcc.a}, a library of internal subroutines -+which GCC uses to overcome shortcomings of particular machines, or special -+needs for some languages. -+(@xref{Interface,,Interfacing to GCC Output,gccint,GNU Compiler -+Collection (GCC) Internals}, -+for more discussion of @file{libgcc.a}.) -+In most cases, you need @file{libgcc.a} even when you want to avoid -+other standard libraries. In other words, when you specify @option{-nostdlib} -+or @option{-nodefaultlibs} you should usually specify @option{-lgcc} as well. -+This ensures that you have no unresolved references to internal GCC -+library subroutines. -+(An example of such an internal subroutine is @code{__main}, used to ensure C++ -+constructors are called; @pxref{Collect2,,@code{collect2}, gccint, -+GNU Compiler Collection (GCC) Internals}.) -+ - @item -pie - @opindex pie - Produce a dynamically linked position independent executable on targets -diff --git a/gcc/gcc.c b/gcc/gcc.c -index 02b3cd39fc2..8cd27a5dad5 100644 ---- a/gcc/gcc.c -+++ b/gcc/gcc.c -@@ -1047,6 +1047,7 @@ proper position among the other output files. */ - %(mflib) " STACK_SPLIT_SPEC "\ - %{fprofile-arcs|fprofile-generate*|coverage:-lgcov} " SANITIZER_SPEC " \ - %{!nostdlib:%{!nodefaultlibs:%(link_ssp) %(link_gcc_c_sequence)}}\ -+ %{!nostdlib++:}\ - %{!nostdlib:%{!nostartfiles:%E}} %{T*} \n%(post_link) }}}}}}" - #endif - --- -2.21.0 - diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-8.3/0007-COLLECT_GCC_OPTIONS.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-8.3/0007-COLLECT_GCC_OPTIONS.patch deleted file mode 100644 index 8c7e72e1..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-8.3/0007-COLLECT_GCC_OPTIONS.patch +++ /dev/null @@ -1,38 +0,0 @@ -From 209e46f45382088caab54425b92b5dfc43ebb4fc Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Fri, 29 Mar 2013 09:16:28 +0400 -Subject: [PATCH 07/40] COLLECT_GCC_OPTIONS - -This patch adds --sysroot into COLLECT_GCC_OPTIONS which is used to -invoke collect2. - -Signed-off-by: Khem Raj - -Upstream-Status: Pending ---- - gcc/gcc.c | 9 +++++++++ - 1 file changed, 9 insertions(+) - -diff --git a/gcc/gcc.c b/gcc/gcc.c -index 8cd27a5dad5..d355d65583a 100644 ---- a/gcc/gcc.c -+++ b/gcc/gcc.c -@@ -4677,6 +4677,15 @@ set_collect_gcc_options (void) - sizeof ("COLLECT_GCC_OPTIONS=") - 1); - - first_time = TRUE; -+#ifdef HAVE_LD_SYSROOT -+ if (target_system_root_changed && target_system_root) -+ { -+ obstack_grow (&collect_obstack, "'--sysroot=", sizeof("'--sysroot=")-1); -+ obstack_grow (&collect_obstack, target_system_root,strlen(target_system_root)); -+ obstack_grow (&collect_obstack, "'", 1); -+ first_time = FALSE; -+ } -+#endif - for (i = 0; (int) i < n_switches; i++) - { - const char *const *args; --- -2.21.0 - diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-8.3/0008-Use-the-defaults.h-in-B-instead-of-S-and-t-oe-in-B.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-8.3/0008-Use-the-defaults.h-in-B-instead-of-S-and-t-oe-in-B.patch deleted file mode 100644 index f9632afe..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-8.3/0008-Use-the-defaults.h-in-B-instead-of-S-and-t-oe-in-B.patch +++ /dev/null @@ -1,96 +0,0 @@ -From 3bcbdf5ade54a72820ad7798119d0bbad4baf6ec Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Fri, 29 Mar 2013 09:17:25 +0400 -Subject: [PATCH 08/40] Use the defaults.h in ${B} instead of ${S}, and t-oe in - ${B} - -Use the defaults.h in ${B} instead of ${S}, and t-oe in ${B}, so that -the source can be shared between gcc-cross-initial, -gcc-cross-intermediate, gcc-cross, gcc-runtime, and also the sdk build. - -Signed-off-by: Khem Raj - -Upstream-Status: Pending - -While compiling gcc-crosssdk-initial-x86_64 on some host, there is -occasionally failure that test the existance of default.h doesn't -work, the reason is tm_include_list='** defaults.h' rather than -tm_include_list='** ./defaults.h' - -So we add the test condition for this situation. -Signed-off-by: Hongxu Jia ---- - gcc/Makefile.in | 2 +- - gcc/configure | 4 ++-- - gcc/configure.ac | 4 ++-- - gcc/mkconfig.sh | 4 ++-- - 4 files changed, 7 insertions(+), 7 deletions(-) - -diff --git a/gcc/Makefile.in b/gcc/Makefile.in -index 20bee0494b1..1367136bfac 100644 ---- a/gcc/Makefile.in -+++ b/gcc/Makefile.in -@@ -538,7 +538,7 @@ TARGET_SYSTEM_ROOT = @TARGET_SYSTEM_ROOT@ - TARGET_SYSTEM_ROOT_DEFINE = @TARGET_SYSTEM_ROOT_DEFINE@ - - xmake_file=@xmake_file@ --tmake_file=@tmake_file@ -+tmake_file=@tmake_file@ ./t-oe - TM_ENDIAN_CONFIG=@TM_ENDIAN_CONFIG@ - TM_MULTILIB_CONFIG=@TM_MULTILIB_CONFIG@ - TM_MULTILIB_EXCEPTIONS_CONFIG=@TM_MULTILIB_EXCEPTIONS_CONFIG@ -diff --git a/gcc/configure b/gcc/configure -index 0c9b8ac5f55..134c2c2f156 100755 ---- a/gcc/configure -+++ b/gcc/configure -@@ -12158,8 +12158,8 @@ for f in $tm_file; do - tm_include_list="${tm_include_list} $f" - ;; - defaults.h ) -- tm_file_list="${tm_file_list} \$(srcdir)/$f" -- tm_include_list="${tm_include_list} $f" -+ tm_file_list="${tm_file_list} ./$f" -+ tm_include_list="${tm_include_list} ./$f" - ;; - * ) - tm_file_list="${tm_file_list} \$(srcdir)/config/$f" -diff --git a/gcc/configure.ac b/gcc/configure.ac -index 53840363115..0c3c82e4ff7 100644 ---- a/gcc/configure.ac -+++ b/gcc/configure.ac -@@ -1922,8 +1922,8 @@ for f in $tm_file; do - tm_include_list="${tm_include_list} $f" - ;; - defaults.h ) -- tm_file_list="${tm_file_list} \$(srcdir)/$f" -- tm_include_list="${tm_include_list} $f" -+ tm_file_list="${tm_file_list} ./$f" -+ tm_include_list="${tm_include_list} ./$f" - ;; - * ) - tm_file_list="${tm_file_list} \$(srcdir)/config/$f" -diff --git a/gcc/mkconfig.sh b/gcc/mkconfig.sh -index 0f75c863c0b..68d8d6613cf 100644 ---- a/gcc/mkconfig.sh -+++ b/gcc/mkconfig.sh -@@ -77,7 +77,7 @@ if [ -n "$HEADERS" ]; then - if [ $# -ge 1 ]; then - echo '#ifdef IN_GCC' >> ${output}T - for file in "$@"; do -- if test x"$file" = x"defaults.h"; then -+ if test x"$file" = x"./defaults.h" -o x"$file" = x"defaults.h"; then - postpone_defaults_h="yes" - else - echo "# include \"$file\"" >> ${output}T -@@ -106,7 +106,7 @@ esac - - # If we postponed including defaults.h, add the #include now. - if test x"$postpone_defaults_h" = x"yes"; then -- echo "# include \"defaults.h\"" >> ${output}T -+ echo "# include \"./defaults.h\"" >> ${output}T - fi - - # Add multiple inclusion protection guard, part two. --- -2.21.0 - diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-8.3/0009-fortran-cross-compile-hack.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-8.3/0009-fortran-cross-compile-hack.patch deleted file mode 100644 index 50d895bf..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-8.3/0009-fortran-cross-compile-hack.patch +++ /dev/null @@ -1,46 +0,0 @@ -From e654573352d28f160f379ee77e4067cf108714d0 Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Fri, 29 Mar 2013 09:20:01 +0400 -Subject: [PATCH 09/40] fortran cross-compile hack. - -* Fortran would have searched for arm-angstrom-gnueabi-gfortran but would have used -used gfortan. For gcc_4.2.2.bb we want to use the gfortran compiler from our cross -directory. - -Signed-off-by: Khem Raj - -Upstream-Status: Inappropriate [embedded specific] ---- - libgfortran/configure | 2 +- - libgfortran/configure.ac | 2 +- - 2 files changed, 2 insertions(+), 2 deletions(-) - -diff --git a/libgfortran/configure b/libgfortran/configure -index 91fce8fecd0..6747f86eb98 100755 ---- a/libgfortran/configure -+++ b/libgfortran/configure -@@ -12883,7 +12883,7 @@ esac - - # We need gfortran to compile parts of the library - #AC_PROG_FC(gfortran) --FC="$GFORTRAN" -+#FC="$GFORTRAN" - ac_ext=${ac_fc_srcext-f} - ac_compile='$FC -c $FCFLAGS $ac_fcflags_srcext conftest.$ac_ext >&5' - ac_link='$FC -o conftest$ac_exeext $FCFLAGS $LDFLAGS $ac_fcflags_srcext conftest.$ac_ext $LIBS >&5' -diff --git a/libgfortran/configure.ac b/libgfortran/configure.ac -index bf6d3634dda..9dbe43cc616 100644 ---- a/libgfortran/configure.ac -+++ b/libgfortran/configure.ac -@@ -250,7 +250,7 @@ AC_SUBST(enable_static) - - # We need gfortran to compile parts of the library - #AC_PROG_FC(gfortran) --FC="$GFORTRAN" -+#FC="$GFORTRAN" - AC_PROG_FC(gfortran) - - # extra LD Flags which are required for targets --- -2.21.0 - diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-8.3/0010-cpp-honor-sysroot.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-8.3/0010-cpp-honor-sysroot.patch deleted file mode 100644 index 037eacf4..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-8.3/0010-cpp-honor-sysroot.patch +++ /dev/null @@ -1,54 +0,0 @@ -From 2ae7af4eb70eff6aeda1fe96333ff50cfaa9d906 Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Fri, 29 Mar 2013 09:22:00 +0400 -Subject: [PATCH 10/40] cpp: honor sysroot. - -Currently, if the gcc toolchain is relocated and installed from sstate, then you try and compile -preprocessed source (.i or .ii files), the compiler will try and access the builtin sysroot location -rather than the --sysroot option specified on the commandline. If access to that directory is -permission denied (unreadable), gcc will error. - -This happens when ccache is in use due to the fact it uses preprocessed source files. - -The fix below adds %I to the cpp-output spec macro so the default substitutions for -iprefix, --isystem, -isysroot happen and the correct sysroot is used. - -[YOCTO #2074] - -RP 2012/04/13 - -Signed-off-by: Khem Raj - -Upstream-Status: Pending ---- - gcc/cp/lang-specs.h | 2 +- - gcc/gcc.c | 2 +- - 2 files changed, 2 insertions(+), 2 deletions(-) - -diff --git a/gcc/cp/lang-specs.h b/gcc/cp/lang-specs.h -index f0802b8915c..f324d299849 100644 ---- a/gcc/cp/lang-specs.h -+++ b/gcc/cp/lang-specs.h -@@ -64,5 +64,5 @@ along with GCC; see the file COPYING3. If not see - {".ii", "@c++-cpp-output", 0, 0, 0}, - {"@c++-cpp-output", - "%{!M:%{!MM:%{!E:\ -- cc1plus -fpreprocessed %i %(cc1_options) %2\ -+ cc1plus -fpreprocessed %i %I %(cc1_options) %2\ - %{!fsyntax-only:%(invoke_as)}}}}", 0, 0, 0}, -diff --git a/gcc/gcc.c b/gcc/gcc.c -index d355d65583a..570cdc00034 100644 ---- a/gcc/gcc.c -+++ b/gcc/gcc.c -@@ -1343,7 +1343,7 @@ static const struct compiler default_compilers[] = - %W{o*:--output-pch=%*}}%V}}}}}}}", 0, 0, 0}, - {".i", "@cpp-output", 0, 0, 0}, - {"@cpp-output", -- "%{!M:%{!MM:%{!E:cc1 -fpreprocessed %i %(cc1_options) %{!fsyntax-only:%(invoke_as)}}}}", 0, 0, 0}, -+ "%{!M:%{!MM:%{!E:cc1 -fpreprocessed %i %I %(cc1_options) %{!fsyntax-only:%(invoke_as)}}}}", 0, 0, 0}, - {".s", "@assembler", 0, 0, 0}, - {"@assembler", - "%{!M:%{!MM:%{!E:%{!S:as %(asm_debug) %(asm_options) %i %A }}}}", 0, 0, 0}, --- -2.21.0 - diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-8.3/0011-MIPS64-Default-to-N64-ABI.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-8.3/0011-MIPS64-Default-to-N64-ABI.patch deleted file mode 100644 index c863cff9..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-8.3/0011-MIPS64-Default-to-N64-ABI.patch +++ /dev/null @@ -1,57 +0,0 @@ -From 1e1ea0eb55a594ac4cd7b838f74dec7405aae02b Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Fri, 29 Mar 2013 09:23:08 +0400 -Subject: [PATCH 11/40] MIPS64: Default to N64 ABI - -MIPS64 defaults to n32 ABI, this patch makes it -so that it defaults to N64 ABI - -Signed-off-by: Khem Raj - -Upstream-Status: Inappropriate [OE config specific] ---- - gcc/config.gcc | 10 +++++----- - 1 file changed, 5 insertions(+), 5 deletions(-) - -diff --git a/gcc/config.gcc b/gcc/config.gcc -index 7af8e028104..fc7c91246ed 100644 ---- a/gcc/config.gcc -+++ b/gcc/config.gcc -@@ -2143,29 +2143,29 @@ mips*-*-linux*) # Linux MIPS, either endian. - default_mips_arch=mips32 - ;; - mips64el-st-linux-gnu) -- default_mips_abi=n32 -+ default_mips_abi=64 - tm_file="${tm_file} mips/st.h" - tmake_file="${tmake_file} mips/t-st" - enable_mips_multilibs="yes" - ;; - mips64octeon*-*-linux*) -- default_mips_abi=n32 -+ default_mips_abi=64 - tm_defines="${tm_defines} MIPS_CPU_STRING_DEFAULT=\\\"octeon\\\"" - target_cpu_default=MASK_SOFT_FLOAT_ABI - enable_mips_multilibs="yes" - ;; - mipsisa64r6*-*-linux*) -- default_mips_abi=n32 -+ default_mips_abi=64 - default_mips_arch=mips64r6 - enable_mips_multilibs="yes" - ;; - mipsisa64r2*-*-linux*) -- default_mips_abi=n32 -+ default_mips_abi=64 - default_mips_arch=mips64r2 - enable_mips_multilibs="yes" - ;; - mips64*-*-linux* | mipsisa64*-*-linux*) -- default_mips_abi=n32 -+ default_mips_abi=64 - enable_mips_multilibs="yes" - ;; - esac --- -2.21.0 - diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-8.3/0012-Define-GLIBC_DYNAMIC_LINKER-and-UCLIBC_DYNAMIC_LINKE.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-8.3/0012-Define-GLIBC_DYNAMIC_LINKER-and-UCLIBC_DYNAMIC_LINKE.patch deleted file mode 100644 index d3be10f2..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-8.3/0012-Define-GLIBC_DYNAMIC_LINKER-and-UCLIBC_DYNAMIC_LINKE.patch +++ /dev/null @@ -1,248 +0,0 @@ -From 6f8649936df3677109b8396f563c716ae8b237fe Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Fri, 29 Mar 2013 09:24:50 +0400 -Subject: [PATCH 12/40] Define GLIBC_DYNAMIC_LINKER and UCLIBC_DYNAMIC_LINKER - relative to SYSTEMLIBS_DIR - -This patch defines GLIBC_DYNAMIC_LINKER and UCLIBC_DYNAMIC_LINKER -relative to SYSTEMLIBS_DIR which can be set in generated headers -This breaks the assumption of hardcoded multilib in gcc -Change is only for the supported architectures in OE including -SH, sparc, alpha for possible future support (if any) - -Removes the do_headerfix task in metadata - -Signed-off-by: Khem Raj - -Upstream-Status: Inappropriate [OE configuration] ---- - gcc/config/alpha/linux-elf.h | 4 ++-- - gcc/config/arm/linux-eabi.h | 4 ++-- - gcc/config/arm/linux-elf.h | 2 +- - gcc/config/i386/linux.h | 2 +- - gcc/config/i386/linux64.h | 6 +++--- - gcc/config/linux.h | 8 ++++---- - gcc/config/mips/linux.h | 12 ++++++------ - gcc/config/riscv/linux.h | 2 +- - gcc/config/rs6000/linux64.h | 16 ++++++---------- - gcc/config/sh/linux.h | 2 +- - gcc/config/sparc/linux.h | 2 +- - gcc/config/sparc/linux64.h | 4 ++-- - 12 files changed, 30 insertions(+), 34 deletions(-) - -diff --git a/gcc/config/alpha/linux-elf.h b/gcc/config/alpha/linux-elf.h -index 36b74dc1993..02373578af8 100644 ---- a/gcc/config/alpha/linux-elf.h -+++ b/gcc/config/alpha/linux-elf.h -@@ -23,8 +23,8 @@ along with GCC; see the file COPYING3. If not see - #define EXTRA_SPECS \ - { "elf_dynamic_linker", ELF_DYNAMIC_LINKER }, - --#define GLIBC_DYNAMIC_LINKER "/lib/ld-linux.so.2" --#define UCLIBC_DYNAMIC_LINKER "/lib/ld-uClibc.so.0" -+#define GLIBC_DYNAMIC_LINKER SYSTEMLIBS_DIR "ld-linux.so.2" -+#define UCLIBC_DYNAMIC_LINKER SYSTEMLIBS_DIR "ld-uClibc.so.0" - #if DEFAULT_LIBC == LIBC_UCLIBC - #define CHOOSE_DYNAMIC_LINKER(G, U) "%{mglibc:" G ";:" U "}" - #elif DEFAULT_LIBC == LIBC_GLIBC -diff --git a/gcc/config/arm/linux-eabi.h b/gcc/config/arm/linux-eabi.h -index 8585fde3d41..b3af68cac57 100644 ---- a/gcc/config/arm/linux-eabi.h -+++ b/gcc/config/arm/linux-eabi.h -@@ -62,8 +62,8 @@ - GLIBC_DYNAMIC_LINKER_DEFAULT and TARGET_DEFAULT_FLOAT_ABI. */ - - #undef GLIBC_DYNAMIC_LINKER --#define GLIBC_DYNAMIC_LINKER_SOFT_FLOAT "/lib/ld-linux.so.3" --#define GLIBC_DYNAMIC_LINKER_HARD_FLOAT "/lib/ld-linux-armhf.so.3" -+#define GLIBC_DYNAMIC_LINKER_SOFT_FLOAT SYSTEMLIBS_DIR "ld-linux.so.3" -+#define GLIBC_DYNAMIC_LINKER_HARD_FLOAT SYSTEMLIBS_DIR "ld-linux-armhf.so.3" - #define GLIBC_DYNAMIC_LINKER_DEFAULT GLIBC_DYNAMIC_LINKER_SOFT_FLOAT - - #define GLIBC_DYNAMIC_LINKER \ -diff --git a/gcc/config/arm/linux-elf.h b/gcc/config/arm/linux-elf.h -index cfcd9cb1a5c..a798e987ecb 100644 ---- a/gcc/config/arm/linux-elf.h -+++ b/gcc/config/arm/linux-elf.h -@@ -60,7 +60,7 @@ - - #define LIBGCC_SPEC "%{mfloat-abi=soft*:-lfloat} -lgcc" - --#define GLIBC_DYNAMIC_LINKER "/lib/ld-linux.so.2" -+#define GLIBC_DYNAMIC_LINKER SYSTEMLIBS_DIR "ld-linux.so.2" - - #define LINUX_TARGET_LINK_SPEC "%{h*} \ - %{static:-Bstatic} \ -diff --git a/gcc/config/i386/linux.h b/gcc/config/i386/linux.h -index 69f97f15b0d..71bc31d9231 100644 ---- a/gcc/config/i386/linux.h -+++ b/gcc/config/i386/linux.h -@@ -20,7 +20,7 @@ along with GCC; see the file COPYING3. If not see - . */ - - #define GNU_USER_LINK_EMULATION "elf_i386" --#define GLIBC_DYNAMIC_LINKER "/lib/ld-linux.so.2" -+#define GLIBC_DYNAMIC_LINKER SYSTEMLIBS_DIR "ld-linux.so.2" - - #undef MUSL_DYNAMIC_LINKER - #define MUSL_DYNAMIC_LINKER "/lib/ld-musl-i386.so.1" -diff --git a/gcc/config/i386/linux64.h b/gcc/config/i386/linux64.h -index f2d913e30ac..8725f33d8a5 100644 ---- a/gcc/config/i386/linux64.h -+++ b/gcc/config/i386/linux64.h -@@ -27,9 +27,9 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see - #define GNU_USER_LINK_EMULATION64 "elf_x86_64" - #define GNU_USER_LINK_EMULATIONX32 "elf32_x86_64" - --#define GLIBC_DYNAMIC_LINKER32 "/lib/ld-linux.so.2" --#define GLIBC_DYNAMIC_LINKER64 "/lib64/ld-linux-x86-64.so.2" --#define GLIBC_DYNAMIC_LINKERX32 "/libx32/ld-linux-x32.so.2" -+#define GLIBC_DYNAMIC_LINKER32 SYSTEMLIBS_DIR "ld-linux.so.2" -+#define GLIBC_DYNAMIC_LINKER64 SYSTEMLIBS_DIR "ld-linux-x86-64.so.2" -+#define GLIBC_DYNAMIC_LINKERX32 SYSTEMLIBS_DIR "ld-linux-x32.so.2" - - #undef MUSL_DYNAMIC_LINKER32 - #define MUSL_DYNAMIC_LINKER32 "/lib/ld-musl-i386.so.1" -diff --git a/gcc/config/linux.h b/gcc/config/linux.h -index 2ea4ff92c1d..487b0c0923b 100644 ---- a/gcc/config/linux.h -+++ b/gcc/config/linux.h -@@ -81,10 +81,10 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see - GLIBC_DYNAMIC_LINKER must be defined for each target using them, or - GLIBC_DYNAMIC_LINKER32 and GLIBC_DYNAMIC_LINKER64 for targets - supporting both 32-bit and 64-bit compilation. */ --#define UCLIBC_DYNAMIC_LINKER "/lib/ld-uClibc.so.0" --#define UCLIBC_DYNAMIC_LINKER32 "/lib/ld-uClibc.so.0" --#define UCLIBC_DYNAMIC_LINKER64 "/lib/ld64-uClibc.so.0" --#define UCLIBC_DYNAMIC_LINKERX32 "/lib/ldx32-uClibc.so.0" -+#define UCLIBC_DYNAMIC_LINKER SYSTEMLIBS_DIR "ld-uClibc.so.0" -+#define UCLIBC_DYNAMIC_LINKER32 SYSTEMLIBS_DIR "ld-uClibc.so.0" -+#define UCLIBC_DYNAMIC_LINKER64 SYSTEMLIBS_DIR "ld64-uClibc.so.0" -+#define UCLIBC_DYNAMIC_LINKERX32 SYSTEMLIBS_DIR "ldx32-uClibc.so.0" - #define BIONIC_DYNAMIC_LINKER "/system/bin/linker" - #define BIONIC_DYNAMIC_LINKER32 "/system/bin/linker" - #define BIONIC_DYNAMIC_LINKER64 "/system/bin/linker64" -diff --git a/gcc/config/mips/linux.h b/gcc/config/mips/linux.h -index 2dfd0c18b90..12057c51b5e 100644 ---- a/gcc/config/mips/linux.h -+++ b/gcc/config/mips/linux.h -@@ -22,20 +22,20 @@ along with GCC; see the file COPYING3. If not see - #define GNU_USER_LINK_EMULATIONN32 "elf32%{EB:b}%{EL:l}tsmipn32" - - #define GLIBC_DYNAMIC_LINKER32 \ -- "%{mnan=2008:/lib/ld-linux-mipsn8.so.1;:/lib/ld.so.1}" -+ "%{mnan=2008:" SYSTEMLIBS_DIR "ld-linux-mipsn8.so.1;:" SYSTEMLIBS_DIR "ld.so.1}" - #define GLIBC_DYNAMIC_LINKER64 \ -- "%{mnan=2008:/lib64/ld-linux-mipsn8.so.1;:/lib64/ld.so.1}" -+ "%{mnan=2008:" SYSTEMLIBS_DIR "ld-linux-mipsn8.so.1;:" SYSTEMLIBS_DIR "ld.so.1}" - #define GLIBC_DYNAMIC_LINKERN32 \ -- "%{mnan=2008:/lib32/ld-linux-mipsn8.so.1;:/lib32/ld.so.1}" -+ "%{mnan=2008:" SYSTEMLIBS_DIR "ld-linux-mipsn8.so.1;:" SYSTEMLIBS_DIR "ld.so.1}" - - #undef UCLIBC_DYNAMIC_LINKER32 - #define UCLIBC_DYNAMIC_LINKER32 \ -- "%{mnan=2008:/lib/ld-uClibc-mipsn8.so.0;:/lib/ld-uClibc.so.0}" -+ "%{mnan=2008:" SYSTEMLIBS_DIR "ld-uClibc-mipsn8.so.0;:" SYSTEMLIBS_DIR "ld-uClibc.so.0}" - #undef UCLIBC_DYNAMIC_LINKER64 - #define UCLIBC_DYNAMIC_LINKER64 \ -- "%{mnan=2008:/lib/ld64-uClibc-mipsn8.so.0;:/lib/ld64-uClibc.so.0}" -+ "%{mnan=2008:" SYSTEMLIBS_DIR "ld64-uClibc-mipsn8.so.0;:" SYSTEMLIBS_DIR "ld64-uClibc.so.0}" - #define UCLIBC_DYNAMIC_LINKERN32 \ -- "%{mnan=2008:/lib32/ld-uClibc-mipsn8.so.0;:/lib32/ld-uClibc.so.0}" -+ "%{mnan=2008:" SYSTEMLIBS_DIR "ld-uClibc-mipsn8.so.0;:" SYSTEMLIBS_DIR "ld-uClibc.so.0}" - - #undef MUSL_DYNAMIC_LINKER32 - #define MUSL_DYNAMIC_LINKER32 \ -diff --git a/gcc/config/riscv/linux.h b/gcc/config/riscv/linux.h -index aa8a28d5d31..ebf9551c955 100644 ---- a/gcc/config/riscv/linux.h -+++ b/gcc/config/riscv/linux.h -@@ -22,7 +22,7 @@ along with GCC; see the file COPYING3. If not see - GNU_USER_TARGET_OS_CPP_BUILTINS(); \ - } while (0) - --#define GLIBC_DYNAMIC_LINKER "/lib/ld-linux-riscv" XLEN_SPEC "-" ABI_SPEC ".so.1" -+#define GLIBC_DYNAMIC_LINKER SYSTEMLIBS_DIR "ld-linux-riscv" XLEN_SPEC "-" ABI_SPEC ".so.1" - - #define MUSL_ABI_SUFFIX \ - "%{mabi=ilp32:-sf}" \ -diff --git a/gcc/config/rs6000/linux64.h b/gcc/config/rs6000/linux64.h -index 44eab40a234..54aa8d957e7 100644 ---- a/gcc/config/rs6000/linux64.h -+++ b/gcc/config/rs6000/linux64.h -@@ -413,16 +413,11 @@ extern int dot_symbols; - #undef LINK_OS_DEFAULT_SPEC - #define LINK_OS_DEFAULT_SPEC "%(link_os_linux)" - --#define GLIBC_DYNAMIC_LINKER32 "%(dynamic_linker_prefix)/lib/ld.so.1" -- -+#define GLIBC_DYNAMIC_LINKER32 SYSTEMLIBS_DIR "ld.so.1" - #ifdef LINUX64_DEFAULT_ABI_ELFv2 --#define GLIBC_DYNAMIC_LINKER64 \ --"%{mabi=elfv1:%(dynamic_linker_prefix)/lib64/ld64.so.1;" \ --":%(dynamic_linker_prefix)/lib64/ld64.so.2}" -+#define GLIBC_DYNAMIC_LINKER64 "%{mabi=elfv1:" SYSTEMLIBS_DIR "ld64.so.1;:" SYSTEMLIBS_DIR "ld64.so.2}" - #else --#define GLIBC_DYNAMIC_LINKER64 \ --"%{mabi=elfv2:%(dynamic_linker_prefix)/lib64/ld64.so.2;" \ --":%(dynamic_linker_prefix)/lib64/ld64.so.1}" -+#define GLIBC_DYNAMIC_LINKER64 "%{mabi=elfv2:" SYSTEMLIBS_DIR "ld64.so.2;:" SYSTEMLIBS_DIR "ld64.so.1}" - #endif - - #define MUSL_DYNAMIC_LINKER32 \ -@@ -430,8 +425,9 @@ extern int dot_symbols; - #define MUSL_DYNAMIC_LINKER64 \ - "/lib/ld-musl-powerpc64" MUSL_DYNAMIC_LINKER_E "%{msoft-float:-sf}.so.1" - --#define UCLIBC_DYNAMIC_LINKER32 "/lib/ld-uClibc.so.0" --#define UCLIBC_DYNAMIC_LINKER64 "/lib/ld64-uClibc.so.0" -+#define UCLIBC_DYNAMIC_LINKER32 SYSTEMLIBS_DIR "ld-uClibc.so.0" -+#define UCLIBC_DYNAMIC_LINKER64 SYSTEMLIBS_DIR "ld64-uClibc.so.0" -+ - #if DEFAULT_LIBC == LIBC_UCLIBC - #define CHOOSE_DYNAMIC_LINKER(G, U, M) \ - "%{mglibc:" G ";:%{mmusl:" M ";:" U "}}" -diff --git a/gcc/config/sh/linux.h b/gcc/config/sh/linux.h -index 6d2ccd012ba..ec78a89ce15 100644 ---- a/gcc/config/sh/linux.h -+++ b/gcc/config/sh/linux.h -@@ -64,7 +64,7 @@ along with GCC; see the file COPYING3. If not see - "/lib/ld-musl-sh" MUSL_DYNAMIC_LINKER_E MUSL_DYNAMIC_LINKER_FP \ - "%{mfdpic:-fdpic}.so.1" - --#define GLIBC_DYNAMIC_LINKER "/lib/ld-linux.so.2" -+#define GLIBC_DYNAMIC_LINKER SYSTEMLIBS_DIR "ld-linux.so.2" - - #undef SUBTARGET_LINK_EMUL_SUFFIX - #define SUBTARGET_LINK_EMUL_SUFFIX "%{mfdpic:_fd;:_linux}" -diff --git a/gcc/config/sparc/linux.h b/gcc/config/sparc/linux.h -index 9fb03af0fe9..401fddbbb22 100644 ---- a/gcc/config/sparc/linux.h -+++ b/gcc/config/sparc/linux.h -@@ -83,7 +83,7 @@ extern const char *host_detect_local_cpu (int argc, const char **argv); - When the -shared link option is used a final link is not being - done. */ - --#define GLIBC_DYNAMIC_LINKER "/lib/ld-linux.so.2" -+#define GLIBC_DYNAMIC_LINKER SYSTEMLIBS_DIR "ld-linux.so.2" - - #undef LINK_SPEC - #define LINK_SPEC "-m elf32_sparc %{shared:-shared} \ -diff --git a/gcc/config/sparc/linux64.h b/gcc/config/sparc/linux64.h -index c1fe42165b7..26a79bfa2e3 100644 ---- a/gcc/config/sparc/linux64.h -+++ b/gcc/config/sparc/linux64.h -@@ -84,8 +84,8 @@ along with GCC; see the file COPYING3. If not see - When the -shared link option is used a final link is not being - done. */ - --#define GLIBC_DYNAMIC_LINKER32 "/lib/ld-linux.so.2" --#define GLIBC_DYNAMIC_LINKER64 "/lib64/ld-linux.so.2" -+#define GLIBC_DYNAMIC_LINKER32 SYSTEMLIBS_DIR "ld-linux.so.2" -+#define GLIBC_DYNAMIC_LINKER64 SYSTEMLIBS_DIR "ld-linux.so.2" - - #ifdef SPARC_BI_ARCH - --- -2.21.0 - diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-8.3/0013-gcc-Fix-argument-list-too-long-error.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-8.3/0013-gcc-Fix-argument-list-too-long-error.patch deleted file mode 100644 index e9d2cac2..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-8.3/0013-gcc-Fix-argument-list-too-long-error.patch +++ /dev/null @@ -1,40 +0,0 @@ -From 9e815965fbaa90134be0e777cfc2fbcfab16b674 Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Fri, 29 Mar 2013 09:26:37 +0400 -Subject: [PATCH 13/40] gcc: Fix argument list too long error. - -There would be an "Argument list too long" error when the -build directory is longer than 200, this is caused by: - -headers=`echo $(PLUGIN_HEADERS) | tr ' ' '\012' | sort -u` - -The PLUGIN_HEADERS is too long before sort, so the "echo" can't handle -it, use the $(sort list) of GNU make which can handle the too long list -would fix the problem, the header would be short enough after sorted. -The "tr ' ' '\012'" was used for translating the space to "\n", the -$(sort list) doesn't need this. - -Signed-off-by: Robert Yang -Signed-off-by: Khem Raj - -Upstream-Status: Pending ---- - gcc/Makefile.in | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/gcc/Makefile.in b/gcc/Makefile.in -index 1367136bfac..71a8275c39f 100644 ---- a/gcc/Makefile.in -+++ b/gcc/Makefile.in -@@ -3538,7 +3538,7 @@ install-plugin: installdirs lang.install-plugin s-header-vars install-gengtype - # We keep the directory structure for files in config or c-family and .def - # files. All other files are flattened to a single directory. - $(mkinstalldirs) $(DESTDIR)$(plugin_includedir) -- headers=`echo $(PLUGIN_HEADERS) $$(cd $(srcdir); echo *.h *.def) | tr ' ' '\012' | sort -u`; \ -+ headers="$(sort $(PLUGIN_HEADERS) $$(cd $(srcdir); echo *.h *.def))"; \ - srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`; \ - for file in $$headers; do \ - if [ -f $$file ] ; then \ --- -2.21.0 - diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-8.3/0014-Disable-sdt.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-8.3/0014-Disable-sdt.patch deleted file mode 100644 index 2bc44515..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-8.3/0014-Disable-sdt.patch +++ /dev/null @@ -1,113 +0,0 @@ -From 00c7a7fdd4b4aad9e57d8b541de17ad209b6cd06 Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Fri, 29 Mar 2013 09:28:10 +0400 -Subject: [PATCH 14/40] Disable sdt. - -We don't list dtrace in DEPENDS so we shouldn't be depending on this header. -It may or may not exist from preivous builds though. To be determinstic, disable -sdt.h usage always. This avoids build failures if the header is removed after configure -but before libgcc is compiled for example. - -RP 2012/8/7 - -Signed-off-by: Khem Raj - -Disable sdt for libstdc++-v3. - -Signed-off-by: Robert Yang - -Upstream-Status: Inappropriate [hack] ---- - gcc/configure | 12 ++++++------ - gcc/configure.ac | 18 +++++++++--------- - libstdc++-v3/configure | 6 +++--- - libstdc++-v3/configure.ac | 2 +- - 4 files changed, 19 insertions(+), 19 deletions(-) - -diff --git a/gcc/configure b/gcc/configure -index 134c2c2f156..5111ec0aabb 100755 ---- a/gcc/configure -+++ b/gcc/configure -@@ -29282,12 +29282,12 @@ fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking sys/sdt.h in the target C library" >&5 - $as_echo_n "checking sys/sdt.h in the target C library... " >&6; } - have_sys_sdt_h=no --if test -f $target_header_dir/sys/sdt.h; then -- have_sys_sdt_h=yes -- --$as_echo "#define HAVE_SYS_SDT_H 1" >>confdefs.h -- --fi -+#if test -f $target_header_dir/sys/sdt.h; then -+# have_sys_sdt_h=yes -+# -+#$as_echo "#define HAVE_SYS_SDT_H 1" >>confdefs.h -+# -+#fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $have_sys_sdt_h" >&5 - $as_echo "$have_sys_sdt_h" >&6; } - -diff --git a/gcc/configure.ac b/gcc/configure.ac -index 0c3c82e4ff7..3e09af916fd 100644 ---- a/gcc/configure.ac -+++ b/gcc/configure.ac -@@ -5943,15 +5943,15 @@ fi - AC_SUBST([enable_default_ssp]) - - # Test for on the target. --GCC_TARGET_TEMPLATE([HAVE_SYS_SDT_H]) --AC_MSG_CHECKING(sys/sdt.h in the target C library) --have_sys_sdt_h=no --if test -f $target_header_dir/sys/sdt.h; then -- have_sys_sdt_h=yes -- AC_DEFINE(HAVE_SYS_SDT_H, 1, -- [Define if your target C library provides sys/sdt.h]) --fi --AC_MSG_RESULT($have_sys_sdt_h) -+#GCC_TARGET_TEMPLATE([HAVE_SYS_SDT_H]) -+#AC_MSG_CHECKING(sys/sdt.h in the target C library) -+#have_sys_sdt_h=no -+#if test -f $target_header_dir/sys/sdt.h; then -+# have_sys_sdt_h=yes -+# AC_DEFINE(HAVE_SYS_SDT_H, 1, -+# [Define if your target C library provides sys/sdt.h]) -+#fi -+#AC_MSG_RESULT($have_sys_sdt_h) - - # Check if TFmode long double should be used by default or not. - # Some glibc targets used DFmode long double, but with glibc 2.4 -diff --git a/libstdc++-v3/configure b/libstdc++-v3/configure -index 5535bfa2b5a..13d793f5059 100755 ---- a/libstdc++-v3/configure -+++ b/libstdc++-v3/configure -@@ -21786,11 +21786,11 @@ ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' - ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' - ac_compiler_gnu=$ac_cv_c_compiler_gnu - -- if test $glibcxx_cv_sys_sdt_h = yes; then -+# if test $glibcxx_cv_sys_sdt_h = yes; then - --$as_echo "#define HAVE_SYS_SDT_H 1" >>confdefs.h -+#$as_echo "#define HAVE_SYS_SDT_H 1" >>confdefs.h - -- fi -+# fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $glibcxx_cv_sys_sdt_h" >&5 - $as_echo "$glibcxx_cv_sys_sdt_h" >&6; } - -diff --git a/libstdc++-v3/configure.ac b/libstdc++-v3/configure.ac -index 0ef96270c9c..afe55a1b215 100644 ---- a/libstdc++-v3/configure.ac -+++ b/libstdc++-v3/configure.ac -@@ -230,7 +230,7 @@ GLIBCXX_CHECK_SC_NPROCESSORS_ONLN - GLIBCXX_CHECK_SC_NPROC_ONLN - GLIBCXX_CHECK_PTHREADS_NUM_PROCESSORS_NP - GLIBCXX_CHECK_SYSCTL_HW_NCPU --GLIBCXX_CHECK_SDT_H -+#GLIBCXX_CHECK_SDT_H - - # Check for available headers. - AC_CHECK_HEADERS([endian.h execinfo.h float.h fp.h ieeefp.h inttypes.h \ --- -2.21.0 - diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-8.3/0015-libtool.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-8.3/0015-libtool.patch deleted file mode 100644 index 750f8a24..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-8.3/0015-libtool.patch +++ /dev/null @@ -1,42 +0,0 @@ -From 80f2b01b3f917cea08294328c8bbc51dadece4af Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Fri, 29 Mar 2013 09:29:11 +0400 -Subject: [PATCH 15/40] libtool - -libstdc++ from gcc-runtime gets created with -rpath=/usr/lib/../lib for qemux86-64 -when running on am x86_64 build host. - -This patch stops this speading to libdir in the libstdc++.la file within libtool. -Arguably, it shouldn't be passing this into libtool in the first place but -for now this resolves the nastiest problems this causes. - -func_normal_abspath would resolve an empty path to `pwd` so we need -to filter the zero case. - -RP 2012/8/24 - -Signed-off-by: Khem Raj - -Upstream-Status: Pending ---- - ltmain.sh | 4 ++++ - 1 file changed, 4 insertions(+) - -diff --git a/ltmain.sh b/ltmain.sh -index 9503ec85d70..0121fba707f 100644 ---- a/ltmain.sh -+++ b/ltmain.sh -@@ -6359,6 +6359,10 @@ func_mode_link () - func_warning "ignoring multiple \`-rpath's for a libtool library" - - install_libdir="$1" -+ if test -n "$install_libdir"; then -+ func_normal_abspath "$install_libdir" -+ install_libdir=$func_normal_abspath_result -+ fi - - oldlibs= - if test -z "$rpath"; then --- -2.21.0 - diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-8.3/0016-gcc-armv4-pass-fix-v4bx-to-linker-to-support-EABI.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-8.3/0016-gcc-armv4-pass-fix-v4bx-to-linker-to-support-EABI.patch deleted file mode 100644 index 9b1b4d4d..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-8.3/0016-gcc-armv4-pass-fix-v4bx-to-linker-to-support-EABI.patch +++ /dev/null @@ -1,43 +0,0 @@ -From a66ec1e382bf869749588f072a4a7c09039f2b3a Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Fri, 29 Mar 2013 09:30:32 +0400 -Subject: [PATCH 16/40] gcc: armv4: pass fix-v4bx to linker to support EABI. - -The LINK_SPEC for linux gets overwritten by linux-eabi.h which -means the value of TARGET_FIX_V4BX_SPEC gets lost and as a result -the option is not passed to linker when chosing march=armv4 -This patch redefines this in linux-eabi.h and reinserts it -for eabi defaulting toolchains. - -We might want to send it upstream. - -Signed-off-by: Khem Raj - -Upstream-Status: Pending ---- - gcc/config/arm/linux-eabi.h | 6 +++++- - 1 file changed, 5 insertions(+), 1 deletion(-) - -diff --git a/gcc/config/arm/linux-eabi.h b/gcc/config/arm/linux-eabi.h -index b3af68cac57..330b6e13c5f 100644 ---- a/gcc/config/arm/linux-eabi.h -+++ b/gcc/config/arm/linux-eabi.h -@@ -88,10 +88,14 @@ - #define MUSL_DYNAMIC_LINKER \ - "/lib/ld-musl-arm" MUSL_DYNAMIC_LINKER_E "%{mfloat-abi=hard:hf}.so.1" - -+/* For armv4 we pass --fix-v4bx to linker to support EABI */ -+#undef TARGET_FIX_V4BX_SPEC -+#define TARGET_FIX_V4BX_SPEC "%{mcpu=arm8|mcpu=arm810|mcpu=strongarm*|march=armv4: --fix-v4bx}" -+ - /* At this point, bpabi.h will have clobbered LINK_SPEC. We want to - use the GNU/Linux version, not the generic BPABI version. */ - #undef LINK_SPEC --#define LINK_SPEC EABI_LINK_SPEC \ -+#define LINK_SPEC TARGET_FIX_V4BX_SPEC EABI_LINK_SPEC \ - LINUX_OR_ANDROID_LD (LINUX_TARGET_LINK_SPEC, \ - LINUX_TARGET_LINK_SPEC " " ANDROID_LINK_SPEC) - --- -2.21.0 - diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-8.3/0017-Use-the-multilib-config-files-from-B-instead-of-usin.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-8.3/0017-Use-the-multilib-config-files-from-B-instead-of-usin.patch deleted file mode 100644 index 382fecdb..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-8.3/0017-Use-the-multilib-config-files-from-B-instead-of-usin.patch +++ /dev/null @@ -1,102 +0,0 @@ -From 624db734f656ad8cdf8b3cf3fc8e860b70c6c251 Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Fri, 29 Mar 2013 09:33:04 +0400 -Subject: [PATCH 17/40] Use the multilib config files from ${B} instead of - using the ones from ${S} - -Use the multilib config files from ${B} instead of using the ones from ${S} -so that the source can be shared between gcc-cross-initial, -gcc-cross-intermediate, gcc-cross, gcc-runtime, and also the sdk build. - -Signed-off-by: Khem Raj -Signed-off-by: Constantin Musca - -Upstream-Status: Inappropriate [configuration] ---- - gcc/configure | 22 ++++++++++++++++++---- - gcc/configure.ac | 22 ++++++++++++++++++---- - 2 files changed, 36 insertions(+), 8 deletions(-) - -diff --git a/gcc/configure b/gcc/configure -index 5111ec0aabb..3d9dcbdc93d 100755 ---- a/gcc/configure -+++ b/gcc/configure -@@ -12138,10 +12138,20 @@ done - tmake_file_= - for f in ${tmake_file} - do -- if test -f ${srcdir}/config/$f -- then -- tmake_file_="${tmake_file_} \$(srcdir)/config/$f" -- fi -+ case $f in -+ */t-linux64 ) -+ if test -f ./config/$f -+ then -+ tmake_file_="${tmake_file_} ./config/$f" -+ fi -+ ;; -+ * ) -+ if test -f ${srcdir}/config/$f -+ then -+ tmake_file_="${tmake_file_} \$(srcdir)/config/$f" -+ fi -+ ;; -+ esac - done - tmake_file="${tmake_file_}" - -@@ -12152,6 +12162,10 @@ tm_file_list="options.h" - tm_include_list="options.h insn-constants.h" - for f in $tm_file; do - case $f in -+ */linux64.h ) -+ tm_file_list="${tm_file_list} ./config/$f" -+ tm_include_list="${tm_include_list} ./config/$f" -+ ;; - ./* ) - f=`echo $f | sed 's/^..//'` - tm_file_list="${tm_file_list} $f" -diff --git a/gcc/configure.ac b/gcc/configure.ac -index 3e09af916fd..e09c840b605 100644 ---- a/gcc/configure.ac -+++ b/gcc/configure.ac -@@ -1902,10 +1902,20 @@ done - tmake_file_= - for f in ${tmake_file} - do -- if test -f ${srcdir}/config/$f -- then -- tmake_file_="${tmake_file_} \$(srcdir)/config/$f" -- fi -+ case $f in -+ */t-linux64 ) -+ if test -f ./config/$f -+ then -+ tmake_file_="${tmake_file_} ./config/$f" -+ fi -+ ;; -+ * ) -+ if test -f ${srcdir}/config/$f -+ then -+ tmake_file_="${tmake_file_} \$(srcdir)/config/$f" -+ fi -+ ;; -+ esac - done - tmake_file="${tmake_file_}" - -@@ -1916,6 +1926,10 @@ tm_file_list="options.h" - tm_include_list="options.h insn-constants.h" - for f in $tm_file; do - case $f in -+ */linux64.h ) -+ tm_file_list="${tm_file_list} ./config/$f" -+ tm_include_list="${tm_include_list} ./config/$f" -+ ;; - ./* ) - f=`echo $f | sed 's/^..//'` - tm_file_list="${tm_file_list} $f" --- -2.21.0 - diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-8.3/0018-Avoid-using-libdir-from-.la-which-usually-points-to-.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-8.3/0018-Avoid-using-libdir-from-.la-which-usually-points-to-.patch deleted file mode 100644 index 20e77d6e..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-8.3/0018-Avoid-using-libdir-from-.la-which-usually-points-to-.patch +++ /dev/null @@ -1,31 +0,0 @@ -From 27cca95dcfeead8c52d292c4824ee96f178d6183 Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Fri, 20 Feb 2015 09:39:38 +0000 -Subject: [PATCH 18/40] Avoid using libdir from .la which usually points to a - host path - -Upstream-Status: Inappropriate [embedded specific] - -Signed-off-by: Jonathan Liu -Signed-off-by: Khem Raj ---- - ltmain.sh | 3 +++ - 1 file changed, 3 insertions(+) - -diff --git a/ltmain.sh b/ltmain.sh -index 0121fba707f..52bdbdb5f9c 100644 ---- a/ltmain.sh -+++ b/ltmain.sh -@@ -5628,6 +5628,9 @@ func_mode_link () - absdir="$abs_ladir" - libdir="$abs_ladir" - else -+ # Instead of using libdir from .la which usually points to a host path, -+ # use the path the .la is contained in. -+ libdir="$abs_ladir" - dir="$libdir" - absdir="$libdir" - fi --- -2.21.0 - diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-8.3/0019-export-CPP.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-8.3/0019-export-CPP.patch deleted file mode 100644 index 140c67a4..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-8.3/0019-export-CPP.patch +++ /dev/null @@ -1,53 +0,0 @@ -From a2936382da81aefa9b69c1fc625f6c706b7ea1d8 Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Fri, 20 Feb 2015 09:40:59 +0000 -Subject: [PATCH 19/40] export CPP - -The OE environment sets and exports CPP as being the target gcc. When -building gcc-cross-canadian for a mingw targetted sdk, the following can be found -in build.x86_64-pokysdk-mingw32.i586-poky-linux/build-x86_64-linux/libiberty/config.log: - -configure:3641: checking for _FILE_OFFSET_BITS value needed for large files -configure:3666: gcc -c -isystem/media/build1/poky/build/tmp/sysroots/x86_64-linux/usr/include -O2 -pipe conftest.c >&5 -configure:3666: $? = 0 -configure:3698: result: no -configure:3786: checking how to run the C preprocessor -configure:3856: result: x86_64-pokysdk-mingw32-gcc -E --sysroot=/media/build1/poky/build/tmp/sysroots/x86_64-nativesdk-mingw32-pokysdk-mingw32 -configure:3876: x86_64-pokysdk-mingw32-gcc -E --sysroot=/media/build1/poky/build/tmp/sysroots/x86_64-nativesdk-mingw32-pokysdk-mingw32 conftest.c -configure:3876: $? = 0 - -Note this is a *build* target (in build-x86_64-linux) so it should be -using the host "gcc", not x86_64-pokysdk-mingw32-gcc. Since the mingw32 -headers are very different, using the wrong cpp is a real problem. It is leaking -into configure through the CPP variable. Ultimately this leads to build -failures related to not being able to include a process.h file for pem-unix.c. - -The fix is to ensure we export a sane CPP value into the build -environment when using build targets. We could define a CPP_FOR_BUILD value which may be -the version which needs to be upstreamed but for now, this fix is good enough to -avoid the problem. - -RP 22/08/2013 - -Upstream-Status: Pending - -Signed-off-by: Khem Raj ---- - Makefile.in | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/Makefile.in b/Makefile.in -index 38774f542a6..b426d4f9350 100644 ---- a/Makefile.in -+++ b/Makefile.in -@@ -149,6 +149,7 @@ BUILD_EXPORTS = \ - AR="$(AR_FOR_BUILD)"; export AR; \ - AS="$(AS_FOR_BUILD)"; export AS; \ - CC="$(CC_FOR_BUILD)"; export CC; \ -+ CPP="$(CC_FOR_BUILD) -E"; export CPP; \ - CFLAGS="$(CFLAGS_FOR_BUILD)"; export CFLAGS; \ - CONFIG_SHELL="$(SHELL)"; export CONFIG_SHELL; \ - CXX="$(CXX_FOR_BUILD)"; export CXX; \ --- -2.21.0 - diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-8.3/0020-Disable-the-MULTILIB_OSDIRNAMES-and-other-multilib-o.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-8.3/0020-Disable-the-MULTILIB_OSDIRNAMES-and-other-multilib-o.patch deleted file mode 100644 index b22557ea..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-8.3/0020-Disable-the-MULTILIB_OSDIRNAMES-and-other-multilib-o.patch +++ /dev/null @@ -1,42 +0,0 @@ -From d4326ab74a362b0fc83ed866f82c359389a36adc Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Fri, 20 Feb 2015 10:21:55 +0000 -Subject: [PATCH 20/40] Disable the MULTILIB_OSDIRNAMES and other multilib - options. - -Hard coding the MULTILIB_OSDIRNAMES with ../lib64 is causing problems on -systems where the libdir is NOT set to /lib64. This is allowed by the -ABI, as -long as the dynamic loader is present in /lib. - -We simply want to use the default rules in gcc to find and configure the -normal libdir. - -Upstream-Status: Inappropriate[OE-Specific] - -Signed-off-by: Mark Hatle -Signed-off-by: Khem Raj ---- - gcc/config/aarch64/t-aarch64-linux | 8 ++++---- - 1 file changed, 4 insertions(+), 4 deletions(-) - -diff --git a/gcc/config/aarch64/t-aarch64-linux b/gcc/config/aarch64/t-aarch64-linux -index b9897785a89..7d06f0d0edb 100644 ---- a/gcc/config/aarch64/t-aarch64-linux -+++ b/gcc/config/aarch64/t-aarch64-linux -@@ -21,8 +21,8 @@ - LIB1ASMSRC = aarch64/lib1funcs.asm - LIB1ASMFUNCS = _aarch64_sync_cache_range - --AARCH_BE = $(if $(findstring TARGET_BIG_ENDIAN_DEFAULT=1, $(tm_defines)),_be) --MULTILIB_OSDIRNAMES = mabi.lp64=../lib64$(call if_multiarch,:aarch64$(AARCH_BE)-linux-gnu) --MULTIARCH_DIRNAME = $(call if_multiarch,aarch64$(AARCH_BE)-linux-gnu) -+#AARCH_BE = $(if $(findstring TARGET_BIG_ENDIAN_DEFAULT=1, $(tm_defines)),_be) -+#MULTILIB_OSDIRNAMES = mabi.lp64=../lib64$(call if_multiarch,:aarch64$(AARCH_BE)-linux-gnu) -+#MULTIARCH_DIRNAME = $(call if_multiarch,aarch64$(AARCH_BE)-linux-gnu) - --MULTILIB_OSDIRNAMES += mabi.ilp32=../libilp32$(call if_multiarch,:aarch64$(AARCH_BE)-linux-gnu_ilp32) -+#MULTILIB_OSDIRNAMES += mabi.ilp32=../libilp32$(call if_multiarch,:aarch64$(AARCH_BE)-linux-gnu_ilp32) --- -2.21.0 - diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-8.3/0021-Ensure-target-gcc-headers-can-be-included.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-8.3/0021-Ensure-target-gcc-headers-can-be-included.patch deleted file mode 100644 index 60d72699..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-8.3/0021-Ensure-target-gcc-headers-can-be-included.patch +++ /dev/null @@ -1,98 +0,0 @@ -From 476eda9054df443d094273c8b61fce63d940adfc Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Fri, 20 Feb 2015 10:25:11 +0000 -Subject: [PATCH 21/40] Ensure target gcc headers can be included - -There are a few headers installed as part of the OpenEmbedded -gcc-runtime target (omp.h, ssp/*.h). Being installed from a recipe -built for the target architecture, these are within the target -sysroot and not cross/nativesdk; thus they weren't able to be -found by gcc with the existing search paths. Add support for -picking up these headers under the sysroot supplied on the gcc -command line in order to resolve this. - -Upstream-Status: Pending - -Signed-off-by: Paul Eggleton -Signed-off-by: Khem Raj ---- - gcc/Makefile.in | 2 ++ - gcc/cppdefault.c | 4 ++++ - gcc/defaults.h | 9 +++++++++ - gcc/gcc.c | 7 ------- - 4 files changed, 15 insertions(+), 7 deletions(-) - -diff --git a/gcc/Makefile.in b/gcc/Makefile.in -index 71a8275c39f..5ae693fb06c 100644 ---- a/gcc/Makefile.in -+++ b/gcc/Makefile.in -@@ -614,6 +614,7 @@ libexecdir = @libexecdir@ - - # Directory in which the compiler finds libraries etc. - libsubdir = $(libdir)/gcc/$(real_target_noncanonical)/$(version)$(accel_dir_suffix) -+libsubdir_target = gcc/$(target_noncanonical)/$(version) - # Directory in which the compiler finds executables - libexecsubdir = $(libexecdir)/gcc/$(real_target_noncanonical)/$(version)$(accel_dir_suffix) - # Directory in which all plugin resources are installed -@@ -2870,6 +2871,7 @@ CFLAGS-intl.o += -DLOCALEDIR=\"$(localedir)\" - - PREPROCESSOR_DEFINES = \ - -DGCC_INCLUDE_DIR=\"$(libsubdir)/include\" \ -+ -DGCC_INCLUDE_SUBDIR_TARGET=\"$(libsubdir_target)/include\" \ - -DFIXED_INCLUDE_DIR=\"$(libsubdir)/include-fixed\" \ - -DGPLUSPLUS_INCLUDE_DIR=\"$(gcc_gxx_include_dir)\" \ - -DGPLUSPLUS_INCLUDE_DIR_ADD_SYSROOT=$(gcc_gxx_include_dir_add_sysroot) \ -diff --git a/gcc/cppdefault.c b/gcc/cppdefault.c -index b36a979d5ba..e2e187dedaf 100644 ---- a/gcc/cppdefault.c -+++ b/gcc/cppdefault.c -@@ -59,6 +59,10 @@ const struct default_include cpp_include_defaults[] - /* This is the dir for gcc's private headers. */ - { GCC_INCLUDE_DIR, "GCC", 0, 0, 0, 0 }, - #endif -+#ifdef GCC_INCLUDE_SUBDIR_TARGET -+ /* This is the dir for gcc's private headers under the specified sysroot. */ -+ { STANDARD_STARTFILE_PREFIX_2 GCC_INCLUDE_SUBDIR_TARGET, "GCC", 0, 0, 1, 0 }, -+#endif - #ifdef LOCAL_INCLUDE_DIR - /* /usr/local/include comes before the fixincluded header files. */ - { LOCAL_INCLUDE_DIR, 0, 0, 1, 1, 2 }, -diff --git a/gcc/defaults.h b/gcc/defaults.h -index 9035b333be8..5982bbda61d 100644 ---- a/gcc/defaults.h -+++ b/gcc/defaults.h -@@ -1455,4 +1455,13 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see - #define DWARF_GNAT_ENCODINGS_DEFAULT DWARF_GNAT_ENCODINGS_GDB - #endif - -+/* Default prefixes to attach to command names. */ -+ -+#ifndef STANDARD_STARTFILE_PREFIX_1 -+#define STANDARD_STARTFILE_PREFIX_1 "/lib/" -+#endif -+#ifndef STANDARD_STARTFILE_PREFIX_2 -+#define STANDARD_STARTFILE_PREFIX_2 "/usr/lib/" -+#endif -+ - #endif /* ! GCC_DEFAULTS_H */ -diff --git a/gcc/gcc.c b/gcc/gcc.c -index 570cdc00034..3fb64d453f1 100644 ---- a/gcc/gcc.c -+++ b/gcc/gcc.c -@@ -1464,13 +1464,6 @@ static const char *gcc_libexec_prefix; - - /* Default prefixes to attach to command names. */ - --#ifndef STANDARD_STARTFILE_PREFIX_1 --#define STANDARD_STARTFILE_PREFIX_1 "/lib/" --#endif --#ifndef STANDARD_STARTFILE_PREFIX_2 --#define STANDARD_STARTFILE_PREFIX_2 "/usr/lib/" --#endif -- - #ifdef CROSS_DIRECTORY_STRUCTURE /* Don't use these prefixes for a cross compiler. */ - #undef MD_EXEC_PREFIX - #undef MD_STARTFILE_PREFIX --- -2.21.0 - diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-8.3/0022-gcc-4.8-won-t-build-with-disable-dependency-tracking.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-8.3/0022-gcc-4.8-won-t-build-with-disable-dependency-tracking.patch deleted file mode 100644 index 6f0d3f11..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-8.3/0022-gcc-4.8-won-t-build-with-disable-dependency-tracking.patch +++ /dev/null @@ -1,54 +0,0 @@ -From bc192f0a07ad819dee93446c5ef6895d9550d92d Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Fri, 20 Feb 2015 11:17:19 +0000 -Subject: [PATCH 22/40] gcc 4.8+ won't build with --disable-dependency-tracking - -since the *.Ppo files don't get created unless --enable-dependency-tracking is true. - -This patch ensures we only use those compiler options when its enabled. - -Upstream-Status: Submitted - -(Problem was already reported upstream, attached this patch there -http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55930) - -RP -2012/09/22 - -Signed-off-by: Khem Raj ---- - libatomic/Makefile.am | 3 ++- - libatomic/Makefile.in | 3 ++- - 2 files changed, 4 insertions(+), 2 deletions(-) - -diff --git a/libatomic/Makefile.am b/libatomic/Makefile.am -index 803b292cce5..b47842eb590 100644 ---- a/libatomic/Makefile.am -+++ b/libatomic/Makefile.am -@@ -101,7 +101,8 @@ PAT_S = $(word 3,$(PAT_SPLIT)) - IFUNC_DEF = -DIFUNC_ALT=$(PAT_S) - IFUNC_OPT = $(word $(PAT_S),$(IFUNC_OPTIONS)) - --M_DEPS = -MT $@ -MD -MP -MF $(DEPDIR)/$(@F).Ppo -+@AMDEP_TRUE@M_DEPS = -MT $@ -MD -MP -MF $(DEPDIR)/$(@F).Ppo -+@AMDEP_FALSE@M_DEPS = - M_SIZE = -DN=$(PAT_N) - M_IFUNC = $(if $(PAT_S),$(IFUNC_DEF) $(IFUNC_OPT)) - M_FILE = $(PAT_BASE)_n.c -diff --git a/libatomic/Makefile.in b/libatomic/Makefile.in -index c8f38be5835..4fab7cec3ea 100644 ---- a/libatomic/Makefile.in -+++ b/libatomic/Makefile.in -@@ -335,7 +335,8 @@ PAT_N = $(word 2,$(PAT_SPLIT)) - PAT_S = $(word 3,$(PAT_SPLIT)) - IFUNC_DEF = -DIFUNC_ALT=$(PAT_S) - IFUNC_OPT = $(word $(PAT_S),$(IFUNC_OPTIONS)) --M_DEPS = -MT $@ -MD -MP -MF $(DEPDIR)/$(@F).Ppo -+@AMDEP_TRUE@M_DEPS = -MT $@ -MD -MP -MF $(DEPDIR)/$(@F).Ppo -+@AMDEP_FALSE@M_DEPS = - M_SIZE = -DN=$(PAT_N) - M_IFUNC = $(if $(PAT_S),$(IFUNC_DEF) $(IFUNC_OPT)) - M_FILE = $(PAT_BASE)_n.c --- -2.21.0 - diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-8.3/0023-Don-t-search-host-directory-during-relink-if-inst_pr.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-8.3/0023-Don-t-search-host-directory-during-relink-if-inst_pr.patch deleted file mode 100644 index fe3f3436..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-8.3/0023-Don-t-search-host-directory-during-relink-if-inst_pr.patch +++ /dev/null @@ -1,38 +0,0 @@ -From 0409d2dd7322ecbed731cbe29b034fea43c5dddc Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Tue, 3 Mar 2015 08:21:19 +0000 -Subject: [PATCH 23/40] Don't search host directory during "relink" if - $inst_prefix is provided - -http://lists.gnu.org/archive/html/libtool-patches/2011-01/msg00026.html - -Upstream-Status: Submitted - -Signed-off-by: Khem Raj ---- - ltmain.sh | 5 +++-- - 1 file changed, 3 insertions(+), 2 deletions(-) - -diff --git a/ltmain.sh b/ltmain.sh -index 52bdbdb5f9c..82bcec39f05 100644 ---- a/ltmain.sh -+++ b/ltmain.sh -@@ -6004,12 +6004,13 @@ func_mode_link () - fi - else - # We cannot seem to hardcode it, guess we'll fake it. -+ # Default if $libdir is not relative to the prefix: - add_dir="-L$libdir" -- # Try looking first in the location we're being installed to. -+ - if test -n "$inst_prefix_dir"; then - case $libdir in - [\\/]*) -- add_dir="$add_dir -L$inst_prefix_dir$libdir" -+ add_dir="-L$inst_prefix_dir$libdir" - ;; - esac - fi --- -2.21.0 - diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-8.3/0024-Use-SYSTEMLIBS_DIR-replacement-instead-of-hardcoding.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-8.3/0024-Use-SYSTEMLIBS_DIR-replacement-instead-of-hardcoding.patch deleted file mode 100644 index c388a0ad..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-8.3/0024-Use-SYSTEMLIBS_DIR-replacement-instead-of-hardcoding.patch +++ /dev/null @@ -1,28 +0,0 @@ -From 56e2e1fc2a27c4a5cc9b471d5d0af90bcb871bfa Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Tue, 28 Apr 2015 23:15:27 -0700 -Subject: [PATCH 24/40] Use SYSTEMLIBS_DIR replacement instead of hardcoding base_libdir - -Upstream-Status: Pending - -Signed-off-by: Khem Raj ---- - gcc/config/aarch64/aarch64-linux.h | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/gcc/config/aarch64/aarch64-linux.h b/gcc/config/aarch64/aarch64-linux.h -index bf1327e98cc..64436183bc8 100644 ---- a/gcc/config/aarch64/aarch64-linux.h -+++ b/gcc/config/aarch64/aarch64-linux.h -@@ -21,7 +21,7 @@ - #ifndef GCC_AARCH64_LINUX_H - #define GCC_AARCH64_LINUX_H - --#define GLIBC_DYNAMIC_LINKER "/lib/ld-linux-aarch64%{mbig-endian:_be}%{mabi=ilp32:_ilp32}.so.1" -+#define GLIBC_DYNAMIC_LINKER SYSTEMLIBS_DIR "ld-linux-aarch64%{mbig-endian:_be}%{mabi=ilp32:_ilp32}.so.1" - - #undef MUSL_DYNAMIC_LINKER - #define MUSL_DYNAMIC_LINKER "/lib/ld-musl-aarch64%{mbig-endian:_be}%{mabi=ilp32:_ilp32}.so.1" --- -2.21.0 - diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-8.3/0025-aarch64-Add-support-for-musl-ldso.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-8.3/0025-aarch64-Add-support-for-musl-ldso.patch deleted file mode 100644 index 03f9725b..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-8.3/0025-aarch64-Add-support-for-musl-ldso.patch +++ /dev/null @@ -1,28 +0,0 @@ -From b142e77e44e1acece6da54ccdc24c4da89cf4b99 Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Tue, 28 Apr 2015 23:18:39 -0700 -Subject: [PATCH 25/40] aarch64: Add support for musl ldso - -Upstream-Status: Pending - -Signed-off-by: Khem Raj ---- - gcc/config/aarch64/aarch64-linux.h | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/gcc/config/aarch64/aarch64-linux.h b/gcc/config/aarch64/aarch64-linux.h -index 64436183bc8..ba156676026 100644 ---- a/gcc/config/aarch64/aarch64-linux.h -+++ b/gcc/config/aarch64/aarch64-linux.h -@@ -24,7 +24,7 @@ - #define GLIBC_DYNAMIC_LINKER SYSTEMLIBS_DIR "ld-linux-aarch64%{mbig-endian:_be}%{mabi=ilp32:_ilp32}.so.1" - - #undef MUSL_DYNAMIC_LINKER --#define MUSL_DYNAMIC_LINKER "/lib/ld-musl-aarch64%{mbig-endian:_be}%{mabi=ilp32:_ilp32}.so.1" -+#define MUSL_DYNAMIC_LINKER SYSTEMLIBS_DIR "ld-musl-aarch64%{mbig-endian:_be}%{mabi=ilp32:_ilp32}.so.1" - - #undef ASAN_CC1_SPEC - #define ASAN_CC1_SPEC "%{%:sanitize(address):-funwind-tables}" --- -2.21.0 - diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-8.3/0026-libcc1-fix-libcc1-s-install-path-and-rpath.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-8.3/0026-libcc1-fix-libcc1-s-install-path-and-rpath.patch deleted file mode 100644 index 85917389..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-8.3/0026-libcc1-fix-libcc1-s-install-path-and-rpath.patch +++ /dev/null @@ -1,54 +0,0 @@ -From 3d4e53fc7cd71ce1181af8a5e9655398857af741 Mon Sep 17 00:00:00 2001 -From: Robert Yang -Date: Sun, 5 Jul 2015 20:25:18 -0700 -Subject: [PATCH 26/40] libcc1: fix libcc1's install path and rpath - -* Install libcc1.so and libcc1plugin.so into - $(libexecdir)/gcc/$(target_noncanonical)/$(gcc_version), as what we - had done to lto-plugin. -* Fix bad RPATH iussue: - gcc-5.2.0: package gcc-plugins contains bad RPATH /patht/to/tmp/sysroots/qemux86-64/usr/lib64/../lib64 in file - /path/to/gcc/5.2.0-r0/packages-split/gcc-plugins/usr/lib64/gcc/x86_64-poky-linux/5.2.0/plugin/libcc1plugin.so.0.0.0 - [rpaths] - -Upstream-Status: Inappropriate [OE configuration] - -Signed-off-by: Robert Yang ---- - libcc1/Makefile.am | 4 ++-- - libcc1/Makefile.in | 4 ++-- - 2 files changed, 4 insertions(+), 4 deletions(-) - -diff --git a/libcc1/Makefile.am b/libcc1/Makefile.am -index 6ecb66b4365..634cce3c2a9 100644 ---- a/libcc1/Makefile.am -+++ b/libcc1/Makefile.am -@@ -37,8 +37,8 @@ libiberty = $(if $(wildcard $(libiberty_noasan)),$(Wc)$(libiberty_noasan), \ - $(Wc)$(libiberty_normal))) - libiberty_dep = $(patsubst $(Wc)%,%,$(libiberty)) - --plugindir = $(libdir)/gcc/$(target_noncanonical)/$(gcc_version)/plugin --cc1libdir = $(libdir)/$(libsuffix) -+cc1libdir = $(libexecdir)/gcc/$(target_noncanonical)/$(gcc_version) -+plugindir = $(cc1libdir) - - if ENABLE_PLUGIN - plugin_LTLIBRARIES = libcc1plugin.la libcp1plugin.la -diff --git a/libcc1/Makefile.in b/libcc1/Makefile.in -index 47be10025ad..8d5481d87bd 100644 ---- a/libcc1/Makefile.in -+++ b/libcc1/Makefile.in -@@ -303,8 +303,8 @@ libiberty = $(if $(wildcard $(libiberty_noasan)),$(Wc)$(libiberty_noasan), \ - $(Wc)$(libiberty_normal))) - - libiberty_dep = $(patsubst $(Wc)%,%,$(libiberty)) --plugindir = $(libdir)/gcc/$(target_noncanonical)/$(gcc_version)/plugin --cc1libdir = $(libdir)/$(libsuffix) -+cc1libdir = $(libexecdir)/gcc/$(target_noncanonical)/$(gcc_version) -+plugindir = $(cc1libdir) - @ENABLE_PLUGIN_TRUE@plugin_LTLIBRARIES = libcc1plugin.la libcp1plugin.la - @ENABLE_PLUGIN_TRUE@cc1lib_LTLIBRARIES = libcc1.la - shared_source = callbacks.cc callbacks.hh connection.cc connection.hh \ --- -2.21.0 - diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-8.3/0027-handle-sysroot-support-for-nativesdk-gcc.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-8.3/0027-handle-sysroot-support-for-nativesdk-gcc.patch deleted file mode 100644 index 4b955de8..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-8.3/0027-handle-sysroot-support-for-nativesdk-gcc.patch +++ /dev/null @@ -1,213 +0,0 @@ -From c033c1df11b692213d03db91d6cc145b4adedfac Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Mon, 7 Dec 2015 23:39:54 +0000 -Subject: [PATCH 27/40] handle sysroot support for nativesdk-gcc - -Being able to build a nativesdk gcc is useful, particularly in cases -where the host compiler may be of an incompatible version (or a 32 -bit compiler is needed). - -Sadly, building nativesdk-gcc is not straight forward. We install -nativesdk-gcc into a relocatable location and this means that its -library locations can change. "Normal" sysroot support doesn't help -in this case since the values of paths like "libdir" change, not just -base root directory of the system. - -In order to handle this we do two things: - -a) Add %r into spec file markup which can be used for injected paths - such as SYSTEMLIBS_DIR (see gcc_multilib_setup()). -b) Add other paths which need relocation into a .gccrelocprefix section - which the relocation code will notice and adjust automatically. - -Upstream-Status: Inappropriate -RP 2015/7/28 - -Signed-off-by: Khem Raj ---- - gcc/cppdefault.c | 50 +++++++++++++++++++++++++++++++++++------------- - gcc/cppdefault.h | 3 ++- - gcc/gcc.c | 20 +++++++++++++------ - 3 files changed, 53 insertions(+), 20 deletions(-) - -diff --git a/gcc/cppdefault.c b/gcc/cppdefault.c -index e2e187dedaf..2faba2b1d63 100644 ---- a/gcc/cppdefault.c -+++ b/gcc/cppdefault.c -@@ -35,6 +35,30 @@ - # undef CROSS_INCLUDE_DIR - #endif - -+static char GPLUSPLUS_INCLUDE_DIRVAR[4096] __attribute__ ((section (".gccrelocprefix"))) = GPLUSPLUS_INCLUDE_DIR; -+static char GCC_INCLUDE_DIRVAR[4096] __attribute__ ((section (".gccrelocprefix"))) = GCC_INCLUDE_DIR; -+static char GPLUSPLUS_TOOL_INCLUDE_DIRVAR[4096] __attribute__ ((section (".gccrelocprefix"))) = GPLUSPLUS_TOOL_INCLUDE_DIR; -+static char GPLUSPLUS_BACKWARD_INCLUDE_DIRVAR[4096] __attribute__ ((section (".gccrelocprefix"))) = GPLUSPLUS_BACKWARD_INCLUDE_DIR; -+static char STANDARD_STARTFILE_PREFIX_2VAR[4096] __attribute__ ((section (".gccrelocprefix"))) = STANDARD_STARTFILE_PREFIX_2 GCC_INCLUDE_SUBDIR_TARGET; -+#ifdef LOCAL_INCLUDE_DIR -+static char LOCAL_INCLUDE_DIRVAR[4096] __attribute__ ((section (".gccrelocprefix"))) = LOCAL_INCLUDE_DIR; -+#endif -+#ifdef PREFIX_INCLUDE_DIR -+static char PREFIX_INCLUDE_DIRVAR[4096] __attribute__ ((section (".gccrelocprefix"))) = PREFIX_INCLUDE_DIR; -+#endif -+#ifdef FIXED_INCLUDE_DIR -+static char FIXED_INCLUDE_DIRVAR[4096] __attribute__ ((section (".gccrelocprefix"))) = FIXED_INCLUDE_DIR; -+#endif -+#ifdef CROSS_INCLUDE_DIR -+static char CROSS_INCLUDE_DIRVAR[4096] __attribute__ ((section (".gccrelocprefix"))) = CROSS_INCLUDE_DIR; -+#endif -+#ifdef TOOL_INCLUDE_DIR -+static char TOOL_INCLUDE_DIRVAR[4096] __attribute__ ((section (".gccrelocprefix"))) = TOOL_INCLUDE_DIR; -+#endif -+#ifdef NATIVE_SYSTEM_HEADER_DIR -+static char NATIVE_SYSTEM_HEADER_DIRVAR[4096] __attribute__ ((section (".gccrelocprefix"))) = NATIVE_SYSTEM_HEADER_DIR; -+#endif -+ - const struct default_include cpp_include_defaults[] - #ifdef INCLUDE_DEFAULTS - = INCLUDE_DEFAULTS; -@@ -42,38 +66,38 @@ const struct default_include cpp_include_defaults[] - = { - #ifdef GPLUSPLUS_INCLUDE_DIR - /* Pick up GNU C++ generic include files. */ -- { GPLUSPLUS_INCLUDE_DIR, "G++", 1, 1, -+ { GPLUSPLUS_INCLUDE_DIRVAR, "G++", 1, 1, - GPLUSPLUS_INCLUDE_DIR_ADD_SYSROOT, 0 }, - #endif - #ifdef GPLUSPLUS_TOOL_INCLUDE_DIR - /* Pick up GNU C++ target-dependent include files. */ -- { GPLUSPLUS_TOOL_INCLUDE_DIR, "G++", 1, 1, -+ { GPLUSPLUS_TOOL_INCLUDE_DIRVAR, "G++", 1, 1, - GPLUSPLUS_INCLUDE_DIR_ADD_SYSROOT, 1 }, - #endif - #ifdef GPLUSPLUS_BACKWARD_INCLUDE_DIR - /* Pick up GNU C++ backward and deprecated include files. */ -- { GPLUSPLUS_BACKWARD_INCLUDE_DIR, "G++", 1, 1, -+ { GPLUSPLUS_BACKWARD_INCLUDE_DIRVAR, "G++", 1, 1, - GPLUSPLUS_INCLUDE_DIR_ADD_SYSROOT, 0 }, - #endif - #ifdef GCC_INCLUDE_DIR - /* This is the dir for gcc's private headers. */ -- { GCC_INCLUDE_DIR, "GCC", 0, 0, 0, 0 }, -+ { GCC_INCLUDE_DIRVAR, "GCC", 0, 0, 0, 0 }, - #endif - #ifdef GCC_INCLUDE_SUBDIR_TARGET - /* This is the dir for gcc's private headers under the specified sysroot. */ -- { STANDARD_STARTFILE_PREFIX_2 GCC_INCLUDE_SUBDIR_TARGET, "GCC", 0, 0, 1, 0 }, -+ { STANDARD_STARTFILE_PREFIX_2VAR, "GCC", 0, 0, 1, 0 }, - #endif - #ifdef LOCAL_INCLUDE_DIR - /* /usr/local/include comes before the fixincluded header files. */ -- { LOCAL_INCLUDE_DIR, 0, 0, 1, 1, 2 }, -- { LOCAL_INCLUDE_DIR, 0, 0, 1, 1, 0 }, -+ { LOCAL_INCLUDE_DIRVAR, 0, 0, 1, 1, 2 }, -+ { LOCAL_INCLUDE_DIRVAR, 0, 0, 1, 1, 0 }, - #endif - #ifdef PREFIX_INCLUDE_DIR -- { PREFIX_INCLUDE_DIR, 0, 0, 1, 0, 0 }, -+ { PREFIX_INCLUDE_DIRVAR, 0, 0, 1, 0, 0 }, - #endif - #ifdef FIXED_INCLUDE_DIR - /* This is the dir for fixincludes. */ -- { FIXED_INCLUDE_DIR, "GCC", 0, 0, 0, -+ { FIXED_INCLUDE_DIRVAR, "GCC", 0, 0, 0, - /* A multilib suffix needs adding if different multilibs use - different headers. */ - #ifdef SYSROOT_HEADERS_SUFFIX_SPEC -@@ -85,16 +109,16 @@ const struct default_include cpp_include_defaults[] - #endif - #ifdef CROSS_INCLUDE_DIR - /* One place the target system's headers might be. */ -- { CROSS_INCLUDE_DIR, "GCC", 0, 0, 0, 0 }, -+ { CROSS_INCLUDE_DIRVAR, "GCC", 0, 0, 0, 0 }, - #endif - #ifdef TOOL_INCLUDE_DIR - /* Another place the target system's headers might be. */ -- { TOOL_INCLUDE_DIR, "BINUTILS", 0, 1, 0, 0 }, -+ { TOOL_INCLUDE_DIRVAR, "BINUTILS", 0, 1, 0, 0 }, - #endif - #ifdef NATIVE_SYSTEM_HEADER_DIR - /* /usr/include comes dead last. */ -- { NATIVE_SYSTEM_HEADER_DIR, NATIVE_SYSTEM_HEADER_COMPONENT, 0, 0, 1, 2 }, -- { NATIVE_SYSTEM_HEADER_DIR, NATIVE_SYSTEM_HEADER_COMPONENT, 0, 0, 1, 0 }, -+ { NATIVE_SYSTEM_HEADER_DIRVAR, NATIVE_SYSTEM_HEADER_COMPONENT, 0, 0, 1, 2 }, -+ { NATIVE_SYSTEM_HEADER_DIRVAR, NATIVE_SYSTEM_HEADER_COMPONENT, 0, 0, 1, 0 }, - #endif - { 0, 0, 0, 0, 0, 0 } - }; -diff --git a/gcc/cppdefault.h b/gcc/cppdefault.h -index 4a0186d1cf2..29e5d9da0dc 100644 ---- a/gcc/cppdefault.h -+++ b/gcc/cppdefault.h -@@ -33,7 +33,8 @@ - - struct default_include - { -- const char *const fname; /* The name of the directory. */ -+ const char *fname; /* The name of the directory. */ -+ - const char *const component; /* The component containing the directory - (see update_path in prefix.c) */ - const char cplusplus; /* Only look here if we're compiling C++. */ -diff --git a/gcc/gcc.c b/gcc/gcc.c -index 3fb64d453f1..cd0c7fbe961 100644 ---- a/gcc/gcc.c -+++ b/gcc/gcc.c -@@ -248,6 +248,8 @@ FILE *report_times_to_file = NULL; - #endif - static const char *target_system_root = DEFAULT_TARGET_SYSTEM_ROOT; - -+static char target_relocatable_prefix[4096] __attribute__ ((section (".gccrelocprefix"))) = SYSTEMLIBS_DIR; -+ - /* Nonzero means pass the updated target_system_root to the compiler. */ - - static int target_system_root_changed; -@@ -519,6 +521,7 @@ or with constant text in a single argument. - %G process LIBGCC_SPEC as a spec. - %R Output the concatenation of target_system_root and - target_sysroot_suffix. -+ %r Output the base path target_relocatable_prefix - %S process STARTFILE_SPEC as a spec. A capital S is actually used here. - %E process ENDFILE_SPEC as a spec. A capital E is actually used here. - %C process CPP_SPEC as a spec. -@@ -1487,10 +1490,10 @@ static const char *gcc_libexec_prefix; - gcc_exec_prefix is set because, in that case, we know where the - compiler has been installed, and use paths relative to that - location instead. */ --static const char *const standard_exec_prefix = STANDARD_EXEC_PREFIX; --static const char *const standard_libexec_prefix = STANDARD_LIBEXEC_PREFIX; --static const char *const standard_bindir_prefix = STANDARD_BINDIR_PREFIX; --static const char *const standard_startfile_prefix = STANDARD_STARTFILE_PREFIX; -+static char standard_exec_prefix[4096] __attribute__ ((section (".gccrelocprefix"))) = STANDARD_EXEC_PREFIX; -+static char standard_libexec_prefix[4096] __attribute__ ((section (".gccrelocprefix"))) = STANDARD_LIBEXEC_PREFIX; -+static char standard_bindir_prefix[4096] __attribute__ ((section (".gccrelocprefix"))) = STANDARD_BINDIR_PREFIX; -+static char *const standard_startfile_prefix = STANDARD_STARTFILE_PREFIX; - - /* For native compilers, these are well-known paths containing - components that may be provided by the system. For cross -@@ -1498,9 +1501,9 @@ static const char *const standard_startfile_prefix = STANDARD_STARTFILE_PREFIX; - static const char *md_exec_prefix = MD_EXEC_PREFIX; - static const char *md_startfile_prefix = MD_STARTFILE_PREFIX; - static const char *md_startfile_prefix_1 = MD_STARTFILE_PREFIX_1; --static const char *const standard_startfile_prefix_1 -+static char standard_startfile_prefix_1[4096] __attribute__ ((section (".gccrelocprefix"))) - = STANDARD_STARTFILE_PREFIX_1; --static const char *const standard_startfile_prefix_2 -+static char standard_startfile_prefix_2[4096] __attribute__ ((section (".gccrelocprefix"))) - = STANDARD_STARTFILE_PREFIX_2; - - /* A relative path to be used in finding the location of tools -@@ -5849,6 +5852,11 @@ do_spec_1 (const char *spec, int inswitch, const char *soft_matched_part) - } - break; - -+ case 'r': -+ obstack_grow (&obstack, target_relocatable_prefix, -+ strlen (target_relocatable_prefix)); -+ break; -+ - case 'S': - value = do_spec_1 (startfile_spec, 0, NULL); - if (value != 0) --- -2.21.0 - diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-8.3/0028-Search-target-sysroot-gcc-version-specific-dirs-with.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-8.3/0028-Search-target-sysroot-gcc-version-specific-dirs-with.patch deleted file mode 100644 index 1b25d780..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-8.3/0028-Search-target-sysroot-gcc-version-specific-dirs-with.patch +++ /dev/null @@ -1,102 +0,0 @@ -From 62240d4c725ea0b43abfb901ddad90e83e29a25c Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Mon, 7 Dec 2015 23:41:45 +0000 -Subject: [PATCH 28/40] Search target sysroot gcc version specific dirs with - multilib. - -We install the gcc libraries (such as crtbegin.p) into -//5.2.0/ -which is a default search path for GCC (aka multi_suffix in the -code below). is 'machine' in gcc's terminology. We use -these directories so that multiple gcc versions could in theory -co-exist on target. - -We only want to build one gcc-cross-canadian per arch and have this work -for all multilibs. can be handled by mapping the multilib - to the one used by gcc-cross-canadian, e.g. -mips64-polkmllib32-linux -is symlinked to by mips64-poky-linux. - -The default gcc search path in the target sysroot for a "lib64" mutlilib -is: - -/lib32/mips64-poky-linux/5.2.0/ -/lib32/../lib64/ -/usr/lib32/mips64-poky-linux/5.2.0/ -/usr/lib32/../lib64/ -/lib32/ -/usr/lib32/ - -which means that the lib32 crtbegin.o will be found and the lib64 ones -will not which leads to compiler failures. - -This patch injects a multilib version of that path first so the lib64 -binaries can be found first. With this change the search path becomes: - -/lib32/../lib64/mips64-poky-linux/5.2.0/ -/lib32/mips64-poky-linux/5.2.0/ -/lib32/../lib64/ -/usr/lib32/../lib64/mips64-poky-linux/5.2.0/ -/usr/lib32/mips64-poky-linux/5.2.0/ -/usr/lib32/../lib64/ -/lib32/ -/usr/lib32/ - -Upstream-Status: Pending -RP 2015/7/31 - -Signed-off-by: Khem Raj ---- - gcc/gcc.c | 29 ++++++++++++++++++++++++++++- - 1 file changed, 28 insertions(+), 1 deletion(-) - -diff --git a/gcc/gcc.c b/gcc/gcc.c -index cd0c7fbe961..f6f3aa077c8 100644 ---- a/gcc/gcc.c -+++ b/gcc/gcc.c -@@ -2527,7 +2527,7 @@ for_each_path (const struct path_prefix *paths, - if (path == NULL) - { - len = paths->max_len + extra_space + 1; -- len += MAX (MAX (suffix_len, multi_os_dir_len), multiarch_len); -+ len += MAX ((suffix_len + multi_os_dir_len), multiarch_len); - path = XNEWVEC (char, len); - } - -@@ -2539,6 +2539,33 @@ for_each_path (const struct path_prefix *paths, - /* Look first in MACHINE/VERSION subdirectory. */ - if (!skip_multi_dir) - { -+ if (!(pl->os_multilib ? skip_multi_os_dir : skip_multi_dir)) -+ { -+ const char *this_multi; -+ size_t this_multi_len; -+ -+ if (pl->os_multilib) -+ { -+ this_multi = multi_os_dir; -+ this_multi_len = multi_os_dir_len; -+ } -+ else -+ { -+ this_multi = multi_dir; -+ this_multi_len = multi_dir_len; -+ } -+ -+ /* Look in multilib MACHINE/VERSION subdirectory first */ -+ if (this_multi_len) -+ { -+ memcpy (path + len, this_multi, this_multi_len + 1); -+ memcpy (path + len + this_multi_len, multi_suffix, suffix_len + 1); -+ ret = callback (path, callback_info); -+ if (ret) -+ break; -+ } -+ } -+ - memcpy (path + len, multi_suffix, suffix_len + 1); - ret = callback (path, callback_info); - if (ret) --- -2.21.0 - diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-8.3/0029-Fix-various-_FOR_BUILD-and-related-variables.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-8.3/0029-Fix-various-_FOR_BUILD-and-related-variables.patch deleted file mode 100644 index 0c8bdb17..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-8.3/0029-Fix-various-_FOR_BUILD-and-related-variables.patch +++ /dev/null @@ -1,137 +0,0 @@ -From 1377c738e31a1e1599cfab189485a9459f803e79 Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Mon, 7 Dec 2015 23:42:45 +0000 -Subject: [PATCH 29/40] Fix various _FOR_BUILD and related variables - -When doing a FOR_BUILD thing, you have to override CFLAGS with -CFLAGS_FOR_BUILD. And if you use C++, you also have to override -CXXFLAGS with CXXFLAGS_FOR_BUILD. -Without this, when building for mingw, you end up trying to use -the mingw headers for a host build. - -The same goes for other variables as well, such as CPPFLAGS, -CPP, and GMPINC. - -Upstream-Status: Pending - -Signed-off-by: Peter Seebach -Signed-off-by: Mark Hatle -Signed-off-by: Khem Raj ---- - Makefile.in | 6 ++++++ - Makefile.tpl | 5 +++++ - gcc/Makefile.in | 2 +- - gcc/configure | 2 +- - gcc/configure.ac | 2 +- - 5 files changed, 14 insertions(+), 3 deletions(-) - -diff --git a/Makefile.in b/Makefile.in -index b426d4f9350..a2af9905cce 100644 ---- a/Makefile.in -+++ b/Makefile.in -@@ -152,6 +152,7 @@ BUILD_EXPORTS = \ - CPP="$(CC_FOR_BUILD) -E"; export CPP; \ - CFLAGS="$(CFLAGS_FOR_BUILD)"; export CFLAGS; \ - CONFIG_SHELL="$(SHELL)"; export CONFIG_SHELL; \ -+ CPPFLAGS="$(CPPFLAGS_FOR_BUILD)"; export CPPFLAGS; \ - CXX="$(CXX_FOR_BUILD)"; export CXX; \ - CXXFLAGS="$(CXXFLAGS_FOR_BUILD)"; export CXXFLAGS; \ - GFORTRAN="$(GFORTRAN_FOR_BUILD)"; export GFORTRAN; \ -@@ -169,6 +170,9 @@ BUILD_EXPORTS = \ - # built for the build system to override those in BASE_FLAGS_TO_PASS. - EXTRA_BUILD_FLAGS = \ - CFLAGS="$(CFLAGS_FOR_BUILD)" \ -+ CXXFLAGS="$(CXXFLAGS_FOR_BUILD)" \ -+ CPP="$(CC_FOR_BUILD) -E" \ -+ CPPFLAGS="$(CPPFLAGS_FOR_BUILD)" \ - LDFLAGS="$(LDFLAGS_FOR_BUILD)" - - # This is the list of directories to built for the host system. -@@ -186,6 +190,7 @@ HOST_SUBDIR = @host_subdir@ - HOST_EXPORTS = \ - $(BASE_EXPORTS) \ - CC="$(CC)"; export CC; \ -+ CPP="$(CC) -E"; export CPP; \ - ADA_CFLAGS="$(ADA_CFLAGS)"; export ADA_CFLAGS; \ - CFLAGS="$(CFLAGS)"; export CFLAGS; \ - CONFIG_SHELL="$(SHELL)"; export CONFIG_SHELL; \ -@@ -743,6 +748,7 @@ BASE_FLAGS_TO_PASS = \ - "CC_FOR_BUILD=$(CC_FOR_BUILD)" \ - "CFLAGS_FOR_BUILD=$(CFLAGS_FOR_BUILD)" \ - "CXX_FOR_BUILD=$(CXX_FOR_BUILD)" \ -+ "CXXFLAGS_FOR_BUILD=$(CXXFLAGS_FOR_BUILD)" \ - "EXPECT=$(EXPECT)" \ - "FLEX=$(FLEX)" \ - "INSTALL=$(INSTALL)" \ -diff --git a/Makefile.tpl b/Makefile.tpl -index 1f23b79b4b2..6c5652e811d 100644 ---- a/Makefile.tpl -+++ b/Makefile.tpl -@@ -154,6 +154,7 @@ BUILD_EXPORTS = \ - CC="$(CC_FOR_BUILD)"; export CC; \ - CFLAGS="$(CFLAGS_FOR_BUILD)"; export CFLAGS; \ - CONFIG_SHELL="$(SHELL)"; export CONFIG_SHELL; \ -+ CPPFLAGS="$(CPPFLAGS_FOR_BUILD)"; export CPPFLAGS; \ - CXX="$(CXX_FOR_BUILD)"; export CXX; \ - CXXFLAGS="$(CXXFLAGS_FOR_BUILD)"; export CXXFLAGS; \ - GFORTRAN="$(GFORTRAN_FOR_BUILD)"; export GFORTRAN; \ -@@ -171,6 +172,9 @@ BUILD_EXPORTS = \ - # built for the build system to override those in BASE_FLAGS_TO_PASS. - EXTRA_BUILD_FLAGS = \ - CFLAGS="$(CFLAGS_FOR_BUILD)" \ -+ CXXFLAGS="$(CXXFLAGS_FOR_BUILD)" \ -+ CPP="$(CC_FOR_BUILD) -E" \ -+ CPPFLAGS="$(CPPFLAGS_FOR_BUILD)" \ - LDFLAGS="$(LDFLAGS_FOR_BUILD)" - - # This is the list of directories to built for the host system. -@@ -188,6 +192,7 @@ HOST_SUBDIR = @host_subdir@ - HOST_EXPORTS = \ - $(BASE_EXPORTS) \ - CC="$(CC)"; export CC; \ -+ CPP="$(CC) -E"; export CPP; \ - ADA_CFLAGS="$(ADA_CFLAGS)"; export ADA_CFLAGS; \ - CFLAGS="$(CFLAGS)"; export CFLAGS; \ - CONFIG_SHELL="$(SHELL)"; export CONFIG_SHELL; \ -diff --git a/gcc/Makefile.in b/gcc/Makefile.in -index 5ae693fb06c..02ee0aa72f4 100644 ---- a/gcc/Makefile.in -+++ b/gcc/Makefile.in -@@ -801,7 +801,7 @@ BUILD_LDFLAGS=@BUILD_LDFLAGS@ - BUILD_NO_PIE_FLAG = @BUILD_NO_PIE_FLAG@ - BUILD_LDFLAGS += $(BUILD_NO_PIE_FLAG) - BUILD_CPPFLAGS= -I. -I$(@D) -I$(srcdir) -I$(srcdir)/$(@D) \ -- -I$(srcdir)/../include @INCINTL@ $(CPPINC) $(CPPFLAGS) -+ -I$(srcdir)/../include @INCINTL@ $(CPPINC) $(CPPFLAGS_FOR_BUILD) - - # Actual name to use when installing a native compiler. - GCC_INSTALL_NAME := $(shell echo gcc|sed '$(program_transform_name)') -diff --git a/gcc/configure b/gcc/configure -index 3d9dcbdc93d..aa127a4f6a4 100755 ---- a/gcc/configure -+++ b/gcc/configure -@@ -11797,7 +11797,7 @@ else - CC="${CC_FOR_BUILD}" CFLAGS="${CFLAGS_FOR_BUILD}" \ - CXX="${CXX_FOR_BUILD}" CXXFLAGS="${CXXFLAGS_FOR_BUILD}" \ - LD="${LD_FOR_BUILD}" LDFLAGS="${LDFLAGS_FOR_BUILD}" \ -- GMPINC="" CPPFLAGS="${CPPFLAGS} -DGENERATOR_FILE" \ -+ GMPINC="" CPPFLAGS="${CPPFLAGS_FOR_BUILD} -DGENERATOR_FILE" \ - ${realsrcdir}/configure \ - --enable-languages=${enable_languages-all} \ - --target=$target_alias --host=$build_alias --build=$build_alias -diff --git a/gcc/configure.ac b/gcc/configure.ac -index e09c840b605..18bf53c7e0a 100644 ---- a/gcc/configure.ac -+++ b/gcc/configure.ac -@@ -1708,7 +1708,7 @@ else - CC="${CC_FOR_BUILD}" CFLAGS="${CFLAGS_FOR_BUILD}" \ - CXX="${CXX_FOR_BUILD}" CXXFLAGS="${CXXFLAGS_FOR_BUILD}" \ - LD="${LD_FOR_BUILD}" LDFLAGS="${LDFLAGS_FOR_BUILD}" \ -- GMPINC="" CPPFLAGS="${CPPFLAGS} -DGENERATOR_FILE" \ -+ GMPINC="" CPPFLAGS="${CPPFLAGS_FOR_BUILD} -DGENERATOR_FILE" \ - ${realsrcdir}/configure \ - --enable-languages=${enable_languages-all} \ - --target=$target_alias --host=$build_alias --build=$build_alias --- -2.21.0 - diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-8.3/0030-nios2-Define-MUSL_DYNAMIC_LINKER.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-8.3/0030-nios2-Define-MUSL_DYNAMIC_LINKER.patch deleted file mode 100644 index 04e126c5..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-8.3/0030-nios2-Define-MUSL_DYNAMIC_LINKER.patch +++ /dev/null @@ -1,28 +0,0 @@ -From 75da3cc9ca2d3de8c2062f23bf4f72415741ef83 Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Tue, 2 Feb 2016 10:26:10 -0800 -Subject: [PATCH 30/40] nios2: Define MUSL_DYNAMIC_LINKER - -Upstream-Status: Pending - -Signed-off-by: Marek Vasut -Signed-off-by: Khem Raj ---- - gcc/config/nios2/linux.h | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/gcc/config/nios2/linux.h b/gcc/config/nios2/linux.h -index 4729105626d..36181eb7b85 100644 ---- a/gcc/config/nios2/linux.h -+++ b/gcc/config/nios2/linux.h -@@ -30,6 +30,7 @@ - #define CPP_SPEC "%{posix:-D_POSIX_SOURCE} %{pthread:-D_REENTRANT}" - - #define GLIBC_DYNAMIC_LINKER "/lib/ld-linux-nios2.so.1" -+#define MUSL_DYNAMIC_LINKER "/lib/ld-musl-nios2.so.1" - - #undef LINK_SPEC - #define LINK_SPEC LINK_SPEC_ENDIAN \ --- -2.21.0 - diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-8.3/0031-Add-ssp_nonshared-to-link-commandline-for-musl-targe.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-8.3/0031-Add-ssp_nonshared-to-link-commandline-for-musl-targe.patch deleted file mode 100644 index 002cf2be..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-8.3/0031-Add-ssp_nonshared-to-link-commandline-for-musl-targe.patch +++ /dev/null @@ -1,87 +0,0 @@ -From f715aeef294b85fa593ef69e6d0114cc7b15312b Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Tue, 27 Jun 2017 18:10:54 -0700 -Subject: [PATCH 31/40] Add ssp_nonshared to link commandline for musl targets - -when -fstack-protector options are enabled we need to -link with ssp_shared on musl since it does not provide -the __stack_chk_fail_local() so essentially it provides -libssp but not libssp_nonshared something like -TARGET_LIBC_PROVIDES_SSP_BUT_NOT_SSP_NONSHARED - where-as for glibc the needed symbols -are already present in libc_nonshared library therefore -we do not need any library helper on glibc based systems -but musl needs the libssp_noshared from gcc - -Upstream-Status: Pending - -Signed-off-by: Khem Raj ---- - gcc/config/linux.h | 7 +++++++ - gcc/config/rs6000/linux.h | 10 ++++++++++ - gcc/config/rs6000/linux64.h | 10 ++++++++++ - 3 files changed, 27 insertions(+) - -diff --git a/gcc/config/linux.h b/gcc/config/linux.h -index 487b0c0923b..4769d089538 100644 ---- a/gcc/config/linux.h -+++ b/gcc/config/linux.h -@@ -182,6 +182,13 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see - { GCC_INCLUDE_DIR, "GCC", 0, 1, 0, 0 }, \ - { 0, 0, 0, 0, 0, 0 } \ - } -+#ifdef TARGET_LIBC_PROVIDES_SSP -+#undef LINK_SSP_SPEC -+#define LINK_SSP_SPEC "%{fstack-protector|fstack-protector-all" \ -+ "|fstack-protector-strong|fstack-protector-explicit" \ -+ ":-lssp_nonshared}" -+#endif -+ - #endif - - #if (DEFAULT_LIBC == LIBC_UCLIBC) && defined (SINGLE_LIBC) /* uClinux */ -diff --git a/gcc/config/rs6000/linux.h b/gcc/config/rs6000/linux.h -index 01b40c762f6..e7c5e92215c 100644 ---- a/gcc/config/rs6000/linux.h -+++ b/gcc/config/rs6000/linux.h -@@ -92,6 +92,16 @@ - " -m elf32ppclinux") - #endif - -+/* link libssp_nonshared.a with musl */ -+#if DEFAULT_LIBC == LIBC_MUSL -+#ifdef TARGET_LIBC_PROVIDES_SSP -+#undef LINK_SSP_SPEC -+#define LINK_SSP_SPEC "%{fstack-protector|fstack-protector-all" \ -+ "|fstack-protector-strong|fstack-protector-explicit" \ -+ ":-lssp_nonshared}" -+#endif -+#endif -+ - #undef LINK_OS_LINUX_SPEC - #define LINK_OS_LINUX_SPEC LINK_OS_LINUX_EMUL " %{!shared: %{!static: \ - %{!static-pie: \ -diff --git a/gcc/config/rs6000/linux64.h b/gcc/config/rs6000/linux64.h -index 54aa8d957e7..619e113e2b8 100644 ---- a/gcc/config/rs6000/linux64.h -+++ b/gcc/config/rs6000/linux64.h -@@ -466,6 +466,16 @@ extern int dot_symbols; - " -m elf64ppc") - #endif - -+/* link libssp_nonshared.a with musl */ -+#if DEFAULT_LIBC == LIBC_MUSL -+#ifdef TARGET_LIBC_PROVIDES_SSP -+#undef LINK_SSP_SPEC -+#define LINK_SSP_SPEC "%{fstack-protector|fstack-protector-all" \ -+ "|fstack-protector-strong|fstack-protector-explicit" \ -+ ":-lssp_nonshared}" -+#endif -+#endif -+ - #define LINK_OS_LINUX_SPEC32 LINK_OS_LINUX_EMUL32 " %{!shared: %{!static: \ - %{!static-pie: \ - %{rdynamic:-export-dynamic} \ --- -2.21.0 - diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-8.3/0032-libgcc-Add-knob-to-use-ldbl-128-on-ppc.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-8.3/0032-libgcc-Add-knob-to-use-ldbl-128-on-ppc.patch deleted file mode 100644 index 025caba3..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-8.3/0032-libgcc-Add-knob-to-use-ldbl-128-on-ppc.patch +++ /dev/null @@ -1,125 +0,0 @@ -From 6dfbca78b8d253aecf9cbb5e68e04b8dd3d6a543 Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Fri, 29 Apr 2016 20:03:28 +0000 -Subject: [PATCH 32/40] libgcc: Add knob to use ldbl-128 on ppc - -musl does not support ldbl 128 so we can not assume -that linux as a whole supports ldbl-128 bits, instead -act upon configure option passed to gcc and assume no -on musl and yes otherwise if no option is passed since -default behaviour is to assume ldbl128 it does not -change the defaults - -Upstream-Status: Pending - -Signed-off-by: Khem Raj ---- - libgcc/Makefile.in | 1 + - libgcc/config/rs6000/t-linux | 5 ++++- - libgcc/configure | 18 ++++++++++++++++++ - libgcc/configure.ac | 12 ++++++++++++ - 4 files changed, 35 insertions(+), 1 deletion(-) - mode change 100644 => 100755 libgcc/configure - -diff --git a/libgcc/Makefile.in b/libgcc/Makefile.in -index dd8cee99fd3..b5f478af382 100644 ---- a/libgcc/Makefile.in -+++ b/libgcc/Makefile.in -@@ -48,6 +48,7 @@ unwind_header = @unwind_header@ - md_unwind_header = @md_unwind_header@ - sfp_machine_header = @sfp_machine_header@ - thread_header = @thread_header@ -+with_ldbl128 = @with_ldbl128@ - - host_noncanonical = @host_noncanonical@ - real_host_noncanonical = @real_host_noncanonical@ -diff --git a/libgcc/config/rs6000/t-linux b/libgcc/config/rs6000/t-linux -index 4f6d4c4a4d2..c50dd94a2da 100644 ---- a/libgcc/config/rs6000/t-linux -+++ b/libgcc/config/rs6000/t-linux -@@ -1,3 +1,6 @@ - SHLIB_MAPFILES += $(srcdir)/config/rs6000/libgcc-glibc.ver - --HOST_LIBGCC2_CFLAGS += -mlong-double-128 -mno-minimal-toc -+ifeq ($(with_ldbl128),yes) -+HOST_LIBGCC2_CFLAGS += -mlong-double-128 -+endif -+HOST_LIBGCC2_CFLAGS += -mno-minimal-toc -diff --git a/libgcc/configure b/libgcc/configure -old mode 100644 -new mode 100755 -index b2f3f870844..ed806587c17 ---- a/libgcc/configure -+++ b/libgcc/configure -@@ -619,6 +619,7 @@ build_vendor - build_cpu - build - with_aix_soname -+with_ldbl128 - enable_vtable_verify - enable_shared - libgcc_topdir -@@ -668,6 +669,7 @@ with_cross_host - with_ld - enable_shared - enable_vtable_verify -+with_long_double_128 - with_aix_soname - enable_version_specific_runtime_libs - with_slibdir -@@ -1329,6 +1331,7 @@ Optional Packages: - --with-target-subdir=SUBDIR Configuring in a subdirectory for target - --with-cross-host=HOST Configuring with a cross compiler - --with-ld arrange to use the specified ld (full pathname) -+ --with-long-double-128 use 128-bit long double by default - --with-aix-soname=aix|svr4|both - shared library versioning (aka "SONAME") variant to - provide on AIX -@@ -2213,6 +2216,21 @@ fi - - - -+# Check whether --with-long-double-128 was given. -+if test "${with_long_double_128+set}" = set; then : -+ withval=$with_long_double_128; with_ldbl128="$with_long_double_128" -+else -+ case "${host}" in -+ power*-*-musl*) -+ with_ldbl128="no";; -+ *) with_ldbl128="yes";; -+ esac -+ -+fi -+ -+ -+ -+ - # Check whether --with-aix-soname was given. - if test "${with_aix_soname+set}" = set; then : - withval=$with_aix_soname; case "${host}:${enable_shared}" in -diff --git a/libgcc/configure.ac b/libgcc/configure.ac -index b59aa746afc..42220a263c5 100644 ---- a/libgcc/configure.ac -+++ b/libgcc/configure.ac -@@ -78,6 +78,18 @@ AC_ARG_ENABLE(vtable-verify, - [enable_vtable_verify=no]) - AC_SUBST(enable_vtable_verify) - -+AC_ARG_WITH(long-double-128, -+[AS_HELP_STRING([--with-long-double-128], -+ [use 128-bit long double by default])], -+ with_ldbl128="$with_long_double_128", -+[case "${host}" in -+ power*-*-musl*) -+ with_ldbl128="no";; -+ *) with_ldbl128="yes";; -+ esac -+]) -+AC_SUBST(with_ldbl128) -+ - AC_ARG_WITH(aix-soname, - [AS_HELP_STRING([--with-aix-soname=aix|svr4|both], - [shared library versioning (aka "SONAME") variant to provide on AIX])], --- -2.21.0 - diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-8.3/0033-Link-libgcc-using-LDFLAGS-not-just-SHLIB_LDFLAGS.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-8.3/0033-Link-libgcc-using-LDFLAGS-not-just-SHLIB_LDFLAGS.patch deleted file mode 100644 index 343f7aad..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-8.3/0033-Link-libgcc-using-LDFLAGS-not-just-SHLIB_LDFLAGS.patch +++ /dev/null @@ -1,29 +0,0 @@ -From 7e55147e8e609ace6f9eecd86a956636687671f0 Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Wed, 4 May 2016 21:11:34 -0700 -Subject: [PATCH 33/40] Link libgcc using LDFLAGS, not just SHLIB_LDFLAGS - -Upstream-Status: Pending - -Signed-off-by: Christopher Larson -Signed-off-by: Khem Raj ---- - libgcc/config/t-slibgcc | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/libgcc/config/t-slibgcc b/libgcc/config/t-slibgcc -index 7e60b621a2d..ea22ede3361 100644 ---- a/libgcc/config/t-slibgcc -+++ b/libgcc/config/t-slibgcc -@@ -32,7 +32,7 @@ SHLIB_INSTALL_SOLINK = $(LN_S) $(SHLIB_SONAME) \ - $(DESTDIR)$(slibdir)$(SHLIB_SLIBDIR_QUAL)/$(SHLIB_SOLINK) - - SHLIB_LINK = $(CC) $(LIBGCC2_CFLAGS) -shared -nodefaultlibs \ -- $(SHLIB_LDFLAGS) \ -+ $(LDFLAGS) $(SHLIB_LDFLAGS) \ - -o $(SHLIB_DIR)/$(SHLIB_SONAME).tmp @multilib_flags@ \ - $(SHLIB_OBJS) $(SHLIB_LC) && \ - rm -f $(SHLIB_DIR)/$(SHLIB_SOLINK) && \ --- -2.21.0 - diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-8.3/0034-libgcc_s-Use-alias-for-__cpu_indicator_init-instead-.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-8.3/0034-libgcc_s-Use-alias-for-__cpu_indicator_init-instead-.patch deleted file mode 100644 index 92224cc5..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-8.3/0034-libgcc_s-Use-alias-for-__cpu_indicator_init-instead-.patch +++ /dev/null @@ -1,85 +0,0 @@ -From 46ca51dd413330bb8425b06283e7667bfb507c3d Mon Sep 17 00:00:00 2001 -From: Szabolcs Nagy -Date: Sat, 24 Oct 2015 20:09:53 +0000 -Subject: [PATCH 34/40] libgcc_s: Use alias for __cpu_indicator_init instead of symver - -Adapter from - -https://gcc.gnu.org/ml/gcc-patches/2015-05/msg00899.html - -This fix was debated but hasnt been applied gcc upstream since -they expect musl to support '@' in symbol versioning which is -a sun/gnu versioning extention. This patch however avoids the -need for the '@' symbols at all - -libgcc/Changelog: - -2015-05-11 Szabolcs Nagy - - * config/i386/cpuinfo.c (__cpu_indicator_init_local): Add. - (__cpu_indicator_init@GCC_4.8.0, __cpu_model@GCC_4.8.0): Remove. - - * config/i386/t-linux (HOST_LIBGCC2_CFLAGS): Remove -DUSE_ELF_SYMVER. - -gcc/Changelog: - -2015-05-11 Szabolcs Nagy - - * config/i386/i386.c (ix86_expand_builtin): Make __builtin_cpu_init - call __cpu_indicator_init_local instead of __cpu_indicator_init. - -Upstream-Status: Pending - -Signed-off-by: Khem Raj ---- - gcc/config/i386/i386.c | 4 ++-- - libgcc/config/i386/cpuinfo.c | 6 +++--- - libgcc/config/i386/t-linux | 2 +- - 3 files changed, 6 insertions(+), 6 deletions(-) - -diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c -index a88a29b51e6..6f3f5187970 100644 ---- a/gcc/config/i386/i386.c -+++ b/gcc/config/i386/i386.c -@@ -36555,10 +36555,10 @@ ix86_expand_builtin (tree exp, rtx target, rtx subtarget, - { - case IX86_BUILTIN_CPU_INIT: - { -- /* Make it call __cpu_indicator_init in libgcc. */ -+ /* Make it call __cpu_indicator_init_local in libgcc.a. */ - tree call_expr, fndecl, type; - type = build_function_type_list (integer_type_node, NULL_TREE); -- fndecl = build_fn_decl ("__cpu_indicator_init", type); -+ fndecl = build_fn_decl ("__cpu_indicator_init_local", type); - call_expr = build_call_expr (fndecl, 0); - return expand_expr (call_expr, target, mode, EXPAND_NORMAL); - } -diff --git a/libgcc/config/i386/cpuinfo.c b/libgcc/config/i386/cpuinfo.c -index d1853d5515b..864150c9249 100644 ---- a/libgcc/config/i386/cpuinfo.c -+++ b/libgcc/config/i386/cpuinfo.c -@@ -485,7 +485,7 @@ __cpu_indicator_init (void) - return 0; - } - --#if defined SHARED && defined USE_ELF_SYMVER --__asm__ (".symver __cpu_indicator_init, __cpu_indicator_init@GCC_4.8.0"); --__asm__ (".symver __cpu_model, __cpu_model@GCC_4.8.0"); -+#ifndef SHARED -+int __cpu_indicator_init_local (void) -+ __attribute__ ((weak, alias ("__cpu_indicator_init"))); - #endif -diff --git a/libgcc/config/i386/t-linux b/libgcc/config/i386/t-linux -index 8506a635790..564296f788e 100644 ---- a/libgcc/config/i386/t-linux -+++ b/libgcc/config/i386/t-linux -@@ -3,5 +3,5 @@ - # t-slibgcc-elf-ver and t-linux - SHLIB_MAPFILES = libgcc-std.ver $(srcdir)/config/i386/libgcc-glibc.ver - --HOST_LIBGCC2_CFLAGS += -mlong-double-80 -DUSE_ELF_SYMVER $(CET_FLAGS) -+HOST_LIBGCC2_CFLAGS += -mlong-double-80 $(CET_FLAGS) - CRTSTUFF_T_CFLAGS += $(CET_FLAGS) --- -2.21.0 - diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-8.3/0035-sync-gcc-stddef.h-with-musl.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-8.3/0035-sync-gcc-stddef.h-with-musl.patch deleted file mode 100644 index 6ecd6e97..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-8.3/0035-sync-gcc-stddef.h-with-musl.patch +++ /dev/null @@ -1,91 +0,0 @@ -From 38d401fb6ab555d09f4a9a677721dde0743876e1 Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Fri, 3 Feb 2017 12:56:00 -0800 -Subject: [PATCH 35/40] sync gcc stddef.h with musl - -musl defines ptrdiff_t size_t and wchar_t -so dont define them here if musl is definining them - -Upstream-Status: Pending - -Signed-off-by: Khem Raj ---- - gcc/ginclude/stddef.h | 9 +++++++++ - 1 file changed, 9 insertions(+) - -diff --git a/gcc/ginclude/stddef.h b/gcc/ginclude/stddef.h -index 31b96a7e5e1..438a3ce7c56 100644 ---- a/gcc/ginclude/stddef.h -+++ b/gcc/ginclude/stddef.h -@@ -134,6 +134,7 @@ _TYPE_wchar_t; - #ifndef ___int_ptrdiff_t_h - #ifndef _GCC_PTRDIFF_T - #ifndef _PTRDIFF_T_DECLARED /* DragonFly */ -+#ifndef __DEFINED_ptrdiff_t /* musl */ - #define _PTRDIFF_T - #define _T_PTRDIFF_ - #define _T_PTRDIFF -@@ -143,10 +144,12 @@ _TYPE_wchar_t; - #define ___int_ptrdiff_t_h - #define _GCC_PTRDIFF_T - #define _PTRDIFF_T_DECLARED -+#define __DEFINED_ptrdiff_t /* musl */ - #ifndef __PTRDIFF_TYPE__ - #define __PTRDIFF_TYPE__ long int - #endif - typedef __PTRDIFF_TYPE__ ptrdiff_t; -+#endif /* __DEFINED_ptrdiff_t */ - #endif /* _PTRDIFF_T_DECLARED */ - #endif /* _GCC_PTRDIFF_T */ - #endif /* ___int_ptrdiff_t_h */ -@@ -184,6 +187,7 @@ typedef __PTRDIFF_TYPE__ ptrdiff_t; - #ifndef _GCC_SIZE_T - #ifndef _SIZET_ - #ifndef __size_t -+#ifndef __DEFINED_size_t /* musl */ - #define __size_t__ /* BeOS */ - #define __SIZE_T__ /* Cray Unicos/Mk */ - #define _SIZE_T -@@ -200,6 +204,7 @@ typedef __PTRDIFF_TYPE__ ptrdiff_t; - #define ___int_size_t_h - #define _GCC_SIZE_T - #define _SIZET_ -+#define __DEFINED_size_t /* musl */ - #if (defined (__FreeBSD__) && (__FreeBSD__ >= 5)) \ - || defined(__DragonFly__) \ - || defined(__FreeBSD_kernel__) -@@ -235,6 +240,7 @@ typedef long ssize_t; - #endif /* _SIZE_T */ - #endif /* __SIZE_T__ */ - #endif /* __size_t__ */ -+#endif /* __DEFINED_size_t */ - #undef __need_size_t - #endif /* _STDDEF_H or __need_size_t. */ - -@@ -264,6 +270,7 @@ typedef long ssize_t; - #ifndef ___int_wchar_t_h - #ifndef __INT_WCHAR_T_H - #ifndef _GCC_WCHAR_T -+#ifndef __DEFINED_wchar_t /* musl */ - #define __wchar_t__ /* BeOS */ - #define __WCHAR_T__ /* Cray Unicos/Mk */ - #define _WCHAR_T -@@ -279,6 +286,7 @@ typedef long ssize_t; - #define __INT_WCHAR_T_H - #define _GCC_WCHAR_T - #define _WCHAR_T_DECLARED -+#define __DEFINED_wchar_t /* musl */ - - /* On BSD/386 1.1, at least, machine/ansi.h defines _BSD_WCHAR_T_ - instead of _WCHAR_T_, and _BSD_RUNE_T_ (which, unlike the other -@@ -344,6 +352,7 @@ typedef __WCHAR_TYPE__ wchar_t; - #endif - #endif /* __WCHAR_T__ */ - #endif /* __wchar_t__ */ -+#endif /* __DEFINED_wchar_t musl */ - #undef __need_wchar_t - #endif /* _STDDEF_H or __need_wchar_t. */ - --- -2.21.0 - diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-8.3/0036-fix-segmentation-fault-in-precompiled-header-generat.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-8.3/0036-fix-segmentation-fault-in-precompiled-header-generat.patch deleted file mode 100644 index c4ce5db5..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-8.3/0036-fix-segmentation-fault-in-precompiled-header-generat.patch +++ /dev/null @@ -1,60 +0,0 @@ -From a9bb29a4e9b478f9b126e483467ce9031c33fe4f Mon Sep 17 00:00:00 2001 -From: Juro Bystricky -Date: Mon, 19 Mar 2018 22:31:20 -0700 -Subject: [PATCH 36/40] fix segmentation fault in precompiled header generation - -Prevent a segmentation fault which occurs when using incorrect -structure trying to access name of some named operators, such as -CPP_NOT, CPP_AND etc. "token->val.node.spelling" cannot be used in -those cases, as is may not be initialized at all. - -[YOCTO #11738] - -Upstream-Status: Pending - -Signed-off-by: Juro Bystricky -Signed-off-by: Khem Raj ---- - libcpp/lex.c | 26 +++++++++++++++++++++----- - 1 file changed, 21 insertions(+), 5 deletions(-) - -diff --git a/libcpp/lex.c b/libcpp/lex.c -index 37c365a3560..63480048db6 100644 ---- a/libcpp/lex.c -+++ b/libcpp/lex.c -@@ -3279,11 +3279,27 @@ cpp_spell_token (cpp_reader *pfile, const cpp_token *token, - spell_ident: - case SPELL_IDENT: - if (forstring) -- { -- memcpy (buffer, NODE_NAME (token->val.node.spelling), -- NODE_LEN (token->val.node.spelling)); -- buffer += NODE_LEN (token->val.node.spelling); -- } -+ { -+ if (token->type == CPP_NAME) -+ { -+ memcpy (buffer, NODE_NAME (token->val.node.spelling), -+ NODE_LEN (token->val.node.spelling)); -+ buffer += NODE_LEN (token->val.node.spelling); -+ break; -+ } -+ /* NAMED_OP, cannot use node.spelling */ -+ if (token->flags & NAMED_OP) -+ { -+ const char *str = cpp_named_operator2name (token->type); -+ if (str) -+ { -+ size_t len = strlen(str); -+ memcpy(buffer, str, len); -+ buffer += len; -+ } -+ break; -+ } -+ } - else - buffer = _cpp_spell_ident_ucns (buffer, token->val.node.node); - break; --- -2.21.0 - diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-8.3/0037-Fix-for-testsuite-failure.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-8.3/0037-Fix-for-testsuite-failure.patch deleted file mode 100644 index 70999dd4..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-8.3/0037-Fix-for-testsuite-failure.patch +++ /dev/null @@ -1,258 +0,0 @@ -From 1e5c1ef34d92b4157e1a24ca743d45f3a7375a5e Mon Sep 17 00:00:00 2001 -From: RAGHUNATH LOLUR -Date: Wed, 6 Dec 2017 22:52:26 -0800 -Subject: [PATCH 37/40] Fix for testsuite failure - -2017-11-16 Raghunath Lolur - - * gcc.dg/pr56275.c: If SSE is disabled, ensure that - "-mfpmath" is not set to use SSE. Set "-mfpmath=387". - * gcc.dg/pr68306.c: Likewise - * gcc.dg/pr68306-2.c: Likewise - * gcc.dg/pr68306-3.c: Likewise - * gcc.dg/pr69634.c: Likewise - * gcc.target/i386/amd64-abi-1.c: Likewise - * gcc.target/i386/funcspec-6.c: Likewise - * gcc.target/i386/interrupt-387-err-1.c: Likewise - * gcc.target/i386/isa-14.c: Likewise - * gcc.target/i386/pr44948-2b.c: Likewise - * gcc.target/i386/pr53425-1.c: Likewise - * gcc.target/i386/pr53425-2.c: Likewise - * gcc.target/i386/pr55247.c: Likewise - * gcc.target/i386/pr59644.c: Likewise - * gcc.target/i386/pr62120.c: Likewise - * gcc.target/i386/pr70467-1.c: Likewise - * gcc.target/i386/warn-vect-op-1.c: Likewise - -If -Wall, -Werror are used during compilation various test cases fail -to compile. - -If SSE is disabled, be sure to -mfpmath=387 to resolve this. - -This patch removes the changes to Changelog from the original patch. -This will help us avoid conflicts. - -Upstream-Status: Pending - -Signed-off-by: Mark Hatle ---- - gcc/testsuite/gcc.dg/pr56275.c | 2 +- - gcc/testsuite/gcc.dg/pr68306-2.c | 2 +- - gcc/testsuite/gcc.dg/pr68306-3.c | 2 +- - gcc/testsuite/gcc.dg/pr68306.c | 2 +- - gcc/testsuite/gcc.dg/pr69634.c | 2 +- - gcc/testsuite/gcc.target/i386/amd64-abi-1.c | 2 +- - gcc/testsuite/gcc.target/i386/funcspec-6.c | 1 + - gcc/testsuite/gcc.target/i386/interrupt-387-err-1.c | 2 +- - gcc/testsuite/gcc.target/i386/isa-14.c | 2 +- - gcc/testsuite/gcc.target/i386/pr44948-2b.c | 2 +- - gcc/testsuite/gcc.target/i386/pr53425-1.c | 2 +- - gcc/testsuite/gcc.target/i386/pr53425-2.c | 2 +- - gcc/testsuite/gcc.target/i386/pr55247.c | 2 +- - gcc/testsuite/gcc.target/i386/pr59644.c | 2 +- - gcc/testsuite/gcc.target/i386/pr62120.c | 2 +- - gcc/testsuite/gcc.target/i386/pr70467-1.c | 2 +- - gcc/testsuite/gcc.target/i386/warn-vect-op-1.c | 2 +- - 17 files changed, 17 insertions(+), 16 deletions(-) - -diff --git a/gcc/testsuite/gcc.dg/pr56275.c b/gcc/testsuite/gcc.dg/pr56275.c -index b901bb2b199..a4f6c95e1a1 100644 ---- a/gcc/testsuite/gcc.dg/pr56275.c -+++ b/gcc/testsuite/gcc.dg/pr56275.c -@@ -1,6 +1,6 @@ - /* { dg-do compile } */ - /* { dg-options "-O2" } */ --/* { dg-additional-options "-mno-sse" { target { i?86-*-* x86_64-*-* } } } */ -+/* { dg-additional-options "-mno-sse -mfpmath=387" { target { i?86-*-* x86_64-*-* } } } */ - - typedef long long v2tw __attribute__ ((vector_size (2 * sizeof (long long)))); - -diff --git a/gcc/testsuite/gcc.dg/pr68306-2.c b/gcc/testsuite/gcc.dg/pr68306-2.c -index 4672ebe7987..2a368c484b6 100644 ---- a/gcc/testsuite/gcc.dg/pr68306-2.c -+++ b/gcc/testsuite/gcc.dg/pr68306-2.c -@@ -1,6 +1,6 @@ - /* { dg-do compile } */ - /* { dg-options "-O3" } */ --/* { dg-additional-options "-mno-sse -mno-mmx" { target i?86-*-* x86_64-*-* } } */ -+/* { dg-additional-options "-mno-sse -mno-mmx -mfpmath=387" { target i?86-*-* x86_64-*-* } } */ - - struct { - int tz_minuteswest; -diff --git a/gcc/testsuite/gcc.dg/pr68306-3.c b/gcc/testsuite/gcc.dg/pr68306-3.c -index f5a8c102cf8..df3390c64c2 100644 ---- a/gcc/testsuite/gcc.dg/pr68306-3.c -+++ b/gcc/testsuite/gcc.dg/pr68306-3.c -@@ -1,6 +1,6 @@ - /* { dg-do compile } */ - /* { dg-options "-O3" } */ --/* { dg-additional-options "-mno-sse -mno-mmx" { target i?86-*-* x86_64-*-* } } */ -+/* { dg-additional-options "-mno-sse -mno-mmx -mfpmath=387" { target i?86-*-* x86_64-*-* } } */ - /* { dg-additional-options "-mno-altivec -mno-vsx" { target powerpc*-*-* } } */ - - extern void fn2(); -diff --git a/gcc/testsuite/gcc.dg/pr68306.c b/gcc/testsuite/gcc.dg/pr68306.c -index 54e5b40f221..0813389e2c1 100644 ---- a/gcc/testsuite/gcc.dg/pr68306.c -+++ b/gcc/testsuite/gcc.dg/pr68306.c -@@ -1,6 +1,6 @@ - /* { dg-do compile } */ - /* { dg-options "-O3" } */ --/* { dg-additional-options "-mno-sse -mno-mmx" { target i?86-*-* x86_64-*-* } } */ -+/* { dg-additional-options "-mno-sse -mno-mmx -mfpmath=387" { target i?86-*-* x86_64-*-* } } */ - - enum powerpc_pmc_type { PPC_PMC_IBM }; - struct { -diff --git a/gcc/testsuite/gcc.dg/pr69634.c b/gcc/testsuite/gcc.dg/pr69634.c -index 60a56149463..bcc23f9ccd6 100644 ---- a/gcc/testsuite/gcc.dg/pr69634.c -+++ b/gcc/testsuite/gcc.dg/pr69634.c -@@ -1,6 +1,6 @@ - /* { dg-do compile } */ - /* { dg-options "-O2 -fno-dce -fschedule-insns -fno-tree-vrp -fcompare-debug -Wno-psabi" } */ --/* { dg-additional-options "-mno-sse" { target i?86-*-* x86_64-*-* } } */ -+/* { dg-additional-options "-mno-sse -mfpmath=387" { target i?86-*-* x86_64-*-* } } */ - /* { dg-require-effective-target scheduling } */ - - typedef unsigned short u16; -diff --git a/gcc/testsuite/gcc.target/i386/amd64-abi-1.c b/gcc/testsuite/gcc.target/i386/amd64-abi-1.c -index 69fde57bf06..7f1f1c03edf 100644 ---- a/gcc/testsuite/gcc.target/i386/amd64-abi-1.c -+++ b/gcc/testsuite/gcc.target/i386/amd64-abi-1.c -@@ -1,5 +1,5 @@ - /* { dg-do compile { target { ! ia32 } } } */ --/* { dg-options "-mno-sse" } */ -+/* { dg-options "-mno-sse -mfpmath=387" } */ - /* { dg-additional-options "-mabi=sysv" { target *-*-mingw* } } */ - - double foo(void) { return 0; } /* { dg-error "SSE disabled" } */ -diff --git a/gcc/testsuite/gcc.target/i386/funcspec-6.c b/gcc/testsuite/gcc.target/i386/funcspec-6.c -index ea896b7ebfd..bf15569b826 100644 ---- a/gcc/testsuite/gcc.target/i386/funcspec-6.c -+++ b/gcc/testsuite/gcc.target/i386/funcspec-6.c -@@ -1,6 +1,7 @@ - /* Test whether all of the 64-bit function specific options are accepted - without error. */ - /* { dg-do compile { target { ! ia32 } } } */ -+/* { dg-additional-options "-mfpmath=387" } */ - - #include "funcspec-56.inc" - -diff --git a/gcc/testsuite/gcc.target/i386/interrupt-387-err-1.c b/gcc/testsuite/gcc.target/i386/interrupt-387-err-1.c -index 3fbdc881dda..6b4d9d1252a 100644 ---- a/gcc/testsuite/gcc.target/i386/interrupt-387-err-1.c -+++ b/gcc/testsuite/gcc.target/i386/interrupt-387-err-1.c -@@ -1,5 +1,5 @@ - /* { dg-do compile } */ --/* { dg-options "-O2 -mgeneral-regs-only -mno-cld -mno-iamcu -m80387" } */ -+/* { dg-options "-O2 -mgeneral-regs-only -mno-cld -mno-iamcu -m80387 -mfpmath=387" } */ - - typedef unsigned int uword_t __attribute__ ((mode (__word__))); - -diff --git a/gcc/testsuite/gcc.target/i386/isa-14.c b/gcc/testsuite/gcc.target/i386/isa-14.c -index 5d49e6e77fe..1de2db92bdd 100644 ---- a/gcc/testsuite/gcc.target/i386/isa-14.c -+++ b/gcc/testsuite/gcc.target/i386/isa-14.c -@@ -1,5 +1,5 @@ - /* { dg-do run } */ --/* { dg-options "-march=x86-64 -msse4a -mfma4 -mno-sse" } */ -+/* { dg-options "-march=x86-64 -msse4a -mfma4 -mno-sse -mfpmath=387" } */ - - extern void abort (void); - -diff --git a/gcc/testsuite/gcc.target/i386/pr44948-2b.c b/gcc/testsuite/gcc.target/i386/pr44948-2b.c -index fa1769b62fb..f79fb12726f 100644 ---- a/gcc/testsuite/gcc.target/i386/pr44948-2b.c -+++ b/gcc/testsuite/gcc.target/i386/pr44948-2b.c -@@ -1,5 +1,5 @@ - /* { dg-do compile } */ --/* { dg-options "-O -mno-sse -Wno-psabi -mtune=generic" } */ -+/* { dg-options "-O -mno-sse -Wno-psabi -mtune=generic -mfpmath=387" } */ - - struct A - { -diff --git a/gcc/testsuite/gcc.target/i386/pr53425-1.c b/gcc/testsuite/gcc.target/i386/pr53425-1.c -index 2e89ff7d81d..6339bf6b736 100644 ---- a/gcc/testsuite/gcc.target/i386/pr53425-1.c -+++ b/gcc/testsuite/gcc.target/i386/pr53425-1.c -@@ -1,6 +1,6 @@ - /* PR target/53425 */ - /* { dg-do compile { target { ! ia32 } } } */ --/* { dg-options "-O2 -mno-sse" } */ -+/* { dg-options "-O2 -mno-sse -mfpmath=387" } */ - /* { dg-skip-if "no SSE vector" { x86_64-*-mingw* } } */ - - typedef double __v2df __attribute__ ((__vector_size__ (16))); -diff --git a/gcc/testsuite/gcc.target/i386/pr53425-2.c b/gcc/testsuite/gcc.target/i386/pr53425-2.c -index 61f6283dbe9..2c5a55f0ac3 100644 ---- a/gcc/testsuite/gcc.target/i386/pr53425-2.c -+++ b/gcc/testsuite/gcc.target/i386/pr53425-2.c -@@ -1,6 +1,6 @@ - /* PR target/53425 */ - /* { dg-do compile { target { ! ia32 } } } */ --/* { dg-options "-O2 -mno-sse" } */ -+/* { dg-options "-O2 -mno-sse -mfpmath=387" } */ - /* { dg-skip-if "no SSE vector" { x86_64-*-mingw* } } */ - - typedef float __v2sf __attribute__ ((__vector_size__ (8))); -diff --git a/gcc/testsuite/gcc.target/i386/pr55247.c b/gcc/testsuite/gcc.target/i386/pr55247.c -index 23366d0909d..9810e3abb76 100644 ---- a/gcc/testsuite/gcc.target/i386/pr55247.c -+++ b/gcc/testsuite/gcc.target/i386/pr55247.c -@@ -1,6 +1,6 @@ - /* { dg-do compile { target { ! ia32 } } } */ - /* { dg-require-effective-target maybe_x32 } */ --/* { dg-options "-O2 -mno-sse -mno-mmx -mx32 -maddress-mode=long" } */ -+/* { dg-options "-O2 -mno-sse -mno-mmx -mx32 -maddress-mode=long -mfpmath=387" } */ - - typedef unsigned int uint32_t; - typedef uint32_t Elf32_Word; -diff --git a/gcc/testsuite/gcc.target/i386/pr59644.c b/gcc/testsuite/gcc.target/i386/pr59644.c -index 96006b3e338..4287e4538bf 100644 ---- a/gcc/testsuite/gcc.target/i386/pr59644.c -+++ b/gcc/testsuite/gcc.target/i386/pr59644.c -@@ -1,6 +1,6 @@ - /* PR target/59644 */ - /* { dg-do run { target lp64 } } */ --/* { dg-options "-O2 -ffreestanding -mno-sse -mpreferred-stack-boundary=3 -maccumulate-outgoing-args -mno-red-zone" } */ -+/* { dg-options "-O2 -ffreestanding -mno-sse -mpreferred-stack-boundary=3 -maccumulate-outgoing-args -mno-red-zone -mfpmath=387" } */ - - /* This test uses __builtin_trap () instead of e.g. abort, - because due to -mpreferred-stack-boundary=3 it should not call -diff --git a/gcc/testsuite/gcc.target/i386/pr62120.c b/gcc/testsuite/gcc.target/i386/pr62120.c -index bfb8c4703eb..ed04cf181f3 100644 ---- a/gcc/testsuite/gcc.target/i386/pr62120.c -+++ b/gcc/testsuite/gcc.target/i386/pr62120.c -@@ -1,5 +1,5 @@ - /* { dg-do compile } */ --/* { dg-options "-mno-sse" } */ -+/* { dg-options "-mno-sse -mfpmath=387" } */ - - void foo () - { -diff --git a/gcc/testsuite/gcc.target/i386/pr70467-1.c b/gcc/testsuite/gcc.target/i386/pr70467-1.c -index 4e112c88d07..bcfb396a68d 100644 ---- a/gcc/testsuite/gcc.target/i386/pr70467-1.c -+++ b/gcc/testsuite/gcc.target/i386/pr70467-1.c -@@ -1,6 +1,6 @@ - /* PR rtl-optimization/70467 */ - /* { dg-do compile } */ --/* { dg-options "-O2 -mno-sse" } */ -+/* { dg-options "-O2 -mno-sse -mfpmath=387" } */ - - void foo (unsigned long long *); - -diff --git a/gcc/testsuite/gcc.target/i386/warn-vect-op-1.c b/gcc/testsuite/gcc.target/i386/warn-vect-op-1.c -index 6cda1534311..26e37f5b8ba 100644 ---- a/gcc/testsuite/gcc.target/i386/warn-vect-op-1.c -+++ b/gcc/testsuite/gcc.target/i386/warn-vect-op-1.c -@@ -1,5 +1,5 @@ - /* { dg-do compile { target { ! ia32 } } } */ --/* { dg-options "-mno-sse -Wvector-operation-performance" } */ -+/* { dg-options "-mno-sse -Wvector-operation-performance -mfpmath=387" } */ - #define vector(elcount, type) \ - __attribute__((vector_size((elcount)*sizeof(type)))) type - --- -2.21.0 - diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-8.3/0038-Re-introduce-spe-commandline-options.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-8.3/0038-Re-introduce-spe-commandline-options.patch deleted file mode 100644 index 8de8892b..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-8.3/0038-Re-introduce-spe-commandline-options.patch +++ /dev/null @@ -1,41 +0,0 @@ -From f0bea96434ac478c3cff8c29dd97cccfac5b35e3 Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Wed, 6 Jun 2018 12:10:22 -0700 -Subject: [PATCH 38/40] Re-introduce spe commandline options - -This should ensure that we keep accepting -spe options - -Upstream-Status: Inappropriate [SPE port is removed from rs600 port] - -Signed-off-by: Khem Raj ---- - gcc/config/rs6000/rs6000.opt | 12 ++++++++++++ - 1 file changed, 12 insertions(+) - -diff --git a/gcc/config/rs6000/rs6000.opt b/gcc/config/rs6000/rs6000.opt -index ace8a477550..d6a8f825d88 100644 ---- a/gcc/config/rs6000/rs6000.opt -+++ b/gcc/config/rs6000/rs6000.opt -@@ -365,6 +365,18 @@ mdebug= - Target RejectNegative Joined - -mdebug= Enable debug output. - -+mspe -+Target Var(rs6000_spe) Save -+Generate SPE SIMD instructions on E500. -+ -+mabi=spe -+Target RejectNegative Var(rs6000_spe_abi) Save -+Use the SPE ABI extensions. -+ -+mabi=no-spe -+Target RejectNegative Var(rs6000_spe_abi, 0) -+Do not use the SPE ABI extensions. -+ - mabi=altivec - Target RejectNegative Var(rs6000_altivec_abi) Save - Use the AltiVec ABI extensions. --- -2.21.0 - diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-8.3/0039-riscv-Disable-multilib-for-OE.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-8.3/0039-riscv-Disable-multilib-for-OE.patch deleted file mode 100644 index f7b222e8..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-8.3/0039-riscv-Disable-multilib-for-OE.patch +++ /dev/null @@ -1,27 +0,0 @@ -From 24f74444c00c6c9bf076fb002614ebf6dec31f1a Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Fri, 28 Dec 2018 09:59:53 -0800 -Subject: [PATCH 39/40] riscv: Disable multilib for OE - -Upstream-Status: Inappropriate [OE-Specific] - -Signed-off-by: Khem Raj ---- - gcc/config/riscv/t-linux | 6 ++++-- - 1 file changed, 4 insertions(+), 2 deletions(-) - -diff --git a/gcc/config/riscv/t-linux b/gcc/config/riscv/t-linux -index 216d2776a18..e4d817621fc 100644 ---- a/gcc/config/riscv/t-linux -+++ b/gcc/config/riscv/t-linux -@@ -1,3 +1,5 @@ - # Only XLEN and ABI affect Linux multilib dir names, e.g. /lib32/ilp32d/ --MULTILIB_DIRNAMES := $(patsubst rv32%,lib32,$(patsubst rv64%,lib64,$(MULTILIB_DIRNAMES))) --MULTILIB_OSDIRNAMES := $(patsubst lib%,../lib%,$(MULTILIB_DIRNAMES)) -+#MULTILIB_DIRNAMES := $(patsubst rv32%,lib32,$(patsubst rv64%,lib64,$(MULTILIB_DIRNAMES))) -+MULTILIB_DIRNAMES := . . -+#MULTILIB_OSDIRNAMES := $(patsubst lib%,../lib%,$(MULTILIB_DIRNAMES)) -+MULTILIB_OSDIRNAMES := ../$(shell basename $(base_libdir)) ../$(shell basename $(base_libdir)) --- -2.21.0 - diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-8.3/0040-powerpc-powerpc64-Add-support-for-musl-ldso.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-8.3/0040-powerpc-powerpc64-Add-support-for-musl-ldso.patch deleted file mode 100644 index 9fba1637..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-8.3/0040-powerpc-powerpc64-Add-support-for-musl-ldso.patch +++ /dev/null @@ -1,31 +0,0 @@ -From 4bd0a3866f302725cb4eddcaddaeece64900c42f Mon Sep 17 00:00:00 2001 -From: Serhey Popovych -Date: Tue, 11 Dec 2018 02:30:50 -0500 -Subject: [PATCH 40/40] powerpc/powerpc64: Add support for musl ldso - -Upstream-Status: Inappropriate [OE-Specific] - -Signed-off-by: Serhey Popovych ---- - gcc/config/rs6000/linux64.h | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/gcc/config/rs6000/linux64.h b/gcc/config/rs6000/linux64.h -index 619e113e2b8..ee8b44f9374 100644 ---- a/gcc/config/rs6000/linux64.h -+++ b/gcc/config/rs6000/linux64.h -@@ -421,9 +421,9 @@ extern int dot_symbols; - #endif - - #define MUSL_DYNAMIC_LINKER32 \ -- "/lib/ld-musl-powerpc" MUSL_DYNAMIC_LINKER_E "%{msoft-float:-sf}.so.1" -+ SYSTEMLIBS_DIR "ld-musl-powerpc" MUSL_DYNAMIC_LINKER_E "%{msoft-float:-sf}.so.1" - #define MUSL_DYNAMIC_LINKER64 \ -- "/lib/ld-musl-powerpc64" MUSL_DYNAMIC_LINKER_E "%{msoft-float:-sf}.so.1" -+ SYSTEMLIBS_DIR "ld-musl-powerpc64" MUSL_DYNAMIC_LINKER_E "%{msoft-float:-sf}.so.1" - - #define UCLIBC_DYNAMIC_LINKER32 SYSTEMLIBS_DIR "ld-uClibc.so.0" - #define UCLIBC_DYNAMIC_LINKER64 SYSTEMLIBS_DIR "ld64-uClibc.so.0" --- -2.21.0 - diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-8.3/0041-Add-a-recursion-limit-to-libiberty-s-demangling-code.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-8.3/0041-Add-a-recursion-limit-to-libiberty-s-demangling-code.patch deleted file mode 100644 index f3303b68..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-8.3/0041-Add-a-recursion-limit-to-libiberty-s-demangling-code.patch +++ /dev/null @@ -1,325 +0,0 @@ -From e1744e11b1c2b36f91a8847b61bafb8c5e7407ae Mon Sep 17 00:00:00 2001 -From: nickc -Date: Fri, 7 Dec 2018 10:33:30 +0000 -Subject: [PATCH] Add a recursion limit to libiberty's demangling code. The - limit is enabled by default, but can be disabled via a new demangling option. - -include * demangle.h (DMGL_NO_RECURSE_LIMIT): Define. - (DEMANGLE_RECURSION_LIMIT): Define - - PR 87681 - PR 87675 - PR 87636 - PR 87350 - PR 87335 -libiberty * cp-demangle.h (struct d_info): Add recursion_level field. - * cp-demangle.c (d_function_type): Add recursion counter. - If the recursion limit is reached and the check is not disabled, - then return with a failure result. - (cplus_demangle_init_info): Initialise the recursion_level field. - (d_demangle_callback): If the recursion limit is enabled, check - for a mangled string that is so long that there is not enough - stack space for the local arrays. - * cplus-dem.c (struct work): Add recursion_level field. - (squangle_mop_up): Set the numb and numk fields to zero. - (work_stuff_copy_to_from): Handle the case where a btypevec or - ktypevec field is NULL. - (demangle_nested_args): Add recursion counter. If - the recursion limit is not disabled and reached, return with a - failure result. - -git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@266886 138bc75d-0d04-0410-961f-82ee72b054a4 - -CVE: CVE-2018-18484 -Upstream-Status: Backport [https://github.com/gcc-mirror/gcc/commit/03e51746ed98d9106803f6009ebd71ea670ad3b9] -Signed-off-by: Anuj Mittal ---- - include/ChangeLog | 5 +++++ - include/demangle.h | 11 +++++++++++ - libiberty/ChangeLog | 23 ++++++++++++++++++++++ - libiberty/cp-demangle.c | 51 ++++++++++++++++++++++++++++++++++++++----------- - libiberty/cp-demangle.h | 3 +++ - libiberty/cplus-dem.c | 37 +++++++++++++++++++++++++++++++++-- - 6 files changed, 117 insertions(+), 13 deletions(-) - -diff --git a/include/ChangeLog b/include/ChangeLog -index 02ab336..88b0648 100644 ---- a/include/ChangeLog -+++ b/include/ChangeLog -@@ -2,6 +2,11 @@ - - * GCC 8.3.0 released. - -+2018-12-07 Nick Clifton -+ -+ * demangle.h (DMGL_NO_RECURSE_LIMIT): Define. -+ (DEMANGLE_RECURSION_LIMIT): Define -+ - 2018-07-26 Release Manager - - * GCC 8.2.0 released. -diff --git a/include/demangle.h b/include/demangle.h -index b8d57cf..9bb8a19 100644 ---- a/include/demangle.h -+++ b/include/demangle.h -@@ -68,6 +68,17 @@ extern "C" { - /* If none of these are set, use 'current_demangling_style' as the default. */ - #define DMGL_STYLE_MASK (DMGL_AUTO|DMGL_GNU|DMGL_LUCID|DMGL_ARM|DMGL_HP|DMGL_EDG|DMGL_GNU_V3|DMGL_JAVA|DMGL_GNAT|DMGL_DLANG|DMGL_RUST) - -+/* Disable a limit on the depth of recursion in mangled strings. -+ Note if this limit is disabled then stack exhaustion is possible when -+ demangling pathologically complicated strings. Bug reports about stack -+ exhaustion when the option is enabled will be rejected. */ -+#define DMGL_NO_RECURSE_LIMIT (1 << 18) -+ -+/* If DMGL_NO_RECURSE_LIMIT is not enabled, then this is the value used as -+ the maximum depth of recursion allowed. It should be enough for any -+ real-world mangled name. */ -+#define DEMANGLE_RECURSION_LIMIT 1024 -+ - /* Enumeration of possible demangling styles. - - Lucid and ARM styles are still kept logically distinct, even though -diff --git a/libiberty/ChangeLog b/libiberty/ChangeLog -index 1dd05da..2f77038 100644 ---- a/libiberty/ChangeLog -+++ b/libiberty/ChangeLog -@@ -9,6 +9,29 @@ - (simple_object_copy_lto_debug_sections): Create file in binary - mode. - -+2018-12-07 Nick Clifton -+ -+ PR 87681 -+ PR 87675 -+ PR 87636 -+ PR 87350 -+ PR 87335 -+ * cp-demangle.h (struct d_info): Add recursion_level field. -+ * cp-demangle.c (d_function_type): Add recursion counter. -+ If the recursion limit is reached and the check is not disabled, -+ then return with a failure result. -+ (cplus_demangle_init_info): Initialise the recursion_level field. -+ (d_demangle_callback): If the recursion limit is enabled, check -+ for a mangled string that is so long that there is not enough -+ stack space for the local arrays. -+ * cplus-dem.c (struct work): Add recursion_level field. -+ (squangle_mop_up): Set the numb and numk fields to zero. -+ (work_stuff_copy_to_from): Handle the case where a btypevec or -+ ktypevec field is NULL. -+ (demangle_nested_args): Add recursion counter. If -+ the recursion limit is not disabled and reached, return with a -+ failure result. -+ - 2018-07-26 Release Manager - - * GCC 8.2.0 released. -diff --git a/libiberty/cp-demangle.c b/libiberty/cp-demangle.c -index 3f2a097..c374e46 100644 ---- a/libiberty/cp-demangle.c -+++ b/libiberty/cp-demangle.c -@@ -2843,21 +2843,35 @@ d_ref_qualifier (struct d_info *di, struct demangle_component *sub) - static struct demangle_component * - d_function_type (struct d_info *di) - { -- struct demangle_component *ret; -+ struct demangle_component *ret = NULL; - -- if (! d_check_char (di, 'F')) -- return NULL; -- if (d_peek_char (di) == 'Y') -+ if ((di->options & DMGL_NO_RECURSE_LIMIT) == 0) - { -- /* Function has C linkage. We don't print this information. -- FIXME: We should print it in verbose mode. */ -- d_advance (di, 1); -+ if (di->recursion_level > DEMANGLE_RECURSION_LIMIT) -+ /* FIXME: There ought to be a way to report -+ that the recursion limit has been reached. */ -+ return NULL; -+ -+ di->recursion_level ++; - } -- ret = d_bare_function_type (di, 1); -- ret = d_ref_qualifier (di, ret); - -- if (! d_check_char (di, 'E')) -- return NULL; -+ if (d_check_char (di, 'F')) -+ { -+ if (d_peek_char (di) == 'Y') -+ { -+ /* Function has C linkage. We don't print this information. -+ FIXME: We should print it in verbose mode. */ -+ d_advance (di, 1); -+ } -+ ret = d_bare_function_type (di, 1); -+ ret = d_ref_qualifier (di, ret); -+ -+ if (! d_check_char (di, 'E')) -+ ret = NULL; -+ } -+ -+ if ((di->options & DMGL_NO_RECURSE_LIMIT) == 0) -+ di->recursion_level --; - return ret; - } - -@@ -6188,6 +6202,7 @@ cplus_demangle_init_info (const char *mangled, int options, size_t len, - di->expansion = 0; - di->is_expression = 0; - di->is_conversion = 0; -+ di->recursion_level = 0; - } - - /* Internal implementation for the demangler. If MANGLED is a g++ v3 ABI -@@ -6227,6 +6242,20 @@ d_demangle_callback (const char *mangled, int options, - - cplus_demangle_init_info (mangled, options, strlen (mangled), &di); - -+ /* PR 87675 - Check for a mangled string that is so long -+ that we do not have enough stack space to demangle it. */ -+ if (((options & DMGL_NO_RECURSE_LIMIT) == 0) -+ /* This check is a bit arbitrary, since what we really want to do is to -+ compare the sizes of the di.comps and di.subs arrays against the -+ amount of stack space remaining. But there is no portable way to do -+ this, so instead we use the recursion limit as a guide to the maximum -+ size of the arrays. */ -+ && (unsigned long) di.num_comps > DEMANGLE_RECURSION_LIMIT) -+ { -+ /* FIXME: We need a way to indicate that a stack limit has been reached. */ -+ return 0; -+ } -+ - { - #ifdef CP_DYNAMIC_ARRAYS - __extension__ struct demangle_component comps[di.num_comps]; -diff --git a/libiberty/cp-demangle.h b/libiberty/cp-demangle.h -index 51b8a24..d87a830 100644 ---- a/libiberty/cp-demangle.h -+++ b/libiberty/cp-demangle.h -@@ -122,6 +122,9 @@ struct d_info - /* Non-zero if we are parsing the type operand of a conversion - operator, but not when in an expression. */ - int is_conversion; -+ /* If DMGL_NO_RECURSE_LIMIT is not active then this is set to -+ the current recursion level. */ -+ unsigned int recursion_level; - }; - - /* To avoid running past the ending '\0', don't: -diff --git a/libiberty/cplus-dem.c b/libiberty/cplus-dem.c -index 6d58bd8..8b9646f 100644 ---- a/libiberty/cplus-dem.c -+++ b/libiberty/cplus-dem.c -@@ -146,6 +146,7 @@ struct work_stuff - int *proctypevec; /* Indices of currently processed remembered typevecs. */ - int proctypevec_size; - int nproctypes; -+ unsigned int recursion_level; - }; - - #define PRINT_ANSI_QUALIFIERS (work -> options & DMGL_ANSI) -@@ -1292,12 +1293,14 @@ squangle_mop_up (struct work_stuff *work) - free ((char *) work -> btypevec); - work->btypevec = NULL; - work->bsize = 0; -+ work->numb = 0; - } - if (work -> ktypevec != NULL) - { - free ((char *) work -> ktypevec); - work->ktypevec = NULL; - work->ksize = 0; -+ work->numk = 0; - } - } - -@@ -1331,8 +1334,15 @@ work_stuff_copy_to_from (struct work_stuff *to, struct work_stuff *from) - - for (i = 0; i < from->numk; i++) - { -- int len = strlen (from->ktypevec[i]) + 1; -+ int len; -+ -+ if (from->ktypevec[i] == NULL) -+ { -+ to->ktypevec[i] = NULL; -+ continue; -+ } - -+ len = strlen (from->ktypevec[i]) + 1; - to->ktypevec[i] = XNEWVEC (char, len); - memcpy (to->ktypevec[i], from->ktypevec[i], len); - } -@@ -1342,8 +1352,15 @@ work_stuff_copy_to_from (struct work_stuff *to, struct work_stuff *from) - - for (i = 0; i < from->numb; i++) - { -- int len = strlen (from->btypevec[i]) + 1; -+ int len; -+ -+ if (from->btypevec[i] == NULL) -+ { -+ to->btypevec[i] = NULL; -+ continue; -+ } - -+ len = strlen (from->btypevec[i]) + 1; - to->btypevec[i] = XNEWVEC (char , len); - memcpy (to->btypevec[i], from->btypevec[i], len); - } -@@ -1401,6 +1418,7 @@ delete_non_B_K_work_stuff (struct work_stuff *work) - - free ((char*) work->tmpl_argvec); - work->tmpl_argvec = NULL; -+ work->ntmpl_args = 0; - } - if (work->previous_argument) - { -@@ -4477,6 +4495,7 @@ remember_Btype (struct work_stuff *work, const char *start, - } - - /* Lose all the info related to B and K type codes. */ -+ - static void - forget_B_and_K_types (struct work_stuff *work) - { -@@ -4502,6 +4521,7 @@ forget_B_and_K_types (struct work_stuff *work) - } - } - } -+ - /* Forget the remembered types, but not the type vector itself. */ - - static void -@@ -4696,6 +4716,16 @@ demangle_nested_args (struct work_stuff *work, const char **mangled, - int result; - int saved_nrepeats; - -+ if ((work->options & DMGL_NO_RECURSE_LIMIT) == 0) -+ { -+ if (work->recursion_level > DEMANGLE_RECURSION_LIMIT) -+ /* FIXME: There ought to be a way to report -+ that the recursion limit has been reached. */ -+ return 0; -+ -+ work->recursion_level ++; -+ } -+ - /* The G++ name-mangling algorithm does not remember types on nested - argument lists, unless -fsquangling is used, and in that case the - type vector updated by remember_type is not used. So, we turn -@@ -4722,6 +4752,9 @@ demangle_nested_args (struct work_stuff *work, const char **mangled, - --work->forgetting_types; - work->nrepeats = saved_nrepeats; - -+ if ((work->options & DMGL_NO_RECURSE_LIMIT) == 0) -+ --work->recursion_level; -+ - return result; - } - --- -2.7.4 - diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-8.3/0042-PR-debug-86964.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-8.3/0042-PR-debug-86964.patch deleted file mode 100644 index d9b5d39b..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-8.3/0042-PR-debug-86964.patch +++ /dev/null @@ -1,94 +0,0 @@ -From beb921e1106b5bcbb0c6e2be84b241327e2ffc51 Mon Sep 17 00:00:00 2001 -From: law -Date: Mon, 25 Mar 2019 21:19:09 +0000 -Subject: [PATCH] PR debug/86964 * dwarf2out.c - (premark_used_variables): New function. (prune_unused_types_walk): Do - not mark not premarked external variables. (prune_unused_types): - Call premark_used_variables. - - * gcc.dg/debug/dwarf2/pr86964.c: New testcase. - -git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@269925 138bc75d-0d04-0410-961f-82ee72b054a4 - -Upstream-Status: Backport -Signed-off-by: Zhixiong Chi ---- - gcc/ChangeLog | 8 ++++++ - gcc/dwarf2out.c | 32 +++++++++++++++++++++ - 2 files changed, 40 insertions(+) - -diff --git a/gcc/ChangeLog b/gcc/ChangeLog -index 2075480ca2b..cdce539ac6f 100644 ---- a/gcc/ChangeLog -+++ b/gcc/ChangeLog -@@ -1,3 +1,11 @@ -+2019-03-25 Johan Karlsson -+ -+ PR debug/86964 -+ * dwarf2out.c (premark_used_variables): New function. -+ (prune_unused_types_walk): Do not mark not premarked external -+ variables. -+ (prune_unused_types): Call premark_used_variables. -+ - 2019-02-22 Release Manager - - * GCC 8.3.0 released. -diff --git a/gcc/dwarf2out.c b/gcc/dwarf2out.c -index ae8bdee9981..b9a624e1ac7 100644 ---- a/gcc/dwarf2out.c -+++ b/gcc/dwarf2out.c -@@ -22658,6 +22658,21 @@ premark_types_used_by_global_vars (void) - ->traverse (NULL); - } - -+/* Mark all variables used by the symtab as perennial. */ -+ -+static void -+premark_used_variables (void) -+{ -+ /* Mark DIEs in the symtab as used. */ -+ varpool_node *var; -+ FOR_EACH_VARIABLE (var) -+ { -+ dw_die_ref die = lookup_decl_die (var->decl); -+ if (die) -+ die->die_perennial_p = 1; -+ } -+} -+ - /* Generate a DW_TAG_call_site DIE in function DECL under SUBR_DIE - for CA_LOC call arg loc node. */ - -@@ -29264,6 +29279,19 @@ prune_unused_types_walk (dw_die_ref die) - - return; - -+ case DW_TAG_variable: -+ if (flag_debug_only_used_symbols) -+ { -+ if (die->die_perennial_p) -+ break; -+ -+ /* premark_used_variables marks external variables --- don't mark -+ them here. */ -+ if (get_AT (die, DW_AT_external)) -+ return; -+ } -+ /* FALLTHROUGH */ -+ - default: - /* Mark everything else. */ - break; -@@ -29390,6 +29418,10 @@ prune_unused_types (void) - /* Mark types that are used in global variables. */ - premark_types_used_by_global_vars (); - -+ /* Mark variables used in the symtab. */ -+ if (flag_debug_only_used_symbols) -+ premark_used_variables (); -+ - /* Set the mark on nodes that are actually used. */ - prune_unused_types_walk (comp_unit_die ()); - for (node = limbo_die_list; node; node = node->next) --- -2.21.0 diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-8.3/0043-PR85434-Prevent-spilling-of-stack-protector-guard-s-.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-8.3/0043-PR85434-Prevent-spilling-of-stack-protector-guard-s-.patch deleted file mode 100644 index f15207f5..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-8.3/0043-PR85434-Prevent-spilling-of-stack-protector-guard-s-.patch +++ /dev/null @@ -1,813 +0,0 @@ -From f98495d90ba66f67fe922a4b9229ea787041c418 Mon Sep 17 00:00:00 2001 -From: thopre01 -Date: Thu, 22 Nov 2018 14:46:17 +0000 -Subject: [PATCH] PR85434: Prevent spilling of stack protector guard's address - on ARM - -In case of high register pressure in PIC mode, address of the stack -protector's guard can be spilled on ARM targets as shown in PR85434, -thus allowing an attacker to control what the canary would be compared -against. ARM does lack stack_protect_set and stack_protect_test insn -patterns, defining them does not help as the address is expanded -regularly and the patterns only deal with the copy and test of the -guard with the canary. - -This problem does not occur for x86 targets because the PIC access and -the test can be done in the same instruction. Aarch64 is exempt too -because PIC access insn pattern are mov of UNSPEC which prevents it from -the second access in the epilogue being CSEd in cse_local pass with the -first access in the prologue. - -The approach followed here is to create new "combined" set and test -standard pattern names that take the unexpanded guard and do the set or -test. This allows the target to use an opaque pattern (eg. using UNSPEC) -to hide the individual instructions being generated to the compiler and -split the pattern into generic load, compare and branch instruction -after register allocator, therefore avoiding any spilling. This is here -implemented for the ARM targets. For targets not implementing these new -standard pattern names, the existing stack_protect_set and -stack_protect_test pattern names are used. - -To be able to split PIC access after register allocation, the functions -had to be augmented to force a new PIC register load and to control -which register it loads into. This is because sharing the PIC register -between prologue and epilogue could lead to spilling due to CSE again -which an attacker could use to control what the canary gets compared -against. - -2018-11-22 Thomas Preud'homme - - gcc/ - PR target/85434 - * target-insns.def (stack_protect_combined_set): Define new standard - pattern name. - (stack_protect_combined_test): Likewise. - * cfgexpand.c (stack_protect_prologue): Try new - stack_protect_combined_set pattern first. - * function.c (stack_protect_epilogue): Try new - stack_protect_combined_test pattern first. - * config/arm/arm.c (require_pic_register): Add pic_reg and compute_now - parameters to control which register to use as PIC register and force - reloading PIC register respectively. Insert in the stream of insns if - possible. - (legitimize_pic_address): Expose above new parameters in prototype and - adapt recursive calls accordingly. Use pic_reg if non null instead of - cached one. - (arm_load_pic_register): Add pic_reg parameter and use it if non null. - (arm_legitimize_address): Adapt to new legitimize_pic_address - prototype. - (thumb_legitimize_address): Likewise. - (arm_emit_call_insn): Adapt to require_pic_register prototype change. - (arm_expand_prologue): Adapt to arm_load_pic_register prototype change. - (thumb1_expand_prologue): Likewise. - * config/arm/arm-protos.h (legitimize_pic_address): Adapt to prototype - change. - (arm_load_pic_register): Likewise. - * config/arm/predicated.md (guard_addr_operand): New predicate. - (guard_operand): New predicate. - * config/arm/arm.md (movsi expander): Adapt to legitimize_pic_address - prototype change. - (builtin_setjmp_receiver expander): Adapt to thumb1_expand_prologue - prototype change. - (stack_protect_combined_set): New expander.. - (stack_protect_combined_set_insn): New insn_and_split pattern. - (stack_protect_set_insn): New insn pattern. - (stack_protect_combined_test): New expander. - (stack_protect_combined_test_insn): New insn_and_split pattern. - (arm_stack_protect_test_insn): New insn pattern. - * config/arm/thumb1.md (thumb1_stack_protect_test_insn): New insn pattern. - * config/arm/unspecs.md (UNSPEC_SP_SET): New unspec. - (UNSPEC_SP_TEST): Likewise. - * doc/md.texi (stack_protect_combined_set): Document new standard - pattern name. - (stack_protect_set): Clarify that the operand for guard's address is - legal. - (stack_protect_combined_test): Document new standard pattern name. - (stack_protect_test): Clarify that the operand for guard's address is - legal. - - -git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@266379 138bc75d-0d04-0410-961f-82ee72b054a4 - -Upstream-Status: Backport -CVE: CVE-2018-12886 -Signed-off-by: Zhixiong Chi ---- - gcc/ChangeLog | 49 ++++++ - gcc/cfgexpand.c | 17 +++ - gcc/config/arm/arm-protos.h | 4 +- - gcc/config/arm/arm.c | 87 ++++++++--- - gcc/config/arm/arm.md | 163 +++++++++++++++++++- - gcc/config/arm/predicates.md | 17 +++ - gcc/config/arm/thumb1.md | 13 ++ - gcc/config/arm/unspecs.md | 3 + - gcc/doc/md.texi | 55 ++++++- - gcc/function.c | 32 +++- - gcc/target-insns.def | 2 + - 11 files changed, 399 insertions(+), 43 deletions(-) - create mode 100644 gcc/testsuite/gcc.target/arm/pr85434.c - -diff --git a/gcc/ChangeLog b/gcc/ChangeLog -index e2ebfd34214..fa41e7112e0 100644 ---- a/gcc/ChangeLog -+++ b/gcc/ChangeLog -@@ -1537,6 +1537,55 @@ - * config/arm/neon.md (movv4hf, movv8hf): Refactored to.. - (mov): ..this and enable unconditionally. - -+2018-11-22 Thomas Preud'homme -+ -+ * target-insns.def (stack_protect_combined_set): Define new standard -+ pattern name. -+ (stack_protect_combined_test): Likewise. -+ * cfgexpand.c (stack_protect_prologue): Try new -+ stack_protect_combined_set pattern first. -+ * function.c (stack_protect_epilogue): Try new -+ stack_protect_combined_test pattern first. -+ * config/arm/arm.c (require_pic_register): Add pic_reg and compute_now -+ parameters to control which register to use as PIC register and force -+ reloading PIC register respectively. Insert in the stream of insns if -+ possible. -+ (legitimize_pic_address): Expose above new parameters in prototype and -+ adapt recursive calls accordingly. Use pic_reg if non null instead of -+ cached one. -+ (arm_load_pic_register): Add pic_reg parameter and use it if non null. -+ (arm_legitimize_address): Adapt to new legitimize_pic_address -+ prototype. -+ (thumb_legitimize_address): Likewise. -+ (arm_emit_call_insn): Adapt to require_pic_register prototype change. -+ (arm_expand_prologue): Adapt to arm_load_pic_register prototype change. -+ (thumb1_expand_prologue): Likewise. -+ * config/arm/arm-protos.h (legitimize_pic_address): Adapt to prototype -+ change. -+ (arm_load_pic_register): Likewise. -+ * config/arm/predicated.md (guard_addr_operand): New predicate. -+ (guard_operand): New predicate. -+ * config/arm/arm.md (movsi expander): Adapt to legitimize_pic_address -+ prototype change. -+ (builtin_setjmp_receiver expander): Adapt to thumb1_expand_prologue -+ prototype change. -+ (stack_protect_combined_set): New expander.. -+ (stack_protect_combined_set_insn): New insn_and_split pattern. -+ (stack_protect_set_insn): New insn pattern. -+ (stack_protect_combined_test): New expander. -+ (stack_protect_combined_test_insn): New insn_and_split pattern. -+ (arm_stack_protect_test_insn): New insn pattern. -+ * config/arm/thumb1.md (thumb1_stack_protect_test_insn): New insn pattern. -+ * config/arm/unspecs.md (UNSPEC_SP_SET): New unspec. -+ (UNSPEC_SP_TEST): Likewise. -+ * doc/md.texi (stack_protect_combined_set): Document new standard -+ pattern name. -+ (stack_protect_set): Clarify that the operand for guard's address is -+ legal. -+ (stack_protect_combined_test): Document new standard pattern name. -+ (stack_protect_test): Clarify that the operand for guard's address is -+ legal. -+ - 2018-11-22 Uros Bizjak - - Backport from mainline -diff --git a/gcc/cfgexpand.c b/gcc/cfgexpand.c -index 8fa392fcd8a..21bdcdaeaa3 100644 ---- a/gcc/cfgexpand.c -+++ b/gcc/cfgexpand.c -@@ -6185,6 +6185,23 @@ stack_protect_prologue (void) - rtx x, y; - - x = expand_normal (crtl->stack_protect_guard); -+ -+ if (targetm.have_stack_protect_combined_set () && guard_decl) -+ { -+ gcc_assert (DECL_P (guard_decl)); -+ y = DECL_RTL (guard_decl); -+ -+ /* Allow the target to compute address of Y and copy it to X without -+ leaking Y into a register. This combined address + copy pattern -+ allows the target to prevent spilling of any intermediate results by -+ splitting it after register allocator. */ -+ if (rtx_insn *insn = targetm.gen_stack_protect_combined_set (x, y)) -+ { -+ emit_insn (insn); -+ return; -+ } -+ } -+ - if (guard_decl) - y = expand_normal (guard_decl); - else -diff --git a/gcc/config/arm/arm-protos.h b/gcc/config/arm/arm-protos.h -index 8d6d2395b84..00f5f16ed02 100644 ---- a/gcc/config/arm/arm-protos.h -+++ b/gcc/config/arm/arm-protos.h -@@ -28,7 +28,7 @@ extern enum unwind_info_type arm_except_unwind_info (struct gcc_options *); - extern int use_return_insn (int, rtx); - extern bool use_simple_return_p (void); - extern enum reg_class arm_regno_class (int); --extern void arm_load_pic_register (unsigned long); -+extern void arm_load_pic_register (unsigned long, rtx); - extern int arm_volatile_func (void); - extern void arm_expand_prologue (void); - extern void arm_expand_epilogue (bool); -@@ -69,7 +69,7 @@ extern int const_ok_for_dimode_op (HOST_WIDE_INT, enum rtx_code); - extern int arm_split_constant (RTX_CODE, machine_mode, rtx, - HOST_WIDE_INT, rtx, rtx, int); - extern int legitimate_pic_operand_p (rtx); --extern rtx legitimize_pic_address (rtx, machine_mode, rtx); -+extern rtx legitimize_pic_address (rtx, machine_mode, rtx, rtx, bool); - extern rtx legitimize_tls_address (rtx, rtx); - extern bool arm_legitimate_address_p (machine_mode, rtx, bool); - extern int arm_legitimate_address_outer_p (machine_mode, rtx, RTX_CODE, int); -diff --git a/gcc/config/arm/arm.c b/gcc/config/arm/arm.c -index 8393f0b87f3..12417de5102 100644 ---- a/gcc/config/arm/arm.c -+++ b/gcc/config/arm/arm.c -@@ -7379,21 +7379,34 @@ legitimate_pic_operand_p (rtx x) - return 1; - } - --/* Record that the current function needs a PIC register. Initialize -- cfun->machine->pic_reg if we have not already done so. */ -+/* Record that the current function needs a PIC register. If PIC_REG is null, -+ a new pseudo is allocated as PIC register, otherwise PIC_REG is used. In -+ both case cfun->machine->pic_reg is initialized if we have not already done -+ so. COMPUTE_NOW decide whether and where to set the PIC register. If true, -+ PIC register is reloaded in the current position of the instruction stream -+ irregardless of whether it was loaded before. Otherwise, it is only loaded -+ if not already done so (crtl->uses_pic_offset_table is null). Note that -+ nonnull PIC_REG is only supported iff COMPUTE_NOW is true and null PIC_REG -+ is only supported iff COMPUTE_NOW is false. */ - - static void --require_pic_register (void) -+require_pic_register (rtx pic_reg, bool compute_now) - { -+ gcc_assert (compute_now == (pic_reg != NULL_RTX)); -+ - /* A lot of the logic here is made obscure by the fact that this - routine gets called as part of the rtx cost estimation process. - We don't want those calls to affect any assumptions about the real - function; and further, we can't call entry_of_function() until we - start the real expansion process. */ -- if (!crtl->uses_pic_offset_table) -+ if (!crtl->uses_pic_offset_table || compute_now) - { -- gcc_assert (can_create_pseudo_p ()); -+ gcc_assert (can_create_pseudo_p () -+ || (pic_reg != NULL_RTX -+ && REG_P (pic_reg) -+ && GET_MODE (pic_reg) == Pmode)); - if (arm_pic_register != INVALID_REGNUM -+ && !compute_now - && !(TARGET_THUMB1 && arm_pic_register > LAST_LO_REGNUM)) - { - if (!cfun->machine->pic_reg) -@@ -7409,8 +7422,10 @@ require_pic_register (void) - { - rtx_insn *seq, *insn; - -+ if (pic_reg == NULL_RTX) -+ pic_reg = gen_reg_rtx (Pmode); - if (!cfun->machine->pic_reg) -- cfun->machine->pic_reg = gen_reg_rtx (Pmode); -+ cfun->machine->pic_reg = pic_reg; - - /* Play games to avoid marking the function as needing pic - if we are being called as part of the cost-estimation -@@ -7421,11 +7436,12 @@ require_pic_register (void) - start_sequence (); - - if (TARGET_THUMB1 && arm_pic_register != INVALID_REGNUM -- && arm_pic_register > LAST_LO_REGNUM) -+ && arm_pic_register > LAST_LO_REGNUM -+ && !compute_now) - emit_move_insn (cfun->machine->pic_reg, - gen_rtx_REG (Pmode, arm_pic_register)); - else -- arm_load_pic_register (0UL); -+ arm_load_pic_register (0UL, pic_reg); - - seq = get_insns (); - end_sequence (); -@@ -7438,16 +7454,33 @@ require_pic_register (void) - we can't yet emit instructions directly in the final - insn stream. Queue the insns on the entry edge, they will - be committed after everything else is expanded. */ -- insert_insn_on_edge (seq, -- single_succ_edge (ENTRY_BLOCK_PTR_FOR_FN (cfun))); -+ if (currently_expanding_to_rtl) -+ insert_insn_on_edge (seq, -+ single_succ_edge -+ (ENTRY_BLOCK_PTR_FOR_FN (cfun))); -+ else -+ emit_insn (seq); - } - } - } - } - -+/* Legitimize PIC load to ORIG into REG. If REG is NULL, a new pseudo is -+ created to hold the result of the load. If not NULL, PIC_REG indicates -+ which register to use as PIC register, otherwise it is decided by register -+ allocator. COMPUTE_NOW forces the PIC register to be loaded at the current -+ location in the instruction stream, irregardless of whether it was loaded -+ previously. Note that nonnull PIC_REG is only supported iff COMPUTE_NOW is -+ true and null PIC_REG is only supported iff COMPUTE_NOW is false. -+ -+ Returns the register REG into which the PIC load is performed. */ -+ - rtx --legitimize_pic_address (rtx orig, machine_mode mode, rtx reg) -+legitimize_pic_address (rtx orig, machine_mode mode, rtx reg, rtx pic_reg, -+ bool compute_now) - { -+ gcc_assert (compute_now == (pic_reg != NULL_RTX)); -+ - if (GET_CODE (orig) == SYMBOL_REF - || GET_CODE (orig) == LABEL_REF) - { -@@ -7480,9 +7513,12 @@ legitimize_pic_address (rtx orig, machine_mode mode, rtx reg) - rtx mem; - - /* If this function doesn't have a pic register, create one now. */ -- require_pic_register (); -+ require_pic_register (pic_reg, compute_now); -+ -+ if (pic_reg == NULL_RTX) -+ pic_reg = cfun->machine->pic_reg; - -- pat = gen_calculate_pic_address (reg, cfun->machine->pic_reg, orig); -+ pat = gen_calculate_pic_address (reg, pic_reg, orig); - - /* Make the MEM as close to a constant as possible. */ - mem = SET_SRC (pat); -@@ -7531,9 +7567,11 @@ legitimize_pic_address (rtx orig, machine_mode mode, rtx reg) - - gcc_assert (GET_CODE (XEXP (orig, 0)) == PLUS); - -- base = legitimize_pic_address (XEXP (XEXP (orig, 0), 0), Pmode, reg); -+ base = legitimize_pic_address (XEXP (XEXP (orig, 0), 0), Pmode, reg, -+ pic_reg, compute_now); - offset = legitimize_pic_address (XEXP (XEXP (orig, 0), 1), Pmode, -- base == reg ? 0 : reg); -+ base == reg ? 0 : reg, pic_reg, -+ compute_now); - - if (CONST_INT_P (offset)) - { -@@ -7633,16 +7671,17 @@ static GTY(()) int pic_labelno; - low register. */ - - void --arm_load_pic_register (unsigned long saved_regs ATTRIBUTE_UNUSED) -+arm_load_pic_register (unsigned long saved_regs ATTRIBUTE_UNUSED, rtx pic_reg) - { -- rtx l1, labelno, pic_tmp, pic_rtx, pic_reg; -+ rtx l1, labelno, pic_tmp, pic_rtx; - - if (crtl->uses_pic_offset_table == 0 || TARGET_SINGLE_PIC_BASE) - return; - - gcc_assert (flag_pic); - -- pic_reg = cfun->machine->pic_reg; -+ if (pic_reg == NULL_RTX) -+ pic_reg = cfun->machine->pic_reg; - if (TARGET_VXWORKS_RTP) - { - pic_rtx = gen_rtx_SYMBOL_REF (Pmode, VXWORKS_GOTT_BASE); -@@ -8718,7 +8757,8 @@ arm_legitimize_address (rtx x, rtx orig_x, machine_mode mode) - { - /* We need to find and carefully transform any SYMBOL and LABEL - references; so go back to the original address expression. */ -- rtx new_x = legitimize_pic_address (orig_x, mode, NULL_RTX); -+ rtx new_x = legitimize_pic_address (orig_x, mode, NULL_RTX, NULL_RTX, -+ false /*compute_now*/); - - if (new_x != orig_x) - x = new_x; -@@ -8786,7 +8826,8 @@ thumb_legitimize_address (rtx x, rtx orig_x, machine_mode mode) - { - /* We need to find and carefully transform any SYMBOL and LABEL - references; so go back to the original address expression. */ -- rtx new_x = legitimize_pic_address (orig_x, mode, NULL_RTX); -+ rtx new_x = legitimize_pic_address (orig_x, mode, NULL_RTX, NULL_RTX, -+ false /*compute_now*/); - - if (new_x != orig_x) - x = new_x; -@@ -18074,7 +18115,7 @@ arm_emit_call_insn (rtx pat, rtx addr, bool sibcall) - ? !targetm.binds_local_p (SYMBOL_REF_DECL (addr)) - : !SYMBOL_REF_LOCAL_P (addr))) - { -- require_pic_register (); -+ require_pic_register (NULL_RTX, false /*compute_now*/); - use_reg (&CALL_INSN_FUNCTION_USAGE (insn), cfun->machine->pic_reg); - } - -@@ -22006,7 +22047,7 @@ arm_expand_prologue (void) - mask &= THUMB2_WORK_REGS; - if (!IS_NESTED (func_type)) - mask |= (1 << IP_REGNUM); -- arm_load_pic_register (mask); -+ arm_load_pic_register (mask, NULL_RTX); - } - - /* If we are profiling, make sure no instructions are scheduled before -@@ -25237,7 +25278,7 @@ thumb1_expand_prologue (void) - /* Load the pic register before setting the frame pointer, - so we can use r7 as a temporary work register. */ - if (flag_pic && arm_pic_register != INVALID_REGNUM) -- arm_load_pic_register (live_regs_mask); -+ arm_load_pic_register (live_regs_mask, NULL_RTX); - - if (!frame_pointer_needed && CALLER_INTERWORKING_SLOT_SIZE > 0) - emit_move_insn (gen_rtx_REG (Pmode, ARM_HARD_FRAME_POINTER_REGNUM), -diff --git a/gcc/config/arm/arm.md b/gcc/config/arm/arm.md -index c8dc9474b1b..f6196e93168 100644 ---- a/gcc/config/arm/arm.md -+++ b/gcc/config/arm/arm.md -@@ -6021,7 +6021,8 @@ - operands[1] = legitimize_pic_address (operands[1], SImode, - (!can_create_pseudo_p () - ? operands[0] -- : 0)); -+ : NULL_RTX), NULL_RTX, -+ false /*compute_now*/); - } - " - ) -@@ -6309,7 +6310,7 @@ - /* r3 is clobbered by set/longjmp, so we can use it as a scratch - register. */ - if (arm_pic_register != INVALID_REGNUM) -- arm_load_pic_register (1UL << 3); -+ arm_load_pic_register (1UL << 3, NULL_RTX); - DONE; - }") - -@@ -8634,6 +8635,164 @@ - (set_attr "conds" "clob")] - ) - -+;; Named patterns for stack smashing protection. -+(define_expand "stack_protect_combined_set" -+ [(parallel -+ [(set (match_operand:SI 0 "memory_operand" "") -+ (unspec:SI [(match_operand:SI 1 "guard_operand" "")] -+ UNSPEC_SP_SET)) -+ (clobber (match_scratch:SI 2 "")) -+ (clobber (match_scratch:SI 3 ""))])] -+ "" -+ "" -+) -+ -+;; Use a separate insn from the above expand to be able to have the mem outside -+;; the operand #1 when register allocation comes. This is needed to avoid LRA -+;; try to reload the guard since we need to control how PIC access is done in -+;; the -fpic/-fPIC case (see COMPUTE_NOW parameter when calling -+;; legitimize_pic_address ()). -+(define_insn_and_split "*stack_protect_combined_set_insn" -+ [(set (match_operand:SI 0 "memory_operand" "=m,m") -+ (unspec:SI [(mem:SI (match_operand:SI 1 "guard_addr_operand" "X,X"))] -+ UNSPEC_SP_SET)) -+ (clobber (match_scratch:SI 2 "=&l,&r")) -+ (clobber (match_scratch:SI 3 "=&l,&r"))] -+ "" -+ "#" -+ "reload_completed" -+ [(parallel [(set (match_dup 0) (unspec:SI [(mem:SI (match_dup 2))] -+ UNSPEC_SP_SET)) -+ (clobber (match_dup 2))])] -+ " -+{ -+ if (flag_pic) -+ { -+ /* Forces recomputing of GOT base now. */ -+ legitimize_pic_address (operands[1], SImode, operands[2], operands[3], -+ true /*compute_now*/); -+ } -+ else -+ { -+ if (address_operand (operands[1], SImode)) -+ operands[2] = operands[1]; -+ else -+ { -+ rtx mem = XEXP (force_const_mem (SImode, operands[1]), 0); -+ emit_move_insn (operands[2], mem); -+ } -+ } -+}" -+ [(set_attr "arch" "t1,32")] -+) -+ -+(define_insn "*stack_protect_set_insn" -+ [(set (match_operand:SI 0 "memory_operand" "=m,m") -+ (unspec:SI [(mem:SI (match_operand:SI 1 "register_operand" "+&l,&r"))] -+ UNSPEC_SP_SET)) -+ (clobber (match_dup 1))] -+ "" -+ "@ -+ ldr\\t%1, [%1]\;str\\t%1, %0\;movs\t%1,#0 -+ ldr\\t%1, [%1]\;str\\t%1, %0\;mov\t%1,#0" -+ [(set_attr "length" "8,12") -+ (set_attr "conds" "clob,nocond") -+ (set_attr "type" "multiple") -+ (set_attr "arch" "t1,32")] -+) -+ -+(define_expand "stack_protect_combined_test" -+ [(parallel -+ [(set (pc) -+ (if_then_else -+ (eq (match_operand:SI 0 "memory_operand" "") -+ (unspec:SI [(match_operand:SI 1 "guard_operand" "")] -+ UNSPEC_SP_TEST)) -+ (label_ref (match_operand 2)) -+ (pc))) -+ (clobber (match_scratch:SI 3 "")) -+ (clobber (match_scratch:SI 4 "")) -+ (clobber (reg:CC CC_REGNUM))])] -+ "" -+ "" -+) -+ -+;; Use a separate insn from the above expand to be able to have the mem outside -+;; the operand #1 when register allocation comes. This is needed to avoid LRA -+;; try to reload the guard since we need to control how PIC access is done in -+;; the -fpic/-fPIC case (see COMPUTE_NOW parameter when calling -+;; legitimize_pic_address ()). -+(define_insn_and_split "*stack_protect_combined_test_insn" -+ [(set (pc) -+ (if_then_else -+ (eq (match_operand:SI 0 "memory_operand" "m,m") -+ (unspec:SI [(mem:SI (match_operand:SI 1 "guard_addr_operand" "X,X"))] -+ UNSPEC_SP_TEST)) -+ (label_ref (match_operand 2)) -+ (pc))) -+ (clobber (match_scratch:SI 3 "=&l,&r")) -+ (clobber (match_scratch:SI 4 "=&l,&r")) -+ (clobber (reg:CC CC_REGNUM))] -+ "" -+ "#" -+ "reload_completed" -+ [(const_int 0)] -+{ -+ rtx eq; -+ -+ if (flag_pic) -+ { -+ /* Forces recomputing of GOT base now. */ -+ legitimize_pic_address (operands[1], SImode, operands[3], operands[4], -+ true /*compute_now*/); -+ } -+ else -+ { -+ if (address_operand (operands[1], SImode)) -+ operands[3] = operands[1]; -+ else -+ { -+ rtx mem = XEXP (force_const_mem (SImode, operands[1]), 0); -+ emit_move_insn (operands[3], mem); -+ } -+ } -+ if (TARGET_32BIT) -+ { -+ emit_insn (gen_arm_stack_protect_test_insn (operands[4], operands[0], -+ operands[3])); -+ rtx cc_reg = gen_rtx_REG (CC_Zmode, CC_REGNUM); -+ eq = gen_rtx_EQ (CC_Zmode, cc_reg, const0_rtx); -+ emit_jump_insn (gen_arm_cond_branch (operands[2], eq, cc_reg)); -+ } -+ else -+ { -+ emit_insn (gen_thumb1_stack_protect_test_insn (operands[4], operands[0], -+ operands[3])); -+ eq = gen_rtx_EQ (VOIDmode, operands[4], const0_rtx); -+ emit_jump_insn (gen_cbranchsi4 (eq, operands[4], const0_rtx, -+ operands[2])); -+ } -+ DONE; -+} -+ [(set_attr "arch" "t1,32")] -+) -+ -+(define_insn "arm_stack_protect_test_insn" -+ [(set (reg:CC_Z CC_REGNUM) -+ (compare:CC_Z (unspec:SI [(match_operand:SI 1 "memory_operand" "m,m") -+ (mem:SI (match_operand:SI 2 "register_operand" "+l,r"))] -+ UNSPEC_SP_TEST) -+ (const_int 0))) -+ (clobber (match_operand:SI 0 "register_operand" "=&l,&r")) -+ (clobber (match_dup 2))] -+ "TARGET_32BIT" -+ "ldr\t%0, [%2]\;ldr\t%2, %1\;eors\t%0, %2, %0" -+ [(set_attr "length" "8,12") -+ (set_attr "conds" "set") -+ (set_attr "type" "multiple") -+ (set_attr "arch" "t,32")] -+) -+ - (define_expand "casesi" - [(match_operand:SI 0 "s_register_operand" "") ; index to jump on - (match_operand:SI 1 "const_int_operand" "") ; lower bound -diff --git a/gcc/config/arm/predicates.md b/gcc/config/arm/predicates.md -index 7e198f9bce4..69718ee9c7a 100644 ---- a/gcc/config/arm/predicates.md -+++ b/gcc/config/arm/predicates.md -@@ -31,6 +31,23 @@ - || REGNO_REG_CLASS (REGNO (op)) != NO_REGS)); - }) - -+; Predicate for stack protector guard's address in -+; stack_protect_combined_set_insn and stack_protect_combined_test_insn patterns -+(define_predicate "guard_addr_operand" -+ (match_test "true") -+{ -+ return (CONSTANT_ADDRESS_P (op) -+ || !targetm.cannot_force_const_mem (mode, op)); -+}) -+ -+; Predicate for stack protector guard in stack_protect_combined_set and -+; stack_protect_combined_test patterns -+(define_predicate "guard_operand" -+ (match_code "mem") -+{ -+ return guard_addr_operand (XEXP (op, 0), mode); -+}) -+ - (define_predicate "imm_for_neon_inv_logic_operand" - (match_code "const_vector") - { -diff --git a/gcc/config/arm/thumb1.md b/gcc/config/arm/thumb1.md -index 19dcdbcdd73..cd199c9c529 100644 ---- a/gcc/config/arm/thumb1.md -+++ b/gcc/config/arm/thumb1.md -@@ -1962,4 +1962,17 @@ - }" - [(set_attr "type" "mov_reg")] - ) -+ -+(define_insn "thumb1_stack_protect_test_insn" -+ [(set (match_operand:SI 0 "register_operand" "=&l") -+ (unspec:SI [(match_operand:SI 1 "memory_operand" "m") -+ (mem:SI (match_operand:SI 2 "register_operand" "+l"))] -+ UNSPEC_SP_TEST)) -+ (clobber (match_dup 2))] -+ "TARGET_THUMB1" -+ "ldr\t%0, [%2]\;ldr\t%2, %1\;eors\t%0, %2, %0" -+ [(set_attr "length" "8") -+ (set_attr "conds" "set") -+ (set_attr "type" "multiple")] -+) - -diff --git a/gcc/config/arm/unspecs.md b/gcc/config/arm/unspecs.md -index 19416736ef9..8f9dbcb08dc 100644 ---- a/gcc/config/arm/unspecs.md -+++ b/gcc/config/arm/unspecs.md -@@ -86,6 +86,9 @@ - UNSPEC_PROBE_STACK ; Probe stack memory reference - UNSPEC_NONSECURE_MEM ; Represent non-secure memory in ARMv8-M with - ; security extension -+ UNSPEC_SP_SET ; Represent the setting of stack protector's canary -+ UNSPEC_SP_TEST ; Represent the testing of stack protector's canary -+ ; against the guard. - ]) - - (define_c_enum "unspec" [ -diff --git a/gcc/doc/md.texi b/gcc/doc/md.texi -index 295fc1f1143..895309b2f3c 100644 ---- a/gcc/doc/md.texi -+++ b/gcc/doc/md.texi -@@ -7450,22 +7450,61 @@ builtins. - The get/set patterns have a single output/input operand respectively, - with @var{mode} intended to be @code{Pmode}. - -+@cindex @code{stack_protect_combined_set} instruction pattern -+@item @samp{stack_protect_combined_set} -+This pattern, if defined, moves a @code{ptr_mode} value from an address -+whose declaration RTX is given in operand 1 to the memory in operand 0 -+without leaving the value in a register afterward. If several -+instructions are needed by the target to perform the operation (eg. to -+load the address from a GOT entry then load the @code{ptr_mode} value -+and finally store it), it is the backend's responsibility to ensure no -+intermediate result gets spilled. This is to avoid leaking the value -+some place that an attacker might use to rewrite the stack guard slot -+after having clobbered it. -+ -+If this pattern is not defined, then the address declaration is -+expanded first in the standard way and a @code{stack_protect_set} -+pattern is then generated to move the value from that address to the -+address in operand 0. -+ - @cindex @code{stack_protect_set} instruction pattern - @item @samp{stack_protect_set} --This pattern, if defined, moves a @code{ptr_mode} value from the memory --in operand 1 to the memory in operand 0 without leaving the value in --a register afterward. This is to avoid leaking the value some place --that an attacker might use to rewrite the stack guard slot after --having clobbered it. -+This pattern, if defined, moves a @code{ptr_mode} value from the valid -+memory location in operand 1 to the memory in operand 0 without leaving -+the value in a register afterward. This is to avoid leaking the value -+some place that an attacker might use to rewrite the stack guard slot -+after having clobbered it. -+ -+Note: on targets where the addressing modes do not allow to load -+directly from stack guard address, the address is expanded in a standard -+way first which could cause some spills. - - If this pattern is not defined, then a plain move pattern is generated. - -+@cindex @code{stack_protect_combined_test} instruction pattern -+@item @samp{stack_protect_combined_test} -+This pattern, if defined, compares a @code{ptr_mode} value from an -+address whose declaration RTX is given in operand 1 with the memory in -+operand 0 without leaving the value in a register afterward and -+branches to operand 2 if the values were equal. If several -+instructions are needed by the target to perform the operation (eg. to -+load the address from a GOT entry then load the @code{ptr_mode} value -+and finally store it), it is the backend's responsibility to ensure no -+intermediate result gets spilled. This is to avoid leaking the value -+some place that an attacker might use to rewrite the stack guard slot -+after having clobbered it. -+ -+If this pattern is not defined, then the address declaration is -+expanded first in the standard way and a @code{stack_protect_test} -+pattern is then generated to compare the value from that address to the -+value at the memory in operand 0. -+ - @cindex @code{stack_protect_test} instruction pattern - @item @samp{stack_protect_test} - This pattern, if defined, compares a @code{ptr_mode} value from the --memory in operand 1 with the memory in operand 0 without leaving the --value in a register afterward and branches to operand 2 if the values --were equal. -+valid memory location in operand 1 with the memory in operand 0 without -+leaving the value in a register afterward and branches to operand 2 if -+the values were equal. - - If this pattern is not defined, then a plain compare pattern and - conditional branch pattern is used. -diff --git a/gcc/function.c b/gcc/function.c -index 85a5d9f43f7..69523c1d723 100644 ---- a/gcc/function.c -+++ b/gcc/function.c -@@ -4937,18 +4937,34 @@ stack_protect_epilogue (void) - tree guard_decl = targetm.stack_protect_guard (); - rtx_code_label *label = gen_label_rtx (); - rtx x, y; -- rtx_insn *seq; -+ rtx_insn *seq = NULL; - - x = expand_normal (crtl->stack_protect_guard); -- if (guard_decl) -- y = expand_normal (guard_decl); -+ -+ if (targetm.have_stack_protect_combined_test () && guard_decl) -+ { -+ gcc_assert (DECL_P (guard_decl)); -+ y = DECL_RTL (guard_decl); -+ /* Allow the target to compute address of Y and compare it with X without -+ leaking Y into a register. This combined address + compare pattern -+ allows the target to prevent spilling of any intermediate results by -+ splitting it after register allocator. */ -+ seq = targetm.gen_stack_protect_combined_test (x, y, label); -+ } - else -- y = const0_rtx; -+ { -+ if (guard_decl) -+ y = expand_normal (guard_decl); -+ else -+ y = const0_rtx; -+ -+ /* Allow the target to compare Y with X without leaking either into -+ a register. */ -+ if (targetm.have_stack_protect_test ()) -+ seq = targetm.gen_stack_protect_test (x, y, label); -+ } - -- /* Allow the target to compare Y with X without leaking either into -- a register. */ -- if (targetm.have_stack_protect_test () -- && ((seq = targetm.gen_stack_protect_test (x, y, label)) != NULL_RTX)) -+ if (seq) - emit_insn (seq); - else - emit_cmp_and_jump_insns (x, y, EQ, NULL_RTX, ptr_mode, 1, label); -diff --git a/gcc/target-insns.def b/gcc/target-insns.def -index 9a552c3d11c..d39889b3522 100644 ---- a/gcc/target-insns.def -+++ b/gcc/target-insns.def -@@ -96,7 +96,9 @@ DEF_TARGET_INSN (sibcall_value, (rtx x0, rtx x1, rtx opt2, rtx opt3, - DEF_TARGET_INSN (simple_return, (void)) - DEF_TARGET_INSN (split_stack_prologue, (void)) - DEF_TARGET_INSN (split_stack_space_check, (rtx x0, rtx x1)) -+DEF_TARGET_INSN (stack_protect_combined_set, (rtx x0, rtx x1)) - DEF_TARGET_INSN (stack_protect_set, (rtx x0, rtx x1)) -+DEF_TARGET_INSN (stack_protect_combined_test, (rtx x0, rtx x1, rtx x2)) - DEF_TARGET_INSN (stack_protect_test, (rtx x0, rtx x1, rtx x2)) - DEF_TARGET_INSN (store_multiple, (rtx x0, rtx x1, rtx x2)) - DEF_TARGET_INSN (tablejump, (rtx x0, rtx x1)) --- -2.21.0 diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-9.1.inc b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-9.1.inc deleted file mode 100644 index 4c648a16..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-9.1.inc +++ /dev/null @@ -1,117 +0,0 @@ -require gcc-common.inc - -# Third digit in PV should be incremented after a minor release - -PV = "9.1.0" - -# BINV should be incremented to a revision after a minor gcc release - -BINV = "9.1.0" - -FILESEXTRAPATHS =. "${FILE_DIRNAME}/gcc-9.1:${FILE_DIRNAME}/gcc-9.1/backport:" - -DEPENDS =+ "mpfr gmp libmpc zlib flex-native" -NATIVEDEPS = "mpfr-native gmp-native libmpc-native zlib-native flex-native" - -LICENSE = "GPL-3.0-with-GCC-exception & GPLv3" - -LIC_FILES_CHKSUM = "\ - file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552 \ - file://COPYING3;md5=d32239bcb673463ab874e80d47fae504 \ - file://COPYING3.LIB;md5=6a6a8e020838b23406c81b19c1d46df6 \ - file://COPYING.LIB;md5=2d5025d4aa3495befef8f17206a5b0a1 \ - file://COPYING.RUNTIME;md5=fe60d87048567d4fe8c8a0ed2448bcc8 \ -" - -BASEURI ?= "${GNU_MIRROR}/gcc/gcc-${PV}/gcc-${PV}.tar.xz" -#RELEASE ?= "5a5ca2d" -#BASEURI ?= "https://repo.or.cz/official-gcc.git/snapshot/${RELEASE}.tar.gz;downloadfilename=gcc-${RELEASE}.tar.gz" -SRC_URI = "\ - ${BASEURI} \ - file://0001-gcc-4.3.1-ARCH_FLAGS_FOR_TARGET.patch \ - file://0002-gcc-poison-system-directories.patch \ - file://0003-gcc-4.3.3-SYSROOT_CFLAGS_FOR_TARGET.patch \ - file://0004-64-bit-multilib-hack.patch \ - file://0005-optional-libstdc.patch \ - file://0007-COLLECT_GCC_OPTIONS.patch \ - file://0008-Use-the-defaults.h-in-B-instead-of-S-and-t-oe-in-B.patch \ - file://0009-fortran-cross-compile-hack.patch \ - file://0010-cpp-honor-sysroot.patch \ - file://0011-MIPS64-Default-to-N64-ABI.patch \ - file://0012-Define-GLIBC_DYNAMIC_LINKER-and-UCLIBC_DYNAMIC_LINKE.patch \ - file://0013-gcc-Fix-argument-list-too-long-error.patch \ - file://0014-Disable-sdt.patch \ - file://0015-libtool.patch \ - file://0016-gcc-armv4-pass-fix-v4bx-to-linker-to-support-EABI.patch \ - file://0017-Use-the-multilib-config-files-from-B-instead-of-usin.patch \ - file://0018-Avoid-using-libdir-from-.la-which-usually-points-to-.patch \ - file://0019-export-CPP.patch \ - file://0020-Ensure-target-gcc-headers-can-be-included.patch \ - file://0021-gcc-4.8-won-t-build-with-disable-dependency-tracking.patch \ - file://0022-Don-t-search-host-directory-during-relink-if-inst_pr.patch \ - file://0023-Use-SYSTEMLIBS_DIR-replacement-instead-of-hardcoding.patch \ - file://0024-aarch64-Add-support-for-musl-ldso.patch \ - file://0025-libcc1-fix-libcc1-s-install-path-and-rpath.patch \ - file://0026-handle-sysroot-support-for-nativesdk-gcc.patch \ - file://0027-Search-target-sysroot-gcc-version-specific-dirs-with.patch \ - file://0028-Fix-various-_FOR_BUILD-and-related-variables.patch \ - file://0029-nios2-Define-MUSL_DYNAMIC_LINKER.patch \ - file://0030-Add-ssp_nonshared-to-link-commandline-for-musl-targe.patch \ - file://0031-libgcc-Add-knob-to-use-ldbl-128-on-ppc.patch \ - file://0032-Link-libgcc-using-LDFLAGS-not-just-SHLIB_LDFLAGS.patch \ - file://0033-libgcc_s-Use-alias-for-__cpu_indicator_init-instead-.patch \ - file://0034-sync-gcc-stddef.h-with-musl.patch \ - file://0035-fix-segmentation-fault-in-precompiled-header-generat.patch \ - file://0036-Fix-for-testsuite-failure.patch \ - file://0037-Re-introduce-spe-commandline-options.patch \ -" -SRC_URI[md5sum] = "6069ae3737cf02bf2cb44a391ef0e937" -SRC_URI[sha256sum] = "79a66834e96a6050d8fe78db2c3b32fb285b230b855d0a66288235bc04b327a0" -S = "${TMPDIR}/work-shared/gcc-${PV}-${PR}/gcc-${PV}" -# For dev release snapshotting -#S = "${TMPDIR}/work-shared/gcc-${PV}-${PR}/official-gcc-${RELEASE}" -#B = "${WORKDIR}/gcc-${PV}/build.${HOST_SYS}.${TARGET_SYS}" - -# Language Overrides -FORTRAN = "" -JAVA = "" - -LTO = "--enable-lto" -SSP ?= "--disable-libssp" -SSP_mingw32 = "--enable-libssp" - -EXTRA_OECONF_BASE = "\ - ${LTO} \ - ${SSP} \ - --enable-libitm \ - --disable-bootstrap \ - --disable-libmudflap \ - --with-system-zlib \ - ${@'--with-linker-hash-style=${LINKER_HASH_STYLE}' if '${LINKER_HASH_STYLE}' else ''} \ - --enable-linker-build-id \ - --with-ppl=no \ - --with-cloog=no \ - --enable-checking=release \ - --enable-cheaders=c_global \ - --without-isl \ -" - -EXTRA_OECONF_INITIAL = "\ - --disable-libmudflap \ - --disable-libgomp \ - --disable-libitm \ - --disable-libquadmath \ - --with-system-zlib \ - --disable-lto \ - --disable-plugin \ - --enable-linker-build-id \ - --enable-decimal-float=no \ - --without-isl \ - --disable-libssp \ -" - -EXTRA_OECONF_PATHS = "\ - --with-gxx-include-dir=/not/exist{target_includedir}/c++/${BINV} \ - --with-sysroot=/not/exist \ - --with-build-sysroot=${STAGING_DIR_TARGET} \ -" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-9.1/0001-gcc-4.3.1-ARCH_FLAGS_FOR_TARGET.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-9.1/0001-gcc-4.3.1-ARCH_FLAGS_FOR_TARGET.patch deleted file mode 100644 index 33c910cc..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-9.1/0001-gcc-4.3.1-ARCH_FLAGS_FOR_TARGET.patch +++ /dev/null @@ -1,42 +0,0 @@ -From f1f6d84aadc4e3cde707b1ec8490f5dc46d4c8e0 Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Fri, 29 Mar 2013 08:37:11 +0400 -Subject: [PATCH 01/37] gcc-4.3.1: ARCH_FLAGS_FOR_TARGET - -Signed-off-by: Khem Raj - -Upstream-Status: Inappropriate [embedded specific] ---- - configure | 2 +- - configure.ac | 2 +- - 2 files changed, 2 insertions(+), 2 deletions(-) - -diff --git a/configure b/configure -index adf4fda0f69..8a04eea4c71 100755 ---- a/configure -+++ b/configure -@@ -7602,7 +7602,7 @@ fi - # for target_alias and gcc doesn't manage it consistently. - target_configargs="--cache-file=./config.cache ${target_configargs}" - --FLAGS_FOR_TARGET= -+FLAGS_FOR_TARGET="$ARCH_FLAGS_FOR_TARGET" - case " $target_configdirs " in - *" newlib "*) - case " $target_configargs " in -diff --git a/configure.ac b/configure.ac -index 87f2aee0500..01b46b8bed4 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -3118,7 +3118,7 @@ fi - # for target_alias and gcc doesn't manage it consistently. - target_configargs="--cache-file=./config.cache ${target_configargs}" - --FLAGS_FOR_TARGET= -+FLAGS_FOR_TARGET="$ARCH_FLAGS_FOR_TARGET" - case " $target_configdirs " in - *" newlib "*) - case " $target_configargs " in --- -2.20.1 - diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-9.1/0002-gcc-poison-system-directories.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-9.1/0002-gcc-poison-system-directories.patch deleted file mode 100644 index 12315674..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-9.1/0002-gcc-poison-system-directories.patch +++ /dev/null @@ -1,203 +0,0 @@ -From 733ca3372e4125170d4531bcd33e48eeb36bfec0 Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Fri, 29 Mar 2013 08:59:00 +0400 -Subject: [PATCH 02/37] gcc: poison-system-directories - -Add /sw/include and /opt/include based on the original -zecke-no-host-includes.patch patch. The original patch checked for -/usr/include, /sw/include and /opt/include and then triggered a failure and -aborted. - -Instead, we add the two missing items to the current scan. If the user -wants this to be a failure, they can add "-Werror=poison-system-directories". - -Signed-off-by: Mark Hatle -Signed-off-by: Khem Raj - -Upstream-Status: Pending ---- - gcc/common.opt | 4 ++++ - gcc/config.in | 6 ++++++ - gcc/configure | 16 ++++++++++++++++ - gcc/configure.ac | 10 ++++++++++ - gcc/doc/invoke.texi | 9 +++++++++ - gcc/gcc.c | 2 ++ - gcc/incpath.c | 21 +++++++++++++++++++++ - 7 files changed, 68 insertions(+) - -diff --git a/gcc/common.opt b/gcc/common.opt -index 9a5e9af06ca..211f2b2260e 100644 ---- a/gcc/common.opt -+++ b/gcc/common.opt -@@ -684,6 +684,10 @@ Wreturn-local-addr - Common Var(warn_return_local_addr) Init(1) Warning - Warn about returning a pointer/reference to a local or temporary variable. - -+Wpoison-system-directories -+Common Var(flag_poison_system_directories) Init(1) Warning -+Warn for -I and -L options using system directories if cross compiling -+ - Wshadow - Common Var(warn_shadow) Warning - Warn when one variable shadows another. Same as -Wshadow=global. -diff --git a/gcc/config.in b/gcc/config.in -index 48a533bf208..fc3043bbdfb 100644 ---- a/gcc/config.in -+++ b/gcc/config.in -@@ -200,6 +200,12 @@ - #endif - - -+/* Define to warn for use of native system header directories */ -+#ifndef USED_FOR_TARGET -+#undef ENABLE_POISON_SYSTEM_DIRECTORIES -+#endif -+ -+ - /* Define if you want all operations on RTL (the basic data structure of the - optimizer and back end) to be checked for dynamic type safety at runtime. - This is quite expensive. */ -diff --git a/gcc/configure b/gcc/configure -index d6a48ef76e7..2e08396622e 100755 ---- a/gcc/configure -+++ b/gcc/configure -@@ -995,6 +995,7 @@ with_system_zlib - enable_maintainer_mode - enable_link_mutex - enable_version_specific_runtime_libs -+enable_poison_system_directories - enable_plugin - enable_host_shared - enable_libquadmath_support -@@ -1748,6 +1749,8 @@ Optional Features: - --enable-version-specific-runtime-libs - specify that runtime libraries should be installed - in a compiler-specific directory -+ --enable-poison-system-directories -+ warn for use of native system header directories - --enable-plugin enable plugin support - --enable-host-shared build host code as shared libraries - --disable-libquadmath-support -@@ -29717,6 +29720,19 @@ if test "${enable_version_specific_runtime_libs+set}" = set; then : - fi - - -+# Check whether --enable-poison-system-directories was given. -+if test "${enable_poison_system_directories+set}" = set; then : -+ enableval=$enable_poison_system_directories; -+else -+ enable_poison_system_directories=no -+fi -+ -+if test "x${enable_poison_system_directories}" = "xyes"; then -+ -+$as_echo "#define ENABLE_POISON_SYSTEM_DIRECTORIES 1" >>confdefs.h -+ -+fi -+ - # Substitute configuration variables - - -diff --git a/gcc/configure.ac b/gcc/configure.ac -index 78370352938..7d34911573e 100644 ---- a/gcc/configure.ac -+++ b/gcc/configure.ac -@@ -6375,6 +6375,16 @@ AC_ARG_ENABLE(version-specific-runtime-libs, - [specify that runtime libraries should be - installed in a compiler-specific directory])]) - -+AC_ARG_ENABLE([poison-system-directories], -+ AS_HELP_STRING([--enable-poison-system-directories], -+ [warn for use of native system header directories]),, -+ [enable_poison_system_directories=no]) -+if test "x${enable_poison_system_directories}" = "xyes"; then -+ AC_DEFINE([ENABLE_POISON_SYSTEM_DIRECTORIES], -+ [1], -+ [Define to warn for use of native system header directories]) -+fi -+ - # Substitute configuration variables - AC_SUBST(subdirs) - AC_SUBST(srcdir) -diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi -index 99fd97404e1..001868e1509 100644 ---- a/gcc/doc/invoke.texi -+++ b/gcc/doc/invoke.texi -@@ -330,6 +330,7 @@ Objective-C and Objective-C++ Dialects}. - -Wpacked -Wpacked-bitfield-compat -Wpacked-not-aligned -Wpadded @gol - -Wparentheses -Wno-pedantic-ms-format @gol - -Wplacement-new -Wplacement-new=@var{n} @gol -+-Wno-poison-system-directories @gol - -Wpointer-arith -Wpointer-compare -Wno-pointer-to-int-cast @gol - -Wno-pragmas -Wno-prio-ctor-dtor -Wredundant-decls @gol - -Wrestrict -Wno-return-local-addr @gol -@@ -6254,6 +6255,14 @@ made up of data only and thus requires no special treatment. But, for - most targets, it is made up of code and thus requires the stack to be - made executable in order for the program to work properly. - -+@item -Wno-poison-system-directories -+@opindex Wno-poison-system-directories -+Do not warn for @option{-I} or @option{-L} options using system -+directories such as @file{/usr/include} when cross compiling. This -+option is intended for use in chroot environments when such -+directories contain the correct headers and libraries for the target -+system rather than the host. -+ - @item -Wfloat-equal - @opindex Wfloat-equal - @opindex Wno-float-equal -diff --git a/gcc/gcc.c b/gcc/gcc.c -index 797ed36616f..79c38d858d1 100644 ---- a/gcc/gcc.c -+++ b/gcc/gcc.c -@@ -1042,6 +1042,8 @@ proper position among the other output files. */ - "%{fuse-ld=*:-fuse-ld=%*} " LINK_COMPRESS_DEBUG_SPEC \ - "%X %{o*} %{e*} %{N} %{n} %{r}\ - %{s} %{t} %{u*} %{z} %{Z} %{!nostdlib:%{!r:%{!nostartfiles:%S}}} \ -+ %{Wno-poison-system-directories:--no-poison-system-directories} \ -+ %{Werror=poison-system-directories:--error-poison-system-directories} \ - %{static|no-pie|static-pie:} %@{L*} %(mfwrap) %(link_libgcc) " \ - VTABLE_VERIFICATION_SPEC " " SANITIZER_EARLY_SPEC " %o "" \ - %{fopenacc|fopenmp|%:gt(%{ftree-parallelize-loops=*:%*} 1):\ -diff --git a/gcc/incpath.c b/gcc/incpath.c -index bcbe2082905..5752298bbf2 100644 ---- a/gcc/incpath.c -+++ b/gcc/incpath.c -@@ -26,6 +26,7 @@ - #include "intl.h" - #include "incpath.h" - #include "cppdefault.h" -+#include "diagnostic-core.h" - - /* Microsoft Windows does not natively support inodes. - VMS has non-numeric inodes. */ -@@ -393,6 +394,26 @@ merge_include_chains (const char *sysroot, cpp_reader *pfile, int verbose) - } - fprintf (stderr, _("End of search list.\n")); - } -+ -+#ifdef ENABLE_POISON_SYSTEM_DIRECTORIES -+ if (flag_poison_system_directories) -+ { -+ struct cpp_dir *p; -+ -+ for (p = heads[INC_QUOTE]; p; p = p->next) -+ { -+ if ((!strncmp (p->name, "/usr/include", 12)) -+ || (!strncmp (p->name, "/usr/local/include", 18)) -+ || (!strncmp (p->name, "/usr/X11R6/include", 18)) -+ || (!strncmp (p->name, "/sw/include", 11)) -+ || (!strncmp (p->name, "/opt/include", 12))) -+ warning (OPT_Wpoison_system_directories, -+ "include location \"%s\" is unsafe for " -+ "cross-compilation", -+ p->name); -+ } -+ } -+#endif - } - - /* Use given -I paths for #include "..." but not #include <...>, and --- -2.20.1 - diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-9.1/0003-gcc-4.3.3-SYSROOT_CFLAGS_FOR_TARGET.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-9.1/0003-gcc-4.3.3-SYSROOT_CFLAGS_FOR_TARGET.patch deleted file mode 100644 index 916c374e..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-9.1/0003-gcc-4.3.3-SYSROOT_CFLAGS_FOR_TARGET.patch +++ /dev/null @@ -1,73 +0,0 @@ -From 320352cc741c89f1a9b2ee7929193d255e65f27a Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Fri, 29 Mar 2013 09:08:31 +0400 -Subject: [PATCH 03/37] gcc-4.3.3: SYSROOT_CFLAGS_FOR_TARGET - -Before committing, I noticed that PR/32161 was marked as a dup of PR/32009, but my previous patch did not fix it. - -This alternative patch is better because it lets you just use CFLAGS_FOR_TARGET to set the compilation flags for libgcc. Since bootstrapped target libraries are never compiled with the native compiler, it makes little sense to use different flags for stage1 and later stages. And it also makes little sense to use a different variable than CFLAGS_FOR_TARGET. - -Other changes I had to do include: - -- moving the creation of default CFLAGS_FOR_TARGET from Makefile.am to configure.ac, because otherwise the BOOT_CFLAGS are substituted into CFLAGS_FOR_TARGET (which is "-O2 -g $(CFLAGS)") via $(CFLAGS). It is also cleaner this way though. - -- passing the right CFLAGS to configure scripts as exported environment variables - -I also stopped passing LIBCFLAGS to configure scripts since they are unused in the whole src tree. And I updated the documentation as H-P reminded me to do. - -Bootstrapped/regtested i686-pc-linux-gnu, will commit to 4.4 shortly. Ok for 4.3? - -Signed-off-by: Paolo Bonzini -Signed-off-by: Khem Raj - -Upstream-Status: Pending ---- - configure | 32 ++++++++++++++++++++++++++++++++ - 1 file changed, 32 insertions(+) - -diff --git a/configure b/configure -index 8a04eea4c71..3b0eed74847 100755 ---- a/configure -+++ b/configure -@@ -6863,6 +6863,38 @@ fi - - - -+# During gcc bootstrap, if we use some random cc for stage1 then CFLAGS -+# might be empty or "-g". We don't require a C++ compiler, so CXXFLAGS -+# might also be empty (or "-g", if a non-GCC C++ compiler is in the path). -+# We want to ensure that TARGET libraries (which we know are built with -+# gcc) are built with "-O2 -g", so include those options when setting -+# CFLAGS_FOR_TARGET and CXXFLAGS_FOR_TARGET. -+if test "x$CFLAGS_FOR_TARGET" = x; then -+ CFLAGS_FOR_TARGET=$CFLAGS -+ case " $CFLAGS " in -+ *" -O2 "*) ;; -+ *) CFLAGS_FOR_TARGET="-O2 $CFLAGS" ;; -+ esac -+ case " $CFLAGS " in -+ *" -g "* | *" -g3 "*) ;; -+ *) CFLAGS_FOR_TARGET="-g $CFLAGS" ;; -+ esac -+fi -+ -+ -+if test "x$CXXFLAGS_FOR_TARGET" = x; then -+ CXXFLAGS_FOR_TARGET=$CXXFLAGS -+ case " $CXXFLAGS " in -+ *" -O2 "*) ;; -+ *) CXXFLAGS_FOR_TARGET="-O2 $CXXFLAGS" ;; -+ esac -+ case " $CXXFLAGS " in -+ *" -g "* | *" -g3 "*) ;; -+ *) CXXFLAGS_FOR_TARGET="-g $CXXFLAGS" ;; -+ esac -+fi -+ -+ - # Handle --with-headers=XXX. If the value is not "yes", the contents of - # the named directory are copied to $(tooldir)/sys-include. - if test x"${with_headers}" != x && test x"${with_headers}" != xno ; then --- -2.20.1 - diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-9.1/0004-64-bit-multilib-hack.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-9.1/0004-64-bit-multilib-hack.patch deleted file mode 100644 index 137261b8..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-9.1/0004-64-bit-multilib-hack.patch +++ /dev/null @@ -1,119 +0,0 @@ -From 150d946082b3e21614d1cd0eb4752871495fe519 Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Fri, 29 Mar 2013 09:10:06 +0400 -Subject: [PATCH 04/37] 64-bit multilib hack. - -GCC has internal multilib handling code but it assumes a very specific rigid directory -layout. The build system implementation of multilib layout is very generic and allows -complete customisation of the library directories. - -This patch is a partial solution to allow any custom directories to be passed into gcc -and handled correctly. It forces gcc to use the base_libdir (which is the current -directory, "."). We need to do this for each multilib that is configured as we don't -know which compiler options may be being passed into the compiler. Since we have a compiler -per mulitlib at this point that isn't an issue. - -The one problem is the target compiler is only going to work for the default multlilib at -this point. Ideally we'd figure out which multilibs were being enabled with which paths -and be able to patch these entries with a complete set of correct paths but this we -don't have such code at this point. This is something the target gcc recipe should do -and override these platform defaults in its build config. - -Do same for riscv64 and aarch64 - -RP 15/8/11 - -Upstream-Status: Inappropriate[OE-Specific] - -Signed-off-by: Khem Raj -Signed-off-by: Elvis Dowson -Signed-off-by: Mark Hatle ---- - gcc/config/aarch64/t-aarch64-linux | 8 ++++---- - gcc/config/i386/t-linux64 | 6 ++---- - gcc/config/mips/t-linux64 | 10 +++------- - gcc/config/riscv/t-linux | 6 ++++-- - gcc/config/rs6000/t-linux64 | 5 ++--- - 5 files changed, 15 insertions(+), 20 deletions(-) - -diff --git a/gcc/config/aarch64/t-aarch64-linux b/gcc/config/aarch64/t-aarch64-linux -index 5ad670ba2ce..e26019e7157 100644 ---- a/gcc/config/aarch64/t-aarch64-linux -+++ b/gcc/config/aarch64/t-aarch64-linux -@@ -21,8 +21,8 @@ - LIB1ASMSRC = aarch64/lib1funcs.asm - LIB1ASMFUNCS = _aarch64_sync_cache_range - --AARCH_BE = $(if $(findstring TARGET_BIG_ENDIAN_DEFAULT=1, $(tm_defines)),_be) --MULTILIB_OSDIRNAMES = mabi.lp64=../lib64$(call if_multiarch,:aarch64$(AARCH_BE)-linux-gnu) --MULTIARCH_DIRNAME = $(call if_multiarch,aarch64$(AARCH_BE)-linux-gnu) -+#AARCH_BE = $(if $(findstring TARGET_BIG_ENDIAN_DEFAULT=1, $(tm_defines)),_be) -+#MULTILIB_OSDIRNAMES = mabi.lp64=../lib64$(call if_multiarch,:aarch64$(AARCH_BE)-linux-gnu) -+#MULTIARCH_DIRNAME = $(call if_multiarch,aarch64$(AARCH_BE)-linux-gnu) - --MULTILIB_OSDIRNAMES += mabi.ilp32=../libilp32$(call if_multiarch,:aarch64$(AARCH_BE)-linux-gnu_ilp32) -+#MULTILIB_OSDIRNAMES += mabi.ilp32=../libilp32$(call if_multiarch,:aarch64$(AARCH_BE)-linux-gnu_ilp32) -diff --git a/gcc/config/i386/t-linux64 b/gcc/config/i386/t-linux64 -index c686ab2f0d2..c82b60dadcd 100644 ---- a/gcc/config/i386/t-linux64 -+++ b/gcc/config/i386/t-linux64 -@@ -32,7 +32,5 @@ - # - comma=, - MULTILIB_OPTIONS = $(subst $(comma),/,$(TM_MULTILIB_CONFIG)) --MULTILIB_DIRNAMES = $(patsubst m%, %, $(subst /, ,$(MULTILIB_OPTIONS))) --MULTILIB_OSDIRNAMES = m64=../lib64$(call if_multiarch,:x86_64-linux-gnu) --MULTILIB_OSDIRNAMES+= m32=$(if $(wildcard $(shell echo $(SYSTEM_HEADER_DIR))/../../usr/lib32),../lib32,../lib)$(call if_multiarch,:i386-linux-gnu) --MULTILIB_OSDIRNAMES+= mx32=../libx32$(call if_multiarch,:x86_64-linux-gnux32) -+MULTILIB_DIRNAMES = . . -+MULTILIB_OSDIRNAMES = ../$(shell basename $(base_libdir)) ../$(shell basename $(base_libdir)) -diff --git a/gcc/config/mips/t-linux64 b/gcc/config/mips/t-linux64 -index 3a2ff700d7d..13ef19576b5 100644 ---- a/gcc/config/mips/t-linux64 -+++ b/gcc/config/mips/t-linux64 -@@ -17,10 +17,6 @@ - # . - - MULTILIB_OPTIONS = mabi=n32/mabi=32/mabi=64 --MULTILIB_DIRNAMES = n32 32 64 --MIPS_EL = $(if $(filter %el, $(firstword $(subst -, ,$(target)))),el) --MIPS_SOFT = $(if $(strip $(filter MASK_SOFT_FLOAT_ABI, $(target_cpu_default)) $(filter soft, $(with_float))),soft) --MULTILIB_OSDIRNAMES = \ -- ../lib32$(call if_multiarch,:mips64$(MIPS_EL)-linux-gnuabin32$(MIPS_SOFT)) \ -- ../lib$(call if_multiarch,:mips$(MIPS_EL)-linux-gnu$(MIPS_SOFT)) \ -- ../lib64$(call if_multiarch,:mips64$(MIPS_EL)-linux-gnuabi64$(MIPS_SOFT)) -+MULTILIB_DIRNAMES = . . . -+MULTILIB_OSDIRNAMES = ../$(shell basename $(base_libdir)) ../$(shell basename $(base_libdir)) ../$(shell basename $(base_libdir)) -+ -diff --git a/gcc/config/riscv/t-linux b/gcc/config/riscv/t-linux -index 216d2776a18..e4d817621fc 100644 ---- a/gcc/config/riscv/t-linux -+++ b/gcc/config/riscv/t-linux -@@ -1,3 +1,5 @@ - # Only XLEN and ABI affect Linux multilib dir names, e.g. /lib32/ilp32d/ --MULTILIB_DIRNAMES := $(patsubst rv32%,lib32,$(patsubst rv64%,lib64,$(MULTILIB_DIRNAMES))) --MULTILIB_OSDIRNAMES := $(patsubst lib%,../lib%,$(MULTILIB_DIRNAMES)) -+#MULTILIB_DIRNAMES := $(patsubst rv32%,lib32,$(patsubst rv64%,lib64,$(MULTILIB_DIRNAMES))) -+MULTILIB_DIRNAMES := . . -+#MULTILIB_OSDIRNAMES := $(patsubst lib%,../lib%,$(MULTILIB_DIRNAMES)) -+MULTILIB_OSDIRNAMES := ../$(shell basename $(base_libdir)) ../$(shell basename $(base_libdir)) -diff --git a/gcc/config/rs6000/t-linux64 b/gcc/config/rs6000/t-linux64 -index f3c6e2be1d9..bd0393155fa 100644 ---- a/gcc/config/rs6000/t-linux64 -+++ b/gcc/config/rs6000/t-linux64 -@@ -26,10 +26,9 @@ - # MULTILIB_OSDIRNAMES according to what is found on the target. - - MULTILIB_OPTIONS := m64/m32 --MULTILIB_DIRNAMES := 64 32 -+MULTILIB_DIRNAMES := . . - MULTILIB_EXTRA_OPTS := --MULTILIB_OSDIRNAMES := m64=../lib64$(call if_multiarch,:powerpc64-linux-gnu) --MULTILIB_OSDIRNAMES += m32=$(if $(wildcard $(shell echo $(SYSTEM_HEADER_DIR))/../../usr/lib32),../lib32,../lib)$(call if_multiarch,:powerpc-linux-gnu) -+MULTILIB_OSDIRNAMES := ../$(shell basename $(base_libdir)) ../$(shell basename $(base_libdir)) - - rs6000-linux.o: $(srcdir)/config/rs6000/rs6000-linux.c - $(COMPILE) $< --- -2.20.1 - diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-9.1/0005-optional-libstdc.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-9.1/0005-optional-libstdc.patch deleted file mode 100644 index d8e970a1..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-9.1/0005-optional-libstdc.patch +++ /dev/null @@ -1,125 +0,0 @@ -From a3323ea74f0793b35af4a4cdbe5e99fe21e4816b Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Fri, 29 Mar 2013 09:12:56 +0400 -Subject: [PATCH 05/37] optional libstdc - -gcc-runtime builds libstdc++ separately from gcc-cross-*. Its configure tests using g++ -will not run correctly since by default the linker will try to link against libstdc++ -which shouldn't exist yet. We need an option to disable -lstdc++ -option whilst leaving -lc, -lgcc and other automatic library dependencies added by gcc -driver. This patch adds such an option which only disables the -lstdc++. - -A "standard" gcc build uses xgcc and hence avoids this. We should ask upstream how to -do this officially, the likely answer is don't build libstdc++ separately. - -RP 29/6/10 - -Signed-off-by: Khem Raj - -Upstream-Status: Inappropriate [embedded specific] ---- - gcc/c-family/c.opt | 4 ++++ - gcc/cp/g++spec.c | 1 + - gcc/doc/invoke.texi | 32 +++++++++++++++++++++++++++++++- - gcc/gcc.c | 1 + - 4 files changed, 37 insertions(+), 1 deletion(-) - -diff --git a/gcc/c-family/c.opt b/gcc/c-family/c.opt -index 88c72c51c21..a7029592aa3 100644 ---- a/gcc/c-family/c.opt -+++ b/gcc/c-family/c.opt -@@ -1948,6 +1948,10 @@ nostdinc++ - C++ ObjC++ - Do not search standard system include directories for C++. - -+nostdlib++ -+Driver -+Do not link standard C++ runtime library -+ - o - C ObjC C++ ObjC++ Joined Separate - ; Documented in common.opt -diff --git a/gcc/cp/g++spec.c b/gcc/cp/g++spec.c -index 6c4574a837d..0e2657f00ee 100644 ---- a/gcc/cp/g++spec.c -+++ b/gcc/cp/g++spec.c -@@ -137,6 +137,7 @@ lang_specific_driver (struct cl_decoded_option **in_decoded_options, - switch (decoded_options[i].opt_index) - { - case OPT_nostdlib: -+ case OPT_nostdlib__: - case OPT_nodefaultlibs: - library = -1; - break; -diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi -index 001868e1509..4186c2616ab 100644 ---- a/gcc/doc/invoke.texi -+++ b/gcc/doc/invoke.texi -@@ -226,6 +226,9 @@ in the following sections. - -fno-weak -nostdinc++ @gol - -fvisibility-inlines-hidden @gol - -fvisibility-ms-compat @gol -+-fvtable-verify=@r{[}std@r{|}preinit@r{|}none@r{]} @gol -+-fvtv-counts -fvtv-debug @gol -+-nostdlib++ @gol - -fext-numeric-literals @gol - -Wabi=@var{n} -Wabi-tag -Wconversion-null -Wctor-dtor-privacy @gol - -Wdelete-non-virtual-dtor -Wdeprecated-copy -Wdeprecated-copy-dtor @gol -@@ -536,7 +539,7 @@ Objective-C and Objective-C++ Dialects}. - -pie -pthread -r -rdynamic @gol - -s -static -static-pie -static-libgcc -static-libstdc++ @gol - -static-libasan -static-libtsan -static-liblsan -static-libubsan @gol ---shared -shared-libgcc -symbolic @gol -+-shared -shared-libgcc -symbolic -nostdlib++ @gol - -T @var{script} -Wl,@var{option} -Xlinker @var{option} @gol - -u @var{symbol} -z @var{keyword}} - -@@ -13259,6 +13262,33 @@ Specify that the program entry point is @var{entry}. The argument is - interpreted by the linker; the GNU linker accepts either a symbol name - or an address. - -+@item -nostdlib++ -+@opindex nostdlib++ -+Do not use the standard system C++ runtime libraries when linking. -+Only the libraries you specify will be passed to the linker. -+ -+@cindex @option{-lgcc}, use with @option{-nostdlib} -+@cindex @option{-nostdlib} and unresolved references -+@cindex unresolved references and @option{-nostdlib} -+@cindex @option{-lgcc}, use with @option{-nodefaultlibs} -+@cindex @option{-nodefaultlibs} and unresolved references -+@cindex unresolved references and @option{-nodefaultlibs} -+One of the standard libraries bypassed by @option{-nostdlib} and -+@option{-nodefaultlibs} is @file{libgcc.a}, a library of internal subroutines -+which GCC uses to overcome shortcomings of particular machines, or special -+needs for some languages. -+(@xref{Interface,,Interfacing to GCC Output,gccint,GNU Compiler -+Collection (GCC) Internals}, -+for more discussion of @file{libgcc.a}.) -+In most cases, you need @file{libgcc.a} even when you want to avoid -+other standard libraries. In other words, when you specify @option{-nostdlib} -+or @option{-nodefaultlibs} you should usually specify @option{-lgcc} as well. -+This ensures that you have no unresolved references to internal GCC -+library subroutines. -+(An example of such an internal subroutine is @code{__main}, used to ensure C++ -+constructors are called; @pxref{Collect2,,@code{collect2}, gccint, -+GNU Compiler Collection (GCC) Internals}.) -+ - @item -pie - @opindex pie - Produce a dynamically linked position independent executable on targets -diff --git a/gcc/gcc.c b/gcc/gcc.c -index 79c38d858d1..308872aef5f 100644 ---- a/gcc/gcc.c -+++ b/gcc/gcc.c -@@ -1052,6 +1052,7 @@ proper position among the other output files. */ - %(mflib) " STACK_SPLIT_SPEC "\ - %{fprofile-arcs|fprofile-generate*|coverage:-lgcov} " SANITIZER_SPEC " \ - %{!nostdlib:%{!r:%{!nodefaultlibs:%(link_ssp) %(link_gcc_c_sequence)}}}\ -+ %{!nostdlib++:}\ - %{!nostdlib:%{!r:%{!nostartfiles:%E}}} %{T*} \n%(post_link) }}}}}}" - #endif - --- -2.20.1 - diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-9.1/0007-COLLECT_GCC_OPTIONS.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-9.1/0007-COLLECT_GCC_OPTIONS.patch deleted file mode 100644 index a522ada4..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-9.1/0007-COLLECT_GCC_OPTIONS.patch +++ /dev/null @@ -1,38 +0,0 @@ -From c7b8c2a6e81daaa50047c336c8ee90086aa4d4d5 Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Fri, 29 Mar 2013 09:16:28 +0400 -Subject: [PATCH 07/37] COLLECT_GCC_OPTIONS - -This patch adds --sysroot into COLLECT_GCC_OPTIONS which is used to -invoke collect2. - -Signed-off-by: Khem Raj - -Upstream-Status: Pending ---- - gcc/gcc.c | 9 +++++++++ - 1 file changed, 9 insertions(+) - -diff --git a/gcc/gcc.c b/gcc/gcc.c -index 308872aef5f..30845e5b125 100644 ---- a/gcc/gcc.c -+++ b/gcc/gcc.c -@@ -4804,6 +4804,15 @@ set_collect_gcc_options (void) - sizeof ("COLLECT_GCC_OPTIONS=") - 1); - - first_time = TRUE; -+#ifdef HAVE_LD_SYSROOT -+ if (target_system_root_changed && target_system_root) -+ { -+ obstack_grow (&collect_obstack, "'--sysroot=", sizeof("'--sysroot=")-1); -+ obstack_grow (&collect_obstack, target_system_root,strlen(target_system_root)); -+ obstack_grow (&collect_obstack, "'", 1); -+ first_time = FALSE; -+ } -+#endif - for (i = 0; (int) i < n_switches; i++) - { - const char *const *args; --- -2.20.1 - diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-9.1/0008-Use-the-defaults.h-in-B-instead-of-S-and-t-oe-in-B.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-9.1/0008-Use-the-defaults.h-in-B-instead-of-S-and-t-oe-in-B.patch deleted file mode 100644 index 2ef94a0b..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-9.1/0008-Use-the-defaults.h-in-B-instead-of-S-and-t-oe-in-B.patch +++ /dev/null @@ -1,96 +0,0 @@ -From 2f65b8bbf9c7c4bc0b94bb7ba9f6a8eb8675c9ab Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Fri, 29 Mar 2013 09:17:25 +0400 -Subject: [PATCH 08/37] Use the defaults.h in ${B} instead of ${S}, and t-oe in - ${B} - -Use the defaults.h in ${B} instead of ${S}, and t-oe in ${B}, so that -the source can be shared between gcc-cross-initial, -gcc-cross-intermediate, gcc-cross, gcc-runtime, and also the sdk build. - -Signed-off-by: Khem Raj - -Upstream-Status: Pending - -While compiling gcc-crosssdk-initial-x86_64 on some host, there is -occasionally failure that test the existance of default.h doesn't -work, the reason is tm_include_list='** defaults.h' rather than -tm_include_list='** ./defaults.h' - -So we add the test condition for this situation. -Signed-off-by: Hongxu Jia ---- - gcc/Makefile.in | 2 +- - gcc/configure | 4 ++-- - gcc/configure.ac | 4 ++-- - gcc/mkconfig.sh | 4 ++-- - 4 files changed, 7 insertions(+), 7 deletions(-) - -diff --git a/gcc/Makefile.in b/gcc/Makefile.in -index 508c674cbdc..3ccff1614bb 100644 ---- a/gcc/Makefile.in -+++ b/gcc/Makefile.in -@@ -540,7 +540,7 @@ TARGET_SYSTEM_ROOT = @TARGET_SYSTEM_ROOT@ - TARGET_SYSTEM_ROOT_DEFINE = @TARGET_SYSTEM_ROOT_DEFINE@ - - xmake_file=@xmake_file@ --tmake_file=@tmake_file@ -+tmake_file=@tmake_file@ ./t-oe - TM_ENDIAN_CONFIG=@TM_ENDIAN_CONFIG@ - TM_MULTILIB_CONFIG=@TM_MULTILIB_CONFIG@ - TM_MULTILIB_EXCEPTIONS_CONFIG=@TM_MULTILIB_EXCEPTIONS_CONFIG@ -diff --git a/gcc/configure b/gcc/configure -index d36cb51bc2c..7acc7e487b0 100755 ---- a/gcc/configure -+++ b/gcc/configure -@@ -12341,8 +12341,8 @@ for f in $tm_file; do - tm_include_list="${tm_include_list} $f" - ;; - defaults.h ) -- tm_file_list="${tm_file_list} \$(srcdir)/$f" -- tm_include_list="${tm_include_list} $f" -+ tm_file_list="${tm_file_list} ./$f" -+ tm_include_list="${tm_include_list} ./$f" - ;; - * ) - tm_file_list="${tm_file_list} \$(srcdir)/config/$f" -diff --git a/gcc/configure.ac b/gcc/configure.ac -index dfa88c35f3f..f5d5e5c16a8 100644 ---- a/gcc/configure.ac -+++ b/gcc/configure.ac -@@ -1968,8 +1968,8 @@ for f in $tm_file; do - tm_include_list="${tm_include_list} $f" - ;; - defaults.h ) -- tm_file_list="${tm_file_list} \$(srcdir)/$f" -- tm_include_list="${tm_include_list} $f" -+ tm_file_list="${tm_file_list} ./$f" -+ tm_include_list="${tm_include_list} ./$f" - ;; - * ) - tm_file_list="${tm_file_list} \$(srcdir)/config/$f" -diff --git a/gcc/mkconfig.sh b/gcc/mkconfig.sh -index 308b87d0cc1..19068cbc24a 100644 ---- a/gcc/mkconfig.sh -+++ b/gcc/mkconfig.sh -@@ -77,7 +77,7 @@ if [ -n "$HEADERS" ]; then - if [ $# -ge 1 ]; then - echo '#ifdef IN_GCC' >> ${output}T - for file in "$@"; do -- if test x"$file" = x"defaults.h"; then -+ if test x"$file" = x"./defaults.h" -o x"$file" = x"defaults.h"; then - postpone_defaults_h="yes" - else - echo "# include \"$file\"" >> ${output}T -@@ -106,7 +106,7 @@ esac - - # If we postponed including defaults.h, add the #include now. - if test x"$postpone_defaults_h" = x"yes"; then -- echo "# include \"defaults.h\"" >> ${output}T -+ echo "# include \"./defaults.h\"" >> ${output}T - fi - - # Add multiple inclusion protection guard, part two. --- -2.20.1 - diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-9.1/0009-fortran-cross-compile-hack.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-9.1/0009-fortran-cross-compile-hack.patch deleted file mode 100644 index 79597146..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-9.1/0009-fortran-cross-compile-hack.patch +++ /dev/null @@ -1,46 +0,0 @@ -From eda94df7d2389b6c36428e5687d5f0722d3375c3 Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Fri, 29 Mar 2013 09:20:01 +0400 -Subject: [PATCH 09/37] fortran cross-compile hack. - -* Fortran would have searched for arm-angstrom-gnueabi-gfortran but would have used -used gfortan. For gcc_4.2.2.bb we want to use the gfortran compiler from our cross -directory. - -Signed-off-by: Khem Raj - -Upstream-Status: Inappropriate [embedded specific] ---- - libgfortran/configure | 2 +- - libgfortran/configure.ac | 2 +- - 2 files changed, 2 insertions(+), 2 deletions(-) - -diff --git a/libgfortran/configure b/libgfortran/configure -index 487d8c090e2..a02b49293ac 100755 ---- a/libgfortran/configure -+++ b/libgfortran/configure -@@ -13056,7 +13056,7 @@ esac - - # We need gfortran to compile parts of the library - #AC_PROG_FC(gfortran) --FC="$GFORTRAN" -+#FC="$GFORTRAN" - ac_ext=${ac_fc_srcext-f} - ac_compile='$FC -c $FCFLAGS $ac_fcflags_srcext conftest.$ac_ext >&5' - ac_link='$FC -o conftest$ac_exeext $FCFLAGS $LDFLAGS $ac_fcflags_srcext conftest.$ac_ext $LIBS >&5' -diff --git a/libgfortran/configure.ac b/libgfortran/configure.ac -index c06db7b1a78..5b4b1b7f1f2 100644 ---- a/libgfortran/configure.ac -+++ b/libgfortran/configure.ac -@@ -250,7 +250,7 @@ AC_SUBST(enable_static) - - # We need gfortran to compile parts of the library - #AC_PROG_FC(gfortran) --FC="$GFORTRAN" -+#FC="$GFORTRAN" - AC_PROG_FC(gfortran) - - # extra LD Flags which are required for targets --- -2.20.1 - diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-9.1/0010-cpp-honor-sysroot.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-9.1/0010-cpp-honor-sysroot.patch deleted file mode 100644 index b680e6fc..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-9.1/0010-cpp-honor-sysroot.patch +++ /dev/null @@ -1,54 +0,0 @@ -From c2ec131f19d656fd916c45f51186633c789db6e9 Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Fri, 29 Mar 2013 09:22:00 +0400 -Subject: [PATCH 10/37] cpp: honor sysroot. - -Currently, if the gcc toolchain is relocated and installed from sstate, then you try and compile -preprocessed source (.i or .ii files), the compiler will try and access the builtin sysroot location -rather than the --sysroot option specified on the commandline. If access to that directory is -permission denied (unreadable), gcc will error. - -This happens when ccache is in use due to the fact it uses preprocessed source files. - -The fix below adds %I to the cpp-output spec macro so the default substitutions for -iprefix, --isystem, -isysroot happen and the correct sysroot is used. - -[YOCTO #2074] - -RP 2012/04/13 - -Signed-off-by: Khem Raj - -Upstream-Status: Pending ---- - gcc/cp/lang-specs.h | 2 +- - gcc/gcc.c | 2 +- - 2 files changed, 2 insertions(+), 2 deletions(-) - -diff --git a/gcc/cp/lang-specs.h b/gcc/cp/lang-specs.h -index c6e42eda283..e1ddf066467 100644 ---- a/gcc/cp/lang-specs.h -+++ b/gcc/cp/lang-specs.h -@@ -66,5 +66,5 @@ along with GCC; see the file COPYING3. If not see - {".ii", "@c++-cpp-output", 0, 0, 0}, - {"@c++-cpp-output", - "%{!E:%{!M:%{!MM:" -- " cc1plus -fpreprocessed %i %(cc1_options) %2" -+ " cc1plus -fpreprocessed %i %I %(cc1_options) %2" - " %{!fsyntax-only:%(invoke_as)}}}}", 0, 0, 0}, -diff --git a/gcc/gcc.c b/gcc/gcc.c -index 30845e5b125..cef26c454d7 100644 ---- a/gcc/gcc.c -+++ b/gcc/gcc.c -@@ -1349,7 +1349,7 @@ static const struct compiler default_compilers[] = - %W{o*:--output-pch=%*}}%V}}}}}}}", 0, 0, 0}, - {".i", "@cpp-output", 0, 0, 0}, - {"@cpp-output", -- "%{!M:%{!MM:%{!E:cc1 -fpreprocessed %i %(cc1_options) %{!fsyntax-only:%(invoke_as)}}}}", 0, 0, 0}, -+ "%{!M:%{!MM:%{!E:cc1 -fpreprocessed %i %I %(cc1_options) %{!fsyntax-only:%(invoke_as)}}}}", 0, 0, 0}, - {".s", "@assembler", 0, 0, 0}, - {"@assembler", - "%{!M:%{!MM:%{!E:%{!S:as %(asm_debug) %(asm_options) %i %A }}}}", 0, 0, 0}, --- -2.20.1 - diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-9.1/0011-MIPS64-Default-to-N64-ABI.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-9.1/0011-MIPS64-Default-to-N64-ABI.patch deleted file mode 100644 index d59a31be..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-9.1/0011-MIPS64-Default-to-N64-ABI.patch +++ /dev/null @@ -1,57 +0,0 @@ -From 52b915732de89d8676868641af462df81211bb39 Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Fri, 29 Mar 2013 09:23:08 +0400 -Subject: [PATCH 11/37] MIPS64: Default to N64 ABI - -MIPS64 defaults to n32 ABI, this patch makes it -so that it defaults to N64 ABI - -Signed-off-by: Khem Raj - -Upstream-Status: Inappropriate [OE config specific] ---- - gcc/config.gcc | 10 +++++----- - 1 file changed, 5 insertions(+), 5 deletions(-) - -diff --git a/gcc/config.gcc b/gcc/config.gcc -index a189cb19f63..293ed8d585d 100644 ---- a/gcc/config.gcc -+++ b/gcc/config.gcc -@@ -2267,29 +2267,29 @@ mips*-*-linux*) # Linux MIPS, either endian. - default_mips_arch=mips32 - ;; - mips64el-st-linux-gnu) -- default_mips_abi=n32 -+ default_mips_abi=64 - tm_file="${tm_file} mips/st.h" - tmake_file="${tmake_file} mips/t-st" - enable_mips_multilibs="yes" - ;; - mips64octeon*-*-linux*) -- default_mips_abi=n32 -+ default_mips_abi=64 - tm_defines="${tm_defines} MIPS_CPU_STRING_DEFAULT=\\\"octeon\\\"" - target_cpu_default=MASK_SOFT_FLOAT_ABI - enable_mips_multilibs="yes" - ;; - mipsisa64r6*-*-linux*) -- default_mips_abi=n32 -+ default_mips_abi=64 - default_mips_arch=mips64r6 - enable_mips_multilibs="yes" - ;; - mipsisa64r2*-*-linux*) -- default_mips_abi=n32 -+ default_mips_abi=64 - default_mips_arch=mips64r2 - enable_mips_multilibs="yes" - ;; - mips64*-*-linux* | mipsisa64*-*-linux*) -- default_mips_abi=n32 -+ default_mips_abi=64 - enable_mips_multilibs="yes" - ;; - esac --- -2.20.1 - diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-9.1/0012-Define-GLIBC_DYNAMIC_LINKER-and-UCLIBC_DYNAMIC_LINKE.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-9.1/0012-Define-GLIBC_DYNAMIC_LINKER-and-UCLIBC_DYNAMIC_LINKE.patch deleted file mode 100644 index f23a314c..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-9.1/0012-Define-GLIBC_DYNAMIC_LINKER-and-UCLIBC_DYNAMIC_LINKE.patch +++ /dev/null @@ -1,232 +0,0 @@ -From 492f008dce784749e39e1c396aeea6fa1d977374 Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Fri, 29 Mar 2013 09:24:50 +0400 -Subject: [PATCH 12/37] Define GLIBC_DYNAMIC_LINKER and UCLIBC_DYNAMIC_LINKER - relative to SYSTEMLIBS_DIR - -This patch defines GLIBC_DYNAMIC_LINKER and UCLIBC_DYNAMIC_LINKER -relative to SYSTEMLIBS_DIR which can be set in generated headers -This breaks the assumption of hardcoded multilib in gcc -Change is only for the supported architectures in OE including -SH, sparc, alpha for possible future support (if any) - -Removes the do_headerfix task in metadata - -Signed-off-by: Khem Raj - -Upstream-Status: Inappropriate [OE configuration] ---- - gcc/config/alpha/linux-elf.h | 4 ++-- - gcc/config/arm/linux-eabi.h | 4 ++-- - gcc/config/arm/linux-elf.h | 2 +- - gcc/config/i386/linux.h | 2 +- - gcc/config/i386/linux64.h | 6 +++--- - gcc/config/linux.h | 8 ++++---- - gcc/config/mips/linux.h | 12 ++++++------ - gcc/config/rs6000/linux64.h | 15 +++++---------- - gcc/config/sh/linux.h | 2 +- - gcc/config/sparc/linux.h | 2 +- - gcc/config/sparc/linux64.h | 4 ++-- - 11 files changed, 28 insertions(+), 33 deletions(-) - -diff --git a/gcc/config/alpha/linux-elf.h b/gcc/config/alpha/linux-elf.h -index 824861befec..6afacce3292 100644 ---- a/gcc/config/alpha/linux-elf.h -+++ b/gcc/config/alpha/linux-elf.h -@@ -23,8 +23,8 @@ along with GCC; see the file COPYING3. If not see - #define EXTRA_SPECS \ - { "elf_dynamic_linker", ELF_DYNAMIC_LINKER }, - --#define GLIBC_DYNAMIC_LINKER "/lib/ld-linux.so.2" --#define UCLIBC_DYNAMIC_LINKER "/lib/ld-uClibc.so.0" -+#define GLIBC_DYNAMIC_LINKER SYSTEMLIBS_DIR "ld-linux.so.2" -+#define UCLIBC_DYNAMIC_LINKER SYSTEMLIBS_DIR "ld-uClibc.so.0" - #if DEFAULT_LIBC == LIBC_UCLIBC - #define CHOOSE_DYNAMIC_LINKER(G, U) "%{mglibc:" G ";:" U "}" - #elif DEFAULT_LIBC == LIBC_GLIBC -diff --git a/gcc/config/arm/linux-eabi.h b/gcc/config/arm/linux-eabi.h -index 66ec0ea3980..e4ade2e2ab0 100644 ---- a/gcc/config/arm/linux-eabi.h -+++ b/gcc/config/arm/linux-eabi.h -@@ -65,8 +65,8 @@ - GLIBC_DYNAMIC_LINKER_DEFAULT and TARGET_DEFAULT_FLOAT_ABI. */ - - #undef GLIBC_DYNAMIC_LINKER --#define GLIBC_DYNAMIC_LINKER_SOFT_FLOAT "/lib/ld-linux.so.3" --#define GLIBC_DYNAMIC_LINKER_HARD_FLOAT "/lib/ld-linux-armhf.so.3" -+#define GLIBC_DYNAMIC_LINKER_SOFT_FLOAT SYSTEMLIBS_DIR "ld-linux.so.3" -+#define GLIBC_DYNAMIC_LINKER_HARD_FLOAT SYSTEMLIBS_DIR "ld-linux-armhf.so.3" - #define GLIBC_DYNAMIC_LINKER_DEFAULT GLIBC_DYNAMIC_LINKER_SOFT_FLOAT - - #define GLIBC_DYNAMIC_LINKER \ -diff --git a/gcc/config/arm/linux-elf.h b/gcc/config/arm/linux-elf.h -index 9a360defd21..98f6e960b64 100644 ---- a/gcc/config/arm/linux-elf.h -+++ b/gcc/config/arm/linux-elf.h -@@ -60,7 +60,7 @@ - - #define LIBGCC_SPEC "%{mfloat-abi=soft*:-lfloat} -lgcc" - --#define GLIBC_DYNAMIC_LINKER "/lib/ld-linux.so.2" -+#define GLIBC_DYNAMIC_LINKER SYSTEMLIBS_DIR "ld-linux.so.2" - - #define LINUX_TARGET_LINK_SPEC "%{h*} \ - %{static:-Bstatic} \ -diff --git a/gcc/config/i386/linux.h b/gcc/config/i386/linux.h -index 9a6e2d99896..31efbb73016 100644 ---- a/gcc/config/i386/linux.h -+++ b/gcc/config/i386/linux.h -@@ -20,7 +20,7 @@ along with GCC; see the file COPYING3. If not see - . */ - - #define GNU_USER_LINK_EMULATION "elf_i386" --#define GLIBC_DYNAMIC_LINKER "/lib/ld-linux.so.2" -+#define GLIBC_DYNAMIC_LINKER SYSTEMLIBS_DIR "ld-linux.so.2" - - #undef MUSL_DYNAMIC_LINKER - #define MUSL_DYNAMIC_LINKER "/lib/ld-musl-i386.so.1" -diff --git a/gcc/config/i386/linux64.h b/gcc/config/i386/linux64.h -index c08221c4210..dbb474d792b 100644 ---- a/gcc/config/i386/linux64.h -+++ b/gcc/config/i386/linux64.h -@@ -27,9 +27,9 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see - #define GNU_USER_LINK_EMULATION64 "elf_x86_64" - #define GNU_USER_LINK_EMULATIONX32 "elf32_x86_64" - --#define GLIBC_DYNAMIC_LINKER32 "/lib/ld-linux.so.2" --#define GLIBC_DYNAMIC_LINKER64 "/lib64/ld-linux-x86-64.so.2" --#define GLIBC_DYNAMIC_LINKERX32 "/libx32/ld-linux-x32.so.2" -+#define GLIBC_DYNAMIC_LINKER32 SYSTEMLIBS_DIR "ld-linux.so.2" -+#define GLIBC_DYNAMIC_LINKER64 SYSTEMLIBS_DIR "ld-linux-x86-64.so.2" -+#define GLIBC_DYNAMIC_LINKERX32 SYSTEMLIBS_DIR "ld-linux-x32.so.2" - - #undef MUSL_DYNAMIC_LINKER32 - #define MUSL_DYNAMIC_LINKER32 "/lib/ld-musl-i386.so.1" -diff --git a/gcc/config/linux.h b/gcc/config/linux.h -index c3c4a219e67..4b05d8e93d1 100644 ---- a/gcc/config/linux.h -+++ b/gcc/config/linux.h -@@ -94,10 +94,10 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see - GLIBC_DYNAMIC_LINKER must be defined for each target using them, or - GLIBC_DYNAMIC_LINKER32 and GLIBC_DYNAMIC_LINKER64 for targets - supporting both 32-bit and 64-bit compilation. */ --#define UCLIBC_DYNAMIC_LINKER "/lib/ld-uClibc.so.0" --#define UCLIBC_DYNAMIC_LINKER32 "/lib/ld-uClibc.so.0" --#define UCLIBC_DYNAMIC_LINKER64 "/lib/ld64-uClibc.so.0" --#define UCLIBC_DYNAMIC_LINKERX32 "/lib/ldx32-uClibc.so.0" -+#define UCLIBC_DYNAMIC_LINKER SYSTEMLIBS_DIR "ld-uClibc.so.0" -+#define UCLIBC_DYNAMIC_LINKER32 SYSTEMLIBS_DIR "ld-uClibc.so.0" -+#define UCLIBC_DYNAMIC_LINKER64 SYSTEMLIBS_DIR "ld64-uClibc.so.0" -+#define UCLIBC_DYNAMIC_LINKERX32 SYSTEMLIBS_DIR "ldx32-uClibc.so.0" - #define BIONIC_DYNAMIC_LINKER "/system/bin/linker" - #define BIONIC_DYNAMIC_LINKER32 "/system/bin/linker" - #define BIONIC_DYNAMIC_LINKER64 "/system/bin/linker64" -diff --git a/gcc/config/mips/linux.h b/gcc/config/mips/linux.h -index 6f79ac9c01a..25de96f9561 100644 ---- a/gcc/config/mips/linux.h -+++ b/gcc/config/mips/linux.h -@@ -22,20 +22,20 @@ along with GCC; see the file COPYING3. If not see - #define GNU_USER_LINK_EMULATIONN32 "elf32%{EB:b}%{EL:l}tsmipn32" - - #define GLIBC_DYNAMIC_LINKER32 \ -- "%{mnan=2008:/lib/ld-linux-mipsn8.so.1;:/lib/ld.so.1}" -+ "%{mnan=2008:" SYSTEMLIBS_DIR "ld-linux-mipsn8.so.1;:" SYSTEMLIBS_DIR "ld.so.1}" - #define GLIBC_DYNAMIC_LINKER64 \ -- "%{mnan=2008:/lib64/ld-linux-mipsn8.so.1;:/lib64/ld.so.1}" -+ "%{mnan=2008:" SYSTEMLIBS_DIR "ld-linux-mipsn8.so.1;:" SYSTEMLIBS_DIR "ld.so.1}" - #define GLIBC_DYNAMIC_LINKERN32 \ -- "%{mnan=2008:/lib32/ld-linux-mipsn8.so.1;:/lib32/ld.so.1}" -+ "%{mnan=2008:" SYSTEMLIBS_DIR "ld-linux-mipsn8.so.1;:" SYSTEMLIBS_DIR "ld.so.1}" - - #undef UCLIBC_DYNAMIC_LINKER32 - #define UCLIBC_DYNAMIC_LINKER32 \ -- "%{mnan=2008:/lib/ld-uClibc-mipsn8.so.0;:/lib/ld-uClibc.so.0}" -+ "%{mnan=2008:" SYSTEMLIBS_DIR "ld-uClibc-mipsn8.so.0;:" SYSTEMLIBS_DIR "ld-uClibc.so.0}" - #undef UCLIBC_DYNAMIC_LINKER64 - #define UCLIBC_DYNAMIC_LINKER64 \ -- "%{mnan=2008:/lib/ld64-uClibc-mipsn8.so.0;:/lib/ld64-uClibc.so.0}" -+ "%{mnan=2008:" SYSTEMLIBS_DIR "ld64-uClibc-mipsn8.so.0;:" SYSTEMLIBS_DIR "ld64-uClibc.so.0}" - #define UCLIBC_DYNAMIC_LINKERN32 \ -- "%{mnan=2008:/lib32/ld-uClibc-mipsn8.so.0;:/lib32/ld-uClibc.so.0}" -+ "%{mnan=2008:" SYSTEMLIBS_DIR "ld-uClibc-mipsn8.so.0;:" SYSTEMLIBS_DIR "ld-uClibc.so.0}" - - #undef MUSL_DYNAMIC_LINKER32 - #define MUSL_DYNAMIC_LINKER32 \ -diff --git a/gcc/config/rs6000/linux64.h b/gcc/config/rs6000/linux64.h -index bcc540b5ff2..982ca274621 100644 ---- a/gcc/config/rs6000/linux64.h -+++ b/gcc/config/rs6000/linux64.h -@@ -428,24 +428,19 @@ extern int dot_symbols; - #undef LINK_OS_DEFAULT_SPEC - #define LINK_OS_DEFAULT_SPEC "%(link_os_linux)" - --#define GLIBC_DYNAMIC_LINKER32 "%(dynamic_linker_prefix)/lib/ld.so.1" -- -+#define GLIBC_DYNAMIC_LINKER32 SYSTEMLIBS_DIR "ld.so.1" - #ifdef LINUX64_DEFAULT_ABI_ELFv2 --#define GLIBC_DYNAMIC_LINKER64 \ --"%{mabi=elfv1:%(dynamic_linker_prefix)/lib64/ld64.so.1;" \ --":%(dynamic_linker_prefix)/lib64/ld64.so.2}" -+#define GLIBC_DYNAMIC_LINKER64 "%{mabi=elfv1:" SYSTEMLIBS_DIR "ld64.so.1;:" SYSTEMLIBS_DIR "ld64.so.2}" - #else --#define GLIBC_DYNAMIC_LINKER64 \ --"%{mabi=elfv2:%(dynamic_linker_prefix)/lib64/ld64.so.2;" \ --":%(dynamic_linker_prefix)/lib64/ld64.so.1}" -+#define GLIBC_DYNAMIC_LINKER64 "%{mabi=elfv2:" SYSTEMLIBS_DIR "ld64.so.2;:" SYSTEMLIBS_DIR "ld64.so.1}" - #endif - - #undef MUSL_DYNAMIC_LINKER32 - #define MUSL_DYNAMIC_LINKER32 \ -- "/lib/ld-musl-powerpc" MUSL_DYNAMIC_LINKER_E "%{msoft-float:-sf}.so.1" -+ SYSTEMLIBS_DIR "ld-musl-powerpc" MUSL_DYNAMIC_LINKER_E "%{msoft-float:-sf}.so.1" - #undef MUSL_DYNAMIC_LINKER64 - #define MUSL_DYNAMIC_LINKER64 \ -- "/lib/ld-musl-powerpc64" MUSL_DYNAMIC_LINKER_E "%{msoft-float:-sf}.so.1" -+ SYSTEMLIBS_DIR "ld-musl-powerpc64" MUSL_DYNAMIC_LINKER_E "%{msoft-float:-sf}.so.1" - - #undef DEFAULT_ASM_ENDIAN - #if (TARGET_DEFAULT & MASK_LITTLE_ENDIAN) -diff --git a/gcc/config/sh/linux.h b/gcc/config/sh/linux.h -index c9897b7aca5..82f275319cc 100644 ---- a/gcc/config/sh/linux.h -+++ b/gcc/config/sh/linux.h -@@ -64,7 +64,7 @@ along with GCC; see the file COPYING3. If not see - "/lib/ld-musl-sh" MUSL_DYNAMIC_LINKER_E MUSL_DYNAMIC_LINKER_FP \ - "%{mfdpic:-fdpic}.so.1" - --#define GLIBC_DYNAMIC_LINKER "/lib/ld-linux.so.2" -+#define GLIBC_DYNAMIC_LINKER SYSTEMLIBS_DIR "ld-linux.so.2" - - #undef SUBTARGET_LINK_EMUL_SUFFIX - #define SUBTARGET_LINK_EMUL_SUFFIX "%{mfdpic:_fd;:_linux}" -diff --git a/gcc/config/sparc/linux.h b/gcc/config/sparc/linux.h -index 2db9ea2172e..1979cfff5d3 100644 ---- a/gcc/config/sparc/linux.h -+++ b/gcc/config/sparc/linux.h -@@ -83,7 +83,7 @@ extern const char *host_detect_local_cpu (int argc, const char **argv); - When the -shared link option is used a final link is not being - done. */ - --#define GLIBC_DYNAMIC_LINKER "/lib/ld-linux.so.2" -+#define GLIBC_DYNAMIC_LINKER SYSTEMLIBS_DIR "ld-linux.so.2" - - #undef LINK_SPEC - #define LINK_SPEC "-m elf32_sparc %{shared:-shared} \ -diff --git a/gcc/config/sparc/linux64.h b/gcc/config/sparc/linux64.h -index 21e13001951..d39c38a531f 100644 ---- a/gcc/config/sparc/linux64.h -+++ b/gcc/config/sparc/linux64.h -@@ -84,8 +84,8 @@ along with GCC; see the file COPYING3. If not see - When the -shared link option is used a final link is not being - done. */ - --#define GLIBC_DYNAMIC_LINKER32 "/lib/ld-linux.so.2" --#define GLIBC_DYNAMIC_LINKER64 "/lib64/ld-linux.so.2" -+#define GLIBC_DYNAMIC_LINKER32 SYSTEMLIBS_DIR "ld-linux.so.2" -+#define GLIBC_DYNAMIC_LINKER64 SYSTEMLIBS_DIR "ld-linux.so.2" - - #ifdef SPARC_BI_ARCH - --- -2.20.1 - diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-9.1/0013-gcc-Fix-argument-list-too-long-error.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-9.1/0013-gcc-Fix-argument-list-too-long-error.patch deleted file mode 100644 index f853ff90..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-9.1/0013-gcc-Fix-argument-list-too-long-error.patch +++ /dev/null @@ -1,40 +0,0 @@ -From d8a24eca2d7a222d4910c8a508d75d0d1418e201 Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Fri, 29 Mar 2013 09:26:37 +0400 -Subject: [PATCH 13/37] gcc: Fix argument list too long error. - -There would be an "Argument list too long" error when the -build directory is longer than 200, this is caused by: - -headers=`echo $(PLUGIN_HEADERS) | tr ' ' '\012' | sort -u` - -The PLUGIN_HEADERS is too long before sort, so the "echo" can't handle -it, use the $(sort list) of GNU make which can handle the too long list -would fix the problem, the header would be short enough after sorted. -The "tr ' ' '\012'" was used for translating the space to "\n", the -$(sort list) doesn't need this. - -Signed-off-by: Robert Yang -Signed-off-by: Khem Raj - -Upstream-Status: Pending ---- - gcc/Makefile.in | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/gcc/Makefile.in b/gcc/Makefile.in -index 3ccff1614bb..88b1aec732b 100644 ---- a/gcc/Makefile.in -+++ b/gcc/Makefile.in -@@ -3538,7 +3538,7 @@ install-plugin: installdirs lang.install-plugin s-header-vars install-gengtype - # We keep the directory structure for files in config or c-family and .def - # files. All other files are flattened to a single directory. - $(mkinstalldirs) $(DESTDIR)$(plugin_includedir) -- headers=`echo $(PLUGIN_HEADERS) $$(cd $(srcdir); echo *.h *.def) | tr ' ' '\012' | sort -u`; \ -+ headers="$(sort $(PLUGIN_HEADERS) $$(cd $(srcdir); echo *.h *.def))"; \ - srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`; \ - for file in $$headers; do \ - if [ -f $$file ] ; then \ --- -2.20.1 - diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-9.1/0014-Disable-sdt.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-9.1/0014-Disable-sdt.patch deleted file mode 100644 index 945cf8f8..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-9.1/0014-Disable-sdt.patch +++ /dev/null @@ -1,113 +0,0 @@ -From d5e52580314ef6056ca701fcc030c7c884cb1d7f Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Fri, 29 Mar 2013 09:28:10 +0400 -Subject: [PATCH 14/37] Disable sdt. - -We don't list dtrace in DEPENDS so we shouldn't be depending on this header. -It may or may not exist from preivous builds though. To be determinstic, disable -sdt.h usage always. This avoids build failures if the header is removed after configure -but before libgcc is compiled for example. - -RP 2012/8/7 - -Signed-off-by: Khem Raj - -Disable sdt for libstdc++-v3. - -Signed-off-by: Robert Yang - -Upstream-Status: Inappropriate [hack] ---- - gcc/configure | 12 ++++++------ - gcc/configure.ac | 18 +++++++++--------- - libstdc++-v3/configure | 6 +++--- - libstdc++-v3/configure.ac | 2 +- - 4 files changed, 19 insertions(+), 19 deletions(-) - -diff --git a/gcc/configure b/gcc/configure -index 7acc7e487b0..6a87ab693ea 100755 ---- a/gcc/configure -+++ b/gcc/configure -@@ -29292,12 +29292,12 @@ fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking sys/sdt.h in the target C library" >&5 - $as_echo_n "checking sys/sdt.h in the target C library... " >&6; } - have_sys_sdt_h=no --if test -f $target_header_dir/sys/sdt.h; then -- have_sys_sdt_h=yes -- --$as_echo "#define HAVE_SYS_SDT_H 1" >>confdefs.h -- --fi -+#if test -f $target_header_dir/sys/sdt.h; then -+# have_sys_sdt_h=yes -+# -+#$as_echo "#define HAVE_SYS_SDT_H 1" >>confdefs.h -+# -+#fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $have_sys_sdt_h" >&5 - $as_echo "$have_sys_sdt_h" >&6; } - -diff --git a/gcc/configure.ac b/gcc/configure.ac -index f5d5e5c16a8..a50765171be 100644 ---- a/gcc/configure.ac -+++ b/gcc/configure.ac -@@ -5985,15 +5985,15 @@ fi - AC_SUBST([enable_default_ssp]) - - # Test for on the target. --GCC_TARGET_TEMPLATE([HAVE_SYS_SDT_H]) --AC_MSG_CHECKING(sys/sdt.h in the target C library) --have_sys_sdt_h=no --if test -f $target_header_dir/sys/sdt.h; then -- have_sys_sdt_h=yes -- AC_DEFINE(HAVE_SYS_SDT_H, 1, -- [Define if your target C library provides sys/sdt.h]) --fi --AC_MSG_RESULT($have_sys_sdt_h) -+#GCC_TARGET_TEMPLATE([HAVE_SYS_SDT_H]) -+#AC_MSG_CHECKING(sys/sdt.h in the target C library) -+#have_sys_sdt_h=no -+#if test -f $target_header_dir/sys/sdt.h; then -+# have_sys_sdt_h=yes -+# AC_DEFINE(HAVE_SYS_SDT_H, 1, -+# [Define if your target C library provides sys/sdt.h]) -+#fi -+#AC_MSG_RESULT($have_sys_sdt_h) - - # Check if TFmode long double should be used by default or not. - # Some glibc targets used DFmode long double, but with glibc 2.4 -diff --git a/libstdc++-v3/configure b/libstdc++-v3/configure -index 15848e364ab..8d3da1cc526 100755 ---- a/libstdc++-v3/configure -+++ b/libstdc++-v3/configure -@@ -22084,11 +22084,11 @@ ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' - ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' - ac_compiler_gnu=$ac_cv_c_compiler_gnu - -- if test $glibcxx_cv_sys_sdt_h = yes; then -+# if test $glibcxx_cv_sys_sdt_h = yes; then - --$as_echo "#define HAVE_SYS_SDT_H 1" >>confdefs.h -+#$as_echo "#define HAVE_SYS_SDT_H 1" >>confdefs.h - -- fi -+# fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $glibcxx_cv_sys_sdt_h" >&5 - $as_echo "$glibcxx_cv_sys_sdt_h" >&6; } - -diff --git a/libstdc++-v3/configure.ac b/libstdc++-v3/configure.ac -index ad5b4117cfd..2341645ba6f 100644 ---- a/libstdc++-v3/configure.ac -+++ b/libstdc++-v3/configure.ac -@@ -230,7 +230,7 @@ GLIBCXX_CHECK_SC_NPROCESSORS_ONLN - GLIBCXX_CHECK_SC_NPROC_ONLN - GLIBCXX_CHECK_PTHREADS_NUM_PROCESSORS_NP - GLIBCXX_CHECK_SYSCTL_HW_NCPU --GLIBCXX_CHECK_SDT_H -+#GLIBCXX_CHECK_SDT_H - - # Check for available headers. - AC_CHECK_HEADERS([endian.h execinfo.h float.h fp.h ieeefp.h inttypes.h \ --- -2.20.1 - diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-9.1/0015-libtool.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-9.1/0015-libtool.patch deleted file mode 100644 index 764460b8..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-9.1/0015-libtool.patch +++ /dev/null @@ -1,42 +0,0 @@ -From d7c605d92094c75dc2717d9dd830e525b2c8b0ff Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Fri, 29 Mar 2013 09:29:11 +0400 -Subject: [PATCH 15/37] libtool - -libstdc++ from gcc-runtime gets created with -rpath=/usr/lib/../lib for qemux86-64 -when running on am x86_64 build host. - -This patch stops this speading to libdir in the libstdc++.la file within libtool. -Arguably, it shouldn't be passing this into libtool in the first place but -for now this resolves the nastiest problems this causes. - -func_normal_abspath would resolve an empty path to `pwd` so we need -to filter the zero case. - -RP 2012/8/24 - -Signed-off-by: Khem Raj - -Upstream-Status: Pending ---- - ltmain.sh | 4 ++++ - 1 file changed, 4 insertions(+) - -diff --git a/ltmain.sh b/ltmain.sh -index 79f9ba89af5..8e222f7c16b 100644 ---- a/ltmain.sh -+++ b/ltmain.sh -@@ -6359,6 +6359,10 @@ func_mode_link () - func_warning "ignoring multiple \`-rpath's for a libtool library" - - install_libdir="$1" -+ if test -n "$install_libdir"; then -+ func_normal_abspath "$install_libdir" -+ install_libdir=$func_normal_abspath_result -+ fi - - oldlibs= - if test -z "$rpath"; then --- -2.20.1 - diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-9.1/0016-gcc-armv4-pass-fix-v4bx-to-linker-to-support-EABI.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-9.1/0016-gcc-armv4-pass-fix-v4bx-to-linker-to-support-EABI.patch deleted file mode 100644 index 398074b5..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-9.1/0016-gcc-armv4-pass-fix-v4bx-to-linker-to-support-EABI.patch +++ /dev/null @@ -1,43 +0,0 @@ -From c3addf8bc41190d46d98eb7690ff4583eebd5943 Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Fri, 29 Mar 2013 09:30:32 +0400 -Subject: [PATCH 16/37] gcc: armv4: pass fix-v4bx to linker to support EABI. - -The LINK_SPEC for linux gets overwritten by linux-eabi.h which -means the value of TARGET_FIX_V4BX_SPEC gets lost and as a result -the option is not passed to linker when chosing march=armv4 -This patch redefines this in linux-eabi.h and reinserts it -for eabi defaulting toolchains. - -We might want to send it upstream. - -Signed-off-by: Khem Raj - -Upstream-Status: Pending ---- - gcc/config/arm/linux-eabi.h | 6 +++++- - 1 file changed, 5 insertions(+), 1 deletion(-) - -diff --git a/gcc/config/arm/linux-eabi.h b/gcc/config/arm/linux-eabi.h -index e4ade2e2ab0..108863f69d2 100644 ---- a/gcc/config/arm/linux-eabi.h -+++ b/gcc/config/arm/linux-eabi.h -@@ -91,10 +91,14 @@ - #define MUSL_DYNAMIC_LINKER \ - "/lib/ld-musl-arm" MUSL_DYNAMIC_LINKER_E "%{mfloat-abi=hard:hf}.so.1" - -+/* For armv4 we pass --fix-v4bx to linker to support EABI */ -+#undef TARGET_FIX_V4BX_SPEC -+#define TARGET_FIX_V4BX_SPEC "%{mcpu=arm8|mcpu=arm810|mcpu=strongarm*|march=armv4: --fix-v4bx}" -+ - /* At this point, bpabi.h will have clobbered LINK_SPEC. We want to - use the GNU/Linux version, not the generic BPABI version. */ - #undef LINK_SPEC --#define LINK_SPEC EABI_LINK_SPEC \ -+#define LINK_SPEC TARGET_FIX_V4BX_SPEC EABI_LINK_SPEC \ - LINUX_OR_ANDROID_LD (LINUX_TARGET_LINK_SPEC, \ - LINUX_TARGET_LINK_SPEC " " ANDROID_LINK_SPEC) - --- -2.20.1 - diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-9.1/0017-Use-the-multilib-config-files-from-B-instead-of-usin.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-9.1/0017-Use-the-multilib-config-files-from-B-instead-of-usin.patch deleted file mode 100644 index 7d5c94a6..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-9.1/0017-Use-the-multilib-config-files-from-B-instead-of-usin.patch +++ /dev/null @@ -1,102 +0,0 @@ -From e1071f4e749586fcb3edcacf43d4dd44081d16ec Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Fri, 29 Mar 2013 09:33:04 +0400 -Subject: [PATCH 17/37] Use the multilib config files from ${B} instead of - using the ones from ${S} - -Use the multilib config files from ${B} instead of using the ones from ${S} -so that the source can be shared between gcc-cross-initial, -gcc-cross-intermediate, gcc-cross, gcc-runtime, and also the sdk build. - -Signed-off-by: Khem Raj -Signed-off-by: Constantin Musca - -Upstream-Status: Inappropriate [configuration] ---- - gcc/configure | 22 ++++++++++++++++++---- - gcc/configure.ac | 22 ++++++++++++++++++---- - 2 files changed, 36 insertions(+), 8 deletions(-) - -diff --git a/gcc/configure b/gcc/configure -index 6a87ab693ea..2e822caf66d 100755 ---- a/gcc/configure -+++ b/gcc/configure -@@ -12321,10 +12321,20 @@ done - tmake_file_= - for f in ${tmake_file} - do -- if test -f ${srcdir}/config/$f -- then -- tmake_file_="${tmake_file_} \$(srcdir)/config/$f" -- fi -+ case $f in -+ */t-linux64 ) -+ if test -f ./config/$f -+ then -+ tmake_file_="${tmake_file_} ./config/$f" -+ fi -+ ;; -+ * ) -+ if test -f ${srcdir}/config/$f -+ then -+ tmake_file_="${tmake_file_} \$(srcdir)/config/$f" -+ fi -+ ;; -+ esac - done - tmake_file="${tmake_file_}" - -@@ -12335,6 +12345,10 @@ tm_file_list="options.h" - tm_include_list="options.h insn-constants.h" - for f in $tm_file; do - case $f in -+ */linux64.h ) -+ tm_file_list="${tm_file_list} ./config/$f" -+ tm_include_list="${tm_include_list} ./config/$f" -+ ;; - ./* ) - f=`echo $f | sed 's/^..//'` - tm_file_list="${tm_file_list} $f" -diff --git a/gcc/configure.ac b/gcc/configure.ac -index a50765171be..70e7bac78c4 100644 ---- a/gcc/configure.ac -+++ b/gcc/configure.ac -@@ -1948,10 +1948,20 @@ done - tmake_file_= - for f in ${tmake_file} - do -- if test -f ${srcdir}/config/$f -- then -- tmake_file_="${tmake_file_} \$(srcdir)/config/$f" -- fi -+ case $f in -+ */t-linux64 ) -+ if test -f ./config/$f -+ then -+ tmake_file_="${tmake_file_} ./config/$f" -+ fi -+ ;; -+ * ) -+ if test -f ${srcdir}/config/$f -+ then -+ tmake_file_="${tmake_file_} \$(srcdir)/config/$f" -+ fi -+ ;; -+ esac - done - tmake_file="${tmake_file_}" - -@@ -1962,6 +1972,10 @@ tm_file_list="options.h" - tm_include_list="options.h insn-constants.h" - for f in $tm_file; do - case $f in -+ */linux64.h ) -+ tm_file_list="${tm_file_list} ./config/$f" -+ tm_include_list="${tm_include_list} ./config/$f" -+ ;; - ./* ) - f=`echo $f | sed 's/^..//'` - tm_file_list="${tm_file_list} $f" --- -2.20.1 - diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-9.1/0018-Avoid-using-libdir-from-.la-which-usually-points-to-.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-9.1/0018-Avoid-using-libdir-from-.la-which-usually-points-to-.patch deleted file mode 100644 index 596337bc..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-9.1/0018-Avoid-using-libdir-from-.la-which-usually-points-to-.patch +++ /dev/null @@ -1,31 +0,0 @@ -From 1ffbbb39c9848aa7a04da18fb79b1f0bd7731e00 Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Fri, 20 Feb 2015 09:39:38 +0000 -Subject: [PATCH 18/37] Avoid using libdir from .la which usually points to a - host path - -Upstream-Status: Inappropriate [embedded specific] - -Signed-off-by: Jonathan Liu -Signed-off-by: Khem Raj ---- - ltmain.sh | 3 +++ - 1 file changed, 3 insertions(+) - -diff --git a/ltmain.sh b/ltmain.sh -index 8e222f7c16b..0a93b4e5c3b 100644 ---- a/ltmain.sh -+++ b/ltmain.sh -@@ -5628,6 +5628,9 @@ func_mode_link () - absdir="$abs_ladir" - libdir="$abs_ladir" - else -+ # Instead of using libdir from .la which usually points to a host path, -+ # use the path the .la is contained in. -+ libdir="$abs_ladir" - dir="$libdir" - absdir="$libdir" - fi --- -2.20.1 - diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-9.1/0019-export-CPP.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-9.1/0019-export-CPP.patch deleted file mode 100644 index 50d17dd9..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-9.1/0019-export-CPP.patch +++ /dev/null @@ -1,53 +0,0 @@ -From 5ece023b88eaba16d8744f8f2ff72345ec3b7f92 Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Fri, 20 Feb 2015 09:40:59 +0000 -Subject: [PATCH 19/37] export CPP - -The OE environment sets and exports CPP as being the target gcc. When -building gcc-cross-canadian for a mingw targetted sdk, the following can be found -in build.x86_64-pokysdk-mingw32.i586-poky-linux/build-x86_64-linux/libiberty/config.log: - -configure:3641: checking for _FILE_OFFSET_BITS value needed for large files -configure:3666: gcc -c -isystem/media/build1/poky/build/tmp/sysroots/x86_64-linux/usr/include -O2 -pipe conftest.c >&5 -configure:3666: $? = 0 -configure:3698: result: no -configure:3786: checking how to run the C preprocessor -configure:3856: result: x86_64-pokysdk-mingw32-gcc -E --sysroot=/media/build1/poky/build/tmp/sysroots/x86_64-nativesdk-mingw32-pokysdk-mingw32 -configure:3876: x86_64-pokysdk-mingw32-gcc -E --sysroot=/media/build1/poky/build/tmp/sysroots/x86_64-nativesdk-mingw32-pokysdk-mingw32 conftest.c -configure:3876: $? = 0 - -Note this is a *build* target (in build-x86_64-linux) so it should be -using the host "gcc", not x86_64-pokysdk-mingw32-gcc. Since the mingw32 -headers are very different, using the wrong cpp is a real problem. It is leaking -into configure through the CPP variable. Ultimately this leads to build -failures related to not being able to include a process.h file for pem-unix.c. - -The fix is to ensure we export a sane CPP value into the build -environment when using build targets. We could define a CPP_FOR_BUILD value which may be -the version which needs to be upstreamed but for now, this fix is good enough to -avoid the problem. - -RP 22/08/2013 - -Upstream-Status: Pending - -Signed-off-by: Khem Raj ---- - Makefile.in | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/Makefile.in b/Makefile.in -index 28539a45372..b21e0791f55 100644 ---- a/Makefile.in -+++ b/Makefile.in -@@ -149,6 +149,7 @@ BUILD_EXPORTS = \ - AR="$(AR_FOR_BUILD)"; export AR; \ - AS="$(AS_FOR_BUILD)"; export AS; \ - CC="$(CC_FOR_BUILD)"; export CC; \ -+ CPP="$(CC_FOR_BUILD) -E"; export CPP; \ - CFLAGS="$(CFLAGS_FOR_BUILD)"; export CFLAGS; \ - CONFIG_SHELL="$(SHELL)"; export CONFIG_SHELL; \ - CXX="$(CXX_FOR_BUILD)"; export CXX; \ --- -2.20.1 - diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-9.1/0020-Ensure-target-gcc-headers-can-be-included.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-9.1/0020-Ensure-target-gcc-headers-can-be-included.patch deleted file mode 100644 index f37c6f39..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-9.1/0020-Ensure-target-gcc-headers-can-be-included.patch +++ /dev/null @@ -1,98 +0,0 @@ -From 89f7a8e5c55b31bff011cd7466d78cd84d1eb307 Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Fri, 20 Feb 2015 10:25:11 +0000 -Subject: [PATCH 20/37] Ensure target gcc headers can be included - -There are a few headers installed as part of the OpenEmbedded -gcc-runtime target (omp.h, ssp/*.h). Being installed from a recipe -built for the target architecture, these are within the target -sysroot and not cross/nativesdk; thus they weren't able to be -found by gcc with the existing search paths. Add support for -picking up these headers under the sysroot supplied on the gcc -command line in order to resolve this. - -Upstream-Status: Pending - -Signed-off-by: Paul Eggleton -Signed-off-by: Khem Raj ---- - gcc/Makefile.in | 2 ++ - gcc/cppdefault.c | 4 ++++ - gcc/defaults.h | 9 +++++++++ - gcc/gcc.c | 7 ------- - 4 files changed, 15 insertions(+), 7 deletions(-) - -diff --git a/gcc/Makefile.in b/gcc/Makefile.in -index 88b1aec732b..eb1dc304de2 100644 ---- a/gcc/Makefile.in -+++ b/gcc/Makefile.in -@@ -618,6 +618,7 @@ libexecdir = @libexecdir@ - - # Directory in which the compiler finds libraries etc. - libsubdir = $(libdir)/gcc/$(real_target_noncanonical)/$(version)$(accel_dir_suffix) -+libsubdir_target = gcc/$(target_noncanonical)/$(version) - # Directory in which the compiler finds executables - libexecsubdir = $(libexecdir)/gcc/$(real_target_noncanonical)/$(version)$(accel_dir_suffix) - # Directory in which all plugin resources are installed -@@ -2867,6 +2868,7 @@ CFLAGS-intl.o += -DLOCALEDIR=\"$(localedir)\" - - PREPROCESSOR_DEFINES = \ - -DGCC_INCLUDE_DIR=\"$(libsubdir)/include\" \ -+ -DGCC_INCLUDE_SUBDIR_TARGET=\"$(libsubdir_target)/include\" \ - -DFIXED_INCLUDE_DIR=\"$(libsubdir)/include-fixed\" \ - -DGPLUSPLUS_INCLUDE_DIR=\"$(gcc_gxx_include_dir)\" \ - -DGPLUSPLUS_INCLUDE_DIR_ADD_SYSROOT=$(gcc_gxx_include_dir_add_sysroot) \ -diff --git a/gcc/cppdefault.c b/gcc/cppdefault.c -index c4796385643..980e2bd47a7 100644 ---- a/gcc/cppdefault.c -+++ b/gcc/cppdefault.c -@@ -59,6 +59,10 @@ const struct default_include cpp_include_defaults[] - /* This is the dir for gcc's private headers. */ - { GCC_INCLUDE_DIR, "GCC", 0, 0, 0, 0 }, - #endif -+#ifdef GCC_INCLUDE_SUBDIR_TARGET -+ /* This is the dir for gcc's private headers under the specified sysroot. */ -+ { STANDARD_STARTFILE_PREFIX_2 GCC_INCLUDE_SUBDIR_TARGET, "GCC", 0, 0, 1, 0 }, -+#endif - #ifdef LOCAL_INCLUDE_DIR - /* /usr/local/include comes before the fixincluded header files. */ - { LOCAL_INCLUDE_DIR, 0, 0, 1, 1, 2 }, -diff --git a/gcc/defaults.h b/gcc/defaults.h -index b7534256119..41ca579b267 100644 ---- a/gcc/defaults.h -+++ b/gcc/defaults.h -@@ -1459,4 +1459,13 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see - #define DWARF_GNAT_ENCODINGS_DEFAULT DWARF_GNAT_ENCODINGS_GDB - #endif - -+/* Default prefixes to attach to command names. */ -+ -+#ifndef STANDARD_STARTFILE_PREFIX_1 -+#define STANDARD_STARTFILE_PREFIX_1 "/lib/" -+#endif -+#ifndef STANDARD_STARTFILE_PREFIX_2 -+#define STANDARD_STARTFILE_PREFIX_2 "/usr/lib/" -+#endif -+ - #endif /* ! GCC_DEFAULTS_H */ -diff --git a/gcc/gcc.c b/gcc/gcc.c -index cef26c454d7..14b1a6e8c44 100644 ---- a/gcc/gcc.c -+++ b/gcc/gcc.c -@@ -1470,13 +1470,6 @@ static const char *gcc_libexec_prefix; - - /* Default prefixes to attach to command names. */ - --#ifndef STANDARD_STARTFILE_PREFIX_1 --#define STANDARD_STARTFILE_PREFIX_1 "/lib/" --#endif --#ifndef STANDARD_STARTFILE_PREFIX_2 --#define STANDARD_STARTFILE_PREFIX_2 "/usr/lib/" --#endif -- - #ifdef CROSS_DIRECTORY_STRUCTURE /* Don't use these prefixes for a cross compiler. */ - #undef MD_EXEC_PREFIX - #undef MD_STARTFILE_PREFIX --- -2.20.1 - diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-9.1/0021-gcc-4.8-won-t-build-with-disable-dependency-tracking.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-9.1/0021-gcc-4.8-won-t-build-with-disable-dependency-tracking.patch deleted file mode 100644 index ef985727..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-9.1/0021-gcc-4.8-won-t-build-with-disable-dependency-tracking.patch +++ /dev/null @@ -1,54 +0,0 @@ -From 2a1895aca3d9020d0d5ac74975221727384ef8a6 Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Fri, 20 Feb 2015 11:17:19 +0000 -Subject: [PATCH 21/37] gcc 4.8+ won't build with --disable-dependency-tracking - -since the *.Ppo files don't get created unless --enable-dependency-tracking is true. - -This patch ensures we only use those compiler options when its enabled. - -Upstream-Status: Submitted - -(Problem was already reported upstream, attached this patch there -http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55930) - -RP -2012/09/22 - -Signed-off-by: Khem Raj ---- - libatomic/Makefile.am | 3 ++- - libatomic/Makefile.in | 3 ++- - 2 files changed, 4 insertions(+), 2 deletions(-) - -diff --git a/libatomic/Makefile.am b/libatomic/Makefile.am -index c1b7c73934a..ef43d62c07a 100644 ---- a/libatomic/Makefile.am -+++ b/libatomic/Makefile.am -@@ -101,7 +101,8 @@ PAT_S = $(word 3,$(PAT_SPLIT)) - IFUNC_DEF = -DIFUNC_ALT=$(PAT_S) - IFUNC_OPT = $(word $(PAT_S),$(IFUNC_OPTIONS)) - --M_DEPS = -MT $@ -MD -MP -MF $(DEPDIR)/$(@F).Ppo -+@AMDEP_TRUE@M_DEPS = -MT $@ -MD -MP -MF $(DEPDIR)/$(@F).Ppo -+@AMDEP_FALSE@M_DEPS = - M_SIZE = -DN=$(PAT_N) - M_IFUNC = $(if $(PAT_S),$(IFUNC_DEF) $(IFUNC_OPT)) - M_FILE = $(PAT_BASE)_n.c -diff --git a/libatomic/Makefile.in b/libatomic/Makefile.in -index 29324e3e0ac..d5cdb4259ef 100644 ---- a/libatomic/Makefile.in -+++ b/libatomic/Makefile.in -@@ -414,7 +414,8 @@ PAT_N = $(word 2,$(PAT_SPLIT)) - PAT_S = $(word 3,$(PAT_SPLIT)) - IFUNC_DEF = -DIFUNC_ALT=$(PAT_S) - IFUNC_OPT = $(word $(PAT_S),$(IFUNC_OPTIONS)) --M_DEPS = -MT $@ -MD -MP -MF $(DEPDIR)/$(@F).Ppo -+@AMDEP_TRUE@M_DEPS = -MT $@ -MD -MP -MF $(DEPDIR)/$(@F).Ppo -+@AMDEP_FALSE@M_DEPS = - M_SIZE = -DN=$(PAT_N) - M_IFUNC = $(if $(PAT_S),$(IFUNC_DEF) $(IFUNC_OPT)) - M_FILE = $(PAT_BASE)_n.c --- -2.20.1 - diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-9.1/0022-Don-t-search-host-directory-during-relink-if-inst_pr.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-9.1/0022-Don-t-search-host-directory-during-relink-if-inst_pr.patch deleted file mode 100644 index 8316c4d8..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-9.1/0022-Don-t-search-host-directory-during-relink-if-inst_pr.patch +++ /dev/null @@ -1,38 +0,0 @@ -From 4b9f8cfbfb48a1a9781b7c3a9b867732ef37b7c5 Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Tue, 3 Mar 2015 08:21:19 +0000 -Subject: [PATCH 22/37] Don't search host directory during "relink" if - $inst_prefix is provided - -http://lists.gnu.org/archive/html/libtool-patches/2011-01/msg00026.html - -Upstream-Status: Submitted - -Signed-off-by: Khem Raj ---- - ltmain.sh | 5 +++-- - 1 file changed, 3 insertions(+), 2 deletions(-) - -diff --git a/ltmain.sh b/ltmain.sh -index 0a93b4e5c3b..6de6ed2f9a0 100644 ---- a/ltmain.sh -+++ b/ltmain.sh -@@ -6004,12 +6004,13 @@ func_mode_link () - fi - else - # We cannot seem to hardcode it, guess we'll fake it. -+ # Default if $libdir is not relative to the prefix: - add_dir="-L$libdir" -- # Try looking first in the location we're being installed to. -+ - if test -n "$inst_prefix_dir"; then - case $libdir in - [\\/]*) -- add_dir="$add_dir -L$inst_prefix_dir$libdir" -+ add_dir="-L$inst_prefix_dir$libdir" - ;; - esac - fi --- -2.20.1 - diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-9.1/0023-Use-SYSTEMLIBS_DIR-replacement-instead-of-hardcoding.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-9.1/0023-Use-SYSTEMLIBS_DIR-replacement-instead-of-hardcoding.patch deleted file mode 100644 index fdea599a..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-9.1/0023-Use-SYSTEMLIBS_DIR-replacement-instead-of-hardcoding.patch +++ /dev/null @@ -1,29 +0,0 @@ -From 3a554b321250f6ddf1277e5559890ee977e78cb0 Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Tue, 28 Apr 2015 23:15:27 -0700 -Subject: [PATCH 23/37] Use SYSTEMLIBS_DIR replacement instead of hardcoding - base_libdir - -Upstream-Status: Pending - -Signed-off-by: Khem Raj ---- - gcc/config/aarch64/aarch64-linux.h | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/gcc/config/aarch64/aarch64-linux.h b/gcc/config/aarch64/aarch64-linux.h -index 9d0292d64f2..51661995fc7 100644 ---- a/gcc/config/aarch64/aarch64-linux.h -+++ b/gcc/config/aarch64/aarch64-linux.h -@@ -21,7 +21,7 @@ - #ifndef GCC_AARCH64_LINUX_H - #define GCC_AARCH64_LINUX_H - --#define GLIBC_DYNAMIC_LINKER "/lib/ld-linux-aarch64%{mbig-endian:_be}%{mabi=ilp32:_ilp32}.so.1" -+#define GLIBC_DYNAMIC_LINKER SYSTEMLIBS_DIR "ld-linux-aarch64%{mbig-endian:_be}%{mabi=ilp32:_ilp32}.so.1" - - #undef MUSL_DYNAMIC_LINKER - #define MUSL_DYNAMIC_LINKER "/lib/ld-musl-aarch64%{mbig-endian:_be}%{mabi=ilp32:_ilp32}.so.1" --- -2.20.1 - diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-9.1/0024-aarch64-Add-support-for-musl-ldso.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-9.1/0024-aarch64-Add-support-for-musl-ldso.patch deleted file mode 100644 index f53c9949..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-9.1/0024-aarch64-Add-support-for-musl-ldso.patch +++ /dev/null @@ -1,28 +0,0 @@ -From b7001034f35e7e5090fa95cb9a622469300cd45d Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Tue, 28 Apr 2015 23:18:39 -0700 -Subject: [PATCH 24/37] aarch64: Add support for musl ldso - -Upstream-Status: Pending - -Signed-off-by: Khem Raj ---- - gcc/config/aarch64/aarch64-linux.h | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/gcc/config/aarch64/aarch64-linux.h b/gcc/config/aarch64/aarch64-linux.h -index 51661995fc7..db687f753f6 100644 ---- a/gcc/config/aarch64/aarch64-linux.h -+++ b/gcc/config/aarch64/aarch64-linux.h -@@ -24,7 +24,7 @@ - #define GLIBC_DYNAMIC_LINKER SYSTEMLIBS_DIR "ld-linux-aarch64%{mbig-endian:_be}%{mabi=ilp32:_ilp32}.so.1" - - #undef MUSL_DYNAMIC_LINKER --#define MUSL_DYNAMIC_LINKER "/lib/ld-musl-aarch64%{mbig-endian:_be}%{mabi=ilp32:_ilp32}.so.1" -+#define MUSL_DYNAMIC_LINKER SYSTEMLIBS_DIR "ld-musl-aarch64%{mbig-endian:_be}%{mabi=ilp32:_ilp32}.so.1" - - #undef ASAN_CC1_SPEC - #define ASAN_CC1_SPEC "%{%:sanitize(address):-funwind-tables}" --- -2.20.1 - diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-9.1/0025-libcc1-fix-libcc1-s-install-path-and-rpath.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-9.1/0025-libcc1-fix-libcc1-s-install-path-and-rpath.patch deleted file mode 100644 index 7b80655b..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-9.1/0025-libcc1-fix-libcc1-s-install-path-and-rpath.patch +++ /dev/null @@ -1,54 +0,0 @@ -From 4d05ea7a12d1ba4515220c5c16f71ac650219db6 Mon Sep 17 00:00:00 2001 -From: Robert Yang -Date: Sun, 5 Jul 2015 20:25:18 -0700 -Subject: [PATCH 25/37] libcc1: fix libcc1's install path and rpath - -* Install libcc1.so and libcc1plugin.so into - $(libexecdir)/gcc/$(target_noncanonical)/$(gcc_version), as what we - had done to lto-plugin. -* Fix bad RPATH iussue: - gcc-5.2.0: package gcc-plugins contains bad RPATH /patht/to/tmp/sysroots/qemux86-64/usr/lib64/../lib64 in file - /path/to/gcc/5.2.0-r0/packages-split/gcc-plugins/usr/lib64/gcc/x86_64-poky-linux/5.2.0/plugin/libcc1plugin.so.0.0.0 - [rpaths] - -Upstream-Status: Inappropriate [OE configuration] - -Signed-off-by: Robert Yang ---- - libcc1/Makefile.am | 4 ++-- - libcc1/Makefile.in | 4 ++-- - 2 files changed, 4 insertions(+), 4 deletions(-) - -diff --git a/libcc1/Makefile.am b/libcc1/Makefile.am -index 72c6aead475..42a87740b31 100644 ---- a/libcc1/Makefile.am -+++ b/libcc1/Makefile.am -@@ -37,8 +37,8 @@ libiberty = $(if $(wildcard $(libiberty_noasan)),$(Wc)$(libiberty_noasan), \ - $(Wc)$(libiberty_normal))) - libiberty_dep = $(patsubst $(Wc)%,%,$(libiberty)) - --plugindir = $(libdir)/gcc/$(target_noncanonical)/$(gcc_version)/plugin --cc1libdir = $(libdir)/$(libsuffix) -+cc1libdir = $(libexecdir)/gcc/$(target_noncanonical)/$(gcc_version) -+plugindir = $(cc1libdir) - - if ENABLE_PLUGIN - plugin_LTLIBRARIES = libcc1plugin.la libcp1plugin.la -diff --git a/libcc1/Makefile.in b/libcc1/Makefile.in -index 7104b649026..2103c477468 100644 ---- a/libcc1/Makefile.in -+++ b/libcc1/Makefile.in -@@ -393,8 +393,8 @@ libiberty = $(if $(wildcard $(libiberty_noasan)),$(Wc)$(libiberty_noasan), \ - $(Wc)$(libiberty_normal))) - - libiberty_dep = $(patsubst $(Wc)%,%,$(libiberty)) --plugindir = $(libdir)/gcc/$(target_noncanonical)/$(gcc_version)/plugin --cc1libdir = $(libdir)/$(libsuffix) -+cc1libdir = $(libexecdir)/gcc/$(target_noncanonical)/$(gcc_version) -+plugindir = $(cc1libdir) - @ENABLE_PLUGIN_TRUE@plugin_LTLIBRARIES = libcc1plugin.la libcp1plugin.la - @ENABLE_PLUGIN_TRUE@cc1lib_LTLIBRARIES = libcc1.la - shared_source = callbacks.cc callbacks.hh connection.cc connection.hh \ --- -2.20.1 - diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-9.1/0026-handle-sysroot-support-for-nativesdk-gcc.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-9.1/0026-handle-sysroot-support-for-nativesdk-gcc.patch deleted file mode 100644 index 7062c031..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-9.1/0026-handle-sysroot-support-for-nativesdk-gcc.patch +++ /dev/null @@ -1,213 +0,0 @@ -From fe175ac845f1ac6965ede0240e9b763ae520614d Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Mon, 7 Dec 2015 23:39:54 +0000 -Subject: [PATCH 26/37] handle sysroot support for nativesdk-gcc - -Being able to build a nativesdk gcc is useful, particularly in cases -where the host compiler may be of an incompatible version (or a 32 -bit compiler is needed). - -Sadly, building nativesdk-gcc is not straight forward. We install -nativesdk-gcc into a relocatable location and this means that its -library locations can change. "Normal" sysroot support doesn't help -in this case since the values of paths like "libdir" change, not just -base root directory of the system. - -In order to handle this we do two things: - -a) Add %r into spec file markup which can be used for injected paths - such as SYSTEMLIBS_DIR (see gcc_multilib_setup()). -b) Add other paths which need relocation into a .gccrelocprefix section - which the relocation code will notice and adjust automatically. - -Upstream-Status: Inappropriate -RP 2015/7/28 - -Signed-off-by: Khem Raj ---- - gcc/cppdefault.c | 50 +++++++++++++++++++++++++++++++++++------------- - gcc/cppdefault.h | 3 ++- - gcc/gcc.c | 20 +++++++++++++------ - 3 files changed, 53 insertions(+), 20 deletions(-) - -diff --git a/gcc/cppdefault.c b/gcc/cppdefault.c -index 980e2bd47a7..39b6059efdc 100644 ---- a/gcc/cppdefault.c -+++ b/gcc/cppdefault.c -@@ -35,6 +35,30 @@ - # undef CROSS_INCLUDE_DIR - #endif - -+static char GPLUSPLUS_INCLUDE_DIRVAR[4096] __attribute__ ((section (".gccrelocprefix"))) = GPLUSPLUS_INCLUDE_DIR; -+static char GCC_INCLUDE_DIRVAR[4096] __attribute__ ((section (".gccrelocprefix"))) = GCC_INCLUDE_DIR; -+static char GPLUSPLUS_TOOL_INCLUDE_DIRVAR[4096] __attribute__ ((section (".gccrelocprefix"))) = GPLUSPLUS_TOOL_INCLUDE_DIR; -+static char GPLUSPLUS_BACKWARD_INCLUDE_DIRVAR[4096] __attribute__ ((section (".gccrelocprefix"))) = GPLUSPLUS_BACKWARD_INCLUDE_DIR; -+static char STANDARD_STARTFILE_PREFIX_2VAR[4096] __attribute__ ((section (".gccrelocprefix"))) = STANDARD_STARTFILE_PREFIX_2 GCC_INCLUDE_SUBDIR_TARGET; -+#ifdef LOCAL_INCLUDE_DIR -+static char LOCAL_INCLUDE_DIRVAR[4096] __attribute__ ((section (".gccrelocprefix"))) = LOCAL_INCLUDE_DIR; -+#endif -+#ifdef PREFIX_INCLUDE_DIR -+static char PREFIX_INCLUDE_DIRVAR[4096] __attribute__ ((section (".gccrelocprefix"))) = PREFIX_INCLUDE_DIR; -+#endif -+#ifdef FIXED_INCLUDE_DIR -+static char FIXED_INCLUDE_DIRVAR[4096] __attribute__ ((section (".gccrelocprefix"))) = FIXED_INCLUDE_DIR; -+#endif -+#ifdef CROSS_INCLUDE_DIR -+static char CROSS_INCLUDE_DIRVAR[4096] __attribute__ ((section (".gccrelocprefix"))) = CROSS_INCLUDE_DIR; -+#endif -+#ifdef TOOL_INCLUDE_DIR -+static char TOOL_INCLUDE_DIRVAR[4096] __attribute__ ((section (".gccrelocprefix"))) = TOOL_INCLUDE_DIR; -+#endif -+#ifdef NATIVE_SYSTEM_HEADER_DIR -+static char NATIVE_SYSTEM_HEADER_DIRVAR[4096] __attribute__ ((section (".gccrelocprefix"))) = NATIVE_SYSTEM_HEADER_DIR; -+#endif -+ - const struct default_include cpp_include_defaults[] - #ifdef INCLUDE_DEFAULTS - = INCLUDE_DEFAULTS; -@@ -42,38 +66,38 @@ const struct default_include cpp_include_defaults[] - = { - #ifdef GPLUSPLUS_INCLUDE_DIR - /* Pick up GNU C++ generic include files. */ -- { GPLUSPLUS_INCLUDE_DIR, "G++", 1, 1, -+ { GPLUSPLUS_INCLUDE_DIRVAR, "G++", 1, 1, - GPLUSPLUS_INCLUDE_DIR_ADD_SYSROOT, 0 }, - #endif - #ifdef GPLUSPLUS_TOOL_INCLUDE_DIR - /* Pick up GNU C++ target-dependent include files. */ -- { GPLUSPLUS_TOOL_INCLUDE_DIR, "G++", 1, 1, -+ { GPLUSPLUS_TOOL_INCLUDE_DIRVAR, "G++", 1, 1, - GPLUSPLUS_INCLUDE_DIR_ADD_SYSROOT, 1 }, - #endif - #ifdef GPLUSPLUS_BACKWARD_INCLUDE_DIR - /* Pick up GNU C++ backward and deprecated include files. */ -- { GPLUSPLUS_BACKWARD_INCLUDE_DIR, "G++", 1, 1, -+ { GPLUSPLUS_BACKWARD_INCLUDE_DIRVAR, "G++", 1, 1, - GPLUSPLUS_INCLUDE_DIR_ADD_SYSROOT, 0 }, - #endif - #ifdef GCC_INCLUDE_DIR - /* This is the dir for gcc's private headers. */ -- { GCC_INCLUDE_DIR, "GCC", 0, 0, 0, 0 }, -+ { GCC_INCLUDE_DIRVAR, "GCC", 0, 0, 0, 0 }, - #endif - #ifdef GCC_INCLUDE_SUBDIR_TARGET - /* This is the dir for gcc's private headers under the specified sysroot. */ -- { STANDARD_STARTFILE_PREFIX_2 GCC_INCLUDE_SUBDIR_TARGET, "GCC", 0, 0, 1, 0 }, -+ { STANDARD_STARTFILE_PREFIX_2VAR, "GCC", 0, 0, 1, 0 }, - #endif - #ifdef LOCAL_INCLUDE_DIR - /* /usr/local/include comes before the fixincluded header files. */ -- { LOCAL_INCLUDE_DIR, 0, 0, 1, 1, 2 }, -- { LOCAL_INCLUDE_DIR, 0, 0, 1, 1, 0 }, -+ { LOCAL_INCLUDE_DIRVAR, 0, 0, 1, 1, 2 }, -+ { LOCAL_INCLUDE_DIRVAR, 0, 0, 1, 1, 0 }, - #endif - #ifdef PREFIX_INCLUDE_DIR -- { PREFIX_INCLUDE_DIR, 0, 0, 1, 0, 0 }, -+ { PREFIX_INCLUDE_DIRVAR, 0, 0, 1, 0, 0 }, - #endif - #ifdef FIXED_INCLUDE_DIR - /* This is the dir for fixincludes. */ -- { FIXED_INCLUDE_DIR, "GCC", 0, 0, 0, -+ { FIXED_INCLUDE_DIRVAR, "GCC", 0, 0, 0, - /* A multilib suffix needs adding if different multilibs use - different headers. */ - #ifdef SYSROOT_HEADERS_SUFFIX_SPEC -@@ -85,16 +109,16 @@ const struct default_include cpp_include_defaults[] - #endif - #ifdef CROSS_INCLUDE_DIR - /* One place the target system's headers might be. */ -- { CROSS_INCLUDE_DIR, "GCC", 0, 0, 0, 0 }, -+ { CROSS_INCLUDE_DIRVAR, "GCC", 0, 0, 0, 0 }, - #endif - #ifdef TOOL_INCLUDE_DIR - /* Another place the target system's headers might be. */ -- { TOOL_INCLUDE_DIR, "BINUTILS", 0, 1, 0, 0 }, -+ { TOOL_INCLUDE_DIRVAR, "BINUTILS", 0, 1, 0, 0 }, - #endif - #ifdef NATIVE_SYSTEM_HEADER_DIR - /* /usr/include comes dead last. */ -- { NATIVE_SYSTEM_HEADER_DIR, NATIVE_SYSTEM_HEADER_COMPONENT, 0, 0, 1, 2 }, -- { NATIVE_SYSTEM_HEADER_DIR, NATIVE_SYSTEM_HEADER_COMPONENT, 0, 0, 1, 0 }, -+ { NATIVE_SYSTEM_HEADER_DIRVAR, NATIVE_SYSTEM_HEADER_COMPONENT, 0, 0, 1, 2 }, -+ { NATIVE_SYSTEM_HEADER_DIRVAR, NATIVE_SYSTEM_HEADER_COMPONENT, 0, 0, 1, 0 }, - #endif - { 0, 0, 0, 0, 0, 0 } - }; -diff --git a/gcc/cppdefault.h b/gcc/cppdefault.h -index e2d96f1e760..29fa5f815c8 100644 ---- a/gcc/cppdefault.h -+++ b/gcc/cppdefault.h -@@ -33,7 +33,8 @@ - - struct default_include - { -- const char *const fname; /* The name of the directory. */ -+ const char *fname; /* The name of the directory. */ -+ - const char *const component; /* The component containing the directory - (see update_path in prefix.c) */ - const char cplusplus; /* Only look here if we're compiling C++. */ -diff --git a/gcc/gcc.c b/gcc/gcc.c -index 14b1a6e8c44..857310092d9 100644 ---- a/gcc/gcc.c -+++ b/gcc/gcc.c -@@ -253,6 +253,8 @@ FILE *report_times_to_file = NULL; - #endif - static const char *target_system_root = DEFAULT_TARGET_SYSTEM_ROOT; - -+static char target_relocatable_prefix[4096] __attribute__ ((section (".gccrelocprefix"))) = SYSTEMLIBS_DIR; -+ - /* Nonzero means pass the updated target_system_root to the compiler. */ - - static int target_system_root_changed; -@@ -527,6 +529,7 @@ or with constant text in a single argument. - %G process LIBGCC_SPEC as a spec. - %R Output the concatenation of target_system_root and - target_sysroot_suffix. -+ %r Output the base path target_relocatable_prefix - %S process STARTFILE_SPEC as a spec. A capital S is actually used here. - %E process ENDFILE_SPEC as a spec. A capital E is actually used here. - %C process CPP_SPEC as a spec. -@@ -1493,10 +1496,10 @@ static const char *gcc_libexec_prefix; - gcc_exec_prefix is set because, in that case, we know where the - compiler has been installed, and use paths relative to that - location instead. */ --static const char *const standard_exec_prefix = STANDARD_EXEC_PREFIX; --static const char *const standard_libexec_prefix = STANDARD_LIBEXEC_PREFIX; --static const char *const standard_bindir_prefix = STANDARD_BINDIR_PREFIX; --static const char *const standard_startfile_prefix = STANDARD_STARTFILE_PREFIX; -+static char standard_exec_prefix[4096] __attribute__ ((section (".gccrelocprefix"))) = STANDARD_EXEC_PREFIX; -+static char standard_libexec_prefix[4096] __attribute__ ((section (".gccrelocprefix"))) = STANDARD_LIBEXEC_PREFIX; -+static char standard_bindir_prefix[4096] __attribute__ ((section (".gccrelocprefix"))) = STANDARD_BINDIR_PREFIX; -+static char *const standard_startfile_prefix = STANDARD_STARTFILE_PREFIX; - - /* For native compilers, these are well-known paths containing - components that may be provided by the system. For cross -@@ -1504,9 +1507,9 @@ static const char *const standard_startfile_prefix = STANDARD_STARTFILE_PREFIX; - static const char *md_exec_prefix = MD_EXEC_PREFIX; - static const char *md_startfile_prefix = MD_STARTFILE_PREFIX; - static const char *md_startfile_prefix_1 = MD_STARTFILE_PREFIX_1; --static const char *const standard_startfile_prefix_1 -+static char standard_startfile_prefix_1[4096] __attribute__ ((section (".gccrelocprefix"))) - = STANDARD_STARTFILE_PREFIX_1; --static const char *const standard_startfile_prefix_2 -+static char standard_startfile_prefix_2[4096] __attribute__ ((section (".gccrelocprefix"))) - = STANDARD_STARTFILE_PREFIX_2; - - /* A relative path to be used in finding the location of tools -@@ -5915,6 +5918,11 @@ do_spec_1 (const char *spec, int inswitch, const char *soft_matched_part) - } - break; - -+ case 'r': -+ obstack_grow (&obstack, target_relocatable_prefix, -+ strlen (target_relocatable_prefix)); -+ break; -+ - case 'S': - value = do_spec_1 (startfile_spec, 0, NULL); - if (value != 0) --- -2.20.1 - diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-9.1/0027-Search-target-sysroot-gcc-version-specific-dirs-with.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-9.1/0027-Search-target-sysroot-gcc-version-specific-dirs-with.patch deleted file mode 100644 index e3ec943b..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-9.1/0027-Search-target-sysroot-gcc-version-specific-dirs-with.patch +++ /dev/null @@ -1,102 +0,0 @@ -From bf07530706382c90fb89f7d8a727eb9aeb29a56a Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Mon, 7 Dec 2015 23:41:45 +0000 -Subject: [PATCH 27/37] Search target sysroot gcc version specific dirs with - multilib. - -We install the gcc libraries (such as crtbegin.p) into -//5.2.0/ -which is a default search path for GCC (aka multi_suffix in the -code below). is 'machine' in gcc's terminology. We use -these directories so that multiple gcc versions could in theory -co-exist on target. - -We only want to build one gcc-cross-canadian per arch and have this work -for all multilibs. can be handled by mapping the multilib - to the one used by gcc-cross-canadian, e.g. -mips64-polkmllib32-linux -is symlinked to by mips64-poky-linux. - -The default gcc search path in the target sysroot for a "lib64" mutlilib -is: - -/lib32/mips64-poky-linux/5.2.0/ -/lib32/../lib64/ -/usr/lib32/mips64-poky-linux/5.2.0/ -/usr/lib32/../lib64/ -/lib32/ -/usr/lib32/ - -which means that the lib32 crtbegin.o will be found and the lib64 ones -will not which leads to compiler failures. - -This patch injects a multilib version of that path first so the lib64 -binaries can be found first. With this change the search path becomes: - -/lib32/../lib64/mips64-poky-linux/5.2.0/ -/lib32/mips64-poky-linux/5.2.0/ -/lib32/../lib64/ -/usr/lib32/../lib64/mips64-poky-linux/5.2.0/ -/usr/lib32/mips64-poky-linux/5.2.0/ -/usr/lib32/../lib64/ -/lib32/ -/usr/lib32/ - -Upstream-Status: Pending -RP 2015/7/31 - -Signed-off-by: Khem Raj ---- - gcc/gcc.c | 29 ++++++++++++++++++++++++++++- - 1 file changed, 28 insertions(+), 1 deletion(-) - -diff --git a/gcc/gcc.c b/gcc/gcc.c -index 857310092d9..6363e63b8ff 100644 ---- a/gcc/gcc.c -+++ b/gcc/gcc.c -@@ -2610,7 +2610,7 @@ for_each_path (const struct path_prefix *paths, - if (path == NULL) - { - len = paths->max_len + extra_space + 1; -- len += MAX (MAX (suffix_len, multi_os_dir_len), multiarch_len); -+ len += MAX ((suffix_len + multi_os_dir_len), multiarch_len); - path = XNEWVEC (char, len); - } - -@@ -2622,6 +2622,33 @@ for_each_path (const struct path_prefix *paths, - /* Look first in MACHINE/VERSION subdirectory. */ - if (!skip_multi_dir) - { -+ if (!(pl->os_multilib ? skip_multi_os_dir : skip_multi_dir)) -+ { -+ const char *this_multi; -+ size_t this_multi_len; -+ -+ if (pl->os_multilib) -+ { -+ this_multi = multi_os_dir; -+ this_multi_len = multi_os_dir_len; -+ } -+ else -+ { -+ this_multi = multi_dir; -+ this_multi_len = multi_dir_len; -+ } -+ -+ /* Look in multilib MACHINE/VERSION subdirectory first */ -+ if (this_multi_len) -+ { -+ memcpy (path + len, this_multi, this_multi_len + 1); -+ memcpy (path + len + this_multi_len, multi_suffix, suffix_len + 1); -+ ret = callback (path, callback_info); -+ if (ret) -+ break; -+ } -+ } -+ - memcpy (path + len, multi_suffix, suffix_len + 1); - ret = callback (path, callback_info); - if (ret) --- -2.20.1 - diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-9.1/0028-Fix-various-_FOR_BUILD-and-related-variables.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-9.1/0028-Fix-various-_FOR_BUILD-and-related-variables.patch deleted file mode 100644 index bdcbd323..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-9.1/0028-Fix-various-_FOR_BUILD-and-related-variables.patch +++ /dev/null @@ -1,137 +0,0 @@ -From 16ab14b7221b3491cd43ab745f57b60ca83089df Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Mon, 7 Dec 2015 23:42:45 +0000 -Subject: [PATCH 28/37] Fix various _FOR_BUILD and related variables - -When doing a FOR_BUILD thing, you have to override CFLAGS with -CFLAGS_FOR_BUILD. And if you use C++, you also have to override -CXXFLAGS with CXXFLAGS_FOR_BUILD. -Without this, when building for mingw, you end up trying to use -the mingw headers for a host build. - -The same goes for other variables as well, such as CPPFLAGS, -CPP, and GMPINC. - -Upstream-Status: Pending - -Signed-off-by: Peter Seebach -Signed-off-by: Mark Hatle -Signed-off-by: Khem Raj ---- - Makefile.in | 6 ++++++ - Makefile.tpl | 5 +++++ - gcc/Makefile.in | 2 +- - gcc/configure | 2 +- - gcc/configure.ac | 2 +- - 5 files changed, 14 insertions(+), 3 deletions(-) - -diff --git a/Makefile.in b/Makefile.in -index b21e0791f55..0e573791202 100644 ---- a/Makefile.in -+++ b/Makefile.in -@@ -152,6 +152,7 @@ BUILD_EXPORTS = \ - CPP="$(CC_FOR_BUILD) -E"; export CPP; \ - CFLAGS="$(CFLAGS_FOR_BUILD)"; export CFLAGS; \ - CONFIG_SHELL="$(SHELL)"; export CONFIG_SHELL; \ -+ CPPFLAGS="$(CPPFLAGS_FOR_BUILD)"; export CPPFLAGS; \ - CXX="$(CXX_FOR_BUILD)"; export CXX; \ - CXXFLAGS="$(CXXFLAGS_FOR_BUILD)"; export CXXFLAGS; \ - GFORTRAN="$(GFORTRAN_FOR_BUILD)"; export GFORTRAN; \ -@@ -171,6 +172,9 @@ BUILD_EXPORTS = \ - # built for the build system to override those in BASE_FLAGS_TO_PASS. - EXTRA_BUILD_FLAGS = \ - CFLAGS="$(CFLAGS_FOR_BUILD)" \ -+ CXXFLAGS="$(CXXFLAGS_FOR_BUILD)" \ -+ CPP="$(CC_FOR_BUILD) -E" \ -+ CPPFLAGS="$(CPPFLAGS_FOR_BUILD)" \ - LDFLAGS="$(LDFLAGS_FOR_BUILD)" - - # This is the list of directories to built for the host system. -@@ -188,6 +192,7 @@ HOST_SUBDIR = @host_subdir@ - HOST_EXPORTS = \ - $(BASE_EXPORTS) \ - CC="$(CC)"; export CC; \ -+ CPP="$(CC) -E"; export CPP; \ - ADA_CFLAGS="$(ADA_CFLAGS)"; export ADA_CFLAGS; \ - CFLAGS="$(CFLAGS)"; export CFLAGS; \ - CONFIG_SHELL="$(SHELL)"; export CONFIG_SHELL; \ -@@ -775,6 +780,7 @@ BASE_FLAGS_TO_PASS = \ - "CC_FOR_BUILD=$(CC_FOR_BUILD)" \ - "CFLAGS_FOR_BUILD=$(CFLAGS_FOR_BUILD)" \ - "CXX_FOR_BUILD=$(CXX_FOR_BUILD)" \ -+ "CXXFLAGS_FOR_BUILD=$(CXXFLAGS_FOR_BUILD)" \ - "EXPECT=$(EXPECT)" \ - "FLEX=$(FLEX)" \ - "INSTALL=$(INSTALL)" \ -diff --git a/Makefile.tpl b/Makefile.tpl -index 126296fb49a..15fb236bcc0 100644 ---- a/Makefile.tpl -+++ b/Makefile.tpl -@@ -154,6 +154,7 @@ BUILD_EXPORTS = \ - CC="$(CC_FOR_BUILD)"; export CC; \ - CFLAGS="$(CFLAGS_FOR_BUILD)"; export CFLAGS; \ - CONFIG_SHELL="$(SHELL)"; export CONFIG_SHELL; \ -+ CPPFLAGS="$(CPPFLAGS_FOR_BUILD)"; export CPPFLAGS; \ - CXX="$(CXX_FOR_BUILD)"; export CXX; \ - CXXFLAGS="$(CXXFLAGS_FOR_BUILD)"; export CXXFLAGS; \ - GFORTRAN="$(GFORTRAN_FOR_BUILD)"; export GFORTRAN; \ -@@ -173,6 +174,9 @@ BUILD_EXPORTS = \ - # built for the build system to override those in BASE_FLAGS_TO_PASS. - EXTRA_BUILD_FLAGS = \ - CFLAGS="$(CFLAGS_FOR_BUILD)" \ -+ CXXFLAGS="$(CXXFLAGS_FOR_BUILD)" \ -+ CPP="$(CC_FOR_BUILD) -E" \ -+ CPPFLAGS="$(CPPFLAGS_FOR_BUILD)" \ - LDFLAGS="$(LDFLAGS_FOR_BUILD)" - - # This is the list of directories to built for the host system. -@@ -190,6 +194,7 @@ HOST_SUBDIR = @host_subdir@ - HOST_EXPORTS = \ - $(BASE_EXPORTS) \ - CC="$(CC)"; export CC; \ -+ CPP="$(CC) -E"; export CPP; \ - ADA_CFLAGS="$(ADA_CFLAGS)"; export ADA_CFLAGS; \ - CFLAGS="$(CFLAGS)"; export CFLAGS; \ - CONFIG_SHELL="$(SHELL)"; export CONFIG_SHELL; \ -diff --git a/gcc/Makefile.in b/gcc/Makefile.in -index eb1dc304de2..93a43146846 100644 ---- a/gcc/Makefile.in -+++ b/gcc/Makefile.in -@@ -805,7 +805,7 @@ BUILD_LDFLAGS=@BUILD_LDFLAGS@ - BUILD_NO_PIE_FLAG = @BUILD_NO_PIE_FLAG@ - BUILD_LDFLAGS += $(BUILD_NO_PIE_FLAG) - BUILD_CPPFLAGS= -I. -I$(@D) -I$(srcdir) -I$(srcdir)/$(@D) \ -- -I$(srcdir)/../include @INCINTL@ $(CPPINC) $(CPPFLAGS) -+ -I$(srcdir)/../include @INCINTL@ $(CPPINC) $(CPPFLAGS_FOR_BUILD) - - # Actual name to use when installing a native compiler. - GCC_INSTALL_NAME := $(shell echo gcc|sed '$(program_transform_name)') -diff --git a/gcc/configure b/gcc/configure -index 2e822caf66d..2c50676a2bf 100755 ---- a/gcc/configure -+++ b/gcc/configure -@@ -11965,7 +11965,7 @@ else - CC="${CC_FOR_BUILD}" CFLAGS="${CFLAGS_FOR_BUILD}" \ - CXX="${CXX_FOR_BUILD}" CXXFLAGS="${CXXFLAGS_FOR_BUILD}" \ - LD="${LD_FOR_BUILD}" LDFLAGS="${LDFLAGS_FOR_BUILD}" \ -- GMPINC="" CPPFLAGS="${CPPFLAGS} -DGENERATOR_FILE" \ -+ GMPINC="" CPPFLAGS="${CPPFLAGS_FOR_BUILD} -DGENERATOR_FILE" \ - ${realsrcdir}/configure \ - --enable-languages=${enable_languages-all} \ - --target=$target_alias --host=$build_alias --build=$build_alias -diff --git a/gcc/configure.ac b/gcc/configure.ac -index 70e7bac78c4..d29eb580429 100644 ---- a/gcc/configure.ac -+++ b/gcc/configure.ac -@@ -1743,7 +1743,7 @@ else - CC="${CC_FOR_BUILD}" CFLAGS="${CFLAGS_FOR_BUILD}" \ - CXX="${CXX_FOR_BUILD}" CXXFLAGS="${CXXFLAGS_FOR_BUILD}" \ - LD="${LD_FOR_BUILD}" LDFLAGS="${LDFLAGS_FOR_BUILD}" \ -- GMPINC="" CPPFLAGS="${CPPFLAGS} -DGENERATOR_FILE" \ -+ GMPINC="" CPPFLAGS="${CPPFLAGS_FOR_BUILD} -DGENERATOR_FILE" \ - ${realsrcdir}/configure \ - --enable-languages=${enable_languages-all} \ - --target=$target_alias --host=$build_alias --build=$build_alias --- -2.20.1 - diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-9.1/0029-nios2-Define-MUSL_DYNAMIC_LINKER.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-9.1/0029-nios2-Define-MUSL_DYNAMIC_LINKER.patch deleted file mode 100644 index 08da1ab9..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-9.1/0029-nios2-Define-MUSL_DYNAMIC_LINKER.patch +++ /dev/null @@ -1,28 +0,0 @@ -From e293df9a5734b43cb60cc47a3f5ff9af50fee3aa Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Tue, 2 Feb 2016 10:26:10 -0800 -Subject: [PATCH 29/37] nios2: Define MUSL_DYNAMIC_LINKER - -Upstream-Status: Pending - -Signed-off-by: Marek Vasut -Signed-off-by: Khem Raj ---- - gcc/config/nios2/linux.h | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/gcc/config/nios2/linux.h b/gcc/config/nios2/linux.h -index 698734add35..eeee60ecfea 100644 ---- a/gcc/config/nios2/linux.h -+++ b/gcc/config/nios2/linux.h -@@ -30,6 +30,7 @@ - #define CPP_SPEC "%{posix:-D_POSIX_SOURCE} %{pthread:-D_REENTRANT}" - - #define GLIBC_DYNAMIC_LINKER "/lib/ld-linux-nios2.so.1" -+#define MUSL_DYNAMIC_LINKER "/lib/ld-musl-nios2.so.1" - - #undef LINK_SPEC - #define LINK_SPEC LINK_SPEC_ENDIAN \ --- -2.20.1 - diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-9.1/0030-Add-ssp_nonshared-to-link-commandline-for-musl-targe.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-9.1/0030-Add-ssp_nonshared-to-link-commandline-for-musl-targe.patch deleted file mode 100644 index 792e8526..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-9.1/0030-Add-ssp_nonshared-to-link-commandline-for-musl-targe.patch +++ /dev/null @@ -1,87 +0,0 @@ -From 6232013df7fd65c994869789fa4b93c8d2303d1c Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Tue, 27 Jun 2017 18:10:54 -0700 -Subject: [PATCH 30/37] Add ssp_nonshared to link commandline for musl targets - -when -fstack-protector options are enabled we need to -link with ssp_shared on musl since it does not provide -the __stack_chk_fail_local() so essentially it provides -libssp but not libssp_nonshared something like -TARGET_LIBC_PROVIDES_SSP_BUT_NOT_SSP_NONSHARED - where-as for glibc the needed symbols -are already present in libc_nonshared library therefore -we do not need any library helper on glibc based systems -but musl needs the libssp_noshared from gcc - -Upstream-Status: Pending - -Signed-off-by: Khem Raj ---- - gcc/config/linux.h | 7 +++++++ - gcc/config/rs6000/linux.h | 10 ++++++++++ - gcc/config/rs6000/linux64.h | 10 ++++++++++ - 3 files changed, 27 insertions(+) - -diff --git a/gcc/config/linux.h b/gcc/config/linux.h -index 4b05d8e93d1..0ca117e2ed4 100644 ---- a/gcc/config/linux.h -+++ b/gcc/config/linux.h -@@ -195,6 +195,13 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see - { GCC_INCLUDE_DIR, "GCC", 0, 1, 0, 0 }, \ - { 0, 0, 0, 0, 0, 0 } \ - } -+#ifdef TARGET_LIBC_PROVIDES_SSP -+#undef LINK_SSP_SPEC -+#define LINK_SSP_SPEC "%{fstack-protector|fstack-protector-all" \ -+ "|fstack-protector-strong|fstack-protector-explicit" \ -+ ":-lssp_nonshared}" -+#endif -+ - #endif - - #if (DEFAULT_LIBC == LIBC_UCLIBC) && defined (SINGLE_LIBC) /* uClinux */ -diff --git a/gcc/config/rs6000/linux.h b/gcc/config/rs6000/linux.h -index 96b97877989..0bbde54c844 100644 ---- a/gcc/config/rs6000/linux.h -+++ b/gcc/config/rs6000/linux.h -@@ -107,6 +107,16 @@ - " -m elf32ppclinux") - #endif - -+/* link libssp_nonshared.a with musl */ -+#if DEFAULT_LIBC == LIBC_MUSL -+#ifdef TARGET_LIBC_PROVIDES_SSP -+#undef LINK_SSP_SPEC -+#define LINK_SSP_SPEC "%{fstack-protector|fstack-protector-all" \ -+ "|fstack-protector-strong|fstack-protector-explicit" \ -+ ":-lssp_nonshared}" -+#endif -+#endif -+ - #undef LINK_OS_LINUX_SPEC - #define LINK_OS_LINUX_SPEC LINK_OS_LINUX_EMUL " %{!shared: %{!static: \ - %{!static-pie: \ -diff --git a/gcc/config/rs6000/linux64.h b/gcc/config/rs6000/linux64.h -index 982ca274621..83c07b275da 100644 ---- a/gcc/config/rs6000/linux64.h -+++ b/gcc/config/rs6000/linux64.h -@@ -461,6 +461,16 @@ extern int dot_symbols; - " -m elf64ppc") - #endif - -+/* link libssp_nonshared.a with musl */ -+#if DEFAULT_LIBC == LIBC_MUSL -+#ifdef TARGET_LIBC_PROVIDES_SSP -+#undef LINK_SSP_SPEC -+#define LINK_SSP_SPEC "%{fstack-protector|fstack-protector-all" \ -+ "|fstack-protector-strong|fstack-protector-explicit" \ -+ ":-lssp_nonshared}" -+#endif -+#endif -+ - #define LINK_OS_LINUX_SPEC32 LINK_OS_LINUX_EMUL32 " %{!shared: %{!static: \ - %{!static-pie: \ - %{rdynamic:-export-dynamic} \ --- -2.20.1 - diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-9.1/0031-libgcc-Add-knob-to-use-ldbl-128-on-ppc.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-9.1/0031-libgcc-Add-knob-to-use-ldbl-128-on-ppc.patch deleted file mode 100644 index efa40bec..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-9.1/0031-libgcc-Add-knob-to-use-ldbl-128-on-ppc.patch +++ /dev/null @@ -1,125 +0,0 @@ -From 1877b2ee5835a3716e6544706fbccd8c656e0a32 Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Fri, 29 Apr 2016 20:03:28 +0000 -Subject: [PATCH 31/37] libgcc: Add knob to use ldbl-128 on ppc - -musl does not support ldbl 128 so we can not assume -that linux as a whole supports ldbl-128 bits, instead -act upon configure option passed to gcc and assume no -on musl and yes otherwise if no option is passed since -default behaviour is to assume ldbl128 it does not -change the defaults - -Upstream-Status: Pending - -Signed-off-by: Khem Raj ---- - libgcc/Makefile.in | 1 + - libgcc/config/rs6000/t-linux | 5 ++++- - libgcc/configure | 18 ++++++++++++++++++ - libgcc/configure.ac | 12 ++++++++++++ - 4 files changed, 35 insertions(+), 1 deletion(-) - mode change 100644 => 100755 libgcc/configure - -diff --git a/libgcc/Makefile.in b/libgcc/Makefile.in -index ea390a5bbea..114c7876304 100644 ---- a/libgcc/Makefile.in -+++ b/libgcc/Makefile.in -@@ -50,6 +50,7 @@ unwind_header = @unwind_header@ - md_unwind_header = @md_unwind_header@ - sfp_machine_header = @sfp_machine_header@ - thread_header = @thread_header@ -+with_ldbl128 = @with_ldbl128@ - - host_noncanonical = @host_noncanonical@ - real_host_noncanonical = @real_host_noncanonical@ -diff --git a/libgcc/config/rs6000/t-linux b/libgcc/config/rs6000/t-linux -index 4f6d4c4a4d2..c50dd94a2da 100644 ---- a/libgcc/config/rs6000/t-linux -+++ b/libgcc/config/rs6000/t-linux -@@ -1,3 +1,6 @@ - SHLIB_MAPFILES += $(srcdir)/config/rs6000/libgcc-glibc.ver - --HOST_LIBGCC2_CFLAGS += -mlong-double-128 -mno-minimal-toc -+ifeq ($(with_ldbl128),yes) -+HOST_LIBGCC2_CFLAGS += -mlong-double-128 -+endif -+HOST_LIBGCC2_CFLAGS += -mno-minimal-toc -diff --git a/libgcc/configure b/libgcc/configure -old mode 100644 -new mode 100755 -index 36dbbc1f699..b5dd5c34e2a ---- a/libgcc/configure -+++ b/libgcc/configure -@@ -651,6 +651,7 @@ build_vendor - build_cpu - build - with_aix_soname -+with_ldbl128 - enable_vtable_verify - enable_gcov - enable_shared -@@ -702,6 +703,7 @@ with_ld - enable_shared - enable_gcov - enable_vtable_verify -+with_long_double_128 - with_aix_soname - enable_version_specific_runtime_libs - with_slibdir -@@ -1363,6 +1365,7 @@ Optional Packages: - --with-target-subdir=SUBDIR Configuring in a subdirectory for target - --with-cross-host=HOST Configuring with a cross compiler - --with-ld arrange to use the specified ld (full pathname) -+ --with-long-double-128 use 128-bit long double by default - --with-aix-soname=aix|svr4|both - shared library versioning (aka "SONAME") variant to - provide on AIX -@@ -2268,6 +2271,21 @@ fi - - - -+# Check whether --with-long-double-128 was given. -+if test "${with_long_double_128+set}" = set; then : -+ withval=$with_long_double_128; with_ldbl128="$with_long_double_128" -+else -+ case "${host}" in -+ power*-*-musl*) -+ with_ldbl128="no";; -+ *) with_ldbl128="yes";; -+ esac -+ -+fi -+ -+ -+ -+ - # Check whether --with-aix-soname was given. - if test "${with_aix_soname+set}" = set; then : - withval=$with_aix_soname; case "${host}:${enable_shared}" in -diff --git a/libgcc/configure.ac b/libgcc/configure.ac -index 8e96cafdf8b..9247856bf24 100644 ---- a/libgcc/configure.ac -+++ b/libgcc/configure.ac -@@ -82,6 +82,18 @@ AC_ARG_ENABLE(vtable-verify, - [enable_vtable_verify=no]) - AC_SUBST(enable_vtable_verify) - -+AC_ARG_WITH(long-double-128, -+[AS_HELP_STRING([--with-long-double-128], -+ [use 128-bit long double by default])], -+ with_ldbl128="$with_long_double_128", -+[case "${host}" in -+ power*-*-musl*) -+ with_ldbl128="no";; -+ *) with_ldbl128="yes";; -+ esac -+]) -+AC_SUBST(with_ldbl128) -+ - AC_ARG_WITH(aix-soname, - [AS_HELP_STRING([--with-aix-soname=aix|svr4|both], - [shared library versioning (aka "SONAME") variant to provide on AIX])], --- -2.20.1 - diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-9.1/0032-Link-libgcc-using-LDFLAGS-not-just-SHLIB_LDFLAGS.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-9.1/0032-Link-libgcc-using-LDFLAGS-not-just-SHLIB_LDFLAGS.patch deleted file mode 100644 index 3de8345f..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-9.1/0032-Link-libgcc-using-LDFLAGS-not-just-SHLIB_LDFLAGS.patch +++ /dev/null @@ -1,29 +0,0 @@ -From 9d76a765a12677597134953352b25dc16dea721e Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Wed, 4 May 2016 21:11:34 -0700 -Subject: [PATCH 32/37] Link libgcc using LDFLAGS, not just SHLIB_LDFLAGS - -Upstream-Status: Pending - -Signed-off-by: Christopher Larson -Signed-off-by: Khem Raj ---- - libgcc/config/t-slibgcc | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/libgcc/config/t-slibgcc b/libgcc/config/t-slibgcc -index 099bf23e62f..436b277a79f 100644 ---- a/libgcc/config/t-slibgcc -+++ b/libgcc/config/t-slibgcc -@@ -32,7 +32,7 @@ SHLIB_INSTALL_SOLINK = $(LN_S) $(SHLIB_SONAME) \ - $(DESTDIR)$(slibdir)$(SHLIB_SLIBDIR_QUAL)/$(SHLIB_SOLINK) - - SHLIB_LINK = $(CC) $(LIBGCC2_CFLAGS) -shared -nodefaultlibs \ -- $(SHLIB_LDFLAGS) \ -+ $(LDFLAGS) $(SHLIB_LDFLAGS) \ - -o $(SHLIB_DIR)/$(SHLIB_SONAME).tmp @multilib_flags@ \ - $(SHLIB_OBJS) $(SHLIB_LC) && \ - rm -f $(SHLIB_DIR)/$(SHLIB_SOLINK) && \ --- -2.20.1 - diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-9.1/0033-libgcc_s-Use-alias-for-__cpu_indicator_init-instead-.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-9.1/0033-libgcc_s-Use-alias-for-__cpu_indicator_init-instead-.patch deleted file mode 100644 index d8cc6432..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-9.1/0033-libgcc_s-Use-alias-for-__cpu_indicator_init-instead-.patch +++ /dev/null @@ -1,86 +0,0 @@ -From 6c001e08bcd0568367a4aa2f991ab7d85b43a43d Mon Sep 17 00:00:00 2001 -From: Szabolcs Nagy -Date: Sat, 24 Oct 2015 20:09:53 +0000 -Subject: [PATCH 33/37] libgcc_s: Use alias for __cpu_indicator_init instead of - symver - -Adapter from - -https://gcc.gnu.org/ml/gcc-patches/2015-05/msg00899.html - -This fix was debated but hasnt been applied gcc upstream since -they expect musl to support '@' in symbol versioning which is -a sun/gnu versioning extention. This patch however avoids the -need for the '@' symbols at all - -libgcc/Changelog: - -2015-05-11 Szabolcs Nagy - - * config/i386/cpuinfo.c (__cpu_indicator_init_local): Add. - (__cpu_indicator_init@GCC_4.8.0, __cpu_model@GCC_4.8.0): Remove. - - * config/i386/t-linux (HOST_LIBGCC2_CFLAGS): Remove -DUSE_ELF_SYMVER. - -gcc/Changelog: - -2015-05-11 Szabolcs Nagy - - * config/i386/i386.c (ix86_expand_builtin): Make __builtin_cpu_init - call __cpu_indicator_init_local instead of __cpu_indicator_init. - -Upstream-Status: Pending - -Signed-off-by: Khem Raj ---- - gcc/config/i386/i386.c | 4 ++-- - libgcc/config/i386/cpuinfo.c | 6 +++--- - libgcc/config/i386/t-linux | 2 +- - 3 files changed, 6 insertions(+), 6 deletions(-) - -diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c -index 88557f26c44..839308e2799 100644 ---- a/gcc/config/i386/i386.c -+++ b/gcc/config/i386/i386.c -@@ -36577,10 +36577,10 @@ ix86_expand_builtin (tree exp, rtx target, rtx subtarget, - { - case IX86_BUILTIN_CPU_INIT: - { -- /* Make it call __cpu_indicator_init in libgcc. */ -+ /* Make it call __cpu_indicator_init_local in libgcc.a. */ - tree call_expr, fndecl, type; - type = build_function_type_list (integer_type_node, NULL_TREE); -- fndecl = build_fn_decl ("__cpu_indicator_init", type); -+ fndecl = build_fn_decl ("__cpu_indicator_init_local", type); - call_expr = build_call_expr (fndecl, 0); - return expand_expr (call_expr, target, mode, EXPAND_NORMAL); - } -diff --git a/libgcc/config/i386/cpuinfo.c b/libgcc/config/i386/cpuinfo.c -index d6cb2de6265..ce04ef78205 100644 ---- a/libgcc/config/i386/cpuinfo.c -+++ b/libgcc/config/i386/cpuinfo.c -@@ -504,7 +504,7 @@ __cpu_indicator_init (void) - return 0; - } - --#if defined SHARED && defined USE_ELF_SYMVER --__asm__ (".symver __cpu_indicator_init, __cpu_indicator_init@GCC_4.8.0"); --__asm__ (".symver __cpu_model, __cpu_model@GCC_4.8.0"); -+#ifndef SHARED -+int __cpu_indicator_init_local (void) -+ __attribute__ ((weak, alias ("__cpu_indicator_init"))); - #endif -diff --git a/libgcc/config/i386/t-linux b/libgcc/config/i386/t-linux -index 8506a635790..564296f788e 100644 ---- a/libgcc/config/i386/t-linux -+++ b/libgcc/config/i386/t-linux -@@ -3,5 +3,5 @@ - # t-slibgcc-elf-ver and t-linux - SHLIB_MAPFILES = libgcc-std.ver $(srcdir)/config/i386/libgcc-glibc.ver - --HOST_LIBGCC2_CFLAGS += -mlong-double-80 -DUSE_ELF_SYMVER $(CET_FLAGS) -+HOST_LIBGCC2_CFLAGS += -mlong-double-80 $(CET_FLAGS) - CRTSTUFF_T_CFLAGS += $(CET_FLAGS) --- -2.20.1 - diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-9.1/0034-sync-gcc-stddef.h-with-musl.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-9.1/0034-sync-gcc-stddef.h-with-musl.patch deleted file mode 100644 index a2c35ab5..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-9.1/0034-sync-gcc-stddef.h-with-musl.patch +++ /dev/null @@ -1,91 +0,0 @@ -From 83ba95929c5908ae0f51ce148a30f85b085a178a Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Fri, 3 Feb 2017 12:56:00 -0800 -Subject: [PATCH 34/37] sync gcc stddef.h with musl - -musl defines ptrdiff_t size_t and wchar_t -so dont define them here if musl is definining them - -Upstream-Status: Pending - -Signed-off-by: Khem Raj ---- - gcc/ginclude/stddef.h | 9 +++++++++ - 1 file changed, 9 insertions(+) - -diff --git a/gcc/ginclude/stddef.h b/gcc/ginclude/stddef.h -index da692e1c01a..9a00c261adb 100644 ---- a/gcc/ginclude/stddef.h -+++ b/gcc/ginclude/stddef.h -@@ -128,6 +128,7 @@ _TYPE_wchar_t; - #ifndef ___int_ptrdiff_t_h - #ifndef _GCC_PTRDIFF_T - #ifndef _PTRDIFF_T_DECLARED /* DragonFly */ -+#ifndef __DEFINED_ptrdiff_t /* musl */ - #define _PTRDIFF_T - #define _T_PTRDIFF_ - #define _T_PTRDIFF -@@ -137,10 +138,12 @@ _TYPE_wchar_t; - #define ___int_ptrdiff_t_h - #define _GCC_PTRDIFF_T - #define _PTRDIFF_T_DECLARED -+#define __DEFINED_ptrdiff_t /* musl */ - #ifndef __PTRDIFF_TYPE__ - #define __PTRDIFF_TYPE__ long int - #endif - typedef __PTRDIFF_TYPE__ ptrdiff_t; -+#endif /* __DEFINED_ptrdiff_t */ - #endif /* _PTRDIFF_T_DECLARED */ - #endif /* _GCC_PTRDIFF_T */ - #endif /* ___int_ptrdiff_t_h */ -@@ -178,6 +181,7 @@ typedef __PTRDIFF_TYPE__ ptrdiff_t; - #ifndef _GCC_SIZE_T - #ifndef _SIZET_ - #ifndef __size_t -+#ifndef __DEFINED_size_t /* musl */ - #define __size_t__ /* BeOS */ - #define __SIZE_T__ /* Cray Unicos/Mk */ - #define _SIZE_T -@@ -194,6 +198,7 @@ typedef __PTRDIFF_TYPE__ ptrdiff_t; - #define ___int_size_t_h - #define _GCC_SIZE_T - #define _SIZET_ -+#define __DEFINED_size_t /* musl */ - #if defined (__FreeBSD__) \ - || defined(__DragonFly__) \ - || defined(__FreeBSD_kernel__) \ -@@ -228,6 +233,7 @@ typedef long ssize_t; - #endif /* _SIZE_T */ - #endif /* __SIZE_T__ */ - #endif /* __size_t__ */ -+#endif /* __DEFINED_size_t */ - #undef __need_size_t - #endif /* _STDDEF_H or __need_size_t. */ - -@@ -257,6 +263,7 @@ typedef long ssize_t; - #ifndef ___int_wchar_t_h - #ifndef __INT_WCHAR_T_H - #ifndef _GCC_WCHAR_T -+#ifndef __DEFINED_wchar_t /* musl */ - #define __wchar_t__ /* BeOS */ - #define __WCHAR_T__ /* Cray Unicos/Mk */ - #define _WCHAR_T -@@ -272,6 +279,7 @@ typedef long ssize_t; - #define __INT_WCHAR_T_H - #define _GCC_WCHAR_T - #define _WCHAR_T_DECLARED -+#define __DEFINED_wchar_t /* musl */ - - /* On BSD/386 1.1, at least, machine/ansi.h defines _BSD_WCHAR_T_ - instead of _WCHAR_T_, and _BSD_RUNE_T_ (which, unlike the other -@@ -337,6 +345,7 @@ typedef __WCHAR_TYPE__ wchar_t; - #endif - #endif /* __WCHAR_T__ */ - #endif /* __wchar_t__ */ -+#endif /* __DEFINED_wchar_t musl */ - #undef __need_wchar_t - #endif /* _STDDEF_H or __need_wchar_t. */ - --- -2.20.1 - diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-9.1/0035-fix-segmentation-fault-in-precompiled-header-generat.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-9.1/0035-fix-segmentation-fault-in-precompiled-header-generat.patch deleted file mode 100644 index ad1f6e7d..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-9.1/0035-fix-segmentation-fault-in-precompiled-header-generat.patch +++ /dev/null @@ -1,60 +0,0 @@ -From c4f89e62c56975fee99304c9cbbe5be6e8bc9ed6 Mon Sep 17 00:00:00 2001 -From: Juro Bystricky -Date: Mon, 19 Mar 2018 22:31:20 -0700 -Subject: [PATCH 35/37] fix segmentation fault in precompiled header generation - -Prevent a segmentation fault which occurs when using incorrect -structure trying to access name of some named operators, such as -CPP_NOT, CPP_AND etc. "token->val.node.spelling" cannot be used in -those cases, as is may not be initialized at all. - -[YOCTO #11738] - -Upstream-Status: Pending - -Signed-off-by: Juro Bystricky -Signed-off-by: Khem Raj ---- - libcpp/lex.c | 26 +++++++++++++++++++++----- - 1 file changed, 21 insertions(+), 5 deletions(-) - -diff --git a/libcpp/lex.c b/libcpp/lex.c -index eedfcbb3146..15040a1b1f0 100644 ---- a/libcpp/lex.c -+++ b/libcpp/lex.c -@@ -3280,11 +3280,27 @@ cpp_spell_token (cpp_reader *pfile, const cpp_token *token, - spell_ident: - case SPELL_IDENT: - if (forstring) -- { -- memcpy (buffer, NODE_NAME (token->val.node.spelling), -- NODE_LEN (token->val.node.spelling)); -- buffer += NODE_LEN (token->val.node.spelling); -- } -+ { -+ if (token->type == CPP_NAME) -+ { -+ memcpy (buffer, NODE_NAME (token->val.node.spelling), -+ NODE_LEN (token->val.node.spelling)); -+ buffer += NODE_LEN (token->val.node.spelling); -+ break; -+ } -+ /* NAMED_OP, cannot use node.spelling */ -+ if (token->flags & NAMED_OP) -+ { -+ const char *str = cpp_named_operator2name (token->type); -+ if (str) -+ { -+ size_t len = strlen(str); -+ memcpy(buffer, str, len); -+ buffer += len; -+ } -+ break; -+ } -+ } - else - buffer = _cpp_spell_ident_ucns (buffer, token->val.node.node); - break; --- -2.20.1 - diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-9.1/0036-Fix-for-testsuite-failure.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-9.1/0036-Fix-for-testsuite-failure.patch deleted file mode 100644 index 4fb0698a..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-9.1/0036-Fix-for-testsuite-failure.patch +++ /dev/null @@ -1,258 +0,0 @@ -From 8d773b5ba6cf396ca76611963127ba2b516272b3 Mon Sep 17 00:00:00 2001 -From: RAGHUNATH LOLUR -Date: Wed, 6 Dec 2017 22:52:26 -0800 -Subject: [PATCH 36/37] Fix for testsuite failure - -2017-11-16 Raghunath Lolur - - * gcc.dg/pr56275.c: If SSE is disabled, ensure that - "-mfpmath" is not set to use SSE. Set "-mfpmath=387". - * gcc.dg/pr68306.c: Likewise - * gcc.dg/pr68306-2.c: Likewise - * gcc.dg/pr68306-3.c: Likewise - * gcc.dg/pr69634.c: Likewise - * gcc.target/i386/amd64-abi-1.c: Likewise - * gcc.target/i386/funcspec-6.c: Likewise - * gcc.target/i386/interrupt-387-err-1.c: Likewise - * gcc.target/i386/isa-14.c: Likewise - * gcc.target/i386/pr44948-2b.c: Likewise - * gcc.target/i386/pr53425-1.c: Likewise - * gcc.target/i386/pr53425-2.c: Likewise - * gcc.target/i386/pr55247.c: Likewise - * gcc.target/i386/pr59644.c: Likewise - * gcc.target/i386/pr62120.c: Likewise - * gcc.target/i386/pr70467-1.c: Likewise - * gcc.target/i386/warn-vect-op-1.c: Likewise - -If -Wall, -Werror are used during compilation various test cases fail -to compile. - -If SSE is disabled, be sure to -mfpmath=387 to resolve this. - -This patch removes the changes to Changelog from the original patch. -This will help us avoid conflicts. - -Upstream-Status: Pending - -Signed-off-by: Mark Hatle ---- - gcc/testsuite/gcc.dg/pr56275.c | 2 +- - gcc/testsuite/gcc.dg/pr68306-2.c | 2 +- - gcc/testsuite/gcc.dg/pr68306-3.c | 2 +- - gcc/testsuite/gcc.dg/pr68306.c | 2 +- - gcc/testsuite/gcc.dg/pr69634.c | 2 +- - gcc/testsuite/gcc.target/i386/amd64-abi-1.c | 2 +- - gcc/testsuite/gcc.target/i386/funcspec-6.c | 1 + - gcc/testsuite/gcc.target/i386/interrupt-387-err-1.c | 2 +- - gcc/testsuite/gcc.target/i386/isa-14.c | 2 +- - gcc/testsuite/gcc.target/i386/pr44948-2b.c | 2 +- - gcc/testsuite/gcc.target/i386/pr53425-1.c | 2 +- - gcc/testsuite/gcc.target/i386/pr53425-2.c | 2 +- - gcc/testsuite/gcc.target/i386/pr55247.c | 2 +- - gcc/testsuite/gcc.target/i386/pr59644.c | 2 +- - gcc/testsuite/gcc.target/i386/pr62120.c | 2 +- - gcc/testsuite/gcc.target/i386/pr70467-1.c | 2 +- - gcc/testsuite/gcc.target/i386/warn-vect-op-1.c | 2 +- - 17 files changed, 17 insertions(+), 16 deletions(-) - -diff --git a/gcc/testsuite/gcc.dg/pr56275.c b/gcc/testsuite/gcc.dg/pr56275.c -index b901bb2b199..a4f6c95e1a1 100644 ---- a/gcc/testsuite/gcc.dg/pr56275.c -+++ b/gcc/testsuite/gcc.dg/pr56275.c -@@ -1,6 +1,6 @@ - /* { dg-do compile } */ - /* { dg-options "-O2" } */ --/* { dg-additional-options "-mno-sse" { target { i?86-*-* x86_64-*-* } } } */ -+/* { dg-additional-options "-mno-sse -mfpmath=387" { target { i?86-*-* x86_64-*-* } } } */ - - typedef long long v2tw __attribute__ ((vector_size (2 * sizeof (long long)))); - -diff --git a/gcc/testsuite/gcc.dg/pr68306-2.c b/gcc/testsuite/gcc.dg/pr68306-2.c -index 4672ebe7987..2a368c484b6 100644 ---- a/gcc/testsuite/gcc.dg/pr68306-2.c -+++ b/gcc/testsuite/gcc.dg/pr68306-2.c -@@ -1,6 +1,6 @@ - /* { dg-do compile } */ - /* { dg-options "-O3" } */ --/* { dg-additional-options "-mno-sse -mno-mmx" { target i?86-*-* x86_64-*-* } } */ -+/* { dg-additional-options "-mno-sse -mno-mmx -mfpmath=387" { target i?86-*-* x86_64-*-* } } */ - - struct { - int tz_minuteswest; -diff --git a/gcc/testsuite/gcc.dg/pr68306-3.c b/gcc/testsuite/gcc.dg/pr68306-3.c -index f5a8c102cf8..df3390c64c2 100644 ---- a/gcc/testsuite/gcc.dg/pr68306-3.c -+++ b/gcc/testsuite/gcc.dg/pr68306-3.c -@@ -1,6 +1,6 @@ - /* { dg-do compile } */ - /* { dg-options "-O3" } */ --/* { dg-additional-options "-mno-sse -mno-mmx" { target i?86-*-* x86_64-*-* } } */ -+/* { dg-additional-options "-mno-sse -mno-mmx -mfpmath=387" { target i?86-*-* x86_64-*-* } } */ - /* { dg-additional-options "-mno-altivec -mno-vsx" { target powerpc*-*-* } } */ - - extern void fn2(); -diff --git a/gcc/testsuite/gcc.dg/pr68306.c b/gcc/testsuite/gcc.dg/pr68306.c -index 54e5b40f221..0813389e2c1 100644 ---- a/gcc/testsuite/gcc.dg/pr68306.c -+++ b/gcc/testsuite/gcc.dg/pr68306.c -@@ -1,6 +1,6 @@ - /* { dg-do compile } */ - /* { dg-options "-O3" } */ --/* { dg-additional-options "-mno-sse -mno-mmx" { target i?86-*-* x86_64-*-* } } */ -+/* { dg-additional-options "-mno-sse -mno-mmx -mfpmath=387" { target i?86-*-* x86_64-*-* } } */ - - enum powerpc_pmc_type { PPC_PMC_IBM }; - struct { -diff --git a/gcc/testsuite/gcc.dg/pr69634.c b/gcc/testsuite/gcc.dg/pr69634.c -index 60a56149463..bcc23f9ccd6 100644 ---- a/gcc/testsuite/gcc.dg/pr69634.c -+++ b/gcc/testsuite/gcc.dg/pr69634.c -@@ -1,6 +1,6 @@ - /* { dg-do compile } */ - /* { dg-options "-O2 -fno-dce -fschedule-insns -fno-tree-vrp -fcompare-debug -Wno-psabi" } */ --/* { dg-additional-options "-mno-sse" { target i?86-*-* x86_64-*-* } } */ -+/* { dg-additional-options "-mno-sse -mfpmath=387" { target i?86-*-* x86_64-*-* } } */ - /* { dg-require-effective-target scheduling } */ - - typedef unsigned short u16; -diff --git a/gcc/testsuite/gcc.target/i386/amd64-abi-1.c b/gcc/testsuite/gcc.target/i386/amd64-abi-1.c -index 69fde57bf06..7f1f1c03edf 100644 ---- a/gcc/testsuite/gcc.target/i386/amd64-abi-1.c -+++ b/gcc/testsuite/gcc.target/i386/amd64-abi-1.c -@@ -1,5 +1,5 @@ - /* { dg-do compile { target { ! ia32 } } } */ --/* { dg-options "-mno-sse" } */ -+/* { dg-options "-mno-sse -mfpmath=387" } */ - /* { dg-additional-options "-mabi=sysv" { target *-*-mingw* } } */ - - double foo(void) { return 0; } /* { dg-error "SSE disabled" } */ -diff --git a/gcc/testsuite/gcc.target/i386/funcspec-6.c b/gcc/testsuite/gcc.target/i386/funcspec-6.c -index ea896b7ebfd..bf15569b826 100644 ---- a/gcc/testsuite/gcc.target/i386/funcspec-6.c -+++ b/gcc/testsuite/gcc.target/i386/funcspec-6.c -@@ -1,6 +1,7 @@ - /* Test whether all of the 64-bit function specific options are accepted - without error. */ - /* { dg-do compile { target { ! ia32 } } } */ -+/* { dg-additional-options "-mfpmath=387" } */ - - #include "funcspec-56.inc" - -diff --git a/gcc/testsuite/gcc.target/i386/interrupt-387-err-1.c b/gcc/testsuite/gcc.target/i386/interrupt-387-err-1.c -index 3fbdc881dda..6b4d9d1252a 100644 ---- a/gcc/testsuite/gcc.target/i386/interrupt-387-err-1.c -+++ b/gcc/testsuite/gcc.target/i386/interrupt-387-err-1.c -@@ -1,5 +1,5 @@ - /* { dg-do compile } */ --/* { dg-options "-O2 -mgeneral-regs-only -mno-cld -mno-iamcu -m80387" } */ -+/* { dg-options "-O2 -mgeneral-regs-only -mno-cld -mno-iamcu -m80387 -mfpmath=387" } */ - - typedef unsigned int uword_t __attribute__ ((mode (__word__))); - -diff --git a/gcc/testsuite/gcc.target/i386/isa-14.c b/gcc/testsuite/gcc.target/i386/isa-14.c -index 5d49e6e77fe..1de2db92bdd 100644 ---- a/gcc/testsuite/gcc.target/i386/isa-14.c -+++ b/gcc/testsuite/gcc.target/i386/isa-14.c -@@ -1,5 +1,5 @@ - /* { dg-do run } */ --/* { dg-options "-march=x86-64 -msse4a -mfma4 -mno-sse" } */ -+/* { dg-options "-march=x86-64 -msse4a -mfma4 -mno-sse -mfpmath=387" } */ - - extern void abort (void); - -diff --git a/gcc/testsuite/gcc.target/i386/pr44948-2b.c b/gcc/testsuite/gcc.target/i386/pr44948-2b.c -index fa1769b62fb..f79fb12726f 100644 ---- a/gcc/testsuite/gcc.target/i386/pr44948-2b.c -+++ b/gcc/testsuite/gcc.target/i386/pr44948-2b.c -@@ -1,5 +1,5 @@ - /* { dg-do compile } */ --/* { dg-options "-O -mno-sse -Wno-psabi -mtune=generic" } */ -+/* { dg-options "-O -mno-sse -Wno-psabi -mtune=generic -mfpmath=387" } */ - - struct A - { -diff --git a/gcc/testsuite/gcc.target/i386/pr53425-1.c b/gcc/testsuite/gcc.target/i386/pr53425-1.c -index 2e89ff7d81d..6339bf6b736 100644 ---- a/gcc/testsuite/gcc.target/i386/pr53425-1.c -+++ b/gcc/testsuite/gcc.target/i386/pr53425-1.c -@@ -1,6 +1,6 @@ - /* PR target/53425 */ - /* { dg-do compile { target { ! ia32 } } } */ --/* { dg-options "-O2 -mno-sse" } */ -+/* { dg-options "-O2 -mno-sse -mfpmath=387" } */ - /* { dg-skip-if "no SSE vector" { x86_64-*-mingw* } } */ - - typedef double __v2df __attribute__ ((__vector_size__ (16))); -diff --git a/gcc/testsuite/gcc.target/i386/pr53425-2.c b/gcc/testsuite/gcc.target/i386/pr53425-2.c -index 61f6283dbe9..2c5a55f0ac3 100644 ---- a/gcc/testsuite/gcc.target/i386/pr53425-2.c -+++ b/gcc/testsuite/gcc.target/i386/pr53425-2.c -@@ -1,6 +1,6 @@ - /* PR target/53425 */ - /* { dg-do compile { target { ! ia32 } } } */ --/* { dg-options "-O2 -mno-sse" } */ -+/* { dg-options "-O2 -mno-sse -mfpmath=387" } */ - /* { dg-skip-if "no SSE vector" { x86_64-*-mingw* } } */ - - typedef float __v2sf __attribute__ ((__vector_size__ (8))); -diff --git a/gcc/testsuite/gcc.target/i386/pr55247.c b/gcc/testsuite/gcc.target/i386/pr55247.c -index 23366d0909d..9810e3abb76 100644 ---- a/gcc/testsuite/gcc.target/i386/pr55247.c -+++ b/gcc/testsuite/gcc.target/i386/pr55247.c -@@ -1,6 +1,6 @@ - /* { dg-do compile { target { ! ia32 } } } */ - /* { dg-require-effective-target maybe_x32 } */ --/* { dg-options "-O2 -mno-sse -mno-mmx -mx32 -maddress-mode=long" } */ -+/* { dg-options "-O2 -mno-sse -mno-mmx -mx32 -maddress-mode=long -mfpmath=387" } */ - - typedef unsigned int uint32_t; - typedef uint32_t Elf32_Word; -diff --git a/gcc/testsuite/gcc.target/i386/pr59644.c b/gcc/testsuite/gcc.target/i386/pr59644.c -index 96006b3e338..4287e4538bf 100644 ---- a/gcc/testsuite/gcc.target/i386/pr59644.c -+++ b/gcc/testsuite/gcc.target/i386/pr59644.c -@@ -1,6 +1,6 @@ - /* PR target/59644 */ - /* { dg-do run { target lp64 } } */ --/* { dg-options "-O2 -ffreestanding -mno-sse -mpreferred-stack-boundary=3 -maccumulate-outgoing-args -mno-red-zone" } */ -+/* { dg-options "-O2 -ffreestanding -mno-sse -mpreferred-stack-boundary=3 -maccumulate-outgoing-args -mno-red-zone -mfpmath=387" } */ - - /* This test uses __builtin_trap () instead of e.g. abort, - because due to -mpreferred-stack-boundary=3 it should not call -diff --git a/gcc/testsuite/gcc.target/i386/pr62120.c b/gcc/testsuite/gcc.target/i386/pr62120.c -index bfb8c4703eb..ed04cf181f3 100644 ---- a/gcc/testsuite/gcc.target/i386/pr62120.c -+++ b/gcc/testsuite/gcc.target/i386/pr62120.c -@@ -1,5 +1,5 @@ - /* { dg-do compile } */ --/* { dg-options "-mno-sse" } */ -+/* { dg-options "-mno-sse -mfpmath=387" } */ - - void foo () - { -diff --git a/gcc/testsuite/gcc.target/i386/pr70467-1.c b/gcc/testsuite/gcc.target/i386/pr70467-1.c -index 4e112c88d07..bcfb396a68d 100644 ---- a/gcc/testsuite/gcc.target/i386/pr70467-1.c -+++ b/gcc/testsuite/gcc.target/i386/pr70467-1.c -@@ -1,6 +1,6 @@ - /* PR rtl-optimization/70467 */ - /* { dg-do compile } */ --/* { dg-options "-O2 -mno-sse" } */ -+/* { dg-options "-O2 -mno-sse -mfpmath=387" } */ - - void foo (unsigned long long *); - -diff --git a/gcc/testsuite/gcc.target/i386/warn-vect-op-1.c b/gcc/testsuite/gcc.target/i386/warn-vect-op-1.c -index 6cda1534311..26e37f5b8ba 100644 ---- a/gcc/testsuite/gcc.target/i386/warn-vect-op-1.c -+++ b/gcc/testsuite/gcc.target/i386/warn-vect-op-1.c -@@ -1,5 +1,5 @@ - /* { dg-do compile { target { ! ia32 } } } */ --/* { dg-options "-mno-sse -Wvector-operation-performance" } */ -+/* { dg-options "-mno-sse -Wvector-operation-performance -mfpmath=387" } */ - #define vector(elcount, type) \ - __attribute__((vector_size((elcount)*sizeof(type)))) type - --- -2.20.1 - diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-9.1/0037-Re-introduce-spe-commandline-options.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-9.1/0037-Re-introduce-spe-commandline-options.patch deleted file mode 100644 index 251097e1..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-9.1/0037-Re-introduce-spe-commandline-options.patch +++ /dev/null @@ -1,41 +0,0 @@ -From 49d3dbe240226206d09ff646499cd398cb60bd12 Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Wed, 6 Jun 2018 12:10:22 -0700 -Subject: [PATCH 37/37] Re-introduce spe commandline options - -This should ensure that we keep accepting -spe options - -Upstream-Status: Inappropriate [SPE port is removed from rs600 port] - -Signed-off-by: Khem Raj ---- - gcc/config/rs6000/rs6000.opt | 12 ++++++++++++ - 1 file changed, 12 insertions(+) - -diff --git a/gcc/config/rs6000/rs6000.opt b/gcc/config/rs6000/rs6000.opt -index 2e90bf37747..ebd297da46b 100644 ---- a/gcc/config/rs6000/rs6000.opt -+++ b/gcc/config/rs6000/rs6000.opt -@@ -345,6 +345,18 @@ mdebug= - Target RejectNegative Joined - -mdebug= Enable debug output. - -+mspe -+Target Var(rs6000_spe) Save -+Generate SPE SIMD instructions on E500. -+ -+mabi=spe -+Target RejectNegative Var(rs6000_spe_abi) Save -+Use the SPE ABI extensions. -+ -+mabi=no-spe -+Target RejectNegative Var(rs6000_spe_abi, 0) -+Do not use the SPE ABI extensions. -+ - mabi=altivec - Target RejectNegative Var(rs6000_altivec_abi) Save - Use the AltiVec ABI extensions. --- -2.20.1 - diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-9.2.inc b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-9.2.inc new file mode 100644 index 00000000..c6395998 --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-9.2.inc @@ -0,0 +1,122 @@ +require gcc-common.inc + +# Third digit in PV should be incremented after a minor release + +PV = "9.2.0" + +# BINV should be incremented to a revision after a minor gcc release + +BINV = "9.2.0" + +FILESEXTRAPATHS =. "${FILE_DIRNAME}/gcc-9.2:${FILE_DIRNAME}/gcc-9.2/backport:" + +DEPENDS =+ "mpfr gmp libmpc zlib flex-native" +NATIVEDEPS = "mpfr-native gmp-native libmpc-native zlib-native flex-native" + +LICENSE = "GPL-3.0-with-GCC-exception & GPLv3" + +LIC_FILES_CHKSUM = "\ + file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552 \ + file://COPYING3;md5=d32239bcb673463ab874e80d47fae504 \ + file://COPYING3.LIB;md5=6a6a8e020838b23406c81b19c1d46df6 \ + file://COPYING.LIB;md5=2d5025d4aa3495befef8f17206a5b0a1 \ + file://COPYING.RUNTIME;md5=fe60d87048567d4fe8c8a0ed2448bcc8 \ +" + +BASEURI ?= "${GNU_MIRROR}/gcc/gcc-${PV}/gcc-${PV}.tar.xz" +#RELEASE ?= "5a5ca2d" +#BASEURI ?= "https://repo.or.cz/official-gcc.git/snapshot/${RELEASE}.tar.gz;downloadfilename=gcc-${RELEASE}.tar.gz" +SRC_URI = "\ + ${BASEURI} \ + file://0001-gcc-4.3.1-ARCH_FLAGS_FOR_TARGET.patch \ + file://0002-gcc-poison-system-directories.patch \ + file://0003-gcc-4.3.3-SYSROOT_CFLAGS_FOR_TARGET.patch \ + file://0004-64-bit-multilib-hack.patch \ + file://0005-optional-libstdc.patch \ + file://0006-COLLECT_GCC_OPTIONS.patch \ + file://0007-Use-the-defaults.h-in-B-instead-of-S-and-t-oe-in-B.patch \ + file://0008-fortran-cross-compile-hack.patch \ + file://0009-cpp-honor-sysroot.patch \ + file://0010-MIPS64-Default-to-N64-ABI.patch \ + file://0011-Define-GLIBC_DYNAMIC_LINKER-and-UCLIBC_DYNAMIC_LINKE.patch \ + file://0012-gcc-Fix-argument-list-too-long-error.patch \ + file://0013-Disable-sdt.patch \ + file://0014-libtool.patch \ + file://0015-gcc-armv4-pass-fix-v4bx-to-linker-to-support-EABI.patch \ + file://0016-Use-the-multilib-config-files-from-B-instead-of-usin.patch \ + file://0017-Avoid-using-libdir-from-.la-which-usually-points-to-.patch \ + file://0018-export-CPP.patch \ + file://0019-Ensure-target-gcc-headers-can-be-included.patch \ + file://0020-gcc-4.8-won-t-build-with-disable-dependency-tracking.patch \ + file://0021-Don-t-search-host-directory-during-relink-if-inst_pr.patch \ + file://0022-Use-SYSTEMLIBS_DIR-replacement-instead-of-hardcoding.patch \ + file://0023-aarch64-Add-support-for-musl-ldso.patch \ + file://0024-libcc1-fix-libcc1-s-install-path-and-rpath.patch \ + file://0025-handle-sysroot-support-for-nativesdk-gcc.patch \ + file://0026-Search-target-sysroot-gcc-version-specific-dirs-with.patch \ + file://0027-Fix-various-_FOR_BUILD-and-related-variables.patch \ + file://0028-nios2-Define-MUSL_DYNAMIC_LINKER.patch \ + file://0029-Add-ssp_nonshared-to-link-commandline-for-musl-targe.patch \ + file://0030-libgcc-Add-knob-to-use-ldbl-128-on-ppc.patch \ + file://0031-Link-libgcc-using-LDFLAGS-not-just-SHLIB_LDFLAGS.patch \ + file://0032-libgcc_s-Use-alias-for-__cpu_indicator_init-instead-.patch \ + file://0033-sync-gcc-stddef.h-with-musl.patch \ + file://0034-fix-segmentation-fault-in-precompiled-header-generat.patch \ + file://0035-Fix-for-testsuite-failure.patch \ + file://0036-Re-introduce-spe-commandline-options.patch \ + file://CVE-2019-14250.patch \ + file://CVE-2019-15847_1.patch \ + file://CVE-2019-15847_2.patch \ + file://CVE-2019-15847_3.patch \ +" +S = "${TMPDIR}/work-shared/gcc-${PV}-${PR}/gcc-${PV}" +SRC_URI[md5sum] = "3818ad8600447f05349098232c2ddc78" +SRC_URI[sha256sum] = "ea6ef08f121239da5695f76c9b33637a118dcf63e24164422231917fa61fb206" + +# For dev release snapshotting +#S = "${TMPDIR}/work-shared/gcc-${PV}-${PR}/official-gcc-${RELEASE}" +#B = "${WORKDIR}/gcc-${PV}/build.${HOST_SYS}.${TARGET_SYS}" + +# Language Overrides +FORTRAN = "" +JAVA = "" + +LTO = "--enable-lto" +SSP ?= "--disable-libssp" +SSP_mingw32 = "--enable-libssp" + +EXTRA_OECONF_BASE = "\ + ${LTO} \ + ${SSP} \ + --enable-libitm \ + --disable-bootstrap \ + --disable-libmudflap \ + --with-system-zlib \ + ${@'--with-linker-hash-style=${LINKER_HASH_STYLE}' if '${LINKER_HASH_STYLE}' else ''} \ + --enable-linker-build-id \ + --with-ppl=no \ + --with-cloog=no \ + --enable-checking=release \ + --enable-cheaders=c_global \ + --without-isl \ +" + +EXTRA_OECONF_INITIAL = "\ + --disable-libmudflap \ + --disable-libgomp \ + --disable-libitm \ + --disable-libquadmath \ + --with-system-zlib \ + --disable-lto \ + --disable-plugin \ + --enable-linker-build-id \ + --enable-decimal-float=no \ + --without-isl \ + --disable-libssp \ +" + +EXTRA_OECONF_PATHS = "\ + --with-gxx-include-dir=/not/exist{target_includedir}/c++/${BINV} \ + --with-sysroot=/not/exist \ + --with-build-sysroot=${STAGING_DIR_TARGET} \ +" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-9.2/0001-gcc-4.3.1-ARCH_FLAGS_FOR_TARGET.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-9.2/0001-gcc-4.3.1-ARCH_FLAGS_FOR_TARGET.patch new file mode 100644 index 00000000..9065c304 --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-9.2/0001-gcc-4.3.1-ARCH_FLAGS_FOR_TARGET.patch @@ -0,0 +1,42 @@ +From 863325ec3c6eb4987be63509ac407b2d13617342 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Fri, 29 Mar 2013 08:37:11 +0400 +Subject: [PATCH 01/36] gcc-4.3.1: ARCH_FLAGS_FOR_TARGET + +Signed-off-by: Khem Raj + +Upstream-Status: Inappropriate [embedded specific] +--- + configure | 2 +- + configure.ac | 2 +- + 2 files changed, 2 insertions(+), 2 deletions(-) + +diff --git a/configure b/configure +index abd93a990a9..b121088d778 100755 +--- a/configure ++++ b/configure +@@ -7603,7 +7603,7 @@ fi + # for target_alias and gcc doesn't manage it consistently. + target_configargs="--cache-file=./config.cache ${target_configargs}" + +-FLAGS_FOR_TARGET= ++FLAGS_FOR_TARGET="$ARCH_FLAGS_FOR_TARGET" + case " $target_configdirs " in + *" newlib "*) + case " $target_configargs " in +diff --git a/configure.ac b/configure.ac +index 9db4fd14aa2..aad93c4d183 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -3119,7 +3119,7 @@ fi + # for target_alias and gcc doesn't manage it consistently. + target_configargs="--cache-file=./config.cache ${target_configargs}" + +-FLAGS_FOR_TARGET= ++FLAGS_FOR_TARGET="$ARCH_FLAGS_FOR_TARGET" + case " $target_configdirs " in + *" newlib "*) + case " $target_configargs " in +-- +2.22.1 + diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-9.2/0002-gcc-poison-system-directories.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-9.2/0002-gcc-poison-system-directories.patch new file mode 100644 index 00000000..a1116e75 --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-9.2/0002-gcc-poison-system-directories.patch @@ -0,0 +1,203 @@ +From 68e78bc15de215fa15c7d8b56bd2e2b0539b34fa Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Fri, 29 Mar 2013 08:59:00 +0400 +Subject: [PATCH 02/36] gcc: poison-system-directories + +Add /sw/include and /opt/include based on the original +zecke-no-host-includes.patch patch. The original patch checked for +/usr/include, /sw/include and /opt/include and then triggered a failure and +aborted. + +Instead, we add the two missing items to the current scan. If the user +wants this to be a failure, they can add "-Werror=poison-system-directories". + +Signed-off-by: Mark Hatle +Signed-off-by: Khem Raj + +Upstream-Status: Pending +--- + gcc/common.opt | 4 ++++ + gcc/config.in | 6 ++++++ + gcc/configure | 16 ++++++++++++++++ + gcc/configure.ac | 10 ++++++++++ + gcc/doc/invoke.texi | 9 +++++++++ + gcc/gcc.c | 2 ++ + gcc/incpath.c | 21 +++++++++++++++++++++ + 7 files changed, 68 insertions(+) + +diff --git a/gcc/common.opt b/gcc/common.opt +index d342c4f3749..c64fd4a6c50 100644 +--- a/gcc/common.opt ++++ b/gcc/common.opt +@@ -684,6 +684,10 @@ Wreturn-local-addr + Common Var(warn_return_local_addr) Init(1) Warning + Warn about returning a pointer/reference to a local or temporary variable. + ++Wpoison-system-directories ++Common Var(flag_poison_system_directories) Init(1) Warning ++Warn for -I and -L options using system directories if cross compiling ++ + Wshadow + Common Var(warn_shadow) Warning + Warn when one variable shadows another. Same as -Wshadow=global. +diff --git a/gcc/config.in b/gcc/config.in +index a718ceaf3da..5713342efb1 100644 +--- a/gcc/config.in ++++ b/gcc/config.in +@@ -200,6 +200,12 @@ + #endif + + ++/* Define to warn for use of native system header directories */ ++#ifndef USED_FOR_TARGET ++#undef ENABLE_POISON_SYSTEM_DIRECTORIES ++#endif ++ ++ + /* Define if you want all operations on RTL (the basic data structure of the + optimizer and back end) to be checked for dynamic type safety at runtime. + This is quite expensive. */ +diff --git a/gcc/configure b/gcc/configure +index 481071b4265..a6ea3a8a84c 100755 +--- a/gcc/configure ++++ b/gcc/configure +@@ -995,6 +995,7 @@ with_system_zlib + enable_maintainer_mode + enable_link_mutex + enable_version_specific_runtime_libs ++enable_poison_system_directories + enable_plugin + enable_host_shared + enable_libquadmath_support +@@ -1748,6 +1749,8 @@ Optional Features: + --enable-version-specific-runtime-libs + specify that runtime libraries should be installed + in a compiler-specific directory ++ --enable-poison-system-directories ++ warn for use of native system header directories + --enable-plugin enable plugin support + --enable-host-shared build host code as shared libraries + --disable-libquadmath-support +@@ -29750,6 +29753,19 @@ if test "${enable_version_specific_runtime_libs+set}" = set; then : + fi + + ++# Check whether --enable-poison-system-directories was given. ++if test "${enable_poison_system_directories+set}" = set; then : ++ enableval=$enable_poison_system_directories; ++else ++ enable_poison_system_directories=no ++fi ++ ++if test "x${enable_poison_system_directories}" = "xyes"; then ++ ++$as_echo "#define ENABLE_POISON_SYSTEM_DIRECTORIES 1" >>confdefs.h ++ ++fi ++ + # Substitute configuration variables + + +diff --git a/gcc/configure.ac b/gcc/configure.ac +index ce2825580c6..d42bbd4fd1c 100644 +--- a/gcc/configure.ac ++++ b/gcc/configure.ac +@@ -6378,6 +6378,16 @@ AC_ARG_ENABLE(version-specific-runtime-libs, + [specify that runtime libraries should be + installed in a compiler-specific directory])]) + ++AC_ARG_ENABLE([poison-system-directories], ++ AS_HELP_STRING([--enable-poison-system-directories], ++ [warn for use of native system header directories]),, ++ [enable_poison_system_directories=no]) ++if test "x${enable_poison_system_directories}" = "xyes"; then ++ AC_DEFINE([ENABLE_POISON_SYSTEM_DIRECTORIES], ++ [1], ++ [Define to warn for use of native system header directories]) ++fi ++ + # Substitute configuration variables + AC_SUBST(subdirs) + AC_SUBST(srcdir) +diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi +index 6ef36ce02aa..09414d8cc05 100644 +--- a/gcc/doc/invoke.texi ++++ b/gcc/doc/invoke.texi +@@ -332,6 +332,7 @@ Objective-C and Objective-C++ Dialects}. + -Wpacked -Wpacked-bitfield-compat -Wpacked-not-aligned -Wpadded @gol + -Wparentheses -Wno-pedantic-ms-format @gol + -Wplacement-new -Wplacement-new=@var{n} @gol ++-Wno-poison-system-directories @gol + -Wpointer-arith -Wpointer-compare -Wno-pointer-to-int-cast @gol + -Wno-pragmas -Wno-prio-ctor-dtor -Wredundant-decls @gol + -Wrestrict -Wno-return-local-addr @gol +@@ -6289,6 +6290,14 @@ made up of data only and thus requires no special treatment. But, for + most targets, it is made up of code and thus requires the stack to be + made executable in order for the program to work properly. + ++@item -Wno-poison-system-directories ++@opindex Wno-poison-system-directories ++Do not warn for @option{-I} or @option{-L} options using system ++directories such as @file{/usr/include} when cross compiling. This ++option is intended for use in chroot environments when such ++directories contain the correct headers and libraries for the target ++system rather than the host. ++ + @item -Wfloat-equal + @opindex Wfloat-equal + @opindex Wno-float-equal +diff --git a/gcc/gcc.c b/gcc/gcc.c +index 4f57765b012..a2601a6bb06 100644 +--- a/gcc/gcc.c ++++ b/gcc/gcc.c +@@ -1042,6 +1042,8 @@ proper position among the other output files. */ + "%{fuse-ld=*:-fuse-ld=%*} " LINK_COMPRESS_DEBUG_SPEC \ + "%X %{o*} %{e*} %{N} %{n} %{r}\ + %{s} %{t} %{u*} %{z} %{Z} %{!nostdlib:%{!r:%{!nostartfiles:%S}}} \ ++ %{Wno-poison-system-directories:--no-poison-system-directories} \ ++ %{Werror=poison-system-directories:--error-poison-system-directories} \ + %{static|no-pie|static-pie:} %@{L*} %(mfwrap) %(link_libgcc) " \ + VTABLE_VERIFICATION_SPEC " " SANITIZER_EARLY_SPEC " %o "" \ + %{fopenacc|fopenmp|%:gt(%{ftree-parallelize-loops=*:%*} 1):\ +diff --git a/gcc/incpath.c b/gcc/incpath.c +index bcbe2082905..5752298bbf2 100644 +--- a/gcc/incpath.c ++++ b/gcc/incpath.c +@@ -26,6 +26,7 @@ + #include "intl.h" + #include "incpath.h" + #include "cppdefault.h" ++#include "diagnostic-core.h" + + /* Microsoft Windows does not natively support inodes. + VMS has non-numeric inodes. */ +@@ -393,6 +394,26 @@ merge_include_chains (const char *sysroot, cpp_reader *pfile, int verbose) + } + fprintf (stderr, _("End of search list.\n")); + } ++ ++#ifdef ENABLE_POISON_SYSTEM_DIRECTORIES ++ if (flag_poison_system_directories) ++ { ++ struct cpp_dir *p; ++ ++ for (p = heads[INC_QUOTE]; p; p = p->next) ++ { ++ if ((!strncmp (p->name, "/usr/include", 12)) ++ || (!strncmp (p->name, "/usr/local/include", 18)) ++ || (!strncmp (p->name, "/usr/X11R6/include", 18)) ++ || (!strncmp (p->name, "/sw/include", 11)) ++ || (!strncmp (p->name, "/opt/include", 12))) ++ warning (OPT_Wpoison_system_directories, ++ "include location \"%s\" is unsafe for " ++ "cross-compilation", ++ p->name); ++ } ++ } ++#endif + } + + /* Use given -I paths for #include "..." but not #include <...>, and +-- +2.22.1 + diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-9.2/0003-gcc-4.3.3-SYSROOT_CFLAGS_FOR_TARGET.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-9.2/0003-gcc-4.3.3-SYSROOT_CFLAGS_FOR_TARGET.patch new file mode 100644 index 00000000..23039d21 --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-9.2/0003-gcc-4.3.3-SYSROOT_CFLAGS_FOR_TARGET.patch @@ -0,0 +1,73 @@ +From f8d60c4114acb92361c7b2f4a4561d4661e8da9d Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Fri, 29 Mar 2013 09:08:31 +0400 +Subject: [PATCH 03/36] gcc-4.3.3: SYSROOT_CFLAGS_FOR_TARGET + +Before committing, I noticed that PR/32161 was marked as a dup of PR/32009, but my previous patch did not fix it. + +This alternative patch is better because it lets you just use CFLAGS_FOR_TARGET to set the compilation flags for libgcc. Since bootstrapped target libraries are never compiled with the native compiler, it makes little sense to use different flags for stage1 and later stages. And it also makes little sense to use a different variable than CFLAGS_FOR_TARGET. + +Other changes I had to do include: + +- moving the creation of default CFLAGS_FOR_TARGET from Makefile.am to configure.ac, because otherwise the BOOT_CFLAGS are substituted into CFLAGS_FOR_TARGET (which is "-O2 -g $(CFLAGS)") via $(CFLAGS). It is also cleaner this way though. + +- passing the right CFLAGS to configure scripts as exported environment variables + +I also stopped passing LIBCFLAGS to configure scripts since they are unused in the whole src tree. And I updated the documentation as H-P reminded me to do. + +Bootstrapped/regtested i686-pc-linux-gnu, will commit to 4.4 shortly. Ok for 4.3? + +Signed-off-by: Paolo Bonzini +Signed-off-by: Khem Raj + +Upstream-Status: Pending +--- + configure | 32 ++++++++++++++++++++++++++++++++ + 1 file changed, 32 insertions(+) + +diff --git a/configure b/configure +index b121088d778..93aae5bb26f 100755 +--- a/configure ++++ b/configure +@@ -6864,6 +6864,38 @@ fi + + + ++# During gcc bootstrap, if we use some random cc for stage1 then CFLAGS ++# might be empty or "-g". We don't require a C++ compiler, so CXXFLAGS ++# might also be empty (or "-g", if a non-GCC C++ compiler is in the path). ++# We want to ensure that TARGET libraries (which we know are built with ++# gcc) are built with "-O2 -g", so include those options when setting ++# CFLAGS_FOR_TARGET and CXXFLAGS_FOR_TARGET. ++if test "x$CFLAGS_FOR_TARGET" = x; then ++ CFLAGS_FOR_TARGET=$CFLAGS ++ case " $CFLAGS " in ++ *" -O2 "*) ;; ++ *) CFLAGS_FOR_TARGET="-O2 $CFLAGS" ;; ++ esac ++ case " $CFLAGS " in ++ *" -g "* | *" -g3 "*) ;; ++ *) CFLAGS_FOR_TARGET="-g $CFLAGS" ;; ++ esac ++fi ++ ++ ++if test "x$CXXFLAGS_FOR_TARGET" = x; then ++ CXXFLAGS_FOR_TARGET=$CXXFLAGS ++ case " $CXXFLAGS " in ++ *" -O2 "*) ;; ++ *) CXXFLAGS_FOR_TARGET="-O2 $CXXFLAGS" ;; ++ esac ++ case " $CXXFLAGS " in ++ *" -g "* | *" -g3 "*) ;; ++ *) CXXFLAGS_FOR_TARGET="-g $CXXFLAGS" ;; ++ esac ++fi ++ ++ + # Handle --with-headers=XXX. If the value is not "yes", the contents of + # the named directory are copied to $(tooldir)/sys-include. + if test x"${with_headers}" != x && test x"${with_headers}" != xno ; then +-- +2.22.1 + diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-9.2/0004-64-bit-multilib-hack.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-9.2/0004-64-bit-multilib-hack.patch new file mode 100644 index 00000000..a79c40c1 --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-9.2/0004-64-bit-multilib-hack.patch @@ -0,0 +1,119 @@ +From c2081c51db589471ea713870c72f13999abda815 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Fri, 29 Mar 2013 09:10:06 +0400 +Subject: [PATCH 04/36] 64-bit multilib hack. + +GCC has internal multilib handling code but it assumes a very specific rigid directory +layout. The build system implementation of multilib layout is very generic and allows +complete customisation of the library directories. + +This patch is a partial solution to allow any custom directories to be passed into gcc +and handled correctly. It forces gcc to use the base_libdir (which is the current +directory, "."). We need to do this for each multilib that is configured as we don't +know which compiler options may be being passed into the compiler. Since we have a compiler +per mulitlib at this point that isn't an issue. + +The one problem is the target compiler is only going to work for the default multlilib at +this point. Ideally we'd figure out which multilibs were being enabled with which paths +and be able to patch these entries with a complete set of correct paths but this we +don't have such code at this point. This is something the target gcc recipe should do +and override these platform defaults in its build config. + +Do same for riscv64 and aarch64 + +RP 15/8/11 + +Upstream-Status: Inappropriate[OE-Specific] + +Signed-off-by: Khem Raj +Signed-off-by: Elvis Dowson +Signed-off-by: Mark Hatle +--- + gcc/config/aarch64/t-aarch64-linux | 8 ++++---- + gcc/config/i386/t-linux64 | 6 ++---- + gcc/config/mips/t-linux64 | 10 +++------- + gcc/config/riscv/t-linux | 6 ++++-- + gcc/config/rs6000/t-linux64 | 5 ++--- + 5 files changed, 15 insertions(+), 20 deletions(-) + +diff --git a/gcc/config/aarch64/t-aarch64-linux b/gcc/config/aarch64/t-aarch64-linux +index 5ad670ba2ce..e26019e7157 100644 +--- a/gcc/config/aarch64/t-aarch64-linux ++++ b/gcc/config/aarch64/t-aarch64-linux +@@ -21,8 +21,8 @@ + LIB1ASMSRC = aarch64/lib1funcs.asm + LIB1ASMFUNCS = _aarch64_sync_cache_range + +-AARCH_BE = $(if $(findstring TARGET_BIG_ENDIAN_DEFAULT=1, $(tm_defines)),_be) +-MULTILIB_OSDIRNAMES = mabi.lp64=../lib64$(call if_multiarch,:aarch64$(AARCH_BE)-linux-gnu) +-MULTIARCH_DIRNAME = $(call if_multiarch,aarch64$(AARCH_BE)-linux-gnu) ++#AARCH_BE = $(if $(findstring TARGET_BIG_ENDIAN_DEFAULT=1, $(tm_defines)),_be) ++#MULTILIB_OSDIRNAMES = mabi.lp64=../lib64$(call if_multiarch,:aarch64$(AARCH_BE)-linux-gnu) ++#MULTIARCH_DIRNAME = $(call if_multiarch,aarch64$(AARCH_BE)-linux-gnu) + +-MULTILIB_OSDIRNAMES += mabi.ilp32=../libilp32$(call if_multiarch,:aarch64$(AARCH_BE)-linux-gnu_ilp32) ++#MULTILIB_OSDIRNAMES += mabi.ilp32=../libilp32$(call if_multiarch,:aarch64$(AARCH_BE)-linux-gnu_ilp32) +diff --git a/gcc/config/i386/t-linux64 b/gcc/config/i386/t-linux64 +index c686ab2f0d2..c82b60dadcd 100644 +--- a/gcc/config/i386/t-linux64 ++++ b/gcc/config/i386/t-linux64 +@@ -32,7 +32,5 @@ + # + comma=, + MULTILIB_OPTIONS = $(subst $(comma),/,$(TM_MULTILIB_CONFIG)) +-MULTILIB_DIRNAMES = $(patsubst m%, %, $(subst /, ,$(MULTILIB_OPTIONS))) +-MULTILIB_OSDIRNAMES = m64=../lib64$(call if_multiarch,:x86_64-linux-gnu) +-MULTILIB_OSDIRNAMES+= m32=$(if $(wildcard $(shell echo $(SYSTEM_HEADER_DIR))/../../usr/lib32),../lib32,../lib)$(call if_multiarch,:i386-linux-gnu) +-MULTILIB_OSDIRNAMES+= mx32=../libx32$(call if_multiarch,:x86_64-linux-gnux32) ++MULTILIB_DIRNAMES = . . ++MULTILIB_OSDIRNAMES = ../$(shell basename $(base_libdir)) ../$(shell basename $(base_libdir)) +diff --git a/gcc/config/mips/t-linux64 b/gcc/config/mips/t-linux64 +index 3a2ff700d7d..13ef19576b5 100644 +--- a/gcc/config/mips/t-linux64 ++++ b/gcc/config/mips/t-linux64 +@@ -17,10 +17,6 @@ + # . + + MULTILIB_OPTIONS = mabi=n32/mabi=32/mabi=64 +-MULTILIB_DIRNAMES = n32 32 64 +-MIPS_EL = $(if $(filter %el, $(firstword $(subst -, ,$(target)))),el) +-MIPS_SOFT = $(if $(strip $(filter MASK_SOFT_FLOAT_ABI, $(target_cpu_default)) $(filter soft, $(with_float))),soft) +-MULTILIB_OSDIRNAMES = \ +- ../lib32$(call if_multiarch,:mips64$(MIPS_EL)-linux-gnuabin32$(MIPS_SOFT)) \ +- ../lib$(call if_multiarch,:mips$(MIPS_EL)-linux-gnu$(MIPS_SOFT)) \ +- ../lib64$(call if_multiarch,:mips64$(MIPS_EL)-linux-gnuabi64$(MIPS_SOFT)) ++MULTILIB_DIRNAMES = . . . ++MULTILIB_OSDIRNAMES = ../$(shell basename $(base_libdir)) ../$(shell basename $(base_libdir)) ../$(shell basename $(base_libdir)) ++ +diff --git a/gcc/config/riscv/t-linux b/gcc/config/riscv/t-linux +index 216d2776a18..e4d817621fc 100644 +--- a/gcc/config/riscv/t-linux ++++ b/gcc/config/riscv/t-linux +@@ -1,3 +1,5 @@ + # Only XLEN and ABI affect Linux multilib dir names, e.g. /lib32/ilp32d/ +-MULTILIB_DIRNAMES := $(patsubst rv32%,lib32,$(patsubst rv64%,lib64,$(MULTILIB_DIRNAMES))) +-MULTILIB_OSDIRNAMES := $(patsubst lib%,../lib%,$(MULTILIB_DIRNAMES)) ++#MULTILIB_DIRNAMES := $(patsubst rv32%,lib32,$(patsubst rv64%,lib64,$(MULTILIB_DIRNAMES))) ++MULTILIB_DIRNAMES := . . ++#MULTILIB_OSDIRNAMES := $(patsubst lib%,../lib%,$(MULTILIB_DIRNAMES)) ++MULTILIB_OSDIRNAMES := ../$(shell basename $(base_libdir)) ../$(shell basename $(base_libdir)) +diff --git a/gcc/config/rs6000/t-linux64 b/gcc/config/rs6000/t-linux64 +index f3c6e2be1d9..bd0393155fa 100644 +--- a/gcc/config/rs6000/t-linux64 ++++ b/gcc/config/rs6000/t-linux64 +@@ -26,10 +26,9 @@ + # MULTILIB_OSDIRNAMES according to what is found on the target. + + MULTILIB_OPTIONS := m64/m32 +-MULTILIB_DIRNAMES := 64 32 ++MULTILIB_DIRNAMES := . . + MULTILIB_EXTRA_OPTS := +-MULTILIB_OSDIRNAMES := m64=../lib64$(call if_multiarch,:powerpc64-linux-gnu) +-MULTILIB_OSDIRNAMES += m32=$(if $(wildcard $(shell echo $(SYSTEM_HEADER_DIR))/../../usr/lib32),../lib32,../lib)$(call if_multiarch,:powerpc-linux-gnu) ++MULTILIB_OSDIRNAMES := ../$(shell basename $(base_libdir)) ../$(shell basename $(base_libdir)) + + rs6000-linux.o: $(srcdir)/config/rs6000/rs6000-linux.c + $(COMPILE) $< +-- +2.22.1 + diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-9.2/0005-optional-libstdc.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-9.2/0005-optional-libstdc.patch new file mode 100644 index 00000000..f4fac914 --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-9.2/0005-optional-libstdc.patch @@ -0,0 +1,125 @@ +From e7e504f4a90cfa395e7f8ee779f8c3ed687802ca Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Fri, 29 Mar 2013 09:12:56 +0400 +Subject: [PATCH 05/36] optional libstdc + +gcc-runtime builds libstdc++ separately from gcc-cross-*. Its configure tests using g++ +will not run correctly since by default the linker will try to link against libstdc++ +which shouldn't exist yet. We need an option to disable -lstdc++ +option whilst leaving -lc, -lgcc and other automatic library dependencies added by gcc +driver. This patch adds such an option which only disables the -lstdc++. + +A "standard" gcc build uses xgcc and hence avoids this. We should ask upstream how to +do this officially, the likely answer is don't build libstdc++ separately. + +RP 29/6/10 + +Signed-off-by: Khem Raj + +Upstream-Status: Inappropriate [embedded specific] +--- + gcc/c-family/c.opt | 4 ++++ + gcc/cp/g++spec.c | 1 + + gcc/doc/invoke.texi | 32 +++++++++++++++++++++++++++++++- + gcc/gcc.c | 1 + + 4 files changed, 37 insertions(+), 1 deletion(-) + +diff --git a/gcc/c-family/c.opt b/gcc/c-family/c.opt +index 916cc67b453..41619fa591c 100644 +--- a/gcc/c-family/c.opt ++++ b/gcc/c-family/c.opt +@@ -1952,6 +1952,10 @@ nostdinc++ + C++ ObjC++ + Do not search standard system include directories for C++. + ++nostdlib++ ++Driver ++Do not link standard C++ runtime library ++ + o + C ObjC C++ ObjC++ Joined Separate + ; Documented in common.opt +diff --git a/gcc/cp/g++spec.c b/gcc/cp/g++spec.c +index 6c4574a837d..0e2657f00ee 100644 +--- a/gcc/cp/g++spec.c ++++ b/gcc/cp/g++spec.c +@@ -137,6 +137,7 @@ lang_specific_driver (struct cl_decoded_option **in_decoded_options, + switch (decoded_options[i].opt_index) + { + case OPT_nostdlib: ++ case OPT_nostdlib__: + case OPT_nodefaultlibs: + library = -1; + break; +diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi +index 09414d8cc05..a43969bc9f0 100644 +--- a/gcc/doc/invoke.texi ++++ b/gcc/doc/invoke.texi +@@ -228,6 +228,9 @@ in the following sections. + -fno-weak -nostdinc++ @gol + -fvisibility-inlines-hidden @gol + -fvisibility-ms-compat @gol ++-fvtable-verify=@r{[}std@r{|}preinit@r{|}none@r{]} @gol ++-fvtv-counts -fvtv-debug @gol ++-nostdlib++ @gol + -fext-numeric-literals @gol + -Wabi=@var{n} -Wabi-tag -Wconversion-null -Wctor-dtor-privacy @gol + -Wdelete-non-virtual-dtor -Wdeprecated-copy -Wdeprecated-copy-dtor @gol +@@ -538,7 +541,7 @@ Objective-C and Objective-C++ Dialects}. + -pie -pthread -r -rdynamic @gol + -s -static -static-pie -static-libgcc -static-libstdc++ @gol + -static-libasan -static-libtsan -static-liblsan -static-libubsan @gol +--shared -shared-libgcc -symbolic @gol ++-shared -shared-libgcc -symbolic -nostdlib++ @gol + -T @var{script} -Wl,@var{option} -Xlinker @var{option} @gol + -u @var{symbol} -z @var{keyword}} + +@@ -13312,6 +13315,33 @@ Specify that the program entry point is @var{entry}. The argument is + interpreted by the linker; the GNU linker accepts either a symbol name + or an address. + ++@item -nostdlib++ ++@opindex nostdlib++ ++Do not use the standard system C++ runtime libraries when linking. ++Only the libraries you specify will be passed to the linker. ++ ++@cindex @option{-lgcc}, use with @option{-nostdlib} ++@cindex @option{-nostdlib} and unresolved references ++@cindex unresolved references and @option{-nostdlib} ++@cindex @option{-lgcc}, use with @option{-nodefaultlibs} ++@cindex @option{-nodefaultlibs} and unresolved references ++@cindex unresolved references and @option{-nodefaultlibs} ++One of the standard libraries bypassed by @option{-nostdlib} and ++@option{-nodefaultlibs} is @file{libgcc.a}, a library of internal subroutines ++which GCC uses to overcome shortcomings of particular machines, or special ++needs for some languages. ++(@xref{Interface,,Interfacing to GCC Output,gccint,GNU Compiler ++Collection (GCC) Internals}, ++for more discussion of @file{libgcc.a}.) ++In most cases, you need @file{libgcc.a} even when you want to avoid ++other standard libraries. In other words, when you specify @option{-nostdlib} ++or @option{-nodefaultlibs} you should usually specify @option{-lgcc} as well. ++This ensures that you have no unresolved references to internal GCC ++library subroutines. ++(An example of such an internal subroutine is @code{__main}, used to ensure C++ ++constructors are called; @pxref{Collect2,,@code{collect2}, gccint, ++GNU Compiler Collection (GCC) Internals}.) ++ + @item -pie + @opindex pie + Produce a dynamically linked position independent executable on targets +diff --git a/gcc/gcc.c b/gcc/gcc.c +index a2601a6bb06..cd6c6fc95db 100644 +--- a/gcc/gcc.c ++++ b/gcc/gcc.c +@@ -1052,6 +1052,7 @@ proper position among the other output files. */ + %(mflib) " STACK_SPLIT_SPEC "\ + %{fprofile-arcs|fprofile-generate*|coverage:-lgcov} " SANITIZER_SPEC " \ + %{!nostdlib:%{!r:%{!nodefaultlibs:%(link_ssp) %(link_gcc_c_sequence)}}}\ ++ %{!nostdlib++:}\ + %{!nostdlib:%{!r:%{!nostartfiles:%E}}} %{T*} \n%(post_link) }}}}}}" + #endif + +-- +2.22.1 + diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-9.2/0006-COLLECT_GCC_OPTIONS.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-9.2/0006-COLLECT_GCC_OPTIONS.patch new file mode 100644 index 00000000..9f7e603f --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-9.2/0006-COLLECT_GCC_OPTIONS.patch @@ -0,0 +1,38 @@ +From b9260cd3ac26b0302824ed466a548464c864d95f Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Fri, 29 Mar 2013 09:16:28 +0400 +Subject: [PATCH 06/36] COLLECT_GCC_OPTIONS + +This patch adds --sysroot into COLLECT_GCC_OPTIONS which is used to +invoke collect2. + +Signed-off-by: Khem Raj + +Upstream-Status: Pending +--- + gcc/gcc.c | 9 +++++++++ + 1 file changed, 9 insertions(+) + +diff --git a/gcc/gcc.c b/gcc/gcc.c +index cd6c6fc95db..7da9c5d457b 100644 +--- a/gcc/gcc.c ++++ b/gcc/gcc.c +@@ -4804,6 +4804,15 @@ set_collect_gcc_options (void) + sizeof ("COLLECT_GCC_OPTIONS=") - 1); + + first_time = TRUE; ++#ifdef HAVE_LD_SYSROOT ++ if (target_system_root_changed && target_system_root) ++ { ++ obstack_grow (&collect_obstack, "'--sysroot=", sizeof("'--sysroot=")-1); ++ obstack_grow (&collect_obstack, target_system_root,strlen(target_system_root)); ++ obstack_grow (&collect_obstack, "'", 1); ++ first_time = FALSE; ++ } ++#endif + for (i = 0; (int) i < n_switches; i++) + { + const char *const *args; +-- +2.22.1 + diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-9.2/0007-Use-the-defaults.h-in-B-instead-of-S-and-t-oe-in-B.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-9.2/0007-Use-the-defaults.h-in-B-instead-of-S-and-t-oe-in-B.patch new file mode 100644 index 00000000..28f8fc26 --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-9.2/0007-Use-the-defaults.h-in-B-instead-of-S-and-t-oe-in-B.patch @@ -0,0 +1,96 @@ +From 88e728dad53d48c4a19f15e19f66fd23f4820b4a Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Fri, 29 Mar 2013 09:17:25 +0400 +Subject: [PATCH 07/36] Use the defaults.h in ${B} instead of ${S}, and t-oe in + ${B} + +Use the defaults.h in ${B} instead of ${S}, and t-oe in ${B}, so that +the source can be shared between gcc-cross-initial, +gcc-cross-intermediate, gcc-cross, gcc-runtime, and also the sdk build. + +Signed-off-by: Khem Raj + +Upstream-Status: Pending + +While compiling gcc-crosssdk-initial-x86_64 on some host, there is +occasionally failure that test the existance of default.h doesn't +work, the reason is tm_include_list='** defaults.h' rather than +tm_include_list='** ./defaults.h' + +So we add the test condition for this situation. +Signed-off-by: Hongxu Jia +--- + gcc/Makefile.in | 2 +- + gcc/configure | 4 ++-- + gcc/configure.ac | 4 ++-- + gcc/mkconfig.sh | 4 ++-- + 4 files changed, 7 insertions(+), 7 deletions(-) + +diff --git a/gcc/Makefile.in b/gcc/Makefile.in +index 5f43d9de00e..41f0f592ff4 100644 +--- a/gcc/Makefile.in ++++ b/gcc/Makefile.in +@@ -540,7 +540,7 @@ TARGET_SYSTEM_ROOT = @TARGET_SYSTEM_ROOT@ + TARGET_SYSTEM_ROOT_DEFINE = @TARGET_SYSTEM_ROOT_DEFINE@ + + xmake_file=@xmake_file@ +-tmake_file=@tmake_file@ ++tmake_file=@tmake_file@ ./t-oe + TM_ENDIAN_CONFIG=@TM_ENDIAN_CONFIG@ + TM_MULTILIB_CONFIG=@TM_MULTILIB_CONFIG@ + TM_MULTILIB_EXCEPTIONS_CONFIG=@TM_MULTILIB_EXCEPTIONS_CONFIG@ +diff --git a/gcc/configure b/gcc/configure +index a6ea3a8a84c..e3bcf8abe9a 100755 +--- a/gcc/configure ++++ b/gcc/configure +@@ -12341,8 +12341,8 @@ for f in $tm_file; do + tm_include_list="${tm_include_list} $f" + ;; + defaults.h ) +- tm_file_list="${tm_file_list} \$(srcdir)/$f" +- tm_include_list="${tm_include_list} $f" ++ tm_file_list="${tm_file_list} ./$f" ++ tm_include_list="${tm_include_list} ./$f" + ;; + * ) + tm_file_list="${tm_file_list} \$(srcdir)/config/$f" +diff --git a/gcc/configure.ac b/gcc/configure.ac +index d42bbd4fd1c..2ebc377a74d 100644 +--- a/gcc/configure.ac ++++ b/gcc/configure.ac +@@ -1968,8 +1968,8 @@ for f in $tm_file; do + tm_include_list="${tm_include_list} $f" + ;; + defaults.h ) +- tm_file_list="${tm_file_list} \$(srcdir)/$f" +- tm_include_list="${tm_include_list} $f" ++ tm_file_list="${tm_file_list} ./$f" ++ tm_include_list="${tm_include_list} ./$f" + ;; + * ) + tm_file_list="${tm_file_list} \$(srcdir)/config/$f" +diff --git a/gcc/mkconfig.sh b/gcc/mkconfig.sh +index 308b87d0cc1..19068cbc24a 100644 +--- a/gcc/mkconfig.sh ++++ b/gcc/mkconfig.sh +@@ -77,7 +77,7 @@ if [ -n "$HEADERS" ]; then + if [ $# -ge 1 ]; then + echo '#ifdef IN_GCC' >> ${output}T + for file in "$@"; do +- if test x"$file" = x"defaults.h"; then ++ if test x"$file" = x"./defaults.h" -o x"$file" = x"defaults.h"; then + postpone_defaults_h="yes" + else + echo "# include \"$file\"" >> ${output}T +@@ -106,7 +106,7 @@ esac + + # If we postponed including defaults.h, add the #include now. + if test x"$postpone_defaults_h" = x"yes"; then +- echo "# include \"defaults.h\"" >> ${output}T ++ echo "# include \"./defaults.h\"" >> ${output}T + fi + + # Add multiple inclusion protection guard, part two. +-- +2.22.1 + diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-9.2/0008-fortran-cross-compile-hack.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-9.2/0008-fortran-cross-compile-hack.patch new file mode 100644 index 00000000..24e3abe0 --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-9.2/0008-fortran-cross-compile-hack.patch @@ -0,0 +1,46 @@ +From 010f09f2963ede24e85134e5fab2fa627a9afa05 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Fri, 29 Mar 2013 09:20:01 +0400 +Subject: [PATCH 08/36] fortran cross-compile hack. + +* Fortran would have searched for arm-angstrom-gnueabi-gfortran but would have used +used gfortan. For gcc_4.2.2.bb we want to use the gfortran compiler from our cross +directory. + +Signed-off-by: Khem Raj + +Upstream-Status: Inappropriate [embedded specific] +--- + libgfortran/configure | 2 +- + libgfortran/configure.ac | 2 +- + 2 files changed, 2 insertions(+), 2 deletions(-) + +diff --git a/libgfortran/configure b/libgfortran/configure +index 60867b93d0e..3fc9fca5b7b 100755 +--- a/libgfortran/configure ++++ b/libgfortran/configure +@@ -13071,7 +13071,7 @@ esac + + # We need gfortran to compile parts of the library + #AC_PROG_FC(gfortran) +-FC="$GFORTRAN" ++#FC="$GFORTRAN" + ac_ext=${ac_fc_srcext-f} + ac_compile='$FC -c $FCFLAGS $ac_fcflags_srcext conftest.$ac_ext >&5' + ac_link='$FC -o conftest$ac_exeext $FCFLAGS $LDFLAGS $ac_fcflags_srcext conftest.$ac_ext $LIBS >&5' +diff --git a/libgfortran/configure.ac b/libgfortran/configure.ac +index 7cfce28ab69..6cd515ee1a4 100644 +--- a/libgfortran/configure.ac ++++ b/libgfortran/configure.ac +@@ -250,7 +250,7 @@ AC_SUBST(enable_static) + + # We need gfortran to compile parts of the library + #AC_PROG_FC(gfortran) +-FC="$GFORTRAN" ++#FC="$GFORTRAN" + AC_PROG_FC(gfortran) + + # extra LD Flags which are required for targets +-- +2.22.1 + diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-9.2/0009-cpp-honor-sysroot.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-9.2/0009-cpp-honor-sysroot.patch new file mode 100644 index 00000000..6af0a012 --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-9.2/0009-cpp-honor-sysroot.patch @@ -0,0 +1,54 @@ +From 45e9cd39d9c62454d46b9e9473a0c1034ceca15d Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Fri, 29 Mar 2013 09:22:00 +0400 +Subject: [PATCH 09/36] cpp: honor sysroot. + +Currently, if the gcc toolchain is relocated and installed from sstate, then you try and compile +preprocessed source (.i or .ii files), the compiler will try and access the builtin sysroot location +rather than the --sysroot option specified on the commandline. If access to that directory is +permission denied (unreadable), gcc will error. + +This happens when ccache is in use due to the fact it uses preprocessed source files. + +The fix below adds %I to the cpp-output spec macro so the default substitutions for -iprefix, +-isystem, -isysroot happen and the correct sysroot is used. + +[YOCTO #2074] + +RP 2012/04/13 + +Signed-off-by: Khem Raj + +Upstream-Status: Pending +--- + gcc/cp/lang-specs.h | 2 +- + gcc/gcc.c | 2 +- + 2 files changed, 2 insertions(+), 2 deletions(-) + +diff --git a/gcc/cp/lang-specs.h b/gcc/cp/lang-specs.h +index c6e42eda283..e1ddf066467 100644 +--- a/gcc/cp/lang-specs.h ++++ b/gcc/cp/lang-specs.h +@@ -66,5 +66,5 @@ along with GCC; see the file COPYING3. If not see + {".ii", "@c++-cpp-output", 0, 0, 0}, + {"@c++-cpp-output", + "%{!E:%{!M:%{!MM:" +- " cc1plus -fpreprocessed %i %(cc1_options) %2" ++ " cc1plus -fpreprocessed %i %I %(cc1_options) %2" + " %{!fsyntax-only:%(invoke_as)}}}}", 0, 0, 0}, +diff --git a/gcc/gcc.c b/gcc/gcc.c +index 7da9c5d457b..4e7c45b268c 100644 +--- a/gcc/gcc.c ++++ b/gcc/gcc.c +@@ -1349,7 +1349,7 @@ static const struct compiler default_compilers[] = + %W{o*:--output-pch=%*}}%V}}}}}}}", 0, 0, 0}, + {".i", "@cpp-output", 0, 0, 0}, + {"@cpp-output", +- "%{!M:%{!MM:%{!E:cc1 -fpreprocessed %i %(cc1_options) %{!fsyntax-only:%(invoke_as)}}}}", 0, 0, 0}, ++ "%{!M:%{!MM:%{!E:cc1 -fpreprocessed %i %I %(cc1_options) %{!fsyntax-only:%(invoke_as)}}}}", 0, 0, 0}, + {".s", "@assembler", 0, 0, 0}, + {"@assembler", + "%{!M:%{!MM:%{!E:%{!S:as %(asm_debug) %(asm_options) %i %A }}}}", 0, 0, 0}, +-- +2.22.1 + diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-9.2/0010-MIPS64-Default-to-N64-ABI.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-9.2/0010-MIPS64-Default-to-N64-ABI.patch new file mode 100644 index 00000000..bc0c6d5b --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-9.2/0010-MIPS64-Default-to-N64-ABI.patch @@ -0,0 +1,57 @@ +From 1ff4108d707b34e399e9dc418ad1ecc42f72676d Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Fri, 29 Mar 2013 09:23:08 +0400 +Subject: [PATCH 10/36] MIPS64: Default to N64 ABI + +MIPS64 defaults to n32 ABI, this patch makes it +so that it defaults to N64 ABI + +Signed-off-by: Khem Raj + +Upstream-Status: Inappropriate [OE config specific] +--- + gcc/config.gcc | 10 +++++----- + 1 file changed, 5 insertions(+), 5 deletions(-) + +diff --git a/gcc/config.gcc b/gcc/config.gcc +index ddd3b8f4d9d..fdfc0bd3e82 100644 +--- a/gcc/config.gcc ++++ b/gcc/config.gcc +@@ -2282,29 +2282,29 @@ mips*-*-linux*) # Linux MIPS, either endian. + default_mips_arch=mips32 + ;; + mips64el-st-linux-gnu) +- default_mips_abi=n32 ++ default_mips_abi=64 + tm_file="${tm_file} mips/st.h" + tmake_file="${tmake_file} mips/t-st" + enable_mips_multilibs="yes" + ;; + mips64octeon*-*-linux*) +- default_mips_abi=n32 ++ default_mips_abi=64 + tm_defines="${tm_defines} MIPS_CPU_STRING_DEFAULT=\\\"octeon\\\"" + target_cpu_default=MASK_SOFT_FLOAT_ABI + enable_mips_multilibs="yes" + ;; + mipsisa64r6*-*-linux*) +- default_mips_abi=n32 ++ default_mips_abi=64 + default_mips_arch=mips64r6 + enable_mips_multilibs="yes" + ;; + mipsisa64r2*-*-linux*) +- default_mips_abi=n32 ++ default_mips_abi=64 + default_mips_arch=mips64r2 + enable_mips_multilibs="yes" + ;; + mips64*-*-linux* | mipsisa64*-*-linux*) +- default_mips_abi=n32 ++ default_mips_abi=64 + enable_mips_multilibs="yes" + ;; + esac +-- +2.22.1 + diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-9.2/0011-Define-GLIBC_DYNAMIC_LINKER-and-UCLIBC_DYNAMIC_LINKE.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-9.2/0011-Define-GLIBC_DYNAMIC_LINKER-and-UCLIBC_DYNAMIC_LINKE.patch new file mode 100644 index 00000000..66fb24d4 --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-9.2/0011-Define-GLIBC_DYNAMIC_LINKER-and-UCLIBC_DYNAMIC_LINKE.patch @@ -0,0 +1,243 @@ +From 72fc3975bcd720b2f8040fa87cd23d3db4c5975a Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Fri, 29 Mar 2013 09:24:50 +0400 +Subject: [PATCH] Define GLIBC_DYNAMIC_LINKER and UCLIBC_DYNAMIC_LINKER + relative to SYSTEMLIBS_DIR + +This patch defines GLIBC_DYNAMIC_LINKER and UCLIBC_DYNAMIC_LINKER +relative to SYSTEMLIBS_DIR which can be set in generated headers +This breaks the assumption of hardcoded multilib in gcc +Change is only for the supported architectures in OE including +SH, sparc, alpha for possible future support (if any) + +Removes the do_headerfix task in metadata + +Signed-off-by: Khem Raj + +Upstream-Status: Inappropriate [OE configuration] +--- + gcc/config/alpha/linux-elf.h | 4 ++-- + gcc/config/arm/linux-eabi.h | 4 ++-- + gcc/config/arm/linux-elf.h | 2 +- + gcc/config/i386/linux.h | 2 +- + gcc/config/i386/linux64.h | 6 +++--- + gcc/config/linux.h | 8 ++++---- + gcc/config/mips/linux.h | 12 ++++++------ + gcc/config/riscv/linux.h | 2 +- + gcc/config/rs6000/linux64.h | 15 +++++---------- + gcc/config/sh/linux.h | 2 +- + gcc/config/sparc/linux.h | 2 +- + gcc/config/sparc/linux64.h | 4 ++-- + 12 files changed, 29 insertions(+), 34 deletions(-) + +diff --git a/gcc/config/alpha/linux-elf.h b/gcc/config/alpha/linux-elf.h +index 824861befec..6afacce3292 100644 +--- a/gcc/config/alpha/linux-elf.h ++++ b/gcc/config/alpha/linux-elf.h +@@ -23,8 +23,8 @@ along with GCC; see the file COPYING3. If not see + #define EXTRA_SPECS \ + { "elf_dynamic_linker", ELF_DYNAMIC_LINKER }, + +-#define GLIBC_DYNAMIC_LINKER "/lib/ld-linux.so.2" +-#define UCLIBC_DYNAMIC_LINKER "/lib/ld-uClibc.so.0" ++#define GLIBC_DYNAMIC_LINKER SYSTEMLIBS_DIR "ld-linux.so.2" ++#define UCLIBC_DYNAMIC_LINKER SYSTEMLIBS_DIR "ld-uClibc.so.0" + #if DEFAULT_LIBC == LIBC_UCLIBC + #define CHOOSE_DYNAMIC_LINKER(G, U) "%{mglibc:" G ";:" U "}" + #elif DEFAULT_LIBC == LIBC_GLIBC +diff --git a/gcc/config/arm/linux-eabi.h b/gcc/config/arm/linux-eabi.h +index 66ec0ea3980..e4ade2e2ab0 100644 +--- a/gcc/config/arm/linux-eabi.h ++++ b/gcc/config/arm/linux-eabi.h +@@ -65,8 +65,8 @@ + GLIBC_DYNAMIC_LINKER_DEFAULT and TARGET_DEFAULT_FLOAT_ABI. */ + + #undef GLIBC_DYNAMIC_LINKER +-#define GLIBC_DYNAMIC_LINKER_SOFT_FLOAT "/lib/ld-linux.so.3" +-#define GLIBC_DYNAMIC_LINKER_HARD_FLOAT "/lib/ld-linux-armhf.so.3" ++#define GLIBC_DYNAMIC_LINKER_SOFT_FLOAT SYSTEMLIBS_DIR "ld-linux.so.3" ++#define GLIBC_DYNAMIC_LINKER_HARD_FLOAT SYSTEMLIBS_DIR "ld-linux-armhf.so.3" + #define GLIBC_DYNAMIC_LINKER_DEFAULT GLIBC_DYNAMIC_LINKER_SOFT_FLOAT + + #define GLIBC_DYNAMIC_LINKER \ +diff --git a/gcc/config/arm/linux-elf.h b/gcc/config/arm/linux-elf.h +index 9a360defd21..98f6e960b64 100644 +--- a/gcc/config/arm/linux-elf.h ++++ b/gcc/config/arm/linux-elf.h +@@ -60,7 +60,7 @@ + + #define LIBGCC_SPEC "%{mfloat-abi=soft*:-lfloat} -lgcc" + +-#define GLIBC_DYNAMIC_LINKER "/lib/ld-linux.so.2" ++#define GLIBC_DYNAMIC_LINKER SYSTEMLIBS_DIR "ld-linux.so.2" + + #define LINUX_TARGET_LINK_SPEC "%{h*} \ + %{static:-Bstatic} \ +diff --git a/gcc/config/i386/linux.h b/gcc/config/i386/linux.h +index 9a6e2d99896..31efbb73016 100644 +--- a/gcc/config/i386/linux.h ++++ b/gcc/config/i386/linux.h +@@ -20,7 +20,7 @@ along with GCC; see the file COPYING3. If not see + . */ + + #define GNU_USER_LINK_EMULATION "elf_i386" +-#define GLIBC_DYNAMIC_LINKER "/lib/ld-linux.so.2" ++#define GLIBC_DYNAMIC_LINKER SYSTEMLIBS_DIR "ld-linux.so.2" + + #undef MUSL_DYNAMIC_LINKER + #define MUSL_DYNAMIC_LINKER "/lib/ld-musl-i386.so.1" +diff --git a/gcc/config/i386/linux64.h b/gcc/config/i386/linux64.h +index c08221c4210..dbb474d792b 100644 +--- a/gcc/config/i386/linux64.h ++++ b/gcc/config/i386/linux64.h +@@ -27,9 +27,9 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see + #define GNU_USER_LINK_EMULATION64 "elf_x86_64" + #define GNU_USER_LINK_EMULATIONX32 "elf32_x86_64" + +-#define GLIBC_DYNAMIC_LINKER32 "/lib/ld-linux.so.2" +-#define GLIBC_DYNAMIC_LINKER64 "/lib64/ld-linux-x86-64.so.2" +-#define GLIBC_DYNAMIC_LINKERX32 "/libx32/ld-linux-x32.so.2" ++#define GLIBC_DYNAMIC_LINKER32 SYSTEMLIBS_DIR "ld-linux.so.2" ++#define GLIBC_DYNAMIC_LINKER64 SYSTEMLIBS_DIR "ld-linux-x86-64.so.2" ++#define GLIBC_DYNAMIC_LINKERX32 SYSTEMLIBS_DIR "ld-linux-x32.so.2" + + #undef MUSL_DYNAMIC_LINKER32 + #define MUSL_DYNAMIC_LINKER32 "/lib/ld-musl-i386.so.1" +diff --git a/gcc/config/linux.h b/gcc/config/linux.h +index c3c4a219e67..4b05d8e93d1 100644 +--- a/gcc/config/linux.h ++++ b/gcc/config/linux.h +@@ -94,10 +94,10 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see + GLIBC_DYNAMIC_LINKER must be defined for each target using them, or + GLIBC_DYNAMIC_LINKER32 and GLIBC_DYNAMIC_LINKER64 for targets + supporting both 32-bit and 64-bit compilation. */ +-#define UCLIBC_DYNAMIC_LINKER "/lib/ld-uClibc.so.0" +-#define UCLIBC_DYNAMIC_LINKER32 "/lib/ld-uClibc.so.0" +-#define UCLIBC_DYNAMIC_LINKER64 "/lib/ld64-uClibc.so.0" +-#define UCLIBC_DYNAMIC_LINKERX32 "/lib/ldx32-uClibc.so.0" ++#define UCLIBC_DYNAMIC_LINKER SYSTEMLIBS_DIR "ld-uClibc.so.0" ++#define UCLIBC_DYNAMIC_LINKER32 SYSTEMLIBS_DIR "ld-uClibc.so.0" ++#define UCLIBC_DYNAMIC_LINKER64 SYSTEMLIBS_DIR "ld64-uClibc.so.0" ++#define UCLIBC_DYNAMIC_LINKERX32 SYSTEMLIBS_DIR "ldx32-uClibc.so.0" + #define BIONIC_DYNAMIC_LINKER "/system/bin/linker" + #define BIONIC_DYNAMIC_LINKER32 "/system/bin/linker" + #define BIONIC_DYNAMIC_LINKER64 "/system/bin/linker64" +diff --git a/gcc/config/mips/linux.h b/gcc/config/mips/linux.h +index 6f79ac9c01a..25de96f9561 100644 +--- a/gcc/config/mips/linux.h ++++ b/gcc/config/mips/linux.h +@@ -22,20 +22,20 @@ along with GCC; see the file COPYING3. If not see + #define GNU_USER_LINK_EMULATIONN32 "elf32%{EB:b}%{EL:l}tsmipn32" + + #define GLIBC_DYNAMIC_LINKER32 \ +- "%{mnan=2008:/lib/ld-linux-mipsn8.so.1;:/lib/ld.so.1}" ++ "%{mnan=2008:" SYSTEMLIBS_DIR "ld-linux-mipsn8.so.1;:" SYSTEMLIBS_DIR "ld.so.1}" + #define GLIBC_DYNAMIC_LINKER64 \ +- "%{mnan=2008:/lib64/ld-linux-mipsn8.so.1;:/lib64/ld.so.1}" ++ "%{mnan=2008:" SYSTEMLIBS_DIR "ld-linux-mipsn8.so.1;:" SYSTEMLIBS_DIR "ld.so.1}" + #define GLIBC_DYNAMIC_LINKERN32 \ +- "%{mnan=2008:/lib32/ld-linux-mipsn8.so.1;:/lib32/ld.so.1}" ++ "%{mnan=2008:" SYSTEMLIBS_DIR "ld-linux-mipsn8.so.1;:" SYSTEMLIBS_DIR "ld.so.1}" + + #undef UCLIBC_DYNAMIC_LINKER32 + #define UCLIBC_DYNAMIC_LINKER32 \ +- "%{mnan=2008:/lib/ld-uClibc-mipsn8.so.0;:/lib/ld-uClibc.so.0}" ++ "%{mnan=2008:" SYSTEMLIBS_DIR "ld-uClibc-mipsn8.so.0;:" SYSTEMLIBS_DIR "ld-uClibc.so.0}" + #undef UCLIBC_DYNAMIC_LINKER64 + #define UCLIBC_DYNAMIC_LINKER64 \ +- "%{mnan=2008:/lib/ld64-uClibc-mipsn8.so.0;:/lib/ld64-uClibc.so.0}" ++ "%{mnan=2008:" SYSTEMLIBS_DIR "ld64-uClibc-mipsn8.so.0;:" SYSTEMLIBS_DIR "ld64-uClibc.so.0}" + #define UCLIBC_DYNAMIC_LINKERN32 \ +- "%{mnan=2008:/lib32/ld-uClibc-mipsn8.so.0;:/lib32/ld-uClibc.so.0}" ++ "%{mnan=2008:" SYSTEMLIBS_DIR "ld-uClibc-mipsn8.so.0;:" SYSTEMLIBS_DIR "ld-uClibc.so.0}" + + #undef MUSL_DYNAMIC_LINKER32 + #define MUSL_DYNAMIC_LINKER32 \ +diff --git a/gcc/config/riscv/linux.h b/gcc/config/riscv/linux.h +index 58dd18b89f3..112ba9cd764 100644 +--- a/gcc/config/riscv/linux.h ++++ b/gcc/config/riscv/linux.h +@@ -22,7 +22,7 @@ along with GCC; see the file COPYING3. If not see + GNU_USER_TARGET_OS_CPP_BUILTINS(); \ + } while (0) + +-#define GLIBC_DYNAMIC_LINKER "/lib/ld-linux-riscv" XLEN_SPEC "-" ABI_SPEC ".so.1" ++#define GLIBC_DYNAMIC_LINKER SYSTEMLIBS_DIR "ld-linux-riscv" XLEN_SPEC "-" ABI_SPEC ".so.1" + + #define MUSL_ABI_SUFFIX \ + "%{mabi=ilp32:-sf}" \ +diff --git a/gcc/config/rs6000/linux64.h b/gcc/config/rs6000/linux64.h +index 9946d3fed94..45a9a7cae59 100644 +--- a/gcc/config/rs6000/linux64.h ++++ b/gcc/config/rs6000/linux64.h +@@ -423,24 +423,19 @@ extern int dot_symbols; + #undef LINK_OS_DEFAULT_SPEC + #define LINK_OS_DEFAULT_SPEC "%(link_os_linux)" + +-#define GLIBC_DYNAMIC_LINKER32 "%(dynamic_linker_prefix)/lib/ld.so.1" +- ++#define GLIBC_DYNAMIC_LINKER32 SYSTEMLIBS_DIR "ld.so.1" + #ifdef LINUX64_DEFAULT_ABI_ELFv2 +-#define GLIBC_DYNAMIC_LINKER64 \ +-"%{mabi=elfv1:%(dynamic_linker_prefix)/lib64/ld64.so.1;" \ +-":%(dynamic_linker_prefix)/lib64/ld64.so.2}" ++#define GLIBC_DYNAMIC_LINKER64 "%{mabi=elfv1:" SYSTEMLIBS_DIR "ld64.so.1;:" SYSTEMLIBS_DIR "ld64.so.2}" + #else +-#define GLIBC_DYNAMIC_LINKER64 \ +-"%{mabi=elfv2:%(dynamic_linker_prefix)/lib64/ld64.so.2;" \ +-":%(dynamic_linker_prefix)/lib64/ld64.so.1}" ++#define GLIBC_DYNAMIC_LINKER64 "%{mabi=elfv2:" SYSTEMLIBS_DIR "ld64.so.2;:" SYSTEMLIBS_DIR "ld64.so.1}" + #endif + + #undef MUSL_DYNAMIC_LINKER32 + #define MUSL_DYNAMIC_LINKER32 \ +- "/lib/ld-musl-powerpc" MUSL_DYNAMIC_LINKER_E "%{msoft-float:-sf}.so.1" ++ SYSTEMLIBS_DIR "ld-musl-powerpc" MUSL_DYNAMIC_LINKER_E "%{msoft-float:-sf}.so.1" + #undef MUSL_DYNAMIC_LINKER64 + #define MUSL_DYNAMIC_LINKER64 \ +- "/lib/ld-musl-powerpc64" MUSL_DYNAMIC_LINKER_E "%{msoft-float:-sf}.so.1" ++ SYSTEMLIBS_DIR "ld-musl-powerpc64" MUSL_DYNAMIC_LINKER_E "%{msoft-float:-sf}.so.1" + + #undef DEFAULT_ASM_ENDIAN + #if (TARGET_DEFAULT & MASK_LITTLE_ENDIAN) +diff --git a/gcc/config/sh/linux.h b/gcc/config/sh/linux.h +index c9897b7aca5..82f275319cc 100644 +--- a/gcc/config/sh/linux.h ++++ b/gcc/config/sh/linux.h +@@ -64,7 +64,7 @@ along with GCC; see the file COPYING3. If not see + "/lib/ld-musl-sh" MUSL_DYNAMIC_LINKER_E MUSL_DYNAMIC_LINKER_FP \ + "%{mfdpic:-fdpic}.so.1" + +-#define GLIBC_DYNAMIC_LINKER "/lib/ld-linux.so.2" ++#define GLIBC_DYNAMIC_LINKER SYSTEMLIBS_DIR "ld-linux.so.2" + + #undef SUBTARGET_LINK_EMUL_SUFFIX + #define SUBTARGET_LINK_EMUL_SUFFIX "%{mfdpic:_fd;:_linux}" +diff --git a/gcc/config/sparc/linux.h b/gcc/config/sparc/linux.h +index 08476f1d94d..80440e712ad 100644 +--- a/gcc/config/sparc/linux.h ++++ b/gcc/config/sparc/linux.h +@@ -84,7 +84,7 @@ extern const char *host_detect_local_cpu (int argc, const char **argv); + When the -shared link option is used a final link is not being + done. */ + +-#define GLIBC_DYNAMIC_LINKER "/lib/ld-linux.so.2" ++#define GLIBC_DYNAMIC_LINKER SYSTEMLIBS_DIR "ld-linux.so.2" + + #undef LINK_SPEC + #define LINK_SPEC "-m elf32_sparc %{shared:-shared} \ +diff --git a/gcc/config/sparc/linux64.h b/gcc/config/sparc/linux64.h +index 789d1df4bd5..b920c680fb1 100644 +--- a/gcc/config/sparc/linux64.h ++++ b/gcc/config/sparc/linux64.h +@@ -84,8 +84,8 @@ along with GCC; see the file COPYING3. If not see + When the -shared link option is used a final link is not being + done. */ + +-#define GLIBC_DYNAMIC_LINKER32 "/lib/ld-linux.so.2" +-#define GLIBC_DYNAMIC_LINKER64 "/lib64/ld-linux.so.2" ++#define GLIBC_DYNAMIC_LINKER32 SYSTEMLIBS_DIR "ld-linux.so.2" ++#define GLIBC_DYNAMIC_LINKER64 SYSTEMLIBS_DIR "ld-linux.so.2" + + #ifdef SPARC_BI_ARCH + diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-9.2/0012-gcc-Fix-argument-list-too-long-error.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-9.2/0012-gcc-Fix-argument-list-too-long-error.patch new file mode 100644 index 00000000..60539795 --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-9.2/0012-gcc-Fix-argument-list-too-long-error.patch @@ -0,0 +1,40 @@ +From 2cb227cd8069c73242286f64183fb203f8d2618a Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Fri, 29 Mar 2013 09:26:37 +0400 +Subject: [PATCH 12/36] gcc: Fix argument list too long error. + +There would be an "Argument list too long" error when the +build directory is longer than 200, this is caused by: + +headers=`echo $(PLUGIN_HEADERS) | tr ' ' '\012' | sort -u` + +The PLUGIN_HEADERS is too long before sort, so the "echo" can't handle +it, use the $(sort list) of GNU make which can handle the too long list +would fix the problem, the header would be short enough after sorted. +The "tr ' ' '\012'" was used for translating the space to "\n", the +$(sort list) doesn't need this. + +Signed-off-by: Robert Yang +Signed-off-by: Khem Raj + +Upstream-Status: Pending +--- + gcc/Makefile.in | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/gcc/Makefile.in b/gcc/Makefile.in +index 41f0f592ff4..0064a282488 100644 +--- a/gcc/Makefile.in ++++ b/gcc/Makefile.in +@@ -3537,7 +3537,7 @@ install-plugin: installdirs lang.install-plugin s-header-vars install-gengtype + # We keep the directory structure for files in config or c-family and .def + # files. All other files are flattened to a single directory. + $(mkinstalldirs) $(DESTDIR)$(plugin_includedir) +- headers=`echo $(PLUGIN_HEADERS) $$(cd $(srcdir); echo *.h *.def) | tr ' ' '\012' | sort -u`; \ ++ headers="$(sort $(PLUGIN_HEADERS) $$(cd $(srcdir); echo *.h *.def))"; \ + srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`; \ + for file in $$headers; do \ + if [ -f $$file ] ; then \ +-- +2.22.1 + diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-9.2/0013-Disable-sdt.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-9.2/0013-Disable-sdt.patch new file mode 100644 index 00000000..a21a63c6 --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-9.2/0013-Disable-sdt.patch @@ -0,0 +1,113 @@ +From aea5ffa9d704f4eb8fa93366884d3c26a1dbec49 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Fri, 29 Mar 2013 09:28:10 +0400 +Subject: [PATCH 13/36] Disable sdt. + +We don't list dtrace in DEPENDS so we shouldn't be depending on this header. +It may or may not exist from preivous builds though. To be determinstic, disable +sdt.h usage always. This avoids build failures if the header is removed after configure +but before libgcc is compiled for example. + +RP 2012/8/7 + +Signed-off-by: Khem Raj + +Disable sdt for libstdc++-v3. + +Signed-off-by: Robert Yang + +Upstream-Status: Inappropriate [hack] +--- + gcc/configure | 12 ++++++------ + gcc/configure.ac | 18 +++++++++--------- + libstdc++-v3/configure | 6 +++--- + libstdc++-v3/configure.ac | 2 +- + 4 files changed, 19 insertions(+), 19 deletions(-) + +diff --git a/gcc/configure b/gcc/configure +index e3bcf8abe9a..1f1d22ca666 100755 +--- a/gcc/configure ++++ b/gcc/configure +@@ -29332,12 +29332,12 @@ fi + { $as_echo "$as_me:${as_lineno-$LINENO}: checking sys/sdt.h in the target C library" >&5 + $as_echo_n "checking sys/sdt.h in the target C library... " >&6; } + have_sys_sdt_h=no +-if test -f $target_header_dir/sys/sdt.h; then +- have_sys_sdt_h=yes +- +-$as_echo "#define HAVE_SYS_SDT_H 1" >>confdefs.h +- +-fi ++#if test -f $target_header_dir/sys/sdt.h; then ++# have_sys_sdt_h=yes ++# ++#$as_echo "#define HAVE_SYS_SDT_H 1" >>confdefs.h ++# ++#fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $have_sys_sdt_h" >&5 + $as_echo "$have_sys_sdt_h" >&6; } + +diff --git a/gcc/configure.ac b/gcc/configure.ac +index 2ebc377a74d..ddc85197588 100644 +--- a/gcc/configure.ac ++++ b/gcc/configure.ac +@@ -5995,15 +5995,15 @@ fi + AC_SUBST([enable_default_ssp]) + + # Test for on the target. +-GCC_TARGET_TEMPLATE([HAVE_SYS_SDT_H]) +-AC_MSG_CHECKING(sys/sdt.h in the target C library) +-have_sys_sdt_h=no +-if test -f $target_header_dir/sys/sdt.h; then +- have_sys_sdt_h=yes +- AC_DEFINE(HAVE_SYS_SDT_H, 1, +- [Define if your target C library provides sys/sdt.h]) +-fi +-AC_MSG_RESULT($have_sys_sdt_h) ++#GCC_TARGET_TEMPLATE([HAVE_SYS_SDT_H]) ++#AC_MSG_CHECKING(sys/sdt.h in the target C library) ++#have_sys_sdt_h=no ++#if test -f $target_header_dir/sys/sdt.h; then ++# have_sys_sdt_h=yes ++# AC_DEFINE(HAVE_SYS_SDT_H, 1, ++# [Define if your target C library provides sys/sdt.h]) ++#fi ++#AC_MSG_RESULT($have_sys_sdt_h) + + # Check if TFmode long double should be used by default or not. + # Some glibc targets used DFmode long double, but with glibc 2.4 +diff --git a/libstdc++-v3/configure b/libstdc++-v3/configure +index 5acf79cba54..191bc6c5796 100755 +--- a/libstdc++-v3/configure ++++ b/libstdc++-v3/configure +@@ -22085,11 +22085,11 @@ ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' + ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' + ac_compiler_gnu=$ac_cv_c_compiler_gnu + +- if test $glibcxx_cv_sys_sdt_h = yes; then ++# if test $glibcxx_cv_sys_sdt_h = yes; then + +-$as_echo "#define HAVE_SYS_SDT_H 1" >>confdefs.h ++#$as_echo "#define HAVE_SYS_SDT_H 1" >>confdefs.h + +- fi ++# fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $glibcxx_cv_sys_sdt_h" >&5 + $as_echo "$glibcxx_cv_sys_sdt_h" >&6; } + +diff --git a/libstdc++-v3/configure.ac b/libstdc++-v3/configure.ac +index dadd8827b49..6b1ce9957d3 100644 +--- a/libstdc++-v3/configure.ac ++++ b/libstdc++-v3/configure.ac +@@ -230,7 +230,7 @@ GLIBCXX_CHECK_SC_NPROCESSORS_ONLN + GLIBCXX_CHECK_SC_NPROC_ONLN + GLIBCXX_CHECK_PTHREADS_NUM_PROCESSORS_NP + GLIBCXX_CHECK_SYSCTL_HW_NCPU +-GLIBCXX_CHECK_SDT_H ++#GLIBCXX_CHECK_SDT_H + + # Check for available headers. + AC_CHECK_HEADERS([endian.h execinfo.h float.h fp.h ieeefp.h inttypes.h \ +-- +2.22.1 + diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-9.2/0014-libtool.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-9.2/0014-libtool.patch new file mode 100644 index 00000000..7a8f3afe --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-9.2/0014-libtool.patch @@ -0,0 +1,42 @@ +From 6c4d0c303ebc3e1c7e554d54a8bb807d77ed41fd Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Fri, 29 Mar 2013 09:29:11 +0400 +Subject: [PATCH 14/36] libtool + +libstdc++ from gcc-runtime gets created with -rpath=/usr/lib/../lib for qemux86-64 +when running on am x86_64 build host. + +This patch stops this speading to libdir in the libstdc++.la file within libtool. +Arguably, it shouldn't be passing this into libtool in the first place but +for now this resolves the nastiest problems this causes. + +func_normal_abspath would resolve an empty path to `pwd` so we need +to filter the zero case. + +RP 2012/8/24 + +Signed-off-by: Khem Raj + +Upstream-Status: Pending +--- + ltmain.sh | 4 ++++ + 1 file changed, 4 insertions(+) + +diff --git a/ltmain.sh b/ltmain.sh +index 79f9ba89af5..8e222f7c16b 100644 +--- a/ltmain.sh ++++ b/ltmain.sh +@@ -6359,6 +6359,10 @@ func_mode_link () + func_warning "ignoring multiple \`-rpath's for a libtool library" + + install_libdir="$1" ++ if test -n "$install_libdir"; then ++ func_normal_abspath "$install_libdir" ++ install_libdir=$func_normal_abspath_result ++ fi + + oldlibs= + if test -z "$rpath"; then +-- +2.22.1 + diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-9.2/0015-gcc-armv4-pass-fix-v4bx-to-linker-to-support-EABI.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-9.2/0015-gcc-armv4-pass-fix-v4bx-to-linker-to-support-EABI.patch new file mode 100644 index 00000000..d06ae270 --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-9.2/0015-gcc-armv4-pass-fix-v4bx-to-linker-to-support-EABI.patch @@ -0,0 +1,43 @@ +From c5662ff1e7dea2291b9cb7a83cfff3001dd31f53 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Fri, 29 Mar 2013 09:30:32 +0400 +Subject: [PATCH 15/36] gcc: armv4: pass fix-v4bx to linker to support EABI. + +The LINK_SPEC for linux gets overwritten by linux-eabi.h which +means the value of TARGET_FIX_V4BX_SPEC gets lost and as a result +the option is not passed to linker when chosing march=armv4 +This patch redefines this in linux-eabi.h and reinserts it +for eabi defaulting toolchains. + +We might want to send it upstream. + +Signed-off-by: Khem Raj + +Upstream-Status: Pending +--- + gcc/config/arm/linux-eabi.h | 6 +++++- + 1 file changed, 5 insertions(+), 1 deletion(-) + +diff --git a/gcc/config/arm/linux-eabi.h b/gcc/config/arm/linux-eabi.h +index e4ade2e2ab0..108863f69d2 100644 +--- a/gcc/config/arm/linux-eabi.h ++++ b/gcc/config/arm/linux-eabi.h +@@ -91,10 +91,14 @@ + #define MUSL_DYNAMIC_LINKER \ + "/lib/ld-musl-arm" MUSL_DYNAMIC_LINKER_E "%{mfloat-abi=hard:hf}.so.1" + ++/* For armv4 we pass --fix-v4bx to linker to support EABI */ ++#undef TARGET_FIX_V4BX_SPEC ++#define TARGET_FIX_V4BX_SPEC "%{mcpu=arm8|mcpu=arm810|mcpu=strongarm*|march=armv4: --fix-v4bx}" ++ + /* At this point, bpabi.h will have clobbered LINK_SPEC. We want to + use the GNU/Linux version, not the generic BPABI version. */ + #undef LINK_SPEC +-#define LINK_SPEC EABI_LINK_SPEC \ ++#define LINK_SPEC TARGET_FIX_V4BX_SPEC EABI_LINK_SPEC \ + LINUX_OR_ANDROID_LD (LINUX_TARGET_LINK_SPEC, \ + LINUX_TARGET_LINK_SPEC " " ANDROID_LINK_SPEC) + +-- +2.22.1 + diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-9.2/0016-Use-the-multilib-config-files-from-B-instead-of-usin.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-9.2/0016-Use-the-multilib-config-files-from-B-instead-of-usin.patch new file mode 100644 index 00000000..310caec4 --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-9.2/0016-Use-the-multilib-config-files-from-B-instead-of-usin.patch @@ -0,0 +1,102 @@ +From e3b693b9d6dc9496f7c98a13b28182d23084215c Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Fri, 29 Mar 2013 09:33:04 +0400 +Subject: [PATCH 16/36] Use the multilib config files from ${B} instead of + using the ones from ${S} + +Use the multilib config files from ${B} instead of using the ones from ${S} +so that the source can be shared between gcc-cross-initial, +gcc-cross-intermediate, gcc-cross, gcc-runtime, and also the sdk build. + +Signed-off-by: Khem Raj +Signed-off-by: Constantin Musca + +Upstream-Status: Inappropriate [configuration] +--- + gcc/configure | 22 ++++++++++++++++++---- + gcc/configure.ac | 22 ++++++++++++++++++---- + 2 files changed, 36 insertions(+), 8 deletions(-) + +diff --git a/gcc/configure b/gcc/configure +index 1f1d22ca666..911de2cf017 100755 +--- a/gcc/configure ++++ b/gcc/configure +@@ -12321,10 +12321,20 @@ done + tmake_file_= + for f in ${tmake_file} + do +- if test -f ${srcdir}/config/$f +- then +- tmake_file_="${tmake_file_} \$(srcdir)/config/$f" +- fi ++ case $f in ++ */t-linux64 ) ++ if test -f ./config/$f ++ then ++ tmake_file_="${tmake_file_} ./config/$f" ++ fi ++ ;; ++ * ) ++ if test -f ${srcdir}/config/$f ++ then ++ tmake_file_="${tmake_file_} \$(srcdir)/config/$f" ++ fi ++ ;; ++ esac + done + tmake_file="${tmake_file_}" + +@@ -12335,6 +12345,10 @@ tm_file_list="options.h" + tm_include_list="options.h insn-constants.h" + for f in $tm_file; do + case $f in ++ */linux64.h ) ++ tm_file_list="${tm_file_list} ./config/$f" ++ tm_include_list="${tm_include_list} ./config/$f" ++ ;; + ./* ) + f=`echo $f | sed 's/^..//'` + tm_file_list="${tm_file_list} $f" +diff --git a/gcc/configure.ac b/gcc/configure.ac +index ddc85197588..b413ae9bf25 100644 +--- a/gcc/configure.ac ++++ b/gcc/configure.ac +@@ -1948,10 +1948,20 @@ done + tmake_file_= + for f in ${tmake_file} + do +- if test -f ${srcdir}/config/$f +- then +- tmake_file_="${tmake_file_} \$(srcdir)/config/$f" +- fi ++ case $f in ++ */t-linux64 ) ++ if test -f ./config/$f ++ then ++ tmake_file_="${tmake_file_} ./config/$f" ++ fi ++ ;; ++ * ) ++ if test -f ${srcdir}/config/$f ++ then ++ tmake_file_="${tmake_file_} \$(srcdir)/config/$f" ++ fi ++ ;; ++ esac + done + tmake_file="${tmake_file_}" + +@@ -1962,6 +1972,10 @@ tm_file_list="options.h" + tm_include_list="options.h insn-constants.h" + for f in $tm_file; do + case $f in ++ */linux64.h ) ++ tm_file_list="${tm_file_list} ./config/$f" ++ tm_include_list="${tm_include_list} ./config/$f" ++ ;; + ./* ) + f=`echo $f | sed 's/^..//'` + tm_file_list="${tm_file_list} $f" +-- +2.22.1 + diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-9.2/0017-Avoid-using-libdir-from-.la-which-usually-points-to-.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-9.2/0017-Avoid-using-libdir-from-.la-which-usually-points-to-.patch new file mode 100644 index 00000000..ad1d1d4e --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-9.2/0017-Avoid-using-libdir-from-.la-which-usually-points-to-.patch @@ -0,0 +1,31 @@ +From 09d9ccc1d471020949d1285a5276f17504fd60dd Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Fri, 20 Feb 2015 09:39:38 +0000 +Subject: [PATCH 17/36] Avoid using libdir from .la which usually points to a + host path + +Upstream-Status: Inappropriate [embedded specific] + +Signed-off-by: Jonathan Liu +Signed-off-by: Khem Raj +--- + ltmain.sh | 3 +++ + 1 file changed, 3 insertions(+) + +diff --git a/ltmain.sh b/ltmain.sh +index 8e222f7c16b..0a93b4e5c3b 100644 +--- a/ltmain.sh ++++ b/ltmain.sh +@@ -5628,6 +5628,9 @@ func_mode_link () + absdir="$abs_ladir" + libdir="$abs_ladir" + else ++ # Instead of using libdir from .la which usually points to a host path, ++ # use the path the .la is contained in. ++ libdir="$abs_ladir" + dir="$libdir" + absdir="$libdir" + fi +-- +2.22.1 + diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-9.2/0018-export-CPP.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-9.2/0018-export-CPP.patch new file mode 100644 index 00000000..0f728ec5 --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-9.2/0018-export-CPP.patch @@ -0,0 +1,53 @@ +From 987338cd847a723de533bb317e452a60b1e52165 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Fri, 20 Feb 2015 09:40:59 +0000 +Subject: [PATCH 18/36] export CPP + +The OE environment sets and exports CPP as being the target gcc. When +building gcc-cross-canadian for a mingw targetted sdk, the following can be found +in build.x86_64-pokysdk-mingw32.i586-poky-linux/build-x86_64-linux/libiberty/config.log: + +configure:3641: checking for _FILE_OFFSET_BITS value needed for large files +configure:3666: gcc -c -isystem/media/build1/poky/build/tmp/sysroots/x86_64-linux/usr/include -O2 -pipe conftest.c >&5 +configure:3666: $? = 0 +configure:3698: result: no +configure:3786: checking how to run the C preprocessor +configure:3856: result: x86_64-pokysdk-mingw32-gcc -E --sysroot=/media/build1/poky/build/tmp/sysroots/x86_64-nativesdk-mingw32-pokysdk-mingw32 +configure:3876: x86_64-pokysdk-mingw32-gcc -E --sysroot=/media/build1/poky/build/tmp/sysroots/x86_64-nativesdk-mingw32-pokysdk-mingw32 conftest.c +configure:3876: $? = 0 + +Note this is a *build* target (in build-x86_64-linux) so it should be +using the host "gcc", not x86_64-pokysdk-mingw32-gcc. Since the mingw32 +headers are very different, using the wrong cpp is a real problem. It is leaking +into configure through the CPP variable. Ultimately this leads to build +failures related to not being able to include a process.h file for pem-unix.c. + +The fix is to ensure we export a sane CPP value into the build +environment when using build targets. We could define a CPP_FOR_BUILD value which may be +the version which needs to be upstreamed but for now, this fix is good enough to +avoid the problem. + +RP 22/08/2013 + +Upstream-Status: Pending + +Signed-off-by: Khem Raj +--- + Makefile.in | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/Makefile.in b/Makefile.in +index 64e091ba71d..255822e3f27 100644 +--- a/Makefile.in ++++ b/Makefile.in +@@ -149,6 +149,7 @@ BUILD_EXPORTS = \ + AR="$(AR_FOR_BUILD)"; export AR; \ + AS="$(AS_FOR_BUILD)"; export AS; \ + CC="$(CC_FOR_BUILD)"; export CC; \ ++ CPP="$(CC_FOR_BUILD) -E"; export CPP; \ + CFLAGS="$(CFLAGS_FOR_BUILD)"; export CFLAGS; \ + CONFIG_SHELL="$(SHELL)"; export CONFIG_SHELL; \ + CXX="$(CXX_FOR_BUILD)"; export CXX; \ +-- +2.22.1 + diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-9.2/0019-Ensure-target-gcc-headers-can-be-included.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-9.2/0019-Ensure-target-gcc-headers-can-be-included.patch new file mode 100644 index 00000000..53f9e99d --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-9.2/0019-Ensure-target-gcc-headers-can-be-included.patch @@ -0,0 +1,55 @@ +From d27ba49e2e5c608c43265462d6831363cc7f565b Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Fri, 20 Feb 2015 10:25:11 +0000 +Subject: [PATCH 19/36] Ensure target gcc headers can be included + +There are a few headers installed as part of the OpenEmbedded +gcc-runtime target (omp.h, ssp/*.h). Being installed from a recipe +built for the target architecture, these are within the target +sysroot and not cross/nativesdk; thus they weren't able to be +found by gcc with the existing search paths. Add support for +picking up these headers under the sysroot supplied on the gcc +command line in order to resolve this. + +Upstream-Status: Pending + +Signed-off-by: Paul Eggleton +Signed-off-by: Khem Raj +--- + gcc/Makefile.in | 2 ++ + gcc/cppdefault.c | 4 ++++ + gcc/defaults.h | 9 +++++++++ + gcc/gcc.c | 7 ------- + 4 files changed, 15 insertions(+), 7 deletions(-) + +--- a/gcc/Makefile.in ++++ b/gcc/Makefile.in +@@ -618,6 +618,7 @@ libexecdir = @libexecdir@ + + # Directory in which the compiler finds libraries etc. + libsubdir = $(libdir)/gcc/$(real_target_noncanonical)/$(version)$(accel_dir_suffix) ++libsubdir_target = $(target_noncanonical)/$(version) + # Directory in which the compiler finds executables + libexecsubdir = $(libexecdir)/gcc/$(real_target_noncanonical)/$(version)$(accel_dir_suffix) + # Directory in which all plugin resources are installed +@@ -2866,6 +2867,7 @@ CFLAGS-intl.o += -DLOCALEDIR=\"$(localed + + PREPROCESSOR_DEFINES = \ + -DGCC_INCLUDE_DIR=\"$(libsubdir)/include\" \ ++ -DGCC_INCLUDE_SUBDIR_TARGET=\"$(libsubdir_target)/include\" \ + -DFIXED_INCLUDE_DIR=\"$(libsubdir)/include-fixed\" \ + -DGPLUSPLUS_INCLUDE_DIR=\"$(gcc_gxx_include_dir)\" \ + -DGPLUSPLUS_INCLUDE_DIR_ADD_SYSROOT=$(gcc_gxx_include_dir_add_sysroot) \ +--- a/gcc/cppdefault.c ++++ b/gcc/cppdefault.c +@@ -59,6 +59,10 @@ const struct default_include cpp_include + /* This is the dir for gcc's private headers. */ + { GCC_INCLUDE_DIR, "GCC", 0, 0, 0, 0 }, + #endif ++#ifdef GCC_INCLUDE_SUBDIR_TARGET ++ /* This is the dir for gcc's private headers under the specified sysroot. */ ++ { STANDARD_STARTFILE_PREFIX_2 GCC_INCLUDE_SUBDIR_TARGET, "GCC", 0, 0, 1, 0 }, ++#endif + #ifdef LOCAL_INCLUDE_DIR + /* /usr/local/include comes before the fixincluded header files. */ + { LOCAL_INCLUDE_DIR, 0, 0, 1, 1, 2 }, diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-9.2/0020-gcc-4.8-won-t-build-with-disable-dependency-tracking.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-9.2/0020-gcc-4.8-won-t-build-with-disable-dependency-tracking.patch new file mode 100644 index 00000000..b0f96d06 --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-9.2/0020-gcc-4.8-won-t-build-with-disable-dependency-tracking.patch @@ -0,0 +1,54 @@ +From 83bcd4cc47ae63971c888c117abd00dfd506532c Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Fri, 20 Feb 2015 11:17:19 +0000 +Subject: [PATCH 20/36] gcc 4.8+ won't build with --disable-dependency-tracking + +since the *.Ppo files don't get created unless --enable-dependency-tracking is true. + +This patch ensures we only use those compiler options when its enabled. + +Upstream-Status: Submitted + +(Problem was already reported upstream, attached this patch there +http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55930) + +RP +2012/09/22 + +Signed-off-by: Khem Raj +--- + libatomic/Makefile.am | 3 ++- + libatomic/Makefile.in | 3 ++- + 2 files changed, 4 insertions(+), 2 deletions(-) + +diff --git a/libatomic/Makefile.am b/libatomic/Makefile.am +index c1b7c73934a..ef43d62c07a 100644 +--- a/libatomic/Makefile.am ++++ b/libatomic/Makefile.am +@@ -101,7 +101,8 @@ PAT_S = $(word 3,$(PAT_SPLIT)) + IFUNC_DEF = -DIFUNC_ALT=$(PAT_S) + IFUNC_OPT = $(word $(PAT_S),$(IFUNC_OPTIONS)) + +-M_DEPS = -MT $@ -MD -MP -MF $(DEPDIR)/$(@F).Ppo ++@AMDEP_TRUE@M_DEPS = -MT $@ -MD -MP -MF $(DEPDIR)/$(@F).Ppo ++@AMDEP_FALSE@M_DEPS = + M_SIZE = -DN=$(PAT_N) + M_IFUNC = $(if $(PAT_S),$(IFUNC_DEF) $(IFUNC_OPT)) + M_FILE = $(PAT_BASE)_n.c +diff --git a/libatomic/Makefile.in b/libatomic/Makefile.in +index 29324e3e0ac..d5cdb4259ef 100644 +--- a/libatomic/Makefile.in ++++ b/libatomic/Makefile.in +@@ -414,7 +414,8 @@ PAT_N = $(word 2,$(PAT_SPLIT)) + PAT_S = $(word 3,$(PAT_SPLIT)) + IFUNC_DEF = -DIFUNC_ALT=$(PAT_S) + IFUNC_OPT = $(word $(PAT_S),$(IFUNC_OPTIONS)) +-M_DEPS = -MT $@ -MD -MP -MF $(DEPDIR)/$(@F).Ppo ++@AMDEP_TRUE@M_DEPS = -MT $@ -MD -MP -MF $(DEPDIR)/$(@F).Ppo ++@AMDEP_FALSE@M_DEPS = + M_SIZE = -DN=$(PAT_N) + M_IFUNC = $(if $(PAT_S),$(IFUNC_DEF) $(IFUNC_OPT)) + M_FILE = $(PAT_BASE)_n.c +-- +2.22.1 + diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-9.2/0021-Don-t-search-host-directory-during-relink-if-inst_pr.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-9.2/0021-Don-t-search-host-directory-during-relink-if-inst_pr.patch new file mode 100644 index 00000000..f36ca29b --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-9.2/0021-Don-t-search-host-directory-during-relink-if-inst_pr.patch @@ -0,0 +1,38 @@ +From 667cc8d43e8fb4ac09654ee408da482f96b09580 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Tue, 3 Mar 2015 08:21:19 +0000 +Subject: [PATCH 21/36] Don't search host directory during "relink" if + $inst_prefix is provided + +http://lists.gnu.org/archive/html/libtool-patches/2011-01/msg00026.html + +Upstream-Status: Submitted + +Signed-off-by: Khem Raj +--- + ltmain.sh | 5 +++-- + 1 file changed, 3 insertions(+), 2 deletions(-) + +diff --git a/ltmain.sh b/ltmain.sh +index 0a93b4e5c3b..6de6ed2f9a0 100644 +--- a/ltmain.sh ++++ b/ltmain.sh +@@ -6004,12 +6004,13 @@ func_mode_link () + fi + else + # We cannot seem to hardcode it, guess we'll fake it. ++ # Default if $libdir is not relative to the prefix: + add_dir="-L$libdir" +- # Try looking first in the location we're being installed to. ++ + if test -n "$inst_prefix_dir"; then + case $libdir in + [\\/]*) +- add_dir="$add_dir -L$inst_prefix_dir$libdir" ++ add_dir="-L$inst_prefix_dir$libdir" + ;; + esac + fi +-- +2.22.1 + diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-9.2/0022-Use-SYSTEMLIBS_DIR-replacement-instead-of-hardcoding.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-9.2/0022-Use-SYSTEMLIBS_DIR-replacement-instead-of-hardcoding.patch new file mode 100644 index 00000000..d5b91500 --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-9.2/0022-Use-SYSTEMLIBS_DIR-replacement-instead-of-hardcoding.patch @@ -0,0 +1,29 @@ +From 279c4de48e3fd61e2f268787ed3f1d69ed9224f8 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Tue, 28 Apr 2015 23:15:27 -0700 +Subject: [PATCH 22/36] Use SYSTEMLIBS_DIR replacement instead of hardcoding + base_libdir + +Upstream-Status: Pending + +Signed-off-by: Khem Raj +--- + gcc/config/aarch64/aarch64-linux.h | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/gcc/config/aarch64/aarch64-linux.h b/gcc/config/aarch64/aarch64-linux.h +index 5e8b34ded03..7e628bf661e 100644 +--- a/gcc/config/aarch64/aarch64-linux.h ++++ b/gcc/config/aarch64/aarch64-linux.h +@@ -21,7 +21,7 @@ + #ifndef GCC_AARCH64_LINUX_H + #define GCC_AARCH64_LINUX_H + +-#define GLIBC_DYNAMIC_LINKER "/lib/ld-linux-aarch64%{mbig-endian:_be}%{mabi=ilp32:_ilp32}.so.1" ++#define GLIBC_DYNAMIC_LINKER SYSTEMLIBS_DIR "ld-linux-aarch64%{mbig-endian:_be}%{mabi=ilp32:_ilp32}.so.1" + + #undef MUSL_DYNAMIC_LINKER + #define MUSL_DYNAMIC_LINKER "/lib/ld-musl-aarch64%{mbig-endian:_be}%{mabi=ilp32:_ilp32}.so.1" +-- +2.22.1 + diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-9.2/0023-aarch64-Add-support-for-musl-ldso.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-9.2/0023-aarch64-Add-support-for-musl-ldso.patch new file mode 100644 index 00000000..f811306c --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-9.2/0023-aarch64-Add-support-for-musl-ldso.patch @@ -0,0 +1,28 @@ +From 1277d12058334087443828dfd57d44e3b1dfcc9a Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Tue, 28 Apr 2015 23:18:39 -0700 +Subject: [PATCH 23/36] aarch64: Add support for musl ldso + +Upstream-Status: Pending + +Signed-off-by: Khem Raj +--- + gcc/config/aarch64/aarch64-linux.h | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/gcc/config/aarch64/aarch64-linux.h b/gcc/config/aarch64/aarch64-linux.h +index 7e628bf661e..1717cbe5471 100644 +--- a/gcc/config/aarch64/aarch64-linux.h ++++ b/gcc/config/aarch64/aarch64-linux.h +@@ -24,7 +24,7 @@ + #define GLIBC_DYNAMIC_LINKER SYSTEMLIBS_DIR "ld-linux-aarch64%{mbig-endian:_be}%{mabi=ilp32:_ilp32}.so.1" + + #undef MUSL_DYNAMIC_LINKER +-#define MUSL_DYNAMIC_LINKER "/lib/ld-musl-aarch64%{mbig-endian:_be}%{mabi=ilp32:_ilp32}.so.1" ++#define MUSL_DYNAMIC_LINKER SYSTEMLIBS_DIR "ld-musl-aarch64%{mbig-endian:_be}%{mabi=ilp32:_ilp32}.so.1" + + #undef ASAN_CC1_SPEC + #define ASAN_CC1_SPEC "%{%:sanitize(address):-funwind-tables}" +-- +2.22.1 + diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-9.2/0024-libcc1-fix-libcc1-s-install-path-and-rpath.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-9.2/0024-libcc1-fix-libcc1-s-install-path-and-rpath.patch new file mode 100644 index 00000000..298b0962 --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-9.2/0024-libcc1-fix-libcc1-s-install-path-and-rpath.patch @@ -0,0 +1,54 @@ +From 4a0487ad75accd780dd155aa59086cc4b11cfc47 Mon Sep 17 00:00:00 2001 +From: Robert Yang +Date: Sun, 5 Jul 2015 20:25:18 -0700 +Subject: [PATCH 24/36] libcc1: fix libcc1's install path and rpath + +* Install libcc1.so and libcc1plugin.so into + $(libexecdir)/gcc/$(target_noncanonical)/$(gcc_version), as what we + had done to lto-plugin. +* Fix bad RPATH iussue: + gcc-5.2.0: package gcc-plugins contains bad RPATH /patht/to/tmp/sysroots/qemux86-64/usr/lib64/../lib64 in file + /path/to/gcc/5.2.0-r0/packages-split/gcc-plugins/usr/lib64/gcc/x86_64-poky-linux/5.2.0/plugin/libcc1plugin.so.0.0.0 + [rpaths] + +Upstream-Status: Inappropriate [OE configuration] + +Signed-off-by: Robert Yang +--- + libcc1/Makefile.am | 4 ++-- + libcc1/Makefile.in | 4 ++-- + 2 files changed, 4 insertions(+), 4 deletions(-) + +diff --git a/libcc1/Makefile.am b/libcc1/Makefile.am +index 72c6aead475..42a87740b31 100644 +--- a/libcc1/Makefile.am ++++ b/libcc1/Makefile.am +@@ -37,8 +37,8 @@ libiberty = $(if $(wildcard $(libiberty_noasan)),$(Wc)$(libiberty_noasan), \ + $(Wc)$(libiberty_normal))) + libiberty_dep = $(patsubst $(Wc)%,%,$(libiberty)) + +-plugindir = $(libdir)/gcc/$(target_noncanonical)/$(gcc_version)/plugin +-cc1libdir = $(libdir)/$(libsuffix) ++cc1libdir = $(libexecdir)/gcc/$(target_noncanonical)/$(gcc_version) ++plugindir = $(cc1libdir) + + if ENABLE_PLUGIN + plugin_LTLIBRARIES = libcc1plugin.la libcp1plugin.la +diff --git a/libcc1/Makefile.in b/libcc1/Makefile.in +index 7104b649026..2103c477468 100644 +--- a/libcc1/Makefile.in ++++ b/libcc1/Makefile.in +@@ -393,8 +393,8 @@ libiberty = $(if $(wildcard $(libiberty_noasan)),$(Wc)$(libiberty_noasan), \ + $(Wc)$(libiberty_normal))) + + libiberty_dep = $(patsubst $(Wc)%,%,$(libiberty)) +-plugindir = $(libdir)/gcc/$(target_noncanonical)/$(gcc_version)/plugin +-cc1libdir = $(libdir)/$(libsuffix) ++cc1libdir = $(libexecdir)/gcc/$(target_noncanonical)/$(gcc_version) ++plugindir = $(cc1libdir) + @ENABLE_PLUGIN_TRUE@plugin_LTLIBRARIES = libcc1plugin.la libcp1plugin.la + @ENABLE_PLUGIN_TRUE@cc1lib_LTLIBRARIES = libcc1.la + shared_source = callbacks.cc callbacks.hh connection.cc connection.hh \ +-- +2.22.1 + diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-9.2/0025-handle-sysroot-support-for-nativesdk-gcc.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-9.2/0025-handle-sysroot-support-for-nativesdk-gcc.patch new file mode 100644 index 00000000..ba62bc1f --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-9.2/0025-handle-sysroot-support-for-nativesdk-gcc.patch @@ -0,0 +1,213 @@ +From a183c82ea2af934a8d30055a791dc1d80c9067a9 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Mon, 7 Dec 2015 23:39:54 +0000 +Subject: [PATCH 25/36] handle sysroot support for nativesdk-gcc + +Being able to build a nativesdk gcc is useful, particularly in cases +where the host compiler may be of an incompatible version (or a 32 +bit compiler is needed). + +Sadly, building nativesdk-gcc is not straight forward. We install +nativesdk-gcc into a relocatable location and this means that its +library locations can change. "Normal" sysroot support doesn't help +in this case since the values of paths like "libdir" change, not just +base root directory of the system. + +In order to handle this we do two things: + +a) Add %r into spec file markup which can be used for injected paths + such as SYSTEMLIBS_DIR (see gcc_multilib_setup()). +b) Add other paths which need relocation into a .gccrelocprefix section + which the relocation code will notice and adjust automatically. + +Upstream-Status: Inappropriate +RP 2015/7/28 + +Signed-off-by: Khem Raj +--- + gcc/cppdefault.c | 50 +++++++++++++++++++++++++++++++++++------------- + gcc/cppdefault.h | 3 ++- + gcc/gcc.c | 20 +++++++++++++------ + 3 files changed, 53 insertions(+), 20 deletions(-) + +diff --git a/gcc/cppdefault.c b/gcc/cppdefault.c +index 980e2bd47a7..39b6059efdc 100644 +--- a/gcc/cppdefault.c ++++ b/gcc/cppdefault.c +@@ -35,6 +35,30 @@ + # undef CROSS_INCLUDE_DIR + #endif + ++static char GPLUSPLUS_INCLUDE_DIRVAR[4096] __attribute__ ((section (".gccrelocprefix"))) = GPLUSPLUS_INCLUDE_DIR; ++static char GCC_INCLUDE_DIRVAR[4096] __attribute__ ((section (".gccrelocprefix"))) = GCC_INCLUDE_DIR; ++static char GPLUSPLUS_TOOL_INCLUDE_DIRVAR[4096] __attribute__ ((section (".gccrelocprefix"))) = GPLUSPLUS_TOOL_INCLUDE_DIR; ++static char GPLUSPLUS_BACKWARD_INCLUDE_DIRVAR[4096] __attribute__ ((section (".gccrelocprefix"))) = GPLUSPLUS_BACKWARD_INCLUDE_DIR; ++static char STANDARD_STARTFILE_PREFIX_2VAR[4096] __attribute__ ((section (".gccrelocprefix"))) = STANDARD_STARTFILE_PREFIX_2 GCC_INCLUDE_SUBDIR_TARGET; ++#ifdef LOCAL_INCLUDE_DIR ++static char LOCAL_INCLUDE_DIRVAR[4096] __attribute__ ((section (".gccrelocprefix"))) = LOCAL_INCLUDE_DIR; ++#endif ++#ifdef PREFIX_INCLUDE_DIR ++static char PREFIX_INCLUDE_DIRVAR[4096] __attribute__ ((section (".gccrelocprefix"))) = PREFIX_INCLUDE_DIR; ++#endif ++#ifdef FIXED_INCLUDE_DIR ++static char FIXED_INCLUDE_DIRVAR[4096] __attribute__ ((section (".gccrelocprefix"))) = FIXED_INCLUDE_DIR; ++#endif ++#ifdef CROSS_INCLUDE_DIR ++static char CROSS_INCLUDE_DIRVAR[4096] __attribute__ ((section (".gccrelocprefix"))) = CROSS_INCLUDE_DIR; ++#endif ++#ifdef TOOL_INCLUDE_DIR ++static char TOOL_INCLUDE_DIRVAR[4096] __attribute__ ((section (".gccrelocprefix"))) = TOOL_INCLUDE_DIR; ++#endif ++#ifdef NATIVE_SYSTEM_HEADER_DIR ++static char NATIVE_SYSTEM_HEADER_DIRVAR[4096] __attribute__ ((section (".gccrelocprefix"))) = NATIVE_SYSTEM_HEADER_DIR; ++#endif ++ + const struct default_include cpp_include_defaults[] + #ifdef INCLUDE_DEFAULTS + = INCLUDE_DEFAULTS; +@@ -42,38 +66,38 @@ const struct default_include cpp_include_defaults[] + = { + #ifdef GPLUSPLUS_INCLUDE_DIR + /* Pick up GNU C++ generic include files. */ +- { GPLUSPLUS_INCLUDE_DIR, "G++", 1, 1, ++ { GPLUSPLUS_INCLUDE_DIRVAR, "G++", 1, 1, + GPLUSPLUS_INCLUDE_DIR_ADD_SYSROOT, 0 }, + #endif + #ifdef GPLUSPLUS_TOOL_INCLUDE_DIR + /* Pick up GNU C++ target-dependent include files. */ +- { GPLUSPLUS_TOOL_INCLUDE_DIR, "G++", 1, 1, ++ { GPLUSPLUS_TOOL_INCLUDE_DIRVAR, "G++", 1, 1, + GPLUSPLUS_INCLUDE_DIR_ADD_SYSROOT, 1 }, + #endif + #ifdef GPLUSPLUS_BACKWARD_INCLUDE_DIR + /* Pick up GNU C++ backward and deprecated include files. */ +- { GPLUSPLUS_BACKWARD_INCLUDE_DIR, "G++", 1, 1, ++ { GPLUSPLUS_BACKWARD_INCLUDE_DIRVAR, "G++", 1, 1, + GPLUSPLUS_INCLUDE_DIR_ADD_SYSROOT, 0 }, + #endif + #ifdef GCC_INCLUDE_DIR + /* This is the dir for gcc's private headers. */ +- { GCC_INCLUDE_DIR, "GCC", 0, 0, 0, 0 }, ++ { GCC_INCLUDE_DIRVAR, "GCC", 0, 0, 0, 0 }, + #endif + #ifdef GCC_INCLUDE_SUBDIR_TARGET + /* This is the dir for gcc's private headers under the specified sysroot. */ +- { STANDARD_STARTFILE_PREFIX_2 GCC_INCLUDE_SUBDIR_TARGET, "GCC", 0, 0, 1, 0 }, ++ { STANDARD_STARTFILE_PREFIX_2VAR, "GCC", 0, 0, 1, 0 }, + #endif + #ifdef LOCAL_INCLUDE_DIR + /* /usr/local/include comes before the fixincluded header files. */ +- { LOCAL_INCLUDE_DIR, 0, 0, 1, 1, 2 }, +- { LOCAL_INCLUDE_DIR, 0, 0, 1, 1, 0 }, ++ { LOCAL_INCLUDE_DIRVAR, 0, 0, 1, 1, 2 }, ++ { LOCAL_INCLUDE_DIRVAR, 0, 0, 1, 1, 0 }, + #endif + #ifdef PREFIX_INCLUDE_DIR +- { PREFIX_INCLUDE_DIR, 0, 0, 1, 0, 0 }, ++ { PREFIX_INCLUDE_DIRVAR, 0, 0, 1, 0, 0 }, + #endif + #ifdef FIXED_INCLUDE_DIR + /* This is the dir for fixincludes. */ +- { FIXED_INCLUDE_DIR, "GCC", 0, 0, 0, ++ { FIXED_INCLUDE_DIRVAR, "GCC", 0, 0, 0, + /* A multilib suffix needs adding if different multilibs use + different headers. */ + #ifdef SYSROOT_HEADERS_SUFFIX_SPEC +@@ -85,16 +109,16 @@ const struct default_include cpp_include_defaults[] + #endif + #ifdef CROSS_INCLUDE_DIR + /* One place the target system's headers might be. */ +- { CROSS_INCLUDE_DIR, "GCC", 0, 0, 0, 0 }, ++ { CROSS_INCLUDE_DIRVAR, "GCC", 0, 0, 0, 0 }, + #endif + #ifdef TOOL_INCLUDE_DIR + /* Another place the target system's headers might be. */ +- { TOOL_INCLUDE_DIR, "BINUTILS", 0, 1, 0, 0 }, ++ { TOOL_INCLUDE_DIRVAR, "BINUTILS", 0, 1, 0, 0 }, + #endif + #ifdef NATIVE_SYSTEM_HEADER_DIR + /* /usr/include comes dead last. */ +- { NATIVE_SYSTEM_HEADER_DIR, NATIVE_SYSTEM_HEADER_COMPONENT, 0, 0, 1, 2 }, +- { NATIVE_SYSTEM_HEADER_DIR, NATIVE_SYSTEM_HEADER_COMPONENT, 0, 0, 1, 0 }, ++ { NATIVE_SYSTEM_HEADER_DIRVAR, NATIVE_SYSTEM_HEADER_COMPONENT, 0, 0, 1, 2 }, ++ { NATIVE_SYSTEM_HEADER_DIRVAR, NATIVE_SYSTEM_HEADER_COMPONENT, 0, 0, 1, 0 }, + #endif + { 0, 0, 0, 0, 0, 0 } + }; +diff --git a/gcc/cppdefault.h b/gcc/cppdefault.h +index e2d96f1e760..29fa5f815c8 100644 +--- a/gcc/cppdefault.h ++++ b/gcc/cppdefault.h +@@ -33,7 +33,8 @@ + + struct default_include + { +- const char *const fname; /* The name of the directory. */ ++ const char *fname; /* The name of the directory. */ ++ + const char *const component; /* The component containing the directory + (see update_path in prefix.c) */ + const char cplusplus; /* Only look here if we're compiling C++. */ +diff --git a/gcc/gcc.c b/gcc/gcc.c +index 1a3704b2763..db0e2934038 100644 +--- a/gcc/gcc.c ++++ b/gcc/gcc.c +@@ -253,6 +253,8 @@ FILE *report_times_to_file = NULL; + #endif + static const char *target_system_root = DEFAULT_TARGET_SYSTEM_ROOT; + ++static char target_relocatable_prefix[4096] __attribute__ ((section (".gccrelocprefix"))) = SYSTEMLIBS_DIR; ++ + /* Nonzero means pass the updated target_system_root to the compiler. */ + + static int target_system_root_changed; +@@ -527,6 +529,7 @@ or with constant text in a single argument. + %G process LIBGCC_SPEC as a spec. + %R Output the concatenation of target_system_root and + target_sysroot_suffix. ++ %r Output the base path target_relocatable_prefix + %S process STARTFILE_SPEC as a spec. A capital S is actually used here. + %E process ENDFILE_SPEC as a spec. A capital E is actually used here. + %C process CPP_SPEC as a spec. +@@ -1493,10 +1496,10 @@ static const char *gcc_libexec_prefix; + gcc_exec_prefix is set because, in that case, we know where the + compiler has been installed, and use paths relative to that + location instead. */ +-static const char *const standard_exec_prefix = STANDARD_EXEC_PREFIX; +-static const char *const standard_libexec_prefix = STANDARD_LIBEXEC_PREFIX; +-static const char *const standard_bindir_prefix = STANDARD_BINDIR_PREFIX; +-static const char *const standard_startfile_prefix = STANDARD_STARTFILE_PREFIX; ++static char standard_exec_prefix[4096] __attribute__ ((section (".gccrelocprefix"))) = STANDARD_EXEC_PREFIX; ++static char standard_libexec_prefix[4096] __attribute__ ((section (".gccrelocprefix"))) = STANDARD_LIBEXEC_PREFIX; ++static char standard_bindir_prefix[4096] __attribute__ ((section (".gccrelocprefix"))) = STANDARD_BINDIR_PREFIX; ++static char *const standard_startfile_prefix = STANDARD_STARTFILE_PREFIX; + + /* For native compilers, these are well-known paths containing + components that may be provided by the system. For cross +@@ -1504,9 +1507,9 @@ static const char *const standard_startfile_prefix = STANDARD_STARTFILE_PREFIX; + static const char *md_exec_prefix = MD_EXEC_PREFIX; + static const char *md_startfile_prefix = MD_STARTFILE_PREFIX; + static const char *md_startfile_prefix_1 = MD_STARTFILE_PREFIX_1; +-static const char *const standard_startfile_prefix_1 ++static char standard_startfile_prefix_1[4096] __attribute__ ((section (".gccrelocprefix"))) + = STANDARD_STARTFILE_PREFIX_1; +-static const char *const standard_startfile_prefix_2 ++static char standard_startfile_prefix_2[4096] __attribute__ ((section (".gccrelocprefix"))) + = STANDARD_STARTFILE_PREFIX_2; + + /* A relative path to be used in finding the location of tools +@@ -5915,6 +5918,11 @@ do_spec_1 (const char *spec, int inswitch, const char *soft_matched_part) + } + break; + ++ case 'r': ++ obstack_grow (&obstack, target_relocatable_prefix, ++ strlen (target_relocatable_prefix)); ++ break; ++ + case 'S': + value = do_spec_1 (startfile_spec, 0, NULL); + if (value != 0) +-- +2.22.1 + diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-9.2/0026-Search-target-sysroot-gcc-version-specific-dirs-with.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-9.2/0026-Search-target-sysroot-gcc-version-specific-dirs-with.patch new file mode 100644 index 00000000..fde206eb --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-9.2/0026-Search-target-sysroot-gcc-version-specific-dirs-with.patch @@ -0,0 +1,102 @@ +From dab4db14e319f3239a2b4c7d1fbf2971936e27ba Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Mon, 7 Dec 2015 23:41:45 +0000 +Subject: [PATCH 26/36] Search target sysroot gcc version specific dirs with + multilib. + +We install the gcc libraries (such as crtbegin.p) into +//5.2.0/ +which is a default search path for GCC (aka multi_suffix in the +code below). is 'machine' in gcc's terminology. We use +these directories so that multiple gcc versions could in theory +co-exist on target. + +We only want to build one gcc-cross-canadian per arch and have this work +for all multilibs. can be handled by mapping the multilib + to the one used by gcc-cross-canadian, e.g. +mips64-polkmllib32-linux +is symlinked to by mips64-poky-linux. + +The default gcc search path in the target sysroot for a "lib64" mutlilib +is: + +/lib32/mips64-poky-linux/5.2.0/ +/lib32/../lib64/ +/usr/lib32/mips64-poky-linux/5.2.0/ +/usr/lib32/../lib64/ +/lib32/ +/usr/lib32/ + +which means that the lib32 crtbegin.o will be found and the lib64 ones +will not which leads to compiler failures. + +This patch injects a multilib version of that path first so the lib64 +binaries can be found first. With this change the search path becomes: + +/lib32/../lib64/mips64-poky-linux/5.2.0/ +/lib32/mips64-poky-linux/5.2.0/ +/lib32/../lib64/ +/usr/lib32/../lib64/mips64-poky-linux/5.2.0/ +/usr/lib32/mips64-poky-linux/5.2.0/ +/usr/lib32/../lib64/ +/lib32/ +/usr/lib32/ + +Upstream-Status: Pending +RP 2015/7/31 + +Signed-off-by: Khem Raj +--- + gcc/gcc.c | 29 ++++++++++++++++++++++++++++- + 1 file changed, 28 insertions(+), 1 deletion(-) + +diff --git a/gcc/gcc.c b/gcc/gcc.c +index db0e2934038..1c21d1b08eb 100644 +--- a/gcc/gcc.c ++++ b/gcc/gcc.c +@@ -2610,7 +2610,7 @@ for_each_path (const struct path_prefix *paths, + if (path == NULL) + { + len = paths->max_len + extra_space + 1; +- len += MAX (MAX (suffix_len, multi_os_dir_len), multiarch_len); ++ len += MAX ((suffix_len + multi_os_dir_len), multiarch_len); + path = XNEWVEC (char, len); + } + +@@ -2622,6 +2622,33 @@ for_each_path (const struct path_prefix *paths, + /* Look first in MACHINE/VERSION subdirectory. */ + if (!skip_multi_dir) + { ++ if (!(pl->os_multilib ? skip_multi_os_dir : skip_multi_dir)) ++ { ++ const char *this_multi; ++ size_t this_multi_len; ++ ++ if (pl->os_multilib) ++ { ++ this_multi = multi_os_dir; ++ this_multi_len = multi_os_dir_len; ++ } ++ else ++ { ++ this_multi = multi_dir; ++ this_multi_len = multi_dir_len; ++ } ++ ++ /* Look in multilib MACHINE/VERSION subdirectory first */ ++ if (this_multi_len) ++ { ++ memcpy (path + len, this_multi, this_multi_len + 1); ++ memcpy (path + len + this_multi_len, multi_suffix, suffix_len + 1); ++ ret = callback (path, callback_info); ++ if (ret) ++ break; ++ } ++ } ++ + memcpy (path + len, multi_suffix, suffix_len + 1); + ret = callback (path, callback_info); + if (ret) +-- +2.22.1 + diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-9.2/0027-Fix-various-_FOR_BUILD-and-related-variables.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-9.2/0027-Fix-various-_FOR_BUILD-and-related-variables.patch new file mode 100644 index 00000000..5d89e8e7 --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-9.2/0027-Fix-various-_FOR_BUILD-and-related-variables.patch @@ -0,0 +1,137 @@ +From 8e84bb09d2b7a60487a30e438bb109f31c2c254b Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Mon, 7 Dec 2015 23:42:45 +0000 +Subject: [PATCH 27/36] Fix various _FOR_BUILD and related variables + +When doing a FOR_BUILD thing, you have to override CFLAGS with +CFLAGS_FOR_BUILD. And if you use C++, you also have to override +CXXFLAGS with CXXFLAGS_FOR_BUILD. +Without this, when building for mingw, you end up trying to use +the mingw headers for a host build. + +The same goes for other variables as well, such as CPPFLAGS, +CPP, and GMPINC. + +Upstream-Status: Pending + +Signed-off-by: Peter Seebach +Signed-off-by: Mark Hatle +Signed-off-by: Khem Raj +--- + Makefile.in | 6 ++++++ + Makefile.tpl | 5 +++++ + gcc/Makefile.in | 2 +- + gcc/configure | 2 +- + gcc/configure.ac | 2 +- + 5 files changed, 14 insertions(+), 3 deletions(-) + +diff --git a/Makefile.in b/Makefile.in +index 255822e3f27..9dc0dff0474 100644 +--- a/Makefile.in ++++ b/Makefile.in +@@ -152,6 +152,7 @@ BUILD_EXPORTS = \ + CPP="$(CC_FOR_BUILD) -E"; export CPP; \ + CFLAGS="$(CFLAGS_FOR_BUILD)"; export CFLAGS; \ + CONFIG_SHELL="$(SHELL)"; export CONFIG_SHELL; \ ++ CPPFLAGS="$(CPPFLAGS_FOR_BUILD)"; export CPPFLAGS; \ + CXX="$(CXX_FOR_BUILD)"; export CXX; \ + CXXFLAGS="$(CXXFLAGS_FOR_BUILD)"; export CXXFLAGS; \ + GFORTRAN="$(GFORTRAN_FOR_BUILD)"; export GFORTRAN; \ +@@ -171,6 +172,9 @@ BUILD_EXPORTS = \ + # built for the build system to override those in BASE_FLAGS_TO_PASS. + EXTRA_BUILD_FLAGS = \ + CFLAGS="$(CFLAGS_FOR_BUILD)" \ ++ CXXFLAGS="$(CXXFLAGS_FOR_BUILD)" \ ++ CPP="$(CC_FOR_BUILD) -E" \ ++ CPPFLAGS="$(CPPFLAGS_FOR_BUILD)" \ + LDFLAGS="$(LDFLAGS_FOR_BUILD)" + + # This is the list of directories to built for the host system. +@@ -188,6 +192,7 @@ HOST_SUBDIR = @host_subdir@ + HOST_EXPORTS = \ + $(BASE_EXPORTS) \ + CC="$(CC)"; export CC; \ ++ CPP="$(CC) -E"; export CPP; \ + ADA_CFLAGS="$(ADA_CFLAGS)"; export ADA_CFLAGS; \ + CFLAGS="$(CFLAGS)"; export CFLAGS; \ + CONFIG_SHELL="$(SHELL)"; export CONFIG_SHELL; \ +@@ -775,6 +780,7 @@ BASE_FLAGS_TO_PASS = \ + "CC_FOR_BUILD=$(CC_FOR_BUILD)" \ + "CFLAGS_FOR_BUILD=$(CFLAGS_FOR_BUILD)" \ + "CXX_FOR_BUILD=$(CXX_FOR_BUILD)" \ ++ "CXXFLAGS_FOR_BUILD=$(CXXFLAGS_FOR_BUILD)" \ + "EXPECT=$(EXPECT)" \ + "FLEX=$(FLEX)" \ + "INSTALL=$(INSTALL)" \ +diff --git a/Makefile.tpl b/Makefile.tpl +index 41cae58a267..d3f6b79acdc 100644 +--- a/Makefile.tpl ++++ b/Makefile.tpl +@@ -154,6 +154,7 @@ BUILD_EXPORTS = \ + CC="$(CC_FOR_BUILD)"; export CC; \ + CFLAGS="$(CFLAGS_FOR_BUILD)"; export CFLAGS; \ + CONFIG_SHELL="$(SHELL)"; export CONFIG_SHELL; \ ++ CPPFLAGS="$(CPPFLAGS_FOR_BUILD)"; export CPPFLAGS; \ + CXX="$(CXX_FOR_BUILD)"; export CXX; \ + CXXFLAGS="$(CXXFLAGS_FOR_BUILD)"; export CXXFLAGS; \ + GFORTRAN="$(GFORTRAN_FOR_BUILD)"; export GFORTRAN; \ +@@ -173,6 +174,9 @@ BUILD_EXPORTS = \ + # built for the build system to override those in BASE_FLAGS_TO_PASS. + EXTRA_BUILD_FLAGS = \ + CFLAGS="$(CFLAGS_FOR_BUILD)" \ ++ CXXFLAGS="$(CXXFLAGS_FOR_BUILD)" \ ++ CPP="$(CC_FOR_BUILD) -E" \ ++ CPPFLAGS="$(CPPFLAGS_FOR_BUILD)" \ + LDFLAGS="$(LDFLAGS_FOR_BUILD)" + + # This is the list of directories to built for the host system. +@@ -190,6 +194,7 @@ HOST_SUBDIR = @host_subdir@ + HOST_EXPORTS = \ + $(BASE_EXPORTS) \ + CC="$(CC)"; export CC; \ ++ CPP="$(CC) -E"; export CPP; \ + ADA_CFLAGS="$(ADA_CFLAGS)"; export ADA_CFLAGS; \ + CFLAGS="$(CFLAGS)"; export CFLAGS; \ + CONFIG_SHELL="$(SHELL)"; export CONFIG_SHELL; \ +diff --git a/gcc/Makefile.in b/gcc/Makefile.in +index 21472745c2c..8c93f03ffdc 100644 +--- a/gcc/Makefile.in ++++ b/gcc/Makefile.in +@@ -805,7 +805,7 @@ BUILD_LDFLAGS=@BUILD_LDFLAGS@ + BUILD_NO_PIE_FLAG = @BUILD_NO_PIE_FLAG@ + BUILD_LDFLAGS += $(BUILD_NO_PIE_FLAG) + BUILD_CPPFLAGS= -I. -I$(@D) -I$(srcdir) -I$(srcdir)/$(@D) \ +- -I$(srcdir)/../include @INCINTL@ $(CPPINC) $(CPPFLAGS) ++ -I$(srcdir)/../include @INCINTL@ $(CPPINC) $(CPPFLAGS_FOR_BUILD) + + # Actual name to use when installing a native compiler. + GCC_INSTALL_NAME := $(shell echo gcc|sed '$(program_transform_name)') +diff --git a/gcc/configure b/gcc/configure +index 911de2cf017..325ace34cdf 100755 +--- a/gcc/configure ++++ b/gcc/configure +@@ -11965,7 +11965,7 @@ else + CC="${CC_FOR_BUILD}" CFLAGS="${CFLAGS_FOR_BUILD}" \ + CXX="${CXX_FOR_BUILD}" CXXFLAGS="${CXXFLAGS_FOR_BUILD}" \ + LD="${LD_FOR_BUILD}" LDFLAGS="${LDFLAGS_FOR_BUILD}" \ +- GMPINC="" CPPFLAGS="${CPPFLAGS} -DGENERATOR_FILE" \ ++ GMPINC="" CPPFLAGS="${CPPFLAGS_FOR_BUILD} -DGENERATOR_FILE" \ + ${realsrcdir}/configure \ + --enable-languages=${enable_languages-all} \ + --target=$target_alias --host=$build_alias --build=$build_alias +diff --git a/gcc/configure.ac b/gcc/configure.ac +index b413ae9bf25..72a6c95121b 100644 +--- a/gcc/configure.ac ++++ b/gcc/configure.ac +@@ -1743,7 +1743,7 @@ else + CC="${CC_FOR_BUILD}" CFLAGS="${CFLAGS_FOR_BUILD}" \ + CXX="${CXX_FOR_BUILD}" CXXFLAGS="${CXXFLAGS_FOR_BUILD}" \ + LD="${LD_FOR_BUILD}" LDFLAGS="${LDFLAGS_FOR_BUILD}" \ +- GMPINC="" CPPFLAGS="${CPPFLAGS} -DGENERATOR_FILE" \ ++ GMPINC="" CPPFLAGS="${CPPFLAGS_FOR_BUILD} -DGENERATOR_FILE" \ + ${realsrcdir}/configure \ + --enable-languages=${enable_languages-all} \ + --target=$target_alias --host=$build_alias --build=$build_alias +-- +2.22.1 + diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-9.2/0028-nios2-Define-MUSL_DYNAMIC_LINKER.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-9.2/0028-nios2-Define-MUSL_DYNAMIC_LINKER.patch new file mode 100644 index 00000000..84d92a33 --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-9.2/0028-nios2-Define-MUSL_DYNAMIC_LINKER.patch @@ -0,0 +1,28 @@ +From 5647f773e28b528a67800ef06ca44730f9f5dc7e Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Tue, 2 Feb 2016 10:26:10 -0800 +Subject: [PATCH 28/36] nios2: Define MUSL_DYNAMIC_LINKER + +Upstream-Status: Pending + +Signed-off-by: Marek Vasut +Signed-off-by: Khem Raj +--- + gcc/config/nios2/linux.h | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/gcc/config/nios2/linux.h b/gcc/config/nios2/linux.h +index 698734add35..eeee60ecfea 100644 +--- a/gcc/config/nios2/linux.h ++++ b/gcc/config/nios2/linux.h +@@ -30,6 +30,7 @@ + #define CPP_SPEC "%{posix:-D_POSIX_SOURCE} %{pthread:-D_REENTRANT}" + + #define GLIBC_DYNAMIC_LINKER "/lib/ld-linux-nios2.so.1" ++#define MUSL_DYNAMIC_LINKER "/lib/ld-musl-nios2.so.1" + + #undef LINK_SPEC + #define LINK_SPEC LINK_SPEC_ENDIAN \ +-- +2.22.1 + diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-9.2/0029-Add-ssp_nonshared-to-link-commandline-for-musl-targe.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-9.2/0029-Add-ssp_nonshared-to-link-commandline-for-musl-targe.patch new file mode 100644 index 00000000..d19e5a08 --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-9.2/0029-Add-ssp_nonshared-to-link-commandline-for-musl-targe.patch @@ -0,0 +1,87 @@ +From 474043ca7a064ca7b0a32308a0ed6f7c546f17b2 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Tue, 27 Jun 2017 18:10:54 -0700 +Subject: [PATCH 29/36] Add ssp_nonshared to link commandline for musl targets + +when -fstack-protector options are enabled we need to +link with ssp_shared on musl since it does not provide +the __stack_chk_fail_local() so essentially it provides +libssp but not libssp_nonshared something like +TARGET_LIBC_PROVIDES_SSP_BUT_NOT_SSP_NONSHARED + where-as for glibc the needed symbols +are already present in libc_nonshared library therefore +we do not need any library helper on glibc based systems +but musl needs the libssp_noshared from gcc + +Upstream-Status: Pending + +Signed-off-by: Khem Raj +--- + gcc/config/linux.h | 7 +++++++ + gcc/config/rs6000/linux.h | 10 ++++++++++ + gcc/config/rs6000/linux64.h | 10 ++++++++++ + 3 files changed, 27 insertions(+) + +diff --git a/gcc/config/linux.h b/gcc/config/linux.h +index 4b05d8e93d1..0ca117e2ed4 100644 +--- a/gcc/config/linux.h ++++ b/gcc/config/linux.h +@@ -195,6 +195,13 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see + { GCC_INCLUDE_DIR, "GCC", 0, 1, 0, 0 }, \ + { 0, 0, 0, 0, 0, 0 } \ + } ++#ifdef TARGET_LIBC_PROVIDES_SSP ++#undef LINK_SSP_SPEC ++#define LINK_SSP_SPEC "%{fstack-protector|fstack-protector-all" \ ++ "|fstack-protector-strong|fstack-protector-explicit" \ ++ ":-lssp_nonshared}" ++#endif ++ + #endif + + #if (DEFAULT_LIBC == LIBC_UCLIBC) && defined (SINGLE_LIBC) /* uClinux */ +diff --git a/gcc/config/rs6000/linux.h b/gcc/config/rs6000/linux.h +index ffceb32bf65..c82cb2ad05b 100644 +--- a/gcc/config/rs6000/linux.h ++++ b/gcc/config/rs6000/linux.h +@@ -94,6 +94,16 @@ + " -m elf32ppclinux") + #endif + ++/* link libssp_nonshared.a with musl */ ++#if DEFAULT_LIBC == LIBC_MUSL ++#ifdef TARGET_LIBC_PROVIDES_SSP ++#undef LINK_SSP_SPEC ++#define LINK_SSP_SPEC "%{fstack-protector|fstack-protector-all" \ ++ "|fstack-protector-strong|fstack-protector-explicit" \ ++ ":-lssp_nonshared}" ++#endif ++#endif ++ + #undef LINK_OS_LINUX_SPEC + #define LINK_OS_LINUX_SPEC LINK_OS_LINUX_EMUL " %{!shared: %{!static: \ + %{!static-pie: \ +diff --git a/gcc/config/rs6000/linux64.h b/gcc/config/rs6000/linux64.h +index 45a9a7cae59..d1e88a40e82 100644 +--- a/gcc/config/rs6000/linux64.h ++++ b/gcc/config/rs6000/linux64.h +@@ -456,6 +456,16 @@ extern int dot_symbols; + " -m elf64ppc") + #endif + ++/* link libssp_nonshared.a with musl */ ++#if DEFAULT_LIBC == LIBC_MUSL ++#ifdef TARGET_LIBC_PROVIDES_SSP ++#undef LINK_SSP_SPEC ++#define LINK_SSP_SPEC "%{fstack-protector|fstack-protector-all" \ ++ "|fstack-protector-strong|fstack-protector-explicit" \ ++ ":-lssp_nonshared}" ++#endif ++#endif ++ + #define LINK_OS_LINUX_SPEC32 LINK_OS_LINUX_EMUL32 " %{!shared: %{!static: \ + %{!static-pie: \ + %{rdynamic:-export-dynamic} \ +-- +2.22.1 + diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-9.2/0030-libgcc-Add-knob-to-use-ldbl-128-on-ppc.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-9.2/0030-libgcc-Add-knob-to-use-ldbl-128-on-ppc.patch new file mode 100644 index 00000000..38eab5a0 --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-9.2/0030-libgcc-Add-knob-to-use-ldbl-128-on-ppc.patch @@ -0,0 +1,79 @@ +From 47467f3ab0fb2f2fcede81060fe8bb339d0909eb Mon Sep 17 00:00:00 2001 +From: Szabolcs Nagy +Date: Wed, 28 Feb 2018 00:54:05 +0000 +Subject: [PATCH 10/12] ldbl128 config + +Upstream-Status: Pending + +Signed-off-by: Khem Raj +--- + gcc/configure | 13 +++++++++++++ + gcc/configure.ac | 16 ++++++++++++++-- + 2 files changed, 27 insertions(+), 2 deletions(-) + +diff --git a/gcc/configure b/gcc/configure +index 6121e163259..07ff8597d48 100755 +--- a/gcc/configure ++++ b/gcc/configure +@@ -29309,6 +29309,15 @@ if test "${with_long_double_128+set}" = set; then : + withval=$with_long_double_128; gcc_cv_target_ldbl128="$with_long_double_128" + else + ++ case "$target" in ++ s390*-*-linux-musl*) ++ gcc_cv_target_ldbl128=yes ++ ;; ++ powerpc*-*-linux-musl*) ++ gcc_cv_target_ldbl128=no ++ ;; ++ *) ++ + if test $glibc_version_major -gt 2 \ + || ( test $glibc_version_major -eq 2 && test $glibc_version_minor -ge 4 ); then : + gcc_cv_target_ldbl128=yes +@@ -29320,6 +29329,10 @@ else + && gcc_cv_target_ldbl128=yes + + fi ++ ++ ;; ++ esac ++ + fi + + ;; +diff --git a/gcc/configure.ac b/gcc/configure.ac +index b066cc609e1..6c15ed898c0 100644 +--- a/gcc/configure.ac ++++ b/gcc/configure.ac +@@ -5971,13 +5971,25 @@ case "$target" in + AC_ARG_WITH(long-double-128, + [AS_HELP_STRING([--with-long-double-128], + [use 128-bit long double by default])], +- gcc_cv_target_ldbl128="$with_long_double_128", ++ gcc_cv_target_ldbl128="$with_long_double_128", [ ++ case "$target" in ++ s390*-*-linux-musl*) ++ gcc_cv_target_ldbl128=yes ++ ;; ++ powerpc*-*-linux-musl*) ++ gcc_cv_target_ldbl128=no ++ ;; ++ *)] + [GCC_GLIBC_VERSION_GTE_IFELSE([2], [4], [gcc_cv_target_ldbl128=yes], [ + [gcc_cv_target_ldbl128=no + grep '^[ ]*#[ ]*define[ ][ ]*__LONG_DOUBLE_MATH_OPTIONAL' \ + $target_header_dir/bits/wordsize.h > /dev/null 2>&1 \ + && gcc_cv_target_ldbl128=yes +- ]])]) ++ ]])] ++ [ ++ ;; ++ esac ++ ]) + ;; + esac + if test x$gcc_cv_target_ldbl128 = xyes; then +-- +2.17.1 + diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-9.2/0031-Link-libgcc-using-LDFLAGS-not-just-SHLIB_LDFLAGS.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-9.2/0031-Link-libgcc-using-LDFLAGS-not-just-SHLIB_LDFLAGS.patch new file mode 100644 index 00000000..dc2141d7 --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-9.2/0031-Link-libgcc-using-LDFLAGS-not-just-SHLIB_LDFLAGS.patch @@ -0,0 +1,29 @@ +From 266dcc78e4d9d38de2809118977d97dc9270cf1f Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Wed, 4 May 2016 21:11:34 -0700 +Subject: [PATCH 31/36] Link libgcc using LDFLAGS, not just SHLIB_LDFLAGS + +Upstream-Status: Pending + +Signed-off-by: Christopher Larson +Signed-off-by: Khem Raj +--- + libgcc/config/t-slibgcc | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/libgcc/config/t-slibgcc b/libgcc/config/t-slibgcc +index 099bf23e62f..436b277a79f 100644 +--- a/libgcc/config/t-slibgcc ++++ b/libgcc/config/t-slibgcc +@@ -32,7 +32,7 @@ SHLIB_INSTALL_SOLINK = $(LN_S) $(SHLIB_SONAME) \ + $(DESTDIR)$(slibdir)$(SHLIB_SLIBDIR_QUAL)/$(SHLIB_SOLINK) + + SHLIB_LINK = $(CC) $(LIBGCC2_CFLAGS) -shared -nodefaultlibs \ +- $(SHLIB_LDFLAGS) \ ++ $(LDFLAGS) $(SHLIB_LDFLAGS) \ + -o $(SHLIB_DIR)/$(SHLIB_SONAME).tmp @multilib_flags@ \ + $(SHLIB_OBJS) $(SHLIB_LC) && \ + rm -f $(SHLIB_DIR)/$(SHLIB_SOLINK) && \ +-- +2.22.1 + diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-9.2/0032-libgcc_s-Use-alias-for-__cpu_indicator_init-instead-.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-9.2/0032-libgcc_s-Use-alias-for-__cpu_indicator_init-instead-.patch new file mode 100644 index 00000000..8dde016c --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-9.2/0032-libgcc_s-Use-alias-for-__cpu_indicator_init-instead-.patch @@ -0,0 +1,86 @@ +From 9975b6ed3570bbf7c7d2d82f4d5f733d24ccacf5 Mon Sep 17 00:00:00 2001 +From: Szabolcs Nagy +Date: Sat, 24 Oct 2015 20:09:53 +0000 +Subject: [PATCH 32/36] libgcc_s: Use alias for __cpu_indicator_init instead of + symver + +Adapter from + +https://gcc.gnu.org/ml/gcc-patches/2015-05/msg00899.html + +This fix was debated but hasnt been applied gcc upstream since +they expect musl to support '@' in symbol versioning which is +a sun/gnu versioning extention. This patch however avoids the +need for the '@' symbols at all + +libgcc/Changelog: + +2015-05-11 Szabolcs Nagy + + * config/i386/cpuinfo.c (__cpu_indicator_init_local): Add. + (__cpu_indicator_init@GCC_4.8.0, __cpu_model@GCC_4.8.0): Remove. + + * config/i386/t-linux (HOST_LIBGCC2_CFLAGS): Remove -DUSE_ELF_SYMVER. + +gcc/Changelog: + +2015-05-11 Szabolcs Nagy + + * config/i386/i386.c (ix86_expand_builtin): Make __builtin_cpu_init + call __cpu_indicator_init_local instead of __cpu_indicator_init. + +Upstream-Status: Pending + +Signed-off-by: Khem Raj +--- + gcc/config/i386/i386.c | 4 ++-- + libgcc/config/i386/cpuinfo.c | 6 +++--- + libgcc/config/i386/t-linux | 2 +- + 3 files changed, 6 insertions(+), 6 deletions(-) + +diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c +index 2b37296e537..dd380ddba88 100644 +--- a/gcc/config/i386/i386.c ++++ b/gcc/config/i386/i386.c +@@ -36658,10 +36658,10 @@ ix86_expand_builtin (tree exp, rtx target, rtx subtarget, + { + case IX86_BUILTIN_CPU_INIT: + { +- /* Make it call __cpu_indicator_init in libgcc. */ ++ /* Make it call __cpu_indicator_init_local in libgcc.a. */ + tree call_expr, fndecl, type; + type = build_function_type_list (integer_type_node, NULL_TREE); +- fndecl = build_fn_decl ("__cpu_indicator_init", type); ++ fndecl = build_fn_decl ("__cpu_indicator_init_local", type); + call_expr = build_call_expr (fndecl, 0); + return expand_expr (call_expr, target, mode, EXPAND_NORMAL); + } +diff --git a/libgcc/config/i386/cpuinfo.c b/libgcc/config/i386/cpuinfo.c +index d6cb2de6265..ce04ef78205 100644 +--- a/libgcc/config/i386/cpuinfo.c ++++ b/libgcc/config/i386/cpuinfo.c +@@ -504,7 +504,7 @@ __cpu_indicator_init (void) + return 0; + } + +-#if defined SHARED && defined USE_ELF_SYMVER +-__asm__ (".symver __cpu_indicator_init, __cpu_indicator_init@GCC_4.8.0"); +-__asm__ (".symver __cpu_model, __cpu_model@GCC_4.8.0"); ++#ifndef SHARED ++int __cpu_indicator_init_local (void) ++ __attribute__ ((weak, alias ("__cpu_indicator_init"))); + #endif +diff --git a/libgcc/config/i386/t-linux b/libgcc/config/i386/t-linux +index 8506a635790..564296f788e 100644 +--- a/libgcc/config/i386/t-linux ++++ b/libgcc/config/i386/t-linux +@@ -3,5 +3,5 @@ + # t-slibgcc-elf-ver and t-linux + SHLIB_MAPFILES = libgcc-std.ver $(srcdir)/config/i386/libgcc-glibc.ver + +-HOST_LIBGCC2_CFLAGS += -mlong-double-80 -DUSE_ELF_SYMVER $(CET_FLAGS) ++HOST_LIBGCC2_CFLAGS += -mlong-double-80 $(CET_FLAGS) + CRTSTUFF_T_CFLAGS += $(CET_FLAGS) +-- +2.22.1 + diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-9.2/0033-sync-gcc-stddef.h-with-musl.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-9.2/0033-sync-gcc-stddef.h-with-musl.patch new file mode 100644 index 00000000..b99ac429 --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-9.2/0033-sync-gcc-stddef.h-with-musl.patch @@ -0,0 +1,91 @@ +From 39e2f61d262f9f6c7a91068998dea80791ef665e Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Fri, 3 Feb 2017 12:56:00 -0800 +Subject: [PATCH 33/36] sync gcc stddef.h with musl + +musl defines ptrdiff_t size_t and wchar_t +so dont define them here if musl is definining them + +Upstream-Status: Pending + +Signed-off-by: Khem Raj +--- + gcc/ginclude/stddef.h | 9 +++++++++ + 1 file changed, 9 insertions(+) + +diff --git a/gcc/ginclude/stddef.h b/gcc/ginclude/stddef.h +index da692e1c01a..9a00c261adb 100644 +--- a/gcc/ginclude/stddef.h ++++ b/gcc/ginclude/stddef.h +@@ -128,6 +128,7 @@ _TYPE_wchar_t; + #ifndef ___int_ptrdiff_t_h + #ifndef _GCC_PTRDIFF_T + #ifndef _PTRDIFF_T_DECLARED /* DragonFly */ ++#ifndef __DEFINED_ptrdiff_t /* musl */ + #define _PTRDIFF_T + #define _T_PTRDIFF_ + #define _T_PTRDIFF +@@ -137,10 +138,12 @@ _TYPE_wchar_t; + #define ___int_ptrdiff_t_h + #define _GCC_PTRDIFF_T + #define _PTRDIFF_T_DECLARED ++#define __DEFINED_ptrdiff_t /* musl */ + #ifndef __PTRDIFF_TYPE__ + #define __PTRDIFF_TYPE__ long int + #endif + typedef __PTRDIFF_TYPE__ ptrdiff_t; ++#endif /* __DEFINED_ptrdiff_t */ + #endif /* _PTRDIFF_T_DECLARED */ + #endif /* _GCC_PTRDIFF_T */ + #endif /* ___int_ptrdiff_t_h */ +@@ -178,6 +181,7 @@ typedef __PTRDIFF_TYPE__ ptrdiff_t; + #ifndef _GCC_SIZE_T + #ifndef _SIZET_ + #ifndef __size_t ++#ifndef __DEFINED_size_t /* musl */ + #define __size_t__ /* BeOS */ + #define __SIZE_T__ /* Cray Unicos/Mk */ + #define _SIZE_T +@@ -194,6 +198,7 @@ typedef __PTRDIFF_TYPE__ ptrdiff_t; + #define ___int_size_t_h + #define _GCC_SIZE_T + #define _SIZET_ ++#define __DEFINED_size_t /* musl */ + #if defined (__FreeBSD__) \ + || defined(__DragonFly__) \ + || defined(__FreeBSD_kernel__) \ +@@ -228,6 +233,7 @@ typedef long ssize_t; + #endif /* _SIZE_T */ + #endif /* __SIZE_T__ */ + #endif /* __size_t__ */ ++#endif /* __DEFINED_size_t */ + #undef __need_size_t + #endif /* _STDDEF_H or __need_size_t. */ + +@@ -257,6 +263,7 @@ typedef long ssize_t; + #ifndef ___int_wchar_t_h + #ifndef __INT_WCHAR_T_H + #ifndef _GCC_WCHAR_T ++#ifndef __DEFINED_wchar_t /* musl */ + #define __wchar_t__ /* BeOS */ + #define __WCHAR_T__ /* Cray Unicos/Mk */ + #define _WCHAR_T +@@ -272,6 +279,7 @@ typedef long ssize_t; + #define __INT_WCHAR_T_H + #define _GCC_WCHAR_T + #define _WCHAR_T_DECLARED ++#define __DEFINED_wchar_t /* musl */ + + /* On BSD/386 1.1, at least, machine/ansi.h defines _BSD_WCHAR_T_ + instead of _WCHAR_T_, and _BSD_RUNE_T_ (which, unlike the other +@@ -337,6 +345,7 @@ typedef __WCHAR_TYPE__ wchar_t; + #endif + #endif /* __WCHAR_T__ */ + #endif /* __wchar_t__ */ ++#endif /* __DEFINED_wchar_t musl */ + #undef __need_wchar_t + #endif /* _STDDEF_H or __need_wchar_t. */ + +-- +2.22.1 + diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-9.2/0034-fix-segmentation-fault-in-precompiled-header-generat.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-9.2/0034-fix-segmentation-fault-in-precompiled-header-generat.patch new file mode 100644 index 00000000..06a3c9f8 --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-9.2/0034-fix-segmentation-fault-in-precompiled-header-generat.patch @@ -0,0 +1,60 @@ +From aaa896a57b0004a74c1d474e74b21f41147a65cb Mon Sep 17 00:00:00 2001 +From: Juro Bystricky +Date: Mon, 19 Mar 2018 22:31:20 -0700 +Subject: [PATCH 34/36] fix segmentation fault in precompiled header generation + +Prevent a segmentation fault which occurs when using incorrect +structure trying to access name of some named operators, such as +CPP_NOT, CPP_AND etc. "token->val.node.spelling" cannot be used in +those cases, as is may not be initialized at all. + +[YOCTO #11738] + +Upstream-Status: Pending + +Signed-off-by: Juro Bystricky +Signed-off-by: Khem Raj +--- + libcpp/lex.c | 26 +++++++++++++++++++++----- + 1 file changed, 21 insertions(+), 5 deletions(-) + +diff --git a/libcpp/lex.c b/libcpp/lex.c +index eedfcbb3146..15040a1b1f0 100644 +--- a/libcpp/lex.c ++++ b/libcpp/lex.c +@@ -3280,11 +3280,27 @@ cpp_spell_token (cpp_reader *pfile, const cpp_token *token, + spell_ident: + case SPELL_IDENT: + if (forstring) +- { +- memcpy (buffer, NODE_NAME (token->val.node.spelling), +- NODE_LEN (token->val.node.spelling)); +- buffer += NODE_LEN (token->val.node.spelling); +- } ++ { ++ if (token->type == CPP_NAME) ++ { ++ memcpy (buffer, NODE_NAME (token->val.node.spelling), ++ NODE_LEN (token->val.node.spelling)); ++ buffer += NODE_LEN (token->val.node.spelling); ++ break; ++ } ++ /* NAMED_OP, cannot use node.spelling */ ++ if (token->flags & NAMED_OP) ++ { ++ const char *str = cpp_named_operator2name (token->type); ++ if (str) ++ { ++ size_t len = strlen(str); ++ memcpy(buffer, str, len); ++ buffer += len; ++ } ++ break; ++ } ++ } + else + buffer = _cpp_spell_ident_ucns (buffer, token->val.node.node); + break; +-- +2.22.1 + diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-9.2/0035-Fix-for-testsuite-failure.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-9.2/0035-Fix-for-testsuite-failure.patch new file mode 100644 index 00000000..7470cbfc --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-9.2/0035-Fix-for-testsuite-failure.patch @@ -0,0 +1,258 @@ +From 0f9d449c739df03782ce9d29f6b68d9af976a607 Mon Sep 17 00:00:00 2001 +From: RAGHUNATH LOLUR +Date: Wed, 6 Dec 2017 22:52:26 -0800 +Subject: [PATCH 35/36] Fix for testsuite failure + +2017-11-16 Raghunath Lolur + + * gcc.dg/pr56275.c: If SSE is disabled, ensure that + "-mfpmath" is not set to use SSE. Set "-mfpmath=387". + * gcc.dg/pr68306.c: Likewise + * gcc.dg/pr68306-2.c: Likewise + * gcc.dg/pr68306-3.c: Likewise + * gcc.dg/pr69634.c: Likewise + * gcc.target/i386/amd64-abi-1.c: Likewise + * gcc.target/i386/funcspec-6.c: Likewise + * gcc.target/i386/interrupt-387-err-1.c: Likewise + * gcc.target/i386/isa-14.c: Likewise + * gcc.target/i386/pr44948-2b.c: Likewise + * gcc.target/i386/pr53425-1.c: Likewise + * gcc.target/i386/pr53425-2.c: Likewise + * gcc.target/i386/pr55247.c: Likewise + * gcc.target/i386/pr59644.c: Likewise + * gcc.target/i386/pr62120.c: Likewise + * gcc.target/i386/pr70467-1.c: Likewise + * gcc.target/i386/warn-vect-op-1.c: Likewise + +If -Wall, -Werror are used during compilation various test cases fail +to compile. + +If SSE is disabled, be sure to -mfpmath=387 to resolve this. + +This patch removes the changes to Changelog from the original patch. +This will help us avoid conflicts. + +Upstream-Status: Pending + +Signed-off-by: Mark Hatle +--- + gcc/testsuite/gcc.dg/pr56275.c | 2 +- + gcc/testsuite/gcc.dg/pr68306-2.c | 2 +- + gcc/testsuite/gcc.dg/pr68306-3.c | 2 +- + gcc/testsuite/gcc.dg/pr68306.c | 2 +- + gcc/testsuite/gcc.dg/pr69634.c | 2 +- + gcc/testsuite/gcc.target/i386/amd64-abi-1.c | 2 +- + gcc/testsuite/gcc.target/i386/funcspec-6.c | 1 + + gcc/testsuite/gcc.target/i386/interrupt-387-err-1.c | 2 +- + gcc/testsuite/gcc.target/i386/isa-14.c | 2 +- + gcc/testsuite/gcc.target/i386/pr44948-2b.c | 2 +- + gcc/testsuite/gcc.target/i386/pr53425-1.c | 2 +- + gcc/testsuite/gcc.target/i386/pr53425-2.c | 2 +- + gcc/testsuite/gcc.target/i386/pr55247.c | 2 +- + gcc/testsuite/gcc.target/i386/pr59644.c | 2 +- + gcc/testsuite/gcc.target/i386/pr62120.c | 2 +- + gcc/testsuite/gcc.target/i386/pr70467-1.c | 2 +- + gcc/testsuite/gcc.target/i386/warn-vect-op-1.c | 2 +- + 17 files changed, 17 insertions(+), 16 deletions(-) + +diff --git a/gcc/testsuite/gcc.dg/pr56275.c b/gcc/testsuite/gcc.dg/pr56275.c +index b901bb2b199..a4f6c95e1a1 100644 +--- a/gcc/testsuite/gcc.dg/pr56275.c ++++ b/gcc/testsuite/gcc.dg/pr56275.c +@@ -1,6 +1,6 @@ + /* { dg-do compile } */ + /* { dg-options "-O2" } */ +-/* { dg-additional-options "-mno-sse" { target { i?86-*-* x86_64-*-* } } } */ ++/* { dg-additional-options "-mno-sse -mfpmath=387" { target { i?86-*-* x86_64-*-* } } } */ + + typedef long long v2tw __attribute__ ((vector_size (2 * sizeof (long long)))); + +diff --git a/gcc/testsuite/gcc.dg/pr68306-2.c b/gcc/testsuite/gcc.dg/pr68306-2.c +index 4672ebe7987..2a368c484b6 100644 +--- a/gcc/testsuite/gcc.dg/pr68306-2.c ++++ b/gcc/testsuite/gcc.dg/pr68306-2.c +@@ -1,6 +1,6 @@ + /* { dg-do compile } */ + /* { dg-options "-O3" } */ +-/* { dg-additional-options "-mno-sse -mno-mmx" { target i?86-*-* x86_64-*-* } } */ ++/* { dg-additional-options "-mno-sse -mno-mmx -mfpmath=387" { target i?86-*-* x86_64-*-* } } */ + + struct { + int tz_minuteswest; +diff --git a/gcc/testsuite/gcc.dg/pr68306-3.c b/gcc/testsuite/gcc.dg/pr68306-3.c +index f5a8c102cf8..df3390c64c2 100644 +--- a/gcc/testsuite/gcc.dg/pr68306-3.c ++++ b/gcc/testsuite/gcc.dg/pr68306-3.c +@@ -1,6 +1,6 @@ + /* { dg-do compile } */ + /* { dg-options "-O3" } */ +-/* { dg-additional-options "-mno-sse -mno-mmx" { target i?86-*-* x86_64-*-* } } */ ++/* { dg-additional-options "-mno-sse -mno-mmx -mfpmath=387" { target i?86-*-* x86_64-*-* } } */ + /* { dg-additional-options "-mno-altivec -mno-vsx" { target powerpc*-*-* } } */ + + extern void fn2(); +diff --git a/gcc/testsuite/gcc.dg/pr68306.c b/gcc/testsuite/gcc.dg/pr68306.c +index 54e5b40f221..0813389e2c1 100644 +--- a/gcc/testsuite/gcc.dg/pr68306.c ++++ b/gcc/testsuite/gcc.dg/pr68306.c +@@ -1,6 +1,6 @@ + /* { dg-do compile } */ + /* { dg-options "-O3" } */ +-/* { dg-additional-options "-mno-sse -mno-mmx" { target i?86-*-* x86_64-*-* } } */ ++/* { dg-additional-options "-mno-sse -mno-mmx -mfpmath=387" { target i?86-*-* x86_64-*-* } } */ + + enum powerpc_pmc_type { PPC_PMC_IBM }; + struct { +diff --git a/gcc/testsuite/gcc.dg/pr69634.c b/gcc/testsuite/gcc.dg/pr69634.c +index 60a56149463..bcc23f9ccd6 100644 +--- a/gcc/testsuite/gcc.dg/pr69634.c ++++ b/gcc/testsuite/gcc.dg/pr69634.c +@@ -1,6 +1,6 @@ + /* { dg-do compile } */ + /* { dg-options "-O2 -fno-dce -fschedule-insns -fno-tree-vrp -fcompare-debug -Wno-psabi" } */ +-/* { dg-additional-options "-mno-sse" { target i?86-*-* x86_64-*-* } } */ ++/* { dg-additional-options "-mno-sse -mfpmath=387" { target i?86-*-* x86_64-*-* } } */ + /* { dg-require-effective-target scheduling } */ + + typedef unsigned short u16; +diff --git a/gcc/testsuite/gcc.target/i386/amd64-abi-1.c b/gcc/testsuite/gcc.target/i386/amd64-abi-1.c +index 69fde57bf06..7f1f1c03edf 100644 +--- a/gcc/testsuite/gcc.target/i386/amd64-abi-1.c ++++ b/gcc/testsuite/gcc.target/i386/amd64-abi-1.c +@@ -1,5 +1,5 @@ + /* { dg-do compile { target { ! ia32 } } } */ +-/* { dg-options "-mno-sse" } */ ++/* { dg-options "-mno-sse -mfpmath=387" } */ + /* { dg-additional-options "-mabi=sysv" { target *-*-mingw* } } */ + + double foo(void) { return 0; } /* { dg-error "SSE disabled" } */ +diff --git a/gcc/testsuite/gcc.target/i386/funcspec-6.c b/gcc/testsuite/gcc.target/i386/funcspec-6.c +index ea896b7ebfd..bf15569b826 100644 +--- a/gcc/testsuite/gcc.target/i386/funcspec-6.c ++++ b/gcc/testsuite/gcc.target/i386/funcspec-6.c +@@ -1,6 +1,7 @@ + /* Test whether all of the 64-bit function specific options are accepted + without error. */ + /* { dg-do compile { target { ! ia32 } } } */ ++/* { dg-additional-options "-mfpmath=387" } */ + + #include "funcspec-56.inc" + +diff --git a/gcc/testsuite/gcc.target/i386/interrupt-387-err-1.c b/gcc/testsuite/gcc.target/i386/interrupt-387-err-1.c +index 8561a3c26d6..6377f814645 100644 +--- a/gcc/testsuite/gcc.target/i386/interrupt-387-err-1.c ++++ b/gcc/testsuite/gcc.target/i386/interrupt-387-err-1.c +@@ -1,5 +1,5 @@ + /* { dg-do compile } */ +-/* { dg-options "-O2 -mgeneral-regs-only -mno-cld -mno-iamcu -m80387" } */ ++/* { dg-options "-O2 -mgeneral-regs-only -mno-cld -mno-iamcu -m80387 -mfpmath=387" } */ + + typedef unsigned int uword_t __attribute__ ((mode (__word__))); + +diff --git a/gcc/testsuite/gcc.target/i386/isa-14.c b/gcc/testsuite/gcc.target/i386/isa-14.c +index 5d49e6e77fe..1de2db92bdd 100644 +--- a/gcc/testsuite/gcc.target/i386/isa-14.c ++++ b/gcc/testsuite/gcc.target/i386/isa-14.c +@@ -1,5 +1,5 @@ + /* { dg-do run } */ +-/* { dg-options "-march=x86-64 -msse4a -mfma4 -mno-sse" } */ ++/* { dg-options "-march=x86-64 -msse4a -mfma4 -mno-sse -mfpmath=387" } */ + + extern void abort (void); + +diff --git a/gcc/testsuite/gcc.target/i386/pr44948-2b.c b/gcc/testsuite/gcc.target/i386/pr44948-2b.c +index fa1769b62fb..f79fb12726f 100644 +--- a/gcc/testsuite/gcc.target/i386/pr44948-2b.c ++++ b/gcc/testsuite/gcc.target/i386/pr44948-2b.c +@@ -1,5 +1,5 @@ + /* { dg-do compile } */ +-/* { dg-options "-O -mno-sse -Wno-psabi -mtune=generic" } */ ++/* { dg-options "-O -mno-sse -Wno-psabi -mtune=generic -mfpmath=387" } */ + + struct A + { +diff --git a/gcc/testsuite/gcc.target/i386/pr53425-1.c b/gcc/testsuite/gcc.target/i386/pr53425-1.c +index 2e89ff7d81d..6339bf6b736 100644 +--- a/gcc/testsuite/gcc.target/i386/pr53425-1.c ++++ b/gcc/testsuite/gcc.target/i386/pr53425-1.c +@@ -1,6 +1,6 @@ + /* PR target/53425 */ + /* { dg-do compile { target { ! ia32 } } } */ +-/* { dg-options "-O2 -mno-sse" } */ ++/* { dg-options "-O2 -mno-sse -mfpmath=387" } */ + /* { dg-skip-if "no SSE vector" { x86_64-*-mingw* } } */ + + typedef double __v2df __attribute__ ((__vector_size__ (16))); +diff --git a/gcc/testsuite/gcc.target/i386/pr53425-2.c b/gcc/testsuite/gcc.target/i386/pr53425-2.c +index 61f6283dbe9..2c5a55f0ac3 100644 +--- a/gcc/testsuite/gcc.target/i386/pr53425-2.c ++++ b/gcc/testsuite/gcc.target/i386/pr53425-2.c +@@ -1,6 +1,6 @@ + /* PR target/53425 */ + /* { dg-do compile { target { ! ia32 } } } */ +-/* { dg-options "-O2 -mno-sse" } */ ++/* { dg-options "-O2 -mno-sse -mfpmath=387" } */ + /* { dg-skip-if "no SSE vector" { x86_64-*-mingw* } } */ + + typedef float __v2sf __attribute__ ((__vector_size__ (8))); +diff --git a/gcc/testsuite/gcc.target/i386/pr55247.c b/gcc/testsuite/gcc.target/i386/pr55247.c +index 23366d0909d..9810e3abb76 100644 +--- a/gcc/testsuite/gcc.target/i386/pr55247.c ++++ b/gcc/testsuite/gcc.target/i386/pr55247.c +@@ -1,6 +1,6 @@ + /* { dg-do compile { target { ! ia32 } } } */ + /* { dg-require-effective-target maybe_x32 } */ +-/* { dg-options "-O2 -mno-sse -mno-mmx -mx32 -maddress-mode=long" } */ ++/* { dg-options "-O2 -mno-sse -mno-mmx -mx32 -maddress-mode=long -mfpmath=387" } */ + + typedef unsigned int uint32_t; + typedef uint32_t Elf32_Word; +diff --git a/gcc/testsuite/gcc.target/i386/pr59644.c b/gcc/testsuite/gcc.target/i386/pr59644.c +index 96006b3e338..4287e4538bf 100644 +--- a/gcc/testsuite/gcc.target/i386/pr59644.c ++++ b/gcc/testsuite/gcc.target/i386/pr59644.c +@@ -1,6 +1,6 @@ + /* PR target/59644 */ + /* { dg-do run { target lp64 } } */ +-/* { dg-options "-O2 -ffreestanding -mno-sse -mpreferred-stack-boundary=3 -maccumulate-outgoing-args -mno-red-zone" } */ ++/* { dg-options "-O2 -ffreestanding -mno-sse -mpreferred-stack-boundary=3 -maccumulate-outgoing-args -mno-red-zone -mfpmath=387" } */ + + /* This test uses __builtin_trap () instead of e.g. abort, + because due to -mpreferred-stack-boundary=3 it should not call +diff --git a/gcc/testsuite/gcc.target/i386/pr62120.c b/gcc/testsuite/gcc.target/i386/pr62120.c +index bfb8c4703eb..ed04cf181f3 100644 +--- a/gcc/testsuite/gcc.target/i386/pr62120.c ++++ b/gcc/testsuite/gcc.target/i386/pr62120.c +@@ -1,5 +1,5 @@ + /* { dg-do compile } */ +-/* { dg-options "-mno-sse" } */ ++/* { dg-options "-mno-sse -mfpmath=387" } */ + + void foo () + { +diff --git a/gcc/testsuite/gcc.target/i386/pr70467-1.c b/gcc/testsuite/gcc.target/i386/pr70467-1.c +index 4e112c88d07..bcfb396a68d 100644 +--- a/gcc/testsuite/gcc.target/i386/pr70467-1.c ++++ b/gcc/testsuite/gcc.target/i386/pr70467-1.c +@@ -1,6 +1,6 @@ + /* PR rtl-optimization/70467 */ + /* { dg-do compile } */ +-/* { dg-options "-O2 -mno-sse" } */ ++/* { dg-options "-O2 -mno-sse -mfpmath=387" } */ + + void foo (unsigned long long *); + +diff --git a/gcc/testsuite/gcc.target/i386/warn-vect-op-1.c b/gcc/testsuite/gcc.target/i386/warn-vect-op-1.c +index 6cda1534311..26e37f5b8ba 100644 +--- a/gcc/testsuite/gcc.target/i386/warn-vect-op-1.c ++++ b/gcc/testsuite/gcc.target/i386/warn-vect-op-1.c +@@ -1,5 +1,5 @@ + /* { dg-do compile { target { ! ia32 } } } */ +-/* { dg-options "-mno-sse -Wvector-operation-performance" } */ ++/* { dg-options "-mno-sse -Wvector-operation-performance -mfpmath=387" } */ + #define vector(elcount, type) \ + __attribute__((vector_size((elcount)*sizeof(type)))) type + +-- +2.22.1 + diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-9.2/0036-Re-introduce-spe-commandline-options.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-9.2/0036-Re-introduce-spe-commandline-options.patch new file mode 100644 index 00000000..4dbcd989 --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-9.2/0036-Re-introduce-spe-commandline-options.patch @@ -0,0 +1,41 @@ +From 71e99c2b58a9eb00cdd65a04aeb6fb78227e3297 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Wed, 6 Jun 2018 12:10:22 -0700 +Subject: [PATCH 36/36] Re-introduce spe commandline options + +This should ensure that we keep accepting +spe options + +Upstream-Status: Inappropriate [SPE port is removed from rs600 port] + +Signed-off-by: Khem Raj +--- + gcc/config/rs6000/rs6000.opt | 12 ++++++++++++ + 1 file changed, 12 insertions(+) + +diff --git a/gcc/config/rs6000/rs6000.opt b/gcc/config/rs6000/rs6000.opt +index f4b5c91e11f..69869350fce 100644 +--- a/gcc/config/rs6000/rs6000.opt ++++ b/gcc/config/rs6000/rs6000.opt +@@ -345,6 +345,18 @@ mdebug= + Target RejectNegative Joined + -mdebug= Enable debug output. + ++mspe ++Target Var(rs6000_spe) Save ++Generate SPE SIMD instructions on E500. ++ ++mabi=spe ++Target RejectNegative Var(rs6000_spe_abi) Save ++Use the SPE ABI extensions. ++ ++mabi=no-spe ++Target RejectNegative Var(rs6000_spe_abi, 0) ++Do not use the SPE ABI extensions. ++ + mabi=altivec + Target RejectNegative Var(rs6000_altivec_abi) Save + Use the AltiVec ABI extensions. +-- +2.22.1 + diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-9.2/CVE-2019-14250.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-9.2/CVE-2019-14250.patch new file mode 100644 index 00000000..65ea3455 --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-9.2/CVE-2019-14250.patch @@ -0,0 +1,44 @@ +From 517b211a3d78366ca8d5929f580e8ca72fd2c004 Mon Sep 17 00:00:00 2001 +From: rguenth +Date: Thu, 25 Jul 2019 10:46:54 +0000 +Subject: [PATCH] 2019-07-25 Richard Biener + + PR lto/90924 + Backport from mainline + 2019-07-12 Ren Kimura + + * simple-object-elf.c (simple_object_elf_match): Check zero value + shstrndx. + + +git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-9-branch@273793 138bc75d-0d04-0410-961f-82ee72b054a4 + +Upstream-Status: Backport +Affectes: < 9.2 +CVE: CVE-2019-14250 +Dropped changelog +Signed-off-by: Armin Kuster + +--- + libiberty/simple-object-elf.c | 8 ++++++++ + 2 files changed, 17 insertions(+) + +Index: gcc-9.2.0/libiberty/simple-object-elf.c +=================================================================== +--- gcc-9.2.0.orig/libiberty/simple-object-elf.c ++++ gcc-9.2.0/libiberty/simple-object-elf.c +@@ -557,6 +557,14 @@ simple_object_elf_match (unsigned char h + return NULL; + } + ++ if (eor->shstrndx == 0) ++ { ++ *errmsg = "invalid ELF shstrndx == 0"; ++ *err = 0; ++ XDELETE (eor); ++ return NULL; ++ } ++ + return (void *) eor; + } + diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-9.2/CVE-2019-15847_1.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-9.2/CVE-2019-15847_1.patch new file mode 100644 index 00000000..227fd47c --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-9.2/CVE-2019-15847_1.patch @@ -0,0 +1,521 @@ +From 8c61566116d23063ff597271884f8e00d94ab1a1 Mon Sep 17 00:00:00 2001 +From: segher +Date: Fri, 30 Aug 2019 13:48:48 +0000 +Subject: [PATCH] Backport from trunk 2019-08-22 Segher Boessenkool + + + * config/rs6000/altivec.md (unspec): Delete UNSPEC_DARN, UNSPEC_DARN_32, + UNSPEC_DARN_RAW, UNSPEC_CMPRB, UNSPEC_CMPRB2, UNSPEC_CMPEQB; move to... + * config/rs6000/rs6000.md (unspec): ... here. + * config/rs6000/altivec.md (darn_32, darn_raw, darn, cmprb, + *cmprb_internal, setb_signed, setb_unsigned, cmprb2, *cmprb2_internal, + cmpeqb, *cmpeqb_internal): Delete, move to... + * config/rs6000/rs6000.md (darn_32, darn_raw, darn, cmprb, + *cmprb_internal, setb_signed, setb_unsigned, cmprb2, *cmprb2_internal, + cmpeqb, *cmpeqb_internal): ... here. + + +git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-9-branch@275170 138bc75d-0d04-0410-961f-82ee72b054a4 + +Upstream-Status: Backport +CVE: CVE-2019-15847 p1 +Affects <= 9.2.0 +Dropped Changelog changes +Signed-off-by: Armin Kuster + +--- + gcc/config/rs6000/altivec.md | 223 ---------------------------------- + gcc/config/rs6000/rs6000.md | 224 +++++++++++++++++++++++++++++++++++ + 3 files changed, 239 insertions(+), 223 deletions(-) + +Index: gcc-9.2.0/gcc/config/rs6000/altivec.md +=================================================================== +--- gcc-9.2.0.orig/gcc/config/rs6000/altivec.md ++++ gcc-9.2.0/gcc/config/rs6000/altivec.md +@@ -80,9 +80,6 @@ + UNSPEC_VUPKHPX + UNSPEC_VUPKLPX + UNSPEC_CONVERT_4F32_8I16 +- UNSPEC_DARN +- UNSPEC_DARN_32 +- UNSPEC_DARN_RAW + UNSPEC_DST + UNSPEC_DSTT + UNSPEC_DSTST +@@ -161,9 +158,6 @@ + UNSPEC_BCDADD + UNSPEC_BCDSUB + UNSPEC_BCD_OVERFLOW +- UNSPEC_CMPRB +- UNSPEC_CMPRB2 +- UNSPEC_CMPEQB + UNSPEC_VRLMI + UNSPEC_VRLNM + ]) +@@ -4101,223 +4095,6 @@ + "bcd. %0,%1,%2,%3" + [(set_attr "type" "vecsimple")]) + +-(define_insn "darn_32" +- [(set (match_operand:SI 0 "register_operand" "=r") +- (unspec:SI [(const_int 0)] UNSPEC_DARN_32))] +- "TARGET_P9_MISC" +- "darn %0,0" +- [(set_attr "type" "integer")]) +- +-(define_insn "darn_raw" +- [(set (match_operand:DI 0 "register_operand" "=r") +- (unspec:DI [(const_int 0)] UNSPEC_DARN_RAW))] +- "TARGET_P9_MISC && TARGET_64BIT" +- "darn %0,2" +- [(set_attr "type" "integer")]) +- +-(define_insn "darn" +- [(set (match_operand:DI 0 "register_operand" "=r") +- (unspec:DI [(const_int 0)] UNSPEC_DARN))] +- "TARGET_P9_MISC && TARGET_64BIT" +- "darn %0,1" +- [(set_attr "type" "integer")]) +- +-;; Test byte within range. +-;; +-;; The bytes of operand 1 are organized as xx:xx:xx:vv, where xx +-;; represents a byte whose value is ignored in this context and +-;; vv, the least significant byte, holds the byte value that is to +-;; be tested for membership within the range specified by operand 2. +-;; The bytes of operand 2 are organized as xx:xx:hi:lo. +-;; +-;; Return in target register operand 0 a value of 1 if lo <= vv and +-;; vv <= hi. Otherwise, set register operand 0 to 0. +-;; +-;; Though the instructions to which this expansion maps operate on +-;; 64-bit registers, the current implementation only operates on +-;; SI-mode operands as the high-order bits provide no information +-;; that is not already available in the low-order bits. To avoid the +-;; costs of data widening operations, future enhancements might allow +-;; DI mode for operand 0 and/or might allow operand 1 to be QI mode. +-(define_expand "cmprb" +- [(set (match_dup 3) +- (unspec:CC [(match_operand:SI 1 "gpc_reg_operand" "r") +- (match_operand:SI 2 "gpc_reg_operand" "r")] +- UNSPEC_CMPRB)) +- (set (match_operand:SI 0 "gpc_reg_operand" "=r") +- (if_then_else:SI (lt (match_dup 3) +- (const_int 0)) +- (const_int -1) +- (if_then_else (gt (match_dup 3) +- (const_int 0)) +- (const_int 1) +- (const_int 0))))] +- "TARGET_P9_MISC" +-{ +- operands[3] = gen_reg_rtx (CCmode); +-}) +- +-;; The bytes of operand 1 are organized as xx:xx:xx:vv, where xx +-;; represents a byte whose value is ignored in this context and +-;; vv, the least significant byte, holds the byte value that is to +-;; be tested for membership within the range specified by operand 2. +-;; The bytes of operand 2 are organized as xx:xx:hi:lo. +-;; +-;; Set bit 1 (the GT bit, 0x4) of CR register operand 0 to 1 if +-;; lo <= vv and vv <= hi. Otherwise, set the GT bit to 0. The other +-;; 3 bits of the target CR register are all set to 0. +-(define_insn "*cmprb_internal" +- [(set (match_operand:CC 0 "cc_reg_operand" "=y") +- (unspec:CC [(match_operand:SI 1 "gpc_reg_operand" "r") +- (match_operand:SI 2 "gpc_reg_operand" "r")] +- UNSPEC_CMPRB))] +- "TARGET_P9_MISC" +- "cmprb %0,0,%1,%2" +- [(set_attr "type" "logical")]) +- +-;; Set operand 0 register to -1 if the LT bit (0x8) of condition +-;; register operand 1 is on. Otherwise, set operand 0 register to 1 +-;; if the GT bit (0x4) of condition register operand 1 is on. +-;; Otherwise, set operand 0 to 0. Note that the result stored into +-;; register operand 0 is non-zero iff either the LT or GT bits are on +-;; within condition register operand 1. +-(define_insn "setb_signed" +- [(set (match_operand:SI 0 "gpc_reg_operand" "=r") +- (if_then_else:SI (lt (match_operand:CC 1 "cc_reg_operand" "y") +- (const_int 0)) +- (const_int -1) +- (if_then_else (gt (match_dup 1) +- (const_int 0)) +- (const_int 1) +- (const_int 0))))] +- "TARGET_P9_MISC" +- "setb %0,%1" +- [(set_attr "type" "logical")]) +- +-(define_insn "setb_unsigned" +- [(set (match_operand:SI 0 "gpc_reg_operand" "=r") +- (if_then_else:SI (ltu (match_operand:CCUNS 1 "cc_reg_operand" "y") +- (const_int 0)) +- (const_int -1) +- (if_then_else (gtu (match_dup 1) +- (const_int 0)) +- (const_int 1) +- (const_int 0))))] +- "TARGET_P9_MISC" +- "setb %0,%1" +- [(set_attr "type" "logical")]) +- +-;; Test byte within two ranges. +-;; +-;; The bytes of operand 1 are organized as xx:xx:xx:vv, where xx +-;; represents a byte whose value is ignored in this context and +-;; vv, the least significant byte, holds the byte value that is to +-;; be tested for membership within the range specified by operand 2. +-;; The bytes of operand 2 are organized as hi_1:lo_1:hi_2:lo_2. +-;; +-;; Return in target register operand 0 a value of 1 if (lo_1 <= vv and +-;; vv <= hi_1) or if (lo_2 <= vv and vv <= hi_2). Otherwise, set register +-;; operand 0 to 0. +-;; +-;; Though the instructions to which this expansion maps operate on +-;; 64-bit registers, the current implementation only operates on +-;; SI-mode operands as the high-order bits provide no information +-;; that is not already available in the low-order bits. To avoid the +-;; costs of data widening operations, future enhancements might allow +-;; DI mode for operand 0 and/or might allow operand 1 to be QI mode. +-(define_expand "cmprb2" +- [(set (match_dup 3) +- (unspec:CC [(match_operand:SI 1 "gpc_reg_operand" "r") +- (match_operand:SI 2 "gpc_reg_operand" "r")] +- UNSPEC_CMPRB2)) +- (set (match_operand:SI 0 "gpc_reg_operand" "=r") +- (if_then_else:SI (lt (match_dup 3) +- (const_int 0)) +- (const_int -1) +- (if_then_else (gt (match_dup 3) +- (const_int 0)) +- (const_int 1) +- (const_int 0))))] +- "TARGET_P9_MISC" +-{ +- operands[3] = gen_reg_rtx (CCmode); +-}) +- +-;; The bytes of operand 1 are organized as xx:xx:xx:vv, where xx +-;; represents a byte whose value is ignored in this context and +-;; vv, the least significant byte, holds the byte value that is to +-;; be tested for membership within the ranges specified by operand 2. +-;; The bytes of operand 2 are organized as hi_1:lo_1:hi_2:lo_2. +-;; +-;; Set bit 1 (the GT bit, 0x4) of CR register operand 0 to 1 if +-;; (lo_1 <= vv and vv <= hi_1) or if (lo_2 <= vv and vv <= hi_2). +-;; Otherwise, set the GT bit to 0. The other 3 bits of the target +-;; CR register are all set to 0. +-(define_insn "*cmprb2_internal" +- [(set (match_operand:CC 0 "cc_reg_operand" "=y") +- (unspec:CC [(match_operand:SI 1 "gpc_reg_operand" "r") +- (match_operand:SI 2 "gpc_reg_operand" "r")] +- UNSPEC_CMPRB2))] +- "TARGET_P9_MISC" +- "cmprb %0,1,%1,%2" +- [(set_attr "type" "logical")]) +- +-;; Test byte membership within set of 8 bytes. +-;; +-;; The bytes of operand 1 are organized as xx:xx:xx:vv, where xx +-;; represents a byte whose value is ignored in this context and +-;; vv, the least significant byte, holds the byte value that is to +-;; be tested for membership within the set specified by operand 2. +-;; The bytes of operand 2 are organized as e0:e1:e2:e3:e4:e5:e6:e7. +-;; +-;; Return in target register operand 0 a value of 1 if vv equals one +-;; of the values e0, e1, e2, e3, e4, e5, e6, or e7. Otherwise, set +-;; register operand 0 to 0. Note that the 8 byte values held within +-;; operand 2 need not be unique. +-;; +-;; Though the instructions to which this expansion maps operate on +-;; 64-bit registers, the current implementation requires that operands +-;; 0 and 1 have mode SI as the high-order bits provide no information +-;; that is not already available in the low-order bits. To avoid the +-;; costs of data widening operations, future enhancements might allow +-;; DI mode for operand 0 and/or might allow operand 1 to be QI mode. +-(define_expand "cmpeqb" +- [(set (match_dup 3) +- (unspec:CC [(match_operand:SI 1 "gpc_reg_operand" "r") +- (match_operand:DI 2 "gpc_reg_operand" "r")] +- UNSPEC_CMPEQB)) +- (set (match_operand:SI 0 "gpc_reg_operand" "=r") +- (if_then_else:SI (lt (match_dup 3) +- (const_int 0)) +- (const_int -1) +- (if_then_else (gt (match_dup 3) +- (const_int 0)) +- (const_int 1) +- (const_int 0))))] +- "TARGET_P9_MISC && TARGET_64BIT" +-{ +- operands[3] = gen_reg_rtx (CCmode); +-}) +- +-;; The bytes of operand 1 are organized as xx:xx:xx:vv, where xx +-;; represents a byte whose value is ignored in this context and +-;; vv, the least significant byte, holds the byte value that is to +-;; be tested for membership within the set specified by operand 2. +-;; The bytes of operand 2 are organized as e0:e1:e2:e3:e4:e5:e6:e7. +-;; +-;; Set bit 1 (the GT bit, 0x4) of CR register operand 0 to 1 if vv +-;; equals one of the values e0, e1, e2, e3, e4, e5, e6, or e7. Otherwise, +-;; set the GT bit to zero. The other 3 bits of the target CR register +-;; are all set to 0. +-(define_insn "*cmpeqb_internal" +- [(set (match_operand:CC 0 "cc_reg_operand" "=y") +- (unspec:CC [(match_operand:SI 1 "gpc_reg_operand" "r") +- (match_operand:DI 2 "gpc_reg_operand" "r")] +- UNSPEC_CMPEQB))] +- "TARGET_P9_MISC && TARGET_64BIT" +- "cmpeqb %0,%1,%2" +- [(set_attr "type" "logical")]) +- + (define_expand "bcd_" + [(parallel [(set (reg:CCFP CR6_REGNO) + (compare:CCFP +Index: gcc-9.2.0/gcc/config/rs6000/rs6000.md +=================================================================== +--- gcc-9.2.0.orig/gcc/config/rs6000/rs6000.md ++++ gcc-9.2.0/gcc/config/rs6000/rs6000.md +@@ -137,6 +137,12 @@ + UNSPEC_LSQ + UNSPEC_FUSION_GPR + UNSPEC_STACK_CHECK ++ UNSPEC_DARN ++ UNSPEC_DARN_32 ++ UNSPEC_DARN_RAW ++ UNSPEC_CMPRB ++ UNSPEC_CMPRB2 ++ UNSPEC_CMPEQB + UNSPEC_ADD_ROUND_TO_ODD + UNSPEC_SUB_ROUND_TO_ODD + UNSPEC_MUL_ROUND_TO_ODD +@@ -14322,7 +14328,225 @@ + "xscmpuqp %0,%1,%2" + [(set_attr "type" "veccmp") + (set_attr "size" "128")]) ++ ++;; Miscellaneous ISA 3.0 (power9) instructions ++ ++(define_insn "darn_32" ++ [(set (match_operand:SI 0 "register_operand" "=r") ++ (unspec:SI [(const_int 0)] UNSPEC_DARN_32))] ++ "TARGET_P9_MISC" ++ "darn %0,0" ++ [(set_attr "type" "integer")]) ++ ++(define_insn "darn_raw" ++ [(set (match_operand:DI 0 "register_operand" "=r") ++ (unspec:DI [(const_int 0)] UNSPEC_DARN_RAW))] ++ "TARGET_P9_MISC && TARGET_64BIT" ++ "darn %0,2" ++ [(set_attr "type" "integer")]) ++ ++(define_insn "darn" ++ [(set (match_operand:DI 0 "register_operand" "=r") ++ (unspec:DI [(const_int 0)] UNSPEC_DARN))] ++ "TARGET_P9_MISC && TARGET_64BIT" ++ "darn %0,1" ++ [(set_attr "type" "integer")]) ++ ++;; Test byte within range. ++;; ++;; The bytes of operand 1 are organized as xx:xx:xx:vv, where xx ++;; represents a byte whose value is ignored in this context and ++;; vv, the least significant byte, holds the byte value that is to ++;; be tested for membership within the range specified by operand 2. ++;; The bytes of operand 2 are organized as xx:xx:hi:lo. ++;; ++;; Return in target register operand 0 a value of 1 if lo <= vv and ++;; vv <= hi. Otherwise, set register operand 0 to 0. ++;; ++;; Though the instructions to which this expansion maps operate on ++;; 64-bit registers, the current implementation only operates on ++;; SI-mode operands as the high-order bits provide no information ++;; that is not already available in the low-order bits. To avoid the ++;; costs of data widening operations, future enhancements might allow ++;; DI mode for operand 0 and/or might allow operand 1 to be QI mode. ++(define_expand "cmprb" ++ [(set (match_dup 3) ++ (unspec:CC [(match_operand:SI 1 "gpc_reg_operand" "r") ++ (match_operand:SI 2 "gpc_reg_operand" "r")] ++ UNSPEC_CMPRB)) ++ (set (match_operand:SI 0 "gpc_reg_operand" "=r") ++ (if_then_else:SI (lt (match_dup 3) ++ (const_int 0)) ++ (const_int -1) ++ (if_then_else (gt (match_dup 3) ++ (const_int 0)) ++ (const_int 1) ++ (const_int 0))))] ++ "TARGET_P9_MISC" ++{ ++ operands[3] = gen_reg_rtx (CCmode); ++}) ++ ++;; The bytes of operand 1 are organized as xx:xx:xx:vv, where xx ++;; represents a byte whose value is ignored in this context and ++;; vv, the least significant byte, holds the byte value that is to ++;; be tested for membership within the range specified by operand 2. ++;; The bytes of operand 2 are organized as xx:xx:hi:lo. ++;; ++;; Set bit 1 (the GT bit, 0x4) of CR register operand 0 to 1 if ++;; lo <= vv and vv <= hi. Otherwise, set the GT bit to 0. The other ++;; 3 bits of the target CR register are all set to 0. ++(define_insn "*cmprb_internal" ++ [(set (match_operand:CC 0 "cc_reg_operand" "=y") ++ (unspec:CC [(match_operand:SI 1 "gpc_reg_operand" "r") ++ (match_operand:SI 2 "gpc_reg_operand" "r")] ++ UNSPEC_CMPRB))] ++ "TARGET_P9_MISC" ++ "cmprb %0,0,%1,%2" ++ [(set_attr "type" "logical")]) ++ ++;; Set operand 0 register to -1 if the LT bit (0x8) of condition ++;; register operand 1 is on. Otherwise, set operand 0 register to 1 ++;; if the GT bit (0x4) of condition register operand 1 is on. ++;; Otherwise, set operand 0 to 0. Note that the result stored into ++;; register operand 0 is non-zero iff either the LT or GT bits are on ++;; within condition register operand 1. ++(define_insn "setb_signed" ++ [(set (match_operand:SI 0 "gpc_reg_operand" "=r") ++ (if_then_else:SI (lt (match_operand:CC 1 "cc_reg_operand" "y") ++ (const_int 0)) ++ (const_int -1) ++ (if_then_else (gt (match_dup 1) ++ (const_int 0)) ++ (const_int 1) ++ (const_int 0))))] ++ "TARGET_P9_MISC" ++ "setb %0,%1" ++ [(set_attr "type" "logical")]) + ++(define_insn "setb_unsigned" ++ [(set (match_operand:SI 0 "gpc_reg_operand" "=r") ++ (if_then_else:SI (ltu (match_operand:CCUNS 1 "cc_reg_operand" "y") ++ (const_int 0)) ++ (const_int -1) ++ (if_then_else (gtu (match_dup 1) ++ (const_int 0)) ++ (const_int 1) ++ (const_int 0))))] ++ "TARGET_P9_MISC" ++ "setb %0,%1" ++ [(set_attr "type" "logical")]) ++ ++;; Test byte within two ranges. ++;; ++;; The bytes of operand 1 are organized as xx:xx:xx:vv, where xx ++;; represents a byte whose value is ignored in this context and ++;; vv, the least significant byte, holds the byte value that is to ++;; be tested for membership within the range specified by operand 2. ++;; The bytes of operand 2 are organized as hi_1:lo_1:hi_2:lo_2. ++;; ++;; Return in target register operand 0 a value of 1 if (lo_1 <= vv and ++;; vv <= hi_1) or if (lo_2 <= vv and vv <= hi_2). Otherwise, set register ++;; operand 0 to 0. ++;; ++;; Though the instructions to which this expansion maps operate on ++;; 64-bit registers, the current implementation only operates on ++;; SI-mode operands as the high-order bits provide no information ++;; that is not already available in the low-order bits. To avoid the ++;; costs of data widening operations, future enhancements might allow ++;; DI mode for operand 0 and/or might allow operand 1 to be QI mode. ++(define_expand "cmprb2" ++ [(set (match_dup 3) ++ (unspec:CC [(match_operand:SI 1 "gpc_reg_operand" "r") ++ (match_operand:SI 2 "gpc_reg_operand" "r")] ++ UNSPEC_CMPRB2)) ++ (set (match_operand:SI 0 "gpc_reg_operand" "=r") ++ (if_then_else:SI (lt (match_dup 3) ++ (const_int 0)) ++ (const_int -1) ++ (if_then_else (gt (match_dup 3) ++ (const_int 0)) ++ (const_int 1) ++ (const_int 0))))] ++ "TARGET_P9_MISC" ++{ ++ operands[3] = gen_reg_rtx (CCmode); ++}) ++ ++;; The bytes of operand 1 are organized as xx:xx:xx:vv, where xx ++;; represents a byte whose value is ignored in this context and ++;; vv, the least significant byte, holds the byte value that is to ++;; be tested for membership within the ranges specified by operand 2. ++;; The bytes of operand 2 are organized as hi_1:lo_1:hi_2:lo_2. ++;; ++;; Set bit 1 (the GT bit, 0x4) of CR register operand 0 to 1 if ++;; (lo_1 <= vv and vv <= hi_1) or if (lo_2 <= vv and vv <= hi_2). ++;; Otherwise, set the GT bit to 0. The other 3 bits of the target ++;; CR register are all set to 0. ++(define_insn "*cmprb2_internal" ++ [(set (match_operand:CC 0 "cc_reg_operand" "=y") ++ (unspec:CC [(match_operand:SI 1 "gpc_reg_operand" "r") ++ (match_operand:SI 2 "gpc_reg_operand" "r")] ++ UNSPEC_CMPRB2))] ++ "TARGET_P9_MISC" ++ "cmprb %0,1,%1,%2" ++ [(set_attr "type" "logical")]) ++ ++;; Test byte membership within set of 8 bytes. ++;; ++;; The bytes of operand 1 are organized as xx:xx:xx:vv, where xx ++;; represents a byte whose value is ignored in this context and ++;; vv, the least significant byte, holds the byte value that is to ++;; be tested for membership within the set specified by operand 2. ++;; The bytes of operand 2 are organized as e0:e1:e2:e3:e4:e5:e6:e7. ++;; ++;; Return in target register operand 0 a value of 1 if vv equals one ++;; of the values e0, e1, e2, e3, e4, e5, e6, or e7. Otherwise, set ++;; register operand 0 to 0. Note that the 8 byte values held within ++;; operand 2 need not be unique. ++;; ++;; Though the instructions to which this expansion maps operate on ++;; 64-bit registers, the current implementation requires that operands ++;; 0 and 1 have mode SI as the high-order bits provide no information ++;; that is not already available in the low-order bits. To avoid the ++;; costs of data widening operations, future enhancements might allow ++;; DI mode for operand 0 and/or might allow operand 1 to be QI mode. ++(define_expand "cmpeqb" ++ [(set (match_dup 3) ++ (unspec:CC [(match_operand:SI 1 "gpc_reg_operand" "r") ++ (match_operand:DI 2 "gpc_reg_operand" "r")] ++ UNSPEC_CMPEQB)) ++ (set (match_operand:SI 0 "gpc_reg_operand" "=r") ++ (if_then_else:SI (lt (match_dup 3) ++ (const_int 0)) ++ (const_int -1) ++ (if_then_else (gt (match_dup 3) ++ (const_int 0)) ++ (const_int 1) ++ (const_int 0))))] ++ "TARGET_P9_MISC && TARGET_64BIT" ++{ ++ operands[3] = gen_reg_rtx (CCmode); ++}) ++ ++;; The bytes of operand 1 are organized as xx:xx:xx:vv, where xx ++;; represents a byte whose value is ignored in this context and ++;; vv, the least significant byte, holds the byte value that is to ++;; be tested for membership within the set specified by operand 2. ++;; The bytes of operand 2 are organized as e0:e1:e2:e3:e4:e5:e6:e7. ++;; ++;; Set bit 1 (the GT bit, 0x4) of CR register operand 0 to 1 if vv ++;; equals one of the values e0, e1, e2, e3, e4, e5, e6, or e7. Otherwise, ++;; set the GT bit to zero. The other 3 bits of the target CR register ++;; are all set to 0. ++(define_insn "*cmpeqb_internal" ++ [(set (match_operand:CC 0 "cc_reg_operand" "=y") ++ (unspec:CC [(match_operand:SI 1 "gpc_reg_operand" "r") ++ (match_operand:DI 2 "gpc_reg_operand" "r")] ++ UNSPEC_CMPEQB))] ++ "TARGET_P9_MISC && TARGET_64BIT" ++ "cmpeqb %0,%1,%2" ++ [(set_attr "type" "logical")]) + + + (include "sync.md") diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-9.2/CVE-2019-15847_2.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-9.2/CVE-2019-15847_2.patch new file mode 100644 index 00000000..de7a83c2 --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-9.2/CVE-2019-15847_2.patch @@ -0,0 +1,77 @@ +From 87bc784a7ca3a43182f7272241597a50d7491342 Mon Sep 17 00:00:00 2001 +From: segher +Date: Fri, 30 Aug 2019 13:51:26 +0000 +Subject: [PATCH] Backport from trunk 2019-08-22 Segher Boessenkool + + + PR target/91481 + * config/rs6000/rs6000.md (unspec): Delete UNSPEC_DARN, UNSPEC_DARN_32, + and UNSPEC_DARN_RAW. + (unspecv): New enumerator values UNSPECV_DARN, UNSPECV_DARN_32, and + UNSPECV_DARN_RAW. + (darn_32): Use an unspec_volatile, and UNSPECV_DARN_32. + (darn_raw): Use an unspec_volatile, and UNSPECV_DARN_RAW. + (darn): Use an unspec_volatile, and UNSPECV_DARN. + + +git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-9-branch@275175 138bc75d-0d04-0410-961f-82ee72b054a4 + +Upstream-Status: Backport +CVE: CVE-2019-15847 p2 +Affects <= 9.2.0 +Dropped Changelog changes +Signed-off-by: Armin Kuster + +--- + gcc/config/rs6000/rs6000.md | 12 ++++++------ + 2 files changed, 20 insertions(+), 6 deletions(-) + +Index: gcc-9.2.0/gcc/config/rs6000/rs6000.md +=================================================================== +--- gcc-9.2.0.orig/gcc/config/rs6000/rs6000.md ++++ gcc-9.2.0/gcc/config/rs6000/rs6000.md +@@ -137,9 +137,6 @@ + UNSPEC_LSQ + UNSPEC_FUSION_GPR + UNSPEC_STACK_CHECK +- UNSPEC_DARN +- UNSPEC_DARN_32 +- UNSPEC_DARN_RAW + UNSPEC_CMPRB + UNSPEC_CMPRB2 + UNSPEC_CMPEQB +@@ -170,6 +167,9 @@ + UNSPECV_EH_RR ; eh_reg_restore + UNSPECV_ISYNC ; isync instruction + UNSPECV_MFTB ; move from time base ++ UNSPECV_DARN ; darn 1 (deliver a random number) ++ UNSPECV_DARN_32 ; darn 2 ++ UNSPECV_DARN_RAW ; darn 0 + UNSPECV_NLGR ; non-local goto receiver + UNSPECV_MFFS ; Move from FPSCR + UNSPECV_MFFSL ; Move from FPSCR light instruction version +@@ -14333,21 +14333,21 @@ + + (define_insn "darn_32" + [(set (match_operand:SI 0 "register_operand" "=r") +- (unspec:SI [(const_int 0)] UNSPEC_DARN_32))] ++ (unspec_volatile:SI [(const_int 0)] UNSPECV_DARN_32))] + "TARGET_P9_MISC" + "darn %0,0" + [(set_attr "type" "integer")]) + + (define_insn "darn_raw" + [(set (match_operand:DI 0 "register_operand" "=r") +- (unspec:DI [(const_int 0)] UNSPEC_DARN_RAW))] ++ (unspec_volatile:DI [(const_int 0)] UNSPECV_DARN_RAW))] + "TARGET_P9_MISC && TARGET_64BIT" + "darn %0,2" + [(set_attr "type" "integer")]) + + (define_insn "darn" + [(set (match_operand:DI 0 "register_operand" "=r") +- (unspec:DI [(const_int 0)] UNSPEC_DARN))] ++ (unspec_volatile:DI [(const_int 0)] UNSPECV_DARN))] + "TARGET_P9_MISC && TARGET_64BIT" + "darn %0,1" + [(set_attr "type" "integer")]) diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-9.2/CVE-2019-15847_3.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-9.2/CVE-2019-15847_3.patch new file mode 100644 index 00000000..ba7130ca --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-9.2/CVE-2019-15847_3.patch @@ -0,0 +1,62 @@ +From dc4c8dd9dbe70740ec7a684b0f35620249fb036a Mon Sep 17 00:00:00 2001 +From: segher +Date: Fri, 30 Aug 2019 13:53:11 +0000 +Subject: [PATCH] Backport from trunk 2019-08-23 Segher Boessenkool + + +gcc/testsuite/ + PR target/91481 + * gcc.target/powerpc/darn-3.c: New testcase. + + +git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-9-branch@275176 138bc75d-0d04-0410-961f-82ee72b054a4 + +Upstream-Status: Backport +CVE: CVE-2019-15847 p3 +Affects <= 9.2.0 +Dropped Changelog changes +Signed-off-by: Armin Kuster + +--- + gcc/testsuite/ChangeLog | 6 ++++++ + gcc/testsuite/gcc.target/powerpc/darn-3.c | 16 ++++++++++++++++ + 2 files changed, 22 insertions(+) + create mode 100644 gcc/testsuite/gcc.target/powerpc/darn-3.c + +Index: gcc-9.2.0/gcc/testsuite/gcc.target/powerpc/darn-3.c +=================================================================== +--- /dev/null ++++ gcc-9.2.0/gcc/testsuite/gcc.target/powerpc/darn-3.c +@@ -0,0 +1,16 @@ ++/* { dg-do compile { target { powerpc*-*-* } } } */ ++/* { dg-skip-if "" { powerpc*-*-aix* } } */ ++/* { dg-options "-O2 -mdejagnu-cpu=power9" } */ ++ ++static int darn32(void) { return __builtin_darn_32(); } ++ ++int four(void) ++{ ++ int sum = 0; ++ int i; ++ for (i = 0; i < 4; i++) ++ sum += darn32(); ++ return sum; ++} ++ ++/* { dg-final { scan-assembler-times {(?n)\mdarn .*,0\M} 4 } } */ +Index: gcc-9.2.0/gcc/testsuite/ChangeLog +=================================================================== +--- gcc-9.2.0.orig/gcc/testsuite/ChangeLog ++++ gcc-9.2.0/gcc/testsuite/ChangeLog +@@ -1,3 +1,11 @@ ++2019-08-30 Segher Boessenkool ++ ++ Backport from trunk ++ 2019-08-23 Segher Boessenkool ++ ++ PR target/91481 ++ * gcc.target/powerpc/darn-3.c: New testcase. ++ + 2019-08-12 Release Manager + + * GCC 9.2.0 released. diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-common.inc b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-common.inc index 96334e54..44cba287 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-common.inc +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-common.inc @@ -17,7 +17,7 @@ python extract_stashed_builddir () { src = d.expand("${COMPONENTS_DIR}/${BUILD_ARCH}/gcc-stashed-builddir-${TARGET_SYS}") dest = d.getVar("B") oe.path.copyhardlinktree(src, dest) - staging_processfixme([src + "/fixmepath"], dest, dest, dest, d) + staging_processfixme([src + "/fixmepath"], dest, d.getVar("RECIPE_SYSROOT"), d.getVar("RECIPE_SYSROOT_NATIVE"), d) } def get_gcc_float_setting(bb, d): @@ -41,13 +41,6 @@ def get_gcc_ppc_plt_settings(bb, d): return "--enable-secureplt" return "" -def get_long_double_setting(bb, d): - if d.getVar('TRANSLATED_TARGET_ARCH') in [ 'powerpc', 'powerpc64' ] and d.getVar('TCLIBC') in [ 'glibc' ]: - return "--with-long-double-128" - else: - return "--without-long-double-128 libgcc_cv_powerpc_float128=no" - return "" - def get_gcc_multiarch_setting(bb, d): target_arch = d.getVar('TRANSLATED_TARGET_ARCH') multiarch_options = { diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-configure-common.inc b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-configure-common.inc index b6f2ca54..24ba8ce7 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-configure-common.inc +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-configure-common.inc @@ -36,7 +36,6 @@ EXTRA_OECONF = "\ ${EXTRA_OECONF_PATHS} \ ${@get_gcc_mips_plt_setting(bb, d)} \ ${@get_gcc_ppc_plt_settings(bb, d)} \ - ${@get_long_double_setting(bb, d)} \ ${@get_gcc_multiarch_setting(bb, d)} \ " diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-cross-canadian.inc b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-cross-canadian.inc index 807e47e0..f14cbf71 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-cross-canadian.inc +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-cross-canadian.inc @@ -63,9 +63,6 @@ do_compile () { (cd ${B}/${TARGET_SYS}/libgcc; oe_runmake enable-execute-stack.c unwind.h md-unwind-support.h sfp-machine.h gthr-default.h) } -# Having anything auto depending on gcc-cross-sdk is a really bad idea... -EXCLUDE_FROM_SHLIBS = "1" - PACKAGES = "${PN}-dbg ${PN} ${PN}-doc" FILES_${PN} = "\ diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-cross-canadian_9.1.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-cross-canadian_9.1.bb deleted file mode 100644 index bf53c5cd..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-cross-canadian_9.1.bb +++ /dev/null @@ -1,5 +0,0 @@ -require recipes-devtools/gcc/gcc-${PV}.inc -require gcc-cross-canadian.inc - - - diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-cross-canadian_8.3.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-cross-canadian_9.2.bb similarity index 100% rename from Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-cross-canadian_8.3.bb rename to Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-cross-canadian_9.2.bb diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-cross.inc b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-cross.inc index 6222c2e8..8855bb1f 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-cross.inc +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-cross.inc @@ -196,6 +196,8 @@ do_install () { # We use libiberty from binutils find ${D}${exec_prefix}/lib -name libiberty.a | xargs rm -f find ${D}${exec_prefix}/lib -name libiberty.h | xargs rm -f + + find ${D}${libdir}/gcc/${TARGET_SYS}/${BINV}/include-fixed -type f -not -name "README" -not -name limits.h -not -name syslimits.h | xargs rm -f } do_package[noexec] = "1" @@ -204,12 +206,23 @@ do_package_write_ipk[noexec] = "1" do_package_write_rpm[noexec] = "1" do_package_write_deb[noexec] = "1" -BUILDDIRSTASH = "${WORKDIR}/stashed-builddir" +inherit chrpath + +python gcc_stash_builddir_fixrpaths() { + # rewrite rpaths, breaking hardlinks as required + process_dir("/", d.getVar("BUILDDIRSTASH"), d, break_hardlinks = True) +} + +BUILDDIRSTASH = "${WORKDIR}/stashed-builddir/build" do_gcc_stash_builddir[dirs] = "${B}" do_gcc_stash_builddir[cleandirs] = "${BUILDDIRSTASH}" +do_gcc_stash_builddir[postfuncs] += "gcc_stash_builddir_fixrpaths" do_gcc_stash_builddir () { dest=${BUILDDIRSTASH} hardlinkdir . $dest + # Makefile does move-if-change which can end up with 'timestamp' as file contents so break links to those files + rm $dest/gcc/include/*.h + cp gcc/include/*.h $dest/gcc/include/ } addtask do_gcc_stash_builddir after do_compile before do_install SSTATETASKS += "do_gcc_stash_builddir" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-cross_9.1.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-cross_9.1.bb deleted file mode 100644 index b43cca0c..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-cross_9.1.bb +++ /dev/null @@ -1,3 +0,0 @@ -require recipes-devtools/gcc/gcc-${PV}.inc -require gcc-cross.inc - diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-cross_8.3.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-cross_9.2.bb similarity index 100% rename from Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-cross_8.3.bb rename to Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-cross_9.2.bb diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-crosssdk_9.1.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-crosssdk_9.1.bb deleted file mode 100644 index 40a6c4fe..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-crosssdk_9.1.bb +++ /dev/null @@ -1,2 +0,0 @@ -require recipes-devtools/gcc/gcc-cross_${PV}.bb -require gcc-crosssdk.inc diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-crosssdk_8.3.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-crosssdk_9.2.bb similarity index 100% rename from Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-crosssdk_8.3.bb rename to Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-crosssdk_9.2.bb diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-runtime.inc b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-runtime.inc index a5c2600d..2da3c02e 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-runtime.inc +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-runtime.inc @@ -17,6 +17,12 @@ EXTRA_OECONF_PATHS = "\ EXTRA_OECONF_append_linuxstdbase = " --enable-clocale=gnu" EXTRA_OECONF_append = " --cache-file=${B}/config.cache" +# Disable ifuncs for libatomic on arm conflicts -march/-mcpu +EXTRA_OECONF_append_arm = " libat_cv_have_ifunc=no " + +# Building with thumb enabled on armv6t fails +ARM_INSTRUCTION_SET_armv6 = "arm" + RUNTIMELIBITM = "libitm" RUNTIMELIBITM_arc = "" RUNTIMELIBITM_mipsarch = "" @@ -77,6 +83,11 @@ do_install () { cd ${B}/${TARGET_SYS}/$d/ oe_runmake 'DESTDIR=${D}' MULTIBUILDTOP=${B}/${TARGET_SYS}/$d/ install done + if [ -d ${D}${libdir}/gcc/${TARGET_SYS}/${BINV}/include ]; then + install -d ${D}${libdir}/${TARGET_SYS}/${BINV}/include + mv ${D}${libdir}/gcc/${TARGET_SYS}/${BINV}/include/* ${D}${libdir}/${TARGET_SYS}/${BINV}/include + rmdir --ignore-fail-on-non-empty -p ${D}${libdir}/gcc/${TARGET_SYS}/${BINV}/include + fi rm -rf ${D}${infodir}/libgomp.info ${D}${infodir}/dir rm -rf ${D}${infodir}/libitm.info ${D}${infodir}/dir rm -rf ${D}${infodir}/libquadmath.info ${D}${infodir}/dir @@ -205,7 +216,7 @@ FILES_libssp-dev = "\ ${libdir}/libssp*.so \ ${libdir}/libssp*_nonshared.a \ ${libdir}/libssp*.la \ - ${libdir}/gcc/${TARGET_SYS}/${BINV}/include/ssp \ + ${libdir}/${TARGET_SYS}/${BINV}/include/ssp \ " SUMMARY_libssp-dev = "GNU stack smashing protection library - development files" FILES_libssp-staticdev = "${libdir}/libssp*.a" @@ -214,7 +225,7 @@ SUMMARY_libssp-staticdev = "GNU stack smashing protection library - static devel FILES_libquadmath = "${libdir}/libquadmath*.so.*" SUMMARY_libquadmath = "GNU quad-precision math library" FILES_libquadmath-dev = "\ - ${libdir}/gcc/${TARGET_SYS}/${BINV}/include/quadmath* \ + ${libdir}/${TARGET_SYS}/${BINV}/include/quadmath* \ ${libdir}/libquadmath*.so \ ${libdir}/libquadmath.la \ " @@ -239,7 +250,8 @@ FILES_libgomp-dev = "\ ${libdir}/libgomp*${SOLIBSDEV} \ ${libdir}/libgomp*.la \ ${libdir}/libgomp.spec \ - ${libdir}/gcc/${TARGET_SYS}/${BINV}/include/omp.h \ + ${libdir}/${TARGET_SYS}/${BINV}/include/omp.h \ + ${libdir}/${TARGET_SYS}/${BINV}/include/openacc.h \ " SUMMARY_libgomp-dev = "GNU OpenMP parallel programming library - development files" FILES_libgomp-staticdev = "${libdir}/libgomp*.a" @@ -265,3 +277,45 @@ FILES_libitm-dev = "\ SUMMARY_libitm-dev = "GNU transactional memory support library - development files" FILES_libitm-staticdev = "${libdir}/libitm.a" SUMMARY_libitm-staticdev = "GNU transactional memory support library - static development files" + +require gcc-testsuite.inc + +EXTRA_OEMAKE_prepend_task-check = "${PARALLEL_MAKE} " + +MAKE_CHECK_TARGETS ??= "check-gcc ${@" ".join("check-target-" + i for i in d.getVar("RUNTIMETARGET").split())}" +# prettyprinters and xmethods require gdb tooling +MAKE_CHECK_IGNORE ??= "prettyprinters.exp xmethods.exp" +MAKE_CHECK_RUNTESTFLAGS ??= "${MAKE_CHECK_BOARDARGS} --ignore '${MAKE_CHECK_IGNORE}'" + +# specific host and target dependencies required for test suite running +do_check[depends] += "dejagnu-native:do_populate_sysroot expect-native:do_populate_sysroot" +do_check[depends] += "virtual/libc:do_populate_sysroot" +# only depend on qemu if targeting linux user execution +do_check[depends] += "${@'qemu-native:do_populate_sysroot' if "user" in d.getVar('TOOLCHAIN_TEST_TARGET') else ''}" +# extend the recipe sysroot to include the built libraries (for qemu usermode) +do_check[prefuncs] += "extend_recipe_sysroot" +do_check[prefuncs] += "check_prepare" +do_check[dirs] = "${WORKDIR}/dejagnu ${B}" +do_check[nostamp] = "1" +do_check() { + export DEJAGNU="${WORKDIR}/dejagnu/site.exp" + + # HACK: this works around the configure setting CXX with -nostd* args + sed -i 's/-nostdinc++ -nostdlib++//g' $(find ${B} -name testsuite_flags | head -1) + # HACK: this works around the de-stashing changes to configargs.h, as well as recipe-sysroot changing the content + sed -i '/static const char configuration_arguments/d' ${B}/gcc/configargs.h + ${CC} -v 2>&1 | grep "^Configured with:" | \ + sed 's/Configured with: \(.*\)/static const char configuration_arguments[] = "\1";/g' >> ${B}/gcc/configargs.h + + if [ "${TOOLCHAIN_TEST_TARGET}" = "user" ]; then + # qemu user has issues allocating large amounts of memory + export G_SLICE=always-malloc + # no test should need more that 10G of memory, this prevents tests like pthread7-rope from leaking memory + ulimit -m 4194304 + ulimit -v 10485760 + fi + + oe_runmake -i ${MAKE_CHECK_TARGETS} RUNTESTFLAGS="${MAKE_CHECK_RUNTESTFLAGS}" +} +addtask check after do_compile do_populate_sysroot + diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-runtime_8.3.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-runtime_8.3.bb deleted file mode 100644 index a1c7a76d..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-runtime_8.3.bb +++ /dev/null @@ -1,12 +0,0 @@ -require recipes-devtools/gcc/gcc-${PV}.inc -require gcc-runtime.inc - -# Disable ifuncs for libatomic on arm conflicts -march/-mcpu -EXTRA_OECONF_append_arm = " libat_cv_have_ifunc=no " - -FILES_libgomp-dev += "\ - ${libdir}/gcc/${TARGET_SYS}/${BINV}/include/openacc.h \ -" - -# Building with thumb enabled on armv6t fails -ARM_INSTRUCTION_SET_armv6 = "arm" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-runtime_9.1.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-runtime_9.1.bb deleted file mode 100644 index a1c7a76d..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-runtime_9.1.bb +++ /dev/null @@ -1,12 +0,0 @@ -require recipes-devtools/gcc/gcc-${PV}.inc -require gcc-runtime.inc - -# Disable ifuncs for libatomic on arm conflicts -march/-mcpu -EXTRA_OECONF_append_arm = " libat_cv_have_ifunc=no " - -FILES_libgomp-dev += "\ - ${libdir}/gcc/${TARGET_SYS}/${BINV}/include/openacc.h \ -" - -# Building with thumb enabled on armv6t fails -ARM_INSTRUCTION_SET_armv6 = "arm" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-runtime_9.2.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-runtime_9.2.bb new file mode 100644 index 00000000..dd430b57 --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-runtime_9.2.bb @@ -0,0 +1,2 @@ +require recipes-devtools/gcc/gcc-${PV}.inc +require gcc-runtime.inc diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-sanitizers_9.1.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-sanitizers_9.1.bb deleted file mode 100644 index f3c70581..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-sanitizers_9.1.bb +++ /dev/null @@ -1,7 +0,0 @@ -require recipes-devtools/gcc/gcc-${PV}.inc -require gcc-sanitizers.inc - -# Building with thumb enabled on armv4t armv5t fails with -# sanitizer_linux.s:5749: Error: lo register required -- `ldr ip,[sp],#8' -ARM_INSTRUCTION_SET_armv4 = "arm" -ARM_INSTRUCTION_SET_armv5 = "arm" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-sanitizers_8.3.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-sanitizers_9.2.bb similarity index 100% rename from Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-sanitizers_8.3.bb rename to Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-sanitizers_9.2.bb diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-source_9.1.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-source_9.1.bb deleted file mode 100644 index b890fa33..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-source_9.1.bb +++ /dev/null @@ -1,4 +0,0 @@ -require recipes-devtools/gcc/gcc-${PV}.inc -require recipes-devtools/gcc/gcc-source.inc - -EXCLUDE_FROM_WORLD = "1" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-source_8.3.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-source_9.2.bb similarity index 100% rename from Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-source_8.3.bb rename to Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-source_9.2.bb diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-testsuite.inc b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-testsuite.inc new file mode 100644 index 00000000..f68fec58 --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc-testsuite.inc @@ -0,0 +1,107 @@ +inherit qemu + +TOOLCHAIN_TEST_TARGET ??= "user" +TOOLCHAIN_TEST_HOST ??= "localhost" +TOOLCHAIN_TEST_HOST_USER ??= "root" +TOOLCHAIN_TEST_HOST_PORT ??= "2222" + +MAKE_CHECK_BOARDFLAGS ??= "" +MAKE_CHECK_BOARDARGS ??= "--target_board=${TOOLCHAIN_TEST_TARGET}${MAKE_CHECK_BOARDFLAGS}" + +python () { + # Provide the targets compiler args via targets options. This allows dejagnu to + # correctly mark incompatible tests as UNSUPPORTED (e.g. needs soft-float + # but running on hard-float target). + # + # These options are called "multilib_flags" within the gcc test suite. Most + # architectures handle these options in a sensible way such that tests that + # are incompatible with the provided multilib are marked as UNSUPPORTED. + # + # Note: multilib flags are added to the compile command after the args + # provided by any test (through dg-options), CFLAGS_FOR_TARGET is always + # added to the compile command before any other args but is not interpted + # as options like multilib flags. + # + # i686, x86-64 and aarch64 are special, since most toolchains built for + # these targets don't do multilib the tests do not get correctly marked as + # UNSUPPORTED. More importantly the test suite itself does not handle + # overriding the multilib flags where it could (like other archs do). As + # such do not pass the target compiler args for these targets. + args = d.getVar("TUNE_CCARGS").split() + if d.getVar("TUNE_ARCH") in ["i686", "x86_64", "aarch64"]: + args = [] + d.setVar("MAKE_CHECK_BOARDFLAGS", ("/" + "/".join(args)) if len(args) != 0 else "") +} + +python check_prepare() { + def generate_qemu_linux_user_config(d): + content = [] + content.append('load_generic_config "sim"') + content.append('load_base_board_description "basic-sim"') + content.append('process_multilib_options ""') + + # qemu args + qemu_binary = qemu_target_binary(d) + if not qemu_binary: + bb.fatal("Missing target qemu linux-user binary") + + args = [] + # QEMU_OPTIONS is not always valid due to -cross recipe + args += ["-r", d.getVar("OLDEST_KERNEL")] + # enable all valid instructions, since the test suite itself does not + # limit itself to the target cpu options. + # - valid for x86*, powerpc, arm, arm64 + if qemu_binary.lstrip("qemu-") in ["x86_64", "i386", "ppc", "arm", "aarch64"]: + args += ["-cpu", "max"] + + sysroot = d.getVar("RECIPE_SYSROOT") + args += ["-L", sysroot] + # lib paths are static here instead of using $libdir since this is used by a -cross recipe + libpaths = [sysroot + "/usr/lib", sysroot + "/lib"] + args += ["-E", "LD_LIBRARY_PATH={0}".format(":".join(libpaths))] + + content.append('set_board_info is_simulator 1') + content.append('set_board_info sim "{0}"'.format(qemu_binary)) + content.append('set_board_info sim,options "{0}"'.format(" ".join(args))) + + # target build/test config + content.append('set_board_info target_install {%s}' % d.getVar("TARGET_SYS")) + content.append('set_board_info ldscript ""') + #content.append('set_board_info needs_status_wrapper 1') # qemu-linux-user return codes work, and abort works fine + content.append('set_board_info gcc,stack_size 16834') + content.append('set_board_info gdb,nosignals 1') + content.append('set_board_info gcc,timeout 60') + + return "\n".join(content) + + def generate_remote_ssh_linux_config(d): + content = [] + content.append('load_generic_config "unix"') + content.append('process_multilib_options ""') + content.append("set_board_info hostname {0}".format(d.getVar("TOOLCHAIN_TEST_HOST"))) + content.append("set_board_info username {0}".format(d.getVar("TOOLCHAIN_TEST_HOST_USER"))) + + port = d.getVar("TOOLCHAIN_TEST_HOST_PORT") + content.append("set_board_info rsh_prog \"/usr/bin/ssh -p {0} -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no\"".format(port)) + content.append("set_board_info rcp_prog \"/usr/bin/scp -P {0} -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no\"".format(port)) + + return "\n".join(content) + + dejagnudir = d.expand("${WORKDIR}/dejagnu") + if not os.path.isdir(dejagnudir): + os.makedirs(dejagnudir) + + # write out target qemu board config + with open(os.path.join(dejagnudir, "user.exp"), "w") as f: + f.write(generate_qemu_linux_user_config(d)) + + # write out target ssh board config + with open(os.path.join(dejagnudir, "ssh.exp"), "w") as f: + f.write(generate_remote_ssh_linux_config(d)) + + # generate site.exp to provide boards + with open(os.path.join(dejagnudir, "site.exp"), "w") as f: + f.write("lappend boards_dir {0}\n".format(dejagnudir)) + f.write("set CFLAGS_FOR_TARGET \"{0}\"\n".format(d.getVar("TOOLCHAIN_OPTIONS"))) +} + diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc_9.1.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc_9.1.bb deleted file mode 100644 index 7d935905..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc_9.1.bb +++ /dev/null @@ -1,14 +0,0 @@ -require recipes-devtools/gcc/gcc-${PV}.inc -require gcc-target.inc - -# Building with thumb enabled on armv4t armv5t fails with -# | gcc-4.8.1-r0/gcc-4.8.1/gcc/cp/decl.c:7438:(.text.unlikely+0x2fa): relocation truncated to fit: R_ARM_THM_CALL against symbol `fancy_abort(char const*, int, char const*)' defined in .glue_7 section in linker stubs -# | gcc-4.8.1-r0/gcc-4.8.1/gcc/cp/decl.c:7442:(.text.unlikely+0x318): additional relocation overflows omitted from the output -ARM_INSTRUCTION_SET_armv4 = "arm" -ARM_INSTRUCTION_SET_armv5 = "arm" - -ARMFPARCHEXT_armv6 = "${@'+fp' if d.getVar('TARGET_FPU') == 'hard' else ''}" -ARMFPARCHEXT_armv7a = "${@'+fp' if d.getVar('TARGET_FPU') == 'hard' else ''}" -ARMFPARCHEXT_armv7ve = "${@'+fp' if d.getVar('TARGET_FPU') == 'hard' else ''}" - -BBCLASSEXTEND = "nativesdk" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc_8.3.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc_9.2.bb similarity index 100% rename from Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc_8.3.bb rename to Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/gcc_9.2.bb diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/libgcc-initial_9.1.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/libgcc-initial_9.1.bb deleted file mode 100644 index 0c698c26..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/libgcc-initial_9.1.bb +++ /dev/null @@ -1,5 +0,0 @@ -require recipes-devtools/gcc/gcc-${PV}.inc -require libgcc-initial.inc - -# Building with thumb enabled on armv6t fails -ARM_INSTRUCTION_SET_armv6 = "arm" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/libgcc-initial_8.3.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/libgcc-initial_9.2.bb similarity index 100% rename from Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/libgcc-initial_8.3.bb rename to Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/libgcc-initial_9.2.bb diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/libgcc_9.1.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/libgcc_9.1.bb deleted file mode 100644 index ea210a11..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/libgcc_9.1.bb +++ /dev/null @@ -1,5 +0,0 @@ -require recipes-devtools/gcc/gcc-${PV}.inc -require libgcc.inc - -# Building with thumb enabled on armv6t fails -ARM_INSTRUCTION_SET_armv6 = "arm" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/libgcc_8.3.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/libgcc_9.2.bb similarity index 100% rename from Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/libgcc_8.3.bb rename to Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/libgcc_9.2.bb diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/libgfortran_9.1.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/libgfortran_9.1.bb deleted file mode 100644 index 71dd8b4b..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/libgfortran_9.1.bb +++ /dev/null @@ -1,3 +0,0 @@ -require recipes-devtools/gcc/gcc-${PV}.inc -require libgfortran.inc - diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/libgfortran_8.3.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/libgfortran_9.2.bb similarity index 100% rename from Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/libgfortran_8.3.bb rename to Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gcc/libgfortran_9.2.bb diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gdb/gdb-8.3.1.inc b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gdb/gdb-8.3.1.inc new file mode 100644 index 00000000..39f1c48c --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gdb/gdb-8.3.1.inc @@ -0,0 +1,21 @@ +LICENSE = "GPLv2 & GPLv3 & LGPLv2 & LGPLv3" +LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552 \ + file://COPYING3;md5=d32239bcb673463ab874e80d47fae504 \ + file://COPYING3.LIB;md5=6a6a8e020838b23406c81b19c1d46df6 \ + file://COPYING.LIB;md5=9f604d8a4f8e74f4f5140845a21b6674" + +SRC_URI = "${GNU_MIRROR}/gdb/gdb-${PV}.tar.xz \ + file://0001-gdbserver-ctrl-c-handling.patch \ + file://0002-make-man-install-relative-to-DESTDIR.patch \ + file://0003-mips-linux-nat-Define-_ABIO32-if-not-defined.patch \ + file://0004-ppc-ptrace-Define-pt_regs-uapi_pt_regs-on-GLIBC-syst.patch \ + file://0005-Add-support-for-Renesas-SH-sh4-architecture.patch \ + file://0006-Dont-disable-libreadline.a-when-using-disable-static.patch \ + file://0007-use-asm-sgidefs.h.patch \ + file://0008-Use-exorted-definitions-of-SIGRTMIN.patch \ + file://0009-Change-order-of-CFLAGS.patch \ + file://0010-resolve-restrict-keyword-conflict.patch \ + file://0011-Fix-invalid-sigprocmask-call.patch \ + " +SRC_URI[md5sum] = "73b6a5d8141672c62bf851cd34c4aa83" +SRC_URI[sha256sum] = "1e55b4d7cdca7b34be12f4ceae651623aa73b2fd640152313f9f66a7149757c4" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gdb/gdb-8.3.inc b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gdb/gdb-8.3.inc deleted file mode 100644 index db8d5f34..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gdb/gdb-8.3.inc +++ /dev/null @@ -1,21 +0,0 @@ -LICENSE = "GPLv2 & GPLv3 & LGPLv2 & LGPLv3" -LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552 \ - file://COPYING3;md5=d32239bcb673463ab874e80d47fae504 \ - file://COPYING3.LIB;md5=6a6a8e020838b23406c81b19c1d46df6 \ - file://COPYING.LIB;md5=9f604d8a4f8e74f4f5140845a21b6674" - -SRC_URI = "http://ftp.gnu.org/gnu/gdb/gdb-${PV}.tar.xz \ - file://0001-gdbserver-ctrl-c-handling.patch \ - file://0002-make-man-install-relative-to-DESTDIR.patch \ - file://0003-mips-linux-nat-Define-_ABIO32-if-not-defined.patch \ - file://0004-ppc-ptrace-Define-pt_regs-uapi_pt_regs-on-GLIBC-syst.patch \ - file://0005-Add-support-for-Renesas-SH-sh4-architecture.patch \ - file://0006-Dont-disable-libreadline.a-when-using-disable-static.patch \ - file://0007-use-asm-sgidefs.h.patch \ - file://0008-Use-exorted-definitions-of-SIGRTMIN.patch \ - file://0009-Change-order-of-CFLAGS.patch \ - file://0010-resolve-restrict-keyword-conflict.patch \ - file://0011-Fix-invalid-sigprocmask-call.patch \ - " -SRC_URI[md5sum] = "bbd95b2f9b34621ad7a19a3965476314" -SRC_URI[sha256sum] = "802f7ee309dcc547d65a68d61ebd6526762d26c3051f52caebe2189ac1ffd72e" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gdb/gdb-cross-canadian_8.3.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gdb/gdb-cross-canadian_8.3.1.bb similarity index 100% rename from Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gdb/gdb-cross-canadian_8.3.bb rename to Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gdb/gdb-cross-canadian_8.3.1.bb diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gdb/gdb-cross_8.3.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gdb/gdb-cross_8.3.1.bb similarity index 100% rename from Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gdb/gdb-cross_8.3.bb rename to Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gdb/gdb-cross_8.3.1.bb diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gdb/gdb.inc b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gdb/gdb.inc index 0f10b417..249e24dc 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gdb/gdb.inc +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gdb/gdb.inc @@ -10,4 +10,5 @@ PACKAGES =+ "gdbserver" FILES_gdbserver = "${bindir}/gdbserver" ALLOW_EMPTY_gdbserver_riscv64 = "1" +ALLOW_EMPTY_gdbserver_riscv32 = "1" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gdb/gdb_8.3.1.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gdb/gdb_8.3.1.bb new file mode 100644 index 00000000..d70757a1 --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gdb/gdb_8.3.1.bb @@ -0,0 +1,28 @@ +require gdb.inc +require gdb-${PV}.inc + +inherit python3-dir + +EXTRA_OEMAKE_append_libc-musl = "\ + gt_cv_func_gnugettext1_libc=yes \ + gt_cv_func_gnugettext2_libc=yes \ + gl_cv_func_working_strerror=yes \ + gl_cv_func_strerror_0_works=yes \ + gl_cv_func_gettimeofday_clobber=no \ + " + +do_configure_prepend() { + if [ "${@bb.utils.filter('PACKAGECONFIG', 'python', d)}" ]; then + cat > ${WORKDIR}/python << EOF +#!/bin/sh +case "\$2" in + --includes) echo "-I${STAGING_INCDIR}/${PYTHON_DIR}${PYTHON_ABI}/" ;; + --ldflags) echo "-Wl,-rpath-link,${STAGING_LIBDIR}/.. -Wl,-rpath,${libdir}/.. -lpthread -ldl -lutil -lm -lpython${PYTHON_BASEVERSION}${PYTHON_ABI}" ;; + --exec-prefix) echo "${exec_prefix}" ;; + *) exit 1 ;; +esac +exit 0 +EOF + chmod +x ${WORKDIR}/python + fi +} diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gdb/gdb_8.3.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gdb/gdb_8.3.bb deleted file mode 100644 index c6eac84d..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/gdb/gdb_8.3.bb +++ /dev/null @@ -1,29 +0,0 @@ -require gdb.inc -require gdb-${PV}.inc - -inherit python3-dir - -EXTRA_OEMAKE_append_libc-musl = "\ - gt_cv_func_gnugettext1_libc=yes \ - gt_cv_func_gnugettext2_libc=yes \ - gl_cv_func_working_strerror=yes \ - gl_cv_func_strerror_0_works=yes \ - gl_cv_func_gettimeofday_clobber=no \ - " - -do_configure_prepend() { - if [ "${@bb.utils.filter('PACKAGECONFIG', 'python', d)}" ]; then - cat > ${WORKDIR}/python << EOF -#!/bin/sh -case "\$2" in - --includes) echo "-I${STAGING_INCDIR}/${PYTHON_DIR}${PYTHON_ABI}/" ;; - --ldflags) echo "-Wl,-rpath-link,${STAGING_LIBDIR}/.. -Wl,-rpath,${libdir}/.. -lpthread -ldl -lutil -lm -lpython${PYTHON_BASEVERSION}${PYTHON_ABI}" ;; - --exec-prefix) echo "${exec_prefix}" ;; - *) exit 1 ;; -esac -exit 0 -EOF - chmod +x ${WORKDIR}/python - fi -} -CPPFLAGS_append_libc-musl = " -Drpl_gettimeofday=gettimeofday -Drpl_stat=stat" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/git/git.inc b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/git/git.inc index 26a22ac1..95ab397f 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/git/git.inc +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/git/git.inc @@ -13,6 +13,8 @@ S = "${WORKDIR}/git-${PV}" LIC_FILES_CHKSUM = "file://COPYING;md5=7c0d7ef03a7eb04ce795b0f60e68e7e1" +CVE_PRODUCT = "git-scm:git" + PACKAGECONFIG ??= "" PACKAGECONFIG[cvsserver] = "" PACKAGECONFIG[svn] = "" @@ -37,12 +39,12 @@ do_compile_prepend () { do_install () { oe_runmake install DESTDIR="${D}" bindir=${bindir} \ template_dir=${datadir}/git-core/templates - install -d ${D}/${mandir}/man1 - install -d ${D}/${mandir}/man5 - install -d ${D}/${mandir}/man7 - install -t ${D}/${mandir}/man1 ${WORKDIR}/man1/* - install -t ${D}/${mandir}/man5 ${WORKDIR}/man5/* - install -t ${D}/${mandir}/man7 ${WORKDIR}/man7/* + + for section in man1 man5 man7; do + install -d ${D}/${mandir}/$section + install -t ${D}/${mandir}/$section ${WORKDIR}/$section/* + done + install -d ${D}/${datadir}/bash-completion/completions/ install -m 644 ${S}/contrib/completion/git-completion.bash ${D}/${datadir}/bash-completion/completions/git } @@ -92,19 +94,15 @@ do_install_append_class-nativesdk() { FILES_${PN} += "${datadir}/git-core ${libexecdir}/git-core/" PERLTOOLS = " \ + ${bindir}/git-cvsserver \ ${libexecdir}/git-core/git-add--interactive \ ${libexecdir}/git-core/git-archimport \ ${libexecdir}/git-core/git-cvsexportcommit \ ${libexecdir}/git-core/git-cvsimport \ ${libexecdir}/git-core/git-cvsserver \ - ${bindir}/git-cvsserver \ - ${libexecdir}/git-core/git-difftool \ ${libexecdir}/git-core/git-send-email \ ${libexecdir}/git-core/git-svn \ ${libexecdir}/git-core/git-instaweb \ - ${libexecdir}/git-core/git-submodule \ - ${libexecdir}/git-core/git-am \ - ${libexecdir}/git-core/git-request-pull \ ${datadir}/gitweb/gitweb.cgi \ ${datadir}/git-core/templates/hooks/prepare-commit-msg.sample \ ${datadir}/git-core/templates/hooks/pre-rebase.sample \ diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/git/git_2.21.0.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/git/git_2.21.0.bb deleted file mode 100644 index 434ff8f3..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/git/git_2.21.0.bb +++ /dev/null @@ -1,11 +0,0 @@ -require git.inc - -EXTRA_OECONF += "ac_cv_snprintf_returns_bogus=no \ - ac_cv_fread_reads_directories=${ac_cv_fread_reads_directories=yes} \ - " -EXTRA_OEMAKE += "NO_GETTEXT=1" - -SRC_URI[tarball.md5sum] = "b8e00c2997774c5d4aaf26fd9d9aaf64" -SRC_URI[tarball.sha256sum] = "85eca51c7404da75e353eba587f87fea9481ba41e162206a6f70ad8118147bee" -SRC_URI[manpages.md5sum] = "8a168697b99a9a3f04f29f7d4bacd70b" -SRC_URI[manpages.sha256sum] = "14c76ebb4e31f9e55cf5338a04fd3a13bced0323cd51794ccf45fc74bd0c1080" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/git/git_2.24.0.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/git/git_2.24.0.bb new file mode 100644 index 00000000..e9cb382f --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/git/git_2.24.0.bb @@ -0,0 +1,11 @@ +require git.inc + +EXTRA_OECONF += "ac_cv_snprintf_returns_bogus=no \ + ac_cv_fread_reads_directories=${ac_cv_fread_reads_directories=yes} \ + " +EXTRA_OEMAKE += "NO_GETTEXT=1" + +SRC_URI[tarball.md5sum] = "ed39361a3ae362c8af852d1a06992bc2" +SRC_URI[tarball.sha256sum] = "ad11030d2eac656ee9e8862f56d1610550f7867181beff814c7712a99192e99d" +SRC_URI[manpages.md5sum] = "57465e83f13ba910a178b717d93958c0" +SRC_URI[manpages.sha256sum] = "ce995f86f441b56ab1fd0788a94786904ae2e2989e7191fd68060003011366d7" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/go/go-1.12.inc b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/go/go-1.12.inc index 3f23f06f..ed14b175 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/go/go-1.12.inc +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/go/go-1.12.inc @@ -1,7 +1,7 @@ require go-common.inc GO_BASEVERSION = "1.12" -GO_MINOR = ".6" +GO_MINOR = ".9" PV .= "${GO_MINOR}" FILESEXTRAPATHS_prepend := "${FILE_DIRNAME}/go-${GO_BASEVERSION}:" @@ -16,8 +16,9 @@ SRC_URI += "\ file://0006-cmd-dist-separate-host-and-target-builds.patch \ file://0007-cmd-go-make-GOROOT-precious-by-default.patch \ file://0008-use-GOBUILDMODE-to-set-buildmode.patch \ + file://0001-release-branch.go1.12-security-net-textproto-don-t-n.patch \ " SRC_URI_append_libc-musl = " file://0009-ld-replace-glibc-dynamic-linker-with-musl.patch" -SRC_URI[main.md5sum] = "48a4141fc718dd742d106431294f08bf" -SRC_URI[main.sha256sum] = "c96c5ccc7455638ae1a8b7498a030fe653731c8391c5f8e79590bce72f92b4ca" +SRC_URI[main.md5sum] = "6132109d4050da349eadc9f7b0304ef4" +SRC_URI[main.sha256sum] = "ab0e56ed9c4732a653ed22e232652709afbf573e710f56a07f7fdeca578d62fc" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/go/go-1.12/0001-release-branch.go1.12-security-net-textproto-don-t-n.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/go/go-1.12/0001-release-branch.go1.12-security-net-textproto-don-t-n.patch new file mode 100644 index 00000000..7b39dbd7 --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/go/go-1.12/0001-release-branch.go1.12-security-net-textproto-don-t-n.patch @@ -0,0 +1,163 @@ +From 265b691ac440bfb711d8de323346f7d72e620efe Mon Sep 17 00:00:00 2001 +From: Filippo Valsorda +Date: Thu, 12 Sep 2019 12:37:36 -0400 +Subject: [PATCH] [release-branch.go1.12-security] net/textproto: don't + normalize headers with spaces before the colon + +RFC 7230 is clear about headers with a space before the colon, like + +X-Answer : 42 + +being invalid, but we've been accepting and normalizing them for compatibility +purposes since CL 5690059 in 2012. + +On the client side, this is harmless and indeed most browsers behave the same +to this day. On the server side, this becomes a security issue when the +behavior doesn't match that of a reverse proxy sitting in front of the server. + +For example, if a WAF accepts them without normalizing them, it might be +possible to bypass its filters, because the Go server would interpret the +header differently. Worse, if the reverse proxy coalesces requests onto a +single HTTP/1.1 connection to a Go server, the understanding of the request +boundaries can get out of sync between them, allowing an attacker to tack an +arbitrary method and path onto a request by other clients, including +authentication headers unknown to the attacker. + +This was recently presented at multiple security conferences: +https://portswigger.net/blog/http-desync-attacks-request-smuggling-reborn + +net/http servers already reject header keys with invalid characters. +Simply stop normalizing extra spaces in net/textproto, let it return them +unchanged like it does for other invalid headers, and let net/http enforce +RFC 7230, which is HTTP specific. This loses us normalization on the client +side, but there's no right answer on the client side anyway, and hiding the +issue sounds worse than letting the application decide. + +Fixes CVE-2019-16276 + +Change-Id: I6d272de827e0870da85d93df770d6a0e161bbcf1 +Reviewed-on: https://team-review.git.corp.google.com/c/golang/go-private/+/549719 +Reviewed-by: Brad Fitzpatrick +(cherry picked from commit 1280b868e82bf173ea3e988be3092d160ee66082) +Reviewed-on: https://team-review.git.corp.google.com/c/golang/go-private/+/558776 +Reviewed-by: Dmitri Shuralyov + +CVE: CVE-2019-16276 + +Upstream-Status: Backport [https://github.com/golang/go/commit/6e6f4aaf70c8b1cc81e65a26332aa9409de03ad8] + +Signed-off-by: Chen Qi +--- + src/net/http/serve_test.go | 4 ++++ + src/net/http/transport_test.go | 27 +++++++++++++++++++++++++++ + src/net/textproto/reader.go | 10 ++-------- + src/net/textproto/reader_test.go | 13 ++++++------- + 4 files changed, 39 insertions(+), 15 deletions(-) + +diff --git a/src/net/http/serve_test.go b/src/net/http/serve_test.go +index 6eb0088a96..89bfdfbb82 100644 +--- a/src/net/http/serve_test.go ++++ b/src/net/http/serve_test.go +@@ -4748,6 +4748,10 @@ func TestServerValidatesHeaders(t *testing.T) { + {"foo\xffbar: foo\r\n", 400}, // binary in header + {"foo\x00bar: foo\r\n", 400}, // binary in header + {"Foo: " + strings.Repeat("x", 1<<21) + "\r\n", 431}, // header too large ++ // Spaces between the header key and colon are not allowed. ++ // See RFC 7230, Section 3.2.4. ++ {"Foo : bar\r\n", 400}, ++ {"Foo\t: bar\r\n", 400}, + + {"foo: foo foo\r\n", 200}, // LWS space is okay + {"foo: foo\tfoo\r\n", 200}, // LWS tab is okay +diff --git a/src/net/http/transport_test.go b/src/net/http/transport_test.go +index 5c329543e2..5e5438a708 100644 +--- a/src/net/http/transport_test.go ++++ b/src/net/http/transport_test.go +@@ -5133,3 +5133,30 @@ func TestTransportIgnores408(t *testing.T) { + } + t.Fatalf("timeout after %v waiting for Transport connections to die off", time.Since(t0)) + } ++ ++func TestInvalidHeaderResponse(t *testing.T) { ++ setParallel(t) ++ defer afterTest(t) ++ cst := newClientServerTest(t, h1Mode, HandlerFunc(func(w ResponseWriter, r *Request) { ++ conn, buf, _ := w.(Hijacker).Hijack() ++ buf.Write([]byte("HTTP/1.1 200 OK\r\n" + ++ "Date: Wed, 30 Aug 2017 19:09:27 GMT\r\n" + ++ "Content-Type: text/html; charset=utf-8\r\n" + ++ "Content-Length: 0\r\n" + ++ "Foo : bar\r\n\r\n")) ++ buf.Flush() ++ conn.Close() ++ })) ++ defer cst.close() ++ res, err := cst.c.Get(cst.ts.URL) ++ if err != nil { ++ t.Fatal(err) ++ } ++ defer res.Body.Close() ++ if v := res.Header.Get("Foo"); v != "" { ++ t.Errorf(`unexpected "Foo" header: %q`, v) ++ } ++ if v := res.Header.Get("Foo "); v != "bar" { ++ t.Errorf(`bad "Foo " header value: %q, want %q`, v, "bar") ++ } ++} +diff --git a/src/net/textproto/reader.go b/src/net/textproto/reader.go +index 2c4f25d5ae..1a5e364cf7 100644 +--- a/src/net/textproto/reader.go ++++ b/src/net/textproto/reader.go +@@ -493,18 +493,12 @@ func (r *Reader) ReadMIMEHeader() (MIMEHeader, error) { + return m, err + } + +- // Key ends at first colon; should not have trailing spaces +- // but they appear in the wild, violating specs, so we remove +- // them if present. ++ // Key ends at first colon. + i := bytes.IndexByte(kv, ':') + if i < 0 { + return m, ProtocolError("malformed MIME header line: " + string(kv)) + } +- endKey := i +- for endKey > 0 && kv[endKey-1] == ' ' { +- endKey-- +- } +- key := canonicalMIMEHeaderKey(kv[:endKey]) ++ key := canonicalMIMEHeaderKey(kv[:i]) + + // As per RFC 7230 field-name is a token, tokens consist of one or more chars. + // We could return a ProtocolError here, but better to be liberal in what we +diff --git a/src/net/textproto/reader_test.go b/src/net/textproto/reader_test.go +index f85fbdc36d..b92fdcd3c7 100644 +--- a/src/net/textproto/reader_test.go ++++ b/src/net/textproto/reader_test.go +@@ -188,11 +188,10 @@ func TestLargeReadMIMEHeader(t *testing.T) { + } + } + +-// Test that we read slightly-bogus MIME headers seen in the wild, +-// with spaces before colons, and spaces in keys. ++// TestReadMIMEHeaderNonCompliant checks that we don't normalize headers ++// with spaces before colons, and accept spaces in keys. + func TestReadMIMEHeaderNonCompliant(t *testing.T) { +- // Invalid HTTP response header as sent by an Axis security +- // camera: (this is handled by IE, Firefox, Chrome, curl, etc.) ++ // These invalid headers will be rejected by net/http according to RFC 7230. + r := reader("Foo: bar\r\n" + + "Content-Language: en\r\n" + + "SID : 0\r\n" + +@@ -202,9 +201,9 @@ func TestReadMIMEHeaderNonCompliant(t *testing.T) { + want := MIMEHeader{ + "Foo": {"bar"}, + "Content-Language": {"en"}, +- "Sid": {"0"}, +- "Audio Mode": {"None"}, +- "Privilege": {"127"}, ++ "SID ": {"0"}, ++ "Audio Mode ": {"None"}, ++ "Privilege ": {"127"}, + } + if !reflect.DeepEqual(m, want) || err != nil { + t.Fatalf("ReadMIMEHeader =\n%v, %v; want:\n%v", m, err, want) diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/go/go-1.13/0001-allow-CC-and-CXX-to-have-multiple-words.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/go/go-1.13/0001-allow-CC-and-CXX-to-have-multiple-words.patch new file mode 100644 index 00000000..ddfd5e41 --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/go/go-1.13/0001-allow-CC-and-CXX-to-have-multiple-words.patch @@ -0,0 +1,38 @@ +From 9e3dc44cdfa58d96504d0a789dc82617dd5bef55 Mon Sep 17 00:00:00 2001 +From: Alex Kube +Date: Wed, 23 Oct 2019 21:01:13 +0430 +Subject: [PATCH 1/9] cmd/go: Allow CC and CXX to have multiple words + +Upstream-Status: Inappropriate [OE specific] + +Adapted to Go 1.13 from patches originally submitted to +the meta/recipes-devtools/go tree by +Matt Madison . + +Signed-off-by: Alexander J Kube + +--- + src/cmd/go/internal/envcmd/env.go | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/src/cmd/go/internal/envcmd/env.go b/src/cmd/go/internal/envcmd/env.go +index 17852de..7b5ec5e 100644 +--- a/src/cmd/go/internal/envcmd/env.go ++++ b/src/cmd/go/internal/envcmd/env.go +@@ -100,11 +100,11 @@ func MkEnv() []cfg.EnvVar { + + cc := cfg.DefaultCC(cfg.Goos, cfg.Goarch) + if env := strings.Fields(cfg.Getenv("CC")); len(env) > 0 { +- cc = env[0] ++ cc = strings.Join(env, " ") + } + cxx := cfg.DefaultCXX(cfg.Goos, cfg.Goarch) + if env := strings.Fields(cfg.Getenv("CXX")); len(env) > 0 { +- cxx = env[0] ++ cxx = strings.Join(env, " ") + } + env = append(env, cfg.EnvVar{Name: "AR", Value: envOr("AR", "ar")}) + env = append(env, cfg.EnvVar{Name: "CC", Value: cc}) +-- +2.17.1 (Apple Git-112) + diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/go/go-1.13/0002-cmd-go-make-content-based-hash-generation-less-pedan.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/go/go-1.13/0002-cmd-go-make-content-based-hash-generation-less-pedan.patch new file mode 100644 index 00000000..4eddd398 --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/go/go-1.13/0002-cmd-go-make-content-based-hash-generation-less-pedan.patch @@ -0,0 +1,226 @@ +From a13ae484e41139094505d2834437e9262a5315f7 Mon Sep 17 00:00:00 2001 +From: Alex Kube +Date: Wed, 23 Oct 2019 21:14:22 +0430 +Subject: [PATCH 2/9] cmd/go: make content-based hash generation less pedantic + +Upstream-Status: Inappropriate [OE specific] + +Go 1.10's build tool now uses content-based hashes to +determine when something should be built or re-built. +This same mechanism is used to maintain a built-artifact +cache for speeding up builds. + +However, the hashes it generates include information that +doesn't work well with OE, nor with using a shared runtime +library. + +First, it embeds path names to source files, unless +building within GOROOT. This prevents the building +of a package in GOPATH for later staging into GOROOT. + +This patch adds support for the environment variable +GOPATH_OMIT_IN_ACTIONID. If present, path name +embedding is disabled. + +Second, if cgo is enabled, the build ID for cgo-related +packages will include the current value of the environment +variables for invoking the compiler (CC, CXX, FC) and +any CGO_xxFLAGS variables. Only if the settings used +during a compilation exactly match, character for character, +the values used for compiling runtime/cgo or any other +cgo-enabled package being imported, will the tool +decide that the imported package is up-to-date. + +This is done to help ensure correctness, but is overly +simplistic and effectively prevents the reuse of built +artifacts that use cgo (or shared runtime, which includes +runtime/cgo). + +This patch filters out all compiler flags except those +beginning with '-m'. The default behavior can be restored +by setting the CGO_PEDANTIC environment variable. + +Adapted to Go 1.13 from patches originally submitted to +the meta/recipes-devtools/go tree by +Matt Madison . + +Signed-off-by: Alexander J Kube +--- + src/cmd/go/internal/envcmd/env.go | 2 +- + src/cmd/go/internal/work/exec.go | 66 ++++++++++++++++++++++--------- + 2 files changed, 49 insertions(+), 19 deletions(-) + +diff --git a/src/cmd/go/internal/envcmd/env.go b/src/cmd/go/internal/envcmd/env.go +index 7b5ec5e..292f117 100644 +--- a/src/cmd/go/internal/envcmd/env.go ++++ b/src/cmd/go/internal/envcmd/env.go +@@ -154,7 +154,7 @@ func ExtraEnvVars() []cfg.EnvVar { + func ExtraEnvVarsCostly() []cfg.EnvVar { + var b work.Builder + b.Init() +- cppflags, cflags, cxxflags, fflags, ldflags, err := b.CFlags(&load.Package{}) ++ cppflags, cflags, cxxflags, fflags, ldflags, err := b.CFlags(&load.Package{}, false) + if err != nil { + // Should not happen - b.CFlags was given an empty package. + fmt.Fprintf(os.Stderr, "go: invalid cflags: %v\n", err) +diff --git a/src/cmd/go/internal/work/exec.go b/src/cmd/go/internal/work/exec.go +index 7dd9a90..ccebaf8 100644 +--- a/src/cmd/go/internal/work/exec.go ++++ b/src/cmd/go/internal/work/exec.go +@@ -32,6 +32,8 @@ import ( + "time" + ) + ++var omitGopath = os.Getenv("GOPATH_OMIT_IN_ACTIONID") != "" ++ + // actionList returns the list of actions in the dag rooted at root + // as visited in a depth-first post-order traversal. + func actionList(root *Action) []*Action { +@@ -205,7 +207,7 @@ func (b *Builder) buildActionID(a *Action) cache.ActionID { + // The compiler hides the exact value of $GOROOT + // when building things in GOROOT. + // Assume b.WorkDir is being trimmed properly. +- if !p.Goroot && !cfg.BuildTrimpath && !strings.HasPrefix(p.Dir, b.WorkDir) { ++ if !p.Goroot && !omitGopath && !cfg.BuildTrimpath && !strings.HasPrefix(p.Dir, b.WorkDir) { + fmt.Fprintf(h, "dir %s\n", p.Dir) + } + fmt.Fprintf(h, "goos %s goarch %s\n", cfg.Goos, cfg.Goarch) +@@ -219,13 +221,13 @@ func (b *Builder) buildActionID(a *Action) cache.ActionID { + } + if len(p.CgoFiles)+len(p.SwigFiles) > 0 { + fmt.Fprintf(h, "cgo %q\n", b.toolID("cgo")) +- cppflags, cflags, cxxflags, fflags, ldflags, _ := b.CFlags(p) +- fmt.Fprintf(h, "CC=%q %q %q %q\n", b.ccExe(), cppflags, cflags, ldflags) ++ cppflags, cflags, cxxflags, fflags, ldflags, _ := b.CFlags(p, true) ++ fmt.Fprintf(h, "CC=%q %q %q %q\n", b.ccExe(true), cppflags, cflags, ldflags) + if len(p.CXXFiles)+len(p.SwigFiles) > 0 { +- fmt.Fprintf(h, "CXX=%q %q\n", b.cxxExe(), cxxflags) ++ fmt.Fprintf(h, "CXX=%q %q\n", b.cxxExe(true), cxxflags) + } + if len(p.FFiles) > 0 { +- fmt.Fprintf(h, "FC=%q %q\n", b.fcExe(), fflags) ++ fmt.Fprintf(h, "FC=%q %q\n", b.fcExe(true), fflags) + } + // TODO(rsc): Should we include the SWIG version or Fortran/GCC/G++/Objective-C compiler versions? + } +@@ -2229,33 +2231,48 @@ var ( + // gccCmd returns a gcc command line prefix + // defaultCC is defined in zdefaultcc.go, written by cmd/dist. + func (b *Builder) GccCmd(incdir, workdir string) []string { +- return b.compilerCmd(b.ccExe(), incdir, workdir) ++ return b.compilerCmd(b.ccExe(false), incdir, workdir) + } + + // gxxCmd returns a g++ command line prefix + // defaultCXX is defined in zdefaultcc.go, written by cmd/dist. + func (b *Builder) GxxCmd(incdir, workdir string) []string { +- return b.compilerCmd(b.cxxExe(), incdir, workdir) ++ return b.compilerCmd(b.cxxExe(false), incdir, workdir) + } + + // gfortranCmd returns a gfortran command line prefix. + func (b *Builder) gfortranCmd(incdir, workdir string) []string { +- return b.compilerCmd(b.fcExe(), incdir, workdir) ++ return b.compilerCmd(b.fcExe(false), incdir, workdir) + } + + // ccExe returns the CC compiler setting without all the extra flags we add implicitly. +-func (b *Builder) ccExe() []string { +- return b.compilerExe(origCC, cfg.DefaultCC(cfg.Goos, cfg.Goarch)) ++func (b *Builder) ccExe(filtered bool) []string { ++ return b.compilerExe(origCC, cfg.DefaultCC(cfg.Goos, cfg.Goarch), filtered) + } + + // cxxExe returns the CXX compiler setting without all the extra flags we add implicitly. +-func (b *Builder) cxxExe() []string { +- return b.compilerExe(origCXX, cfg.DefaultCXX(cfg.Goos, cfg.Goarch)) ++func (b *Builder) cxxExe(filtered bool) []string { ++ return b.compilerExe(origCXX, cfg.DefaultCXX(cfg.Goos, cfg.Goarch), filtered) + } + + // fcExe returns the FC compiler setting without all the extra flags we add implicitly. +-func (b *Builder) fcExe() []string { +- return b.compilerExe(cfg.Getenv("FC"), "gfortran") ++func (b *Builder) fcExe(filtered bool) []string { ++ return b.compilerExe(os.Getenv("FC"), "gfortran", filtered) ++} ++ ++var filterFlags = os.Getenv("CGO_PEDANTIC") == "" ++ ++func filterCompilerFlags(flags []string) []string { ++ var newflags []string ++ if !filterFlags { ++ return flags ++ } ++ for _, flag := range flags { ++ if strings.HasPrefix(flag, "-m") { ++ newflags = append(newflags, flag) ++ } ++ } ++ return newflags + } + + // compilerExe returns the compiler to use given an +@@ -2264,11 +2281,16 @@ func (b *Builder) fcExe() []string { + // of the compiler but can have additional arguments if they + // were present in the environment value. + // For example if CC="gcc -DGOPHER" then the result is ["gcc", "-DGOPHER"]. +-func (b *Builder) compilerExe(envValue string, def string) []string { ++func (b *Builder) compilerExe(envValue string, def string, filtered bool) []string { + compiler := strings.Fields(envValue) + if len(compiler) == 0 { + compiler = []string{def} + } ++ ++ if filtered { ++ return append(compiler[0:1], filterCompilerFlags(compiler[1:])...) ++ } ++ + return compiler + } + +@@ -2429,7 +2451,7 @@ func envList(key, def string) []string { + } + + // CFlags returns the flags to use when invoking the C, C++ or Fortran compilers, or cgo. +-func (b *Builder) CFlags(p *load.Package) (cppflags, cflags, cxxflags, fflags, ldflags []string, err error) { ++func (b *Builder) CFlags(p *load.Package, filtered bool) (cppflags, cflags, cxxflags, fflags, ldflags []string, err error) { + defaults := "-g -O2" + + if cppflags, err = buildFlags("CPPFLAGS", "", p.CgoCPPFLAGS, checkCompilerFlags); err != nil { +@@ -2448,6 +2470,14 @@ func (b *Builder) CFlags(p *load.Package) (cppflags, cflags, cxxflags, fflags, l + return + } + ++ if filtered { ++ cppflags = filterCompilerFlags(cppflags) ++ cflags = filterCompilerFlags(cflags) ++ cxxflags = filterCompilerFlags(cxxflags) ++ fflags = filterCompilerFlags(fflags) ++ ldflags = filterCompilerFlags(ldflags) ++ } ++ + return + } + +@@ -2462,7 +2492,7 @@ var cgoRe = lazyregexp.New(`[/\\:]`) + + func (b *Builder) cgo(a *Action, cgoExe, objdir string, pcCFLAGS, pcLDFLAGS, cgofiles, gccfiles, gxxfiles, mfiles, ffiles []string) (outGo, outObj []string, err error) { + p := a.Package +- cgoCPPFLAGS, cgoCFLAGS, cgoCXXFLAGS, cgoFFLAGS, cgoLDFLAGS, err := b.CFlags(p) ++ cgoCPPFLAGS, cgoCFLAGS, cgoCXXFLAGS, cgoFFLAGS, cgoLDFLAGS, err := b.CFlags(p, false) + if err != nil { + return nil, nil, err + } +@@ -2821,7 +2851,7 @@ func (b *Builder) swigIntSize(objdir string) (intsize string, err error) { + + // Run SWIG on one SWIG input file. + func (b *Builder) swigOne(a *Action, p *load.Package, file, objdir string, pcCFLAGS []string, cxx bool, intgosize string) (outGo, outC string, err error) { +- cgoCPPFLAGS, cgoCFLAGS, cgoCXXFLAGS, _, _, err := b.CFlags(p) ++ cgoCPPFLAGS, cgoCFLAGS, cgoCXXFLAGS, _, _, err := b.CFlags(p, false) + if err != nil { + return "", "", err + } +-- +2.17.1 (Apple Git-112) + diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/go/go-1.13/0003-allow-GOTOOLDIR-to-be-overridden-in-the-environment.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/go/go-1.13/0003-allow-GOTOOLDIR-to-be-overridden-in-the-environment.patch new file mode 100644 index 00000000..9aa0119a --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/go/go-1.13/0003-allow-GOTOOLDIR-to-be-overridden-in-the-environment.patch @@ -0,0 +1,54 @@ +From 28ada8896b76d620240bafc22aa395071d601482 Mon Sep 17 00:00:00 2001 +From: Alex Kube +Date: Wed, 23 Oct 2019 21:15:37 +0430 +Subject: [PATCH 3/9] cmd/go: Allow GOTOOLDIR to be overridden in the environment + +to allow for split host/target build roots + +Adapted to Go 1.13 from patches originally submitted to +the meta/recipes-devtools/go tree by +Matt Madison . + +Upstream-Status: Inappropriate [OE specific] + +Signed-off-by: Alexander J Kube +--- + src/cmd/dist/build.go | 4 +++- + src/cmd/go/internal/cfg/cfg.go | 6 +++++- + 2 files changed, 8 insertions(+), 2 deletions(-) + +diff --git a/src/cmd/dist/build.go b/src/cmd/dist/build.go +index 9e50311..683ca6f 100644 +--- a/src/cmd/dist/build.go ++++ b/src/cmd/dist/build.go +@@ -244,7 +244,9 @@ func xinit() { + workdir = xworkdir() + xatexit(rmworkdir) + +- tooldir = pathf("%s/pkg/tool/%s_%s", goroot, gohostos, gohostarch) ++ if tooldir = os.Getenv("GOTOOLDIR"); tooldir == "" { ++ tooldir = pathf("%s/pkg/tool/%s_%s", goroot, gohostos, gohostarch) ++ } + } + + // compilerEnv returns a map from "goos/goarch" to the +diff --git a/src/cmd/go/internal/cfg/cfg.go b/src/cmd/go/internal/cfg/cfg.go +index a3277a6..db96350 100644 +--- a/src/cmd/go/internal/cfg/cfg.go ++++ b/src/cmd/go/internal/cfg/cfg.go +@@ -60,7 +60,11 @@ func defaultContext() build.Context { + // variables. This matches the initialization of ToolDir in + // go/build, except for using ctxt.GOROOT rather than + // runtime.GOROOT. +- build.ToolDir = filepath.Join(ctxt.GOROOT, "pkg/tool/"+runtime.GOOS+"_"+runtime.GOARCH) ++ if s := os.Getenv("GOTOOLDIR"); s != "" { ++ build.ToolDir = filepath.Clean(s) ++ } else { ++ build.ToolDir = filepath.Join(ctxt.GOROOT, "pkg/tool/"+runtime.GOOS+"_"+runtime.GOARCH) ++ } + } + + ctxt.GOPATH = envOr("GOPATH", ctxt.GOPATH) +-- +2.17.1 (Apple Git-112) + diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/go/go-1.13/0004-ld-add-soname-to-shareable-objects.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/go/go-1.13/0004-ld-add-soname-to-shareable-objects.patch new file mode 100644 index 00000000..40763ad5 --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/go/go-1.13/0004-ld-add-soname-to-shareable-objects.patch @@ -0,0 +1,50 @@ +From bf5cf5301ae5914498454c87293d1df2e1d8489f Mon Sep 17 00:00:00 2001 +From: Alex Kube +Date: Wed, 23 Oct 2019 21:16:32 +0430 +Subject: [PATCH 4/9] ld: add soname to shareable objects + +so that OE's shared library dependency handling +can find them. + +Adapted to Go 1.13 from patches originally submitted to +the meta/recipes-devtools/go tree by +Matt Madison . + +Upstream-Status: Inappropriate [OE specific] + +Signed-off-by: Alexander J Kube +--- + src/cmd/link/internal/ld/lib.go | 3 +++ + 1 file changed, 3 insertions(+) + +diff --git a/src/cmd/link/internal/ld/lib.go b/src/cmd/link/internal/ld/lib.go +index 3fa258d..f96fb02 100644 +--- a/src/cmd/link/internal/ld/lib.go ++++ b/src/cmd/link/internal/ld/lib.go +@@ -1215,6 +1215,7 @@ func (ctxt *Link) hostlink() { + argv = append(argv, "-Wl,-z,relro") + } + argv = append(argv, "-shared") ++ argv = append(argv, fmt.Sprintf("-Wl,-soname,%s", filepath.Base(*flagOutfile))) + if ctxt.HeadType != objabi.Hwindows { + // Pass -z nodelete to mark the shared library as + // non-closeable: a dlclose will do nothing. +@@ -1226,6 +1227,7 @@ func (ctxt *Link) hostlink() { + argv = append(argv, "-Wl,-z,relro") + } + argv = append(argv, "-shared") ++ argv = append(argv, fmt.Sprintf("-Wl,-soname,%s", filepath.Base(*flagOutfile))) + case BuildModePlugin: + if ctxt.HeadType == objabi.Hdarwin { + argv = append(argv, "-dynamiclib") +@@ -1234,6 +1236,7 @@ func (ctxt *Link) hostlink() { + argv = append(argv, "-Wl,-z,relro") + } + argv = append(argv, "-shared") ++ argv = append(argv, fmt.Sprintf("-Wl,-soname,%s", filepath.Base(*flagOutfile))) + } + } + +-- +2.17.1 (Apple Git-112) + diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/go/go-1.13/0005-make.bash-override-CC-when-building-dist-and-go_boot.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/go/go-1.13/0005-make.bash-override-CC-when-building-dist-and-go_boot.patch new file mode 100644 index 00000000..4f2a46c6 --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/go/go-1.13/0005-make.bash-override-CC-when-building-dist-and-go_boot.patch @@ -0,0 +1,44 @@ +From f05ef3ded52b98537c10efd0b15cd9612471524d Mon Sep 17 00:00:00 2001 +From: Alex Kube +Date: Wed, 23 Oct 2019 21:17:16 +0430 +Subject: [PATCH 5/9] make.bash: override CC when building dist and + go_bootstrap + +for handling OE cross-canadian builds. + +Adapted to Go 1.13 from patches originally submitted to +the meta/recipes-devtools/go tree by +Matt Madison . + +Upstream-Status: Inappropriate [OE specific] + +Signed-off-by: Alexander J Kube +--- + src/make.bash | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/src/make.bash b/src/make.bash +index 92d1481..0c2822f 100755 +--- a/src/make.bash ++++ b/src/make.bash +@@ -177,7 +177,7 @@ if [ "$GOROOT_BOOTSTRAP" = "$GOROOT" ]; then + exit 1 + fi + rm -f cmd/dist/dist +-GOROOT="$GOROOT_BOOTSTRAP" GOOS="" GOARCH="" GO111MODULE=off "$GOROOT_BOOTSTRAP/bin/go" build -o cmd/dist/dist ./cmd/dist ++CC="${BUILD_CC:-${CC}}" GOROOT="$GOROOT_BOOTSTRAP" GOOS="" GOARCH="" GO111MODULE=off "$GOROOT_BOOTSTRAP/bin/go" build -o cmd/dist/dist ./cmd/dist + + # -e doesn't propagate out of eval, so check success by hand. + eval $(./cmd/dist/dist env -p || echo FAIL=true) +@@ -208,7 +208,7 @@ fi + # Run dist bootstrap to complete make.bash. + # Bootstrap installs a proper cmd/dist, built with the new toolchain. + # Throw ours, built with Go 1.4, away after bootstrap. +-./cmd/dist/dist bootstrap $buildall $vflag $GO_DISTFLAGS "$@" ++CC="${BUILD_CC:-${CC}}" ./cmd/dist/dist bootstrap $buildall $vflag $GO_DISTFLAGS "$@" + rm -f ./cmd/dist/dist + + # DO NOT ADD ANY NEW CODE HERE. +-- +2.17.1 (Apple Git-112) + diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/go/go-1.13/0006-cmd-dist-separate-host-and-target-builds.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/go/go-1.13/0006-cmd-dist-separate-host-and-target-builds.patch new file mode 100644 index 00000000..354aaca3 --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/go/go-1.13/0006-cmd-dist-separate-host-and-target-builds.patch @@ -0,0 +1,279 @@ +From 10735bb84df17ba657f76835f483cd8543a879c1 Mon Sep 17 00:00:00 2001 +From: Alex Kube +Date: Wed, 23 Oct 2019 21:18:12 +0430 +Subject: [PATCH 6/9] cmd/dist: separate host and target builds + +Upstream-Status: Inappropriate [OE specific] + +Change the dist tool to allow for OE-style cross- +and cross-canadian builds: + + - command flags --host-only and --target only are added; + if one is present, the other changes mentioned below + take effect, and arguments may also be specified on + the command line to enumerate the package(s) to be + built. + + - for OE cross builds, go_bootstrap is always built for + the current build host, and is moved, along with the supporting + toolchain (asm, compile, etc.) to a separate 'native_native' + directory under GOROOT/pkg/tool. + + - go_bootstrap is not automatically removed after the build, + so it can be reused later (e.g., building both static and + shared runtime). + +Note that for --host-only builds, it would be nice to specify +just the "cmd" package to build only the go commands/tools, +the staleness checks in the dist tool will fail if the "std" +library has not also been built. So host-only builds have to +build everything anyway. + +Adapted to Go 1.13 from patches originally submitted to +the meta/recipes-devtools/go tree by +Matt Madison . + +Signed-off-by: Alexander J Kube +--- + src/cmd/dist/build.go | 155 ++++++++++++++++++++++++++++++------------ + 1 file changed, 112 insertions(+), 43 deletions(-) + +diff --git a/src/cmd/dist/build.go b/src/cmd/dist/build.go +index 683ca6f..0ad082b 100644 +--- a/src/cmd/dist/build.go ++++ b/src/cmd/dist/build.go +@@ -41,6 +41,7 @@ var ( + goldflags string + workdir string + tooldir string ++ build_tooldir string + oldgoos string + oldgoarch string + exe string +@@ -53,6 +54,7 @@ var ( + + rebuildall bool + defaultclang bool ++ crossBuild bool + + vflag int // verbosity + ) +@@ -247,6 +249,8 @@ func xinit() { + if tooldir = os.Getenv("GOTOOLDIR"); tooldir == "" { + tooldir = pathf("%s/pkg/tool/%s_%s", goroot, gohostos, gohostarch) + } ++ ++ build_tooldir = pathf("%s/pkg/tool/native_native", goroot) + } + + // compilerEnv returns a map from "goos/goarch" to the +@@ -478,8 +482,10 @@ func setup() { + p := pathf("%s/pkg/%s_%s", goroot, gohostos, gohostarch) + if rebuildall { + xremoveall(p) ++ xremoveall(build_tooldir) + } + xmkdirall(p) ++ xmkdirall(build_tooldir) + + if goos != gohostos || goarch != gohostarch { + p := pathf("%s/pkg/%s_%s", goroot, goos, goarch) +@@ -1207,12 +1213,29 @@ func cmdbootstrap() { + + var noBanner bool + var debug bool ++ var hostOnly bool ++ var targetOnly bool ++ var toBuild = []string{"std", "cmd"} ++ + flag.BoolVar(&rebuildall, "a", rebuildall, "rebuild all") + flag.BoolVar(&debug, "d", debug, "enable debugging of bootstrap process") + flag.BoolVar(&noBanner, "no-banner", noBanner, "do not print banner") ++ flag.BoolVar(&hostOnly, "host-only", hostOnly, "build only host binaries, not target") ++ flag.BoolVar(&targetOnly, "target-only", targetOnly, "build only target binaries, not host") + +- xflagparse(0) ++ xflagparse(-1) + ++ if hostOnly && targetOnly { ++ fatalf("specify only one of --host-only or --target-only\n") ++ } ++ crossBuild = hostOnly || targetOnly ++ if flag.NArg() > 0 { ++ if crossBuild { ++ toBuild = flag.Args() ++ } else { ++ fatalf("package names not permitted without --host-only or --target-only\n") ++ } ++ } + // Set GOPATH to an internal directory. We shouldn't actually + // need to store files here, since the toolchain won't + // depend on modules outside of vendor directories, but if +@@ -1266,8 +1289,13 @@ func cmdbootstrap() { + xprintf("\n") + } + +- gogcflags = os.Getenv("GO_GCFLAGS") // we were using $BOOT_GO_GCFLAGS until now +- goldflags = os.Getenv("GO_LDFLAGS") // we were using $BOOT_GO_LDFLAGS until now ++ // For split host/target cross/cross-canadian builds, we don't ++ // want to be setting these flags until after we have compiled ++ // the toolchain that runs on the build host. ++ if !crossBuild { ++ gogcflags = os.Getenv("GO_GCFLAGS") // we were using $BOOT_GO_GCFLAGS until now ++ goldflags = os.Getenv("GO_LDFLAGS") // we were using $BOOT_GO_LDFLAGS until now ++ } + goBootstrap := pathf("%s/go_bootstrap", tooldir) + cmdGo := pathf("%s/go", gobin) + if debug { +@@ -1296,7 +1324,11 @@ func cmdbootstrap() { + xprintf("\n") + } + xprintf("Building Go toolchain2 using go_bootstrap and Go toolchain1.\n") +- os.Setenv("CC", compilerEnvLookup(defaultcc, goos, goarch)) ++ if crossBuild { ++ os.Setenv("CC", defaultcc[""]) ++ } else { ++ os.Setenv("CC", compilerEnvLookup(defaultcc, goos, goarch)) ++ } + goInstall(goBootstrap, append([]string{"-i"}, toolchain...)...) + if debug { + run("", ShowOutput|CheckExit, pathf("%s/compile", tooldir), "-V=full") +@@ -1333,50 +1365,84 @@ func cmdbootstrap() { + } + checkNotStale(goBootstrap, append(toolchain, "runtime/internal/sys")...) + +- if goos == oldgoos && goarch == oldgoarch { +- // Common case - not setting up for cross-compilation. +- timelog("build", "toolchain") +- if vflag > 0 { +- xprintf("\n") ++ if crossBuild { ++ gogcflags = os.Getenv("GO_GCFLAGS") ++ goldflags = os.Getenv("GO_LDFLAGS") ++ tool_files, _ := filepath.Glob(pathf("%s/*", tooldir)) ++ for _, f := range tool_files { ++ copyfile(pathf("%s/%s", build_tooldir, filepath.Base(f)), f, writeExec) ++ xremove(f) ++ } ++ os.Setenv("GOTOOLDIR", build_tooldir) ++ goBootstrap = pathf("%s/go_bootstrap", build_tooldir) ++ if hostOnly { ++ timelog("build", "host toolchain") ++ if vflag > 0 { ++ xprintf("\n") ++ } ++ xprintf("Building %s for host, %s/%s.\n", strings.Join(toBuild, ","), goos, goarch) ++ goInstall(goBootstrap, toBuild...) ++ checkNotStale(goBootstrap, toBuild...) ++ // Skip cmdGo staleness checks here, since we can't necessarily run the cmdGo binary ++ ++ timelog("build", "target toolchain") ++ if vflag > 0 { ++ xprintf("\n") ++ } ++ } else if targetOnly { ++ goos = oldgoos ++ goarch = oldgoarch ++ os.Setenv("GOOS", goos) ++ os.Setenv("GOARCH", goarch) ++ os.Setenv("CC", compilerEnvLookup(defaultcc, goos, goarch)) ++ xprintf("Building %s for target, %s/%s.\n", strings.Join(toBuild, ","), goos, goarch) ++ goInstall(goBootstrap, toBuild...) ++ checkNotStale(goBootstrap, toBuild...) ++ // Skip cmdGo staleness checks here, since we can't run the target's cmdGo binary + } +- xprintf("Building packages and commands for %s/%s.\n", goos, goarch) + } else { +- // GOOS/GOARCH does not match GOHOSTOS/GOHOSTARCH. +- // Finish GOHOSTOS/GOHOSTARCH installation and then +- // run GOOS/GOARCH installation. +- timelog("build", "host toolchain") +- if vflag > 0 { +- xprintf("\n") +- } +- xprintf("Building packages and commands for host, %s/%s.\n", goos, goarch) ++ ++ if goos == oldgoos && goarch == oldgoarch { ++ // Common case - not setting up for cross-compilation. ++ timelog("build", "toolchain") ++ if vflag > 0 { ++ xprintf("\n") ++ } ++ xprintf("Building packages and commands for %s/%s.\n", goos, goarch) ++ } else { ++ // GOOS/GOARCH does not match GOHOSTOS/GOHOSTARCH. ++ // Finish GOHOSTOS/GOHOSTARCH installation and then ++ // run GOOS/GOARCH installation. ++ timelog("build", "host toolchain") ++ if vflag > 0 { ++ xprintf("\n") ++ } ++ xprintf("Building packages and commands for host, %s/%s.\n", goos, goarch) ++ goInstall(goBootstrap, "std", "cmd") ++ checkNotStale(goBootstrap, "std", "cmd") ++ checkNotStale(cmdGo, "std", "cmd") ++ ++ timelog("build", "target toolchain") ++ if vflag > 0 { ++ xprintf("\n") ++ } ++ goos = oldgoos ++ goarch = oldgoarch ++ os.Setenv("GOOS", goos) ++ os.Setenv("GOARCH", goarch) ++ os.Setenv("CC", compilerEnvLookup(defaultcc, goos, goarch)) ++ xprintf("Building packages and commands for target, %s/%s.\n", goos, goarch) ++ } + goInstall(goBootstrap, "std", "cmd") + checkNotStale(goBootstrap, "std", "cmd") + checkNotStale(cmdGo, "std", "cmd") + +- timelog("build", "target toolchain") +- if vflag > 0 { +- xprintf("\n") ++ if debug { ++ run("", ShowOutput|CheckExit, pathf("%s/compile", tooldir), "-V=full") ++ run("", ShowOutput|CheckExit, pathf("%s/buildid", tooldir), pathf("%s/pkg/%s_%s/runtime/internal/sys.a", goroot, goos, goarch)) ++ checkNotStale(goBootstrap, append(toolchain, "runtime/internal/sys")...) ++ copyfile(pathf("%s/compile4", tooldir), pathf("%s/compile", tooldir), writeExec) + } +- goos = oldgoos +- goarch = oldgoarch +- os.Setenv("GOOS", goos) +- os.Setenv("GOARCH", goarch) +- os.Setenv("CC", compilerEnvLookup(defaultcc, goos, goarch)) +- xprintf("Building packages and commands for target, %s/%s.\n", goos, goarch) +- } +- targets := []string{"std", "cmd"} +- if goos == "js" && goarch == "wasm" { +- // Skip the cmd tools for js/wasm. They're not usable. +- targets = targets[:1] +- } +- goInstall(goBootstrap, targets...) +- checkNotStale(goBootstrap, targets...) +- checkNotStale(cmdGo, targets...) +- if debug { +- run("", ShowOutput|CheckExit, pathf("%s/compile", tooldir), "-V=full") +- run("", ShowOutput|CheckExit, pathf("%s/buildid", tooldir), pathf("%s/pkg/%s_%s/runtime/internal/sys.a", goroot, goos, goarch)) +- checkNotStale(goBootstrap, append(toolchain, "runtime/internal/sys")...) +- copyfile(pathf("%s/compile4", tooldir), pathf("%s/compile", tooldir), writeExec) + } + + // Check that there are no new files in $GOROOT/bin other than +@@ -1393,8 +1459,11 @@ func cmdbootstrap() { + } + } + +- // Remove go_bootstrap now that we're done. +- xremove(pathf("%s/go_bootstrap", tooldir)) ++ // Except that for split host/target cross-builds, we need to ++ // keep it. ++ if !crossBuild { ++ xremove(pathf("%s/go_bootstrap", tooldir)) ++ } + + if goos == "android" { + // Make sure the exec wrapper will sync a fresh $GOROOT to the device. +-- +2.17.1 (Apple Git-112) + diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/go/go-1.13/0007-cmd-go-make-GOROOT-precious-by-default.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/go/go-1.13/0007-cmd-go-make-GOROOT-precious-by-default.patch new file mode 100644 index 00000000..e232c791 --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/go/go-1.13/0007-cmd-go-make-GOROOT-precious-by-default.patch @@ -0,0 +1,113 @@ +From 9ba507e076c744f4d394418e4a849e68cd426a4a Mon Sep 17 00:00:00 2001 +From: Alex Kube +Date: Wed, 23 Oct 2019 21:18:56 +0430 +Subject: [PATCH 7/9] cmd/go: make GOROOT precious by default + +Upstream-Status: Inappropriate [OE specific] + +The go build tool normally rebuilds whatever it detects is +stale. This can be a problem when GOROOT is intended to +be read-only and the go runtime has been built as a shared +library, since we don't want every application to be rebuilding +the shared runtime - particularly in cross-build/packaging +setups, since that would lead to 'abi mismatch' runtime errors. + +This patch prevents the install and linkshared actions from +installing to GOROOT unless overridden with the GOROOT_OVERRIDE +environment variable. + +Adapted to Go 1.13 from patches originally submitted to +the meta/recipes-devtools/go tree by +Matt Madison . + +Signed-off-by: Alexander J Kube +--- + src/cmd/go/internal/work/action.go | 3 +++ + src/cmd/go/internal/work/build.go | 6 ++++++ + src/cmd/go/internal/work/exec.go | 25 +++++++++++++++++++++++++ + 3 files changed, 34 insertions(+) + +diff --git a/src/cmd/go/internal/work/action.go b/src/cmd/go/internal/work/action.go +index 33b7818..7617b4c 100644 +--- a/src/cmd/go/internal/work/action.go ++++ b/src/cmd/go/internal/work/action.go +@@ -662,6 +662,9 @@ func (b *Builder) addTransitiveLinkDeps(a, a1 *Action, shlib string) { + if p1 == nil || p1.Shlib == "" || haveShlib[filepath.Base(p1.Shlib)] { + continue + } ++ if goRootPrecious && (p1.Standard || p1.Goroot) { ++ continue ++ } + haveShlib[filepath.Base(p1.Shlib)] = true + // TODO(rsc): The use of ModeInstall here is suspect, but if we only do ModeBuild, + // we'll end up building an overall library or executable that depends at runtime +diff --git a/src/cmd/go/internal/work/build.go b/src/cmd/go/internal/work/build.go +index 9305b2d..6560317 100644 +--- a/src/cmd/go/internal/work/build.go ++++ b/src/cmd/go/internal/work/build.go +@@ -155,6 +155,8 @@ See also: go install, go get, go clean. + + const concurrentGCBackendCompilationEnabledByDefault = true + ++var goRootPrecious bool = true ++ + func init() { + // break init cycle + CmdBuild.Run = runBuild +@@ -167,6 +169,10 @@ func init() { + + AddBuildFlags(CmdBuild) + AddBuildFlags(CmdInstall) ++ ++ if x := os.Getenv("GOROOT_OVERRIDE"); x != "" { ++ goRootPrecious = false ++ } + } + + // Note that flags consulted by other parts of the code +diff --git a/src/cmd/go/internal/work/exec.go b/src/cmd/go/internal/work/exec.go +index ccebaf8..59450d7 100644 +--- a/src/cmd/go/internal/work/exec.go ++++ b/src/cmd/go/internal/work/exec.go +@@ -455,6 +455,23 @@ func (b *Builder) build(a *Action) (err error) { + return errors.New("binary-only packages are no longer supported") + } + ++ if goRootPrecious && (a.Package.Standard || a.Package.Goroot) { ++ _, err := os.Stat(a.Package.Target) ++ if err == nil { ++ a.built = a.Package.Target ++ a.Target = a.Package.Target ++ a.buildID = b.fileHash(a.Package.Target) ++ a.Package.Stale = false ++ a.Package.StaleReason = "GOROOT-resident package" ++ return nil ++ } ++ a.Package.Stale = true ++ a.Package.StaleReason = "missing or invalid GOROOT-resident package" ++ if b.IsCmdList { ++ return nil ++ } ++ } ++ + if err := b.Mkdir(a.Objdir); err != nil { + return err + } +@@ -1499,6 +1516,14 @@ func BuildInstallFunc(b *Builder, a *Action) (err error) { + return nil + } + ++ if goRootPrecious && a.Package != nil { ++ p := a.Package ++ if p.Standard || p.Goroot { ++ err := fmt.Errorf("attempting to install package %s into read-only GOROOT", p.ImportPath) ++ return err ++ } ++ } ++ + if err := b.Mkdir(a.Objdir); err != nil { + return err + } +-- +2.17.1 (Apple Git-112) + diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/go/go-1.13/0008-use-GOBUILDMODE-to-set-buildmode.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/go/go-1.13/0008-use-GOBUILDMODE-to-set-buildmode.patch new file mode 100644 index 00000000..68e132f3 --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/go/go-1.13/0008-use-GOBUILDMODE-to-set-buildmode.patch @@ -0,0 +1,47 @@ +From 971b5626339ce0c4d57f9721c9a81af566c5a044 Mon Sep 17 00:00:00 2001 +From: Alex Kube +Date: Wed, 23 Oct 2019 21:19:26 +0430 +Subject: [PATCH 8/9] cmd/go: Use GOBUILDMODE to set buildmode + +Upstream-Status: Denied [upstream choose antoher solution: `17a256b +cmd/go: -buildmode=pie for android/arm'] + +While building go itself, the go build system does not support +to set `-buildmode=pie' from environment. + +Add GOBUILDMODE to support it which make PIE executables the default +build mode, as PIE executables are required as of Yocto + +Refers: https://groups.google.com/forum/#!topic/golang-dev/gRCe5URKewI + +Adapted to Go 1.13 from patches originally submitted to +the meta/recipes-devtools/go tree by +Hongxu Jia + +Signed-off-by: Alexander J Kube +--- + src/cmd/go/internal/work/build.go | 8 +++++++- + 1 file changed, 7 insertions(+), 1 deletion(-) + +diff --git a/src/cmd/go/internal/work/build.go b/src/cmd/go/internal/work/build.go +index 6560317..5f3a988 100644 +--- a/src/cmd/go/internal/work/build.go ++++ b/src/cmd/go/internal/work/build.go +@@ -231,7 +231,13 @@ func AddBuildFlags(cmd *base.Command) { + + cmd.Flag.Var(&load.BuildAsmflags, "asmflags", "") + cmd.Flag.Var(buildCompiler{}, "compiler", "") +- cmd.Flag.StringVar(&cfg.BuildBuildmode, "buildmode", "default", "") ++ ++ if bm := os.Getenv("GOBUILDMODE"); bm != "" { ++ cmd.Flag.StringVar(&cfg.BuildBuildmode, "buildmode", bm, "") ++ } else { ++ cmd.Flag.StringVar(&cfg.BuildBuildmode, "buildmode", "default", "") ++ } ++ + cmd.Flag.Var(&load.BuildGcflags, "gcflags", "") + cmd.Flag.Var(&load.BuildGccgoflags, "gccgoflags", "") + cmd.Flag.StringVar(&cfg.BuildMod, "mod", "", "") +-- +2.17.1 (Apple Git-112) + diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/go/go-1.13/0009-ld-replace-glibc-dynamic-linker-with-musl.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/go/go-1.13/0009-ld-replace-glibc-dynamic-linker-with-musl.patch new file mode 100644 index 00000000..4bb1106f --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/go/go-1.13/0009-ld-replace-glibc-dynamic-linker-with-musl.patch @@ -0,0 +1,134 @@ +From 973251ae0c69a35721f6115345d3f57b2847979f Mon Sep 17 00:00:00 2001 +From: Alex Kube +Date: Wed, 23 Oct 2019 21:20:13 +0430 +Subject: [PATCH 9/9] ld: replace glibc dynamic linker with musl + +Rework of patch by Khem Raj +for go 1.10. Should be applied conditionally on +musl being the system C library. + +Adapted to Go 1.13 from patches originally submitted to +the meta/recipes-devtools/go tree by +Matt Madison . + +Upstream-Status: Inappropriate [Real fix should be portable across libcs] + +Signed-off-by: Alexander J Kube +--- + src/cmd/link/internal/amd64/obj.go | 2 +- + src/cmd/link/internal/arm/obj.go | 2 +- + src/cmd/link/internal/arm64/obj.go | 2 +- + src/cmd/link/internal/mips/obj.go | 2 +- + src/cmd/link/internal/mips64/obj.go | 2 +- + src/cmd/link/internal/ppc64/obj.go | 2 +- + src/cmd/link/internal/s390x/obj.go | 2 +- + src/cmd/link/internal/x86/obj.go | 2 +- + 8 files changed, 8 insertions(+), 8 deletions(-) + +diff --git a/src/cmd/link/internal/amd64/obj.go b/src/cmd/link/internal/amd64/obj.go +index 23741eb..8e74576 100644 +--- a/src/cmd/link/internal/amd64/obj.go ++++ b/src/cmd/link/internal/amd64/obj.go +@@ -62,7 +62,7 @@ func Init() (*sys.Arch, ld.Arch) { + PEreloc1: pereloc1, + TLSIEtoLE: tlsIEtoLE, + +- Linuxdynld: "/lib64/ld-linux-x86-64.so.2", ++ Linuxdynld: "/lib64/ld-musl-x86-64.so.1", + Freebsddynld: "/libexec/ld-elf.so.1", + Openbsddynld: "/usr/libexec/ld.so", + Netbsddynld: "/libexec/ld.elf_so", +diff --git a/src/cmd/link/internal/arm/obj.go b/src/cmd/link/internal/arm/obj.go +index 45a406e..724d3e3 100644 +--- a/src/cmd/link/internal/arm/obj.go ++++ b/src/cmd/link/internal/arm/obj.go +@@ -59,7 +59,7 @@ func Init() (*sys.Arch, ld.Arch) { + Machoreloc1: machoreloc1, + PEreloc1: pereloc1, + +- Linuxdynld: "/lib/ld-linux.so.3", // 2 for OABI, 3 for EABI ++ Linuxdynld: "/lib/ld-musl-armhf.so.1", + Freebsddynld: "/usr/libexec/ld-elf.so.1", + Openbsddynld: "/usr/libexec/ld.so", + Netbsddynld: "/libexec/ld.elf_so", +diff --git a/src/cmd/link/internal/arm64/obj.go b/src/cmd/link/internal/arm64/obj.go +index 7c66623..d8b1db1 100644 +--- a/src/cmd/link/internal/arm64/obj.go ++++ b/src/cmd/link/internal/arm64/obj.go +@@ -57,7 +57,7 @@ func Init() (*sys.Arch, ld.Arch) { + Gentext: gentext, + Machoreloc1: machoreloc1, + +- Linuxdynld: "/lib/ld-linux-aarch64.so.1", ++ Linuxdynld: "/lib/ld-musl-aarch64.so.1", + + Freebsddynld: "XXX", + Openbsddynld: "/usr/libexec/ld.so", +diff --git a/src/cmd/link/internal/mips/obj.go b/src/cmd/link/internal/mips/obj.go +index 231e1ff..631dd7a 100644 +--- a/src/cmd/link/internal/mips/obj.go ++++ b/src/cmd/link/internal/mips/obj.go +@@ -60,7 +60,7 @@ func Init() (*sys.Arch, ld.Arch) { + Gentext: gentext, + Machoreloc1: machoreloc1, + +- Linuxdynld: "/lib/ld.so.1", ++ Linuxdynld: "/lib/ld-musl-mipsle.so.1", + + Freebsddynld: "XXX", + Openbsddynld: "XXX", +diff --git a/src/cmd/link/internal/mips64/obj.go b/src/cmd/link/internal/mips64/obj.go +index 9604208..5ef3ffc 100644 +--- a/src/cmd/link/internal/mips64/obj.go ++++ b/src/cmd/link/internal/mips64/obj.go +@@ -59,7 +59,7 @@ func Init() (*sys.Arch, ld.Arch) { + Gentext: gentext, + Machoreloc1: machoreloc1, + +- Linuxdynld: "/lib64/ld64.so.1", ++ Linuxdynld: "/lib64/ld-musl-mips64le.so.1", + Freebsddynld: "XXX", + Openbsddynld: "XXX", + Netbsddynld: "XXX", +diff --git a/src/cmd/link/internal/ppc64/obj.go b/src/cmd/link/internal/ppc64/obj.go +index 51d1791..b15da85 100644 +--- a/src/cmd/link/internal/ppc64/obj.go ++++ b/src/cmd/link/internal/ppc64/obj.go +@@ -63,7 +63,7 @@ func Init() (*sys.Arch, ld.Arch) { + Xcoffreloc1: xcoffreloc1, + + // TODO(austin): ABI v1 uses /usr/lib/ld.so.1, +- Linuxdynld: "/lib64/ld64.so.1", ++ Linuxdynld: "/lib64/ld-musl-powerpc64le.so.1", + + Freebsddynld: "XXX", + Openbsddynld: "XXX", +diff --git a/src/cmd/link/internal/s390x/obj.go b/src/cmd/link/internal/s390x/obj.go +index 3454476..42cc346 100644 +--- a/src/cmd/link/internal/s390x/obj.go ++++ b/src/cmd/link/internal/s390x/obj.go +@@ -57,7 +57,7 @@ func Init() (*sys.Arch, ld.Arch) { + Gentext: gentext, + Machoreloc1: machoreloc1, + +- Linuxdynld: "/lib64/ld64.so.1", ++ Linuxdynld: "/lib64/ld-musl-s390x.so.1", + + // not relevant for s390x + Freebsddynld: "XXX", +diff --git a/src/cmd/link/internal/x86/obj.go b/src/cmd/link/internal/x86/obj.go +index f1fad20..d2ca10c 100644 +--- a/src/cmd/link/internal/x86/obj.go ++++ b/src/cmd/link/internal/x86/obj.go +@@ -58,7 +58,7 @@ func Init() (*sys.Arch, ld.Arch) { + Machoreloc1: machoreloc1, + PEreloc1: pereloc1, + +- Linuxdynld: "/lib/ld-linux.so.2", ++ Linuxdynld: "/lib/ld-musl-i386.so.1", + Freebsddynld: "/usr/libexec/ld-elf.so.1", + Openbsddynld: "/usr/libexec/ld.so", + Netbsddynld: "/usr/libexec/ld.elf_so", +-- +2.17.1 (Apple Git-112) + diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/go/go-dep_0.5.0.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/go/go-dep_0.5.0.bb deleted file mode 100644 index a4d631f8..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/go/go-dep_0.5.0.bb +++ /dev/null @@ -1,25 +0,0 @@ -SUMMARY = "Dependency management tool for Golang" -HOMEPAGE = "https://github.com/golang/dep" -LICENSE = "BSD-3-Clause" -LIC_FILES_CHKSUM = "file://src/${GO_IMPORT}/LICENSE;md5=1bad315647751fab0007812f70d42c0d" - -GO_IMPORT = "github.com/golang/dep" -SRC_URI = "git://${GO_IMPORT} \ - file://0001-Add-support-for-mips-mips64.patch;patchdir=src/github.com/golang/dep \ - " - -# Points to 0.5.0 tag -SRCREV = "224a564abe296670b692fe08bb63a3e4c4ad7978" - -inherit go - -GO_INSTALL = "${GO_IMPORT}/cmd/dep" - -RDEPENDS_${PN}-dev += "bash" - -BBCLASSEXTEND = "native nativesdk" - -# For compiling ptest on mips and mips64, the current go-dep version fails with the go 1.11 toolchain. -# error message: vet config not found -PTEST_ENABLED_mips = "0" -PTEST_ENABLED_mips64 = "0" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/go/go-dep_0.5.4.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/go/go-dep_0.5.4.bb new file mode 100644 index 00000000..ead87870 --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/go/go-dep_0.5.4.bb @@ -0,0 +1,24 @@ +SUMMARY = "Dependency management tool for Golang" +HOMEPAGE = "https://github.com/golang/dep" +LICENSE = "BSD-3-Clause" +LIC_FILES_CHKSUM = "file://src/${GO_IMPORT}/LICENSE;md5=1bad315647751fab0007812f70d42c0d" + +GO_IMPORT = "github.com/golang/dep" +SRC_URI = "git://${GO_IMPORT} \ + file://0001-Add-support-for-mips-mips64.patch;patchdir=src/github.com/golang/dep \ + " + +SRCREV = "1f7c19e5f52f49ffb9f956f64c010be14683468b" + +inherit go + +GO_INSTALL = "${GO_IMPORT}/cmd/dep" + +RDEPENDS_${PN}-dev += "bash" + +BBCLASSEXTEND = "native nativesdk" + +# For compiling ptest on mips and mips64, the current go-dep version fails with the go 1.11 toolchain. +# error message: vet config not found +PTEST_ENABLED_mips = "0" +PTEST_ENABLED_mips64 = "0" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/go/go-runtime.inc b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/go/go-runtime.inc index e2821956..9731e164 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/go/go-runtime.inc +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/go/go-runtime.inc @@ -59,6 +59,9 @@ do_install() { done find ${D}${libdir}/go/src -depth -type d -name testdata -exec rm -rf {} \; rm -f ${D}${libdir}/go/src/cmd/dist/dist + rm -f ${D}${libdir}/go/src/cmd/cgo/zdefaultcc.go + rm -f ${D}${libdir}/go/src/cmd/go/internal/cfg/zdefaultcc.go + } ALLOW_EMPTY_${PN} = "1" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/help2man/help2man-native_1.47.10.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/help2man/help2man-native_1.47.10.bb deleted file mode 100644 index 5feaeea1..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/help2man/help2man-native_1.47.10.bb +++ /dev/null @@ -1,24 +0,0 @@ -SUMMARY = "Program for creating simple man pages" -SECTION = "devel" -LICENSE = "GPLv3" -LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504" -DEPENDS = "autoconf-native automake-native" - -SRC_URI = "${GNU_MIRROR}/${BPN}/${BPN}-${PV}.tar.xz" -SRC_URI[md5sum] = "0d70833650a552e0af742882ba84f2ee" -SRC_URI[sha256sum] = "f371cbfd63f879065422b58fa6b81e21870cd791ef6e11d4528608204aa4dcfb" - -inherit autotools native - -EXTRA_OECONF = "--disable-nls" - -# We don't want to reconfigure things as it would require 'perlnative' to be -# used. -do_configure() { - oe_runconf -} - -do_install_append () { - # Make sure we use /usr/bin/env perl - sed -i -e "1s:#!.*:#! /usr/bin/env perl:" ${D}${bindir}/help2man -} diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/help2man/help2man-native_1.47.11.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/help2man/help2man-native_1.47.11.bb new file mode 100644 index 00000000..a60e8518 --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/help2man/help2man-native_1.47.11.bb @@ -0,0 +1,24 @@ +SUMMARY = "Program for creating simple man pages" +SECTION = "devel" +LICENSE = "GPLv3" +LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504" +DEPENDS = "autoconf-native automake-native" + +SRC_URI = "${GNU_MIRROR}/${BPN}/${BPN}-${PV}.tar.xz" +SRC_URI[md5sum] = "dd322adcaede5bd5eaed075ff8971bc1" +SRC_URI[sha256sum] = "5985b257f86304c8791842c0c807a37541d0d6807ee973000cf8a3fe6ad47b88" + +inherit autotools native + +EXTRA_OECONF = "--disable-nls" + +# We don't want to reconfigure things as it would require 'perlnative' to be +# used. +do_configure() { + oe_runconf +} + +do_install_append () { + # Make sure we use /usr/bin/env perl + sed -i -e "1s:#!.*:#! /usr/bin/env perl:" ${D}${bindir}/help2man +} diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/i2c-tools/i2c-tools_4.1.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/i2c-tools/i2c-tools_4.1.bb index 2b4563d4..c5761170 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/i2c-tools/i2c-tools_4.1.bb +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/i2c-tools/i2c-tools_4.1.bb @@ -31,11 +31,13 @@ FILES_${PN}-misc = "${sbindir}/i2c-stub-from-dump \ RDEPENDS_${PN}-misc = "${PN} perl perl-module-posix \ perl-module-constant perl-module-file-basename \ perl-module-fcntl perl-module-strict perl-module-vars \ + perl-module-carp \ " ALTERNATIVE_PRIORITY = "100" -ALTERNATIVE_${PN} = "i2cdetect i2cdump i2cget i2cset" +ALTERNATIVE_${PN} = "i2cdetect i2cdump i2cget i2cset i2ctransfer" ALTERNATIVE_LINK_NAME[i2cdetect] = "${sbindir}/i2cdetect" ALTERNATIVE_LINK_NAME[i2cdump] = "${sbindir}/i2cdump" ALTERNATIVE_LINK_NAME[i2cget] = "${sbindir}/i2cget" ALTERNATIVE_LINK_NAME[i2cset] = "${sbindir}/i2cset" +ALTERNATIVE_LINK_NAME[i2ctransfer] = "${sbindir}/i2ctransfer" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/icecc-create-env/icecc-create-env_0.1.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/icecc-create-env/icecc-create-env_0.1.bb index 053945eb..231c1c20 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/icecc-create-env/icecc-create-env_0.1.bb +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/icecc-create-env/icecc-create-env_0.1.bb @@ -34,3 +34,5 @@ do_install() { } BBCLASSEXTEND = "native nativesdk" + +RDEPENDS_${PN}_class-nativesdk = "patchelf" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/json-c/json-c_0.13.1.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/json-c/json-c_0.13.1.bb index 9d8f2e78..522879f2 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/json-c/json-c_0.13.1.bb +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/json-c/json-c_0.13.1.bb @@ -10,25 +10,13 @@ SRC_URI = "https://s3.amazonaws.com/json-c_releases/releases/${BP}.tar.gz \ SRC_URI[md5sum] = "04969ad59cc37bddd83741a08b98f350" SRC_URI[sha256sum] = "b87e608d4d3f7bfdd36ef78d56d53c74e66ab278d318b71e6002a369d36f4873" -UPSTREAM_CHECK_REGEX = "json-c-(?P\d+(\.\d+)+).tar" -# json-c releases page is fetching the list of releases in some weird XML format -# from https://s3.amazonaws.com/json-c_releases and processes it with javascript :-/ -#UPSTREAM_CHECK_URI = "https://s3.amazonaws.com/json-c_releases/releases/index.html" -RECIPE_UPSTREAM_VERSION = "0.13.1" -RECIPE_UPSTREAM_DATE = "Mar 04, 2018" -CHECK_DATE = "May 02, 2018" +UPSTREAM_CHECK_URI = "https://github.com/${BPN}/${BPN}/releases" +UPSTREAM_CHECK_REGEX = "json-c-(?P\d+(\.\d+)+)-\d+" RPROVIDES_${PN} = "libjson" inherit autotools -EXTRA_OECONF = "--disable-werror \ - --enable-rdrand \ - " - -do_configure_prepend() { - # Clean up autoconf cruft that should not be in the tarball - rm -f ${S}/config.status -} +EXTRA_OECONF = "--disable-werror" BBCLASSEXTEND = "native nativesdk" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/libdnf/libdnf_0.28.1.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/libdnf/libdnf_0.28.1.bb index 4ff294c3..3f11e023 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/libdnf/libdnf_0.28.1.bb +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/libdnf/libdnf_0.28.1.bb @@ -13,7 +13,7 @@ SRCREV = "751f89045b80d58c0d05800f74357cf78cdf7e77" S = "${WORKDIR}/git" -DEPENDS = "glib-2.0 libsolv libcheck librepo rpm gtk-doc libmodulemd json-c swig-native" +DEPENDS = "glib-2.0 libsolv libcheck librepo rpm gtk-doc libmodulemd-v1 json-c swig-native" inherit gtk-doc gobject-introspection cmake pkgconfig distutils3-base diff --git a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-devtools/libedit/libedit/stdc-predef.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/libedit/libedit/stdc-predef.patch similarity index 96% rename from Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-devtools/libedit/libedit/stdc-predef.patch rename to Contrib-Inspur/openbmc/poky/meta/recipes-devtools/libedit/libedit/stdc-predef.patch index c95cdc9d..75ef308f 100644 --- a/Contrib-Inspur/openbmc/meta-openembedded/meta-oe/recipes-devtools/libedit/libedit/stdc-predef.patch +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/libedit/libedit/stdc-predef.patch @@ -1,6 +1,7 @@ __STDC_ISO_10646__ is defined in stdc-predef.h therefore include it to see if its there on a platform +Upstream-Status: Pending Signed-off-by: Khem Raj Index: libedit-20160903-3.1/src/chartype.h diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/libedit/libedit_20191025-3.1.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/libedit/libedit_20191025-3.1.bb new file mode 100644 index 00000000..f810013a --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/libedit/libedit_20191025-3.1.bb @@ -0,0 +1,19 @@ +SUMMARY = "BSD replacement for libreadline" +DESCRIPTION = "Command line editor library providing generic line editing, \ +history, and tokenization functions" +HOMEPAGE = "http://www.thrysoee.dk/editline/" +SECTION = "libs" +LICENSE = "BSD-3-Clause" +LIC_FILES_CHKSUM = "file://COPYING;md5=1e4228d0c5a9093b01aeaaeae6641533" + +DEPENDS = "ncurses" + +inherit autotools + +SRC_URI = "http://www.thrysoee.dk/editline/${BP}.tar.gz \ + file://stdc-predef.patch \ + " +SRC_URI[md5sum] = "2d6568467080cfd75e715d045102b544" +SRC_URI[sha256sum] = "6dff036660d478bfaa14e407fc5de26d22da1087118c897b1a3ad2e90cb7bf39" + +BBCLASSEXTEND = "native nativesdk" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/libmodulemd/libmodulemd/0001-spec_tmpl.sh-use-bin-sh-not-usr-bin-sh.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/libmodulemd/libmodulemd-v1/0001-spec_tmpl.sh-use-bin-sh-not-usr-bin-sh.patch similarity index 78% rename from Contrib-Inspur/openbmc/poky/meta/recipes-devtools/libmodulemd/libmodulemd/0001-spec_tmpl.sh-use-bin-sh-not-usr-bin-sh.patch rename to Contrib-Inspur/openbmc/poky/meta/recipes-devtools/libmodulemd/libmodulemd-v1/0001-spec_tmpl.sh-use-bin-sh-not-usr-bin-sh.patch index 2598c177..847b5f70 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/libmodulemd/libmodulemd/0001-spec_tmpl.sh-use-bin-sh-not-usr-bin-sh.patch +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/libmodulemd/libmodulemd-v1/0001-spec_tmpl.sh-use-bin-sh-not-usr-bin-sh.patch @@ -1,4 +1,4 @@ -From 74ea6a665d0f3417e75f1d3d02f27a12f128ec70 Mon Sep 17 00:00:00 2001 +From 4e67f6049b3f822fe6f5af46790a51ace581bf82 Mon Sep 17 00:00:00 2001 From: Alexander Kanavin Date: Tue, 6 Nov 2018 13:41:29 +0100 Subject: [PATCH] spec_tmpl.sh: use /bin/sh, not /usr/bin/sh @@ -11,7 +11,7 @@ Signed-off-by: Alexander Kanavin 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spec_tmpl.sh b/spec_tmpl.sh -index 14e895a..fc80fc6 100755 +index 0238087..126853c 100755 --- a/spec_tmpl.sh +++ b/spec_tmpl.sh @@ -1,4 +1,4 @@ @@ -19,4 +19,4 @@ index 14e895a..fc80fc6 100755 +#!/bin/sh version=$1 - libmodulemd_v1_version=$2 + template=$2 diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/libmodulemd/libmodulemd-v1_git.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/libmodulemd/libmodulemd-v1_git.bb new file mode 100644 index 00000000..5409051d --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/libmodulemd/libmodulemd-v1_git.bb @@ -0,0 +1,25 @@ +SUMMARY = "C Library for manipulating module metadata files" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://COPYING;md5=25a3927bff3ee4f5b21bcb0ed3fcd6bb" + +SRC_URI = "git://github.com/fedora-modularity/libmodulemd;protocol=https;branch=1.x-maint \ + file://0001-spec_tmpl.sh-use-bin-sh-not-usr-bin-sh.patch \ + " + +PV = "1.8.16" +SRCREV = "d0dcf7b373b3cf85cd39eb3bc23d31e06195a75a" +UPSTREAM_CHECK_GITTAGREGEX = "libmodulemd-(?P1.*\d)" + +S = "${WORKDIR}/git" + +inherit meson gobject-introspection + +EXTRA_OEMESON = "-Ddeveloper_build=false -Dwith_docs=false" + +DEPENDS += "glib-2.0 libyaml glib-2.0-native python3" + +BBCLASSEXTEND = "native nativesdk" + +GIR_MESON_OPTION = 'skip_introspection' +GIR_MESON_ENABLE_FLAG = 'false' +GIR_MESON_DISABLE_FLAG = 'true' diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/libmodulemd/libmodulemd/0001-v1-meson.build-explicitly-specify-the-v1-library-in-.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/libmodulemd/libmodulemd/0001-v1-meson.build-explicitly-specify-the-v1-library-in-.patch deleted file mode 100644 index 1568d25f..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/libmodulemd/libmodulemd/0001-v1-meson.build-explicitly-specify-the-v1-library-in-.patch +++ /dev/null @@ -1,28 +0,0 @@ -From b651551134cf170038b3e01812e3767969506491 Mon Sep 17 00:00:00 2001 -From: Alexander Kanavin -Date: Tue, 21 May 2019 17:59:26 +0200 -Subject: [PATCH] v1/meson.build: explicitly specify the v1 library in - pkgconfig - -Otherwise there would be '-lmodulemd' which resolves -to v2 version if both v2 and v1 are present in the sysroot. - -Upstream-Status: Pending -Signed-off-by: Alexander Kanavin ---- - modulemd/v1/meson.build | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/modulemd/v1/meson.build b/modulemd/v1/meson.build -index 4d54e69..9144ca2 100644 ---- a/modulemd/v1/meson.build -+++ b/modulemd/v1/meson.build -@@ -325,7 +325,7 @@ configure_file( - ) - - pkg.generate( -- libraries : modulemd_v1_lib, -+ libraries : '-l:libmodulemd.so.1', - subdirs : v1_header_path, - version : libmodulemd_v1_version, - name : 'modulemd', diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/libmodulemd/libmodulemd/0002-modulemd-v1-meson.build-do-not-generate-gir-or-gtkdo.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/libmodulemd/libmodulemd/0002-modulemd-v1-meson.build-do-not-generate-gir-or-gtkdo.patch deleted file mode 100644 index a3e62bf5..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/libmodulemd/libmodulemd/0002-modulemd-v1-meson.build-do-not-generate-gir-or-gtkdo.patch +++ /dev/null @@ -1,67 +0,0 @@ -From b77c9c3d07430b014b2d1bff42027f483c81f15a Mon Sep 17 00:00:00 2001 -From: Alexander Kanavin -Date: Tue, 6 Nov 2018 13:43:00 +0100 -Subject: [PATCH] modulemd/v[12]/meson.build: do not generate gtkdoc or python - bindings - -All of these really need a configuration option. - -Upstream-Status: Inappropriate [oe-core specific] -Signed-off-by: Alexander Kanavin - ---- - meson.build | 3 +-- - modulemd/v1/meson.build | 8 -------- - modulemd/v2/meson.build | 8 -------- - 3 files changed, 1 insertion(+), 18 deletions(-) - -diff --git a/meson.build b/meson.build -index 228bd34..a1e60bb 100644 ---- a/meson.build -+++ b/meson.build -@@ -52,7 +52,6 @@ gnome = import('gnome') - pkg = import('pkgconfig') - gobject = dependency('gobject-2.0') - yaml = dependency('yaml-0.1') --gtkdoc = dependency('gtk-doc') - - sh = find_program('sh') - sed = find_program('sed') -@@ -110,4 +109,4 @@ configure_file( - ) - - subdir('modulemd') --subdir('bindings/python') -+ -diff --git a/modulemd/v1/meson.build b/modulemd/v1/meson.build -index 74db89a..4d54e69 100644 ---- a/modulemd/v1/meson.build -+++ b/modulemd/v1/meson.build -@@ -341,11 +341,3 @@ configure_file( - configuration : xcdata - ) - --gnome.gtkdoc( -- 'modulemd-1.0', -- install_dir: 'modulemd-1.0', -- src_dir : './modulemd/v1', -- main_xml : 'modulemd-v1-docs.xml', -- install : true, --) -- -diff --git a/modulemd/v2/meson.build b/modulemd/v2/meson.build -index 7b94e0c..c5f72b9 100644 ---- a/modulemd/v2/meson.build -+++ b/modulemd/v2/meson.build -@@ -530,11 +530,3 @@ configure_file( - configuration : xcdata - ) - --gnome.gtkdoc( -- 'modulemd-2.0', -- install_dir: 'modulemd-2.0', -- src_dir : './modulemd/v2', -- main_xml : 'modulemd-v2-docs.xml', -- install : true, --) -- diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/libmodulemd/libmodulemd_git.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/libmodulemd/libmodulemd_git.bb deleted file mode 100644 index 7e8aea7b..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/libmodulemd/libmodulemd_git.bb +++ /dev/null @@ -1,26 +0,0 @@ -SUMMARY = "C Library for manipulating module metadata files" -LICENSE = "MIT" -LIC_FILES_CHKSUM = "file://COPYING;md5=25a3927bff3ee4f5b21bcb0ed3fcd6bb" - -SRC_URI = "git://github.com/fedora-modularity/libmodulemd;protocol=https \ - file://0001-spec_tmpl.sh-use-bin-sh-not-usr-bin-sh.patch \ - file://0002-modulemd-v1-meson.build-do-not-generate-gir-or-gtkdo.patch \ - file://0001-v1-meson.build-explicitly-specify-the-v1-library-in-.patch \ - " - -PV = "2.5.0" -SRCREV = "8d9a99ddf037df7c032119cdd3a87238a3cc9090" - -S = "${WORKDIR}/git" - -inherit meson gobject-introspection - -EXTRA_OEMESON = "-Ddeveloper_build=false -Dbuild_api_v1=true -Dbuild_api_v2=true" - -DEPENDS += "glib-2.0 libyaml glib-2.0-native" - -BBCLASSEXTEND = "native nativesdk" - -GIR_MESON_OPTION = 'skip_introspection' -GIR_MESON_ENABLE_FLAG = 'false' -GIR_MESON_DISABLE_FLAG = 'true' diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/librepo/librepo_1.10.3.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/librepo/librepo_1.10.3.bb deleted file mode 100644 index d7c83edc..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/librepo/librepo_1.10.3.bb +++ /dev/null @@ -1,21 +0,0 @@ -SUMMARY = " A library providing C and Python (libcURL like) API for downloading linux repository metadata and packages." -LICENSE = "LGPLv2.1" -LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c" - -SRC_URI = "git://github.com/rpm-software-management/librepo.git \ - file://0002-Do-not-try-to-obtain-PYTHON_INSTALL_DIR-by-running-p.patch \ - file://0004-Set-gpgme-variables-with-pkg-config-not-with-cmake-m.patch \ - " - -SRCREV = "2eb0a27031956fd98340ca2707f03abb7b780372" - -S = "${WORKDIR}/git" - -DEPENDS = "curl glib-2.0 openssl attr gpgme libxml2" - -inherit cmake distutils3-base pkgconfig - -EXTRA_OECMAKE = " -DPYTHON_INSTALL_DIR=${PYTHON_SITEPACKAGES_DIR} -DPYTHON_DESIRED=3 -DENABLE_TESTS=OFF -DENABLE_DOCS=OFF -DWITH_ZCHUNK=OFF" - -BBCLASSEXTEND = "native nativesdk" - diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/librepo/librepo_1.11.0.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/librepo/librepo_1.11.0.bb new file mode 100644 index 00000000..30c8a5c5 --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/librepo/librepo_1.11.0.bb @@ -0,0 +1,27 @@ +SUMMARY = "A library providing C and Python (libcURL like) API \ + for downloading linux repository metadata and packages." +LICENSE = "LGPLv2.1" +LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c" + +SRC_URI = "git://github.com/rpm-software-management/librepo.git \ + file://0002-Do-not-try-to-obtain-PYTHON_INSTALL_DIR-by-running-p.patch \ + file://0004-Set-gpgme-variables-with-pkg-config-not-with-cmake-m.patch \ + " + +SRCREV = "497f5eb2293662835bed6bdb0f43521788b2cebe" + +S = "${WORKDIR}/git" + +DEPENDS = "curl glib-2.0 openssl attr gpgme libxml2" + +inherit cmake distutils3-base pkgconfig + +EXTRA_OECMAKE = " \ + -DPYTHON_INSTALL_DIR=${PYTHON_SITEPACKAGES_DIR} \ + -DPYTHON_DESIRED=3 \ + -DENABLE_TESTS=OFF \ + -DENABLE_DOCS=OFF \ + -DWITH_ZCHUNK=OFF \ +" + +BBCLASSEXTEND = "native nativesdk" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/libtool/libtool/debian-no_hostname.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/libtool/libtool/debian-no_hostname.patch new file mode 100755 index 00000000..5add0cca --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/libtool/libtool/debian-no_hostname.patch @@ -0,0 +1,21 @@ +libtool: remove host specific info from header file + +https://sources.debian.org/data/main/libt/libtool/2.4.6-10/debian/patches/ + no_hostname.patch + +Upstream-Status: Inappropriate [not author] +Signed-off-by: Joe Slater + +--- +Index: libtool-2.4.6/m4/libtool.m4 +=================================================================== +--- libtool-2.4.6.orig/m4/libtool.m4 ++++ libtool-2.4.6/m4/libtool.m4 +@@ -728,7 +728,6 @@ _LT_CONFIG_SAVE_COMMANDS([ + cat <<_LT_EOF >> "$cfgfile" + #! $SHELL + # Generated automatically by $as_me ($PACKAGE) $VERSION +-# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: + # NOTE: Changes made to this file will be lost: look at ltmain.sh. + + # Provide generalized library-building support services. diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/libtool/libtool_2.4.6.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/libtool/libtool_2.4.6.bb index f5fdd00e..a5715faa 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/libtool/libtool_2.4.6.bb +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/libtool/libtool_2.4.6.bb @@ -1,6 +1,6 @@ require libtool-${PV}.inc -SRC_URI += "file://multilib.patch" +SRC_URI += "file://multilib.patch file://debian-no_hostname.patch" RDEPENDS_${PN} += "bash" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/llvm/llvm/0001-llvm-TargetLibraryInfo-Undefine-libc-functions-if-th.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/llvm/llvm/0001-llvm-TargetLibraryInfo-Undefine-libc-functions-if-th.patch deleted file mode 100644 index 6dbbced7..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/llvm/llvm/0001-llvm-TargetLibraryInfo-Undefine-libc-functions-if-th.patch +++ /dev/null @@ -1,91 +0,0 @@ -From 905cac8934fb17e20416a4df712a566e757471a3 Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Sat, 21 May 2016 00:33:20 +0000 -Subject: [PATCH 1/2] llvm: TargetLibraryInfo: Undefine libc functions if they are macros - -musl defines some functions as macros and not inline functions -if this is the case then make sure to undefine them - -Upstream-Status: Pending -Signed-off-by: Khem Raj ---- - include/llvm/Analysis/TargetLibraryInfo.def | 21 +++++++++++++++++++++ - 1 file changed, 21 insertions(+) - -diff --git a/include/llvm/Analysis/TargetLibraryInfo.def b/include/llvm/Analysis/TargetLibraryInfo.def -index 518a85ee1a0..6b4ead4efc6 100644 ---- a/include/llvm/Analysis/TargetLibraryInfo.def -+++ b/include/llvm/Analysis/TargetLibraryInfo.def -@@ -731,6 +731,9 @@ TLI_DEFINE_STRING_INTERNAL("fmodl") - TLI_DEFINE_ENUM_INTERNAL(fopen) - TLI_DEFINE_STRING_INTERNAL("fopen") - /// FILE *fopen64(const char *filename, const char *opentype) -+#ifdef fopen64 -+#undef fopen64 -+#endif - TLI_DEFINE_ENUM_INTERNAL(fopen64) - TLI_DEFINE_STRING_INTERNAL("fopen64") - /// int fork(); -@@ -778,6 +781,9 @@ TLI_DEFINE_STRING_INTERNAL("fseek") - /// int fseeko(FILE *stream, off_t offset, int whence); - TLI_DEFINE_ENUM_INTERNAL(fseeko) - TLI_DEFINE_STRING_INTERNAL("fseeko") -+#ifdef fseeko64 -+#undef fseeko64 -+#endif - /// int fseeko64(FILE *stream, off64_t offset, int whence) - TLI_DEFINE_ENUM_INTERNAL(fseeko64) - TLI_DEFINE_STRING_INTERNAL("fseeko64") -@@ -788,6 +794,9 @@ TLI_DEFINE_STRING_INTERNAL("fsetpos") - TLI_DEFINE_ENUM_INTERNAL(fstat) - TLI_DEFINE_STRING_INTERNAL("fstat") - /// int fstat64(int filedes, struct stat64 *buf) -+#ifdef fstat64 -+#undef fstat64 -+#endif - TLI_DEFINE_ENUM_INTERNAL(fstat64) - TLI_DEFINE_STRING_INTERNAL("fstat64") - /// int fstatvfs(int fildes, struct statvfs *buf); -@@ -803,6 +812,9 @@ TLI_DEFINE_STRING_INTERNAL("ftell") - TLI_DEFINE_ENUM_INTERNAL(ftello) - TLI_DEFINE_STRING_INTERNAL("ftello") - /// off64_t ftello64(FILE *stream) -+#ifdef ftello64 -+#undef ftello64 -+#endif - TLI_DEFINE_ENUM_INTERNAL(ftello64) - TLI_DEFINE_STRING_INTERNAL("ftello64") - /// int ftrylockfile(FILE *file); -@@ -929,6 +941,9 @@ TLI_DEFINE_STRING_INTERNAL("logl") - TLI_DEFINE_ENUM_INTERNAL(lstat) - TLI_DEFINE_STRING_INTERNAL("lstat") - /// int lstat64(const char *path, struct stat64 *buf); -+#ifdef lstat64 -+#undef lstat64 -+#endif - TLI_DEFINE_ENUM_INTERNAL(lstat64) - TLI_DEFINE_STRING_INTERNAL("lstat64") - /// void *malloc(size_t size); -@@ -1154,6 +1169,9 @@ TLI_DEFINE_STRING_INTERNAL("sscanf") - TLI_DEFINE_ENUM_INTERNAL(stat) - TLI_DEFINE_STRING_INTERNAL("stat") - /// int stat64(const char *path, struct stat64 *buf); -+#ifdef stat64 -+#undef stat64 -+#endif - TLI_DEFINE_ENUM_INTERNAL(stat64) - TLI_DEFINE_STRING_INTERNAL("stat64") - /// int statvfs(const char *path, struct statvfs *buf); -@@ -1283,6 +1301,9 @@ TLI_DEFINE_STRING_INTERNAL("times") - TLI_DEFINE_ENUM_INTERNAL(tmpfile) - TLI_DEFINE_STRING_INTERNAL("tmpfile") - /// FILE *tmpfile64(void) -+#ifdef tmpfile64 -+#undef tmpfile64 -+#endif - TLI_DEFINE_ENUM_INTERNAL(tmpfile64) - TLI_DEFINE_STRING_INTERNAL("tmpfile64") - /// int toascii(int c); --- -2.20.1 - diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/llvm/llvm/0002-llvm-allow-env-override-of-exe-path.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/llvm/llvm/0002-llvm-allow-env-override-of-exe-path.patch deleted file mode 100644 index 1369bcf7..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/llvm/llvm/0002-llvm-allow-env-override-of-exe-path.patch +++ /dev/null @@ -1,114 +0,0 @@ -From 0570fe02c07244a8724c1e6c0437f893c8aa8e93 Mon Sep 17 00:00:00 2001 -From: Martin Kelly -Date: Fri, 19 May 2017 00:22:57 -0700 -Subject: [PATCH 2/2] llvm: allow env override of exe path - -When using a native llvm-config from inside a sysroot, we need llvm-config to -return the libraries, include directories, etc. from inside the sysroot rather -than from the native sysroot. Thus provide an env override for calling -llvm-config from a target sysroot. - -To let it work in multilib environment, we need to provide a knob to supply -multilib dirname as well - -Upstream-Status: Inappropriate [OE-Specific] - -Signed-off-by: Martin Kelly -Signed-off-by: Khem Raj ---- - tools/llvm-config/llvm-config.cpp | 35 ++++++++++++++++++++++--------- - 1 file changed, 25 insertions(+), 10 deletions(-) - -diff --git a/tools/llvm-config/llvm-config.cpp b/tools/llvm-config/llvm-config.cpp -index bec89fef98c..91b4d6e4c43 100644 ---- a/tools/llvm-config/llvm-config.cpp -+++ b/tools/llvm-config/llvm-config.cpp -@@ -226,6 +226,13 @@ Typical components:\n\ - - /// Compute the path to the main executable. - std::string GetExecutablePath(const char *Argv0) { -+ // Hack for Yocto: we need to override the root path when we are using -+ // llvm-config from within a target sysroot. -+ const char *Sysroot = std::getenv("YOCTO_ALTERNATE_EXE_PATH"); -+ if (Sysroot != nullptr) { -+ return Sysroot; -+ } -+ - // This just needs to be some symbol in the binary; C++ doesn't - // allow taking the address of ::main however. - void *P = (void *)(intptr_t)GetExecutablePath; -@@ -284,7 +291,7 @@ int main(int argc, char **argv) { - // bin dir). - sys::fs::make_absolute(CurrentPath); - CurrentExecPrefix = -- sys::path::parent_path(sys::path::parent_path(CurrentPath)).str(); -+ sys::path::parent_path(sys::path::parent_path(sys::path::parent_path(CurrentPath))).str(); - - // Check to see if we are inside a development tree by comparing to possible - // locations (prefix style or CMake style). -@@ -293,7 +300,7 @@ int main(int argc, char **argv) { - DevelopmentTreeLayout = CMakeStyle; - ActiveObjRoot = LLVM_OBJ_ROOT; - } else if (sys::fs::equivalent(CurrentExecPrefix, -- Twine(LLVM_OBJ_ROOT) + "/bin")) { -+ Twine(LLVM_OBJ_ROOT) + "/bin/llvm8.0.0")) { - IsInDevelopmentTree = true; - DevelopmentTreeLayout = CMakeBuildModeStyle; - ActiveObjRoot = LLVM_OBJ_ROOT; -@@ -307,37 +314,45 @@ int main(int argc, char **argv) { - std::string ActivePrefix, ActiveBinDir, ActiveIncludeDir, ActiveLibDir, - ActiveCMakeDir; - std::string ActiveIncludeOption; -+ // Hack for Yocto: we need to override the multilib path when we are using -+ // llvm-config from within a target sysroot. -+ std::string Multilibdir = std::getenv("YOCTO_ALTERNATE_MULTILIB_NAME"); -+ if (Multilibdir.empty()) { -+ Multilibdir = "/lib/llvm8.0.0" LLVM_LIBDIR_SUFFIX; -+ } -+ - if (IsInDevelopmentTree) { -- ActiveIncludeDir = std::string(LLVM_SRC_ROOT) + "/include"; -+ ActiveIncludeDir = std::string(LLVM_SRC_ROOT) + "/include/llvm8.0.0"; - ActivePrefix = CurrentExecPrefix; - - // CMake organizes the products differently than a normal prefix style - // layout. -+ - switch (DevelopmentTreeLayout) { - case CMakeStyle: -- ActiveBinDir = ActiveObjRoot + "/bin"; -- ActiveLibDir = ActiveObjRoot + "/lib" + LLVM_LIBDIR_SUFFIX; -+ ActiveBinDir = ActiveObjRoot + "/bin/llvm8.0.0"; -+ ActiveLibDir = ActiveObjRoot + "/lib/llvm8.0.0" + LLVM_LIBDIR_SUFFIX; - ActiveCMakeDir = ActiveLibDir + "/cmake/llvm"; - break; - case CMakeBuildModeStyle: - ActivePrefix = ActiveObjRoot; -- ActiveBinDir = ActiveObjRoot + "/bin/" + build_mode; -+ ActiveBinDir = ActiveObjRoot + "/bin/llvm8.0.0/" + build_mode; - ActiveLibDir = -- ActiveObjRoot + "/lib" + LLVM_LIBDIR_SUFFIX + "/" + build_mode; -+ ActiveObjRoot + "/lib/llvm8.0.0" + LLVM_LIBDIR_SUFFIX + "/" + build_mode; - ActiveCMakeDir = ActiveLibDir + "/cmake/llvm"; - break; - } - - // We need to include files from both the source and object trees. - ActiveIncludeOption = -- ("-I" + ActiveIncludeDir + " " + "-I" + ActiveObjRoot + "/include"); -+ ("-I" + ActiveIncludeDir + " " + "-I" + ActiveObjRoot + "/include/llvm8.0.0"); - } else { - ActivePrefix = CurrentExecPrefix; -- ActiveIncludeDir = ActivePrefix + "/include"; -+ ActiveIncludeDir = ActivePrefix + "/include/llvm8.0.0"; - SmallString<256> path(StringRef(LLVM_TOOLS_INSTALL_DIR)); - sys::fs::make_absolute(ActivePrefix, path); - ActiveBinDir = path.str(); -- ActiveLibDir = ActivePrefix + "/lib" + LLVM_LIBDIR_SUFFIX; -+ ActiveLibDir = ActivePrefix + Multilibdir; - ActiveCMakeDir = ActiveLibDir + "/cmake/llvm"; - ActiveIncludeOption = "-I" + ActiveIncludeDir; - } --- -2.20.1 - diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/llvm/llvm/0006-llvm-TargetLibraryInfo-Undefine-libc-functions-if-th.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/llvm/llvm/0006-llvm-TargetLibraryInfo-Undefine-libc-functions-if-th.patch new file mode 100644 index 00000000..d02b7ba6 --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/llvm/llvm/0006-llvm-TargetLibraryInfo-Undefine-libc-functions-if-th.patch @@ -0,0 +1,90 @@ +Upstream-Status: Pending +Signed-off-by: Khem Raj + +From dbeecdb307be8b783b42cbc89dcb9c5e7f528989 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Sat, 21 May 2016 00:33:20 +0000 +Subject: [PATCH] llvm: TargetLibraryInfo: Undefine libc functions if they are macros + +musl defines some functions as macros and not inline functions +if this is the case then make sure to undefine them + +Signed-off-by: Khem Raj +--- + .../llvm/Analysis/TargetLibraryInfo.def | 21 +++++++++++++++++++ + 1 file changed, 21 insertions(+) + +diff --git a/llvm/include/llvm/Analysis/TargetLibraryInfo.def b/llvm/include/llvm/Analysis/TargetLibraryInfo.def +index afed404f04c..876888656f2 100644 +--- a/llvm/include/llvm/Analysis/TargetLibraryInfo.def ++++ b/llvm/include/llvm/Analysis/TargetLibraryInfo.def +@@ -782,6 +782,9 @@ TLI_DEFINE_STRING_INTERNAL("fmodl") + TLI_DEFINE_ENUM_INTERNAL(fopen) + TLI_DEFINE_STRING_INTERNAL("fopen") + /// FILE *fopen64(const char *filename, const char *opentype) ++#ifdef fopen64 ++#undef fopen64 ++#endif + TLI_DEFINE_ENUM_INTERNAL(fopen64) + TLI_DEFINE_STRING_INTERNAL("fopen64") + /// int fork(); +@@ -829,6 +832,9 @@ TLI_DEFINE_STRING_INTERNAL("fseek") + /// int fseeko(FILE *stream, off_t offset, int whence); + TLI_DEFINE_ENUM_INTERNAL(fseeko) + TLI_DEFINE_STRING_INTERNAL("fseeko") ++#ifdef fseeko64 ++#undef fseeko64 ++#endif + /// int fseeko64(FILE *stream, off64_t offset, int whence) + TLI_DEFINE_ENUM_INTERNAL(fseeko64) + TLI_DEFINE_STRING_INTERNAL("fseeko64") +@@ -839,6 +845,9 @@ TLI_DEFINE_STRING_INTERNAL("fsetpos") + TLI_DEFINE_ENUM_INTERNAL(fstat) + TLI_DEFINE_STRING_INTERNAL("fstat") + /// int fstat64(int filedes, struct stat64 *buf) ++#ifdef fstat64 ++#undef fstat64 ++#endif + TLI_DEFINE_ENUM_INTERNAL(fstat64) + TLI_DEFINE_STRING_INTERNAL("fstat64") + /// int fstatvfs(int fildes, struct statvfs *buf); +@@ -854,6 +863,9 @@ TLI_DEFINE_STRING_INTERNAL("ftell") + TLI_DEFINE_ENUM_INTERNAL(ftello) + TLI_DEFINE_STRING_INTERNAL("ftello") + /// off64_t ftello64(FILE *stream) ++#ifdef ftello64 ++#undef ftello64 ++#endif + TLI_DEFINE_ENUM_INTERNAL(ftello64) + TLI_DEFINE_STRING_INTERNAL("ftello64") + /// int ftrylockfile(FILE *file); +@@ -980,6 +992,9 @@ TLI_DEFINE_STRING_INTERNAL("logl") + TLI_DEFINE_ENUM_INTERNAL(lstat) + TLI_DEFINE_STRING_INTERNAL("lstat") + /// int lstat64(const char *path, struct stat64 *buf); ++#ifdef lstat64 ++#undef lstat64 ++#endif + TLI_DEFINE_ENUM_INTERNAL(lstat64) + TLI_DEFINE_STRING_INTERNAL("lstat64") + /// void *malloc(size_t size); +@@ -1205,6 +1220,9 @@ TLI_DEFINE_STRING_INTERNAL("sscanf") + TLI_DEFINE_ENUM_INTERNAL(stat) + TLI_DEFINE_STRING_INTERNAL("stat") + /// int stat64(const char *path, struct stat64 *buf); ++#ifdef stat64 ++#undef stat64 ++#endif + TLI_DEFINE_ENUM_INTERNAL(stat64) + TLI_DEFINE_STRING_INTERNAL("stat64") + /// int statvfs(const char *path, struct statvfs *buf); +@@ -1340,6 +1358,9 @@ TLI_DEFINE_STRING_INTERNAL("times") + TLI_DEFINE_ENUM_INTERNAL(tmpfile) + TLI_DEFINE_STRING_INTERNAL("tmpfile") + /// FILE *tmpfile64(void) ++#ifdef tmpfile64 ++#undef tmpfile64 ++#endif + TLI_DEFINE_ENUM_INTERNAL(tmpfile64) + TLI_DEFINE_STRING_INTERNAL("tmpfile64") + /// int toascii(int c); diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/llvm/llvm/0007-llvm-allow-env-override-of-exe-path.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/llvm/llvm/0007-llvm-allow-env-override-of-exe-path.patch new file mode 100644 index 00000000..b01b8647 --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/llvm/llvm/0007-llvm-allow-env-override-of-exe-path.patch @@ -0,0 +1,37 @@ +Upstream-Status: Pending +Signed-off-by: Khem Raj + +From 61b00e1e051e367f5483d7b5253b6c85a9e8a90f Mon Sep 17 00:00:00 2001 +From: Martin Kelly +Date: Fri, 19 May 2017 00:22:57 -0700 +Subject: [PATCH] llvm: allow env override of exe path + +When using a native llvm-config from inside a sysroot, we need llvm-config to +return the libraries, include directories, etc. from inside the sysroot rather +than from the native sysroot. Thus provide an env override for calling +llvm-config from a target sysroot. + +Signed-off-by: Martin Kelly +Signed-off-by: Khem Raj +--- + llvm/tools/llvm-config/llvm-config.cpp | 7 +++++++ + 1 file changed, 7 insertions(+) + +diff --git a/llvm/tools/llvm-config/llvm-config.cpp b/llvm/tools/llvm-config/llvm-config.cpp +index 7ef7c46a262..a4f7ed82c7b 100644 +--- a/llvm/tools/llvm-config/llvm-config.cpp ++++ b/llvm/tools/llvm-config/llvm-config.cpp +@@ -225,6 +225,13 @@ Typical components:\n\ + + /// Compute the path to the main executable. + std::string GetExecutablePath(const char *Argv0) { ++ // Hack for Yocto: we need to override the root path when we are using ++ // llvm-config from within a target sysroot. ++ const char *Sysroot = std::getenv("YOCTO_ALTERNATE_EXE_PATH"); ++ if (Sysroot != nullptr) { ++ return Sysroot; ++ } ++ + // This just needs to be some symbol in the binary; C++ doesn't + // allow taking the address of ::main however. + void *P = (void *)(intptr_t)GetExecutablePath; diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/llvm/llvm_git.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/llvm/llvm_git.bb index 0067635c..5f9277fc 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/llvm/llvm_git.bb +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/llvm/llvm_git.bb @@ -3,12 +3,12 @@ DESCRIPTION = "The LLVM Compiler Infrastructure" HOMEPAGE = "http://llvm.org" -LICENSE = "NCSA" +LICENSE = "Apache-2.0-with-LLVM-exception" SECTION = "devel" -LIC_FILES_CHKSUM = "file://LICENSE.TXT;md5=c6b766a4e85dd28301eeed54a6684648" +LIC_FILES_CHKSUM = "file://LICENSE.TXT;md5=8a15a0759ef07f2682d2ba4b893c9afe" -DEPENDS = "libffi libxml2 zlib ninja-native llvm-native" +DEPENDS = "libffi libxml2 zlib libedit ninja-native llvm-native" RDEPENDS_${PN}_append_class-target = " ncurses-terminfo" @@ -16,20 +16,20 @@ inherit cmake pkgconfig PROVIDES += "llvm${PV}" +MAJOR_VERSION = "9" +MINOR_VERSION = "0" +PATCH_VERSION = "0" + +PV = "${MAJOR_VERSION}.${MINOR_VERSION}.${PATCH_VERSION}" + LLVM_RELEASE = "${PV}" LLVM_DIR = "llvm${LLVM_RELEASE}" -SRCREV = "d2298e74235598f15594fe2c99bbac870a507c59" - BRANCH = "release/${MAJOR_VERSION}.x" -MAJOR_VERSION = "8" -MINOR_VERSION = "0" -PATCH_VERSION = "0" -SOLIBVER = "1" -PV = "${MAJOR_VERSION}.${MINOR_VERSION}.${PATCH_VERSION}" +SRCREV = "0399d5a9682b3cef71c653373e38890c63c4c365" SRC_URI = "git://github.com/llvm/llvm-project.git;branch=${BRANCH} \ - file://0001-llvm-TargetLibraryInfo-Undefine-libc-functions-if-th.patch \ - file://0002-llvm-allow-env-override-of-exe-path.patch \ + file://0006-llvm-TargetLibraryInfo-Undefine-libc-functions-if-th.patch;striplevel=2 \ + file://0007-llvm-allow-env-override-of-exe-path.patch;striplevel=2 \ " S = "${WORKDIR}/git/llvm" @@ -45,6 +45,7 @@ def get_llvm_arch(bb, d, arch_var): elif re.match(r'aarch64$', a): return 'AArch64' elif re.match(r'aarch64_be$', a): return 'AArch64' elif re.match(r'mips(isa|)(32|64|)(r6|)(el|)$', a): return 'Mips' + elif re.match(r'riscv(32|64)(eb|)$', a): return 'RISCV' elif re.match(r'p(pc|owerpc)(|64)', a): return 'PowerPC' else: raise bb.parse.SkipRecipe("Cannot map '%s' to a supported LLVM architecture" % a) @@ -71,7 +72,7 @@ EXTRA_OECMAKE += "-DLLVM_ENABLE_ASSERTIONS=OFF \ -DLLVM_OPTIMIZED_TABLEGEN=ON \ -DLLVM_TARGETS_TO_BUILD='${LLVM_TARGETS}' \ -DLLVM_TEMPORARILY_ALLOW_OLD_TOOLCHAIN=ON \ - -DPYTHON_EXECUTABLE=${HOSTTOOLS_DIR}/python2 \ + -DPYTHON_EXECUTABLE=${HOSTTOOLS_DIR}/python3 \ -G Ninja" EXTRA_OECMAKE_append_class-target = "\ @@ -86,8 +87,6 @@ EXTRA_OECMAKE_append_class-nativesdk = "\ -DLLVM_CONFIG_PATH=${STAGING_BINDIR_NATIVE}/llvm-config${PV} \ " -CXXFLAGS_append_class-target_powerpc = " -mlongcall" - do_configure_prepend() { # Fix paths in llvm-config sed -i "s|sys::path::parent_path(CurrentPath))\.str()|sys::path::parent_path(sys::path::parent_path(CurrentPath))).str()|g" ${S}/tools/llvm-config/llvm-config.cpp @@ -158,7 +157,7 @@ FILES_${PN}-liblto += "\ " FILES_${PN}-liboptremarks += "\ - ${libdir}/${LLVM_DIR}/libOptRemarks.so.* \ + ${libdir}/${LLVM_DIR}/libRemarks.so.* \ " FILES_${PN}-llvmhello = "\ @@ -167,7 +166,7 @@ FILES_${PN}-llvmhello = "\ FILES_${PN}-dev += " \ ${libdir}/${LLVM_DIR}/llvm-config \ - ${libdir}/${LLVM_DIR}/libOptRemarks.so \ + ${libdir}/${LLVM_DIR}/libRemarks.so \ ${libdir}/${LLVM_DIR}/libLLVM-${MAJOR_VERSION}.${MINOR_VERSION}.${PATCH_VERSION}.so \ " diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/makedevs/makedevs/makedevs.c b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/makedevs/makedevs/makedevs.c index cba76814..32b98729 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/makedevs/makedevs/makedevs.c +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/makedevs/makedevs/makedevs.c @@ -230,7 +230,7 @@ static void add_new_directory(char *name, char *path, unsigned long uid, unsigned long gid, unsigned long mode) { if (trace) - fprintf(stderr, "Directory: %s %s UID: %ld GID %ld MODE: %04lo", path, name, uid, gid, mode); + fprintf(stderr, "Directory: %s %s UID: %lu GID %lu MODE: %04lo", path, name, uid, gid, mode); if (mkdir(path, mode) < 0) { if (EEXIST == errno) { @@ -251,7 +251,7 @@ static void add_new_device(char *name, char *path, unsigned long uid, struct stat sb; if (trace) { - fprintf(stderr, "Device: %s %s UID: %ld GID: %ld MODE: %04lo MAJOR: %d MINOR: %d", + fprintf(stderr, "Device: %s %s UID: %lu GID: %lu MODE: %04lo MAJOR: %d MINOR: %d", path, name, uid, gid, mode, (short)(rdev >> 8), (short)(rdev & 0xff)); } @@ -292,7 +292,7 @@ static void add_new_file(char *name, char *path, unsigned long uid, unsigned long gid, unsigned long mode) { if (trace) { - fprintf(stderr, "File: %s %s UID: %ld GID: %ld MODE: %04lo\n", + fprintf(stderr, "File: %s %s UID: %lu GID: %lu MODE: %04lo\n", path, name, gid, uid, mode); } @@ -311,7 +311,7 @@ static void add_new_fifo(char *name, char *path, unsigned long uid, unsigned long gid, unsigned long mode) { if (trace) { - printf("Fifo: %s %s UID: %ld GID: %ld MODE: %04lo\n", + printf("Fifo: %s %s UID: %lu GID: %lu MODE: %04lo\n", path, name, gid, uid, mode); } @@ -360,7 +360,7 @@ static int interpret_table_entry(char *line) unsigned long mode = 0755, uid = 0, gid = 0, major = 0, minor = 0; unsigned long start = 0, increment = 1, count = 0; - if (0 > sscanf(line, "%4095s %c %lo %40s %40s %lu %lu %lu %lu %lu", path, + if (0 > sscanf(line, "%4095s %c %lo %39s %39s %lu %lu %lu %lu %lu", path, &type, &mode, usr_buf, grp_buf, &major, &minor, &start, &increment, &count)) { diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/meson/meson.inc b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/meson/meson.inc index 6a723683..84bcc840 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/meson/meson.inc +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/meson/meson.inc @@ -1,5 +1,8 @@ HOMEPAGE = "http://mesonbuild.com" SUMMARY = "A high performance build system" +DESCRIPTION = "Meson is a build system designed to increase programmer \ +productivity. It does this by providing a fast, simple and easy to use \ +interface for modern software development tools and practices." LICENSE = "Apache-2.0" LIC_FILES_CHKSUM = "file://COPYING;md5=3b83ef96387f14655fc854ddc3c6bd57" @@ -11,15 +14,12 @@ SRC_URI = "https://github.com/mesonbuild/meson/releases/download/${PV}/meson-${P file://0001-python-module-do-not-manipulate-the-environment-when.patch \ file://disable-rpath-handling.patch \ file://cross-prop-default.patch \ - file://load-configs-generalise-search-path.patch \ - file://0007-mesonbuild-allow-multiple-cross-file-options.patch \ - file://0001-environment.py-detect-windows-also-if-the-system-str.patch \ - file://0001-mesonbuild-environment.py-do-not-determine-whether-a.patch \ file://0001-mesonbuild-environment.py-check-environment-for-vari.patch \ file://0001-modules-python.py-do-not-substitute-python-s-install.patch \ + file://dbc9e971bd320f3df15c1ee74f54858e6792b183.patch \ " -SRC_URI[sha256sum] = "f68f56d60c80a77df8fc08fa1016bc5831605d4717b622c96212573271e14ecc" -SRC_URI[md5sum] = "24a6527796115828d2ebc75880e18d62" +SRC_URI[sha256sum] = "d60f75f0dedcc4fd249dbc7519d6f3ce6df490033d276ef1cf27453ef4938d32" +SRC_URI[md5sum] = "7ea7772414dda8ae11072244bf7ba991" SRC_URI_append_class-native = " \ file://0001-Make-CPU-family-warnings-fatal.patch \ @@ -30,6 +30,6 @@ UPSTREAM_CHECK_URI = "https://github.com/mesonbuild/meson/releases" inherit setuptools3 -RDEPENDS_${PN} = "ninja python3-core python3-modules" +RDEPENDS_${PN} = "ninja python3-modules python3-pkg-resources" FILES_${PN} += "${datadir}/polkit-1" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/meson/meson/0001-Make-CPU-family-warnings-fatal.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/meson/meson/0001-Make-CPU-family-warnings-fatal.patch index adde1e27..fc55dcac 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/meson/meson/0001-Make-CPU-family-warnings-fatal.patch +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/meson/meson/0001-Make-CPU-family-warnings-fatal.patch @@ -1,4 +1,4 @@ -From 4b4b3d4932d928f05dbd74d730a3c8a5ac371e1d Mon Sep 17 00:00:00 2001 +From c07d29b715209cd5d75b142a00a540d45b00c36d Mon Sep 17 00:00:00 2001 From: Ross Burton Date: Tue, 3 Jul 2018 13:59:09 +0100 Subject: [PATCH] Make CPU family warnings fatal @@ -12,10 +12,10 @@ Signed-off-by: Ross Burton 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/mesonbuild/envconfig.py b/mesonbuild/envconfig.py -index 5309ef4..3f0a399 100644 +index a59cd89..17de654 100644 --- a/mesonbuild/envconfig.py +++ b/mesonbuild/envconfig.py -@@ -178,7 +178,7 @@ class MachineInfo: +@@ -186,7 +186,7 @@ class MachineInfo: cpu_family = literal['cpu_family'] if cpu_family not in known_cpu_families: @@ -25,10 +25,10 @@ index 5309ef4..3f0a399 100644 endian = literal['endian'] if endian not in ('little', 'big'): diff --git a/mesonbuild/environment.py b/mesonbuild/environment.py -index 3031a82..ecd18d0 100644 +index 3704921..f1988f2 100644 --- a/mesonbuild/environment.py +++ b/mesonbuild/environment.py -@@ -242,9 +242,7 @@ def detect_cpu_family(compilers): +@@ -251,9 +251,7 @@ def detect_cpu_family(compilers: CompilersDict) -> str: trial = 'parisc' if trial not in known_cpu_families: diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/meson/meson/0001-environment.py-detect-windows-also-if-the-system-str.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/meson/meson/0001-environment.py-detect-windows-also-if-the-system-str.patch deleted file mode 100644 index f6043190..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/meson/meson/0001-environment.py-detect-windows-also-if-the-system-str.patch +++ /dev/null @@ -1,25 +0,0 @@ -From 63b78b7990c5d60f7bc674a26f655caa0bec3c49 Mon Sep 17 00:00:00 2001 -From: Alexander Kanavin -Date: Mon, 25 Mar 2019 17:17:06 +0100 -Subject: [PATCH] environment.py: detect windows also if the system string - contains 'mingw' - -Upstream-Status: Pending -Signed-off-by: Alexander Kanavin ---- - mesonbuild/envconfig.py | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/mesonbuild/envconfig.py b/mesonbuild/envconfig.py -index f2510c1..5309ef4 100644 ---- a/mesonbuild/envconfig.py -+++ b/mesonbuild/envconfig.py -@@ -194,7 +194,7 @@ class MachineInfo: - """ - Machine is windows? - """ -- return self.system == 'windows' -+ return self.system == 'windows' or 'mingw' in self.system - - def is_cygwin(self): - """ diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/meson/meson/0001-gtkdoc-fix-issues-that-arise-when-cross-compiling.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/meson/meson/0001-gtkdoc-fix-issues-that-arise-when-cross-compiling.patch index 7c3238bf..471f1500 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/meson/meson/0001-gtkdoc-fix-issues-that-arise-when-cross-compiling.patch +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/meson/meson/0001-gtkdoc-fix-issues-that-arise-when-cross-compiling.patch @@ -1,4 +1,4 @@ -From 1afbf5ccff56e582229c8f673f50aedf2b24117e Mon Sep 17 00:00:00 2001 +From d3ef01a4208a801acad380a4aaceb6a21f8fa603 Mon Sep 17 00:00:00 2001 From: Alexander Kanavin Date: Fri, 4 Aug 2017 16:16:41 +0300 Subject: [PATCH] gtkdoc: fix issues that arise when cross-compiling @@ -20,11 +20,11 @@ Signed-off-by: Alexander Kanavin 1 file changed, 4 insertions(+) diff --git a/mesonbuild/modules/gnome.py b/mesonbuild/modules/gnome.py -index bf49770..7c5a363 100644 +index bcf77b9..6a4b472 100644 --- a/mesonbuild/modules/gnome.py +++ b/mesonbuild/modules/gnome.py -@@ -972,6 +972,10 @@ This will become a hard error in the future.''') - '--mode=' + mode] +@@ -974,6 +974,10 @@ This will become a hard error in the future.''') + args.append('--{}={}'.format(program_name, path)) if namespace: args.append('--namespace=' + namespace) + gtkdoc_exe_wrapper = state.environment.properties.host.get('gtkdoc_exe_wrapper', None) diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/meson/meson/0001-mesonbuild-environment.py-check-environment-for-vari.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/meson/meson/0001-mesonbuild-environment.py-check-environment-for-vari.patch index fadb2734..f4456235 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/meson/meson/0001-mesonbuild-environment.py-check-environment-for-vari.patch +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/meson/meson/0001-mesonbuild-environment.py-check-environment-for-vari.patch @@ -1,4 +1,4 @@ -From 63e79329b5dd00882f0cea56a6d907a831b94171 Mon Sep 17 00:00:00 2001 +From a72dc2b1cddcf180ce782860896deae0b12d5000 Mon Sep 17 00:00:00 2001 From: Alexander Kanavin Date: Mon, 25 Mar 2019 18:52:48 +0100 Subject: [PATCH] mesonbuild/environment.py: check environment for various @@ -6,23 +6,21 @@ Subject: [PATCH] mesonbuild/environment.py: check environment for various Upstream-Status: Inappropriate [oe-core specific] Signed-off-by: Alexander Kanavin + --- mesonbuild/environment.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mesonbuild/environment.py b/mesonbuild/environment.py -index 6e5d689..bbfd87d 100644 +index 9a029f4..0cfdf9c 100644 --- a/mesonbuild/environment.py +++ b/mesonbuild/environment.py -@@ -398,7 +398,7 @@ class Environment: +@@ -448,7 +448,7 @@ class Environment: config = MesonConfigFile.from_config_parser( - coredata.load_configs(self.coredata.cross_files, 'cross')) - self.properties.host = Properties(config.get('properties', {}), False) -- self.binaries.host = BinaryTable(config.get('binaries', {}), False) -+ self.binaries.host = BinaryTable(config.get('binaries', {}), True) + coredata.load_configs(self.coredata.cross_files)) + properties.host = Properties(config.get('properties', {}), False) +- binaries.host = BinaryTable(config.get('binaries', {}), False) ++ binaries.host = BinaryTable(config.get('binaries', {}), True) if 'host_machine' in config: - self.machines.host = MachineInfo.from_literal(config['host_machine']) + machines.host = MachineInfo.from_literal(config['host_machine']) if 'target_machine' in config: --- -2.17.1 - diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/meson/meson/0001-mesonbuild-environment.py-do-not-determine-whether-a.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/meson/meson/0001-mesonbuild-environment.py-do-not-determine-whether-a.patch deleted file mode 100644 index 83347145..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/meson/meson/0001-mesonbuild-environment.py-do-not-determine-whether-a.patch +++ /dev/null @@ -1,28 +0,0 @@ -From d9da5e7a16a9397e22a8900fac4b60b40d7f00de Mon Sep 17 00:00:00 2001 -From: Alexander Kanavin -Date: Mon, 25 Mar 2019 18:18:33 +0100 -Subject: [PATCH] mesonbuild/environment.py: do not determine whether a build - is cross by comparing architectures - -This can, and does, go wrong when our host architecture is same as the target one(e.g. x86_64). - -Upstream-Status: Pending -Signed-off-by: Alexander Kanavin - ---- - mesonbuild/environment.py | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/mesonbuild/environment.py b/mesonbuild/environment.py -index d4f0630..c584fa4 100644 ---- a/mesonbuild/environment.py -+++ b/mesonbuild/environment.py -@@ -483,7 +483,7 @@ class Environment: - self.first_invocation = True - - def is_cross_build(self): -- return self.coredata.cross_file is not None -+ return self.need_exe_wrapper() - - def dump_coredata(self): - return coredata.save(self.coredata, self.get_build_dir()) diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/meson/meson/0002-Support-building-allarch-recipes-again.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/meson/meson/0002-Support-building-allarch-recipes-again.patch index e47e5553..b8837d77 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/meson/meson/0002-Support-building-allarch-recipes-again.patch +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/meson/meson/0002-Support-building-allarch-recipes-again.patch @@ -1,4 +1,4 @@ -From 2164655328ec4e47335fc9033813274365491ad8 Mon Sep 17 00:00:00 2001 +From 263fc0e26e1fd92e25fa3ef93f4a549dcebc5887 Mon Sep 17 00:00:00 2001 From: Peter Kjellerstedt Date: Thu, 26 Jul 2018 16:32:49 +0200 Subject: [PATCH] Support building allarch recipes again @@ -13,10 +13,10 @@ Signed-off-by: Peter Kjellerstedt 1 file changed, 1 insertion(+) diff --git a/mesonbuild/envconfig.py b/mesonbuild/envconfig.py -index 3f0a399..4509e09 100644 +index 17de654..2d2deef 100644 --- a/mesonbuild/envconfig.py +++ b/mesonbuild/envconfig.py -@@ -34,6 +34,7 @@ from . import mlog +@@ -36,6 +36,7 @@ _T = typing.TypeVar('_T') known_cpu_families = ( diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/meson/meson/0003-native_bindir.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/meson/meson/0003-native_bindir.patch index 2b22531d..76cc4931 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/meson/meson/0003-native_bindir.patch +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/meson/meson/0003-native_bindir.patch @@ -1,4 +1,4 @@ -From e762d85c823adfefc27ba6128c7b997aa50166ce Mon Sep 17 00:00:00 2001 +From 4a1d676522d6b56cbe9a45c3b040afaa27d37f78 Mon Sep 17 00:00:00 2001 From: Ricardo Ribalda Delgado Date: Wed, 15 Nov 2017 15:05:01 +0100 Subject: [PATCH] native_bindir @@ -22,19 +22,19 @@ Signed-off-by: Ricardo Ribalda Delgado 2 files changed, 14 insertions(+), 11 deletions(-) diff --git a/mesonbuild/dependencies/base.py b/mesonbuild/dependencies/base.py -index 6d3678f..90fdb80 100644 +index 3c55a56..eb52fd1 100644 --- a/mesonbuild/dependencies/base.py +++ b/mesonbuild/dependencies/base.py -@@ -146,7 +146,7 @@ class Dependency: - def need_threads(self): - return False +@@ -185,7 +185,7 @@ class Dependency: + def get_exe_args(self, compiler): + return [] - def get_pkgconfig_variable(self, variable_name, kwargs): + def get_pkgconfig_variable(self, variable_name, kwargs, use_native=False): raise DependencyException('{!r} is not a pkgconfig dependency'.format(self.name)) def get_configtool_variable(self, variable_name): -@@ -183,7 +183,7 @@ class InternalDependency(Dependency): +@@ -248,7 +248,7 @@ class InternalDependency(Dependency): self.sources = sources self.ext_deps = ext_deps @@ -43,7 +43,7 @@ index 6d3678f..90fdb80 100644 raise DependencyException('Method "get_pkgconfig_variable()" is ' 'invalid for an internal dependency') -@@ -523,15 +523,18 @@ class PkgConfigDependency(ExternalDependency): +@@ -670,15 +670,18 @@ class PkgConfigDependency(ExternalDependency): return s.format(self.__class__.__name__, self.name, self.is_found, self.version_reqs) @@ -62,10 +62,10 @@ index 6d3678f..90fdb80 100644 - def _call_pkgbin(self, args, env=None): + def _call_pkgbin(self, args, env=None, use_native=False): + # Always copy the environment since we're going to modify it + # with pkg-config variables if env is None: - fenv = env - env = os.environ -@@ -540,7 +543,7 @@ class PkgConfigDependency(ExternalDependency): +@@ -698,7 +701,7 @@ class PkgConfigDependency(ExternalDependency): targs = tuple(args) cache = PkgConfigDependency.pkgbin_cache if (self.pkgbin, targs, fenv) not in cache: @@ -74,16 +74,16 @@ index 6d3678f..90fdb80 100644 return cache[(self.pkgbin, targs, fenv)] def _convert_mingw_paths(self, args): -@@ -718,7 +721,7 @@ class PkgConfigDependency(ExternalDependency): - (self.name, out_raw)) - self.link_args, self.raw_link_args = self._search_libs(out, out_raw) +@@ -926,7 +929,7 @@ class PkgConfigDependency(ExternalDependency): + mlog.warning('Could not determine complete list of dependencies for %s' % self.name) + self.link_args, self.raw_link_args = self._search_libs(out, out_raw, out_all) - def get_pkgconfig_variable(self, variable_name, kwargs): + def get_pkgconfig_variable(self, variable_name, kwargs, use_native=False): options = ['--variable=' + variable_name, self.name] if 'define_variable' in kwargs: -@@ -731,7 +734,7 @@ class PkgConfigDependency(ExternalDependency): +@@ -939,7 +942,7 @@ class PkgConfigDependency(ExternalDependency): options = ['--define-variable=' + '='.join(definition)] + options @@ -93,10 +93,10 @@ index 6d3678f..90fdb80 100644 if ret != 0: if self.required: diff --git a/mesonbuild/dependencies/ui.py b/mesonbuild/dependencies/ui.py -index 197d22c..c683d21 100644 +index 6d784e6..73a9e13 100644 --- a/mesonbuild/dependencies/ui.py +++ b/mesonbuild/dependencies/ui.py -@@ -285,7 +285,7 @@ class QtBaseDependency(ExternalDependency): +@@ -330,7 +330,7 @@ class QtBaseDependency(ExternalDependency): self.bindir = self.get_pkgconfig_host_bins(core) if not self.bindir: # If exec_prefix is not defined, the pkg-config file is broken @@ -105,7 +105,7 @@ index 197d22c..c683d21 100644 if prefix: self.bindir = os.path.join(prefix, 'bin') -@@ -427,7 +427,7 @@ class Qt4Dependency(QtBaseDependency): +@@ -507,7 +507,7 @@ class Qt4Dependency(QtBaseDependency): applications = ['moc', 'uic', 'rcc', 'lupdate', 'lrelease'] for application in applications: try: @@ -114,7 +114,7 @@ index 197d22c..c683d21 100644 except MesonException: pass -@@ -437,7 +437,7 @@ class Qt5Dependency(QtBaseDependency): +@@ -517,7 +517,7 @@ class Qt5Dependency(QtBaseDependency): QtBaseDependency.__init__(self, 'qt5', env, kwargs) def get_pkgconfig_host_bins(self, core): diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/meson/meson/0007-mesonbuild-allow-multiple-cross-file-options.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/meson/meson/0007-mesonbuild-allow-multiple-cross-file-options.patch deleted file mode 100644 index 6c2949c0..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/meson/meson/0007-mesonbuild-allow-multiple-cross-file-options.patch +++ /dev/null @@ -1,185 +0,0 @@ -From 07ae4f949b8402cff178dd12c210d9a726ffe2da Mon Sep 17 00:00:00 2001 -From: Ross Burton -Date: Mon, 18 Mar 2019 17:27:57 +0000 -Subject: [PATCH] mesonbuild: allow multiple --cross-file options - -Just like --native-file, allow multiple --cross-file options. This is mostly -unifying the logic between cross_files and config_files. - -Upstream-Status: Backport [will be in 0.50.1] -Signed-off-by: Ross Burton - ---- - .../markdown/snippets/multiple-cross-files.md | 3 ++ - mesonbuild/backend/backends.py | 3 +- - mesonbuild/coredata.py | 52 +++---------------- - mesonbuild/environment.py | 5 +- - mesonbuild/msetup.py | 4 +- - mesonbuild/munstable_coredata.py | 5 +- - 6 files changed, 20 insertions(+), 52 deletions(-) - create mode 100644 docs/markdown/snippets/multiple-cross-files.md - -diff --git a/docs/markdown/snippets/multiple-cross-files.md b/docs/markdown/snippets/multiple-cross-files.md -new file mode 100644 -index 0000000..de229be ---- /dev/null -+++ b/docs/markdown/snippets/multiple-cross-files.md -@@ -0,0 +1,3 @@ -+## Multipe cross files can be specified -+ -+`--cross-file` can be passed multiple times, with the configuration files overlaying the same way as `--native-file`. -diff --git a/mesonbuild/backend/backends.py b/mesonbuild/backend/backends.py -index 4d35d22..5b270d3 100644 ---- a/mesonbuild/backend/backends.py -+++ b/mesonbuild/backend/backends.py -@@ -788,8 +788,7 @@ class Backend: - deps = [os.path.join(self.build_to_src, df) - for df in self.interpreter.get_build_def_files()] - if self.environment.is_cross_build(): -- deps.append(os.path.join(self.build_to_src, -- self.environment.coredata.cross_file)) -+ deps.extend(self.environment.coredata.cross_files) - deps.append('meson-private/coredata.dat') - if os.path.exists(os.path.join(self.environment.get_source_dir(), 'meson_options.txt')): - deps.append(os.path.join(self.build_to_src, 'meson_options.txt')) -diff --git a/mesonbuild/coredata.py b/mesonbuild/coredata.py -index 066ad30..d80e9a0 100644 ---- a/mesonbuild/coredata.py -+++ b/mesonbuild/coredata.py -@@ -265,7 +265,7 @@ class CoreData: - self.compiler_options = PerMachine({}, {}, {}) - self.base_options = {} - self.external_preprocess_args = PerMachine({}, {}, {}) # CPPFLAGS only -- self.cross_file = self.__load_cross_file(options.cross_file) -+ self.cross_files = self.__load_config_files(options.cross_file) - self.compilers = OrderedDict() - self.cross_compilers = OrderedDict() - self.deps = OrderedDict() -@@ -276,57 +276,19 @@ class CoreData: - - @staticmethod - def __load_config_files(filenames): -+ # Need to try and make the passed filenames absolute because when the -+ # files are parsed later we'll have chdir()d. - if not filenames: - return [] - filenames = [os.path.abspath(os.path.expanduser(os.path.expanduser(f))) - for f in filenames] - return filenames - -- @staticmethod -- def __load_cross_file(filename): -- """Try to load the cross file. -- -- If the filename is None return None. If the filename is an absolute -- (after resolving variables and ~), return that absolute path. Next, -- check if the file is relative to the current source dir. If the path -- still isn't resolved do the following: -- Windows: -- - Error -- *: -- - $XDG_DATA_HOME/meson/cross (or ~/.local/share/meson/cross if -- undefined) -- - $XDG_DATA_DIRS/meson/cross (or -- /usr/local/share/meson/cross:/usr/share/meson/cross if undefined) -- - Error -- -- Non-Windows follows the Linux path and will honor XDG_* if set. This -- simplifies the implementation somewhat. -- """ -- if filename is None: -- return None -- filename = os.path.expanduser(os.path.expandvars(filename)) -- if os.path.isabs(filename): -- return filename -- path_to_try = os.path.abspath(filename) -- if os.path.isfile(path_to_try): -- return path_to_try -- if sys.platform != 'win32': -- paths = [ -- os.environ.get('XDG_DATA_HOME', os.path.expanduser('~/.local/share')), -- ] + os.environ.get('XDG_DATA_DIRS', '/usr/local/share:/usr/share').split(':') -- for path in paths: -- path_to_try = os.path.join(path, 'meson', 'cross', filename) -- if os.path.isfile(path_to_try): -- return path_to_try -- raise MesonException('Cannot find specified cross file: ' + filename) -- -- raise MesonException('Cannot find specified cross file: ' + filename) -- - def libdir_cross_fixup(self): - # By default set libdir to "lib" when cross compiling since - # getting the "system default" is always wrong on multiarch - # platforms as it gets a value like lib/x86_64-linux-gnu. -- if self.cross_file is not None: -+ if self.cross_files: - self.builtins['libdir'].value = 'lib' - - def sanitize_prefix(self, prefix): -@@ -642,8 +604,8 @@ def read_cmd_line_file(build_dir, options): - options.cmd_line_options = d - - properties = config['properties'] -- if options.cross_file is None: -- options.cross_file = properties.get('cross_file', None) -+ if not options.cross_file: -+ options.cross_file = ast.literal_eval(properties.get('cross_file', '[]')) - if not options.native_file: - # This will be a string in the form: "['first', 'second', ...]", use - # literal_eval to get it into the list of strings. -@@ -654,7 +616,7 @@ def write_cmd_line_file(build_dir, options): - config = CmdLineFileParser() - - properties = {} -- if options.cross_file is not None: -+ if options.cross_file: - properties['cross_file'] = options.cross_file - if options.native_file: - properties['native_file'] = options.native_file -diff --git a/mesonbuild/environment.py b/mesonbuild/environment.py -index c25ef33..4c1c5ac 100644 ---- a/mesonbuild/environment.py -+++ b/mesonbuild/environment.py -@@ -394,8 +394,9 @@ class Environment: - self.binaries.build = BinaryTable(config.get('binaries', {})) - self.paths.build = Directories(**config.get('paths', {})) - -- if self.coredata.cross_file is not None: -- config = MesonConfigFile.parse_datafile(self.coredata.cross_file) -+ if self.coredata.cross_files: -+ config = MesonConfigFile.from_config_parser( -+ coredata.load_configs(self.coredata.cross_files, 'cross')) - self.properties.host = Properties(config.get('properties', {}), False) - self.binaries.host = BinaryTable(config.get('binaries', {}), False) - if 'host_machine' in config: -diff --git a/mesonbuild/msetup.py b/mesonbuild/msetup.py -index 023afdb..6e8ca83 100644 ---- a/mesonbuild/msetup.py -+++ b/mesonbuild/msetup.py -@@ -29,7 +29,9 @@ from .mesonlib import MesonException - - def add_arguments(parser): - coredata.register_builtin_arguments(parser) -- parser.add_argument('--cross-file', default=None, -+ parser.add_argument('--cross-file', -+ default=[], -+ action='append', - help='File describing cross compilation environment.') - parser.add_argument('--native-file', - default=[], -diff --git a/mesonbuild/munstable_coredata.py b/mesonbuild/munstable_coredata.py -index 78f3f34..913f942 100644 ---- a/mesonbuild/munstable_coredata.py -+++ b/mesonbuild/munstable_coredata.py -@@ -81,8 +81,9 @@ def run(options): - print('Last seen PKGCONFIG enviroment variable value: ' + v) - elif k == 'version': - print('Meson version: ' + v) -- elif k == 'cross_file': -- print('Cross File: ' + (v or 'None')) -+ elif k == 'cross_files': -+ if v: -+ print('Cross File: ' + ' '.join(v)) - elif k == 'config_files': - if v: - print('Native File: ' + ' '.join(v)) diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/meson/meson/dbc9e971bd320f3df15c1ee74f54858e6792b183.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/meson/meson/dbc9e971bd320f3df15c1ee74f54858e6792b183.patch new file mode 100644 index 00000000..7ea8a133 --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/meson/meson/dbc9e971bd320f3df15c1ee74f54858e6792b183.patch @@ -0,0 +1,95 @@ +From dbc9e971bd320f3df15c1ee74f54858e6792b183 Mon Sep 17 00:00:00 2001 +From: Xavier Claessens +Date: Fri, 11 Oct 2019 11:01:22 -0400 +Subject: [PATCH] Remove duplicated object files in static libraries + +When a static library link_whole to a bunch of other static libraries, +we have to extract all their objects recursively. But that could +introduce duplicated objects. ar is dumb enough to allow this without +error, but once the resulting static library is linked into an +executable or shared library, the linker will complain about duplicated +symbols. + +Upstream-Status: Backport +Signed-off-by: Richard Purdie + +--- + mesonbuild/backend/backends.py | 3 ++- + test cases/unit/69 static link/lib/func17.c | 4 ++++ + test cases/unit/69 static link/lib/func18.c | 6 ++++++ + test cases/unit/69 static link/lib/func19.c | 7 +++++++ + test cases/unit/69 static link/lib/meson.build | 12 ++++++++++++ + 5 files changed, 31 insertions(+), 1 deletion(-) + create mode 100644 test cases/unit/69 static link/lib/func17.c + create mode 100644 test cases/unit/69 static link/lib/func18.c + create mode 100644 test cases/unit/69 static link/lib/func19.c + +diff --git a/mesonbuild/backend/backends.py b/mesonbuild/backend/backends.py +index 947be1cbef..e54809657f 100644 +--- a/mesonbuild/backend/backends.py ++++ b/mesonbuild/backend/backends.py +@@ -281,7 +281,8 @@ def relpath(self, todir, fromdir): + os.path.join('dummyprefixdir', fromdir)) + + def flatten_object_list(self, target, proj_dir_to_build_root=''): +- return self._flatten_object_list(target, target.get_objects(), proj_dir_to_build_root) ++ obj_list = self._flatten_object_list(target, target.get_objects(), proj_dir_to_build_root) ++ return list(dict.fromkeys(obj_list)) + + def _flatten_object_list(self, target, objects, proj_dir_to_build_root): + obj_list = [] +diff --git a/test cases/unit/69 static link/lib/func17.c b/test cases/unit/69 static link/lib/func17.c +new file mode 100644 +index 0000000000..d1d8ec498c +--- /dev/null ++++ b/test cases/unit/69 static link/lib/func17.c +@@ -0,0 +1,4 @@ ++int func17() ++{ ++ return 1; ++} +diff --git a/test cases/unit/69 static link/lib/func18.c b/test cases/unit/69 static link/lib/func18.c +new file mode 100644 +index 0000000000..c149085ba4 +--- /dev/null ++++ b/test cases/unit/69 static link/lib/func18.c +@@ -0,0 +1,6 @@ ++int func17(); ++ ++int func18() ++{ ++ return func17() + 1; ++} +diff --git a/test cases/unit/69 static link/lib/func19.c b/test cases/unit/69 static link/lib/func19.c +new file mode 100644 +index 0000000000..69120e4bf8 +--- /dev/null ++++ b/test cases/unit/69 static link/lib/func19.c +@@ -0,0 +1,7 @@ ++int func17(); ++int func18(); ++ ++int func19() ++{ ++ return func17() + func18(); ++} +diff --git a/test cases/unit/69 static link/lib/meson.build b/test cases/unit/69 static link/lib/meson.build +index 5f04aab6a1..8f95fc4546 100644 +--- a/test cases/unit/69 static link/lib/meson.build ++++ b/test cases/unit/69 static link/lib/meson.build +@@ -66,3 +66,15 @@ libfunc15 = static_library('func15', 'func15.c', + libfunc16 = static_library('func16', 'func16.c', + link_with : libfunc15, + install : true) ++ ++# Verify func17.c.o gets included only once into libfunc19, otherwise ++# func19-shared would failed with duplicated symbol. ++libfunc17 = static_library('func17', 'func17.c', ++ install : false) ++libfunc18 = static_library('func18', 'func18.c', ++ link_with : libfunc17, ++ install : false) ++libfunc19 = static_library('func19', 'func19.c', ++ link_whole : [libfunc17, libfunc18], ++ install : false) ++shared_library('func19-shared', link_whole : [libfunc19]) diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/meson/meson/load-configs-generalise-search-path.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/meson/meson/load-configs-generalise-search-path.patch deleted file mode 100644 index 2056763d..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/meson/meson/load-configs-generalise-search-path.patch +++ /dev/null @@ -1,53 +0,0 @@ -From d57dd1092e84e08ee15d7063b6c56bd6d864f2e1 Mon Sep 17 00:00:00 2001 -From: Ross Burton -Date: Mon, 18 Mar 2019 16:16:56 +0000 -Subject: [PATCH] load_configs: generalise the search path - -Instead of hard-coding the fact that load_configs() searches for files under -meson/native, pass in the subdirectory allowing the cross-file code to use the -same logic. - -Upstream-Status: Backport -Signed-off-by: Alexander Kanavin ---- - mesonbuild/coredata.py | 6 +++--- - mesonbuild/environment.py | 2 +- - 2 files changed, 4 insertions(+), 4 deletions(-) - -diff --git a/mesonbuild/coredata.py b/mesonbuild/coredata.py -index fba90fa369..6e60917d10 100644 ---- a/mesonbuild/coredata.py -+++ b/mesonbuild/coredata.py -@@ -211,8 +211,8 @@ def is_auto(self): - return self.value == 'auto' - - --def load_configs(filenames): -- """Load native files.""" -+def load_configs(filenames, subdir): -+ """Load configuration files from a named subdirectory.""" - def gen(): - for f in filenames: - f = os.path.expanduser(os.path.expandvars(f)) -@@ -225,7 +225,7 @@ def gen(): - os.environ.get('XDG_DATA_HOME', os.path.expanduser('~/.local/share')), - ] + os.environ.get('XDG_DATA_DIRS', '/usr/local/share:/usr/share').split(':') - for path in paths: -- path_to_try = os.path.join(path, 'meson', 'native', f) -+ path_to_try = os.path.join(path, 'meson', subdir, f) - if os.path.isfile(path_to_try): - yield path_to_try - break -diff --git a/mesonbuild/environment.py b/mesonbuild/environment.py -index 58adb06960..92a00dd7bf 100644 ---- a/mesonbuild/environment.py -+++ b/mesonbuild/environment.py -@@ -408,7 +408,7 @@ def __init__(self, source_dir, build_dir, options): - - if self.coredata.config_files is not None: - config = MesonConfigFile.from_config_parser( -- coredata.load_configs(self.coredata.config_files)) -+ coredata.load_configs(self.coredata.config_files, 'native')) - self.binaries.build = BinaryTable(config.get('binaries', {})) - self.paths.build = Directories(**config.get('paths', {})) - diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/meson/meson_0.50.1.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/meson/meson_0.50.1.bb deleted file mode 100644 index de9b905c..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/meson/meson_0.50.1.bb +++ /dev/null @@ -1,4 +0,0 @@ -include meson.inc - -BBCLASSEXTEND = "native" - diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/meson/meson_0.52.0.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/meson/meson_0.52.0.bb new file mode 100644 index 00000000..897fa148 --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/meson/meson_0.52.0.bb @@ -0,0 +1,3 @@ +include meson.inc + +BBCLASSEXTEND = "native" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/meson/nativesdk-meson_0.50.1.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/meson/nativesdk-meson_0.50.1.bb deleted file mode 100644 index 1549357a..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/meson/nativesdk-meson_0.50.1.bb +++ /dev/null @@ -1,71 +0,0 @@ -include meson.inc - -inherit nativesdk -inherit siteinfo - -SRC_URI += "file://meson-setup.py \ - file://meson-wrapper" - -def meson_endian(prefix, d): - arch, os = d.getVar(prefix + "_ARCH"), d.getVar(prefix + "_OS") - sitedata = siteinfo_data_for_machine(arch, os, d) - if "endian-little" in sitedata: - return "little" - elif "endian-big" in sitedata: - return "big" - else: - bb.fatal("Cannot determine endianism for %s-%s" % (arch, os)) - -MESON_TOOLCHAIN_ARGS = "${BUILDSDK_CC_ARCH}${TOOLCHAIN_OPTIONS}" -MESON_C_ARGS = "${MESON_TOOLCHAIN_ARGS} ${BUILDSDK_CFLAGS}" -MESON_CPP_ARGS = "${MESON_TOOLCHAIN_ARGS} ${BUILDSDK_CXXFLAGS}" -MESON_LINK_ARGS = "${MESON_TOOLCHAIN_ARGS} ${BUILDSDK_LDFLAGS}" - -# The cross file logic is similar but not identical to that in meson.bbclass, -# since it's generating for an SDK rather than a cross-compile. Important -# differences are: -# - We can't set vars like CC, CXX, etc. yet because they will be filled in with -# real paths by meson-setup.sh when the SDK is extracted. -# - Some overrides aren't needed, since the SDK injects paths that take care of -# them. -do_install_append() { - install -d ${D}${datadir}/meson - cat >${D}${datadir}/meson/meson.cross.template <${D}${datadir}/meson/meson.cross.template < +Date: Wed, 14 Nov 2018 10:03:42 +0300 +Subject: [PATCH] preproc: Fix malformed parameter count + +readnum returns 64bit number which may become +a negative integer upon conversion which in +turn lead to out of bound array access. + +Fix it by explicit conversion with bounds check + + | POC6:2: error: parameter count `2222222222' is out of bounds [0; 2147483647] + +https://bugzilla.nasm.us/show_bug.cgi?id=3392528 + +Signed-off-by: Cyrill Gorcunov + +Upstream-Status: Backport +CVE: CVE-2018-19755 +Signed-off-by: Anuj Mittal +--- + asm/preproc.c | 43 +++++++++++++++++++++---------------------- + 1 file changed, 21 insertions(+), 22 deletions(-) + +diff --git a/asm/preproc.c b/asm/preproc.c +index b6afee3..e5ad05a 100644 +--- a/asm/preproc.c ++++ b/asm/preproc.c +@@ -1650,6 +1650,23 @@ smacro_defined(Context * ctx, const char *name, int nparam, SMacro ** defn, + return false; + } + ++/* param should be a natural number [0; INT_MAX] */ ++static int read_param_count(const char *str) ++{ ++ int result; ++ bool err; ++ ++ result = readnum(str, &err); ++ if (result < 0 || result > INT_MAX) { ++ result = 0; ++ nasm_error(ERR_NONFATAL, "parameter count `%s' is out of bounds [%d; %d]", ++ str, 0, INT_MAX); ++ } else if (err) { ++ nasm_error(ERR_NONFATAL, "unable to parse parameter count `%s'", str); ++ } ++ return result; ++} ++ + /* + * Count and mark off the parameters in a multi-line macro call. + * This is called both from within the multi-line macro expansion +@@ -1871,11 +1888,7 @@ static bool if_condition(Token * tline, enum preproc_token ct) + pp_directives[ct]); + } else { + searching.nparam_min = searching.nparam_max = +- readnum(tline->text, &j); +- if (j) +- nasm_error(ERR_NONFATAL, +- "unable to parse parameter count `%s'", +- tline->text); ++ read_param_count(tline->text); + } + if (tline && tok_is_(tline->next, "-")) { + tline = tline->next->next; +@@ -1886,11 +1899,7 @@ static bool if_condition(Token * tline, enum preproc_token ct) + "`%s' expects a parameter count after `-'", + pp_directives[ct]); + else { +- searching.nparam_max = readnum(tline->text, &j); +- if (j) +- nasm_error(ERR_NONFATAL, +- "unable to parse parameter count `%s'", +- tline->text); ++ searching.nparam_max = read_param_count(tline->text); + if (searching.nparam_min > searching.nparam_max) { + nasm_error(ERR_NONFATAL, + "minimum parameter count exceeds maximum"); +@@ -2079,8 +2088,6 @@ static void undef_smacro(Context *ctx, const char *mname) + */ + static bool parse_mmacro_spec(Token *tline, MMacro *def, const char *directive) + { +- bool err; +- + tline = tline->next; + skip_white_(tline); + tline = expand_id(tline); +@@ -2103,11 +2110,7 @@ static bool parse_mmacro_spec(Token *tline, MMacro *def, const char *directive) + if (!tok_type_(tline, TOK_NUMBER)) { + nasm_error(ERR_NONFATAL, "`%s' expects a parameter count", directive); + } else { +- def->nparam_min = def->nparam_max = +- readnum(tline->text, &err); +- if (err) +- nasm_error(ERR_NONFATAL, +- "unable to parse parameter count `%s'", tline->text); ++ def->nparam_min = def->nparam_max = read_param_count(tline->text); + } + if (tline && tok_is_(tline->next, "-")) { + tline = tline->next->next; +@@ -2117,11 +2120,7 @@ static bool parse_mmacro_spec(Token *tline, MMacro *def, const char *directive) + nasm_error(ERR_NONFATAL, + "`%s' expects a parameter count after `-'", directive); + } else { +- def->nparam_max = readnum(tline->text, &err); +- if (err) { +- nasm_error(ERR_NONFATAL, "unable to parse parameter count `%s'", +- tline->text); +- } ++ def->nparam_max = read_param_count(tline->text); + if (def->nparam_min > def->nparam_max) { + nasm_error(ERR_NONFATAL, "minimum parameter count exceeds maximum"); + def->nparam_max = def->nparam_min; +-- +2.10.5.GIT + diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/nasm/nasm_2.14.02.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/nasm/nasm_2.14.02.bb index ecec78d8..e4f964ce 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/nasm/nasm_2.14.02.bb +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/nasm/nasm_2.14.02.bb @@ -3,7 +3,9 @@ SECTION = "devel" LICENSE = "BSD-2-Clause" LIC_FILES_CHKSUM = "file://LICENSE;md5=90904486f8fbf1861cf42752e1a39efe" -SRC_URI = "http://www.nasm.us/pub/nasm/releasebuilds/${PV}/nasm-${PV}.tar.bz2" +SRC_URI = "http://www.nasm.us/pub/nasm/releasebuilds/${PV}/nasm-${PV}.tar.bz2 \ + file://CVE-2018-19755.patch \ + " SRC_URI[md5sum] = "3f489aa48ad2aa1f967dc5e293bbd06f" SRC_URI[sha256sum] = "34fd26c70a277a9fdd54cb5ecf389badedaf48047b269d1008fbc819b24e80bc" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/ninja/ninja_1.9.0.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/ninja/ninja_1.9.0.bb index 1b063289..f1236e8a 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/ninja/ninja_1.9.0.bb +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/ninja/ninja_1.9.0.bb @@ -17,11 +17,11 @@ S = "${WORKDIR}/git" do_configure[noexec] = "1" do_compile_class-native() { - ./configure.py --bootstrap + python3 ./configure.py --bootstrap } do_compile() { - ./configure.py + python3 ./configure.py ninja } diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/opkg-utils/opkg-utils/0001-opkg-build-clamp-mtimes-to-SOURCE_DATE_EPOCH.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/opkg-utils/opkg-utils/0001-opkg-build-clamp-mtimes-to-SOURCE_DATE_EPOCH.patch new file mode 100644 index 00000000..a181169d --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/opkg-utils/opkg-utils/0001-opkg-build-clamp-mtimes-to-SOURCE_DATE_EPOCH.patch @@ -0,0 +1,44 @@ +Upstream-Status: Backport +Signed-off-by: Ross Burton + +From 59da5577bf8df441c6ca958e50fcb83228702764 Mon Sep 17 00:00:00 2001 +From: Alejandro del Castillo +Date: Thu, 12 Sep 2019 10:24:58 -0500 +Subject: [PATCH] opkg-build: clamp mtimes to SOURCE_DATE_EPOCH + +For reproducible builds, clamp mtimes bigger than SOURCE_DATE_EPOCH to +SOURCE_DATE_EPOCH (build generated files, usually). + +Fixes bugzilla 13450 + +Signed-off-by: Alejandro del Castillo +Signed-off-by: Ross Burton +--- + opkg-build | 9 ++++++++- + 1 file changed, 8 insertions(+), 1 deletion(-) + +diff --git a/opkg-build b/opkg-build +index dcd2d68..2517a2b 100755 +--- a/opkg-build ++++ b/opkg-build +@@ -297,9 +297,16 @@ mkdir $tmp_dir + + build_date="${SOURCE_DATE_EPOCH:-$(date +%s)}" + ++mtime_args="" ++# --clamp-mtime requires tar > 1.28. Only use it if SOURCE_DATE_EPOCH is set, to avoid having a generic case dependency on tar > 1.28. ++# this setting will make sure files generated at build time have consistent mtimes, for reproducible builds. ++if [ ! -z "$SOURCE_DATE_EPOCH" ]; then ++ mtime_args="--mtime=@$build_date --clamp-mtime" ++fi ++ + ( cd $pkg_dir/$CONTROL && find . -type f > $tmp_dir/control_list ) + ( cd $pkg_dir && find . -path ./$CONTROL -prune -o -print > $tmp_dir/file_list ) +-( cd $pkg_dir && tar $ogargs $tsortargs --no-recursion -c $tarformat -T $tmp_dir/file_list | $compressor $compressorargs > $tmp_dir/data.tar.$cext ) ++( cd $pkg_dir && tar $ogargs $tsortargs --no-recursion $mtime_args -c $tarformat -T $tmp_dir/file_list | $compressor $compressorargs > $tmp_dir/data.tar.$cext ) + ( cd $pkg_dir/$CONTROL && tar $ogargs $tsortargs --no-recursion --mtime=@$build_date -c $tarformat -T $tmp_dir/control_list | gzip $zipargs > $tmp_dir/control.tar.gz ) + rm $tmp_dir/file_list + rm $tmp_dir/control_list +-- +2.20.1 + diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/opkg-utils/opkg-utils/pipefail.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/opkg-utils/opkg-utils/pipefail.patch new file mode 100644 index 00000000..55ddcc1f --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/opkg-utils/opkg-utils/pipefail.patch @@ -0,0 +1,31 @@ +We need opkg-build to fail if for example the tar command is passed invalid +options. Without this, we see silently created empty packaged where data.tar +is zero bytes in size. This creates hard to debug problems. + +An example is when reproducible builds are enabled and run on old hosts like +centos7 which has tar < 1.28: + +Subprocess output:tar: unrecognized option '--clamp-mtime' +Try `tar --help' or `tar --usage' for more information. + +Upstream-Status: Pending +Signed-off-by: Richard Purdie + +Index: opkg-utils-0.4.1/opkg-build +=================================================================== +--- opkg-utils-0.4.1.orig/opkg-build ++++ opkg-utils-0.4.1/opkg-build +@@ -1,4 +1,4 @@ +-#!/bin/sh ++#!/bin/bash + + : <<=cut + =head1 NAME +@@ -12,6 +12,7 @@ opkg-build - construct an .opk from a di + # Updated to work on Familiar Pre0.7rc1, with busybox tar. + # Note it Requires: binutils-ar (since the busybox ar can't create) + set -e ++set -o pipefail + + version=1.0 + diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/opkg-utils/opkg-utils_0.4.1.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/opkg-utils/opkg-utils_0.4.1.bb index 4be7b16d..eb6c7a3a 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/opkg-utils/opkg-utils_0.4.1.bb +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/opkg-utils/opkg-utils_0.4.1.bb @@ -9,6 +9,8 @@ PROVIDES += "${@bb.utils.contains('PACKAGECONFIG', 'update-alternatives', 'virtu SRC_URI = "http://git.yoctoproject.org/cgit/cgit.cgi/${BPN}/snapshot/${BPN}-${PV}.tar.gz \ file://0001-Switch-all-scripts-to-use-Python-3.x.patch \ + file://0001-opkg-build-clamp-mtimes-to-SOURCE_DATE_EPOCH.patch \ + file://pipefail.patch \ " UPSTREAM_CHECK_URI = "http://git.yoctoproject.org/cgit/cgit.cgi/opkg-utils/refs/" @@ -18,6 +20,8 @@ SRC_URI[sha256sum] = "9ea9efdd9fe13661ad251e3a2860c1c93045adcfaa6659c3e86d9748ec TARGET_CC_ARCH += "${LDFLAGS}" +RDEPENDS_${PN} += "bash" + # For native builds we use the host Python PYTHONRDEPS = "python3 python3-shell python3-io python3-math python3-crypt python3-logging python3-fcntl python3-pickle python3-compression python3-stringold" PYTHONRDEPS_class-native = "" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/opkg/opkg/0001-libopkg-add-add-ignore-recommends-option.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/opkg/opkg/0001-libopkg-add-add-ignore-recommends-option.patch deleted file mode 100644 index 47d1b3c3..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/opkg/opkg/0001-libopkg-add-add-ignore-recommends-option.patch +++ /dev/null @@ -1,259 +0,0 @@ -From 64aa98646a17c299bf37af2975b98daf5d7d30b4 Mon Sep 17 00:00:00 2001 -From: Alejandro del Castillo -Date: Thu, 31 Jan 2019 18:16:08 -0600 -Subject: [PATCH] libopkg: add --add-ignore-recommends option - -Add option to ignore specific recommended packages. On the libsolv -backed, this feature will only work on libsolv version > 0.7.2 [1]. - -[1] https://urldefense.proofpoint.com/v2/url?u=https-3A__github.com_openSUSE_libsolv_issues_254&d=DwIBaQ&c=I_0YwoKy7z5LMTVdyO6YCiE2uzI1jjZZuIPelcSjixA&r=wNcrL2akRn6jfxhHaKavUrJB_C9JAMXtynjLd8ZzgXQ&m=GObNHzFJpWpf_PripIrf-K2RhsktYdAUEieAJexXOKw&s=3G-meChUqClFggFPqsrAxIZBfLnRKIHm62Uuy1X6nQQ&e= - -Signed-off-by: Alejandro del Castillo - -Upstream-Status: Accepted ---- - libopkg/opkg_conf.c | 2 + - libopkg/opkg_conf.h | 1 + - .../solvers/internal/pkg_depends_internal.c | 3 +- - libopkg/solvers/libsolv/opkg_solver_libsolv.c | 21 ++++++- - man/opkg.1.in | 3 + - src/opkg.c | 6 ++ - tests/Makefile | 1 + - tests/core/43_add_ignore_recommends.py | 62 +++++++++++++++++++ - 8 files changed, 97 insertions(+), 2 deletions(-) - create mode 100755 tests/core/43_add_ignore_recommends.py - -diff --git a/libopkg/opkg_conf.c b/libopkg/opkg_conf.c -index 06880a1..f2330cd 100644 ---- a/libopkg/opkg_conf.c -+++ b/libopkg/opkg_conf.c -@@ -597,6 +597,7 @@ int opkg_conf_init(void) - pkg_dest_list_init(&opkg_config->tmp_dest_list); - nv_pair_list_init(&opkg_config->arch_list); - str_list_init(&opkg_config->exclude_list); -+ str_list_init(&opkg_config->ignore_recommends_list); - - return 0; - } -@@ -938,6 +939,7 @@ void opkg_conf_deinit(void) - pkg_dest_list_deinit(&opkg_config->pkg_dest_list); - nv_pair_list_deinit(&opkg_config->arch_list); - str_list_deinit(&opkg_config->exclude_list); -+ str_list_deinit(&opkg_config->ignore_recommends_list); - - if (opkg_config->verbosity >= DEBUG) { - hash_print_stats(&opkg_config->pkg_hash); -diff --git a/libopkg/opkg_conf.h b/libopkg/opkg_conf.h -index eb56a29..316c500 100644 ---- a/libopkg/opkg_conf.h -+++ b/libopkg/opkg_conf.h -@@ -61,6 +61,7 @@ typedef struct opkg_conf { - pkg_dest_list_t tmp_dest_list; - nv_pair_list_t arch_list; - str_list_t exclude_list; -+ str_list_t ignore_recommends_list; - - int restrict_to_default_dest; - pkg_dest_t *default_dest; -diff --git a/libopkg/solvers/internal/pkg_depends_internal.c b/libopkg/solvers/internal/pkg_depends_internal.c -index cd56d84..5deee70 100644 ---- a/libopkg/solvers/internal/pkg_depends_internal.c -+++ b/libopkg/solvers/internal/pkg_depends_internal.c -@@ -228,7 +228,8 @@ int pkg_hash_fetch_unsatisfied_dependencies(pkg_t *pkg, - || compound_depend->type == SUGGEST) - && (satisfying_pkg->state_want == SW_DEINSTALL - || satisfying_pkg->state_want == SW_PURGE -- || opkg_config->no_install_recommends); -+ || opkg_config->no_install_recommends -+ || str_list_contains(&opkg_config->ignore_recommends_list, satisfying_pkg->name)); - if (ignore) { - opkg_msg(NOTICE, - "%s: ignoring recommendation for " -diff --git a/libopkg/solvers/libsolv/opkg_solver_libsolv.c b/libopkg/solvers/libsolv/opkg_solver_libsolv.c -index 2b27e3a..403e07b 100644 ---- a/libopkg/solvers/libsolv/opkg_solver_libsolv.c -+++ b/libopkg/solvers/libsolv/opkg_solver_libsolv.c -@@ -484,6 +484,7 @@ static void pkg2solvable(pkg_t *pkg, Solvable *solvable_out) - static void populate_installed_repo(libsolv_solver_t *libsolv_solver) - { - int i; -+ Id what; - - pkg_vec_t *installed_pkgs = pkg_vec_alloc(); - -@@ -507,6 +508,15 @@ static void populate_installed_repo(libsolv_solver_t *libsolv_solver) - /* set solvable attributes */ - pkg2solvable(pkg, solvable); - -+ /* if the package is in ignore-recommends-list, disfavor installation */ -+ if (str_list_contains(&opkg_config->ignore_recommends_list, pkg->name)) { -+ opkg_message(NOTICE, "Disfavor package: %s\n", -+ pkg->name); -+ what = pool_str2id(libsolv_solver->pool, pkg->name, 1); -+ queue_push2(&libsolv_solver->solver_jobs, SOLVER_SOLVABLE_NAME -+ | SOLVER_DISFAVOR, what); -+ } -+ - /* if the package is not autoinstalled, mark it as user installed */ - if (!pkg->auto_installed) - queue_push2(&libsolv_solver->solver_jobs, SOLVER_SOLVABLE -@@ -539,7 +549,7 @@ static void populate_available_repos(libsolv_solver_t *libsolv_solver) - { - int i; - Solvable *solvable; -- Id solvable_id; -+ Id solvable_id, what; - - pkg_vec_t *available_pkgs = pkg_vec_alloc(); - -@@ -608,6 +618,15 @@ static void populate_available_repos(libsolv_solver_t *libsolv_solver) - solvable = pool_id2solvable(libsolv_solver->pool, solvable_id); - pkg2solvable(pkg, solvable); - -+ /* if the package is in ignore-recommends-list, disfavor installation */ -+ if (str_list_contains(&opkg_config->ignore_recommends_list, pkg->name)) { -+ opkg_message(NOTICE, "Disfavor package: %s\n", -+ pkg->name); -+ what = pool_str2id(libsolv_solver->pool, pkg->name, 1); -+ queue_push2(&libsolv_solver->solver_jobs, SOLVER_SOLVABLE_NAME -+ | SOLVER_DISFAVOR, what); -+ } -+ - /* if the --force-depends option is specified make dependencies weak */ - if (opkg_config->force_depends) - queue_push2(&libsolv_solver->solver_jobs, SOLVER_SOLVABLE -diff --git a/man/opkg.1.in b/man/opkg.1.in -index 27fa9c1..f192c3b 100644 ---- a/man/opkg.1.in -+++ b/man/opkg.1.in -@@ -162,6 +162,9 @@ priority \fIprio\fP. Lower priorities take precedence. - \fB\--add-exclude <\fIname\fP>\fR - Register package to be excluded from install - .TP -+\fB\--add-ignore-recommends <\fIname\fP>\fR -+Register package to be ignored as a recomendee -+.TP - \fB\--prefer-arch-to-version\fR - Use the architecture priority package rather than the higher version - one if more than one candidate is found. -diff --git a/src/opkg.c b/src/opkg.c -index 650e278..3c93a3b 100644 ---- a/src/opkg.c -+++ b/src/opkg.c -@@ -51,6 +51,7 @@ enum { - ARGS_OPT_ADD_DEST, - ARGS_OPT_SIZE, - ARGS_OPT_ADD_EXCLUDE, -+ ARGS_OPT_ADD_IGNORE_RECOMMENDS, - ARGS_OPT_NOACTION, - ARGS_OPT_DOWNLOAD_ONLY, - ARGS_OPT_NODEPS, -@@ -112,6 +113,7 @@ static struct option long_options[] = { - {"add-dest", 1, 0, ARGS_OPT_ADD_DEST}, - {"size", 0, 0, ARGS_OPT_SIZE}, - {"add-exclude", 1, 0, ARGS_OPT_ADD_EXCLUDE}, -+ {"add-ignore-recommends", 1, 0, ARGS_OPT_ADD_IGNORE_RECOMMENDS}, - {"test", 0, 0, ARGS_OPT_NOACTION}, - {"tmp-dir", 1, 0, 't'}, - {"tmp_dir", 1, 0, 't'}, -@@ -234,6 +236,9 @@ static int args_parse(int argc, char *argv[]) - case ARGS_OPT_ADD_EXCLUDE: - str_list_append(&opkg_config->exclude_list, optarg); - break; -+ case ARGS_OPT_ADD_IGNORE_RECOMMENDS: -+ str_list_append(&opkg_config->ignore_recommends_list, optarg); -+ break; - case ARGS_OPT_SIZE: - opkg_config->size = 1; - break; -@@ -343,6 +348,7 @@ static void usage() - printf("\t--add-dest : Register destination with given path\n"); - printf("\t--add-arch : Register architecture with given priority\n"); - printf("\t--add-exclude Register package to be excluded from install\n"); -+ printf("\t--add-ignore-recommends Register package to be ignored as a recomendee\n"); - printf("\t--prefer-arch-to-version Use the architecture priority package rather\n"); - printf("\t than the higher version one if more\n"); - printf("\t than one candidate is found.\n"); -diff --git a/tests/Makefile b/tests/Makefile -index 8e5be08..799816d 100644 ---- a/tests/Makefile -+++ b/tests/Makefile -@@ -42,6 +42,7 @@ REGRESSION_TESTS := core/01_install.py \ - core/40_arch.py \ - core/41_info_fields.py \ - core/42_info_description.py \ -+ core/43_add_ignore_recommends.py \ - regress/issue26.py \ - regress/issue31.py \ - regress/issue32.py \ -diff --git a/tests/core/43_add_ignore_recommends.py b/tests/core/43_add_ignore_recommends.py -new file mode 100755 -index 0000000..7da0096 ---- /dev/null -+++ b/tests/core/43_add_ignore_recommends.py -@@ -0,0 +1,62 @@ -+#! /usr/bin/env python3 -+# -+# Create package 'a' (1.0) which Recommends 'c'. -+# Install 'a' with --add-ignore-recommends 'c'. -+# Check that only 'a' (1.0) is installed. -+# Create package 'b' which Depends on 'c'. -+# Install 'a' & 'b', with --add-ignore-recommends 'c'. -+# Verify that 'a','b' & 'c' are installed. -+# Uninstall 'b' & 'c'. -+# Create package 'a' (2.0), which Recommends 'c'. -+# Upgrade 'a' with --add-ignore-recommends 'c' -+# Verify that only 'a' (2.0) is installed -+# -+ -+import os -+import opk, cfg, opkgcl -+ -+opk.regress_init() -+o = opk.OpkGroup() -+ -+o.add(Package='a', Recommends='c', Version='1.0') -+o.add(Package='b', Depends='c') -+o.add(Package='c') -+o.write_opk() -+o.write_list() -+ -+opkgcl.update() -+ -+opkgcl.install('a', '--add-ignore-recommends c') -+ -+if not opkgcl.is_installed('a'): -+ opk.fail("Package 'a' installed but reports as not installed.") -+ -+if opkgcl.is_installed('c'): -+ opk.xfail("[libsolv<0.7.3] Package 'c' should not have been installed since it was in --add-ignore-recommends.") -+ -+opkgcl.remove('a') -+opkgcl.install('a b', '--add-ignore-recommends c') -+ -+if not opkgcl.is_installed('a'): -+ opk.fail("Package 'a' installed but reports as not installed.") -+ -+if not opkgcl.is_installed('b'): -+ opk.fail("Package 'b' installed but reports as not installed.") -+ -+if not opkgcl.is_installed('c'): -+ opk.fail("Package 'c' should have been installed since 'b' depends on it.") -+ -+opkgcl.remove('b c', '--force-depends') -+o.add(Package='a', Recommends='c', Version='2.0') -+o.write_opk() -+o.write_list() -+ -+opkgcl.update() -+ -+opkgcl.upgrade('a', '--add-ignore-recommends c') -+ -+if not opkgcl.is_installed('a', '2.0'): -+ opk.fail("Package 'a (2.0)' installed but reports as not installed.") -+ -+if opkgcl.is_installed('c'): -+ opk.fail("Package 'c' should not have been installed since it was in --add-ignore-recommends.") --- -2.20.1 - diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/opkg/opkg/0001-opkg-add-target-for-testsuite-installation.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/opkg/opkg/0001-opkg-add-target-for-testsuite-installation.patch deleted file mode 100644 index 951c1867..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/opkg/opkg/0001-opkg-add-target-for-testsuite-installation.patch +++ /dev/null @@ -1,43 +0,0 @@ -From 8fb0364bd0e19f35c20616dd1ab10aa00e08fa8f Mon Sep 17 00:00:00 2001 -From: Alejandro del Castillo -Date: Wed, 10 Apr 2019 14:49:43 -0500 -Subject: [PATCH] opkg: add target for testsuite installation - -- Add target to install testsuite -- Add override of opkg binary used during test via OPKG_PATH environment -variable. - -Signed-off-by: Alejandro del Castillo ---- -Upstream-Status: Submitted - - Makefile.am | 5 +++++ - tests/cfg.py | 2 +- - 2 files changed, 6 insertions(+), 1 deletion(-) - -diff --git a/Makefile.am b/Makefile.am -index 90cfcae..1f6a784 100644 ---- a/Makefile.am -+++ b/Makefile.am -@@ -18,3 +18,8 @@ run-tests: - $(MAKE) -C tests DATADIR=@datadir@ SYSCONFDIR=@sysconfdir@ VARDIR=@localstatedir@ - - check: run-tests -+ -+install-ptest: -+ cp -r $(srcdir)/tests $(DESTDIR) -+ cp Makefile $(DESTDIR) -+ sed -e 's/^Makefile/_Makefile/' < Makefile > $(DESTDIR)/Makefile -diff --git a/tests/cfg.py b/tests/cfg.py -index 4efaff6..ca59d03 100644 ---- a/tests/cfg.py -+++ b/tests/cfg.py -@@ -2,4 +2,4 @@ import os - - opkdir = "/tmp/opk" - offline_root = "/tmp/opkg" --opkgcl = os.path.realpath("../src/opkg") -+opkgcl = os.getenv('OPKG_PATH', os.path.realpath("../src/opkg")) --- -2.20.1 - diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/opkg/opkg/0001-regress-issue72.py-resolve-paths-before-comparision.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/opkg/opkg/0001-regress-issue72.py-resolve-paths-before-comparision.patch deleted file mode 100644 index 75ecb5fb..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/opkg/opkg/0001-regress-issue72.py-resolve-paths-before-comparision.patch +++ /dev/null @@ -1,31 +0,0 @@ -From 5f005830eea7d03c02107a3a3fc58907b0a037bf Mon Sep 17 00:00:00 2001 -From: Alejandro del Castillo -Date: Mon, 8 Apr 2019 11:14:56 -0500 -Subject: [PATCH] regress/issue72.py: resolve paths before comparision - -In systems that have a volatile /tmp, the test incorrectly fails since -it doesn't resolve the real path in all cases. - -Signed-off-by: Alejandro del Castillo ---- -Upstream-Status: Submitted - - tests/regress/issue72.py | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/tests/regress/issue72.py b/tests/regress/issue72.py -index 1626877..2f24dec 100755 ---- a/tests/regress/issue72.py -+++ b/tests/regress/issue72.py -@@ -56,7 +56,7 @@ if not os.path.lexists("{}/{}".format(cfg.offline_root, long_filename2)): - "not created.") - - linky = os.path.realpath("{}/{}".format(cfg.offline_root, long_filename2)) --linky_dst = "{}/{}".format(cfg.offline_root, long_filename) -+linky_dst = os.path.realpath("{}/{}".format(cfg.offline_root, long_filename)) - if linky != linky_dst: - opk.fail("symlink path truncated.") - --- -2.20.1 - diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/opkg/opkg/open_inner.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/opkg/opkg/open_inner.patch new file mode 100644 index 00000000..278e099e --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/opkg/opkg/open_inner.patch @@ -0,0 +1,46 @@ +From alejandro.delcastillo@ni.com Wed Nov 20 22:35:02 2019 +From: Alejandro del Castillo +To: , +CC: Alejandro del Castillo +Subject: [opkg][PATCH 2/2] open_inner: add support for empty payloads +Date: Wed, 20 Nov 2019 16:34:48 -0600 +Message-ID: <20191120223448.26522-3-alejandro.delcastillo@ni.com> +X-Mailer: git-send-email 2.22.0 +In-Reply-To: <20191120223448.26522-1-alejandro.delcastillo@ni.com> +References: <20191120223448.26522-1-alejandro.delcastillo@ni.com> +MIME-Version: 1.0 +Content-Type: text/plain +Content-Transfer-Encoding: 8bit + +Support for empty compressed payloads need to be explicitly enabled on +libarchive. + +Signed-off-by: Alejandro del Castillo + +Upstream-Status: Backport +--- + libopkg/opkg_archive.c | 7 +++++++ + 1 file changed, 7 insertions(+) + +diff --git a/libopkg/opkg_archive.c b/libopkg/opkg_archive.c +index 0e9ccea..f19cece 100644 +--- a/libopkg/opkg_archive.c ++++ b/libopkg/opkg_archive.c +@@ -618,6 +618,13 @@ static struct archive *open_inner(struct archive *outer) + goto err_cleanup; + } + ++ r = archive_read_support_format_empty(inner); ++ if (r != ARCHIVE_OK) { ++ opkg_msg(ERROR, "Empty format not supported: %s\n", ++ archive_error_string(inner)); ++ goto err_cleanup; ++ } ++ + r = archive_read_open(inner, data, NULL, inner_read, inner_close); + if (r != ARCHIVE_OK) { + opkg_msg(ERROR, "Failed to open inner archive: %s\n", +-- +2.22.0 + + diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/opkg/opkg/opkg_archive.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/opkg/opkg/opkg_archive.patch new file mode 100644 index 00000000..3e1ebae9 --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/opkg/opkg/opkg_archive.patch @@ -0,0 +1,54 @@ +From alejandro.delcastillo@ni.com Wed Nov 20 22:35:01 2019 +Return-Path: +From: Alejandro del Castillo +To: , +CC: Alejandro del Castillo +Subject: [opkg][PATCH 1/2] opkg_archive.c: avoid double free on uncompress + error +Date: Wed, 20 Nov 2019 16:34:47 -0600 +Message-ID: <20191120223448.26522-2-alejandro.delcastillo@ni.com> +X-Mailer: git-send-email 2.22.0 +In-Reply-To: <20191120223448.26522-1-alejandro.delcastillo@ni.com> +References: <20191120223448.26522-1-alejandro.delcastillo@ni.com> +MIME-Version: 1.0 +Content-Type: text/plain +Content-Transfer-Encoding: 8bit + +The open-inner function calls archive_read_open. On error, +archive_read_open calls inner_close, which also closes the outter +archive. On error, return NULL directly to avoid double free. + + +Upstream-Status: Backport + +Signed-off-by: Alejandro del Castillo +--- + libopkg/opkg_archive.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/libopkg/opkg_archive.c b/libopkg/opkg_archive.c +index 3d87db1..0e9ccea 100644 +--- a/libopkg/opkg_archive.c ++++ b/libopkg/opkg_archive.c +@@ -622,7 +622,7 @@ static struct archive *open_inner(struct archive *outer) + if (r != ARCHIVE_OK) { + opkg_msg(ERROR, "Failed to open inner archive: %s\n", + archive_error_string(inner)); +- goto err_cleanup; ++ return NULL; + } + + return inner; +@@ -683,7 +683,7 @@ static struct archive *extract_outer(const char *filename, const char *arname) + + inner = open_inner(outer); + if (!inner) +- goto err_cleanup; ++ return NULL; + + return inner; + +-- +2.22.0 + + diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/opkg/opkg_0.4.0.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/opkg/opkg_0.4.0.bb deleted file mode 100644 index e2305d09..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/opkg/opkg_0.4.0.bb +++ /dev/null @@ -1,69 +0,0 @@ -SUMMARY = "Open Package Manager" -SUMMARY_libopkg = "Open Package Manager library" -SECTION = "base" -HOMEPAGE = "http://code.google.com/p/opkg/" -BUGTRACKER = "http://code.google.com/p/opkg/issues/list" -LICENSE = "GPLv2+" -LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f \ - file://src/opkg.c;beginline=2;endline=21;md5=90435a519c6ea69ef22e4a88bcc52fa0" - -DEPENDS = "libarchive" - -PE = "1" - -SRC_URI = "http://downloads.yoctoproject.org/releases/${BPN}/${BPN}-${PV}.tar.gz \ - file://opkg.conf \ - file://0001-opkg_conf-create-opkg.lock-in-run-instead-of-var-run.patch \ - file://0001-libopkg-add-add-ignore-recommends-option.patch \ - file://0001-regress-issue72.py-resolve-paths-before-comparision.patch \ - file://0001-opkg-add-target-for-testsuite-installation.patch \ - file://run-ptest \ -" - -SRC_URI[md5sum] = "ae51d95fee599bb4dce08453529158f5" -SRC_URI[sha256sum] = "f6c00515d8a2ad8f6742a8e73830315d1983ed0459cba77c4d656cfc9e7fe6fe" - -# This needs to be before ptest inherit, otherwise all ptest files end packaged -# in libopkg package if OPKGLIBDIR == libdir, because default -# PTEST_PATH ?= "${libdir}/${BPN}/ptest" -PACKAGES =+ "libopkg" - -inherit autotools pkgconfig systemd ptest - -target_localstatedir := "${localstatedir}" -OPKGLIBDIR = "${target_localstatedir}/lib" - -PACKAGECONFIG ??= "libsolv" - -PACKAGECONFIG[gpg] = "--enable-gpg,--disable-gpg,gpgme libgpg-error,gnupg" -PACKAGECONFIG[curl] = "--enable-curl,--disable-curl,curl" -PACKAGECONFIG[ssl-curl] = "--enable-ssl-curl,--disable-ssl-curl,curl openssl" -PACKAGECONFIG[openssl] = "--enable-openssl,--disable-openssl,openssl" -PACKAGECONFIG[sha256] = "--enable-sha256,--disable-sha256" -PACKAGECONFIG[pathfinder] = "--enable-pathfinder,--disable-pathfinder,pathfinder" -PACKAGECONFIG[libsolv] = "--with-libsolv,--without-libsolv,libsolv" - -EXTRA_OECONF_class-native = "--localstatedir=/${@os.path.relpath('${localstatedir}', '${STAGING_DIR_NATIVE}')} --sysconfdir=/${@os.path.relpath('${sysconfdir}', '${STAGING_DIR_NATIVE}')}" - -do_install_append () { - install -d ${D}${sysconfdir}/opkg - install -m 0644 ${WORKDIR}/opkg.conf ${D}${sysconfdir}/opkg/opkg.conf - echo "option lists_dir ${OPKGLIBDIR}/opkg/lists" >>${D}${sysconfdir}/opkg/opkg.conf - - # We need to create the lock directory - install -d ${D}${OPKGLIBDIR}/opkg -} - -RDEPENDS_${PN} = "${VIRTUAL-RUNTIME_update-alternatives} opkg-arch-config libarchive" -RDEPENDS_${PN}_class-native = "" -RDEPENDS_${PN}_class-nativesdk = "" -RDEPENDS_${PN}-ptest += "make binutils python3-core python3-compression" -RREPLACES_${PN} = "opkg-nogpg opkg-collateral" -RCONFLICTS_${PN} = "opkg-collateral" -RPROVIDES_${PN} = "opkg-collateral" - -FILES_libopkg = "${libdir}/*.so.* ${OPKGLIBDIR}/opkg/" - -BBCLASSEXTEND = "native nativesdk" - -CONFFILES_${PN} = "${sysconfdir}/opkg/opkg.conf" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/opkg/opkg_0.4.1.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/opkg/opkg_0.4.1.bb new file mode 100644 index 00000000..f0ae8b36 --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/opkg/opkg_0.4.1.bb @@ -0,0 +1,86 @@ +SUMMARY = "Open Package Manager" +SUMMARY_libopkg = "Open Package Manager library" +SECTION = "base" +HOMEPAGE = "http://code.google.com/p/opkg/" +BUGTRACKER = "http://code.google.com/p/opkg/issues/list" +LICENSE = "GPLv2+" +LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f \ + file://src/opkg.c;beginline=2;endline=21;md5=90435a519c6ea69ef22e4a88bcc52fa0" + +DEPENDS = "libarchive" + +PE = "1" + +SRC_URI = "http://downloads.yoctoproject.org/releases/${BPN}/${BPN}-${PV}.tar.gz \ + file://opkg.conf \ + file://0001-opkg_conf-create-opkg.lock-in-run-instead-of-var-run.patch \ + file://opkg_archive.patch \ + file://open_inner.patch \ + file://run-ptest \ +" + +SRC_URI[md5sum] = "ba0c21305fc93b26e844981ef100dc85" +SRC_URI[sha256sum] = "45ac1e037d3877f635d883f8a555e172883a25d3eeb7986c75890fdd31250a43" + +# This needs to be before ptest inherit, otherwise all ptest files end packaged +# in libopkg package if OPKGLIBDIR == libdir, because default +# PTEST_PATH ?= "${libdir}/${BPN}/ptest" +PACKAGES =+ "libopkg" + +inherit autotools pkgconfig ptest + +target_localstatedir := "${localstatedir}" +OPKGLIBDIR ??= "${target_localstatedir}/lib" + +PACKAGECONFIG ??= "libsolv" + +PACKAGECONFIG[gpg] = "--enable-gpg,--disable-gpg,\ + gnupg gpgme libgpg-error,\ + ${@ "gnupg" if ("native" in d.getVar("PN")) else "gnupg-gpg"}\ + " +PACKAGECONFIG[curl] = "--enable-curl,--disable-curl,curl" +PACKAGECONFIG[ssl-curl] = "--enable-ssl-curl,--disable-ssl-curl,curl openssl" +PACKAGECONFIG[openssl] = "--enable-openssl,--disable-openssl,openssl" +PACKAGECONFIG[sha256] = "--enable-sha256,--disable-sha256" +PACKAGECONFIG[libsolv] = "--with-libsolv,--without-libsolv,libsolv" + +EXTRA_OECONF += " --disable-pathfinder" +EXTRA_OECONF_class-native = "--localstatedir=/${@os.path.relpath('${localstatedir}', '${STAGING_DIR_NATIVE}')} --sysconfdir=/${@os.path.relpath('${sysconfdir}', '${STAGING_DIR_NATIVE}')}" + +# Release tarball has unused binaries on the tests folder, automatically created by automake. +# For now, delete them to avoid packaging errors (wrong architecture) +do_unpack_append () { + bb.build.exec_func('remove_test_binaries', d) +} + +remove_test_binaries () { + rm ${WORKDIR}/opkg-${PV}/tests/libopkg_test* +} + +do_install_append () { + install -d ${D}${sysconfdir}/opkg + install -m 0644 ${WORKDIR}/opkg.conf ${D}${sysconfdir}/opkg/opkg.conf + echo "option lists_dir ${OPKGLIBDIR}/opkg/lists" >>${D}${sysconfdir}/opkg/opkg.conf + + # We need to create the lock directory + install -d ${D}${OPKGLIBDIR}/opkg +} + +do_install_ptest () { + sed -i -e '/@echo $^/d' ${D}${PTEST_PATH}/tests/Makefile + sed -i -e '/@PYTHONPATH=. $(PYTHON) $^/a\\t@if [ "$$?" != "0" ];then echo "FAIL:"$^;else echo "PASS:"$^;fi' ${D}${PTEST_PATH}/tests/Makefile +} + +RDEPENDS_${PN} = "${VIRTUAL-RUNTIME_update-alternatives} opkg-arch-config libarchive" +RDEPENDS_${PN}_class-native = "" +RDEPENDS_${PN}_class-nativesdk = "" +RDEPENDS_${PN}-ptest += "make binutils python3-core python3-compression" +RREPLACES_${PN} = "opkg-nogpg opkg-collateral" +RCONFLICTS_${PN} = "opkg-collateral" +RPROVIDES_${PN} = "opkg-collateral" + +FILES_libopkg = "${libdir}/*.so.* ${OPKGLIBDIR}/opkg/" + +BBCLASSEXTEND = "native nativesdk" + +CONFFILES_${PN} = "${sysconfdir}/opkg/opkg.conf" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/patch/patch/0001-Don-t-leak-temporary-file-on-failed-ed-style-patch.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/patch/patch/0001-Don-t-leak-temporary-file-on-failed-ed-style-patch.patch new file mode 100644 index 00000000..78345e92 --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/patch/patch/0001-Don-t-leak-temporary-file-on-failed-ed-style-patch.patch @@ -0,0 +1,94 @@ +From 7f770b9c20da1a192dad8cb572a6391f2773285a Mon Sep 17 00:00:00 2001 +From: Jean Delvare +Date: Thu, 3 May 2018 14:31:55 +0200 +Subject: [PATCH 1/2] Don't leak temporary file on failed ed-style patch + +Now that we write ed-style patches to a temporary file before we +apply them, we need to ensure that the temporary file is removed +before we leave, even on fatal error. + +* src/pch.c (do_ed_script): Use global TMPEDNAME instead of local + tmpname. Don't unlink the file directly, instead tag it for removal + at exit time. +* src/patch.c (cleanup): Unlink TMPEDNAME at exit. + +This closes bug #53820: +https://savannah.gnu.org/bugs/index.php?53820 + +Fixes: 123eaff0d5d1 ("Fix arbitrary command execution in ed-style patches (CVE-2018-1000156)") + +CVE: CVE-2018-1000156 +Upstream-Status: Backport [http://git.savannah.gnu.org/cgit/patch.git/commit/?id=19599883ffb6a450d2884f081f8ecf68edbed7ee] +Signed-off-by: Anuj Mittal +--- + src/common.h | 2 ++ + src/pch.c | 12 +++++------- + 2 files changed, 7 insertions(+), 7 deletions(-) + +diff --git a/src/common.h b/src/common.h +index ec50b40..22238b5 100644 +--- a/src/common.h ++++ b/src/common.h +@@ -94,10 +94,12 @@ XTERN char const *origsuff; + XTERN char const * TMPINNAME; + XTERN char const * TMPOUTNAME; + XTERN char const * TMPPATNAME; ++XTERN char const * TMPEDNAME; + + XTERN bool TMPINNAME_needs_removal; + XTERN bool TMPOUTNAME_needs_removal; + XTERN bool TMPPATNAME_needs_removal; ++XTERN bool TMPEDNAME_needs_removal; + + #ifdef DEBUGGING + XTERN int debug; +diff --git a/src/pch.c b/src/pch.c +index 16e001a..c1a62cf 100644 +--- a/src/pch.c ++++ b/src/pch.c +@@ -2392,7 +2392,6 @@ do_ed_script (char const *inname, char const *outname, + file_offset beginning_of_this_line; + size_t chars_read; + FILE *tmpfp = 0; +- char const *tmpname; + int tmpfd; + pid_t pid; + +@@ -2404,12 +2403,13 @@ do_ed_script (char const *inname, char const *outname, + invalid commands and treats the next line as a new command, which + can lead to arbitrary command execution. */ + +- tmpfd = make_tempfile (&tmpname, 'e', NULL, O_RDWR | O_BINARY, 0); ++ tmpfd = make_tempfile (&TMPEDNAME, 'e', NULL, O_RDWR | O_BINARY, 0); + if (tmpfd == -1) +- pfatal ("Can't create temporary file %s", quotearg (tmpname)); ++ pfatal ("Can't create temporary file %s", quotearg (TMPEDNAME)); ++ TMPEDNAME_needs_removal = true; + tmpfp = fdopen (tmpfd, "w+b"); + if (! tmpfp) +- pfatal ("Can't open stream for file %s", quotearg (tmpname)); ++ pfatal ("Can't open stream for file %s", quotearg (TMPEDNAME)); + } + + for (;;) { +@@ -2449,8 +2449,7 @@ do_ed_script (char const *inname, char const *outname, + write_fatal (); + + if (lseek (tmpfd, 0, SEEK_SET) == -1) +- pfatal ("Can't rewind to the beginning of file %s", quotearg (tmpname)); +- ++ pfatal ("Can't rewind to the beginning of file %s", quotearg (TMPEDNAME)); + if (! dry_run && ! skip_rest_of_patch) { + int exclusive = *outname_needs_removal ? 0 : O_EXCL; + *outname_needs_removal = true; +@@ -2482,7 +2481,6 @@ do_ed_script (char const *inname, char const *outname, + } + + fclose (tmpfp); +- safe_unlink (tmpname); + + if (ofp) + { +-- +2.17.0 + diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/patch/patch/0001-Don-t-leak-temporary-file-on-failed-multi-file-ed.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/patch/patch/0001-Don-t-leak-temporary-file-on-failed-multi-file-ed.patch new file mode 100644 index 00000000..8ffffef4 --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/patch/patch/0001-Don-t-leak-temporary-file-on-failed-multi-file-ed.patch @@ -0,0 +1,81 @@ +From 369dcccdfa6336e5a873d6d63705cfbe04c55727 Mon Sep 17 00:00:00 2001 +From: Jean Delvare +Date: Mon, 7 May 2018 15:14:45 +0200 +Subject: Don't leak temporary file on failed multi-file ed-style patch + +The previous fix worked fine with single-file ed-style patches, but +would still leak temporary files in the case of multi-file ed-style +patch. Fix that case as well, and extend the test case to check for +it. + +* src/patch.c (main): Unlink TMPEDNAME if needed before moving to + the next file in a patch. + +This closes bug #53820: +https://savannah.gnu.org/bugs/index.php?53820 + +Fixes: 123eaff0d5d1 ("Fix arbitrary command execution in ed-style patches (CVE-2018-1000156)") +Fixes: 19599883ffb6 ("Don't leak temporary file on failed ed-style patch") + +CVE: CVE-2018-1000156 +Upstream-Status: Backport [http://git.savannah.gnu.org/cgit/patch.git/commit/?id=369dcccdfa6336e5a873d6d63705cfbe04c55727] +Signed-off-by: Anuj Mittal +--- + src/patch.c | 1 + + tests/ed-style | 31 +++++++++++++++++++++++++++++++ + 2 files changed, 32 insertions(+) + +diff --git a/src/patch.c b/src/patch.c +index 9146597..81c7a02 100644 +--- a/src/patch.c ++++ b/src/patch.c +@@ -236,6 +236,7 @@ main (int argc, char **argv) + } + remove_if_needed (TMPOUTNAME, &TMPOUTNAME_needs_removal); + } ++ remove_if_needed (TMPEDNAME, &TMPEDNAME_needs_removal); + + if (! skip_rest_of_patch && ! file_type) + { +diff --git a/tests/ed-style b/tests/ed-style +index 6b6ef9d..504e6e5 100644 +--- a/tests/ed-style ++++ b/tests/ed-style +@@ -38,3 +38,34 @@ EOF + check 'cat foo' < ed3.diff < baz < +Date: Fri, 6 Apr 2018 19:36:15 +0200 +Subject: [PATCH] Invoke ed directly instead of using the shell + +* src/pch.c (do_ed_script): Invoke ed directly instead of using a shell +command to avoid quoting vulnerabilities. + +CVE: CVE-2019-13638 CVE-2018-20969 +Upstream-Status: Backport [https://git.savannah.gnu.org/cgit/patch.git/patch/?id=3fcd042d26d70856e826a42b5f93dc4854d80bf0] +Signed-off-by: Trevor Gamblin + +--- + src/pch.c | 6 ++---- + 1 file changed, 2 insertions(+), 4 deletions(-) + + +diff --git a/src/pch.c b/src/pch.c +index 4fd5a05..16e001a 100644 +--- a/src/pch.c ++++ b/src/pch.c +@@ -2459,9 +2459,6 @@ do_ed_script (char const *inname, char const *outname, + *outname_needs_removal = true; + copy_file (inname, outname, 0, exclusive, instat.st_mode, true); + } +- sprintf (buf, "%s %s%s", editor_program, +- verbosity == VERBOSE ? "" : "- ", +- outname); + fflush (stdout); + + pid = fork(); +@@ -2470,7 +2467,8 @@ do_ed_script (char const *inname, char const *outname, + else if (pid == 0) + { + dup2 (tmpfd, 0); +- execl ("/bin/sh", "sh", "-c", buf, (char *) 0); ++ assert (outname[0] != '!' && outname[0] != '-'); ++ execlp (editor_program, editor_program, "-", outname, (char *) NULL); + _exit (2); + } + else +-- +2.7.4 + diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/patch/patch/CVE-2019-13636.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/patch/patch/CVE-2019-13636.patch new file mode 100644 index 00000000..9f8b6db0 --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/patch/patch/CVE-2019-13636.patch @@ -0,0 +1,113 @@ +From dce4683cbbe107a95f1f0d45fabc304acfb5d71a Mon Sep 17 00:00:00 2001 +From: Andreas Gruenbacher +Date: Mon, 15 Jul 2019 16:21:48 +0200 +Subject: Don't follow symlinks unless --follow-symlinks is given + +* src/inp.c (plan_a, plan_b), src/util.c (copy_to_fd, copy_file, +append_to_file): Unless the --follow-symlinks option is given, open files with +the O_NOFOLLOW flag to avoid following symlinks. So far, we were only doing +that consistently for input files. +* src/util.c (create_backup): When creating empty backup files, (re)create them +with O_CREAT | O_EXCL to avoid following symlinks in that case as well. + +CVE: CVE-2019-13636 +Upstream-Status: Backport[https://git.savannah.gnu.org/cgit/patch.git/patch/?id=dce4683cbbe107a95f1f0d45fabc304acfb5d71a] +Signed-off-by: Anuj Mittal + +--- + src/inp.c | 12 ++++++++++-- + src/util.c | 14 +++++++++++--- + 2 files changed, 21 insertions(+), 5 deletions(-) + +diff --git a/src/inp.c b/src/inp.c +index 32d0919..22d7473 100644 +--- a/src/inp.c ++++ b/src/inp.c +@@ -238,8 +238,13 @@ plan_a (char const *filename) + { + if (S_ISREG (instat.st_mode)) + { +- int ifd = safe_open (filename, O_RDONLY|binary_transput, 0); ++ int flags = O_RDONLY | binary_transput; + size_t buffered = 0, n; ++ int ifd; ++ ++ if (! follow_symlinks) ++ flags |= O_NOFOLLOW; ++ ifd = safe_open (filename, flags, 0); + if (ifd < 0) + pfatal ("can't open file %s", quotearg (filename)); + +@@ -340,6 +345,7 @@ plan_a (char const *filename) + static void + plan_b (char const *filename) + { ++ int flags = O_RDONLY | binary_transput; + int ifd; + FILE *ifp; + int c; +@@ -353,7 +359,9 @@ plan_b (char const *filename) + + if (instat.st_size == 0) + filename = NULL_DEVICE; +- if ((ifd = safe_open (filename, O_RDONLY | binary_transput, 0)) < 0 ++ if (! follow_symlinks) ++ flags |= O_NOFOLLOW; ++ if ((ifd = safe_open (filename, flags, 0)) < 0 + || ! (ifp = fdopen (ifd, binary_transput ? "rb" : "r"))) + pfatal ("Can't open file %s", quotearg (filename)); + if (TMPINNAME_needs_removal) +diff --git a/src/util.c b/src/util.c +index 1cc08ba..fb38307 100644 +--- a/src/util.c ++++ b/src/util.c +@@ -388,7 +388,7 @@ create_backup (char const *to, const struct stat *to_st, bool leave_original) + + try_makedirs_errno = ENOENT; + safe_unlink (bakname); +- while ((fd = safe_open (bakname, O_CREAT | O_WRONLY | O_TRUNC, 0666)) < 0) ++ while ((fd = safe_open (bakname, O_CREAT | O_EXCL | O_WRONLY | O_TRUNC, 0666)) < 0) + { + if (errno != try_makedirs_errno) + pfatal ("Can't create file %s", quotearg (bakname)); +@@ -579,10 +579,13 @@ create_file (char const *file, int open_flags, mode_t mode, + static void + copy_to_fd (const char *from, int tofd) + { ++ int from_flags = O_RDONLY | O_BINARY; + int fromfd; + ssize_t i; + +- if ((fromfd = safe_open (from, O_RDONLY | O_BINARY, 0)) < 0) ++ if (! follow_symlinks) ++ from_flags |= O_NOFOLLOW; ++ if ((fromfd = safe_open (from, from_flags, 0)) < 0) + pfatal ("Can't reopen file %s", quotearg (from)); + while ((i = read (fromfd, buf, bufsize)) != 0) + { +@@ -625,6 +628,8 @@ copy_file (char const *from, char const *to, struct stat *tost, + else + { + assert (S_ISREG (mode)); ++ if (! follow_symlinks) ++ to_flags |= O_NOFOLLOW; + tofd = create_file (to, O_WRONLY | O_BINARY | to_flags, mode, + to_dir_known_to_exist); + copy_to_fd (from, tofd); +@@ -640,9 +645,12 @@ copy_file (char const *from, char const *to, struct stat *tost, + void + append_to_file (char const *from, char const *to) + { ++ int to_flags = O_WRONLY | O_APPEND | O_BINARY; + int tofd; + +- if ((tofd = safe_open (to, O_WRONLY | O_BINARY | O_APPEND, 0)) < 0) ++ if (! follow_symlinks) ++ to_flags |= O_NOFOLLOW; ++ if ((tofd = safe_open (to, to_flags, 0)) < 0) + pfatal ("Can't reopen file %s", quotearg (to)); + copy_to_fd (from, tofd); + if (close (tofd) != 0) +-- +cgit v1.0-41-gc330 + diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/patch/patch_2.7.6.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/patch/patch_2.7.6.bb index 85b0db73..5d7f55f8 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/patch/patch_2.7.6.bb +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/patch/patch_2.7.6.bb @@ -6,6 +6,10 @@ SRC_URI += "file://0001-Unset-need_charset_alias-when-building-for-musl.patch \ file://0003-Allow-input-files-to-be-missing-for-ed-style-patches.patch \ file://0004-Fix-arbitrary-command-execution-in-ed-style-patches-.patch \ file://0001-Fix-swapping-fake-lines-in-pch_swap.patch \ + file://CVE-2019-13636.patch \ + file://0001-Invoke-ed-directly-instead-of-using-the-shell.patch \ + file://0001-Don-t-leak-temporary-file-on-failed-ed-style-patch.patch \ + file://0001-Don-t-leak-temporary-file-on-failed-multi-file-ed.patch \ " SRC_URI[md5sum] = "4c68cee989d83c87b00a3860bcd05600" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/perl/files/0001-enc2xs-Add-environment-variable-to-suppress-comments.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/perl/files/0001-enc2xs-Add-environment-variable-to-suppress-comments.patch index 07f15316..3a41820f 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/perl/files/0001-enc2xs-Add-environment-variable-to-suppress-comments.patch +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/perl/files/0001-enc2xs-Add-environment-variable-to-suppress-comments.patch @@ -8,7 +8,7 @@ ENC2XS_NO_COMMENTS environment variable. This allows enc2xs to produce reproducible output by omitting the name of the generating program. Signed-off-by: Joshua Watt -Upstream-status: Accepted [https://github.com/dankogai/p5-encode/pull/145] +Upstream-Status: Accepted [https://github.com/dankogai/p5-encode/pull/145] --- cpan/Encode/bin/enc2xs | 1 + 1 file changed, 1 insertion(+) diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/perl/files/0002-Constant-Fix-up-shebang.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/perl/files/0002-Constant-Fix-up-shebang.patch index e70ff67f..686cc716 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/perl/files/0002-Constant-Fix-up-shebang.patch +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/perl/files/0002-Constant-Fix-up-shebang.patch @@ -9,7 +9,7 @@ makes the file non-reproducible when building because ^X could be the absolute path to miniperl. Signed-off-by: Joshua Watt -Upstream-status: Submitted [https://rt.cpan.org/Public/Bug/Display.html?id=129866] +Upstream-Status: Submitted [https://rt.cpan.org/Public/Bug/Display.html?id=129866] --- cpan/ExtUtils-Constant/lib/ExtUtils/Constant/XS.pm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/perl/perl_5.30.0.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/perl/perl_5.30.0.bb index e3664290..1d906a75 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/perl/perl_5.30.0.bb +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/perl/perl_5.30.0.bb @@ -35,10 +35,14 @@ S = "${WORKDIR}/perl-${PV}" inherit upstream-version-is-even -DEPENDS += "db gdbm zlib virtual/crypt" +DEPENDS += "zlib virtual/crypt" PERL_LIB_VER = "${@'.'.join(d.getVar('PV').split('.')[0:2])}.0" +PACKAGECONFIG ??= "bdb gdbm" +PACKAGECONFIG[bdb] = ",-Ui_db,db" +PACKAGECONFIG[gdbm] = ",-Ui_gdbm,gdbm" + # Don't generate comments in enc2xs output files. They are not reproducible export ENC2XS_NO_COMMENTS = "1" @@ -56,7 +60,8 @@ do_configure_class-target() { -Duseshrplib \ -Dsoname=libperl.so.5 \ -Dvendorprefix=${prefix} \ - -Darchlibexp=${STAGING_LIBDIR}/perl5/${PV}/${TARGET_ARCH}-linux + -Darchlibexp=${STAGING_LIBDIR}/perl5/${PV}/${TARGET_ARCH}-linux \ + ${PACKAGECONFIG_CONFARGS} #perl.c uses an ARCHLIB_EXP define to generate compile-time code that #adds the archlibexp path to @INC during run-time initialization of a @@ -79,7 +84,8 @@ do_configure_class-nativesdk() { -Duseshrplib \ -Dsoname=libperl.so.5 \ -Dvendorprefix=${prefix} \ - -Darchlibexp=${STAGING_LIBDIR}/perl5/${PV}/${TARGET_ARCH}-linux + -Darchlibexp=${STAGING_LIBDIR}/perl5/${PV}/${TARGET_ARCH}-linux \ + ${PACKAGECONFIG_CONFARGS} # See the comment above sed -i -e "s,${STAGING_LIBDIR},${libdir},g" config.h @@ -91,7 +97,8 @@ do_configure_class-native() { -Duseshrplib \ -Dsoname=libperl.so.5 \ -Dvendorprefix=${prefix} \ - -Ui_xlocale + -Ui_xlocale \ + ${PACKAGECONFIG_CONFARGS} } do_configure_append() { @@ -179,7 +186,7 @@ perl_package_preprocess () { ${PKGD}${libdir}/perl5/${PV}/Config.pm \ ${PKGD}${libdir}/perl5/${PV}/${TARGET_ARCH}-linux/Config.pm \ ${PKGD}${libdir}/perl5/${PV}/${TARGET_ARCH}-linux/Config.pod \ - ${PKGD}${libdir}/perl5/${PV}/${TARGET_ARCH}-linux/Config_git.pl \ + ${PKGD}${libdir}/perl5/${PV}/${TARGET_ARCH}-linux/Config_git.pl \ ${PKGD}${libdir}/perl5/${PV}/${TARGET_ARCH}-linux/Config_heavy.pl \ ${PKGD}${libdir}/perl5/${PV}/ExtUtils/Liblist/Kid.pm \ ${PKGD}${libdir}/perl5/${PV}/FileCache.pm \ @@ -192,7 +199,7 @@ require perl-ptest.inc FILES_${PN} = "${bindir}/perl ${bindir}/perl.real ${bindir}/perl${PV} ${libdir}/libperl.so* \ ${libdir}/perl5/site_perl \ ${libdir}/perl5/${PV}/Config.pm \ - ${libdir}/perl5/${PV}/*/Config_git.pl \ + ${libdir}/perl5/${PV}/*/Config_git.pl \ ${libdir}/perl5/${PV}/*/Config_heavy-target.pl \ ${libdir}/perl5/config.sh \ ${libdir}/perl5/${PV}/strict.pm \ @@ -259,13 +266,23 @@ python split_perl_packages () { # Read the pre-generated dependency file, and use it to set module dependecies for line in open(d.expand("${WORKDIR}") + '/perl-rdepends.txt').readlines(): splitline = line.split() - module = splitline[0].replace("RDEPENDS_perl", "RDEPENDS_${PN}") - depends = splitline[2].strip('"').replace("perl-module", "${PN}-module") + if bb.data.inherits_class('native', d): + module = splitline[0] + '-native' + depends = "perl-native" + else: + module = splitline[0].replace("RDEPENDS_perl", "RDEPENDS_${PN}") + depends = splitline[2].strip('"').replace("perl-module", "${PN}-module") d.appendVar(d.expand(module), " " + depends) } -PACKAGES_DYNAMIC_class-target += "^perl-module-.*" -PACKAGES_DYNAMIC_class-nativesdk += "^nativesdk-perl-module-.*" +python() { + if d.getVar('CLASSOVERRIDE') == "class-target": + d.setVar("PACKAGES_DYNAMIC", "^perl-module-.*(? ${B}/pkg-config-native - install -m755 ${B}/pkg-config-native ${D}${bindir}/pkg-config-native - sed -e "s|@PATH_NATIVE@|${PKG_CONFIG_PATH}|" \ - -e "s|@LIBDIR_NATIVE@|${PKG_CONFIG_LIBDIR}|" \ - < ${WORKDIR}/pkg-config-esdk.in > ${B}/pkg-config-esdk - install -m755 ${B}/pkg-config-esdk ${D}${bindir}/pkg-config-esdk -} - -# When using the RPM generated automatic package dependencies, some packages -# will end up requiring 'pkgconfig(pkg-config)'. Allow this behavior by -# specifying an appropriate provide. -RPROVIDES_${PN} += "pkgconfig(pkg-config)" - -# Include pkg.m4 in the main package, leaving libpkgconf dev files in -dev -FILES_${PN}-dev_remove = "${datadir}/aclocal" -FILES_${PN} += "${datadir}/aclocal" - -BBCLASSEXTEND += "native nativesdk" - -pkgconf_sstate_fixup_esdk () { - if [ "${BB_CURRENTTASK}" = "populate_sysroot_setscene" -a "${WITHIN_EXT_SDK}" = "1" ] ; then - pkgconfdir="${SSTATE_INSTDIR}/recipe-sysroot-native/${bindir_native}" - mv $pkgconfdir/pkg-config $pkgconfdir/pkg-config.real - lnr $pkgconfdir/pkg-config-esdk $pkgconfdir/pkg-config - sed -i -e "s|^pkg-config|pkg-config.real|" $pkgconfdir/pkg-config-native - fi -} - -SSTATEPOSTUNPACKFUNCS_append_class-native = " pkgconf_sstate_fixup_esdk" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/pkgconf/pkgconf_1.6.3.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/pkgconf/pkgconf_1.6.3.bb new file mode 100644 index 00000000..94bc112b --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/pkgconf/pkgconf_1.6.3.bb @@ -0,0 +1,69 @@ +SUMMARY = "pkgconf provides compiler and linker configuration for development frameworks." +DESCRIPTION = "pkgconf is a program which helps to configure compiler and linker \ +flags for development frameworks. It is similar to pkg-config from \ +freedesktop.org, providing additional functionality while also maintaining \ +compatibility." +HOMEPAGE = "http://pkgconf.org" +BUGTRACKER = "https://github.com/pkgconf/pkgconf/issues" +SECTION = "devel" +PROVIDES += "pkgconfig" +RPROVIDES_${PN} += "pkgconfig" +DEFAULT_PREFERENCE = "-1" + +# The pkgconf license seems to be functionally equivalent to BSD-2-Clause or +# ISC, but has different wording, so needs its own name. +LICENSE = "pkgconf" +LIC_FILES_CHKSUM = "file://COPYING;md5=2214222ec1a820bd6cc75167a56925e0" + +SRC_URI = "\ + https://distfiles.dereferenced.org/pkgconf/pkgconf-${PV}.tar.xz \ + file://pkg-config-wrapper \ + file://pkg-config-native.in \ + file://pkg-config-esdk.in \ +" +SRC_URI[md5sum] = "f93fb1be95a5cb62e43c219c82b5791a" +SRC_URI[sha256sum] = "61f0b31b0d5ea0e862b454a80c170f57bad47879c0c42bd8de89200ff62ea210" + +inherit autotools + +EXTRA_OECONF += "--with-pkg-config-dir='${libdir}/pkgconfig:${datadir}/pkgconfig'" + +do_install_append () { + # Install a wrapper which deals, as much as possible with pkgconf vs + # pkg-config compatibility issues. + install -m 0755 "${WORKDIR}/pkg-config-wrapper" "${D}${bindir}/pkg-config" +} + +do_install_append_class-native () { + # Install a pkg-config-native wrapper that will use the native sysroot instead + # of the MACHINE sysroot, for using pkg-config when building native tools. + sed -e "s|@PATH_NATIVE@|${PKG_CONFIG_PATH}|" \ + < ${WORKDIR}/pkg-config-native.in > ${B}/pkg-config-native + install -m755 ${B}/pkg-config-native ${D}${bindir}/pkg-config-native + sed -e "s|@PATH_NATIVE@|${PKG_CONFIG_PATH}|" \ + -e "s|@LIBDIR_NATIVE@|${PKG_CONFIG_LIBDIR}|" \ + < ${WORKDIR}/pkg-config-esdk.in > ${B}/pkg-config-esdk + install -m755 ${B}/pkg-config-esdk ${D}${bindir}/pkg-config-esdk +} + +# When using the RPM generated automatic package dependencies, some packages +# will end up requiring 'pkgconfig(pkg-config)'. Allow this behavior by +# specifying an appropriate provide. +RPROVIDES_${PN} += "pkgconfig(pkg-config)" + +# Include pkg.m4 in the main package, leaving libpkgconf dev files in -dev +FILES_${PN}-dev_remove = "${datadir}/aclocal" +FILES_${PN} += "${datadir}/aclocal" + +BBCLASSEXTEND += "native nativesdk" + +pkgconf_sstate_fixup_esdk () { + if [ "${BB_CURRENTTASK}" = "populate_sysroot_setscene" -a "${WITHIN_EXT_SDK}" = "1" ] ; then + pkgconfdir="${SSTATE_INSTDIR}/recipe-sysroot-native/${bindir_native}" + mv $pkgconfdir/pkg-config $pkgconfdir/pkg-config.real + lnr $pkgconfdir/pkg-config-esdk $pkgconfdir/pkg-config + sed -i -e "s|^pkg-config|pkg-config.real|" $pkgconfdir/pkg-config-native + fi +} + +SSTATEPOSTUNPACKFUNCS_append_class-native = " pkgconf_sstate_fixup_esdk" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/prelink/prelink_git.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/prelink/prelink_git.bb index b1261d59..f0946de2 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/prelink/prelink_git.bb +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/prelink/prelink_git.bb @@ -36,6 +36,9 @@ SRC_URI = "git://git.yoctoproject.org/prelink-cross.git;branch=cross_prelink_sta " UPSTREAM_CHECK_COMMITS = "1" +# error: error.h: No such file or directory +COMPATIBLE_HOST_libc-musl = 'null' + TARGET_OS_ORIG := "${TARGET_OS}" OVERRIDES_append = ":${TARGET_OS_ORIG}" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/pseudo/files/0001-Add-statx.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/pseudo/files/0001-Add-statx.patch new file mode 100644 index 00000000..f01e699d --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/pseudo/files/0001-Add-statx.patch @@ -0,0 +1,106 @@ +From 4e41a05de1f34ba00a68ca4f20fb49c4d1cbd2d0 Mon Sep 17 00:00:00 2001 +From: Richard Purdie +Date: Wed, 6 Nov 2019 12:17:46 +0000 +Subject: [PATCH] Add statx glibc/syscall support + +Modern distros (e.g. fedora30) are starting to use the new statx() syscall through +the newly exposed glibc wrapper function in software like coreutils (e.g. the ls +command). Add support to intercept this to pseudo. + +Signed-off-by: Richard Purdie +Upstream-Status: Submitted [Emailed to seebs] +--- + ports/linux/guts/statx.c | 48 ++++++++++++++++++++++++++++++++++++++++ + ports/linux/portdefs.h | 1 + + ports/linux/wrapfuncs.in | 1 + + 3 files changed, 50 insertions(+) + create mode 100644 ports/linux/guts/statx.c + +diff --git a/ports/linux/statx/guts/statx.c b/ports/linux/statx/guts/statx.c +new file mode 100644 +index 0000000..a3259c4 +--- /dev/null ++++ b/ports/linux/statx/guts/statx.c +@@ -0,0 +1,42 @@ ++/* ++ * Copyright (c) 2019 Linux Foundation ++ * Author: Richard Purdie ++ * ++ * SPDX-License-Identifier: LGPL-2.1-only ++ * ++ * int ++ * statx(int dirfd, const char *pathname, int flags, unsigned int mask, struct statx *statxbuf) { ++ * int rc = -1; ++ */ ++ pseudo_msg_t *msg; ++ PSEUDO_STATBUF buf; ++ int save_errno; ++ ++ rc = real_statx(dirfd, pathname, flags, mask, statxbuf); ++ save_errno = errno; ++ if (rc == -1) { ++ return rc; ++ } ++ ++ buf.st_uid = statxbuf->stx_uid; ++ buf.st_gid = statxbuf->stx_gid; ++ buf.st_dev = makedev(statxbuf->stx_dev_major, statxbuf->stx_dev_minor); ++ buf.st_ino = statxbuf->stx_ino; ++ buf.st_mode = statxbuf->stx_mode; ++ buf.st_rdev = makedev(statxbuf->stx_rdev_major, statxbuf->stx_rdev_minor); ++ buf.st_nlink = statxbuf->stx_nlink; ++ msg = pseudo_client_op(OP_STAT, 0, -1, dirfd, pathname, &buf); ++ if (msg && msg->result == RESULT_SUCCEED) { ++ pseudo_debug(PDBGF_FILE, "statx(path %s), flags %o, stat rc %d, stat uid %o\n", pathname, flags, rc, statxbuf->stx_uid); ++ statxbuf->stx_uid = msg->uid; ++ statxbuf->stx_gid = msg->gid; ++ statxbuf->stx_mode = msg->mode; ++ statxbuf->stx_rdev_major = major(msg->rdev); ++ statxbuf->stx_rdev_minor = minor(msg->rdev); ++ } else { ++ pseudo_debug(PDBGF_FILE, "statx(path %s) failed, flags %o, stat rc %d, stat uid %o\n", pathname, flags, rc, statxbuf->stx_uid); ++ } ++ errno = save_errno; ++/* return rc; ++ * } ++ */ +diff --git a/ports/linux/statx/portdefs.h b/ports/linux/statx/portdefs.h +new file mode 100644 +index 0000000..bf934dc +--- /dev/null ++++ b/ports/linux/statx/portdefs.h +@@ -0,0 +1,6 @@ ++/* ++ * SPDX-License-Identifier: LGPL-2.1-only ++ * ++ */ ++#include ++#include +diff --git a/ports/linux/statx/wrapfuncs.in b/ports/linux/statx/wrapfuncs.in +new file mode 100644 +index 0000000..c9cd4c3 +--- /dev/null ++++ b/ports/linux/statx/wrapfuncs.in +@@ -0,0 +1 @@ ++int statx(int dirfd, const char *pathname, int flags, unsigned int mask, struct statx *statxbuf); +diff --git a/ports/linux/subports b/ports/linux/subports +index a29044a..49081bf 100755 +--- a/ports/linux/subports ++++ b/ports/linux/subports +@@ -54,3 +54,13 @@ else + fi + rm -f dummy.c dummy.o + ++cat > dummy.c < ++struct statx x; ++EOF ++if ${CC} -c -o dummy.o dummy.c >/dev/null 2>&1; then ++ echo "linux/statx" ++fi ++rm -f dummy.c dummy.o ++ +-- +2.17.1 + diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/pseudo/files/0001-maketables-wrappers-use-Python-3.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/pseudo/files/0001-maketables-wrappers-use-Python-3.patch new file mode 100644 index 00000000..b2dbdad2 --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/pseudo/files/0001-maketables-wrappers-use-Python-3.patch @@ -0,0 +1,34 @@ +From dbd34b1b2af8fbf44a0d5c37abe3448405819823 Mon Sep 17 00:00:00 2001 +From: Alexander Kanavin +Date: Wed, 28 Aug 2019 19:20:29 +0200 +Subject: [PATCH] maketables/wrappers: use Python 3 + +Changelog indicates they should be compatible. + +Upstream-Status: Pending +Signed-off-by: Alexander Kanavin +--- + maketables | 2 +- + makewrappers | 2 +- + 2 files changed, 2 insertions(+), 2 deletions(-) + +diff --git a/maketables b/maketables +index a211772..52285e2 100755 +--- a/maketables ++++ b/maketables +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/usr/bin/env python3 + # + # Copyright (c) 2008-2010, 2013 Wind River Systems, Inc. + # +diff --git a/makewrappers b/makewrappers +index e84607d..b34f7eb 100755 +--- a/makewrappers ++++ b/makewrappers +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/usr/bin/env python3 + # + # Copyright (c) 2008-2011,2013 Wind River Systems, Inc. + # diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/pseudo/pseudo.inc b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/pseudo/pseudo.inc index 8b05735b..7ff8e449 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/pseudo/pseudo.inc +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/pseudo/pseudo.inc @@ -4,7 +4,7 @@ SUMMARY = "Pseudo gives fake root capabilities to a normal user" HOMEPAGE = "http://git.yoctoproject.org/cgit/cgit.cgi/pseudo" -LIC_FILES_CHKSUM = "file://COPYING;md5=243b725d71bb5df4a1e5920b344b86ad" +LIC_FILES_CHKSUM = "file://COPYING;md5=a1d8023a6f953ac6ea4af765ff62d574" SECTION = "base" LICENSE = "LGPL2.1" DEPENDS = "sqlite3 attr" @@ -30,23 +30,10 @@ PSEUDO_EXTRA_OPTS ?= "--enable-force-async --without-passwd-fallback --enable-ep # Compile for the local machine arch... do_compile () { - SQLITE_LDADD='$(SQLITE)/$(SQLITE_LIB)/libsqlite3.a' - for sqlite_link_opt in $(pkg-config sqlite3 --libs --static) - do - case "$sqlite_link_opt" in - -lsqlite3) - ;; - -l*) - SQLITE_LDADD="${SQLITE_LDADD} ${sqlite_link_opt}" - ;; - *) - ;; - esac - done if [ "${SITEINFO_BITS}" = "64" ]; then - ${S}/configure ${PSEUDO_EXTRA_OPTS} --prefix=${prefix} --libdir=${prefix}/lib/pseudo/lib${SITEINFO_BITS} --with-sqlite-lib=${baselib} --with-sqlite=${STAGING_DIR_TARGET}${exec_prefix} --cflags="${CFLAGS}" --bits=${SITEINFO_BITS} --with-static-sqlite="$SQLITE_LDADD" --without-rpath + ${S}/configure ${PSEUDO_EXTRA_OPTS} --prefix=${prefix} --libdir=${prefix}/lib/pseudo/lib${SITEINFO_BITS} --with-sqlite-lib=${baselib} --with-sqlite=${STAGING_DIR_TARGET}${exec_prefix} --cflags="${CFLAGS}" --bits=${SITEINFO_BITS} --without-rpath else - ${S}/configure ${PSEUDO_EXTRA_OPTS} --prefix=${prefix} --libdir=${prefix}/lib/pseudo/lib --with-sqlite-lib=${baselib} --with-sqlite=${STAGING_DIR_TARGET}${exec_prefix} --cflags="${CFLAGS}" --bits=${SITEINFO_BITS} --with-static-sqlite="$SQLITE_LDADD" --without-rpath + ${S}/configure ${PSEUDO_EXTRA_OPTS} --prefix=${prefix} --libdir=${prefix}/lib/pseudo/lib --with-sqlite-lib=${baselib} --with-sqlite=${STAGING_DIR_TARGET}${exec_prefix} --cflags="${CFLAGS}" --bits=${SITEINFO_BITS} --without-rpath fi oe_runmake ${MAKEOPTS} } diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/pseudo/pseudo_git.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/pseudo/pseudo_git.bb index 51db84c4..1f2df4a4 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/pseudo/pseudo_git.bb +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/pseudo/pseudo_git.bb @@ -6,9 +6,13 @@ SRC_URI = "git://git.yoctoproject.org/pseudo \ file://fallback-group \ file://moreretries.patch \ file://toomanyfiles.patch \ + file://0001-maketables-wrappers-use-Python-3.patch \ + file://0001-Add-statx.patch \ " -SRCREV = "3fa7c853e0bcd6fe23f7524c2a3c9e3af90901c3" +SRCREV = "060058bb29f70b244e685b3c704eb0641b736f73" S = "${WORKDIR}/git" PV = "1.9.0+git${SRCPV}" +# error: use of undeclared identifier '_STAT_VER' +COMPATIBLE_HOST_libc-musl = 'null' diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/python-numpy/files/0001-Don-t-search-usr-and-so-on-for-libraries-by-default-.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/python-numpy/files/0001-Don-t-search-usr-and-so-on-for-libraries-by-default-.patch index 8fe0d1a2..98a97058 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/python-numpy/files/0001-Don-t-search-usr-and-so-on-for-libraries-by-default-.patch +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/python-numpy/files/0001-Don-t-search-usr-and-so-on-for-libraries-by-default-.patch @@ -1,4 +1,4 @@ -From c14554c7e2fff8dd559dfb41e7dd11392c6f85e3 Mon Sep 17 00:00:00 2001 +From 672a75c8417ce08db9e31fc415ec445479231d5a Mon Sep 17 00:00:00 2001 From: Alexander Kanavin Date: Thu, 10 Dec 2015 13:20:30 +0200 Subject: [PATCH] Don't search /usr and so on for libraries by default to @@ -10,14 +10,14 @@ Signed-off-by: Ross Burton Signed-off-by: Alexander Kanavin --- - numpy/distutils/system_info.py | 50 ++++------------------------------ - 1 file changed, 6 insertions(+), 44 deletions(-) + numpy/distutils/system_info.py | 42 ++++------------------------------ + 1 file changed, 5 insertions(+), 37 deletions(-) diff --git a/numpy/distutils/system_info.py b/numpy/distutils/system_info.py -index 2424943..bf56a6d 100644 +index ba2b1f4..f94dce1 100644 --- a/numpy/distutils/system_info.py +++ b/numpy/distutils/system_info.py -@@ -274,51 +274,13 @@ if sys.platform == 'win32': +@@ -278,45 +278,13 @@ if sys.platform == 'win32': add_system_root(os.path.join(conda_dir, 'Library')) else: @@ -45,31 +45,24 @@ index 2424943..bf56a6d 100644 - default_x11_include_dirs.extend(['/usr/lib/X11/include', - '/usr/include/X11']) - -- import subprocess as sp -- tmp = None -- try: -- # Explicitly open/close file to avoid ResourceWarning when -- # tests are run in debug mode Python 3. -- tmp = open(os.devnull, 'w') -- p = sp.Popen(["gcc", "-print-multiarch"], stdout=sp.PIPE, -- stderr=tmp) -- except (OSError, DistutilsError): -- # OSError if gcc is not installed, or SandboxViolation (DistutilsError -- # subclass) if an old setuptools bug is triggered (see gh-3160). -- pass -- else: -- triplet = str(p.communicate()[0].decode().strip()) -- if p.returncode == 0: -- # gcc supports the "-print-multiarch" option -- default_x11_lib_dirs += [os.path.join("/usr/lib/", triplet)] -- default_lib_dirs += [os.path.join("/usr/lib/", triplet)] -- finally: -- if tmp is not None: -- tmp.close() +- with open(os.devnull, 'w') as tmp: +- try: +- p = subprocess.Popen(["gcc", "-print-multiarch"], stdout=subprocess.PIPE, +- stderr=tmp) +- except (OSError, DistutilsError): +- # OSError if gcc is not installed, or SandboxViolation (DistutilsError +- # subclass) if an old setuptools bug is triggered (see gh-3160). +- pass +- else: +- triplet = str(p.communicate()[0].decode().strip()) +- if p.returncode == 0: +- # gcc supports the "-print-multiarch" option +- default_x11_lib_dirs += [os.path.join("/usr/lib/", triplet)] +- default_lib_dirs += [os.path.join("/usr/lib/", triplet)] + default_lib_dirs = libpaths(['/deadir/lib'], platform_bits) + default_include_dirs = ['/deaddir/include'] + default_src_dirs = ['.', '/deaddir/src'] -+ + + default_x11_lib_dirs = libpaths(['/deaddir/lib'], platform_bits) + default_x11_include_dirs = ['/deaddir/include'] diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/python-numpy/files/0001-numpy-random-setup.py-remove-the-detection-of-x86-ta.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/python-numpy/files/0001-numpy-random-setup.py-remove-the-detection-of-x86-ta.patch new file mode 100644 index 00000000..ebb2a6f9 --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/python-numpy/files/0001-numpy-random-setup.py-remove-the-detection-of-x86-ta.patch @@ -0,0 +1,32 @@ +From b881e0b2ba9cf1a4aa351a1c1ea90b1e1776ce21 Mon Sep 17 00:00:00 2001 +From: Alexander Kanavin +Date: Mon, 12 Aug 2019 15:37:36 +0200 +Subject: [PATCH] numpy/random/setup.py: remove the detection of x86 targets + via uname() + +This was badly breaking compilation for ARM targets (and possibly +other non-x86 targets); if -msse2 is desirable for x86 builds it has +to be passed through another channel. + +Upstream-Status: Inappropriate [oe-core specific] +Signed-off-by: Alexander Kanavin +--- + numpy/random/setup.py | 5 ----- + 1 file changed, 5 deletions(-) + +diff --git a/numpy/random/setup.py b/numpy/random/setup.py +index a1bf3b8..60fb534 100644 +--- a/numpy/random/setup.py ++++ b/numpy/random/setup.py +@@ -49,11 +49,6 @@ def configuration(parent_package='', top_path=None): + elif not is_msvc: + # Some bit generators require c99 + EXTRA_COMPILE_ARGS += ['-std=c99'] +- INTEL_LIKE = any([val in k.lower() for k in platform.uname() +- for val in ('x86', 'i686', 'i386', 'amd64')]) +- if INTEL_LIKE: +- # Assumes GCC or GCC-like compiler +- EXTRA_COMPILE_ARGS += ['-msse2'] + + # Use legacy integer variable sizes + LEGACY_DEFS = [('NP_RANDOM_LEGACY', '1')] diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/python-numpy/files/aarch64/_numpyconfig.h b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/python-numpy/files/aarch64/_numpyconfig.h deleted file mode 100644 index 109deb04..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/python-numpy/files/aarch64/_numpyconfig.h +++ /dev/null @@ -1,32 +0,0 @@ -#define NPY_HAVE_ENDIAN_H 1 -#define NPY_SIZEOF_SHORT SIZEOF_SHORT -#define NPY_SIZEOF_INT SIZEOF_INT -#define NPY_SIZEOF_LONG SIZEOF_LONG -#define NPY_SIZEOF_FLOAT 4 -#define NPY_SIZEOF_COMPLEX_FLOAT 8 -#define NPY_SIZEOF_DOUBLE 8 -#define NPY_SIZEOF_COMPLEX_DOUBLE 16 -#define NPY_SIZEOF_LONGDOUBLE 16 -#define NPY_SIZEOF_COMPLEX_LONGDOUBLE 32 -#define NPY_SIZEOF_PY_INTPTR_T 8 -#define NPY_SIZEOF_PY_LONG_LONG 8 -#define NPY_SIZEOF_LONGLONG 8 -#define NPY_SIZEOF_OFF_T 8 -#define NPY_NO_SMP 0 -#define NPY_HAVE_DECL_ISNAN -#define NPY_HAVE_DECL_ISINF -#define NPY_HAVE_DECL_ISFINITE -#define NPY_HAVE_DECL_SIGNBIT -#define NPY_USE_C99_COMPLEX 1 -#define NPY_HAVE_COMPLEX_DOUBLE 1 -#define NPY_HAVE_COMPLEX_FLOAT 1 -#define NPY_HAVE_COMPLEX_LONG_DOUBLE 1 -#define NPY_ENABLE_SEPARATE_COMPILATION 1 -#define NPY_USE_C99_FORMATS 1 -#define NPY_VISIBILITY_HIDDEN __attribute__((visibility("hidden"))) -#define NPY_ABI_VERSION 0x01000009 -#define NPY_API_VERSION 0x0000000A - -#ifndef __STDC_FORMAT_MACROS -#define __STDC_FORMAT_MACROS 1 -#endif diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/python-numpy/files/aarch64/config.h b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/python-numpy/files/aarch64/config.h deleted file mode 100644 index c30b868f..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/python-numpy/files/aarch64/config.h +++ /dev/null @@ -1,139 +0,0 @@ -#define HAVE_ENDIAN_H 1 -#define SIZEOF_PY_INTPTR_T 8 -#define SIZEOF_PY_LONG_LONG 8 -#define MATHLIB m -#define HAVE_SIN 1 -#define HAVE_COS 1 -#define HAVE_TAN 1 -#define HAVE_SINH 1 -#define HAVE_COSH 1 -#define HAVE_TANH 1 -#define HAVE_FABS 1 -#define HAVE_FLOOR 1 -#define HAVE_CEIL 1 -#define HAVE_SQRT 1 -#define HAVE_LOG10 1 -#define HAVE_LOG 1 -#define HAVE_EXP 1 -#define HAVE_ASIN 1 -#define HAVE_ACOS 1 -#define HAVE_ATAN 1 -#define HAVE_FMOD 1 -#define HAVE_MODF 1 -#define HAVE_FREXP 1 -#define HAVE_LDEXP 1 -#define HAVE_RINT 1 -#define HAVE_TRUNC 1 -#define HAVE_EXP2 1 -#define HAVE_LOG2 1 -#define HAVE_ATAN2 1 -#define HAVE_POW 1 -#define HAVE_NEXTAFTER 1 -#define HAVE_SINF 1 -#define HAVE_COSF 1 -#define HAVE_TANF 1 -#define HAVE_SINHF 1 -#define HAVE_COSHF 1 -#define HAVE_TANHF 1 -#define HAVE_FABSF 1 -#define HAVE_FLOORF 1 -#define HAVE_CEILF 1 -#define HAVE_RINTF 1 -#define HAVE_TRUNCF 1 -#define HAVE_SQRTF 1 -#define HAVE_LOG10F 1 -#define HAVE_LOGF 1 -#define HAVE_LOG1PF 1 -#define HAVE_EXPF 1 -#define HAVE_EXPM1F 1 -#define HAVE_ASINF 1 -#define HAVE_ACOSF 1 -#define HAVE_ATANF 1 -#define HAVE_ASINHF 1 -#define HAVE_ACOSHF 1 -#define HAVE_ATANHF 1 -#define HAVE_HYPOTF 1 -#define HAVE_ATAN2F 1 -#define HAVE_POWF 1 -#define HAVE_FMODF 1 -#define HAVE_MODFF 1 -#define HAVE_FREXPF 1 -#define HAVE_LDEXPF 1 -#define HAVE_EXP2F 1 -#define HAVE_LOG2F 1 -#define HAVE_COPYSIGNF 1 -#define HAVE_NEXTAFTERF 1 -#define HAVE_SINL 1 -#define HAVE_COSL 1 -#define HAVE_TANL 1 -#define HAVE_SINHL 1 -#define HAVE_COSHL 1 -#define HAVE_TANHL 1 -#define HAVE_FABSL 1 -#define HAVE_FLOORL 1 -#define HAVE_CEILL 1 -#define HAVE_RINTL 1 -#define HAVE_TRUNCL 1 -#define HAVE_SQRTL 1 -#define HAVE_LOG10L 1 -#define HAVE_LOGL 1 -#define HAVE_LOG1PL 1 -#define HAVE_EXPL 1 -#define HAVE_EXPM1L 1 -#define HAVE_ASINL 1 -#define HAVE_ACOSL 1 -#define HAVE_ATANL 1 -#define HAVE_ASINHL 1 -#define HAVE_ACOSHL 1 -#define HAVE_ATANHL 1 -#define HAVE_HYPOTL 1 -#define HAVE_ATAN2L 1 -#define HAVE_POWL 1 -#define HAVE_FMODL 1 -#define HAVE_MODFL 1 -#define HAVE_FREXPL 1 -#define HAVE_LDEXPL 1 -#define HAVE_EXP2L 1 -#define HAVE_LOG2L 1 -#define HAVE_COPYSIGNL 1 -#define HAVE_NEXTAFTERL 1 -#define HAVE_DECL_SIGNBIT -#define HAVE_COMPLEX_H 1 -#define HAVE_CREAL 1 -#define HAVE_CIMAG 1 -#define HAVE_CABS 1 -#define HAVE_CARG 1 -#define HAVE_CEXP 1 -#define HAVE_CSQRT 1 -#define HAVE_CLOG 1 -#define HAVE_CCOS 1 -#define HAVE_CSIN 1 -#define HAVE_CPOW 1 -#define HAVE_CREALF 1 -#define HAVE_CIMAGF 1 -#define HAVE_CABSF 1 -#define HAVE_CARGF 1 -#define HAVE_CEXPF 1 -#define HAVE_CSQRTF 1 -#define HAVE_CLOGF 1 -#define HAVE_CCOSF 1 -#define HAVE_CSINF 1 -#define HAVE_CPOWF 1 -#define HAVE_CREALL 1 -#define HAVE_CIMAGL 1 -#define HAVE_CABSL 1 -#define HAVE_CARGL 1 -#define HAVE_CEXPL 1 -#define HAVE_CSQRTL 1 -#define HAVE_CLOGL 1 -#define HAVE_CCOSL 1 -#define HAVE_CSINL 1 -#define HAVE_CPOWL 1 -#define HAVE_LDOUBLE_IEEE_QUAD_LE 1 -#ifndef __cplusplus -/* #undef inline */ -#endif - -#ifndef _NPY_NPY_CONFIG_H_ -#error config.h should never be included directly, include npy_config.h instead -#endif diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/python-numpy/files/arm/config.h b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/python-numpy/files/arm/config.h deleted file mode 100644 index 17ef186d..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/python-numpy/files/arm/config.h +++ /dev/null @@ -1,21 +0,0 @@ -/* ./src.linux-i686-2.5/numpy/core/include/numpy/config.h */ -/* #define SIZEOF_SHORT 2 */ -/* #define SIZEOF_INT 4 */ -/* #define SIZEOF_LONG 4 */ -/* #define SIZEOF_FLOAT 4 */ -/* #define SIZEOF_DOUBLE 8 */ -#define SIZEOF_LONG_DOUBLE 12 -#define SIZEOF_PY_INTPTR_T 4 -/* #define SIZEOF_LONG_LONG 8 */ -#define SIZEOF_PY_LONG_LONG 8 -/* #define CHAR_BIT 8 */ -#define MATHLIB m -#define HAVE_FLOAT_FUNCS -#define HAVE_LOG1P -#define HAVE_EXPM1 -#define HAVE_INVERSE_HYPERBOLIC -#define HAVE_INVERSE_HYPERBOLIC_FLOAT -#define HAVE_ISNAN -#define HAVE_ISINF -#define HAVE_RINT - diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/python-numpy/files/arm/numpyconfig.h b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/python-numpy/files/arm/numpyconfig.h deleted file mode 100644 index c4bf6547..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/python-numpy/files/arm/numpyconfig.h +++ /dev/null @@ -1,17 +0,0 @@ -/* cat ./src.linux-i686-2.5/numpy/core/include/numpy/numpyconfig.h */ -/* - * * This file is generated by numpy/core/setup.pyc. DO NOT EDIT - * */ -#define NPY_SIZEOF_SHORT 2 -#define NPY_SIZEOF_INT 4 -#define NPY_SIZEOF_LONG 4 -#define NPY_SIZEOF_FLOAT 4 -#define NPY_SIZEOF_DOUBLE 8 -#define NPY_SIZEOF_LONGDOUBLE 12 -#define NPY_SIZEOF_PY_INTPTR_T 4 -#define NPY_NO_SMP 0 - -#define NPY_SIZEOF_LONGLONG 8 -#define NPY_SIZEOF_PY_LONG_LONG 8 -/* #define CHAR_BIT 8 */ - diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/python-numpy/files/armeb/config.h b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/python-numpy/files/armeb/config.h deleted file mode 100644 index 17ef186d..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/python-numpy/files/armeb/config.h +++ /dev/null @@ -1,21 +0,0 @@ -/* ./src.linux-i686-2.5/numpy/core/include/numpy/config.h */ -/* #define SIZEOF_SHORT 2 */ -/* #define SIZEOF_INT 4 */ -/* #define SIZEOF_LONG 4 */ -/* #define SIZEOF_FLOAT 4 */ -/* #define SIZEOF_DOUBLE 8 */ -#define SIZEOF_LONG_DOUBLE 12 -#define SIZEOF_PY_INTPTR_T 4 -/* #define SIZEOF_LONG_LONG 8 */ -#define SIZEOF_PY_LONG_LONG 8 -/* #define CHAR_BIT 8 */ -#define MATHLIB m -#define HAVE_FLOAT_FUNCS -#define HAVE_LOG1P -#define HAVE_EXPM1 -#define HAVE_INVERSE_HYPERBOLIC -#define HAVE_INVERSE_HYPERBOLIC_FLOAT -#define HAVE_ISNAN -#define HAVE_ISINF -#define HAVE_RINT - diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/python-numpy/files/armeb/numpyconfig.h b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/python-numpy/files/armeb/numpyconfig.h deleted file mode 100644 index c4bf6547..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/python-numpy/files/armeb/numpyconfig.h +++ /dev/null @@ -1,17 +0,0 @@ -/* cat ./src.linux-i686-2.5/numpy/core/include/numpy/numpyconfig.h */ -/* - * * This file is generated by numpy/core/setup.pyc. DO NOT EDIT - * */ -#define NPY_SIZEOF_SHORT 2 -#define NPY_SIZEOF_INT 4 -#define NPY_SIZEOF_LONG 4 -#define NPY_SIZEOF_FLOAT 4 -#define NPY_SIZEOF_DOUBLE 8 -#define NPY_SIZEOF_LONGDOUBLE 12 -#define NPY_SIZEOF_PY_INTPTR_T 4 -#define NPY_NO_SMP 0 - -#define NPY_SIZEOF_LONGLONG 8 -#define NPY_SIZEOF_PY_LONG_LONG 8 -/* #define CHAR_BIT 8 */ - diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/python-numpy/files/mipsarchn32eb/_numpyconfig.h b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/python-numpy/files/mipsarchn32eb/_numpyconfig.h deleted file mode 100644 index 8e2b5d09..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/python-numpy/files/mipsarchn32eb/_numpyconfig.h +++ /dev/null @@ -1,31 +0,0 @@ -#define NPY_HAVE_ENDIAN_H 1 -#define NPY_SIZEOF_SHORT SIZEOF_SHORT -#define NPY_SIZEOF_INT SIZEOF_INT -#define NPY_SIZEOF_LONG SIZEOF_LONG -#define NPY_SIZEOF_FLOAT 4 -#define NPY_SIZEOF_COMPLEX_FLOAT 8 -#define NPY_SIZEOF_DOUBLE 8 -#define NPY_SIZEOF_COMPLEX_DOUBLE 16 -#define NPY_SIZEOF_LONGDOUBLE 16 -#define NPY_SIZEOF_COMPLEX_LONGDOUBLE 32 -#define NPY_ENABLE_SEPARATE_COMPILATION 1 -#define NPY_SIZEOF_PY_INTPTR_T 8 -#define NPY_SIZEOF_PY_LONG_LONG 8 -#define NPY_SIZEOF_LONGLONG 8 -#define NPY_NO_SMP 0 -#define NPY_HAVE_DECL_ISNAN -#define NPY_HAVE_DECL_ISINF -#define NPY_HAVE_DECL_ISFINITE -#define NPY_HAVE_DECL_SIGNBIT -#define NPY_USE_C99_COMPLEX 1 -#define NPY_HAVE_COMPLEX_DOUBLE 1 -#define NPY_HAVE_COMPLEX_FLOAT 1 -#define NPY_HAVE_COMPLEX_LONG_DOUBLE 1 -#define NPY_USE_C99_FORMATS 1 -#define NPY_VISIBILITY_HIDDEN __attribute__((visibility("hidden"))) -#define NPY_ABI_VERSION 0x01000009 -#define NPY_API_VERSION 0x0000000A - -#ifndef __STDC_FORMAT_MACROS -#define __STDC_FORMAT_MACROS 1 -#endif diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/python-numpy/files/mipsarchn32eb/config.h b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/python-numpy/files/mipsarchn32eb/config.h deleted file mode 100644 index c30b868f..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/python-numpy/files/mipsarchn32eb/config.h +++ /dev/null @@ -1,139 +0,0 @@ -#define HAVE_ENDIAN_H 1 -#define SIZEOF_PY_INTPTR_T 8 -#define SIZEOF_PY_LONG_LONG 8 -#define MATHLIB m -#define HAVE_SIN 1 -#define HAVE_COS 1 -#define HAVE_TAN 1 -#define HAVE_SINH 1 -#define HAVE_COSH 1 -#define HAVE_TANH 1 -#define HAVE_FABS 1 -#define HAVE_FLOOR 1 -#define HAVE_CEIL 1 -#define HAVE_SQRT 1 -#define HAVE_LOG10 1 -#define HAVE_LOG 1 -#define HAVE_EXP 1 -#define HAVE_ASIN 1 -#define HAVE_ACOS 1 -#define HAVE_ATAN 1 -#define HAVE_FMOD 1 -#define HAVE_MODF 1 -#define HAVE_FREXP 1 -#define HAVE_LDEXP 1 -#define HAVE_RINT 1 -#define HAVE_TRUNC 1 -#define HAVE_EXP2 1 -#define HAVE_LOG2 1 -#define HAVE_ATAN2 1 -#define HAVE_POW 1 -#define HAVE_NEXTAFTER 1 -#define HAVE_SINF 1 -#define HAVE_COSF 1 -#define HAVE_TANF 1 -#define HAVE_SINHF 1 -#define HAVE_COSHF 1 -#define HAVE_TANHF 1 -#define HAVE_FABSF 1 -#define HAVE_FLOORF 1 -#define HAVE_CEILF 1 -#define HAVE_RINTF 1 -#define HAVE_TRUNCF 1 -#define HAVE_SQRTF 1 -#define HAVE_LOG10F 1 -#define HAVE_LOGF 1 -#define HAVE_LOG1PF 1 -#define HAVE_EXPF 1 -#define HAVE_EXPM1F 1 -#define HAVE_ASINF 1 -#define HAVE_ACOSF 1 -#define HAVE_ATANF 1 -#define HAVE_ASINHF 1 -#define HAVE_ACOSHF 1 -#define HAVE_ATANHF 1 -#define HAVE_HYPOTF 1 -#define HAVE_ATAN2F 1 -#define HAVE_POWF 1 -#define HAVE_FMODF 1 -#define HAVE_MODFF 1 -#define HAVE_FREXPF 1 -#define HAVE_LDEXPF 1 -#define HAVE_EXP2F 1 -#define HAVE_LOG2F 1 -#define HAVE_COPYSIGNF 1 -#define HAVE_NEXTAFTERF 1 -#define HAVE_SINL 1 -#define HAVE_COSL 1 -#define HAVE_TANL 1 -#define HAVE_SINHL 1 -#define HAVE_COSHL 1 -#define HAVE_TANHL 1 -#define HAVE_FABSL 1 -#define HAVE_FLOORL 1 -#define HAVE_CEILL 1 -#define HAVE_RINTL 1 -#define HAVE_TRUNCL 1 -#define HAVE_SQRTL 1 -#define HAVE_LOG10L 1 -#define HAVE_LOGL 1 -#define HAVE_LOG1PL 1 -#define HAVE_EXPL 1 -#define HAVE_EXPM1L 1 -#define HAVE_ASINL 1 -#define HAVE_ACOSL 1 -#define HAVE_ATANL 1 -#define HAVE_ASINHL 1 -#define HAVE_ACOSHL 1 -#define HAVE_ATANHL 1 -#define HAVE_HYPOTL 1 -#define HAVE_ATAN2L 1 -#define HAVE_POWL 1 -#define HAVE_FMODL 1 -#define HAVE_MODFL 1 -#define HAVE_FREXPL 1 -#define HAVE_LDEXPL 1 -#define HAVE_EXP2L 1 -#define HAVE_LOG2L 1 -#define HAVE_COPYSIGNL 1 -#define HAVE_NEXTAFTERL 1 -#define HAVE_DECL_SIGNBIT -#define HAVE_COMPLEX_H 1 -#define HAVE_CREAL 1 -#define HAVE_CIMAG 1 -#define HAVE_CABS 1 -#define HAVE_CARG 1 -#define HAVE_CEXP 1 -#define HAVE_CSQRT 1 -#define HAVE_CLOG 1 -#define HAVE_CCOS 1 -#define HAVE_CSIN 1 -#define HAVE_CPOW 1 -#define HAVE_CREALF 1 -#define HAVE_CIMAGF 1 -#define HAVE_CABSF 1 -#define HAVE_CARGF 1 -#define HAVE_CEXPF 1 -#define HAVE_CSQRTF 1 -#define HAVE_CLOGF 1 -#define HAVE_CCOSF 1 -#define HAVE_CSINF 1 -#define HAVE_CPOWF 1 -#define HAVE_CREALL 1 -#define HAVE_CIMAGL 1 -#define HAVE_CABSL 1 -#define HAVE_CARGL 1 -#define HAVE_CEXPL 1 -#define HAVE_CSQRTL 1 -#define HAVE_CLOGL 1 -#define HAVE_CCOSL 1 -#define HAVE_CSINL 1 -#define HAVE_CPOWL 1 -#define HAVE_LDOUBLE_IEEE_QUAD_LE 1 -#ifndef __cplusplus -/* #undef inline */ -#endif - -#ifndef _NPY_NPY_CONFIG_H_ -#error config.h should never be included directly, include npy_config.h instead -#endif diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/python-numpy/files/mipsarchn32el/_numpyconfig.h b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/python-numpy/files/mipsarchn32el/_numpyconfig.h deleted file mode 100644 index 8e2b5d09..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/python-numpy/files/mipsarchn32el/_numpyconfig.h +++ /dev/null @@ -1,31 +0,0 @@ -#define NPY_HAVE_ENDIAN_H 1 -#define NPY_SIZEOF_SHORT SIZEOF_SHORT -#define NPY_SIZEOF_INT SIZEOF_INT -#define NPY_SIZEOF_LONG SIZEOF_LONG -#define NPY_SIZEOF_FLOAT 4 -#define NPY_SIZEOF_COMPLEX_FLOAT 8 -#define NPY_SIZEOF_DOUBLE 8 -#define NPY_SIZEOF_COMPLEX_DOUBLE 16 -#define NPY_SIZEOF_LONGDOUBLE 16 -#define NPY_SIZEOF_COMPLEX_LONGDOUBLE 32 -#define NPY_ENABLE_SEPARATE_COMPILATION 1 -#define NPY_SIZEOF_PY_INTPTR_T 8 -#define NPY_SIZEOF_PY_LONG_LONG 8 -#define NPY_SIZEOF_LONGLONG 8 -#define NPY_NO_SMP 0 -#define NPY_HAVE_DECL_ISNAN -#define NPY_HAVE_DECL_ISINF -#define NPY_HAVE_DECL_ISFINITE -#define NPY_HAVE_DECL_SIGNBIT -#define NPY_USE_C99_COMPLEX 1 -#define NPY_HAVE_COMPLEX_DOUBLE 1 -#define NPY_HAVE_COMPLEX_FLOAT 1 -#define NPY_HAVE_COMPLEX_LONG_DOUBLE 1 -#define NPY_USE_C99_FORMATS 1 -#define NPY_VISIBILITY_HIDDEN __attribute__((visibility("hidden"))) -#define NPY_ABI_VERSION 0x01000009 -#define NPY_API_VERSION 0x0000000A - -#ifndef __STDC_FORMAT_MACROS -#define __STDC_FORMAT_MACROS 1 -#endif diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/python-numpy/files/mipsarchn32el/config.h b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/python-numpy/files/mipsarchn32el/config.h deleted file mode 100644 index 48727039..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/python-numpy/files/mipsarchn32el/config.h +++ /dev/null @@ -1,138 +0,0 @@ -#define SIZEOF_PY_INTPTR_T 8 -#define SIZEOF_PY_LONG_LONG 8 -#define MATHLIB m -#define HAVE_SIN 1 -#define HAVE_COS 1 -#define HAVE_TAN 1 -#define HAVE_SINH 1 -#define HAVE_COSH 1 -#define HAVE_TANH 1 -#define HAVE_FABS 1 -#define HAVE_FLOOR 1 -#define HAVE_CEIL 1 -#define HAVE_SQRT 1 -#define HAVE_LOG10 1 -#define HAVE_LOG 1 -#define HAVE_EXP 1 -#define HAVE_ASIN 1 -#define HAVE_ACOS 1 -#define HAVE_ATAN 1 -#define HAVE_FMOD 1 -#define HAVE_MODF 1 -#define HAVE_FREXP 1 -#define HAVE_LDEXP 1 -#define HAVE_RINT 1 -#define HAVE_TRUNC 1 -#define HAVE_EXP2 1 -#define HAVE_LOG2 1 -#define HAVE_ATAN2 1 -#define HAVE_POW 1 -#define HAVE_NEXTAFTER 1 -#define HAVE_SINF 1 -#define HAVE_COSF 1 -#define HAVE_TANF 1 -#define HAVE_SINHF 1 -#define HAVE_COSHF 1 -#define HAVE_TANHF 1 -#define HAVE_FABSF 1 -#define HAVE_FLOORF 1 -#define HAVE_CEILF 1 -#define HAVE_RINTF 1 -#define HAVE_TRUNCF 1 -#define HAVE_SQRTF 1 -#define HAVE_LOG10F 1 -#define HAVE_LOGF 1 -#define HAVE_LOG1PF 1 -#define HAVE_EXPF 1 -#define HAVE_EXPM1F 1 -#define HAVE_ASINF 1 -#define HAVE_ACOSF 1 -#define HAVE_ATANF 1 -#define HAVE_ASINHF 1 -#define HAVE_ACOSHF 1 -#define HAVE_ATANHF 1 -#define HAVE_HYPOTF 1 -#define HAVE_ATAN2F 1 -#define HAVE_POWF 1 -#define HAVE_FMODF 1 -#define HAVE_MODFF 1 -#define HAVE_FREXPF 1 -#define HAVE_LDEXPF 1 -#define HAVE_EXP2F 1 -#define HAVE_LOG2F 1 -#define HAVE_COPYSIGNF 1 -#define HAVE_NEXTAFTERF 1 -#define HAVE_SINL 1 -#define HAVE_COSL 1 -#define HAVE_TANL 1 -#define HAVE_SINHL 1 -#define HAVE_COSHL 1 -#define HAVE_TANHL 1 -#define HAVE_FABSL 1 -#define HAVE_FLOORL 1 -#define HAVE_CEILL 1 -#define HAVE_RINTL 1 -#define HAVE_TRUNCL 1 -#define HAVE_SQRTL 1 -#define HAVE_LOG10L 1 -#define HAVE_LOGL 1 -#define HAVE_LOG1PL 1 -#define HAVE_EXPL 1 -#define HAVE_EXPM1L 1 -#define HAVE_ASINL 1 -#define HAVE_ACOSL 1 -#define HAVE_ATANL 1 -#define HAVE_ASINHL 1 -#define HAVE_ACOSHL 1 -#define HAVE_ATANHL 1 -#define HAVE_HYPOTL 1 -#define HAVE_ATAN2L 1 -#define HAVE_POWL 1 -#define HAVE_FMODL 1 -#define HAVE_MODFL 1 -#define HAVE_FREXPL 1 -#define HAVE_LDEXPL 1 -#define HAVE_EXP2L 1 -#define HAVE_LOG2L 1 -#define HAVE_COPYSIGNL 1 -#define HAVE_NEXTAFTERL 1 -#define HAVE_DECL_SIGNBIT -#define HAVE_COMPLEX_H 1 -#define HAVE_CREAL 1 -#define HAVE_CIMAG 1 -#define HAVE_CABS 1 -#define HAVE_CARG 1 -#define HAVE_CEXP 1 -#define HAVE_CSQRT 1 -#define HAVE_CLOG 1 -#define HAVE_CCOS 1 -#define HAVE_CSIN 1 -#define HAVE_CPOW 1 -#define HAVE_CREALF 1 -#define HAVE_CIMAGF 1 -#define HAVE_CABSF 1 -#define HAVE_CARGF 1 -#define HAVE_CEXPF 1 -#define HAVE_CSQRTF 1 -#define HAVE_CLOGF 1 -#define HAVE_CCOSF 1 -#define HAVE_CSINF 1 -#define HAVE_CPOWF 1 -#define HAVE_CREALL 1 -#define HAVE_CIMAGL 1 -#define HAVE_CABSL 1 -#define HAVE_CARGL 1 -#define HAVE_CEXPL 1 -#define HAVE_CSQRTL 1 -#define HAVE_CLOGL 1 -#define HAVE_CCOSL 1 -#define HAVE_CSINL 1 -#define HAVE_CPOWL 1 -#define HAVE_LDOUBLE_IEEE_QUAD_LE 1 -#ifndef __cplusplus -/* #undef inline */ -#endif - -#ifndef _NPY_NPY_CONFIG_H_ -#error config.h should never be included directly, include npy_config.h instead -#endif diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/python-numpy/files/mipsarchn64eb/_numpyconfig.h b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/python-numpy/files/mipsarchn64eb/_numpyconfig.h deleted file mode 100644 index debb3900..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/python-numpy/files/mipsarchn64eb/_numpyconfig.h +++ /dev/null @@ -1,32 +0,0 @@ -#define NPY_HAVE_ENDIAN_H 1 -#define NPY_SIZEOF_SHORT SIZEOF_SHORT -#define NPY_SIZEOF_INT SIZEOF_INT -#define NPY_SIZEOF_LONG SIZEOF_LONG -#define NPY_SIZEOF_FLOAT 4 -#define NPY_SIZEOF_COMPLEX_FLOAT 8 -#define NPY_SIZEOF_DOUBLE 8 -#define NPY_SIZEOF_COMPLEX_DOUBLE 16 -#define NPY_SIZEOF_LONGDOUBLE 16 -#define NPY_SIZEOF_COMPLEX_LONGDOUBLE 32 -#define NPY_ENABLE_SEPARATE_COMPILATION 1 -#define NPY_SIZEOF_PY_INTPTR_T 8 -#define NPY_SIZEOF_PY_LONG_LONG 8 -#define NPY_SIZEOF_LONGLONG 8 -#define NPY_SIZEOF_OFF_T 8 -#define NPY_NO_SMP 0 -#define NPY_HAVE_DECL_ISNAN -#define NPY_HAVE_DECL_ISINF -#define NPY_HAVE_DECL_ISFINITE -#define NPY_HAVE_DECL_SIGNBIT -#define NPY_USE_C99_COMPLEX 1 -#define NPY_HAVE_COMPLEX_DOUBLE 1 -#define NPY_HAVE_COMPLEX_FLOAT 1 -#define NPY_HAVE_COMPLEX_LONG_DOUBLE 1 -#define NPY_USE_C99_FORMATS 1 -#define NPY_VISIBILITY_HIDDEN __attribute__((visibility("hidden"))) -#define NPY_ABI_VERSION 0x01000009 -#define NPY_API_VERSION 0x0000000A - -#ifndef __STDC_FORMAT_MACROS -#define __STDC_FORMAT_MACROS 1 -#endif diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/python-numpy/files/mipsarchn64eb/config.h b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/python-numpy/files/mipsarchn64eb/config.h deleted file mode 100644 index c30b868f..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/python-numpy/files/mipsarchn64eb/config.h +++ /dev/null @@ -1,139 +0,0 @@ -#define HAVE_ENDIAN_H 1 -#define SIZEOF_PY_INTPTR_T 8 -#define SIZEOF_PY_LONG_LONG 8 -#define MATHLIB m -#define HAVE_SIN 1 -#define HAVE_COS 1 -#define HAVE_TAN 1 -#define HAVE_SINH 1 -#define HAVE_COSH 1 -#define HAVE_TANH 1 -#define HAVE_FABS 1 -#define HAVE_FLOOR 1 -#define HAVE_CEIL 1 -#define HAVE_SQRT 1 -#define HAVE_LOG10 1 -#define HAVE_LOG 1 -#define HAVE_EXP 1 -#define HAVE_ASIN 1 -#define HAVE_ACOS 1 -#define HAVE_ATAN 1 -#define HAVE_FMOD 1 -#define HAVE_MODF 1 -#define HAVE_FREXP 1 -#define HAVE_LDEXP 1 -#define HAVE_RINT 1 -#define HAVE_TRUNC 1 -#define HAVE_EXP2 1 -#define HAVE_LOG2 1 -#define HAVE_ATAN2 1 -#define HAVE_POW 1 -#define HAVE_NEXTAFTER 1 -#define HAVE_SINF 1 -#define HAVE_COSF 1 -#define HAVE_TANF 1 -#define HAVE_SINHF 1 -#define HAVE_COSHF 1 -#define HAVE_TANHF 1 -#define HAVE_FABSF 1 -#define HAVE_FLOORF 1 -#define HAVE_CEILF 1 -#define HAVE_RINTF 1 -#define HAVE_TRUNCF 1 -#define HAVE_SQRTF 1 -#define HAVE_LOG10F 1 -#define HAVE_LOGF 1 -#define HAVE_LOG1PF 1 -#define HAVE_EXPF 1 -#define HAVE_EXPM1F 1 -#define HAVE_ASINF 1 -#define HAVE_ACOSF 1 -#define HAVE_ATANF 1 -#define HAVE_ASINHF 1 -#define HAVE_ACOSHF 1 -#define HAVE_ATANHF 1 -#define HAVE_HYPOTF 1 -#define HAVE_ATAN2F 1 -#define HAVE_POWF 1 -#define HAVE_FMODF 1 -#define HAVE_MODFF 1 -#define HAVE_FREXPF 1 -#define HAVE_LDEXPF 1 -#define HAVE_EXP2F 1 -#define HAVE_LOG2F 1 -#define HAVE_COPYSIGNF 1 -#define HAVE_NEXTAFTERF 1 -#define HAVE_SINL 1 -#define HAVE_COSL 1 -#define HAVE_TANL 1 -#define HAVE_SINHL 1 -#define HAVE_COSHL 1 -#define HAVE_TANHL 1 -#define HAVE_FABSL 1 -#define HAVE_FLOORL 1 -#define HAVE_CEILL 1 -#define HAVE_RINTL 1 -#define HAVE_TRUNCL 1 -#define HAVE_SQRTL 1 -#define HAVE_LOG10L 1 -#define HAVE_LOGL 1 -#define HAVE_LOG1PL 1 -#define HAVE_EXPL 1 -#define HAVE_EXPM1L 1 -#define HAVE_ASINL 1 -#define HAVE_ACOSL 1 -#define HAVE_ATANL 1 -#define HAVE_ASINHL 1 -#define HAVE_ACOSHL 1 -#define HAVE_ATANHL 1 -#define HAVE_HYPOTL 1 -#define HAVE_ATAN2L 1 -#define HAVE_POWL 1 -#define HAVE_FMODL 1 -#define HAVE_MODFL 1 -#define HAVE_FREXPL 1 -#define HAVE_LDEXPL 1 -#define HAVE_EXP2L 1 -#define HAVE_LOG2L 1 -#define HAVE_COPYSIGNL 1 -#define HAVE_NEXTAFTERL 1 -#define HAVE_DECL_SIGNBIT -#define HAVE_COMPLEX_H 1 -#define HAVE_CREAL 1 -#define HAVE_CIMAG 1 -#define HAVE_CABS 1 -#define HAVE_CARG 1 -#define HAVE_CEXP 1 -#define HAVE_CSQRT 1 -#define HAVE_CLOG 1 -#define HAVE_CCOS 1 -#define HAVE_CSIN 1 -#define HAVE_CPOW 1 -#define HAVE_CREALF 1 -#define HAVE_CIMAGF 1 -#define HAVE_CABSF 1 -#define HAVE_CARGF 1 -#define HAVE_CEXPF 1 -#define HAVE_CSQRTF 1 -#define HAVE_CLOGF 1 -#define HAVE_CCOSF 1 -#define HAVE_CSINF 1 -#define HAVE_CPOWF 1 -#define HAVE_CREALL 1 -#define HAVE_CIMAGL 1 -#define HAVE_CABSL 1 -#define HAVE_CARGL 1 -#define HAVE_CEXPL 1 -#define HAVE_CSQRTL 1 -#define HAVE_CLOGL 1 -#define HAVE_CCOSL 1 -#define HAVE_CSINL 1 -#define HAVE_CPOWL 1 -#define HAVE_LDOUBLE_IEEE_QUAD_LE 1 -#ifndef __cplusplus -/* #undef inline */ -#endif - -#ifndef _NPY_NPY_CONFIG_H_ -#error config.h should never be included directly, include npy_config.h instead -#endif diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/python-numpy/files/mipsarchn64el/_numpyconfig.h b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/python-numpy/files/mipsarchn64el/_numpyconfig.h deleted file mode 100644 index debb3900..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/python-numpy/files/mipsarchn64el/_numpyconfig.h +++ /dev/null @@ -1,32 +0,0 @@ -#define NPY_HAVE_ENDIAN_H 1 -#define NPY_SIZEOF_SHORT SIZEOF_SHORT -#define NPY_SIZEOF_INT SIZEOF_INT -#define NPY_SIZEOF_LONG SIZEOF_LONG -#define NPY_SIZEOF_FLOAT 4 -#define NPY_SIZEOF_COMPLEX_FLOAT 8 -#define NPY_SIZEOF_DOUBLE 8 -#define NPY_SIZEOF_COMPLEX_DOUBLE 16 -#define NPY_SIZEOF_LONGDOUBLE 16 -#define NPY_SIZEOF_COMPLEX_LONGDOUBLE 32 -#define NPY_ENABLE_SEPARATE_COMPILATION 1 -#define NPY_SIZEOF_PY_INTPTR_T 8 -#define NPY_SIZEOF_PY_LONG_LONG 8 -#define NPY_SIZEOF_LONGLONG 8 -#define NPY_SIZEOF_OFF_T 8 -#define NPY_NO_SMP 0 -#define NPY_HAVE_DECL_ISNAN -#define NPY_HAVE_DECL_ISINF -#define NPY_HAVE_DECL_ISFINITE -#define NPY_HAVE_DECL_SIGNBIT -#define NPY_USE_C99_COMPLEX 1 -#define NPY_HAVE_COMPLEX_DOUBLE 1 -#define NPY_HAVE_COMPLEX_FLOAT 1 -#define NPY_HAVE_COMPLEX_LONG_DOUBLE 1 -#define NPY_USE_C99_FORMATS 1 -#define NPY_VISIBILITY_HIDDEN __attribute__((visibility("hidden"))) -#define NPY_ABI_VERSION 0x01000009 -#define NPY_API_VERSION 0x0000000A - -#ifndef __STDC_FORMAT_MACROS -#define __STDC_FORMAT_MACROS 1 -#endif diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/python-numpy/files/mipsarchn64el/config.h b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/python-numpy/files/mipsarchn64el/config.h deleted file mode 100644 index 48727039..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/python-numpy/files/mipsarchn64el/config.h +++ /dev/null @@ -1,138 +0,0 @@ -#define SIZEOF_PY_INTPTR_T 8 -#define SIZEOF_PY_LONG_LONG 8 -#define MATHLIB m -#define HAVE_SIN 1 -#define HAVE_COS 1 -#define HAVE_TAN 1 -#define HAVE_SINH 1 -#define HAVE_COSH 1 -#define HAVE_TANH 1 -#define HAVE_FABS 1 -#define HAVE_FLOOR 1 -#define HAVE_CEIL 1 -#define HAVE_SQRT 1 -#define HAVE_LOG10 1 -#define HAVE_LOG 1 -#define HAVE_EXP 1 -#define HAVE_ASIN 1 -#define HAVE_ACOS 1 -#define HAVE_ATAN 1 -#define HAVE_FMOD 1 -#define HAVE_MODF 1 -#define HAVE_FREXP 1 -#define HAVE_LDEXP 1 -#define HAVE_RINT 1 -#define HAVE_TRUNC 1 -#define HAVE_EXP2 1 -#define HAVE_LOG2 1 -#define HAVE_ATAN2 1 -#define HAVE_POW 1 -#define HAVE_NEXTAFTER 1 -#define HAVE_SINF 1 -#define HAVE_COSF 1 -#define HAVE_TANF 1 -#define HAVE_SINHF 1 -#define HAVE_COSHF 1 -#define HAVE_TANHF 1 -#define HAVE_FABSF 1 -#define HAVE_FLOORF 1 -#define HAVE_CEILF 1 -#define HAVE_RINTF 1 -#define HAVE_TRUNCF 1 -#define HAVE_SQRTF 1 -#define HAVE_LOG10F 1 -#define HAVE_LOGF 1 -#define HAVE_LOG1PF 1 -#define HAVE_EXPF 1 -#define HAVE_EXPM1F 1 -#define HAVE_ASINF 1 -#define HAVE_ACOSF 1 -#define HAVE_ATANF 1 -#define HAVE_ASINHF 1 -#define HAVE_ACOSHF 1 -#define HAVE_ATANHF 1 -#define HAVE_HYPOTF 1 -#define HAVE_ATAN2F 1 -#define HAVE_POWF 1 -#define HAVE_FMODF 1 -#define HAVE_MODFF 1 -#define HAVE_FREXPF 1 -#define HAVE_LDEXPF 1 -#define HAVE_EXP2F 1 -#define HAVE_LOG2F 1 -#define HAVE_COPYSIGNF 1 -#define HAVE_NEXTAFTERF 1 -#define HAVE_SINL 1 -#define HAVE_COSL 1 -#define HAVE_TANL 1 -#define HAVE_SINHL 1 -#define HAVE_COSHL 1 -#define HAVE_TANHL 1 -#define HAVE_FABSL 1 -#define HAVE_FLOORL 1 -#define HAVE_CEILL 1 -#define HAVE_RINTL 1 -#define HAVE_TRUNCL 1 -#define HAVE_SQRTL 1 -#define HAVE_LOG10L 1 -#define HAVE_LOGL 1 -#define HAVE_LOG1PL 1 -#define HAVE_EXPL 1 -#define HAVE_EXPM1L 1 -#define HAVE_ASINL 1 -#define HAVE_ACOSL 1 -#define HAVE_ATANL 1 -#define HAVE_ASINHL 1 -#define HAVE_ACOSHL 1 -#define HAVE_ATANHL 1 -#define HAVE_HYPOTL 1 -#define HAVE_ATAN2L 1 -#define HAVE_POWL 1 -#define HAVE_FMODL 1 -#define HAVE_MODFL 1 -#define HAVE_FREXPL 1 -#define HAVE_LDEXPL 1 -#define HAVE_EXP2L 1 -#define HAVE_LOG2L 1 -#define HAVE_COPYSIGNL 1 -#define HAVE_NEXTAFTERL 1 -#define HAVE_DECL_SIGNBIT -#define HAVE_COMPLEX_H 1 -#define HAVE_CREAL 1 -#define HAVE_CIMAG 1 -#define HAVE_CABS 1 -#define HAVE_CARG 1 -#define HAVE_CEXP 1 -#define HAVE_CSQRT 1 -#define HAVE_CLOG 1 -#define HAVE_CCOS 1 -#define HAVE_CSIN 1 -#define HAVE_CPOW 1 -#define HAVE_CREALF 1 -#define HAVE_CIMAGF 1 -#define HAVE_CABSF 1 -#define HAVE_CARGF 1 -#define HAVE_CEXPF 1 -#define HAVE_CSQRTF 1 -#define HAVE_CLOGF 1 -#define HAVE_CCOSF 1 -#define HAVE_CSINF 1 -#define HAVE_CPOWF 1 -#define HAVE_CREALL 1 -#define HAVE_CIMAGL 1 -#define HAVE_CABSL 1 -#define HAVE_CARGL 1 -#define HAVE_CEXPL 1 -#define HAVE_CSQRTL 1 -#define HAVE_CLOGL 1 -#define HAVE_CCOSL 1 -#define HAVE_CSINL 1 -#define HAVE_CPOWL 1 -#define HAVE_LDOUBLE_IEEE_QUAD_LE 1 -#ifndef __cplusplus -/* #undef inline */ -#endif - -#ifndef _NPY_NPY_CONFIG_H_ -#error config.h should never be included directly, include npy_config.h instead -#endif diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/python-numpy/files/mipsarcho32eb/_numpyconfig.h b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/python-numpy/files/mipsarcho32eb/_numpyconfig.h deleted file mode 100644 index 4c465c21..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/python-numpy/files/mipsarcho32eb/_numpyconfig.h +++ /dev/null @@ -1,32 +0,0 @@ -#define NPY_HAVE_ENDIAN_H 1 -#define NPY_SIZEOF_SHORT SIZEOF_SHORT -#define NPY_SIZEOF_INT SIZEOF_INT -#define NPY_SIZEOF_LONG SIZEOF_LONG -#define NPY_SIZEOF_FLOAT 4 -#define NPY_SIZEOF_COMPLEX_FLOAT 8 -#define NPY_SIZEOF_DOUBLE 8 -#define NPY_SIZEOF_COMPLEX_DOUBLE 16 -#define NPY_SIZEOF_LONGDOUBLE 8 -#define NPY_SIZEOF_COMPLEX_LONGDOUBLE 16 -#define NPY_ENABLE_SEPARATE_COMPILATION 1 -#define NPY_SIZEOF_PY_INTPTR_T 4 -#define NPY_SIZEOF_PY_LONG_LONG 8 -#define NPY_SIZEOF_LONGLONG 8 -#define NPY_SIZEOF_OFF_T 8 -#define NPY_NO_SMP 0 -#define NPY_HAVE_DECL_ISNAN -#define NPY_HAVE_DECL_ISINF -#define NPY_HAVE_DECL_ISFINITE -#define NPY_HAVE_DECL_SIGNBIT -#define NPY_USE_C99_COMPLEX 1 -#define NPY_HAVE_COMPLEX_DOUBLE 1 -#define NPY_HAVE_COMPLEX_FLOAT 1 -#define NPY_HAVE_COMPLEX_LONG_DOUBLE 1 -#define NPY_USE_C99_FORMATS 1 -#define NPY_VISIBILITY_HIDDEN __attribute__((visibility("hidden"))) -#define NPY_ABI_VERSION 0x01000009 -#define NPY_API_VERSION 0x0000000A - -#ifndef __STDC_FORMAT_MACROS -#define __STDC_FORMAT_MACROS 1 -#endif diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/python-numpy/files/mipsarcho32eb/config.h b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/python-numpy/files/mipsarcho32eb/config.h deleted file mode 100644 index 2f6135ad..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/python-numpy/files/mipsarcho32eb/config.h +++ /dev/null @@ -1,139 +0,0 @@ -#define HAVE_ENDIAN_H 1 -#define SIZEOF_PY_INTPTR_T 4 -#define SIZEOF_PY_LONG_LONG 8 -#define MATHLIB m -#define HAVE_SIN 1 -#define HAVE_COS 1 -#define HAVE_TAN 1 -#define HAVE_SINH 1 -#define HAVE_COSH 1 -#define HAVE_TANH 1 -#define HAVE_FABS 1 -#define HAVE_FLOOR 1 -#define HAVE_CEIL 1 -#define HAVE_SQRT 1 -#define HAVE_LOG10 1 -#define HAVE_LOG 1 -#define HAVE_EXP 1 -#define HAVE_ASIN 1 -#define HAVE_ACOS 1 -#define HAVE_ATAN 1 -#define HAVE_FMOD 1 -#define HAVE_MODF 1 -#define HAVE_FREXP 1 -#define HAVE_LDEXP 1 -#define HAVE_RINT 1 -#define HAVE_TRUNC 1 -#define HAVE_EXP2 1 -#define HAVE_LOG2 1 -#define HAVE_ATAN2 1 -#define HAVE_POW 1 -#define HAVE_NEXTAFTER 1 -#define HAVE_SINF 1 -#define HAVE_COSF 1 -#define HAVE_TANF 1 -#define HAVE_SINHF 1 -#define HAVE_COSHF 1 -#define HAVE_TANHF 1 -#define HAVE_FABSF 1 -#define HAVE_FLOORF 1 -#define HAVE_CEILF 1 -#define HAVE_RINTF 1 -#define HAVE_TRUNCF 1 -#define HAVE_SQRTF 1 -#define HAVE_LOG10F 1 -#define HAVE_LOGF 1 -#define HAVE_LOG1PF 1 -#define HAVE_EXPF 1 -#define HAVE_EXPM1F 1 -#define HAVE_ASINF 1 -#define HAVE_ACOSF 1 -#define HAVE_ATANF 1 -#define HAVE_ASINHF 1 -#define HAVE_ACOSHF 1 -#define HAVE_ATANHF 1 -#define HAVE_HYPOTF 1 -#define HAVE_ATAN2F 1 -#define HAVE_POWF 1 -#define HAVE_FMODF 1 -#define HAVE_MODFF 1 -#define HAVE_FREXPF 1 -#define HAVE_LDEXPF 1 -#define HAVE_EXP2F 1 -#define HAVE_LOG2F 1 -#define HAVE_COPYSIGNF 1 -#define HAVE_NEXTAFTERF 1 -#define HAVE_SINL 1 -#define HAVE_COSL 1 -#define HAVE_TANL 1 -#define HAVE_SINHL 1 -#define HAVE_COSHL 1 -#define HAVE_TANHL 1 -#define HAVE_FABSL 1 -#define HAVE_FLOORL 1 -#define HAVE_CEILL 1 -#define HAVE_RINTL 1 -#define HAVE_TRUNCL 1 -#define HAVE_SQRTL 1 -#define HAVE_LOG10L 1 -#define HAVE_LOGL 1 -#define HAVE_LOG1PL 1 -#define HAVE_EXPL 1 -#define HAVE_EXPM1L 1 -#define HAVE_ASINL 1 -#define HAVE_ACOSL 1 -#define HAVE_ATANL 1 -#define HAVE_ASINHL 1 -#define HAVE_ACOSHL 1 -#define HAVE_ATANHL 1 -#define HAVE_HYPOTL 1 -#define HAVE_ATAN2L 1 -#define HAVE_POWL 1 -#define HAVE_FMODL 1 -#define HAVE_MODFL 1 -#define HAVE_FREXPL 1 -#define HAVE_LDEXPL 1 -#define HAVE_EXP2L 1 -#define HAVE_LOG2L 1 -#define HAVE_COPYSIGNL 1 -#define HAVE_NEXTAFTERL 1 -#define HAVE_DECL_SIGNBIT -#define HAVE_COMPLEX_H 1 -#define HAVE_CREAL 1 -#define HAVE_CIMAG 1 -#define HAVE_CABS 1 -#define HAVE_CARG 1 -#define HAVE_CEXP 1 -#define HAVE_CSQRT 1 -#define HAVE_CLOG 1 -#define HAVE_CCOS 1 -#define HAVE_CSIN 1 -#define HAVE_CPOW 1 -#define HAVE_CREALF 1 -#define HAVE_CIMAGF 1 -#define HAVE_CABSF 1 -#define HAVE_CARGF 1 -#define HAVE_CEXPF 1 -#define HAVE_CSQRTF 1 -#define HAVE_CLOGF 1 -#define HAVE_CCOSF 1 -#define HAVE_CSINF 1 -#define HAVE_CPOWF 1 -#define HAVE_CREALL 1 -#define HAVE_CIMAGL 1 -#define HAVE_CABSL 1 -#define HAVE_CARGL 1 -#define HAVE_CEXPL 1 -#define HAVE_CSQRTL 1 -#define HAVE_CLOGL 1 -#define HAVE_CCOSL 1 -#define HAVE_CSINL 1 -#define HAVE_CPOWL 1 -#define HAVE_LDOUBLE_IEEE_DOUBLE_BE 1 -#ifndef __cplusplus -/* #undef inline */ -#endif - -#ifndef _NPY_NPY_CONFIG_H_ -#error config.h should never be included directly, include npy_config.h instead -#endif diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/python-numpy/files/mipsarcho32el/config.h b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/python-numpy/files/mipsarcho32el/config.h deleted file mode 100644 index 17ef186d..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/python-numpy/files/mipsarcho32el/config.h +++ /dev/null @@ -1,21 +0,0 @@ -/* ./src.linux-i686-2.5/numpy/core/include/numpy/config.h */ -/* #define SIZEOF_SHORT 2 */ -/* #define SIZEOF_INT 4 */ -/* #define SIZEOF_LONG 4 */ -/* #define SIZEOF_FLOAT 4 */ -/* #define SIZEOF_DOUBLE 8 */ -#define SIZEOF_LONG_DOUBLE 12 -#define SIZEOF_PY_INTPTR_T 4 -/* #define SIZEOF_LONG_LONG 8 */ -#define SIZEOF_PY_LONG_LONG 8 -/* #define CHAR_BIT 8 */ -#define MATHLIB m -#define HAVE_FLOAT_FUNCS -#define HAVE_LOG1P -#define HAVE_EXPM1 -#define HAVE_INVERSE_HYPERBOLIC -#define HAVE_INVERSE_HYPERBOLIC_FLOAT -#define HAVE_ISNAN -#define HAVE_ISINF -#define HAVE_RINT - diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/python-numpy/files/mipsarcho32el/numpyconfig.h b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/python-numpy/files/mipsarcho32el/numpyconfig.h deleted file mode 100644 index 0b7cd51a..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/python-numpy/files/mipsarcho32el/numpyconfig.h +++ /dev/null @@ -1,18 +0,0 @@ -/* cat ./src.linux-i686-2.5/numpy/core/include/numpy/numpyconfig.h */ -/* - * * This file is generated by numpy/core/setup.pyc. DO NOT EDIT - * */ -#define NPY_SIZEOF_SHORT 2 -#define NPY_SIZEOF_INT 4 -#define NPY_SIZEOF_LONG 4 -#define NPY_SIZEOF_FLOAT 4 -#define NPY_SIZEOF_DOUBLE 8 -#define NPY_SIZEOF_LONGDOUBLE 12 -#define NPY_SIZEOF_PY_INTPTR_T 4 -#define NPY_NO_SMP 0 - -#define NPY_SIZEOF_LONGLONG 8 -#define NPY_SIZEOF_PY_LONG_LONG 8 -#define NPY_SIZEOF_OFF_T 8 -/* #define CHAR_BIT 8 */ - diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/python-numpy/files/powerpc/_numpyconfig.h b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/python-numpy/files/powerpc/_numpyconfig.h deleted file mode 100644 index 6e7262ad..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/python-numpy/files/powerpc/_numpyconfig.h +++ /dev/null @@ -1,32 +0,0 @@ -#define NPY_HAVE_ENDIAN_H 1 -#define NPY_SIZEOF_SHORT SIZEOF_SHORT -#define NPY_SIZEOF_INT SIZEOF_INT -#define NPY_SIZEOF_LONG SIZEOF_LONG -#define NPY_SIZEOF_FLOAT 4 -#define NPY_SIZEOF_COMPLEX_FLOAT 8 -#define NPY_SIZEOF_DOUBLE 8 -#define NPY_SIZEOF_COMPLEX_DOUBLE 16 -#define NPY_SIZEOF_LONGDOUBLE 16 -#define NPY_SIZEOF_COMPLEX_LONGDOUBLE 32 -#define NPY_ENABLE_SEPARATE_COMPILATION 1 -#define NPY_SIZEOF_PY_INTPTR_T 4 -#define NPY_SIZEOF_PY_LONG_LONG 8 -#define NPY_SIZEOF_LONGLONG 8 -#define NPY_SIZEOF_OFF_T 8 -#define NPY_NO_SMP 0 -#define NPY_HAVE_DECL_ISNAN -#define NPY_HAVE_DECL_ISINF -#define NPY_HAVE_DECL_ISFINITE -#define NPY_HAVE_DECL_SIGNBIT -#define NPY_USE_C99_COMPLEX 1 -#define NPY_HAVE_COMPLEX_DOUBLE 1 -#define NPY_HAVE_COMPLEX_FLOAT 1 -#define NPY_HAVE_COMPLEX_LONG_DOUBLE 1 -#define NPY_USE_C99_FORMATS 1 -#define NPY_VISIBILITY_HIDDEN __attribute__((visibility("hidden"))) -#define NPY_ABI_VERSION 0x01000009 -#define NPY_API_VERSION 0x0000000A - -#ifndef __STDC_FORMAT_MACROS -#define __STDC_FORMAT_MACROS 1 -#endif diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/python-numpy/files/powerpc/config.h b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/python-numpy/files/powerpc/config.h deleted file mode 100644 index f65d39d5..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/python-numpy/files/powerpc/config.h +++ /dev/null @@ -1,139 +0,0 @@ -#define HAVE_ENDIAN_H 1 -#define SIZEOF_PY_INTPTR_T 4 -#define SIZEOF_PY_LONG_LONG 8 -#define MATHLIB m -#define HAVE_SIN 1 -#define HAVE_COS 1 -#define HAVE_TAN 1 -#define HAVE_SINH 1 -#define HAVE_COSH 1 -#define HAVE_TANH 1 -#define HAVE_FABS 1 -#define HAVE_FLOOR 1 -#define HAVE_CEIL 1 -#define HAVE_SQRT 1 -#define HAVE_LOG10 1 -#define HAVE_LOG 1 -#define HAVE_EXP 1 -#define HAVE_ASIN 1 -#define HAVE_ACOS 1 -#define HAVE_ATAN 1 -#define HAVE_FMOD 1 -#define HAVE_MODF 1 -#define HAVE_FREXP 1 -#define HAVE_LDEXP 1 -#define HAVE_RINT 1 -#define HAVE_TRUNC 1 -#define HAVE_EXP2 1 -#define HAVE_LOG2 1 -#define HAVE_ATAN2 1 -#define HAVE_POW 1 -#define HAVE_NEXTAFTER 1 -#define HAVE_SINF 1 -#define HAVE_COSF 1 -#define HAVE_TANF 1 -#define HAVE_SINHF 1 -#define HAVE_COSHF 1 -#define HAVE_TANHF 1 -#define HAVE_FABSF 1 -#define HAVE_FLOORF 1 -#define HAVE_CEILF 1 -#define HAVE_RINTF 1 -#define HAVE_TRUNCF 1 -#define HAVE_SQRTF 1 -#define HAVE_LOG10F 1 -#define HAVE_LOGF 1 -#define HAVE_LOG1PF 1 -#define HAVE_EXPF 1 -#define HAVE_EXPM1F 1 -#define HAVE_ASINF 1 -#define HAVE_ACOSF 1 -#define HAVE_ATANF 1 -#define HAVE_ASINHF 1 -#define HAVE_ACOSHF 1 -#define HAVE_ATANHF 1 -#define HAVE_HYPOTF 1 -#define HAVE_ATAN2F 1 -#define HAVE_POWF 1 -#define HAVE_FMODF 1 -#define HAVE_MODFF 1 -#define HAVE_FREXPF 1 -#define HAVE_LDEXPF 1 -#define HAVE_EXP2F 1 -#define HAVE_LOG2F 1 -#define HAVE_COPYSIGNF 1 -#define HAVE_NEXTAFTERF 1 -#define HAVE_SINL 1 -#define HAVE_COSL 1 -#define HAVE_TANL 1 -#define HAVE_SINHL 1 -#define HAVE_COSHL 1 -#define HAVE_TANHL 1 -#define HAVE_FABSL 1 -#define HAVE_FLOORL 1 -#define HAVE_CEILL 1 -#define HAVE_RINTL 1 -#define HAVE_TRUNCL 1 -#define HAVE_SQRTL 1 -#define HAVE_LOG10L 1 -#define HAVE_LOGL 1 -#define HAVE_LOG1PL 1 -#define HAVE_EXPL 1 -#define HAVE_EXPM1L 1 -#define HAVE_ASINL 1 -#define HAVE_ACOSL 1 -#define HAVE_ATANL 1 -#define HAVE_ASINHL 1 -#define HAVE_ACOSHL 1 -#define HAVE_ATANHL 1 -#define HAVE_HYPOTL 1 -#define HAVE_ATAN2L 1 -#define HAVE_POWL 1 -#define HAVE_FMODL 1 -#define HAVE_MODFL 1 -#define HAVE_FREXPL 1 -#define HAVE_LDEXPL 1 -#define HAVE_EXP2L 1 -#define HAVE_LOG2L 1 -#define HAVE_COPYSIGNL 1 -#define HAVE_NEXTAFTERL 1 -#define HAVE_DECL_SIGNBIT -#define HAVE_COMPLEX_H 1 -#define HAVE_CREAL 1 -#define HAVE_CIMAG 1 -#define HAVE_CABS 1 -#define HAVE_CARG 1 -#define HAVE_CEXP 1 -#define HAVE_CSQRT 1 -#define HAVE_CLOG 1 -#define HAVE_CCOS 1 -#define HAVE_CSIN 1 -#define HAVE_CPOW 1 -#define HAVE_CREALF 1 -#define HAVE_CIMAGF 1 -#define HAVE_CABSF 1 -#define HAVE_CARGF 1 -#define HAVE_CEXPF 1 -#define HAVE_CSQRTF 1 -#define HAVE_CLOGF 1 -#define HAVE_CCOSF 1 -#define HAVE_CSINF 1 -#define HAVE_CPOWF 1 -#define HAVE_CREALL 1 -#define HAVE_CIMAGL 1 -#define HAVE_CABSL 1 -#define HAVE_CARGL 1 -#define HAVE_CEXPL 1 -#define HAVE_CSQRTL 1 -#define HAVE_CLOGL 1 -#define HAVE_CCOSL 1 -#define HAVE_CSINL 1 -#define HAVE_CPOWL 1 -#define HAVE_LDOUBLE_DOUBLE_DOUBLE_BE 1 -#ifndef __cplusplus -/* #undef inline */ -#endif - -#ifndef _NPY_NPY_CONFIG_H_ -#error config.h should never be included directly, include npy_config.h instead -#endif diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/python-numpy/files/powerpc64/_numpyconfig.h b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/python-numpy/files/powerpc64/_numpyconfig.h deleted file mode 100644 index debb3900..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/python-numpy/files/powerpc64/_numpyconfig.h +++ /dev/null @@ -1,32 +0,0 @@ -#define NPY_HAVE_ENDIAN_H 1 -#define NPY_SIZEOF_SHORT SIZEOF_SHORT -#define NPY_SIZEOF_INT SIZEOF_INT -#define NPY_SIZEOF_LONG SIZEOF_LONG -#define NPY_SIZEOF_FLOAT 4 -#define NPY_SIZEOF_COMPLEX_FLOAT 8 -#define NPY_SIZEOF_DOUBLE 8 -#define NPY_SIZEOF_COMPLEX_DOUBLE 16 -#define NPY_SIZEOF_LONGDOUBLE 16 -#define NPY_SIZEOF_COMPLEX_LONGDOUBLE 32 -#define NPY_ENABLE_SEPARATE_COMPILATION 1 -#define NPY_SIZEOF_PY_INTPTR_T 8 -#define NPY_SIZEOF_PY_LONG_LONG 8 -#define NPY_SIZEOF_LONGLONG 8 -#define NPY_SIZEOF_OFF_T 8 -#define NPY_NO_SMP 0 -#define NPY_HAVE_DECL_ISNAN -#define NPY_HAVE_DECL_ISINF -#define NPY_HAVE_DECL_ISFINITE -#define NPY_HAVE_DECL_SIGNBIT -#define NPY_USE_C99_COMPLEX 1 -#define NPY_HAVE_COMPLEX_DOUBLE 1 -#define NPY_HAVE_COMPLEX_FLOAT 1 -#define NPY_HAVE_COMPLEX_LONG_DOUBLE 1 -#define NPY_USE_C99_FORMATS 1 -#define NPY_VISIBILITY_HIDDEN __attribute__((visibility("hidden"))) -#define NPY_ABI_VERSION 0x01000009 -#define NPY_API_VERSION 0x0000000A - -#ifndef __STDC_FORMAT_MACROS -#define __STDC_FORMAT_MACROS 1 -#endif diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/python-numpy/files/powerpc64/config.h b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/python-numpy/files/powerpc64/config.h deleted file mode 100644 index c30b868f..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/python-numpy/files/powerpc64/config.h +++ /dev/null @@ -1,139 +0,0 @@ -#define HAVE_ENDIAN_H 1 -#define SIZEOF_PY_INTPTR_T 8 -#define SIZEOF_PY_LONG_LONG 8 -#define MATHLIB m -#define HAVE_SIN 1 -#define HAVE_COS 1 -#define HAVE_TAN 1 -#define HAVE_SINH 1 -#define HAVE_COSH 1 -#define HAVE_TANH 1 -#define HAVE_FABS 1 -#define HAVE_FLOOR 1 -#define HAVE_CEIL 1 -#define HAVE_SQRT 1 -#define HAVE_LOG10 1 -#define HAVE_LOG 1 -#define HAVE_EXP 1 -#define HAVE_ASIN 1 -#define HAVE_ACOS 1 -#define HAVE_ATAN 1 -#define HAVE_FMOD 1 -#define HAVE_MODF 1 -#define HAVE_FREXP 1 -#define HAVE_LDEXP 1 -#define HAVE_RINT 1 -#define HAVE_TRUNC 1 -#define HAVE_EXP2 1 -#define HAVE_LOG2 1 -#define HAVE_ATAN2 1 -#define HAVE_POW 1 -#define HAVE_NEXTAFTER 1 -#define HAVE_SINF 1 -#define HAVE_COSF 1 -#define HAVE_TANF 1 -#define HAVE_SINHF 1 -#define HAVE_COSHF 1 -#define HAVE_TANHF 1 -#define HAVE_FABSF 1 -#define HAVE_FLOORF 1 -#define HAVE_CEILF 1 -#define HAVE_RINTF 1 -#define HAVE_TRUNCF 1 -#define HAVE_SQRTF 1 -#define HAVE_LOG10F 1 -#define HAVE_LOGF 1 -#define HAVE_LOG1PF 1 -#define HAVE_EXPF 1 -#define HAVE_EXPM1F 1 -#define HAVE_ASINF 1 -#define HAVE_ACOSF 1 -#define HAVE_ATANF 1 -#define HAVE_ASINHF 1 -#define HAVE_ACOSHF 1 -#define HAVE_ATANHF 1 -#define HAVE_HYPOTF 1 -#define HAVE_ATAN2F 1 -#define HAVE_POWF 1 -#define HAVE_FMODF 1 -#define HAVE_MODFF 1 -#define HAVE_FREXPF 1 -#define HAVE_LDEXPF 1 -#define HAVE_EXP2F 1 -#define HAVE_LOG2F 1 -#define HAVE_COPYSIGNF 1 -#define HAVE_NEXTAFTERF 1 -#define HAVE_SINL 1 -#define HAVE_COSL 1 -#define HAVE_TANL 1 -#define HAVE_SINHL 1 -#define HAVE_COSHL 1 -#define HAVE_TANHL 1 -#define HAVE_FABSL 1 -#define HAVE_FLOORL 1 -#define HAVE_CEILL 1 -#define HAVE_RINTL 1 -#define HAVE_TRUNCL 1 -#define HAVE_SQRTL 1 -#define HAVE_LOG10L 1 -#define HAVE_LOGL 1 -#define HAVE_LOG1PL 1 -#define HAVE_EXPL 1 -#define HAVE_EXPM1L 1 -#define HAVE_ASINL 1 -#define HAVE_ACOSL 1 -#define HAVE_ATANL 1 -#define HAVE_ASINHL 1 -#define HAVE_ACOSHL 1 -#define HAVE_ATANHL 1 -#define HAVE_HYPOTL 1 -#define HAVE_ATAN2L 1 -#define HAVE_POWL 1 -#define HAVE_FMODL 1 -#define HAVE_MODFL 1 -#define HAVE_FREXPL 1 -#define HAVE_LDEXPL 1 -#define HAVE_EXP2L 1 -#define HAVE_LOG2L 1 -#define HAVE_COPYSIGNL 1 -#define HAVE_NEXTAFTERL 1 -#define HAVE_DECL_SIGNBIT -#define HAVE_COMPLEX_H 1 -#define HAVE_CREAL 1 -#define HAVE_CIMAG 1 -#define HAVE_CABS 1 -#define HAVE_CARG 1 -#define HAVE_CEXP 1 -#define HAVE_CSQRT 1 -#define HAVE_CLOG 1 -#define HAVE_CCOS 1 -#define HAVE_CSIN 1 -#define HAVE_CPOW 1 -#define HAVE_CREALF 1 -#define HAVE_CIMAGF 1 -#define HAVE_CABSF 1 -#define HAVE_CARGF 1 -#define HAVE_CEXPF 1 -#define HAVE_CSQRTF 1 -#define HAVE_CLOGF 1 -#define HAVE_CCOSF 1 -#define HAVE_CSINF 1 -#define HAVE_CPOWF 1 -#define HAVE_CREALL 1 -#define HAVE_CIMAGL 1 -#define HAVE_CABSL 1 -#define HAVE_CARGL 1 -#define HAVE_CEXPL 1 -#define HAVE_CSQRTL 1 -#define HAVE_CLOGL 1 -#define HAVE_CCOSL 1 -#define HAVE_CSINL 1 -#define HAVE_CPOWL 1 -#define HAVE_LDOUBLE_IEEE_QUAD_LE 1 -#ifndef __cplusplus -/* #undef inline */ -#endif - -#ifndef _NPY_NPY_CONFIG_H_ -#error config.h should never be included directly, include npy_config.h instead -#endif diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/python-numpy/files/riscv64/_numpyconfig.h b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/python-numpy/files/riscv64/_numpyconfig.h deleted file mode 100644 index 109deb04..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/python-numpy/files/riscv64/_numpyconfig.h +++ /dev/null @@ -1,32 +0,0 @@ -#define NPY_HAVE_ENDIAN_H 1 -#define NPY_SIZEOF_SHORT SIZEOF_SHORT -#define NPY_SIZEOF_INT SIZEOF_INT -#define NPY_SIZEOF_LONG SIZEOF_LONG -#define NPY_SIZEOF_FLOAT 4 -#define NPY_SIZEOF_COMPLEX_FLOAT 8 -#define NPY_SIZEOF_DOUBLE 8 -#define NPY_SIZEOF_COMPLEX_DOUBLE 16 -#define NPY_SIZEOF_LONGDOUBLE 16 -#define NPY_SIZEOF_COMPLEX_LONGDOUBLE 32 -#define NPY_SIZEOF_PY_INTPTR_T 8 -#define NPY_SIZEOF_PY_LONG_LONG 8 -#define NPY_SIZEOF_LONGLONG 8 -#define NPY_SIZEOF_OFF_T 8 -#define NPY_NO_SMP 0 -#define NPY_HAVE_DECL_ISNAN -#define NPY_HAVE_DECL_ISINF -#define NPY_HAVE_DECL_ISFINITE -#define NPY_HAVE_DECL_SIGNBIT -#define NPY_USE_C99_COMPLEX 1 -#define NPY_HAVE_COMPLEX_DOUBLE 1 -#define NPY_HAVE_COMPLEX_FLOAT 1 -#define NPY_HAVE_COMPLEX_LONG_DOUBLE 1 -#define NPY_ENABLE_SEPARATE_COMPILATION 1 -#define NPY_USE_C99_FORMATS 1 -#define NPY_VISIBILITY_HIDDEN __attribute__((visibility("hidden"))) -#define NPY_ABI_VERSION 0x01000009 -#define NPY_API_VERSION 0x0000000A - -#ifndef __STDC_FORMAT_MACROS -#define __STDC_FORMAT_MACROS 1 -#endif diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/python-numpy/files/riscv64/config.h b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/python-numpy/files/riscv64/config.h deleted file mode 100644 index c30b868f..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/python-numpy/files/riscv64/config.h +++ /dev/null @@ -1,139 +0,0 @@ -#define HAVE_ENDIAN_H 1 -#define SIZEOF_PY_INTPTR_T 8 -#define SIZEOF_PY_LONG_LONG 8 -#define MATHLIB m -#define HAVE_SIN 1 -#define HAVE_COS 1 -#define HAVE_TAN 1 -#define HAVE_SINH 1 -#define HAVE_COSH 1 -#define HAVE_TANH 1 -#define HAVE_FABS 1 -#define HAVE_FLOOR 1 -#define HAVE_CEIL 1 -#define HAVE_SQRT 1 -#define HAVE_LOG10 1 -#define HAVE_LOG 1 -#define HAVE_EXP 1 -#define HAVE_ASIN 1 -#define HAVE_ACOS 1 -#define HAVE_ATAN 1 -#define HAVE_FMOD 1 -#define HAVE_MODF 1 -#define HAVE_FREXP 1 -#define HAVE_LDEXP 1 -#define HAVE_RINT 1 -#define HAVE_TRUNC 1 -#define HAVE_EXP2 1 -#define HAVE_LOG2 1 -#define HAVE_ATAN2 1 -#define HAVE_POW 1 -#define HAVE_NEXTAFTER 1 -#define HAVE_SINF 1 -#define HAVE_COSF 1 -#define HAVE_TANF 1 -#define HAVE_SINHF 1 -#define HAVE_COSHF 1 -#define HAVE_TANHF 1 -#define HAVE_FABSF 1 -#define HAVE_FLOORF 1 -#define HAVE_CEILF 1 -#define HAVE_RINTF 1 -#define HAVE_TRUNCF 1 -#define HAVE_SQRTF 1 -#define HAVE_LOG10F 1 -#define HAVE_LOGF 1 -#define HAVE_LOG1PF 1 -#define HAVE_EXPF 1 -#define HAVE_EXPM1F 1 -#define HAVE_ASINF 1 -#define HAVE_ACOSF 1 -#define HAVE_ATANF 1 -#define HAVE_ASINHF 1 -#define HAVE_ACOSHF 1 -#define HAVE_ATANHF 1 -#define HAVE_HYPOTF 1 -#define HAVE_ATAN2F 1 -#define HAVE_POWF 1 -#define HAVE_FMODF 1 -#define HAVE_MODFF 1 -#define HAVE_FREXPF 1 -#define HAVE_LDEXPF 1 -#define HAVE_EXP2F 1 -#define HAVE_LOG2F 1 -#define HAVE_COPYSIGNF 1 -#define HAVE_NEXTAFTERF 1 -#define HAVE_SINL 1 -#define HAVE_COSL 1 -#define HAVE_TANL 1 -#define HAVE_SINHL 1 -#define HAVE_COSHL 1 -#define HAVE_TANHL 1 -#define HAVE_FABSL 1 -#define HAVE_FLOORL 1 -#define HAVE_CEILL 1 -#define HAVE_RINTL 1 -#define HAVE_TRUNCL 1 -#define HAVE_SQRTL 1 -#define HAVE_LOG10L 1 -#define HAVE_LOGL 1 -#define HAVE_LOG1PL 1 -#define HAVE_EXPL 1 -#define HAVE_EXPM1L 1 -#define HAVE_ASINL 1 -#define HAVE_ACOSL 1 -#define HAVE_ATANL 1 -#define HAVE_ASINHL 1 -#define HAVE_ACOSHL 1 -#define HAVE_ATANHL 1 -#define HAVE_HYPOTL 1 -#define HAVE_ATAN2L 1 -#define HAVE_POWL 1 -#define HAVE_FMODL 1 -#define HAVE_MODFL 1 -#define HAVE_FREXPL 1 -#define HAVE_LDEXPL 1 -#define HAVE_EXP2L 1 -#define HAVE_LOG2L 1 -#define HAVE_COPYSIGNL 1 -#define HAVE_NEXTAFTERL 1 -#define HAVE_DECL_SIGNBIT -#define HAVE_COMPLEX_H 1 -#define HAVE_CREAL 1 -#define HAVE_CIMAG 1 -#define HAVE_CABS 1 -#define HAVE_CARG 1 -#define HAVE_CEXP 1 -#define HAVE_CSQRT 1 -#define HAVE_CLOG 1 -#define HAVE_CCOS 1 -#define HAVE_CSIN 1 -#define HAVE_CPOW 1 -#define HAVE_CREALF 1 -#define HAVE_CIMAGF 1 -#define HAVE_CABSF 1 -#define HAVE_CARGF 1 -#define HAVE_CEXPF 1 -#define HAVE_CSQRTF 1 -#define HAVE_CLOGF 1 -#define HAVE_CCOSF 1 -#define HAVE_CSINF 1 -#define HAVE_CPOWF 1 -#define HAVE_CREALL 1 -#define HAVE_CIMAGL 1 -#define HAVE_CABSL 1 -#define HAVE_CARGL 1 -#define HAVE_CEXPL 1 -#define HAVE_CSQRTL 1 -#define HAVE_CLOGL 1 -#define HAVE_CCOSL 1 -#define HAVE_CSINL 1 -#define HAVE_CPOWL 1 -#define HAVE_LDOUBLE_IEEE_QUAD_LE 1 -#ifndef __cplusplus -/* #undef inline */ -#endif - -#ifndef _NPY_NPY_CONFIG_H_ -#error config.h should never be included directly, include npy_config.h instead -#endif diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/python-numpy/files/x86-64/_numpyconfig.h b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/python-numpy/files/x86-64/_numpyconfig.h deleted file mode 100644 index b3303616..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/python-numpy/files/x86-64/_numpyconfig.h +++ /dev/null @@ -1,32 +0,0 @@ -#define NPY_HAVE_ENDIAN_H 1 -#define NPY_SIZEOF_SHORT SIZEOF_SHORT -#define NPY_SIZEOF_INT SIZEOF_INT -#define NPY_SIZEOF_LONG SIZEOF_LONG -#define NPY_SIZEOF_FLOAT 4 -#define NPY_SIZEOF_COMPLEX_FLOAT 8 -#define NPY_SIZEOF_DOUBLE 8 -#define NPY_SIZEOF_OFF_T 8 -#define NPY_SIZEOF_COMPLEX_DOUBLE 16 -#define NPY_SIZEOF_LONGDOUBLE 16 -#define NPY_SIZEOF_COMPLEX_LONGDOUBLE 32 -#define NPY_ENABLE_SEPARATE_COMPILATION 1 -#define NPY_SIZEOF_PY_INTPTR_T 8 -#define NPY_SIZEOF_PY_LONG_LONG 8 -#define NPY_SIZEOF_LONGLONG 8 -#define NPY_NO_SMP 0 -#define NPY_HAVE_DECL_ISNAN -#define NPY_HAVE_DECL_ISINF -#define NPY_HAVE_DECL_ISFINITE -#define NPY_HAVE_DECL_SIGNBIT -#define NPY_USE_C99_COMPLEX 1 -#define NPY_HAVE_COMPLEX_DOUBLE 1 -#define NPY_HAVE_COMPLEX_FLOAT 1 -#define NPY_HAVE_COMPLEX_LONG_DOUBLE 1 -#define NPY_USE_C99_FORMATS 1 -#define NPY_VISIBILITY_HIDDEN __attribute__((visibility("hidden"))) -#define NPY_ABI_VERSION 0x01000009 -#define NPY_API_VERSION 0x0000000A - -#ifndef __STDC_FORMAT_MACROS -#define __STDC_FORMAT_MACROS 1 -#endif diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/python-numpy/files/x86-64/config.h b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/python-numpy/files/x86-64/config.h deleted file mode 100644 index 0ce63b7d..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/python-numpy/files/x86-64/config.h +++ /dev/null @@ -1,139 +0,0 @@ -#define HAVE_ENDIAN_H 1 -#define SIZEOF_PY_INTPTR_T 8 -#define SIZEOF_PY_LONG_LONG 8 -#define MATHLIB m -#define HAVE_SIN 1 -#define HAVE_COS 1 -#define HAVE_TAN 1 -#define HAVE_SINH 1 -#define HAVE_COSH 1 -#define HAVE_TANH 1 -#define HAVE_FABS 1 -#define HAVE_FLOOR 1 -#define HAVE_CEIL 1 -#define HAVE_SQRT 1 -#define HAVE_LOG10 1 -#define HAVE_LOG 1 -#define HAVE_EXP 1 -#define HAVE_ASIN 1 -#define HAVE_ACOS 1 -#define HAVE_ATAN 1 -#define HAVE_FMOD 1 -#define HAVE_MODF 1 -#define HAVE_FREXP 1 -#define HAVE_LDEXP 1 -#define HAVE_RINT 1 -#define HAVE_TRUNC 1 -#define HAVE_EXP2 1 -#define HAVE_LOG2 1 -#define HAVE_ATAN2 1 -#define HAVE_POW 1 -#define HAVE_NEXTAFTER 1 -#define HAVE_SINF 1 -#define HAVE_COSF 1 -#define HAVE_TANF 1 -#define HAVE_SINHF 1 -#define HAVE_COSHF 1 -#define HAVE_TANHF 1 -#define HAVE_FABSF 1 -#define HAVE_FLOORF 1 -#define HAVE_CEILF 1 -#define HAVE_RINTF 1 -#define HAVE_TRUNCF 1 -#define HAVE_SQRTF 1 -#define HAVE_LOG10F 1 -#define HAVE_LOGF 1 -#define HAVE_LOG1PF 1 -#define HAVE_EXPF 1 -#define HAVE_EXPM1F 1 -#define HAVE_ASINF 1 -#define HAVE_ACOSF 1 -#define HAVE_ATANF 1 -#define HAVE_ASINHF 1 -#define HAVE_ACOSHF 1 -#define HAVE_ATANHF 1 -#define HAVE_HYPOTF 1 -#define HAVE_ATAN2F 1 -#define HAVE_POWF 1 -#define HAVE_FMODF 1 -#define HAVE_MODFF 1 -#define HAVE_FREXPF 1 -#define HAVE_LDEXPF 1 -#define HAVE_EXP2F 1 -#define HAVE_LOG2F 1 -#define HAVE_COPYSIGNF 1 -#define HAVE_NEXTAFTERF 1 -#define HAVE_SINL 1 -#define HAVE_COSL 1 -#define HAVE_TANL 1 -#define HAVE_SINHL 1 -#define HAVE_COSHL 1 -#define HAVE_TANHL 1 -#define HAVE_FABSL 1 -#define HAVE_FLOORL 1 -#define HAVE_CEILL 1 -#define HAVE_RINTL 1 -#define HAVE_TRUNCL 1 -#define HAVE_SQRTL 1 -#define HAVE_LOG10L 1 -#define HAVE_LOGL 1 -#define HAVE_LOG1PL 1 -#define HAVE_EXPL 1 -#define HAVE_EXPM1L 1 -#define HAVE_ASINL 1 -#define HAVE_ACOSL 1 -#define HAVE_ATANL 1 -#define HAVE_ASINHL 1 -#define HAVE_ACOSHL 1 -#define HAVE_ATANHL 1 -#define HAVE_HYPOTL 1 -#define HAVE_ATAN2L 1 -#define HAVE_POWL 1 -#define HAVE_FMODL 1 -#define HAVE_MODFL 1 -#define HAVE_FREXPL 1 -#define HAVE_LDEXPL 1 -#define HAVE_EXP2L 1 -#define HAVE_LOG2L 1 -#define HAVE_COPYSIGNL 1 -#define HAVE_NEXTAFTERL 1 -#define HAVE_DECL_SIGNBIT -#define HAVE_COMPLEX_H 1 -#define HAVE_CREAL 1 -#define HAVE_CIMAG 1 -#define HAVE_CABS 1 -#define HAVE_CARG 1 -#define HAVE_CEXP 1 -#define HAVE_CSQRT 1 -#define HAVE_CLOG 1 -#define HAVE_CCOS 1 -#define HAVE_CSIN 1 -#define HAVE_CPOW 1 -#define HAVE_CREALF 1 -#define HAVE_CIMAGF 1 -#define HAVE_CABSF 1 -#define HAVE_CARGF 1 -#define HAVE_CEXPF 1 -#define HAVE_CSQRTF 1 -#define HAVE_CLOGF 1 -#define HAVE_CCOSF 1 -#define HAVE_CSINF 1 -#define HAVE_CPOWF 1 -#define HAVE_CREALL 1 -#define HAVE_CIMAGL 1 -#define HAVE_CABSL 1 -#define HAVE_CARGL 1 -#define HAVE_CEXPL 1 -#define HAVE_CSQRTL 1 -#define HAVE_CLOGL 1 -#define HAVE_CCOSL 1 -#define HAVE_CSINL 1 -#define HAVE_CPOWL 1 -#define HAVE_LDOUBLE_INTEL_EXTENDED_16_BYTES_LE 1 -#ifndef __cplusplus -/* #undef inline */ -#endif - -#ifndef _NPY_NPY_CONFIG_H_ -#error config.h should never be included directly, include npy_config.h instead -#endif diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/python-numpy/files/x86/config.h b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/python-numpy/files/x86/config.h deleted file mode 100644 index 08e41e3d..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/python-numpy/files/x86/config.h +++ /dev/null @@ -1,108 +0,0 @@ -#define SIZEOF_PY_INTPTR_T 4 -#define SIZEOF_PY_LONG_LONG 8 -#define MATHLIB m -#define HAVE_SIN -#define HAVE_COS -#define HAVE_TAN -#define HAVE_SINH -#define HAVE_COSH -#define HAVE_TANH -#define HAVE_FABS -#define HAVE_FLOOR -#define HAVE_CEIL -#define HAVE_SQRT -#define HAVE_LOG10 -#define HAVE_LOG -#define HAVE_EXP -#define HAVE_ASIN -#define HAVE_ACOS -#define HAVE_ATAN -#define HAVE_FMOD -#define HAVE_MODF -#define HAVE_FREXP -#define HAVE_LDEXP -#define HAVE_RINT -#define HAVE_TRUNC -#define HAVE_EXP2 -#define HAVE_LOG2 -#define HAVE_ATAN2 -#define HAVE_POW -#define HAVE_NEXTAFTER -#define HAVE_SINF -#define HAVE_COSF -#define HAVE_TANF -#define HAVE_SINHF -#define HAVE_COSHF -#define HAVE_TANHF -#define HAVE_FABSF -#define HAVE_FLOORF -#define HAVE_CEILF -#define HAVE_RINTF -#define HAVE_TRUNCF -#define HAVE_SQRTF -#define HAVE_LOG10F -#define HAVE_LOGF -#define HAVE_LOG1PF -#define HAVE_EXPF -#define HAVE_EXPM1F -#define HAVE_ASINF -#define HAVE_ACOSF -#define HAVE_ATANF -#define HAVE_ASINHF -#define HAVE_ACOSHF -#define HAVE_ATANHF -#define HAVE_HYPOTF -#define HAVE_ATAN2F -#define HAVE_POWF -#define HAVE_FMODF -#define HAVE_MODFF -#define HAVE_FREXPF -#define HAVE_LDEXPF -#define HAVE_EXP2F -#define HAVE_LOG2F -#define HAVE_COPYSIGNF -#define HAVE_NEXTAFTERF -#define HAVE_SINL -#define HAVE_COSL -#define HAVE_TANL -#define HAVE_SINHL -#define HAVE_COSHL -#define HAVE_TANHL -#define HAVE_FABSL -#define HAVE_FLOORL -#define HAVE_CEILL -#define HAVE_RINTL -#define HAVE_TRUNCL -#define HAVE_SQRTL -#define HAVE_LOG10L -#define HAVE_LOGL -#define HAVE_LOG1PL -#define HAVE_EXPL -#define HAVE_EXPM1L -#define HAVE_ASINL -#define HAVE_ACOSL -#define HAVE_ATANL -#define HAVE_ASINHL -#define HAVE_ACOSHL -#define HAVE_ATANHL -#define HAVE_HYPOTL -#define HAVE_ATAN2L -#define HAVE_POWL -#define HAVE_FMODL -#define HAVE_MODFL -#define HAVE_FREXPL -#define HAVE_LDEXPL -#define HAVE_EXP2L -#define HAVE_LOG2L -#define HAVE_COPYSIGNL -#define HAVE_NEXTAFTERL -#define HAVE_DECL_SIGNBIT -#define HAVE_COMPLEX_H -#define HAVE_LDOUBLE_INTEL_EXTENDED_12_BYTES_LE 1 -#ifndef __cplusplus -/* #undef inline */ -#endif - -#ifndef _NPY_NPY_CONFIG_H_ -#error config.h should never be included directly, include npy_config.h instead -#endif diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/python-numpy/files/x86/numpyconfig.h b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/python-numpy/files/x86/numpyconfig.h deleted file mode 100644 index ff7938cd..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/python-numpy/files/x86/numpyconfig.h +++ /dev/null @@ -1,24 +0,0 @@ -#ifndef _NPY_NUMPYCONFIG_H_ -#define _NPY_NUMPYCONFIG_H_ - -#include "_numpyconfig.h" - -/* - * On Mac OS X, because there is only one configuration stage for all the archs - * in universal builds, any macro which depends on the arch needs to be - * harcoded - */ -#ifdef __APPLE__ - #undef NPY_SIZEOF_LONG - #undef NPY_SIZEOF_PY_INTPTR_T - - #ifdef __LP64__ - #define NPY_SIZEOF_LONG 8 - #define NPY_SIZEOF_PY_INTPTR_T 8 - #else - #define NPY_SIZEOF_LONG 4 - #define NPY_SIZEOF_PY_INTPTR_T 4 - #endif -#endif - -#endif diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/python-numpy/python-numpy.inc b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/python-numpy/python-numpy.inc index 43c3053c..f68b90e6 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/python-numpy/python-numpy.inc +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/python-numpy/python-numpy.inc @@ -1,92 +1,28 @@ SUMMARY = "A sophisticated Numeric Processing Package for Python" SECTION = "devel/python" -LICENSE = "BSD-3-Clause & BSD-2-Clause & PSF & Apache-2.0 & BSD" -LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=d26bde5432613cce2334b93985576231" +LICENSE = "BSD-3-Clause & BSD-2-Clause & PSF & Apache-2.0 & BSD & MIT" +LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=1a32aba007a415aa8a1c708a0e2b86a1" SRCNAME = "numpy" SRC_URI = "https://github.com/${SRCNAME}/${SRCNAME}/releases/download/v${PV}/${SRCNAME}-${PV}.tar.gz \ file://0001-Don-t-search-usr-and-so-on-for-libraries-by-default-.patch \ file://0001-npy_cpu-Add-riscv-support.patch \ - ${CONFIGFILESURI} \ + file://0001-numpy-random-setup.py-remove-the-detection-of-x86-ta.patch \ " -SRC_URI[md5sum] = "0886e5b5017f08f2b7a624c0b5931e61" -SRC_URI[sha256sum] = "adf063a3f87ab89393f5eea0eb903293b112fa0a308e8c594a75ffa585d81d4f" +SRC_URI[md5sum] = "c48b2ad785f82cdfe28c907ce35e2a71" +SRC_URI[sha256sum] = "47b7b6145e7ba5918ce26be25999b6d4b35cf9fbfdf46b7da50090ffdb020445" UPSTREAM_CHECK_URI = "https://github.com/numpy/numpy/releases" UPSTREAM_CHECK_REGEX = "(?P\d+(\.\d+)+)\.tar" -CONFIGFILESURI ?= "" - -CONFIGFILESURI_aarch64 = " \ - file://config.h \ - file://_numpyconfig.h \ -" -CONFIGFILESURI_arm = " \ - file://config.h \ - file://numpyconfig.h \ -" -CONFIGFILESURI_armeb = " \ - file://config.h \ - file://numpyconfig.h \ -" -CONFIGFILESURI_mipsarcho32el = " \ - file://config.h \ - file://numpyconfig.h \ -" -CONFIGFILESURI_x86 = " \ - file://config.h \ - file://numpyconfig.h \ -" -CONFIGFILESURI_x86-64 = " \ - file://config.h \ - file://_numpyconfig.h \ -" -CONFIGFILESURI_mipsarcho32eb = " \ - file://config.h \ - file://_numpyconfig.h \ -" -CONFIGFILESURI_powerpc = " \ - file://config.h \ - file://_numpyconfig.h \ -" -CONFIGFILESURI_powerpc64 = " \ - file://config.h \ - file://_numpyconfig.h \ -" -CONFIGFILESURI_mipsarchn64eb = " \ - file://config.h \ - file://_numpyconfig.h \ -" -CONFIGFILESURI_mipsarchn64el = " \ - file://config.h \ - file://_numpyconfig.h \ -" -CONFIGFILESURI_mipsarchn32eb = " \ - file://config.h \ - file://_numpyconfig.h \ -" -CONFIGFILESURI_mipsarchn32el = " \ - file://config.h \ - file://_numpyconfig.h \ -" -CONFIGFILESURI_riscv64 = " \ - file://config.h \ - file://_numpyconfig.h \ -" +# Needed for building with gcc 4.x from centos 7 +CFLAGS_append_class-native = " -std=c99" S = "${WORKDIR}/numpy-${PV}" CLEANBROKEN = "1" -# Make the build fail and replace *config.h with proper one -# This is a ugly, ugly hack - Koen -do_compile_prepend_class-target() { - ${STAGING_BINDIR_NATIVE}/${PYTHON_PN}-native/${PYTHON_PN} setup.py build ${DISTUTILS_BUILD_ARGS} || \ - true - cp ${WORKDIR}/*config.h ${S}/build/$(ls ${S}/build | grep src)/numpy/core/include/numpy/ -} - FILES_${PN}-staticdev += "${PYTHON_SITEPACKAGES_DIR}/numpy/core/lib/*.a" # install what is needed for numpy.test() @@ -109,6 +45,7 @@ RDEPENDS_${PN} = "${PYTHON_PN}-unittest \ ${PYTHON_PN}-compression \ ${PYTHON_PN}-ctypes \ ${PYTHON_PN}-threading \ + ${PYTHON_PN}-multiprocessing \ " RDEPENDS_${PN}_class-native = "" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/python-numpy/python-numpy_1.16.3.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/python-numpy/python-numpy_1.16.3.bb deleted file mode 100644 index a1133dad..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/python-numpy/python-numpy_1.16.3.bb +++ /dev/null @@ -1,10 +0,0 @@ -inherit setuptools -require python-numpy.inc - -RDEPENDS_${PN}_class-target_append = " \ - ${PYTHON_PN}-subprocess \ -" - -do_install_append(){ - rm ${D}/${bindir}/f2py -} diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/python-numpy/python3-numpy_1.16.3.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/python-numpy/python3-numpy_1.17.0.bb similarity index 100% rename from Contrib-Inspur/openbmc/poky/meta/recipes-devtools/python-numpy/python3-numpy_1.16.3.bb rename to Contrib-Inspur/openbmc/poky/meta/recipes-devtools/python-numpy/python3-numpy_1.17.0.bb diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/python/python-async.inc b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/python/python-async.inc index 139bf2c5..af887dc4 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/python/python-async.inc +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/python/python-async.inc @@ -1,7 +1,7 @@ SUMMARY = "Python framework to process interdependent tasks in a pool of workers" HOMEPAGE = "http://github.com/gitpython-developers/async" SECTION = "devel/python" -LICENSE = "BSD" +LICENSE = "BSD-3-Clause" LIC_FILES_CHKSUM = "file://PKG-INFO;beginline=8;endline=8;md5=88df8e78b9edfd744953862179f2d14e" inherit pypi diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/python/python-git.inc b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/python/python-git.inc deleted file mode 100644 index f973e9f4..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/python/python-git.inc +++ /dev/null @@ -1,32 +0,0 @@ -SUMMARY = "Python library used to interact with Git repositories" -DESCRIPTION = "GitPython provides object model read and write access to \ -a git repository. Access repository information conveniently, alter the \ -index directly, handle remotes, or go down to low-level object database \ -access with big-files support." -HOMEPAGE = "http://github.com/gitpython-developers/GitPython" -SECTION = "devel/python" -LICENSE = "BSD-3-Clause" -LIC_FILES_CHKSUM = "file://LICENSE;md5=8b8d26c37c1d5a04f9b0186edbebc183" - -PYPI_PACKAGE = "GitPython" - -inherit pypi - -SRC_URI[md5sum] = "cee43a39a1468084d49d1c49fb675204" -SRC_URI[sha256sum] = "8237dc5bfd6f1366abeee5624111b9d6879393d84745a507de0fda86043b65a8" - -DEPENDS = "${PYTHON_PN}-gitdb" - -RDEPENDS_${PN} += " \ - ${PYTHON_PN}-datetime \ - ${PYTHON_PN}-gitdb \ - ${PYTHON_PN}-io \ - ${PYTHON_PN}-logging \ - ${PYTHON_PN}-math \ - ${PYTHON_PN}-netclient \ - ${PYTHON_PN}-stringold \ - ${PYTHON_PN}-unittest \ - ${PYTHON_PN}-unixadmin \ - git \ -" -BBCLASSEXTEND = "native nativesdk" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/python/python-mako.inc b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/python/python-mako.inc deleted file mode 100644 index 20808fe5..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/python/python-mako.inc +++ /dev/null @@ -1,21 +0,0 @@ -SUMMARY = "Templating library for Python" -HOMEPAGE = "http://www.makotemplates.org/" -SECTION = "devel/python" -LICENSE = "MIT" -LIC_FILES_CHKSUM = "file://LICENSE;md5=1bb21fa2d2f7a534c884b990430a6863" - -PYPI_PACKAGE = "Mako" - -inherit pypi - -SRC_URI[md5sum] = "a94d376078dda65f834ea5049a81ebb5" -SRC_URI[sha256sum] = "7165919e78e1feb68b4dbe829871ea9941398178fa58e6beedb9ba14acf63965" - -RDEPENDS_${PN} = "${PYTHON_PN}-html \ - ${PYTHON_PN}-netclient \ - ${PYTHON_PN}-threading \ -" - -RDEPENDS_${PN}_class-native = "" - -BBCLASSEXTEND = "native nativesdk" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/python/python-native/0001-python-native-fix-one-do_populate_sysroot-warning.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/python/python-native/0001-python-native-fix-one-do_populate_sysroot-warning.patch index 98981892..707ee596 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/python/python-native/0001-python-native-fix-one-do_populate_sysroot-warning.patch +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/python/python-native/0001-python-native-fix-one-do_populate_sysroot-warning.patch @@ -1,4 +1,4 @@ -From 12292444e1b3662b994bc223d92b8338fb0895ff Mon Sep 17 00:00:00 2001 +From 6cbb7529cf7ff0da3ca649fb3486facd9620d625 Mon Sep 17 00:00:00 2001 From: Changqing Li Date: Thu, 25 Oct 2018 07:32:14 +0000 Subject: [PATCH] python-native: fix one do_populate_sysroot warning @@ -17,23 +17,24 @@ when do_populate_sysroot. use append to fix it. Upstream-Status: Inappropriate [oe-specific] Signed-off-by: Changqing Li + --- setup.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/setup.py b/setup.py -index 7bf13ed..6c0f29b 100644 +index a2c8127..22f9e23 100644 --- a/setup.py +++ b/setup.py -@@ -40,7 +40,7 @@ def add_dir_to_list(dirlist, dir): - 1) 'dir' is not already in 'dirlist' - 2) 'dir' actually exists, and is a directory.""" - if dir is not None and os.path.isdir(dir) and dir not in dirlist: -- dirlist.insert(0, dir) -+ dirlist.append(dir) - - def macosx_sdk_root(): - """ +@@ -47,7 +47,7 @@ def add_dir_to_list(dirlist, dir): + else: + dir_exists = os.path.isdir(dir) + if dir_exists: +- dirlist.insert(0, dir) ++ dirlist.append(dir) + + MACOS_SDK_ROOT = None + -- -2.18.0 +2.17.1 diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/python/python-native/debug.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/python/python-native/debug.patch deleted file mode 100644 index 36178826..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/python/python-native/debug.patch +++ /dev/null @@ -1,32 +0,0 @@ -Upstream-Status: Pending - -Index: Python-2.7.12/Lib/distutils/unixccompiler.py -=================================================================== ---- Python-2.7.12.orig/Lib/distutils/unixccompiler.py -+++ Python-2.7.12/Lib/distutils/unixccompiler.py -@@ -278,6 +278,8 @@ class UnixCCompiler(CCompiler): - - - -+ print "Looking in %s for %s" % (lib, dirs) -+ - for dir in dirs: - shared = os.path.join(dir, shared_f) - dylib = os.path.join(dir, dylib_f) -@@ -298,12 +300,16 @@ class UnixCCompiler(CCompiler): - # assuming that *all* Unix C compilers do. And of course I'm - # ignoring even GCC's "-static" option. So sue me. - if os.path.exists(dylib): -+ print "Found %s" % (dylib) - return dylib - elif os.path.exists(xcode_stub): -+ print "Found %s" % (xcode_stub) - return xcode_stub - elif os.path.exists(shared): -+ print "Found %s" % (shared) - return shared - elif os.path.exists(static): -+ print "Found %s" % (static) - return static - - # Oops, didn't find it in *any* of 'dirs' diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/python/python-native_2.7.16.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/python/python-native_2.7.16.bb deleted file mode 100644 index b7442800..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/python/python-native_2.7.16.bb +++ /dev/null @@ -1,89 +0,0 @@ -require python.inc -EXTRANATIVEPATH += "bzip2-native" -DEPENDS = "openssl-native bzip2-replacement-native zlib-native readline-native sqlite3-native expat-native gdbm-native db-native" - -SRC_URI += "\ - file://05-enable-ctypes-cross-build.patch \ - file://10-distutils-fix-swig-parameter.patch \ - file://11-distutils-never-modify-shebang-line.patch \ - file://0001-distutils-set-the-prefix-to-be-inside-staging-direct.patch \ - file://debug.patch \ - file://unixccompiler.patch \ - file://nohostlibs.patch \ - file://multilib.patch \ - file://add-md5module-support.patch \ - file://builddir.patch \ - file://parallel-makeinst-create-bindir.patch \ - file://revert_use_of_sysconfigdata.patch \ - file://0001-python-native-fix-one-do_populate_sysroot-warning.patch \ - " - -S = "${WORKDIR}/Python-${PV}" - -FILESEXTRAPATHS =. "${FILE_DIRNAME}/${PN}:" - -inherit native - -EXTRA_OECONF_append = " --bindir=${bindir}/${PN} --with-system-expat=${STAGING_DIR_HOST}" - -EXTRA_OEMAKE = '\ - LIBC="" \ - STAGING_LIBDIR=${STAGING_LIBDIR_NATIVE} \ - STAGING_INCDIR=${STAGING_INCDIR_NATIVE} \ -' - -do_configure_append() { - autoreconf --verbose --install --force --exclude=autopoint ../Python-${PV}/Modules/_ctypes/libffi -} - -# Regenerate all of the generated files -# This ensures that pgen and friends get created during the compile phase -do_compile_prepend() { - oe_runmake regen-all -} - -do_install() { - oe_runmake 'DESTDIR=${D}' install - install -d ${D}${bindir}/${PN} - install -m 0755 Parser/pgen ${D}${bindir}/${PN} - - # Make sure we use /usr/bin/env python - for PYTHSCRIPT in `grep -rIl ${bindir}/${PN}/python ${D}${bindir}/${PN}`; do - sed -i -e '1s|^#!.*|#!/usr/bin/env python|' $PYTHSCRIPT - done - - # Add a symlink to the native Python so that scripts can just invoke - # "nativepython" and get the right one without needing absolute paths - # (these often end up too long for the #! parser in the kernel as the - # buffer is 128 bytes long). - ln -s python-native/python ${D}${bindir}/nativepython - - # We don't want modules in ~/.local being used in preference to those - # installed in the native sysroot, so disable user site support. - sed -i -e 's,^\(ENABLE_USER_SITE = \).*,\1False,' ${D}${libdir}/python${PYTHON_MAJMIN}/site.py -} - -python(){ - - # Read JSON manifest - import json - pythondir = d.getVar('THISDIR') - with open(pythondir+'/python/python2-manifest.json') as manifest_file: - manifest_str = manifest_file.read() - json_start = manifest_str.find('# EOC') + 6 - manifest_file.seek(json_start) - manifest_str = manifest_file.read() - python_manifest = json.loads(manifest_str) - - rprovides = d.getVar('RPROVIDES').split() - - # Hardcoded since it cant be python-native-foo, should be python-foo-native - pn = 'python' - - for key in python_manifest: - pypackage = pn + '-' + key + '-native' - if pypackage not in rprovides: - rprovides.append(pypackage) - - d.setVar('RPROVIDES', ' '.join(rprovides)) -} diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/python/python-native_2.7.17.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/python/python-native_2.7.17.bb new file mode 100644 index 00000000..936810d9 --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/python/python-native_2.7.17.bb @@ -0,0 +1,88 @@ +require python.inc +EXTRANATIVEPATH += "bzip2-native" +DEPENDS = "openssl-native bzip2-replacement-native zlib-native readline-native sqlite3-native expat-native gdbm-native db-native" + +SRC_URI += "\ + file://05-enable-ctypes-cross-build.patch \ + file://10-distutils-fix-swig-parameter.patch \ + file://11-distutils-never-modify-shebang-line.patch \ + file://0001-distutils-set-the-prefix-to-be-inside-staging-direct.patch \ + file://unixccompiler.patch \ + file://nohostlibs.patch \ + file://multilib.patch \ + file://add-md5module-support.patch \ + file://0001-python-Resolve-intermediate-staging-issues.patch \ + file://parallel-makeinst-create-bindir.patch \ + file://revert_use_of_sysconfigdata.patch \ + file://0001-python-native-fix-one-do_populate_sysroot-warning.patch \ + " + +S = "${WORKDIR}/Python-${PV}" + +FILESEXTRAPATHS =. "${FILE_DIRNAME}/${PN}:" + +inherit native + +EXTRA_OECONF_append = " --bindir=${bindir}/${PN} --with-system-expat=${STAGING_DIR_HOST}" + +EXTRA_OEMAKE = '\ + LIBC="" \ + STAGING_LIBDIR=${STAGING_LIBDIR_NATIVE} \ + STAGING_INCDIR=${STAGING_INCDIR_NATIVE} \ +' + +do_configure_append() { + autoreconf --verbose --install --force --exclude=autopoint ../Python-${PV}/Modules/_ctypes/libffi +} + +# Regenerate all of the generated files +# This ensures that pgen and friends get created during the compile phase +do_compile_prepend() { + oe_runmake regen-all +} + +do_install() { + oe_runmake 'DESTDIR=${D}' install + install -d ${D}${bindir}/${PN} + install -m 0755 Parser/pgen ${D}${bindir}/${PN} + + # Make sure we use /usr/bin/env python + for PYTHSCRIPT in `grep -rIl ${bindir}/${PN}/python ${D}${bindir}/${PN}`; do + sed -i -e '1s|^#!.*|#!/usr/bin/env python|' $PYTHSCRIPT + done + + # Add a symlink to the native Python so that scripts can just invoke + # "nativepython" and get the right one without needing absolute paths + # (these often end up too long for the #! parser in the kernel as the + # buffer is 128 bytes long). + ln -s python-native/python ${D}${bindir}/nativepython + + # We don't want modules in ~/.local being used in preference to those + # installed in the native sysroot, so disable user site support. + sed -i -e 's,^\(ENABLE_USER_SITE = \).*,\1False,' ${D}${libdir}/python${PYTHON_MAJMIN}/site.py +} + +python(){ + + # Read JSON manifest + import json + pythondir = d.getVar('THISDIR') + with open(pythondir+'/python/python2-manifest.json') as manifest_file: + manifest_str = manifest_file.read() + json_start = manifest_str.find('# EOC') + 6 + manifest_file.seek(json_start) + manifest_str = manifest_file.read() + python_manifest = json.loads(manifest_str) + + rprovides = d.getVar('RPROVIDES').split() + + # Hardcoded since it cant be python-native-foo, should be python-foo-native + pn = 'python' + + for key in python_manifest: + pypackage = pn + '-' + key + '-native' + if pypackage not in rprovides: + rprovides.append(pypackage) + + d.setVar('RPROVIDES', ' '.join(rprovides)) +} diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/python/python-nose_1.3.7.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/python/python-nose_1.3.7.bb deleted file mode 100644 index fab609df..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/python/python-nose_1.3.7.bb +++ /dev/null @@ -1,6 +0,0 @@ -inherit setuptools -require python-nose.inc - -do_install_append() { - rm ${D}${bindir}/nosetests -} diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/python/python-scons-native_3.0.5.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/python/python-scons-native_3.0.5.bb deleted file mode 100644 index 68b63c93..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/python/python-scons-native_3.0.5.bb +++ /dev/null @@ -1,8 +0,0 @@ -require python-scons_${PV}.bb -inherit native pythonnative -DEPENDS = "python-native" -RDEPENDS_${PN} = "" - -do_install_append() { - create_wrapper ${D}${bindir}/scons SCONS_LIB_DIR='${STAGING_DIR_HOST}/${PYTHON_SITEPACKAGES_DIR}' PYTHONNOUSERSITE='1' -} diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/python/python-scons_3.0.5.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/python/python-scons_3.0.5.bb deleted file mode 100644 index 939c15bc..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/python/python-scons_3.0.5.bb +++ /dev/null @@ -1,24 +0,0 @@ -SUMMARY = "Software Construction tool (make/autotools replacement)" -SECTION = "devel/python" -LICENSE = "MIT" -LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=37bb53a08e6beaea0c90e7821d731284" - -SRC_URI = "${SOURCEFORGE_MIRROR}/scons/scons-${PV}.tar.gz" -SRC_URI[md5sum] = "9f9c163e8bd48cf8cd92f03e85ca6395" -SRC_URI[sha256sum] = "df676f23dc6d4bfa384fc389d95dcd21ab907e6349d4c848958ba4befb73c73e" - -S = "${WORKDIR}/scons-${PV}" - -UPSTREAM_CHECK_URI = "http://scons.org/pages/download.html" -UPSTREAM_CHECK_REGEX = "(?P\d+(\.\d+)+)\.tar" - -inherit setuptools - -RDEPENDS_${PN} = "\ - python-fcntl \ - python-io \ - python-json \ - python-subprocess \ - python-shell \ - python-pprint \ - " diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/python/python-setuptools.inc b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/python/python-setuptools.inc index f49e0786..027e259b 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/python/python-setuptools.inc +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/python/python-setuptools.inc @@ -10,8 +10,8 @@ inherit pypi SRC_URI_append_class-native = " file://0001-conditionally-do-not-fetch-code-by-easy_install.patch" -SRC_URI[md5sum] = "6404ca798bb9a9073aff3b91b2df35c8" -SRC_URI[sha256sum] = "a222d126f5471598053c9a77f4b5d4f26eaa1f150ad6e01dcf1a42e185d05613" +SRC_URI[md5sum] = "89a592d733b31e180a4b6ad760c0685a" +SRC_URI[sha256sum] = "7eae782ccf36b790c21bde7d86a4f303a441cd77036b25c559a602cf5186ce4d" DEPENDS += "${PYTHON_PN}" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/python/python-setuptools_41.0.1.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/python/python-setuptools_41.4.0.bb similarity index 100% rename from Contrib-Inspur/openbmc/poky/meta/recipes-devtools/python/python-setuptools_41.0.1.bb rename to Contrib-Inspur/openbmc/poky/meta/recipes-devtools/python/python-setuptools_41.4.0.bb diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/python/python-six.inc b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/python/python-six.inc index c706dcaf..c386090b 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/python/python-six.inc +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/python/python-six.inc @@ -2,10 +2,10 @@ SUMMARY = "Python 2 and 3 compatibility library" HOMEPAGE = "https://pypi.python.org/pypi/six/" SECTION = "devel/python" LICENSE = "MIT" -LIC_FILES_CHKSUM = "file://LICENSE;md5=83e0f622bd5ac7d575dbd83d094d69b5" +LIC_FILES_CHKSUM = "file://LICENSE;md5=f82eb3a1a7fade60bda5980935084b62" -SRC_URI[md5sum] = "9ae5d1feed8c0215f4ae4adcd9207fcb" -SRC_URI[sha256sum] = "d16a0141ec1a18405cd4ce8b4613101da75da0e9a7aec5bdd4fa804d0e0eba73" +SRC_URI[md5sum] = "e92c23c882c7d5564ce5773fe31b2771" +SRC_URI[sha256sum] = "30f610279e8b2578cab6db20741130331735c781b56053c59c4076da27f06b66" inherit pypi diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/python/python-smmap.inc b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/python/python-smmap.inc index 1a2259e4..b878b4b3 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/python/python-smmap.inc +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/python/python-smmap.inc @@ -4,7 +4,7 @@ help unifying memory mapped access on 32 and 64 bit systems and to help \ managing resources more efficiently." HOMEPAGE = "http://github.com/gitpython-developers/GitPython" SECTION = "devel/python" -LICENSE = "BSD" +LICENSE = "BSD-3-Clause" LIC_FILES_CHKSUM = "file://PKG-INFO;beginline=8;endline=8;md5=e910b35b0ef4e1f665b9a75d6afb7709" inherit pypi diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/python/python-testtools.inc b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/python/python-testtools.inc index 1011c98a..d0b2e46d 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/python/python-testtools.inc +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/python/python-testtools.inc @@ -19,6 +19,7 @@ DEPENDS += " \ " RDEPENDS_${PN} += "\ + ${PYTHON_PN}-doctest \ ${PYTHON_PN}-extras \ ${PYTHON_PN}-pbr \ ${PYTHON_PN}-six \ diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/python/python.inc b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/python/python.inc index 779df535..a630c26e 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/python/python.inc +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/python/python.inc @@ -10,8 +10,8 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=e466242989bd33c1bd2b6a526a742498" SRC_URI = "http://www.python.org/ftp/python/${PV}/Python-${PV}.tar.xz \ " -SRC_URI[md5sum] = "30157d85a2c0479c09ea2cbe61f2aaf5" -SRC_URI[sha256sum] = "f222ef602647eecb6853681156d32de4450a2c39f4de93bd5b20235f2e660ed7" +SRC_URI[md5sum] = "b3b6d2c92f42a60667814358ab9f0cfd" +SRC_URI[sha256sum] = "4d43f033cdbd0aa7b7023c81b0e986fd11e653b5248dac9144d508f11812ba41" # python recipe is actually python 2.x # also, exclude pre-releases for both python 2.x and 3.x @@ -31,7 +31,6 @@ EXTRA_OECONF = "\ --enable-shared \ --enable-ipv6=${@bb.utils.contains('DISTRO_FEATURES', 'ipv6', 'yes', 'no', d)} \ ac_cv_header_bluetooth_bluetooth_h=no ac_cv_header_bluetooth_h=no \ - ${PYTHONLSBOPTS} \ " do_configure_prepend() { diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/python/python/0001-python-Resolve-intermediate-staging-issues.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/python/python/0001-python-Resolve-intermediate-staging-issues.patch new file mode 100644 index 00000000..2ff2ccc4 --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/python/python/0001-python-Resolve-intermediate-staging-issues.patch @@ -0,0 +1,59 @@ +From 77bcb3238b2853d511714544e0f84a37be6c79bf Mon Sep 17 00:00:00 2001 +From: Richard Purdie +Date: Wed, 14 Nov 2012 14:31:24 +0000 +Subject: [PATCH] python: Resolve intermediate staging issues + +When cross compiling python, we used to need to install the Makefile, pyconfig.h +and the python library to their final location before being able to compile the +rest of python. This change allows us to point python at its own source when +building, avoiding a variety of sysroot staging issues and simplifying the main +python recipe. + +Upstream-Status: Inappropriate +RP 2012/11/13 + +--- + Lib/distutils/sysconfig.py | 3 +++ + Lib/sysconfig.py | 5 ++++- + 2 files changed, 7 insertions(+), 1 deletion(-) + +diff --git a/Lib/distutils/sysconfig.py b/Lib/distutils/sysconfig.py +index 2f4b8ca..15bceb5 100644 +--- a/Lib/distutils/sysconfig.py ++++ b/Lib/distutils/sysconfig.py +@@ -31,6 +31,9 @@ else: + # sys.executable can be empty if argv[0] has been changed and Python is + # unable to retrieve the real program name + project_base = os.getcwd() ++_PYTHONBUILDDIR = os.environ.get("PYTHONBUILDDIR", None) ++if _PYTHONBUILDDIR: ++ project_base = _PYTHONBUILDDIR + if os.name == "nt" and "pcbuild" in project_base[-8:].lower(): + project_base = os.path.abspath(os.path.join(project_base, os.path.pardir)) + # PC/VS7.1 +diff --git a/Lib/sysconfig.py b/Lib/sysconfig.py +index 9c8350d..bddbe2e 100644 +--- a/Lib/sysconfig.py ++++ b/Lib/sysconfig.py +@@ -93,6 +93,7 @@ _PREFIX = os.path.normpath(sys.prefix) + _EXEC_PREFIX = os.path.normpath(sys.exec_prefix) + _CONFIG_VARS = None + _USER_BASE = None ++_PYTHONBUILDDIR = os.environ.get("PYTHONBUILDDIR", None) + + def _safe_realpath(path): + try: +@@ -100,7 +101,9 @@ def _safe_realpath(path): + except OSError: + return path + +-if sys.executable: ++if _PYTHONBUILDDIR: ++ _PROJECT_BASE = _PYTHONBUILDDIR ++elif sys.executable: + _PROJECT_BASE = os.path.dirname(_safe_realpath(sys.executable)) + else: + # sys.executable can be empty if argv[0] has been changed and Python is +-- +2.17.1 + diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/python/python/bpo-35907-cve-2019-9948-fix.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/python/python/bpo-35907-cve-2019-9948-fix.patch deleted file mode 100644 index b2672370..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/python/python/bpo-35907-cve-2019-9948-fix.patch +++ /dev/null @@ -1,55 +0,0 @@ -From 179a5f75f1121dab271fe8f90eb35145f9dcbbda Mon Sep 17 00:00:00 2001 -From: Sihoon Lee -Date: Fri, 17 May 2019 02:41:06 +0900 -Subject: [PATCH] Update test_urllib.py and urllib.py\nchange assertEqual into - assertRasies in DummyURLopener test, and simplify mitigation - -Upstream-Status: Submitted https://github.com/python/cpython/pull/11842 - -CVE: CVE-2019-9948 - -Signed-off-by: Martin Jansa ---- - Lib/test/test_urllib.py | 11 +++-------- - Lib/urllib.py | 4 ++-- - 2 files changed, 5 insertions(+), 10 deletions(-) - -diff --git a/Lib/test/test_urllib.py b/Lib/test/test_urllib.py -index e5f210e62a18..1e23dfb0bb16 100644 ---- a/Lib/test/test_urllib.py -+++ b/Lib/test/test_urllib.py -@@ -1027,14 +1027,9 @@ def test_local_file_open(self): - class DummyURLopener(urllib.URLopener): - def open_local_file(self, url): - return url -- self.assertEqual(DummyURLopener().open( -- 'local-file://example'), '//example') -- self.assertEqual(DummyURLopener().open( -- 'local_file://example'), '//example') -- self.assertRaises(IOError, urllib.urlopen, -- 'local-file://example') -- self.assertRaises(IOError, urllib.urlopen, -- 'local_file://example') -+ for url in ('local_file://example', 'local-file://example'): -+ self.assertRaises(IOError, DummyURLopener().open, url) -+ self.assertRaises(IOError, urllib.urlopen, url) - - # Just commented them out. - # Can't really tell why keep failing in windows and sparc. -diff --git a/Lib/urllib.py b/Lib/urllib.py -index a24e9a5c68fb..39b834054e9e 100644 ---- a/Lib/urllib.py -+++ b/Lib/urllib.py -@@ -203,10 +203,10 @@ def open(self, fullurl, data=None): - name = 'open_' + urltype - self.type = urltype - name = name.replace('-', '_') -- -+ - # bpo-35907: # disallow the file reading with the type not allowed - if not hasattr(self, name) or \ -- (self == _urlopener and name == 'open_local_file'): -+ getattr(self, name) == self.open_local_file: - if proxy: - return self.open_unknown_proxy(proxy, fullurl, data) - else: diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/python/python/bpo-35907-cve-2019-9948.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/python/python/bpo-35907-cve-2019-9948.patch deleted file mode 100644 index f4c225d2..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/python/python/bpo-35907-cve-2019-9948.patch +++ /dev/null @@ -1,55 +0,0 @@ -From 8f99cc799e4393bf1112b9395b2342f81b3f45ef Mon Sep 17 00:00:00 2001 -From: push0ebp -Date: Thu, 14 Feb 2019 02:05:46 +0900 -Subject: [PATCH] bpo-35907: Avoid file reading as disallowing the unnecessary - URL scheme in urllib - -Upstream-Status: Submitted https://github.com/python/cpython/pull/11842 - -CVE: CVE-2019-9948 - -Signed-off-by: Martin Jansa ---- - Lib/test/test_urllib.py | 12 ++++++++++++ - Lib/urllib.py | 5 ++++- - 2 files changed, 16 insertions(+), 1 deletion(-) - -diff --git a/Lib/test/test_urllib.py b/Lib/test/test_urllib.py -index 1ce9201c0693..e5f210e62a18 100644 ---- a/Lib/test/test_urllib.py -+++ b/Lib/test/test_urllib.py -@@ -1023,6 +1023,18 @@ def open_spam(self, url): - "spam://c:|windows%/:=&?~#+!$,;'@()*[]|/path/"), - "//c:|windows%/:=&?~#+!$,;'@()*[]|/path/") - -+ def test_local_file_open(self): -+ class DummyURLopener(urllib.URLopener): -+ def open_local_file(self, url): -+ return url -+ self.assertEqual(DummyURLopener().open( -+ 'local-file://example'), '//example') -+ self.assertEqual(DummyURLopener().open( -+ 'local_file://example'), '//example') -+ self.assertRaises(IOError, urllib.urlopen, -+ 'local-file://example') -+ self.assertRaises(IOError, urllib.urlopen, -+ 'local_file://example') - - # Just commented them out. - # Can't really tell why keep failing in windows and sparc. -diff --git a/Lib/urllib.py b/Lib/urllib.py -index d85504a5cb7e..a24e9a5c68fb 100644 ---- a/Lib/urllib.py -+++ b/Lib/urllib.py -@@ -203,7 +203,10 @@ def open(self, fullurl, data=None): - name = 'open_' + urltype - self.type = urltype - name = name.replace('-', '_') -- if not hasattr(self, name): -+ -+ # bpo-35907: # disallow the file reading with the type not allowed -+ if not hasattr(self, name) or \ -+ (self == _urlopener and name == 'open_local_file'): - if proxy: - return self.open_unknown_proxy(proxy, fullurl, data) - else: diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/python/python/bpo-36216-cve-2019-9636-fix.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/python/python/bpo-36216-cve-2019-9636-fix.patch deleted file mode 100644 index 2ce4d2cd..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/python/python/bpo-36216-cve-2019-9636-fix.patch +++ /dev/null @@ -1,28 +0,0 @@ -From 06b5ee585d6e76bdbb4002f642d864d860cbbd2b Mon Sep 17 00:00:00 2001 -From: Steve Dower -Date: Tue, 12 Mar 2019 08:23:33 -0700 -Subject: [PATCH] bpo-36216: Only print test messages when verbose - -CVE: CVE-2019-9636 - -Upstream-Status: Backport https://github.com/python/cpython/pull/12291/commits/06b5ee585d6e76bdbb4002f642d864d860cbbd2b - -Signed-off-by: Martin Jansa ---- - Lib/test/test_urlparse.py | 3 ++- - 1 file changed, 2 insertions(+), 1 deletion(-) - -diff --git a/Lib/test/test_urlparse.py b/Lib/test/test_urlparse.py -index 73b0228ea8e3..1830d0b28688 100644 ---- a/Lib/test/test_urlparse.py -+++ b/Lib/test/test_urlparse.py -@@ -644,7 +644,8 @@ def test_urlsplit_normalization(self): - for scheme in [u"http", u"https", u"ftp"]: - for c in denorm_chars: - url = u"{}://netloc{}false.netloc/path".format(scheme, c) -- print "Checking %r" % url -+ if test_support.verbose: -+ print "Checking %r" % url - with self.assertRaises(ValueError): - urlparse.urlsplit(url) - diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/python/python/bpo-36216-cve-2019-9636.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/python/python/bpo-36216-cve-2019-9636.patch deleted file mode 100644 index 352b13ba..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/python/python/bpo-36216-cve-2019-9636.patch +++ /dev/null @@ -1,111 +0,0 @@ -From 3e3669c9c41a27e1466e2c28b3906e3dd0ce3e7e Mon Sep 17 00:00:00 2001 -From: Steve Dower -Date: Thu, 7 Mar 2019 08:25:22 -0800 -Subject: [PATCH] bpo-36216: Add check for characters in netloc that normalize - to separators (GH-12201) - -CVE: CVE-2019-9636 - -Upstream-Status: Backport https://github.com/python/cpython/pull/12216/commits/3e3669c9c41a27e1466e2c28b3906e3dd0ce3e7e - -Signed-off-by: Martin Jansa ---- - Doc/library/urlparse.rst | 20 ++++++++++++++++ - Lib/test/test_urlparse.py | 24 +++++++++++++++++++ - Lib/urlparse.py | 17 +++++++++++++ - .../2019-03-06-09-38-40.bpo-36216.6q1m4a.rst | 3 +++ - 4 files changed, 64 insertions(+) - create mode 100644 Misc/NEWS.d/next/Security/2019-03-06-09-38-40.bpo-36216.6q1m4a.rst - -diff --git a/Lib/test/test_urlparse.py b/Lib/test/test_urlparse.py -index 4e1ded73c266..73b0228ea8e3 100644 ---- a/Lib/test/test_urlparse.py -+++ b/Lib/test/test_urlparse.py -@@ -1,4 +1,6 @@ - from test import test_support -+import sys -+import unicodedata - import unittest - import urlparse - -@@ -624,6 +626,28 @@ def test_portseparator(self): - self.assertEqual(urlparse.urlparse("http://www.python.org:80"), - ('http','www.python.org:80','','','','')) - -+ def test_urlsplit_normalization(self): -+ # Certain characters should never occur in the netloc, -+ # including under normalization. -+ # Ensure that ALL of them are detected and cause an error -+ illegal_chars = u'/:#?@' -+ hex_chars = {'{:04X}'.format(ord(c)) for c in illegal_chars} -+ denorm_chars = [ -+ c for c in map(unichr, range(128, sys.maxunicode)) -+ if (hex_chars & set(unicodedata.decomposition(c).split())) -+ and c not in illegal_chars -+ ] -+ # Sanity check that we found at least one such character -+ self.assertIn(u'\u2100', denorm_chars) -+ self.assertIn(u'\uFF03', denorm_chars) -+ -+ for scheme in [u"http", u"https", u"ftp"]: -+ for c in denorm_chars: -+ url = u"{}://netloc{}false.netloc/path".format(scheme, c) -+ print "Checking %r" % url -+ with self.assertRaises(ValueError): -+ urlparse.urlsplit(url) -+ - def test_main(): - test_support.run_unittest(UrlParseTestCase) - -diff --git a/Lib/urlparse.py b/Lib/urlparse.py -index f7c2b032b097..54eda08651ab 100644 ---- a/Lib/urlparse.py -+++ b/Lib/urlparse.py -@@ -165,6 +165,21 @@ def _splitnetloc(url, start=0): - delim = min(delim, wdelim) # use earliest delim position - return url[start:delim], url[delim:] # return (domain, rest) - -+def _checknetloc(netloc): -+ if not netloc or not isinstance(netloc, unicode): -+ return -+ # looking for characters like \u2100 that expand to 'a/c' -+ # IDNA uses NFKC equivalence, so normalize for this check -+ import unicodedata -+ netloc2 = unicodedata.normalize('NFKC', netloc) -+ if netloc == netloc2: -+ return -+ _, _, netloc = netloc.rpartition('@') # anything to the left of '@' is okay -+ for c in '/?#@:': -+ if c in netloc2: -+ raise ValueError("netloc '" + netloc2 + "' contains invalid " + -+ "characters under NFKC normalization") -+ - def urlsplit(url, scheme='', allow_fragments=True): - """Parse a URL into 5 components: - :///?# -@@ -193,6 +208,7 @@ def urlsplit(url, scheme='', allow_fragments=True): - url, fragment = url.split('#', 1) - if '?' in url: - url, query = url.split('?', 1) -+ _checknetloc(netloc) - v = SplitResult(scheme, netloc, url, query, fragment) - _parse_cache[key] = v - return v -@@ -216,6 +232,7 @@ def urlsplit(url, scheme='', allow_fragments=True): - url, fragment = url.split('#', 1) - if '?' in url: - url, query = url.split('?', 1) -+ _checknetloc(netloc) - v = SplitResult(scheme, netloc, url, query, fragment) - _parse_cache[key] = v - return v -diff --git a/Misc/NEWS.d/next/Security/2019-03-06-09-38-40.bpo-36216.6q1m4a.rst b/Misc/NEWS.d/next/Security/2019-03-06-09-38-40.bpo-36216.6q1m4a.rst -new file mode 100644 -index 000000000000..1e1ad92c6feb ---- /dev/null -+++ b/Misc/NEWS.d/next/Security/2019-03-06-09-38-40.bpo-36216.6q1m4a.rst -@@ -0,0 +1,3 @@ -+Changes urlsplit() to raise ValueError when the URL contains characters that -+decompose under IDNA encoding (NFKC-normalization) into characters that -+affect how the URL is parsed. -\ No newline at end of file diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/python/python/builddir.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/python/python/builddir.patch deleted file mode 100644 index ad629a02..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/python/python/builddir.patch +++ /dev/null @@ -1,46 +0,0 @@ -When cross compiling python, we used to need to install the Makefile, pyconfig.h -and the python library to their final location before being able to compile the -rest of python. This change allows us to point python at its own source when -building, avoiding a variety of sysroot staging issues and simplifying the main -python recipe. - -Upstream-Status: Inappropriate -RP 2012/11/13 - -Index: Python-2.7.9/Lib/sysconfig.py -=================================================================== ---- Python-2.7.9.orig/Lib/sysconfig.py -+++ Python-2.7.9/Lib/sysconfig.py -@@ -93,6 +93,7 @@ _PREFIX = os.path.normpath(sys.prefix) - _EXEC_PREFIX = os.path.normpath(sys.exec_prefix) - _CONFIG_VARS = None - _USER_BASE = None -+_PYTHONBUILDDIR = os.environ.get("PYTHONBUILDDIR", None) - - def _safe_realpath(path): - try: -@@ -100,7 +101,9 @@ def _safe_realpath(path): - except OSError: - return path - --if sys.executable: -+if _PYTHONBUILDDIR: -+ _PROJECT_BASE = _PYTHONBUILDDIR -+elif sys.executable: - _PROJECT_BASE = os.path.dirname(_safe_realpath(sys.executable)) - else: - # sys.executable can be empty if argv[0] has been changed and Python is -Index: Python-2.7.9/Lib/distutils/sysconfig.py -=================================================================== ---- Python-2.7.9.orig/Lib/distutils/sysconfig.py -+++ Python-2.7.9/Lib/distutils/sysconfig.py -@@ -26,6 +26,9 @@ EXEC_PREFIX = os.path.normpath(sys.exec_ - # live in project/PCBuild9. If we're dealing with an x64 Windows build, - # it'll live in project/PCbuild/amd64. - project_base = os.path.dirname(os.path.abspath(sys.executable)) -+_PYTHONBUILDDIR = os.environ.get("PYTHONBUILDDIR", None) -+if _PYTHONBUILDDIR: -+ project_base = _PYTHONBUILDDIR - if os.name == "nt" and "pcbuild" in project_base[-8:].lower(): - project_base = os.path.abspath(os.path.join(project_base, os.path.pardir)) - # PC/VS7.1 diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/python/python3-dbus_1.2.12.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/python/python3-dbus_1.2.12.bb new file mode 100644 index 00000000..d005dc4a --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/python/python3-dbus_1.2.12.bb @@ -0,0 +1,26 @@ +SUMMARY = "Python bindings for the DBus inter-process communication system" +SECTION = "devel/python" +HOMEPAGE = "http://www.freedesktop.org/Software/dbus" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://COPYING;md5=b03240518994df6d8c974675675e5ca4" +DEPENDS = "expat dbus glib-2.0 virtual/libintl" + +SRC_URI = "http://dbus.freedesktop.org/releases/dbus-python/dbus-python-${PV}.tar.gz" + +SRC_URI[md5sum] = "428b7a9e7e2d154a7ceb3e13536283e4" +SRC_URI[sha256sum] = "cdd4de2c4f5e58f287b12013ed7b41dee81d503c8d0d2397c5bd2fb01badf260" + +S = "${WORKDIR}/dbus-python-${PV}" + +inherit distutils3-base autotools pkgconfig + +# documentation needs python3-sphinx, which is not in oe-core or meta-python for now +# change to use PACKAGECONFIG when python3-sphinx is added to oe-core +EXTRA_OECONF += "--disable-documentation" + + +RDEPENDS_${PN} = "python3-io python3-logging python3-stringold python3-threading python3-xml" + +FILES_${PN}-dev += "${libdir}/pkgconfig" + +BBCLASSEXTEND = "native nativesdk" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/python/python3-dbus_1.2.8.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/python/python3-dbus_1.2.8.bb deleted file mode 100644 index c9bf8df4..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/python/python3-dbus_1.2.8.bb +++ /dev/null @@ -1,24 +0,0 @@ -SUMMARY = "Python bindings for the DBus inter-process communication system" -SECTION = "devel/python" -HOMEPAGE = "http://www.freedesktop.org/Software/dbus" -LICENSE = "MIT" -LIC_FILES_CHKSUM = "file://COPYING;md5=b03240518994df6d8c974675675e5ca4" -DEPENDS = "expat dbus dbus-glib virtual/libintl" - -SRC_URI = "http://dbus.freedesktop.org/releases/dbus-python/dbus-python-${PV}.tar.gz \ -" - -SRC_URI[md5sum] = "7379db774c10904f27e7e2743d90fb43" -SRC_URI[sha256sum] = "abf12bbb765e300bf8e2a1b2f32f85949eab06998dbda127952c31cb63957b6f" -S = "${WORKDIR}/dbus-python-${PV}" - -inherit distutils3-base autotools pkgconfig - -# documentation needs python3-sphinx, which is not in oe-core or meta-python for now -# change to use PACKAGECONFIG when python3-sphinx is added to oe-core -EXTRA_OECONF += "--disable-documentation" - - -RDEPENDS_${PN} = "python3-io python3-logging python3-stringold python3-threading python3-xml" - -FILES_${PN}-dev += "${libdir}/pkgconfig" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/python/python3-docutils_0.14.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/python/python3-docutils_0.14.bb deleted file mode 100644 index 81a449d6..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/python/python3-docutils_0.14.bb +++ /dev/null @@ -1,18 +0,0 @@ -SUMMARY = "Text processing system for documentation" -HOMEPAGE = "http://docutils.sourceforge.net" -SECTION = "devel/python" -LICENSE = "PSF & BSD-2-Clause & GPLv3" -LIC_FILES_CHKSUM = "file://COPYING.txt;md5=35a23d42b615470583563132872c97d6" - -DEPENDS = "python3" - -SRC_URI = "${SOURCEFORGE_MIRROR}/docutils/docutils-${PV}.tar.gz" -SRC_URI[md5sum] = "c53768d63db3873b7d452833553469de" -SRC_URI[sha256sum] = "51e64ef2ebfb29cae1faa133b3710143496eca21c530f3f71424d77687764274" - -S = "${WORKDIR}/docutils-${PV}" - -inherit distutils3 - -BBCLASSEXTEND = "native" - diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/python/python3-docutils_0.15.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/python/python3-docutils_0.15.bb new file mode 100644 index 00000000..f5c3f5d7 --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/python/python3-docutils_0.15.bb @@ -0,0 +1,17 @@ +SUMMARY = "Text processing system for documentation" +HOMEPAGE = "http://docutils.sourceforge.net" +SECTION = "devel/python" +LICENSE = "PSF & BSD-2-Clause & GPLv3" +LIC_FILES_CHKSUM = "file://COPYING.txt;md5=35a23d42b615470583563132872c97d6" + +DEPENDS = "python3" + +SRC_URI = "${SOURCEFORGE_MIRROR}/docutils/docutils-${PV}.tar.gz" +SRC_URI[md5sum] = "f51729f19e70a9dc4837433193a5e798" +SRC_URI[sha256sum] = "c35e87e985f70106f6f97e050f3bed990641e0e104566134b9cd23849a460e96" + +S = "${WORKDIR}/docutils-${PV}" + +inherit distutils3 + +BBCLASSEXTEND = "native" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/python/python3-git_2.1.11.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/python/python3-git_2.1.11.bb deleted file mode 100644 index ac320fa5..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/python/python3-git_2.1.11.bb +++ /dev/null @@ -1,2 +0,0 @@ -require python-git.inc -inherit setuptools3 diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/python/python3-git_3.0.2.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/python/python3-git_3.0.2.bb new file mode 100644 index 00000000..9dd753db --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/python/python3-git_3.0.2.bb @@ -0,0 +1,33 @@ +SUMMARY = "Python library used to interact with Git repositories" +DESCRIPTION = "GitPython provides object model read and write access to \ +a git repository. Access repository information conveniently, alter the \ +index directly, handle remotes, or go down to low-level object database \ +access with big-files support." +HOMEPAGE = "http://github.com/gitpython-developers/GitPython" +SECTION = "devel/python" +LICENSE = "BSD-3-Clause" +LIC_FILES_CHKSUM = "file://LICENSE;md5=8b8d26c37c1d5a04f9b0186edbebc183" + +PYPI_PACKAGE = "GitPython" + +inherit pypi setuptools3 + +SRC_URI[md5sum] = "ccec14a5c9f18702406122983d80032c" +SRC_URI[sha256sum] = "d2f4945f8260f6981d724f5957bc076398ada55cb5d25aaee10108bcdc894100" + +DEPENDS += " ${PYTHON_PN}-gitdb" + +RDEPENDS_${PN} += " \ + ${PYTHON_PN}-datetime \ + ${PYTHON_PN}-gitdb \ + ${PYTHON_PN}-io \ + ${PYTHON_PN}-logging \ + ${PYTHON_PN}-math \ + ${PYTHON_PN}-netclient \ + ${PYTHON_PN}-stringold \ + ${PYTHON_PN}-unittest \ + ${PYTHON_PN}-unixadmin \ + git \ +" + +BBCLASSEXTEND = "native nativesdk" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/python/python3-mako_1.0.10.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/python/python3-mako_1.0.10.bb deleted file mode 100644 index 17803f1b..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/python/python3-mako_1.0.10.bb +++ /dev/null @@ -1,3 +0,0 @@ -inherit setuptools3 -require python-mako.inc - diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/python/python3-mako_1.1.0.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/python/python3-mako_1.1.0.bb new file mode 100644 index 00000000..b139e5ab --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/python/python3-mako_1.1.0.bb @@ -0,0 +1,21 @@ +SUMMARY = "Templating library for Python" +HOMEPAGE = "http://www.makotemplates.org/" +SECTION = "devel/python" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://LICENSE;md5=df7e6c7c82990acf0228a55e00d29bc9" + +PYPI_PACKAGE = "Mako" + +inherit pypi setuptools3 + +SRC_URI[md5sum] = "6c3f2da0b74af529a4c4a537d0848bf2" +SRC_URI[sha256sum] = "a36919599a9b7dc5d86a7a8988f23a9a3a3d083070023bab23d64f7f1d1e0a4b" + +RDEPENDS_${PN} = "${PYTHON_PN}-html \ + ${PYTHON_PN}-netclient \ + ${PYTHON_PN}-threading \ +" + +RDEPENDS_${PN}_class-native = "" + +BBCLASSEXTEND = "native nativesdk" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/python/python3-pbr_5.2.0.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/python/python3-pbr_5.2.0.bb deleted file mode 100644 index ed6832e4..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/python/python3-pbr_5.2.0.bb +++ /dev/null @@ -1,5 +0,0 @@ -inherit setuptools3 -require python-pbr.inc -SRC_URI[md5sum] = "2bca008fd08d035a2f78c606d876a6db" -SRC_URI[sha256sum] = "d950c64aeea5456bbd147468382a5bb77fe692c13c9f00f0219814ce5b642755" - diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/python/python3-pbr_5.4.3.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/python/python3-pbr_5.4.3.bb new file mode 100644 index 00000000..e7835e7a --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/python/python3-pbr_5.4.3.bb @@ -0,0 +1,5 @@ +inherit setuptools3 +require python-pbr.inc + +SRC_URI[md5sum] = "477d2aa285ad97250a172b199f4060b7" +SRC_URI[sha256sum] = "2c8e420cd4ed4cec4e7999ee47409e876af575d4c35a45840d59e8b5f3155ab8" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/python/python3-pip_19.1.1.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/python/python3-pip_19.1.1.bb deleted file mode 100644 index baf32f47..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/python/python3-pip_19.1.1.bb +++ /dev/null @@ -1,30 +0,0 @@ -SUMMARY = "The PyPA recommended tool for installing Python packages" -HOMEPAGE = "https://pypi.python.org/pypi/pip" -SECTION = "devel/python" -LICENSE = "MIT" -LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=8ba06d529c955048e5ddd7c45459eb2e" - -DEPENDS += "python3 python3-setuptools-native" - -SRC_URI[md5sum] = "4fb98a060f21c731d6743b90a714fc73" -SRC_URI[sha256sum] = "44d3d7d3d30a1eb65c7e5ff1173cdf8f7467850605ac7cc3707b6064bddd0958" - -inherit pypi distutils3 - -do_install_append() { - # Install as pip3 and leave pip2 as default - rm ${D}/${bindir}/pip -} - -RDEPENDS_${PN} = "\ - python3-compile \ - python3-io \ - python3-html \ - python3-json \ - python3-netserver \ - python3-setuptools \ - python3-unixadmin \ - python3-xmlrpc \ -" - -BBCLASSEXTEND = "native nativesdk" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/python/python3-pip_19.3.1.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/python/python3-pip_19.3.1.bb new file mode 100644 index 00000000..d27e6fce --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/python/python3-pip_19.3.1.bb @@ -0,0 +1,31 @@ +SUMMARY = "The PyPA recommended tool for installing Python packages" +HOMEPAGE = "https://pypi.python.org/pypi/pip" +SECTION = "devel/python" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=8ba06d529c955048e5ddd7c45459eb2e" + +DEPENDS += "python3 python3-setuptools-native" + +SRC_URI[md5sum] = "1aaaf90fbafc50e7ba1e66ffceb00960" +SRC_URI[sha256sum] = "21207d76c1031e517668898a6b46a9fb1501c7a4710ef5dfd6a40ad9e6757ea7" + +inherit pypi distutils3 + +do_install_append() { + # Install as pip3 and leave pip2 as default + rm ${D}/${bindir}/pip +} + +RDEPENDS_${PN} = "\ + python3-compile \ + python3-io \ + python3-html \ + python3-json \ + python3-netserver \ + python3-setuptools \ + python3-unixadmin \ + python3-xmlrpc \ + python3-pickle \ +" + +BBCLASSEXTEND = "native nativesdk" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/python/python3-pygobject_3.32.1.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/python/python3-pygobject_3.32.1.bb deleted file mode 100644 index 8eda06e9..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/python/python3-pygobject_3.32.1.bb +++ /dev/null @@ -1,33 +0,0 @@ -SUMMARY = "Python GObject bindings" -SECTION = "devel/python" -LICENSE = "LGPLv2.1" -LIC_FILES_CHKSUM = "file://COPYING;md5=a916467b91076e631dd8edb7424769c7" - -GNOMEBASEBUILDCLASS = "meson" -inherit gnomebase distutils3-base gobject-introspection upstream-version-is-even - -DEPENDS += "python3 glib-2.0" - -SRCNAME="pygobject" -SRC_URI = " \ - http://ftp.gnome.org/pub/GNOME/sources/${SRCNAME}/${@gnome_verdir("${PV}")}/${SRCNAME}-${PV}.tar.xz \ - file://0001-Do-not-build-tests.patch \ -" - -UNKNOWN_CONFIGURE_WHITELIST = "introspection" - -SRC_URI[md5sum] = "9d5dbca10162dd9b0d03fed0c6cf865d" -SRC_URI[sha256sum] = "32c99def94b8dea5ce9e4bc99576ef87591ea779b4db77cfdca7af81b76d04d8" - -S = "${WORKDIR}/${SRCNAME}-${PV}" - -PACKAGECONFIG ??= "${@bb.utils.contains_any('DISTRO_FEATURES', [ 'directfb', 'wayland', 'x11' ], 'cairo', '', d)}" - -# python3-pycairo is checked on configuration -> DEPENDS -# we don't link against python3-pycairo -> RDEPENDS -PACKAGECONFIG[cairo] = "-Dpycairo=true,-Dpycairo=false, cairo python3-pycairo, python3-pycairo" - -RDEPENDS_${PN} += "python3-setuptools" - -BBCLASSEXTEND = "native" -PACKAGECONFIG_class-native = "" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/python/python3-pygobject_3.34.0.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/python/python3-pygobject_3.34.0.bb new file mode 100644 index 00000000..6babf0ca --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/python/python3-pygobject_3.34.0.bb @@ -0,0 +1,33 @@ +SUMMARY = "Python GObject bindings" +SECTION = "devel/python" +LICENSE = "LGPLv2.1" +LIC_FILES_CHKSUM = "file://COPYING;md5=a916467b91076e631dd8edb7424769c7" + +GNOMEBASEBUILDCLASS = "meson" +inherit gnomebase distutils3-base gobject-introspection upstream-version-is-even + +DEPENDS += "python3 glib-2.0" + +SRCNAME="pygobject" + +SRC_URI = " \ + http://ftp.gnome.org/pub/GNOME/sources/${SRCNAME}/${@gnome_verdir("${PV}")}/${SRCNAME}-${PV}.tar.xz \ + file://0001-Do-not-build-tests.patch \ +" +SRC_URI[md5sum] = "ca1dc4f31c1d6d283758e8f315a88ab6" +SRC_URI[sha256sum] = "87e2c9aa785f352ef111dcc5f63df9b85cf6e05e52ff04f803ffbebdacf5271a" + +UNKNOWN_CONFIGURE_WHITELIST = "introspection" + +S = "${WORKDIR}/${SRCNAME}-${PV}" + +PACKAGECONFIG ??= "${@bb.utils.contains_any('DISTRO_FEATURES', [ 'directfb', 'wayland', 'x11' ], 'cairo', '', d)}" + +RDEPENDS_${PN} += "python3-pkgutil" + +# python3-pycairo is checked on configuration -> DEPENDS +# we don't link against python3-pycairo -> RDEPENDS +PACKAGECONFIG[cairo] = "-Dpycairo=true,-Dpycairo=false, cairo python3-pycairo, python3-pycairo" + +BBCLASSEXTEND = "native" +PACKAGECONFIG_class-native = "" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/python/python3-scons-native_3.0.5.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/python/python3-scons-native_3.1.1.bb similarity index 100% rename from Contrib-Inspur/openbmc/poky/meta/recipes-devtools/python/python3-scons-native_3.0.5.bb rename to Contrib-Inspur/openbmc/poky/meta/recipes-devtools/python/python3-scons-native_3.1.1.bb diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/python/python3-scons_3.0.5.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/python/python3-scons_3.0.5.bb deleted file mode 100644 index 7fb75a62..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/python/python3-scons_3.0.5.bb +++ /dev/null @@ -1,29 +0,0 @@ -SUMMARY = "Software Construction tool (make/autotools replacement)" -SECTION = "devel/python" -LICENSE = "MIT" -LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=37bb53a08e6beaea0c90e7821d731284" - -SRC_URI = "${SOURCEFORGE_MIRROR}/scons/scons-${PV}.tar.gz" -SRC_URI[md5sum] = "9f9c163e8bd48cf8cd92f03e85ca6395" -SRC_URI[sha256sum] = "df676f23dc6d4bfa384fc389d95dcd21ab907e6349d4c848958ba4befb73c73e" - -S = "${WORKDIR}/scons-${PV}" - -UPSTREAM_CHECK_URI = "http://scons.org/pages/download.html" -UPSTREAM_CHECK_REGEX = "(?P\d+(\.\d+)+)\.tar" - -inherit setuptools3 - -do_install_prepend() { - sed -i -e "1s,#!.*python.*,#!${USRBINPATH}/env python3," ${S}/script/* -} - -RDEPENDS_${PN} = "\ - python3-core \ - python3-fcntl \ - python3-io \ - python3-json \ - python3-shell \ - python3-pickle \ - python3-pprint \ - " diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/python/python3-scons_3.1.1.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/python/python3-scons_3.1.1.bb new file mode 100644 index 00000000..0c7aaeae --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/python/python3-scons_3.1.1.bb @@ -0,0 +1,29 @@ +SUMMARY = "Software Construction tool (make/autotools replacement)" +SECTION = "devel/python" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=37bb53a08e6beaea0c90e7821d731284" + +SRC_URI = "${SOURCEFORGE_MIRROR}/scons/scons-${PV}.tar.gz" +SRC_URI[md5sum] = "35b2a3993313bbedd221d4d5758fd2fd" +SRC_URI[sha256sum] = "4cea417fdd7499a36f407923d03b4b7000b0f9e8fd7b31b316b9ce7eba9143a5" + +S = "${WORKDIR}/scons-${PV}" + +UPSTREAM_CHECK_URI = "http://scons.org/pages/download.html" +UPSTREAM_CHECK_REGEX = "(?P\d+(\.\d+)+)\.tar" + +inherit setuptools3 + +do_install_prepend() { + sed -i -e "1s,#!.*python.*,#!${USRBINPATH}/env python3," ${S}/script/* +} + +RDEPENDS_${PN} = "\ + python3-core \ + python3-fcntl \ + python3-io \ + python3-json \ + python3-shell \ + python3-pickle \ + python3-pprint \ + " diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/python/python3-setuptools_41.0.1.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/python/python3-setuptools_41.4.0.bb similarity index 100% rename from Contrib-Inspur/openbmc/poky/meta/recipes-devtools/python/python3-setuptools_41.0.1.bb rename to Contrib-Inspur/openbmc/poky/meta/recipes-devtools/python/python3-setuptools_41.4.0.bb diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/python/python3-six_1.12.0.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/python/python3-six_1.13.0.bb similarity index 100% rename from Contrib-Inspur/openbmc/poky/meta/recipes-devtools/python/python3-six_1.12.0.bb rename to Contrib-Inspur/openbmc/poky/meta/recipes-devtools/python/python3-six_1.13.0.bb diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/python/python3-subunit_1.3.0.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/python/python3-subunit_1.3.0.bb index 2ece4451..55066e2d 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/python/python3-subunit_1.3.0.bb +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/python/python3-subunit_1.3.0.bb @@ -1,2 +1,4 @@ inherit setuptools3 require python-subunit.inc + +RDEPENDS_${PN} = " python3-testtools" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/python/python3/0001-Do-not-hardcode-lib-as-location-for-site-packages-an.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/python/python3/0001-Do-not-hardcode-lib-as-location-for-site-packages-an.patch index 661f52d0..ea75262c 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/python/python3/0001-Do-not-hardcode-lib-as-location-for-site-packages-an.patch +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/python/python3/0001-Do-not-hardcode-lib-as-location-for-site-packages-an.patch @@ -70,7 +70,7 @@ index 6e81b2f..671a20e 100644 Programs/python.o: $(srcdir)/Programs/python.c @@ -856,7 +857,7 @@ regen-opcode: - Python/compile.o Python/symtable.o Python/ast_unparse.o Python/ast.o: $(srcdir)/Include/graminit.h $(srcdir)/Include/Python-ast.h + Python/compile.o Python/symtable.o Python/ast_unparse.o Python/ast.o Python/future.o Parser/parsetok.o: $(srcdir)/Include/graminit.h $(srcdir)/Include/Python-ast.h Python/getplatform.o: $(srcdir)/Python/getplatform.c - $(CC) -c $(PY_CORE_CFLAGS) -DPLATFORM='"$(MACHDEP)"' -o $@ $(srcdir)/Python/getplatform.c diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/python/python3/0001-Use-FLAG_REF-always-for-interned-strings.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/python/python3/0001-Use-FLAG_REF-always-for-interned-strings.patch new file mode 100644 index 00000000..957839bf --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/python/python3/0001-Use-FLAG_REF-always-for-interned-strings.patch @@ -0,0 +1,35 @@ +From 6c8ea7c1dacd42f3ba00440231ec0e6b1a38300d Mon Sep 17 00:00:00 2001 +From: Inada Naoki +Date: Sat, 14 Jul 2018 00:46:11 +0900 +Subject: [PATCH] Use FLAG_REF always for interned strings + +Upstream-Status: Submitted [https://github.com/python/cpython/pull/8226] +Signed-off-by: Joshua Watt +--- + Python/marshal.c | 9 +++++++-- + 1 file changed, 7 insertions(+), 2 deletions(-) + +diff --git a/Python/marshal.c b/Python/marshal.c +index 6d06266c6a..51db2e3b2e 100644 +--- a/Python/marshal.c ++++ b/Python/marshal.c +@@ -275,9 +275,14 @@ w_ref(PyObject *v, char *flag, WFILE *p) + if (p->version < 3 || p->hashtable == NULL) + return 0; /* not writing object references */ + +- /* if it has only one reference, it definitely isn't shared */ +- if (Py_REFCNT(v) == 1) ++ /* If it has only one reference, it definitely isn't shared. ++ * But we use TYPE_REF always for interned string, to PYC file stable ++ * as possible. ++ */ ++ if (Py_REFCNT(v) == 1 && ++ !(PyUnicode_CheckExact(v) && PyUnicode_CHECK_INTERNED(v))) { + return 0; ++ } + + entry = _Py_HASHTABLE_GET_ENTRY(p->hashtable, v); + if (entry != NULL) { +-- +2.21.0 + diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/python/python3/0001-distutils-sysconfig-append-STAGING_LIBDIR-python-sys.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/python/python3/0001-distutils-sysconfig-append-STAGING_LIBDIR-python-sys.patch index 1741f575..1709011b 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/python/python3/0001-distutils-sysconfig-append-STAGING_LIBDIR-python-sys.patch +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/python/python3/0001-distutils-sysconfig-append-STAGING_LIBDIR-python-sys.patch @@ -1,4 +1,4 @@ -From 17796e353acf08acd604610f34840a4a9d2f4b54 Mon Sep 17 00:00:00 2001 +From eff903c600f4c40f5753e95ab1557126fc6e0c9c Mon Sep 17 00:00:00 2001 From: Alexander Kanavin Date: Thu, 31 Jan 2019 16:46:30 +0100 Subject: [PATCH] distutils/sysconfig: append @@ -15,10 +15,10 @@ Signed-off-by: Alexander Kanavin 2 files changed, 4 insertions(+) diff --git a/Lib/distutils/sysconfig.py b/Lib/distutils/sysconfig.py -index e07a6c8..6b8c129 100644 +index 0a034ee..3dfd0a3 100644 --- a/Lib/distutils/sysconfig.py +++ b/Lib/distutils/sysconfig.py -@@ -421,6 +421,8 @@ def _init_posix(): +@@ -439,6 +439,8 @@ def _init_posix(): platform=sys.platform, multiarch=getattr(sys.implementation, '_multiarch', ''), )) @@ -28,10 +28,10 @@ index e07a6c8..6b8c129 100644 build_time_vars = _temp.build_time_vars global _config_vars diff --git a/Lib/sysconfig.py b/Lib/sysconfig.py -index 9ee4d31..e586abd 100644 +index 87fa5e6..756a41c 100644 --- a/Lib/sysconfig.py +++ b/Lib/sysconfig.py -@@ -412,6 +412,8 @@ def _init_posix(vars): +@@ -419,6 +419,8 @@ def _init_posix(vars): """Initialize the module as appropriate for POSIX systems.""" # _sysconfigdata is generated at build time, see _generate_posix_vars() name = _get_sysconfigdata_name() diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/python/python3/0001-main.c-if-OEPYTHON3HOME-is-set-use-instead-of-PYTHON.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/python/python3/0001-main.c-if-OEPYTHON3HOME-is-set-use-instead-of-PYTHON.patch index a0ed7cc8..a146c747 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/python/python3/0001-main.c-if-OEPYTHON3HOME-is-set-use-instead-of-PYTHON.patch +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/python/python3/0001-main.c-if-OEPYTHON3HOME-is-set-use-instead-of-PYTHON.patch @@ -1,4 +1,4 @@ -From ffe7797637f08cd6ee4c82e2d67462c5e194d30a Mon Sep 17 00:00:00 2001 +From 5ce3ac59531828ff682646fbba59b2126b28a8aa Mon Sep 17 00:00:00 2001 From: Jaewon Lee Date: Thu, 25 Apr 2019 15:34:26 -0700 Subject: [PATCH] main.c: if OEPYTHON3HOME is set use instead of PYTHONHOME @@ -12,15 +12,16 @@ to set a different path for python3 Signed-off-by: Jaewon Lee Upstream-Status: Inappropriate [OE specific configuration] + --- Modules/main.c | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/Modules/main.c b/Modules/main.c -index a745381..b553e30 100644 +index acc59c6..407085a 100644 --- a/Modules/main.c +++ b/Modules/main.c -@@ -1855,10 +1855,19 @@ config_init_home(_PyCoreConfig *config) +@@ -1834,10 +1834,19 @@ config_init_home(_PyCoreConfig *config) } return _Py_INIT_OK(); } @@ -44,6 +45,3 @@ index a745381..b553e30 100644 } config->home = home; return _Py_INIT_OK(); --- -2.7.4 - diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/python/python3/0001-python3-use-cc_basename-to-replace-CC-for-checking-c.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/python/python3/0001-python3-use-cc_basename-to-replace-CC-for-checking-c.patch index 57359546..a0ea897f 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/python/python3/0001-python3-use-cc_basename-to-replace-CC-for-checking-c.patch +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/python/python3/0001-python3-use-cc_basename-to-replace-CC-for-checking-c.patch @@ -63,7 +63,7 @@ index a7de901..4a3681f 100644 + case $cc_basename in *clang*) AC_SUBST(LLVM_AR) - AC_PATH_TARGET_TOOL(LLVM_AR, llvm-ar, '', ${llvm_path}) + AC_PATH_TOOL(LLVM_AR, llvm-ar, '', ${llvm_path}) @@ -1426,7 +1427,7 @@ then fi fi diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/python/python3/0001-test_locale.py-correct-the-test-output-format.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/python/python3/0001-test_locale.py-correct-the-test-output-format.patch new file mode 100644 index 00000000..35b7e0c4 --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/python/python3/0001-test_locale.py-correct-the-test-output-format.patch @@ -0,0 +1,46 @@ +From b94995e0c694ec9561efec0d1a59b323340e6105 Mon Sep 17 00:00:00 2001 +From: Mingli Yu +Date: Mon, 5 Aug 2019 15:57:39 +0800 +Subject: [PATCH] test_locale.py: correct the test output format + +Before this patch: + # python3 -m test -v test_locale + [snip] + test_getsetlocale_issue1813 (test.test_locale.TestMiscellaneous) ... testing with ('tr_TR', 'ISO8859-9') ok + [snip] + + After this patch: + # python3 -m test -v test_locale + [snip] + test_getsetlocale_issue1813 (test.test_locale.TestMiscellaneous) ... testing with ('tr_TR', 'ISO8859-9')... ok + [snip] + + Make the test ended with "... ok" is common in python + unittest world, we should make it keep consistent + with other test cases in case it may be ignored to + record in the report if we use the common filter + "... ok". + +Upstream-Status: Submitted [https://github.com/python/cpython/pull/15132] + +Signed-off-by: Mingli Yu +--- + Lib/test/test_locale.py | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/Lib/test/test_locale.py b/Lib/test/test_locale.py +index e2c2178..558d63c 100644 +--- a/Lib/test/test_locale.py ++++ b/Lib/test/test_locale.py +@@ -527,7 +527,7 @@ class TestMiscellaneous(unittest.TestCase): + self.skipTest('test needs Turkish locale') + loc = locale.getlocale(locale.LC_CTYPE) + if verbose: +- print('testing with %a' % (loc,), end=' ', flush=True) ++ print('testing with %a...' % (loc,), end=' ', flush=True) + locale.setlocale(locale.LC_CTYPE, loc) + self.assertEqual(loc, locale.getlocale(locale.LC_CTYPE)) + +-- +2.7.4 + diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/python/python3/0017-setup.py-do-not-report-missing-dependencies-for-disa.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/python/python3/0017-setup.py-do-not-report-missing-dependencies-for-disa.patch new file mode 100644 index 00000000..c15295c0 --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/python/python3/0017-setup.py-do-not-report-missing-dependencies-for-disa.patch @@ -0,0 +1,31 @@ +From e3b59cb9658e1d3efa3535840939a0fa92a70a5a Mon Sep 17 00:00:00 2001 +From: Alexander Kanavin +Date: Mon, 7 Oct 2019 13:22:14 +0200 +Subject: [PATCH] setup.py: do not report missing dependencies for disabled + modules + +Reporting those missing dependencies is misleading as the modules would not +have been built anyway. This particularly matters in oe-core's automated +build completeness checker which relies on the report. + +Upstream-Status: Inappropriate [oe-core specific] +Signed-off-by: Alexander Kanavin +--- + setup.py | 4 ++++ + 1 file changed, 4 insertions(+) + +diff --git a/setup.py b/setup.py +index 4b53668..0097643 100644 +--- a/setup.py ++++ b/setup.py +@@ -365,6 +365,10 @@ class PyBuildExt(build_ext): + print("%-*s %-*s %-*s" % (longest, e, longest, f, + longest, g)) + ++ # There is no need to report missing module dependencies, ++ # if the modules have been disabled in the first place. ++ missing = list(set(missing) - set(sysconf_dis)) ++ + if missing: + print() + print("Python build finished successfully!") diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/python/python3/12-distutils-prefix-is-inside-staging-area.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/python/python3/12-distutils-prefix-is-inside-staging-area.patch index 35213171..d49604ba 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/python/python3/12-distutils-prefix-is-inside-staging-area.patch +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/python/python3/12-distutils-prefix-is-inside-staging-area.patch @@ -1,4 +1,4 @@ -From 12900d498bb77bcc990868a80eaf0ab257b88fff Mon Sep 17 00:00:00 2001 +From a274ba778838824efcacaba57c415b7262f779ec Mon Sep 17 00:00:00 2001 From: Khem Raj Date: Tue, 14 May 2013 15:00:26 -0700 Subject: [PATCH] python3: Add target and native recipes @@ -14,36 +14,40 @@ Upstream-Status: Inappropriate [embedded specific] # Signed-off-by: Alejandro Hernandez --- - Lib/distutils/sysconfig.py | 10 ++++++++-- - 1 file changed, 8 insertions(+), 2 deletions(-) + Lib/distutils/sysconfig.py | 14 +++++++++++--- + 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/Lib/distutils/sysconfig.py b/Lib/distutils/sysconfig.py -index 6b8c129..3ca7f79 100644 +index 3dfd0a3..6c6b09a 100644 --- a/Lib/distutils/sysconfig.py +++ b/Lib/distutils/sysconfig.py -@@ -84,7 +84,9 @@ def get_python_inc(plat_specific=0, prefix=None): +@@ -97,7 +97,9 @@ def get_python_inc(plat_specific=0, prefix=None): If 'prefix' is supplied, use it instead of sys.base_prefix or sys.base_exec_prefix -- i.e., ignore 'plat_specific'. """ - if prefix is None: -+ if prefix is None and os.environ['STAGING_INCDIR'] != "": ++ if prefix is None and os.environ.get('STAGING_INCDIR', ""): + prefix = os.environ['STAGING_INCDIR'].rstrip('include') + elif prefix is None: prefix = plat_specific and BASE_EXEC_PREFIX or BASE_PREFIX if os.name == "posix": if python_build: -@@ -122,6 +124,10 @@ def get_python_lib(plat_specific=0, standard_lib=0, prefix=None): +@@ -140,7 +142,13 @@ def get_python_lib(plat_specific=0, standard_lib=0, prefix=None): If 'prefix' is supplied, use it instead of sys.base_prefix or sys.base_exec_prefix -- i.e., ignore 'plat_specific'. """ -+ lib_basename = os.environ['STAGING_LIBDIR'].split('/')[-1] -+ if prefix is None and os.environ['STAGING_LIBDIR'] != "": +- if prefix is None: ++ if os.environ.get('STAGING_LIBDIR', ""): ++ lib_basename = os.environ['STAGING_LIBDIR'].split('/')[-1] ++ else: ++ lib_basename = "lib" ++ if prefix is None and os.environ.get('STAGING_LIBDIR', ""): + prefix = os.environ['STAGING_LIBDIR'].rstrip(lib_basename) -+ - if prefix is None: ++ elif prefix is None: if standard_lib: prefix = plat_specific and BASE_EXEC_PREFIX or BASE_PREFIX -@@ -130,7 +136,7 @@ def get_python_lib(plat_specific=0, standard_lib=0, prefix=None): + else: +@@ -148,7 +156,7 @@ def get_python_lib(plat_specific=0, standard_lib=0, prefix=None): if os.name == "posix": libpython = os.path.join(prefix, diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/python/python3/python3-manifest.json b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/python/python3/python3-manifest.json index 0803ac00..dba92b0e 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/python/python3/python3-manifest.json +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/python/python3/python3-manifest.json @@ -115,7 +115,7 @@ "cached": [] }, "asyncio": { - "summary": "Python Asynchronous I/", + "summary": "Python Asynchronous I/O", "rdepends": [ "core", "io", @@ -210,7 +210,10 @@ "summary": "Python interpreter and core modules", "rdepends": [], "files": [ - "${bindir}/python*[!-config]", + "${bindir}/python3", + "${bindir}/python${PYTHON_MAJMIN}", + "${bindir}/python${PYTHON_MAJMIN}.real", + "${bindir}/python${PYTHON_BINABI}", "${includedir}/python${PYTHON_BINABI}/pyconfig*.h", "${prefix}/lib/python${PYTHON_MAJMIN}/config*/*[!.a]", "${libdir}/python${PYTHON_MAJMIN}/UserDict.py", @@ -291,6 +294,7 @@ "${libdir}/python${PYTHON_MAJMIN}/re.py", "${libdir}/python${PYTHON_MAJMIN}/reprlib.py", "${libdir}/python${PYTHON_MAJMIN}/rlcompleter.py", + "${libdir}/python${PYTHON_MAJMIN}/runpy.py", "${libdir}/python${PYTHON_MAJMIN}/selectors.py", "${libdir}/python${PYTHON_MAJMIN}/signal.py", "${libdir}/python${PYTHON_MAJMIN}/site.py", @@ -355,6 +359,7 @@ "${libdir}/python${PYTHON_MAJMIN}/__pycache__/re.*.pyc", "${libdir}/python${PYTHON_MAJMIN}/__pycache__/reprlib.*.pyc", "${libdir}/python${PYTHON_MAJMIN}/__pycache__/rlcompleter.*.pyc", + "${libdir}/python${PYTHON_MAJMIN}/__pycache__/runpy.*.pyc", "${libdir}/python${PYTHON_MAJMIN}/__pycache__/selectors.*.pyc", "${libdir}/python${PYTHON_MAJMIN}/__pycache__/signal.*.pyc", "${libdir}/python${PYTHON_MAJMIN}/__pycache__/site.*.pyc", @@ -485,7 +490,7 @@ "files": [ "${base_libdir}/*.a", "${base_libdir}/*.o", - "${bindir}/python*-config", + "${bindir}/python*-config*", "${datadir}/aclocal", "${datadir}/pkgconfig", "${includedir}", @@ -496,7 +501,8 @@ "${libdir}/pkgconfig" ], "rdepends": [ - "core" + "core", + "distutils" ], "summary": "Python development package" }, @@ -512,17 +518,15 @@ "${libdir}/python${PYTHON_MAJMIN}/__pycache__/difflib.*.pyc" ] }, - "distutils-staticdev": { - "cached": [ - "${libdir}/python${PYTHON_MAJMIN}/config/__pycache__/lib*.a" - ], + "distutils-windows": { + "cached": [], "files": [ - "${libdir}/python${PYTHON_MAJMIN}/config/lib*.a" + "${libdir}/python${PYTHON_MAJMIN}/distutils/command/wininst-*.exe" ], "rdepends": [ "distutils" ], - "summary": "Python distribution utilities (static libraries)" + "summary": "Python distribution utilities (Windows installer stubs)" }, "distutils": { "summary": "Python Distribution Utilities", @@ -785,7 +789,6 @@ "profile", "pydoc", "resource", - "runpy", "shell", "smtpd", "sqlite3", @@ -801,6 +804,9 @@ "xml", "xmlrpc" ], + "rrecommends": [ + "distutils-windows" + ], "summary": "All Python modules" }, "multiprocessing": { @@ -1004,19 +1010,6 @@ ], "cached": [] }, - "runpy": { - "summary": "Python helper for locating/executing scripts in module namespace", - "rdepends": [ - "core", - "pkgutil" - ], - "files": [ - "${libdir}/python${PYTHON_MAJMIN}/runpy.py" - ], - "cached": [ - "${libdir}/python${PYTHON_MAJMIN}/__pycache__/runpy.*.pyc" - ] - }, "shell": { "summary": "Python shell-like functionality", "rdepends": [ diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/python/python3_3.7.3.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/python/python3_3.7.3.bb deleted file mode 100644 index 3409d94b..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/python/python3_3.7.3.bb +++ /dev/null @@ -1,318 +0,0 @@ -SUMMARY = "The Python Programming Language" -HOMEPAGE = "http://www.python.org" -LICENSE = "PSFv2" -SECTION = "devel/python" - -LIC_FILES_CHKSUM = "file://LICENSE;md5=e466242989bd33c1bd2b6a526a742498" - -SRC_URI = "http://www.python.org/ftp/python/${PV}/Python-${PV}.tar.xz \ - file://run-ptest \ - file://create_manifest3.py \ - file://get_module_deps3.py \ - file://python3-manifest.json \ - file://check_build_completeness.py \ - file://cgi_py.patch \ - file://0001-Do-not-add-usr-lib-termcap-to-linker-flags-to-avoid-.patch \ - ${@bb.utils.contains('PACKAGECONFIG', 'tk', '', 'file://avoid_warning_about_tkinter.patch', d)} \ - file://0001-Do-not-use-the-shell-version-of-python-config-that-w.patch \ - file://python-config.patch \ - file://0001-Makefile.pre-use-qemu-wrapper-when-gathering-profile.patch \ - file://0001-Do-not-hardcode-lib-as-location-for-site-packages-an.patch \ - file://0001-python3-use-cc_basename-to-replace-CC-for-checking-c.patch \ - file://0002-Don-t-do-runtime-test-to-get-float-byte-order.patch \ - file://0003-setup.py-pass-missing-libraries-to-Extension-for-mul.patch \ - file://0001-Lib-sysconfig.py-fix-another-place-where-lib-is-hard.patch \ - file://0001-Makefile-fix-Issue36464-parallel-build-race-problem.patch \ - file://0001-bpo-36852-proper-detection-of-mips-architecture-for-.patch \ - file://crosspythonpath.patch \ - file://reformat_sysconfig.py \ - " - -SRC_URI_append_class-native = " \ - file://0001-distutils-sysconfig-append-STAGING_LIBDIR-python-sys.patch \ - file://12-distutils-prefix-is-inside-staging-area.patch \ - " -SRC_URI_append_class-nativesdk = " \ - file://0001-main.c-if-OEPYTHON3HOME-is-set-use-instead-of-PYTHON.patch \ - " - -SRC_URI[md5sum] = "93df27aec0cd18d6d42173e601ffbbfd" -SRC_URI[sha256sum] = "da60b54064d4cfcd9c26576f6df2690e62085123826cff2e667e72a91952d318" - -# exclude pre-releases for both python 2.x and 3.x -UPSTREAM_CHECK_REGEX = "[Pp]ython-(?P\d+(\.\d+)+).tar" - -CVE_PRODUCT = "python" - -PYTHON_MAJMIN = "3.7" -PYTHON_BINABI = "${PYTHON_MAJMIN}m" - -S = "${WORKDIR}/Python-${PV}" - -BBCLASSEXTEND = "native nativesdk" - -inherit autotools pkgconfig qemu ptest multilib_header update-alternatives - -MULTILIB_SUFFIX = "${@d.getVar('base_libdir',1).split('/')[-1]}" - -ALTERNATIVE_${PN}-dev = "python-config" -ALTERNATIVE_LINK_NAME[python-config] = "${bindir}/python${PYTHON_BINABI}-config" -ALTERNATIVE_TARGET[python-config] = "${bindir}/python${PYTHON_BINABI}-config-${MULTILIB_SUFFIX}" - - -DEPENDS = "bzip2-replacement-native libffi bzip2 gdbm openssl sqlite3 zlib virtual/libintl xz virtual/crypt util-linux libtirpc libnsl2" -DEPENDS_append_class-target = " python3-native" -DEPENDS_append_class-nativesdk = " python3-native" - -EXTRA_OECONF = " --without-ensurepip --enable-shared" -EXTRA_OECONF_append_class-native = " --bindir=${bindir}/${PN}" - -export CROSSPYTHONPATH="${STAGING_LIBDIR_NATIVE}/python${PYTHON_MAJMIN}/lib-dynload/" - -EXTRANATIVEPATH += "python3-native" - -CACHED_CONFIGUREVARS = " \ - ac_cv_file__dev_ptmx=yes \ - ac_cv_file__dev_ptc=no \ - ac_cv_working_tzset=yes \ -" -python() { - # PGO currently causes builds to not be reproducible, so disable it for - # now. See YOCTO #13407 - if bb.utils.contains('MACHINE_FEATURES', 'qemu-usermode', True, False, d) and d.getVar('BUILD_REPRODUCIBLE_BINARIES') != '1': - d.setVar('PACKAGECONFIG_PGO', 'pgo') - else: - d.setVar('PACKAGECONFIG_PGO', '') -} - -PACKAGECONFIG_class-target ??= "readline ${PACKAGECONFIG_PGO}" -PACKAGECONFIG_class-native ??= "readline" -PACKAGECONFIG_class-nativesdk ??= "readline" -PACKAGECONFIG[readline] = ",,readline" -# Use profile guided optimisation by running PyBench inside qemu-user -PACKAGECONFIG[pgo] = "--enable-optimizations,,qemu-native" -PACKAGECONFIG[tk] = ",,tk" - -CPPFLAGS_append = " -I${STAGING_INCDIR}/ncursesw -I${STAGING_INCDIR}/uuid" - -EXTRA_OEMAKE = '\ - STAGING_LIBDIR=${STAGING_LIBDIR} \ - STAGING_INCDIR=${STAGING_INCDIR} \ - LIB=${baselib} \ -' - -do_compile_prepend_class-target() { - if ${@bb.utils.contains('PACKAGECONFIG', 'pgo', 'true', 'false', d)}; then - qemu_binary="${@qemu_wrapper_cmdline(d, '${STAGING_DIR_TARGET}', ['${B}', '${STAGING_DIR_TARGET}/${base_libdir}'])}" - cat >pgo-wrapper < ${B}/Modules/Setup.local << EOF +*disabled* +${@bb.utils.contains('PACKAGECONFIG', 'gdbm', '', '_gdbm _dbm', d)} +${@bb.utils.contains('PACKAGECONFIG', 'readline', '', 'readline', d)} +EOF +} + +CPPFLAGS_append = " -I${STAGING_INCDIR}/ncursesw -I${STAGING_INCDIR}/uuid" + +EXTRA_OEMAKE = '\ + STAGING_LIBDIR=${STAGING_LIBDIR} \ + STAGING_INCDIR=${STAGING_INCDIR} \ + LIB=${baselib} \ +' + +do_compile_prepend_class-target() { + if ${@bb.utils.contains('PACKAGECONFIG', 'pgo', 'true', 'false', d)}; then + qemu_binary="${@qemu_wrapper_cmdline(d, '${STAGING_DIR_TARGET}', ['${B}', '${STAGING_DIR_TARGET}/${base_libdir}'])}" + cat >pgo-wrapper < 0){ + while((opt = getopt(argc, argv, "bd:f:t:u:g:h")) > 0){ switch(opt) { case 'b': brief = 1; @@ -63,7 +63,7 @@ int main(int argc, char **argv) if(*end != '\0'){ fprintf(stderr, "'%s' is neither a username nor a numeric uid.\n", optarg); - Usage(name); + Usage(name, 1); } break; case 'g': @@ -76,7 +76,7 @@ int main(int argc, char **argv) if(*end != '\0'){ fprintf(stderr, "'%s' is neither a groupname nor a numeric group.\n", optarg); - Usage(name); + Usage(name, 1); } break; @@ -84,8 +84,10 @@ int main(int argc, char **argv) tun = optarg; break; case 'h': + Usage(name, 0); + break; default: - Usage(name); + Usage(name, 1); } } @@ -93,7 +95,7 @@ int main(int argc, char **argv) argc -= optind; if(argc > 0) - Usage(name); + Usage(name, 1); if((tap_fd = open(file, O_RDWR)) < 0){ fprintf(stderr, "Failed to open '%s' : ", file); diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/qemu/qemu-native.inc b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/qemu/qemu-native.inc index 34ab8e64..69c2c43e 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/qemu/qemu-native.inc +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/qemu/qemu-native.inc @@ -3,10 +3,9 @@ inherit native require qemu.inc SRC_URI_append = " \ - file://0011-fix-libcap-header-issue-on-some-distro.patch \ - file://0012-cpus.c-Add-error-messages-when-qemi_cpu_kick_thread-.patch \ + file://0010-fix-libcap-header-issue-on-some-distro.patch \ + file://0011-cpus.c-Add-error-messages-when-qemi_cpu_kick_thread-.patch \ " -EXTRA_OECONF_append = " --python=python2.7" EXTRA_OEMAKE_append = " LD='${LD}' AR='${AR}' OBJCOPY='${OBJCOPY}' LDFLAGS='${LDFLAGS}'" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/qemu/qemu-native_4.0.0.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/qemu/qemu-native_4.1.0.bb similarity index 100% rename from Contrib-Inspur/openbmc/poky/meta/recipes-devtools/qemu/qemu-native_4.0.0.bb rename to Contrib-Inspur/openbmc/poky/meta/recipes-devtools/qemu/qemu-native_4.1.0.bb diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/qemu/qemu-system-native_4.0.0.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/qemu/qemu-system-native_4.0.0.bb deleted file mode 100644 index 964dcee5..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/qemu/qemu-system-native_4.0.0.bb +++ /dev/null @@ -1,24 +0,0 @@ -BPN = "qemu" - -require qemu-native.inc - -# As some of the files installed by qemu-native and qemu-system-native -# are the same, we depend on qemu-native to get the full installation set -# and avoid file clashes -DEPENDS = "glib-2.0-native zlib-native pixman-native qemu-native bison-native" - -EXTRA_OECONF_append = " --target-list=${@get_qemu_system_target_list(d)}" - -PACKAGECONFIG ??= "fdt alsa kvm" - -# Handle distros such as CentOS 5 32-bit that do not have kvm support -PACKAGECONFIG_remove = "${@'kvm' if not os.path.exists('/usr/include/linux/kvm.h') else ''}" - -do_install_append() { - install -Dm 0755 ${WORKDIR}/powerpc_rom.bin ${D}${datadir}/qemu - - # The following is also installed by qemu-native - rm -f ${D}${datadir}/qemu/trace-events-all - rm -rf ${D}${datadir}/qemu/keymaps - rm -rf ${D}${datadir}/icons/ -} diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/qemu/qemu-system-native_4.1.0.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/qemu/qemu-system-native_4.1.0.bb new file mode 100644 index 00000000..d83ee593 --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/qemu/qemu-system-native_4.1.0.bb @@ -0,0 +1,24 @@ +BPN = "qemu" + +require qemu-native.inc + +# As some of the files installed by qemu-native and qemu-system-native +# are the same, we depend on qemu-native to get the full installation set +# and avoid file clashes +DEPENDS = "glib-2.0-native zlib-native pixman-native qemu-native bison-native" + +EXTRA_OECONF_append = " --target-list=${@get_qemu_system_target_list(d)}" + +PACKAGECONFIG ??= "fdt alsa kvm" + +# Handle distros such as CentOS 5 32-bit that do not have kvm support +PACKAGECONFIG_remove = "${@'kvm' if not os.path.exists('/usr/include/linux/kvm.h') else ''}" + +do_install_append() { + install -Dm 0755 ${WORKDIR}/powerpc_rom.bin ${D}${datadir}/qemu + + # The following is also installed by qemu-native + rm -f ${D}${datadir}/qemu/trace-events-all + rm -rf ${D}${datadir}/qemu/keymaps + rm -rf ${D}${datadir}/icons/ +} diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/qemu/qemu-targets.inc b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/qemu/qemu-targets.inc index 550d6f0a..8184ef57 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/qemu/qemu-targets.inc +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/qemu/qemu-targets.inc @@ -13,7 +13,7 @@ def get_qemu_target_list(d): softmmuonly += arch + "-softmmu," archs.remove(arch) linuxuseronly = "" - for arch in ['armeb', 'alpha', 'ppc64abi32', 'sparc32plus']: + for arch in ['armeb', 'alpha', 'ppc64abi32', 'sparc32plus', 'aarch64_be']: if arch in archs: linuxuseronly += arch + "-linux-user," archs.remove(arch) diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/qemu/qemu.inc b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/qemu/qemu.inc index ac475a8e..601fc228 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/qemu/qemu.inc +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/qemu/qemu.inc @@ -1,11 +1,15 @@ SUMMARY = "Fast open source processor emulator" +DESCRIPTION = "QEMU is a hosted virtual machine monitor: it emulates the \ +machine's processor through dynamic binary translation and provides a set \ +of different hardware and device models for the machine, enabling it to run \ +a variety of guest operating systems" HOMEPAGE = "http://qemu.org" LICENSE = "GPLv2 & LGPLv2.1" RDEPENDS_${PN}-ptest = "bash make" require qemu-targets.inc -inherit pkgconfig bluetooth ptest +inherit pkgconfig ptest LIC_FILES_CHKSUM = "file://COPYING;md5=441c28d2cf86e15a37fa47e15a72fbac \ file://COPYING.LIB;endline=24;md5=8c5efda6cf1e1b03dcfd0e6c0d271c7f" @@ -17,18 +21,19 @@ SRC_URI = "https://download.qemu.org/${BPN}-${PV}.tar.xz \ file://0002-Add-subpackage-ptest-which-runs-all-unit-test-cases-.patch \ file://0003-qemu-Add-addition-environment-space-to-boot-loader-q.patch \ file://0004-qemu-disable-Valgrind.patch \ - file://0005-qemu-Limit-paths-searched-during-user-mode-emulation.patch \ - file://0006-qemu-native-set-ld.bfd-fix-cflags-and-set-some-envir.patch \ - file://0007-chardev-connect-socket-to-a-spawned-command.patch \ - file://0008-apic-fixup-fallthrough-to-PIC.patch \ - file://0009-linux-user-Fix-webkitgtk-hangs-on-32-bit-x86-target.patch \ - file://0010-Revert-linux-user-fix-mmap-munmap-mprotect-mremap-sh.patch \ - file://0013-target-arm-Fix-vector-operation-segfault.patch \ + file://0005-qemu-native-set-ld.bfd-fix-cflags-and-set-some-envir.patch \ + file://0006-chardev-connect-socket-to-a-spawned-command.patch \ + file://0007-apic-fixup-fallthrough-to-PIC.patch \ + file://0008-linux-user-Fix-webkitgtk-hangs-on-32-bit-x86-target.patch \ + file://0009-Fix-webkitgtk-builds.patch \ + file://0010-configure-Add-pkg-config-handling-for-libgcrypt.patch \ + file://CVE-2019-15890.patch \ + file://CVE-2019-12068.patch \ " UPSTREAM_CHECK_REGEX = "qemu-(?P\d+(\.\d+)+)\.tar" -SRC_URI[md5sum] = "0afeca336fd57ae3d3086ec07f59d708" -SRC_URI[sha256sum] = "13a93dfe75b86734326f8d5b475fde82ec692d5b5a338b4262aeeb6b0fa4e469" +SRC_URI[md5sum] = "cdf2b5ca52b9abac9bacb5842fa420f8" +SRC_URI[sha256sum] = "656e60218689bdeec69903087fd7582d5d3e72238d02f4481d8dc6d79fd909c6" COMPATIBLE_HOST_mipsarchn32 = "null" COMPATIBLE_HOST_mipsarchn64 = "null" @@ -53,7 +58,7 @@ do_install_ptest() { } # QEMU_TARGETS is overridable variable -QEMU_TARGETS ?= "arm aarch64 i386 mips mipsel mips64 mips64el ppc riscv32 riscv64 sh4 x86_64" +QEMU_TARGETS ?= "arm aarch64 i386 mips mipsel mips64 mips64el ppc ppc64 riscv32 riscv64 sh4 x86_64" EXTRA_OECONF = " \ --prefix=${prefix} \ @@ -77,6 +82,8 @@ export LIBTOOL="${HOST_SYS}-libtool" B = "${WORKDIR}/build" +EXTRA_OECONF_append = " --python=${HOSTTOOLS_DIR}/python3" + do_configure_prepend_class-native() { # Append build host pkg-config paths for native target since the host may provide sdl BHOST_PKGCONFIG_PATH=$(PATH=/usr/bin:/bin pkg-config --variable pc_path pkg-config || echo "") @@ -88,6 +95,7 @@ do_configure_prepend_class-native() { do_configure() { ${S}/configure ${EXTRA_OECONF} } +do_configure[cleandirs] += "${B}" do_install () { export STRIP="" @@ -131,13 +139,13 @@ PACKAGECONFIG[xen] = "--enable-xen,--disable-xen,xen,xen-libxenstore xen-libxenc PACKAGECONFIG[vnc-sasl] = "--enable-vnc --enable-vnc-sasl,--disable-vnc-sasl,cyrus-sasl," PACKAGECONFIG[vnc-jpeg] = "--enable-vnc --enable-vnc-jpeg,--disable-vnc-jpeg,jpeg," PACKAGECONFIG[vnc-png] = "--enable-vnc --enable-vnc-png,--disable-vnc-png,libpng," -PACKAGECONFIG[libcurl] = "--enable-curl,--disable-curl,libcurl," +PACKAGECONFIG[libcurl] = "--enable-curl,--disable-curl,curl," PACKAGECONFIG[nss] = "--enable-smartcard,--disable-smartcard,nss," PACKAGECONFIG[curses] = "--enable-curses,--disable-curses,ncurses," PACKAGECONFIG[gtk+] = "--enable-gtk,--disable-gtk,gtk+3 gettext-native" PACKAGECONFIG[vte] = "--enable-vte,--disable-vte,vte gettext-native" PACKAGECONFIG[libcap-ng] = "--enable-cap-ng,--disable-cap-ng,libcap-ng," -PACKAGECONFIG[ssh2] = "--enable-libssh2,--disable-libssh2,libssh2," +PACKAGECONFIG[ssh] = "--enable-libssh,--disable-libssh,libssh," PACKAGECONFIG[gcrypt] = "--enable-gcrypt,--disable-gcrypt,libgcrypt," PACKAGECONFIG[nettle] = "--enable-nettle,--disable-nettle,nettle" PACKAGECONFIG[libusb] = "--enable-libusb,--disable-libusb,libusb1" @@ -148,7 +156,7 @@ PACKAGECONFIG[lzo] = "--enable-lzo,--disable-lzo,lzo" PACKAGECONFIG[numa] = "--enable-numa,--disable-numa,numactl" PACKAGECONFIG[gnutls] = "--enable-gnutls,--disable-gnutls,gnutls" PACKAGECONFIG[bzip2] = "--enable-bzip2,--disable-bzip2,bzip2" -PACKAGECONFIG[bluez] = "--enable-bluez,--disable-bluez,${BLUEZ}" +PACKAGECONFIG[bluez] = "--enable-bluez,--disable-bluez,bluez5" PACKAGECONFIG[libiscsi] = "--enable-libiscsi,--disable-libiscsi" PACKAGECONFIG[kvm] = "--enable-kvm,--disable-kvm" PACKAGECONFIG[virglrenderer] = "--enable-virglrenderer,--disable-virglrenderer,virglrenderer" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/qemu/qemu/0001-qemu-Add-missing-wacom-HID-descriptor.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/qemu/qemu/0001-qemu-Add-missing-wacom-HID-descriptor.patch index 5373915f..9478102a 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/qemu/qemu/0001-qemu-Add-missing-wacom-HID-descriptor.patch +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/qemu/qemu/0001-qemu-Add-missing-wacom-HID-descriptor.patch @@ -1,4 +1,4 @@ -From 1cb804cf0e47116202011f3386b4739af668224a Mon Sep 17 00:00:00 2001 +From 4655dc18074e0be9d239f51dac32b61435da8549 Mon Sep 17 00:00:00 2001 From: Richard Purdie Date: Thu, 27 Nov 2014 14:04:29 +0000 Subject: [PATCH] qemu: Add missing wacom HID descriptor @@ -19,10 +19,10 @@ Upstream-Status: Submitted 1 file changed, 93 insertions(+), 1 deletion(-) diff --git a/hw/usb/dev-wacom.c b/hw/usb/dev-wacom.c -index ac0bc83b..6f9b22d4 100644 +index 8c43db93..3ff8ca28 100644 --- a/hw/usb/dev-wacom.c +++ b/hw/usb/dev-wacom.c -@@ -72,6 +72,89 @@ static const USBDescStrings desc_strings = { +@@ -74,6 +74,89 @@ static const USBDescStrings desc_strings = { [STR_SERIALNUMBER] = "1", }; @@ -112,7 +112,7 @@ index ac0bc83b..6f9b22d4 100644 static const USBDescIface desc_iface_wacom = { .bInterfaceNumber = 0, .bNumEndpoints = 1, -@@ -89,7 +172,7 @@ static const USBDescIface desc_iface_wacom = { +@@ -91,7 +174,7 @@ static const USBDescIface desc_iface_wacom = { 0x00, /* u8 country_code */ 0x01, /* u8 num_descriptors */ 0x22, /* u8 type: Report */ @@ -121,7 +121,7 @@ index ac0bc83b..6f9b22d4 100644 }, }, }, -@@ -269,6 +352,15 @@ static void usb_wacom_handle_control(USBDevice *dev, USBPacket *p, +@@ -271,6 +354,15 @@ static void usb_wacom_handle_control(USBDevice *dev, USBPacket *p, } switch (request) { diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/qemu/qemu/0002-Add-subpackage-ptest-which-runs-all-unit-test-cases-.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/qemu/qemu/0002-Add-subpackage-ptest-which-runs-all-unit-test-cases-.patch index 7b7c5d71..2ccddd53 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/qemu/qemu/0002-Add-subpackage-ptest-which-runs-all-unit-test-cases-.patch +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/qemu/qemu/0002-Add-subpackage-ptest-which-runs-all-unit-test-cases-.patch @@ -1,4 +1,4 @@ -From 281116b31981b0b9e174bda8abe00f4eaa33c2ae Mon Sep 17 00:00:00 2001 +From 67751f3a23e3db3012f391b3b3b73a4484488ce9 Mon Sep 17 00:00:00 2001 From: Juro Bystricky Date: Thu, 31 Aug 2017 11:06:56 -0700 Subject: [PATCH] Add subpackage -ptest which runs all unit test cases for @@ -15,10 +15,10 @@ Signed-off-by: Juro Bystricky 1 file changed, 8 insertions(+) diff --git a/tests/Makefile.include b/tests/Makefile.include -index 36fc73fe..01fecd4d 100644 +index fd7fdb86..83b7f409 100644 --- a/tests/Makefile.include +++ b/tests/Makefile.include -@@ -1184,4 +1184,12 @@ all: $(QEMU_IOTESTS_HELPERS-y) +@@ -1183,4 +1183,12 @@ all: $(QEMU_IOTESTS_HELPERS-y) -include $(wildcard tests/*.d) -include $(wildcard tests/libqos/*.d) diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/qemu/qemu/0003-qemu-Add-addition-environment-space-to-boot-loader-q.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/qemu/qemu/0003-qemu-Add-addition-environment-space-to-boot-loader-q.patch index 9a18ca18..5c42d680 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/qemu/qemu/0003-qemu-Add-addition-environment-space-to-boot-loader-q.patch +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/qemu/qemu/0003-qemu-Add-addition-environment-space-to-boot-loader-q.patch @@ -1,4 +1,4 @@ -From bf04acef9ec31ddcc18ddbb4ac5b7b1e7368bf7d Mon Sep 17 00:00:00 2001 +From 235b94f1188597873c8776b019fed49947983392 Mon Sep 17 00:00:00 2001 From: Jason Wessel Date: Fri, 28 Mar 2014 17:42:43 +0800 Subject: [PATCH] qemu: Add addition environment space to boot loader @@ -19,7 +19,7 @@ Signed-off-by: Roy Li 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hw/mips/mips_malta.c b/hw/mips/mips_malta.c -index 439665ab..285c78ef 100644 +index 20e019bf..d150b01c 100644 --- a/hw/mips/mips_malta.c +++ b/hw/mips/mips_malta.c @@ -60,7 +60,7 @@ diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/qemu/qemu/0004-qemu-disable-Valgrind.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/qemu/qemu/0004-qemu-disable-Valgrind.patch index 9e326081..0ac4ab40 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/qemu/qemu/0004-qemu-disable-Valgrind.patch +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/qemu/qemu/0004-qemu-disable-Valgrind.patch @@ -1,4 +1,4 @@ -From e40f797548bc3ff06c71b6cbe042a46406894d18 Mon Sep 17 00:00:00 2001 +From 3ad7a375015d47fdf5016e03e11fa93440d6d8bd Mon Sep 17 00:00:00 2001 From: Ross Burton Date: Tue, 20 Oct 2015 22:19:08 +0100 Subject: [PATCH] qemu: disable Valgrind @@ -13,10 +13,10 @@ Signed-off-by: Ross Burton 1 file changed, 9 deletions(-) diff --git a/configure b/configure -index 1c563a70..eaf9bb5e 100755 +index 714e7fb6..dad4fc59 100755 --- a/configure +++ b/configure -@@ -5311,15 +5311,6 @@ fi +@@ -5335,15 +5335,6 @@ fi # check if we have valgrind/valgrind.h valgrind_h=no diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/qemu/qemu/0005-qemu-Limit-paths-searched-during-user-mode-emulation.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/qemu/qemu/0005-qemu-Limit-paths-searched-during-user-mode-emulation.patch deleted file mode 100644 index 819720a3..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/qemu/qemu/0005-qemu-Limit-paths-searched-during-user-mode-emulation.patch +++ /dev/null @@ -1,146 +0,0 @@ -From 547c3710a1493d2fd6bb56b819cf162db433756a Mon Sep 17 00:00:00 2001 -From: Richard Purdie -Date: Wed, 9 Mar 2016 22:49:02 +0000 -Subject: [PATCH] qemu: Limit paths searched during user mode emulation - -By default qemu builds a complete list of directories within the user -emulation sysroot (-L option). The OE sysroot directory is large and -this is confusing, for example it indexes all pkgdata. In particular this -confuses strace of qemu binaries with tons of irrelevant paths. - -This patch stops the code indexing up front and instead only indexes -things if/as/when it needs to. This drastically reduces the files it -reads and reduces memory usage and cleans up strace. - -It would also avoid the infinite directory traversal bug in [YOCTO #6996] -although the code could still be vulnerable if it parsed those specific -paths. - -RP -2016/3/9 -Upstream-Status: Pending - ---- - util/path.c | 44 ++++++++++++++++++++++---------------------- - 1 file changed, 22 insertions(+), 22 deletions(-) - -diff --git a/util/path.c b/util/path.c -index 7f9fc272..a416cd4a 100644 ---- a/util/path.c -+++ b/util/path.c -@@ -15,6 +15,7 @@ struct pathelem - char *name; - /* Full path name, eg. /usr/gnemul/x86-linux/lib. */ - char *pathname; -+ int populated_entries; - struct pathelem *parent; - /* Children */ - unsigned int num_entries; -@@ -45,6 +46,7 @@ static struct pathelem *new_entry(const char *root, - new->name = g_strdup(name); - new->pathname = g_strdup_printf("%s/%s", root, name); - new->num_entries = 0; -+ new->populated_entries = 0; - return new; - } - -@@ -53,15 +55,16 @@ static struct pathelem *new_entry(const char *root, - /* Not all systems provide this feature */ - #if defined(DT_DIR) && defined(DT_UNKNOWN) && defined(DT_LNK) - # define dirent_type(dirent) ((dirent)->d_type) --# define is_dir_maybe(type) \ -- ((type) == DT_DIR || (type) == DT_UNKNOWN || (type) == DT_LNK) -+# define is_not_dir(type) \ -+ ((type) != DT_DIR && (type) != DT_UNKNOWN && (type) != DT_LNK) - #else - # define dirent_type(dirent) (1) --# define is_dir_maybe(type) (type) -+# define is_not_dir(type) (0) - #endif - - static struct pathelem *add_dir_maybe(struct pathelem *path) - { -+ unsigned int i; - DIR *dir; - - if ((dir = opendir(path->pathname)) != NULL) { -@@ -74,6 +77,11 @@ static struct pathelem *add_dir_maybe(struct pathelem *path) - } - closedir(dir); - } -+ -+ for (i = 0; i < path->num_entries; i++) -+ (path->entries[i])->parent = path; -+ -+ path->populated_entries = 1; - return path; - } - -@@ -89,26 +97,16 @@ static struct pathelem *add_entry(struct pathelem *root, const char *name, - e = &root->entries[root->num_entries-1]; - - *e = new_entry(root->pathname, root, name); -- if (is_dir_maybe(type)) { -- *e = add_dir_maybe(*e); -+ if (is_not_dir(type)) { -+ (*e)->populated_entries = 1; - } - - return root; - } - --/* This needs to be done after tree is stabilized (ie. no more reallocs!). */ --static void set_parents(struct pathelem *child, struct pathelem *parent) --{ -- unsigned int i; -- -- child->parent = parent; -- for (i = 0; i < child->num_entries; i++) -- set_parents(child->entries[i], child); --} -- - /* FIXME: Doesn't handle DIR/.. where DIR is not in emulated dir. */ - static const char * --follow_path(const struct pathelem *cursor, const char *name) -+follow_path(struct pathelem *cursor, struct pathelem **source, const char *name) - { - unsigned int i, namelen; - -@@ -119,14 +117,18 @@ follow_path(const struct pathelem *cursor, const char *name) - return cursor->pathname; - - if (strneq(name, namelen, "..")) -- return follow_path(cursor->parent, name + namelen); -+ return follow_path(cursor->parent, &cursor->parent, name + namelen); - - if (strneq(name, namelen, ".")) -- return follow_path(cursor, name + namelen); -+ return follow_path(cursor, source, name + namelen); -+ -+ if (!cursor->populated_entries) -+ *source = add_dir_maybe(cursor); -+ cursor = *source; - - for (i = 0; i < cursor->num_entries; i++) - if (strneq(name, namelen, cursor->entries[i]->name)) -- return follow_path(cursor->entries[i], name + namelen); -+ return follow_path(cursor->entries[i], &cursor->entries[i], name + namelen); - - /* Not found */ - return NULL; -@@ -160,8 +162,6 @@ void init_paths(const char *prefix) - g_free(base->name); - g_free(base); - base = NULL; -- } else { -- set_parents(base, base); - } - } - -@@ -173,5 +173,5 @@ const char *path(const char *name) - if (!base || !name || name[0] != '/') - return name; - -- return follow_path(base, name) ?: name; -+ return follow_path(base, &base, name) ?: name; - } diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/qemu/qemu/0005-qemu-native-set-ld.bfd-fix-cflags-and-set-some-envir.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/qemu/qemu/0005-qemu-native-set-ld.bfd-fix-cflags-and-set-some-envir.patch new file mode 100644 index 00000000..a7368151 --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/qemu/qemu/0005-qemu-native-set-ld.bfd-fix-cflags-and-set-some-envir.patch @@ -0,0 +1,26 @@ +From 80e6070bcdfe636b103a13598e6c38ad0d0e7624 Mon Sep 17 00:00:00 2001 +From: Stephen Arnold +Date: Sun, 12 Jun 2016 18:09:56 -0700 +Subject: [PATCH] qemu-native: set ld.bfd, fix cflags, and set some environment + +Upstream-Status: Pending + +--- + configure | 4 ---- + 1 file changed, 4 deletions(-) + +diff --git a/configure b/configure +index dad4fc59..685bbe5e 100755 +--- a/configure ++++ b/configure +@@ -5971,10 +5971,6 @@ write_c_skeleton + if test "$gcov" = "yes" ; then + CFLAGS="-fprofile-arcs -ftest-coverage -g $CFLAGS" + LDFLAGS="-fprofile-arcs -ftest-coverage $LDFLAGS" +-elif test "$fortify_source" = "yes" ; then +- CFLAGS="-O2 -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 $CFLAGS" +-elif test "$debug" = "no"; then +- CFLAGS="-O2 $CFLAGS" + fi + + if test "$have_asan" = "yes"; then diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/qemu/qemu/0006-chardev-connect-socket-to-a-spawned-command.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/qemu/qemu/0006-chardev-connect-socket-to-a-spawned-command.patch new file mode 100644 index 00000000..a4238553 --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/qemu/qemu/0006-chardev-connect-socket-to-a-spawned-command.patch @@ -0,0 +1,239 @@ +From ad853601e75f6d0dd09672bcca05fbe4fac766a4 Mon Sep 17 00:00:00 2001 +From: Alistair Francis +Date: Thu, 21 Dec 2017 11:35:16 -0800 +Subject: [PATCH] chardev: connect socket to a spawned command + +The command is started in a shell (sh -c) with stdin connect to QEMU +via a Unix domain stream socket. QEMU then exchanges data via its own +end of the socket, just like it normally does. + +"-chardev socket" supports some ways of connecting via protocols like +telnet, but that is only a subset of the functionality supported by +tools socat. To use socat instead, for example to connect via a socks +proxy, use: + + -chardev 'socket,id=socat,cmd=exec socat FD:0 SOCKS4A:socks-proxy.localdomain:example.com:9999,,socksuser=nobody' \ + -device usb-serial,chardev=socat + +Beware that commas in the command must be escaped as double commas. + +Or interactively in the console: + (qemu) chardev-add socket,id=cat,cmd=cat + (qemu) device_add usb-serial,chardev=cat + ^ac + # cat >/dev/ttyUSB0 + hello + hello + +Another usage is starting swtpm from inside QEMU. swtpm will +automatically shut down once it looses the connection to the parent +QEMU, so there is no risk of lingering processes: + + -chardev 'socket,id=chrtpm0,cmd=exec swtpm socket --terminate --ctrl type=unixio,,clientfd=0 --tpmstate dir=... --log file=swtpm.log' \ + -tpmdev emulator,id=tpm0,chardev=chrtpm0 \ + -device tpm-tis,tpmdev=tpm0 + +The patch was discussed upstream, but QEMU developers believe that the +code calling QEMU should be responsible for managing additional +processes. In OE-core, that would imply enhancing runqemu and +oeqa. This patch is a simpler solution. + +Because it is not going upstream, the patch was written so that it is +as simple as possible. + +Upstream-Status: Inappropriate [embedded specific] + +Signed-off-by: Patrick Ohly + +--- + chardev/char-socket.c | 101 ++++++++++++++++++++++++++++++++++++++++++ + chardev/char.c | 3 ++ + qapi/char.json | 5 +++ + 3 files changed, 109 insertions(+) + +diff --git a/chardev/char-socket.c b/chardev/char-socket.c +index 7ca5d97a..207fae4a 100644 +--- a/chardev/char-socket.c ++++ b/chardev/char-socket.c +@@ -1278,6 +1278,67 @@ static bool qmp_chardev_validate_socket(ChardevSocket *sock, + return true; + } + ++#ifndef _WIN32 ++static void chardev_open_socket_cmd(Chardev *chr, ++ const char *cmd, ++ Error **errp) ++{ ++ int fds[2] = { -1, -1 }; ++ QIOChannelSocket *sioc = NULL; ++ pid_t pid = -1; ++ const char *argv[] = { "/bin/sh", "-c", cmd, NULL }; ++ ++ /* ++ * We need a Unix domain socket for commands like swtpm and a single ++ * connection, therefore we cannot use qio_channel_command_new_spawn() ++ * without patching it first. Duplicating the functionality is easier. ++ */ ++ if (socketpair(AF_UNIX, SOCK_STREAM|SOCK_CLOEXEC, 0, fds)) { ++ error_setg_errno(errp, errno, "Error creating socketpair(AF_UNIX, SOCK_STREAM|SOCK_CLOEXEC)"); ++ goto error; ++ } ++ ++ pid = qemu_fork(errp); ++ if (pid < 0) { ++ goto error; ++ } ++ ++ if (!pid) { ++ /* child */ ++ dup2(fds[1], STDIN_FILENO); ++ execv(argv[0], (char * const *)argv); ++ _exit(1); ++ } ++ ++ /* ++ * Hand over our end of the socket pair to the qio channel. ++ * ++ * We don't reap the child because it is expected to keep ++ * running. We also don't support the "reconnect" option for the ++ * same reason. ++ */ ++ sioc = qio_channel_socket_new_fd(fds[0], errp); ++ if (!sioc) { ++ goto error; ++ } ++ fds[0] = -1; ++ ++ g_free(chr->filename); ++ chr->filename = g_strdup_printf("cmd:%s", cmd); ++ tcp_chr_new_client(chr, sioc); ++ ++ error: ++ if (fds[0] >= 0) { ++ close(fds[0]); ++ } ++ if (fds[1] >= 0) { ++ close(fds[1]); ++ } ++ if (sioc) { ++ object_unref(OBJECT(sioc)); ++ } ++} ++#endif + + static void qmp_chardev_open_socket(Chardev *chr, + ChardevBackend *backend, +@@ -1286,6 +1347,9 @@ static void qmp_chardev_open_socket(Chardev *chr, + { + SocketChardev *s = SOCKET_CHARDEV(chr); + ChardevSocket *sock = backend->u.socket.data; ++#ifndef _WIN32 ++ const char *cmd = sock->cmd; ++#endif + bool do_nodelay = sock->has_nodelay ? sock->nodelay : false; + bool is_listen = sock->has_server ? sock->server : true; + bool is_telnet = sock->has_telnet ? sock->telnet : false; +@@ -1351,6 +1415,14 @@ static void qmp_chardev_open_socket(Chardev *chr, + + update_disconnected_filename(s); + ++#ifndef _WIN32 ++ if (cmd) { ++ chardev_open_socket_cmd(chr, cmd, errp); ++ ++ /* everything ready (or failed permanently) before we return */ ++ *be_opened = true; ++ } else ++#endif + if (s->is_listen) { + if (qmp_chardev_open_socket_server(chr, is_telnet || is_tn3270, + is_waitconnect, errp) < 0) { +@@ -1370,9 +1442,26 @@ static void qemu_chr_parse_socket(QemuOpts *opts, ChardevBackend *backend, + const char *host = qemu_opt_get(opts, "host"); + const char *port = qemu_opt_get(opts, "port"); + const char *fd = qemu_opt_get(opts, "fd"); ++#ifndef _WIN32 ++ const char *cmd = qemu_opt_get(opts, "cmd"); ++#endif + SocketAddressLegacy *addr; + ChardevSocket *sock; + ++#ifndef _WIN32 ++ if (cmd) { ++ /* ++ * Here we have to ensure that no options are set which are incompatible with ++ * spawning a command, otherwise unmodified code that doesn't know about ++ * command spawning (like socket_reconnect_timeout()) might get called. ++ */ ++ if (path || sock->server || sock->has_telnet || sock->has_tn3270 || sock->reconnect || host || port || sock->tls_creds) { ++ error_setg(errp, "chardev: socket: cmd does not support any additional options"); ++ return; ++ } ++ } else ++#endif ++ + if ((!!path + !!fd + !!host) != 1) { + error_setg(errp, + "Exactly one of 'path', 'fd' or 'host' required"); +@@ -1415,12 +1504,24 @@ static void qemu_chr_parse_socket(QemuOpts *opts, ChardevBackend *backend, + sock->has_tls_authz = qemu_opt_get(opts, "tls-authz"); + sock->tls_authz = g_strdup(qemu_opt_get(opts, "tls-authz")); + ++#ifndef _WIN32 ++ sock->cmd = g_strdup(cmd); ++#endif ++ + addr = g_new0(SocketAddressLegacy, 1); ++#ifndef _WIN32 ++ if (path || cmd) { ++#else + if (path) { ++#endif + UnixSocketAddress *q_unix; + addr->type = SOCKET_ADDRESS_LEGACY_KIND_UNIX; + q_unix = addr->u.q_unix.data = g_new0(UnixSocketAddress, 1); ++#ifndef _WIN32 ++ q_unix->path = cmd ? g_strdup_printf("cmd:%s", cmd) : g_strdup(path); ++#else + q_unix->path = g_strdup(path); ++#endif + } else if (host) { + addr->type = SOCKET_ADDRESS_LEGACY_KIND_INET; + addr->u.inet.data = g_new(InetSocketAddress, 1); +diff --git a/chardev/char.c b/chardev/char.c +index 7b6b2cb1..0c2ca64b 100644 +--- a/chardev/char.c ++++ b/chardev/char.c +@@ -837,6 +837,9 @@ QemuOptsList qemu_chardev_opts = { + },{ + .name = "path", + .type = QEMU_OPT_STRING, ++ },{ ++ .name = "cmd", ++ .type = QEMU_OPT_STRING, + },{ + .name = "host", + .type = QEMU_OPT_STRING, +diff --git a/qapi/char.json b/qapi/char.json +index a6e81ac7..517962c6 100644 +--- a/qapi/char.json ++++ b/qapi/char.json +@@ -247,6 +247,10 @@ + # + # @addr: socket address to listen on (server=true) + # or connect to (server=false) ++# @cmd: command to run via "sh -c" with stdin as one end of ++# a AF_UNIX SOCK_DSTREAM socket pair. The other end ++# is used by the chardev. Either an addr or a cmd can ++# be specified, but not both. + # @tls-creds: the ID of the TLS credentials object (since 2.6) + # @tls-authz: the ID of the QAuthZ authorization object against which + # the client's x509 distinguished name will be validated. This +@@ -272,6 +276,7 @@ + ## + { 'struct': 'ChardevSocket', + 'data': { 'addr': 'SocketAddressLegacy', ++ '*cmd': 'str', + '*tls-creds': 'str', + '*tls-authz' : 'str', + '*server': 'bool', diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/qemu/qemu/0006-qemu-native-set-ld.bfd-fix-cflags-and-set-some-envir.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/qemu/qemu/0006-qemu-native-set-ld.bfd-fix-cflags-and-set-some-envir.patch deleted file mode 100644 index b62a588c..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/qemu/qemu/0006-qemu-native-set-ld.bfd-fix-cflags-and-set-some-envir.patch +++ /dev/null @@ -1,26 +0,0 @@ -From 107fd860529a3c1319d54c3c225758457b0d9394 Mon Sep 17 00:00:00 2001 -From: Stephen Arnold -Date: Sun, 12 Jun 2016 18:09:56 -0700 -Subject: [PATCH] qemu-native: set ld.bfd, fix cflags, and set some environment - -Upstream-Status: Pending - ---- - configure | 4 ---- - 1 file changed, 4 deletions(-) - -diff --git a/configure b/configure -index eaf9bb5e..de2933d1 100755 ---- a/configure -+++ b/configure -@@ -5928,10 +5928,6 @@ write_c_skeleton - if test "$gcov" = "yes" ; then - CFLAGS="-fprofile-arcs -ftest-coverage -g $CFLAGS" - LDFLAGS="-fprofile-arcs -ftest-coverage $LDFLAGS" --elif test "$fortify_source" = "yes" ; then -- CFLAGS="-O2 -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 $CFLAGS" --elif test "$debug" = "no"; then -- CFLAGS="-O2 $CFLAGS" - fi - - if test "$have_asan" = "yes"; then diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/qemu/qemu/0007-apic-fixup-fallthrough-to-PIC.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/qemu/qemu/0007-apic-fixup-fallthrough-to-PIC.patch new file mode 100644 index 00000000..b50e8c25 --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/qemu/qemu/0007-apic-fixup-fallthrough-to-PIC.patch @@ -0,0 +1,44 @@ +From f51e49e7d7d87b7254242b7360f99c2df94a5a2d Mon Sep 17 00:00:00 2001 +From: Mark Asselstine +Date: Tue, 26 Feb 2013 11:43:28 -0500 +Subject: [PATCH] apic: fixup fallthrough to PIC + +Commit 0e21e12bb311c4c1095d0269dc2ef81196ccb60a [Don't route PIC +interrupts through the local APIC if the local APIC config says so.] +missed a check to ensure the local APIC is enabled. Since if the local +APIC is disabled it doesn't matter what the local APIC config says. + +If this check isn't done and the guest has disabled the local APIC the +guest will receive a general protection fault, similar to what is seen +here: + +https://lists.gnu.org/archive/html/qemu-devel/2012-12/msg02304.html + +The GPF is caused by an attempt to service interrupt 0xffffffff. This +comes about since cpu_get_pic_interrupt() calls apic_accept_pic_intr() +(with the local APIC disabled apic_get_interrupt() returns -1). +apic_accept_pic_intr() returns 0 and thus the interrupt number which +is returned from cpu_get_pic_interrupt(), and which is attempted to be +serviced, is -1. + +Signed-off-by: Mark Asselstine +Upstream-Status: Submitted [https://lists.gnu.org/archive/html/qemu-devel/2013-04/msg00878.html] +Signed-off-by: He Zhe + +--- + hw/intc/apic.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/hw/intc/apic.c b/hw/intc/apic.c +index bce89911..df4b582e 100644 +--- a/hw/intc/apic.c ++++ b/hw/intc/apic.c +@@ -603,7 +603,7 @@ int apic_accept_pic_intr(DeviceState *dev) + APICCommonState *s = APIC(dev); + uint32_t lvt0; + +- if (!s) ++ if (!s || !(s->spurious_vec & APIC_SV_ENABLE)) + return -1; + + lvt0 = s->lvt[APIC_LVT_LINT0]; diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/qemu/qemu/0007-chardev-connect-socket-to-a-spawned-command.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/qemu/qemu/0007-chardev-connect-socket-to-a-spawned-command.patch deleted file mode 100644 index f3f3dc3f..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/qemu/qemu/0007-chardev-connect-socket-to-a-spawned-command.patch +++ /dev/null @@ -1,239 +0,0 @@ -From 136e159482a1bc8676cbe6e767055d0c3fb20065 Mon Sep 17 00:00:00 2001 -From: Alistair Francis -Date: Thu, 21 Dec 2017 11:35:16 -0800 -Subject: [PATCH] chardev: connect socket to a spawned command - -The command is started in a shell (sh -c) with stdin connect to QEMU -via a Unix domain stream socket. QEMU then exchanges data via its own -end of the socket, just like it normally does. - -"-chardev socket" supports some ways of connecting via protocols like -telnet, but that is only a subset of the functionality supported by -tools socat. To use socat instead, for example to connect via a socks -proxy, use: - - -chardev 'socket,id=socat,cmd=exec socat FD:0 SOCKS4A:socks-proxy.localdomain:example.com:9999,,socksuser=nobody' \ - -device usb-serial,chardev=socat - -Beware that commas in the command must be escaped as double commas. - -Or interactively in the console: - (qemu) chardev-add socket,id=cat,cmd=cat - (qemu) device_add usb-serial,chardev=cat - ^ac - # cat >/dev/ttyUSB0 - hello - hello - -Another usage is starting swtpm from inside QEMU. swtpm will -automatically shut down once it looses the connection to the parent -QEMU, so there is no risk of lingering processes: - - -chardev 'socket,id=chrtpm0,cmd=exec swtpm socket --terminate --ctrl type=unixio,,clientfd=0 --tpmstate dir=... --log file=swtpm.log' \ - -tpmdev emulator,id=tpm0,chardev=chrtpm0 \ - -device tpm-tis,tpmdev=tpm0 - -The patch was discussed upstream, but QEMU developers believe that the -code calling QEMU should be responsible for managing additional -processes. In OE-core, that would imply enhancing runqemu and -oeqa. This patch is a simpler solution. - -Because it is not going upstream, the patch was written so that it is -as simple as possible. - -Upstream-Status: Inappropriate [embedded specific] - -Signed-off-by: Patrick Ohly - ---- - chardev/char-socket.c | 101 ++++++++++++++++++++++++++++++++++++++++++ - chardev/char.c | 3 ++ - qapi/char.json | 5 +++ - 3 files changed, 109 insertions(+) - -diff --git a/chardev/char-socket.c b/chardev/char-socket.c -index 3916505d..a8e9dce8 100644 ---- a/chardev/char-socket.c -+++ b/chardev/char-socket.c -@@ -1273,6 +1273,67 @@ static bool qmp_chardev_validate_socket(ChardevSocket *sock, - return true; - } - -+#ifndef _WIN32 -+static void chardev_open_socket_cmd(Chardev *chr, -+ const char *cmd, -+ Error **errp) -+{ -+ int fds[2] = { -1, -1 }; -+ QIOChannelSocket *sioc = NULL; -+ pid_t pid = -1; -+ const char *argv[] = { "/bin/sh", "-c", cmd, NULL }; -+ -+ /* -+ * We need a Unix domain socket for commands like swtpm and a single -+ * connection, therefore we cannot use qio_channel_command_new_spawn() -+ * without patching it first. Duplicating the functionality is easier. -+ */ -+ if (socketpair(AF_UNIX, SOCK_STREAM|SOCK_CLOEXEC, 0, fds)) { -+ error_setg_errno(errp, errno, "Error creating socketpair(AF_UNIX, SOCK_STREAM|SOCK_CLOEXEC)"); -+ goto error; -+ } -+ -+ pid = qemu_fork(errp); -+ if (pid < 0) { -+ goto error; -+ } -+ -+ if (!pid) { -+ /* child */ -+ dup2(fds[1], STDIN_FILENO); -+ execv(argv[0], (char * const *)argv); -+ _exit(1); -+ } -+ -+ /* -+ * Hand over our end of the socket pair to the qio channel. -+ * -+ * We don't reap the child because it is expected to keep -+ * running. We also don't support the "reconnect" option for the -+ * same reason. -+ */ -+ sioc = qio_channel_socket_new_fd(fds[0], errp); -+ if (!sioc) { -+ goto error; -+ } -+ fds[0] = -1; -+ -+ g_free(chr->filename); -+ chr->filename = g_strdup_printf("cmd:%s", cmd); -+ tcp_chr_new_client(chr, sioc); -+ -+ error: -+ if (fds[0] >= 0) { -+ close(fds[0]); -+ } -+ if (fds[1] >= 0) { -+ close(fds[1]); -+ } -+ if (sioc) { -+ object_unref(OBJECT(sioc)); -+ } -+} -+#endif - - static void qmp_chardev_open_socket(Chardev *chr, - ChardevBackend *backend, -@@ -1281,6 +1342,9 @@ static void qmp_chardev_open_socket(Chardev *chr, - { - SocketChardev *s = SOCKET_CHARDEV(chr); - ChardevSocket *sock = backend->u.socket.data; -+#ifndef _WIN32 -+ const char *cmd = sock->cmd; -+#endif - bool do_nodelay = sock->has_nodelay ? sock->nodelay : false; - bool is_listen = sock->has_server ? sock->server : true; - bool is_telnet = sock->has_telnet ? sock->telnet : false; -@@ -1346,6 +1410,14 @@ static void qmp_chardev_open_socket(Chardev *chr, - - update_disconnected_filename(s); - -+#ifndef _WIN32 -+ if (cmd) { -+ chardev_open_socket_cmd(chr, cmd, errp); -+ -+ /* everything ready (or failed permanently) before we return */ -+ *be_opened = true; -+ } else -+#endif - if (s->is_listen) { - if (qmp_chardev_open_socket_server(chr, is_telnet || is_tn3270, - is_waitconnect, errp) < 0) { -@@ -1365,9 +1437,26 @@ static void qemu_chr_parse_socket(QemuOpts *opts, ChardevBackend *backend, - const char *host = qemu_opt_get(opts, "host"); - const char *port = qemu_opt_get(opts, "port"); - const char *fd = qemu_opt_get(opts, "fd"); -+#ifndef _WIN32 -+ const char *cmd = qemu_opt_get(opts, "cmd"); -+#endif - SocketAddressLegacy *addr; - ChardevSocket *sock; - -+#ifndef _WIN32 -+ if (cmd) { -+ /* -+ * Here we have to ensure that no options are set which are incompatible with -+ * spawning a command, otherwise unmodified code that doesn't know about -+ * command spawning (like socket_reconnect_timeout()) might get called. -+ */ -+ if (path || sock->server || sock->has_telnet || sock->has_tn3270 || sock->reconnect || host || port || sock->tls_creds) { -+ error_setg(errp, "chardev: socket: cmd does not support any additional options"); -+ return; -+ } -+ } else -+#endif -+ - if ((!!path + !!fd + !!host) != 1) { - error_setg(errp, - "Exactly one of 'path', 'fd' or 'host' required"); -@@ -1410,12 +1499,24 @@ static void qemu_chr_parse_socket(QemuOpts *opts, ChardevBackend *backend, - sock->has_tls_authz = qemu_opt_get(opts, "tls-authz"); - sock->tls_authz = g_strdup(qemu_opt_get(opts, "tls-authz")); - -+#ifndef _WIN32 -+ sock->cmd = g_strdup(cmd); -+#endif -+ - addr = g_new0(SocketAddressLegacy, 1); -+#ifndef _WIN32 -+ if (path || cmd) { -+#else - if (path) { -+#endif - UnixSocketAddress *q_unix; - addr->type = SOCKET_ADDRESS_LEGACY_KIND_UNIX; - q_unix = addr->u.q_unix.data = g_new0(UnixSocketAddress, 1); -+#ifndef _WIN32 -+ q_unix->path = cmd ? g_strdup_printf("cmd:%s", cmd) : g_strdup(path); -+#else - q_unix->path = g_strdup(path); -+#endif - } else if (host) { - addr->type = SOCKET_ADDRESS_LEGACY_KIND_INET; - addr->u.inet.data = g_new(InetSocketAddress, 1); -diff --git a/chardev/char.c b/chardev/char.c -index 514cd6b0..36a40d67 100644 ---- a/chardev/char.c -+++ b/chardev/char.c -@@ -835,6 +835,9 @@ QemuOptsList qemu_chardev_opts = { - },{ - .name = "path", - .type = QEMU_OPT_STRING, -+ },{ -+ .name = "cmd", -+ .type = QEMU_OPT_STRING, - },{ - .name = "host", - .type = QEMU_OPT_STRING, -diff --git a/qapi/char.json b/qapi/char.json -index a6e81ac7..517962c6 100644 ---- a/qapi/char.json -+++ b/qapi/char.json -@@ -247,6 +247,10 @@ - # - # @addr: socket address to listen on (server=true) - # or connect to (server=false) -+# @cmd: command to run via "sh -c" with stdin as one end of -+# a AF_UNIX SOCK_DSTREAM socket pair. The other end -+# is used by the chardev. Either an addr or a cmd can -+# be specified, but not both. - # @tls-creds: the ID of the TLS credentials object (since 2.6) - # @tls-authz: the ID of the QAuthZ authorization object against which - # the client's x509 distinguished name will be validated. This -@@ -272,6 +276,7 @@ - ## - { 'struct': 'ChardevSocket', - 'data': { 'addr': 'SocketAddressLegacy', -+ '*cmd': 'str', - '*tls-creds': 'str', - '*tls-authz' : 'str', - '*server': 'bool', diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/qemu/qemu/0008-apic-fixup-fallthrough-to-PIC.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/qemu/qemu/0008-apic-fixup-fallthrough-to-PIC.patch deleted file mode 100644 index 13037f33..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/qemu/qemu/0008-apic-fixup-fallthrough-to-PIC.patch +++ /dev/null @@ -1,44 +0,0 @@ -From 1b3f264e2ba18caf658fae27293c426c8366c6a3 Mon Sep 17 00:00:00 2001 -From: Mark Asselstine -Date: Tue, 26 Feb 2013 11:43:28 -0500 -Subject: [PATCH] apic: fixup fallthrough to PIC - -Commit 0e21e12bb311c4c1095d0269dc2ef81196ccb60a [Don't route PIC -interrupts through the local APIC if the local APIC config says so.] -missed a check to ensure the local APIC is enabled. Since if the local -APIC is disabled it doesn't matter what the local APIC config says. - -If this check isn't done and the guest has disabled the local APIC the -guest will receive a general protection fault, similar to what is seen -here: - -https://lists.gnu.org/archive/html/qemu-devel/2012-12/msg02304.html - -The GPF is caused by an attempt to service interrupt 0xffffffff. This -comes about since cpu_get_pic_interrupt() calls apic_accept_pic_intr() -(with the local APIC disabled apic_get_interrupt() returns -1). -apic_accept_pic_intr() returns 0 and thus the interrupt number which -is returned from cpu_get_pic_interrupt(), and which is attempted to be -serviced, is -1. - -Signed-off-by: Mark Asselstine -Upstream-Status: Submitted [https://lists.gnu.org/archive/html/qemu-devel/2013-04/msg00878.html] -Signed-off-by: He Zhe - ---- - hw/intc/apic.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/hw/intc/apic.c b/hw/intc/apic.c -index 6ea619c3..f892811e 100644 ---- a/hw/intc/apic.c -+++ b/hw/intc/apic.c -@@ -604,7 +604,7 @@ int apic_accept_pic_intr(DeviceState *dev) - APICCommonState *s = APIC(dev); - uint32_t lvt0; - -- if (!s) -+ if (!s || !(s->spurious_vec & APIC_SV_ENABLE)) - return -1; - - lvt0 = s->lvt[APIC_LVT_LINT0]; diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/qemu/qemu/0008-linux-user-Fix-webkitgtk-hangs-on-32-bit-x86-target.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/qemu/qemu/0008-linux-user-Fix-webkitgtk-hangs-on-32-bit-x86-target.patch new file mode 100644 index 00000000..e562f25b --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/qemu/qemu/0008-linux-user-Fix-webkitgtk-hangs-on-32-bit-x86-target.patch @@ -0,0 +1,33 @@ +From 25a064f91f73630e5dff2a6aeb23d953c469cea6 Mon Sep 17 00:00:00 2001 +From: Alistair Francis +Date: Wed, 17 Jan 2018 10:51:49 -0800 +Subject: [PATCH] linux-user: Fix webkitgtk hangs on 32-bit x86 target + +Since commit "linux-user: Tidy and enforce reserved_va initialization" +(18e80c55bb6ec17c05ec0ba717ec83933c2bfc07) the Yocto webkitgtk build +hangs when cross compiling for 32-bit x86 on a 64-bit x86 machine using +musl. + +To fix the issue reduce the MAX_RESERVED_VA macro to be a closer match +to what it was before the problematic commit. + +Upstream-Status: Submitted http://lists.gnu.org/archive/html/qemu-devel/2018-01/msg04185.html +Signed-off-by: Alistair Francis + +--- + linux-user/main.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/linux-user/main.c b/linux-user/main.c +index 8ffc5251..4067e739 100644 +--- a/linux-user/main.c ++++ b/linux-user/main.c +@@ -77,7 +77,7 @@ int have_guest_base; + (TARGET_LONG_BITS == 32 || defined(TARGET_ABI32)) + /* There are a number of places where we assign reserved_va to a variable + of type abi_ulong and expect it to fit. Avoid the last page. */ +-# define MAX_RESERVED_VA (0xfffffffful & TARGET_PAGE_MASK) ++# define MAX_RESERVED_VA (0x7ffffffful & TARGET_PAGE_MASK) + # else + # define MAX_RESERVED_VA (1ul << TARGET_VIRT_ADDR_SPACE_BITS) + # endif diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/qemu/qemu/0009-Fix-webkitgtk-builds.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/qemu/qemu/0009-Fix-webkitgtk-builds.patch new file mode 100644 index 00000000..4072d945 --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/qemu/qemu/0009-Fix-webkitgtk-builds.patch @@ -0,0 +1,137 @@ +From b633b9a1813fcd715dce44659a89293f1c64ae8c Mon Sep 17 00:00:00 2001 +From: Martin Jansa +Date: Fri, 1 Jun 2018 08:41:07 +0000 +Subject: [PATCH] Fix webkitgtk builds + +This is a partial revert of "linux-user: fix mmap/munmap/mprotect/mremap/shmat". + +This patch fixes qemu-i386 hangs during gobject-introspection in webkitgtk build +when musl is used on qemux86. This is the same issue that +0008-linux-user-Fix-webkitgtk-hangs-on-32-bit-x86-target.patch was +fixing in the 2.11 release. + +This patch also fixes a build failure when building webkitgtk for +qemumips. A QEMU assert is seen while building webkitgtk: +page_check_range: Assertion `start < ((target_ulong)1 << L1_MAP_ADDR_SPACE_BITS)' failed. + +This reverts commit ebf9a3630c911d0cfc9c20f7cafe9ba4f88cf583. + +Upstream-Status: Pending +Signed-off-by: Alistair Francis +--- + include/exec/cpu-all.h | 6 +----- + include/exec/cpu_ldst.h | 5 ++++- + linux-user/mmap.c | 17 ++++------------- + linux-user/syscall.c | 5 +---- + 4 files changed, 10 insertions(+), 23 deletions(-) + +diff --git a/include/exec/cpu-all.h b/include/exec/cpu-all.h +index 536ea58f81..4c63a6a2e4 100644 +--- a/include/exec/cpu-all.h ++++ b/include/exec/cpu-all.h +@@ -162,12 +162,8 @@ extern unsigned long guest_base; + extern int have_guest_base; + extern unsigned long reserved_va; + +-#if HOST_LONG_BITS <= TARGET_VIRT_ADDR_SPACE_BITS +-#define GUEST_ADDR_MAX (~0ul) +-#else +-#define GUEST_ADDR_MAX (reserved_va ? reserved_va - 1 : \ ++#define GUEST_ADDR_MAX (reserved_va ? reserved_va : \ + (1ul << TARGET_VIRT_ADDR_SPACE_BITS) - 1) +-#endif + #else + + #include "exec/hwaddr.h" +diff --git a/include/exec/cpu_ldst.h b/include/exec/cpu_ldst.h +index 9151fdb042..cb2b8f329f 100644 +--- a/include/exec/cpu_ldst.h ++++ b/include/exec/cpu_ldst.h +@@ -65,7 +65,10 @@ typedef uint64_t abi_ptr; + #if HOST_LONG_BITS <= TARGET_VIRT_ADDR_SPACE_BITS + #define guest_addr_valid(x) (1) + #else +-#define guest_addr_valid(x) ((x) <= GUEST_ADDR_MAX) ++#define guest_addr_valid(x) ({ \ ++ ((x) < (1ul << TARGET_VIRT_ADDR_SPACE_BITS)) && \ ++ (!reserved_va || ((x) < reserved_va)); \ ++}) + #endif + #define h2g_valid(x) guest_addr_valid((unsigned long)(x) - guest_base) + +diff --git a/linux-user/mmap.c b/linux-user/mmap.c +index 46a6e3a761..7735465462 100644 +--- a/linux-user/mmap.c ++++ b/linux-user/mmap.c +@@ -78,7 +78,7 @@ int target_mprotect(abi_ulong start, abi_ulong len, int prot) + return -TARGET_EINVAL; + len = TARGET_PAGE_ALIGN(len); + end = start + len; +- if (!guest_range_valid(start, len)) { ++ if (end < start) { + return -TARGET_ENOMEM; + } + prot &= PROT_READ | PROT_WRITE | PROT_EXEC; +@@ -495,8 +495,8 @@ abi_long target_mmap(abi_ulong start, abi_ulong len, int prot, + * It can fail only on 64-bit host with 32-bit target. + * On any other target/host host mmap() handles this error correctly. + */ +- if (!guest_range_valid(start, len)) { +- errno = ENOMEM; ++ if ((unsigned long)start + len - 1 > (abi_ulong) -1) { ++ errno = EINVAL; + goto fail; + } + +@@ -636,10 +636,8 @@ int target_munmap(abi_ulong start, abi_ulong len) + if (start & ~TARGET_PAGE_MASK) + return -TARGET_EINVAL; + len = TARGET_PAGE_ALIGN(len); +- if (len == 0 || !guest_range_valid(start, len)) { ++ if (len == 0) + return -TARGET_EINVAL; +- } +- + mmap_lock(); + end = start + len; + real_start = start & qemu_host_page_mask; +@@ -694,13 +692,6 @@ abi_long target_mremap(abi_ulong old_addr, abi_ulong old_size, + int prot; + void *host_addr; + +- if (!guest_range_valid(old_addr, old_size) || +- ((flags & MREMAP_FIXED) && +- !guest_range_valid(new_addr, new_size))) { +- errno = ENOMEM; +- return -1; +- } +- + mmap_lock(); + + if (flags & MREMAP_FIXED) { +diff --git a/linux-user/syscall.c b/linux-user/syscall.c +index 8b41a03901..bc5d85de02 100644 +--- a/linux-user/syscall.c ++++ b/linux-user/syscall.c +@@ -4031,9 +4031,6 @@ static inline abi_ulong do_shmat(CPUArchState *cpu_env, + return -TARGET_EINVAL; + } + } +- if (!guest_range_valid(shmaddr, shm_info.shm_segsz)) { +- return -TARGET_EINVAL; +- } + + mmap_lock(); + +@@ -6881,7 +6878,7 @@ static int open_self_maps(void *cpu_env, int fd) + } + if (h2g_valid(min)) { + int flags = page_get_flags(h2g(min)); +- max = h2g_valid(max - 1) ? max : (uintptr_t)g2h(GUEST_ADDR_MAX) + 1; ++ max = h2g_valid(max - 1) ? max : (uintptr_t)g2h(GUEST_ADDR_MAX); + if (page_check_range(h2g(min), max - min, flags) == -1) { + continue; + } +-- +2.22.0 + diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/qemu/qemu/0009-linux-user-Fix-webkitgtk-hangs-on-32-bit-x86-target.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/qemu/qemu/0009-linux-user-Fix-webkitgtk-hangs-on-32-bit-x86-target.patch deleted file mode 100644 index c572ff94..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/qemu/qemu/0009-linux-user-Fix-webkitgtk-hangs-on-32-bit-x86-target.patch +++ /dev/null @@ -1,33 +0,0 @@ -From a33ae91504ea4d254b5ace64a84791d3c96c9773 Mon Sep 17 00:00:00 2001 -From: Alistair Francis -Date: Wed, 17 Jan 2018 10:51:49 -0800 -Subject: [PATCH] linux-user: Fix webkitgtk hangs on 32-bit x86 target - -Since commit "linux-user: Tidy and enforce reserved_va initialization" -(18e80c55bb6ec17c05ec0ba717ec83933c2bfc07) the Yocto webkitgtk build -hangs when cross compiling for 32-bit x86 on a 64-bit x86 machine using -musl. - -To fix the issue reduce the MAX_RESERVED_VA macro to be a closer match -to what it was before the problematic commit. - -Upstream-Status: Submitted http://lists.gnu.org/archive/html/qemu-devel/2018-01/msg04185.html -Signed-off-by: Alistair Francis - ---- - linux-user/main.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/linux-user/main.c b/linux-user/main.c -index a0aba9cb..34c54924 100644 ---- a/linux-user/main.c -+++ b/linux-user/main.c -@@ -69,7 +69,7 @@ int have_guest_base; - (TARGET_LONG_BITS == 32 || defined(TARGET_ABI32)) - /* There are a number of places where we assign reserved_va to a variable - of type abi_ulong and expect it to fit. Avoid the last page. */ --# define MAX_RESERVED_VA (0xfffffffful & TARGET_PAGE_MASK) -+# define MAX_RESERVED_VA (0x7ffffffful & TARGET_PAGE_MASK) - # else - # define MAX_RESERVED_VA (1ul << TARGET_VIRT_ADDR_SPACE_BITS) - # endif diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/qemu/qemu/0010-Revert-linux-user-fix-mmap-munmap-mprotect-mremap-sh.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/qemu/qemu/0010-Revert-linux-user-fix-mmap-munmap-mprotect-mremap-sh.patch deleted file mode 100644 index 3418eb7c..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/qemu/qemu/0010-Revert-linux-user-fix-mmap-munmap-mprotect-mremap-sh.patch +++ /dev/null @@ -1,142 +0,0 @@ -From 2a66bd95c856de6950fbd802c5b99075207c1d76 Mon Sep 17 00:00:00 2001 -From: Martin Jansa -Date: Fri, 1 Jun 2018 08:41:07 +0000 -Subject: [PATCH] Revert "linux-user: fix mmap/munmap/mprotect/mremap/shmat" - -Causes qemu-i386 to hang during gobject-introspection in webkitgtk build -when musl is used on qemux86 - the same issue as -0010-linux-user-Fix-webkitgtk-hangs-on-32-bit-x86-target.patch -was fixing in 2.11.0 release, but with this patch the fix no longer worked -as discussed here: -http://lists.openembedded.org/pipermail/openembedded-core/2018-May/150302.html -http://lists.openembedded.org/pipermail/openembedded-core/2018-June/151382.html - -This reverts commit ebf9a3630c911d0cfc9c20f7cafe9ba4f88cf583. - -Upstream-Status: Pending - ---- - include/exec/cpu-all.h | 6 +----- - include/exec/cpu_ldst.h | 16 +++++++++------- - linux-user/mmap.c | 17 ++++------------- - linux-user/syscall.c | 5 +---- - 4 files changed, 15 insertions(+), 29 deletions(-) - -diff --git a/include/exec/cpu-all.h b/include/exec/cpu-all.h -index b16c9ec5..612db6a0 100644 ---- a/include/exec/cpu-all.h -+++ b/include/exec/cpu-all.h -@@ -163,12 +163,8 @@ extern unsigned long guest_base; - extern int have_guest_base; - extern unsigned long reserved_va; - --#if HOST_LONG_BITS <= TARGET_VIRT_ADDR_SPACE_BITS --#define GUEST_ADDR_MAX (~0ul) --#else --#define GUEST_ADDR_MAX (reserved_va ? reserved_va - 1 : \ -+#define GUEST_ADDR_MAX (reserved_va ? reserved_va : \ - (1ul << TARGET_VIRT_ADDR_SPACE_BITS) - 1) --#endif - #else - - #include "exec/hwaddr.h" -diff --git a/include/exec/cpu_ldst.h b/include/exec/cpu_ldst.h -index d78041d7..845639f7 100644 ---- a/include/exec/cpu_ldst.h -+++ b/include/exec/cpu_ldst.h -@@ -62,13 +62,15 @@ typedef uint64_t abi_ptr; - /* All direct uses of g2h and h2g need to go away for usermode softmmu. */ - #define g2h(x) ((void *)((unsigned long)(abi_ptr)(x) + guest_base)) - --#define guest_addr_valid(x) ((x) <= GUEST_ADDR_MAX) --#define h2g_valid(x) guest_addr_valid((unsigned long)(x) - guest_base) -- --static inline int guest_range_valid(unsigned long start, unsigned long len) --{ -- return len - 1 <= GUEST_ADDR_MAX && start <= GUEST_ADDR_MAX - len + 1; --} -+#if HOST_LONG_BITS <= TARGET_VIRT_ADDR_SPACE_BITS -+#define h2g_valid(x) 1 -+#else -+#define h2g_valid(x) ({ \ -+ unsigned long __guest = (unsigned long)(x) - guest_base; \ -+ (__guest < (1ul << TARGET_VIRT_ADDR_SPACE_BITS)) && \ -+ (!reserved_va || (__guest < reserved_va)); \ -+}) -+#endif - - #define h2g_nocheck(x) ({ \ - unsigned long __ret = (unsigned long)(x) - guest_base; \ -diff --git a/linux-user/mmap.c b/linux-user/mmap.c -index e0249efe..cfe34b35 100644 ---- a/linux-user/mmap.c -+++ b/linux-user/mmap.c -@@ -79,7 +79,7 @@ int target_mprotect(abi_ulong start, abi_ulong len, int prot) - return -TARGET_EINVAL; - len = TARGET_PAGE_ALIGN(len); - end = start + len; -- if (!guest_range_valid(start, len)) { -+ if (end < start) { - return -TARGET_ENOMEM; - } - prot &= PROT_READ | PROT_WRITE | PROT_EXEC; -@@ -490,8 +490,8 @@ abi_long target_mmap(abi_ulong start, abi_ulong len, int prot, - * It can fail only on 64-bit host with 32-bit target. - * On any other target/host host mmap() handles this error correctly. - */ -- if (!guest_range_valid(start, len)) { -- errno = ENOMEM; -+ if ((unsigned long)start + len - 1 > (abi_ulong) -1) { -+ errno = EINVAL; - goto fail; - } - -@@ -631,10 +631,8 @@ int target_munmap(abi_ulong start, abi_ulong len) - if (start & ~TARGET_PAGE_MASK) - return -TARGET_EINVAL; - len = TARGET_PAGE_ALIGN(len); -- if (len == 0 || !guest_range_valid(start, len)) { -+ if (len == 0) - return -TARGET_EINVAL; -- } -- - mmap_lock(); - end = start + len; - real_start = start & qemu_host_page_mask; -@@ -689,13 +687,6 @@ abi_long target_mremap(abi_ulong old_addr, abi_ulong old_size, - int prot; - void *host_addr; - -- if (!guest_range_valid(old_addr, old_size) || -- ((flags & MREMAP_FIXED) && -- !guest_range_valid(new_addr, new_size))) { -- errno = ENOMEM; -- return -1; -- } -- - mmap_lock(); - - if (flags & MREMAP_FIXED) { -diff --git a/linux-user/syscall.c b/linux-user/syscall.c -index 96cd4bf8..e6754772 100644 ---- a/linux-user/syscall.c -+++ b/linux-user/syscall.c -@@ -3860,9 +3860,6 @@ static inline abi_ulong do_shmat(CPUArchState *cpu_env, - return -TARGET_EINVAL; - } - } -- if (!guest_range_valid(shmaddr, shm_info.shm_segsz)) { -- return -TARGET_EINVAL; -- } - - mmap_lock(); - -@@ -6633,7 +6630,7 @@ static int open_self_maps(void *cpu_env, int fd) - } - if (h2g_valid(min)) { - int flags = page_get_flags(h2g(min)); -- max = h2g_valid(max - 1) ? max : (uintptr_t)g2h(GUEST_ADDR_MAX) + 1; -+ max = h2g_valid(max - 1) ? max : (uintptr_t)g2h(GUEST_ADDR_MAX); - if (page_check_range(h2g(min), max - min, flags) == -1) { - continue; - } diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/qemu/qemu/0010-configure-Add-pkg-config-handling-for-libgcrypt.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/qemu/qemu/0010-configure-Add-pkg-config-handling-for-libgcrypt.patch new file mode 100644 index 00000000..a8ab7daa --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/qemu/qemu/0010-configure-Add-pkg-config-handling-for-libgcrypt.patch @@ -0,0 +1,93 @@ +From 5214dd4461f2090ef0965b4d2518f49927d61cbc Mon Sep 17 00:00:00 2001 +From: He Zhe +Date: Wed, 28 Aug 2019 19:56:28 +0800 +Subject: [Qemu-devel] [PATCH] configure: Add pkg-config handling for libgcrypt + +libgcrypt may also be controlled by pkg-config, this patch adds pkg-config +handling for libgcrypt. + +Upstream-Status: Denied [https://lists.nongnu.org/archive/html/qemu-devel/2019-08/msg06333.html] + +Signed-off-by: He Zhe +--- + configure | 48 ++++++++++++++++++++++++++++++++++++++++-------- + 1 file changed, 40 insertions(+), 8 deletions(-) + +diff --git a/configure b/configure +index e44e454..0f362a7 100755 +--- a/configure ++++ b/configure +@@ -2875,6 +2875,30 @@ has_libgcrypt() { + return 0 + } + ++has_libgcrypt_pkgconfig() { ++ if ! has $pkg_config ; then ++ return 1 ++ fi ++ ++ if ! $pkg_config --list-all | grep libgcrypt > /dev/null 2>&1 ; then ++ return 1 ++ fi ++ ++ if test -n "$cross_prefix" ; then ++ host=$($pkg_config --variable=host libgcrypt) ++ if test "${host%-gnu}-" != "${cross_prefix%-gnu}" ; then ++ print_error "host($host) does not match cross_prefix($cross_prefix)" ++ return 1 ++ fi ++ fi ++ ++ if ! $pkg_config --atleast-version=1.5.0 libgcrypt ; then ++ print_error "libgcrypt version is $($pkg_config --modversion libgcrypt)" ++ return 1 ++ fi ++ ++ return 0 ++} + + if test "$nettle" != "no"; then + pass="no" +@@ -2902,7 +2926,14 @@ fi + + if test "$gcrypt" != "no"; then + pass="no" +- if has_libgcrypt; then ++ if has_libgcrypt_pkgconfig; then ++ gcrypt_cflags=$($pkg_config --cflags libgcrypt) ++ if test "$static" = "yes" ; then ++ gcrypt_libs=$($pkg_config --libs --static libgcrypt) ++ else ++ gcrypt_libs=$($pkg_config --libs libgcrypt) ++ fi ++ elif has_libgcrypt; then + gcrypt_cflags=$(libgcrypt-config --cflags) + gcrypt_libs=$(libgcrypt-config --libs) + # Debian has removed -lgpg-error from libgcrypt-config +@@ -2912,15 +2943,16 @@ if test "$gcrypt" != "no"; then + then + gcrypt_libs="$gcrypt_libs -lgpg-error" + fi ++ fi + +- # Link test to make sure the given libraries work (e.g for static). +- write_c_skeleton +- if compile_prog "" "$gcrypt_libs" ; then +- LIBS="$gcrypt_libs $LIBS" +- QEMU_CFLAGS="$QEMU_CFLAGS $gcrypt_cflags" +- pass="yes" +- fi ++ # Link test to make sure the given libraries work (e.g for static). ++ write_c_skeleton ++ if compile_prog "" "$gcrypt_libs" ; then ++ LIBS="$gcrypt_libs $LIBS" ++ QEMU_CFLAGS="$QEMU_CFLAGS $gcrypt_cflags" ++ pass="yes" + fi ++ + if test "$pass" = "yes"; then + gcrypt="yes" + cat > $TMPC << EOF +-- +2.7.4 + diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/qemu/qemu/0011-fix-libcap-header-issue-on-some-distro.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/qemu/qemu/0010-fix-libcap-header-issue-on-some-distro.patch similarity index 100% rename from Contrib-Inspur/openbmc/poky/meta/recipes-devtools/qemu/qemu/0011-fix-libcap-header-issue-on-some-distro.patch rename to Contrib-Inspur/openbmc/poky/meta/recipes-devtools/qemu/qemu/0010-fix-libcap-header-issue-on-some-distro.patch diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/qemu/qemu/0011-cpus.c-Add-error-messages-when-qemi_cpu_kick_thread-.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/qemu/qemu/0011-cpus.c-Add-error-messages-when-qemi_cpu_kick_thread-.patch new file mode 100644 index 00000000..e5ebfc12 --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/qemu/qemu/0011-cpus.c-Add-error-messages-when-qemi_cpu_kick_thread-.patch @@ -0,0 +1,74 @@ +From 0a53e906510cce1f32bc04a11e81ea40f834dac4 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?An=C3=ADbal=20Lim=C3=B3n?= +Date: Wed, 12 Aug 2015 15:11:30 -0500 +Subject: [PATCH] cpus.c: Add error messages when qemi_cpu_kick_thread fails. +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Add custom_debug.h with function for print backtrace information. +When pthread_kill fails in qemu_cpu_kick_thread display backtrace and +current cpu information. + +Upstream-Status: Inappropriate +Signed-off-by: Aníbal Limón + +--- + cpus.c | 5 +++++ + custom_debug.h | 24 ++++++++++++++++++++++++ + 2 files changed, 29 insertions(+) + create mode 100644 custom_debug.h + +diff --git a/cpus.c b/cpus.c +index e83f72b4..e6e2576e 100644 +--- a/cpus.c ++++ b/cpus.c +@@ -1769,6 +1769,8 @@ static void *qemu_tcg_cpu_thread_fn(void *arg) + return NULL; + } + ++#include "custom_debug.h" ++ + static void qemu_cpu_kick_thread(CPUState *cpu) + { + #ifndef _WIN32 +@@ -1781,6 +1783,9 @@ static void qemu_cpu_kick_thread(CPUState *cpu) + err = pthread_kill(cpu->thread->thread, SIG_IPI); + if (err && err != ESRCH) { + fprintf(stderr, "qemu:%s: %s", __func__, strerror(err)); ++ fprintf(stderr, "CPU #%d:\n", cpu->cpu_index); ++ cpu_dump_state(cpu, stderr, 0); ++ backtrace_print(); + exit(1); + } + #else /* _WIN32 */ +diff --git a/custom_debug.h b/custom_debug.h +new file mode 100644 +index 00000000..f029e455 +--- /dev/null ++++ b/custom_debug.h +@@ -0,0 +1,24 @@ ++#include ++#include ++#define BACKTRACE_MAX 128 ++static void backtrace_print(void) ++{ ++ int nfuncs = 0; ++ void *buf[BACKTRACE_MAX]; ++ char **symbols; ++ int i; ++ ++ nfuncs = backtrace(buf, BACKTRACE_MAX); ++ ++ symbols = backtrace_symbols(buf, nfuncs); ++ if (symbols == NULL) { ++ fprintf(stderr, "backtrace_print failed to get symbols"); ++ return; ++ } ++ ++ fprintf(stderr, "Backtrace ...\n"); ++ for (i = 0; i < nfuncs; i++) ++ fprintf(stderr, "%s\n", symbols[i]); ++ ++ free(symbols); ++} diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/qemu/qemu/0012-cpus.c-Add-error-messages-when-qemi_cpu_kick_thread-.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/qemu/qemu/0012-cpus.c-Add-error-messages-when-qemi_cpu_kick_thread-.patch deleted file mode 100644 index 04664195..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/qemu/qemu/0012-cpus.c-Add-error-messages-when-qemi_cpu_kick_thread-.patch +++ /dev/null @@ -1,74 +0,0 @@ -From 0a53e906510cce1f32bc04a11e81ea40f834dac4 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?An=C3=ADbal=20Lim=C3=B3n?= -Date: Wed, 12 Aug 2015 15:11:30 -0500 -Subject: [PATCH] cpus.c: Add error messages when qemi_cpu_kick_thread fails. -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Add custom_debug.h with function for print backtrace information. -When pthread_kill fails in qemu_cpu_kick_thread display backtrace and -current cpu information. - -Upstream-Status: Inappropriate -Signed-off-by: Aníbal Limón - ---- - cpus.c | 5 +++++ - custom_debug.h | 24 ++++++++++++++++++++++++ - 2 files changed, 29 insertions(+) - create mode 100644 custom_debug.h - -diff --git a/cpus.c b/cpus.c -index e83f72b4..e6e2576e 100644 ---- a/cpus.c -+++ b/cpus.c -@@ -1769,6 +1769,8 @@ static void *qemu_tcg_cpu_thread_fn(void *arg) - return NULL; - } - -+#include "custom_debug.h" -+ - static void qemu_cpu_kick_thread(CPUState *cpu) - { - #ifndef _WIN32 -@@ -1781,6 +1783,9 @@ static void qemu_cpu_kick_thread(CPUState *cpu) - err = pthread_kill(cpu->thread->thread, SIG_IPI); - if (err && err != ESRCH) { - fprintf(stderr, "qemu:%s: %s", __func__, strerror(err)); -+ fprintf(stderr, "CPU #%d:\n", cpu->cpu_index); -+ cpu_dump_state(cpu, stderr, fprintf, 0); -+ backtrace_print(); - exit(1); - } - #else /* _WIN32 */ -diff --git a/custom_debug.h b/custom_debug.h -new file mode 100644 -index 00000000..f029e455 ---- /dev/null -+++ b/custom_debug.h -@@ -0,0 +1,24 @@ -+#include -+#include -+#define BACKTRACE_MAX 128 -+static void backtrace_print(void) -+{ -+ int nfuncs = 0; -+ void *buf[BACKTRACE_MAX]; -+ char **symbols; -+ int i; -+ -+ nfuncs = backtrace(buf, BACKTRACE_MAX); -+ -+ symbols = backtrace_symbols(buf, nfuncs); -+ if (symbols == NULL) { -+ fprintf(stderr, "backtrace_print failed to get symbols"); -+ return; -+ } -+ -+ fprintf(stderr, "Backtrace ...\n"); -+ for (i = 0; i < nfuncs; i++) -+ fprintf(stderr, "%s\n", symbols[i]); -+ -+ free(symbols); -+} diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/qemu/qemu/0013-target-arm-Fix-vector-operation-segfault.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/qemu/qemu/0013-target-arm-Fix-vector-operation-segfault.patch deleted file mode 100644 index c1dd957d..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/qemu/qemu/0013-target-arm-Fix-vector-operation-segfault.patch +++ /dev/null @@ -1,66 +0,0 @@ -From 2f143d3ad1c05e91cf2cdf5de06d59a80a95e6c8 Mon Sep 17 00:00:00 2001 -From: Alistair Francis -Date: Thu, 23 May 2019 14:47:43 +0100 -Subject: [PATCH] target/arm: Fix vector operation segfault -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Commit 89e68b575 "target/arm: Use vector operations for saturation" -causes this abort() when booting QEMU ARM with a Cortex-A15: - -0 0x00007ffff4c2382f in raise () at /usr/lib/libc.so.6 -1 0x00007ffff4c0e672 in abort () at /usr/lib/libc.so.6 -2 0x00005555559c1839 in disas_neon_data_insn (insn=, s=) at ./target/arm/translate.c:6673 -3 0x00005555559c1839 in disas_neon_data_insn (s=, insn=) at ./target/arm/translate.c:6386 -4 0x00005555559cd8a4 in disas_arm_insn (insn=4081107068, s=0x7fffe59a9510) at ./target/arm/translate.c:9289 -5 0x00005555559cd8a4 in arm_tr_translate_insn (dcbase=0x7fffe59a9510, cpu=) at ./target/arm/translate.c:13612 -6 0x00005555558d1d39 in translator_loop (ops=0x5555561cc580 , db=0x7fffe59a9510, cpu=0x55555686a2f0, tb=, max_insns=) at ./accel/tcg/translator.c:96 -7 0x00005555559d10d4 in gen_intermediate_code (cpu=cpu@entry=0x55555686a2f0, tb=tb@entry=0x7fffd7840080 , max_insns=max_insns@entry=512) at ./target/arm/translate.c:13901 -8 0x00005555558d06b9 in tb_gen_code (cpu=cpu@entry=0x55555686a2f0, pc=3067096216, cs_base=0, flags=192, cflags=-16252928, cflags@entry=524288) at ./accel/tcg/translate-all.c:1736 -9 0x00005555558ce467 in tb_find (cf_mask=524288, tb_exit=1, last_tb=0x7fffd783e640 , cpu=0x1) at ./accel/tcg/cpu-exec.c:407 -10 0x00005555558ce467 in cpu_exec (cpu=cpu@entry=0x55555686a2f0) at ./accel/tcg/cpu-exec.c:728 -11 0x000055555588b0cf in tcg_cpu_exec (cpu=0x55555686a2f0) at ./cpus.c:1431 -12 0x000055555588d223 in qemu_tcg_cpu_thread_fn (arg=0x55555686a2f0) at ./cpus.c:1735 -13 0x000055555588d223 in qemu_tcg_cpu_thread_fn (arg=arg@entry=0x55555686a2f0) at ./cpus.c:1709 -14 0x0000555555d2629a in qemu_thread_start (args=) at ./util/qemu-thread-posix.c:502 -15 0x00007ffff4db8a92 in start_thread () at /usr/lib/libpthread. - -This patch ensures that we don't hit the abort() in the second switch -case in disas_neon_data_insn() as we will return from the first case. - -Signed-off-by: Alistair Francis -Reviewed-by: Richard Henderson -Reviewed-by: Philippe Mathieu-Daudé -Reviewed-by: Alex Bennée -Tested-by: Alex Bennée -Message-id: ad91b397f360b2fc7f4087e476f7df5b04d42ddb.1558021877.git.alistair.francis@wdc.com -Signed-off-by: Peter Maydell -Upstream-Status: Backport [4.1.0] ---- - target/arm/translate.c | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/target/arm/translate.c b/target/arm/translate.c -index dd053c80d6..298c262825 100644 ---- a/target/arm/translate.c -+++ b/target/arm/translate.c -@@ -6598,13 +6598,13 @@ static int disas_neon_data_insn(DisasContext *s, uint32_t insn) - tcg_gen_gvec_4(rd_ofs, offsetof(CPUARMState, vfp.qc), - rn_ofs, rm_ofs, vec_size, vec_size, - (u ? uqadd_op : sqadd_op) + size); -- break; -+ return 0; - - case NEON_3R_VQSUB: - tcg_gen_gvec_4(rd_ofs, offsetof(CPUARMState, vfp.qc), - rn_ofs, rm_ofs, vec_size, vec_size, - (u ? uqsub_op : sqsub_op) + size); -- break; -+ return 0; - - case NEON_3R_VMUL: /* VMUL */ - if (u) { --- -2.21.0 - diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/qemu/qemu/CVE-2019-12068.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/qemu/qemu/CVE-2019-12068.patch new file mode 100644 index 00000000..f1655e40 --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/qemu/qemu/CVE-2019-12068.patch @@ -0,0 +1,108 @@ +From de594e47659029316bbf9391efb79da0a1a08e08 Mon Sep 17 00:00:00 2001 +From: Paolo Bonzini +Date: Wed, 14 Aug 2019 17:35:21 +0530 +Subject: [PATCH] scsi: lsi: exit infinite loop while executing script + (CVE-2019-12068) + +When executing script in lsi_execute_script(), the LSI scsi adapter +emulator advances 's->dsp' index to read next opcode. This can lead +to an infinite loop if the next opcode is empty. Move the existing +loop exit after 10k iterations so that it covers no-op opcodes as +well. + +Upstream-Status: Backport [https://git.qemu.org/?p=qemu.git;a=commit;h=de594e47659029316bbf9391efb79da0a1a08e08] +CVE: CVE-2019-12068 + +Reported-by: Bugs SysSec +Signed-off-by: Paolo Bonzini +Signed-off-by: Prasad J Pandit +Signed-off-by: Paolo Bonzini + +Signed-off-by: Changqing Li +--- + hw/scsi/lsi53c895a.c | 41 +++++++++++++++++++++++++++-------------- + 1 file changed, 27 insertions(+), 14 deletions(-) + +diff --git a/hw/scsi/lsi53c895a.c b/hw/scsi/lsi53c895a.c +index 222a286..ec53b14 100644 +--- a/hw/scsi/lsi53c895a.c ++++ b/hw/scsi/lsi53c895a.c +@@ -186,6 +186,9 @@ static const char *names[] = { + /* Flag set if this is a tagged command. */ + #define LSI_TAG_VALID (1 << 16) + ++/* Maximum instructions to process. */ ++#define LSI_MAX_INSN 10000 ++ + typedef struct lsi_request { + SCSIRequest *req; + uint32_t tag; +@@ -1133,7 +1136,21 @@ static void lsi_execute_script(LSIState *s) + + s->istat1 |= LSI_ISTAT1_SRUN; + again: +- insn_processed++; ++ if (++insn_processed > LSI_MAX_INSN) { ++ /* Some windows drivers make the device spin waiting for a memory ++ location to change. If we have been executed a lot of code then ++ assume this is the case and force an unexpected device disconnect. ++ This is apparently sufficient to beat the drivers into submission. ++ */ ++ if (!(s->sien0 & LSI_SIST0_UDC)) { ++ qemu_log_mask(LOG_GUEST_ERROR, ++ "lsi_scsi: inf. loop with UDC masked"); ++ } ++ lsi_script_scsi_interrupt(s, LSI_SIST0_UDC, 0); ++ lsi_disconnect(s); ++ trace_lsi_execute_script_stop(); ++ return; ++ } + insn = read_dword(s, s->dsp); + if (!insn) { + /* If we receive an empty opcode increment the DSP by 4 bytes +@@ -1570,19 +1587,7 @@ again: + } + } + } +- if (insn_processed > 10000 && s->waiting == LSI_NOWAIT) { +- /* Some windows drivers make the device spin waiting for a memory +- location to change. If we have been executed a lot of code then +- assume this is the case and force an unexpected device disconnect. +- This is apparently sufficient to beat the drivers into submission. +- */ +- if (!(s->sien0 & LSI_SIST0_UDC)) { +- qemu_log_mask(LOG_GUEST_ERROR, +- "lsi_scsi: inf. loop with UDC masked"); +- } +- lsi_script_scsi_interrupt(s, LSI_SIST0_UDC, 0); +- lsi_disconnect(s); +- } else if (s->istat1 & LSI_ISTAT1_SRUN && s->waiting == LSI_NOWAIT) { ++ if (s->istat1 & LSI_ISTAT1_SRUN && s->waiting == LSI_NOWAIT) { + if (s->dcntl & LSI_DCNTL_SSM) { + lsi_script_dma_interrupt(s, LSI_DSTAT_SSI); + } else { +@@ -1970,6 +1975,10 @@ static void lsi_reg_writeb(LSIState *s, int offset, uint8_t val) + case 0x2f: /* DSP[24:31] */ + s->dsp &= 0x00ffffff; + s->dsp |= val << 24; ++ /* ++ * FIXME: if s->waiting != LSI_NOWAIT, this will only execute one ++ * instruction. Is this correct? ++ */ + if ((s->dmode & LSI_DMODE_MAN) == 0 + && (s->istat1 & LSI_ISTAT1_SRUN) == 0) + lsi_execute_script(s); +@@ -1988,6 +1997,10 @@ static void lsi_reg_writeb(LSIState *s, int offset, uint8_t val) + break; + case 0x3b: /* DCNTL */ + s->dcntl = val & ~(LSI_DCNTL_PFF | LSI_DCNTL_STD); ++ /* ++ * FIXME: if s->waiting != LSI_NOWAIT, this will only execute one ++ * instruction. Is this correct? ++ */ + if ((val & LSI_DCNTL_STD) && (s->istat1 & LSI_ISTAT1_SRUN) == 0) + lsi_execute_script(s); + break; +-- +2.7.4 + diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/qemu/qemu/CVE-2019-15890.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/qemu/qemu/CVE-2019-15890.patch new file mode 100644 index 00000000..1d89431b --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/qemu/qemu/CVE-2019-15890.patch @@ -0,0 +1,48 @@ +From 4fc0d23e8f6d795c679623d2ed2cbe6a7a17b9c7 Mon Sep 17 00:00:00 2001 +From: Li Zhou +Date: Tue, 10 Sep 2019 20:02:15 -0700 +Subject: [PATCH] ip_reass: Fix use after free + +Using ip_deq after m_free might read pointers from an allocation reuse. + +This would be difficult to exploit, but that is still related with +CVE-2019-14378 which generates fragmented IP packets that would trigger this +issue and at least produce a DoS. + +Signed-off-by: Samuel Thibault + +Upstream-Status: Backport +CVE: CVE-2019-15890 +Signed-off-by: Li Zhou +--- + slirp/src/ip_input.c | 6 ++++-- + 1 file changed, 4 insertions(+), 2 deletions(-) + +diff --git a/slirp/src/ip_input.c b/slirp/src/ip_input.c +index 8c75d914..c07d7d40 100644 +--- a/slirp/src/ip_input.c ++++ b/slirp/src/ip_input.c +@@ -292,6 +292,7 @@ static struct ip *ip_reass(Slirp *slirp, struct ip *ip, struct ipq *fp) + */ + while (q != (struct ipasfrag *)&fp->frag_link && + ip->ip_off + ip->ip_len > q->ipf_off) { ++ struct ipasfrag *prev; + i = (ip->ip_off + ip->ip_len) - q->ipf_off; + if (i < q->ipf_len) { + q->ipf_len -= i; +@@ -299,9 +300,10 @@ static struct ip *ip_reass(Slirp *slirp, struct ip *ip, struct ipq *fp) + m_adj(dtom(slirp, q), i); + break; + } ++ prev = q; + q = q->ipf_next; +- m_free(dtom(slirp, q->ipf_prev)); +- ip_deq(q->ipf_prev); ++ ip_deq(prev); ++ m_free(dtom(slirp, prev)); + } + + insert: +-- +2.23.0 + diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/qemu/qemu_4.0.0.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/qemu/qemu_4.0.0.bb deleted file mode 100644 index 76776098..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/qemu/qemu_4.0.0.bb +++ /dev/null @@ -1,21 +0,0 @@ -BBCLASSEXTEND = "nativesdk" - -require qemu.inc - -DEPENDS = "glib-2.0 zlib pixman bison-native" - -RDEPENDS_${PN}_class-target += "bash" - -EXTRA_OECONF_append_class-target = " --target-list=${@get_qemu_target_list(d)}" -EXTRA_OECONF_append_class-target_mipsarcho32 = "${@bb.utils.contains('BBEXTENDCURR', 'multilib', ' --disable-capstone', '', d)}" -EXTRA_OECONF_append_class-nativesdk = " --target-list=${@get_qemu_target_list(d)}" - -do_install_append_class-nativesdk() { - ${@bb.utils.contains('PACKAGECONFIG', 'gtk+', 'make_qemu_wrapper', '', d)} -} - -PACKAGECONFIG ??= " \ - fdt sdl kvm \ - ${@bb.utils.filter('DISTRO_FEATURES', 'alsa xen', d)} \ -" -PACKAGECONFIG_class-nativesdk ??= "fdt sdl kvm" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/qemu/qemu_4.1.0.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/qemu/qemu_4.1.0.bb new file mode 100644 index 00000000..f0c1daab --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/qemu/qemu_4.1.0.bb @@ -0,0 +1,25 @@ +BBCLASSEXTEND = "nativesdk" + +require qemu.inc + +# error: a parameter list without types is only allowed in a function definition +# void (*_function)(sigval_t); +COMPATIBLE_HOST_libc-musl = 'null' + +DEPENDS = "glib-2.0 zlib pixman bison-native" + +RDEPENDS_${PN}_class-target += "bash" + +EXTRA_OECONF_append_class-target = " --target-list=${@get_qemu_target_list(d)}" +EXTRA_OECONF_append_class-target_mipsarcho32 = "${@bb.utils.contains('BBEXTENDCURR', 'multilib', ' --disable-capstone', '', d)}" +EXTRA_OECONF_append_class-nativesdk = " --target-list=${@get_qemu_target_list(d)}" + +do_install_append_class-nativesdk() { + ${@bb.utils.contains('PACKAGECONFIG', 'gtk+', 'make_qemu_wrapper', '', d)} +} + +PACKAGECONFIG ??= " \ + fdt sdl kvm \ + ${@bb.utils.filter('DISTRO_FEATURES', 'alsa xen', d)} \ +" +PACKAGECONFIG_class-nativesdk ??= "fdt sdl kvm" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/quilt/quilt-native_0.65.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/quilt/quilt-native_0.66.bb similarity index 100% rename from Contrib-Inspur/openbmc/poky/meta/recipes-devtools/quilt/quilt-native_0.65.bb rename to Contrib-Inspur/openbmc/poky/meta/recipes-devtools/quilt/quilt-native_0.66.bb diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/quilt/quilt.inc b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/quilt/quilt.inc index dbf722be..d6d06c04 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/quilt/quilt.inc +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/quilt/quilt.inc @@ -1,4 +1,7 @@ SUMMARY = "Tool for working with series of patches" +DESCRIPTION = "Quilt is a tool to manage large sets of patches by keeping \ +track of the changes each patch makes. Patches can be applied, un-applied,\ +refreshed, etc." HOMEPAGE = "http://savannah.nongnu.org/projects/quilt/" SECTION = "devel" LICENSE = "GPLv2" @@ -13,8 +16,8 @@ SRC_URI = "${SAVANNAH_GNU_MIRROR}/quilt/quilt-${PV}.tar.gz \ SRC_URI_append_class-target = " file://gnu_patch_test_fix_target.patch" -SRC_URI[md5sum] = "c67ba0228f5b7b8bbe469474661f92d6" -SRC_URI[sha256sum] = "f6cbc788e5cbbb381a3c6eab5b9efce67c776a8662a7795c7432fd27aa096819" +SRC_URI[md5sum] = "6800c2404a2c0598ab2eff92a636ba70" +SRC_URI[sha256sum] = "314b319a6feb13bf9d0f9ffa7ce6683b06919e734a41275087ea457cc9dc6e07" inherit autotools-brokensep ptest @@ -78,7 +81,7 @@ FILES_guards = "${bindir}/guards" FILES_${PN}-doc = "${mandir}/man1/quilt.1 ${docdir}/${BPN}" FILES_guards-doc = "${mandir}/man1/guards.1" -RDEPENDS_${PN} = "bash patch diffstat bzip2 util-linux" +RDEPENDS_${PN} = "bash patch diffstat bzip2 util-linux less" RDEPENDS_${PN}_class-native = "diffstat-native patch-native bzip2-native" RDEPENDS_${PN}-ptest = "make file sed gawk diffutils findutils ed perl \ diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/quilt/quilt/0001-tests-Allow-different-output-from-mv.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/quilt/quilt/0001-tests-Allow-different-output-from-mv.patch index 21219a0b..6d0f4aed 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/quilt/quilt/0001-tests-Allow-different-output-from-mv.patch +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/quilt/quilt/0001-tests-Allow-different-output-from-mv.patch @@ -1,4 +1,4 @@ -From 1530138960cfafbeefb95f2a760954c00b4d0ef0 Mon Sep 17 00:00:00 2001 +From e9fa816677993e520adff8bba26cb3e71f5a6665 Mon Sep 17 00:00:00 2001 From: Jussi Kukkonen Date: Wed, 29 Mar 2017 15:11:59 +0300 Subject: [PATCH] tests: Allow different output from mv @@ -12,18 +12,18 @@ Signed-off-by: Jussi Kukkonen 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/failbackup.test b/test/failbackup.test -index 37046f7..fce6725 100644 +index 5f0f54f..0902b12 100644 --- a/test/failbackup.test +++ b/test/failbackup.test @@ -16,7 +16,7 @@ What happens when refresh fails because of a permission error? $ cat > test.txt < This is updated test.txt. $ quilt refresh --backup -- >~ mv: cannot move [`']?%{P}test.diff'? to [`']?%{P}test.diff~'?: Permission denied +- >~ mv: cannot move [`']?patches/test.diff'? to [`']?patches/test.diff~'?: Permission denied + >~ mv: .*: Permission denied $ echo %{?} > 1 -- -2.1.4 +2.17.1 diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/quilt/quilt/Makefile b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/quilt/quilt/Makefile index 7b3ac8a4..1f6cd247 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/quilt/quilt/Makefile +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/quilt/quilt/Makefile @@ -2,7 +2,8 @@ PATH := $(CURDIR)/bin:$(CURDIR)/compat:$(PATH) QUILT_DIR := $(CURDIR)/quilt QUILTRC := $(CURDIR)/test/test.quiltrc export QUILT_DIR QUILTRC -CHECK_ENV := P=patches/; _P=../patches/; export P _P +CHECK_ENV := P=patches/; _P=../patches/; export P _P; +CHECK_ENV += QUILT_PC=.pc; export QUILT_PC -include test/.depend check-% : test/%.test diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/quilt/quilt/run-ptest b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/quilt/quilt/run-ptest index 4b808aee..d2de5c85 100755 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/quilt/quilt/run-ptest +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/quilt/quilt/run-ptest @@ -2,7 +2,7 @@ THIS_SH=/bin/sh ln -sf /bin/ed /usr/bin/ed -/usr/sbin/adduser --disabled-password quilttest +/usr/sbin/adduser --disabled-password --gecos "" quilttest su -c "${THIS_SH} ./test.sh" quilttest /usr/sbin/deluser quilttest rm -f /usr/bin/ed diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/quilt/quilt_0.65.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/quilt/quilt_0.66.bb similarity index 100% rename from Contrib-Inspur/openbmc/poky/meta/recipes-devtools/quilt/quilt_0.65.bb rename to Contrib-Inspur/openbmc/poky/meta/recipes-devtools/quilt/quilt_0.66.bb diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/rpm/files/0001-mono-find-provides-requires-do-not-use-monodis-from-.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/rpm/files/0001-mono-find-provides-requires-do-not-use-monodis-from-.patch new file mode 100644 index 00000000..24aa4c7f --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/rpm/files/0001-mono-find-provides-requires-do-not-use-monodis-from-.patch @@ -0,0 +1,58 @@ +From 43fbc3f53302a395463e8450ac81c53f623eec3f Mon Sep 17 00:00:00 2001 +From: Alexander Kanavin +Date: Tue, 27 Aug 2019 17:42:34 +0200 +Subject: [PATCH] mono-find-provides/requires: do not use monodis from the host + +There was a host contamination issue here: if monodis was installed +on the host, do_package would use that to resolve dependencies +of mono libraries (and often fail in that). Without monodis, +no dependencies are resolved, which is seemingly how things +are supposed to work. + +Upstream-Status: Inappropriate [oe-core specific] +Signed-off-by: Alexander Kanavin +--- + scripts/mono-find-provides | 8 ++++---- + scripts/mono-find-requires | 8 ++++---- + 2 files changed, 8 insertions(+), 8 deletions(-) + +diff --git a/scripts/mono-find-provides b/scripts/mono-find-provides +index 9348457d3..b28872ffb 100644 +--- a/scripts/mono-find-provides ++++ b/scripts/mono-find-provides +@@ -18,11 +18,11 @@ monolist=($(printf "%s\n" "${filelist[@]}" | grep -E "\\.(exe|dll)\$")) + build_bindir="$2/usr/bin" + build_libdir="$2$3" + +-if [ -x $build_bindir/monodis ]; then +- monodis="$build_bindir/monodis" ++if [ -x $build_bindir/monodis.bogus ]; then ++ monodis="$build_bindir/monodis.bogus" + export LD_LIBRARY_PATH=$build_libdir${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH} +-elif [ -x /usr/bin/monodis ]; then +- monodis="/usr/bin/monodis" ++elif [ -x /usr/bin/monodis.bogus ]; then ++ monodis="/usr/bin/monodis.bogus" + else + exit 0; + fi +diff --git a/scripts/mono-find-requires b/scripts/mono-find-requires +index ea58cae48..d270169e1 100644 +--- a/scripts/mono-find-requires ++++ b/scripts/mono-find-requires +@@ -18,11 +18,11 @@ monolist=($(printf "%s\n" "${filelist[@]}" | grep -E "\\.(exe|dll)\$")) + build_bindir="$2/usr/bin" + build_libdir="$2$3" + +-if [ -x $build_bindir/monodis ]; then +- monodis="$build_bindir/monodis" ++if [ -x $build_bindir/monodis.bogus ]; then ++ monodis="$build_bindir/monodis.bogus" + export LD_LIBRARY_PATH=$build_libdir${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH} +-elif [ -x /usr/bin/monodis ]; then +- monodis="/usr/bin/monodis" ++elif [ -x /usr/bin/monodis.bogus ]; then ++ monodis="/usr/bin/monodis.bogus" + else + exit 0; + fi diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/rpm/rpm_4.14.2.1.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/rpm/rpm_4.14.2.1.bb index 063f4269..c37330eb 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/rpm/rpm_4.14.2.1.bb +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/rpm/rpm_4.14.2.1.bb @@ -41,6 +41,7 @@ SRC_URI = "git://github.com/rpm-software-management/rpm;branch=rpm-4.14.x \ file://0001-perl-disable-auto-reqs.patch \ file://0001-rpm-rpmio.c-restrict-virtual-memory-usage-if-limit-s.patch \ file://0016-rpmscript.c-change-logging-level-around-scriptlets-t.patch \ + file://0001-mono-find-provides-requires-do-not-use-monodis-from-.patch \ " PE = "1" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/rsync/files/CVE-2016-9840.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/rsync/files/CVE-2016-9840.patch new file mode 100644 index 00000000..75818877 --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/rsync/files/CVE-2016-9840.patch @@ -0,0 +1,75 @@ +From 6a043145ca6e9c55184013841a67b2fef87e44c0 Mon Sep 17 00:00:00 2001 +From: Mark Adler +Date: Wed, 21 Sep 2016 23:35:50 -0700 +Subject: [PATCH] Remove offset pointer optimization in inftrees.c. + +inftrees.c was subtracting an offset from a pointer to an array, +in order to provide a pointer that allowed indexing starting at +the offset. This is not compliant with the C standard, for which +the behavior of a pointer decremented before its allocated memory +is undefined. Per the recommendation of a security audit of the +zlib code by Trail of Bits and TrustInSoft, in support of the +Mozilla Foundation, this tiny optimization was removed, in order +to avoid the possibility of undefined behavior. + +CVE: CVE-2016-9840 +Upstream-Status: Backport +Signed-off-by: Anuj Mittal +--- + inftrees.c | 18 ++++++++---------- + 1 file changed, 8 insertions(+), 10 deletions(-) + +diff --git a/zlib/inftrees.c b/zlib/inftrees.c +index 22fcd666..0d2670d5 100644 +--- a/zlib/inftrees.c ++++ b/zlib/inftrees.c +@@ -54,7 +54,7 @@ unsigned short FAR *work; + code FAR *next; /* next available space in table */ + const unsigned short FAR *base; /* base value table to use */ + const unsigned short FAR *extra; /* extra bits table to use */ +- int end; /* use base and extra for symbol > end */ ++ unsigned match; /* use base and extra for symbol >= match */ + unsigned short count[MAXBITS+1]; /* number of codes of each length */ + unsigned short offs[MAXBITS+1]; /* offsets in table for each length */ + static const unsigned short lbase[31] = { /* Length codes 257..285 base */ +@@ -181,19 +181,17 @@ unsigned short FAR *work; + switch (type) { + case CODES: + base = extra = work; /* dummy value--not used */ +- end = 19; ++ match = 20; + break; + case LENS: + base = lbase; +- base -= 257; + extra = lext; +- extra -= 257; +- end = 256; ++ match = 257; + break; + default: /* DISTS */ + base = dbase; + extra = dext; +- end = -1; ++ match = 0; + } + + /* initialize state for loop */ +@@ -216,13 +214,13 @@ unsigned short FAR *work; + for (;;) { + /* create table entry */ + here.bits = (unsigned char)(len - drop); +- if ((int)(work[sym]) < end) { ++ if (work[sym] + 1 < match) { + here.op = (unsigned char)0; + here.val = work[sym]; + } +- else if ((int)(work[sym]) > end) { +- here.op = (unsigned char)(extra[work[sym]]); +- here.val = base[work[sym]]; ++ else if (work[sym] >= match) { ++ here.op = (unsigned char)(extra[work[sym] - match]); ++ here.val = base[work[sym] - match]; + } + else { + here.op = (unsigned char)(32 + 64); /* end of block */ diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/rsync/files/CVE-2016-9841.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/rsync/files/CVE-2016-9841.patch new file mode 100644 index 00000000..3942176d --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/rsync/files/CVE-2016-9841.patch @@ -0,0 +1,228 @@ +From 9aaec95e82117c1cb0f9624264c3618fc380cecb Mon Sep 17 00:00:00 2001 +From: Mark Adler +Date: Wed, 21 Sep 2016 22:25:21 -0700 +Subject: [PATCH] Use post-increment only in inffast.c. + +An old inffast.c optimization turns out to not be optimal anymore +with modern compilers, and furthermore was not compliant with the +C standard, for which decrementing a pointer before its allocated +memory is undefined. Per the recommendation of a security audit of +the zlib code by Trail of Bits and TrustInSoft, in support of the +Mozilla Foundation, this "optimization" was removed, in order to +avoid the possibility of undefined behavior. + +CVE: CVE-2016-9841 +Upstream-Status: Backport +Signed-off-by: Anuj Mittal +--- + zlib/inffast.c | 81 +++++++++++++++++++++---------------------------------- + 1 file changed, 31 insertions(+), 50 deletions(-) + +diff --git a/zlib/inffast.c b/zlib/inffast.c +index bda59ceb..f0d163db 100644 +--- a/zlib/inffast.c ++++ b/zlib/inffast.c +@@ -10,25 +10,6 @@ + + #ifndef ASMINF + +-/* Allow machine dependent optimization for post-increment or pre-increment. +- Based on testing to date, +- Pre-increment preferred for: +- - PowerPC G3 (Adler) +- - MIPS R5000 (Randers-Pehrson) +- Post-increment preferred for: +- - none +- No measurable difference: +- - Pentium III (Anderson) +- - M68060 (Nikl) +- */ +-#ifdef POSTINC +-# define OFF 0 +-# define PUP(a) *(a)++ +-#else +-# define OFF 1 +-# define PUP(a) *++(a) +-#endif +- + /* + Decode literal, length, and distance codes and write out the resulting + literal and match bytes until either not enough input or output is +@@ -96,9 +77,9 @@ unsigned start; /* inflate()'s starting value for strm->avail_out */ + + /* copy state to local variables */ + state = (struct inflate_state FAR *)strm->state; +- in = strm->next_in - OFF; ++ in = strm->next_in; + last = in + (strm->avail_in - 5); +- out = strm->next_out - OFF; ++ out = strm->next_out; + beg = out - (start - strm->avail_out); + end = out + (strm->avail_out - 257); + #ifdef INFLATE_STRICT +@@ -119,9 +100,9 @@ unsigned start; /* inflate()'s starting value for strm->avail_out */ + input data or output space */ + do { + if (bits < 15) { +- hold += (unsigned long)(PUP(in)) << bits; ++ hold += (unsigned long)(*in++) << bits; + bits += 8; +- hold += (unsigned long)(PUP(in)) << bits; ++ hold += (unsigned long)(*in++) << bits; + bits += 8; + } + here = lcode[hold & lmask]; +@@ -134,14 +115,14 @@ unsigned start; /* inflate()'s starting value for strm->avail_out */ + Tracevv((stderr, here.val >= 0x20 && here.val < 0x7f ? + "inflate: literal '%c'\n" : + "inflate: literal 0x%02x\n", here.val)); +- PUP(out) = (unsigned char)(here.val); ++ *out++ = (unsigned char)(here.val); + } + else if (op & 16) { /* length base */ + len = (unsigned)(here.val); + op &= 15; /* number of extra bits */ + if (op) { + if (bits < op) { +- hold += (unsigned long)(PUP(in)) << bits; ++ hold += (unsigned long)(*in++) << bits; + bits += 8; + } + len += (unsigned)hold & ((1U << op) - 1); +@@ -150,9 +131,9 @@ unsigned start; /* inflate()'s starting value for strm->avail_out */ + } + Tracevv((stderr, "inflate: length %u\n", len)); + if (bits < 15) { +- hold += (unsigned long)(PUP(in)) << bits; ++ hold += (unsigned long)(*in++) << bits; + bits += 8; +- hold += (unsigned long)(PUP(in)) << bits; ++ hold += (unsigned long)(*in++) << bits; + bits += 8; + } + here = dcode[hold & dmask]; +@@ -165,10 +146,10 @@ unsigned start; /* inflate()'s starting value for strm->avail_out */ + dist = (unsigned)(here.val); + op &= 15; /* number of extra bits */ + if (bits < op) { +- hold += (unsigned long)(PUP(in)) << bits; ++ hold += (unsigned long)(*in++) << bits; + bits += 8; + if (bits < op) { +- hold += (unsigned long)(PUP(in)) << bits; ++ hold += (unsigned long)(*in++) << bits; + bits += 8; + } + } +@@ -196,30 +177,30 @@ unsigned start; /* inflate()'s starting value for strm->avail_out */ + #ifdef INFLATE_ALLOW_INVALID_DISTANCE_TOOFAR_ARRR + if (len <= op - whave) { + do { +- PUP(out) = 0; ++ *out++ = 0; + } while (--len); + continue; + } + len -= op - whave; + do { +- PUP(out) = 0; ++ *out++ = 0; + } while (--op > whave); + if (op == 0) { + from = out - dist; + do { +- PUP(out) = PUP(from); ++ *out++ = *from++; + } while (--len); + continue; + } + #endif + } +- from = window - OFF; ++ from = window; + if (wnext == 0) { /* very common case */ + from += wsize - op; + if (op < len) { /* some from window */ + len -= op; + do { +- PUP(out) = PUP(from); ++ *out++ = *from++; + } while (--op); + from = out - dist; /* rest from output */ + } +@@ -230,14 +211,14 @@ unsigned start; /* inflate()'s starting value for strm->avail_out */ + if (op < len) { /* some from end of window */ + len -= op; + do { +- PUP(out) = PUP(from); ++ *out++ = *from++; + } while (--op); +- from = window - OFF; ++ from = window; + if (wnext < len) { /* some from start of window */ + op = wnext; + len -= op; + do { +- PUP(out) = PUP(from); ++ *out++ = *from++; + } while (--op); + from = out - dist; /* rest from output */ + } +@@ -248,35 +229,35 @@ unsigned start; /* inflate()'s starting value for strm->avail_out */ + if (op < len) { /* some from window */ + len -= op; + do { +- PUP(out) = PUP(from); ++ *out++ = *from++; + } while (--op); + from = out - dist; /* rest from output */ + } + } + while (len > 2) { +- PUP(out) = PUP(from); +- PUP(out) = PUP(from); +- PUP(out) = PUP(from); ++ *out++ = *from++; ++ *out++ = *from++; ++ *out++ = *from++; + len -= 3; + } + if (len) { +- PUP(out) = PUP(from); ++ *out++ = *from++; + if (len > 1) +- PUP(out) = PUP(from); ++ *out++ = *from++; + } + } + else { + from = out - dist; /* copy direct from output */ + do { /* minimum length is three */ +- PUP(out) = PUP(from); +- PUP(out) = PUP(from); +- PUP(out) = PUP(from); ++ *out++ = *from++; ++ *out++ = *from++; ++ *out++ = *from++; + len -= 3; + } while (len > 2); + if (len) { +- PUP(out) = PUP(from); ++ *out++ = *from++; + if (len > 1) +- PUP(out) = PUP(from); ++ *out++ = *from++; + } + } + } +@@ -313,8 +294,8 @@ unsigned start; /* inflate()'s starting value for strm->avail_out */ + hold &= (1U << bits) - 1; + + /* update state and return */ +- strm->next_in = in + OFF; +- strm->next_out = out + OFF; ++ strm->next_in = in; ++ strm->next_out = out; + strm->avail_in = (unsigned)(in < last ? 5 + (last - in) : 5 - (in - last)); + strm->avail_out = (unsigned)(out < end ? + 257 + (end - out) : 257 - (out - end)); diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/rsync/files/CVE-2016-9842.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/rsync/files/CVE-2016-9842.patch new file mode 100644 index 00000000..810d8a3f --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/rsync/files/CVE-2016-9842.patch @@ -0,0 +1,33 @@ +From e54e1299404101a5a9d0cf5e45512b543967f958 Mon Sep 17 00:00:00 2001 +From: Mark Adler +Date: Sat, 5 Sep 2015 17:45:55 -0700 +Subject: [PATCH] Avoid shifts of negative values inflateMark(). + +The C standard says that bit shifts of negative integers is +undefined. This casts to unsigned values to assure a known +result. + +CVE: CVE-2016-9842 +Upstream-Status: Backport +Signed-off-by: Anuj Mittal +--- + inflate.c | 5 +++-- + 1 file changed, 3 insertions(+), 2 deletions(-) + +diff --git a/zlib/inflate.c b/zlib/inflate.c +index 2889e3a0..a7184167 100644 +--- a/zlib/inflate.c ++++ b/zlib/inflate.c +@@ -1506,9 +1506,10 @@ z_streamp strm; + { + struct inflate_state FAR *state; + +- if (strm == Z_NULL || strm->state == Z_NULL) return -1L << 16; ++ if (strm == Z_NULL || strm->state == Z_NULL) ++ return (long)(((unsigned long)0 - 1) << 16); + state = (struct inflate_state FAR *)strm->state; +- return ((long)(state->back) << 16) + ++ return (long)(((unsigned long)((long)state->back)) << 16) + + (state->mode == COPY ? state->length : + (state->mode == MATCH ? state->was - state->length : 0)); + } diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/rsync/files/CVE-2016-9843.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/rsync/files/CVE-2016-9843.patch new file mode 100644 index 00000000..ea2e42fe --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/rsync/files/CVE-2016-9843.patch @@ -0,0 +1,53 @@ +From d1d577490c15a0c6862473d7576352a9f18ef811 Mon Sep 17 00:00:00 2001 +From: Mark Adler +Date: Wed, 28 Sep 2016 20:20:25 -0700 +Subject: [PATCH] Avoid pre-decrement of pointer in big-endian CRC calculation. + +There was a small optimization for PowerPCs to pre-increment a +pointer when accessing a word, instead of post-incrementing. This +required prefacing the loop with a decrement of the pointer, +possibly pointing before the object passed. This is not compliant +with the C standard, for which decrementing a pointer before its +allocated memory is undefined. When tested on a modern PowerPC +with a modern compiler, the optimization no longer has any effect. +Due to all that, and per the recommendation of a security audit of +the zlib code by Trail of Bits and TrustInSoft, in support of the +Mozilla Foundation, this "optimization" was removed, in order to +avoid the possibility of undefined behavior. + +CVE: CVE-2016-9843 +Upstream-Status: Backport +Signed-off-by: Anuj Mittal +--- + crc32.c | 4 +--- + 1 file changed, 1 insertion(+), 3 deletions(-) + +diff --git a/zlib/crc32.c b/zlib/crc32.c +index 979a7190..05733f4e 100644 +--- a/zlib/crc32.c ++++ b/zlib/crc32.c +@@ -278,7 +278,7 @@ local unsigned long crc32_little(crc, buf, len) + } + + /* ========================================================================= */ +-#define DOBIG4 c ^= *++buf4; \ ++#define DOBIG4 c ^= *buf4++; \ + c = crc_table[4][c & 0xff] ^ crc_table[5][(c >> 8) & 0xff] ^ \ + crc_table[6][(c >> 16) & 0xff] ^ crc_table[7][c >> 24] + #define DOBIG32 DOBIG4; DOBIG4; DOBIG4; DOBIG4; DOBIG4; DOBIG4; DOBIG4; DOBIG4 +@@ -300,7 +300,6 @@ local unsigned long crc32_big(crc, buf, len) + } + + buf4 = (const z_crc_t FAR *)(const void FAR *)buf; +- buf4--; + while (len >= 32) { + DOBIG32; + len -= 32; +@@ -309,7 +308,6 @@ local unsigned long crc32_big(crc, buf, len) + DOBIG4; + len -= 4; + } +- buf4++; + buf = (const unsigned char FAR *)buf4; + + if (len) do { diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/rsync/rsync_3.1.3.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/rsync/rsync_3.1.3.bb index 29cb231f..ffb1d061 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/rsync/rsync_3.1.3.bb +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/rsync/rsync_3.1.3.bb @@ -11,6 +11,10 @@ DEPENDS = "popt" SRC_URI = "https://download.samba.org/pub/${BPN}/src/${BP}.tar.gz \ file://rsyncd.conf \ file://makefile-no-rebuild.patch \ + file://CVE-2016-9840.patch \ + file://CVE-2016-9841.patch \ + file://CVE-2016-9842.patch \ + file://CVE-2016-9843.patch \ " SRC_URI[md5sum] = "1581a588fde9d89f6bc6201e8129afaf" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/ruby/ruby.inc b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/ruby/ruby.inc index 1ecd087d..ce1b02f0 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/ruby/ruby.inc +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/ruby/ruby.inc @@ -6,20 +6,20 @@ It is simple, straight-forward, and extensible. \ " HOMEPAGE = "http://www.ruby-lang.org/" SECTION = "devel/ruby" -LICENSE = "Ruby | BSD | GPLv2" +LICENSE = "Ruby | BSD-2-Clause | BSD-3-Clause | GPLv2 | ISC | MIT" LIC_FILES_CHKSUM = "\ file://COPYING;md5=340948e1882e579731841bf49cdc22c1 \ file://BSDL;md5=19aaf65c88a40b508d17ae4be539c4b5\ file://GPL;md5=b234ee4d69f5fce4486a80fdaf4a4263\ - file://LEGAL;md5=23a79bb4c1a40f6cc9bcb6f4e7c39799 \ + file://LEGAL;md5=4ac0b84d1f7f420bca282e1adefc7f99 \ " DEPENDS = "ruby-native zlib openssl tcl libyaml gdbm readline libffi" -DEPENDS_class-native = "openssl-native libyaml-native readline-native" +DEPENDS_class-native = "openssl-native libyaml-native readline-native zlib-native" SHRT_VER = "${@oe.utils.trim_version("${PV}", 2)}" SRC_URI = "http://cache.ruby-lang.org/pub/ruby/${SHRT_VER}/ruby-${PV}.tar.gz \ - file://extmk.patch \ + file://0001-extmk-fix-cross-compilation-of-external-gems.patch \ file://0002-Obey-LDFLAGS-for-the-link-of-libruby.patch \ " UPSTREAM_CHECK_URI = "https://www.ruby-lang.org/en/downloads/" @@ -35,6 +35,6 @@ inherit autotools ptest # built. do_configure_prepend() { - sed -i "s#%%TARGET_CFLAGS%%#$TARGET_CFLAGS#; s#%%TARGET_LDFLAGS%%#$TARGET_LDFLAGS#" ${S}/common.mk + sed -i "s#%%TARGET_CFLAGS%%#$CFLAGS#; s#%%TARGET_LDFLAGS%%#$LDFLAGS#" ${S}/common.mk rm -rf ${S}/ruby/ } diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/ruby/ruby/0001-extmk-fix-cross-compilation-of-external-gems.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/ruby/ruby/0001-extmk-fix-cross-compilation-of-external-gems.patch new file mode 100644 index 00000000..2e315688 --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/ruby/ruby/0001-extmk-fix-cross-compilation-of-external-gems.patch @@ -0,0 +1,34 @@ +From a6e12b25a54d112c899b70c89c0bec9c5e5ebf3c Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Andr=C3=A9=20Draszik?= +Date: Mon, 30 Sep 2019 16:57:01 +0100 +Subject: [PATCH 1/3] extmk: fix cross-compilation of external gems +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Note that I (André) didn't actually write this patch, I +only updated it so that git-am works. + +Upstream-Status: Pending +Signed-off-by: André Draszik +--- + ext/extmk.rb | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/ext/extmk.rb b/ext/extmk.rb +index 1389dc4117..e4d923d7a7 100755 +--- a/ext/extmk.rb ++++ b/ext/extmk.rb +@@ -413,8 +413,8 @@ def $mflags.defined?(var) + end + $ruby = [$ruby] + $ruby << "-I'$(topdir)'" ++$ruby << "-I'$(top_srcdir)/lib'" + unless CROSS_COMPILING +- $ruby << "-I'$(top_srcdir)/lib'" + $ruby << "-I'$(extout)/$(arch)'" << "-I'$(extout)/common'" if $extout + ENV["RUBYLIB"] = "-" + end +-- +2.23.0.rc1 + diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/ruby/ruby/0002-Obey-LDFLAGS-for-the-link-of-libruby.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/ruby/ruby/0002-Obey-LDFLAGS-for-the-link-of-libruby.patch index 4cf579f4..5979d8bd 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/ruby/ruby/0002-Obey-LDFLAGS-for-the-link-of-libruby.patch +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/ruby/ruby/0002-Obey-LDFLAGS-for-the-link-of-libruby.patch @@ -1,25 +1,27 @@ -Upstream-Status: Pending - -From 306e95a9818d39d3349075aac9609e062b0f19ce Mon Sep 17 00:00:00 2001 +From 6d608326970b1613633d7715ebb7d628dfcd16ee Mon Sep 17 00:00:00 2001 From: Christopher Larson Date: Thu, 5 May 2016 10:59:07 -0700 -Subject: [PATCH 2/2] Obey LDFLAGS for the link of libruby +Subject: [PATCH 2/3] Obey LDFLAGS for the link of libruby Signed-off-by: Christopher Larson +Upstream-Status: Pending --- Makefile.in | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) -Index: ruby-2.5.0/Makefile.in -=================================================================== ---- ruby-2.5.0.orig/Makefile.in -+++ ruby-2.5.0/Makefile.in -@@ -77,7 +77,7 @@ LIBS = @LIBS@ $(EXTLIBS) - MISSING = @LIBOBJS@ @ALLOCA@ +diff --git a/Makefile.in b/Makefile.in +index fa1e19ef37..bbd07fa34b 100644 +--- a/Makefile.in ++++ b/Makefile.in +@@ -109,7 +109,7 @@ MISSING = @LIBOBJS@ @ALLOCA@ ENABLE_SHARED = @ENABLE_SHARED@ LDSHARED = @LIBRUBY_LDSHARED@ + DLDSHARED = @DLDSHARED@ -DLDFLAGS = @LIBRUBY_DLDFLAGS@ $(XLDFLAGS) $(ARCH_FLAG) +DLDFLAGS = @LIBRUBY_DLDFLAGS@ @LDFLAGS@ $(XLDFLAGS) $(ARCH_FLAG) SOLIBS = @SOLIBS@ ENABLE_DEBUG_ENV = @ENABLE_DEBUG_ENV@ MAINLIBS = @MAINLIBS@ +-- +2.23.0.rc1 + diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/ruby/ruby/0003-configure.ac-check-finite-isinf-isnan-as-macros-firs.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/ruby/ruby/0003-configure.ac-check-finite-isinf-isnan-as-macros-firs.patch new file mode 100644 index 00000000..1a8cff3e --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/ruby/ruby/0003-configure.ac-check-finite-isinf-isnan-as-macros-firs.patch @@ -0,0 +1,103 @@ +From bd71b698bf733e6e93282cd2b1b93f51e1a33c7c Mon Sep 17 00:00:00 2001 +From: nobu +Date: Fri, 8 Feb 2019 07:22:55 +0000 +Subject: [PATCH 3/3] configure.ac: check finite,isinf,isnan as macros first +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +[ruby-core:91487] [Bug #15595] + +git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@67036 b2dd03c8-39d4-4d8f-98ff-823fe69b080e + +--- +Upstream-Status: Backport [https://github.com/ruby/ruby/commit/74f94b3e6ebf15b76f3b357e754095412b006e94] +Signed-off-by: André Draszik +--- + aclocal.m4 | 1 + + configure.ac | 13 ++++--------- + tool/m4/ruby_replace_funcs.m4 | 13 +++++++++++++ + 3 files changed, 18 insertions(+), 9 deletions(-) + create mode 100644 tool/m4/ruby_replace_funcs.m4 + +diff --git a/aclocal.m4 b/aclocal.m4 +index b0fe3eb959..ed7d14ef63 100644 +--- a/aclocal.m4 ++++ b/aclocal.m4 +@@ -35,6 +35,7 @@ m4_include([tool/m4/ruby_func_attribute.m4]) + m4_include([tool/m4/ruby_mingw32.m4]) + m4_include([tool/m4/ruby_prepend_option.m4]) + m4_include([tool/m4/ruby_prog_gnu_ld.m4]) ++m4_include([tool/m4/ruby_replace_funcs.m4]) + m4_include([tool/m4/ruby_replace_type.m4]) + m4_include([tool/m4/ruby_rm_recursive.m4]) + m4_include([tool/m4/ruby_setjmp_type.m4]) +diff --git a/configure.ac b/configure.ac +index 2c4d2888d2..2691da6a3c 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -946,9 +946,6 @@ main() + ac_cv_func_fsync=yes + ac_cv_func_seekdir=yes + ac_cv_func_telldir=yes +- ac_cv_func_isinf=yes +- ac_cv_func_isnan=yes +- ac_cv_func_finite=yes + ac_cv_func_lchown=yes + ac_cv_func_link=yes + ac_cv_func_readlink=yes +@@ -999,9 +996,6 @@ main() + [netbsd*], [ LIBS="-lm $LIBS" + ], + [dragonfly*], [ LIBS="-lm $LIBS" +- # isinf() and isnan() are macros on DragonFly. +- ac_cv_func_isinf=yes +- ac_cv_func_isnan=yes + ], + [aix*],[ LIBS="-lm $LIBS" + ac_cv_func_round=no +@@ -1724,11 +1718,8 @@ AC_REPLACE_FUNCS(dup2) + AC_REPLACE_FUNCS(erf) + AC_REPLACE_FUNCS(explicit_bzero) + AC_REPLACE_FUNCS(ffs) +-AC_REPLACE_FUNCS(finite) + AC_REPLACE_FUNCS(flock) + AC_REPLACE_FUNCS(hypot) +-AC_REPLACE_FUNCS(isinf) +-AC_REPLACE_FUNCS(isnan) + AC_REPLACE_FUNCS(lgamma_r) + AC_REPLACE_FUNCS(memmove) + AC_REPLACE_FUNCS(nan) +@@ -1741,6 +1732,10 @@ AC_REPLACE_FUNCS(strlcpy) + AC_REPLACE_FUNCS(strstr) + AC_REPLACE_FUNCS(tgamma) + ++RUBY_REPLACE_FUNC([finite], [@%:@include ]) ++RUBY_REPLACE_FUNC([isinf], [@%:@include ]) ++RUBY_REPLACE_FUNC([isnan], [@%:@include ]) ++ + # for missing/setproctitle.c + AS_CASE(["$target_os"], + [aix* | k*bsd*-gnu | kopensolaris*-gnu | linux* | darwin*], [AC_DEFINE(SPT_TYPE,SPT_REUSEARGV)], +diff --git a/tool/m4/ruby_replace_funcs.m4 b/tool/m4/ruby_replace_funcs.m4 +new file mode 100644 +index 0000000000..d0612e29a0 +--- /dev/null ++++ b/tool/m4/ruby_replace_funcs.m4 +@@ -0,0 +1,13 @@ ++# -*- Autoconf -*- ++dnl RUBY_REPLACE_FUNC [func] [included] ++AC_DEFUN([RUBY_REPLACE_FUNC], [dnl ++ AC_CHECK_DECL([$1],dnl ++ [AC_DEFINE(AS_TR_CPP(HAVE_[$1]))],dnl ++ [AC_REPLACE_FUNCS($1)],dnl ++ [$2])dnl ++]) ++ ++dnl RUBY_REPLACE_FUNCS [funcs] [included] ++AC_DEFUN([RUBY_REPLACE_FUNCS] [dnl ++ m4_map_args_w([$1], [RUBY_REPLACE_FUNC(], [), [$2]])dnl ++]) +-- +2.23.0.rc1 + diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/ruby/ruby/extmk.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/ruby/ruby/extmk.patch deleted file mode 100644 index 404b9af7..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/ruby/ruby/extmk.patch +++ /dev/null @@ -1,16 +0,0 @@ -Upstream-Status: Pending -diff -ru ruby-1.8.7-p248.orig/ext/extmk.rb ruby-1.8.7-p248/ext/extmk.rb ---- ruby-1.8.7-p248.orig/ext/extmk.rb 2009-12-24 03:01:58.000000000 -0600 -+++ ruby-1.8.7-p248/ext/extmk.rb 2010-02-12 15:55:27.370061558 -0600 -@@ -413,8 +413,8 @@ def $mflags.defined?(var) - end - $ruby = [$ruby] - $ruby << "-I'$(topdir)'" -+$ruby << "-I'$(top_srcdir)/lib'" - unless CROSS_COMPILING -- $ruby << "-I'$(top_srcdir)/lib'" - $ruby << "-I'$(extout)/$(arch)'" << "-I'$(extout)/common'" if $extout - ENV["RUBYLIB"] = "-" - end --- - diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/ruby/ruby/ruby-CVE-2017-9226.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/ruby/ruby/ruby-CVE-2017-9226.patch deleted file mode 100644 index 89437bba..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/ruby/ruby/ruby-CVE-2017-9226.patch +++ /dev/null @@ -1,32 +0,0 @@ -From b4bf968ad52afe14e60a2dc8a95d3555c543353a Mon Sep 17 00:00:00 2001 -From: "K.Kosako" -Date: Thu, 18 May 2017 17:05:27 +0900 -Subject: [PATCH] fix #55 : check too big code point value for single byte - value in next_state_val() - ---- - regparse.c | 3 +++ - 1 file changed, 3 insertions(+) - ---- end of original header - -CVE: CVE-2017-9226 - -Add check for octal number bigger than 255. - -Upstream-Status: Pending -Signed-off-by: Joe Slater - - ---- ruby-2.4.1.orig/regparse.c -+++ ruby-2.4.1/regparse.c -@@ -4450,6 +4450,9 @@ next_state_val(CClassNode* cc, CClassNod - switch (*state) { - case CCS_VALUE: - if (*type == CCV_SB) { -+ if (*from > 0xff) -+ return ONIGERR_INVALID_CODE_POINT_VALUE; -+ - BITSET_SET_BIT_CHKDUP(cc->bs, (int )(*from)); - if (IS_NOT_NULL(asc_cc)) - BITSET_SET_BIT(asc_cc->bs, (int )(*from)); diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/ruby/ruby/ruby-CVE-2017-9228.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/ruby/ruby/ruby-CVE-2017-9228.patch deleted file mode 100644 index d8bfba48..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/ruby/ruby/ruby-CVE-2017-9228.patch +++ /dev/null @@ -1,34 +0,0 @@ -From 3b63d12038c8d8fc278e81c942fa9bec7c704c8b Mon Sep 17 00:00:00 2001 -From: "K.Kosako" -Date: Wed, 24 May 2017 13:43:25 +0900 -Subject: [PATCH] fix #60 : invalid state(CCS_VALUE) in parse_char_class() - ---- - regparse.c | 4 +++- - 1 file changed, 3 insertions(+), 1 deletion(-) - ---- end of original header - -CVE: CVE-2017-9228 - -Upstream-Status: Inappropriate [not author] -Signed-off-by: Joe Slater - -diff --git a/regparse.c b/regparse.c -index 69875fa..1988747 100644 ---- a/regparse.c -+++ b/regparse.c -@@ -4081,7 +4081,9 @@ next_state_class(CClassNode* cc, OnigCodePoint* vs, enum CCVALTYPE* type, - } - } - -- *state = CCS_VALUE; -+ if (*state != CCS_START) -+ *state = CCS_VALUE; -+ - *type = CCV_CLASS; - return 0; - } --- -1.7.9.5 - diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/ruby/ruby_2.5.3.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/ruby/ruby_2.5.3.bb deleted file mode 100644 index 519daf29..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/ruby/ruby_2.5.3.bb +++ /dev/null @@ -1,80 +0,0 @@ -require ruby.inc - -SRC_URI += " \ - file://ruby-CVE-2017-9226.patch \ - file://ruby-CVE-2017-9228.patch \ - file://run-ptest \ - " - -SRC_URI[md5sum] = "20c85b67846d49622ef3b24230803fef" -SRC_URI[sha256sum] = "9828d03852c37c20fa333a0264f2490f07338576734d910ee3fd538c9520846c" - -# it's unknown to configure script, but then passed to extconf.rb -# maybe it's not really needed as we're hardcoding the result with -# 0001-socket-extconf-hardcode-wide-getaddr-info-test-outco.patch -UNKNOWN_CONFIGURE_WHITELIST += "--enable-wide-getaddrinfo" - -PACKAGECONFIG ??= "" -PACKAGECONFIG += "${@bb.utils.filter('DISTRO_FEATURES', 'ipv6', d)}" - -PACKAGECONFIG[valgrind] = "--with-valgrind=yes, --with-valgrind=no, valgrind" -PACKAGECONFIG[gmp] = "--with-gmp=yes, --with-gmp=no, gmp" -PACKAGECONFIG[ipv6] = ",--enable-wide-getaddrinfo," - -EXTRA_AUTORECONF += "--exclude=aclocal" - -EXTRA_OECONF = "\ - --disable-versioned-paths \ - --disable-rpath \ - --disable-dtrace \ - --enable-shared \ - --enable-load-relative \ - --with-pkg-config=pkg-config \ -" - -do_install() { - oe_runmake 'DESTDIR=${D}' install -} - -do_install_append_class-target () { - # Find out rbconfig.rb from .installed.list - rbconfig_rb=`grep rbconfig.rb ${B}/.installed.list` - # Remove build host directories - sed -i -e 's:--sysroot=${STAGING_DIR_TARGET}::g' \ - -e s:'--with-libtool-sysroot=${STAGING_DIR_TARGET}'::g \ - -e 's|${DEBUG_PREFIX_MAP}||g' \ - -e 's:${HOSTTOOLS_DIR}/::g' \ - -e 's:${RECIPE_SYSROOT_NATIVE}::g' \ - -e 's:${RECIPE_SYSROOT}::g' \ - -e 's:${BASE_WORKDIR}/${MULTIMACH_TARGET_SYS}::g' \ - ${D}$rbconfig_rb - - # Find out created.rid from .installed.list - created_rid=`grep created.rid ${B}/.installed.list` - # Remove build host directories - sed -i -e 's:${WORKDIR}::g' ${D}$created_rid - -} - -do_install_ptest () { - cp -rf ${S}/test ${D}${PTEST_PATH}/ - cp -r ${S}/include ${D}/${libdir}/ruby/ - test_case_rb=`grep rubygems/test_case.rb ${B}/.installed.list` - sed -i -e 's:../../../test/:../../../ptest/test/:g' ${D}/$test_case_rb -} - -PACKAGES =+ "${PN}-ri-docs ${PN}-rdoc" - -SUMMARY_${PN}-ri-docs = "ri (Ruby Interactive) documentation for the Ruby standard library" -RDEPENDS_${PN}-ri-docs = "${PN}" -FILES_${PN}-ri-docs += "${datadir}/ri" - -SUMMARY_${PN}-rdoc = "RDoc documentation generator from Ruby source" -RDEPENDS_${PN}-rdoc = "${PN}" -FILES_${PN}-rdoc += "${libdir}/ruby/*/rdoc ${bindir}/rdoc" - -FILES_${PN} += "${datadir}/rubygems" - -FILES_${PN}-ptest_append_class-target += "${libdir}/ruby/include" - -BBCLASSEXTEND = "native" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/ruby/ruby_2.6.5.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/ruby/ruby_2.6.5.bb new file mode 100644 index 00000000..1828f65d --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/ruby/ruby_2.6.5.bb @@ -0,0 +1,77 @@ +require ruby.inc + +SRC_URI += " \ + file://0003-configure.ac-check-finite-isinf-isnan-as-macros-firs.patch \ + file://run-ptest \ + " + +SRC_URI[md5sum] = "8754bfb36d52c2bf1fb3d3ddc7101606" +SRC_URI[sha256sum] = "66976b716ecc1fd34f9b7c3c2b07bbd37631815377a2e3e85a5b194cfdcbed7d" + +PACKAGECONFIG ??= "" +PACKAGECONFIG += "${@bb.utils.filter('DISTRO_FEATURES', 'ipv6', d)}" + +PACKAGECONFIG[valgrind] = "--with-valgrind=yes, --with-valgrind=no, valgrind" +PACKAGECONFIG[gmp] = "--with-gmp=yes, --with-gmp=no, gmp" +PACKAGECONFIG[ipv6] = "--enable-ipv6, --disable-ipv6," + +EXTRA_OECONF = "\ + --disable-versioned-paths \ + --disable-rpath \ + --disable-dtrace \ + --enable-shared \ + --enable-load-relative \ + --with-pkg-config=pkg-config \ +" + +do_install() { + oe_runmake 'DESTDIR=${D}' install +} + +do_install_append_class-target () { + # Find out rbconfig.rb from .installed.list + rbconfig_rb=`grep rbconfig.rb ${B}/.installed.list` + # Remove build host directories + sed -i -e 's:--sysroot=${STAGING_DIR_TARGET}::g' \ + -e s:'--with-libtool-sysroot=${STAGING_DIR_TARGET}'::g \ + -e 's|${DEBUG_PREFIX_MAP}||g' \ + -e 's:${HOSTTOOLS_DIR}/::g' \ + -e 's:${RECIPE_SYSROOT_NATIVE}::g' \ + -e 's:${RECIPE_SYSROOT}::g' \ + -e 's:${BASE_WORKDIR}/${MULTIMACH_TARGET_SYS}::g' \ + ${D}$rbconfig_rb +} + +do_install_ptest () { + cp -rf ${S}/test ${D}${PTEST_PATH}/ + # install test-binaries + find $(find ./.ext -path '*/-test-') -name '*.so' -print0 \ + | tar --no-recursion --null -T - --no-same-owner --preserve-permissions -cf - \ + | tar -C ${D}${libdir}/ruby/${SHRT_VER}.0/ --no-same-owner --preserve-permissions --strip-components=2 -xf - + # adjust path to not assume build directory layout + sed -e 's|File.expand_path(.*\.\./bin/erb[^)]*|File.expand_path("${bindir}/erb"|g' \ + -i ${D}${PTEST_PATH}/test/erb/test_erb_command.rb + + cp -r ${S}/include ${D}/${libdir}/ruby/ + test_case_rb=`grep rubygems/test_case.rb ${B}/.installed.list` + sed -i -e 's:../../../test/:../../../ptest/test/:g' ${D}/$test_case_rb +} + +PACKAGES =+ "${PN}-ri-docs ${PN}-rdoc" + +SUMMARY_${PN}-ri-docs = "ri (Ruby Interactive) documentation for the Ruby standard library" +RDEPENDS_${PN}-ri-docs = "${PN}" +FILES_${PN}-ri-docs += "${datadir}/ri" + +SUMMARY_${PN}-rdoc = "RDoc documentation generator from Ruby source" +RDEPENDS_${PN}-rdoc = "${PN}" +FILES_${PN}-rdoc += "${libdir}/ruby/*/rdoc ${bindir}/rdoc" + +FILES_${PN} += "${datadir}/rubygems" + +FILES_${PN}-ptest_append_class-target = "\ + ${libdir}/ruby/include \ + ${libdir}/ruby/${SHRT_VER}.0/*/-test- \ +" + +BBCLASSEXTEND = "native" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/squashfs-tools/squashfs-tools/0001-mksquashfs.c-get-inline-functions-work-with-C99.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/squashfs-tools/squashfs-tools/0001-mksquashfs.c-get-inline-functions-work-with-C99.patch deleted file mode 100644 index a5bab054..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/squashfs-tools/squashfs-tools/0001-mksquashfs.c-get-inline-functions-work-with-C99.patch +++ /dev/null @@ -1,154 +0,0 @@ -From ac6268e843c43286eebff2a1052182c2393cdb2e Mon Sep 17 00:00:00 2001 -From: Roy Li -Date: Mon, 14 Sep 2015 12:31:42 +0800 -Subject: [PATCH] mksquashfs.c: get inline functions work with both gnu11 and gnu89 - -Upstream-Status: Pending - -After gcc upgraded to gcc5, and if the codes is compiled without optimization(-O0), -and the below error will happen: - -| mksquashfs.o: In function `create_inode': -| git/squashfs-tools/mksquashfs.c:897: undefined reference to `get_inode_no' -| git/squashfs-tools/mksquashfs.c:960: undefined reference to `get_parent_no' -| git/squashfs-tools/mksquashfs.c:983: undefined reference to `get_parent_no' -| mksquashfs.o: In function `reader_read_process': -| git/squashfs-tools/mksquashfs.c:2132: undefined reference to `is_fragment' -| mksquashfs.o: In function `reader_read_file': -| git/squashfs-tools/mksquashfs.c:2228: undefined reference to `is_fragment' -| mksquashfs.o: In function `dir_scan': -| git/squashfs-tools/mksquashfs.c:3101: undefined reference to `create_dir_entry' - -gcc5 defaults to -std=gnu11 instead of -std=gnu89, and it requires that exactly one C -source file has the callable copy of the inline function. Consider the following -program: - - inline int - foo (void) - { - return 42; - } - - int - main (void) - { - return foo (); - } - -The program above will not link with the C99 inline semantics, because no out-of-line -function foo is generated. To fix this, either mark the function foo as static, or -add the following declaration: - static inline int foo (void); - -more information refer to: https://gcc.gnu.org/gcc-5/porting_to.html; - -but the use of "extern inline" will lead to the compilation issue if gcc is not -gcc5, as the commit in oe-core d0af30c92fde [alsa-lib: Change function type to -"static __inline__"] - "extern __inline__ function()" is the inlined version that - can be used in this compilation unit, but there will be another - definition of this function somewhere, so compiler will not emit - any code for the function body. This causes problem in -O0, - where functions are never inlined, the function call is preserved, - but linker can't find the symbol, thus the error happens. - -so replace "inline" with "static inline" to make it work with both gnu11 and gnu89 - -Signed-off-by: Roy Li ---- - squashfs-tools/mksquashfs.c | 20 ++++++++++---------- - 1 file changed, 10 insertions(+), 10 deletions(-) - -diff --git a/squashfs-tools/mksquashfs.c b/squashfs-tools/mksquashfs.c -index d221c35..6bba1d2 100644 ---- a/squashfs-tools/mksquashfs.c -+++ b/squashfs-tools/mksquashfs.c -@@ -828,13 +828,13 @@ char *subpathname(struct dir_ent *dir_ent) - } - - --inline unsigned int get_inode_no(struct inode_info *inode) -+static inline unsigned int get_inode_no(struct inode_info *inode) - { - return inode->inode_number; - } - - --inline unsigned int get_parent_no(struct dir_info *dir) -+static inline unsigned int get_parent_no(struct dir_info *dir) - { - return dir->depth ? get_inode_no(dir->dir_ent->inode) : inode_no; - } -@@ -2027,7 +2027,7 @@ struct file_info *duplicate(long long file_size, long long bytes, - } - - --inline int is_fragment(struct inode_info *inode) -+static inline int is_fragment(struct inode_info *inode) - { - off_t file_size = inode->buf.st_size; - -@@ -2996,13 +2996,13 @@ struct inode_info *lookup_inode2(struct stat *buf, int pseudo, int id) - } - - --inline struct inode_info *lookup_inode(struct stat *buf) -+static inline struct inode_info *lookup_inode(struct stat *buf) - { - return lookup_inode2(buf, 0, 0); - } - - --inline void alloc_inode_no(struct inode_info *inode, unsigned int use_this) -+static inline void alloc_inode_no(struct inode_info *inode, unsigned int use_this) - { - if (inode->inode_number == 0) { - inode->inode_number = use_this ? : inode_no ++; -@@ -3013,7 +3013,7 @@ inline void alloc_inode_no(struct inode_info *inode, unsigned int use_this) - } - - --inline struct dir_ent *create_dir_entry(char *name, char *source_name, -+static inline struct dir_ent *create_dir_entry(char *name, char *source_name, - char *nonstandard_pathname, struct dir_info *dir) - { - struct dir_ent *dir_ent = malloc(sizeof(struct dir_ent)); -@@ -3031,7 +3031,7 @@ inline struct dir_ent *create_dir_entry(char *name, char *source_name, - } - - --inline void add_dir_entry(struct dir_ent *dir_ent, struct dir_info *sub_dir, -+static inline void add_dir_entry(struct dir_ent *dir_ent, struct dir_info *sub_dir, - struct inode_info *inode_info) - { - struct dir_info *dir = dir_ent->our_dir; -@@ -3047,7 +3047,7 @@ inline void add_dir_entry(struct dir_ent *dir_ent, struct dir_info *sub_dir, - } - - --inline void add_dir_entry2(char *name, char *source_name, -+static inline void add_dir_entry2(char *name, char *source_name, - char *nonstandard_pathname, struct dir_info *sub_dir, - struct inode_info *inode_info, struct dir_info *dir) - { -@@ -3059,7 +3059,7 @@ inline void add_dir_entry2(char *name, char *source_name, - } - - --inline void free_dir_entry(struct dir_ent *dir_ent) -+static inline void free_dir_entry(struct dir_ent *dir_ent) - { - if(dir_ent->name) - free(dir_ent->name); -@@ -3080,7 +3080,7 @@ inline void free_dir_entry(struct dir_ent *dir_ent) - } - - --inline void add_excluded(struct dir_info *dir) -+static inline void add_excluded(struct dir_info *dir) - { - dir->excluded ++; - } --- -1.9.1 - diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/squashfs-tools/squashfs-tools/0001-squashfs-tools-patch-for-CVE-2015-4645-6.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/squashfs-tools/squashfs-tools/0001-squashfs-tools-patch-for-CVE-2015-4645-6.patch deleted file mode 100644 index 2261ea94..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/squashfs-tools/squashfs-tools/0001-squashfs-tools-patch-for-CVE-2015-4645-6.patch +++ /dev/null @@ -1,47 +0,0 @@ -From 3c0d67184d6edb63f3b7d6d5eb81531daa6388f3 Mon Sep 17 00:00:00 2001 -From: Changqing Li -Date: Tue, 28 Aug 2018 16:25:36 +0800 -Subject: [PATCH] squashfs-tools: patch for CVE-2015-4645(6) - -Upstream-Status: Backport[https://github.com/devttys0/sasquatch/pull/ - 5/commits/6777e08cc38bc780d27c69c1d8c272867b74524f] - -CVE: CVE-2015-4645 CVE-2015-4646 - -Signed-off-by: Changqing Li ---- - squashfs-tools/unsquash-4.c | 11 ++++++++--- - 1 file changed, 8 insertions(+), 3 deletions(-) - -diff --git a/squashfs-tools/unsquash-4.c b/squashfs-tools/unsquash-4.c -index ecdaac7..692ae25 100644 ---- a/squashfs-tools/unsquash-4.c -+++ b/squashfs-tools/unsquash-4.c -@@ -31,9 +31,9 @@ static unsigned int *id_table; - int read_fragment_table_4(long long *directory_table_end) - { - int res, i; -- int bytes = SQUASHFS_FRAGMENT_BYTES(sBlk.s.fragments); -- int indexes = SQUASHFS_FRAGMENT_INDEXES(sBlk.s.fragments); -- long long fragment_table_index[indexes]; -+ size_t bytes = SQUASHFS_FRAGMENT_BYTES(sBlk.s.fragments); -+ size_t indexes = SQUASHFS_FRAGMENT_INDEXES(sBlk.s.fragments); -+ long long *fragment_table_index; - - TRACE("read_fragment_table: %d fragments, reading %d fragment indexes " - "from 0x%llx\n", sBlk.s.fragments, indexes, -@@ -43,6 +43,11 @@ int read_fragment_table_4(long long *directory_table_end) - *directory_table_end = sBlk.s.fragment_table_start; - return TRUE; - } -+ -+ fragment_table_index = malloc(indexes*sizeof(long long)); -+ if(fragment_table_index == NULL) -+ EXIT_UNSQUASH("read_fragment_table: failed to allocate " -+ "fragment table index\n"); - - fragment_table = malloc(bytes); - if(fragment_table == NULL) --- -2.7.4 - diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/squashfs-tools/squashfs-tools/fix-compat.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/squashfs-tools/squashfs-tools/fix-compat.patch deleted file mode 100644 index 87c1e8ca..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/squashfs-tools/squashfs-tools/fix-compat.patch +++ /dev/null @@ -1,17 +0,0 @@ -include missing sys/stat.h for stat* function declarations - -Upstream-Status: Pending -Signed-off-by: Khem Raj - -Index: squashfs-tools/pseudo.c -=================================================================== ---- squashfs-tools.orig/pseudo.c -+++ squashfs-tools/pseudo.c -@@ -32,6 +32,7 @@ - #include - #include - #include -+#include - #include - - #include "pseudo.h" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/squashfs-tools/squashfs-tools/squashfs-tools-4.3-sysmacros.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/squashfs-tools/squashfs-tools/squashfs-tools-4.3-sysmacros.patch deleted file mode 100644 index 39521a7d..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/squashfs-tools/squashfs-tools/squashfs-tools-4.3-sysmacros.patch +++ /dev/null @@ -1,32 +0,0 @@ -From https://gitweb.gentoo.org/repo/gentoo.git/tree/sys-fs/squashfs-tools/files/squashfs-tools-4.3-sysmacros.patch - -Signed-off-by: Martin Jansa - -Upstream-Status: Pending - - -sys/types.h might not always include sys/sysmacros.h for major/minor/makedev - ---- a/squashfs-tools/mksquashfs.c -+++ b/squashfs-tools/mksquashfs.c -@@ -59,6 +59,7 @@ - #else - #include - #include -+#include - #endif - - #include "squashfs_fs.h" ---- a/squashfs-tools/unsquashfs.c -+++ b/squashfs-tools/unsquashfs.c -@@ -38,6 +38,10 @@ - #include - #include - -+#ifdef linux -+#include -+#endif -+ - struct cache *fragment_cache, *data_cache; - struct queue *to_reader, *to_inflate, *to_writer, *from_writer; - pthread_t *thread, *inflator_thread; diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/squashfs-tools/squashfs-tools_git.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/squashfs-tools/squashfs-tools_git.bb index dc1568a7..4fd33f80 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/squashfs-tools/squashfs-tools_git.bb +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/squashfs-tools/squashfs-tools_git.bb @@ -5,17 +5,10 @@ SECTION = "base" LICENSE = "GPL-2" LIC_FILES_CHKSUM = "file://../COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263" -PV = "4.3+gitr${SRCPV}" -SRCREV = "9c1db6d13a51a2e009f0027ef336ce03624eac0d" +PV = "4.4" +SRCREV = "52eb4c279cd283ed9802dd1ceb686560b22ffb67" SRC_URI = "git://github.com/plougher/squashfs-tools.git;protocol=https \ - file://0001-mksquashfs.c-get-inline-functions-work-with-C99.patch;striplevel=2 \ - file://squashfs-tools-4.3-sysmacros.patch;striplevel=2 \ - file://fix-compat.patch \ - file://0001-squashfs-tools-patch-for-CVE-2015-4645-6.patch;striplevel=2 \ " -UPSTREAM_CHECK_COMMITS = "1" -SRC_URI[lzma.md5sum] = "29d5ffd03a5a3e51aef6a74e9eafb759" -SRC_URI[lzma.sha256sum] = "c935fd04dd8e0e8c688a3078f3675d699679a90be81c12686837e0880aa0fa1e" S = "${WORKDIR}/git/squashfs-tools" @@ -24,22 +17,22 @@ COMPATIBLE_HOST_libc-musl = 'null' EXTRA_OEMAKE = "${PACKAGECONFIG_CONFARGS}" -PACKAGECONFIG ??= "gzip xz lzo lz4 lzma xattr" +PACKAGECONFIG ??= "gzip xz lzo lz4 lzma xattr reproducible" PACKAGECONFIG[gzip] = "GZIP_SUPPORT=1,GZIP_SUPPORT=0,zlib" PACKAGECONFIG[xz] = "XZ_SUPPORT=1,XZ_SUPPORT=0,xz" PACKAGECONFIG[lzo] = "LZO_SUPPORT=1,LZO_SUPPORT=0,lzo" PACKAGECONFIG[lz4] = "LZ4_SUPPORT=1,LZ4_SUPPORT=0,lz4" PACKAGECONFIG[lzma] = "LZMA_XZ_SUPPORT=1,LZMA_XZ_SUPPORT=0,xz" PACKAGECONFIG[xattr] = "XATTR_SUPPORT=1,XATTR_SUPPORT=0,attr" +PACKAGECONFIG[zstd] = "ZSTD_SUPPORT=1,ZSTD_SUPPORT=0,zstd" +PACKAGECONFIG[reproducible] = "REPRODUCIBLE_DEFAULT=1,REPRODUCIBLE_DEFAULT=0," do_compile() { - oe_runmake mksquashfs unsquashfs + oe_runmake all } -do_install () { - install -d ${D}${sbindir} - install -m 0755 mksquashfs ${D}${sbindir}/ - install -m 0755 unsquashfs ${D}${sbindir}/ +do_install() { + oe_runmake install INSTALL_DIR=${D}${sbindir} } ARM_INSTRUCTION_SET_armv4 = "arm" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/strace/strace/0001-Fix-build-when-using-non-glibc-libc-implementation-o.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/strace/strace/0001-Fix-build-when-using-non-glibc-libc-implementation-o.patch deleted file mode 100644 index daafceb3..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/strace/strace/0001-Fix-build-when-using-non-glibc-libc-implementation-o.patch +++ /dev/null @@ -1,34 +0,0 @@ -From af1fdce78bff4343f3c84ea118abdc3c739fc646 Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Sat, 30 Apr 2016 16:23:56 +0000 -Subject: [PATCH] Fix build when using non-glibc libc implementation on ppc - -glibc includes the kernel header into its own header for macros -musl does not - -Upstream-Status: Pending -Signed-off-by: Khem Raj - ---- - ptrace.h | 8 +++++++- - 1 file changed, 7 insertions(+), 1 deletion(-) - -diff --git a/ptrace.h b/ptrace.h -index 89d4b95..b3f45bb 100644 ---- a/ptrace.h -+++ b/ptrace.h -@@ -30,7 +30,13 @@ - # define ptrace_peeksiginfo_args XXX_ptrace_peeksiginfo_args - #endif - --#include -+#if defined(POWERPC) && !defined(__GLIBC__) -+#define pt_regs uapi_pt_regs -+#endif -+# include -+#if defined(POWERPC) && !defined(__GLIBC__) -+# undef pt_regs -+#endif - - #ifdef HAVE_STRUCT_IA64_FPREG - # undef ia64_fpreg diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/strace/strace/0001-mips-o32-fix-build.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/strace/strace/0001-mips-o32-fix-build.patch deleted file mode 100644 index a5dccfb0..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/strace/strace/0001-mips-o32-fix-build.patch +++ /dev/null @@ -1,98 +0,0 @@ -From 2c8b6de913973274e877639658e9e7273a012adb Mon Sep 17 00:00:00 2001 -From: "Dmitry V. Levin" -Date: Tue, 8 Jan 2019 19:23:44 +0000 -Subject: [PATCH] mips o32: fix build - -Upstream-Status: Backport - -Commit 917c2ccf3a67 "Refactor stack pointers" moved mips_REG_* macros -from linux/mips/arch_regs.h to linux/mips/arch_regs.c because these -macros are no longer used outside syscall.c or files included by -syscall.c, but this caused a build regression on mips o32 because -decode_syscall_subcall() uses mips_REG_SP prior to its definition. - -* syscall.c (decode_syscall_subcall): Move ... -* linux/mips/get_syscall_args.c: ... here. - -Reported-by: Baruch Siach -Fixes: v4.26~61 "Refactor stack pointers" ---- - linux/mips/get_syscall_args.c | 26 ++++++++++++++++++++++++++ - syscall.c | 27 ++------------------------- - 2 files changed, 29 insertions(+), 25 deletions(-) - -diff --git a/linux/mips/get_syscall_args.c b/linux/mips/get_syscall_args.c -index 387aa852..e2889f98 100644 ---- a/linux/mips/get_syscall_args.c -+++ b/linux/mips/get_syscall_args.c -@@ -37,3 +37,29 @@ arch_get_syscall_args(struct tcb *tcp) - #endif - return 1; - } -+ -+#ifdef SYS_syscall_subcall -+static void -+decode_syscall_subcall(struct tcb *tcp) -+{ -+ if (!scno_is_valid(tcp->u_arg[0])) -+ return; -+ tcp->scno = tcp->u_arg[0]; -+ tcp->qual_flg = qual_flags(tcp->scno); -+ tcp->s_ent = &sysent[tcp->scno]; -+ memmove(&tcp->u_arg[0], &tcp->u_arg[1], -+ sizeof(tcp->u_arg) - sizeof(tcp->u_arg[0])); -+ /* -+ * Fetching the last arg of 7-arg syscalls (fadvise64_64 -+ * and sync_file_range) requires additional code, -+ * see linux/mips/get_syscall_args.c -+ */ -+ if (tcp->s_ent->nargs == MAX_ARGS) { -+ if (umoven(tcp, -+ mips_REG_SP + MAX_ARGS * sizeof(tcp->u_arg[0]), -+ sizeof(tcp->u_arg[0]), -+ &tcp->u_arg[MAX_ARGS - 1]) < 0) -+ tcp->u_arg[MAX_ARGS - 1] = 0; -+ } -+} -+#endif /* SYS_syscall_subcall */ -diff --git a/syscall.c b/syscall.c -index d78f51dd..51fcc721 100644 ---- a/syscall.c -+++ b/syscall.c -@@ -349,31 +349,8 @@ decode_ipc_subcall(struct tcb *tcp) - #endif /* SYS_ipc_subcall */ - - #ifdef SYS_syscall_subcall --static void --decode_syscall_subcall(struct tcb *tcp) --{ -- if (!scno_is_valid(tcp->u_arg[0])) -- return; -- tcp->scno = tcp->u_arg[0]; -- tcp->qual_flg = qual_flags(tcp->scno); -- tcp->s_ent = &sysent[tcp->scno]; -- memmove(&tcp->u_arg[0], &tcp->u_arg[1], -- sizeof(tcp->u_arg) - sizeof(tcp->u_arg[0])); --# ifdef LINUX_MIPSO32 -- /* -- * Fetching the last arg of 7-arg syscalls (fadvise64_64 -- * and sync_file_range) requires additional code, -- * see linux/mips/get_syscall_args.c -- */ -- if (tcp->s_ent->nargs == MAX_ARGS) { -- if (umoven(tcp, -- mips_REG_SP + MAX_ARGS * sizeof(tcp->u_arg[0]), -- sizeof(tcp->u_arg[0]), -- &tcp->u_arg[MAX_ARGS - 1]) < 0) -- tcp->u_arg[MAX_ARGS - 1] = 0; -- } --# endif /* LINUX_MIPSO32 */ --} -+/* The implementation is architecture specific. */ -+static void decode_syscall_subcall(struct tcb *); - #endif /* SYS_syscall_subcall */ - - static void --- -2.17.0 - diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/strace/strace/0001-tests-sigaction-Check-for-mips-and-alpha-before-usin.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/strace/strace/0001-tests-sigaction-Check-for-mips-and-alpha-before-usin.patch index becee79d..95d85bf3 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/strace/strace/0001-tests-sigaction-Check-for-mips-and-alpha-before-usin.patch +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/strace/strace/0001-tests-sigaction-Check-for-mips-and-alpha-before-usin.patch @@ -19,16 +19,14 @@ Signed-off-by: Khem Raj tests/sigaction.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) -diff --git a/tests/sigaction.c b/tests/sigaction.c -index 95be197..54819f9 100644 --- a/tests/sigaction.c +++ b/tests/sigaction.c @@ -156,7 +156,7 @@ main(void) sigdelset(mask.libc, SIGHUP); memcpy(new_act->mask, mask.old, sizeof(mask.old)); --#ifdef SA_RESTORER +-# ifdef SA_RESTORER +#if defined(SA_RESTORER) && !defined(MIPS) && !defined(ALPHA) new_act->flags = SA_RESTORER; new_act->restorer = (unsigned long) 0xdeadfacecafef00dULL; - # define SA_RESTORER_FMT ", sa_flags=SA_RESTORER, sa_restorer=%#lx" + # define SA_RESTORER_FMT ", sa_flags=SA_RESTORER, sa_restorer=%#lx" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/strace/strace/disable-git-version-gen.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/strace/strace/disable-git-version-gen.patch index d6354bf4..5fefff33 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/strace/strace/disable-git-version-gen.patch +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/strace/strace/disable-git-version-gen.patch @@ -1,4 +1,4 @@ -From ed30a4fc4dc264ce5f5881462e03ae13c921bfed Mon Sep 17 00:00:00 2001 +From 3bc47502ab011ea8d7c9cd724b25174ecd9506bc Mon Sep 17 00:00:00 2001 From: Andre McCurdy Date: Mon, 18 Jan 2016 13:33:50 -0800 Subject: [PATCH] strace: remove need for scripts @@ -16,20 +16,20 @@ Signed-off-by: Anuj Mittal 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/configure.ac b/configure.ac -index 8045ebd..4319709 100644 +index 949b058..4ba989c 100644 --- a/configure.ac +++ b/configure.ac @@ -12,12 +12,12 @@ AC_PREREQ(2.57) AC_INIT([strace], -- m4_esyscmd([./git-version-gen .tarball-version]), +- st_esyscmd_s([./git-version-gen .tarball-version]), + m4_esyscmd_s([cat .tarball-version]), [strace-devel@lists.strace.io], [strace], [https://strace.io]) --m4_define([copyright_year], m4_esyscmd([./copyright-year-gen .year])) --m4_define([manpage_date], m4_esyscmd([./file-date-gen strace.1.in])) +-m4_define([copyright_year], st_esyscmd_s([./copyright-year-gen .year])) +-m4_define([manpage_date], st_esyscmd_s([./file-date-gen strace.1.in])) +m4_define([copyright_year], m4_esyscmd_s([cat .year])) +m4_define([manpage_date], m4_esyscmd_s([cat .strace.1.in.date])) AC_COPYRIGHT([Copyright (c) 1999-]copyright_year[ The strace developers.]) diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/strace/strace/run-ptest b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/strace/strace/run-ptest index 8070d831..2fed984e 100755 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/strace/strace/run-ptest +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/strace/strace/run-ptest @@ -1,2 +1,3 @@ #!/bin/sh +export TIMEOUT_DURATION=30 make -B -C tests -k test-suite.log diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/strace/strace/sys_headers.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/strace/strace/sys_headers.patch new file mode 100644 index 00000000..e46f2c35 --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/strace/strace/sys_headers.patch @@ -0,0 +1,25 @@ +Remove configure checks for few sys/ headers + +sys/ipc.h, sys/sem.h, sys/shm.h, and sys/msg.h are actually wrappers +for kernel headers in libc if available, here strace is trying to match +traced process's APIs to syscalls kernel structures + +Removing the checks makes it default to right kernel UAPI headers under linux/ + +Upstream-Status: Submitted [https://lists.strace.io/pipermail/strace-devel/2019-November/009222.html] +Suggested-by: Rich Felker +Signed-off-by: Khem Raj +--- a/configure.ac ++++ b/configure.ac +@@ -439,11 +439,7 @@ AC_CHECK_HEADERS(m4_normalize([ + sys/conf.h + sys/eventfd.h + sys/fanotify.h +- sys/ipc.h +- sys/msg.h + sys/quota.h +- sys/sem.h +- sys/shm.h + sys/signalfd.h + sys/xattr.h + ustat.h diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/strace/strace/uintptr_t.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/strace/strace/uintptr_t.patch new file mode 100644 index 00000000..6d3dd6fb --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/strace/strace/uintptr_t.patch @@ -0,0 +1,17 @@ +include stdint.h for getting uintptr_t definition + +fixes do_compile_ptest_base +tests/fanotify_mark.c:191:23: error: 'uintptr_t' undeclared (first use in this function); did you mean 'intptr_t'? + +Upstream-Status: Pending +Signed-off-by: Khem Raj +--- a/tests/fanotify_mark.c ++++ b/tests/fanotify_mark.c +@@ -18,6 +18,7 @@ + + # include + # include ++# include + # include + # include + diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/strace/strace_4.26.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/strace/strace_4.26.bb deleted file mode 100644 index 3b61fc3e..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/strace/strace_4.26.bb +++ /dev/null @@ -1,58 +0,0 @@ -SUMMARY = "System call tracing tool" -HOMEPAGE = "http://strace.io" -SECTION = "console/utils" -LICENSE = "LGPL-2.1+ & GPL-2+" -LIC_FILES_CHKSUM = "file://COPYING;md5=5c84d1c6e48e7961ccd2cd2ae32f7bf1" - -SRC_URI = "https://strace.io/files/${PV}/strace-${PV}.tar.xz \ - file://disable-git-version-gen.patch \ - file://more-robust-test-for-m32-mx32-compile-support.patch \ - file://update-gawk-paths.patch \ - file://Makefile-ptest.patch \ - file://run-ptest \ - file://0001-Fix-build-when-using-non-glibc-libc-implementation-o.patch \ - file://mips-SIGEMT.patch \ - file://0001-caps-abbrev.awk-fix-gawk-s-path.patch \ - file://0001-tests-sigaction-Check-for-mips-and-alpha-before-usin.patch \ - file://0001-mips-o32-fix-build.patch \ - file://ptest-spacesave.patch \ - " -SRC_URI[md5sum] = "daa51acc0c7c696221ec03cf0b30a7af" -SRC_URI[sha256sum] = "7c4d2ffeef4f7d1cdc71062ca78d1130eb52f947c2fca82f59f6a1183bfa1e1c" - -inherit autotools ptest bluetooth - -PACKAGECONFIG_class-target ??= "\ - ${@bb.utils.contains('DISTRO_FEATURES', 'bluetooth', 'bluez', '', d)} \ -" - -PACKAGECONFIG[bluez] = "ac_cv_header_bluetooth_bluetooth_h=yes,ac_cv_header_bluetooth_bluetooth_h=no,${BLUEZ}" -PACKAGECONFIG[libunwind] = "--with-libunwind,--without-libunwind,libunwind" - -EXTRA_OECONF += "--enable-mpers=no" - -CFLAGS_append_libc-musl = " -Dsigcontext_struct=sigcontext" - -TESTDIR = "tests" -PTEST_BUILD_HOST_PATTERN = "^(DEB_CHANGELOGTIME|RPM_CHANGELOGTIME|WARN_CFLAGS_FOR_BUILD|LDFLAGS_FOR_BUILD)" - -do_install_append() { - # We don't ship strace-graph here because it needs perl - rm ${D}${bindir}/strace-graph -} - -do_compile_ptest() { - oe_runmake -C ${TESTDIR} buildtest-TESTS -} - -do_install_ptest() { - oe_runmake -C ${TESTDIR} install-ptest BUILDDIR=${B} DESTDIR=${D}${PTEST_PATH} TESTDIR=${TESTDIR} - install -m 755 ${S}/test-driver ${D}${PTEST_PATH} - install -m 644 ${B}/config.h ${D}${PTEST_PATH} - sed -i -e '/^src/s/strace.*[1-9]/ptest/' ${D}/${PTEST_PATH}/${TESTDIR}/Makefile -} - -RDEPENDS_${PN}-ptest += "make coreutils grep gawk sed" - -BBCLASSEXTEND = "native" -TOOLCHAIN = "gcc" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/strace/strace_5.3.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/strace/strace_5.3.bb new file mode 100644 index 00000000..b000afb3 --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/strace/strace_5.3.bb @@ -0,0 +1,58 @@ +SUMMARY = "System call tracing tool" +HOMEPAGE = "http://strace.io" +SECTION = "console/utils" +LICENSE = "LGPL-2.1+ & GPL-2+" +LIC_FILES_CHKSUM = "file://COPYING;md5=0169a04810830e94f4b1cfb823c9f592" + +SRC_URI = "https://strace.io/files/${PV}/strace-${PV}.tar.xz \ + file://disable-git-version-gen.patch \ + file://more-robust-test-for-m32-mx32-compile-support.patch \ + file://update-gawk-paths.patch \ + file://Makefile-ptest.patch \ + file://run-ptest \ + file://mips-SIGEMT.patch \ + file://0001-caps-abbrev.awk-fix-gawk-s-path.patch \ + file://0001-tests-sigaction-Check-for-mips-and-alpha-before-usin.patch \ + file://ptest-spacesave.patch \ + file://uintptr_t.patch \ + file://sys_headers.patch \ + " +SRC_URI[md5sum] = "84f5e72de813c9b1bb6057ee8ab428d8" +SRC_URI[sha256sum] = "6c131198749656401fe3efd6b4b16a07ea867e8f530867ceae8930bbc937a047" + +inherit autotools ptest + +PACKAGECONFIG_class-target ??= "\ + ${@bb.utils.contains('DISTRO_FEATURES', 'bluetooth', 'bluez', '', d)} \ +" + +PACKAGECONFIG[bluez] = "ac_cv_header_bluetooth_bluetooth_h=yes,ac_cv_header_bluetooth_bluetooth_h=no,bluez5" +PACKAGECONFIG[libunwind] = "--with-libunwind,--without-libunwind,libunwind" + +EXTRA_OECONF += "--enable-mpers=no" + +CFLAGS_append_libc-musl = " -Dsigcontext_struct=sigcontext" + +TESTDIR = "tests" +PTEST_BUILD_HOST_PATTERN = "^(DEB_CHANGELOGTIME|RPM_CHANGELOGTIME|WARN_CFLAGS_FOR_BUILD|LDFLAGS_FOR_BUILD)" + +do_install_append() { + # We don't ship strace-graph here because it needs perl + rm ${D}${bindir}/strace-graph +} + +do_compile_ptest() { + oe_runmake -C ${TESTDIR} buildtest-TESTS +} + +do_install_ptest() { + oe_runmake -C ${TESTDIR} install-ptest BUILDDIR=${B} DESTDIR=${D}${PTEST_PATH} TESTDIR=${TESTDIR} + install -m 755 ${S}/test-driver ${D}${PTEST_PATH} + install -m 644 ${B}/config.h ${D}${PTEST_PATH} + sed -i -e '/^src/s/strace.*[1-9]/ptest/' ${D}/${PTEST_PATH}/${TESTDIR}/Makefile +} + +RDEPENDS_${PN}-ptest += "make coreutils grep gawk sed" + +BBCLASSEXTEND = "native" +TOOLCHAIN = "gcc" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/subversion/subversion/subversion-1.12.0-apr_1.7.0_fix-1.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/subversion/subversion/subversion-1.12.0-apr_1.7.0_fix-1.patch deleted file mode 100644 index f0edd5fe..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/subversion/subversion/subversion-1.12.0-apr_1.7.0_fix-1.patch +++ /dev/null @@ -1,107 +0,0 @@ -From b147803553237654f8268e831dee8fed4989ad3b Mon Sep 17 00:00:00 2001 -From: Hongxu Jia -Date: Sat, 11 May 2019 14:46:39 +0800 -Subject: [PATCH] Submitted By: Pierre Labastie (pierre dot labastie at neuf - dot fr) Date: 2019-04-17 Initial Package Version: 1.11.1 Origin: Upstream - revision 1857391 Upstream Status: Committed Description: Get rid of - apr_int64_t format string check in swig py configure. - -This check relied on APR implementation details and broke with APR 1.7.0. -Rather than trying to guess a perfect format string to use, just use the -largest possible format and cast the argument accordingly. - -Should fix build against APR 1.7.0 and later. - -Suggested by: brane - -* build/ac-macros/swig.m4: Remove code related to SVN_APR_INT64_T_PYCFMT. - -* subversion/bindings/swig/python/libsvn_swig_py/swigutil_py.c - (svn_swig_py_client_blame_receiver_func): Stop relying on the - SVN_APR_INT64_T_PYCFMT constant from configure. Use "L" and - acast to PY_LONG_LONG instead. - -Upstream-Status: Backport [www.linuxfromscratch.org/patches/blfs/svn/subversion-1.12.0-apr_1.7.0_fix-1.patch] - -Signed-off-by: Hongxu Jia ---- - build/ac-macros/swig.m4 | 35 ---------------------- - .../swig/python/libsvn_swig_py/swigutil_py.c | 9 +++--- - 2 files changed, 4 insertions(+), 40 deletions(-) - -diff --git a/build/ac-macros/swig.m4 b/build/ac-macros/swig.m4 -index 55501fb..2963872 100644 ---- a/build/ac-macros/swig.m4 -+++ b/build/ac-macros/swig.m4 -@@ -128,41 +128,6 @@ AC_DEFUN(SVN_FIND_SWIG, - ac_cv_python_libs="`$PYTHON ${abs_srcdir}/build/get-py-info.py --libs`" - ]) - SWIG_PY_LIBS="`SVN_REMOVE_STANDARD_LIB_DIRS($ac_cv_python_libs)`" -- -- dnl Sun Forte adds an extra space before substituting APR_INT64_T_FMT -- dnl gcc-2.95 adds an extra space after substituting APR_INT64_T_FMT -- dnl thus the egrep patterns have a + in them. -- SVN_PYCFMT_SAVE_CPPFLAGS="$CPPFLAGS" -- CPPFLAGS="$CPPFLAGS $SVN_APR_INCLUDES" -- AC_CACHE_CHECK([for apr_int64_t Python/C API format string], -- [svn_cv_pycfmt_apr_int64_t], [ -- if test "x$svn_cv_pycfmt_apr_int64_t" = "x"; then -- AC_EGREP_CPP([MaTcHtHiS +\"lld\" +EnDeNd], -- [#include -- MaTcHtHiS APR_INT64_T_FMT EnDeNd], -- [svn_cv_pycfmt_apr_int64_t="L"]) -- fi -- if test "x$svn_cv_pycfmt_apr_int64_t" = "x"; then -- AC_EGREP_CPP([MaTcHtHiS +\"ld\" +EnDeNd],r -- [#include -- MaTcHtHiS APR_INT64_T_FMT EnDeNd], -- [svn_cv_pycfmt_apr_int64_t="l"]) -- fi -- if test "x$svn_cv_pycfmt_apr_int64_t" = "x"; then -- AC_EGREP_CPP([MaTcHtHiS +\"d\" +EnDeNd], -- [#include -- MaTcHtHiS APR_INT64_T_FMT EnDeNd], -- [svn_cv_pycfmt_apr_int64_t="i"]) -- fi -- ]) -- CPPFLAGS="$SVN_PYCFMT_SAVE_CPPFLAGS" -- if test "x$svn_cv_pycfmt_apr_int64_t" = "x"; then -- AC_MSG_ERROR([failed to recognize APR_INT64_T_FMT on this platform]) -- fi -- AC_DEFINE_UNQUOTED([SVN_APR_INT64_T_PYCFMT], -- ["$svn_cv_pycfmt_apr_int64_t"], -- [Define to the Python/C API format character suitable] -- [ for apr_int64_t]) - fi - - if test "$PERL" != "none"; then -diff --git a/subversion/bindings/swig/python/libsvn_swig_py/swigutil_py.c b/subversion/bindings/swig/python/libsvn_swig_py/swigutil_py.c -index 2c90a6a..abe5a2a 100644 ---- a/subversion/bindings/swig/python/libsvn_swig_py/swigutil_py.c -+++ b/subversion/bindings/swig/python/libsvn_swig_py/swigutil_py.c -@@ -46,7 +46,7 @@ - #include "svn_mergeinfo.h" - #include "svn_types.h" - --#include "svn_private_config.h" /* for SVN_APR_INT64_T_PYCFMT */ -+#include "svn_private_config.h" - - #include "swig_python_external_runtime.swg" - #include "swigutil_py.h" -@@ -3394,10 +3394,9 @@ svn_error_t *svn_swig_py_client_blame_receiver_func(void *baton, - svn_swig_py_acquire_py_lock(); - - if ((result = PyObject_CallFunction(receiver, -- (char *) -- (SVN_APR_INT64_T_PYCFMT "lsssO&"), -- line_no, revision, author, date, line, -- make_ob_pool, pool)) == NULL) -+ (char *)"LlsssO&", -+ (PY_LONG_LONG)line_no, revision, author, -+ date, line, make_ob_pool, pool)) == NULL) - { - err = callback_exception_error(); - } --- -2.7.4 - diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/subversion/subversion_1.12.0.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/subversion/subversion_1.12.0.bb deleted file mode 100644 index f059ff9f..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/subversion/subversion_1.12.0.bb +++ /dev/null @@ -1,59 +0,0 @@ -SUMMARY = "Subversion (svn) version control system client" -HOMEPAGE = "http://subversion.apache.org" -SECTION = "console/network" -LICENSE = "Apache-2 & MIT" -LIC_FILES_CHKSUM = "file://LICENSE;md5=6487ae7094d359fa90fb9c4096e52e2b" - -DEPENDS = "apr-util serf sqlite3 file lz4" -DEPENDS_append_class-native = " file-replacement-native" - -SRC_URI = "${APACHE_MIRROR}/${BPN}/${BPN}-${PV}.tar.bz2 \ - file://disable_macos.patch \ - file://0001-Fix-libtool-name-in-configure.ac.patch \ - file://serfmacro.patch \ - file://subversion-1.12.0-apr_1.7.0_fix-1.patch \ - " - -SRC_URI[md5sum] = "be4f5c0b1b38a5d82bd6d16a16ff1346" -SRC_URI[sha256sum] = "7fae7c73d8a007c107c0ae5eb372bc0bb013dbfe966fcd5c59cd5a195a5e2edf" - -inherit autotools pkgconfig gettext - -PACKAGECONFIG ?= "" - -PACKAGECONFIG[sasl] = "--with-sasl,--without-sasl,cyrus-sasl" -PACKAGECONFIG[gnome-keyring] = "--with-gnome-keyring,--without-gnome-keyring,glib-2.0 gnome-keyring" - -EXTRA_OECONF = " \ - --with-apr=${STAGING_BINDIR_CROSS} \ - --with-apr-util=${STAGING_BINDIR_CROSS} \ - --without-apxs \ - --without-berkeley-db \ - --without-swig \ - --disable-keychain \ - --with-utf8proc=internal \ - ac_cv_path_RUBY=none \ -" - -acpaths = "-I build/ -I build/ac-macros/" - -CPPFLAGS += "-P" -BUILD_CPPFLAGS += "-P" - -do_configure_prepend () { - rm -f ${S}/libtool - rm -f ${S}/build/libtool.m4 ${S}/build/ltmain.sh ${S}/build/ltoptions.m4 ${S}/build/ltsugar.m4 ${S}/build/ltversion.m4 ${S}/build/lt~obsolete.m4 - rm -f ${S}/aclocal.m4 - sed -i -e 's:with_sasl="/usr/local":with_sasl="${STAGING_DIR}":' ${S}/build/ac-macros/sasl.m4 -} - -#| x86_64-linux-libtool: install: warning: `/home/pokybuild/yocto-autobuilder/yocto-worker/nightly-qa-logrotate/build/build/tmp/work/x86_64-linux/subversion-native/1.8.9-r0/build/subversion/libsvn_ra_local/libsvn_ra_local-1.la' has not been installed in `/home/pokybuild/yocto-autobuilder/yocto-worker/nightly-qa-logrotate/build/build/tmp/sysroots/x86_64-linux/usr/lib'| x86_64-linux-libtool: install: warning: `/home/pokybuild/yocto-autobuilder/yocto-worker/nightly-qa-logrotate/build/build/tmp/work/x86_64-linux/subversion-native/1.8.9-r0/build/subversion/libsvn_repos/libsvn_repos-1.la' has not been installed in `/home/pokybuild/yocto-autobuilder/yocto-worker/nightly-qa-logrotate/build/build/tmp/sysroots/x86_64-linux/usr/lib'| /usr/bin/ld: cannot find -lsvn_delta-1| collect2: ld returned 1 exit status| x86_64-linux-libtool: install: warning: `/home/pokybuild/yocto-autobuilder/yocto-worker/nightly-qa-logrotate/build/build/tmp/work/x86_64-linux/subversion-native/1.8.9-r0/build/subversion/libsvn_ra_svn/libsvn_ra_svn-1.la' has not been installed in `/home/pokybuild/yocto-autobuilder/yocto-worker/nightly-qa-logrotate/build/build/tmp/sysroots/x86_64-linux/usr/lib'| x86_64-linux-libtool: install: warning: `/home/pokybuild/yocto-autobuilder/yocto-worker/nightly-qa-logrotate/build/build/tmp/work/x86_64-linux/subversion-native/1.8.9-r0/build/subversion/libsvn_ra_serf/libsvn_ra_serf-1.la' has not been installed in `/home/pokybuild/yocto-autobuilder/yocto-worker/nightly-qa-logrotate/build/build/tmp/sysroots/x86_64-linux/usr/lib' -#| x86_64-linux-libtool: install: error: relink `libsvn_ra_serf-1.la' with the above command before installing it -#| x86_64-linux-libtool: install: warning: `../../subversion/libsvn_repos/libsvn_repos-1.la' has not been installed in `/home/pokybuild/yocto-autobuilder/yocto-worker/nightly-qa-logrotate/build/build/tmp/sysroots/x86_64-linux/usr/lib' -#| /home/pokybuild/yocto-autobuilder/yocto-worker/nightly-qa-logrotate/build/build/tmp/work/x86_64-linux/subversion-native/1.8.9-r0/subversion-1.8.9/build-outputs.mk:1090: recipe for target 'install-serf-lib' failed -#| make: *** [install-serf-lib] Error 1 -PARALLEL_MAKEINST = "" - -RDEPENDS_${PN} = "serf" - -BBCLASSEXTEND = "native" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/subversion/subversion_1.12.2.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/subversion/subversion_1.12.2.bb new file mode 100644 index 00000000..4ffa1c58 --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/subversion/subversion_1.12.2.bb @@ -0,0 +1,61 @@ +SUMMARY = "Subversion (svn) version control system client" +HOMEPAGE = "http://subversion.apache.org" +SECTION = "console/network" +LICENSE = "Apache-2 & MIT" +LIC_FILES_CHKSUM = "file://LICENSE;md5=6487ae7094d359fa90fb9c4096e52e2b" + +DEPENDS = "apr-util serf sqlite3 file lz4" +DEPENDS_append_class-native = " file-replacement-native" + +SRC_URI = "${APACHE_MIRROR}/${BPN}/${BPN}-${PV}.tar.bz2 \ + file://disable_macos.patch \ + file://0001-Fix-libtool-name-in-configure.ac.patch \ + file://serfmacro.patch \ + " + +SRC_URI[md5sum] = "1ff249f848f834ded88536543e031975" +SRC_URI[sha256sum] = "3bd0b5c8e4c5175263dc9a92fd9aef94ce917e80af034f26fe5c45fde7e0f771" + +inherit autotools pkgconfig gettext + +CVE_PRODUCT = "apache:subversion" + +PACKAGECONFIG ?= "" + +PACKAGECONFIG[boost] = "--with-boost=${RECIPE_SYSROOT}${exec_prefix},--without-boost,boost" +PACKAGECONFIG[sasl] = "--with-sasl,--without-sasl,cyrus-sasl" +PACKAGECONFIG[gnome-keyring] = "--with-gnome-keyring,--without-gnome-keyring,glib-2.0 gnome-keyring" + +EXTRA_OECONF = " \ + --with-apr=${STAGING_BINDIR_CROSS} \ + --with-apr-util=${STAGING_BINDIR_CROSS} \ + --without-apxs \ + --without-berkeley-db \ + --without-swig \ + --disable-keychain \ + --with-utf8proc=internal \ + ac_cv_path_RUBY=none \ +" + +acpaths = "-I build/ -I build/ac-macros/" + +CPPFLAGS += "-P" +BUILD_CPPFLAGS += "-P" + +do_configure_prepend () { + rm -f ${S}/libtool + rm -f ${S}/build/libtool.m4 ${S}/build/ltmain.sh ${S}/build/ltoptions.m4 ${S}/build/ltsugar.m4 ${S}/build/ltversion.m4 ${S}/build/lt~obsolete.m4 + rm -f ${S}/aclocal.m4 + sed -i -e 's:with_sasl="/usr/local":with_sasl="${STAGING_DIR}":' ${S}/build/ac-macros/sasl.m4 +} + +#| x86_64-linux-libtool: install: warning: `/home/pokybuild/yocto-autobuilder/yocto-worker/nightly-qa-logrotate/build/build/tmp/work/x86_64-linux/subversion-native/1.8.9-r0/build/subversion/libsvn_ra_local/libsvn_ra_local-1.la' has not been installed in `/home/pokybuild/yocto-autobuilder/yocto-worker/nightly-qa-logrotate/build/build/tmp/sysroots/x86_64-linux/usr/lib'| x86_64-linux-libtool: install: warning: `/home/pokybuild/yocto-autobuilder/yocto-worker/nightly-qa-logrotate/build/build/tmp/work/x86_64-linux/subversion-native/1.8.9-r0/build/subversion/libsvn_repos/libsvn_repos-1.la' has not been installed in `/home/pokybuild/yocto-autobuilder/yocto-worker/nightly-qa-logrotate/build/build/tmp/sysroots/x86_64-linux/usr/lib'| /usr/bin/ld: cannot find -lsvn_delta-1| collect2: ld returned 1 exit status| x86_64-linux-libtool: install: warning: `/home/pokybuild/yocto-autobuilder/yocto-worker/nightly-qa-logrotate/build/build/tmp/work/x86_64-linux/subversion-native/1.8.9-r0/build/subversion/libsvn_ra_svn/libsvn_ra_svn-1.la' has not been installed in `/home/pokybuild/yocto-autobuilder/yocto-worker/nightly-qa-logrotate/build/build/tmp/sysroots/x86_64-linux/usr/lib'| x86_64-linux-libtool: install: warning: `/home/pokybuild/yocto-autobuilder/yocto-worker/nightly-qa-logrotate/build/build/tmp/work/x86_64-linux/subversion-native/1.8.9-r0/build/subversion/libsvn_ra_serf/libsvn_ra_serf-1.la' has not been installed in `/home/pokybuild/yocto-autobuilder/yocto-worker/nightly-qa-logrotate/build/build/tmp/sysroots/x86_64-linux/usr/lib' +#| x86_64-linux-libtool: install: error: relink `libsvn_ra_serf-1.la' with the above command before installing it +#| x86_64-linux-libtool: install: warning: `../../subversion/libsvn_repos/libsvn_repos-1.la' has not been installed in `/home/pokybuild/yocto-autobuilder/yocto-worker/nightly-qa-logrotate/build/build/tmp/sysroots/x86_64-linux/usr/lib' +#| /home/pokybuild/yocto-autobuilder/yocto-worker/nightly-qa-logrotate/build/build/tmp/work/x86_64-linux/subversion-native/1.8.9-r0/subversion-1.8.9/build-outputs.mk:1090: recipe for target 'install-serf-lib' failed +#| make: *** [install-serf-lib] Error 1 +PARALLEL_MAKEINST = "" + +RDEPENDS_${PN} = "serf" + +BBCLASSEXTEND = "native" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/swig/swig.inc b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/swig/swig.inc index 00b9c5b6..e62718c5 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/swig/swig.inc +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/swig/swig.inc @@ -1,4 +1,7 @@ SUMMARY = "SWIG - Simplified Wrapper and Interface Generator" +DESCRIPTION = "SWIG is a compiler that makes it easy to integrate C and C++ \ +code with other languages including Perl, Tcl, Ruby, Python, Java, Guile, \ +Mzscheme, Chicken, OCaml, Pike, and C#." HOMEPAGE = "http://swig.sourceforge.net/" LICENSE = "BSD & GPLv3" LIC_FILES_CHKSUM = "file://LICENSE;md5=e7807a6282784a7dde4c846626b08fc6 \ diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/syslinux/syslinux_6.04-pre2.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/syslinux/syslinux_6.04-pre2.bb index 67e5d57d..e9dbefb9 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/syslinux/syslinux_6.04-pre2.bb +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/syslinux/syslinux_6.04-pre2.bb @@ -59,11 +59,26 @@ do_compile() { # Rebuild only the installer; keep precompiled bootloaders # as per author's request (doc/distrib.txt) - oe_runmake CC="${CC} ${CFLAGS}" LD="${LD}" LDFLAGS="${LDFLAGS}" firmware="bios" installer + oe_runmake CC="${CC} ${CFLAGS}" \ + LD="${LD}" LDFLAGS="${LDFLAGS}" \ + OBJDUMP="${OBJDUMP}" \ + OBJCOPY="${OBJCOPY}" \ + AR="${AR}" \ + STRIP="${STRIP}" \ + NM="${NM}" \ + RANLIB="${RANLIB}" \ + firmware="bios" installer } do_install() { - oe_runmake CC="${CC} ${CFLAGS}" LD="${LD}" firmware="bios" install INSTALLROOT="${D}" + oe_runmake CC="${CC} ${CFLAGS}" LD="${LD}" \ + OBJDUMP="${OBJDUMP}" \ + OBJCOPY="${OBJCOPY}" \ + AR="${AR}" \ + STRIP="${STRIP}" \ + NM="${NM}" \ + RANLIB="${RANLIB}" \ + firmware="bios" install INSTALLROOT="${D}" install -d ${D}${datadir}/syslinux/ install -m 644 ${S}/bios/core/ldlinux.sys ${D}${datadir}/syslinux/ diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/systemd-bootchart/systemd-bootchart_233.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/systemd-bootchart/systemd-bootchart_233.bb index 1ae21b1f..aef88398 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/systemd-bootchart/systemd-bootchart_233.bb +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/systemd-bootchart/systemd-bootchart_233.bb @@ -20,7 +20,7 @@ S = "${WORKDIR}/git" DEPENDS = "systemd libxslt-native xmlto-native docbook-xml-dtd4-native docbook-xsl-stylesheets-native intltool" -inherit pkgconfig autotools systemd distro_features_check +inherit pkgconfig autotools systemd features_check REQUIRED_DISTRO_FEATURES = "systemd" @@ -33,5 +33,5 @@ do_configure_prepend() { FILES_${PN} += "${systemd_unitdir}/systemd-bootchart" -EXTRA_OECONF = " --with-rootprefix=${base_prefix} \ +EXTRA_OECONF = " --with-rootprefix=${root_prefix} \ --with-rootlibdir=${base_libdir}" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/unfs3/unfs3/0001-Add-listen-action-for-a-tcp-socket.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/unfs3/unfs3/0001-Add-listen-action-for-a-tcp-socket.patch new file mode 100644 index 00000000..e9b9d3df --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/unfs3/unfs3/0001-Add-listen-action-for-a-tcp-socket.patch @@ -0,0 +1,54 @@ +From b42ab8e1aca951dd06c113159491b3fd5cf06f2e Mon Sep 17 00:00:00 2001 +From: Haiqing Bai +Date: Thu, 24 Oct 2019 09:39:04 +0800 +Subject: [PATCH] Add "listen" action for a tcp socket which does not call + 'listen' after 'bind' + +It is found that /usr/bin/unfsd customus 100% cpu after starting qemu with 'nfs' +option, and below lots of error messages shows when strace the process: + +poll([{fd=3, events=POLLIN|POLLPRI|POLLRDNORM|POLLRDBAND},{fd=4, events=POLLIN|POLLPRI|POLLRDNORM|POLLRDBAND}, +{fd=5, events=POLLIN|POLLPRI|POLLRDNORM|POLLRDBAND},{fd=6, events =POLLIN|POLLPRI|POLLRDNORM|POLLRDBAND}], +4, 2000) = 2 ([{fd=4, revents=POLLHUP},{fd=6, revents=POLLHUP}]) +accept(4, 0x7ffd5e6dddc0, [128]) = -1 EINVAL (Invalid argument) +accept(6, 0x7ffd5e6dddc0, [128]) = -1 EINVAL (Invalid argument) + +% time seconds usecs/call calls errors syscall +------ ----------- ----------- --------- --------- ---------------- + 70.87 0.005392 0 513886 513886 accept + 29.13 0.002216 0 256943 poll + 0.00 0.000000 0 4 read + +The root cause is that 'listen' is not called for the binded +socket. The depended libtipc does not call 'listen' if found +the incomming socket is binded, so 'accept' reports the error +in the 'for' loop and cpu consumed. + +Upstream-Status: Pending + +Signed-off-by: Haiqing Bai +--- + daemon.c | 7 +++++++ + 1 file changed, 7 insertions(+) + +diff --git a/daemon.c b/daemon.c +index 028a181..4c85903 100644 +--- a/daemon.c ++++ b/daemon.c +@@ -814,6 +814,13 @@ static SVCXPRT *create_tcp_transport(unsigned int port) + fprintf(stderr, "Couldn't bind to tcp port %d\n", port); + exit(1); + } ++ ++ if (listen(sock, SOMAXCONN) < 0) { ++ perror("listen"); ++ fprintf(stderr, "Couldn't listen on the address \n"); ++ close(sock); ++ exit(1); ++ } + } + + transp = svctcp_create(sock, 0, 0); +-- +1.9.1 + diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/unfs3/unfs3_0.9.22.r497.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/unfs3/unfs3_0.9.22.r497.bb deleted file mode 100644 index 5a81a8fd..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/unfs3/unfs3_0.9.22.r497.bb +++ /dev/null @@ -1,47 +0,0 @@ -SUMMARY = "Userspace NFS server v3 protocol" -SECTION = "console/network" -LICENSE = "unfs3" -LIC_FILES_CHKSUM = "file://LICENSE;md5=9475885294e17c0cc0067820d042792e" - -# SVN support for upstream version check isn't implemented yet -RECIPE_UPSTREAM_VERSION = "0.9.22.r497" -RECIPE_UPSTREAM_DATE = "Oct 08, 2015" -CHECK_DATE = "Dec 10, 2015" - -DEPENDS = "flex-native bison-native flex" -DEPENDS += "libtirpc" -DEPENDS_append_class-nativesdk = " flex-nativesdk" - -ASNEEDED = "" - -MOD_PV = "497" -S = "${WORKDIR}/trunk" -# Only subversion url left in OE-Core, use a mirror tarball instead since -# this rarely changes. -# svn://svn.code.sf.net/p/unfs3/code;module=trunk;rev=${MOD_PV};protocol=http -# rename the tarball in mirror to avoid clash with user local svn tarball -SRC_URI = "http://downloads.yoctoproject.org/mirror/sources/unfs3-0.9.22.r497.tar.gz \ - file://unfs3_parallel_build.patch \ - file://alternate_rpc_ports.patch \ - file://fix_pid_race_parent_writes_child_pid.patch \ - file://fix_compile_warning.patch \ - file://rename_fh_cache.patch \ - file://relative_max_socket_path_len.patch \ - file://tcp_no_delay.patch \ - file://0001-daemon.c-Libtirpc-porting-fixes.patch \ - file://0001-attr-fix-utime-for-symlink.patch \ - " -SRC_URI[md5sum] = "2e43e471c77ade0331901c40b8f8e9a3" -SRC_URI[sha256sum] = "21009468a9ba07b72ea93780d025a63ab4e55bf8fc3127803c296f0900fe1bac" - -BBCLASSEXTEND = "native nativesdk" - -inherit autotools -EXTRA_OECONF_append_class-native = " --sbindir=${bindir}" -CFLAGS_append = " -I${STAGING_INCDIR}/tirpc" -LDFLAGS_append = " -ltirpc" - -# Turn off these header detects else the inode search -# will walk entire file systems and this is a real problem -# if you have 2 TB of files to walk in your file system -CACHED_CONFIGUREVARS = "ac_cv_header_mntent_h=no ac_cv_header_sys_mnttab_h=no" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/unfs3/unfs3_git.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/unfs3/unfs3_git.bb new file mode 100644 index 00000000..d60cee87 --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/unfs3/unfs3_git.bb @@ -0,0 +1,43 @@ +SUMMARY = "Userspace NFS server v3 protocol" +DESCRIPTION = "UNFS3 is a user-space implementation of the NFSv3 server \ +specification. It provides a daemon for the MOUNT and NFS protocols, which \ +are used by NFS clients for accessing files on the server." +SECTION = "console/network" +LICENSE = "unfs3" +LIC_FILES_CHKSUM = "file://LICENSE;md5=9475885294e17c0cc0067820d042792e" + +DEPENDS = "flex-native bison-native flex" +DEPENDS += "libtirpc" +DEPENDS_append_class-nativesdk = " flex-nativesdk" + +ASNEEDED = "" + +S = "${WORKDIR}/git" +SRC_URI = "git://github.com/unfs3/unfs3.git;protocol=https \ + file://unfs3_parallel_build.patch \ + file://alternate_rpc_ports.patch \ + file://fix_pid_race_parent_writes_child_pid.patch \ + file://fix_compile_warning.patch \ + file://rename_fh_cache.patch \ + file://relative_max_socket_path_len.patch \ + file://tcp_no_delay.patch \ + file://0001-daemon.c-Libtirpc-porting-fixes.patch \ + file://0001-attr-fix-utime-for-symlink.patch \ + file://0001-Add-listen-action-for-a-tcp-socket.patch \ + " +SRCREV = "c12a5c69a8d59be6916cbd0e0f41c159f1962425" +UPSTREAM_CHECK_GITTAGREGEX = "unfs3\-(?P.+)" + +PV = "0.9.22+${SRCPV}" + +BBCLASSEXTEND = "native nativesdk" + +inherit autotools +EXTRA_OECONF_append_class-native = " --sbindir=${bindir}" +CFLAGS_append = " -I${STAGING_INCDIR}/tirpc" +LDFLAGS_append = " -ltirpc" + +# Turn off these header detects else the inode search +# will walk entire file systems and this is a real problem +# if you have 2 TB of files to walk in your file system +CACHED_CONFIGUREVARS = "ac_cv_header_mntent_h=no ac_cv_header_sys_mnttab_h=no" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/vala/vala_0.44.5.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/vala/vala_0.44.5.bb deleted file mode 100644 index 518c9ebd..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/vala/vala_0.44.5.bb +++ /dev/null @@ -1,8 +0,0 @@ -require ${BPN}.inc - -SRC_URI += "file://0001-git-version-gen-don-t-append-dirty-if-we-re-not-in-g.patch \ - file://0001-vapigen.m4-use-PKG_CONFIG_SYSROOT_DIR.patch \ - " - -SRC_URI[md5sum] = "1e8b8595168446c529b11236cf75e328" -SRC_URI[sha256sum] = "bb8f8185b805411511786733c4b769c3ee6af8bc879609bffb6c46b8999bc27f" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/vala/vala_0.46.4.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/vala/vala_0.46.4.bb new file mode 100644 index 00000000..c4cd6dd4 --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/vala/vala_0.46.4.bb @@ -0,0 +1,8 @@ +require ${BPN}.inc + +SRC_URI += "file://0001-git-version-gen-don-t-append-dirty-if-we-re-not-in-g.patch \ + file://0001-vapigen.m4-use-PKG_CONFIG_SYSROOT_DIR.patch \ + " + +SRC_URI[md5sum] = "b79bbaf8929ec8ed35911b3571f5a248" +SRC_URI[sha256sum] = "4bb9b60fc0230b0db2c8a0e2a80ec29f1c10b43dc78355abba78adedbc2e03a1" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/valgrind/valgrind/0001-adjust-path-filter-for-2-memcheck-tests.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/valgrind/valgrind/0001-adjust-path-filter-for-2-memcheck-tests.patch new file mode 100644 index 00000000..4bc4bb08 --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/valgrind/valgrind/0001-adjust-path-filter-for-2-memcheck-tests.patch @@ -0,0 +1,40 @@ +From bf63e35c3036e6040c8cfecabc7160b1f36b0591 Mon Sep 17 00:00:00 2001 +From: Randy MacLeod +Date: Wed, 28 Aug 2019 12:31:15 -0400 +Subject: [PATCH] adjust path filter for 2 memcheck tests + +Test executables produced when cross-compiling can contain +relative paths such as: + coregrind/tests/../../../valgrind-3.15.0/coregrind/ +Use the --fullpath-after option to match and therefore +suppress more of the prefix to enable test to pass. + +Upstream-Status: Inappropriate [embedded specific] + +Signed-off-by: Randy MacLeod +--- + memcheck/tests/badfree3.vgtest | 2 +- + memcheck/tests/varinfo5.vgtest | 2 +- + 2 files changed, 2 insertions(+), 2 deletions(-) + +diff --git a/memcheck/tests/badfree3.vgtest b/memcheck/tests/badfree3.vgtest +index 3dfc5fd8a..57eec21f3 100644 +--- a/memcheck/tests/badfree3.vgtest ++++ b/memcheck/tests/badfree3.vgtest +@@ -1,3 +1,3 @@ + prog: badfree +-vgopts: -q --fullpath-after=memcheck/ --fullpath-after=coregrind/ ++vgopts: -q --fullpath-after=/valgrind-3.15.0/memcheck/ --fullpath-after=/valgrind-3.15.0/coregrind/ + stderr_filter_args: badfree.c +diff --git a/memcheck/tests/varinfo5.vgtest b/memcheck/tests/varinfo5.vgtest +index 063d00dce..6907bb2f6 100644 +--- a/memcheck/tests/varinfo5.vgtest ++++ b/memcheck/tests/varinfo5.vgtest +@@ -1,3 +1,3 @@ + prog: varinfo5 +-vgopts: --fullpath-after=memcheck/ --fullpath-after=coregrind/ --read-var-info=yes --read-inline-info=yes -q ++vgopts: --fullpath-after=/valgrind-3.15.0/memcheck/ --fullpath-after=/valgrind-3.15.0/coregrind/ --read-var-info=yes --read-inline-info=yes -q + stderr_filter: filter_varinfo3 +-- +2.22.0 + diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/valgrind/valgrind/remove-for-aarch64 b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/valgrind/valgrind/remove-for-aarch64 new file mode 100644 index 00000000..acf4fd1b --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/valgrind/valgrind/remove-for-aarch64 @@ -0,0 +1,236 @@ +cachegrind/tests/ann1 +callgrind/tests/simwork1 +callgrind/tests/simwork2 +callgrind/tests/simwork3 +callgrind/tests/simwork-both +callgrind/tests/simwork-cache +callgrind/tests/threads +callgrind/tests/threads-use +drd/tests/annotate_barrier +drd/tests/annotate_barrier_xml +drd/tests/annotate_hbefore +drd/tests/annotate_hb_err +drd/tests/annotate_hb_race +drd/tests/annotate_ignore_read +drd/tests/annotate_ignore_rw +drd/tests/annotate_ignore_rw2 +drd/tests/annotate_ignore_write +drd/tests/annotate_ignore_write2 +drd/tests/annotate_order_1 +drd/tests/annotate_order_2 +drd/tests/annotate_order_3 +drd/tests/annotate_publish_hg +drd/tests/annotate_rwlock +drd/tests/annotate_rwlock_hg +drd/tests/annotate_sem +drd/tests/annotate_smart_pointer +drd/tests/annotate_smart_pointer2 +drd/tests/annotate_spinlock +drd/tests/annotate_static +drd/tests/annotate_trace_memory +drd/tests/annotate_trace_memory_xml +drd/tests/atomic_var +drd/tests/bar_bad +drd/tests/bar_bad_xml +drd/tests/bar_trivial +drd/tests/bug-235681 +drd/tests/bug322621 +drd/tests/circular_buffer +drd/tests/concurrent_close +drd/tests/custom_alloc +drd/tests/custom_alloc_fiw +drd/tests/dlopen +drd/tests/fork-parallel +drd/tests/fork-serial +drd/tests/fp_race +drd/tests/fp_race2 +drd/tests/fp_race_xml +drd/tests/free_is_write +drd/tests/free_is_write2 +drd/tests/hg01_all_ok +drd/tests/hg02_deadlock +drd/tests/hg03_inherit +drd/tests/hg04_race +drd/tests/hg05_race2 +drd/tests/hg06_readshared +drd/tests/hold_lock_1 +drd/tests/hold_lock_2 +drd/tests/linuxthreads_det +drd/tests/matinv +drd/tests/memory_allocation +drd/tests/monitor_example +drd/tests/new_delete +drd/tests/pth_barrier +drd/tests/pth_barrier2 +drd/tests/pth_barrier3 +drd/tests/pth_barrier_race +drd/tests/pth_barrier_reinit +drd/tests/pth_barrier_thr_cr +drd/tests/pth_broadcast +drd/tests/pth_cancel_locked +drd/tests/pth_cleanup_handler +drd/tests/pth_cond_race +drd/tests/pth_cond_race2 +drd/tests/pth_detached2 +drd/tests/pth_detached3 +drd/tests/pth_detached_sem +drd/tests/pth_inconsistent_cond_wait +drd/tests/pth_mutex_reinit +drd/tests/pth_once +drd/tests/pth_process_shared_mutex +drd/tests/pth_spinlock +drd/tests/pth_uninitialized_cond +drd/tests/read_and_free_race +drd/tests/recursive_mutex +drd/tests/rwlock_race +drd/tests/rwlock_test +drd/tests/rwlock_type_checking +drd/tests/sem_as_mutex +drd/tests/sem_as_mutex2 +drd/tests/sem_as_mutex3 +drd/tests/sem_open +drd/tests/sem_open2 +drd/tests/sem_open3 +drd/tests/sem_open_traced +drd/tests/sem_wait +drd/tests/sigalrm +drd/tests/sigaltstack +drd/tests/std_atomic +drd/tests/std_string +drd/tests/std_thread +drd/tests/std_thread2 +drd/tests/str_tester +drd/tests/tc01_simple_race +drd/tests/tc02_simple_tls +drd/tests/tc03_re_excl +drd/tests/tc04_free_lock +drd/tests/tc05_simple_race +drd/tests/tc06_two_races +drd/tests/tc07_hbl1 +drd/tests/tc08_hbl2 +drd/tests/tc09_bad_unlock +drd/tests/tc10_rec_lock +drd/tests/tc11_XCHG +drd/tests/tc12_rwl_trivial +drd/tests/tc13_laog1 +drd/tests/tc15_laog_lockdel +drd/tests/tc16_byterace +drd/tests/tc17_sembar +drd/tests/tc18_semabuse +drd/tests/tc19_shadowmem +drd/tests/tc21_pthonce +drd/tests/tc22_exit_w_lock +drd/tests/tc23_bogus_condwait +helgrind/tests/annotate_rwlock +helgrind/tests/annotate_smart_pointer +helgrind/tests/bar_bad +helgrind/tests/bar_trivial +helgrind/tests/bug322621 +helgrind/tests/cond_init_destroy +helgrind/tests/cond_timedwait_invalid +helgrind/tests/cond_timedwait_test +helgrind/tests/free_is_write +helgrind/tests/hg01_all_ok +helgrind/tests/hg03_inherit +helgrind/tests/hg04_race +helgrind/tests/hg05_race2 +helgrind/tests/hg06_readshared +helgrind/tests/locked_vs_unlocked1_fwd +helgrind/tests/locked_vs_unlocked1_rev +helgrind/tests/locked_vs_unlocked2 +helgrind/tests/locked_vs_unlocked3 +helgrind/tests/pth_barrier1 +helgrind/tests/pth_barrier2 +helgrind/tests/pth_barrier3 +helgrind/tests/pth_destroy_cond +helgrind/tests/rwlock_race +helgrind/tests/rwlock_test +helgrind/tests/shmem_abits +helgrind/tests/stackteardown +helgrind/tests/t2t_laog +helgrind/tests/tc01_simple_race +helgrind/tests/tc02_simple_tls +helgrind/tests/tc03_re_excl +helgrind/tests/tc04_free_lock +helgrind/tests/tc05_simple_race +helgrind/tests/tc06_two_races +helgrind/tests/tc06_two_races_xml +helgrind/tests/tc07_hbl1 +helgrind/tests/tc08_hbl2 +helgrind/tests/tc09_bad_unlock +helgrind/tests/tc10_rec_lock +helgrind/tests/tc11_XCHG +helgrind/tests/tc12_rwl_trivial +helgrind/tests/tc13_laog1 +helgrind/tests/tc14_laog_dinphils +helgrind/tests/tc15_laog_lockdel +helgrind/tests/tc16_byterace +helgrind/tests/tc17_sembar +helgrind/tests/tc18_semabuse +helgrind/tests/tc19_shadowmem +helgrind/tests/tc20_verifywrap +helgrind/tests/tc21_pthonce +helgrind/tests/tc22_exit_w_lock +helgrind/tests/tc23_bogus_condwait +helgrind/tests/tc24_nonzero_sem +helgrind/tests/tls_threads +memcheck/tests/accounting +memcheck/tests/addressable +memcheck/tests/arm64-linux/scalar +memcheck/tests/atomic_incs +memcheck/tests/badaddrvalue +memcheck/tests/badfree +memcheck/tests/badfree-2trace +memcheck/tests/badfree3 +memcheck/tests/badjump +memcheck/tests/badjump2 +memcheck/tests/badloop +memcheck/tests/badpoll +memcheck/tests/badrw +memcheck/tests/big_blocks_freed_list +memcheck/tests/brk2 +memcheck/tests/dw4 +memcheck/tests/err_disable4 +memcheck/tests/err_disable_arange1 +memcheck/tests/leak-autofreepool-5 +memcheck/tests/leak_cpp_interior +memcheck/tests/linux/lsframe1 +memcheck/tests/linux/lsframe2 +memcheck/tests/linux/with-space +memcheck/tests/origin5-bz2 +memcheck/tests/origin6-fp +memcheck/tests/overlap +memcheck/tests/partial_load_dflt +memcheck/tests/pdb-realloc2 +memcheck/tests/sh-mem +memcheck/tests/sh-mem-random +memcheck/tests/sigaltstack +memcheck/tests/sigkill +memcheck/tests/signal2 +memcheck/tests/supp_unknown +memcheck/tests/threadname +memcheck/tests/threadname_xml +memcheck/tests/unit_oset +memcheck/tests/varinfo1 +memcheck/tests/varinfo2 +memcheck/tests/varinfo3 +memcheck/tests/varinfo4 +memcheck/tests/varinfo5 +memcheck/tests/varinfo6 +memcheck/tests/varinforestrict +memcheck/tests/vcpu_bz2 +memcheck/tests/vcpu_fbench +memcheck/tests/vcpu_fnfns +memcheck/tests/wcs +memcheck/tests/wrap1 +memcheck/tests/wrap2 +memcheck/tests/wrap3 +memcheck/tests/wrap4 +memcheck/tests/wrap5 +memcheck/tests/wrap6 +memcheck/tests/wrap7 +memcheck/tests/wrap8 +memcheck/tests/wrapmalloc +memcheck/tests/wrapmallocstatic +memcheck/tests/writev1 +memcheck/tests/xml1 diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/valgrind/valgrind/run-ptest b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/valgrind/valgrind/run-ptest index 447d33c8..97b0a85d 100755 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/valgrind/valgrind/run-ptest +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/valgrind/valgrind/run-ptest @@ -4,13 +4,46 @@ # wraps the valgrind regression script vg_regtest. # # Dave Lerner +# Randy MacLeod ############################################################### -VALGRINDLIB=@libdir@/valgrind -LOG="${VALGRINDLIB}/ptest/valgrind_ptest_$(date +%Y%m%d-%H%M%S).log" +VALGRIND_LIB=@libdir@/valgrind +VALGRIND_BIN=@bindir@/valgrind + +LOG="${VALGRIND_LIB}/ptest/valgrind_ptest_$(date +%Y%m%d-%H%M%S).log" + +TOOLS="memcheck cachegrind callgrind helgrind drd massif dhat lackey none" +EXP_TOOLS="exp-bbv exp-dhat exp-sgcheck" + +GDB_BIN=@bindir@/gdb +cd ${VALGRIND_LIB}/ptest && ./gdbserver_tests/make_local_links ${GDB_BIN} + +arch=`arch` +if [ "$arch" = "aarch64" ]; then + echo "Aarch64: Hide valgrind tests that result in defunct process and then out of memory" + for i in `cat remove-for-aarch64`; do + mv $i.vgtest $i.IGNORE; + done +fi + +cd ${VALGRIND_LIB}/ptest && ./tests/vg_regtest \ + --valgrind=${VALGRIND_BIN} \ + --valgrind-lib=${VALGRIND_LIB} \ + --yocto-ptest \ + gdbserver_tests ${TOOLS} ${EXP_TOOLS} \ + 2>&1|tee ${LOG} + +cd ${VALGRIND_LIB}/ptest && \ + ./tests/post_regtest_checks $(pwd) \ + gdbserver_tests ${TOOLS} ${EXP_TOOLS} \ + 2>&1|tee -a ${LOG} + +if [ "$arch" = "aarch64" ]; then + echo "Aarch64: Restore valgrind tests that result in defunct process and then out of memory" + for i in `cat remove-for-aarch64`; do + mv $i.IGNORE $i.vgtest; + done +fi -cd ${VALGRINDLIB}/ptest && ./tests/vg_regtest --all \ - --valgrind=/usr/bin/valgrind --valgrind-lib=$VALGRINDLIB \ - --yocto-ptest 2>&1|tee ${LOG} passed=`grep PASS: ${LOG}|wc -l` failed=`grep FAIL: ${LOG}|wc -l` diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/valgrind/valgrind_3.15.0.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/valgrind/valgrind_3.15.0.bb index 85f0ff75..63f97294 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/valgrind/valgrind_3.15.0.bb +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-devtools/valgrind/valgrind_3.15.0.bb @@ -7,8 +7,7 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \ file://include/valgrind.h;beginline=1;endline=56;md5=ad3b317f3286b6b704575d9efe6ca5df \ file://COPYING.DOCS;md5=24ea4c7092233849b4394699333b5c56" -X11DEPENDS = "virtual/libx11" -DEPENDS = "${@bb.utils.contains('DISTRO_FEATURES', 'x11', '${X11DEPENDS}', '', d)} \ +DEPENDS = " \ ${@bb.utils.contains('DISTRO_FEATURES', 'ptest', 'boost', '', d)} \ " @@ -16,6 +15,7 @@ SRC_URI = "https://sourceware.org/pub/valgrind/valgrind-${PV}.tar.bz2 \ file://fixed-perl-path.patch \ file://Added-support-for-PPC-instructions-mfatbu-mfatbl.patch \ file://run-ptest \ + file://remove-for-aarch64 \ file://0004-Fix-out-of-tree-builds.patch \ file://0005-Modify-vg_test-wrapper-to-support-PTEST-formats.patch \ file://0001-Remove-tests-that-fail-to-build-on-some-PPC32-config.patch \ @@ -39,6 +39,7 @@ SRC_URI = "https://sourceware.org/pub/valgrind/valgrind-${PV}.tar.bz2 \ file://0001-Return-a-valid-exit_code-from-vg_regtest.patch \ file://0001-valgrind-filter_xml_frames-do-not-filter-usr.patch \ file://0002-valgrind-adjust-std_list-expected-output.patch \ + file://0001-adjust-path-filter-for-2-memcheck-tests.patch \ " SRC_URI[md5sum] = "46e5fbdcbc3502a5976a317a0860a975" SRC_URI[sha256sum] = "417c7a9da8f60dd05698b3a7bc6002e4ef996f14c13f0ff96679a16873e78ab1" @@ -110,7 +111,11 @@ RDEPENDS_${PN} += "perl" # redirect functions like strlen. RRECOMMENDS_${PN} += "${TCLIBC}-dbg" -RDEPENDS_${PN}-ptest += " file perl perl-module-file-glob sed ${PN}-dbg" +RDEPENDS_${PN}-ptest += " bash coreutils file \ + gdb libgomp \ + perl \ + perl-module-getopt-long perl-module-file-basename perl-module-file-glob \ + procps sed ${PN}-dbg" RDEPENDS_${PN}-ptest_append_libc-glibc = " glibc-utils" # One of the tests contains a bogus interpreter path on purpose. @@ -135,21 +140,23 @@ do_install_ptest() { for parent_dir in ${S} ${B} ; do cd $parent_dir - # exclude shell or the package won't install - rm -rf none/tests/shell* 2>/dev/null - subdirs=" \ + .in_place \ cachegrind/tests \ callgrind/tests \ + dhat/tests \ drd/tests \ gdbserver_tests \ helgrind/tests \ + lackey/tests \ massif/tests \ memcheck/tests \ none/tests \ tests \ + exp-bbv/tests \ + exp-dhat/tests \ + exp-sgcheck/tests \ " - # Get the vg test scripts, filters, and expected files for dir in $subdirs ; do find $dir | cpio -pvdu ${D}${PTEST_PATH} @@ -157,17 +164,33 @@ do_install_ptest() { cd $saved_dir done - # Hide then restore a.c that is used by ann[12].vgtest in call/cachegrind - mv ${D}${PTEST_PATH}/cachegrind/tests/a.c ${D}${PTEST_PATH}/cachegrind/tests/a_c - # clean out build artifacts before building the rpm + # The scripts reference config.h so add it to the top ptest dir. + cp ${B}/config.h ${D}${PTEST_PATH} + install -D ${WORKDIR}/remove-for-aarch64 ${D}${PTEST_PATH} + + # Add an executable need by none/tests/bigcode + mkdir ${D}${PTEST_PATH}/perf + cp ${B}/perf/bigcode ${D}${PTEST_PATH}/perf + + # Add an executable needed by memcheck/tests/vcpu_bz2 + cp ${B}/perf/bz2 ${D}${PTEST_PATH}/perf + + # Make the ptest dir look like the top level valgrind src dir + # This is checked by the gdbserver_tests/make_local_links script + mkdir ${D}${PTEST_PATH}/coregrind + cp ${B}/coregrind/vgdb ${D}${PTEST_PATH}/coregrind + + # Add an executable needed by massif tests + cp ${B}/massif/ms_print ${D}${PTEST_PATH}/massif/ms_print + find ${D}${PTEST_PATH} \ - \( -name "Makefile*" \ + \( \ + -name "Makefile*" \ -o -name "*.o" \ - -o -name "*.c" \ - -o -name "*.S" \ - -o -name "*.h" \) \ + \) \ -exec rm {} \; - mv ${D}${PTEST_PATH}/cachegrind/tests/a_c ${D}${PTEST_PATH}/cachegrind/tests/a.c + + # These files need to be newer so touch them. touch ${D}${PTEST_PATH}/cachegrind/tests/a.c -r ${D}${PTEST_PATH}/cachegrind/tests/cgout-test # find *_annotate in ${bindir} for yocto build @@ -177,9 +200,7 @@ do_install_ptest() { sed -i s:\.\./\.\./callgrind/callgrind_annotate:${bindir}/callgrind_annotate: ${D}${PTEST_PATH}/callgrind/tests/ann1.vgtest sed -i s:\.\./\.\./callgrind/callgrind_annotate:${bindir}/callgrind_annotate: ${D}${PTEST_PATH}/callgrind/tests/ann2.vgtest - # needed by massif tests - cp ${B}/massif/ms_print ${D}${PTEST_PATH}/massif/ms_print - # handle multilib sed -i s:@libdir@:${libdir}:g ${D}${PTEST_PATH}/run-ptest + sed -i s:@bindir@:${bindir}:g ${D}${PTEST_PATH}/run-ptest } diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/acpica/acpica_20190509.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-extended/acpica/acpica_20190509.bb deleted file mode 100644 index cf6db336..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/acpica/acpica_20190509.bb +++ /dev/null @@ -1,49 +0,0 @@ -SUMMARY = "ACPICA tools for the development and debug of ACPI tables" -DESCRIPTION = "The ACPI Component Architecture (ACPICA) project provides an \ -OS-independent reference implementation of the Advanced Configuration and \ -Power Interface Specification (ACPI). ACPICA code contains those portions of \ -ACPI meant to be directly integrated into the host OS as a kernel-resident \ -subsystem, and a small set of tools to assist in developing and debugging \ -ACPI tables." - -HOMEPAGE = "http://www.acpica.org/" -SECTION = "console/tools" - -LICENSE = "BSD | GPLv2" -LIC_FILES_CHKSUM = "file://generate/unix/readme.txt;md5=204407e197c1a01154a48f6c6280c3aa" - -COMPATIBLE_HOST = "(i.86|x86_64|arm|aarch64).*-linux" - -DEPENDS = "bison flex bison-native" - -SRC_URI = "https://acpica.org/sites/acpica/files/acpica-unix2-${PV}.tar.gz" -SRC_URI[md5sum] = "dd1f8240f924b12b0a0de0c31ab26ab1" -SRC_URI[sha256sum] = "860b5f94a0590b278592acf16a4556b05ff0309c08e8c48aa29827cfa02c8e9d" -UPSTREAM_CHECK_URI = "https://acpica.org/downloads" - -S = "${WORKDIR}/acpica-unix2-${PV}" - -inherit update-alternatives - -ALTERNATIVE_PRIORITY = "100" -ALTERNATIVE_${PN} = "acpixtract acpidump" - -EXTRA_OEMAKE = "CC='${CC}' \ - OPT_CFLAGS=-Wall \ - DESTDIR=${D} \ - PREFIX=${prefix} \ - INSTALLDIR=${bindir} \ - INSTALLFLAGS= \ - " - -do_install() { - oe_runmake install -} - -# iasl*.bb is a subset of this recipe, so RREPLACE it -PROVIDES = "iasl" -RPROVIDES_${PN} += "iasl" -RREPLACES_${PN} += "iasl" -RCONFLICTS_${PN} += "iasl" - -BBCLASSEXTEND = "native" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/acpica/acpica_20191018.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-extended/acpica/acpica_20191018.bb new file mode 100644 index 00000000..46922757 --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-extended/acpica/acpica_20191018.bb @@ -0,0 +1,49 @@ +SUMMARY = "ACPICA tools for the development and debug of ACPI tables" +DESCRIPTION = "The ACPI Component Architecture (ACPICA) project provides an \ +OS-independent reference implementation of the Advanced Configuration and \ +Power Interface Specification (ACPI). ACPICA code contains those portions of \ +ACPI meant to be directly integrated into the host OS as a kernel-resident \ +subsystem, and a small set of tools to assist in developing and debugging \ +ACPI tables." + +HOMEPAGE = "http://www.acpica.org/" +SECTION = "console/tools" + +LICENSE = "Intel | BSD | GPLv2" +LIC_FILES_CHKSUM = "file://source/compiler/aslcompile.c;beginline=7;endline=150;md5=b5690d9ef8d54b2b1e1cc98aad64cd87" + +COMPATIBLE_HOST = "(i.86|x86_64|arm|aarch64).*-linux" + +DEPENDS = "bison flex bison-native" + +SRC_URI = "https://acpica.org/sites/acpica/files/acpica-unix-${PV}.tar.gz" +SRC_URI[md5sum] = "539a0252bcb42c383ceeaeb12ae9a60d" +SRC_URI[sha256sum] = "029db4014600e4b771b11a84276d2d76eb40fb26eabc85864852ef1f962be95f" +UPSTREAM_CHECK_URI = "https://acpica.org/downloads" + +S = "${WORKDIR}/acpica-unix-${PV}" + +inherit update-alternatives + +ALTERNATIVE_PRIORITY = "100" +ALTERNATIVE_${PN} = "acpixtract acpidump" + +EXTRA_OEMAKE = "CC='${CC}' \ + OPT_CFLAGS=-Wall \ + DESTDIR=${D} \ + PREFIX=${prefix} \ + INSTALLDIR=${bindir} \ + INSTALLFLAGS= \ + " + +do_install() { + oe_runmake install +} + +# iasl*.bb is a subset of this recipe, so RREPLACE it +PROVIDES = "iasl" +RPROVIDES_${PN} += "iasl" +RREPLACES_${PN} += "iasl" +RCONFLICTS_${PN} += "iasl" + +BBCLASSEXTEND = "native" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/at/at/pam.conf.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-extended/at/at/pam.conf.patch index c9f337ed..38e7fc1b 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/at/at/pam.conf.patch +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-extended/at/at/pam.conf.patch @@ -24,7 +24,7 @@ index 3674c0a..2f8d586 100644 -@include common-auth -@include common-account +auth include common-auth -+acount include common-account ++account include common-account session required pam_loginuid.so -@include common-session-noninteractive +session include common-session-noninteractive diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/bc/bc/0001-dc-fix-exit-code-of-q-command.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-extended/bc/bc/0001-dc-fix-exit-code-of-q-command.patch new file mode 100644 index 00000000..1ef797dd --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-extended/bc/bc/0001-dc-fix-exit-code-of-q-command.patch @@ -0,0 +1,44 @@ +From e174b6e7d195d5a7465575641b7f68581f162574 Mon Sep 17 00:00:00 2001 +From: Li Zhou +Date: Thu, 27 Jun 2019 13:10:47 +0800 +Subject: [PATCH] dc: fix exit code of q command + +The exit code for "echo q | dc" is 1 for dc-1.4.1; +while the exit code for "echo q | dc" is 0 for dc-1.4. + +Here is the answer from ken@gnu.org: +dc-1.4 was right. There was a rewrite of a chunk of code for 1.4.1 to +fix a corner case in the Q command, and somehow the placement of the +clean-up label for the 'q' command got misplaced on the error-handling +branch instead of the clean-exit branch. The patch below fixes this +(it is committed for whenever the next bc/dc release gets made). + +Thanks for the report, + --Ken Pizzini + +Upstream-Status: Backport [Got the solution from maintainer] + +Signed-off-by: Li Zhou +--- + dc/eval.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/dc/eval.c b/dc/eval.c +index 05a3d9e..bcab8db 100644 +--- a/dc/eval.c ++++ b/dc/eval.c +@@ -814,10 +814,10 @@ error_fail: + fprintf(stderr, "%s: ", progname); + perror("error reading input"); + return DC_FAIL; +-reset_and_exit_quit: + reset_and_exit_fail: + signal(SIGINT, sigint_default); + return DC_FAIL; ++reset_and_exit_quit: + reset_and_exit_success: + signal(SIGINT, sigint_default); + return DC_SUCCESS; +-- +1.9.1 + diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/bc/bc_1.07.1.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-extended/bc/bc_1.07.1.bb index 809b864c..4a513024 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/bc/bc_1.07.1.bb +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-extended/bc/bc_1.07.1.bb @@ -13,7 +13,8 @@ DEPENDS = "flex-native" SRC_URI = "${GNU_MIRROR}/${BPN}/${BP}.tar.gz \ file://no-gen-libmath.patch \ - file://libmath.h" + file://libmath.h \ + file://0001-dc-fix-exit-code-of-q-command.patch" SRC_URI[md5sum] = "cda93857418655ea43590736fc3ca9fc" SRC_URI[sha256sum] = "62adfca89b0a1c0164c2cdca59ca210c1d44c3ffc46daf9931cf4942664cb02a" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/bzip2/bzip2-1.0.6/CVE-2016-3189.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-extended/bzip2/bzip2-1.0.6/CVE-2016-3189.patch deleted file mode 100644 index 1d0c3a6d..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/bzip2/bzip2-1.0.6/CVE-2016-3189.patch +++ /dev/null @@ -1,18 +0,0 @@ -Upstream-Status: Backport -https://bugzilla.suse.com/attachment.cgi?id=681334 - -CVE: CVE-2016-3189 -Signed-off-by: Armin Kuster - -Index: bzip2-1.0.6/bzip2recover.c -=================================================================== ---- bzip2-1.0.6.orig/bzip2recover.c -+++ bzip2-1.0.6/bzip2recover.c -@@ -457,6 +457,7 @@ Int32 main ( Int32 argc, Char** argv ) - bsPutUChar ( bsWr, 0x50 ); bsPutUChar ( bsWr, 0x90 ); - bsPutUInt32 ( bsWr, blockCRC ); - bsClose ( bsWr ); -+ outFile = NULL; - } - if (wrBlock >= rbCtr) break; - wrBlock++; diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/bzip2/bzip2-1.0.6/fix-bunzip2-qt-returns-0-for-corrupt-archives.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-extended/bzip2/bzip2-1.0.6/fix-bunzip2-qt-returns-0-for-corrupt-archives.patch deleted file mode 100644 index ece90d94..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/bzip2/bzip2-1.0.6/fix-bunzip2-qt-returns-0-for-corrupt-archives.patch +++ /dev/null @@ -1,55 +0,0 @@ -From 8068659388127e8e63f2d2297ba2348c72b20705 Mon Sep 17 00:00:00 2001 -From: Wenzong Fan -Date: Mon, 12 Oct 2015 03:19:51 -0400 -Subject: [PATCH] bzip2: fix bunzip2 -qt returns 0 for corrupt archives - -"bzip2 -t FILE" returns 2 if FILE exists, but is not a valid bzip2 file. -"bzip2 -qt FILE" returns 0 when this happens, although it does print out -an error message as is does so. - -This has been fix by Debian, just port changes from Debian patch file -"20-legacy.patch". - -Debian defect: -https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=279025 - -Fix item from changelog: -http://archive.debian.net/changelogs/pool/main/b/bzip2/bzip2_1.0.2-7/changelog - - * Fixed "bunzip2 -qt returns 0 for corrupt archives" (Closes: #279025). - -Upstream-Status: Pending - -Signed-off-by: Wenzong Fan ---- - bzip2.c | 14 ++++++++------ - 1 file changed, 8 insertions(+), 6 deletions(-) - -diff --git a/bzip2.c b/bzip2.c -index 6de9d1d..f2ce668 100644 ---- a/bzip2.c -+++ b/bzip2.c -@@ -2003,12 +2003,14 @@ IntNative main ( IntNative argc, Char *argv[] ) - testf ( aa->name ); - } - } -- if (testFailsExist && noisy) { -- fprintf ( stderr, -- "\n" -- "You can use the `bzip2recover' program to attempt to recover\n" -- "data from undamaged sections of corrupted files.\n\n" -- ); -+ if (testFailsExist) { -+ if (noisy) { -+ fprintf ( stderr, -+ "\n" -+ "You can use the `bzip2recover' program to attempt to recover\n" -+ "data from undamaged sections of corrupted files.\n\n" -+ ); -+ } - setExit(2); - exit(exitValue); - } --- -1.9.1 - diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/bzip2/bzip2-1.0.6/Makefile.am b/Contrib-Inspur/openbmc/poky/meta/recipes-extended/bzip2/bzip2/Makefile.am similarity index 100% rename from Contrib-Inspur/openbmc/poky/meta/recipes-extended/bzip2/bzip2-1.0.6/Makefile.am rename to Contrib-Inspur/openbmc/poky/meta/recipes-extended/bzip2/bzip2/Makefile.am diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/bzip2/bzip2-1.0.6/configure.ac b/Contrib-Inspur/openbmc/poky/meta/recipes-extended/bzip2/bzip2/configure.ac similarity index 78% rename from Contrib-Inspur/openbmc/poky/meta/recipes-extended/bzip2/bzip2-1.0.6/configure.ac rename to Contrib-Inspur/openbmc/poky/meta/recipes-extended/bzip2/bzip2/configure.ac index e2bf1bf1..b8abade2 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/bzip2/bzip2-1.0.6/configure.ac +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-extended/bzip2/bzip2/configure.ac @@ -1,6 +1,6 @@ AC_PREREQ([2.57]) -AC_INIT(bzip2, 1.0.6) +AC_INIT(bzip2, %BZIP2_VERSION%) AM_INIT_AUTOMAKE(foreign) AM_MAINTAINER_MODE diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/bzip2/bzip2-1.0.6/run-ptest b/Contrib-Inspur/openbmc/poky/meta/recipes-extended/bzip2/bzip2/run-ptest similarity index 100% rename from Contrib-Inspur/openbmc/poky/meta/recipes-extended/bzip2/bzip2-1.0.6/run-ptest rename to Contrib-Inspur/openbmc/poky/meta/recipes-extended/bzip2/bzip2/run-ptest diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/bzip2/bzip2_1.0.6.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-extended/bzip2/bzip2_1.0.6.bb deleted file mode 100644 index 15a8e515..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/bzip2/bzip2_1.0.6.bb +++ /dev/null @@ -1,47 +0,0 @@ -SUMMARY = "Very high-quality data compression program" -DESCRIPTION = "bzip2 compresses files using the Burrows-Wheeler block-sorting text compression algorithm, and \ -Huffman coding. Compression is generally considerably better than that achieved by more conventional \ -LZ77/LZ78-based compressors, and approaches the performance of the PPM family of statistical compressors." -HOMEPAGE = "https://sourceware.org/bzip2/" -SECTION = "console/utils" -LICENSE = "bzip2" -LIC_FILES_CHKSUM = "file://LICENSE;beginline=4;endline=37;md5=39406315f540c69bd05b1531daedd2ae" -PR = "r5" - -SRC_URI = "http://downloads.yoctoproject.org/mirror/sources/${BP}.tar.gz \ - file://fix-bunzip2-qt-returns-0-for-corrupt-archives.patch \ - file://configure.ac;subdir=${BP} \ - file://Makefile.am;subdir=${BP} \ - file://run-ptest \ - file://CVE-2016-3189.patch \ - " - -SRC_URI[md5sum] = "00b516f4704d4a7cb50a1d97e6e8e15b" -SRC_URI[sha256sum] = "a2848f34fcd5d6cf47def00461fcb528a0484d8edef8208d6d2e2909dc61d9cd" - -UPSTREAM_CHECK_URI = "https://www.sourceware.org/bzip2/" -UPSTREAM_VERSION_UNKNOWN = "1" - -PACKAGES =+ "libbz2" - -CFLAGS_append = " -fPIC -fpic -Winline -fno-strength-reduce -D_FILE_OFFSET_BITS=64" - -inherit autotools update-alternatives ptest relative_symlinks - -ALTERNATIVE_PRIORITY = "100" -ALTERNATIVE_${PN} = "bunzip2 bzcat bzip2" - -#install binaries to bzip2-native under sysroot for replacement-native -EXTRA_OECONF_append_class-native = " --bindir=${STAGING_BINDIR_NATIVE}/${PN}" - -do_install_ptest () { - sed -i -e "s|^Makefile:|_Makefile:|" ${D}${PTEST_PATH}/Makefile -} - -FILES_libbz2 = "${libdir}/lib*${SOLIBS}" - -RDEPENDS_${PN}-ptest += "make" - -PROVIDES_append_class-native = " bzip2-replacement-native" -BBCLASSEXTEND = "native nativesdk" - diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/bzip2/bzip2_1.0.8.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-extended/bzip2/bzip2_1.0.8.bb new file mode 100644 index 00000000..8e9b779e --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-extended/bzip2/bzip2_1.0.8.bb @@ -0,0 +1,45 @@ +SUMMARY = "Very high-quality data compression program" +DESCRIPTION = "bzip2 compresses files using the Burrows-Wheeler block-sorting text compression algorithm, and \ +Huffman coding. Compression is generally considerably better than that achieved by more conventional \ +LZ77/LZ78-based compressors, and approaches the performance of the PPM family of statistical compressors." +HOMEPAGE = "https://sourceware.org/bzip2/" +SECTION = "console/utils" +LICENSE = "bzip2" +LIC_FILES_CHKSUM = "file://LICENSE;beginline=4;endline=37;md5=600af43c50f1fcb82e32f19b32df4664" + +SRC_URI = "https://sourceware.org/pub/${BPN}/${BPN}-${PV}.tar.gz \ + file://configure.ac;subdir=${BP} \ + file://Makefile.am;subdir=${BP} \ + file://run-ptest \ + " +SRC_URI[md5sum] = "67e051268d0c475ea773822f7500d0e5" +SRC_URI[sha256sum] = "ab5a03176ee106d3f0fa90e381da478ddae405918153cca248e682cd0c4a2269" + +UPSTREAM_CHECK_URI = "https://www.sourceware.org/pub/bzip2/" + +PACKAGES =+ "libbz2" + +CFLAGS_append = " -fPIC -fpic -Winline -fno-strength-reduce -D_FILE_OFFSET_BITS=64" + +inherit autotools update-alternatives ptest relative_symlinks + +ALTERNATIVE_PRIORITY = "100" +ALTERNATIVE_${PN} = "bunzip2 bzcat bzip2" + +#install binaries to bzip2-native under sysroot for replacement-native +EXTRA_OECONF_append_class-native = " --bindir=${STAGING_BINDIR_NATIVE}/${PN}" + +do_configure_prepend () { + sed -i -e "s|%BZIP2_VERSION%|${PV}|" ${S}/configure.ac +} + +do_install_ptest () { + sed -i -e "s|^Makefile:|_Makefile:|" ${D}${PTEST_PATH}/Makefile +} + +FILES_libbz2 = "${libdir}/lib*${SOLIBS}" + +RDEPENDS_${PN}-ptest += "make" + +PROVIDES_append_class-native = " bzip2-replacement-native" +BBCLASSEXTEND = "native nativesdk" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/cups/cups.inc b/Contrib-Inspur/openbmc/poky/meta/recipes-extended/cups/cups.inc index 5010f086..2149cbe4 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/cups/cups.inc +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-extended/cups/cups.inc @@ -1,8 +1,12 @@ SUMMARY = "An Internet printing system for Unix" +DESCRIPTION = "The Common UNIX Printing System is a printing system and \ +general replacement for lpd and the like. It supports the Internet Printing \ +Protocol (IPP), and has its own filtering driver model for handling various \ +document types." HOMEPAGE = "https://www.cups.org/" SECTION = "console/utils" LICENSE = "GPLv2 & LGPLv2" -DEPENDS = "gnutls libpng jpeg dbus dbus-glib zlib libusb1" +DEPENDS = "gnutls libpng jpeg dbus zlib libusb1" SRC_URI = "https://github.com/apple/cups/releases/download/v${PV}/${BP}-source.tar.gz \ file://use_echo_only_in_init.patch \ @@ -67,7 +71,7 @@ do_install () { # Remove /var/run from package as cupsd will populate it on startup rm -fr ${D}/${localstatedir}/run - rmdir ${D}/${libdir}/${BPN}/driver + rmdir ${D}/${libexecdir}/${BPN}/driver # Fix the pam configuration file permissions if ${@bb.utils.contains('DISTRO_FEATURES', 'pam', 'true', 'false', d)}; then diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/cups/cups/cups_serverbin.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-extended/cups/cups/cups_serverbin.patch index f7b44a7b..85c6af10 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/cups/cups/cups_serverbin.patch +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-extended/cups/cups/cups_serverbin.patch @@ -4,6 +4,12 @@ e.g. ppc64 where base libdir is lib64 this does not go well Signed-off-by: Khem Raj Upstream-Status: Inappropriate [OE config specific] +Update on 20190904: +Redefine CUPS_SERVERBIN to "$libexecdir/cups" which solves file confliction +when multilib is enabled. + +Signed-off-by: Kai Kang + Index: cups-1.4.6/config-scripts/cups-directories.m4 =================================================================== --- cups-1.4.6.orig/config-scripts/cups-directories.m4 2009-04-12 16:04:51.000000000 -0700 @@ -13,7 +19,7 @@ Index: cups-1.4.6/config-scripts/cups-directories.m4 # All others INSTALL_SYSV="install-sysv" - CUPS_SERVERBIN="$exec_prefix/lib/cups" -+ CUPS_SERVERBIN="$libdir/cups" ++ CUPS_SERVERBIN="$libexecdir/cups" ;; esac @@ -26,7 +32,7 @@ Index: cups-1.4.6/configure # All others INSTALL_SYSV="install-sysv" - CUPS_SERVERBIN="$exec_prefix/lib/cups" -+ CUPS_SERVERBIN="$libdir/cups" ++ CUPS_SERVERBIN="$libexecdir/cups" ;; esac diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/cups/cups_2.2.11.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-extended/cups/cups_2.2.11.bb deleted file mode 100644 index aeb2e14e..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/cups/cups_2.2.11.bb +++ /dev/null @@ -1,6 +0,0 @@ -require cups.inc - -LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=f212b4338db0da8cb892e94bf2949460" - -SRC_URI[md5sum] = "7afbbcd2497e7d742583c492f6de40cd" -SRC_URI[sha256sum] = "f58010813fd6903f690cdb0c0b91e4d1bc9e5b9570c28734229ba3ed2908b76c" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/cups/cups_2.2.12.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-extended/cups/cups_2.2.12.bb new file mode 100644 index 00000000..8e5534a9 --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-extended/cups/cups_2.2.12.bb @@ -0,0 +1,6 @@ +require cups.inc + +LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=f212b4338db0da8cb892e94bf2949460" + +SRC_URI[md5sum] = "e763689f7735d3fe95a2943397189e40" +SRC_URI[sha256sum] = "0f61ab449e4748a24c6ab355b481ff7691247a140d327b2b7526fce34b7f9aa8" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/diffutils/diffutils/0001-Skip-strip-trailing-cr-test-case.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-extended/diffutils/diffutils/0001-Skip-strip-trailing-cr-test-case.patch new file mode 100644 index 00000000..aac1c434 --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-extended/diffutils/diffutils/0001-Skip-strip-trailing-cr-test-case.patch @@ -0,0 +1,35 @@ +From bd7fb8be2ae2d75347cf7733302d5093046ffa85 Mon Sep 17 00:00:00 2001 +From: Peiran Hong +Date: Thu, 5 Sep 2019 15:42:22 -0400 +Subject: [PATCH] Skip strip-trailing-cr test case + +Skip the test "strip-trailing-cr" since it requires valgrind to +work, but valgrind is considered too heavy-weight for diffutils +package. + +Upstream-Status: Inappropriate [embedded specific] + +Signed-off-by: Peiran Hong +--- + tests/Makefile.am | 4 +++- + 1 file changed, 3 insertions(+), 1 deletion(-) + +diff --git a/tests/Makefile.am b/tests/Makefile.am +index 83a7c9d..04d51b5 100644 +--- a/tests/Makefile.am ++++ b/tests/Makefile.am +@@ -21,8 +21,10 @@ TESTS = \ + stdin \ + strcoll-0-names \ + filename-quoting \ +- strip-trailing-cr \ + colors ++# Skipping this test since it requires valgrind ++# and thus is too heavy for diffutils package ++# strip-trailing-cr + + XFAIL_TESTS = large-subopt + +-- +2.21.0 + diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/diffutils/diffutils_3.7.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-extended/diffutils/diffutils_3.7.bb index 7daeee35..8111ae60 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/diffutils/diffutils_3.7.bb +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-extended/diffutils/diffutils_3.7.bb @@ -5,6 +5,7 @@ require diffutils.inc SRC_URI = "${GNU_MIRROR}/diffutils/diffutils-${PV}.tar.xz \ file://run-ptest \ + file://0001-Skip-strip-trailing-cr-test-case.patch \ " SRC_URI[md5sum] = "4824adc0e95dbbf11dfbdfaad6a1e461" @@ -17,7 +18,7 @@ acpaths = "-I ./m4" inherit ptest -RDEPENDS_${PN}-ptest += "make" +RDEPENDS_${PN}-ptest += "make perl" do_install_ptest() { t=${D}${PTEST_PATH} diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/ed/ed_1.15.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-extended/ed/ed_1.15.bb index c7931032..886c3ddc 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/ed/ed_1.15.bb +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-extended/ed/ed_1.15.bb @@ -9,6 +9,8 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=0c7051aef9219dc7237f206c5c4179a7 \ SECTION = "base" +CVE_PRODUCT = "gnu:ed" + # LSB states that ed should be in /bin/ bindir = "${base_bindir}" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/ethtool/ethtool/avoid_parallel_tests.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-extended/ethtool/ethtool/avoid_parallel_tests.patch index 7a0e38a3..153ea550 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/ethtool/ethtool/avoid_parallel_tests.patch +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-extended/ethtool/ethtool/avoid_parallel_tests.patch @@ -1,4 +1,4 @@ -From 2ca4c2492c4a06b28012e3e1033d10aa48f153b4 Mon Sep 17 00:00:00 2001 +From f8333f7759717b4d163cfe8e3ef8861c5a667324 Mon Sep 17 00:00:00 2001 From: Tudor Florea Date: Wed, 28 May 2014 18:59:54 +0200 Subject: [PATCH] ethtool: use serial-tests config needed by ptest. @@ -9,16 +9,17 @@ serial-tests is required to generate those targets. Signed-off-by: Tudor Florea Upstream-Status: Inappropriate (default automake behavior incompatible with ptest) + --- configure.ac | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/configure.ac b/configure.ac -index 2941a65..b0a1896 100644 +index 2127fdb..4910e6f 100644 --- a/configure.ac +++ b/configure.ac @@ -2,7 +2,7 @@ dnl Process this file with autoconf to produce a configure script. - AC_INIT(ethtool, 5.1, netdev@vger.kernel.org) + AC_INIT(ethtool, 5.3, netdev@vger.kernel.org) AC_PREREQ(2.52) AC_CONFIG_SRCDIR([ethtool.c]) -AM_INIT_AUTOMAKE([gnu]) @@ -26,6 +27,3 @@ index 2941a65..b0a1896 100644 AC_CONFIG_HEADERS([ethtool-config.h]) AM_MAINTAINER_MODE --- -2.17.1 - diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/ethtool/ethtool_5.1.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-extended/ethtool/ethtool_5.1.bb deleted file mode 100644 index d379d93b..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/ethtool/ethtool_5.1.bb +++ /dev/null @@ -1,31 +0,0 @@ -SUMMARY = "Display or change ethernet card settings" -DESCRIPTION = "A small utility for examining and tuning the settings of your ethernet-based network interfaces." -HOMEPAGE = "http://www.kernel.org/pub/software/network/ethtool/" -SECTION = "console/network" -LICENSE = "GPLv2+" -LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \ - file://ethtool.c;beginline=4;endline=17;md5=c19b30548c582577fc6b443626fc1216" - -SRC_URI = "${KERNELORG_MIRROR}/software/network/ethtool/ethtool-${PV}.tar.gz \ - file://run-ptest \ - file://avoid_parallel_tests.patch \ - " - -SRC_URI[md5sum] = "5d3aad86aec055348a37e867695a744a" -SRC_URI[sha256sum] = "4edb1fa4d7cf5667a5958d4213f61609f96d02cda90d2b6ec440561f8f8ffbf2" - -inherit autotools ptest bash-completion - -RDEPENDS_${PN}-ptest += "make" - -do_compile_ptest() { - oe_runmake buildtest-TESTS -} - -do_install_ptest () { - cp ${B}/Makefile ${D}${PTEST_PATH} - install ${B}/test-cmdline ${D}${PTEST_PATH} - install ${B}/test-features ${D}${PTEST_PATH} - install ${B}/ethtool ${D}${PTEST_PATH}/ethtool - sed -i 's/^Makefile/_Makefile/' ${D}${PTEST_PATH}/Makefile -} diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/ethtool/ethtool_5.3.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-extended/ethtool/ethtool_5.3.bb new file mode 100644 index 00000000..401331be --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-extended/ethtool/ethtool_5.3.bb @@ -0,0 +1,33 @@ +SUMMARY = "Display or change ethernet card settings" +DESCRIPTION = "A small utility for examining and tuning the settings of your ethernet-based network interfaces." +HOMEPAGE = "http://www.kernel.org/pub/software/network/ethtool/" +SECTION = "console/network" +LICENSE = "GPLv2+" +LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \ + file://ethtool.c;beginline=4;endline=17;md5=c19b30548c582577fc6b443626fc1216" + +SRC_URI = "${KERNELORG_MIRROR}/software/network/ethtool/ethtool-${PV}.tar.gz \ + file://run-ptest \ + file://avoid_parallel_tests.patch \ + " + +SRC_URI[md5sum] = "63d1c835b861912ea0dfd52cf66a2da4" +SRC_URI[sha256sum] = "cd2d8ea360431a2ea35ff61c276bcf2afee1ad901668a0b50ae9f1c5814756bd" + +UPSTREAM_CHECK_URI = "https://www.kernel.org/pub/software/network/ethtool/" + +inherit autotools ptest bash-completion + +RDEPENDS_${PN}-ptest += "make" + +do_compile_ptest() { + oe_runmake buildtest-TESTS +} + +do_install_ptest () { + cp ${B}/Makefile ${D}${PTEST_PATH} + install ${B}/test-cmdline ${D}${PTEST_PATH} + install ${B}/test-features ${D}${PTEST_PATH} + install ${B}/ethtool ${D}${PTEST_PATH}/ethtool + sed -i 's/^Makefile/_Makefile/' ${D}${PTEST_PATH}/Makefile +} diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/gawk/gawk_5.0.0.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-extended/gawk/gawk_5.0.0.bb deleted file mode 100644 index 57890135..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/gawk/gawk_5.0.0.bb +++ /dev/null @@ -1,53 +0,0 @@ -SUMMARY = "GNU awk text processing utility" -DESCRIPTION = "The GNU version of awk, a text processing utility. \ -Awk interprets a special-purpose programming language to do \ -quick and easy text pattern matching and reformatting jobs." -HOMEPAGE = "https://www.gnu.org/software/gawk/" -BUGTRACKER = "bug-gawk@gnu.org" -SECTION = "console/utils" - -# gawk <= 3.1.5: GPLv2 -# gawk >= 3.1.6: GPLv3 -LICENSE = "GPLv3" -LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504" - -DEPENDS += "readline" - -PACKAGECONFIG[mpfr] = "--with-mpfr,--without-mpfr, mpfr" - -SRC_URI = "${GNU_MIRROR}/gawk/gawk-${PV}.tar.gz \ - file://run-ptest \ -" - -SRC_URI[md5sum] = "45366249c13aae2bfb00e8e97c3f39b7" -SRC_URI[sha256sum] = "2d686c9a5b7ba292bc3fa56bc84a1959d721a9d57970a76413156d4b8f1fc67d" - -inherit autotools gettext texinfo update-alternatives - -FILES_${PN} += "${datadir}/awk" -FILES_${PN}-dev += "${libdir}/${BPN}/*.la" - -ALTERNATIVE_${PN} = "awk" -ALTERNATIVE_TARGET[awk] = "${bindir}/gawk" -ALTERNATIVE_PRIORITY = "100" - -do_install_append() { - # remove the link since we don't package it - rm ${D}${bindir}/awk -} - -inherit ptest - -do_install_ptest() { - mkdir ${D}${PTEST_PATH}/test - ln -s ${bindir}/gawk ${D}${PTEST_PATH}/gawk - for i in `grep -vE "@|^$|#|Gt-dummy" ${S}/test/Maketests |awk -F: '{print $1}'` Maketests inclib.awk; \ - do cp ${S}/test/$i* ${D}${PTEST_PATH}/test; \ - done - sed -i -e 's|/usr/local/bin|${bindir}|g' \ - -e 's|#!${base_bindir}/awk|#!${bindir}/awk|g' ${D}${PTEST_PATH}/test/*.awk -} - -RDEPENDS_${PN}-ptest += "make" - -BBCLASSEXTEND = "native nativesdk" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/gawk/gawk_5.0.1.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-extended/gawk/gawk_5.0.1.bb new file mode 100644 index 00000000..eaba6c78 --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-extended/gawk/gawk_5.0.1.bb @@ -0,0 +1,53 @@ +SUMMARY = "GNU awk text processing utility" +DESCRIPTION = "The GNU version of awk, a text processing utility. \ +Awk interprets a special-purpose programming language to do \ +quick and easy text pattern matching and reformatting jobs." +HOMEPAGE = "https://www.gnu.org/software/gawk/" +BUGTRACKER = "bug-gawk@gnu.org" +SECTION = "console/utils" + +# gawk <= 3.1.5: GPLv2 +# gawk >= 3.1.6: GPLv3 +LICENSE = "GPLv3" +LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504" + +PACKAGECONFIG ??= "readline" +PACKAGECONFIG[readline] = "--with-readline,--without-readline,readline" +PACKAGECONFIG[mpfr] = "--with-mpfr,--without-mpfr, mpfr" + +SRC_URI = "${GNU_MIRROR}/gawk/gawk-${PV}.tar.gz \ + file://run-ptest \ +" + +SRC_URI[md5sum] = "c5441c73cc451764055ee65e9a4292bb" +SRC_URI[sha256sum] = "625bf3718e25a84dc4486135d5cb5388174682362c70107fd13f21572f5603bb" + +inherit autotools gettext texinfo update-alternatives + +FILES_${PN} += "${datadir}/awk" +FILES_${PN}-dev += "${libdir}/${BPN}/*.la" + +ALTERNATIVE_${PN} = "awk" +ALTERNATIVE_TARGET[awk] = "${bindir}/gawk" +ALTERNATIVE_PRIORITY = "100" + +do_install_append() { + # remove the link since we don't package it + rm ${D}${bindir}/awk +} + +inherit ptest + +do_install_ptest() { + mkdir ${D}${PTEST_PATH}/test + ln -s ${bindir}/gawk ${D}${PTEST_PATH}/gawk + for i in `grep -vE "@|^$|#|Gt-dummy" ${S}/test/Maketests |awk -F: '{print $1}'` Maketests inclib.awk; \ + do cp ${S}/test/$i* ${D}${PTEST_PATH}/test; \ + done + sed -i -e 's|/usr/local/bin|${bindir}|g' \ + -e 's|#!${base_bindir}/awk|#!${bindir}/awk|g' ${D}${PTEST_PATH}/test/*.awk +} + +RDEPENDS_${PN}-ptest += "make" + +BBCLASSEXTEND = "native nativesdk" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/ghostscript/ghostscript/CVE-2019-14811-0001.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-extended/ghostscript/ghostscript/CVE-2019-14811-0001.patch new file mode 100644 index 00000000..3f28555e --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-extended/ghostscript/ghostscript/CVE-2019-14811-0001.patch @@ -0,0 +1,68 @@ +From 885444fcbe10dc42787ecb76686c8ee4dd33bf33 Mon Sep 17 00:00:00 2001 +From: Ken Sharp +Date: Tue, 20 Aug 2019 10:10:28 +0100 +Subject: [PATCH] make .forceput inaccessible + +Bug #701343, #701344, #701345 + +More defensive programming. We don't want people to access .forecput +even though it is no longer sufficient to bypass SAFER. The exploit +in #701343 didn't work anyway because of earlier work to stop the error +handler being used, but nevertheless, prevent access to .forceput from +.setuserparams2. + +CVE: CVE-2019-14811 +Upstream-Status: Backport [git://git.ghostscript.com/ghostpdl.git] + +Signed-off-by: Stefan Ghinea +--- + Resource/Init/gs_lev2.ps | 6 +++--- + Resource/Init/gs_pdfwr.ps | 4 ++-- + 2 files changed, 5 insertions(+), 5 deletions(-) + +diff --git a/Resource/Init/gs_lev2.ps b/Resource/Init/gs_lev2.ps +index 98d55fe..f1b771f 100644 +--- a/Resource/Init/gs_lev2.ps ++++ b/Resource/Init/gs_lev2.ps +@@ -158,7 +158,7 @@ end + { + pop pop + } ifelse +- } forall ++ } executeonly forall + % A context switch might have occurred during the above loop, + % causing the interpreter-level parameters to be reset. + % Set them again to the new values. From here on, we are safe, +@@ -229,9 +229,9 @@ end + { pop pop + } + ifelse +- } ++ } executeonly + forall pop +-} .bind odef ++} .bind executeonly odef + + % Initialize the passwords. + % NOTE: the names StartJobPassword and SystemParamsPassword are known to +diff --git a/Resource/Init/gs_pdfwr.ps b/Resource/Init/gs_pdfwr.ps +index 00c19fa..dfe504d 100644 +--- a/Resource/Init/gs_pdfwr.ps ++++ b/Resource/Init/gs_pdfwr.ps +@@ -652,11 +652,11 @@ currentdict /.pdfmarkparams .undef + systemdict /.pdf_hooked_DSC_Creator //true .forceput + } executeonly if + pop +- } if ++ } executeonly if + } { + pop + } ifelse +- } ++ } executeonly + { + pop + } ifelse +-- +2.20.1 + diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/ghostscript/ghostscript/CVE-2019-14817-0001.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-extended/ghostscript/ghostscript/CVE-2019-14817-0001.patch new file mode 100644 index 00000000..c76e21ca --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-extended/ghostscript/ghostscript/CVE-2019-14817-0001.patch @@ -0,0 +1,270 @@ +From 0bafbd9c1273fab0dc79fd20db0ffc4443683f96 Mon Sep 17 00:00:00 2001 +From: Ken Sharp +Date: Mon, 29 Apr 2019 11:14:06 +0100 +Subject: [PATCH 1/2] PDF interpreter - Decode ToUnicode entries of the form + /Identity-H/V + +Bug #701003 "Text searchability broken due to omission of /ToUnicode /Identity-H" + +The PDF references from 1.2 too 2.0 all state that the value associated +with a ToUnicode key in a FontDescriptor must be a stream object. However +this file (and one case seen previously, bug 687351) have FontDescriptor +dictionaries where the value associated with a /ToUnicode key is a +name object, in both cases /Identity-H. + +Although this is clearly not legal, Acrobat not only tolerates it, it +actually uses it for search/copy/paste (see bug 701003 for details). +Without the key Acrobat is unable to successfully search the output file. + +We can't simply preserve the name object as a ToUnicode value; when +handling ToUnicode we actually decode the CMap and build a +GlyphNames2Unicode map (an internal representation of the G2U data +produced by the Microsoft PostScript printer driver). When writing the +output file we use that information to get a Unicode value for each +character we write, and build a new ToUnicode CMap using that. + +This commit tackles the problem by pre-scanning for a name object and +then checking to see if its Identity-H or Identity-V (although we have +not seen an Identity-V, there seems no reason why it wouldn't be +equally valid). If we find either of these then we construct a +GlyphNames2Unicode table for all possible values (0 - 65535) and store +that with the font as normal. When we write the output file we only +write the required entries for the subset font, so we write a now +completely legal ToUnicode CMap, and Acrobat is equally happy with that +as the original name. + +If the ToUnicode value isn't a name object, or isn't one of the +identities then we proceed as before. This means we will print a +warning for non conforming ToUnicode entries and ignore them. + +CVE: CVE-2019-14817 +Upstream-Status: Backport [git://git.ghostscript.com/ghostpdl.git] + +Signed-off-by: Stefan Ghinea +--- + Resource/Init/pdf_font.ps | 200 ++++++++++++++++++++++++-------------- + 1 file changed, 129 insertions(+), 71 deletions(-) + +diff --git a/Resource/Init/pdf_font.ps b/Resource/Init/pdf_font.ps +index 9fb85f6..2df3303 100644 +--- a/Resource/Init/pdf_font.ps ++++ b/Resource/Init/pdf_font.ps +@@ -621,86 +621,144 @@ currentdict end readonly def + PDFDEBUG { + (.processToUnicode beg) = + } if +- 2 index /ToUnicode knownoget { +- dup type /dicttype eq { dup /File known not } { //true } ifelse { +- % We undefine wrong /Length and define /File in stream dictionaries. +- % Bug687351.pdf defines /ToUnicode /Identity-H, what is incorrect. +- ( **** Warning: Ignoring bad ToUnicode CMap.\n) pdfformatwarning +- pop ++ ++ 2 index /ToUnicode knownoget ++ { ++ dup type /nametype eq { ++ % This is contrary to the specification but it seems that Acrobat at least will accept ++ % a ToUnicode with a value of Identity-H *and* will use that for search, copy/paste. ++ % We can't pass through a name, so the best we can do is build a GlyphNames2Unicode ++ % map matching that which would have been generated by a full 16-bit Identity CMap ++ % ++ % See bug numbers 701003 and 687351 ++ % ++ dup /Identity-H eq 1 index /Identity-V eq or{ ++ pop ++ 1 index /FontInfo .knownget not { ++ currentglobal 2 index dup gcheck setglobal ++ /FontInfo 5 dict dup 5 1 roll .forceput ++ setglobal ++ } if ++ dup /GlyphNames2Unicode .knownget not { ++ //true % No existing G2U, make one ++ } { ++ dup wcheck { ++ //false % Existing, writeable G2U, don't make new one ++ } { ++ pop //true % Existing read only G2U, make new one ++ } ifelse ++ } ifelse ++ { ++ currentglobal exch dup gcheck setglobal ++ dup /GlyphNames2Unicode 100 dict dup 4 1 roll .forceput ++ 3 2 roll setglobal ++ } if % font-res font-dict encoding|null font-info g2u ++ ++ 0 1 65535{ ++ % g2u index ++ dup dup 256 mod exch 256 idiv % g2u index lo-byte hi-byte ++ 2 string dup 0 4 -1 roll % g2u index lo-byte () () 0 hi-byte ++ put % g2u index lo-byte (x) ++ dup 1 % g2u index lo-byte (x) (x) 1 ++ 4 -1 roll put % g2u index (x) (x) 1 lo-byte -> dict index (xx) ++ 2 index % g2u index (xx) dict ++ 3 1 roll % g2u g2u index (xx) ++ put % g2u ++ } for ++ pop % font-res font-dict encoding|null font-info ++ pop % font-res font-dict encoding|null ++ //false % We built a GlyphNames2Unicode table, don't need to process further ++ }{ ++ //true % name is not Identity-V or H, fail by falling through ++ }ifelse + } { +- /PDFScanRules .getuserparam dup //null eq { +- pop //PDFScanRules_null +- } { +- 1 dict dup /PDFScanRules 4 -1 roll put +- } ifelse +- //PDFScanRules_true setuserparams +- PDFfile fileposition +- 3 -1 roll +- count 1 sub +- countdictstack +- { //false resolvestream +- % Following Acrobat we ignore everything outside +- % begincodespacerange .. endcmap. +- dup 0 (begincodespacerange) /SubFileDecode filter flushfile +- /CIDInit /ProcSet findresource begin +- //ToUnicodeCMapReader begin +- 12 dict begin +- /CMapType 2 def +- mark exch % emulate 'begincodespacerange' +- 0 (endcmap) /SubFileDecode filter cvx /begincmap cvx exch 2 .execn +- endcmap +- userdict /.lastToUnicode currentdict put +- end end end +- } ++ //true ++ } ifelse % not a name, try as a dictionary (as specified) + +- PDFSTOPONERROR { +- { exec } 0 get +- //false +- 5 -2 roll +- 5 ++ % If the ToUnicode isn't a name, or the name isn't Identity-V or -H then follow the specification ++ % If its not a dictionary type throw an error, otherwise decode it and build a GlyphNames2Unicode ++ % ++ { ++ dup type /dicttype eq { dup /File known not } { //true } ifelse { ++ % We undefine wrong /Length and define /File in stream dictionaries. ++ % Bug687351.pdf defines /ToUnicode /Identity-H, what is incorrect. ++ ( **** Warning: Ignoring bad ToUnicode CMap.\n) pdfformatwarning ++ pop + } { +- { stopped } 0 get +- 4 2 roll +- 4 +- } ifelse +- array astore cvx exec ++ /PDFScanRules .getuserparam dup //null eq { ++ pop //PDFScanRules_null ++ } { ++ 1 dict dup /PDFScanRules 4 -1 roll put ++ } ifelse ++ //PDFScanRules_true setuserparams ++ PDFfile fileposition ++ 3 -1 roll ++ count 1 sub ++ countdictstack ++ { //false resolvestream ++ % Following Acrobat we ignore everything outside ++ % begincodespacerange .. endcmap. ++ dup 0 (begincodespacerange) /SubFileDecode filter flushfile ++ /CIDInit /ProcSet findresource begin ++ //ToUnicodeCMapReader begin ++ 12 dict begin ++ /CMapType 2 def ++ mark exch % emulate 'begincodespacerange' ++ 0 (endcmap) /SubFileDecode filter cvx /begincmap cvx exch 2 .execn ++ endcmap ++ userdict /.lastToUnicode currentdict put ++ end end end ++ } + +- countdictstack exch sub 0 .max { end } repeat +- count exch sub 2 sub 0 .max { exch pop } repeat +- 3 1 roll % Stach the stop flag. +- PDFfile exch setfileposition +- setuserparams +- { +- ( **** Warning: Failed to read ToUnicode CMap.\n) pdfformatwarning +- } { +- 1 index /FontInfo .knownget not { +- currentglobal 2 index dup gcheck setglobal +- /FontInfo 5 dict dup 5 1 roll .forceput +- setglobal +- } if +- dup /GlyphNames2Unicode .knownget not { +- //true % No existing G2U, make one ++ PDFSTOPONERROR { ++ { exec } 0 get ++ //false ++ 5 -2 roll ++ 5 ++ } { ++ { stopped } 0 get ++ 4 2 roll ++ 4 ++ } ifelse ++ array astore cvx exec ++ ++ countdictstack exch sub 0 .max { end } repeat ++ count exch sub 2 sub 0 .max { exch pop } repeat ++ 3 1 roll % Stach the stop flag. ++ PDFfile exch setfileposition ++ setuserparams ++ { ++ ( **** Warning: Failed to read ToUnicode CMap.\n) pdfformatwarning + } { +- dup wcheck { +- //false % Existing, writeable G2U, don't make new one ++ 1 index /FontInfo .knownget not { ++ currentglobal 2 index dup gcheck setglobal ++ /FontInfo 5 dict dup 5 1 roll .forceput ++ setglobal ++ } if ++ dup /GlyphNames2Unicode .knownget not { ++ //true % No existing G2U, make one + } { +- pop //true % Existing read only G2U, make new one ++ dup wcheck { ++ //false % Existing, writeable G2U, don't make new one ++ } { ++ pop //true % Existing read only G2U, make new one ++ } ifelse + } ifelse ++ { ++ currentglobal exch dup gcheck setglobal ++ dup /GlyphNames2Unicode 100 dict dup 4 1 roll .forceput ++ 3 2 roll setglobal ++ } if % font-res font-dict encoding|null font-info g2u ++ exch pop exch % font-res font-dict g2u encoding|null ++ userdict /.lastToUnicode get % font-res font-dict g2u Encoding|null CMap ++ .convert_ToUnicode-into-g2u % font-res font-dict ++ //null % font-res font-dict //null + } ifelse +- { +- currentglobal exch dup gcheck setglobal +- dup /GlyphNames2Unicode 100 dict dup 4 1 roll .forceput +- 3 2 roll setglobal +- } if % font-res font-dict encoding|null font-info g2u +- exch pop exch % font-res font-dict g2u encoding|null +- userdict /.lastToUnicode get % font-res font-dict g2u Encoding|null CMap +- .convert_ToUnicode-into-g2u % font-res font-dict +- //null % font-res font-dict //null + } ifelse +- } ifelse +- } if +- PDFDEBUG { +- (.processToUnicode end) = ++ } if ++ PDFDEBUG { ++ (.processToUnicode end) = ++ } if + } if + } if + } stopped +-- +2.20.1 + diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/ghostscript/ghostscript/CVE-2019-14817-0002.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-extended/ghostscript/ghostscript/CVE-2019-14817-0002.patch new file mode 100644 index 00000000..6348fff2 --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-extended/ghostscript/ghostscript/CVE-2019-14817-0002.patch @@ -0,0 +1,236 @@ +From cd1b1cacadac2479e291efe611979bdc1b3bdb19 Mon Sep 17 00:00:00 2001 +From: Ken Sharp +Date: Wed, 21 Aug 2019 10:10:51 +0100 +Subject: [PATCH 2/2] PDF interpreter - review .forceput security + +Bug #701450 "Safer Mode Bypass by .forceput Exposure in .pdfexectoken" + +By abusing the error handler it was possible to get the PDFDEBUG portion +of .pdfexectoken, which uses .forceput left readable. + +Add an executeonly appropriately to make sure that clause isn't readable +no mstter what. + +Review all the uses of .forceput searching for similar cases, add +executeonly as required to secure those. All cases in the PostScript +support files seem to be covered already. + +CVE: CVE-2019-14817 +Upstream-Status: Backport [git://git.ghostscript.com/ghostpdl.git] + +Signed-off-by: Stefan Ghinea +--- + Resource/Init/pdf_base.ps | 2 +- + Resource/Init/pdf_draw.ps | 14 +++++++------- + Resource/Init/pdf_font.ps | 29 ++++++++++++++++------------- + Resource/Init/pdf_main.ps | 6 +++--- + Resource/Init/pdf_ops.ps | 11 ++++++----- + 5 files changed, 33 insertions(+), 29 deletions(-) + +diff --git a/Resource/Init/pdf_base.ps b/Resource/Init/pdf_base.ps +index 1a218f4..cffde5c 100644 +--- a/Resource/Init/pdf_base.ps ++++ b/Resource/Init/pdf_base.ps +@@ -157,7 +157,7 @@ currentdict /num-chars-dict .undef + { + dup ==only () = flush + } ifelse % PDFSTEP +- } if % PDFDEBUG ++ } executeonly if % PDFDEBUG + 2 copy .knownget { + exch pop exch pop exch pop exec + } { +diff --git a/Resource/Init/pdf_draw.ps b/Resource/Init/pdf_draw.ps +index e18a7c2..0a3924c 100644 +--- a/Resource/Init/pdf_draw.ps ++++ b/Resource/Init/pdf_draw.ps +@@ -501,8 +501,8 @@ end + ( Output may be incorrect.\n) pdfformaterror + //pdfdict /.gs_warning_issued //true .forceput + PDFSTOPONERROR { /gs /undefined signalerror } if +- } if +- } ++ } executeonly if ++ } executeonly + ifelse + } bind executeonly def + +@@ -1142,7 +1142,7 @@ currentdict end readonly def + .setglobal + pdfformaterror + } executeonly ifelse +- } ++ } executeonly + { + currentglobal //pdfdict gcheck .setglobal + //pdfdict /.Qqwarning_issued //true .forceput +@@ -1150,8 +1150,8 @@ currentdict end readonly def + pdfformaterror + } executeonly ifelse + end +- } ifelse +- } loop ++ } executeonly ifelse ++ } executeonly loop + { + (\n **** Error: File has unbalanced q/Q operators \(too many q's\)\n Output may be incorrect.\n) + //pdfdict /.Qqwarning_issued .knownget +@@ -1165,14 +1165,14 @@ currentdict end readonly def + .setglobal + pdfformaterror + } executeonly ifelse +- } ++ } executeonly + { + currentglobal //pdfdict gcheck .setglobal + //pdfdict /.Qqwarning_issued //true .forceput + .setglobal + pdfformaterror + } executeonly ifelse +- } if ++ } executeonly if + pop + + % restore pdfemptycount +diff --git a/Resource/Init/pdf_font.ps b/Resource/Init/pdf_font.ps +index 2df3303..6a6a5fe 100644 +--- a/Resource/Init/pdf_font.ps ++++ b/Resource/Init/pdf_font.ps +@@ -638,7 +638,7 @@ currentdict end readonly def + currentglobal 2 index dup gcheck setglobal + /FontInfo 5 dict dup 5 1 roll .forceput + setglobal +- } if ++ } executeonly if + dup /GlyphNames2Unicode .knownget not { + //true % No existing G2U, make one + } { +@@ -668,10 +668,12 @@ currentdict end readonly def + pop % font-res font-dict encoding|null font-info + pop % font-res font-dict encoding|null + //false % We built a GlyphNames2Unicode table, don't need to process further +- }{ ++ } executeonly ++ { + //true % name is not Identity-V or H, fail by falling through + }ifelse +- } { ++ } executeonly ++ { + //true + } ifelse % not a name, try as a dictionary (as specified) + +@@ -759,9 +761,9 @@ currentdict end readonly def + PDFDEBUG { + (.processToUnicode end) = + } if +- } if +- } if +- } stopped ++ } executeonly if ++ } executeonly if ++ } executeonly stopped + { + .dstackdepth 1 countdictstack 1 sub + {pop end} for +@@ -1291,19 +1293,20 @@ currentdict /eexec_pdf_param_dict .undef + //pdfdict /.Qqwarning_issued //true .forceput + } executeonly if + Q +- } repeat ++ } executeonly repeat + Q +- } PDFfile fileposition 2 .execn % Keep pdfcount valid. ++ } executeonly PDFfile fileposition 2 .execn % Keep pdfcount valid. + PDFfile exch setfileposition +- } ifelse +- } { ++ } executeonly ifelse ++ } executeonly ++ { + % PDF Type 3 fonts don't use .notdef + % d1 implementation adjusts the width as needed + 0 0 0 0 0 0 + pdfopdict /d1 get exec + } ifelse + end end +- } bdef ++ } executeonly bdef + dup currentdict Encoding .processToUnicode + currentdict end .completefont exch pop + } bind executeonly odef +@@ -2103,9 +2106,9 @@ currentdict /CMap_read_dict undef + (Will continue, but content may be missing.) = flush + } ifelse + } if +- } if ++ } executeonly if + /findresource cvx /undefined signalerror +- } loop ++ } executeonly loop + } bind executeonly odef + + /buildCIDType0 { % buildCIDType0 +diff --git a/Resource/Init/pdf_main.ps b/Resource/Init/pdf_main.ps +index 5305ea6..a59e63c 100644 +--- a/Resource/Init/pdf_main.ps ++++ b/Resource/Init/pdf_main.ps +@@ -2749,15 +2749,15 @@ currentdict /PDF2PS_matrix_key undef + .setglobal + pdfformaterror + } executeonly ifelse +- } ++ } executeonly + { + currentglobal //pdfdict gcheck .setglobal + //pdfdict /.Qqwarning_issued //true .forceput + .setglobal + pdfformaterror + } executeonly ifelse +- } if +- } if ++ } executeonly if ++ } executeonly if + pop + count PDFexecstackcount sub { pop } repeat + (after exec) VMDEBUG +diff --git a/Resource/Init/pdf_ops.ps b/Resource/Init/pdf_ops.ps +index 285e582..6c1f100 100644 +--- a/Resource/Init/pdf_ops.ps ++++ b/Resource/Init/pdf_ops.ps +@@ -186,14 +186,14 @@ currentdict /gput_always_allow .undef + .setglobal + pdfformaterror + } executeonly ifelse +- } ++ } executeonly + { + currentglobal //pdfdict gcheck .setglobal + //pdfdict /.Qqwarning_issued //true .forceput + .setglobal + pdfformaterror + } executeonly ifelse +- } if ++ } executeonly if + } bind executeonly odef + + % Save PDF gstate +@@ -440,11 +440,12 @@ currentdict /gput_always_allow .undef + dup type /booleantype eq { + .currentSMask type /dicttype eq { + .currentSMask /Processed 2 index .forceput ++ } executeonly ++ { ++ .setSMask ++ }ifelse + } executeonly + { +- .setSMask +- }ifelse +- }{ + .setSMask + }ifelse + +-- +2.20.1 + diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/ghostscript/ghostscript_9.27.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-extended/ghostscript/ghostscript_9.27.bb index fcc9e009..9e1f3e2f 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/ghostscript/ghostscript_9.27.bb +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-extended/ghostscript/ghostscript_9.27.bb @@ -25,6 +25,9 @@ SRC_URI_BASE = "https://github.com/ArtifexSoftware/ghostpdl-downloads/releases/d file://do-not-check-local-libpng-source.patch \ file://avoid-host-contamination.patch \ file://mkdir-p.patch \ + file://CVE-2019-14811-0001.patch \ + file://CVE-2019-14817-0001.patch \ + file://CVE-2019-14817-0002.patch \ " SRC_URI = "${SRC_URI_BASE} \ @@ -56,7 +59,7 @@ PACKAGECONFIG[x11] = "--with-x --x-includes=${STAGING_INCDIR} --x-libraries=${ST --without-x, virtual/libx11 libxext libxt gtk+3\ " -EXTRA_OECONF = "--with-system-libtiff --without-jbig2dec \ +EXTRA_OECONF = "--without-libpaper --with-system-libtiff --without-jbig2dec \ --with-fontpath=${datadir}/fonts \ --without-libidn --with-cups-serverbin=${exec_prefix}/lib/cups \ --with-cups-datadir=${datadir}/cups \ @@ -68,7 +71,7 @@ EXTRA_OECONF_append_mipsarcho32 = " --with-large_color_index=0" # Explicity disable libtiff, fontconfig, # freetype, cups for ghostscript-native EXTRA_OECONF_class-native = "--without-x --with-system-libtiff=no \ - --without-jbig2dec \ + --without-jbig2dec --without-libpaper \ --with-fontpath=${datadir}/fonts \ --without-libidn --disable-fontconfig \ --disable-freetype --disable-cups" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/groff/files/0001-Include-config.h.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-extended/groff/files/0001-Include-config.h.patch new file mode 100644 index 00000000..348a61d9 --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-extended/groff/files/0001-Include-config.h.patch @@ -0,0 +1,1228 @@ +From 6cfa9f8126c1d6ec26f120d273e714fb19108873 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Sun, 4 Aug 2019 16:32:41 -0700 +Subject: [PATCH] Include config.h + +This helps avoid the include conflicts where is including + and since -I./lib is used and a local math.h wrapper is +residing in there, the build breaks since stdlib.h really wants the +standard system math.h to be included, this ensures that right macros +are predefined and included before stdlib.h is included + +fixes +In file included from src/libs/libgroff/assert.cpp:20: +In file included from TOPDIR/build/tmp/work/aarch64-yoe-linux-musl/groff/1.22.4-r0/recipe-sysroot/usr/include/c++/v1/stdlib.h:100: +./lib/math.h:38:3: error: "Please include config.h first." + #error "Please include config.h first." + ^ +./lib/math.h:40:1: error: unknown type name '_GL_INLINE_HEADER_BEGIN' + +Upstream-Status: Pending +Signed-off-by: Khem Raj +--- + src/libs/libgroff/assert.cpp | 4 + + src/libs/libgroff/curtime.cpp | 4 + + src/libs/libgroff/device.cpp | 4 + + src/libs/libgroff/error.cpp | 4 + + src/libs/libgroff/fatal.cpp | 4 + + src/libs/libgroff/string.cpp | 4 + + src/libs/libgroff/strsave.cpp | 4 + + src/preproc/eqn/eqn.cpp | 450 ++++++++++++++++++---------------- + src/preproc/eqn/eqn.hpp | 12 +- + src/preproc/eqn/eqn.ypp | 4 + + src/preproc/eqn/other.cpp | 4 + + src/preproc/eqn/text.cpp | 4 + + src/preproc/pic/object.cpp | 4 + + 13 files changed, 285 insertions(+), 221 deletions(-) + +diff --git a/src/libs/libgroff/assert.cpp b/src/libs/libgroff/assert.cpp +index aceed05..97780d6 100644 +--- a/src/libs/libgroff/assert.cpp ++++ b/src/libs/libgroff/assert.cpp +@@ -16,6 +16,10 @@ for more details. + You should have received a copy of the GNU General Public License + along with this program. If not, see . */ + ++#if HAVE_CONFIG_H ++# include ++#endif ++ + #include + #include + #include "assert.h" +diff --git a/src/libs/libgroff/curtime.cpp b/src/libs/libgroff/curtime.cpp +index 72fe067..9ddba08 100644 +--- a/src/libs/libgroff/curtime.cpp ++++ b/src/libs/libgroff/curtime.cpp +@@ -15,6 +15,10 @@ for more details. + The GNU General Public License version 2 (GPL2) is available in the + internet at . */ + ++#if HAVE_CONFIG_H ++# include ++#endif ++ + #include + #include + #include +diff --git a/src/libs/libgroff/device.cpp b/src/libs/libgroff/device.cpp +index 0d28b85..c211f85 100644 +--- a/src/libs/libgroff/device.cpp ++++ b/src/libs/libgroff/device.cpp +@@ -17,6 +17,10 @@ for more details. + You should have received a copy of the GNU General Public License + along with this program. If not, see . */ + ++#if HAVE_CONFIG_H ++# include ++#endif ++ + #include + #include "device.h" + #include "defs.h" +diff --git a/src/libs/libgroff/error.cpp b/src/libs/libgroff/error.cpp +index 9a18803..7b63d3d 100644 +--- a/src/libs/libgroff/error.cpp ++++ b/src/libs/libgroff/error.cpp +@@ -17,6 +17,10 @@ for more details. + You should have received a copy of the GNU General Public License + along with this program. If not, see . */ + ++#if HAVE_CONFIG_H ++# include ++#endif ++ + #include + #include + #include +diff --git a/src/libs/libgroff/fatal.cpp b/src/libs/libgroff/fatal.cpp +index c0dcb35..fd6003e 100644 +--- a/src/libs/libgroff/fatal.cpp ++++ b/src/libs/libgroff/fatal.cpp +@@ -16,6 +16,10 @@ for more details. + You should have received a copy of the GNU General Public License + along with this program. If not, see . */ + ++#if HAVE_CONFIG_H ++# include ++#endif ++ + #include + + #define FATAL_ERROR_EXIT_CODE 3 +diff --git a/src/libs/libgroff/string.cpp b/src/libs/libgroff/string.cpp +index 46c015c..449f3a6 100644 +--- a/src/libs/libgroff/string.cpp ++++ b/src/libs/libgroff/string.cpp +@@ -17,6 +17,10 @@ for more details. + You should have received a copy of the GNU General Public License + along with this program. If not, see . */ + ++#if HAVE_CONFIG_H ++# include ++#endif ++ + #include + + #include "lib.h" +diff --git a/src/libs/libgroff/strsave.cpp b/src/libs/libgroff/strsave.cpp +index f95c05e..d875045 100644 +--- a/src/libs/libgroff/strsave.cpp ++++ b/src/libs/libgroff/strsave.cpp +@@ -17,6 +17,10 @@ for more details. + You should have received a copy of the GNU General Public License + along with this program. If not, see . */ + ++#if HAVE_CONFIG_H ++# include ++#endif ++ + #include + #include + +diff --git a/src/preproc/eqn/eqn.cpp b/src/preproc/eqn/eqn.cpp +index 4ede465..fdd9484 100644 +--- a/src/preproc/eqn/eqn.cpp ++++ b/src/preproc/eqn/eqn.cpp +@@ -1,8 +1,9 @@ +-/* A Bison parser, made by GNU Bison 3.2. */ ++/* A Bison parser, made by GNU Bison 3.4.1. */ + + /* Bison implementation for Yacc-like parsers in C + +- Copyright (C) 1984, 1989-1990, 2000-2015, 2018 Free Software Foundation, Inc. ++ Copyright (C) 1984, 1989-1990, 2000-2015, 2018-2019 Free Software Foundation, ++ Inc. + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by +@@ -47,7 +48,7 @@ + #define YYBISON 1 + + /* Bison version. */ +-#define YYBISON_VERSION "3.2" ++#define YYBISON_VERSION "3.4.1" + + /* Skeleton name. */ + #define YYSKELETON_NAME "yacc.c" +@@ -65,7 +66,11 @@ + + + /* First part of user prologue. */ +-#line 18 "../src/preproc/eqn/eqn.ypp" /* yacc.c:338 */ ++#line 18 "src/preproc/eqn/eqn.ypp" ++ ++#if HAVE_CONFIG_H ++# include ++#endif + + #include + #include +@@ -77,7 +82,8 @@ extern int non_empty_flag; + int yylex(); + void yyerror(const char *); + +-#line 81 "src/preproc/eqn/eqn.cpp" /* yacc.c:338 */ ++#line 86 "src/preproc/eqn/eqn.cpp" ++ + # ifndef YY_NULLPTR + # if defined __cplusplus + # if 201103L <= __cplusplus +@@ -98,8 +104,8 @@ void yyerror(const char *); + # define YYERROR_VERBOSE 0 + #endif + +-/* In a future release of Bison, this section will be replaced +- by #include "y.tab.h". */ ++/* Use api.header.include to #include this header ++ instead of duplicating it here. */ + #ifndef YY_YY_SRC_PREPROC_EQN_EQN_HPP_INCLUDED + # define YY_YY_SRC_PREPROC_EQN_EQN_HPP_INCLUDED + /* Debug traces. */ +@@ -237,10 +243,9 @@ extern int yydebug; + + /* Value type. */ + #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED +- + union YYSTYPE + { +-#line 30 "../src/preproc/eqn/eqn.ypp" /* yacc.c:353 */ ++#line 34 "src/preproc/eqn/eqn.ypp" + + char *str; + box *b; +@@ -249,9 +254,9 @@ union YYSTYPE + int n; + column *col; + +-#line 253 "src/preproc/eqn/eqn.cpp" /* yacc.c:353 */ +-}; ++#line 258 "src/preproc/eqn/eqn.cpp" + ++}; + typedef union YYSTYPE YYSTYPE; + # define YYSTYPE_IS_TRIVIAL 1 + # define YYSTYPE_IS_DECLARED 1 +@@ -366,6 +371,8 @@ typedef short yytype_int16; + #endif + + ++#define YY_ASSERT(E) ((void) (0 && (E))) ++ + #if ! defined yyoverflow || YYERROR_VERBOSE + + /* The parser invokes alloca or malloc; define the necessary symbols. */ +@@ -508,16 +515,16 @@ union yyalloc + /* YYNSTATES -- Number of states. */ + #define YYNSTATES 142 + +-/* YYTRANSLATE[YYX] -- Symbol number corresponding to YYX as returned +- by yylex, with out-of-bounds checking. */ + #define YYUNDEFTOK 2 + #define YYMAXUTOK 315 + ++/* YYTRANSLATE(TOKEN-NUM) -- Symbol number corresponding to TOKEN-NUM ++ as returned by yylex, with out-of-bounds checking. */ + #define YYTRANSLATE(YYX) \ + ((unsigned) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) + + /* YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to TOKEN-NUM +- as returned by yylex, without out-of-bounds checking. */ ++ as returned by yylex. */ + static const yytype_uint8 yytranslate[] = + { + 0, 2, 2, 2, 2, 2, 2, 2, 2, 63, +@@ -558,14 +565,14 @@ static const yytype_uint8 yytranslate[] = + /* YYRLINE[YYN] -- Source line where rule number YYN was defined. */ + static const yytype_uint16 yyrline[] = + { +- 0, 121, 121, 123, 128, 130, 141, 143, 145, 150, +- 152, 154, 156, 158, 163, 165, 167, 169, 174, 176, +- 181, 183, 185, 190, 192, 194, 196, 198, 200, 202, +- 204, 206, 208, 210, 212, 214, 216, 218, 220, 222, +- 224, 226, 228, 230, 232, 234, 236, 238, 240, 242, +- 244, 246, 248, 250, 252, 254, 259, 269, 271, 276, +- 278, 283, 285, 290, 292, 297, 299, 304, 306, 308, +- 310, 314, 316, 321, 323, 325 ++ 0, 125, 125, 127, 132, 134, 145, 147, 149, 154, ++ 156, 158, 160, 162, 167, 169, 171, 173, 178, 180, ++ 185, 187, 189, 194, 196, 198, 200, 202, 204, 206, ++ 208, 210, 212, 214, 216, 218, 220, 222, 224, 226, ++ 228, 230, 232, 234, 236, 238, 240, 242, 244, 246, ++ 248, 250, 252, 254, 256, 258, 263, 273, 275, 280, ++ 282, 287, 289, 294, 296, 301, 303, 308, 310, 312, ++ 314, 318, 320, 325, 327, 329 + }; + #endif + +@@ -818,22 +825,22 @@ static const yytype_uint8 yyr2[] = + + #define YYRECOVERING() (!!yyerrstatus) + +-#define YYBACKUP(Token, Value) \ +-do \ +- if (yychar == YYEMPTY) \ +- { \ +- yychar = (Token); \ +- yylval = (Value); \ +- YYPOPSTACK (yylen); \ +- yystate = *yyssp; \ +- goto yybackup; \ +- } \ +- else \ +- { \ +- yyerror (YY_("syntax error: cannot back up")); \ +- YYERROR; \ +- } \ +-while (0) ++#define YYBACKUP(Token, Value) \ ++ do \ ++ if (yychar == YYEMPTY) \ ++ { \ ++ yychar = (Token); \ ++ yylval = (Value); \ ++ YYPOPSTACK (yylen); \ ++ yystate = *yyssp; \ ++ goto yybackup; \ ++ } \ ++ else \ ++ { \ ++ yyerror (YY_("syntax error: cannot back up")); \ ++ YYERROR; \ ++ } \ ++ while (0) + + /* Error token number */ + #define YYTERROR 1 +@@ -948,7 +955,7 @@ yy_reduce_print (yytype_int16 *yyssp, YYSTYPE *yyvsp, int yyrule) + YYFPRINTF (stderr, " $%d = ", yyi + 1); + yy_symbol_print (stderr, + yystos[yyssp[yyi + 1 - yynrhs]], +- &(yyvsp[(yyi + 1) - (yynrhs)]) ++ &yyvsp[(yyi + 1) - (yynrhs)] + ); + YYFPRINTF (stderr, "\n"); + } +@@ -1052,7 +1059,10 @@ yytnamerr (char *yyres, const char *yystr) + case '\\': + if (*++yyp != '\\') + goto do_not_strip_quotes; +- /* Fall through. */ ++ else ++ goto append; ++ ++ append: + default: + if (yyres) + yyres[yyn] = *yyp; +@@ -1148,10 +1158,10 @@ yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg, + yyarg[yycount++] = yytname[yyx]; + { + YYSIZE_T yysize1 = yysize + yytnamerr (YY_NULLPTR, yytname[yyx]); +- if (! (yysize <= yysize1 +- && yysize1 <= YYSTACK_ALLOC_MAXIMUM)) ++ if (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM) ++ yysize = yysize1; ++ else + return 2; +- yysize = yysize1; + } + } + } +@@ -1175,9 +1185,10 @@ yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg, + + { + YYSIZE_T yysize1 = yysize + yystrlen (yyformat); +- if (! (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM)) ++ if (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM) ++ yysize = yysize1; ++ else + return 2; +- yysize = yysize1; + } + + if (*yymsg_alloc < yysize) +@@ -1303,23 +1314,33 @@ yyparse (void) + yychar = YYEMPTY; /* Cause a token to be read. */ + goto yysetstate; + ++ + /*------------------------------------------------------------. +-| yynewstate -- Push a new state, which is found in yystate. | ++| yynewstate -- push a new state, which is found in yystate. | + `------------------------------------------------------------*/ +- yynewstate: ++yynewstate: + /* In all cases, when you get here, the value and location stacks + have just been pushed. So pushing a state here evens the stacks. */ + yyssp++; + +- yysetstate: ++ ++/*--------------------------------------------------------------------. ++| yynewstate -- set current state (the top of the stack) to yystate. | ++`--------------------------------------------------------------------*/ ++yysetstate: ++ YYDPRINTF ((stderr, "Entering state %d\n", yystate)); ++ YY_ASSERT (0 <= yystate && yystate < YYNSTATES); + *yyssp = (yytype_int16) yystate; + + if (yyss + yystacksize - 1 <= yyssp) ++#if !defined yyoverflow && !defined YYSTACK_RELOCATE ++ goto yyexhaustedlab; ++#else + { + /* Get the current used size of the three stacks, in elements. */ + YYSIZE_T yysize = (YYSIZE_T) (yyssp - yyss + 1); + +-#ifdef yyoverflow ++# if defined yyoverflow + { + /* Give user a chance to reallocate the stack. Use copies of + these so that the &'s don't force the real ones into +@@ -1338,10 +1359,7 @@ yyparse (void) + yyss = yyss1; + yyvs = yyvs1; + } +-#else /* no yyoverflow */ +-# ifndef YYSTACK_RELOCATE +- goto yyexhaustedlab; +-# else ++# else /* defined YYSTACK_RELOCATE */ + /* Extend the stack our own way. */ + if (YYMAXDEPTH <= yystacksize) + goto yyexhaustedlab; +@@ -1357,12 +1375,11 @@ yyparse (void) + goto yyexhaustedlab; + YYSTACK_RELOCATE (yyss_alloc, yyss); + YYSTACK_RELOCATE (yyvs_alloc, yyvs); +-# undef YYSTACK_RELOCATE ++# undef YYSTACK_RELOCATE + if (yyss1 != yyssa) + YYSTACK_FREE (yyss1); + } + # endif +-#endif /* no yyoverflow */ + + yyssp = yyss + yysize - 1; + yyvsp = yyvs + yysize - 1; +@@ -1373,19 +1390,18 @@ yyparse (void) + if (yyss + yystacksize - 1 <= yyssp) + YYABORT; + } +- +- YYDPRINTF ((stderr, "Entering state %d\n", yystate)); ++#endif /* !defined yyoverflow && !defined YYSTACK_RELOCATE */ + + if (yystate == YYFINAL) + YYACCEPT; + + goto yybackup; + ++ + /*-----------. + | yybackup. | + `-----------*/ + yybackup: +- + /* Do appropriate processing given the current state. Read a + lookahead token if we need one and don't already have one. */ + +@@ -1443,7 +1459,6 @@ yybackup: + YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN + *++yyvsp = yylval; + YY_IGNORE_MAYBE_UNINITIALIZED_END +- + goto yynewstate; + + +@@ -1458,7 +1473,7 @@ yydefault: + + + /*-----------------------------. +-| yyreduce -- Do a reduction. | ++| yyreduce -- do a reduction. | + `-----------------------------*/ + yyreduce: + /* yyn is the number of a rule to reduce with. */ +@@ -1478,20 +1493,20 @@ yyreduce: + YY_REDUCE_PRINT (yyn); + switch (yyn) + { +- case 3: +-#line 124 "../src/preproc/eqn/eqn.ypp" /* yacc.c:1645 */ ++ case 3: ++#line 128 "src/preproc/eqn/eqn.ypp" + { (yyvsp[0].b)->top_level(); non_empty_flag = 1; } +-#line 1485 "src/preproc/eqn/eqn.cpp" /* yacc.c:1645 */ ++#line 1500 "src/preproc/eqn/eqn.cpp" + break; + + case 4: +-#line 129 "../src/preproc/eqn/eqn.ypp" /* yacc.c:1645 */ ++#line 133 "src/preproc/eqn/eqn.ypp" + { (yyval.b) = (yyvsp[0].b); } +-#line 1491 "src/preproc/eqn/eqn.cpp" /* yacc.c:1645 */ ++#line 1506 "src/preproc/eqn/eqn.cpp" + break; + + case 5: +-#line 131 "../src/preproc/eqn/eqn.ypp" /* yacc.c:1645 */ ++#line 135 "src/preproc/eqn/eqn.ypp" + { + list_box *lb = (yyvsp[-1].b)->to_list_box(); + if (!lb) +@@ -1499,436 +1514,437 @@ yyreduce: + lb->append((yyvsp[0].b)); + (yyval.b) = lb; + } +-#line 1503 "src/preproc/eqn/eqn.cpp" /* yacc.c:1645 */ ++#line 1518 "src/preproc/eqn/eqn.cpp" + break; + + case 6: +-#line 142 "../src/preproc/eqn/eqn.ypp" /* yacc.c:1645 */ ++#line 146 "src/preproc/eqn/eqn.ypp" + { (yyval.b) = (yyvsp[0].b); } +-#line 1509 "src/preproc/eqn/eqn.cpp" /* yacc.c:1645 */ ++#line 1524 "src/preproc/eqn/eqn.cpp" + break; + + case 7: +-#line 144 "../src/preproc/eqn/eqn.ypp" /* yacc.c:1645 */ ++#line 148 "src/preproc/eqn/eqn.ypp" + { (yyval.b) = make_mark_box((yyvsp[0].b)); } +-#line 1515 "src/preproc/eqn/eqn.cpp" /* yacc.c:1645 */ ++#line 1530 "src/preproc/eqn/eqn.cpp" + break; + + case 8: +-#line 146 "../src/preproc/eqn/eqn.ypp" /* yacc.c:1645 */ ++#line 150 "src/preproc/eqn/eqn.ypp" + { (yyval.b) = make_lineup_box((yyvsp[0].b)); } +-#line 1521 "src/preproc/eqn/eqn.cpp" /* yacc.c:1645 */ ++#line 1536 "src/preproc/eqn/eqn.cpp" + break; + + case 9: +-#line 151 "../src/preproc/eqn/eqn.ypp" /* yacc.c:1645 */ ++#line 155 "src/preproc/eqn/eqn.ypp" + { (yyval.b) = (yyvsp[0].b); } +-#line 1527 "src/preproc/eqn/eqn.cpp" /* yacc.c:1645 */ ++#line 1542 "src/preproc/eqn/eqn.cpp" + break; + + case 10: +-#line 153 "../src/preproc/eqn/eqn.ypp" /* yacc.c:1645 */ ++#line 157 "src/preproc/eqn/eqn.ypp" + { (yyval.b) = make_limit_box((yyvsp[-2].b), 0, (yyvsp[0].b)); } +-#line 1533 "src/preproc/eqn/eqn.cpp" /* yacc.c:1645 */ ++#line 1548 "src/preproc/eqn/eqn.cpp" + break; + + case 11: +-#line 155 "../src/preproc/eqn/eqn.ypp" /* yacc.c:1645 */ ++#line 159 "src/preproc/eqn/eqn.ypp" + { (yyval.b) = make_limit_box((yyvsp[-2].b), (yyvsp[0].b), 0); } +-#line 1539 "src/preproc/eqn/eqn.cpp" /* yacc.c:1645 */ ++#line 1554 "src/preproc/eqn/eqn.cpp" + break; + + case 12: +-#line 157 "../src/preproc/eqn/eqn.ypp" /* yacc.c:1645 */ ++#line 161 "src/preproc/eqn/eqn.ypp" + { (yyval.b) = make_limit_box((yyvsp[-4].b), (yyvsp[-2].b), (yyvsp[0].b)); } +-#line 1545 "src/preproc/eqn/eqn.cpp" /* yacc.c:1645 */ ++#line 1560 "src/preproc/eqn/eqn.cpp" + break; + + case 13: +-#line 159 "../src/preproc/eqn/eqn.ypp" /* yacc.c:1645 */ ++#line 163 "src/preproc/eqn/eqn.ypp" + { (yyval.b) = make_limit_box((yyvsp[-4].b), make_limit_box((yyvsp[-2].b), (yyvsp[0].b), 0), 0); } +-#line 1551 "src/preproc/eqn/eqn.cpp" /* yacc.c:1645 */ ++#line 1566 "src/preproc/eqn/eqn.cpp" + break; + + case 14: +-#line 164 "../src/preproc/eqn/eqn.ypp" /* yacc.c:1645 */ ++#line 168 "src/preproc/eqn/eqn.ypp" + { (yyval.b) = (yyvsp[0].b); } +-#line 1557 "src/preproc/eqn/eqn.cpp" /* yacc.c:1645 */ ++#line 1572 "src/preproc/eqn/eqn.cpp" + break; + + case 15: +-#line 166 "../src/preproc/eqn/eqn.ypp" /* yacc.c:1645 */ ++#line 170 "src/preproc/eqn/eqn.ypp" + { (yyval.b) = make_sqrt_box((yyvsp[0].b)); } +-#line 1563 "src/preproc/eqn/eqn.cpp" /* yacc.c:1645 */ ++#line 1578 "src/preproc/eqn/eqn.cpp" + break; + + case 16: +-#line 168 "../src/preproc/eqn/eqn.ypp" /* yacc.c:1645 */ ++#line 172 "src/preproc/eqn/eqn.ypp" + { (yyval.b) = make_over_box((yyvsp[-2].b), (yyvsp[0].b)); } +-#line 1569 "src/preproc/eqn/eqn.cpp" /* yacc.c:1645 */ ++#line 1584 "src/preproc/eqn/eqn.cpp" + break; + + case 17: +-#line 170 "../src/preproc/eqn/eqn.ypp" /* yacc.c:1645 */ ++#line 174 "src/preproc/eqn/eqn.ypp" + { (yyval.b) = make_small_over_box((yyvsp[-2].b), (yyvsp[0].b)); } +-#line 1575 "src/preproc/eqn/eqn.cpp" /* yacc.c:1645 */ ++#line 1590 "src/preproc/eqn/eqn.cpp" + break; + + case 18: +-#line 175 "../src/preproc/eqn/eqn.ypp" /* yacc.c:1645 */ ++#line 179 "src/preproc/eqn/eqn.ypp" + { (yyval.b) = (yyvsp[0].b); } +-#line 1581 "src/preproc/eqn/eqn.cpp" /* yacc.c:1645 */ ++#line 1596 "src/preproc/eqn/eqn.cpp" + break; + + case 19: +-#line 177 "../src/preproc/eqn/eqn.ypp" /* yacc.c:1645 */ ++#line 181 "src/preproc/eqn/eqn.ypp" + { (yyval.b) = make_script_box((yyvsp[-2].b), 0, (yyvsp[0].b)); } +-#line 1587 "src/preproc/eqn/eqn.cpp" /* yacc.c:1645 */ ++#line 1602 "src/preproc/eqn/eqn.cpp" + break; + + case 20: +-#line 182 "../src/preproc/eqn/eqn.ypp" /* yacc.c:1645 */ ++#line 186 "src/preproc/eqn/eqn.ypp" + { (yyval.b) = (yyvsp[0].b); } +-#line 1593 "src/preproc/eqn/eqn.cpp" /* yacc.c:1645 */ ++#line 1608 "src/preproc/eqn/eqn.cpp" + break; + + case 21: +-#line 184 "../src/preproc/eqn/eqn.ypp" /* yacc.c:1645 */ ++#line 188 "src/preproc/eqn/eqn.ypp" + { (yyval.b) = make_script_box((yyvsp[-2].b), (yyvsp[0].b), 0); } +-#line 1599 "src/preproc/eqn/eqn.cpp" /* yacc.c:1645 */ ++#line 1614 "src/preproc/eqn/eqn.cpp" + break; + + case 22: +-#line 186 "../src/preproc/eqn/eqn.ypp" /* yacc.c:1645 */ ++#line 190 "src/preproc/eqn/eqn.ypp" + { (yyval.b) = make_script_box((yyvsp[-4].b), (yyvsp[-2].b), (yyvsp[0].b)); } +-#line 1605 "src/preproc/eqn/eqn.cpp" /* yacc.c:1645 */ ++#line 1620 "src/preproc/eqn/eqn.cpp" + break; + + case 23: +-#line 191 "../src/preproc/eqn/eqn.ypp" /* yacc.c:1645 */ ++#line 195 "src/preproc/eqn/eqn.ypp" + { (yyval.b) = split_text((yyvsp[0].str)); } +-#line 1611 "src/preproc/eqn/eqn.cpp" /* yacc.c:1645 */ ++#line 1626 "src/preproc/eqn/eqn.cpp" + break; + + case 24: +-#line 193 "../src/preproc/eqn/eqn.ypp" /* yacc.c:1645 */ ++#line 197 "src/preproc/eqn/eqn.ypp" + { (yyval.b) = new quoted_text_box((yyvsp[0].str)); } +-#line 1617 "src/preproc/eqn/eqn.cpp" /* yacc.c:1645 */ ++#line 1632 "src/preproc/eqn/eqn.cpp" + break; + + case 25: +-#line 195 "../src/preproc/eqn/eqn.ypp" /* yacc.c:1645 */ ++#line 199 "src/preproc/eqn/eqn.ypp" + { (yyval.b) = split_text((yyvsp[0].str)); } +-#line 1623 "src/preproc/eqn/eqn.cpp" /* yacc.c:1645 */ ++#line 1638 "src/preproc/eqn/eqn.cpp" + break; + + case 26: +-#line 197 "../src/preproc/eqn/eqn.ypp" /* yacc.c:1645 */ ++#line 201 "src/preproc/eqn/eqn.ypp" + { (yyval.b) = new quoted_text_box((yyvsp[0].str)); } +-#line 1629 "src/preproc/eqn/eqn.cpp" /* yacc.c:1645 */ ++#line 1644 "src/preproc/eqn/eqn.cpp" + break; + + case 27: +-#line 199 "../src/preproc/eqn/eqn.ypp" /* yacc.c:1645 */ ++#line 203 "src/preproc/eqn/eqn.ypp" + { (yyval.b) = new half_space_box; } +-#line 1635 "src/preproc/eqn/eqn.cpp" /* yacc.c:1645 */ ++#line 1650 "src/preproc/eqn/eqn.cpp" + break; + + case 28: +-#line 201 "../src/preproc/eqn/eqn.ypp" /* yacc.c:1645 */ ++#line 205 "src/preproc/eqn/eqn.ypp" + { (yyval.b) = new space_box; } +-#line 1641 "src/preproc/eqn/eqn.cpp" /* yacc.c:1645 */ ++#line 1656 "src/preproc/eqn/eqn.cpp" + break; + + case 29: +-#line 203 "../src/preproc/eqn/eqn.ypp" /* yacc.c:1645 */ ++#line 207 "src/preproc/eqn/eqn.ypp" + { (yyval.b) = new tab_box; } +-#line 1647 "src/preproc/eqn/eqn.cpp" /* yacc.c:1645 */ ++#line 1662 "src/preproc/eqn/eqn.cpp" + break; + + case 30: +-#line 205 "../src/preproc/eqn/eqn.ypp" /* yacc.c:1645 */ ++#line 209 "src/preproc/eqn/eqn.ypp" + { (yyval.b) = (yyvsp[-1].b); } +-#line 1653 "src/preproc/eqn/eqn.cpp" /* yacc.c:1645 */ ++#line 1668 "src/preproc/eqn/eqn.cpp" + break; + + case 31: +-#line 207 "../src/preproc/eqn/eqn.ypp" /* yacc.c:1645 */ ++#line 211 "src/preproc/eqn/eqn.ypp" + { (yyvsp[0].pb)->set_alignment(CENTER_ALIGN); (yyval.b) = (yyvsp[0].pb); } +-#line 1659 "src/preproc/eqn/eqn.cpp" /* yacc.c:1645 */ ++#line 1674 "src/preproc/eqn/eqn.cpp" + break; + + case 32: +-#line 209 "../src/preproc/eqn/eqn.ypp" /* yacc.c:1645 */ ++#line 213 "src/preproc/eqn/eqn.ypp" + { (yyvsp[0].pb)->set_alignment(LEFT_ALIGN); (yyval.b) = (yyvsp[0].pb); } +-#line 1665 "src/preproc/eqn/eqn.cpp" /* yacc.c:1645 */ ++#line 1680 "src/preproc/eqn/eqn.cpp" + break; + + case 33: +-#line 211 "../src/preproc/eqn/eqn.ypp" /* yacc.c:1645 */ ++#line 215 "src/preproc/eqn/eqn.ypp" + { (yyvsp[0].pb)->set_alignment(RIGHT_ALIGN); (yyval.b) = (yyvsp[0].pb); } +-#line 1671 "src/preproc/eqn/eqn.cpp" /* yacc.c:1645 */ ++#line 1686 "src/preproc/eqn/eqn.cpp" + break; + + case 34: +-#line 213 "../src/preproc/eqn/eqn.ypp" /* yacc.c:1645 */ ++#line 217 "src/preproc/eqn/eqn.ypp" + { (yyvsp[0].pb)->set_alignment(CENTER_ALIGN); (yyval.b) = (yyvsp[0].pb); } +-#line 1677 "src/preproc/eqn/eqn.cpp" /* yacc.c:1645 */ ++#line 1692 "src/preproc/eqn/eqn.cpp" + break; + + case 35: +-#line 215 "../src/preproc/eqn/eqn.ypp" /* yacc.c:1645 */ ++#line 219 "src/preproc/eqn/eqn.ypp" + { (yyval.b) = (yyvsp[-1].mb); } +-#line 1683 "src/preproc/eqn/eqn.cpp" /* yacc.c:1645 */ ++#line 1698 "src/preproc/eqn/eqn.cpp" + break; + + case 36: +-#line 217 "../src/preproc/eqn/eqn.ypp" /* yacc.c:1645 */ ++#line 221 "src/preproc/eqn/eqn.ypp" + { (yyval.b) = make_delim_box((yyvsp[-3].str), (yyvsp[-2].b), (yyvsp[0].str)); } +-#line 1689 "src/preproc/eqn/eqn.cpp" /* yacc.c:1645 */ ++#line 1704 "src/preproc/eqn/eqn.cpp" + break; + + case 37: +-#line 219 "../src/preproc/eqn/eqn.ypp" /* yacc.c:1645 */ ++#line 223 "src/preproc/eqn/eqn.ypp" + { (yyval.b) = make_delim_box((yyvsp[-1].str), (yyvsp[0].b), 0); } +-#line 1695 "src/preproc/eqn/eqn.cpp" /* yacc.c:1645 */ ++#line 1710 "src/preproc/eqn/eqn.cpp" + break; + + case 38: +-#line 221 "../src/preproc/eqn/eqn.ypp" /* yacc.c:1645 */ ++#line 225 "src/preproc/eqn/eqn.ypp" + { (yyval.b) = make_overline_box((yyvsp[-1].b)); } +-#line 1701 "src/preproc/eqn/eqn.cpp" /* yacc.c:1645 */ ++#line 1716 "src/preproc/eqn/eqn.cpp" + break; + + case 39: +-#line 223 "../src/preproc/eqn/eqn.ypp" /* yacc.c:1645 */ ++#line 227 "src/preproc/eqn/eqn.ypp" + { (yyval.b) = make_underline_box((yyvsp[-1].b)); } +-#line 1707 "src/preproc/eqn/eqn.cpp" /* yacc.c:1645 */ ++#line 1722 "src/preproc/eqn/eqn.cpp" + break; + + case 40: +-#line 225 "../src/preproc/eqn/eqn.ypp" /* yacc.c:1645 */ ++#line 229 "src/preproc/eqn/eqn.ypp" + { (yyval.b) = make_prime_box((yyvsp[-1].b)); } +-#line 1713 "src/preproc/eqn/eqn.cpp" /* yacc.c:1645 */ ++#line 1728 "src/preproc/eqn/eqn.cpp" + break; + + case 41: +-#line 227 "../src/preproc/eqn/eqn.ypp" /* yacc.c:1645 */ ++#line 231 "src/preproc/eqn/eqn.ypp" + { (yyval.b) = make_accent_box((yyvsp[-2].b), (yyvsp[0].b)); } +-#line 1719 "src/preproc/eqn/eqn.cpp" /* yacc.c:1645 */ ++#line 1734 "src/preproc/eqn/eqn.cpp" + break; + + case 42: +-#line 229 "../src/preproc/eqn/eqn.ypp" /* yacc.c:1645 */ ++#line 233 "src/preproc/eqn/eqn.ypp" + { (yyval.b) = make_uaccent_box((yyvsp[-2].b), (yyvsp[0].b)); } +-#line 1725 "src/preproc/eqn/eqn.cpp" /* yacc.c:1645 */ ++#line 1740 "src/preproc/eqn/eqn.cpp" + break; + + case 43: +-#line 231 "../src/preproc/eqn/eqn.ypp" /* yacc.c:1645 */ ++#line 235 "src/preproc/eqn/eqn.ypp" + { (yyval.b) = new font_box(strsave(get_grfont()), (yyvsp[0].b)); } +-#line 1731 "src/preproc/eqn/eqn.cpp" /* yacc.c:1645 */ ++#line 1746 "src/preproc/eqn/eqn.cpp" + break; + + case 44: +-#line 233 "../src/preproc/eqn/eqn.ypp" /* yacc.c:1645 */ ++#line 237 "src/preproc/eqn/eqn.ypp" + { (yyval.b) = new font_box(strsave(get_gbfont()), (yyvsp[0].b)); } +-#line 1737 "src/preproc/eqn/eqn.cpp" /* yacc.c:1645 */ ++#line 1752 "src/preproc/eqn/eqn.cpp" + break; + + case 45: +-#line 235 "../src/preproc/eqn/eqn.ypp" /* yacc.c:1645 */ ++#line 239 "src/preproc/eqn/eqn.ypp" + { (yyval.b) = new font_box(strsave(get_gfont()), (yyvsp[0].b)); } +-#line 1743 "src/preproc/eqn/eqn.cpp" /* yacc.c:1645 */ ++#line 1758 "src/preproc/eqn/eqn.cpp" + break; + + case 46: +-#line 237 "../src/preproc/eqn/eqn.ypp" /* yacc.c:1645 */ ++#line 241 "src/preproc/eqn/eqn.ypp" + { (yyval.b) = new fat_box((yyvsp[0].b)); } +-#line 1749 "src/preproc/eqn/eqn.cpp" /* yacc.c:1645 */ ++#line 1764 "src/preproc/eqn/eqn.cpp" + break; + + case 47: +-#line 239 "../src/preproc/eqn/eqn.ypp" /* yacc.c:1645 */ ++#line 243 "src/preproc/eqn/eqn.ypp" + { (yyval.b) = new font_box((yyvsp[-1].str), (yyvsp[0].b)); } +-#line 1755 "src/preproc/eqn/eqn.cpp" /* yacc.c:1645 */ ++#line 1770 "src/preproc/eqn/eqn.cpp" + break; + + case 48: +-#line 241 "../src/preproc/eqn/eqn.ypp" /* yacc.c:1645 */ ++#line 245 "src/preproc/eqn/eqn.ypp" + { (yyval.b) = new size_box((yyvsp[-1].str), (yyvsp[0].b)); } +-#line 1761 "src/preproc/eqn/eqn.cpp" /* yacc.c:1645 */ ++#line 1776 "src/preproc/eqn/eqn.cpp" + break; + + case 49: +-#line 243 "../src/preproc/eqn/eqn.ypp" /* yacc.c:1645 */ ++#line 247 "src/preproc/eqn/eqn.ypp" + { (yyval.b) = new hmotion_box((yyvsp[-1].n), (yyvsp[0].b)); } +-#line 1767 "src/preproc/eqn/eqn.cpp" /* yacc.c:1645 */ ++#line 1782 "src/preproc/eqn/eqn.cpp" + break; + + case 50: +-#line 245 "../src/preproc/eqn/eqn.ypp" /* yacc.c:1645 */ ++#line 249 "src/preproc/eqn/eqn.ypp" + { (yyval.b) = new hmotion_box(-(yyvsp[-1].n), (yyvsp[0].b)); } +-#line 1773 "src/preproc/eqn/eqn.cpp" /* yacc.c:1645 */ ++#line 1788 "src/preproc/eqn/eqn.cpp" + break; + + case 51: +-#line 247 "../src/preproc/eqn/eqn.ypp" /* yacc.c:1645 */ ++#line 251 "src/preproc/eqn/eqn.ypp" + { (yyval.b) = new vmotion_box((yyvsp[-1].n), (yyvsp[0].b)); } +-#line 1779 "src/preproc/eqn/eqn.cpp" /* yacc.c:1645 */ ++#line 1794 "src/preproc/eqn/eqn.cpp" + break; + + case 52: +-#line 249 "../src/preproc/eqn/eqn.ypp" /* yacc.c:1645 */ ++#line 253 "src/preproc/eqn/eqn.ypp" + { (yyval.b) = new vmotion_box(-(yyvsp[-1].n), (yyvsp[0].b)); } +-#line 1785 "src/preproc/eqn/eqn.cpp" /* yacc.c:1645 */ ++#line 1800 "src/preproc/eqn/eqn.cpp" + break; + + case 53: +-#line 251 "../src/preproc/eqn/eqn.ypp" /* yacc.c:1645 */ ++#line 255 "src/preproc/eqn/eqn.ypp" + { (yyvsp[0].b)->set_spacing_type((yyvsp[-1].str)); (yyval.b) = (yyvsp[0].b); } +-#line 1791 "src/preproc/eqn/eqn.cpp" /* yacc.c:1645 */ ++#line 1806 "src/preproc/eqn/eqn.cpp" + break; + + case 54: +-#line 253 "../src/preproc/eqn/eqn.ypp" /* yacc.c:1645 */ ++#line 257 "src/preproc/eqn/eqn.ypp" + { (yyval.b) = new vcenter_box((yyvsp[0].b)); } +-#line 1797 "src/preproc/eqn/eqn.cpp" /* yacc.c:1645 */ ++#line 1812 "src/preproc/eqn/eqn.cpp" + break; + + case 55: +-#line 255 "../src/preproc/eqn/eqn.ypp" /* yacc.c:1645 */ ++#line 259 "src/preproc/eqn/eqn.ypp" + { (yyval.b) = make_special_box((yyvsp[-1].str), (yyvsp[0].b)); } +-#line 1803 "src/preproc/eqn/eqn.cpp" /* yacc.c:1645 */ ++#line 1818 "src/preproc/eqn/eqn.cpp" + break; + + case 56: +-#line 260 "../src/preproc/eqn/eqn.ypp" /* yacc.c:1645 */ ++#line 264 "src/preproc/eqn/eqn.ypp" + { + int n; + if (sscanf((yyvsp[0].str), "%d", &n) == 1) + (yyval.n) = n; + a_delete (yyvsp[0].str); + } +-#line 1814 "src/preproc/eqn/eqn.cpp" /* yacc.c:1645 */ ++#line 1829 "src/preproc/eqn/eqn.cpp" + break; + + case 57: +-#line 270 "../src/preproc/eqn/eqn.ypp" /* yacc.c:1645 */ ++#line 274 "src/preproc/eqn/eqn.ypp" + { (yyval.pb) = new pile_box((yyvsp[0].b)); } +-#line 1820 "src/preproc/eqn/eqn.cpp" /* yacc.c:1645 */ ++#line 1835 "src/preproc/eqn/eqn.cpp" + break; + + case 58: +-#line 272 "../src/preproc/eqn/eqn.ypp" /* yacc.c:1645 */ ++#line 276 "src/preproc/eqn/eqn.ypp" + { (yyvsp[-2].pb)->append((yyvsp[0].b)); (yyval.pb) = (yyvsp[-2].pb); } +-#line 1826 "src/preproc/eqn/eqn.cpp" /* yacc.c:1645 */ ++#line 1841 "src/preproc/eqn/eqn.cpp" + break; + + case 59: +-#line 277 "../src/preproc/eqn/eqn.ypp" /* yacc.c:1645 */ ++#line 281 "src/preproc/eqn/eqn.ypp" + { (yyval.pb) = (yyvsp[-1].pb); } +-#line 1832 "src/preproc/eqn/eqn.cpp" /* yacc.c:1645 */ ++#line 1847 "src/preproc/eqn/eqn.cpp" + break; + + case 60: +-#line 279 "../src/preproc/eqn/eqn.ypp" /* yacc.c:1645 */ ++#line 283 "src/preproc/eqn/eqn.ypp" + { (yyvsp[-1].pb)->set_space((yyvsp[-3].n)); (yyval.pb) = (yyvsp[-1].pb); } +-#line 1838 "src/preproc/eqn/eqn.cpp" /* yacc.c:1645 */ ++#line 1853 "src/preproc/eqn/eqn.cpp" + break; + + case 61: +-#line 284 "../src/preproc/eqn/eqn.ypp" /* yacc.c:1645 */ ++#line 288 "src/preproc/eqn/eqn.ypp" + { (yyval.mb) = new matrix_box((yyvsp[0].col)); } +-#line 1844 "src/preproc/eqn/eqn.cpp" /* yacc.c:1645 */ ++#line 1859 "src/preproc/eqn/eqn.cpp" + break; + + case 62: +-#line 286 "../src/preproc/eqn/eqn.ypp" /* yacc.c:1645 */ ++#line 290 "src/preproc/eqn/eqn.ypp" + { (yyvsp[-1].mb)->append((yyvsp[0].col)); (yyval.mb) = (yyvsp[-1].mb); } +-#line 1850 "src/preproc/eqn/eqn.cpp" /* yacc.c:1645 */ ++#line 1865 "src/preproc/eqn/eqn.cpp" + break; + + case 63: +-#line 291 "../src/preproc/eqn/eqn.ypp" /* yacc.c:1645 */ ++#line 295 "src/preproc/eqn/eqn.ypp" + { (yyval.col) = new column((yyvsp[0].b)); } +-#line 1856 "src/preproc/eqn/eqn.cpp" /* yacc.c:1645 */ ++#line 1871 "src/preproc/eqn/eqn.cpp" + break; + + case 64: +-#line 293 "../src/preproc/eqn/eqn.ypp" /* yacc.c:1645 */ ++#line 297 "src/preproc/eqn/eqn.ypp" + { (yyvsp[-2].col)->append((yyvsp[0].b)); (yyval.col) = (yyvsp[-2].col); } +-#line 1862 "src/preproc/eqn/eqn.cpp" /* yacc.c:1645 */ ++#line 1877 "src/preproc/eqn/eqn.cpp" + break; + + case 65: +-#line 298 "../src/preproc/eqn/eqn.ypp" /* yacc.c:1645 */ ++#line 302 "src/preproc/eqn/eqn.ypp" + { (yyval.col) = (yyvsp[-1].col); } +-#line 1868 "src/preproc/eqn/eqn.cpp" /* yacc.c:1645 */ ++#line 1883 "src/preproc/eqn/eqn.cpp" + break; + + case 66: +-#line 300 "../src/preproc/eqn/eqn.ypp" /* yacc.c:1645 */ ++#line 304 "src/preproc/eqn/eqn.ypp" + { (yyvsp[-1].col)->set_space((yyvsp[-3].n)); (yyval.col) = (yyvsp[-1].col); } +-#line 1874 "src/preproc/eqn/eqn.cpp" /* yacc.c:1645 */ ++#line 1889 "src/preproc/eqn/eqn.cpp" + break; + + case 67: +-#line 305 "../src/preproc/eqn/eqn.ypp" /* yacc.c:1645 */ ++#line 309 "src/preproc/eqn/eqn.ypp" + { (yyvsp[0].col)->set_alignment(CENTER_ALIGN); (yyval.col) = (yyvsp[0].col); } +-#line 1880 "src/preproc/eqn/eqn.cpp" /* yacc.c:1645 */ ++#line 1895 "src/preproc/eqn/eqn.cpp" + break; + + case 68: +-#line 307 "../src/preproc/eqn/eqn.ypp" /* yacc.c:1645 */ ++#line 311 "src/preproc/eqn/eqn.ypp" + { (yyvsp[0].col)->set_alignment(LEFT_ALIGN); (yyval.col) = (yyvsp[0].col); } +-#line 1886 "src/preproc/eqn/eqn.cpp" /* yacc.c:1645 */ ++#line 1901 "src/preproc/eqn/eqn.cpp" + break; + + case 69: +-#line 309 "../src/preproc/eqn/eqn.ypp" /* yacc.c:1645 */ ++#line 313 "src/preproc/eqn/eqn.ypp" + { (yyvsp[0].col)->set_alignment(RIGHT_ALIGN); (yyval.col) = (yyvsp[0].col); } +-#line 1892 "src/preproc/eqn/eqn.cpp" /* yacc.c:1645 */ ++#line 1907 "src/preproc/eqn/eqn.cpp" + break; + + case 70: +-#line 311 "../src/preproc/eqn/eqn.ypp" /* yacc.c:1645 */ ++#line 315 "src/preproc/eqn/eqn.ypp" + { (yyvsp[0].col)->set_alignment(CENTER_ALIGN); (yyval.col) = (yyvsp[0].col); } +-#line 1898 "src/preproc/eqn/eqn.cpp" /* yacc.c:1645 */ ++#line 1913 "src/preproc/eqn/eqn.cpp" + break; + + case 71: +-#line 315 "../src/preproc/eqn/eqn.ypp" /* yacc.c:1645 */ ++#line 319 "src/preproc/eqn/eqn.ypp" + { (yyval.str) = (yyvsp[0].str); } +-#line 1904 "src/preproc/eqn/eqn.cpp" /* yacc.c:1645 */ ++#line 1919 "src/preproc/eqn/eqn.cpp" + break; + + case 72: +-#line 317 "../src/preproc/eqn/eqn.ypp" /* yacc.c:1645 */ ++#line 321 "src/preproc/eqn/eqn.ypp" + { (yyval.str) = (yyvsp[0].str); } +-#line 1910 "src/preproc/eqn/eqn.cpp" /* yacc.c:1645 */ ++#line 1925 "src/preproc/eqn/eqn.cpp" + break; + + case 73: +-#line 322 "../src/preproc/eqn/eqn.ypp" /* yacc.c:1645 */ ++#line 326 "src/preproc/eqn/eqn.ypp" + { (yyval.str) = (yyvsp[0].str); } +-#line 1916 "src/preproc/eqn/eqn.cpp" /* yacc.c:1645 */ ++#line 1931 "src/preproc/eqn/eqn.cpp" + break; + + case 74: +-#line 324 "../src/preproc/eqn/eqn.ypp" /* yacc.c:1645 */ ++#line 328 "src/preproc/eqn/eqn.ypp" + { (yyval.str) = strsave("{"); } +-#line 1922 "src/preproc/eqn/eqn.cpp" /* yacc.c:1645 */ ++#line 1937 "src/preproc/eqn/eqn.cpp" + break; + + case 75: +-#line 326 "../src/preproc/eqn/eqn.ypp" /* yacc.c:1645 */ ++#line 330 "src/preproc/eqn/eqn.ypp" + { (yyval.str) = strsave("}"); } +-#line 1928 "src/preproc/eqn/eqn.cpp" /* yacc.c:1645 */ ++#line 1943 "src/preproc/eqn/eqn.cpp" + break; + + +-#line 1932 "src/preproc/eqn/eqn.cpp" /* yacc.c:1645 */ ++#line 1947 "src/preproc/eqn/eqn.cpp" ++ + default: break; + } + /* User semantic actions sometimes alter yychar, and that requires +@@ -2042,12 +2058,10 @@ yyerrlab: + | yyerrorlab -- error raised explicitly by YYERROR. | + `---------------------------------------------------*/ + yyerrorlab: +- +- /* Pacify compilers like GCC when the user code never invokes +- YYERROR and the label yyerrorlab therefore never appears in user +- code. */ +- if (/*CONSTCOND*/ 0) +- goto yyerrorlab; ++ /* Pacify compilers when the user code never invokes YYERROR and the ++ label yyerrorlab therefore never appears in user code. */ ++ if (0) ++ YYERROR; + + /* Do not reclaim the symbols of the rule whose action triggered + this YYERROR. */ +@@ -2109,6 +2123,7 @@ yyacceptlab: + yyresult = 0; + goto yyreturn; + ++ + /*-----------------------------------. + | yyabortlab -- YYABORT comes here. | + `-----------------------------------*/ +@@ -2116,6 +2131,7 @@ yyabortlab: + yyresult = 1; + goto yyreturn; + ++ + #if !defined yyoverflow || YYERROR_VERBOSE + /*-------------------------------------------------. + | yyexhaustedlab -- memory exhaustion comes here. | +@@ -2126,6 +2142,10 @@ yyexhaustedlab: + /* Fall through. */ + #endif + ++ ++/*-----------------------------------------------------. ++| yyreturn -- parsing is finished, return the result. | ++`-----------------------------------------------------*/ + yyreturn: + if (yychar != YYEMPTY) + { +@@ -2155,5 +2175,5 @@ yyreturn: + #endif + return yyresult; + } +-#line 329 "../src/preproc/eqn/eqn.ypp" /* yacc.c:1903 */ ++#line 333 "src/preproc/eqn/eqn.ypp" + +diff --git a/src/preproc/eqn/eqn.hpp b/src/preproc/eqn/eqn.hpp +index 32a32a5..9a092c1 100644 +--- a/src/preproc/eqn/eqn.hpp ++++ b/src/preproc/eqn/eqn.hpp +@@ -1,8 +1,9 @@ +-/* A Bison parser, made by GNU Bison 3.2. */ ++/* A Bison parser, made by GNU Bison 3.4.1. */ + + /* Bison interface for Yacc-like parsers in C + +- Copyright (C) 1984, 1989-1990, 2000-2015, 2018 Free Software Foundation, Inc. ++ Copyright (C) 1984, 1989-1990, 2000-2015, 2018-2019 Free Software Foundation, ++ Inc. + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by +@@ -170,10 +171,9 @@ extern int yydebug; + + /* Value type. */ + #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED +- + union YYSTYPE + { +-#line 30 "../src/preproc/eqn/eqn.ypp" /* yacc.c:1906 */ ++#line 34 "src/preproc/eqn/eqn.ypp" + + char *str; + box *b; +@@ -182,9 +182,9 @@ union YYSTYPE + int n; + column *col; + +-#line 186 "src/preproc/eqn/eqn.hpp" /* yacc.c:1906 */ +-}; ++#line 186 "src/preproc/eqn/eqn.hpp" + ++}; + typedef union YYSTYPE YYSTYPE; + # define YYSTYPE_IS_TRIVIAL 1 + # define YYSTYPE_IS_DECLARED 1 +diff --git a/src/preproc/eqn/eqn.ypp b/src/preproc/eqn/eqn.ypp +index fb318c3..b7b647e 100644 +--- a/src/preproc/eqn/eqn.ypp ++++ b/src/preproc/eqn/eqn.ypp +@@ -16,6 +16,10 @@ for more details. + You should have received a copy of the GNU General Public License + along with this program. If not, see . */ + %{ ++#if HAVE_CONFIG_H ++# include ++#endif ++ + #include + #include + #include +diff --git a/src/preproc/eqn/other.cpp b/src/preproc/eqn/other.cpp +index 8db993f..38db396 100644 +--- a/src/preproc/eqn/other.cpp ++++ b/src/preproc/eqn/other.cpp +@@ -17,6 +17,10 @@ for more details. + You should have received a copy of the GNU General Public License + along with this program. If not, see . */ + ++#if HAVE_CONFIG_H ++# include ++#endif ++ + #include + + #include "eqn.h" +diff --git a/src/preproc/eqn/text.cpp b/src/preproc/eqn/text.cpp +index f3d06f9..3b244d5 100644 +--- a/src/preproc/eqn/text.cpp ++++ b/src/preproc/eqn/text.cpp +@@ -17,6 +17,10 @@ for more details. + You should have received a copy of the GNU General Public License + along with this program. If not, see . */ + ++#if HAVE_CONFIG_H ++# include ++#endif ++ + #include + #include + #include "eqn.h" +diff --git a/src/preproc/pic/object.cpp b/src/preproc/pic/object.cpp +index d8ba610..f26a831 100644 +--- a/src/preproc/pic/object.cpp ++++ b/src/preproc/pic/object.cpp +@@ -17,6 +17,10 @@ for more details. + You should have received a copy of the GNU General Public License + along with this program. If not, see . */ + ++#if HAVE_CONFIG_H ++# include ++#endif ++ + #include + + #include "pic.h" +-- +2.22.0 + diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/groff/groff_1.22.4.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-extended/groff/groff_1.22.4.bb index a190230b..082597f6 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/groff/groff_1.22.4.bb +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-extended/groff/groff_1.22.4.bb @@ -11,6 +11,7 @@ SRC_URI = "${GNU_MIRROR}/groff/groff-${PV}.tar.gz \ file://0001-replace-perl-w-with-use-warnings.patch \ file://groff-not-search-fonts-on-build-host.patch \ file://0001-support-musl.patch \ + file://0001-Include-config.h.patch \ " SRC_URI[md5sum] = "08fb04335e2f5e73f23ea4c3adbf0c5f" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/gzip/gzip_1.10.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-extended/gzip/gzip_1.10.bb index 6a5b2459..50dad7bf 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/gzip/gzip_1.10.bb +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-extended/gzip/gzip_1.10.bb @@ -12,9 +12,9 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504 \ PROVIDES_append_class-native = " gzip-replacement-native" -RDEPENDS_${PN}-ptest += "make" +RDEPENDS_${PN}-ptest += "make perl perl-ptest grep diffutils" -BBCLASSEXTEND = "native" +BBCLASSEXTEND = "native nativesdk" inherit ptest diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/images/core-image-lsb-dev.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-extended/images/core-image-lsb-dev.bb deleted file mode 100644 index d2dc9e2b..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/images/core-image-lsb-dev.bb +++ /dev/null @@ -1,7 +0,0 @@ -require core-image-lsb.bb - -DESCRIPTION = "Basic image without X support suitable for development work. It \ -can be used for customization and implementations that conform to Linux \ -Standard Base (LSB)." - -IMAGE_FEATURES += "dev-pkgs" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/images/core-image-lsb-sdk.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-extended/images/core-image-lsb-sdk.bb deleted file mode 100644 index a3d602ed..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/images/core-image-lsb-sdk.bb +++ /dev/null @@ -1,12 +0,0 @@ -require core-image-lsb.bb - -DESCRIPTION = "Basic image without X support suitable for Linux Standard Base \ -(LSB) implementations. It includes the full meta-toolchain, plus development \ -headers and libraries to form a standalone SDK." - -IMAGE_FEATURES += "tools-sdk dev-pkgs tools-debug eclipse-debug tools-profile tools-testapps debug-tweaks" - -IMAGE_INSTALL += "kernel-devsrc" - -# Reduce this to try and keep below the 4GB image size for now -IMAGE_OVERHEAD_FACTOR = "1.2" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/images/core-image-lsb.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-extended/images/core-image-lsb.bb deleted file mode 100644 index ab61c6e6..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/images/core-image-lsb.bb +++ /dev/null @@ -1,14 +0,0 @@ -DESCRIPTION = "An image containing packages that are required to conform \ -to the Linux Standard Base (LSB) specification." - -IMAGE_FEATURES += "splash ssh-server-openssh hwcodecs package-management" - -IMAGE_INSTALL = "\ - ${CORE_IMAGE_BASE_INSTALL} \ - packagegroup-core-full-cmdline \ - packagegroup-core-lsb \ - " - -inherit core-image distro_features_check - -REQUIRED_DISTRO_FEATURES = "pam" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/iptables/iptables/0003-extensions-format-security-fixes-in-libipt_icmp.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-extended/iptables/iptables/0003-extensions-format-security-fixes-in-libipt_icmp.patch deleted file mode 100644 index e26594d1..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/iptables/iptables/0003-extensions-format-security-fixes-in-libipt_icmp.patch +++ /dev/null @@ -1,61 +0,0 @@ -From 907e429d7548157016cd51aba4adc5d0c7d9f816 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Adam=20Go=C5=82=C4=99biowski?= -Date: Wed, 14 Nov 2018 07:35:28 +0100 -Subject: extensions: format-security fixes in libip[6]t_icmp -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -commit 61d6c3834de3 ("xtables: add 'printf' attribute to xlate_add") -introduced support for gcc feature to check format string against passed -argument. This commit adds missing bits to extenstions's libipt_icmp.c -and libip6t_icmp6.c that were causing build to fail. - -Fixes: 61d6c3834de3 ("xtables: add 'printf' attribute to xlate_add") -Signed-off-by: Adam Gołębiowski -Signed-off-by: Pablo Neira Ayuso - -Upstream-Status: Backport ---- - extensions/libip6t_icmp6.c | 4 ++-- - extensions/libipt_icmp.c | 2 +- - 2 files changed, 3 insertions(+), 3 deletions(-) - -diff --git a/extensions/libip6t_icmp6.c b/extensions/libip6t_icmp6.c -index 45a71875..cc7bfaeb 100644 ---- a/extensions/libip6t_icmp6.c -+++ b/extensions/libip6t_icmp6.c -@@ -230,7 +230,7 @@ static unsigned int type_xlate_print(struct xt_xlate *xl, unsigned int icmptype, - type_name = icmp6_type_xlate(icmptype); - - if (type_name) { -- xt_xlate_add(xl, type_name); -+ xt_xlate_add(xl, "%s", type_name); - } else { - for (i = 0; i < ARRAY_SIZE(icmpv6_codes); ++i) - if (icmpv6_codes[i].type == icmptype && -@@ -239,7 +239,7 @@ static unsigned int type_xlate_print(struct xt_xlate *xl, unsigned int icmptype, - break; - - if (i != ARRAY_SIZE(icmpv6_codes)) -- xt_xlate_add(xl, icmpv6_codes[i].name); -+ xt_xlate_add(xl, "%s", icmpv6_codes[i].name); - else - return 0; - } -diff --git a/extensions/libipt_icmp.c b/extensions/libipt_icmp.c -index 54189976..e76257c5 100644 ---- a/extensions/libipt_icmp.c -+++ b/extensions/libipt_icmp.c -@@ -236,7 +236,7 @@ static unsigned int type_xlate_print(struct xt_xlate *xl, unsigned int icmptype, - if (icmp_codes[i].type == icmptype && - icmp_codes[i].code_min == code_min && - icmp_codes[i].code_max == code_max) { -- xt_xlate_add(xl, icmp_codes[i].name); -+ xt_xlate_add(xl, "%s", icmp_codes[i].name); - return 1; - } - } --- -cgit v1.2.1 - diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/iptables/iptables/iptables.rules b/Contrib-Inspur/openbmc/poky/meta/recipes-extended/iptables/iptables/iptables.rules new file mode 100644 index 00000000..e69de29b diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/iptables/iptables/iptables.service b/Contrib-Inspur/openbmc/poky/meta/recipes-extended/iptables/iptables/iptables.service new file mode 100644 index 00000000..041316e4 --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-extended/iptables/iptables/iptables.service @@ -0,0 +1,13 @@ +[Unit] +Description=Packet Filtering Framework +Before=network-pre.target +Wants=network-pre.target + +[Service] +Type=oneshot +ExecStart=@SBINDIR@/iptables-restore /etc/iptables/iptables.rules +ExecReload=@SBINDIR@/iptables-restore /etc/iptables/iptables.rules +RemainAfterExit=yes + +[Install] +WantedBy=multi-user.target diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/iptables/iptables_1.8.2.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-extended/iptables/iptables_1.8.2.bb deleted file mode 100644 index ad2c1a6f..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/iptables/iptables_1.8.2.bb +++ /dev/null @@ -1,65 +0,0 @@ -SUMMARY = "Tools for managing kernel packet filtering capabilities" -DESCRIPTION = "iptables is the userspace command line program used to configure and control network packet \ -filtering code in Linux." -HOMEPAGE = "http://www.netfilter.org/" -BUGTRACKER = "http://bugzilla.netfilter.org/" -LICENSE = "GPLv2+" -LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263\ - file://iptables/iptables.c;beginline=13;endline=25;md5=c5cffd09974558cf27d0f763df2a12dc" - -SRC_URI = "http://netfilter.org/projects/iptables/files/iptables-${PV}.tar.bz2 \ - file://0001-configure-Add-option-to-enable-disable-libnfnetlink.patch \ - file://0002-configure.ac-only-check-conntrack-when-libnfnetlink-enabled.patch \ - file://0003-extensions-format-security-fixes-in-libipt_icmp.patch \ -" - -SRC_URI[md5sum] = "944558e88ddcc3b9b0d9550070fa3599" -SRC_URI[sha256sum] = "a3778b50ed1a3256f9ca975de82c2204e508001fc2471238c8c97f3d1c4c12af" - -inherit autotools pkgconfig - -EXTRA_OECONF = "--with-kernel=${STAGING_INCDIR}" - -PACKAGECONFIG ?= "${@bb.utils.filter('DISTRO_FEATURES', 'ipv6', d)}" - -PACKAGECONFIG[ipv6] = "--enable-ipv6,--disable-ipv6," - -# libnfnetlink recipe is in meta-networking layer -PACKAGECONFIG[libnfnetlink] = "--enable-libnfnetlink,--disable-libnfnetlink,libnfnetlink libnetfilter-conntrack" - -# libnftnl recipe is in meta-networking layer(previously known as libnftables) -PACKAGECONFIG[libnftnl] = "--enable-nftables,--disable-nftables,libnftnl" - -do_configure_prepend() { - # Remove some libtool m4 files - # Keep ax_check_linker_flags.m4 which belongs to autoconf-archive. - rm -f libtool.m4 lt~obsolete.m4 ltoptions.m4 ltsugar.m4 ltversion.m4 -} - -PACKAGES += "${PN}-modules" -PACKAGES_DYNAMIC += "^${PN}-module-.*" - -python populate_packages_prepend() { - modules = do_split_packages(d, '${libdir}/xtables', r'lib(.*)\.so$', '${PN}-module-%s', '${PN} module %s', extra_depends='') - if modules: - metapkg = d.getVar('PN') + '-modules' - d.appendVar('RDEPENDS_' + metapkg, ' ' + ' '.join(modules)) -} - -FILES_${PN} += "${datadir}/xtables" - -ALLOW_EMPTY_${PN}-modules = "1" - -RDEPENDS_${PN} = "${PN}-module-xt-standard" -RRECOMMENDS_${PN} = " \ - ${PN}-modules \ - kernel-module-x-tables \ - kernel-module-ip-tables \ - kernel-module-iptable-filter \ - kernel-module-iptable-nat \ - kernel-module-nf-defrag-ipv4 \ - kernel-module-nf-conntrack \ - kernel-module-nf-conntrack-ipv4 \ - kernel-module-nf-nat \ - kernel-module-ipt-masquerade \ -" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/iptables/iptables_1.8.3.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-extended/iptables/iptables_1.8.3.bb new file mode 100644 index 00000000..ff9fcb1b --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-extended/iptables/iptables_1.8.3.bb @@ -0,0 +1,86 @@ +SUMMARY = "Tools for managing kernel packet filtering capabilities" +DESCRIPTION = "iptables is the userspace command line program used to configure and control network packet \ +filtering code in Linux." +HOMEPAGE = "http://www.netfilter.org/" +BUGTRACKER = "http://bugzilla.netfilter.org/" +LICENSE = "GPLv2+" +LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263\ + file://iptables/iptables.c;beginline=13;endline=25;md5=c5cffd09974558cf27d0f763df2a12dc" + +SRC_URI = "http://netfilter.org/projects/iptables/files/iptables-${PV}.tar.bz2 \ + file://0001-configure-Add-option-to-enable-disable-libnfnetlink.patch \ + file://0002-configure.ac-only-check-conntrack-when-libnfnetlink-enabled.patch \ + file://iptables.service \ + file://iptables.rules \ +" + +SRC_URI[md5sum] = "29de711d15c040c402cf3038c69ff513" +SRC_URI[sha256sum] = "a23cac034181206b4545f4e7e730e76e08b5f3dd78771ba9645a6756de9cdd80" + +inherit autotools pkgconfig systemd + +EXTRA_OECONF = "--with-kernel=${STAGING_INCDIR}" + +PACKAGECONFIG ?= "${@bb.utils.filter('DISTRO_FEATURES', 'ipv6', d)}" + +PACKAGECONFIG[ipv6] = "--enable-ipv6,--disable-ipv6," + +# libnfnetlink recipe is in meta-networking layer +PACKAGECONFIG[libnfnetlink] = "--enable-libnfnetlink,--disable-libnfnetlink,libnfnetlink libnetfilter-conntrack" + +# libnftnl recipe is in meta-networking layer(previously known as libnftables) +PACKAGECONFIG[libnftnl] = "--enable-nftables,--disable-nftables,libnftnl" + +do_configure_prepend() { + # Remove some libtool m4 files + # Keep ax_check_linker_flags.m4 which belongs to autoconf-archive. + rm -f libtool.m4 lt~obsolete.m4 ltoptions.m4 ltsugar.m4 ltversion.m4 +} + +PACKAGES += "${PN}-modules" +PACKAGES_DYNAMIC += "^${PN}-module-.*" + +python populate_packages_prepend() { + modules = do_split_packages(d, '${libdir}/xtables', r'lib(.*)\.so$', '${PN}-module-%s', '${PN} module %s', extra_depends='') + if modules: + metapkg = d.getVar('PN') + '-modules' + d.appendVar('RDEPENDS_' + metapkg, ' ' + ' '.join(modules)) +} + +FILES_${PN} += "${datadir}/xtables" + +# Include the symlinks as well in respective packages +FILES_${PN}-module-xt-conntrack += "${libdir}/xtables/libxt_state.so" +FILES_${PN}-module-xt-ct += "${libdir}/xtables/libxt_NOTRACK.so" + +INSANE_SKIP_${PN}-module-xt-conntrack = "dev-so" +INSANE_SKIP_${PN}-module-xt-ct = "dev-so" + +ALLOW_EMPTY_${PN}-modules = "1" + +do_install_append() { + + install -d ${D}${sysconfdir}/iptables + install -m 0644 ${WORKDIR}/iptables.rules ${D}${sysconfdir}/iptables + + install -d ${D}${systemd_system_unitdir} + install -m 0644 ${WORKDIR}/iptables.service ${D}${systemd_system_unitdir} + + sed -i -e 's,@SBINDIR@,${sbindir},g' ${D}${systemd_system_unitdir}/iptables.service +} + +SYSTEMD_SERVICE_${PN} = "iptables.service" + +RDEPENDS_${PN} = "${PN}-module-xt-standard" +RRECOMMENDS_${PN} = " \ + ${PN}-modules \ + kernel-module-x-tables \ + kernel-module-ip-tables \ + kernel-module-iptable-filter \ + kernel-module-iptable-nat \ + kernel-module-nf-defrag-ipv4 \ + kernel-module-nf-conntrack \ + kernel-module-nf-conntrack-ipv4 \ + kernel-module-nf-nat \ + kernel-module-ipt-masquerade \ +" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/iputils/iputils/ai_canonidn.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-extended/iputils/iputils/ai_canonidn.patch deleted file mode 100644 index cd91267b..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/iputils/iputils/ai_canonidn.patch +++ /dev/null @@ -1,58 +0,0 @@ -From 714e2b458c151c5bdfe93647445cd00dd8e36fff Mon Sep 17 00:00:00 2001 -From: Petr Vorel -Date: Sat, 21 Jul 2018 17:46:14 +0200 -Subject: [PATCH] ping: Fix AI_CANONIDN usage on some systems - -Upstream-Status: Backport -Signed-off-by: Ross Burton - -Commit 99f67db used AI_CANONIDN in a way, which broke compilation on -systems where AI_CANONIDN is not defined in netdb.h (e.g. glibc < 2.3.4, -alternative libcs that don't support IDN: e.g. current musl 1.1.19 and -uClibc-ng 1.0.30) when not using the system libidn2. - -Fixes: 99f67db ping: Fix ping name encoded using ACE on C locale - -Reported-by: Nicholas Fish -Signed-off-by: Petr Vorel - ---- - ping.c | 2 +- - ping.h | 2 +- - 2 files changed, 2 insertions(+), 2 deletions(-) - -diff --git a/ping.c b/ping.c -index 733477f..b241815 100644 ---- a/ping.c -+++ b/ping.c -@@ -207,9 +207,9 @@ main(int argc, char **argv) - - #ifdef USE_IDN - setlocale(LC_ALL, ""); --#endif - if (!strcmp(setlocale(LC_ALL, NULL), "C")) - hints.ai_flags &= ~ AI_CANONIDN; -+#endif - - /* Support being called using `ping4` or `ping6` symlinks */ - if (argv[0][strlen(argv[0])-1] == '4') -diff --git a/ping.h b/ping.h -index 3e09685..8a0c4ef 100644 ---- a/ping.h -+++ b/ping.h -@@ -28,7 +28,6 @@ - #include - #include - #include --#include - - #ifdef CAPABILITIES - #include -@@ -36,6 +35,7 @@ - #endif - - #ifdef USE_IDN -+#include - #include - #define getaddrinfo_flags (AI_CANONNAME | AI_IDN | AI_CANONIDN) - #define getnameinfo_flags NI_IDN diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/iputils/iputils/install.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-extended/iputils/iputils/install.patch deleted file mode 100644 index abfefd7a..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/iputils/iputils/install.patch +++ /dev/null @@ -1,26 +0,0 @@ -From 5c8c3b04d73304679340f893636e87691992053b Mon Sep 17 00:00:00 2001 -From: Ross Burton -Date: Mon, 23 Jul 2018 14:21:03 +0100 -Subject: [PATCH] Add install - -Add a simple install rule so that we always install the binaries that were built. - -Upstream-Status: Inappropriate -Signed-off-by: Ross Burton - ---- - Makefile | 4 ++++ - 1 file changed, 4 insertions(+) - -diff --git a/Makefile b/Makefile -index 17fc5c9..e0c2784 100644 ---- a/Makefile -+++ b/Makefile -@@ -231,3 +231,7 @@ rpm: - @$(RPMBUILD) -ta --define 'current yes' $(RPMTMP)/iputils.tar.bz2 - @rm -f $(RPMTMP)/iputils.tar.bz2 - -+install: -+ for t in $(TARGETS); do \ -+ install -D $$t $(DESTDIR)$(bindir)/$$t; \ -+ done diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/iputils/iputils_s20180629.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-extended/iputils/iputils_s20180629.bb deleted file mode 100644 index eff44be1..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/iputils/iputils_s20180629.bb +++ /dev/null @@ -1,61 +0,0 @@ -SUMMARY = "Network monitoring tools" -DESCRIPTION = "Utilities for the IP protocol, including traceroute6, \ -tracepath, tracepath6, ping, ping6 and arping." -HOMEPAGE = "https://github.com/iputils/iputils" -SECTION = "console/network" - -LICENSE = "BSD & GPLv2+" - -LIC_FILES_CHKSUM = "file://LICENSE;md5=b792e38abdc59f766a3153908f23e766 \ - file://LICENSE.BSD3;md5=0f00d99239d922ffd13cabef83b33444 \ - file://LICENSE.GPL2;md5=b234ee4d69f5fce4486a80fdaf4a4263" - -DEPENDS = "gnutls libcap libgcrypt" - -SRC_URI = "git://github.com/iputils/iputils \ - file://ai_canonidn.patch \ - file://install.patch" -SRCREV = "f6aac8dbe3f8c45c53424854a3312bdd8cdd58d3" - -S = "${WORKDIR}/git" - -UPSTREAM_CHECK_GITTAGREGEX = "(?Ps\d+)" - -EXTRA_OEMAKE = "-e MAKEFLAGS=" - -PACKAGECONFIG ??= "" -PACKAGECONFIG[libidn] = "USE_IDN=yes,USE_IDN=no,libidn2" - -do_compile () { - oe_runmake 'CC=${CC} -D_GNU_SOURCE' VPATH="${STAGING_LIBDIR}:${STAGING_DIR_HOST}/${base_libdir}" ${PACKAGECONFIG_CONFARGS} all -} - -do_install() { - oe_runmake DESTDIR=${D} bindir=${base_bindir} install - for b in ping traceroute6 clockdiff; do - chmod u+s ${D}${base_bindir}/$b - done -} - -inherit update-alternatives - -ALTERNATIVE_PRIORITY = "100" - -ALTERNATIVE_${PN}-ping = "ping" -ALTERNATIVE_LINK_NAME[ping] = "${base_bindir}/ping" - -SPLITPKGS = "${PN}-ping ${PN}-arping ${PN}-tracepath ${PN}-traceroute6 ${PN}-clockdiff ${PN}-tftpd ${PN}-rarpd ${PN}-rdisc" -PACKAGES += "${SPLITPKGS}" - -ALLOW_EMPTY_${PN} = "1" -RDEPENDS_${PN} += "${SPLITPKGS}" - -FILES_${PN} = "" -FILES_${PN}-ping = "${base_bindir}/ping.${BPN}" -FILES_${PN}-arping = "${base_bindir}/arping" -FILES_${PN}-tracepath = "${base_bindir}/tracepath" -FILES_${PN}-traceroute6 = "${base_bindir}/traceroute6" -FILES_${PN}-clockdiff = "${base_bindir}/clockdiff" -FILES_${PN}-tftpd = "${base_bindir}/tftpd" -FILES_${PN}-rarpd = "${base_bindir}/rarpd" -FILES_${PN}-rdisc = "${base_bindir}/rdisc" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/iputils/iputils_s20190709.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-extended/iputils/iputils_s20190709.bb new file mode 100644 index 00000000..3f9e9917 --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-extended/iputils/iputils_s20190709.bb @@ -0,0 +1,59 @@ +SUMMARY = "Network monitoring tools" +DESCRIPTION = "Utilities for the IP protocol, including traceroute6, \ +tracepath, tracepath6, ping, ping6 and arping." +HOMEPAGE = "https://github.com/iputils/iputils" +SECTION = "console/network" + +LICENSE = "BSD & GPLv2+" + +LIC_FILES_CHKSUM = "file://LICENSE;md5=55aa8c9fcad0691cef0ecd420361e390" + +DEPENDS = "gnutls" + +SRC_URI = "git://github.com/iputils/iputils" +SRCREV = "13e00847176aa23683d68fce1d17ffb523510946" + +S = "${WORKDIR}/git" + +UPSTREAM_CHECK_GITTAGREGEX = "(?Ps\d+)" + +# Fixed in 2000-10-10, but the versioning of iputils +# breaks the version order. +CVE_CHECK_WHITELIST += "CVE-2000-1213 CVE-2000-1214" + +PACKAGECONFIG ??= "libcap libgcrypt rarpd traceroute6" +PACKAGECONFIG[libcap] = "-DUSE_CAP=true, -DUSE_CAP=false, libcap" +PACKAGECONFIG[libgcrypt] = "-DUSE_CRYPTO=gcrypt, -DUSE_CRYPTO=none, libgcrypt" +PACKAGECONFIG[libidn] = "-DUSE_IDN=true, -DUSE_IDN=false, libidn2" +PACKAGECONFIG[gettext] = "-DUSE_GETTEXT=true, -DUSE_GETTEXT=false, gettext" +PACKAGECONFIG[rarpd] = "-DBUILD_RARPD=true,-DBUILD_RARPD=false," +PACKAGECONFIG[traceroute6] = "-DBUILD_TRACEROUTE6=true,-DBUILD_TRACEROUTE6=false," +PACKAGECONFIG[docs] = "-DBUILD_HTML_MANS=true -DBUILD_MANS=true,-DBUILD_HTML_MANS=false -DBUILD_MANS=false, libxslt" + +inherit meson update-alternatives + +EXTRA_OEMESON += "--prefix=${root_prefix}/" + +ALTERNATIVE_PRIORITY = "100" + +ALTERNATIVE_${PN}-ping = "ping" +ALTERNATIVE_LINK_NAME[ping] = "${base_bindir}/ping" + +SPLITPKGS = "${PN}-ping ${PN}-arping ${PN}-tracepath ${PN}-traceroute6 ${PN}-clockdiff ${PN}-tftpd ${PN}-rarpd ${PN}-rdisc ${PN}-ninfod" +PACKAGES += "${SPLITPKGS}" + +ALLOW_EMPTY_${PN} = "1" +ALLOW_EMPTY_${PN}-rarpd = "1" +ALLOW_EMPTY_${PN}-traceroute6 = "1" +RDEPENDS_${PN} += "${SPLITPKGS}" + +FILES_${PN} = "" +FILES_${PN}-ping = "${base_bindir}/ping.${BPN}" +FILES_${PN}-arping = "${base_bindir}/arping" +FILES_${PN}-tracepath = "${base_bindir}/tracepath" +FILES_${PN}-traceroute6 = "${base_bindir}/traceroute6" +FILES_${PN}-clockdiff = "${base_bindir}/clockdiff" +FILES_${PN}-tftpd = "${base_bindir}/tftpd" +FILES_${PN}-rarpd = "${base_sbindir}/rarpd" +FILES_${PN}-rdisc = "${base_sbindir}/rdisc" +FILES_${PN}-ninfod = "${base_sbindir}/ninfod ${sysconfdir}/init.d/ninfod.sh" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/libarchive/libarchive/CVE-2018-1000877.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-extended/libarchive/libarchive/CVE-2018-1000877.patch deleted file mode 100644 index ce638370..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/libarchive/libarchive/CVE-2018-1000877.patch +++ /dev/null @@ -1,38 +0,0 @@ -CVE: CVE-2018-1000877 -Upstream-Status: Backport -Signed-off-by: Ross Burton - -From 021efa522ad729ff0f5806c4ce53e4a6cc1daa31 Mon Sep 17 00:00:00 2001 -From: Daniel Axtens -Date: Tue, 20 Nov 2018 17:56:29 +1100 -Subject: [PATCH] Avoid a double-free when a window size of 0 is specified - -new_size can be 0 with a malicious or corrupted RAR archive. - -realloc(area, 0) is equivalent to free(area), so the region would -be free()d here and the free()d again in the cleanup function. - -Found with a setup running AFL, afl-rb, and qsym. ---- - libarchive/archive_read_support_format_rar.c | 5 +++++ - 1 file changed, 5 insertions(+) - -diff --git a/libarchive/archive_read_support_format_rar.c b/libarchive/archive_read_support_format_rar.c -index 23452222..6f419c27 100644 ---- a/libarchive/archive_read_support_format_rar.c -+++ b/libarchive/archive_read_support_format_rar.c -@@ -2300,6 +2300,11 @@ parse_codes(struct archive_read *a) - new_size = DICTIONARY_MAX_SIZE; - else - new_size = rar_fls((unsigned int)rar->unp_size) << 1; -+ if (new_size == 0) { -+ archive_set_error(&a->archive, ARCHIVE_ERRNO_FILE_FORMAT, -+ "Zero window size is invalid."); -+ return (ARCHIVE_FATAL); -+ } - new_window = realloc(rar->lzss.window, new_size); - if (new_window == NULL) { - archive_set_error(&a->archive, ENOMEM, --- -2.20.0 - diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/libarchive/libarchive/CVE-2018-1000878.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-extended/libarchive/libarchive/CVE-2018-1000878.patch deleted file mode 100644 index 7468fd3c..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/libarchive/libarchive/CVE-2018-1000878.patch +++ /dev/null @@ -1,79 +0,0 @@ -CVE: CVE-2018-1000878 -Upstream-Status: Backport -Signed-off-by: Ross Burton - -From bfcfe6f04ed20db2504db8a254d1f40a1d84eb28 Mon Sep 17 00:00:00 2001 -From: Daniel Axtens -Date: Tue, 4 Dec 2018 00:55:22 +1100 -Subject: [PATCH] rar: file split across multi-part archives must match - -Fuzzing uncovered some UAF and memory overrun bugs where a file in a -single file archive reported that it was split across multiple -volumes. This was caused by ppmd7 operations calling -rar_br_fillup. This would invoke rar_read_ahead, which would in some -situations invoke archive_read_format_rar_read_header. That would -check the new file name against the old file name, and if they didn't -match up it would free the ppmd7 buffer and allocate a new -one. However, because the ppmd7 decoder wasn't actually done with the -buffer, it would continue to used the freed buffer. Both reads and -writes to the freed region can be observed. - -This is quite tricky to solve: once the buffer has been freed it is -too late, as the ppmd7 decoder functions almost universally assume -success - there's no way for ppmd_read to signal error, nor are there -good ways for functions like Range_Normalise to propagate them. So we -can't detect after the fact that we're in an invalid state - e.g. by -checking rar->cursor, we have to prevent ourselves from ever ending up -there. So, when we are in the dangerous part or rar_read_ahead that -assumes a valid split, we set a flag force read_header to either go -down the path for split files or bail. This means that the ppmd7 -decoder keeps a valid buffer and just runs out of data. - -Found with a combination of AFL, afl-rb and qsym. ---- - libarchive/archive_read_support_format_rar.c | 9 +++++++++ - 1 file changed, 9 insertions(+) - -diff --git a/libarchive/archive_read_support_format_rar.c b/libarchive/archive_read_support_format_rar.c -index 6f419c27..a8cc5c94 100644 ---- a/libarchive/archive_read_support_format_rar.c -+++ b/libarchive/archive_read_support_format_rar.c -@@ -258,6 +258,7 @@ struct rar - struct data_block_offsets *dbo; - unsigned int cursor; - unsigned int nodes; -+ char filename_must_match; - - /* LZSS members */ - struct huffman_code maincode; -@@ -1560,6 +1561,12 @@ read_header(struct archive_read *a, struct archive_entry *entry, - } - return ret; - } -+ else if (rar->filename_must_match) -+ { -+ archive_set_error(&a->archive, ARCHIVE_ERRNO_FILE_FORMAT, -+ "Mismatch of file parts split across multi-volume archive"); -+ return (ARCHIVE_FATAL); -+ } - - rar->filename_save = (char*)realloc(rar->filename_save, - filename_size + 1); -@@ -2933,12 +2940,14 @@ rar_read_ahead(struct archive_read *a, size_t min, ssize_t *avail) - else if (*avail == 0 && rar->main_flags & MHD_VOLUME && - rar->file_flags & FHD_SPLIT_AFTER) - { -+ rar->filename_must_match = 1; - ret = archive_read_format_rar_read_header(a, a->entry); - if (ret == (ARCHIVE_EOF)) - { - rar->has_endarc_header = 1; - ret = archive_read_format_rar_read_header(a, a->entry); - } -+ rar->filename_must_match = 0; - if (ret != (ARCHIVE_OK)) - return NULL; - return rar_read_ahead(a, min, avail); --- -2.20.0 - diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/libarchive/libarchive/CVE-2018-1000879.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-extended/libarchive/libarchive/CVE-2018-1000879.patch deleted file mode 100644 index 9f25932a..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/libarchive/libarchive/CVE-2018-1000879.patch +++ /dev/null @@ -1,50 +0,0 @@ -CVE: CVE-2018-1000879 -Upstream-Status: Backport -Signed-off-by: Ross Burton - -From 15bf44fd2c1ad0e3fd87048b3fcc90c4dcff1175 Mon Sep 17 00:00:00 2001 -From: Daniel Axtens -Date: Tue, 4 Dec 2018 14:29:42 +1100 -Subject: [PATCH] Skip 0-length ACL fields - -Currently, it is possible to create an archive that crashes bsdtar -with a malformed ACL: - -Program received signal SIGSEGV, Segmentation fault. -archive_acl_from_text_l (acl=, text=0x7e2e92 "", want_type=, sc=) at libarchive/archive_acl.c:1726 -1726 switch (*s) { -(gdb) p n -$1 = 1 -(gdb) p field[n] -$2 = {start = 0x0, end = 0x0} - -Stop this by checking that the length is not zero before beginning -the switch statement. - -I am pretty sure this is the bug mentioned in the qsym paper [1], -and I was able to replicate it with a qsym + AFL + afl-rb setup. - -[1] https://www.usenix.org/conference/usenixsecurity18/presentation/yun ---- - libarchive/archive_acl.c | 5 +++++ - 1 file changed, 5 insertions(+) - -diff --git a/libarchive/archive_acl.c b/libarchive/archive_acl.c -index 512beee1..7beeee86 100644 ---- a/libarchive/archive_acl.c -+++ b/libarchive/archive_acl.c -@@ -1723,6 +1723,11 @@ archive_acl_from_text_l(struct archive_acl *acl, const char *text, - st = field[n].start + 1; - len = field[n].end - field[n].start; - -+ if (len == 0) { -+ ret = ARCHIVE_WARN; -+ continue; -+ } -+ - switch (*s) { - case 'u': - if (len == 1 || (len == 4 --- -2.20.0 - diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/libarchive/libarchive/CVE-2018-1000880.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-extended/libarchive/libarchive/CVE-2018-1000880.patch deleted file mode 100644 index bc264a12..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/libarchive/libarchive/CVE-2018-1000880.patch +++ /dev/null @@ -1,44 +0,0 @@ -CVE: CVE-2018-1000880 -Upstream-Status: Backport -Signed-off-by: Ross Burton - -From 9c84b7426660c09c18cc349f6d70b5f8168b5680 Mon Sep 17 00:00:00 2001 -From: Daniel Axtens -Date: Tue, 4 Dec 2018 16:33:42 +1100 -Subject: [PATCH] warc: consume data once read - -The warc decoder only used read ahead, it wouldn't actually consume -data that had previously been printed. This means that if you specify -an invalid content length, it will just reprint the same data over -and over and over again until it hits the desired length. - -This means that a WARC resource with e.g. -Content-Length: 666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666665 -but only a few hundred bytes of data, causes a quasi-infinite loop. - -Consume data in subsequent calls to _warc_read. - -Found with an AFL + afl-rb + qsym setup. ---- - libarchive/archive_read_support_format_warc.c | 5 +++++ - 1 file changed, 5 insertions(+) - -diff --git a/libarchive/archive_read_support_format_warc.c b/libarchive/archive_read_support_format_warc.c -index e8753853..e8fc8428 100644 ---- a/libarchive/archive_read_support_format_warc.c -+++ b/libarchive/archive_read_support_format_warc.c -@@ -386,6 +386,11 @@ _warc_read(struct archive_read *a, const void **buf, size_t *bsz, int64_t *off) - return (ARCHIVE_EOF); - } - -+ if (w->unconsumed) { -+ __archive_read_consume(a, w->unconsumed); -+ w->unconsumed = 0U; -+ } -+ - rab = __archive_read_ahead(a, 1U, &nrd); - if (nrd < 0) { - *bsz = 0U; --- -2.20.0 - diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/libarchive/libarchive/CVE-2019-1000019.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-extended/libarchive/libarchive/CVE-2019-1000019.patch deleted file mode 100644 index 7f39893c..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/libarchive/libarchive/CVE-2019-1000019.patch +++ /dev/null @@ -1,59 +0,0 @@ -CVE: CVE-2019-1000019 -Upstream-Status: Backport -Signed-off-by: Ross Burton - -From 65a23f5dbee4497064e9bb467f81138a62b0dae1 Mon Sep 17 00:00:00 2001 -From: Daniel Axtens -Date: Tue, 1 Jan 2019 16:01:40 +1100 -Subject: [PATCH 2/2] 7zip: fix crash when parsing certain archives - -Fuzzing with CRCs disabled revealed that a call to get_uncompressed_data() -would sometimes fail to return at least 'minimum' bytes. This can cause -the crc32() invocation in header_bytes to read off into invalid memory. - -A specially crafted archive can use this to cause a crash. - -An ASAN trace is below, but ASAN is not required - an uninstrumented -binary will also crash. - -==7719==ERROR: AddressSanitizer: SEGV on unknown address 0x631000040000 (pc 0x7fbdb3b3ec1d bp 0x7ffe77a51310 sp 0x7ffe77a51150 T0) -==7719==The signal is caused by a READ memory access. - #0 0x7fbdb3b3ec1c in crc32_z (/lib/x86_64-linux-gnu/libz.so.1+0x2c1c) - #1 0x84f5eb in header_bytes (/tmp/libarchive/bsdtar+0x84f5eb) - #2 0x856156 in read_Header (/tmp/libarchive/bsdtar+0x856156) - #3 0x84e134 in slurp_central_directory (/tmp/libarchive/bsdtar+0x84e134) - #4 0x849690 in archive_read_format_7zip_read_header (/tmp/libarchive/bsdtar+0x849690) - #5 0x5713b7 in _archive_read_next_header2 (/tmp/libarchive/bsdtar+0x5713b7) - #6 0x570e63 in _archive_read_next_header (/tmp/libarchive/bsdtar+0x570e63) - #7 0x6f08bd in archive_read_next_header (/tmp/libarchive/bsdtar+0x6f08bd) - #8 0x52373f in read_archive (/tmp/libarchive/bsdtar+0x52373f) - #9 0x5257be in tar_mode_x (/tmp/libarchive/bsdtar+0x5257be) - #10 0x51daeb in main (/tmp/libarchive/bsdtar+0x51daeb) - #11 0x7fbdb27cab96 in __libc_start_main /build/glibc-OTsEL5/glibc-2.27/csu/../csu/libc-start.c:310 - #12 0x41dd09 in _start (/tmp/libarchive/bsdtar+0x41dd09) - -This was primarly done with afl and FairFuzz. Some early corpus entries -may have been generated by qsym. ---- - libarchive/archive_read_support_format_7zip.c | 8 +------- - 1 file changed, 1 insertion(+), 7 deletions(-) - -diff --git a/libarchive/archive_read_support_format_7zip.c b/libarchive/archive_read_support_format_7zip.c -index bccbf8966..b6d1505d3 100644 ---- a/libarchive/archive_read_support_format_7zip.c -+++ b/libarchive/archive_read_support_format_7zip.c -@@ -2964,13 +2964,7 @@ get_uncompressed_data(struct archive_read *a, const void **buff, size_t size, - if (zip->codec == _7Z_COPY && zip->codec2 == (unsigned long)-1) { - /* Copy mode. */ - -- /* -- * Note: '1' here is a performance optimization. -- * Recall that the decompression layer returns a count of -- * available bytes; asking for more than that forces the -- * decompressor to combine reads by copying data. -- */ -- *buff = __archive_read_ahead(a, 1, &bytes_avail); -+ *buff = __archive_read_ahead(a, minimum, &bytes_avail); - if (bytes_avail <= 0) { - archive_set_error(&a->archive, - ARCHIVE_ERRNO_FILE_FORMAT, diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/libarchive/libarchive/CVE-2019-1000020.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-extended/libarchive/libarchive/CVE-2019-1000020.patch deleted file mode 100644 index 25a76fdc..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/libarchive/libarchive/CVE-2019-1000020.patch +++ /dev/null @@ -1,61 +0,0 @@ -CVE: CVE-2019-1000020 -Upstream-Status: Backport -Signed-off-by: Ross Burton - -From 8312eaa576014cd9b965012af51bc1f967b12423 Mon Sep 17 00:00:00 2001 -From: Daniel Axtens -Date: Tue, 1 Jan 2019 17:10:49 +1100 -Subject: [PATCH 1/2] iso9660: Fail when expected Rockridge extensions is - missing - -A corrupted or malicious ISO9660 image can cause read_CE() to loop -forever. - -read_CE() calls parse_rockridge(), expecting a Rockridge extension -to be read. However, parse_rockridge() is structured as a while -loop starting with a sanity check, and if the sanity check fails -before the loop has run, the function returns ARCHIVE_OK without -advancing the position in the file. This causes read_CE() to retry -indefinitely. - -Make parse_rockridge() return ARCHIVE_WARN if it didn't read an -extension. As someone with no real knowledge of the format, this -seems more apt than ARCHIVE_FATAL, but both the call-sites escalate -it to a fatal error immediately anyway. - -Found with a combination of AFL, afl-rb (FairFuzz) and qsym. ---- - libarchive/archive_read_support_format_iso9660.c | 11 ++++++++++- - 1 file changed, 10 insertions(+), 1 deletion(-) - -diff --git a/libarchive/archive_read_support_format_iso9660.c b/libarchive/archive_read_support_format_iso9660.c -index 28acfefbb..bad8f1dfe 100644 ---- a/libarchive/archive_read_support_format_iso9660.c -+++ b/libarchive/archive_read_support_format_iso9660.c -@@ -2102,6 +2102,7 @@ parse_rockridge(struct archive_read *a, struct file_info *file, - const unsigned char *p, const unsigned char *end) - { - struct iso9660 *iso9660; -+ int entry_seen = 0; - - iso9660 = (struct iso9660 *)(a->format->data); - -@@ -2257,8 +2258,16 @@ parse_rockridge(struct archive_read *a, struct file_info *file, - } - - p += p[2]; -+ entry_seen = 1; -+ } -+ -+ if (entry_seen) -+ return (ARCHIVE_OK); -+ else { -+ archive_set_error(&a->archive, ARCHIVE_ERRNO_FILE_FORMAT, -+ "Tried to parse Rockridge extensions, but none found"); -+ return (ARCHIVE_WARN); - } -- return (ARCHIVE_OK); - } - - static int - diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/libarchive/libarchive/bug1066.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-extended/libarchive/libarchive/bug1066.patch deleted file mode 100644 index 0a662b57..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/libarchive/libarchive/bug1066.patch +++ /dev/null @@ -1,54 +0,0 @@ -libarchive-3.3.3: Fix bug1066 - -[No upstream tracking] -- https://github.com/libarchive/libarchive/pull/1066 - -archive_write_set_format_*.c: fix out of bounds read on empty string () filename -for guntar, pax and v7tar - -There is an out of bounds read flaw in the archive_write_gnutar_header, -archive_write_pax_header and archive_write_v7tar_header functions which -could leds to cause a denial of service. - -Upstream-Status: Backport [https://github.com/libarchive/libarchive/commit/c246ec5d058a3f70a2d3fb765f92fe9db77b25df] -Bug: 1066 -Signed-off-by: Andrej Valek - -diff --git a/libarchive/archive_write_set_format_gnutar.c b/libarchive/archive_write_set_format_gnutar.c -index 2d858c9..1966c53 100644 ---- a/libarchive/archive_write_set_format_gnutar.c -+++ b/libarchive/archive_write_set_format_gnutar.c -@@ -339,7 +339,7 @@ archive_write_gnutar_header(struct archive_write *a, - * case getting WCS failed. On POSIX, this is a - * normal operation. - */ -- if (p != NULL && p[strlen(p) - 1] != '/') { -+ if (p != NULL && p[0] != '\0' && p[strlen(p) - 1] != '/') { - struct archive_string as; - - archive_string_init(&as); -diff --git a/libarchive/archive_write_set_format_pax.c b/libarchive/archive_write_set_format_pax.c -index 6a301ac..4cfa8ff 100644 ---- a/libarchive/archive_write_set_format_pax.c -+++ b/libarchive/archive_write_set_format_pax.c -@@ -660,7 +660,7 @@ archive_write_pax_header(struct archive_write *a, - * case getting WCS failed. On POSIX, this is a - * normal operation. - */ -- if (p != NULL && p[strlen(p) - 1] != '/') { -+ if (p != NULL && p[0] != '\0' && p[strlen(p) - 1] != '/') { - struct archive_string as; - - archive_string_init(&as); -diff --git a/libarchive/archive_write_set_format_v7tar.c b/libarchive/archive_write_set_format_v7tar.c -index 62b1522..53c0db0 100644 ---- a/libarchive/archive_write_set_format_v7tar.c -+++ b/libarchive/archive_write_set_format_v7tar.c -@@ -284,7 +284,7 @@ archive_write_v7tar_header(struct archive_write *a, struct archive_entry *entry) - * case getting WCS failed. On POSIX, this is a - * normal operation. - */ -- if (p != NULL && p[strlen(p) - 1] != '/') { -+ if (p != NULL && p[0] != '\0' && p[strlen(p) - 1] != '/') { - struct archive_string as; - - archive_string_init(&as); diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/libarchive/libarchive/non-recursive-extract-and-list.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-extended/libarchive/libarchive/non-recursive-extract-and-list.patch deleted file mode 100644 index cd7be512..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/libarchive/libarchive/non-recursive-extract-and-list.patch +++ /dev/null @@ -1,153 +0,0 @@ -From 47f7566f6829c2b14e21bbbba699916de4998c72 Mon Sep 17 00:00:00 2001 -From: Patrick Ohly -Date: Mon, 24 Oct 2016 12:54:48 +0200 -Subject: [PATCH 1/1] non-recursive extract and list - -Sometimes it makes sense to extract or list a directory contained in -an archive without also doing the same for the content of the -directory, i.e. allowing -n (= --no-recursion) in combination with the -x and t modes. - -bsdtar uses the match functionality in libarchive to track include -matches. A new libarchive API call -archive_match_include_directories_recursively() gets introduced to -influence the matching behavior, with the default behavior as before. - -Non-recursive matching can be achieved by anchoring the path match at -both start and end. Asking for a directory which itself isn't in the -archive when in non-recursive mode is an error and handled by the -existing mechanism for tracking unused inclusion entries. - -Upstream-Status: Submitted [https://github.com/libarchive/libarchive/pull/812] - -Signed-off-by: Patrick Ohly - ---- - libarchive/archive.h | 2 ++ - libarchive/archive_match.c | 30 +++++++++++++++++++++++++++++- - tar/bsdtar.1 | 3 +-- - tar/bsdtar.c | 12 ++++++++++-- - 4 files changed, 42 insertions(+), 5 deletions(-) - -diff --git a/libarchive/archive.h b/libarchive/archive.h -index 32710201..59fb4aa6 100644 ---- a/libarchive/archive.h -+++ b/libarchive/archive.h -@@ -1093,6 +1093,8 @@ __LA_DECL int archive_match_excluded(struct archive *, - */ - __LA_DECL int archive_match_path_excluded(struct archive *, - struct archive_entry *); -+/* Control recursive inclusion of directory content when directory is included. Default on. */ -+__LA_DECL int archive_match_include_directories_recursively(struct archive *, int _enabled); - /* Add exclusion pathname pattern. */ - __LA_DECL int archive_match_exclude_pattern(struct archive *, const char *); - __LA_DECL int archive_match_exclude_pattern_w(struct archive *, -diff --git a/libarchive/archive_match.c b/libarchive/archive_match.c -index be72066e..bb6a3407 100644 ---- a/libarchive/archive_match.c -+++ b/libarchive/archive_match.c -@@ -93,6 +93,9 @@ struct archive_match { - /* exclusion/inclusion set flag. */ - int setflag; - -+ /* Recursively include directory content? */ -+ int recursive_include; -+ - /* - * Matching filename patterns. - */ -@@ -223,6 +226,7 @@ archive_match_new(void) - return (NULL); - a->archive.magic = ARCHIVE_MATCH_MAGIC; - a->archive.state = ARCHIVE_STATE_NEW; -+ a->recursive_include = 1; - match_list_init(&(a->inclusions)); - match_list_init(&(a->exclusions)); - __archive_rb_tree_init(&(a->exclusion_tree), &rb_ops_mbs); -@@ -471,6 +475,28 @@ archive_match_path_excluded(struct archive *_a, - } - - /* -+ * When recursive inclusion of directory content is enabled, -+ * an inclusion pattern that matches a directory will also -+ * include everything beneath that directory. Enabled by default. -+ * -+ * For compatibility with GNU tar, exclusion patterns always -+ * match if a subset of the full patch matches (i.e., they are -+ * are not rooted at the beginning of the path) and thus there -+ * is no corresponding non-recursive exclusion mode. -+ */ -+int -+archive_match_include_directories_recursively(struct archive *_a, int _enabled) -+{ -+ struct archive_match *a; -+ -+ archive_check_magic(_a, ARCHIVE_MATCH_MAGIC, -+ ARCHIVE_STATE_NEW, "archive_match_include_directories_recursively"); -+ a = (struct archive_match *)_a; -+ a->recursive_include = _enabled; -+ return (ARCHIVE_OK); -+} -+ -+/* - * Utility functions to get statistic information for inclusion patterns. - */ - int -@@ -781,7 +807,9 @@ static int - match_path_inclusion(struct archive_match *a, struct match *m, - int mbs, const void *pn) - { -- int flag = PATHMATCH_NO_ANCHOR_END; -+ int flag = a->recursive_include ? -+ PATHMATCH_NO_ANCHOR_END : /* Prefix match is good enough. */ -+ 0; /* Full match required. */ - int r; - - if (mbs) { -diff --git a/tar/bsdtar.1 b/tar/bsdtar.1 -index 132e1145..1dd2a847 100644 ---- a/tar/bsdtar.1 -+++ b/tar/bsdtar.1 -@@ -386,8 +386,7 @@ and the default behavior in c, r, and u modes or if - .Nm - is run in x mode as root. - .It Fl n , Fl Fl norecurse , Fl Fl no-recursion --(c, r, u modes only) --Do not recursively archive the contents of directories. -+Do not recursively archive (c, r, u), extract (x) or list (t) the contents of directories. - .It Fl Fl newer Ar date - (c, r, u modes only) - Only include files and directories newer than the specified date. -diff --git a/tar/bsdtar.c b/tar/bsdtar.c -index 11dedbf9..d014cc3e 100644 ---- a/tar/bsdtar.c -+++ b/tar/bsdtar.c -@@ -794,8 +794,6 @@ main(int argc, char **argv) - break; - } - } -- if (bsdtar->flags & OPTFLAG_NO_SUBDIRS) -- only_mode(bsdtar, "-n", "cru"); - if (bsdtar->flags & OPTFLAG_STDOUT) - only_mode(bsdtar, "-O", "xt"); - if (bsdtar->flags & OPTFLAG_UNLINK_FIRST) -@@ -845,6 +843,16 @@ main(int argc, char **argv) - only_mode(bsdtar, buff, "cru"); - } - -+ /* -+ * When creating an archive from a directory tree, the directory -+ * walking code will already avoid entering directories when -+ * recursive inclusion of directory content is disabled, therefore -+ * changing the matching behavior has no effect for creation modes. -+ * It is relevant for extraction or listing. -+ */ -+ archive_match_include_directories_recursively(bsdtar->matching, -+ !(bsdtar->flags & OPTFLAG_NO_SUBDIRS)); -+ - /* Filename "-" implies stdio. */ - if (strcmp(bsdtar->filename, "-") == 0) - bsdtar->filename = NULL; --- -2.11.0 - diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/libarchive/libarchive_3.3.3.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-extended/libarchive/libarchive_3.3.3.bb deleted file mode 100644 index af5ca652..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/libarchive/libarchive_3.3.3.bb +++ /dev/null @@ -1,75 +0,0 @@ -SUMMARY = "Support for reading various archive formats" -DESCRIPTION = "C library and command-line tools for reading and writing tar, cpio, zip, ISO, and other archive formats" -HOMEPAGE = "http://www.libarchive.org/" -SECTION = "devel" -LICENSE = "BSD" -LIC_FILES_CHKSUM = "file://COPYING;md5=ed99aca006bc346974bb745a35336425" - -DEPENDS = "e2fsprogs-native" - -PACKAGECONFIG ?= "zlib bz2 xz lzo" - -PACKAGECONFIG_append_class-target = "\ - libxml2 \ - ${@bb.utils.filter('DISTRO_FEATURES', 'acl xattr', d)} \ -" - -DEPENDS_BZIP2 = "bzip2-replacement-native" -DEPENDS_BZIP2_class-target = "bzip2" - -PACKAGECONFIG[acl] = "--enable-acl,--disable-acl,acl," -PACKAGECONFIG[xattr] = "--enable-xattr,--disable-xattr,attr," -PACKAGECONFIG[zlib] = "--with-zlib,--without-zlib,zlib," -PACKAGECONFIG[bz2] = "--with-bz2lib,--without-bz2lib,${DEPENDS_BZIP2}," -PACKAGECONFIG[xz] = "--with-lzma,--without-lzma,xz," -PACKAGECONFIG[openssl] = "--with-openssl,--without-openssl,openssl," -PACKAGECONFIG[libxml2] = "--with-xml2,--without-xml2,libxml2," -PACKAGECONFIG[expat] = "--with-expat,--without-expat,expat," -PACKAGECONFIG[lzo] = "--with-lzo2,--without-lzo2,lzo," -PACKAGECONFIG[nettle] = "--with-nettle,--without-nettle,nettle," -PACKAGECONFIG[lz4] = "--with-lz4,--without-lz4,lz4," - -EXTRA_OECONF += "--enable-largefile" - -SRC_URI = "http://libarchive.org/downloads/libarchive-${PV}.tar.gz \ - file://non-recursive-extract-and-list.patch \ - file://bug1066.patch \ - file://CVE-2018-1000877.patch \ - file://CVE-2018-1000878.patch \ - file://CVE-2018-1000879.patch \ - file://CVE-2018-1000880.patch \ - file://CVE-2019-1000019.patch \ - file://CVE-2019-1000020.patch \ -" - -SRC_URI[md5sum] = "4038e366ca5b659dae3efcc744e72120" -SRC_URI[sha256sum] = "ba7eb1781c9fbbae178c4c6bad1c6eb08edab9a1496c64833d1715d022b30e2e" - -inherit autotools update-alternatives pkgconfig - -CPPFLAGS += "-I${WORKDIR}/extra-includes" - -do_configure[cleandirs] += "${WORKDIR}/extra-includes" -do_configure_prepend() { - # We just need the headers for some type constants, so no need to - # build all of e2fsprogs for the target - cp -R ${STAGING_INCDIR_NATIVE}/ext2fs ${WORKDIR}/extra-includes/ -} - -ALTERNATIVE_PRIORITY = "80" - -PACKAGES =+ "bsdtar" -FILES_bsdtar = "${bindir}/bsdtar" - -ALTERNATIVE_bsdtar = "tar" -ALTERNATIVE_LINK_NAME[tar] = "${base_bindir}/tar" -ALTERNATIVE_TARGET[tar] = "${bindir}/bsdtar" - -PACKAGES =+ "bsdcpio" -FILES_bsdcpio = "${bindir}/bsdcpio" - -ALTERNATIVE_bsdcpio = "cpio" -ALTERNATIVE_LINK_NAME[cpio] = "${base_bindir}/cpio" -ALTERNATIVE_TARGET[cpio] = "${bindir}/bsdcpio" - -BBCLASSEXTEND = "native nativesdk" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/libarchive/libarchive_3.4.0.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-extended/libarchive/libarchive_3.4.0.bb new file mode 100644 index 00000000..9c0d5e26 --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-extended/libarchive/libarchive_3.4.0.bb @@ -0,0 +1,67 @@ +SUMMARY = "Support for reading various archive formats" +DESCRIPTION = "C library and command-line tools for reading and writing tar, cpio, zip, ISO, and other archive formats" +HOMEPAGE = "http://www.libarchive.org/" +SECTION = "devel" +LICENSE = "BSD-2-Clause" +LIC_FILES_CHKSUM = "file://COPYING;md5=fe01f5e02b1f0cc934d593a7b0ddceb6" + +DEPENDS = "e2fsprogs-native" + +PACKAGECONFIG ?= "zlib bz2 xz lzo" + +PACKAGECONFIG_append_class-target = "\ + libxml2 \ + ${@bb.utils.filter('DISTRO_FEATURES', 'acl xattr', d)} \ +" + +DEPENDS_BZIP2 = "bzip2-replacement-native" +DEPENDS_BZIP2_class-target = "bzip2" + +PACKAGECONFIG[acl] = "--enable-acl,--disable-acl,acl," +PACKAGECONFIG[xattr] = "--enable-xattr,--disable-xattr,attr," +PACKAGECONFIG[zlib] = "--with-zlib,--without-zlib,zlib," +PACKAGECONFIG[bz2] = "--with-bz2lib,--without-bz2lib,${DEPENDS_BZIP2}," +PACKAGECONFIG[xz] = "--with-lzma,--without-lzma,xz," +PACKAGECONFIG[openssl] = "--with-openssl,--without-openssl,openssl," +PACKAGECONFIG[libxml2] = "--with-xml2,--without-xml2,libxml2," +PACKAGECONFIG[expat] = "--with-expat,--without-expat,expat," +PACKAGECONFIG[lzo] = "--with-lzo2,--without-lzo2,lzo," +PACKAGECONFIG[nettle] = "--with-nettle,--without-nettle,nettle," +PACKAGECONFIG[lz4] = "--with-lz4,--without-lz4,lz4," + +EXTRA_OECONF += "--enable-largefile" + +SRC_URI = "http://libarchive.org/downloads/libarchive-${PV}.tar.gz \ +" + +SRC_URI[md5sum] = "6046396255bd7cf6d0f6603a9bda39ac" +SRC_URI[sha256sum] = "8643d50ed40c759f5412a3af4e353cffbce4fdf3b5cf321cb72cacf06b2d825e" + +inherit autotools update-alternatives pkgconfig + +CPPFLAGS += "-I${WORKDIR}/extra-includes" + +do_configure[cleandirs] += "${WORKDIR}/extra-includes" +do_configure_prepend() { + # We just need the headers for some type constants, so no need to + # build all of e2fsprogs for the target + cp -R ${STAGING_INCDIR_NATIVE}/ext2fs ${WORKDIR}/extra-includes/ +} + +ALTERNATIVE_PRIORITY = "80" + +PACKAGES =+ "bsdtar" +FILES_bsdtar = "${bindir}/bsdtar" + +ALTERNATIVE_bsdtar = "tar" +ALTERNATIVE_LINK_NAME[tar] = "${base_bindir}/tar" +ALTERNATIVE_TARGET[tar] = "${bindir}/bsdtar" + +PACKAGES =+ "bsdcpio" +FILES_bsdcpio = "${bindir}/bsdcpio" + +ALTERNATIVE_bsdcpio = "cpio" +ALTERNATIVE_LINK_NAME[cpio] = "${base_bindir}/cpio" +ALTERNATIVE_TARGET[cpio] = "${bindir}/bsdcpio" + +BBCLASSEXTEND = "native nativesdk" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/libidn/libidn2_2.2.0.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-extended/libidn/libidn2_2.2.0.bb index d7fec89f..bcbfdd85 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/libidn/libidn2_2.2.0.bb +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-extended/libidn/libidn2_2.2.0.bb @@ -21,6 +21,10 @@ EXTRA_OECONF += "--disable-rpath \ --with-libunistring-prefix=${STAGING_EXECPREFIXDIR} \ " +do_install_append() { + sed -i -e 's|-L${STAGING_LIBDIR}||' ${D}${libdir}/pkgconfig/libidn2.pc +} + LICENSE_${PN} = "(GPLv2+ | LGPLv3)" LICENSE_${PN}-bin = "GPLv3+" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/libnsl/libnsl2_git.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-extended/libnsl/libnsl2_git.bb index c3a24fac..28c84af7 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/libnsl/libnsl2_git.bb +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-extended/libnsl/libnsl2_git.bb @@ -12,7 +12,7 @@ DEPENDS = "libtirpc" PV = "1.2.0+git${SRCPV}" -SRCREV = "37c5ffe3038d42e9fa9ed232ad2cbca4d8f14681" +SRCREV = "4a062cf4180d99371198951e4ea5b4550efd58a3" SRC_URI = "git://github.com/thkukuk/libnsl \ " diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/libnss-nis/libnss-nis.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-extended/libnss-nis/libnss-nis.bb index 47447acd..a1d914e8 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/libnss-nis/libnss-nis.bb +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-extended/libnss-nis/libnss-nis.bb @@ -13,9 +13,9 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c" SECTION = "libs" DEPENDS += "libtirpc libnsl2" -PV = "3.0+git${SRCPV}" +PV = "3.1+git${SRCPV}" -SRCREV = "d4aea48657a8e90d7922574b8021ee03915a36cb" +SRCREV = "062f31999b35393abf7595cb89dfc9590d5a42ad" SRC_URI = "git://github.com/thkukuk/libnss_nis \ " diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/libsolv/libsolv/0001-build-use-GNUInstallDirs.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-extended/libsolv/libsolv/0001-build-use-GNUInstallDirs.patch deleted file mode 100644 index 75ef1500..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/libsolv/libsolv/0001-build-use-GNUInstallDirs.patch +++ /dev/null @@ -1,188 +0,0 @@ -Backport a patch from upstream to use GNUInstallDirs instead of -hand-coded path logic, so we have proper control over where files end up. - -Upstream-Status: Backport -Signed-off-by: Ross Burton - -From b6c9df4c686975ce5009d09dac706a4e83f02a31 Mon Sep 17 00:00:00 2001 -From: Igor Gnatenko -Date: Mon, 2 Jul 2018 12:56:41 +0100 -Subject: [PATCH] build: use GNUInstallDirs - -Fixes: #128 -Signed-off-by: Igor Gnatenko ---- - CMakeLists.txt | 34 +++++++--------------------------- - README | 2 +- - doc/CMakeLists.txt | 4 ++-- - examples/solv/CMakeLists.txt | 2 +- - ext/CMakeLists.txt | 8 ++++---- - libsolv.pc.in | 4 ++-- - libsolvext.pc.in | 4 ++-- - src/CMakeLists.txt | 8 ++++---- - tools/CMakeLists.txt | 3 +-- - 9 files changed, 24 insertions(+), 45 deletions(-) - -diff --git a/CMakeLists.txt b/CMakeLists.txt -index 1deef57d..7e9ffa9b 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -1,6 +1,6 @@ - PROJECT (libsolv) - --CMAKE_MINIMUM_REQUIRED (VERSION 2.4) -+CMAKE_MINIMUM_REQUIRED (VERSION 2.8.5) - - OPTION (ENABLE_STATIC "Build a static version of the libraries?" OFF) - OPTION (DISABLE_SHARED "Do not build a shared version of the libraries?" OFF) -@@ -38,34 +38,14 @@ OPTION (ENABLE_ZCHUNK_COMPRESSION "Build with zchunk compression support?" OFF) - OPTION (WITH_SYSTEM_ZCHUNK "Use system zchunk library?" OFF) - OPTION (WITH_LIBXML2 "Build with libxml2 instead of libexpat?" OFF) - --# Library --IF (DEFINED LIB) -- SET (LIB_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/${LIB}") --ELSE (DEFINED LIB) -- IF (CMAKE_SIZEOF_VOID_P MATCHES "8") -- SET (LIB_SUFFIX "64") -- ENDIF (CMAKE_SIZEOF_VOID_P MATCHES "8") -- SET (LIB_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/lib${LIB_SUFFIX}") --ENDIF (DEFINED LIB) --MESSAGE (STATUS "Libraries will be installed in ${LIB_INSTALL_DIR}") --# Library --IF (DEFINED INCLUDE) -- SET (INCLUDE_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/${INCLUDE}") --else (DEFINED INCLUDE) -- SET (INCLUDE_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/include") --ENDIF (DEFINED INCLUDE) --MESSAGE (STATUS "Header files will be installed in ${INCLUDE_INSTALL_DIR}") --SET (BIN_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/bin") --IF (NOT MAN_INSTALL_DIR) --SET (MAN_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/share/man") --IF (IS_DIRECTORY "${CMAKE_INSTALL_PREFIX}/man" AND NOT IS_DIRECTORY "${CMAKE_INSTALL_PREFIX}/share/man") -- SET (MAN_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/man") --ENDIF (IS_DIRECTORY "${CMAKE_INSTALL_PREFIX}/man" AND NOT IS_DIRECTORY "${CMAKE_INSTALL_PREFIX}/share/man") --ENDIF (NOT MAN_INSTALL_DIR) --MESSAGE(STATUS "Man pages will be installed in ${MAN_INSTALL_DIR}") -+include (GNUInstallDirs) -+message (STATUS "Libraries will be installed in ${CMAKE_INSTALL_FULL_LIBDIR}") -+message (STATUS "Header files will be installed in ${CMAKE_INSTALL_FULL_INCLUDEDIR}") -+message (STATUS "Binaries will be installed in ${CMAKE_INSTALL_FULL_BINDIR}") -+message (STATUS "Man pages will be installed in ${CMAKE_INSTALL_FULL_MANDIR}") - - IF (NOT PKGCONFIG_INSTALL_DIR) -- SET (PKGCONFIG_INSTALL_DIR ${LIB_INSTALL_DIR}/pkgconfig) -+ SET (PKGCONFIG_INSTALL_DIR ${CMAKE_INSTALL_LIBDIR}/pkgconfig) - ENDIF (NOT PKGCONFIG_INSTALL_DIR) - #################################################################### - # CONFIGURATION # -diff --git a/doc/CMakeLists.txt b/doc/CMakeLists.txt -index 66011b48..ed38274e 100644 ---- a/doc/CMakeLists.txt -+++ b/doc/CMakeLists.txt -@@ -48,8 +48,8 @@ STRING(REGEX REPLACE "([^;]+)" "gen/\\1" libsolv_MANPAGES3 "${libsolv_MANPAGES3} - - INSTALL(FILES - ${libsolv_MANPAGES3} -- DESTINATION "${MAN_INSTALL_DIR}/man3") -+ DESTINATION "${CMAKE_INSTALL_MANDIR}/man3") - - INSTALL(FILES - ${libsolv_MANPAGES1} -- DESTINATION "${MAN_INSTALL_DIR}/man1") -+ DESTINATION "${CMAKE_INSTALL_MANDIR}/man1") -diff --git a/examples/solv/CMakeLists.txt b/examples/solv/CMakeLists.txt -index 41f45f74..0f3bd477 100644 ---- a/examples/solv/CMakeLists.txt -+++ b/examples/solv/CMakeLists.txt -@@ -25,5 +25,5 @@ TARGET_LINK_LIBRARIES (solv libsolvext libsolv ${SYSTEM_LIBRARIES}) - - INSTALL(TARGETS - solv -- DESTINATION ${BIN_INSTALL_DIR}) -+ DESTINATION ${CMAKE_INSTALL_BINDIR}) - -diff --git a/ext/CMakeLists.txt b/ext/CMakeLists.txt -index edc2b9f9..6dd28b1a 100644 ---- a/ext/CMakeLists.txt -+++ b/ext/CMakeLists.txt -@@ -145,14 +145,14 @@ ENDIF (DISABLE_SHARED) - - SET_TARGET_PROPERTIES(libsolvext PROPERTIES OUTPUT_NAME "solvext") - SET_TARGET_PROPERTIES(libsolvext PROPERTIES SOVERSION ${LIBSOLVEXT_SOVERSION}) --SET_TARGET_PROPERTIES(libsolvext PROPERTIES INSTALL_NAME_DIR ${LIB_INSTALL_DIR}) -+SET_TARGET_PROPERTIES(libsolvext PROPERTIES INSTALL_NAME_DIR ${CMAKE_INSTALL_LIBDIR}) - --INSTALL (FILES ${libsolvext_HEADERS} DESTINATION "${INCLUDE_INSTALL_DIR}/solv") --INSTALL (TARGETS libsolvext LIBRARY DESTINATION ${LIB_INSTALL_DIR} ARCHIVE DESTINATION ${LIB_INSTALL_DIR} RUNTIME DESTINATION bin) -+INSTALL (FILES ${libsolvext_HEADERS} DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/solv") -+INSTALL (TARGETS libsolvext LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}) - - IF (ENABLE_STATIC AND NOT DISABLE_SHARED) - ADD_LIBRARY (libsolvext_static STATIC ${libsolvext_SRCS}) - SET_TARGET_PROPERTIES(libsolvext_static PROPERTIES OUTPUT_NAME "solvext") - SET_TARGET_PROPERTIES(libsolvext_static PROPERTIES SOVERSION ${LIBSOLVEXT_SOVERSION}) --INSTALL (TARGETS libsolvext_static LIBRARY DESTINATION ${LIB_INSTALL_DIR} ARCHIVE DESTINATION ${LIB_INSTALL_DIR}) -+INSTALL (TARGETS libsolvext_static LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}) - ENDIF (ENABLE_STATIC AND NOT DISABLE_SHARED) -diff --git a/libsolv.pc.in b/libsolv.pc.in -index 40a86230..766146c5 100644 ---- a/libsolv.pc.in -+++ b/libsolv.pc.in -@@ -1,5 +1,5 @@ --libdir=@LIB_INSTALL_DIR@ --includedir=@INCLUDE_INSTALL_DIR@ -+libdir=@CMAKE_INSTALL_FULL_LIBDIR@ -+includedir=@CMAKE_INSTALL_FULL_INCLUDEDIR@ - - Name: libsolv - Description: Library for solving packages -diff --git a/libsolvext.pc.in b/libsolvext.pc.in -index d48b6fab..d0078461 100644 ---- a/libsolvext.pc.in -+++ b/libsolvext.pc.in -@@ -1,5 +1,5 @@ --libdir=@LIB_INSTALL_DIR@ --includedir=@INCLUDE_INSTALL_DIR@ -+libdir=@CMAKE_INSTALL_FULL_LIBDIR@ -+includedir=@CMAKE_INSTALL_FULL_INCLUDEDIR@ - - Name: libsolvext - Description: Library for reading repositories -diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt -index 2e32968e..03ea9119 100644 ---- a/src/CMakeLists.txt -+++ b/src/CMakeLists.txt -@@ -42,14 +42,14 @@ ENDIF (DISABLE_SHARED) - - SET_TARGET_PROPERTIES(libsolv PROPERTIES OUTPUT_NAME "solv") - SET_TARGET_PROPERTIES(libsolv PROPERTIES SOVERSION ${LIBSOLV_SOVERSION}) --SET_TARGET_PROPERTIES(libsolv PROPERTIES INSTALL_NAME_DIR ${LIB_INSTALL_DIR}) -+SET_TARGET_PROPERTIES(libsolv PROPERTIES INSTALL_NAME_DIR ${CMAKE_INSTALL_LIBDIR}) - --INSTALL (FILES ${libsolv_HEADERS} DESTINATION "${INCLUDE_INSTALL_DIR}/solv") --INSTALL (TARGETS libsolv LIBRARY DESTINATION ${LIB_INSTALL_DIR} ARCHIVE DESTINATION ${LIB_INSTALL_DIR} RUNTIME DESTINATION bin) -+INSTALL (FILES ${libsolv_HEADERS} DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/solv") -+INSTALL (TARGETS libsolv LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}) - - IF (ENABLE_STATIC AND NOT DISABLE_SHARED) - ADD_LIBRARY (libsolv_static STATIC ${libsolv_SRCS}) - SET_TARGET_PROPERTIES(libsolv_static PROPERTIES OUTPUT_NAME "solv") - SET_TARGET_PROPERTIES(libsolv_static PROPERTIES SOVERSION ${LIBSOLV_SOVERSION}) --INSTALL (TARGETS libsolv_static LIBRARY DESTINATION ${LIB_INSTALL_DIR} ARCHIVE DESTINATION ${LIB_INSTALL_DIR}) -+INSTALL (TARGETS libsolv_static LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}) - ENDIF (ENABLE_STATIC AND NOT DISABLE_SHARED) -diff --git a/tools/CMakeLists.txt b/tools/CMakeLists.txt -index 802dc500..0d677f69 100644 ---- a/tools/CMakeLists.txt -+++ b/tools/CMakeLists.txt -@@ -110,5 +110,4 @@ TARGET_LINK_LIBRARIES (testsolv libsolvext libsolv ${SYSTEM_LIBRARIES}) - ADD_EXECUTABLE (repo2solv repo2solv.c ) - TARGET_LINK_LIBRARIES (repo2solv toolstuff libsolvext libsolv ${SYSTEM_LIBRARIES}) - --INSTALL (TARGETS ${tools_list} DESTINATION ${BIN_INSTALL_DIR}) -- -+INSTALL (TARGETS ${tools_list} DESTINATION ${CMAKE_INSTALL_BINDIR}) --- -2.11.0 - diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/libsolv/libsolv_0.7.4.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-extended/libsolv/libsolv_0.7.4.bb deleted file mode 100644 index b8653adc..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/libsolv/libsolv_0.7.4.bb +++ /dev/null @@ -1,32 +0,0 @@ -SUMMARY = "Library for solving packages and reading repositories" -HOMEPAGE = "https://github.com/openSUSE/libsolv" -BUGTRACKER = "https://github.com/openSUSE/libsolv/issues" -SECTION = "devel" -LICENSE = "BSD-3-Clause" -LIC_FILES_CHKSUM = "file://LICENSE.BSD;md5=62272bd11c97396d4aaf1c41bc11f7d8" - -DEPENDS = "expat zlib" - -SRC_URI = "git://github.com/openSUSE/libsolv.git \ - file://0001-build-use-GNUInstallDirs.patch \ -" - -SRCREV = "51fc3b1214aa9677e972712fa1ce6916e438751f" - -UPSTREAM_CHECK_GITTAGREGEX = "(?P\d+(\.\d+)+)" - -S = "${WORKDIR}/git" - -inherit cmake - -PACKAGECONFIG ??= "rpm" -PACKAGECONFIG[rpm] = "-DENABLE_RPMMD=ON -DENABLE_RPMDB=ON,,rpm" - -EXTRA_OECMAKE = "-DMULTI_SEMANTICS=ON -DENABLE_COMPLEX_DEPS=ON" - -PACKAGES =+ "${PN}-tools ${PN}ext" - -FILES_${PN}-tools = "${bindir}/*" -FILES_${PN}ext = "${libdir}/${PN}ext.so.*" - -BBCLASSEXTEND = "native nativesdk" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/libsolv/libsolv_0.7.8.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-extended/libsolv/libsolv_0.7.8.bb new file mode 100644 index 00000000..8fe9ae04 --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-extended/libsolv/libsolv_0.7.8.bb @@ -0,0 +1,31 @@ +SUMMARY = "Library for solving packages and reading repositories" +HOMEPAGE = "https://github.com/openSUSE/libsolv" +BUGTRACKER = "https://github.com/openSUSE/libsolv/issues" +SECTION = "devel" +LICENSE = "BSD-3-Clause" +LIC_FILES_CHKSUM = "file://LICENSE.BSD;md5=62272bd11c97396d4aaf1c41bc11f7d8" + +DEPENDS = "expat zlib" + +SRC_URI = "git://github.com/openSUSE/libsolv.git \ +" + +SRCREV = "5205c5683ce2c8b8288534059ba40a318a2a161d" + +UPSTREAM_CHECK_GITTAGREGEX = "(?P\d+(\.\d+)+)" + +S = "${WORKDIR}/git" + +inherit cmake + +PACKAGECONFIG ??= "rpm" +PACKAGECONFIG[rpm] = "-DENABLE_RPMMD=ON -DENABLE_RPMDB=ON,,rpm" + +EXTRA_OECMAKE = "-DMULTI_SEMANTICS=ON -DENABLE_COMPLEX_DEPS=ON" + +PACKAGES =+ "${PN}-tools ${PN}ext" + +FILES_${PN}-tools = "${bindir}/*" +FILES_${PN}ext = "${libdir}/${PN}ext.so.*" + +BBCLASSEXTEND = "native nativesdk" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/libtirpc/libtirpc/musl.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-extended/libtirpc/libtirpc/musl.patch index 0c3ce603..21cd9f95 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/libtirpc/libtirpc/musl.patch +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-extended/libtirpc/libtirpc/musl.patch @@ -1,13 +1,14 @@ Consider musl provided built-in defines Helps compile libtirpc with musl +bits/endian.h is not supposed to be included directly Upstream-Status: Pending Signed-off-by: Khem Raj ---- ./tirpc/rpc/types.h.orig 2018-03-17 10:23:10.022055255 +0100 -+++ ./tirpc/rpc/types.h 2018-03-17 10:23:30.877751656 +0100 -@@ -66,7 +66,7 @@ +--- a/tirpc/rpc/types.h ++++ b/tirpc/rpc/types.h +@@ -66,7 +66,7 @@ typedef int32_t rpc_inline_t; #define mem_free(ptr, bsize) free(ptr) @@ -16,3 +17,14 @@ Signed-off-by: Khem Raj # define __u_char_defined # define __daddr_t_defined #endif +--- a/src/xdr_float.c ++++ b/src/xdr_float.c +@@ -83,7 +83,7 @@ static struct sgl_limits { + }; + #else + +-#include ++#include + #define IEEEFP + + #endif /* vax */ diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/libtirpc/libtirpc_1.1.4.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-extended/libtirpc/libtirpc_1.1.4.bb index 9c480b82..633cecec 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/libtirpc/libtirpc_1.1.4.bb +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-extended/libtirpc/libtirpc_1.1.4.bb @@ -3,7 +3,7 @@ DESCRIPTION = "Libtirpc is a port of Suns Transport-Independent RPC library to L SECTION = "libs/network" HOMEPAGE = "http://sourceforge.net/projects/libtirpc/" BUGTRACKER = "http://sourceforge.net/tracker/?group_id=183075&atid=903784" -LICENSE = "BSD" +LICENSE = "BSD-3-Clause" LIC_FILES_CHKSUM = "file://COPYING;md5=f835cce8852481e4b2bbbdd23b5e47f3 \ file://src/netname.c;beginline=1;endline=27;md5=f8a8cd2cb25ac5aa16767364fb0e3c24" @@ -23,6 +23,20 @@ EXTRA_OECONF = "--disable-gssapi" do_install_append() { chown root:root ${D}${sysconfdir}/netconfig + install -d ${D}${includedir}/rpc + install -d ${D}${includedir}/rpcsvc + for link_header in ${D}${includedir}/tirpc/rpc/*; do + if [ -f $link_header -a ! -e ${D}/${includedir}/rpc/$(basename $link_header) ]; then + ln -sf ../tirpc/rpc/$(basename $link_header) ${D}${includedir}/rpc/$(basename $link_header) + fi + done + for link_header in ${D}${includedir}/tirpc/rpcsvc/*; do + if [ -f $link_header -a ! -e ${D}/${includedir}/rpcsvc/$(basename $link_header) ]; then + ln -sf ../tirpc/rpc/$(basename $link_header) ${D}${includedir}/rpcsvc/$(basename $link_header) + fi + done + ln -sf tirpc/netconfig.h ${D}/${includedir}/netconfig.h + } BBCLASSEXTEND = "native nativesdk" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/lighttpd/lighttpd_1.4.54.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-extended/lighttpd/lighttpd_1.4.54.bb index ba1a2c54..20ce6987 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/lighttpd/lighttpd_1.4.54.bb +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-extended/lighttpd/lighttpd_1.4.54.bb @@ -2,7 +2,7 @@ SUMMARY = "Lightweight high-performance web server" HOMEPAGE = "http://www.lighttpd.net/" BUGTRACKER = "http://redmine.lighttpd.net/projects/lighttpd/issues" -LICENSE = "BSD" +LICENSE = "BSD-3-Clause" LIC_FILES_CHKSUM = "file://COPYING;md5=e4dac5c6ab169aa212feb5028853a579" SECTION = "net" @@ -39,14 +39,13 @@ PACKAGECONFIG[krb5] = "--with-krb5,--without-krb5,krb5" PACKAGECONFIG[pcre] = "--with-pcre,--without-pcre,libpcre" PACKAGECONFIG[zlib] = "--with-zlib,--without-zlib,zlib" PACKAGECONFIG[bzip2] = "--with-bzip2,--without-bzip2,bzip2" -PACKAGECONFIG[fam] = "--with-fam,--without-fam,gamin" PACKAGECONFIG[webdav-props] = "--with-webdav-props,--without-webdav-props,libxml2 sqlite3" PACKAGECONFIG[webdav-locks] = "--with-webdav-locks,--without-webdav-locks,util-linux" PACKAGECONFIG[gdbm] = "--with-gdbm,--without-gdbm,gdbm" PACKAGECONFIG[memcache] = "--with-memcached,--without-memcached,libmemcached" -PACKAGECONFIG[lua] = "--with-lua,--without-lua,lua5.1" +PACKAGECONFIG[lua] = "--with-lua,--without-lua,lua" -EXTRA_OECONF += "--enable-lfs" +EXTRA_OECONF += "--enable-lfs --without-fam" inherit autotools pkgconfig update-rc.d gettext systemd diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/logrotate/logrotate_3.15.0.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-extended/logrotate/logrotate_3.15.0.bb deleted file mode 100644 index 0f3da2b9..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/logrotate/logrotate_3.15.0.bb +++ /dev/null @@ -1,99 +0,0 @@ -SUMMARY = "Rotates, compresses, removes and mails system log files" -SECTION = "console/utils" -HOMEPAGE = "https://github.com/logrotate/logrotate/issues" -LICENSE = "GPLv2" - -# TODO: Document coreutils dependency. Why not RDEPENDS? Why not busybox? - -DEPENDS="coreutils popt" - -LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263" - -# When updating logrotate to latest upstream, SRC_URI should point to -# a proper release tarball from https://github.com/logrotate/logrotate/releases -# and we have to take the snapshot for now because there is no such -# tarball available for 3.9.1. - -S = "${WORKDIR}/${BPN}-${PV}" - -UPSTREAM_CHECK_URI = "https://github.com/${BPN}/${BPN}/releases" -UPSTREAM_CHECK_REGEX = "logrotate-(?P\d+(\.\d+)+).tar" - -SRC_URI = "https://github.com/${BPN}/${BPN}/releases/download/${PV}/${BP}.tar.xz \ - file://act-as-mv-when-rotate.patch \ - file://update-the-manual.patch \ - file://disable-check-different-filesystems.patch \ - " - -SRC_URI[md5sum] = "320046f0b9fc38337e8827d4c5a866a0" -SRC_URI[sha256sum] = "313612c4776a305393454c874ef590d8acf84c9ffa648717731dfe902284ff8f" - -PACKAGECONFIG ?= "${@bb.utils.filter('DISTRO_FEATURES', 'acl selinux', d)}" - -PACKAGECONFIG[acl] = ",,acl" -PACKAGECONFIG[selinux] = ",,libselinux" - -CONFFILES_${PN} += "${localstatedir}/lib/logrotate.status \ - ${sysconfdir}/logrotate.conf \ - ${sysconfdir}/logrotate.d/btmp \ - ${sysconfdir}/logrotate.d/wtmp" - -# If RPM_OPT_FLAGS is unset, it adds -g itself rather than obeying our -# optimization variables, so use it rather than EXTRA_CFLAGS. -EXTRA_OEMAKE = "\ - LFS= \ - OS_NAME='${OS_NAME}' \ - 'CC=${CC}' \ - 'RPM_OPT_FLAGS=${CFLAGS}' \ - 'EXTRA_LDFLAGS=${LDFLAGS}' \ - ${@bb.utils.contains('PACKAGECONFIG', 'acl', 'WITH_ACL=yes', '', d)} \ - ${@bb.utils.contains('PACKAGECONFIG', 'selinux', 'WITH_SELINUX=yes', '', d)} \ -" - -# OS_NAME in the makefile defaults to `uname -s`. The behavior for -# freebsd/netbsd is questionable, so leave it as Linux, which only sets -# INSTALL=install and BASEDIR=/usr. -OS_NAME = "Linux" - -inherit autotools systemd - -SYSTEMD_SERVICE_${PN} = "\ - ${BPN}.service \ - ${BPN}.timer \ -" - -LOGROTATE_OPTIONS ?= "" - -LOGROTATE_SYSTEMD_TIMER_BASIS ?= "daily" -LOGROTATE_SYSTEMD_TIMER_ACCURACY ?= "12h" -LOGROTATE_SYSTEMD_TIMER_PERSISTENT ?= "true" - -do_install(){ - oe_runmake install DESTDIR=${D} PREFIX=${D} MANDIR=${mandir} - mkdir -p ${D}${sysconfdir}/logrotate.d - mkdir -p ${D}${localstatedir}/lib - install -p -m 644 ${S}/examples/logrotate.conf ${D}${sysconfdir}/logrotate.conf - install -p -m 644 ${S}/examples/btmp ${D}${sysconfdir}/logrotate.d/btmp - install -p -m 644 ${S}/examples/wtmp ${D}${sysconfdir}/logrotate.d/wtmp - touch ${D}${localstatedir}/lib/logrotate.status - - if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then - install -d ${D}${systemd_system_unitdir} - install -m 0644 ${S}/examples/logrotate.service ${D}${systemd_system_unitdir}/logrotate.service - install -m 0644 ${S}/examples/logrotate.timer ${D}${systemd_system_unitdir}/logrotate.timer - [ -z "${LOGROTATE_OPTIONS}" ] || - sed -ri \ - -e 's|(ExecStart=.*/logrotate.*)$|\1 ${LOGROTATE_OPTIONS}|g' \ - ${D}${systemd_system_unitdir}/logrotate.service - sed -ri \ - -e 's|(OnCalendar=).*$|\1${LOGROTATE_SYSTEMD_TIMER_BASIS}|g' \ - -e 's|(AccuracySec=).*$|\1${LOGROTATE_SYSTEMD_TIMER_ACCURACY}|g' \ - -e 's|(Persistent=).*$|\1${LOGROTATE_SYSTEMD_TIMER_PERSISTENT}|g' \ - ${D}${systemd_system_unitdir}/logrotate.timer - fi - - if ${@bb.utils.contains('DISTRO_FEATURES', 'sysvinit', 'true', 'false', d)}; then - mkdir -p ${D}${sysconfdir}/cron.daily - install -p -m 0755 ${S}/examples/logrotate.cron ${D}${sysconfdir}/cron.daily/logrotate - fi -} diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/logrotate/logrotate_3.15.1.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-extended/logrotate/logrotate_3.15.1.bb new file mode 100644 index 00000000..7c7d51b3 --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-extended/logrotate/logrotate_3.15.1.bb @@ -0,0 +1,99 @@ +SUMMARY = "Rotates, compresses, removes and mails system log files" +SECTION = "console/utils" +HOMEPAGE = "https://github.com/logrotate/logrotate/issues" +LICENSE = "GPLv2" + +# TODO: Document coreutils dependency. Why not RDEPENDS? Why not busybox? + +DEPENDS="coreutils popt" + +LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263" + +# When updating logrotate to latest upstream, SRC_URI should point to +# a proper release tarball from https://github.com/logrotate/logrotate/releases +# and we have to take the snapshot for now because there is no such +# tarball available for 3.9.1. + +S = "${WORKDIR}/${BPN}-${PV}" + +UPSTREAM_CHECK_URI = "https://github.com/${BPN}/${BPN}/releases" +UPSTREAM_CHECK_REGEX = "logrotate-(?P\d+(\.\d+)+).tar" + +SRC_URI = "https://github.com/${BPN}/${BPN}/releases/download/${PV}/${BP}.tar.xz \ + file://act-as-mv-when-rotate.patch \ + file://update-the-manual.patch \ + file://disable-check-different-filesystems.patch \ + " + +SRC_URI[md5sum] = "afe109afea749c306ff489203fde6beb" +SRC_URI[sha256sum] = "491fec9e89f1372f02a0ab66579aa2e9d63cac5178dfa672c204c88e693a908b" + +PACKAGECONFIG ?= "${@bb.utils.filter('DISTRO_FEATURES', 'acl selinux', d)}" + +PACKAGECONFIG[acl] = ",,acl" +PACKAGECONFIG[selinux] = ",,libselinux" + +CONFFILES_${PN} += "${localstatedir}/lib/logrotate.status \ + ${sysconfdir}/logrotate.conf \ + ${sysconfdir}/logrotate.d/btmp \ + ${sysconfdir}/logrotate.d/wtmp" + +# If RPM_OPT_FLAGS is unset, it adds -g itself rather than obeying our +# optimization variables, so use it rather than EXTRA_CFLAGS. +EXTRA_OEMAKE = "\ + LFS= \ + OS_NAME='${OS_NAME}' \ + 'CC=${CC}' \ + 'RPM_OPT_FLAGS=${CFLAGS}' \ + 'EXTRA_LDFLAGS=${LDFLAGS}' \ + ${@bb.utils.contains('PACKAGECONFIG', 'acl', 'WITH_ACL=yes', '', d)} \ + ${@bb.utils.contains('PACKAGECONFIG', 'selinux', 'WITH_SELINUX=yes', '', d)} \ +" + +# OS_NAME in the makefile defaults to `uname -s`. The behavior for +# freebsd/netbsd is questionable, so leave it as Linux, which only sets +# INSTALL=install and BASEDIR=/usr. +OS_NAME = "Linux" + +inherit autotools systemd + +SYSTEMD_SERVICE_${PN} = "\ + ${BPN}.service \ + ${BPN}.timer \ +" + +LOGROTATE_OPTIONS ?= "" + +LOGROTATE_SYSTEMD_TIMER_BASIS ?= "daily" +LOGROTATE_SYSTEMD_TIMER_ACCURACY ?= "12h" +LOGROTATE_SYSTEMD_TIMER_PERSISTENT ?= "true" + +do_install(){ + oe_runmake install DESTDIR=${D} PREFIX=${D} MANDIR=${mandir} + mkdir -p ${D}${sysconfdir}/logrotate.d + mkdir -p ${D}${localstatedir}/lib + install -p -m 644 ${S}/examples/logrotate.conf ${D}${sysconfdir}/logrotate.conf + install -p -m 644 ${S}/examples/btmp ${D}${sysconfdir}/logrotate.d/btmp + install -p -m 644 ${S}/examples/wtmp ${D}${sysconfdir}/logrotate.d/wtmp + touch ${D}${localstatedir}/lib/logrotate.status + + if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then + install -d ${D}${systemd_system_unitdir} + install -m 0644 ${S}/examples/logrotate.service ${D}${systemd_system_unitdir}/logrotate.service + install -m 0644 ${S}/examples/logrotate.timer ${D}${systemd_system_unitdir}/logrotate.timer + [ -z "${LOGROTATE_OPTIONS}" ] || + sed -ri \ + -e 's|(ExecStart=.*/logrotate.*)$|\1 ${LOGROTATE_OPTIONS}|g' \ + ${D}${systemd_system_unitdir}/logrotate.service + sed -ri \ + -e 's|(OnCalendar=).*$|\1${LOGROTATE_SYSTEMD_TIMER_BASIS}|g' \ + -e 's|(AccuracySec=).*$|\1${LOGROTATE_SYSTEMD_TIMER_ACCURACY}|g' \ + -e 's|(Persistent=).*$|\1${LOGROTATE_SYSTEMD_TIMER_PERSISTENT}|g' \ + ${D}${systemd_system_unitdir}/logrotate.timer + fi + + if ${@bb.utils.contains('DISTRO_FEATURES', 'sysvinit', 'true', 'false', d)}; then + mkdir -p ${D}${sysconfdir}/cron.daily + install -p -m 0755 ${S}/examples/logrotate.cron ${D}${sysconfdir}/cron.daily/logrotate + fi +} diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/lsb/lsb/0001-fix-lsb_release-to-work-with-busybox-head-and-find.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-extended/lsb/lsb-release/0001-fix-lsb_release-to-work-with-busybox-head-and-find.patch similarity index 100% rename from Contrib-Inspur/openbmc/poky/meta/recipes-extended/lsb/lsb/0001-fix-lsb_release-to-work-with-busybox-head-and-find.patch rename to Contrib-Inspur/openbmc/poky/meta/recipes-extended/lsb/lsb-release/0001-fix-lsb_release-to-work-with-busybox-head-and-find.patch diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/lsb/lsb-release_1.4.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-extended/lsb/lsb-release_1.4.bb new file mode 100644 index 00000000..52e30267 --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-extended/lsb/lsb-release_1.4.bb @@ -0,0 +1,36 @@ +SUMMARY = "lsb_release support for OpenEmbedded" +SECTION = "console/utils" +HOMEPAGE = "http://prdownloads.sourceforge.net/lsb" +LICENSE = "GPLv2+" + +# lsb_release needs getopt +RDEPENDS_${PN} += "${VIRTUAL-RUNTIME_getopt}" + +LIC_FILES_CHKSUM = "file://README;md5=12da544b1a3a5a1795a21160b49471cf" + +SRC_URI = "${SOURCEFORGE_MIRROR}/project/lsb/lsb_release/1.4/lsb-release-1.4.tar.gz \ + file://0001-fix-lsb_release-to-work-with-busybox-head-and-find.patch \ + " + +SRC_URI[md5sum] = "30537ef5a01e0ca94b7b8eb6a36bb1e4" +SRC_URI[sha256sum] = "99321288f8d62e7a1d485b7c6bdccf06766fb8ca603c6195806e4457fdf17172" + +UPSTREAM_CHECK_URI = "http://sourceforge.net/projects/lsb/files/lsb_release/" +UPSTREAM_CHECK_REGEX = "/lsb_release/(?P(\d+[\.\-_]*)+)/" + +CLEANBROKEN = "1" + +do_install() { + oe_runmake install prefix=${D}${root_prefix} mandir=${D}${datadir}/man/ DESTDIR=${D} + + mkdir -p ${D}${sysconfdir}/lsb-release.d + + echo "DISTRIB_ID=${DISTRO}" >> ${D}${sysconfdir}/lsb-release + echo "DISTRIB_RELEASE=${DISTRO_VERSION}" >> ${D}${sysconfdir}/lsb-release + if [ -n "${DISTRO_CODENAME}" ]; then + echo "DISTRIB_CODENAME=${DISTRO_CODENAME}" >> ${D}${sysconfdir}/lsb-release + fi + echo "DISTRIB_DESCRIPTION=\"${DISTRO_NAME} ${DISTRO_VERSION}\"" >> ${D}${sysconfdir}/lsb-release +} + +FILES_${PN} += "${base_libdir}" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/lsb/lsb/init-functions b/Contrib-Inspur/openbmc/poky/meta/recipes-extended/lsb/lsb/init-functions deleted file mode 100755 index 7c1dce24..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/lsb/lsb/init-functions +++ /dev/null @@ -1,44 +0,0 @@ -#!/bin/sh - -# LSB initscript functions, as defined in the LSB Spec 1.1.0 -# -# Lawrence Lim - Tue, 26 June 2007 -# Updated to the latest LSB 3.1 spec -# http://refspecs.freestandards.org/LSB_3.1.0/LSB-Core-generic/LSB-Core-generic_lines.txt - -start_daemon () { - /etc/core-lsb/lsb_start_daemon "$@" -} - -killproc () { - /etc/core-lsb/lsb_killproc "$@" -} - -pidofproc () { - /etc/core-lsb/lsb_pidofproc "$@" -} - -log_success_msg () { - /etc/core-lsb/lsb_log_message success "$@" -} - -log_failure_msg () { - /etc/core-lsb/lsb_log_message failure "$@" -} - -log_warning_msg () { - /etc/core-lsb/lsb_log_message warning "$@" -} - -# int log_begin_message (char *message) -log_begin_msg () { - if [ -z "$1" ]; then - return 1 - fi - echo " * $@" -} - - -log_end_msg () { - /etc/core-lsb/lsb_log_message end "$@" -} diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/lsb/lsb/lsb_killproc b/Contrib-Inspur/openbmc/poky/meta/recipes-extended/lsb/lsb/lsb_killproc deleted file mode 100755 index 866c1a9c..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/lsb/lsb/lsb_killproc +++ /dev/null @@ -1,6 +0,0 @@ -#!/bin/sh - -. /etc/init.d/functions - -LSB=LSB-1.1 killproc $* -exit $? diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/lsb/lsb/lsb_log_message b/Contrib-Inspur/openbmc/poky/meta/recipes-extended/lsb/lsb/lsb_log_message deleted file mode 100755 index 10343b08..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/lsb/lsb/lsb_log_message +++ /dev/null @@ -1,27 +0,0 @@ -#!/bin/sh - -. /etc/init.d/functions - -ACTION=$1 -shift - -case "$ACTION" in - success) - echo -n $* - success "$*" - echo - ;; - failure) - echo -n $* - failure "$*" - echo - ;; - warning) - echo -n $* - warning "$*" - echo - ;; - *) - ;; -esac -exit 0 diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/lsb/lsb/lsb_pidofproc b/Contrib-Inspur/openbmc/poky/meta/recipes-extended/lsb/lsb/lsb_pidofproc deleted file mode 100755 index 6d1fd0f2..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/lsb/lsb/lsb_pidofproc +++ /dev/null @@ -1,6 +0,0 @@ -#!/bin/sh - -. /etc/init.d/functions - -pidofproc $* -exit $? diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/lsb/lsb/lsb_start_daemon b/Contrib-Inspur/openbmc/poky/meta/recipes-extended/lsb/lsb/lsb_start_daemon deleted file mode 100755 index de62c234..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/lsb/lsb/lsb_start_daemon +++ /dev/null @@ -1,45 +0,0 @@ -#!/bin/sh - -. /etc/init.d/functions - -nice= -force= -pidfile= -user= -check= -RETVAL= -while [ "$1" != "${1##[-+]}" ]; do - case $1 in - -f) - force="--force" - shift - ;; - -n) - nice=$2 - shift 2 - ;; - -p) - pidfile="--pidfile $2" - shift 2 - ;; - -u) - user="--user $2" - shift 2 - ;; - -c) - check="--check $2" - shift 2 - ;; - *) - echo "Unknown Option $1" - echo "Options are:" - echo "-f" - echo "-p {pidfile}" - echo "-n [+/-nicelevel]" - echo "-u {user}" - echo "-c {base}" - exit 1;; - esac -done -LSB=LSB-1.1 daemon ${force:-} ${nice:-} ${pidfile:-} ${user:-} ${check:-} $* -exit $? diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/lsb/lsb_5.0.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-extended/lsb/lsb_5.0.bb deleted file mode 100644 index d1de3340..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/lsb/lsb_5.0.bb +++ /dev/null @@ -1,136 +0,0 @@ -SUMMARY = "LSB support for OpenEmbedded" -SECTION = "console/utils" -HOMEPAGE = "http://prdownloads.sourceforge.net/lsb" -LICENSE = "GPLv2+" - -LSB_CORE = "lsb-core-${TARGET_ARCH}" -LSB_CORE_x86 = "lsb-core-ia32" -LSB_CORE_x86-64 = "lsb-core-amd64" -RPROVIDES_${PN} += "${LSB_CORE}" - -# lsb_release needs getopt, lsbinitscripts -RDEPENDS_${PN} += "${VIRTUAL-RUNTIME_getopt} lsbinitscripts" - -LIC_FILES_CHKSUM = "file://README;md5=12da544b1a3a5a1795a21160b49471cf" - -SRC_URI = "${SOURCEFORGE_MIRROR}/project/lsb/lsb_release/1.4/lsb-release-1.4.tar.gz \ - file://0001-fix-lsb_release-to-work-with-busybox-head-and-find.patch \ - file://init-functions \ - file://lsb_killproc \ - file://lsb_log_message \ - file://lsb_pidofproc \ - file://lsb_start_daemon \ - " -UPSTREAM_VERSION_UNKNOWN = "1" - -SRC_URI[md5sum] = "30537ef5a01e0ca94b7b8eb6a36bb1e4" -SRC_URI[sha256sum] = "99321288f8d62e7a1d485b7c6bdccf06766fb8ca603c6195806e4457fdf17172" - -UPSTREAM_CHECK_URI = "http://sourceforge.net/projects/lsb/files/lsb_release/" -UPSTREAM_CHECK_REGEX = "/lsb_release/(?P(\d+[\.\-_]*)+)/" - -S = "${WORKDIR}/lsb-release-1.4" - -CLEANBROKEN = "1" - -do_install() { - oe_runmake install prefix=${D}${root_prefix} mandir=${D}${datadir}/man/ DESTDIR=${D} - - # these two dirs are needed by package lsb-dist-checker - mkdir -p ${D}${sysconfdir}/opt - mkdir -p ${D}${localstatedir}/opt - - mkdir -p ${D}${base_libdir} - mkdir -p ${D}${sysconfdir}/lsb-release.d - printf "LSB_VERSION=\"core-5.0-noarch:" > ${D}${sysconfdir}/lsb-release - - if [ "${TARGET_ARCH}" = "i586" ] || [ "${TARGET_ARCH}" = "i686" ]; then - printf "core-5.0-ia32" >> ${D}${sysconfdir}/lsb-release - else - printf "core-5.0-${TARGET_ARCH}" >> ${D}${sysconfdir}/lsb-release - fi - echo "\"" >> ${D}${sysconfdir}/lsb-release - echo "DISTRIB_ID=${DISTRO}" >> ${D}${sysconfdir}/lsb-release - echo "DISTRIB_RELEASE=${DISTRO_VERSION}" >> ${D}${sysconfdir}/lsb-release - if [ -n "${DISTRO_CODENAME}" ]; then - echo "DISTRIB_CODENAME=${DISTRO_CODENAME}" >> ${D}${sysconfdir}/lsb-release - fi - echo "DISTRIB_DESCRIPTION=\"${DISTRO_NAME} ${DISTRO_VERSION}\"" >> ${D}${sysconfdir}/lsb-release - - if [ "${TARGET_ARCH}" = "i586" ] || [ "${TARGET_ARCH}" = "i686" ]; then - mkdir -p ${D}${sysconfdir}/lsb-release.d - touch ${D}${sysconfdir}/lsb-release.d/graphics-${PV}-noarch - touch ${D}${sysconfdir}/lsb-release.d/desktop-${PV}-noarch - touch ${D}${sysconfdir}/lsb-release.d/graphics-${PV}-ia32 - touch ${D}${sysconfdir}/lsb-release.d/desktop-${PV}-ia32 - elif [ "${TARGET_ARCH}" = "x86_64" ]; then - touch ${D}${sysconfdir}/lsb-release.d/graphics-${PV}-noarch - touch ${D}${sysconfdir}/lsb-release.d/graphics-${PV}-amd64 - touch ${D}${sysconfdir}/lsb-release.d/desktop-${PV}-amd64 - fi - if [ "${TARGET_ARCH}" = "powerpc" ]; then - touch ${D}${sysconfdir}/lsb-release.d/graphics-${PV}-noarch - touch ${D}${sysconfdir}/lsb-release.d/graphics-${PV}-ppc32 - touch ${D}${sysconfdir}/lsb-release.d/desktop-${PV}-ppc32 - elif [ "${TARGET_ARCH}" = "powerpc64" ]; then - touch ${D}${sysconfdir}/lsb-release.d/graphics-${PV}-noarch - touch ${D}${sysconfdir}/lsb-release.d/graphics-${PV}-ppc64 - touch ${D}${sysconfdir}/lsb-release.d/desktop-${PV}-ppc64 - fi -} - -do_install_append() { - install -d ${D}${sysconfdir}/core-lsb - for i in lsb_killproc lsb_log_message lsb_pidofproc lsb_start_daemon - do - install -m 0755 ${WORKDIR}/$i ${D}${sysconfdir}/core-lsb - done - - install -d ${D}${nonarch_base_libdir}/lsb - install -m 0755 ${WORKDIR}/init-functions ${D}${nonarch_base_libdir}/lsb - - # create links for LSB test - if [ -e ${sbindir}/chkconfig ]; then - if [ "${nonarch_base_libdir}" != "${nonarch_libdir}" ] ; then - install -d ${D}${nonarch_libdir}/lsb - fi - ln -sf ${sbindir}/chkconfig ${D}${nonarch_libdir}/lsb/install_initd - ln -sf ${sbindir}/chkconfig ${D}${nonarch_libdir}/lsb/remove_initd - fi - - if [ "${TARGET_ARCH}" = "x86_64" ]; then - # don't symlink if usrmerge is in DISTRO_FEATURES as it manages the symlink - if ${@bb.utils.contains('DISTRO_FEATURES','usrmerge','false','true',d)} && \ - [ "${base_libdir}" != "${base_prefix}/lib64" ]; then - lnr ${D}${base_libdir} ${D}${base_prefix}/lib64 - fi - cd ${D}${base_libdir} - ln -sf ld-linux-x86-64.so.2 ld-lsb-x86-64.so.2 - ln -sf ld-linux-x86-64.so.2 ld-lsb-x86-64.so.3 - fi - if [ "${TARGET_ARCH}" = "i586" ] || [ "${TARGET_ARCH}" = "i686" ]; then - cd ${D}${base_libdir} - ln -sf ld-linux.so.2 ld-lsb.so.2 - ln -sf ld-linux.so.2 ld-lsb.so.3 - fi - - if [ "${TARGET_ARCH}" = "powerpc64" ]; then - if [ "${base_libdir}" != "${base_prefix}/lib64" ]; then - lnr ${D}${base_libdir} ${D}${base_prefix}/lib64 - fi - cd ${D}${base_libdir} - ln -sf ld64.so.1 ld-lsb-ppc64.so.2 - ln -sf ld64.so.1 ld-lsb-ppc64.so.3 - fi - if [ "${TARGET_ARCH}" = "powerpc" ]; then - cd ${D}${base_libdir} - ln -sf ld.so.1 ld-lsb-ppc32.so.2 - ln -sf ld.so.1 ld-lsb-ppc32.so.3 - fi -} - -FILES_${PN} += "${@'${base_prefix}/lib64' if d.getVar('TARGET_ARCH') == ('x86_64' or 'powerpc64') and '${base_libdir}' != '${base_prefix}/lib64' else ''} \ - ${base_libdir} \ - ${nonarch_libdir}/lsb \ - ${nonarch_base_libdir}/lsb/* \ - " diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/lsb/lsbinitscripts/0001-functions-avoid-exit-1-which-causes-init-scripts-to-.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-extended/lsb/lsbinitscripts/0001-functions-avoid-exit-1-which-causes-init-scripts-to-.patch deleted file mode 100644 index c0076453..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/lsb/lsbinitscripts/0001-functions-avoid-exit-1-which-causes-init-scripts-to-.patch +++ /dev/null @@ -1,21 +0,0 @@ -Upstream-Status: Pending - -Subject: functions: avoid exit 1 which causes init scripts to fail - -Signed-off-by: Chen Qi ---- - rc.d/init.d/functions | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -Index: initscripts-9.72/rc.d/init.d/functions -=================================================================== ---- initscripts-9.72.orig/rc.d/init.d/functions -+++ initscripts-9.72/rc.d/init.d/functions -@@ -686,6 +686,6 @@ if [ "$_use_systemctl" = "1" ]; then - fi - fi - --strstr "$(cat /proc/cmdline)" "rc.debug" && set -x -+strstr "$(cat /proc/cmdline)" "rc.debug" && set -x || true - return 0 - diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/lsb/lsbinitscripts/functions.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-extended/lsb/lsbinitscripts/functions.patch deleted file mode 100644 index e912daa7..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/lsb/lsbinitscripts/functions.patch +++ /dev/null @@ -1,33 +0,0 @@ -From e46b056282c8420f096d5c34d78c00f816788784 Mon Sep 17 00:00:00 2001 -From: Fan Xin -Date: Mon, 5 Jun 2017 16:26:47 +0900 -Subject: [PATCH 1/2] Upstream-Status: Inappropriate [configuration] - -Signed-off-by: Xiaofeng Yan -Signed-off-by: Saul Wold - -Rebase on 9.72 - -Signed-off-by: Fan Xin -Upstream-Status: Pending - ---- - rc.d/init.d/functions | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/rc.d/init.d/functions b/rc.d/init.d/functions -index 2e3da964..1a204dec 100644 ---- a/rc.d/init.d/functions -+++ b/rc.d/init.d/functions -@@ -59,7 +59,7 @@ systemctl_redirect () { - [ -z "${COLUMNS:-}" ] && COLUMNS=80 - - if [ -z "${CONSOLETYPE:-}" ]; then -- if [ -c "/dev/stderr" ] && [ -r "/dev/stderr" ]; then -+ if [ -c "/dev/stderr" ] && [ -r "/dev/stderr" ] && [ -e /sbin/consoletype ]; then - CONSOLETYPE="$(/sbin/consoletype < /dev/stderr 2>/dev/null)" - else - CONSOLETYPE="serial" --- -2.15.1 - diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/lsb/lsbinitscripts_9.79.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-extended/lsb/lsbinitscripts_9.79.bb deleted file mode 100644 index 6d3fcf13..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/lsb/lsbinitscripts_9.79.bb +++ /dev/null @@ -1,31 +0,0 @@ -SUMMARY = "SysV init scripts which are only used in an LSB image" -HOMEPAGE = "https://wiki.debian.org/LSBInitScripts" -SECTION = "base" -LICENSE = "GPLv2" - -RPROVIDES_${PN} += "initd-functions" -RDEPENDS_${PN} += "util-linux" -RCONFLICTS_${PN} = "initscripts-functions" - -LIC_FILES_CHKSUM = "file://COPYING;md5=ebf4e8b49780ab187d51bd26aaa022c6" - -S = "${WORKDIR}/git" -SRC_URI = "git://github.com/fedora-sysv/initscripts \ - file://functions.patch \ - file://0001-functions-avoid-exit-1-which-causes-init-scripts-to-.patch \ - " -SRCREV = "a51c1b4f7dcf55b568b2ee4c2b18078849943469" -UPSTREAM_CHECK_GITTAGREGEX = "^(?P\d+(\.\d+)+)" - -SRC_URI[md5sum] = "d6c798f40dceb117e12126d94cb25a9a" -SRC_URI[sha256sum] = "1793677bdd1f7ee4cb00878ce43346196374f848a4c8e4559e086040fc7487db" - -# Since we are only taking the patched version of functions, no need to -# configure or compile anything so do not execute these -do_configure[noexec] = "1" -do_compile[noexec] = "1" - -do_install(){ - install -d ${D}${sysconfdir}/init.d/ - install -m 0644 ${S}/rc.d/init.d/functions ${D}${sysconfdir}/init.d/functions -} diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/lsb/lsbtest/LSB_Test.sh b/Contrib-Inspur/openbmc/poky/meta/recipes-extended/lsb/lsbtest/LSB_Test.sh deleted file mode 100644 index 073e247a..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/lsb/lsbtest/LSB_Test.sh +++ /dev/null @@ -1,525 +0,0 @@ -#!/bin/sh - -# Copyright (C) 2012 Wind River Systems, Inc. -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License version 2 as -# published by the Free Software Foundation. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. -# See the GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - - -WORK_DIR="/opt/lsb-test" - -if [ `id -u` -ne 0 ] -then - cat << EOF - In order to install and run LSB testsuite, you need administrator privileges. - You are currently running this script as an unprivileged user. - -EOF - exit 1 -fi - -ARCH=`uname -m` -if [ ${ARCH} != "i686" ] && [ ${ARCH} != "x86_64" ] && [ ${ARCH} != "ppc" ] && [ ${ARCH} != "ppc64" ] -then - echo "Error: Unsupported architecture" - exit 1 -fi - -which rpm -if [ $? -ne 0 ] -then - echo "No rpm command found" - exit 1 -fi - -RET=0 - -cd ${WORK_DIR} || exit 1 -# Step 1: Download the LSB Packages -echo "" -echo "Download LSB packages..." -echo "" - -if [ ! -e ./packages_list ] -then - echo "Error: Could not find packages list" >&2 - exit 1 -fi - -. ./packages_list - -PACKAGES_DIR="/var/opt/lsb/test/manager/packages/ftp.linuxfoundation.org/pub/lsb" - -BASE_PACKAGES_DIR="${PACKAGES_DIR}/base/released-all/binary" -RUNTIME_BASE_PACKAGES_DIR="${PACKAGES_DIR}/test_suites/released-all/binary/runtime" -RUNTIME_PACKAGES_DIR="${PACKAGES_DIR}/test_suites/${LSB_RELEASE}/binary/runtime" -APP_PACKAGES_DIR="${PACKAGES_DIR}/app-battery/${LSB_RELEASE}/${LSB_ARCH}" -APP_TESTFILES_DIR="${PACKAGES_DIR}/app-battery/tests" -SNAPSHOTS_TESTFILES_DIR="${PACKAGES_DIR}/snapshots/appbat/tests" - -if [ ! -d ${PACKAGES_DIR} ] -then - mkdir -p ${PACKAGES_DIR} -fi - -if [ ! -d ${BASE_PACKAGES_DIR} ] -then - mkdir -p ${BASE_PACKAGES_DIR} -fi - -if [ ! -d ${RUNTIME_BASE_PACKAGES_DIR} ] -then - mkdir -p ${RUNTIME_BASE_PACKAGES_DIR} -fi - -if [ ! -d ${RUNTIME_PACKAGES_DIR} ] -then - mkdir -p ${RUNTIME_PACKAGES_DIR} -fi - -if [ ! -d ${APP_PACKAGES_DIR} ] -then - mkdir -p ${APP_PACKAGES_DIR} -fi - -if [ ! -d ${APP_TESTFILES_DIR} ] -then - mkdir -p ${APP_TESTFILES_DIR} -fi - -# Official download server list. You can replace them with your own server. -SERVER_IPADDR="140.211.169.28" -SERVER_NAME="ftp.linuxfoundation.org" - -if ! `grep -F -q "${SERVER_NAME}" /etc/hosts`; then - echo "${SERVER_IPADDR} ${SERVER_NAME} ${SERVER_NAME}" >> /etc/hosts -fi - -#ping -c 5 ${SERVER_NAME} -#if [ $? -ne 0 ] -#then -# echo "The server: ${SERVER_NAME} is unreachable" -# exit 1 -#fi - -SERVER1="\ - http://${SERVER_NAME}/pub/lsb/base/released-all/binary" -SERVER2="\ - http://${SERVER_NAME}/pub/lsb/test_suites/released-all/binary/runtime" -SERVER3="\ - http://${SERVER_NAME}/pub/lsb/test_suites/${LSB_RELEASE}/binary/runtime" -SERVER4="\ - http://${SERVER_NAME}/pub/lsb/app-battery/${LSB_RELEASE}/${LSB_ARCH}" -SERVER5="\ - http://${SERVER_NAME}/pub/lsb/app-battery/tests" - -# We using "curl" as a download tool, "wget" is an alternative. -CURL=`which curl` -WGET=`which wget` -if [ ! -z ${CURL} ] -then - DOWNLOAD_CMD="${CURL} -R -L -f --retry 3 --retry-delay 4 --connect-timeout 180 --compressed -C - -o" -elif [ ! -z ${WGET} ] -then - DOWNLOAD_CMD="${WGET} -c -t 5 -O" -else - echo "Can not find a download tool, please install curl or wget." - exit 1 -fi - -cd ${BASE_PACKAGES_DIR} -for pkg in ${BASE_PACKAGES_LIST}; do - if [ ! -f ${pkg} ] - then - #${DOWNLOAD_CMD} ${pkg}".#part" ${SERVER1}/${pkg} > /dev/null 2>&1 - ${DOWNLOAD_CMD} ${pkg}".#part" ${SERVER1}/${pkg} - if [ $? -eq 0 ] - then - mv -f ${pkg}".#part" ${pkg} - echo "Download ${pkg} successfully." - else - echo "Download ${pkg} failed." - RET=1 - fi - fi -done - -cd ${RUNTIME_BASE_PACKAGES_DIR} -for pkg in ${RUNTIME_BASE_PACKAGES_LIST}; do - if [ ! -f ${pkg} ] - then - #${DOWNLOAD_CMD} ${pkg}".#part" ${SERVER2}/${pkg} > /dev/null 2>&1 - ${DOWNLOAD_CMD} ${pkg}".#part" ${SERVER2}/${pkg} - if [ $? -eq 0 ] - then - mv -f ${pkg}".#part" ${pkg} - echo "Download ${pkg} successfully." - else - echo "Download ${pkg} failed." - RET=1 - fi - fi -done - -cd ${RUNTIME_PACKAGES_DIR} -for pkg in ${RUNTIME_PACKAGES_LIST}; do - if [ ! -f ${pkg} ] - then - #${DOWNLOAD_CMD} ${pkg}".#part" ${SERVER3}/${pkg} > /dev/null 2>&1 - ${DOWNLOAD_CMD} ${pkg}".#part" ${SERVER3}/${pkg} - if [ $? -eq 0 ] - then - mv -f ${pkg}".#part" ${pkg} - echo "Download ${pkg} successfully." - else - echo "Download ${pkg} failed." - RET=1 - fi - fi -done - -cd ${APP_PACKAGES_DIR} -for pkg in ${APP_PACKAGES_LIST}; do - if [ ! -f ${pkg} ] - then - #${DOWNLOAD_CMD} ${pkg}".#part" ${SERVER4}/${pkg} > /dev/null 2>&1 - ${DOWNLOAD_CMD} ${pkg}".#part" ${SERVER4}/${pkg} - if [ $? -eq 0 ] - then - mv -f ${pkg}".#part" ${pkg} - echo "Download ${pkg} successfully." - else - echo "Download ${pkg} failed." - RET=1 - fi - fi -done - -cd ${APP_TESTFILES_DIR} -for pkg in ${APP_TESTFILES_LIST}; do - if [ ! -f ${pkg} ] - then - #${DOWNLOAD_CMD} ${pkg}".#part" ${SERVER5}/${pkg} > /dev/null 2>&1 - ${DOWNLOAD_CMD} ${pkg}".#part" ${SERVER5}/${pkg} - if [ $? -eq 0 ] - then - mv -f ${pkg}".#part" ${pkg} - echo "Download ${pkg} successfully." - else - echo "Download ${pkg} failed." - RET=1 - fi - fi -done - -if [ ${RET} -ne 0 ] -then - echo "Download some packages failed. Please download them again." - exit 1 -fi - -# Step 2: Install the LSB Packages -echo "" -echo "Install LSB packages..." -echo "" - -# Kill lighttpd -ps aux | grep "lighttpd" | grep -v -q "grep" -if [ $? -eq 0 ] -then - killall lighttpd >/dev/null 2>&1 -fi - -# Start avahi-daemon -ps aux | grep "avahi-daemon" | grep -v -q "grep" -if [ $? -ne 0 ] -then - /etc/init.d/avahi-daemon start >/dev/null 2>&1 -fi - -LSB_START_CMD="/opt/lsb/test/manager/bin/dist-checker-start.pl" -LSB_STOP_CMD="/opt/lsb/test/manager/bin/dist-checker-stop.pl" - -PLATFORM_FILE="/etc/rpm/platform" - -RPM_INSTALL_CMD="rpm --quiet --nodeps --replacepkgs --nosignature -i --ignoreos" -RPM_INSTALL_CMD_NOSCRIPTS="rpm --quiet --nodeps --replacepkgs --noscripts --nosignature -i --ignoreos" - -# If the lsb has been started, stop it first. -if [ -x ${LSB_STOP_CMD} ] -then - ${LSB_STOP_CMD} -fi - -if [ ! -d /etc/rpm ] -then - mkdir -p /etc/rpm -fi - -if [ ! -f ${PLATFORM_FILE} ] -then - touch ${PLATFORM_FILE} -fi - -if ! `grep -F -q "noarch-suse" ${PLATFORM_FILE}`; then - if [ ${ARCH} = i686 ];then - echo "i486-suse" >> ${PLATFORM_FILE} - echo "i486-noarch" >> ${PLATFORM_FILE} - echo "i486-pc" >> ${PLATFORM_FILE} - echo "noarch-suse" >> ${PLATFORM_FILE} - elif [ ${ARCH} = x86_64 ]; then - echo "i486-suse" >> ${PLATFORM_FILE} - echo "i486-noarch" >> ${PLATFORM_FILE} - echo "i486-pc" >> ${PLATFORM_FILE} - echo "i486-.*-linux.*" >> ${PLATFORM_FILE} - echo "noarch-suse" >> ${PLATFORM_FILE} - echo "${ARCH}-suse" >> ${PLATFORM_FILE} - echo "${ARCH}-noarch" >> ${PLATFORM_FILE} - echo "${ARCH}-pc" >> ${PLATFORM_FILE} - else - echo "${ARCH}-suse" >> ${PLATFORM_FILE} - echo "${ARCH}-noarch" >> ${PLATFORM_FILE} - echo "${ARCH}-pc" >> ${PLATFORM_FILE} - echo "noarch-suse" >> ${PLATFORM_FILE} - fi -fi - -if [ -d ${BASE_PACKAGES_DIR} ] -then - cd ${BASE_PACKAGES_DIR} - for pkg in ${BASE_PACKAGES_LIST} - do - rpm --quiet -q ${pkg%\.*} - if [ $? -ne 0 ]; then - $RPM_INSTALL_CMD ${pkg} - fi - done -fi - -if [ -d ${RUNTIME_BASE_PACKAGES_DIR} ] -then - cd ${RUNTIME_BASE_PACKAGES_DIR} - for pkg in ${RUNTIME_BASE_PACKAGES_LIST} - do - rpm --quiet -q ${pkg%\.*} - if [ $? -ne 0 ]; then - $RPM_INSTALL_CMD ${pkg} - fi - done -fi - -if [ -d ${RUNTIME_PACKAGES_DIR} ] -then - cd ${RUNTIME_PACKAGES_DIR} - for pkg in ${RUNTIME_PACKAGES_LIST} - do - rpm --quiet -q ${pkg%\.*} - if [ $? -ne 0 ]; then - $RPM_INSTALL_CMD ${pkg} - fi - done -fi - -if [ -d ${APP_PACKAGES_DIR} ] -then - cd ${APP_PACKAGES_DIR} - for pkg in ${APP_PACKAGES_LIST} - do - echo "${pkg}" | grep -q "apache\|xpdf" - if [ $? -eq 0 ] - then - rpm --quiet -q ${pkg%\.*} - if [ $? -ne 0 ]; then - $RPM_INSTALL_CMD_NOSCRIPTS ${pkg} - fi - else - rpm --quiet -q ${pkg%\.*} - if [ $? -ne 0 ]; then - $RPM_INSTALL_CMD ${pkg} - fi - fi - done -fi - -if [ ! -d ${SNAPSHOTS_TESTFILES_DIR} ] -then - mkdir -p ${SNAPSHOTS_TESTFILES_DIR} -fi - -if [ -d ${APP_TESTFILES_DIR} ] -then - cd ${APP_TESTFILES_DIR} - for pkg in ${APP_TESTFILES_LIST} - do - cp -f ${pkg} ${SNAPSHOTS_TESTFILES_DIR} - done -fi - -cd ${WORK_DIR} - -# Step 3: Set environment -echo "" -echo "Set environment..." -echo "" - -check () -{ - if [ $? -eq 0 ] - then - echo "PASS" - else - echo "FAIL" - exit 1 - fi -} - -echo "" -echo "---------------------------------" -echo "Create the Dirnames on target" - -if [ ! -d /etc/rpm/sysinfo ] -then - mkdir -p /etc/rpm/sysinfo -fi - -cat > /etc/rpm/sysinfo/Dirnames << EOF -/etc/opt/lsb -/home/tet/LSB.tools -/opt/lsb-tet3-lite/lib/ksh -/opt/lsb-tet3-lite/lib/perl -/opt/lsb-tet3-lite/lib/posix_sh -/opt/lsb-tet3-lite/lib/tet3 -/opt/lsb-tet3-lite/lib/xpg3sh -/opt/lsb/appbat/lib/python2.4/site-packages/qm -/opt/lsb/appbat/lib/python2.4/site-packages/qm/external -/opt/lsb/appbat/lib/python2.4/site-packages/qm/external/DocumentTemplate -/opt/lsb/appbat/lib/python2.4/site-packages/qm/test -/opt/lsb/appbat/lib/python2.4/site-packages/qm/test/classes -/opt/lsb/appbat/lib/python2.4/site-packages/qm/test/web -/opt/lsb/test/doc -/opt/lsb/test/lib -/opt/lsb/test/qm/diagnostics -/opt/lsb/test/qm/doc -/opt/lsb/test/qm/doc/test/html -/opt/lsb/test/qm/doc/test/print -/opt/lsb/test/qm/dtml -/opt/lsb/test/qm/dtml/test -/opt/lsb/test/qm/messages/test -/opt/lsb/test/qm/tutorial/test/tdb -/opt/lsb/test/qm/tutorial/test/tdb/QMTest -/opt/lsb/test/qm/web -/opt/lsb/test/qm/web/images -/opt/lsb/test/qm/web/stylesheets -/opt/lsb/test/qm/xml -/opt/lsb/test/share -/usr/share/doc/lsb-runtime-test -/var/opt/lsb -/opt/lsb/test/desktop -/opt/lsb/test/desktop/fontconfig -/opt/lsb/test/desktop/freetype -/opt/lsb/test/desktop/gtkvts -/opt/lsb/test/desktop/libpng -/opt/lsb/test/desktop/xft -/opt/lsb/test/desktop/xml -/opt/lsb/test/desktop/xrender - - -EOF - -if [ -f /etc/rpm/sysinfo/Dirnames ] -then - echo "Success to creat Dirnames file" -else - echo "Fail to creat Dirnames file" -fi - -[ -x /sbin/ldconfig ] && { -echo "" -echo "---------------------------------" -echo "Update cache" -/sbin/ldconfig -check; -} - -# Check loop device -if [ ! -b /dev/loop0 ] -then - insmod /lib/modules/`uname -r`/kernel/drivers/block/loop.ko - if [ $? != 0 ];then - echo "Insmod loop.ko failed." - fi -fi - -# Resolve localhost -LOCALHOST=`hostname` -if ! `grep -F -q "$LOCALHOST" /etc/hosts`; then - echo "127.0.0.1 $LOCALHOST" >> /etc/hosts -fi - -# Workaround to add part of locales for LSB test -localedef -i de_DE -f ISO-8859-1 de_DE -localedef -i de_DE -f ISO-8859-15 de_DE.ISO-8859-15 -localedef -i de_DE -f UTF-8 de_DE.UTF-8 -localedef -i de_DE@euro -f ISO-8859-15 de_DE@euro -localedef -i en_HK -f ISO-8859-1 en_HK -localedef -i en_PH -f ISO-8859-1 en_PH -localedef -i en_US -f ISO-8859-15 en_US.ISO-8859-15 -localedef -i en_US -f ISO-8859-1 en_US.ISO-8859-1 -localedef -i en_US -f ISO-8859-1 en_US -localedef -i en_US -f UTF-8 en_US.UTF-8 -localedef -i en_US -f ISO-8859-1 en_US.ISO8859-1 -localedef -i es_MX -f ISO-8859-1 es_MX -localedef -i fr_FR -f ISO-8859-1 fr_FR -localedef -i it_IT -f ISO-8859-1 it_IT -localedef -i ja_JP -f EUC-JP ja_JP.eucjp -localedef -i se_NO -f UTF-8 se_NO.UTF-8 -localedef -i ta_IN -f UTF-8 ta_IN -localedef -i es_ES -f ISO-8859-1 es_ES -localedef -i fr_FR@euro -f ISO-8859-1 fr_FR@euro -localedef -i is_IS -f UTF-8 is_IS.UTF-8 -localedef -i zh_TW -f BIG5 zh_TW.BIG5 -localedef -i en_US -f ISO-8859-15 en_US.ISO-8859-15 - -echo "" -echo "Installation done!" -echo "" - -# Step 4: Start LSB test -if [ -x ${LSB_START_CMD} ] -then - ${LSB_START_CMD} -fi - -echo "---------------------------------" -echo "Run all the certification version of LSB Tests" -echo "---------------------------------" - -LSB_DIST_CHECKER="/opt/lsb/test/manager/utils/dist-checker.pl" -SESSION="${WORK_DIR}/session" -if [ ! -e ${SESSION} ] -then - echo "Error: Could not find session file." - echo "You must run LSB test from webbrower." - exit 1 -fi - -if [ -x ${LSB_DIST_CHECKER} ] -then - ${LSB_DIST_CHECKER} -v2 -f ${SESSION} - check -fi - -echo "" -echo "LSB test complete. Please check the log file in /var/opt/lsb/test/manager/results/" -echo "" - diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/lsb/lsbtest/packages_list b/Contrib-Inspur/openbmc/poky/meta/recipes-extended/lsb/lsbtest/packages_list deleted file mode 100644 index 1a6c1169..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/lsb/lsbtest/packages_list +++ /dev/null @@ -1,49 +0,0 @@ -LSB_RELEASE="released-5.0" -LSB_ARCH="lsbarch" - -BASE_PACKAGES_LIST="lsb-setup-5.0.0-2.noarch.rpm" - -RUNTIME_BASE_PACKAGES_LIST="lsb-dist-checker-5.0.0.1-1.targetarch.rpm \ - lsb-tet3-lite-3.7-27.lsb5.targetarch.rpm \ - lsb-tet3-lite-devel-3.7-27.lsb5.targetarch.rpm \ - lsb-xvfb-1.2.0-22.targetarch.rpm \ - " - -RUNTIME_PACKAGES_LIST="lsb-cmdchk-5.0.3-1.targetarch.rpm \ - lsb-libchk-5.0.3-1.targetarch.rpm \ - lsb-qm-2.2-1.lsb5.targetarch.rpm \ - lsb-task-dist-testkit-5.0.0-2.noarch.rpm \ - lsb-test-core-5.0.1-1.targetarch.rpm \ - lsb-test-cpp-t2c-5.0.0-1.targetarch.rpm \ - lsb-test-desktop-5.0.0-1.targetarch.rpm \ - lsb-test-desktop-t2c-5.0.0-1.targetarch.rpm \ - lsb-test-libstdcpp-4.1.0-22.lsb1.targetarch.rpm \ - lsb-test-olver-core-5.0.0-1.targetarch.rpm \ - lsb-test-perl-5.0.2-1.noarch.rpm \ - lsb-test-printing-5.0.1-1.targetarch.rpm \ - lsb-test-python-5.0.0-1.targetarch.rpm \ - lsb-test-qt4-azov-5.0.0-1.targetarch.rpm \ - lsb-test-xts5-5.1.5-47.lsb5.targetarch.rpm \ - lsb-test-alsa-t2c-5.1.91-4.targetarch.rpm \ - lsb-test-core-t2c-5.0.1-1.targetarch.rpm \ - lsb-test-xml2-azov-5.0.0-1.targetarch.rpm \ - " - -APP_PACKAGES_LIST="lsb-python-2.4.6-10.lsb5.targetarch.rpm \ - lsb-apache-2.2.19-5.lsb5.targetarch.rpm \ - lsb-tcl-8.5.9-21.lsb5.targetarch.rpm \ - lsb-expect-5.43.0-21.lsb5.targetarch.rpm \ - lsb-groff-1.20.1-9.lsb5.targetarch.rpm \ - lsb-raptor-1.4.21-4.lsb5.targetarch.rpm \ - lsb-xpdf-1.01-17.lsb5.targetarch.rpm \ - lsb-samba-3.5.9-5.lsb5.targetarch.rpm \ - lsb-rsync-3.0.8-3.lsb5.targetarch.rpm \ - " - -APP_TESTFILES_LIST="expect-tests.tar \ - tcl-tests.tar \ - raptor-tests.tar \ - test1.pdf \ - test2.pdf \ - " - diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/lsb/lsbtest/session b/Contrib-Inspur/openbmc/poky/meta/recipes-extended/lsb/lsbtest/session deleted file mode 100644 index 4d47e40f..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/lsb/lsbtest/session +++ /dev/null @@ -1,176 +0,0 @@ -[GENERAL] -VERBOSE_LEVEL: 1 -ARCHITECTURE: targetarch -USE_INTERNET: 1 -STD_VERSION: LSB 5.0 -STD_PROFILE: no -[cmdchk] -RUN: 1 -VERSION: local|* - -[libchk] -RUN: 1 -VERSION: local|* - -[alsa-t2c] -RUN: 1 -VERSION: local|* - -[alsa-t2c|local|*] -AUTOREPLY_TESTSUITE_DIR: /opt/lsb/test/alsa-t2c -AUTOREPLY_RESULTS_DIR: /opt/lsb/test/alsa-t2c/results - -[core] -RUN: 1 -VERSION: local|* - -[core|local|*] -AUTOREPLY_PROVIDES_BASH: n -AUTOREPLY_TESTRUN_PATH: /home/tet/test_sets -AUTOREPLY_PERSON: Automated -AUTOREPLY_KERNEL_NAME: vmlinuz -AUTOREPLY_INSTALL_LSBPAM_CONF: y -AUTOREPLY_PROVIDES_C_SHELL: n -AUTOREPLY_ORGANISATION: N/A -AUTOREPLY_SET_PASS_MIN_DAYS: y -AUTOREPLY_PROVIDES_SYSV_INIT: -AUTOREPLY_ISNTALL_DEVS: y -AUTOREPLY_SUPPORTS_FILE_CMD: y -AUTOREPLY_TEST_SYSTEM: Distribution Checker -AUTOREPLY_TESTSUITE_DIR: /opt/lsb/test/core/tet/test_sets -AUTOREPLY_SUPPORTS_NLS: n -AUTOREPLY_SUPPORTS_PROCESS_ACCOUNTING: n -AUTOREPLY_PATH_TO_RC.D: -AUTOREPLY_ALLOWS_MAKEDEV: n -AUTOREPLY_RESULTS_DIR: /opt/lsb/test/core/tet/test_sets/results - -[core-t2c] -RUN: 1 -VERSION: local|* - -[core-t2c|local|*] -AUTOREPLY_TESTSUITE_DIR: /opt/lsb/test/core-t2c -AUTOREPLY_RESULTS_DIR: /opt/lsb/test/core-t2c/results - -[cpp-t2c] -RUN: 1 -VERSION: local|* - -[cpp-t2c|local|*] -AUTOREPLY_TESTSUITE_DIR: /opt/lsb/test/cpp-t2c -AUTOREPLY_RESULTS_DIR: /opt/lsb/test/cpp-t2c/results - -[desktop] -RUN: 1 -VERSION: local|* - -[desktop|local|*] -AUTOREPLY_DESKTOP_ENVIRONMENT: [default] -AUTOREPLY_PERSON: Automated -AUTOREPLY_X_CLIENT_HOSTNAME: -AUTOREPLY_TEST_SYSTEM: Distribution Checker -AUTOREPLY_TESTSUITE_DIR: /opt/lsb/test/desktop -AUTOREPLY_X11_FONT_PATH: [default] -AUTOREPLY_SHOW_SUMMARY_REPORT: -AUTOREPLY_ORGANISATION: N/A -AUTOREPLY_XVFB_DISPLAY: [default] - -[desktop-t2c] -RUN: 1 -VERSION: local|* - -[desktop-t2c|local|*] -AUTOREPLY_TESTSUITE_DIR: /opt/lsb/test/desktop-t2c -AUTOREPLY_RESULTS_DIR: /opt/lsb/test/desktop-t2c/results - -[libstdcpp] -RUN: 1 -VERSION: local|* - -[libstdcpp|local|*] -AUTOREPLY_TEST_SYSTEM: Distribution Checker -AUTOREPLY_PERSON: Automated -AUTOREPLY_TESTSUITE_DIR: /opt/lsb/test/libstdcpp_4.1.0 -AUTOREPLY_ORGANISATION: N/A -AUTOREPLY_GNU_TRIPLET: - -[olver] -RUN: 1 -VERSION: local|* - -[olver|local|*] -AUTOREPLY_TESTSUITE_DIR: /opt/lsb/test/olver-core -AUTOREPLY_RESULTS_DIR: /var/opt/lsb/test/olver-core - -[perl] -RUN: 1 -VERSION: local|* - -[perl|local|*] -AUTOREPLY_TESTSUITE_DIR: /opt/lsb/test/perl -AUTOREPLY_RESULTS_DIR: /opt/lsb/test/perl/results - -[printing] -RUN: 1 -VERSION: local|* - -[printing|local|*] -AUTOREPLY_TESTSUITE_DIR: /opt/lsb/test/printing -AUTOREPLY_RESULTS_DIR: /opt/lsb/test/printing/results - -[python] -RUN: 1 -VERSION: local|* - -[python|local|*] -AUTOREPLY_TESTSUITE_DIR: /opt/lsb/test/python -AUTOREPLY_RESULTS_DIR: /opt/lsb/test/python/results - -[xml2-azov] -RUN: 1 -VERSION: local|* - -[xts5] -RUN: 1 -VERSION: local|* - -[xts5|local|*] -AUTOREPLY_XT_FONTPATH_GOOD: [default] -AUTOREPLY_TESTSUITE_DIR: /opt/lsb/test/xts5 -AUTOREPLY_XVFB_DISPLAY: [default] -AUTOREPLY_RESULTS_DIR: /opt/lsb/test/xts5/xts5/results -AUTOREPLY_XT_FONTPATH: [default] -AUTOREPLY_X_CLIENT_HOSTNAME: - -[apache] -RUN: 1 -VERSION: local|* - -[expect] -RUN: 1 -VERSION: local|* - -[groff] -RUN: 1 -VERSION: local|* - -[raptor] -RUN: 1 -VERSION: local|* - -[rsync] -RUN: 1 -VERSION: local|* - -[samba] -RUN: 1 -VERSION: local|* - -[tcl] -RUN: 1 -VERSION: local|* - -[xpdf] -RUN: 1 -VERSION: local|* - diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/lsb/lsbtest_1.0.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-extended/lsb/lsbtest_1.0.bb deleted file mode 100644 index a90c023d..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/lsb/lsbtest_1.0.bb +++ /dev/null @@ -1,49 +0,0 @@ -SUMMARY = "Automates Linux Standard Base (LSB) tests" -HOMEPAGE = "https://wiki.debian.org/LSBInitScripts" -SECTION = "console/utils" -LICENSE = "GPLv2" -PR = "r3" - -LIC_FILES_CHKSUM = "file://LSB_Test.sh;beginline=3;endline=16;md5=7063bb54b04719df0716b513447f4fc0" - -SRC_URI = "file://LSB_Test.sh \ - file://packages_list \ - file://session \ - " -RDEPENDS_${PN} = "lsb rpm" - -S = "${WORKDIR}" - -do_install() { - install -d ${D}/opt/lsb-test - install -m 0755 ${S}/LSB_Test.sh ${D}/opt/lsb-test/LSB_Test.sh - install -m 0644 ${S}/packages_list ${D}/opt/lsb-test/packages_list - install -m 0644 ${S}/session ${D}/opt/lsb-test/session - if [ "${TARGET_ARCH}" = "i586" ] || [ "${TARGET_ARCH}" = "i686" ];then - sed -i -e 's/lsbarch/ia32/g' -e 's/targetarch/i486/g' ${D}/opt/lsb-test/packages_list - sed -i -e 's/targetarch/x86/g' ${D}/opt/lsb-test/session - fi - if [ "${TARGET_ARCH}" = "x86_64" ];then - sed -i -e 's/lsbarch/amd64/g' -e 's/targetarch/x86_64/g' ${D}/opt/lsb-test/packages_list - sed -i -e 's/targetarch/x86-64/g' ${D}/opt/lsb-test/session - fi - if [ "${TARGET_ARCH}" = "powerpc" ];then - sed -i -e 's/lsbarch/ppc32/g' -e 's/targetarch/ppc/g' ${D}/opt/lsb-test/packages_list - sed -i -e 's/targetarch/PPC32/g' ${D}/opt/lsb-test/session - fi - - # For a ppc64 target. the default userspace is 32b. - # Therefore, only change the lsbarch and targetarch - # in the package_list when MLIB=lib64 is being used. - # Otherwise, by default, the ppc32 LSB packages - # will be downloaded by LSB_Test.sh - if [ "${TARGET_ARCH}" = "powerpc64" ];then - if [ "${PN}" != "${BPN}" ];then - sed -i -e 's/lsbarch/ppc64/g' -e 's/targetarch/ppc64/g' ${D}/opt/lsb-test/packages_list - sed -i -e 's/targetarch/PPC64/g' ${D}/opt/lsb-test/session - fi - fi -} - -FILES_${PN} += "/opt/lsb-test/* \ - " diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/ltp/ltp/0001-Add-configure-time-check-for-getdents-getdents64-API.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-extended/ltp/ltp/0001-Add-configure-time-check-for-getdents-getdents64-API.patch new file mode 100644 index 00000000..bfceadb1 --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-extended/ltp/ltp/0001-Add-configure-time-check-for-getdents-getdents64-API.patch @@ -0,0 +1,72 @@ +From 404dfeb4faef213b0450f173b60cd7080edec349 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Fri, 26 Jul 2019 10:32:29 -0700 +Subject: [PATCH 1/2] Add configure time check for getdents/getdents64 APIs + +glibc 2.30 has added wrapper for getdents64 this will help in detecting +right condition to use fallback + +Check for getdents API as well while here + +Upstream-Status: Submitted [http://lists.linux.it/pipermail/ltp/2019-July/012954.html] +Signed-off-by: Khem Raj +--- + configure.ac | 2 ++ + testcases/kernel/syscalls/getdents/getdents.h | 8 ++++++-- + 2 files changed, 8 insertions(+), 2 deletions(-) + +--- a/configure.ac ++++ b/configure.ac +@@ -65,6 +65,8 @@ AC_CHECK_FUNCS([ \ + fallocate \ + fchownat \ + fstatat \ ++ getdents \ ++ getdents64 \ + kcmp \ + mkdirat \ + mknodat \ +--- a/testcases/kernel/syscalls/getdents/getdents.h ++++ b/testcases/kernel/syscalls/getdents/getdents.h +@@ -23,7 +23,7 @@ + #include + #include "test.h" + #include "lapi/syscalls.h" +- ++#include "config.h" + /* + * See fs/compat.c struct compat_linux_dirent + */ +@@ -34,12 +34,17 @@ struct linux_dirent { + char d_name[]; + }; + ++#if HAVE_GETDENTS ++#include ++#else + static inline int + getdents(unsigned int fd, struct linux_dirent *dirp, unsigned int size) + { + return ltp_syscall(__NR_getdents, fd, dirp, size); + } + ++#endif /* HAVE_GETDENTS */ ++ + struct linux_dirent64 { + uint64_t d_ino; + int64_t d_off; +@@ -48,10 +53,13 @@ struct linux_dirent64 { + char d_name[]; + }; + ++#if HAVE_GETDENTS64 ++#include ++#else + static inline int + getdents64(unsigned int fd, struct linux_dirent64 *dirp64, unsigned int size) + { + return ltp_syscall(__NR_getdents64, fd, dirp64, size); + } +- ++#endif /* HAVE_GETDENTS64 */ + #endif /* GETDENTS_H */ diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/ltp/ltp/0001-build-Add-option-to-select-libc-implementation.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-extended/ltp/ltp/0001-build-Add-option-to-select-libc-implementation.patch new file mode 100644 index 00000000..b5c25c56 --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-extended/ltp/ltp/0001-build-Add-option-to-select-libc-implementation.patch @@ -0,0 +1,149 @@ +From ec282980e6eee96f5b74aba464141f86049263e6 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Thu, 7 Jan 2016 18:19:03 +0000 +Subject: [PATCH] build: Add option to select libc implementation + +There are more than glibc for C library implementation available on +linux now a days, uclibc cloaked like glibc but musl e.g. is very +different and does not implement all GNU extentions + +Disable tests specifically not building _yet_ on musl based systems + +Upstream-Status: Pending + +Signed-off-by: Khem Raj +--- + Makefile | 5 +++++ + testcases/kernel/Makefile | 5 ++++- + testcases/kernel/sched/Makefile | 4 +++- + testcases/kernel/syscalls/Makefile | 5 +++++ + testcases/network/nfsv4/acl/Makefile | 4 ++++ + testcases/network/rpc/basic_tests/Makefile | 5 +++++ + testcases/realtime/func/pi-tests/Makefile | 4 ++++ + testcases/realtime/stress/pi-tests/Makefile | 5 +++++ + 8 files changed, 35 insertions(+), 2 deletions(-) + +diff --git a/Makefile b/Makefile +index 768ca46..e9d679a 100644 +--- a/Makefile ++++ b/Makefile +@@ -41,6 +41,11 @@ vpath %.mk $(top_srcdir)/mk:$(top_srcdir)/mk/include + UCLINUX ?= 0 + export UCLINUX + ++# System C library implementation (glibc,uclibc,musl etc.) ++# default to glibc if not set ++LIBC ?= glibc ++export LIBC ++ + # CLEAN_TARGETS: Targets which exist solely in clean. + # COMMON_TARGETS: Targets which exist in all, clean, and install. + # INSTALL_TARGETS: Targets which exist in clean and install (contains +diff --git a/testcases/kernel/Makefile b/testcases/kernel/Makefile +index 39d79c7..24a57d9 100644 +--- a/testcases/kernel/Makefile ++++ b/testcases/kernel/Makefile +@@ -49,12 +49,15 @@ SUBDIRS += connectors \ + logging \ + mem \ + numa \ +- pty \ + sched \ + security \ + timers \ + tracing \ + ++ifneq ($(LIBC),musl) ++SUBDIRS += pty ++endif ++ + ifeq ($(WITH_POWER_MANAGEMENT_TESTSUITE),yes) + SUBDIRS += power_management + endif +diff --git a/testcases/kernel/sched/Makefile b/testcases/kernel/sched/Makefile +index 6a57d79..74bb933 100644 +--- a/testcases/kernel/sched/Makefile ++++ b/testcases/kernel/sched/Makefile +@@ -23,5 +23,7 @@ + top_srcdir ?= ../../.. + + include $(top_srcdir)/include/mk/env_pre.mk +- ++ifeq ($(LIBC),musl) ++ FILTER_OUT_DIRS += process_stress ++endif + include $(top_srcdir)/include/mk/generic_trunk_target.mk +diff --git a/testcases/kernel/syscalls/Makefile b/testcases/kernel/syscalls/Makefile +index 45a00cf..d1becd0 100644 +--- a/testcases/kernel/syscalls/Makefile ++++ b/testcases/kernel/syscalls/Makefile +@@ -28,6 +28,11 @@ ifeq ($(UCLINUX),1) + FILTER_OUT_DIRS += capget capset chmod chown clone fork getcontext llseek \ + mincore mprotect nftw profil remap_file_pages sbrk + endif ++ifeq ($(LIBC),musl) ++FILTER_OUT_DIRS += confstr fmtmsg getcontext ioctl mallopt profil \ ++ rt_sigsuspend setdomainname sethostname sigsuspend \ ++ ustat ++endif + + ifeq ($(UCLIBC),1) + FILTER_OUT_DIRS += profil +diff --git a/testcases/network/nfsv4/acl/Makefile b/testcases/network/nfsv4/acl/Makefile +index 8c55a6b..f7cda62 100644 +--- a/testcases/network/nfsv4/acl/Makefile ++++ b/testcases/network/nfsv4/acl/Makefile +@@ -26,4 +26,8 @@ include $(top_srcdir)/include/mk/env_pre.mk + + LDLIBS += $(ACL_LIBS) + ++ifeq ($(LIBC),musl) ++FILTER_OUT_MAKE_TARGETS := acl1 ++endif ++ + include $(top_srcdir)/include/mk/generic_leaf_target.mk +diff --git a/testcases/network/rpc/basic_tests/Makefile b/testcases/network/rpc/basic_tests/Makefile +index 66e9d56..ea8eb8a 100644 +--- a/testcases/network/rpc/basic_tests/Makefile ++++ b/testcases/network/rpc/basic_tests/Makefile +@@ -23,4 +23,9 @@ + top_srcdir ?= ../../../.. + + include $(top_srcdir)/include/mk/env_pre.mk ++ ++ifeq ($(LIBC),musl) ++FILTER_OUT_DIRS += rpc01 ++endif ++ + include $(top_srcdir)/include/mk/generic_trunk_target.mk +diff --git a/testcases/realtime/func/pi-tests/Makefile b/testcases/realtime/func/pi-tests/Makefile +index 68616a7..748754b 100644 +--- a/testcases/realtime/func/pi-tests/Makefile ++++ b/testcases/realtime/func/pi-tests/Makefile +@@ -27,5 +27,9 @@ include $(top_srcdir)/include/mk/env_pre.mk + include $(abs_srcdir)/../../config.mk + + MAKE_TARGETS := testpi-0 testpi-1 testpi-2 testpi-4 testpi-5 testpi-6 testpi-7 sbrk_mutex ++ifeq ($(LIBC),musl) ++FILTER_OUT_MAKE_TARGETS := testpi-5 testpi-6 sbrk_mutex ++endif ++ + + include $(top_srcdir)/include/mk/generic_leaf_target.mk +diff --git a/testcases/realtime/stress/pi-tests/Makefile b/testcases/realtime/stress/pi-tests/Makefile +index 1881f75..266e0b8 100644 +--- a/testcases/realtime/stress/pi-tests/Makefile ++++ b/testcases/realtime/stress/pi-tests/Makefile +@@ -24,4 +24,9 @@ top_srcdir ?= ../../../.. + + include $(top_srcdir)/include/mk/env_pre.mk + include $(abs_srcdir)/../../config.mk ++ ++ifeq ($(LIBC),musl) ++FILTER_OUT_MAKE_TARGETS := testpi-3 ++endif ++ + include $(top_srcdir)/include/mk/generic_leaf_target.mk +-- +2.7.4 + diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/ltp/ltp/0001-cve-2017-17052-Avoid-unsafe-exits-in-threads.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-extended/ltp/ltp/0001-cve-2017-17052-Avoid-unsafe-exits-in-threads.patch new file mode 100644 index 00000000..cc400813 --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-extended/ltp/ltp/0001-cve-2017-17052-Avoid-unsafe-exits-in-threads.patch @@ -0,0 +1,64 @@ +From e3a8502d0a4f8a44ddd02ca4b2efc097133fb9f7 Mon Sep 17 00:00:00 2001 +From: Mathias Fiedler +Date: Fri, 23 Aug 2019 12:46:48 +0200 +Subject: [PATCH] cve-2017-17052: Avoid unsafe exits in threads + +According to manpage exit(3) calling exit is not thread-safe. +And with glibc 2.28 (and probably also with glibc >=2.27) sometimes +child processes created in fork_thread can get stuck on process exit in +glibc's __run_exit_handlers trying to acquire some lock which was in +locked state while the fork was created. This can happen when exit is +called in mmap_thread concurrently to the fork. +While the main process will still return with PASSED some of its +children are left behind. + +Comparing the source code with the original program as described in the +commit 2b7e8665b4ff51c034c55df3cff76518d1a9ee3a of linux kernel >=4.13 +the exits in mmap_thread and fork_thread should not be necessary to +trigger the original bug. + +Therefore those exit calls are removed. The mmap_thread and fork_thread +should still exit when their corresponding main thread in do_test_fork +calls exit_group. The remaining exit in do_test_fork will be called in +the main thread without any concurrent thread in the same process. + +Signed-off-by: Mathias Fiedler +Acked-by: Cyril Hrubis +Acked-by: Jan Stancek + +Upstream-Status: Backport +[https://github.com/linux-test-project/ltp/commit/9f0b452c1af4bcb54da35711eb3fa77334a350b4] + +CVE: CVE-2017-17052 + +Signed-off-by: He Zhe +--- + testcases/cve/cve-2017-17052.c | 5 ----- + 1 file changed, 5 deletions(-) + +diff --git a/testcases/cve/cve-2017-17052.c b/testcases/cve/cve-2017-17052.c +index d7da7e919..18cd2a6d7 100644 +--- a/testcases/cve/cve-2017-17052.c ++++ b/testcases/cve/cve-2017-17052.c +@@ -58,8 +58,6 @@ static void *mmap_thread(void *arg) + for (;;) { + SAFE_MMAP(NULL, 0x1000000, PROT_READ, + MAP_POPULATE|MAP_ANONYMOUS|MAP_PRIVATE, -1, 0); +- if (*do_exit) +- exit(0); + } + + return arg; +@@ -67,9 +65,6 @@ static void *mmap_thread(void *arg) + + static void *fork_thread(void *arg) + { +- if (*do_exit) +- exit(0); +- + usleep(rand() % 10000); + SAFE_FORK(); + +-- +2.17.1 + diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/ltp/ltp/0001-cve-meltdown.c-Fix-kernel-symbol-finding.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-extended/ltp/ltp/0001-cve-meltdown.c-Fix-kernel-symbol-finding.patch new file mode 100644 index 00000000..94f6f5a1 --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-extended/ltp/ltp/0001-cve-meltdown.c-Fix-kernel-symbol-finding.patch @@ -0,0 +1,81 @@ +From fbeda82f440a0098be42dd668cbc47212a86ab48 Mon Sep 17 00:00:00 2001 +From: He Zhe +Date: Wed, 21 Aug 2019 16:27:24 +0800 +Subject: [PATCH] cve/meltdown.c: Fix kernel symbol finding + +meltdown case fails as below. +safe_file_ops.c:219: BROK: Expected 3 conversions got 2 at meltdown.c:272 + +find_kernel_symbol is defined to try twice with each of /proc/kallsyms and +/boot/System.map-%s. Currently if the symbol is not found in /proc/kallsyms, +when kernel option CONFIG_KALLSYMS_ALL is disabled, it would stop the case +immediately due to SAFE_FILE_LINES_SCANF. + +This patch turns to use FILE_LINES_SCANF to give find_kernel_symbol second +chance. + +[jstancek] Fix also condition introduced in 7709d2ae92ea, even if + /proc/kallsyms is disabled, we still want to try System.map. + +Signed-off-by: He Zhe +Signed-off-by: Jan Stancek + +Upstream-Status: Backport +[https://github.com/linux-test-project/ltp/commit/c2049b5c874bc071f8185bffb5fd7dcb042d9ec8] + +Remove the hunk for upstream 7709d2ae92ea ("cve/meltdown.c: abort the test if kallsyms was not enabled") +that has been covered by this patch. + +Signed-off-by: He Zhe +--- + testcases/cve/meltdown.c | 13 ++++++++++--- + 1 file changed, 10 insertions(+), 3 deletions(-) + +diff --git a/testcases/cve/meltdown.c b/testcases/cve/meltdown.c +index a53ea9b..22651a6 100644 +--- a/testcases/cve/meltdown.c ++++ b/testcases/cve/meltdown.c +@@ -267,9 +267,15 @@ find_symbol_in_file(const char *filename, const char *symname) + int ret, read; + char fmt[strlen(symname) + 64]; + ++ tst_res(TINFO, "Looking for %s in %s", symname, filename); ++ if (access(filename, F_OK) == -1) { ++ tst_res(TINFO, "%s not available", filename); ++ return 0; ++ } ++ + sprintf(fmt, "%%lx %%c %s%%c", symname); + +- ret = SAFE_FILE_LINES_SCANF(filename, fmt, &addr, &type, &read); ++ ret = FILE_LINES_SCANF(filename, fmt, &addr, &type, &read); + if (ret) + return 0; + +@@ -287,13 +293,11 @@ find_kernel_symbol(const char *name) + if (addr) + return addr; + +- tst_res(TINFO, "not found '%s' in /proc/kallsyms", name); + if (uname(&utsname) < 0) + tst_brk(TBROK | TERRNO, "uname"); + + sprintf(systemmap, "/boot/System.map-%s", utsname.release); + +- tst_res(TINFO, "looking in '%s'\n", systemmap); + addr = find_symbol_in_file(systemmap, name); + return addr; + } +@@ -308,6 +312,9 @@ static void setup(void) + saved_cmdline_addr = find_kernel_symbol("saved_command_line"); + tst_res(TINFO, "&saved_command_line == 0x%lx", saved_cmdline_addr); + ++ if (!saved_cmdline_addr) ++ tst_brk(TCONF, "saved_command_line not found"); ++ + spec_fd = SAFE_OPEN("/proc/cmdline", O_RDONLY); + + memset(target_array, 1, sizeof(target_array)); +-- +2.7.4 + diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/ltp/ltp/0001-mkswap01.sh-Add-udevadm-trigger-before-swap-verifica.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-extended/ltp/ltp/0001-mkswap01.sh-Add-udevadm-trigger-before-swap-verifica.patch new file mode 100644 index 00000000..1b433d3a --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-extended/ltp/ltp/0001-mkswap01.sh-Add-udevadm-trigger-before-swap-verifica.patch @@ -0,0 +1,35 @@ +From fae8852a63d9fa6e56fb8b24eaf10560bd13757f Mon Sep 17 00:00:00 2001 +From: Yongxin Liu +Date: Tue, 12 Nov 2019 11:33:50 +0800 +Subject: [PATCH] mkswap01.sh: Add "udevadm trigger" before swap verification + +Fix: https://github.com/linux-test-project/ltp/issues/458 + +Sometimes the swap device cannot show up in /dev/disk/by-uuid/ +or /dev/disk/by-lable/ due to the issue #458. When this issue +happens, "blkid -c /dev/null" and "ls /dev/disk/by-uuid/" show +different UUID of the device. + +Upstream-Status: Submitted [https://patchwork.ozlabs.org/patch/1193414] + +Signed-off-by: Yongxin Liu +--- + testcases/commands/mkswap/mkswap01.sh | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/testcases/commands/mkswap/mkswap01.sh b/testcases/commands/mkswap/mkswap01.sh +index 3a348c6e6..9437c4a4e 100755 +--- a/testcases/commands/mkswap/mkswap01.sh ++++ b/testcases/commands/mkswap/mkswap01.sh +@@ -129,6 +129,8 @@ mkswap_test() + return + fi + ++ udevadm trigger --name-match=$TST_DEVICE ++ + if [ -n "$device" ]; then + mkswap_verify "$mkswap_op" "$op_arg" "$device" "$size" "$dev_file" + if [ $? -ne 0 ]; then +-- +2.14.4 + diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/ltp/ltp/0001-open_posix_testsuite-mmap24-2-Relax-condition-a-bit.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-extended/ltp/ltp/0001-open_posix_testsuite-mmap24-2-Relax-condition-a-bit.patch deleted file mode 100644 index 84736053..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/ltp/ltp/0001-open_posix_testsuite-mmap24-2-Relax-condition-a-bit.patch +++ /dev/null @@ -1,68 +0,0 @@ -From 85c972f730e8efe891a06ea3a2dfb5cbbdfbfbf4 Mon Sep 17 00:00:00 2001 -From: "Hongzhi.Song" -Date: Wed, 10 Oct 2018 22:07:05 -0400 -Subject: [PATCH] open_posix_testsuite/mmap24-2: Relax condition a bit - -Mips will return EINVAL instead of ENOMEM as expected -if the range [addr + len) exceeds TASK_SIZE. - -Linux kernel code: arch/mips/mm/mmap.c -if (flags & MAP_FIXED) { - /* Even MAP_FIXED mappings must reside within TASK_SIZE */ - if (TASK_SIZE - len < addr) - return -EINVAL; - -Relax the condition and accept both ENOMEM and EINVAL -as expected outcome. - -Upstream-Status: Submitted [https://lists.linux.it/pipermail/ltp/2018-October/009624.html] - -Signed-off-by: Hongzhi.Song ---- - .../open_posix_testsuite/conformance/interfaces/mmap/24-2.c | 10 +++++----- - 1 file changed, 5 insertions(+), 5 deletions(-) - -diff --git a/testcases/open_posix_testsuite/conformance/interfaces/mmap/24-2.c b/testcases/open_posix_testsuite/conformance/interfaces/mmap/24-2.c -index de51d43..810e5c8 100644 ---- a/testcases/open_posix_testsuite/conformance/interfaces/mmap/24-2.c -+++ b/testcases/open_posix_testsuite/conformance/interfaces/mmap/24-2.c -@@ -7,7 +7,7 @@ - * source tree. - * - * The mmap() function shall fail if: -- * [ENOMEM] MAP_FIXED was specified, -+ * [ENOMEM or EINVAL] MAP_FIXED was specified, - * and the range [addr,addr+len) exceeds that allowed - * for the address space of a process; or, if MAP_FIXED was not specified and - * there is insufficient room in the address space to effect the mapping. -@@ -15,7 +15,7 @@ - * Test Step: - * 1. Map a shared memory object, with size exceeding the value get from - * rlim_cur of resource RLIMIT_AS, setting MAP_FIXED; -- * 3. Should get ENOMEM. -+ * 3. Should get ENOMEM or EINVAL. - */ - - #include -@@ -92,8 +92,8 @@ int main(void) - (unsigned long)len); - pa = mmap(addr, len, PROT_READ | PROT_WRITE, MAP_FIXED | MAP_SHARED, fd, - 0); -- if (pa == MAP_FAILED && errno == ENOMEM) { -- printf("Got ENOMEM: %s\nTest PASSED\n", strerror(errno)); -+ if (pa == MAP_FAILED && (errno == ENOMEM || errno == EINVAL)) { -+ printf("Got ENOMEM or EINVAL: %s\nTest PASSED\n", strerror(errno)); - exit(PTS_PASS); - } - -@@ -102,6 +102,6 @@ int main(void) - else - munmap(pa, len); - close(fd); -- printf("Test Fail: Did not get ENOMEM as expected\n"); -+ printf("Test Failed: Did not get ENOMEM or EINVAL as expected\n"); - return PTS_FAIL; - } --- -2.8.1 - diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/ltp/ltp/0001-overcommit_memory-update-for-mm-fix-false-positive-O.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-extended/ltp/ltp/0001-overcommit_memory-update-for-mm-fix-false-positive-O.patch new file mode 100644 index 00000000..bed84712 --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-extended/ltp/ltp/0001-overcommit_memory-update-for-mm-fix-false-positive-O.patch @@ -0,0 +1,57 @@ +From d656a447893dccc310c975a239f482278550c3e0 Mon Sep 17 00:00:00 2001 +From: Jan Stancek +Date: Tue, 21 May 2019 10:10:44 +0200 +Subject: [PATCH] overcommit_memory: update for "mm: fix false-positive + OVERCOMMIT_GUESS failures" + +commit 8c7829b04c52 ("mm: fix false-positive OVERCOMMIT_GUESS failures") +changes logic of __vm_enough_memory(), simplifying it to: + When in GUESS mode, catch wild allocations by comparing their request + size to total amount of ram and swap in the system. + +Testcase currently allocates mem_total + swap_total, which doesn't trigger +new condition. Make it more extreme, but assuming free_total / 2 will PASS, +and 2*sum_total will FAIL. + +Signed-off-by: Jan Stancek +Acked-by: Cyril Hrubis + +Upstream-Status: Backport [https://github.com/linux-test-project/ltp/commit/d656a447893dccc310c975a239f482278550c3e0] +Signed-off-by: He Zhe +--- + testcases/kernel/mem/tunable/overcommit_memory.c | 11 ++++------- + 1 file changed, 4 insertions(+), 7 deletions(-) + +diff --git a/testcases/kernel/mem/tunable/overcommit_memory.c b/testcases/kernel/mem/tunable/overcommit_memory.c +index 555298f..345764d 100644 +--- a/testcases/kernel/mem/tunable/overcommit_memory.c ++++ b/testcases/kernel/mem/tunable/overcommit_memory.c +@@ -36,11 +36,10 @@ + * + * The program is designed to test the two tunables: + * +- * When overcommit_memory = 0, allocatable memory can't overextends +- * the amount of free memory. I choose the three cases: ++ * When overcommit_memory = 0, allocatable memory can't overextend ++ * the amount of total memory: + * a. less than free_total: free_total / 2, alloc should pass. +- * b. greater than free_total: free_total * 2, alloc should fail. +- * c. equal to sum_total: sum_tatal, alloc should fail ++ * b. greater than sum_total: sum_total * 2, alloc should fail. + * + * When overcommit_memory = 1, it can alloc enough much memory, I + * choose the three cases: +@@ -164,9 +163,7 @@ static void overcommit_memory_test(void) + + update_mem(); + alloc_and_check(free_total / 2, EXPECT_PASS); +- update_mem(); +- alloc_and_check(free_total * 2, EXPECT_FAIL); +- alloc_and_check(sum_total, EXPECT_FAIL); ++ alloc_and_check(sum_total * 2, EXPECT_FAIL); + + /* start to test overcommit_memory=1 */ + set_sys_tune("overcommit_memory", 1, 1); +-- +2.7.4 + diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/ltp/ltp/0001-syscall-rt_sigtimedwait01-Fix-wrong-sigset-length-fo.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-extended/ltp/ltp/0001-syscall-rt_sigtimedwait01-Fix-wrong-sigset-length-fo.patch new file mode 100644 index 00000000..0e56c082 --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-extended/ltp/ltp/0001-syscall-rt_sigtimedwait01-Fix-wrong-sigset-length-fo.patch @@ -0,0 +1,46 @@ +From a5046625eaeed2d3fba456c3ba84c6c141c2ad7c Mon Sep 17 00:00:00 2001 +From: He Zhe +Date: Thu, 29 Aug 2019 21:09:46 +0800 +Subject: [PATCH] syscall/rt_sigtimedwait01: Fix wrong sigset length for MIPS + +rt_sigtimedwait01 fails as follow on MIPS arches +rt_sigtimedwait01 1 TFAIL : .../sigwaitinfo01.c:58: test_empty_set +(.../sigwaitinfo01.c: 148): Unexpected failure: +TEST_ERRNO=EINVAL(22): Invalid argument + +As this case purposely bypasses glibc, it should align with the size of kernel +definition of sigset_t which is different from other arches. +https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/arch/mips/include/uapi/asm/signal.h#n15 + +This patch turns to use _NSIG which is always right for all arches. + +Upstream-Status: Backport [a5046625eaeed2d3fba456c3ba84c6c141c2ad7c] + +Suggested-by: Jan Stancek +Acked-by: Jan Stancek +Acked-by: Cyril Hrubis +Signed-off-by: He Zhe +Signed-off-by: Petr Vorel +--- + testcases/kernel/syscalls/sigwaitinfo/sigwaitinfo01.c | 5 ++--- + 1 file changed, 2 insertions(+), 3 deletions(-) + +diff --git a/testcases/kernel/syscalls/sigwaitinfo/sigwaitinfo01.c b/testcases/kernel/syscalls/sigwaitinfo/sigwaitinfo01.c +index 5a32ce1..6a30c27 100644 +--- a/testcases/kernel/syscalls/sigwaitinfo/sigwaitinfo01.c ++++ b/testcases/kernel/syscalls/sigwaitinfo/sigwaitinfo01.c +@@ -128,9 +128,8 @@ static int my_sigtimedwait(const sigset_t * set, siginfo_t * info, + static int my_rt_sigtimedwait(const sigset_t * set, siginfo_t * info, + struct timespec *timeout) + { +- +- /* The last argument is (number_of_signals)/(bits_per_byte), which are 64 and 8, resp. */ +- return ltp_syscall(__NR_rt_sigtimedwait, set, info, timeout, 8); ++ /* _NSIG is always the right number of bits of signal map for all arches */ ++ return ltp_syscall(__NR_rt_sigtimedwait, set, info, timeout, _NSIG/8); + } + #endif + +-- +2.7.4 + diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/ltp/ltp/0001-syscalls-setrlimit03.c-read-proc-sys-fs-nr_open-for-.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-extended/ltp/ltp/0001-syscalls-setrlimit03.c-read-proc-sys-fs-nr_open-for-.patch deleted file mode 100644 index 39623c37..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/ltp/ltp/0001-syscalls-setrlimit03.c-read-proc-sys-fs-nr_open-for-.patch +++ /dev/null @@ -1,70 +0,0 @@ -From db57ddc1497e72947da2b14f471ab521478ef99d Mon Sep 17 00:00:00 2001 -From: Tommi Rantala -Date: Thu, 31 Jan 2019 19:49:00 +0200 -Subject: [PATCH] syscalls/setrlimit03.c: read /proc/sys/fs/nr_open for - RLIMIT_NOFILE limit - -Since kernel v2.6.25 RLIMIT_NOFILE limit is no longer hardcoded to -NR_OPEN, but can be set via /proc/sys/fs/nr_open, see kernel commit -9cfe015aa424b3c003baba3841a60dd9b5ad319b ("get rid of NR_OPEN and -introduce a sysctl_nr_open"). - -nr_open default value is 1024*1024, so setrlimit03 has been passing fine -on new kernels, only "unexpectedly succeeding" if nr_open is set to some -larger value. - -Signed-off-by: Tommi Rantala -Reviewed-by: Cyril Hrubis - -Upstream-Status: Backport [db57ddc1497e ("syscalls/setrlimit03.c: read /proc/sys/fs/nr_open for RLIMIT_NOFILE limit")] - -Signed-off-by: He Zhe ---- - testcases/kernel/syscalls/setrlimit/setrlimit03.c | 13 +++++++++++-- - 1 file changed, 11 insertions(+), 2 deletions(-) - -diff --git a/testcases/kernel/syscalls/setrlimit/setrlimit03.c b/testcases/kernel/syscalls/setrlimit/setrlimit03.c -index 29b52aa..12455fe 100644 ---- a/testcases/kernel/syscalls/setrlimit/setrlimit03.c -+++ b/testcases/kernel/syscalls/setrlimit/setrlimit03.c -@@ -35,7 +35,10 @@ - # define NR_OPEN (1024*1024) - #endif - -+#define NR_OPEN_PATH "/proc/sys/fs/nr_open" -+ - static struct rlimit rlim1, rlim2; -+static unsigned int nr_open = NR_OPEN; - - static struct tcase { - struct rlimit *rlimt; -@@ -51,7 +54,10 @@ static void verify_setrlimit(unsigned int n) - - TEST(setrlimit(RLIMIT_NOFILE, tc->rlimt)); - if (TST_RET != -1) { -- tst_res(TFAIL, "call succeeded unexpectedly"); -+ tst_res(TFAIL, "call succeeded unexpectedly " -+ "(nr_open=%u rlim_cur=%lu rlim_max=%lu)", nr_open, -+ (unsigned long)(tc->rlimt->rlim_cur), -+ (unsigned long)(tc->rlimt->rlim_max)); - return; - } - -@@ -65,10 +71,13 @@ static void verify_setrlimit(unsigned int n) - - static void setup(void) - { -+ if (!access(NR_OPEN_PATH, F_OK)) -+ SAFE_FILE_SCANF(NR_OPEN_PATH, "%u", &nr_open); -+ - SAFE_GETRLIMIT(RLIMIT_NOFILE, &rlim1); - rlim2.rlim_max = rlim1.rlim_cur; - rlim2.rlim_cur = rlim1.rlim_max + 1; -- rlim1.rlim_max = NR_OPEN + 1; -+ rlim1.rlim_max = nr_open + 1; - } - - static struct tst_test test = { --- -2.7.4 - diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/ltp/ltp/0001-syscalls-tgkill03-wait-for-defunct-tid-to-get-detach.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-extended/ltp/ltp/0001-syscalls-tgkill03-wait-for-defunct-tid-to-get-detach.patch new file mode 100644 index 00000000..6ea26150 --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-extended/ltp/ltp/0001-syscalls-tgkill03-wait-for-defunct-tid-to-get-detach.patch @@ -0,0 +1,75 @@ +From e747d0456adc080a1d31fb653bda9dc491795c80 Mon Sep 17 00:00:00 2001 +From: Jan Stancek +Date: Sun, 16 Jun 2019 11:14:16 +0200 +Subject: [PATCH] syscalls/tgkill03: wait for defunct tid to get detached + +Case where defunct tid is used has been observed to sporadically fail: + tgkill03.c:96: FAIL: Defunct tid should have failed with ESRCH: SUCCESS + +glibc __pthread_timedjoin_ex() waits for CLONE_CHILD_CLEARTID to clear tid, +and then resumes. Kernel clears it (glibc pd->tid) at: + do_exit + exit_mm + mm_release + put_user(0, tsk->clear_child_tid); + +but kernel tid is still valid, presumably until: + release_task + __exit_signal + __unhash_process + detach_pid + +To avoid race wait until /proc//task/ disappears. + +Signed-off-by: Jan Stancek +Reviewed-by: Li Wang +Acked-by: Sumit Garg + +Upstream-Status: Backport +[https://github.com/linux-test-project/ltp/commit/e747d0456adc080a1d31fb653bda9dc491795c80] + +Signed-off-by: He Zhe +--- + testcases/kernel/syscalls/tgkill/tgkill03.c | 6 +++++- + 1 file changed, 5 insertions(+), 1 deletion(-) + +diff --git a/testcases/kernel/syscalls/tgkill/tgkill03.c b/testcases/kernel/syscalls/tgkill/tgkill03.c +index f5bbdc5..593a217 100644 +--- a/testcases/kernel/syscalls/tgkill/tgkill03.c ++++ b/testcases/kernel/syscalls/tgkill/tgkill03.c +@@ -7,6 +7,7 @@ + + #include + #include ++#include + #include + + #include "tst_safe_pthread.h" +@@ -42,6 +43,7 @@ static void setup(void) + { + sigset_t sigusr1; + pthread_t defunct_thread; ++ char defunct_tid_path[PATH_MAX]; + + sigemptyset(&sigusr1); + sigaddset(&sigusr1, SIGUSR1); +@@ -55,8 +57,9 @@ static void setup(void) + TST_CHECKPOINT_WAIT(0); + + SAFE_PTHREAD_CREATE(&defunct_thread, NULL, defunct_thread_func, NULL); +- + SAFE_PTHREAD_JOIN(defunct_thread, NULL); ++ sprintf(defunct_tid_path, "/proc/%d/task/%d", getpid(), defunct_tid); ++ TST_RETRY_FN_EXP_BACKOFF(access(defunct_tid_path, R_OK), -1, 15); + } + + static void cleanup(void) +@@ -108,4 +111,5 @@ static struct tst_test test = { + .setup = setup, + .cleanup = cleanup, + .test = run, ++ .timeout = 20, + }; +-- +2.7.4 + diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/ltp/ltp/0001-testcases-use-python3-everywhere-to-run-python-scrip.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-extended/ltp/ltp/0001-testcases-use-python3-everywhere-to-run-python-scrip.patch new file mode 100644 index 00000000..f4f87f38 --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-extended/ltp/ltp/0001-testcases-use-python3-everywhere-to-run-python-scrip.patch @@ -0,0 +1,161 @@ +From 0463d793566772a606255957915f99d166d5740c Mon Sep 17 00:00:00 2001 +From: Alexander Kanavin +Date: Wed, 28 Aug 2019 18:30:23 +0200 +Subject: [PATCH] testcases: use python3 everywhere to run python scripts + +The scripts themselves have #!/usr/bin/python3 in them, +so I trust they are already py3-compatible. + +Upstream-Status: Pending +Signed-off-by: Alexander Kanavin +--- + testcases/kernel/power_management/runpwtests05.sh | 2 +- + .../power_management/runpwtests_exclusive01.sh | 2 +- + .../power_management/runpwtests_exclusive02.sh | 2 +- + .../power_management/runpwtests_exclusive03.sh | 2 +- + .../power_management/runpwtests_exclusive04.sh | 2 +- + .../power_management/runpwtests_exclusive05.sh | 2 +- + testcases/network/nfsv4/acl/runtest | 14 +++++++------- + testcases/realtime/func/pi-tests/run_auto.sh | 6 +++--- + 8 files changed, 16 insertions(+), 16 deletions(-) + +diff --git a/testcases/kernel/power_management/runpwtests05.sh b/testcases/kernel/power_management/runpwtests05.sh +index 8a7d0f6e0..43e234d01 100755 +--- a/testcases/kernel/power_management/runpwtests05.sh ++++ b/testcases/kernel/power_management/runpwtests05.sh +@@ -35,7 +35,7 @@ else + max_sched_smt=1 + fi + +-tst_test_cmds python ++tst_test_cmds python3 + + if ! grep sched_debug -qw /proc/cmdline ; then + tst_brkm TCONF "Kernel cmdline parameter 'sched_debug' needed," \ +diff --git a/testcases/kernel/power_management/runpwtests_exclusive01.sh b/testcases/kernel/power_management/runpwtests_exclusive01.sh +index ec78319e2..9fefcbf6e 100755 +--- a/testcases/kernel/power_management/runpwtests_exclusive01.sh ++++ b/testcases/kernel/power_management/runpwtests_exclusive01.sh +@@ -35,7 +35,7 @@ else + max_sched_smt=1 + fi + +-tst_test_cmds python ++tst_test_cmds python3 + + hyper_threaded=$(is_hyper_threaded) + multi_socket=$(is_multi_socket) +diff --git a/testcases/kernel/power_management/runpwtests_exclusive02.sh b/testcases/kernel/power_management/runpwtests_exclusive02.sh +index e107fce35..2cd0ecb05 100755 +--- a/testcases/kernel/power_management/runpwtests_exclusive02.sh ++++ b/testcases/kernel/power_management/runpwtests_exclusive02.sh +@@ -33,7 +33,7 @@ else + max_sched_smt=1 + fi + +-tst_test_cmds python ++tst_test_cmds python3 + + hyper_threaded=$(is_hyper_threaded) + multi_socket=$(is_multi_socket) +diff --git a/testcases/kernel/power_management/runpwtests_exclusive03.sh b/testcases/kernel/power_management/runpwtests_exclusive03.sh +index 490344bb3..ab3a5d11d 100755 +--- a/testcases/kernel/power_management/runpwtests_exclusive03.sh ++++ b/testcases/kernel/power_management/runpwtests_exclusive03.sh +@@ -35,7 +35,7 @@ else + max_sched_smt=1 + fi + +-tst_test_cmds python ++tst_test_cmds python3 + + hyper_threaded=$(is_hyper_threaded) + multi_socket=$(is_multi_socket) +diff --git a/testcases/kernel/power_management/runpwtests_exclusive04.sh b/testcases/kernel/power_management/runpwtests_exclusive04.sh +index 978ca02ae..438ef603f 100755 +--- a/testcases/kernel/power_management/runpwtests_exclusive04.sh ++++ b/testcases/kernel/power_management/runpwtests_exclusive04.sh +@@ -27,7 +27,7 @@ export TST_TOTAL=2 + # Checking test environment + check_kervel_arch + +-tst_test_cmds python ++tst_test_cmds python3 + + hyper_threaded=$(is_hyper_threaded) + multi_socket=$(is_multi_socket) +diff --git a/testcases/kernel/power_management/runpwtests_exclusive05.sh b/testcases/kernel/power_management/runpwtests_exclusive05.sh +index a0dad5834..3a9afdbf2 100755 +--- a/testcases/kernel/power_management/runpwtests_exclusive05.sh ++++ b/testcases/kernel/power_management/runpwtests_exclusive05.sh +@@ -35,7 +35,7 @@ else + max_sched_smt=1 + fi + +-tst_test_cmds python ++tst_test_cmds python3 + + hyper_threaded=$(is_hyper_threaded) + multi_socket=$(is_multi_socket) +diff --git a/testcases/network/nfsv4/acl/runtest b/testcases/network/nfsv4/acl/runtest +index d2e1b4c49..a859e85bc 100755 +--- a/testcases/network/nfsv4/acl/runtest ++++ b/testcases/network/nfsv4/acl/runtest +@@ -22,7 +22,7 @@ do + done + + # creation of users on the remote machine (removed only at the end of the tests) +-rsh -n $REMOTEHOST python $PWD/create_users.py -u 50 -g 50 ++rsh -n $REMOTEHOST python3 $PWD/create_users.py -u 50 -g 50 + + echo "Starting ACL testing" + +@@ -51,19 +51,19 @@ echo "Basic tests finished" + + echo "LONG ACL TEST" + echo "creating necessary users and groups" +-python create_users.py -u 50 -g 50 ++python3 create_users.py -u 50 -g 50 + echo "creating necessary users and groups on the remote host" + mkdir $NFSMNTDIR/lacl-testdir +-python test_long_acl.py -l $MAXLENGTH -p $NFSMNTDIR/lacl-testdir ++python3 test_long_acl.py -l $MAXLENGTH -p $NFSMNTDIR/lacl-testdir + rm -rf $NFSMNTDIR/lacl-testdir + echo "Long ACL test OK with $MAXLENGTH entries" + echo "ACL STRESSING TEST" +-python setacl_stress.py -n 100 -u $USER_NB -g $GRP_NB -f $FILE_NB -p $NFSMNTDIR ++python3 setacl_stress.py -n 100 -u $USER_NB -g $GRP_NB -f $FILE_NB -p $NFSMNTDIR + + # remove local an remote users +-python cleanusers.py +-python cleangroups.py +-rsh -n $REMOTEHOST python $PWD/cleanusers.py ++python3 cleanusers.py ++python3 cleangroups.py ++rsh -n $REMOTEHOST python3 $PWD/cleanusers.py + + echo "Test OK" + +diff --git a/testcases/realtime/func/pi-tests/run_auto.sh b/testcases/realtime/func/pi-tests/run_auto.sh +index d13026049..277988568 100755 +--- a/testcases/realtime/func/pi-tests/run_auto.sh ++++ b/testcases/realtime/func/pi-tests/run_auto.sh +@@ -15,15 +15,15 @@ $SCRIPTS_DIR/run_c_files.sh $profile testpi-0 + + export LOG_FILE="$LOG_DIR/$LOG_FORMAT-testpi-1.log" + $SCRIPTS_DIR/run_c_files.sh $profile testpi-1 +-PYTHONPATH=../../ python parse-testpi1.py $LOG_FILE 2>&1 | tee -a $LOG_FILE ++PYTHONPATH=../../ python3 parse-testpi1.py $LOG_FILE 2>&1 | tee -a $LOG_FILE + + export LOG_FILE="$LOG_DIR/$LOG_FORMAT-testpi-2.log" + $SCRIPTS_DIR/run_c_files.sh $profile testpi-2 +-PYTHONPATH=../../ python parse-testpi2.py $LOG_FILE 2>&1 | tee -a $LOG_FILE ++PYTHONPATH=../../ python3 parse-testpi2.py $LOG_FILE 2>&1 | tee -a $LOG_FILE + + export LOG_FILE="$LOG_DIR/$LOG_FORMAT-testpi-4.log" + $SCRIPTS_DIR/run_c_files.sh $profile testpi-4 +-PYTHONPATH=../../ python parse-testpi1.py $LOG_FILE 2>&1 | tee -a $LOG_FILE ++PYTHONPATH=../../ python3 parse-testpi1.py $LOG_FILE 2>&1 | tee -a $LOG_FILE + + + export LOG_FILE="" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/ltp/ltp/0001-ustat02-Fix-EFAULT-in-32bit-compatibility-mode.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-extended/ltp/ltp/0001-ustat02-Fix-EFAULT-in-32bit-compatibility-mode.patch new file mode 100644 index 00000000..c936b788 --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-extended/ltp/ltp/0001-ustat02-Fix-EFAULT-in-32bit-compatibility-mode.patch @@ -0,0 +1,36 @@ +From 156776a3e29491b363fdc9811912e1298655d060 Mon Sep 17 00:00:00 2001 +From: Steven Price +Date: Fri, 19 Jul 2019 13:48:17 +0100 +Subject: [PATCH] ustat02: Fix EFAULT in 32bit compatibility mode + +The size of dev_t is larger than 32 bits which causes the dev argument +to be passed incorrectly. On Arm this means that the EFAULT test case +actually returns EINVAL because the device number isn't recognised. + +Signed-off-by: Steven Price +Acked-by: Li Wang + +Upstream-Status: Backport +[https://github.com/linux-test-project/ltp/commit/156776a3e29491b363fdc9811912e1298655d060] + +Signed-off-by: He Zhe +--- + testcases/kernel/syscalls/ustat/ustat02.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/testcases/kernel/syscalls/ustat/ustat02.c b/testcases/kernel/syscalls/ustat/ustat02.c +index 9bbe4f3..1a0e9e0 100644 +--- a/testcases/kernel/syscalls/ustat/ustat02.c ++++ b/testcases/kernel/syscalls/ustat/ustat02.c +@@ -36,7 +36,7 @@ int TST_TOTAL = ARRAY_SIZE(tc); + + void run(unsigned int test) + { +- TEST(tst_syscall(__NR_ustat, *tc[test].dev, tc[test].buf)); ++ TEST(tst_syscall(__NR_ustat, (unsigned int)*tc[test].dev, tc[test].buf)); + + if ((TST_RET == -1) && (TST_ERR == tc[test].exp_errno)) + tst_res(TPASS | TTERRNO, "ustat(2) expected failure"); +-- +2.7.4 + diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/ltp/ltp/0002-check-for-RES_USE_INET6-during-configure.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-extended/ltp/ltp/0002-check-for-RES_USE_INET6-during-configure.patch new file mode 100644 index 00000000..12e47eb2 --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-extended/ltp/ltp/0002-check-for-RES_USE_INET6-during-configure.patch @@ -0,0 +1,68 @@ +From 7bc134545b7beb09717a60541530c20a1a5740d3 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Fri, 26 Jul 2019 10:55:28 -0700 +Subject: [PATCH 2/2] check for RES_USE_INET6 during configure + +glibc 2.30 has remove RES_USE_INET6 define which has been on its way out +since 2.26 release, this check ensures that we detect it before using it + +Upstream-Status: Submitted [http://lists.linux.it/pipermail/ltp/2019-July/012955.html] +Signed-off-by: Khem Raj +--- + configure.ac | 13 +++++++++++++ + testcases/network/multicast/mc_gethost/mc_gethost.c | 6 ++++++ + 2 files changed, 19 insertions(+) + +diff --git a/configure.ac b/configure.ac +index 2255b5c181..ed7acccb01 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -91,6 +91,19 @@ AC_CHECK_FUNCS([ \ + vmsplice \ + ]) + ++#check defines ++AC_MSG_CHECKING([for RES_USE_INET6]) ++AC_COMPILE_IFELSE( [AC_LANG_PROGRAM([[#include ]], ++ [[char dummy[RES_USE_INET6];]])], ++ [ ++ AC_MSG_RESULT([yes]) ++ AC_DEFINE_UNQUOTED([HAVE_RES_USE_INET6], 1, [Define to 1 if you have the RES_USE_INET6 macro.]) ++ ], ++ [ ++ AC_MSG_RESULT([no]) ++ AC_DEFINE_UNQUOTED([HAVE_RES_USE_INET6], 0, [Define to 1 if you have the RES_USE_INET6 macro.]) ++ ] ++) + # Tools knobs + + # Expect +diff --git a/testcases/network/multicast/mc_gethost/mc_gethost.c b/testcases/network/multicast/mc_gethost/mc_gethost.c +index 9cc15d086b..d1cae5441a 100644 +--- a/testcases/network/multicast/mc_gethost/mc_gethost.c ++++ b/testcases/network/multicast/mc_gethost/mc_gethost.c +@@ -17,6 +17,8 @@ + #include + #include + ++#include "config.h" ++ + #ifndef LOG_PERROR + #define LOG_PERROR 0 + #endif +@@ -50,8 +52,12 @@ usage: + argv++, argc--; + } + if (argc >= 1 && !strcmp(*argv, "-6")) { ++#if HAVE_RES_USE_INET6 + af = AF_INET6, size = IN6ADDRSZ; + _res.options |= RES_USE_INET6; ++#else ++ af = AF_INET, size = INADDRSZ; ++#endif + argv++, argc--; + } + if (argc >= 1 && !strcmp(*argv, "-f")) { +-- +2.22.0 + diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/ltp/ltp/0002-kernel-controllers-Link-with-libfts-explicitly-on-mu.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-extended/ltp/ltp/0002-kernel-controllers-Link-with-libfts-explicitly-on-mu.patch new file mode 100644 index 00000000..eff9ed07 --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-extended/ltp/ltp/0002-kernel-controllers-Link-with-libfts-explicitly-on-mu.patch @@ -0,0 +1,47 @@ +From 81e5bd5442337a4a648a0dbbff47eaac0d351287 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Thu, 7 Jan 2016 18:22:38 +0000 +Subject: [PATCH] kernel/controllers: Link with libfts explicitly on musl + +musl does not implement fts like glibc and therefore it depends on +external implementation for all fts APIs + +Upstream-Status: Pending + +Signed-off-by: Khem Raj +--- + testcases/kernel/controllers/Makefile.inc | 3 +++ + testcases/kernel/controllers/cpuset/Makefile.inc | 3 +++ + 2 files changed, 6 insertions(+) + +diff --git a/testcases/kernel/controllers/Makefile.inc b/testcases/kernel/controllers/Makefile.inc +index 4ca0b5a..1d85e4d 100644 +--- a/testcases/kernel/controllers/Makefile.inc ++++ b/testcases/kernel/controllers/Makefile.inc +@@ -36,6 +36,9 @@ MAKE_DEPS := $(LIB) + CPPFLAGS += -I$(abs_srcdir)/../$(LIBDIR) + + LDFLAGS += -L$(abs_builddir)/../$(LIBDIR) ++ifeq ($(LIBC),musl) ++LDLIBS += -lfts ++endif + + INSTALL_TARGETS ?= *.sh + +diff --git a/testcases/kernel/controllers/cpuset/Makefile.inc b/testcases/kernel/controllers/cpuset/Makefile.inc +index db6a843..86dd2a8 100644 +--- a/testcases/kernel/controllers/cpuset/Makefile.inc ++++ b/testcases/kernel/controllers/cpuset/Makefile.inc +@@ -42,6 +42,9 @@ MAKE_DEPS := $(LIBCONTROLLERS) $(LIBCPUSET) + LDFLAGS += -L$(abs_builddir)/$(LIBCPUSET_DIR) -L$(abs_builddir)/$(LIBCONTROLLERS_DIR) + + LDLIBS += -lcpu_set -lcontrollers -lltp ++ifeq ($(LIBC),musl) ++LDLIBS += -lfts ++endif + + INSTALL_TARGETS ?= *.sh + +-- +2.7.4 + diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/ltp/ltp/0003-Check-if-__GLIBC_PREREQ-is-defined-before-using-it.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-extended/ltp/ltp/0003-Check-if-__GLIBC_PREREQ-is-defined-before-using-it.patch new file mode 100644 index 00000000..c0f69ecf --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-extended/ltp/ltp/0003-Check-if-__GLIBC_PREREQ-is-defined-before-using-it.patch @@ -0,0 +1,58 @@ +From 29ce9fdab3bd34e69d73b5b890795559c06553f7 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Thu, 7 Jan 2016 19:40:08 +0000 +Subject: [PATCH] Check if __GLIBC_PREREQ is defined before using it + +__GLIBC_PREREQ is specific to glibc so it should be checked if it is +defined or not. + +Upstream-Status: Pending + +Signed-off-by: Khem Raj +Signed-off-by: Yi Zhao +--- + testcases/kernel/syscalls/accept4/accept4_01.c | 7 +++++++ + 1 file changed, 7 insertions(+) + +diff --git a/testcases/kernel/syscalls/accept4/accept4_01.c b/testcases/kernel/syscalls/accept4/accept4_01.c +index dd289cf..76aa969 100644 +--- a/testcases/kernel/syscalls/accept4/accept4_01.c ++++ b/testcases/kernel/syscalls/accept4/accept4_01.c +@@ -38,6 +38,7 @@ + static struct sockaddr_in conn_addr; + static int listening_fd; + ++#if defined(__GLIBC__) && defined(__GLIBC_PREREQ) + #if !(__GLIBC_PREREQ(2, 10)) + static int + accept4_01(int fd, struct sockaddr *sockaddr, socklen_t *addrlen, int flags) +@@ -56,6 +57,7 @@ accept4_01(int fd, struct sockaddr *sockaddr, socklen_t *addrlen, int flags) + #endif + } + #endif ++#endif + + static int create_listening_socket(void) + { +@@ -115,6 +117,7 @@ static void verify_accept4(unsigned int nr) + SAFE_CONNECT(connfd, (struct sockaddr *)&conn_addr, sizeof(conn_addr)); + addrlen = sizeof(claddr); + ++#if defined(__GLIBC__) && defined(__GLIBC_PREREQ) + #if !(__GLIBC_PREREQ(2, 10)) + TEST(accept4_01(listening_fd, (struct sockaddr *)&claddr, &addrlen, + tcase->cloexec | tcase->nonblock)); +@@ -122,6 +125,10 @@ static void verify_accept4(unsigned int nr) + TEST(accept4(listening_fd, (struct sockaddr *)&claddr, &addrlen, + tcase->cloexec | tcase->nonblock)); + #endif ++#else ++ TEST(accept4(listening_fd, (struct sockaddr *)&claddr, &addrlen, ++ tcase->cloexec | tcase->nonblock)); ++#endif + if (TST_RET == -1) { + if (TST_ERR == ENOSYS) + tst_brk(TCONF, "syscall __NR_accept4 not supported"); +-- +2.7.4 + diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/ltp/ltp/0004-build-Add-option-to-select-libc-implementation.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-extended/ltp/ltp/0004-build-Add-option-to-select-libc-implementation.patch deleted file mode 100644 index 3c66c943..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/ltp/ltp/0004-build-Add-option-to-select-libc-implementation.patch +++ /dev/null @@ -1,148 +0,0 @@ -From 53acddddf1b324e06af886ee4639b774e5c8c8bc Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Thu, 7 Jan 2016 18:19:03 +0000 -Subject: [PATCH 04/32] build: Add option to select libc implementation - -There are more than glibc for C library implementation available on -linux now a days, uclibc cloaked like glibc but musl e.g. is very -different and does not implement all GNU extentions - -Disable tests specifically not building _yet_ on musl based systems - -Signed-off-by: Khem Raj -Upstream-Status: Pending ---- - Makefile | 5 +++++ - testcases/kernel/Makefile | 5 ++++- - testcases/kernel/sched/Makefile | 4 +++- - testcases/kernel/syscalls/Makefile | 5 +++++ - testcases/network/nfsv4/acl/Makefile | 4 ++++ - testcases/network/rpc/basic_tests/Makefile | 5 +++++ - testcases/realtime/func/pi-tests/Makefile | 4 ++++ - testcases/realtime/stress/pi-tests/Makefile | 5 +++++ - 8 files changed, 35 insertions(+), 2 deletions(-) - -diff --git a/Makefile b/Makefile -index 297f8e7..906b280 100644 ---- a/Makefile -+++ b/Makefile -@@ -49,6 +49,11 @@ SKIP_IDCHECK ?= 0 - UCLINUX ?= 0 - export UCLINUX - -+# System C library implementation (glibc,uclibc,musl etc.) -+# default to glibc if not set -+LIBC ?= glibc -+export LIBC -+ - # CLEAN_TARGETS: Targets which exist solely in clean. - # COMMON_TARGETS: Targets which exist in all, clean, and install. - # INSTALL_TARGETS: Targets which exist in clean and install (contains -diff --git a/testcases/kernel/Makefile b/testcases/kernel/Makefile -index 50a12fa..4f1987f 100644 ---- a/testcases/kernel/Makefile -+++ b/testcases/kernel/Makefile -@@ -49,12 +49,15 @@ SUBDIRS += connectors \ - logging \ - mem \ - numa \ -- pty \ - sched \ - security \ - timers \ - tracing \ - -+ifneq ($(LIBC),musl) -+SUBDIRS += pty -+endif -+ - ifeq ($(WITH_POWER_MANAGEMENT_TESTSUITE),yes) - SUBDIRS += power_management - endif -diff --git a/testcases/kernel/sched/Makefile b/testcases/kernel/sched/Makefile -index 6245ed0..aa4eb7f 100644 ---- a/testcases/kernel/sched/Makefile -+++ b/testcases/kernel/sched/Makefile -@@ -23,5 +23,7 @@ - top_srcdir ?= ../../.. - - include $(top_srcdir)/include/mk/env_pre.mk -- -+ifeq ($(LIBC),musl) -+ FILTER_OUT_DIRS += process_stress -+endif - include $(top_srcdir)/include/mk/generic_trunk_target.mk -diff --git a/testcases/kernel/syscalls/Makefile b/testcases/kernel/syscalls/Makefile -index 8acb395..b749126 100644 ---- a/testcases/kernel/syscalls/Makefile -+++ b/testcases/kernel/syscalls/Makefile -@@ -28,6 +28,11 @@ ifeq ($(UCLINUX),1) - FILTER_OUT_DIRS += capget capset chmod chown clone fork getcontext llseek \ - mincore mprotect nftw profil remap_file_pages sbrk - endif -+ifeq ($(LIBC),musl) -+FILTER_OUT_DIRS += confstr fmtmsg getcontext ioctl mallopt profil \ -+ rt_sigsuspend setdomainname sethostname sigsuspend \ -+ ustat -+endif - - ifeq ($(UCLIBC),1) - FILTER_OUT_DIRS += profil -diff --git a/testcases/network/nfsv4/acl/Makefile b/testcases/network/nfsv4/acl/Makefile -index 8bc78c2..c36cf50 100644 ---- a/testcases/network/nfsv4/acl/Makefile -+++ b/testcases/network/nfsv4/acl/Makefile -@@ -26,4 +26,8 @@ include $(top_srcdir)/include/mk/env_pre.mk - - LDLIBS += $(ACL_LIBS) - -+ifeq ($(LIBC),musl) -+FILTER_OUT_MAKE_TARGETS := acl1 -+endif -+ - include $(top_srcdir)/include/mk/generic_leaf_target.mk -diff --git a/testcases/network/rpc/basic_tests/Makefile b/testcases/network/rpc/basic_tests/Makefile -index 3160813..9bdf5d0 100644 ---- a/testcases/network/rpc/basic_tests/Makefile -+++ b/testcases/network/rpc/basic_tests/Makefile -@@ -23,4 +23,9 @@ - top_srcdir ?= ../../../.. - - include $(top_srcdir)/include/mk/env_pre.mk -+ -+ifeq ($(LIBC),musl) -+FILTER_OUT_DIRS += rpc01 -+endif -+ - include $(top_srcdir)/include/mk/generic_trunk_target.mk -diff --git a/testcases/realtime/func/pi-tests/Makefile b/testcases/realtime/func/pi-tests/Makefile -index 7a7a57a..5808866 100644 ---- a/testcases/realtime/func/pi-tests/Makefile -+++ b/testcases/realtime/func/pi-tests/Makefile -@@ -27,5 +27,9 @@ include $(top_srcdir)/include/mk/env_pre.mk - include $(abs_srcdir)/../../config.mk - - MAKE_TARGETS := testpi-0 testpi-1 testpi-2 testpi-4 testpi-5 testpi-6 testpi-7 sbrk_mutex -+ifeq ($(LIBC),musl) -+FILTER_OUT_MAKE_TARGETS := testpi-5 testpi-6 sbrk_mutex -+endif -+ - - include $(top_srcdir)/include/mk/generic_leaf_target.mk -diff --git a/testcases/realtime/stress/pi-tests/Makefile b/testcases/realtime/stress/pi-tests/Makefile -index 5edc3b4..aa5987a 100644 ---- a/testcases/realtime/stress/pi-tests/Makefile -+++ b/testcases/realtime/stress/pi-tests/Makefile -@@ -24,4 +24,9 @@ top_srcdir ?= ../../../.. - - include $(top_srcdir)/include/mk/env_pre.mk - include $(abs_srcdir)/../../config.mk -+ -+ifeq ($(LIBC),musl) -+FILTER_OUT_MAKE_TARGETS := testpi-3 -+endif -+ - include $(top_srcdir)/include/mk/generic_leaf_target.mk --- -2.7.0 - diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/ltp/ltp/0004-guard-mallocopt-with-__GLIBC__.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-extended/ltp/ltp/0004-guard-mallocopt-with-__GLIBC__.patch new file mode 100644 index 00000000..5622a64d --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-extended/ltp/ltp/0004-guard-mallocopt-with-__GLIBC__.patch @@ -0,0 +1,34 @@ +From d0fc9ca5d3366f9b8907e463222403cd2327be10 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Fri, 8 Jan 2016 06:51:20 +0000 +Subject: [PATCH] guard mallocopt() with __GLIBC__ + +mallocopt is not available on non glibc implementations + +Upstream-Status: Pending + +Signed-off-by: Khem Raj +--- + utils/benchmark/ebizzy-0.3/ebizzy.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/utils/benchmark/ebizzy-0.3/ebizzy.c b/utils/benchmark/ebizzy-0.3/ebizzy.c +index 5bb8eff..934d951 100644 +--- a/utils/benchmark/ebizzy-0.3/ebizzy.c ++++ b/utils/benchmark/ebizzy-0.3/ebizzy.c +@@ -215,10 +215,10 @@ static void read_options(int argc, char *argv[]) + "\"never mmap\" option specified\n"); + usage(); + } +- ++#ifdef __GLIBC__ + if (never_mmap) + mallopt(M_MMAP_MAX, 0); +- ++#endif + if (chunk_size < record_size) { + fprintf(stderr, "Chunk size %u smaller than record size %u\n", + chunk_size, record_size); +-- +2.7.4 + diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/ltp/ltp/0005-kernel-controllers-Link-with-libfts-explicitly-on-mu.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-extended/ltp/ltp/0005-kernel-controllers-Link-with-libfts-explicitly-on-mu.patch deleted file mode 100644 index b9390e2c..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/ltp/ltp/0005-kernel-controllers-Link-with-libfts-explicitly-on-mu.patch +++ /dev/null @@ -1,46 +0,0 @@ -From 6e3058521b50d91d4b0569c4d491c5af5ff798b2 Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Thu, 7 Jan 2016 18:22:38 +0000 -Subject: [PATCH 05/32] kernel/controllers: Link with libfts explicitly on musl - -musl does not implement fts like glibc and therefore it depends on -external implementation for all fts APIs - -Signed-off-by: Khem Raj -Upstream-Status: Pending ---- - testcases/kernel/controllers/Makefile.inc | 3 +++ - testcases/kernel/controllers/cpuset/Makefile.inc | 3 +++ - 2 files changed, 6 insertions(+) - -diff --git a/testcases/kernel/controllers/Makefile.inc b/testcases/kernel/controllers/Makefile.inc -index b106283..ef5fc0c 100644 ---- a/testcases/kernel/controllers/Makefile.inc -+++ b/testcases/kernel/controllers/Makefile.inc -@@ -36,6 +36,9 @@ MAKE_DEPS := $(LIB) - CPPFLAGS += -I$(abs_srcdir)/../$(LIBDIR) - - LDFLAGS += -L$(abs_builddir)/../$(LIBDIR) -+ifeq ($(LIBC),musl) -+LDLIBS += -lfts -+endif - - INSTALL_TARGETS ?= *.sh - -diff --git a/testcases/kernel/controllers/cpuset/Makefile.inc b/testcases/kernel/controllers/cpuset/Makefile.inc -index 9e002f4..e0fcb9c 100644 ---- a/testcases/kernel/controllers/cpuset/Makefile.inc -+++ b/testcases/kernel/controllers/cpuset/Makefile.inc -@@ -42,6 +42,9 @@ MAKE_DEPS := $(LIBCONTROLLERS) $(LIBCPUSET) - LDFLAGS += -L$(abs_builddir)/$(LIBCPUSET_DIR) -L$(abs_builddir)/$(LIBCONTROLLERS_DIR) - - LDLIBS += -lcpu_set -lcontrollers -lltp -+ifeq ($(LIBC),musl) -+LDLIBS += -lfts -+endif - - INSTALL_TARGETS ?= *.sh - --- -2.7.0 - diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/ltp/ltp/0006-rt_tgsigqueueinfo-disable-test-on-musl.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-extended/ltp/ltp/0006-rt_tgsigqueueinfo-disable-test-on-musl.patch new file mode 100644 index 00000000..804edfa1 --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-extended/ltp/ltp/0006-rt_tgsigqueueinfo-disable-test-on-musl.patch @@ -0,0 +1,35 @@ +From 60054686e2c1a4bedf1d507af97ebbb7ff491e77 Mon Sep 17 00:00:00 2001 +From: Yi Zhao +Date: Thu, 18 Jul 2019 15:23:15 +0800 +Subject: [PATCH] rt_tgsigqueueinfo: disable test on musl + +Fix build error with musl: +rt_tgsigqueueinfo01.c: In function 'sigusr1_handler': +rt_tgsigqueueinfo01.c:42:22: error: 'siginfo_t' {aka 'struct '} has no member named '_sifields'; did you mean '__si_fields'? + 42 | sigval_rcv = uinfo->_sifields._rt.SI_SIGVAL.sival_ptr; + | ^~~~~~~~~ + | __si_fields + +Upstream-Status: Pending + +Signed-off-by: Yi Zhao +--- + testcases/kernel/syscalls/Makefile | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/testcases/kernel/syscalls/Makefile b/testcases/kernel/syscalls/Makefile +index d1becd0..1f3ff34 100644 +--- a/testcases/kernel/syscalls/Makefile ++++ b/testcases/kernel/syscalls/Makefile +@@ -31,7 +31,7 @@ endif + ifeq ($(LIBC),musl) + FILTER_OUT_DIRS += confstr fmtmsg getcontext ioctl mallopt profil \ + rt_sigsuspend setdomainname sethostname sigsuspend \ +- ustat ++ ustat rt_tgsigqueueinfo + endif + + ifeq ($(UCLIBC),1) +-- +2.7.4 + diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/ltp/ltp/0007-Fix-test_proc_kill-hanging.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-extended/ltp/ltp/0007-Fix-test_proc_kill-hanging.patch new file mode 100644 index 00000000..0e726457 --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-extended/ltp/ltp/0007-Fix-test_proc_kill-hanging.patch @@ -0,0 +1,32 @@ +From f4fafbdffae3a63c81f65cef98c72dda26283e06 Mon Sep 17 00:00:00 2001 +From: Dengke Du +Date: Wed, 8 Feb 2017 16:17:17 +0800 +Subject: [PATCH] Fix test_proc_kill hanging + +Sometimes the signal is delivered to memcg_process before the framework took +into consideration its pid entered in the tasks. Fixed by delaying the signal +send command. + +Upstream-Status: Pending + +Signed-off-by: George Nita +Signed-off-by: Dengke Du +--- + testcases/kernel/controllers/memcg/functional/memcg_lib.sh | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/testcases/kernel/controllers/memcg/functional/memcg_lib.sh b/testcases/kernel/controllers/memcg/functional/memcg_lib.sh +index aadaae4..deea5d6 100755 +--- a/testcases/kernel/controllers/memcg/functional/memcg_lib.sh ++++ b/testcases/kernel/controllers/memcg/functional/memcg_lib.sh +@@ -291,6 +291,7 @@ test_proc_kill() + pid=$! + TST_CHECKPOINT_WAIT 0 + echo $pid > tasks ++ sleep 1 + + signal_memcg_process $pid $3 + +-- +2.7.4 + diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/ltp/ltp/0007-fix-__WORDSIZE-undeclared-when-building-with-musl.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-extended/ltp/ltp/0007-fix-__WORDSIZE-undeclared-when-building-with-musl.patch deleted file mode 100644 index 6e6dbf39..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/ltp/ltp/0007-fix-__WORDSIZE-undeclared-when-building-with-musl.patch +++ /dev/null @@ -1,31 +0,0 @@ -From d1a27570457fb6e1d6bafe81bfa0f3507b137e32 Mon Sep 17 00:00:00 2001 -From: Dengke Du -Date: Thu, 9 Feb 2017 18:20:58 +0800 -Subject: [PATCH] fix __WORDSIZE undeclared when building with musl - -fix __WORDSIZE undeclared when building with musl. - -Upstream-Status: Submitted [https://github.com/linux-test-project/ltp/pull/177] - -Signed-off-by: Dengke Du ---- - include/old/test.h | 3 +++ - 1 file changed, 3 insertions(+) - -diff --git a/include/old/test.h b/include/old/test.h -index b36764d83..cc6f1b551 100644 ---- a/include/old/test.h -+++ b/include/old/test.h -@@ -17,6 +17,9 @@ - #include - #include - #include -+#ifndef __GLIBC__ -+#include -+#endif - - #include "usctest.h" - --- -2.11.0 - diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/ltp/ltp/0008-Check-if-__GLIBC_PREREQ-is-defined-before-using-it.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-extended/ltp/ltp/0008-Check-if-__GLIBC_PREREQ-is-defined-before-using-it.patch deleted file mode 100644 index 7311ee2e..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/ltp/ltp/0008-Check-if-__GLIBC_PREREQ-is-defined-before-using-it.patch +++ /dev/null @@ -1,151 +0,0 @@ -From fc2b47ad979a87bfbd11aeea3f67c26e7fb39e30 Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Thu, 7 Jan 2016 19:40:08 +0000 -Subject: [PATCH] Check if __GLIBC_PREREQ is defined before using it - -__GLIBC_PREREQ is specific to glibc so it should be checked if it is -defined or not. - -Signed-off-by: Khem Raj - -Upstream-Status: Pending ---- - .../kernel/syscalls/accept4/accept4_01.c | 9 ++++++- - .../sched_getaffinity/sched_getaffinity01.c | 26 +++++++++++++++++++ - 2 files changed, 34 insertions(+), 1 deletion(-) - -diff --git a/testcases/kernel/syscalls/accept4/accept4_01.c b/testcases/kernel/syscalls/accept4/accept4_01.c -index dec4ef93b..c5d74b07f 100644 ---- a/testcases/kernel/syscalls/accept4/accept4_01.c -+++ b/testcases/kernel/syscalls/accept4/accept4_01.c -@@ -64,6 +64,7 @@ static void cleanup(void) - tst_rmdir(); - } - -+#if defined(__GLIBC__) && defined(__GLIBC_PREREQ) - #if !(__GLIBC_PREREQ(2, 10)) - static int - accept4_01(int fd, struct sockaddr *sockaddr, socklen_t *addrlen, int flags) -@@ -82,7 +83,6 @@ accept4_01(int fd, struct sockaddr *sockaddr, socklen_t *addrlen, int flags) - } - tst_resm(TINFO, "\n"); - #endif -- - #if USE_SOCKETCALL - long args[6]; - -@@ -97,6 +97,7 @@ accept4_01(int fd, struct sockaddr *sockaddr, socklen_t *addrlen, int flags) - #endif - } - #endif -+#endif - - static void - do_test(int lfd, struct sockaddr_in *conn_addr, -@@ -119,9 +120,15 @@ do_test(int lfd, struct sockaddr_in *conn_addr, - die("Connect Error"); - - addrlen = sizeof(struct sockaddr_in); -+#if defined(__GLIBC__) && defined(__GLIBC_PREREQ) - #if !(__GLIBC_PREREQ(2, 10)) - acceptfd = accept4_01(lfd, (struct sockaddr *)&claddr, &addrlen, - closeonexec_flag | nonblock_flag); -+ -+#else -+ acceptfd = accept4(lfd, (struct sockaddr *)&claddr, &addrlen, -+ closeonexec_flag | nonblock_flag); -+#endif - #else - acceptfd = accept4(lfd, (struct sockaddr *)&claddr, &addrlen, - closeonexec_flag | nonblock_flag); -diff --git a/testcases/kernel/syscalls/sched_getaffinity/sched_getaffinity01.c b/testcases/kernel/syscalls/sched_getaffinity/sched_getaffinity01.c -index 02f04b909..d906d7e09 100644 ---- a/testcases/kernel/syscalls/sched_getaffinity/sched_getaffinity01.c -+++ b/testcases/kernel/syscalls/sched_getaffinity/sched_getaffinity01.c -@@ -67,9 +67,11 @@ do { \ - tst_resm((TEST_RETURN == -1 ? TPASS : TFAIL) | TTERRNO, #t); \ - } while (0) - -+#if defined(__GLIBC__) && defined(__GLIBC_PREREQ) - #if !(__GLIBC_PREREQ(2, 7)) - #define CPU_FREE(ptr) free(ptr) - #endif -+#endif - - int main(int ac, char **av) - { -@@ -96,17 +98,26 @@ static void do_test(void) - pid_t unused_pid; - unsigned len; - -+#if defined(__GLIBC__) && defined(__GLIBC_PREREQ) - #if __GLIBC_PREREQ(2, 7) - realloc: - mask = CPU_ALLOC(nrcpus); -+#else -+ mask = malloc(sizeof(cpu_set_t)); -+#endif - #else - mask = malloc(sizeof(cpu_set_t)); - #endif - if (mask == NULL) - tst_brkm(TFAIL | TTERRNO, cleanup, "fail to get enough memory"); -+#if defined(__GLIBC__) && defined(__GLIBC_PREREQ) - #if __GLIBC_PREREQ(2, 7) - len = CPU_ALLOC_SIZE(nrcpus); - CPU_ZERO_S(len, mask); -+#else -+ len = sizeof(cpu_set_t); -+ CPU_ZERO(mask); -+#endif - #else - len = sizeof(cpu_set_t); - CPU_ZERO(mask); -@@ -115,11 +126,18 @@ realloc: - TEST(sched_getaffinity(0, len, mask)); - if (TEST_RETURN == -1) { - CPU_FREE(mask); -+#if defined(__GLIBC__) && defined(__GLIBC_PREREQ) - #if __GLIBC_PREREQ(2, 7) - if (errno == EINVAL && nrcpus < (1024 << 8)) { - nrcpus = nrcpus << 2; - goto realloc; - } -+#else -+ if (errno == EINVAL) -+ tst_resm(TFAIL, "NR_CPUS > 1024, we'd better use a " -+ "newer glibc(>= 2.7)"); -+ else -+#endif - #else - if (errno == EINVAL) - tst_resm(TFAIL, "NR_CPUS > 1024, we'd better use a " -@@ -132,8 +150,12 @@ realloc: - tst_resm(TINFO, "cpusetsize is %d", len); - tst_resm(TINFO, "mask.__bits[0] = %lu ", mask->__bits[0]); - for (i = 0; i < num; i++) { -+#if defined(__GLIBC__) && defined(__GLIBC_PREREQ) - #if __GLIBC_PREREQ(2, 7) - TEST(CPU_ISSET_S(i, len, mask)); -+#else -+ TEST(CPU_ISSET(i, mask)); -+#endif - #else - TEST(CPU_ISSET(i, mask)); - #endif -@@ -144,8 +166,12 @@ realloc: - } - } - -+#if defined(__GLIBC__) && defined(__GLIBC_PREREQ) - #if __GLIBC_PREREQ(2, 7) - CPU_ZERO_S(len, mask); -+#else -+ CPU_ZERO(mask); -+#endif - #else - CPU_ZERO(mask); - #endif --- -2.17.1 - diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/ltp/ltp/0008-testcases-network-nfsv4-acl-acl1.c-Security-fix-on-s.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-extended/ltp/ltp/0008-testcases-network-nfsv4-acl-acl1.c-Security-fix-on-s.patch new file mode 100644 index 00000000..b46325ea --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-extended/ltp/ltp/0008-testcases-network-nfsv4-acl-acl1.c-Security-fix-on-s.patch @@ -0,0 +1,41 @@ +From aa7a9185a037ad59012bd46713ac340458e95209 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?An=C3=ADbal=20Lim=C3=B3n?= +Date: Fri, 13 May 2016 11:11:28 -0500 +Subject: [PATCH] testcases/network/nfsv4/acl/acl1.c: Security fix on + string printf +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Fixes: + +acl1.c: In function 'test_acl_default': +acl1.c:317:2: error: format not a string literal and no format arguments +[-Werror=format-security] + printf(cmd); + +[YOCTO #9548] + +Upstream-Status: Pending + +Signed-off-by: Aníbal Limón +--- + testcases/network/nfsv4/acl/acl1.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/testcases/network/nfsv4/acl/acl1.c b/testcases/network/nfsv4/acl/acl1.c +index bdf0180..898b7ca 100644 +--- a/testcases/network/nfsv4/acl/acl1.c ++++ b/testcases/network/nfsv4/acl/acl1.c +@@ -303,7 +303,7 @@ void test_acl_default(char *dir, acl_t acl) + char *cmd = malloc(256); + + strcpy(cmd, "chmod 7777 "); +- printf(cmd); ++ printf(cmd, NULL); + strcat(cmd, dir); + system(cmd); + acl2 = acl_get_file(path, ACL_TYPE_ACCESS); +-- +2.7.4 + diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/ltp/ltp/0009-fix-redefinition-of-struct-msgbuf-error-building-wit.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-extended/ltp/ltp/0009-fix-redefinition-of-struct-msgbuf-error-building-wit.patch deleted file mode 100644 index dd7d2831..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/ltp/ltp/0009-fix-redefinition-of-struct-msgbuf-error-building-wit.patch +++ /dev/null @@ -1,36 +0,0 @@ -From bf5dd2932200e0199a38f3028d3bef2253f32e38 Mon Sep 17 00:00:00 2001 -From: Dengke Du -Date: Thu, 9 Feb 2017 17:17:37 +0800 -Subject: [PATCH] fix redefinition of 'struct msgbuf' error building with musl - -When building with musl the file "sys/msg.h" already contain 'struct msgbuf' - -Upstream-Status: Submitted [https://github.com/linux-test-project/ltp/pull/177] - -Signed-off-by: Dengke Du ---- - testcases/kernel/syscalls/ipc/msgrcv/msgrcv08.c | 4 +++- - 1 file changed, 3 insertions(+), 1 deletion(-) - -diff --git a/testcases/kernel/syscalls/ipc/msgrcv/msgrcv08.c b/testcases/kernel/syscalls/ipc/msgrcv/msgrcv08.c -index a757c0d18..e023114d2 100644 ---- a/testcases/kernel/syscalls/ipc/msgrcv/msgrcv08.c -+++ b/testcases/kernel/syscalls/ipc/msgrcv/msgrcv08.c -@@ -47,11 +47,13 @@ const char *TCID = "msgrcv08"; - const int TST_TOTAL = 1; - - #if __WORDSIZE == 32 -- -+#ifdef __GLIBC__ - struct msgbuf { - long mtype; /* message type, must be > 0 */ - char mtext[16]; /* message data */ - }; -+#else -+#endif - - static void msr(int msqid) - { --- -2.11.0 - diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/ltp/ltp/0009-open_posix_testsuite-mmap24-2-Relax-condition-a-bit.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-extended/ltp/ltp/0009-open_posix_testsuite-mmap24-2-Relax-condition-a-bit.patch new file mode 100644 index 00000000..d32ac1dd --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-extended/ltp/ltp/0009-open_posix_testsuite-mmap24-2-Relax-condition-a-bit.patch @@ -0,0 +1,68 @@ +From a8715a1446305ffd76406f63c7f160c13a5b2e72 Mon Sep 17 00:00:00 2001 +From: "Hongzhi.Song" +Date: Wed, 10 Oct 2018 22:07:05 -0400 +Subject: [PATCH] open_posix_testsuite/mmap24-2: Relax condition a bit + +Mips will return EINVAL instead of ENOMEM as expected +if the range [addr + len) exceeds TASK_SIZE. + +Linux kernel code: arch/mips/mm/mmap.c +if (flags & MAP_FIXED) { + /* Even MAP_FIXED mappings must reside within TASK_SIZE */ + if (TASK_SIZE - len < addr) + return -EINVAL; + +Relax the condition and accept both ENOMEM and EINVAL +as expected outcome. + +Upstream-Status: Submitted [https://lists.linux.it/pipermail/ltp/2018-October/009624.html] + +Signed-off-by: Hongzhi.Song +--- + .../open_posix_testsuite/conformance/interfaces/mmap/24-2.c | 10 +++++----- + 1 file changed, 5 insertions(+), 5 deletions(-) + +diff --git a/testcases/open_posix_testsuite/conformance/interfaces/mmap/24-2.c b/testcases/open_posix_testsuite/conformance/interfaces/mmap/24-2.c +index 9cf83d9..55090a6 100644 +--- a/testcases/open_posix_testsuite/conformance/interfaces/mmap/24-2.c ++++ b/testcases/open_posix_testsuite/conformance/interfaces/mmap/24-2.c +@@ -7,7 +7,7 @@ + * source tree. + * + * The mmap() function shall fail if: +- * [ENOMEM] MAP_FIXED was specified, ++ * [ENOMEM or EINVAL] MAP_FIXED was specified, + * and the range [addr,addr+len) exceeds that allowed + * for the address space of a process; or, if MAP_FIXED was not specified and + * there is insufficient room in the address space to effect the mapping. +@@ -15,7 +15,7 @@ + * Test Step: + * 1. Map a shared memory object, with size exceeding the value get from + * rlim_cur of resource RLIMIT_AS, setting MAP_FIXED; +- * 3. Should get ENOMEM. ++ * 3. Should get ENOMEM or EINVAL. + */ + + #include +@@ -92,8 +92,8 @@ int main(void) + (unsigned long)len); + pa = mmap(addr, len, PROT_READ | PROT_WRITE, MAP_FIXED | MAP_SHARED, fd, + 0); +- if (pa == MAP_FAILED && errno == ENOMEM) { +- printf("Got ENOMEM: %s\nTest PASSED\n", strerror(errno)); ++ if (pa == MAP_FAILED && (errno == ENOMEM || errno == EINVAL)) { ++ printf("Got ENOMEM or EINVAL: %s\nTest PASSED\n", strerror(errno)); + exit(PTS_PASS); + } + +@@ -102,6 +102,6 @@ int main(void) + else + munmap(pa, len); + close(fd); +- printf("Test Fail: Did not get ENOMEM as expected\n"); ++ printf("Test Failed: Did not get ENOMEM or EINVAL as expected\n"); + return PTS_FAIL; + } +-- +2.7.4 + diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/ltp/ltp/0010-shmctl01-don-t-use-hardcoded-index-0-for-SHM_STAT-te.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-extended/ltp/ltp/0010-shmctl01-don-t-use-hardcoded-index-0-for-SHM_STAT-te.patch new file mode 100644 index 00000000..8704e5ff --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-extended/ltp/ltp/0010-shmctl01-don-t-use-hardcoded-index-0-for-SHM_STAT-te.patch @@ -0,0 +1,82 @@ +From 794933b38354a2612cf2c471f11798b306f35315 Mon Sep 17 00:00:00 2001 +From: Jan Stancek +Date: Mon, 20 May 2019 20:47:20 +0200 +Subject: [PATCH] shmctl01: don't use hardcoded index == 0 for SHM_STAT test + +Test fails on SHM_STAT testcase: + shmctl01 5 TFAIL : shmctl01.c:173: shmctl01 call failed + errno = 22 : Invalid argument + shmctl(0, SHM_STAT, 0x601060) = -EINVAL + +since following commit: + commit 99db46ea292780cd978d56932d9445b1e8bdafe8 + Author: Manfred Spraul + Date: Tue May 14 15:46:36 2019 -0700 + ipc: do cyclic id allocation for the ipc object. + +Don't rely on index 0 being always available, but instead +use (maximum) index returned by SHM_INFO. + +Signed-off-by: Jan Stancek +Reviewed-by: Petr Vorel +Acked-by: Cyril Hrubis + +Upstream-Status: Backport +[https://github.com/linux-test-project/ltp/commit/db0a43d9388be2c347a8306751bbe6bec086d062] + +Signed-off-by: Hongzhi Song +Signed-off-by: Yi Zhao +--- + testcases/kernel/syscalls/ipc/shmctl/shmctl01.c | 21 ++++++++++++++++++--- + 1 file changed, 18 insertions(+), 3 deletions(-) + +diff --git a/testcases/kernel/syscalls/ipc/shmctl/shmctl01.c b/testcases/kernel/syscalls/ipc/shmctl/shmctl01.c +index 1b46977..52bf23a 100644 +--- a/testcases/kernel/syscalls/ipc/shmctl/shmctl01.c ++++ b/testcases/kernel/syscalls/ipc/shmctl/shmctl01.c +@@ -79,6 +79,7 @@ static void func_info(int ret); + + /* Check routine for SHM_STAT */ + static void func_sstat(int ret); ++static void func_sstat_setup(void); + + /* Check routine for SHM_LOCK */ + static void func_lock(int ret); +@@ -110,7 +111,7 @@ static struct test_case_t { + #endif + {&shm_id_1, IPC_SET, &buf, func_set, set_setup}, + {&shm_id_1, IPC_INFO, (struct shmid_ds *) &info, func_info, NULL}, +- {&shm_index, SHM_STAT, &buf, func_sstat, NULL}, ++ {&shm_index, SHM_STAT, &buf, func_sstat, func_sstat_setup}, + {&shm_id_1, SHM_LOCK, NULL, func_lock, NULL}, + {&shm_id_1, SHM_UNLOCK, NULL, func_unlock, NULL}, + {&shm_id_1, IPC_RMID, NULL, func_rmid, NULL}, +@@ -407,9 +408,23 @@ static void func_info(int ret) + static void func_sstat(int ret) + { + if (ret >= 0) +- tst_resm(TPASS, "get correct shared memory id"); ++ tst_resm(TPASS, "get correct shared memory id for index: %d", ++ shm_index); + else +- tst_resm(TFAIL, "shared memory id is incorrect"); ++ tst_resm(TFAIL, "shared memory id is incorrect, index: %d", ++ shm_index); ++} ++ ++static void func_sstat_setup(void) ++{ ++ struct shm_info tmp; ++ int ret; ++ ++ ret = shmctl(shm_id_1, SHM_INFO, (void *)&tmp); ++ if (ret < 0) ++ tst_resm(TFAIL|TERRNO, "shmctl(SHM_INFO)"); ++ else ++ shm_index = ret; + } + + static void func_lock(int ret) +-- +2.7.4 + diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/ltp/ltp/0011-direct_io-diotest4-drop-MAP_FIXED.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-extended/ltp/ltp/0011-direct_io-diotest4-drop-MAP_FIXED.patch new file mode 100644 index 00000000..9cd188f6 --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-extended/ltp/ltp/0011-direct_io-diotest4-drop-MAP_FIXED.patch @@ -0,0 +1,56 @@ +From f210d7e19b721041f31b7f258a169f89dc850303 Mon Sep 17 00:00:00 2001 +From: Jan Stancek +Date: Thu, 4 Jul 2019 16:45:23 +0200 +Subject: [PATCH] direct_io/diotest4: drop MAP_FIXED + +Hongzhi reports that this test is failing on mips64 with 5.1+: + diotest4 10 TBROK : diotest4.c:368: can't mmap file: Invalid argument + diotest4 11 TBROK : diotest4.c:368: Remaining cases broken +I could reproduce it on emulated 5kc-malta, running 5.2.0-rc7. + +Test is trying to map into area immediately following heap as MAP_SHARED, +but it used wrong alignment (fixed by 'lapi/mmap.h: include config.h'). + +Usage of MAP_FIXED seems unnecessary, so drop that too and let the kernel +pick an address. + +Reported-by: Hongzhi.Song +Signed-off-by: Jan Stancek +Acked-by: Cyril Hrubis + +Upstream-Status: Backport +[https://github.com/linux-test-project/ltp/commit/f5444eeeabf252b8884b9465d277b6af853819e3] + +Signed-off-by: Yi Zhao +--- + testcases/kernel/io/direct_io/diotest4.c | 8 ++------ + 1 file changed, 2 insertions(+), 6 deletions(-) + +diff --git a/testcases/kernel/io/direct_io/diotest4.c b/testcases/kernel/io/direct_io/diotest4.c +index e4616e4..bf200cd 100644 +--- a/testcases/kernel/io/direct_io/diotest4.c ++++ b/testcases/kernel/io/direct_io/diotest4.c +@@ -352,18 +352,14 @@ int main(int argc, char *argv[]) + total++; + + /* Test-10: read, write to a mmaped file */ +- shm_base = (char *)(((long)sbrk(0) + (shmsz - 1)) & ~(shmsz - 1)); +- if (shm_base == NULL) { +- tst_brkm(TBROK, cleanup, "sbrk failed: %s", strerror(errno)); +- } + offset = 4096; + count = bufsize; + if ((fd = open(filename, O_DIRECT | O_RDWR)) < 0) { + tst_brkm(TBROK, cleanup, "can't open %s: %s", + filename, strerror(errno)); + } +- shm_base = mmap(shm_base, 0x100000, PROT_READ | PROT_WRITE, +- MAP_SHARED | MAP_FIXED, fd, 0); ++ shm_base = mmap(0, 0x100000, PROT_READ | PROT_WRITE, ++ MAP_SHARED, fd, 0); + if (shm_base == (caddr_t) - 1) { + tst_brkm(TBROK, cleanup, "can't mmap file: %s", + strerror(errno)); +-- +2.7.4 + diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/ltp/ltp/0012-getrlimit03-adjust-a-bit-of-code-to-compatiable-with.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-extended/ltp/ltp/0012-getrlimit03-adjust-a-bit-of-code-to-compatiable-with.patch new file mode 100644 index 00000000..aecbc80e --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-extended/ltp/ltp/0012-getrlimit03-adjust-a-bit-of-code-to-compatiable-with.patch @@ -0,0 +1,64 @@ +From 4ac747c1f7ff8e2ec2567d6672822e95a9b56e55 Mon Sep 17 00:00:00 2001 +From: "Hongzhi.Song" +Date: Mon, 15 Jul 2019 03:39:06 -0400 +Subject: [PATCH] getrlimit03: adjust a bit of code to compatiable with mips32 + +Error info: +getrlimit03.c:104: FAIL: __NR_prlimit64(0) had rlim_cur = +ffffffffffffffff but __NR_getrlimit(0) had rlim_cur = 7fffffff + +According to kernel code: [arch/mips/include/uapi/asm/resource.h] +RLIM_INFINITY is set to 0x7fffffffUL instead of ULONG_MAX on mips32. + + /* + * SuS says limits have to be unsigned. + * Which makes a ton more sense anyway, + * but we keep the old value on MIPS32, + * for compatibility: + */ + #ifndef __mips64 + # define RLIM_INFINITY 0x7fffffffUL + #endif + +Adding conditional statement about mips to fix this. + +Signed-off-by: Jan Stancek +Signed-off-by: Hongzhi.Song + +Upstream-Status: Backport +[https://github.com/linux-test-project/ltp/commit/7a3bca63cd7f059d490b6274f0fdf3247be93fde] + +Signed-off-by: Hongzhi.Song +--- + testcases/kernel/syscalls/getrlimit/getrlimit03.c | 8 +++++++- + 1 file changed, 7 insertions(+), 1 deletion(-) + +diff --git a/testcases/kernel/syscalls/getrlimit/getrlimit03.c b/testcases/kernel/syscalls/getrlimit/getrlimit03.c +index e4d56c4..319bc49 100644 +--- a/testcases/kernel/syscalls/getrlimit/getrlimit03.c ++++ b/testcases/kernel/syscalls/getrlimit/getrlimit03.c +@@ -26,6 +26,7 @@ + + #include "tst_test.h" + #include "lapi/syscalls.h" ++#include "lapi/abisize.h" + + /** + * Linux provides an "old" getrlimit syscall handler that uses signed long, +@@ -61,7 +62,12 @@ struct rlimit_ulong { + unsigned long rlim_cur; + unsigned long rlim_max; + }; +-const unsigned long RLIM_INFINITY_UL = ULONG_MAX; ++ ++#if defined(__mips__) && defined(TST_ABI32) ++ const unsigned long RLIM_INFINITY_UL = 0x7fffffffUL; ++#else ++ const unsigned long RLIM_INFINITY_UL = ULONG_MAX; ++#endif + + static int getrlimit_ulong(int resource, struct rlimit_ulong *rlim) + { +-- +2.7.4 + diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/ltp/ltp/0018-guard-mallocopt-with-__GLIBC__.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-extended/ltp/ltp/0018-guard-mallocopt-with-__GLIBC__.patch deleted file mode 100644 index a79763d0..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/ltp/ltp/0018-guard-mallocopt-with-__GLIBC__.patch +++ /dev/null @@ -1,33 +0,0 @@ -From f42b060e80c9f40627c712d4d56d45221bd7d9fa Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Fri, 8 Jan 2016 06:51:20 +0000 -Subject: [PATCH 18/32] guard mallocopt() with __GLIBC__ - -mallocopt is not available on non glibc implementations - -Signed-off-by: Khem Raj -Upstream-Status: Pending ---- - utils/benchmark/ebizzy-0.3/ebizzy.c | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/utils/benchmark/ebizzy-0.3/ebizzy.c b/utils/benchmark/ebizzy-0.3/ebizzy.c -index 5bb8eff..934d951 100644 ---- a/utils/benchmark/ebizzy-0.3/ebizzy.c -+++ b/utils/benchmark/ebizzy-0.3/ebizzy.c -@@ -215,10 +215,10 @@ static void read_options(int argc, char *argv[]) - "\"never mmap\" option specified\n"); - usage(); - } -- -+#ifdef __GLIBC__ - if (never_mmap) - mallopt(M_MMAP_MAX, 0); -- -+#endif - if (chunk_size < record_size) { - fprintf(stderr, "Chunk size %u smaller than record size %u\n", - chunk_size, record_size); --- -2.7.0 - diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/ltp/ltp/0020-getdents-define-getdents-getdents64-only-for-glibc.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-extended/ltp/ltp/0020-getdents-define-getdents-getdents64-only-for-glibc.patch deleted file mode 100644 index 7060a64b..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/ltp/ltp/0020-getdents-define-getdents-getdents64-only-for-glibc.patch +++ /dev/null @@ -1,50 +0,0 @@ -From aa3568e6ac28f377e75ce16b11e3c7738a373e53 Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Fri, 8 Jan 2016 06:57:04 +0000 -Subject: [PATCH 20/32] getdents: define getdents/getdents64 only for glibc - -getdents/getdents64 are implemented in musl and when we define static -functions with same name, it errors out. - -Signed-off-by: Khem Raj - -Upstream-Status: Pending ---- - testcases/kernel/syscalls/getdents/getdents.h | 6 ++++-- - 1 file changed, 4 insertions(+), 2 deletions(-) - -diff --git a/testcases/kernel/syscalls/getdents/getdents.h b/testcases/kernel/syscalls/getdents/getdents.h -index abea655..db63d89 100644 ---- a/testcases/kernel/syscalls/getdents/getdents.h -+++ b/testcases/kernel/syscalls/getdents/getdents.h -@@ -34,12 +34,13 @@ struct linux_dirent { - char d_name[]; - }; - -+#ifdef __GLIBC__ - static inline int - getdents(unsigned int fd, struct linux_dirent *dirp, unsigned int size) - { - return ltp_syscall(__NR_getdents, fd, dirp, size); - } -- -+#endif - struct linux_dirent64 { - uint64_t d_ino; - int64_t d_off; -@@ -48,10 +49,11 @@ struct linux_dirent64 { - char d_name[]; - }; - -+#ifdef __GLIBC__ - static inline int - getdents64(unsigned int fd, struct linux_dirent64 *dirp64, unsigned int size) - { - return ltp_syscall(__NR_getdents64, fd, dirp64, size); - } -- -+#endif - #endif /* GETDENTS_H */ --- -2.7.0 - diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/ltp/ltp/0021-Define-_GNU_SOURCE-for-MREMAP_MAYMOVE-definition.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-extended/ltp/ltp/0021-Define-_GNU_SOURCE-for-MREMAP_MAYMOVE-definition.patch deleted file mode 100644 index 6c5f3603..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/ltp/ltp/0021-Define-_GNU_SOURCE-for-MREMAP_MAYMOVE-definition.patch +++ /dev/null @@ -1,73 +0,0 @@ -From b216435bb362df10c45f544b78d8c884eaa901fd Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Fri, 8 Jan 2016 07:01:02 +0000 -Subject: [PATCH 21/32] Define _GNU_SOURCE for MREMAP_MAYMOVE definition - -musl guards MREMAP_MAYMOVE with _GNU_SOURCE unlike glibc which uses -__USE_GNU - -Fixes errors like -error: 'MREMAP_MAYMOVE' undeclared (first use in this function) - -Signed-off-by: Khem Raj - -Upstream-Status: Pending ---- - testcases/kernel/syscalls/mremap/mremap01.c | 4 +++- - testcases/kernel/syscalls/mremap/mremap02.c | 2 ++ - testcases/kernel/syscalls/mremap/mremap03.c | 2 ++ - 3 files changed, 7 insertions(+), 1 deletion(-) - -diff --git a/testcases/kernel/syscalls/mremap/mremap01.c b/testcases/kernel/syscalls/mremap/mremap01.c -index d63d1e4..24ca174 100644 ---- a/testcases/kernel/syscalls/mremap/mremap01.c -+++ b/testcases/kernel/syscalls/mremap/mremap01.c -@@ -76,10 +76,12 @@ - */ - #include - #include -+#include -+#define _GNU_SOURCE - #define __USE_GNU - #include - #undef __USE_GNU --#include -+#undef _GNU_SOURCE - - #include "test.h" - #include "safe_macros.h" -diff --git a/testcases/kernel/syscalls/mremap/mremap02.c b/testcases/kernel/syscalls/mremap/mremap02.c -index 5a51b9a..a530a6b 100644 ---- a/testcases/kernel/syscalls/mremap/mremap02.c -+++ b/testcases/kernel/syscalls/mremap/mremap02.c -@@ -75,9 +75,11 @@ - #include - #include - #include -+#define _GNU_SOURCE - #define __USE_GNU - #include - #undef __USE_GNU -+#undef _GNU_SOURCE - - #include "test.h" - -diff --git a/testcases/kernel/syscalls/mremap/mremap03.c b/testcases/kernel/syscalls/mremap/mremap03.c -index 12e3829..9b39f8b 100644 ---- a/testcases/kernel/syscalls/mremap/mremap03.c -+++ b/testcases/kernel/syscalls/mremap/mremap03.c -@@ -76,9 +76,11 @@ - #include - #include - #include -+#define _GNU_SOURCE - #define __USE_GNU - #include - #undef __USE_GNU -+#undef _GNU_SOURCE - - #include "test.h" - --- -2.7.0 - diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/ltp/ltp/0023-ptrace-Use-int-instead-of-enum-__ptrace_request.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-extended/ltp/ltp/0023-ptrace-Use-int-instead-of-enum-__ptrace_request.patch deleted file mode 100644 index 529f4ed3..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/ltp/ltp/0023-ptrace-Use-int-instead-of-enum-__ptrace_request.patch +++ /dev/null @@ -1,50 +0,0 @@ -From 560347f77236616a635b4a997a0596b8da4d0799 Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Fri, 8 Jan 2016 07:08:25 +0000 -Subject: [PATCH 23/32] ptrace: Use int instead of enum __ptrace_request - -__ptrace_request is only available with glibc - -Signed-off-by: Khem Raj - -Upstream-Status: Pending ---- - testcases/kernel/syscalls/ptrace/ptrace03.c | 4 ++++ - testcases/kernel/syscalls/ptrace/spawn_ptrace_child.h | 4 ++++ - 2 files changed, 8 insertions(+) - -diff --git a/testcases/kernel/syscalls/ptrace/ptrace03.c b/testcases/kernel/syscalls/ptrace/ptrace03.c -index a4028fc..f1880cd 100644 ---- a/testcases/kernel/syscalls/ptrace/ptrace03.c -+++ b/testcases/kernel/syscalls/ptrace/ptrace03.c -@@ -102,7 +102,11 @@ static pid_t unused_pid; - static pid_t zero_pid; - - struct test_case_t { -+#ifdef __GLIBC__ - enum __ptrace_request request; -+#else -+ int request; -+#endif - pid_t *pid; - int exp_errno; - } test_cases[] = { -diff --git a/testcases/kernel/syscalls/ptrace/spawn_ptrace_child.h b/testcases/kernel/syscalls/ptrace/spawn_ptrace_child.h -index ae538e9..85aa89d 100644 ---- a/testcases/kernel/syscalls/ptrace/spawn_ptrace_child.h -+++ b/testcases/kernel/syscalls/ptrace/spawn_ptrace_child.h -@@ -130,7 +130,11 @@ static char *strings[] = { - SPT(KILL) - SPT(SINGLESTEP) - }; -+#ifdef __GLIBC__ - static inline char *strptrace(enum __ptrace_request request) -+#else -+static inline char *strptrace(int request) -+#endif - { - return strings[request]; - } --- -2.7.0 - diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/ltp/ltp/0024-rt_sigaction-rt_sigprocmark-Define-_GNU_SOURCE.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-extended/ltp/ltp/0024-rt_sigaction-rt_sigprocmark-Define-_GNU_SOURCE.patch deleted file mode 100644 index 03aa45df..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/ltp/ltp/0024-rt_sigaction-rt_sigprocmark-Define-_GNU_SOURCE.patch +++ /dev/null @@ -1,70 +0,0 @@ -From e01e9862c248dc90a8ec6f2d06f8469d7a50cd8e Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Fri, 8 Jan 2016 07:14:58 +0000 -Subject: [PATCH 24/32] rt_sigaction/rt_sigprocmark: Define _GNU_SOURCE - -Fixes musl build failure e.g. -error: 'SA_NOMASK' undeclared here (not in a function) - -Signed-off-by: Khem Raj - -Upstream-Status: Pending ---- - testcases/kernel/syscalls/rt_sigaction/rt_sigaction01.c | 1 + - testcases/kernel/syscalls/rt_sigaction/rt_sigaction02.c | 2 +- - testcases/kernel/syscalls/rt_sigaction/rt_sigaction03.c | 1 + - testcases/kernel/syscalls/rt_sigprocmask/rt_sigprocmask01.c | 1 + - 4 files changed, 4 insertions(+), 1 deletion(-) - -diff --git a/testcases/kernel/syscalls/rt_sigaction/rt_sigaction01.c b/testcases/kernel/syscalls/rt_sigaction/rt_sigaction01.c -index 5cf89cc..bdcb91a 100644 ---- a/testcases/kernel/syscalls/rt_sigaction/rt_sigaction01.c -+++ b/testcases/kernel/syscalls/rt_sigaction/rt_sigaction01.c -@@ -28,6 +28,7 @@ - /* sigset_t type. */ - /******************************************************************************/ - -+#define _GNU_SOURCE - #include - #include - #include -diff --git a/testcases/kernel/syscalls/rt_sigaction/rt_sigaction02.c b/testcases/kernel/syscalls/rt_sigaction/rt_sigaction02.c -index a1da743..8a27a0f 100644 ---- a/testcases/kernel/syscalls/rt_sigaction/rt_sigaction02.c -+++ b/testcases/kernel/syscalls/rt_sigaction/rt_sigaction02.c -@@ -23,7 +23,7 @@ - /* Description: This tests the rt_sigaction() syscall */ - /* rt_sigaction Expected EFAULT error check */ - /******************************************************************************/ -- -+#define _GNU_SOURCE - #include - #include - #include -diff --git a/testcases/kernel/syscalls/rt_sigaction/rt_sigaction03.c b/testcases/kernel/syscalls/rt_sigaction/rt_sigaction03.c -index 175d220..e7627cd 100644 ---- a/testcases/kernel/syscalls/rt_sigaction/rt_sigaction03.c -+++ b/testcases/kernel/syscalls/rt_sigaction/rt_sigaction03.c -@@ -24,6 +24,7 @@ - /* rt_sigaction Expected EINVAL error check */ - /******************************************************************************/ - -+#define _GNU_SOURCE - #include - #include - #include -diff --git a/testcases/kernel/syscalls/rt_sigprocmask/rt_sigprocmask01.c b/testcases/kernel/syscalls/rt_sigprocmask/rt_sigprocmask01.c -index 74e5a61..75c57fc 100644 ---- a/testcases/kernel/syscalls/rt_sigprocmask/rt_sigprocmask01.c -+++ b/testcases/kernel/syscalls/rt_sigprocmask/rt_sigprocmask01.c -@@ -39,6 +39,7 @@ - /* sigsetsize should indicate the size of a sigset_t type. */ - /******************************************************************************/ - -+#define _GNU_SOURCE - #include - #include - #include --- -2.7.0 - diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/ltp/ltp/0026-crash01-Define-_GNU_SOURCE.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-extended/ltp/ltp/0026-crash01-Define-_GNU_SOURCE.patch deleted file mode 100644 index f65fad12..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/ltp/ltp/0026-crash01-Define-_GNU_SOURCE.patch +++ /dev/null @@ -1,31 +0,0 @@ -From 0133a2b29d6f48d8e2bba6a3be581cdfa91311a6 Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Fri, 8 Jan 2016 07:21:05 +0000 -Subject: [PATCH 26/32] crash01: Define _GNU_SOURCE - -Fixes musl build errors like -error: 'SA_NOMASK' undeclared (first use in this function) - -Signed-off-by: Khem Raj - -Upstream-Status: Pending ---- - testcases/misc/crash/crash01.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/testcases/misc/crash/crash01.c b/testcases/misc/crash/crash01.c -index 0574521..08a02e7 100644 ---- a/testcases/misc/crash/crash01.c -+++ b/testcases/misc/crash/crash01.c -@@ -49,7 +49,7 @@ stress test at the same time you run other tests, like a multi-user - benchmark. - - */ -- -+#define _GNU_SOURCE - #include - #include - #include --- -2.7.0 - diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/ltp/ltp/0028-rt_sigaction.h-Use-sighandler_t-instead-of-__sighand.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-extended/ltp/ltp/0028-rt_sigaction.h-Use-sighandler_t-instead-of-__sighand.patch deleted file mode 100644 index 40ee8941..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/ltp/ltp/0028-rt_sigaction.h-Use-sighandler_t-instead-of-__sighand.patch +++ /dev/null @@ -1,48 +0,0 @@ -From 94557fb7e1293c61145c959b8c5ffecf4a2b1069 Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Fri, 8 Jan 2016 07:24:44 +0000 -Subject: [PATCH 28/32] rt_sigaction.h: Use sighandler_t instead of - __sighandler_t - -When _GNU_SOURCE is used then both typedefs are same and using -sighandler_t makes it work on musl too - -Signed-off-by: Khem Raj - -Upstream-Status: Pending ---- - include/lapi/rt_sigaction.h | 4 ++-- - testcases/kernel/syscalls/rt_sigsuspend/Makefile | 3 +++ - 2 files changed, 5 insertions(+), 2 deletions(-) - -diff --git a/include/lapi/rt_sigaction.h b/include/lapi/rt_sigaction.h -index 18236db..15facda 100644 ---- a/include/lapi/rt_sigaction.h -+++ b/include/lapi/rt_sigaction.h -@@ -36,12 +36,12 @@ - #if defined(__mips__) - struct kernel_sigaction { - unsigned int sa_flags; -- __sighandler_t k_sa_handler; -+ sighandler_t k_sa_handler; - sigset_t sa_mask; - }; - #else - struct kernel_sigaction { -- __sighandler_t k_sa_handler; -+ sighandler_t k_sa_handler; - unsigned long sa_flags; - void (*sa_restorer) (void); - sigset_t sa_mask; -diff --git a/testcases/kernel/syscalls/rt_sigsuspend/Makefile b/testcases/kernel/syscalls/rt_sigsuspend/Makefile -index 37bc3a9..2ca7f7c 100644 ---- a/testcases/kernel/syscalls/rt_sigsuspend/Makefile -+++ b/testcases/kernel/syscalls/rt_sigsuspend/Makefile -@@ -19,4 +19,7 @@ - top_srcdir ?= ../../../.. - - include $(top_srcdir)/include/mk/testcases.mk -+ -+CFLAGS += -D_GNU_SOURCE -+ - include $(top_srcdir)/include/mk/generic_leaf_target.mk diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/ltp/ltp/0034-periodic_output.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-extended/ltp/ltp/0034-periodic_output.patch deleted file mode 100644 index c2ef899c..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/ltp/ltp/0034-periodic_output.patch +++ /dev/null @@ -1,55 +0,0 @@ -From 5a77e2bdc083f4f842a8ba7c2db1a7ac6e5f0664 Mon Sep 17 00:00:00 2001 -From: Dengke Du -Date: Wed, 31 May 2017 21:26:05 -0400 -Subject: [PATCH] Add periodic output for long time test. - -This is needed in context of having scripts running ltp tests and -waiting with a timeout for the output of the tests. - -Signed-off-by: Tudor Florea -Upstream-Status: Pending - -Signed-off-by: Dengke Du ---- - .../kernel/controllers/memcg/stress/memcg_stress_test.sh | 11 ++++++++--- - 1 file changed, 8 insertions(+), 3 deletions(-) - -diff --git a/testcases/kernel/controllers/memcg/stress/memcg_stress_test.sh b/testcases/kernel/controllers/memcg/stress/memcg_stress_test.sh -index af1a708..084e628 100755 ---- a/testcases/kernel/controllers/memcg/stress/memcg_stress_test.sh -+++ b/testcases/kernel/controllers/memcg/stress/memcg_stress_test.sh -@@ -37,7 +37,8 @@ if [ "x$(grep -w memory /proc/cgroups | cut -f4)" != "x1" ]; then - exit 0 - fi - --RUN_TIME=$(( 15 * 60 )) -+ONE_MINUTE=60 -+RUN_TIME=15 - - cleanup() - { -@@ -62,7 +63,7 @@ do_mount() - # $1 - Number of cgroups - # $2 - Allocated how much memory in one process? in MB - # $3 - The interval to touch memory in a process --# $4 - How long does this test run ? in second -+# $4 - How long does this test run ? in minutes - run_stress() - { - do_mount; -@@ -81,7 +82,11 @@ run_stress() - eval /bin/kill -s SIGUSR1 \$pid$i 2> /dev/null - done - -- sleep $4 -+ for i in $(seq 0 $(($4-1))) -+ do -+ eval echo "Started $i min ago. Still alive... " -+ sleep $ONE_MINUTE -+ done - - for i in $(seq 0 $(($1-1))) - do --- -2.8.1 - diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/ltp/ltp/0035-fix-test_proc_kill-hang.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-extended/ltp/ltp/0035-fix-test_proc_kill-hang.patch deleted file mode 100644 index 665da3be..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/ltp/ltp/0035-fix-test_proc_kill-hang.patch +++ /dev/null @@ -1,32 +0,0 @@ -From f7c602b639db0d118e07d3fa7b6deead0be0c72b Mon Sep 17 00:00:00 2001 -From: Dengke Du -Date: Wed, 8 Feb 2017 16:17:17 +0800 -Subject: [PATCH 3/5] Fix test_proc_kill hanging - -Sometimes the signal is delivered to memcg_process before the framework took -into consideration its pid entered in the tasks. Fixed by delaying the signal -send command. - -Signed-off-by: George Nita -Signed-off-by: Dengke Du - -Upstream-Status: Pending ---- - testcases/kernel/controllers/memcg/functional/memcg_lib.sh | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/testcases/kernel/controllers/memcg/functional/memcg_lib.sh b/testcases/kernel/controllers/memcg/functional/memcg_lib.sh -index b785fe3..2918cc5 100755 ---- a/testcases/kernel/controllers/memcg/functional/memcg_lib.sh -+++ b/testcases/kernel/controllers/memcg/functional/memcg_lib.sh -@@ -291,6 +291,7 @@ test_proc_kill() - pid=$! - TST_CHECKPOINT_WAIT 0 - echo $pid > tasks -+ sleep 1 - - signal_memcg_process $pid $3 - --- -2.7.4 - diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/ltp/ltp/0036-testcases-network-nfsv4-acl-acl1.c-Security-fix-on-s.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-extended/ltp/ltp/0036-testcases-network-nfsv4-acl-acl1.c-Security-fix-on-s.patch deleted file mode 100644 index e826d48e..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/ltp/ltp/0036-testcases-network-nfsv4-acl-acl1.c-Security-fix-on-s.patch +++ /dev/null @@ -1,41 +0,0 @@ -From 672a56be14426eae44864673c6c2afca0ab89d46 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?An=C3=ADbal=20Lim=C3=B3n?= -Date: Fri, 13 May 2016 11:11:28 -0500 -Subject: [PATCH] testcases/network/nfsv4/acl/acl1.c: Security fix on string - printf -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Fixes: - -acl1.c: In function 'test_acl_default': -acl1.c:317:2: error: format not a string literal and no format arguments -[-Werror=format-security] - printf(cmd); - -[YOCTO #9548] - -Signed-off-by: Aníbal Limón - -Upstream-Status: Pending ---- - testcases/network/nfsv4/acl/acl1.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/testcases/network/nfsv4/acl/acl1.c b/testcases/network/nfsv4/acl/acl1.c -index b8b67b4..7c7c506 100644 ---- a/testcases/network/nfsv4/acl/acl1.c -+++ b/testcases/network/nfsv4/acl/acl1.c -@@ -303,7 +303,7 @@ void test_acl_default(char *dir, acl_t acl) - char *cmd = malloc(256); - - strcpy(cmd, "chmod 7777 "); -- printf(cmd); -+ printf(cmd, NULL); - strcat(cmd, dir); - system(cmd); - acl2 = acl_get_file(path, ACL_TYPE_ACCESS); --- -2.1.4 - diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/ltp/ltp/0039-commands-ar01-Fix-for-test-in-deterministic-mode.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-extended/ltp/ltp/0039-commands-ar01-Fix-for-test-in-deterministic-mode.patch deleted file mode 100644 index ec5e2ef9..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/ltp/ltp/0039-commands-ar01-Fix-for-test-in-deterministic-mode.patch +++ /dev/null @@ -1,254 +0,0 @@ -From 04da9478887e705ea38e4f097492da20e651686c Mon Sep 17 00:00:00 2001 -From: Guangwen Feng -Date: Wed, 13 Sep 2017 15:48:42 +0800 -Subject: [PATCH] commands/ar01: Fix for test in deterministic mode - -If binutils was configured with --enable-deterministic-archives, -ar will run in deterministic mode by default, and use zero for -timestamps and uids/gids, which makes the test case abnormal. - -Fix this by add the "U" modifier when deterministic mode is default. - -Signed-off-by: Guangwen Feng -Signed-off-by: Fei Jie - -Upstream-Status: Backport -[http://lists.linux.it/pipermail/ltp/2017-September/005668.html] - -Signed-off-by: Yi Zhao ---- - testcases/commands/ar/ar01 | 92 ++++++++++++++++++++++++++-------------------- - 1 file changed, 52 insertions(+), 40 deletions(-) - -diff --git a/testcases/commands/ar/ar01 b/testcases/commands/ar/ar01 -index be105f6da..813a51d9c 100644 ---- a/testcases/commands/ar/ar01 -+++ b/testcases/commands/ar/ar01 -@@ -24,16 +24,28 @@ - # - AR="${AR:=ar}" - TST_CNT=17 -+TST_SETUP=setup - TST_TESTFUNC=test - TST_NEEDS_TMPDIR=1 - TST_NEEDS_CMDS="$AR" - - . tst_test.sh - -+setup() -+{ -+ ar --help | grep "use zero for timestamps and uids/gids (default)" \ -+ >/dev/null -+ if [ $? -eq 0 ]; then -+ MOD="U" -+ else -+ MOD="" -+ fi -+} -+ - test1() - { -- ROD ar -cr lib.a $TST_DATAROOT/file1.in $TST_DATAROOT/file3.in -- ROD ar -ra file1.in lib.a $TST_DATAROOT/file2.in -+ ROD ar -cr"$MOD" lib.a $TST_DATAROOT/file1.in $TST_DATAROOT/file3.in -+ ROD ar -ra"$MOD" file1.in lib.a $TST_DATAROOT/file2.in - ROD ar -t lib.a \> ar.out - - printf "file1.in\nfile2.in\nfile3.in\n" > ar.exp -@@ -50,9 +62,9 @@ test1() - - test2() - { -- ROD ar -cr lib.a $TST_DATAROOT/file1.in $TST_DATAROOT/file2.in \ -- $TST_DATAROOT/file3.in $TST_DATAROOT/file4.in -- ROD ar -ma file1.in lib.a file4.in -+ ROD ar -cr"$MOD" lib.a $TST_DATAROOT/file1.in $TST_DATAROOT/file2.in \ -+ $TST_DATAROOT/file3.in $TST_DATAROOT/file4.in -+ ROD ar -ma"$MOD" file1.in lib.a file4.in - ROD ar -t lib.a \> ar.out - - printf "file1.in\nfile4.in\nfile2.in\nfile3.in\n" > ar.exp -@@ -69,8 +81,8 @@ test2() - - test3() - { -- ROD ar -cr lib.a $TST_DATAROOT/file1.in $TST_DATAROOT/file3.in -- ROD ar -rb file3.in lib.a $TST_DATAROOT/file2.in -+ ROD ar -cr"$MOD" lib.a $TST_DATAROOT/file1.in $TST_DATAROOT/file3.in -+ ROD ar -rb"$MOD" file3.in lib.a $TST_DATAROOT/file2.in - ROD ar -t lib.a \> ar.out - - printf "file1.in\nfile2.in\nfile3.in\n" > ar.exp -@@ -87,9 +99,9 @@ test3() - - test4() - { -- ROD ar -cr lib.a $TST_DATAROOT/file1.in $TST_DATAROOT/file3.in \ -- $TST_DATAROOT/file2.in -- ROD ar -mb file3.in lib.a file2.in -+ ROD ar -cr"$MOD" lib.a $TST_DATAROOT/file1.in $TST_DATAROOT/file3.in \ -+ $TST_DATAROOT/file2.in -+ ROD ar -mb"$MOD" file3.in lib.a file2.in - ROD ar -t lib.a \> ar.out - - printf "file1.in\nfile2.in\nfile3.in\n" > ar.exp -@@ -106,7 +118,7 @@ test4() - - test5() - { -- ROD ar -cr lib.a $TST_DATAROOT/file1.in \> ar.out -+ ROD ar -cr"$MOD" lib.a $TST_DATAROOT/file1.in \> ar.out - - if [ -s ar.out ]; then - tst_res TFAIL "ar produced output unexpectedly (-c)" -@@ -120,7 +132,7 @@ test5() - - test6() - { -- ROD ar -qc lib.a $TST_DATAROOT/file1.in \> ar.out -+ ROD ar -qc"$MOD" lib.a $TST_DATAROOT/file1.in \> ar.out - - if [ -s ar.out ]; then - tst_res TFAIL "ar produced output unexpectedly (-qc)" -@@ -134,9 +146,9 @@ test6() - - test7() - { -- ROD ar -cr lib.a $TST_DATAROOT/file1.in $TST_DATAROOT/file2.in \ -- $TST_DATAROOT/file3.in -- ROD ar -d lib.a file1.in file2.in -+ ROD ar -cr"$MOD" lib.a $TST_DATAROOT/file1.in $TST_DATAROOT/file2.in \ -+ $TST_DATAROOT/file3.in -+ ROD ar -d"$MOD" lib.a file1.in file2.in - ROD ar -t lib.a \> ar.out - - printf "file3.in\n" > ar.exp -@@ -153,9 +165,9 @@ test7() - - test8() - { -- ROD ar -cr lib.a $TST_DATAROOT/file1.in $TST_DATAROOT/file2.in \ -- $TST_DATAROOT/file3.in -- ROD ar -d lib.a -+ ROD ar -cr"$MOD" lib.a $TST_DATAROOT/file1.in $TST_DATAROOT/file2.in \ -+ $TST_DATAROOT/file3.in -+ ROD ar -d"$MOD" lib.a - ROD ar -t lib.a \> ar.out - - printf "file1.in\nfile2.in\nfile3.in\n" > ar.exp -@@ -172,8 +184,8 @@ test8() - - test9() - { -- ROD ar -cr lib.a $TST_DATAROOT/file1.in $TST_DATAROOT/file3.in -- ROD ar -ri file3.in lib.a $TST_DATAROOT/file2.in -+ ROD ar -cr"$MOD" lib.a $TST_DATAROOT/file1.in $TST_DATAROOT/file3.in -+ ROD ar -ri"$MOD" file3.in lib.a $TST_DATAROOT/file2.in - ROD ar -t lib.a \> ar.out - - printf "file1.in\nfile2.in\nfile3.in\n" > ar.exp -@@ -190,9 +202,9 @@ test9() - - test10() - { -- ROD ar -cr lib.a $TST_DATAROOT/file1.in $TST_DATAROOT/file3.in \ -- $TST_DATAROOT/file2.in -- ROD ar -mi file3.in lib.a file2.in -+ ROD ar -cr"$MOD" lib.a $TST_DATAROOT/file1.in $TST_DATAROOT/file3.in \ -+ $TST_DATAROOT/file2.in -+ ROD ar -mi"$MOD" file3.in lib.a file2.in - ROD ar -t lib.a \> ar.out - - printf "file1.in\nfile2.in\nfile3.in\n" > ar.exp -@@ -209,9 +221,9 @@ test10() - - test11() - { -- ROD ar -cr lib.a $TST_DATAROOT/file1.in $TST_DATAROOT/file3.in \ -- $TST_DATAROOT/file2.in -- ROD ar -m lib.a file3.in -+ ROD ar -cr"$MOD" lib.a $TST_DATAROOT/file1.in $TST_DATAROOT/file3.in \ -+ $TST_DATAROOT/file2.in -+ ROD ar -m"$MOD" lib.a file3.in - ROD ar -t lib.a \> ar.out - - printf "file1.in\nfile2.in\nfile3.in\n" > ar.exp -@@ -228,9 +240,9 @@ test11() - - test12() - { -- ROD ar -cr lib.a $TST_DATAROOT/file1.in $TST_DATAROOT/file2.in \ -- $TST_DATAROOT/file3.in -- ROD ar -p lib.a \> ar.out -+ ROD ar -cr"$MOD" lib.a $TST_DATAROOT/file1.in $TST_DATAROOT/file2.in \ -+ $TST_DATAROOT/file3.in -+ ROD ar -p"$MOD" lib.a \> ar.out - - printf "This is file one\nThis is file two\nThis is file three\n" > ar.exp - -@@ -247,9 +259,9 @@ test12() - test13() - { - -- ROD ar -cr lib.a $TST_DATAROOT/file1.in $TST_DATAROOT/file2.in \ -- $TST_DATAROOT/file3.in -- ROD ar -q lib.a $TST_DATAROOT/file4.in -+ ROD ar -cr"$MOD" lib.a $TST_DATAROOT/file1.in $TST_DATAROOT/file2.in \ -+ $TST_DATAROOT/file3.in -+ ROD ar -q"$MOD" lib.a $TST_DATAROOT/file4.in - ROD ar -t lib.a \> ar.out - - printf "file1.in\nfile2.in\nfile3.in\nfile4.in\n" > ar.exp -@@ -267,14 +279,14 @@ test13() - test14() - { - ROD touch file0.in -- ROD ar -cr lib.a file0.in $TST_DATAROOT/file1.in -+ ROD ar -cr"$MOD" lib.a file0.in $TST_DATAROOT/file1.in - - file0_mtime1=$(ar -tv lib.a | grep file0.in) - file1_mtime1=$(ar -tv lib.a | grep file1.in) - - touch -c -t $(date --date='next day' +"%Y%m%d%H%M") file0.in - -- ROD ar -ru lib.a file0.in $TST_DATAROOT/file1.in -+ ROD ar -ru"$MOD" lib.a file0.in $TST_DATAROOT/file1.in - - file0_mtime2=$(ar -tv lib.a | grep file0.in) - file1_mtime2=$(ar -tv lib.a | grep file1.in) -@@ -296,7 +308,7 @@ test14() - - test15() - { -- ROD ar -cr lib.a $TST_DATAROOT/file1.in -+ ROD ar -cr"$MOD" lib.a $TST_DATAROOT/file1.in - ROD ar -tv lib.a \> ar.out - - if grep -q '[rwx-]\{9\} [0-9].*/[0-9].*\s*[0-9].*.*file1.in' ar.out; then -@@ -311,9 +323,9 @@ test15() - - test16() - { -- ROD ar -cr lib.a $TST_DATAROOT/file1.in $TST_DATAROOT/file2.in \ -- $TST_DATAROOT/file3.in -- ROD ar -xv lib.a \> ar.out -+ ROD ar -cr"$MOD" lib.a $TST_DATAROOT/file1.in $TST_DATAROOT/file2.in \ -+ $TST_DATAROOT/file3.in -+ ROD ar -xv"$MOD" lib.a \> ar.out - - printf "x - file1.in\nx - file2.in\nx - file3.in\n" > ar.exp - -@@ -335,8 +347,8 @@ test16() - - test17() - { -- ROD ar -cr lib.a $TST_DATAROOT/file1.in $TST_DATAROOT/file2.in -- ROD ar -xv lib.a file2.in \> ar.out -+ ROD ar -cr"$MOD" lib.a $TST_DATAROOT/file1.in $TST_DATAROOT/file2.in -+ ROD ar -xv"$MOD" lib.a file2.in \> ar.out - - printf "x - file2.in\n" > ar.exp - --- -2.19.0.rc2 - diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/ltp/ltp/define-sigrtmin-and-sigrtmax-for-musl.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-extended/ltp/ltp/define-sigrtmin-and-sigrtmax-for-musl.patch deleted file mode 100644 index c324463e..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/ltp/ltp/define-sigrtmin-and-sigrtmax-for-musl.patch +++ /dev/null @@ -1,114 +0,0 @@ -From 34b91edc70709f32b44f6b3a32c8f18db393e36c Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Daniel=20D=C3=ADaz?= -Date: Wed, 20 Feb 2019 08:07:27 -0600 -Subject: [PATCH] Define __SIGRTMIN and __SIGRTMAX for MUSL -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Some libc implementations might differ in the definitions they -include. Exempli gratia: MUSL does not define __SIGRTMAX nor -__SIGRTMIN. - -These two tests fail to build because of the missing -definitions: - testcases/kernel/syscalls/ptrace/ptrace05.c - testcases/kernel/syscalls/sighold/sighold02.c - -Out of precaution, these two also include this header: - lib/tst_sig.c - testcases/kernel/syscalls/rt_sigsuspend/rt_sigsuspend01.c - -Upstream-Status: Submitted [http://lists.linux.it/pipermail/ltp/2019-February/010916.html] - -Signed-off-by: Daniel Díaz ---- - include/lapi/signal.h | 24 +++++++++++++++++++ - lib/tst_sig.c | 1 + - testcases/kernel/syscalls/ptrace/ptrace05.c | 1 + - .../syscalls/rt_sigsuspend/rt_sigsuspend01.c | 1 + - testcases/kernel/syscalls/sighold/sighold02.c | 1 + - 5 files changed, 28 insertions(+) - create mode 100644 include/lapi/signal.h - -diff --git a/include/lapi/signal.h b/include/lapi/signal.h -new file mode 100644 -index 000000000..d22965a94 ---- /dev/null -+++ b/include/lapi/signal.h -@@ -0,0 +1,24 @@ -+// SPDX-License-Identifier: GPL-2.0-or-later -+/* -+ * Copyright (c) 2019 Linaro Limited. All rights reserved. -+ * Author: Daniel Díaz -+ */ -+ -+#ifndef LAPI_SIGNAL_H -+#define LAPI_SIGNAL_H -+ -+#include -+ -+/* -+ * Some libc implementations might differ in the definitions they include. This -+ * covers those differences for all tests to successfully build. -+ */ -+ -+#ifndef __SIGRTMIN -+# define __SIGRTMIN 32 -+#endif -+#ifndef __SIGRTMAX -+# define __SIGRTMAX (_NSIG - 1) -+#endif -+ -+#endif -diff --git a/lib/tst_sig.c b/lib/tst_sig.c -index 36565e13d..6d77aeafd 100644 ---- a/lib/tst_sig.c -+++ b/lib/tst_sig.c -@@ -72,6 +72,7 @@ - #include - #include - #include "test.h" -+#include "lapi/signal.h" - - #define MAXMESG 150 /* size of mesg string sent to tst_res */ - -diff --git a/testcases/kernel/syscalls/ptrace/ptrace05.c b/testcases/kernel/syscalls/ptrace/ptrace05.c -index 420330029..54cfa4d7b 100644 ---- a/testcases/kernel/syscalls/ptrace/ptrace05.c -+++ b/testcases/kernel/syscalls/ptrace/ptrace05.c -@@ -38,6 +38,7 @@ - #include "ptrace.h" - - #include "test.h" -+#include "lapi/signal.h" - - char *TCID = "ptrace05"; - int TST_TOTAL = 0; -diff --git a/testcases/kernel/syscalls/rt_sigsuspend/rt_sigsuspend01.c b/testcases/kernel/syscalls/rt_sigsuspend/rt_sigsuspend01.c -index f17a9aae6..e577cf227 100644 ---- a/testcases/kernel/syscalls/rt_sigsuspend/rt_sigsuspend01.c -+++ b/testcases/kernel/syscalls/rt_sigsuspend/rt_sigsuspend01.c -@@ -18,6 +18,7 @@ - #include "tst_test.h" - #include "lapi/syscalls.h" - #include "lapi/safe_rt_signal.h" -+#include "lapi/signal.h" - - static void sig_handler(int sig) - { -diff --git a/testcases/kernel/syscalls/sighold/sighold02.c b/testcases/kernel/syscalls/sighold/sighold02.c -index d1d4b0b06..b763142df 100644 ---- a/testcases/kernel/syscalls/sighold/sighold02.c -+++ b/testcases/kernel/syscalls/sighold/sighold02.c -@@ -49,6 +49,7 @@ - #include - #include "test.h" - #include "safe_macros.h" -+#include "lapi/signal.h" - - /* _XOPEN_SOURCE disables NSIG */ - #ifndef NSIG --- -2.17.1 - diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/ltp/ltp/setregid01-security-string-formatting.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-extended/ltp/ltp/setregid01-security-string-formatting.patch deleted file mode 100644 index 24449148..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/ltp/ltp/setregid01-security-string-formatting.patch +++ /dev/null @@ -1,46 +0,0 @@ -From 430e05c2169ed15aaa6d7f9459edd607603cee02 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Daniel=20D=C3=ADaz?= -Date: Mon, 25 Feb 2019 10:44:33 -0600 -Subject: [PATCH] setregid01: Fix security warning for string formatting -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -GCC 8.2.0 complains with the following: - setregid01.c: In function 'run': - setregid01.c:47:3: error: format not a string literal and no format arguments [-Werror=format-security] - tst_res(TFAIL | TTERRNO, tc->msg); - ^~~~~~~ -because there is no string formatting in the message. This can -be seen with CFLAGS set to: - -Wformat -Wformat-security -Werror=format-security -as Yocto Project's Poky does, e.g.: - http://errors.yoctoproject.org/Errors/Details/230043/ - -Upstream-Status: Backport [46e1eda55f188810e6bf3a939b92d604321807ae] - -Signed-off-by: Daniel Díaz -Reviewed-by: Enji Cooper ---- - testcases/kernel/syscalls/setregid/setregid01.c | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/testcases/kernel/syscalls/setregid/setregid01.c b/testcases/kernel/syscalls/setregid/setregid01.c -index f2e41e134..8c9e11918 100644 ---- a/testcases/kernel/syscalls/setregid/setregid01.c -+++ b/testcases/kernel/syscalls/setregid/setregid01.c -@@ -44,9 +44,9 @@ static void run(unsigned int n) - TEST(SETREGID(*tc->arg1, *tc->arg2)); - - if (TST_RET == -1) -- tst_res(TFAIL | TTERRNO, tc->msg); -+ tst_res(TFAIL | TTERRNO, "%s", tc->msg); - else -- tst_res(TPASS, tc->msg); -+ tst_res(TPASS, "%s", tc->msg); - } - - static void setup(void) --- -2.17.1 - diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/ltp/ltp_20190115.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-extended/ltp/ltp_20190115.bb deleted file mode 100644 index 1d0c00b6..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/ltp/ltp_20190115.bb +++ /dev/null @@ -1,123 +0,0 @@ -SUMMARY = "Linux Test Project" -DESCRIPTION = "The Linux Test Project is a joint project with SGI, IBM, OSDL, and Bull with a goal to deliver test suites to the open source community that validate the reliability, robustness, and stability of Linux. The Linux Test Project is a collection of tools for testing the Linux kernel and related features." -HOMEPAGE = "https://linux-test-project.github.io/" -SECTION = "console/utils" -LICENSE = "GPLv2 & GPLv2+ & LGPLv2+ & LGPLv2.1+ & BSD-2-Clause" -LIC_FILES_CHKSUM = "\ - file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \ - file://testcases/kernel/controllers/freezer/COPYING;md5=0636e73ff0215e8d672dc4c32c317bb3 \ - file://testcases/kernel/controllers/freezer/run_freezer.sh;beginline=5;endline=17;md5=86a61d2c042d59836ffb353a21456498 \ - file://testcases/kernel/hotplug/memory_hotplug/COPYING;md5=e04a2e542b2b8629bf9cd2ba29b0fe41 \ - file://testcases/kernel/hotplug/cpu_hotplug/COPYING;md5=e04a2e542b2b8629bf9cd2ba29b0fe41 \ - file://testcases/open_posix_testsuite/COPYING;md5=48b1c5ec633e3e30ec2cf884ae699947 \ - file://testcases/realtime/COPYING;md5=12f884d2ae1ff87c09e5b7ccc2c4ca7e \ - file://utils/benchmark/kernbench-0.42/COPYING;md5=94d55d512a9ba36caa9b7df079bae19f \ - file://utils/ffsb-6.0-rc2/COPYING;md5=c46082167a314d785d012a244748d803 \ -" - -DEPENDS = "attr libaio libcap acl openssl zip-native" -DEPENDS_append_libc-musl = " fts " -EXTRA_OEMAKE_append_libc-musl = " LIBC=musl " - -# since ltp contains x86-64 assembler which uses the frame-pointer register, -# set -fomit-frame-pointer x86-64 to handle cases where optimisation -# is set to -O0 or frame pointers have been enabled by -fno-omit-frame-pointer -# earlier in CFLAGS, etc. -CFLAGS_append_x86-64 = " -fomit-frame-pointer" - -CFLAGS_append_powerpc64 = " -D__SANE_USERSPACE_TYPES__" -CFLAGS_append_mipsarchn64 = " -D__SANE_USERSPACE_TYPES__" -SRCREV = "a6a5caef13632e669dda27b0461726eba546a2f3" - -SRC_URI = "git://github.com/linux-test-project/ltp.git \ - file://0004-build-Add-option-to-select-libc-implementation.patch \ - file://0005-kernel-controllers-Link-with-libfts-explicitly-on-mu.patch \ - file://0007-fix-__WORDSIZE-undeclared-when-building-with-musl.patch \ - file://0008-Check-if-__GLIBC_PREREQ-is-defined-before-using-it.patch \ - file://0009-fix-redefinition-of-struct-msgbuf-error-building-wit.patch \ - file://0018-guard-mallocopt-with-__GLIBC__.patch \ - file://0020-getdents-define-getdents-getdents64-only-for-glibc.patch \ - file://0021-Define-_GNU_SOURCE-for-MREMAP_MAYMOVE-definition.patch \ - file://0023-ptrace-Use-int-instead-of-enum-__ptrace_request.patch \ - file://0024-rt_sigaction-rt_sigprocmark-Define-_GNU_SOURCE.patch \ - file://0026-crash01-Define-_GNU_SOURCE.patch \ - file://0028-rt_sigaction.h-Use-sighandler_t-instead-of-__sighand.patch \ - file://0034-periodic_output.patch \ - file://0035-fix-test_proc_kill-hang.patch \ - file://0036-testcases-network-nfsv4-acl-acl1.c-Security-fix-on-s.patch \ - file://0039-commands-ar01-Fix-for-test-in-deterministic-mode.patch \ - file://0001-open_posix_testsuite-mmap24-2-Relax-condition-a-bit.patch \ - file://define-sigrtmin-and-sigrtmax-for-musl.patch \ - file://setregid01-security-string-formatting.patch \ - file://0001-syscalls-setrlimit03.c-read-proc-sys-fs-nr_open-for-.patch \ - " - -S = "${WORKDIR}/git" - -inherit autotools-brokensep - -TARGET_CC_ARCH += "${LDFLAGS}" - -export prefix = "/opt/ltp" -export exec_prefix = "/opt/ltp" - -PACKAGECONFIG[numa] = "--with-numa, --without-numa, numactl," -EXTRA_AUTORECONF += "-I ${S}/testcases/realtime/m4" -EXTRA_OECONF = " --with-power-management-testsuite --with-realtime-testsuite --with-open-posix-testsuite " -# ltp network/rpc test cases ftbfs when libtirpc is found -EXTRA_OECONF += " --without-tirpc " - -do_install(){ - install -d ${D}/opt/ltp/ - oe_runmake DESTDIR=${D} SKIP_IDCHECK=1 install - - # fixup not deploy STPfailure_report.pl to avoid confusing about it fails to run - # as it lacks dependency on some perl moudle such as LWP::Simple - # And this script previously works as a tool for analyzing failures from LTP - # runs on the OSDL's Scaleable Test Platform (STP) and it mainly accesses - # http://khack.osdl.org to retrieve ltp test results run on - # OSDL's Scaleable Test Platform, but now http://khack.osdl.org unaccessible - rm -rf ${D}/opt/ltp/bin/STPfailure_report.pl - - # Copy POSIX test suite into ${D}/opt/ltp/testcases by manual - cp -r testcases/open_posix_testsuite ${D}/opt/ltp/testcases -} - -RDEPENDS_${PN} = "\ - acl \ - at \ - attr \ - bash \ - cpio \ - cronie \ - curl \ - e2fsprogs-mke2fs \ - expect \ - file \ - gawk \ - gzip \ - iproute2 \ - ldd \ - libaio \ - logrotate \ - perl \ - python-core \ - procps \ - quota \ - unzip \ - util-linux \ - which \ - tar \ -" - -FILES_${PN} += "/opt/ltp/* /opt/ltp/runtest/* /opt/ltp/scenario_groups/* /opt/ltp/testcases/bin/* /opt/ltp/testcases/bin/*/bin/* /opt/ltp/testscripts/* /opt/ltp/testcases/open_posix_testsuite/* /opt/ltp/testcases/open_posix_testsuite/conformance/* /opt/ltp/testcases/open_posix_testsuite/Documentation/* /opt/ltp/testcases/open_posix_testsuite/functional/* /opt/ltp/testcases/open_posix_testsuite/include/* /opt/ltp/testcases/open_posix_testsuite/scripts/* /opt/ltp/testcases/open_posix_testsuite/stress/* /opt/ltp/testcases/open_posix_testsuite/tools/* /opt/ltp/testcases/data/nm01/lib.a /opt/ltp/lib/libmem.a" - -# Avoid stripping some generated binaries otherwise some of the ltp tests such as ldd01 & nm01 fail -INHIBIT_PACKAGE_STRIP_FILES = "/opt/ltp/testcases/bin/nm01 /opt/ltp/testcases/bin/ldd01" -INSANE_SKIP_${PN} += "already-stripped staticdev" - -# Avoid file dependency scans, as LTP checks for things that may or may not -# exist on the running system. For instance it has specific checks for -# csh and ksh which are not typically part of OpenEmbedded systems (but -# can be added via additional layers.) -SKIP_FILEDEPS_${PN} = '1' diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/ltp/ltp_20190517.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-extended/ltp/ltp_20190517.bb new file mode 100644 index 00000000..47aa9675 --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-extended/ltp/ltp_20190517.bb @@ -0,0 +1,124 @@ +SUMMARY = "Linux Test Project" +DESCRIPTION = "The Linux Test Project is a joint project with SGI, IBM, OSDL, and Bull with a goal to deliver test suites to the open source community that validate the reliability, robustness, and stability of Linux. The Linux Test Project is a collection of tools for testing the Linux kernel and related features." +HOMEPAGE = "https://linux-test-project.github.io/" +SECTION = "console/utils" +LICENSE = "GPLv2 & GPLv2+ & LGPLv2+ & LGPLv2.1+ & BSD-2-Clause" +LIC_FILES_CHKSUM = "\ + file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \ + file://testcases/kernel/controllers/freezer/COPYING;md5=0636e73ff0215e8d672dc4c32c317bb3 \ + file://testcases/kernel/controllers/freezer/run_freezer.sh;beginline=5;endline=17;md5=86a61d2c042d59836ffb353a21456498 \ + file://testcases/kernel/hotplug/memory_hotplug/COPYING;md5=e04a2e542b2b8629bf9cd2ba29b0fe41 \ + file://testcases/kernel/hotplug/cpu_hotplug/COPYING;md5=e04a2e542b2b8629bf9cd2ba29b0fe41 \ + file://testcases/open_posix_testsuite/COPYING;md5=48b1c5ec633e3e30ec2cf884ae699947 \ + file://testcases/realtime/COPYING;md5=12f884d2ae1ff87c09e5b7ccc2c4ca7e \ + file://utils/benchmark/kernbench-0.42/COPYING;md5=94d55d512a9ba36caa9b7df079bae19f \ + file://utils/ffsb-6.0-rc2/COPYING;md5=c46082167a314d785d012a244748d803 \ +" + +DEPENDS = "attr libaio libcap acl openssl zip-native" +DEPENDS_append_libc-musl = " fts " +EXTRA_OEMAKE_append_libc-musl = " LIBC=musl " + +# since ltp contains x86-64 assembler which uses the frame-pointer register, +# set -fomit-frame-pointer x86-64 to handle cases where optimisation +# is set to -O0 or frame pointers have been enabled by -fno-omit-frame-pointer +# earlier in CFLAGS, etc. +CFLAGS_append_x86-64 = " -fomit-frame-pointer" + +CFLAGS_append_powerpc64 = " -D__SANE_USERSPACE_TYPES__" +CFLAGS_append_mipsarchn64 = " -D__SANE_USERSPACE_TYPES__" +SRCREV = "ac33ef87f0b9dc56533026435be3ea8c67ce86d2" + +SRC_URI = "git://github.com/linux-test-project/ltp.git \ + file://0001-build-Add-option-to-select-libc-implementation.patch \ + file://0002-kernel-controllers-Link-with-libfts-explicitly-on-mu.patch \ + file://0003-Check-if-__GLIBC_PREREQ-is-defined-before-using-it.patch \ + file://0004-guard-mallocopt-with-__GLIBC__.patch \ + file://0006-rt_tgsigqueueinfo-disable-test-on-musl.patch \ + file://0007-Fix-test_proc_kill-hanging.patch \ + file://0008-testcases-network-nfsv4-acl-acl1.c-Security-fix-on-s.patch \ + file://0009-open_posix_testsuite-mmap24-2-Relax-condition-a-bit.patch \ + file://0010-shmctl01-don-t-use-hardcoded-index-0-for-SHM_STAT-te.patch \ + file://0011-direct_io-diotest4-drop-MAP_FIXED.patch \ + file://0012-getrlimit03-adjust-a-bit-of-code-to-compatiable-with.patch \ + file://0001-Add-configure-time-check-for-getdents-getdents64-API.patch \ + file://0002-check-for-RES_USE_INET6-during-configure.patch \ + file://0001-syscalls-tgkill03-wait-for-defunct-tid-to-get-detach.patch \ + file://0001-ustat02-Fix-EFAULT-in-32bit-compatibility-mode.patch \ + file://0001-cve-meltdown.c-Fix-kernel-symbol-finding.patch \ + file://0001-testcases-use-python3-everywhere-to-run-python-scrip.patch \ + file://0001-syscall-rt_sigtimedwait01-Fix-wrong-sigset-length-fo.patch \ + file://0001-cve-2017-17052-Avoid-unsafe-exits-in-threads.patch \ + file://0001-overcommit_memory-update-for-mm-fix-false-positive-O.patch \ + file://0001-mkswap01.sh-Add-udevadm-trigger-before-swap-verifica.patch \ + " + +S = "${WORKDIR}/git" + +inherit autotools-brokensep + +TARGET_CC_ARCH += "${LDFLAGS}" + +export prefix = "/opt/ltp" +export exec_prefix = "/opt/ltp" + +PACKAGECONFIG[numa] = "--with-numa, --without-numa, numactl," +EXTRA_AUTORECONF += "-I ${S}/testcases/realtime/m4" +EXTRA_OECONF = " --with-power-management-testsuite --with-realtime-testsuite --with-open-posix-testsuite " +# ltp network/rpc test cases ftbfs when libtirpc is found +EXTRA_OECONF += " --without-tirpc " + +do_install(){ + install -d ${D}/opt/ltp/ + oe_runmake DESTDIR=${D} SKIP_IDCHECK=1 install + + # fixup not deploy STPfailure_report.pl to avoid confusing about it fails to run + # as it lacks dependency on some perl moudle such as LWP::Simple + # And this script previously works as a tool for analyzing failures from LTP + # runs on the OSDL's Scaleable Test Platform (STP) and it mainly accesses + # http://khack.osdl.org to retrieve ltp test results run on + # OSDL's Scaleable Test Platform, but now http://khack.osdl.org unaccessible + rm -rf ${D}/opt/ltp/bin/STPfailure_report.pl + + # Copy POSIX test suite into ${D}/opt/ltp/testcases by manual + cp -r testcases/open_posix_testsuite ${D}/opt/ltp/testcases +} + +RDEPENDS_${PN} = "\ + acl \ + at \ + attr \ + bash \ + cpio \ + cronie \ + curl \ + e2fsprogs-mke2fs \ + expect \ + file \ + gawk \ + gzip \ + iproute2 \ + ldd \ + libaio \ + logrotate \ + perl \ + python3-core \ + procps \ + quota \ + unzip \ + util-linux \ + which \ + tar \ +" + +FILES_${PN} += "/opt/ltp/* /opt/ltp/runtest/* /opt/ltp/scenario_groups/* /opt/ltp/testcases/bin/* /opt/ltp/testcases/bin/*/bin/* /opt/ltp/testscripts/* /opt/ltp/testcases/open_posix_testsuite/* /opt/ltp/testcases/open_posix_testsuite/conformance/* /opt/ltp/testcases/open_posix_testsuite/Documentation/* /opt/ltp/testcases/open_posix_testsuite/functional/* /opt/ltp/testcases/open_posix_testsuite/include/* /opt/ltp/testcases/open_posix_testsuite/scripts/* /opt/ltp/testcases/open_posix_testsuite/stress/* /opt/ltp/testcases/open_posix_testsuite/tools/* /opt/ltp/testcases/data/nm01/lib.a /opt/ltp/lib/libmem.a" + +# Avoid stripping some generated binaries otherwise some of the ltp tests such as ldd01 & nm01 fail +INHIBIT_PACKAGE_STRIP_FILES = "/opt/ltp/testcases/bin/nm01 /opt/ltp/testcases/bin/ldd01" +INSANE_SKIP_${PN} += "already-stripped staticdev" + +# Avoid file dependency scans, as LTP checks for things that may or may not +# exist on the running system. For instance it has specific checks for +# csh and ksh which are not typically part of OpenEmbedded systems (but +# can be added via additional layers.) +SKIP_FILEDEPS_${PN} = '1' diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/man-db/man-db_2.8.5.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-extended/man-db/man-db_2.8.5.bb deleted file mode 100644 index 441e2f41..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/man-db/man-db_2.8.5.bb +++ /dev/null @@ -1,59 +0,0 @@ -SUMMARY = "An implementation of the standard Unix documentation system accessed using the man command" -HOMEPAGE = "http://man-db.nongnu.org/" -LICENSE = "LGPLv2.1 & GPLv2" -LIC_FILES_CHKSUM = "file://docs/COPYING.LIB;md5=a6f89e2100d9b6cdffcea4f398e37343 \ - file://docs/COPYING;md5=eb723b61539feef013de476e68b5c50a" - -SRC_URI = "${SAVANNAH_NONGNU_MIRROR}/man-db/man-db-${PV}.tar.xz \ - file://99_mandb \ - file://man_db.conf-avoid-multilib-install-file-conflict.patch" -SRC_URI[md5sum] = "c5c6c3434be14a5527d43b5ad0f09a13" -SRC_URI[sha256sum] = "b64d52747534f1fe873b2876eb7f01319985309d5d7da319d2bc52ba1e73f6c1" - -DEPENDS = "libpipeline gdbm groff-native base-passwd" -RDEPENDS_${PN} += "base-passwd" - -# | /usr/src/debug/man-db/2.8.0-r0/man-db-2.8.0/src/whatis.c:939: undefined reference to `_nl_msg_cat_cntr' -USE_NLS_libc-musl = "no" - -inherit gettext pkgconfig autotools systemd - -EXTRA_OECONF = "--with-pager=less" -EXTRA_AUTORECONF += "-I ${S}/gl/m4" - -do_install() { - autotools_do_install - - if ${@bb.utils.contains('DISTRO_FEATURES', 'sysvinit', 'true', 'false', d)}; then - install -d ${D}/etc/default/volatiles - install -m 0644 ${WORKDIR}/99_mandb ${D}/etc/default/volatiles - fi -} - -do_install_append_libc-musl() { - rm -f ${D}${libdir}/charset.alias -} - -FILES_${PN} += "${prefix}/lib/tmpfiles.d" - -FILES_${PN}-dev += "${libdir}/man-db/libman.so ${libdir}/${BPN}/libmandb.so" - -RDEPENDS_${PN} += "groff" -RRECOMMENDS_${PN} += "less" -RPROVIDES_${PN} += " man" - -def compress_pkg(d): - if bb.utils.contains("INHERIT", "compress_doc", True, False, d): - compress = d.getVar("DOC_COMPRESS") - if compress == "gz": - return "gzip" - elif compress == "bz2": - return "bzip2" - elif compress == "xz": - return "xz" - return "" - -RDEPENDS_${PN} += "${@compress_pkg(d)}" - -SYSTEMD_SERVICE_${PN} = "man-db.timer man-db.service" -SYSTEMD_AUTO_ENABLE ?= "disable" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/man-db/man-db_2.8.7.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-extended/man-db/man-db_2.8.7.bb new file mode 100644 index 00000000..083b2374 --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-extended/man-db/man-db_2.8.7.bb @@ -0,0 +1,59 @@ +SUMMARY = "An implementation of the standard Unix documentation system accessed using the man command" +HOMEPAGE = "http://man-db.nongnu.org/" +LICENSE = "LGPLv2.1 & GPLv2" +LIC_FILES_CHKSUM = "file://docs/COPYING.LIB;md5=a6f89e2100d9b6cdffcea4f398e37343 \ + file://docs/COPYING;md5=eb723b61539feef013de476e68b5c50a" + +SRC_URI = "${SAVANNAH_NONGNU_MIRROR}/man-db/man-db-${PV}.tar.xz \ + file://99_mandb \ + file://man_db.conf-avoid-multilib-install-file-conflict.patch" +SRC_URI[md5sum] = "ec0b23c8314a1654c4d059b2c18ce43d" +SRC_URI[sha256sum] = "b9cd5bb996305d08bfe9e1114edc30b4c97be807093b88af8033ed1cf9beb326" + +DEPENDS = "libpipeline gdbm groff-native base-passwd" +RDEPENDS_${PN} += "base-passwd" + +# | /usr/src/debug/man-db/2.8.0-r0/man-db-2.8.0/src/whatis.c:939: undefined reference to `_nl_msg_cat_cntr' +USE_NLS_libc-musl = "no" + +inherit gettext pkgconfig autotools systemd + +EXTRA_OECONF = "--with-pager=less --with-systemdsystemunitdir=${systemd_unitdir}/system" +EXTRA_AUTORECONF += "-I ${S}/gl/m4" + +do_install() { + autotools_do_install + + if ${@bb.utils.contains('DISTRO_FEATURES', 'sysvinit', 'true', 'false', d)}; then + install -d ${D}/etc/default/volatiles + install -m 0644 ${WORKDIR}/99_mandb ${D}/etc/default/volatiles + fi +} + +do_install_append_libc-musl() { + rm -f ${D}${libdir}/charset.alias +} + +FILES_${PN} += "${prefix}/lib/tmpfiles.d" + +FILES_${PN}-dev += "${libdir}/man-db/libman.so ${libdir}/${BPN}/libmandb.so" + +RDEPENDS_${PN} += "groff" +RRECOMMENDS_${PN} += "less" +RPROVIDES_${PN} += " man" + +def compress_pkg(d): + if bb.utils.contains("INHERIT", "compress_doc", True, False, d): + compress = d.getVar("DOC_COMPRESS") + if compress == "gz": + return "gzip" + elif compress == "bz2": + return "bzip2" + elif compress == "xz": + return "xz" + return "" + +RDEPENDS_${PN} += "${@compress_pkg(d)}" + +SYSTEMD_SERVICE_${PN} = "man-db.timer man-db.service" +SYSTEMD_AUTO_ENABLE ?= "disable" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/mc/files/0001-Add-option-to-control-configure-args.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-extended/mc/files/0001-Add-option-to-control-configure-args.patch new file mode 100644 index 00000000..e76aac81 --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-extended/mc/files/0001-Add-option-to-control-configure-args.patch @@ -0,0 +1,99 @@ +From a54501d3c9541bc8600225aa2d42531f93c6def7 Mon Sep 17 00:00:00 2001 +From: Joshua Watt +Date: Sat, 9 Nov 2019 20:01:48 -0600 +Subject: [PATCH] Add option to control configure args + +Embedding the configure time options into the executable can lead to +non-reproducible builds, since configure options often have embedded +paths. Add a configure time option to control if the configure args are +embedded so this can be disabled. + +Upstream-Status: Submitted [https://midnight-commander.org/ticket/4031] +Signed-off-by: Joshua Watt +--- + configure.ac | 6 ++++++ + src/args.c | 6 ++++++ + src/textconf.c | 2 ++ + 3 files changed, 14 insertions(+) + +diff --git a/configure.ac b/configure.ac +index 19d1a76be..a1948f6b9 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -544,6 +544,12 @@ dnl Clarify do we really need GModule + AM_CONDITIONAL([HAVE_GMODULE], [test -n "$g_module_supported" && \ + test x"$textmode_x11_support" = x"yes" -o x"$enable_aspell" = x"yes"]) + ++AC_ARG_ENABLE([configure-args], ++ AS_HELP_STRING([--enable-configure-args], [Handle all compiler warnings as errors])) ++if test "x$enable_configure_args" != xno; then ++ AC_DEFINE([ENABLE_CONFIGURE_ARGS], 1, [Define to enable showing configure arguments in help]) ++fi ++ + AC_DEFINE_UNQUOTED([MC_CONFIGURE_ARGS], ["$ac_configure_args"], [MC configure arguments]) + + AC_CONFIG_FILES( +diff --git a/src/args.c b/src/args.c +index baef1a1c8..f8dc24020 100644 +--- a/src/args.c ++++ b/src/args.c +@@ -95,7 +95,9 @@ static gboolean mc_args__nouse_subshell = FALSE; + #endif /* ENABLE_SUBSHELL */ + static gboolean mc_args__show_datadirs = FALSE; + static gboolean mc_args__show_datadirs_extended = FALSE; ++#ifdef ENABLE_CONFIGURE_ARGS + static gboolean mc_args__show_configure_opts = FALSE; ++#endif + + static GOptionGroup *main_group; + +@@ -125,6 +127,7 @@ static const GOptionEntry argument_main_table[] = { + NULL + }, + ++#ifdef ENABLE_CONFIGURE_ARGS + /* show configure options */ + { + "configure-options", '\0', G_OPTION_FLAG_IN_MAIN, G_OPTION_ARG_NONE, +@@ -132,6 +135,7 @@ static const GOptionEntry argument_main_table[] = { + N_("Print configure options"), + NULL + }, ++#endif + + { + "printwd", 'P', G_OPTION_FLAG_IN_MAIN, G_OPTION_ARG_STRING, +@@ -758,11 +762,13 @@ mc_args_show_info (void) + return FALSE; + } + ++#ifdef ENABLE_CONFIGURE_ARGS + if (mc_args__show_configure_opts) + { + show_configure_options (); + return FALSE; + } ++#endif + + return TRUE; + } +diff --git a/src/textconf.c b/src/textconf.c +index 1e0613e58..f39b9e028 100644 +--- a/src/textconf.c ++++ b/src/textconf.c +@@ -232,10 +232,12 @@ show_datadirs_extended (void) + + /* --------------------------------------------------------------------------------------------- */ + ++#ifdef ENABLE_CONFIGURE_ARGS + void + show_configure_options (void) + { + (void) printf ("%s\n", MC_CONFIGURE_ARGS); + } ++#endif + + /* --------------------------------------------------------------------------------------------- */ +-- +2.23.0 + diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/mc/mc_4.8.22.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-extended/mc/mc_4.8.22.bb deleted file mode 100644 index f64effbc..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/mc/mc_4.8.22.bb +++ /dev/null @@ -1,49 +0,0 @@ -SUMMARY = "Midnight Commander is an ncurses based file manager" -HOMEPAGE = "http://www.midnight-commander.org/" -LICENSE = "GPLv3" -LIC_FILES_CHKSUM = "file://COPYING;md5=270bbafe360e73f9840bd7981621f9c2" -SECTION = "console/utils" -DEPENDS = "ncurses glib-2.0 util-linux" -RDEPENDS_${PN} = "ncurses-terminfo" - -SRC_URI = "http://www.midnight-commander.org/downloads/${BPN}-${PV}.tar.bz2 \ - file://0001-mc-replace-perl-w-with-use-warnings.patch \ - " -SRC_URI[md5sum] = "29983a215c96030f06d5b112088ec5dc" -SRC_URI[sha256sum] = "8d9f1c75369967adfd317a05fef9861444ed049b033e4debaeaafc6df218b431" - -inherit autotools gettext pkgconfig - -# -# Both Samba (smb) and sftp require package delivered from meta-openembedded -# -PACKAGECONFIG ??= "" -PACKAGECONFIG[smb] = "--enable-vfs-smb,--disable-vfs-smb,samba," -PACKAGECONFIG[sftp] = "--enable-vfs-sftp,--disable-vfs-sftp,libssh2," - -EXTRA_OECONF = "--with-screen=ncurses --without-gpm-mouse --without-x" - -CACHED_CONFIGUREVARS += "ac_cv_path_PERL='/usr/bin/env perl'" - -do_install_append () { - sed -i -e '1s,#!.*perl,#!${bindir}/env perl,' ${D}${libexecdir}/mc/extfs.d/* - - rm ${D}${libexecdir}/mc/extfs.d/s3+ ${D}${libexecdir}/mc/extfs.d/uc1541 -} - -PACKAGES =+ "${BPN}-helpers-perl ${BPN}-helpers ${BPN}-fish" - -SUMMARY_${BPN}-helpers-perl = "Midnight Commander Perl-based helper scripts" -FILES_${BPN}-helpers-perl = "${libexecdir}/mc/extfs.d/a+ ${libexecdir}/mc/extfs.d/apt+ \ - ${libexecdir}/mc/extfs.d/deb ${libexecdir}/mc/extfs.d/deba \ - ${libexecdir}/mc/extfs.d/debd ${libexecdir}/mc/extfs.d/dpkg+ \ - ${libexecdir}/mc/extfs.d/mailfs ${libexecdir}/mc/extfs.d/patchfs \ - ${libexecdir}/mc/extfs.d/rpms+ ${libexecdir}/mc/extfs.d/ulib \ - ${libexecdir}/mc/extfs.d/uzip" -RDEPENDS_${BPN}-helpers-perl = "perl" - -SUMMARY_${BPN}-helpers = "Midnight Commander shell helper scripts" -FILES_${BPN}-helpers = "${libexecdir}/mc/extfs.d/* ${libexecdir}/mc/ext.d/*" - -SUMMARY_${BPN}-fish = "Midnight Commander Fish scripts" -FILES_${BPN}-fish = "${libexecdir}/mc/fish" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/mc/mc_4.8.23.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-extended/mc/mc_4.8.23.bb new file mode 100644 index 00000000..71f61b48 --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-extended/mc/mc_4.8.23.bb @@ -0,0 +1,52 @@ +SUMMARY = "Midnight Commander is an ncurses based file manager" +HOMEPAGE = "http://www.midnight-commander.org/" +LICENSE = "GPLv3" +LIC_FILES_CHKSUM = "file://COPYING;md5=270bbafe360e73f9840bd7981621f9c2" +SECTION = "console/utils" +DEPENDS = "ncurses glib-2.0 util-linux" +RDEPENDS_${PN} = "ncurses-terminfo" + +SRC_URI = "http://www.midnight-commander.org/downloads/${BPN}-${PV}.tar.bz2 \ + file://0001-mc-replace-perl-w-with-use-warnings.patch \ + file://0001-Add-option-to-control-configure-args.patch \ + " +SRC_URI[md5sum] = "152927ac29cf0e61d7d019f261bb7d89" +SRC_URI[sha256sum] = "238c4552545dcf3065359bd50753abbb150c1b22ec5a36eaa02c82808293267d" + +inherit autotools gettext pkgconfig + +# +# Both Samba (smb) and sftp require package delivered from meta-openembedded +# +PACKAGECONFIG ??= "" +PACKAGECONFIG[smb] = "--enable-vfs-smb,--disable-vfs-smb,samba," +PACKAGECONFIG[sftp] = "--enable-vfs-sftp,--disable-vfs-sftp,libssh2," + +EXTRA_OECONF = "--with-screen=ncurses --without-gpm-mouse --without-x --disable-configure-args" + +CACHED_CONFIGUREVARS += "ac_cv_path_PERL='/usr/bin/env perl'" +CACHED_CONFIGUREVARS += "ac_cv_path_PYTHON='/usr/bin/env python'" +CACHED_CONFIGUREVARS += "ac_cv_path_GREP='/usr/bin/env grep'" + +do_install_append () { + sed -i -e '1s,#!.*perl,#!${bindir}/env perl,' ${D}${libexecdir}/mc/extfs.d/* + + rm ${D}${libexecdir}/mc/extfs.d/s3+ ${D}${libexecdir}/mc/extfs.d/uc1541 +} + +PACKAGES =+ "${BPN}-helpers-perl ${BPN}-helpers ${BPN}-fish" + +SUMMARY_${BPN}-helpers-perl = "Midnight Commander Perl-based helper scripts" +FILES_${BPN}-helpers-perl = "${libexecdir}/mc/extfs.d/a+ ${libexecdir}/mc/extfs.d/apt+ \ + ${libexecdir}/mc/extfs.d/deb ${libexecdir}/mc/extfs.d/deba \ + ${libexecdir}/mc/extfs.d/debd ${libexecdir}/mc/extfs.d/dpkg+ \ + ${libexecdir}/mc/extfs.d/mailfs ${libexecdir}/mc/extfs.d/patchfs \ + ${libexecdir}/mc/extfs.d/rpms+ ${libexecdir}/mc/extfs.d/ulib \ + ${libexecdir}/mc/extfs.d/uzip" +RDEPENDS_${BPN}-helpers-perl = "perl" + +SUMMARY_${BPN}-helpers = "Midnight Commander shell helper scripts" +FILES_${BPN}-helpers = "${libexecdir}/mc/extfs.d/* ${libexecdir}/mc/ext.d/*" + +SUMMARY_${BPN}-fish = "Midnight Commander Fish scripts" +FILES_${BPN}-fish = "${libexecdir}/mc/fish" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/mdadm/files/0001-Revert-tests-wait-for-complete-rebuild-in-integrity-.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-extended/mdadm/files/0001-Revert-tests-wait-for-complete-rebuild-in-integrity-.patch new file mode 100644 index 00000000..b196084a --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-extended/mdadm/files/0001-Revert-tests-wait-for-complete-rebuild-in-integrity-.patch @@ -0,0 +1,53 @@ +From 02a41c3fd560fb5250186dd6b3cff6b21daa2e2b Mon Sep 17 00:00:00 2001 +From: Mingli Yu +Date: Mon, 15 Jul 2019 14:12:24 +0800 +Subject: [PATCH] Revert "tests: wait for complete rebuild in integrity checks" + +This reverts commit e2a8e9dcf67a28bc722fa5ab2c49b0bc452d4d74 +as the logic "check state 'U*'" will make the test enters +infinite loop especially in qemu env, so revert it to +use the previous logic "check wait" which also used +commonly by other tests such as tests/02r5grow, tests/07revert-grow +and etc. + +Upstream-Status: Submitted[https://marc.info/?l=linux-raid&m=156317157314030&w=2] + +Signed-off-by: Mingli Yu +--- + tests/01r5integ | 2 +- + tests/01raid6integ | 4 ++-- + 2 files changed, 3 insertions(+), 3 deletions(-) + +diff --git a/tests/01r5integ b/tests/01r5integ +index 48676a2..ffb30ce 100644 +--- a/tests/01r5integ ++++ b/tests/01r5integ +@@ -27,7 +27,7 @@ do + exit 1 + fi + mdadm $md0 -a $i +- while ! (check state 'U*'); do check wait; sleep 0.2; done ++ check wait + done + mdadm -S $md0 + done +diff --git a/tests/01raid6integ b/tests/01raid6integ +index 12f4d81..c6fcdae 100644 +--- a/tests/01raid6integ ++++ b/tests/01raid6integ +@@ -47,10 +47,10 @@ do + exit 1 + fi + mdadm $md0 -a $first +- while ! (check state 'U*_U*'); do check wait; sleep 0.2; done ++ check wait + done + mdadm $md0 -a $second +- while ! (check state 'U*'); do check wait; sleep 0.2; done ++ check wait + totest="$totest $second" + done + mdadm -S $md0 +-- +2.7.4 + diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/mdadm/files/0001-mdadm-add-option-y-for-use-syslog-to-recive-event-re.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-extended/mdadm/files/0001-mdadm-add-option-y-for-use-syslog-to-recive-event-re.patch new file mode 100644 index 00000000..e00287ca --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-extended/mdadm/files/0001-mdadm-add-option-y-for-use-syslog-to-recive-event-re.patch @@ -0,0 +1,28 @@ +From 5fdc0173cb4fcf8656f0889ad364d2549795607f Mon Sep 17 00:00:00 2001 +From: Changqing Li +Date: Mon, 1 Jul 2019 11:34:49 +0800 +Subject: [PATCH] mdadm: add option -y for use syslog to recive event report + +fix service startup failed when there is +No mail address or alert command + +Upstream-Status: Inappropriate [configuration] + +Signed-off-by: Changqing Li +--- + systemd/mdmonitor.service | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/systemd/mdmonitor.service b/systemd/mdmonitor.service +index 46f7b88..3fc4687 100644 +--- a/systemd/mdmonitor.service ++++ b/systemd/mdmonitor.service +@@ -13,4 +13,4 @@ DefaultDependencies=no + Environment= MDADM_MONITOR_ARGS=--scan + EnvironmentFile=-/run/sysconfig/mdadm + ExecStartPre=-/usr/lib/mdadm/mdadm_env.sh +-ExecStart=BINDIR/mdadm --monitor $MDADM_MONITOR_ARGS ++ExecStart=BINDIR/mdadm --monitor -y $MDADM_MONITOR_ARGS +-- +2.7.4 + diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/mdadm/files/0001-mdadm-skip-test-11spare-migration.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-extended/mdadm/files/0001-mdadm-skip-test-11spare-migration.patch new file mode 100644 index 00000000..3a192cc9 --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-extended/mdadm/files/0001-mdadm-skip-test-11spare-migration.patch @@ -0,0 +1,43 @@ +From 1b83afa7c3121f819e72ea74883f8b6d61d6548e Mon Sep 17 00:00:00 2001 +From: Changqing Li +Date: Fri, 6 Sep 2019 10:59:02 +0800 +Subject: [PATCH] mdadm: skip test 11spare-migration + +11spare-migration is a test series to check mdadm Monitor migrates spares +according to rules in /etc/mdadm.conf defined by POLICY lines. + +[snip] +for scan in no yes; do + for platform in 1.2 imsm; do + try + done +done +[snip] + +"try" includes near 20 sub testcase, so there are nearly 80 subcases need to run, +so it will take long time than ptest-runner timeout limit, skip it as workaround. + +Upstream-Status: Inappropriate[oe-specific] + +Signed-off-by: Changqing Li +--- + test | 3 +++ + 1 file changed, 3 insertions(+) + +diff --git a/test b/test +index 711a3c7..880dd1d 100755 +--- a/test ++++ b/test +@@ -272,6 +272,9 @@ main() { + else + for script in $testdir/$prefix $testdir/$prefix*[^~] + do ++ if [ $script == "$testdir/11spare-migration" ];then ++ continue ++ fi + do_test $script + done + fi +-- +2.7.4 + diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/mdadm/files/include_sysmacros.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-extended/mdadm/files/include_sysmacros.patch new file mode 100644 index 00000000..8a1d8342 --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-extended/mdadm/files/include_sysmacros.patch @@ -0,0 +1,14 @@ +include sys/sysmacros.h for major/minor macro definitions + +Upstream-Status: Pending +Signed-off-by: Khem Raj +--- a/mdadm.h ++++ b/mdadm.h +@@ -35,6 +35,7 @@ extern __off64_t lseek64 __P ((int __fd, + + #include + #include ++#include + #include + #include + #include diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/mdadm/files/mdmonitor.service b/Contrib-Inspur/openbmc/poky/meta/recipes-extended/mdadm/files/mdmonitor.service deleted file mode 100644 index bd243b44..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/mdadm/files/mdmonitor.service +++ /dev/null @@ -1,19 +0,0 @@ -# This file is part of mdadm. -# -# mdadm is free software; you can redistribute it and/or modify it -# under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or -# (at your option) any later version. - -[Unit] -Description=Software RAID monitoring and management -ConditionPathExists=/etc/mdadm.conf - -[Service] -Type=forking -PIDFile=/var/run/mdadm/mdadm.pid -EnvironmentFile=-/etc/sysconfig/mdmonitor -ExecStart=/sbin/mdadm --monitor --scan -f --pid-file=/var/run/mdadm/mdadm.pid - -[Install] -WantedBy=multi-user.target diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/mdadm/files/run-ptest b/Contrib-Inspur/openbmc/poky/meta/recipes-extended/mdadm/files/run-ptest index 234f9737..e4a9c2b0 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/mdadm/files/run-ptest +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-extended/mdadm/files/run-ptest @@ -1,19 +1,4 @@ #!/bin/sh -LOG="$(pwd)/test.log" # make the test continue to execute even one fail -./test --keep-going 2>&1|tee ${LOG} -# translate the test report -# "tests/18imsm-r10_4d-takeover-r0_2d... succeeded" -> "PASS: tests/18imsm-r10_4d-takeover-r0_2d" -# "tests/19raid6repair... FAILED - see //log for details" -> "FAIL: tests/19raid6repair" -sed -i -e '/succeeded/ s/^/PASS: /' -e '/FAILED/ s/^/FAIL: /' ${LOG} -sed -i -e 's/... FAILED//g' -e 's/... succeeded//g' ${LOG} -passed=`grep PASS: ${LOG}|wc -l` -failed=`grep FAIL: ${LOG}|wc -l` -all=$((passed + failed)) - -( echo "=== Test Summary ===" - echo "TOTAL: ${all}" - echo "PASSED: ${passed}" - echo "FAILED: ${failed}" -) | tee -a /${LOG} +./test --keep-going diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/mdadm/mdadm_4.1.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-extended/mdadm/mdadm_4.1.bb index 494b81b5..64f519e7 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/mdadm/mdadm_4.1.bb +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-extended/mdadm/mdadm_4.1.bb @@ -18,9 +18,13 @@ SRC_URI = "${KERNELORG_MIRROR}/linux/utils/raid/mdadm/${BPN}-${PV}.tar.xz \ file://0001-Compute-abs-diff-in-a-standard-compliant-way.patch \ file://0001-fix-gcc-8-format-truncation-warning.patch \ file://debian-no-Werror.patch \ + file://0001-Revert-tests-wait-for-complete-rebuild-in-integrity-.patch \ file://mdadm.init \ - file://mdmonitor.service \ + file://0001-mdadm-add-option-y-for-use-syslog-to-recive-event-re.patch \ + file://include_sysmacros.patch \ + file://0001-mdadm-skip-test-11spare-migration.patch \ " + SRC_URI[md5sum] = "51bf3651bd73a06c413a2f964f299598" SRC_URI[sha256sum] = "ab7688842908d3583a704d491956f31324c3a5fc9f6a04653cb75d19f1934f4a" @@ -39,13 +43,12 @@ CFLAGS_append_powerpc64 = ' -D__SANE_USERSPACE_TYPES__' CFLAGS_append_mipsarchn64 = ' -D__SANE_USERSPACE_TYPES__' CFLAGS_append_mipsarchn32 = ' -D__SANE_USERSPACE_TYPES__' -EXTRA_OEMAKE = 'CHECK_RUN_DIR=0 CXFLAGS="${CFLAGS}"' +EXTRA_OEMAKE = 'CHECK_RUN_DIR=0 CXFLAGS="${CFLAGS}" SYSTEMD_DIR=${systemd_unitdir}/system \ + BINDIR="${base_sbindir}" UDEVDIR="${nonarch_base_libdir}/udev"' DEBUG_OPTIMIZATION_append = " -Wno-error" do_compile() { - # Point to right sbindir - sed -i -e "s;BINDIR = /sbin;BINDIR = $base_sbindir;" -e "s;UDEVDIR = /lib;UDEVDIR = $nonarch_base_libdir;" -e "s;SYSTEMD_DIR=/lib/systemd/system;SYSTEMD_DIR=${systemd_unitdir}/system;" ${S}/Makefile oe_runmake SYSROOT="${STAGING_DIR_TARGET}" } @@ -65,7 +68,6 @@ do_install_append() { oe_runmake install-systemd DESTDIR=${D} } - do_compile_ptest() { oe_runmake test } @@ -74,6 +76,14 @@ do_install_ptest() { cp -R --no-dereference --preserve=mode,links -v ${S}/tests ${D}${PTEST_PATH}/tests cp ${S}/test ${D}${PTEST_PATH} sed -e 's!sleep 0.*!sleep 1!g; s!/var/tmp!/!g' -i ${D}${PTEST_PATH}/test + sed -i -e '/echo -ne "$_script... "/d' \ + -e 's/echo "succeeded"/echo -e "PASS: $_script"/g' \ + -e '/save_log fail/N; /_fail=1/i\\t\t\techo -ne "FAIL: $_script"' \ + -e '/die "dmesg prints errors when testing $_basename!"/i\\t\t\t\techo -ne "FAIL: $_script" &&' \ + ${D}${PTEST_PATH}/test + + chmod +x ${D}${PTEST_PATH}/test + ln -s ${base_sbindir}/mdadm ${D}${PTEST_PATH}/mdadm for prg in test_stripe swap_super raid6check do diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/msmtp/msmtp_1.8.4.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-extended/msmtp/msmtp_1.8.4.bb deleted file mode 100644 index 888c1bbb..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/msmtp/msmtp_1.8.4.bb +++ /dev/null @@ -1,29 +0,0 @@ -SUMMARY = "msmtp is an SMTP client" -DESCRIPTION = "A sendmail replacement for use in MTAs like mutt" -HOMEPAGE = "https://marlam.de/msmtp/" -SECTION = "console/network" - -LICENSE = "GPLv3" -DEPENDS = "zlib gnutls" - -LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504" - -UPSTREAM_CHECK_URI = "https://marlam.de/msmtp/download/" - -SRC_URI = "https://marlam.de/${BPN}/releases/${BP}.tar.xz" -SRC_URI[md5sum] = "abfabb92f0461137f3c09cd16d98fc9b" -SRC_URI[sha256sum] = "e5dd7fe95bc8e2f5eea3e4894ec9628252f30bd700a7fd1a568b10efa91129f7" - -inherit gettext autotools update-alternatives pkgconfig - -EXTRA_OECONF += "--without-libsecret --without-libgsasl --without-libidn" - -ALTERNATIVE_${PN} = "sendmail" -ALTERNATIVE_TARGET[sendmail] = "${bindir}/msmtp" -ALTERNATIVE_LINK_NAME[sendmail] = "${sbindir}/sendmail" -ALTERNATIVE_PRIORITY = "100" - -pkg_postinst_${PN}_linuxstdbase () { - # /usr/lib/sendmial is required by LSB core test - [ ! -L $D/usr/lib/sendmail ] && ln -sf ${sbindir}/sendmail $D/usr/lib/ -} diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/msmtp/msmtp_1.8.6.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-extended/msmtp/msmtp_1.8.6.bb new file mode 100644 index 00000000..809144b7 --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-extended/msmtp/msmtp_1.8.6.bb @@ -0,0 +1,28 @@ +SUMMARY = "msmtp is an SMTP client" +DESCRIPTION = "A sendmail replacement for use in MTAs like mutt" +HOMEPAGE = "https://marlam.de/msmtp/" +SECTION = "console/network" + +LICENSE = "GPLv3" +DEPENDS = "zlib gnutls" + +LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504" + +UPSTREAM_CHECK_URI = "https://marlam.de/msmtp/download/" + +SRC_URI = "https://marlam.de/${BPN}/releases/${BP}.tar.xz" +SRC_URI[md5sum] = "adff4a9992e1b47aa5468b974550304e" +SRC_URI[sha256sum] = "6625f147430c65ba8527f52c4fe5d4d33552d3c0fb6d793ba7df819a3b3042e1" + +inherit gettext autotools update-alternatives pkgconfig + +EXTRA_OECONF += "--without-libsecret --without-libgsasl --without-libidn" + +ALTERNATIVE_${PN} = "sendmail" +# /usr/lib/sendmial is required by LSB core test +ALTERNATIVE_${PN}_linuxstdbase = "sendmail usr-lib-sendmail" +ALTERNATIVE_TARGET[sendmail] = "${bindir}/msmtp" +ALTERNATIVE_LINK_NAME[sendmail] = "${sbindir}/sendmail" +ALTERNATIVE_TARGET[usr-lib-sendmail] = "${bindir}/msmtp" +ALTERNATIVE_LINK_NAME[usr-lib-sendmail] = "/usr/lib/sendmail" +ALTERNATIVE_PRIORITY = "100" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/net-tools/net-tools_1.60-26.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-extended/net-tools/net-tools_1.60-26.bb index b565fd09..5a376e72 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/net-tools/net-tools_1.60-26.bb +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-extended/net-tools/net-tools_1.60-26.bb @@ -95,7 +95,7 @@ do_compile() { do_install() { # We don't need COPTS or LOPTS, but let's be consistent. - oe_runmake COPTS="$CFLAGS" LOPTS="$LDFLAGS" 'BASEDIR=${D}' install + oe_runmake COPTS="$CFLAGS" LOPTS="$LDFLAGS" BASEDIR=${D} INSTALLNLSDIR=${D}${datadir}/locale mandir=${mandir} install if [ "${base_bindir}" != "/bin" ]; then mkdir -p ${D}/${base_bindir} diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/newt/files/fix_SHAREDDIR.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-extended/newt/files/fix_SHAREDDIR.patch deleted file mode 100644 index b0a1e8c1..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/newt/files/fix_SHAREDDIR.patch +++ /dev/null @@ -1,37 +0,0 @@ -Upstream-Status: Pending - -Author: dexuan.cui@intel.com -Date: Fri Apr 15 16:17:39 CST 2011 - -The patch fixes a parallel-make issue: when generating $(SHAREDDIR)/%.o, we should -ensure the directory ${SHAREDDIR} exists. - -We need to push the patch to upstream. - -Signed-off-by: Dexuan Cui -Signed-off-by: Hongxu Jia ---- - Makefile.in | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/Makefile.in b/Makefile.in ---- a/Makefile.in -+++ b/Makefile.in -@@ -128,12 +128,12 @@ $(SHAREDDIR): - - sharedlib: $(LIBNEWTSH) - --$(LIBNEWTSH): $(SHAREDDIR) $(SHAREDOBJS) -+$(LIBNEWTSH): $(SHAREDOBJS) - $(CC) -shared -o $(LIBNEWTSH) $(SHLIBFLAGS) $(SHAREDOBJS) $(LDFLAGS) $(LIBS) - ln -fs $(LIBNEWTSONAME) libnewt.$(SOEXT) - ln -fs $(LIBNEWTSH) $(LIBNEWTSONAME) - --$(SHAREDDIR)/%.o : %.c -+$(SHAREDDIR)/%.o : %.c $(SHAREDDIR) - $(CC) $(SHCFLAGS) -c $(CFLAGS) $(CPPFLAGS) -o $@ $< - - install: $(LIBNEWT) install-sh whiptail --- -1.8.1.2 - diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/newt/files/pie-flags.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-extended/newt/files/pie-flags.patch index 8883e26a..92f5b250 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/newt/files/pie-flags.patch +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-extended/newt/files/pie-flags.patch @@ -1,7 +1,4 @@ -specify -fPIC after CFLAGS so it can override the CFLAGS containing -pie and -fpie -this makes sure the objects that go into shared objects are compiled with -fPIC -and not with -fpie. We can not use -fpie on objects which will go into .so files -Fixes errors like +specify -fPIC after CFLAGS so it can override the CFLAGS containing -pie and -fpie this makes sure the objects that go into shared objects are compiled with -fPIC and not with -fpie. We can not use -fpie on objects which will go into .so files Fixes errors like | /mnt/oe/build/tmp-glibc/sysroots/x86_64-linux/usr/libexec/x86_64-oe-linux/gcc/x86_64-oe-linux/5.3.0/ld: shared/newt.o: relocation R_X86_64_PC32 against undefined symbol `SLtt_Screen_Rows@@SLANG2' can not be used when making a shared object; recompile with -fPIC | /mnt/oe/build/tmp-glibc/sysroots/x86_64-linux/usr/libexec/x86_64-oe-linux/gcc/x86_64-oe-linux/5.3.0/ld: final link failed: Bad value @@ -10,10 +7,15 @@ Fixes errors like Signed-off-by: Khem Raj Upstream-Status: Pending -Index: newt-0.52.18/Makefile.in -=================================================================== ---- newt-0.52.18.orig/Makefile.in -+++ newt-0.52.18/Makefile.in + +--- + Makefile.in | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +diff --git a/Makefile.in b/Makefile.in +index be5f87b..88ee0b7 100644 +--- a/Makefile.in ++++ b/Makefile.in @@ -96,8 +96,8 @@ _snack.$(SOEXT): snack.c $(LIBNEWTSH) PIFLAGS=`$$pyconfig --includes`; \ PLDFLAGS=`$$pyconfig --ldflags`; \ @@ -25,12 +27,15 @@ Index: newt-0.52.18/Makefile.in echo $(CC) --shared $$PLDFLAGS $$PLFLAGS $(LDFLAGS) -o $$ver/_snack.$(SOEXT) $$ver/snack.o -L. -lnewt $(LIBS); \ $(CC) --shared $$PLDFLAGS $$PLFLAGS $(LDFLAGS) -o $$ver/_snack.$(SOEXT) $$ver/snack.o -L. -lnewt $(LIBS); \ done || : -@@ -135,7 +135,7 @@ $(LIBNEWTSH): $(SHAREDOBJS) - ln -fs $(LIBNEWTSH) $(LIBNEWTSONAME) +@@ -133,7 +133,7 @@ $(LIBNEWTSH): $(SHAREDOBJS) - $(SHAREDDIR)/%.o : %.c $(SHAREDDIR) + $(SHAREDDIR)/%.o : %.c + @mkdir -p $(SHAREDDIR) - $(CC) $(SHCFLAGS) -c $(CFLAGS) $(CPPFLAGS) -o $@ $< + $(CC) -c $(CFLAGS) $(CPPFLAGS) $(SHCFLAGS) -o $@ $< install: $(LIBNEWT) install-sh whiptail [ -d $(instroot)/$(bindir) ] || install -m 755 -d $(instroot)/$(bindir) +-- +2.7.4 + diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/newt/libnewt_0.52.20.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-extended/newt/libnewt_0.52.20.bb deleted file mode 100644 index dc07a180..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/newt/libnewt_0.52.20.bb +++ /dev/null @@ -1,59 +0,0 @@ -SUMMARY = "A library for text mode user interfaces" - -DESCRIPTION = "Newt is a programming library for color text mode, widget based user \ -interfaces. Newt can be used to add stacked windows, entry widgets, \ -checkboxes, radio buttons, labels, plain text fields, scrollbars, \ -etc., to text mode user interfaces. This package also contains the \ -shared library needed by programs built with newt, as well as a \ -/usr/bin/dialog replacement called whiptail. Newt is based on the \ -slang library." - -HOMEPAGE = "https://releases.pagure.org/newt/" -SECTION = "libs" - -LICENSE = "LGPLv2" -LIC_FILES_CHKSUM = "file://COPYING;md5=5f30f0716dfdd0d91eb439ebec522ec2" - -# slang needs to be >= 2.2 -DEPENDS = "slang popt python3" - -SRC_URI = "https://releases.pagure.org/newt/newt-${PV}.tar.gz \ - file://fix_SHAREDDIR.patch \ - file://cross_ar.patch \ - file://Makefile.in-Add-tinfo-library-to-the-linking-librari.patch \ - file://pie-flags.patch \ - file://0001-detect-gold-as-GNU-linker-too.patch \ -" - -SRC_URI[md5sum] = "70b288f821234593a8e7920e435b259b" -SRC_URI[sha256sum] = "8d66ba6beffc3f786d4ccfee9d2b43d93484680ef8db9397a4fb70b5adbb6dbc" - -S = "${WORKDIR}/newt-${PV}" - -inherit autotools-brokensep python3native python3-dir - -EXTRA_OECONF = "--without-tcl --with-python" - -EXTRA_OEMAKE += "PYTHONVERS=${PYTHON_DIR}" - -CLEANBROKEN = "1" - -export CPPFLAGS - -PACKAGES_prepend = "whiptail ${PN}-python " - -RDEPENDS_${PN}-python += "python3-core" -FILES_${PN}-python = "${PYTHON_SITEPACKAGES_DIR}/*" - -do_configure_prepend() { - sh autogen.sh -} - -do_compile_prepend() { - # Make sure the recompile is OK - rm -f ${B}/.depend -} - -FILES_whiptail = "${bindir}/whiptail" - -BBCLASSEXTEND = "native nativesdk" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/newt/libnewt_0.52.21.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-extended/newt/libnewt_0.52.21.bb new file mode 100644 index 00000000..09b61be6 --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-extended/newt/libnewt_0.52.21.bb @@ -0,0 +1,58 @@ +SUMMARY = "A library for text mode user interfaces" + +DESCRIPTION = "Newt is a programming library for color text mode, widget based user \ +interfaces. Newt can be used to add stacked windows, entry widgets, \ +checkboxes, radio buttons, labels, plain text fields, scrollbars, \ +etc., to text mode user interfaces. This package also contains the \ +shared library needed by programs built with newt, as well as a \ +/usr/bin/dialog replacement called whiptail. Newt is based on the \ +slang library." + +HOMEPAGE = "https://releases.pagure.org/newt/" +SECTION = "libs" + +LICENSE = "LGPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=5f30f0716dfdd0d91eb439ebec522ec2" + +# slang needs to be >= 2.2 +DEPENDS = "slang popt python3" + +SRC_URI = "https://releases.pagure.org/newt/newt-${PV}.tar.gz \ + file://cross_ar.patch \ + file://Makefile.in-Add-tinfo-library-to-the-linking-librari.patch \ + file://pie-flags.patch \ + file://0001-detect-gold-as-GNU-linker-too.patch \ +" + +SRC_URI[md5sum] = "a0a5fd6b53bb167a65e15996b249ebb5" +SRC_URI[sha256sum] = "265eb46b55d7eaeb887fca7a1d51fe115658882dfe148164b6c49fccac5abb31" + +S = "${WORKDIR}/newt-${PV}" + +inherit autotools-brokensep python3native python3-dir + +EXTRA_OECONF = "--without-tcl --with-python" + +EXTRA_OEMAKE += "PYTHONVERS=${PYTHON_DIR}" + +CLEANBROKEN = "1" + +export CPPFLAGS + +PACKAGES_prepend = "whiptail ${PN}-python " + +RDEPENDS_${PN}-python += "python3-core" +FILES_${PN}-python = "${PYTHON_SITEPACKAGES_DIR}/*" + +do_configure_prepend() { + sh autogen.sh +} + +do_compile_prepend() { + # Make sure the recompile is OK + rm -f ${B}/.depend +} + +FILES_whiptail = "${bindir}/whiptail" + +BBCLASSEXTEND = "native nativesdk" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/packagegroups/packagegroup-core-base-utils.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-extended/packagegroups/packagegroup-core-base-utils.bb index 611e0caf..75018379 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/packagegroups/packagegroup-core-base-utils.bb +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-extended/packagegroups/packagegroup-core-base-utils.bb @@ -5,10 +5,14 @@ SUMMARY = "Full-featured set of base utils" DESCRIPTION = "Package group bringing in packages needed to provide much of the base utils type functionality found in busybox" +PACKAGE_ARCH = "${MACHINE_ARCH}" + inherit packagegroup VIRTUAL-RUNTIME_vim ?= "vim-tiny" +PACKAGE_ARCH = "${MACHINE_ARCH}" + RDEPENDS_${PN} = "\ base-passwd \ bash \ diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/packagegroups/packagegroup-core-full-cmdline.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-extended/packagegroups/packagegroup-core-full-cmdline.bb index d38f545e..15a8e6de 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/packagegroups/packagegroup-core-full-cmdline.bb +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-extended/packagegroups/packagegroup-core-full-cmdline.bb @@ -81,6 +81,7 @@ RDEPENDS_packagegroup-core-full-cmdline-utils = "\ gawk \ gmp \ grep \ + less \ makedevs \ mc \ mc-fish \ @@ -111,9 +112,6 @@ RDEPENDS_packagegroup-core-full-cmdline-dev-utils = "\ patch \ " -VIRTUAL-RUNTIME_initscripts ?= "initscripts" -VIRTUAL-RUNTIME_init_manager ?= "sysvinit" -VIRTUAL-RUNTIME_login_manager ?= "busybox" VIRTUAL-RUNTIME_syslog ?= "sysklogd" RDEPENDS_packagegroup-core-full-cmdline-initscripts = "\ ${VIRTUAL-RUNTIME_initscripts} \ diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/packagegroups/packagegroup-core-lsb.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-extended/packagegroups/packagegroup-core-lsb.bb deleted file mode 100644 index e8dc4215..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/packagegroups/packagegroup-core-lsb.bb +++ /dev/null @@ -1,242 +0,0 @@ -# -# Copyright (C) 2010 Intel Corporation -# - -SUMMARY = "Linux Standard Base (LSB)" -DESCRIPTION = "Packages required to satisfy the Linux Standard Base (LSB) specification" -PR = "r10" - -inherit packagegroup distro_features_check - -# The libxt, libxtst and others require x11 in DISTRO_FEATURES -REQUIRED_DISTRO_FEATURES = "x11" - -# libglu needs virtual/libgl, which requires opengl in DISTRO_FEATURES -REQUIRED_DISTRO_FEATURES += "opengl" - -# libpam, pam-plugin-wheel requires pam in DISTRO_FEATURES -REQUIRED_DISTRO_FEATURES += "pam" - -# -# We will skip parsing this packagegeoup for non-glibc systems -# -python __anonymous () { - if d.getVar('TCLIBC') != "glibc": - raise bb.parse.SkipRecipe("incompatible with %s C library" % - d.getVar('TCLIBC')) -} - -PACKAGES = "\ - packagegroup-core-lsb \ - packagegroup-core-sys-extended \ - packagegroup-core-db \ - packagegroup-core-perl \ - packagegroup-core-python \ - packagegroup-core-tcl \ - packagegroup-core-lsb-misc \ - packagegroup-core-lsb-core \ - packagegroup-core-lsb-perl \ - packagegroup-core-lsb-python \ - packagegroup-core-lsb-desktop \ - packagegroup-core-lsb-runtime-add \ - " - - -RDEPENDS_packagegroup-core-lsb = "\ - packagegroup-core-sys-extended \ - packagegroup-core-db \ - packagegroup-core-perl \ - packagegroup-core-python \ - packagegroup-core-tcl \ - packagegroup-core-lsb-misc \ - packagegroup-core-lsb-core \ - packagegroup-core-lsb-perl \ - packagegroup-core-lsb-python \ - packagegroup-core-lsb-desktop \ - packagegroup-core-lsb-runtime-add \ - " - - -RDEPENDS_packagegroup-core-sys-extended = "\ - curl \ - dhcp-client \ - hdparm \ - lighttpd \ - libaio \ - lrzsz \ - lzo \ - mc \ - mc-fish \ - mc-helpers \ - mc-helpers-perl \ - mdadm \ - minicom \ - parted \ - quota \ - screen \ - setserial \ - sysstat \ - ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', '', 'udev-extraconf', d)} \ - unzip \ - watchdog \ - wget \ - which \ - xinetd \ - zip \ - " - -RDEPENDS_packagegroup-core-db = "\ - db \ - sqlite3 \ - " - -RDEPENDS_packagegroup-core-perl = "\ - gdbm \ - perl \ - zlib \ - " - - -RDEPENDS_packagegroup-core-python = "\ - expat \ - gdbm \ - gmp \ - ncurses \ - openssl \ - python \ - readline \ - zip \ - " - -RDEPENDS_packagegroup-core-tcl = "\ - tcl \ - " - -# Miscellaneous packages required by LSB (or LSB tests) -RDEPENDS_packagegroup-core-lsb-misc = "\ - chkconfig \ - gettext \ - gettext-runtime \ - groff \ - lsbinitscripts \ - lsbtest \ - lsof \ - strace \ - libusb1 \ - usbutils \ - rpm \ - " - -SUMMARY_packagegroup-core-lsb-core = "LSB Core" -DESCRIPTION_packagegroup-core-lsb-core = "Packages required to support commands/libraries \ - specified in the LSB Core specification" -RDEPENDS_packagegroup-core-lsb-core = "\ - at \ - bash \ - bc \ - binutils \ - binutils-symlinks \ - bzip2 \ - coreutils \ - cpio \ - cronie \ - cups \ - diffutils \ - ed \ - glibc-utils \ - elfutils \ - file \ - findutils \ - fontconfig-utils \ - foomatic-filters \ - gawk \ - ghostscript \ - grep \ - gzip \ - localedef \ - lsb \ - m4 \ - make \ - man \ - man-pages \ - msmtp \ - patch \ - procps \ - psmisc \ - sed \ - shadow \ - tar \ - time \ - util-linux \ - xdg-utils \ - \ - glibc \ - libgcc \ - libpam \ - libxml2 \ - ncurses \ - zlib \ - nspr \ - nss \ -" - -SUMMARY_packagegroup-core-lsb-perl = "LSB Runtime Languages (Perl)" -DESCRIPTION_packagegroup-core-lsb-perl = "Packages required to support libraries \ - specified in the LSB Runtime languages specification (Perl parts)" -RDEPENDS_packagegroup-core-lsb-perl = "\ - perl \ - perl-modules \ - perl-misc \ - perl-pod \ - perl-dev \ - perl-doc \ -" - -SUMMARY_packagegroup-core-lsb-python = "LSB Runtime Languages (Python)" -DESCRIPTION_packagegroup-core-lsb-python = "Packages required to support libraries \ - specified in the LSB Runtime languages specification (Python parts)" -RDEPENDS_packagegroup-core-lsb-python = "\ - python \ - python-modules \ - python-misc \ -" - -SUMMARY_packagegroup-core-lsb-desktop = "LSB Desktop" -DESCRIPTION_packagegroup-core-lsb-desktop = "Packages required to support libraries \ - specified in the LSB Desktop specification" -RDEPENDS_packagegroup-core-lsb-desktop = "\ - libxt \ - libxxf86vm \ - libdrm \ - libglu \ - libxi \ - libxtst \ - libx11-locale \ - xorg-minimal-fonts \ - gdk-pixbuf-loader-ico \ - gdk-pixbuf-loader-bmp \ - gdk-pixbuf-loader-ani \ - gdk-pixbuf-xlib \ - liberation-fonts \ - gtk+ \ - atk \ - alsa-lib \ -" - -RDEPENDS_packagegroup-core-lsb-runtime-add = "\ - ldd \ - pam-plugin-wheel \ - e2fsprogs-mke2fs \ - mkfontdir \ - liburi-perl \ - libxml-parser-perl \ - libxml-perl \ - libxml-sax-perl \ - glibc-localedatas \ - glibc-gconvs \ - glibc-charmaps \ - glibc-binaries \ - glibc-localedata-posix \ - glibc-extra-nss \ - glibc-pcprofile \ -" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/pam/libpam_1.3.1.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-extended/pam/libpam_1.3.1.bb index 6b73f0a2..11949338 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/pam/libpam_1.3.1.bb +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-extended/pam/libpam_1.3.1.bb @@ -150,7 +150,7 @@ do_install() { fi } -inherit distro_features_check +inherit features_check REQUIRED_DISTRO_FEATURES = "pam" BBCLASSEXTEND = "nativesdk native" @@ -163,3 +163,5 @@ CONFFILES_${PN}-runtime += "${sysconfdir}/pam.d/common-account" CONFFILES_${PN}-runtime += "${sysconfdir}/security/limits.conf" UPSTREAM_CHECK_URI = "https://github.com/linux-pam/linux-pam/releases" + +CVE_PRODUCT = "linux-pam" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/pbzip2/pbzip2_1.1.13.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-extended/pbzip2/pbzip2_1.1.13.bb index 7b1b0a11..1275cc00 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/pbzip2/pbzip2_1.1.13.bb +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-extended/pbzip2/pbzip2_1.1.13.bb @@ -5,7 +5,7 @@ machines. The output of this version is fully compatible with bzip2 v1.0.2 or \ newer (ie: anything compressed with pbzip2 can be decompressed with bzip2)." HOMEPAGE = "http://compression.ca/pbzip2/" SECTION = "console/utils" -LICENSE = "BSD" +LICENSE = "BSD-4-Clause" LIC_FILES_CHKSUM = "file://COPYING;md5=398b8832c6f840cfebd20ab2be6a3743" DEPENDS = "bzip2" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/procps/procps_3.3.15.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-extended/procps/procps_3.3.15.bb index 9756db0e..f240e54f 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/procps/procps_3.3.15.bb +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-extended/procps/procps_3.3.15.bb @@ -4,9 +4,9 @@ the /proc filesystem. The package includes the programs ps, top, vmstat, w, kill HOMEPAGE = "https://gitlab.com/procps-ng/procps" SECTION = "base" LICENSE = "GPLv2+ & LGPLv2+" -LIC_FILES_CHKSUM="file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \ - file://COPYING.LIB;md5=4cf66a4984120007c9881cc871cf49db \ - " +LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \ + file://COPYING.LIB;md5=4cf66a4984120007c9881cc871cf49db \ + " DEPENDS = "ncurses" @@ -64,3 +64,6 @@ python __anonymous() { d.setVarFlag('ALTERNATIVE_LINK_NAME', prog, '%s/%s' % (d.getVar('base_sbindir'), prog)) } +# 'ps' isn't suitable for use as a security tool so whitelist this CVE. +# https://bugzilla.redhat.com/show_bug.cgi?id=1575473#c3 +CVE_CHECK_WHITELIST += "CVE-2018-1121" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/psmisc/psmisc.inc b/Contrib-Inspur/openbmc/poky/meta/recipes-extended/psmisc/psmisc.inc index 82ef9477..594a10cf 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/psmisc/psmisc.inc +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-extended/psmisc/psmisc.inc @@ -7,7 +7,7 @@ command sends a specified signal (SIGTERM if nothing is specified) to \ processes identified by name. The fuser command identifies the PIDs \ of processes that are using specified files or filesystems." SECTION = "base" -DEPENDS = "ncurses virtual/libintl" +DEPENDS = "ncurses virtual/libintl gettext-native" LICENSE = "GPLv2" SRC_URI = "${SOURCEFORGE_MIRROR}/psmisc/psmisc-${PV}.tar.gz" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/psmisc/psmisc/0001-Makefile.am-create-src-directory-before-attempting-t.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-extended/psmisc/psmisc/0001-Makefile.am-create-src-directory-before-attempting-t.patch index 4d44495f..9451303d 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/psmisc/psmisc/0001-Makefile.am-create-src-directory-before-attempting-t.patch +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-extended/psmisc/psmisc/0001-Makefile.am-create-src-directory-before-attempting-t.patch @@ -1,4 +1,4 @@ -From 285877b7761d74736aca2687ed9bef2f78b82c33 Mon Sep 17 00:00:00 2001 +From dac375f640fecd45e6254a8d870ee37ec8f41670 Mon Sep 17 00:00:00 2001 From: Alexander Kanavin Date: Thu, 2 Nov 2017 16:21:22 +0200 Subject: [PATCH] Makefile.am: create src directory before attempting to write @@ -8,23 +8,21 @@ Otherwise out of tree builds will fail. Upstream-Status: Pending Signed-off-by: Alexander Kanavin + --- Makefile.am | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Makefile.am b/Makefile.am -index 9f61ab4..b4ced7f 100644 +index 441ae94..882969d 100644 --- a/Makefile.am +++ b/Makefile.am -@@ -79,7 +79,7 @@ EXTRA_DIST = src/signames.c README.md +@@ -86,7 +86,7 @@ EXTRA_DIST = src/signames.c README.md misc/git-version-gen CLEANFILES = src/signames.h - src/signames.h: src/signames.c Makefile + src/signames.h: src/signames.c Makefile src/$(am__dirstamp) - export LC_ALL=C ; \ + export LC_ALL=C ; mkdir -p src ; \ @CPP@ -dM $< |\ tr -s '\t ' ' ' | sort -n -k 3 | sed \ 's:#define SIG\([A-Z][A-Z]*[0-9]*\) \([0-9][0-9]*\).*$\:{\ \2,"\1" },:p;d' | \ --- -2.14.2 - diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/psmisc/psmisc_23.2.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-extended/psmisc/psmisc_23.2.bb deleted file mode 100644 index 38e0a440..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/psmisc/psmisc_23.2.bb +++ /dev/null @@ -1,10 +0,0 @@ -require psmisc.inc -LICENSE = "GPLv2" -LIC_FILES_CHKSUM = "file://COPYING;md5=0636e73ff0215e8d672dc4c32c317bb3" - -SRC_URI = "git://gitlab.com/psmisc/psmisc.git;protocol=https \ - file://0001-Use-UINTPTR_MAX-instead-of-__WORDSIZE.patch \ - file://0001-Makefile.am-create-src-directory-before-attempting-t.patch \ - " -SRCREV = "44eab9a3a63394eae6b79a7ef0a042f57e0c8a8f" -S = "${WORKDIR}/git" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/psmisc/psmisc_23.3.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-extended/psmisc/psmisc_23.3.bb new file mode 100644 index 00000000..b3c3c7e5 --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-extended/psmisc/psmisc_23.3.bb @@ -0,0 +1,10 @@ +require psmisc.inc +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=0636e73ff0215e8d672dc4c32c317bb3" + +SRC_URI = "git://gitlab.com/psmisc/psmisc.git;protocol=https \ + file://0001-Use-UINTPTR_MAX-instead-of-__WORDSIZE.patch \ + file://0001-Makefile.am-create-src-directory-before-attempting-t.patch \ + " +SRCREV = "78bde849041e6c914a2a517ebe1255b86dc98772" +S = "${WORKDIR}/git" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/rpcbind/rpcbind_1.2.5.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-extended/rpcbind/rpcbind_1.2.5.bb index 7c96aca3..19d778b6 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/rpcbind/rpcbind_1.2.5.bb +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-extended/rpcbind/rpcbind_1.2.5.bb @@ -6,7 +6,7 @@ HOMEPAGE = "http://sourceforge.net/projects/rpcbind/" BUGTRACKER = "http://sourceforge.net/tracker/?group_id=201237&atid=976751" DEPENDS = "libtirpc quota" -LICENSE = "BSD" +LICENSE = "BSD-3-Clause" LIC_FILES_CHKSUM = "file://COPYING;md5=b46486e4c4a416602693a711bb5bfa39 \ file://src/rpcinfo.c;beginline=1;endline=27;md5=f8a8cd2cb25ac5aa16767364fb0e3c24" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/screen/screen/0001-Remove-more-compatibility-stuff.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-extended/screen/screen/0001-Remove-more-compatibility-stuff.patch new file mode 100644 index 00000000..1413724d --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-extended/screen/screen/0001-Remove-more-compatibility-stuff.patch @@ -0,0 +1,31 @@ +This fixes +../screen-4.6.2/pty.c: In function 'OpenPTY': +../screen-4.6.2/pty.c:328:7: warning: implicit declaration of function 'openpty'; did you mean 'openat'? [-Wimplicit-function-declaration] + if (openpty(&f, &s, TtyName, NULL, NULL) != 0) + ^~~~~~~ + +Signed-off-by: Amadeusz Sławiński +Signed-off-by: Adrian Bunk +Upstream-Status: Backport + +--- + pty.c | 6 +----- + 1 file changed, 1 insertion(+), 5 deletions(-) + +diff --git a/pty.c b/pty.c +index 1c0660e..502338f 100644 +--- a/pty.c ++++ b/pty.c +@@ -47,11 +47,7 @@ + # include + #endif + +-#ifdef ISC +-# include +-# include +-# include +-#endif ++#include + + #ifdef sgi + # include diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/screen/screen/0001-configure.ac-fix-configure-failed-while-build-dir-ha.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-extended/screen/screen/0001-configure.ac-fix-configure-failed-while-build-dir-ha.patch deleted file mode 100644 index 1274b279..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/screen/screen/0001-configure.ac-fix-configure-failed-while-build-dir-ha.patch +++ /dev/null @@ -1,109 +0,0 @@ -From 4b258c5a9078f8df60684ab7536ce3a8ff207e08 Mon Sep 17 00:00:00 2001 -From: Hongxu Jia -Date: Thu, 12 Oct 2017 10:03:57 +0000 -Subject: [PATCH] configure.ac: fix configure failed while build dir contains "yes" - -While the name of build dir contains "yes", the AC_EGREP_CPP -test always return true. - -We rarely use "yes;" to name build dir, so s/yes/yes;/g -could fix the issue - -Upstream-Status: Accepted -https://git.savannah.gnu.org/cgit/screen.git/commit/?h=screen-v4&id=8c2b4061d16756ee2ed37f08db063b8215656943 - -Signed-off-by: Jian Kang ---- - configure.ac | 20 ++++++++++---------- - 1 file changed, 10 insertions(+), 10 deletions(-) - -diff --git a/configure.ac b/configure.ac -index 12996cd..4765af6 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -128,7 +128,7 @@ fi - - - AC_CHECKING(for Ultrix) --AC_EGREP_CPP(yes, -+AC_EGREP_CPP(yes;, - [#if defined(ultrix) || defined(__ultrix) - yes; - #endif -@@ -145,7 +145,7 @@ dnl ghazi@caip.rutgers.edu (Kaveh R. Ghazi): - dnl BBN butterfly is not POSIX, but a MACH BSD system. - dnl Do not define POSIX and TERMIO. - AC_CHECKING(for butterfly) --AC_EGREP_CPP(yes, -+AC_EGREP_CPP(yes;, - [#if defined(butterfly) - yes; - #endif -@@ -156,7 +156,7 @@ if test -n "$ULTRIX"; then - test -z "$GCC" && CC="$CC -YBSD" - fi - AC_CHECKING(for POSIX.1) --AC_EGREP_CPP(yes, -+AC_EGREP_CPP(yes;, - [#include - #include - main () { -@@ -173,14 +173,14 @@ AC_TRY_COMPILE( - #include ], [int x = SIGCHLD | FNDELAY;], , AC_DEFINE(SYSV)) - - AC_CHECKING(for sequent/ptx) --AC_EGREP_CPP(yes, -+AC_EGREP_CPP(yes;, - [#ifdef _SEQUENT_ - yes; - #endif - ], LIBS="$LIBS -lsocket -linet";seqptx=1) - - AC_CHECKING(SVR4) --AC_EGREP_CPP(yes, -+AC_EGREP_CPP(yes;, - [main () { - #if defined(SVR4) || defined(__SVR4) - yes; -@@ -200,9 +200,9 @@ fi - AC_CHECK_HEADERS([stropts.h string.h strings.h]) - - AC_CHECKING(for Solaris 2.x) --AC_EGREP_CPP(yes, -+AC_EGREP_CPP(yes;, - [#if defined(SVR4) && defined(sun) -- yes -+ yes; - #endif - ], LIBS="$LIBS -lsocket -lnsl -lkstat") - -@@ -697,7 +697,7 @@ else - pdir='/dev' - fi - dnl SCO uses ptyp%d --AC_EGREP_CPP(yes, -+AC_EGREP_CPP(yes;, - [#ifdef M_UNIX - yes; - #endif -@@ -880,7 +880,7 @@ fi - ) - - if test -z "$load" ; then --AC_EGREP_CPP(yes, -+AC_EGREP_CPP(yes;, - [#if defined(NeXT) || defined(apollo) || defined(linux) - yes; - #endif -@@ -1112,7 +1112,7 @@ AC_CHECKING(syslog in libbsd.a) - AC_TRY_LINK(, [closelog();], AC_NOTE(- found.), [LIBS="$oldlibs" - AC_NOTE(- bad news: syslog missing.) AC_DEFINE(NOSYSLOG)])]) - --AC_EGREP_CPP(yes, -+AC_EGREP_CPP(yes;, - [#ifdef M_UNIX - yes; - #endif --- -2.13.3 - diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/screen/screen/Avoid-mis-identifying-systems-as-SVR4.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-extended/screen/screen/Avoid-mis-identifying-systems-as-SVR4.patch deleted file mode 100644 index e184aa1f..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/screen/screen/Avoid-mis-identifying-systems-as-SVR4.patch +++ /dev/null @@ -1,57 +0,0 @@ -From 79afb676904653403145fda9e1a6a9d3ea1cb22a Mon Sep 17 00:00:00 2001 -From: Jussi Kukkonen -Date: Fri, 7 Aug 2015 11:10:32 +0300 -Subject: [PATCH 4/4] Avoid mis-identifying systems as SVR4 - -Linux can be misdetected as SVR4 because it has -libelf installed. This leads to linking with libelf, even though no -symbols from that library were actually used, and to a workaround for -a buggy getlogin() being enabled. - -It is not documented which exact SVR4 system had the bug that the -workaround was added for, so all I could do is make an educated guess -at the #defines its compiler would be likely to set. - -Modified from patch by Maarten ter Huurne. - -Upstream-Status: Submitted [http://savannah.gnu.org/bugs/?43223] - -Signed-off-by: Jussi Kukkonen ---- - configure.ac | 14 ++++++++++++-- - 1 file changed, 12 insertions(+), 2 deletions(-) - -diff --git a/configure.ac b/configure.ac -index dc928ae..65439ce 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -179,14 +179,24 @@ AC_EGREP_CPP(yes, - #endif - ], LIBS="$LIBS -lsocket -linet";seqptx=1) - -+AC_CHECKING(SVR4) -+AC_EGREP_CPP(yes, -+[main () { -+#if defined(SVR4) || defined(__SVR4) -+ yes; -+#endif -+], AC_NOTE(- you have a SVR4 system) AC_DEFINE(SVR4) svr4=1) -+if test -n "$svr4" ; then - oldlibs="$LIBS" - LIBS="$LIBS -lelf" - AC_CHECKING(SVR4) - AC_TRY_LINK([#include - ],, --[AC_CHECK_HEADER(dwarf.h, AC_DEFINE(SVR4) AC_DEFINE(BUGGYGETLOGIN), --[AC_CHECK_HEADER(elf.h, AC_DEFINE(SVR4) AC_DEFINE(BUGGYGETLOGIN))])] -+[AC_CHECK_HEADER(dwarf.h, AC_DEFINE(BUGGYGETLOGIN), -+[AC_CHECK_HEADER(elf.h, AC_DEFINE(BUGGYGETLOGIN))])] - ,LIBS="$oldlibs") -+fi -+ - AC_CHECK_HEADERS([stropts.h string.h strings.h]) - - AC_CHECKING(for Solaris 2.x) --- -2.1.4 - diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/screen/screen/Provide-cross-compile-alternatives-for-AC_TRY_RUN.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-extended/screen/screen/Provide-cross-compile-alternatives-for-AC_TRY_RUN.patch deleted file mode 100644 index 248bf087..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/screen/screen/Provide-cross-compile-alternatives-for-AC_TRY_RUN.patch +++ /dev/null @@ -1,137 +0,0 @@ -From cd0f7f10a3fffbc60fe55eb200474d13fe1da65b Mon Sep 17 00:00:00 2001 -From: Jussi Kukkonen -Date: Fri, 7 Aug 2015 10:34:29 +0300 -Subject: [PATCH 2/4] Provide cross compile alternatives for AC_TRY_RUN - -Modified from patch by Maarten ter Huurne. - -Upstream-Status: Submitted [http://savannah.gnu.org/bugs/?43223] - -Signed-off-by: Jussi Kukkonen ---- - configure.ac | 32 ++++++++++++++++++++------------ - 1 file changed, 20 insertions(+), 12 deletions(-) - -diff --git a/configure.ac b/configure.ac -index 27690a6..ce89f56 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -348,7 +348,8 @@ main() - exit(0); - } - ], AC_NOTE(- your fifos are usable) fifo=1, --AC_NOTE(- your fifos are not usable)) -+AC_NOTE(- your fifos are not usable), -+AC_NOTE(- skipping check because we are cross compiling; assuming fifos are usable) fifo=1) - rm -f /tmp/conftest* - - if test -n "$fifo"; then -@@ -396,7 +397,8 @@ main() - exit(0); - } - ], AC_NOTE(- your implementation is ok), --AC_NOTE(- you have a broken implementation) AC_DEFINE(BROKEN_PIPE) fifobr=1) -+AC_NOTE(- you have a broken implementation) AC_DEFINE(BROKEN_PIPE) fifobr=1, -+AC_NOTE(- skipping check because we are cross compiling; assuming fifo implementation is ok)) - rm -f /tmp/conftest* - fi - -@@ -458,7 +460,8 @@ main() - exit(0); - } - ], AC_NOTE(- your sockets are usable) sock=1, --AC_NOTE(- your sockets are not usable)) -+AC_NOTE(- your sockets are not usable), -+AC_NOTE(- skipping check because we are cross compiling; assuming sockets are usable) sock=1) - rm -f /tmp/conftest* - - if test -n "$sock"; then -@@ -497,7 +500,8 @@ main() - } - ],AC_NOTE(- you are normal), - AC_NOTE(- unix domain sockets are not kept in the filesystem) --AC_DEFINE(SOCK_NOT_IN_FS) socknofs=1) -+AC_DEFINE(SOCK_NOT_IN_FS) socknofs=1, -+AC_NOTE(- skipping check because we are cross compiling; assuming sockets are normal)) - rm -f /tmp/conftest* - fi - -@@ -624,7 +628,8 @@ main() - exit(0); - } - ],AC_NOTE(- select is ok), --AC_NOTE(- select can't count) AC_DEFINE(SELECT_BROKEN)) -+AC_NOTE(- select can't count) AC_DEFINE(SELECT_BROKEN), -+AC_NOTE(- skipping check because we are cross compiling; assuming select is ok)) - - dnl - dnl **** termcap or terminfo **** -@@ -666,7 +671,8 @@ main() - { - exit(strcmp(tgoto("%p1%d", 0, 1), "1") ? 0 : 1); - }], AC_NOTE(- you use the termcap database), --AC_NOTE(- you use the terminfo database) AC_DEFINE(TERMINFO)) -+AC_NOTE(- you use the terminfo database) AC_DEFINE(TERMINFO), -+AC_NOTE(- skipping check because we are cross compiling; assuming terminfo database is used) AC_DEFINE(TERMINFO)) - AC_CHECKING(ospeed) - AC_TRY_LINK(extern short ospeed;,ospeed=5;,,AC_DEFINE(NEED_OSPEED)) - -@@ -801,7 +807,8 @@ main() - else - AC_NOTE(- can't determine - assume ptys are world accessable) - fi -- ] -+ ], -+ AC_NOTE(- skipping check because we are cross compiling; assuming ptys are world accessable) - ) - rm -f conftest_grp - fi -@@ -885,7 +892,7 @@ AC_EGREP_CPP(yes, - #endif - ], load=1) - fi --if test -z "$load" ; then -+if test -z "$load" && test "$cross_compiling" = no ; then - AC_CHECKING(for kernelfile) - for core in /unix /vmunix /dynix /hp-ux /xelos /dev/ksyms /kernel/unix /kernel/genunix /unicos /mach /netbsd /386bsd /dgux /bsd /stand/vmunix; do - if test -f $core || test -c $core; then -@@ -1078,7 +1085,7 @@ main() - #endif - exit(0); - } --],,AC_DEFINE(SYSVSIGS)) -+],,AC_DEFINE(SYSVSIGS),:) - - fi - -@@ -1158,7 +1165,7 @@ main() { - if (strncmp(buf, "cdedef", 6)) - exit(1); - exit(0); /* libc version works properly. */ --}], AC_DEFINE(USEBCOPY)) -+}], AC_DEFINE(USEBCOPY),,:) - - AC_TRY_RUN([ - #define bcopy(s,d,l) memmove(d,s,l) -@@ -1173,7 +1180,8 @@ main() { - if (strncmp(buf, "cdedef", 6)) - exit(1); - exit(0); /* libc version works properly. */ --}], AC_DEFINE(USEMEMMOVE)) -+}], AC_DEFINE(USEMEMMOVE),, -+ AC_NOTE(- skipping check because we are cross compiling; use memmove) AC_DEFINE(USEMEMMOVE)) - - - AC_TRY_RUN([ -@@ -1189,7 +1197,7 @@ main() { - if (strncmp(buf, "cdedef", 6)) - exit(1); - exit(0); /* libc version works properly. */ --}], AC_DEFINE(USEMEMCPY)) -+}], AC_DEFINE(USEMEMCPY),,:) - - AC_SYS_LONG_FILE_NAMES - --- -2.1.4 - diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/screen/screen/Remove-redundant-compiler-sanity-checks.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-extended/screen/screen/Remove-redundant-compiler-sanity-checks.patch deleted file mode 100644 index cc62c12e..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/screen/screen/Remove-redundant-compiler-sanity-checks.patch +++ /dev/null @@ -1,65 +0,0 @@ -From 73b726c25f94c1b15514ed9249b927afdfbbfb94 Mon Sep 17 00:00:00 2001 -From: Jussi Kukkonen -Date: Fri, 7 Aug 2015 10:30:40 +0300 -Subject: [PATCH 1/4] Remove redundant compiler sanity checks - -AC_PROG_CC already performs sanity checks. And unlike the removed -checks, it does so in a way that supports cross compilation. - -Modified from patch by Maarten ter Huurne. - -Upstream-Status: Submitted [http://savannah.gnu.org/bugs/?43223] - -Signed-off-by: Jussi Kukkonen ---- - configure.ac | 27 --------------------------- - 1 file changed, 27 deletions(-) - -diff --git a/configure.ac b/configure.ac -index ffe2e37..27690a6 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -48,31 +48,6 @@ AC_PROG_GCC_TRADITIONAL - AC_ISC_POSIX - AC_USE_SYSTEM_EXTENSIONS - --AC_TRY_RUN(main(){exit(0);},,[ --if test $CC != cc ; then --AC_NOTE(Your $CC failed - restarting with CC=cc) --AC_NOTE() --CC=cc --export CC --exec $0 $configure_args --fi --]) -- --AC_TRY_RUN(main(){exit(0);},, --exec 5>&2 --eval $ac_link --AC_NOTE(CC=$CC; CFLAGS=$CFLAGS; LIBS=$LIBS;) --AC_NOTE($ac_compile) --AC_MSG_ERROR(Can't run the compiler - sorry)) -- --AC_TRY_RUN([ --main() --{ -- int __something_strange_(); -- __something_strange_(0); --} --],AC_MSG_ERROR(Your compiler does not set the exit status - sorry)) -- - AC_PROG_AWK - - AC_PROG_INSTALL -@@ -1300,8 +1275,6 @@ fi - dnl Ptx bug workaround -- insert -lc after -ltermcap - test -n "$seqptx" && LIBS="-ltermcap -lc -lsocket -linet -lnsl -lsec -lseq" - --AC_TRY_RUN(main(){exit(0);},,AC_MSG_ERROR(Can't run the compiler - internal error. Sorry.)) -- - ETCSCREENRC= - AC_MSG_CHECKING(for the global screenrc file) - AC_ARG_WITH(sys-screenrc, [ --with-sys-screenrc=path to the global screenrc file], [ ETCSCREENRC="${withval}" ]) --- -2.1.4 - diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/screen/screen/Skip-host-file-system-checks-when-cross-compiling.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-extended/screen/screen/Skip-host-file-system-checks-when-cross-compiling.patch deleted file mode 100644 index d7e55a44..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/screen/screen/Skip-host-file-system-checks-when-cross-compiling.patch +++ /dev/null @@ -1,135 +0,0 @@ -From d0b20e4cacc60ad62a2150ce07388cb5a25c2040 Mon Sep 17 00:00:00 2001 -From: Jussi Kukkonen -Date: Fri, 7 Aug 2015 11:09:01 +0300 -Subject: [PATCH 3/4] Skip host file system checks when cross-compiling - -Modified from patch by Maarten ter Huurne. - -Upstream-Status: Submitted [http://savannah.gnu.org/bugs/?43223] - -Signed-off-by: Jussi Kukkonen ---- - configure.ac | 23 +++++++++++++++++++---- - 1 file changed, 19 insertions(+), 4 deletions(-) - -diff --git a/configure.ac b/configure.ac -index ce89f56..dc928ae 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -85,7 +85,7 @@ AC_ARG_ENABLE(socket-dir, - dnl - dnl **** special unix variants **** - dnl --if test -n "$ISC"; then -+if test "$cross_compiling" = no && test -n "$ISC" ; then - AC_DEFINE(ISC) LIBS="$LIBS -linet" - fi - -@@ -96,10 +96,11 @@ dnl AC_DEFINE(OSF1) # this disables MIPS again.... - dnl fi - dnl fi - --if test -f /sysV68 ; then -+if test "$cross_compiling" = no && test -f /sysV68 ; then - AC_DEFINE(sysV68) - fi - -+if test "$cross_compiling" = no ; then - AC_CHECKING(for MIPS) - if test -f /lib/libmld.a || test -f /usr/lib/libmld.a || test -f /usr/lib/cmplrs/cc/libmld.a; then - oldlibs="$LIBS" -@@ -123,6 +124,7 @@ AC_DEFINE(USE_WAIT2) LIBS="$LIBS -lbsd" ; CC="$CC -I/usr/include/bsd" - )) - fi - fi -+fi - - - AC_CHECKING(for Ultrix) -@@ -132,7 +134,7 @@ AC_EGREP_CPP(yes, - #endif - ], ULTRIX=1) - --if test -f /usr/lib/libpyr.a ; then -+if test "$cross_compiling" = no && test -f /usr/lib/libpyr.a ; then - oldlibs="$LIBS" - LIBS="$LIBS -lpyr" - AC_CHECKING(Pyramid OSX) -@@ -679,17 +681,21 @@ AC_TRY_LINK(extern short ospeed;,ospeed=5;,,AC_DEFINE(NEED_OSPEED)) - dnl - dnl **** PTY specific things **** - dnl -+if test "$cross_compiling" = no ; then - AC_CHECKING(for /dev/ptc) - if test -r /dev/ptc; then - AC_DEFINE(HAVE_DEV_PTC) - fi -+fi - -+if test "$cross_compiling" = no ; then - AC_CHECKING(for SVR4 ptys) - sysvr4ptys= - if test -c /dev/ptmx ; then - AC_TRY_LINK([],[ptsname(0);grantpt(0);unlockpt(0);],[AC_DEFINE(HAVE_SVR4_PTYS) - sysvr4ptys=1]) - fi -+fi - - AC_CHECK_FUNCS(getpt) - -@@ -699,6 +705,7 @@ AC_CHECK_FUNCS(openpty,, - [AC_CHECK_LIB(util,openpty, [AC_DEFINE(HAVE_OPENPTY)] [LIBS="$LIBS -lutil"])]) - fi - -+if test "$cross_compiling" = no ; then - AC_CHECKING(for ptyranges) - if test -d /dev/ptym ; then - pdir='/dev/ptym' -@@ -722,6 +729,7 @@ p1=`echo $ptys | tr ' ' '\012' | sed -e 's/^.*\(.\)$/\1/g' | sort -u | tr -d '\ - AC_DEFINE_UNQUOTED(PTYRANGE0,"$p0") - AC_DEFINE_UNQUOTED(PTYRANGE1,"$p1") - fi -+fi - - dnl **** pty mode/group handling **** - dnl -@@ -869,14 +877,16 @@ fi - dnl - dnl **** loadav **** - dnl -+if test "$cross_compiling" = no ; then - AC_CHECKING(for libutil(s)) - test -f /usr/lib/libutils.a && LIBS="$LIBS -lutils" - test -f /usr/lib/libutil.a && LIBS="$LIBS -lutil" -+fi - - AC_CHECKING(getloadavg) - AC_TRY_LINK(,[getloadavg((double *)0, 0);], - AC_DEFINE(LOADAV_GETLOADAVG) load=1, --if test -f /usr/lib/libkvm.a ; then -+if test "$cross_compiling" = no && test -f /usr/lib/libkvm.a ; then - olibs="$LIBS" - LIBS="$LIBS -lkvm" - AC_CHECKING(getloadavg with -lkvm) -@@ -1094,13 +1104,18 @@ dnl **** libraries **** - dnl - - AC_CHECKING(for crypt and sec libraries) -+if test "$cross_compiling" = no ; then - test -f /lib/libcrypt_d.a || test -f /usr/lib/libcrypt_d.a && LIBS="$LIBS -lcrypt_d" -+fi - oldlibs="$LIBS" - LIBS="$LIBS -lcrypt" - AC_CHECKING(crypt) - AC_TRY_LINK(,,,LIBS="$oldlibs") -+if test "$cross_compiling" = no ; then - test -f /lib/libsec.a || test -f /usr/lib/libsec.a && LIBS="$LIBS -lsec" - test -f /lib/libshadow.a || test -f /usr/lib/libshadow.a && LIBS="$LIBS -lshadow" -+fi -+ - oldlibs="$LIBS" - LIBS="$LIBS -lsun" - AC_CHECKING(IRIX sun library) --- -2.1.4 - diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/screen/screen_4.6.2.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-extended/screen/screen_4.6.2.bb deleted file mode 100644 index 375dce94..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/screen/screen_4.6.2.bb +++ /dev/null @@ -1,52 +0,0 @@ -SUMMARY = "Multiplexing terminal manager" -DESCRIPTION = "Screen is a full-screen window manager \ -that multiplexes a physical terminal between several \ -processes, typically interactive shells." -HOMEPAGE = "http://www.gnu.org/software/screen/" -BUGTRACKER = "https://savannah.gnu.org/bugs/?func=additem&group=screen" - -SECTION = "console/utils" - -LICENSE = "GPLv3+" -LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504 \ - file://screen.h;endline=26;md5=3971142989289a8198a544220703c2bf" - -DEPENDS = "ncurses virtual/crypt \ - ${@bb.utils.contains('DISTRO_FEATURES', 'pam', 'libpam', '', d)}" -RDEPENDS_${PN} = "base-files" - -SRC_URI = "${GNU_MIRROR}/screen/screen-${PV}.tar.gz \ - ${@bb.utils.contains('DISTRO_FEATURES', 'pam', 'file://screen.pam', '', d)} \ - file://Remove-redundant-compiler-sanity-checks.patch \ - file://Provide-cross-compile-alternatives-for-AC_TRY_RUN.patch \ - file://Skip-host-file-system-checks-when-cross-compiling.patch \ - file://Avoid-mis-identifying-systems-as-SVR4.patch \ - file://0002-comm.h-now-depends-on-term.h.patch \ - file://0001-fix-for-multijob-build.patch \ - file://0001-configure.ac-fix-configure-failed-while-build-dir-ha.patch \ - " - -SRC_URI[md5sum] = "a0f529d3333b128dfaa324d978ba73a8" -SRC_URI[sha256sum] = "1b6922520e6a0ce5e28768d620b0f640a6631397f95ccb043b70b91bb503fa3a" - -inherit autotools texinfo - -PACKAGECONFIG ??= "" -PACKAGECONFIG[utempter] = "ac_cv_header_utempter_h=yes,ac_cv_header_utempter_h=no,libutempter," - -EXTRA_OECONF = "--with-pty-mode=0620 --with-pty-group=5 \ - ${@bb.utils.contains('DISTRO_FEATURES', 'pam', '--enable-pam', '--disable-pam', d)}" - -do_install_append () { - if [ "${@bb.utils.filter('DISTRO_FEATURES', 'pam', d)}" ]; then - install -D -m 644 ${WORKDIR}/screen.pam ${D}/${sysconfdir}/pam.d/screen - fi -} - -pkg_postinst_${PN} () { - grep -q "^${bindir}/screen$" $D${sysconfdir}/shells || echo ${bindir}/screen >> $D${sysconfdir}/shells -} - -pkg_postrm_${PN} () { - printf "$(grep -v "^${bindir}/screen$" $D${sysconfdir}/shells)\n" > $D${sysconfdir}/shells -} diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/screen/screen_4.7.0.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-extended/screen/screen_4.7.0.bb new file mode 100644 index 00000000..67aa5f1f --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-extended/screen/screen_4.7.0.bb @@ -0,0 +1,49 @@ +SUMMARY = "Multiplexing terminal manager" +DESCRIPTION = "Screen is a full-screen window manager \ +that multiplexes a physical terminal between several \ +processes, typically interactive shells." +HOMEPAGE = "http://www.gnu.org/software/screen/" +BUGTRACKER = "https://savannah.gnu.org/bugs/?func=additem&group=screen" + +SECTION = "console/utils" + +LICENSE = "GPLv3+" +LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504 \ + file://screen.h;endline=26;md5=3971142989289a8198a544220703c2bf" + +DEPENDS = "ncurses virtual/crypt \ + ${@bb.utils.contains('DISTRO_FEATURES', 'pam', 'libpam', '', d)}" +RDEPENDS_${PN} = "base-files" + +SRC_URI = "${GNU_MIRROR}/screen/screen-${PV}.tar.gz \ + ${@bb.utils.contains('DISTRO_FEATURES', 'pam', 'file://screen.pam', '', d)} \ + file://0002-comm.h-now-depends-on-term.h.patch \ + file://0001-fix-for-multijob-build.patch \ + file://0001-Remove-more-compatibility-stuff.patch \ + " + +SRC_URI[md5sum] = "b8971ebd68d046f2814d1040cb8e6641" +SRC_URI[sha256sum] = "da775328fa783bd2a787d722014dbd99c6093effc11f337827604c2efc5d20c1" + +inherit autotools texinfo + +PACKAGECONFIG ??= "" +PACKAGECONFIG[utempter] = "ac_cv_header_utempter_h=yes,ac_cv_header_utempter_h=no,libutempter," + +EXTRA_OECONF = "--with-pty-mode=0620 --with-pty-group=5 --with-sys-screenrc=${sysconfdir}/screenrc \ + ${@bb.utils.contains('DISTRO_FEATURES', 'pam', '--enable-pam', '--disable-pam', d)}" + +do_install_append () { + install -D -m 644 ${S}/etc/etcscreenrc ${D}/${sysconfdir}/screenrc + if [ "${@bb.utils.filter('DISTRO_FEATURES', 'pam', d)}" ]; then + install -D -m 644 ${WORKDIR}/screen.pam ${D}/${sysconfdir}/pam.d/screen + fi +} + +pkg_postinst_${PN} () { + grep -q "^${bindir}/screen$" $D${sysconfdir}/shells || echo ${bindir}/screen >> $D${sysconfdir}/shells +} + +pkg_postrm_${PN} () { + printf "$(grep -v "^${bindir}/screen$" $D${sysconfdir}/shells)\n" > $D${sysconfdir}/shells +} diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/shadow/files/0002-gettime-Use-secure_getenv-over-getenv.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-extended/shadow/files/0002-gettime-Use-secure_getenv-over-getenv.patch deleted file mode 100644 index 8c8234d0..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/shadow/files/0002-gettime-Use-secure_getenv-over-getenv.patch +++ /dev/null @@ -1,71 +0,0 @@ -From 3d921155e0a761f61c8f1ec37328724aee1e2eda Mon Sep 17 00:00:00 2001 -From: Chris Lamb -Date: Sun, 31 Mar 2019 15:59:45 +0100 -Subject: [PATCH 2/2] gettime: Use secure_getenv over getenv. - -Upstream-Status: Backport -Signed-off-by: Alex Kiernan ---- - README | 1 + - configure.ac | 3 +++ - lib/defines.h | 6 ++++++ - libmisc/gettime.c | 2 +- - 4 files changed, 11 insertions(+), 1 deletion(-) - -diff --git a/README b/README -index 952ac5787f06..26cfff1e8fa8 100644 ---- a/README -+++ b/README -@@ -51,6 +51,7 @@ Brian R. Gaeke - Calle Karlsson - Chip Rosenthal - Chris Evans -+Chris Lamb - Cristian Gafton - Dan Walsh - Darcy Boese -diff --git a/configure.ac b/configure.ac -index da236722766b..a738ad662cc3 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -110,6 +110,9 @@ AC_REPLACE_FUNCS(sgetgrent sgetpwent sgetspent) - AC_REPLACE_FUNCS(snprintf strcasecmp strdup strerror strstr) - - AC_CHECK_FUNC(setpgrp) -+AC_CHECK_FUNC(secure_getenv, [AC_DEFINE(HAS_SECURE_GETENV, -+ 1, -+ [Defined to 1 if you have the declaration of 'secure_getenv'])]) - - if test "$ac_cv_header_shadow_h" = "yes"; then - AC_CACHE_CHECK(for working shadow group support, -diff --git a/lib/defines.h b/lib/defines.h -index cded1417fd12..2fb1b56eca6b 100644 ---- a/lib/defines.h -+++ b/lib/defines.h -@@ -382,4 +382,10 @@ extern char *strerror (); - # endif - #endif - -+#ifdef HAVE_SECURE_GETENV -+# define shadow_getenv(name) secure_getenv(name) -+# else -+# define shadow_getenv(name) getenv(name) -+#endif -+ - #endif /* _DEFINES_H_ */ -diff --git a/libmisc/gettime.c b/libmisc/gettime.c -index 53eaf51670bb..0e25a4b75061 100644 ---- a/libmisc/gettime.c -+++ b/libmisc/gettime.c -@@ -52,7 +52,7 @@ - unsigned long long epoch; - - fallback = time (NULL); -- source_date_epoch = getenv ("SOURCE_DATE_EPOCH"); -+ source_date_epoch = shadow_getenv ("SOURCE_DATE_EPOCH"); - - if (!source_date_epoch) - return fallback; --- -2.17.1 - diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/shadow/shadow-sysroot_4.6.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-extended/shadow/shadow-sysroot_4.6.bb index ef014628..79fc8b80 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/shadow/shadow-sysroot_4.6.bb +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-extended/shadow/shadow-sysroot_4.6.bb @@ -1,6 +1,6 @@ SUMMARY = "Shadow utils requirements for useradd.bbclass" -HOMEPAGE = "http://pkg-shadow.alioth.debian.org" -BUGTRACKER = "https://alioth.debian.org/tracker/?group_id=30580" +HOMEPAGE = "http://github.com/shadow-maint/shadow" +BUGTRACKER = "http://github.com/shadow-maint/shadow/issues" SECTION = "base utils" LICENSE = "BSD | Artistic-1.0" LIC_FILES_CHKSUM = "file://login.defs_shadow-sysroot;md5=25e2f2de4dfc8f966ac5cdfce45cd7d5" @@ -27,6 +27,6 @@ do_install() { SYSROOT_DIRS += "${sysconfdir}" # don't create any packages -# otherwise: dbus-dev depends on shadow-sysroot-dev which depends on shadow-sysroot +# otherwise: dbus-dev depends on shadow-sysroot-dev which depends on shadow-sysroot # and this has another copy of /etc/login.defs already provided by shadow PACKAGES = "" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/shadow/shadow.inc b/Contrib-Inspur/openbmc/poky/meta/recipes-extended/shadow/shadow.inc index 7f82d208..770c239e 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/shadow/shadow.inc +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-extended/shadow/shadow.inc @@ -1,10 +1,10 @@ SUMMARY = "Tools to change and administer password and group data" -HOMEPAGE = "http://pkg-shadow.alioth.debian.org" -BUGTRACKER = "https://alioth.debian.org/tracker/?group_id=30580" +HOMEPAGE = "http://github.com/shadow-maint/shadow" +BUGTRACKER = "http://github.com/shadow-maint/shadow/issues" SECTION = "base/utils" LICENSE = "BSD | Artistic-1.0" LIC_FILES_CHKSUM = "file://COPYING;md5=ed80ff1c2b40843cf5768e5229cf16e5 \ - file://src/passwd.c;beginline=8;endline=30;md5=d83888ea14ae61951982d77125947661" + file://src/passwd.c;beginline=2;endline=30;md5=5720ff729a6ff39ecc9f64555d75f4af" DEPENDS = "virtual/crypt" @@ -12,15 +12,14 @@ UPSTREAM_CHECK_URI = "https://github.com/shadow-maint/shadow/releases" SRC_URI = "https://github.com/shadow-maint/shadow/releases/download/${PV}/${BP}.tar.gz \ file://shadow-4.1.3-dots-in-usernames.patch \ file://0001-Make-the-sp_lstchg-shadow-field-reproducible-re.-71.patch \ - file://0002-gettime-Use-secure_getenv-over-getenv.patch \ file://0001-configure.ac-fix-configure-error-with-dash.patch \ ${@bb.utils.contains('PACKAGECONFIG', 'pam', '${PAM_SRC_URI}', '', d)} \ + file://shadow-relaxed-usernames.patch \ " SRC_URI_append_class-target = " \ file://login_defs_pam.sed \ file://shadow-update-pam-conf.patch \ - file://shadow-relaxed-usernames.patch \ " SRC_URI_append_class-native = " \ @@ -60,7 +59,7 @@ NSCDOPT = "" NSCDOPT_class-native = "--without-nscd" NSCDOPT_class-nativesdk = "--without-nscd" NSCDOPT_libc-glibc = "--with-nscd" - + PAM_PLUGINS = "libpam-runtime \ pam-plugin-faildelay \ pam-plugin-securetty \ @@ -137,7 +136,7 @@ do_install_append() { sed -i -f ${WORKDIR}/login_defs_pam.sed ${D}${sysconfdir}/login.defs fi - install -d ${D}${sbindir} ${D}${base_sbindir} ${D}${base_bindir} + install -d ${D}${sbindir} ${D}${base_sbindir} ${D}${base_bindir} # Move binaries to the locations we want rm ${D}${sbindir}/vigr diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/stress-ng/stress-ng/0001-Do-not-preserve-ownership-when-installing-example-jo.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-extended/stress-ng/stress-ng/0001-Do-not-preserve-ownership-when-installing-example-jo.patch new file mode 100644 index 00000000..c860c717 --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-extended/stress-ng/stress-ng/0001-Do-not-preserve-ownership-when-installing-example-jo.patch @@ -0,0 +1,23 @@ +From bbc85a439672120fa1d36be79e959b28fe840919 Mon Sep 17 00:00:00 2001 +From: Alexander Kanavin +Date: Tue, 30 Jul 2019 18:38:03 +0200 +Subject: [PATCH] Do not preserve ownership when installing example jobs + +Upstream-Status: Pending +Signed-off-by: Alexander Kanavin +--- + Makefile | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/Makefile b/Makefile +index f36e57e..20488af 100644 +--- a/Makefile ++++ b/Makefile +@@ -452,6 +452,6 @@ install: stress-ng stress-ng.1.gz + mkdir -p ${DESTDIR}${MANDIR} + cp stress-ng.1.gz ${DESTDIR}${MANDIR} + mkdir -p ${DESTDIR}${JOBDIR} +- cp -rp example-jobs/*.job ${DESTDIR}${JOBDIR} ++ cp -r example-jobs/*.job ${DESTDIR}${JOBDIR} + mkdir -p ${DESTDIR}${BASHDIR} + cp bash-completion/stress-ng ${DESTDIR}${BASHDIR} diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/stress-ng/stress-ng_0.10.10.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-extended/stress-ng/stress-ng_0.10.10.bb new file mode 100644 index 00000000..47a98f3a --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-extended/stress-ng/stress-ng_0.10.10.bb @@ -0,0 +1,25 @@ +SUMMARY = "System load testing utility" +DESCRIPTION = "Deliberately simple workload generator for POSIX systems. It \ +imposes a configurable amount of CPU, memory, I/O, and disk stress on the system." +HOMEPAGE = "https://kernel.ubuntu.com/~cking/stress-ng/" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263" + +SRC_URI = "https://kernel.ubuntu.com/~cking/tarballs/${BPN}/${BP}.tar.xz \ + file://0001-Do-not-preserve-ownership-when-installing-example-jo.patch \ + " +SRC_URI[md5sum] = "ad4de38d6ff1ccf3640573e967dfb136" +SRC_URI[sha256sum] = "031de5ebc44b49992c11633f10aae96da05a85b326aebdffd88ba8c445d23cf4" + +DEPENDS = "coreutils-native" + +PROVIDES = "stress" +RPROVIDES_${PN} = "stress" +RREPLACES_${PN} = "stress" +RCONFLICTS_${PN} = "stress" + +inherit bash-completion + +do_install() { + oe_runmake DESTDIR=${D} install +} diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/stress/files/texinfo.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-extended/stress/files/texinfo.patch deleted file mode 100644 index f23a1f69..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/stress/files/texinfo.patch +++ /dev/null @@ -1,80 +0,0 @@ -Upstream-Status: Pending ---- a/doc/stress.texi -+++ b/doc/stress.texi -@@ -62,47 +62,47 @@ - - @table @samp - @item -? --@itemx --help -+@item --help - Show help information. - --@itemx --version -+@item --version - Show version information. - - @item -v --@itemx --verbose -+@item --verbose - Turn up verbosity. - - @item -q --@itemx --quiet -+@item --quiet - Turn down verbosity. - - @item -n --@itemx --dry-run -+@item --dry-run - Show what would have been done. - - @item -t @var{secs} --@itemx --timeout @var{secs} -+@item --timeout @var{secs} - Time out after @var{secs} seconds. - --@itemx --backoff @var{usecs} -+@item --backoff @var{usecs} - Wait for factor of @var{usecs} microseconds before starting work. - - @item -c @var{forks} --@itemx --cpu @var{forks} -+@item --cpu @var{forks} - Spawn @var{forks} processes each spinning on @samp{sqrt()}. - - @item -i @var{forks} --@itemx --io @var{forks} -+@item --io @var{forks} - Spawn @var{forks} processes each spinning on @samp{sync()}. - - @item -m @var{forks} --@itemx --vm @var{forks} -+@item --vm @var{forks} - Spawn @var{forks} processes each spinning on @samp{malloc()}. - --@itemx --vm-bytes @var{bytes} -+@item --vm-bytes @var{bytes} - Allocate @var{bytes} number of bytes. The default is 1. - --@itemx --vm-hang -+@item --vm-hang - Instruct each vm hog process to go to sleep after allocating memory. This - contrasts with their normal behavior, which is to free the memory and - reallocate @emph{ad infinitum}. This is useful for simulating low memory -@@ -114,13 +114,13 @@ - @end example - - @item -d @var{forks} --@itemx --hdd @var{forks} -+@item --hdd @var{forks} - Spawn @var{forks} processes each spinning on @samp{write()}. - --@itemx --hdd-bytes @var{bytes} -+@item --hdd-bytes @var{bytes} - Write @var{bytes} number of bytes. The default is 1GB. - --@itemx --hdd-noclean -+@item --hdd-noclean - Do not unlink file(s) to which random ASCII data is written. - - @end table diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/stress/stress_1.0.4.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-extended/stress/stress_1.0.4.bb deleted file mode 100644 index e9179d3e..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/stress/stress_1.0.4.bb +++ /dev/null @@ -1,15 +0,0 @@ -SUMMARY = "System load testing utility" -DESCRIPTION = "Deliberately simple workload generator for POSIX systems. It \ -imposes a configurable amount of CPU, memory, I/O, and disk stress on the system." -HOMEPAGE = "http://people.seas.harvard.edu/~apw/stress/" -LICENSE = "GPLv2" -LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263" - -SRC_URI = "http://people.seas.harvard.edu/~apw/${BPN}/${BP}.tar.gz \ - file://texinfo.patch \ - " - -SRC_URI[md5sum] = "890a4236dd1656792f3ef9a190cf99ef" -SRC_URI[sha256sum] = "057e4fc2a7706411e1014bf172e4f94b63a12f18412378fca8684ca92408825b" - -inherit autotools diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/sudo/sudo.inc b/Contrib-Inspur/openbmc/poky/meta/recipes-extended/sudo/sudo.inc index 90f2039b..15075bce 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/sudo/sudo.inc +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-extended/sudo/sudo.inc @@ -6,12 +6,12 @@ SECTION = "admin" LICENSE = "ISC & BSD & Zlib" LIC_FILES_CHKSUM = "file://doc/LICENSE;md5=6c76b73603ac7763ab0516ebfbe67b42 \ file://plugins/sudoers/redblack.c;beginline=1;endline=46;md5=4a162fc04b86b03f5632180fe6076cda \ - file://lib/util/reallocarray.c;beginline=3;endline=16;md5=85b0905b795d4d58bf2e00635649eec6 \ + file://lib/util/reallocarray.c;beginline=3;endline=15;md5=b47f1f85a12f05a0744cd8b1b6f41a0d \ file://lib/util/fnmatch.c;beginline=3;endline=27;md5=67f83ee9bd456557397082f8f1be0efd \ - file://lib/util/getcwd.c;beginline=5;endline=27;md5=449af4cc57fc7d46f42090608ba3e681 \ - file://lib/util/glob.c;beginline=6;endline=31;md5=5872733146b9eb0deb79e1f664815b85 \ - file://lib/util/snprintf.c;beginline=6;endline=34;md5=c82c1b3a5c32e08545c9ec5d71e41e50 \ - file://include/sudo_queue.h;beginline=5;endline=27;md5=449af4cc57fc7d46f42090608ba3e681 \ + file://lib/util/getcwd.c;beginline=2;endline=27;md5=09068a19b4f6b6f0a0958655bfe98b63 \ + file://lib/util/glob.c;beginline=2;endline=31;md5=1f2f771c35fb0658d567a7824007e56d \ + file://lib/util/snprintf.c;beginline=3;endline=33;md5=63e48e1b992bce749a19dd9b2256e9a0 \ + file://include/sudo_queue.h;beginline=2;endline=27;md5=082b138b72ba3e568a13a25c3bf254dc \ file://lib/util/inet_pton.c;beginline=3;endline=17;md5=3970ab0518ab79cbd0bafb697f10b33a \ file://lib/util/arc4random.c;beginline=3;endline=20;md5=15bdc89c1b003fa4d7353e6296ebfd68 \ file://lib/util/arc4random_uniform.c;beginline=3;endline=17;md5=31e630ac814d692fd0ab7a942659b46f \ diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/sudo/sudo/CVE-2019-14287-1.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-extended/sudo/sudo/CVE-2019-14287-1.patch new file mode 100644 index 00000000..2a11e3f7 --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-extended/sudo/sudo/CVE-2019-14287-1.patch @@ -0,0 +1,178 @@ +From f752ae5cee163253730ff7cdf293e34a91aa5520 Mon Sep 17 00:00:00 2001 +From: "Todd C. Miller" +Date: Thu, 10 Oct 2019 10:04:13 -0600 +Subject: [PATCH] Treat an ID of -1 as invalid since that means "no change". + Fixes CVE-2019-14287. Found by Joe Vennix from Apple Information Security. + +Upstream-Status: Backport [https://github.com/sudo-project/sudo/commit/f752ae5cee163253730ff7cdf293e34a91aa5520] +CVE: CVE-2019-14287 + +Signed-off-by: Changqing Li + +--- + lib/util/strtoid.c | 100 ++++++++++++++++++++++++++++------------------------- + 1 files changed, 53 insertions(+), 46 deletions(-) + +diff --git a/lib/util/strtoid.c b/lib/util/strtoid.c +index 2dfce75..6b3916b 100644 +--- a/lib/util/strtoid.c ++++ b/lib/util/strtoid.c +@@ -49,6 +49,27 @@ + #include "sudo_util.h" + + /* ++ * Make sure that the ID ends with a valid separator char. ++ */ ++static bool ++valid_separator(const char *p, const char *ep, const char *sep) ++{ ++ bool valid = false; ++ debug_decl(valid_separator, SUDO_DEBUG_UTIL) ++ ++ if (ep != p) { ++ /* check for valid separator (including '\0') */ ++ if (sep == NULL) ++ sep = ""; ++ do { ++ if (*ep == *sep) ++ valid = true; ++ } while (*sep++ != '\0'); ++ } ++ debug_return_bool(valid); ++} ++ ++/* + * Parse a uid/gid in string form. + * If sep is non-NULL, it contains valid separator characters (e.g. comma, space) + * If endp is non-NULL it is set to the next char after the ID. +@@ -62,36 +83,33 @@ sudo_strtoid_v1(const char *p, const char *sep, char **endp, const char **errstr + char *ep; + id_t ret = 0; + long long llval; +- bool valid = false; + debug_decl(sudo_strtoid, SUDO_DEBUG_UTIL) + + /* skip leading space so we can pick up the sign, if any */ + while (isspace((unsigned char)*p)) + p++; +- if (sep == NULL) +- sep = ""; ++ ++ /* While id_t may be 64-bit signed, uid_t and gid_t are 32-bit unsigned. */ + errno = 0; + llval = strtoll(p, &ep, 10); +- if (ep != p) { +- /* check for valid separator (including '\0') */ +- do { +- if (*ep == *sep) +- valid = true; +- } while (*sep++ != '\0'); ++ if ((errno == ERANGE && llval == LLONG_MAX) || llval > (id_t)UINT_MAX) { ++ errno = ERANGE; ++ if (errstr != NULL) ++ *errstr = N_("value too large"); ++ goto done; + } +- if (!valid) { ++ if ((errno == ERANGE && llval == LLONG_MIN) || llval < INT_MIN) { ++ errno = ERANGE; + if (errstr != NULL) +- *errstr = N_("invalid value"); +- errno = EINVAL; ++ *errstr = N_("value too small"); + goto done; + } +- if (errno == ERANGE) { +- if (errstr != NULL) { +- if (llval == LLONG_MAX) +- *errstr = N_("value too large"); +- else +- *errstr = N_("value too small"); +- } ++ ++ /* Disallow id -1, which means "no change". */ ++ if (!valid_separator(p, ep, sep) || llval == -1 || llval == (id_t)UINT_MAX) { ++ if (errstr != NULL) ++ *errstr = N_("invalid value"); ++ errno = EINVAL; + goto done; + } + ret = (id_t)llval; +@@ -108,30 +126,15 @@ sudo_strtoid_v1(const char *p, const char *sep, char **endp, const char **errstr + { + char *ep; + id_t ret = 0; +- bool valid = false; + debug_decl(sudo_strtoid, SUDO_DEBUG_UTIL) + + /* skip leading space so we can pick up the sign, if any */ + while (isspace((unsigned char)*p)) + p++; +- if (sep == NULL) +- sep = ""; ++ + errno = 0; + if (*p == '-') { + long lval = strtol(p, &ep, 10); +- if (ep != p) { +- /* check for valid separator (including '\0') */ +- do { +- if (*ep == *sep) +- valid = true; +- } while (*sep++ != '\0'); +- } +- if (!valid) { +- if (errstr != NULL) +- *errstr = N_("invalid value"); +- errno = EINVAL; +- goto done; +- } + if ((errno == ERANGE && lval == LONG_MAX) || lval > INT_MAX) { + errno = ERANGE; + if (errstr != NULL) +@@ -144,28 +147,31 @@ sudo_strtoid_v1(const char *p, const char *sep, char **endp, const char **errstr + *errstr = N_("value too small"); + goto done; + } +- ret = (id_t)lval; +- } else { +- unsigned long ulval = strtoul(p, &ep, 10); +- if (ep != p) { +- /* check for valid separator (including '\0') */ +- do { +- if (*ep == *sep) +- valid = true; +- } while (*sep++ != '\0'); +- } +- if (!valid) { ++ ++ /* Disallow id -1, which means "no change". */ ++ if (!valid_separator(p, ep, sep) || lval == -1) { + if (errstr != NULL) + *errstr = N_("invalid value"); + errno = EINVAL; + goto done; + } ++ ret = (id_t)lval; ++ } else { ++ unsigned long ulval = strtoul(p, &ep, 10); + if ((errno == ERANGE && ulval == ULONG_MAX) || ulval > UINT_MAX) { + errno = ERANGE; + if (errstr != NULL) + *errstr = N_("value too large"); + goto done; + } ++ ++ /* Disallow id -1, which means "no change". */ ++ if (!valid_separator(p, ep, sep) || ulval == UINT_MAX) { ++ if (errstr != NULL) ++ *errstr = N_("invalid value"); ++ errno = EINVAL; ++ goto done; ++ } + ret = (id_t)ulval; + } + if (errstr != NULL) +-- +2.7.4 + diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/sudo/sudo/CVE-2019-14287-2.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-extended/sudo/sudo/CVE-2019-14287-2.patch new file mode 100644 index 00000000..453a8b09 --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-extended/sudo/sudo/CVE-2019-14287-2.patch @@ -0,0 +1,112 @@ +From 396bc57feff3e360007634f62448b64e0626390c Mon Sep 17 00:00:00 2001 +From: "Todd C. Miller" +Date: Thu, 10 Oct 2019 10:04:13 -0600 +Subject: [PATCH] Add sudo_strtoid() tests for -1 and range errors. Also adjust + testsudoers/test5 which relied upon gid -1 parsing. + +Upstream-Status: Backport [https://github.com/sudo-project/sudo/commit/396bc57] +CVE: CVE-2019-14287 + +Signed-off-by: Changqing Li + +--- + lib/util/regress/atofoo/atofoo_test.c | 36 ++++++++++++++++------ + plugins/sudoers/regress/testsudoers/test5.out.ok | 2 +- + plugins/sudoers/regress/testsudoers/test5.sh | 2 +- + 3 files changed, 29 insertions(+), 11 deletions(-) + +diff --git a/lib/util/regress/atofoo/atofoo_test.c b/lib/util/regress/atofoo/atofoo_test.c +index 031a7ed..fb41c1a 100644 +--- a/lib/util/regress/atofoo/atofoo_test.c ++++ b/lib/util/regress/atofoo/atofoo_test.c +@@ -26,6 +26,7 @@ + #else + # include "compat/stdbool.h" + #endif ++#include + + #include "sudo_compat.h" + #include "sudo_util.h" +@@ -80,15 +81,20 @@ static struct strtoid_data { + id_t id; + const char *sep; + const char *ep; ++ int errnum; + } strtoid_data[] = { +- { "0,1", 0, ",", "," }, +- { "10", 10, NULL, NULL }, +- { "-2", -2, NULL, NULL }, ++ { "0,1", 0, ",", ",", 0 }, ++ { "10", 10, NULL, NULL, 0 }, ++ { "-1", 0, NULL, NULL, EINVAL }, ++ { "4294967295", 0, NULL, NULL, EINVAL }, ++ { "4294967296", 0, NULL, NULL, ERANGE }, ++ { "-2147483649", 0, NULL, NULL, ERANGE }, ++ { "-2", -2, NULL, NULL, 0 }, + #if SIZEOF_ID_T != SIZEOF_LONG_LONG +- { "-2", (id_t)4294967294U, NULL, NULL }, ++ { "-2", (id_t)4294967294U, NULL, NULL, 0 }, + #endif +- { "4294967294", (id_t)4294967294U, NULL, NULL }, +- { NULL, 0, NULL, NULL } ++ { "4294967294", (id_t)4294967294U, NULL, NULL, 0 }, ++ { NULL, 0, NULL, NULL, 0 } + }; + + static int +@@ -104,11 +110,23 @@ test_strtoid(int *ntests) + (*ntests)++; + errstr = "some error"; + value = sudo_strtoid(d->idstr, d->sep, &ep, &errstr); +- if (errstr != NULL) { +- if (d->id != (id_t)-1) { +- sudo_warnx_nodebug("FAIL: %s: %s", d->idstr, errstr); ++ if (d->errnum != 0) { ++ if (errstr == NULL) { ++ sudo_warnx_nodebug("FAIL: %s: missing errstr for errno %d", ++ d->idstr, d->errnum); ++ errors++; ++ } else if (value != 0) { ++ sudo_warnx_nodebug("FAIL: %s should return 0 on error", ++ d->idstr); ++ errors++; ++ } else if (errno != d->errnum) { ++ sudo_warnx_nodebug("FAIL: %s: errno mismatch, %d != %d", ++ d->idstr, errno, d->errnum); + errors++; + } ++ } else if (errstr != NULL) { ++ sudo_warnx_nodebug("FAIL: %s: %s", d->idstr, errstr); ++ errors++; + } else if (value != d->id) { + sudo_warnx_nodebug("FAIL: %s != %u", d->idstr, (unsigned int)d->id); + errors++; +diff --git a/plugins/sudoers/regress/testsudoers/test5.out.ok b/plugins/sudoers/regress/testsudoers/test5.out.ok +index 5e319c9..cecf700 100644 +--- a/plugins/sudoers/regress/testsudoers/test5.out.ok ++++ b/plugins/sudoers/regress/testsudoers/test5.out.ok +@@ -4,7 +4,7 @@ Parse error in sudoers near line 1. + Entries for user root: + + Command unmatched +-testsudoers: test5.inc should be owned by gid 4294967295 ++testsudoers: test5.inc should be owned by gid 4294967294 + Parse error in sudoers near line 1. + + Entries for user root: +diff --git a/plugins/sudoers/regress/testsudoers/test5.sh b/plugins/sudoers/regress/testsudoers/test5.sh +index 9e690a6..94d585c 100755 +--- a/plugins/sudoers/regress/testsudoers/test5.sh ++++ b/plugins/sudoers/regress/testsudoers/test5.sh +@@ -24,7 +24,7 @@ EOF + + # Test group writable + chmod 664 $TESTFILE +-./testsudoers -U $MYUID -G -1 root id < /dev/null || break + sleep 1 + done +} + case "$1" in start) log_begin_msg "Starting system log daemon..." @@ -113,17 +129,23 @@ case "$1" in start-stop-daemon --stop --quiet --signal 1 --pidfile $pidfile_syslogd --name syslogd log_end_msg $? log_begin_msg "Reloading kernel log daemon..." + pid=`cat $pidfile_klogd 2> /dev/null` start-stop-daemon --stop --quiet --retry 3 --exec $binpath_klogd --pidfile $pidfile_klogd + waitpid $pid start-stop-daemon --start --quiet --pidfile $pidfile_klogd --name klogd --startas $binpath_klogd -- $KLOGD log_end_msg $? ;; restart) log_begin_msg "Restarting system log daemon..." + pid=`cat $pidfile_syslogd 2> /dev/null` start-stop-daemon --stop --retry 5 --quiet --pidfile $pidfile_syslogd --name syslogd + waitpid $pid start-stop-daemon --start --quiet --pidfile $pidfile_syslogd --name syslogd --startas $binpath_syslogd -- $SYSLOGD log_end_msg $? log_begin_msg "Reloading kernel log daemon..." + pid=`cat $pidfile_klogd 2> /dev/null` start-stop-daemon --stop --quiet --retry 3 --exec $binpath_klogd --pidfile $pidfile_klogd + waitpid $pid start-stop-daemon --start --quiet --pidfile $pidfile_klogd --name klogd --startas $binpath_klogd -- $KLOGD log_end_msg $? ;; diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/sysstat/sysstat.inc b/Contrib-Inspur/openbmc/poky/meta/recipes-extended/sysstat/sysstat.inc index 4e297216..77cc6f2c 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/sysstat/sysstat.inc +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-extended/sysstat/sysstat.inc @@ -4,22 +4,22 @@ HOMEPAGE = "http://sebastien.godard.pagesperso-orange.fr/" LICENSE = "GPLv2+" SECTION = "console/utils" -SRC_URI = "http://pagesperso-orange.fr/sebastien.godard/sysstat-${PV}.tar.xz \ +SRC_URI = "http://pagesperso-orange.fr/sebastien.godard/${BP}.tar.xz \ file://99_sysstat \ file://sysstat.service \ " UPSTREAM_CHECK_URI = "http://sebastien.godard.pagesperso-orange.fr/download.html" -UPSTREAM_VERSION_UNKNOWN = "1" DEPENDS += "base-passwd" # autotools-brokensep as this package doesn't use automake inherit autotools-brokensep gettext systemd upstream-version-is-even -PACKAGECONFIG ??= "" +PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)}" PACKAGECONFIG[lm-sensors] = "--enable-sensors,--disable-sensors,lmsensors,lmsensors-libsensors" PACKAGECONFIG[cron] = "--enable-install-cron --enable-copy-only,--disable-install-cron --disable-copy-only" +PACKAGECONFIG[systemd] = "--with-systemdsystemunitdir=${systemd_system_unitdir}" EXTRA_OECONF += "--disable-stripping" @@ -28,7 +28,7 @@ SYSTEMD_SERVICE_${PN} = "sysstat.service" SYSTEMD_AUTO_ENABLE = "enable" do_configure_prepend() { - export sa_lib_dir=${libdir}/sa + export sa_lib_dir=${libexecdir}/sa } do_install() { @@ -44,11 +44,15 @@ do_install() { install -d ${D}${sysconfdir}/tmpfiles.d echo "d ${localstatedir}/log/sa - - - -" \ > ${D}${sysconfdir}/tmpfiles.d/sysstat.conf - fi - install -d ${D}${systemd_unitdir}/system - install -m 0644 ${WORKDIR}/sysstat.service ${D}${systemd_unitdir}/system - sed -i -e 's#@LIBDIR@#${libdir}#g' ${D}${systemd_unitdir}/system/sysstat.service + # Unless both cron and systemd are enabled, install our own + # systemd unit file. Otherwise the package will install one. + if ${@bb.utils.contains('PACKAGECONFIG', 'cron systemd', 'false', 'true', d)}; then + install -d ${D}${systemd_unitdir}/system + install -m 0644 ${WORKDIR}/sysstat.service ${D}${systemd_unitdir}/system + sed -i -e 's#@LIBEXECDIR@#${libexecdir}#g' ${D}${systemd_unitdir}/system/sysstat.service + fi + fi } pkg_postinst_${PN} () { @@ -59,6 +63,6 @@ pkg_postinst_${PN} () { fi } -FILES_${PN} += "${libdir}/sa ${systemd_system_unitdir}" +FILES_${PN} += "${systemd_system_unitdir}" TARGET_CC_ARCH += "${LDFLAGS}" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/sysstat/sysstat/0001-Fix-232-Memory-corruption-bug-due-to-Integer-Overflo.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-extended/sysstat/sysstat/0001-Fix-232-Memory-corruption-bug-due-to-Integer-Overflo.patch new file mode 100644 index 00000000..46b11180 --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-extended/sysstat/sysstat/0001-Fix-232-Memory-corruption-bug-due-to-Integer-Overflo.patch @@ -0,0 +1,46 @@ +From 603ae4ed8cd65abf0776ef7f68354a5c24a3411c Mon Sep 17 00:00:00 2001 +From: Sebastien GODARD +Date: Tue, 15 Oct 2019 14:39:33 +0800 +Subject: [PATCH] Fix #232: Memory corruption bug due to Integer Overflow in + remap_struct() + +Try to avoid integer overflow when reading a corrupted binary datafile +with sadf. + +Upstream-Status: Backport [https://github.com/sysstat/sysstat/commit/83fad9c895d1ac13f76af5883b7451b3302beef5] +CVE: CVE-2019-16167 + +Signed-off-by: Sebastien GODARD +Signed-off-by: Wenlin Kang +--- + sa_common.c | 7 +++++-- + 1 file changed, 5 insertions(+), 2 deletions(-) + +diff --git a/sa_common.c b/sa_common.c +index 395c11c..cfa9007 100644 +--- a/sa_common.c ++++ b/sa_common.c +@@ -1336,7 +1336,8 @@ int remap_struct(unsigned int gtypes_nr[], unsigned int ftypes_nr[], + /* Remap [unsigned] int fields */ + d = gtypes_nr[1] - ftypes_nr[1]; + if (d) { +- if (ftypes_nr[1] * UL_ALIGNMENT_WIDTH < ftypes_nr[1]) ++ if (gtypes_nr[0] * ULL_ALIGNMENT_WIDTH + ++ ftypes_nr[1] * UL_ALIGNMENT_WIDTH < ftypes_nr[1]) + /* Overflow */ + return -1; + +@@ -1365,7 +1366,9 @@ int remap_struct(unsigned int gtypes_nr[], unsigned int ftypes_nr[], + /* Remap possible fields (like strings of chars) following int fields */ + d = gtypes_nr[2] - ftypes_nr[2]; + if (d) { +- if (ftypes_nr[2] * U_ALIGNMENT_WIDTH < ftypes_nr[2]) ++ if (gtypes_nr[0] * ULL_ALIGNMENT_WIDTH + ++ gtypes_nr[1] * UL_ALIGNMENT_WIDTH + ++ ftypes_nr[2] * U_ALIGNMENT_WIDTH < ftypes_nr[2]) + /* Overflow */ + return -1; + +-- +1.9.1 + diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/sysstat/sysstat/sysstat.service b/Contrib-Inspur/openbmc/poky/meta/recipes-extended/sysstat/sysstat/sysstat.service index aff07109..ca46befb 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/sysstat/sysstat/sysstat.service +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-extended/sysstat/sysstat/sysstat.service @@ -5,7 +5,7 @@ Description=Resets System Activity Logs Type=oneshot RemainAfterExit=yes User=root -ExecStart=@LIBDIR@/sa/sa1 --boot +ExecStart=@LIBEXECDIR@/sa/sa1 --boot [Install] WantedBy=multi-user.target diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/sysstat/sysstat_12.1.3.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-extended/sysstat/sysstat_12.1.3.bb deleted file mode 100644 index 5daf3f45..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/sysstat/sysstat_12.1.3.bb +++ /dev/null @@ -1,8 +0,0 @@ -require sysstat.inc - -LIC_FILES_CHKSUM = "file://COPYING;md5=a23a74b3f4caf9616230789d94217acb" - -SRC_URI += "file://0001-Include-needed-headers-explicitly.patch" - -SRC_URI[md5sum] = "0f9b73f60aba6fd49de346bc384902c3" -SRC_URI[sha256sum] = "55498bf82755ba9fed3e7df61fd26f8f50dd3e7b3b229c731029a4c8ab51a1aa" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/sysstat/sysstat_12.1.6.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-extended/sysstat/sysstat_12.1.6.bb new file mode 100644 index 00000000..362888d5 --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-extended/sysstat/sysstat_12.1.6.bb @@ -0,0 +1,10 @@ +require sysstat.inc + +LIC_FILES_CHKSUM = "file://COPYING;md5=a23a74b3f4caf9616230789d94217acb" + +SRC_URI += "file://0001-Include-needed-headers-explicitly.patch \ + file://0001-Fix-232-Memory-corruption-bug-due-to-Integer-Overflo.patch \ +" + +SRC_URI[md5sum] = "d8e3bbb9c873dd370f6d33664e326570" +SRC_URI[sha256sum] = "f752f3c406153a6fc446496f1102872505ace3f0931d975c1d664c81ec09f129" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/tcp-wrappers/tcp-wrappers_7.6.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-extended/tcp-wrappers/tcp-wrappers_7.6.bb index 6d232a50..bd0c84c2 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/tcp-wrappers/tcp-wrappers_7.6.bb +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-extended/tcp-wrappers/tcp-wrappers_7.6.bb @@ -4,7 +4,7 @@ DESCRIPTION = "Tools for monitoring and filtering incoming requests for tcp \ services." SECTION = "console/network" -LICENSE = "BSD" +LICENSE = "BSD-1-Clause" LIC_FILES_CHKSUM = "file://DISCLAIMER;md5=071bd69cb78b18888ea5e3da5c3127fa" PR ="r10" @@ -18,7 +18,7 @@ FILES_libwrap-staticdev = "${libdir}/lib*.a" FILES_${PN} = "${sbindir}" FILES_${PN}-doc = "${mandir}/man8" -SRC_URI = "ftp://ftp.porcupine.org/pub/security/tcp_wrappers_${PV}.tar.gz \ +SRC_URI = "http://ftp.porcupine.org/pub/security/tcp_wrappers_${PV}.tar.gz \ file://00_man_quoting.diff \ file://01_man_portability.patch \ file://05_wildcard_matching.patch \ diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/texinfo/texinfo_6.5.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-extended/texinfo/texinfo_6.5.bb index f966457f..50eae77a 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/texinfo/texinfo_6.5.bb +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-extended/texinfo/texinfo_6.5.bb @@ -42,7 +42,9 @@ SRC_URI[sha256sum] = "d34272e4042c46186ddcd66bd5d980c0ca14ff734444686ccf8131f6ec tex_texinfo = "texmf/tex/texinfo" -inherit gettext autotools +inherit gettext autotools multilib_script + +MULTILIB_SCRIPTS = "${PN}:${bindir}/texi2any" EXTRA_AUTORECONF += "-I ${S}/gnulib/m4" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/timezone/timezone.inc b/Contrib-Inspur/openbmc/poky/meta/recipes-extended/timezone/timezone.inc index 1ade0075..91a5cb33 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/timezone/timezone.inc +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-extended/timezone/timezone.inc @@ -1,10 +1,12 @@ SUMMARY = "Timezone data" +DESCRIPTION = "The Time Zone Database contains code and data that represent \ +the history of local time for many representative locations around the globe." HOMEPAGE = "http://www.iana.org/time-zones" SECTION = "base" LICENSE = "PD & BSD & BSD-3-Clause" LIC_FILES_CHKSUM = "file://LICENSE;md5=c679c9d6b02bc2757b3eaf8f53c43fba" -PV = "2019a" +PV = "2019c" SRC_URI =" http://www.iana.org/time-zones/repository/releases/tzcode${PV}.tar.gz;name=tzcode \ http://www.iana.org/time-zones/repository/releases/tzdata${PV}.tar.gz;name=tzdata \ @@ -12,7 +14,7 @@ SRC_URI =" http://www.iana.org/time-zones/repository/releases/tzcode${PV}.tar.gz UPSTREAM_CHECK_URI = "http://www.iana.org/time-zones" -SRC_URI[tzcode.md5sum] = "27585a20bc5401324f42c8deb6e4677f" -SRC_URI[tzcode.sha256sum] = "8739f162bc30cdfb482435697f969253abea49595541a0afd5f443fbae433ff5" -SRC_URI[tzdata.md5sum] = "288f7b1e43018c633da108f13b27cf91" -SRC_URI[tzdata.sha256sum] = "90366ddf4aa03e37a16cd49255af77f801822310b213f195e2206ead48c59772" +SRC_URI[tzcode.md5sum] = "195a17454c5db05cab96595380650391" +SRC_URI[tzcode.sha256sum] = "f6ebd3668e02d5ed223d3b7b1947561bf2d2da2f4bd1db61efefd9e06c167ed4" +SRC_URI[tzdata.md5sum] = "f6987e6dfdb2eb83a1b5076a50b80894" +SRC_URI[tzdata.sha256sum] = "79c7806dab09072308da0e3d22c37d3b245015a591891ea147d3b133b60ffc7c" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/timezone/tzdata.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-extended/timezone/tzdata.bb index 82fe369b..1e2d9bd1 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/timezone/tzdata.bb +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-extended/timezone/tzdata.bb @@ -147,6 +147,8 @@ FILES_tzdata-misc += "${datadir}/zoneinfo/Cuba \ RPROVIDES_tzdata-misc = "tzdata-misc" FILES_tzdata-core += " \ + ${sysconfdir}/localtime \ + ${sysconfdir}/timezone \ ${datadir}/zoneinfo/Pacific/Honolulu \ ${datadir}/zoneinfo/America/Anchorage \ ${datadir}/zoneinfo/America/Los_Angeles \ @@ -202,8 +204,7 @@ FILES_tzdata-core += " \ ${datadir}/zoneinfo/iso3166.tab \ ${datadir}/zoneinfo/Etc/*" -CONFFILES_tzdata-core += "${@ "${sysconfdir}/timezone" if bb.utils.to_boolean(d.getVar('INSTALL_TIMEZONE_FILE')) else "" }" -CONFFILES_tzdata-core += "${sysconfdir}/localtime" +CONFFILES_tzdata-core = "${sysconfdir}/localtime ${sysconfdir}/timezone" ALLOW_EMPTY_${PN} = "1" RDEPENDS_${PN} = "${TZ_PACKAGES}" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/unzip/unzip/CVE-2019-13232_p1.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-extended/unzip/unzip/CVE-2019-13232_p1.patch new file mode 100644 index 00000000..d485a1bd --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-extended/unzip/unzip/CVE-2019-13232_p1.patch @@ -0,0 +1,33 @@ +From 080d52c3c9416c731f637f9c6e003961ef43f079 Mon Sep 17 00:00:00 2001 +From: Mark Adler +Date: Mon, 27 May 2019 08:20:32 -0700 +Subject: [PATCH 1/3] Fix bug in undefer_input() that misplaced the input + state. + +CVE: CVE-2019-13232 +Upstream-Status: Backport +[https://github.com/madler/unzip/commit/41beb477c5744bc396fa1162ee0c14218ec12213] + +Signed-off-by: Dan Tran +--- + fileio.c | 4 +++- + 1 file changed, 3 insertions(+), 1 deletion(-) + +diff --git a/fileio.c b/fileio.c +index 7605a29..14460f3 100644 +--- a/fileio.c ++++ b/fileio.c +@@ -532,8 +532,10 @@ void undefer_input(__G) + * This condition was checked when G.incnt_leftover was set > 0 in + * defer_leftover_input(), and it is NOT allowed to touch G.csize + * before calling undefer_input() when (G.incnt_leftover > 0) +- * (single exception: see read_byte()'s "G.csize <= 0" handling) !! ++ * (single exception: see readbyte()'s "G.csize <= 0" handling) !! + */ ++ if (G.csize < 0L) ++ G.csize = 0L; + G.incnt = G.incnt_leftover + (int)G.csize; + G.inptr = G.inptr_leftover - (int)G.csize; + G.incnt_leftover = 0; +-- +2.22.0.vfs.1.1.57.gbaf16c8 diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/unzip/unzip/CVE-2019-13232_p2.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-extended/unzip/unzip/CVE-2019-13232_p2.patch new file mode 100644 index 00000000..41037a8e --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-extended/unzip/unzip/CVE-2019-13232_p2.patch @@ -0,0 +1,356 @@ +From 1aae47fa8935654a84403768f32c03ecbb1be470 Mon Sep 17 00:00:00 2001 +From: Mark Adler +Date: Tue, 11 Jun 2019 22:01:18 -0700 +Subject: [PATCH 2/3] Detect and reject a zip bomb using overlapped entries. + +This detects an invalid zip file that has at least one entry that +overlaps with another entry or with the central directory to the +end of the file. A Fifield zip bomb uses overlapped local entries +to vastly increase the potential inflation ratio. Such an invalid +zip file is rejected. + +See https://www.bamsoftware.com/hacks/zipbomb/ for David Fifield's +analysis, construction, and examples of such zip bombs. + +The detection maintains a list of covered spans of the zip files +so far, where the central directory to the end of the file and any +bytes preceding the first entry at zip file offset zero are +considered covered initially. Then as each entry is decompressed +or tested, it is considered covered. When a new entry is about to +be processed, its initial offset is checked to see if it is +contained by a covered span. If so, the zip file is rejected as +invalid. + +This commit depends on a preceding commit: "Fix bug in +undefer_input() that misplaced the input state." + +CVE: CVE-2019-13232 +Upstream-Status: Backport +[https://github.com/madler/unzip/commit/47b3ceae397d21bf822bc2ac73052a4b1daf8e1c] + +Signed-off-by: Dan Tran +--- + extract.c | 190 +++++++++++++++++++++++++++++++++++++++++++++++++++++- + globals.c | 1 + + globals.h | 3 + + process.c | 10 +++ + unzip.h | 1 + + 5 files changed, 204 insertions(+), 1 deletion(-) + +diff --git a/extract.c b/extract.c +index 24db2a8..2bb72ba 100644 +--- a/extract.c ++++ b/extract.c +@@ -321,6 +321,125 @@ static ZCONST char Far UnsupportedExtraField[] = + "\nerror: unsupported extra-field compression type (%u)--skipping\n"; + static ZCONST char Far BadExtraFieldCRC[] = + "error [%s]: bad extra-field CRC %08lx (should be %08lx)\n"; ++static ZCONST char Far NotEnoughMemCover[] = ++ "error: not enough memory for bomb detection\n"; ++static ZCONST char Far OverlappedComponents[] = ++ "error: invalid zip file with overlapped components (possible zip bomb)\n"; ++ ++ ++ ++ ++ ++/* A growable list of spans. */ ++typedef zoff_t bound_t; ++typedef struct { ++ bound_t beg; /* start of the span */ ++ bound_t end; /* one past the end of the span */ ++} span_t; ++typedef struct { ++ span_t *span; /* allocated, distinct, and sorted list of spans */ ++ size_t num; /* number of spans in the list */ ++ size_t max; /* allocated number of spans (num <= max) */ ++} cover_t; ++ ++/* ++ * Return the index of the first span in cover whose beg is greater than val. ++ * If there is no such span, then cover->num is returned. ++ */ ++static size_t cover_find(cover, val) ++ cover_t *cover; ++ bound_t val; ++{ ++ size_t lo = 0, hi = cover->num; ++ while (lo < hi) { ++ size_t mid = (lo + hi) >> 1; ++ if (val < cover->span[mid].beg) ++ hi = mid; ++ else ++ lo = mid + 1; ++ } ++ return hi; ++} ++ ++/* Return true if val lies within any one of the spans in cover. */ ++static int cover_within(cover, val) ++ cover_t *cover; ++ bound_t val; ++{ ++ size_t pos = cover_find(cover, val); ++ return pos > 0 && val < cover->span[pos - 1].end; ++} ++ ++/* ++ * Add a new span to the list, but only if the new span does not overlap any ++ * spans already in the list. The new span covers the values beg..end-1. beg ++ * must be less than end. ++ * ++ * Keep the list sorted and merge adjacent spans. Grow the allocated space for ++ * the list as needed. On success, 0 is returned. If the new span overlaps any ++ * existing spans, then 1 is returned and the new span is not added to the ++ * list. If the new span is invalid because beg is greater than or equal to ++ * end, then -1 is returned. If the list needs to be grown but the memory ++ * allocation fails, then -2 is returned. ++ */ ++static int cover_add(cover, beg, end) ++ cover_t *cover; ++ bound_t beg; ++ bound_t end; ++{ ++ size_t pos; ++ int prec, foll; ++ ++ if (beg >= end) ++ /* The new span is invalid. */ ++ return -1; ++ ++ /* Find where the new span should go, and make sure that it does not ++ overlap with any existing spans. */ ++ pos = cover_find(cover, beg); ++ if ((pos > 0 && beg < cover->span[pos - 1].end) || ++ (pos < cover->num && end > cover->span[pos].beg)) ++ return 1; ++ ++ /* Check for adjacencies. */ ++ prec = pos > 0 && beg == cover->span[pos - 1].end; ++ foll = pos < cover->num && end == cover->span[pos].beg; ++ if (prec && foll) { ++ /* The new span connects the preceding and following spans. Merge the ++ following span into the preceding span, and delete the following ++ span. */ ++ cover->span[pos - 1].end = cover->span[pos].end; ++ cover->num--; ++ memmove(cover->span + pos, cover->span + pos + 1, ++ (cover->num - pos) * sizeof(span_t)); ++ } ++ else if (prec) ++ /* The new span is adjacent only to the preceding span. Extend the end ++ of the preceding span. */ ++ cover->span[pos - 1].end = end; ++ else if (foll) ++ /* The new span is adjacent only to the following span. Extend the ++ beginning of the following span. */ ++ cover->span[pos].beg = beg; ++ else { ++ /* The new span has gaps between both the preceding and the following ++ spans. Assure that there is room and insert the span. */ ++ if (cover->num == cover->max) { ++ size_t max = cover->max == 0 ? 16 : cover->max << 1; ++ span_t *span = realloc(cover->span, max * sizeof(span_t)); ++ if (span == NULL) ++ return -2; ++ cover->span = span; ++ cover->max = max; ++ } ++ memmove(cover->span + pos + 1, cover->span + pos, ++ (cover->num - pos) * sizeof(span_t)); ++ cover->num++; ++ cover->span[pos].beg = beg; ++ cover->span[pos].end = end; ++ } ++ return 0; ++} + + + +@@ -376,6 +495,29 @@ int extract_or_test_files(__G) /* return PK-type error code */ + } + #endif /* !SFX || SFX_EXDIR */ + ++ /* One more: initialize cover structure for bomb detection. Start with a ++ span that covers the central directory though the end of the file. */ ++ if (G.cover == NULL) { ++ G.cover = malloc(sizeof(cover_t)); ++ if (G.cover == NULL) { ++ Info(slide, 0x401, ((char *)slide, ++ LoadFarString(NotEnoughMemCover))); ++ return PK_MEM; ++ } ++ ((cover_t *)G.cover)->span = NULL; ++ ((cover_t *)G.cover)->max = 0; ++ } ++ ((cover_t *)G.cover)->num = 0; ++ if ((G.extra_bytes != 0 && ++ cover_add((cover_t *)G.cover, 0, G.extra_bytes) != 0) || ++ cover_add((cover_t *)G.cover, ++ G.extra_bytes + G.ecrec.offset_start_central_directory, ++ G.ziplen) != 0) { ++ Info(slide, 0x401, ((char *)slide, ++ LoadFarString(NotEnoughMemCover))); ++ return PK_MEM; ++ } ++ + /*--------------------------------------------------------------------------- + The basic idea of this function is as follows. Since the central di- + rectory lies at the end of the zipfile and the member files lie at the +@@ -593,7 +735,8 @@ int extract_or_test_files(__G) /* return PK-type error code */ + if (error > error_in_archive) + error_in_archive = error; + /* ...and keep going (unless disk full or user break) */ +- if (G.disk_full > 1 || error_in_archive == IZ_CTRLC) { ++ if (G.disk_full > 1 || error_in_archive == IZ_CTRLC || ++ error == PK_BOMB) { + /* clear reached_end to signal premature stop ... */ + reached_end = FALSE; + /* ... and cancel scanning the central directory */ +@@ -1062,6 +1205,11 @@ static int extract_or_test_entrylist(__G__ numchunk, + + /* seek_zipf(__G__ pInfo->offset); */ + request = G.pInfo->offset + G.extra_bytes; ++ if (cover_within((cover_t *)G.cover, request)) { ++ Info(slide, 0x401, ((char *)slide, ++ LoadFarString(OverlappedComponents))); ++ return PK_BOMB; ++ } + inbuf_offset = request % INBUFSIZ; + bufstart = request - inbuf_offset; + +@@ -1593,6 +1741,18 @@ reprompt: + return IZ_CTRLC; /* cancel operation by user request */ + } + #endif ++ error = cover_add((cover_t *)G.cover, request, ++ G.cur_zipfile_bufstart + (G.inptr - G.inbuf)); ++ if (error < 0) { ++ Info(slide, 0x401, ((char *)slide, ++ LoadFarString(NotEnoughMemCover))); ++ return PK_MEM; ++ } ++ if (error != 0) { ++ Info(slide, 0x401, ((char *)slide, ++ LoadFarString(OverlappedComponents))); ++ return PK_BOMB; ++ } + #ifdef MACOS /* MacOS is no preemptive OS, thus call event-handling by hand */ + UserStop(); + #endif +@@ -1994,6 +2154,34 @@ static int extract_or_test_member(__G) /* return PK-type error code */ + } + + undefer_input(__G); ++ ++ if ((G.lrec.general_purpose_bit_flag & 8) != 0) { ++ /* skip over data descriptor (harder than it sounds, due to signature ++ * ambiguity) ++ */ ++# define SIG 0x08074b50 ++# define LOW 0xffffffff ++ uch buf[12]; ++ unsigned shy = 12 - readbuf((char *)buf, 12); ++ ulg crc = shy ? 0 : makelong(buf); ++ ulg clen = shy ? 0 : makelong(buf + 4); ++ ulg ulen = shy ? 0 : makelong(buf + 8); /* or high clen if ZIP64 */ ++ if (crc == SIG && /* if not SIG, no signature */ ++ (G.lrec.crc32 != SIG || /* if not SIG, have signature */ ++ (clen == SIG && /* if not SIG, no signature */ ++ ((G.lrec.csize & LOW) != SIG || /* if not SIG, have signature */ ++ (ulen == SIG && /* if not SIG, no signature */ ++ (G.zip64 ? G.lrec.csize >> 32 : G.lrec.ucsize) != SIG ++ /* if not SIG, have signature */ ++ ))))) ++ /* skip four more bytes to account for signature */ ++ shy += 4 - readbuf((char *)buf, 4); ++ if (G.zip64) ++ shy += 8 - readbuf((char *)buf, 8); /* skip eight more for ZIP64 */ ++ if (shy) ++ error = PK_ERR; ++ } ++ + return error; + + } /* end function extract_or_test_member() */ +diff --git a/globals.c b/globals.c +index fa8cca5..1e0f608 100644 +--- a/globals.c ++++ b/globals.c +@@ -181,6 +181,7 @@ Uz_Globs *globalsCtor() + # if (!defined(NO_TIMESTAMPS)) + uO.D_flag=1; /* default to '-D', no restoration of dir timestamps */ + # endif ++ G.cover = NULL; /* not allocated yet */ + #endif + + uO.lflag=(-1); +diff --git a/globals.h b/globals.h +index 11b7215..2bdcdeb 100644 +--- a/globals.h ++++ b/globals.h +@@ -260,12 +260,15 @@ typedef struct Globals { + ecdir_rec ecrec; /* used in unzip.c, extract.c */ + z_stat statbuf; /* used by main, mapname, check_for_newer */ + ++ int zip64; /* true if Zip64 info in extra field */ ++ + int mem_mode; + uch *outbufptr; /* extract.c static */ + ulg outsize; /* extract.c static */ + int reported_backslash; /* extract.c static */ + int disk_full; + int newfile; ++ void **cover; /* used in extract.c for bomb detection */ + + int didCRlast; /* fileio static */ + ulg numlines; /* fileio static: number of lines printed */ +diff --git a/process.c b/process.c +index a3c1a4d..208619c 100644 +--- a/process.c ++++ b/process.c +@@ -637,6 +637,13 @@ void free_G_buffers(__G) /* releases all memory allocated in global vars */ + } + #endif + ++ /* Free the cover span list and the cover structure. */ ++ if (G.cover != NULL) { ++ free(*(G.cover)); ++ free(G.cover); ++ G.cover = NULL; ++ } ++ + } /* end function free_G_buffers() */ + + +@@ -1905,6 +1912,7 @@ int getZip64Data(__G__ ef_buf, ef_len) + + #define Z64FLGS 0xffff + #define Z64FLGL 0xffffffff ++ G.zip64 = FALSE; + + if (ef_len == 0 || ef_buf == NULL) + return PK_COOL; +@@ -1964,6 +1972,8 @@ int getZip64Data(__G__ ef_buf, ef_len) + G.crec.disk_number_start = (zuvl_t)makelong(offset + ef_buf); + offset += 4; + } ++ ++ G.zip64 = TRUE; + #if 0 + break; /* Expect only one EF_PKSZ64 block. */ + #endif /* 0 */ +diff --git a/unzip.h b/unzip.h +index 5b2a326..ed24a5b 100644 +--- a/unzip.h ++++ b/unzip.h +@@ -645,6 +645,7 @@ typedef struct _Uzp_cdir_Rec { + #define PK_NOZIP 9 /* zipfile not found */ + #define PK_PARAM 10 /* bad or illegal parameters specified */ + #define PK_FIND 11 /* no files found */ ++#define PK_BOMB 12 /* likely zip bomb */ + #define PK_DISK 50 /* disk full */ + #define PK_EOF 51 /* unexpected EOF */ + +-- +2.22.0.vfs.1.1.57.gbaf16c8 diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/unzip/unzip/CVE-2019-13232_p3.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-extended/unzip/unzip/CVE-2019-13232_p3.patch new file mode 100644 index 00000000..fd26fdd8 --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-extended/unzip/unzip/CVE-2019-13232_p3.patch @@ -0,0 +1,121 @@ +From be88aa4811af47ca06d8b7dcda294f899eba70ea Mon Sep 17 00:00:00 2001 +From: Mark Adler +Date: Thu, 25 Jul 2019 20:43:17 -0700 +Subject: [PATCH 3/3] Do not raise a zip bomb alert for a misplaced central + directory. + +There is a zip-like file in the Firefox distribution, omni.ja, +which is a zip container with the central directory placed at the +start of the file instead of after the local entries as required +by the zip standard. This commit marks the actual location of the +central directory, as well as the end of central directory records, +as disallowed locations. This now permits such containers to not +raise a zip bomb alert, where in fact there are no overlaps. + +CVE: CVE-2019-13232 +Upstream-Status: Backport +[https://github.com/madler/unzip/commit/6d351831be705cc26d897db44f878a978f4138fc] + +Signed-off-by: Dan Tran +--- + extract.c | 25 +++++++++++++++++++------ + process.c | 6 ++++++ + unzpriv.h | 10 ++++++++++ + 3 files changed, 35 insertions(+), 6 deletions(-) + +diff --git a/extract.c b/extract.c +index 2bb72ba..a9dcca8 100644 +--- a/extract.c ++++ b/extract.c +@@ -495,8 +495,11 @@ int extract_or_test_files(__G) /* return PK-type error code */ + } + #endif /* !SFX || SFX_EXDIR */ + +- /* One more: initialize cover structure for bomb detection. Start with a +- span that covers the central directory though the end of the file. */ ++ /* One more: initialize cover structure for bomb detection. Start with ++ spans that cover any extra bytes at the start, the central directory, ++ the end of central directory record (including the Zip64 end of central ++ directory locator, if present), and the Zip64 end of central directory ++ record, if present. */ + if (G.cover == NULL) { + G.cover = malloc(sizeof(cover_t)); + if (G.cover == NULL) { +@@ -508,15 +511,25 @@ int extract_or_test_files(__G) /* return PK-type error code */ + ((cover_t *)G.cover)->max = 0; + } + ((cover_t *)G.cover)->num = 0; +- if ((G.extra_bytes != 0 && +- cover_add((cover_t *)G.cover, 0, G.extra_bytes) != 0) || +- cover_add((cover_t *)G.cover, ++ if (cover_add((cover_t *)G.cover, + G.extra_bytes + G.ecrec.offset_start_central_directory, +- G.ziplen) != 0) { ++ G.extra_bytes + G.ecrec.offset_start_central_directory + ++ G.ecrec.size_central_directory) != 0) { + Info(slide, 0x401, ((char *)slide, + LoadFarString(NotEnoughMemCover))); + return PK_MEM; + } ++ if ((G.extra_bytes != 0 && ++ cover_add((cover_t *)G.cover, 0, G.extra_bytes) != 0) || ++ (G.ecrec.have_ecr64 && ++ cover_add((cover_t *)G.cover, G.ecrec.ec64_start, ++ G.ecrec.ec64_end) != 0) || ++ cover_add((cover_t *)G.cover, G.ecrec.ec_start, ++ G.ecrec.ec_end) != 0) { ++ Info(slide, 0x401, ((char *)slide, ++ LoadFarString(OverlappedComponents))); ++ return PK_BOMB; ++ } + + /*--------------------------------------------------------------------------- + The basic idea of this function is as follows. Since the central di- +diff --git a/process.c b/process.c +index 208619c..5f8f6c6 100644 +--- a/process.c ++++ b/process.c +@@ -1408,6 +1408,10 @@ static int find_ecrec64(__G__ searchlen) /* return PK-class error */ + + /* Now, we are (almost) sure that we have a Zip64 archive. */ + G.ecrec.have_ecr64 = 1; ++ G.ecrec.ec_start -= ECLOC64_SIZE+4; ++ G.ecrec.ec64_start = ecrec64_start_offset; ++ G.ecrec.ec64_end = ecrec64_start_offset + ++ 12 + makeint64(&byterec[ECREC64_LENGTH]); + + /* Update the "end-of-central-dir offset" for later checks. */ + G.real_ecrec_offset = ecrec64_start_offset; +@@ -1542,6 +1546,8 @@ static int find_ecrec(__G__ searchlen) /* return PK-class error */ + makelong(&byterec[OFFSET_START_CENTRAL_DIRECTORY]); + G.ecrec.zipfile_comment_length = + makeword(&byterec[ZIPFILE_COMMENT_LENGTH]); ++ G.ecrec.ec_start = G.real_ecrec_offset; ++ G.ecrec.ec_end = G.ecrec.ec_start + 22 + G.ecrec.zipfile_comment_length; + + /* Now, we have to read the archive comment, BEFORE the file pointer + is moved away backwards to seek for a Zip64 ECLOC64 structure. +diff --git a/unzpriv.h b/unzpriv.h +index c8d3eab..5e177c7 100644 +--- a/unzpriv.h ++++ b/unzpriv.h +@@ -2185,6 +2185,16 @@ typedef struct VMStimbuf { + int have_ecr64; /* valid Zip64 ecdir-record exists */ + int is_zip64_archive; /* Zip64 ecdir-record is mandatory */ + ush zipfile_comment_length; ++ zusz_t ec_start, ec_end; /* offsets of start and end of the ++ end of central directory record, ++ including if present the Zip64 ++ end of central directory locator, ++ which immediately precedes the ++ end of central directory record */ ++ zusz_t ec64_start, ec64_end; /* if have_ecr64 is true, then these ++ are the offsets of the start and ++ end of the Zip64 end of central ++ directory record */ + } ecdir_rec; + + +-- +2.22.0.vfs.1.1.57.gbaf16c8 + diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/unzip/unzip_6.0.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-extended/unzip/unzip_6.0.bb index daba7227..c1ea0a9a 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/unzip/unzip_6.0.bb +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-extended/unzip/unzip_6.0.bb @@ -22,6 +22,9 @@ SRC_URI = "${SOURCEFORGE_MIRROR}/infozip/UnZip%206.x%20%28latest%29/UnZip%206.0/ file://symlink.patch \ file://0001-unzip-fix-CVE-2018-1000035.patch \ file://CVE-2018-18384.patch \ + file://CVE-2019-13232_p1.patch \ + file://CVE-2019-13232_p2.patch \ + file://CVE-2019-13232_p3.patch \ " UPSTREAM_VERSION_UNKNOWN = "1" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/watchdog/watchdog/0001-watchdog-remove-interdependencies-of-watchdog-and-wd.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-extended/watchdog/watchdog/0001-watchdog-remove-interdependencies-of-watchdog-and-wd.patch index 338e0cd1..075a98e5 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/watchdog/watchdog/0001-watchdog-remove-interdependencies-of-watchdog-and-wd.patch +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-extended/watchdog/watchdog/0001-watchdog-remove-interdependencies-of-watchdog-and-wd.patch @@ -34,7 +34,7 @@ index 7a2fc36..f31d1fe 100644 -ExecStart=/bin/sh -c '[ $run_watchdog != 1 ] || exec /usr/sbin/watchdog $watchdog_options' -ExecStopPost=/bin/sh -c '[ $run_wd_keepalive != 1 ] || false' +ExecStart=/bin/sh -c '[ x$run_watchdog != x1 ] || exec /usr/sbin/watchdog $watchdog_options' -+PIDFile=/var/run/watchdog.pid ++PIDFile=/run/watchdog.pid [Install] -WantedBy=default.target diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/wget/wget.inc b/Contrib-Inspur/openbmc/poky/meta/recipes-extended/wget/wget.inc index 07e8d8e8..23383282 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/wget/wget.inc +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-extended/wget/wget.inc @@ -1,4 +1,9 @@ SUMMARY = "Console URL download utility supporting HTTP, FTP, etc" +DESCRIPTION = "Wget is a network utility to retrieve files from the web using \ +HTTP(S) and FTP, the two most widely used internet protocols. It works \ +non-interactively, so it will work in the background, after having logged off. \ +The program supports recursive retrieval of web-authoring pages as well as \ +FTP sites" HOMEPAGE = "https://www.gnu.org/software/wget/" SECTION = "console/network" LICENSE = "GPLv3" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/xdg-utils/xdg-utils_1.1.3.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-extended/xdg-utils/xdg-utils_1.1.3.bb index 8e466381..7788b5f3 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-extended/xdg-utils/xdg-utils_1.1.3.bb +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-extended/xdg-utils/xdg-utils_1.1.3.bb @@ -28,7 +28,7 @@ SRC_URI[sha256sum] = "d798b08af8a8e2063ddde6c9fa3398ca81484f27dec642c5627ffcaa0d UPSTREAM_CHECK_REGEX = "xdg-utils-(?P((\d+[\.\-_]*)+)((rc|alpha|beta)\d+)?)\.(tar\.gz|tgz)" # Needs brokensep as this doesn't use automake -inherit autotools-brokensep distro_features_check +inherit autotools-brokensep features_check # The xprop requires x11 in DISTRO_FEATURES REQUIRED_DISTRO_FEATURES = "x11" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-gnome/epiphany/epiphany_3.32.3.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-gnome/epiphany/epiphany_3.32.3.bb deleted file mode 100644 index de1b6e2f..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-gnome/epiphany/epiphany_3.32.3.bb +++ /dev/null @@ -1,20 +0,0 @@ -SUMMARY = "WebKit based web browser for GNOME" -LICENSE = "GPLv3+" -LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504" - -DEPENDS = "libsoup-2.4 webkitgtk gtk+3 iso-codes avahi libnotify gcr \ - gsettings-desktop-schemas libxml2-native \ - glib-2.0 glib-2.0-native json-glib libdazzle" - -GNOMEBASEBUILDCLASS = "meson" -inherit gnomebase gsettings distro_features_check upstream-version-is-even gettext -REQUIRED_DISTRO_FEATURES = "x11 opengl" - -SRC_URI = "${GNOME_MIRROR}/${GNOMEBN}/${@gnome_verdir("${PV}")}/${GNOMEBN}-${PV}.tar.${GNOME_COMPRESS_TYPE};name=archive \ - file://0002-help-meson.build-disable-the-use-of-yelp.patch \ - " -SRC_URI[archive.md5sum] = "c4976507bf3de69f27a050ad09531f5a" -SRC_URI[archive.sha256sum] = "3ccb6859a43b839b714aa425cb185056f1e8604adbaab6a1bc179d1ba641a33f" - -FILES_${PN} += "${datadir}/dbus-1 ${datadir}/gnome-shell/search-providers ${datadir}/metainfo" -RDEPENDS_${PN} = "iso-codes adwaita-icon-theme gsettings-desktop-schemas" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-gnome/epiphany/epiphany_3.34.1.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-gnome/epiphany/epiphany_3.34.1.bb new file mode 100644 index 00000000..cebd55dc --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-gnome/epiphany/epiphany_3.34.1.bb @@ -0,0 +1,21 @@ +SUMMARY = "WebKit based web browser for GNOME" +BUGTRACKER = "https://gitlab.gnome.org/GNOME/epiphany" +LICENSE = "GPLv3+" +LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504" + +DEPENDS = "libsoup-2.4 webkitgtk gtk+3 iso-codes avahi libnotify gcr \ + gsettings-desktop-schemas libxml2-native \ + glib-2.0 glib-2.0-native json-glib libdazzle" + +GNOMEBASEBUILDCLASS = "meson" +inherit gnomebase gsettings features_check upstream-version-is-even gettext +REQUIRED_DISTRO_FEATURES = "x11 opengl" + +SRC_URI = "${GNOME_MIRROR}/${GNOMEBN}/${@gnome_verdir("${PV}")}/${GNOMEBN}-${PV}.tar.${GNOME_COMPRESS_TYPE};name=archive \ + file://0002-help-meson.build-disable-the-use-of-yelp.patch \ + " +SRC_URI[archive.md5sum] = "50b50e18d99b19f44cc9cd419c6a4ba8" +SRC_URI[archive.sha256sum] = "a07bc997ad2cbf14d58557bb0b63e92d8c33683680c5e50ea6f9b53b36bec1d9" + +FILES_${PN} += "${datadir}/dbus-1 ${datadir}/gnome-shell/search-providers ${datadir}/metainfo" +RDEPENDS_${PN} = "iso-codes adwaita-icon-theme gsettings-desktop-schemas" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-gnome/gcr/gcr_3.28.1.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-gnome/gcr/gcr_3.28.1.bb deleted file mode 100644 index 2299199c..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-gnome/gcr/gcr_3.28.1.bb +++ /dev/null @@ -1,32 +0,0 @@ -SUMMARY = "A library for bits of crypto UI and parsing etc" -HOMEPAGE = "http://www.gnome.org/" -BUGTRACKER = "https://bugzilla.gnome.org/" - -LICENSE = "GPLv2" -LIC_FILES_CHKSUM = "file://COPYING;md5=55ca817ccb7d5b5b66355690e9abc605" - -DEPENDS = "intltool-native gtk+3 p11-kit glib-2.0 libgcrypt \ - ${@bb.utils.contains('GI_DATA_ENABLED', 'True', 'libxslt-native', '', d)}" - -inherit gnomebase gtk-icon-cache gtk-doc distro_features_check upstream-version-is-even vala gobject-introspection -# depends on gtk+3, but also x11 through gtk+-x11 -REQUIRED_DISTRO_FEATURES = "x11" - -SRC_URI[archive.md5sum] = "afd88cacfd54c1ac5b3e0eb35e3aa674" -SRC_URI[archive.sha256sum] = "95204aa2111c301778ebfbe60975ce3ed698c958430ffcc2a785ac5e593d168b" - -FILES_${PN} += " \ - ${datadir}/dbus-1 \ - ${datadir}/gcr-3 \ -" - -# http://errors.yoctoproject.org/Errors/Details/20229/ -ARM_INSTRUCTION_SET_armv4 = "arm" -ARM_INSTRUCTION_SET_armv5 = "arm" -ARM_INSTRUCTION_SET_armv6 = "arm" - -# These files may be out of date or missing our fixes -# libgcrypt.m4 in particular is calling into libgcrypt-config -do_configure_prepend() { - rm -f ${S}/build/m4/* -} diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-gnome/gcr/gcr_3.34.0.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-gnome/gcr/gcr_3.34.0.bb new file mode 100644 index 00000000..e3e89996 --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-gnome/gcr/gcr_3.34.0.bb @@ -0,0 +1,35 @@ +SUMMARY = "A library for bits of crypto UI and parsing etc" +DESCRIPTION = "GCR is a library for displaying certificates, and crypto UI, \ +accessing key stores. It also provides the viewer for crypto files on the \ +GNOME desktop." +HOMEPAGE = "https://gitlab.gnome.org/GNOME/gcr" +BUGTRACKER = "https://gitlab.gnome.org/GNOME/gcr/issues" + +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=55ca817ccb7d5b5b66355690e9abc605" + +DEPENDS = "gtk+3 p11-kit glib-2.0 libgcrypt \ + ${@bb.utils.contains('GI_DATA_ENABLED', 'True', 'libxslt-native', '', d)}" + +inherit gnomebase gtk-icon-cache gtk-doc features_check upstream-version-is-even vala gobject-introspection gettext +# depends on gtk+3, but also x11 through gtk+-x11 +REQUIRED_DISTRO_FEATURES = "x11" + +SRC_URI[archive.md5sum] = "4af28919fb1dd36d93603e8230283b6f" +SRC_URI[archive.sha256sum] = "29df50974a90987af694c0fb8926a6b366e68cacd8abd813817cfe1eb5d54524" + +FILES_${PN} += " \ + ${datadir}/dbus-1 \ + ${datadir}/gcr-3 \ +" + +# http://errors.yoctoproject.org/Errors/Details/20229/ +ARM_INSTRUCTION_SET_armv4 = "arm" +ARM_INSTRUCTION_SET_armv5 = "arm" +ARM_INSTRUCTION_SET_armv6 = "arm" + +# These files may be out of date or missing our fixes +# libgcrypt.m4 in particular is calling into libgcrypt-config +do_configure_prepend() { + rm -f ${S}/build/m4/* +} diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf_2.38.1.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf_2.38.1.bb deleted file mode 100644 index 3145cc20..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf_2.38.1.bb +++ /dev/null @@ -1,124 +0,0 @@ -SUMMARY = "Image loading library for GTK+" -HOMEPAGE = "http://www.gtk.org/" -BUGTRACKER = "https://bugzilla.gnome.org/" - -LICENSE = "LGPLv2.1" -LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c \ - file://gdk-pixbuf/gdk-pixbuf.h;endline=26;md5=72b39da7cbdde2e665329fef618e1d6b \ - " - -SECTION = "libs" - -DEPENDS = "glib-2.0 gdk-pixbuf-native shared-mime-info" - -MAJ_VER = "${@oe.utils.trim_version("${PV}", 2)}" - -SRC_URI = "${GNOME_MIRROR}/${BPN}/${MAJ_VER}/${BPN}-${PV}.tar.xz \ - file://run-ptest \ - file://fatal-loader.patch \ - file://0001-Work-around-thumbnailer-cross-compile-failure.patch \ - file://0001-Fix-a-couple-of-decisions-around-cross-compilation.patch \ - file://0004-Do-not-run-tests-when-building.patch \ - file://0006-Build-thumbnailer-and-tests-also-in-cross-builds.patch \ - " - -SRC_URI_append_class-target = " \ - file://0003-target-only-Work-around-thumbnailer-cross-compile-fa.patch \ - " -SRC_URI_append_class-nativesdk = " \ - file://0003-target-only-Work-around-thumbnailer-cross-compile-fa.patch \ - " - -SRC_URI[md5sum] = "f6ba2195acd18c5c9555421f30c31cc1" -SRC_URI[sha256sum] = "f19ff836ba991031610dcc53774e8ca436160f7d981867c8c3a37acfe493ab3a" - -inherit meson pkgconfig gettext pixbufcache ptest-gnome upstream-version-is-even gobject-introspection gtk-doc lib_package - -GIR_MESON_OPTION = 'gir' - -EXTRA_OEMESON_append = " ${@bb.utils.contains('PTEST_ENABLED', '1', '-Dinstalled_tests=true', '-Dinstalled_tests=false', d)}" - -LIBV = "2.10.0" - -GDK_PIXBUF_LOADERS ?= "png jpeg" - -PACKAGECONFIG ??= "${GDK_PIXBUF_LOADERS}" -PACKAGECONFIG_linuxstdbase = "${@bb.utils.filter('DISTRO_FEATURES', 'x11', d)} ${GDK_PIXBUF_LOADERS}" -PACKAGECONFIG_class-native = "${GDK_PIXBUF_LOADERS}" - -PACKAGECONFIG[png] = "-Dpng=true,-Dpng=false,libpng" -PACKAGECONFIG[jpeg] = "-Djpeg=true,-Djpeg=false,jpeg" -PACKAGECONFIG[tiff] = "-Dtiff=true,-Dtiff=false,tiff" -PACKAGECONFIG[jpeg2000] = "-Djasper=true,-Djasper=false,jasper" - -PACKAGECONFIG[x11] = "-Dx11=true,-Dx11=false,virtual/libx11" - -PACKAGES =+ "${PN}-xlib" - -# For GIO image type sniffing -RDEPENDS_${PN} = "shared-mime-info" - -FILES_${PN}-xlib = "${libdir}/*pixbuf_xlib*${SOLIBS}" -ALLOW_EMPTY_${PN}-xlib = "1" - -FILES_${PN} += "${libdir}/gdk-pixbuf-2.0/gdk-pixbuf-query-loaders" - -FILES_${PN}-bin += "${datadir}/thumbnailers/gdk-pixbuf-thumbnailer.thumbnailer" - -FILES_${PN}-dev += " \ - ${bindir}/gdk-pixbuf-csource \ - ${bindir}/gdk-pixbuf-pixdata \ - ${bindir}/gdk-pixbuf-print-mime-types \ - ${includedir}/* \ - ${libdir}/gdk-pixbuf-2.0/${LIBV}/loaders/*.la \ -" - -PACKAGES_DYNAMIC += "^gdk-pixbuf-loader-.*" -PACKAGES_DYNAMIC_class-native = "" - -python populate_packages_prepend () { - postinst_pixbufloader = d.getVar("postinst_pixbufloader") - - loaders_root = d.expand('${libdir}/gdk-pixbuf-2.0/${LIBV}/loaders') - - packages = ' '.join(do_split_packages(d, loaders_root, r'^libpixbufloader-(.*)\.so$', 'gdk-pixbuf-loader-%s', 'GDK pixbuf loader for %s')) - d.setVar('PIXBUF_PACKAGES', packages) - - # The test suite exercises all the loaders, so ensure they are all - # dependencies of the ptest package. - d.appendVar("RDEPENDS_%s-ptest" % d.getVar('PN'), " " + packages) -} - -do_install_append() { - # Copy gdk-pixbuf-query-loaders into libdir so it is always available - # in multilib builds. - cp ${D}/${bindir}/gdk-pixbuf-query-loaders ${D}/${libdir}/gdk-pixbuf-2.0/ - -} - -do_install_append_class-native() { - find ${D}${libdir} -name "libpixbufloader-*.la" -exec rm \{\} \; - - create_wrapper ${D}/${bindir}/gdk-pixbuf-csource \ - XDG_DATA_DIRS=${STAGING_DATADIR} \ - GDK_PIXBUF_MODULE_FILE=${STAGING_LIBDIR_NATIVE}/gdk-pixbuf-2.0/${LIBV}/loaders.cache - - create_wrapper ${D}/${bindir}/gdk-pixbuf-pixdata \ - XDG_DATA_DIRS=${STAGING_DATADIR} \ - GDK_PIXBUF_MODULE_FILE=${STAGING_LIBDIR_NATIVE}/gdk-pixbuf-2.0/${LIBV}/loaders.cache - - create_wrapper ${D}/${bindir}/gdk-pixbuf-print-mime-types \ - XDG_DATA_DIRS=${STAGING_DATADIR} \ - GDK_PIXBUF_MODULE_FILE=${STAGING_LIBDIR_NATIVE}/gdk-pixbuf-2.0/${LIBV}/loaders.cache - - create_wrapper ${D}/${libdir}/gdk-pixbuf-2.0/gdk-pixbuf-query-loaders \ - XDG_DATA_DIRS=${STAGING_DATADIR} \ - GDK_PIXBUF_MODULE_FILE=${STAGING_LIBDIR_NATIVE}/gdk-pixbuf-2.0/${LIBV}/loaders.cache \ - GDK_PIXBUF_MODULEDIR=${STAGING_LIBDIR_NATIVE}/gdk-pixbuf-2.0/${LIBV}/loaders - - create_wrapper ${D}/${bindir}/gdk-pixbuf-query-loaders \ - XDG_DATA_DIRS=${STAGING_DATADIR} \ - GDK_PIXBUF_MODULE_FILE=${STAGING_LIBDIR_NATIVE}/gdk-pixbuf-2.0/${LIBV}/loaders.cache \ - GDK_PIXBUF_MODULEDIR=${STAGING_LIBDIR_NATIVE}/gdk-pixbuf-2.0/${LIBV}/loaders -} -BBCLASSEXTEND = "native nativesdk" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf_2.38.2.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf_2.38.2.bb new file mode 100644 index 00000000..c9951060 --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf_2.38.2.bb @@ -0,0 +1,126 @@ +SUMMARY = "Image loading library for GTK+" +DESCRIPTION = "The GDK Pixbuf library provides: Image loading and saving \ +facilities, fast scaling and compositing of pixbufs and Simple animation \ +loading (ie. animated GIFs)" +HOMEPAGE = "https://wiki.gnome.org/Projects/GdkPixbuf" +BUGTRACKER = "https://gitlab.gnome.org/GNOME/gdk-pixbuf/issues" + +LICENSE = "LGPLv2.1" +LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c \ + file://gdk-pixbuf/gdk-pixbuf.h;endline=26;md5=72b39da7cbdde2e665329fef618e1d6b \ + " + +SECTION = "libs" + +DEPENDS = "glib-2.0 gdk-pixbuf-native shared-mime-info" + +MAJ_VER = "${@oe.utils.trim_version("${PV}", 2)}" + +SRC_URI = "${GNOME_MIRROR}/${BPN}/${MAJ_VER}/${BPN}-${PV}.tar.xz \ + file://run-ptest \ + file://fatal-loader.patch \ + file://0001-Work-around-thumbnailer-cross-compile-failure.patch \ + file://0001-Fix-a-couple-of-decisions-around-cross-compilation.patch \ + file://0004-Do-not-run-tests-when-building.patch \ + file://0006-Build-thumbnailer-and-tests-also-in-cross-builds.patch \ + " + +SRC_URI_append_class-target = " \ + file://0003-target-only-Work-around-thumbnailer-cross-compile-fa.patch \ + " +SRC_URI_append_class-nativesdk = " \ + file://0003-target-only-Work-around-thumbnailer-cross-compile-fa.patch \ + " + +SRC_URI[md5sum] = "cc1d712a1643b92ff0904d589963971f" +SRC_URI[sha256sum] = "73fa651ec0d89d73dd3070b129ce2203a66171dfc0bd2caa3570a9c93d2d0781" + +inherit meson pkgconfig gettext pixbufcache ptest-gnome upstream-version-is-even gobject-introspection gtk-doc lib_package + +GIR_MESON_OPTION = 'gir' + +EXTRA_OEMESON_append = " ${@bb.utils.contains('PTEST_ENABLED', '1', '-Dinstalled_tests=true', '-Dinstalled_tests=false', d)}" + +LIBV = "2.10.0" + +GDK_PIXBUF_LOADERS ?= "png jpeg" + +PACKAGECONFIG = "${@bb.utils.filter('DISTRO_FEATURES', 'x11', d)} ${GDK_PIXBUF_LOADERS}" +PACKAGECONFIG_class-native = "${GDK_PIXBUF_LOADERS}" + +PACKAGECONFIG[png] = "-Dpng=true,-Dpng=false,libpng" +PACKAGECONFIG[jpeg] = "-Djpeg=true,-Djpeg=false,jpeg" +PACKAGECONFIG[tiff] = "-Dtiff=true,-Dtiff=false,tiff" +PACKAGECONFIG[jpeg2000] = "-Djasper=true,-Djasper=false,jasper" + +PACKAGECONFIG[x11] = "-Dx11=true,-Dx11=false,virtual/libx11" + +PACKAGES =+ "${PN}-xlib" + +# For GIO image type sniffing +RDEPENDS_${PN} = "shared-mime-info" + +FILES_${PN}-xlib = "${libdir}/*pixbuf_xlib*${SOLIBS}" +ALLOW_EMPTY_${PN}-xlib = "1" + +FILES_${PN} += "${libdir}/gdk-pixbuf-2.0/gdk-pixbuf-query-loaders" + +FILES_${PN}-bin += "${datadir}/thumbnailers/gdk-pixbuf-thumbnailer.thumbnailer" + +FILES_${PN}-dev += " \ + ${bindir}/gdk-pixbuf-csource \ + ${bindir}/gdk-pixbuf-pixdata \ + ${bindir}/gdk-pixbuf-print-mime-types \ + ${includedir}/* \ + ${libdir}/gdk-pixbuf-2.0/${LIBV}/loaders/*.la \ +" + +PACKAGES_DYNAMIC += "^gdk-pixbuf-loader-.*" +PACKAGES_DYNAMIC_class-native = "" + +python populate_packages_prepend () { + postinst_pixbufloader = d.getVar("postinst_pixbufloader") + + loaders_root = d.expand('${libdir}/gdk-pixbuf-2.0/${LIBV}/loaders') + + packages = ' '.join(do_split_packages(d, loaders_root, r'^libpixbufloader-(.*)\.so$', 'gdk-pixbuf-loader-%s', 'GDK pixbuf loader for %s')) + d.setVar('PIXBUF_PACKAGES', packages) + + # The test suite exercises all the loaders, so ensure they are all + # dependencies of the ptest package. + d.appendVar("RDEPENDS_%s-ptest" % d.getVar('PN'), " " + packages) +} + +do_install_append() { + # Copy gdk-pixbuf-query-loaders into libdir so it is always available + # in multilib builds. + cp ${D}/${bindir}/gdk-pixbuf-query-loaders ${D}/${libdir}/gdk-pixbuf-2.0/ + +} + +do_install_append_class-native() { + find ${D}${libdir} -name "libpixbufloader-*.la" -exec rm \{\} \; + + create_wrapper ${D}/${bindir}/gdk-pixbuf-csource \ + XDG_DATA_DIRS=${STAGING_DATADIR} \ + GDK_PIXBUF_MODULE_FILE=${STAGING_LIBDIR_NATIVE}/gdk-pixbuf-2.0/${LIBV}/loaders.cache + + create_wrapper ${D}/${bindir}/gdk-pixbuf-pixdata \ + XDG_DATA_DIRS=${STAGING_DATADIR} \ + GDK_PIXBUF_MODULE_FILE=${STAGING_LIBDIR_NATIVE}/gdk-pixbuf-2.0/${LIBV}/loaders.cache + + create_wrapper ${D}/${bindir}/gdk-pixbuf-print-mime-types \ + XDG_DATA_DIRS=${STAGING_DATADIR} \ + GDK_PIXBUF_MODULE_FILE=${STAGING_LIBDIR_NATIVE}/gdk-pixbuf-2.0/${LIBV}/loaders.cache + + create_wrapper ${D}/${libdir}/gdk-pixbuf-2.0/gdk-pixbuf-query-loaders \ + XDG_DATA_DIRS=${STAGING_DATADIR} \ + GDK_PIXBUF_MODULE_FILE=${STAGING_LIBDIR_NATIVE}/gdk-pixbuf-2.0/${LIBV}/loaders.cache \ + GDK_PIXBUF_MODULEDIR=${STAGING_LIBDIR_NATIVE}/gdk-pixbuf-2.0/${LIBV}/loaders + + create_wrapper ${D}/${bindir}/gdk-pixbuf-query-loaders \ + XDG_DATA_DIRS=${STAGING_DATADIR} \ + GDK_PIXBUF_MODULE_FILE=${STAGING_LIBDIR_NATIVE}/gdk-pixbuf-2.0/${LIBV}/loaders.cache \ + GDK_PIXBUF_MODULEDIR=${STAGING_LIBDIR_NATIVE}/gdk-pixbuf-2.0/${LIBV}/loaders +} +BBCLASSEXTEND = "native nativesdk" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-gnome/gnome/adwaita-icon-theme/0001-Don-t-use-AC_CANONICAL_HOST.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-gnome/gnome/adwaita-icon-theme/0001-Don-t-use-AC_CANONICAL_HOST.patch index 4a983633..a062aa63 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-gnome/gnome/adwaita-icon-theme/0001-Don-t-use-AC_CANONICAL_HOST.patch +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-gnome/gnome/adwaita-icon-theme/0001-Don-t-use-AC_CANONICAL_HOST.patch @@ -19,7 +19,7 @@ index 4a84501..52dbb8e 100644 +++ b/configure.ac @@ -3,7 +3,6 @@ AC_PREREQ(2.53) - AC_INIT([adwaita-icon-theme], [3.32.0], + AC_INIT([adwaita-icon-theme], [3.34.0], [http://bugzilla.gnome.org/enter_bug.cgi?product=adwaita-icon-theme]) -AC_CANONICAL_HOST AC_CONFIG_MACRO_DIR([m4]) diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-gnome/gnome/adwaita-icon-theme/0001-Run-installation-commands-as-shell-jobs.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-gnome/gnome/adwaita-icon-theme/0001-Run-installation-commands-as-shell-jobs.patch index 6c38e237..c4d7e258 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-gnome/gnome/adwaita-icon-theme/0001-Run-installation-commands-as-shell-jobs.patch +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-gnome/gnome/adwaita-icon-theme/0001-Run-installation-commands-as-shell-jobs.patch @@ -24,7 +24,8 @@ index 1c940a5..3998ee6 100644 - $(install_sh_DATA) $(top_srcdir)/$(SVGOUTDIR)/$$size/$$file $(DESTDIR)$(themedir)/$$size/$$file; \ + $(install_sh_DATA) $(top_srcdir)/$(SVGOUTDIR)/$$size/$$file $(DESTDIR)$(themedir)/$$size/$$file & \ done; \ - done; +- done; ++ done; \ + wait ## FIXME we should add a way to remove links generated by icon mapping @@ -45,7 +46,8 @@ index 86f4d7c..3fae8c1 100644 $(mkdir_p) $(DESTDIR)$(themedir)/scalable-up-to-32/$$context; \ - $(install_sh_DATA) $(top_srcdir)/$(SVGOUTDIR)/scalable-up-to-32/$$file $(DESTDIR)$(themedir)/scalable-up-to-32/$$file; \ + $(install_sh_DATA) $(top_srcdir)/$(SVGOUTDIR)/scalable-up-to-32/$$file $(DESTDIR)$(themedir)/scalable-up-to-32/$$file & \ - done +- done ++ done; \ + wait uninstall-local: @@ -61,7 +63,8 @@ index 24aac9b..61ba071 100644 - $(install_sh_DATA) $(top_srcdir)/$(SVGOUTDIR)/$$size/$$file $(DESTDIR)$(themedir)/$$size/$$file; \ + $(install_sh_DATA) $(top_srcdir)/$(SVGOUTDIR)/$$size/$$file $(DESTDIR)$(themedir)/$$size/$$file & \ done; \ - done +- done ++ done; \ for file in `cd $(top_srcdir)/$(SVGOUTDIR)/scalable; find . -name "*.svg"`; do \ context="`dirname $$file`"; \ $(mkdir_p) $(DESTDIR)$(themedir)/scalable/$$context; \ @@ -72,7 +75,8 @@ index 24aac9b..61ba071 100644 - $(GTK_ENCODE_SYMBOLIC_SVG) $(top_srcdir)/$(SVGOUTDIR)/scalable/$$file $$size -o $(DESTDIR)$(themedir)/$$size/$$context; \ + $(GTK_ENCODE_SYMBOLIC_SVG) $(top_srcdir)/$(SVGOUTDIR)/scalable/$$file $$size -o $(DESTDIR)$(themedir)/$$size/$$context & \ done \ - done +- done ++ done; \ + wait uninstall-local: diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-gnome/gnome/adwaita-icon-theme_3.32.0.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-gnome/gnome/adwaita-icon-theme_3.32.0.bb deleted file mode 100644 index 02676f44..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-gnome/gnome/adwaita-icon-theme_3.32.0.bb +++ /dev/null @@ -1,41 +0,0 @@ -SUMMARY = "GTK+ icon theme" -HOMEPAGE = "http://ftp.gnome.org/pub/GNOME/sources/adwaita-icon-theme/" -BUGTRACKER = "https://bugzilla.gnome.org/" -SECTION = "x11/gnome" - -LICENSE = "LGPL-3.0 | CC-BY-SA-3.0" -LIC_FILES_CHKSUM = "file://COPYING;md5=c84cac88e46fc07647ea07e6c24eeb7c" - -inherit allarch autotools pkgconfig gettext gtk-icon-cache upstream-version-is-even - -MAJ_VER = "${@oe.utils.trim_version("${PV}", 2)}" -SRC_URI = "${GNOME_MIRROR}/${BPN}/${MAJ_VER}/${BPN}-${PV}.tar.xz \ - file://0001-Don-t-use-AC_CANONICAL_HOST.patch \ - file://0001-Run-installation-commands-as-shell-jobs.patch \ - " - -SRC_URI[md5sum] = "4b16278cfed860a86c8221de62eec151" -SRC_URI[sha256sum] = "698db6e407bb987baec736c6a30216dfc0317e3ca2403c7adf3a5aa46c193286" - -DEPENDS += "librsvg-native" - -PACKAGES = "${PN}-cursors ${PN}-symbolic-hires ${PN}-symbolic ${PN}-hires ${PN}" - -RREPLACES_${PN} = "gnome-icon-theme" -RCONFLICTS_${PN} = "gnome-icon-theme" -RPROVIDES_${PN} = "gnome-icon-theme" - -FILES_${PN}-cursors = "${prefix}/share/icons/Adwaita/cursors/" -FILES_${PN}-symbolic-hires = "${prefix}/share/icons/Adwaita/96x96/*/*.symbolic.png \ - ${prefix}/share/icons/Adwaita/64x64/*/*.symbolic.png \ - ${prefix}/share/icons/Adwaita/48x48/*/*.symbolic.png \ - ${prefix}/share/icons/Adwaita/32x32/*/*.symbolic.png" -FILES_${PN}-symbolic = "${prefix}/share/icons/Adwaita/16x16/*/*.symbolic.png \ - ${prefix}/share/icons/Adwaita/24x24/*/*.symbolic.png \ - ${prefix}/share/icons/Adwaita/scalable/*/*-symbolic*.svg" -FILES_${PN}-hires = "${prefix}/share/icons/Adwaita/256x256/ \ - ${prefix}/share/icons/Adwaita/512x512/" -FILES_${PN} = "${prefix}/share/icons/Adwaita/ \ - ${prefix}/share/pkgconfig/adwaita-icon-theme.pc" - -BBCLASSEXTEND = "native nativesdk" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-gnome/gnome/adwaita-icon-theme_3.34.0.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-gnome/gnome/adwaita-icon-theme_3.34.0.bb new file mode 100644 index 00000000..3f6b60fb --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-gnome/gnome/adwaita-icon-theme_3.34.0.bb @@ -0,0 +1,41 @@ +SUMMARY = "GTK+ icon theme" +HOMEPAGE = "https://gitlab.gnome.org/GNOME/adwaita-icon-theme" +BUGTRACKER = "https://gitlab.gnome.org/GNOME/adwaita-icon-theme/issues" +SECTION = "x11/gnome" + +LICENSE = "LGPL-3.0 | CC-BY-SA-3.0" +LIC_FILES_CHKSUM = "file://COPYING;md5=c84cac88e46fc07647ea07e6c24eeb7c" + +inherit allarch autotools pkgconfig gettext gtk-icon-cache upstream-version-is-even + +MAJ_VER = "${@oe.utils.trim_version("${PV}", 2)}" +SRC_URI = "${GNOME_MIRROR}/${BPN}/${MAJ_VER}/${BPN}-${PV}.tar.xz \ + file://0001-Don-t-use-AC_CANONICAL_HOST.patch \ + file://0001-Run-installation-commands-as-shell-jobs.patch \ + " + +SRC_URI[md5sum] = "41b860c17efe065849b0cbf46e88811a" +SRC_URI[sha256sum] = "40b7e91f8263552b64d0f9beff33150291b086618ce498c71bf10035e48c7c7f" + +DEPENDS += "librsvg-native" + +PACKAGES = "${PN}-cursors ${PN}-symbolic-hires ${PN}-symbolic ${PN}-hires ${PN}" + +RREPLACES_${PN} = "gnome-icon-theme" +RCONFLICTS_${PN} = "gnome-icon-theme" +RPROVIDES_${PN} = "gnome-icon-theme" + +FILES_${PN}-cursors = "${prefix}/share/icons/Adwaita/cursors/" +FILES_${PN}-symbolic-hires = "${prefix}/share/icons/Adwaita/96x96/*/*.symbolic.png \ + ${prefix}/share/icons/Adwaita/64x64/*/*.symbolic.png \ + ${prefix}/share/icons/Adwaita/48x48/*/*.symbolic.png \ + ${prefix}/share/icons/Adwaita/32x32/*/*.symbolic.png" +FILES_${PN}-symbolic = "${prefix}/share/icons/Adwaita/16x16/*/*.symbolic.png \ + ${prefix}/share/icons/Adwaita/24x24/*/*.symbolic.png \ + ${prefix}/share/icons/Adwaita/scalable/*/*-symbolic*.svg" +FILES_${PN}-hires = "${prefix}/share/icons/Adwaita/256x256/ \ + ${prefix}/share/icons/Adwaita/512x512/" +FILES_${PN} = "${prefix}/share/icons/Adwaita/ \ + ${prefix}/share/pkgconfig/adwaita-icon-theme.pc" + +BBCLASSEXTEND = "native nativesdk" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-gnome/gnome/gconf_3.2.6.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-gnome/gnome/gconf_3.2.6.bb index e6742f37..b8466d48 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-gnome/gnome/gconf_3.2.6.bb +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-gnome/gnome/gconf_3.2.6.bb @@ -1,4 +1,7 @@ SUMMARY = "GNOME configuration system" +DESCRIPTION = "GConf is a system for storing application preferences. \ +It is intended for user preferences; not configuration of something like \ +Apache, or arbitrary data storage." SECTION = "x11/gnome" HOMEPAGE = "https://projects.gnome.org/gconf/" LICENSE = "LGPLv2+" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-gnome/gnome/gnome-themes-standard_3.22.3.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-gnome/gnome/gnome-themes-standard_3.22.3.bb deleted file mode 100644 index 55ee2776..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-gnome/gnome/gnome-themes-standard_3.22.3.bb +++ /dev/null @@ -1,46 +0,0 @@ -SUMMARY = "GTK+2 standard themes" -HOMEPAGE = "http://ftp.gnome.org/pub/GNOME/sources/gnome-themes-standard/" -BUGTRACKER = "https://bugzilla.gnome.org/" -SECTION = "x11/gnome" - -LICENSE = "LGPL-2.1" -LIC_FILES_CHKSUM = "file://COPYING;md5=2d5025d4aa3495befef8f17206a5b0a1" - -inherit autotools pkgconfig gettext gtk-icon-cache upstream-version-is-even distro_features_check - -ANY_OF_DISTRO_FEATURES = "${GTK2DISTROFEATURES}" - -DEPENDS += "intltool-native gtk+" - -MAJ_VER = "${@oe.utils.trim_version("${PV}", 2)}" -SRC_URI = "${GNOME_MIRROR}/${BPN}/${MAJ_VER}/${BPN}-${PV}.tar.xz \ - " - -SRC_URI[md5sum] = "b51c362b157b6407303d44f93c31ee11" -SRC_URI[sha256sum] = "61dc87c52261cfd5b94d65e8ffd923ddeb5d3944562f84942eeeb197ab8ab56a" - -EXTRA_OECONF = "--disable-gtk3-engine" - -do_install_append() { - # Only building Adwaita, remove highcontrast files - rm -rf ${D}${prefix}/share/themes/HighContrast \ - ${D}${prefix}/share/icons - - # The libtool archive file is unneeded with shared libs on modern Linux - rm -rf ${D}${libdir}/gtk-2.0/2.10.0/engines/libadwaita.la -} - -# There could be gnome-theme-highcontrast as well but that requires -# gtk+3 and includes lots of icons (is also broken with B != S). -PACKAGES += "gnome-theme-adwaita \ - gnome-theme-adwaita-dark \ - " - -FILES_gnome-theme-adwaita = "${prefix}/share/themes/Adwaita \ - ${libdir}/gtk-2.0/2.10.0/engines/libadwaita.so" - -FILES_gnome-theme-adwaita-dark = "${prefix}/share/themes/Adwaita-dark" -RDEPENDS_gnome-theme-adwaita-dark = "gnome-theme-adwaita" - -# gnome-themes-standard is empty and doesn't exist -RDEPENDS_${PN}-dev = "" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-gnome/gobject-introspection/gobject-introspection/0001-Port-cross-compilation-support-to-meson.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-gnome/gobject-introspection/gobject-introspection/0001-Port-cross-compilation-support-to-meson.patch index 5747d61c..639f9c8f 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-gnome/gobject-introspection/gobject-introspection/0001-Port-cross-compilation-support-to-meson.patch +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-gnome/gobject-introspection/gobject-introspection/0001-Port-cross-compilation-support-to-meson.patch @@ -1,4 +1,4 @@ -From 2b3bce1526b538dc2c7fa223eaf9808858aa1b06 Mon Sep 17 00:00:00 2001 +From 0417a1bb08745f2bf5310d20b342c2b3b9b212d3 Mon Sep 17 00:00:00 2001 From: Alexander Kanavin Date: Thu, 15 Nov 2018 15:10:05 +0100 Subject: [PATCH] Port cross-compilation support to meson @@ -13,10 +13,10 @@ Signed-off-by: Alexander Kanavin 3 files changed, 68 insertions(+), 18 deletions(-) diff --git a/gir/meson.build b/gir/meson.build -index 85ae575..327c134 100644 +index c312100..a028033 100644 --- a/gir/meson.build +++ b/gir/meson.build -@@ -36,16 +36,29 @@ gir_files = [ +@@ -41,16 +41,29 @@ gir_files = [ typelibdir = join_paths(get_option('libdir'), 'girepository-1.0') install_data(gir_files, install_dir: girdir) @@ -56,7 +56,7 @@ index 85ae575..327c134 100644 dep_type = glib_dep.type_name() if dep_type == 'internal' -@@ -58,6 +71,12 @@ if dep_type == 'internal' +@@ -63,6 +76,12 @@ if dep_type == 'internal' '--extra-library=glib-2.0', '--extra-library=gobject-2.0'] endif @@ -69,7 +69,7 @@ index 85ae575..327c134 100644 # Take a glob and print to newlines globber = ''' from glob import glob -@@ -84,8 +103,8 @@ glib_command = scanner_command + [ +@@ -89,8 +108,8 @@ glib_command = scanner_command + [ if dep_type == 'pkgconfig' glib_command += ['--external-library', '--pkg=glib-2.0'] @@ -80,8 +80,8 @@ index 85ae575..327c134 100644 glib_libincdir = join_paths(glib_libdir, 'glib-2.0', 'include') glib_files += join_paths(glib_incdir, 'gobject', 'glib-types.h') glib_files += join_paths(glib_libincdir, 'glibconfig.h') -@@ -339,7 +358,7 @@ endforeach - if giounix_dep.found() +@@ -345,7 +364,7 @@ if giounix_dep.found() + dep_type = giounix_dep.type_name() if dep_type == 'pkgconfig' gio_command += ['--pkg=gio-unix-2.0'] - giounix_includedir = join_paths(giounix_dep.get_pkgconfig_variable('includedir'), 'gio-unix-2.0') @@ -89,7 +89,7 @@ index 85ae575..327c134 100644 # Get the installed gio-unix header list ret = run_command(python, '-c', globber.format(join_paths(giounix_includedir, 'gio', '*.h'))) if ret.returncode() != 0 -@@ -422,15 +441,24 @@ gir_files += custom_target('gir-girepository', +@@ -428,15 +447,24 @@ gir_files += custom_target('gir-girepository', ) typelibs = [] @@ -119,10 +119,10 @@ index 85ae575..327c134 100644 install_dir: typelibdir, ) diff --git a/meson.build b/meson.build -index 95bbd2b..f7baefd 100644 +index a5e825f..a28490a 100644 --- a/meson.build +++ b/meson.build -@@ -163,7 +163,9 @@ endif +@@ -168,7 +168,9 @@ endif subdir('girepository') subdir('tools') subdir('giscanner') diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-gnome/gobject-introspection/gobject-introspection/0001-Relocate-the-repository-directory-for-native-builds.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-gnome/gobject-introspection/gobject-introspection/0001-Relocate-the-repository-directory-for-native-builds.patch index a4f45a14..a15401ae 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-gnome/gobject-introspection/gobject-introspection/0001-Relocate-the-repository-directory-for-native-builds.patch +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-gnome/gobject-introspection/gobject-introspection/0001-Relocate-the-repository-directory-for-native-builds.patch @@ -1,4 +1,4 @@ -From 8f01066e935a7323ff6e53f27ed1b5fb74fa11eb Mon Sep 17 00:00:00 2001 +From 673623851fb70c0e43cf79cef67b3751432ebe72 Mon Sep 17 00:00:00 2001 From: Sascha Silbe Date: Fri, 8 Jun 2018 13:55:10 +0200 Subject: [PATCH] Relocate the repository directory for native builds @@ -62,10 +62,10 @@ index ca5dc2b..7a4d17f 100644 typelib_search_path = g_slist_prepend (typelib_search_path, typelib_dir); diff --git a/girepository/meson.build b/girepository/meson.build -index 0261e1a..4cb646f 100644 +index 1d7aed6..5637fb5 100644 --- a/girepository/meson.build +++ b/girepository/meson.build -@@ -36,7 +36,7 @@ girepo_internals_lib = static_library('girepository-internals', +@@ -44,7 +44,7 @@ girepo_internals_lib = static_library('girepository-internals', ], c_args: gi_hidden_visibility_cflags + custom_c_args, include_directories : configinc, diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-gnome/gobject-introspection/gobject-introspection/0001-Revert-an-incomplete-upstream-attempt-at-cross-compi.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-gnome/gobject-introspection/gobject-introspection/0001-Revert-an-incomplete-upstream-attempt-at-cross-compi.patch deleted file mode 100644 index d1fdc068..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-gnome/gobject-introspection/gobject-introspection/0001-Revert-an-incomplete-upstream-attempt-at-cross-compi.patch +++ /dev/null @@ -1,48 +0,0 @@ -From 8a57aa0ac6c2f00b9b7a7fc177431f7643399e70 Mon Sep 17 00:00:00 2001 -From: Alexander Kanavin -Date: Wed, 23 Mar 2016 17:07:28 +0200 -Subject: [PATCH] Revert an incomplete upstream attempt at cross-compile - support - -Upstream-Status: Pending -Signed-off-by: Alexander Kanavin - ---- - common.mk | 4 ---- - giscanner/gdumpparser.py | 6 ------ - 2 files changed, 10 deletions(-) - -diff --git a/common.mk b/common.mk -index 64fb02f..77e819d 100644 ---- a/common.mk -+++ b/common.mk -@@ -24,12 +24,8 @@ INTROSPECTION_SCANNER_ARGS = \ - --add-include-path=$(top_builddir) \ - --add-include-path=$(top_builddir)/gir - --# GI_CROSS_LAUNCHER is the command to use for executing g-ir-compiler. --# Normally will be undefined but can be set (e.g. to wine or qemu) --# when cross-compiling - INTROSPECTION_COMPILER = \ - env PATH=".libs:$(PATH)" \ -- $(GI_CROSS_LAUNCHER) \ - $(top_builddir)/g-ir-compiler$(EXEEXT) - - INTROSPECTION_COMPILER_ARGS = \ -diff --git a/giscanner/gdumpparser.py b/giscanner/gdumpparser.py -index 1730fee..26bab84 100644 ---- a/giscanner/gdumpparser.py -+++ b/giscanner/gdumpparser.py -@@ -156,12 +156,6 @@ blob containing data gleaned from GObject's primitive introspection.""" - out_path = os.path.join(self._binary.tmpdir, 'dump.xml') - - args = [] -- -- # Prepend the launcher command and arguments, if defined -- launcher = os.environ.get('GI_CROSS_LAUNCHER') -- if launcher: -- args.extend(launcher.split()) -- - args.extend(self._binary.args) - args.append('--introspect-dump=%s,%s' % (in_path, out_path)) - diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-gnome/gobject-introspection/gobject-introspection/0002-configure.ac-add-host-gi-gi-cross-wrapper-gi-ldd-wra.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-gnome/gobject-introspection/gobject-introspection/0002-configure.ac-add-host-gi-gi-cross-wrapper-gi-ldd-wra.patch deleted file mode 100644 index e4fffcf6..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-gnome/gobject-introspection/gobject-introspection/0002-configure.ac-add-host-gi-gi-cross-wrapper-gi-ldd-wra.patch +++ /dev/null @@ -1,201 +0,0 @@ -From 2335d22e4c64db3d5dfc16ac65468b9dd66db8ac Mon Sep 17 00:00:00 2001 -From: Alexander Kanavin -Date: Mon, 19 Oct 2015 18:29:21 +0300 -Subject: [PATCH] configure.ac: add host-gi, gi-cross-wrapper, gi-ldd-wrapper - and introspection-data options - -With the first option, gobject-introspection tools (g-ir-doc-tool and g-ir-scanner) -that are already installed in the host system will be used for building the source tree. - -With the second option, g-ir-scanner will be instructed to use an executable -wrapper to run binaries it's producing, and g-ir-compiler will be run -through the same wrapper (host system's g-ir-compiler cannot be used because -it's producing architecture-specific output). - -With the third option, giscanner will be instructed to use a special ldd -command instead of system's ldd (which does not work when the binary to inspect -is compiled for a different architecture). - -With the fourth option, it is possible to disable building of introspection data -(.gir and .typelib files), which may be difficult or impossible in cross-compilation -environments, because of lack of emulation (or native hardware) for the target architecture -on which the target binaries can be run. - -These options are useful when cross-compiling for a different target architecture. - -Upstream-Status: Pending [review on oe-core list] -Signed-off-by: Alexander Kanavin - ---- - Makefile.am | 2 ++ - common.mk | 39 +++++++++++++++++++++++++++++++++++++++ - configure.ac | 42 ++++++++++++++++++++++++++++++++++++++++++ - tests/Makefile.am | 5 ++++- - 4 files changed, 87 insertions(+), 1 deletion(-) - -diff --git a/Makefile.am b/Makefile.am -index 952bf71..797a3bd 100644 ---- a/Makefile.am -+++ b/Makefile.am -@@ -21,7 +21,9 @@ include Makefile-cmph.am - include Makefile-girepository.am - include Makefile-giscanner.am - include Makefile-examples.am -+if BUILD_INTROSPECTION_DATA - include Makefile-gir.am -+endif - include Makefile-tools.am - - ## Process this file with automake to produce Makefile.in -diff --git a/common.mk b/common.mk -index 77e819d..379ab53 100644 ---- a/common.mk -+++ b/common.mk -@@ -6,6 +6,15 @@ - # module itself. - # - -+if USE_HOST_GI -+INTROSPECTION_SCANNER = \ -+ env PATH="$(PATH)" \ -+ LPATH=.libs \ -+ CC="$(CC)" \ -+ PYTHONPATH=$(top_builddir):$(top_srcdir) \ -+ UNINSTALLED_INTROSPECTION_BUILDDIR=$(top_builddir) \ -+ g-ir-scanner -+else - INTROSPECTION_SCANNER = \ - env PATH=".libs:$(PATH)" \ - LPATH=.libs \ -@@ -14,9 +23,24 @@ INTROSPECTION_SCANNER = \ - UNINSTALLED_INTROSPECTION_SRCDIR=$(top_srcdir) \ - UNINSTALLED_INTROSPECTION_BUILDDIR=$(top_builddir) \ - $(top_builddir)/g-ir-scanner -+endif -+ -+if USE_CROSS_WRAPPER -+CROSS_WRAPPER_ARG = --use-binary-wrapper=$(GI_CROSS_WRAPPER) -+else -+CROSS_WRAPPER_ARG = -+endif -+ -+if USE_LDD_WRAPPER -+LDD_WRAPPER_ARG = --use-ldd-wrapper=$(GI_LDD_WRAPPER) -+else -+LDD_WRAPPER_ARG = -+endif - - INTROSPECTION_SCANNER_ARGS = \ - --verbose \ -+ $(CROSS_WRAPPER_ARG) \ -+ $(LDD_WRAPPER_ARG) \ - -I$(top_srcdir) \ - --add-include-path=$(srcdir) \ - --add-include-path=$(top_srcdir)/gir \ -@@ -24,9 +48,15 @@ INTROSPECTION_SCANNER_ARGS = \ - --add-include-path=$(top_builddir) \ - --add-include-path=$(top_builddir)/gir - -+if USE_CROSS_WRAPPER -+INTROSPECTION_COMPILER = \ -+ env PATH=".libs:$(PATH)" \ -+ $(GI_CROSS_WRAPPER) $(top_builddir)/.libs/g-ir-compiler$(EXEEXT) -+else - INTROSPECTION_COMPILER = \ - env PATH=".libs:$(PATH)" \ - $(top_builddir)/g-ir-compiler$(EXEEXT) -+endif - - INTROSPECTION_COMPILER_ARGS = \ - --includedir=$(srcdir) \ -@@ -35,6 +65,14 @@ INTROSPECTION_COMPILER_ARGS = \ - --includedir=$(top_builddir) \ - --includedir=$(top_builddir)/gir - -+if USE_HOST_GI -+INTROSPECTION_DOCTOOL = \ -+ env PATH="$(PATH)" \ -+ LPATH=.libs \ -+ PYTHONPATH=$(top_builddir):$(top_srcdir) \ -+ UNINSTALLED_INTROSPECTION_BUILDDIR=$(top_builddir) \ -+ g-ir-doc-tool -+else - INTROSPECTION_DOCTOOL = \ - env PATH=".libs:$(PATH)" \ - LPATH=.libs \ -@@ -42,6 +80,7 @@ INTROSPECTION_DOCTOOL = \ - UNINSTALLED_INTROSPECTION_SRCDIR=$(top_srcdir) \ - UNINSTALLED_INTROSPECTION_BUILDDIR=$(top_builddir) \ - $(top_builddir)/g-ir-doc-tool -+endif - - INTROSPECTION_DOCTOOL_ARGS = \ - --add-include-path=$(srcdir) \ -diff --git a/configure.ac b/configure.ac -index 885da70..cd8108b 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -383,6 +383,48 @@ dnl - AM_CONDITIONAL(MSVC_BASE_NO_TOOLSET_SET, [test x$MSVC_BASE_TOOLSET = x]) - AM_CONDITIONAL(MSVC_NO_TOOLSET_SET, [test x$MSVC_TOOLSET = x]) - -+AC_ARG_ENABLE([host-gi], -+[AS_HELP_STRING([--enable-host-gi],[Use gobject introspection tools installed in the host system (useful when cross-compiling)])], -+[case "${enableval}" in -+ yes) host_gi=true ;; -+ no) host_gi=false ;; -+ *) AC_MSG_ERROR([bad value ${enableval} for --enable-host-gi]) ;; -+esac],[host_gi=false]) -+AM_CONDITIONAL([USE_HOST_GI], [test x$host_gi = xtrue]) -+ -+AC_ARG_ENABLE([gi-cross-wrapper], -+[AS_HELP_STRING([--enable-gi-cross-wrapper=path],[Use a wrapper to run gicompiler and binaries produced by giscanner (useful when cross-compiling)])], -+[ -+GI_CROSS_WRAPPER="${enableval}" -+use_wrapper=true -+],[ -+GI_CROSS_WRAPPER="" -+use_wrapper=false -+]) -+AC_SUBST(GI_CROSS_WRAPPER) -+AM_CONDITIONAL([USE_CROSS_WRAPPER], [test x$use_wrapper = xtrue]) -+ -+AC_ARG_ENABLE([gi-ldd-wrapper], -+[AS_HELP_STRING([--enable-gi-ldd-wrapper=path],[Use a ldd wrapper instead of system's ldd command in giscanner (useful when cross-compiling)])], -+[ -+GI_LDD_WRAPPER="${enableval}" -+use_ldd_wrapper=true -+],[ -+GI_LDD_WRAPPER="" -+use_ldd_wrapper=false -+]) -+AC_SUBST(GI_LDD_WRAPPER) -+AM_CONDITIONAL([USE_LDD_WRAPPER], [test x$use_ldd_wrapper = xtrue]) -+ -+AC_ARG_ENABLE([introspection-data], -+[AS_HELP_STRING([--enable-introspection-data],[Build introspection data (.gir and .typelib files) in addition to library and tools])], -+[case "${enableval}" in -+ yes) introspection_data=true ;; -+ no) introspection_data=false ;; -+ *) AC_MSG_ERROR([bad value ${enableval} for --enable-introspection-data]) ;; -+esac],[introspection_data=true]) -+AM_CONDITIONAL([BUILD_INTROSPECTION_DATA], [test x$introspection_data = xtrue]) -+ - AC_CONFIG_FILES([ - Makefile - tests/Makefile -diff --git a/tests/Makefile.am b/tests/Makefile.am -index 4bdb9c3..10b0f27 100644 ---- a/tests/Makefile.am -+++ b/tests/Makefile.am -@@ -1,6 +1,9 @@ - include $(top_srcdir)/common.mk - --SUBDIRS = . scanner repository offsets warn -+SUBDIRS = . scanner repository warn -+if BUILD_INTROSPECTION_DATA -+SUBDIRS += offsets -+endif - - EXTRA_DIST= - BUILT_SOURCES= diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-gnome/gobject-introspection/gobject-introspection/0005-Prefix-pkg-config-paths-with-PKG_CONFIG_SYSROOT_DIR-.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-gnome/gobject-introspection/gobject-introspection/0005-Prefix-pkg-config-paths-with-PKG_CONFIG_SYSROOT_DIR-.patch index 74622680..26f8da6d 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-gnome/gobject-introspection/gobject-introspection/0005-Prefix-pkg-config-paths-with-PKG_CONFIG_SYSROOT_DIR-.patch +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-gnome/gobject-introspection/gobject-introspection/0005-Prefix-pkg-config-paths-with-PKG_CONFIG_SYSROOT_DIR-.patch @@ -1,4 +1,4 @@ -From 74dab0fb6104ab6b715a24b783f8e8dfa5f83617 Mon Sep 17 00:00:00 2001 +From 740d91151ffe576e0c08513af9d7bc8133eb9dfb Mon Sep 17 00:00:00 2001 From: Alexander Kanavin Date: Thu, 8 Oct 2015 18:30:35 +0300 Subject: [PATCH] Prefix pkg-config paths with PKG_CONFIG_SYSROOT_DIR @@ -11,64 +11,9 @@ Upstream-Status: Pending [review on oe-core list] Signed-off-by: Alexander Kanavin --- - Makefile-gir.am | 18 +++++++++--------- - m4/introspection.m4 | 8 ++++---- - 2 files changed, 13 insertions(+), 13 deletions(-) + m4/introspection.m4 | 8 ++++---- + 1 file changed, 4 insertions(+), 4 deletions(-) -diff --git a/Makefile-gir.am b/Makefile-gir.am -index b59b0a6..24a50c2 100644 ---- a/Makefile-gir.am -+++ b/Makefile-gir.am -@@ -58,8 +58,8 @@ else - endif - - # glib --GLIB_INCLUDEDIR=$(shell "${PKG_CONFIG}" --variable=includedir glib-2.0)/glib-2.0 --GLIB_LIBDIR=$(shell "${PKG_CONFIG}" --variable=libdir glib-2.0) -+GLIB_INCLUDEDIR=$(PKG_CONFIG_SYSROOT_DIR)$(shell "${PKG_CONFIG}" --variable=includedir glib-2.0)/glib-2.0 -+GLIB_LIBDIR=$(PKG_CONFIG_SYSROOT_DIR)$(shell "${PKG_CONFIG}" --variable=libdir glib-2.0) - - GLIB_LIBRARY=glib-2.0 - -@@ -95,8 +95,8 @@ GLib-2.0.gir: g-ir-scanner g-ir-compiler$(EXEEXT) - gir/DBusGLib-1.0.typelib: GObject-2.0.gir - - # gobject --GOBJECT_INCLUDEDIR=$(shell "${PKG_CONFIG}" --variable=includedir gobject-2.0)/glib-2.0 --GOBJECT_LIBDIR=$(shell "${PKG_CONFIG}" --variable=libdir gobject-2.0) -+GOBJECT_INCLUDEDIR=$(PKG_CONFIG_SYSROOT_DIR)$(shell "${PKG_CONFIG}" --variable=includedir gobject-2.0)/glib-2.0 -+GOBJECT_LIBDIR=$(PKG_CONFIG_SYSROOT_DIR)$(shell "${PKG_CONFIG}" --variable=libdir gobject-2.0) - - GOBJECT_LIBRARY=gobject-2.0 - -@@ -124,8 +124,8 @@ GObject_2_0_gir_FILES = \ - BUILT_GIRSOURCES += GObject-2.0.gir - - # gmodule --GMODULE_INCLUDEDIR=$(shell "${PKG_CONFIG}" --variable=includedir gmodule-2.0)/glib-2.0 --GMODULE_LIBDIR=$(shell "${PKG_CONFIG}" --variable=libdir gmodule-2.0) -+GMODULE_INCLUDEDIR=$(PKG_CONFIG_SYSROOT_DIR)$(shell "${PKG_CONFIG}" --variable=includedir gmodule-2.0)/glib-2.0 -+GMODULE_LIBDIR=$(PKG_CONFIG_SYSROOT_DIR)$(shell "${PKG_CONFIG}" --variable=libdir gmodule-2.0) - - GMODULE_LIBRARY=gmodule-2.0 - -@@ -150,13 +150,13 @@ GModule_2_0_gir_FILES = $(GLIB_INCLUDEDIR)/gmodule.h \ - BUILT_GIRSOURCES += GModule-2.0.gir - - # gio --GIO_INCLUDEDIR=$(shell "${PKG_CONFIG}" --variable=includedir gio-2.0)/glib-2.0 --GIO_LIBDIR=$(shell "${PKG_CONFIG}" --variable=libdir gio-2.0) -+GIO_INCLUDEDIR=$(PKG_CONFIG_SYSROOT_DIR)$(shell "${PKG_CONFIG}" --variable=includedir gio-2.0)/glib-2.0 -+GIO_LIBDIR=$(PKG_CONFIG_SYSROOT_DIR)$(shell "${PKG_CONFIG}" --variable=libdir gio-2.0) - - GIO_LIBRARY=gio-2.0 - - if HAVE_GIO_UNIX --GIO_UNIX_INCLUDEDIR = $(shell "${PKG_CONFIG}" --variable=includedir gio-unix-2.0)/gio-unix-2.0 -+GIO_UNIX_INCLUDEDIR = $(PKG_CONFIG_SYSROOT_DIR)$(shell "${PKG_CONFIG}" --variable=includedir gio-unix-2.0)/gio-unix-2.0 - GIO_UNIX_HDRS = $(wildcard $(GIO_UNIX_INCLUDEDIR)/gio/*.h) - GIO_UNIX_PACKAGES = gio-unix-2.0 - else diff --git a/m4/introspection.m4 b/m4/introspection.m4 index d89c3d9..b562266 100644 --- a/m4/introspection.m4 diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-gnome/gobject-introspection/gobject-introspection_1.60.2.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-gnome/gobject-introspection/gobject-introspection_1.60.2.bb deleted file mode 100644 index f46053f4..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-gnome/gobject-introspection/gobject-introspection_1.60.2.bb +++ /dev/null @@ -1,206 +0,0 @@ -SUMMARY = "Middleware layer between GObject-using C libraries and language bindings" -HOMEPAGE = "https://wiki.gnome.org/action/show/Projects/GObjectIntrospection" -BUGTRACKER = "https://bugzilla.gnome.org/" -SECTION = "libs" -LICENSE = "LGPLv2+ & GPLv2+" -LIC_FILES_CHKSUM = "file://COPYING;md5=c434e8128a68bedd59b80b2ac1eb1c4a \ - file://tools/compiler.c;endline=20;md5=fc5007fc20022720e6c0b0cdde41fabd \ - file://giscanner/sourcescanner.c;endline=22;md5=194d6e0c1d00662f32d030ce44de8d39 \ - file://girepository/giregisteredtypeinfo.c;endline=21;md5=661847611ae6979465415f31a759ba27 \ - " - -SRC_URI = "${GNOME_MIRROR}/${BPN}/${@oe.utils.trim_version("${PV}", 2)}/${BPN}-${PV}.tar.xz \ - file://0001-Revert-an-incomplete-upstream-attempt-at-cross-compi.patch \ - file://0002-configure.ac-add-host-gi-gi-cross-wrapper-gi-ldd-wra.patch \ - file://0003-giscanner-add-use-binary-wrapper-option.patch \ - file://0004-giscanner-add-a-use-ldd-wrapper-option.patch \ - file://0005-Prefix-pkg-config-paths-with-PKG_CONFIG_SYSROOT_DIR-.patch \ - file://0001-giscanner-add-a-lib-dirs-envvar-option.patch \ - file://0001-giscanner-ignore-error-return-codes-from-ldd-wrapper.patch \ - file://0001-Port-cross-compilation-support-to-meson.patch \ - file://0001-meson.build-disable-tests-when-cross-compiling.patch \ - " - -SRC_URI[md5sum] = "57c1c5dcf3d0a9aa73d06c2d5e6960d7" -SRC_URI[sha256sum] = "ffdfe2368fb2e34a547898b01aac0520d52d8627fdeb1c306559bcb503ab5e9c" - -SRC_URI_append_class-native = " file://0001-Relocate-the-repository-directory-for-native-builds.patch" - -inherit meson pkgconfig gtk-doc python3native qemu gobject-introspection-data upstream-version-is-even multilib_script - -GTKDOC_MESON_OPTION = "gtk_doc" - -MULTILIB_SCRIPTS = "${PN}:${bindir}/g-ir-annotation-tool ${PN}:${bindir}/g-ir-scanner" - -DEPENDS_append = " libffi zlib glib-2.0 python3 flex-native bison-native autoconf-archive" - -# target build needs qemu to run temporary introspection binaries created -# on the fly by g-ir-scanner and a native version of itself to run -# native versions of its own tools during build. -# Also prelink-rtld is used to find out library dependencies of introspection binaries -# (standard ldd doesn't work when cross-compiling). -DEPENDS_class-target_append = " gobject-introspection-native qemu-native prelink-native" - -# needed for writing out the qemu wrapper script -export STAGING_DIR_HOST -export B - -PACKAGECONFIG ?= "" -PACKAGECONFIG[doctool] = "-Ddoctool=true,-Ddoctool=false,python3-mako," - -# Configure target build to use native tools of itself and to use a qemu wrapper -# and optionally to generate introspection data -EXTRA_OEMESON_class-target = " \ - -Denable-host-gi=true \ - -Denable-gi-cross-wrapper=${B}/g-ir-scanner-qemuwrapper \ - -Denable-gi-ldd-wrapper=${B}/g-ir-scanner-lddwrapper \ - -Dpkgconfig-sysroot-path=${PKG_CONFIG_SYSROOT_DIR} \ - ${@bb.utils.contains('GI_DATA_ENABLED', 'True', '-Denable-introspection-data=true', '-Denable-introspection-data=false', d)} \ - ${@'-Dgir_dir_prefix=${libdir}' if d.getVar('MULTILIBS') else ''} \ -" - -# Need to ensure ld.so.conf exists so prelink-native works -# both before we build and if we install from sstate -do_configure[prefuncs] += "gobject_introspection_preconfigure" -python gobject_introspection_preconfigure () { - oe.utils.write_ld_so_conf(d) -} - -do_configure_prepend_class-native() { - # Tweak the native python scripts so that they don't refer to the - # full path of native python binary (the solution is taken from glib-2.0 recipe) - # This removes the risk of exceeding Linux kernel's shebang line limit (128 bytes) - sed -i -e '1s,#!.*,#!${USRBINPATH}/env python3,' ${S}/tools/g-ir-tool-template.in -} - -do_configure_prepend_class-target() { - # Write out a qemu wrapper that will be given to gi-scanner so that it - # can run target helper binaries through that. - qemu_binary="${@qemu_wrapper_cmdline(d, '$STAGING_DIR_HOST', ['\\$GIR_EXTRA_LIBS_PATH','.libs','$STAGING_DIR_HOST/${libdir}','$STAGING_DIR_HOST/${base_libdir}'])}" - cat > ${B}/g-ir-scanner-qemuwrapper << EOF -#!/bin/sh -# Use a modules directory which doesn't exist so we don't load random things -# which may then get deleted (or their dependencies) and potentially segfault -export GIO_MODULE_DIR=${STAGING_LIBDIR}/gio/modules-dummy - -$qemu_binary "\$@" -if [ \$? -ne 0 ]; then - echo "If the above error message is about missing .so libraries, then setting up GIR_EXTRA_LIBS_PATH in the recipe should help." - echo "(typically like this: GIR_EXTRA_LIBS_PATH=\"$""{B}/something/.libs\" )" - exit 1 -fi -EOF - chmod +x ${B}/g-ir-scanner-qemuwrapper - - # Write out a wrapper for g-ir-scanner itself, which will be used when building introspection files - # for glib-based packages. This wrapper calls the native version of the scanner, and tells it to use - # a qemu wrapper for running transient target binaries produced by the scanner, and an include directory - # from the target sysroot. - cat > ${B}/g-ir-scanner-wrapper << EOF -#!/bin/sh -# This prevents g-ir-scanner from writing cache data to $HOME -export GI_SCANNER_DISABLE_CACHE=1 - -g-ir-scanner --lib-dirs-envvar=GIR_EXTRA_LIBS_PATH --use-binary-wrapper=${STAGING_BINDIR}/g-ir-scanner-qemuwrapper --use-ldd-wrapper=${STAGING_BINDIR}/g-ir-scanner-lddwrapper --add-include-path=${STAGING_DATADIR}/gir-1.0 --add-include-path=${STAGING_LIBDIR}/gir-1.0 "\$@" -EOF - chmod +x ${B}/g-ir-scanner-wrapper - - # Write out a wrapper for g-ir-compiler, which runs the target version of it through qemu. - # g-ir-compiler writes out the raw content of a C struct to disk, and therefore is architecture dependent. - cat > ${B}/g-ir-compiler-wrapper << EOF -#!/bin/sh -${STAGING_BINDIR}/g-ir-scanner-qemuwrapper ${STAGING_BINDIR}/g-ir-compiler "\$@" -EOF - chmod +x ${B}/g-ir-compiler-wrapper - - # Write out a wrapper to use instead of ldd, which does not work when a binary is built - # for a different architecture - cat > ${B}/g-ir-scanner-lddwrapper << EOF -#!/bin/sh -prelink-rtld --root=$STAGING_DIR_HOST "\$@" -EOF - chmod +x ${B}/g-ir-scanner-lddwrapper - - # Also tweak the target python scripts so that they don't refer to the - # native version of python binary (the solution is taken from glib-2.0 recipe) - sed -i -e '1s,#!.*,#!${USRBINPATH}/env python3,' ${S}/tools/g-ir-tool-template.in -} - -do_compile_prepend() { - # This prevents g-ir-scanner from writing cache data to $HOME - export GI_SCANNER_DISABLE_CACHE=1 - - # Needed to run g-ir unit tests, which won't be able to find the built libraries otherwise - export GIR_EXTRA_LIBS_PATH=$B/.libs -} - -# Our wrappers need to be available system-wide, because they will be used -# to build introspection files for all other gobject-based packages -do_install_append_class-target() { - install -d ${D}${bindir}/ - install ${B}/g-ir-scanner-qemuwrapper ${D}${bindir}/ - install ${B}/g-ir-scanner-wrapper ${D}${bindir}/ - install ${B}/g-ir-compiler-wrapper ${D}${bindir}/ - install ${B}/g-ir-scanner-lddwrapper ${D}${bindir}/ -} - -# we need target versions of introspection tools in sysroot so that they can be run via qemu -# when building introspection files in other packages -SYSROOT_DIRS_append_class-target = " ${bindir}" - -SYSROOT_PREPROCESS_FUNCS_append_class-target = " gi_binaries_sysroot_preprocess" -gi_binaries_sysroot_preprocess() { - # Tweak the binary names in the introspection pkgconfig file, so that it - # picks up our wrappers which do the cross-compile and qemu magic. - sed -i \ - -e "s|g_ir_scanner=.*|g_ir_scanner=${bindir}/g-ir-scanner-wrapper|" \ - -e "s|g_ir_compiler=.*|g_ir_compiler=${bindir}/g-ir-compiler-wrapper|" \ - ${SYSROOT_DESTDIR}${libdir}/pkgconfig/gobject-introspection-1.0.pc -} - -SYSROOT_PREPROCESS_FUNCS_append = " gi_ldsoconf_sysroot_preprocess" -gi_ldsoconf_sysroot_preprocess () { - mkdir -p ${SYSROOT_DESTDIR}${bindir} - dest=${SYSROOT_DESTDIR}${bindir}/postinst-ldsoconf-${PN} - echo "#!/bin/sh" > $dest - echo "mkdir -p ${STAGING_DIR_TARGET}${sysconfdir}" >> $dest - echo "echo ${base_libdir} >> ${STAGING_DIR_TARGET}${sysconfdir}/ld.so.conf" >> $dest - echo "echo ${libdir} >> ${STAGING_DIR_TARGET}${sysconfdir}/ld.so.conf" >> $dest - chmod 755 $dest -} - -# Remove wrapper files from the package, only used for cross-compiling -PACKAGE_PREPROCESS_FUNCS += "gi_package_preprocess" -gi_package_preprocess() { - rm -f ${PKGD}${bindir}/g-ir-scanner-qemuwrapper - rm -f ${PKGD}${bindir}/g-ir-scanner-wrapper - rm -f ${PKGD}${bindir}/g-ir-compiler-wrapper - rm -f ${PKGD}${bindir}/g-ir-scanner-lddwrapper -} - -SSTATE_SCAN_FILES += "g-ir-scanner-qemuwrapper g-ir-scanner-wrapper g-ir-compiler-wrapper g-ir-scanner-lddwrapper Gio-2.0.gir postinst-ldsoconf-${PN}" - -# .typelib files are needed at runtime and so they go to the main package -FILES_${PN}_append = " ${libdir}/girepository-*/*.typelib" - -# .gir files go to dev package, as they're needed for developing (but not for running) -# things that depends on introspection. -FILES_${PN}-dev_append = " ${datadir}/gir-*/*.gir ${libdir}/gir-*/*.gir" -FILES_${PN}-dev_append = " ${datadir}/gir-*/*.rnc" - -# These are used by gobject-based packages -# to generate transient introspection binaries -FILES_${PN}-dev_append = " ${datadir}/gobject-introspection-1.0/gdump.c \ - ${datadir}/gobject-introspection-1.0/Makefile.introspection" - -# These are used by dependent packages (e.g. pygobject) to build their -# testsuites. -FILES_${PN}-dev_append = " ${datadir}/gobject-introspection-1.0/tests/*.c \ - ${datadir}/gobject-introspection-1.0/tests/*.h" - -FILES_${PN}-dbg += "${libdir}/gobject-introspection/giscanner/.debug/" -FILES_${PN}-staticdev += "${libdir}/gobject-introspection/giscanner/*.a" - -RDEPENDS_${PN} = "python3-pickle python3-xml" - -BBCLASSEXTEND = "native" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-gnome/gobject-introspection/gobject-introspection_1.62.0.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-gnome/gobject-introspection/gobject-introspection_1.62.0.bb new file mode 100644 index 00000000..a9739cc5 --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-gnome/gobject-introspection/gobject-introspection_1.62.0.bb @@ -0,0 +1,208 @@ +SUMMARY = "Middleware layer between GObject-using C libraries and language bindings" +DESCRIPTION = "GObject Introspection is a project for providing machine \ +readable introspection data of the API of C libraries. This introspection \ +data can be used in several different use cases, for example automatic code \ +generation for bindings, API verification and documentation generation." +HOMEPAGE = "https://wiki.gnome.org/action/show/Projects/GObjectIntrospection" +BUGTRACKER = "https://gitlab.gnome.org/GNOME/gobject-introspection/issues" +SECTION = "libs" +LICENSE = "LGPLv2+ & GPLv2+" +LIC_FILES_CHKSUM = "file://COPYING;md5=c434e8128a68bedd59b80b2ac1eb1c4a \ + file://tools/compiler.c;endline=20;md5=fc5007fc20022720e6c0b0cdde41fabd \ + file://giscanner/sourcescanner.c;endline=22;md5=194d6e0c1d00662f32d030ce44de8d39 \ + file://girepository/giregisteredtypeinfo.c;endline=21;md5=661847611ae6979465415f31a759ba27 \ + " + +SRC_URI = "${GNOME_MIRROR}/${BPN}/${@oe.utils.trim_version("${PV}", 2)}/${BPN}-${PV}.tar.xz \ + file://0003-giscanner-add-use-binary-wrapper-option.patch \ + file://0004-giscanner-add-a-use-ldd-wrapper-option.patch \ + file://0005-Prefix-pkg-config-paths-with-PKG_CONFIG_SYSROOT_DIR-.patch \ + file://0001-giscanner-add-a-lib-dirs-envvar-option.patch \ + file://0001-giscanner-ignore-error-return-codes-from-ldd-wrapper.patch \ + file://0001-Port-cross-compilation-support-to-meson.patch \ + file://0001-meson.build-disable-tests-when-cross-compiling.patch \ + " + +SRC_URI[md5sum] = "37278eab3704e42234b6080b8cf241f1" +SRC_URI[sha256sum] = "b1ee7ed257fdbc008702bdff0ff3e78a660e7e602efa8f211dc89b9d1e7d90a2" + +SRC_URI_append_class-native = " file://0001-Relocate-the-repository-directory-for-native-builds.patch" + +inherit meson pkgconfig gtk-doc python3native qemu gobject-introspection-data upstream-version-is-even multilib_script + +GTKDOC_MESON_OPTION = "gtk_doc" + +MULTILIB_SCRIPTS = "${PN}:${bindir}/g-ir-annotation-tool ${PN}:${bindir}/g-ir-scanner" + +DEPENDS_append = " libffi zlib glib-2.0 python3 flex-native bison-native autoconf-archive" + +# target build needs qemu to run temporary introspection binaries created +# on the fly by g-ir-scanner and a native version of itself to run +# native versions of its own tools during build. +# Also prelink-rtld is used to find out library dependencies of introspection binaries +# (standard ldd doesn't work when cross-compiling). +DEPENDS_class-target_append = " gobject-introspection-native qemu-native prelink-native" + +# needed for writing out the qemu wrapper script +export STAGING_DIR_HOST +export B + +PACKAGECONFIG ?= "" +PACKAGECONFIG[doctool] = "-Ddoctool=true,-Ddoctool=false,python3-mako," + +# Configure target build to use native tools of itself and to use a qemu wrapper +# and optionally to generate introspection data +EXTRA_OEMESON_class-target = " \ + -Denable-host-gi=true \ + -Denable-gi-cross-wrapper=${B}/g-ir-scanner-qemuwrapper \ + -Denable-gi-ldd-wrapper=${B}/g-ir-scanner-lddwrapper \ + -Dpkgconfig-sysroot-path=${PKG_CONFIG_SYSROOT_DIR} \ + ${@bb.utils.contains('GI_DATA_ENABLED', 'True', '-Denable-introspection-data=true', '-Denable-introspection-data=false', d)} \ + ${@'-Dgir_dir_prefix=${libdir}' if d.getVar('MULTILIBS') else ''} \ +" + +# Need to ensure ld.so.conf exists so prelink-native works +# both before we build and if we install from sstate +do_configure[prefuncs] += "gobject_introspection_preconfigure" +python gobject_introspection_preconfigure () { + oe.utils.write_ld_so_conf(d) +} + +do_configure_prepend_class-native() { + # Tweak the native python scripts so that they don't refer to the + # full path of native python binary (the solution is taken from glib-2.0 recipe) + # This removes the risk of exceeding Linux kernel's shebang line limit (128 bytes) + sed -i -e '1s,#!.*,#!${USRBINPATH}/env python3,' ${S}/tools/g-ir-tool-template.in +} + +do_configure_prepend_class-target() { + # Write out a qemu wrapper that will be given to gi-scanner so that it + # can run target helper binaries through that. + qemu_binary="${@qemu_wrapper_cmdline(d, '$STAGING_DIR_HOST', ['\\$GIR_EXTRA_LIBS_PATH','.libs','$STAGING_DIR_HOST/${libdir}','$STAGING_DIR_HOST/${base_libdir}'])}" + cat > ${B}/g-ir-scanner-qemuwrapper << EOF +#!/bin/sh +# Use a modules directory which doesn't exist so we don't load random things +# which may then get deleted (or their dependencies) and potentially segfault +export GIO_MODULE_DIR=${STAGING_LIBDIR}/gio/modules-dummy + +$qemu_binary "\$@" +if [ \$? -ne 0 ]; then + echo "If the above error message is about missing .so libraries, then setting up GIR_EXTRA_LIBS_PATH in the recipe should help." + echo "(typically like this: GIR_EXTRA_LIBS_PATH=\"$""{B}/something/.libs\" )" + exit 1 +fi +EOF + chmod +x ${B}/g-ir-scanner-qemuwrapper + + # Write out a wrapper for g-ir-scanner itself, which will be used when building introspection files + # for glib-based packages. This wrapper calls the native version of the scanner, and tells it to use + # a qemu wrapper for running transient target binaries produced by the scanner, and an include directory + # from the target sysroot. + cat > ${B}/g-ir-scanner-wrapper << EOF +#!/bin/sh +# This prevents g-ir-scanner from writing cache data to $HOME +export GI_SCANNER_DISABLE_CACHE=1 + +g-ir-scanner --lib-dirs-envvar=GIR_EXTRA_LIBS_PATH --use-binary-wrapper=${STAGING_BINDIR}/g-ir-scanner-qemuwrapper --use-ldd-wrapper=${STAGING_BINDIR}/g-ir-scanner-lddwrapper --add-include-path=${STAGING_DATADIR}/gir-1.0 --add-include-path=${STAGING_LIBDIR}/gir-1.0 "\$@" +EOF + chmod +x ${B}/g-ir-scanner-wrapper + + # Write out a wrapper for g-ir-compiler, which runs the target version of it through qemu. + # g-ir-compiler writes out the raw content of a C struct to disk, and therefore is architecture dependent. + cat > ${B}/g-ir-compiler-wrapper << EOF +#!/bin/sh +${STAGING_BINDIR}/g-ir-scanner-qemuwrapper ${STAGING_BINDIR}/g-ir-compiler "\$@" +EOF + chmod +x ${B}/g-ir-compiler-wrapper + + # Write out a wrapper to use instead of ldd, which does not work when a binary is built + # for a different architecture + cat > ${B}/g-ir-scanner-lddwrapper << EOF +#!/bin/sh +prelink-rtld --root=$STAGING_DIR_HOST "\$@" +EOF + chmod +x ${B}/g-ir-scanner-lddwrapper + + # Also tweak the target python scripts so that they don't refer to the + # native version of python binary (the solution is taken from glib-2.0 recipe) + sed -i -e '1s,#!.*,#!${USRBINPATH}/env python3,' ${S}/tools/g-ir-tool-template.in +} + +do_compile_prepend() { + # This prevents g-ir-scanner from writing cache data to $HOME + export GI_SCANNER_DISABLE_CACHE=1 + + # Needed to run g-ir unit tests, which won't be able to find the built libraries otherwise + export GIR_EXTRA_LIBS_PATH=$B/.libs +} + +# Our wrappers need to be available system-wide, because they will be used +# to build introspection files for all other gobject-based packages +do_install_append_class-target() { + install -d ${D}${bindir}/ + install ${B}/g-ir-scanner-qemuwrapper ${D}${bindir}/ + install ${B}/g-ir-scanner-wrapper ${D}${bindir}/ + install ${B}/g-ir-compiler-wrapper ${D}${bindir}/ + install ${B}/g-ir-scanner-lddwrapper ${D}${bindir}/ +} + +# we need target versions of introspection tools in sysroot so that they can be run via qemu +# when building introspection files in other packages +SYSROOT_DIRS_append_class-target = " ${bindir}" + +SYSROOT_PREPROCESS_FUNCS_append_class-target = " gi_binaries_sysroot_preprocess" +gi_binaries_sysroot_preprocess() { + # Tweak the binary names in the introspection pkgconfig file, so that it + # picks up our wrappers which do the cross-compile and qemu magic. + sed -i \ + -e "s|g_ir_scanner=.*|g_ir_scanner=${bindir}/g-ir-scanner-wrapper|" \ + -e "s|g_ir_compiler=.*|g_ir_compiler=${bindir}/g-ir-compiler-wrapper|" \ + ${SYSROOT_DESTDIR}${libdir}/pkgconfig/gobject-introspection-1.0.pc +} + +SYSROOT_PREPROCESS_FUNCS_append = " gi_ldsoconf_sysroot_preprocess" +gi_ldsoconf_sysroot_preprocess () { + mkdir -p ${SYSROOT_DESTDIR}${bindir} + dest=${SYSROOT_DESTDIR}${bindir}/postinst-ldsoconf-${PN} + echo "#!/bin/sh" > $dest + echo "mkdir -p ${STAGING_DIR_TARGET}${sysconfdir}" >> $dest + echo "echo ${base_libdir} >> ${STAGING_DIR_TARGET}${sysconfdir}/ld.so.conf" >> $dest + echo "echo ${libdir} >> ${STAGING_DIR_TARGET}${sysconfdir}/ld.so.conf" >> $dest + chmod 755 $dest +} + +# Remove wrapper files from the package, only used for cross-compiling +PACKAGE_PREPROCESS_FUNCS += "gi_package_preprocess" +gi_package_preprocess() { + rm -f ${PKGD}${bindir}/g-ir-scanner-qemuwrapper + rm -f ${PKGD}${bindir}/g-ir-scanner-wrapper + rm -f ${PKGD}${bindir}/g-ir-compiler-wrapper + rm -f ${PKGD}${bindir}/g-ir-scanner-lddwrapper +} + +SSTATE_SCAN_FILES += "g-ir-scanner-qemuwrapper g-ir-scanner-wrapper g-ir-compiler-wrapper g-ir-scanner-lddwrapper Gio-2.0.gir postinst-ldsoconf-${PN}" + +# .typelib files are needed at runtime and so they go to the main package +FILES_${PN}_append = " ${libdir}/girepository-*/*.typelib" + +# .gir files go to dev package, as they're needed for developing (but not for running) +# things that depends on introspection. +FILES_${PN}-dev_append = " ${datadir}/gir-*/*.gir ${libdir}/gir-*/*.gir" +FILES_${PN}-dev_append = " ${datadir}/gir-*/*.rnc" + +# These are used by gobject-based packages +# to generate transient introspection binaries +FILES_${PN}-dev_append = " ${datadir}/gobject-introspection-1.0/gdump.c \ + ${datadir}/gobject-introspection-1.0/Makefile.introspection" + +# These are used by dependent packages (e.g. pygobject) to build their +# testsuites. +FILES_${PN}-dev_append = " ${datadir}/gobject-introspection-1.0/tests/*.c \ + ${datadir}/gobject-introspection-1.0/tests/*.h" + +FILES_${PN}-dbg += "${libdir}/gobject-introspection/giscanner/.debug/" +FILES_${PN}-staticdev += "${libdir}/gobject-introspection/giscanner/*.a" + +RDEPENDS_${PN} = "python3-pickle python3-xml" + +BBCLASSEXTEND = "native" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-gnome/gsettings-desktop-schemas/gsettings-desktop-schemas_3.32.0.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-gnome/gsettings-desktop-schemas/gsettings-desktop-schemas_3.32.0.bb deleted file mode 100644 index 859f7046..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-gnome/gsettings-desktop-schemas/gsettings-desktop-schemas_3.32.0.bb +++ /dev/null @@ -1,16 +0,0 @@ -SUMMARY = "GNOME desktop-wide GSettings schemas" -HOMEPAGE = "http://live.gnome.org/gsettings-desktop-schemas" -BUGTRACKER = "https://bugzilla.gnome.org/" - -LICENSE = "LGPLv2.1" -LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c" - -DEPENDS = "glib-2.0" - -GNOMEBASEBUILDCLASS = "meson" - -inherit gnomebase gsettings gobject-introspection gettext upstream-version-is-even - -SRC_URI[archive.md5sum] = "0c2d468a482c12594757442c983aa8ea" -SRC_URI[archive.sha256sum] = "2d59b4b3a548859dfae46314ee4666787a00d5c82db382e97df7aa9d0e310a35" -SRC_URI += "file://0001-Do-not-skip-gir-installation-for-cross-compiling.patch" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-gnome/gsettings-desktop-schemas/gsettings-desktop-schemas_3.34.0.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-gnome/gsettings-desktop-schemas/gsettings-desktop-schemas_3.34.0.bb new file mode 100644 index 00000000..eea578bb --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-gnome/gsettings-desktop-schemas/gsettings-desktop-schemas_3.34.0.bb @@ -0,0 +1,18 @@ +SUMMARY = "GNOME desktop-wide GSettings schemas" +DESCRIPTION = "GSettings desktop-wide schemas contains a collection of \ +GSettings schemas for settings shared by various components of a desktop." +HOMEPAGE = "https://gitlab.gnome.org/GNOME/gsettings-desktop-schemas" +BUGTRACKER = "https://gitlab.gnome.org/GNOME/gsettings-desktop-schemas/issues" + +LICENSE = "LGPLv2.1" +LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c" + +DEPENDS = "glib-2.0" + +GNOMEBASEBUILDCLASS = "meson" + +inherit gnomebase gsettings gobject-introspection gettext upstream-version-is-even + +SRC_URI[archive.md5sum] = "9759ef53fb2e53fc8d19190e58f2c332" +SRC_URI[archive.sha256sum] = "288b04260f7040b0e004a8d59c773cfb4e32df4f1b4a0f9d705c51afccc95ead" +SRC_URI += "file://0001-Do-not-skip-gir-installation-for-cross-compiling.patch" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-gnome/gtk+/gtk+3.inc b/Contrib-Inspur/openbmc/poky/meta/recipes-gnome/gtk+/gtk+3.inc index 77b6c315..e1f1e0db 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-gnome/gtk+/gtk+3.inc +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-gnome/gtk+/gtk+3.inc @@ -10,7 +10,7 @@ DEPENDS = "glib-2.0 cairo pango atk jpeg libpng gdk-pixbuf \ LICENSE = "LGPLv2 & LGPLv2+ & LGPLv2.1+" -inherit autotools gettext pkgconfig gtk-doc update-alternatives gtk-immodules-cache gsettings distro_features_check gobject-introspection +inherit autotools gettext pkgconfig gtk-doc update-alternatives gtk-immodules-cache gsettings features_check gobject-introspection BBCLASSEXTEND = "native nativesdk" @@ -52,7 +52,7 @@ PACKAGECONFIG[x11] = "--enable-x11-backend,--disable-x11-backend,at-spi2-atk fon # this is provided by oe-core patch that removes epoxy/gl dependency from a X11 build PACKAGECONFIG[opengl] = "--enable-opengl,--disable-opengl,libepoxy" PACKAGECONFIG[glx] = "--enable-glx,--disable-glx,,libgl" -PACKAGECONFIG[wayland] = "--enable-wayland-backend,--disable-wayland-backend,wayland wayland-protocols libxkbcommon virtual/mesa wayland-native" +PACKAGECONFIG[wayland] = "--enable-wayland-backend,--disable-wayland-backend,wayland wayland-protocols libxkbcommon virtual/egl virtual/libgles2 wayland-native" PACKAGECONFIG[cups] = "--enable-cups,--disable-cups,cups" prepare_gtk_scripts() { diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-gnome/gtk-doc/files/pkg-config-native.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-gnome/gtk-doc/files/pkg-config-native.patch index 3e973a16..5ca4e3e0 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-gnome/gtk-doc/files/pkg-config-native.patch +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-gnome/gtk-doc/files/pkg-config-native.patch @@ -1,4 +1,4 @@ -From a3f69f2ed45efbdaee47c2dde4df3d78323300e5 Mon Sep 17 00:00:00 2001 +From 657310f3842c84d28f6b77e8ad4d9b93472ca5da Mon Sep 17 00:00:00 2001 From: Ross Burton Date: Mon, 5 Sep 2016 22:25:44 +0100 Subject: [PATCH] Use native pkg-config when looking for gtk-doc. diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-gnome/gtk-doc/gtk-doc_1.30.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-gnome/gtk-doc/gtk-doc_1.30.bb deleted file mode 100644 index f16847e4..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-gnome/gtk-doc/gtk-doc_1.30.bb +++ /dev/null @@ -1,50 +0,0 @@ -SUMMARY = "Documentation generator for glib-based software" -DESCRIPTION = "Gtk-doc is a set of scripts that extract specially formatted comments \ - from glib-based software and produce a set of html documentation files from them" -HOMEPAGE = "http://www.gtk.org/gtk-doc/" -LICENSE = "GPLv2" -LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f" - -inherit gnomebase - -# Configure the scripts correctly (and build their dependencies) only if they are actually -# going to be used; otheriwse we need only the m4/makefile includes from the gtk-doc tarball. -PACKAGECONFIG ??= "${@bb.utils.contains("DISTRO_FEATURES", "api-documentation", "working-scripts", "", d)}" - -# This will cause target gtk-doc to hardcode paths of native dependencies -# into its scripts. This means that target gtk-doc package is broken; -# hopefully no one minds because its scripts are not used for anything during build -# and shouldn't be used on targets. -PACKAGECONFIG[working-scripts] = ",,libxslt-native xmlto-native python3-six python3-pygments" -PACKAGECONFIG[tests] = "--enable-tests,--disable-tests,glib-2.0" - -SRC_URI[archive.md5sum] = "1045ba29ca0693ced2045523407aae4c" -SRC_URI[archive.sha256sum] = "a4f6448eb838ccd30d76a33b1fd095f81aea361f03b12c7b23df181d21b7069e" -SRC_URI += "file://0001-Do-not-hardocode-paths-to-perl-python-in-scripts.patch \ - file://0001-Do-not-error-out-if-xsltproc-is-not-found.patch \ - file://conditionaltests.patch \ - file://no-clobber.patch \ - " -SRC_URI_append_class-native = " file://pkg-config-native.patch" - -BBCLASSEXTEND = "native nativesdk" - -# Do not check for XML catalogs when building because that -# information is not used for anything during build. Recipe -# dependencies make sure we have all the right bits. -do_configure_prepend() { - sed -i -e 's,^JH_CHECK_XML_CATALOG.*,,' ${S}/configure.ac -} - -FILES_${PN} += "${datadir}/sgml" -FILES_${PN}-dev += "${libdir}/cmake" -FILES_${PN}-doc = "" - -SYSROOT_PREPROCESS_FUNCS_append_class-native = " gtkdoc_makefiles_sysroot_preprocess" -gtkdoc_makefiles_sysroot_preprocess() { - # Patch the gtk-doc makefiles so that the qemu wrapper is used to run transient binaries - # instead of libtool wrapper or running them directly - sed -i \ - -e "s|GTKDOC_RUN =.*|GTKDOC_RUN = \$(top_builddir)/gtkdoc-qemuwrapper|" \ - ${SYSROOT_DESTDIR}${datadir}/gtk-doc/data/gtk-doc*make -} diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-gnome/gtk-doc/gtk-doc_1.32.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-gnome/gtk-doc/gtk-doc_1.32.bb new file mode 100644 index 00000000..50d4d997 --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-gnome/gtk-doc/gtk-doc_1.32.bb @@ -0,0 +1,50 @@ +SUMMARY = "Documentation generator for glib-based software" +DESCRIPTION = "Gtk-doc is a set of scripts that extract specially formatted comments \ + from glib-based software and produce a set of html documentation files from them" +HOMEPAGE = "http://www.gtk.org/gtk-doc/" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f" + +inherit gnomebase + +# Configure the scripts correctly (and build their dependencies) only if they are actually +# going to be used; otheriwse we need only the m4/makefile includes from the gtk-doc tarball. +PACKAGECONFIG ??= "${@bb.utils.contains("DISTRO_FEATURES", "api-documentation", "working-scripts", "", d)}" + +# This will cause target gtk-doc to hardcode paths of native dependencies +# into its scripts. This means that target gtk-doc package is broken; +# hopefully no one minds because its scripts are not used for anything during build +# and shouldn't be used on targets. +PACKAGECONFIG[working-scripts] = ",,libxslt-native xmlto-native python3-six python3-pygments" +PACKAGECONFIG[tests] = "--enable-tests,--disable-tests,glib-2.0" + +SRC_URI[archive.md5sum] = "07764836262e154e94922e5f2aa476ae" +SRC_URI[archive.sha256sum] = "de0ef034fb17cb21ab0c635ec730d19746bce52984a6706e7bbec6fb5e0b907c" +SRC_URI += "file://0001-Do-not-hardocode-paths-to-perl-python-in-scripts.patch \ + file://0001-Do-not-error-out-if-xsltproc-is-not-found.patch \ + file://conditionaltests.patch \ + file://no-clobber.patch \ + " +SRC_URI_append_class-native = " file://pkg-config-native.patch" + +BBCLASSEXTEND = "native nativesdk" + +# Do not check for XML catalogs when building because that +# information is not used for anything during build. Recipe +# dependencies make sure we have all the right bits. +do_configure_prepend() { + sed -i -e 's,^JH_CHECK_XML_CATALOG.*,,' ${S}/configure.ac +} + +FILES_${PN} += "${datadir}/sgml" +FILES_${PN}-dev += "${libdir}/cmake" +FILES_${PN}-doc = "" + +SYSROOT_PREPROCESS_FUNCS_append_class-native = " gtkdoc_makefiles_sysroot_preprocess" +gtkdoc_makefiles_sysroot_preprocess() { + # Patch the gtk-doc makefiles so that the qemu wrapper is used to run transient binaries + # instead of libtool wrapper or running them directly + sed -i \ + -e "s|GTKDOC_RUN =.*|GTKDOC_RUN = \$(top_builddir)/gtkdoc-qemuwrapper|" \ + ${SYSROOT_DESTDIR}${datadir}/gtk-doc/data/gtk-doc*make +} diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-gnome/hicolor-icon-theme/hicolor-icon-theme_0.17.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-gnome/hicolor-icon-theme/hicolor-icon-theme_0.17.bb index fb803344..aad7eff2 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-gnome/hicolor-icon-theme/hicolor-icon-theme_0.17.bb +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-gnome/hicolor-icon-theme/hicolor-icon-theme_0.17.bb @@ -1,5 +1,7 @@ SUMMARY = "Default icon theme that all icon themes automatically inherit from" -HOMEPAGE = "http://icon-theme.freedesktop.org/wiki/HicolorTheme" +DESCRIPTION = "The hicolor-icon-theme package contains a default fallback \ +theme for implementations of the icon theme specification." +HOMEPAGE = "https://www.freedesktop.org/wiki/Software/icon-theme" BUGTRACKER = "https://bugs.freedesktop.org/" LICENSE = "GPLv2" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-gnome/json-glib/json-glib_1.4.4.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-gnome/json-glib/json-glib_1.4.4.bb index 1c663f93..5143d73e 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-gnome/json-glib/json-glib_1.4.4.bb +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-gnome/json-glib/json-glib_1.4.4.bb @@ -3,7 +3,8 @@ DESCRIPTION = "Use JSON-GLib it is possible to parse and generate valid JSON\ data structures, using a DOM-like API. JSON-GLib also offers GObject \ integration, providing the ability to serialize and deserialize GObject \ instances to and from JSON data types." -HOMEPAGE = "http://live.gnome.org/JsonGlib" +HOMEPAGE = "https://wiki.gnome.org/Projects/JsonGlib" +BUGTRACKER = "https://gitlab.gnome.org/GNOME/json-glib/issues" LICENSE = "LGPLv2.1" LIC_FILES_CHKSUM = "file://COPYING;md5=7fbc338309ac38fefcd64b04bb903e34" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-gnome/libdazzle/libdazzle_3.32.2.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-gnome/libdazzle/libdazzle_3.32.2.bb deleted file mode 100644 index 58e78a5b..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-gnome/libdazzle/libdazzle_3.32.2.bb +++ /dev/null @@ -1,15 +0,0 @@ -SUMMARY = "The libdazzle library is a companion library to GObject and Gtk+." -LICENSE = "GPLv3+" -LIC_FILES_CHKSUM = "file://COPYING;md5=8f0e2cd40e05189ec81232da84bd6e1a" - -GNOMEBASEBUILDCLASS = "meson" -inherit gnomebase upstream-version-is-even vala distro_features_check gobject-introspection - -DEPENDS = "glib-2.0-native glib-2.0 gtk+3" - -SRC_URI[archive.md5sum] = "b5c99a8f483a0defe7c7124a3220e412" -SRC_URI[archive.sha256sum] = "413f8dfb8706760e0c649e2994bd10524ac0736601dd03ad2036293bed3bf141" - -GIR_MESON_OPTION = 'with_introspection' - -ANY_OF_DISTRO_FEATURES = "${GTK3DISTROFEATURES}" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-gnome/libdazzle/libdazzle_3.34.1.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-gnome/libdazzle/libdazzle_3.34.1.bb new file mode 100644 index 00000000..1c8b2c86 --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-gnome/libdazzle/libdazzle_3.34.1.bb @@ -0,0 +1,20 @@ +SUMMARY = "The libdazzle library is a companion library to GObject and Gtk+." +DESCRIPTION = "A wide range of components from utilities for GIO, widgets for \ +GTK+, an animation framework, state machines, paneling and high-performance \ +counters are included." +LICENSE = "GPLv3+" +HOMEPAGE = "https://gitlab.gnome.org/GNOME/libdazzle" +BUGTRACKER = "https://gitlab.gnome.org/GNOME/libdazzle/issues" +LIC_FILES_CHKSUM = "file://COPYING;md5=8f0e2cd40e05189ec81232da84bd6e1a" + +GNOMEBASEBUILDCLASS = "meson" +inherit gnomebase upstream-version-is-even vala features_check gobject-introspection + +DEPENDS = "glib-2.0-native glib-2.0 gtk+3" + +SRC_URI[archive.md5sum] = "e796a92dd3f529616ed388c15208359b" +SRC_URI[archive.sha256sum] = "3d981cbb9d9bb87bfaff7bfd44d9847223b3ef81e69225e4d1f6ac725a669505" + +GIR_MESON_OPTION = 'with_introspection' + +ANY_OF_DISTRO_FEATURES = "${GTK3DISTROFEATURES}" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-gnome/libgudev/libgudev_232.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-gnome/libgudev/libgudev_232.bb deleted file mode 100644 index 19fe962e..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-gnome/libgudev/libgudev_232.bb +++ /dev/null @@ -1,18 +0,0 @@ -SUMMARY = "GObject wrapper for libudev" -HOMEPAGE = "https://wiki.gnome.org/Projects/libgudev" -SRC_URI[archive.sha256sum] = "ee4cb2b9c573cdf354f6ed744f01b111d4b5bed3503ffa956cefff50489c7860" -SRC_URI[archive.md5sum] = "6914852377156665567abf8a38d89236" - -DEPENDS = "glib-2.0 udev" - -EXTRA_OECONF = "--disable-umockdev" - -RCONFLICTS_${PN} = "systemd (<= 220)" - -LICENSE = "LGPLv2.1" -LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c" - -inherit gnomebase gobject-introspection gtk-doc - -UPSTREAM_CHECK_URI = "http://ftp.gnome.org/pub/GNOME/sources/libgudev/" -UPSTREAM_CHECK_REGEX = "(?P(\d+))" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-gnome/libgudev/libgudev_233.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-gnome/libgudev/libgudev_233.bb new file mode 100644 index 00000000..8bc379ff --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-gnome/libgudev/libgudev_233.bb @@ -0,0 +1,23 @@ +SUMMARY = "GObject wrapper for libudev" +DESCRIPTION = "This library makes it much simpler to use libudev from programs \ +already using GObject. It also makes it possible to easily use libudev from \ +other programming languages, such as Javascript, because of GObject \ +introspection support." +HOMEPAGE = "https://wiki.gnome.org/Projects/libgudev" +BUGTRACKER = "https://gitlab.gnome.org/GNOME/libgudev/issues" +SRC_URI[archive.sha256sum] = "587c4970eb23f4e2deee2cb1fb7838c94a78c578f41ce12cac0a3f4a80dabb03" +SRC_URI[archive.md5sum] = "d59a317a40aaa02a2226056c0bb4d3e1" + +DEPENDS = "glib-2.0 udev" + +EXTRA_OECONF = "--disable-umockdev" + +RCONFLICTS_${PN} = "systemd (<= 220)" + +LICENSE = "LGPLv2.1" +LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c" + +inherit gnomebase gobject-introspection gtk-doc + +UPSTREAM_CHECK_URI = "http://ftp.gnome.org/pub/GNOME/sources/libgudev/" +UPSTREAM_CHECK_REGEX = "(?P(\d+))" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-gnome/libnotify/libnotify_0.7.8.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-gnome/libnotify/libnotify_0.7.8.bb index 82c137ca..0306b04f 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-gnome/libnotify/libnotify_0.7.8.bb +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-gnome/libnotify/libnotify_0.7.8.bb @@ -1,12 +1,13 @@ SUMMARY = "Library for sending desktop notifications to a notification daemon" -HOMEPAGE = "http://www.gnome.org" +HOMEPAGE = "https://gitlab.gnome.org/GNOME/libnotify" +BUGTRACKER = "https://gitlab.gnome.org/GNOME/libnotify/issues" SECTION = "libs" LICENSE = "LGPLv2.1" LIC_FILES_CHKSUM = "file://COPYING;md5=7fbc338309ac38fefcd64b04bb903e34" -DEPENDS = "dbus gtk+3 dbus-glib" +DEPENDS = "dbus gtk+3 glib-2.0" -inherit gnomebase gtk-doc distro_features_check gobject-introspection +inherit gnomebase gtk-doc features_check gobject-introspection # depends on gtk+3 ANY_OF_DISTRO_FEATURES = "${GTK3DISTROFEATURES}" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-gnome/librsvg/librsvg_2.40.20.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-gnome/librsvg/librsvg_2.40.20.bb index 6a798e6a..7f98127f 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-gnome/librsvg/librsvg_2.40.20.bb +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-gnome/librsvg/librsvg_2.40.20.bb @@ -1,6 +1,10 @@ SUMMARY = "Library for rendering SVG files" -HOMEPAGE = "http://ftp.gnome.org/pub/GNOME/sources/librsvg/" -BUGTRACKER = "https://bugzilla.gnome.org/" +DESCRIPTION = "A small library to render Scalable Vector Graphics (SVG), \ +associated with the GNOME Project. It renders SVG files to Cairo surfaces. \ +Cairo is the 2D, antialiased drawing library that GNOME uses to draw things to \ +the screen or to generate output for printing." +HOMEPAGE = "https://gitlab.gnome.org/GNOME/librsvg" +BUGTRACKER = "https://gitlab.gnome.org/GNOME/librsvg/issues" RECIPE_NO_UPDATE_REASON = "Versions from 2.41.0 requires Rust compiler to build it" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-gnome/libsecret/libsecret_0.18.8.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-gnome/libsecret/libsecret_0.18.8.bb deleted file mode 100644 index 4af47fed..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-gnome/libsecret/libsecret_0.18.8.bb +++ /dev/null @@ -1,22 +0,0 @@ -SUMMARY = "libsecret is a library for storing and retrieving passwords and other secrets" -LICENSE = "LGPLv2.1" -LIC_FILES_CHKSUM = "file://COPYING;md5=23c2a5e0106b99d75238986559bb5fc6" - -inherit gnomebase gtk-doc vala gobject-introspection manpages - -DEPENDS += "glib-2.0 libgcrypt gettext-native" - -PACKAGECONFIG[manpages] = "--enable-manpages, --disable-manpages, libxslt-native xmlto-native" - -SRC_URI[archive.md5sum] = "fee403988442f497f3c1dfe7b128869c" -SRC_URI[archive.sha256sum] = "3bfa889d260e0dbabcf5b9967f2aae12edcd2ddc9adc365de7a5cc840c311d15" - -# http://errors.yoctoproject.org/Errors/Details/20228/ -ARM_INSTRUCTION_SET_armv4 = "arm" -ARM_INSTRUCTION_SET_armv5 = "arm" -ARM_INSTRUCTION_SET_armv6 = "arm" - -# vapigen.m4 bundled with the tarball does not yet have our cross-compilation fixes -do_configure_prepend() { - rm -f ${S}/build/m4/vapigen.m4 -} diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-gnome/libsecret/libsecret_0.19.1.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-gnome/libsecret/libsecret_0.19.1.bb new file mode 100644 index 00000000..3da2a4ac --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-gnome/libsecret/libsecret_0.19.1.bb @@ -0,0 +1,27 @@ +SUMMARY = "libsecret is a library for storing and retrieving passwords and other secrets" +DESCRIPTION = "A GObject-based library for accessing the Secret Service API of \ +the freedesktop.org project, a cross-desktop effort to access passwords, \ +tokens and other types of secrets. libsecret provides a convenient wrapper \ +for these methods so consumers do not have to call the low-level DBus methods." +LICENSE = "LGPLv2.1" +BUGTRACKER = "https://gitlab.gnome.org/GNOME/libsecret/issues" +LIC_FILES_CHKSUM = "file://COPYING;md5=23c2a5e0106b99d75238986559bb5fc6" + +inherit gnomebase gtk-doc vala gobject-introspection manpages + +DEPENDS += "glib-2.0 libgcrypt gettext-native" + +PACKAGECONFIG[manpages] = "--enable-manpages, --disable-manpages, libxslt-native xmlto-native" + +SRC_URI[archive.md5sum] = "ea673119c00570d6434f8fd3636f1eb8" +SRC_URI[archive.sha256sum] = "8583e10179456ae2c83075d95455f156dc08db6278b32bf4bd61819335a30e3a" + +# http://errors.yoctoproject.org/Errors/Details/20228/ +ARM_INSTRUCTION_SET_armv4 = "arm" +ARM_INSTRUCTION_SET_armv5 = "arm" +ARM_INSTRUCTION_SET_armv6 = "arm" + +# vapigen.m4 bundled with the tarball does not yet have our cross-compilation fixes +do_configure_prepend() { + rm -f ${S}/build/m4/vapigen.m4 +} diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/cairo/cairo_1.16.0.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/cairo/cairo_1.16.0.bb index f32e9ba1..e3de3f61 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/cairo/cairo_1.16.0.bb +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/cairo/cairo_1.16.0.bb @@ -10,12 +10,12 @@ HOMEPAGE = "http://cairographics.org" BUGTRACKER = "http://bugs.freedesktop.org" SECTION = "libs" -LICENSE = "MPL-1.1 & LGPLv2.1 & GPLv3+" -LICENSE_${PN} = "MPL-1.1 & LGPLv2.1" -LICENSE_${PN}-dev = "MPL-1.1 & LGPLv2.1" -LICENSE_${PN}-doc = "MPL-1.1 & LGPLv2.1" -LICENSE_${PN}-gobject = "MPL-1.1 & LGPLv2.1" -LICENSE_${PN}-script-interpreter = "MPL-1.1 & LGPLv2.1" +LICENSE = "(MPL-1.1 | LGPLv2.1) & GPLv3+" +LICENSE_${PN} = "MPL-1.1 | LGPLv2.1" +LICENSE_${PN}-dev = "MPL-1.1 | LGPLv2.1" +LICENSE_${PN}-doc = "MPL-1.1 | LGPLv2.1" +LICENSE_${PN}-gobject = "MPL-1.1 | LGPLv2.1" +LICENSE_${PN}-script-interpreter = "MPL-1.1 | LGPLv2.1" LICENSE_${PN}-perf-utils = "GPLv3+" LIC_FILES_CHKSUM = "file://COPYING;md5=e73e999e0c72b5ac9012424fa157ad77" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/clutter/clutter-1.0.inc b/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/clutter/clutter-1.0.inc index 6dbbf4d8..5dc45ebf 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/clutter/clutter-1.0.inc +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/clutter/clutter-1.0.inc @@ -1,8 +1,11 @@ SUMMARY = "Graphics library for creating hardware-accelerated user interfaces" +DESCRIPTION = "Clutter is an Open GL based interactive canvas library, \ +designed for creating fast, mainly 2D single window applications such as media \ +box UIs, presentations, kiosk style applications and so on." HOMEPAGE = "http://www.clutter-project.org/" LICENSE = "LGPLv2.1+" -inherit clutter ptest-gnome distro_features_check upstream-version-is-even gobject-introspection +inherit clutter ptest-gnome features_check upstream-version-is-even gobject-introspection # depends on cogl-1.0 which needs opengl REQUIRED_DISTRO_FEATURES ?= "opengl" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/clutter/clutter-gst-3.0.inc b/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/clutter/clutter-gst-3.0.inc index 4c877982..fc3eade8 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/clutter/clutter-gst-3.0.inc +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/clutter/clutter-gst-3.0.inc @@ -2,7 +2,7 @@ SUMMARY = "GStreamer integration library for Clutter" HOMEPAGE = "http://www.clutter-project.org/" LICENSE = "LGPLv2+" -inherit clutter distro_features_check upstream-version-is-even gobject-introspection +inherit clutter features_check upstream-version-is-even gobject-introspection # depends on clutter-1.0 which depends on cogl-1.0 REQUIRED_DISTRO_FEATURES ?= "opengl" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/clutter/clutter-gtk-1.0.inc b/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/clutter/clutter-gtk-1.0.inc index 11826a6f..7bf22785 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/clutter/clutter-gtk-1.0.inc +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/clutter/clutter-gtk-1.0.inc @@ -3,7 +3,7 @@ HOMEPAGE = "http://www.clutter-project.org/" LICENSE = "LGPLv2+" CLUTTERBASEBUILDCLASS = "meson" -inherit clutter distro_features_check upstream-version-is-even gobject-introspection gtk-doc +inherit clutter features_check upstream-version-is-even gobject-introspection gtk-doc # depends on clutter-1.0 which depends on cogl-1.0 REQUIRED_DISTRO_FEATURES ?= "opengl" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/cogl/cogl-1.0.inc b/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/cogl/cogl-1.0.inc index 3e392fa5..d8d06651 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/cogl/cogl-1.0.inc +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/cogl/cogl-1.0.inc @@ -1,8 +1,12 @@ SUMMARY = "Modern 3D graphics API with associated utility APIs" +DESCRIPTION = "Cogl is a small open source library for using 3D graphics \ +hardware for rendering. The API departs from the flat state machine style of \ +OpenGL and is designed to make it easy to write orthogonal components that \ +can render without stepping on each others toes." HOMEPAGE = "http://wiki.clutter-project.org/wiki/Cogl" LICENSE = "MIT" -inherit clutter distro_features_check upstream-version-is-even gobject-introspection +inherit clutter features_check upstream-version-is-even gobject-introspection # cogl-1.0 needs opengl to build REQUIRED_DISTRO_FEATURES ?= "opengl" @@ -18,7 +22,7 @@ EDEPENDS_GLES2 = "virtual/libgles2" EDEPENDS_KMS = "libdrm virtual/egl" EDEPENDS_EGL = "virtual/egl" EDEPENDS_X11 = "virtual/libx11 libxcomposite libxfixes libxi libxrandr" -EDEPENDS_WAYLAND = "virtual/mesa wayland" +EDEPENDS_WAYLAND = "virtual/egl virtual/libgles2 wayland" # Extra RDEPENDS for PACKAGECONFIG # This has to be explictly listed, because cogl dlopens the backends @@ -75,4 +79,6 @@ RPROVIDES_libcogl = "cogl-1.0" RCONFLICTS_libcogl = "cogl-1.0" RREPLACES_libcogl = "cogl-1.0" +RDEPENDS_${PN}-dev = "libcogl" + COMPATIBLE_HOST_armv4 = 'null' diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/drm/libdrm_2.4.100.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/drm/libdrm_2.4.100.bb new file mode 100644 index 00000000..48594256 --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/drm/libdrm_2.4.100.bb @@ -0,0 +1,60 @@ +SUMMARY = "Userspace interface to the kernel DRM services" +DESCRIPTION = "The runtime library for accessing the kernel DRM services. DRM \ +stands for \"Direct Rendering Manager\", which is the kernel portion of the \ +\"Direct Rendering Infrastructure\" (DRI). DRI is required for many hardware \ +accelerated OpenGL drivers." +HOMEPAGE = "http://dri.freedesktop.org" +SECTION = "x11/base" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://xf86drm.c;beginline=9;endline=32;md5=c8a3b961af7667c530816761e949dc71" +PROVIDES = "drm" +DEPENDS = "libpthread-stubs" + +SRC_URI = "http://dri.freedesktop.org/libdrm/${BP}.tar.bz2 \ + file://musl-ioctl.patch" +SRC_URI[md5sum] = "f47bc87e28198ba527e6b44ffdd62f65" +SRC_URI[sha256sum] = "c77cc828186c9ceec3e56ae202b43ee99eb932b4a87255038a80e8a1060d0a5d" + +inherit meson pkgconfig manpages + +PACKAGECONFIG ??= "libkms intel radeon amdgpu nouveau vmwgfx omap freedreno vc4 etnaviv install-test-programs" +PACKAGECONFIG[libkms] = "-Dlibkms=true,-Dlibkms=false" +PACKAGECONFIG[intel] = "-Dintel=true,-Dintel=false,libpciaccess" +PACKAGECONFIG[radeon] = "-Dradeon=true,-Dradeon=false" +PACKAGECONFIG[amdgpu] = "-Damdgpu=true,-Damdgpu=false" +PACKAGECONFIG[nouveau] = "-Dnouveau=true,-Dnouveau=false" +PACKAGECONFIG[vmwgfx] = "-Dvmwgfx=true,-Dvmwgfx=false" +PACKAGECONFIG[omap] = "-Domap=true,-Domap=false" +PACKAGECONFIG[exynos] = "-Dexynos=true,-Dexynos=false" +PACKAGECONFIG[freedreno] = "-Dfreedreno=true,-Dfreedreno=false" +PACKAGECONFIG[tegra] = "-Dtegra=true,-Dtegra=false" +PACKAGECONFIG[vc4] = "-Dvc4=true,-Dvc4=false" +PACKAGECONFIG[etnaviv] = "-Detnaviv=true,-Detnaviv=false" +PACKAGECONFIG[freedreno-kgsl] = "-Dfreedreno-kgsl=true,-Dfreedreno-kgsl=false" +PACKAGECONFIG[valgrind] = "-Dvalgrind=true,-Dvalgrind=false,valgrind" +PACKAGECONFIG[install-test-programs] = "-Dinstall-test-programs=true,-Dinstall-test-programs=false" +PACKAGECONFIG[cairo-tests] = "-Dcairo-tests=true,-Dcairo-tests=false" +PACKAGECONFIG[udev] = "-Dudev=true,-Dudev=false,udev" +PACKAGECONFIG[manpages] = "-Dman-pages=true,-Dman-pages=false,libxslt-native xmlto-native" + +ALLOW_EMPTY_${PN}-drivers = "1" +PACKAGES =+ "${PN}-tests ${PN}-drivers ${PN}-radeon ${PN}-nouveau ${PN}-omap \ + ${PN}-intel ${PN}-exynos ${PN}-kms ${PN}-freedreno ${PN}-amdgpu \ + ${PN}-etnaviv" + +RRECOMMENDS_${PN}-drivers = "${PN}-radeon ${PN}-nouveau ${PN}-omap ${PN}-intel \ + ${PN}-exynos ${PN}-freedreno ${PN}-amdgpu \ + ${PN}-etnaviv" + +FILES_${PN}-tests = "${bindir}/*" +FILES_${PN}-radeon = "${libdir}/libdrm_radeon.so.*" +FILES_${PN}-nouveau = "${libdir}/libdrm_nouveau.so.*" +FILES_${PN}-omap = "${libdir}/libdrm_omap.so.*" +FILES_${PN}-intel = "${libdir}/libdrm_intel.so.*" +FILES_${PN}-exynos = "${libdir}/libdrm_exynos.so.*" +FILES_${PN}-kms = "${libdir}/libkms*.so.*" +FILES_${PN}-freedreno = "${libdir}/libdrm_freedreno.so.*" +FILES_${PN}-amdgpu = "${libdir}/libdrm_amdgpu.so.* ${datadir}/${PN}/amdgpu.ids" +FILES_${PN}-etnaviv = "${libdir}/libdrm_etnaviv.so.*" + +BBCLASSEXTEND = "native nativesdk" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/drm/libdrm_2.4.98.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/drm/libdrm_2.4.98.bb deleted file mode 100644 index bed542ba..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/drm/libdrm_2.4.98.bb +++ /dev/null @@ -1,60 +0,0 @@ -SUMMARY = "Userspace interface to the kernel DRM services" -DESCRIPTION = "The runtime library for accessing the kernel DRM services. DRM \ -stands for \"Direct Rendering Manager\", which is the kernel portion of the \ -\"Direct Rendering Infrastructure\" (DRI). DRI is required for many hardware \ -accelerated OpenGL drivers." -HOMEPAGE = "http://dri.freedesktop.org" -SECTION = "x11/base" -LICENSE = "MIT" -LIC_FILES_CHKSUM = "file://xf86drm.c;beginline=9;endline=32;md5=c8a3b961af7667c530816761e949dc71" -PROVIDES = "drm" -DEPENDS = "libpthread-stubs" - -SRC_URI = "http://dri.freedesktop.org/libdrm/${BP}.tar.bz2 \ - file://musl-ioctl.patch" -SRC_URI[md5sum] = "1320b43c4bdb8846c308ec2610b62b64" -SRC_URI[sha256sum] = "8be0edccaca3abde8b6bb1431b46354c7fab46e9b91cc6946ba65b51f56f1894" - -inherit meson pkgconfig manpages - -PACKAGECONFIG ??= "libkms intel radeon amdgpu nouveau vmwgfx omap freedreno vc4 etnaviv install-test-programs" -PACKAGECONFIG[libkms] = "-Dlibkms=true,-Dlibkms=false" -PACKAGECONFIG[intel] = "-Dintel=true,-Dintel=false,libpciaccess" -PACKAGECONFIG[radeon] = "-Dradeon=true,-Dradeon=false" -PACKAGECONFIG[amdgpu] = "-Damdgpu=true,-Damdgpu=false" -PACKAGECONFIG[nouveau] = "-Dnouveau=true,-Dnouveau=false" -PACKAGECONFIG[vmwgfx] = "-Dvmwgfx=true,-Dvmwgfx=false" -PACKAGECONFIG[omap] = "-Domap=true,-Domap=false" -PACKAGECONFIG[exynos] = "-Dexynos=true,-Dexynos=false" -PACKAGECONFIG[freedreno] = "-Dfreedreno=true,-Dfreedreno=false" -PACKAGECONFIG[tegra] = "-Dtegra=true,-Dtegra=false" -PACKAGECONFIG[vc4] = "-Dvc4=true,-Dvc4=false" -PACKAGECONFIG[etnaviv] = "-Detnaviv=true,-Detnaviv=false" -PACKAGECONFIG[freedreno-kgsl] = "-Dfreedreno-kgsl=true,-Dfreedreno-kgsl=false" -PACKAGECONFIG[valgrind] = "-Dvalgrind=true,-Dvalgrind=false,valgrind" -PACKAGECONFIG[install-test-programs] = "-Dinstall-test-programs=true,-Dinstall-test-programs=false" -PACKAGECONFIG[cairo-tests] = "-Dcairo-tests=true,-Dcairo-tests=false" -PACKAGECONFIG[udev] = "-Dudev=true,-Dudev=false,udev" -PACKAGECONFIG[manpages] = "-Dman-pages=true,-Dman-pages=false,libxslt-native xmlto-native" - -ALLOW_EMPTY_${PN}-drivers = "1" -PACKAGES =+ "${PN}-tests ${PN}-drivers ${PN}-radeon ${PN}-nouveau ${PN}-omap \ - ${PN}-intel ${PN}-exynos ${PN}-kms ${PN}-freedreno ${PN}-amdgpu \ - ${PN}-etnaviv" - -RRECOMMENDS_${PN}-drivers = "${PN}-radeon ${PN}-nouveau ${PN}-omap ${PN}-intel \ - ${PN}-exynos ${PN}-freedreno ${PN}-amdgpu \ - ${PN}-etnaviv" - -FILES_${PN}-tests = "${bindir}/*" -FILES_${PN}-radeon = "${libdir}/libdrm_radeon.so.*" -FILES_${PN}-nouveau = "${libdir}/libdrm_nouveau.so.*" -FILES_${PN}-omap = "${libdir}/libdrm_omap.so.*" -FILES_${PN}-intel = "${libdir}/libdrm_intel.so.*" -FILES_${PN}-exynos = "${libdir}/libdrm_exynos.so.*" -FILES_${PN}-kms = "${libdir}/libkms*.so.*" -FILES_${PN}-freedreno = "${libdir}/libdrm_freedreno.so.*" -FILES_${PN}-amdgpu = "${libdir}/libdrm_amdgpu.so.*" -FILES_${PN}-etnaviv = "${libdir}/libdrm_etnaviv.so.*" - -BBCLASSEXTEND = "native nativesdk" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/eglinfo/eglinfo-fb_1.0.0.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/eglinfo/eglinfo-fb_1.0.0.bb deleted file mode 100644 index cccdd207..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/eglinfo/eglinfo-fb_1.0.0.bb +++ /dev/null @@ -1,7 +0,0 @@ -EGLINFO_PLATFORM ?= "fb" -EGLINFO_BINARY_NAME ?= "eglinfo-fb" - -require eglinfo.inc - -SUMMARY += "(Framebuffer version)" -CXXFLAGS += "-DMESA_EGL_NO_X11_HEADERS=1" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/eglinfo/eglinfo-wayland_1.0.0.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/eglinfo/eglinfo-wayland_1.0.0.bb deleted file mode 100644 index 87a131aa..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/eglinfo/eglinfo-wayland_1.0.0.bb +++ /dev/null @@ -1,13 +0,0 @@ -EGLINFO_PLATFORM ?= "wayland" -EGLINFO_BINARY_NAME ?= "eglinfo-wayland" - -require eglinfo.inc - -DEPENDS += "wayland" - -inherit distro_features_check - -# depends on wayland -REQUIRED_DISTRO_FEATURES += "wayland" - -SUMMARY += "(Wayland version)" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/eglinfo/eglinfo-x11_1.0.0.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/eglinfo/eglinfo-x11_1.0.0.bb deleted file mode 100644 index 48ab8805..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/eglinfo/eglinfo-x11_1.0.0.bb +++ /dev/null @@ -1,13 +0,0 @@ -EGLINFO_PLATFORM ?= "x11" -EGLINFO_BINARY_NAME ?= "eglinfo-x11" - -require eglinfo.inc - -DEPENDS += "virtual/libx11" - -inherit distro_features_check - -# depends on virtual/libx11 -REQUIRED_DISTRO_FEATURES += "x11" - -SUMMARY += "(X11 version)" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/eglinfo/eglinfo.inc b/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/eglinfo/eglinfo.inc deleted file mode 100644 index 6dcb0c5a..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/eglinfo/eglinfo.inc +++ /dev/null @@ -1,38 +0,0 @@ -SUMMARY = "Utility for printing information EGL and its client APIs (OpenGL, OpenGL ES, OpenVG)" -SECTION = "graphics" -LICENSE = "Zlib" -HOMEPAGE = "https://github.com/dv1/eglinfo" -LIC_FILES_CHKSUM = "file://LICENSE;md5=8d4f33bc3add976f7dfae85dab66f03c" - -DEPENDS = "virtual/egl" - -SRC_URI = "git://github.com/dv1/eglinfo.git;branch=master \ - file://waf \ - file://0001-Add-STAGING_INCDIR-to-searchpath-for-egl-headers.patch \ - file://0001-Check-for-libegl-using-pkg-config.patch \ - " -SRCREV = "223817ee37988042db7873cfb5b2e899dfe35c10" - -CVE_PRODUCT = "eglinfo" - -S = "${WORKDIR}/git" - -inherit waf distro_features_check pkgconfig -# depends on virtual/egl -REQUIRED_DISTRO_FEATURES ?= "opengl" - -# BSP layers should add .bbappend files for the -x11 and -fb .bb recipes, which -# append the respective EGL/OpenGLES/OpenVG libraries to DEPENDS and set -# EGL_DEVICE as appropriate. -EGLINFO_DEVICE ?= "generic" - -EXTRA_OECONF = "--platform=${EGLINFO_PLATFORM} \ - --device=${EGLINFO_DEVICE} \ - --sysroot ${STAGING_DIR_TARGET}" - -do_configure_prepend() { - install -D -m 0755 ${WORKDIR}/waf ${S}/waf -} -do_install_append() { - mv ${D}/${bindir}/eglinfo ${D}/${bindir}/${EGLINFO_BINARY_NAME} -} diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/eglinfo/files/0001-Add-STAGING_INCDIR-to-searchpath-for-egl-headers.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/eglinfo/files/0001-Add-STAGING_INCDIR-to-searchpath-for-egl-headers.patch deleted file mode 100644 index 61327eb3..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/eglinfo/files/0001-Add-STAGING_INCDIR-to-searchpath-for-egl-headers.patch +++ /dev/null @@ -1,33 +0,0 @@ -From 99a5784d33ad5e0e6fa00338d2732cbccad7661c Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Wed, 13 Jan 2016 16:08:22 -0800 -Subject: [PATCH] Add STAGING_INCDIR to searchpath for egl headers - -bcm_host.h is in standard includedir in sysroot -add that to header search paths. - -Signed-off-by: Khem Raj ---- -Upstream-Status: Submitted - - wscript | 3 ++- - 1 file changed, 2 insertions(+), 1 deletion(-) - -diff --git a/wscript b/wscript -index 195e247..0f6ec53 100644 ---- a/wscript -+++ b/wscript -@@ -177,9 +177,10 @@ def configure_raspberrypi_device(conf, platform): - conf.check_cxx(mandatory = 1, lib = ['GLESv2', 'EGL', 'bcm_host'], uselib_store = 'EGL') - import os - sysroot = conf.options.sysroot + conf.options.prefix -+ std_include_path = os.path.join(sysroot, 'include') - vcos_pthread_path = os.path.join(sysroot, 'include/interface/vcos/pthreads') - vcms_host_path = os.path.join(sysroot, 'include/interface/vmcs_host/linux') -- if not conf.check_cxx(mandatory = 0, header_name = ['vcos_platform_types.h', 'EGL/egl.h', 'bcm_host.h'], includes = [vcos_pthread_path, vcms_host_path], uselib_store = 'EGL'): -+ if not conf.check_cxx(mandatory = 0, header_name = ['vcos_platform_types.h', 'EGL/egl.h', 'bcm_host.h'], includes = [vcos_pthread_path, vcms_host_path, std_include_path], uselib_store = 'EGL'): - conf.fatal('Check if --prefix and --sysroot are set correctly.') - conf.env['WITH_APIS'] = [] - if check_gles2(conf): --- -2.19.1 diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/eglinfo/files/0001-Check-for-libegl-using-pkg-config.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/eglinfo/files/0001-Check-for-libegl-using-pkg-config.patch deleted file mode 100644 index 572c8014..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/eglinfo/files/0001-Check-for-libegl-using-pkg-config.patch +++ /dev/null @@ -1,36 +0,0 @@ -From 17f5d2f574236f8c3459f9efadef2f0f6220a4dd Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Mon, 13 Aug 2018 15:46:53 -0700 -Subject: [PATCH] Check for libegl using pkg-config - -Upstream-Status: Pending -Signed-off-by: Khem Raj -[Roman: patch has been rebased to 223817ee3798 ("Add Wayland support") - trivial merge conflicts resolved] -Signed-off-by: Roman Stratiienko ---- - wscript | 7 +------ - 1 file changed, 1 insertion(+), 6 deletions(-) - -diff --git a/wscript b/wscript -index 0f6ec53..401f62e 100644 ---- a/wscript -+++ b/wscript -@@ -174,14 +174,9 @@ def configure_raspberrypi_device(conf, platform): - else: - conf.fatal('Unsupported Raspberry Pi platform "%s"' % platform) - return -- conf.check_cxx(mandatory = 1, lib = ['GLESv2', 'EGL', 'bcm_host'], uselib_store = 'EGL') -+ conf.check_cfg(package='egl', args='--libs --cflags') - import os - sysroot = conf.options.sysroot + conf.options.prefix -- std_include_path = os.path.join(sysroot, 'include') -- vcos_pthread_path = os.path.join(sysroot, 'include/interface/vcos/pthreads') -- vcms_host_path = os.path.join(sysroot, 'include/interface/vmcs_host/linux') -- if not conf.check_cxx(mandatory = 0, header_name = ['vcos_platform_types.h', 'EGL/egl.h', 'bcm_host.h'], includes = [vcos_pthread_path, vcms_host_path, std_include_path], uselib_store = 'EGL'): -- conf.fatal('Check if --prefix and --sysroot are set correctly.') - conf.env['WITH_APIS'] = [] - if check_gles2(conf): - conf.env['WITH_APIS'] += ['GLES1', 'GLES2'] --- -2.19.1 diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/eglinfo/files/waf b/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/eglinfo/files/waf deleted file mode 100755 index 04ddd9f6..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/eglinfo/files/waf +++ /dev/null @@ -1,169 +0,0 @@ -#!/usr/bin/env python -# encoding: latin-1 -# Thomas Nagy, 2005-2018 -# -""" -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions -are met: - -1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - -2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - -3. The name of the author may not be used to endorse or promote products - derived from this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS OR -IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, -INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, -STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING -IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -POSSIBILITY OF SUCH DAMAGE. -""" - -import os, sys, inspect - -VERSION="2.0.11" -REVISION="41b69b45f8aa445dce066a4aec3cdb75" -GIT="fe03c6fa470f0bc3c086baafed8c6b4b6d28a245" -INSTALL='' -C1='#4' -C2='#*' -C3='#)' -cwd = os.getcwd() -join = os.path.join - - -WAF='waf' -def b(x): - return x -if sys.hexversion>0x300000f: - WAF='waf3' - def b(x): - return x.encode() - -def err(m): - print(('\033[91mError: %s\033[0m' % m)) - sys.exit(1) - -def unpack_wafdir(dir, src): - f = open(src,'rb') - c = 'corrupt archive (%d)' - while 1: - line = f.readline() - if not line: err('run waf-light from a folder containing waflib') - if line == b('#==>\n'): - txt = f.readline() - if not txt: err(c % 1) - if f.readline() != b('#<==\n'): err(c % 2) - break - if not txt: err(c % 3) - txt = txt[1:-1].replace(b(C1), b('\n')).replace(b(C2), b('\r')).replace(b(C3), b('\x00')) - - import shutil, tarfile - try: shutil.rmtree(dir) - except OSError: pass - try: - for x in ('Tools', 'extras'): - os.makedirs(join(dir, 'waflib', x)) - except OSError: - err("Cannot unpack waf lib into %s\nMove waf in a writable directory" % dir) - - os.chdir(dir) - tmp = 't.gz' - t = open(tmp,'wb') - try: t.write(txt) - finally: t.close() - - try: - t = tarfile.open(tmp) - except: - try: - os.system('gzip -d t.gz') - t = tarfile.open('t') - tmp = 't' - except: - os.chdir(cwd) - try: shutil.rmtree(dir) - except OSError: pass - err("Waf cannot be unpacked, check that bzip2 support is present") - - try: - for x in t: t.extract(x) - finally: - t.close() - - for x in ('Tools', 'extras'): - os.chmod(join('waflib',x), 493) - - if sys.hexversion<0x300000f: - sys.path = [join(dir, 'waflib')] + sys.path - import fixpy2 - fixpy2.fixdir(dir) - - os.remove(tmp) - os.chdir(cwd) - - try: dir = unicode(dir, 'mbcs') - except: pass - try: - from ctypes import windll - windll.kernel32.SetFileAttributesW(dir, 2) - except: - pass - -def test(dir): - try: - os.stat(join(dir, 'waflib')) - return os.path.abspath(dir) - except OSError: - pass - -def find_lib(): - src = os.path.abspath(inspect.getfile(inspect.getmodule(err))) - base, name = os.path.split(src) - - #devs use $WAFDIR - w=test(os.environ.get('WAFDIR', '')) - if w: return w - - #waf-light - if name.endswith('waf-light'): - w = test(base) - if w: return w - err('waf-light requires waflib -> export WAFDIR=/folder') - - dirname = '%s-%s-%s' % (WAF, VERSION, REVISION) - for i in (INSTALL,'/usr','/usr/local','/opt'): - w = test(i + '/lib/' + dirname) - if w: return w - - #waf-local - dir = join(base, (sys.platform != 'win32' and '.' or '') + dirname) - w = test(dir) - if w: return w - - #unpack - unpack_wafdir(dir, src) - return dir - -wafdir = find_lib() -sys.path.insert(0, wafdir) - -if __name__ == '__main__': - - from waflib import Scripting - Scripting.waf_entry_point(cwd, VERSION, wafdir) - -#==> -#[tmp-waf-2.0.11.tar#)kcƱ0ܯ`#) Z/iu$>q$?ӴGfq( &o#)6i4n#\n`^Nÿ/|G?z?~W_-jPt*ڔ?u.d0.n|u7d~y]VBʷޜ<;ϫn6TujQ=|x3&Ë<~8U漢M`2@iu+OY3-e\dqy[vE>toɴLuBϽV$Q*n:[TvX.R˞UrX-#*3ô4|~ y_oW"~}x,l5U%>.JAYvy +'/ˆUFٸIaMqY3 =NHS!9:*IEyVUbYe[#)JB$#47{ƱZ1`Ƞ|{\5>\d<SdMA  ` n rS*%+ǜrPUKM̌7/B34Ll:*<ӶΪ(l#4g^o#)U6~ZfR;[bMȪj%fAqIXr.QJjdo<4;Y6l9g8oV^~E¢׎ݙ)6[Uf~ wUd:j?m+|44VX}}jH67#*Cwv:?.h! S#*mHmH&ey\Ѿ9p0ͯua l|Ր;*ٴ}\[dJ%VGﴕy?{fO̽x[}Ol31 5]1^?[?gQ-r矲,>r\ )S>#*l>jQMb]0[ʧtV-a9Xf:o2[+>zbxJU|PM5IyvC#*=`|BbvNNɧYs]{MOY>}1;5_!ڶf6 Nؽm-?r+ujƒ4o#)ki6ZJ>#)XlUZq_GQ"{Ah]w҆ 7 q}a<_y}am/jٟ!͹\L'٘Lq!7]/vP)/8G /ĿT6}H ?^Sx P+xza$nYk)u!_Qoq}N{j1*YK8OeKt?y"q5eO^º̀OYp$[w|&ϸsy=/^+nqpM,>_G/啰_˃W 8GNGTo% b 8X»!(:I;iޭ.ޝ{D`g{݇iyߍ jJuHsdYp6[9H(ko `0*em r>Llio{GQ<1@ wG霥Nygo|-dE޿Ĵ9Ro񣬠gVzK4Rb)N7o1(˲Q#)e:ex_'?̻.fHwQ[$(sC,J#)9??$(yw,1me&gaBOyss^MLЄJywE}煮-ee.xamIjV&໥#4=AJ]x:C%ca;[~TvHr=ʁ(V2EIx81b1v&Y#@%I!L7_qDn -g2>źsujU'rӉ[u%.Ma5#*?}{߾<9XQC˜cz;(;͂wAVyR_>Eׯ~?Yp^L`_O5Y?lXWͤۈ*e-#4. `] A>Q4BkHcƓKT}_) ,4>!#!SƟ-'PãshR0 RɝyمTer dlw>"'в(kȆxAC5%CNHD=͉V0}?9{yzQ"%V"0H?#)xw5٠Aq#٠^uC|J2X դ#4Msb3{lzSO[^QR':[t1@R'ONzgwr]⠸|}JEN5LTWrdC偀T-p|0(1(ߦAH]*=)q92b&#)vk*f:-0( #)+rL#V+)`]C~#*r(ϱ#J4^z.#)!pM#4&&[(b)#4Nd#)/?l.LR!H>ҽ=9-9=>yzd)#qG! Pzw'MPK׮e|CX5&X.S0dEү"5D#3a'y+!'wKUq_'o u屣<` 5G MveCف$uxu܋lp5%d\u2;!n:l(QF_@[v$#* V(#?|y/!~e;`/3ly0̓#)VN#)'mR~-EOhjey]&yj'e.}&vC.?2 .l!zMQwDYw\^;)/N&Mf-lgC';0fQf4S8E64xo9f']zoK #*0YD#4Q/U#4_4@yc?(7%dMFpkͮU6nuQ?a޶[odӌ.͖'Kou((n;F&t/׉P4'Ͼcc)ݥV>8QD#*]Z=Ьi95̕6=-GYZdn}!sڷGa`C}bp͂ !Ew ]#4 l>ɅK5jێ#*܅6؝6>nngʠ@lIJ/E`1YH4ڑ2LI"8Lt'SdPIђP,%!>ARD&RQ&d"Ϡ"3:-/EfK)@ve6vsoWV]C Fj^yd^kYT5Ve;Jq@%ˇs7ʈM]n|S.kٌRtym_ u=mG\?7s&"^b` PY",kF;ͨD`TJ{QU Є')Ey?$;F(ZE޽ɀ2E[.qKшhNA%NQG3)]fM#_r3QCYV]#ug#)\gGw6kGҢRSoh׀Sc~8D""6fq:m9r%*EX^83I+j?zpZbs^}D""dxOj.g#tAc#) EV+ sɐDd kyz?m4>#?۰^ҝ_i)/Tlܡѣӏw<:/jX4NP>HX_>ꏳAWr͍`N:_?{q&=۳<]UbA?\}aQ*/κo#*Py1itk:X#)3o,/ *RyL[:ɰ^4< j/\#)eÑoRъ}#g'7TI߃P>ˁh}˗ȻWLsH~{pL ݁QA2p.-rwpnQ;Kރ):Sa']#DYd@`3 $m6lnY2v/!RG0!@N씀*FK(r#))aPd;n3 #)#*C^ؿzusrCۅrEMYS#)j"9+[i*K#4q+4izRRb-+H,FmyY>_#)K]TSť W=3 Ͱ=knHSŁvݜVތ s3$#)YBgEr8BIro#*msUwkge}\. rl:1v`geU"X[pka0ͭMȎɻW7d;#9 Hk#*71mu>=]..%2#*͙mv֏=LkQUƪ+"D" C]d~m݂[4(bc6.!quYa70gnXݥc3aiR )=/UBj9-C  8]|OsuTV4wW#4,AhD kHG$C2qaMwndGniRJq4>Rci#4 9LA)U۔ ,gn ^#4Ah@#*U`.%g9ƻG1pNEÄ pL7>@@!n*5i\^e) _'Fl~fU"2.NXueO..H"y놉1` aՓMAGf|Dkve41#ϷP|`am";|zkTKL8Y j%JѼT7yb<]7E3:F<-h< _^т[e(MKћ7&;eZ`2=RbIzp+w}A7^Ο#)CxN},M= " Hq6 .-#*p8}~#4W-HZyfSSr:ZŨBDLm#ٍpIGDwukZV-CB3V+F+H#)I49W!pp46r)hA(823F&%MǬd>~Dsn@pI9t-:$x VL2x#qE~|g siA =%Yv0sNbG9RoLI>ˆ4["pjY{DWȚëҐJ(1\D@ëY>݀uF$Pm0-E$W#*N&BAL-AQ2`M P<^S#*|&/F-9ɽD8C#)lb@_LrsI{:e^ -JYivkd5u+gbGT&|cipcA8N%@+xvKd :q"[ާe’U :|O2]޲&T3l[QS\O}W-S+ôL5)6h8pyaex$HndlN! ͂fU"BN"BQdliy(v?;g-3%LǠܞev\vRYV/sidtL&0eN-X<FRAٝT+y} tˮvsm@ #4ZDĤ,Ek=;.J]C WPV^!x7Ӽ BjʞXTRƒඬD}YN:Ýbo#*8m̵;]HkĶŖ{J2m%+He#*&N#4qmr]|{^zc2iTo9Ӷ4 oF5FL#4~ ju8פՔÓ!쯁J2RRqia{Bf|Q%#~rkC̸ܵ#*콓j@: l[$;I}oV͓稥I['MjW^?nv?1$~f0(#*@-Ы9dk%{VQMDSdSIq I༎$f|9ÜLwC7ĸڍZW/[bc}9*(emX5:!2^XCmP%qSMuj#)W(ĵ#*[,QbG)t)5N`/h#*6 $Wlw#)MA7N?Ӑ( .|6^M(Lt}*w.󖤓!!?uH^VnTѰڨ4<fv*W}ﭷЯ#@s.S(o1F(Ud-{3t;3ZxbpC#*SdK`ޣ~~6memQ'Y?s؞\h7im)V5:\ݕ?h"J&tmZCw;2~-$C0FƉEK[p$V;s!#4%6#)IFx\\>- bؼle6ׯ4jJJ| #*~W/?{͏חl~Ni*FqWt7\)o]d͕ĺn7Ik_1] s#4 #)+c#)#sӷՋaǷdnq#*"+Xxg-5B8&ɂڨ}Eq4taN3mlk_*+E&q$ d=җ Pra֥j!.#4Sݚ+>BX5uHs򷭕6*Hn(6#*!ҁNA #~j R1#)w,ZyvŭcwQSE0qpU#4K&-Lйwm(,@HW~}25wy|p؈?y^p CŹ ZUF!@#*Q||/H_~n>;7UK#qBwNLtTvϻ{UYib.&QK?4$\_CIuu`\6;帔~X+S%rmi3HǚB&6du"PcB=u#d͎ $rQh[.m"PyZwL{B#4RlG~JN_7OR#k\X.a#)7Aܚk'i\b#)r )5P*!*ٳ"-eަ|▕rpwzz{ڥmRK=ًbH!e1wxxcH ,/Dr ]s5(.bݖwv7o]V6LqNu ;+п3Ud$D; k#EG#*H[cM=lY`?`Ɣڼg6bvY+m]1uni5m1-eϟ=8}Ml/EQSՀS2+ "8ept8әz ^pnn('aomf*ю^1 #)#*&:#WJcrf;z؄hzPó^Bb4$mx[2 Dal7kfXL۔$VqEI)R".rQJ.1Ъ3q.:p=HV}fNᆭ"*J7pJm*FZ0q hTzHoFwxBr#)'X3MDMp]u#_!l.v= VJ3%R6쑍.!ig;9mW˓7'BՃCYHZO+N Q $`]6 ]C{# qO7&ۀ0w! Y0 BX!uKB{vo?'[k=bڢI{ͮكg/O(^ӫ6;i֬TeJo &>Cs'ٚhIMhAQ8 <} exnH<-cHvk){\oqK[\b9ɻIwz7'6vw`L/Ǵ6M#*'㊏>[ۇҕ8`-,\KcRpPrץ Ͼ@94d5=)`sےM2Q1f&ۘdn1_Dj4Ѕ⚚%5%WSS֪n Quܭ"m5Vʈ \B!;-u,'dp;KnT1LdVU-TBi0?$ޛQq!oxsr2d[1H!G ڀ<8d f?(:jȨQC| A5@.oǦt9vDǵZrqiLO1U=o7B!#)_N 5,o?FN};c#4,pη*1鱍E`ZZoɶWztDkm',#*LJf6?돛$GWa$8d5#)M qBmr}C~cblB#|7Z')]LN@'`sǞ]fds7}6j#:1&yRh#4<1cg\F:X~]#)m&׊Vb^Mkq̈́jfRTĦMPj湺BGu <̀RĘv{d,Ez鰺X5o }Jlڊ7N'#n<>R㮘M$8l>0KGr N#*r7D.tQҏѱZ}: F$85#* >_!TMVZ^qzYWYrIP坰*I:O>Y~wT <̯"U '58Λv̚5P[jײ=w#ݰk75Ԏ(;zE~Y ffY$3֑oD@J`S)#)}>\s_&j#4[h+;;q7շI20q{#)7[&KIAFL0GI/CX.ik^^tPL<#*o#*2o]*YlPҒ1(P4t)bv$xjg|jײF28la4AGZyU˚5װ1[ gc$k86nnߣ{Gc<6>JȻ^n߾2IxT.)`לGW*4r[a cu>Ic#)I4s-|"zCٌ(CkT7FePͨʧPޠn.dT;#A^w#*P b'KN5Ɨ` 1{p'ͦa_ N]@( #*Έ iɫ\JӲ>y*pGlP#*Lֆc*cv%E]>--.4V/#)a8kؕiK#q%o qr9N@[~;0I)e+٦Du4k"G.^No1$#)~~Ee=Ɵ.6,Hߋ3؃7WR I88abeZ''8x )}vDZ$`JH^f!,qer2MB90Տ?zum`d|Rx#)V"/Oĺo +Hae8rl>` ']:RЦ Dk#3z:k*oO7?K<~/oKoSgwǢ^~"_?5~#)v[JoL~>/rr9Ξ??_,ag!e/W2|6ʲ4~9WkG[CBT~u)?~D5ܛJ|H9FX'#*vz{q!G+s"m#)z]ုSoRۯx*nw@>t~>>V#*Z1IQ{w z`rAP2<_'׎1q뻸=@n1M؅wvEueMs]2#):־˟w_E-sUV̙*ٹ+v{p)h_Q'GE~g_w`)רô0D32NlFdn*̖<跻w lw0iA; hkD׌hϡN P#wf:cBNv>@EQTF&;[iZNL$Ϡc,%Ԣ@|wRyZ Ɋ$> 3$#?XȈa1fV6F ;%)U!HH۝BsE%21aNRa [!,`Pk&&m)U+%k+g[(L_8_=bԿOQ(Y'COfΟOέ=g+xJBf?4 Efh6PGnJ䙝@]m z0*3b;DhN#)7m%N-:bmkZZMSǒtJR]'YfěQ;yiEo([ԜIHfuHZ#)QX&xG])aPd:g(_(i|Ļ:WfL,)43Wrm0P;cl5OѮ#)͙7W\ijjE&Wk]-eX[In^yI^mWGdtÄۍ#*nmFyysU;,ߚyIѦюʭxm42%*+iAgYhxsT5rK$6 5Y8fH=!nޜ=䍢930};E6%Y᪊9ILsW9C㞳F#ڹz.VKS ᪓>Yגo2/>9t nYaP*8QSSL0Q8z tC[jEC4_a 4 m-5\1zªc^ODHxk2c657k۠y#*N(]I͚kF3mὔ#)xCE8ɎY,糵X_H++i#0s̟s%W|Wg PXPϯ]~ +k$IjI( -Ä)C,Bʡbܥ.a()5ALJ^)#*E{CO!I\EANC -TDn«G9DZ?XR QX݁5[l缀׍a=}2$َ%M a:m~w 6|RFGV3خhk5:iF9D#f^݀IozMEȅZm}5ܺ!] ]x,ⲲpֹאSq#/>FYP8vRiK#Ur#)$afIG1zx^P`uk:qdO;RA$c] ta傝\bÍ't:άe#*F [Ǐb ܊}ѥF@!ԚQ'ܵu;Ɉ}`%#*w^PS+PƸOoXP'APx6RĪ]l75Ni~Э! r?r; ^Ш_èbۍ:0Ǜ!&F^m?$\TZ}cddmq+uq^"i~ƺ>Śj1|dڝlǛ+MΪa<TZz>fOO*W”"?ThHf]YT<@M=]K՘/I?q5laeĝ:#)B~#)h#*w!f4۾ قG C#4_x{MNmahھWUz% w(ICWRd-q5={7A(Mԫ 8y^7Ț:vygdp)E$eL8$Zq/>Xoء[7CEqc#4'#)ߞ*#*Ln{rPU1]$q_ѧɾT]ZX|Ovl=\1]AQF> YL#ǶN1A%wOOyd)_Ҷ[;ctc5> є8qr3L޺B?HT̹6xjR#4VσKN-2a$NJ|k2 "'U+s$/&iFX#4'+H #L(8$o߯-H0$'O>yGw5/q~8F[%i:yx֬@#)+Syr`bRd~_:voj̡@$6\|#)qN:Cނ.c!d$#*V"-!'C߻xH#)#4E -OtP]'Ί'$4skvx&g#)G!jLPG#*-<j^0u&""yvE/pctTO88!L/zUra >"eRxHCჩ&p?(qV@4J1E'VMHa?V[ZHu(.=C8oǹ|򕴙<2̰,NTC?y~ d&Ut#4o}M_| ,t~.C{>^@#)C.ɌoD uV",X.hMrhd=,6_?r>+MK j.*QK%t(ɘƒ0b ћkQ}hϯZyIb'}?%zcdȕ!j}Kei/eɹkrYj*A # o*v)}f۞3>(҉m<%{ADDԘ#&TЕ!REolQU̥̬ԣ\$Jۆ]w'vDryY'šF%x a#4x3wn֣9^tA7X< `mC,՟5!Ikf9g#Fֻ#fz5rc FapLxԤ66^C*!b$O_gd#)|_x>6as2ȆgbxRILO!T`k9iFWbqE[~G?[ՊFBx|qOy8.uG_S`VdzN~I5}_ʼn`M;f'2ͿFԼf :,`P<ډ1$8t dW9ɶo3rPPBe/.O[zJ0s$T-QxO$S4H7#* >}VɾHb\$uck ]E&Rf#*^{ *p.(#4՘9{TSہ ZlUAv-`J2BlZ+gnHfQdXĺͪ#4>3Oimfn{f@R=#)hlUc|%#)$/$jһŊ֠5dk.(#4Nq=gM-~?(rf"tO&ҫ4U>c/v#*?k mXUNƉ^|m'mr/Yiszf5 *Dh]_.#)XP'd8ޘ됍}~XlTL+[ ZcBWҼ m?3$}JMFcK<=Zs9OH`,!1L ܱѹ$;,+96lb>pru1'#*KA`q-tB" :`Id3qo=ww\ a3 fC\ I~~TxxXpy/qW:;^LgC|X 8d&\t=%@QYQ8|16f"c5=rHsx"u9:m&1g]88ɗo^^߼8=ygO('p o^|ƒ#LkԍcM{yXۣqN71&Wͭߌb8g2C޾9?~'<I0s]4ֳhQ;sWQc>#)@VxKY';2-);W(qN`]w9]U8[4IwDJz_U_/5qz/ B4nV3;oQinqxm#)ѹl뉫"'{D[Dy}̇loowȖqu#)j.l^|tGKDtP~`g Y#*-=JD|l֨cnp.>{/|__ys?~?w~!G`5B'er|L/ W޶)|s#)a ŠbMȪWd8|g|VK,r~O>#oofͭ=M)P_:̫P{HFLIKm"wn{u\Ybo`u@*m=&w|rz|VYDZh6Q<&6CLW3xA#)H#*ՐhF)#Jv,DJޗLOkzG{|=kXfEG2i#4Uw#*IzSE2Q]US ˇt56H#*t#*3p16L\at{rVy0\쌂d:>6Og#TK1pC(j|k,^H 0.xtyкݮACmx eĪi$uT#4أO'h}|e`5pFs^do.b;D*!|w~ c7z㶣;oQ89,^Lc8Meֻ,"<\Z#)#*>>&hz]dZzT *Myleb2ϪPhbѠBL[0 @ ^r+KAu,ps6]r.s P UB2qiC8 #m )_9lm.(_@t2#*C[`670-OzPoz{˕C}AA1)Z#4dX {JcS.Ιc ܖ2}0}7 vF# H8Wd^j;Wvʝޣ1RF@j󰬆2О;a)0_)fjy`ͭr;WtJ"" + +ɻ =M#*<’vtCN`xY[1VinE״;߽{,8{b},Իw;h]m87pubqXJF/Y$O@`1JAu o-R&<{>#)+bԹ8h)ҮtM {%z|ZDsǞhk4) ]]' wW s6+q7 bQ"IR3<藯cn^,,ُ^#)צ{m01C951G$Y+ApBmD۴" oo't=uNh#4,%n$oQ.wf0oK3}L_3wYw d?4=y Yb^9&sx 22xcߧDL>~h_MUliqpE".&4.x38Q =b=qD:h~C »c:}y<{N^,'S`KMΔ*BRۍՊNt2LVM#4Z7& @7St?ҫlHW$X zйN;vӓIzsǗ;B.@n&*1/H|ZZChc\MzHwo50%SWVeBEN`(gCbцI6\.e|lnz5R]񦑸{8}EX@q/ɼJRI46΋=B(*f)lT"lFpJQu*L[#)#*A6-{P˙x6ѻdKv#h f]+T`#)6ҹ'rC(]X[!8(w$u5Je8E9py%7sc Pk+J~2}JC~lqJn]~b2#4עA9$}Fjb$#*rg9@BN1 勠~SMp L({Юrm{.t t#*`aq);#)hxgD:ts8}m `,Qǯ"Fv_#)E-fyJSj/J'ָ?˰As\{4/Woȅ[0aMeN+K[V~ Z6m](Z+~u"$wGA@K)@&J s!PN#Jrnؼ{.pU>; sW$G#)}f-0ְ+f0AԢD#*4v1# u->3}\o#4t@-#nw}}#)Vj>-@zOUi}cyX!TiOJp{8;L'r],//Q#4tjP^u m]q'i(ƃHr^뭢ҪXj=5ggǯ^[ȣ Aq yoX߻3 =༥m7=ȕB̥d;kjqQ'U""Շl]ޔG QU#47/HRGEuT:bV<#|2+uꕵ4-<)fKfjJyNVxF":~ #(y r."J;#4cFuiQ"փ6[#*Ƴ5ݑ؇8$u-uaTݬ{܇&^S^tw~kx`1To4N9}ry=)#*k k+Z6+9=wt{B- i2},ڻn5}|q5nD`]\ ;wffZӁ{ L+6P6$;T#4f,Evڞg@|*N1vgo_dtc/tΚd~h[rжJQnJƚ#4miӝ-}a,YKKp.(ۧhRVd;B ~~#)7_\:r#wMI3IDX-RSz(PO$N77:}#)oVATyDieԃ:|"Ywa+(D|B@"ѐqt{ nε礉n6J4P 9Y:P)7.A_kB7RsgBR_$5a Wj#)(K>v«cdiԮZD(%:}MYF_È41Db2oҠ8Hr]\o^:)2;҃b*I5͒D@)G#ԛh$NHM!}#4Huyܰ~Sjw:X·Wh=I6E1\r#)$^ƞʇ n!]엔֝S#ڊ $k#4$(q&cCŰ(#45dpxbPpHLrxȊj5"ו#YIp&B{'lN!S3_h V.aݰlH6->UC2VML>"u#)2-75"s0E#4sB8q7"g&񞋚3mϊFjbŊl>NHUOyэPQ4 qn}N}FY"mK.W?qFaSRwo$<:1TAy3lJ)*xb><ýVcMt^yPPD@5x`F͵mqm 9=xv]UJ bHX*;мŕ-#4T:l,t',~|铺Ǔ'; -hi__G~Iw]7o:gɽ'b怯ΘMK]/T;K!蔲Ty+a?$|A.j=ؾN$y7˗N^ !xf摉ȫ<6T㓦xΈ'&qC]ػ#*QξnjoyYRv?GeBs'CFɜ+/Ĵi٪*!3(;Z¹m%2К8hYtg"ϞB#*@yFvsku|01(`+o#*A{w>;#*_dez6C'hwu1AgYq8/X3vnh+dy0d]xxFY#8jsm5:1SȤi#*}KR8L#*h 1QPmB#s#4qG{]#4RR52c"q)'o. W3o#4é%ԵǢwftx_'}>+SsR&U^W'(Mݲ!X:O)!·Ȩ\x=kM*̂v%s|=ѣc`ـ=Dp@ 8qeM+nm nHj͵ճ[@'Vu'Zo2-7XO[GAkKyMԡO9~񁬸#)zL2+W!ҜHG9msZćV#*M;9D*>;bv]=݋k]2EJܔabW Z 0f^Hj8ŭD|u8 ~/ _HM+DoR#)(".B}T#u"`!#4broKz{u> Ѥ{%bIUs,cHBZfr+'O=yϿO? DoɅm曓d˳3@09<aOϏ_}yz<<v$?}kxmxճoʐ~}v#)8=)#)zyy~뗯ӷ_b)UoqXq{5Kl.Fu1A"$੃7+Jw$!١Kg 3L@gFS׺ "4VPeȾoB3*i#~FY@Mjn|jIW0Ѥ]ijàsb4=THBuh ?c>GG4Aڃd;Z 4X:>;1~cL5ǺaP?>{s=ҔicQ\eIi &(-EqЂ#*$Y+*TN9acB)eQ$j b؅ˡ`lƤTh~2%/{mP}FJ#*{v:*79$7#W,J+dN#*ɦTR'ɠ$IL.hXSvfI}Vd! UM4MDƜ#4(l0m|uYTP#*w:q)[$q!C#41N1~3=NiOxc"oUG8: M#) )wdpoxޔ:s(̠BBi0WePT/KI"~KaiD# ݉ӯ$T'a_HQ1'S6薖wp1TzZUT¹ދ]$64boB1IIrn;>wϪOʞn2L5̀çPÔms|R,$qb%+CVt*qo_ t#4ِ11* V#)5їk lR譄m =Q 4DF[#*&JF$:& t2>c}mo}HoD~P0ƛ᧾ݖ[M/S:rʃt=#)FMOvˎIA{CG7k}#47јA8YΎ OǐVPm5w]=gOY_~9p1G@N&:qxiSKKԘRvDPPEwQ`|XKuFaNj3dg^IlkoTñ;LM=KeQ@e|FAЪ]85I׭HDfUlb\Ճ.=IP҉_/c(!S@^(+mp-Q&{wķ~ Fl߻ܪX9dO"HLZhF5fC#\.rWZ#):+? tYS jblmzhjy!.+<6 ,KI#*@5c'A+'mQק٢8r\tt8#*.ejL5*1e;)ȱ'g.a#4a_WA3WeNQ"Alq.R%`v Z5.5E)4wmK}3GɆmzr6St]S1vefcݦhq0vCnbHϢMA8KЏqG+Z]qO|je]W{HR#*\a`*!]jG)F-uW%cR/kljZ*N\ 8O`(}C`rOZ'!UګJzALA-aP!ݔa7J(1ϐwWgyQ`ikV1i~CZ%#).F7#)3Nc٠>p4x ya V3 ʌCXj#nB ӃF5d902#*guA#>۪+NB UqtMh=jiViND1 vCєNE:܎h9q F\!`=H&4iH#4l7:nbFKތ9լ"_-m2f/FWܕt[ôPY9nմJm8 ؃DuT|wOi.0Vx@XN,7w2PSi#)h/#*soDR*\a6Sk}z=vX܈/Q#)~NS^65@C1!/v#41Wɚ*Yy:L !HPN/Cf::Qg~el)Hw|yja Gy]H_D@́wsn }<8==LO4N\Gr4% K'V:`'41wF|-WKT=Ӎ2@|>Aey%t i/\]CZ6Z=ZP=4PEK=u;ΣS:Xg/On6ŏ>2C[6)gZuQ|/>.0CAD :s ON8d8Ă?>Y>J3X!ؔ1Y.PEME04].Rzv0ANdTw"qDVH.|x #1вFA J!_T6&D:;c.Ɛ3ku'}g׷иQ5dB°trq#*v&B4apL]\^iuMR !eM)HJ^ _1k<4,!1P)T#)Rw"rW)ZkU#4itꔽQp#*`ilտH}+Qp*EsC 9clqBmob=5pqMnvLa8${tcQH]?xɩB#)/ż@ibTdָZ%Q(dԣ/4 Q0XH{+5T(贀 [c&Ihq#4IuX#*ۀGd゙^؇Eߑ.X>JEH(=iPݮxKdzn_K^WunUnxVo\{*}_y'#*gWƶ(ewӸv6@?_v@.1ITjP`#4UnB@pf=ά}@Ώ7wN."~o0>>^DKEd)OT#*NmRk~l_6<#*LI9!xw"Q|)' {^7CEqo0R:Ne`/-cǔ#)eWFg|! gX#*ΠI$ k =R#4v:[,9C%)4b0jazE IWyd6;=Hiy4ϼd`SU͵(I뤪B>^$*TH8E4ݲdco=4q؁EjIPKqZӒ(J]ES z] RCh0.#WRf.^=@9c!bQxzݷ0O 4X9c$B1`:X?3ruZE Xg&EwhG,!n`;_ *LtS~.i4HR2-@a6N/Q`xI_Ds, F%g YS-HJ/#4+fN+<@Bփc0[!{Xh \;Y6̠Io;_/۟}UP$TȌSHuDT^qNY\vիAl |K|^`2[kIHaT40ʖq̖6jra& ޼3?kEuF!>9#*Q>@]>t*"뎱0:%|ӼtM#KޥylmO,Y&e>hNᐳe`8&f[H Vu+͗s)!w5"z랕 V,+b8}ROGE?̺ӿgV#/E/;hP UUJP0Gi$ڢNC#;Sw#)0KP*5S,)žq, AɥU}8В1'S8GئsŻF#*)_u0]r\cx>v#sr U=Ƃӡ;ۇuQA|\Tcq"$(fen]=<TG$}+_`D{x9=>vo`YT)q gʯ /p-o4s@Y[%ɰ-=|2YU]zbZgy6j1n;YJ\'9#4#4:#*P-*>/KVݟdZg#4x` #)Bm>XkuzJ'=J3Pp oHwa v1)1Ӱj<#IC:=NV.`a6B!uXn[)9-+J QwY>ýBaYvMB:paji#4W5_ZI|1&9)v|`ɍ;lip\Cwg8Jws;CÎoIFJcjei(" R{YɵhIzbtM,LieA/"]n<@URFLAߢAi6k$k'so]gZWgxiXɸ,-&4Q';.<@I\-p8z)n#AYO]mdξ"ncX3JO>)/fvf:hꩠ`2RuٗEc:`ndU8`2żm5#lr!E7 }}J,Az48H/Wpxѱ}Ѫ\l;-EH¨itZiC^FP ?J"Pȃ#HC&?tҠMzWv*ZVk#*s,aR>_\͜#*O =vR4J7M]\?Fr gfNv6MgYx9gq!oEU#423g|eDY VՃZE<(5šGelyO<.kݒLpځ;[C>If2y#*ZAYKQ#4m#C{"'"مK;2js]jS1xI~]Te2u$;H#)U' V5r0 ò#*rU8ڈ7oWl{1Nu4ʟt\T}T}{.]x"SDOu7/-+!V hn}O\~. D\Wcߓ NK]ɬsEy_#*bXU:++yV#4r"cDCxy]>1 %5mePgw#׿G(! î/\۪^sߔ4wu6nXEH>sQ}Pȫž߱SSpfrpP2R#s"uIkW\BŨʼnbcqn R v($l#*DuM*(amnxJj%E-ۻr1<Ի#*x1Yjo˯_x?޳d1reBjGmgKhRAY=msW0׃I#M 8īWO\p~*g+\ I{(~iLD+di_ǧn]v@#*֙f#*I6\ZĶSJSgCrԈٟ)zެ,#F*(q͗ +bd?]w L_GOw_;>{ }N56WGH򁣵LY|NK=7mm5k~gg[xxΧ۟f';>,5^|yl5^~~w56>D;Cq%AxݛBzyZHwirxQƟ;p7yo6Bfh_T!>Bz}ĮG˭7R0s^᤿f|}~xkߧۍ/}#*[`M(?FUN]m9j#4+X4yQoLfmr!.A|׊1|_xI+N&%4$P84\]~+`F] ]fM?=#*SvTdNnsCՊNfxVkmQ4pNVWy?DIUl7ĽUxWN''*j]}C4c&j'P]CnT#4Lk'*RǤHHzI@-S bZ~hС^;ܬKO]=3ZV=-)*&1z?,eIT>&idx->ᤫi0HxyZ=~W痺C;~eF cj Dm mLo,HpvBh U^̳qkЬuС{Kw z\S':-@<%F;iY^U!/dVބ9!jnAAK#*0bዬdI~r#!\>us/XjP:{<.a~b97ҽhvfjS1Qb;E׌w#GDC2 ʆTeYL*ols M"#XH+ JPM'<#4k!fVB@It6CAy(YS:j1B(^>xLmf|\d79Cf*G4'WDn˭hrPY"gǦFb'Y("q΂;Y#4;U.U|a\@'i(oMp'EWQ?u:}%l2ȿb#)R~s9ꆗ/O" G5`ݸ!YwVh?:hGg׻v6>^Ml۽F.ݐG+ eȊ$JB[\/S܁*2C6cJf0Dj#g+M+c;rF6*7/m#)d\}g< m6oi9 k:Eo#*vRO.UZs#*vW<9[8܋UUX=~ca2a]ՊDlEըIFo#)t~Z#ڄQ`F%jҸ#-H'Y/''ptDS?Ski3=LRm* <NJ98_ ; 2'(E^ 'W#4(ZWڙQHGZ6ݞc[W|ֽ6iA?Zb_#)*S?^efUL]aw]T `KgT[ȲCdPҼFns0`%r"/>IPUD`\fs+.^TAޜY>xEFdYs[kEVswA#)_հѝa6ɬ39GoYC āVӯ\k0tHf}p{Wc1=hdJ#4n+=*) I] ٹdߜ79%vx;V`X-o #)Ёxe6-`np]%,=*`Wdi v?漞7[#O("5'l%J>NaH.# V8H95[[#4};Z&brX: "^× ֑8%eRXwr[ӌuL|RFAn<~[=+uMy G=ijopoDhA#d݁'Hu̢qs3?jTt܌M!r,}yz i"V1%\T>L&Ƌja >#*#T=OΓwa{yGC@ZU8#*lҝŘ-P&g+tLD> #*ʪ#*荛=%Ur|$8&;Kv*C@/J@C}'vʋ8D@5x-6m#B^qKB*FѩLW^rz~4#4HVaCq1t%,2+qZ<.!#)/S h L;|m:XU0iG$h$<^|lʬ:v6oW:L@VƆ#4\-DqLWlvPXgA/s#4r Ǝٿ!L;m8d Qr-U9xd68W^e93,UKE"CNͭwu#|2=EbEb'S$ƜZK6aڝr1@]j؜eD1^H)Łg$ ,DImQ%8Jv_8sz9}("E%F@үea拉;fSGwRFeUaːR#)hsfveBջvs^gJ@qfS>gfy챚bprvDZ0c?ӵ~s#4N;[[o(<=[M{>a,F;E{!.jaIh4fMl7Oe_03#$3)H#)#*rn77<&}Yڊ1EۈGhbX4E pSHp">]v(#*2#4^Z" -!{0&WMY, #4)M#42١ 1WH/uHǘ)ZYVjT|#*"m!mȔ\yvFم΅ӎSQa8UZ1XK%T2CXlA$oOGo01B(Y1^.KܜH/~DMxn>\ˆaEh#4/&N+)K]WRWa*C.1:r8Qk`):d62]iVCbve̛!!"aG"]TʍExSBVǃ+dDUzL /4qrV:vHw@] +>QCT-5$/ߒEqX-ihCEZmIm㘄FƁ,m6uu$M(]L1W#=FϥX:?zS"4J D@4KDUٸ]IS%r845w>.KK(Q>U^{T0Ϥ]dT y`aٶa>l4sɨZ\#)sm8F\#*MfND7"=/ww[ 6zcsS{_-Sr `UBkH|P^YtW}pѩ8J(ok *(TWċ22U\QSb"S[Np%x܁#*(' kyyYo\Wr+jgBWm|8(]㖡MUcUWw#)[Kզ1,pH(R`Z198Qfu_ӂߪuXR坅HG$ZD%6l^G#?ΖG"5)}D󪫣֗'lNǡ.N.p eu1~%WDF8ԏ6}9>UҺecyBt/'( j<¬4|(qors)6FASq8E/=u7#a]NEm-#*7Udw淣`|Uj7W-`|,~Nz+~#enIwwq|K{TbHB av2yC#)5< #*$4}}9Ь |_0&jvZ6+ZlI+BP+:Qs-=֩OOn0qyߕ`&]#4U3N8ݷ=Be uUżGlZ^&#)kŠeN|C|XAC]i{d$~N؏vȨ z8s^ O`+vR^Kzȷq~$ v} Vf bK,!Rz#*"#)ma-lQ1%5.9YܡS^,::BrTn@Rϸ2+'itYnH6-U܂WZSnۺ*Oǽ!Gx5eo7 C0@\ 4E)+7=kqB BA7 \յTzh.&|Ĩ LA8gSk~1TSpzo_8͓Uc IO=!UrTxF/NN;t@.w;[՛:T5#4l&m;&c>;g] kM;3mf%gsih]=yd;#4FeIWEb`.,E9"=V|װLVli?^w !Q쪭g}@b.!R{dm(o H0Y\(lvaW,-ӖKy՝%T#4NcQcFƁir26g#T{ӄFxew:Ia#)nrwKozDՇOy*Lߢ_#4.=c%;ЈohxX#4VU`c٫9)|(A[Lh*wk68@_Uw::kp*r #)´#*Ө$BcFX&aka#4y#)C#4/pB:e3UGϜ7!*9#)CZ/:v8'\c ƻwzxBn*惞$#,>#(9ukad*#49Ql!B]y+2өGko|^#4iۓ)]t,s4H*GjN3_%,#4P,(}X7_r?^;Kھᕆ)gu{m~CfWׁy{糝Ow>?NgY2]D(xmf8GQ do͞jٱ+ ɑ^iLB|ip6-ɚ%;$ KBu%;:t:x+;]F/n\7[8_oۡ@8 ߽_!$<&bG;'D?]܎˷_Frxk?Q#*zBa|#)';$4 ;x CgL CĹ& _|zi͇apit2/߰$#)嵊jXfso18+[ 7)M#*fDĻBA&#VҔ8gcEbt1G;(0Qr19gyٝ|{k OnT;M!wWZܨ;y8` >jQY{tҵƣ?h1͠?Dnw)vh3e4#*@;7pmQ*.duNh2GJ}b]$o4$UM g'I@hC\z:#4/$#*f0J$Va|X?[E1ӀCuv#)y Ȫ~w{nK% K4y;-ɦ$ShN!w3x ؽ |qɬG'_%yr__F0qgJ HB`*k7t~@*_jӭgB~(nM>k9p3 ֔N뎓~۽bTQ;XaqI>wrѴNSV)Z<:>_.{q5uu^_~=^9媷VCu/n MZ/ᰵ}j}{|7f6ɖMI:$|{|\^Xy#*:''oYj_y=Co_\9@W9Br8H$ńM_yyA~ ][ sl,Ƨ}Onv#)7X"YH|Ix@4G|Aq2^ml],G$Em\u c%š;HfN=UBvNr(?D6y#A_^aa#)nČ' 7uͪ}ERߝ*;O?+O|9gkVY \+΄b;za,J#F+i=J&(;s>^-@|cA(nhˣƿ*Jw'{ |TlΏ#pSYnӺ=,$X=ٝ1(P>M9`'^w#4'>;#4h ٰ.S=RTH#* 7QdP$6^}A-)6'_co?l>YI/߾Aq+=8#)a`$(XX%={+gE+P/y26/5|HFwt1‚hMV" 'Ko#ed(C敠s"0%7S+%l*$[b'|)񀳡K"I0QBxԻB/mV7 zoGγgO?߃`Y$ a#*w>wgw""[jJ;]H xe6F,!FD̿7Z@ݕh?Fz%D@q{vg+#*õ~6zs#4%hZl&cwwT헞#4&`S nUwXASͲᤇǛD:LCVkn\99GCJ#4bՏi|: hܬ#4楪Oy\2osQl&A]Eսz`0#)x$7)]#)&e_kJ?ye;G4e/=׀_S#4iGϐbrh^{U#43~Q\J>Bi+b@Lci mA9[\9#)w*O}]JDp+xBL%!.V%{ݜ˙pYB9H׾Z¿}#DiNKң@d8^E8H3֯~F#4Hb9w| e]';g &(P+4V TeCM䝠4PSa!L}82_~6;Nje ;㝒ˠU"-]F"jEl%o F6TU&n#4H$3 W%Z'*&iN Xǻ,Z ږVx諷_#'\Xgl4b<>H)1NeN!V&vpRȫ,VGm#NTeUQݠknL7}Niy>I3N>*Y59g;&^f~ sU4ȋ`f4pql֙W vSpAXw\blx *&Z/^\74JGx]4jo_p *Ǘnȑ |PtO @zi0 .Bַm$Q 5g櫮~mm\(<Ӫ gM1FqMCDvy6inWmlLvDdAtLgk rP5nAͦWjӝ*T#*TG$ 0`hފza$z@yC4ŸmU0Kkj,<]Z6k[#*ŶFF9mElIs*DLtou[VXi~a8&|q~>Xb(ڗko~-Zxhla3DO *HyK2#)w<3jGF!dluddC2?"XV? InOttj Z.G!:1PwDf˺3Nm)ƿZť\)1,c<ΎQ~ъ0z]tbm҅4 v?t>4'ee}z8GOiSՠ Ys䝶ϓ89wKy -([iSWũM7{_cRڊXΪDݝSTXQT7EsSoJSO$iY\+^zG#4*nITU?ky^'!hTUؔ^|GGdI"L=ך$ͣC1}|G0뢃{% %H|#)uEK{e5=!h+FV5/XD8.(4`jb<{#*vHq-OElʦTcSڑnL>#*V%Pb8' LZ1j#`}޾oy>JP( L<9B-5*8]EI˧Ϟ}1[[r:pG5̉p#4k$nOFtI%Q~y4ǧS#4&X|<8VlKac{us4 E#)f#*ze76{^ bI3pܐ#47yԋ$:׼j2+%\+8a#4b+yX~}}`o$WwbHoшި'w1pHݽJT,)+X–$QOAP2}'NDyncN&/U%#4! DUFG 斮YEN2Ӗ].V#*o *8Pf!ݕώ3+2@~gv.pPv}l`t8;.d<W2&5JtFu]) gLeWh#*cYN)=h0|Ϻx:W_q/n{_LYI/|7}v|gwt֒ rԥ"GR.[Yv,p* rE3૓r~5j@X#*=2V#Hѫ&W TѻwN: ;e`) Gb 36mDŽw]XXK<"T>=:Y{8#)բ&xYPj04B%-}#)XMCA0R4ojz瀚ܗVC#4*+8xszq8pIA4N2+ woqx8F#42)HXuZF7EG2&iEsCoTugŸϛ&̤N a[PYҢBVF%leI-9S_Mv[@55KhkjU]7C5C\ݭ&ӷǾ*0p&{ƵпuW'hc{U{AVINjr2fJБP6Jݻ7/݇#4+ҁ_߇V9n$GĢ' F$9ݑnd1C>qqlEso%r}ƻPșmDI;(0:nw>݈ !;=i ~BWK66Z>,CP;KQ',k~7`tAQsDĈ_7!/_Ԁ5cM<xާA߳FE6mNg=H?#*M1`G&"^nG?9B'c #4$g[pИUsڝaOM0Nj Э98C -y<#)/d%3|x#)l#)󷿳՜M{~3|Ԙ%:K-ug},`M\gp3(-x|A/?5s_o ?ZLxđ Bs(GSWu~_A@=v}7!MƈuQt{Ib=#)zϷ߼z4T[ߜe&͛ -7.7 ǣ)Ja>5y3wq#4݌ܱ7*!tt_H1A\v޻l.aRn#)}wgv<W<=nEgOQ9mԇ8ϟ۠KGv8n!M2lDo#iC)NX*]MJeaS&`4`B:Ru9-|J{k8#*gX 4B';[`1r|Z*јb ކ M&a >K}[ = VzW$1 }<6F +hLzsTzB `xڮMS"p׃dt/UDk@7Hh4z~\ku8Îz"n[|pNIBwxы_Ɠ4Y(Q)<ܨX;sWĪhV)+׺җYW~H#)hj1OrBHk1h#Z&ƮwTg$[⻣/.jȾؔ!6*C_; W]Q+̀`p#4_Ab{~TCҝJ~ Е(mma;xzTU2eGI؟;n{#)YsM"3 e}#4sMp&KnX-9kbgPmZoaNDǥAqyW2Ą#gQ.J4$ fK6agsoh؄<p~ػ҅joҨ8x#4Ŏ&v[aNxjW?0um9\ IysB\TWޠԽ|#^aDŘg0PzO@@Id)C& y+[!El4lmmOYrҜ7`7!_pʆ$z#*:s&[_'Y_IOWcG ҆%$k.R̐wjK) τzQ]:n*+breu%W^1?%SiE)Ui_KQk?=5Yim8T6Oil)ϧUy#4%j20ZwVq-vt;Nee^LH ]wx,?J^v`eZ3uM&5.<cilxq &^/shxN#*׽ E6x6b-.^@/F#4v//E>Eb̪wz|<8ZjZ-tpUQTqf cѕ5nU-76f%Ќ߬,`ͽtJ˼Ac3O=wNL/{"_Ͳi6~_;o?xrͳOvp:9vЛMxoI瓓×f(@~*ݫUR~R#4`R]*ln5(h;b_=eaNjI(XTִE Vģ dladr01Kt<L>2&̗aϛqN7> N"q|L"wH,8/B3䨢*5nЁBw.'5h&YrKUNXY$9߯_2Uw* j\xƁ.Z''m[injZVsZ{l(x'}?|LHpA/ڠb̪#O"q\zJ,W6~k;hiJhidUJ,{D^ia#47IOAg,=N}mV#)KJs- [e6h.JwnD4\OTz|A6J=SHWa)>RߨJJ]ғtx8F%{$k'WIsx;rtIL: -Wz]R9-rBIpRelyPxjIKDPRYIH'+:QbݸpEHEwbE?[_D)ćW.HmO䖿%ٔ l'8Q9ȣ%F!ʲ۱pu35$9<4,SNylD~C^PpzZ-?i'"[H fro'[q,vT4,l9֐.NI$gM5w?Su ̲t;g5.:JΏaVu+NkfoDt䟀>-;A#hLlF{eB7hqDک6czfr9,'̗;X#*zԎ۲>ݶeRhedwrbaQC#4#f)p$@/vGgns_?kwam4xyAq<+/ ueIqE8Lyg ?-k{@UQ7zZR8y'`xA̐myBbR[*ygEB=:u 7;G=thI/{@S&nm'$hprP9AAD|>ƛQ|2>y?(*E5#ǧ ÿ?{i: `hөmҦzy'c͢lا=ݘE<J'Ig5~v"M?8o"1ka+k_Z?B띷J+6zAXhx]4۬Lي.&mMSd9{gyw(j7{ٟdf#8˚"TM(b}ֆ DWhZc)a.ٍ"8ey64Kc3$K鮅Rg\Yd%=foθ$)ԩLPnqFRhL PBfKaXF)|~TB:[(C6A2k^tgc3a܇`#)孔-}ZI]r#*Qƺ-rnBՃ L0ʜ)N$iI;љ`T- =SUR'ⶕ}IBc|E#).fZXCe#4#c+e #*!2ABtt .߰H޼M6į;&B>$Cu#)qo!]늢hc.>I%dyC O_,n5/:{c#Q8L5o bJ1Dﻃ  z6_xw\#*+@Mb&bшM}콎2ʅo8̄}\Ȧ"rC.bhۋ8*q`o6٩?LfWpF`DN&zx3S3!IB“O0^"#*A,}LٴeFHǵu*=5E˗QE?{Ƒ#*#*b.h ;g `] <#)ZHX<[o{{m_i|vnL}07 #4@Fhq QU}Jn:oL(ÇGζ-Y嫃}Y"J 4h%B }~|q!H@5_I"P \'o2#4|e,{aRҐFwȟ*ibV)-! iapp:Ą:;9&#*a5w3G^yl!6+5qu\ɓ*ݮ>9-'.!|Q}}BG糐g`vR#*F{kFQ|ƈ&M_=[qُB{IP|2=gc '4Wb]W#4ۦ'6[Ҏg7Q-ͨ\ЅgECHM.A}26dLƨ{SmZze &=8I]p`w8nuNBj6x'PrM#wm$bb#*hw}4ѵP!T`?>o=~^#41c_9;N{N,R n[у\b)N4rԾDw"grVXtW+itt>>Kgzx$Np"u^Xh0Px3O\\?Ύ_q'uwy>#)_Mp=/;(Ž#&7#4}kMg}twjPѽ,3]Mdp?Hݯ+MWTtDSָ|QID*)82]`,(&0:.B3 ښ{$ǽt,XDovI#*t#4 #+e<>gV qd`@W"ꊏj*2;9bkkbfmը1j(ἶ%qBVpH1kʰS}oUElIh/& I|$8fsѳMq$+Qg%V;aNM>pܛ#O^\!eGVk)mg*&]4\5Qe$,% 1+SzR.֨eRΫ\'NnOw]O lMb?%u˚PPqju{$7{5#)&d|.e$.Y)u`&)IqWc:ěP#)'>?"ߺQu,}՜PvΩy:J; `:. $/ {(]CuV^XTUuh:(ScW JiOwp@67}<ـ?_??./bߐ҄ |)aȗ+*yb_'oo`&_F9B2Yx{ uaIZߊ'?Lᎀ}31zVX:>B;;e}jN}!|uwv#+=]zPP|Qҏ$1Y1~R}}tVR2P$~>E#*D2,>#*/wreS}aHÿlt1KuM6~i;#4iNJ?~ߣ_/?e*#)?>vXTj\5PrwLpϒ^;KBC"l;E#)rl%:&d##)9~ʫa;~.tI}r*7G"$؞Bk#*e>?іRhr/ >ׯMNnY%ּC-R&]foah3fpe(Ԫ'*LnTU=H]Rя/VӄgTrRQɉ1P&gB ?5w]J~.?YǍtBϒ0\Yq>E@Wg?,(d#*Hޅ'q|:Ig!?k?MB_}1VSvz~F/(,MԯbwLVʁ͂4GlfyZGLJEԌ t)}A@N߭FRH9_ƺ76O'vX#4"ȂufNuB%xȫGb#)=vz}[|}Ҩ~sԢ|#4!zBK+zC,[BUٌUyh7U+lmF3#4j U*tԡYm]y"_B#*h ӓ"MyFcgg/p3~.&cD&h`aWY¤zM#)Gw<=Lj Ȃ FϒGO%!eap@3eTCf0EZ%n*wsq_iĽ#*l$EIbhOX {i#Gڐš!nsX eJLW -QGԝ%n uSQE7]mf 9ej~^Hԑ]zsv!VjOfyԨq`ZI?p2b7OW$2z< ek5+-c=bkf39u˓S>Aa'?=0:8oL^Nj>M?Nnލ2Һ "D6#4_#4$o-S!.,F0Ƣegr_lOh ;tm },8#Yh%]%zI-uyA,*"Fes#4Ƭ{Sg˒\bkNrRAd3Z b,#ʧ縦=WsR#4&s\^W{7D > @V3嗋gye89`<߹3\B0MH+tYAo+: &55Y0r,Y6Z7T%00l&,SڬYt#6,GzNH4HVM!87ꣀjbvp[ՐcE`OI~MaHnjOq{G5zĻS' ϗ*yn9&NMDzBL+r&#) ,쩨J#^r|t{ xʵո*guQc!٪aUMJfE .^ M{]]OI/ػ^&z\3{AˣuxP2e=Z#*(02ܻlӨQ#4Y$Í == `?7^*qN>&ңͭfXe+wE"2y6+]" mX є z gvP*Fv'W|uҤ3|klItJ.v92j(?o% ,{gh5KU8Y>-92c sjrmkr]ZTvhp]jӂZUtTdA%.p}m:.Nٵ:M.K/N[^>qv˓Pu:yQ5+ӱ#4}?$o$sr{T6:s[;mPA̽3^E&4tsvyI~4ezemaӓ ~)l=(?09ns4+"HK:GL N w5k ̢=-#)iQ'[Î1,+MKvO,J{$ܬޒG - ;2Ȝ"UD誤≙S I3A\xX|$=[\Dl8* u5Gcc3+DdBwlʺ*OI}h#*7Zcs/ͷo~݈jz oď>W}^y=4H$ӐQu/`cThfx *X5Yoڝa9E٧=MD͹eFAsL[#m6@+=ioúz'K;'Bq,n_w;/#4f)m~Cٳ9`vK{I@ZIJYeg:zl#Q#*I3^u#&-Oj[[""ܬYyۡ} X 2:It?Z^䨸5 }}}H4Svk%Gߐ"c~C EVrZ%#*!=UU;O = cxo4`Jch@Q鹈KK (JZ#*m56}aj>4WSUoǮd3NkDp5As+3y#4n+f)gǔ@ɣx87/cẸ-^i.tߛapi$>a3L"Qʻݎyu/ƾ6u>Ȭnl:+>t;GD@FbΛC|.iu=dmpu#4E<CPUh W SbN#4 FQ٥7x.1lJ']^O\!Mf~s'B|NdO#4>G` zy^y5}R3gJ`Bk\<6W6aBƩY?cj%!.=<||9qeM>G˄>f{鮭3<%ϬW#4h]k،R6#_Z#)P/Nm#)ŕ:RpjŪ#*㣔Yxְ"Z޸jTE}?K|z8Fi moѽnQ';GkTJG;/UE^^:؟#*%j;s!p}=BKR#T~9׷~&J 4AӾ7ܡ^jKwH#* k><D4=L5Dٵ-b#4)0h[\\ -4ڏȘ0=6r鷏]_?ʐA@ĒI2a==~^kk!4#k#*%KIvo~džz XuFO favL4YEH&~Nm7#*Ĥnc(<0zx yD>X7l] ~&-/kA9n>j0}FWUK:d-M_v}f}\oa"-MBC{< `OXPKA#4J:j;ʃCڟ9:VeVyLY:""K`{Ilulcטu|_[#iQ! E2_D&T? Z&9ҏhJjbgi|#ȃ}Bo 51@i-L`%?)񎇈!#45/\Fmj+:AbGԩst,Zq,VV#)o^m[6:~å4WT$,2zNgLAN.ksk~ *Cf8hְ$.~"]GB*_${_?f2UBy7#)A`٬#*88?PP ^% b'(-s_C|E?~x?Ky+Gddeear#Τd)i1M4QwVՙR#)TܳԱ:,N<MnƭLaa`AN#*ڒאJWK2P@4m¥厪 bWɯ<=?8i^W_7쪟.[@7{PA,@bqP[#)vk] jg=mz[\$Xsս :*,ΤdZVT#*2:$fGNkL+#PV3#E ai2pddܧ$־'`OO޴,M,ڎdUL߉`plF18! BN-M#,FYNP||oͲ)|l/cҀ,M2.O^,%V *IE$|AuhM hc?68#* kVT]/U&N4)Vք* UrVxE{v7,n@C/·5ZN6MtOWvi{ܺhvnUDfn46N_.gc>)¥4P[im7nN9K;I/:G8y)!ԄnpUk`z4ͦr膗,M;oLe0D]WW߇|Q#*v\jqږp3?I|Ėu[U6\ qZʲ;y7Ǫ8"07/iěԭp&/x#4#*. ]mr ܣ8HYNQf.G7;M3;ס٤%d0u*"n|i_ZqV!%Gv=l &IjbƳG$ :۝M{c.0Csp7sZBsag#u;qk 1:.iܲj28cѸ7@[3iCO nJh4NKkOY]w[x8#4d䪍E_>\톫5*eH``ǎҢE%(3 aEE*(? OvUxWՏdEM9zuY|έMvɗ'qa)z}6 ylf9D0A#4 $ g#)U-$qk(($K)axSC]j>݀nTjf[1L > B33H`d#4p $/Y90*+Jr_iY]3wxyχNp.U&JqX ڗmJg޻IMUJ8:KW|MM; W)I1Q ο[dr_k}zq +jŴp:)@[e!AGV9 0ZnoWď|C؀whߣǏ7|A rp ^!у})v#^wl#4߷fcĮ8=zuZIuBX#*ۉ .]ˣy XCK"s;u)f_FriMD{eƥQu7/'W&Z:&#*B:ԉj+/q rLir%N}GagR8I@֡Q&"?%: Q9#) tNʳTl֋3l`kHYmo,YLB=&͡0i( ]94UqOѺa$̒L#A*0C@!GHo^SU׽hH /o_S2u HvH)hX5njur)]w,tyB\09/ `w_ڹ#[bWywm۱#4@Yi[0sV">,/I!͋!ѵ~cᬩm͋xf.L&۴FF(pnҨC΂"j/w[^OJŷ {'i\q qIRםMm:^cٌۮKRddrXh~܏qk1~^绉ķBydw5"]DWxsnǪx"+9DvTIф+#)BT9O<&(깣o퉥_s[II/Uկ$s,{362d#4+y$Ӱ=U씅8 #4/ 8X\%CN~b )M{лH<`< boДPbHP9S?S|VCRMwN>*i),ԜaYc<8@ ӵXI7aTڛR'4#*rN3.Lu+:*=#)ʤD_1M]2v:̬\U3h$qdMHٜr93g&o˩(3]V& Ԟs|Ff&ȋ9CeW%[;r"Ϋmnk(ttg>Q R@- :-=J46+aVX#*Ԫ#)㙲k:!gbaZ6sj.!LFL ;?88,GH_NE$YPC`Һk,G!#mb5 0Mg(RrW圴#4Rnj.^~\&3!Ћa ,C6W+fiwq5hQ#4;B瞾󢌢%ٵr'[Qmzm#A͍f[I?K̞jreߓ☙zFZ6u+8OV8Pbݹ"ZZwة>mBRb\-3ct;i㼻A֨ݹn_INVY֕SS+ɡ72Ir86>V-?FxN \hE<]Dʟv*KMtIeieDJ22p)nypAi#ihogjh}n,?Wy{h6#ݣ1)8O:$Zg,,GWT-S>JԔt]#*k?ē4ucxRjiʭYUwڜ([mLK-R2c{Č~:z"#*#*_#ьCk6ل۔QP|s{a #4wD>W;uYI˵0ϯִ'#*]l]uUe8%.M6S‰<:)a?i%G˔{6/8p4~!!#4rß`\1y]b݄ Ml/nUkŴ4n֌ o&4ƂyIQE˾*4#*R(.[IzA۬Běk|n>R8gW<|`k]A $¤2Ni>"B7,CGN3xԋ̢YTCXkG#4[޹bmE7#vZZtHzʃoFJAp &MT#*[O8g8YKSOoڰj&Ѫ]]NNص;L3Ak'd&3v>)4_$kQ#*FW]+*pm4o^S?~ۛz-%4w#4 #*39#*QSb&ޘwMIGy1I XPY7ܻ,m  W*t+؅`_5S``bv@,a?m~'rx no:7!=>Ks=vh[iwUT7YbJwnJw?os?]hw1ףx4̯DZy%#)8O675XZ-sS^[R++q@ex #4UrULGO\gi-+5 ~~9:|l#4eci: CO[{/޴O^l$`֜=A#4f֪&5oj_\6*V/wNZgG--3jV+18|E!Z]#43h ?L'&xNL(`1(~ٽ=_7kjGk͋_d!0\+HS7I#)PßO_~utzyt#4=?OAϸ]$9|MApp+|lwZ;ǯhf[J?H[ =mIkMo7a#4_L?jS0b 7O7J8ӍodGLPh.\%anS[%[/~0!W}E_? PK;)"gg!AZ,~X {3q&(NcE# #+ao߆ñ]GKb\Krp56 y)L9-Y 5죻{ڣ!\޶F-gJSqR*ueq!>3Tr09#TnG[MV{_gp?CL%x(mNx8ȝLtTyM#*,$C+P˚, oNH T0Zp=aimIuh , I.jzܧ_GaS4g,{ ѽeS2;r#4v%ǖg+qWQV.m+*MIv~dFzyVAz-Ssq~m;u{OS7geWZv}1nߤp˭)v5Tw#4鬬O/ ƤZM7!'kՉ}ZLZ=ND'sbjEILOg6QYͲVnz1hQlN\Q_=&;93|hb"?0:3=z>E폮bik| AiP_.YI4$2ʿp)D:hW5u#U/)XLٝ[j #)y127P$vS) i¦wn+gg?^]Ε;]_O|r%4"M`9kOrJLȼrZx3DTX%󛄠MTgJ+;]#)l"*WI)4ӒvRw}M>|躎 L%4rS&X斶:60}gZu~`!ypyW׶_~bi0;w) t<SJXEӒ2,AUKRs]E5JG,GB4I\U~~a OV,Y?ҾY?v!Zqpk*_Zoޭ\Yq ?u͘w[l[G64q-d]hMoJ#*ܻitQ:Ȱv`"6Ko2TM#)%;17(+YG~FFadsܤ@,SNnӯKzfgi<}k:)'&ݔV ckr޴%ՙU Fm|v#*N,\(Sf6'Z?J̰ 8{hj8 lXP?s#*:m0Ln͔J]7ք@D#4`q/qU/o(^@.ذu(OLqfkȵ4-UU%'}dL/cE~Hjk[oLރjݖN%bČdT䄈@yj#*CL-2nGmvg/,*y {<^gھ[pq#/붇aFec|mGevmى7{G&Xޅ`mZy:NP%rXgW}gd|.,!d615ln[Y}XFTOőet %判1u%NRmA`l!T1l v9rk%&@f¥ޞuLKs6a|M `6qBZd|Y1}Jgoh}Tv= م0LFr8E/0aWa_F_#4`|rLow]Ŀ+@pvq|$f- l~Yzmb`QUY)2egflCՙD R 1JLlY_!eWҪ NKc\WPk#4`7=JA8%©$!rPoIpnբL&#48L}d"`wdg綀QnTUtp.qpŁPz'\JD(V+4^Aw3= ߣc\j޼M3F'Q_͞!2M,,ݵ4?J-#4Wg;}{dCdf+`$,#*@.pҺ2QHklq&IZ{=d@\-}.DfjW"j),,rB`^;/Y /9b&8Tӛф02qEO<+t';ʑ?!=* ̮P1Īɻ`L(ٽZ„$ܖ5l6٠MBp;Cq+0,l\UNKCL3#4"WjpDMVBK຋/kIKr lg3BUxR v@kyS$P$t@Z)hm5#4|!s\N;; T\s<M#4W##45C$._'Ġ@2޵kmI@Et\@SƦT *x4l܋@}tuRPRqyE/kI+aib#i4H#N{Drp.UFҀɊqCчJO;]HvXepB*r++jT[pBcL<8h? +Jʡ8SO7- US$ޙ)]1I\ݪm]hīn2n< ,4sex1qW:?K/*aT}/J|n<!ߡH翅祭࿈{(7`Rr=вbYr]vat-ˡ 'U}'f #4n5SFhD|l9#4!.Uۦٵ{DN#)iU"%g(*sm^Ǻ18nb^ZCyK!}ڪFD:-Z5[BaI`Ye "jޠ`8>y 70#=gJHf`O08>o@W׼R$xMޝ<,} LDW٬]hй@s?E)c˳?&Baxk`sMNM&uh@M~uY]{#VڏIi`B&m0DaQo0t6+YnݖfE 9Ry1F.,^sa&qtm2X#4IjZQ 0K\/*+_SloYDfC%fxp-(14a؞Y#)+OOB5JD0/Q辦j)Ϳ[ gl嵠 f-Л#*N\Ƥ&?H]+I \ܸ - `dNp#4mښ*zKXMa7ZqFBH"'d^#4"+a_N. G7xk#es0E)P0//6Ob36 U򮣆NuP+jN#k s̨C˜2ܴ⁔*xdɿBf (9)eR;n5IL#)FG&NYhKP@i$Whg\*ac NE@V3z:#4_7c)CH+&ei*#4/%i#4VVvւ@tΜuG1Ą;bԝDwIb2UvYFX攨)`wn;#4[='r|?u#4;aQ+()(N;c{WRbh"ݗhG6xmV38 W,@l$)wQrIkI,P|}uI:>!1(-!<;t!ʐ\-lZ*%mKᖗ] QY=qm`j/_Za1:#4>Rei}SoK8D_F^gBTAߵ5#*[?try 1:! jA.Q\]`˭`g'O~ RtIg?T轝d"oGDC@Rl UȓjDzWf>'-]5´Bvi=̞1rd,mHmB.O#ҁ>>>[0@c_$0yH3Zigq˳$#\Ke , cya=*u_f'pWB> It lϩM> &'b;{I-?,QC'B lH[60VYDˆ)1keЩK5|Aa4O=>8`-nצs;;Ơ4AREkٌW#4Ⱋ? ɛ#*pvv1&*P]lB^p?SKO{?C7ue <ϓK~ CP!DxeǗ`۵kϵ~ z[or^#e8y^c?g)B"@%A;Ăvʜ:!RXaưml2?6[~AGSNkj8!E?`5M|tֱz.Oŏ3y#)J ^Yk}1g1+gt֘(V< f:%4<;R׭VoЛ OdӘYFz0wǠxw;[?yuzW|u {~D^ ]Bhqz3R5ҿ;C&pԲբ>.Ej;gAA4T/J%t]`5ie+˜eSj/T5Y\!|"Y{=2npf5#)Q-.I4&m/z7*Nq(2BpQ!4waSkCg6WeW%c{K~CGQQĄ#*4EBUIۦ8#)enE%/A#WjkC"D,2ꭢ2INGg-XuڃMZA}{H_}0W;;{Tmsd0/GET:/N`J־~?Q|SU_GVLGqvGRbܣAgȨ=#*_P:i:hfbn\IJ_\=sǨ ƅx;/Htij.Gz!#Ch5ãoqGm˛'o+(]@ft;72o#7lY9[TTBG֍=h%@>$'J1tMÛŁ5!(V{6tmkm&6Lcs`~Lo藑֠TQ(R:ʑ^:҂XGXF-{ͅj#4aC%g*a Zs'r`e5XG^>Jǻ~,N8 ޷y&: J#*~#)~CVN!|=1ֱVʦuQ7_"!ن u lP[szs´,=ESaP2fuIili jꆱhϞYC~LA@1PX1sE%> i Xbs1hSh9UV16ի^TNT9Y C}U丧jr` a#)qh=\ڶ`u0#4O"4GKɕD}ul" H yN;9LSWL$k֐ 5Sȏ;w]f"#40+ݥVhop9>y/-}P/&UP]~/Ma4h;CMϭF#4ZǛJ%j`ExyFɗȶNS#* τʸfn&s)M#|c'þ!toyں?9ܒB~{khg 6}#*zD;*Ҿ?5 R:ӣ 0LT+W*Z^RQ3'OŖHj#*]RP#4ϫr|K%=(ص#49`a[sB,^ĭe YQg=fQ׷O~EqpM.8.XHSJ#)ŢSz#ǹ;3%#*)o?{t6 mBhFfїU2 lR5ʪvv^1fE`pUB/rR5Dlҩ2>VȚ`0i.JH'ᚦ1#4KS#4-f:+ yHȰW-:_ΎP넻`nʗG{ HJ!xj/FbSQ(C.#4%RcLDݲ$XUL ĚЙ| T&J}~߹uy]֮s3FE7??}K=.+m'<8$6{|]t>ǼZA vFi-cA_f.8#*{?Mz~.9> {܃._A(D5LwR{,V#4ٌH<~DһgN[/D ɔ^o x:(c2|o-K[r ;a$dogtT#F|hlNEN7pA~xZ&CaerLO(6ʣ?HCN9TvoS'7Q,gB(2Q!0gO.&0gF}BC:;{x#fye~vd=_!+_ݭNN'B7; ;DaR{cE%b j6`&+;~8ZO{pZ3ء#449;9tLy(ܴ;ܜb5B.JVQیƅlCΧW%[;e݉ejE`&b'֌S!$BӛsR>{SR| khq3[Pf$-.)e+ Ա.fK""d_&]#4lSnm5U䀆Y˺1Tvw~i흣׭ݽャ7:>ywƏ v錣nrW4B% b^01#4.i4bt0Ͱ/XZ v>cg%ObW=1:ZVdk#)rJpnjR^TŪṓ$+#4!&}EñD+rz:q6jۻ4:H,̤޹P0>}A_a)[f"))_`@DR̚2?'"'clȼ$h4ե A1%8&TSsJ/nygt8i?"K%WuC[1 ZbfR*jRP9EaօZ`t8MRj;->0/\ Vq,hQ">F!qDxWgn\3 l 5':눇3N#4҈Td-^+ә"{l8JX^=\pzyƳ#4$qջ9c`)˽|toxs]'0H>zEUe [K."²Ӯ8Yx.6!,h!-+p}r["%7kN\{ Vmڦ/McP&%C q--G#) {Bq| KQ``pߎ{ӟOv*I!k|2( 2 "$گvast _a݀Ts[܅ L𨾂=G4a.BoLj_).,'zXowΕ#*bDGwe@,^3dKϚv]ђpZ39p,N0$a]U2"jl=jFe#*Ǐ}.#*<쫙 YL##4^nt&k^H9Jl#*EvZ/GKާQlI'F-[ZV~t9)i*ɪ~ch;|fBEiA#4m0Hy'5(RtsLMIo(^4Rzl b $c9#*8 G #*sYʅvi1Ci:5; E:]wߔ dN$ỳ}A$j}#tD)XneA^u^6 0Nݑ'AD膭_SgE;kTW.i H)(Y^ K##'^1}$O,Wt6J;p?vJ>?؏N#E lD6GMɎj.f5,Q:Jzpt;)5/ ;#4#eHoT#*#ᰈs?7ITf ?nXSYL\JV+W|m.n{ŏd$c_@,VVz,vˇ;ieqVHӣpa_}۟%I%O2yJzD<7`;]:f| ,043F q&@-9Y?)LĶMʇ'y1ݦu{co""f!Q]Qgjlޘ/_vh"gI@_8R#4#4 @p W¼\=41 9pl/v_l1j~3o˦Ě l1BU;l;#*Lp,Qtp#*<4ov^zf;6/CAYHf#*yCYDSW*{MfdשpAΦ*AG?v>g:rpe0h'$j\5{#)P^Ykr/ HއPp^ɠᖗ;#*q6ۄTl?]%&JoKи#4ÔS4+ף 9Nqj͖B4#)#4P.yD~r6S9y{`+b05_)=TFW,i&)#*5'Fnboh#4!&=RU/P%r"cP? ׏$l'S֐ԼtCN'{,v#)#4"&mҾEpn;NIgԫ ~$;[%iJ$UZNÎblp;|\_nK{Wiblwen#)S#5O1#4LlKr79u#*?nH聯ΩsTNWP՜&ufi4ߡ.[qM\ɰ>fPeDaEJ7hs)VH[s }ˌ#*dɉ:~t[8h5Tѡ7#*\NVDB7W1Ulwz5dm`|`bO|z+o{C6s S:XfBPL|zAF07YBd/|^`!n^ ij4Y#4:/$~)^(W#*"c1R7n]sz)O+Aٌ#*q&v.XoC4D[VVRK\*#45ɀMBD/p눚b$OL]-”k6|u/Rgq>wO޴v|&?(N5P|Cn_DZfp3^%sJO09u,k:E|7i-Ү4~`{76۴TV_#4߭ks-ZTz\47y˼~ oJ3 ZRB!D{r|M$ l(N.!6kcn&&Tih-`^AO-0"w.h3#)m#).-awX7ypA!.!YD\#*\?Q[TO)݊B$dmMق'P'g#* sYzg8짲tK:I :Ȥb)/ȺLM*_-? XLF9?d2puodwmLBEU5M9񐇼40iݣ8pFQm#&4vs~YZf \"96aj>&3HnjenC ƾU8haX~ɦ7HX}Vt9{ Cs#)=PX#*#_}7l!IHysd__ sοpPK&1/0lg]AnĖjIEӝNǀ9FÑ5XlF{p e5 ?#*wæz0 Xzo(G2$\_yk] d#)@oN;"P)O\zj>r"]rT q?v` %x?Js0IsN8~rZ: 9EoVz6 &B@WRPi爼R,&4JЏK+p:#4^+E"蟺k_{=`H]bf8JNnOK+_ۙF~:爫YJ:D*%6λ #*WswNU=S1!*\t\-a0-ׇLA\F\SBaRk-P0de՚9m$tV Pu{.#47H2jI%vt6B=ջMXT ;Tmׯ50ϳ3iU92g?f-2jtqg*^|fD>ϏNoZt/(?8{ye%}b+2?"92ȼ`|Ibp% r}[z#*7͍O~}1W~}3н9@@#ނ"SRMh%+ ʫó=9{sP+8}sz2XfA?vjM1|{=<98@zw]zLƖQ "ʳӻg;$Q F1Yl"C#O)2q@]Kir@/l/#);;>#*<=ғ'j\r}k=[OadH;_;p`S@ ,OjɪhB2sFPɽاm5  \quqVjBzFƘ)%rC^q8M)i!5;pp0a׻v蔮HY-/V+fwպ`EscP v EG46ѴOPm\0A+"ЛB9ׯm^42|}=4{HU{ˋ#)K9#4q#4vp9y#),QԞm` ٖ"EZg#y~?Yox[y!Lt?}]ˏwÐv%&{#4?`M[ -P6Ci^+|$kmM)PqEtpGbч1OZ$xIjOjH|T҉=H)?DwOgGm"+7 S^݃ym \Òvz Kv G^&ۥϏһnLZdJr(ffRW]"rG5-3+&F_ [39`u͍ hKmuvAQ` ${6[f!7yiͬ0\+tDV%ВP08P^"=VB4[{׍EGM{$AȉϿ=ة9HJP,s.\ys.X#4'JQWL,L(4):NT^4k0&<ApW{i#y^MfeI#)Vx"Kc2=^y66Ro} {۷t椳+G#44扝aݿOPZs?~8K#GEg߇}n5K85&6 {':#*`IپmO!^"n|´Pj EMrߣhes|ܺtcݰv[Zzձ!(D"0;BVްi%s<jݮ._uTmAEdIX nqqFf %<"juԞs+mqQj*|_ձ A#ؔs -z#42CtÕ"#)HF=Q#)E;󣓳äUU2dIa#) vKo%!gtT5s}Q#4a=`KipY9J;U*UɁK*[&!%H axQ @k@:ʗYgjcn"eA{m<|]AWK1F[,NT})1#4;7A,t?AcNn:Tr aNgо v+Yo)JH%/I#*p&s?4hZbgk;[wK{u>RN\#݌QXچGhwɍcqet'j[Ȯȱ)kQ\?Agt76Thg kQM(r'1O<3w3Wm/}f'62O7'a}:[]YoB.\l?g {E!HM4#G}73Tx}"],DsKk~71qJ֤+rï &=7>x%k4uzQq4]k%gr b[n(P^C1ެCcPLj؅/,6[6^+jNcHzѸz}vWyIg%{?(e3Hw4яMRBޫhKW lh.Qwc>GfHHHl1ø  exMԱYLyN̰bMNlV~^X+#*^2m^Z #3(_g`{L4qRgD;#),z6sD\)eMl)7J4#*ly ;eղHȒ%S/~Ti I`C8LlC_8eK"Po#*PbŅd=dž\j{E>'>یqBNPs0CP4Ƀ""՗`"2L63؎eʇt*AxrmuM/Q!=Y T@/:aѴa+'-πl@(Jz#4m7ͽK<-U|r4X8NzUDZ%)5ME +FLNIqW [/,h<2S]??~z/kij7D ݝ4p~ s: rO(\u3aڭNcL6dOM}N c~#4Ƞǰ|?WB}AP|a>kE!#s"tC|Z^ӵoĜEGo='Gxo1R_k|Bӝ{1lb'/骑\Lg1転c1* %G#}C) S% )=ԷzmEJ.R:u]RYTr.TNӽR2YhZLDvHF)8@#!qdU:vThTZvBBDNjV#4ܖJ8nlWw柏f}KzQ`x9}8=|?Xw#.JcBwCw0n'wX//xӃ]@;b%\+a5V_a#4wmp(q}uti%ikܜ) ܼB#*0Lcl,%Т4,%'qTd/m9_zK;WJ_-o@Wu;Cot"W,XL}GѸqo*+/dΧ?ʗݣûgowvߝܽ9{{pmtulAn쿼;w{^)޲褺sZ#4hF_yRQA1y4{i5B(v=.5 T70J )4i#` פqy*8ш"فN<>jZ.vZ2\^Me̷P=>P@[O9u41"Êv+Ώ<.>RڒGW8ƒ {6|}y* IYva^1#*lȏegy[ЪoArH4OnAr]a(J$LT[i]"I46Pf2"O-[\9>Lc0%l?{Ǜ'_?*EG-ef(aeC ܥ!j[1h%!PaDEM%q PݤBʄ6'T(IF7`&iF*i{EtmJ7Qg%kE @LƅL$dK#_esdON%Nak͋zwW@&4Uz3.݁<XUΤ OvvNO>Є>|赆)2zk仁ʏ尣vg-&iܝN\X:PD.Nt# ))9m9ڥnkF-{DJ8L gQa!/fس'G |GUYBqY $nOfiͰU$xJF7{x m"5ZK)2u`q+p"?}c4/Q4AvuF 9מh4#)Y/,}& Us WR6Ft #Zń zHWtee%Z>hӬ%A. Ⱥ\L9iƃPf-lu~Q>#4Got5`s՘_T#4\ 3>t"A n=cUGg؍_ʂؑ_%(Y⨢KMgܕ#rf7[V]<ÿ ЉœfVB:\TbʸiZu u[#*Y[B?#=ig϶f岽0 #*^ -1#){#)#*v=#!GLd 1p*|Oy+f>Cǥ^3;}*{՗^Nb{uz¯]S}?vr,RGpj~#)%I-=%2HyQgBc2ܺ?.d]ɛ.QPpл.}ZŹ#$&k)H;Z?7]ffj#*7lShיxç]{~e#)YyY=88)e$'I++IVS$a"ކf#)oɢ) 'mPyc#%88,,.]}}?GYƦULQ)N&f.`Z7I~[j> ,_0`7/GDoʃ1")pRUz"TSl?U T_x*l[%'"yCm#)^E \b˪Y|8 Ӆj>w׸dVl'N1!L-נ-#@_6]^DS}*!#)$$3URwY~(>h:~NbȤS,ؕP#){p#4 C ܬ y0i,[Zw,mF2#*~a=h3;ϳ=XrkZbSeVl]UѦ#*q`og8'?#4:<~ŃuC:ZRO;盛pe8Gn^zf )KOAU|6tj·zKU:ƷI1Q6C\-^wIUQ[\R ZI!|9VJ*c3~7{{:kS'B:EiL[Ʊ28rW|s:yzx+QOdҪ\m#* ҰӉ'yߙ=(MXvjJ~\{S5?نt:IUuQ3P}"[QS% (7RDPUBU&T@J/_=7IΰX0Yj3+>z괊;;= sFf~F80S>{uaUe bpoY#4ҲKn^CS}V}~OӯLnݮOv1'O9v%W{ɽJcn)/hCޞtuoՔح7Ui_4[Yu=yq~{=~tOL$;v7wvd󄳡^ߝng6S#45δ[7& "2q{D֑o `.(Ʋ_M"#*]I%~#)@_|T573$AA׮Z2D#FN&= 8dry郲^9#*$IYY{q$'s(>XjcOKSxl1pOK -ZH" r+e[L"=J¿pxiu5#*L?8*`79%[EcNƍfѼFolN3 &Y&`E\ղ4. }qi"am墏'#*:iO3(éR@ŊD'eLcqZ/ Ԫ*{-힉aT}]X5yR_uM;i;"yxԝԝ*w.D45M:^p6DyuZRD|A`c꿹Z#)È;Mp!f\#4uZ/#4F71痁ŋxDi|^b6Ȳ6#4drρNW@N9'>tfKxfYSqqrPayd^iQ~(#4Y@rfRӒHOY.gO΀w<껚Z&?9QsyXUmуs#4ĕ)PZRq}2͚CxmMuڍ SMY9zso*Zz1F:Ci.7Aq]4/Mf_BިWa*+ ?!3:OeSO91IXunDM[+춚pR6b ॠ;/oTX/1`X6k3VKߖ:dr9]!caYK)#YUT  H#*qb;Ѭa`1TOVH&ˆ6+ n%'i`сܛ^#)_(&(pݭ\1=@?;I!BԢzխ9EˣH?%~#4$K˜Kg~nq=f(LZX#*`314cELp:hU<Z#{lCYi fy(8:mi:x/_tk]{Ck֒y#*abc)(:UT](.S:oy{j2u:A#4HPW ddy A9:O3u["phioEe+B#22 "vn]CzIARbH2 rd2_3=ywkg=#)$kȝm?Sʑ3B..%A#)F:^Ϟ{S{Za.D)k;ؕkװ-+q ?l=huJ86BZkua&Idtv!;?;gx"#*=D¥SjE1[$HcXـ6JZ#ܑh8,S,XY+-_k\yjkuT%¼PW%U@$a~/]iQ"Rd{L]_ɋR-˞-`K9/Gx-¦CPh4<'d)kڞvƏ΍6')31K#*#)ʩsr83Ԣ:.!ĤՅ )nF"qW#4-\Ƈ%tV)R/#*d1*-f#4P_Z4<7ٌZR7jZ#4\ҏ1c+TX'%#4ۚvzZAG=$P5cA5oRrc@uH*9ebEJq{BcrLNni}CO὞:NBr9ȋnes.!uyB5[)R}mCi5$4|,>xwBʓD<}s?=rI{4Mq7A\L;ΆV FG#* ?Q5iD>O/ҠcqjYhc T;P5RhNLΊ$kri"xvqSCg"Cr8e&-tA #E3hx3'?xEwn1Hp:IQwLwn;'~:hA%#΅H|%1u1i)O`[9gXBj*]el|4ެW:qW  #**ɺ}?yPdO4vuR㖍[+;adڃ&&wި:PTG(5, *NJiq&J=\^d`42 B};~MC{ĭ8lx 0*:\A'<51!έ.2c'h~Y>ʭ?#4^7嵺-v8E]xmludBƂYxa(a z6{tR{#S]/w>o2iEՍ#*$j=/xׯ1AQU= \|Y#*b) #)hL,J߉fMrjT| lSF&dZ#*cKOp"YhTPn5n/~dXǢ?(%G#^{xf@%$M_A_ 3|GG5Rli~⹱?Or"#*iDkaC^@pS]@ό-{ȁeobH#)+j6Ut=d'>9::$x/}đ[\,@Tszgkğ%!D%!)-iJ9&OzTYnsTۊux6䕌'A8dga7i7Z YrGD񫀷HF~ɚ I#:EbJd`jţ%y@u'k:GV?߹0 I{%`kp1u*я~# vJ6] ǫoMX, _N9Tf6)e@Gy<#*#H)a~k)%D>*$@zm5jW$'#)ưm1wΎ-0$#*ؔf[S-l 9B -[$SBr=,u4l[@n^4^&k91SkMu:ǓzZnԷ !nGDcN{j[ RiYCU?We9IQr(֜.0S.7¨64~So>d!Uk}ĺ9gf#JGTsΝʾ&[BTwuhd#4x957"nogoq&ot}YfQ bIAfԘf7!>G0zef+ !՗BԭLa i&אGΤ? ׇqW帻w <83'|2YNvVqtY:Ӆi4c u 'tU0Zqr~ӊۯv.v{VsHu0s9[@z'_#4"8BˬU=d[ s:"r_ayN<rc?w_n; 5׍v#*ct(W.7I 7 w#*_Bh>wFÌUpcA!m pqJQ1 `:ܤHW'*٘cJ-XFh6|5$ȫ\)W)SLc6J>oaDꙮq7vxo eI=TsvF+;\G#5sy#"Qjbh9 evz;ޒ[{]X+wT$icUtIYY%2SaĉqTXBuFo̩dN`p)EĀ}@eu^ d++)Q#DPh7AM"1'@E;vs%kuJ@(#)7,H#4ֲ&&(yzy])*ذR=rJ\sVݢEi;P)a#*٫tXNP/BhĴ,ĴA'ȧx<,Fm.$xr\/koDJ]8 ՏU|#*G=Rtk׽9x$5~S[3ڝ\ȬY5zN6v/#ԡ%yw3Qtol5EP'|v{67?K/]c{2`˞F zlʭ5A2 c fVA5fM;{*MkQI#4*MjS_#)l:J Lr|];@Y9E²l,4A g HuFp ~z8=Eg*Ge(ًfS)[F"ы[Yӥ*垔h;2-H.OǔR_}H'qth'=v3j Y=B; ; *NoiǏ7ap灬@"m#)AߝVsrZC#):!@|q ۔DoB||`ʁe wQbYxm uK Cb*3N_8FFxI8?Oի9V]wgVc~$+a?(jFT$j\db?:jb'!l0#4ѓek+mܟ;66T2Ii}#4a|9; $׎#LtOxw8RRW^)@ڽ4~"ueQjל\o5j؞G5Vך3ǙLѿiEZa/d"\fI8M$mN$W<`j2Tj`!MaM6U[Z#*UX#L#*ĀX7NbI#9݊%Z+O#N~fD۷׮FЈF+@Bm|34uJϸV#*uC:I Q\57ۚ=(j\e CW$ʌANY=ފ6+~e(s6}a۝'V_*\ޤs;%<ӻ)rZrpoD W\ҽG@&:ё-A8n ~>I:)2v @g9q8~[{;0Dfm5v%l[qsz'W^|bLZ ʾL/䶺r\-i?rvy\D;!Q ^CZ塭 PuE[%0 9epAEhs7x$W6#*jaR3P|&Y %?zVcG^F󛮅`kyAE#4{s)J1ȱ"ny#*imǖbх8cw6>a$\e,dNW}>4s[H)/;1/⼼}C2cˍbs^nZFw0]t~&Nޝ頩TH;U)RSd>XJ{D!#*!wܶE~zPxW;b#)&t(^ LrVY6ׇ<7);iO*$P%w94LJ)gԉfiB*ki]GՕPZbk>u_{ݪ!w}ޅu. Csϻ9sFO62?O7<+|RQk>~$ xwNwm8_s>%CuDsӑ-ޅTONjgM/`}Vu#)\yG #)ڭv1cёjgnSŇnL@z;MYW3o|O>[BLŇ⡫o1D' ,#*Ux@v8\tM'ąvL\xmgL}`wjD=:fE/Cdz>$$_qb#*9:rA}Zɺ5-y#*On`1tn\kr4fL=)B{VA[ƛ~ 48oo+PDۨ"5] F7d@ kl^&dG?ޣú?<:I3S#)?<8<ӻ;wZ2q2»?UmZjzfFok~g\GSw)b }-";8tM?:3dHlLS%C&&GPʱ#)gmm|c@*~Y.(paayoq#*zdҰ(=8GsOnP. `a;A8^ byc#,`tUYcp9 `!M]RB:"r삠%ST^39k1'YĶBbK"i޶՘80!bIGuJo1ihH>:?O|1b0#)M_/'|z$/!,es_̽l4Wi)^Bq#*:rnu2ve!/_ BeOBkFO)BMRB:n(CM2b$rc:y%ݒ/#4ZsZ4΍v90ŭi ,M?l|#rח#*\jƃ +>r q {#>/}_Ay+3A,/VxP偕1'WA?Agz #*eG3FG |<.'x!C1%*c8&֎nPC*jAw`aW)kG贈4\r0LΤFS޶kρ=!8Y.~s3МS̹ۡ*n$QxdI Kj_썻7C,|D[?S{l5ǓZ?W+C5|?w/=쟞mqGT/01#*r&(A!̭3H-ou{b8(Ƞd!ƿl6W?OʐNݘd"#*|Lqr0XtOЉdKZ+4ҺF/UUwEZ@ҵ ZLBmYj|t|_ʵ?]G|ãNꢣ`2Kf!=iԃ-w#)(NǼsB#4tlmFp#)6>cDũ%HΦ=ґIDfjܚOb;&(fqtXBR5[ت 4}nԙd:AvAk4L3opI@&<~C܊FВK7ZYvE2oojx4iZTENJO1rQllNjd"@FNn_,R-<,b"#*aG?٨ j#*<iu'Z79U?Ut w1JI/x)}Ş?ȫ`h4EV]$ggJ G\!Nfx/dddM 9|b]FVT !t.!`2۔Uځ?-k=\Cxms ݵCetL[Ɂ.0rmEЮp4:RBDtuR@ce,*9;#^5*yHcYv d/P/9r S@9NR [.|#*d !9QRHD@#)q.Hd#)Eys_*7B*KZPr<:7F%_349'*Rz?q^옣T7Jw8N =D}P\V,3@M_:fy1vae_U}bt ']aԸD:q,Rn*8T{ lYDbKɑĿNi#4v) ';>?yT4K|k#1K#*iUfj)W0^-X<TD3@0KY?:=&MiC3ڶwk#IKUh#vۉt+*”zdj!D0!ӄщ#)6)g/#*NNS|VkrO%/ߤ=7|m0 `ZOWtu(sDAUm8A༆!X/z}%8h7wY%FY0i0ZP5 -A>.YҗJM@64d h|rd_,#*u|V.;j_LUR΂rLNk>9z{|F?\ I!sB*d:eZH#47;nLg.| Nz".+#)s*s6#)%"Bm' BMT$|!s(,ԎAp| [Yl}x Yv{OX \!/L[?AQ{F6YC#*qx:7gp\K4~9v#)$I[f[S[ sŢ+SX#*]_x6'I=?72pF3hB]9NAdfAӅXCh-KV-sukHE(YӞM+V.AȭCiW.ۖsd^qd(y@nIĨ Ρ~ ř([KҿFߚŹ/b"|,Tj^sMn_EjV\& s)]zL3܉į9XI6loΰh,)AJejs%9х~:~#)P ޜDꋵ bAG5:m1ƄLvh9:.FêIjzIQt+$<4#I*L;#)q~5?<~wvo]ھ<=c*SRMLmMS/j#*1l6BdhT`u#n;۹DG/*oS&ZoTnj:V1}L4CƍoJP vb {5l:AS]HD' CHW&ANqRRq猿5T=>u#)E ?4R7lGw8M#)ʢ%}0LUG9Ki2uf\FHۊN)k L#J#4e#31#$SMVAE5%^α1xk$M֞hőT0.Ur-ubq#*ze7ݴ+ڒ<,n@Ө#*`a%bffJsT{WxzNqh;=AQ]6#xyGzjj+&\+HK Sf;J̈Wgɒ8Oz׿9Շ&z#)=(')xx qEdq OIl9WDv|44{#*yq5=C!fws,( 72["f Vʛ =Q+UJcHesv{F&qZa\ܤɭ{̑c,xShEeR]⺊΢TSocPf}vVWY/.?l\<,υ.$w }|'|̈́J#ɼ;-'k(\2ÌZxoI'$ŴnĽ~?fw|sj6#4=.O"#NGi_ouJU`[_<|\|(qOxf.v3.^/&2Q#4MɅ-#` eFNU͉DI\!'߹e[7NnDGIL&kѵvŠb#=@/XxF‹AnyC0y3p^ss^W[&#y&RQ8)܌TbjUA VP*&mˏTgMtn:iE2/ywUwOv s?#47TƋ27aN񐟿Z>Wq͝"3jٱGN;O'nG psH} l"7Qͺ#*Z͛z}'$Zt#*WVp }sj*r@9)fIHB+ck1#)S6zMt+2 ̕HߥZQ)+.9yt_#4SۉwM~a^wၺnr_ݎ4VrqC| ɘU(^E9{T0,_Z}}\j(o$&"<`)N6CAC8ĺGz7#)~g HT.螃Y =;{&?g8{+=tMugzD<ƶ~[1xWں"r7#P#9LXN!ZMퟡ7lm圀~όk]zpq__c'#)-AwCkwaHZbI,k1u Ia=))+1u'fޕJ{\=9|+G&~B*mQ893R3Uۅ,Βhke)L#*@: zSW̕PN",.?`BoH^y0 xe7Fi|۝c-ܞ'^^YQA퀋}$R5dj740_\ "i˚Ywfc6s$19Q$BSZ8)B|MZ(k2K񁶐u50О7iq`yV,p΋7b}O#ls΃o.\EA"P*ɰ"[;LG0I;P˱X)s3vd tA}R?9JgHؚĨ[f-#) 菰ֳO_FD=̷w.(cTM/jo=M']9 NzN`hڴvV,L*yRb4oy/3'dr^ԹDR_;tJɢ$?{`#he#4`#*I7e7qOAsHu9VM5>gD?M4` ڶ;w#hӁl^JZU"8۫.HخvN*=5#)ȿhN\dTFeQ m6+bZݱuMCNOvP"5tun?hgd*V_tbnA+!! {*WƜj+[9f+rvov۹I{<#))$`x\Tynn":ztyK(^*&,6^l`aM㵵ʋW|e܇=?~l଴r")뽣TJj# :wGbT^{䗂pw6^/4`$M:L2[ w{|00{6r?߽_8:#G l~a<4dxӑ=A;<:F8.u4оj϶a;;W`i] WvIu!jyk5U۔'][-a0Zc7lL 󊳤TjBqVNJ+NԛnasBUoZb7u`d^K_;h9^%uytAz|9c~X=_?]|W޾+CJt[wQt7w?Dw[w΃_?"$oG_.!+u?$L&cM+N&"6y9^Ny0GpDtד+3)bhⱸ݊`EH(x;=~+Iޙ|T"7G@󍏧fMTIpYּe^>mo#DЧ9_4?6)VPKjW6#*;3ڤ%Ս;_6H`TY:pk[MV#)mcp`6YGÚ#*Nr阘e#8FZ{>4.qI'0xVܨ3 ~lrsSgNʁ,79ܩlv~eü `卐 X3@M궹Z=xI<9[MT̴1i,I #$ȲׂYEEQ,~N<.IG1͕IDb&1W~%"D#4,w¬96H<윀&DhK&#aAvi^bAb#%\RYぃ˓PzrYg; aRbwJ[GzjFx&T*Z .O(zYCk#:Ι#*6z#4buhx\ EtY.Y b1Rj͜6&=V#4@E0a=6u|o 'v a.>Y@K#4#)Q#4Jзof^;#)(I) \/3 Pj&f2KDz&]0#*+.ﺬea0,jbsgj6G7.V*ICmnM1 ?g@k3z:Kva'o2aFiXĹZ-8`#)g떭x<'sGE1wbKjd=$j6m;u],邮Cב,Ep-68`J%&(v4m/ l+ݞT \$#)2E󟬛S{3\sRu=l60h^W ñZ7I30^a?n _劔!հsW%6Ή`g&i=eش7'Vܐa'{-HvQ`{7^ʼn*+c6pB\eb[#)%k3)x`s2$qՖQX]W;|Q m#0'UgݖhhPz]]hP)ª~#ZgD aX#4(T,)-=1«Qݯ1v۠*1A"j^.B0a. BERobip4gu M㛴ԸWC^խ'2RB#b'F%EH<qJDVbp{LOS>8*G ֩'oiPi%D׷vPxH>8#)՜é$Z6IxeV-7+D䈴[:t(ƩfGZ#4 G,8z#4] O=Vs$^1Tm;B ^ۑf:NQ?b;sb55k*ה⚧Q|G.n%qLjQo|*b@ݍ|{wMeD`E;9pBS{i jcY†qnU*$9<_?#)v/<⫊?U9/<1\4 Jv`<(M ,l¸7#*Zs֘>|JaVbqcx'gҞezt}GNՔjJg*+Z[:=)㳧R4Dru]s6prhpi#*k)-OKx6POV/c'0ýռiգY޸M3^ J|GZc2 fqUCZxi5׺l~#;H7#j]:zR]Umڦ@@i=琺'uxbK c1|&7J8[R_*-⇳o_g޾yrrPkԏ`[[f!jVdܰEbKnY<IgW3eV1H՗l+XNJnP#)(ZQ7w:O&y߄?w:9z@挽{65gfh?>%!!*A:upp*_e(a3bDRa𚂣G(#*_3KCG`aXk}4#*n~#)GŅ&9e\9HQ7{|["L%WP$opm /Q!`iXQ,"荄KnW 2R\ 2#*UJyQO^25T,jjvx$_x#5wq&C?35mq벪?>񅠟z{.I&xa20׼PjȸJyzy|W#*y }cO'+[@I`N~[!U& aA#)N/o[{@'8G6-qIoftX^NI"y}$]=xԃ$ ~/e#4(U7&fpLOϩ{<k 0-E#*িΣ<ǹ%ꯖ!$tMhh7gjY̋jrZ R&үl֌P0FwPV9S$F[#4J6"42F)l>[,@n`TM<ΰlIԹm^xQ>tXl:&4,g sN7|nee$ oΈH#*HKclccj[i^e`DA7+o5ڎ5ҕ!8aGV2U!U+R\#4H>f|9P-x^3{h gڕ/r$4m!K>᲌EY#*P#*ʀ}O{0ef>qF_W#8MYgt-buew=kO. st0Y[tX&K#}8+N[!id=4l#42c4TP3X rbIĹ#c`1J{eY;P]Gio޲R |NnNaГByq3YL(v:5 M5!GUR<Ă V 9s-/hl]˩;A𥉉k` r,.o]݃?~v=rr.bnZ&WaY>"$HhOTbi 4#)mX2h"B6AK=Fv.+;J:^7tAhH!EQm&sF MBd=6[E!+f-ww'^ d_JjL6M*>qkVb+RCeF2sx''G9λҲ$ⲲugpqV 3vx?ߍww㯿(<9>9=Qm}Vz#)N>2jw,z H/6PGGY--? c&2co-^ h񋳔sPx #4xj&hmYEڼcK̾}#*}#)|bwiO3~W 9&%\1Cϲ4<7=de#4a5ŀ pI#4U!߸'DB$! yo~8{#A !ܐ#4_1i1Ȧ_WpH}#4#Ez5v!+|7[Y\q9t@~{~1~DAxfx=|X=4?>/>3a㓯OW%80 ?L˓/'_U/0#4Mv%uZ]A1!)~$/j:͋?YYD>aJNf8_be7\}*u^vQ7?#)wdbǏ@B,ul̻d3G)MT1f|̛t7[A b wՐ.8!o36Á%,(,< |a^y0#*HGPoaAs]q>(IE&ey(4pJE:=&B핣#)h=^0h74d3 CT'#)%}B#)wu2\"Q%3#){nӵ"xc7 .`94PD~DS.$ȋ>g|ݬn&h#)jmt=&I^imTLQ2]F%XM& E -seׂZ:QR"I!RNUy ~H^rf_X!30?ֈE:HP"jNµ&jbŇ#*Yf 7lWWRetͮ ~1m=qm-#)[<ڕ!g#)%LAua;,VEҒx\CnWCj@5PszU PԔ@1:H~>dQ}W4U*E?d`.!#*|C7UnMyI #41|HPFX~ɋZlbAg#4IS(}*@~MZ(#4ʃRݚrr%oۂŠ _uż),XxXW]4Ma^{æɮ̰]!#4B@7黅Vr@b&?MѺ_D4v#*P*!̈pY!\nC^RpK񬈩lو#)T=iMԮ1:67YR6CSMW$#;{o#"Z* E&*:~M@cR] 2v .M%`gZSP)½7%!J~m*]s9r?^CY8 'IH;ˡI"#* @&g6i,؛d1_lDkD௣?,#)` \#4$%9ؔKq/"qe~-D'Ӈ^4zjoTuMPlBY~A#tx$mT5\XDSkS]0)|O^ZRg# fi#"|22b2^|Ug[ *4](BcqǣTASTxcUjz$~cҋYm)aɯ B$=I|)Ou<΁X6#)Z, U늏֗~tX Q~'j`ft纟7W՚#*RM<,WF >q #)ݸ0~$CRH>f)h>pG< X`ZX#*dvgY6bmwdǺ6fT* xW&U5 ·|ll6]"zJy$'S% TyLa%/x` icJeP'`F6h 8# Ö˸;/#4Ύ$h#** uW. SaNy[,{Ҁ=))љڷ>ZV\ 34Ji#4~ڸ9$*dgGm;M~]͖9jANJ$v2`kONgZIzICZZ±2k#)ܯS2NNЭKIә*#stnUaHY崏BXO7p{]z1f)]1#)#*c4"9'[$g1|5s#.~Tƽc(k2w_l@^Hœ,0S+)k!`p(/c]~~ϐM{,-l@ĚL0K0<}㳐Asx9<sx9<sx9<sx9<O~._k#)#) -#<== diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/freetype/freetype/use-right-libtool.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/freetype/freetype/use-right-libtool.patch index 20838813..3368f7dd 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/freetype/freetype/use-right-libtool.patch +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/freetype/freetype/use-right-libtool.patch @@ -11,4 +11,4 @@ Signed-off-by: Ross Burton +++ freetype-2.6/builds/unix/unix-cc.in 2016-01-07 19:21:50.213112131 +0000 @@ -19,1 +18,1 @@ -LIBTOOL := $(FT_LIBTOOL_DIR)/libtool -+LIBTOOL := $(FT_LIBTOOL_DIR)/@LIBTOOL@ ++LIBTOOL := $(FT_LIBTOOL_DIR)/@LIBTOOL@ --tag CC diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/freetype/freetype_2.10.0.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/freetype/freetype_2.10.0.bb deleted file mode 100644 index 200f43c2..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/freetype/freetype_2.10.0.bb +++ /dev/null @@ -1,49 +0,0 @@ -SUMMARY = "Freetype font rendering library" -DESCRIPTION = "FreeType is a software font engine that is designed to be small, efficient, \ -highly customizable, and portable while capable of producing high-quality output (glyph \ -images). It can be used in graphics libraries, display servers, font conversion tools, text \ -image generation tools, and many other products as well." -HOMEPAGE = "http://www.freetype.org/" -BUGTRACKER = "https://savannah.nongnu.org/bugs/?group=freetype" -SECTION = "libs" - -LICENSE = "FreeType | GPLv2+" -LIC_FILES_CHKSUM = "file://docs/LICENSE.TXT;md5=4af6221506f202774ef74f64932878a1 \ - file://docs/FTL.TXT;md5=9f37b4e6afa3fef9dba8932b16bd3f97 \ - file://docs/GPLv2.TXT;md5=8ef380476f642c20ebf40fecb0add2ec" - -SRC_URI = "${SOURCEFORGE_MIRROR}/freetype/freetype-${PV}.tar.bz2 \ - file://use-right-libtool.patch \ - " - -UPSTREAM_CHECK_URI = "http://sourceforge.net/projects/freetype/files/freetype2/" -UPSTREAM_CHECK_REGEX = "freetype-(?P\d+(\.\d+)+)" - -SRC_URI[md5sum] = "a717e6925b61b9dda946322ecd278a42" -SRC_URI[sha256sum] = "fccc62928c65192fff6c98847233b28eb7ce05f12d2fea3f6cc90e8b4e5fbe06" - -inherit autotools pkgconfig multilib_header - -# Adapt autotools to work with the minimal autoconf usage in freetype -AUTOTOOLS_SCRIPT_PATH = "${S}/builds/unix" -CONFIGURE_SCRIPT = "${S}/configure" -EXTRA_AUTORECONF += "--exclude=autoheader --exclude=automake" - -PACKAGECONFIG ??= "zlib" - -PACKAGECONFIG[bzip2] = "--with-bzip2,--without-bzip2,bzip2" -# harfbuzz results in a circular dependency so enabling is non-trivial -PACKAGECONFIG[harfbuzz] = "--with-harfbuzz,--without-harfbuzz,harfbuzz" -PACKAGECONFIG[pixmap] = "--with-png,--without-png,libpng" -PACKAGECONFIG[zlib] = "--with-zlib,--without-zlib,zlib" -PACKAGECONFIG[freetypeconfig] = "--enable-freetype-config=yes,--enable-freetype-config=no," - -EXTRA_OECONF = "CC_BUILD='${BUILD_CC}'" - -TARGET_CPPFLAGS += "-D_FILE_OFFSET_BITS=64" - -do_install_append() { - oe_multilib_header freetype2/freetype/config/ftconfig.h -} - -BBCLASSEXTEND = "native nativesdk" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/freetype/freetype_2.10.1.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/freetype/freetype_2.10.1.bb new file mode 100644 index 00000000..b179a0ed --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/freetype/freetype_2.10.1.bb @@ -0,0 +1,47 @@ +SUMMARY = "Freetype font rendering library" +DESCRIPTION = "FreeType is a software font engine that is designed to be small, efficient, \ +highly customizable, and portable while capable of producing high-quality output (glyph \ +images). It can be used in graphics libraries, display servers, font conversion tools, text \ +image generation tools, and many other products as well." +HOMEPAGE = "http://www.freetype.org/" +BUGTRACKER = "https://savannah.nongnu.org/bugs/?group=freetype" +SECTION = "libs" + +LICENSE = "FreeType | GPLv2+" +LIC_FILES_CHKSUM = "file://docs/LICENSE.TXT;md5=4af6221506f202774ef74f64932878a1 \ + file://docs/FTL.TXT;md5=9f37b4e6afa3fef9dba8932b16bd3f97 \ + file://docs/GPLv2.TXT;md5=8ef380476f642c20ebf40fecb0add2ec" + +SRC_URI = "${SAVANNAH_NONGNU_MIRROR}/${BPN}/${BP}.tar.xz \ + file://use-right-libtool.patch \ + " +SRC_URI[md5sum] = "bd42e75127f8431923679480efb5ba8f" +SRC_URI[sha256sum] = "16dbfa488a21fe827dc27eaf708f42f7aa3bb997d745d31a19781628c36ba26f" + +UPSTREAM_CHECK_REGEX = "freetype-(?P\d+(\.\d+)+)" + +inherit autotools pkgconfig multilib_header + +# Adapt autotools to work with the minimal autoconf usage in freetype +AUTOTOOLS_SCRIPT_PATH = "${S}/builds/unix" +CONFIGURE_SCRIPT = "${S}/configure" +EXTRA_AUTORECONF += "--exclude=autoheader --exclude=automake" + +PACKAGECONFIG ??= "zlib" + +PACKAGECONFIG[bzip2] = "--with-bzip2,--without-bzip2,bzip2" +# harfbuzz results in a circular dependency so enabling is non-trivial +PACKAGECONFIG[harfbuzz] = "--with-harfbuzz,--without-harfbuzz,harfbuzz" +PACKAGECONFIG[pixmap] = "--with-png,--without-png,libpng" +PACKAGECONFIG[zlib] = "--with-zlib,--without-zlib,zlib" +PACKAGECONFIG[freetypeconfig] = "--enable-freetype-config=yes,--enable-freetype-config=no," + +EXTRA_OECONF = "CC_BUILD='${BUILD_CC}'" + +TARGET_CPPFLAGS += "-D_FILE_OFFSET_BITS=64" + +do_install_append() { + oe_multilib_header freetype2/freetype/config/ftconfig.h +} + +BBCLASSEXTEND = "native nativesdk" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/glew/glew_2.1.0.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/glew/glew_2.1.0.bb index 18e6909a..f6f43406 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/glew/glew_2.1.0.bb +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/glew/glew_2.1.0.bb @@ -15,7 +15,7 @@ SRC_URI[sha256sum] = "04de91e7e6763039bc11940095cd9c7f880baba82196a7765f727ac05a UPSTREAM_CHECK_URI = "http://sourceforge.net/projects/glew/files/glew" UPSTREAM_CHECK_REGEX = "/glew/(?P(\d+[\.\-_]*)+)/" -inherit lib_package pkgconfig distro_features_check +inherit lib_package pkgconfig features_check REQUIRED_DISTRO_FEATURES = "opengl" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/harfbuzz/harfbuzz_2.4.0.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/harfbuzz/harfbuzz_2.4.0.bb deleted file mode 100644 index 4691d16d..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/harfbuzz/harfbuzz_2.4.0.bb +++ /dev/null @@ -1,40 +0,0 @@ -SUMMARY = "Text shaping library" -DESCRIPTION = "HarfBuzz is an OpenType text shaping engine." -HOMEPAGE = "http://www.freedesktop.org/wiki/Software/HarfBuzz" -BUGTRACKER = "https://bugs.freedesktop.org/enter_bug.cgi?product=HarfBuzz" -SECTION = "libs" -LICENSE = "MIT" -LIC_FILES_CHKSUM = "file://COPYING;md5=e021dd6dda6ff1e6b1044002fc662b9b \ - file://src/hb-ucdn/COPYING;md5=994ba0f1295f15b4bda4999a5bbeddef \ -" - -DEPENDS = "glib-2.0 cairo fontconfig freetype" - -SRC_URI = "http://www.freedesktop.org/software/harfbuzz/release/${BP}.tar.bz2" -SRC_URI[md5sum] = "49f111f9b52ae3d9b31c1a3631a320bd" -SRC_URI[sha256sum] = "b470eff9dd5b596edf078596b46a1f83c179449f051a469430afc15869db336f" - -inherit autotools pkgconfig lib_package gtk-doc - -PACKAGECONFIG ??= "icu" -PACKAGECONFIG[icu] = "--with-icu,--without-icu,icu" - -EXTRA_OECONF = " \ - --with-cairo \ - --with-fontconfig \ - --with-freetype \ - --with-glib \ - --without-graphite2 \ -" - -PACKAGES =+ "${PN}-icu ${PN}-icu-dev" - -LEAD_SONAME = "libharfbuzz.so" - -FILES_${PN}-icu = "${libdir}/libharfbuzz-icu.so.*" -FILES_${PN}-icu-dev = "${libdir}/libharfbuzz-icu.la \ - ${libdir}/libharfbuzz-icu.so \ - ${libdir}/pkgconfig/harfbuzz-icu.pc \ -" - -BBCLASSEXTEND = "native nativesdk" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/harfbuzz/harfbuzz_2.6.4.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/harfbuzz/harfbuzz_2.6.4.bb new file mode 100644 index 00000000..ee08c12b --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/harfbuzz/harfbuzz_2.6.4.bb @@ -0,0 +1,41 @@ +SUMMARY = "Text shaping library" +DESCRIPTION = "HarfBuzz is an OpenType text shaping engine." +HOMEPAGE = "http://www.freedesktop.org/wiki/Software/HarfBuzz" +BUGTRACKER = "https://bugs.freedesktop.org/enter_bug.cgi?product=HarfBuzz" +SECTION = "libs" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://COPYING;md5=e11f5c3149cdec4bb309babb020b32b9 \ + file://src/hb-ucd.cc;beginline=1;endline=15;md5=29d4dcb6410429195df67efe3382d8bc" + +SRC_URI = "http://www.freedesktop.org/software/harfbuzz/release/${BP}.tar.xz" +SRC_URI[md5sum] = "2b3a4dfdb3e5e50055f941978944da9f" +SRC_URI[sha256sum] = "9413b8d96132d699687ef914ebb8c50440efc87b3f775d25856d7ec347c03c12" + +inherit autotools pkgconfig lib_package gtk-doc + +PACKAGECONFIG ??= "cairo fontconfig freetype glib icu" +PACKAGECONFIG[cairo] = "--with-cairo,--without-cairo,cairo" +PACKAGECONFIG[fontconfig] = "--with-fontconfig,--without-fontconfig,fontconfig" +PACKAGECONFIG[freetype] = "--with-freetype,--without-freetype,freetype" +PACKAGECONFIG[glib] = "--with-glib,--without-glib,glib-2.0" +PACKAGECONFIG[graphite] = "--with-graphite2,--without-graphite2,graphite2" +PACKAGECONFIG[icu] = "--with-icu,--without-icu,icu" + +PACKAGES =+ "${PN}-icu ${PN}-icu-dev ${PN}-subset" + +LEAD_SONAME = "libharfbuzz.so" + +do_install_append() { + # If no tools are installed due to PACKAGECONFIG then this directory is + #still installed, so remove it to stop packaging wanings. + rmdir --ignore-fail-on-non-empty ${D}${bindir} +} + +FILES_${PN}-icu = "${libdir}/libharfbuzz-icu.so.*" +FILES_${PN}-icu-dev = "${libdir}/libharfbuzz-icu.la \ + ${libdir}/libharfbuzz-icu.so \ + ${libdir}/pkgconfig/harfbuzz-icu.pc \ +" +FILES_${PN}-subset = "${libdir}/libharfbuzz-subset.so.*" + +BBCLASSEXTEND = "native nativesdk" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/images/core-image-clutter.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/images/core-image-clutter.bb index b0f25cf1..a5944610 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/images/core-image-clutter.bb +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/images/core-image-clutter.bb @@ -11,3 +11,5 @@ IMAGE_INSTALL = "\ " inherit core-image + +QB_MEM = '${@bb.utils.contains("DISTRO_FEATURES", "opengl", "-m 512", "-m 256", d)}' diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/images/core-image-weston.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/images/core-image-weston.bb index e36655ff..f5102e19 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/images/core-image-weston.bb +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/images/core-image-weston.bb @@ -4,7 +4,7 @@ IMAGE_FEATURES += "splash package-management ssh-server-dropbear hwcodecs" LICENSE = "MIT" -inherit core-image distro_features_check +inherit core-image features_check REQUIRED_DISTRO_FEATURES = "wayland" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/images/core-image-x11.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/images/core-image-x11.bb index 8455bb8c..52407759 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/images/core-image-x11.bb +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/images/core-image-x11.bb @@ -4,6 +4,8 @@ IMAGE_FEATURES += "splash package-management x11-base" LICENSE = "MIT" -inherit core-image distro_features_check +inherit core-image features_check REQUIRED_DISTRO_FEATURES = "x11" + +QB_MEM = '${@bb.utils.contains("DISTRO_FEATURES", "opengl", "-m 512", "-m 256", d)}' diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/jpeg/libjpeg-turbo_2.0.2.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/jpeg/libjpeg-turbo_2.0.2.bb deleted file mode 100644 index e1df754b..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/jpeg/libjpeg-turbo_2.0.2.bb +++ /dev/null @@ -1,57 +0,0 @@ -SUMMARY = "Hardware accelerated JPEG compression/decompression library" -DESCRIPTION = "libjpeg-turbo is a derivative of libjpeg that uses SIMD instructions (MMX, SSE2, NEON) to accelerate baseline JPEG compression and decompression" -HOMEPAGE = "http://libjpeg-turbo.org/" - -LICENSE = "BSD-3-Clause" -LIC_FILES_CHKSUM = "file://cdjpeg.h;endline=13;md5=8184bcc7c4ac7b9edc6a7bc00f231d0b \ - file://jpeglib.h;endline=16;md5=7ea97dc83b0f59052ee837e61ef0e08f \ - file://djpeg.c;endline=11;md5=c59e19811c006cb38f82d6477134d314 \ -" -DEPENDS_append_x86-64_class-target = " nasm-native" -DEPENDS_append_x86_class-target = " nasm-native" - -SRC_URI = "${SOURCEFORGE_MIRROR}/${BPN}/${BPN}-${PV}.tar.gz \ - file://0001-libjpeg-turbo-fix-package_qa-error.patch \ - " - -SRC_URI[md5sum] = "79f76fbfb0c6109631332762d10e16d2" -SRC_URI[sha256sum] = "acb8599fe5399af114287ee5907aea4456f8f2c1cc96d26c28aebfdf5ee82fed" -UPSTREAM_CHECK_URI = "http://sourceforge.net/projects/libjpeg-turbo/files/" -UPSTREAM_CHECK_REGEX = "/libjpeg-turbo/files/(?P(\d+[\.\-_]*)+)/" - -PE= "1" - -# Drop-in replacement for jpeg -PROVIDES = "jpeg" -RPROVIDES_${PN} += "jpeg" -RREPLACES_${PN} += "jpeg" -RCONFLICTS_${PN} += "jpeg" - -inherit cmake pkgconfig - -# Add nasm-native dependency consistently for all build arches is hard -EXTRA_OECMAKE_append_class-native = " -DWITH_SIMD=False" -EXTRA_OECMAKE_append_class-nativesdk = " -DWITH_SIMD=False" - -# Work around missing x32 ABI support -EXTRA_OECMAKE_append_class-target = " ${@bb.utils.contains("TUNE_FEATURES", "mx32", "-DWITH_SIMD=False", "", d)}" - -# Work around missing non-floating point ABI support in MIPS -EXTRA_OECMAKE_append_class-target = " ${@bb.utils.contains("MIPSPKGSFX_FPU", "-nf", "-DWITH_SIMD=False", "", d)}" - -# Provide a workaround if Altivec unit is not present in PPC -EXTRA_OECMAKE_append_class-target_powerpc = " ${@bb.utils.contains("TUNE_FEATURES", "altivec", "", "-DWITH_SIMD=False", d)}" -EXTRA_OECMAKE_append_class-target_powerpc64 = " ${@bb.utils.contains("TUNE_FEATURES", "altivec", "", "-DWITH_SIMD=False", d)}" - -DEBUG_OPTIMIZATION_append_armv4 = " ${@bb.utils.contains('TUNE_CCARGS', '-mthumb', '-fomit-frame-pointer', '', d)}" -DEBUG_OPTIMIZATION_append_armv5 = " ${@bb.utils.contains('TUNE_CCARGS', '-mthumb', '-fomit-frame-pointer', '', d)}" - -PACKAGES =+ "jpeg-tools libturbojpeg" - -DESCRIPTION_jpeg-tools = "The jpeg-tools package includes client programs to access libjpeg functionality. These tools allow for the compression, decompression, transformation and display of JPEG files and benchmarking of the libjpeg library." -FILES_jpeg-tools = "${bindir}/*" - -DESCRIPTION_libturbojpeg = "A SIMD-accelerated JPEG codec which provides only TurboJPEG APIs" -FILES_libturbojpeg = "${libdir}/libturbojpeg.so.*" - -BBCLASSEXTEND = "native nativesdk" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/jpeg/libjpeg-turbo_2.0.3.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/jpeg/libjpeg-turbo_2.0.3.bb new file mode 100644 index 00000000..1cf854de --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/jpeg/libjpeg-turbo_2.0.3.bb @@ -0,0 +1,57 @@ +SUMMARY = "Hardware accelerated JPEG compression/decompression library" +DESCRIPTION = "libjpeg-turbo is a derivative of libjpeg that uses SIMD instructions (MMX, SSE2, NEON) to accelerate baseline JPEG compression and decompression" +HOMEPAGE = "http://libjpeg-turbo.org/" + +LICENSE = "BSD-3-Clause" +LIC_FILES_CHKSUM = "file://cdjpeg.h;endline=13;md5=8184bcc7c4ac7b9edc6a7bc00f231d0b \ + file://jpeglib.h;endline=16;md5=7ea97dc83b0f59052ee837e61ef0e08f \ + file://djpeg.c;endline=11;md5=c59e19811c006cb38f82d6477134d314 \ +" +DEPENDS_append_x86-64_class-target = " nasm-native" +DEPENDS_append_x86_class-target = " nasm-native" + +SRC_URI = "${SOURCEFORGE_MIRROR}/${BPN}/${BPN}-${PV}.tar.gz \ + file://0001-libjpeg-turbo-fix-package_qa-error.patch \ + " + +SRC_URI[md5sum] = "bd07fddf26f9def7bab02739eb655116" +SRC_URI[sha256sum] = "4246de500544d4ee408ee57048aa4aadc6f165fc17f141da87669f20ed3241b7" +UPSTREAM_CHECK_URI = "http://sourceforge.net/projects/libjpeg-turbo/files/" +UPSTREAM_CHECK_REGEX = "/libjpeg-turbo/files/(?P(\d+[\.\-_]*)+)/" + +PE= "1" + +# Drop-in replacement for jpeg +PROVIDES = "jpeg" +RPROVIDES_${PN} += "jpeg" +RREPLACES_${PN} += "jpeg" +RCONFLICTS_${PN} += "jpeg" + +inherit cmake pkgconfig + +# Add nasm-native dependency consistently for all build arches is hard +EXTRA_OECMAKE_append_class-native = " -DWITH_SIMD=False" +EXTRA_OECMAKE_append_class-nativesdk = " -DWITH_SIMD=False" + +# Work around missing x32 ABI support +EXTRA_OECMAKE_append_class-target = " ${@bb.utils.contains("TUNE_FEATURES", "mx32", "-DWITH_SIMD=False", "", d)}" + +# Work around missing non-floating point ABI support in MIPS +EXTRA_OECMAKE_append_class-target = " ${@bb.utils.contains("MIPSPKGSFX_FPU", "-nf", "-DWITH_SIMD=False", "", d)}" + +# Provide a workaround if Altivec unit is not present in PPC +EXTRA_OECMAKE_append_class-target_powerpc = " ${@bb.utils.contains("TUNE_FEATURES", "altivec", "", "-DWITH_SIMD=False", d)}" +EXTRA_OECMAKE_append_class-target_powerpc64 = " ${@bb.utils.contains("TUNE_FEATURES", "altivec", "", "-DWITH_SIMD=False", d)}" + +DEBUG_OPTIMIZATION_append_armv4 = " ${@bb.utils.contains('TUNE_CCARGS', '-mthumb', '-fomit-frame-pointer', '', d)}" +DEBUG_OPTIMIZATION_append_armv5 = " ${@bb.utils.contains('TUNE_CCARGS', '-mthumb', '-fomit-frame-pointer', '', d)}" + +PACKAGES =+ "jpeg-tools libturbojpeg" + +DESCRIPTION_jpeg-tools = "The jpeg-tools package includes client programs to access libjpeg functionality. These tools allow for the compression, decompression, transformation and display of JPEG files and benchmarking of the libjpeg library." +FILES_jpeg-tools = "${bindir}/*" + +DESCRIPTION_libturbojpeg = "A SIMD-accelerated JPEG codec which provides only TurboJPEG APIs" +FILES_libturbojpeg = "${libdir}/libturbojpeg.so.*" + +BBCLASSEXTEND = "native nativesdk" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/kmscube/kmscube/detect-gst_bo_map-_unmap-and-use-it-or-avoid-it.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/kmscube/kmscube/detect-gst_bo_map-_unmap-and-use-it-or-avoid-it.patch index 611e5415..a7a08f14 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/kmscube/kmscube/detect-gst_bo_map-_unmap-and-use-it-or-avoid-it.patch +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/kmscube/kmscube/detect-gst_bo_map-_unmap-and-use-it-or-avoid-it.patch @@ -1,7 +1,7 @@ -From 761bf993ca55095f46380c0238583791c1797295 Mon Sep 17 00:00:00 2001 +From a91c588b5a4122506e7fe949c37d530621bdd997 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20D=C3=ADaz?= Date: Tue, 11 Jul 2017 14:50:37 -0500 -Subject: [PATCH kmscube] Detect gst_bo_map/_unmap and use it (or avoid it) +Subject: [PATCH] Detect gst_bo_map/_unmap and use it (or avoid it) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -18,6 +18,7 @@ Cc: Rob Clark Reviewed-by: Eric Engestrom Upstream-Status: Submitted [https://lists.freedesktop.org/archives/mesa-dev/2017-July/163020.html] +Signed-off-by: Zoltan Kuscsik --- Makefile.am | 5 ++++- configure.ac | 3 +++ @@ -26,7 +27,7 @@ Upstream-Status: Submitted [https://lists.freedesktop.org/archives/mesa-dev/2017 4 files changed, 17 insertions(+), 2 deletions(-) diff --git a/Makefile.am b/Makefile.am -index a36087d..ab4adbf 100644 +index ba064e4..3a0a50b 100644 --- a/Makefile.am +++ b/Makefile.am @@ -43,7 +43,6 @@ kmscube_SOURCES = \ @@ -37,16 +38,16 @@ index a36087d..ab4adbf 100644 drm-atomic.c \ drm-common.c \ drm-common.h \ -@@ -59,3 +58,7 @@ kmscube_LDADD += $(GST_LIBS) - kmscube_CFLAGS += $(GST_CFLAGS) - kmscube_SOURCES += cube-video.c gst-decoder.c - endif +@@ -68,3 +67,7 @@ texturator_SOURCES = \ + drm-common.c \ + drm-legacy.c \ + texturator.c + +if ENABLE_GBM_MAP +kmscube_SOURCES += cube-tex.c +endif diff --git a/configure.ac b/configure.ac -index 8397f7b..c7f1f4d 100644 +index 6be6541..3d20121 100644 --- a/configure.ac +++ b/configure.ac @@ -49,5 +49,8 @@ if test "x$HAVE_GST" = "xyes"; then @@ -59,7 +60,7 @@ index 8397f7b..c7f1f4d 100644 AC_CONFIG_FILES([Makefile]) AC_OUTPUT diff --git a/gst-decoder.c b/gst-decoder.c -index 2d6d581..b84980e 100644 +index 5431014..0aa7a55 100644 --- a/gst-decoder.c +++ b/gst-decoder.c @@ -332,6 +332,7 @@ set_last_frame(struct decoder *dec, EGLImage frame, GstSample *samp) @@ -96,10 +97,10 @@ index 2d6d581..b84980e 100644 if (dmabuf_fd < 0) { GST_ERROR("could not obtain DMABUF FD"); diff --git a/kmscube.c b/kmscube.c -index 3a2c4dd..276dc55 100644 +index 81803be..e93da67 100644 --- a/kmscube.c +++ b/kmscube.c -@@ -148,7 +148,11 @@ int main(int argc, char *argv[]) +@@ -166,7 +166,11 @@ int main(int argc, char *argv[]) else if (mode == VIDEO) egl = init_cube_video(gbm, video, samples); else @@ -112,5 +113,5 @@ index 3a2c4dd..276dc55 100644 if (!egl) { printf("failed to initialize EGL\n"); -- -2.7.4 +2.22.0 diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/kmscube/kmscube_git.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/kmscube/kmscube_git.bb index 513148f9..82720045 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/kmscube/kmscube_git.bb +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/kmscube/kmscube_git.bb @@ -6,14 +6,14 @@ DEPENDS = "virtual/libgles2 virtual/egl libdrm" LIC_FILES_CHKSUM = "file://kmscube.c;beginline=1;endline=23;md5=8b309d4ee67b7315ff7381270dd631fb" -SRCREV = "485b385e966a63cecc143765d112d267b299ffe5" -SRC_URI = "git://anongit.freedesktop.org/mesa/kmscube;branch=master;protocol=git \ +SRCREV = "f632b23a528ed6b4e1fddd774db005c30ab65568" +SRC_URI = "git://gitlab.freedesktop.org/mesa/kmscube;branch=master;protocol=https \ file://detect-gst_bo_map-_unmap-and-use-it-or-avoid-it.patch" UPSTREAM_CHECK_COMMITS = "1" S = "${WORKDIR}/git" -inherit meson pkgconfig distro_features_check +inherit meson pkgconfig features_check REQUIRED_DISTRO_FEATURES = "opengl" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/libepoxy/libepoxy_1.5.3.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/libepoxy/libepoxy_1.5.3.bb index dd706a96..71a2c913 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/libepoxy/libepoxy_1.5.3.bb +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/libepoxy/libepoxy_1.5.3.bb @@ -1,4 +1,8 @@ SUMMARY = "OpenGL function pointer management library" +DESCRIPTION = "It hides the complexity of dlopen(), dlsym(), \ +glXGetProcAddress(), eglGetProcAddress(), etc. from the app developer, with \ +very little knowledge needed on their part. They get to read GL specs and \ +write code using undecorated function names like glCompileShader()." HOMEPAGE = "https://github.com/anholt/libepoxy/" SECTION = "libs" @@ -11,20 +15,20 @@ SRC_URI[md5sum] = "e2845de8d2782b2d31c01ae8d7cd4cbb" SRC_URI[sha256sum] = "002958c5528321edd53440235d3c44e71b5b1e09b9177e8daf677450b6c4433d" UPSTREAM_CHECK_URI = "https://github.com/anholt/libepoxy/releases" -inherit meson pkgconfig distro_features_check +inherit meson pkgconfig features_check REQUIRED_DISTRO_FEATURES = "opengl" REQUIRED_DISTRO_FEATURES_class-native = "" REQUIRED_DISTRO_FEATURES_class-nativesdk = "" PACKAGECONFIG[egl] = "-Degl=yes, -Degl=no, virtual/egl" -PACKAGECONFIG[x11] = "-Dglx=yes, -Dglx=no, virtual/libx11 virtual/libgl" +PACKAGECONFIG[x11] = "-Dglx=yes, -Dglx=no -Dx11=false, virtual/libx11 virtual/libgl" PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'x11', d)} egl" EXTRA_OEMESON += "-Dtests=false" -PACKAGECONFIG_class-native = "egl" -PACKAGECONFIG_class-nativesdk = "egl" +PACKAGECONFIG_class-native = "egl x11" +PACKAGECONFIG_class-nativesdk = "egl x11" BBCLASSEXTEND = "native nativesdk" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/libfakekey/libfakekey_git.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/libfakekey/libfakekey_git.bb index 4b803dba..ab6f5ac9 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/libfakekey/libfakekey_git.bb +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/libfakekey/libfakekey_git.bb @@ -17,7 +17,7 @@ SRC_URI = "git://git.yoctoproject.org/${BPN}" S = "${WORKDIR}/git" -inherit autotools pkgconfig gettext distro_features_check +inherit autotools pkgconfig gettext features_check # The libxtst requires x11 in DISTRO_FEATURES REQUIRED_DISTRO_FEATURES = "x11" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/libmatchbox/libmatchbox_1.12.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/libmatchbox/libmatchbox_1.12.bb index ce45e481..1a316779 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/libmatchbox/libmatchbox_1.12.bb +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/libmatchbox/libmatchbox_1.12.bb @@ -1,4 +1,8 @@ SUMMARY = "Matchbox window manager core library" +DESCRIPTION = "Matchbox is an Open Source base environment for the X Window \ +System running on non-desktop embedded platforms such as handhelds, set-top \ +boxes, kiosks and anything else for which screen space, input mechanisms or \ +system resources are limited." SECTION = "x11/libs" HOMEPAGE = "http://matchbox-project.org/" BUGTRACKER = "http://bugzilla.yoctoproject.com/" @@ -17,7 +21,7 @@ SRC_URI = "git://git.yoctoproject.org/${BPN}" S = "${WORKDIR}/git" -inherit autotools pkgconfig distro_features_check +inherit autotools pkgconfig features_check # depends on virtual/libx11 REQUIRED_DISTRO_FEATURES = "x11" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/libsdl2/libsdl2/0001-Fixed-bug-4538-validate-image-size-when-loading-BMP-.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/libsdl2/libsdl2/0001-Fixed-bug-4538-validate-image-size-when-loading-BMP-.patch new file mode 100644 index 00000000..674deccc --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/libsdl2/libsdl2/0001-Fixed-bug-4538-validate-image-size-when-loading-BMP-.patch @@ -0,0 +1,34 @@ +From 85138c1ec673e05263ae666baf61f79384daf7e0 Mon Sep 17 00:00:00 2001 +From: Sam Lantinga +Date: Tue, 30 Jul 2019 11:00:00 -0700 +Subject: [PATCH] Fixed bug 4538 - validate image size when loading BMP files + +Upstream-Status: Backport +[https://hg.libsdl.org/SDL/rev/e7ba650a643a] + +CVE: CVE-2019-13616 + +Signed-off-by: Yi Zhao +--- + src/video/SDL_bmp.c | 5 +++++ + 1 file changed, 5 insertions(+) + +diff --git a/src/video/SDL_bmp.c b/src/video/SDL_bmp.c +index 0b68918..a06b0c9 100644 +--- a/src/video/SDL_bmp.c ++++ b/src/video/SDL_bmp.c +@@ -226,6 +226,11 @@ SDL_LoadBMP_RW(SDL_RWops * src, int freesrc) + SDL_RWseek(src, (biSize - headerSize), RW_SEEK_CUR); + } + } ++ if (biWidth <= 0 || biHeight == 0) { ++ SDL_SetError("BMP file with bad dimensions (%dx%d)", biWidth, biHeight); ++ was_error = SDL_TRUE; ++ goto done; ++ } + if (biHeight < 0) { + topDown = SDL_TRUE; + biHeight = -biHeight; +-- +2.7.4 + diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/libsdl2/libsdl2/0001-configure-check-for-build-dir-when-building-version-.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/libsdl2/libsdl2/0001-configure-check-for-build-dir-when-building-version-.patch new file mode 100644 index 00000000..b383bd65 --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/libsdl2/libsdl2/0001-configure-check-for-build-dir-when-building-version-.patch @@ -0,0 +1,53 @@ +# HG changeset patch +# User Anuj Mittal +# Date 1573631462 -10800 +# Node ID 1fb1880d5edfc7c5a370846e13f90b260263627c +# Parent 007002587d5d34d781c2b628c05e992e0ac5f52d +configure: check for build dir when building version res (fix bug #4858) +Fixes a race where we try to build version res file in build directory +before it has even been created. Prevents errors like: + +/bin/bash ../SDL2-2.0.10/build-scripts/updaterev.sh +/bin/bash ../SDL2-2.0.10/build-scripts/mkinstalldirs build +mkdir -p -- build +x86_64-pokysdk-mingw32-windres --include-dir=/home/pokybuild/yocto-worker/meta-mingw/build/build/tmp/work/x86_64-nativesdk-mingw32-pokysdk-mingw32/nativesdk-libsdl2/2.0.10-r0/recipe-sysroot/opt/poky/3.0/sysroots/x86_64-pokysdk-mingw32/usr/include ../SDL2-2.0.10/src/main/windows/version.rc build/version.o +x86_64-pokysdk-mingw32-windres: build/version.o: No such file or directory +Makefile:692: recipe for target 'build/version.o' failed +make: *** [build/version.o] Error 1 +make: *** Waiting for unfinished jobs.... +touch build/.created +WARNING: exit code 1 from a shell command. + +Extension of fix: +https://hg.libsdl.org/SDL/rev/99d8b18acf8a + +Upstream-Status: Backport +Signed-off-by: Anuj Mittal +--- + configure.ac | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff -r 007002587d5d -r 1fb1880d5edf configure +--- a/configure Tue Nov 12 17:24:37 2019 -0500 ++++ b/configure Wed Nov 13 10:51:02 2019 +0300 +@@ -25493,7 +25493,7 @@ + VERSION_DEPENDS=`echo $VERSION_SOURCES` + VERSION_OBJECTS=`echo "$VERSION_OBJECTS" | sed 's,[^ ]*/\([^ ]*\)\.rc,$(objects)/\1.o,g'` + VERSION_DEPENDS=`echo "$VERSION_DEPENDS" | sed "s,\\([^ ]*\\)/\\([^ ]*\\)\\.rc,\\\\ +-\\$(objects)/\\2.o: \\1/\\2.rc\\\\ ++\\$(objects)/\\2.o: \\1/\\2.rc \\$(objects)/.created\\\\ + \\$(WINDRES) \\$< \\$@,g"` + + SDLMAIN_OBJECTS=`echo $SDLMAIN_SOURCES` +diff -r 007002587d5d -r 1fb1880d5edf configure.ac +--- a/configure.ac Tue Nov 12 17:24:37 2019 -0500 ++++ b/configure.ac Wed Nov 13 10:51:02 2019 +0300 +@@ -4177,7 +4177,7 @@ + VERSION_DEPENDS=`echo $VERSION_SOURCES` + VERSION_OBJECTS=`echo "$VERSION_OBJECTS" | sed 's,[[^ ]]*/\([[^ ]]*\)\.rc,$(objects)/\1.o,g'` + VERSION_DEPENDS=`echo "$VERSION_DEPENDS" | sed "s,\\([[^ ]]*\\)/\\([[^ ]]*\\)\\.rc,\\\\ +-\\$(objects)/\\2.o: \\1/\\2.rc\\\\ ++\\$(objects)/\\2.o: \\1/\\2.rc \\$(objects)/.created\\\\ + \\$(WINDRES) \\$< \\$@,g"` + + SDLMAIN_OBJECTS=`echo $SDLMAIN_SOURCES` diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/libsdl2/libsdl2/0002-Fixed-bug-4797-SDL-fails-to-compile-with-Mesa-Master.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/libsdl2/libsdl2/0002-Fixed-bug-4797-SDL-fails-to-compile-with-Mesa-Master.patch new file mode 100644 index 00000000..8f5b6a0c --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/libsdl2/libsdl2/0002-Fixed-bug-4797-SDL-fails-to-compile-with-Mesa-Master.patch @@ -0,0 +1,41 @@ +# HG changeset patch +# User Sylvain Becker +# Date 1570898876 -7200 +# Sat Oct 12 18:47:56 2019 +0200 +# Node ID 369b01006eb2f6fd563f7c315d29ae3fe503c432 +# Parent 4cbaffd0083b8cd17070dbd9d4ab1ce0fa9fca2d +Fixed bug 4797 - SDL fails to compile with Mesa Master (thanks Michael Olbrich!) + +fix building with Mesa 19.2 + +With Mesa 19.2 building fails with: + +/include/GLES/gl.h:63:25: error: conflicting types for 'GLsizeiptr' + +The same type is defined in include/SDL_opengl.h for OpenGL and the two +headers should not be included at the same time. +This was just never noticed because the same header guard '__gl_h_' was +used. This was changed in Mesa. The result is this error. + +Fix this the same way GLES2 already handles this: Don't include the GLES +header when the OpenGL header was already included. +(https://hg.libsdl.org/SDL/rev/a60b3c292f0f) + +Upstream-Status: Backport [https://hg.libsdl.org/SDL/rev/369b01006eb2] +Signed-off-by: Alistair Francis + +diff --git a/src/video/SDL_video.c b/src/video/SDL_video.c +--- a/src/video/SDL_video.c ++++ b/src/video/SDL_video.c +@@ -37,9 +37,9 @@ + #include "SDL_opengl.h" + #endif /* SDL_VIDEO_OPENGL */ + +-#if SDL_VIDEO_OPENGL_ES ++#if SDL_VIDEO_OPENGL_ES && !SDL_VIDEO_OPENGL + #include "SDL_opengles.h" +-#endif /* SDL_VIDEO_OPENGL_ES */ ++#endif /* SDL_VIDEO_OPENGL_ES && !SDL_VIDEO_OPENGL */ + + /* GL and GLES2 headers conflict on Linux 32 bits */ + #if SDL_VIDEO_OPENGL_ES2 && !SDL_VIDEO_OPENGL diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/libsdl2/libsdl2/more-gen-depends.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/libsdl2/libsdl2/more-gen-depends.patch index 29076bf6..8ca52ebd 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/libsdl2/libsdl2/more-gen-depends.patch +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/libsdl2/libsdl2/more-gen-depends.patch @@ -1,3 +1,8 @@ +From e0f4b6d18ce6f025c78773e909b9c395ad833c7a Mon Sep 17 00:00:00 2001 +From: Ross Burton +Date: Mon, 29 Jul 2019 08:38:32 +0800 +Subject: [PATCH] configure: fix dependencies + Many source files include e.g. wayland-protocols.h which should be found in the sysroot but SDL wants to build its own headers from the XML definitions. @@ -14,34 +19,42 @@ the primary objects. Upstream-Status: Pending Signed-off-by: Ross Burton +[Moved to configure.ac] +Signed-off-by: Anuj Mittal +--- + configure.ac | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) -diff --git a/configure.in b/data/poky-tmp/master/work/corei7-64-poky-linux/libsdl2/2.0.8-r0/SDL2-2.0.8/configure.in -index 1c7e79338..ba07a4a4e 100644 ---- a/configure.in -+++ b/data/poky-tmp/master/work/corei7-64-poky-linux/libsdl2/2.0.8-r0/SDL2-2.0.8/configure.in -@@ -4011,7 +4011,7 @@ DEPENDS=`echo $SOURCES | tr ' ' '\n'` +diff --git a/configure.ac b/configure.ac +index 9e782c6..997915a 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -4061,7 +4061,7 @@ DEPENDS=`echo $SOURCES | tr ' ' '\n'` for EXT in asm cc m c S; do OBJECTS=`echo "$OBJECTS" | sed 's,[[^ ]]*/\([[^ ]]*\)\.'$EXT',$(objects)/\1.lo,g'` DEPENDS=`echo "$DEPENDS" | sed "s,^\\([[^ ]]*\\)/\\([[^ ]]*\\)\\.$EXT\\$,\\\\ --\\$(objects)/\\2.lo: \\1/\\2.$EXT\\\\ -+\\$(objects)/\\2.lo: \\1/\\2.$EXT \\$(GEN_OBJECTS)\\\\ +-\\$(objects)/\\2.lo: \\1/\\2.$EXT \\$(objects)/.created\\\\ ++\\$(objects)/\\2.lo: \\1/\\2.$EXT \\$(objects)/.created \\$(GEN_OBJECTS)\\\\ \\$(RUN_CMD_CC)\\$(LIBTOOL) --tag=CC --mode=compile \\$(CC) \\$(CFLAGS) \\$(EXTRA_CFLAGS) $DEPENDENCY_TRACKING_OPTIONS -c \\$< -o \\$@,g"` done -@@ -4028,14 +4028,14 @@ SDLMAIN_OBJECTS=`echo $SDLMAIN_SOURCES` +@@ -4078,14 +4078,14 @@ SDLMAIN_OBJECTS=`echo $SDLMAIN_SOURCES` SDLMAIN_DEPENDS=`echo $SDLMAIN_SOURCES` SDLMAIN_OBJECTS=`echo "$SDLMAIN_OBJECTS" | sed 's,[[^ ]]*/\([[^ ]]*\)\.c,$(objects)/\1.lo,g'` SDLMAIN_DEPENDS=`echo "$SDLMAIN_DEPENDS" | sed "s,\\([[^ ]]*\\)/\\([[^ ]]*\\)\\.c,\\\\ --\\$(objects)/\\2.lo: \\1/\\2.c\\\\ -+\\$(objects)/\\2.lo: \\1/\\2.c \\$(GEN_OBJECTS)\\\\ +-\\$(objects)/\\2.lo: \\1/\\2.c \\$(objects)/.created\\\\ ++\\$(objects)/\\2.lo: \\1/\\2.c \\$(objects)/.created \\$(GEN_OBJECTS)\\\\ \\$(RUN_CMD_CC)\\$(LIBTOOL) --tag=CC --mode=compile \\$(CC) \\$(CFLAGS) \\$(EXTRA_CFLAGS) $DEPENDENCY_TRACKING_OPTIONS -c \\$< -o \\$@,g"` SDLTEST_OBJECTS=`echo $SDLTEST_SOURCES` SDLTEST_DEPENDS=`echo $SDLTEST_SOURCES` SDLTEST_OBJECTS=`echo "$SDLTEST_OBJECTS" | sed 's,[[^ ]]*/\([[^ ]]*\)\.c,$(objects)/\1.lo,g'` SDLTEST_DEPENDS=`echo "$SDLTEST_DEPENDS" | sed "s,\\([[^ ]]*\\)/\\([[^ ]]*\\)\\.c,\\\\ --\\$(objects)/\\2.lo: \\1/\\2.c\\\\ -+\\$(objects)/\\2.lo: \\1/\\2.c\\\\ \\$(GEN_OBJECTS)\\\\ +-\\$(objects)/\\2.lo: \\1/\\2.c \\$(objects)/.created\\\\ ++\\$(objects)/\\2.lo: \\1/\\2.c \\$(objects)/.created \\$(GEN_OBJECTS)\\\\ \\$(RUN_CMD_CC)\\$(LIBTOOL) --tag=CC --mode=compile \\$(CC) \\$(CFLAGS) \\$(EXTRA_CFLAGS) $DEPENDENCY_TRACKING_OPTIONS -c \\$< -o \\$@,g"` # Set runtime shared library paths as needed +-- +2.7.4 + diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/libsdl2/libsdl2_2.0.10.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/libsdl2/libsdl2_2.0.10.bb new file mode 100644 index 00000000..ac4a3560 --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/libsdl2/libsdl2_2.0.10.bb @@ -0,0 +1,77 @@ +SUMMARY = "Simple DirectMedia Layer" +DESCRIPTION = "Simple DirectMedia Layer is a cross-platform multimedia \ +library designed to provide low level access to audio, keyboard, mouse, \ +joystick, 3D hardware via OpenGL, and 2D video framebuffer." +HOMEPAGE = "http://www.libsdl.org" +BUGTRACKER = "http://bugzilla.libsdl.org/" + +SECTION = "libs" + +LICENSE = "Zlib" +LIC_FILES_CHKSUM = "file://COPYING.txt;md5=504a9454ceb89fd75a2583473b11409e" + +PROVIDES = "virtual/libsdl2" + +SRC_URI = "http://www.libsdl.org/release/SDL2-${PV}.tar.gz \ + file://more-gen-depends.patch \ + file://0001-Fixed-bug-4538-validate-image-size-when-loading-BMP-.patch \ + file://0002-Fixed-bug-4797-SDL-fails-to-compile-with-Mesa-Master.patch \ + file://0001-configure-check-for-build-dir-when-building-version-.patch \ +" + +S = "${WORKDIR}/SDL2-${PV}" + +SRC_URI[md5sum] = "5a2114f2a6f348bdab5bf52b994811db" +SRC_URI[sha256sum] = "b4656c13a1f0d0023ae2f4a9cf08ec92fffb464e0f24238337784159b8b91d57" + +inherit autotools lib_package binconfig-disabled pkgconfig + +BINCONFIG = "${bindir}/sdl2-config" + +CVE_PRODUCT = "simple_directmedia_layer sdl" + +EXTRA_OECONF = "--disable-oss --disable-esd --disable-arts \ + --disable-diskaudio --disable-nas --disable-esd-shared --disable-esdtest \ + --disable-video-dummy \ + --enable-pthreads \ + --enable-sdl-dlopen \ + --disable-rpath \ + --disable-sndio \ + " + +# opengl packageconfig factored out to make it easy for distros +# and BSP layers to pick either (desktop) opengl, gles2, or no GL +PACKAGECONFIG_GL ?= "${@bb.utils.filter('DISTRO_FEATURES', 'opengl', d)}" + +PACKAGECONFIG_class-native = "x11" +PACKAGECONFIG_class-nativesdk = "${@bb.utils.filter('DISTRO_FEATURES', 'x11', d)}" +PACKAGECONFIG ??= " \ + ${PACKAGECONFIG_GL} \ + ${@bb.utils.filter('DISTRO_FEATURES', 'alsa directfb pulseaudio x11', d)} \ + ${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'wayland gles2', '', d)} \ +" +PACKAGECONFIG[alsa] = "--enable-alsa --disable-alsatest,--disable-alsa,alsa-lib," +PACKAGECONFIG[directfb] = "--enable-video-directfb,--disable-video-directfb,directfb" +PACKAGECONFIG[gles2] = "--enable-video-opengles,--disable-video-opengles,virtual/libgles2" +PACKAGECONFIG[jack] = "--enable-jack,--disable-jack,jack" +PACKAGECONFIG[kmsdrm] = "--enable-video-kmsdrm,--disable-video-kmsdrm,libdrm virtual/libgbm" +PACKAGECONFIG[opengl] = "--enable-video-opengl,--disable-video-opengl,virtual/libgl" +PACKAGECONFIG[pulseaudio] = "--enable-pulseaudio,--disable-pulseaudio,pulseaudio" +PACKAGECONFIG[tslib] = "--enable-input-tslib,--disable-input-tslib,tslib" +PACKAGECONFIG[wayland] = "--enable-video-wayland,--disable-video-wayland,wayland-native wayland wayland-protocols libxkbcommon" +PACKAGECONFIG[x11] = "--enable-video-x11,--disable-video-x11,virtual/libx11 libxext libxrandr libxrender" + +EXTRA_AUTORECONF += "--include=acinclude --exclude=autoheader" + +do_configure_prepend() { + # Remove old libtool macros. + MACROS="libtool.m4 lt~obsolete.m4 ltoptions.m4 ltsugar.m4 ltversion.m4" + for i in ${MACROS}; do + rm -f ${S}/acinclude/$i + done + export SYSROOT=$PKG_CONFIG_SYSROOT_DIR +} + +FILES_${PN}-dev += "${libdir}/cmake" + +BBCLASSEXTEND = "native nativesdk" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/libsdl2/libsdl2_2.0.9.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/libsdl2/libsdl2_2.0.9.bb deleted file mode 100644 index a0a0b150..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/libsdl2/libsdl2_2.0.9.bb +++ /dev/null @@ -1,74 +0,0 @@ -SUMMARY = "Simple DirectMedia Layer" -DESCRIPTION = "Simple DirectMedia Layer is a cross-platform multimedia \ -library designed to provide low level access to audio, keyboard, mouse, \ -joystick, 3D hardware via OpenGL, and 2D video framebuffer." -HOMEPAGE = "http://www.libsdl.org" -BUGTRACKER = "http://bugzilla.libsdl.org/" - -SECTION = "libs" - -LICENSE = "Zlib" -LIC_FILES_CHKSUM = "file://COPYING.txt;md5=02ee26814dd044bd7838ae24e05b880f" - -PROVIDES = "virtual/libsdl2" - -SRC_URI = "http://www.libsdl.org/release/SDL2-${PV}.tar.gz \ - file://more-gen-depends.patch \ -" - -S = "${WORKDIR}/SDL2-${PV}" - -SRC_URI[md5sum] = "f2ecfba915c54f7200f504d8b48a5dfe" -SRC_URI[sha256sum] = "255186dc676ecd0c1dbf10ec8a2cc5d6869b5079d8a38194c2aecdff54b324b1" - -inherit autotools lib_package binconfig-disabled pkgconfig - -BINCONFIG = "${bindir}/sdl2-config" - -CVE_PRODUCT = "simple_directmedia_layer sdl" - -EXTRA_OECONF = "--disable-oss --disable-esd --disable-arts \ - --disable-diskaudio --disable-nas --disable-esd-shared --disable-esdtest \ - --disable-video-dummy \ - --enable-pthreads \ - --enable-sdl-dlopen \ - --disable-rpath \ - --disable-sndio \ - " - -# opengl packageconfig factored out to make it easy for distros -# and BSP layers to pick either (desktop) opengl, gles2, or no GL -PACKAGECONFIG_GL ?= "${@bb.utils.filter('DISTRO_FEATURES', 'opengl', d)}" - -PACKAGECONFIG_class-native = "x11" -PACKAGECONFIG_class-nativesdk = "${@bb.utils.filter('DISTRO_FEATURES', 'x11', d)}" -PACKAGECONFIG ??= " \ - ${PACKAGECONFIG_GL} \ - ${@bb.utils.filter('DISTRO_FEATURES', 'alsa directfb pulseaudio x11', d)} \ - ${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'wayland gles2', '', d)} \ -" -PACKAGECONFIG[alsa] = "--enable-alsa --disable-alsatest,--disable-alsa,alsa-lib," -PACKAGECONFIG[directfb] = "--enable-video-directfb,--disable-video-directfb,directfb" -PACKAGECONFIG[gles2] = "--enable-video-opengles,--disable-video-opengles,virtual/libgles2" -PACKAGECONFIG[jack] = "--enable-jack,--disable-jack,jack" -PACKAGECONFIG[kmsdrm] = "--enable-video-kmsdrm,--disable-video-kmsdrm,libdrm virtual/libgbm" -PACKAGECONFIG[opengl] = "--enable-video-opengl,--disable-video-opengl,virtual/libgl" -PACKAGECONFIG[pulseaudio] = "--enable-pulseaudio,--disable-pulseaudio,pulseaudio" -PACKAGECONFIG[tslib] = "--enable-input-tslib,--disable-input-tslib,tslib" -PACKAGECONFIG[wayland] = "--enable-video-wayland,--disable-video-wayland,wayland-native wayland wayland-protocols libxkbcommon" -PACKAGECONFIG[x11] = "--enable-video-x11,--disable-video-x11,virtual/libx11 libxext libxrandr libxrender" - -EXTRA_AUTORECONF += "--include=acinclude --exclude=autoheader" - -do_configure_prepend() { - # Remove old libtool macros. - MACROS="libtool.m4 lt~obsolete.m4 ltoptions.m4 ltsugar.m4 ltversion.m4" - for i in ${MACROS}; do - rm -f ${S}/acinclude/$i - done - export SYSROOT=$PKG_CONFIG_SYSROOT_DIR -} - -FILES_${PN}-dev += "${libdir}/cmake" - -BBCLASSEXTEND = "native nativesdk" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/libva/libva-utils_2.4.0.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/libva/libva-utils_2.4.0.bb deleted file mode 100644 index 7b764314..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/libva/libva-utils_2.4.0.bb +++ /dev/null @@ -1,35 +0,0 @@ -SUMMARY = "libva-utils is a collection of utilities from libva project" - -DESCRIPTION = "libva-utils is a collection of utilities \ -and examples to exercise VA-API in accordance with the libva \ -project.VA-API is an open-source library and API specification, \ -which provides access to graphics hardware acceleration capabilities \ -for video processing. It consists of a main library and driver-specific \ -acceleration backends for each supported hardware vendor" - -HOMEPAGE = "https://01.org/linuxmedia/vaapi" -BUGTRACKER = "https://github.com/intel/libva-utils/issues" - -SECTION = "x11" -LICENSE = "MIT" -LIC_FILES_CHKSUM = "file://COPYING;md5=b148fc8adf19dc9aec17cf9cd29a9a5e" - -SRC_URI = "https://github.com/intel/${BPN}/releases/download/${PV}/${BP}.tar.bz2 \ - file://0001-Build-sfcsample-only-when-X11-backend-is-enabled.patch \ - " - -SRC_URI[md5sum] = "f5374c4c32ce136e50aea0267887aed5" -SRC_URI[sha256sum] = "5b7d1954b40fcb2c0544be20125c71a0852049715ab85a3e8aba60434a40c6b3" - -UPSTREAM_CHECK_URI = "https://github.com/intel/libva-utils/releases" - -DEPENDS = "libva" - -inherit autotools pkgconfig distro_features_check - -# depends on libva which requires opengl -REQUIRED_DISTRO_FEATURES = "opengl" - -PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'wayland x11', d)}" -PACKAGECONFIG[x11] = "--enable-x11,--disable-x11,virtual/libx11 libxext libxfixes" -PACKAGECONFIG[wayland] = "--enable-wayland,--disable-wayland,wayland-native wayland" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/libva/libva-utils_2.5.0.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/libva/libva-utils_2.5.0.bb new file mode 100644 index 00000000..f68d0cf8 --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/libva/libva-utils_2.5.0.bb @@ -0,0 +1,35 @@ +SUMMARY = "libva-utils is a collection of utilities from libva project" + +DESCRIPTION = "libva-utils is a collection of utilities \ +and examples to exercise VA-API in accordance with the libva \ +project.VA-API is an open-source library and API specification, \ +which provides access to graphics hardware acceleration capabilities \ +for video processing. It consists of a main library and driver-specific \ +acceleration backends for each supported hardware vendor" + +HOMEPAGE = "https://01.org/linuxmedia/vaapi" +BUGTRACKER = "https://github.com/intel/libva-utils/issues" + +SECTION = "x11" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://COPYING;md5=b148fc8adf19dc9aec17cf9cd29a9a5e" + +SRC_URI = "https://github.com/intel/${BPN}/releases/download/${PV}/${BP}.tar.bz2 \ + file://0001-Build-sfcsample-only-when-X11-backend-is-enabled.patch \ + " + +SRC_URI[md5sum] = "c1fada26c286654859eff33b2562cb79" +SRC_URI[sha256sum] = "9238c9d5110d60f935683390b8383fdac3507346384cd5f117a23c6db1d72a17" + +UPSTREAM_CHECK_URI = "https://github.com/intel/libva-utils/releases" + +DEPENDS = "libva" + +inherit autotools pkgconfig features_check + +# depends on libva which requires opengl +REQUIRED_DISTRO_FEATURES = "opengl" + +PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'wayland x11', d)}" +PACKAGECONFIG[x11] = "--enable-x11,--disable-x11,virtual/libx11 libxext libxfixes" +PACKAGECONFIG[wayland] = "--enable-wayland,--disable-wayland,wayland-native wayland" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/libva/libva_2.4.1.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/libva/libva_2.4.1.bb deleted file mode 100644 index 525721f0..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/libva/libva_2.4.1.bb +++ /dev/null @@ -1,46 +0,0 @@ -SUMMARY = "Video Acceleration (VA) API for Linux" -DESCRIPTION = "Video Acceleration API (VA API) is a library (libVA) \ -and API specification which enables and provides access to graphics \ -hardware (GPU) acceleration for video processing on Linux and UNIX \ -based operating systems. Accelerated processing includes video \ -decoding, video encoding, subpicture blending and rendering. The \ -specification was originally designed by Intel for its GMA (Graphics \ -Media Accelerator) series of GPU hardware, the API is however not \ -limited to GPUs or Intel specific hardware, as other hardware and \ -manufacturers can also freely use this API for hardware accelerated \ -video decoding." - -HOMEPAGE = "https://01.org/linuxmedia/vaapi" -BUGTRACKER = "https://github.com/intel/libva/issues" - -SECTION = "x11" -LICENSE = "MIT" -LIC_FILES_CHKSUM = "file://COPYING;md5=2e48940f94acb0af582e5ef03537800f" - -SRC_URI = "https://github.com/intel/${BPN}/releases/download/${PV}/${BP}.tar.bz2" - -SRC_URI[md5sum] = "5b5ace9de3f07cb7b8f4d19b6979adf0" -SRC_URI[sha256sum] = "e9e053908591b121793eaa5d8aa37675b4cd3af4b12f1f377dff4767f39cee70" - -UPSTREAM_CHECK_URI = "https://github.com/intel/libva/releases" - -DEPENDS = "libdrm virtual/mesa" - -inherit autotools pkgconfig distro_features_check - -REQUIRED_DISTRO_FEATURES = "opengl" - -EXTRA_OECONF = "ac_cv_prog_WAYLAND_SCANNER=wayland-scanner" - -PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'wayland x11', d)}" -PACKAGECONFIG[x11] = "--enable-x11,--disable-x11,virtual/libx11 libxext libxfixes" -PACKAGECONFIG[wayland] = "--enable-wayland,--disable-wayland,wayland-native wayland" - -PACKAGES =+ "${PN}-x11 ${PN}-glx ${PN}-wayland" - -RDEPENDS_${PN}-x11 =+ "${PN}" -RDEPENDS_${PN}-glx =+ "${PN}-x11" - -FILES_${PN}-x11 =+ "${libdir}/libva-x11*${SOLIBS}" -FILES_${PN}-glx =+ "${libdir}/libva-glx*${SOLIBS}" -FILES_${PN}-wayland =+ "${libdir}/libva-wayland*${SOLIBS}" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/libva/libva_2.5.0.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/libva/libva_2.5.0.bb new file mode 100644 index 00000000..73e2e01c --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/libva/libva_2.5.0.bb @@ -0,0 +1,46 @@ +SUMMARY = "Video Acceleration (VA) API for Linux" +DESCRIPTION = "Video Acceleration API (VA API) is a library (libVA) \ +and API specification which enables and provides access to graphics \ +hardware (GPU) acceleration for video processing on Linux and UNIX \ +based operating systems. Accelerated processing includes video \ +decoding, video encoding, subpicture blending and rendering. The \ +specification was originally designed by Intel for its GMA (Graphics \ +Media Accelerator) series of GPU hardware, the API is however not \ +limited to GPUs or Intel specific hardware, as other hardware and \ +manufacturers can also freely use this API for hardware accelerated \ +video decoding." + +HOMEPAGE = "https://01.org/linuxmedia/vaapi" +BUGTRACKER = "https://github.com/intel/libva/issues" + +SECTION = "x11" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://COPYING;md5=2e48940f94acb0af582e5ef03537800f" + +SRC_URI = "https://github.com/intel/${BPN}/releases/download/${PV}/${BP}.tar.bz2" + +SRC_URI[md5sum] = "3688212fb7a87947070f3729e91ff7cf" +SRC_URI[sha256sum] = "3aa89cd369a506ac4dbe5de7c0ef5da4f3d220bf986403f02fa1f6f702af6878" + +UPSTREAM_CHECK_URI = "https://github.com/intel/libva/releases" + +DEPENDS = "libdrm virtual/mesa" + +inherit autotools pkgconfig features_check + +REQUIRED_DISTRO_FEATURES = "opengl" + +EXTRA_OECONF = "ac_cv_prog_WAYLAND_SCANNER=wayland-scanner" + +PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'wayland x11', d)}" +PACKAGECONFIG[x11] = "--enable-x11,--disable-x11,virtual/libx11 libxext libxfixes" +PACKAGECONFIG[wayland] = "--enable-wayland,--disable-wayland,wayland-native wayland" + +PACKAGES =+ "${PN}-x11 ${PN}-glx ${PN}-wayland" + +RDEPENDS_${PN}-x11 =+ "${PN}" +RDEPENDS_${PN}-glx =+ "${PN}-x11" + +FILES_${PN}-x11 =+ "${libdir}/libva-x11*${SOLIBS}" +FILES_${PN}-glx =+ "${libdir}/libva-glx*${SOLIBS}" +FILES_${PN}-wayland =+ "${libdir}/libva-wayland*${SOLIBS}" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/matchbox-session/matchbox-session_0.1.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/matchbox-session/matchbox-session_0.1.bb index cbaf0543..57a3024e 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/matchbox-session/matchbox-session_0.1.bb +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/matchbox-session/matchbox-session_0.1.bb @@ -1,4 +1,5 @@ SUMMARY = "Custom Matchbox session files" +DESCRIPTION = "Very simple session manager for matchbox tools" HOMEPAGE = "http://www.matchbox-project.org/" BUGTRACKER = "http://bugzilla.yoctoproject.org/" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/matchbox-wm/matchbox-wm_1.2.2.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/matchbox-wm/matchbox-wm_1.2.2.bb index 815a75f3..b9961c39 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/matchbox-wm/matchbox-wm_1.2.2.bb +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/matchbox-wm/matchbox-wm_1.2.2.bb @@ -17,7 +17,7 @@ SRC_URI = "git://git.yoctoproject.org/matchbox-window-manager \ S = "${WORKDIR}/git" -inherit autotools pkgconfig distro_features_check +inherit autotools pkgconfig features_check # depends on virtual/libx11 REQUIRED_DISTRO_FEATURES = "x11" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/mesa/files/0001-meson.build-check-for-all-linux-host_os-combinations.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/mesa/files/0001-meson.build-check-for-all-linux-host_os-combinations.patch index 0064dc64..1869e110 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/mesa/files/0001-meson.build-check-for-all-linux-host_os-combinations.patch +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/mesa/files/0001-meson.build-check-for-all-linux-host_os-combinations.patch @@ -1,8 +1,7 @@ -From da6b9188f29942684d4262f0c6264d09bb6fe7de Mon Sep 17 00:00:00 2001 -From: Fabio Berton -Date: Wed, 12 Jun 2019 13:40:20 -0300 -Subject: [PATCH 1/3] meson.build: check for all linux host_os combinations -Organization: O.S. Systems Software LTDA. +From b6d9bc97cb0e8c540a45dba5440b036fb940ff95 Mon Sep 17 00:00:00 2001 +From: Alistair Francis +Date: Mon, 11 Nov 2019 09:38:15 -0800 +Subject: [PATCH] meson.build: check for all linux host_os combinations Make sure that we are also looking for our host_os combinations like linux-musl etc. when assuming support for DRM/KMS. @@ -13,41 +12,32 @@ Upstream-Status: Pending Signed-off-by: Anuj Mittal Signed-off-by: Fabio Berton +Signed-off-by: Otavio Salvador +Signed-off-by: Alistair Francis + --- - meson.build | 6 +++--- - 1 file changed, 3 insertions(+), 3 deletions(-) + meson.build | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/meson.build b/meson.build -index 8ab8a550f56..e11880f2902 100644 +index d584152..a1f098c 100644 --- a/meson.build +++ b/meson.build -@@ -34,6 +34,8 @@ cpp = meson.get_compiler('cpp') - - null_dep = dependency('', required : false) - -+system_has_kms_drm = ['openbsd', 'netbsd', 'freebsd', 'dragonfly'].contains(host_machine.system()) or host_machine.system().startswith('linux') -+ - # Arguments for the preprocessor, put these in a separate array from the C and - # C++ (cpp in meson terminology) arguments since they need to be added to the - # default arguments for both C and C++. -@@ -107,8 +109,6 @@ with_any_opengl = with_opengl or with_gles1 or with_gles2 +@@ -117,7 +117,7 @@ with_any_opengl = with_opengl or with_gles1 or with_gles2 # Only build shared_glapi if at least one OpenGL API is enabled with_shared_glapi = get_option('shared-glapi') and with_any_opengl --system_has_kms_drm = ['openbsd', 'netbsd', 'freebsd', 'dragonfly', 'linux'].contains(host_machine.system()) -- +-system_has_kms_drm = ['openbsd', 'netbsd', 'freebsd', 'gnu/kfreebsd', 'dragonfly', 'linux', 'sunos'].contains(host_machine.system()) ++system_has_kms_drm = ['openbsd', 'netbsd', 'freebsd', 'dragonfly'].contains(host_machine.system()) or host_machine.system().startswith('linux') + dri_drivers = get_option('dri-drivers') if dri_drivers.contains('auto') - if system_has_kms_drm -@@ -836,7 +836,7 @@ if cc.compiles('int foo(void) __attribute__((__noreturn__));', +@@ -856,7 +856,7 @@ if cc.compiles('__uint128_t foo(void) { return 0; }', endif # TODO: this is very incomplete --if ['linux', 'cygwin', 'gnu'].contains(host_machine.system()) -+if ['cygwin', 'gnu'].contains(host_machine.system()) or host_machine.system().startswith('linux') +-if ['linux', 'cygwin', 'gnu', 'gnu/kfreebsd'].contains(host_machine.system()) ++if ['cygwin', 'gnu', 'gnu/kfreebsd'].contains(host_machine.system()) or host_machine.system().startswith('linux') pre_args += '-D_GNU_SOURCE' - endif - --- -2.22.0 - + elif host_machine.system() == 'sunos' + pre_args += '-D__EXTENSIONS__' diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/mesa/files/0002-meson.build-make-TLS-ELF-optional.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/mesa/files/0002-meson.build-make-TLS-ELF-optional.patch new file mode 100644 index 00000000..199ed572 --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/mesa/files/0002-meson.build-make-TLS-ELF-optional.patch @@ -0,0 +1,46 @@ +From af6923544de02ded648a736e07b9bd8b7c52dba9 Mon Sep 17 00:00:00 2001 +From: Alistair Francis +Date: Wed, 23 Oct 2019 09:46:28 -0700 +Subject: [PATCH] meson.build: make TLS ELF optional + +USE_ELF_TLS has replaced GLX_USE_TLS so this patch is the original "make +TLS GLX optional again" patch updated to the latest mesa. + +Upstream-Status: Inappropriate [configuration] +Signed-off-by: Alistair Francis + +--- + meson.build | 2 +- + meson_options.txt | 6 ++++++ + 2 files changed, 7 insertions(+), 1 deletion(-) + +diff --git a/meson.build b/meson.build +index a1f098c..1e31eb4 100644 +--- a/meson.build ++++ b/meson.build +@@ -378,7 +378,7 @@ if with_egl and not (with_platform_drm or with_platform_surfaceless or with_plat + endif + + # Android uses emutls for versions <= P/28. For USE_ELF_TLS we need ELF TLS. +-if not with_platform_android or get_option('platform-sdk-version') >= 29 ++if (not with_platform_android or get_option('platform-sdk-version') >= 29) and get_option('elf-tls') + pre_args += '-DUSE_ELF_TLS' + endif + +diff --git a/meson_options.txt b/meson_options.txt +index b768c15..76cef24 100644 +--- a/meson_options.txt ++++ b/meson_options.txt +@@ -333,6 +333,12 @@ option( + value : true, + description : 'Enable direct rendering in GLX and EGL for DRI', + ) ++option( ++ 'elf-tls', ++ type : 'boolean', ++ value : true, ++ description : 'Enable TLS support in ELF', ++) + option( + 'I-love-half-baked-turnips', + type : 'boolean', diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/mesa/files/0002-meson.build-make-TLS-GLX-optional-again.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/mesa/files/0002-meson.build-make-TLS-GLX-optional-again.patch deleted file mode 100644 index 81454aaa..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/mesa/files/0002-meson.build-make-TLS-GLX-optional-again.patch +++ /dev/null @@ -1,54 +0,0 @@ -From d31718999797ffc4dd177d14760ef7b8fd95ac2f Mon Sep 17 00:00:00 2001 -From: Fabio Berton -Date: Wed, 12 Jun 2019 14:15:57 -0300 -Subject: [PATCH 2/3] meson.build: make TLS GLX optional again -Organization: O.S. Systems Software LTDA. - -This was optional with autotools, and needs to be disabled -when using musl C library, for instance. - -Upstream-Status: Pending - -Signed-off-by: Alexander Kanavin -Signed-off-by: Fabio Berton ---- - meson.build | 4 +++- - meson_options.txt | 7 +++++++ - 2 files changed, 10 insertions(+), 1 deletion(-) - -diff --git a/meson.build b/meson.build -index e11880f2902..7a07974ba61 100644 ---- a/meson.build -+++ b/meson.build -@@ -362,7 +362,9 @@ if with_egl and not (with_platform_drm or with_platform_surfaceless) - endif - endif - --pre_args += '-DGLX_USE_TLS' -+if get_option('glx-tls') -+ pre_args += '-DGLX_USE_TLS' -+endif - if with_glx != 'disabled' - if not (with_platform_x11 and with_any_opengl) - error('Cannot build GLX support without X11 platform support and at least one OpenGL API') -diff --git a/meson_options.txt b/meson_options.txt -index 1f72faabee8..fcd49efea27 100644 ---- a/meson_options.txt -+++ b/meson_options.txt -@@ -339,6 +339,13 @@ option( - value : true, - description : 'Enable direct rendering in GLX and EGL for DRI', - ) -+option( -+ 'glx-tls', -+ type : 'boolean', -+ value : true, -+ description : 'Enable TLS support in GLX', -+) -+ - option( - 'I-love-half-baked-turnips', - type : 'boolean', --- -2.22.0 - diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/mesa/files/0003-Allow-enable-DRI-without-DRI-drivers.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/mesa/files/0003-Allow-enable-DRI-without-DRI-drivers.patch index 0f254a1d..c20a1f7c 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/mesa/files/0003-Allow-enable-DRI-without-DRI-drivers.patch +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/mesa/files/0003-Allow-enable-DRI-without-DRI-drivers.patch @@ -1,33 +1,34 @@ -From 417ff3a03313aa003244990ed5c0188c421e6181 Mon Sep 17 00:00:00 2001 +From 5ad6515238bc042cccf9959abad44fdee9aeb07f Mon Sep 17 00:00:00 2001 From: Fabio Berton Date: Wed, 12 Jun 2019 14:18:31 -0300 -Subject: [PATCH 3/3] Allow enable DRI without DRI drivers -Organization: O.S. Systems Software LTDA. +Subject: [PATCH] Allow enable DRI without DRI drivers Upstream-Status: Pending Signed-off-by: Andrei Gherzan Signed-off-by: Fabio Berton +Signed-off-by: Otavio Salvador + --- meson.build | 2 +- meson_options.txt | 6 ++++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/meson.build b/meson.build -index 7a07974ba61..5c7cbe38376 100644 +index 1e31eb4..512eec6 100644 --- a/meson.build +++ b/meson.build -@@ -137,7 +137,7 @@ with_dri_r200 = dri_drivers.contains('r200') +@@ -147,7 +147,7 @@ with_dri_r200 = dri_drivers.contains('r200') with_dri_nouveau = dri_drivers.contains('nouveau') with_dri_swrast = dri_drivers.contains('swrast') -with_dri = dri_drivers.length() != 0 and dri_drivers != [''] -+with_dri = get_option('dri') or (_drivers.length() != 0 and _drivers != ['']) ++with_dri = get_option('dri') or (dri_drivers.length() != 0 and dri_drivers != ['']) gallium_drivers = get_option('gallium-drivers') if gallium_drivers.contains('auto') diff --git a/meson_options.txt b/meson_options.txt -index fcd49efea27..0529200b3bb 100644 +index 76cef24..a8abd04 100644 --- a/meson_options.txt +++ b/meson_options.txt @@ -34,6 +34,12 @@ option( @@ -43,6 +44,3 @@ index fcd49efea27..0529200b3bb 100644 option( 'dri-drivers', type : 'array', --- -2.22.0 - diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/mesa/files/0004-Revert-mesa-Enable-asm-unconditionally-now-that-gen_.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/mesa/files/0004-Revert-mesa-Enable-asm-unconditionally-now-that-gen_.patch new file mode 100644 index 00000000..b5658d0c --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/mesa/files/0004-Revert-mesa-Enable-asm-unconditionally-now-that-gen_.patch @@ -0,0 +1,147 @@ +From 1b1cb6e5ea25eaa98573328b9565728a08245997 Mon Sep 17 00:00:00 2001 +From: Alistair Francis +Date: Thu, 14 Nov 2019 09:06:02 -0800 +Subject: [PATCH] Revert "mesa: Enable asm unconditionally, now that + gen_matypes is gone." + +This reverts commit 20294dceebc23236e33b22578245f7e6f41b6997. + +Upstream-Status: Inappropriate [configuration] +Signed-off-by: Alistair Francis + +--- + meson.build | 94 ++++++++++++++++++++++++++++++----------------- + meson_options.txt | 6 +++ + 2 files changed, 67 insertions(+), 33 deletions(-) + +diff --git a/meson.build b/meson.build +index 512eec6..a2bcc3a 100644 +--- a/meson.build ++++ b/meson.build +@@ -49,6 +49,7 @@ with_vulkan_icd_dir = get_option('vulkan-icd-dir') + with_tests = get_option('build-tests') + with_valgrind = get_option('valgrind') + with_libunwind = get_option('libunwind') ++with_asm = get_option('asm') + with_glx_read_only_text = get_option('glx-read-only-text') + with_glx_direct = get_option('glx-direct') + with_osmesa = get_option('osmesa') +@@ -985,41 +986,68 @@ endif + + # TODO: shared/static? Is this even worth doing? + ++# When cross compiling we generally need to turn off the use of assembly, ++# because mesa's assembly relies on building an executable for the host system, ++# and running it to get information about struct sizes. There is at least one ++# case of cross compiling where we can use asm, and that's x86_64 -> x86 when ++# host OS == build OS, since in that case the build machine can run the host's ++# binaries. ++if with_asm and meson.is_cross_build() ++ if build_machine.system() != host_machine.system() ++ # TODO: It may be possible to do this with an exe_wrapper (like wine). ++ message('Cross compiling from one OS to another, disabling assembly.') ++ with_asm = false ++ elif not (build_machine.cpu_family().startswith('x86') and host_machine.cpu_family() == 'x86') ++ # FIXME: Gentoo always sets -m32 for x86_64 -> x86 builds, resulting in an ++ # x86 -> x86 cross compile. We use startswith rather than == to handle this ++ # case. ++ # TODO: There may be other cases where the 64 bit version of the ++ # architecture can run 32 bit binaries (aarch64 and armv7 for example) ++ message(''' ++ Cross compiling to different architectures, and the host cannot run ++ the build machine's binaries. Disabling assembly. ++ ''') ++ with_asm = false ++ endif ++endif ++ + with_asm_arch = '' +-if host_machine.cpu_family() == 'x86' +- if system_has_kms_drm or host_machine.system() == 'gnu' +- with_asm_arch = 'x86' +- pre_args += ['-DUSE_X86_ASM', '-DUSE_MMX_ASM', '-DUSE_3DNOW_ASM', +- '-DUSE_SSE_ASM'] +- +- if with_glx_read_only_text +- pre_args += ['-DGLX_X86_READONLY_TEXT'] ++if with_asm ++ if host_machine.cpu_family() == 'x86' ++ if system_has_kms_drm or host_machine.system() == 'gnu' ++ with_asm_arch = 'x86' ++ pre_args += ['-DUSE_X86_ASM', '-DUSE_MMX_ASM', '-DUSE_3DNOW_ASM', ++ '-DUSE_SSE_ASM'] ++ ++ if with_glx_read_only_text ++ pre_args += ['-DGLX_X86_READONLY_TEXT'] ++ endif ++ endif ++ elif host_machine.cpu_family() == 'x86_64' ++ if system_has_kms_drm ++ with_asm_arch = 'x86_64' ++ pre_args += ['-DUSE_X86_64_ASM'] ++ endif ++ elif host_machine.cpu_family() == 'arm' ++ if system_has_kms_drm ++ with_asm_arch = 'arm' ++ pre_args += ['-DUSE_ARM_ASM'] ++ endif ++ elif host_machine.cpu_family() == 'aarch64' ++ if system_has_kms_drm ++ with_asm_arch = 'aarch64' ++ pre_args += ['-DUSE_AARCH64_ASM'] ++ endif ++ elif host_machine.cpu_family() == 'sparc64' ++ if system_has_kms_drm ++ with_asm_arch = 'sparc' ++ pre_args += ['-DUSE_SPARC_ASM'] ++ endif ++ elif host_machine.cpu_family().startswith('ppc64') and host_machine.endian() == 'little' ++ if system_has_kms_drm ++ with_asm_arch = 'ppc64le' ++ pre_args += ['-DUSE_PPC64LE_ASM'] + endif +- endif +-elif host_machine.cpu_family() == 'x86_64' +- if system_has_kms_drm +- with_asm_arch = 'x86_64' +- pre_args += ['-DUSE_X86_64_ASM'] +- endif +-elif host_machine.cpu_family() == 'arm' +- if system_has_kms_drm +- with_asm_arch = 'arm' +- pre_args += ['-DUSE_ARM_ASM'] +- endif +-elif host_machine.cpu_family() == 'aarch64' +- if system_has_kms_drm +- with_asm_arch = 'aarch64' +- pre_args += ['-DUSE_AARCH64_ASM'] +- endif +-elif host_machine.cpu_family() == 'sparc64' +- if system_has_kms_drm +- with_asm_arch = 'sparc' +- pre_args += ['-DUSE_SPARC_ASM'] +- endif +-elif host_machine.cpu_family().startswith('ppc64') and host_machine.endian() == 'little' +- if system_has_kms_drm +- with_asm_arch = 'ppc64le' +- pre_args += ['-DUSE_PPC64LE_ASM'] + endif + endif + +diff --git a/meson_options.txt b/meson_options.txt +index a8abd04..0f4bd80 100644 +--- a/meson_options.txt ++++ b/meson_options.txt +@@ -233,6 +233,12 @@ option( + value : false, + description : 'Enable GLVND support.' + ) ++option( ++ 'asm', ++ type : 'boolean', ++ value : true, ++ description : 'Build assembly code if possible' ++) + option( + 'glx-read-only-text', + type : 'boolean', diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/mesa/libglu_9.0.0.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/mesa/libglu_9.0.0.bb deleted file mode 100644 index eeb898fd..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/mesa/libglu_9.0.0.bb +++ /dev/null @@ -1,30 +0,0 @@ -SUMMARY = "The OpenGL utility toolkit" -DESCRIPTION = "GLU is a utility toolkit used with OpenGL implementations" - -HOMEPAGE = "http://mesa3d.org" -BUGTRACKER = "https://bugs.freedesktop.org" -SECTION = "x11" -LICENSE = "MIT" -LIC_FILES_CHKSUM = "file://include/GL/glu.h;endline=29;md5=6b79c570f644363b356456e7d44471d9 \ - file://src/libtess/tess.c;endline=29;md5=6b79c570f644363b356456e7d44471d9" - -# Epoch as this used to be part of mesa -PE = "2" -PR = "0" - -SRC_URI = "https://mesa.freedesktop.org/archive/glu/glu-${PV}.tar.bz2" - -SRC_URI[md5sum] = "be9249132ff49275461cf92039083030" -SRC_URI[sha256sum] = "1f7ad0d379a722fcbd303aa5650c6d7d5544fde83196b42a73d1193568a4df12" - -S = "${WORKDIR}/glu-${PV}" - -DEPENDS = "virtual/libgl" - -inherit autotools pkgconfig distro_features_check - -# Requires libGL.so which is provided by mesa when x11 in DISTRO_FEATURES -REQUIRED_DISTRO_FEATURES = "x11 opengl" - -# Remove the mesa-glu dependency in mesa-glu-dev, as mesa-glu is empty -RDEPENDS_${PN}-dev = "" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/mesa/libglu_9.0.1.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/mesa/libglu_9.0.1.bb new file mode 100644 index 00000000..703f131f --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/mesa/libglu_9.0.1.bb @@ -0,0 +1,30 @@ +SUMMARY = "The OpenGL utility toolkit" +DESCRIPTION = "GLU is a utility toolkit used with OpenGL implementations" + +HOMEPAGE = "http://mesa3d.org" +BUGTRACKER = "https://bugs.freedesktop.org" +SECTION = "x11" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://include/GL/glu.h;endline=29;md5=6b79c570f644363b356456e7d44471d9 \ + file://src/libtess/tess.c;endline=29;md5=6b79c570f644363b356456e7d44471d9" + +# Epoch as this used to be part of mesa +PE = "2" +PR = "0" + +SRC_URI = "https://mesa.freedesktop.org/archive/glu/glu-${PV}.tar.gz" + +SRC_URI[md5sum] = "5599a0e0a97335e10239d9165aced60d" +SRC_URI[sha256sum] = "f6f484cfcd51e489afe88031afdea1e173aa652697e4c19ddbcb8260579a10f7" + +S = "${WORKDIR}/glu-${PV}" + +DEPENDS = "virtual/libgl" + +inherit autotools pkgconfig features_check + +# Requires libGL.so which is provided by mesa when x11 in DISTRO_FEATURES +REQUIRED_DISTRO_FEATURES = "x11 opengl" + +# Remove the mesa-glu dependency in mesa-glu-dev, as mesa-glu is empty +RDEPENDS_${PN}-dev = "" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/mesa/mesa-demos_8.4.0.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/mesa/mesa-demos_8.4.0.bb index 129a47df..38bdbded 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/mesa/mesa-demos_8.4.0.bb +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/mesa/mesa-demos_8.4.0.bb @@ -22,7 +22,7 @@ SRC_URI = "https://mesa.freedesktop.org/archive/demos/${BPN}-${PV}.tar.bz2 \ SRC_URI[md5sum] = "6b65a02622765522176d00f553086fa3" SRC_URI[sha256sum] = "01e99c94a0184e63e796728af89bfac559795fb2a0d6f506fa900455ca5fff7d" -inherit autotools pkgconfig distro_features_check +inherit autotools pkgconfig features_check # depends on virtual/egl, virtual/libgl ... REQUIRED_DISTRO_FEATURES = "opengl x11" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/mesa/mesa-gl_19.1.0.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/mesa/mesa-gl_19.2.4.bb similarity index 100% rename from Contrib-Inspur/openbmc/poky/meta/recipes-graphics/mesa/mesa-gl_19.1.0.bb rename to Contrib-Inspur/openbmc/poky/meta/recipes-graphics/mesa/mesa-gl_19.2.4.bb diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/mesa/mesa.inc b/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/mesa/mesa.inc index 3ecfb850..5838207e 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/mesa/mesa.inc +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/mesa/mesa.inc @@ -10,7 +10,7 @@ HOMEPAGE = "http://mesa3d.org" BUGTRACKER = "https://bugs.freedesktop.org" SECTION = "x11" LICENSE = "MIT" -LIC_FILES_CHKSUM = "file://docs/license.html;md5=725f991a1cc322aa7a0cd3a2016621c4" +LIC_FILES_CHKSUM = "file://docs/license.html;md5=3a4999caf82cc503ac8b9e37c235782e" PE = "2" @@ -24,7 +24,12 @@ PROVIDES = " \ virtual/mesa \ " -inherit meson pkgconfig python3native gettext distro_features_check +inherit meson pkgconfig python3native gettext features_check + +# Unset these to stop python trying to report the target Python setup +_PYTHON_SYSCONFIGDATA_NAME[unexport] = "1" +STAGING_INCDIR[unexport] = "1" +STAGING_LIBDIR[unexport] = "1" BBCLASSEXTEND = "native nativesdk" @@ -36,6 +41,10 @@ PLATFORMS ??= "${@bb.utils.filter('PACKAGECONFIG', 'x11 wayland', d)} \ export YOCTO_ALTERNATE_EXE_PATH = "${STAGING_LIBDIR}/llvm${MESA_LLVM_RELEASE}/llvm-config" export YOCTO_ALTERNATE_MULTILIB_NAME = "${base_libdir}" +export LLVM_CONFIG = "${STAGING_BINDIR_NATIVE}/llvm-config${MESA_LLVM_RELEASE}" +export WANT_LLVM_RELEASE = "${MESA_LLVM_RELEASE}" + +MESA_LLVM_RELEASE ?= "${LLVMVERSION}" EXTRA_OEMESON = " \ -Dshared-glapi=true \ @@ -48,12 +57,12 @@ PACKAGECONFIG_class-target ??= "${@bb.utils.filter('DISTRO_FEATURES', 'wayland v ${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'opengl egl gles gbm dri gallium', '', d)} \ ${@bb.utils.contains('DISTRO_FEATURES', 'x11 opengl', 'x11 dri3', '', d)} \ ${@bb.utils.contains('DISTRO_FEATURES', 'x11 vulkan', 'dri3', '', d)} \ - glx-tls \ + elf-tls \ " -PACKAGECONFIG_class-native ?= "gbm dri egl opengl" -PACKAGECONFIG_class-nativesdk ?= "gbm dri egl opengl" +PACKAGECONFIG_class-native ?= "gbm dri egl opengl elf-tls" +PACKAGECONFIG_class-nativesdk ?= "gbm dri egl opengl elf-tls" -PACKAGECONFIG_remove_libc-musl = "glx-tls" +PACKAGECONFIG_remove_libc-musl = "elf-tls" # "gbm" requires "dri", "opengl" PACKAGECONFIG[gbm] = "-Dgbm=true,-Dgbm=false" @@ -61,7 +70,7 @@ PACKAGECONFIG[gbm] = "-Dgbm=true,-Dgbm=false" X11_DEPS = "xorgproto virtual/libx11 libxext libxxf86vm libxdamage libxfixes xrandr" # "x11" requires "opengl" PACKAGECONFIG[x11] = ",-Dglx=disabled,${X11_DEPS}" -PACKAGECONFIG[glx-tls] = "-Dglx-tls=true, -Dglx-tls=false" +PACKAGECONFIG[elf-tls] = "-Delf-tls=true, -Delf-tls=false" PACKAGECONFIG[xvmc] = "-Dgallium-xvmc=true,-Dgallium-xvmc=false,libxvmc" PACKAGECONFIG[wayland] = ",,wayland-native wayland libdrm wayland-protocols" @@ -89,11 +98,20 @@ PACKAGECONFIG[gles] = "-Dgles1=true -Dgles2=true, -Dgles1=false -Dgles2=false" PACKAGECONFIG[egl] = "-Degl=true, -Degl=false" PACKAGECONFIG[etnaviv] = "" +PACKAGECONFIG[freedreno] = "" PACKAGECONFIG[kmsro] = "" +PACKAGECONFIG[vc4] = "" +PACKAGECONFIG[v3d] = "" GALLIUMDRIVERS = "swrast" +# gallium swrast was found to crash Xorg on startup in x32 qemu +GALLIUMDRIVERS_x86-x32 = "" + GALLIUMDRIVERS_append ="${@bb.utils.contains('PACKAGECONFIG', 'etnaviv', ',etnaviv', '', d)}" +GALLIUMDRIVERS_append ="${@bb.utils.contains('PACKAGECONFIG', 'freedreno', ',freedreno', '', d)}" GALLIUMDRIVERS_append ="${@bb.utils.contains('PACKAGECONFIG', 'kmsro', ',kmsro', '', d)}" +GALLIUMDRIVERS_append ="${@bb.utils.contains('PACKAGECONFIG', 'vc4', ',vc4', '', d)}" +GALLIUMDRIVERS_append ="${@bb.utils.contains('PACKAGECONFIG', 'v3d', ',v3d', '', d)}" # radeonsi requires LLVM GALLIUMDRIVERS_LLVM33 = "${@bb.utils.contains('PACKAGECONFIG', 'r600', ',radeonsi', '', d)}" @@ -107,12 +125,16 @@ GALLIUMDRIVERS_append = "${@bb.utils.contains('PACKAGECONFIG', 'r600', ',r600', GALLIUMDRIVERS_append = ",virgl" PACKAGECONFIG[gallium] = "-Dgallium-drivers=${GALLIUMDRIVERS}, -Dgallium-drivers=''" -MESA_LLVM_RELEASE ?= "8.0.0" PACKAGECONFIG[gallium-llvm] = "-Dllvm=true -Dshared-llvm=true, -Dllvm=false, llvm${MESA_LLVM_RELEASE} llvm-native \ ${@'elfutils' if ${GALLIUMDRIVERS_LLVM33_ENABLED} else ''}" -export WANT_LLVM_RELEASE = "${MESA_LLVM_RELEASE}" PACKAGECONFIG[xa] = "-Dgallium-xa=true, -Dgallium-xa=false" +PACKAGECONFIG[lima] = "" +GALLIUMDRIVERS_append ="${@bb.utils.contains('PACKAGECONFIG', 'lima', ',lima', '', d)}" + +PACKAGECONFIG[panfrost] = "" +GALLIUMDRIVERS_append ="${@bb.utils.contains('PACKAGECONFIG', 'panfrost', ',panfrost', '', d)}" + OSMESA = "${@bb.utils.contains('PACKAGECONFIG', 'gallium', 'gallium', 'classic', d)}" PACKAGECONFIG[osmesa] = "-Dosmesa=${OSMESA},-Dosmesa=none" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/mesa/mesa_19.1.0.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/mesa/mesa_19.1.0.bb deleted file mode 100644 index 05c31534..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/mesa/mesa_19.1.0.bb +++ /dev/null @@ -1,18 +0,0 @@ -require ${BPN}.inc - -SRC_URI = "https://mesa.freedesktop.org/archive/mesa-${PV}.tar.xz \ - file://0001-meson.build-check-for-all-linux-host_os-combinations.patch \ - file://0002-meson.build-make-TLS-GLX-optional-again.patch \ - file://0003-Allow-enable-DRI-without-DRI-drivers.patch \ - " - -SRC_URI[md5sum] = "090cd351cf938fc1729dee983520216a" -SRC_URI[sha256sum] = "2a6c3af3a803389183168e449c536304cf03e0f82c4c9333077933543b9d02f3" - -#because we cannot rely on the fact that all apps will use pkgconfig, -#make eglplatform.h independent of MESA_EGL_NO_X11_HEADER -do_install_append() { - if ${@bb.utils.contains('PACKAGECONFIG', 'egl', 'true', 'false', d)}; then - sed -i -e 's/^#if defined(MESA_EGL_NO_X11_HEADERS)$/#if defined(MESA_EGL_NO_X11_HEADERS) || ${@bb.utils.contains('PACKAGECONFIG', 'x11', '0', '1', d)}/' ${D}${includedir}/EGL/eglplatform.h - fi -} diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/mesa/mesa_19.2.4.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/mesa/mesa_19.2.4.bb new file mode 100644 index 00000000..f4b33df2 --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/mesa/mesa_19.2.4.bb @@ -0,0 +1,21 @@ +require ${BPN}.inc + +SRC_URI = "https://mesa.freedesktop.org/archive/mesa-${PV}.tar.xz \ + file://0001-meson.build-check-for-all-linux-host_os-combinations.patch \ + file://0002-meson.build-make-TLS-ELF-optional.patch \ + file://0003-Allow-enable-DRI-without-DRI-drivers.patch \ + file://0004-Revert-mesa-Enable-asm-unconditionally-now-that-gen_.patch \ + " + +SRC_URI[md5sum] = "5c047732b81651ddb341597528b4b096" +SRC_URI[sha256sum] = "09000a0f7dbbd82e193b81a8f1bf0c118eab7ca975c0329181968596e548e30f" + +UPSTREAM_CHECK_GITTAGREGEX = "mesa-(?P\d+(\.\d+)+)" + +#because we cannot rely on the fact that all apps will use pkgconfig, +#make eglplatform.h independent of MESA_EGL_NO_X11_HEADER +do_install_append() { + if ${@bb.utils.contains('PACKAGECONFIG', 'egl', 'true', 'false', d)}; then + sed -i -e 's/^#if defined(MESA_EGL_NO_X11_HEADERS)$/#if defined(MESA_EGL_NO_X11_HEADERS) || ${@bb.utils.contains('PACKAGECONFIG', 'x11', '0', '1', d)}/' ${D}${includedir}/EGL/eglplatform.h + fi +} diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/mx/mx.inc b/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/mx/mx.inc index d3048374..714a06f0 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/mx/mx.inc +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/mx/mx.inc @@ -1,7 +1,7 @@ SUMMARY = "Clutter based UI widget library" LICENSE = "LGPLv2.1" -inherit clutter autotools distro_features_check gobject-introspection gtk-doc +inherit clutter autotools features_check gobject-introspection gtk-doc # depends on clutter-1.0 which depends on cogl-1.0 REQUIRED_DISTRO_FEATURES = "opengl" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/packagegroups/packagegroup-core-clutter.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/packagegroups/packagegroup-core-clutter.bb index 87c700e0..2e7b47dd 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/packagegroups/packagegroup-core-clutter.bb +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/packagegroups/packagegroup-core-clutter.bb @@ -6,7 +6,7 @@ SUMMARY = "Clutter package groups" PR = "r6" -inherit packagegroup distro_features_check +inherit packagegroup features_check # rdepends on clutter-* REQUIRED_DISTRO_FEATURES = "opengl" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/packagegroups/packagegroup-core-x11-base.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/packagegroups/packagegroup-core-x11-base.bb index 7ea72d55..9ca2705a 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/packagegroups/packagegroup-core-x11-base.bb +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/packagegroups/packagegroup-core-x11-base.bb @@ -2,7 +2,7 @@ SUMMARY = "Basic X11 session" DESCRIPTION = "Packages required to set up a basic working X11 session" PR = "r1" -inherit packagegroup distro_features_check +inherit packagegroup features_check # rdepends on matchbox-wm REQUIRED_DISTRO_FEATURES = "x11" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/packagegroups/packagegroup-core-x11-xserver.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/packagegroups/packagegroup-core-x11-xserver.bb index 97dcac5f..a0b944a6 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/packagegroups/packagegroup-core-x11-xserver.bb +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/packagegroups/packagegroup-core-x11-xserver.bb @@ -7,7 +7,7 @@ PR = "r40" PACKAGE_ARCH = "${MACHINE_ARCH}" -inherit packagegroup distro_features_check +inherit packagegroup features_check # rdepends on XSERVER REQUIRED_DISTRO_FEATURES = "x11" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/packagegroups/packagegroup-core-x11.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/packagegroups/packagegroup-core-x11.bb index 001db9e5..cddf1932 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/packagegroups/packagegroup-core-x11.bb +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/packagegroups/packagegroup-core-x11.bb @@ -4,7 +4,7 @@ PR = "r40" -inherit packagegroup distro_features_check +inherit packagegroup features_check REQUIRED_DISTRO_FEATURES = "x11" PACKAGES = "${PN} ${PN}-utils" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/pango/pango/0001-Skip-thai-break-tests-without-libthai.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/pango/pango/0001-Skip-thai-break-tests-without-libthai.patch new file mode 100644 index 00000000..3f9ebff3 --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/pango/pango/0001-Skip-thai-break-tests-without-libthai.patch @@ -0,0 +1,36 @@ +Upstream-Status: Backport +Signed-off-by: Ross Burton + +From 12beb39925b5a4574a7cfd86073b59bceb49f791 Mon Sep 17 00:00:00 2001 +From: Matthias Clasen +Date: Wed, 4 Sep 2019 15:51:06 -0400 +Subject: [PATCH] Skip thai break tests without libthai + +If we don't have libthai, these tests fail. + +Closes: https://gitlab.gnome.org/GNOME/pango/issues/420 +--- + tests/meson.build | 5 ++++- + 1 file changed, 4 insertions(+), 1 deletion(-) + +diff --git a/tests/meson.build b/tests/meson.build +index 4c22c12c..c617331f 100644 +--- a/tests/meson.build ++++ b/tests/meson.build +@@ -89,9 +89,12 @@ test_breaks_data = [ + 'breaks/one', + 'breaks/two', + 'breaks/three', +- 'breaks/four', + ] + ++if thai_dep.found() ++ test_breaks_data += [ 'breaks/four', ] ++endif ++ + test_items_data = [ + 'itemize/one', + ] +-- +2.20.1 + diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/pango/pango/insensitive-diff.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/pango/pango/insensitive-diff.patch deleted file mode 100644 index faaa9613..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/pango/pango/insensitive-diff.patch +++ /dev/null @@ -1,28 +0,0 @@ -Do case-insensitive diffs as the test is sensitive as to whether 0x0 is printed -as (null) or (NULL). - -Upstream-Status: Submitted [https://gitlab.gnome.org/GNOME/pango/merge_requests/44] -Signed-off-by: Ross Burton - -diff --git a/tests/markup-parse.c b/tests/markup-parse.c -index 633f3e89..36d2c776 100644 ---- a/tests/markup-parse.c -+++ b/tests/markup-parse.c -@@ -217,7 +217,7 @@ diff_with_file (const char *file1, - GString *string, - GError **error) - { -- const char *command[] = { "diff", "-u", file1, NULL, NULL }; -+ const char *command[] = { "diff", "-u", "-i", file1, NULL, NULL }; - char *diff, *tmpfile; - int fd; - -@@ -237,7 +237,7 @@ diff_with_file (const char *file1, - goto done; - } - close (fd); -- command[3] = tmpfile; -+ command[4] = tmpfile; - - /* run diff command */ - g_spawn_sync (NULL, (char **)command, NULL, G_SPAWN_SEARCH_PATH, NULL, NULL, &diff, NULL, NULL, error); diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/pango/pango_1.42.4.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/pango/pango_1.42.4.bb deleted file mode 100644 index 58e1f41b..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/pango/pango_1.42.4.bb +++ /dev/null @@ -1,50 +0,0 @@ -SUMMARY = "Framework for layout and rendering of internationalized text" -DESCRIPTION = "Pango is a library for laying out and rendering of text, \ -with an emphasis on internationalization. Pango can be used anywhere \ -that text layout is needed, though most of the work on Pango so far has \ -been done in the context of the GTK+ widget toolkit. Pango forms the \ -core of text and font handling for GTK+-2.x." -HOMEPAGE = "http://www.pango.org/" -BUGTRACKER = "http://bugzilla.gnome.org" -SECTION = "libs" -LICENSE = "LGPLv2.0+" - -LIC_FILES_CHKSUM = "file://COPYING;md5=3bf50002aefd002f49e7bb854063f7e7" - -GNOMEBASEBUILDCLASS = "meson" - -inherit gnomebase gtk-doc ptest-gnome upstream-version-is-even gobject-introspection - -SRC_URI += "file://run-ptest \ - file://insensitive-diff.patch" - -SRC_URI[archive.md5sum] = "deb171a31a3ad76342d5195a1b5bbc7c" -SRC_URI[archive.sha256sum] = "1d2b74cd63e8bd41961f2f8d952355aa0f9be6002b52c8aa7699d9f5da597c9d" - -DEPENDS = "glib-2.0 glib-2.0-native fontconfig freetype virtual/libiconv cairo harfbuzz fribidi" - -PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'x11', d)}" -PACKAGECONFIG[x11] = ",,virtual/libx11 libxft" - -GTKDOC_MESON_OPTION = "enable_docs" -GIR_MESON_OPTION = 'gir' - -LEAD_SONAME = "libpango-1.0*" -LIBV = "1.8.0" - -FILES_${PN} = "${bindir}/* ${libdir}/libpango*${SOLIBS}" -FILES_${PN}-dev += "${libdir}/pango/${LIBV}/modules/*.la" - -RDEPENDS_${PN}-ptest += "liberation-fonts cantarell-fonts" - -RPROVIDES_${PN} += "pango-modules pango-module-indic-lang \ - pango-module-basic-fc pango-module-arabic-lang" - -BBCLASSEXTEND = "native nativesdk" - -do_install_append () { - if [ "${PTEST_ENABLED}" != "1" ]; then - rm -rf ${D}${libexecdir}/installed-tests ${D}${datadir}/installed-tests - rmdir --ignore-fail-on-non-empty ${D}${libexecdir} ${D}${datadir} - fi -} diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/pango/pango_1.44.6.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/pango/pango_1.44.6.bb new file mode 100644 index 00000000..8138ef72 --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/pango/pango_1.44.6.bb @@ -0,0 +1,45 @@ +SUMMARY = "Framework for layout and rendering of internationalized text" +DESCRIPTION = "Pango is a library for laying out and rendering of text, \ +with an emphasis on internationalization. Pango can be used anywhere \ +that text layout is needed, though most of the work on Pango so far has \ +been done in the context of the GTK+ widget toolkit. Pango forms the \ +core of text and font handling for GTK+-2.x." +HOMEPAGE = "http://www.pango.org/" +BUGTRACKER = "http://bugzilla.gnome.org" +SECTION = "libs" +LICENSE = "LGPLv2.0+" + +LIC_FILES_CHKSUM = "file://COPYING;md5=3bf50002aefd002f49e7bb854063f7e7" + +GNOMEBASEBUILDCLASS = "meson" + +inherit gnomebase gtk-doc ptest-gnome upstream-version-is-even gobject-introspection + +SRC_URI += "file://run-ptest \ + file://0001-Skip-thai-break-tests-without-libthai.patch" +SRC_URI[archive.md5sum] = "db0a3243ba33e02aaa775412f8e5f412" +SRC_URI[archive.sha256sum] = "3e1e41ba838737e200611ff001e3b304c2ca4cdbba63d200a20db0b0ddc0f86c" + +DEPENDS = "glib-2.0 glib-2.0-native fontconfig freetype virtual/libiconv cairo harfbuzz fribidi" + +PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'x11', d)} \ + ${@bb.utils.contains('PTEST_ENABLED', '1', 'tests', '', d)}" + +PACKAGECONFIG[x11] = ",,virtual/libx11 libxft" +PACKAGECONFIG[tests] = "-Dinstall-tests=true, -Dinstall-tests=false" +PACKAGECONFIG[thai] = ",,libthai" + +GTKDOC_MESON_OPTION = "gtk_doc" +GIR_MESON_OPTION = 'introspection' + +LEAD_SONAME = "libpango-1.0*" + +FILES_${PN} = "${bindir}/* ${libdir}/libpango*${SOLIBS}" + +RDEPENDS_${PN}-ptest += "cantarell-fonts" +RDEPENDS_${PN}-ptest_append_libc-glibc = " locale-base-en-us" + +RPROVIDES_${PN} += "pango-modules pango-module-indic-lang \ + pango-module-basic-fc pango-module-arabic-lang" + +BBCLASSEXTEND = "native nativesdk" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/piglit/piglit_git.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/piglit/piglit_git.bb index 4350823f..696d438c 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/piglit/piglit_git.bb +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/piglit/piglit_git.bb @@ -1,14 +1,16 @@ SUMMARY = "OpenGL driver testing framework" +DESCRIPTION = "Piglit is an open-source test suite for OpenGL and OpenCL \ +implementations." LICENSE = "MIT & LGPLv2+ & GPLv3 & GPLv2+ & BSD-3-Clause" LIC_FILES_CHKSUM = "file://COPYING;md5=b2beded7103a3d8a442a2a0391d607b0" -SRC_URI = "git://gitlab.freedesktop.org/mesa/piglit;protocol=https \ +SRC_URI = "git://gitlab.freedesktop.org/mesa/piglit.git;protocol=https \ file://0001-cmake-install-bash-completions-in-the-right-place.patch \ file://0001-cmake-use-proper-WAYLAND_INCLUDE_DIRS-variable.patch \ " UPSTREAM_CHECK_COMMITS = "1" -SRCREV = "4294b15e3b84a96f24d1286b73d5832eea267bbf" +SRCREV = "0d1a47a4c10d4dd7225bd6510f8191684b31235e" # (when PV goes above 1.0 remove the trailing r) PV = "1.0+gitr${SRCPV}" @@ -19,7 +21,7 @@ X11_RDEPS = "${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'mesa-demos', '', d) DEPENDS = "libpng waffle libxkbcommon virtual/libgl python3-mako-native python3-numpy-native python3-six-native virtual/egl" -inherit cmake pkgconfig python3native distro_features_check bash-completion +inherit cmake pkgconfig python3native features_check bash-completion # depends on virtual/libgl REQUIRED_DISTRO_FEATURES += "opengl" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/pong-clock/pong-clock_1.0.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/pong-clock/pong-clock_1.0.bb index cdfe38a2..c3c237ee 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/pong-clock/pong-clock_1.0.bb +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/pong-clock/pong-clock_1.0.bb @@ -2,7 +2,7 @@ SUMMARY = "A clock combined with a game of pong" LICENSE = "GPLv2+" DEPENDS = "virtual/libx11 xdmcp xau" -inherit distro_features_check pkgconfig +inherit features_check pkgconfig # depends on virtual/libx11 REQUIRED_DISTRO_FEATURES = "x11" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/startup-notification/startup-notification_0.12.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/startup-notification/startup-notification_0.12.bb index 6c1b93cd..a26ab44f 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/startup-notification/startup-notification_0.12.bb +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/startup-notification/startup-notification_0.12.bb @@ -17,7 +17,7 @@ SECTION = "libs" DEPENDS = "virtual/libx11 libsm xcb-util" -inherit autotools pkgconfig distro_features_check +inherit autotools pkgconfig features_check # depends on virtual/libx11 REQUIRED_DISTRO_FEATURES = "x11" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/virglrenderer/virglrenderer/0001-Makefile.am-explicitly-link-with-libdrm.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/virglrenderer/virglrenderer/0001-Makefile.am-explicitly-link-with-libdrm.patch deleted file mode 100644 index aa8d8148..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/virglrenderer/virglrenderer/0001-Makefile.am-explicitly-link-with-libdrm.patch +++ /dev/null @@ -1,31 +0,0 @@ -From d61f7073b8ce159d21811b291c22b273b040c330 Mon Sep 17 00:00:00 2001 -From: Alexander Kanavin -Date: Tue, 12 Feb 2019 12:04:52 +0100 -Subject: [PATCH] Makefile.am: explicitly link with libdrm - -Otherwise, a failure happens with gold linker: - -../src/.libs/libvirglrenderer.so: error: undefined reference to 'drmPrimeHandleToFD' - -https://errors.yoctoproject.org/Errors/Details/222046/ - -Upstream-Status: Accepted [https://gitlab.freedesktop.org/virgl/virglrenderer/merge_requests/153] -Signed-off-by: Alexander Kanavin ---- - src/Makefile.am | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/src/Makefile.am b/src/Makefile.am -index 9a0a44e..9b668c8 100644 ---- a/src/Makefile.am -+++ b/src/Makefile.am -@@ -1,5 +1,6 @@ - SUBDIRS := gallium/auxiliary - AM_LDFLAGS = -lm \ -+ $(LIBDRM_LIBS) \ - $(GBM_LIBS) \ - $(EPOXY_LIBS) \ - $(X11_LIBS) \ --- -2.17.1 - diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/virglrenderer/virglrenderer/0001-gallium-Expand-libc-check-to-be-platform-OS-check.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/virglrenderer/virglrenderer/0001-gallium-Expand-libc-check-to-be-platform-OS-check.patch new file mode 100644 index 00000000..a0ac3aef --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/virglrenderer/virglrenderer/0001-gallium-Expand-libc-check-to-be-platform-OS-check.patch @@ -0,0 +1,36 @@ +From 3d30df8d8ccb919733b5339b2a82474305b83998 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Tue, 6 Aug 2019 01:19:48 +0000 +Subject: [PATCH] gallium: Expand libc check to be platform OS check + +endianness on musl based systems can also be detected in same way as +glibc, therefore check for __linux__ define instead of __GLIBC__ + +Fixes build on musl/mips + +| ../../../../git/src/gallium/include/pipe/p_config.h:171:2: error: #error Unknown Endianness +| #error Unknown Endianness +| ^~~~~ + +Upstream-Status: Pending +Signed-off-by: Khem Raj +--- + src/gallium/include/pipe/p_config.h | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/gallium/include/pipe/p_config.h b/src/gallium/include/pipe/p_config.h +index d603681..71cdf49 100644 +--- a/src/gallium/include/pipe/p_config.h ++++ b/src/gallium/include/pipe/p_config.h +@@ -130,7 +130,7 @@ + * Endian detection. + */ + +-#ifdef __GLIBC__ ++#ifdef __linux__ + #include + + #if __BYTE_ORDER == __LITTLE_ENDIAN +-- +2.17.1 + diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/virglrenderer/virglrenderer/0001-vtest-add-missing-includes.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/virglrenderer/virglrenderer/0001-vtest-add-missing-includes.patch deleted file mode 100644 index 2b4ffa93..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/virglrenderer/virglrenderer/0001-vtest-add-missing-includes.patch +++ /dev/null @@ -1,38 +0,0 @@ -From 05c5c5f43fbffb3317bd9da27d414890d2ef493c Mon Sep 17 00:00:00 2001 -From: Alexander Kanavin -Date: Fri, 18 Jan 2019 13:47:23 +0100 -Subject: [PATCH] vtest: add missing includes - -This fixes build failures with musl C library - -Upstream-Status: Accepted [https://gitlab.freedesktop.org/virgl/virglrenderer/merge_requests/125] -Signed-off-by: Alexander Kanavin ---- - vtest/util.c | 1 + - vtest/vtest_server.c | 1 + - 2 files changed, 2 insertions(+) - -diff --git a/vtest/util.c b/vtest/util.c -index 0d3c78f..c605253 100644 ---- a/vtest/util.c -+++ b/vtest/util.c -@@ -26,6 +26,7 @@ - #include - #include - #include -+#include - - int vtest_wait_for_fd_read(int fd) - { -diff --git a/vtest/vtest_server.c b/vtest/vtest_server.c -index bc6c95f..010721f 100644 ---- a/vtest/vtest_server.c -+++ b/vtest/vtest_server.c -@@ -31,6 +31,7 @@ - #include - #include - #include -+#include - - #include "util.h" - #include "vtest.h" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/virglrenderer/virglrenderer_0.7.0.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/virglrenderer/virglrenderer_0.7.0.bb deleted file mode 100644 index 225a0b8b..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/virglrenderer/virglrenderer_0.7.0.bb +++ /dev/null @@ -1,22 +0,0 @@ -SUMMARY = "VirGL virtual OpenGL renderer" -HOMEPAGE = "https://virgil3d.github.io/" - -LICENSE = "MIT" -LIC_FILES_CHKSUM = "file://COPYING;md5=c81c08eeefd9418fca8f88309a76db10" - -DEPENDS = "libdrm mesa libepoxy" -SRCREV = "402c228861c9893f64cffbbcb4cb23044b8c721c" -SRC_URI = "git://anongit.freedesktop.org/virglrenderer \ - file://0001-vtest-add-missing-includes.patch \ - file://0001-Makefile.am-explicitly-link-with-libdrm.patch \ - " - -S = "${WORKDIR}/git" - -inherit autotools pkgconfig distro_features_check - -BBCLASSEXTEND = "native nativesdk" - -REQUIRED_DISTRO_FEATURES = "opengl" -REQUIRED_DISTRO_FEATURES_class-native = "" -REQUIRED_DISTRO_FEATURES_class-nativesdk = "" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/virglrenderer/virglrenderer_0.8.0.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/virglrenderer/virglrenderer_0.8.0.bb new file mode 100644 index 00000000..4420d84a --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/virglrenderer/virglrenderer_0.8.0.bb @@ -0,0 +1,25 @@ +SUMMARY = "VirGL virtual OpenGL renderer" +DESCRIPTION = "Virgil is a research project to investigate the possibility of \ +creating a virtual 3D GPU for use inside qemu virtual machines, that allows \ +the guest operating system to use the capabilities of the host GPU to \ +accelerate 3D rendering." +HOMEPAGE = "https://virgil3d.github.io/" + +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://COPYING;md5=c81c08eeefd9418fca8f88309a76db10" + +DEPENDS = "libdrm mesa libepoxy" +SRCREV = "48cc96c9aebb9d0164830a157efc8916f08f00c0" +SRC_URI = "git://anongit.freedesktop.org/virglrenderer \ + file://0001-gallium-Expand-libc-check-to-be-platform-OS-check.patch \ + " + +S = "${WORKDIR}/git" + +inherit autotools pkgconfig features_check + +BBCLASSEXTEND = "native nativesdk" + +REQUIRED_DISTRO_FEATURES = "opengl" +REQUIRED_DISTRO_FEATURES_class-native = "" +REQUIRED_DISTRO_FEATURES_class-nativesdk = "" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/vulkan/vulkan-demos_git.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/vulkan/vulkan-demos_git.bb index bf30c980..74dc2ad6 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/vulkan/vulkan-demos_git.bb +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/vulkan/vulkan-demos_git.bb @@ -20,8 +20,8 @@ S = "${WORKDIR}/git" REQUIRED_DISTRO_FEATURES = 'vulkan' -inherit cmake distro_features_check -DEPENDS = "vulkan assimp" +inherit cmake features_check +DEPENDS = "vulkan-loader assimp" do_install_append () { # Remove assets that have uncertain licenses diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/vulkan/vulkan-headers_1.1.108.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/vulkan/vulkan-headers_1.1.108.bb new file mode 100644 index 00000000..284c19d7 --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/vulkan/vulkan-headers_1.1.108.bb @@ -0,0 +1,18 @@ +SUMMARY = "Vulkan Header files and API registry" +HOMEPAGE = "https://www.khronos.org/vulkan/" +BUGTRACKER = "https://github.com/KhronosGroup/Vulkan-Headers" +SECTION = "libs" + +LICENSE = "Apache-2.0" +LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=3b83ef96387f14655fc854ddc3c6bd57" +SRC_URI = "git://github.com/KhronosGroup/Vulkan-Headers.git;branch=sdk-${PV}" + +SRCREV = "097a1045098213919fd56442f52c716fc78eeb27" + +S = "${WORKDIR}/git" + +inherit cmake + +FILES_${PN} += "${datadir}/vulkan" + +UPSTREAM_CHECK_GITTAGREGEX = "sdk-(?P\d+(\.\d+)+)" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/vulkan/vulkan-loader_1.1.108.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/vulkan/vulkan-loader_1.1.108.bb new file mode 100644 index 00000000..a539c5a3 --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/vulkan/vulkan-loader_1.1.108.bb @@ -0,0 +1,37 @@ +SUMMARY = "3D graphics and compute API common loader" +DESCRIPTION = "Vulkan is a new generation graphics and compute API \ +that provides efficient access to modern GPUs. These packages \ +provide only the common vendor-agnostic library loader, headers and \ +the vulkaninfo utility." +HOMEPAGE = "https://www.khronos.org/vulkan/" +BUGTRACKER = "https://github.com/KhronosGroup/Vulkan-Loader" +SECTION = "libs" + +LICENSE = "Apache-2.0" +LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=7dbefed23242760aa3475ee42801c5ac" +SRC_URI = "git://github.com/KhronosGroup/Vulkan-Loader.git;branch=sdk-${PV}" +SRCREV = "ecb0b1e69fb2f4d3cae262e6da24c170ce62ae13" + +S = "${WORKDIR}/git" + +REQUIRED_DISTRO_FEATURES = "vulkan" + +inherit cmake features_check +ANY_OF_DISTRO_FEATURES = "x11 wayland" + +DEPENDS += "vulkan-headers" + +EXTRA_OECMAKE = "\ + -DBUILD_TESTS=OFF \ + -DPYTHON_EXECUTABLE=${HOSTTOOLS_DIR}/python3 \ + " + +# must choose x11 or wayland or both +PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'wayland x11', d)}" + +PACKAGECONFIG[x11] = "-DBUILD_WSI_XLIB_SUPPORT=ON -DBUILD_WSI_XCB_SUPPORT=ON, -DBUILD_WSI_XLIB_SUPPORT=OFF -DBUILD_WSI_XCB_SUPPORT=OFF, libxcb libx11 libxrandr" +PACKAGECONFIG[wayland] = "-DBUILD_WSI_WAYLAND_SUPPORT=ON, -DBUILD_WSI_WAYLAND_SUPPORT=OFF, wayland" + +RRECOMMENDS_${PN} = "mesa-vulkan-drivers" + +UPSTREAM_CHECK_GITTAGREGEX = "sdk-(?P\d+(\.\d+)+)" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/vulkan/vulkan-tools_1.1.108.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/vulkan/vulkan-tools_1.1.108.bb new file mode 100644 index 00000000..4ac1bafd --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/vulkan/vulkan-tools_1.1.108.bb @@ -0,0 +1,31 @@ +SUMMARY = "Vulkan Utilities and Tools" +HOMEPAGE = "https://www.khronos.org/vulkan/" +BUGTRACKER = "https://github.com/KhronosGroup/Vulkan-Tools" +SECTION = "libs" + +LICENSE = "Apache-2.0" +LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=3b83ef96387f14655fc854ddc3c6bd57" +SRC_URI = "git://github.com/KhronosGroup/Vulkan-Tools.git;branch=sdk-${PV}" +SRCREV = "3ccd7f6ebae3e1919adf837718c04feb6c2acc61" + +S = "${WORKDIR}/git" + +inherit cmake features_check +ANY_OF_DISTRO_FEATURES = "x11 wayland" +REQUIRED_DISTRO_FEATURES = "vulkan" + +DEPENDS += "vulkan-headers vulkan-loader" + +EXTRA_OECMAKE = "\ + -DBUILD_TESTS=OFF \ + -DBUILD_CUBE=OFF \ + -DPYTHON_EXECUTABLE=${HOSTTOOLS_DIR}/python3 \ + " + +# must choose x11 or wayland or both +PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'wayland x11', d)}" + +PACKAGECONFIG[x11] = "-DBUILD_WSI_XLIB_SUPPORT=ON -DBUILD_WSI_XCB_SUPPORT=ON, -DBUILD_WSI_XLIB_SUPPORT=OFF -DBUILD_WSI_XCB_SUPPORT=OFF, libxcb libx11 libxrandr" +PACKAGECONFIG[wayland] = "-DBUILD_WSI_WAYLAND_SUPPORT=ON, -DBUILD_WSI_WAYLAND_SUPPORT=OFF, wayland" + +UPSTREAM_CHECK_GITTAGREGEX = "sdk-(?P\d+(\.\d+)+)" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/vulkan/vulkan/demos-Don-t-build-tri-or-cube.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/vulkan/vulkan/demos-Don-t-build-tri-or-cube.patch deleted file mode 100644 index b0b9fc4e..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/vulkan/vulkan/demos-Don-t-build-tri-or-cube.patch +++ /dev/null @@ -1,128 +0,0 @@ -From 9b13be109bc66f4d4a1ad53ce5c92c7c495e41d7 Mon Sep 17 00:00:00 2001 -From: "Maxin B. John" -Date: Tue, 24 Jul 2018 17:40:52 +0300 -Subject: [PATCH] commit f63cbe944107b5cd8f150ceaaec43b26099d5688 - -Author: Adam Jackson -Date: Tue Feb 16 10:05:25 2016 -0500 - -demos: Don't build tri or cube - -There are more interesting demos, all we really want here is vulkaninfo. -This helps because we don't need to pre-build glslang/llvm/lunarglass -just to get the loader and layers. - -Upstream-Status: Inappropriate [configuration] - -Signed-off-by: Jussi Kukkonen -Signed-off-by: Maxin B. John ---- - demos/CMakeLists.txt | 88 ---------------------------------------------------- - 1 file changed, 88 deletions(-) - -diff --git a/demos/CMakeLists.txt b/demos/CMakeLists.txt -index 4f32679..26e4cdf 100644 ---- a/demos/CMakeLists.txt -+++ b/demos/CMakeLists.txt -@@ -93,42 +93,6 @@ elseif(UNIX) - else() - endif() - --if(WIN32) -- # For Windows, since 32-bit and 64-bit items can co-exist, we build each in its own build directory. -- # 32-bit target data goes in build32, and 64-bit target data goes into build. So, include/link the -- # appropriate data at build time. -- if (CMAKE_CL_64) -- set (BUILDTGT_DIR build) -- else () -- set (BUILDTGT_DIR build32) -- endif() -- -- # Use static MSVCRT libraries -- foreach(configuration in CMAKE_C_FLAGS_DEBUG CMAKE_C_FLAGS_MINSIZEREL CMAKE_C_FLAGS_RELEASE CMAKE_C_FLAGS_RELWITHDEBINFO -- CMAKE_CXX_FLAGS_DEBUG CMAKE_CXX_FLAGS_MINSIZEREL CMAKE_CXX_FLAGS_RELEASE CMAKE_CXX_FLAGS_RELWITHDEBINFO) -- if(${configuration} MATCHES "/MD") -- string(REGEX REPLACE "/MD" "/MT" ${configuration} "${${configuration}}") -- endif() -- endforeach() -- -- file(COPY cube.vcxproj.user DESTINATION ${CMAKE_BINARY_DIR}/demos) -- file(COPY vulkaninfo.vcxproj.user DESTINATION ${CMAKE_BINARY_DIR}/demos) --endif() -- --add_custom_command( -- COMMENT "Compiling cube demo vertex shader" -- OUTPUT cube.vert.inc -- COMMAND ${GLSLANG_VALIDATOR} -V -x -o ${CMAKE_CURRENT_BINARY_DIR}/cube.vert.inc ${PROJECT_SOURCE_DIR}/demos/cube.vert -- MAIN_DEPENDENCY ${PROJECT_SOURCE_DIR}/demos/cube.vert -- DEPENDS ${PROJECT_SOURCE_DIR}/demos/cube.vert ${GLSLANG_VALIDATOR} --) --add_custom_command( -- COMMENT "Compiling cube demo fragment shader" -- OUTPUT cube.frag.inc -- COMMAND ${GLSLANG_VALIDATOR} -V -x -o ${CMAKE_CURRENT_BINARY_DIR}/cube.frag.inc ${PROJECT_SOURCE_DIR}/demos/cube.frag -- MAIN_DEPENDENCY ${PROJECT_SOURCE_DIR}/demos/cube.frag -- DEPENDS ${PROJECT_SOURCE_DIR}/demos/cube.frag ${GLSLANG_VALIDATOR} --) - - include_directories(${CMAKE_CURRENT_BINARY_DIR}) - -@@ -172,55 +136,3 @@ if(${CMAKE_SYSTEM_NAME} STREQUAL "Linux") - install(TARGETS ${API_LOWERCASE}info DESTINATION ${CMAKE_INSTALL_BINDIR}) - endif() - endif() -- --###################################################################################### --# cube -- --if(APPLE) -- include(macOS/cube/cube.cmake) --elseif(NOT WIN32) -- if (${CMAKE_SYSTEM_PROCESSOR} STREQUAL ${CMAKE_HOST_SYSTEM_PROCESSOR}) -- add_executable(cube cube.c ${PROJECT_SOURCE_DIR}/demos/cube.vert ${PROJECT_SOURCE_DIR}/demos/cube.frag cube.vert.inc cube.frag.inc) -- target_link_libraries(cube ${LIBRARIES}) -- endif() --else() -- if (CMAKE_CL_64) -- set (LIB_DIR "Win64") -- else() -- set (LIB_DIR "Win32") -- endif() -- -- add_executable(cube WIN32 cube.c ${PROJECT_SOURCE_DIR}/demos/cube.vert ${PROJECT_SOURCE_DIR}/demos/cube.frag cube.vert.inc cube.frag.inc) -- target_link_libraries(cube ${LIBRARIES}) --endif() -- --###################################################################################### --# cubepp -- --if(APPLE) -- include(macOS/cubepp/cubepp.cmake) --elseif(NOT WIN32) -- if (${CMAKE_SYSTEM_PROCESSOR} STREQUAL ${CMAKE_HOST_SYSTEM_PROCESSOR}) -- add_executable(cubepp cube.cpp ${PROJECT_SOURCE_DIR}/demos/cube.vert ${PROJECT_SOURCE_DIR}/demos/cube.frag cube.vert.inc cube.frag.inc) -- target_link_libraries(cubepp ${LIBRARIES}) -- endif() --else() -- if (CMAKE_CL_64) -- set (LIB_DIR "Win64") -- else() -- set (LIB_DIR "Win32") -- endif() -- -- add_executable(cubepp WIN32 cube.cpp ${PROJECT_SOURCE_DIR}/demos/cube.vert ${PROJECT_SOURCE_DIR}/demos/cube.frag cube.vert.inc cube.frag.inc) -- target_link_libraries(cubepp ${LIBRARIES}) --endif() -- --###################################################################################### --# smoke -- --if ((${CMAKE_SYSTEM_PROCESSOR} STREQUAL ${CMAKE_HOST_SYSTEM_PROCESSOR})) -- if ((DEMOS_WSI_SELECTION STREQUAL "XCB") OR (DEMOS_WSI_SELECTION STREQUAL "WAYLAND") OR WIN32 OR -- (CMAKE_SYSTEM_NAME STREQUAL "Android") OR (CMAKE_SYSTEM_NAME STREQUAL "Darwin")) -- add_subdirectory(smoke) -- endif() --endif() --- -2.4.0 - diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/vulkan/vulkan_1.1.73.0.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/vulkan/vulkan_1.1.73.0.bb deleted file mode 100644 index 02e4330c..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/vulkan/vulkan_1.1.73.0.bb +++ /dev/null @@ -1,40 +0,0 @@ -SUMMARY = "3D graphics and compute API common loader" -DESCRIPTION = "Vulkan is a new generation graphics and compute API \ -that provides efficient access to modern GPUs. These packages \ -provide only the common vendor-agnostic library loader, headers and \ -the vulkaninfo utility." -HOMEPAGE = "https://www.khronos.org/vulkan/" -BUGTRACKER = "https://github.com/KhronosGroup/Vulkan-Loader" -SECTION = "libs" - -LICENSE = "Apache-2.0" -LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=99c647ca3d4f6a4b9d8628f757aad156 \ - file://loader/loader.c;endline=25;md5=151b392f46568aaedb4ad22b246237ec" -SRC_URI = "git://github.com/KhronosGroup/Vulkan-Loader.git;nobranch=1 \ - file://demos-Don-t-build-tri-or-cube.patch \ - " -SRCREV = "5998d6f444a85e6381b7a089ebf3f9e86482a31d" -UPSTREAM_CHECK_GITTAGREGEX = "sdk-(?P\d+(\.\d+)+)" - -S = "${WORKDIR}/git" - -REQUIRED_DISTRO_FEATURES = "vulkan" - -inherit cmake python3native lib_package distro_features_check -ANY_OF_DISTRO_FEATURES = "x11 wayland" - -EXTRA_OECMAKE = "-DBUILD_WSI_MIR_SUPPORT=OFF \ - -DBUILD_LAYERS=OFF \ - -DBUILD_TESTS=OFF" - -# must choose x11 or wayland or both -PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'x11', '' ,d)} \ - ${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'wayland', '' ,d)}" -PACKAGECONFIG[x11] = "-DBUILD_WSI_XLIB_SUPPORT=ON -DBUILD_WSI_XCB_SUPPORT=ON -DDEMOS_WSI_SELECTION=XCB, -DBUILD_WSI_XLIB_SUPPORT=OFF -DBUILD_WSI_XCB_SUPPORT=OFF -DDEMOS_WSI_SELECTION=WAYLAND, libxcb libx11 libxrandr" -PACKAGECONFIG[wayland] = "-DBUILD_WSI_WAYLAND_SUPPORT=ON, -DBUILD_WSI_WAYLAND_SUPPORT=OFF, wayland" - -RRECOMMENDS_${PN} = "mesa-vulkan-drivers" -INSANE_SKIP_${PN}-dev += "dev-elf" - -# Can't be built with ccache -CCACHE_DISABLE = "1" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/waffle/waffle/0001-third_party-threads-Use-PTHREAD_MUTEX_RECURSIVE-by-d.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/waffle/waffle/0001-third_party-threads-Use-PTHREAD_MUTEX_RECURSIVE-by-d.patch deleted file mode 100644 index a0c826ed..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/waffle/waffle/0001-third_party-threads-Use-PTHREAD_MUTEX_RECURSIVE-by-d.patch +++ /dev/null @@ -1,54 +0,0 @@ -From 3b9b8f5f6d1b99af43e95ec0868404e552a85b73 Mon Sep 17 00:00:00 2001 -From: Emil Velikov -Date: Thu, 19 Mar 2015 22:26:11 +0000 -Subject: [PATCH] third_party/threads: Use PTHREAD_MUTEX_RECURSIVE by default - -PTHREAD_MUTEX_RECURSIVE_NP was used for compatibility with old glibc. -Although due to the_GNU_SOURCES define the portable, -PTHREAD_MUTEX_RECURSIVE will be available for Linuxes since at least -1998. Simplify things giving us compatibility with musl which -apparently does not provide the non-portable define. - -Inspired by almost identical commit in mesa aead7fe2e2b(c11/threads: Use -PTHREAD_MUTEX_RECURSIVE by default) by Felix Janda. - -Signed-off-by: Emil Velikov -Reviewed-by: Chad Versace ---- -Upstream-Status: Backport - - third_party/threads/threads_posix.c | 10 ++++------ - 1 file changed, 4 insertions(+), 6 deletions(-) - -diff --git a/third_party/threads/threads_posix.c b/third_party/threads/threads_posix.c -index 5835e43..e122bf9 100644 ---- a/third_party/threads/threads_posix.c -+++ b/third_party/threads/threads_posix.c -@@ -26,6 +26,9 @@ - * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER - * DEALINGS IN THE SOFTWARE. - */ -+ -+#define _GNU_SOURCE -+ - #include - #ifndef assert - #include -@@ -150,13 +153,8 @@ int mtx_init(mtx_t *mtx, int type) - && type != (mtx_try|mtx_recursive)) - return thrd_error; - pthread_mutexattr_init(&attr); -- if ((type & mtx_recursive) != 0) { --#if defined(__linux__) || defined(__linux) -- pthread_mutexattr_settype(&attr, PTHREAD_MUTEX_RECURSIVE_NP); --#else -+ if ((type & mtx_recursive) != 0) - pthread_mutexattr_settype(&attr, PTHREAD_MUTEX_RECURSIVE); --#endif -- } - pthread_mutex_init(mtx, &attr); - pthread_mutexattr_destroy(&attr); - return thrd_success; --- -2.5.2 - diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/waffle/waffle_1.5.2.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/waffle/waffle_1.5.2.bb deleted file mode 100644 index 31572f25..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/waffle/waffle_1.5.2.bb +++ /dev/null @@ -1,36 +0,0 @@ -SUMMARY = "cross-platform C library to defer selection of GL API and of window system" -LICENSE = "BSD-2-Clause" -LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=4c5154407c2490750dd461c50ad94797 \ - file://include/waffle/waffle.h;endline=24;md5=61dbf8697f61c78645e75a93c585b1bf" - -SRC_URI = "http://waffle-gl.org/files/release/${BPN}-${PV}/${BPN}-${PV}.tar.xz \ - file://0001-third_party-threads-Use-PTHREAD_MUTEX_RECURSIVE-by-d.patch \ - " -SRC_URI[md5sum] = "c669c91bf2f7e13a5d781c3dbb30fd8c" -SRC_URI[sha256sum] = "d2c096cf654bf0061323a4b9231a1ef5b749a1e5c7c5bfe067e964219c2a851c" - -UPSTREAM_CHECK_URI = "http://www.waffle-gl.org/releases.html" - -inherit cmake distro_features_check lib_package - -# This should be overridden per-machine to reflect the capabilities of the GL -# stack. -PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'glx x11-egl', '', d)} \ - ${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'wayland', '', d)} \ - gbm" - -# virtual/libgl requires opengl in DISTRO_FEATURES. -REQUIRED_DISTRO_FEATURES += "${@bb.utils.contains('DEPENDS', 'virtual/${MLPREFIX}libgl', 'opengl', '', d)}" - -# I say virtual/libgl, actually wants gl.pc -PACKAGECONFIG[glx] = "-Dwaffle_has_glx=1,-Dwaffle_has_glx=0,virtual/${MLPREFIX}libgl libx11" - -# I say virtual/libgl, actually wants wayland-egl.pc, egl.pc, and the wayland -# DISTRO_FEATURE. -PACKAGECONFIG[wayland] = "-Dwaffle_has_wayland=1,-Dwaffle_has_wayland=0,virtual/${MLPREFIX}libgl wayland" - -# I say virtual/libgl, actually wants gbm.pc egl.pc -PACKAGECONFIG[gbm] = "-Dwaffle_has_gbm=1,-Dwaffle_has_gbm=0,virtual/${MLPREFIX}libgl udev" - -# I say virtual/libgl, actually wants egl.pc -PACKAGECONFIG[x11-egl] = "-Dwaffle_has_x11_egl=1,-Dwaffle_has_x11_egl=0,virtual/${MLPREFIX}libgl libxcb" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/waffle/waffle_1.6.0.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/waffle/waffle_1.6.0.bb new file mode 100644 index 00000000..52cb1df8 --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/waffle/waffle_1.6.0.bb @@ -0,0 +1,37 @@ +SUMMARY = "cross-platform C library to defer selection of GL API and of window system" +LICENSE = "BSD-2-Clause" +LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=4c5154407c2490750dd461c50ad94797 \ + file://include/waffle/waffle.h;endline=24;md5=61dbf8697f61c78645e75a93c585b1bf" + +SRC_URI = "http://waffle-gl.org/files/release/${BPN}-${PV}/${BPN}-${PV}.tar.xz" +SRC_URI[md5sum] = "61bfc1a478e840825f33ddb4057115e7" +SRC_URI[sha256sum] = "d9c899f710c50cfdd00f5f4cdfeaef0687d8497362239bdde93bed6c909c81d7" + +UPSTREAM_CHECK_URI = "http://www.waffle-gl.org/releases.html" + +inherit meson features_check lib_package bash-completion + +# This should be overridden per-machine to reflect the capabilities of the GL +# stack. +PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'glx x11-egl', '', d)} \ + ${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'wayland', '', d)} \ + surfaceless-egl gbm" + +# virtual/libgl requires opengl in DISTRO_FEATURES. +REQUIRED_DISTRO_FEATURES += "${@bb.utils.contains('DEPENDS', 'virtual/${MLPREFIX}libgl', 'opengl', '', d)}" + +# I say virtual/libgl, actually wants gl.pc +PACKAGECONFIG[glx] = "-Dglx=enabled,-Dglx=disabled,virtual/${MLPREFIX}libgl libx11" + +# I say virtual/libgl, actually wants wayland-egl.pc, egl.pc, and the wayland +# DISTRO_FEATURE. +PACKAGECONFIG[wayland] = "-Dwayland=enabled,-Dwayland=disabled,virtual/${MLPREFIX}libgl wayland" + +# I say virtual/libgl, actually wants gbm.pc egl.pc +PACKAGECONFIG[gbm] = "-Dgbm=enabled,-Dgbm=disabled,virtual/${MLPREFIX}libgl udev" + +# I say virtual/libgl, actually wants egl.pc +PACKAGECONFIG[x11-egl] = "-Dx11_egl=enabled,-Dx11_egl=disabled,virtual/${MLPREFIX}libgl libxcb" +PACKAGECONFIG[surfaceless-egl] = "-Dsurfaceless_egl=enabled,-Dsurfaceless_egl=disabled,virtual/${MLPREFIX}libgl" + +# TODO: optionally build manpages and examples diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/wayland/libinput_1.13.2.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/wayland/libinput_1.13.2.bb deleted file mode 100644 index 049674c0..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/wayland/libinput_1.13.2.bb +++ /dev/null @@ -1,29 +0,0 @@ -SUMMARY = "Library to handle input devices in Wayland compositors" -HOMEPAGE = "http://www.freedesktop.org/wiki/Software/libinput/" -SECTION = "libs" - -LICENSE = "MIT" -LIC_FILES_CHKSUM = "file://COPYING;md5=1f2ea9ebff3a2c6d458faf58492efb63" - -DEPENDS = "libevdev udev mtdev" - -SRC_URI = "http://www.freedesktop.org/software/${BPN}/${BP}.tar.xz" -SRC_URI[md5sum] = "8b745894f5d1b2e883bfc686aebadcfe" -SRC_URI[sha256sum] = "1d9fa0698348dea46f75321d98788f8ac7181c069b70c4d10736910a12bb6a6d" - -UPSTREAM_CHECK_REGEX = "libinput-(?P\d+\.\d+\.(?!9\d+)\d+)" - -inherit meson pkgconfig lib_package - -PACKAGECONFIG ??= "" -PACKAGECONFIG[libwacom] = "-Dlibwacom=true,-Dlibwacom=false,libwacom" -PACKAGECONFIG[gui] = "-Ddebug-gui=true,-Ddebug-gui=false,cairo gtk+3" - -UDEVDIR = "`pkg-config --variable=udevdir udev`" - -EXTRA_OEMESON += "-Dudev-dir=${UDEVDIR} -Ddocumentation=false -Dtests=false" - -# package name changed in 1.8.1 upgrade: make sure package upgrades work -RPROVIDES_${PN} = "libinput" -RREPLACES_${PN} = "libinput" -RCONFLICTS_${PN} = "libinput" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/wayland/libinput_1.14.3.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/wayland/libinput_1.14.3.bb new file mode 100644 index 00000000..f06a8d28 --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/wayland/libinput_1.14.3.bb @@ -0,0 +1,37 @@ +SUMMARY = "Library to handle input devices in Wayland compositors" +DESCRIPTION = "libinput is a library to handle input devices in Wayland \ +compositors and to provide a generic X.Org input driver. It provides \ +device detection, device handling, input device event processing and \ +abstraction so minimize the amount of custom input code compositors need to \ +provide the common set of functionality that users expect." +HOMEPAGE = "http://www.freedesktop.org/wiki/Software/libinput/" +SECTION = "libs" + +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://COPYING;md5=1f2ea9ebff3a2c6d458faf58492efb63" + +DEPENDS = "libevdev udev mtdev" + +SRC_URI = "http://www.freedesktop.org/software/${BPN}/${BP}.tar.xz" +SRC_URI[md5sum] = "d052faa64eb6d2e649e582cc0fcf6e32" +SRC_URI[sha256sum] = "0feb3a0589709cc1032893bfaf4c49150d5360bd9782bec888f9e4dd9044c5b7" + +UPSTREAM_CHECK_REGEX = "libinput-(?P\d+\.\d+\.(?!9\d+)\d+)" + +inherit meson pkgconfig lib_package + +PACKAGECONFIG ??= "" +PACKAGECONFIG[libwacom] = "-Dlibwacom=true,-Dlibwacom=false,libwacom" +PACKAGECONFIG[gui] = "-Ddebug-gui=true,-Ddebug-gui=false,cairo gtk+3" + +UDEVDIR = "`pkg-config --variable=udevdir udev`" + +EXTRA_OEMESON += "-Dudev-dir=${UDEVDIR} \ + -Ddocumentation=false \ + -Dtests=false \ + -Dzshcompletiondir=no" + +# package name changed in 1.8.1 upgrade: make sure package upgrades work +RPROVIDES_${PN} = "libinput" +RREPLACES_${PN} = "libinput" +RCONFLICTS_${PN} = "libinput" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/wayland/wayland-protocols_1.17.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/wayland/wayland-protocols_1.17.bb deleted file mode 100644 index ca8f06c5..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/wayland/wayland-protocols_1.17.bb +++ /dev/null @@ -1,22 +0,0 @@ -SUMMARY = "Collection of additional Wayland protocols" -DESCRIPTION = "Wayland protocols that add functionality not \ -available in the Wayland core protocol. Such protocols either add \ -completely new functionality, or extend the functionality of some other \ -protocol either in Wayland core, or some other protocol in \ -wayland-protocols." -HOMEPAGE = "http://wayland.freedesktop.org" -LICENSE = "MIT" -LIC_FILES_CHKSUM = "file://COPYING;md5=c7b12b6702da38ca028ace54aae3d484 \ - file://stable/presentation-time/presentation-time.xml;endline=26;md5=4646cd7d9edc9fa55db941f2d3a7dc53" - -SRC_URI = "https://wayland.freedesktop.org/releases/${BPN}-${PV}.tar.xz \ - " -SRC_URI[md5sum] = "55ddd5fdb02b73b9de9559aaec267315" -SRC_URI[sha256sum] = "df1319cf9705643aea9fd16f9056f4e5b2471bd10c0cc3713d4a4cdc23d6812f" - -UPSTREAM_CHECK_URI = "https://wayland.freedesktop.org/releases.html" - -inherit allarch autotools pkgconfig - -PACKAGES = "${PN}" -FILES_${PN} += "${datadir}/pkgconfig/wayland-protocols.pc" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/wayland/wayland-protocols_1.18.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/wayland/wayland-protocols_1.18.bb new file mode 100644 index 00000000..c8bec66a --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/wayland/wayland-protocols_1.18.bb @@ -0,0 +1,22 @@ +SUMMARY = "Collection of additional Wayland protocols" +DESCRIPTION = "Wayland protocols that add functionality not \ +available in the Wayland core protocol. Such protocols either add \ +completely new functionality, or extend the functionality of some other \ +protocol either in Wayland core, or some other protocol in \ +wayland-protocols." +HOMEPAGE = "http://wayland.freedesktop.org" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://COPYING;md5=c7b12b6702da38ca028ace54aae3d484 \ + file://stable/presentation-time/presentation-time.xml;endline=26;md5=4646cd7d9edc9fa55db941f2d3a7dc53" + +SRC_URI = "https://wayland.freedesktop.org/releases/${BPN}-${PV}.tar.xz \ + " +SRC_URI[md5sum] = "af38f22d8e233c2f2e00ddc8dcc94694" +SRC_URI[sha256sum] = "3d73b7e7661763dc09d7d9107678400101ecff2b5b1e531674abfa81e04874b3" + +UPSTREAM_CHECK_URI = "https://wayland.freedesktop.org/releases.html" + +inherit allarch autotools pkgconfig + +PACKAGES = "${PN}" +FILES_${PN} += "${datadir}/pkgconfig/wayland-protocols.pc" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/wayland/wayland/0001-scanner-Add-configure-check-for-strndup.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/wayland/wayland/0001-scanner-Add-configure-check-for-strndup.patch new file mode 100644 index 00000000..c4435875 --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/wayland/wayland/0001-scanner-Add-configure-check-for-strndup.patch @@ -0,0 +1,50 @@ +From 3c8b4467a1ca229e72fb5223787ed400a19c65c0 Mon Sep 17 00:00:00 2001 +From: Joshua Watt +Date: Fri, 25 Oct 2019 21:03:23 -0500 +Subject: [PATCH] scanner: Add configure check for strndup + +Some platforms may not have strndup() (e.g. MinGW), so provide a +equivalent implementation if it's not found. + +Upstream-Status: Accepted [4a1f348c20157db7bd7c759fdeb23fbe8729c571] +Signed-off-by: Joshua Watt +--- + configure.ac | 2 +- + src/scanner.c | 11 +++++++++++ + 2 files changed, 12 insertions(+), 1 deletion(-) + +diff --git a/configure.ac b/configure.ac +index 8d56f2b..1c99e21 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -63,7 +63,7 @@ fi + AC_SUBST(GCC_CFLAGS) + + AC_CHECK_HEADERS([sys/prctl.h]) +-AC_CHECK_FUNCS([accept4 mkostemp posix_fallocate prctl]) ++AC_CHECK_FUNCS([accept4 mkostemp posix_fallocate prctl strndup]) + + AC_ARG_ENABLE([libraries], + [AC_HELP_STRING([--disable-libraries], +diff --git a/src/scanner.c b/src/scanner.c +index a94be5d..27004bc 100644 +--- a/src/scanner.c ++++ b/src/scanner.c +@@ -916,6 +916,17 @@ verify_arguments(struct parse_context *ctx, + + } + ++#ifndef HAVE_STRNDUP ++char * ++strndup(const char *s, size_t size) ++{ ++ char *r = malloc(size + 1); ++ strncpy(r, s, size); ++ r[size] = '\0'; ++ return r; ++} ++#endif ++ + static void + end_element(void *data, const XML_Char *name) + { diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/wayland/wayland/0002-Move-wl_priv_signal-to-wayland-server-private.h.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/wayland/wayland/0002-Move-wl_priv_signal-to-wayland-server-private.h.patch new file mode 100644 index 00000000..b05b875a --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/wayland/wayland/0002-Move-wl_priv_signal-to-wayland-server-private.h.patch @@ -0,0 +1,166 @@ +From e746f3bf7c8bb2f5dcf9e93edffc23b56eff12d0 Mon Sep 17 00:00:00 2001 +From: Joshua Watt +Date: Tue, 5 Nov 2019 09:09:50 -0600 +Subject: [PATCH] Move wl_priv_signal to wayland-server-private.h + +Including wayland-server-core.h in wayland-private.h is problematic +because wayland-private.h is included by wayland-scanner which should be +able to build against non-POSIX platforms (e.g. MinGW). The only reason +that wayland-server-core.h was included in wayland-private.h was for the +wl_private_signal definitions, so move those to a +wayland-server-private.h file that can be included by both +wayland-server.c and the tests. + +Upstream-Status: Accepted [e7d88f35eb89cf0cc77cbddd834cacc63683a9cc] +Signed-off-by: Joshua Watt +--- + Makefile.am | 3 +- + src/wayland-private.h | 22 +-------------- + src/wayland-server-private.h | 53 ++++++++++++++++++++++++++++++++++++ + src/wayland-server.c | 1 + + tests/newsignal-test.c | 2 +- + 5 files changed, 58 insertions(+), 23 deletions(-) + create mode 100644 src/wayland-server-private.h + +diff --git a/Makefile.am b/Makefile.am +index f47d055..026d981 100644 +--- a/Makefile.am ++++ b/Makefile.am +@@ -56,7 +56,8 @@ libwayland_private_la_SOURCES = \ + src/connection.c \ + src/wayland-os.c \ + src/wayland-os.h \ +- src/wayland-private.h ++ src/wayland-private.h \ ++ src/wayland-server-private.h + + include_HEADERS = \ + src/wayland-util.h \ +diff --git a/src/wayland-private.h b/src/wayland-private.h +index 29516ec..dc7d12f 100644 +--- a/src/wayland-private.h ++++ b/src/wayland-private.h +@@ -31,11 +31,11 @@ + #include + #include + #include ++#include + + #define WL_HIDE_DEPRECATED 1 + + #include "wayland-util.h" +-#include "wayland-server-core.h" + + /* Invalid memory address */ + #define WL_ARRAY_POISON_PTR (void *) 4 +@@ -236,26 +236,6 @@ zalloc(size_t s) + return calloc(1, s); + } + +-struct wl_priv_signal { +- struct wl_list listener_list; +- struct wl_list emit_list; +-}; +- +-void +-wl_priv_signal_init(struct wl_priv_signal *signal); +- +-void +-wl_priv_signal_add(struct wl_priv_signal *signal, struct wl_listener *listener); +- +-struct wl_listener * +-wl_priv_signal_get(struct wl_priv_signal *signal, wl_notify_func_t notify); +- +-void +-wl_priv_signal_emit(struct wl_priv_signal *signal, void *data); +- +-void +-wl_priv_signal_final_emit(struct wl_priv_signal *signal, void *data); +- + void + wl_connection_close_fds_in(struct wl_connection *connection, int max); + +diff --git a/src/wayland-server-private.h b/src/wayland-server-private.h +new file mode 100644 +index 0000000..23fa458 +--- /dev/null ++++ b/src/wayland-server-private.h +@@ -0,0 +1,53 @@ ++/* ++ * Copyright © 2008-2011 Kristian Høgsberg ++ * Copyright © 2011 Intel Corporation ++ * Copyright © 2013 Jason Ekstrand ++ * ++ * Permission is hereby granted, free of charge, to any person obtaining ++ * a copy of this software and associated documentation files (the ++ * "Software"), to deal in the Software without restriction, including ++ * without limitation the rights to use, copy, modify, merge, publish, ++ * distribute, sublicense, and/or sell copies of the Software, and to ++ * permit persons to whom the Software is furnished to do so, subject to ++ * the following conditions: ++ * ++ * The above copyright notice and this permission notice (including the ++ * next paragraph) shall be included in all copies or substantial ++ * portions of the Software. ++ * ++ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, ++ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF ++ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND ++ * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS ++ * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ++ * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN ++ * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE ++ * SOFTWARE. ++ */ ++ ++#ifndef WAYLAND_SERVER_PRIVATE_H ++#define WAYLAND_SERVER_PRIVATE_H ++ ++#include "wayland-server-core.h" ++ ++struct wl_priv_signal { ++ struct wl_list listener_list; ++ struct wl_list emit_list; ++}; ++ ++void ++wl_priv_signal_init(struct wl_priv_signal *signal); ++ ++void ++wl_priv_signal_add(struct wl_priv_signal *signal, struct wl_listener *listener); ++ ++struct wl_listener * ++wl_priv_signal_get(struct wl_priv_signal *signal, wl_notify_func_t notify); ++ ++void ++wl_priv_signal_emit(struct wl_priv_signal *signal, void *data); ++ ++void ++wl_priv_signal_final_emit(struct wl_priv_signal *signal, void *data); ++ ++#endif +diff --git a/src/wayland-server.c b/src/wayland-server.c +index 19f6a76..d6f0206 100644 +--- a/src/wayland-server.c ++++ b/src/wayland-server.c +@@ -45,6 +45,7 @@ + + #include "wayland-util.h" + #include "wayland-private.h" ++#include "wayland-server-private.h" + #include "wayland-server.h" + #include "wayland-os.h" + +diff --git a/tests/newsignal-test.c b/tests/newsignal-test.c +index 47c429b..f3a7bd9 100644 +--- a/tests/newsignal-test.c ++++ b/tests/newsignal-test.c +@@ -26,7 +26,7 @@ + #include + + #include "test-runner.h" +-#include "wayland-private.h" ++#include "wayland-server-private.h" + + static void + signal_notify(struct wl_listener *listener, void *data) diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/wayland/wayland_1.17.0.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/wayland/wayland_1.17.0.bb index d34bb397..2b5a8f94 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/wayland/wayland_1.17.0.bb +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/wayland/wayland_1.17.0.bb @@ -14,6 +14,8 @@ DEPENDS = "expat libxml2 libffi wayland-native" SRC_URI = "https://wayland.freedesktop.org/releases/${BPN}-${PV}.tar.xz \ file://fixpathinpcfiles.patch \ + file://0001-scanner-Add-configure-check-for-strndup.patch \ + file://0002-Move-wl_priv_signal-to-wayland-server-private.h.patch \ " SRC_URI[md5sum] = "d91f970aea11fd549eae023d06f91af3" SRC_URI[sha256sum] = "72aa11b8ac6e22f4777302c9251e8fec7655dc22f9d94ee676c6b276f95f91a4" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/wayland/weston-conf.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/wayland/weston-conf.bb deleted file mode 100644 index f52200c4..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/wayland/weston-conf.bb +++ /dev/null @@ -1,35 +0,0 @@ -SUMMARY = "Weston, a Wayland compositor, configuration files" -HOMEPAGE = "http://wayland.freedesktop.org" -LICENSE = "MIT" -LIC_FILES_CHKSUM = "file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420" - -PACKAGE_ARCH = "${MACHINE_ARCH}" - -CONFFILES_${PN} = "${sysconfdir}/xdg/weston/weston.ini" - -FILES_${PN} = "${sysconfdir}/xdg/weston/weston.ini" - -PACKAGES = "${PN}" - -do_configure[noexec] = '1' -do_compile[noexec] = '1' - -do_install() { - : -} - -do_install_qemux86() { - mkdir -p ${D}/${sysconfdir}/xdg/weston - cat << EOF > ${D}/${sysconfdir}/xdg/weston/weston.ini -[core] -backend=fbdev-backend.so -EOF -} - -do_install_qemux86-64() { - mkdir -p ${D}/${sysconfdir}/xdg/weston - cat << EOF > ${D}/${sysconfdir}/xdg/weston/weston.ini -[core] -backend=fbdev-backend.so -EOF -} diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/wayland/weston-init.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/wayland/weston-init.bb index 22ba5f3f..e3e739e2 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/wayland/weston-init.bb +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/wayland/weston-init.bb @@ -2,23 +2,35 @@ SUMMARY = "Startup script and systemd unit file for the Weston Wayland composito LICENSE = "MIT" LIC_FILES_CHKSUM = "file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420" +PACKAGE_ARCH = "${MACHINE_ARCH}" + SRC_URI = "file://init \ - file://weston.service \ + file://weston.ini \ + file://weston@.service \ + file://71-weston-drm.rules \ file://weston-start" S = "${WORKDIR}" do_install() { install -Dm755 ${WORKDIR}/init ${D}/${sysconfdir}/init.d/weston - install -Dm0644 ${WORKDIR}/weston.service ${D}${systemd_system_unitdir}/weston.service - + install -D -p -m0644 ${WORKDIR}/weston.ini ${D}${sysconfdir}/xdg/weston/weston.ini + + # Install Weston systemd service and accompanying udev rule + install -D -p -m0644 ${WORKDIR}/weston@.service ${D}${systemd_system_unitdir}/weston@.service + sed -i -e s:/etc:${sysconfdir}:g \ + -e s:/usr/bin:${bindir}:g \ + -e s:/var:${localstatedir}:g \ + ${D}${systemd_unitdir}/system/weston@.service + install -D -p -m0644 ${WORKDIR}/71-weston-drm.rules \ + ${D}${sysconfdir}/udev/rules.d/71-weston-drm.rules # Install weston-start script install -Dm755 ${WORKDIR}/weston-start ${D}${bindir}/weston-start sed -i 's,@DATADIR@,${datadir},g' ${D}${bindir}/weston-start sed -i 's,@LOCALSTATEDIR@,${localstatedir},g' ${D}${bindir}/weston-start } -inherit allarch update-rc.d distro_features_check systemd +inherit update-rc.d features_check systemd # rdepends on weston which depends on virtual/egl REQUIRED_DISTRO_FEATURES = "opengl" @@ -28,4 +40,10 @@ RDEPENDS_${PN} = "weston kbd" INITSCRIPT_NAME = "weston" INITSCRIPT_PARAMS = "start 9 5 2 . stop 20 0 1 6 ." -SYSTEMD_SERVICE_${PN} = "weston.service" +FILES_${PN} += "${sysconfdir}/xdg/weston/weston.ini ${systemd_system_unitdir}/weston@.service" + +CONFFILES_${PN} += "${sysconfdir}/xdg/weston/weston.ini" + +SYSTEMD_SERVICE_${PN} = "weston@%i.service" +SYSTEMD_AUTO_ENABLE = "disable" + diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/wayland/weston-init/71-weston-drm.rules b/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/wayland/weston-init/71-weston-drm.rules new file mode 100644 index 00000000..1a1b8bbd --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/wayland/weston-init/71-weston-drm.rules @@ -0,0 +1,2 @@ +ACTION=="add", SUBSYSTEM=="graphics", KERNEL=="fb0", TAG+="systemd", ENV{SYSTEMD_WANTS}+="weston@root.service" +ACTION=="add", SUBSYSTEM=="drm", KERNEL=="card0", TAG+="systemd", ENV{SYSTEMD_WANTS}+="weston@root.service" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/wayland/weston-init/qemux86-64/weston.ini b/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/wayland/weston-init/qemux86-64/weston.ini new file mode 100644 index 00000000..17ebd7fd --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/wayland/weston-init/qemux86-64/weston.ini @@ -0,0 +1,2 @@ +[core] +backend=fbdev-backend.so diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/wayland/weston-init/qemux86/weston.ini b/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/wayland/weston-init/qemux86/weston.ini new file mode 100644 index 00000000..17ebd7fd --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/wayland/weston-init/qemux86/weston.ini @@ -0,0 +1,2 @@ +[core] +backend=fbdev-backend.so diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/wayland/weston-init/weston.ini b/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/wayland/weston-init/weston.ini new file mode 100644 index 00000000..1eecf48b --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/wayland/weston-init/weston.ini @@ -0,0 +1,74 @@ +# configuration file for Weston + +#[core] +#modules=xwayland.so,cms-colord.so +#shell=desktop-shell.so +#gbm-format=xrgb2101010 + +#[shell] +#background-image=/usr/share/backgrounds/gnome/Aqua.jpg +#background-color=0xff002244 +#background-type=tile +#clock-format=minutes +#panel-color=0x90ff0000 +#locking=true +#animation=zoom +#startup-animation=fade +#binding-modifier=ctrl +#num-workspaces=6 +#cursor-theme=whiteglass +#cursor-size=24 + +#lockscreen-icon=/usr/share/icons/gnome/256x256/actions/lock.png +#lockscreen=/usr/share/backgrounds/gnome/Garden.jpg +#homescreen=/usr/share/backgrounds/gnome/Blinds.jpg +#animation=fade + +#[launcher] +#icon=/usr/share/icons/gnome/24x24/apps/utilities-terminal.png +#path=/usr/bin/gnome-terminal + +#[launcher] +#icon=/usr/share/icons/gnome/24x24/apps/utilities-terminal.png +#path=/usr/bin/weston-terminal + +#[launcher] +#icon=/usr/share/icons/hicolor/24x24/apps/google-chrome.png +#path=/usr/bin/google-chrome + +#[launcher] +#icon=/usr/share/icons/gnome/24x24/apps/arts.png +#path=/build/weston-0lEgCh/weston-1.11.0/weston-flower + +#[input-method] +#path=/usr/lib/weston/weston-keyboard + +#[output] +#name=LVDS1 +#mode=1680x1050 +#transform=90 +#icc_profile=/usr/share/color/icc/colord/Bluish.icc + +#[output] +#name=VGA1 +#mode=173.00 1920 2048 2248 2576 1080 1083 1088 1120 -hsync +vsync +#transform=flipped + +#[output] +#name=X1 +#mode=1024x768 +#transform=flipped-90 + +#[libinput] +#enable_tap=true + +#[touchpad] +#constant_accel_factor = 50 +#min_accel_factor = 0.16 +#max_accel_factor = 1.0 + +#[screen-share] +#command=/usr/bin/weston --backend=rdp-backend.so --shell=fullscreen-shell.so --no-clients-resize + +#[xwayland] +#path=/usr/bin/Xwayland diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/wayland/weston-init/weston.service b/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/wayland/weston-init/weston.service deleted file mode 100644 index 18f72626..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/wayland/weston-init/weston.service +++ /dev/null @@ -1,13 +0,0 @@ -[Unit] -Description=Weston Wayland Compositor -RequiresMountsFor=/run - -[Service] -User=root -PAMName=login -EnvironmentFile=-/etc/default/weston -ExecStart=/usr/bin/weston-start -v -e -- $OPTARGS - -[Install] -WantedBy=multi-user.target - diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/wayland/weston-init/weston@.service b/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/wayland/weston-init/weston@.service new file mode 100644 index 00000000..9ecf2ab0 --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/wayland/weston-init/weston@.service @@ -0,0 +1,37 @@ +[Unit] +Description=Weston Wayland Compositor (on tty7) +RequiresMountsFor=/run +Conflicts=getty@tty7.service plymouth-quit.service +After=systemd-user-sessions.service getty@tty7.service plymouth-quit-wait.service + +[Service] +User=%i +PermissionsStartOnly=true + +# Log us in via PAM so we get our XDG & co. environment and +# are treated as logged in so we can use the tty: +PAMName=login + +# Grab tty7 +UtmpIdentifier=tty7 +TTYPath=/dev/tty7 +TTYReset=yes +TTYVHangup=yes +TTYVTDisallocate=yes + +# stderr to journal so our logging doesn't get thrown into /dev/null +StandardOutput=tty +StandardInput=tty +StandardError=journal + +EnvironmentFile=-/etc/default/weston + +# Weston does not successfully change VT, nor does systemd place us on +# the VT it just activated for us. Switch manually: +ExecStartPre=/usr/bin/chvt 7 +ExecStart=/usr/bin/weston --log=${XDG_RUNTIME_DIR}/weston.log $OPTARGS + +IgnoreSIGPIPE=no + +#[Install] +#Alias=multi-user.target.wants/weston.service diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/wayland/weston/0001-make-error-portable.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/wayland/weston/0001-make-error-portable.patch deleted file mode 100644 index 0eb3d95a..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/wayland/weston/0001-make-error-portable.patch +++ /dev/null @@ -1,78 +0,0 @@ -From c4677e155736062e75687f1a655732c8902e912b Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Fri, 29 May 2015 20:56:00 -0700 -Subject: [PATCH] make error() portable - -error() is not posix but gnu extension so may not be available on all -kind of systemsi e.g. musl. - -Upstream-Status: Submitted - -Signed-off-by: Khem Raj - ---- - configure.ac | 2 ++ - libweston/weston-error.h | 20 ++++++++++++++++++++ - libweston/weston-launch.c | 2 +- - 3 files changed, 23 insertions(+), 1 deletion(-) - create mode 100644 libweston/weston-error.h - -diff --git a/configure.ac b/configure.ac -index c05ad01..6da6e04 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -126,6 +126,8 @@ AC_CHECK_DECL(CLOCK_MONOTONIC,[], - [AC_MSG_ERROR("CLOCK_MONOTONIC is needed to compile weston")], - [[#include ]]) - -+AC_CHECK_HEADERS([error.h]) -+ - AC_CHECK_FUNCS([mkostemp strchrnul initgroups posix_fallocate]) - - # check for libdrm as a build-time dependency only -diff --git a/libweston/weston-error.h b/libweston/weston-error.h -new file mode 100644 -index 0000000..2089d02 ---- /dev/null -+++ b/libweston/weston-error.h -@@ -0,0 +1,20 @@ -+#ifndef _WESTON_ERROR_H -+#define _WESTON_ERROR_H -+ -+#if defined(HAVE_ERROR_H) -+#include -+#else -+#include -+#include -+#define _weston_error(S, E, F, ...) do { \ -+ if (E) \ -+ err(S, F ": %s", ##__VA_ARGS__, strerror(E)); \ -+ else \ -+ err(S, F, ##__VA_ARGS__); \ -+} while(0) -+ -+#define error _weston_error -+#endif -+ -+#endif -+ -diff --git a/libweston/weston-launch.c b/libweston/weston-launch.c -index bf73e0d..9064439 100644 ---- a/libweston/weston-launch.c -+++ b/libweston/weston-launch.c -@@ -33,7 +33,6 @@ - #include - #include - --#include - #include - - #include -@@ -59,6 +58,7 @@ - #endif - - #include "weston-launch.h" -+#include "weston-error.h" - - #define DRM_MAJOR 226 - diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/wayland/weston/0001-weston-launch-Provide-a-default-version-that-doesn-t.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/wayland/weston/0001-weston-launch-Provide-a-default-version-that-doesn-t.patch index a2f61bfd..e50845b1 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/wayland/weston/0001-weston-launch-Provide-a-default-version-that-doesn-t.patch +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/wayland/weston/0001-weston-launch-Provide-a-default-version-that-doesn-t.patch @@ -1,4 +1,4 @@ -From 7d2fea61a95e9498b5a19c8cffcb2ab5631d5685 Mon Sep 17 00:00:00 2001 +From 682b7d79a7b81ec8e38760381104b24ad549e8c0 Mon Sep 17 00:00:00 2001 From: Tom Hochstein Date: Wed, 22 Feb 2017 15:53:30 +0200 Subject: [PATCH] weston-launch: Provide a default version that doesn't require @@ -15,46 +15,48 @@ Upstream-Status: Pending Signed-off-by: Tom Hochstein Signed-off-by: Jussi Kukkonen Signed-off-by: Denys Dmytriyenko - +Signed-off-by: Ming Liu --- - configure.ac | 9 +++++++-- - libweston/weston-launch.c | 20 ++++++++++++++++++++ - 2 files changed, 27 insertions(+), 2 deletions(-) + libweston/meson.build | 16 ++++++++++++---- + libweston/weston-launch.c | 21 +++++++++++++++++++++ + meson_options.txt | 7 +++++++ + 3 files changed, 40 insertions(+), 4 deletions(-) -diff --git a/configure.ac b/configure.ac -index 6da6e04..681f7c8 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -515,13 +515,17 @@ AC_ARG_ENABLE(resize-optimization, - AS_IF([test "x$enable_resize_optimization" = "xyes"], - [AC_DEFINE([USE_RESIZE_POOL], [1], [Use resize memory pool as a performance optimization])]) - -+AC_ARG_WITH(pam, -+ AS_HELP_STRING([--with-pam], [Use PAM]), -+ [use_pam=$withval], [use_pam=yes]) - AC_ARG_ENABLE(weston-launch, [ --enable-weston-launch],, enable_weston_launch=yes) - AM_CONDITIONAL(BUILD_WESTON_LAUNCH, test x$enable_weston_launch = xyes) --if test x$enable_weston_launch = xyes; then -+if test x$enable_weston_launch = xyes -a x$use_pam = xyes; then - WESTON_SEARCH_LIBS([PAM], [pam], [pam_open_session], [have_pam=yes], [have_pam=no]) - if test x$have_pam = xno; then -- AC_ERROR([weston-launch requires pam]) -+ AC_ERROR([PAM support is explicitly requested, but libpam couldn't be found]) - fi -+ AC_DEFINE([HAVE_PAM], [1], [Define if PAM is available]) - fi - - AM_CONDITIONAL(HAVE_PANGO, test "x$have_pango" = "xyes") -@@ -767,6 +771,7 @@ AC_MSG_RESULT([ - Enable developer documentation ${enable_devdocs} - - weston-launch utility ${enable_weston_launch} -+ PAM support ${use_pam} - systemd-login support ${have_systemd_login} - systemd notify support ${enable_systemd_notify} - +diff --git a/libweston/meson.build b/libweston/meson.build +index d8d3fc0..326683f 100644 +--- a/libweston/meson.build ++++ b/libweston/meson.build +@@ -199,16 +199,24 @@ dep_vertex_clipping = declare_dependency( + ) + + if get_option('weston-launch') +- dep_pam = cc.find_library('pam') ++ deps_weston_launch = [systemd_dep, dep_libdrm] + +- if not cc.has_function('pam_open_session', dependencies: dep_pam) +- error('pam_open_session not found for weston-launch') ++ if get_option('pam') ++ dep_pam = cc.find_library('pam') ++ if not cc.has_function('pam_open_session', dependencies: dep_pam) ++ error('pam_open_session not found for weston-launch') ++ endif ++ ++ if dep_pam.found() ++ deps_weston_launch += dep_pam ++ config_h.set('HAVE_PAM', '1') ++ endif + endif + + executable( + 'weston-launch', + 'weston-launch.c', +- dependencies: [dep_pam, systemd_dep, dep_libdrm], ++ dependencies: deps_weston_launch, + include_directories: include_directories('..'), + install: true + ) diff --git a/libweston/weston-launch.c b/libweston/weston-launch.c -index 9064439..c6abe92 100644 +index 4962bd6..fc531c5 100644 --- a/libweston/weston-launch.c +++ b/libweston/weston-launch.c @@ -51,7 +51,9 @@ @@ -67,7 +69,7 @@ index 9064439..c6abe92 100644 #ifdef HAVE_SYSTEMD_LOGIN #include -@@ -101,8 +103,10 @@ drmSetMaster(int drm_fd) +@@ -100,8 +102,10 @@ drmSetMaster(int drm_fd) #endif struct weston_launch { @@ -78,7 +80,7 @@ index 9064439..c6abe92 100644 int tty; int ttynr; int sock[2]; -@@ -191,6 +195,7 @@ weston_launch_allowed(struct weston_launch *wl) +@@ -192,6 +196,7 @@ weston_launch_allowed(struct weston_launch *wl) return false; } @@ -86,7 +88,7 @@ index 9064439..c6abe92 100644 static int pam_conversation_fn(int msg_count, const struct pam_message **messages, -@@ -231,6 +236,7 @@ setup_pam(struct weston_launch *wl) +@@ -232,6 +237,7 @@ setup_pam(struct weston_launch *wl) return 0; } @@ -94,7 +96,7 @@ index 9064439..c6abe92 100644 static int setup_launcher_socket(struct weston_launch *wl) -@@ -424,6 +430,7 @@ quit(struct weston_launch *wl, int status) +@@ -431,6 +437,7 @@ quit(struct weston_launch *wl, int status) close(wl->signalfd); close(wl->sock[0]); @@ -102,7 +104,7 @@ index 9064439..c6abe92 100644 if (wl->new_user) { err = pam_close_session(wl->ph, 0); if (err) -@@ -431,6 +438,7 @@ quit(struct weston_launch *wl, int status) +@@ -438,6 +445,7 @@ quit(struct weston_launch *wl, int status) err, pam_strerror(wl->ph, err)); pam_end(wl->ph, err); } @@ -110,7 +112,7 @@ index 9064439..c6abe92 100644 if (ioctl(wl->tty, KDSKBMUTE, 0) && ioctl(wl->tty, KDSKBMODE, wl->kb_mode)) -@@ -610,6 +618,7 @@ setup_session(struct weston_launch *wl, char **child_argv) +@@ -660,6 +668,7 @@ setup_session(struct weston_launch *wl, char **child_argv) setenv("HOME", wl->pw->pw_dir, 1); setenv("SHELL", wl->pw->pw_shell, 1); @@ -118,7 +120,7 @@ index 9064439..c6abe92 100644 env = pam_getenvlist(wl->ph); if (env) { for (i = 0; env[i]; ++i) { -@@ -618,6 +627,7 @@ setup_session(struct weston_launch *wl, char **child_argv) +@@ -668,6 +677,7 @@ setup_session(struct weston_launch *wl, char **child_argv) } free(env); } @@ -126,7 +128,7 @@ index 9064439..c6abe92 100644 /* * We open a new session, so it makes sense -@@ -685,8 +695,10 @@ static void +@@ -739,8 +749,10 @@ static void help(const char *name) { fprintf(stderr, "Usage: %s [args...] [-- [weston args..]]\n", name); @@ -137,7 +139,7 @@ index 9064439..c6abe92 100644 fprintf(stderr, " -t, --tty Start session on alternative tty,\n" " e.g. -t /dev/tty4, requires -u option.\n"); fprintf(stderr, " -v, --verbose Be verbose\n"); -@@ -700,7 +712,9 @@ main(int argc, char *argv[]) +@@ -754,7 +766,9 @@ main(int argc, char *argv[]) int i, c; char *tty = NULL; struct option opts[] = { @@ -147,21 +149,24 @@ index 9064439..c6abe92 100644 { "tty", required_argument, NULL, 't' }, { "verbose", no_argument, NULL, 'v' }, { "help", no_argument, NULL, 'h' }, -@@ -712,9 +726,13 @@ main(int argc, char *argv[]) +@@ -766,11 +780,16 @@ main(int argc, char *argv[]) while ((c = getopt_long(argc, argv, "u:t:vh", opts, &i)) != -1) { switch (c) { case 'u': +#ifdef HAVE_PAM wl.new_user = optarg; - if (getuid() != 0) - error(1, 0, "Permission denied. -u allowed for root only"); + if (getuid() != 0) { + fprintf(stderr, "weston: Permission denied. -u allowed for root only\n"); + exit(EXIT_FAILURE); + } +#else -+ error(1, 0, "-u is unsupported in this weston-launch build"); ++ fprintf(stderr, "weston: -u is unsupported in this weston-launch build\n"); ++ exit(EXIT_FAILURE); +#endif break; case 't': tty = optarg; -@@ -755,8 +773,10 @@ main(int argc, char *argv[]) +@@ -822,8 +841,10 @@ main(int argc, char *argv[]) if (setup_tty(&wl, tty) < 0) exit(EXIT_FAILURE); @@ -172,3 +177,24 @@ index 9064439..c6abe92 100644 if (setup_launcher_socket(&wl) < 0) exit(EXIT_FAILURE); +diff --git a/meson_options.txt b/meson_options.txt +index d5bf1d5..254eb2b 100644 +--- a/meson_options.txt ++++ b/meson_options.txt +@@ -73,6 +73,13 @@ option( + ) + + option( ++ 'pam', ++ type: 'boolean', ++ value: true, ++ description: 'Define if PAM is available' ++) ++ ++option( + 'xwayland', + type: 'boolean', + value: true, +-- +2.7.4 + diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/wayland/weston_6.0.0.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/wayland/weston_6.0.0.bb deleted file mode 100644 index fa08dac9..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/wayland/weston_6.0.0.bb +++ /dev/null @@ -1,109 +0,0 @@ -SUMMARY = "Weston, a Wayland compositor" -DESCRIPTION = "Weston is the reference implementation of a Wayland compositor" -HOMEPAGE = "http://wayland.freedesktop.org" -LICENSE = "MIT" -LIC_FILES_CHKSUM = "file://COPYING;md5=d79ee9e66bb0f95d3386a7acae780b70 \ - file://libweston/compositor.c;endline=27;md5=6c53bbbd99273f4f7c4affa855c33c0a" - -SRC_URI = "https://wayland.freedesktop.org/releases/${BPN}-${PV}.tar.xz \ - file://weston.png \ - file://weston.desktop \ - file://0001-make-error-portable.patch \ - file://xwayland.weston-start \ - file://0001-weston-launch-Provide-a-default-version-that-doesn-t.patch \ -" -SRC_URI[md5sum] = "7c634e262f8a464a076c97fd50ad36b3" -SRC_URI[sha256sum] = "546323a90607b3bd7f48809ea9d76e64cd09718102f2deca6d95aa59a882e612" - -UPSTREAM_CHECK_URI = "https://wayland.freedesktop.org/releases.html" - -inherit autotools pkgconfig useradd distro_features_check -# depends on virtual/egl -REQUIRED_DISTRO_FEATURES = "opengl" - -DEPENDS = "libxkbcommon gdk-pixbuf pixman cairo glib-2.0 jpeg" -DEPENDS += "wayland wayland-protocols libinput virtual/egl pango wayland-native" - -WESTON_MAJOR_VERSION = "${@'.'.join(d.getVar('PV').split('.')[0:1])}" - -EXTRA_OECONF = "--enable-setuid-install \ - --disable-rdp-compositor \ - --enable-autotools \ - " -PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'kms fbdev wayland egl', '', d)} \ - ${@bb.utils.contains('DISTRO_FEATURES', 'x11 wayland', 'xwayland', '', d)} \ - ${@bb.utils.filter('DISTRO_FEATURES', 'pam systemd x11', d)} \ - clients launch" -# -# Compositor choices -# -# Weston on KMS -PACKAGECONFIG[kms] = "--enable-drm-compositor,--disable-drm-compositor,drm udev virtual/mesa virtual/libgbm mtdev" -# Weston on Wayland (nested Weston) -PACKAGECONFIG[wayland] = "--enable-wayland-compositor,--disable-wayland-compositor,virtual/mesa" -# Weston on X11 -PACKAGECONFIG[x11] = "--enable-x11-compositor,--disable-x11-compositor,virtual/libx11 libxcb libxcb libxcursor cairo" -# Headless Weston -PACKAGECONFIG[headless] = "--enable-headless-compositor,--disable-headless-compositor" -# Weston on framebuffer -PACKAGECONFIG[fbdev] = "--enable-fbdev-compositor,--disable-fbdev-compositor,udev mtdev" -# weston-launch -PACKAGECONFIG[launch] = "--enable-weston-launch,--disable-weston-launch,drm" -# VA-API desktop recorder -PACKAGECONFIG[vaapi] = "--enable-vaapi-recorder,--disable-vaapi-recorder,libva" -# Weston with EGL support -PACKAGECONFIG[egl] = "--enable-egl --enable-simple-egl-clients,--disable-egl --disable-simple-egl-clients,virtual/egl" -# Weston with cairo glesv2 support -PACKAGECONFIG[cairo-glesv2] = "--with-cairo-glesv2,--with-cairo=image,cairo" -# Weston with lcms support -PACKAGECONFIG[lcms] = "--enable-lcms,--disable-lcms,lcms" -# Weston with webp support -PACKAGECONFIG[webp] = "--with-webp,--without-webp,libwebp" -# Weston with systemd-login support -PACKAGECONFIG[systemd] = "--enable-systemd-login,--disable-systemd-login,systemd dbus" -# Weston with Xwayland support (requires X11 and Wayland) -PACKAGECONFIG[xwayland] = "--enable-xwayland,--disable-xwayland" -# colord CMS support -PACKAGECONFIG[colord] = "--enable-colord,--disable-colord,colord" -# Clients support -PACKAGECONFIG[clients] = "--enable-clients --enable-simple-clients --enable-demo-clients-install,--disable-clients --disable-simple-clients" -# Weston with PAM support -PACKAGECONFIG[pam] = "--with-pam,--without-pam,libpam" - -do_install_append() { - # Weston doesn't need the .la files to load modules, so wipe them - rm -f ${D}/${libdir}/libweston-${WESTON_MAJOR_VERSION}/*.la - - # If X11, ship a desktop file to launch it - if [ "${@bb.utils.filter('DISTRO_FEATURES', 'x11', d)}" ]; then - install -d ${D}${datadir}/applications - install ${WORKDIR}/weston.desktop ${D}${datadir}/applications - - install -d ${D}${datadir}/icons/hicolor/48x48/apps - install ${WORKDIR}/weston.png ${D}${datadir}/icons/hicolor/48x48/apps - fi - - if [ "${@bb.utils.contains('PACKAGECONFIG', 'xwayland', 'yes', 'no', d)}" = "yes" ]; then - install -Dm 644 ${WORKDIR}/xwayland.weston-start ${D}${datadir}/weston-start/xwayland - fi -} - -PACKAGES += "${@bb.utils.contains('PACKAGECONFIG', 'xwayland', '${PN}-xwayland', '', d)} \ - libweston-${WESTON_MAJOR_VERSION} ${PN}-examples" - -FILES_${PN} = "${bindir}/weston ${bindir}/weston-terminal ${bindir}/weston-info ${bindir}/weston-launch ${bindir}/wcap-decode ${libexecdir} ${libdir}/${BPN}/*.so ${datadir}" - -FILES_libweston-${WESTON_MAJOR_VERSION} = "${libdir}/lib*${SOLIBS} ${libdir}/libweston-${WESTON_MAJOR_VERSION}/*.so" -SUMMARY_libweston-${WESTON_MAJOR_VERSION} = "Helper library for implementing 'wayland window managers'." - -FILES_${PN}-examples = "${bindir}/*" - -FILES_${PN}-xwayland = "${libdir}/libweston-${WESTON_MAJOR_VERSION}/xwayland.so" -RDEPENDS_${PN}-xwayland += "xserver-xorg-xwayland" - -RDEPENDS_${PN} += "xkeyboard-config" -RRECOMMENDS_${PN} = "weston-conf liberation-fonts" -RRECOMMENDS_${PN}-dev += "wayland-protocols" - -USERADD_PACKAGES = "${PN}" -GROUPADD_PARAM_${PN} = "--system weston-launch" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/wayland/weston_7.0.0.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/wayland/weston_7.0.0.bb new file mode 100644 index 00000000..e6548d35 --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/wayland/weston_7.0.0.bb @@ -0,0 +1,111 @@ +SUMMARY = "Weston, a Wayland compositor" +DESCRIPTION = "Weston is the reference implementation of a Wayland compositor" +HOMEPAGE = "http://wayland.freedesktop.org" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://COPYING;md5=d79ee9e66bb0f95d3386a7acae780b70 \ + file://libweston/compositor.c;endline=27;md5=6c53bbbd99273f4f7c4affa855c33c0a" + +SRC_URI = "https://wayland.freedesktop.org/releases/${BPN}-${PV}.tar.xz \ + file://weston.png \ + file://weston.desktop \ + file://xwayland.weston-start \ + file://0001-weston-launch-Provide-a-default-version-that-doesn-t.patch \ +" +SRC_URI[md5sum] = "cbfda483bc2501d0831af3f33c707850" +SRC_URI[sha256sum] = "a00a6d207b6a45f95f4401c604772a307c3767e5e2beecf3d879110c43909a64" + +UPSTREAM_CHECK_URI = "https://wayland.freedesktop.org/releases.html" + +inherit meson pkgconfig useradd features_check +# depends on virtual/egl +REQUIRED_DISTRO_FEATURES = "opengl" + +DEPENDS = "libxkbcommon gdk-pixbuf pixman cairo glib-2.0 jpeg" +DEPENDS += "wayland wayland-protocols libinput virtual/egl pango wayland-native" + +WESTON_MAJOR_VERSION = "${@'.'.join(d.getVar('PV').split('.')[0:1])}" + +EXTRA_OEMESON += "-Dbackend-default=auto -Dbackend-rdp=false -Dpipewire=false" + +PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'kms fbdev wayland egl', '', d)} \ + ${@bb.utils.contains('DISTRO_FEATURES', 'x11 wayland', 'xwayland', '', d)} \ + ${@bb.utils.filter('DISTRO_FEATURES', 'pam systemd x11', d)} \ + ${@bb.utils.contains_any('DISTRO_FEATURES', 'wayland x11', '', 'headless', d)} \ + clients launch" +# +# Compositor choices +# +# Weston on KMS +PACKAGECONFIG[kms] = "-Dbackend-drm=true,-Dbackend-drm=false,drm udev virtual/egl virtual/libgles2 virtual/libgbm mtdev" +# Weston on Wayland (nested Weston) +PACKAGECONFIG[wayland] = "-Dbackend-wayland=true,-Dbackend-wayland=false,virtual/egl virtual/libgles2" +# Weston on X11 +PACKAGECONFIG[x11] = "-Dbackend-x11=true,-Dbackend-x11=false,virtual/libx11 libxcb libxcb libxcursor cairo" +# Headless Weston +PACKAGECONFIG[headless] = "-Dbackend-headless=true,-Dbackend-headless=false" +# Weston on framebuffer +PACKAGECONFIG[fbdev] = "-Dbackend-fbdev=true,-Dbackend-fbdev=false,udev mtdev" +# weston-launch +PACKAGECONFIG[launch] = "-Dweston-launch=true,-Dweston-launch=false,drm" +# VA-API desktop recorder +PACKAGECONFIG[vaapi] = "-Dbackend-drm-screencast-vaapi=true,-Dbackend-drm-screencast-vaapi=false,libva" +# Weston with EGL support +PACKAGECONFIG[egl] = "-Drenderer-gl=true,-Drenderer-gl=false,virtual/egl" +# Weston with lcms support +PACKAGECONFIG[lcms] = "-Dcolor-management-lcms=true,-Dcolor-management-lcms=false,lcms" +# Weston with webp support +PACKAGECONFIG[webp] = "-Dimage-webp=true,-Dimage-webp=false,libwebp" +# Weston with systemd-login support +PACKAGECONFIG[systemd] = "-Dsystemd=true -Dlauncher-logind=true,-Dsystemd=false -Dlauncher-logind=false,systemd dbus" +# Weston with Xwayland support (requires X11 and Wayland) +PACKAGECONFIG[xwayland] = "-Dxwayland=true,-Dxwayland=false" +# colord CMS support +PACKAGECONFIG[colord] = "-Dcolor-management-colord=true,-Dcolor-management-colord=false,colord" +# Clients support +PACKAGECONFIG[clients] = "-Dsimple-clients=all -Ddemo-clients=true,-Dsimple-clients= -Ddemo-clients=false" +# Virtual remote output with GStreamer on DRM backend +PACKAGECONFIG[remoting] = "-Dremoting=true,-Dremoting=false,gstreamer-1.0" +# Weston with PAM support +PACKAGECONFIG[pam] = "-Dpam=true,-Dpam=false,libpam" + +do_install_append() { + # Weston doesn't need the .la files to load modules, so wipe them + rm -f ${D}/${libdir}/libweston-${WESTON_MAJOR_VERSION}/*.la + + # If X11, ship a desktop file to launch it + if [ "${@bb.utils.filter('DISTRO_FEATURES', 'x11', d)}" ]; then + install -d ${D}${datadir}/applications + install ${WORKDIR}/weston.desktop ${D}${datadir}/applications + + install -d ${D}${datadir}/icons/hicolor/48x48/apps + install ${WORKDIR}/weston.png ${D}${datadir}/icons/hicolor/48x48/apps + fi + + if [ "${@bb.utils.contains('PACKAGECONFIG', 'xwayland', 'yes', 'no', d)}" = "yes" ]; then + install -Dm 644 ${WORKDIR}/xwayland.weston-start ${D}${datadir}/weston-start/xwayland + fi + + if [ "${@bb.utils.contains('PACKAGECONFIG', 'launch', 'yes', 'no', d)}" = "yes" ]; then + chmod u+s ${D}${bindir}/weston-launch + fi +} + +PACKAGES += "${@bb.utils.contains('PACKAGECONFIG', 'xwayland', '${PN}-xwayland', '', d)} \ + libweston-${WESTON_MAJOR_VERSION} ${PN}-examples" + +FILES_${PN} = "${bindir}/weston ${bindir}/weston-terminal ${bindir}/weston-info ${bindir}/weston-launch ${bindir}/wcap-decode ${libexecdir} ${libdir}/${BPN}/*.so ${datadir}" + +FILES_libweston-${WESTON_MAJOR_VERSION} = "${libdir}/lib*${SOLIBS} ${libdir}/libweston-${WESTON_MAJOR_VERSION}/*.so" +SUMMARY_libweston-${WESTON_MAJOR_VERSION} = "Helper library for implementing 'wayland window managers'." + +FILES_${PN}-examples = "${bindir}/*" + +FILES_${PN}-xwayland = "${libdir}/libweston-${WESTON_MAJOR_VERSION}/xwayland.so" +RDEPENDS_${PN}-xwayland += "xserver-xorg-xwayland" + +RDEPENDS_${PN} += "xkeyboard-config" +RRECOMMENDS_${PN} = "weston-init liberation-fonts" +RRECOMMENDS_${PN}-dev += "wayland-protocols" + +USERADD_PACKAGES = "${PN}" +GROUPADD_PARAM_${PN} = "--system weston-launch" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/x11-common/xserver-nodm-init_3.0.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/x11-common/xserver-nodm-init_3.0.bb index a77c5644..385fea5e 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/x11-common/xserver-nodm-init_3.0.bb +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/x11-common/xserver-nodm-init_3.0.bb @@ -17,7 +17,7 @@ S = "${WORKDIR}" # Since we refer to ROOTLESS_X which is normally enabled per-machine PACKAGE_ARCH = "${MACHINE_ARCH}" -inherit update-rc.d systemd distro_features_check +inherit update-rc.d systemd features_check REQUIRED_DISTRO_FEATURES = "x11" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/xinput-calibrator/xinput-calibrator_git.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/xinput-calibrator/xinput-calibrator_git.bb index 9873d3f3..4f831932 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/xinput-calibrator/xinput-calibrator_git.bb +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/xinput-calibrator/xinput-calibrator_git.bb @@ -7,7 +7,7 @@ DEPENDS = "virtual/libx11 libxi libxrandr" PV = "0.7.5+git${SRCPV}" PR = "r6" -inherit autotools pkgconfig distro_features_check +inherit autotools pkgconfig features_check # depends on virtual/libx11 REQUIRED_DISTRO_FEATURES = "x11" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/xorg-app/xauth_1.0.10.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/xorg-app/xauth_1.0.10.bb deleted file mode 100644 index 0e90ffd6..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/xorg-app/xauth_1.0.10.bb +++ /dev/null @@ -1,15 +0,0 @@ -require xorg-app-common.inc -SUMMARY = "X authority utilities" -DESCRIPTION = "X application to edit and display the authorization \ -information used in connecting to the X server." - -LIC_FILES_CHKSUM = "file://COPYING;md5=5ec74dd7ea4d10c4715a7c44f159a40b" - -DEPENDS += "libxau libxext libxmu" -PE = "1" - -SRC_URI[md5sum] = "f3f76cb10f69b571c43893ea6a634aa4" -SRC_URI[sha256sum] = "5afe42ce3cdf4f60520d1658d2b17face45c74050f39af45dccdc95e73fafc4d" - -PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'ipv6', d)}" -PACKAGECONFIG[ipv6] = "--enable-ipv6,--disable-ipv6," diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/xorg-app/xauth_1.1.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/xorg-app/xauth_1.1.bb new file mode 100644 index 00000000..24ad9606 --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/xorg-app/xauth_1.1.bb @@ -0,0 +1,15 @@ +require xorg-app-common.inc +SUMMARY = "X authority utilities" +DESCRIPTION = "X application to edit and display the authorization \ +information used in connecting to the X server." + +LIC_FILES_CHKSUM = "file://COPYING;md5=5ec74dd7ea4d10c4715a7c44f159a40b" + +DEPENDS += "libxau libxext libxmu" +PE = "1" + +SRC_URI[md5sum] = "e50587c1bb832aafd1a19d91a0890a0b" +SRC_URI[sha256sum] = "6d1dd1b79dd185107c5b0fdd22d1d791ad749ad6e288d0cdf80964c4ffa7530c" + +PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'ipv6', d)}" +PACKAGECONFIG[ipv6] = "--enable-ipv6,--disable-ipv6," diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/xorg-app/xdpyinfo_1.3.2.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/xorg-app/xdpyinfo_1.3.2.bb index af04bb6e..2d10b7ac 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/xorg-app/xdpyinfo_1.3.2.bb +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/xorg-app/xdpyinfo_1.3.2.bb @@ -9,7 +9,7 @@ clients and the server, and the different types of screens and visuals \ that are available." LIC_FILES_CHKSUM = "file://COPYING;md5=f3d09e6b9e203a1af489e16c708f4fb3" -DEPENDS += "libxtst libxext libxxf86vm libxxf86dga libxxf86misc libxi libxrender libxinerama libdmx libxau libxcomposite" +DEPENDS += "libxtst libxext libxxf86vm libxi libxrender libxinerama libdmx libxau libxcomposite" PE = "1" SRC_URI += "file://disable-xkb.patch" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/xorg-app/xinput_1.6.2.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/xorg-app/xinput_1.6.2.bb deleted file mode 100644 index 25cd047b..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/xorg-app/xinput_1.6.2.bb +++ /dev/null @@ -1,12 +0,0 @@ -require xorg-app-common.inc - -SUMMARY = "Runtime configuration and test of XInput devices" - -DESCRIPTION = "Xinput is an utility for configuring and testing XInput devices" - -LIC_FILES_CHKSUM = "file://COPYING;md5=881525f89f99cad39c9832bcb72e6fa5" - -DEPENDS += " libxi libxrandr libxinerama" - -SRC_URI[md5sum] = "6a889412eff2e3c1c6bb19146f6fe84c" -SRC_URI[sha256sum] = "3694d29b4180952fbf13c6d4e59541310cbb11eef5bf888ff3d8b7f4e3aee5c4" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/xorg-app/xinput_1.6.3.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/xorg-app/xinput_1.6.3.bb new file mode 100644 index 00000000..ff1f1c91 --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/xorg-app/xinput_1.6.3.bb @@ -0,0 +1,12 @@ +require xorg-app-common.inc + +SUMMARY = "Runtime configuration and test of XInput devices" + +DESCRIPTION = "Xinput is an utility for configuring and testing XInput devices" + +LIC_FILES_CHKSUM = "file://COPYING;md5=881525f89f99cad39c9832bcb72e6fa5" + +DEPENDS += " libxi libxrandr libxinerama" + +SRC_URI[md5sum] = "ac6b7432726008b2f50eba82b0e2dbe4" +SRC_URI[sha256sum] = "35a281dd3b9b22ea85e39869bb7670ba78955d5fec17c6ef7165d61e5aeb66ed" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/xorg-app/xorg-app-common.inc b/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/xorg-app/xorg-app-common.inc index 3529cb26..101b3dff 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/xorg-app/xorg-app-common.inc +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/xorg-app/xorg-app-common.inc @@ -12,6 +12,6 @@ INC_PR = "r8" SRC_URI = "${XORG_MIRROR}/individual/app/${BPN}-${PV}.tar.bz2" -inherit autotools pkgconfig distro_features_check +inherit autotools pkgconfig features_check FILES_${PN} += " ${libdir}/X11/${BPN} ${datadir}/X11/app-defaults/" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/xorg-app/xrandr_1.5.0.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/xorg-app/xrandr_1.5.0.bb deleted file mode 100644 index ea689794..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/xorg-app/xrandr_1.5.0.bb +++ /dev/null @@ -1,15 +0,0 @@ -require xorg-app-common.inc - -SUMMARY = "XRandR: X Resize, Rotate and Reflect extension command" - -DESCRIPTION = "Xrandr is used to set the size, orientation and/or \ -reflection of the outputs for a screen. It can also set the screen \ -size." - -LICENSE = "MIT" -LIC_FILES_CHKSUM = "file://COPYING;md5=fe1608bdb33cf8c62a4438f7d34679b3" -DEPENDS += "libxrandr libxrender" -PE = "1" - -SRC_URI[md5sum] = "ebffac98021b8f1dc71da0c1918e9b57" -SRC_URI[sha256sum] = "c1cfd4e1d4d708c031d60801e527abc9b6d34b85f2ffa2cadd21f75ff38151cd" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/xorg-app/xrandr_1.5.1.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/xorg-app/xrandr_1.5.1.bb new file mode 100644 index 00000000..6583ea23 --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/xorg-app/xrandr_1.5.1.bb @@ -0,0 +1,17 @@ +require xorg-app-common.inc + +SUMMARY = "XRandR: X Resize, Rotate and Reflect extension command" + +DESCRIPTION = "Xrandr is used to set the size, orientation and/or \ +reflection of the outputs for a screen. It can also set the screen \ +size." + +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://COPYING;md5=fe1608bdb33cf8c62a4438f7d34679b3" +DEPENDS += "libxrandr libxrender" +PE = "1" + +SRC_URI = "${XORG_MIRROR}/individual/app/${BPN}-${PV}.tar.xz" + +SRC_URI[md5sum] = "fe40f7a4fd39dd3a02248d3e0b1972e4" +SRC_URI[sha256sum] = "7bc76daf9d72f8aff885efad04ce06b90488a1a169d118dea8a2b661832e8762" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/xorg-app/xset_1.2.4.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/xorg-app/xset_1.2.4.bb index 5748837f..e21120e7 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/xorg-app/xset_1.2.4.bb +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/xorg-app/xset_1.2.4.bb @@ -7,7 +7,7 @@ preference options of the display." LICENSE = "MIT" LIC_FILES_CHKSUM = "file://COPYING;md5=bea81cc9827cdf1af0e12c2b8228cf8d" -DEPENDS += "libxext libxxf86misc libxmu libxau" +DEPENDS += "libxext libxmu libxau" PE = "1" SRC_URI += "file://disable-xkb.patch" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/xorg-app/xwininfo_1.1.4.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/xorg-app/xwininfo_1.1.4.bb deleted file mode 100644 index 1fb90dd2..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/xorg-app/xwininfo_1.1.4.bb +++ /dev/null @@ -1,15 +0,0 @@ -require xorg-app-common.inc - -SUMMARY = "Window information utility for X" - -DESCRIPTION = "Xwininfo is a utility for displaying information about \ -windows. Information may include window position, size, color depth, \ -and a number of other items." - -LIC_FILES_CHKSUM = "file://COPYING;md5=78976cd3115f6faf615accc4e094d90e" -DEPENDS += "libxext libxmu gettext-native" - -PE = "0" - -SRC_URI[md5sum] = "9a505b91ae7160bbdec360968d060c83" -SRC_URI[sha256sum] = "839498aa46b496492a5c65cd42cd2e86e0da88149b0672e90cb91648f8cd5b01" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/xorg-app/xwininfo_1.1.5.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/xorg-app/xwininfo_1.1.5.bb new file mode 100644 index 00000000..ec9f0826 --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/xorg-app/xwininfo_1.1.5.bb @@ -0,0 +1,15 @@ +require xorg-app-common.inc + +SUMMARY = "Window information utility for X" + +DESCRIPTION = "Xwininfo is a utility for displaying information about \ +windows. Information may include window position, size, color depth, \ +and a number of other items." + +LIC_FILES_CHKSUM = "file://COPYING;md5=78976cd3115f6faf615accc4e094d90e" +DEPENDS += "libxext libxmu gettext-native" + +PE = "0" + +SRC_URI[md5sum] = "26d46f7ef0588d3392da3ad5802be420" +SRC_URI[sha256sum] = "7a405441dfc476666c744f5fcd1bc8a75abf8b5b1d85db7b88b370982365080e" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/xorg-driver/xf86-input-libinput_0.28.2.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/xorg-driver/xf86-input-libinput_0.28.2.bb deleted file mode 100644 index 19123e06..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/xorg-driver/xf86-input-libinput_0.28.2.bb +++ /dev/null @@ -1,11 +0,0 @@ -require xorg-driver-input.inc - -SUMMARY = "Generic input driver for the X.Org server based on libinput" -LIC_FILES_CHKSUM = "file://COPYING;md5=5e6b20ea2ef94a998145f0ea3f788ee0" - -DEPENDS += "libinput" - -SRC_URI[md5sum] = "b7548bc1d7e82d189205794ff86307af" -SRC_URI[sha256sum] = "b8b346962c6b62b8069928c29c0db83b6f544863bf2fc6830f324de841de2820" - -FILES_${PN} += "${datadir}/X11/xorg.conf.d" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/xorg-driver/xf86-input-libinput_0.29.0.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/xorg-driver/xf86-input-libinput_0.29.0.bb new file mode 100644 index 00000000..f87083e5 --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/xorg-driver/xf86-input-libinput_0.29.0.bb @@ -0,0 +1,11 @@ +require xorg-driver-input.inc + +SUMMARY = "Generic input driver for the X.Org server based on libinput" +LIC_FILES_CHKSUM = "file://COPYING;md5=5e6b20ea2ef94a998145f0ea3f788ee0" + +DEPENDS += "libinput" + +SRC_URI[md5sum] = "d600e8e2e30747b8ce49ec5294ff0ab6" +SRC_URI[sha256sum] = "c28b56a21754b972db31798e6a4cf4dc9d69208d08f8fe41701a94def5e94bee" + +FILES_${PN} += "${datadir}/X11/xorg.conf.d" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/xorg-driver/xorg-driver-common.inc b/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/xorg-driver/xorg-driver-common.inc index e657c65b..54f04b11 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/xorg-driver/xorg-driver-common.inc +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/xorg-driver/xorg-driver-common.inc @@ -13,7 +13,7 @@ SRC_URI = "${XORG_MIRROR}/individual/driver/${BPN}-${PV}.tar.bz2" FILES_${PN} += " ${libdir}/xorg/modules/drivers/*.so" -inherit autotools pkgconfig distro_features_check +inherit autotools pkgconfig features_check # depends on virtual/xserver REQUIRED_DISTRO_FEATURES = "x11" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/xorg-font/encodings/nocompiler.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/xorg-font/encodings/nocompiler.patch index f330c185..ec7c7d80 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/xorg-font/encodings/nocompiler.patch +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/xorg-font/encodings/nocompiler.patch @@ -1,23 +1,32 @@ +From b08c43a0842076e0a94e88ad6456a9326cd7ffc9 Mon Sep 17 00:00:00 2001 +From: Richard Purdie +Date: Tue, 17 May 2011 23:03:02 +0000 +Subject: [PATCH] Improve handling of 'all' architecture recipes and their + Upstream-Status: Inappropriate [configuration] XORG_DEFAULT_OPTIONS pulls in the following dependency chains: XORG_CWARNFLAGS -> AC_PROG_CC_C99 XORG_STRICT_OPTION -> AC_PROG_CC_C99, XORG_CWARNFLAGS -XORG_MANPAGE_SECTIONS -> AC_CANONICAL_HOST -> Checks host +XORG_MANPAGE_SECTIONS -> AC_CANONICAL_HOST -> Checks host each of which triggers the use of the host compiler. As an "all" architecture package, it shouldn't need a compiler (and doesn't). RP 17/5/2011 -Index: encodings-1.0.4/configure.ac -=================================================================== ---- encodings-1.0.4.orig/configure.ac 2011-05-17 23:36:19.505095876 +0100 -+++ encodings-1.0.4/configure.ac 2011-05-17 23:54:14.935096128 +0100 -@@ -4,12 +4,12 @@ +--- + configure.ac | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +diff --git a/configure.ac b/configure.ac +index 622c27b..5ee84ed 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -3,12 +3,12 @@ AC_INIT([encodings], [1.0.5], + [https://gitlab.freedesktop.org/xorg/font/encodings/issues]) AM_INIT_AUTOMAKE([foreign dist-bzip2]) - AM_MAINTAINER_MODE -# Require xorg-macros: XORG_DEFAULT_OPTIONS m4_ifndef([XORG_MACROS_VERSION], diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/xorg-font/encodings_1.0.4.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/xorg-font/encodings_1.0.4.bb deleted file mode 100644 index 36766f2f..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/xorg-font/encodings_1.0.4.bb +++ /dev/null @@ -1,22 +0,0 @@ -SUMMARY = "The Xorg font encoding files" - -DESCRIPTION = "The encodings that map to specific characters for a \ -number of Xorg and common fonts." - -require xorg-font-common.inc -LICENSE = "PD" -LIC_FILES_CHKSUM = "file://COPYING;md5=9da93f2daf2d5572faa2bfaf0dbd9e76" -PE = "1" -PR = "${INC_PR}.1" - -DEPENDS = "mkfontscale-native mkfontdir-native font-util-native" -RDEPENDS_${PN} = "" - -SRC_URI += "file://nocompiler.patch" - -inherit allarch - -EXTRA_OECONF += "--with-encodingsdir=${datadir}/fonts/X11/encodings" - -SRC_URI[md5sum] = "0f2d6546d514c5cc4ecf78a60657a5c1" -SRC_URI[sha256sum] = "ced6312988a45d23812c2ac708b4595f63fd7a49c4dcd9f66bdcd50d1057d539" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/xorg-font/encodings_1.0.5.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/xorg-font/encodings_1.0.5.bb new file mode 100644 index 00000000..a39609b5 --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/xorg-font/encodings_1.0.5.bb @@ -0,0 +1,21 @@ +SUMMARY = "The Xorg font encoding files" + +DESCRIPTION = "The encodings that map to specific characters for a \ +number of Xorg and common fonts." + +require xorg-font-common.inc +LICENSE = "PD" +LIC_FILES_CHKSUM = "file://COPYING;md5=9da93f2daf2d5572faa2bfaf0dbd9e76" +PE = "1" +PR = "${INC_PR}.1" + +DEPENDS = "mkfontscale-native mkfontdir-native font-util-native" +RDEPENDS_${PN} = "" + +SRC_URI += "file://nocompiler.patch" +SRC_URI[md5sum] = "bbae4f247b88ccde0e85ed6a403da22a" +SRC_URI[sha256sum] = "bd96e16143a044b19e87f217cf6a3763a70c561d1076aad6f6d862ec41774a31" + +inherit allarch + +EXTRA_OECONF += "--with-encodingsdir=${datadir}/fonts/X11/encodings" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/xorg-font/font-util_1.3.1.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/xorg-font/font-util_1.3.1.bb deleted file mode 100644 index 1289c168..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/xorg-font/font-util_1.3.1.bb +++ /dev/null @@ -1,22 +0,0 @@ -SUMMARY = "X.Org font package creation/installation utilities" - -require xorg-font-common.inc - -#Unicode is MIT -LICENSE = "BSD & MIT" -LIC_FILES_CHKSUM = "file://COPYING;md5=5df208ec65eb84ce5bb8d82d8f3b9675 \ - file://ucs2any.c;endline=28;md5=8357dc567fc628bd12696f15b2a33bcb \ - file://bdftruncate.c;endline=26;md5=4f82ffc101a1b165eae9c6998abff937 \ - file://map-ISO8859-1;beginline=9;endline=23;md5=1cecb984063248f29ffe5c46f5c04f34" - -DEPENDS = "encodings util-macros" -DEPENDS_class-native = "util-macros-native" -RDEPENDS_${PN} = "mkfontdir mkfontscale encodings" -RDEPENDS_${PN}_class-native = "" - -BBCLASSEXTEND = "native" - -SRC_URI[md5sum] = "23756dab809f9ec5011bb27fb2c3c7d6" -SRC_URI[sha256sum] = "aa7ebdb0715106dd255082f2310dbaa2cd7e225957c2a77d719720c7cc92b921" - -SYSROOT_DIRS_BLACKLIST_remove = "${datadir}/fonts" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/xorg-font/font-util_1.3.2.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/xorg-font/font-util_1.3.2.bb new file mode 100644 index 00000000..ebe7a603 --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/xorg-font/font-util_1.3.2.bb @@ -0,0 +1,22 @@ +SUMMARY = "X.Org font package creation/installation utilities" + +require xorg-font-common.inc + +#Unicode is MIT +LICENSE = "BSD & MIT" +LIC_FILES_CHKSUM = "file://COPYING;md5=5df208ec65eb84ce5bb8d82d8f3b9675 \ + file://ucs2any.c;endline=28;md5=8357dc567fc628bd12696f15b2a33bcb \ + file://bdftruncate.c;endline=26;md5=4f82ffc101a1b165eae9c6998abff937 \ + file://map-ISO8859-1;beginline=9;endline=23;md5=1cecb984063248f29ffe5c46f5c04f34" + +DEPENDS = "encodings util-macros" +DEPENDS_class-native = "util-macros-native" +RDEPENDS_${PN} = "mkfontdir mkfontscale encodings" +RDEPENDS_${PN}_class-native = "" + +BBCLASSEXTEND = "native" + +SRC_URI[md5sum] = "3d6adb76fdd072db8c8fae41b40855e8" +SRC_URI[sha256sum] = "3ad880444123ac06a7238546fa38a2a6ad7f7e0cc3614de7e103863616522282" + +SYSROOT_DIRS_BLACKLIST_remove = "${datadir}/fonts" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/xorg-font/xorg-font-common.inc b/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/xorg-font/xorg-font-common.inc index cdbebcf7..f18c8aef 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/xorg-font/xorg-font-common.inc +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/xorg-font/xorg-font-common.inc @@ -14,7 +14,7 @@ INC_PR = "r2" SRC_URI = "${XORG_MIRROR}/individual/font/${XORG_PN}-${PV}.tar.bz2" S = "${WORKDIR}/${XORG_PN}-${PV}" -inherit autotools pkgconfig distro_features_check +inherit autotools pkgconfig features_check # The mkfontscale-native requires x11 in DISTRO_FEATURES REQUIRED_DISTRO_FEATURES = "x11" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/xorg-font/xorg-minimal-fonts.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/xorg-font/xorg-minimal-fonts.bb index 9bcd1b2f..1ea08a6c 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/xorg-font/xorg-minimal-fonts.bb +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/xorg-font/xorg-minimal-fonts.bb @@ -13,7 +13,7 @@ SRC_URI = "file://misc" PE = "1" PR = "r2" -inherit allarch distro_features_check +inherit allarch features_check # The font-alias requires x11 in DISTRO_FEATURES REQUIRED_DISTRO_FEATURES = "x11" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/xorg-lib/libice/CVE-2017-2626.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/xorg-lib/libice/CVE-2017-2626.patch deleted file mode 100644 index 20c6dda2..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/xorg-lib/libice/CVE-2017-2626.patch +++ /dev/null @@ -1,149 +0,0 @@ -From ff5e59f32255913bb1cdf51441b98c9107ae165b Mon Sep 17 00:00:00 2001 -From: Benjamin Tissoires -Date: Tue, 4 Apr 2017 19:12:53 +0200 -Subject: Use getentropy() if arc4random_buf() is not available - -This allows to fix CVE-2017-2626 on Linux platforms without pulling in -libbsd. -The libc getentropy() is available since glibc 2.25 but also on OpenBSD. -For Linux, we need at least a v3.17 kernel. If the recommended -arc4random_buf() function is not available, emulate it by first trying -to use getentropy() on a supported glibc and kernel. If the call fails, -fall back to the current (partly vulnerable) code. - -Signed-off-by: Benjamin Tissoires -Reviewed-by: Mark Kettenis -Reviewed-by: Alan Coopersmith -Signed-off-by: Peter Hutterer - -Upstream-Status: Backport[https://cgit.freedesktop.org/xorg/lib/libICE - /commit/?id=ff5e59f32255913bb1cdf51441b98c9107ae165b] - -CVE: CVE-2017-2626 - -Signed-off-by: Changqing Li ---- - configure.ac | 2 +- - src/iceauth.c | 65 ++++++++++++++++++++++++++++++++++++++++++----------------- - 2 files changed, 47 insertions(+), 20 deletions(-) - -diff --git a/configure.ac b/configure.ac -index 458882a..c971ab6 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -38,7 +38,7 @@ AC_DEFINE(ICE_t, 1, [Xtrans transport type]) - - # Checks for library functions. - AC_CHECK_LIB([bsd], [arc4random_buf]) --AC_CHECK_FUNCS([asprintf arc4random_buf]) -+AC_CHECK_FUNCS([asprintf arc4random_buf getentropy]) - - # Allow checking code with lint, sparse, etc. - XORG_WITH_LINT -diff --git a/src/iceauth.c b/src/iceauth.c -index ed31683..de4785b 100644 ---- a/src/iceauth.c -+++ b/src/iceauth.c -@@ -44,31 +44,19 @@ Author: Ralph Mor, X Consortium - - static int was_called_state; - --/* -- * MIT-MAGIC-COOKIE-1 is a sample authentication method implemented by -- * the SI. It is not part of standard ICElib. -- */ -+#ifndef HAVE_ARC4RANDOM_BUF - -- --char * --IceGenerateMagicCookie ( -+static void -+emulate_getrandom_buf ( -+ char *auth, - int len - ) - { -- char *auth; --#ifndef HAVE_ARC4RANDOM_BUF - long ldata[2]; - int seed; - int value; - int i; --#endif - -- if ((auth = malloc (len + 1)) == NULL) -- return (NULL); -- --#ifdef HAVE_ARC4RANDOM_BUF -- arc4random_buf(auth, len); --#else - #ifdef ITIMER_REAL - { - struct timeval now; -@@ -76,13 +64,13 @@ IceGenerateMagicCookie ( - ldata[0] = now.tv_sec; - ldata[1] = now.tv_usec; - } --#else -+#else /* ITIMER_REAL */ - { - long time (); - ldata[0] = time ((long *) 0); - ldata[1] = getpid (); - } --#endif -+#endif /* ITIMER_REAL */ - seed = (ldata[0]) + (ldata[1] << 16); - srand (seed); - for (i = 0; i < len; i++) -@@ -90,7 +78,46 @@ IceGenerateMagicCookie ( - value = rand (); - auth[i] = value & 0xff; - } --#endif -+} -+ -+static void -+arc4random_buf ( -+ char *auth, -+ int len -+) -+{ -+ int ret; -+ -+#if HAVE_GETENTROPY -+ /* weak emulation of arc4random through the entropy libc */ -+ ret = getentropy (auth, len); -+ if (ret == 0) -+ return; -+#endif /* HAVE_GETENTROPY */ -+ -+ emulate_getrandom_buf (auth, len); -+} -+ -+#endif /* !defined(HAVE_ARC4RANDOM_BUF) */ -+ -+/* -+ * MIT-MAGIC-COOKIE-1 is a sample authentication method implemented by -+ * the SI. It is not part of standard ICElib. -+ */ -+ -+ -+char * -+IceGenerateMagicCookie ( -+ int len -+) -+{ -+ char *auth; -+ -+ if ((auth = malloc (len + 1)) == NULL) -+ return (NULL); -+ -+ arc4random_buf (auth, len); -+ - auth[len] = '\0'; - return (auth); - } --- -cgit v1.1 - diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/xorg-lib/libice_1.0.10.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/xorg-lib/libice_1.0.10.bb new file mode 100644 index 00000000..6a6316f3 --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/xorg-lib/libice_1.0.10.bb @@ -0,0 +1,28 @@ +SUMMARY = "ICE: Inter-Client Exchange library" + +DESCRIPTION = "The Inter-Client Exchange (ICE) protocol provides a \ +generic framework for building protocols on top of reliable, byte-stream \ +transport connections. It provides basic mechanisms for setting up and \ +shutting down connections, for performing authentication, for \ +negotiating versions, and for reporting errors. " + +require xorg-lib-common.inc + +LICENSE = "MIT-style" +LIC_FILES_CHKSUM = "file://COPYING;md5=d162b1b3c6fa812da9d804dcf8584a93" + +DEPENDS += "xorgproto xtrans" +PROVIDES = "ice" + +PE = "1" + +XORG_PN = "libICE" + +BBCLASSEXTEND = "native nativesdk" + +SRC_URI[md5sum] = "76d77499ee7120a56566891ca2c0dbcf" +SRC_URI[sha256sum] = "6f86dce12cf4bcaf5c37dddd8b1b64ed2ddf1ef7b218f22b9942595fb747c348" + +PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'ipv6', d)}" +PACKAGECONFIG[arc4] = "ac_cv_lib_bsd_arc4random_buf=yes,ac_cv_lib_bsd_arc4random_buf=no,libbsd" +PACKAGECONFIG[ipv6] = "--enable-ipv6,--disable-ipv6," diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/xorg-lib/libice_1.0.9.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/xorg-lib/libice_1.0.9.bb deleted file mode 100644 index c1b19138..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/xorg-lib/libice_1.0.9.bb +++ /dev/null @@ -1,30 +0,0 @@ -SUMMARY = "ICE: Inter-Client Exchange library" - -DESCRIPTION = "The Inter-Client Exchange (ICE) protocol provides a \ -generic framework for building protocols on top of reliable, byte-stream \ -transport connections. It provides basic mechanisms for setting up and \ -shutting down connections, for performing authentication, for \ -negotiating versions, and for reporting errors. " - -require xorg-lib-common.inc - -LICENSE = "MIT-style" -LIC_FILES_CHKSUM = "file://COPYING;md5=d162b1b3c6fa812da9d804dcf8584a93" - -DEPENDS += "xorgproto xtrans" -PROVIDES = "ice" - -PE = "1" - -XORG_PN = "libICE" - -BBCLASSEXTEND = "native nativesdk" - -SRC_URI[md5sum] = "addfb1e897ca8079531669c7c7711726" -SRC_URI[sha256sum] = "8f7032f2c1c64352b5423f6b48a8ebdc339cc63064af34d66a6c9aa79759e202" - -SRC_URI += "file://CVE-2017-2626.patch" - -PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'ipv6', d)}" -PACKAGECONFIG[arc4] = "ac_cv_lib_bsd_arc4random_buf=yes,ac_cv_lib_bsd_arc4random_buf=no,libbsd" -PACKAGECONFIG[ipv6] = "--enable-ipv6,--disable-ipv6," diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/xorg-lib/libpciaccess/0004-Don-t-include-sys-io.h-on-arm.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/xorg-lib/libpciaccess/0004-Don-t-include-sys-io.h-on-arm.patch deleted file mode 100644 index f5328582..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/xorg-lib/libpciaccess/0004-Don-t-include-sys-io.h-on-arm.patch +++ /dev/null @@ -1,28 +0,0 @@ -From b6df5202306bd71158b482f25ca2e6919645d4dd Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Thu, 4 Jun 2015 20:55:06 -0700 -Subject: [PATCH 4/4] Don't include sys/io.h on arm - -Signed-off-by: Khem Raj ---- -Upstream-Status: Pending - - src/linux_sysfs.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/src/linux_sysfs.c b/src/linux_sysfs.c -index 3f95e53..1e3aad3 100644 ---- a/src/linux_sysfs.c -+++ b/src/linux_sysfs.c -@@ -50,7 +50,7 @@ - #include - #include - --#if defined(__i386__) || defined(__x86_64__) || defined(__arm__) -+#if defined(__i386__) || defined(__x86_64__) - #include - #else - #define inb(x) -1 --- -2.1.4 - diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/xorg-lib/libpciaccess_0.14.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/xorg-lib/libpciaccess_0.14.bb deleted file mode 100644 index d030c31b..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/xorg-lib/libpciaccess_0.14.bb +++ /dev/null @@ -1,20 +0,0 @@ -SUMMARY = "Generic PCI access library for X" - -DESCRIPTION = "libpciaccess provides functionality for X to access the \ -PCI bus and devices in a platform-independent way." - -require xorg-lib-common.inc - -SRC_URI += "\ - file://0004-Don-t-include-sys-io.h-on-arm.patch \ -" - -SRC_URI[md5sum] = "8f436e151d5106a9cfaa71857a066d33" -SRC_URI[sha256sum] = "3df543e12afd41fea8eac817e48cbfde5aed8817b81670a4e9e493bb2f5bf2a4" - -LICENSE = "MIT & MIT-style" -LIC_FILES_CHKSUM = "file://COPYING;md5=277aada5222b9a22fbf3471ff3687068" - -REQUIRED_DISTRO_FEATURES = "" - -BBCLASSEXTEND = "native nativesdk" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/xorg-lib/libpciaccess_0.16.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/xorg-lib/libpciaccess_0.16.bb new file mode 100644 index 00000000..b58cb80d --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/xorg-lib/libpciaccess_0.16.bb @@ -0,0 +1,19 @@ +SUMMARY = "Generic PCI access library for X" + +DESCRIPTION = "libpciaccess provides functionality for X to access the \ +PCI bus and devices in a platform-independent way." + +require xorg-lib-common.inc + +SRC_URI += "\ +" + +SRC_URI[md5sum] = "b34e2cbdd6aa8f9cc3fa613fd401a6d6" +SRC_URI[sha256sum] = "214c9d0d884fdd7375ec8da8dcb91a8d3169f263294c9a90c575bf1938b9f489" + +LICENSE = "MIT & MIT-style" +LIC_FILES_CHKSUM = "file://COPYING;md5=277aada5222b9a22fbf3471ff3687068" + +REQUIRED_DISTRO_FEATURES = "" + +BBCLASSEXTEND = "native nativesdk" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/xorg-lib/libx11-compose-data/0001-Drop-x11-dependencies.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/xorg-lib/libx11-compose-data/0001-Drop-x11-dependencies.patch new file mode 100644 index 00000000..46a53a17 --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/xorg-lib/libx11-compose-data/0001-Drop-x11-dependencies.patch @@ -0,0 +1,86 @@ +From e1f9b0b531c6ddb11a85c0664051e2e4efc589fb Mon Sep 17 00:00:00 2001 +From: Ming Liu +Date: Sun, 5 May 2019 11:55:14 +0200 +Subject: [PATCH] Drop x11 dependencies + +Upstream-Status: Inappropriate [OE-Specific] + +Signed-off-by: Ming Liu +--- + configure.ac | 44 -------------------------------------------- + 1 file changed, 44 deletions(-) + +diff --git a/configure.ac b/configure.ac +index a5fd706..b42488c 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -76,27 +76,8 @@ fi + AC_SUBST([EXEEXT_FOR_BUILD]) + + # Checks for pkg-config packages +- +-# Always required +-X11_REQUIRES='xproto >= 7.0.17 xextproto xtrans xcb >= 1.11.1' +-X11_EXTRA_DEPS="xcb >= 1.11.1" +- + PKG_PROG_PKG_CONFIG() + +-AC_SUBST(X11_EXTRA_DEPS) +- +-# Issue an error if xtrans.m4 was not found and XTRANS_CONNECTION_FLAGS macro +-# was not expanded, since libX11 with no transport types is rather useless. +-# +-# If you're seeing an error here, be sure you installed the lib/xtrans module +-# first and if it's not in the default location, that you set the ACLOCAL +-# environment variable to find it, such as: +-# ACLOCAL="aclocal -I ${PREFIX}/share/aclocal" +-m4_pattern_forbid([^XTRANS_CONNECTION_FLAGS$]) +- +-# Transport selection macro from xtrans.m4 +-XTRANS_CONNECTION_FLAGS +- + # Check for dlopen + AC_MSG_CHECKING([if run-time linking is supported]) + AC_SEARCH_LIBS(dlopen,[dl svld]) +@@ -237,30 +218,6 @@ AC_SUBST(XTHREAD_CFLAGS) + + AC_CHECK_FUNC(poll, [AC_DEFINE(USE_POLL, 1, [poll() function is available])], ) + +-# +-# Find keysymdef.h +-# +-AC_MSG_CHECKING([keysym definitions]) +-AC_ARG_WITH([keysymdefdir], +- [AC_HELP_STRING([--with-keysymdefdir=DIR], [The location of keysymdef.h (defaults to xproto include dir)])], +- [KEYSYMDEFDIR=$withval], +- [KEYSYMDEFDIR=`$PKG_CONFIG --variable=includedir xproto`/X11]) +- +-if test ! -d "$KEYSYMDEFDIR"; then +- AC_MSG_ERROR([$KEYSYMDEFDIR doesn't exist or isn't a directory]) +-fi +- +-FILES="keysymdef.h XF86keysym.h Sunkeysym.h DECkeysym.h HPkeysym.h" +-for i in $FILES; do +- if test -f "$KEYSYMDEFDIR/$i"; then +- KEYSYMDEFS="$KEYSYMDEFS $KEYSYMDEFDIR/$i" +- elif test "x$i" = "xkeysymdef.h"; then +- AC_MSG_ERROR([Cannot find keysymdef.h]) +- fi +-done +-AC_MSG_RESULT([$KEYSYMDEFS]) +-AC_SUBST(KEYSYMDEFS) +- + AC_ARG_ENABLE(xcms, + AS_HELP_STRING([--disable-xcms], + [Disable Xlib support for CMS *EXPERIMENTAL*]), +@@ -340,7 +297,6 @@ X11_LIBDIR="${libdir}/X11" + AX_DEFINE_DIR(X11_LIBDIR, X11_LIBDIR, [Location of libX11 library data]) + AC_SUBST(X11_LIBDIR) + +-PKG_CHECK_MODULES(X11, [$X11_REQUIRES]) + X11_CFLAGS="$X11_CFLAGS $XTHREAD_CFLAGS" + + # +-- +2.7.4 + diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/xorg-lib/libx11-compose-data_1.6.8.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/xorg-lib/libx11-compose-data_1.6.8.bb new file mode 100644 index 00000000..cabb84e6 --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/xorg-lib/libx11-compose-data_1.6.8.bb @@ -0,0 +1,35 @@ +SUMMARY = "Xlib: Compose data files for libx11" +DESCRIPTION = "This package provides the compose data files for libx11." + +python () { + if bb.utils.contains('DISTRO_FEATURES', 'x11', True, False, d): + raise bb.parse.SkipRecipe("libx11-compose-data is incompatible with x11 distro feature, use libx11 instead.") +} + +require xorg-lib-common.inc + +LICENSE = "MIT & MIT-style & BSD" +LIC_FILES_CHKSUM = "file://COPYING;md5=172255dee66bb0151435b2d5d709fcf7" + +SRC_URI[md5sum] = "c5fa5a86a20e3591bed6c046498d4b8f" +SRC_URI[sha256sum] = "b289a845c189e251e0e884cc0f9269bbe97c238df3741e854ec4c17c21e473d5" + +SRC_URI += "file://0001-Drop-x11-dependencies.patch" + +XORG_PN = "libX11" + +EXTRA_OECONF += "--disable-xkb" + +PACKAGES = "${PN}" + +FILES_${PN} = "${datadir}/X11/locale ${libdir}/X11/locale" + +do_compile() { + oe_runmake -C nls +} + +do_install() { + oe_runmake DESTDIR=${D} -C nls install +} + +REQUIRED_DISTRO_FEATURES = "" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/xorg-lib/libx11-diet_1.6.7.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/xorg-lib/libx11-diet_1.6.7.bb deleted file mode 100644 index 9c773a09..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/xorg-lib/libx11-diet_1.6.7.bb +++ /dev/null @@ -1,16 +0,0 @@ -require libx11.inc - -DESCRIPTION += " Support for XCMS and XLOCALE is disabled in \ -this version." - -SRC_URI += "file://X18NCMSstubs.patch \ - file://fix-disable-xlocale.patch \ - file://fix-utf8-wrong-define.patch \ - " - -RPROVIDES_${PN}-dev = "libx11-dev" -RPROVIDES_${PN}-locale = "libx11-locale" - -EXTRA_OECONF += "--disable-xlocale" - -PACKAGECONFIG ??= "" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/xorg-lib/libx11.inc b/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/xorg-lib/libx11.inc deleted file mode 100644 index ea2ebfb8..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/xorg-lib/libx11.inc +++ /dev/null @@ -1,38 +0,0 @@ -SUMMARY = "Xlib: C Language X Interface library" - -DESCRIPTION = "This package provides a client interface to the X Window \ -System, otherwise known as 'Xlib'. It provides a complete API for the \ -basic functions of the window system." - -require xorg-lib-common.inc - -FILESEXTRAPATHS =. "${FILE_DIRNAME}/libx11:" - -PE = "1" - -SRC_URI[md5sum] = "034fdd6cc5393974d88aec6f5bc96162" -SRC_URI[sha256sum] = "910e9e30efba4ad3672ca277741c2728aebffa7bc526f04dcfa74df2e52a1348" - -PROVIDES = "virtual/libx11" - -XORG_PN = "libX11" -LICENSE = "MIT & MIT-style & BSD" -LIC_FILES_CHKSUM = "file://COPYING;md5=172255dee66bb0151435b2d5d709fcf7" - -DEPENDS += "xorgproto xtrans libxcb" -DEPENDS += "xorgproto-native" - -EXTRA_OECONF += "--with-keysymdefdir=${STAGING_INCDIR}/X11/ --disable-xf86bigfont" -EXTRA_OEMAKE += 'CWARNFLAGS=""' - -PACKAGECONFIG ??= "xcms" -PACKAGECONFIG[xcms] = "--enable-xcms,--disable-xcms" - -# src/util/makekeys is built natively but needs -D_GNU_SOURCE defined. -CPPFLAGS_FOR_BUILD += "-D_GNU_SOURCE" - -PACKAGES =+ "${PN}-xcb" - -FILES_${PN} += "${datadir}/X11/XKeysymDB ${datadir}/X11/XErrorDB ${datadir}/X11/Xcms.txt" -FILES_${PN}-xcb += "${libdir}/libX11-xcb.so.*" -FILES_${PN}-locale += "${datadir}/X11/locale ${libdir}/X11/locale" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/xorg-lib/libx11/X18NCMSstubs.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/xorg-lib/libx11/X18NCMSstubs.patch deleted file mode 100644 index c1172147..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/xorg-lib/libx11/X18NCMSstubs.patch +++ /dev/null @@ -1,536 +0,0 @@ -From 62005ad019d6afb81da100b3113292a16472d241 Mon Sep 17 00:00:00 2001 -From: Changqing Li -Date: Mon, 10 Sep 2018 09:08:27 +0800 -Subject: [PATCH] Stub out x18n - -Update patch to version 1.6.6 -Signed-off-by: Changqing Li -Upstream-Status: Inappropriate [configuration] ---- - src/Makefile.am | 5 +- - src/X18NCMSstubs.c | 426 +++++++++++++++++++++++++++++++++++++++++++++++++++++ - src/imConv.c | 5 +- - src/locking.c | 4 + - 4 files changed, 438 insertions(+), 2 deletions(-) - create mode 100644 src/X18NCMSstubs.c - -diff --git a/src/Makefile.am b/src/Makefile.am -index f8c476d..cdbcbbd 100644 ---- a/src/Makefile.am -+++ b/src/Makefile.am -@@ -336,13 +336,16 @@ if THRSTUBS - libX11_la_SOURCES+=UIThrStubs.c - endif - -+libX11_la_SOURCES+=X18NCMSstubs.c -+ - x11datadir = @X11_DATADIR@ - x11data_DATA = XErrorDB - - EXTRA_DIST = \ - $(x11data_DATA) \ - os2Stubs.c \ -- UIThrStubs.c -+ UIThrStubs.c \ -+ X18NCMSstubs.c - - libX11_xcb_la_SOURCES = x11_xcb.c Xxcbint.h - libX11_xcb_la_LDFLAGS = -version-number 1:0:0 -no-undefined -diff --git a/src/X18NCMSstubs.c b/src/X18NCMSstubs.c -new file mode 100644 -index 0000000..429cb31 ---- /dev/null -+++ b/src/X18NCMSstubs.c -@@ -0,0 +1,426 @@ -+ /* - Provides stubs and dummy funcs needed when Xcms and XLocale stuff removed -+ * -+ * Copyright © 2003 Matthew Allum -+ * -+ * Permission to use, copy, modify, distribute, and sell this software and its -+ * documentation for any purpose is hereby granted without fee, provided that -+ * the above copyright notice appear in all copies and that both that -+ * copyright notice and this permission notice appear in supporting -+ * documentation, and that the name of Matthew Allum not be used in -+ * advertising or publicity pertaining to distribution of the software without -+ * specific, written prior permission. Keith Packard and Compaq makes no -+ * representations about the suitability of this software for any purpose. It -+ * is provided "as is" without express or implied warranty. -+ * -+ * MATTHEW ALLUM DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS -+ * SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, -+ * IN NO EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR -+ * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, -+ * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER -+ * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR -+ * PERFORMANCE OF THIS SOFTWARE. -+ */ -+ -+#include -+#include "Xlibint.h" -+#include "Xlcint.h" -+#include -+#include -+#ifdef WIN32 -+#undef close -+#endif -+#include -+#include "XlcPubI.h" -+ -+#include "Xcmsint.h" /* for XcmsCCC type */ -+#include "XlcPubI.h" /* for XLCd type */ -+#include "config.h" -+ -+#if ! XLOCALE -+ -+Bool -+XSupportsLocale() -+{ -+ return False; -+} -+ -+char * -+XSetLocaleModifiers( -+ const char *modifiers) -+{ -+ return NULL; -+} -+ -+XLCd -+_XOpenLC( -+ char *name) -+{ -+ return NULL; -+} -+ -+XLCd -+_XlcCurrentLC() -+{ -+ return NULL; -+} -+ -+void -+_XlcVaToArgList( -+ va_list var, -+ int count, -+ XlcArgList *args_ret) -+{ -+ return; -+} -+ -+void -+_XlcCountVaList( -+ va_list var, -+ int *count_ret) -+{ -+ return; -+} -+ -+void -+_XCloseLC( -+ XLCd lcd) -+{ -+ return; -+} -+ -+int -+_XlcConvert( -+ XlcConv conv, -+ XPointer *from, -+ int *from_left, -+ XPointer *to, -+ int *to_left, -+ XPointer *args, -+ int num_args) -+{ -+ return 0; -+} -+ -+/* XIM Stubs */ -+ -+XPointer -+_XimGetLocaleCode ( _Xconst char* encoding_name ) -+{ -+ return NULL; -+} -+ -+int -+_XimGetCharCode ( -+ XPointer ucs_conv, -+ KeySym keysym, -+ unsigned char* buf, -+ int nbytes) -+{ -+ return 0; -+} -+ -+/* Xrm Stubs */ -+ -+XrmMethods -+_XrmInitParseInfo( -+ XPointer *state) -+{ -+ return (XrmMethods) NULL; -+} -+ -+/* Xwc Stubs */ -+ -+int -+XwcTextExtents( -+ XFontSet font_set, -+ _Xconst wchar_t *text, -+ int text_len, -+ XRectangle *overall_ink_extents, -+ XRectangle *overall_logical_extents) -+{ -+ return 0; -+} -+ -+void -+XwcDrawString(Display *display, -+ Drawable d, -+ XFontSet font_set, -+ GC gc, -+ int x, int y, -+ _Xconst wchar_t *string, -+ int num_wchars) -+{ -+ ; -+} -+ -+void -+XwcDrawText( -+ Display *dpy, -+ Drawable d, -+ GC gc, -+ int x, -+ int y, -+ XwcTextItem *text_items, -+ int nitems) -+{ -+ ; -+} -+ -+void -+XwcDrawImageString( -+ Display *dpy, -+ Drawable d, -+ XFontSet font_set, -+ GC gc, -+ int x, -+ int y, -+ _Xconst wchar_t *text, -+ int text_len) -+{ -+ ; -+} -+ -+int -+XwcTextEscapement( -+ XFontSet font_set, -+ _Xconst wchar_t *text, -+ int text_len) -+{ -+ return 0; -+} -+ -+Status -+XwcTextPerCharExtents( -+ XFontSet font_set, -+ _Xconst wchar_t *text, -+ int text_len, -+ XRectangle *ink_extents_buffer, -+ XRectangle *logical_extents_buffer, -+ int buffer_size, -+ int *num_chars, -+ XRectangle *max_ink_extents, -+ XRectangle *max_logical_extents) -+{ -+ return(XcmsFailure); -+} -+ -+int -+XwcTextPropertyToTextList( -+ Display *dpy, -+ const XTextProperty *text_prop, -+ wchar_t ***list_ret, -+ int *count_ret) -+{ -+ return 0; -+} -+ -+int -+XwcTextListToTextProperty( -+ Display *dpy, -+ wchar_t **list, -+ int count, -+ XICCEncodingStyle style, -+ XTextProperty *text_prop) -+{ -+ return 0; -+} -+ -+void -+XwcFreeStringList(wchar_t **list) -+{ -+ return; -+} -+ -+ -+void XmbSetWMProperties ( /* Actually from mbWMProps.c */ -+ Display *dpy, -+ Window w, -+ _Xconst char *windowName, -+ _Xconst char *iconName, -+ char **argv, -+ int argc, -+ XSizeHints *sizeHints, -+ XWMHints *wmHints, -+ XClassHint *classHints) -+{ -+ return; -+} -+ -+int -+XmbTextPropertyToTextList( -+ Display *dpy, -+ const XTextProperty *text_prop, -+ char ***list_ret, -+ int *count_ret) -+{ -+ return XLocaleNotSupported; -+} -+ -+int -+XmbTextListToTextProperty( -+ Display *dpy, -+ char **list, -+ int count, -+ XICCEncodingStyle style, -+ XTextProperty *text_prop) -+{ -+ return XLocaleNotSupported; -+} -+ -+int -+XmbTextExtents( -+ XFontSet font_set, -+ _Xconst char *text, -+ int text_len, -+ XRectangle *overall_ink_extents, -+ XRectangle *overall_logical_extents) -+{ -+ return 0; -+} -+ -+void -+XmbDrawText( -+ Display *dpy, -+ Drawable d, -+ GC gc, -+ int x, -+ int y, -+ XmbTextItem *text_items, -+ int nitems) -+{ -+ ; -+} -+ -+void -+XmbDrawString( -+ Display *dpy, -+ Drawable d, -+ XFontSet font_set, -+ GC gc, -+ int x, -+ int y, -+ _Xconst char *text, -+ int text_len) -+{ -+ ; -+} -+ -+void -+XmbDrawImageString( -+ Display *dpy, -+ Drawable d, -+ XFontSet font_set, -+ GC gc, -+ int x, -+ int y, -+ _Xconst char *text, -+ int text_len) -+{ -+ ; -+} -+ -+int -+XmbTextEscapement( -+ XFontSet font_set, -+ _Xconst char *text, -+ int text_len) -+{ -+ return 0; -+} -+ -+Status -+XmbTextPerCharExtents( -+ XFontSet font_set, -+ _Xconst char *text, -+ int text_len, -+ XRectangle *ink_extents_buffer, -+ XRectangle *logical_extents_buffer, -+ int buffer_size, -+ int *num_chars, -+ XRectangle *max_ink_extents, -+ XRectangle *max_logical_extents) -+{ -+ return 0; -+} -+ -+unsigned int -+KeySymToUcs4(KeySym keysym) -+{ -+ return 0; -+} -+ -+#endif -+ -+#if ! XCMS -+ -+XcmsCCC -+XcmsCCCOfColormap(dpy, cmap) -+ Display *dpy; -+ Colormap cmap; -+{ -+ return NULL; -+} -+ -+Status -+_XcmsResolveColorString ( -+ XcmsCCC ccc, -+ const char **color_string, -+ XcmsColor *pColor_exact_return, -+ XcmsColorFormat result_format) -+{ -+ return(XcmsFailure); -+} -+ -+void -+_XcmsUnresolveColor( -+ XcmsCCC ccc, -+ XcmsColor *pColor) -+{ -+ return; -+} -+ -+void -+_XUnresolveColor( -+ XcmsCCC ccc, -+ XColor *pXColor) -+{ -+ return; -+} -+ -+XcmsCmapRec * -+_XcmsAddCmapRec(dpy, cmap, windowID, visual) -+ Display *dpy; -+ Colormap cmap; -+ Window windowID; -+ Visual *visual; -+{ -+ return NULL; -+} -+ -+void -+_XcmsRGB_to_XColor( -+ XcmsColor *pColors, -+ XColor *pXColors, -+ unsigned int nColors) -+{ -+ return; -+} -+ -+XcmsCmapRec * -+_XcmsCopyCmapRecAndFree( -+ Display *dpy, -+ Colormap src_cmap, -+ Colormap copy_cmap) -+{ -+ return NULL; -+} -+ -+void -+_XcmsDeleteCmapRec( -+ Display *dpy, -+ Colormap cmap) -+{ -+ return; -+} -+ -+#endif -diff --git a/src/imConv.c b/src/imConv.c -index c3c1974..04ecc81 100644 ---- a/src/imConv.c -+++ b/src/imConv.c -@@ -80,6 +80,7 @@ static const struct SubstRec SubstTable[] = { - * from UCS char to specified charset char. - * This converter is needed for _XimGetCharCode subroutine. - */ -+#ifdef XLOCALE - XPointer - _XimGetLocaleCode ( - _Xconst char* encoding_name) -@@ -93,7 +94,7 @@ _XimGetLocaleCode ( - } - return cvt; - } -- -+#endif - /* - * Returns the locale dependent representation of a keysym. - * The locale's encoding is passed in form of pointer to UCS convertor. -@@ -105,6 +105,7 @@ _XimGetLocaleCode ( - * locale - */ - /*ARGSUSED*/ -+#ifdef XLOCALE - int - _XimGetCharCode ( - XPointer ucs_conv, -@@ -133,6 +134,7 @@ _XimGetCharCode ( - buf[count]= '\0'; - return count; - } -+#endif - - #ifdef XKB - static int lookup_string( -diff --git a/src/locking.c b/src/locking.c -index 9f4fe06..e6967ee 100644 ---- a/src/locking.c -+++ b/src/locking.c -@@ -65,7 +65,9 @@ in this Software without prior written authorization from The Open Group. - #define NUM_FREE_CVLS 4 - - /* in lcWrap.c */ -+#ifdef XLOCALE - extern LockInfoPtr _Xi18n_lock; -+#endif - - #ifdef WIN32 - static DWORD _X_TlsIndex = (DWORD)-1; -@@ -597,9 +599,11 @@ Status XInitThreads(void) - _Xglobal_lock = &global_lock; - xmutex_init(_Xglobal_lock->lock); - xmutex_set_name(_Xglobal_lock->lock, "Xlib global"); -+#ifdef XLOCALE - _Xi18n_lock = &i18n_lock; - xmutex_init(_Xi18n_lock->lock); - xmutex_set_name(_Xi18n_lock->lock, "Xlib i18n"); -+#endif - _XLockMutex_fn = _XLockMutex; - _XUnlockMutex_fn = _XUnlockMutex; - _XCreateMutex_fn = _XCreateMutex; --- -2.7.4 - diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/xorg-lib/libx11/fix-disable-xlocale.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/xorg-lib/libx11/fix-disable-xlocale.patch deleted file mode 100644 index 09cf74ff..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/xorg-lib/libx11/fix-disable-xlocale.patch +++ /dev/null @@ -1,33 +0,0 @@ -From 5c1693028ef12ab767d7cdbc349c27efa1ada87a Mon Sep 17 00:00:00 2001 -From: Changqing Li -Date: Mon, 10 Sep 2018 09:13:38 +0800 -Subject: [PATCH] Fix build when xlocale disabled - -Signed-off-by: Xiaofeng Yan - -Update patch to version 1.6.6 -Signed-off-by: Changqing Li -Upstream-Status: Pending ---- - src/Font.c | 4 ++++ - 1 file changed, 4 insertions(+) - -diff --git a/src/Font.c b/src/Font.c -index a73f9b1..8f4d210 100644 ---- a/src/Font.c -+++ b/src/Font.c -@@ -675,7 +675,11 @@ int _XF86LoadQueryLocaleFont( - } - if (l - 2 - (p - charset) < 0) - return 0; -+#ifdef XLOCALE - if (_XlcNCompareISOLatin1(name + l - 2 - (p - charset), charset, p - charset)) -+#else -+ if (strncasecmp(name + l - 2 - (p - charset), charset, p - charset)) -+#endif - return 0; - if (strlen(p + 1) + l - 1 >= sizeof(buf) - 1) - return 0; --- -2.7.4 - diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/xorg-lib/libx11/fix-utf8-wrong-define.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/xorg-lib/libx11/fix-utf8-wrong-define.patch deleted file mode 100644 index 0b57e0b0..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/xorg-lib/libx11/fix-utf8-wrong-define.patch +++ /dev/null @@ -1,31 +0,0 @@ -From 046703373055c7029c19d171e415ff3caaa87372 Mon Sep 17 00:00:00 2001 -From: Changqing Li -Date: Mon, 10 Sep 2018 09:16:33 +0800 -Subject: [PATCH] Disable unicode - -Signed-off-by: Xiaofeng Yan - -Update patch to version 1.6.6 - -Signed-off-by: Changqing Li -Upstream-Status: Pending ---- - include/X11/Xlib.h | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/include/X11/Xlib.h b/include/X11/Xlib.h -index 84403f7..56be654 100644 ---- a/include/X11/Xlib.h -+++ b/include/X11/Xlib.h -@@ -67,7 +67,7 @@ _Xmblen( - - /* API mentioning "UTF8" or "utf8" is an XFree86 extension, introduced in - November 2000. Its presence is indicated through the following macro. */ --#define X_HAVE_UTF8_STRING 1 -+#undef X_HAVE_UTF8_STRING - - /* The Xlib structs are full of implicit padding to properly align members. - We can't clean that up without breaking ABI, so tell clang not to bother --- -2.7.4 - diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/xorg-lib/libx11_1.6.7.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/xorg-lib/libx11_1.6.7.bb deleted file mode 100644 index 6141f571..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/xorg-lib/libx11_1.6.7.bb +++ /dev/null @@ -1,13 +0,0 @@ -require libx11.inc - -SRC_URI += "file://disable_tests.patch \ - file://Fix-hanging-issue-in-_XReply.patch \ - " - -inherit gettext - -do_configure_append () { - sed -i -e "/X11_CFLAGS/d" ${B}/src/util/Makefile -} - -BBCLASSEXTEND = "native nativesdk" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/xorg-lib/libx11_1.6.9.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/xorg-lib/libx11_1.6.9.bb new file mode 100644 index 00000000..8c2a57c6 --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/xorg-lib/libx11_1.6.9.bb @@ -0,0 +1,45 @@ +SUMMARY = "Xlib: C Language X Interface library" + +DESCRIPTION = "This package provides a client interface to the X Window \ +System, otherwise known as 'Xlib'. It provides a complete API for the \ +basic functions of the window system." + +require xorg-lib-common.inc + +FILESEXTRAPATHS =. "${FILE_DIRNAME}/libx11:" + +PE = "1" + +SRC_URI += "file://Fix-hanging-issue-in-_XReply.patch \ + file://disable_tests.patch" + +SRC_URI[md5sum] = "55adbfb6d4370ecac5e70598c4e7eed2" +SRC_URI[sha256sum] = "9cc7e8d000d6193fa5af580d50d689380b8287052270f5bb26a5fb6b58b2bed1" + +PROVIDES = "virtual/libx11" + +XORG_PN = "libX11" +LICENSE = "MIT & MIT-style & BSD" +LIC_FILES_CHKSUM = "file://COPYING;md5=172255dee66bb0151435b2d5d709fcf7" + +DEPENDS += "xorgproto xtrans libxcb" +DEPENDS += "xorgproto-native" + +EXTRA_OECONF += "--with-keysymdefdir=${STAGING_INCDIR}/X11/ --disable-xf86bigfont" +EXTRA_OEMAKE += 'CWARNFLAGS=""' + +PACKAGECONFIG ??= "xcms" +PACKAGECONFIG[xcms] = "--enable-xcms,--disable-xcms" + +# src/util/makekeys is built natively but needs -D_GNU_SOURCE defined. +CPPFLAGS_FOR_BUILD += "-D_GNU_SOURCE" + +PACKAGES =+ "${PN}-xcb" + +inherit gettext + +FILES_${PN} += "${datadir}/X11/XKeysymDB ${datadir}/X11/XErrorDB ${datadir}/X11/Xcms.txt" +FILES_${PN}-xcb += "${libdir}/libX11-xcb.so.*" +FILES_${PN}-locale += "${datadir}/X11/locale ${libdir}/X11/locale" + +BBCLASSEXTEND = "native nativesdk" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/xorg-lib/libxcb_1.13.1.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/xorg-lib/libxcb_1.13.1.bb index b0afc01d..9befc51b 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/xorg-lib/libxcb_1.13.1.bb +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/xorg-lib/libxcb_1.13.1.bb @@ -25,7 +25,7 @@ PACKAGES_DYNAMIC = "^libxcb-.*" FILES_${PN} = "${libdir}/libxcb.so.*" -inherit autotools pkgconfig distro_features_check +inherit autotools pkgconfig features_check # The libxau and others requires x11 in DISTRO_FEATURES REQUIRED_DISTRO_FEATURES = "x11" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/xorg-lib/libxfont2_2.0.3.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/xorg-lib/libxfont2_2.0.3.bb deleted file mode 100644 index 6994d79e..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/xorg-lib/libxfont2_2.0.3.bb +++ /dev/null @@ -1,24 +0,0 @@ -SUMMARY = "XFont2: X Font rasterisation library" - -DESCRIPTION = "libXfont2 provides various services for X servers, most \ -notably font selection and rasterisation (through external libraries \ -such as freetype)." - -require xorg-lib-common.inc - -LICENSE = "MIT & MIT-style & BSD" -LIC_FILES_CHKSUM = "file://COPYING;md5=a46c8040f2f737bcd0c435feb2ab1c2c" - -DEPENDS += "freetype xtrans xorgproto libfontenc zlib" - -XORG_PN = "libXfont2" - -BBCLASSEXTEND = "native" - -SRC_URI[md5sum] = "b7ca87dfafeb5205b28a1e91ac3efe85" -SRC_URI[sha256sum] = "0e8ab7fd737ccdfe87e1f02b55f221f0bd4503a1c5f28be4ed6a54586bac9c4e" - -PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'ipv6', d)}" -PACKAGECONFIG[ipv6] = "--enable-ipv6,--disable-ipv6," - -CVE_PRODUCT = "libxfont libxfont2" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/xorg-lib/libxfont2_2.0.4.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/xorg-lib/libxfont2_2.0.4.bb new file mode 100644 index 00000000..1c9cc0a2 --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/xorg-lib/libxfont2_2.0.4.bb @@ -0,0 +1,24 @@ +SUMMARY = "XFont2: X Font rasterisation library" + +DESCRIPTION = "libXfont2 provides various services for X servers, most \ +notably font selection and rasterisation (through external libraries \ +such as freetype)." + +require xorg-lib-common.inc + +LICENSE = "MIT & MIT-style & BSD" +LIC_FILES_CHKSUM = "file://COPYING;md5=a46c8040f2f737bcd0c435feb2ab1c2c" + +DEPENDS += "freetype xtrans xorgproto libfontenc zlib" + +XORG_PN = "libXfont2" + +BBCLASSEXTEND = "native" + +SRC_URI[md5sum] = "00516bed7ec1453d56974560379fff2f" +SRC_URI[sha256sum] = "6d151b3368e5035efede4b6264c0fdc6662c1c99dbc2de425e3480cababc69e6" + +PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'ipv6', d)}" +PACKAGECONFIG[ipv6] = "--enable-ipv6,--disable-ipv6," + +CVE_PRODUCT = "libxfont libxfont2" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/xorg-lib/libxi_1.7.10.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/xorg-lib/libxi_1.7.10.bb new file mode 100644 index 00000000..5a08e073 --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/xorg-lib/libxi_1.7.10.bb @@ -0,0 +1,23 @@ +require xorg-lib-common.inc + +SUMMARY = "XI: X Input extension library" + +DESCRIPTION = "libxi is an extension to the X11 protocol to support \ +input devices other than the core X keyboard and pointer. It allows \ +client programs to select input from these devices independently from \ +each other and independently from the core devices." + +LICENSE = "MIT & MIT-style" +LIC_FILES_CHKSUM = "file://COPYING;md5=17b064789fab936a1c58c4e13d965b0f \ + file://src/XIGetDevFocus.c;endline=23;md5=cdfb0d435a33ec57ea0d1e8e395b729f" + +DEPENDS += "libxext xorgproto libxfixes" + +PE = "1" + +XORG_PN = "libXi" + +SRC_URI[md5sum] = "62c4af0839072024b4b1c8cbe84216c7" +SRC_URI[sha256sum] = "36a30d8f6383a72e7ce060298b4b181fd298bc3a135c8e201b7ca847f5f81061" + +BBCLASSEXTEND = "native nativesdk" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/xorg-lib/libxi_1.7.9.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/xorg-lib/libxi_1.7.9.bb deleted file mode 100644 index ab49cdba..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/xorg-lib/libxi_1.7.9.bb +++ /dev/null @@ -1,24 +0,0 @@ -require xorg-lib-common.inc - -SUMMARY = "XI: X Input extension library" - -DESCRIPTION = "libxi is an extension to the X11 protocol to support \ -input devices other than the core X keyboard and pointer. It allows \ -client programs to select input from these devices independently from \ -each other and independently from the core devices." - -LICENSE = "MIT & MIT-style" -LIC_FILES_CHKSUM = "file://COPYING;md5=17b064789fab936a1c58c4e13d965b0f \ - file://src/XIGetDevFocus.c;endline=23;md5=cdfb0d435a33ec57ea0d1e8e395b729f" - -DEPENDS += "libxext xorgproto libxfixes" - -PE = "1" - -XORG_PN = "libXi" - -SRC_URI[md5sum] = "1f0f2719c020655a60aee334ddd26d67" -SRC_URI[sha256sum] = "c2e6b8ff84f9448386c1b5510a5cf5a16d788f76db018194dacdc200180faf45" - -BBCLASSEXTEND = "native nativesdk" - diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/xorg-lib/libxkbcommon_0.8.4.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/xorg-lib/libxkbcommon_0.8.4.bb index 8fcae12c..0608fd5a 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/xorg-lib/libxkbcommon_0.8.4.bb +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/xorg-lib/libxkbcommon_0.8.4.bb @@ -20,3 +20,7 @@ EXTRA_OECONF = "--disable-docs" PACKAGECONFIG ?= "${@bb.utils.filter('DISTRO_FEATURES', 'x11', d)}" PACKAGECONFIG[x11] = "--enable-x11,--disable-x11,libxcb xkeyboard-config," + +# Fix a following runtime error: +# xkbcommon: ERROR: couldn't find a Compose file for locale "C" +RDEPENDS_${PN} = "${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'libx11-locale', 'libx11-compose-data', d)}" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/xorg-lib/libxpm_3.5.12.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/xorg-lib/libxpm_3.5.12.bb index 57b202ca..64d829b3 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/xorg-lib/libxpm_3.5.12.bb +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/xorg-lib/libxpm_3.5.12.bb @@ -10,7 +10,7 @@ pixmap format, which is commonly used in legacy X applications. XPM is \ an extension of the monochrome XBM bitmap specificied in the X \ protocol." -LICENSE = "BSD" +LICENSE = "MIT" LIC_FILES_CHKSUM = "file://COPYING;md5=51f4270b012ecd4ab1a164f5f4ed6cf7" DEPENDS += "libxext libsm libxt gettext-native" PE = "1" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/xorg-lib/libxt/0001-libXt-util-don-t-link-makestrs-with-target-cflags.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/xorg-lib/libxt/0001-libXt-util-don-t-link-makestrs-with-target-cflags.patch deleted file mode 100644 index 1a691a3d..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/xorg-lib/libxt/0001-libXt-util-don-t-link-makestrs-with-target-cflags.patch +++ /dev/null @@ -1,33 +0,0 @@ -From b0c0e6d90bd99a699701c9542640adb218f5d536 Mon Sep 17 00:00:00 2001 -From: Thomas Petazzoni -Date: Mon, 10 Jul 2017 16:51:13 +0300 -Subject: [PATCH] libXt: util: don't link makestrs with target cflags - -The line: AM_CFLAGS = $(XT_CFLAGS) -in util/Makefile.am is wrong because it adds target cflags to the -compilation of makestrs, which is built for the build machine, which -leads to build failures when cross-compiling. - -Upstream-Status: Pending - -Signed-off-by: Thomas Petazzoni -Signed-off-by: Maxin B. John ---- - util/Makefile.am | 1 - - 1 file changed, 1 deletion(-) - -diff --git a/util/Makefile.am b/util/Makefile.am -index 800b35b..f2dd1f9 100644 ---- a/util/Makefile.am -+++ b/util/Makefile.am -@@ -11,7 +11,6 @@ EXTRA_DIST = \ - StrDefs.ht \ - string.list - --AM_CFLAGS = $(XT_CFLAGS) - makestrs_SOURCES = makestrs.c - - --- -2.4.0 - diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/xorg-lib/libxt/libxt_fix_for_x32.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/xorg-lib/libxt/libxt_fix_for_x32.patch index ffc2c15d..ff8c675d 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/xorg-lib/libxt/libxt_fix_for_x32.patch +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/xorg-lib/libxt/libxt_fix_for_x32.patch @@ -1,3 +1,8 @@ +From f069b0a430fe96f3ece2106d34375008833599d3 Mon Sep 17 00:00:00 2001 +From: Nitin A Kamble +Date: Fri, 2 Dec 2011 12:20:05 -0800 +Subject: [PATCH] libxt: fix compilatoin with x32 toolchain + Upstream-Status: Pending This fixes compilation with x32 toolchain. @@ -5,10 +10,15 @@ This fixes compilation with x32 toolchain. Received this patch from H.J. Lu Signed-off-by: Nitin A Kamble 2011/12/1 +--- + include/X11/Xtos.h | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) ---- libXt-1.1.1/include/X11/Xtos.h.x32 2011-02-08 07:56:40.000000000 -0800 -+++ libXt-1.1.1/include/X11/Xtos.h 2011-11-30 17:19:27.473349770 -0800 -@@ -62,7 +62,7 @@ SOFTWARE. +diff --git a/include/X11/Xtos.h b/include/X11/Xtos.h +index 64b2da8..44f52c2 100644 +--- a/include/X11/Xtos.h ++++ b/include/X11/Xtos.h +@@ -59,7 +59,7 @@ SOFTWARE. defined(__sparc64__) || \ defined(__s390x__) || \ (defined(__hppa__) && defined(__LP64__)) || \ diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/xorg-lib/libxt_1.1.5.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/xorg-lib/libxt_1.1.5.bb deleted file mode 100644 index 23d9db41..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/xorg-lib/libxt_1.1.5.bb +++ /dev/null @@ -1,35 +0,0 @@ -SUMMARY = "Xt: X Toolkit Intrinsics library" - -DESCRIPTION = "The Intrinsics are a programming library tailored to the \ -special requirements of user interface construction within a network \ -window system, specifically the X Window System. The Intrinsics and a \ -widget set make up an X Toolkit. The Intrinsics provide the base \ -mechanism necessary to build a wide variety of interoperating widget \ -sets and application environments. The Intrinsics are a layer on top of \ -Xlib, the C Library X Interface. They extend the fundamental \ -abstractions provided by the X Window System while still remaining \ -independent of any particular user interface policy or style." - -require xorg-lib-common.inc - -LICENSE = "MIT & MIT-style" -LIC_FILES_CHKSUM = "file://COPYING;md5=6565b1e0094ea1caae0971cc4035f343" - - -DEPENDS += "util-linux libxcb libsm virtual/libx11 xorgproto libxdmcp" -PROVIDES = "xt" - -PE = "1" - -XORG_PN = "libXt" - -SRC_URI += "file://libxt_fix_for_x32.patch \ - file://0001-libXt-util-don-t-link-makestrs-with-target-cflags.patch \ - " - -BBCLASSEXTEND = "native nativesdk" - -EXTRA_OECONF += "--disable-xkb" - -SRC_URI[md5sum] = "8f5b5576fbabba29a05f3ca2226f74d3" -SRC_URI[sha256sum] = "46eeb6be780211fdd98c5109286618f6707712235fdd19df4ce1e6954f349f1a" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/xorg-lib/libxt_1.2.0.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/xorg-lib/libxt_1.2.0.bb new file mode 100644 index 00000000..42df4350 --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/xorg-lib/libxt_1.2.0.bb @@ -0,0 +1,32 @@ +SUMMARY = "Xt: X Toolkit Intrinsics library" + +DESCRIPTION = "The Intrinsics are a programming library tailored to the \ +special requirements of user interface construction within a network \ +window system, specifically the X Window System. The Intrinsics and a \ +widget set make up an X Toolkit. The Intrinsics provide the base \ +mechanism necessary to build a wide variety of interoperating widget \ +sets and application environments. The Intrinsics are a layer on top of \ +Xlib, the C Library X Interface. They extend the fundamental \ +abstractions provided by the X Window System while still remaining \ +independent of any particular user interface policy or style." + +require xorg-lib-common.inc + +LICENSE = "MIT & MIT-style" +LIC_FILES_CHKSUM = "file://COPYING;md5=73d55cea4d27ca1a09a5d23378b3ecf8" + +DEPENDS += "util-linux libxcb libsm virtual/libx11 xorgproto libxdmcp" +PROVIDES = "xt" + +PE = "1" + +XORG_PN = "libXt" + +SRC_URI += "file://libxt_fix_for_x32.patch \ + " +SRC_URI[md5sum] = "a9019421d3ee8b4937b6afd9025f018a" +SRC_URI[sha256sum] = "b31df531dabed9f4611fc8980bc51d7782967e2aff44c4105251a1acb5a77831" + +BBCLASSEXTEND = "native nativesdk" + +EXTRA_OECONF += "--disable-xkb" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/xorg-lib/libxvmc_1.0.11.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/xorg-lib/libxvmc_1.0.11.bb deleted file mode 100644 index d95f809e..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/xorg-lib/libxvmc_1.0.11.bb +++ /dev/null @@ -1,19 +0,0 @@ -SUMMARY = "XvMC: X Video Motion Compensation extension library" - -DESCRIPTION = "XvMC extends the X Video extension (Xv) and enables \ -hardware rendered motion compensation support." - -require xorg-lib-common.inc - -LICENSE = "MIT" -LIC_FILES_CHKSUM = "file://COPYING;md5=0a207f08d4961489c55046c9a5e500da \ - file://wrapper/XvMCWrapper.c;endline=26;md5=5151daa8172a3f1bb0cb0e0ff157d9de" - -DEPENDS += "libxext libxv xorgproto" - -PE = "1" - -XORG_PN = "libXvMC" - -SRC_URI[md5sum] = "707175185a2e0490b8173686c657324f" -SRC_URI[sha256sum] = "4a2e34d444a683a7c010b01b23cefe2b8043a063ce4dc6a9b855836b5262622d" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/xorg-lib/libxvmc_1.0.12.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/xorg-lib/libxvmc_1.0.12.bb new file mode 100644 index 00000000..29ed0c43 --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/xorg-lib/libxvmc_1.0.12.bb @@ -0,0 +1,19 @@ +SUMMARY = "XvMC: X Video Motion Compensation extension library" + +DESCRIPTION = "XvMC extends the X Video extension (Xv) and enables \ +hardware rendered motion compensation support." + +require xorg-lib-common.inc + +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://COPYING;md5=0a207f08d4961489c55046c9a5e500da \ + file://wrapper/XvMCWrapper.c;endline=26;md5=5151daa8172a3f1bb0cb0e0ff157d9de" + +DEPENDS += "libxext libxv xorgproto" + +PE = "1" + +XORG_PN = "libXvMC" + +SRC_URI[md5sum] = "3569ff7f3e26864d986d6a21147eaa58" +SRC_URI[sha256sum] = "6b3da7977b3f7eaf4f0ac6470ab1e562298d82c4e79077765787963ab7966dcd" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/xorg-lib/libxxf86dga_1.1.5.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/xorg-lib/libxxf86dga_1.1.5.bb deleted file mode 100644 index e1cb3456..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/xorg-lib/libxxf86dga_1.1.5.bb +++ /dev/null @@ -1,19 +0,0 @@ -require xorg-lib-common.inc - -SUMMARY = "XFree86-DGA: XFree86 Direct Graphics Access extension library" - -DESCRIPTION = "libXxf86dga provides the XFree86-DGA extension, which \ -allows direct graphics access to a framebuffer-like region, and also \ -allows relative mouse reporting, et al. It is mainly used by games and \ -emulators for games." - -LIC_FILES_CHKSUM = "file://COPYING;md5=abb99ac125f84f424a4278153988e32f" - -DEPENDS += "libxext" - -PE = "1" - -SRC_URI[md5sum] = "0ddeafc13b33086357cfa96fae41ee8e" -SRC_URI[sha256sum] = "2b98bc5f506c6140d4eddd3990842d30f5dae733b64f198a504f07461bdb7203" - -XORG_PN = "libXxf86dga" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/xorg-lib/libxxf86misc_1.0.4.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/xorg-lib/libxxf86misc_1.0.4.bb deleted file mode 100644 index 45b0673e..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/xorg-lib/libxxf86misc_1.0.4.bb +++ /dev/null @@ -1,19 +0,0 @@ -SUMMARY = "XFree86-Misc: XFree86 miscellaneous extension library" - -DESCRIPTION = "The XFree86-Misc extension, provides a means to access \ -input device configuration settings specific to the XFree86/Xorg DDX." - -require xorg-lib-common.inc - -LICENSE = "MIT" -LIC_FILES_CHKSUM = "file://COPYING;md5=27c91ecc435bd3d2bfad868914c94b45" - -DEPENDS += "libxext" -PROVIDES = "xxf86misc" - -PE = "1" - -XORG_PN = "libXxf86misc" - -SRC_URI[md5sum] = "37ad70f8b53b94b550f9290be97fbe2d" -SRC_URI[sha256sum] = "a89c03e2b0f16239d67a2031b9003f31b5a686106bbdb3c797fb88ae472af380" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/xorg-lib/xcb-util.inc b/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/xorg-lib/xcb-util.inc index 99d04f9d..0e5ab70b 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/xorg-lib/xcb-util.inc +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/xorg-lib/xcb-util.inc @@ -18,6 +18,6 @@ DEPENDS += "gperf-native" SRC_URI = "http://xcb.freedesktop.org/dist/${BPN}-${PV}.tar.bz2" -inherit autotools pkgconfig distro_features_check +inherit autotools pkgconfig features_check REQUIRED_DISTRO_FEATURES = "x11" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/xorg-lib/xkeyboard-config_2.27.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/xorg-lib/xkeyboard-config_2.27.bb index a6b2cc0e..02156ad7 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/xorg-lib/xkeyboard-config_2.27.bb +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/xorg-lib/xkeyboard-config_2.27.bb @@ -13,12 +13,11 @@ LICENSE = "MIT & MIT-style" LIC_FILES_CHKSUM = "file://COPYING;md5=0e7f21ca7db975c63467d2e7624a12f9" SRC_URI = "${XORG_MIRROR}/individual/data/xkeyboard-config/${BPN}-${PV}.tar.bz2" - SRC_URI[md5sum] = "316753e35d3906d042c74230612eab9f" SRC_URI[sha256sum] = "690daec8fea63526c07620c90e6f3f10aae34e94b6db6e30906173480721901f" SECTION = "x11/libs" -DEPENDS = "intltool-native util-macros libxslt-native" +DEPENDS = "util-macros libxslt-native" EXTRA_OECONF = "--with-xkb-rules-symlink=xorg --disable-runtime-deps" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/xorg-lib/xorg-lib-common.inc b/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/xorg-lib/xorg-lib-common.inc index 09df0109..a566eaa4 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/xorg-lib/xorg-lib-common.inc +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/xorg-lib/xorg-lib-common.inc @@ -11,7 +11,7 @@ SRC_URI = "${XORG_MIRROR}/individual/lib/${XORG_PN}-${PV}.tar.bz2" S = "${WORKDIR}/${XORG_PN}-${PV}" -inherit autotools distro_features_check pkgconfig +inherit autotools features_check pkgconfig EXTRA_OECONF = "--disable-specs --without-groff --without-ps2pdf --without-fop" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/xorg-proto/xorgproto/0001-Remove-libdir-specification.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/xorg-proto/xorgproto/0001-Remove-libdir-specification.patch deleted file mode 100644 index 48296f78..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/xorg-proto/xorgproto/0001-Remove-libdir-specification.patch +++ /dev/null @@ -1,468 +0,0 @@ -Upstream-Status: Submitted - -https://cgit.freedesktop.org/xorg/proto/xorgproto/commit/?id=91c1c8e1490c970379efb16784003426faec806e - -From 6feb974e0deb3355908c30e07293d82a3f6996ed Mon Sep 17 00:00:00 2001 -From: Jeremy Puhlman -Date: Mon, 11 Jun 2018 16:42:43 +0000 -Subject: [PATCH] Remove libdir specification. - -Currently the pc files define libdir, however they are installed into -/usr/share, which means they should be architecture agnostic. In a -multilib system, xorg-proto built for each multilib abi, the value of -libdir is going to be different. These should either be installed in -/pkgconfig or they shouldn't define libdir, espeically since -they don't actually use the definition. This specifically causes an -issue when trying to install both abis at the same time, since they are -not binary identical, something like rpm will complain that they - ---- - applewmproto.pc.in | 1 - - bigreqsproto.pc.in | 1 - - compositeproto.pc.in | 1 - - damageproto.pc.in | 1 - - dmxproto.pc.in | 1 - - dri2proto.pc.in | 1 - - dri3proto.pc.in | 1 - - evieproto.pc.in | 1 - - fixesproto.pc.in | 1 - - fontcacheproto.pc.in | 1 - - fontsproto.pc.in | 1 - - glproto.pc.in | 1 - - inputproto.pc.in | 1 - - kbproto.pc.in | 1 - - lg3dproto.pc.in | 1 - - presentproto.pc.in | 1 - - printproto.pc.in | 1 - - randrproto.pc.in | 1 - - recordproto.pc.in | 1 - - renderproto.pc.in | 1 - - resourceproto.pc.in | 1 - - scrnsaverproto.pc.in | 1 - - trapproto.pc.in | 1 - - videoproto.pc.in | 1 - - windowswmproto.pc.in | 1 - - xcalibrateproto.pc.in | 1 - - xcmiscproto.pc.in | 1 - - xextproto.pc.in | 1 - - xf86bigfontproto.pc.in | 1 - - xf86dgaproto.pc.in | 1 - - xf86driproto.pc.in | 1 - - xf86miscproto.pc.in | 1 - - xf86rushproto.pc.in | 1 - - xf86vidmodeproto.pc.in | 1 - - xineramaproto.pc.in | 1 - - xproto.pc.in | 1 - - xproxymngproto.pc.in | 1 - - 37 files changed, 37 deletions(-) - -diff --git a/applewmproto.pc.in b/applewmproto.pc.in -index 17841ac..3227b21 100644 ---- a/applewmproto.pc.in -+++ b/applewmproto.pc.in -@@ -1,6 +1,5 @@ - prefix=@prefix@ - exec_prefix=@exec_prefix@ --libdir=@libdir@ - includedir=@includedir@ - - Name: AppleWMProto -diff --git a/bigreqsproto.pc.in b/bigreqsproto.pc.in -index 94577ed..e21bb59 100644 ---- a/bigreqsproto.pc.in -+++ b/bigreqsproto.pc.in -@@ -1,6 +1,5 @@ - prefix=@prefix@ - exec_prefix=@exec_prefix@ --libdir=@libdir@ - includedir=@includedir@ - - Name: BigReqsProto -diff --git a/compositeproto.pc.in b/compositeproto.pc.in -index da429c7..b0dada1 100644 ---- a/compositeproto.pc.in -+++ b/compositeproto.pc.in -@@ -1,6 +1,5 @@ - prefix=@prefix@ - exec_prefix=@exec_prefix@ --libdir=@libdir@ - includedir=@includedir@ - - Name: CompositeExt -diff --git a/damageproto.pc.in b/damageproto.pc.in -index 6fd9ef1..bfd5244 100644 ---- a/damageproto.pc.in -+++ b/damageproto.pc.in -@@ -1,6 +1,5 @@ - prefix=@prefix@ - exec_prefix=@exec_prefix@ --libdir=@libdir@ - includedir=@includedir@ - - Name: DamageProto -diff --git a/dmxproto.pc.in b/dmxproto.pc.in -index e82ee7d..d140e1c 100644 ---- a/dmxproto.pc.in -+++ b/dmxproto.pc.in -@@ -1,6 +1,5 @@ - prefix=@prefix@ - exec_prefix=@exec_prefix@ --libdir=@libdir@ - includedir=@includedir@ - - Name: DMXProto -diff --git a/dri2proto.pc.in b/dri2proto.pc.in -index cb5b171..fa9d24d 100644 ---- a/dri2proto.pc.in -+++ b/dri2proto.pc.in -@@ -1,6 +1,5 @@ - prefix=@prefix@ - exec_prefix=@exec_prefix@ --libdir=@libdir@ - includedir=@includedir@ - - Name: DRI2Proto -diff --git a/dri3proto.pc.in b/dri3proto.pc.in -index e42d60e..20da358 100644 ---- a/dri3proto.pc.in -+++ b/dri3proto.pc.in -@@ -1,6 +1,5 @@ - prefix=@prefix@ - exec_prefix=@exec_prefix@ --libdir=@libdir@ - includedir=@includedir@ - - Name: DRI3Proto -diff --git a/evieproto.pc.in b/evieproto.pc.in -index 64e0ec4..fd5442b 100644 ---- a/evieproto.pc.in -+++ b/evieproto.pc.in -@@ -1,6 +1,5 @@ - prefix=@prefix@ - exec_prefix=@exec_prefix@ --libdir=@libdir@ - includedir=@includedir@ - - Name: EvIEExt -diff --git a/fixesproto.pc.in b/fixesproto.pc.in -index f8258e2..c7fcb81 100644 ---- a/fixesproto.pc.in -+++ b/fixesproto.pc.in -@@ -1,6 +1,5 @@ - prefix=@prefix@ - exec_prefix=@exec_prefix@ --libdir=@libdir@ - includedir=@includedir@ - - Name: FixesProto -diff --git a/fontcacheproto.pc.in b/fontcacheproto.pc.in -index eb4238b..8ffffe9 100644 ---- a/fontcacheproto.pc.in -+++ b/fontcacheproto.pc.in -@@ -1,6 +1,5 @@ - prefix=@prefix@ - exec_prefix=@exec_prefix@ --libdir=@libdir@ - includedir=@includedir@ - - Name: FontcacheProto -diff --git a/fontsproto.pc.in b/fontsproto.pc.in -index 9d22354..ebb61a4 100644 ---- a/fontsproto.pc.in -+++ b/fontsproto.pc.in -@@ -1,6 +1,5 @@ - prefix=@prefix@ - exec_prefix=@exec_prefix@ --libdir=@libdir@ - includedir=@includedir@ - - Name: FontsProto -diff --git a/glproto.pc.in b/glproto.pc.in -index b951db5..e97bfc9 100644 ---- a/glproto.pc.in -+++ b/glproto.pc.in -@@ -1,6 +1,5 @@ - prefix=@prefix@ - exec_prefix=@exec_prefix@ --libdir=@libdir@ - includedir=@includedir@ - - Name: GLProto -diff --git a/inputproto.pc.in b/inputproto.pc.in -index 1eb6619..270b95c 100644 ---- a/inputproto.pc.in -+++ b/inputproto.pc.in -@@ -1,6 +1,5 @@ - prefix=@prefix@ - exec_prefix=@exec_prefix@ --libdir=@libdir@ - includedir=@includedir@ - - Name: InputProto -diff --git a/kbproto.pc.in b/kbproto.pc.in -index bdd39f1..32a172d 100644 ---- a/kbproto.pc.in -+++ b/kbproto.pc.in -@@ -1,6 +1,5 @@ - prefix=@prefix@ - exec_prefix=@exec_prefix@ --libdir=@libdir@ - includedir=@includedir@ - - Name: KBProto -diff --git a/lg3dproto.pc.in b/lg3dproto.pc.in -index 3930ad7..43fba29 100644 ---- a/lg3dproto.pc.in -+++ b/lg3dproto.pc.in -@@ -1,6 +1,5 @@ - prefix=@prefix@ - exec_prefix=@exec_prefix@ --libdir=@libdir@ - includedir=@includedir@ - - Name: Lg3dProto -diff --git a/presentproto.pc.in b/presentproto.pc.in -index 6ec4b7d..55b84dc 100644 ---- a/presentproto.pc.in -+++ b/presentproto.pc.in -@@ -1,6 +1,5 @@ - prefix=@prefix@ - exec_prefix=@exec_prefix@ --libdir=@libdir@ - includedir=@includedir@ - - Name: PresentProto -diff --git a/printproto.pc.in b/printproto.pc.in -index 8a2e2d6..a2da66d 100644 ---- a/printproto.pc.in -+++ b/printproto.pc.in -@@ -1,6 +1,5 @@ - prefix=@prefix@ - exec_prefix=@exec_prefix@ --libdir=@libdir@ - includedir=@includedir@ - - Name: PrintProto -diff --git a/randrproto.pc.in b/randrproto.pc.in -index 5a5edb2..6d60cbb 100644 ---- a/randrproto.pc.in -+++ b/randrproto.pc.in -@@ -1,6 +1,5 @@ - prefix=@prefix@ - exec_prefix=@exec_prefix@ --libdir=@libdir@ - includedir=@includedir@ - - Name: RandrProto -diff --git a/recordproto.pc.in b/recordproto.pc.in -index 0ff4c0b..a87aa82 100644 ---- a/recordproto.pc.in -+++ b/recordproto.pc.in -@@ -1,6 +1,5 @@ - prefix=@prefix@ - exec_prefix=@exec_prefix@ --libdir=@libdir@ - includedir=@includedir@ - - Name: RecordProto -diff --git a/renderproto.pc.in b/renderproto.pc.in -index e6028ac..34b15e0 100644 ---- a/renderproto.pc.in -+++ b/renderproto.pc.in -@@ -1,6 +1,5 @@ - prefix=@prefix@ - exec_prefix=@exec_prefix@ --libdir=@libdir@ - includedir=@includedir@ - - Name: RenderProto -diff --git a/resourceproto.pc.in b/resourceproto.pc.in -index a409db9..f927cbb 100644 ---- a/resourceproto.pc.in -+++ b/resourceproto.pc.in -@@ -1,6 +1,5 @@ - prefix=@prefix@ - exec_prefix=@exec_prefix@ --libdir=@libdir@ - includedir=@includedir@ - - Name: ResourceProto -diff --git a/scrnsaverproto.pc.in b/scrnsaverproto.pc.in -index 6556a2c..fd9d368 100644 ---- a/scrnsaverproto.pc.in -+++ b/scrnsaverproto.pc.in -@@ -1,6 +1,5 @@ - prefix=@prefix@ - exec_prefix=@exec_prefix@ --libdir=@libdir@ - includedir=@includedir@ - - Name: ScrnSaverProto -diff --git a/trapproto.pc.in b/trapproto.pc.in -index 8cb0aa8..8a220b9 100644 ---- a/trapproto.pc.in -+++ b/trapproto.pc.in -@@ -1,6 +1,5 @@ - prefix=@prefix@ - exec_prefix=@exec_prefix@ --libdir=@libdir@ - includedir=@includedir@ - - Name: TrapProto -diff --git a/videoproto.pc.in b/videoproto.pc.in -index 14b907a..5c22f7a 100644 ---- a/videoproto.pc.in -+++ b/videoproto.pc.in -@@ -1,6 +1,5 @@ - prefix=@prefix@ - exec_prefix=@exec_prefix@ --libdir=@libdir@ - includedir=@includedir@ - - Name: VideoProto -diff --git a/windowswmproto.pc.in b/windowswmproto.pc.in -index 0a2ec0b..ec56e82 100644 ---- a/windowswmproto.pc.in -+++ b/windowswmproto.pc.in -@@ -1,6 +1,5 @@ - prefix=@prefix@ - exec_prefix=@exec_prefix@ --libdir=@libdir@ - includedir=@includedir@ - - Name: WindowsWMProto -diff --git a/xcalibrateproto.pc.in b/xcalibrateproto.pc.in -index 40b6fd0..f1ea5de 100644 ---- a/xcalibrateproto.pc.in -+++ b/xcalibrateproto.pc.in -@@ -1,6 +1,5 @@ - prefix=@prefix@ - exec_prefix=@exec_prefix@ --libdir=@libdir@ - includedir=@includedir@ - - Name: XCalibrate -diff --git a/xcmiscproto.pc.in b/xcmiscproto.pc.in -index 0dfbf21..b72bbc6 100644 ---- a/xcmiscproto.pc.in -+++ b/xcmiscproto.pc.in -@@ -1,6 +1,5 @@ - prefix=@prefix@ - exec_prefix=@exec_prefix@ --libdir=@libdir@ - includedir=@includedir@ - - Name: XCMiscProto -diff --git a/xextproto.pc.in b/xextproto.pc.in -index f66eeae..9419c91 100644 ---- a/xextproto.pc.in -+++ b/xextproto.pc.in -@@ -1,6 +1,5 @@ - prefix=@prefix@ - exec_prefix=@exec_prefix@ --libdir=@libdir@ - includedir=@includedir@ - - Name: XExtProto -diff --git a/xf86bigfontproto.pc.in b/xf86bigfontproto.pc.in -index 18c5647..4a67be6 100644 ---- a/xf86bigfontproto.pc.in -+++ b/xf86bigfontproto.pc.in -@@ -1,6 +1,5 @@ - prefix=@prefix@ - exec_prefix=@exec_prefix@ --libdir=@libdir@ - includedir=@includedir@ - - Name: XF86BigFontProto -diff --git a/xf86dgaproto.pc.in b/xf86dgaproto.pc.in -index 5c5f8b1..e029cd4 100644 ---- a/xf86dgaproto.pc.in -+++ b/xf86dgaproto.pc.in -@@ -1,6 +1,5 @@ - prefix=@prefix@ - exec_prefix=@exec_prefix@ --libdir=@libdir@ - includedir=@includedir@ - - Name: XF86DGAProto -diff --git a/xf86driproto.pc.in b/xf86driproto.pc.in -index 93df292..c8faf14 100644 ---- a/xf86driproto.pc.in -+++ b/xf86driproto.pc.in -@@ -1,6 +1,5 @@ - prefix=@prefix@ - exec_prefix=@exec_prefix@ --libdir=@libdir@ - includedir=@includedir@ - - Name: XF86DRIProto -diff --git a/xf86miscproto.pc.in b/xf86miscproto.pc.in -index af73fa3..05d5d9e 100644 ---- a/xf86miscproto.pc.in -+++ b/xf86miscproto.pc.in -@@ -1,6 +1,5 @@ - prefix=@prefix@ - exec_prefix=@exec_prefix@ --libdir=@libdir@ - includedir=@includedir@ - - Name: XF86MiscProto -diff --git a/xf86rushproto.pc.in b/xf86rushproto.pc.in -index fc5f63b..1c7ff1b 100644 ---- a/xf86rushproto.pc.in -+++ b/xf86rushproto.pc.in -@@ -1,6 +1,5 @@ - prefix=@prefix@ - exec_prefix=@exec_prefix@ --libdir=@libdir@ - includedir=@includedir@ - - Name: XF86RushProto -diff --git a/xf86vidmodeproto.pc.in b/xf86vidmodeproto.pc.in -index fcb74f2..ef062b3 100644 ---- a/xf86vidmodeproto.pc.in -+++ b/xf86vidmodeproto.pc.in -@@ -1,6 +1,5 @@ - prefix=@prefix@ - exec_prefix=@exec_prefix@ --libdir=@libdir@ - includedir=@includedir@ - - Name: XF86VidModeProto -diff --git a/xineramaproto.pc.in b/xineramaproto.pc.in -index 1ffd37d..9172f1e 100644 ---- a/xineramaproto.pc.in -+++ b/xineramaproto.pc.in -@@ -1,6 +1,5 @@ - prefix=@prefix@ - exec_prefix=@exec_prefix@ --libdir=@libdir@ - includedir=@includedir@ - - Name: XineramaProto -diff --git a/xproto.pc.in b/xproto.pc.in -index 8ff2d3d..899316a 100644 ---- a/xproto.pc.in -+++ b/xproto.pc.in -@@ -1,6 +1,5 @@ - prefix=@prefix@ - exec_prefix=@exec_prefix@ --libdir=@libdir@ - includedir=@includedir@ - includex11dir=@includedir@/X11 - -diff --git a/xproxymngproto.pc.in b/xproxymngproto.pc.in -index 5c6fad6..1a81e28 100644 ---- a/xproxymngproto.pc.in -+++ b/xproxymngproto.pc.in -@@ -1,6 +1,5 @@ - prefix=@prefix@ - exec_prefix=@exec_prefix@ --libdir=@libdir@ - includedir=@includedir@ - - Name: XProxyManagementProtocol --- -2.11.1 - diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/xorg-proto/xorgproto_2018.4.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/xorg-proto/xorgproto_2018.4.bb deleted file mode 100644 index cec6e875..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/xorg-proto/xorgproto_2018.4.bb +++ /dev/null @@ -1,16 +0,0 @@ -require xorg-proto-common.inc - -SUMMARY = "XCalibrate: Touchscreen calibration headers" - -DESCRIPTION = "This package provides the headers and specification documents defining \ -the core protocol and (many) extensions for the X Window System" - -LICENSE = "MIT-style" -LIC_FILES_CHKSUM = "file://COPYING-x11proto;md5=b9e051107d5628966739a0b2e9b32676" - -SRC_URI += "file://0001-Remove-libdir-specification.patch" - -SRC_URI[md5sum] = "81557ca47ee66a4e54590fcdadd28114" -SRC_URI[sha256sum] = "fee885e0512899ea5280c593fdb2735beb1693ad170c22ebcc844470eec415a0" - -BBCLASSEXTEND = "native nativesdk" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/xorg-proto/xorgproto_2019.2.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/xorg-proto/xorgproto_2019.2.bb new file mode 100644 index 00000000..8acbe895 --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/xorg-proto/xorgproto_2019.2.bb @@ -0,0 +1,14 @@ +require xorg-proto-common.inc + +SUMMARY = "X Window System unified protocol definitions" + +DESCRIPTION = "This package provides the headers and specification documents defining \ +the core protocol and (many) extensions for the X Window System" + +LICENSE = "MIT-style" +LIC_FILES_CHKSUM = "file://COPYING-x11proto;md5=b9e051107d5628966739a0b2e9b32676" + +SRC_URI[md5sum] = "a02dcaff48b4141b949ac99dfc344d86" +SRC_URI[sha256sum] = "46ecd0156c561d41e8aa87ce79340910cdf38373b759e737fcbba5df508e7b8e" + +BBCLASSEXTEND = "native nativesdk" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/xorg-xserver/xserver-xorg.inc b/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/xorg-xserver/xserver-xorg.inc index 615ad6d9..a0ae65c7 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/xorg-xserver/xserver-xorg.inc +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/xorg-xserver/xserver-xorg.inc @@ -24,12 +24,11 @@ S = "${WORKDIR}/${XORG_PN}-${PV}" inherit autotools pkgconfig -inherit distro_features_check +inherit features_check REQUIRED_DISTRO_FEATURES = "x11" -PROTO_DEPS = "xorgproto" LIB_DEPS = "pixman libxfont2 xtrans libxau libxext libxdmcp libdrm libxkbfile libpciaccess" -DEPENDS = "${PROTO_DEPS} ${LIB_DEPS} font-util" +DEPENDS = "xorgproto ${LIB_DEPS} font-util" # Split out some modules and extensions from the main package # These aren't needed for basic operations and only take up space: @@ -121,25 +120,26 @@ EXTRA_OECONF += "--with-fop=no \ " OPENGL_PKGCONFIGS = "dri glx glamor dri3 xshmfence" -PACKAGECONFIG ??= "dri2 udev ${XORG_CRYPTO} \ +PACKAGECONFIG ??= "dga dri2 udev ${XORG_CRYPTO} \ ${@bb.utils.contains('DISTRO_FEATURES', 'opengl', '${OPENGL_PKGCONFIGS}', '', d)} \ ${@bb.utils.contains('DISTRO_FEATURES', 'opengl wayland', 'xwayland', '', d)} \ ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'systemd systemd-logind', '', d)} \ " PACKAGECONFIG[udev] = "--enable-config-udev,--disable-config-udev,udev" -PACKAGECONFIG[dri] = "--enable-dri,--disable-dri,xorgproto virtual/mesa" -PACKAGECONFIG[dri2] = "--enable-dri2,--disable-dri2,xorgproto" +PACKAGECONFIG[dga] = "--enable-dga,--disable-dga" +PACKAGECONFIG[dri] = "--enable-dri,--disable-dri,virtual/mesa" +PACKAGECONFIG[dri2] = "--enable-dri2,--disable-dri2" # DRI3 requires xshmfence to also be enabled -PACKAGECONFIG[dri3] = "--enable-dri3,--disable-dri3,xorgproto" -PACKAGECONFIG[glx] = "--enable-glx,--disable-glx,xorgproto virtual/libgl virtual/libx11" +PACKAGECONFIG[dri3] = "--enable-dri3,--disable-dri3" +PACKAGECONFIG[glx] = "--enable-glx,--disable-glx,virtual/libgl virtual/libx11" PACKAGECONFIG[glamor] = "--enable-glamor,--disable-glamor,libepoxy virtual/libgbm,libegl" PACKAGECONFIG[unwind] = "--enable-libunwind,--disable-libunwind,libunwind" PACKAGECONFIG[xshmfence] = "--enable-xshmfence,--disable-xshmfence,libxshmfence" PACKAGECONFIG[xmlto] = "--with-xmlto, --without-xmlto, xmlto-native docbook-xml-dtd4-native docbook-xsl-stylesheets-native" PACKAGECONFIG[systemd-logind] = "--enable-systemd-logind=yes,--enable-systemd-logind=no,dbus," PACKAGECONFIG[systemd] = "--with-systemd-daemon,--without-systemd-daemon,systemd" -PACKAGECONFIG[xinerama] = "--enable-xinerama,--disable-xinerama,xorgproto" +PACKAGECONFIG[xinerama] = "--enable-xinerama,--disable-xinerama" PACKAGECONFIG[xwayland] = "--enable-xwayland,--disable-xwayland,wayland wayland-native wayland-protocols libepoxy" # Xorg requires a SHA1 implementation, pick one diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/xorg-xserver/xserver-xorg/0001-compiler.h-Do-not-include-sys-io.h-on-ARM-with-glibc.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/xorg-xserver/xserver-xorg/0001-compiler.h-Do-not-include-sys-io.h-on-ARM-with-glibc.patch new file mode 100644 index 00000000..da9a4f2b --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/xorg-xserver/xserver-xorg/0001-compiler.h-Do-not-include-sys-io.h-on-ARM-with-glibc.patch @@ -0,0 +1,63 @@ +From 2ba9510721b7a76cb7fe507449fa0ac997a4cce3 Mon Sep 17 00:00:00 2001 +From: Olivier Fourdan +Date: Mon, 1 Jul 2019 13:20:39 +0200 +Subject: [PATCH] compiler.h: Do not include sys/io.h on ARM with glibc + + on ARM hasn't worked for a long, long time, so it was removed +it from glibc upstream. + +Remove the include to avoid a compilation failure on ARM with glibc. + +Signed-off-by: Olivier Fourdan +Closes: https://gitlab.freedesktop.org/xorg/xserver/issues/840 +Signed-off-by: Khem Raj + +Upstream-Status: Backport [https://gitlab.freedesktop.org/xorg/xserver/commit/fe4cd0e7f5c58fa94db36326aadc1bd4e6d73eba] +--- + hw/xfree86/common/compiler.h | 30 ------------------------------ + 1 file changed, 30 deletions(-) + +diff --git a/hw/xfree86/common/compiler.h b/hw/xfree86/common/compiler.h +index 7144c6a..2b2008b 100644 +--- a/hw/xfree86/common/compiler.h ++++ b/hw/xfree86/common/compiler.h +@@ -758,36 +758,6 @@ inl(unsigned short port) + return xf86ReadMmio32Le((void *) ioBase, port); + } + +-#elif defined(__arm__) && defined(__linux__) +- +-/* for Linux on ARM, we use the LIBC inx/outx routines */ +-/* note that the appropriate setup via "ioperm" needs to be done */ +-/* *before* any inx/outx is done. */ +- +-#include +- +-static __inline__ void +-xf_outb(unsigned short port, unsigned char val) +-{ +- outb(val, port); +-} +- +-static __inline__ void +-xf_outw(unsigned short port, unsigned short val) +-{ +- outw(val, port); +-} +- +-static __inline__ void +-xf_outl(unsigned short port, unsigned int val) +-{ +- outl(val, port); +-} +- +-#define outb xf_outb +-#define outw xf_outw +-#define outl xf_outl +- + #elif defined(__nds32__) + + /* +-- +2.22.0 + diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/xorg-xserver/xserver-xorg/musl-arm-inb-outb.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/xorg-xserver/xserver-xorg/musl-arm-inb-outb.patch deleted file mode 100644 index 4be441fb..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/xorg-xserver/xserver-xorg/musl-arm-inb-outb.patch +++ /dev/null @@ -1,18 +0,0 @@ -inb/outb family for arm is only implemented on glibc -so assumption across linux is wrong - -Signed-off-by: Khem Raj -Upstream-Status: Pending -Index: xorg-server-1.18.0/hw/xfree86/common/compiler.h -=================================================================== ---- xorg-server-1.18.0.orig/hw/xfree86/common/compiler.h -+++ xorg-server-1.18.0/hw/xfree86/common/compiler.h -@@ -758,7 +758,7 @@ inl(unsigned short port) - return xf86ReadMmio32Le((void *) ioBase, port); - } - --#elif defined(__arm__) && defined(__linux__) -+#elif defined(__arm__) && defined(__GLIBC__) - - /* for Linux on ARM, we use the LIBC inx/outx routines */ - /* note that the appropriate setup via "ioperm" needs to be done */ diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/xorg-xserver/xserver-xorg/sdksyms-no-build-path.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/xorg-xserver/xserver-xorg/sdksyms-no-build-path.patch new file mode 100644 index 00000000..be198ece --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/xorg-xserver/xserver-xorg/sdksyms-no-build-path.patch @@ -0,0 +1,50 @@ +Upstream-Status: Backport [https://gitlab.freedesktop.org/xorg/xserver/merge_requests/253] +Signed-off-by: Ross Burton + +From ca832598d38ba55a001088b57d73c6d7261dc9a7 Mon Sep 17 00:00:00 2001 +From: Ross Burton +Date: Thu, 1 Aug 2019 15:24:51 +0100 +Subject: [PATCH] sdksyms.sh: don't embed the build path + +This script generates a header that has a comment containing the build path for +no real reason. As this source can end up deployed on targets in debug packages +this means there is both potentially sensitive information leakage about the +build environment, and a source of change for reproducible builds. +--- + hw/xfree86/sdksyms.sh | 7 +++++-- + 1 file changed, 5 insertions(+), 2 deletions(-) + +diff --git a/hw/xfree86/sdksyms.sh b/hw/xfree86/sdksyms.sh +index 39e33711d..bdf47a71a 100755 +--- a/hw/xfree86/sdksyms.sh ++++ b/hw/xfree86/sdksyms.sh +@@ -302,13 +302,16 @@ LC_ALL=C + export LC_ALL + ${CPP:-cpp} "$@" sdksyms.c > /dev/null || exit $? + ${CPP:-cpp} "$@" sdksyms.c | ${AWK:-awk} -v topdir=$topdir ' ++function basename(file) { ++ sub(".*/", "", file) ++ return file ++} + BEGIN { + sdk = 0; + print("/*"); + print(" * These symbols are referenced to ensure they"); + print(" * will be available in the X Server binary."); + print(" */"); +- printf("/* topdir=%s */\n", topdir); + print("_X_HIDDEN void *xorg_symbols[] = {"); + + printf("sdksyms.c:") > "sdksyms.dep"; +@@ -337,7 +340,7 @@ BEGIN { + # remove quotes + gsub(/"/, "", $3); + line = $2; +- header = $3; ++ header = basename($3); + if (! headers[$3]) { + printf(" \\\n %s", $3) >> "sdksyms.dep"; + headers[$3] = 1; +-- +2.20.1 + diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/xorg-xserver/xserver-xorg_1.20.4.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/xorg-xserver/xserver-xorg_1.20.4.bb deleted file mode 100644 index ad99d6be..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/xorg-xserver/xserver-xorg_1.20.4.bb +++ /dev/null @@ -1,31 +0,0 @@ -require xserver-xorg.inc - -SRC_URI += "file://musl-arm-inb-outb.patch \ - file://0001-xf86pciBus.c-use-Intel-ddx-only-for-pre-gen4-hardwar.patch \ - file://pkgconfig.patch \ - file://0001-test-xtest-Initialize-array-with-braces.patch \ - " -SRC_URI[md5sum] = "c4841cc24b79420205d082fe82e0a650" -SRC_URI[sha256sum] = "fe0fd493ebe93bfc56bede382fa204458ff5f636ea54d413a5d1bd58e19166ee" - -# These extensions are now integrated into the server, so declare the migration -# path for in-place upgrades. - -RREPLACES_${PN} = "${PN}-extension-dri \ - ${PN}-extension-dri2 \ - ${PN}-extension-record \ - ${PN}-extension-extmod \ - ${PN}-extension-dbe \ - " -RPROVIDES_${PN} = "${PN}-extension-dri \ - ${PN}-extension-dri2 \ - ${PN}-extension-record \ - ${PN}-extension-extmod \ - ${PN}-extension-dbe \ - " -RCONFLICTS_${PN} = "${PN}-extension-dri \ - ${PN}-extension-dri2 \ - ${PN}-extension-record \ - ${PN}-extension-extmod \ - ${PN}-extension-dbe \ - " diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/xorg-xserver/xserver-xorg_1.20.5.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/xorg-xserver/xserver-xorg_1.20.5.bb new file mode 100644 index 00000000..3de6d22e --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/xorg-xserver/xserver-xorg_1.20.5.bb @@ -0,0 +1,32 @@ +require xserver-xorg.inc + +SRC_URI += "file://0001-xf86pciBus.c-use-Intel-ddx-only-for-pre-gen4-hardwar.patch \ + file://pkgconfig.patch \ + file://0001-test-xtest-Initialize-array-with-braces.patch \ + file://0001-compiler.h-Do-not-include-sys-io.h-on-ARM-with-glibc.patch \ + file://sdksyms-no-build-path.patch \ + " +SRC_URI[md5sum] = "c9fc7e21e11286dbedd22c00df652130" +SRC_URI[sha256sum] = "a81d8243f37e75a03d4f8c55f96d0bc25802be6ec45c3bfa5cb614c6d01bac9d" + +# These extensions are now integrated into the server, so declare the migration +# path for in-place upgrades. + +RREPLACES_${PN} = "${PN}-extension-dri \ + ${PN}-extension-dri2 \ + ${PN}-extension-record \ + ${PN}-extension-extmod \ + ${PN}-extension-dbe \ + " +RPROVIDES_${PN} = "${PN}-extension-dri \ + ${PN}-extension-dri2 \ + ${PN}-extension-record \ + ${PN}-extension-extmod \ + ${PN}-extension-dbe \ + " +RCONFLICTS_${PN} = "${PN}-extension-dri \ + ${PN}-extension-dri2 \ + ${PN}-extension-record \ + ${PN}-extension-extmod \ + ${PN}-extension-dbe \ + " diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/xrestop/xrestop_0.4.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/xrestop/xrestop_0.4.bb index ce5df039..c7b8716f 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/xrestop/xrestop_0.4.bb +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-graphics/xrestop/xrestop_0.4.bb @@ -19,6 +19,6 @@ SRC_URI = "http://downloads.yoctoproject.org/releases/xrestop/xrestop-${PV}.tar. SRC_URI[md5sum] = "d8a54596cbaf037e62b80c4585a3ca9b" SRC_URI[sha256sum] = "67c2fc94a7ecedbaae0d1837e82e93d1d98f4a6d759828860e552119af3ce257" -inherit autotools pkgconfig distro_features_check +inherit autotools pkgconfig features_check # depends on virtual/libx11 REQUIRED_DISTRO_FEATURES = "x11" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-kernel/dtc/dtc_1.5.0.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-kernel/dtc/dtc_1.5.0.bb deleted file mode 100644 index a9c13170..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-kernel/dtc/dtc_1.5.0.bb +++ /dev/null @@ -1,10 +0,0 @@ -require dtc.inc - -LIC_FILES_CHKSUM = "file://GPL;md5=94d55d512a9ba36caa9b7df079bae19f \ - file://libfdt/libfdt.h;beginline=3;endline=52;md5=fb360963151f8ec2d6c06b055bcbb68c" - -SRCREV = "d37f6b20107e952064e3f77e9d6915a9c09d10a6" - -S = "${WORKDIR}/git" - -BBCLASSEXTEND = "native nativesdk" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-kernel/dtc/dtc_1.5.1.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-kernel/dtc/dtc_1.5.1.bb new file mode 100644 index 00000000..9df8a06d --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-kernel/dtc/dtc_1.5.1.bb @@ -0,0 +1,10 @@ +require dtc.inc + +LIC_FILES_CHKSUM = "file://GPL;md5=b234ee4d69f5fce4486a80fdaf4a4263 \ + file://libfdt/libfdt.h;beginline=4;endline=7;md5=05bb357cfb75cae7d2b01d2ee8d76407" + +SRCREV = "60e0db3d65a1218b0d5a29474e769f28a18e3ca6" + +S = "${WORKDIR}/git" + +BBCLASSEXTEND = "native nativesdk" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-kernel/kern-tools/kern-tools-native_git.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-kernel/kern-tools/kern-tools-native_git.bb index 5c1d7f69..8ca7193c 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-kernel/kern-tools/kern-tools-native_git.bb +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-kernel/kern-tools/kern-tools-native_git.bb @@ -1,10 +1,10 @@ SUMMARY = "Tools for managing Yocto Project style branched kernels" LICENSE = "GPLv2" -LIC_FILES_CHKSUM = "file://git/tools/kgit;beginline=5;endline=9;md5=a6c2fa8aef1bda400e2828845ba0d06c" +LIC_FILES_CHKSUM = "file://git/tools/kgit;beginline=5;endline=9;md5=9c30e971d435e249624278c3e343e501" DEPENDS = "git-native" -SRCREV = "af1a779f662c81da521e4d602f3c6446547d12a2" +SRCREV = "bb6df0ef2365689cd3df6f76a8838cddae0d9343" PR = "r12" PV = "0.2+git${SRCPV}" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-kernel/kexec/kexec-tools/0006-kexec-arm-undefine-__NR_kexec_file_load-for-arm.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-kernel/kexec/kexec-tools/0006-kexec-arm-undefine-__NR_kexec_file_load-for-arm.patch new file mode 100644 index 00000000..6811dfa5 --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-kernel/kexec/kexec-tools/0006-kexec-arm-undefine-__NR_kexec_file_load-for-arm.patch @@ -0,0 +1,40 @@ +From b54816eff272324320c490d62dc36b27d2838732 Mon Sep 17 00:00:00 2001 +From: Quanyang Wang +Date: Mon, 16 Sep 2019 10:49:05 +0800 +Subject: [PATCH] kexec/arm: undefine __NR_kexec_file_load for arm + +In the kernel upstream commit 4ab65ba7a5cb +("ARM: add kexec_file_load system call number"), +__NR_kexec_file_load for arm has been defined to be 401. +This results that even if kexec_file_load isn't implemented +for arm but the function is_kexec_file_load_implemented() +will still return true. So undef __NR_kexec_file_load for +arm architecture. + +Upstream-Status: Backport +[https://git.kernel.org/pub/scm/utils/kernel/kexec/kexec-tools.git/commit/kexec/kexec-syscall.h?id=b54816eff272324320c490d62dc36b27d2838732] + +Signed-off-by: Quanyang Wang +Signed-off-by: Simon Horman +--- + kexec/kexec-syscall.h | 4 ++++ + 1 file changed, 4 insertions(+) + +diff --git a/kexec/kexec-syscall.h b/kexec/kexec-syscall.h +index dac1c1f..92d51d3 100644 +--- a/kexec/kexec-syscall.h ++++ b/kexec/kexec-syscall.h +@@ -56,6 +56,10 @@ + #endif + #endif /*ifndef __NR_kexec_load*/ + ++#ifdef __arm__ ++#undef __NR_kexec_file_load ++#endif ++ + #ifndef __NR_kexec_file_load + + #ifdef __x86_64__ +-- +2.17.1 + diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-kernel/kexec/kexec-tools_2.0.19.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-kernel/kexec/kexec-tools_2.0.19.bb index 34398990..c3f74359 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-kernel/kexec/kexec-tools_2.0.19.bb +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-kernel/kexec/kexec-tools_2.0.19.bb @@ -18,6 +18,7 @@ SRC_URI = "${KERNELORG_MIRROR}/linux/utils/kernel/kexec/kexec-tools-${PV}.tar.gz file://0003-kexec-ARM-Fix-add_buffer_phys_virt-align-issue.patch \ file://0004-x86_64-Add-support-to-build-kexec-tools-with-x32-ABI.patch \ file://0005-Disable-PIE-during-link.patch \ + file://0006-kexec-arm-undefine-__NR_kexec_file_load-for-arm.patch \ " SRC_URI[md5sum] = "052458f0a35c2a3b0d2302caa3318e9f" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-kernel/kmod/kmod.inc b/Contrib-Inspur/openbmc/poky/meta/recipes-kernel/kmod/kmod.inc index e68860f6..33445383 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-kernel/kmod/kmod.inc +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-kernel/kmod/kmod.inc @@ -20,6 +20,7 @@ PV = "26" SRC_URI = "git://git.kernel.org/pub/scm/utils/kernel/kmod/kmod.git \ file://depmod-search.conf \ + file://0001-build-Stop-using-dolt.patch \ file://avoid_parallel_tests.patch \ " @@ -28,14 +29,8 @@ S = "${WORKDIR}/git" EXTRA_AUTORECONF += "--install --symlink" EXTRA_OECONF +=" --enable-tools --with-zlib" -CACHED_CONFIGUREVARS += "ac_cv_path_DOLT_BASH='/usr/bin/env bash'" - PACKAGECONFIG[debug] = "--enable-debug,--disable-debug" PACKAGECONFIG[logging] = " --enable-logging,--disable-logging" PACKAGECONFIG[manpages] = "--enable-manpages, --disable-manpages, libxslt-native xmlto-native" GTKDOC_DOCDIR = "${S}/libkmod/docs" - -do_configure_append () { - sed -i 's#}libtool#}${TARGET_SYS}-libtool#' ${B}/doltlibtool -} diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-kernel/kmod/kmod/0001-build-Stop-using-dolt.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-kernel/kmod/kmod/0001-build-Stop-using-dolt.patch new file mode 100644 index 00000000..c915ad5e --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-kernel/kmod/kmod/0001-build-Stop-using-dolt.patch @@ -0,0 +1,28 @@ +From f8b8d7b330433511d19a936ddfc7b7d1af5490b5 Mon Sep 17 00:00:00 2001 +From: Adrian Bunk +Date: Wed, 20 Feb 2019 14:22:04 +0200 +Subject: build: Stop using dolt + +This does regress "make -12" from 0.7s to 0.9s on my +Coffee Lake machine, but even on slower hardware this +will not amount to a noticable slowdown. + +On the other hand using dolt can create problems for +people doing cross-compilation, e.g. Yocto has two +hacks just for dolt in kmod: +https://git.yoctoproject.org/cgit/cgit.cgi/poky/tree/meta/recipes-kernel/kmod/kmod.inc?id=a17abae00785c76cfffe5381a22fb2c86b982e82 + +Signed-off-by: Adrian Bunk +Upstream-Status: Backport + +--- a/configure.ac ++++ b/configure.ac +@@ -17,7 +17,6 @@ AM_MAINTAINER_MODE([enable]) + AM_INIT_AUTOMAKE([check-news foreign 1.11 silent-rules tar-pax no-dist-gzip dist-xz subdir-objects color-tests parallel-tests]) + AM_SILENT_RULES([yes]) + LT_INIT([disable-static pic-only]) +-DOLT + + AS_IF([test "x$enable_static" = "xyes"], [AC_MSG_ERROR([--enable-static is not supported by kmod])]) + AS_IF([test "x$enable_largefile" = "xno"], [AC_MSG_ERROR([--disable-largefile is not supported by kmod])]) + diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-kernel/kmod/kmod/avoid_parallel_tests.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-kernel/kmod/kmod/avoid_parallel_tests.patch index 990c338f..04a82048 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-kernel/kmod/kmod/avoid_parallel_tests.patch +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-kernel/kmod/kmod/avoid_parallel_tests.patch @@ -20,7 +20,7 @@ diff --git a/configure.ac b/configure.ac index ee72283..60980c0 100644 --- a/configure.ac +++ b/configure.ac -@@ -14,7 +14,7 @@ AC_USE_SYSTEM_EXTENSIONS +@@ -14,8 +14,8 @@ AC_USE_SYSTEM_EXTENSIONS AC_SYS_LARGEFILE AC_PREFIX_DEFAULT([/usr]) AM_MAINTAINER_MODE([enable]) @@ -28,4 +28,5 @@ index ee72283..60980c0 100644 +AM_INIT_AUTOMAKE([check-news foreign 1.11 silent-rules tar-pax no-dist-gzip dist-xz subdir-objects color-tests serial-tests]) AM_SILENT_RULES([yes]) LT_INIT([disable-static pic-only]) - DOLT + + AS_IF([test "x$enable_static" = "xyes"], [AC_MSG_ERROR([--enable-static is not supported by kmod])]) diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-kernel/linux-firmware/linux-firmware_20190815.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-kernel/linux-firmware/linux-firmware_20190815.bb new file mode 100644 index 00000000..d83000b6 --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-kernel/linux-firmware/linux-firmware_20190815.bb @@ -0,0 +1,943 @@ +SUMMARY = "Firmware files for use with Linux kernel" +SECTION = "kernel" + +LICENSE = "\ + Firmware-Abilis \ + & Firmware-adsp_sst \ + & Firmware-agere \ + & Firmware-amdgpu \ + & Firmware-amd-ucode \ + & Firmware-amlogic_vdec \ + & Firmware-atheros_firmware \ + & Firmware-atmel \ + & Firmware-broadcom_bcm43xx \ + & Firmware-ca0132 \ + & Firmware-cavium \ + & Firmware-chelsio_firmware \ + & Firmware-cw1200 \ + & Firmware-cypress \ + & Firmware-dib0700 \ + & Firmware-e100 \ + & Firmware-ene_firmware \ + & Firmware-fw_sst_0f28 \ + & Firmware-go7007 \ + & Firmware-GPLv2 \ + & Firmware-hfi1_firmware \ + & Firmware-i2400m \ + & Firmware-i915 \ + & Firmware-ibt_firmware \ + & Firmware-it913x \ + & Firmware-iwlwifi_firmware \ + & Firmware-IntcSST2 \ + & Firmware-kaweth \ + & Firmware-Marvell \ + & Firmware-moxa \ + & Firmware-myri10ge_firmware \ + & Firmware-netronome \ + & Firmware-nvidia \ + & Firmware-OLPC \ + & Firmware-ath9k-htc \ + & Firmware-phanfw \ + & Firmware-qat \ + & Firmware-qcom \ + & Firmware-qla1280 \ + & Firmware-qla2xxx \ + & Firmware-qualcommAthos_ar3k \ + & Firmware-qualcommAthos_ath10k \ + & Firmware-r8a779x_usb3 \ + & Firmware-radeon \ + & Firmware-ralink_a_mediatek_company_firmware \ + & Firmware-ralink-firmware \ + & Firmware-rtlwifi_firmware \ + & Firmware-imx-sdma_firmware \ + & Firmware-siano \ + & Firmware-tda7706-firmware \ + & Firmware-ti-connectivity \ + & Firmware-ti-keystone \ + & Firmware-ueagle-atm4-firmware \ + & Firmware-via_vt6656 \ + & Firmware-wl1251 \ + & Firmware-xc4000 \ + & Firmware-xc5000 \ + & Firmware-xc5000c \ + & WHENCE \ +" + +LIC_FILES_CHKSUM = "file://LICENCE.Abilis;md5=b5ee3f410780e56711ad48eadc22b8bc \ + file://LICENCE.adsp_sst;md5=615c45b91a5a4a9fe046d6ab9a2df728 \ + file://LICENCE.agere;md5=af0133de6b4a9b2522defd5f188afd31 \ + file://LICENSE.amdgpu;md5=ab515ef6495ab5c5a3b08ab2db62df11 \ + file://LICENSE.amd-ucode;md5=3c5399dc9148d7f0e1f41e34b69cf14f \ + file://LICENSE.amlogic_vdec;md5=dc44f59bf64a81643e500ad3f39a468a \ + file://LICENCE.atheros_firmware;md5=30a14c7823beedac9fa39c64fdd01a13 \ + file://LICENSE.atmel;md5=aa74ac0c60595dee4d4e239107ea77a3 \ + file://LICENCE.broadcom_bcm43xx;md5=3160c14df7228891b868060e1951dfbc \ + file://LICENCE.ca0132;md5=209b33e66ee5be0461f13d31da392198 \ + file://LICENCE.cadence;md5=009f46816f6956cfb75ede13d3e1cee0 \ + file://LICENCE.cavium;md5=c37aaffb1ebe5939b2580d073a95daea \ + file://LICENCE.chelsio_firmware;md5=819aa8c3fa453f1b258ed8d168a9d903 \ + file://LICENCE.cw1200;md5=f0f770864e7a8444a5c5aa9d12a3a7ed \ + file://LICENCE.cypress;md5=48cd9436c763bf873961f9ed7b5c147b \ + file://LICENSE.dib0700;md5=f7411825c8a555a1a3e5eab9ca773431 \ + file://LICENCE.e100;md5=ec0f84136766df159a3ae6d02acdf5a8 \ + file://LICENCE.ene_firmware;md5=ed67f0f62f8f798130c296720b7d3921 \ + file://LICENCE.fw_sst_0f28;md5=6353931c988ad52818ae733ac61cd293 \ + file://LICENCE.go7007;md5=c0bb9f6aaaba55b0529ee9b30aa66beb \ + file://GPL-2;md5=b234ee4d69f5fce4486a80fdaf4a4263 \ + file://LICENSE.hfi1_firmware;md5=5e7b6e586ce7339d12689e49931ad444 \ + file://LICENCE.i2400m;md5=14b901969e23c41881327c0d9e4b7d36 \ + file://LICENSE.i915;md5=2b0b2e0d20984affd4490ba2cba02570 \ + file://LICENCE.ibt_firmware;md5=fdbee1ddfe0fb7ab0b2fcd6b454a366b \ + file://LICENCE.IntcSST2;md5=9e7d8bea77612d7cc7d9e9b54b623062 \ + file://LICENCE.it913x;md5=1fbf727bfb6a949810c4dbfa7e6ce4f8 \ + file://LICENCE.iwlwifi_firmware;md5=3fd842911ea93c29cd32679aa23e1c88 \ + file://LICENCE.kaweth;md5=b1d876e562f4b3b8d391ad8395dfe03f \ + file://LICENCE.Marvell;md5=28b6ed8bd04ba105af6e4dcd6e997772 \ + file://LICENCE.mediatek;md5=7c1976b63217d76ce47d0a11d8a79cf2 \ + file://LICENCE.moxa;md5=1086614767d8ccf744a923289d3d4261 \ + file://LICENCE.myri10ge_firmware;md5=42e32fb89f6b959ca222e25ac8df8fed \ + file://LICENCE.Netronome;md5=4add08f2577086d44447996503cddf5f \ + file://LICENCE.nvidia;md5=4428a922ed3ba2ceec95f076a488ce07 \ + file://LICENCE.OLPC;md5=5b917f9d8c061991be4f6f5f108719cd \ + file://LICENCE.open-ath9k-htc-firmware;md5=1b33c9f4d17bc4d457bdb23727046837 \ + file://LICENCE.phanfw;md5=954dcec0e051f9409812b561ea743bfa \ + file://LICENCE.qat_firmware;md5=9e7d8bea77612d7cc7d9e9b54b623062 \ + file://LICENSE.qcom;md5=164e3362a538eb11d3ac51e8e134294b \ + file://LICENCE.qla1280;md5=d6895732e622d950609093223a2c4f5d \ + file://LICENCE.qla2xxx;md5=505855e921b75f1be4a437ad9b79dff0 \ + file://LICENSE.QualcommAtheros_ar3k;md5=b5fe244fb2b532311de1472a3bc06da5 \ + file://LICENSE.QualcommAtheros_ath10k;md5=cb42b686ee5f5cb890275e4321db60a8 \ + file://LICENCE.r8a779x_usb3;md5=4c1671656153025d7076105a5da7e498 \ + file://LICENSE.radeon;md5=68ec28bacb3613200bca44f404c69b16 \ + file://LICENCE.ralink_a_mediatek_company_firmware;md5=728f1a85fd53fd67fa8d7afb080bc435 \ + file://LICENCE.ralink-firmware.txt;md5=ab2c269277c45476fb449673911a2dfd \ + file://LICENCE.rtlwifi_firmware.txt;md5=00d06cfd3eddd5a2698948ead2ad54a5 \ + file://LICENSE.sdma_firmware;md5=51e8c19ecc2270f4b8ea30341ad63ce9 \ + file://LICENCE.siano;md5=4556c1bf830067f12ca151ad953ec2a5 \ + file://LICENCE.tda7706-firmware.txt;md5=835997cf5e3c131d0dddd695c7d9103e \ + file://LICENCE.ti-connectivity;md5=c5e02be633f1499c109d1652514d85ec \ + file://LICENCE.ti-keystone;md5=3a86335d32864b0bef996bee26cc0f2c \ + file://LICENCE.ueagle-atm4-firmware;md5=4ed7ea6b507ccc583b9d594417714118 \ + file://LICENCE.via_vt6656;md5=e4159694cba42d4377a912e78a6e850f \ + file://LICENCE.wl1251;md5=ad3f81922bb9e197014bb187289d3b5b \ + file://LICENCE.xc4000;md5=0ff51d2dc49fce04814c9155081092f0 \ + file://LICENCE.xc5000;md5=1e170c13175323c32c7f4d0998d53f66 \ + file://LICENCE.xc5000c;md5=12b02efa3049db65d524aeb418dd87ca \ + file://WHENCE;md5=37a01e379219d1e06dbccfa90a8fc0ad \ + " + +# These are not common licenses, set NO_GENERIC_LICENSE for them +# so that the license files will be copied from fetched source +NO_GENERIC_LICENSE[Firmware-Abilis] = "LICENCE.Abilis" +NO_GENERIC_LICENSE[Firmware-adsp_sst] = "LICENCE.adsp_sst" +NO_GENERIC_LICENSE[Firmware-agere] = "LICENCE.agere" +NO_GENERIC_LICENSE[Firmware-amdgpu] = "LICENSE.amdgpu" +NO_GENERIC_LICENSE[Firmware-amd-ucode] = "LICENSE.amd-ucode" +NO_GENERIC_LICENSE[Firmware-amlogic_vdec] = "LICENSE.amlogic_vdec" +NO_GENERIC_LICENSE[Firmware-atheros_firmware] = "LICENCE.atheros_firmware" +NO_GENERIC_LICENSE[Firmware-atmel] = "LICENSE.atmel" +NO_GENERIC_LICENSE[Firmware-broadcom_bcm43xx] = "LICENCE.broadcom_bcm43xx" +NO_GENERIC_LICENSE[Firmware-ca0132] = "LICENCE.ca0132" +NO_GENERIC_LICENSE[Firmware-cadence] = "LICENCE.cadence" +NO_GENERIC_LICENSE[Firmware-cavium] = "LICENCE.cavium" +NO_GENERIC_LICENSE[Firmware-chelsio_firmware] = "LICENCE.chelsio_firmware" +NO_GENERIC_LICENSE[Firmware-cw1200] = "LICENCE.cw1200" +NO_GENERIC_LICENSE[Firmware-cypress] = "LICENCE.cypress" +NO_GENERIC_LICENSE[Firmware-dib0700] = "LICENSE.dib0700" +NO_GENERIC_LICENSE[Firmware-e100] = "LICENCE.e100" +NO_GENERIC_LICENSE[Firmware-ene_firmware] = "LICENCE.ene_firmware" +NO_GENERIC_LICENSE[Firmware-fw_sst_0f28] = "LICENCE.fw_sst_0f28" +NO_GENERIC_LICENSE[Firmware-go7007] = "LICENCE.go7007" +NO_GENERIC_LICENSE[Firmware-GPLv2] = "GPL-2" +NO_GENERIC_LICENSE[Firmware-hfi1_firmware] = "LICENSE.hfi1_firmware" +NO_GENERIC_LICENSE[Firmware-i2400m] = "LICENCE.i2400m" +NO_GENERIC_LICENSE[Firmware-i915] = "LICENSE.i915" +NO_GENERIC_LICENSE[Firmware-ibt_firmware] = "LICENCE.ibt_firmware" +NO_GENERIC_LICENSE[Firmware-IntcSST2] = "LICENCE.IntcSST2" +NO_GENERIC_LICENSE[Firmware-it913x] = "LICENCE.it913x" +NO_GENERIC_LICENSE[Firmware-iwlwifi_firmware] = "LICENCE.iwlwifi_firmware" +NO_GENERIC_LICENSE[Firmware-kaweth] = "LICENCE.kaweth" +NO_GENERIC_LICENSE[Firmware-Marvell] = "LICENCE.Marvell" +NO_GENERIC_LICENSE[Firmware-mediatek] = "LICENCE.mediatek" +NO_GENERIC_LICENSE[Firmware-moxa] = "LICENCE.moxa" +NO_GENERIC_LICENSE[Firmware-myri10ge_firmware] = "LICENCE.myri10ge_firmware" +NO_GENERIC_LICENSE[Firmware-netronome] = "LICENCE.Netronome" +NO_GENERIC_LICENSE[Firmware-nvidia] = "LICENCE.nvidia" +NO_GENERIC_LICENSE[Firmware-OLPC] = "LICENCE.OLPC" +NO_GENERIC_LICENSE[Firmware-ath9k-htc] = "LICENCE.open-ath9k-htc-firmware" +NO_GENERIC_LICENSE[Firmware-phanfw] = "LICENCE.phanfw" +NO_GENERIC_LICENSE[Firmware-qat] = "LICENCE.qat_firmware" +NO_GENERIC_LICENSE[Firmware-qcom] = "LICENSE.qcom" +NO_GENERIC_LICENSE[Firmware-qla1280] = "LICENCE.qla1280" +NO_GENERIC_LICENSE[Firmware-qla2xxx] = "LICENCE.qla2xxx" +NO_GENERIC_LICENSE[Firmware-qualcommAthos_ar3k] = "LICENSE.QualcommAtheros_ar3k" +NO_GENERIC_LICENSE[Firmware-qualcommAthos_ath10k] = "LICENSE.QualcommAtheros_ath10k" +NO_GENERIC_LICENSE[Firmware-r8a779x_usb3] = "LICENCE.r8a779x_usb3" +NO_GENERIC_LICENSE[Firmware-radeon] = "LICENSE.radeon" +NO_GENERIC_LICENSE[Firmware-ralink_a_mediatek_company_firmware] = "LICENCE.ralink_a_mediatek_company_firmware" +NO_GENERIC_LICENSE[Firmware-ralink-firmware] = "LICENCE.ralink-firmware.txt" +NO_GENERIC_LICENSE[Firmware-rtlwifi_firmware] = "LICENCE.rtlwifi_firmware.txt" +NO_GENERIC_LICENSE[Firmware-siano] = "LICENCE.siano" +NO_GENERIC_LICENSE[Firmware-imx-sdma_firmware] = "LICENSE.sdma_firmware" +NO_GENERIC_LICENSE[Firmware-tda7706-firmware] = "LICENCE.tda7706-firmware.txt" +NO_GENERIC_LICENSE[Firmware-ti-connectivity] = "LICENCE.ti-connectivity" +NO_GENERIC_LICENSE[Firmware-ti-keystone] = "LICENCE.ti-keystone" +NO_GENERIC_LICENSE[Firmware-ueagle-atm4-firmware] = "LICENCE.ueagle-atm4-firmware" +NO_GENERIC_LICENSE[Firmware-via_vt6656] = "LICENCE.via_vt6656" +NO_GENERIC_LICENSE[Firmware-wl1251] = "LICENCE.wl1251" +NO_GENERIC_LICENSE[Firmware-xc4000] = "LICENCE.xc4000" +NO_GENERIC_LICENSE[Firmware-xc5000] = "LICENCE.xc5000" +NO_GENERIC_LICENSE[Firmware-xc5000c] = "LICENCE.xc5000c" +NO_GENERIC_LICENSE[WHENCE] = "WHENCE" + +PE = "1" + +SRCREV = "07b925b450bfb4cf3e141c612ec5b104658cd020" + +SRC_URI = "git://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git" + +UPSTREAM_CHECK_COMMITS = "1" + +S = "${WORKDIR}/git" + +inherit allarch + +CLEANBROKEN = "1" + +do_compile() { + : +} + +do_install() { + install -d ${D}${nonarch_base_libdir}/firmware/ + cp -r * ${D}${nonarch_base_libdir}/firmware/ + + # Avoid Makefile to be deployed + rm ${D}${nonarch_base_libdir}/firmware/Makefile + + # Remove unbuild firmware which needs cmake and bash + rm ${D}${nonarch_base_libdir}/firmware/carl9170fw -rf + + # Remove pointless bash script + rm ${D}${nonarch_base_libdir}/firmware/configure + + # Remove python script used to check the WHENCE file + rm ${D}${nonarch_base_libdir}/firmware/check_whence.py + + # Libertas sd8686 + ln -sf libertas/sd8686_v9.bin ${D}${nonarch_base_libdir}/firmware/sd8686.bin + ln -sf libertas/sd8686_v9_helper.bin ${D}${nonarch_base_libdir}/firmware/sd8686_helper.bin + + # fixup wl12xx location, after 2.6.37 the kernel searches a different location for it + ( cd ${D}${nonarch_base_libdir}/firmware ; ln -sf ti-connectivity/* . ) +} + + +PACKAGES =+ "${PN}-ralink-license ${PN}-ralink \ + ${PN}-mt7601u-license ${PN}-mt7601u \ + ${PN}-radeon-license ${PN}-radeon \ + ${PN}-marvell-license ${PN}-pcie8897 ${PN}-pcie8997 \ + ${PN}-sd8686 ${PN}-sd8688 ${PN}-sd8787 ${PN}-sd8797 ${PN}-sd8801 ${PN}-sd8887 ${PN}-sd8897 \ + ${PN}-usb8997 \ + ${PN}-ti-connectivity-license ${PN}-wlcommon ${PN}-wl12xx ${PN}-wl18xx \ + ${PN}-vt6656-license ${PN}-vt6656 \ + ${PN}-rtl-license ${PN}-rtl8188 ${PN}-rtl8192cu ${PN}-rtl8192ce ${PN}-rtl8192su ${PN}-rtl8723 ${PN}-rtl8821 \ + ${PN}-rtl8168 \ + ${PN}-cypress-license \ + ${PN}-broadcom-license \ + ${PN}-bcm-0bb4-0306 \ + ${PN}-bcm43143 \ + ${PN}-bcm43236b \ + ${PN}-bcm43241b0 \ + ${PN}-bcm43241b4 \ + ${PN}-bcm43241b5 \ + ${PN}-bcm43242a \ + ${PN}-bcm4329 \ + ${PN}-bcm4329-fullmac \ + ${PN}-bcm4330 \ + ${PN}-bcm4334 \ + ${PN}-bcm43340 \ + ${PN}-bcm4335 \ + ${PN}-bcm43362 \ + ${PN}-bcm4339 \ + ${PN}-bcm43430 \ + ${PN}-bcm43430a0 \ + ${PN}-bcm43455 \ + ${PN}-bcm4350 \ + ${PN}-bcm4350c2 \ + ${PN}-bcm4354 \ + ${PN}-bcm4356 \ + ${PN}-bcm4356-pcie \ + ${PN}-bcm43569 \ + ${PN}-bcm43570 \ + ${PN}-bcm4358 \ + ${PN}-bcm43602 \ + ${PN}-bcm4366b \ + ${PN}-bcm4366c \ + ${PN}-bcm4371 \ + ${PN}-bcm4373 \ + ${PN}-bcm43xx \ + ${PN}-bcm43xx-hdr \ + ${PN}-atheros-license ${PN}-ar9170 ${PN}-ath6k ${PN}-ath9k \ + ${PN}-gplv2-license ${PN}-carl9170 \ + ${PN}-ar3k-license ${PN}-ar3k ${PN}-ath10k-license ${PN}-ath10k ${PN}-qca \ + \ + ${PN}-imx-sdma-license ${PN}-imx-sdma-imx6q ${PN}-imx-sdma-imx7d \ + \ + ${PN}-iwlwifi-license ${PN}-iwlwifi \ + ${PN}-iwlwifi-135-6 \ + ${PN}-iwlwifi-3160-7 ${PN}-iwlwifi-3160-8 ${PN}-iwlwifi-3160-9 \ + ${PN}-iwlwifi-3160-10 ${PN}-iwlwifi-3160-12 ${PN}-iwlwifi-3160-13 \ + ${PN}-iwlwifi-3160-16 ${PN}-iwlwifi-3160-17 \ + ${PN}-iwlwifi-6000-4 ${PN}-iwlwifi-6000g2a-5 ${PN}-iwlwifi-6000g2a-6 \ + ${PN}-iwlwifi-6000g2b-5 ${PN}-iwlwifi-6000g2b-6 \ + ${PN}-iwlwifi-6050-4 ${PN}-iwlwifi-6050-5 \ + ${PN}-iwlwifi-7260 \ + ${PN}-iwlwifi-7265 \ + ${PN}-iwlwifi-7265d ${PN}-iwlwifi-8000c ${PN}-iwlwifi-8265 \ + ${PN}-iwlwifi-9000 \ + ${PN}-iwlwifi-misc \ + ${PN}-ibt-license ${PN}-ibt ${PN}-ibt-misc \ + ${PN}-ibt-11-5 ${PN}-ibt-12-16 ${PN}-ibt-hw-37-7 ${PN}-ibt-hw-37-8 \ + ${PN}-ibt-17 \ + ${PN}-i915-license ${PN}-i915 \ + ${PN}-adsp-sst-license ${PN}-adsp-sst \ + ${PN}-bnx2-mips \ + ${PN}-liquidio \ + ${PN}-netronome-license ${PN}-netronome \ + ${PN}-qat ${PN}-qat-license \ + ${PN}-qcom-license \ + ${PN}-qcom-venus-1.8 ${PN}-qcom-venus-4.2 \ + ${PN}-qcom-adreno-a3xx ${PN}-qcom-adreno-a530 \ + ${PN}-whence-license \ + ${PN}-license \ + " + +# For atheros +LICENSE_${PN}-ar9170 = "Firmware-atheros_firmware" +LICENSE_${PN}-ath6k = "Firmware-atheros_firmware" +LICENSE_${PN}-ath9k = "Firmware-atheros_firmware" +LICENSE_${PN}-atheros-license = "Firmware-atheros_firmware" + +FILES_${PN}-atheros-license = "${nonarch_base_libdir}/firmware/LICENCE.atheros_firmware" +FILES_${PN}-ar9170 = " \ + ${nonarch_base_libdir}/firmware/ar9170*.fw \ +" +FILES_${PN}-ath6k = " \ + ${nonarch_base_libdir}/firmware/ath6k \ +" +FILES_${PN}-ath9k = " \ + ${nonarch_base_libdir}/firmware/ar9271.fw \ + ${nonarch_base_libdir}/firmware/ar7010*.fw \ + ${nonarch_base_libdir}/firmware/htc_9271.fw \ + ${nonarch_base_libdir}/firmware/htc_7010.fw \ + ${nonarch_base_libdir}/firmware/ath9k_htc/htc_7010-1.4.0.fw \ + ${nonarch_base_libdir}/firmware/ath9k_htc/htc_9271-1.4.0.fw \ +" + +RDEPENDS_${PN}-ar9170 += "${PN}-atheros-license" +RDEPENDS_${PN}-ath6k += "${PN}-atheros-license" +RDEPENDS_${PN}-ath9k += "${PN}-atheros-license" + +# For carl9170 +LICENSE_${PN}-carl9170 = "Firmware-GPLv2" +LICENSE_${PN}-gplv2-license = "Firmware-GPLv2" + +FILES_${PN}-gplv2-license = "${nonarch_base_libdir}/firmware/GPL-2" +FILES_${PN}-carl9170 = " \ + ${nonarch_base_libdir}/firmware/carl9170*.fw \ +" + +RDEPENDS_${PN}-carl9170 += "${PN}-gplv2-license" + +# For QualCommAthos +LICENSE_${PN}-ar3k = "Firmware-qualcommAthos_ar3k" +LICENSE_${PN}-ar3k-license = "Firmware-qualcommAthos_ar3k" +LICENSE_${PN}-ath10k = "Firmware-qualcommAthos_ath10k" +LICENSE_${PN}-ath10k-license = "Firmware-qualcommAthos_ath10k" +LICENSE_${PN}-qca = "Firmware-qualcommAthos_ath10k" + +FILES_${PN}-ar3k-license = "${nonarch_base_libdir}/firmware/LICENSE.QualcommAtheros_ar3k" +FILES_${PN}-ar3k = " \ + ${nonarch_base_libdir}/firmware/ar3k \ +" + +FILES_${PN}-ath10k-license = "${nonarch_base_libdir}/firmware/LICENSE.QualcommAtheros_ath10k" +FILES_${PN}-ath10k = " \ + ${nonarch_base_libdir}/firmware/ath10k \ +" + +FILES_${PN}-qca = " \ + ${nonarch_base_libdir}/firmware/qca \ +" + +RDEPENDS_${PN}-ar3k += "${PN}-ar3k-license" +RDEPENDS_${PN}-ath10k += "${PN}-ath10k-license" +RDEPENDS_${PN}-qca += "${PN}-ath10k-license" + +# For ralink +LICENSE_${PN}-ralink = "Firmware-ralink-firmware" +LICENSE_${PN}-ralink-license = "Firmware-ralink-firmware" + +FILES_${PN}-ralink-license = "${nonarch_base_libdir}/firmware/LICENCE.ralink-firmware.txt" +FILES_${PN}-ralink = " \ + ${nonarch_base_libdir}/firmware/rt*.bin \ +" + +RDEPENDS_${PN}-ralink += "${PN}-ralink-license" + +# For mediatek MT7601U +LICENSE_${PN}-mt7601u = "Firmware-ralink_a_mediatek_company_firmware" +LICENSE_${PN}-mt7601u-license = "Firmware-ralink_a_mediatek_company_firmware" + +FILES_${PN}-mt7601u-license = "${nonarch_base_libdir}/firmware/LICENCE.ralink_a_mediatek_company_firmware" +FILES_${PN}-mt7601u = " \ + ${nonarch_base_libdir}/firmware/mt7601u.bin \ +" + +RDEPENDS_${PN}-mt7601u += "${PN}-mt7601u-license" + +# For radeon +LICENSE_${PN}-radeon = "Firmware-radeon" +LICENSE_${PN}-radeon-license = "Firmware-radeon" + +FILES_${PN}-radeon-license = "${nonarch_base_libdir}/firmware/LICENSE.radeon" +FILES_${PN}-radeon = " \ + ${nonarch_base_libdir}/firmware/radeon \ +" + +RDEPENDS_${PN}-radeon += "${PN}-radeon-license" + +# For marvell +LICENSE_${PN}-pcie8897 = "Firmware-Marvell" +LICENSE_${PN}-pcie8997 = "Firmware-Marvell" +LICENSE_${PN}-sd8686 = "Firmware-Marvell" +LICENSE_${PN}-sd8688 = "Firmware-Marvell" +LICENSE_${PN}-sd8787 = "Firmware-Marvell" +LICENSE_${PN}-sd8797 = "Firmware-Marvell" +LICENSE_${PN}-sd8801 = "Firmware-Marvell" +LICENSE_${PN}-sd8887 = "Firmware-Marvell" +LICENSE_${PN}-sd8897 = "Firmware-Marvell" +LICENSE_${PN}-usb8997 = "Firmware-Marvell" +LICENSE_${PN}-marvell-license = "Firmware-Marvell" + +FILES_${PN}-marvell-license = "${nonarch_base_libdir}/firmware/LICENCE.Marvell" +FILES_${PN}-pcie8897 = " \ + ${nonarch_base_libdir}/firmware/mrvl/pcie8897_uapsta.bin \ +" +FILES_${PN}-pcie8997 = " \ + ${nonarch_base_libdir}/firmware/mrvl/pcie8997_wlan_v4.bin \ + ${nonarch_base_libdir}/firmware/mrvl/pcieuart8997_combo_v4.bin \ + ${nonarch_base_libdir}/firmware/mrvl/pcieusb8997_combo_v4.bin \ +" +FILES_${PN}-sd8686 = " \ + ${nonarch_base_libdir}/firmware/libertas/sd8686_v9* \ + ${nonarch_base_libdir}/firmware/sd8686* \ +" +FILES_${PN}-sd8688 = " \ + ${nonarch_base_libdir}/firmware/libertas/sd8688* \ + ${nonarch_base_libdir}/firmware/mrvl/sd8688* \ +" +FILES_${PN}-sd8787 = " \ + ${nonarch_base_libdir}/firmware/mrvl/sd8787_uapsta.bin \ +" +FILES_${PN}-sd8797 = " \ + ${nonarch_base_libdir}/firmware/mrvl/sd8797_uapsta.bin \ +" +FILES_${PN}-sd8801 = " \ + ${nonarch_base_libdir}/firmware/mrvl/sd8801_uapsta.bin \ +" +FILES_${PN}-sd8887 = " \ + ${nonarch_base_libdir}/firmware/mrvl/sd8887_uapsta.bin \ +" +FILES_${PN}-sd8897 = " \ + ${nonarch_base_libdir}/firmware/mrvl/sd8897_uapsta.bin \ +" +FILES_${PN}-usb8997 = " \ + ${nonarch_base_libdir}/firmware/mrvl/usbusb8997_combo_v4.bin \ +" + +RDEPENDS_${PN}-sd8686 += "${PN}-marvell-license" +RDEPENDS_${PN}-sd8688 += "${PN}-marvell-license" +RDEPENDS_${PN}-sd8787 += "${PN}-marvell-license" +RDEPENDS_${PN}-sd8797 += "${PN}-marvell-license" +RDEPENDS_${PN}-sd8801 += "${PN}-marvell-license" +RDEPENDS_${PN}-sd8887 += "${PN}-marvell-license" +RDEPENDS_${PN}-sd8897 += "${PN}-marvell-license" +RDEPENDS_${PN}-usb8997 += "${PN}-marvell-license" + +# For netronome +LICENSE_${PN}-netronome = "Firmware-netronome" + +FILES_${PN}-netronome-license = " \ + ${nonarch_base_libdir}/firmware/LICENCE.Netronome \ +" +FILES_${PN}-netronome = " \ + ${nonarch_base_libdir}/firmware/netronome/nic_AMDA0081*.nffw \ + ${nonarch_base_libdir}/firmware/netronome/nic_AMDA0096*.nffw \ + ${nonarch_base_libdir}/firmware/netronome/nic_AMDA0097*.nffw \ + ${nonarch_base_libdir}/firmware/netronome/nic_AMDA0099*.nffw \ +" + +RDEPENDS_${PN}-netronome += "${PN}-netronome-license" + +# For rtl +LICENSE_${PN}-rtl8188 = "Firmware-rtlwifi_firmware" +LICENSE_${PN}-rtl8192cu = "Firmware-rtlwifi_firmware" +LICENSE_${PN}-rtl8192ce = "Firmware-rtlwifi_firmware" +LICENSE_${PN}-rtl8192su = "Firmware-rtlwifi_firmware" +LICENSE_${PN}-rtl8723 = "Firmware-rtlwifi_firmware" +LICENSE_${PN}-rtl8821 = "Firmware-rtlwifi_firmware" +LICENSE_${PN}-rtl-license = "Firmware-rtlwifi_firmware" +LICENSE_${PN}-rtl8168 = "WHENCE" + +FILES_${PN}-rtl-license = " \ + ${nonarch_base_libdir}/firmware/LICENCE.rtlwifi_firmware.txt \ +" +FILES_${PN}-rtl8188 = " \ + ${nonarch_base_libdir}/firmware/rtlwifi/rtl8188*.bin \ +" +FILES_${PN}-rtl8192cu = " \ + ${nonarch_base_libdir}/firmware/rtlwifi/rtl8192cufw*.bin \ +" +FILES_${PN}-rtl8192ce = " \ + ${nonarch_base_libdir}/firmware/rtlwifi/rtl8192cfw*.bin \ +" +FILES_${PN}-rtl8192su = " \ + ${nonarch_base_libdir}/firmware/rtlwifi/rtl8712u.bin \ +" +FILES_${PN}-rtl8723 = " \ + ${nonarch_base_libdir}/firmware/rtlwifi/rtl8723*.bin \ +" +FILES_${PN}-rtl8821 = " \ + ${nonarch_base_libdir}/firmware/rtlwifi/rtl8821*.bin \ +" +FILES_${PN}-rtl8168 = " \ + ${nonarch_base_libdir}/firmware/rtl_nic/rtl8168*.fw \ +" + +RDEPENDS_${PN}-rtl8188 += "${PN}-rtl-license" +RDEPENDS_${PN}-rtl8192ce += "${PN}-rtl-license" +RDEPENDS_${PN}-rtl8192cu += "${PN}-rtl-license" +RDEPENDS_${PN}-rtl8192su = "${PN}-rtl-license" +RDEPENDS_${PN}-rtl8723 += "${PN}-rtl-license" +RDEPENDS_${PN}-rtl8821 += "${PN}-rtl-license" +RDEPENDS_${PN}-rtl8168 += "${PN}-whence-license" + +# For ti-connectivity +LICENSE_${PN}-wlcommon = "Firmware-ti-connectivity" +LICENSE_${PN}-wl12xx = "Firmware-ti-connectivity" +LICENSE_${PN}-wl18xx = "Firmware-ti-connectivity" +LICENSE_${PN}-ti-connectivity-license = "Firmware-ti-connectivity" + +FILES_${PN}-ti-connectivity-license = "${nonarch_base_libdir}/firmware/LICENCE.ti-connectivity" +FILES_${PN}-wlcommon = " \ + ${nonarch_base_libdir}/firmware/TI* \ + ${nonarch_base_libdir}/firmware/ti-connectivity/TI* \ +" +FILES_${PN}-wl12xx = " \ + ${nonarch_base_libdir}/firmware/wl12* \ + ${nonarch_base_libdir}/firmware/ti-connectivity/wl12* \ +" +FILES_${PN}-wl18xx = " \ + ${nonarch_base_libdir}/firmware/wl18* \ + ${nonarch_base_libdir}/firmware/ti-connectivity/wl18* \ +" + +RDEPENDS_${PN}-wl12xx = "${PN}-ti-connectivity-license ${PN}-wlcommon" +RDEPENDS_${PN}-wl18xx = "${PN}-ti-connectivity-license ${PN}-wlcommon" + +# For vt6656 +LICENSE_${PN}-vt6656 = "Firmware-via_vt6656" +LICENSE_${PN}-vt6656-license = "Firmware-via_vt6656" + +FILES_${PN}-vt6656-license = "${nonarch_base_libdir}/firmware/LICENCE.via_vt6656" +FILES_${PN}-vt6656 = " \ + ${nonarch_base_libdir}/firmware/vntwusb.fw \ +" + +RDEPENDS_${PN}-vt6656 = "${PN}-vt6656-license" + +# For broadcom + +# for i in `grep brcm WHENCE | grep ^File | sed 's/File: brcm.//g'`; do pkg=`echo $i | sed 's/-[sp40].*//g; s/\.bin//g; s/brcmfmac/bcm/g; s/_hdr/-hdr/g; s/BCM/bcm-0bb4-0306/g'`; echo -e " \${PN}-$pkg \\"; done | sort -u + +LICENSE_${PN}-broadcom-license = "Firmware-broadcom_bcm43xx" +FILES_${PN}-broadcom-license = "${nonarch_base_libdir}/firmware/LICENCE.broadcom_bcm43xx" + +# for i in `grep brcm WHENCE | grep ^File | sed 's/File: brcm.//g'`; do pkg=`echo $i | sed 's/-[sp40].*//g; s/\.bin//g; s/brcmfmac/bcm/g; s/_hdr/-hdr/g; s/BCM/bcm-0bb4-0306/g'`; echo "$i - $pkg"; echo -e "FILES_\${PN}-$pkg = \"\${nonarch_base_libdir}/firmware/brcm/$i\""; done | grep ^FILES + +FILES_${PN}-bcm43xx = "${nonarch_base_libdir}/firmware/brcm/bcm43xx-0.fw" +FILES_${PN}-bcm43xx-hdr = "${nonarch_base_libdir}/firmware/brcm/bcm43xx_hdr-0.fw" +FILES_${PN}-bcm4329-fullmac = "${nonarch_base_libdir}/firmware/brcm/bcm4329-fullmac-4.bin" +FILES_${PN}-bcm43236b = "${nonarch_base_libdir}/firmware/brcm/brcmfmac43236b.bin" +FILES_${PN}-bcm4329 = "${nonarch_base_libdir}/firmware/brcm/brcmfmac4329-sdio.bin" +FILES_${PN}-bcm4330 = "${nonarch_base_libdir}/firmware/brcm/brcmfmac4330-sdio.*" +FILES_${PN}-bcm4334 = "${nonarch_base_libdir}/firmware/brcm/brcmfmac4334-sdio.bin" +FILES_${PN}-bcm4335 = "${nonarch_base_libdir}/firmware/brcm/brcmfmac4335-sdio.bin" +FILES_${PN}-bcm4339 = "${nonarch_base_libdir}/firmware/brcm/brcmfmac4339-sdio.bin" +FILES_${PN}-bcm43241b0 = "${nonarch_base_libdir}/firmware/brcm/brcmfmac43241b0-sdio.bin" +FILES_${PN}-bcm43241b4 = "${nonarch_base_libdir}/firmware/brcm/brcmfmac43241b4-sdio.bin" +FILES_${PN}-bcm43241b5 = "${nonarch_base_libdir}/firmware/brcm/brcmfmac43241b5-sdio.bin" +FILES_${PN}-bcm43242a = "${nonarch_base_libdir}/firmware/brcm/brcmfmac43242a.bin" +FILES_${PN}-bcm43143 = "${nonarch_base_libdir}/firmware/brcm/brcmfmac43143.bin \ + ${nonarch_base_libdir}/firmware/brcm/brcmfmac43143-sdio.bin \ +" +FILES_${PN}-bcm43430a0 = "${nonarch_base_libdir}/firmware/brcm/brcmfmac43430a0-sdio.*" +FILES_${PN}-bcm43455 = "${nonarch_base_libdir}/firmware/brcm/brcmfmac43455-sdio.*" +FILES_${PN}-bcm4350c2 = "${nonarch_base_libdir}/firmware/brcm/brcmfmac4350c2-pcie.bin" +FILES_${PN}-bcm4350 = "${nonarch_base_libdir}/firmware/brcm/brcmfmac4350-pcie.bin" +FILES_${PN}-bcm4356 = "${nonarch_base_libdir}/firmware/brcm/brcmfmac4356-sdio.bin" +FILES_${PN}-bcm43569 = "${nonarch_base_libdir}/firmware/brcm/brcmfmac43569.bin" +FILES_${PN}-bcm43570 = "${nonarch_base_libdir}/firmware/brcm/brcmfmac43570-pcie.bin" +FILES_${PN}-bcm4358 = "${nonarch_base_libdir}/firmware/brcm/brcmfmac4358-pcie.bin" +FILES_${PN}-bcm43602 = "${nonarch_base_libdir}/firmware/brcm/brcmfmac43602-pcie.bin \ + ${nonarch_base_libdir}/firmware/brcm/brcmfmac43602-pcie.ap.bin \ +" +FILES_${PN}-bcm4366b = "${nonarch_base_libdir}/firmware/brcm/brcmfmac4366b-pcie.bin" +FILES_${PN}-bcm4366c = "${nonarch_base_libdir}/firmware/brcm/brcmfmac4366c-pcie.bin" +FILES_${PN}-bcm4371 = "${nonarch_base_libdir}/firmware/brcm/brcmfmac4371-pcie.bin" + +# for i in `grep brcm WHENCE | grep ^File | sed 's/File: brcm.//g'`; do pkg=`echo $i | sed 's/-[sp40].*//g; s/\.bin//g; s/brcmfmac/bcm/g; s/_hdr/-hdr/g; s/BCM/bcm-0bb4-0306/g'`; echo -e "LICENSE_\${PN}-$pkg = \"Firmware-broadcom_bcm43xx\"\nRDEPENDS_\${PN}-$pkg += \"\${PN}-broadcom-license\""; done +# Currently 1st one and last 6 have cypress LICENSE + +LICENSE_${PN}-bcm43xx = "Firmware-broadcom_bcm43xx" +RDEPENDS_${PN}-bcm43xx += "${PN}-broadcom-license" +LICENSE_${PN}-bcm43xx-hdr = "Firmware-broadcom_bcm43xx" +RDEPENDS_${PN}-bcm43xx-hdr += "${PN}-broadcom-license" +LICENSE_${PN}-bcm4329-fullmac = "Firmware-broadcom_bcm43xx" +RDEPENDS_${PN}-bcm4329-fullmac += "${PN}-broadcom-license" +LICENSE_${PN}-bcm43236b = "Firmware-broadcom_bcm43xx" +RDEPENDS_${PN}-bcm43236b += "${PN}-broadcom-license" +LICENSE_${PN}-bcm4329 = "Firmware-broadcom_bcm43xx" +RDEPENDS_${PN}-bcm4329 += "${PN}-broadcom-license" +LICENSE_${PN}-bcm4330 = "Firmware-broadcom_bcm43xx" +RDEPENDS_${PN}-bcm4330 += "${PN}-broadcom-license" +LICENSE_${PN}-bcm4334 = "Firmware-broadcom_bcm43xx" +RDEPENDS_${PN}-bcm4334 += "${PN}-broadcom-license" +LICENSE_${PN}-bcm4335 = "Firmware-broadcom_bcm43xx" +RDEPENDS_${PN}-bcm4335 += "${PN}-broadcom-license" +LICENSE_${PN}-bcm4339 = "Firmware-broadcom_bcm43xx" +RDEPENDS_${PN}-bcm4339 += "${PN}-broadcom-license" +LICENSE_${PN}-bcm43241b0 = "Firmware-broadcom_bcm43xx" +RDEPENDS_${PN}-bcm43241b0 += "${PN}-broadcom-license" +LICENSE_${PN}-bcm43241b4 = "Firmware-broadcom_bcm43xx" +RDEPENDS_${PN}-bcm43241b4 += "${PN}-broadcom-license" +LICENSE_${PN}-bcm43241b5 = "Firmware-broadcom_bcm43xx" +RDEPENDS_${PN}-bcm43241b5 += "${PN}-broadcom-license" +LICENSE_${PN}-bcm43242a = "Firmware-broadcom_bcm43xx" +RDEPENDS_${PN}-bcm43242a += "${PN}-broadcom-license" +LICENSE_${PN}-bcm43143 = "Firmware-broadcom_bcm43xx" +RDEPENDS_${PN}-bcm43143 += "${PN}-broadcom-license" +LICENSE_${PN}-bcm43430a0 = "Firmware-broadcom_bcm43xx" +RDEPENDS_${PN}-bcm43430a0 += "${PN}-broadcom-license" +LICENSE_${PN}-bcm43455 = "Firmware-broadcom_bcm43xx" +RDEPENDS_${PN}-bcm43455 += "${PN}-broadcom-license" +LICENSE_${PN}-bcm4350c2 = "Firmware-broadcom_bcm43xx" +RDEPENDS_${PN}-bcm4350c2 += "${PN}-broadcom-license" +LICENSE_${PN}-bcm4350 = "Firmware-broadcom_bcm43xx" +RDEPENDS_${PN}-bcm4350 += "${PN}-broadcom-license" +LICENSE_${PN}-bcm4356 = "Firmware-broadcom_bcm43xx" +RDEPENDS_${PN}-bcm4356 += "${PN}-broadcom-license" +LICENSE_${PN}-bcm43569 = "Firmware-broadcom_bcm43xx" +RDEPENDS_${PN}-bcm43569 += "${PN}-broadcom-license" +LICENSE_${PN}-bcm43570 = "Firmware-broadcom_bcm43xx" +RDEPENDS_${PN}-bcm43570 += "${PN}-broadcom-license" +LICENSE_${PN}-bcm4358 = "Firmware-broadcom_bcm43xx" +RDEPENDS_${PN}-bcm4358 += "${PN}-broadcom-license" +LICENSE_${PN}-bcm43602 = "Firmware-broadcom_bcm43xx" +RDEPENDS_${PN}-bcm43602 += "${PN}-broadcom-license" +LICENSE_${PN}-bcm4366b = "Firmware-broadcom_bcm43xx" +RDEPENDS_${PN}-bcm4366b += "${PN}-broadcom-license" +LICENSE_${PN}-bcm4366c = "Firmware-broadcom_bcm43xx" +RDEPENDS_${PN}-bcm4366c += "${PN}-broadcom-license" +LICENSE_${PN}-bcm4371 = "Firmware-broadcom_bcm43xx" +RDEPENDS_${PN}-bcm4371 += "${PN}-broadcom-license" + +# For broadcom cypress + +LICENSE_${PN}-cypress-license = "Firmware-cypress" +FILES_${PN}-cypress-license = "${nonarch_base_libdir}/firmware/LICENCE.cypress" + +FILES_${PN}-bcm-0bb4-0306 = "${nonarch_base_libdir}/firmware/brcm/BCM-0bb4-0306.hcd" +FILES_${PN}-bcm43340 = "${nonarch_base_libdir}/firmware/brcm/brcmfmac43340-sdio.*" +FILES_${PN}-bcm43362 = "${nonarch_base_libdir}/firmware/brcm/brcmfmac43362-sdio.*" +FILES_${PN}-bcm43430 = "${nonarch_base_libdir}/firmware/brcm/brcmfmac43430-sdio.*" +FILES_${PN}-bcm4354 = "${nonarch_base_libdir}/firmware/brcm/brcmfmac4354-sdio.bin" +FILES_${PN}-bcm4356-pcie = "${nonarch_base_libdir}/firmware/brcm/brcmfmac4356-pcie.*" +FILES_${PN}-bcm4373 = "${nonarch_base_libdir}/firmware/brcm/brcmfmac4373-sdio.bin \ + ${nonarch_base_libdir}/firmware/brcm/brcmfmac4373.bin \ +" + +LICENSE_${PN}-bcm-0bb4-0306 = "Firmware-cypress" +RDEPENDS_${PN}-bcm-0bb4-0306 += "${PN}-cypress-license" +LICENSE_${PN}-bcm43340 = "Firmware-cypress" +RDEPENDS_${PN}-bcm43340 += "${PN}-cypress-license" +LICENSE_${PN}-bcm43362 = "Firmware-cypress" +RDEPENDS_${PN}-bcm43362 += "${PN}-cypress-license" +LICENSE_${PN}-bcm43430 = "Firmware-cypress" +RDEPENDS_${PN}-bcm43430 += "${PN}-cypress-license" +LICENSE_${PN}-bcm4354 = "Firmware-cypress" +RDEPENDS_${PN}-bcm4354 += "${PN}-cypress-license" +LICENSE_${PN}-bcm4356-pcie = "Firmware-cypress" +RDEPENDS_${PN}-bcm4356-pcie += "${PN}-cypress-license" +LICENSE_${PN}-bcm4373 = "Firmware-cypress" +RDEPENDS_${PN}-bcm4373 += "${PN}-cypress-license" + +# For Broadcom bnx2-mips +# +# which is a separate case to the other Broadcom firmwares since its +# license is contained in the shared WHENCE file. + +LICENSE_${PN}-bnx2-mips = "WHENCE" +LICENSE_${PN}-whence-license = "WHENCE" + +FILES_${PN}-bnx2-mips = "${nonarch_base_libdir}/firmware/bnx2/bnx2-mips-09-6.2.1b.fw" +FILES_${PN}-whence-license = "${nonarch_base_libdir}/firmware/WHENCE" + +RDEPENDS_${PN}-bnx2-mips += "${PN}-whence-license" + +# For imx-sdma +LICENSE_${PN}-imx-sdma-imx6q = "Firmware-imx-sdma_firmware" +LICENSE_${PN}-imx-sdma-imx7d = "Firmware-imx-sdma_firmware" +LICENSE_${PN}-imx-sdma-license = "Firmware-imx-sdma_firmware" + +FILES_${PN}-imx-sdma-imx6q = "${nonarch_base_libdir}/firmware/imx/sdma/sdma-imx6q.bin" + +RPROVIDES_${PN}-imx-sdma-imx6q = "firmware-imx-sdma-imx6q" +RREPLACES_${PN}-imx-sdma-imx6q = "firmware-imx-sdma-imx6q" +RCONFLICTS_${PN}-imx-sdma-imx6q = "firmware-imx-sdma-imx6q" + +FILES_${PN}-imx-sdma-imx7d = "${nonarch_base_libdir}/firmware/imx/sdma/sdma-imx7d.bin" + +FILES_${PN}-imx-sdma-license = "${nonarch_base_libdir}/firmware/LICENSE.sdma_firmware" + +RDEPENDS_${PN}-imx-sdma-imx6q += "${PN}-imx-sdma-license" +RDEPENDS_${PN}-imx-sdma-imx7d += "${PN}-imx-sdma-license" + +# For iwlwifi +LICENSE_${PN}-iwlwifi = "Firmware-iwlwifi_firmware" +LICENSE_${PN}-iwlwifi-135-6 = "Firmware-iwlwifi_firmware" +LICENSE_${PN}-iwlwifi-3160-7 = "Firmware-iwlwifi_firmware" +LICENSE_${PN}-iwlwifi-3160-8 = "Firmware-iwlwifi_firmware" +LICENSE_${PN}-iwlwifi-3160-9 = "Firmware-iwlwifi_firmware" +LICENSE_${PN}-iwlwifi-3160-10 = "Firmware-iwlwifi_firmware" +LICENSE_${PN}-iwlwifi-3160-12 = "Firmware-iwlwifi_firmware" +LICENSE_${PN}-iwlwifi-3160-13 = "Firmware-iwlwifi_firmware" +LICENSE_${PN}-iwlwifi-3160-16 = "Firmware-iwlwifi_firmware" +LICENSE_${PN}-iwlwifi-3160-17 = "Firmware-iwlwifi_firmware" +LICENSE_${PN}-iwlwifi-6000-4 = "Firmware-iwlwifi_firmware" +LICENSE_${PN}-iwlwifi-6000g2a-5 = "Firmware-iwlwifi_firmware" +LICENSE_${PN}-iwlwifi-6000g2a-6 = "Firmware-iwlwifi_firmware" +LICENSE_${PN}-iwlwifi-6000g2b-5 = "Firmware-iwlwifi_firmware" +LICENSE_${PN}-iwlwifi-6000g2b-6 = "Firmware-iwlwifi_firmware" +LICENSE_${PN}-iwlwifi-6050-4 = "Firmware-iwlwifi_firmware" +LICENSE_${PN}-iwlwifi-6050-5 = "Firmware-iwlwifi_firmware" +LICENSE_${PN}-iwlwifi-7260 = "Firmware-iwlwifi_firmware" +LICENSE_${PN}-iwlwifi-7265 = "Firmware-iwlwifi_firmware" +LICENSE_${PN}-iwlwifi-7265d = "Firmware-iwlwifi_firmware" +LICENSE_${PN}-iwlwifi-8000c = "Firmware-iwlwifi_firmware" +LICENSE_${PN}-iwlwifi-8265 = "Firmware-iwlwifi_firmware" +LICENSE_${PN}-iwlwifi-9000 = "Firmware-iwlwifi_firmware" +LICENSE_${PN}-iwlwifi-misc = "Firmware-iwlwifi_firmware" +LICENSE_${PN}-iwlwifi-license = "Firmware-iwlwifi_firmware" + + +FILES_${PN}-iwlwifi-license = "${nonarch_base_libdir}/firmware/LICENCE.iwlwifi_firmware" +FILES_${PN}-iwlwifi-135-6 = "${nonarch_base_libdir}/firmware/iwlwifi-135-6.ucode" +FILES_${PN}-iwlwifi-3160-7 = "${nonarch_base_libdir}/firmware/iwlwifi-3160-7.ucode" +FILES_${PN}-iwlwifi-3160-8 = "${nonarch_base_libdir}/firmware/iwlwifi-3160-8.ucode" +FILES_${PN}-iwlwifi-3160-9 = "${nonarch_base_libdir}/firmware/iwlwifi-3160-9.ucode" +FILES_${PN}-iwlwifi-3160-10 = "${nonarch_base_libdir}/firmware/iwlwifi-3160-10.ucode" +FILES_${PN}-iwlwifi-3160-12 = "${nonarch_base_libdir}/firmware/iwlwifi-3160-12.ucode" +FILES_${PN}-iwlwifi-3160-13 = "${nonarch_base_libdir}/firmware/iwlwifi-3160-13.ucode" +FILES_${PN}-iwlwifi-3160-16 = "${nonarch_base_libdir}/firmware/iwlwifi-3160-16.ucode" +FILES_${PN}-iwlwifi-3160-17 = "${nonarch_base_libdir}/firmware/iwlwifi-3160-17.ucode" +FILES_${PN}-iwlwifi-6000-4 = "${nonarch_base_libdir}/firmware/iwlwifi-6000-4.ucode" +FILES_${PN}-iwlwifi-6000g2a-5 = "${nonarch_base_libdir}/firmware/iwlwifi-6000g2a-5.ucode" +FILES_${PN}-iwlwifi-6000g2a-6 = "${nonarch_base_libdir}/firmware/iwlwifi-6000g2a-6.ucode" +FILES_${PN}-iwlwifi-6000g2b-5 = "${nonarch_base_libdir}/firmware/iwlwifi-6000g2b-5.ucode" +FILES_${PN}-iwlwifi-6000g2b-6 = "${nonarch_base_libdir}/firmware/iwlwifi-6000g2b-6.ucode" +FILES_${PN}-iwlwifi-6050-4 = "${nonarch_base_libdir}/firmware/iwlwifi-6050-4.ucode" +FILES_${PN}-iwlwifi-6050-5 = "${nonarch_base_libdir}/firmware/iwlwifi-6050-5.ucode" +FILES_${PN}-iwlwifi-7260 = "${nonarch_base_libdir}/firmware/iwlwifi-7260-*.ucode" +FILES_${PN}-iwlwifi-7265 = "${nonarch_base_libdir}/firmware/iwlwifi-7265-*.ucode" +FILES_${PN}-iwlwifi-7265d = "${nonarch_base_libdir}/firmware/iwlwifi-7265D-*.ucode" +FILES_${PN}-iwlwifi-8000c = "${nonarch_base_libdir}/firmware/iwlwifi-8000C-*.ucode" +FILES_${PN}-iwlwifi-8265 = "${nonarch_base_libdir}/firmware/iwlwifi-8265-*.ucode" +FILES_${PN}-iwlwifi-9000 = "${nonarch_base_libdir}/firmware/iwlwifi-9000-*.ucode" +FILES_${PN}-iwlwifi-misc = "${nonarch_base_libdir}/firmware/iwlwifi-*.ucode" + +RDEPENDS_${PN}-iwlwifi-135-6 = "${PN}-iwlwifi-license" +RDEPENDS_${PN}-iwlwifi-3160-7 = "${PN}-iwlwifi-license" +RDEPENDS_${PN}-iwlwifi-3160-8 = "${PN}-iwlwifi-license" +RDEPENDS_${PN}-iwlwifi-3160-9 = "${PN}-iwlwifi-license" +RDEPENDS_${PN}-iwlwifi-3160-10 = "${PN}-iwlwifi-license" +RDEPENDS_${PN}-iwlwifi-3160-12 = "${PN}-iwlwifi-license" +RDEPENDS_${PN}-iwlwifi-3160-13 = "${PN}-iwlwifi-license" +RDEPENDS_${PN}-iwlwifi-3160-16 = "${PN}-iwlwifi-license" +RDEPENDS_${PN}-iwlwifi-3160-17 = "${PN}-iwlwifi-license" +RDEPENDS_${PN}-iwlwifi-6000-4 = "${PN}-iwlwifi-license" +RDEPENDS_${PN}-iwlwifi-6000g2a-5 = "${PN}-iwlwifi-license" +RDEPENDS_${PN}-iwlwifi-6000g2a-6 = "${PN}-iwlwifi-license" +RDEPENDS_${PN}-iwlwifi-6000g2b-5 = "${PN}-iwlwifi-license" +RDEPENDS_${PN}-iwlwifi-6000g2b-6 = "${PN}-iwlwifi-license" +RDEPENDS_${PN}-iwlwifi-6050-4 = "${PN}-iwlwifi-license" +RDEPENDS_${PN}-iwlwifi-6050-5 = "${PN}-iwlwifi-license" +RDEPENDS_${PN}-iwlwifi-7260 = "${PN}-iwlwifi-license" +RDEPENDS_${PN}-iwlwifi-7265 = "${PN}-iwlwifi-license" +RDEPENDS_${PN}-iwlwifi-7265d = "${PN}-iwlwifi-license" +RDEPENDS_${PN}-iwlwifi-8000c = "${PN}-iwlwifi-license" +RDEPENDS_${PN}-iwlwifi-8265 = "${PN}-iwlwifi-license" +RDEPENDS_${PN}-iwlwifi-9000 = "${PN}-iwlwifi-license" +RDEPENDS_${PN}-iwlwifi-misc = "${PN}-iwlwifi-license" + +# -iwlwifi-misc is a "catch all" package that includes all the iwlwifi +# firmwares that are not already included in other -iwlwifi- packages. +# -iwlwifi is a virtual package that depends upon all iwlwifi packages. +# These are distinct in order to allow the -misc firmwares to be installed +# without pulling in every other iwlwifi package. +ALLOW_EMPTY_${PN}-iwlwifi = "1" +ALLOW_EMPTY_${PN}-iwlwifi-misc = "1" + +# Handle package updating for the newly merged iwlwifi groupings +RPROVIDES_${PN}-iwlwifi-7265 = "${PN}-iwlwifi-7265-8 ${PN}-iwlwifi-7265-9" +RREPLACES_${PN}-iwlwifi-7265 = "${PN}-iwlwifi-7265-8 ${PN}-iwlwifi-7265-9" +RCONFLICTS_${PN}-iwlwifi-7265 = "${PN}-iwlwifi-7265-8 ${PN}-iwlwifi-7265-9" + +RPROVIDES_${PN}-iwlwifi-7260 = "${PN}-iwlwifi-7260-7 ${PN}-iwlwifi-7260-8 ${PN}-iwlwifi-7260-9" +RREPLACES_${PN}-iwlwifi-7260 = "${PN}-iwlwifi-7260-7 ${PN}-iwlwifi-7260-8 ${PN}-iwlwifi-7260-9" +RCONFLICTS_${PN}-iwlwifi-7260 = "${PN}-iwlwifi-7260-7 ${PN}-iwlwifi-7260-8 ${PN}-iwlwifi-7260-9" + +# For ibt +LICENSE_${PN}-ibt-license = "Firmware-ibt_firmware" +LICENSE_${PN}-ibt-hw-37-7 = "Firmware-ibt_firmware" +LICENSE_${PN}-ibt-hw-37-8 = "Firmware-ibt_firmware" +LICENSE_${PN}-ibt-11-5 = "Firmware-ibt_firmware" +LICENSE_${PN}-ibt-12-16 = "Firmware-ibt_firmware" +LICENSE_${PN}-ibt-17 = "Firmware-ibt_firmware" +LICENSE_${PN}-ibt-misc = "Firmware-ibt_firmware" + +FILES_${PN}-ibt-license = "${nonarch_base_libdir}/firmware/LICENCE.ibt_firmware" +FILES_${PN}-ibt-hw-37-7 = "${nonarch_base_libdir}/firmware/intel/ibt-hw-37.7*.bseq" +FILES_${PN}-ibt-hw-37-8 = "${nonarch_base_libdir}/firmware/intel/ibt-hw-37.8*.bseq" +FILES_${PN}-ibt-11-5 = "${nonarch_base_libdir}/firmware/intel/ibt-11-5.sfi ${nonarch_base_libdir}/firmware/intel/ibt-11-5.ddc" +FILES_${PN}-ibt-12-16 = "${nonarch_base_libdir}/firmware/intel/ibt-12-16.sfi ${nonarch_base_libdir}/firmware/intel/ibt-12-16.ddc" +FILES_${PN}-ibt-17 = "${nonarch_base_libdir}/firmware/intel/ibt-17-*.sfi ${nonarch_base_libdir}/firmware/intel/ibt-17-*.ddc" +FILES_${PN}-ibt-misc = "${nonarch_base_libdir}/firmware/ibt-*" + +RDEPENDS_${PN}-ibt-hw-37-7 = "${PN}-ibt-license" +RDEPENDS_${PN}-ibt-hw-37.8 = "${PN}-ibt-license" +RDEPENDS_${PN}-ibt-11-5 = "${PN}-ibt-license" +RDEPENDS_${PN}-ibt-12-16 = "${PN}-ibt-license" +RDEPENDS_${PN}-ibt-17 = "${PN}-ibt-license" +RDEPENDS_${PN}-ibt-misc = "${PN}-ibt-license" + +ALLOW_EMPTY_${PN}-ibt= "1" +ALLOW_EMPTY_${PN}-ibt-misc = "1" + +LICENSE_${PN}-i915 = "Firmware-i915" +LICENSE_${PN}-i915-license = "Firmware-i915" +FILES_${PN}-i915-license = "${nonarch_base_libdir}/firmware/LICENSE.i915" +FILES_${PN}-i915 = "${nonarch_base_libdir}/firmware/i915" +RDEPENDS_${PN}-i915 = "${PN}-i915-license" + +FILES_${PN}-adsp-sst-license = "${nonarch_base_libdir}/firmware/LICENCE.adsp_sst" +LICENSE_${PN}-adsp-sst = "Firmware-adsp_sst" +LICENSE_${PN}-adsp-sst-license = "Firmware-adsp_sst" +FILES_${PN}-adsp-sst = "${nonarch_base_libdir}/firmware/intel/dsp_fw*" +RDEPENDS_${PN}-adsp-sst = "${PN}-adsp-sst-license" + +# For QAT +LICENSE_${PN}-qat = "Firmware-qat" +LICENSE_${PN}-qat-license = "Firmware-qat" +FILES_${PN}-qat-license = "${nonarch_base_libdir}/firmware/LICENCE.qat_firmware" +FILES_${PN}-qat = "${nonarch_base_libdir}/firmware/qat*.bin" +RDEPENDS_${PN}-qat = "${PN}-qat-license" + +# For QCOM VPU/GPU +LICENSE_${PN}-qcom-license = "Firmware-qcom" +FILES_${PN}-qcom-license = "${nonarch_base_libdir}/firmware/LICENSE.qcom ${nonarch_base_libdir}/firmware/qcom/NOTICE.txt" +FILES_${PN}-qcom-venus-1.8 = "${nonarch_base_libdir}/firmware/qcom/venus-1.8/*" +FILES_${PN}-qcom-venus-4.2 = "${nonarch_base_libdir}/firmware/qcom/venus-4.2/*" +FILES_${PN}-qcom-adreno-a3xx = "${nonarch_base_libdir}/firmware/qcom/a300_*.fw ${nonarch_base_libdir}/firmware/a300_*.fw" +FILES_${PN}-qcom-adreno-a530 = "${nonarch_base_libdir}/firmware/qcom/a530*.*" +RDEPENDS_${PN}-qcom-venus-1.8 = "${PN}-qcom-license" +RDEPENDS_${PN}-qcom-venus-4.2 = "${PN}-qcom-license" +RDEPENDS_${PN}-qcom-adreno-a3xx = "${PN}-qcom-license" +RDEPENDS_${PN}-qcom-adreno-a530 = "${PN}-qcom-license" + +FILES_${PN}-liquidio = "${nonarch_base_libdir}/firmware/liquidio" + +# For other firmwares +# Maybe split out to separate packages when needed. +LICENSE_${PN} = "\ + Firmware-Abilis \ + & Firmware-agere \ + & Firmware-amdgpu \ + & Firmware-amd-ucode \ + & Firmware-atmel \ + & Firmware-ca0132 \ + & Firmware-cavium \ + & Firmware-chelsio_firmware \ + & Firmware-cw1200 \ + & Firmware-dib0700 \ + & Firmware-e100 \ + & Firmware-ene_firmware \ + & Firmware-fw_sst_0f28 \ + & Firmware-go7007 \ + & Firmware-hfi1_firmware \ + & Firmware-i2400m \ + & Firmware-ibt_firmware \ + & Firmware-it913x \ + & Firmware-IntcSST2 \ + & Firmware-kaweth \ + & Firmware-moxa \ + & Firmware-myri10ge_firmware \ + & Firmware-nvidia \ + & Firmware-OLPC \ + & Firmware-ath9k-htc \ + & Firmware-phanfw \ + & Firmware-qat \ + & Firmware-qcom \ + & Firmware-qla1280 \ + & Firmware-qla2xxx \ + & Firmware-r8a779x_usb3 \ + & Firmware-radeon \ + & Firmware-ralink_a_mediatek_company_firmware \ + & Firmware-ralink-firmware \ + & Firmware-imx-sdma_firmware \ + & Firmware-siano \ + & Firmware-tda7706-firmware \ + & Firmware-ti-connectivity \ + & Firmware-ti-keystone \ + & Firmware-ueagle-atm4-firmware \ + & Firmware-wl1251 \ + & Firmware-xc4000 \ + & Firmware-xc5000 \ + & Firmware-xc5000c \ + & WHENCE \ +" + +FILES_${PN}-license += "${nonarch_base_libdir}/firmware/LICEN*" +FILES_${PN} += "${nonarch_base_libdir}/firmware/*" +RDEPENDS_${PN} += "${PN}-license" +RDEPENDS_${PN} += "${PN}-whence-license" + +# Make linux-firmware depend on all of the split-out packages. +# Make linux-firmware-iwlwifi depend on all of the split-out iwlwifi packages. +# Make linux-firmware-ibt depend on all of the split-out ibt packages. +python populate_packages_prepend () { + firmware_pkgs = oe.utils.packages_filter_out_system(d) + d.appendVar('RRECOMMENDS_linux-firmware', ' ' + ' '.join(firmware_pkgs)) + + iwlwifi_pkgs = filter(lambda x: x.find('-iwlwifi-') != -1, firmware_pkgs) + d.appendVar('RRECOMMENDS_linux-firmware-iwlwifi', ' ' + ' '.join(iwlwifi_pkgs)) + + ibt_pkgs = filter(lambda x: x.find('-ibt-') != -1, firmware_pkgs) + d.appendVar('RRECOMMENDS_linux-firmware-ibt', ' ' + ' '.join(ibt_pkgs)) +} + +# Firmware files are generally not ran on the CPU, so they can be +# allarch despite being architecture specific +INSANE_SKIP = "arch" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-kernel/linux-firmware/linux-firmware_git.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-kernel/linux-firmware/linux-firmware_git.bb deleted file mode 100644 index 8b6ad96d..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-kernel/linux-firmware/linux-firmware_git.bb +++ /dev/null @@ -1,939 +0,0 @@ -SUMMARY = "Firmware files for use with Linux kernel" -SECTION = "kernel" - -LICENSE = "\ - Firmware-Abilis \ - & Firmware-adsp_sst \ - & Firmware-agere \ - & Firmware-amdgpu \ - & Firmware-amd-ucode \ - & Firmware-amlogic_vdec \ - & Firmware-atheros_firmware \ - & Firmware-atmel \ - & Firmware-broadcom_bcm43xx \ - & Firmware-ca0132 \ - & Firmware-cavium \ - & Firmware-chelsio_firmware \ - & Firmware-cw1200 \ - & Firmware-cypress \ - & Firmware-dib0700 \ - & Firmware-e100 \ - & Firmware-ene_firmware \ - & Firmware-fw_sst_0f28 \ - & Firmware-go7007 \ - & Firmware-GPLv2 \ - & Firmware-hfi1_firmware \ - & Firmware-i2400m \ - & Firmware-i915 \ - & Firmware-ibt_firmware \ - & Firmware-it913x \ - & Firmware-iwlwifi_firmware \ - & Firmware-IntcSST2 \ - & Firmware-kaweth \ - & Firmware-Marvell \ - & Firmware-moxa \ - & Firmware-myri10ge_firmware \ - & Firmware-netronome \ - & Firmware-nvidia \ - & Firmware-OLPC \ - & Firmware-ath9k-htc \ - & Firmware-phanfw \ - & Firmware-qat \ - & Firmware-qcom \ - & Firmware-qla1280 \ - & Firmware-qla2xxx \ - & Firmware-qualcommAthos_ar3k \ - & Firmware-qualcommAthos_ath10k \ - & Firmware-r8a779x_usb3 \ - & Firmware-radeon \ - & Firmware-ralink_a_mediatek_company_firmware \ - & Firmware-ralink-firmware \ - & Firmware-rtlwifi_firmware \ - & Firmware-imx-sdma_firmware \ - & Firmware-siano \ - & Firmware-tda7706-firmware \ - & Firmware-ti-connectivity \ - & Firmware-ti-keystone \ - & Firmware-ueagle-atm4-firmware \ - & Firmware-via_vt6656 \ - & Firmware-wl1251 \ - & Firmware-xc4000 \ - & Firmware-xc5000 \ - & Firmware-xc5000c \ - & WHENCE \ -" - -LIC_FILES_CHKSUM = "file://LICENCE.Abilis;md5=b5ee3f410780e56711ad48eadc22b8bc \ - file://LICENCE.adsp_sst;md5=615c45b91a5a4a9fe046d6ab9a2df728 \ - file://LICENCE.agere;md5=af0133de6b4a9b2522defd5f188afd31 \ - file://LICENSE.amdgpu;md5=ab515ef6495ab5c5a3b08ab2db62df11 \ - file://LICENSE.amd-ucode;md5=3c5399dc9148d7f0e1f41e34b69cf14f \ - file://LICENSE.amlogic_vdec;md5=dc44f59bf64a81643e500ad3f39a468a \ - file://LICENCE.atheros_firmware;md5=30a14c7823beedac9fa39c64fdd01a13 \ - file://LICENSE.atmel;md5=aa74ac0c60595dee4d4e239107ea77a3 \ - file://LICENCE.broadcom_bcm43xx;md5=3160c14df7228891b868060e1951dfbc \ - file://LICENCE.ca0132;md5=209b33e66ee5be0461f13d31da392198 \ - file://LICENCE.cadence;md5=009f46816f6956cfb75ede13d3e1cee0 \ - file://LICENCE.cavium;md5=c37aaffb1ebe5939b2580d073a95daea \ - file://LICENCE.chelsio_firmware;md5=819aa8c3fa453f1b258ed8d168a9d903 \ - file://LICENCE.cw1200;md5=f0f770864e7a8444a5c5aa9d12a3a7ed \ - file://LICENCE.cypress;md5=48cd9436c763bf873961f9ed7b5c147b \ - file://LICENSE.dib0700;md5=f7411825c8a555a1a3e5eab9ca773431 \ - file://LICENCE.e100;md5=ec0f84136766df159a3ae6d02acdf5a8 \ - file://LICENCE.ene_firmware;md5=ed67f0f62f8f798130c296720b7d3921 \ - file://LICENCE.fw_sst_0f28;md5=6353931c988ad52818ae733ac61cd293 \ - file://LICENCE.go7007;md5=c0bb9f6aaaba55b0529ee9b30aa66beb \ - file://GPL-2;md5=b234ee4d69f5fce4486a80fdaf4a4263 \ - file://LICENSE.hfi1_firmware;md5=5e7b6e586ce7339d12689e49931ad444 \ - file://LICENCE.i2400m;md5=14b901969e23c41881327c0d9e4b7d36 \ - file://LICENSE.i915;md5=2b0b2e0d20984affd4490ba2cba02570 \ - file://LICENCE.ibt_firmware;md5=fdbee1ddfe0fb7ab0b2fcd6b454a366b \ - file://LICENCE.IntcSST2;md5=9e7d8bea77612d7cc7d9e9b54b623062 \ - file://LICENCE.it913x;md5=1fbf727bfb6a949810c4dbfa7e6ce4f8 \ - file://LICENCE.iwlwifi_firmware;md5=3fd842911ea93c29cd32679aa23e1c88 \ - file://LICENCE.kaweth;md5=b1d876e562f4b3b8d391ad8395dfe03f \ - file://LICENCE.Marvell;md5=9ddea1734a4baf3c78d845151f42a37a \ - file://LICENCE.mediatek;md5=7c1976b63217d76ce47d0a11d8a79cf2 \ - file://LICENCE.moxa;md5=1086614767d8ccf744a923289d3d4261 \ - file://LICENCE.myri10ge_firmware;md5=42e32fb89f6b959ca222e25ac8df8fed \ - file://LICENCE.Netronome;md5=4add08f2577086d44447996503cddf5f \ - file://LICENCE.nvidia;md5=4428a922ed3ba2ceec95f076a488ce07 \ - file://LICENCE.OLPC;md5=5b917f9d8c061991be4f6f5f108719cd \ - file://LICENCE.open-ath9k-htc-firmware;md5=1b33c9f4d17bc4d457bdb23727046837 \ - file://LICENCE.phanfw;md5=954dcec0e051f9409812b561ea743bfa \ - file://LICENCE.qat_firmware;md5=9e7d8bea77612d7cc7d9e9b54b623062 \ - file://LICENSE.qcom;md5=164e3362a538eb11d3ac51e8e134294b \ - file://LICENCE.qla1280;md5=d6895732e622d950609093223a2c4f5d \ - file://LICENCE.qla2xxx;md5=505855e921b75f1be4a437ad9b79dff0 \ - file://LICENSE.QualcommAtheros_ar3k;md5=b5fe244fb2b532311de1472a3bc06da5 \ - file://LICENSE.QualcommAtheros_ath10k;md5=cb42b686ee5f5cb890275e4321db60a8 \ - file://LICENCE.r8a779x_usb3;md5=4c1671656153025d7076105a5da7e498 \ - file://LICENSE.radeon;md5=68ec28bacb3613200bca44f404c69b16 \ - file://LICENCE.ralink_a_mediatek_company_firmware;md5=728f1a85fd53fd67fa8d7afb080bc435 \ - file://LICENCE.ralink-firmware.txt;md5=ab2c269277c45476fb449673911a2dfd \ - file://LICENCE.rtlwifi_firmware.txt;md5=00d06cfd3eddd5a2698948ead2ad54a5 \ - file://LICENSE.sdma_firmware;md5=51e8c19ecc2270f4b8ea30341ad63ce9 \ - file://LICENCE.siano;md5=4556c1bf830067f12ca151ad953ec2a5 \ - file://LICENCE.tda7706-firmware.txt;md5=835997cf5e3c131d0dddd695c7d9103e \ - file://LICENCE.ti-connectivity;md5=c5e02be633f1499c109d1652514d85ec \ - file://LICENCE.ti-keystone;md5=3a86335d32864b0bef996bee26cc0f2c \ - file://LICENCE.ueagle-atm4-firmware;md5=4ed7ea6b507ccc583b9d594417714118 \ - file://LICENCE.via_vt6656;md5=e4159694cba42d4377a912e78a6e850f \ - file://LICENCE.wl1251;md5=ad3f81922bb9e197014bb187289d3b5b \ - file://LICENCE.xc4000;md5=0ff51d2dc49fce04814c9155081092f0 \ - file://LICENCE.xc5000;md5=1e170c13175323c32c7f4d0998d53f66 \ - file://LICENCE.xc5000c;md5=12b02efa3049db65d524aeb418dd87ca \ - file://WHENCE;md5=b6e44adf71bc37e5f26ebfe5a08b5490 \ - " - -# These are not common licenses, set NO_GENERIC_LICENSE for them -# so that the license files will be copied from fetched source -NO_GENERIC_LICENSE[Firmware-Abilis] = "LICENCE.Abilis" -NO_GENERIC_LICENSE[Firmware-adsp_sst] = "LICENCE.adsp_sst" -NO_GENERIC_LICENSE[Firmware-agere] = "LICENCE.agere" -NO_GENERIC_LICENSE[Firmware-amdgpu] = "LICENSE.amdgpu" -NO_GENERIC_LICENSE[Firmware-amd-ucode] = "LICENSE.amd-ucode" -NO_GENERIC_LICENSE[Firmware-amlogic_vdec] = "LICENSE.amlogic_vdec" -NO_GENERIC_LICENSE[Firmware-atheros_firmware] = "LICENCE.atheros_firmware" -NO_GENERIC_LICENSE[Firmware-atmel] = "LICENSE.atmel" -NO_GENERIC_LICENSE[Firmware-broadcom_bcm43xx] = "LICENCE.broadcom_bcm43xx" -NO_GENERIC_LICENSE[Firmware-ca0132] = "LICENCE.ca0132" -NO_GENERIC_LICENSE[Firmware-cadence] = "LICENCE.cadence" -NO_GENERIC_LICENSE[Firmware-cavium] = "LICENCE.cavium" -NO_GENERIC_LICENSE[Firmware-chelsio_firmware] = "LICENCE.chelsio_firmware" -NO_GENERIC_LICENSE[Firmware-cw1200] = "LICENCE.cw1200" -NO_GENERIC_LICENSE[Firmware-cypress] = "LICENCE.cypress" -NO_GENERIC_LICENSE[Firmware-dib0700] = "LICENSE.dib0700" -NO_GENERIC_LICENSE[Firmware-e100] = "LICENCE.e100" -NO_GENERIC_LICENSE[Firmware-ene_firmware] = "LICENCE.ene_firmware" -NO_GENERIC_LICENSE[Firmware-fw_sst_0f28] = "LICENCE.fw_sst_0f28" -NO_GENERIC_LICENSE[Firmware-go7007] = "LICENCE.go7007" -NO_GENERIC_LICENSE[Firmware-GPLv2] = "GPL-2" -NO_GENERIC_LICENSE[Firmware-hfi1_firmware] = "LICENSE.hfi1_firmware" -NO_GENERIC_LICENSE[Firmware-i2400m] = "LICENCE.i2400m" -NO_GENERIC_LICENSE[Firmware-i915] = "LICENSE.i915" -NO_GENERIC_LICENSE[Firmware-ibt_firmware] = "LICENCE.ibt_firmware" -NO_GENERIC_LICENSE[Firmware-IntcSST2] = "LICENCE.IntcSST2" -NO_GENERIC_LICENSE[Firmware-it913x] = "LICENCE.it913x" -NO_GENERIC_LICENSE[Firmware-iwlwifi_firmware] = "LICENCE.iwlwifi_firmware" -NO_GENERIC_LICENSE[Firmware-kaweth] = "LICENCE.kaweth" -NO_GENERIC_LICENSE[Firmware-Marvell] = "LICENCE.Marvell" -NO_GENERIC_LICENSE[Firmware-mediatek] = "LICENCE.mediatek" -NO_GENERIC_LICENSE[Firmware-moxa] = "LICENCE.moxa" -NO_GENERIC_LICENSE[Firmware-myri10ge_firmware] = "LICENCE.myri10ge_firmware" -NO_GENERIC_LICENSE[Firmware-netronome] = "LICENCE.Netronome" -NO_GENERIC_LICENSE[Firmware-nvidia] = "LICENCE.nvidia" -NO_GENERIC_LICENSE[Firmware-OLPC] = "LICENCE.OLPC" -NO_GENERIC_LICENSE[Firmware-ath9k-htc] = "LICENCE.open-ath9k-htc-firmware" -NO_GENERIC_LICENSE[Firmware-phanfw] = "LICENCE.phanfw" -NO_GENERIC_LICENSE[Firmware-qat] = "LICENCE.qat_firmware" -NO_GENERIC_LICENSE[Firmware-qcom] = "LICENSE.qcom" -NO_GENERIC_LICENSE[Firmware-qla1280] = "LICENCE.qla1280" -NO_GENERIC_LICENSE[Firmware-qla2xxx] = "LICENCE.qla2xxx" -NO_GENERIC_LICENSE[Firmware-qualcommAthos_ar3k] = "LICENSE.QualcommAtheros_ar3k" -NO_GENERIC_LICENSE[Firmware-qualcommAthos_ath10k] = "LICENSE.QualcommAtheros_ath10k" -NO_GENERIC_LICENSE[Firmware-r8a779x_usb3] = "LICENCE.r8a779x_usb3" -NO_GENERIC_LICENSE[Firmware-radeon] = "LICENSE.radeon" -NO_GENERIC_LICENSE[Firmware-ralink_a_mediatek_company_firmware] = "LICENCE.ralink_a_mediatek_company_firmware" -NO_GENERIC_LICENSE[Firmware-ralink-firmware] = "LICENCE.ralink-firmware.txt" -NO_GENERIC_LICENSE[Firmware-rtlwifi_firmware] = "LICENCE.rtlwifi_firmware.txt" -NO_GENERIC_LICENSE[Firmware-siano] = "LICENCE.siano" -NO_GENERIC_LICENSE[Firmware-imx-sdma_firmware] = "LICENSE.sdma_firmware" -NO_GENERIC_LICENSE[Firmware-tda7706-firmware] = "LICENCE.tda7706-firmware.txt" -NO_GENERIC_LICENSE[Firmware-ti-connectivity] = "LICENCE.ti-connectivity" -NO_GENERIC_LICENSE[Firmware-ti-keystone] = "LICENCE.ti-keystone" -NO_GENERIC_LICENSE[Firmware-ueagle-atm4-firmware] = "LICENCE.ueagle-atm4-firmware" -NO_GENERIC_LICENSE[Firmware-via_vt6656] = "LICENCE.via_vt6656" -NO_GENERIC_LICENSE[Firmware-wl1251] = "LICENCE.wl1251" -NO_GENERIC_LICENSE[Firmware-xc4000] = "LICENCE.xc4000" -NO_GENERIC_LICENSE[Firmware-xc5000] = "LICENCE.xc5000" -NO_GENERIC_LICENSE[Firmware-xc5000c] = "LICENCE.xc5000c" -NO_GENERIC_LICENSE[WHENCE] = "WHENCE" - -SRCREV = "711d3297bac870af42088a467459a0634c1970ca" -PE = "1" -PV = "0.0+git${SRCPV}" - -SRC_URI = "git://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git" - -UPSTREAM_CHECK_COMMITS = "1" - -S = "${WORKDIR}/git" - -inherit allarch - -CLEANBROKEN = "1" - -do_compile() { - : -} - -do_install() { - install -d ${D}${nonarch_base_libdir}/firmware/ - cp -r * ${D}${nonarch_base_libdir}/firmware/ - - # Avoid Makefile to be deployed - rm ${D}${nonarch_base_libdir}/firmware/Makefile - - # Remove unbuild firmware which needs cmake and bash - rm ${D}${nonarch_base_libdir}/firmware/carl9170fw -rf - - # Remove pointless bash script - rm ${D}${nonarch_base_libdir}/firmware/configure - - # Remove python script used to check the WHENCE file - rm ${D}${nonarch_base_libdir}/firmware/check_whence.py - - # Libertas sd8686 - ln -sf libertas/sd8686_v9.bin ${D}${nonarch_base_libdir}/firmware/sd8686.bin - ln -sf libertas/sd8686_v9_helper.bin ${D}${nonarch_base_libdir}/firmware/sd8686_helper.bin - - # fixup wl12xx location, after 2.6.37 the kernel searches a different location for it - ( cd ${D}${nonarch_base_libdir}/firmware ; ln -sf ti-connectivity/* . ) -} - - -PACKAGES =+ "${PN}-ralink-license ${PN}-ralink \ - ${PN}-mt7601u-license ${PN}-mt7601u \ - ${PN}-radeon-license ${PN}-radeon \ - ${PN}-marvell-license ${PN}-pcie8897 ${PN}-pcie8997 \ - ${PN}-sd8686 ${PN}-sd8688 ${PN}-sd8787 ${PN}-sd8797 ${PN}-sd8801 ${PN}-sd8887 ${PN}-sd8897 \ - ${PN}-usb8997 \ - ${PN}-ti-connectivity-license ${PN}-wlcommon ${PN}-wl12xx ${PN}-wl18xx \ - ${PN}-vt6656-license ${PN}-vt6656 \ - ${PN}-rtl-license ${PN}-rtl8188 ${PN}-rtl8192cu ${PN}-rtl8192ce ${PN}-rtl8192su ${PN}-rtl8723 ${PN}-rtl8821 \ - ${PN}-rtl8168 \ - ${PN}-cypress-license \ - ${PN}-broadcom-license \ - ${PN}-bcm-0bb4-0306 \ - ${PN}-bcm43143 \ - ${PN}-bcm43236b \ - ${PN}-bcm43241b0 \ - ${PN}-bcm43241b4 \ - ${PN}-bcm43241b5 \ - ${PN}-bcm43242a \ - ${PN}-bcm4329 \ - ${PN}-bcm4329-fullmac \ - ${PN}-bcm4330 \ - ${PN}-bcm4334 \ - ${PN}-bcm43340 \ - ${PN}-bcm4335 \ - ${PN}-bcm43362 \ - ${PN}-bcm4339 \ - ${PN}-bcm43430 \ - ${PN}-bcm43430a0 \ - ${PN}-bcm43455 \ - ${PN}-bcm4350 \ - ${PN}-bcm4350c2 \ - ${PN}-bcm4354 \ - ${PN}-bcm4356 \ - ${PN}-bcm4356-pcie \ - ${PN}-bcm43569 \ - ${PN}-bcm43570 \ - ${PN}-bcm4358 \ - ${PN}-bcm43602 \ - ${PN}-bcm4366b \ - ${PN}-bcm4371 \ - ${PN}-bcm4373 \ - ${PN}-bcm43xx \ - ${PN}-bcm43xx-hdr \ - ${PN}-atheros-license ${PN}-ar9170 ${PN}-ath6k ${PN}-ath9k \ - ${PN}-gplv2-license ${PN}-carl9170 \ - ${PN}-ar3k-license ${PN}-ar3k ${PN}-ath10k-license ${PN}-ath10k ${PN}-qca \ - \ - ${PN}-imx-sdma-license ${PN}-imx-sdma-imx6q ${PN}-imx-sdma-imx7d \ - \ - ${PN}-iwlwifi-license ${PN}-iwlwifi \ - ${PN}-iwlwifi-135-6 \ - ${PN}-iwlwifi-3160-7 ${PN}-iwlwifi-3160-8 ${PN}-iwlwifi-3160-9 \ - ${PN}-iwlwifi-3160-10 ${PN}-iwlwifi-3160-12 ${PN}-iwlwifi-3160-13 \ - ${PN}-iwlwifi-3160-16 ${PN}-iwlwifi-3160-17 \ - ${PN}-iwlwifi-6000-4 ${PN}-iwlwifi-6000g2a-5 ${PN}-iwlwifi-6000g2a-6 \ - ${PN}-iwlwifi-6000g2b-5 ${PN}-iwlwifi-6000g2b-6 \ - ${PN}-iwlwifi-6050-4 ${PN}-iwlwifi-6050-5 \ - ${PN}-iwlwifi-7260 \ - ${PN}-iwlwifi-7265 \ - ${PN}-iwlwifi-7265d ${PN}-iwlwifi-8000c ${PN}-iwlwifi-8265 \ - ${PN}-iwlwifi-9000 \ - ${PN}-iwlwifi-misc \ - ${PN}-ibt-license ${PN}-ibt ${PN}-ibt-misc \ - ${PN}-ibt-11-5 ${PN}-ibt-12-16 ${PN}-ibt-hw-37-7 ${PN}-ibt-hw-37-8 \ - ${PN}-ibt-17 \ - ${PN}-i915-license ${PN}-i915 \ - ${PN}-adsp-sst-license ${PN}-adsp-sst \ - ${PN}-bnx2-mips \ - ${PN}-liquidio \ - ${PN}-netronome-license ${PN}-netronome \ - ${PN}-qat ${PN}-qat-license \ - ${PN}-qcom-license \ - ${PN}-qcom-venus-1.8 ${PN}-qcom-venus-4.2 \ - ${PN}-qcom-adreno-a3xx ${PN}-qcom-adreno-a530 \ - ${PN}-whence-license \ - ${PN}-license \ - " - -# For atheros -LICENSE_${PN}-ar9170 = "Firmware-atheros_firmware" -LICENSE_${PN}-ath6k = "Firmware-atheros_firmware" -LICENSE_${PN}-ath9k = "Firmware-atheros_firmware" -LICENSE_${PN}-atheros-license = "Firmware-atheros_firmware" - -FILES_${PN}-atheros-license = "${nonarch_base_libdir}/firmware/LICENCE.atheros_firmware" -FILES_${PN}-ar9170 = " \ - ${nonarch_base_libdir}/firmware/ar9170*.fw \ -" -FILES_${PN}-ath6k = " \ - ${nonarch_base_libdir}/firmware/ath6k \ -" -FILES_${PN}-ath9k = " \ - ${nonarch_base_libdir}/firmware/ar9271.fw \ - ${nonarch_base_libdir}/firmware/ar7010*.fw \ - ${nonarch_base_libdir}/firmware/htc_9271.fw \ - ${nonarch_base_libdir}/firmware/htc_7010.fw \ - ${nonarch_base_libdir}/firmware/ath9k_htc/htc_7010-1.4.0.fw \ - ${nonarch_base_libdir}/firmware/ath9k_htc/htc_9271-1.4.0.fw \ -" - -RDEPENDS_${PN}-ar9170 += "${PN}-atheros-license" -RDEPENDS_${PN}-ath6k += "${PN}-atheros-license" -RDEPENDS_${PN}-ath9k += "${PN}-atheros-license" - -# For carl9170 -LICENSE_${PN}-carl9170 = "Firmware-GPLv2" -LICENSE_${PN}-gplv2-license = "Firmware-GPLv2" - -FILES_${PN}-gplv2-license = "${nonarch_base_libdir}/firmware/GPL-2" -FILES_${PN}-carl9170 = " \ - ${nonarch_base_libdir}/firmware/carl9170*.fw \ -" - -RDEPENDS_${PN}-carl9170 += "${PN}-gplv2-license" - -# For QualCommAthos -LICENSE_${PN}-ar3k = "Firmware-qualcommAthos_ar3k" -LICENSE_${PN}-ar3k-license = "Firmware-qualcommAthos_ar3k" -LICENSE_${PN}-ath10k = "Firmware-qualcommAthos_ath10k" -LICENSE_${PN}-ath10k-license = "Firmware-qualcommAthos_ath10k" -LICENSE_${PN}-qca = "Firmware-qualcommAthos_ath10k" - -FILES_${PN}-ar3k-license = "${nonarch_base_libdir}/firmware/LICENSE.QualcommAtheros_ar3k" -FILES_${PN}-ar3k = " \ - ${nonarch_base_libdir}/firmware/ar3k \ -" - -FILES_${PN}-ath10k-license = "${nonarch_base_libdir}/firmware/LICENSE.QualcommAtheros_ath10k" -FILES_${PN}-ath10k = " \ - ${nonarch_base_libdir}/firmware/ath10k \ -" - -FILES_${PN}-qca = " \ - ${nonarch_base_libdir}/firmware/qca \ -" - -RDEPENDS_${PN}-ar3k += "${PN}-ar3k-license" -RDEPENDS_${PN}-ath10k += "${PN}-ath10k-license" -RDEPENDS_${PN}-qca += "${PN}-ath10k-license" - -# For ralink -LICENSE_${PN}-ralink = "Firmware-ralink-firmware" -LICENSE_${PN}-ralink-license = "Firmware-ralink-firmware" - -FILES_${PN}-ralink-license = "${nonarch_base_libdir}/firmware/LICENCE.ralink-firmware.txt" -FILES_${PN}-ralink = " \ - ${nonarch_base_libdir}/firmware/rt*.bin \ -" - -RDEPENDS_${PN}-ralink += "${PN}-ralink-license" - -# For mediatek MT7601U -LICENSE_${PN}-mt7601u = "Firmware-ralink_a_mediatek_company_firmware" -LICENSE_${PN}-mt7601u-license = "Firmware-ralink_a_mediatek_company_firmware" - -FILES_${PN}-mt7601u-license = "${nonarch_base_libdir}/firmware/LICENCE.ralink_a_mediatek_company_firmware" -FILES_${PN}-mt7601u = " \ - ${nonarch_base_libdir}/firmware/mt7601u.bin \ -" - -RDEPENDS_${PN}-mt7601u += "${PN}-mt7601u-license" - -# For radeon -LICENSE_${PN}-radeon = "Firmware-radeon" -LICENSE_${PN}-radeon-license = "Firmware-radeon" - -FILES_${PN}-radeon-license = "${nonarch_base_libdir}/firmware/LICENSE.radeon" -FILES_${PN}-radeon = " \ - ${nonarch_base_libdir}/firmware/radeon \ -" - -RDEPENDS_${PN}-radeon += "${PN}-radeon-license" - -# For marvell -LICENSE_${PN}-pcie8897 = "Firmware-Marvell" -LICENSE_${PN}-pcie8997 = "Firmware-Marvell" -LICENSE_${PN}-sd8686 = "Firmware-Marvell" -LICENSE_${PN}-sd8688 = "Firmware-Marvell" -LICENSE_${PN}-sd8787 = "Firmware-Marvell" -LICENSE_${PN}-sd8797 = "Firmware-Marvell" -LICENSE_${PN}-sd8801 = "Firmware-Marvell" -LICENSE_${PN}-sd8887 = "Firmware-Marvell" -LICENSE_${PN}-sd8897 = "Firmware-Marvell" -LICENSE_${PN}-usb8997 = "Firmware-Marvell" -LICENSE_${PN}-marvell-license = "Firmware-Marvell" - -FILES_${PN}-marvell-license = "${nonarch_base_libdir}/firmware/LICENCE.Marvell" -FILES_${PN}-pcie8897 = " \ - ${nonarch_base_libdir}/firmware/mrvl/pcie8897_uapsta.bin \ -" -FILES_${PN}-pcie8997 = " \ - ${nonarch_base_libdir}/firmware/mrvl/pcie8997_wlan_v4.bin \ - ${nonarch_base_libdir}/firmware/mrvl/pcieuart8997_combo_v4.bin \ - ${nonarch_base_libdir}/firmware/mrvl/pcieusb8997_combo_v4.bin \ -" -FILES_${PN}-sd8686 = " \ - ${nonarch_base_libdir}/firmware/libertas/sd8686_v9* \ - ${nonarch_base_libdir}/firmware/sd8686* \ -" -FILES_${PN}-sd8688 = " \ - ${nonarch_base_libdir}/firmware/libertas/sd8688* \ - ${nonarch_base_libdir}/firmware/mrvl/sd8688* \ -" -FILES_${PN}-sd8787 = " \ - ${nonarch_base_libdir}/firmware/mrvl/sd8787_uapsta.bin \ -" -FILES_${PN}-sd8797 = " \ - ${nonarch_base_libdir}/firmware/mrvl/sd8797_uapsta.bin \ -" -FILES_${PN}-sd8801 = " \ - ${nonarch_base_libdir}/firmware/mrvl/sd8801_uapsta.bin \ -" -FILES_${PN}-sd8887 = " \ - ${nonarch_base_libdir}/firmware/mrvl/sd8887_uapsta.bin \ -" -FILES_${PN}-sd8897 = " \ - ${nonarch_base_libdir}/firmware/mrvl/sd8897_uapsta.bin \ -" -FILES_${PN}-usb8997 = " \ - ${nonarch_base_libdir}/firmware/mrvl/usbusb8997_combo_v4.bin \ -" - -RDEPENDS_${PN}-sd8686 += "${PN}-marvell-license" -RDEPENDS_${PN}-sd8688 += "${PN}-marvell-license" -RDEPENDS_${PN}-sd8787 += "${PN}-marvell-license" -RDEPENDS_${PN}-sd8797 += "${PN}-marvell-license" -RDEPENDS_${PN}-sd8801 += "${PN}-marvell-license" -RDEPENDS_${PN}-sd8887 += "${PN}-marvell-license" -RDEPENDS_${PN}-sd8897 += "${PN}-marvell-license" -RDEPENDS_${PN}-usb8997 += "${PN}-marvell-license" - -# For netronome -LICENSE_${PN}-netronome = "Firmware-netronome" - -FILES_${PN}-netronome-license = " \ - ${nonarch_base_libdir}/firmware/LICENCE.Netronome \ -" -FILES_${PN}-netronome = " \ - ${nonarch_base_libdir}/firmware/netronome/nic_AMDA0081*.nffw \ - ${nonarch_base_libdir}/firmware/netronome/nic_AMDA0096*.nffw \ - ${nonarch_base_libdir}/firmware/netronome/nic_AMDA0097*.nffw \ - ${nonarch_base_libdir}/firmware/netronome/nic_AMDA0099*.nffw \ -" - -RDEPENDS_${PN}-netronome += "${PN}-netronome-license" - -# For rtl -LICENSE_${PN}-rtl8188 = "Firmware-rtlwifi_firmware" -LICENSE_${PN}-rtl8192cu = "Firmware-rtlwifi_firmware" -LICENSE_${PN}-rtl8192ce = "Firmware-rtlwifi_firmware" -LICENSE_${PN}-rtl8192su = "Firmware-rtlwifi_firmware" -LICENSE_${PN}-rtl8723 = "Firmware-rtlwifi_firmware" -LICENSE_${PN}-rtl8821 = "Firmware-rtlwifi_firmware" -LICENSE_${PN}-rtl-license = "Firmware-rtlwifi_firmware" -LICENSE_${PN}-rtl8168 = "WHENCE" - -FILES_${PN}-rtl-license = " \ - ${nonarch_base_libdir}/firmware/LICENCE.rtlwifi_firmware.txt \ -" -FILES_${PN}-rtl8188 = " \ - ${nonarch_base_libdir}/firmware/rtlwifi/rtl8188*.bin \ -" -FILES_${PN}-rtl8192cu = " \ - ${nonarch_base_libdir}/firmware/rtlwifi/rtl8192cufw*.bin \ -" -FILES_${PN}-rtl8192ce = " \ - ${nonarch_base_libdir}/firmware/rtlwifi/rtl8192cfw*.bin \ -" -FILES_${PN}-rtl8192su = " \ - ${nonarch_base_libdir}/firmware/rtlwifi/rtl8712u.bin \ -" -FILES_${PN}-rtl8723 = " \ - ${nonarch_base_libdir}/firmware/rtlwifi/rtl8723*.bin \ -" -FILES_${PN}-rtl8821 = " \ - ${nonarch_base_libdir}/firmware/rtlwifi/rtl8821*.bin \ -" -FILES_${PN}-rtl8168 = " \ - ${nonarch_base_libdir}/firmware/rtl_nic/rtl8168*.fw \ -" - -RDEPENDS_${PN}-rtl8188 += "${PN}-rtl-license" -RDEPENDS_${PN}-rtl8192ce += "${PN}-rtl-license" -RDEPENDS_${PN}-rtl8192cu += "${PN}-rtl-license" -RDEPENDS_${PN}-rtl8192su = "${PN}-rtl-license" -RDEPENDS_${PN}-rtl8723 += "${PN}-rtl-license" -RDEPENDS_${PN}-rtl8821 += "${PN}-rtl-license" -RDEPENDS_${PN}-rtl8168 += "${PN}-whence-license" - -# For ti-connectivity -LICENSE_${PN}-wlcommon = "Firmware-ti-connectivity" -LICENSE_${PN}-wl12xx = "Firmware-ti-connectivity" -LICENSE_${PN}-wl18xx = "Firmware-ti-connectivity" -LICENSE_${PN}-ti-connectivity-license = "Firmware-ti-connectivity" - -FILES_${PN}-ti-connectivity-license = "${nonarch_base_libdir}/firmware/LICENCE.ti-connectivity" -FILES_${PN}-wlcommon = " \ - ${nonarch_base_libdir}/firmware/TI* \ - ${nonarch_base_libdir}/firmware/ti-connectivity/TI* \ -" -FILES_${PN}-wl12xx = " \ - ${nonarch_base_libdir}/firmware/wl12* \ - ${nonarch_base_libdir}/firmware/ti-connectivity/wl12* \ -" -FILES_${PN}-wl18xx = " \ - ${nonarch_base_libdir}/firmware/wl18* \ - ${nonarch_base_libdir}/firmware/ti-connectivity/wl18* \ -" - -RDEPENDS_${PN}-wl12xx = "${PN}-ti-connectivity-license ${PN}-wlcommon" -RDEPENDS_${PN}-wl18xx = "${PN}-ti-connectivity-license ${PN}-wlcommon" - -# For vt6656 -LICENSE_${PN}-vt6656 = "Firmware-via_vt6656" -LICENSE_${PN}-vt6656-license = "Firmware-via_vt6656" - -FILES_${PN}-vt6656-license = "${nonarch_base_libdir}/firmware/LICENCE.via_vt6656" -FILES_${PN}-vt6656 = " \ - ${nonarch_base_libdir}/firmware/vntwusb.fw \ -" - -RDEPENDS_${PN}-vt6656 = "${PN}-vt6656-license" - -# For broadcom - -# for i in `grep brcm WHENCE | grep ^File | sed 's/File: brcm.//g'`; do pkg=`echo $i | sed 's/-[sp40].*//g; s/\.bin//g; s/brcmfmac/bcm/g; s/_hdr/-hdr/g; s/BCM/bcm-0bb4-0306/g'`; echo -e " \${PN}-$pkg \\"; done | sort -u - -LICENSE_${PN}-broadcom-license = "Firmware-broadcom_bcm43xx" -FILES_${PN}-broadcom-license = "${nonarch_base_libdir}/firmware/LICENCE.broadcom_bcm43xx" - -# for i in `grep brcm WHENCE | grep ^File | sed 's/File: brcm.//g'`; do pkg=`echo $i | sed 's/-[sp40].*//g; s/\.bin//g; s/brcmfmac/bcm/g; s/_hdr/-hdr/g; s/BCM/bcm-0bb4-0306/g'`; echo "$i - $pkg"; echo -e "FILES_\${PN}-$pkg = \"\${nonarch_base_libdir}/firmware/brcm/$i\""; done | grep ^FILES - -FILES_${PN}-bcm43xx = "${nonarch_base_libdir}/firmware/brcm/bcm43xx-0.fw" -FILES_${PN}-bcm43xx-hdr = "${nonarch_base_libdir}/firmware/brcm/bcm43xx_hdr-0.fw" -FILES_${PN}-bcm4329-fullmac = "${nonarch_base_libdir}/firmware/brcm/bcm4329-fullmac-4.bin" -FILES_${PN}-bcm43236b = "${nonarch_base_libdir}/firmware/brcm/brcmfmac43236b.bin" -FILES_${PN}-bcm4329 = "${nonarch_base_libdir}/firmware/brcm/brcmfmac4329-sdio.bin" -FILES_${PN}-bcm4330 = "${nonarch_base_libdir}/firmware/brcm/brcmfmac4330-sdio.bin" -FILES_${PN}-bcm4334 = "${nonarch_base_libdir}/firmware/brcm/brcmfmac4334-sdio.bin" -FILES_${PN}-bcm4335 = "${nonarch_base_libdir}/firmware/brcm/brcmfmac4335-sdio.bin" -FILES_${PN}-bcm4339 = "${nonarch_base_libdir}/firmware/brcm/brcmfmac4339-sdio.bin" -FILES_${PN}-bcm43241b0 = "${nonarch_base_libdir}/firmware/brcm/brcmfmac43241b0-sdio.bin" -FILES_${PN}-bcm43241b4 = "${nonarch_base_libdir}/firmware/brcm/brcmfmac43241b4-sdio.bin" -FILES_${PN}-bcm43241b5 = "${nonarch_base_libdir}/firmware/brcm/brcmfmac43241b5-sdio.bin" -FILES_${PN}-bcm43242a = "${nonarch_base_libdir}/firmware/brcm/brcmfmac43242a.bin" -FILES_${PN}-bcm43143 = "${nonarch_base_libdir}/firmware/brcm/brcmfmac43143.bin \ - ${nonarch_base_libdir}/firmware/brcm/brcmfmac43143-sdio.bin \ -" -FILES_${PN}-bcm43430a0 = "${nonarch_base_libdir}/firmware/brcm/brcmfmac43430a0-sdio.bin" -FILES_${PN}-bcm43455 = "${nonarch_base_libdir}/firmware/brcm/brcmfmac43455-sdio.bin" -FILES_${PN}-bcm4350c2 = "${nonarch_base_libdir}/firmware/brcm/brcmfmac4350c2-pcie.bin" -FILES_${PN}-bcm4350 = "${nonarch_base_libdir}/firmware/brcm/brcmfmac4350-pcie.bin" -FILES_${PN}-bcm4356 = "${nonarch_base_libdir}/firmware/brcm/brcmfmac4356-sdio.bin" -FILES_${PN}-bcm43569 = "${nonarch_base_libdir}/firmware/brcm/brcmfmac43569.bin" -FILES_${PN}-bcm43570 = "${nonarch_base_libdir}/firmware/brcm/brcmfmac43570-pcie.bin" -FILES_${PN}-bcm4358 = "${nonarch_base_libdir}/firmware/brcm/brcmfmac4358-pcie.bin" -FILES_${PN}-bcm43602 = "${nonarch_base_libdir}/firmware/brcm/brcmfmac43602-pcie.bin \ - ${nonarch_base_libdir}/firmware/brcm/brcmfmac43602-pcie.ap.bin \ -" -FILES_${PN}-bcm4366b = "${nonarch_base_libdir}/firmware/brcm/brcmfmac4366b-pcie.bin" -FILES_${PN}-bcm4371 = "${nonarch_base_libdir}/firmware/brcm/brcmfmac4371-pcie.bin" - -# for i in `grep brcm WHENCE | grep ^File | sed 's/File: brcm.//g'`; do pkg=`echo $i | sed 's/-[sp40].*//g; s/\.bin//g; s/brcmfmac/bcm/g; s/_hdr/-hdr/g; s/BCM/bcm-0bb4-0306/g'`; echo -e "LICENSE_\${PN}-$pkg = \"Firmware-broadcom_bcm43xx\"\nRDEPENDS_\${PN}-$pkg += \"\${PN}-broadcom-license\""; done -# Currently 1st one and last 6 have cypress LICENSE - -LICENSE_${PN}-bcm43xx = "Firmware-broadcom_bcm43xx" -RDEPENDS_${PN}-bcm43xx += "${PN}-broadcom-license" -LICENSE_${PN}-bcm43xx-hdr = "Firmware-broadcom_bcm43xx" -RDEPENDS_${PN}-bcm43xx-hdr += "${PN}-broadcom-license" -LICENSE_${PN}-bcm4329-fullmac = "Firmware-broadcom_bcm43xx" -RDEPENDS_${PN}-bcm4329-fullmac += "${PN}-broadcom-license" -LICENSE_${PN}-bcm43236b = "Firmware-broadcom_bcm43xx" -RDEPENDS_${PN}-bcm43236b += "${PN}-broadcom-license" -LICENSE_${PN}-bcm4329 = "Firmware-broadcom_bcm43xx" -RDEPENDS_${PN}-bcm4329 += "${PN}-broadcom-license" -LICENSE_${PN}-bcm4330 = "Firmware-broadcom_bcm43xx" -RDEPENDS_${PN}-bcm4330 += "${PN}-broadcom-license" -LICENSE_${PN}-bcm4334 = "Firmware-broadcom_bcm43xx" -RDEPENDS_${PN}-bcm4334 += "${PN}-broadcom-license" -LICENSE_${PN}-bcm4335 = "Firmware-broadcom_bcm43xx" -RDEPENDS_${PN}-bcm4335 += "${PN}-broadcom-license" -LICENSE_${PN}-bcm4339 = "Firmware-broadcom_bcm43xx" -RDEPENDS_${PN}-bcm4339 += "${PN}-broadcom-license" -LICENSE_${PN}-bcm43241b0 = "Firmware-broadcom_bcm43xx" -RDEPENDS_${PN}-bcm43241b0 += "${PN}-broadcom-license" -LICENSE_${PN}-bcm43241b4 = "Firmware-broadcom_bcm43xx" -RDEPENDS_${PN}-bcm43241b4 += "${PN}-broadcom-license" -LICENSE_${PN}-bcm43241b5 = "Firmware-broadcom_bcm43xx" -RDEPENDS_${PN}-bcm43241b5 += "${PN}-broadcom-license" -LICENSE_${PN}-bcm43242a = "Firmware-broadcom_bcm43xx" -RDEPENDS_${PN}-bcm43242a += "${PN}-broadcom-license" -LICENSE_${PN}-bcm43143 = "Firmware-broadcom_bcm43xx" -RDEPENDS_${PN}-bcm43143 += "${PN}-broadcom-license" -LICENSE_${PN}-bcm43430a0 = "Firmware-broadcom_bcm43xx" -RDEPENDS_${PN}-bcm43430a0 += "${PN}-broadcom-license" -LICENSE_${PN}-bcm43455 = "Firmware-broadcom_bcm43xx" -RDEPENDS_${PN}-bcm43455 += "${PN}-broadcom-license" -LICENSE_${PN}-bcm4350c2 = "Firmware-broadcom_bcm43xx" -RDEPENDS_${PN}-bcm4350c2 += "${PN}-broadcom-license" -LICENSE_${PN}-bcm4350 = "Firmware-broadcom_bcm43xx" -RDEPENDS_${PN}-bcm4350 += "${PN}-broadcom-license" -LICENSE_${PN}-bcm4356 = "Firmware-broadcom_bcm43xx" -RDEPENDS_${PN}-bcm4356 += "${PN}-broadcom-license" -LICENSE_${PN}-bcm43569 = "Firmware-broadcom_bcm43xx" -RDEPENDS_${PN}-bcm43569 += "${PN}-broadcom-license" -LICENSE_${PN}-bcm43570 = "Firmware-broadcom_bcm43xx" -RDEPENDS_${PN}-bcm43570 += "${PN}-broadcom-license" -LICENSE_${PN}-bcm4358 = "Firmware-broadcom_bcm43xx" -RDEPENDS_${PN}-bcm4358 += "${PN}-broadcom-license" -LICENSE_${PN}-bcm43602 = "Firmware-broadcom_bcm43xx" -RDEPENDS_${PN}-bcm43602 += "${PN}-broadcom-license" -LICENSE_${PN}-bcm4366b = "Firmware-broadcom_bcm43xx" -RDEPENDS_${PN}-bcm4366b += "${PN}-broadcom-license" -LICENSE_${PN}-bcm4371 = "Firmware-broadcom_bcm43xx" -RDEPENDS_${PN}-bcm4371 += "${PN}-broadcom-license" - -# For broadcom cypress - -LICENSE_${PN}-cypress-license = "Firmware-cypress" -FILES_${PN}-cypress-license = "${nonarch_base_libdir}/firmware/LICENCE.cypress" - -FILES_${PN}-bcm-0bb4-0306 = "${nonarch_base_libdir}/firmware/brcm/BCM-0bb4-0306.hcd" -FILES_${PN}-bcm43340 = "${nonarch_base_libdir}/firmware/brcm/brcmfmac43340-sdio.bin" -FILES_${PN}-bcm43362 = "${nonarch_base_libdir}/firmware/brcm/brcmfmac43362-sdio.bin" -FILES_${PN}-bcm43430 = "${nonarch_base_libdir}/firmware/brcm/brcmfmac43430-sdio.bin" -FILES_${PN}-bcm4354 = "${nonarch_base_libdir}/firmware/brcm/brcmfmac4354-sdio.bin" -FILES_${PN}-bcm4356-pcie = "${nonarch_base_libdir}/firmware/brcm/brcmfmac4356-pcie.bin" -FILES_${PN}-bcm4373 = "${nonarch_base_libdir}/firmware/brcm/brcmfmac4373-sdio.bin \ - ${nonarch_base_libdir}/firmware/brcm/brcmfmac4373.bin \ -" - -LICENSE_${PN}-bcm-0bb4-0306 = "Firmware-cypress" -RDEPENDS_${PN}-bcm-0bb4-0306 += "${PN}-cypress-license" -LICENSE_${PN}-bcm43340 = "Firmware-cypress" -RDEPENDS_${PN}-bcm43340 += "${PN}-cypress-license" -LICENSE_${PN}-bcm43362 = "Firmware-cypress" -RDEPENDS_${PN}-bcm43362 += "${PN}-cypress-license" -LICENSE_${PN}-bcm43430 = "Firmware-cypress" -RDEPENDS_${PN}-bcm43430 += "${PN}-cypress-license" -LICENSE_${PN}-bcm4354 = "Firmware-cypress" -RDEPENDS_${PN}-bcm4354 += "${PN}-cypress-license" -LICENSE_${PN}-bcm4356-pcie = "Firmware-cypress" -RDEPENDS_${PN}-bcm4356-pcie += "${PN}-cypress-license" -LICENSE_${PN}-bcm4373 = "Firmware-cypress" -RDEPENDS_${PN}-bcm4373 += "${PN}-cypress-license" - -# For Broadcom bnx2-mips -# -# which is a separate case to the other Broadcom firmwares since its -# license is contained in the shared WHENCE file. - -LICENSE_${PN}-bnx2-mips = "WHENCE" -LICENSE_${PN}-whence-license = "WHENCE" - -FILES_${PN}-bnx2-mips = "${nonarch_base_libdir}/firmware/bnx2/bnx2-mips-09-6.2.1b.fw" -FILES_${PN}-whence-license = "${nonarch_base_libdir}/firmware/WHENCE" - -RDEPENDS_${PN}-bnx2-mips += "${PN}-whence-license" - -# For imx-sdma -LICENSE_${PN}-imx-sdma-imx6q = "Firmware-imx-sdma_firmware" -LICENSE_${PN}-imx-sdma-imx7d = "Firmware-imx-sdma_firmware" -LICENSE_${PN}-imx-sdma-license = "Firmware-imx-sdma_firmware" - -FILES_${PN}-imx-sdma-imx6q = "${nonarch_base_libdir}/firmware/imx/sdma/sdma-imx6q.bin" - -RPROVIDES_${PN}-imx-sdma-imx6q = "firmware-imx-sdma-imx6q" -RREPLACES_${PN}-imx-sdma-imx6q = "firmware-imx-sdma-imx6q" -RCONFLICTS_${PN}-imx-sdma-imx6q = "firmware-imx-sdma-imx6q" - -FILES_${PN}-imx-sdma-imx7d = "${nonarch_base_libdir}/firmware/imx/sdma/sdma-imx7d.bin" - -FILES_${PN}-imx-sdma-license = "${nonarch_base_libdir}/firmware/LICENSE.sdma_firmware" - -RDEPENDS_${PN}-imx-sdma-imx6q += "${PN}-imx-sdma-license" -RDEPENDS_${PN}-imx-sdma-imx7d += "${PN}-imx-sdma-license" - -# For iwlwifi -LICENSE_${PN}-iwlwifi = "Firmware-iwlwifi_firmware" -LICENSE_${PN}-iwlwifi-135-6 = "Firmware-iwlwifi_firmware" -LICENSE_${PN}-iwlwifi-3160-7 = "Firmware-iwlwifi_firmware" -LICENSE_${PN}-iwlwifi-3160-8 = "Firmware-iwlwifi_firmware" -LICENSE_${PN}-iwlwifi-3160-9 = "Firmware-iwlwifi_firmware" -LICENSE_${PN}-iwlwifi-3160-10 = "Firmware-iwlwifi_firmware" -LICENSE_${PN}-iwlwifi-3160-12 = "Firmware-iwlwifi_firmware" -LICENSE_${PN}-iwlwifi-3160-13 = "Firmware-iwlwifi_firmware" -LICENSE_${PN}-iwlwifi-3160-16 = "Firmware-iwlwifi_firmware" -LICENSE_${PN}-iwlwifi-3160-17 = "Firmware-iwlwifi_firmware" -LICENSE_${PN}-iwlwifi-6000-4 = "Firmware-iwlwifi_firmware" -LICENSE_${PN}-iwlwifi-6000g2a-5 = "Firmware-iwlwifi_firmware" -LICENSE_${PN}-iwlwifi-6000g2a-6 = "Firmware-iwlwifi_firmware" -LICENSE_${PN}-iwlwifi-6000g2b-5 = "Firmware-iwlwifi_firmware" -LICENSE_${PN}-iwlwifi-6000g2b-6 = "Firmware-iwlwifi_firmware" -LICENSE_${PN}-iwlwifi-6050-4 = "Firmware-iwlwifi_firmware" -LICENSE_${PN}-iwlwifi-6050-5 = "Firmware-iwlwifi_firmware" -LICENSE_${PN}-iwlwifi-7260 = "Firmware-iwlwifi_firmware" -LICENSE_${PN}-iwlwifi-7265 = "Firmware-iwlwifi_firmware" -LICENSE_${PN}-iwlwifi-7265d = "Firmware-iwlwifi_firmware" -LICENSE_${PN}-iwlwifi-8000c = "Firmware-iwlwifi_firmware" -LICENSE_${PN}-iwlwifi-8265 = "Firmware-iwlwifi_firmware" -LICENSE_${PN}-iwlwifi-9000 = "Firmware-iwlwifi_firmware" -LICENSE_${PN}-iwlwifi-misc = "Firmware-iwlwifi_firmware" -LICENSE_${PN}-iwlwifi-license = "Firmware-iwlwifi_firmware" - - -FILES_${PN}-iwlwifi-license = "${nonarch_base_libdir}/firmware/LICENCE.iwlwifi_firmware" -FILES_${PN}-iwlwifi-135-6 = "${nonarch_base_libdir}/firmware/iwlwifi-135-6.ucode" -FILES_${PN}-iwlwifi-3160-7 = "${nonarch_base_libdir}/firmware/iwlwifi-3160-7.ucode" -FILES_${PN}-iwlwifi-3160-8 = "${nonarch_base_libdir}/firmware/iwlwifi-3160-8.ucode" -FILES_${PN}-iwlwifi-3160-9 = "${nonarch_base_libdir}/firmware/iwlwifi-3160-9.ucode" -FILES_${PN}-iwlwifi-3160-10 = "${nonarch_base_libdir}/firmware/iwlwifi-3160-10.ucode" -FILES_${PN}-iwlwifi-3160-12 = "${nonarch_base_libdir}/firmware/iwlwifi-3160-12.ucode" -FILES_${PN}-iwlwifi-3160-13 = "${nonarch_base_libdir}/firmware/iwlwifi-3160-13.ucode" -FILES_${PN}-iwlwifi-3160-16 = "${nonarch_base_libdir}/firmware/iwlwifi-3160-16.ucode" -FILES_${PN}-iwlwifi-3160-17 = "${nonarch_base_libdir}/firmware/iwlwifi-3160-17.ucode" -FILES_${PN}-iwlwifi-6000-4 = "${nonarch_base_libdir}/firmware/iwlwifi-6000-4.ucode" -FILES_${PN}-iwlwifi-6000g2a-5 = "${nonarch_base_libdir}/firmware/iwlwifi-6000g2a-5.ucode" -FILES_${PN}-iwlwifi-6000g2a-6 = "${nonarch_base_libdir}/firmware/iwlwifi-6000g2a-6.ucode" -FILES_${PN}-iwlwifi-6000g2b-5 = "${nonarch_base_libdir}/firmware/iwlwifi-6000g2b-5.ucode" -FILES_${PN}-iwlwifi-6000g2b-6 = "${nonarch_base_libdir}/firmware/iwlwifi-6000g2b-6.ucode" -FILES_${PN}-iwlwifi-6050-4 = "${nonarch_base_libdir}/firmware/iwlwifi-6050-4.ucode" -FILES_${PN}-iwlwifi-6050-5 = "${nonarch_base_libdir}/firmware/iwlwifi-6050-5.ucode" -FILES_${PN}-iwlwifi-7260 = "${nonarch_base_libdir}/firmware/iwlwifi-7260-*.ucode" -FILES_${PN}-iwlwifi-7265 = "${nonarch_base_libdir}/firmware/iwlwifi-7265-*.ucode" -FILES_${PN}-iwlwifi-7265d = "${nonarch_base_libdir}/firmware/iwlwifi-7265D-*.ucode" -FILES_${PN}-iwlwifi-8000c = "${nonarch_base_libdir}/firmware/iwlwifi-8000C-*.ucode" -FILES_${PN}-iwlwifi-8265 = "${nonarch_base_libdir}/firmware/iwlwifi-8265-*.ucode" -FILES_${PN}-iwlwifi-9000 = "${nonarch_base_libdir}/firmware/iwlwifi-9000-*.ucode" -FILES_${PN}-iwlwifi-misc = "${nonarch_base_libdir}/firmware/iwlwifi-*.ucode" - -RDEPENDS_${PN}-iwlwifi-135-6 = "${PN}-iwlwifi-license" -RDEPENDS_${PN}-iwlwifi-3160-7 = "${PN}-iwlwifi-license" -RDEPENDS_${PN}-iwlwifi-3160-8 = "${PN}-iwlwifi-license" -RDEPENDS_${PN}-iwlwifi-3160-9 = "${PN}-iwlwifi-license" -RDEPENDS_${PN}-iwlwifi-3160-10 = "${PN}-iwlwifi-license" -RDEPENDS_${PN}-iwlwifi-3160-12 = "${PN}-iwlwifi-license" -RDEPENDS_${PN}-iwlwifi-3160-13 = "${PN}-iwlwifi-license" -RDEPENDS_${PN}-iwlwifi-3160-16 = "${PN}-iwlwifi-license" -RDEPENDS_${PN}-iwlwifi-3160-17 = "${PN}-iwlwifi-license" -RDEPENDS_${PN}-iwlwifi-6000-4 = "${PN}-iwlwifi-license" -RDEPENDS_${PN}-iwlwifi-6000g2a-5 = "${PN}-iwlwifi-license" -RDEPENDS_${PN}-iwlwifi-6000g2a-6 = "${PN}-iwlwifi-license" -RDEPENDS_${PN}-iwlwifi-6000g2b-5 = "${PN}-iwlwifi-license" -RDEPENDS_${PN}-iwlwifi-6000g2b-6 = "${PN}-iwlwifi-license" -RDEPENDS_${PN}-iwlwifi-6050-4 = "${PN}-iwlwifi-license" -RDEPENDS_${PN}-iwlwifi-6050-5 = "${PN}-iwlwifi-license" -RDEPENDS_${PN}-iwlwifi-7260 = "${PN}-iwlwifi-license" -RDEPENDS_${PN}-iwlwifi-7265 = "${PN}-iwlwifi-license" -RDEPENDS_${PN}-iwlwifi-7265d = "${PN}-iwlwifi-license" -RDEPENDS_${PN}-iwlwifi-8000c = "${PN}-iwlwifi-license" -RDEPENDS_${PN}-iwlwifi-8265 = "${PN}-iwlwifi-license" -RDEPENDS_${PN}-iwlwifi-9000 = "${PN}-iwlwifi-license" -RDEPENDS_${PN}-iwlwifi-misc = "${PN}-iwlwifi-license" - -# -iwlwifi-misc is a "catch all" package that includes all the iwlwifi -# firmwares that are not already included in other -iwlwifi- packages. -# -iwlwifi is a virtual package that depends upon all iwlwifi packages. -# These are distinct in order to allow the -misc firmwares to be installed -# without pulling in every other iwlwifi package. -ALLOW_EMPTY_${PN}-iwlwifi = "1" -ALLOW_EMPTY_${PN}-iwlwifi-misc = "1" - -# Handle package updating for the newly merged iwlwifi groupings -RPROVIDES_${PN}-iwlwifi-7265 = "${PN}-iwlwifi-7265-8 ${PN}-iwlwifi-7265-9" -RREPLACES_${PN}-iwlwifi-7265 = "${PN}-iwlwifi-7265-8 ${PN}-iwlwifi-7265-9" -RCONFLICTS_${PN}-iwlwifi-7265 = "${PN}-iwlwifi-7265-8 ${PN}-iwlwifi-7265-9" - -RPROVIDES_${PN}-iwlwifi-7260 = "${PN}-iwlwifi-7260-7 ${PN}-iwlwifi-7260-8 ${PN}-iwlwifi-7260-9" -RREPLACES_${PN}-iwlwifi-7260 = "${PN}-iwlwifi-7260-7 ${PN}-iwlwifi-7260-8 ${PN}-iwlwifi-7260-9" -RCONFLICTS_${PN}-iwlwifi-7260 = "${PN}-iwlwifi-7260-7 ${PN}-iwlwifi-7260-8 ${PN}-iwlwifi-7260-9" - -# For ibt -LICENSE_${PN}-ibt-license = "Firmware-ibt_firmware" -LICENSE_${PN}-ibt-hw-37-7 = "Firmware-ibt_firmware" -LICENSE_${PN}-ibt-hw-37-8 = "Firmware-ibt_firmware" -LICENSE_${PN}-ibt-11-5 = "Firmware-ibt_firmware" -LICENSE_${PN}-ibt-12-16 = "Firmware-ibt_firmware" -LICENSE_${PN}-ibt-17 = "Firmware-ibt_firmware" -LICENSE_${PN}-ibt-misc = "Firmware-ibt_firmware" - -FILES_${PN}-ibt-license = "${nonarch_base_libdir}/firmware/LICENCE.ibt_firmware" -FILES_${PN}-ibt-hw-37-7 = "${nonarch_base_libdir}/firmware/intel/ibt-hw-37.7*.bseq" -FILES_${PN}-ibt-hw-37-8 = "${nonarch_base_libdir}/firmware/intel/ibt-hw-37.8*.bseq" -FILES_${PN}-ibt-11-5 = "${nonarch_base_libdir}/firmware/intel/ibt-11-5.sfi ${nonarch_base_libdir}/firmware/intel/ibt-11-5.ddc" -FILES_${PN}-ibt-12-16 = "${nonarch_base_libdir}/firmware/intel/ibt-12-16.sfi ${nonarch_base_libdir}/firmware/intel/ibt-12-16.ddc" -FILES_${PN}-ibt-17 = "${nonarch_base_libdir}/firmware/intel/ibt-17-*.sfi ${nonarch_base_libdir}/firmware/intel/ibt-17-*.ddc" -FILES_${PN}-ibt-misc = "${nonarch_base_libdir}/firmware/ibt-*" - -RDEPENDS_${PN}-ibt-hw-37-7 = "${PN}-ibt-license" -RDEPENDS_${PN}-ibt-hw-37.8 = "${PN}-ibt-license" -RDEPENDS_${PN}-ibt-11-5 = "${PN}-ibt-license" -RDEPENDS_${PN}-ibt-12-16 = "${PN}-ibt-license" -RDEPENDS_${PN}-ibt-17 = "${PN}-ibt-license" -RDEPENDS_${PN}-ibt-misc = "${PN}-ibt-license" - -ALLOW_EMPTY_${PN}-ibt= "1" -ALLOW_EMPTY_${PN}-ibt-misc = "1" - -LICENSE_${PN}-i915 = "Firmware-i915" -LICENSE_${PN}-i915-license = "Firmware-i915" -FILES_${PN}-i915-license = "${nonarch_base_libdir}/firmware/LICENSE.i915" -FILES_${PN}-i915 = "${nonarch_base_libdir}/firmware/i915" -RDEPENDS_${PN}-i915 = "${PN}-i915-license" - -FILES_${PN}-adsp-sst-license = "${nonarch_base_libdir}/firmware/LICENCE.adsp_sst" -LICENSE_${PN}-adsp-sst = "Firmware-adsp_sst" -LICENSE_${PN}-adsp-sst-license = "Firmware-adsp_sst" -FILES_${PN}-adsp-sst = "${nonarch_base_libdir}/firmware/intel/dsp_fw*" -RDEPENDS_${PN}-adsp-sst = "${PN}-adsp-sst-license" - -# For QAT -LICENSE_${PN}-qat = "Firmware-qat" -LICENSE_${PN}-qat-license = "Firmware-qat" -FILES_${PN}-qat-license = "${nonarch_base_libdir}/firmware/LICENCE.qat_firmware" -FILES_${PN}-qat = "${nonarch_base_libdir}/firmware/qat*.bin" -RDEPENDS_${PN}-qat = "${PN}-qat-license" - -# For QCOM VPU/GPU -LICENSE_${PN}-qcom-license = "Firmware-qcom" -FILES_${PN}-qcom-license = "${nonarch_base_libdir}/firmware/LICENSE.qcom ${nonarch_base_libdir}/firmware/qcom/NOTICE.txt" -FILES_${PN}-qcom-venus-1.8 = "${nonarch_base_libdir}/firmware/qcom/venus-1.8/*" -FILES_${PN}-qcom-venus-4.2 = "${nonarch_base_libdir}/firmware/qcom/venus-4.2/*" -FILES_${PN}-qcom-adreno-a3xx = "${nonarch_base_libdir}/firmware/qcom/a300_*.fw ${nonarch_base_libdir}/firmware/a300_*.fw" -FILES_${PN}-qcom-adreno-a530 = "${nonarch_base_libdir}/firmware/qcom/a530*.*" -RDEPENDS_${PN}-qcom-venus-1.8 = "${PN}-qcom-license" -RDEPENDS_${PN}-qcom-venus-4.2 = "${PN}-qcom-license" -RDEPENDS_${PN}-qcom-adreno-a3xx = "${PN}-qcom-license" -RDEPENDS_${PN}-qcom-adreno-a530 = "${PN}-qcom-license" - -FILES_${PN}-liquidio = "${nonarch_base_libdir}/firmware/liquidio" - -# For other firmwares -# Maybe split out to separate packages when needed. -LICENSE_${PN} = "\ - Firmware-Abilis \ - & Firmware-agere \ - & Firmware-amdgpu \ - & Firmware-amd-ucode \ - & Firmware-atmel \ - & Firmware-ca0132 \ - & Firmware-cavium \ - & Firmware-chelsio_firmware \ - & Firmware-cw1200 \ - & Firmware-dib0700 \ - & Firmware-e100 \ - & Firmware-ene_firmware \ - & Firmware-fw_sst_0f28 \ - & Firmware-go7007 \ - & Firmware-hfi1_firmware \ - & Firmware-i2400m \ - & Firmware-ibt_firmware \ - & Firmware-it913x \ - & Firmware-IntcSST2 \ - & Firmware-kaweth \ - & Firmware-moxa \ - & Firmware-myri10ge_firmware \ - & Firmware-nvidia \ - & Firmware-OLPC \ - & Firmware-ath9k-htc \ - & Firmware-phanfw \ - & Firmware-qat \ - & Firmware-qcom \ - & Firmware-qla1280 \ - & Firmware-qla2xxx \ - & Firmware-r8a779x_usb3 \ - & Firmware-radeon \ - & Firmware-ralink_a_mediatek_company_firmware \ - & Firmware-ralink-firmware \ - & Firmware-imx-sdma_firmware \ - & Firmware-siano \ - & Firmware-tda7706-firmware \ - & Firmware-ti-connectivity \ - & Firmware-ti-keystone \ - & Firmware-ueagle-atm4-firmware \ - & Firmware-wl1251 \ - & Firmware-xc4000 \ - & Firmware-xc5000 \ - & Firmware-xc5000c \ - & WHENCE \ -" - -FILES_${PN}-license += "${nonarch_base_libdir}/firmware/LICEN*" -FILES_${PN} += "${nonarch_base_libdir}/firmware/*" -RDEPENDS_${PN} += "${PN}-license" -RDEPENDS_${PN} += "${PN}-whence-license" - -# Make linux-firmware depend on all of the split-out packages. -# Make linux-firmware-iwlwifi depend on all of the split-out iwlwifi packages. -# Make linux-firmware-ibt depend on all of the split-out ibt packages. -python populate_packages_prepend () { - firmware_pkgs = oe.utils.packages_filter_out_system(d) - d.appendVar('RRECOMMENDS_linux-firmware', ' ' + ' '.join(firmware_pkgs)) - - iwlwifi_pkgs = filter(lambda x: x.find('-iwlwifi-') != -1, firmware_pkgs) - d.appendVar('RRECOMMENDS_linux-firmware-iwlwifi', ' ' + ' '.join(iwlwifi_pkgs)) - - ibt_pkgs = filter(lambda x: x.find('-ibt-') != -1, firmware_pkgs) - d.appendVar('RRECOMMENDS_linux-firmware-ibt', ' ' + ' '.join(ibt_pkgs)) -} - -# Firmware files are generally not ran on the CPU, so they can be -# allarch despite being architecture specific -INSANE_SKIP = "arch" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-kernel/linux-libc-headers/linux-libc-headers_5.0.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-kernel/linux-libc-headers/linux-libc-headers_5.0.bb deleted file mode 100644 index e76120c5..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-kernel/linux-libc-headers/linux-libc-headers_5.0.bb +++ /dev/null @@ -1,18 +0,0 @@ -require linux-libc-headers.inc - -SRC_URI_append_libc-musl = "\ - file://0001-libc-compat.h-fix-some-issues-arising-from-in6.h.patch \ - file://0002-libc-compat.h-prevent-redefinition-of-struct-ethhdr.patch \ - file://0003-remove-inclusion-of-sysinfo.h-in-kernel.h.patch \ - file://0001-libc-compat.h-musl-_does_-define-IFF_LOWER_UP-DORMAN.patch \ - file://0001-if_ether-move-muslc-ethhdr-protection-to-uapi-file.patch \ - file://0001-include-linux-stddef.h-in-swab.h-uapi-header.patch \ - " - -SRC_URI_append = "\ - file://0001-scripts-Use-fixed-input-and-output-files-instead-of-.patch \ - file://0001-kbuild-install_headers.sh-Strip-_UAPI-from-if-define.patch \ -" - -SRC_URI[md5sum] = "7381ce8aac80a01448e065ce795c19c0" -SRC_URI[sha256sum] = "437b141a6499159f5a7282d5eb4b2be055f8e862ccce44d7464e8759c31a2e43" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-kernel/linux-libc-headers/linux-libc-headers_5.2.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-kernel/linux-libc-headers/linux-libc-headers_5.2.bb new file mode 100644 index 00000000..9d18df76 --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-kernel/linux-libc-headers/linux-libc-headers_5.2.bb @@ -0,0 +1,18 @@ +require linux-libc-headers.inc + +SRC_URI_append_libc-musl = "\ + file://0001-libc-compat.h-fix-some-issues-arising-from-in6.h.patch \ + file://0002-libc-compat.h-prevent-redefinition-of-struct-ethhdr.patch \ + file://0003-remove-inclusion-of-sysinfo.h-in-kernel.h.patch \ + file://0001-libc-compat.h-musl-_does_-define-IFF_LOWER_UP-DORMAN.patch \ + file://0001-if_ether-move-muslc-ethhdr-protection-to-uapi-file.patch \ + file://0001-include-linux-stddef.h-in-swab.h-uapi-header.patch \ + " + +SRC_URI_append = "\ + file://0001-scripts-Use-fixed-input-and-output-files-instead-of-.patch \ + file://0001-kbuild-install_headers.sh-Strip-_UAPI-from-if-define.patch \ +" + +SRC_URI[md5sum] = "ddf994de00d7b18395886dd9b30b9262" +SRC_URI[sha256sum] = "54ad66f672e1a831b574f5e704e8a05f1e6180a8245d4bdd811208a6cb0ac1e7" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-kernel/linux/kernel-devsrc.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-kernel/linux/kernel-devsrc.bb index 5ec59297..b68d945a 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-kernel/linux/kernel-devsrc.bb +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-kernel/linux/kernel-devsrc.bb @@ -65,7 +65,6 @@ do_install() { ) # then drop all but the needed Makefiles/Kconfig files - rm -rf $kerneldir/build/Documentation rm -rf $kerneldir/build/scripts rm -rf $kerneldir/build/include @@ -142,7 +141,7 @@ do_install() { # arch/arm64/include/asm/opcodes.h references arch/arm cp -a --parents arch/arm/include/asm/opcodes.h $kerneldir/build/ - cp -a --parents arch/arm64/kernel/vdso/gettimeofday.S $kerneldir/build/ + cp -a --parents arch/arm64/kernel/vdso/*gettimeofday.* $kerneldir/build/ cp -a --parents arch/arm64/kernel/vdso/sigreturn.S $kerneldir/build/ cp -a --parents arch/arm64/kernel/vdso/note.S $kerneldir/build/ cp -a --parents arch/arm64/kernel/vdso/gen_vdso_offsets.sh $kerneldir/build/ @@ -180,6 +179,8 @@ do_install() { cp -a include $kerneldir/build + cp -a --parents lib/vdso/* $kerneldir/build/ 2>/dev/null || : + cp -a --parents tools/include/tools/le_byteshift.h $kerneldir/build/ cp -a --parents tools/include/tools/be_byteshift.h $kerneldir/build/ @@ -205,11 +206,12 @@ do_install() { cp -a --parents arch/x86/purgatory/sha256.c $kerneldir/build/ 2>/dev/null || : cp -a --parents arch/x86/purgatory/stack.S $kerneldir/build/ - cp -a --parents arch/x86/purgatory/string.c $kerneldir/build/ + cp -a --parents arch/x86/purgatory/string.c $kerneldir/build/ 2>/dev/null || : cp -a --parents arch/x86/purgatory/setup-x86_64.S $kerneldir/build/ cp -a --parents arch/x86/purgatory/entry64.S $kerneldir/build/ cp -a --parents arch/x86/boot/string.h $kerneldir/build/ cp -a --parents arch/x86/boot/string.c $kerneldir/build/ + cp -a --parents arch/x86/boot/compressed/string.c $kerneldir/build/ 2>/dev/null || : cp -a --parents arch/x86/boot/ctype.h $kerneldir/build/ fi @@ -240,6 +242,15 @@ do_install() { # Copy .config to include/config/auto.conf so "make prepare" is unnecessary. cp $kerneldir/build/.config $kerneldir/build/include/config/auto.conf + # make the scripts python3 safe. We won't be running these, and if they are + # left as /usr/bin/python rootfs assembly will fail, since we only have python3 + # in the RDEPENDS (and the python3 package does not include /usr/bin/python) + for ss in $(find $kerneldir/build/scripts -type f -name '*'); do + sed -i 's,/usr/bin/python2,/usr/bin/env python3,' "$ss" + sed -i 's,/usr/bin/env python2,/usr/bin/env python3,' "$ss" + sed -i 's,/usr/bin/python,/usr/bin/env python3,' "$ss" + done + chown -R root:root ${D} } @@ -249,7 +260,7 @@ do_install[lockfiles] = "${TMPDIR}/kernel-scripts.lock" FILES_${PN} = "${KERNEL_BUILD_ROOT} ${KERNEL_SRC_PATH}" FILES_${PN}-dbg += "${KERNEL_BUILD_ROOT}*/build/scripts/*/.debug/*" -RDEPENDS_${PN} = "bc python flex bison ${TCLIBC}-utils" +RDEPENDS_${PN} = "bc python3 flex bison ${TCLIBC}-utils" # 4.15+ needs these next two RDEPENDS RDEPENDS_${PN} += "openssl-dev util-linux" # and x86 needs a bit more for 4.15+ diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-kernel/linux/linux-dtb.inc b/Contrib-Inspur/openbmc/poky/meta/recipes-kernel/linux/linux-dtb.inc deleted file mode 100644 index f1912775..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-kernel/linux/linux-dtb.inc +++ /dev/null @@ -1,3 +0,0 @@ -python() { - bb.warn("You are using the linux-dtb.inc which is deprecated. You can safely remove it as the Device Tree support is automatically enabled when KERNEL_DEVICETREE is set.") -} diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-kernel/linux/linux-yocto-dev.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-kernel/linux/linux-yocto-dev.bb index 8c83620d..163f2805 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-kernel/linux/linux-yocto-dev.bb +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-kernel/linux/linux-yocto-dev.bb @@ -30,7 +30,7 @@ SRC_URI = "git://git.yoctoproject.org/linux-yocto-dev.git;branch=${KBRANCH};name SRCREV_machine ?= '${@oe.utils.conditional("PREFERRED_PROVIDER_virtual/kernel", "linux-yocto-dev", "${AUTOREV}", "29594404d7fe73cd80eaa4ee8c43dcc53970c60e", d)}' SRCREV_meta ?= '${@oe.utils.conditional("PREFERRED_PROVIDER_virtual/kernel", "linux-yocto-dev", "${AUTOREV}", "29594404d7fe73cd80eaa4ee8c43dcc53970c60e", d)}' -LINUX_VERSION ?= "5.2-rc+" +LINUX_VERSION ?= "5.3-rc+" LINUX_VERSION_EXTENSION ?= "-yoctodev-${LINUX_KERNEL_TYPE}" PV = "${LINUX_VERSION}+git${SRCPV}" @@ -39,14 +39,14 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=bbea815ee2795b2f4230826c0c6b8814" DEPENDS += "${@bb.utils.contains('ARCH', 'x86', 'elfutils-native', '', d)}" DEPENDS += "openssl-native util-linux-native" -COMPATIBLE_MACHINE = "(qemuarm|qemux86|qemuppc|qemumips|qemumips64|qemux86-64)" +COMPATIBLE_MACHINE = "(qemuarm|qemux86|qemuppc|qemumips|qemumips64|qemux86-64|qemuriscv64)" KERNEL_DEVICETREE_qemuarmv5 = "versatile-pb.dtb" # Functionality flags KERNEL_EXTRA_FEATURES ?= "features/netfilter/netfilter.scc features/taskstats/taskstats.scc" KERNEL_FEATURES_append = " ${KERNEL_EXTRA_FEATURES}" -KERNEL_FEATURES_append_qemuall=" cfg/virtio.scc" +KERNEL_FEATURES_append_qemuall=" cfg/virtio.scc features/drm-bochs/drm-bochs.scc" KERNEL_FEATURES_append_qemux86=" cfg/sound.scc cfg/paravirt_kvm.scc" KERNEL_FEATURES_append_qemux86-64=" cfg/sound.scc" KERNEL_FEATURES_append = " ${@bb.utils.contains("TUNE_FEATURES", "mx32", " cfg/x32.scc", "" ,d)}" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-kernel/linux/linux-yocto-rt_4.19.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-kernel/linux/linux-yocto-rt_4.19.bb index a4facfeb..32edb602 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-kernel/linux/linux-yocto-rt_4.19.bb +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-kernel/linux/linux-yocto-rt_4.19.bb @@ -11,13 +11,13 @@ python () { raise bb.parse.SkipRecipe("Set PREFERRED_PROVIDER_virtual/kernel to linux-yocto-rt to enable it") } -SRCREV_machine ?= "4dbcaca4c9ff89e866d2b5d01df005f317c618a4" -SRCREV_meta ?= "ad235db461bf4595c668700ca8a909c322009cc1" +SRCREV_machine ?= "0e4a79e608e92830693e511a3dd282ce7c3b3f41" +SRCREV_meta ?= "ad6f8b357720ca8167a090713b7746230cf4b314" SRC_URI = "git://git.yoctoproject.org/linux-yocto.git;branch=${KBRANCH};name=machine \ git://git.yoctoproject.org/yocto-kernel-cache;type=kmeta;name=meta;branch=yocto-4.19;destsuffix=${KMETA}" -LINUX_VERSION ?= "4.19.44" +LINUX_VERSION ?= "4.19.78" LIC_FILES_CHKSUM = "file://COPYING;md5=bbea815ee2795b2f4230826c0c6b8814" @@ -38,7 +38,7 @@ KERNEL_DEVICETREE_qemuarmv5 = "versatile-pb.dtb" # Functionality flags KERNEL_EXTRA_FEATURES ?= "features/netfilter/netfilter.scc features/taskstats/taskstats.scc" KERNEL_FEATURES_append = " ${KERNEL_EXTRA_FEATURES}" -KERNEL_FEATURES_append_qemuall=" cfg/virtio.scc" +KERNEL_FEATURES_append_qemuall=" cfg/virtio.scc features/drm-bochs/drm-bochs.scc" KERNEL_FEATURES_append_qemux86=" cfg/sound.scc cfg/paravirt_kvm.scc" KERNEL_FEATURES_append_qemux86-64=" cfg/sound.scc cfg/paravirt_kvm.scc" KERNEL_FEATURES_append = "${@bb.utils.contains("DISTRO_FEATURES", "ptest", " features/scsi/scsi-debug.scc", "" ,d)}" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-kernel/linux/linux-yocto-rt_5.0.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-kernel/linux/linux-yocto-rt_5.0.bb deleted file mode 100644 index 8bd9d744..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-kernel/linux/linux-yocto-rt_5.0.bb +++ /dev/null @@ -1,44 +0,0 @@ -KBRANCH ?= "v5.0/standard/preempt-rt/base" - -require recipes-kernel/linux/linux-yocto.inc - -# Skip processing of this recipe if it is not explicitly specified as the -# PREFERRED_PROVIDER for virtual/kernel. This avoids errors when trying -# to build multiple virtual/kernel providers, e.g. as dependency of -# core-image-rt-sdk, core-image-rt. -python () { - if d.getVar("KERNEL_PACKAGE_NAME") == "kernel" and d.getVar("PREFERRED_PROVIDER_virtual/kernel") != "linux-yocto-rt": - raise bb.parse.SkipRecipe("Set PREFERRED_PROVIDER_virtual/kernel to linux-yocto-rt to enable it") -} - -SRCREV_machine ?= "9c1e84c9b81b6bf1df55f26f2e0517266c37f7eb" -SRCREV_meta ?= "31de88e51d100f2c3eefb7acb7390b0144bcfc69" - -SRC_URI = "git://git.yoctoproject.org/linux-yocto.git;branch=${KBRANCH};name=machine \ - git://git.yoctoproject.org/yocto-kernel-cache;type=kmeta;name=meta;branch=yocto-5.0;destsuffix=${KMETA}" - -LINUX_VERSION ?= "5.0.19" - -LIC_FILES_CHKSUM = "file://COPYING;md5=bbea815ee2795b2f4230826c0c6b8814" - -DEPENDS += "${@bb.utils.contains('ARCH', 'x86', 'elfutils-native', '', d)}" -DEPENDS += "openssl-native util-linux-native" - -PV = "${LINUX_VERSION}+git${SRCPV}" - -KMETA = "kernel-meta" -KCONF_BSP_AUDIT_LEVEL = "2" - -LINUX_KERNEL_TYPE = "preempt-rt" - -COMPATIBLE_MACHINE = "(qemux86|qemux86-64|qemuarm|qemuarmv5|qemuarm64|qemuppc|qemumips)" - -KERNEL_DEVICETREE_qemuarmv5 = "versatile-pb.dtb" - -# Functionality flags -KERNEL_EXTRA_FEATURES ?= "features/netfilter/netfilter.scc features/taskstats/taskstats.scc" -KERNEL_FEATURES_append = " ${KERNEL_EXTRA_FEATURES}" -KERNEL_FEATURES_append_qemuall=" cfg/virtio.scc" -KERNEL_FEATURES_append_qemux86=" cfg/sound.scc cfg/paravirt_kvm.scc" -KERNEL_FEATURES_append_qemux86-64=" cfg/sound.scc cfg/paravirt_kvm.scc" -KERNEL_FEATURES_append = "${@bb.utils.contains("DISTRO_FEATURES", "ptest", " features/scsi/scsi-debug.scc", "" ,d)}" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-kernel/linux/linux-yocto-rt_5.2.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-kernel/linux/linux-yocto-rt_5.2.bb new file mode 100644 index 00000000..423331e1 --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-kernel/linux/linux-yocto-rt_5.2.bb @@ -0,0 +1,44 @@ +KBRANCH ?= "v5.2/standard/preempt-rt/base" + +require recipes-kernel/linux/linux-yocto.inc + +# Skip processing of this recipe if it is not explicitly specified as the +# PREFERRED_PROVIDER for virtual/kernel. This avoids errors when trying +# to build multiple virtual/kernel providers, e.g. as dependency of +# core-image-rt-sdk, core-image-rt. +python () { + if d.getVar("KERNEL_PACKAGE_NAME") == "kernel" and d.getVar("PREFERRED_PROVIDER_virtual/kernel") != "linux-yocto-rt": + raise bb.parse.SkipRecipe("Set PREFERRED_PROVIDER_virtual/kernel to linux-yocto-rt to enable it") +} + +SRCREV_machine ?= "55e3ee387b073d8d609e8899859561340d8b6911" +SRCREV_meta ?= "bd0762cd138f1624b5a5f8669cfa3ac2b71cb87b" + +SRC_URI = "git://git.yoctoproject.org/linux-yocto.git;branch=${KBRANCH};name=machine \ + git://git.yoctoproject.org/yocto-kernel-cache;type=kmeta;name=meta;branch=yocto-5.2;destsuffix=${KMETA}" + +LINUX_VERSION ?= "5.2.20" + +LIC_FILES_CHKSUM = "file://COPYING;md5=bbea815ee2795b2f4230826c0c6b8814" + +DEPENDS += "${@bb.utils.contains('ARCH', 'x86', 'elfutils-native', '', d)}" +DEPENDS += "openssl-native util-linux-native" + +PV = "${LINUX_VERSION}+git${SRCPV}" + +KMETA = "kernel-meta" +KCONF_BSP_AUDIT_LEVEL = "2" + +LINUX_KERNEL_TYPE = "preempt-rt" + +COMPATIBLE_MACHINE = "(qemux86|qemux86-64|qemuarm|qemuarmv5|qemuarm64|qemuppc|qemumips)" + +KERNEL_DEVICETREE_qemuarmv5 = "versatile-pb.dtb" + +# Functionality flags +KERNEL_EXTRA_FEATURES ?= "features/netfilter/netfilter.scc features/taskstats/taskstats.scc" +KERNEL_FEATURES_append = " ${KERNEL_EXTRA_FEATURES}" +KERNEL_FEATURES_append_qemuall=" cfg/virtio.scc features/drm-bochs/drm-bochs.scc" +KERNEL_FEATURES_append_qemux86=" cfg/sound.scc cfg/paravirt_kvm.scc" +KERNEL_FEATURES_append_qemux86-64=" cfg/sound.scc cfg/paravirt_kvm.scc" +KERNEL_FEATURES_append = "${@bb.utils.contains("DISTRO_FEATURES", "ptest", " features/scsi/scsi-debug.scc", "" ,d)}" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-kernel/linux/linux-yocto-tiny_4.19.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-kernel/linux/linux-yocto-tiny_4.19.bb index e668854f..0682aef5 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-kernel/linux/linux-yocto-tiny_4.19.bb +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-kernel/linux/linux-yocto-tiny_4.19.bb @@ -6,7 +6,7 @@ KCONFIG_MODE = "--allnoconfig" require recipes-kernel/linux/linux-yocto.inc -LINUX_VERSION ?= "4.19.44" +LINUX_VERSION ?= "4.19.78" LIC_FILES_CHKSUM = "file://COPYING;md5=bbea815ee2795b2f4230826c0c6b8814" DEPENDS += "${@bb.utils.contains('ARCH', 'x86', 'elfutils-native', '', d)}" @@ -15,9 +15,9 @@ DEPENDS += "openssl-native util-linux-native" KMETA = "kernel-meta" KCONF_BSP_AUDIT_LEVEL = "2" -SRCREV_machine_qemuarm ?= "a3cd9d732b27e78f94634924b7232b6280dae002" -SRCREV_machine ?= "f0c6c85e155632580bd44a5db01cbb19dcc1559c" -SRCREV_meta ?= "ad235db461bf4595c668700ca8a909c322009cc1" +SRCREV_machine_qemuarm ?= "be50001808f00efee538c2a3e7c0a5a2a2df65da" +SRCREV_machine ?= "a915fbeae8ed987402f69666d90bef15a01c5823" +SRCREV_meta ?= "ad6f8b357720ca8167a090713b7746230cf4b314" PV = "${LINUX_VERSION}+git${SRCPV}" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-kernel/linux/linux-yocto-tiny_5.0.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-kernel/linux/linux-yocto-tiny_5.0.bb deleted file mode 100644 index 226a90c7..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-kernel/linux/linux-yocto-tiny_5.0.bb +++ /dev/null @@ -1,32 +0,0 @@ -KBRANCH ?= "v5.0/standard/tiny/base" -KBRANCH_qemuarm ?= "v5.0/standard/tiny/arm-versatile-926ejs" - -LINUX_KERNEL_TYPE = "tiny" -KCONFIG_MODE = "--allnoconfig" - -require recipes-kernel/linux/linux-yocto.inc - -LINUX_VERSION ?= "5.0.19" -LIC_FILES_CHKSUM = "file://COPYING;md5=bbea815ee2795b2f4230826c0c6b8814" - -DEPENDS += "${@bb.utils.contains('ARCH', 'x86', 'elfutils-native', '', d)}" -DEPENDS += "openssl-native util-linux-native" - -KMETA = "kernel-meta" -KCONF_BSP_AUDIT_LEVEL = "2" - -SRCREV_machine_qemuarm ?= "fabee455f397ba8054f35a3ad5f2250bbad93bef" -SRCREV_machine ?= "00638cdd8f92869a0f89ebe3289fdbd856ba9458" -SRCREV_meta ?= "31de88e51d100f2c3eefb7acb7390b0144bcfc69" - -PV = "${LINUX_VERSION}+git${SRCPV}" - -SRC_URI = "git://git.yoctoproject.org/linux-yocto.git;branch=${KBRANCH};name=machine \ - git://git.yoctoproject.org/yocto-kernel-cache;type=kmeta;name=meta;branch=yocto-5.0;destsuffix=${KMETA}" - -COMPATIBLE_MACHINE = "qemux86|qemux86-64|qemuarm|qemuarmv5" - -# Functionality flags -KERNEL_FEATURES = "" - -KERNEL_DEVICETREE_qemuarmv5 = "versatile-pb.dtb" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-kernel/linux/linux-yocto-tiny_5.2.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-kernel/linux/linux-yocto-tiny_5.2.bb new file mode 100644 index 00000000..f7239d02 --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-kernel/linux/linux-yocto-tiny_5.2.bb @@ -0,0 +1,32 @@ +KBRANCH ?= "v5.2/standard/tiny/base" +KBRANCH_qemuarm ?= "v5.2/standard/tiny/arm-versatile-926ejs" + +LINUX_KERNEL_TYPE = "tiny" +KCONFIG_MODE = "--allnoconfig" + +require recipes-kernel/linux/linux-yocto.inc + +LINUX_VERSION ?= "5.2.20" +LIC_FILES_CHKSUM = "file://COPYING;md5=bbea815ee2795b2f4230826c0c6b8814" + +DEPENDS += "${@bb.utils.contains('ARCH', 'x86', 'elfutils-native', '', d)}" +DEPENDS += "openssl-native util-linux-native" + +KMETA = "kernel-meta" +KCONF_BSP_AUDIT_LEVEL = "2" + +SRCREV_machine_qemuarm ?= "501d680535903acc00808c36f2cc07f2dc725adc" +SRCREV_machine ?= "dd25a04fc5e2e4549fc9b86157a01e0c72b53b03" +SRCREV_meta ?= "bd0762cd138f1624b5a5f8669cfa3ac2b71cb87b" + +PV = "${LINUX_VERSION}+git${SRCPV}" + +SRC_URI = "git://git.yoctoproject.org/linux-yocto.git;branch=${KBRANCH};name=machine \ + git://git.yoctoproject.org/yocto-kernel-cache;type=kmeta;name=meta;branch=yocto-5.2;destsuffix=${KMETA}" + +COMPATIBLE_MACHINE = "qemux86|qemux86-64|qemuarm|qemuarmv5" + +# Functionality flags +KERNEL_FEATURES = "" + +KERNEL_DEVICETREE_qemuarmv5 = "versatile-pb.dtb" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-kernel/linux/linux-yocto_4.19.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-kernel/linux/linux-yocto_4.19.bb index 014d6894..d8cb20f2 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-kernel/linux/linux-yocto_4.19.bb +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-kernel/linux/linux-yocto_4.19.bb @@ -11,22 +11,22 @@ KBRANCH_qemux86 ?= "v4.19/standard/base" KBRANCH_qemux86-64 ?= "v4.19/standard/base" KBRANCH_qemumips64 ?= "v4.19/standard/mti-malta64" -SRCREV_machine_qemuarm ?= "c12bc1a098be009c44582e75af630ff573155473" -SRCREV_machine_qemuarm64 ?= "f0c6c85e155632580bd44a5db01cbb19dcc1559c" -SRCREV_machine_qemumips ?= "18ba7160ac7a094bf9659649c537303201eb022e" -SRCREV_machine_qemuppc ?= "f0c6c85e155632580bd44a5db01cbb19dcc1559c" -SRCREV_machine_qemux86 ?= "f0c6c85e155632580bd44a5db01cbb19dcc1559c" -SRCREV_machine_qemux86-64 ?= "f0c6c85e155632580bd44a5db01cbb19dcc1559c" -SRCREV_machine_qemumips64 ?= "d9c77fe2a6038848fbadd660882b78e590c3252e" -SRCREV_machine ?= "f0c6c85e155632580bd44a5db01cbb19dcc1559c" -SRCREV_meta ?= "ad235db461bf4595c668700ca8a909c322009cc1" +SRCREV_machine_qemuarm ?= "7fde51abcaf389193ce5d87ebfb8e8fb66a9271a" +SRCREV_machine_qemuarm64 ?= "a915fbeae8ed987402f69666d90bef15a01c5823" +SRCREV_machine_qemumips ?= "8ac68d42beb24b275ac0d2a54a0a2291970e5dde" +SRCREV_machine_qemuppc ?= "a915fbeae8ed987402f69666d90bef15a01c5823" +SRCREV_machine_qemux86 ?= "a915fbeae8ed987402f69666d90bef15a01c5823" +SRCREV_machine_qemux86-64 ?= "a915fbeae8ed987402f69666d90bef15a01c5823" +SRCREV_machine_qemumips64 ?= "ea2cb8731306f734bf0227575e04cafac7dfade0" +SRCREV_machine ?= "a915fbeae8ed987402f69666d90bef15a01c5823" +SRCREV_meta ?= "ad6f8b357720ca8167a090713b7746230cf4b314" SRC_URI = "git://git.yoctoproject.org/linux-yocto.git;name=machine;branch=${KBRANCH}; \ git://git.yoctoproject.org/yocto-kernel-cache;type=kmeta;name=meta;branch=yocto-4.19;destsuffix=${KMETA} \ " LIC_FILES_CHKSUM = "file://COPYING;md5=bbea815ee2795b2f4230826c0c6b8814" -LINUX_VERSION ?= "4.19.44" +LINUX_VERSION ?= "4.19.78" DEPENDS += "${@bb.utils.contains('ARCH', 'x86', 'elfutils-native', '', d)}" DEPENDS += "openssl-native util-linux-native" @@ -43,7 +43,7 @@ COMPATIBLE_MACHINE = "qemuarm|qemuarmv5|qemuarm64|qemux86|qemuppc|qemumips|qemum # Functionality flags KERNEL_EXTRA_FEATURES ?= "features/netfilter/netfilter.scc" KERNEL_FEATURES_append = " ${KERNEL_EXTRA_FEATURES}" -KERNEL_FEATURES_append_qemuall=" cfg/virtio.scc" +KERNEL_FEATURES_append_qemuall=" cfg/virtio.scc features/drm-bochs/drm-bochs.scc" KERNEL_FEATURES_append_qemux86=" cfg/sound.scc cfg/paravirt_kvm.scc" KERNEL_FEATURES_append_qemux86-64=" cfg/sound.scc cfg/paravirt_kvm.scc" KERNEL_FEATURES_append = " ${@bb.utils.contains("TUNE_FEATURES", "mx32", " cfg/x32.scc", "" ,d)}" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-kernel/linux/linux-yocto_5.0.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-kernel/linux/linux-yocto_5.0.bb deleted file mode 100644 index 7456141c..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-kernel/linux/linux-yocto_5.0.bb +++ /dev/null @@ -1,54 +0,0 @@ -KBRANCH ?= "v5.0/standard/base" - -require recipes-kernel/linux/linux-yocto.inc - -# board specific branches -KBRANCH_qemuarm ?= "v5.0/standard/arm-versatile-926ejs" -KBRANCH_qemuarm64 ?= "v5.0/standard/qemuarm64" -KBRANCH_qemumips ?= "v5.0/standard/mti-malta32" -KBRANCH_qemuppc ?= "v5.0/standard/qemuppc" -KBRANCH_qemuriscv64 ?= "v5.0/standard/base" -KBRANCH_qemux86 ?= "v5.0/standard/base" -KBRANCH_qemux86-64 ?= "v5.0/standard/base" -KBRANCH_qemumips64 ?= "v5.0/standard/mti-malta64" - -SRCREV_machine_qemuarm ?= "9161b2fa2f1cec0ba02976c389c788445858e0de" -SRCREV_machine_qemuarm64 ?= "00638cdd8f92869a0f89ebe3289fdbd856ba9458" -SRCREV_machine_qemumips ?= "7de9b8f0db98e51a666477c8e2b64f1964b45410" -SRCREV_machine_qemuppc ?= "00638cdd8f92869a0f89ebe3289fdbd856ba9458" -SRCREV_machine_qemuriscv64 ?= "00638cdd8f92869a0f89ebe3289fdbd856ba9458" -SRCREV_machine_qemux86 ?= "00638cdd8f92869a0f89ebe3289fdbd856ba9458" -SRCREV_machine_qemux86-64 ?= "00638cdd8f92869a0f89ebe3289fdbd856ba9458" -SRCREV_machine_qemumips64 ?= "5a8b27bcc0b16077ab8edfcd3fb25c80dc2c652e" -SRCREV_machine ?= "00638cdd8f92869a0f89ebe3289fdbd856ba9458" -SRCREV_meta ?= "31de88e51d100f2c3eefb7acb7390b0144bcfc69" - -# remap qemuarm to qemuarma15 for the 5.0 kernel -# KMACHINE_qemuarm ?= "qemuarma15" - -SRC_URI = "git://git.yoctoproject.org/linux-yocto.git;name=machine;branch=${KBRANCH}; \ - git://git.yoctoproject.org/yocto-kernel-cache;type=kmeta;name=meta;branch=yocto-5.0;destsuffix=${KMETA}" - -LIC_FILES_CHKSUM = "file://COPYING;md5=bbea815ee2795b2f4230826c0c6b8814" -LINUX_VERSION ?= "5.0.19" - -DEPENDS += "${@bb.utils.contains('ARCH', 'x86', 'elfutils-native', '', d)}" -DEPENDS += "openssl-native util-linux-native" - -PV = "${LINUX_VERSION}+git${SRCPV}" - -KMETA = "kernel-meta" -KCONF_BSP_AUDIT_LEVEL = "2" - -KERNEL_DEVICETREE_qemuarmv5 = "versatile-pb.dtb" - -COMPATIBLE_MACHINE = "qemuarm|qemuarmv5|qemuarm64|qemux86|qemuppc|qemumips|qemumips64|qemux86-64|qemuriscv64" - -# Functionality flags -KERNEL_EXTRA_FEATURES ?= "features/netfilter/netfilter.scc" -KERNEL_FEATURES_append = " ${KERNEL_EXTRA_FEATURES}" -KERNEL_FEATURES_append_qemuall=" cfg/virtio.scc" -KERNEL_FEATURES_append_qemux86=" cfg/sound.scc cfg/paravirt_kvm.scc" -KERNEL_FEATURES_append_qemux86-64=" cfg/sound.scc cfg/paravirt_kvm.scc" -KERNEL_FEATURES_append = " ${@bb.utils.contains("TUNE_FEATURES", "mx32", " cfg/x32.scc", "" ,d)}" -KERNEL_FEATURES_append = " ${@bb.utils.contains("DISTRO_FEATURES", "ptest", " features/scsi/scsi-debug.scc", "" ,d)}" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-kernel/linux/linux-yocto_5.2.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-kernel/linux/linux-yocto_5.2.bb new file mode 100644 index 00000000..8f75f67c --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-kernel/linux/linux-yocto_5.2.bb @@ -0,0 +1,54 @@ +KBRANCH ?= "v5.2/standard/base" + +require recipes-kernel/linux/linux-yocto.inc + +# board specific branches +KBRANCH_qemuarm ?= "v5.2/standard/arm-versatile-926ejs" +KBRANCH_qemuarm64 ?= "v5.2/standard/qemuarm64" +KBRANCH_qemumips ?= "v5.2/standard/mti-malta32" +KBRANCH_qemuppc ?= "v5.2/standard/qemuppc" +KBRANCH_qemuriscv64 ?= "v5.2/standard/base" +KBRANCH_qemux86 ?= "v5.2/standard/base" +KBRANCH_qemux86-64 ?= "v5.2/standard/base" +KBRANCH_qemumips64 ?= "v5.2/standard/mti-malta64" + +SRCREV_machine_qemuarm ?= "fcbe51dfa0a763a07e4cd66204d6c0ba054663ce" +SRCREV_machine_qemuarm64 ?= "dd25a04fc5e2e4549fc9b86157a01e0c72b53b03" +SRCREV_machine_qemumips ?= "9cad7bb8bcd3686f580a3363847ee9c9e86928b1" +SRCREV_machine_qemuppc ?= "dd25a04fc5e2e4549fc9b86157a01e0c72b53b03" +SRCREV_machine_qemuriscv64 ?= "dd25a04fc5e2e4549fc9b86157a01e0c72b53b03" +SRCREV_machine_qemux86 ?= "dd25a04fc5e2e4549fc9b86157a01e0c72b53b03" +SRCREV_machine_qemux86-64 ?= "dd25a04fc5e2e4549fc9b86157a01e0c72b53b03" +SRCREV_machine_qemumips64 ?= "dc2be1a546e937374590ce3858b717489ded2c21" +SRCREV_machine ?= "dd25a04fc5e2e4549fc9b86157a01e0c72b53b03" +SRCREV_meta ?= "bd0762cd138f1624b5a5f8669cfa3ac2b71cb87b" + +# remap qemuarm to qemuarma15 for the 5.2 kernel +# KMACHINE_qemuarm ?= "qemuarma15" + +SRC_URI = "git://git.yoctoproject.org/linux-yocto.git;name=machine;branch=${KBRANCH}; \ + git://git.yoctoproject.org/yocto-kernel-cache;type=kmeta;name=meta;branch=yocto-5.2;destsuffix=${KMETA}" + +LIC_FILES_CHKSUM = "file://COPYING;md5=bbea815ee2795b2f4230826c0c6b8814" +LINUX_VERSION ?= "5.2.20" + +DEPENDS += "${@bb.utils.contains('ARCH', 'x86', 'elfutils-native', '', d)}" +DEPENDS += "openssl-native util-linux-native" + +PV = "${LINUX_VERSION}+git${SRCPV}" + +KMETA = "kernel-meta" +KCONF_BSP_AUDIT_LEVEL = "2" + +KERNEL_DEVICETREE_qemuarmv5 = "versatile-pb.dtb" + +COMPATIBLE_MACHINE = "qemuarm|qemuarmv5|qemuarm64|qemux86|qemuppc|qemumips|qemumips64|qemux86-64|qemuriscv64" + +# Functionality flags +KERNEL_EXTRA_FEATURES ?= "features/netfilter/netfilter.scc" +KERNEL_FEATURES_append = " ${KERNEL_EXTRA_FEATURES}" +KERNEL_FEATURES_append_qemuall=" cfg/virtio.scc features/drm-bochs/drm-bochs.scc" +KERNEL_FEATURES_append_qemux86=" cfg/sound.scc cfg/paravirt_kvm.scc" +KERNEL_FEATURES_append_qemux86-64=" cfg/sound.scc cfg/paravirt_kvm.scc" +KERNEL_FEATURES_append = " ${@bb.utils.contains("TUNE_FEATURES", "mx32", " cfg/x32.scc", "" ,d)}" +KERNEL_FEATURES_append = " ${@bb.utils.contains("DISTRO_FEATURES", "ptest", " features/scsi/scsi-debug.scc", "" ,d)}" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-kernel/lttng/babeltrace_1.5.6.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-kernel/lttng/babeltrace_1.5.6.bb deleted file mode 100644 index f5c31c44..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-kernel/lttng/babeltrace_1.5.6.bb +++ /dev/null @@ -1,20 +0,0 @@ -SUMMARY = "Babeltrace - Trace Format Babel Tower" -DESCRIPTION = "Babeltrace provides trace read and write libraries in host side, as well as a trace converter, which used to convert LTTng 2.0 traces into human-readable log." -HOMEPAGE = "http://www.efficios.com/babeltrace/" -BUGTRACKER = "https://bugs.lttng.org/projects/babeltrace" -LICENSE = "MIT & GPLv2" -LIC_FILES_CHKSUM = "file://LICENSE;md5=76ba15dd76a248e1dd526bca0e2125fa" - -DEPENDS = "glib-2.0 util-linux popt bison-native flex-native" - -SRC_URI = "git://git.linuxfoundation.org/diamon/babeltrace.git;branch=stable-1.5" -SRCREV = "4f10a4adabee5ca61c27ba399b3438505e0cd6de" -UPSTREAM_CHECK_GITTAGREGEX = "v(?P\d+(\.\d+)+)$" - -S = "${WORKDIR}/git" - -inherit autotools pkgconfig - -EXTRA_OECONF = "--disable-debug-info" - -ASNEEDED = "" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-kernel/lttng/babeltrace_1.5.7.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-kernel/lttng/babeltrace_1.5.7.bb new file mode 100644 index 00000000..05ef6d09 --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-kernel/lttng/babeltrace_1.5.7.bb @@ -0,0 +1,20 @@ +SUMMARY = "Babeltrace - Trace Format Babel Tower" +DESCRIPTION = "Babeltrace provides trace read and write libraries in host side, as well as a trace converter, which used to convert LTTng 2.0 traces into human-readable log." +HOMEPAGE = "http://www.efficios.com/babeltrace/" +BUGTRACKER = "https://bugs.lttng.org/projects/babeltrace" +LICENSE = "MIT & GPLv2" +LIC_FILES_CHKSUM = "file://LICENSE;md5=76ba15dd76a248e1dd526bca0e2125fa" + +DEPENDS = "glib-2.0 util-linux popt bison-native flex-native" + +SRC_URI = "git://git.linuxfoundation.org/diamon/babeltrace.git;branch=stable-1.5" +SRCREV = "d4014aeef4b89a4aaab1af42d7b0d143d62da0ff" +UPSTREAM_CHECK_GITTAGREGEX = "v(?P\d+(\.\d+)+)$" + +S = "${WORKDIR}/git" + +inherit autotools pkgconfig + +EXTRA_OECONF = "--disable-debug-info" + +ASNEEDED = "" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-kernel/lttng/lttng-modules_2.10.10.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-kernel/lttng/lttng-modules_2.10.10.bb deleted file mode 100644 index 6e2d6554..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-kernel/lttng/lttng-modules_2.10.10.bb +++ /dev/null @@ -1,45 +0,0 @@ -SECTION = "devel" -SUMMARY = "Linux Trace Toolkit KERNEL MODULE" -DESCRIPTION = "The lttng-modules 2.0 package contains the kernel tracer modules" -LICENSE = "LGPLv2.1 & GPLv2 & MIT" -LIC_FILES_CHKSUM = "file://LICENSE;md5=c4613d1f8a9587bd7b366191830364b3 \ - file://gpl-2.0.txt;md5=751419260aa954499f7abaabaa882bbe \ - file://lgpl-2.1.txt;md5=243b725d71bb5df4a1e5920b344b86ad \ - " - -inherit module - -COMPATIBLE_HOST = '(x86_64|i.86|powerpc|aarch64|mips|nios2|arm|riscv).*-linux' - -SRC_URI = "https://lttng.org/files/${BPN}/${BPN}-${PV}.tar.bz2 \ - file://Makefile-Do-not-fail-if-CONFIG_TRACEPOINTS-is-not-en.patch \ - file://BUILD_RUNTIME_BUG_ON-vs-gcc7.patch \ - " - -SRC_URI[md5sum] = "07c0b1ea4c1dd9d3edba8dc980fd93dd" -SRC_URI[sha256sum] = "e0d031005eef337c62de530a3b5b3e8fb1c732846eefcb23b8978edd2091f6e4" - -export INSTALL_MOD_DIR="kernel/lttng-modules" - -EXTRA_OEMAKE += "KERNELDIR='${STAGING_KERNEL_DIR}'" - -do_install_append() { - # Delete empty directories to avoid QA failures if no modules were built - find ${D}/${nonarch_base_libdir} -depth -type d -empty -exec rmdir {} \; -} - -python do_package_prepend() { - if not os.path.exists(os.path.join(d.getVar('D'), d.getVar('nonarch_base_libdir')[1:], 'modules')): - bb.warn("%s: no modules were created; this may be due to CONFIG_TRACEPOINTS not being enabled in your kernel." % d.getVar('PN')) -} - -BBCLASSEXTEND = "devupstream:target" -LIC_FILES_CHKSUM_class-devupstream = "file://LICENSE;md5=c4613d1f8a9587bd7b366191830364b3" -DEFAULT_PREFERENCE_class-devupstream = "-1" -SRC_URI_class-devupstream = "git://git.lttng.org/lttng-modules;branch=stable-2.10 \ - file://Makefile-Do-not-fail-if-CONFIG_TRACEPOINTS-is-not-en.patch \ - file://BUILD_RUNTIME_BUG_ON-vs-gcc7.patch \ - " -SRCREV_class-devupstream = "624aca5d7507fbd11ea4a1a474c3aa1031bd9a31" -PV_class-devupstream = "2.10.10+git${SRCPV}" -S_class-devupstream = "${WORKDIR}/git" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-kernel/lttng/lttng-modules_2.10.11.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-kernel/lttng/lttng-modules_2.10.11.bb new file mode 100644 index 00000000..789a3be8 --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-kernel/lttng/lttng-modules_2.10.11.bb @@ -0,0 +1,46 @@ +SECTION = "devel" +SUMMARY = "Linux Trace Toolkit KERNEL MODULE" +DESCRIPTION = "The lttng-modules 2.0 package contains the kernel tracer modules" +LICENSE = "LGPLv2.1 & GPLv2 & MIT" +LIC_FILES_CHKSUM = "file://LICENSE;md5=c4613d1f8a9587bd7b366191830364b3 \ + file://gpl-2.0.txt;md5=751419260aa954499f7abaabaa882bbe \ + file://lgpl-2.1.txt;md5=243b725d71bb5df4a1e5920b344b86ad \ + " + +inherit module + +COMPATIBLE_HOST = '(x86_64|i.86|powerpc|aarch64|mips|nios2|arm|riscv).*-linux' + +SRC_URI = "https://lttng.org/files/${BPN}/${BPN}-${PV}.tar.bz2 \ + file://Makefile-Do-not-fail-if-CONFIG_TRACEPOINTS-is-not-en.patch \ + file://BUILD_RUNTIME_BUG_ON-vs-gcc7.patch \ + " + +SRC_URI[md5sum] = "c618fb646514dfc1bf910cfd7cda4256" +SRC_URI[sha256sum] = "7f91e39b2e8e46d8bbba2b4c8c1614f1fb380611cd1a1fccc1d1859be26112f1" + +export INSTALL_MOD_DIR="kernel/lttng-modules" + +EXTRA_OEMAKE += "KERNELDIR='${STAGING_KERNEL_DIR}'" + +do_install_append() { + # Delete empty directories to avoid QA failures if no modules were built + find ${D}/${nonarch_base_libdir} -depth -type d -empty -exec rmdir {} \; +} + +python do_package_prepend() { + if not os.path.exists(os.path.join(d.getVar('D'), d.getVar('nonarch_base_libdir')[1:], 'modules')): + bb.warn("%s: no modules were created; this may be due to CONFIG_TRACEPOINTS not being enabled in your kernel." % d.getVar('PN')) +} + +BBCLASSEXTEND = "devupstream:target" +LIC_FILES_CHKSUM_class-devupstream = "file://LICENSE;md5=c4613d1f8a9587bd7b366191830364b3" +DEFAULT_PREFERENCE_class-devupstream = "-1" +SRC_URI_class-devupstream = "git://git.lttng.org/lttng-modules;branch=stable-2.10 \ + file://Makefile-Do-not-fail-if-CONFIG_TRACEPOINTS-is-not-en.patch \ + file://BUILD_RUNTIME_BUG_ON-vs-gcc7.patch \ + " +SRCREV_class-devupstream = "624aca5d7507fbd11ea4a1a474c3aa1031bd9a31" +PV_class-devupstream = "2.10.10+git${SRCPV}" +S_class-devupstream = "${WORKDIR}/git" +SRCREV_FORMAT ?= "lttng_git" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-kernel/lttng/lttng-tools/0001-check-for-gettid-API-during-configure.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-kernel/lttng/lttng-tools/0001-check-for-gettid-API-during-configure.patch new file mode 100644 index 00000000..c494cee6 --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-kernel/lttng/lttng-tools/0001-check-for-gettid-API-during-configure.patch @@ -0,0 +1,55 @@ +From 69c62f5f3cc424b7dd0c8e4097743b39a9c48306 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Sat, 27 Jul 2019 08:48:13 -0700 +Subject: [lttng-tools][PATCH] check for gettid API during configure + +Add support for gettid() provided by glibc 2.30+ + +Since version 2.30 glibc provides gettid and it causes conflicts with +locally defined gettid(). Use the local definition of +gettid only if system gettid is not available. + +https://sourceware.org/git/?p=glibc.git;a=blob_plain;f=NEWS;hb=HEAD + +Upstream-Status: Pending +Signed-off-by: Khem Raj +--- + configure.ac | 2 +- + src/common/compat/tid.h | 3 ++- + 2 files changed, 3 insertions(+), 2 deletions(-) + +diff --git a/configure.ac b/configure.ac +index 7b99f5c..e4bd82c 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -190,7 +190,7 @@ AC_CHECK_HEADERS([ \ + # Basic functions check + AC_CHECK_FUNCS([ \ + atexit bzero clock_gettime dup2 fdatasync fls ftruncate \ +- gethostbyname gethostname getpagesize localtime_r memchr memset \ ++ gethostbyname gethostname getpagesize gettid localtime_r memchr memset \ + mkdir munmap putenv realpath rmdir socket strchr strcspn strdup \ + strncasecmp strndup strnlen strpbrk strrchr strstr strtol strtoul \ + strtoull dirfd gethostbyname2 getipnodebyname epoll_create1 \ +diff --git a/src/common/compat/tid.h b/src/common/compat/tid.h +index 40f562f..aa07a85 100644 +--- a/src/common/compat/tid.h ++++ b/src/common/compat/tid.h +@@ -25,6 +25,7 @@ + #ifndef LTTNG_TID_H + #define LTTNG_TID_H + ++#if !HAVE_GETTID + #ifdef __linux__ + #include + #endif +@@ -47,5 +48,5 @@ static inline pid_t gettid(void) + return getpid(); + } + #endif +- ++#endif /* HAVE_GETTID */ + #endif /* LTTNG_TID_H */ +-- +2.22.0 + diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-kernel/lttng/lttng-tools_2.10.7.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-kernel/lttng/lttng-tools_2.10.7.bb index 469ad111..aa6d19d0 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-kernel/lttng/lttng-tools_2.10.7.bb +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-kernel/lttng/lttng-tools_2.10.7.bb @@ -34,6 +34,7 @@ SRC_URI = "https://lttng.org/files/lttng-tools/lttng-tools-${PV}.tar.bz2 \ file://lttng-sessiond.service \ file://0001-Skip-when-testapp-is-not-present.patch \ file://0002-Fix-check-for-lttng-modules-presence-before-testing.patch \ + file://0001-check-for-gettid-API-during-configure.patch \ " SRC_URI[md5sum] = "e7804d10e4cade381e241601f6047373" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-kernel/lttng/lttng-ust/0001-python-lttngust-Makefile.am-Add-install-lib-to-setup.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-kernel/lttng/lttng-ust/0001-python-lttngust-Makefile.am-Add-install-lib-to-setup.patch new file mode 100644 index 00000000..c2028d0e --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-kernel/lttng/lttng-ust/0001-python-lttngust-Makefile.am-Add-install-lib-to-setup.patch @@ -0,0 +1,31 @@ +From f79dac30af9adda12996da7f6aa6667d3b580537 Mon Sep 17 00:00:00 2001 +From: Robert Yang +Date: Thu, 26 Sep 2019 17:54:00 +0800 +Subject: [PATCH] python-lttngust/Makefile.am: Add --install-lib to setup.py + +Otherwise it may install to /usr/lib, but should be /usr/lib64 when cross +building. + +Upstream-Status: Submitted [https://github.com/lttng/lttng-ust/pull/59] + +Signed-off-by: Robert Yang +--- + python-lttngust/Makefile.am | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/python-lttngust/Makefile.am b/python-lttngust/Makefile.am +index 6c0d20d..38b51b8 100644 +--- a/python-lttngust/Makefile.am ++++ b/python-lttngust/Makefile.am +@@ -9,7 +9,7 @@ install-exec-local: + if [ "$(DESTDIR)" != "" ]; then \ + opts="$$opts --root=$(DESTDIR)"; \ + fi; \ +- $(PYTHON) setup.py install $$opts; ++ $(PYTHON) setup.py install $$opts --install-lib=$(pythondir); + + clean-local: + rm -rf $(builddir)/build +-- +2.7.4 + diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-kernel/lttng/lttng-ust_2.10.4.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-kernel/lttng/lttng-ust_2.10.4.bb deleted file mode 100644 index a8eebb22..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-kernel/lttng/lttng-ust_2.10.4.bb +++ /dev/null @@ -1,48 +0,0 @@ -SUMMARY = "Linux Trace Toolkit Userspace Tracer 2.x" -DESCRIPTION = "The LTTng UST 2.x package contains the userspace tracer library to trace userspace codes." -HOMEPAGE = "http://lttng.org/ust" -BUGTRACKER = "https://bugs.lttng.org/projects/lttng-ust" - -LICENSE = "LGPLv2.1+ & MIT & GPLv2" -LIC_FILES_CHKSUM = "file://COPYING;md5=c963eb366b781252b0bf0fdf1624d9e9 \ - file://snprintf/snprintf.c;endline=32;md5=d3d544959d8a3782b2e07451be0a903c \ - file://snprintf/various.h;endline=31;md5=89f2509b6b4682c4fc95255eec4abe44" - -PYTHON_OPTION = "am_cv_python_pyexecdir='${PYTHON_SITEPACKAGES_DIR}' \ - am_cv_python_pythondir='${PYTHON_SITEPACKAGES_DIR}' \ - PYTHON_INCLUDE='-I${STAGING_INCDIR}/python${PYTHON_BASEVERSION}${PYTHON_ABI}' \ -" - -inherit autotools lib_package manpages python3native - -DEPENDS = "liburcu util-linux" -RDEPENDS_${PN}-bin = "python3-core" - -# For backwards compatibility after rename -RPROVIDES_${PN} = "lttng2-ust" -RREPLACES_${PN} = "lttng2-ust" -RCONFLICTS_${PN} = "lttng2-ust" - -PE = "2" - -SRC_URI = "https://lttng.org/files/lttng-ust/lttng-ust-${PV}.tar.bz2 \ - file://lttng-ust-doc-examples-disable.patch \ - " - -SRC_URI[md5sum] = "19916ff0dec23c90f985586a8cbd1fd2" -SRC_URI[sha256sum] = "75d5b4bb205c444a343e1297e14cd3a2503fc645a26710531cbd319c72c1a967" - -CVE_PRODUCT = "ust" - -PACKAGECONFIG[manpages] = "--enable-man-pages, --disable-man-pages, asciidoc-native xmlto-native libxslt-native" -PACKAGECONFIG[python3-agent] = "--enable-python-agent ${PYTHON_OPTION}, --disable-python-agent, python3, python3" - -FILES_${PN} += " ${PYTHON_SITEPACKAGES_DIR}/*" -FILES_${PN}-staticdev += " ${PYTHON_SITEPACKAGES_DIR}/*.a" -FILES_${PN}-dev += " ${PYTHON_SITEPACKAGES_DIR}/*.la" - -do_install_append() { - # Patch python tools to use Python 3; they should be source compatible, but - # still refer to Python 2 in the shebang - sed -i -e '1s,#!.*python.*,#!${bindir}/python3,' ${D}${bindir}/lttng-gen-tp -} diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-kernel/lttng/lttng-ust_2.10.5.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-kernel/lttng/lttng-ust_2.10.5.bb new file mode 100644 index 00000000..cfaad30b --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-kernel/lttng/lttng-ust_2.10.5.bb @@ -0,0 +1,49 @@ +SUMMARY = "Linux Trace Toolkit Userspace Tracer 2.x" +DESCRIPTION = "The LTTng UST 2.x package contains the userspace tracer library to trace userspace codes." +HOMEPAGE = "http://lttng.org/ust" +BUGTRACKER = "https://bugs.lttng.org/projects/lttng-ust" + +LICENSE = "LGPLv2.1+ & MIT & GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=c963eb366b781252b0bf0fdf1624d9e9 \ + file://snprintf/snprintf.c;endline=32;md5=d3d544959d8a3782b2e07451be0a903c \ + file://snprintf/various.h;endline=31;md5=89f2509b6b4682c4fc95255eec4abe44" + +PYTHON_OPTION = "am_cv_python_pyexecdir='${PYTHON_SITEPACKAGES_DIR}' \ + am_cv_python_pythondir='${PYTHON_SITEPACKAGES_DIR}' \ + PYTHON_INCLUDE='-I${STAGING_INCDIR}/python${PYTHON_BASEVERSION}${PYTHON_ABI}' \ +" + +inherit autotools lib_package manpages python3native + +DEPENDS = "liburcu util-linux" +RDEPENDS_${PN}-bin = "python3-core" + +# For backwards compatibility after rename +RPROVIDES_${PN} = "lttng2-ust" +RREPLACES_${PN} = "lttng2-ust" +RCONFLICTS_${PN} = "lttng2-ust" + +PE = "2" + +SRC_URI = "https://lttng.org/files/lttng-ust/lttng-ust-${PV}.tar.bz2 \ + file://lttng-ust-doc-examples-disable.patch \ + file://0001-python-lttngust-Makefile.am-Add-install-lib-to-setup.patch \ + " + +SRC_URI[md5sum] = "f0c86a9fa7dcfd0205fb42584a310b1c" +SRC_URI[sha256sum] = "06f9ed9b2198855b1c7fcbf15fe57297ee259409ffa1b3bad87321412d98bc35" + +CVE_PRODUCT = "ust" + +PACKAGECONFIG[manpages] = "--enable-man-pages, --disable-man-pages, asciidoc-native xmlto-native libxslt-native" +PACKAGECONFIG[python3-agent] = "--enable-python-agent ${PYTHON_OPTION}, --disable-python-agent, python3, python3" + +FILES_${PN} += " ${PYTHON_SITEPACKAGES_DIR}/*" +FILES_${PN}-staticdev += " ${PYTHON_SITEPACKAGES_DIR}/*.a" +FILES_${PN}-dev += " ${PYTHON_SITEPACKAGES_DIR}/*.la" + +do_install_append() { + # Patch python tools to use Python 3; they should be source compatible, but + # still refer to Python 2 in the shebang + sed -i -e '1s,#!.*python.*,#!${bindir}/python3,' ${D}${bindir}/lttng-gen-tp +} diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-kernel/perf/perf.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-kernel/perf/perf.bb index 4e603f1a..5f0ba7c1 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-kernel/perf/perf.bb +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-kernel/perf/perf.bb @@ -13,7 +13,7 @@ PR = "r9" PACKAGECONFIG ??= "scripting tui libunwind" PACKAGECONFIG[dwarf] = ",NO_DWARF=1" -PACKAGECONFIG[scripting] = ",NO_LIBPERL=1 NO_LIBPYTHON=1,perl python" +PACKAGECONFIG[scripting] = ",NO_LIBPERL=1 NO_LIBPYTHON=1,perl python3" # gui support was added with kernel 3.6.35 # since 3.10 libnewt was replaced by slang # to cover a wide range of kernel we add both dependencies @@ -25,6 +25,7 @@ PACKAGECONFIG[jvmti] = ",NO_JVMTI=1" # libaudit support would need scripting to be enabled PACKAGECONFIG[audit] = ",NO_LIBAUDIT=1,audit" PACKAGECONFIG[manpages] = ",,xmlto-native asciidoc-native" +PACKAGECONFIG[cap] = ",,libcap" # libunwind is not yet ported for some architectures PACKAGECONFIG_remove_arc = "libunwind" @@ -44,8 +45,8 @@ PROVIDES = "virtual/perf" inherit linux-kernel-base kernel-arch manpages # needed for building the tools/perf Python bindings -inherit ${@bb.utils.contains('PACKAGECONFIG', 'scripting', 'pythonnative', '', d)} -inherit python-dir +inherit ${@bb.utils.contains('PACKAGECONFIG', 'scripting', 'python3native', '', d)} +inherit python3-dir export PYTHON_SITEPACKAGES_DIR #kernel 3.1+ supports WERROR to disable warnings as errors @@ -94,6 +95,7 @@ EXTRA_OEMAKE += "\ 'sharedir=${@os.path.relpath(datadir, prefix)}' \ 'mandir=${@os.path.relpath(mandir, prefix)}' \ 'infodir=${@os.path.relpath(infodir, prefix)}' \ + ${@bb.utils.contains('PACKAGECONFIG', 'scripting', 'PYTHON=python3 PYTHON_CONFIG=python3-config', '', d)} \ " # During do_configure, we might run a 'make clean'. That often breaks @@ -104,7 +106,6 @@ EXTRA_OEMAKE += "\ EXTRA_OEMAKE_append_task-configure = " JOBS=1" PERF_SRC ?= "Makefile \ - include \ tools/arch \ tools/build \ tools/include \ @@ -112,6 +113,8 @@ PERF_SRC ?= "Makefile \ tools/Makefile \ tools/perf \ tools/scripts \ + scripts/ \ + arch/${ARCH}/Makefile \ " PERF_EXTRA_LDFLAGS = "" @@ -132,7 +135,7 @@ do_install() { oe_runmake install # we are checking for this make target to be compatible with older perf versions if ${@bb.utils.contains('PACKAGECONFIG', 'scripting', 'true', 'false', d)} && grep -q install-python_ext ${S}/tools/perf/Makefile*; then - oe_runmake DESTDIR=${D} install-python_ext + oe_runmake DESTDIR=${D} install-python_ext fi } @@ -150,6 +153,8 @@ python copy_perf_source_from_kernel() { if os.path.isdir(src): oe.path.copyhardlinktree(src, dest) else: + src_path = os.path.dirname(s) + os.makedirs(os.path.join(dest_dir,src_path),exist_ok=True) bb.utils.copyfile(src, dest) } @@ -232,13 +237,16 @@ do_configure_prepend () { fi # use /usr/bin/env instead of version specific python - for s in `find ${S}/tools/perf/scripts/python/ -name '*.py'`; do - sed -i 's,/usr/bin/python2,/usr/bin/env python,' "${s}" + for s in `find ${S}/tools/perf/ -name '*.py'`; do + sed -i 's,/usr/bin/python,/usr/bin/env python3,' "${s}" + sed -i 's,/usr/bin/python2,/usr/bin/env python3,' "${s}" + sed -i 's,/usr/bin/env python2,/usr/bin/env python3,' "${s}" done # unistd.h can be out of sync between libc-headers and the captured version in the perf source # so we copy it from the sysroot unistd.h to the perf unistd.h install -D -m0644 ${STAGING_INCDIR}/asm-generic/unistd.h ${S}/tools/include/uapi/asm-generic/unistd.h + install -D -m0644 ${STAGING_INCDIR}/asm-generic/unistd.h ${S}/include/uapi/asm-generic/unistd.h } python do_package_prepend() { @@ -252,9 +260,9 @@ PACKAGES =+ "${PN}-archive ${PN}-tests ${PN}-perl ${PN}-python" RDEPENDS_${PN} += "elfutils bash" RDEPENDS_${PN}-archive =+ "bash" -RDEPENDS_${PN}-python =+ "bash python python-modules ${@bb.utils.contains('PACKAGECONFIG', 'audit', 'audit-python', '', d)}" +RDEPENDS_${PN}-python =+ "bash python3 python3-modules ${@bb.utils.contains('PACKAGECONFIG', 'audit', 'audit-python3', '', d)}" RDEPENDS_${PN}-perl =+ "bash perl perl-modules" -RDEPENDS_${PN}-tests =+ "python" +RDEPENDS_${PN}-tests =+ "python3" RSUGGESTS_SCRIPTING = "${@bb.utils.contains('PACKAGECONFIG', 'scripting', '${PN}-perl ${PN}-python', '',d)}" RSUGGESTS_${PN} += "${PN}-archive ${PN}-tests ${RSUGGESTS_SCRIPTING}" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-kernel/powertop/powertop/0001-wakeup_xxx.h-include-limits.h.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-kernel/powertop/powertop/0001-wakeup_xxx.h-include-limits.h.patch new file mode 100644 index 00000000..7bfca8ab --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-kernel/powertop/powertop/0001-wakeup_xxx.h-include-limits.h.patch @@ -0,0 +1,55 @@ +From 4c24fdd8e0a42359df7308155b2d43c28a5e02fd Mon Sep 17 00:00:00 2001 +From: Fabrice Fontaine +Date: Mon, 20 May 2019 20:25:00 +0200 +Subject: [PATCH] wakeup_xxx.h: include limits.h + +limits.h must be included to define PATH_MAX otherwise build will fail +on: + +In file included from wakeup/wakeup_ethernet.cpp:45:0: +wakeup/wakeup_ethernet.h:35:16: error: 'PATH_MAX' was not declared in this scope + char eth_path[PATH_MAX]; + +In file included from wakeup/wakeup_usb.cpp:45:0: +wakeup/wakeup_usb.h:35:16: error: 'PATH_MAX' was not declared in this scope + char usb_path[PATH_MAX]; + +Fixes: + - http://autobuild.buildroot.org/results/a0b3337cf4a827e6566f8b15b6bb180f0dcef7a3 + +Signed-off-by: Fabrice Fontaine +Signed-off-by: Martin Jansa + +Upstream-Status: Submitted [https://lists.01.org/pipermail/powertop/2019-May/002052.html] +--- + src/wakeup/wakeup_ethernet.h | 1 + + src/wakeup/wakeup_usb.h | 1 + + 2 files changed, 2 insertions(+) + +diff --git a/src/wakeup/wakeup_ethernet.h b/src/wakeup/wakeup_ethernet.h +index 682bf95..e0fa628 100644 +--- a/src/wakeup/wakeup_ethernet.h ++++ b/src/wakeup/wakeup_ethernet.h +@@ -25,6 +25,7 @@ + #ifndef _INCLUDE_GUARD_ETHERNET_WAKEUP_H + #define _INCLUDE_GUARD_ETHERNET_WAKEUP_H + ++#include + #include + + #include "wakeup.h" +diff --git a/src/wakeup/wakeup_usb.h b/src/wakeup/wakeup_usb.h +index f7a1f7e..15898e3 100644 +--- a/src/wakeup/wakeup_usb.h ++++ b/src/wakeup/wakeup_usb.h +@@ -25,6 +25,7 @@ + #ifndef _INCLUDE_GUARD_USB_WAKEUP_H + #define _INCLUDE_GUARD_USB_WAKEUP_H + ++#include + #include + + #include "wakeup.h" +-- +2.20.1 + diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-kernel/powertop/powertop_2.10.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-kernel/powertop/powertop_2.10.bb index d943ba9f..5be8d231 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-kernel/powertop/powertop_2.10.bb +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-kernel/powertop/powertop_2.10.bb @@ -7,6 +7,7 @@ LICENSE = "GPLv2" LIC_FILES_CHKSUM = "file://COPYING;md5=12f884d2ae1ff87c09e5b7ccc2c4ca7e" SRC_URI = "http://01.org/sites/default/files/downloads/powertop-v${PV}.tar.gz \ + file://0001-wakeup_xxx.h-include-limits.h.patch \ " SRC_URI[md5sum] = "a69bd55901cf919cc564187402ea2c9c" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-kernel/systemtap/systemtap/configure-allow-to-disable-libvirt.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-kernel/systemtap/systemtap/configure-allow-to-disable-libvirt.patch deleted file mode 100644 index b4f2fbc0..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-kernel/systemtap/systemtap/configure-allow-to-disable-libvirt.patch +++ /dev/null @@ -1,39 +0,0 @@ -From 5eb10d90af9178edb65e6091ae939d1b5b19bb78 Mon Sep 17 00:00:00 2001 -From: Wenzong Fan -Date: Tue, 23 Sep 2014 04:47:10 -0400 -Subject: [PATCH] systemtap: allow to disable libvirt - -Upstream-Status: Pending - -Signed-off-by: Wenzong Fan ---- - configure.ac | 13 +++++++++---- - 1 file changed, 9 insertions(+), 4 deletions(-) - -diff --git a/configure.ac b/configure.ac -index a631ae7..cb4885b 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -525,10 +525,15 @@ dnl Check for the libvirt and libxml2 devel packages - - dnl We require libvirt >= 1.0.2 because stapvirt relies on the - dnl virDomainOpenChannel function, which was implemented in 1.0.2. --PKG_CHECK_MODULES([libvirt], [libvirt >= 1.0.2], [ -- have_libvirt=yes -- AC_DEFINE([HAVE_LIBVIRT],[1],[Define to 1 if libvirt development libraries are installed]) -- ], [have_libvirt=no]) -+AC_ARG_ENABLE([libvirt], -+ AS_HELP_STRING([--disable-libvirt], [Do not use libvirt even if present])) -+ -+if test "$enable_libvirt" != no; then -+ PKG_CHECK_MODULES([libvirt], [libvirt >= 1.0.2], [ -+ have_libvirt=yes -+ AC_DEFINE([HAVE_LIBVIRT],[1],[Define to 1 if libvirt development libraries are installed]) -+ ], [have_libvirt=no]) -+fi - AM_CONDITIONAL([HAVE_LIBVIRT], [test "${have_libvirt}" = "yes"]) - PKG_CHECK_MODULES([libxml2], [libxml-2.0], [ - have_libxml2=yes --- -1.7.9.5 - diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-kernel/systemtap/systemtap/monitor-option.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-kernel/systemtap/systemtap/monitor-option.patch deleted file mode 100644 index 9313a5ab..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-kernel/systemtap/systemtap/monitor-option.patch +++ /dev/null @@ -1,37 +0,0 @@ -From 93fc4744fedf6fc593ee656968da97f7b1862ada Mon Sep 17 00:00:00 2001 -From: Ross Burton -Date: Tue, 4 Oct 2016 16:37:53 +0100 -Subject: [PATCH 4/6] systemtap: rationalise dependencies - -Add an option to explicitly disable the monitor (and therefore the dependency on -json-c and ncurses). - -Upstream-Status: Pending -Signed-off-by: Ross Burton - ---- - configure.ac | 5 ++++- - 1 file changed, 4 insertions(+), 1 deletion(-) - -Index: git/configure.ac -=================================================================== ---- git.orig/configure.ac -+++ git/configure.ac -@@ -766,13 +766,16 @@ dnl We want either (or both) python prob - AM_CONDITIONAL([HAVE_PYTHON_PROBES], - [test "x$have_python2_support" = "xyes" -o "x$have_python3_support" = "xyes"]) - -+AC_ARG_ENABLE([monitor], AS_HELP_STRING([--disable-monitor],[Disable monitor])) -+if test "$enable_monitor" != "no"; then - dnl Check for presence of json-c and ncurses for use in monitor mode - PKG_CHECK_MODULES([jsonc], [json-c >= 0.11], [have_jsonc=yes], [have_jsonc=no]) - PKG_CHECK_MODULES([ncurses], [ncurses], [have_ncurses=yes], [have_ncurses=no]) --AM_CONDITIONAL([HAVE_MONITOR_LIBS], [test "${have_jsonc}" == "yes" -a "${have_ncurses}" == "yes"]) - if test "${have_jsonc}" == "yes" -a "${have_ncurses}" == yes; then - AC_DEFINE([HAVE_MONITOR_LIBS],[1],[Define to 1 if json-c and ncurses libraries are installed]) - fi -+fi -+AM_CONDITIONAL([HAVE_MONITOR_LIBS], [test "${have_jsonc}" == "yes" -a "${have_ncurses}" == "yes" -a "$enable_monitor" != "no"]) - - AC_CACHE_CHECK([for assembler .section "?" flags support], stap_cv_sectionq, [ - old_CFLAGS="$CFLAGS" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-kernel/systemtap/systemtap/no-msgfmt-check.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-kernel/systemtap/systemtap/no-msgfmt-check.patch deleted file mode 100644 index 2c860b19..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-kernel/systemtap/systemtap/no-msgfmt-check.patch +++ /dev/null @@ -1,33 +0,0 @@ -From 43f1b04449bb1cf7e0092263f1c2a25f3fca08ef Mon Sep 17 00:00:00 2001 -From: Ross Burton -Date: Tue, 8 Nov 2016 23:07:41 +0000 -Subject: [PATCH 5/6] systemtap: remove explicit msgfmt check - -There is no need to explicitly check that msgfmt was found as the gettext macros -handle this for us if NLS is enabled. - -Upstream-Status: Pending -Signed-off-by: Ross Burton - ---- - configure.ac | 4 ---- - 1 file changed, 4 deletions(-) - -diff --git a/configure.ac b/configure.ac -index 2ea9b3cbf..95417f59c 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -36,10 +36,6 @@ AC_CHECK_FUNCS(openat) - AM_GNU_GETTEXT(external) - AM_GNU_GETTEXT_VERSION([0.19.4]) - --if test "x$GMSGFMT" = "x:"; then -- AC_MSG_ERROR([missing gnu /usr/bin/msgfmt]) --fi -- - # We want the 'PYTHON' varible to be python version 2. We also want - # our custom 'PYTHON3' varible to be python version 3. - # --- -2.11.0 - diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-kernel/systemtap/systemtap/x32_abi_time.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-kernel/systemtap/systemtap/x32_abi_time.patch deleted file mode 100644 index 28a7eae4..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-kernel/systemtap/systemtap/x32_abi_time.patch +++ /dev/null @@ -1,34 +0,0 @@ -Fix time_t print because in x32 ABI is long long int instead of long int. - -Upstream-Status: Pending - -Signed-off-by: Aníbal Limón - -diff --git a/cache.cxx b/cache.cxx -index 3546b30..19c77ca 100644 ---- a/cache.cxx -+++ b/cache.cxx -@@ -294,7 +294,11 @@ clean_cache(systemtap_session& s) - { - //interval not passed, don't continue - if (s.verbose > 1) -+#if defined(__x86_64__) && defined (__ILP32__) -+ clog << _F("Cache cleaning skipped, interval not reached %lld s / %lu s.", -+#else - clog << _F("Cache cleaning skipped, interval not reached %lu s / %lu s.", -+#endif - (current_time.tv_sec-sb.st_mtime), cache_clean_interval) << endl; - return; - } -@@ -302,7 +306,11 @@ clean_cache(systemtap_session& s) - { - //interval reached, continue - if (s.verbose > 1) -+#if defined(__x86_64__) && defined (__ILP32__) -+ clog << _F("Cleaning cache, interval reached %lld s > %lu s.", -+#else - clog << _F("Cleaning cache, interval reached %lu s > %lu s.", -+#endif - (current_time.tv_sec-sb.st_mtime), cache_clean_interval) << endl; - } - diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-kernel/systemtap/systemtap_git.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-kernel/systemtap/systemtap_git.bb index 6ee3e1c0..1c9f2aed 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-kernel/systemtap/systemtap_git.bb +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-kernel/systemtap/systemtap_git.bb @@ -51,10 +51,13 @@ do_install_append () { rm ${D}${libexecdir}/${PN}/stap-env fi - # Fix makefile hardcoded path assumptions for systemd (assumes $prefix) - install -d `dirname ${D}${systemd_unitdir}` - mv ${D}${prefix}/lib/systemd `dirname ${D}${systemd_unitdir}` - rmdir ${D}${prefix}/lib --ignore-fail-on-non-empty + if [ ${D}${prefix}/lib != `dirname ${D}${systemd_unitdir}` ]; then + # Fix makefile hardcoded path assumptions for systemd (assumes $prefix) + # without usrmerge distro feature enabled + install -d `dirname ${D}${systemd_unitdir}` + mv ${D}${prefix}/lib/systemd `dirname ${D}${systemd_unitdir}` + rmdir ${D}${prefix}/lib --ignore-fail-on-non-empty + fi # Ensure correct ownership for files copied in chown root:root ${D}${sysconfdir}/stap-exporter/* -R diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-kernel/systemtap/systemtap_git.inc b/Contrib-Inspur/openbmc/poky/meta/recipes-kernel/systemtap/systemtap_git.inc index c5348b32..abb2b374 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-kernel/systemtap/systemtap_git.inc +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-kernel/systemtap/systemtap_git.inc @@ -1,13 +1,9 @@ LICENSE = "GPLv2" LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263" -SRCREV = "984d6d1696ed06626b07cb65ab55d6ae0ece1131" -PV = "4.1" +SRCREV = "57c9aca9f1ff32a6add10e02ecd33b7314fad499" +PV = "4.1+git${SRCPV}" SRC_URI = "git://sourceware.org/git/systemtap.git \ - file://configure-allow-to-disable-libvirt.patch \ - file://x32_abi_time.patch \ - file://monitor-option.patch \ - file://no-msgfmt-check.patch \ file://0001-Do-not-let-configure-write-a-python-location-into-th.patch \ file://0001-Install-python-modules-to-correct-library-dir.patch \ file://0001-staprun-stapbpf-don-t-support-installing-a-non-root.patch \ diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-multimedia/alsa/alsa-tools_1.1.7.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-multimedia/alsa/alsa-tools_1.1.7.bb index e1b50fac..c1f4acdb 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-multimedia/alsa/alsa-tools_1.1.7.bb +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-multimedia/alsa/alsa-tools_1.1.7.bb @@ -22,7 +22,6 @@ CLEANBROKEN = "1" # Remember on upgrades to check that no new tools have been added. PACKAGECONFIG ??= "as10k1 hdajacksensetest hda-verb hdsploader ld10k1 mixartloader pcxhrloader \ sb16_csp seq--sbiload sscape_ctl us428control usx2yloader vxloader \ - ${@bb.utils.contains_any('DISTRO_FEATURES', '${GTK2DISTROFEATURES}', 'echomixer envy24control rmedigicontrol', '', d)} \ ${@bb.utils.contains_any('DISTRO_FEATURES', '${GTK3DISTROFEATURES}', 'hdajackretask', '', d)} \ " diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-multimedia/ffmpeg/ffmpeg_4.1.3.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-multimedia/ffmpeg/ffmpeg_4.1.3.bb deleted file mode 100644 index 147388d9..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-multimedia/ffmpeg/ffmpeg_4.1.3.bb +++ /dev/null @@ -1,158 +0,0 @@ -SUMMARY = "A complete, cross-platform solution to record, convert and stream audio and video." -DESCRIPTION = "FFmpeg is the leading multimedia framework, able to decode, encode, transcode, \ - mux, demux, stream, filter and play pretty much anything that humans and machines \ - have created. It supports the most obscure ancient formats up to the cutting edge." -HOMEPAGE = "https://www.ffmpeg.org/" -SECTION = "libs" - -LICENSE = "BSD & GPLv2+ & LGPLv2.1+ & MIT" -LICENSE_${PN} = "GPLv2+" -LICENSE_libavcodec = "${@bb.utils.contains('PACKAGECONFIG', 'gpl', 'GPLv2+', 'LGPLv2.1+', d)}" -LICENSE_libavdevice = "${@bb.utils.contains('PACKAGECONFIG', 'gpl', 'GPLv2+', 'LGPLv2.1+', d)}" -LICENSE_libavfilter = "${@bb.utils.contains('PACKAGECONFIG', 'gpl', 'GPLv2+', 'LGPLv2.1+', d)}" -LICENSE_libavformat = "${@bb.utils.contains('PACKAGECONFIG', 'gpl', 'GPLv2+', 'LGPLv2.1+', d)}" -LICENSE_libavresample = "${@bb.utils.contains('PACKAGECONFIG', 'gpl', 'GPLv2+', 'LGPLv2.1+', d)}" -LICENSE_libavutil = "${@bb.utils.contains('PACKAGECONFIG', 'gpl', 'GPLv2+', 'LGPLv2.1+', d)}" -LICENSE_libpostproc = "GPLv2+" -LICENSE_libswresample = "${@bb.utils.contains('PACKAGECONFIG', 'gpl', 'GPLv2+', 'LGPLv2.1+', d)}" -LICENSE_libswscale = "${@bb.utils.contains('PACKAGECONFIG', 'gpl', 'GPLv2+', 'LGPLv2.1+', d)}" -LICENSE_FLAGS = "commercial" - -LIC_FILES_CHKSUM = "file://COPYING.GPLv2;md5=b234ee4d69f5fce4486a80fdaf4a4263 \ - file://COPYING.GPLv3;md5=d32239bcb673463ab874e80d47fae504 \ - file://COPYING.LGPLv2.1;md5=bd7a443320af8c812e4c18d1b79df004 \ - file://COPYING.LGPLv3;md5=e6a600fd5e1d9cbde2d983680233ad02" - -SRC_URI = "https://www.ffmpeg.org/releases/${BP}.tar.xz \ - file://mips64_cpu_detection.patch \ - " -SRC_URI[md5sum] = "dcc20dd2682ea01c678b7b8324339d43" -SRC_URI[sha256sum] = "0c3020452880581a8face91595b239198078645e7d7184273b8bcc7758beb63d" - -# Build fails when thumb is enabled: https://bugzilla.yoctoproject.org/show_bug.cgi?id=7717 -ARM_INSTRUCTION_SET_armv4 = "arm" -ARM_INSTRUCTION_SET_armv5 = "arm" -ARM_INSTRUCTION_SET_armv6 = "arm" - -# Should be API compatible with libav (which was a fork of ffmpeg) -# libpostproc was previously packaged from a separate recipe -PROVIDES = "libav libpostproc" - -DEPENDS = "alsa-lib zlib libogg nasm-native" - -inherit autotools pkgconfig - -PACKAGECONFIG ??= "avdevice avfilter avcodec avformat swresample swscale postproc avresample \ - bzlib gpl lzma theora x264 \ - ${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'xv', '', d)}" - -# libraries to build in addition to avutil -PACKAGECONFIG[avdevice] = "--enable-avdevice,--disable-avdevice" -PACKAGECONFIG[avfilter] = "--enable-avfilter,--disable-avfilter" -PACKAGECONFIG[avcodec] = "--enable-avcodec,--disable-avcodec" -PACKAGECONFIG[avformat] = "--enable-avformat,--disable-avformat" -PACKAGECONFIG[swresample] = "--enable-swresample,--disable-swresample" -PACKAGECONFIG[swscale] = "--enable-swscale,--disable-swscale" -PACKAGECONFIG[postproc] = "--enable-postproc,--disable-postproc" -PACKAGECONFIG[avresample] = "--enable-avresample,--disable-avresample" - -# features to support -PACKAGECONFIG[bzlib] = "--enable-bzlib,--disable-bzlib,bzip2" -PACKAGECONFIG[gpl] = "--enable-gpl,--disable-gpl" -PACKAGECONFIG[gsm] = "--enable-libgsm,--disable-libgsm,libgsm" -PACKAGECONFIG[jack] = "--enable-indev=jack,--disable-indev=jack,jack" -PACKAGECONFIG[libvorbis] = "--enable-libvorbis,--disable-libvorbis,libvorbis" -PACKAGECONFIG[lzma] = "--enable-lzma,--disable-lzma,xz" -PACKAGECONFIG[mfx] = "--enable-libmfx,--disable-libmfx,intel-mediasdk" -PACKAGECONFIG[mp3lame] = "--enable-libmp3lame,--disable-libmp3lame,lame" -PACKAGECONFIG[openssl] = "--enable-openssl,--disable-openssl,openssl" -PACKAGECONFIG[sdl2] = "--enable-sdl2,--disable-sdl2,virtual/libsdl2" -PACKAGECONFIG[speex] = "--enable-libspeex,--disable-libspeex,speex" -PACKAGECONFIG[theora] = "--enable-libtheora,--disable-libtheora,libtheora" -PACKAGECONFIG[vaapi] = "--enable-vaapi,--disable-vaapi,libva" -PACKAGECONFIG[vdpau] = "--enable-vdpau,--disable-vdpau,libvdpau" -PACKAGECONFIG[vpx] = "--enable-libvpx,--disable-libvpx,libvpx" -PACKAGECONFIG[x264] = "--enable-libx264,--disable-libx264,x264" -PACKAGECONFIG[xv] = "--enable-outdev=xv,--disable-outdev=xv,libxv" - -# Check codecs that require --enable-nonfree -USE_NONFREE = "${@bb.utils.contains_any('PACKAGECONFIG', [ 'openssl' ], 'yes', '', d)}" - -def cpu(d): - for arg in (d.getVar('TUNE_CCARGS') or '').split(): - if arg.startswith('-mcpu='): - return arg[6:] - return 'generic' - -EXTRA_OECONF = " \ - --disable-stripping \ - --enable-pic \ - --enable-shared \ - --enable-pthreads \ - --disable-libxcb \ - --disable-libxcb-shm \ - --disable-libxcb-xfixes \ - --disable-libxcb-shape \ - ${@bb.utils.contains('USE_NONFREE', 'yes', '--enable-nonfree', '', d)} \ - \ - --cross-prefix=${TARGET_PREFIX} \ - \ - --ld="${CCLD}" \ - --cc="${CC}" \ - --cxx="${CXX}" \ - --arch=${TARGET_ARCH} \ - --target-os="linux" \ - --enable-cross-compile \ - --extra-cflags="${TARGET_CFLAGS} ${HOST_CC_ARCH}${TOOLCHAIN_OPTIONS}" \ - --extra-ldflags="${TARGET_LDFLAGS}" \ - --sysroot="${STAGING_DIR_TARGET}" \ - --enable-hardcoded-tables \ - ${EXTRA_FFCONF} \ - --libdir=${libdir} \ - --shlibdir=${libdir} \ - --datadir=${datadir}/ffmpeg \ - ${@bb.utils.contains('AVAILTUNES', 'mips32r2', '', '--disable-mipsdsp --disable-mipsdspr2', d)} \ - --cpu=${@cpu(d)} \ - --pkg-config=pkg-config \ -" - -EXTRA_OECONF_append_linux-gnux32 = " --disable-asm" -# gold crashes on x86, another solution is to --disable-asm but thats more hacky -# ld.gold: internal error in relocate_section, at ../../gold/i386.cc:3684 - -LDFLAGS_append_x86 = "${@bb.utils.contains('DISTRO_FEATURES', 'ld-is-gold', ' -fuse-ld=bfd ', '', d)}" - -do_configure() { - ${S}/configure ${EXTRA_OECONF} -} - -PACKAGES =+ "libavcodec \ - libavdevice \ - libavfilter \ - libavformat \ - libavresample \ - libavutil \ - libpostproc \ - libswresample \ - libswscale" - -FILES_libavcodec = "${libdir}/libavcodec${SOLIBS}" -FILES_libavdevice = "${libdir}/libavdevice${SOLIBS}" -FILES_libavfilter = "${libdir}/libavfilter${SOLIBS}" -FILES_libavformat = "${libdir}/libavformat${SOLIBS}" -FILES_libavresample = "${libdir}/libavresample${SOLIBS}" -FILES_libavutil = "${libdir}/libavutil${SOLIBS}" -FILES_libpostproc = "${libdir}/libpostproc${SOLIBS}" -FILES_libswresample = "${libdir}/libswresample${SOLIBS}" -FILES_libswscale = "${libdir}/libswscale${SOLIBS}" - -# ffmpeg disables PIC on some platforms (e.g. x86-32) -INSANE_SKIP_${MLPREFIX}libavcodec = "textrel" -INSANE_SKIP_${MLPREFIX}libavdevice = "textrel" -INSANE_SKIP_${MLPREFIX}libavfilter = "textrel" -INSANE_SKIP_${MLPREFIX}libavformat = "textrel" -INSANE_SKIP_${MLPREFIX}libavutil = "textrel" -INSANE_SKIP_${MLPREFIX}libavresample = "textrel" -INSANE_SKIP_${MLPREFIX}libswscale = "textrel" -INSANE_SKIP_${MLPREFIX}libswresample = "textrel" -INSANE_SKIP_${MLPREFIX}libpostproc = "textrel" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-multimedia/ffmpeg/ffmpeg_4.2.1.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-multimedia/ffmpeg/ffmpeg_4.2.1.bb new file mode 100644 index 00000000..5ac18ba3 --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-multimedia/ffmpeg/ffmpeg_4.2.1.bb @@ -0,0 +1,158 @@ +SUMMARY = "A complete, cross-platform solution to record, convert and stream audio and video." +DESCRIPTION = "FFmpeg is the leading multimedia framework, able to decode, encode, transcode, \ + mux, demux, stream, filter and play pretty much anything that humans and machines \ + have created. It supports the most obscure ancient formats up to the cutting edge." +HOMEPAGE = "https://www.ffmpeg.org/" +SECTION = "libs" + +LICENSE = "BSD & GPLv2+ & LGPLv2.1+ & MIT" +LICENSE_${PN} = "GPLv2+" +LICENSE_libavcodec = "${@bb.utils.contains('PACKAGECONFIG', 'gpl', 'GPLv2+', 'LGPLv2.1+', d)}" +LICENSE_libavdevice = "${@bb.utils.contains('PACKAGECONFIG', 'gpl', 'GPLv2+', 'LGPLv2.1+', d)}" +LICENSE_libavfilter = "${@bb.utils.contains('PACKAGECONFIG', 'gpl', 'GPLv2+', 'LGPLv2.1+', d)}" +LICENSE_libavformat = "${@bb.utils.contains('PACKAGECONFIG', 'gpl', 'GPLv2+', 'LGPLv2.1+', d)}" +LICENSE_libavresample = "${@bb.utils.contains('PACKAGECONFIG', 'gpl', 'GPLv2+', 'LGPLv2.1+', d)}" +LICENSE_libavutil = "${@bb.utils.contains('PACKAGECONFIG', 'gpl', 'GPLv2+', 'LGPLv2.1+', d)}" +LICENSE_libpostproc = "GPLv2+" +LICENSE_libswresample = "${@bb.utils.contains('PACKAGECONFIG', 'gpl', 'GPLv2+', 'LGPLv2.1+', d)}" +LICENSE_libswscale = "${@bb.utils.contains('PACKAGECONFIG', 'gpl', 'GPLv2+', 'LGPLv2.1+', d)}" +LICENSE_FLAGS = "commercial" + +LIC_FILES_CHKSUM = "file://COPYING.GPLv2;md5=b234ee4d69f5fce4486a80fdaf4a4263 \ + file://COPYING.GPLv3;md5=d32239bcb673463ab874e80d47fae504 \ + file://COPYING.LGPLv2.1;md5=bd7a443320af8c812e4c18d1b79df004 \ + file://COPYING.LGPLv3;md5=e6a600fd5e1d9cbde2d983680233ad02" + +SRC_URI = "https://www.ffmpeg.org/releases/${BP}.tar.xz \ + file://mips64_cpu_detection.patch \ + " +SRC_URI[md5sum] = "67da904cf9fddeeb10a1308fc0dc39de" +SRC_URI[sha256sum] = "cec7c87e9b60d174509e263ac4011b522385fd0775292e1670ecc1180c9bb6d4" + +# Build fails when thumb is enabled: https://bugzilla.yoctoproject.org/show_bug.cgi?id=7717 +ARM_INSTRUCTION_SET_armv4 = "arm" +ARM_INSTRUCTION_SET_armv5 = "arm" +ARM_INSTRUCTION_SET_armv6 = "arm" + +# Should be API compatible with libav (which was a fork of ffmpeg) +# libpostproc was previously packaged from a separate recipe +PROVIDES = "libav libpostproc" + +DEPENDS = "nasm-native" + +inherit autotools pkgconfig + +PACKAGECONFIG ??= "avdevice avfilter avcodec avformat swresample swscale postproc avresample \ + alsa bzlib gpl lzma theora x264 zlib \ + ${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'xv xcb', '', d)}" + +# libraries to build in addition to avutil +PACKAGECONFIG[avdevice] = "--enable-avdevice,--disable-avdevice" +PACKAGECONFIG[avfilter] = "--enable-avfilter,--disable-avfilter" +PACKAGECONFIG[avcodec] = "--enable-avcodec,--disable-avcodec" +PACKAGECONFIG[avformat] = "--enable-avformat,--disable-avformat" +PACKAGECONFIG[swresample] = "--enable-swresample,--disable-swresample" +PACKAGECONFIG[swscale] = "--enable-swscale,--disable-swscale" +PACKAGECONFIG[postproc] = "--enable-postproc,--disable-postproc" +PACKAGECONFIG[avresample] = "--enable-avresample,--disable-avresample" + +# features to support +PACKAGECONFIG[alsa] = "--enable-alsa,--disable-alsa,alsa-lib" +PACKAGECONFIG[bzlib] = "--enable-bzlib,--disable-bzlib,bzip2" +PACKAGECONFIG[gpl] = "--enable-gpl,--disable-gpl" +PACKAGECONFIG[gsm] = "--enable-libgsm,--disable-libgsm,libgsm" +PACKAGECONFIG[jack] = "--enable-indev=jack,--disable-indev=jack,jack" +PACKAGECONFIG[libvorbis] = "--enable-libvorbis,--disable-libvorbis,libvorbis" +PACKAGECONFIG[lzma] = "--enable-lzma,--disable-lzma,xz" +PACKAGECONFIG[mfx] = "--enable-libmfx,--disable-libmfx,intel-mediasdk" +PACKAGECONFIG[mp3lame] = "--enable-libmp3lame,--disable-libmp3lame,lame" +PACKAGECONFIG[openssl] = "--enable-openssl,--disable-openssl,openssl" +PACKAGECONFIG[sdl2] = "--enable-sdl2,--disable-sdl2,virtual/libsdl2" +PACKAGECONFIG[speex] = "--enable-libspeex,--disable-libspeex,speex" +PACKAGECONFIG[theora] = "--enable-libtheora,--disable-libtheora,libtheora libogg" +PACKAGECONFIG[vaapi] = "--enable-vaapi,--disable-vaapi,libva" +PACKAGECONFIG[vdpau] = "--enable-vdpau,--disable-vdpau,libvdpau" +PACKAGECONFIG[vpx] = "--enable-libvpx,--disable-libvpx,libvpx" +PACKAGECONFIG[x264] = "--enable-libx264,--disable-libx264,x264" +PACKAGECONFIG[xcb] = "--enable-libxcb,--disable-libxcb,libxcb" +PACKAGECONFIG[xv] = "--enable-outdev=xv,--disable-outdev=xv,libxv" +PACKAGECONFIG[zlib] = "--enable-zlib,--disable-zlib,zlib" + +# Check codecs that require --enable-nonfree +USE_NONFREE = "${@bb.utils.contains_any('PACKAGECONFIG', [ 'openssl' ], 'yes', '', d)}" + +def cpu(d): + for arg in (d.getVar('TUNE_CCARGS') or '').split(): + if arg.startswith('-mcpu='): + return arg[6:] + return 'generic' + +EXTRA_OECONF = " \ + --disable-stripping \ + --enable-pic \ + --enable-shared \ + --enable-pthreads \ + ${@bb.utils.contains('USE_NONFREE', 'yes', '--enable-nonfree', '', d)} \ + \ + --cross-prefix=${TARGET_PREFIX} \ + \ + --ld="${CCLD}" \ + --cc="${CC}" \ + --cxx="${CXX}" \ + --arch=${TARGET_ARCH} \ + --target-os="linux" \ + --enable-cross-compile \ + --extra-cflags="${CFLAGS} ${HOST_CC_ARCH}${TOOLCHAIN_OPTIONS}" \ + --extra-ldflags="${LDFLAGS}" \ + --sysroot="${STAGING_DIR_TARGET}" \ + ${EXTRA_FFCONF} \ + --libdir=${libdir} \ + --shlibdir=${libdir} \ + --datadir=${datadir}/ffmpeg \ + ${@bb.utils.contains('AVAILTUNES', 'mips32r2', '', '--disable-mipsdsp --disable-mipsdspr2', d)} \ + --cpu=${@cpu(d)} \ + --pkg-config=pkg-config \ +" + +EXTRA_OECONF_append_linux-gnux32 = " --disable-asm" +# gold crashes on x86, another solution is to --disable-asm but thats more hacky +# ld.gold: internal error in relocate_section, at ../../gold/i386.cc:3684 + +LDFLAGS_append_x86 = "${@bb.utils.contains('DISTRO_FEATURES', 'ld-is-gold', ' -fuse-ld=bfd ', '', d)}" + +EXTRA_OEMAKE = "V=1" + +do_configure() { + ${S}/configure ${EXTRA_OECONF} +} + +PACKAGES =+ "libavcodec \ + libavdevice \ + libavfilter \ + libavformat \ + libavresample \ + libavutil \ + libpostproc \ + libswresample \ + libswscale" + +FILES_libavcodec = "${libdir}/libavcodec${SOLIBS}" +FILES_libavdevice = "${libdir}/libavdevice${SOLIBS}" +FILES_libavfilter = "${libdir}/libavfilter${SOLIBS}" +FILES_libavformat = "${libdir}/libavformat${SOLIBS}" +FILES_libavresample = "${libdir}/libavresample${SOLIBS}" +FILES_libavutil = "${libdir}/libavutil${SOLIBS}" +FILES_libpostproc = "${libdir}/libpostproc${SOLIBS}" +FILES_libswresample = "${libdir}/libswresample${SOLIBS}" +FILES_libswscale = "${libdir}/libswscale${SOLIBS}" + +# ffmpeg disables PIC on some platforms (e.g. x86-32) +INSANE_SKIP_${MLPREFIX}libavcodec = "textrel" +INSANE_SKIP_${MLPREFIX}libavdevice = "textrel" +INSANE_SKIP_${MLPREFIX}libavfilter = "textrel" +INSANE_SKIP_${MLPREFIX}libavformat = "textrel" +INSANE_SKIP_${MLPREFIX}libavutil = "textrel" +INSANE_SKIP_${MLPREFIX}libavresample = "textrel" +INSANE_SKIP_${MLPREFIX}libswscale = "textrel" +INSANE_SKIP_${MLPREFIX}libswresample = "textrel" +INSANE_SKIP_${MLPREFIX}libpostproc = "textrel" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-multimedia/flac/flac/CVE-2017-6888.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-multimedia/flac/flac/CVE-2017-6888.patch deleted file mode 100644 index f0179168..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-multimedia/flac/flac/CVE-2017-6888.patch +++ /dev/null @@ -1,37 +0,0 @@ -From 43ecb6431077ff54e9df27f71737e6e96d6c039f Mon Sep 17 00:00:00 2001 -From: Changqing Li -Date: Tue, 21 Aug 2018 14:46:43 +0800 -Subject: [PATCH] From 5f47b63e9c971e6391590caf00a0f2a5ed612e67 Mon Sep 17 - 00:00:00 2001 From: Erik de Castro Lopo Date: Sat, 8 - Apr 2017 18:34:49 +1000 Subject: [PATCH] stream_decoder.c: Fix a memory leak - -Leak reported by Secunia Research. - -Upstream-Status: Backport[https://git.xiph.org/?p=flac.git;a=commit; - h=4f47b63e9c971e6391590caf00a0f2a5ed612e67] - -Update patch to version 1.3.2 -CVE: CVE-2017-6888 - -Signed-off-by: Changqing Li ---- - src/libFLAC/stream_decoder.c | 3 +++ - 1 file changed, 3 insertions(+) - -diff --git a/src/libFLAC/stream_decoder.c b/src/libFLAC/stream_decoder.c -index d364b0c..ebf93da 100644 ---- a/src/libFLAC/stream_decoder.c -+++ b/src/libFLAC/stream_decoder.c -@@ -1759,6 +1759,9 @@ FLAC__bool read_metadata_vorbiscomment_(FLAC__StreamDecoder *decoder, FLAC__Stre - } - memset (obj->comments[i].entry, 0, obj->comments[i].length) ; - if (!FLAC__bitreader_read_byte_block_aligned_no_crc(decoder->private_->input, obj->comments[i].entry, obj->comments[i].length)) { -+ /* Current i-th entry is bad, so we delete it. */\ -+ free (obj->comments[i].entry) ; -+ obj->comments[i].entry = NULL ; - obj->num_comments = i; - goto skip; - } --- -2.7.4 - diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-multimedia/flac/flac_1.3.2.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-multimedia/flac/flac_1.3.2.bb deleted file mode 100644 index e8599f6b..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-multimedia/flac/flac_1.3.2.bb +++ /dev/null @@ -1,46 +0,0 @@ -SUMMARY = "Free Lossless Audio Codec" -DESCRIPTION = "FLAC stands for Free Lossless Audio Codec, a lossless audio compression format." -HOMEPAGE = "https://xiph.org/flac/" -BUGTRACKER = "http://sourceforge.net/p/flac/bugs/" -SECTION = "libs" -LICENSE = "GFDL-1.2 & GPLv2+ & LGPLv2.1+ & BSD" -LIC_FILES_CHKSUM = "file://COPYING.FDL;md5=ad1419ecc56e060eccf8184a87c4285f \ - file://src/Makefile.am;beginline=1;endline=17;md5=09501c864f89dfc7ead65553129817ca \ - file://COPYING.GPL;md5=b234ee4d69f5fce4486a80fdaf4a4263 \ - file://src/flac/main.c;beginline=1;endline=18;md5=09777e2934947a36f13568d0beb81199 \ - file://COPYING.LGPL;md5=fbc093901857fcd118f065f900982c24 \ - file://src/plugin_common/all.h;beginline=1;endline=18;md5=f56cb4ba9a3bc9ec6102e8df03215271 \ - file://COPYING.Xiph;md5=b59c1b6d7fc0fb7965f821a3d36505e3 \ - file://include/FLAC/all.h;beginline=65;endline=70;md5=64474f2b22e9e77b28d8b8b25c983a48" -DEPENDS = "libogg" - -SRC_URI = "http://downloads.xiph.org/releases/flac/${BP}.tar.xz \ - file://CVE-2017-6888.patch " - - -SRC_URI[md5sum] = "454f1bfa3f93cc708098d7890d0499bd" -SRC_URI[sha256sum] = "91cfc3ed61dc40f47f050a109b08610667d73477af6ef36dcad31c31a4a8d53f" - -CVE_PRODUCT = "libflac flac" - -inherit autotools gettext - -EXTRA_OECONF = "--disable-oggtest \ - --with-ogg-libraries=${STAGING_LIBDIR} \ - --with-ogg-includes=${STAGING_INCDIR} \ - --disable-xmms-plugin \ - --without-libiconv-prefix \ - ac_cv_prog_NASM="" \ - " - -EXTRA_OECONF += "${@bb.utils.contains("TUNE_FEATURES", "altivec", " --enable-altivec", " --disable-altivec", d)}" -EXTRA_OECONF += "${@bb.utils.contains("TUNE_FEATURES", "core2", " --enable-sse", "", d)}" -EXTRA_OECONF += "${@bb.utils.contains("TUNE_FEATURES", "corei7", " --enable-sse", "", d)}" - -PACKAGES += "libflac libflac++ liboggflac liboggflac++" -FILES_${PN} = "${bindir}/*" -FILES_libflac = "${libdir}/libFLAC.so.*" -FILES_libflac++ = "${libdir}/libFLAC++.so.*" -FILES_liboggflac = "${libdir}/libOggFLAC.so.*" -FILES_liboggflac++ = "${libdir}/libOggFLAC++.so.*" - diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-multimedia/flac/flac_1.3.3.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-multimedia/flac/flac_1.3.3.bb new file mode 100644 index 00000000..fea2be1f --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-multimedia/flac/flac_1.3.3.bb @@ -0,0 +1,45 @@ +SUMMARY = "Free Lossless Audio Codec" +DESCRIPTION = "FLAC stands for Free Lossless Audio Codec, a lossless audio compression format." +HOMEPAGE = "https://xiph.org/flac/" +BUGTRACKER = "http://sourceforge.net/p/flac/bugs/" +SECTION = "libs" +LICENSE = "GFDL-1.2 & GPLv2+ & LGPLv2.1+ & BSD" +LIC_FILES_CHKSUM = "file://COPYING.FDL;md5=ad1419ecc56e060eccf8184a87c4285f \ + file://src/Makefile.am;beginline=1;endline=17;md5=09501c864f89dfc7ead65553129817ca \ + file://COPYING.GPL;md5=b234ee4d69f5fce4486a80fdaf4a4263 \ + file://src/flac/main.c;beginline=1;endline=18;md5=09777e2934947a36f13568d0beb81199 \ + file://COPYING.LGPL;md5=fbc093901857fcd118f065f900982c24 \ + file://src/plugin_common/all.h;beginline=1;endline=18;md5=f56cb4ba9a3bc9ec6102e8df03215271 \ + file://COPYING.Xiph;md5=b59c1b6d7fc0fb7965f821a3d36505e3 \ + file://include/FLAC/all.h;beginline=65;endline=70;md5=64474f2b22e9e77b28d8b8b25c983a48" +DEPENDS = "libogg" + +SRC_URI = "http://downloads.xiph.org/releases/flac/${BP}.tar.xz \ +" + +SRC_URI[md5sum] = "26703ed2858c1fc9ffc05136d13daa69" +SRC_URI[sha256sum] = "213e82bd716c9de6db2f98bcadbc4c24c7e2efe8c75939a1a84e28539c4e1748" + +CVE_PRODUCT = "libflac flac" + +inherit autotools gettext + +EXTRA_OECONF = "--disable-oggtest \ + --with-ogg-libraries=${STAGING_LIBDIR} \ + --with-ogg-includes=${STAGING_INCDIR} \ + --disable-xmms-plugin \ + --without-libiconv-prefix \ + ac_cv_prog_NASM="" \ + " + +EXTRA_OECONF += "${@bb.utils.contains("TUNE_FEATURES", "altivec", " --enable-altivec", " --disable-altivec", d)}" +EXTRA_OECONF += "${@bb.utils.contains("TUNE_FEATURES", "core2", " --enable-sse", "", d)}" +EXTRA_OECONF += "${@bb.utils.contains("TUNE_FEATURES", "corei7", " --enable-sse", "", d)}" + +PACKAGES += "libflac libflac++ liboggflac liboggflac++" +FILES_${PN} = "${bindir}/*" +FILES_libflac = "${libdir}/libFLAC.so.*" +FILES_libflac++ = "${libdir}/libFLAC++.so.*" +FILES_liboggflac = "${libdir}/libOggFLAC.so.*" +FILES_liboggflac++ = "${libdir}/libOggFLAC++.so.*" + diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-multimedia/gstreamer/gst-examples_1.16.0.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-multimedia/gstreamer/gst-examples_1.16.0.bb new file mode 100644 index 00000000..cc7a7e78 --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-multimedia/gstreamer/gst-examples_1.16.0.bb @@ -0,0 +1,31 @@ +SUMMARY = "GStreamer examples (including gtk-play, gst-play)" +LICENSE = "LGPL-2.0+" +LIC_FILES_CHKSUM = "file://playback/player/gtk/gtk-play.c;beginline=1;endline=20;md5=f8c72dae3d36823ec716a9ebcae593b9" + +DEPENDS = "glib-2.0 gstreamer1.0 gstreamer1.0-plugins-base gstreamer1.0-plugins-bad gtk+3 glib-2.0-native" + +SRC_URI = "git://gitlab.freedesktop.org/gstreamer/gst-examples.git;protocol=https \ + file://0001-Make-player-examples-installable.patch \ + file://gst-player.desktop \ + " + +SRCREV = "d953c127c1146b50d5676618299933950685dcd7" + +S = "${WORKDIR}/git" + +inherit meson pkgconfig features_check + + +ANY_OF_DISTRO_FEATURES = "${GTK3DISTROFEATURES}" + +do_install_append() { + install -m 0644 -D ${WORKDIR}/gst-player.desktop ${D}${datadir}/applications/gst-player.desktop +} + +RDEPENDS_${PN} = "gstreamer1.0-plugins-base-playback" +RRECOMMENDS_${PN} = "gstreamer1.0-plugins-base-meta \ + gstreamer1.0-plugins-good-meta \ + gstreamer1.0-plugins-bad-meta \ + ${@bb.utils.contains("LICENSE_FLAGS_WHITELIST", "commercial", "gstreamer1.0-libav", "", d)} \ + ${@bb.utils.contains("LICENSE_FLAGS_WHITELIST", "commercial", "gstreamer1.0-plugins-ugly-meta", "", d)}" +RPROVIDES_${PN} += "gst-player gst-player-bin" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-multimedia/gstreamer/gst-examples_git.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-multimedia/gstreamer/gst-examples_git.bb deleted file mode 100644 index f2a3afbb..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-multimedia/gstreamer/gst-examples_git.bb +++ /dev/null @@ -1,32 +0,0 @@ -SUMMARY = "GStreamer examples (including gtk-play, gst-play)" -LICENSE = "LGPL-2.0+" -LIC_FILES_CHKSUM = "file://playback/player/gtk/gtk-play.c;beginline=1;endline=20;md5=f8c72dae3d36823ec716a9ebcae593b9" - -DEPENDS = "glib-2.0 gstreamer1.0 gstreamer1.0-plugins-base gstreamer1.0-plugins-bad gtk+3 glib-2.0-native" - -SRC_URI = "git://gitlab.freedesktop.org/gstreamer/gst-examples.git;protocol=https \ - file://0001-Make-player-examples-installable.patch \ - file://gst-player.desktop \ - " - -SRCREV = "d953c127c1146b50d5676618299933950685dcd7" -PV = "1.16.0" - -S = "${WORKDIR}/git" - -inherit meson pkgconfig distro_features_check - - -ANY_OF_DISTRO_FEATURES = "${GTK3DISTROFEATURES}" - -do_install_append() { - install -m 0644 -D ${WORKDIR}/gst-player.desktop ${D}${datadir}/applications/gst-player.desktop -} - -RDEPENDS_${PN} = "gstreamer1.0-plugins-base-playback" -RRECOMMENDS_${PN} = "gstreamer1.0-plugins-base-meta \ - gstreamer1.0-plugins-good-meta \ - gstreamer1.0-plugins-bad-meta \ - ${@bb.utils.contains("LICENSE_FLAGS_WHITELIST", "commercial", "gstreamer1.0-libav", "", d)} \ - ${@bb.utils.contains("LICENSE_FLAGS_WHITELIST", "commercial", "gstreamer1.0-plugins-ugly-meta", "", d)}" -RPROVIDES_${PN} += "gst-player gst-player-bin" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-multimedia/gstreamer/gst-validate_1.16.0.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-multimedia/gstreamer/gst-validate_1.16.0.bb deleted file mode 100644 index 1f437061..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-multimedia/gstreamer/gst-validate_1.16.0.bb +++ /dev/null @@ -1,25 +0,0 @@ -SUMMARY = "Gstreamer validation tool" -DESCRIPTION = "A Tool to test GStreamer components" -HOMEPAGE = "https://gstreamer.freedesktop.org/releases/gst-validate/1.12.3.html" -SECTION = "multimedia" - -LICENSE = "LGPLv2.1" -LIC_FILES_CHKSUM = "file://COPYING;md5=a6f89e2100d9b6cdffcea4f398e37343" - -SRC_URI = "https://gstreamer.freedesktop.org/src/${BPN}/${BP}.tar.xz \ - file://0001-connect-has-a-different-signature-on-musl.patch \ - " -SRC_URI[md5sum] = "c5c57f3325a2e62aae4a8ec4931f7711" -SRC_URI[sha256sum] = "9331ae48a173a048243539730cc7a88607777762dea4aebbc3ab55981e68d6c9" - -DEPENDS = "json-glib glib-2.0 glib-2.0-native gstreamer1.0 gstreamer1.0-plugins-base" -RRECOMMENDS_${PN} = "git" - -FILES_${PN} += "${datadir}/gstreamer-1.0/* ${libdir}/gst-validate-launcher/* ${libdir}/gstreamer-1.0/*" - -inherit pkgconfig gettext autotools gobject-introspection gtk-doc upstream-version-is-even - -# With gtk-doc enabled this recipe fails to build, so forcibly disable it: -# WORKDIR/build/docs/validate/gst-validate-scan: line 117: -# WORKDIR/build/docs/validate/.libs/lt-gst-validate-scan: No such file or directory -GTKDOC_ENABLED = "False" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-multimedia/gstreamer/gst-validate_1.16.1.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-multimedia/gstreamer/gst-validate_1.16.1.bb new file mode 100644 index 00000000..7d602eab --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-multimedia/gstreamer/gst-validate_1.16.1.bb @@ -0,0 +1,25 @@ +SUMMARY = "Gstreamer validation tool" +DESCRIPTION = "A Tool to test GStreamer components" +HOMEPAGE = "https://gstreamer.freedesktop.org/releases/gst-validate/1.12.3.html" +SECTION = "multimedia" + +LICENSE = "LGPLv2.1" +LIC_FILES_CHKSUM = "file://COPYING;md5=a6f89e2100d9b6cdffcea4f398e37343" + +SRC_URI = "https://gstreamer.freedesktop.org/src/${BPN}/${BP}.tar.xz \ + file://0001-connect-has-a-different-signature-on-musl.patch \ + " +SRC_URI[md5sum] = "793e75f4717f718ad204c554d577b160" +SRC_URI[sha256sum] = "7f079b9b2a127604b98e297037dc8847ef50f4ce2b508aa2df0cac5b77562899" + +DEPENDS = "json-glib glib-2.0 glib-2.0-native gstreamer1.0 gstreamer1.0-plugins-base" +RRECOMMENDS_${PN} = "git" + +FILES_${PN} += "${datadir}/gstreamer-1.0/* ${libdir}/gst-validate-launcher/* ${libdir}/gstreamer-1.0/*" + +inherit pkgconfig gettext autotools gobject-introspection gtk-doc upstream-version-is-even + +# With gtk-doc enabled this recipe fails to build, so forcibly disable it: +# WORKDIR/build/docs/validate/gst-validate-scan: line 117: +# WORKDIR/build/docs/validate/.libs/lt-gst-validate-scan: No such file or directory +GTKDOC_ENABLED = "False" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-libav_1.16.0.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-libav_1.16.0.bb deleted file mode 100644 index d94c3215..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-libav_1.16.0.bb +++ /dev/null @@ -1,75 +0,0 @@ -SUMMARY = "Libav-based GStreamer 1.x plugin" -HOMEPAGE = "http://gstreamer.freedesktop.org/" -SECTION = "multimedia" - -LICENSE = "GPLv2+ & LGPLv2+ & ( (GPLv2+ & LGPLv2.1+) | (GPLv3+ & LGPLv3+) )" -LICENSE_FLAGS = "commercial" -LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \ - file://COPYING.LIB;md5=6762ed442b3822387a51c92d928ead0d \ - file://ext/libav/gstav.h;beginline=1;endline=18;md5=a752c35267d8276fd9ca3db6994fca9c \ - file://gst-libs/ext/libav/COPYING.GPLv2;md5=b234ee4d69f5fce4486a80fdaf4a4263 \ - file://gst-libs/ext/libav/COPYING.GPLv3;md5=d32239bcb673463ab874e80d47fae504 \ - file://gst-libs/ext/libav/COPYING.LGPLv2.1;md5=bd7a443320af8c812e4c18d1b79df004 \ - file://gst-libs/ext/libav/COPYING.LGPLv3;md5=e6a600fd5e1d9cbde2d983680233ad02" - -SRC_URI = "http://gstreamer.freedesktop.org/src/gst-libav/gst-libav-${PV}.tar.xz \ - file://0001-Disable-yasm-for-libav-when-disable-yasm.patch \ - file://workaround-to-build-gst-libav-for-i586-with-gcc.patch \ - file://mips64_cpu_detection.patch \ - file://0001-configure-check-for-armv7ve-variant.patch \ - file://0001-fix-host-contamination.patch \ - " -SRC_URI[md5sum] = "e3a201a45985ddc1327cd496046ca818" -SRC_URI[sha256sum] = "dfac119043a9cfdcacd7acde77f674ab172cf2537b5812be52f49e9cddc53d9a" - -S = "${WORKDIR}/gst-libav-${PV}" - -DEPENDS = "gstreamer1.0 gstreamer1.0-plugins-base zlib bzip2 xz" - -inherit autotools pkgconfig upstream-version-is-even gtk-doc - -# Disable documentation for now as it is failing with gtk-doc 1.30: -# gst-libav-plugins-docs.sgml:38: element include: XInclude error: -# could not load xml/tree_index.sgml, and no fallback was found -GTKDOC_ENABLED = "False" - -# CAUTION: Using the system libav is not recommended. Since the libav API is changing all the time, -# compilation errors (and other, more subtle bugs) can happen. It is usually better to rely on the -# libav copy included in the gst-libav package. -PACKAGECONFIG ??= "orc yasm" - -PACKAGECONFIG[gpl] = "--enable-gpl,--disable-gpl," -PACKAGECONFIG[libav] = "--with-system-libav,,libav" -PACKAGECONFIG[orc] = "--enable-orc,--disable-orc,orc" -PACKAGECONFIG[yasm] = "--enable-yasm,--disable-yasm,nasm-native" -PACKAGECONFIG[valgrind] = "--enable-valgrind,--disable-valgrind,valgrind" - -GSTREAMER_1_0_DEBUG ?= "--disable-debug" - -LIBAV_EXTRA_CONFIGURE = "--with-libav-extra-configure" - -LIBAV_EXTRA_CONFIGURE_COMMON_ARG = "--target-os=linux \ - --cc='${CC}' --as='${CC}' --ld='${CC}' --nm='${NM}' --ar='${AR}' \ - --ranlib='${RANLIB}' \ - ${GSTREAMER_1_0_DEBUG} \ - --cross-prefix='${HOST_PREFIX}'" - -# Disable assembly optimizations for X32, as this libav lacks the support -PACKAGECONFIG_remove_linux-gnux32 = "yasm" -LIBAV_EXTRA_CONFIGURE_COMMON_ARG_append_linux-gnux32 = " --disable-asm" - -LIBAV_EXTRA_CONFIGURE_COMMON = \ -'${LIBAV_EXTRA_CONFIGURE}="${LIBAV_EXTRA_CONFIGURE_COMMON_ARG}"' - -EXTRA_OECONF = "${LIBAV_EXTRA_CONFIGURE_COMMON}" - -FILES_${PN} += "${libdir}/gstreamer-1.0/*.so" -FILES_${PN}-dev += "${libdir}/gstreamer-1.0/*.la" -FILES_${PN}-staticdev += "${libdir}/gstreamer-1.0/*.a" - -# http://errors.yoctoproject.org/Errors/Details/20493/ -ARM_INSTRUCTION_SET_armv4 = "arm" -ARM_INSTRUCTION_SET_armv5 = "arm" - -# ffmpeg/libav disables PIC on some platforms (e.g. x86-32) -INSANE_SKIP_${PN} = "textrel" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-libav_1.16.1.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-libav_1.16.1.bb new file mode 100644 index 00000000..10955ff1 --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-libav_1.16.1.bb @@ -0,0 +1,70 @@ +SUMMARY = "Libav-based GStreamer 1.x plugin" +HOMEPAGE = "http://gstreamer.freedesktop.org/" +SECTION = "multimedia" + +LICENSE = "GPLv2+ & LGPLv2+ & ( (GPLv2+ & LGPLv2.1+) | (GPLv3+ & LGPLv3+) )" +LICENSE_FLAGS = "commercial" +LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \ + file://COPYING.LIB;md5=6762ed442b3822387a51c92d928ead0d \ + file://ext/libav/gstav.h;beginline=1;endline=18;md5=a752c35267d8276fd9ca3db6994fca9c \ + file://gst-libs/ext/libav/COPYING.GPLv2;md5=b234ee4d69f5fce4486a80fdaf4a4263 \ + file://gst-libs/ext/libav/COPYING.GPLv3;md5=d32239bcb673463ab874e80d47fae504 \ + file://gst-libs/ext/libav/COPYING.LGPLv2.1;md5=bd7a443320af8c812e4c18d1b79df004 \ + file://gst-libs/ext/libav/COPYING.LGPLv3;md5=e6a600fd5e1d9cbde2d983680233ad02" + +SRC_URI = "https://gstreamer.freedesktop.org/src/gst-libav/gst-libav-${PV}.tar.xz \ + file://0001-Disable-yasm-for-libav-when-disable-yasm.patch \ + file://workaround-to-build-gst-libav-for-i586-with-gcc.patch \ + file://mips64_cpu_detection.patch \ + file://0001-configure-check-for-armv7ve-variant.patch \ + file://0001-fix-host-contamination.patch \ + " +SRC_URI[md5sum] = "58023f4c71bbd711061e350fcd76c09d" +SRC_URI[sha256sum] = "e8a5748ae9a4a7be9696512182ea9ffa6efe0be9b7976916548e9d4381ca61c4" + +S = "${WORKDIR}/gst-libav-${PV}" + +DEPENDS = "gstreamer1.0 gstreamer1.0-plugins-base zlib bzip2 xz" + +inherit autotools pkgconfig upstream-version-is-even gtk-doc + +# CAUTION: Using the system libav is not recommended. Since the libav API is changing all the time, +# compilation errors (and other, more subtle bugs) can happen. It is usually better to rely on the +# libav copy included in the gst-libav package. +PACKAGECONFIG ??= "orc yasm" + +PACKAGECONFIG[gpl] = "--enable-gpl,--disable-gpl," +PACKAGECONFIG[libav] = "--with-system-libav,,libav" +PACKAGECONFIG[orc] = "--enable-orc,--disable-orc,orc" +PACKAGECONFIG[yasm] = "--enable-yasm,--disable-yasm,nasm-native" +PACKAGECONFIG[valgrind] = "--enable-valgrind,--disable-valgrind,valgrind" + +GSTREAMER_1_0_DEBUG ?= "--disable-debug" + +LIBAV_EXTRA_CONFIGURE = "--with-libav-extra-configure" + +LIBAV_EXTRA_CONFIGURE_COMMON_ARG = "--target-os=linux \ + --cc='${CC}' --as='${CC}' --ld='${CC}' --nm='${NM}' --ar='${AR}' \ + --ranlib='${RANLIB}' \ + ${GSTREAMER_1_0_DEBUG} \ + --cross-prefix='${HOST_PREFIX}'" + +# Disable assembly optimizations for X32, as this libav lacks the support +PACKAGECONFIG_remove_linux-gnux32 = "yasm" +LIBAV_EXTRA_CONFIGURE_COMMON_ARG_append_linux-gnux32 = " --disable-asm" + +LIBAV_EXTRA_CONFIGURE_COMMON = \ +'${LIBAV_EXTRA_CONFIGURE}="${LIBAV_EXTRA_CONFIGURE_COMMON_ARG}"' + +EXTRA_OECONF = "${LIBAV_EXTRA_CONFIGURE_COMMON}" + +FILES_${PN} += "${libdir}/gstreamer-1.0/*.so" +FILES_${PN}-dev += "${libdir}/gstreamer-1.0/*.la" +FILES_${PN}-staticdev += "${libdir}/gstreamer-1.0/*.a" + +# http://errors.yoctoproject.org/Errors/Details/20493/ +ARM_INSTRUCTION_SET_armv4 = "arm" +ARM_INSTRUCTION_SET_armv5 = "arm" + +# ffmpeg/libav disables PIC on some platforms (e.g. x86-32) +INSANE_SKIP_${PN} = "textrel" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-omx_1.16.0.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-omx_1.16.0.bb deleted file mode 100644 index d94bad36..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-omx_1.16.0.bb +++ /dev/null @@ -1,57 +0,0 @@ -SUMMARY = "OpenMAX IL plugins for GStreamer" -HOMEPAGE = "http://gstreamer.freedesktop.org/" -SECTION = "multimedia" - -LICENSE = "LGPLv2.1" -LICENSE_FLAGS = "commercial" -LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c \ - file://omx/gstomx.h;beginline=1;endline=21;md5=5c8e1fca32704488e76d2ba9ddfa935f" - -SRC_URI = "http://gstreamer.freedesktop.org/src/gst-omx/gst-omx-${PV}.tar.xz" - -SRC_URI[md5sum] = "c6f8554513980682099a2a9832250b01" -SRC_URI[sha256sum] = "fef77cddc02784608451c46b9def880b63230a246decf8900f2da2ed54a8af4a" - -S = "${WORKDIR}/gst-omx-${PV}" - -DEPENDS = "gstreamer1.0 gstreamer1.0-plugins-base gstreamer1.0-plugins-bad" - -inherit autotools pkgconfig gettext gtk-doc upstream-version-is-even - -acpaths = "-I ${S}/common/m4 -I ${S}/m4" - -GSTREAMER_1_0_OMX_TARGET ?= "bellagio" -GSTREAMER_1_0_OMX_CORE_NAME ?= "${libdir}/libomxil-bellagio.so.0" - -EXTRA_OECONF += "--disable-valgrind --with-omx-target=${GSTREAMER_1_0_OMX_TARGET}" - -python __anonymous () { - omx_target = d.getVar("GSTREAMER_1_0_OMX_TARGET") - if omx_target in ['generic', 'bellagio']: - # Bellagio headers are incomplete (they are missing the OMX_VERSION_MAJOR,# - # OMX_VERSION_MINOR, OMX_VERSION_REVISION, and OMX_VERSION_STEP macros); - # appending a directory path to gst-omx' internal OpenMAX IL headers fixes this - d.appendVar("CFLAGS", " -I${S}/omx/openmax") - elif omx_target == "rpi": - # Dedicated Raspberry Pi OpenMAX IL support makes this package machine specific - d.setVar("PACKAGE_ARCH", d.getVar("MACHINE_ARCH")) -} - -delete_pkg_m4_file() { - # Delete m4 files which we provide patched versions of but will be ignored - # if these exist - rm -f "${S}/common/m4/pkg.m4" - rm -f "${S}/common/m4/gtk-doc.m4" -} -do_configure[prefuncs] += "delete_pkg_m4_file" - -set_omx_core_name() { - sed -i -e "s;^core-name=.*;core-name=${GSTREAMER_1_0_OMX_CORE_NAME};" "${D}${sysconfdir}/xdg/gstomx.conf" -} -do_install[postfuncs] += " set_omx_core_name " - -FILES_${PN} += "${libdir}/gstreamer-1.0/*.so" -FILES_${PN}-dev += "${libdir}/gstreamer-1.0/*.la" -FILES_${PN}-staticdev += "${libdir}/gstreamer-1.0/*.a" - -RDEPENDS_${PN} = "libomxil" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-omx_1.16.1.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-omx_1.16.1.bb new file mode 100644 index 00000000..cb2f7045 --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-omx_1.16.1.bb @@ -0,0 +1,57 @@ +SUMMARY = "OpenMAX IL plugins for GStreamer" +HOMEPAGE = "http://gstreamer.freedesktop.org/" +SECTION = "multimedia" + +LICENSE = "LGPLv2.1" +LICENSE_FLAGS = "commercial" +LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c \ + file://omx/gstomx.h;beginline=1;endline=21;md5=5c8e1fca32704488e76d2ba9ddfa935f" + +SRC_URI = "https://gstreamer.freedesktop.org/src/gst-omx/gst-omx-${PV}.tar.xz" + +SRC_URI[md5sum] = "89772e7a277fd0abfc250eaf8e4e9ce9" +SRC_URI[sha256sum] = "cbf54121a2cba575d460833e8132265781252ce32cf5b8f9fa8753e42ab24bb2" + +S = "${WORKDIR}/gst-omx-${PV}" + +DEPENDS = "gstreamer1.0 gstreamer1.0-plugins-base gstreamer1.0-plugins-bad" + +inherit autotools pkgconfig gettext gtk-doc upstream-version-is-even + +acpaths = "-I ${S}/common/m4 -I ${S}/m4" + +GSTREAMER_1_0_OMX_TARGET ?= "bellagio" +GSTREAMER_1_0_OMX_CORE_NAME ?= "${libdir}/libomxil-bellagio.so.0" + +EXTRA_OECONF += "--disable-valgrind --with-omx-target=${GSTREAMER_1_0_OMX_TARGET}" + +python __anonymous () { + omx_target = d.getVar("GSTREAMER_1_0_OMX_TARGET") + if omx_target in ['generic', 'bellagio']: + # Bellagio headers are incomplete (they are missing the OMX_VERSION_MAJOR,# + # OMX_VERSION_MINOR, OMX_VERSION_REVISION, and OMX_VERSION_STEP macros); + # appending a directory path to gst-omx' internal OpenMAX IL headers fixes this + d.appendVar("CFLAGS", " -I${S}/omx/openmax") + elif omx_target == "rpi": + # Dedicated Raspberry Pi OpenMAX IL support makes this package machine specific + d.setVar("PACKAGE_ARCH", d.getVar("MACHINE_ARCH")) +} + +delete_pkg_m4_file() { + # Delete m4 files which we provide patched versions of but will be ignored + # if these exist + rm -f "${S}/common/m4/pkg.m4" + rm -f "${S}/common/m4/gtk-doc.m4" +} +do_configure[prefuncs] += "delete_pkg_m4_file" + +set_omx_core_name() { + sed -i -e "s;^core-name=.*;core-name=${GSTREAMER_1_0_OMX_CORE_NAME};" "${D}${sysconfdir}/xdg/gstomx.conf" +} +do_install[postfuncs] += " set_omx_core_name " + +FILES_${PN} += "${libdir}/gstreamer-1.0/*.so" +FILES_${PN}-dev += "${libdir}/gstreamer-1.0/*.la" +FILES_${PN}-staticdev += "${libdir}/gstreamer-1.0/*.a" + +RDEPENDS_${PN} = "libomxil" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_1.16.0.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_1.16.0.bb deleted file mode 100644 index f676b1f6..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_1.16.0.bb +++ /dev/null @@ -1,145 +0,0 @@ -require gstreamer1.0-plugins.inc - -SRC_URI = " \ - http://gstreamer.freedesktop.org/src/gst-plugins-bad/gst-plugins-bad-${PV}.tar.xz \ - file://configure-allow-to-disable-libssh2.patch \ - file://fix-maybe-uninitialized-warnings-when-compiling-with-Os.patch \ - file://avoid-including-sys-poll.h-directly.patch \ - file://ensure-valid-sentinels-for-gst_structure_get-etc.patch \ - file://0001-introspection.m4-prefix-pkgconfig-paths-with-PKG_CON.patch \ -" -SRC_URI[md5sum] = "e9e562d86c1527c44d904500dd35e326" -SRC_URI[sha256sum] = "22139de35626ada6090bdfa3423b27b7fc15a0198331d25c95e6b12cb1072b05" - -S = "${WORKDIR}/gst-plugins-bad-${PV}" - -LICENSE = "GPLv2+ & LGPLv2+ & LGPLv2.1+" -LIC_FILES_CHKSUM = "file://COPYING;md5=73a5855a8119deb017f5f13cf327095d \ - file://COPYING.LIB;md5=21682e4e8fea52413fd26c60acb907e5 " - -DEPENDS += "gstreamer1.0-plugins-base" - -inherit gettext bluetooth gobject-introspection - -PACKAGECONFIG ??= " \ - ${GSTREAMER_ORC} \ - ${@bb.utils.contains('DISTRO_FEATURES', 'bluetooth', 'bluez', '', d)} \ - ${@bb.utils.filter('DISTRO_FEATURES', 'directfb vulkan', d)} \ - ${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'wayland', '', d)} \ - ${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'gl', '', d)} \ - bz2 curl dash dtls hls rsvg sbc smoothstreaming sndfile ttml uvch264 webp \ -" - -# the gl packageconfig enables OpenGL elements that haven't been ported -# to -base yet. They depend on the gstgl library in -base, so we do -# not add GL dependencies here, since these are taken care of in -base. - -PACKAGECONFIG[assrender] = "--enable-assrender,--disable-assrender,libass" -PACKAGECONFIG[bluez] = "--enable-bluez,--disable-bluez,${BLUEZ}" -PACKAGECONFIG[bz2] = "--enable-bz2,--disable-bz2,bzip2" -PACKAGECONFIG[curl] = "--enable-curl,--disable-curl,curl" -PACKAGECONFIG[dash] = "--enable-dash,--disable-dash,libxml2" -PACKAGECONFIG[dc1394] = "--enable-dc1394,--disable-dc1394,libdc1394" -PACKAGECONFIG[directfb] = "--enable-directfb,--disable-directfb,directfb" -PACKAGECONFIG[dtls] = "--enable-dtls,--disable-dtls,openssl" -PACKAGECONFIG[faac] = "--enable-faac,--disable-faac,faac" -PACKAGECONFIG[faad] = "--enable-faad,--disable-faad,faad2" -PACKAGECONFIG[flite] = "--enable-flite,--disable-flite,flite-alsa" -PACKAGECONFIG[fluidsynth] = "--enable-fluidsynth,--disable-fluidsynth,fluidsynth" -PACKAGECONFIG[hls] = "--enable-hls --with-hls-crypto=nettle,--disable-hls,nettle" -PACKAGECONFIG[gl] = "--enable-gl,--disable-gl," -PACKAGECONFIG[kms] = "--enable-kms,--disable-kms,libdrm" -PACKAGECONFIG[libde265] = "--enable-libde265,--disable-libde265,libde265" -PACKAGECONFIG[libmms] = "--enable-libmms,--disable-libmms,libmms" -PACKAGECONFIG[libssh2] = "--enable-libssh2,--disable-libssh2,libssh2" -PACKAGECONFIG[lcms2] = "--enable-lcms2,--disable-lcms2,lcms" -PACKAGECONFIG[modplug] = "--enable-modplug,--disable-modplug,libmodplug" -PACKAGECONFIG[msdk] = "--enable-msdk,--disable-msdk,intel-mediasdk" -PACKAGECONFIG[neon] = "--enable-neon,--disable-neon,neon" -PACKAGECONFIG[openal] = "--enable-openal,--disable-openal,openal-soft" -PACKAGECONFIG[opencv] = "--enable-opencv,--disable-opencv,opencv" -PACKAGECONFIG[openh264] = "--enable-openh264,--disable-openh264,openh264" -PACKAGECONFIG[openjpeg] = "--enable-openjpeg,--disable-openjpeg,openjpeg" -PACKAGECONFIG[openmpt] = "--enable-openmpt,--disable-openmpt,libopenmpt" -# the opus encoder/decoder elements are now in the -base package, -# but the opus parser remains in -bad -PACKAGECONFIG[opusparse] = "--enable-opus,--disable-opus,libopus" -PACKAGECONFIG[resindvd] = "--enable-resindvd,--disable-resindvd,libdvdread libdvdnav" -PACKAGECONFIG[rsvg] = "--enable-rsvg,--disable-rsvg,librsvg" -PACKAGECONFIG[rtmp] = "--enable-rtmp,--disable-rtmp,rtmpdump" -PACKAGECONFIG[sbc] = "--enable-sbc,--disable-sbc,sbc" -PACKAGECONFIG[sctp] = "--enable-sctp,--disable-sctp,usrsctp" -PACKAGECONFIG[smoothstreaming] = "--enable-smoothstreaming,--disable-smoothstreaming,libxml2" -PACKAGECONFIG[sndfile] = "--enable-sndfile,--disable-sndfile,libsndfile1" -PACKAGECONFIG[srtp] = "--enable-srtp,--disable-srtp,libsrtp" -PACKAGECONFIG[tinyalsa] = "--enable-tinyalsa,--disable-tinyalsa,tinyalsa" -PACKAGECONFIG[ttml] = "--enable-ttml,--disable-ttml,libxml2 pango cairo" -PACKAGECONFIG[uvch264] = "--enable-uvch264,--disable-uvch264,libusb1 libgudev" -PACKAGECONFIG[voaacenc] = "--enable-voaacenc,--disable-voaacenc,vo-aacenc" -PACKAGECONFIG[voamrwbenc] = "--enable-voamrwbenc,--disable-voamrwbenc,vo-amrwbenc" -PACKAGECONFIG[vulkan] = "--enable-vulkan,--disable-vulkan,vulkan" -PACKAGECONFIG[wayland] = "--enable-wayland,--disable-wayland,wayland-native wayland wayland-protocols libdrm" -PACKAGECONFIG[webp] = "--enable-webp,--disable-webp,libwebp" -PACKAGECONFIG[webrtc] = "--enable-webrtc,--disable-webrtc,libnice" -PACKAGECONFIG[webrtcdsp] = "--enable-webrtcdsp,--disable-webrtcdsp,webrtc-audio-processing" - -# these plugins have no corresponding library in OE-core or meta-openembedded: -# openni2 winks direct3d directsound winscreencap apple_media iqa -# android_media avc bs2b chromaprint dts fdkaac gme gsm kate ladspa -# lv2 mpeg2enc mplex musepack nvenc ofa opensles soundtouch -# spandsp teletextdec vdpau wasapi wpe x265 zbar - -EXTRA_OECONF += " \ - --enable-decklink \ - --enable-dvb \ - --enable-fbdev \ - --enable-ipcpipeline \ - --enable-netsim \ - --enable-shm \ - --disable-android_media \ - --disable-aom \ - --disable-apple_media \ - --disable-avc \ - --disable-bs2b \ - --disable-chromaprint \ - --disable-direct3d \ - --disable-directsound \ - --disable-dts \ - --disable-fdk_aac \ - --disable-gme \ - --disable-gsm \ - --disable-iqa \ - --disable-kate \ - --disable-ladspa \ - --disable-lv2 \ - --disable-mpeg2enc \ - --disable-mplex \ - --disable-musepack \ - --disable-nvenc \ - --disable-ofa \ - --disable-openexr \ - --disable-openni2 \ - --disable-opensles \ - --disable-soundtouch \ - --disable-spandsp \ - --disable-srt \ - --disable-teletextdec \ - --disable-vdpau \ - --disable-wasapi \ - --disable-wildmidi \ - --disable-winks \ - --disable-winscreencap \ - --disable-wpe \ - --disable-x265 \ - --disable-zbar \ - ${@bb.utils.contains("TUNE_FEATURES", "mx32", "--disable-yadif", "", d)} \ -" - -export OPENCV_PREFIX = "${STAGING_DIR_TARGET}${prefix}" - -ARM_INSTRUCTION_SET_armv4 = "arm" -ARM_INSTRUCTION_SET_armv5 = "arm" - -FILES_${PN}-freeverb += "${datadir}/gstreamer-${LIBV}/presets/GstFreeverb.prs" -FILES_${PN}-opencv += "${datadir}/gst-plugins-bad/${LIBV}/opencv*" -FILES_${PN}-voamrwbenc += "${datadir}/gstreamer-${LIBV}/presets/GstVoAmrwbEnc.prs" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_1.16.1.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_1.16.1.bb new file mode 100644 index 00000000..1731be84 --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_1.16.1.bb @@ -0,0 +1,145 @@ +require gstreamer1.0-plugins.inc + +SRC_URI = " \ + https://gstreamer.freedesktop.org/src/gst-plugins-bad/gst-plugins-bad-${PV}.tar.xz \ + file://configure-allow-to-disable-libssh2.patch \ + file://fix-maybe-uninitialized-warnings-when-compiling-with-Os.patch \ + file://avoid-including-sys-poll.h-directly.patch \ + file://ensure-valid-sentinels-for-gst_structure_get-etc.patch \ + file://0001-introspection.m4-prefix-pkgconfig-paths-with-PKG_CON.patch \ +" +SRC_URI[md5sum] = "24d4d30ecc67d5cbc77c0475bcea1210" +SRC_URI[sha256sum] = "56481c95339b8985af13bac19b18bc8da7118c2a7d9440ed70e7dcd799c2adb5" + +S = "${WORKDIR}/gst-plugins-bad-${PV}" + +LICENSE = "GPLv2+ & LGPLv2+ & LGPLv2.1+" +LIC_FILES_CHKSUM = "file://COPYING;md5=73a5855a8119deb017f5f13cf327095d \ + file://COPYING.LIB;md5=21682e4e8fea52413fd26c60acb907e5 " + +DEPENDS += "gstreamer1.0-plugins-base" + +inherit gettext gobject-introspection + +PACKAGECONFIG ??= " \ + ${GSTREAMER_ORC} \ + ${@bb.utils.contains('DISTRO_FEATURES', 'bluetooth', 'bluez', '', d)} \ + ${@bb.utils.filter('DISTRO_FEATURES', 'directfb vulkan', d)} \ + ${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'wayland', '', d)} \ + ${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'gl', '', d)} \ + bz2 curl dash dtls hls rsvg sbc smoothstreaming sndfile ttml uvch264 webp \ +" + +# the gl packageconfig enables OpenGL elements that haven't been ported +# to -base yet. They depend on the gstgl library in -base, so we do +# not add GL dependencies here, since these are taken care of in -base. + +PACKAGECONFIG[assrender] = "--enable-assrender,--disable-assrender,libass" +PACKAGECONFIG[bluez] = "--enable-bluez,--disable-bluez,bluez5" +PACKAGECONFIG[bz2] = "--enable-bz2,--disable-bz2,bzip2" +PACKAGECONFIG[curl] = "--enable-curl,--disable-curl,curl" +PACKAGECONFIG[dash] = "--enable-dash,--disable-dash,libxml2" +PACKAGECONFIG[dc1394] = "--enable-dc1394,--disable-dc1394,libdc1394" +PACKAGECONFIG[directfb] = "--enable-directfb,--disable-directfb,directfb" +PACKAGECONFIG[dtls] = "--enable-dtls,--disable-dtls,openssl" +PACKAGECONFIG[faac] = "--enable-faac,--disable-faac,faac" +PACKAGECONFIG[faad] = "--enable-faad,--disable-faad,faad2" +PACKAGECONFIG[flite] = "--enable-flite,--disable-flite,flite-alsa" +PACKAGECONFIG[fluidsynth] = "--enable-fluidsynth,--disable-fluidsynth,fluidsynth" +PACKAGECONFIG[hls] = "--enable-hls --with-hls-crypto=nettle,--disable-hls,nettle" +PACKAGECONFIG[gl] = "--enable-gl,--disable-gl," +PACKAGECONFIG[kms] = "--enable-kms,--disable-kms,libdrm" +PACKAGECONFIG[libde265] = "--enable-libde265,--disable-libde265,libde265" +PACKAGECONFIG[libmms] = "--enable-libmms,--disable-libmms,libmms" +PACKAGECONFIG[libssh2] = "--enable-libssh2,--disable-libssh2,libssh2" +PACKAGECONFIG[lcms2] = "--enable-lcms2,--disable-lcms2,lcms" +PACKAGECONFIG[modplug] = "--enable-modplug,--disable-modplug,libmodplug" +PACKAGECONFIG[msdk] = "--enable-msdk,--disable-msdk,intel-mediasdk" +PACKAGECONFIG[neon] = "--enable-neon,--disable-neon,neon" +PACKAGECONFIG[openal] = "--enable-openal,--disable-openal,openal-soft" +PACKAGECONFIG[opencv] = "--enable-opencv,--disable-opencv,opencv" +PACKAGECONFIG[openh264] = "--enable-openh264,--disable-openh264,openh264" +PACKAGECONFIG[openjpeg] = "--enable-openjpeg,--disable-openjpeg,openjpeg" +PACKAGECONFIG[openmpt] = "--enable-openmpt,--disable-openmpt,libopenmpt" +# the opus encoder/decoder elements are now in the -base package, +# but the opus parser remains in -bad +PACKAGECONFIG[opusparse] = "--enable-opus,--disable-opus,libopus" +PACKAGECONFIG[resindvd] = "--enable-resindvd,--disable-resindvd,libdvdread libdvdnav" +PACKAGECONFIG[rsvg] = "--enable-rsvg,--disable-rsvg,librsvg" +PACKAGECONFIG[rtmp] = "--enable-rtmp,--disable-rtmp,rtmpdump" +PACKAGECONFIG[sbc] = "--enable-sbc,--disable-sbc,sbc" +PACKAGECONFIG[sctp] = "--enable-sctp,--disable-sctp,usrsctp" +PACKAGECONFIG[smoothstreaming] = "--enable-smoothstreaming,--disable-smoothstreaming,libxml2" +PACKAGECONFIG[sndfile] = "--enable-sndfile,--disable-sndfile,libsndfile1" +PACKAGECONFIG[srtp] = "--enable-srtp,--disable-srtp,libsrtp" +PACKAGECONFIG[tinyalsa] = "--enable-tinyalsa,--disable-tinyalsa,tinyalsa" +PACKAGECONFIG[ttml] = "--enable-ttml,--disable-ttml,libxml2 pango cairo" +PACKAGECONFIG[uvch264] = "--enable-uvch264,--disable-uvch264,libusb1 libgudev" +PACKAGECONFIG[voaacenc] = "--enable-voaacenc,--disable-voaacenc,vo-aacenc" +PACKAGECONFIG[voamrwbenc] = "--enable-voamrwbenc,--disable-voamrwbenc,vo-amrwbenc" +PACKAGECONFIG[vulkan] = "--enable-vulkan,--disable-vulkan,vulkan-loader" +PACKAGECONFIG[wayland] = "--enable-wayland,--disable-wayland,wayland-native wayland wayland-protocols libdrm" +PACKAGECONFIG[webp] = "--enable-webp,--disable-webp,libwebp" +PACKAGECONFIG[webrtc] = "--enable-webrtc,--disable-webrtc,libnice" +PACKAGECONFIG[webrtcdsp] = "--enable-webrtcdsp,--disable-webrtcdsp,webrtc-audio-processing" + +# these plugins have no corresponding library in OE-core or meta-openembedded: +# openni2 winks direct3d directsound winscreencap apple_media iqa +# android_media avc bs2b chromaprint dts fdkaac gme gsm kate ladspa +# lv2 mpeg2enc mplex musepack nvenc ofa opensles soundtouch +# spandsp teletextdec vdpau wasapi wpe x265 zbar + +EXTRA_OECONF += " \ + --enable-decklink \ + --enable-dvb \ + --enable-fbdev \ + --enable-ipcpipeline \ + --enable-netsim \ + --enable-shm \ + --disable-android_media \ + --disable-aom \ + --disable-apple_media \ + --disable-avc \ + --disable-bs2b \ + --disable-chromaprint \ + --disable-direct3d \ + --disable-directsound \ + --disable-dts \ + --disable-fdk_aac \ + --disable-gme \ + --disable-gsm \ + --disable-iqa \ + --disable-kate \ + --disable-ladspa \ + --disable-lv2 \ + --disable-mpeg2enc \ + --disable-mplex \ + --disable-musepack \ + --disable-nvenc \ + --disable-ofa \ + --disable-openexr \ + --disable-openni2 \ + --disable-opensles \ + --disable-soundtouch \ + --disable-spandsp \ + --disable-srt \ + --disable-teletextdec \ + --disable-vdpau \ + --disable-wasapi \ + --disable-wildmidi \ + --disable-winks \ + --disable-winscreencap \ + --disable-wpe \ + --disable-x265 \ + --disable-zbar \ + ${@bb.utils.contains("TUNE_FEATURES", "mx32", "--disable-yadif", "", d)} \ +" + +export OPENCV_PREFIX = "${STAGING_DIR_TARGET}${prefix}" + +ARM_INSTRUCTION_SET_armv4 = "arm" +ARM_INSTRUCTION_SET_armv5 = "arm" + +FILES_${PN}-freeverb += "${datadir}/gstreamer-${LIBV}/presets/GstFreeverb.prs" +FILES_${PN}-opencv += "${datadir}/gst-plugins-bad/${LIBV}/opencv*" +FILES_${PN}-voamrwbenc += "${datadir}/gstreamer-${LIBV}/presets/GstVoAmrwbEnc.prs" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_1.16.0.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_1.16.0.bb deleted file mode 100644 index 1d6f15e9..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_1.16.0.bb +++ /dev/null @@ -1,73 +0,0 @@ -require gstreamer1.0-plugins.inc - -LICENSE = "GPLv2+ & LGPLv2+" -LIC_FILES_CHKSUM = "file://COPYING;md5=6762ed442b3822387a51c92d928ead0d \ - file://common/coverage/coverage-report.pl;beginline=2;endline=17;md5=a4e1830fce078028c8f0974161272607" - -SRC_URI = " \ - http://gstreamer.freedesktop.org/src/gst-plugins-base/gst-plugins-base-${PV}.tar.xz \ - file://get-caps-from-src-pad-when-query-caps.patch \ - file://0003-ssaparse-enhance-SSA-text-lines-parsing.patch \ - file://make-gio_unix_2_0-dependency-configurable.patch \ - file://0001-introspection.m4-prefix-pkgconfig-paths-with-PKG_CON.patch \ - file://0002-Makefile.am-prefix-calls-to-pkg-config-with-PKG_CONF.patch \ - file://0003-riff-add-missing-include-directories-when-calling-in.patch \ - file://0004-rtsp-drop-incorrect-reference-to-gstreamer-sdp-in-Ma.patch \ - file://0005-viv-fb-Make-sure-config.h-is-included.patch \ - file://0009-glimagesink-Downrank-to-marginal.patch \ - file://0001-gstreamer-gl.pc.in-don-t-append-GL_CFLAGS-to-CFLAGS.patch \ - file://link-with-libvchostif.patch \ - " -SRC_URI[md5sum] = "41dde92930710c75cdb49169c5cc6dfc" -SRC_URI[sha256sum] = "4093aa7b51e28fb24dfd603893fead8d1b7782f088b05ed0f22a21ef176fb5ae" - -S = "${WORKDIR}/gst-plugins-base-${PV}" - -DEPENDS += "iso-codes util-linux" - -inherit gettext gobject-introspection - -PACKAGES_DYNAMIC =+ "^libgst.*" - -# opengl packageconfig factored out to make it easy for distros -# and BSP layers to pick either (desktop) opengl, gles2, or no GL -PACKAGECONFIG_GL ?= "${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'gles2 egl', '', d)}" - -PACKAGECONFIG ??= " \ - ${GSTREAMER_ORC} \ - ${PACKAGECONFIG_GL} \ - ${@bb.utils.filter('DISTRO_FEATURES', 'alsa x11', d)} \ - gio-unix-2.0 jpeg ogg pango png theora vorbis zlib \ - ${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'wayland egl', '', d)} \ -" - -X11DEPENDS = "virtual/libx11 libsm libxrender libxv" -X11ENABLEOPTS = "--enable-x --enable-xvideo --enable-xshm" -X11DISABLEOPTS = "--disable-x --disable-xvideo --disable-xshm" - -PACKAGECONFIG[alsa] = "--enable-alsa,--disable-alsa,alsa-lib" -PACKAGECONFIG[cdparanoia] = "--enable-cdparanoia,--disable-cdparanoia,cdparanoia" -PACKAGECONFIG[egl] = "--enable-egl,--disable-egl,virtual/egl" -PACKAGECONFIG[gbm] = "--enable-gbm,--disable-gbm,virtual/libgbm libgudev libdrm" -PACKAGECONFIG[gio-unix-2.0] = "--enable-gio_unix_2_0,--disable-gio_unix_2_0,glib-2.0" -PACKAGECONFIG[gles2] = "--enable-gles2,--disable-gles2,virtual/libgles2" -PACKAGECONFIG[ivorbis] = "--enable-ivorbis,--disable-ivorbis,tremor" -PACKAGECONFIG[jpeg] = "--enable-jpeg,--disable-jpeg,jpeg" -PACKAGECONFIG[ogg] = "--enable-ogg,--disable-ogg,libogg" -PACKAGECONFIG[opengl] = "--enable-opengl,--disable-opengl,virtual/libgl libglu" -PACKAGECONFIG[opus] = "--enable-opus,--disable-opus,libopus" -PACKAGECONFIG[pango] = "--enable-pango,--disable-pango,pango" -PACKAGECONFIG[png] = "--enable-png,--disable-png,libpng" -PACKAGECONFIG[theora] = "--enable-theora,--disable-theora,libtheora" -PACKAGECONFIG[visual] = "--enable-libvisual,--disable-libvisual,libvisual" -PACKAGECONFIG[vorbis] = "--enable-vorbis,--disable-vorbis,libvorbis" -PACKAGECONFIG[x11] = "${X11ENABLEOPTS},${X11DISABLEOPTS},${X11DEPENDS}" -PACKAGECONFIG[wayland] = "--enable-wayland,--disable-wayland,wayland-native wayland wayland-protocols libdrm" -PACKAGECONFIG[zlib] = "--enable-zlib,--disable-zlib,zlib" - -FILES_${PN}-dev += "${libdir}/gstreamer-${LIBV}/include/gst/gl/gstglconfig.h" -FILES_${MLPREFIX}libgsttag-1.0 += "${datadir}/gst-plugins-base/1.0/license-translations.dict" - -do_compile_prepend() { - export GIR_EXTRA_LIBS_PATH="${B}/gst-libs/gst/tag/.libs:${B}/gst-libs/gst/video/.libs:${B}/gst-libs/gst/audio/.libs:${B}/gst-libs/gst/rtp/.libs:${B}/gst-libs/gst/allocators/.libs" -} diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_1.16.1.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_1.16.1.bb new file mode 100644 index 00000000..cb99fba5 --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_1.16.1.bb @@ -0,0 +1,73 @@ +require gstreamer1.0-plugins.inc + +LICENSE = "GPLv2+ & LGPLv2+" +LIC_FILES_CHKSUM = "file://COPYING;md5=6762ed442b3822387a51c92d928ead0d \ + file://common/coverage/coverage-report.pl;beginline=2;endline=17;md5=a4e1830fce078028c8f0974161272607" + +SRC_URI = " \ + https://gstreamer.freedesktop.org/src/gst-plugins-base/gst-plugins-base-${PV}.tar.xz \ + file://get-caps-from-src-pad-when-query-caps.patch \ + file://0003-ssaparse-enhance-SSA-text-lines-parsing.patch \ + file://make-gio_unix_2_0-dependency-configurable.patch \ + file://0001-introspection.m4-prefix-pkgconfig-paths-with-PKG_CON.patch \ + file://0002-Makefile.am-prefix-calls-to-pkg-config-with-PKG_CONF.patch \ + file://0003-riff-add-missing-include-directories-when-calling-in.patch \ + file://0004-rtsp-drop-incorrect-reference-to-gstreamer-sdp-in-Ma.patch \ + file://0005-viv-fb-Make-sure-config.h-is-included.patch \ + file://0009-glimagesink-Downrank-to-marginal.patch \ + file://0001-gstreamer-gl.pc.in-don-t-append-GL_CFLAGS-to-CFLAGS.patch \ + file://link-with-libvchostif.patch \ + " +SRC_URI[md5sum] = "b5eb0651bab70bf1714f103bdd66ce47" +SRC_URI[sha256sum] = "5c3cc489933d0597087c9bc6ba251c93693d64554bcc563539a084fa2d5fcb2b" + +S = "${WORKDIR}/gst-plugins-base-${PV}" + +DEPENDS += "iso-codes util-linux" + +inherit gettext gobject-introspection + +PACKAGES_DYNAMIC =+ "^libgst.*" + +# opengl packageconfig factored out to make it easy for distros +# and BSP layers to pick either (desktop) opengl, gles2, or no GL +PACKAGECONFIG_GL ?= "${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'gles2 egl', '', d)}" + +PACKAGECONFIG ??= " \ + ${GSTREAMER_ORC} \ + ${PACKAGECONFIG_GL} \ + ${@bb.utils.filter('DISTRO_FEATURES', 'alsa x11', d)} \ + gio-unix-2.0 jpeg ogg pango png theora vorbis zlib \ + ${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'wayland egl', '', d)} \ +" + +X11DEPENDS = "virtual/libx11 libsm libxrender libxv" +X11ENABLEOPTS = "--enable-x --enable-xvideo --enable-xshm" +X11DISABLEOPTS = "--disable-x --disable-xvideo --disable-xshm" + +PACKAGECONFIG[alsa] = "--enable-alsa,--disable-alsa,alsa-lib" +PACKAGECONFIG[cdparanoia] = "--enable-cdparanoia,--disable-cdparanoia,cdparanoia" +PACKAGECONFIG[egl] = "--enable-egl,--disable-egl,virtual/egl" +PACKAGECONFIG[gbm] = "--enable-gbm,--disable-gbm,virtual/libgbm libgudev libdrm" +PACKAGECONFIG[gio-unix-2.0] = "--enable-gio_unix_2_0,--disable-gio_unix_2_0,glib-2.0" +PACKAGECONFIG[gles2] = "--enable-gles2,--disable-gles2,virtual/libgles2" +PACKAGECONFIG[ivorbis] = "--enable-ivorbis,--disable-ivorbis,tremor" +PACKAGECONFIG[jpeg] = "--enable-jpeg,--disable-jpeg,jpeg" +PACKAGECONFIG[ogg] = "--enable-ogg,--disable-ogg,libogg" +PACKAGECONFIG[opengl] = "--enable-opengl,--disable-opengl,virtual/libgl libglu" +PACKAGECONFIG[opus] = "--enable-opus,--disable-opus,libopus" +PACKAGECONFIG[pango] = "--enable-pango,--disable-pango,pango" +PACKAGECONFIG[png] = "--enable-png,--disable-png,libpng" +PACKAGECONFIG[theora] = "--enable-theora,--disable-theora,libtheora" +PACKAGECONFIG[visual] = "--enable-libvisual,--disable-libvisual,libvisual" +PACKAGECONFIG[vorbis] = "--enable-vorbis,--disable-vorbis,libvorbis" +PACKAGECONFIG[x11] = "${X11ENABLEOPTS},${X11DISABLEOPTS},${X11DEPENDS}" +PACKAGECONFIG[wayland] = "--enable-wayland,--disable-wayland,wayland-native wayland wayland-protocols libdrm" +PACKAGECONFIG[zlib] = "--enable-zlib,--disable-zlib,zlib" + +FILES_${PN}-dev += "${libdir}/gstreamer-${LIBV}/include/gst/gl/gstglconfig.h" +FILES_${MLPREFIX}libgsttag-1.0 += "${datadir}/gst-plugins-base/1.0/license-translations.dict" + +do_compile_prepend() { + export GIR_EXTRA_LIBS_PATH="${B}/gst-libs/gst/tag/.libs:${B}/gst-libs/gst/video/.libs:${B}/gst-libs/gst/audio/.libs:${B}/gst-libs/gst/rtp/.libs:${B}/gst-libs/gst/allocators/.libs" +} diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good/0001-scaletempo-Advertise-interleaved-layout-in-caps-temp.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good/0001-scaletempo-Advertise-interleaved-layout-in-caps-temp.patch deleted file mode 100644 index caa080c8..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good/0001-scaletempo-Advertise-interleaved-layout-in-caps-temp.patch +++ /dev/null @@ -1,37 +0,0 @@ -From aadfa5f20f53601785e417fe3fcbe6d574880988 Mon Sep 17 00:00:00 2001 -From: Philippe Normand -Date: Tue, 23 Apr 2019 10:10:01 +0100 -Subject: [PATCH] scaletempo: Advertise interleaved layout in caps templates - -Scaletempo doesn't support non-interleaved layout. Not explicitely stating this -would trigger critical warnings and a caps negotiation failure when scaletempo -is used as playbin audio-filter. - -Patch suggested by George Kiagiadakis . - -Fixes #591 -Upstream-Status: Backport [merged, on track for 1.16.1.] ---- - gst/audiofx/gstscaletempo.c | 6 +++--- - 1 file changed, 3 insertions(+), 3 deletions(-) - -diff --git a/gst/audiofx/gstscaletempo.c b/gst/audiofx/gstscaletempo.c -index 3a719719a..83ee8fe24 100644 ---- a/gst/audiofx/gstscaletempo.c -+++ b/gst/audiofx/gstscaletempo.c -@@ -93,9 +93,9 @@ enum - - #define SUPPORTED_CAPS \ - GST_STATIC_CAPS ( \ -- GST_AUDIO_CAPS_MAKE (GST_AUDIO_NE (F32)) "; " \ -- GST_AUDIO_CAPS_MAKE (GST_AUDIO_NE (F64)) "; " \ -- GST_AUDIO_CAPS_MAKE (GST_AUDIO_NE (S16)) \ -+ GST_AUDIO_CAPS_MAKE (GST_AUDIO_NE (F32)) ", layout=(string)interleaved; " \ -+ GST_AUDIO_CAPS_MAKE (GST_AUDIO_NE (F64)) ", layout=(string)interleaved; " \ -+ GST_AUDIO_CAPS_MAKE (GST_AUDIO_NE (S16)) ", layout=(string)interleaved" \ - ) - - static GstStaticPadTemplate sink_template = GST_STATIC_PAD_TEMPLATE ("sink", --- -2.20.1 - diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good_1.16.0.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good_1.16.0.bb deleted file mode 100644 index ad831ed2..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good_1.16.0.bb +++ /dev/null @@ -1,77 +0,0 @@ -require gstreamer1.0-plugins.inc - -SRC_URI = " \ - http://gstreamer.freedesktop.org/src/gst-plugins-good/gst-plugins-good-${PV}.tar.xz \ - file://0001-scaletempo-Advertise-interleaved-layout-in-caps-temp.patch \ - file://0001-introspection.m4-prefix-pkgconfig-paths-with-PKG_CON.patch \ - " - -SRC_URI[md5sum] = "d1a7b442994d9522418de4af4330e034" -SRC_URI[sha256sum] = "654adef33380d604112f702c2927574cfc285e31307b79e584113858838bb0fd" - -S = "${WORKDIR}/gst-plugins-good-${PV}" - -LICENSE = "GPLv2+ & LGPLv2.1+" -LIC_FILES_CHKSUM = "file://COPYING;md5=a6f89e2100d9b6cdffcea4f398e37343 \ - file://common/coverage/coverage-report.pl;beginline=2;endline=17;md5=a4e1830fce078028c8f0974161272607 \ - file://gst/replaygain/rganalysis.c;beginline=1;endline=23;md5=b60ebefd5b2f5a8e0cab6bfee391a5fe" - -DEPENDS += "gstreamer1.0-plugins-base libcap" -RPROVIDES_${PN}-pulseaudio += "${PN}-pulse" -RPROVIDES_${PN}-soup += "${PN}-souphttpsrc" - -inherit gettext - -PACKAGECONFIG ??= " \ - ${GSTREAMER_ORC} \ - ${@bb.utils.filter('DISTRO_FEATURES', 'pulseaudio x11', d)} \ - bz2 cairo flac gdk-pixbuf gudev jpeg lame libpng mpg123 soup speex taglib v4l2 zlib \ -" - -X11DEPENDS = "virtual/libx11 libsm libxrender libxfixes libxdamage" - -PACKAGECONFIG[bz2] = "--enable-bz2,--disable-bz2,bzip2" -PACKAGECONFIG[cairo] = "--enable-cairo,--disable-cairo,cairo" -PACKAGECONFIG[dv1394] = "--enable-dv1394,--disable-dv1394,libiec61883 libavc1394 libraw1394" -PACKAGECONFIG[flac] = "--enable-flac,--disable-flac,flac" -PACKAGECONFIG[gdk-pixbuf] = "--enable-gdk_pixbuf,--disable-gdk_pixbuf,gdk-pixbuf" -PACKAGECONFIG[gtk] = "--enable-gtk3,--disable-gtk3,gtk+3" -PACKAGECONFIG[gudev] = "--with-gudev,--without-gudev,libgudev" -PACKAGECONFIG[jack] = "--enable-jack,--disable-jack,jack" -PACKAGECONFIG[jpeg] = "--enable-jpeg,--disable-jpeg,jpeg" -PACKAGECONFIG[lame] = "--enable-lame,--disable-lame,lame" -PACKAGECONFIG[libpng] = "--enable-libpng,--disable-libpng,libpng" -PACKAGECONFIG[libv4l2] = "--with-libv4l2,--without-libv4l2,v4l-utils" -PACKAGECONFIG[mpg123] = "--enable-mpg123,--disable-mpg123,mpg123" -PACKAGECONFIG[pulseaudio] = "--enable-pulse,--disable-pulse,pulseaudio" -PACKAGECONFIG[soup] = "--enable-soup,--disable-soup,libsoup-2.4" -PACKAGECONFIG[speex] = "--enable-speex,--disable-speex,speex" -PACKAGECONFIG[taglib] = "--enable-taglib,--disable-taglib,taglib" -PACKAGECONFIG[v4l2] = "--enable-gst_v4l2 --enable-v4l2-probe,--disable-gst_v4l2" -PACKAGECONFIG[vpx] = "--enable-vpx,--disable-vpx,libvpx" -PACKAGECONFIG[wavpack] = "--enable-wavpack,--disable-wavpack,wavpack" -PACKAGECONFIG[x11] = "--enable-x,--disable-x,${X11DEPENDS}" -PACKAGECONFIG[zlib] = "--enable-zlib,--disable-zlib,zlib" - -# qt5 support is disabled, because it is not present in OE core, and requires more work than -# just adding a packageconfig (it requires access to moc, uic, rcc, and qmake paths). -# This is better done in a separate qt5 layer (which then should add a "qt5" packageconfig -# in a gstreamer1.0-plugins-good bbappend). - -EXTRA_OECONF += " \ - --enable-oss \ - --disable-aalib \ - --disable-aalibtest \ - --disable-directsound \ - --disable-libcaca \ - --disable-libdv \ - --disable-oss4 \ - --disable-osx_audio \ - --disable-osx_video \ - --disable-qt \ - --disable-shout2 \ - --disable-twolame \ - --disable-waveform \ -" - -FILES_${PN}-equalizer += "${datadir}/gstreamer-1.0/presets/*.prs" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good_1.16.1.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good_1.16.1.bb new file mode 100644 index 00000000..0fa7b86f --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good_1.16.1.bb @@ -0,0 +1,76 @@ +require gstreamer1.0-plugins.inc + +SRC_URI = " \ + https://gstreamer.freedesktop.org/src/gst-plugins-good/gst-plugins-good-${PV}.tar.xz \ + file://0001-introspection.m4-prefix-pkgconfig-paths-with-PKG_CON.patch \ + " + +SRC_URI[md5sum] = "515987ee763256840a11bd8ea098f2bf" +SRC_URI[sha256sum] = "9fbabe69018fcec707df0b71150168776040cde6c1a26bb5a82a136755fa8f1f" + +S = "${WORKDIR}/gst-plugins-good-${PV}" + +LICENSE = "GPLv2+ & LGPLv2.1+" +LIC_FILES_CHKSUM = "file://COPYING;md5=a6f89e2100d9b6cdffcea4f398e37343 \ + file://common/coverage/coverage-report.pl;beginline=2;endline=17;md5=a4e1830fce078028c8f0974161272607 \ + file://gst/replaygain/rganalysis.c;beginline=1;endline=23;md5=b60ebefd5b2f5a8e0cab6bfee391a5fe" + +DEPENDS += "gstreamer1.0-plugins-base libcap" +RPROVIDES_${PN}-pulseaudio += "${PN}-pulse" +RPROVIDES_${PN}-soup += "${PN}-souphttpsrc" + +inherit gettext + +PACKAGECONFIG ??= " \ + ${GSTREAMER_ORC} \ + ${@bb.utils.filter('DISTRO_FEATURES', 'pulseaudio x11', d)} \ + bz2 cairo flac gdk-pixbuf gudev jpeg lame libpng mpg123 soup speex taglib v4l2 zlib \ +" + +X11DEPENDS = "virtual/libx11 libsm libxrender libxfixes libxdamage" + +PACKAGECONFIG[bz2] = "--enable-bz2,--disable-bz2,bzip2" +PACKAGECONFIG[cairo] = "--enable-cairo,--disable-cairo,cairo" +PACKAGECONFIG[dv1394] = "--enable-dv1394,--disable-dv1394,libiec61883 libavc1394 libraw1394" +PACKAGECONFIG[flac] = "--enable-flac,--disable-flac,flac" +PACKAGECONFIG[gdk-pixbuf] = "--enable-gdk_pixbuf,--disable-gdk_pixbuf,gdk-pixbuf" +PACKAGECONFIG[gtk] = "--enable-gtk3,--disable-gtk3,gtk+3" +PACKAGECONFIG[gudev] = "--with-gudev,--without-gudev,libgudev" +PACKAGECONFIG[jack] = "--enable-jack,--disable-jack,jack" +PACKAGECONFIG[jpeg] = "--enable-jpeg,--disable-jpeg,jpeg" +PACKAGECONFIG[lame] = "--enable-lame,--disable-lame,lame" +PACKAGECONFIG[libpng] = "--enable-libpng,--disable-libpng,libpng" +PACKAGECONFIG[libv4l2] = "--with-libv4l2,--without-libv4l2,v4l-utils" +PACKAGECONFIG[mpg123] = "--enable-mpg123,--disable-mpg123,mpg123" +PACKAGECONFIG[pulseaudio] = "--enable-pulse,--disable-pulse,pulseaudio" +PACKAGECONFIG[soup] = "--enable-soup,--disable-soup,libsoup-2.4" +PACKAGECONFIG[speex] = "--enable-speex,--disable-speex,speex" +PACKAGECONFIG[taglib] = "--enable-taglib,--disable-taglib,taglib" +PACKAGECONFIG[v4l2] = "--enable-gst_v4l2 --enable-v4l2-probe,--disable-gst_v4l2" +PACKAGECONFIG[vpx] = "--enable-vpx,--disable-vpx,libvpx" +PACKAGECONFIG[wavpack] = "--enable-wavpack,--disable-wavpack,wavpack" +PACKAGECONFIG[x11] = "--enable-x,--disable-x,${X11DEPENDS}" +PACKAGECONFIG[zlib] = "--enable-zlib,--disable-zlib,zlib" + +# qt5 support is disabled, because it is not present in OE core, and requires more work than +# just adding a packageconfig (it requires access to moc, uic, rcc, and qmake paths). +# This is better done in a separate qt5 layer (which then should add a "qt5" packageconfig +# in a gstreamer1.0-plugins-good bbappend). + +EXTRA_OECONF += " \ + --enable-oss \ + --disable-aalib \ + --disable-aalibtest \ + --disable-directsound \ + --disable-libcaca \ + --disable-libdv \ + --disable-oss4 \ + --disable-osx_audio \ + --disable-osx_video \ + --disable-qt \ + --disable-shout2 \ + --disable-twolame \ + --disable-waveform \ +" + +FILES_${PN}-equalizer += "${datadir}/gstreamer-1.0/presets/*.prs" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-ugly_1.16.0.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-ugly_1.16.0.bb deleted file mode 100644 index 11a0e790..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-ugly_1.16.0.bb +++ /dev/null @@ -1,40 +0,0 @@ -require gstreamer1.0-plugins.inc - -LIC_FILES_CHKSUM = "file://COPYING;md5=a6f89e2100d9b6cdffcea4f398e37343 \ - file://tests/check/elements/xingmux.c;beginline=1;endline=21;md5=4c771b8af188724855cb99cadd390068" - -LICENSE = "GPLv2+ & LGPLv2.1+ & LGPLv2+" -LICENSE_FLAGS = "commercial" - -SRC_URI = " \ - http://gstreamer.freedesktop.org/src/gst-plugins-ugly/gst-plugins-ugly-${PV}.tar.xz \ - file://0001-introspection.m4-prefix-pkgconfig-paths-with-PKG_CON.patch \ - " -SRC_URI[md5sum] = "1ec343c58d4b17d682f7befa8453c11c" -SRC_URI[sha256sum] = "e30964c5f031c32289e0b25e176c3c95a5737f2052dfc81d0f7427ef0233a4c2" - -S = "${WORKDIR}/gst-plugins-ugly-${PV}" - -DEPENDS += "gstreamer1.0-plugins-base" - -inherit gettext - -PACKAGECONFIG ??= " \ - ${GSTREAMER_ORC} \ - a52dec mpeg2dec \ -" - -PACKAGECONFIG[a52dec] = "--enable-a52dec,--disable-a52dec,liba52" -PACKAGECONFIG[amrnb] = "--enable-amrnb,--disable-amrnb,opencore-amr" -PACKAGECONFIG[amrwb] = "--enable-amrwb,--disable-amrwb,opencore-amr" -PACKAGECONFIG[cdio] = "--enable-cdio,--disable-cdio,libcdio" -PACKAGECONFIG[dvdread] = "--enable-dvdread,--disable-dvdread,libdvdread" -PACKAGECONFIG[mpeg2dec] = "--enable-mpeg2dec,--disable-mpeg2dec,mpeg2dec" -PACKAGECONFIG[x264] = "--enable-x264,--disable-x264,x264" - -EXTRA_OECONF += " \ - --disable-sidplay \ -" - -FILES_${PN}-amrnb += "${datadir}/gstreamer-1.0/presets/GstAmrnbEnc.prs" -FILES_${PN}-x264 += "${datadir}/gstreamer-1.0/presets/GstX264Enc.prs" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-ugly_1.16.1.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-ugly_1.16.1.bb new file mode 100644 index 00000000..ecab3188 --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-ugly_1.16.1.bb @@ -0,0 +1,40 @@ +require gstreamer1.0-plugins.inc + +LIC_FILES_CHKSUM = "file://COPYING;md5=a6f89e2100d9b6cdffcea4f398e37343 \ + file://tests/check/elements/xingmux.c;beginline=1;endline=21;md5=4c771b8af188724855cb99cadd390068" + +LICENSE = "GPLv2+ & LGPLv2.1+ & LGPLv2+" +LICENSE_FLAGS = "commercial" + +SRC_URI = " \ + https://gstreamer.freedesktop.org/src/gst-plugins-ugly/gst-plugins-ugly-${PV}.tar.xz \ + file://0001-introspection.m4-prefix-pkgconfig-paths-with-PKG_CON.patch \ + " +SRC_URI[md5sum] = "668795903cb4971fba9aa89abdea8369" +SRC_URI[sha256sum] = "4bf913b2ca5195ac3b53b5e3ade2dc7c45d2258507552ddc850c5fa425968a1d" + +S = "${WORKDIR}/gst-plugins-ugly-${PV}" + +DEPENDS += "gstreamer1.0-plugins-base" + +inherit gettext + +PACKAGECONFIG ??= " \ + ${GSTREAMER_ORC} \ + a52dec mpeg2dec \ +" + +PACKAGECONFIG[a52dec] = "--enable-a52dec,--disable-a52dec,liba52" +PACKAGECONFIG[amrnb] = "--enable-amrnb,--disable-amrnb,opencore-amr" +PACKAGECONFIG[amrwb] = "--enable-amrwb,--disable-amrwb,opencore-amr" +PACKAGECONFIG[cdio] = "--enable-cdio,--disable-cdio,libcdio" +PACKAGECONFIG[dvdread] = "--enable-dvdread,--disable-dvdread,libdvdread" +PACKAGECONFIG[mpeg2dec] = "--enable-mpeg2dec,--disable-mpeg2dec,mpeg2dec" +PACKAGECONFIG[x264] = "--enable-x264,--disable-x264,x264" + +EXTRA_OECONF += " \ + --disable-sidplay \ +" + +FILES_${PN}-amrnb += "${datadir}/gstreamer-1.0/presets/GstAmrnbEnc.prs" +FILES_${PN}-x264 += "${datadir}/gstreamer-1.0/presets/GstX264Enc.prs" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-python_1.16.0.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-python_1.16.0.bb deleted file mode 100644 index 0f3aac19..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-python_1.16.0.bb +++ /dev/null @@ -1,37 +0,0 @@ -SUMMARY = "Python bindings for GStreamer 1.0" -HOMEPAGE = "http://cgit.freedesktop.org/gstreamer/gst-python/" -SECTION = "multimedia" - -LICENSE = "LGPLv2.1" -LIC_FILES_CHKSUM = "file://COPYING;md5=c34deae4e395ca07e725ab0076a5f740" - -SRC_URI = "http://gstreamer.freedesktop.org/src/${PNREAL}/${PNREAL}-${PV}.tar.xz" -SRC_URI[md5sum] = "877b2ed2aaffdb62e63f38ea9469b70f" -SRC_URI[sha256sum] = "55dc7aaed1855565f9b9ef842d93e93bfc5cb2b376faef6af5b463e1774e2d38" - -DEPENDS = "gstreamer1.0 python3-pygobject" -RDEPENDS_${PN} += "gstreamer1.0 python3-pygobject" - -PNREAL = "gst-python" - -S = "${WORKDIR}/${PNREAL}-${PV}" - -# gobject-introspection is mandatory and cannot be configured -REQUIRED_DISTRO_FEATURES = "gobject-introspection-data" -UNKNOWN_CONFIGURE_WHITELIST_append = " --enable-introspection --disable-introspection" - -inherit autotools pkgconfig distutils3-base upstream-version-is-even gobject-introspection distro_features_check - -EXTRA_OECONF += "--with-libpython-dir=${libdir}" - -do_install_append() { - - # Note that this particular find line is taken from the Debian packaging for - # gst-python1.0. - find "${D}" \ - -name '*.pyc' -o \ - -name '*.pyo' -o \ - -name '*.la' -o \ - -name 'libgstpythonplugin*' \ - -delete -} diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-python_1.16.1.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-python_1.16.1.bb new file mode 100644 index 00000000..c722f028 --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-python_1.16.1.bb @@ -0,0 +1,37 @@ +SUMMARY = "Python bindings for GStreamer 1.0" +HOMEPAGE = "http://cgit.freedesktop.org/gstreamer/gst-python/" +SECTION = "multimedia" + +LICENSE = "LGPLv2.1" +LIC_FILES_CHKSUM = "file://COPYING;md5=c34deae4e395ca07e725ab0076a5f740" + +SRC_URI = "https://gstreamer.freedesktop.org/src/${PNREAL}/${PNREAL}-${PV}.tar.xz" +SRC_URI[md5sum] = "499645fbd1790c5845c02a3998dccc1b" +SRC_URI[sha256sum] = "b469c8955126f41b8ce0bf689b7029f182cd305f422b3a8df35b780bd8347489" + +DEPENDS = "gstreamer1.0 python3-pygobject" +RDEPENDS_${PN} += "gstreamer1.0 python3-pygobject" + +PNREAL = "gst-python" + +S = "${WORKDIR}/${PNREAL}-${PV}" + +# gobject-introspection is mandatory and cannot be configured +REQUIRED_DISTRO_FEATURES = "gobject-introspection-data" +UNKNOWN_CONFIGURE_WHITELIST_append = " --enable-introspection --disable-introspection" + +inherit autotools pkgconfig distutils3-base upstream-version-is-even gobject-introspection features_check + +EXTRA_OECONF += "--with-libpython-dir=${libdir}" + +do_install_append() { + + # Note that this particular find line is taken from the Debian packaging for + # gst-python1.0. + find "${D}" \ + -name '*.pyc' -o \ + -name '*.pyo' -o \ + -name '*.la' -o \ + -name 'libgstpythonplugin*' \ + -delete +} diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-rtsp-server_1.16.0.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-rtsp-server_1.16.0.bb deleted file mode 100644 index 042938b8..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-rtsp-server_1.16.0.bb +++ /dev/null @@ -1,34 +0,0 @@ -SUMMARY = "A library on top of GStreamer for building an RTSP server" -HOMEPAGE = "http://cgit.freedesktop.org/gstreamer/gst-rtsp-server/" -SECTION = "multimedia" -LICENSE = "LGPLv2" -LIC_FILES_CHKSUM = "file://COPYING;md5=6762ed442b3822387a51c92d928ead0d" - -DEPENDS = "gstreamer1.0 gstreamer1.0-plugins-base" - -PNREAL = "gst-rtsp-server" - -SRC_URI = "http://gstreamer.freedesktop.org/src/${PNREAL}/${PNREAL}-${PV}.tar.xz \ - file://0001-introspection.m4-prefix-pkgconfig-paths-with-PKG_CON.patch \ - file://gtk-doc-tweaks.patch \ - " - -SRC_URI[md5sum] = "adc4460239ec2eccf58ad9752ce53bfd" -SRC_URI[sha256sum] = "198e9eec1a3e32dc810d3fbf3a714850a22c6288d4a5c8e802c5ff984af03f19" - -S = "${WORKDIR}/${PNREAL}-${PV}" - -inherit autotools pkgconfig upstream-version-is-even gobject-introspection gtk-doc - -EXTRA_OECONF = "--disable-examples --disable-tests" - -# Starting with 1.8.0 gst-rtsp-server includes dependency-less plugins as well -LIBV = "1.0" -require gst-plugins-package.inc - -delete_pkg_m4_file() { - # This m4 file is out of date and is missing PKG_CONFIG_SYSROOT_PATH tweaks which we need for introspection - rm "${S}/common/m4/pkg.m4" || true -} - -do_configure[prefuncs] += " delete_pkg_m4_file" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-rtsp-server_1.16.1.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-rtsp-server_1.16.1.bb new file mode 100644 index 00000000..45302ef4 --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-rtsp-server_1.16.1.bb @@ -0,0 +1,34 @@ +SUMMARY = "A library on top of GStreamer for building an RTSP server" +HOMEPAGE = "http://cgit.freedesktop.org/gstreamer/gst-rtsp-server/" +SECTION = "multimedia" +LICENSE = "LGPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=6762ed442b3822387a51c92d928ead0d" + +DEPENDS = "gstreamer1.0 gstreamer1.0-plugins-base" + +PNREAL = "gst-rtsp-server" + +SRC_URI = "https://gstreamer.freedesktop.org/src/${PNREAL}/${PNREAL}-${PV}.tar.xz \ + file://0001-introspection.m4-prefix-pkgconfig-paths-with-PKG_CON.patch \ + file://gtk-doc-tweaks.patch \ + " + +SRC_URI[md5sum] = "380d6a42e856c32fcefa508ad57129e0" +SRC_URI[sha256sum] = "b0abacad2f86f60d63781d2b24443c5668733e8b08664bbef94124906d700144" + +S = "${WORKDIR}/${PNREAL}-${PV}" + +inherit autotools pkgconfig upstream-version-is-even gobject-introspection gtk-doc + +EXTRA_OECONF = "--disable-examples --disable-tests" + +# Starting with 1.8.0 gst-rtsp-server includes dependency-less plugins as well +LIBV = "1.0" +require gst-plugins-package.inc + +delete_pkg_m4_file() { + # This m4 file is out of date and is missing PKG_CONFIG_SYSROOT_PATH tweaks which we need for introspection + rm "${S}/common/m4/pkg.m4" || true +} + +do_configure[prefuncs] += " delete_pkg_m4_file" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-vaapi_1.16.0.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-vaapi_1.16.0.bb deleted file mode 100644 index e5dfb612..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-vaapi_1.16.0.bb +++ /dev/null @@ -1,49 +0,0 @@ -SUMMARY = "VA-API support to GStreamer" -DESCRIPTION = "gstreamer-vaapi consists of a collection of VA-API \ -based plugins for GStreamer and helper libraries: `vaapidecode', \ -`vaapiconvert', and `vaapisink'." - -REALPN = "gstreamer-vaapi" - -LICENSE = "LGPLv2.1+" -LIC_FILES_CHKSUM = "file://COPYING.LIB;md5=4fbd65380cdd255951079008b364516c" - -SRC_URI = "https://gstreamer.freedesktop.org/src/${REALPN}/${REALPN}-${PV}.tar.xz \ - file://0001-gst-vaapi-Makefile.am-Add-EGL_CFLAGS-to-libgstvaapi-.patch \ - file://0001-vaapsink-downgrade-to-marginal.patch \ - " - -SRC_URI[md5sum] = "8c3f9ee3e47cbdb75a94f7183460b721" -SRC_URI[sha256sum] = "4e7fce626ee0590dca74b5a8341d25bac76307945131a970b414fc5895f5171f" - -S = "${WORKDIR}/${REALPN}-${PV}" -DEPENDS = "libva gstreamer1.0 gstreamer1.0-plugins-base gstreamer1.0-plugins-bad" - -inherit autotools pkgconfig gtk-doc distro_features_check upstream-version-is-even - -REQUIRED_DISTRO_FEATURES ?= "opengl" - -PACKAGES =+ "${PN}-tests" - -# OpenGL packageconfig factored out to make it easy for distros -# and BSP layers to pick either glx, egl, or no GL. By default, -# try detecting X11 first, and if found (with OpenGL), use GLX, -# otherwise try to check if EGL can be used. -PACKAGECONFIG_GL ?= "${@bb.utils.contains('DISTRO_FEATURES', 'x11 opengl', 'glx', \ - bb.utils.contains('DISTRO_FEATURES', 'opengl', 'egl', \ - '', d), d)}" - -PACKAGECONFIG ??= "drm \ - ${PACKAGECONFIG_GL} \ - ${@bb.utils.filter('DISTRO_FEATURES', 'wayland x11', d)}" - -PACKAGECONFIG[drm] = "--enable-drm,--disable-drm,udev libdrm" -PACKAGECONFIG[egl] = "--enable-egl,--disable-egl,virtual/egl" -PACKAGECONFIG[glx] = "--enable-glx,--disable-glx,virtual/libgl" -PACKAGECONFIG[wayland] = "--enable-wayland,--disable-wayland,wayland-native wayland wayland-protocols" -PACKAGECONFIG[x11] = "--enable-x11,--disable-x11,virtual/libx11 libxrandr libxrender" - -FILES_${PN} += "${libdir}/gstreamer-*/*.so" -FILES_${PN}-dbg += "${libdir}/gstreamer-*/.debug" -FILES_${PN}-dev += "${libdir}/gstreamer-*/*.la ${libdir}/gstreamer-*/*.a" -FILES_${PN}-tests = "${bindir}/*" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-vaapi_1.16.1.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-vaapi_1.16.1.bb new file mode 100644 index 00000000..b8c2126d --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-vaapi_1.16.1.bb @@ -0,0 +1,49 @@ +SUMMARY = "VA-API support to GStreamer" +DESCRIPTION = "gstreamer-vaapi consists of a collection of VA-API \ +based plugins for GStreamer and helper libraries: `vaapidecode', \ +`vaapiconvert', and `vaapisink'." + +REALPN = "gstreamer-vaapi" + +LICENSE = "LGPLv2.1+" +LIC_FILES_CHKSUM = "file://COPYING.LIB;md5=4fbd65380cdd255951079008b364516c" + +SRC_URI = "https://gstreamer.freedesktop.org/src/${REALPN}/${REALPN}-${PV}.tar.xz \ + file://0001-gst-vaapi-Makefile.am-Add-EGL_CFLAGS-to-libgstvaapi-.patch \ + file://0001-vaapsink-downgrade-to-marginal.patch \ + " + +SRC_URI[md5sum] = "15b08f76777359d87b0b4a561db05f1f" +SRC_URI[sha256sum] = "cb570f6f1e78cb364fbe3c4fb8751824ee9db0c942ba61b62380b9b5abb7603a" + +S = "${WORKDIR}/${REALPN}-${PV}" +DEPENDS = "libva gstreamer1.0 gstreamer1.0-plugins-base gstreamer1.0-plugins-bad" + +inherit autotools pkgconfig gtk-doc features_check upstream-version-is-even + +REQUIRED_DISTRO_FEATURES ?= "opengl" + +PACKAGES =+ "${PN}-tests" + +# OpenGL packageconfig factored out to make it easy for distros +# and BSP layers to pick either glx, egl, or no GL. By default, +# try detecting X11 first, and if found (with OpenGL), use GLX, +# otherwise try to check if EGL can be used. +PACKAGECONFIG_GL ?= "${@bb.utils.contains('DISTRO_FEATURES', 'x11 opengl', 'glx', \ + bb.utils.contains('DISTRO_FEATURES', 'opengl', 'egl', \ + '', d), d)}" + +PACKAGECONFIG ??= "drm \ + ${PACKAGECONFIG_GL} \ + ${@bb.utils.filter('DISTRO_FEATURES', 'wayland x11', d)}" + +PACKAGECONFIG[drm] = "--enable-drm,--disable-drm,udev libdrm" +PACKAGECONFIG[egl] = "--enable-egl,--disable-egl,virtual/egl" +PACKAGECONFIG[glx] = "--enable-glx,--disable-glx,virtual/libgl" +PACKAGECONFIG[wayland] = "--enable-wayland,--disable-wayland,wayland-native wayland wayland-protocols" +PACKAGECONFIG[x11] = "--enable-x11,--disable-x11,virtual/libx11 libxrandr libxrender" + +FILES_${PN} += "${libdir}/gstreamer-*/*.so" +FILES_${PN}-dbg += "${libdir}/gstreamer-*/.debug" +FILES_${PN}-dev += "${libdir}/gstreamer-*/*.la ${libdir}/gstreamer-*/*.a" +FILES_${PN}-tests = "${bindir}/*" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0_1.16.0.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0_1.16.0.bb deleted file mode 100644 index da2d14cd..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0_1.16.0.bb +++ /dev/null @@ -1,91 +0,0 @@ -SUMMARY = "GStreamer 1.0 multimedia framework" -DESCRIPTION = "GStreamer is a multimedia framework for encoding and decoding video and sound. \ -It supports a wide range of formats including mp3, ogg, avi, mpeg and quicktime." -HOMEPAGE = "http://gstreamer.freedesktop.org/" -BUGTRACKER = "https://bugzilla.gnome.org/enter_bug.cgi?product=Gstreamer" -SECTION = "multimedia" -LICENSE = "LGPLv2+" - -DEPENDS = "glib-2.0 glib-2.0-native libcap libxml2 bison-native flex-native" - -inherit autotools pkgconfig gettext upstream-version-is-even gobject-introspection gtk-doc ptest - -# This way common/m4/introspection.m4 will come first -# (it has a custom INTROSPECTION_INIT macro, and so must be used instead of our common introspection.m4 file) -acpaths = "-I ${S}/common/m4 -I ${S}/m4" - -LIC_FILES_CHKSUM = "file://COPYING;md5=6762ed442b3822387a51c92d928ead0d \ - file://gst/gst.h;beginline=1;endline=21;md5=e059138481205ee2c6fc1c079c016d0d" - -S = "${WORKDIR}/gstreamer-${PV}" - -SRC_URI = " \ - http://gstreamer.freedesktop.org/src/gstreamer/gstreamer-${PV}.tar.xz \ - file://0001-introspection.m4-prefix-pkgconfig-paths-with-PKG_CON.patch \ - file://gtk-doc-tweaks.patch \ - file://0001-gst-gstpluginloader.c-when-env-var-is-set-do-not-fal.patch \ - file://add-a-target-to-compile-tests.patch \ - file://run-ptest \ -" -SRC_URI[md5sum] = "862b7e4263d946bc2ef31b3c582e5587" -SRC_URI[sha256sum] = "0e8e2f7118be437cba879353970cf83c2acced825ecb9275ba05d9186ef07c00" - -PACKAGECONFIG ??= "${@bb.utils.contains('PTEST_ENABLED', '1', 'tests', '', d)} \ - " - -PACKAGECONFIG[debug] = "--enable-debug,--disable-debug" -PACKAGECONFIG[tests] = "--enable-tests,--disable-tests" -PACKAGECONFIG[valgrind] = "--enable-valgrind,--disable-valgrind,valgrind," -PACKAGECONFIG[gst-tracer-hooks] = "--enable-gst-tracer-hooks,--disable-gst-tracer-hooks," -PACKAGECONFIG[unwind] = "--with-unwind,--without-unwind,libunwind" -PACKAGECONFIG[dw] = "--with-dw,--without-dw,elfutils" - -EXTRA_OECONF = " \ - --disable-examples \ -" - -CACHED_CONFIGUREVARS += "ac_cv_header_valgrind_valgrind_h=no" - -# musl libc generates warnings if is included directly -CACHED_CONFIGUREVARS += "ac_cv_header_sys_poll_h=no" - -PACKAGES += "${PN}-bash-completion" - -FILES_${PN} += "${libdir}/gstreamer-1.0/*.so" -FILES_${PN}-dev += "${libdir}/gstreamer-1.0/*.la ${libdir}/gstreamer-1.0/*.a ${libdir}/gstreamer-1.0/include" -FILES_${PN}-bash-completion += "${datadir}/bash-completion/completions/ ${datadir}/bash-completion/helpers/gst*" -FILES_${PN}-dbg += "${datadir}/gdb ${datadir}/gstreamer-1.0/gdb" - -RDEPENDS_${PN}-ptest += "make" - -delete_pkg_m4_file() { - # This m4 file is out of date and is missing PKG_CONFIG_SYSROOT_PATH tweaks which we need for introspection - rm "${S}/common/m4/pkg.m4" || true - rm -f "${S}/common/m4/gtk-doc.m4" -} - -do_configure[prefuncs] += "delete_pkg_m4_file" - -do_compile_prepend() { - export GIR_EXTRA_LIBS_PATH="${B}/gst/.libs:${B}/libs/gst/base/.libs" -} - -do_compile_ptest() { - oe_runmake build-checks -} - -do_install_ptest() { - oe_runmake -C tests/check DESTDIR=${D}${PTEST_PATH} install-ptest - install -m 644 ${B}/tests/check/Makefile ${D}${PTEST_PATH} - install -m 755 ${S}/test-driver ${D}${PTEST_PATH} - sed -e 's,--sysroot=${STAGING_DIR_TARGET},,g' \ - -e 's|${DEBUG_PREFIX_MAP}||g' \ - -e 's:${HOSTTOOLS_DIR}/::g' \ - -e 's:${RECIPE_SYSROOT_NATIVE}::g' \ - -e 's:${BASE_WORKDIR}/${MULTIMACH_TARGET_SYS}::g' \-e 's/^Makefile:/_Makefile:/' \ - -e 's/^srcdir = \(.*\)/srcdir = ./' -e 's/^top_srcdir = \(.*\)/top_srcdir = ./' \ - -e 's/^builddir = \(.*\)/builddir = ./' -e 's/^top_builddir = \(.*\)/top_builddir = ./' \ - -i ${D}${PTEST_PATH}/Makefile -} - -CVE_PRODUCT = "gstreamer" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0_1.16.1.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0_1.16.1.bb new file mode 100644 index 00000000..ff92f63b --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0_1.16.1.bb @@ -0,0 +1,91 @@ +SUMMARY = "GStreamer 1.0 multimedia framework" +DESCRIPTION = "GStreamer is a multimedia framework for encoding and decoding video and sound. \ +It supports a wide range of formats including mp3, ogg, avi, mpeg and quicktime." +HOMEPAGE = "http://gstreamer.freedesktop.org/" +BUGTRACKER = "https://bugzilla.gnome.org/enter_bug.cgi?product=Gstreamer" +SECTION = "multimedia" +LICENSE = "LGPLv2+" + +DEPENDS = "glib-2.0 glib-2.0-native libcap libxml2 bison-native flex-native" + +inherit autotools pkgconfig gettext upstream-version-is-even gobject-introspection gtk-doc ptest + +# This way common/m4/introspection.m4 will come first +# (it has a custom INTROSPECTION_INIT macro, and so must be used instead of our common introspection.m4 file) +acpaths = "-I ${S}/common/m4 -I ${S}/m4" + +LIC_FILES_CHKSUM = "file://COPYING;md5=6762ed442b3822387a51c92d928ead0d \ + file://gst/gst.h;beginline=1;endline=21;md5=e059138481205ee2c6fc1c079c016d0d" + +S = "${WORKDIR}/gstreamer-${PV}" + +SRC_URI = " \ + https://gstreamer.freedesktop.org/src/gstreamer/gstreamer-${PV}.tar.xz \ + file://0001-introspection.m4-prefix-pkgconfig-paths-with-PKG_CON.patch \ + file://gtk-doc-tweaks.patch \ + file://0001-gst-gstpluginloader.c-when-env-var-is-set-do-not-fal.patch \ + file://add-a-target-to-compile-tests.patch \ + file://run-ptest \ +" +SRC_URI[md5sum] = "c505fb818b36988daaa846e9e63eabe8" +SRC_URI[sha256sum] = "02211c3447c4daa55919c5c0f43a82a6fbb51740d57fc3af0639d46f1cf4377d" + +PACKAGECONFIG ??= "${@bb.utils.contains('PTEST_ENABLED', '1', 'tests', '', d)} \ + " + +PACKAGECONFIG[debug] = "--enable-debug,--disable-debug" +PACKAGECONFIG[tests] = "--enable-tests,--disable-tests" +PACKAGECONFIG[valgrind] = "--enable-valgrind,--disable-valgrind,valgrind," +PACKAGECONFIG[gst-tracer-hooks] = "--enable-gst-tracer-hooks,--disable-gst-tracer-hooks," +PACKAGECONFIG[unwind] = "--with-unwind,--without-unwind,libunwind" +PACKAGECONFIG[dw] = "--with-dw,--without-dw,elfutils" + +EXTRA_OECONF = " \ + --disable-examples \ +" + +CACHED_CONFIGUREVARS += "ac_cv_header_valgrind_valgrind_h=no" + +# musl libc generates warnings if is included directly +CACHED_CONFIGUREVARS += "ac_cv_header_sys_poll_h=no" + +PACKAGES += "${PN}-bash-completion" + +FILES_${PN} += "${libdir}/gstreamer-1.0/*.so" +FILES_${PN}-dev += "${libdir}/gstreamer-1.0/*.la ${libdir}/gstreamer-1.0/*.a ${libdir}/gstreamer-1.0/include" +FILES_${PN}-bash-completion += "${datadir}/bash-completion/completions/ ${datadir}/bash-completion/helpers/gst*" +FILES_${PN}-dbg += "${datadir}/gdb ${datadir}/gstreamer-1.0/gdb" + +RDEPENDS_${PN}-ptest += "make" + +delete_pkg_m4_file() { + # This m4 file is out of date and is missing PKG_CONFIG_SYSROOT_PATH tweaks which we need for introspection + rm "${S}/common/m4/pkg.m4" || true + rm -f "${S}/common/m4/gtk-doc.m4" +} + +do_configure[prefuncs] += "delete_pkg_m4_file" + +do_compile_prepend() { + export GIR_EXTRA_LIBS_PATH="${B}/gst/.libs:${B}/libs/gst/base/.libs" +} + +do_compile_ptest() { + oe_runmake build-checks +} + +do_install_ptest() { + oe_runmake -C tests/check DESTDIR=${D}${PTEST_PATH} install-ptest + install -m 644 ${B}/tests/check/Makefile ${D}${PTEST_PATH} + install -m 755 ${S}/test-driver ${D}${PTEST_PATH} + sed -e 's,--sysroot=${STAGING_DIR_TARGET},,g' \ + -e 's|${DEBUG_PREFIX_MAP}||g' \ + -e 's:${HOSTTOOLS_DIR}/::g' \ + -e 's:${RECIPE_SYSROOT_NATIVE}::g' \ + -e 's:${BASE_WORKDIR}/${MULTIMACH_TARGET_SYS}::g' \-e 's/^Makefile:/_Makefile:/' \ + -e 's/^srcdir = \(.*\)/srcdir = ./' -e 's/^top_srcdir = \(.*\)/top_srcdir = ./' \ + -e 's/^builddir = \(.*\)/builddir = ./' -e 's/^top_builddir = \(.*\)/top_builddir = ./' \ + -i ${D}${PTEST_PATH}/Makefile +} + +CVE_PRODUCT = "gstreamer" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-multimedia/libid3tag/libid3tag/10_utf16.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-multimedia/libid3tag/libid3tag/10_utf16.patch index 8d09ce7b..10e08901 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-multimedia/libid3tag/libid3tag/10_utf16.patch +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-multimedia/libid3tag/libid3tag/10_utf16.patch @@ -6,6 +6,7 @@ https://sources.debian.org/patches/libid3tag/0.15.1b-13/10_utf16.dpatch Upstream-Status: Pending CVE: CVE-2004-2779 +CVE: CVE-2017-11551 Signed-off-by: Changqing Li diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-multimedia/libid3tag/libid3tag/unknown-encoding.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-multimedia/libid3tag/libid3tag/unknown-encoding.patch new file mode 100644 index 00000000..f0867b5f --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-multimedia/libid3tag/libid3tag/unknown-encoding.patch @@ -0,0 +1,39 @@ +In case of an unknown/invalid encoding, id3_parse_string() will +return NULL, but the return value wasn't checked resulting +in segfault in id3_ucs4_length(). This is the only place +the return value wasn't checked. + +Patch taken from Debian: +https://sources.debian.org/patches/libid3tag/0.15.1b-14/11_unknown_encoding.dpatch/ + +CVE: CVE-2017-11550 +Upstream-Status: Pending +Signed-off-by: Ross Burton + +diff -urNad libid3tag-0.15.1b~/compat.gperf libid3tag-0.15.1b/compat.gperf +--- libid3tag-0.15.1b~/compat.gperf 2004-01-23 09:41:32.000000000 +0000 ++++ libid3tag-0.15.1b/compat.gperf 2007-01-14 14:36:53.000000000 +0000 +@@ -236,6 +236,10 @@ + + encoding = id3_parse_uint(&data, 1); + string = id3_parse_string(&data, end - data, encoding, 0); ++ if (!string) ++ { ++ continue; ++ } + + if (id3_ucs4_length(string) < 4) { + free(string); +diff -urNad libid3tag-0.15.1b~/parse.c libid3tag-0.15.1b/parse.c +--- libid3tag-0.15.1b~/parse.c 2004-01-23 09:41:32.000000000 +0000 ++++ libid3tag-0.15.1b/parse.c 2007-01-14 14:37:34.000000000 +0000 +@@ -165,6 +165,9 @@ + case ID3_FIELD_TEXTENCODING_UTF_8: + ucs4 = id3_utf8_deserialize(ptr, length); + break; ++ default: ++ /* FIXME: Unknown encoding! Print warning? */ ++ return NULL; + } + + if (ucs4 && !full) { diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-multimedia/libid3tag/libid3tag_0.15.1b.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-multimedia/libid3tag/libid3tag_0.15.1b.bb index 43edd3fe..0312a610 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-multimedia/libid3tag/libid3tag_0.15.1b.bb +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-multimedia/libid3tag/libid3tag_0.15.1b.bb @@ -14,6 +14,7 @@ SRC_URI = "${SOURCEFORGE_MIRROR}/mad/libid3tag-${PV}.tar.gz \ file://obsolete_automake_macros.patch \ file://0001-Fix-gperf-3.1-incompatibility.patch \ file://10_utf16.patch \ + file://unknown-encoding.patch \ " UPSTREAM_CHECK_URI = "https://sourceforge.net/projects/mad/files/libid3tag/" UPSTREAM_CHECK_REGEX = "/projects/mad/files/libid3tag/(?P.*)/$" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-multimedia/libogg/libogg_1.3.3.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-multimedia/libogg/libogg_1.3.3.bb deleted file mode 100644 index 8d88f1f9..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-multimedia/libogg/libogg_1.3.3.bb +++ /dev/null @@ -1,17 +0,0 @@ -SUMMARY = "Ogg bitstream and framing libary" -DESCRIPTION = "libogg is the bitstream and framing library \ -for the Ogg project. It provides functions which are \ -necessary to codec libraries like libvorbis." -HOMEPAGE = "http://xiph.org/" -BUGTRACKER = "https://trac.xiph.org/newticket" -SECTION = "libs" -LICENSE = "BSD" -LIC_FILES_CHKSUM = "file://COPYING;md5=db1b7a668b2a6f47b2af88fb008ad555 \ - file://include/ogg/ogg.h;beginline=1;endline=11;md5=eda812856f13a3b1326eb8f020cc3b0b" - -SRC_URI = "http://downloads.xiph.org/releases/ogg/${BP}.tar.xz" - -SRC_URI[md5sum] = "87ed742047f065046eb6c36745d871b8" -SRC_URI[sha256sum] = "4f3fc6178a533d392064f14776b23c397ed4b9f48f5de297aba73b643f955c08" - -inherit autotools pkgconfig diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-multimedia/libogg/libogg_1.3.4.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-multimedia/libogg/libogg_1.3.4.bb new file mode 100644 index 00000000..c4004619 --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-multimedia/libogg/libogg_1.3.4.bb @@ -0,0 +1,17 @@ +SUMMARY = "Ogg bitstream and framing libary" +DESCRIPTION = "libogg is the bitstream and framing library \ +for the Ogg project. It provides functions which are \ +necessary to codec libraries like libvorbis." +HOMEPAGE = "http://xiph.org/" +BUGTRACKER = "https://trac.xiph.org/newticket" +SECTION = "libs" +LICENSE = "BSD-3-Clause" +LIC_FILES_CHKSUM = "file://COPYING;md5=db1b7a668b2a6f47b2af88fb008ad555 \ + file://include/ogg/ogg.h;beginline=1;endline=11;md5=eda812856f13a3b1326eb8f020cc3b0b" + +SRC_URI = "http://downloads.xiph.org/releases/ogg/${BP}.tar.xz" + +SRC_URI[md5sum] = "eadef24aad6e3e8379ba0d14971fd64a" +SRC_URI[sha256sum] = "c163bc12bc300c401b6aa35907ac682671ea376f13ae0969a220f7ddf71893fe" + +inherit autotools pkgconfig diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-multimedia/libpng/libpng_1.6.37.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-multimedia/libpng/libpng_1.6.37.bb index 66af2f3d..2ed87a84 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-multimedia/libpng/libpng_1.6.37.bb +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-multimedia/libpng/libpng_1.6.37.bb @@ -29,3 +29,6 @@ PACKAGES =+ "${PN}-tools" FILES_${PN}-tools = "${bindir}/png-fix-itxt ${bindir}/pngfix ${bindir}/pngcp" BBCLASSEXTEND = "native nativesdk" + +# CVE-2019-17371 is actually a memory leak in gif2png 2.x +CVE_CHECK_WHITELIST += "CVE-2019-17371" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-multimedia/libsndfile/libsndfile1_1.0.28.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-multimedia/libsndfile/libsndfile1_1.0.28.bb index 77393db8..7855008f 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-multimedia/libsndfile/libsndfile1_1.0.28.bb +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-multimedia/libsndfile/libsndfile1_1.0.28.bb @@ -1,7 +1,7 @@ SUMMARY = "Audio format Conversion library" HOMEPAGE = "http://www.mega-nerd.com/libsndfile" AUTHOR = "Erik de Castro Lopo" -DEPENDS = "flac libogg libvorbis sqlite3" +DEPENDS = "flac libogg libvorbis" SECTION = "libs/multimedia" LICENSE = "LGPLv2.1" @@ -30,11 +30,10 @@ S = "${WORKDIR}/libsndfile-${PV}" PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'alsa', d)}" PACKAGECONFIG[alsa] = "--enable-alsa,--disable-alsa,alsa-lib" +PACKAGECONFIG[regtest] = "--enable-sqlite,--disable-sqlite,sqlite3" inherit autotools lib_package pkgconfig -do_configure_prepend_arm() { - export ac_cv_sys_largefile_source=1 - export ac_cv_sys_file_offset_bits=64 -} - +# This can't be replicated and is just a memory leak. +# https://github.com/erikd/libsndfile/issues/398 +CVE_CHECK_WHITELIST += "CVE-2018-13419" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-multimedia/libtheora/libtheora_1.1.1.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-multimedia/libtheora/libtheora_1.1.1.bb index 664d8480..178e1a92 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-multimedia/libtheora/libtheora_1.1.1.bb +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-multimedia/libtheora/libtheora_1.1.1.bb @@ -3,7 +3,7 @@ DESCRIPTION = "The libtheora reference implementation provides the standard enco HOMEPAGE = "http://xiph.org/" BUGTRACKER = "https://trac.xiph.org/newticket" SECTION = "libs" -LICENSE = "BSD" +LICENSE = "BSD-3-Clause" LIC_FILES_CHKSUM = "file://COPYING;md5=cf91718f59eb6a83d06dc7bcaf411132" DEPENDS = "libogg" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-multimedia/libtiff/files/libtool2.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-multimedia/libtiff/files/libtool2.patch deleted file mode 100644 index 96233b46..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-multimedia/libtiff/files/libtool2.patch +++ /dev/null @@ -1,24 +0,0 @@ -From 5b893206e0a0d529ba2d0caf58cfffc03bccb598 Mon Sep 17 00:00:00 2001 -From: Marcin Juszkiewicz -Date: Sat, 14 Jun 2008 13:42:22 +0000 -Subject: [PATCH] tiff: make it work after libtool upgrade - -Upstream-Status: Inappropriate [configuration] - ---- - configure.ac | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/configure.ac b/configure.ac -index c7b02e2..ae1c964 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -27,7 +27,7 @@ dnl Process this file with autoconf to produce a configure script. - AC_PREREQ(2.64) - AC_INIT([LibTIFF Software],[4.0.10],[tiff@lists.maptools.org],[tiff]) - AC_CONFIG_AUX_DIR(config) --AC_CONFIG_MACRO_DIR(m4) -+dnl AC_CONFIG_MACRO_DIR(m4) - AC_LANG(C) - - dnl Compute the canonical host (run-time) system type variable diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-multimedia/libtiff/tiff_4.0.10.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-multimedia/libtiff/tiff_4.0.10.bb deleted file mode 100644 index 152fa819..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-multimedia/libtiff/tiff_4.0.10.bb +++ /dev/null @@ -1,52 +0,0 @@ -SUMMARY = "Provides support for the Tag Image File Format (TIFF)" -LICENSE = "BSD-2-Clause" -LIC_FILES_CHKSUM = "file://COPYRIGHT;md5=34da3db46fab7501992f9615d7e158cf" - -CVE_PRODUCT = "libtiff" - -SRC_URI = "http://download.osgeo.org/libtiff/tiff-${PV}.tar.gz \ - file://libtool2.patch \ - " - -SRC_URI[md5sum] = "114192d7ebe537912a2b97408832e7fd" -SRC_URI[sha256sum] = "2c52d11ccaf767457db0c46795d9c7d1a8d8f76f68b0b800a3dfe45786b996e4" - -# exclude betas -UPSTREAM_CHECK_REGEX = "tiff-(?P\d+(\.\d+)+).tar" - -inherit autotools multilib_header - -CACHED_CONFIGUREVARS = "ax_cv_check_gl_libgl=no" - -PACKAGECONFIG ?= "cxx jpeg zlib lzma \ - strip-chopping extrasample-as-alpha check-ycbcr-subsampling" - -PACKAGECONFIG[cxx] = "--enable-cxx,--disable-cxx,," -PACKAGECONFIG[jpeg] = "--enable-jpeg,--disable-jpeg,jpeg," -PACKAGECONFIG[zlib] = "--enable-zlib,--disable-zlib,zlib," -PACKAGECONFIG[lzma] = "--enable-lzma,--disable-lzma,xz," - -# Convert single-strip uncompressed images to multiple strips of specified -# size (default: 8192) to reduce memory usage -PACKAGECONFIG[strip-chopping] = "--enable-strip-chopping,--disable-strip-chopping,," - -# Treat a fourth sample with no EXTRASAMPLE_ value as being ASSOCALPHA -PACKAGECONFIG[extrasample-as-alpha] = "--enable-extrasample-as-alpha,--disable-extrasample-as-alpha,," - -# Control picking up YCbCr subsample info. Disable to support files lacking -# the tag -PACKAGECONFIG[check-ycbcr-subsampling] = "--enable-check-ycbcr-subsampling,--disable-check-ycbcr-subsampling,," - -# Support a mechanism allowing reading large strips (usually one strip files) -# in chunks when using TIFFReadScanline. Experimental 4.0+ feature -PACKAGECONFIG[chunky-strip-read] = "--enable-chunky-strip-read,--disable-chunky-strip-read,," - -PACKAGES =+ "tiffxx tiff-utils" -FILES_tiffxx = "${libdir}/libtiffxx.so.*" -FILES_tiff-utils = "${bindir}/*" - -do_install_append() { - oe_multilib_header tiffconf.h -} - -BBCLASSEXTEND = "native" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-multimedia/libtiff/tiff_4.1.0.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-multimedia/libtiff/tiff_4.1.0.bb new file mode 100644 index 00000000..1f92c185 --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-multimedia/libtiff/tiff_4.1.0.bb @@ -0,0 +1,50 @@ +SUMMARY = "Provides support for the Tag Image File Format (TIFF)" +LICENSE = "BSD-2-Clause" +LIC_FILES_CHKSUM = "file://COPYRIGHT;md5=34da3db46fab7501992f9615d7e158cf" + +CVE_PRODUCT = "libtiff" + +SRC_URI = "http://download.osgeo.org/libtiff/tiff-${PV}.tar.gz \ + " +SRC_URI[md5sum] = "2165e7aba557463acc0664e71a3ed424" +SRC_URI[sha256sum] = "5d29f32517dadb6dbcd1255ea5bbc93a2b54b94fbf83653b4d65c7d6775b8634" + +# exclude betas +UPSTREAM_CHECK_REGEX = "tiff-(?P\d+(\.\d+)+).tar" + +inherit autotools multilib_header + +CACHED_CONFIGUREVARS = "ax_cv_check_gl_libgl=no" + +PACKAGECONFIG ?= "cxx jpeg zlib lzma \ + strip-chopping extrasample-as-alpha check-ycbcr-subsampling" + +PACKAGECONFIG[cxx] = "--enable-cxx,--disable-cxx,," +PACKAGECONFIG[jpeg] = "--enable-jpeg,--disable-jpeg,jpeg," +PACKAGECONFIG[zlib] = "--enable-zlib,--disable-zlib,zlib," +PACKAGECONFIG[lzma] = "--enable-lzma,--disable-lzma,xz," + +# Convert single-strip uncompressed images to multiple strips of specified +# size (default: 8192) to reduce memory usage +PACKAGECONFIG[strip-chopping] = "--enable-strip-chopping,--disable-strip-chopping,," + +# Treat a fourth sample with no EXTRASAMPLE_ value as being ASSOCALPHA +PACKAGECONFIG[extrasample-as-alpha] = "--enable-extrasample-as-alpha,--disable-extrasample-as-alpha,," + +# Control picking up YCbCr subsample info. Disable to support files lacking +# the tag +PACKAGECONFIG[check-ycbcr-subsampling] = "--enable-check-ycbcr-subsampling,--disable-check-ycbcr-subsampling,," + +# Support a mechanism allowing reading large strips (usually one strip files) +# in chunks when using TIFFReadScanline. Experimental 4.0+ feature +PACKAGECONFIG[chunky-strip-read] = "--enable-chunky-strip-read,--disable-chunky-strip-read,," + +PACKAGES =+ "tiffxx tiff-utils" +FILES_tiffxx = "${libdir}/libtiffxx.so.*" +FILES_tiff-utils = "${bindir}/*" + +do_install_append() { + oe_multilib_header tiffconf.h +} + +BBCLASSEXTEND = "native" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-multimedia/libvorbis/libvorbis_1.3.6.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-multimedia/libvorbis/libvorbis_1.3.6.bb index cbda6dc2..1a3cdc22 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-multimedia/libvorbis/libvorbis_1.3.6.bb +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-multimedia/libvorbis/libvorbis_1.3.6.bb @@ -5,7 +5,7 @@ is the main vorbis codec library." HOMEPAGE = "http://www.vorbis.com/" BUGTRACKER = "https://trac.xiph.org" SECTION = "libs" -LICENSE = "BSD" +LICENSE = "BSD-3-Clause" LIC_FILES_CHKSUM = "file://COPYING;md5=70c7063491d2d9f76a098d62ed5134f1 \ file://include/vorbis/vorbisenc.h;beginline=1;endline=11;md5=d1c1d138863d6315131193d4046d81cb" DEPENDS = "libogg" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-multimedia/mpeg2dec/files/0001-Import-revision-1206-from-upstream-to-fix-PIE-build.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-multimedia/mpeg2dec/files/0001-Import-revision-1206-from-upstream-to-fix-PIE-build.patch new file mode 100644 index 00000000..b2544cb4 --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-multimedia/mpeg2dec/files/0001-Import-revision-1206-from-upstream-to-fix-PIE-build.patch @@ -0,0 +1,156 @@ +From 0cafb99b57f43cf6ac2c6208718e49ad2dbe462d Mon Sep 17 00:00:00 2001 +From: Jan Schmidt +Date: Sun, 10 Nov 2013 00:49:52 +1100 +Subject: [PATCH] Import revision 1206 from upstream to fix PIE build. + +Functions MC_put_o_16_arm, MC_put_o_8_arm, MC_put_x_16_arm, MC_put_x_8_arm +in libmpeg2/motion_comp_arm_s.S have addresses in .text, which is bad +for shared libraries. Some environments demand that .text actually be +read-only all the time, yet MC_put_o_16_arm etc require that the addresses +be modified by the dynamic linking mechanism (dlopen, LoadLibrary, etc.) +Even in those environments which permit the dynamic linker to modify the +.text segment, the runtime cost of doing the relocation can be noticeable. + +This commit rewrites the linkage, discarding the tables of addresses +in favor of tables of offsets. All transfers are local within each individual +function, so there can be no interference by processing that occurs +after assembly, such as link-time re-ordering (even of individual functions.) + +Patch by John Reiser +Signed-off-by: Khem Raj +Upstream-Status: Backport [https://code.videolan.org/videolan/libmpeg2/commit/946bf4b518aacc224f845e73708f99e394744499] +--- + libmpeg2/motion_comp_arm_s.S | 70 +++++++++++++++++------------------- + 1 file changed, 33 insertions(+), 37 deletions(-) + +diff --git a/libmpeg2/motion_comp_arm_s.S b/libmpeg2/motion_comp_arm_s.S +index c921f7c..82143f8 100644 +--- a/libmpeg2/motion_comp_arm_s.S ++++ b/libmpeg2/motion_comp_arm_s.S +@@ -30,9 +30,13 @@ MC_put_o_16_arm: + pld [r1] + stmfd sp!, {r4-r11, lr} @ R14 is also called LR + and r4, r1, #3 +- adr r5, MC_put_o_16_arm_align_jt +- add r5, r5, r4, lsl #2 +- ldr pc, [r5] ++ ldrb r4, [pc, r4] ++ add pc, pc, r4, lsl #2 ++ .byte (MC_put_o_16_arm_align0 - 0f)>>2 ++ .byte (MC_put_o_16_arm_align1 - 0f)>>2 ++ .byte (MC_put_o_16_arm_align2 - 0f)>>2 ++ .byte (MC_put_o_16_arm_align3 - 0f)>>2 ++0: + + MC_put_o_16_arm_align0: + ldmia r1, {r4-r7} +@@ -76,11 +80,6 @@ MC_put_o_16_arm_align3: + 1: PROC(24) + bne 1b + ldmfd sp!, {r4-r11, pc} @@ update PC with LR content. +-MC_put_o_16_arm_align_jt: +- .word MC_put_o_16_arm_align0 +- .word MC_put_o_16_arm_align1 +- .word MC_put_o_16_arm_align2 +- .word MC_put_o_16_arm_align3 + + @ ---------------------------------------------------------------- + .align +@@ -91,9 +90,14 @@ MC_put_o_8_arm: + pld [r1] + stmfd sp!, {r4-r10, lr} @ R14 is also called LR + and r4, r1, #3 +- adr r5, MC_put_o_8_arm_align_jt +- add r5, r5, r4, lsl #2 +- ldr pc, [r5] ++ ldrb r4, [pc, r4] ++ add pc, pc, r4, lsl #2 ++ .byte (MC_put_o_8_arm_align0 - 0f)>>2 ++ .byte (MC_put_o_8_arm_align1 - 0f)>>2 ++ .byte (MC_put_o_8_arm_align2 - 0f)>>2 ++ .byte (MC_put_o_8_arm_align3 - 0f)>>2 ++0: ++ + MC_put_o_8_arm_align0: + ldmia r1, {r4-r5} + add r1, r1, r2 +@@ -135,12 +139,6 @@ MC_put_o_8_arm_align3: + bne 1b + ldmfd sp!, {r4-r10, pc} @@ update PC with LR content. + +-MC_put_o_8_arm_align_jt: +- .word MC_put_o_8_arm_align0 +- .word MC_put_o_8_arm_align1 +- .word MC_put_o_8_arm_align2 +- .word MC_put_o_8_arm_align3 +- + @ ---------------------------------------------------------------- + .macro AVG_PW rW1, rW2 + mov \rW2, \rW2, lsl #24 +@@ -160,12 +158,17 @@ MC_put_x_16_arm: + @@ void func(uint8_t * dest, const uint8_t * ref, int stride, int height) + pld [r1] + stmfd sp!, {r4-r11,lr} @ R14 is also called LR ++ ldr r11, 0f + and r4, r1, #3 +- adr r5, MC_put_x_16_arm_align_jt +- ldr r11, [r5] + mvn r12, r11 +- add r5, r5, r4, lsl #2 +- ldr pc, [r5, #4] ++ ldrb r4, [pc, r4] ++ add pc, pc, r4, lsl #2 ++ .byte (MC_put_x_16_arm_align0 - 0f)>>2 ++ .byte (MC_put_x_16_arm_align1 - 0f)>>2 ++ .byte (MC_put_x_16_arm_align2 - 0f)>>2 ++ .byte (MC_put_x_16_arm_align3 - 0f)>>2 ++0: ++ .word 0x01010101 + + .macro ADJ_ALIGN_QW shift, R0, R1, R2, R3, R4 + mov \R0, \R0, lsr #(\shift) +@@ -238,12 +241,6 @@ MC_put_x_16_arm_align3: + add r0, r0, r2 + bne 1b + ldmfd sp!, {r4-r11,pc} @@ update PC with LR content. +-MC_put_x_16_arm_align_jt: +- .word 0x01010101 +- .word MC_put_x_16_arm_align0 +- .word MC_put_x_16_arm_align1 +- .word MC_put_x_16_arm_align2 +- .word MC_put_x_16_arm_align3 + + @ ---------------------------------------------------------------- + .align +@@ -253,12 +250,17 @@ MC_put_x_8_arm: + @@ void func(uint8_t * dest, const uint8_t * ref, int stride, int height) + pld [r1] + stmfd sp!, {r4-r11,lr} @ R14 is also called LR ++ ldr r11, 0f + and r4, r1, #3 +- adr r5, MC_put_x_8_arm_align_jt +- ldr r11, [r5] + mvn r12, r11 +- add r5, r5, r4, lsl #2 +- ldr pc, [r5, #4] ++ ldrb r4, [pc, r4] ++ add pc, pc, r4, lsl #2 ++ .byte (MC_put_x_8_arm_align0 - 0f)>>2 ++ .byte (MC_put_x_8_arm_align1 - 0f)>>2 ++ .byte (MC_put_x_8_arm_align2 - 0f)>>2 ++ .byte (MC_put_x_8_arm_align3 - 0f)>>2 ++0: ++ .word 0x01010101 + + .macro ADJ_ALIGN_DW shift, R0, R1, R2 + mov \R0, \R0, lsr #(\shift) +@@ -319,9 +321,3 @@ MC_put_x_8_arm_align3: + add r0, r0, r2 + bne 1b + ldmfd sp!, {r4-r11,pc} @@ update PC with LR content. +-MC_put_x_8_arm_align_jt: +- .word 0x01010101 +- .word MC_put_x_8_arm_align0 +- .word MC_put_x_8_arm_align1 +- .word MC_put_x_8_arm_align2 +- .word MC_put_x_8_arm_align3 diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-multimedia/mpeg2dec/mpeg2dec_0.5.1.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-multimedia/mpeg2dec/mpeg2dec_0.5.1.bb index 6b59d4f6..00ca3675 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-multimedia/mpeg2dec/mpeg2dec_0.5.1.bb +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-multimedia/mpeg2dec/mpeg2dec_0.5.1.bb @@ -11,6 +11,7 @@ SRC_URI = "http://libmpeg2.sourceforge.net/files/libmpeg2-${PV}.tar.gz \ file://0001-check-for-available-arm-optimizations.patch \ file://0002-Set-visibility-of-global-symbols-used-in-ARM-specifi.patch \ file://61_global-symbol-test.patch \ + file://0001-Import-revision-1206-from-upstream-to-fix-PIE-build.patch \ " S = "${WORKDIR}/libmpeg2-${PV}" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-multimedia/mpg123/mpg123_1.25.10.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-multimedia/mpg123/mpg123_1.25.10.bb deleted file mode 100644 index dfb10bb1..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-multimedia/mpg123/mpg123_1.25.10.bb +++ /dev/null @@ -1,51 +0,0 @@ -SUMMARY = "Audio decoder for MPEG-1 Layer 1/2/3" -DESCRIPTION = "The core of mpg123 is an MPEG-1 Layer 1/2/3 decoding library, which can be used by other programs. \ -mpg123 also comes with a command-line tool which can playback using ALSA, PulseAudio, OSS, and several other APIs, \ -and also can write the decoded audio to WAV." -HOMEPAGE = "http://mpg123.de/" -BUGTRACKER = "http://sourceforge.net/p/mpg123/bugs/" -SECTION = "multimedia" - -LICENSE = "LGPLv2.1" -LIC_FILES_CHKSUM = "file://COPYING;md5=1e86753638d3cf2512528b99079bc4f3" - -SRC_URI = "https://www.mpg123.de/download/${BP}.tar.bz2 \ - file://sdl2.patch" -SRC_URI[md5sum] = "ea32caa61d41d8be797f0b04a1b43ad9" -SRC_URI[sha256sum] = "6c1337aee2e4bf993299851c70b7db11faec785303cfca3a5c3eb5f329ba7023" - -inherit autotools pkgconfig - -# The options should be mutually exclusive for configuration script. -# If both alsa and pulseaudio are specified (as in the default distro features) -# pulseaudio takes precedence. -PACKAGECONFIG_ALSA = "${@bb.utils.filter('DISTRO_FEATURES', 'alsa', d)}" -PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'pulseaudio', 'pulseaudio', '${PACKAGECONFIG_ALSA}', d)}" - -PACKAGECONFIG[alsa] = "--with-default-audio=alsa,,alsa-lib" -PACKAGECONFIG[esd] = ",,esound" -PACKAGECONFIG[jack] = ",,jack" -PACKAGECONFIG[openal] = ",,openal-soft" -PACKAGECONFIG[portaudio] = ",,portaudio-v19" -PACKAGECONFIG[pulseaudio] = "--with-default-audio=pulse,,pulseaudio" -PACKAGECONFIG[sdl] = ",,libsdl2" - -# Following are possible sound output modules: -# alsa arts coreaudio dummy esd jack nas openal os2 oss portaudio pulse sdl sndio sun tinyalsa win32 win32_wasapi -AUDIOMODS += "${@bb.utils.filter('PACKAGECONFIG', 'alsa esd jack openal portaudio sdl', d)}" -AUDIOMODS += "${@bb.utils.contains('PACKAGECONFIG', 'pulseaudio', 'pulse', '', d)}" - -EXTRA_OECONF = " \ - --enable-shared \ - --with-audio='${AUDIOMODS}' \ - ${@bb.utils.contains('TUNE_FEATURES', 'neon', '--with-cpu=neon', '', d)} \ - ${@bb.utils.contains('TUNE_FEATURES', 'altivec', '--with-cpu=altivec', '', d)} \ -" -# Fails to build with thumb-1 (qemuarm) -#| {standard input}: Assembler messages: -#| {standard input}:47: Error: selected processor does not support Thumb mode `smull r5,r6,r7,r4' -#| {standard input}:48: Error: shifts in CMP/MOV instructions are only supported in unified syntax -- `mov r5,r5,lsr#24' -#... -#| make[3]: *** [equalizer.lo] Error 1 -ARM_INSTRUCTION_SET_armv4 = "arm" -ARM_INSTRUCTION_SET_armv5 = "arm" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-multimedia/mpg123/mpg123_1.25.13.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-multimedia/mpg123/mpg123_1.25.13.bb new file mode 100644 index 00000000..125574fc --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-multimedia/mpg123/mpg123_1.25.13.bb @@ -0,0 +1,51 @@ +SUMMARY = "Audio decoder for MPEG-1 Layer 1/2/3" +DESCRIPTION = "The core of mpg123 is an MPEG-1 Layer 1/2/3 decoding library, which can be used by other programs. \ +mpg123 also comes with a command-line tool which can playback using ALSA, PulseAudio, OSS, and several other APIs, \ +and also can write the decoded audio to WAV." +HOMEPAGE = "http://mpg123.de/" +BUGTRACKER = "http://sourceforge.net/p/mpg123/bugs/" +SECTION = "multimedia" + +LICENSE = "LGPLv2.1" +LIC_FILES_CHKSUM = "file://COPYING;md5=1e86753638d3cf2512528b99079bc4f3" + +SRC_URI = "https://www.mpg123.de/download/${BP}.tar.bz2 \ + file://sdl2.patch" +SRC_URI[md5sum] = "294a6c30546504ec3d0deac2b2ea22be" +SRC_URI[sha256sum] = "90306848359c793fd43b9906e52201df18775742dc3c81c06ab67a806509890a" + +inherit autotools pkgconfig + +# The options should be mutually exclusive for configuration script. +# If both alsa and pulseaudio are specified (as in the default distro features) +# pulseaudio takes precedence. +PACKAGECONFIG_ALSA = "${@bb.utils.filter('DISTRO_FEATURES', 'alsa', d)}" +PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'pulseaudio', 'pulseaudio', '${PACKAGECONFIG_ALSA}', d)}" + +PACKAGECONFIG[alsa] = "--with-default-audio=alsa,,alsa-lib" +PACKAGECONFIG[esd] = ",,esound" +PACKAGECONFIG[jack] = ",,jack" +PACKAGECONFIG[openal] = ",,openal-soft" +PACKAGECONFIG[portaudio] = ",,portaudio-v19" +PACKAGECONFIG[pulseaudio] = "--with-default-audio=pulse,,pulseaudio" +PACKAGECONFIG[sdl] = ",,libsdl2" + +# Following are possible sound output modules: +# alsa arts coreaudio dummy esd jack nas openal os2 oss portaudio pulse sdl sndio sun tinyalsa win32 win32_wasapi +AUDIOMODS += "${@bb.utils.filter('PACKAGECONFIG', 'alsa esd jack openal portaudio sdl', d)}" +AUDIOMODS += "${@bb.utils.contains('PACKAGECONFIG', 'pulseaudio', 'pulse', '', d)}" + +EXTRA_OECONF = " \ + --enable-shared \ + --with-audio='${AUDIOMODS}' \ + ${@bb.utils.contains('TUNE_FEATURES', 'neon', '--with-cpu=neon', '', d)} \ + ${@bb.utils.contains('TUNE_FEATURES', 'altivec', '--with-cpu=altivec', '', d)} \ +" +# Fails to build with thumb-1 (qemuarm) +#| {standard input}: Assembler messages: +#| {standard input}:47: Error: selected processor does not support Thumb mode `smull r5,r6,r7,r4' +#| {standard input}:48: Error: shifts in CMP/MOV instructions are only supported in unified syntax -- `mov r5,r5,lsr#24' +#... +#| make[3]: *** [equalizer.lo] Error 1 +ARM_INSTRUCTION_SET_armv4 = "arm" +ARM_INSTRUCTION_SET_armv5 = "arm" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-multimedia/pulseaudio/pulseaudio.inc b/Contrib-Inspur/openbmc/poky/meta/recipes-multimedia/pulseaudio/pulseaudio.inc index 9a95e7c6..ec51d8b2 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-multimedia/pulseaudio/pulseaudio.inc +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-multimedia/pulseaudio/pulseaudio.inc @@ -61,7 +61,7 @@ DEPENDS = "libatomic-ops libsndfile1 libtool intltool-native" DEPENDS += "udev alsa-lib glib-2.0" DEPENDS += "speexdsp libxml-parser-perl-native libcap" -inherit autotools bash-completion pkgconfig useradd gettext perlnative bluetooth systemd manpages gsettings +inherit autotools bash-completion pkgconfig useradd gettext perlnative systemd manpages gsettings # *.desktop rules wont be generated during configure and build will fail # if using --disable-nls @@ -98,7 +98,7 @@ EXTRA_OECONF += "--without-fftw" # very good anyway, better alternatives exist (such as the webrtc canceller). EXTRA_OECONF += "--disable-adrian-aec" -PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'bluetooth', '${BLUEZ}', '', d)} \ +PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'bluetooth', 'bluez5', '', d)} \ ${@bb.utils.contains('DISTRO_FEATURES', 'zeroconf', 'avahi', '', d)} \ ${@bb.utils.contains('DISTRO_FEATURES', '3g', 'ofono', '', d)} \ ${@bb.utils.filter('DISTRO_FEATURES', 'ipv6 systemd x11', d)} \ @@ -106,7 +106,6 @@ PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'bluetooth', '${BLUEZ " PACKAGECONFIG[dbus] = "--enable-dbus,--disable-dbus,dbus" -PACKAGECONFIG[bluez4] = "--enable-bluez4,--disable-bluez4,bluez4 sbc" PACKAGECONFIG[bluez5] = "--enable-bluez5,--disable-bluez5,bluez5 sbc" PACKAGECONFIG[gconf] = "--enable-gconf,--disable-gconf,gconf" PACKAGECONFIG[gsettings] = "--enable-gsettings,--disable-gsettings,glib-2.0-native glib-2.0" @@ -260,9 +259,12 @@ FILES_${PN}-module-gsettings += "${libexecdir}/pulse/gsettings-helper ${datadir} # modules must be installed when X11 is enabled. RDEPENDS_pulseaudio-server += "\ ${@bb.utils.contains('DISTRO_FEATURES', 'x11', '\ - pulseaudio-module-console-kit \ pulseaudio-module-device-manager \ pulseaudio-module-x11-cork-request \ pulseaudio-module-x11-publish \ pulseaudio-module-x11-xsmp \ ', '', d)}" + +RDEPENDS_pulseaudio-server += "${@bb.utils.contains('DISTRO_FEATURES', 'x11', \ + bb.utils.contains('DISTRO_FEATURES', 'systemd', 'pulseaudio-module-systemd-login', 'pulseaudio-module-console-kit', d), \ + '', d)}" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-multimedia/pulseaudio/pulseaudio/0001-alsa-Fix-inclusion-of-use-case.h.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-multimedia/pulseaudio/pulseaudio/0001-alsa-Fix-inclusion-of-use-case.h.patch new file mode 100644 index 00000000..15026a2f --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-multimedia/pulseaudio/pulseaudio/0001-alsa-Fix-inclusion-of-use-case.h.patch @@ -0,0 +1,46 @@ +From b89d33bb182c42db5ad3987b0e91b7bf62f421e8 Mon Sep 17 00:00:00 2001 +From: Takashi Iwai +Date: Sun, 21 Apr 2019 11:59:30 +0200 +Subject: [PATCH] alsa: Fix inclusion of use-case.h + +The recent change in ALSA upstream stripped -I$include/alsa path from +pkgconfig. We already fixed for this change in some places but still +the code for UCM was overlooked, and this resulted in the unresolved +symbols in alsa card module. Fix them as well. + +Signed-off-by: Takashi Iwai +Upstream-Status: Backport +--- + configure.ac | 2 +- + src/modules/alsa/alsa-ucm.h | 2 +- + 2 files changed, 2 insertions(+), 2 deletions(-) + +diff --git a/configure.ac b/configure.ac +index c004bd70d..b44ed1595 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -826,7 +826,7 @@ AS_IF([test "x$enable_alsa" = "xyes" && test "x$HAVE_ALSA" = "x0"], + AS_IF([test "x$HAVE_ALSA" = "x1"], + [ + save_CPPFLAGS="$CPPFLAGS"; CPPFLAGS="$CPPFLAGS $ASOUNDLIB_CFLAGS" +- AC_CHECK_HEADERS([use-case.h], HAVE_ALSA_UCM=1, HAVE_ALSA_UCM=0) ++ AC_CHECK_HEADERS([alsa/use-case.h], HAVE_ALSA_UCM=1, HAVE_ALSA_UCM=0) + CPPFLAGS="$save_CPPFLAGS" + ], + HAVE_ALSA_UCM=0) +diff --git a/src/modules/alsa/alsa-ucm.h b/src/modules/alsa/alsa-ucm.h +index 53abf3f90..c926f3cc3 100644 +--- a/src/modules/alsa/alsa-ucm.h ++++ b/src/modules/alsa/alsa-ucm.h +@@ -23,7 +23,7 @@ + ***/ + + #ifdef HAVE_ALSA_UCM +-#include ++#include + #else + typedef void snd_use_case_mgr_t; + #endif +-- +2.21.0 + diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-multimedia/pulseaudio/pulseaudio_12.2.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-multimedia/pulseaudio/pulseaudio_12.2.bb index c020fbd4..88b4975a 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-multimedia/pulseaudio/pulseaudio_12.2.bb +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-multimedia/pulseaudio/pulseaudio_12.2.bb @@ -3,6 +3,7 @@ require pulseaudio.inc SRC_URI = "http://freedesktop.org/software/pulseaudio/releases/${BP}.tar.xz \ file://0001-client-conf-Add-allow-autospawn-for-root.patch \ file://0001-introduce-a-special-build-flag-to-explicitly-disable.patch \ + file://0001-alsa-Fix-inclusion-of-use-case.h.patch \ file://0002-do-not-display-CLFAGS-to-improve-reproducibility-bui.patch \ file://volatiles.04_pulse \ " diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-multimedia/speex/speex_1.2.0.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-multimedia/speex/speex_1.2.0.bb index 19636bb2..3a0911d6 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-multimedia/speex/speex_1.2.0.bb +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-multimedia/speex/speex_1.2.0.bb @@ -2,7 +2,7 @@ SUMMARY = "Speech Audio Codec" DESCRIPTION = "Speex is an Open Source/Free Software patent-free audio compression format designed for speech." HOMEPAGE = "http://www.speex.org" SECTION = "libs" -LICENSE = "BSD" +LICENSE = "BSD-3-Clause" LIC_FILES_CHKSUM = "file://COPYING;md5=314649d8ba9dd7045dfb6683f298d0a8 \ file://include/speex/speex.h;beginline=1;endline=34;md5=ef8c8ea4f7198d71cf3509c6ed05ea50" DEPENDS = "libogg speexdsp" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-multimedia/speex/speexdsp_1.2rc3.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-multimedia/speex/speexdsp_1.2rc3.bb index 6b1acedb..03c949be 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-multimedia/speex/speexdsp_1.2rc3.bb +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-multimedia/speex/speexdsp_1.2rc3.bb @@ -2,7 +2,7 @@ SUMMARY = "A patent-free DSP library" DESCRIPTION = "SpeexDSP is a patent-free, Open Source/Free Software DSP library." HOMEPAGE = "http://www.speex.org" SECTION = "libs" -LICENSE = "BSD" +LICENSE = "BSD-3-Clause" LIC_FILES_CHKSUM = "file://COPYING;md5=314649d8ba9dd7045dfb6683f298d0a8" SRC_URI = "http://downloads.xiph.org/releases/speex/speexdsp-${PV}.tar.gz \ diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-multimedia/webp/libwebp_1.0.2.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-multimedia/webp/libwebp_1.0.2.bb deleted file mode 100644 index 8b3ffe02..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-multimedia/webp/libwebp_1.0.2.bb +++ /dev/null @@ -1,53 +0,0 @@ -SUMMARY = "WebP is an image format designed for the Web" -DESCRIPTION = "WebP is a method of lossy and lossless compression that can be \ - used on a large variety of photographic, translucent and \ - graphical images found on the web. The degree of lossy \ - compression is adjustable so a user can choose the trade-off \ - between file size and image quality. WebP typically achieves \ - an average of 30% more compression than JPEG and JPEG 2000, \ - without loss of image quality." -HOMEPAGE = "https://developers.google.com/speed/webp/" -SECTION = "libs" - -LICENSE = "BSD" -LIC_FILES_CHKSUM = "file://COPYING;md5=6e8dee932c26f2dab503abf70c96d8bb \ - file://PATENTS;md5=c6926d0cb07d296f886ab6e0cc5a85b7" - -SRC_URI = "http://downloads.webmproject.org/releases/webp/${BP}.tar.gz" -SRC_URI[md5sum] = "02c0c55f1dd8612cd4d462e3409ad35d" -SRC_URI[sha256sum] = "3d47b48c40ed6476e8047b2ddb81d93835e0ca1b8d3e8c679afbb3004dd564b1" - -UPSTREAM_CHECK_URI = "http://downloads.webmproject.org/releases/webp/index.html" - -EXTRA_OECONF = " \ - --disable-wic \ - --enable-libwebpmux \ - --enable-libwebpdemux \ - --enable-threading \ -" -# Do not trust configure to determine if neon is available. -# -EXTRA_OECONF_append_arm = " \ - ${@bb.utils.contains("TUNE_FEATURES","neon","--enable-neon","--disable-neon",d)} \ -" - -inherit autotools lib_package - -PACKAGECONFIG ??= "" - -# libwebpdecoder is a subset of libwebp, don't build it unless requested -PACKAGECONFIG[decoder] = "--enable-libwebpdecoder,--disable-libwebpdecoder" - -# Apply for examples programs: cwebp and dwebp -PACKAGECONFIG[gif] = "--enable-gif,--disable-gif,giflib" -PACKAGECONFIG[jpeg] = "--enable-jpeg,--disable-jpeg,jpeg" -PACKAGECONFIG[png] = "--enable-png,--disable-png,,libpng" -PACKAGECONFIG[tiff] = "--enable-tiff,--disable-tiff,tiff" - -# Apply only for example program vwebp -PACKAGECONFIG[gl] = "--enable-gl,--disable-gl,mesa-glut" - -PACKAGES =+ "${PN}-gif2webp" - -DESCRIPTION_${PN}-gif2webp = "Simple tool to convert animated GIFs to WebP" -FILES_${PN}-gif2webp = "${bindir}/gif2webp" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-multimedia/webp/libwebp_1.0.3.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-multimedia/webp/libwebp_1.0.3.bb new file mode 100644 index 00000000..5082bf03 --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-multimedia/webp/libwebp_1.0.3.bb @@ -0,0 +1,56 @@ +SUMMARY = "WebP is an image format designed for the Web" +DESCRIPTION = "WebP is a method of lossy and lossless compression that can be \ + used on a large variety of photographic, translucent and \ + graphical images found on the web. The degree of lossy \ + compression is adjustable so a user can choose the trade-off \ + between file size and image quality. WebP typically achieves \ + an average of 30% more compression than JPEG and JPEG 2000, \ + without loss of image quality." +HOMEPAGE = "https://developers.google.com/speed/webp/" +SECTION = "libs" + +LICENSE = "BSD-3-Clause" +LIC_FILES_CHKSUM = "file://COPYING;md5=6e8dee932c26f2dab503abf70c96d8bb \ + file://PATENTS;md5=c6926d0cb07d296f886ab6e0cc5a85b7" + +SRC_URI = "http://downloads.webmproject.org/releases/webp/${BP}.tar.gz" +SRC_URI[md5sum] = "906ad85daaaa2eac97c8aa2dec9e8b77" +SRC_URI[sha256sum] = "e20a07865c8697bba00aebccc6f54912d6bc333bb4d604e6b07491c1a226b34f" + +UPSTREAM_CHECK_URI = "http://downloads.webmproject.org/releases/webp/index.html" + +EXTRA_OECONF = " \ + --disable-wic \ + --enable-libwebpmux \ + --enable-libwebpdemux \ + --enable-threading \ +" + +# Do not trust configure to determine if neon is available. +# +EXTRA_OECONF_ARM = " \ + ${@bb.utils.contains("TUNE_FEATURES","neon","--enable-neon","--disable-neon",d)} \ +" +EXTRA_OECONF_append_arm = " ${EXTRA_OECONF_ARM}" +EXTRA_OECONF_append_armeb = " ${EXTRA_OECONF_ARM}" + +inherit autotools lib_package + +PACKAGECONFIG ??= "" + +# libwebpdecoder is a subset of libwebp, don't build it unless requested +PACKAGECONFIG[decoder] = "--enable-libwebpdecoder,--disable-libwebpdecoder" + +# Apply for examples programs: cwebp and dwebp +PACKAGECONFIG[gif] = "--enable-gif,--disable-gif,giflib" +PACKAGECONFIG[jpeg] = "--enable-jpeg,--disable-jpeg,jpeg" +PACKAGECONFIG[png] = "--enable-png,--disable-png,,libpng" +PACKAGECONFIG[tiff] = "--enable-tiff,--disable-tiff,tiff" + +# Apply only for example program vwebp +PACKAGECONFIG[gl] = "--enable-gl,--disable-gl,mesa-glut" + +PACKAGES =+ "${PN}-gif2webp" + +DESCRIPTION_${PN}-gif2webp = "Simple tool to convert animated GIFs to WebP" +FILES_${PN}-gif2webp = "${bindir}/gif2webp" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-rt/rt-tests/files/rt_bmark.py b/Contrib-Inspur/openbmc/poky/meta/recipes-rt/rt-tests/files/rt_bmark.py index 080a6558..57b39b52 100755 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-rt/rt-tests/files/rt_bmark.py +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-rt/rt-tests/files/rt_bmark.py @@ -130,7 +130,7 @@ def log_test_header(seq_no, nr_of_tests, name): #------------------------------------------------------------------------------- def start_stress(*args): - stress_cmd = [ "stress" ] + stress_cmd = [ "stress-ng" ] added_stress_types = [] req_stress_types = set(args) cpu_cnt = str(multiprocessing.cpu_count()) diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-rt/rt-tests/rt-tests.inc b/Contrib-Inspur/openbmc/poky/meta/recipes-rt/rt-tests/rt-tests.inc index f87952e0..227eb99b 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-rt/rt-tests/rt-tests.inc +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-rt/rt-tests/rt-tests.inc @@ -3,8 +3,8 @@ SRCREV = "dff174f994f547a5785d32454865f140daacb0f5" PE = "1" SRC_URI = "git://git.kernel.org/pub/scm/utils/rt-tests/rt-tests.git" -# 1.2 and 1.3 seem to be development versions -UPSTREAM_CHECK_GITTAGREGEX = "v(?P(?!1\.2)(?!1\.3)(\d+(\.\d+)+))" +# 1.2 to 1.5 seem to be development versions +UPSTREAM_CHECK_GITTAGREGEX = "v(?P(?!1\.[2-5])(\d+(\.\d+)+))" S = "${WORKDIR}/git" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-rt/rt-tests/rt-tests_1.1.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-rt/rt-tests/rt-tests_1.1.bb index 496f04fd..5aa0aa10 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-rt/rt-tests/rt-tests_1.1.bb +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-rt/rt-tests/rt-tests_1.1.bb @@ -14,6 +14,10 @@ SRC_URI += " \ file://run-ptest \ file://rt_bmark.py \ " + +# rt-tests needs PI mutex support in libc +COMPATIBLE_HOST_libc-musl = 'null' + # Do not install hwlatdetect EXTRA_OEMAKE += "PYLIB=''" @@ -26,6 +30,6 @@ do_install_ptest() { cp ${WORKDIR}/rt_bmark.py ${D}${PTEST_PATH} } -RDEPENDS_${PN}-ptest += " stress python3 python3-multiprocessing python3-datetime python3-misc" +RDEPENDS_${PN}-ptest += " stress-ng python3 python3-multiprocessing python3-datetime python3-misc" FILES_${PN} += "${prefix}/src/backfire" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-sato/images/core-image-sato-sdk-ptest.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-sato/images/core-image-sato-sdk-ptest.bb index e84beda6..ff297fe3 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-sato/images/core-image-sato-sdk-ptest.bb +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-sato/images/core-image-sato-sdk-ptest.bb @@ -12,10 +12,10 @@ IMAGE_INSTALL += "${PTESTS_FAST} ${PTESTS_SLOW}" # This image is sufficiently large (~1.8GB) that we need to be careful that it fits in a live # image (which has a 4GB limit), so nullify the overhead factor (1.3x out of the -# box) and explicitly add just 1200MB. +# box) and explicitly add just 1100MB. # strace-ptest in particular needs more than 500MB IMAGE_OVERHEAD_FACTOR = "1.0" -IMAGE_ROOTFS_EXTRA_SPACE = "1224288" +IMAGE_ROOTFS_EXTRA_SPACE = "1124288" # ptests need more memory than standard to avoid the OOM killer QB_MEM = "-m 1024" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-sato/images/core-image-sato.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-sato/images/core-image-sato.bb index b8979502..673106eb 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-sato/images/core-image-sato.bb +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-sato/images/core-image-sato.bb @@ -10,3 +10,6 @@ inherit core-image TOOLCHAIN_HOST_TASK_append = " nativesdk-intltool nativesdk-glib-2.0" TOOLCHAIN_HOST_TASK_remove_task-populate-sdk-ext = " nativesdk-intltool nativesdk-glib-2.0" + +QB_MEM = '${@bb.utils.contains("DISTRO_FEATURES", "opengl", "-m 512", "-m 256", d)}' +QB_MEM_qemumips = "-m 256" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-sato/l3afpad/l3afpad_git.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-sato/l3afpad/l3afpad_git.bb index ccfda265..8906c748 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-sato/l3afpad/l3afpad_git.bb +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-sato/l3afpad/l3afpad_git.bb @@ -17,7 +17,7 @@ SRCREV ="3cdccdc9505643e50f8208171d9eee5de11a42ff" S = "${WORKDIR}/git" -inherit autotools pkgconfig distro_features_check +inherit autotools pkgconfig features_check ANY_OF_DISTRO_FEATURES = "${GTK3DISTROFEATURES}" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-sato/matchbox-config-gtk/matchbox-config-gtk_0.2.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-sato/matchbox-config-gtk/matchbox-config-gtk_0.2.bb index b993a945..547e851c 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-sato/matchbox-config-gtk/matchbox-config-gtk_0.2.bb +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-sato/matchbox-config-gtk/matchbox-config-gtk_0.2.bb @@ -17,7 +17,7 @@ UPSTREAM_CHECK_GITTAGREGEX = "(?P(\d+(\.\d+)+))" S = "${WORKDIR}/git" -inherit autotools pkgconfig distro_features_check +inherit autotools pkgconfig features_check # The settings-daemon requires x11 in DISTRO_FEATURES REQUIRED_DISTRO_FEATURES = "x11" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-sato/matchbox-desktop/matchbox-desktop_2.2.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-sato/matchbox-desktop/matchbox-desktop_2.2.bb index b0cdfa2a..5c23e852 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-sato/matchbox-desktop/matchbox-desktop_2.2.bb +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-sato/matchbox-desktop/matchbox-desktop_2.2.bb @@ -20,7 +20,7 @@ EXTRA_OECONF = "--enable-startup-notification --with-dbus" S = "${WORKDIR}/git" -inherit autotools pkgconfig distro_features_check +inherit autotools pkgconfig features_check # The startup-notification requires x11 in DISTRO_FEATURES REQUIRED_DISTRO_FEATURES = "x11" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-sato/matchbox-keyboard/matchbox-keyboard_0.1.1.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-sato/matchbox-keyboard/matchbox-keyboard_0.1.1.bb index 465f1349..dfc7fbad 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-sato/matchbox-keyboard/matchbox-keyboard_0.1.1.bb +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-sato/matchbox-keyboard/matchbox-keyboard_0.1.1.bb @@ -18,7 +18,7 @@ SRC_URI = "git://git.yoctoproject.org/${BPN};branch=matchbox-keyboard-0-1 \ S = "${WORKDIR}/git" -inherit autotools pkgconfig gettext gtk-immodules-cache distro_features_check +inherit autotools pkgconfig gettext gtk-immodules-cache features_check # The libxft, libfakekey and matchbox-panel-2 requires x11 in DISTRO_FEATURES REQUIRED_DISTRO_FEATURES = "x11" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-sato/matchbox-panel-2/matchbox-panel-2_2.11.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-sato/matchbox-panel-2/matchbox-panel-2_2.11.bb index 421740f9..2e6f5b70 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-sato/matchbox-panel-2/matchbox-panel-2_2.11.bb +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-sato/matchbox-panel-2/matchbox-panel-2_2.11.bb @@ -37,4 +37,4 @@ FILES_${PN} += "${libdir}/matchbox-panel/*.so \ ${datadir}/icons/" FILES_${PN}-dev += "${libdir}/matchbox-panel/*.la" -inherit autotools pkgconfig distro_features_check gettext +inherit autotools pkgconfig features_check gettext diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-sato/matchbox-sato/matchbox-session-sato_0.1.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-sato/matchbox-sato/matchbox-session-sato_0.1.bb index 8230e951..966c5b5b 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-sato/matchbox-sato/matchbox-session-sato_0.1.bb +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-sato/matchbox-sato/matchbox-session-sato_0.1.bb @@ -13,7 +13,7 @@ PR = "r30" # based on the machine architecture. PACKAGE_ARCH = "${MACHINE_ARCH}" -inherit distro_features_check +inherit features_check # The matchbox-theme-sato requires x11 in DISTRO_FEATURES REQUIRED_DISTRO_FEATURES = "x11" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-sato/matchbox-terminal/matchbox-terminal_0.2.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-sato/matchbox-terminal/matchbox-terminal_0.2.bb index 7f5eda30..9f00281d 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-sato/matchbox-terminal/matchbox-terminal_0.2.bb +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-sato/matchbox-terminal/matchbox-terminal_0.2.bb @@ -16,6 +16,6 @@ UPSTREAM_CHECK_GITTAGREGEX = "(?P(\d+(\.\d+)+))" S = "${WORKDIR}/git" -inherit autotools pkgconfig distro_features_check +inherit autotools pkgconfig features_check ANY_OF_DISTRO_FEATURES = "${GTK3DISTROFEATURES}" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-sato/matchbox-theme-sato/matchbox-theme-sato.inc b/Contrib-Inspur/openbmc/poky/meta/recipes-sato/matchbox-theme-sato/matchbox-theme-sato.inc index d947e1ab..ce683e96 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-sato/matchbox-theme-sato/matchbox-theme-sato.inc +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-sato/matchbox-theme-sato/matchbox-theme-sato.inc @@ -8,7 +8,7 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=aae86bb34b0a83716ca09f4e783d6ba4" DEPENDS = "matchbox-wm" SECTION = "x11/wm" -inherit autotools pkgconfig distro_features_check +inherit autotools pkgconfig features_check FILES_${PN} += "${datadir}/themes" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-sato/packagegroups/packagegroup-core-x11-sato.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-sato/packagegroups/packagegroup-core-x11-sato.bb index 7e14ece9..ed3f1a69 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-sato/packagegroups/packagegroup-core-x11-sato.bb +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-sato/packagegroups/packagegroup-core-x11-sato.bb @@ -7,7 +7,7 @@ PR = "r33" PACKAGE_ARCH = "${MACHINE_ARCH}" -inherit packagegroup distro_features_check +inherit packagegroup features_check REQUIRED_DISTRO_FEATURES = "x11" PACKAGES = "${PN} ${PN}-base ${PN}-apps ${PN}-games" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-sato/pcmanfm/pcmanfm_1.3.1.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-sato/pcmanfm/pcmanfm_1.3.1.bb index a5e3a1ad..c88e1ed8 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-sato/pcmanfm/pcmanfm_1.3.1.bb +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-sato/pcmanfm/pcmanfm_1.3.1.bb @@ -21,7 +21,7 @@ SRC_URI[sha256sum] = "6804043b3ee3a703edde41c724946174b505fe958703eadbd7e0876ece UPSTREAM_CHECK_URI = "http://sourceforge.net/projects/pcmanfm/files/PCManFM%20%2B%20Libfm%20%28tarball%20release%29/PCManFM/" -inherit autotools pkgconfig distro_features_check +inherit autotools pkgconfig features_check # The startup-notification requires x11 in DISTRO_FEATURES REQUIRED_DISTRO_FEATURES = "x11" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-sato/puzzles/puzzles_git.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-sato/puzzles/puzzles_git.bb index 59b95252..5ee9164b 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-sato/puzzles/puzzles_git.bb +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-sato/puzzles/puzzles_git.bb @@ -24,7 +24,7 @@ PV = "0.0+git${SRCPV}" S = "${WORKDIR}/git" -inherit autotools distro_features_check pkgconfig +inherit autotools features_check pkgconfig PACKAGECONFIG ??= "gtk3" PACKAGECONFIG[gtk2] = "--with-gtk=2,,gtk+," diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-sato/sato-screenshot/sato-screenshot_0.3.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-sato/sato-screenshot/sato-screenshot_0.3.bb index f3305aef..f6dac2cf 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-sato/sato-screenshot/sato-screenshot_0.3.bb +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-sato/sato-screenshot/sato-screenshot_0.3.bb @@ -16,7 +16,7 @@ UPSTREAM_CHECK_GITTAGREGEX = "(?P(\d+(\.\d+)+))" S = "${WORKDIR}/git" -inherit autotools pkgconfig distro_features_check +inherit autotools pkgconfig features_check FILES_${PN} += "${libdir}/matchbox-panel/*.so" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-sato/settings-daemon/settings-daemon_0.0.2.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-sato/settings-daemon/settings-daemon_0.0.2.bb index bb6b69b9..227fd54b 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-sato/settings-daemon/settings-daemon_0.0.2.bb +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-sato/settings-daemon/settings-daemon_0.0.2.bb @@ -17,7 +17,7 @@ UPSTREAM_CHECK_GITTAGREGEX = "(?P(\d+(\.\d+)+))" S = "${WORKDIR}/git" -inherit autotools pkgconfig gconf distro_features_check +inherit autotools pkgconfig gconf features_check FILES_${PN} = "${bindir}/* ${sysconfdir}" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-sato/webkit/webkitgtk/0001-Tweak-gtkdoc-settings-so-that-gtkdoc-generation-work.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-sato/webkit/webkitgtk/0001-Tweak-gtkdoc-settings-so-that-gtkdoc-generation-work.patch index 664cea9c..e7c668c0 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-sato/webkit/webkitgtk/0001-Tweak-gtkdoc-settings-so-that-gtkdoc-generation-work.patch +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-sato/webkit/webkitgtk/0001-Tweak-gtkdoc-settings-so-that-gtkdoc-generation-work.patch @@ -1,4 +1,4 @@ -From d3796ad1a19233ee5d3492a5560d7ede882f89cf Mon Sep 17 00:00:00 2001 +From 4b5e02212a31b82fc9b3becad90542274816fc29 Mon Sep 17 00:00:00 2001 From: Alexander Kanavin Date: Thu, 11 Aug 2016 17:13:51 +0300 Subject: [PATCH] Tweak gtkdoc settings so that gtkdoc generation works under @@ -17,23 +17,23 @@ Signed-off-by: Alexander Kanavin 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Source/cmake/GtkDoc.cmake b/Source/cmake/GtkDoc.cmake -index 2ee05550..6cb6313d 100644 +index b0fb31ca..6cb6313d 100644 --- a/Source/cmake/GtkDoc.cmake +++ b/Source/cmake/GtkDoc.cmake @@ -4,7 +4,7 @@ macro(ADD_GTKDOC_GENERATOR _stamp_name _extra_args) add_custom_command( OUTPUT "${CMAKE_BINARY_DIR}/${_stamp_name}" DEPENDS ${DocumentationDependencies} -- COMMAND ${CMAKE_COMMAND} -E env "CC=${CMAKE_C_COMPILER}" "CFLAGS=${CMAKE_C_FLAGS} -Wno-unused-parameter" ${CMAKE_SOURCE_DIR}/Tools/gtkdoc/generate-gtkdoc ${_extra_args} +- COMMAND ${CMAKE_COMMAND} -E env "CC=${CMAKE_C_COMPILER}" "CFLAGS=${CMAKE_C_FLAGS} -Wno-unused-parameter" "LDFLAGS=${CMAKE_EXE_LINKER_FLAGS}" ${CMAKE_SOURCE_DIR}/Tools/gtkdoc/generate-gtkdoc ${_extra_args} + COMMAND ${CMAKE_COMMAND} -E env "CC=${CMAKE_C_COMPILER}" "CFLAGS=${CMAKE_C_FLAGS} -Wno-unused-parameter" "LD=${CMAKE_C_COMPILER}" "LDFLAGS=${CMAKE_C_LINK_FLAGS}" "RUN=${CMAKE_BINARY_DIR}/gtkdoc-qemuwrapper" ${CMAKE_SOURCE_DIR}/Tools/gtkdoc/generate-gtkdoc ${_extra_args} COMMAND touch ${_stamp_name} WORKING_DIRECTORY "${CMAKE_BINARY_DIR}" VERBATIM diff --git a/Tools/gtkdoc/gtkdoc.py b/Tools/gtkdoc/gtkdoc.py -index 81ee8cdc..3e11c2f0 100644 +index 054cafa1..416de7d1 100644 --- a/Tools/gtkdoc/gtkdoc.py +++ b/Tools/gtkdoc/gtkdoc.py -@@ -317,9 +317,9 @@ class GTKDoc(object): +@@ -320,9 +320,9 @@ class GTKDoc(object): additional_ldflags = '%s %s' % (additional_ldflags, arg) ldflags = ' "-L%s" %s ' % (self.library_path, additional_ldflags) + ldflags current_ld_library_path = env.get('LD_LIBRARY_PATH') diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-sato/webkit/webkitgtk/0001-WebKitMacros-Append-to-I-and-not-to-isystem.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-sato/webkit/webkitgtk/0001-WebKitMacros-Append-to-I-and-not-to-isystem.patch deleted file mode 100644 index e71905d2..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-sato/webkit/webkitgtk/0001-WebKitMacros-Append-to-I-and-not-to-isystem.patch +++ /dev/null @@ -1,125 +0,0 @@ -From d1634e56a2589ec62325011bf77d480a67123b52 Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Sun, 17 Apr 2016 12:35:41 -0700 -Subject: [PATCH] WebKitMacros: Append to -I and not to -isystem - -gcc-6 has now introduced stdlib.h in libstdc++ for better -compliance and its including the C library stdlib.h using -include_next which is sensitive to order of system header -include paths. Its infact better to not tinker with the -system header include paths at all. Since adding /usr/include -to -system is redundant and compiler knows about it moreover -now with gcc6 it interferes with compiler's functioning -and ends up with compile errors e.g. - -/usr/include/c++/6.0.0/cstdlib:75:25: fatal error: stdlib.h: No such file or directory - -Signed-off-by: Khem Raj - -Upstream-Status: Pending - ---- - Source/JavaScriptCore/shell/CMakeLists.txt | 2 +- - Source/WebCore/PlatformGTK.cmake | 6 +++--- - Source/WebKit/PlatformGTK.cmake | 2 +- - Source/cmake/WebKitMacros.cmake | 2 +- - Tools/MiniBrowser/gtk/CMakeLists.txt | 2 +- - Tools/TestWebKitAPI/PlatformGTK.cmake | 2 +- - 6 files changed, 8 insertions(+), 8 deletions(-) - -diff --git a/Source/JavaScriptCore/shell/CMakeLists.txt b/Source/JavaScriptCore/shell/CMakeLists.txt -index 87153e35..cd0beed4 100644 ---- a/Source/JavaScriptCore/shell/CMakeLists.txt -+++ b/Source/JavaScriptCore/shell/CMakeLists.txt -@@ -36,7 +36,7 @@ WEBKIT_INCLUDE_CONFIG_FILES_IF_EXISTS() - WEBKIT_WRAP_SOURCELIST(${JSC_SOURCES}) - WEBKIT_WRAP_SOURCELIST(${TESTAPI_SOURCES}) - include_directories(./ ${JavaScriptCore_INCLUDE_DIRECTORIES} ${JavaScriptCore_PRIVATE_INCLUDE_DIRECTORIES}) --include_directories(SYSTEM ${JavaScriptCore_SYSTEM_INCLUDE_DIRECTORIES}) -+include_directories(${JavaScriptCore_SYSTEM_INCLUDE_DIRECTORIES}) - add_executable(jsc ${JSC_SOURCES}) - target_link_libraries(jsc ${JSC_LIBRARIES}) - -diff --git a/Source/WebCore/PlatformGTK.cmake b/Source/WebCore/PlatformGTK.cmake -index e0dd9cd9..a2997f3e 100644 ---- a/Source/WebCore/PlatformGTK.cmake -+++ b/Source/WebCore/PlatformGTK.cmake -@@ -164,7 +164,7 @@ if (ENABLE_PLUGIN_PROCESS_GTK2) - target_include_directories(WebCorePlatformGTK2 PRIVATE - ${WebCore_INCLUDE_DIRECTORIES} - ) -- target_include_directories(WebCorePlatformGTK2 SYSTEM PRIVATE -+ target_include_directories(WebCorePlatformGTK2 PRIVATE - ${WebCore_SYSTEM_INCLUDE_DIRECTORIES} - ${GTK2_INCLUDE_DIRS} - ${GDK2_INCLUDE_DIRS} -@@ -190,7 +190,7 @@ add_dependencies(WebCorePlatformGTK WebCore) - target_include_directories(WebCorePlatformGTK PRIVATE - ${WebCore_INCLUDE_DIRECTORIES} - ) --target_include_directories(WebCorePlatformGTK SYSTEM PRIVATE -+target_include_directories(WebCorePlatformGTK PRIVATE - ${WebCore_SYSTEM_INCLUDE_DIRECTORIES} - ${GTK_INCLUDE_DIRS} - ${GDK_INCLUDE_DIRS} -@@ -206,7 +206,7 @@ include_directories( - "${WEBCORE_DIR}/bindings/gobject/" - ) - --include_directories(SYSTEM -+include_directories( - ${WebCore_SYSTEM_INCLUDE_DIRECTORIES} - ) - -diff --git a/Source/WebKit/PlatformGTK.cmake b/Source/WebKit/PlatformGTK.cmake -index 693bbdfe..20e3802f 100644 ---- a/Source/WebKit/PlatformGTK.cmake -+++ b/Source/WebKit/PlatformGTK.cmake -@@ -664,7 +664,7 @@ if (ENABLE_PLUGIN_PROCESS_GTK2) - target_include_directories(WebKitPluginProcess2 PRIVATE - ${WebKitCommonIncludeDirectories} - ) -- target_include_directories(WebKitPluginProcess2 SYSTEM PRIVATE -+ target_include_directories(WebKitPluginProcess2 PRIVATE - ${WebKitCommonSystemIncludeDirectories} - ${GTK2_INCLUDE_DIRS} - ${GDK2_INCLUDE_DIRS} -diff --git a/Source/cmake/WebKitMacros.cmake b/Source/cmake/WebKitMacros.cmake -index 6d58d57e..976e2362 100644 ---- a/Source/cmake/WebKitMacros.cmake -+++ b/Source/cmake/WebKitMacros.cmake -@@ -152,7 +152,7 @@ macro(WEBKIT_FRAMEWORK _target) - ${${_target}_SOURCES} - ) - target_include_directories(${_target} PUBLIC "$") -- target_include_directories(${_target} SYSTEM PRIVATE "$") -+ target_include_directories(${_target} PRIVATE "$") - target_include_directories(${_target} PRIVATE "$") - target_link_libraries(${_target} ${${_target}_LIBRARIES}) - set_target_properties(${_target} PROPERTIES COMPILE_DEFINITIONS "BUILDING_${_target}") -diff --git a/Tools/MiniBrowser/gtk/CMakeLists.txt b/Tools/MiniBrowser/gtk/CMakeLists.txt -index a0d32059..f259ade2 100644 ---- a/Tools/MiniBrowser/gtk/CMakeLists.txt -+++ b/Tools/MiniBrowser/gtk/CMakeLists.txt -@@ -59,7 +59,7 @@ endif () - add_definitions(-DGDK_VERSION_MIN_REQUIRED=GDK_VERSION_3_6) - - include_directories(${MiniBrowser_INCLUDE_DIRECTORIES}) --include_directories(SYSTEM ${MiniBrowser_SYSTEM_INCLUDE_DIRECTORIES}) -+include_directories(${MiniBrowser_SYSTEM_INCLUDE_DIRECTORIES}) - add_executable(MiniBrowser ${MiniBrowser_SOURCES}) - target_link_libraries(MiniBrowser ${MiniBrowser_LIBRARIES}) - -diff --git a/Tools/TestWebKitAPI/PlatformGTK.cmake b/Tools/TestWebKitAPI/PlatformGTK.cmake -index 8dd0e146..d037fc35 100644 ---- a/Tools/TestWebKitAPI/PlatformGTK.cmake -+++ b/Tools/TestWebKitAPI/PlatformGTK.cmake -@@ -22,7 +22,7 @@ include_directories( - ${WEBKIT_DIR}/UIProcess/API/gtk - ) - --include_directories(SYSTEM -+include_directories( - ${GDK3_INCLUDE_DIRS} - ${GLIB_INCLUDE_DIRS} - ${GSTREAMER_INCLUDE_DIRS} diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-sato/webkit/webkitgtk/0001-gstreamer-add-a-missing-format-string.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-sato/webkit/webkitgtk/0001-gstreamer-add-a-missing-format-string.patch deleted file mode 100644 index bd4ac1e3..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-sato/webkit/webkitgtk/0001-gstreamer-add-a-missing-format-string.patch +++ /dev/null @@ -1,24 +0,0 @@ -From 2d9687840b97186b80053dd262209e39455ac876 Mon Sep 17 00:00:00 2001 -From: Alexander Kanavin -Date: Wed, 8 May 2019 15:31:23 +0200 -Subject: [PATCH] gstreamer: add a missing format string - -Upstream-Status: Pending -Signed-off-by: Alexander Kanavin ---- - .../platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/Source/WebCore/platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp b/Source/WebCore/platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp -index e1e497ee..483fd65c 100644 ---- a/Source/WebCore/platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp -+++ b/Source/WebCore/platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp -@@ -738,7 +738,7 @@ static GstStateChangeReturn webKitWebSrcChangeState(GstElement* element, GstStat - WebKitWebSrc* src = WEBKIT_WEB_SRC(element); - - #if GST_CHECK_VERSION(1, 14, 0) -- GST_DEBUG_OBJECT(src, gst_state_change_get_name(transition)); -+ GST_DEBUG_OBJECT(src, "%s", gst_state_change_get_name(transition)); - #endif - switch (transition) { - case GST_STATE_CHANGE_READY_TO_NULL: diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-sato/webkit/webkitgtk/detect-gstreamer-gl.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-sato/webkit/webkitgtk/detect-gstreamer-gl.patch deleted file mode 100644 index 57ae48c1..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-sato/webkit/webkitgtk/detect-gstreamer-gl.patch +++ /dev/null @@ -1,20 +0,0 @@ -From: Alberto Garcia -Subject: Disable USE_GSTREAMER_GL is the package is not found -Forwarded: no -Upstream-Status: Pending -Signed-off-by: Khem Raj - -Index: webkitgtk/Source/cmake/GStreamerChecks.cmake -=================================================================== ---- webkitgtk.orig/Source/cmake/GStreamerChecks.cmake -+++ webkitgtk/Source/cmake/GStreamerChecks.cmake -@@ -43,7 +43,8 @@ if (ENABLE_VIDEO OR ENABLE_WEB_AUDIO) - message(FATAL_ERROR "GStreamer 1.10 is needed for USE_GSTREAMER_GL.") - else () - if (NOT PC_GSTREAMER_GL_FOUND) -- message(FATAL_ERROR "GStreamerGL is needed for USE_GSTREAMER_GL.") -+ set(USE_GSTREAMER_GL OFF) -+ message(STATUS "GStreamerGL is needed for USE_GSTREAMER_GL.") - endif () - endif () - endif () diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-sato/webkit/webkitgtk/narrowing.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-sato/webkit/webkitgtk/narrowing.patch deleted file mode 100644 index 598b6b5d..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-sato/webkit/webkitgtk/narrowing.patch +++ /dev/null @@ -1,31 +0,0 @@ -Fix build with clang on arm where char is unsigned - -Upstream-Status: Submitted [https://bugs.webkit.org/show_bug.cgi?id=197087] -Signed-off-by: Khem Raj - ---- a/Source/WebCore/contentextensions/DFACombiner.cpp -+++ b/Source/WebCore/contentextensions/DFACombiner.cpp -@@ -37,7 +37,7 @@ namespace WebCore { - namespace ContentExtensions { - - class DFAMerger { -- typedef MutableRangeList CombinedTransitionsMutableRangeList; -+ typedef MutableRangeList CombinedTransitionsMutableRangeList; - - enum class WhichDFA { - A, ---- a/Source/WebCore/contentextensions/NFAToDFA.cpp -+++ b/Source/WebCore/contentextensions/NFAToDFA.cpp -@@ -41,9 +41,9 @@ namespace WebCore { - - namespace ContentExtensions { - --typedef MutableRange NFANodeRange; --typedef MutableRangeList NFANodeRangeList; --typedef MutableRangeList PreallocatedNFANodeRangeList; -+typedef MutableRange NFANodeRange; -+typedef MutableRangeList NFANodeRangeList; -+typedef MutableRangeList PreallocatedNFANodeRangeList; - typedef Vector UniqueNodeList; - typedef Vector NFANodeClosures; - diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-sato/webkit/webkitgtk/snprintf.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-sato/webkit/webkitgtk/snprintf.patch deleted file mode 100644 index b1481d78..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-sato/webkit/webkitgtk/snprintf.patch +++ /dev/null @@ -1,15 +0,0 @@ -include missing header for snprintf definition - -Upstream-Status: Submitted [https://bugs.webkit.org/show_bug.cgi?id=197088] -Signed-off-by: Khem Raj - ---- a/Source/WebCore/platform/text/TextCodec.cpp -+++ b/Source/WebCore/platform/text/TextCodec.cpp -@@ -28,6 +28,7 @@ - #include "TextCodec.h" - - #include -+#include - - namespace WebCore { - diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-sato/webkit/webkitgtk_2.24.2.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-sato/webkit/webkitgtk_2.24.2.bb deleted file mode 100644 index 056334ff..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-sato/webkit/webkitgtk_2.24.2.bb +++ /dev/null @@ -1,134 +0,0 @@ -SUMMARY = "WebKit web rendering engine for the GTK+ platform" -HOMEPAGE = "http://www.webkitgtk.org/" -BUGTRACKER = "http://bugs.webkit.org/" - -LICENSE = "BSD & LGPLv2+" -LIC_FILES_CHKSUM = "file://Source/JavaScriptCore/COPYING.LIB;md5=d0c6d6397a5d84286dda758da57bd691 \ - file://Source/WebCore/LICENSE-APPLE;md5=4646f90082c40bcf298c285f8bab0b12 \ - file://Source/WebCore/LICENSE-LGPL-2;md5=36357ffde2b64ae177b2494445b79d21 \ - file://Source/WebCore/LICENSE-LGPL-2.1;md5=a778a33ef338abbaf8b8a7c36b6eec80 \ - " - -SRC_URI = "http://www.webkitgtk.org/releases/${BPN}-${PV}.tar.xz \ - file://0001-FindGObjectIntrospection.cmake-prefix-variables-obta.patch \ - file://0001-When-building-introspection-files-add-CMAKE_C_FLAGS-.patch \ - file://0001-OptionsGTK.cmake-drop-the-hardcoded-introspection-gt.patch \ - file://0001-Fix-racy-parallel-build-of-WebKit2-4.0.gir.patch \ - file://0001-Tweak-gtkdoc-settings-so-that-gtkdoc-generation-work.patch \ - file://x32_support.patch \ - file://cross-compile.patch \ - file://0001-WebKitMacros-Append-to-I-and-not-to-isystem.patch \ - file://0001-Fix-build-with-musl.patch \ - file://detect-gstreamer-gl.patch \ - file://include_array.patch \ - file://narrowing.patch \ - file://snprintf.patch \ - file://0001-gstreamer-add-a-missing-format-string.patch \ - " - -SRC_URI[md5sum] = "83012998e1b9f71abb37d8baf6f9c7e6" -SRC_URI[sha256sum] = "019cb1f0d05bf6148b72c7a85734bcd006388a1c14132843ef9a1b2cb7b4321c" - -inherit cmake pkgconfig gobject-introspection perlnative distro_features_check upstream-version-is-even gtk-doc - -REQUIRED_DISTRO_FEATURES = "x11 opengl" - -CVE_PRODUCT = "webkitgtk webkitgtk\+" - -DEPENDS = "zlib libsoup-2.4 curl libxml2 cairo libxslt libxt libidn libgcrypt \ - gtk+3 gstreamer1.0 gstreamer1.0-plugins-base flex-native gperf-native sqlite3 \ - pango icu bison-native gawk intltool-native libwebp \ - atk udev harfbuzz jpeg libpng pulseaudio librsvg libtheora libvorbis libxcomposite libxtst \ - ruby-native libnotify gstreamer1.0-plugins-bad \ - gettext-native glib-2.0 glib-2.0-native libtasn1 \ - " - -PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'x11', 'wayland' ,d)} \ - ${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'webgl opengl', '' ,d)} \ - enchant \ - libsecret \ - " - -PACKAGECONFIG[wayland] = "-DENABLE_WAYLAND_TARGET=ON,-DENABLE_WAYLAND_TARGET=OFF,wayland" -PACKAGECONFIG[x11] = "-DENABLE_X11_TARGET=ON,-DENABLE_X11_TARGET=OFF,virtual/libx11" -PACKAGECONFIG[geoclue] = "-DENABLE_GEOLOCATION=ON,-DENABLE_GEOLOCATION=OFF,geoclue" -PACKAGECONFIG[enchant] = "-DENABLE_SPELLCHECK=ON,-DENABLE_SPELLCHECK=OFF,enchant" -PACKAGECONFIG[gtk2] = "-DENABLE_PLUGIN_PROCESS_GTK2=ON,-DENABLE_PLUGIN_PROCESS_GTK2=OFF,gtk+" -PACKAGECONFIG[gles2] = "-DENABLE_GLES2=ON,-DENABLE_GLES2=OFF,virtual/libgles2" -PACKAGECONFIG[webgl] = "-DENABLE_WEBGL=ON,-DENABLE_WEBGL=OFF,virtual/libgl" -PACKAGECONFIG[opengl] = "-DENABLE_OPENGL=ON,-DENABLE_OPENGL=OFF,virtual/libgl" -PACKAGECONFIG[libsecret] = "-DUSE_LIBSECRET=ON,-DUSE_LIBSECRET=OFF,libsecret" -PACKAGECONFIG[libhyphen] = "-DUSE_LIBHYPHEN=ON,-DUSE_LIBHYPHEN=OFF,libhyphen" -# Source is at https://github.com/google/woff2 -PACKAGECONFIG[woff2] = "-DUSE_WOFF2=ON,-DUSE_WOFF2=OFF,woff2" -PACKAGECONFIG[openjpeg] = "-DUSE_OPENJPEG=ON,-DUSE_OPENJPEG=OFF,openjpeg" - -EXTRA_OECMAKE = " \ - -DPORT=GTK \ - -DCMAKE_BUILD_TYPE=Release \ - ${@bb.utils.contains('GI_DATA_ENABLED', 'True', '-DENABLE_INTROSPECTION=ON', '-DENABLE_INTROSPECTION=OFF', d)} \ - ${@bb.utils.contains('GTKDOC_ENABLED', 'True', '-DENABLE_GTKDOC=ON', '-DENABLE_GTKDOC=OFF', d)} \ - -DENABLE_MINIBROWSER=ON \ - -DPYTHON_EXECUTABLE=`which python` \ - " - -# Javascript JIT is not supported on ARC -EXTRA_OECMAKE_append_arc = " -DENABLE_JIT=OFF " -# By default 25-bit "medium" calls are used on ARC -# which is not enough for binaries larger than 32 MiB -CFLAGS_append_arc = " -mlong-calls" -CXXFLAGS_append_arc = " -mlong-calls" - -# Javascript JIT is not supported on powerpc -EXTRA_OECMAKE_append_powerpc = " -DENABLE_JIT=OFF " -EXTRA_OECMAKE_append_powerpc64 = " -DENABLE_JIT=OFF " - -# ARM JIT code does not build on ARMv4/5/6 anymore -EXTRA_OECMAKE_append_armv5 = " -DENABLE_JIT=OFF " -EXTRA_OECMAKE_append_armv6 = " -DENABLE_JIT=OFF " -EXTRA_OECMAKE_append_armv4 = " -DENABLE_JIT=OFF " - -# binutils 2.25.1 has a bug on aarch64: -# https://sourceware.org/bugzilla/show_bug.cgi?id=18430 -EXTRA_OECMAKE_append_aarch64 = " -DUSE_LD_GOLD=OFF " -EXTRA_OECMAKE_append_mipsarch = " -DUSE_LD_GOLD=OFF " -EXTRA_OECMAKE_append_powerpc = " -DUSE_LD_GOLD=OFF " - -# JIT not supported on MIPS either -EXTRA_OECMAKE_append_mipsarch = " -DENABLE_JIT=OFF " - -# JIT not supported on X32 -# An attempt was made to upstream JIT support for x32 in -# https://bugs.webkit.org/show_bug.cgi?id=100450, but this was closed as -# unresolved due to limited X32 adoption. -EXTRA_OECMAKE_append_x86-x32 = " -DENABLE_JIT=OFF " - -SECURITY_CFLAGS_remove_aarch64 = "-fpie" -SECURITY_CFLAGS_append_aarch64 = " -fPIE" - -LDFLAGS_append_toolchain-clang = " -rtlib=compiler-rt" - -FILES_${PN} += "${libdir}/webkit2gtk-4.0/injected-bundle/libwebkit2gtkinjectedbundle.so" - -RRECOMMENDS_${PN} += "ca-certificates shared-mime-info" - -# http://errors.yoctoproject.org/Errors/Details/20370/ -ARM_INSTRUCTION_SET_armv4 = "arm" -ARM_INSTRUCTION_SET_armv5 = "arm" -ARM_INSTRUCTION_SET_armv6 = "arm" - -# https://bugzilla.yoctoproject.org/show_bug.cgi?id=9474 -# https://bugs.webkit.org/show_bug.cgi?id=159880 -# JSC JIT can build on ARMv7 with -marm, but doesn't work on runtime. -# Upstream only tests regularly the JSC JIT on ARMv7 with Thumb2 (-mthumb). -ARM_INSTRUCTION_SET_armv7a = "thumb" -ARM_INSTRUCTION_SET_armv7r = "thumb" -ARM_INSTRUCTION_SET_armv7ve = "thumb" - -# qemu: uncaught target signal 11 (Segmentation fault) - core dumped -# Segmentation fault -GI_DATA_ENABLED_armv7a = "False" -GI_DATA_ENABLED_armv7ve = "False" - -# Can't be built with ccache -CCACHE_DISABLE = "1" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-sato/webkit/webkitgtk_2.26.2.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-sato/webkit/webkitgtk_2.26.2.bb new file mode 100644 index 00000000..0139f010 --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-sato/webkit/webkitgtk_2.26.2.bb @@ -0,0 +1,125 @@ +SUMMARY = "WebKit web rendering engine for the GTK+ platform" +HOMEPAGE = "http://www.webkitgtk.org/" +BUGTRACKER = "http://bugs.webkit.org/" + +LICENSE = "BSD & LGPLv2+" +LIC_FILES_CHKSUM = "file://Source/JavaScriptCore/COPYING.LIB;md5=d0c6d6397a5d84286dda758da57bd691 \ + file://Source/WebCore/LICENSE-APPLE;md5=4646f90082c40bcf298c285f8bab0b12 \ + file://Source/WebCore/LICENSE-LGPL-2;md5=36357ffde2b64ae177b2494445b79d21 \ + file://Source/WebCore/LICENSE-LGPL-2.1;md5=a778a33ef338abbaf8b8a7c36b6eec80 \ + " + +SRC_URI = "http://www.webkitgtk.org/releases/${BPN}-${PV}.tar.xz \ + file://0001-FindGObjectIntrospection.cmake-prefix-variables-obta.patch \ + file://0001-When-building-introspection-files-add-CMAKE_C_FLAGS-.patch \ + file://0001-OptionsGTK.cmake-drop-the-hardcoded-introspection-gt.patch \ + file://0001-Fix-racy-parallel-build-of-WebKit2-4.0.gir.patch \ + file://0001-Tweak-gtkdoc-settings-so-that-gtkdoc-generation-work.patch \ + file://x32_support.patch \ + file://cross-compile.patch \ + file://0001-Fix-build-with-musl.patch \ + file://include_array.patch \ + " + +SRC_URI[md5sum] = "65e06fe73ee166447894aaea95038e3b" +SRC_URI[sha256sum] = "6b80f0637a80818559ac8fd50db3b394f41cb61904fb9b3ed65fa51635806512" + +inherit cmake pkgconfig gobject-introspection perlnative features_check upstream-version-is-even gtk-doc + +REQUIRED_DISTRO_FEATURES = "x11 opengl" + +CVE_PRODUCT = "webkitgtk webkitgtk\+" + +DEPENDS = "zlib libsoup-2.4 curl libxml2 cairo libxslt libxt libidn libgcrypt \ + gtk+3 gstreamer1.0 gstreamer1.0-plugins-base flex-native gperf-native sqlite3 \ + pango icu bison-native gawk intltool-native libwebp \ + atk udev harfbuzz jpeg libpng pulseaudio librsvg libtheora libvorbis libxcomposite libxtst \ + ruby-native libnotify gstreamer1.0-plugins-bad \ + gettext-native glib-2.0 glib-2.0-native libtasn1 \ + " + +PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'x11', 'wayland' ,d)} \ + ${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'webgl opengl', '' ,d)} \ + enchant \ + libsecret \ + " + +PACKAGECONFIG[wayland] = "-DENABLE_WAYLAND_TARGET=ON,-DENABLE_WAYLAND_TARGET=OFF,wayland" +PACKAGECONFIG[x11] = "-DENABLE_X11_TARGET=ON,-DENABLE_X11_TARGET=OFF,virtual/libx11" +PACKAGECONFIG[geoclue] = "-DENABLE_GEOLOCATION=ON,-DENABLE_GEOLOCATION=OFF,geoclue" +PACKAGECONFIG[enchant] = "-DENABLE_SPELLCHECK=ON,-DENABLE_SPELLCHECK=OFF,enchant" +PACKAGECONFIG[gtk2] = "-DENABLE_PLUGIN_PROCESS_GTK2=ON,-DENABLE_PLUGIN_PROCESS_GTK2=OFF,gtk+" +PACKAGECONFIG[gles2] = "-DENABLE_GLES2=ON,-DENABLE_GLES2=OFF,virtual/libgles2" +PACKAGECONFIG[webgl] = "-DENABLE_WEBGL=ON,-DENABLE_WEBGL=OFF,virtual/libgl" +PACKAGECONFIG[opengl] = "-DENABLE_OPENGL=ON,-DENABLE_OPENGL=OFF,virtual/libgl" +PACKAGECONFIG[libsecret] = "-DUSE_LIBSECRET=ON,-DUSE_LIBSECRET=OFF,libsecret" +PACKAGECONFIG[libhyphen] = "-DUSE_LIBHYPHEN=ON,-DUSE_LIBHYPHEN=OFF,libhyphen" +# Source is at https://github.com/google/woff2 +PACKAGECONFIG[woff2] = "-DUSE_WOFF2=ON,-DUSE_WOFF2=OFF,woff2" +PACKAGECONFIG[openjpeg] = "-DUSE_OPENJPEG=ON,-DUSE_OPENJPEG=OFF,openjpeg" + +EXTRA_OECMAKE = " \ + -DPORT=GTK \ + -DCMAKE_BUILD_TYPE=Release \ + ${@bb.utils.contains('GI_DATA_ENABLED', 'True', '-DENABLE_INTROSPECTION=ON', '-DENABLE_INTROSPECTION=OFF', d)} \ + ${@bb.utils.contains('GTKDOC_ENABLED', 'True', '-DENABLE_GTKDOC=ON', '-DENABLE_GTKDOC=OFF', d)} \ + -DENABLE_MINIBROWSER=ON \ + -DPYTHON_EXECUTABLE=`which python3` \ + -DENABLE_BUBBLEWRAP_SANDBOX=OFF \ + " + +# Javascript JIT is not supported on ARC +EXTRA_OECMAKE_append_arc = " -DENABLE_JIT=OFF " +# By default 25-bit "medium" calls are used on ARC +# which is not enough for binaries larger than 32 MiB +CFLAGS_append_arc = " -mlong-calls" +CXXFLAGS_append_arc = " -mlong-calls" + +# Javascript JIT is not supported on powerpc +EXTRA_OECMAKE_append_powerpc = " -DENABLE_JIT=OFF " +EXTRA_OECMAKE_append_powerpc64 = " -DENABLE_JIT=OFF " + +# ARM JIT code does not build on ARMv4/5/6 anymore +EXTRA_OECMAKE_append_armv5 = " -DENABLE_JIT=OFF " +EXTRA_OECMAKE_append_armv6 = " -DENABLE_JIT=OFF " +EXTRA_OECMAKE_append_armv4 = " -DENABLE_JIT=OFF " + +EXTRA_OECMAKE_append_mipsarchn32 = " -DUSE_LD_GOLD=OFF " +EXTRA_OECMAKE_append_powerpc = " -DUSE_LD_GOLD=OFF " + +# JIT not supported on MIPS either +EXTRA_OECMAKE_append_mipsarch = " -DENABLE_JIT=OFF -DENABLE_C_LOOP=ON " + +# JIT not supported on X32 +# An attempt was made to upstream JIT support for x32 in +# https://bugs.webkit.org/show_bug.cgi?id=100450, but this was closed as +# unresolved due to limited X32 adoption. +EXTRA_OECMAKE_append_x86-x32 = " -DENABLE_JIT=OFF " + +SECURITY_CFLAGS_remove_aarch64 = "-fpie" +SECURITY_CFLAGS_append_aarch64 = " -fPIE" + +FILES_${PN} += "${libdir}/webkit2gtk-4.0/injected-bundle/libwebkit2gtkinjectedbundle.so" + +RRECOMMENDS_${PN} += "ca-certificates shared-mime-info" + +# http://errors.yoctoproject.org/Errors/Details/20370/ +ARM_INSTRUCTION_SET_armv4 = "arm" +ARM_INSTRUCTION_SET_armv5 = "arm" +ARM_INSTRUCTION_SET_armv6 = "arm" + +# https://bugzilla.yoctoproject.org/show_bug.cgi?id=9474 +# https://bugs.webkit.org/show_bug.cgi?id=159880 +# JSC JIT can build on ARMv7 with -marm, but doesn't work on runtime. +# Upstream only tests regularly the JSC JIT on ARMv7 with Thumb2 (-mthumb). +ARM_INSTRUCTION_SET_armv7a = "thumb" +ARM_INSTRUCTION_SET_armv7r = "thumb" +ARM_INSTRUCTION_SET_armv7ve = "thumb" + +# qemu: uncaught target signal 11 (Segmentation fault) - core dumped +# Segmentation fault +GI_DATA_ENABLED_armv7a = "False" +GI_DATA_ENABLED_armv7ve = "False" + +# Can't be built with ccache +CCACHE_DISABLE = "1" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-support/apr/apr/0001-build-buildcheck.sh-improve-libtool-detection.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-support/apr/apr/0001-build-buildcheck.sh-improve-libtool-detection.patch deleted file mode 100644 index 097c195a..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-support/apr/apr/0001-build-buildcheck.sh-improve-libtool-detection.patch +++ /dev/null @@ -1,32 +0,0 @@ -From 4efdc06fb17b8a00a9eca923caa176be741d1e04 Mon Sep 17 00:00:00 2001 -From: Hongxu Jia -Date: Thu, 1 Feb 2018 14:56:13 +0800 -Subject: [PATCH 1/7] build/buildcheck.sh: improve libtool detection - -Support customize libtool by variable assigning, it is helpful -for cross compileing (such as libtool=aarch64-linux-libtool) - -Upstream-Status: Submitted [https://github.com/apache/apr/pull/8] -Signed-off-by: Hongxu Jia ---- - build/buildcheck.sh | 4 +++- - 1 file changed, 3 insertions(+), 1 deletion(-) - -diff --git a/build/buildcheck.sh b/build/buildcheck.sh -index ab5df44..f191a41 100755 ---- a/build/buildcheck.sh -+++ b/build/buildcheck.sh -@@ -40,7 +40,9 @@ fi - # output is multiline from 1.5 onwards - - # Require libtool 1.4 or newer --libtool=`build/PrintPath glibtool1 glibtool libtool libtool15 libtool14` -+if test -z "$libtool"; then -+ libtool=`build/PrintPath glibtool1 glibtool libtool libtool15 libtool14` -+fi - lt_pversion=`$libtool --version 2>/dev/null|sed -e 's/([^)]*)//g;s/^[^0-9]*//;s/[- ].*//g;q'` - if test -z "$lt_pversion"; then - echo "buildconf: libtool not found." --- -1.8.3.1 - diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-support/apr/apr/libtoolize_check.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-support/apr/apr/libtoolize_check.patch new file mode 100644 index 00000000..740792e6 --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-support/apr/apr/libtoolize_check.patch @@ -0,0 +1,28 @@ +From: Helmut Grohne +Subject: check for libtoolize rather than libtool +Last-Update: 2014-09-19 + +libtool is now in package libtool-bin, but apr only needs libtoolize. + +Upstream-Status: Pending [ from debian: https://sources.debian.org/data/main/a/apr/1.6.5-1/debian/patches/libtoolize_check.patch ] + +Signed-off-by: Robert Yang + +--- apr.orig/build/buildcheck.sh ++++ apr/build/buildcheck.sh +@@ -39,11 +39,11 @@ fi + # ltmain.sh (GNU libtool 1.1361 2004/01/02 23:10:52) 1.5a + # output is multiline from 1.5 onwards + +-# Require libtool 1.4 or newer +-libtool=`build/PrintPath glibtool1 glibtool libtool libtool15 libtool14` +-lt_pversion=`$libtool --version 2>/dev/null|sed -e 's/([^)]*)//g;s/^[^0-9]*//;s/[- ].*//g;q'` ++# Require libtoolize 1.4 or newer ++libtoolize=`build/PrintPath glibtoolize1 glibtoolize libtoolize libtoolize15 libtoolize14` ++lt_pversion=`$libtoolize --version 2>/dev/null|sed -e 's/([^)]*)//g;s/^[^0-9]*//;s/[- ].*//g;q'` + if test -z "$lt_pversion"; then +- echo "buildconf: libtool not found." ++ echo "buildconf: libtoolize not found." + echo " You need libtool version 1.4 or newer installed" + echo " to build APR from SVN." + res=1 diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-support/apr/apr_1.7.0.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-support/apr/apr_1.7.0.bb index 09a65bfd..eca9cdea 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-support/apr/apr_1.7.0.bb +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-support/apr/apr_1.7.0.bb @@ -11,13 +11,13 @@ BBCLASSEXTEND = "native nativesdk" SRC_URI = "${APACHE_MIRROR}/apr/${BPN}-${PV}.tar.bz2 \ file://run-ptest \ - file://0001-build-buildcheck.sh-improve-libtool-detection.patch \ file://0002-apr-Remove-workdir-path-references-from-installed-ap.patch \ file://0003-Makefile.in-configure.in-support-cross-compiling.patch \ file://0004-Fix-packet-discards-HTTP-redirect.patch \ file://0005-configure.in-fix-LTFLAGS-to-make-it-work-with-ccache.patch \ file://0006-apr-fix-off_t-size-doesn-t-match-in-glibc-when-cross.patch \ file://0007-explicitly-link-libapr-against-phtread-to-make-gold-.patch \ + file://libtoolize_check.patch \ " SRC_URI[md5sum] = "7a14a83d664e87599ea25ff4432e48a7" @@ -47,7 +47,8 @@ do_configure_prepend() { export GREP="grep" cd ${S} - libtool='${HOST_SYS}-libtool' ./buildconf + # The "2" means libtool version 2. + ./buildconf 2 } FILES_${PN}-dev += "${libdir}/apr.exp ${datadir}/build-1/*" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-support/aspell/aspell/gcc7.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-support/aspell/aspell/gcc7.patch deleted file mode 100644 index 6ffd0772..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-support/aspell/aspell/gcc7.patch +++ /dev/null @@ -1,40 +0,0 @@ -From 8089fa02122fed0a6394eba14bbedcb1d18e2384 Mon Sep 17 00:00:00 2001 -From: Kevin Atkinson -Date: Thu, 29 Dec 2016 00:50:31 -0500 -Subject: [PATCH] Compile Fixes for GCC 7. - -Closes #519. ---- -Signed-off-by: Khem Raj -Upstream-Status: Backport - - modules/filter/tex.cpp | 2 +- - prog/check_funs.cpp | 2 +- - 2 files changed, 2 insertions(+), 2 deletions(-) - -diff --git a/modules/filter/tex.cpp b/modules/filter/tex.cpp -index a979539..19ab63c 100644 ---- a/modules/filter/tex.cpp -+++ b/modules/filter/tex.cpp -@@ -174,7 +174,7 @@ namespace { - - if (c == '{') { - -- if (top.in_what == Parm || top.in_what == Opt || top.do_check == '\0') -+ if (top.in_what == Parm || top.in_what == Opt || *top.do_check == '\0') - push_command(Parm); - - top.in_what = Parm; -diff --git a/prog/check_funs.cpp b/prog/check_funs.cpp -index db54f3d..89ee09d 100644 ---- a/prog/check_funs.cpp -+++ b/prog/check_funs.cpp -@@ -647,7 +647,7 @@ static void print_truncate(FILE * out, const char * word, int width) { - } - } - if (i == width-1) { -- if (word == '\0') -+ if (*word == '\0') - put(out,' '); - else if (word[len] == '\0') - put(out, word, len); diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-support/aspell/aspell_0.60.6.1.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-support/aspell/aspell_0.60.6.1.bb deleted file mode 100644 index 161bb5ce..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-support/aspell/aspell_0.60.6.1.bb +++ /dev/null @@ -1,34 +0,0 @@ -SUMMARY = "GNU Aspell spell-checker" -SECTION = "console/utils" - -LICENSE = "LGPLv2 | LGPLv2.1" -LIC_FILES_CHKSUM = "file://COPYING;md5=7fbc338309ac38fefcd64b04bb903e34" - -PR = "r1" - -SRC_URI = "${GNU_MIRROR}/aspell/aspell-${PV}.tar.gz \ - file://gcc7.patch \ - " -SRC_URI[md5sum] = "e66a9c9af6a60dc46134fdacf6ce97d7" -SRC_URI[sha256sum] = "f52583a83a63633701c5f71db3dc40aab87b7f76b29723aeb27941eff42df6e1" - -PACKAGECONFIG ??= "" -PACKAGECONFIG[curses] = "--enable-curses,--disable-curses,ncurses" - -PACKAGES += "libaspell libpspell aspell-utils" - -RDEPENDS_${PN}-utils += "perl" - -FILES_libaspell = "${libdir}/libaspell.so.* ${libdir}/aspell*" -FILES_aspell-utils = "${bindir}/word-list-compress ${bindir}/aspell-import ${bindir}/run-with-aspell ${bindir}/pre*" -FILES_${PN} = "${bindir}/aspell" -FILES_libpspell = "${libdir}/libpspell.so.*" -FILES_${PN}-dev += "${bindir}/pspell-config" - -ARM_INSTRUCTION_SET_armv4 = "arm" -ARM_INSTRUCTION_SET_armv5 = "arm" -ARM_INSTRUCTION_SET_armv6 = "arm" - -inherit autotools-brokensep gettext texinfo binconfig-disabled - -BINCONFIG = "${bindir}/pspell-config" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-support/aspell/aspell_0.60.8.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-support/aspell/aspell_0.60.8.bb new file mode 100644 index 00000000..62998781 --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-support/aspell/aspell_0.60.8.bb @@ -0,0 +1,30 @@ +SUMMARY = "GNU Aspell spell-checker" +SECTION = "console/utils" + +LICENSE = "LGPLv2 | LGPLv2.1" +LIC_FILES_CHKSUM = "file://COPYING;md5=7fbc338309ac38fefcd64b04bb903e34" + +SRC_URI = "${GNU_MIRROR}/aspell/aspell-${PV}.tar.gz" +SRC_URI[md5sum] = "012fa9209203ae4e5a61c2a668fd10e3" +SRC_URI[sha256sum] = "f9b77e515334a751b2e60daab5db23499e26c9209f5e7b7443b05235ad0226f2" + +PACKAGECONFIG ??= "" +PACKAGECONFIG[curses] = "--enable-curses,--disable-curses,ncurses" + +PACKAGES += "libaspell libpspell aspell-utils" + +RDEPENDS_${PN}-utils += "perl" + +FILES_libaspell = "${libdir}/libaspell.so.* ${libdir}/aspell*" +FILES_aspell-utils = "${bindir}/word-list-compress ${bindir}/aspell-import ${bindir}/run-with-aspell ${bindir}/pre*" +FILES_${PN} = "${bindir}/aspell" +FILES_libpspell = "${libdir}/libpspell.so.*" +FILES_${PN}-dev += "${bindir}/pspell-config" + +ARM_INSTRUCTION_SET_armv4 = "arm" +ARM_INSTRUCTION_SET_armv5 = "arm" +ARM_INSTRUCTION_SET_armv6 = "arm" + +inherit autotools-brokensep gettext texinfo binconfig-disabled + +BINCONFIG = "${bindir}/pspell-config" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-support/atk/at-spi2-atk_2.32.0.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-support/atk/at-spi2-atk_2.32.0.bb index bcf1c9c7..d3a9de1e 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-support/atk/at-spi2-atk_2.32.0.bb +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-support/atk/at-spi2-atk_2.32.0.bb @@ -9,7 +9,7 @@ SRC_URI[archive.sha256sum] = "0b51e6d339fa2bcca3a3e3159ccea574c67b107f1ac8b00047 DEPENDS = "dbus glib-2.0 glib-2.0-native atk at-spi2-core libxml2" GNOMEBASEBUILDCLASS = "meson" -inherit gnomebase distro_features_check upstream-version-is-even +inherit gnomebase features_check upstream-version-is-even PACKAGES =+ "${PN}-gnome ${PN}-gtk2" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-support/attr/attr.inc b/Contrib-Inspur/openbmc/poky/meta/recipes-support/attr/attr.inc index 1a29eb33..3503d66b 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-support/attr/attr.inc +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-support/attr/attr.inc @@ -41,6 +41,6 @@ do_install_ptest() { sed -e 's|; @echo|; echo|' -i ${D}${PTEST_PATH}/test/Makefile } -RDEPENDS_${PN}-ptest = "attr coreutils perl-module-filehandle perl-module-getopt-std perl-module-posix make" +RDEPENDS_${PN}-ptest = "attr coreutils perl-module-filehandle perl-module-getopt-std perl-module-posix make perl" BBCLASSEXTEND = "native nativesdk" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-support/boost/bjam-native_1.69.0.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-support/boost/bjam-native_1.69.0.bb deleted file mode 100644 index 94f96e62..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-support/boost/bjam-native_1.69.0.bb +++ /dev/null @@ -1,19 +0,0 @@ -require boost-${PV}.inc - -SUMMARY = "Portable Boost.Jam build tool for boost" -SECTION = "devel" - -inherit native - -SRC_URI += "file://bjam-native-build-bjam.debug.patch \ -" - -do_compile() { - ./bootstrap.sh --with-toolset=gcc -} - -do_install() { - install -d ${D}${bindir}/ - # install unstripped version for bjam - install -c -m 755 bjam.debug ${D}${bindir}/bjam -} diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-support/boost/bjam-native_1.71.0.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-support/boost/bjam-native_1.71.0.bb new file mode 100644 index 00000000..d843eb03 --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-support/boost/bjam-native_1.71.0.bb @@ -0,0 +1,20 @@ +require boost-${PV}.inc + +SUMMARY = "Portable Boost.Jam build tool for boost" +SECTION = "devel" + +inherit native + +SRC_URI += "file://0001-Build-debug-version-of-bjam.patch \ + file://0001-build.sh-use-DNDEBUG-also-in-debug-builds.patch \ + " + +do_compile() { + ./bootstrap.sh --with-toolset=gcc +} + +do_install() { + install -d ${D}${bindir}/ + # install unstripped version for bjam + install -c -m 755 b2 ${D}${bindir}/bjam +} diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-support/boost/boost-1.69.0.inc b/Contrib-Inspur/openbmc/poky/meta/recipes-support/boost/boost-1.69.0.inc deleted file mode 100644 index 923436b1..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-support/boost/boost-1.69.0.inc +++ /dev/null @@ -1,21 +0,0 @@ -# The Boost web site provides free peer-reviewed portable -# C++ source libraries. The emphasis is on libraries which -# work well with the C++ Standard Library. The libraries are -# intended to be widely useful, and are in regular use by -# thousands of programmers across a broad spectrum of applications. -HOMEPAGE = "http://www.boost.org/" -LICENSE = "BSL-1.0 & MIT & Python-2.0" -LIC_FILES_CHKSUM = "file://LICENSE_1_0.txt;md5=e4224ccaecb14d942c71d31bef20d78c" - -BOOST_VER = "${@"_".join(d.getVar("PV").split("."))}" -BOOST_MAJ = "${@"_".join(d.getVar("PV").split(".")[0:2])}" -BOOST_P = "boost_${BOOST_VER}" - -SRC_URI = "${SOURCEFORGE_MIRROR}/project/boost/boost/${PV}/${BOOST_P}.tar.bz2" -SRC_URI[md5sum] = "a1332494397bf48332cb152abfefcec2" -SRC_URI[sha256sum] = "8f32d4617390d1c2d16f26a27ab60d97807b35440d45891fa340fc2648b04406" - -UPSTREAM_CHECK_URI = "http://www.boost.org/users/download/" -UPSTREAM_CHECK_REGEX = "boostorg/release/(?P.*)/source/" - -S = "${WORKDIR}/${BOOST_P}" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-support/boost/boost-1.71.0.inc b/Contrib-Inspur/openbmc/poky/meta/recipes-support/boost/boost-1.71.0.inc new file mode 100644 index 00000000..7164d0f1 --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-support/boost/boost-1.71.0.inc @@ -0,0 +1,21 @@ +# The Boost web site provides free peer-reviewed portable +# C++ source libraries. The emphasis is on libraries which +# work well with the C++ Standard Library. The libraries are +# intended to be widely useful, and are in regular use by +# thousands of programmers across a broad spectrum of applications. +HOMEPAGE = "http://www.boost.org/" +LICENSE = "BSL-1.0 & MIT & Python-2.0" +LIC_FILES_CHKSUM = "file://LICENSE_1_0.txt;md5=e4224ccaecb14d942c71d31bef20d78c" + +BOOST_VER = "${@"_".join(d.getVar("PV").split("."))}" +BOOST_MAJ = "${@"_".join(d.getVar("PV").split(".")[0:2])}" +BOOST_P = "boost_${BOOST_VER}" + +SRC_URI = "https://dl.bintray.com/boostorg/release/${PV}/source/${BOOST_P}.tar.bz2" +SRC_URI[md5sum] = "4cdf9b5c2dc01fb2b7b733d5af30e558" +SRC_URI[sha256sum] = "d73a8da01e8bf8c7eda40b4c84915071a8c8a0df4a6734537ddde4a8580524ee" + +UPSTREAM_CHECK_URI = "http://www.boost.org/users/download/" +UPSTREAM_CHECK_REGEX = "boostorg/release/(?P.*)/source/" + +S = "${WORKDIR}/${BOOST_P}" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-support/boost/boost.inc b/Contrib-Inspur/openbmc/poky/meta/recipes-support/boost/boost.inc index 9be3717f..e15dce4e 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-support/boost/boost.inc +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-support/boost/boost.inc @@ -2,6 +2,8 @@ SUMMARY = "Free peer-reviewed portable C++ source libraries" SECTION = "libs" DEPENDS = "bjam-native zlib bzip2" +CVE_PRODUCT = "boost:boost" + ARM_INSTRUCTION_SET_armv4 = "arm" ARM_INSTRUCTION_SET_armv5 = "arm" @@ -33,6 +35,7 @@ BOOST_LIBS_append_x86 = " context coroutine" BOOST_LIBS_append_x86-64 = " context coroutine" BOOST_LIBS_append_powerpc = " context coroutine" BOOST_LIBS_append_arm = " context coroutine" +BOOST_LIBS_append_aarch64 = " context coroutine" # need consistent settings for native builds (x86 override not applied for native) BOOST_LIBS_remove_class-native = " context coroutine" # does not compile @@ -80,7 +83,7 @@ FILES_boost-test = "${libdir}/libboost_prg_exec_monitor*.so.* \ # -dev last to pick up the remaining stuff PACKAGES += "${PN}-dev ${PN}-staticdev" -FILES_${PN}-dev = "${includedir} ${libdir}/libboost_*.so" +FILES_${PN}-dev = "${includedir} ${libdir}/libboost_*.so ${libdir}/cmake" FILES_${PN}-staticdev = "${libdir}/libboost_*.a" # "boost" is a metapackage which pulls in all boost librabries @@ -151,6 +154,7 @@ BJAM_OPTS_append_x86-x32 = " abi=x32 address-model=64" # cross compiling for arm fails to detect abi, so provide some help BJAM_OPTS_append_arm = " abi=aapcs architecture=arm" +BJAM_OPTS_append_aarch64 = " abi=aapcs address-model=64 architecture=arm" do_configure() { cp -f ${S}/boost/config/platform/linux.hpp ${S}/boost/config/platform/linux-gnueabi.hpp diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-support/boost/boost/0001-Don-t-set-up-arch-instruction-set-flags-we-do-that-o.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-support/boost/boost/0001-Don-t-set-up-arch-instruction-set-flags-we-do-that-o.patch index 8944cb37..68d6e641 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-support/boost/boost/0001-Don-t-set-up-arch-instruction-set-flags-we-do-that-o.patch +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-support/boost/boost/0001-Don-t-set-up-arch-instruction-set-flags-we-do-that-o.patch @@ -1,4 +1,4 @@ -From 3e4eb02eb5951058bc6f8dffbf049eb189df8291 Mon Sep 17 00:00:00 2001 +From f4d3fad43d67808d71325ba0df1457555b9a0086 Mon Sep 17 00:00:00 2001 From: Alexander Kanavin Date: Tue, 18 Dec 2018 15:42:57 +0100 Subject: [PATCH] Don't set up arch/instruction-set flags, we do that ourselves @@ -6,15 +6,16 @@ Subject: [PATCH] Don't set up arch/instruction-set flags, we do that ourselves Upstream-Status: Inappropriate Signed-off-by: Christopher Larson Signed-off-by: Alexander Kanavin + --- - tools/build/src/tools/gcc.jam | 128 ---------------------------------- - 1 file changed, 128 deletions(-) + tools/build/src/tools/gcc.jam | 132 ---------------------------------- + 1 file changed, 132 deletions(-) diff --git a/tools/build/src/tools/gcc.jam b/tools/build/src/tools/gcc.jam -index c57c773f..28618fb1 100644 +index b9bb9cf2a..c7e3cf3fe 100644 --- a/tools/build/src/tools/gcc.jam +++ b/tools/build/src/tools/gcc.jam -@@ -1152,131 +1152,3 @@ local rule cpu-flags ( toolset variable : architecture : instruction-set + : +@@ -1180,135 +1180,3 @@ local rule cpu-flags ( toolset variable : architecture : instruction-set + : $(architecture)/$(instruction-set) : $(values) ; } @@ -144,5 +145,9 @@ index c57c773f..28618fb1 100644 -cpu-flags gcc OPTIONS : power : rios2 : -mcpu=rios2 ; -cpu-flags gcc OPTIONS : power : rsc : -mcpu=rsc ; -cpu-flags gcc OPTIONS : power : rs64a : -mcpu=rs64 ; +-cpu-flags gcc OPTIONS : s390x : z196 : -march=z196 ; +-cpu-flags gcc OPTIONS : s390x : zEC12 : -march=zEC12 ; +-cpu-flags gcc OPTIONS : s390x : z13 : -march=z13 ; +-cpu-flags gcc OPTIONS : s390x : z14 : -march=z14 ; -# AIX variant of RS/6000 & PowerPC -toolset.flags gcc AROPTIONS 64/aix : "-X64" ; diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-support/boost/boost/0001-dont-setup-compiler-flags-m32-m64.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-support/boost/boost/0001-dont-setup-compiler-flags-m32-m64.patch new file mode 100644 index 00000000..78b19225 --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-support/boost/boost/0001-dont-setup-compiler-flags-m32-m64.patch @@ -0,0 +1,42 @@ +From 59402e3a61d14eb7ce8c2019ea1a87ad4bd28605 Mon Sep 17 00:00:00 2001 +From: Anuj Mittal +Date: Thu, 14 Nov 2019 10:13:53 +0800 +Subject: [PATCH] dont setup compiler flags -m32/-m64 + +We don't want these to be setup by boost as we pass our own flags. + +Upstream-Status: Inappropriate [OE-specific] + +Signed-off-by: Anuj Mittal +--- + tools/build/src/tools/gcc.jam | 14 -------------- + 1 file changed, 14 deletions(-) + +diff --git a/tools/build/src/tools/gcc.jam b/tools/build/src/tools/gcc.jam +index c7e3cf3..24486e0 100644 +--- a/tools/build/src/tools/gcc.jam ++++ b/tools/build/src/tools/gcc.jam +@@ -430,20 +430,6 @@ local rule compile-link-flags ( * ) + } + + { +- # Handle address-model +- compile-link-flags aix/32 : -maix32 ; +- compile-link-flags aix/64 : -maix64 ; +- +- compile-link-flags hpux/32 : -milp32 ; +- compile-link-flags hpux/64 : -mlp64 ; +- +- local generic-os = [ set.difference $(all-os) : aix hpux ] ; +- local arch = power sparc x86 ; +- compile-link-flags $(generic-os)/$(arch)/32 : -m32 ; +- compile-link-flags $(generic-os)/$(arch)/64 : -m64 ; +-} +- +-{ + # Handle threading + local rule threading-flags ( * ) + { +-- +2.7.4 + diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-support/boost/boost_1.69.0.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-support/boost/boost_1.69.0.bb deleted file mode 100644 index 324b46f1..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-support/boost/boost_1.69.0.bb +++ /dev/null @@ -1,9 +0,0 @@ -require boost-${PV}.inc -require boost.inc - -SRC_URI += "file://arm-intrinsics.patch \ - file://boost-CVE-2012-2677.patch \ - file://boost-math-disable-pch-for-gcc.patch \ - file://0001-Apply-boost-1.62.0-no-forced-flags.patch.patch \ - file://0001-Don-t-set-up-arch-instruction-set-flags-we-do-that-o.patch \ - " diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-support/boost/boost_1.71.0.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-support/boost/boost_1.71.0.bb new file mode 100644 index 00000000..5e9e0d87 --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-support/boost/boost_1.71.0.bb @@ -0,0 +1,10 @@ +require boost-${PV}.inc +require boost.inc + +SRC_URI += "file://arm-intrinsics.patch \ + file://boost-CVE-2012-2677.patch \ + file://boost-math-disable-pch-for-gcc.patch \ + file://0001-Apply-boost-1.62.0-no-forced-flags.patch.patch \ + file://0001-Don-t-set-up-arch-instruction-set-flags-we-do-that-o.patch \ + file://0001-dont-setup-compiler-flags-m32-m64.patch \ + " diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-support/boost/files/0001-Build-debug-version-of-bjam.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-support/boost/files/0001-Build-debug-version-of-bjam.patch new file mode 100644 index 00000000..c6dcee91 --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-support/boost/files/0001-Build-debug-version-of-bjam.patch @@ -0,0 +1,38 @@ +From 19c117c3d1388654da484e26afb3fb6c3e4181a9 Mon Sep 17 00:00:00 2001 +From: Daniel Klauer +Date: Tue, 30 Jul 2019 11:39:09 +0200 +Subject: [PATCH] Build debug version of bjam + +bjam is stripped by default, this causes QA warning while stripping it +from do_populate_sysroot(): + + WARNING: File '.../tmp/sysroots/x86_64-linux/usr/bin/bjam' \ + from bjam-native was already stripped, \ + this will prevent future debugging! + +The JAM scripts allow to build unstripped version with '--debug'. Just +build and install the bjam.debug to stop bjam from being stripped in +compile step. + +Upstream-Status: Inappropriate [configuration] +Signed-off-by: Alexander Kanavin +--- + bootstrap.sh | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/bootstrap.sh b/bootstrap.sh +index ca0b08d58..87f38dcf2 100755 +--- a/bootstrap.sh ++++ b/bootstrap.sh +@@ -223,7 +223,7 @@ rm -f config.log + if test "x$BJAM" = x; then + $ECHO -n "Building Boost.Build engine with toolset $TOOLSET... " + pwd=`pwd` +- (cd "$my_dir/tools/build/src/engine" && ./build.sh "$TOOLSET") > bootstrap.log 2>&1 ++ (cd "$my_dir/tools/build/src/engine" && ./build.sh "$TOOLSET" --debug) > bootstrap.log 2>&1 + if [ $? -ne 0 ]; then + echo + echo "Failed to build Boost.Build build engine" +-- +2.17.1 + diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-support/boost/files/0001-build.sh-use-DNDEBUG-also-in-debug-builds.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-support/boost/files/0001-build.sh-use-DNDEBUG-also-in-debug-builds.patch new file mode 100644 index 00000000..4c6ef2ed --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-support/boost/files/0001-build.sh-use-DNDEBUG-also-in-debug-builds.patch @@ -0,0 +1,27 @@ +From 2afd025997a57794ce24e07e914b461dfea6ba5f Mon Sep 17 00:00:00 2001 +From: Alexander Kanavin +Date: Mon, 26 Aug 2019 16:04:16 +0200 +Subject: [PATCH] build.sh: use -DNDEBUG also in debug builds + +Without it, there is a significant performance regression +when running 'bjam install'. + +Upstream-Status: Inappropriate [configuration] +Signed-off-by: Alexander Kanavin +--- + tools/build/src/engine/build.sh | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/tools/build/src/engine/build.sh b/tools/build/src/engine/build.sh +index a1e4cd335..64e0a4c80 100755 +--- a/tools/build/src/engine/build.sh ++++ b/tools/build/src/engine/build.sh +@@ -436,7 +436,7 @@ case $B2_OS in + ;; + esac + +-if check_debug_build "$@" ; then B2_CXXFLAGS="${B2_CXXFLAGS_DEBUG}" ++if check_debug_build "$@" ; then B2_CXXFLAGS="${B2_CXXFLAGS_DEBUG} -DNDEBUG" + else B2_CXXFLAGS="${B2_CXXFLAGS_RELEASE} -DNDEBUG" + fi + echo_run ${B2_CXX} ${CXXFLAGS} ${B2_CXXFLAGS} ${B2_SOURCES} -o b2 diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-support/boost/files/bjam-native-build-bjam.debug.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-support/boost/files/bjam-native-build-bjam.debug.patch deleted file mode 100644 index 9f8b7eac..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-support/boost/files/bjam-native-build-bjam.debug.patch +++ /dev/null @@ -1,50 +0,0 @@ -From 619ada314ab26c0c9cbfe5702cd9c0caa8f6415a Mon Sep 17 00:00:00 2001 -From: Wenzong Fan -Date: Mon, 3 Aug 2015 17:12:33 +0800 -Subject: [PATCH] bjam-native: build bjam.debug - -bjam is stripped by default, this causes QA warning while stripping it -from do_populate_sysroot(): - - WARNING: File '.../tmp/sysroots/x86_64-linux/usr/bin/bjam' \ - from bjam-native was already stripped, \ - this will prevent future debugging! - -The JAM scripts allow to build unstripped version with '--debug'. Just -build and install the bjam.debug to stop bjam from being stripped in -compile step. - -Upstream-Status: Inappropriate [configuration] - -Signed-off-by: Wenzong Fan ---- - bootstrap.sh | 1 + - tools/build/src/engine/build.sh | 2 +- - 2 files changed, 2 insertions(+), 1 deletion(-) - -diff --git a/bootstrap.sh b/bootstrap.sh -index 98cf88b..54690aa 100755 ---- a/bootstrap.sh -+++ b/bootstrap.sh -@@ -228,6 +228,7 @@ if test "x$BJAM" = x; then - echo "tools/build/src/engine/$arch/b2" - cp "$BJAM" . - cp "$my_dir/tools/build/src/engine/$arch/bjam" . -+ cp "$my_dir/tools/build/src/engine/${arch}.debug/bjam" bjam.debug - - fi - -diff --git a/tools/build/src/engine/build.sh b/tools/build/src/engine/build.sh -index 6dbc706..c69fdc7 100755 ---- a/tools/build/src/engine/build.sh -+++ b/tools/build/src/engine/build.sh -@@ -312,5 +312,5 @@ if test -x "./bootstrap/jam0" ; then - if test "${BJAM_UPDATE}" != "update" ; then - echo_run ./bootstrap/jam0 -f build.jam --toolset=$BOOST_JAM_TOOLSET "--toolset-root=$BOOST_JAM_TOOLSET_ROOT" "$@" clean - fi -- echo_run ./bootstrap/jam0 -f build.jam --toolset=$BOOST_JAM_TOOLSET "--toolset-root=$BOOST_JAM_TOOLSET_ROOT" "$@" -+ echo_run ./bootstrap/jam0 -f build.jam --toolset=$BOOST_JAM_TOOLSET "--toolset-root=$BOOST_JAM_TOOLSET_ROOT" "$@" --debug - fi --- -1.9.1 - diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-support/ca-certificates/ca-certificates/0001-certdata2pem.py-use-python3.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-support/ca-certificates/ca-certificates/0001-certdata2pem.py-use-python3.patch new file mode 100644 index 00000000..aa2c85ff --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-support/ca-certificates/ca-certificates/0001-certdata2pem.py-use-python3.patch @@ -0,0 +1,37 @@ +From b6d18ca77f131cdcaa10d0eaa9d303399767edf6 Mon Sep 17 00:00:00 2001 +From: Alexander Kanavin +Date: Wed, 28 Aug 2019 19:18:14 +0200 +Subject: [PATCH] certdata2pem.py: use python3 + +Comments in that file imply it is already py3 compatible. + +Upstream-Status: Pending +Signed-off-by: Alexander Kanavin +--- + mozilla/Makefile | 2 +- + mozilla/certdata2pem.py | 2 +- + 2 files changed, 2 insertions(+), 2 deletions(-) + +diff --git a/mozilla/Makefile b/mozilla/Makefile +index 6f46118..f98877c 100644 +--- a/mozilla/Makefile ++++ b/mozilla/Makefile +@@ -3,7 +3,7 @@ + # + + all: +- python certdata2pem.py ++ python3 certdata2pem.py + + clean: + -rm -f *.crt +diff --git a/mozilla/certdata2pem.py b/mozilla/certdata2pem.py +index 0b02b2a..7d796f1 100644 +--- a/mozilla/certdata2pem.py ++++ b/mozilla/certdata2pem.py +@@ -1,4 +1,4 @@ +-#!/usr/bin/python ++#!/usr/bin/python3 + # vim:set et sw=4: + # + # certdata2pem.py - splits certdata.txt into multiple files diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-support/ca-certificates/ca-certificates_20190110.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-support/ca-certificates/ca-certificates_20190110.bb index efd9eaa7..ce3cb217 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-support/ca-certificates/ca-certificates_20190110.bb +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-support/ca-certificates/ca-certificates_20190110.bb @@ -23,6 +23,7 @@ SRC_URI = "git://salsa.debian.org/debian/ca-certificates.git;protocol=https \ file://default-sysroot.patch \ file://sbindir.patch \ file://0003-update-ca-certificates-use-relative-symlinks-from-ET.patch \ + file://0001-certdata2pem.py-use-python3.patch \ " S = "${WORKDIR}/git" @@ -53,7 +54,7 @@ do_install () { echo "# Lines starting with ! will remove certificate on next update" echo "#" find ${D}${datadir}/ca-certificates -type f -name '*.crt' | \ - sed 's,^${D}${datadir}/ca-certificates/,,' + sed 's,^${D}${datadir}/ca-certificates/,,' | sort } >${D}${sysconfdir}/ca-certificates.conf } diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-support/consolekit/consolekit_0.4.6.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-support/consolekit/consolekit_0.4.6.bb index a17f739d..89f2d77b 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-support/consolekit/consolekit_0.4.6.bb +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-support/consolekit/consolekit_0.4.6.bb @@ -9,7 +9,7 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552 \ DEPENDS = "glib-2.0 glib-2.0-native dbus dbus-glib virtual/libx11" RDEPENDS_${PN} += "base-files" -inherit autotools pkgconfig distro_features_check +inherit autotools pkgconfig features_check # depends on virtual/libx11 REQUIRED_DISTRO_FEATURES = "x11" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-support/curl/curl_7.65.1.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-support/curl/curl_7.65.1.bb deleted file mode 100644 index e7bfe6cc..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-support/curl/curl_7.65.1.bb +++ /dev/null @@ -1,80 +0,0 @@ -SUMMARY = "Command line tool and library for client-side URL transfers" -HOMEPAGE = "http://curl.haxx.se/" -BUGTRACKER = "http://curl.haxx.se/mail/list.cgi?list=curl-tracker" -SECTION = "console/network" -LICENSE = "MIT" -LIC_FILES_CHKSUM = "file://COPYING;md5=be5d9e1419c4363f4b32037a2d3b7ffa" - -SRC_URI = "http://curl.haxx.se/download/curl-${PV}.tar.bz2 \ - file://0001-replace-krb5-config-with-pkg-config.patch \ -" - -SRC_URI[md5sum] = "03ca3fa53ac4d791be66e30ba75b56ea" -SRC_URI[sha256sum] = "cbd36df60c49e461011b4f3064cff1184bdc9969a55e9608bf5cadec4686e3f7" - -CVE_PRODUCT = "curl libcurl" -inherit autotools pkgconfig binconfig multilib_header - -PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'ipv6', d)} gnutls libidn proxy threaded-resolver verbose zlib" -PACKAGECONFIG_class-native = "ipv6 proxy ssl threaded-resolver verbose zlib" -PACKAGECONFIG_class-nativesdk = "ipv6 proxy ssl threaded-resolver verbose zlib" - -# 'ares' and 'threaded-resolver' are mutually exclusive -PACKAGECONFIG[ares] = "--enable-ares,--disable-ares,c-ares" -PACKAGECONFIG[brotli] = "--with-brotli,--without-brotli,brotli" -PACKAGECONFIG[builtinmanual] = "--enable-manual,--disable-manual" -PACKAGECONFIG[dict] = "--enable-dict,--disable-dict," -PACKAGECONFIG[gnutls] = "--with-gnutls,--without-gnutls,gnutls" -PACKAGECONFIG[gopher] = "--enable-gopher,--disable-gopher," -PACKAGECONFIG[imap] = "--enable-imap,--disable-imap," -PACKAGECONFIG[ipv6] = "--enable-ipv6,--disable-ipv6," -PACKAGECONFIG[krb5] = "--with-gssapi,--without-gssapi,krb5" -PACKAGECONFIG[ldap] = "--enable-ldap,--disable-ldap," -PACKAGECONFIG[ldaps] = "--enable-ldaps,--disable-ldaps," -PACKAGECONFIG[libidn] = "--with-libidn2,--without-libidn2,libidn2" -PACKAGECONFIG[libssh2] = "--with-libssh2,--without-libssh2,libssh2" -PACKAGECONFIG[mbedtls] = "--with-mbedtls=${STAGING_DIR_TARGET},--without-mbedtls,mbedtls" -PACKAGECONFIG[nghttp2] = "--with-nghttp2,--without-nghttp2,nghttp2" -PACKAGECONFIG[pop3] = "--enable-pop3,--disable-pop3," -PACKAGECONFIG[proxy] = "--enable-proxy,--disable-proxy," -PACKAGECONFIG[rtmpdump] = "--with-librtmp,--without-librtmp,rtmpdump" -PACKAGECONFIG[rtsp] = "--enable-rtsp,--disable-rtsp," -PACKAGECONFIG[smb] = "--enable-smb,--disable-smb," -PACKAGECONFIG[smtp] = "--enable-smtp,--disable-smtp," -PACKAGECONFIG[ssl] = "--with-ssl --with-random=/dev/urandom,--without-ssl,openssl" -PACKAGECONFIG[nss] = "--with-nss,--without-nss,nss" -PACKAGECONFIG[telnet] = "--enable-telnet,--disable-telnet," -PACKAGECONFIG[tftp] = "--enable-tftp,--disable-tftp," -PACKAGECONFIG[threaded-resolver] = "--enable-threaded-resolver,--disable-threaded-resolver" -PACKAGECONFIG[verbose] = "--enable-verbose,--disable-verbose" -PACKAGECONFIG[zlib] = "--with-zlib=${STAGING_LIBDIR}/../,--without-zlib,zlib" - -EXTRA_OECONF = " \ - --disable-libcurl-option \ - --disable-ntlm-wb \ - --enable-crypto-auth \ - --with-ca-bundle=${sysconfdir}/ssl/certs/ca-certificates.crt \ - --without-libmetalink \ - --without-libpsl \ -" - -do_install_append_class-target() { - # cleanup buildpaths from curl-config - sed -i \ - -e 's,--sysroot=${STAGING_DIR_TARGET},,g' \ - -e 's,--with-libtool-sysroot=${STAGING_DIR_TARGET},,g' \ - -e 's|${DEBUG_PREFIX_MAP}||g' \ - ${D}${bindir}/curl-config -} - -PACKAGES =+ "lib${BPN}" - -FILES_lib${BPN} = "${libdir}/lib*.so.*" -RRECOMMENDS_lib${BPN} += "ca-certificates" - -FILES_${PN} += "${datadir}/zsh" - -inherit multilib_script -MULTILIB_SCRIPTS = "${PN}-dev:${bindir}/curl-config" - -BBCLASSEXTEND = "native nativesdk" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-support/curl/curl_7.67.0.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-support/curl/curl_7.67.0.bb new file mode 100644 index 00000000..e08e08ed --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-support/curl/curl_7.67.0.bb @@ -0,0 +1,80 @@ +SUMMARY = "Command line tool and library for client-side URL transfers" +HOMEPAGE = "http://curl.haxx.se/" +BUGTRACKER = "http://curl.haxx.se/mail/list.cgi?list=curl-tracker" +SECTION = "console/network" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://COPYING;md5=be5d9e1419c4363f4b32037a2d3b7ffa" + +SRC_URI = "http://curl.haxx.se/download/curl-${PV}.tar.bz2 \ + file://0001-replace-krb5-config-with-pkg-config.patch \ +" + +SRC_URI[md5sum] = "7be288f6fd5b7b5e402ef3b36a461a24" +SRC_URI[sha256sum] = "dd5f6956821a548bf4b44f067a530ce9445cc8094fd3e7e3fc7854815858586c" + +CVE_PRODUCT = "curl libcurl" +inherit autotools pkgconfig binconfig multilib_header + +PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'ipv6', d)} gnutls libidn proxy threaded-resolver verbose zlib" +PACKAGECONFIG_class-native = "ipv6 proxy ssl threaded-resolver verbose zlib" +PACKAGECONFIG_class-nativesdk = "ipv6 proxy ssl threaded-resolver verbose zlib" + +# 'ares' and 'threaded-resolver' are mutually exclusive +PACKAGECONFIG[ares] = "--enable-ares,--disable-ares,c-ares" +PACKAGECONFIG[brotli] = "--with-brotli,--without-brotli,brotli" +PACKAGECONFIG[builtinmanual] = "--enable-manual,--disable-manual" +PACKAGECONFIG[dict] = "--enable-dict,--disable-dict," +PACKAGECONFIG[gnutls] = "--with-gnutls,--without-gnutls,gnutls" +PACKAGECONFIG[gopher] = "--enable-gopher,--disable-gopher," +PACKAGECONFIG[imap] = "--enable-imap,--disable-imap," +PACKAGECONFIG[ipv6] = "--enable-ipv6,--disable-ipv6," +PACKAGECONFIG[krb5] = "--with-gssapi,--without-gssapi,krb5" +PACKAGECONFIG[ldap] = "--enable-ldap,--disable-ldap," +PACKAGECONFIG[ldaps] = "--enable-ldaps,--disable-ldaps," +PACKAGECONFIG[libidn] = "--with-libidn2,--without-libidn2,libidn2" +PACKAGECONFIG[libssh2] = "--with-libssh2,--without-libssh2,libssh2" +PACKAGECONFIG[mbedtls] = "--with-mbedtls=${STAGING_DIR_TARGET},--without-mbedtls,mbedtls" +PACKAGECONFIG[nghttp2] = "--with-nghttp2,--without-nghttp2,nghttp2" +PACKAGECONFIG[pop3] = "--enable-pop3,--disable-pop3," +PACKAGECONFIG[proxy] = "--enable-proxy,--disable-proxy," +PACKAGECONFIG[rtmpdump] = "--with-librtmp,--without-librtmp,rtmpdump" +PACKAGECONFIG[rtsp] = "--enable-rtsp,--disable-rtsp," +PACKAGECONFIG[smb] = "--enable-smb,--disable-smb," +PACKAGECONFIG[smtp] = "--enable-smtp,--disable-smtp," +PACKAGECONFIG[ssl] = "--with-ssl --with-random=/dev/urandom,--without-ssl,openssl" +PACKAGECONFIG[nss] = "--with-nss,--without-nss,nss" +PACKAGECONFIG[telnet] = "--enable-telnet,--disable-telnet," +PACKAGECONFIG[tftp] = "--enable-tftp,--disable-tftp," +PACKAGECONFIG[threaded-resolver] = "--enable-threaded-resolver,--disable-threaded-resolver" +PACKAGECONFIG[verbose] = "--enable-verbose,--disable-verbose" +PACKAGECONFIG[zlib] = "--with-zlib=${STAGING_LIBDIR}/../,--without-zlib,zlib" + +EXTRA_OECONF = " \ + --disable-libcurl-option \ + --disable-ntlm-wb \ + --enable-crypto-auth \ + --with-ca-bundle=${sysconfdir}/ssl/certs/ca-certificates.crt \ + --without-libmetalink \ + --without-libpsl \ +" + +do_install_append_class-target() { + # cleanup buildpaths from curl-config + sed -i \ + -e 's,--sysroot=${STAGING_DIR_TARGET},,g' \ + -e 's,--with-libtool-sysroot=${STAGING_DIR_TARGET},,g' \ + -e 's|${DEBUG_PREFIX_MAP}||g' \ + ${D}${bindir}/curl-config +} + +PACKAGES =+ "lib${BPN}" + +FILES_lib${BPN} = "${libdir}/lib*.so.*" +RRECOMMENDS_lib${BPN} += "ca-certificates" + +FILES_${PN} += "${datadir}/zsh" + +inherit multilib_script +MULTILIB_SCRIPTS = "${PN}-dev:${bindir}/curl-config" + +BBCLASSEXTEND = "native nativesdk" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-support/db/db_5.3.28.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-support/db/db_5.3.28.bb index 8975647d..761d80c2 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-support/db/db_5.3.28.bb +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-support/db/db_5.3.28.bb @@ -56,10 +56,12 @@ FILES_SOLIBSDEV = "${libdir}/libdb.so ${libdir}/libdb_cxx.so" #configuration - set in local.conf to override # All the --disable-* options replace --enable-smallbuild, which breaks a bunch of stuff (eg. postfix) -DB5_CONFIG ?= "--enable-o_direct --disable-cryptography --disable-queue --disable-replication --disable-verify --disable-compat185 --disable-sql" +DB5_CONFIG ?= "--enable-o_direct --disable-cryptography --disable-queue --disable-replication --disable-compat185 --disable-sql" EXTRA_OECONF = "${DB5_CONFIG} --enable-shared --enable-cxx --with-sysroot STRIP=true" +PACKAGECONFIG[verify] = "--enable-verify, --disable-verify" + EXTRA_OEMAKE += "LIBTOOL='./${HOST_SYS}-libtool'" EXTRA_AUTORECONF += "--exclude=autoheader -I ${S}/dist/aclocal -I${S}/dist/aclocal_java" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-support/debianutils/debianutils_4.8.6.1.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-support/debianutils/debianutils_4.8.6.1.bb deleted file mode 100644 index 7cc78a68..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-support/debianutils/debianutils_4.8.6.1.bb +++ /dev/null @@ -1,57 +0,0 @@ -SUMMARY = "Miscellaneous utilities specific to Debian" -SECTION = "base" -LICENSE = "GPLv2 & SMAIL_GPL" -LIC_FILES_CHKSUM = "file://debian/copyright;md5=f01a5203d50512fc4830b4332b696a9f" - -SRC_URI = "http://snapshot.debian.org/archive/debian/20190217T160716Z/pool/main/d/${BPN}/${BPN}_${PV}.tar.xz" -# the package is taken from snapshots.debian.org; that source is static and goes stale -# so we check the latest upstream from a directory that does get updated -UPSTREAM_CHECK_URI = "${DEBIAN_MIRROR}/main/d/${BPN}/" - -SRC_URI[md5sum] = "80e2e670d8f6c0036770e971237f1f5c" -SRC_URI[sha256sum] = "099f1e8a7278b26145a2ba2dda84c4118403bfab38c8d7070a6235a7ffcb55ed" - -S = "${WORKDIR}/${BPN}" - -inherit autotools update-alternatives - -do_configure_prepend() { - sed -i -e 's:tempfile.1 which.1:which.1:g' ${S}/Makefile.am -} - -do_install_append() { - if [ "${base_bindir}" != "${bindir}" ]; then - # Debian places some utils into ${base_bindir} as does busybox - install -d ${D}${base_bindir} - for app in run-parts tempfile; do - mv ${D}${bindir}/$app ${D}${base_bindir}/$app - done - fi -} - -# Note that we package the update-alternatives name. -# -PACKAGES =+ "${PN}-run-parts" -FILES_${PN}-run-parts = "${base_bindir}/run-parts.debianutils" - -RDEPENDS_${PN} += "${PN}-run-parts" -RDEPENDS_${PN}_class-native = "" - -ALTERNATIVE_PRIORITY="30" -ALTERNATIVE_${PN} = "add-shell installkernel remove-shell savelog tempfile which" - -ALTERNATIVE_PRIORITY_${PN}-run-parts = "60" -ALTERNATIVE_${PN}-run-parts = "run-parts" - -ALTERNATIVE_${PN}-doc = "which.1" -ALTERNATIVE_LINK_NAME[which.1] = "${mandir}/man1/which.1" - -ALTERNATIVE_LINK_NAME[add-shell]="${sbindir}/add-shell" -ALTERNATIVE_LINK_NAME[installkernel]="${sbindir}/installkernel" -ALTERNATIVE_LINK_NAME[remove-shell]="${sbindir}/remove-shell" -ALTERNATIVE_LINK_NAME[run-parts]="${base_bindir}/run-parts" -ALTERNATIVE_LINK_NAME[savelog]="${bindir}/savelog" -ALTERNATIVE_LINK_NAME[tempfile]="${base_bindir}/tempfile" -ALTERNATIVE_LINK_NAME[which]="${bindir}/which" - -BBCLASSEXTEND = "native" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-support/debianutils/debianutils_4.8.6.3.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-support/debianutils/debianutils_4.8.6.3.bb new file mode 100644 index 00000000..a69d01e0 --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-support/debianutils/debianutils_4.8.6.3.bb @@ -0,0 +1,55 @@ +SUMMARY = "Miscellaneous utilities specific to Debian" +SECTION = "base" +LICENSE = "GPLv2 & SMAIL_GPL" +LIC_FILES_CHKSUM = "file://debian/copyright;md5=f01a5203d50512fc4830b4332b696a9f" + +SRC_URI = "http://snapshot.debian.org/archive/debian/20190717T213444Z/pool/main/d/${BPN}/${BPN}_${PV}.tar.xz" +# the package is taken from snapshots.debian.org; that source is static and goes stale +# so we check the latest upstream from a directory that does get updated +UPSTREAM_CHECK_URI = "${DEBIAN_MIRROR}/main/d/${BPN}/" + +SRC_URI[md5sum] = "ca57cc6621275346d7d516ab0b5fa1f5" +SRC_URI[sha256sum] = "2cc7de3afc6df1cf6d00af9938efac7ee8f739228e548e512ddc186b6a7be221" + +inherit autotools update-alternatives + +do_configure_prepend() { + sed -i -e 's:tempfile.1 which.1:which.1:g' ${S}/Makefile.am +} + +do_install_append() { + if [ "${base_bindir}" != "${bindir}" ]; then + # Debian places some utils into ${base_bindir} as does busybox + install -d ${D}${base_bindir} + for app in run-parts tempfile; do + mv ${D}${bindir}/$app ${D}${base_bindir}/$app + done + fi +} + +# Note that we package the update-alternatives name. +# +PACKAGES =+ "${PN}-run-parts" +FILES_${PN}-run-parts = "${base_bindir}/run-parts.debianutils" + +RDEPENDS_${PN} += "${PN}-run-parts" +RDEPENDS_${PN}_class-native = "" + +ALTERNATIVE_PRIORITY="30" +ALTERNATIVE_${PN} = "add-shell installkernel remove-shell savelog tempfile which" + +ALTERNATIVE_PRIORITY_${PN}-run-parts = "60" +ALTERNATIVE_${PN}-run-parts = "run-parts" + +ALTERNATIVE_${PN}-doc = "which.1" +ALTERNATIVE_LINK_NAME[which.1] = "${mandir}/man1/which.1" + +ALTERNATIVE_LINK_NAME[add-shell]="${sbindir}/add-shell" +ALTERNATIVE_LINK_NAME[installkernel]="${sbindir}/installkernel" +ALTERNATIVE_LINK_NAME[remove-shell]="${sbindir}/remove-shell" +ALTERNATIVE_LINK_NAME[run-parts]="${base_bindir}/run-parts" +ALTERNATIVE_LINK_NAME[savelog]="${bindir}/savelog" +ALTERNATIVE_LINK_NAME[tempfile]="${base_bindir}/tempfile" +ALTERNATIVE_LINK_NAME[which]="${bindir}/which" + +BBCLASSEXTEND = "native" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-support/fribidi/fribidi/meson.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-support/fribidi/fribidi/meson.patch deleted file mode 100644 index 8b3c4a99..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-support/fribidi/fribidi/meson.patch +++ /dev/null @@ -1,44 +0,0 @@ -Upstream-Status: Backport -Signed-off-by: Ross Burton - -From f5feb6c599adb52f24656f8589868039b0d14272 Mon Sep 17 00:00:00 2001 -From: Heiko Becker -Date: Fri, 7 Sep 2018 20:57:11 +0200 -Subject: [PATCH] Build generator executables natively - -They are run during the build and not installed in the end. Without -this one gets the following error from meson: "ERROR: Can not use -target gen-unicode-version as a generator because it is cross-built -and no exe wrapper is defined. You might want to set it to native -instead." - -Closes #87. - ---- - gen.tab/meson.build | 6 ++++-- - 1 file changed, 4 insertions(+), 2 deletions(-) - -diff --git a/gen.tab/meson.build b/gen.tab/meson.build -index 6006d98..8c21e98 100644 ---- a/gen.tab/meson.build -+++ b/gen.tab/meson.build -@@ -33,7 +33,8 @@ gen_unicode_version = executable('gen-unicode-version', - 'gen-unicode-version.c', - include_directories: incs, - c_args: native_args, -- install: false) -+ install: false, -+ native: true) - - fribidi_unicode_version_h = custom_target('fribidi-unicode-version.h', - input: files('unidata/ReadMe.txt', 'unidata/BidiMirroring.txt'), -@@ -67,7 +68,8 @@ foreach tab : tabs - gen_prog_src, 'packtab.c', - include_directories: incs, - c_args: native_args, -- install: false) -+ install: false, -+ native: true) - - tab_inc_file = custom_target(gen_prog_name, - input: gen_prog_inputs, diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-support/fribidi/fribidi_1.0.5.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-support/fribidi/fribidi_1.0.5.bb deleted file mode 100644 index 63b2da64..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-support/fribidi/fribidi_1.0.5.bb +++ /dev/null @@ -1,17 +0,0 @@ -SUMMARY = "Free Implementation of the Unicode Bidirectional Algorithm" -SECTION = "libs" -LICENSE = "LGPLv2.1+" -LIC_FILES_CHKSUM = "file://COPYING;md5=a916467b91076e631dd8edb7424769c7" - -SRC_URI = "https://github.com/${BPN}/${BPN}/releases/download/v${PV}/${BP}.tar.bz2 \ - file://meson.patch" -SRC_URI[md5sum] = "0f97f65038545340316ec0f4bd53df0b" -SRC_URI[sha256sum] = "6a64f2a687f5c4f203a46fa659f43dd43d1f8b845df8d723107e8a7e6158e4ce" - -UPSTREAM_CHECK_URI = "https://github.com/${BPN}/${BPN}/releases" - -inherit meson lib_package pkgconfig - -CVE_PRODUCT = "gnu_fribidi" - -BBCLASSEXTEND = "native nativesdk" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-support/fribidi/fribidi_1.0.7.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-support/fribidi/fribidi_1.0.7.bb new file mode 100644 index 00000000..67388840 --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-support/fribidi/fribidi_1.0.7.bb @@ -0,0 +1,17 @@ +SUMMARY = "Free Implementation of the Unicode Bidirectional Algorithm" +SECTION = "libs" +LICENSE = "LGPLv2.1+" +LIC_FILES_CHKSUM = "file://COPYING;md5=a916467b91076e631dd8edb7424769c7" + +SRC_URI = "https://github.com/${BPN}/${BPN}/releases/download/v${PV}/${BP}.tar.bz2 \ + " +SRC_URI[md5sum] = "4c020b0f5136dd012ee00f1e1122f6aa" +SRC_URI[sha256sum] = "5ab5f21e9f2fc57b4b40f8ea8f14dba78a5cc46d9cf94bc5e00a58e6886a935d" + +UPSTREAM_CHECK_URI = "https://github.com/${BPN}/${BPN}/releases" + +inherit meson lib_package pkgconfig + +CVE_PRODUCT = "gnu_fribidi" + +BBCLASSEXTEND = "native nativesdk" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-support/gnupg/gnupg_2.2.16.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-support/gnupg/gnupg_2.2.16.bb deleted file mode 100644 index cb7c6c5c..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-support/gnupg/gnupg_2.2.16.bb +++ /dev/null @@ -1,56 +0,0 @@ -SUMMARY = "GNU Privacy Guard - encryption and signing tools (2.x)" -HOMEPAGE = "http://www.gnupg.org/" -LICENSE = "GPLv3 & LGPLv3" -LIC_FILES_CHKSUM = "file://COPYING;md5=189af8afca6d6075ba6c9e0aa8077626 \ - file://COPYING.LGPL3;md5=a2b6bf2cb38ee52619e60f30a1fc7257" - -DEPENDS = "npth libassuan libksba zlib bzip2 readline libgcrypt" - -inherit autotools gettext texinfo pkgconfig - -UPSTREAM_CHECK_URI = "https://gnupg.org/download/index.html" -SRC_URI = "${GNUPG_MIRROR}/${BPN}/${BPN}-${PV}.tar.bz2 \ - file://0001-Use-pkg-config-to-find-pth-instead-of-pth-config.patch \ - file://0002-use-pkgconfig-instead-of-npth-config.patch \ - file://0003-dirmngr-uses-libgpg-error.patch \ - file://0004-autogen.sh-fix-find-version-for-beta-checking.patch \ - file://0001-Woverride-init-is-not-needed-with-gcc-9.patch \ - " -SRC_URI_append_class-native = " file://0001-configure.ac-use-a-custom-value-for-the-location-of-.patch \ - file://relocate.patch" - - -SRC_URI[md5sum] = "d90e186df1c06845880ea58a318f070b" -SRC_URI[sha256sum] = "6cbe8d454bf5dc204621eed3016d721b66298fa95363395bb8eeceb1d2fd14cb" - -EXTRA_OECONF = "--disable-ldap \ - --disable-ccid-driver \ - --with-zlib=${STAGING_LIBDIR}/.. \ - --with-bzip2=${STAGING_LIBDIR}/.. \ - --with-readline=${STAGING_LIBDIR}/.. \ - --enable-gpg-is-gpg2 \ - " -RRECOMMENDS_${PN} = "pinentry" - -do_configure_prepend () { - # Else these could be used in prefernce to those in aclocal-copy - rm -f ${S}/m4/gpg-error.m4 - rm -f ${S}/m4/libassuan.m4 - rm -f ${S}/m4/ksba.m4 - rm -f ${S}/m4/libgcrypt.m4 -} - -do_install_append() { - ln -sf gpg2 ${D}${bindir}/gpg - ln -sf gpgv2 ${D}${bindir}/gpgv -} - -do_install_append_class-native() { - create_wrapper ${D}${bindir}/gpg2 GNUPG_BINDIR=${STAGING_BINDIR_NATIVE} -} - -PACKAGECONFIG ??= "gnutls" -PACKAGECONFIG[gnutls] = "--enable-gnutls, --disable-gnutls, gnutls" -PACKAGECONFIG[sqlite3] = "--enable-sqlite, --disable-sqlite, sqlite3" - -BBCLASSEXTEND = "native" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-support/gnupg/gnupg_2.2.17.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-support/gnupg/gnupg_2.2.17.bb new file mode 100644 index 00000000..bb8885f1 --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-support/gnupg/gnupg_2.2.17.bb @@ -0,0 +1,73 @@ +SUMMARY = "GNU Privacy Guard - encryption and signing tools (2.x)" +HOMEPAGE = "http://www.gnupg.org/" +LICENSE = "GPLv3 & LGPLv3" +LIC_FILES_CHKSUM = "file://COPYING;md5=189af8afca6d6075ba6c9e0aa8077626 \ + file://COPYING.LGPL3;md5=a2b6bf2cb38ee52619e60f30a1fc7257" + +DEPENDS = "npth libassuan libksba zlib bzip2 readline libgcrypt" + +inherit autotools gettext texinfo pkgconfig + +UPSTREAM_CHECK_URI = "https://gnupg.org/download/index.html" +SRC_URI = "${GNUPG_MIRROR}/${BPN}/${BPN}-${PV}.tar.bz2 \ + file://0001-Use-pkg-config-to-find-pth-instead-of-pth-config.patch \ + file://0002-use-pkgconfig-instead-of-npth-config.patch \ + file://0003-dirmngr-uses-libgpg-error.patch \ + file://0004-autogen.sh-fix-find-version-for-beta-checking.patch \ + file://0001-Woverride-init-is-not-needed-with-gcc-9.patch \ + " +SRC_URI_append_class-native = " file://0001-configure.ac-use-a-custom-value-for-the-location-of-.patch \ + file://relocate.patch" + +SRC_URI[md5sum] = "1ba2d9b70c377f8e967742064c27a19c" +SRC_URI[sha256sum] = "afa262868e39b651a2db4c071fba90415154243e83a830ca00516f9a807fd514" + +EXTRA_OECONF = "--disable-ldap \ + --disable-ccid-driver \ + --with-zlib=${STAGING_LIBDIR}/.. \ + --with-bzip2=${STAGING_LIBDIR}/.. \ + --with-readline=${STAGING_LIBDIR}/.. \ + --enable-gpg-is-gpg2 \ + " + +# A minimal package containing just enough to run gpg+gpgagent (E.g. use gpgme in opkg) +PACKAGES =+ "${PN}-gpg" +FILES_${PN}-gpg = " \ + ${bindir}/gpg \ + ${bindir}/gpg2 \ + ${bindir}/gpg-agent \ +" + +# Normal package (gnupg) should depend on minimal package (gnupg-gpg) +# to ensure all tools are included. This is done only in non-native +# builds. Native builds don't have sub-packages, so appending RDEPENDS +# in this case breaks recipe parsing. +RDEPENDS_${PN} += "${@ "" if ("native" in d.getVar("PN")) else (d.getVar("PN") + "-gpg")}" + +RRECOMMENDS_${PN} = "pinentry" + +do_configure_prepend () { + # Else these could be used in prefernce to those in aclocal-copy + rm -f ${S}/m4/gpg-error.m4 + rm -f ${S}/m4/libassuan.m4 + rm -f ${S}/m4/ksba.m4 + rm -f ${S}/m4/libgcrypt.m4 +} + +do_install_append() { + ln -sf gpg2 ${D}${bindir}/gpg + ln -sf gpgv2 ${D}${bindir}/gpgv +} + +do_install_append_class-native() { + create_wrapper ${D}${bindir}/gpg2 GNUPG_BINDIR=${STAGING_BINDIR_NATIVE} + create_wrapper ${D}${bindir}/gpgconf GNUPG_BINDIR=${STAGING_BINDIR_NATIVE} + create_wrapper ${D}${bindir}/gpg-agent GNUPG_BINDIR=${STAGING_BINDIR_NATIVE} + create_wrapper ${D}${bindir}/gpg-connect-agent GNUPG_BINDIR=${STAGING_BINDIR_NATIVE} +} + +PACKAGECONFIG ??= "gnutls" +PACKAGECONFIG[gnutls] = "--enable-gnutls, --disable-gnutls, gnutls" +PACKAGECONFIG[sqlite3] = "--enable-sqlite, --disable-sqlite, sqlite3" + +BBCLASSEXTEND = "native nativesdk" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-support/gnutls/gnutls/posix-shell.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-support/gnutls/gnutls/posix-shell.patch new file mode 100644 index 00000000..938e2d1e --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-support/gnutls/gnutls/posix-shell.patch @@ -0,0 +1,39 @@ +Don't embed the path to the build-time POSIX shell as this will be +$TMPDIR/hosttools/bash, which is no good on the target. + +Instead default to /bin/sh but allow it to be set in the environment. + +This isn't really upstreamable but I filed a bug at +https://gitlab.com/gnutls/gnutls/issues/807 and hope a proper fix will be +integrated. + +Upstream-Status: Inappropriate +Signed-off-by: Ross Burton + +diff --git a/src/libopts/m4/libopts.m4 b/src/libopts/m4/libopts.m4 +index c6ad738..a62faca 100644 +--- a/src/libopts/m4/libopts.m4 ++++ b/src/libopts/m4/libopts.m4 +@@ -112,21 +112,7 @@ AC_DEFUN([INVOKE_LIBOPTS_MACROS_FIRST],[ + AC_CHECK_FUNCS([mmap canonicalize_file_name snprintf strdup strchr \ + strrchr strsignal fchmod fstat chmod]) + AC_PROG_SED +- [while : +- do +- POSIX_SHELL=`which bash` +- test -x "$POSIX_SHELL" && break +- POSIX_SHELL=`which dash` +- test -x "$POSIX_SHELL" && break +- POSIX_SHELL=/usr/xpg4/bin/sh +- test -x "$POSIX_SHELL" && break +- POSIX_SHELL=`/bin/sh -c ' +- exec 2>/dev/null +- if ! true ; then exit 1 ; fi +- echo /bin/sh'` +- test -x "$POSIX_SHELL" && break +- ]AC_MSG_ERROR([cannot locate a working POSIX shell])[ +- done] ++ POSIX_SHELL="${POSIX_SHELL:-/bin/sh}" + AC_DEFINE_UNQUOTED([POSIX_SHELL], ["${POSIX_SHELL}"], + [define to a working POSIX compliant shell]) + AC_SUBST([POSIX_SHELL]) diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-support/gnutls/gnutls_3.6.8.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-support/gnutls/gnutls_3.6.8.bb index 6c6c520e..c927063f 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-support/gnutls/gnutls_3.6.8.bb +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-support/gnutls/gnutls_3.6.8.bb @@ -19,6 +19,7 @@ SHRT_VER = "${@d.getVar('PV').split('.')[0]}.${@d.getVar('PV').split('.')[1]}" SRC_URI = "https://www.gnupg.org/ftp/gcrypt/gnutls/v${SHRT_VER}/gnutls-${PV}.tar.xz \ file://arm_eabi.patch \ + file://posix-shell.patch \ " SRC_URI[md5sum] = "9dcf0aa45d1a42e1b3ca5d39ec7c61a8" @@ -47,6 +48,9 @@ EXTRA_OECONF = " \ --with-default-trust-store-file=${sysconfdir}/ssl/certs/ca-certificates.crt \ " +# Otherwise the tools try and use HOSTTOOLS_DIR/bash as a shell. +export POSIX_SHELL="${base_bindir}/sh" + LDFLAGS_append_libc-musl = " -largp" do_configure_prepend() { diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-support/gnutls/libtasn1/0001-stdint.m4-reintroduce-GNULIB_OVERRIDES_WINT_T-check.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-support/gnutls/libtasn1/0001-stdint.m4-reintroduce-GNULIB_OVERRIDES_WINT_T-check.patch deleted file mode 100644 index 1e52d6ab..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-support/gnutls/libtasn1/0001-stdint.m4-reintroduce-GNULIB_OVERRIDES_WINT_T-check.patch +++ /dev/null @@ -1,63 +0,0 @@ -From b17dbb8d3c5605db3a1d82861fcaeef4636d1117 Mon Sep 17 00:00:00 2001 -From: "Maxin B. John" -Date: Thu, 26 Jan 2017 18:54:48 +0200 -Subject: [PATCH] stdint.m4: reintroduce GNULIB_OVERRIDES_WINT_T check - -Partially revert the gnulib commit: 5a400b3f5a1f5483dbfd75d38bdb7080218a063b -to fix the build error with musl library. - -Upstream-Status: Inappropriate - -Signed-off-by: Maxin B. John ---- - gl/m4/stdint.m4 | 27 +++++++++++++++++++++++++++ - 1 file changed, 27 insertions(+) - -diff --git a/gl/m4/stdint.m4 b/gl/m4/stdint.m4 -index 4ac854d..3dc3da1 100644 ---- a/gl/m4/stdint.m4 -+++ b/gl/m4/stdint.m4 -@@ -355,6 +355,32 @@ int32_t i32 = INT32_C (0x7fffffff); - gl_STDINT_TYPE_PROPERTIES - fi - -+ dnl Determine whether gnulib's or would, if present, -+ dnl override 'wint_t'. -+ AC_CACHE_CHECK([whether wint_t is too small], -+ [gl_cv_type_wint_t_too_small], -+ [AC_COMPILE_IFELSE( -+ [AC_LANG_PROGRAM([[ -+ /* Tru64 with Desktop Toolkit C has a bug: must be included before -+ . -+ BSD/OS 4.0.1 has a bug: , and must be -+ included before . */ -+ #if !(defined __GLIBC__ && !defined __UCLIBC__) -+ # include -+ # include -+ # include -+ #endif -+ #include -+ int verify[sizeof (wint_t) < sizeof (int) ? -1 : 1]; -+ ]])], -+ [gl_cv_type_wint_t_too_small=no], -+ [gl_cv_type_wint_t_too_small=yes])]) -+ if test $gl_cv_type_wint_t_too_small = yes; then -+ GNULIB_OVERRIDES_WINT_T=1 -+ else -+ GNULIB_OVERRIDES_WINT_T=0 -+ fi -+ - dnl The substitute stdint.h needs the substitute limit.h's _GL_INTEGER_WIDTH. - LIMITS_H=limits.h - AM_CONDITIONAL([GL_GENERATE_LIMITS_H], [test -n "$LIMITS_H"]) -@@ -363,6 +389,7 @@ int32_t i32 = INT32_C (0x7fffffff); - AC_SUBST([HAVE_SYS_BITYPES_H]) - AC_SUBST([HAVE_SYS_INTTYPES_H]) - AC_SUBST([STDINT_H]) -+ AC_SUBST([GNULIB_OVERRIDES_WINT_T]) - AM_CONDITIONAL([GL_GENERATE_STDINT_H], [test -n "$STDINT_H"]) - ]) - --- -2.4.0 - diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-support/gnutls/libtasn1/fix-gtkdoc.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-support/gnutls/libtasn1/fix-gtkdoc.patch new file mode 100644 index 00000000..bfc9b9fc --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-support/gnutls/libtasn1/fix-gtkdoc.patch @@ -0,0 +1,38 @@ +Upstream-Status: Backport [https://gitlab.com/gnutls/libtasn1/merge_requests/49] +Signed-off-by: Ross Burton + +From ebd4f871b5241809f6a5b461444a6d331e15c949 Mon Sep 17 00:00:00 2001 +From: Ross Burton +Date: Mon, 9 Sep 2019 13:11:39 +0100 +Subject: [PATCH] doc/reference: don't add empty object hierarchy chapter + +The object hierarchy section is empty because there are no GObjects in the +libtasn1 API. With gtk-doc 1.30 onwards if there are no objects then the object +hierarchy file won't exist, resulting in a failure when building the +documentation: + +| ../libtasn1-docs.xml:39: element include: XInclude error : could not load ../xml/tree_index.sgml, and no fallback was found + +Signed-off-by: Ross Burton +--- + doc/reference/libtasn1-docs.xml | 4 ---- + 1 file changed, 4 deletions(-) + +diff --git a/doc/reference/libtasn1-docs.xml b/doc/reference/libtasn1-docs.xml +index accdb85..f88b888 100644 +--- a/doc/reference/libtasn1-docs.xml ++++ b/doc/reference/libtasn1-docs.xml +@@ -34,10 +34,6 @@ + + + +- +- Object Hierarchy +- +- + + API Index + +-- +2.20.1 + diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-support/gnutls/libtasn1/fix-ldflags.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-support/gnutls/libtasn1/fix-ldflags.patch new file mode 100644 index 00000000..f18f3c62 --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-support/gnutls/libtasn1/fix-ldflags.patch @@ -0,0 +1,31 @@ +From a6f93b7ace347bc4fe29eb4a8fe4383d786cc8d0 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Tim=20R=C3=BChsen?= +Date: Tue, 23 Jul 2019 20:44:01 +0200 +Subject: [PATCH] Fix LDFLAGS to AM_LDFLAGS in src/Makefile.am +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Signed-off-by: Tim Rühsen +Upstream-Status: Backport +Signed-off-by: Anuj Mittal +--- + src/Makefile.am | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/Makefile.am b/src/Makefile.am +index 5bf3622..4459767 100644 +--- a/src/Makefile.am ++++ b/src/Makefile.am +@@ -21,7 +21,7 @@ AM_CPPFLAGS = -I$(top_builddir)/lib/includes -I$(top_srcdir)/lib/includes \ + -I$(top_builddir)/lib/gl -I$(top_srcdir)/lib/gl $(CODE_COVERAGE_CPPFLAGS) + + LDADD = ../lib/libtasn1.la +-LDFLAGS = $(CODE_COVERAGE_LDFLAGS) ++AM_LDFLAGS = $(CODE_COVERAGE_LDFLAGS) + + bin_PROGRAMS = asn1Parser asn1Coding asn1Decoding + +-- +2.21.0 + diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-support/gnutls/libtasn1_4.13.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-support/gnutls/libtasn1_4.13.bb deleted file mode 100644 index 9ee19130..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-support/gnutls/libtasn1_4.13.bb +++ /dev/null @@ -1,23 +0,0 @@ -SUMMARY = "Library for ASN.1 and DER manipulation" -HOMEPAGE = "http://www.gnu.org/software/libtasn1/" - -LICENSE = "GPLv3+ & LGPLv2.1+" -LICENSE_${PN}-bin = "GPLv3+" -LICENSE_${PN} = "LGPLv2.1+" -LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504 \ - file://COPYING.LIB;md5=4fbd65380cdd255951079008b364516c \ - file://README;endline=8;md5=c3803a3e8ca5ab5eb1e5912faa405351" - -SRC_URI = "${GNU_MIRROR}/libtasn1/libtasn1-${PV}.tar.gz \ - file://dont-depend-on-help2man.patch \ - file://0001-stdint.m4-reintroduce-GNULIB_OVERRIDES_WINT_T-check.patch \ - " - -DEPENDS = "bison-native" - -SRC_URI[md5sum] = "ce2ba4d3088119b48e7531a703669c52" -SRC_URI[sha256sum] = "7e528e8c317ddd156230c4e31d082cd13e7ddeb7a54824be82632209550c8cca" - -inherit autotools texinfo lib_package gtk-doc - -BBCLASSEXTEND = "native" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-support/gnutls/libtasn1_4.14.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-support/gnutls/libtasn1_4.14.bb new file mode 100644 index 00000000..ef2c1956 --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-support/gnutls/libtasn1_4.14.bb @@ -0,0 +1,24 @@ +SUMMARY = "Library for ASN.1 and DER manipulation" +HOMEPAGE = "http://www.gnu.org/software/libtasn1/" + +LICENSE = "GPLv3+ & LGPLv2.1+" +LICENSE_${PN}-bin = "GPLv3+" +LICENSE_${PN} = "LGPLv2.1+" +LIC_FILES_CHKSUM = "file://doc/COPYING;md5=d32239bcb673463ab874e80d47fae504 \ + file://doc/COPYING.LESSER;md5=4fbd65380cdd255951079008b364516c \ + file://LICENSE;md5=75ac100ec923f959898182307970c360" + +SRC_URI = "${GNU_MIRROR}/libtasn1/libtasn1-${PV}.tar.gz \ + file://dont-depend-on-help2man.patch \ + file://fix-ldflags.patch \ + file://fix-gtkdoc.patch \ + " + +DEPENDS = "bison-native" + +SRC_URI[md5sum] = "e9918200ed4a778e2b3cbe34c1be4205" +SRC_URI[sha256sum] = "9e604ba5c5c8ea403487695c2e407405820d98540d9de884d6e844f9a9c5ba08" + +inherit autotools texinfo lib_package gtk-doc + +BBCLASSEXTEND = "native nativesdk" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-support/gpgme/gpgme/0007-python-Add-variables-to-tests.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-support/gpgme/gpgme/0007-python-Add-variables-to-tests.patch index af9ddbf2..4c97f63c 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-support/gpgme/gpgme/0007-python-Add-variables-to-tests.patch +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-support/gpgme/gpgme/0007-python-Add-variables-to-tests.patch @@ -1,6 +1,6 @@ -From 317cdf60165d760572a26db317e3d6edb159b04e Mon Sep 17 00:00:00 2001 -From: Hongxu Jia -Date: Wed, 17 Oct 2018 23:41:09 +0800 +From 093c88817397425ee4c2333c469467229a46c9e1 Mon Sep 17 00:00:00 2001 +From: Yuan Chao +Date: Mon, 5 Aug 2019 01:00:58 +0900 Subject: [PATCH 7/7] python: Add variables to tests * configure.ac, lang/python/Makefile.am: @@ -9,16 +9,18 @@ Subject: [PATCH 7/7] python: Add variables to tests Upstream-Status: Submitted [gnupg-devel@gnupg.org] Signed-off-by: Hongxu Jia + +Signed-off-by: Yuan Chao --- configure.ac | 5 +++++ lang/python/Makefile.am | 3 +++ 2 files changed, 8 insertions(+) diff --git a/configure.ac b/configure.ac -index 865bd10..035555a 100644 +index bd85886..b5ae42e 100644 --- a/configure.ac +++ b/configure.ac -@@ -535,6 +535,11 @@ AC_ARG_ENABLE(g13-test, +@@ -533,6 +533,11 @@ AC_ARG_ENABLE(g13-test, run_g13_test=$enableval) AM_CONDITIONAL(RUN_G13_TESTS, test "$run_g13_test" = "yes") @@ -31,17 +33,17 @@ index 865bd10..035555a 100644 # Checks for header files. AC_CHECK_HEADERS_ONCE([locale.h sys/select.h sys/uio.h argp.h stdint.h diff --git a/lang/python/Makefile.am b/lang/python/Makefile.am -index ce9a108..0c8cfdc 100644 +index 551deee..0fd555e 100644 --- a/lang/python/Makefile.am +++ b/lang/python/Makefile.am -@@ -25,7 +25,10 @@ EXTRA_DIST = \ - doc \ - src +@@ -23,7 +23,10 @@ EXTRA_DIST = \ + gpgme.i \ + helpers.c helpers.h private.h ++SUBDIRS = . examples doc src +if RUN_LANG_PYTHON_TESTS - SUBDIRS = . tests + SUBDIRS = . tests examples doc src +endif -+ .PHONY: prepare prepare: copystamp diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-support/gpgme/gpgme_1.13.0.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-support/gpgme/gpgme_1.13.0.bb deleted file mode 100644 index cbd37da3..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-support/gpgme/gpgme_1.13.0.bb +++ /dev/null @@ -1,85 +0,0 @@ -SUMMARY = "High-level GnuPG encryption/signing API" -DESCRIPTION = "GnuPG Made Easy (GPGME) is a library designed to make access to GnuPG easier for applications. It provides a High-Level Crypto API for encryption, decryption, signing, signature verification and key management" -HOMEPAGE = "http://www.gnupg.org/gpgme.html" -BUGTRACKER = "https://bugs.g10code.com/gnupg/index" - -LICENSE = "GPLv2+ & LGPLv2.1+" -LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f \ - file://COPYING.LESSER;md5=bbb461211a33b134d42ed5ee802b37ff \ - file://src/gpgme.h.in;endline=23;md5=2f0bf06d1c7dcb28532a9d0f94a7ca1d \ - file://src/engine.h;endline=22;md5=4b6d8ba313d9b564cc4d4cfb1640af9d" - -UPSTREAM_CHECK_URI = "https://gnupg.org/download/index.html" -SRC_URI = "${GNUPG_MIRROR}/gpgme/${BP}.tar.bz2 \ - file://0001-Revert-build-Make-gpgme.m4-use-gpgrt-config-with-.pc.patch \ - file://0001-pkgconfig.patch \ - file://0002-gpgme-lang-python-gpg-error-config-should-not-be-use.patch \ - file://0003-Correctly-install-python-modules.patch \ - file://0004-python-import.patch \ - file://0005-gpgme-config-skip-all-lib-or-usr-lib-directories-in-.patch \ - file://0006-fix-build-path-issue.patch \ - file://0007-python-Add-variables-to-tests.patch \ - file://0008-do-not-auto-check-var-PYTHON.patch \ - " - -SRC_URI[md5sum] = "e511a0d95c507ab87e713140c82fc7d0" -SRC_URI[sha256sum] = "d4b23e47a9e784a63e029338cce0464a82ce0ae4af852886afda410f9e39c630" - -DEPENDS = "libgpg-error libassuan" -RDEPENDS_${PN}-cpp += "libstdc++" - -RDEPENDS_python2-gpg += "python-unixadmin" -RDEPENDS_python3-gpg += "python3-unixadmin" - -BINCONFIG = "${bindir}/gpgme-config" - -# Note select python2 or python3, but you can't select both at the same time -PACKAGECONFIG ??= "python3" -PACKAGECONFIG[python2] = ",,python swig-native," -PACKAGECONFIG[python3] = ",,python3 swig-native," - -# Default in configure.ac: "cl cpp python qt" -# Supported: "cl cpp python python2 python3 qt" -# python says 'search and find python2 or python3' - -# Building the C++ bindings for native requires a C++ compiler with C++11 -# support. Since these bindings are currently not needed, we can disable them. -DEFAULT_LANGUAGES = "" -DEFAULT_LANGUAGES_class-target = "cpp" -LANGUAGES ?= "${DEFAULT_LANGUAGES} python" - -PYTHON_INHERIT = "${@bb.utils.contains('PACKAGECONFIG', 'python2', 'pythonnative', '', d)}" -PYTHON_INHERIT .= "${@bb.utils.contains('PACKAGECONFIG', 'python3', 'python3native', '', d)}" - -EXTRA_OECONF += '--enable-languages="${LANGUAGES}" \ - --disable-gpgconf-test \ - --disable-gpg-test \ - --disable-gpgsm-test \ - --disable-g13-test \ - --disable-lang-python-test \ -' - -inherit autotools texinfo binconfig-disabled pkgconfig distutils-common-base ${PYTHON_INHERIT} - -export PKG_CONFIG='pkg-config' - -BBCLASSEXTEND = "native nativesdk" - -PACKAGES =+ "${PN}-cpp" -PACKAGES =. "${@bb.utils.contains('PACKAGECONFIG', 'python2', 'python2-gpg ', '', d)}" -PACKAGES =. "${@bb.utils.contains('PACKAGECONFIG', 'python3', 'python3-gpg ', '', d)}" - -FILES_${PN}-cpp = "${libdir}/libgpgmepp.so.*" -FILES_python2-gpg = "${PYTHON_SITEPACKAGES_DIR}/*" -FILES_python3-gpg = "${PYTHON_SITEPACKAGES_DIR}/*" -FILES_${PN}-dev += "${datadir}/common-lisp/source/gpgme/* \ - ${libdir}/cmake/* \ -" - -CFLAGS_append_libc-musl = " -D__error_t_defined " -do_configure_prepend () { - # Else these could be used in preference to those in aclocal-copy - rm -f ${S}/m4/gpg-error.m4 - rm -f ${S}/m4/libassuan.m4 - rm -f ${S}/m4/python.m4 -} diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-support/gpgme/gpgme_1.13.1.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-support/gpgme/gpgme_1.13.1.bb new file mode 100644 index 00000000..9fc1ae24 --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-support/gpgme/gpgme_1.13.1.bb @@ -0,0 +1,85 @@ +SUMMARY = "High-level GnuPG encryption/signing API" +DESCRIPTION = "GnuPG Made Easy (GPGME) is a library designed to make access to GnuPG easier for applications. It provides a High-Level Crypto API for encryption, decryption, signing, signature verification and key management" +HOMEPAGE = "http://www.gnupg.org/gpgme.html" +BUGTRACKER = "https://bugs.g10code.com/gnupg/index" + +LICENSE = "GPLv2+ & LGPLv2.1+" +LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f \ + file://COPYING.LESSER;md5=bbb461211a33b134d42ed5ee802b37ff \ + file://src/gpgme.h.in;endline=23;md5=2f0bf06d1c7dcb28532a9d0f94a7ca1d \ + file://src/engine.h;endline=22;md5=4b6d8ba313d9b564cc4d4cfb1640af9d" + +UPSTREAM_CHECK_URI = "https://gnupg.org/download/index.html" +SRC_URI = "${GNUPG_MIRROR}/gpgme/${BP}.tar.bz2 \ + file://0001-Revert-build-Make-gpgme.m4-use-gpgrt-config-with-.pc.patch \ + file://0001-pkgconfig.patch \ + file://0002-gpgme-lang-python-gpg-error-config-should-not-be-use.patch \ + file://0003-Correctly-install-python-modules.patch \ + file://0004-python-import.patch \ + file://0005-gpgme-config-skip-all-lib-or-usr-lib-directories-in-.patch \ + file://0006-fix-build-path-issue.patch \ + file://0007-python-Add-variables-to-tests.patch \ + file://0008-do-not-auto-check-var-PYTHON.patch \ + " + +SRC_URI[md5sum] = "198f0a908ec3cd8f0ce9a4f3a4489645" +SRC_URI[sha256sum] = "c4e30b227682374c23cddc7fdb9324a99694d907e79242a25a4deeedb393be46" + +DEPENDS = "libgpg-error libassuan" +RDEPENDS_${PN}-cpp += "libstdc++" + +RDEPENDS_python2-gpg += "python-unixadmin" +RDEPENDS_python3-gpg += "python3-unixadmin" + +BINCONFIG = "${bindir}/gpgme-config" + +# Note select python2 or python3, but you can't select both at the same time +PACKAGECONFIG ??= "python3" +PACKAGECONFIG[python2] = ",,python swig-native," +PACKAGECONFIG[python3] = ",,python3 swig-native," + +# Default in configure.ac: "cl cpp python qt" +# Supported: "cl cpp python python2 python3 qt" +# python says 'search and find python2 or python3' + +# Building the C++ bindings for native requires a C++ compiler with C++11 +# support. Since these bindings are currently not needed, we can disable them. +DEFAULT_LANGUAGES = "" +DEFAULT_LANGUAGES_class-target = "cpp" +LANGUAGES ?= "${DEFAULT_LANGUAGES} python" + +PYTHON_INHERIT = "${@bb.utils.contains('PACKAGECONFIG', 'python2', 'pythonnative', '', d)}" +PYTHON_INHERIT .= "${@bb.utils.contains('PACKAGECONFIG', 'python3', 'python3native', '', d)}" + +EXTRA_OECONF += '--enable-languages="${LANGUAGES}" \ + --disable-gpgconf-test \ + --disable-gpg-test \ + --disable-gpgsm-test \ + --disable-g13-test \ + --disable-lang-python-test \ +' + +inherit autotools texinfo binconfig-disabled pkgconfig distutils-common-base ${PYTHON_INHERIT} + +export PKG_CONFIG='pkg-config' + +BBCLASSEXTEND = "native nativesdk" + +PACKAGES =+ "${PN}-cpp" +PACKAGES =. "${@bb.utils.contains('PACKAGECONFIG', 'python2', 'python2-gpg ', '', d)}" +PACKAGES =. "${@bb.utils.contains('PACKAGECONFIG', 'python3', 'python3-gpg ', '', d)}" + +FILES_${PN}-cpp = "${libdir}/libgpgmepp.so.*" +FILES_python2-gpg = "${PYTHON_SITEPACKAGES_DIR}/*" +FILES_python3-gpg = "${PYTHON_SITEPACKAGES_DIR}/*" +FILES_${PN}-dev += "${datadir}/common-lisp/source/gpgme/* \ + ${libdir}/cmake/* \ +" + +CFLAGS_append_libc-musl = " -D__error_t_defined " +do_configure_prepend () { + # Else these could be used in preference to those in aclocal-copy + rm -f ${S}/m4/gpg-error.m4 + rm -f ${S}/m4/libassuan.m4 + rm -f ${S}/m4/python.m4 +} diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-support/iso-codes/iso-codes_4.2.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-support/iso-codes/iso-codes_4.2.bb deleted file mode 100644 index 15130dd7..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-support/iso-codes/iso-codes_4.2.bb +++ /dev/null @@ -1,19 +0,0 @@ -SUMMARY = "ISO language, territory, currency, script codes and their translations" -HOMEPAGE = "https://salsa.debian.org/iso-codes-team/iso-codes" -BUGTRACKER = "https://salsa.debian.org/iso-codes-team/iso-codes/issues" - -LICENSE = "LGPLv2.1" -LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c" - -SRC_URI = "git://salsa.debian.org/iso-codes-team/iso-codes.git;protocol=http" -SRCREV = "58a4f20f8e6f4d8f9545333f3eae4cfe5678de16" - -# inherit gettext cannot be used, because it adds gettext-native to BASEDEPENDS which -# are inhibited by allarch -DEPENDS = "gettext-native" - -S = "${WORKDIR}/git" - -inherit allarch autotools - -FILES_${PN} += "${datadir}/xml/" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-support/iso-codes/iso-codes_4.4.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-support/iso-codes/iso-codes_4.4.bb new file mode 100644 index 00000000..332af025 --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-support/iso-codes/iso-codes_4.4.bb @@ -0,0 +1,19 @@ +SUMMARY = "ISO language, territory, currency, script codes and their translations" +HOMEPAGE = "https://salsa.debian.org/iso-codes-team/iso-codes" +BUGTRACKER = "https://salsa.debian.org/iso-codes-team/iso-codes/issues" + +LICENSE = "LGPLv2.1" +LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c" + +SRC_URI = "git://salsa.debian.org/iso-codes-team/iso-codes.git;protocol=http" +SRCREV = "38edb926592954b87eb527124da0ec68d2a748f3" + +# inherit gettext cannot be used, because it adds gettext-native to BASEDEPENDS which +# are inhibited by allarch +DEPENDS = "gettext-native" + +S = "${WORKDIR}/git" + +inherit allarch autotools + +FILES_${PN} += "${datadir}/xml/" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-support/libbsd/libbsd/0001-flopen-Add-missing-fcntl.h-include.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-support/libbsd/libbsd/0001-flopen-Add-missing-fcntl.h-include.patch deleted file mode 100644 index 8abb876c..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-support/libbsd/libbsd/0001-flopen-Add-missing-fcntl.h-include.patch +++ /dev/null @@ -1,46 +0,0 @@ -From 13c32916b4baab58d93940d57fea9ff0777f1931 Mon Sep 17 00:00:00 2001 -From: Baruch Siach -Date: Tue, 5 Jun 2018 19:21:46 +0300 -Subject: [PATCH] flopen: Add missing include -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Commit 993828d84ee (Add flopenat() function from FreeBSD) dropped the -fcntl.h header. This breaks the build with musl libc: - -flopen.c: In function ‘vflopenat’: -flopen.c:60:14: error: ‘O_CREAT’ undeclared (first use in this function) - if (flags & O_CREAT) { - ^~~~~~~ - -Restore the fcntl.h header include to fix the build. - -Fixes: commit 993828d84eed0468c6c15b2818e534e6b134b8e4 -Submitted-also-by: parazyd -Signed-off-by: Baruch Siach -Signed-off-by: Guillem Jover - -Upstream-Status: Backport -[https://gitlab.freedesktop.org/libbsd/libbsd/commit/13c32916b4baab58d93940d57fea9ff0777f1931] - -Signed-off-by: Yi Zhao ---- - src/flopen.c | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/src/flopen.c b/src/flopen.c -index b9972c9..ff20d07 100644 ---- a/src/flopen.c -+++ b/src/flopen.c -@@ -32,6 +32,7 @@ - #include - - #include -+#include - #include - #include - --- -2.7.4 - diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-support/libbsd/libbsd_0.10.0.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-support/libbsd/libbsd_0.10.0.bb new file mode 100644 index 00000000..eaf244a3 --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-support/libbsd/libbsd_0.10.0.bb @@ -0,0 +1,41 @@ +# Copyright (C) 2013 Khem Raj +# Released under the MIT license (see COPYING.MIT for the terms) + +SUMMARY = "Library of utility functions from BSD systems" +DESCRIPTION = "This library provides useful functions commonly found on BSD systems, \ + and lacking on others like GNU systems, thus making it easier to port \ + projects with strong BSD origins, without needing to embed the same \ + code over and over again on each project." + +HOMEPAGE = "http://libbsd.freedesktop.org/wiki/" +# There seems to be more licenses used in the code, I don't think we want to list them all here, complete list: +# OE @ ~/projects/libbsd $ grep ^License: COPYING | sort -u +# License: BSD-2-clause +# License: BSD-2-clause-NetBSD +# License: BSD-2-clause-author +# License: BSD-2-clause-verbatim +# License: BSD-3-clause +# License: BSD-3-clause-author +# License: BSD-3-clause-John-Birrell +# License: BSD-3-clause-Regents +# License: BSD-4-clause-Christopher-G-Demetriou +# License: BSD-4-clause-Niels-Provos +# License: BSD-5-clause-Peter-Wemm +# License: Beerware +# License: Expat +# License: ISC +# License: ISC-Original +# License: public-domain +# License: public-domain-Colin-Plumb +LICENSE = "BSD-4-Clause & ISC & PD" +LIC_FILES_CHKSUM = "file://COPYING;md5=2120be0173469a06ed185b688e0e1ae0" +SECTION = "libs" + +SRC_URI = "http://libbsd.freedesktop.org/releases/${BPN}-${PV}.tar.xz" + +SRC_URI[md5sum] = "ead96d240d02faa5b921c0aa50c812b5" +SRC_URI[sha256sum] = "34b8adc726883d0e85b3118fa13605e179a62b31ba51f676136ecb2d0bc1a887" + +inherit autotools pkgconfig + +BBCLASSEXTEND = "native nativesdk" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-support/libbsd/libbsd_0.9.1.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-support/libbsd/libbsd_0.9.1.bb deleted file mode 100644 index 2b75cdf9..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-support/libbsd/libbsd_0.9.1.bb +++ /dev/null @@ -1,44 +0,0 @@ -# Copyright (C) 2013 Khem Raj -# Released under the MIT license (see COPYING.MIT for the terms) - -SUMMARY = "Library of utility functions from BSD systems" -DESCRIPTION = "This library provides useful functions commonly found on BSD systems, \ - and lacking on others like GNU systems, thus making it easier to port \ - projects with strong BSD origins, without needing to embed the same \ - code over and over again on each project." - -HOMEPAGE = "http://libbsd.freedesktop.org/wiki/" -# There seems to be more licenses used in the code, I don't think we want to list them all here, complete list: -# OE @ ~/projects/libbsd $ grep ^License: COPYING | sort -u -# License: BSD-2-clause -# License: BSD-2-clause-NetBSD -# License: BSD-2-clause-author -# License: BSD-2-clause-verbatim -# License: BSD-3-clause -# License: BSD-3-clause-author -# License: BSD-3-clause-John-Birrell -# License: BSD-3-clause-Regents -# License: BSD-4-clause-Christopher-G-Demetriou -# License: BSD-4-clause-Niels-Provos -# License: BSD-5-clause-Peter-Wemm -# License: Beerware -# License: Expat -# License: ISC -# License: ISC-Original -# License: public-domain -# License: public-domain-Colin-Plumb -LICENSE = "BSD-4-Clause & ISC & PD" -LIC_FILES_CHKSUM = "file://COPYING;md5=b552602fda69e34c753d26de383f33c5" -SECTION = "libs" - -SRC_URI = " \ - http://libbsd.freedesktop.org/releases/${BPN}-${PV}.tar.xz \ - file://0001-flopen-Add-missing-fcntl.h-include.patch \ -" - -SRC_URI[md5sum] = "a74b80c4143afa032c90226a4518fffe" -SRC_URI[sha256sum] = "56d835742327d69faccd16955a60b6dcf30684a8da518c4eca0ac713b9e0a7a4" - -inherit autotools pkgconfig - -BBCLASSEXTEND = "native nativesdk" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-support/libcap-ng/libcap-ng b/Contrib-Inspur/openbmc/poky/meta/recipes-support/libcap-ng/libcap-ng deleted file mode 120000 index fb7744d2..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-support/libcap-ng/libcap-ng +++ /dev/null @@ -1 +0,0 @@ -libcap-ng-python \ No newline at end of file diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-support/libcap-ng/libcap-ng-python_0.7.10.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-support/libcap-ng/libcap-ng-python_0.7.10.bb new file mode 100644 index 00000000..43f76dc5 --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-support/libcap-ng/libcap-ng-python_0.7.10.bb @@ -0,0 +1,29 @@ +require libcap-ng.inc + +FILESEXTRAPATHS_prepend := "${THISDIR}/libcap-ng:" + +SUMMARY .= " - python" + +inherit lib_package autotools python3native + +DEPENDS += "libcap-ng python3 swig-native" + +S = "${WORKDIR}/libcap-ng-${PV}" + +EXTRA_OECONF += "--with-python --with-python3" +EXTRA_OEMAKE += "PYLIBVER='python${PYTHON_BASEVERSION}${PYTHON_ABI}' PYINC='${STAGING_INCDIR}/${PYLIBVER}'" + +do_install_append() { + rm -rf ${D}${bindir} + rm -rf ${D}${libdir}/.debug + rm -f ${D}${libdir}/lib* + rm -rf ${D}${libdir}/pkgconfig + rm -rf ${D}${datadir} + rm -rf ${D}${includedir} +} + +# PACKAGES = "${PN}" + +FILES_${PN} = "${libdir}/python${PYTHON_BASEVERSION}" +FILES_${PN}-dbg =+ "${PYTHON_SITEPACKAGES_DIR}/.debug/_capng.so" + diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-support/libcap-ng/libcap-ng-python_0.7.9.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-support/libcap-ng/libcap-ng-python_0.7.9.bb deleted file mode 100644 index e49b445f..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-support/libcap-ng/libcap-ng-python_0.7.9.bb +++ /dev/null @@ -1,27 +0,0 @@ -require libcap-ng.inc - -SUMMARY .= " - python" - -inherit lib_package autotools python3native - -DEPENDS += "libcap-ng python3 swig-native" - -S = "${WORKDIR}/libcap-ng-${PV}" - -EXTRA_OECONF += "--with-python --with-python3" -EXTRA_OEMAKE += "PYLIBVER='python${PYTHON_BASEVERSION}${PYTHON_ABI}' PYINC='${STAGING_INCDIR}/${PYLIBVER}'" - -do_install_append() { - rm -rf ${D}${bindir} - rm -rf ${D}${libdir}/.debug - rm -f ${D}${libdir}/lib* - rm -rf ${D}${libdir}/pkgconfig - rm -rf ${D}${datadir} - rm -rf ${D}${includedir} -} - -# PACKAGES = "${PN}" - -FILES_${PN} = "${libdir}/python${PYTHON_BASEVERSION}" -FILES_${PN}-dbg =+ "${PYTHON_SITEPACKAGES_DIR}/.debug/_capng.so" - diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-support/libcap-ng/libcap-ng.inc b/Contrib-Inspur/openbmc/poky/meta/recipes-support/libcap-ng/libcap-ng.inc index 739b91fd..aec83896 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-support/libcap-ng/libcap-ng.inc +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-support/libcap-ng/libcap-ng.inc @@ -11,7 +11,7 @@ SRC_URI = "http://people.redhat.com/sgrubb/libcap-ng/libcap-ng-${PV}.tar.gz \ file://python.patch \ " -SRC_URI[md5sum] = "2398d695508fab9ce33668c53a89b0e9" -SRC_URI[sha256sum] = "4a1532bcf3731aade40936f6d6a586ed5a66ca4c7455e1338d1f6c3e09221328" +SRC_URI[md5sum] = "57dc267e2949cdecb651a929f9206572" +SRC_URI[sha256sum] = "a84ca7b4e0444283ed269b7a29f5b6187f647c82e2b876636b49b9a744f0ffbf" -BBCLASSEXTEND = "native nativesdk" \ No newline at end of file +BBCLASSEXTEND = "native nativesdk" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-support/libcap-ng/libcap-ng-python/python.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-support/libcap-ng/libcap-ng/python.patch similarity index 100% rename from Contrib-Inspur/openbmc/poky/meta/recipes-support/libcap-ng/libcap-ng-python/python.patch rename to Contrib-Inspur/openbmc/poky/meta/recipes-support/libcap-ng/libcap-ng/python.patch diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-support/libcap-ng/libcap-ng_0.7.10.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-support/libcap-ng/libcap-ng_0.7.10.bb new file mode 100644 index 00000000..a9a04657 --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-support/libcap-ng/libcap-ng_0.7.10.bb @@ -0,0 +1,18 @@ +require libcap-ng.inc + +inherit lib_package autotools + +EXTRA_OECONF += "--without-python --without-python3" +LDFLAGS_append_class-native = " -pthread" + +BBCLASSEXTEND = "native nativesdk" + +do_install_append() { + # Moving libcap-ng to base_libdir + if [ ! ${D}${libdir} -ef ${D}${base_libdir} ]; then + mkdir -p ${D}/${base_libdir}/ + mv -f ${D}${libdir}/libcap-ng.so.* ${D}${base_libdir}/ + relpath=${@os.path.relpath("${base_libdir}", "${libdir}")} + ln -sf ${relpath}/libcap-ng.so.0.0.0 ${D}${libdir}/libcap-ng.so + fi +} diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-support/libcap-ng/libcap-ng_0.7.9.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-support/libcap-ng/libcap-ng_0.7.9.bb deleted file mode 100644 index 6e6de454..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-support/libcap-ng/libcap-ng_0.7.9.bb +++ /dev/null @@ -1,17 +0,0 @@ -require libcap-ng.inc - -inherit lib_package autotools - -EXTRA_OECONF += "--without-python --without-python3" - -BBCLASSEXTEND = "native nativesdk" - -do_install_append() { - # Moving libcap-ng to base_libdir - if [ ! ${D}${libdir} -ef ${D}${base_libdir} ]; then - mkdir -p ${D}/${base_libdir}/ - mv -f ${D}${libdir}/libcap-ng.so.* ${D}${base_libdir}/ - relpath=${@os.path.relpath("${base_libdir}", "${libdir}")} - ln -sf ${relpath}/libcap-ng.so.0.0.0 ${D}${libdir}/libcap-ng.so - fi -} diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-support/libcap/libcap_2.27.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-support/libcap/libcap_2.27.bb index 4f3bac84..3f64ff76 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-support/libcap/libcap_2.27.bb +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-support/libcap/libcap_2.27.bb @@ -13,6 +13,8 @@ SRC_URI = "${KERNELORG_MIRROR}/linux/libs/security/linux-privs/${BPN}2/${BPN}-${ SRC_URI[md5sum] = "2e8f9fab32eb5ccb37969fe317fd17aa" SRC_URI[sha256sum] = "dac1792d0118bee6aae6ba7fb93ff1602c6a9bda812fd63916eee1435b9c486a" +UPSTREAM_CHECK_URI = "https://www.kernel.org/pub/linux/libs/security/linux-privs/${BPN}2/" + inherit lib_package # do NOT pass target cflags to host compilations diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-support/libcheck/libcheck_0.12.0.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-support/libcheck/libcheck_0.12.0.bb deleted file mode 100644 index 94b0dc1b..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-support/libcheck/libcheck_0.12.0.bb +++ /dev/null @@ -1,24 +0,0 @@ -SUMMARY = "Check - unit testing framework for C code" -HOMEPAGE = "https://libcheck.github.io/check/" -SECTION = "devel" - -LICENSE = "LGPLv2.1+" -LIC_FILES_CHKSUM = "file://COPYING.LESSER;md5=2d5025d4aa3495befef8f17206a5b0a1" - -SRC_URI = "https://github.com/${BPN}/check/releases/download/${PV}/check-${PV}.tar.gz \ - file://not-echo-compiler-info-to-check_stdint.h.patch" -SRC_URI[md5sum] = "31b17c6075820a434119592941186f70" -SRC_URI[sha256sum] = "464201098bee00e90f5c4bdfa94a5d3ead8d641f9025b560a27755a83b824234" -UPSTREAM_CHECK_URI = "https://github.com/libcheck/check/releases/" - -S = "${WORKDIR}/check-${PV}" - -inherit autotools pkgconfig texinfo - -CACHED_CONFIGUREVARS += "ac_cv_path_AWK_PATH=${bindir}/gawk" - -RREPLACES_${PN} = "check (<= 0.9.5)" -RDEPENDS_${PN} += "gawk" -RDEPENDS_${PN}_class-native = "" - -BBCLASSEXTEND = "native nativesdk" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-support/libcheck/libcheck_0.13.0.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-support/libcheck/libcheck_0.13.0.bb new file mode 100644 index 00000000..226417f9 --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-support/libcheck/libcheck_0.13.0.bb @@ -0,0 +1,29 @@ +SUMMARY = "Check - unit testing framework for C code" +HOMEPAGE = "https://libcheck.github.io/check/" +SECTION = "devel" + +LICENSE = "LGPLv2.1+" +LIC_FILES_CHKSUM = "file://COPYING.LESSER;md5=2d5025d4aa3495befef8f17206a5b0a1" + +SRC_URI = "https://github.com/${BPN}/check/releases/download/${PV}/check-${PV}.tar.gz \ + file://not-echo-compiler-info-to-check_stdint.h.patch" +SRC_URI[md5sum] = "2c730c40b08482eaeb10132517970593" +SRC_URI[sha256sum] = "c4336b31447acc7e3266854f73ec188cdb15554d0edd44739631da174a569909" +UPSTREAM_CHECK_URI = "https://github.com/libcheck/check/releases/" + +S = "${WORKDIR}/check-${PV}" + +inherit autotools pkgconfig texinfo + +CACHED_CONFIGUREVARS += "ac_cv_path_AWK_PATH=${bindir}/gawk" + +RREPLACES_${PN} = "check (<= 0.9.5)" + +BBCLASSEXTEND = "native nativesdk" + +PACKAGES =+ "checkmk" + +FILES_checkmk = "${bindir}/checkmk" + +RDEPENDS_checkmk = "gawk" + diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-support/libevdev/libevdev_1.7.0.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-support/libevdev/libevdev_1.7.0.bb deleted file mode 100644 index abd6f386..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-support/libevdev/libevdev_1.7.0.bb +++ /dev/null @@ -1,14 +0,0 @@ -SUMMARY = "Wrapper library for evdev devices" -HOMEPAGE = "http://www.freedesktop.org/wiki/Software/libevdev/" -SECTION = "libs" - -LICENSE = "MIT-X" -LIC_FILES_CHKSUM = "file://COPYING;md5=75aae0d38feea6fda97ca381cb9132eb \ - file://libevdev/libevdev.h;endline=21;md5=7ff4f0b5113252c2f1a828e0bbad98d1" - -SRC_URI = "http://www.freedesktop.org/software/libevdev/${BP}.tar.xz" - -SRC_URI[md5sum] = "fabe87d8d7d7f7cdb4a26e5dc99fc517" -SRC_URI[sha256sum] = "11dbe1f2b1d03a51f3e9a196757a75c3a999042ce34cf1fdc00a2363e5a2e369" - -inherit autotools pkgconfig diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-support/libevdev/libevdev_1.8.0.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-support/libevdev/libevdev_1.8.0.bb new file mode 100644 index 00000000..84274987 --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-support/libevdev/libevdev_1.8.0.bb @@ -0,0 +1,13 @@ +SUMMARY = "Wrapper library for evdev devices" +HOMEPAGE = "http://www.freedesktop.org/wiki/Software/libevdev/" +SECTION = "libs" + +LICENSE = "MIT-X" +LIC_FILES_CHKSUM = "file://COPYING;md5=75aae0d38feea6fda97ca381cb9132eb \ + file://libevdev/libevdev.h;endline=21;md5=7ff4f0b5113252c2f1a828e0bbad98d1" + +SRC_URI = "http://www.freedesktop.org/software/libevdev/${BP}.tar.xz" +SRC_URI[md5sum] = "879631080be18526737e33b63d848039" +SRC_URI[sha256sum] = "20d3cae4efd277f485abdf8f2a7c46588e539998b5a08c2c4d368218379d4211" + +inherit autotools pkgconfig diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-support/libevent/libevent/run-ptest b/Contrib-Inspur/openbmc/poky/meta/recipes-support/libevent/libevent/run-ptest index 0241851c..d3b5e793 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-support/libevent/libevent/run-ptest +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-support/libevent/libevent/run-ptest @@ -1,18 +1,29 @@ #!/bin/sh -fail=0 -for test in ./test/* -do - $test - if [ $? -ne 0 ] - then - fail=1 - fi -done +# run-ptest - 'ptest' test infrastructure shell script that +# wraps the libevent test scripts +# +# Trevor Gamblin +############################################################### +LIBEVENTLIB=@libdir@/libevent +LOG="${LIBEVENTLIB}/ptest/libevent_ptest_$(date +%Y%m%d-%H%M%S).log" -if [ $fail -eq 0 ] -then - echo "PASS: libevent" -else - echo "FAIL: libevent" -fi +cd ${LIBEVENTLIB}/ptest + +# Run only the libevent "regress" test. All other test scripts in the +# libevent "test" folder are related to performance, e.g. read/write +# rates, and/or do not provide a pass/fail output that can be recorded +# in the ptest log. +./test/regress 2>&1| sed -e '/TESTS/d' -e '/tests/d' -e '/OK/ s/^/PASS: / ; /FAILED/ s/^/FAIL: / ; /SKIPPED/ s/^/SKIP: / ; /DISABLED/ s/^/SKIP: /' | cut -f1,2 -d ':' | tee -a ${LOG} + +passed=`grep PASS ${LOG}|wc -l` +failed=`grep FAIL ${LOG}|wc -l` +skipped=`grep -E SKIP ${LOG}|wc -l` +all=$((passed + failed + skipped)) + +( echo "=== Test Summary ===" + echo "TOTAL: ${all}" + echo "PASSED: ${passed}" + echo "FAILED: ${failed}" + echo "SKIPPED: ${skipped}" +) | tee -a ${LOG} diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-support/libevent/libevent_2.1.10.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-support/libevent/libevent_2.1.10.bb deleted file mode 100644 index 81ceb1cd..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-support/libevent/libevent_2.1.10.bb +++ /dev/null @@ -1,46 +0,0 @@ -SUMMARY = "An asynchronous event notification library" -HOMEPAGE = "http://libevent.org/" -BUGTRACKER = "https://github.com/libevent/libevent/issues" -SECTION = "libs" - -LICENSE = "BSD & MIT" -LIC_FILES_CHKSUM = "file://LICENSE;md5=17f20574c0b154d12236d5fbe964f549" - -SRC_URI = " \ - https://github.com/libevent/libevent/releases/download/release-${PV}-stable/${BP}-stable.tar.gz \ - file://Makefile-missing-test-dir.patch \ - file://run-ptest \ -" - -SRC_URI[md5sum] = "999caf86f52943af2363bc8077f00167" -SRC_URI[sha256sum] = "e864af41a336bb11dab1a23f32993afe963c1f69618bd9292b89ecf6904845b0" - -UPSTREAM_CHECK_URI = "http://libevent.org/" - -S = "${WORKDIR}/${BPN}-${PV}-stable" - -PACKAGECONFIG ??= "" -PACKAGECONFIG[openssl] = "--enable-openssl,--disable-openssl,openssl" - -inherit autotools - -# Needed for Debian packaging -LEAD_SONAME = "libevent-2.1.so" - -inherit ptest multilib_header - -DEPENDS = "zlib" - -BBCLASSEXTEND = "native nativesdk" - -do_install_append() { - oe_multilib_header event2/event-config.h -} - -do_install_ptest() { - install -d ${D}${PTEST_PATH}/test - for file in ${B}/test/.libs/regress ${B}/test/.libs/test* - do - install -m 0755 $file ${D}${PTEST_PATH}/test - done -} diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-support/libevent/libevent_2.1.11.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-support/libevent/libevent_2.1.11.bb new file mode 100644 index 00000000..8c7c49e7 --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-support/libevent/libevent_2.1.11.bb @@ -0,0 +1,57 @@ +SUMMARY = "An asynchronous event notification library" +HOMEPAGE = "http://libevent.org/" +BUGTRACKER = "https://github.com/libevent/libevent/issues" +SECTION = "libs" + +LICENSE = "BSD & MIT" +LIC_FILES_CHKSUM = "file://LICENSE;md5=17f20574c0b154d12236d5fbe964f549" + +SRC_URI = " \ + https://github.com/libevent/libevent/releases/download/release-${PV}-stable/${BP}-stable.tar.gz \ + file://Makefile-missing-test-dir.patch \ + file://run-ptest \ +" + +SRC_URI[md5sum] = "7f35cfe69b82d879111ec0d7b7b1c531" +SRC_URI[sha256sum] = "a65bac6202ea8c5609fd5c7e480e6d25de467ea1917c08290c521752f147283d" + +UPSTREAM_CHECK_URI = "http://libevent.org/" + +S = "${WORKDIR}/${BPN}-${PV}-stable" + +PACKAGECONFIG ??= "" +PACKAGECONFIG[openssl] = "--enable-openssl,--disable-openssl,openssl" + +inherit autotools + +# Needed for Debian packaging +LEAD_SONAME = "libevent-2.1.so" + +inherit ptest multilib_header + +DEPENDS = "zlib" + +PACKAGES_DYNAMIC = "^${PN}-.*$" +python split_libevent_libs () { + do_split_packages(d, '${libdir}', r'^libevent_([a-z]*)-.*\.so\..*', '${PN}-%s', '${SUMMARY} (%s)', prepend=True, allow_links=True) +} +PACKAGESPLITFUNCS_prepend = "split_libevent_libs " + +BBCLASSEXTEND = "native nativesdk" + +do_install_append() { + rm ${D}${bindir}/event_rpcgen.py + rmdir ${D}${bindir} + oe_multilib_header event2/event-config.h +} + +do_install_ptest() { + install -d ${D}${PTEST_PATH}/test + for file in ${B}/test/.libs/regress ${B}/test/.libs/test* + do + install -m 0755 $file ${D}${PTEST_PATH}/test + done + + # handle multilib + sed -i s:@libdir@:${libdir}:g ${D}${PTEST_PATH}/run-ptest +} diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-support/libffi/libffi/0001-Fixed-missed-ifndef-for-__mips_soft_float.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-support/libffi/libffi/0001-Fixed-missed-ifndef-for-__mips_soft_float.patch new file mode 100644 index 00000000..00a30a35 --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-support/libffi/libffi/0001-Fixed-missed-ifndef-for-__mips_soft_float.patch @@ -0,0 +1,31 @@ +From 4149a7627a998731cc246d3f58a36808745d04c8 Mon Sep 17 00:00:00 2001 +From: Carl Hurd +Date: Wed, 18 Jul 2018 09:04:32 -0400 +Subject: [PATCH] Fixed missed #ifndef for __mips_soft_float + +Signed-off-by: Peter Kjellerstedt +--- +Upstream-Status: Submitted [https://github.com/libffi/libffi/pull/442] + + src/mips/o32.S | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/src/mips/o32.S b/src/mips/o32.S +index 44e74cb..799139b 100644 +--- a/src/mips/o32.S ++++ b/src/mips/o32.S +@@ -282,9 +282,11 @@ $LCFI12: + li $13, 1 # FFI_O32 + bne $16, $13, 1f # Skip fp save if FFI_O32_SOFT_FLOAT + ++#ifndef __mips_soft_float + # Store all possible float/double registers. + s.d $f12, FA_0_0_OFF2($fp) + s.d $f14, FA_1_0_OFF2($fp) ++#endif + 1: + # prepare arguments for ffi_closure_mips_inner_O32 + REG_L a0, 4($15) # cif +-- +2.21.0 + diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-support/libffi/libffi/0001-New-RISC-V-port-281.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-support/libffi/libffi/0001-New-RISC-V-port-281.patch deleted file mode 100644 index 589c4d3c..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-support/libffi/libffi/0001-New-RISC-V-port-281.patch +++ /dev/null @@ -1,827 +0,0 @@ -From 8ac73103bf12ce4f776940cb17f3ced15a362f23 Mon Sep 17 00:00:00 2001 -From: Stef O'Rear -Date: Sun, 11 Mar 2018 05:55:15 -0700 -Subject: [PATCH] New RISC-V port (#281) - -* Add RISC-V support - -This patch adds support for the RISC-V architecture (https://riscv.org). - -This patch has been tested using QEMU user-mode emulation and GCC 7.2.0 -in the following configurations: - -* -march=rv32imac -mabi=ilp32 -* -march=rv32g -mabi=ilp32d -* -march=rv64imac -mabi=lp64 -* -march=rv64g -mabi=lp64d - -The ABI currently can be found at -https://github.com/riscv/riscv-elf-psabi-doc/blob/master/riscv-elf.md . - -* Add RISC-V to README - -* RISC-V: fix configure.host - -Upstream-Status: Backport [https://github.com/libffi/libffi/commit/3840d49aaa831d649b1597518a2903dfed0d57f3] -Signed-off-by: Alistair Francis ---- - Makefile.am | 4 + - configure.ac | 5 + - src/riscv/ffi.c | 445 ++++++++++++++++++++++++++++++++++++++++++ - src/riscv/ffitarget.h | 68 +++++++ - src/riscv/sysv.S | 214 ++++++++++++++++++++ - 5 files changed, 736 insertions(+) - create mode 100644 src/riscv/ffi.c - create mode 100644 src/riscv/ffitarget.h - create mode 100644 src/riscv/sysv.S - -diff --git a/Makefile.am b/Makefile.am -index 0e40451..3837650 100644 ---- a/Makefile.am -+++ b/Makefile.am -@@ -32,6 +32,7 @@ EXTRA_DIST = LICENSE ChangeLog.v1 ChangeLog.libgcj \ - src/powerpc/asm.h src/powerpc/aix.S src/powerpc/darwin.S \ - src/powerpc/aix_closure.S src/powerpc/darwin_closure.S \ - src/powerpc/ffi_darwin.c src/powerpc/ffitarget.h \ -+ src/riscv/ffi.c src/riscv/ffitarget.h src/riscv/sysv.S \ - src/s390/ffi.c src/s390/sysv.S src/s390/ffitarget.h \ - src/sh/ffi.c src/sh/sysv.S src/sh/ffitarget.h src/sh64/ffi.c \ - src/sh64/sysv.S src/sh64/ffitarget.h src/sparc/v8.S \ -@@ -122,6 +123,9 @@ endif - if MIPS - nodist_libffi_la_SOURCES += src/mips/ffi.c src/mips/o32.S src/mips/n32.S - endif -+if RISCV -+nodist_libffi_la_SOURCES += src/riscv/ffi.c src/riscv/sysv.S -+endif - if BFIN - nodist_libffi_la_SOURCES += src/bfin/ffi.c src/bfin/sysv.S - endif -diff --git a/configure.ac b/configure.ac -index ce30853..33375aa 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -226,6 +226,10 @@ case "$host" in - TARGET=MIPS; TARGETDIR=mips - ;; - -+ riscv*-*-*) -+ TARGET=RISCV; TARGETDIR=riscv -+ ;; -+ - nios2*-linux*) - TARGET=NIOS2; TARGETDIR=nios2 - ;; -@@ -298,6 +302,7 @@ if test $TARGETDIR = unknown; then - fi - - AM_CONDITIONAL(MIPS, test x$TARGET = xMIPS) -+AM_CONDITIONAL(RISCV, test x$TARGET = xRISCV) - AM_CONDITIONAL(BFIN, test x$TARGET = xBFIN) - AM_CONDITIONAL(SPARC, test x$TARGET = xSPARC) - AM_CONDITIONAL(X86, test x$TARGET = xX86) -diff --git a/src/riscv/ffi.c b/src/riscv/ffi.c -new file mode 100644 -index 0000000..b744fdd ---- /dev/null -+++ b/src/riscv/ffi.c -@@ -0,0 +1,445 @@ -+/* ----------------------------------------------------------------------- -+ ffi.c - Copyright (c) 2015 Michael Knyszek -+ 2015 Andrew Waterman -+ 2018 Stef O'Rear -+ Based on MIPS N32/64 port -+ -+ RISC-V Foreign Function Interface -+ -+ Permission is hereby granted, free of charge, to any person obtaining -+ a copy of this software and associated documentation files (the -+ ``Software''), to deal in the Software without restriction, including -+ without limitation the rights to use, copy, modify, merge, publish, -+ distribute, sublicense, and/or sell copies of the Software, and to -+ permit persons to whom the Software is furnished to do so, subject to -+ the following conditions: -+ -+ The above copyright notice and this permission notice shall be included -+ in all copies or substantial portions of the Software. -+ -+ THE SOFTWARE IS PROVIDED ``AS IS'', WITHOUT WARRANTY OF ANY KIND, -+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT -+ HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, -+ WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER -+ DEALINGS IN THE SOFTWARE. -+ ----------------------------------------------------------------------- */ -+ -+#include -+#include -+ -+#include -+#include -+ -+#if __riscv_float_abi_double -+#define ABI_FLEN 64 -+#define ABI_FLOAT double -+#elif __riscv_float_abi_single -+#define ABI_FLEN 32 -+#define ABI_FLOAT float -+#endif -+ -+#define NARGREG 8 -+#define STKALIGN 16 -+#define MAXCOPYARG (2 * sizeof(double)) -+ -+typedef struct call_context -+{ -+#if ABI_FLEN -+ ABI_FLOAT fa[8]; -+#endif -+ size_t a[8]; -+ /* used by the assembly code to in-place construct its own stack frame */ -+ char frame[16]; -+} call_context; -+ -+typedef struct call_builder -+{ -+ call_context *aregs; -+ int used_integer; -+ int used_float; -+ size_t *used_stack; -+} call_builder; -+ -+/* integer (not pointer) less than ABI XLEN */ -+/* FFI_TYPE_INT does not appear to be used */ -+#if __SIZEOF_POINTER__ == 8 -+#define IS_INT(type) ((type) >= FFI_TYPE_UINT8 && (type) <= FFI_TYPE_SINT64) -+#else -+#define IS_INT(type) ((type) >= FFI_TYPE_UINT8 && (type) <= FFI_TYPE_SINT32) -+#endif -+ -+#if ABI_FLEN -+typedef struct { -+ char as_elements, type1, offset2, type2; -+} float_struct_info; -+ -+#if ABI_FLEN >= 64 -+#define IS_FLOAT(type) ((type) >= FFI_TYPE_FLOAT && (type) <= FFI_TYPE_DOUBLE) -+#else -+#define IS_FLOAT(type) ((type) == FFI_TYPE_FLOAT) -+#endif -+ -+static ffi_type **flatten_struct(ffi_type *in, ffi_type **out, ffi_type **out_end) { -+ int i; -+ if (out == out_end) return out; -+ if (in->type != FFI_TYPE_STRUCT) { -+ *(out++) = in; -+ } else { -+ for (i = 0; in->elements[i]; i++) -+ out = flatten_struct(in->elements[i], out, out_end); -+ } -+ return out; -+} -+ -+/* Structs with at most two fields after flattening, one of which is of -+ floating point type, are passed in multiple registers if sufficient -+ registers are available. */ -+static float_struct_info struct_passed_as_elements(call_builder *cb, ffi_type *top) { -+ float_struct_info ret = {0, 0, 0, 0}; -+ ffi_type *fields[3]; -+ int num_floats, num_ints; -+ int num_fields = flatten_struct(top, fields, fields + 3) - fields; -+ -+ if (num_fields == 1) { -+ if (IS_FLOAT(fields[0]->type)) { -+ ret.as_elements = 1; -+ ret.type1 = fields[0]->type; -+ } -+ } else if (num_fields == 2) { -+ num_floats = IS_FLOAT(fields[0]->type) + IS_FLOAT(fields[1]->type); -+ num_ints = IS_INT(fields[0]->type) + IS_INT(fields[1]->type); -+ if (num_floats == 0 || num_floats + num_ints != 2) -+ return ret; -+ if (cb->used_float + num_floats > NARGREG || cb->used_integer + (2 - num_floats) > NARGREG) -+ return ret; -+ if (!IS_FLOAT(fields[0]->type) && !IS_FLOAT(fields[1]->type)) -+ return ret; -+ -+ ret.type1 = fields[0]->type; -+ ret.type2 = fields[1]->type; -+ ret.offset2 = ALIGN(fields[0]->size, fields[1]->alignment); -+ ret.as_elements = 1; -+ } -+ -+ return ret; -+} -+#endif -+ -+/* allocates a single register, float register, or XLEN-sized stack slot to a datum */ -+static void marshal_atom(call_builder *cb, int type, void *data) { -+ size_t value = 0; -+ switch (type) { -+ case FFI_TYPE_UINT8: value = *(uint8_t *)data; break; -+ case FFI_TYPE_SINT8: value = *(int8_t *)data; break; -+ case FFI_TYPE_UINT16: value = *(uint16_t *)data; break; -+ case FFI_TYPE_SINT16: value = *(int16_t *)data; break; -+ /* 32-bit quantities are always sign-extended in the ABI */ -+ case FFI_TYPE_UINT32: value = *(int32_t *)data; break; -+ case FFI_TYPE_SINT32: value = *(int32_t *)data; break; -+#if __SIZEOF_POINTER__ == 8 -+ case FFI_TYPE_UINT64: value = *(uint64_t *)data; break; -+ case FFI_TYPE_SINT64: value = *(int64_t *)data; break; -+#endif -+ case FFI_TYPE_POINTER: value = *(size_t *)data; break; -+ -+ /* float values may be recoded in an implementation-defined way -+ by hardware conforming to 2.1 or earlier, so use asm to -+ reinterpret floats as doubles */ -+#if ABI_FLEN >= 32 -+ case FFI_TYPE_FLOAT: -+ asm("" : "=f"(cb->aregs->fa[cb->used_float++]) : "0"(*(float *)data)); -+ return; -+#endif -+#if ABI_FLEN >= 64 -+ case FFI_TYPE_DOUBLE: -+ asm("" : "=f"(cb->aregs->fa[cb->used_float++]) : "0"(*(double *)data)); -+ return; -+#endif -+ default: FFI_ASSERT(0); break; -+ } -+ -+ if (cb->used_integer == NARGREG) { -+ *cb->used_stack++ = value; -+ } else { -+ cb->aregs->a[cb->used_integer++] = value; -+ } -+} -+ -+static void unmarshal_atom(call_builder *cb, int type, void *data) { -+ size_t value; -+ switch (type) { -+#if ABI_FLEN >= 32 -+ case FFI_TYPE_FLOAT: -+ asm("" : "=f"(*(float *)data) : "0"(cb->aregs->fa[cb->used_float++])); -+ return; -+#endif -+#if ABI_FLEN >= 64 -+ case FFI_TYPE_DOUBLE: -+ asm("" : "=f"(*(double *)data) : "0"(cb->aregs->fa[cb->used_float++])); -+ return; -+#endif -+ } -+ -+ if (cb->used_integer == NARGREG) { -+ value = *cb->used_stack++; -+ } else { -+ value = cb->aregs->a[cb->used_integer++]; -+ } -+ -+ switch (type) { -+ case FFI_TYPE_UINT8: *(uint8_t *)data = value; break; -+ case FFI_TYPE_SINT8: *(uint8_t *)data = value; break; -+ case FFI_TYPE_UINT16: *(uint16_t *)data = value; break; -+ case FFI_TYPE_SINT16: *(uint16_t *)data = value; break; -+ case FFI_TYPE_UINT32: *(uint32_t *)data = value; break; -+ case FFI_TYPE_SINT32: *(uint32_t *)data = value; break; -+#if __SIZEOF_POINTER__ == 8 -+ case FFI_TYPE_UINT64: *(uint64_t *)data = value; break; -+ case FFI_TYPE_SINT64: *(uint64_t *)data = value; break; -+#endif -+ case FFI_TYPE_POINTER: *(size_t *)data = value; break; -+ default: FFI_ASSERT(0); break; -+ } -+} -+ -+/* adds an argument to a call, or a not by reference return value */ -+static void marshal(call_builder *cb, ffi_type *type, int var, void *data) { -+ size_t realign[2]; -+ -+#if ABI_FLEN -+ if (!var && type->type == FFI_TYPE_STRUCT) { -+ float_struct_info fsi = struct_passed_as_elements(cb, type); -+ if (fsi.as_elements) { -+ marshal_atom(cb, fsi.type1, data); -+ if (fsi.offset2) -+ marshal_atom(cb, fsi.type2, ((char*)data) + fsi.offset2); -+ return; -+ } -+ } -+ -+ if (!var && cb->used_float < NARGREG && IS_FLOAT(type->type)) { -+ marshal_atom(cb, type->type, data); -+ return; -+ } -+#endif -+ -+ if (type->size > 2 * __SIZEOF_POINTER__) { -+ /* pass by reference */ -+ marshal_atom(cb, FFI_TYPE_POINTER, &data); -+ } else if (IS_INT(type->type) || type->type == FFI_TYPE_POINTER) { -+ marshal_atom(cb, type->type, data); -+ } else { -+ /* overlong integers, soft-float floats, and structs without special -+ float handling are treated identically from this point on */ -+ -+ /* variadics are aligned even in registers */ -+ if (type->alignment > __SIZEOF_POINTER__) { -+ if (var) -+ cb->used_integer = ALIGN(cb->used_integer, 2); -+ cb->used_stack = (size_t *)ALIGN(cb->used_stack, 2*__SIZEOF_POINTER__); -+ } -+ -+ memcpy(realign, data, type->size); -+ if (type->size > 0) -+ marshal_atom(cb, FFI_TYPE_POINTER, realign); -+ if (type->size > __SIZEOF_POINTER__) -+ marshal_atom(cb, FFI_TYPE_POINTER, realign + 1); -+ } -+} -+ -+/* for arguments passed by reference returns the pointer, otherwise the arg is copied (up to MAXCOPYARG bytes) */ -+static void *unmarshal(call_builder *cb, ffi_type *type, int var, void *data) { -+ size_t realign[2]; -+ void *pointer; -+ -+#if ABI_FLEN -+ if (!var && type->type == FFI_TYPE_STRUCT) { -+ float_struct_info fsi = struct_passed_as_elements(cb, type); -+ if (fsi.as_elements) { -+ unmarshal_atom(cb, fsi.type1, data); -+ if (fsi.offset2) -+ unmarshal_atom(cb, fsi.type2, ((char*)data) + fsi.offset2); -+ return data; -+ } -+ } -+ -+ if (!var && cb->used_float < NARGREG && IS_FLOAT(type->type)) { -+ unmarshal_atom(cb, type->type, data); -+ return data; -+ } -+#endif -+ -+ if (type->size > 2 * __SIZEOF_POINTER__) { -+ /* pass by reference */ -+ unmarshal_atom(cb, FFI_TYPE_POINTER, (char*)&pointer); -+ return pointer; -+ } else if (IS_INT(type->type) || type->type == FFI_TYPE_POINTER) { -+ unmarshal_atom(cb, type->type, data); -+ return data; -+ } else { -+ /* overlong integers, soft-float floats, and structs without special -+ float handling are treated identically from this point on */ -+ -+ /* variadics are aligned even in registers */ -+ if (type->alignment > __SIZEOF_POINTER__) { -+ if (var) -+ cb->used_integer = ALIGN(cb->used_integer, 2); -+ cb->used_stack = (size_t *)ALIGN(cb->used_stack, 2*__SIZEOF_POINTER__); -+ } -+ -+ if (type->size > 0) -+ unmarshal_atom(cb, FFI_TYPE_POINTER, realign); -+ if (type->size > __SIZEOF_POINTER__) -+ unmarshal_atom(cb, FFI_TYPE_POINTER, realign + 1); -+ memcpy(data, realign, type->size); -+ return data; -+ } -+} -+ -+static int passed_by_ref(call_builder *cb, ffi_type *type, int var) { -+#if ABI_FLEN -+ if (!var && type->type == FFI_TYPE_STRUCT) { -+ float_struct_info fsi = struct_passed_as_elements(cb, type); -+ if (fsi.as_elements) return 0; -+ } -+#endif -+ -+ return type->size > 2 * __SIZEOF_POINTER__; -+} -+ -+/* Perform machine dependent cif processing */ -+ffi_status ffi_prep_cif_machdep(ffi_cif *cif) { -+ cif->riscv_nfixedargs = cif->nargs; -+ return FFI_OK; -+} -+ -+/* Perform machine dependent cif processing when we have a variadic function */ -+ -+ffi_status ffi_prep_cif_machdep_var(ffi_cif *cif, unsigned int nfixedargs, unsigned int ntotalargs) { -+ cif->riscv_nfixedargs = nfixedargs; -+ return FFI_OK; -+} -+ -+/* Low level routine for calling functions */ -+extern void ffi_call_asm(void *stack, struct call_context *regs, void (*fn)(void)) FFI_HIDDEN; -+ -+void ffi_call(ffi_cif *cif, void (*fn)(void), void *rvalue, void **avalue) -+{ -+ /* this is a conservative estimate, assuming a complex return value and -+ that all remaining arguments are long long / __int128 */ -+ size_t arg_bytes = cif->nargs <= 3 ? 0 : -+ ALIGN(2 * sizeof(size_t) * (cif->nargs - 3), STKALIGN); -+ size_t rval_bytes = 0; -+ if (rvalue == NULL && cif->rtype->size > 2*__SIZEOF_POINTER__) -+ rval_bytes = ALIGN(cif->rtype->size, STKALIGN); -+ size_t alloc_size = arg_bytes + rval_bytes + sizeof(call_context); -+ -+ /* the assembly code will deallocate all stack data at lower addresses -+ than the argument region, so we need to allocate the frame and the -+ return value after the arguments in a single allocation */ -+ size_t alloc_base; -+ /* Argument region must be 16-byte aligned */ -+ if (_Alignof(max_align_t) >= STKALIGN) { -+ /* since sizeof long double is normally 16, the compiler will -+ guarantee alloca alignment to at least that much */ -+ alloc_base = (size_t)alloca(alloc_size); -+ } else { -+ alloc_base = ALIGN(alloca(alloc_size + STKALIGN - 1), STKALIGN); -+ } -+ -+ if (rval_bytes) -+ rvalue = (void*)(alloc_base + arg_bytes); -+ -+ call_builder cb; -+ cb.used_float = cb.used_integer = 0; -+ cb.aregs = (call_context*)(alloc_base + arg_bytes + rval_bytes); -+ cb.used_stack = (void*)alloc_base; -+ -+ int return_by_ref = passed_by_ref(&cb, cif->rtype, 0); -+ if (return_by_ref) -+ marshal(&cb, &ffi_type_pointer, 0, &rvalue); -+ -+ int i; -+ for (i = 0; i < cif->nargs; i++) -+ marshal(&cb, cif->arg_types[i], i >= cif->riscv_nfixedargs, avalue[i]); -+ -+ ffi_call_asm((void*)alloc_base, cb.aregs, fn); -+ -+ cb.used_float = cb.used_integer = 0; -+ if (!return_by_ref && rvalue) -+ unmarshal(&cb, cif->rtype, 0, rvalue); -+} -+ -+extern void ffi_closure_asm(void) FFI_HIDDEN; -+ -+ffi_status ffi_prep_closure_loc(ffi_closure *closure, ffi_cif *cif, void (*fun)(ffi_cif*,void*,void**,void*), void *user_data, void *codeloc) -+{ -+ uint32_t *tramp = (uint32_t *) &closure->tramp[0]; -+ uint64_t fn = (uint64_t) (uintptr_t) ffi_closure_asm; -+ -+ if (cif->abi <= FFI_FIRST_ABI || cif->abi >= FFI_LAST_ABI) -+ return FFI_BAD_ABI; -+ -+ /* we will call ffi_closure_inner with codeloc, not closure, but as long -+ as the memory is readable it should work */ -+ -+ tramp[0] = 0x00000317; /* auipc t1, 0 (i.e. t0 <- codeloc) */ -+#if __SIZEOF_POINTER__ == 8 -+ tramp[1] = 0x01033383; /* ld t2, 16(t1) */ -+#else -+ tramp[1] = 0x01032383; /* lw t2, 16(t1) */ -+#endif -+ tramp[2] = 0x00038067; /* jr t2 */ -+ tramp[3] = 0x00000013; /* nop */ -+ tramp[4] = fn; -+ tramp[5] = fn >> 32; -+ -+ closure->cif = cif; -+ closure->fun = fun; -+ closure->user_data = user_data; -+ -+ __builtin___clear_cache(codeloc, codeloc + FFI_TRAMPOLINE_SIZE); -+ -+ return FFI_OK; -+} -+ -+/* Called by the assembly code with aregs pointing to saved argument registers -+ and stack pointing to the stacked arguments. Return values passed in -+ registers will be reloaded from aregs. */ -+void FFI_HIDDEN ffi_closure_inner(size_t *stack, call_context *aregs, ffi_closure *closure) { -+ ffi_cif *cif = closure->cif; -+ void **avalue = alloca(cif->nargs * sizeof(void*)); -+ /* storage for arguments which will be copied by unmarshal(). We could -+ theoretically avoid the copies in many cases and use at most 128 bytes -+ of memory, but allocating disjoint storage for each argument is -+ simpler. */ -+ char *astorage = alloca(cif->nargs * MAXCOPYARG); -+ void *rvalue; -+ call_builder cb; -+ int return_by_ref; -+ int i; -+ -+ cb.aregs = aregs; -+ cb.used_integer = cb.used_float = 0; -+ cb.used_stack = stack; -+ -+ return_by_ref = passed_by_ref(&cb, cif->rtype, 0); -+ if (return_by_ref) -+ unmarshal(&cb, &ffi_type_pointer, 0, &rvalue); -+ else -+ rvalue = alloca(cif->rtype->size); -+ -+ for (i = 0; i < cif->nargs; i++) -+ avalue[i] = unmarshal(&cb, cif->arg_types[i], -+ i >= cif->riscv_nfixedargs, astorage + i*MAXCOPYARG); -+ -+ (closure->fun)(cif, rvalue, avalue, closure->user_data); -+ -+ if (!return_by_ref && cif->rtype->type != FFI_TYPE_VOID) { -+ cb.used_integer = cb.used_float = 0; -+ marshal(&cb, cif->rtype, 0, rvalue); -+ } -+} -diff --git a/src/riscv/ffitarget.h b/src/riscv/ffitarget.h -new file mode 100644 -index 0000000..fcaa899 ---- /dev/null -+++ b/src/riscv/ffitarget.h -@@ -0,0 +1,68 @@ -+/* -----------------------------------------------------------------*-C-*- -+ ffitarget.h - 2014 Michael Knyszek -+ -+ Target configuration macros for RISC-V. -+ -+ Permission is hereby granted, free of charge, to any person obtaining -+ a copy of this software and associated documentation files (the -+ ``Software''), to deal in the Software without restriction, including -+ without limitation the rights to use, copy, modify, merge, publish, -+ distribute, sublicense, and/or sell copies of the Software, and to -+ permit persons to whom the Software is furnished to do so, subject to -+ the following conditions: -+ -+ The above copyright notice and this permission notice shall be included -+ in all copies or substantial portions of the Software. -+ -+ THE SOFTWARE IS PROVIDED ``AS IS'', WITHOUT WARRANTY OF ANY KIND, -+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT -+ HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, -+ WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER -+ DEALINGS IN THE SOFTWARE. -+ -+ ----------------------------------------------------------------------- */ -+ -+#ifndef LIBFFI_TARGET_H -+#define LIBFFI_TARGET_H -+ -+#ifndef LIBFFI_H -+#error "Please do not include ffitarget.h directly into your source. Use ffi.h instead." -+#endif -+ -+#ifndef __riscv -+#error "libffi was configured for a RISC-V target but this does not appear to be a RISC-V compiler." -+#endif -+ -+#ifndef LIBFFI_ASM -+ -+typedef unsigned long ffi_arg; -+typedef signed long ffi_sarg; -+ -+/* FFI_UNUSED_NN and riscv_unused are to maintain ABI compatibility with a -+ distributed Berkeley patch from 2014, and can be removed at SONAME bump */ -+typedef enum ffi_abi { -+ FFI_FIRST_ABI = 0, -+ FFI_SYSV, -+ FFI_UNUSED_1, -+ FFI_UNUSED_2, -+ FFI_UNUSED_3, -+ FFI_LAST_ABI, -+ -+ FFI_DEFAULT_ABI = FFI_SYSV -+} ffi_abi; -+ -+#endif /* LIBFFI_ASM */ -+ -+/* ---- Definitions for closures ----------------------------------------- */ -+ -+#define FFI_CLOSURES 1 -+#define FFI_TRAMPOLINE_SIZE 24 -+#define FFI_NATIVE_RAW_API 0 -+#define FFI_EXTRA_CIF_FIELDS unsigned riscv_nfixedargs; unsigned riscv_unused; -+#define FFI_TARGET_SPECIFIC_VARIADIC -+ -+#endif -+ -diff --git a/src/riscv/sysv.S b/src/riscv/sysv.S -new file mode 100644 -index 0000000..2d09865 ---- /dev/null -+++ b/src/riscv/sysv.S -@@ -0,0 +1,214 @@ -+/* ----------------------------------------------------------------------- -+ ffi.c - Copyright (c) 2015 Michael Knyszek -+ 2015 Andrew Waterman -+ 2018 Stef O'Rear -+ -+ RISC-V Foreign Function Interface -+ -+ Permission is hereby granted, free of charge, to any person obtaining -+ a copy of this software and associated documentation files (the -+ ``Software''), to deal in the Software without restriction, including -+ without limitation the rights to use, copy, modify, merge, publish, -+ distribute, sublicense, and/or sell copies of the Software, and to -+ permit persons to whom the Software is furnished to do so, subject to -+ the following conditions: -+ -+ The above copyright notice and this permission notice shall be included -+ in all copies or substantial portions of the Software. -+ -+ THE SOFTWARE IS PROVIDED ``AS IS'', WITHOUT WARRANTY OF ANY KIND, -+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT -+ HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, -+ WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER -+ DEALINGS IN THE SOFTWARE. -+ ----------------------------------------------------------------------- */ -+ -+#define LIBFFI_ASM -+#include -+#include -+ -+/* Define aliases so that we can handle all ABIs uniformly */ -+ -+#if __SIZEOF_POINTER__ == 8 -+#define PTRS 8 -+#define LARG ld -+#define SARG sd -+#else -+#define PTRS 4 -+#define LARG lw -+#define SARG sw -+#endif -+ -+#if __riscv_float_abi_double -+#define FLTS 8 -+#define FLARG fld -+#define FSARG fsd -+#elif __riscv_float_abi_single -+#define FLTS 4 -+#define FLARG flw -+#define FSARG fsw -+#else -+#define FLTS 0 -+#endif -+ -+#define fp s0 -+ -+ .text -+ .globl ffi_call_asm -+ .type ffi_call_asm, @function -+ .hidden ffi_call_asm -+/* -+ struct call_context { -+ floatreg fa[8]; -+ intreg a[8]; -+ intreg pad[rv32 ? 2 : 0]; -+ intreg save_fp, save_ra; -+ } -+ void ffi_call_asm(size_t *stackargs, struct call_context *regargs, -+ void (*fn)(void)); -+*/ -+ -+#define FRAME_LEN (8 * FLTS + 8 * PTRS + 16) -+ -+ffi_call_asm: -+ .cfi_startproc -+ -+ /* -+ We are NOT going to set up an ordinary stack frame. In order to pass -+ the stacked args to the called function, we adjust our stack pointer to -+ a0, which is in the _caller's_ alloca area. We establish our own stack -+ frame at the end of the call_context. -+ -+ Anything below the arguments will be freed at this point, although we -+ preserve the call_context so that it can be read back in the caller. -+ */ -+ -+ .cfi_def_cfa 11, FRAME_LEN # interim CFA based on a1 -+ SARG fp, FRAME_LEN - 2*PTRS(a1) -+ .cfi_offset 8, -2*PTRS -+ SARG ra, FRAME_LEN - 1*PTRS(a1) -+ .cfi_offset 1, -1*PTRS -+ -+ addi fp, a1, FRAME_LEN -+ mv sp, a0 -+ .cfi_def_cfa 8, 0 # our frame is fully set up -+ -+ # Load arguments -+ mv t1, a2 -+ -+#if FLTS -+ FLARG fa0, -FRAME_LEN+0*FLTS(fp) -+ FLARG fa1, -FRAME_LEN+1*FLTS(fp) -+ FLARG fa2, -FRAME_LEN+2*FLTS(fp) -+ FLARG fa3, -FRAME_LEN+3*FLTS(fp) -+ FLARG fa4, -FRAME_LEN+4*FLTS(fp) -+ FLARG fa5, -FRAME_LEN+5*FLTS(fp) -+ FLARG fa6, -FRAME_LEN+6*FLTS(fp) -+ FLARG fa7, -FRAME_LEN+7*FLTS(fp) -+#endif -+ -+ LARG a0, -FRAME_LEN+8*FLTS+0*PTRS(fp) -+ LARG a1, -FRAME_LEN+8*FLTS+1*PTRS(fp) -+ LARG a2, -FRAME_LEN+8*FLTS+2*PTRS(fp) -+ LARG a3, -FRAME_LEN+8*FLTS+3*PTRS(fp) -+ LARG a4, -FRAME_LEN+8*FLTS+4*PTRS(fp) -+ LARG a5, -FRAME_LEN+8*FLTS+5*PTRS(fp) -+ LARG a6, -FRAME_LEN+8*FLTS+6*PTRS(fp) -+ LARG a7, -FRAME_LEN+8*FLTS+7*PTRS(fp) -+ -+ /* Call */ -+ jalr t1 -+ -+ /* Save return values - only a0/a1 (fa0/fa1) are used */ -+#if FLTS -+ FSARG fa0, -FRAME_LEN+0*FLTS(fp) -+ FSARG fa1, -FRAME_LEN+1*FLTS(fp) -+#endif -+ -+ SARG a0, -FRAME_LEN+8*FLTS+0*PTRS(fp) -+ SARG a1, -FRAME_LEN+8*FLTS+1*PTRS(fp) -+ -+ /* Restore and return */ -+ addi sp, fp, -FRAME_LEN -+ .cfi_def_cfa 2, FRAME_LEN -+ LARG ra, -1*PTRS(fp) -+ .cfi_restore 1 -+ LARG fp, -2*PTRS(fp) -+ .cfi_restore 8 -+ ret -+ .cfi_endproc -+ .size ffi_call_asm, .-ffi_call_asm -+ -+ -+/* -+ ffi_closure_asm. Expects address of the passed-in ffi_closure in t1. -+ void ffi_closure_inner(size_t *stackargs, struct call_context *regargs, -+ ffi_closure *closure); -+*/ -+ -+ .globl ffi_closure_asm -+ .hidden ffi_closure_asm -+ .type ffi_closure_asm, @function -+ffi_closure_asm: -+ .cfi_startproc -+ -+ addi sp, sp, -FRAME_LEN -+ .cfi_def_cfa_offset FRAME_LEN -+ -+ /* make a frame */ -+ SARG fp, FRAME_LEN - 2*PTRS(sp) -+ .cfi_offset 8, -2*PTRS -+ SARG ra, FRAME_LEN - 1*PTRS(sp) -+ .cfi_offset 1, -1*PTRS -+ addi fp, sp, FRAME_LEN -+ -+ /* save arguments */ -+#if FLTS -+ FSARG fa0, 0*FLTS(sp) -+ FSARG fa1, 1*FLTS(sp) -+ FSARG fa2, 2*FLTS(sp) -+ FSARG fa3, 3*FLTS(sp) -+ FSARG fa4, 4*FLTS(sp) -+ FSARG fa5, 5*FLTS(sp) -+ FSARG fa6, 6*FLTS(sp) -+ FSARG fa7, 7*FLTS(sp) -+#endif -+ -+ SARG a0, 8*FLTS+0*PTRS(sp) -+ SARG a1, 8*FLTS+1*PTRS(sp) -+ SARG a2, 8*FLTS+2*PTRS(sp) -+ SARG a3, 8*FLTS+3*PTRS(sp) -+ SARG a4, 8*FLTS+4*PTRS(sp) -+ SARG a5, 8*FLTS+5*PTRS(sp) -+ SARG a6, 8*FLTS+6*PTRS(sp) -+ SARG a7, 8*FLTS+7*PTRS(sp) -+ -+ /* enter C */ -+ addi a0, sp, FRAME_LEN -+ mv a1, sp -+ mv a2, t1 -+ -+ call ffi_closure_inner -+ -+ /* return values */ -+#if FLTS -+ FLARG fa0, 0*FLTS(sp) -+ FLARG fa1, 1*FLTS(sp) -+#endif -+ -+ LARG a0, 8*FLTS+0*PTRS(sp) -+ LARG a1, 8*FLTS+1*PTRS(sp) -+ -+ /* restore and return */ -+ LARG ra, FRAME_LEN-1*PTRS(sp) -+ .cfi_restore 1 -+ LARG fp, FRAME_LEN-2*PTRS(sp) -+ .cfi_restore 8 -+ addi sp, sp, FRAME_LEN -+ .cfi_def_cfa_offset 0 -+ ret -+ .cfi_endproc -+ .size ffi_closure_asm, .-ffi_closure_asm diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-support/libffi/libffi/0001-libffi-Support-musl-x32-build.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-support/libffi/libffi/0001-libffi-Support-musl-x32-build.patch deleted file mode 100644 index 6b167c84..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-support/libffi/libffi/0001-libffi-Support-musl-x32-build.patch +++ /dev/null @@ -1,30 +0,0 @@ -From 69c3906c85c791716bf650aa36d9361d22acf3fb Mon Sep 17 00:00:00 2001 -From: sweeaun -Date: Thu, 6 Jul 2017 16:32:46 -0700 -Subject: [PATCH] libffi: Support musl x32 build - -Support libffi build with target musl-x32. - -Upstream-Status: Pending - -Signed-off-by: sweeaun ---- - configure.ac | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/configure.ac b/configure.ac -index a7bf5ee..8ebe99c 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -177,7 +177,7 @@ case "$host" in - TARGETDIR=x86 - if test $ac_cv_sizeof_size_t = 4; then - case "$host" in -- *-gnux32) -+ *-gnux32 | *-muslx32) - TARGET=X86_64 - ;; - *) --- -2.7.4 - diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-support/libffi/libffi/0001-mips-Use-compiler-internal-define-for-linux.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-support/libffi/libffi/0001-mips-Use-compiler-internal-define-for-linux.patch deleted file mode 100644 index db96e635..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-support/libffi/libffi/0001-mips-Use-compiler-internal-define-for-linux.patch +++ /dev/null @@ -1,32 +0,0 @@ -From a5efaa96fd934eb245c234a5275fcf62698ef986 Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Thu, 2 Apr 2015 21:38:03 -0700 -Subject: [PATCH] mips: Use compiler internal define for linux - -__linux__ is defined by compiler when building for -linux platforms, lets use it - - -Upstream-Status: Pending - -Signed-off-by: Khem Raj ---- - src/mips/ffitarget.h | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/src/mips/ffitarget.h b/src/mips/ffitarget.h -index 717d659..6faa358 100644 ---- a/src/mips/ffitarget.h -+++ b/src/mips/ffitarget.h -@@ -32,7 +32,7 @@ - #error "Please do not include ffitarget.h directly into your source. Use ffi.h instead." - #endif - --#ifdef linux -+#ifdef __linux__ - # include - #elif defined(__rtems__) - /* --- -2.1.4 - diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-support/libffi/libffi/0001-mips-fix-MIPS-softfloat-build-issue.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-support/libffi/libffi/0001-mips-fix-MIPS-softfloat-build-issue.patch deleted file mode 100644 index 61c9eb31..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-support/libffi/libffi/0001-mips-fix-MIPS-softfloat-build-issue.patch +++ /dev/null @@ -1,177 +0,0 @@ -From 655e82c92d5c3875aee04322f1993d6b0774a7bf Mon Sep 17 00:00:00 2001 -From: Yousong Zhou -Date: Mon, 15 Aug 2016 15:00:13 +0800 -Subject: [PATCH] mips: fix MIPS softfloat build issue - -The patch for o32.S is taken from OpenWrt packages repo 3a7a4bf "libffi: -fix MIPS softfloat build issue with current binutils" - -Signed-off-by: Felix Fietkau -Signed-off-by: Yousong Zhou ---- -Upstream-Status: Backport [https://github.com/libffi/libffi/commit/2ded2a4f494165c93293afc14ab0be1243cf8c49] - src/mips/n32.S | 17 +++++++++++++++++ - src/mips/o32.S | 17 +++++++++++++++++ - 2 files changed, 34 insertions(+) - -diff --git a/src/mips/n32.S b/src/mips/n32.S -index c6985d3..8f25994 100644 ---- a/src/mips/n32.S -+++ b/src/mips/n32.S -@@ -107,6 +107,16 @@ loadregs: - - REG_L t6, 3*FFI_SIZEOF_ARG($fp) # load the flags word into t6. - -+#ifdef __mips_soft_float -+ REG_L a0, 0*FFI_SIZEOF_ARG(t9) -+ REG_L a1, 1*FFI_SIZEOF_ARG(t9) -+ REG_L a2, 2*FFI_SIZEOF_ARG(t9) -+ REG_L a3, 3*FFI_SIZEOF_ARG(t9) -+ REG_L a4, 4*FFI_SIZEOF_ARG(t9) -+ REG_L a5, 5*FFI_SIZEOF_ARG(t9) -+ REG_L a6, 6*FFI_SIZEOF_ARG(t9) -+ REG_L a7, 7*FFI_SIZEOF_ARG(t9) -+#else - and t4, t6, ((1< -Index: libffi-3.2.1/configure.ac -=================================================================== ---- libffi-3.2.1.orig/configure.ac -+++ libffi-3.2.1/configure.ac -@@ -592,7 +592,7 @@ AC_ARG_ENABLE(purify-safety, - +--- a/configure.ac ++++ b/configure.ac +@@ -350,7 +350,7 @@ AC_ARG_ENABLE(multi-os-directory, + # These variables are only ever used when we cross-build to X86_WIN32. # And we only support this with GCC, so... -if test "x$GCC" = "xyes"; then diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-support/libffi/libffi_3.2.1.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-support/libffi/libffi_3.2.1.bb deleted file mode 100644 index 792a1143..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-support/libffi/libffi_3.2.1.bb +++ /dev/null @@ -1,35 +0,0 @@ -SUMMARY = "A portable foreign function interface library" -HOMEPAGE = "http://sourceware.org/libffi/" -DESCRIPTION = "The `libffi' library provides a portable, high level programming interface to various calling \ -conventions. This allows a programmer to call any function specified by a call interface description at run \ -time. FFI stands for Foreign Function Interface. A foreign function interface is the popular name for the \ -interface that allows code written in one language to call code written in another language. The `libffi' \ -library really only provides the lowest, machine dependent layer of a fully featured foreign function interface. \ -A layer must exist above `libffi' that handles type conversions for values passed between the two languages." - -LICENSE = "MIT" -LIC_FILES_CHKSUM = "file://LICENSE;md5=3610bb17683a0089ed64055416b2ae1b" - -SRC_URI = "ftp://sourceware.org/pub/libffi/${BP}.tar.gz \ - file://not-win32.patch \ - file://0001-mips-Use-compiler-internal-define-for-linux.patch \ - file://0001-mips-fix-MIPS-softfloat-build-issue.patch \ - file://0001-libffi-Support-musl-x32-build.patch \ - file://0001-New-RISC-V-port-281.patch \ - " - -SRC_URI[md5sum] = "83b89587607e3eb65c70d361f13bab43" -SRC_URI[sha256sum] = "d06ebb8e1d9a22d19e38d63fdb83954253f39bedc5d46232a05645685722ca37" - -EXTRA_OECONF += "--disable-builddir" -EXTRA_OEMAKE_class-target = "LIBTOOLFLAGS='--tag=CC'" -inherit autotools texinfo - -FILES_${PN}-dev += "${libdir}/libffi-${PV}" - -# Doesn't compile in MIPS16e mode due to use of hand-written -# assembly -MIPS_INSTRUCTION_SET = "mips" - -BBCLASSEXTEND = "native nativesdk" - diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-support/libffi/libffi_3.3~rc0.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-support/libffi/libffi_3.3~rc0.bb new file mode 100644 index 00000000..8acb699d --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-support/libffi/libffi_3.3~rc0.bb @@ -0,0 +1,40 @@ +SUMMARY = "A portable foreign function interface library" +HOMEPAGE = "http://sourceware.org/libffi/" +DESCRIPTION = "The `libffi' library provides a portable, high level programming interface to various calling \ +conventions. This allows a programmer to call any function specified by a call interface description at run \ +time. FFI stands for Foreign Function Interface. A foreign function interface is the popular name for the \ +interface that allows code written in one language to call code written in another language. The `libffi' \ +library really only provides the lowest, machine dependent layer of a fully featured foreign function interface. \ +A layer must exist above `libffi' that handles type conversions for values passed between the two languages." + +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://LICENSE;md5=3610bb17683a0089ed64055416b2ae1b" + +SRC_URI = "https://github.com/libffi/libffi/releases/download/v3.3-rc0/libffi-3.3-rc0.tar.gz \ + file://not-win32.patch \ + file://0001-Fixed-missed-ifndef-for-__mips_soft_float.patch \ + " +SRC_URI[md5sum] = "8d2a82a78faf10a5e53c27d986e8f04e" +SRC_URI[sha256sum] = "403d67aabf1c05157855ea2b1d9950263fb6316536c8c333f5b9ab1eb2f20ecf" +UPSTREAM_CHECK_URI = "https://github.com/libffi/libffi/releases/" +UPSTREAM_CHECK_REGEX = "libffi-(?P\d+(\.\d+)+)\.tar" +UPSTREAM_VERSION_UNKNOWN = "1" + +EXTRA_OECONF += "--disable-builddir" +EXTRA_OEMAKE_class-target = "LIBTOOLFLAGS='--tag=CC'" +inherit autotools texinfo multilib_header + +S = "${WORKDIR}/${BPN}-3.3-rc0" + +do_install_append() { + oe_multilib_header ffi.h +} + +FILES_${PN}-dev += "${libdir}/libffi-${PV}" + +# Doesn't compile in MIPS16e mode due to use of hand-written +# assembly +MIPS_INSTRUCTION_SET = "mips" + +BBCLASSEXTEND = "native nativesdk" + diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-support/libfm/libfm_1.3.1.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-support/libfm/libfm_1.3.1.bb index 65a6f8e7..918fe3ec 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-support/libfm/libfm_1.3.1.bb +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-support/libfm/libfm_1.3.1.bb @@ -19,7 +19,7 @@ SRC_URI = "${SOURCEFORGE_MIRROR}/pcmanfm/libfm-${PV}.tar.xz \ SRC_URI[md5sum] = "c15ecd2c9317e2c385cd3f046d0b61ba" SRC_URI[sha256sum] = "96b1244bde41ca0eef0332cfb5c67bb16725dfd102128f3e6f74fadc13a1cfe4" -inherit autotools pkgconfig gtk-doc gettext distro_features_check +inherit autotools pkgconfig gtk-doc gettext features_check ANY_OF_DISTRO_FEATURES = "${GTK3DISTROFEATURES}" EXTRA_OECONF = "--with-gtk=3" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-support/libgcrypt/files/0001-Add-and-use-pkg-config-for-libgcrypt-instead-of-conf.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-support/libgcrypt/files/0001-Add-and-use-pkg-config-for-libgcrypt-instead-of-conf.patch deleted file mode 100644 index d41c3de3..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-support/libgcrypt/files/0001-Add-and-use-pkg-config-for-libgcrypt-instead-of-conf.patch +++ /dev/null @@ -1,183 +0,0 @@ -From 72b9e9040d58c15f0302bd8abda28179f04e1c5f Mon Sep 17 00:00:00 2001 -From: Richard Purdie -Date: Wed, 16 Aug 2017 10:43:18 +0800 -Subject: [PATCH 1/4] Add and use pkg-config for libgcrypt instead of -config - scripts. - -Upstream-Status: Denied [upstream have indicated they don't want a -pkg-config dependency] - -RP 2014/5/22 - -Rebase to 1.8.0 - -Signed-off-by: Hongxu Jia ---- - configure.ac | 1 + - src/libgcrypt.m4 | 71 +++-------------------------------------------------- - src/libgcrypt.pc.in | 33 +++++++++++++++++++++++++ - 3 files changed, 38 insertions(+), 67 deletions(-) - create mode 100644 src/libgcrypt.pc.in - -diff --git a/configure.ac b/configure.ac -index bbe8104..3d2de73 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -2607,6 +2607,7 @@ random/Makefile - doc/Makefile - src/Makefile - src/gcrypt.h -+src/libgcrypt.pc - src/libgcrypt-config - src/versioninfo.rc - tests/Makefile -diff --git a/src/libgcrypt.m4 b/src/libgcrypt.m4 -index c67cfec..4ea5f2c 100644 ---- a/src/libgcrypt.m4 -+++ b/src/libgcrypt.m4 -@@ -29,30 +29,6 @@ dnl is added to the gpg_config_script_warn variable. - dnl - AC_DEFUN([AM_PATH_LIBGCRYPT], - [ AC_REQUIRE([AC_CANONICAL_HOST]) -- AC_ARG_WITH(libgcrypt-prefix, -- AC_HELP_STRING([--with-libgcrypt-prefix=PFX], -- [prefix where LIBGCRYPT is installed (optional)]), -- libgcrypt_config_prefix="$withval", libgcrypt_config_prefix="") -- if test x"${LIBGCRYPT_CONFIG}" = x ; then -- if test x"${libgcrypt_config_prefix}" != x ; then -- LIBGCRYPT_CONFIG="${libgcrypt_config_prefix}/bin/libgcrypt-config" -- else -- case "${SYSROOT}" in -- /*) -- if test -x "${SYSROOT}/bin/libgcrypt-config" ; then -- LIBGCRYPT_CONFIG="${SYSROOT}/bin/libgcrypt-config" -- fi -- ;; -- '') -- ;; -- *) -- AC_MSG_WARN([Ignoring \$SYSROOT as it is not an absolute path.]) -- ;; -- esac -- fi -- fi -- -- AC_PATH_PROG(LIBGCRYPT_CONFIG, libgcrypt-config, no) - tmp=ifelse([$1], ,1:1.2.0,$1) - if echo "$tmp" | grep ':' >/dev/null 2>/dev/null ; then - req_libgcrypt_api=`echo "$tmp" | sed 's/\(.*\):\(.*\)/\1/'` -@@ -62,48 +38,13 @@ AC_DEFUN([AM_PATH_LIBGCRYPT], - min_libgcrypt_version="$tmp" - fi - -- AC_MSG_CHECKING(for LIBGCRYPT - version >= $min_libgcrypt_version) -- ok=no -- if test "$LIBGCRYPT_CONFIG" != "no" ; then -- req_major=`echo $min_libgcrypt_version | \ -- sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\)/\1/'` -- req_minor=`echo $min_libgcrypt_version | \ -- sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\)/\2/'` -- req_micro=`echo $min_libgcrypt_version | \ -- sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\)/\3/'` -- libgcrypt_config_version=`$LIBGCRYPT_CONFIG --version` -- major=`echo $libgcrypt_config_version | \ -- sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\).*/\1/'` -- minor=`echo $libgcrypt_config_version | \ -- sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\).*/\2/'` -- micro=`echo $libgcrypt_config_version | \ -- sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\).*/\3/'` -- if test "$major" -gt "$req_major"; then -- ok=yes -- else -- if test "$major" -eq "$req_major"; then -- if test "$minor" -gt "$req_minor"; then -- ok=yes -- else -- if test "$minor" -eq "$req_minor"; then -- if test "$micro" -ge "$req_micro"; then -- ok=yes -- fi -- fi -- fi -- fi -- fi -- fi -- if test $ok = yes; then -- AC_MSG_RESULT([yes ($libgcrypt_config_version)]) -- else -- AC_MSG_RESULT(no) -- fi -+ PKG_CHECK_MODULES(LIBGCRYPT, [libgcrypt >= $min_libgcrypt_version], [ok=yes], [ok=no]) -+ - if test $ok = yes; then - # If we have a recent libgcrypt, we should also check that the - # API is compatible - if test "$req_libgcrypt_api" -gt 0 ; then -- tmp=`$LIBGCRYPT_CONFIG --api-version 2>/dev/null || echo 0` -+ tmp=`$PKG_CONFIG --variable=api_version libgcrypt` - if test "$tmp" -gt 0 ; then - AC_MSG_CHECKING([LIBGCRYPT API version]) - if test "$req_libgcrypt_api" -eq "$tmp" ; then -@@ -116,10 +57,8 @@ AC_DEFUN([AM_PATH_LIBGCRYPT], - fi - fi - if test $ok = yes; then -- LIBGCRYPT_CFLAGS=`$LIBGCRYPT_CONFIG --cflags` -- LIBGCRYPT_LIBS=`$LIBGCRYPT_CONFIG --libs` - ifelse([$2], , :, [$2]) -- libgcrypt_config_host=`$LIBGCRYPT_CONFIG --host 2>/dev/null || echo none` -+ libgcrypt_config_host=`$PKG_CONFIG --variable=host libgcrypt` - if test x"$libgcrypt_config_host" != xnone ; then - if test x"$libgcrypt_config_host" != x"$host" ; then - AC_MSG_WARN([[ -@@ -134,8 +73,6 @@ AC_DEFUN([AM_PATH_LIBGCRYPT], - fi - fi - else -- LIBGCRYPT_CFLAGS="" -- LIBGCRYPT_LIBS="" - ifelse([$3], , :, [$3]) - fi - AC_SUBST(LIBGCRYPT_CFLAGS) -diff --git a/src/libgcrypt.pc.in b/src/libgcrypt.pc.in -new file mode 100644 -index 0000000..2fc8f53 ---- /dev/null -+++ b/src/libgcrypt.pc.in -@@ -0,0 +1,33 @@ -+# Process this file with autoconf to produce a pkg-config metadata file. -+# Copyright (C) 2002, 2003, 2004, 2005, 2006 Free Software Foundation -+# Author: Simon Josefsson -+# -+# This file is free software; as a special exception the author gives -+# unlimited permission to copy and/or distribute it, with or without -+# modifications, as long as this notice is preserved. -+# -+# This file is distributed in the hope that it will be useful, but -+# WITHOUT ANY WARRANTY, to the extent permitted by law; without even the -+# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. -+ -+prefix=@prefix@ -+exec_prefix=@exec_prefix@ -+libdir=@libdir@ -+includedir=@includedir@ -+ -+# API info -+api_version=@LIBGCRYPT_CONFIG_API_VERSION@ -+host=@LIBGCRYPT_CONFIG_HOST@ -+ -+# Misc information. -+symmetric_ciphers=@LIBGCRYPT_CIPHERS@ -+asymmetric_ciphers=@LIBGCRYPT_PUBKEY_CIPHERS@ -+digests=@LIBGCRYPT_DIGESTS@ -+ -+Name: libgcrypt -+Description: GNU crypto library -+URL: http://www.gnupg.org -+Version: @VERSION@ -+Libs: -L${libdir} -lgcrypt -+Libs.private: -L${libdir} -lgpg-error -+Cflags: -I${includedir} --- -1.8.3.1 - diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-support/libgcrypt/files/0001-Prefetch-GCM-look-up-tables.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-support/libgcrypt/files/0001-Prefetch-GCM-look-up-tables.patch new file mode 100644 index 00000000..4df96f00 --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-support/libgcrypt/files/0001-Prefetch-GCM-look-up-tables.patch @@ -0,0 +1,90 @@ +From 1374254c2904ab5b18ba4a890856824a102d4705 Mon Sep 17 00:00:00 2001 +From: Jussi Kivilinna +Date: Sat, 27 Apr 2019 19:33:28 +0300 +Subject: [PATCH 1/3] Prefetch GCM look-up tables + +* cipher/cipher-gcm.c (prefetch_table, do_prefetch_tables) +(prefetch_tables): New. +(ghash_internal): Call prefetch_tables. +-- + +Signed-off-by: Jussi Kivilinna + +Upstream-Status: Backport +[https://github.com/gpg/libgcrypt/commit/1374254c2904ab5b18ba4a890856824a102d4705] + +CVE: CVE-2019-12904 + +Signed-off-by: Yi Zhao +--- + cipher/cipher-gcm.c | 33 +++++++++++++++++++++++++++++++++ + 1 file changed, 33 insertions(+) + +diff --git a/cipher/cipher-gcm.c b/cipher/cipher-gcm.c +index c19f09f..11f119a 100644 +--- a/cipher/cipher-gcm.c ++++ b/cipher/cipher-gcm.c +@@ -118,6 +118,34 @@ static const u16 gcmR[256] = { + 0xbbf0, 0xba32, 0xb874, 0xb9b6, 0xbcf8, 0xbd3a, 0xbf7c, 0xbebe, + }; + ++static inline ++void prefetch_table(const void *tab, size_t len) ++{ ++ const volatile byte *vtab = tab; ++ size_t i; ++ ++ for (i = 0; i < len; i += 8 * 32) ++ { ++ (void)vtab[i + 0 * 32]; ++ (void)vtab[i + 1 * 32]; ++ (void)vtab[i + 2 * 32]; ++ (void)vtab[i + 3 * 32]; ++ (void)vtab[i + 4 * 32]; ++ (void)vtab[i + 5 * 32]; ++ (void)vtab[i + 6 * 32]; ++ (void)vtab[i + 7 * 32]; ++ } ++ ++ (void)vtab[len - 1]; ++} ++ ++static inline void ++do_prefetch_tables (const void *gcmM, size_t gcmM_size) ++{ ++ prefetch_table(gcmM, gcmM_size); ++ prefetch_table(gcmR, sizeof(gcmR)); ++} ++ + #ifdef GCM_TABLES_USE_U64 + static void + bshift (u64 * b0, u64 * b1) +@@ -365,6 +393,8 @@ do_ghash (unsigned char *result, const unsigned char *buf, const u32 *gcmM) + #define fillM(c) \ + do_fillM (c->u_mode.gcm.u_ghash_key.key, c->u_mode.gcm.gcm_table) + #define GHASH(c, result, buf) do_ghash (result, buf, c->u_mode.gcm.gcm_table) ++#define prefetch_tables(c) \ ++ do_prefetch_tables(c->u_mode.gcm.gcm_table, sizeof(c->u_mode.gcm.gcm_table)) + + #else + +@@ -430,6 +460,7 @@ do_ghash (unsigned char *hsub, unsigned char *result, const unsigned char *buf) + + #define fillM(c) do { } while (0) + #define GHASH(c, result, buf) do_ghash (c->u_mode.gcm.u_ghash_key.key, result, buf) ++#define prefetch_tables(c) do {} while (0) + + #endif /* !GCM_USE_TABLES */ + +@@ -441,6 +472,8 @@ ghash_internal (gcry_cipher_hd_t c, byte *result, const byte *buf, + const unsigned int blocksize = GCRY_GCM_BLOCK_LEN; + unsigned int burn = 0; + ++ prefetch_tables (c); ++ + while (nblocks) + { + burn = GHASH (c, result, buf); +-- +2.7.4 + diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-support/libgcrypt/files/0001-libgcrypt-fix-m4-file-for-oe-core.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-support/libgcrypt/files/0001-libgcrypt-fix-m4-file-for-oe-core.patch new file mode 100644 index 00000000..cd8a5993 --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-support/libgcrypt/files/0001-libgcrypt-fix-m4-file-for-oe-core.patch @@ -0,0 +1,149 @@ +From bee26d7c4ea0b4a397c289b819b89e78bc325ba0 Mon Sep 17 00:00:00 2001 +From: Trevor Gamblin +Date: Tue, 29 Oct 2019 14:08:32 -0400 +Subject: [PATCH] libgcrypt: fix m4 file for oe-core + +Modify libgcrypt pkgconfig specifically for oe-core. Changes +are based on a previous patch from RP, using wiggle to +incorporate the parts that aren't in the upstream pkgconfig +settings. + +Upstream-Status: Inappropriate [oe-specific] + +Signed-off-by: Trevor Gamblin + +--- + src/libgcrypt.m4 | 90 +++--------------------------------------------- + 1 file changed, 4 insertions(+), 86 deletions(-) + +diff --git a/src/libgcrypt.m4 b/src/libgcrypt.m4 +index 37dfbea2..3d2e90a8 100644 +--- a/src/libgcrypt.m4 ++++ b/src/libgcrypt.m4 +@@ -29,41 +29,6 @@ dnl is added to the gpg_config_script_warn variable. + dnl + AC_DEFUN([AM_PATH_LIBGCRYPT], + [ AC_REQUIRE([AC_CANONICAL_HOST]) +- AC_ARG_WITH(libgcrypt-prefix, +- AC_HELP_STRING([--with-libgcrypt-prefix=PFX], +- [prefix where LIBGCRYPT is installed (optional)]), +- libgcrypt_config_prefix="$withval", libgcrypt_config_prefix="") +- if test x"${LIBGCRYPT_CONFIG}" = x ; then +- if test x"${libgcrypt_config_prefix}" != x ; then +- LIBGCRYPT_CONFIG="${libgcrypt_config_prefix}/bin/libgcrypt-config" +- fi +- fi +- +- use_gpgrt_config="" +- if test x"${LIBGCRYPT_CONFIG}" = x -a x"$GPGRT_CONFIG" != x -a "$GPGRT_CONFIG" != "no"; then +- if $GPGRT_CONFIG libgcrypt --exists; then +- LIBGCRYPT_CONFIG="$GPGRT_CONFIG libgcrypt" +- AC_MSG_NOTICE([Use gpgrt-config as libgcrypt-config]) +- use_gpgrt_config=yes +- fi +- fi +- if test -z "$use_gpgrt_config"; then +- if test x"${LIBGCRYPT_CONFIG}" = x ; then +- case "${SYSROOT}" in +- /*) +- if test -x "${SYSROOT}/bin/libgcrypt-config" ; then +- LIBGCRYPT_CONFIG="${SYSROOT}/bin/libgcrypt-config" +- fi +- ;; +- '') +- ;; +- *) +- AC_MSG_WARN([Ignoring \$SYSROOT as it is not an absolute path.]) +- ;; +- esac +- fi +- AC_PATH_PROG(LIBGCRYPT_CONFIG, libgcrypt-config, no) +- fi + + tmp=ifelse([$1], ,1:1.2.0,$1) + if echo "$tmp" | grep ':' >/dev/null 2>/dev/null ; then +@@ -74,56 +39,13 @@ AC_DEFUN([AM_PATH_LIBGCRYPT], + min_libgcrypt_version="$tmp" + fi + +- AC_MSG_CHECKING(for LIBGCRYPT - version >= $min_libgcrypt_version) +- ok=no +- if test "$LIBGCRYPT_CONFIG" != "no" ; then +- req_major=`echo $min_libgcrypt_version | \ +- sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\)/\1/'` +- req_minor=`echo $min_libgcrypt_version | \ +- sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\)/\2/'` +- req_micro=`echo $min_libgcrypt_version | \ +- sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\)/\3/'` +- if test -z "$use_gpgrt_config"; then +- libgcrypt_config_version=`$LIBGCRYPT_CONFIG --version` +- else +- libgcrypt_config_version=`$LIBGCRYPT_CONFIG --modversion` +- fi +- major=`echo $libgcrypt_config_version | \ +- sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\).*/\1/'` +- minor=`echo $libgcrypt_config_version | \ +- sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\).*/\2/'` +- micro=`echo $libgcrypt_config_version | \ +- sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\).*/\3/'` +- if test "$major" -gt "$req_major"; then +- ok=yes +- else +- if test "$major" -eq "$req_major"; then +- if test "$minor" -gt "$req_minor"; then +- ok=yes +- else +- if test "$minor" -eq "$req_minor"; then +- if test "$micro" -ge "$req_micro"; then +- ok=yes +- fi +- fi +- fi +- fi +- fi +- fi +- if test $ok = yes; then +- AC_MSG_RESULT([yes ($libgcrypt_config_version)]) +- else +- AC_MSG_RESULT(no) +- fi ++ PKG_CHECK_MODULES(LIBGCRYPT, [libgcrypt >= $min_libgcrypt_version], [ok=yes], [ok=no]) ++ + if test $ok = yes; then + # If we have a recent libgcrypt, we should also check that the + # API is compatible + if test "$req_libgcrypt_api" -gt 0 ; then +- if test -z "$use_gpgrt_config"; then +- tmp=`$LIBGCRYPT_CONFIG --api-version 2>/dev/null || echo 0` +- else +- tmp=`$LIBGCRYPT_CONFIG --variable=api_version 2>/dev/null || echo 0` +- fi ++ tmp=`$PKG_CONFIG --variable=api_version libgcrypt` + if test "$tmp" -gt 0 ; then + AC_MSG_CHECKING([LIBGCRYPT API version]) + if test "$req_libgcrypt_api" -eq "$tmp" ; then +@@ -136,11 +58,9 @@ AC_DEFUN([AM_PATH_LIBGCRYPT], + fi + fi + if test $ok = yes; then +- LIBGCRYPT_CFLAGS=`$LIBGCRYPT_CONFIG --cflags` +- LIBGCRYPT_LIBS=`$LIBGCRYPT_CONFIG --libs` + ifelse([$2], , :, [$2]) + if test -z "$use_gpgrt_config"; then +- libgcrypt_config_host=`$LIBGCRYPT_CONFIG --host 2>/dev/null || echo none` ++ libgcrypt_config_host=`$PKG_CONFIG --variable=host libgcrypt` + else + libgcrypt_config_host=`$LIBGCRYPT_CONFIG --variable=host 2>/dev/null || echo none` + fi +@@ -158,8 +78,6 @@ AC_DEFUN([AM_PATH_LIBGCRYPT], + fi + fi + else +- LIBGCRYPT_CFLAGS="" +- LIBGCRYPT_LIBS="" + ifelse([$3], , :, [$3]) + fi + AC_SUBST(LIBGCRYPT_CFLAGS) +-- +2.17.1 + diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-support/libgcrypt/files/0002-AES-move-look-up-tables-to-.data-section-and-unshare.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-support/libgcrypt/files/0002-AES-move-look-up-tables-to-.data-section-and-unshare.patch new file mode 100644 index 00000000..c82c5b5c --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-support/libgcrypt/files/0002-AES-move-look-up-tables-to-.data-section-and-unshare.patch @@ -0,0 +1,332 @@ +From 119348dd9aa52ab229afb5e2d3342d2b76fe81bf Mon Sep 17 00:00:00 2001 +From: Jussi Kivilinna +Date: Fri, 31 May 2019 17:18:09 +0300 +Subject: [PATCH 2/3] AES: move look-up tables to .data section and unshare between + processes + +* cipher/rijndael-internal.h (ATTR_ALIGNED_64): New. +* cipher/rijndael-tables.h (encT): Move to 'enc_tables' structure. +(enc_tables): New structure for encryption table with counters before +and after. +(encT): New macro. +(dec_tables): Add counters before and after encryption table; Move +from .rodata to .data section. +(do_encrypt): Change 'encT' to 'enc_tables.T'. +(do_decrypt): Change '&dec_tables' to 'dec_tables.T'. +* cipher/cipher-gcm.c (prefetch_table): Make inline; Handle input +with length not multiple of 256. +(prefetch_enc, prefetch_dec): Modify pre- and post-table counters +to unshare look-up table pages between processes. +-- + +GnuPG-bug-id: 4541 +Signed-off-by: Jussi Kivilinna + +Upstream-Status: Backport +[https://github.com/gpg/libgcrypt/commit/daedbbb5541cd8ecda1459d3b843ea4d92788762] + +CVE: CVE-2019-12904 + +Signed-off-by: Yi Zhao +--- + cipher/rijndael-internal.h | 4 +- + cipher/rijndael-tables.h | 155 +++++++++++++++++++++++++-------------------- + cipher/rijndael.c | 35 ++++++++-- + 3 files changed, 118 insertions(+), 76 deletions(-) + +diff --git a/cipher/rijndael-internal.h b/cipher/rijndael-internal.h +index 160fb8c..a62d4b7 100644 +--- a/cipher/rijndael-internal.h ++++ b/cipher/rijndael-internal.h +@@ -29,11 +29,13 @@ + #define BLOCKSIZE (128/8) + + +-/* Helper macro to force alignment to 16 bytes. */ ++/* Helper macro to force alignment to 16 or 64 bytes. */ + #ifdef HAVE_GCC_ATTRIBUTE_ALIGNED + # define ATTR_ALIGNED_16 __attribute__ ((aligned (16))) ++# define ATTR_ALIGNED_64 __attribute__ ((aligned (64))) + #else + # define ATTR_ALIGNED_16 ++# define ATTR_ALIGNED_64 + #endif + + +diff --git a/cipher/rijndael-tables.h b/cipher/rijndael-tables.h +index 8359470..b54d959 100644 +--- a/cipher/rijndael-tables.h ++++ b/cipher/rijndael-tables.h +@@ -21,80 +21,98 @@ + /* To keep the actual implementation at a readable size we use this + include file to define the tables. */ + +-static const u32 encT[256] = ++static struct ++{ ++ volatile u32 counter_head; ++ u32 cacheline_align[64 / 4 - 1]; ++ u32 T[256]; ++ volatile u32 counter_tail; ++} enc_tables ATTR_ALIGNED_64 = + { +- 0xa56363c6, 0x847c7cf8, 0x997777ee, 0x8d7b7bf6, +- 0x0df2f2ff, 0xbd6b6bd6, 0xb16f6fde, 0x54c5c591, +- 0x50303060, 0x03010102, 0xa96767ce, 0x7d2b2b56, +- 0x19fefee7, 0x62d7d7b5, 0xe6abab4d, 0x9a7676ec, +- 0x45caca8f, 0x9d82821f, 0x40c9c989, 0x877d7dfa, +- 0x15fafaef, 0xeb5959b2, 0xc947478e, 0x0bf0f0fb, +- 0xecadad41, 0x67d4d4b3, 0xfda2a25f, 0xeaafaf45, +- 0xbf9c9c23, 0xf7a4a453, 0x967272e4, 0x5bc0c09b, +- 0xc2b7b775, 0x1cfdfde1, 0xae93933d, 0x6a26264c, +- 0x5a36366c, 0x413f3f7e, 0x02f7f7f5, 0x4fcccc83, +- 0x5c343468, 0xf4a5a551, 0x34e5e5d1, 0x08f1f1f9, +- 0x937171e2, 0x73d8d8ab, 0x53313162, 0x3f15152a, +- 0x0c040408, 0x52c7c795, 0x65232346, 0x5ec3c39d, +- 0x28181830, 0xa1969637, 0x0f05050a, 0xb59a9a2f, +- 0x0907070e, 0x36121224, 0x9b80801b, 0x3de2e2df, +- 0x26ebebcd, 0x6927274e, 0xcdb2b27f, 0x9f7575ea, +- 0x1b090912, 0x9e83831d, 0x742c2c58, 0x2e1a1a34, +- 0x2d1b1b36, 0xb26e6edc, 0xee5a5ab4, 0xfba0a05b, +- 0xf65252a4, 0x4d3b3b76, 0x61d6d6b7, 0xceb3b37d, +- 0x7b292952, 0x3ee3e3dd, 0x712f2f5e, 0x97848413, +- 0xf55353a6, 0x68d1d1b9, 0x00000000, 0x2cededc1, +- 0x60202040, 0x1ffcfce3, 0xc8b1b179, 0xed5b5bb6, +- 0xbe6a6ad4, 0x46cbcb8d, 0xd9bebe67, 0x4b393972, +- 0xde4a4a94, 0xd44c4c98, 0xe85858b0, 0x4acfcf85, +- 0x6bd0d0bb, 0x2aefefc5, 0xe5aaaa4f, 0x16fbfbed, +- 0xc5434386, 0xd74d4d9a, 0x55333366, 0x94858511, +- 0xcf45458a, 0x10f9f9e9, 0x06020204, 0x817f7ffe, +- 0xf05050a0, 0x443c3c78, 0xba9f9f25, 0xe3a8a84b, +- 0xf35151a2, 0xfea3a35d, 0xc0404080, 0x8a8f8f05, +- 0xad92923f, 0xbc9d9d21, 0x48383870, 0x04f5f5f1, +- 0xdfbcbc63, 0xc1b6b677, 0x75dadaaf, 0x63212142, +- 0x30101020, 0x1affffe5, 0x0ef3f3fd, 0x6dd2d2bf, +- 0x4ccdcd81, 0x140c0c18, 0x35131326, 0x2fececc3, +- 0xe15f5fbe, 0xa2979735, 0xcc444488, 0x3917172e, +- 0x57c4c493, 0xf2a7a755, 0x827e7efc, 0x473d3d7a, +- 0xac6464c8, 0xe75d5dba, 0x2b191932, 0x957373e6, +- 0xa06060c0, 0x98818119, 0xd14f4f9e, 0x7fdcdca3, +- 0x66222244, 0x7e2a2a54, 0xab90903b, 0x8388880b, +- 0xca46468c, 0x29eeeec7, 0xd3b8b86b, 0x3c141428, +- 0x79dedea7, 0xe25e5ebc, 0x1d0b0b16, 0x76dbdbad, +- 0x3be0e0db, 0x56323264, 0x4e3a3a74, 0x1e0a0a14, +- 0xdb494992, 0x0a06060c, 0x6c242448, 0xe45c5cb8, +- 0x5dc2c29f, 0x6ed3d3bd, 0xefacac43, 0xa66262c4, +- 0xa8919139, 0xa4959531, 0x37e4e4d3, 0x8b7979f2, +- 0x32e7e7d5, 0x43c8c88b, 0x5937376e, 0xb76d6dda, +- 0x8c8d8d01, 0x64d5d5b1, 0xd24e4e9c, 0xe0a9a949, +- 0xb46c6cd8, 0xfa5656ac, 0x07f4f4f3, 0x25eaeacf, +- 0xaf6565ca, 0x8e7a7af4, 0xe9aeae47, 0x18080810, +- 0xd5baba6f, 0x887878f0, 0x6f25254a, 0x722e2e5c, +- 0x241c1c38, 0xf1a6a657, 0xc7b4b473, 0x51c6c697, +- 0x23e8e8cb, 0x7cdddda1, 0x9c7474e8, 0x211f1f3e, +- 0xdd4b4b96, 0xdcbdbd61, 0x868b8b0d, 0x858a8a0f, +- 0x907070e0, 0x423e3e7c, 0xc4b5b571, 0xaa6666cc, +- 0xd8484890, 0x05030306, 0x01f6f6f7, 0x120e0e1c, +- 0xa36161c2, 0x5f35356a, 0xf95757ae, 0xd0b9b969, +- 0x91868617, 0x58c1c199, 0x271d1d3a, 0xb99e9e27, +- 0x38e1e1d9, 0x13f8f8eb, 0xb398982b, 0x33111122, +- 0xbb6969d2, 0x70d9d9a9, 0x898e8e07, 0xa7949433, +- 0xb69b9b2d, 0x221e1e3c, 0x92878715, 0x20e9e9c9, +- 0x49cece87, 0xff5555aa, 0x78282850, 0x7adfdfa5, +- 0x8f8c8c03, 0xf8a1a159, 0x80898909, 0x170d0d1a, +- 0xdabfbf65, 0x31e6e6d7, 0xc6424284, 0xb86868d0, +- 0xc3414182, 0xb0999929, 0x772d2d5a, 0x110f0f1e, +- 0xcbb0b07b, 0xfc5454a8, 0xd6bbbb6d, 0x3a16162c ++ 0, ++ { 0, }, ++ { ++ 0xa56363c6, 0x847c7cf8, 0x997777ee, 0x8d7b7bf6, ++ 0x0df2f2ff, 0xbd6b6bd6, 0xb16f6fde, 0x54c5c591, ++ 0x50303060, 0x03010102, 0xa96767ce, 0x7d2b2b56, ++ 0x19fefee7, 0x62d7d7b5, 0xe6abab4d, 0x9a7676ec, ++ 0x45caca8f, 0x9d82821f, 0x40c9c989, 0x877d7dfa, ++ 0x15fafaef, 0xeb5959b2, 0xc947478e, 0x0bf0f0fb, ++ 0xecadad41, 0x67d4d4b3, 0xfda2a25f, 0xeaafaf45, ++ 0xbf9c9c23, 0xf7a4a453, 0x967272e4, 0x5bc0c09b, ++ 0xc2b7b775, 0x1cfdfde1, 0xae93933d, 0x6a26264c, ++ 0x5a36366c, 0x413f3f7e, 0x02f7f7f5, 0x4fcccc83, ++ 0x5c343468, 0xf4a5a551, 0x34e5e5d1, 0x08f1f1f9, ++ 0x937171e2, 0x73d8d8ab, 0x53313162, 0x3f15152a, ++ 0x0c040408, 0x52c7c795, 0x65232346, 0x5ec3c39d, ++ 0x28181830, 0xa1969637, 0x0f05050a, 0xb59a9a2f, ++ 0x0907070e, 0x36121224, 0x9b80801b, 0x3de2e2df, ++ 0x26ebebcd, 0x6927274e, 0xcdb2b27f, 0x9f7575ea, ++ 0x1b090912, 0x9e83831d, 0x742c2c58, 0x2e1a1a34, ++ 0x2d1b1b36, 0xb26e6edc, 0xee5a5ab4, 0xfba0a05b, ++ 0xf65252a4, 0x4d3b3b76, 0x61d6d6b7, 0xceb3b37d, ++ 0x7b292952, 0x3ee3e3dd, 0x712f2f5e, 0x97848413, ++ 0xf55353a6, 0x68d1d1b9, 0x00000000, 0x2cededc1, ++ 0x60202040, 0x1ffcfce3, 0xc8b1b179, 0xed5b5bb6, ++ 0xbe6a6ad4, 0x46cbcb8d, 0xd9bebe67, 0x4b393972, ++ 0xde4a4a94, 0xd44c4c98, 0xe85858b0, 0x4acfcf85, ++ 0x6bd0d0bb, 0x2aefefc5, 0xe5aaaa4f, 0x16fbfbed, ++ 0xc5434386, 0xd74d4d9a, 0x55333366, 0x94858511, ++ 0xcf45458a, 0x10f9f9e9, 0x06020204, 0x817f7ffe, ++ 0xf05050a0, 0x443c3c78, 0xba9f9f25, 0xe3a8a84b, ++ 0xf35151a2, 0xfea3a35d, 0xc0404080, 0x8a8f8f05, ++ 0xad92923f, 0xbc9d9d21, 0x48383870, 0x04f5f5f1, ++ 0xdfbcbc63, 0xc1b6b677, 0x75dadaaf, 0x63212142, ++ 0x30101020, 0x1affffe5, 0x0ef3f3fd, 0x6dd2d2bf, ++ 0x4ccdcd81, 0x140c0c18, 0x35131326, 0x2fececc3, ++ 0xe15f5fbe, 0xa2979735, 0xcc444488, 0x3917172e, ++ 0x57c4c493, 0xf2a7a755, 0x827e7efc, 0x473d3d7a, ++ 0xac6464c8, 0xe75d5dba, 0x2b191932, 0x957373e6, ++ 0xa06060c0, 0x98818119, 0xd14f4f9e, 0x7fdcdca3, ++ 0x66222244, 0x7e2a2a54, 0xab90903b, 0x8388880b, ++ 0xca46468c, 0x29eeeec7, 0xd3b8b86b, 0x3c141428, ++ 0x79dedea7, 0xe25e5ebc, 0x1d0b0b16, 0x76dbdbad, ++ 0x3be0e0db, 0x56323264, 0x4e3a3a74, 0x1e0a0a14, ++ 0xdb494992, 0x0a06060c, 0x6c242448, 0xe45c5cb8, ++ 0x5dc2c29f, 0x6ed3d3bd, 0xefacac43, 0xa66262c4, ++ 0xa8919139, 0xa4959531, 0x37e4e4d3, 0x8b7979f2, ++ 0x32e7e7d5, 0x43c8c88b, 0x5937376e, 0xb76d6dda, ++ 0x8c8d8d01, 0x64d5d5b1, 0xd24e4e9c, 0xe0a9a949, ++ 0xb46c6cd8, 0xfa5656ac, 0x07f4f4f3, 0x25eaeacf, ++ 0xaf6565ca, 0x8e7a7af4, 0xe9aeae47, 0x18080810, ++ 0xd5baba6f, 0x887878f0, 0x6f25254a, 0x722e2e5c, ++ 0x241c1c38, 0xf1a6a657, 0xc7b4b473, 0x51c6c697, ++ 0x23e8e8cb, 0x7cdddda1, 0x9c7474e8, 0x211f1f3e, ++ 0xdd4b4b96, 0xdcbdbd61, 0x868b8b0d, 0x858a8a0f, ++ 0x907070e0, 0x423e3e7c, 0xc4b5b571, 0xaa6666cc, ++ 0xd8484890, 0x05030306, 0x01f6f6f7, 0x120e0e1c, ++ 0xa36161c2, 0x5f35356a, 0xf95757ae, 0xd0b9b969, ++ 0x91868617, 0x58c1c199, 0x271d1d3a, 0xb99e9e27, ++ 0x38e1e1d9, 0x13f8f8eb, 0xb398982b, 0x33111122, ++ 0xbb6969d2, 0x70d9d9a9, 0x898e8e07, 0xa7949433, ++ 0xb69b9b2d, 0x221e1e3c, 0x92878715, 0x20e9e9c9, ++ 0x49cece87, 0xff5555aa, 0x78282850, 0x7adfdfa5, ++ 0x8f8c8c03, 0xf8a1a159, 0x80898909, 0x170d0d1a, ++ 0xdabfbf65, 0x31e6e6d7, 0xc6424284, 0xb86868d0, ++ 0xc3414182, 0xb0999929, 0x772d2d5a, 0x110f0f1e, ++ 0xcbb0b07b, 0xfc5454a8, 0xd6bbbb6d, 0x3a16162c ++ }, ++ 0 + }; + +-static const struct ++#define encT enc_tables.T ++ ++static struct + { ++ volatile u32 counter_head; ++ u32 cacheline_align[64 / 4 - 1]; + u32 T[256]; + byte inv_sbox[256]; +-} dec_tables = ++ volatile u32 counter_tail; ++} dec_tables ATTR_ALIGNED_64 = + { ++ 0, ++ { 0, }, + { + 0x50a7f451, 0x5365417e, 0xc3a4171a, 0x965e273a, + 0xcb6bab3b, 0xf1459d1f, 0xab58faac, 0x9303e34b, +@@ -194,7 +212,8 @@ static const struct + 0xc8,0xeb,0xbb,0x3c,0x83,0x53,0x99,0x61, + 0x17,0x2b,0x04,0x7e,0xba,0x77,0xd6,0x26, + 0xe1,0x69,0x14,0x63,0x55,0x21,0x0c,0x7d +- } ++ }, ++ 0 + }; + + #define decT dec_tables.T +diff --git a/cipher/rijndael.c b/cipher/rijndael.c +index 8637195..d0edab2 100644 +--- a/cipher/rijndael.c ++++ b/cipher/rijndael.c +@@ -227,11 +227,11 @@ static const char *selftest(void); + + + /* Prefetching for encryption/decryption tables. */ +-static void prefetch_table(const volatile byte *tab, size_t len) ++static inline void prefetch_table(const volatile byte *tab, size_t len) + { + size_t i; + +- for (i = 0; i < len; i += 8 * 32) ++ for (i = 0; len - i >= 8 * 32; i += 8 * 32) + { + (void)tab[i + 0 * 32]; + (void)tab[i + 1 * 32]; +@@ -242,17 +242,37 @@ static void prefetch_table(const volatile byte *tab, size_t len) + (void)tab[i + 6 * 32]; + (void)tab[i + 7 * 32]; + } ++ for (; i < len; i += 32) ++ { ++ (void)tab[i]; ++ } + + (void)tab[len - 1]; + } + + static void prefetch_enc(void) + { +- prefetch_table((const void *)encT, sizeof(encT)); ++ /* Modify counters to trigger copy-on-write and unsharing if physical pages ++ * of look-up table are shared between processes. Modifying counters also ++ * causes checksums for pages to change and hint same-page merging algorithm ++ * that these pages are frequently changing. */ ++ enc_tables.counter_head++; ++ enc_tables.counter_tail++; ++ ++ /* Prefetch look-up tables to cache. */ ++ prefetch_table((const void *)&enc_tables, sizeof(enc_tables)); + } + + static void prefetch_dec(void) + { ++ /* Modify counters to trigger copy-on-write and unsharing if physical pages ++ * of look-up table are shared between processes. Modifying counters also ++ * causes checksums for pages to change and hint same-page merging algorithm ++ * that these pages are frequently changing. */ ++ dec_tables.counter_head++; ++ dec_tables.counter_tail++; ++ ++ /* Prefetch look-up tables to cache. */ + prefetch_table((const void *)&dec_tables, sizeof(dec_tables)); + } + +@@ -737,7 +757,7 @@ do_encrypt (const RIJNDAEL_context *ctx, + #ifdef USE_AMD64_ASM + # ifdef HAVE_COMPATIBLE_GCC_AMD64_PLATFORM_AS + return _gcry_aes_amd64_encrypt_block(ctx->keyschenc, bx, ax, ctx->rounds, +- encT); ++ enc_tables.T); + # else + /* Call SystemV ABI function without storing non-volatile XMM registers, + * as target function does not use vector instruction sets. */ +@@ -757,7 +777,8 @@ do_encrypt (const RIJNDAEL_context *ctx, + return ret; + # endif /* HAVE_COMPATIBLE_GCC_AMD64_PLATFORM_AS */ + #elif defined(USE_ARM_ASM) +- return _gcry_aes_arm_encrypt_block(ctx->keyschenc, bx, ax, ctx->rounds, encT); ++ return _gcry_aes_arm_encrypt_block(ctx->keyschenc, bx, ax, ctx->rounds, ++ enc_tables.T); + #else + return do_encrypt_fn (ctx, bx, ax); + #endif /* !USE_ARM_ASM && !USE_AMD64_ASM*/ +@@ -1120,7 +1141,7 @@ do_decrypt (const RIJNDAEL_context *ctx, unsigned char *bx, + #ifdef USE_AMD64_ASM + # ifdef HAVE_COMPATIBLE_GCC_AMD64_PLATFORM_AS + return _gcry_aes_amd64_decrypt_block(ctx->keyschdec, bx, ax, ctx->rounds, +- &dec_tables); ++ dec_tables.T); + # else + /* Call SystemV ABI function without storing non-volatile XMM registers, + * as target function does not use vector instruction sets. */ +@@ -1141,7 +1162,7 @@ do_decrypt (const RIJNDAEL_context *ctx, unsigned char *bx, + # endif /* HAVE_COMPATIBLE_GCC_AMD64_PLATFORM_AS */ + #elif defined(USE_ARM_ASM) + return _gcry_aes_arm_decrypt_block(ctx->keyschdec, bx, ax, ctx->rounds, +- &dec_tables); ++ dec_tables.T); + #else + return do_decrypt_fn (ctx, bx, ax); + #endif /*!USE_ARM_ASM && !USE_AMD64_ASM*/ +-- +2.7.4 + diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-support/libgcrypt/files/0003-GCM-move-look-up-table-to-.data-section-and-unshare-.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-support/libgcrypt/files/0003-GCM-move-look-up-table-to-.data-section-and-unshare-.patch new file mode 100644 index 00000000..b580b7b1 --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-support/libgcrypt/files/0003-GCM-move-look-up-table-to-.data-section-and-unshare-.patch @@ -0,0 +1,178 @@ +From a4c561aab1014c3630bc88faf6f5246fee16b020 Mon Sep 17 00:00:00 2001 +From: Jussi Kivilinna +Date: Fri, 31 May 2019 17:27:25 +0300 +Subject: [PATCH 3/3] GCM: move look-up table to .data section and unshare + between processes + +* cipher/cipher-gcm.c (ATTR_ALIGNED_64): New. +(gcmR): Move to 'gcm_table' structure. +(gcm_table): New structure for look-up table with counters before and +after. +(gcmR): New macro. +(prefetch_table): Handle input with length not multiple of 256. +(do_prefetch_tables): Modify pre- and post-table counters to unshare +look-up table pages between processes. +-- + +GnuPG-bug-id: 4541 +Signed-off-by: Jussi Kivilinna + +Upstream-Status: Backport +[https://github.com/gpg/libgcrypt/commit/a4c561aab1014c3630bc88faf6f5246fee16b020] + +CVE: CVE-2019-12904 + +Signed-off-by: Yi Zhao +--- + cipher/cipher-gcm.c | 106 ++++++++++++++++++++++++++++++++++------------------ + 1 file changed, 70 insertions(+), 36 deletions(-) + +diff --git a/cipher/cipher-gcm.c b/cipher/cipher-gcm.c +index 11f119a..194e2ec 100644 +--- a/cipher/cipher-gcm.c ++++ b/cipher/cipher-gcm.c +@@ -30,6 +30,14 @@ + #include "./cipher-internal.h" + + ++/* Helper macro to force alignment to 16 or 64 bytes. */ ++#ifdef HAVE_GCC_ATTRIBUTE_ALIGNED ++# define ATTR_ALIGNED_64 __attribute__ ((aligned (64))) ++#else ++# define ATTR_ALIGNED_64 ++#endif ++ ++ + #ifdef GCM_USE_INTEL_PCLMUL + extern void _gcry_ghash_setup_intel_pclmul (gcry_cipher_hd_t c); + +@@ -83,40 +91,54 @@ ghash_armv7_neon (gcry_cipher_hd_t c, byte *result, const byte *buf, + + + #ifdef GCM_USE_TABLES +-static const u16 gcmR[256] = { +- 0x0000, 0x01c2, 0x0384, 0x0246, 0x0708, 0x06ca, 0x048c, 0x054e, +- 0x0e10, 0x0fd2, 0x0d94, 0x0c56, 0x0918, 0x08da, 0x0a9c, 0x0b5e, +- 0x1c20, 0x1de2, 0x1fa4, 0x1e66, 0x1b28, 0x1aea, 0x18ac, 0x196e, +- 0x1230, 0x13f2, 0x11b4, 0x1076, 0x1538, 0x14fa, 0x16bc, 0x177e, +- 0x3840, 0x3982, 0x3bc4, 0x3a06, 0x3f48, 0x3e8a, 0x3ccc, 0x3d0e, +- 0x3650, 0x3792, 0x35d4, 0x3416, 0x3158, 0x309a, 0x32dc, 0x331e, +- 0x2460, 0x25a2, 0x27e4, 0x2626, 0x2368, 0x22aa, 0x20ec, 0x212e, +- 0x2a70, 0x2bb2, 0x29f4, 0x2836, 0x2d78, 0x2cba, 0x2efc, 0x2f3e, +- 0x7080, 0x7142, 0x7304, 0x72c6, 0x7788, 0x764a, 0x740c, 0x75ce, +- 0x7e90, 0x7f52, 0x7d14, 0x7cd6, 0x7998, 0x785a, 0x7a1c, 0x7bde, +- 0x6ca0, 0x6d62, 0x6f24, 0x6ee6, 0x6ba8, 0x6a6a, 0x682c, 0x69ee, +- 0x62b0, 0x6372, 0x6134, 0x60f6, 0x65b8, 0x647a, 0x663c, 0x67fe, +- 0x48c0, 0x4902, 0x4b44, 0x4a86, 0x4fc8, 0x4e0a, 0x4c4c, 0x4d8e, +- 0x46d0, 0x4712, 0x4554, 0x4496, 0x41d8, 0x401a, 0x425c, 0x439e, +- 0x54e0, 0x5522, 0x5764, 0x56a6, 0x53e8, 0x522a, 0x506c, 0x51ae, +- 0x5af0, 0x5b32, 0x5974, 0x58b6, 0x5df8, 0x5c3a, 0x5e7c, 0x5fbe, +- 0xe100, 0xe0c2, 0xe284, 0xe346, 0xe608, 0xe7ca, 0xe58c, 0xe44e, +- 0xef10, 0xeed2, 0xec94, 0xed56, 0xe818, 0xe9da, 0xeb9c, 0xea5e, +- 0xfd20, 0xfce2, 0xfea4, 0xff66, 0xfa28, 0xfbea, 0xf9ac, 0xf86e, +- 0xf330, 0xf2f2, 0xf0b4, 0xf176, 0xf438, 0xf5fa, 0xf7bc, 0xf67e, +- 0xd940, 0xd882, 0xdac4, 0xdb06, 0xde48, 0xdf8a, 0xddcc, 0xdc0e, +- 0xd750, 0xd692, 0xd4d4, 0xd516, 0xd058, 0xd19a, 0xd3dc, 0xd21e, +- 0xc560, 0xc4a2, 0xc6e4, 0xc726, 0xc268, 0xc3aa, 0xc1ec, 0xc02e, +- 0xcb70, 0xcab2, 0xc8f4, 0xc936, 0xcc78, 0xcdba, 0xcffc, 0xce3e, +- 0x9180, 0x9042, 0x9204, 0x93c6, 0x9688, 0x974a, 0x950c, 0x94ce, +- 0x9f90, 0x9e52, 0x9c14, 0x9dd6, 0x9898, 0x995a, 0x9b1c, 0x9ade, +- 0x8da0, 0x8c62, 0x8e24, 0x8fe6, 0x8aa8, 0x8b6a, 0x892c, 0x88ee, +- 0x83b0, 0x8272, 0x8034, 0x81f6, 0x84b8, 0x857a, 0x873c, 0x86fe, +- 0xa9c0, 0xa802, 0xaa44, 0xab86, 0xaec8, 0xaf0a, 0xad4c, 0xac8e, +- 0xa7d0, 0xa612, 0xa454, 0xa596, 0xa0d8, 0xa11a, 0xa35c, 0xa29e, +- 0xb5e0, 0xb422, 0xb664, 0xb7a6, 0xb2e8, 0xb32a, 0xb16c, 0xb0ae, +- 0xbbf0, 0xba32, 0xb874, 0xb9b6, 0xbcf8, 0xbd3a, 0xbf7c, 0xbebe, +-}; ++static struct ++{ ++ volatile u32 counter_head; ++ u32 cacheline_align[64 / 4 - 1]; ++ u16 R[256]; ++ volatile u32 counter_tail; ++} gcm_table ATTR_ALIGNED_64 = ++ { ++ 0, ++ { 0, }, ++ { ++ 0x0000, 0x01c2, 0x0384, 0x0246, 0x0708, 0x06ca, 0x048c, 0x054e, ++ 0x0e10, 0x0fd2, 0x0d94, 0x0c56, 0x0918, 0x08da, 0x0a9c, 0x0b5e, ++ 0x1c20, 0x1de2, 0x1fa4, 0x1e66, 0x1b28, 0x1aea, 0x18ac, 0x196e, ++ 0x1230, 0x13f2, 0x11b4, 0x1076, 0x1538, 0x14fa, 0x16bc, 0x177e, ++ 0x3840, 0x3982, 0x3bc4, 0x3a06, 0x3f48, 0x3e8a, 0x3ccc, 0x3d0e, ++ 0x3650, 0x3792, 0x35d4, 0x3416, 0x3158, 0x309a, 0x32dc, 0x331e, ++ 0x2460, 0x25a2, 0x27e4, 0x2626, 0x2368, 0x22aa, 0x20ec, 0x212e, ++ 0x2a70, 0x2bb2, 0x29f4, 0x2836, 0x2d78, 0x2cba, 0x2efc, 0x2f3e, ++ 0x7080, 0x7142, 0x7304, 0x72c6, 0x7788, 0x764a, 0x740c, 0x75ce, ++ 0x7e90, 0x7f52, 0x7d14, 0x7cd6, 0x7998, 0x785a, 0x7a1c, 0x7bde, ++ 0x6ca0, 0x6d62, 0x6f24, 0x6ee6, 0x6ba8, 0x6a6a, 0x682c, 0x69ee, ++ 0x62b0, 0x6372, 0x6134, 0x60f6, 0x65b8, 0x647a, 0x663c, 0x67fe, ++ 0x48c0, 0x4902, 0x4b44, 0x4a86, 0x4fc8, 0x4e0a, 0x4c4c, 0x4d8e, ++ 0x46d0, 0x4712, 0x4554, 0x4496, 0x41d8, 0x401a, 0x425c, 0x439e, ++ 0x54e0, 0x5522, 0x5764, 0x56a6, 0x53e8, 0x522a, 0x506c, 0x51ae, ++ 0x5af0, 0x5b32, 0x5974, 0x58b6, 0x5df8, 0x5c3a, 0x5e7c, 0x5fbe, ++ 0xe100, 0xe0c2, 0xe284, 0xe346, 0xe608, 0xe7ca, 0xe58c, 0xe44e, ++ 0xef10, 0xeed2, 0xec94, 0xed56, 0xe818, 0xe9da, 0xeb9c, 0xea5e, ++ 0xfd20, 0xfce2, 0xfea4, 0xff66, 0xfa28, 0xfbea, 0xf9ac, 0xf86e, ++ 0xf330, 0xf2f2, 0xf0b4, 0xf176, 0xf438, 0xf5fa, 0xf7bc, 0xf67e, ++ 0xd940, 0xd882, 0xdac4, 0xdb06, 0xde48, 0xdf8a, 0xddcc, 0xdc0e, ++ 0xd750, 0xd692, 0xd4d4, 0xd516, 0xd058, 0xd19a, 0xd3dc, 0xd21e, ++ 0xc560, 0xc4a2, 0xc6e4, 0xc726, 0xc268, 0xc3aa, 0xc1ec, 0xc02e, ++ 0xcb70, 0xcab2, 0xc8f4, 0xc936, 0xcc78, 0xcdba, 0xcffc, 0xce3e, ++ 0x9180, 0x9042, 0x9204, 0x93c6, 0x9688, 0x974a, 0x950c, 0x94ce, ++ 0x9f90, 0x9e52, 0x9c14, 0x9dd6, 0x9898, 0x995a, 0x9b1c, 0x9ade, ++ 0x8da0, 0x8c62, 0x8e24, 0x8fe6, 0x8aa8, 0x8b6a, 0x892c, 0x88ee, ++ 0x83b0, 0x8272, 0x8034, 0x81f6, 0x84b8, 0x857a, 0x873c, 0x86fe, ++ 0xa9c0, 0xa802, 0xaa44, 0xab86, 0xaec8, 0xaf0a, 0xad4c, 0xac8e, ++ 0xa7d0, 0xa612, 0xa454, 0xa596, 0xa0d8, 0xa11a, 0xa35c, 0xa29e, ++ 0xb5e0, 0xb422, 0xb664, 0xb7a6, 0xb2e8, 0xb32a, 0xb16c, 0xb0ae, ++ 0xbbf0, 0xba32, 0xb874, 0xb9b6, 0xbcf8, 0xbd3a, 0xbf7c, 0xbebe, ++ }, ++ 0 ++ }; ++ ++#define gcmR gcm_table.R + + static inline + void prefetch_table(const void *tab, size_t len) +@@ -124,7 +146,7 @@ void prefetch_table(const void *tab, size_t len) + const volatile byte *vtab = tab; + size_t i; + +- for (i = 0; i < len; i += 8 * 32) ++ for (i = 0; len - i >= 8 * 32; i += 8 * 32) + { + (void)vtab[i + 0 * 32]; + (void)vtab[i + 1 * 32]; +@@ -135,6 +157,10 @@ void prefetch_table(const void *tab, size_t len) + (void)vtab[i + 6 * 32]; + (void)vtab[i + 7 * 32]; + } ++ for (; i < len; i += 32) ++ { ++ (void)vtab[i]; ++ } + + (void)vtab[len - 1]; + } +@@ -142,8 +168,16 @@ void prefetch_table(const void *tab, size_t len) + static inline void + do_prefetch_tables (const void *gcmM, size_t gcmM_size) + { ++ /* Modify counters to trigger copy-on-write and unsharing if physical pages ++ * of look-up table are shared between processes. Modifying counters also ++ * causes checksums for pages to change and hint same-page merging algorithm ++ * that these pages are frequently changing. */ ++ gcm_table.counter_head++; ++ gcm_table.counter_tail++; ++ ++ /* Prefetch look-up tables to cache. */ + prefetch_table(gcmM, gcmM_size); +- prefetch_table(gcmR, sizeof(gcmR)); ++ prefetch_table(&gcm_table, sizeof(gcm_table)); + } + + #ifdef GCM_TABLES_USE_U64 +-- +2.7.4 + diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-support/libgcrypt/libgcrypt_1.8.4.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-support/libgcrypt/libgcrypt_1.8.4.bb deleted file mode 100644 index fda68a29..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-support/libgcrypt/libgcrypt_1.8.4.bb +++ /dev/null @@ -1,54 +0,0 @@ -SUMMARY = "General purpose cryptographic library based on the code from GnuPG" -HOMEPAGE = "http://directory.fsf.org/project/libgcrypt/" -BUGTRACKER = "https://bugs.g10code.com/gnupg/index" -SECTION = "libs" - -# helper program gcryptrnd and getrandom are under GPL, rest LGPL -LICENSE = "GPLv2+ & LGPLv2.1+ & GPLv3+" -LICENSE_${PN} = "LGPLv2.1+" -LICENSE_${PN}-dev = "GPLv2+ & LGPLv2.1+" -LICENSE_dumpsexp-dev = "GPLv3+" - -LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f \ - file://COPYING.LIB;md5=bbb461211a33b134d42ed5ee802b37ff \ - file://LICENSES;md5=840e3bcb754e5046ffeda7619034cbd8" - -DEPENDS = "libgpg-error" - -UPSTREAM_CHECK_URI = "https://gnupg.org/download/index.html" -SRC_URI = "${GNUPG_MIRROR}/libgcrypt/libgcrypt-${PV}.tar.bz2 \ - file://0001-Add-and-use-pkg-config-for-libgcrypt-instead-of-conf.patch \ - file://0003-tests-bench-slope.c-workaround-ICE-failure-on-mips-w.patch \ - file://0002-libgcrypt-fix-building-error-with-O2-in-sysroot-path.patch \ - file://0004-tests-Makefile.am-fix-undefined-reference-to-pthread.patch \ -" -SRC_URI[md5sum] = "fbfdaebbbc6d7e5fbbf6ffdb3e139573" -SRC_URI[sha256sum] = "f638143a0672628fde0cad745e9b14deb85dffb175709cacc1f4fe24b93f2227" - -BINCONFIG = "${bindir}/libgcrypt-config" - -inherit autotools texinfo binconfig-disabled pkgconfig - -EXTRA_OECONF = "--disable-asm" -EXTRA_OEMAKE_class-target = "LIBTOOLFLAGS='--tag=CC'" - -PACKAGECONFIG ??= "capabilities" -PACKAGECONFIG[capabilities] = "--with-capabilities,--without-capabilities,libcap" - -do_configure_prepend () { - # Else this could be used in preference to the one in aclocal-copy - rm -f ${S}/m4/gpg-error.m4 -} - -# libgcrypt.pc is added locally and thus installed here -do_install_append() { - install -d ${D}/${libdir}/pkgconfig - install -m 0644 ${B}/src/libgcrypt.pc ${D}/${libdir}/pkgconfig/ -} - -PACKAGES =+ "dumpsexp-dev" - -FILES_${PN}-dev += "${bindir}/hmac256" -FILES_dumpsexp-dev += "${bindir}/dumpsexp" - -BBCLASSEXTEND = "native nativesdk" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-support/libgcrypt/libgcrypt_1.8.5.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-support/libgcrypt/libgcrypt_1.8.5.bb new file mode 100644 index 00000000..04785574 --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-support/libgcrypt/libgcrypt_1.8.5.bb @@ -0,0 +1,57 @@ +SUMMARY = "General purpose cryptographic library based on the code from GnuPG" +HOMEPAGE = "http://directory.fsf.org/project/libgcrypt/" +BUGTRACKER = "https://bugs.g10code.com/gnupg/index" +SECTION = "libs" + +# helper program gcryptrnd and getrandom are under GPL, rest LGPL +LICENSE = "GPLv2+ & LGPLv2.1+ & GPLv3+" +LICENSE_${PN} = "LGPLv2.1+" +LICENSE_${PN}-dev = "GPLv2+ & LGPLv2.1+" +LICENSE_dumpsexp-dev = "GPLv3+" + +LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f \ + file://COPYING.LIB;md5=bbb461211a33b134d42ed5ee802b37ff \ + file://LICENSES;md5=840e3bcb754e5046ffeda7619034cbd8" + +DEPENDS = "libgpg-error" + +UPSTREAM_CHECK_URI = "https://gnupg.org/download/index.html" +SRC_URI = "${GNUPG_MIRROR}/libgcrypt/libgcrypt-${PV}.tar.bz2 \ + file://0001-libgcrypt-fix-m4-file-for-oe-core.patch \ + file://0003-tests-bench-slope.c-workaround-ICE-failure-on-mips-w.patch \ + file://0002-libgcrypt-fix-building-error-with-O2-in-sysroot-path.patch \ + file://0004-tests-Makefile.am-fix-undefined-reference-to-pthread.patch \ + file://0001-Prefetch-GCM-look-up-tables.patch \ + file://0002-AES-move-look-up-tables-to-.data-section-and-unshare.patch \ + file://0003-GCM-move-look-up-table-to-.data-section-and-unshare-.patch \ +" +SRC_URI[md5sum] = "348cc4601ca34307fc6cd6c945467743" +SRC_URI[sha256sum] = "3b4a2a94cb637eff5bdebbcaf46f4d95c4f25206f459809339cdada0eb577ac3" + +BINCONFIG = "${bindir}/libgcrypt-config" + +inherit autotools texinfo binconfig-disabled pkgconfig + +EXTRA_OECONF = "--disable-asm" +EXTRA_OEMAKE_class-target = "LIBTOOLFLAGS='--tag=CC'" + +PACKAGECONFIG ??= "capabilities" +PACKAGECONFIG[capabilities] = "--with-capabilities,--without-capabilities,libcap" + +do_configure_prepend () { + # Else this could be used in preference to the one in aclocal-copy + rm -f ${S}/m4/gpg-error.m4 +} + +# libgcrypt.pc is added locally and thus installed here +do_install_append() { + install -d ${D}/${libdir}/pkgconfig + install -m 0644 ${B}/src/libgcrypt.pc ${D}/${libdir}/pkgconfig/ +} + +PACKAGES =+ "dumpsexp-dev" + +FILES_${PN}-dev += "${bindir}/hmac256" +FILES_dumpsexp-dev += "${bindir}/dumpsexp" + +BBCLASSEXTEND = "native nativesdk" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-support/libgpg-error/libgpg-error/libgpg-error-1.36-gawk5-support.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-support/libgpg-error/libgpg-error/libgpg-error-1.36-gawk5-support.patch new file mode 100644 index 00000000..b936d114 --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-support/libgpg-error/libgpg-error/libgpg-error-1.36-gawk5-support.patch @@ -0,0 +1,144 @@ +Upstream-Status: Backport [https://dev.gnupg.org/T4459] +Signed-off-by: Khem Raj + +From 7865041c77f4f7005282f10f9b6666b19072fbdf Mon Sep 17 00:00:00 2001 +From: NIIBE Yutaka +Date: Mon, 15 Apr 2019 15:10:44 +0900 +Subject: [PATCH] awk: Prepare for Gawk 5.0. + +* src/Makefile.am: Use pkg_namespace (instead of namespace). +* src/mkerrnos.awk: Likewise. +* lang/cl/mkerrcodes.awk: Don't escape # in regexp. +* src/mkerrcodes.awk, src/mkerrcodes1.awk, src/mkerrcodes2.awk: Ditto. + +-- + +In Gawk 5.0, regexp routines are replaced by Gnulib implementation, +which only allows escaping specific characters. + +GnuPG-bug-id: 4459 +Reported-by: Marius Schamschula +Signed-off-by: NIIBE Yutaka +--- + lang/cl/mkerrcodes.awk | 2 +- + src/Makefile.am | 2 +- + src/mkerrcodes.awk | 2 +- + src/mkerrcodes1.awk | 2 +- + src/mkerrcodes2.awk | 2 +- + src/mkerrnos.awk | 2 +- + src/mkstrtable.awk | 10 +++++----- + 7 files changed, 11 insertions(+), 11 deletions(-) + +--- a/lang/cl/mkerrcodes.awk ++++ b/lang/cl/mkerrcodes.awk +@@ -122,7 +122,7 @@ header { + } + + !header { +- sub (/\#.+/, ""); ++ sub (/#.+/, ""); + sub (/[ ]+$/, ""); # Strip trailing space and tab characters. + + if (/^$/) +--- a/src/Makefile.am ++++ b/src/Makefile.am +@@ -293,7 +293,7 @@ code-from-errno.h: mkerrcodes$(EXEEXT_FO + + errnos-sym.h: Makefile mkstrtable.awk errnos.in + $(AWK) -f $(srcdir)/mkstrtable.awk -v textidx=2 -v nogettext=1 \ +- -v prefix=GPG_ERR_ -v namespace=errnos_ \ ++ -v prefix=GPG_ERR_ -v pkg_namespace=errnos_ \ + $(srcdir)/errnos.in >$@ + + +--- a/src/mkerrcodes.awk ++++ b/src/mkerrcodes.awk +@@ -85,7 +85,7 @@ header { + } + + !header { +- sub (/\#.+/, ""); ++ sub (/#.+/, ""); + sub (/[ ]+$/, ""); # Strip trailing space and tab characters. + + if (/^$/) +--- a/src/mkerrcodes1.awk ++++ b/src/mkerrcodes1.awk +@@ -81,7 +81,7 @@ header { + } + + !header { +- sub (/\#.+/, ""); ++ sub (/#.+/, ""); + sub (/[ ]+$/, ""); # Strip trailing space and tab characters. + + if (/^$/) +--- a/src/mkerrcodes2.awk ++++ b/src/mkerrcodes2.awk +@@ -91,7 +91,7 @@ header { + } + + !header { +- sub (/\#.+/, ""); ++ sub (/#.+/, ""); + sub (/[ ]+$/, ""); # Strip trailing space and tab characters. + + if (/^$/) +--- a/src/mkerrnos.awk ++++ b/src/mkerrnos.awk +@@ -83,7 +83,7 @@ header { + } + + !header { +- sub (/\#.+/, ""); ++ sub (/#.+/, ""); + sub (/[ ]+$/, ""); # Strip trailing space and tab characters. + + if (/^$/) +--- a/src/mkstrtable.awk ++++ b/src/mkstrtable.awk +@@ -77,7 +77,7 @@ + # + # The variable prefix can be used to prepend a string to each message. + # +-# The variable namespace can be used to prepend a string to each ++# The variable pkg_namespace can be used to prepend a string to each + # variable and macro name. + + BEGIN { +@@ -102,7 +102,7 @@ header { + print "/* The purpose of this complex string table is to produce"; + print " optimal code with a minimum of relocations. */"; + print ""; +- print "static const char " namespace "msgstr[] = "; ++ print "static const char " pkg_namespace "msgstr[] = "; + header = 0; + } + else +@@ -110,7 +110,7 @@ header { + } + + !header { +- sub (/\#.+/, ""); ++ sub (/#.+/, ""); + sub (/[ ]+$/, ""); # Strip trailing space and tab characters. + + if (/^$/) +@@ -150,7 +150,7 @@ END { + else + print " gettext_noop (\"" last_msgstr "\");"; + print ""; +- print "static const int " namespace "msgidx[] ="; ++ print "static const int " pkg_namespace "msgidx[] ="; + print " {"; + for (i = 0; i < coded_msgs; i++) + print " " pos[i] ","; +@@ -158,7 +158,7 @@ END { + print " };"; + print ""; + print "static GPG_ERR_INLINE int"; +- print namespace "msgidxof (int code)"; ++ print pkg_namespace "msgidxof (int code)"; + print "{"; + print " return (0 ? 0"; + diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-support/libgpg-error/libgpg-error_1.36.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-support/libgpg-error/libgpg-error_1.36.bb index 2db544a1..b11ab054 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-support/libgpg-error/libgpg-error_1.36.bb +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-support/libgpg-error/libgpg-error_1.36.bb @@ -14,6 +14,7 @@ SECTION = "libs" UPSTREAM_CHECK_URI = "https://gnupg.org/download/index.html" SRC_URI = "${GNUPG_MIRROR}/libgpg-error/libgpg-error-${PV}.tar.bz2 \ file://pkgconfig.patch \ + file://libgpg-error-1.36-gawk5-support.patch \ " SRC_URI[md5sum] = "eff437f397e858a9127b76c0d87fa5ed" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-support/libical/libical/0001-CMakeLists.txt-libical.pc.in-fix-iculibs-remove-full.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-support/libical/libical/0001-CMakeLists.txt-libical.pc.in-fix-iculibs-remove-full.patch deleted file mode 100644 index 6db75f50..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-support/libical/libical/0001-CMakeLists.txt-libical.pc.in-fix-iculibs-remove-full.patch +++ /dev/null @@ -1,44 +0,0 @@ -From 1a41069c0dc054e59cd76fc3d8cf7cc2a78b5e8d Mon Sep 17 00:00:00 2001 -From: Allen Winter -Date: Sat, 3 Sep 2016 16:56:29 -0400 -Subject: [PATCH] CMakeLists.txt, libical.pc.in - fix iculibs (remove full path) ISSUE: 227 - -Upstream-Status: Backport - -Signed-off-by: Maxin B. John ----- -diff -Naur libical-2.0.0-orig/CMakeLists.txt libical-2.0.0/CMakeLists.txt ---- libical-2.0.0-orig/CMakeLists.txt 2016-09-08 18:05:06.166049345 +0300 -+++ libical-2.0.0/CMakeLists.txt 2016-09-08 18:05:45.201561334 +0300 -@@ -128,6 +128,7 @@ - # RSCALE info at http://tools.ietf.org/html/rfc7529 - find_package(ICU) - if(ICU_FOUND) -+ set(ICUUC_LIBS "-licuuc") #for libical.pc - set(HAVE_LIBICU 1) - if(ICU_MAJOR_VERSION VERSION_GREATER 50) - set(HAVE_ICU_DANGI TRUE) -@@ -137,6 +138,7 @@ - endif() - if(ICU_I18N_FOUND) - set(HAVE_LIBICU_I18N 1) -+ set(ICUI18N_LIBS "-licui18n") #for libical.pc - endif() - - # MSVC specific definitions -diff -Naur libical-2.0.0-orig/libical.pc.in libical-2.0.0/libical.pc.in ---- libical-2.0.0-orig/libical.pc.in 2015-12-28 23:44:53.000000000 +0200 -+++ libical-2.0.0/libical.pc.in 2016-09-08 18:09:12.991963597 +0300 -@@ -3,10 +3,10 @@ - libdir=@libdir@ - includedir=@includedir@ - threadslib=@PTHREAD_LIBS@ --iculib=@ICU_LIBRARIES@ @ICU_I18N_LIBRARIES@ -+iculibs=@ICUUC_LIBS@ @ICUI18N_LIBS@ - - Name: libical - Description: An implementation of basic iCAL protocols - Version: @VERSION@ --Libs: -L${libdir} -lical -licalss -licalvcal ${threadslib} ${iculib} -+Libs: -L${libdir} -lical -licalss -licalvcal ${threadslib} ${iculibs} - Cflags: -I${includedir} diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-support/libical/libical/0001-Use-our-hand-build-native-src-generator.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-support/libical/libical/0001-Use-our-hand-build-native-src-generator.patch new file mode 100644 index 00000000..b7b757d7 --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-support/libical/libical/0001-Use-our-hand-build-native-src-generator.patch @@ -0,0 +1,33 @@ +From e33bc310238bba1690f2c71ad333e10b9e422ea9 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Andreas=20M=C3=BCller?= +Date: Sat, 19 Oct 2019 14:23:06 +0200 +Subject: [PATCH] Use our hand-build native src-generator +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Upstream-Status: Inappropriate [oe-core specific] + +Signed-off-by: Andreas Müller +--- + src/libical-glib/CMakeLists.txt | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/src/libical-glib/CMakeLists.txt b/src/libical-glib/CMakeLists.txt +index f3704e6..ce9db16 100644 +--- a/src/libical-glib/CMakeLists.txt ++++ b/src/libical-glib/CMakeLists.txt +@@ -63,8 +63,8 @@ endforeach() + + add_custom_command ( + OUTPUT ${LIBICAL_GLIB_SOURCES} ${CMAKE_CURRENT_BINARY_DIR}/libical-glib-private.h ${CMAKE_CURRENT_BINARY_DIR}/i-cal-forward-declarations.h +- COMMAND ${EXECUTABLE_OUTPUT_PATH}/src-generator "${CMAKE_CURRENT_SOURCE_DIR}/tools" "${CMAKE_CURRENT_SOURCE_DIR}/api" +- DEPENDS ${EXECUTABLE_OUTPUT_PATH}/src-generator ${xml_files} ++ COMMAND ${CMAKE_BINARY_DIR}/src-generator "${CMAKE_CURRENT_SOURCE_DIR}/tools" "${CMAKE_CURRENT_SOURCE_DIR}/api" ++ DEPENDS ${CMAKE_BINARY_DIR}/src-generator ${xml_files} + ) + + configure_file( +-- +2.21.0 + diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-support/libical/libical_2.0.0.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-support/libical/libical_2.0.0.bb deleted file mode 100644 index 7dffdcfb..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-support/libical/libical_2.0.0.bb +++ /dev/null @@ -1,28 +0,0 @@ -SUMMARY = "iCal and scheduling (RFC 2445, 2446, 2447) library" -HOMEPAGE = "https://github.com/libical/libical" -BUGTRACKER = "https://github.com/libical/libical/issues" -LICENSE = "LGPLv2.1 | MPL-1.0" -LIC_FILES_CHKSUM = "file://COPYING;md5=d4fc58309d8ed46587ac63bb449d82f8 \ - file://LICENSE;md5=d1a0891cd3e582b3e2ec8fe63badbbb6" -SECTION = "libs" - -SRC_URI = "https://github.com/${BPN}/${BPN}/releases/download/v${PV}/${BP}.tar.gz \ - file://0001-CMakeLists.txt-libical.pc.in-fix-iculibs-remove-full.patch \ - " -DEPENDS = "icu" - -SRC_URI[md5sum] = "6bf8e5f5a3ba88baf390d0134e05d76e" -SRC_URI[sha256sum] = "654c11f759c19237be39f6ad401d917e5a05f36f1736385ed958e60cf21456da" -UPSTREAM_CHECK_URI = "https://github.com/libical/libical/releases" - -inherit cmake pkgconfig - -# No need to use perl-native, the host perl is sufficient. -EXTRA_OECMAKE += "-DPERL_EXECUTABLE=${HOSTTOOLS_DIR}/perl" - -do_install_append_class-target () { - # Remove build host references - sed -i \ - -e 's,${STAGING_LIBDIR},${libdir},g' \ - ${D}${libdir}/cmake/LibIcal/LibIcalTargets-noconfig.cmake -} diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-support/libical/libical_3.0.6.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-support/libical/libical_3.0.6.bb new file mode 100644 index 00000000..f9be898a --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-support/libical/libical_3.0.6.bb @@ -0,0 +1,43 @@ +SUMMARY = "iCal and scheduling (RFC 2445, 2446, 2447) library" +HOMEPAGE = "https://github.com/libical/libical" +BUGTRACKER = "https://github.com/libical/libical/issues" +LICENSE = "LGPLv2.1 | MPL-2.0" +LIC_FILES_CHKSUM = "file://LICENSE;md5=1910a2a76ddf6a9ba369182494170d87 \ + file://LICENSE.LGPL21.txt;md5=933adb561f159e7c3da079536f0ed871 \ + file://LICENSE.MPL2.txt;md5=9741c346eef56131163e13b9db1241b3" +SECTION = "libs" + +SRC_URI = " \ + https://github.com/${BPN}/${BPN}/releases/download/v${PV}/${BP}.tar.gz \ + file://0001-Use-our-hand-build-native-src-generator.patch \ +" +SRC_URI[md5sum] = "463a59244c6767b8e67b29379405e297" +SRC_URI[sha256sum] = "5c8a21c2b732ece4a33e5c862970b4f35a8548bbcda50de5695f6fc211ac4d97" +UPSTREAM_CHECK_URI = "https://github.com/libical/libical/releases" + +inherit cmake pkgconfig + +do_compile_prepend() { + # As long as https://github.com/libical/libical/issues/394 is open build native src-generator manually + NATIVE_CFLAGS="${BUILD_CFLAGS} `pkg-config-native --cflags glib-2.0` `pkg-config-native --cflags libxml-2.0`" + NATIVE_LDFLAGS="${BUILD_LDFLAGS} `pkg-config-native --libs glib-2.0` `pkg-config-native --libs libxml-2.0`" + ${BUILD_CC} $NATIVE_CFLAGS ${S}/src/libical-glib/tools/generator.c ${S}/src/libical-glib/tools/xml-parser.c -o ${B}/src-generator $NATIVE_LDFLAGS +} + +PACKAGECONFIG ??= "icu glib" +PACKAGECONFIG[bdb] = ",-DCMAKE_DISABLE_FIND_PACKAGE_BDB=True,db" +PACKAGECONFIG[glib] = "-DICAL_GLIB=True,-DICAL_GLIB=False,glib-2.0-native libxml2-native glib-2.0 libxml2" +# ICU is used for RSCALE (RFC7529) support +PACKAGECONFIG[icu] = ",-DCMAKE_DISABLE_FIND_PACKAGE_ICU=True,icu" + +# No need to use perl-native, the host perl is sufficient. +EXTRA_OECMAKE += "-DPERL_EXECUTABLE=${HOSTTOOLS_DIR}/perl" +# doc build fails with linker error (??) for libical-glib so disable it +EXTRA_OECMAKE += "-DICAL_BUILD_DOCS=false" + +do_install_append () { + # Remove build host references + sed -i \ + -e 's,${STAGING_LIBDIR},${libdir},g' \ + ${D}${libdir}/cmake/LibIcal/LibIcal*.cmake +} diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-support/libksba/libksba_1.3.5.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-support/libksba/libksba_1.3.5.bb index a7ea53fe..336d7f81 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-support/libksba/libksba_1.3.5.bb +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-support/libksba/libksba_1.3.5.bb @@ -1,6 +1,8 @@ SUMMARY = "Easy API to create and parse X.509 and CMS related objects" HOMEPAGE = "http://www.gnupg.org/related_software/libksba/" -LICENSE = "GPLv2+ | LGPLv3+ | GPLv3+" +LICENSE = "GPLv3+ & (GPLv2+ | LGPLv3+)" +LICENSE_${PN} = "GPLv2+ | LGPLv3+" +LICENSE_${PN}-doc = "GPLv3+" LIC_FILES_CHKSUM = "file://COPYING;md5=fd541d83f75d038c4e0617b672ed8bda \ file://COPYING.GPLv2;md5=b234ee4d69f5fce4486a80fdaf4a4263 \ file://COPYING.GPLv3;md5=2f31b266d3440dd7ee50f92cf67d8e6c \ @@ -25,4 +27,4 @@ do_configure_prepend () { rm -f ${S}/m4/gpg-error.m4 } -BBCLASSEXTEND = "native" +BBCLASSEXTEND = "native nativesdk" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-support/libmpc/libmpc_1.1.0.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-support/libmpc/libmpc_1.1.0.bb index 2d25d388..bbc673ff 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-support/libmpc/libmpc_1.1.0.bb +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-support/libmpc/libmpc_1.1.0.bb @@ -3,13 +3,11 @@ require libmpc.inc DEPENDS = "gmp mpfr" LIC_FILES_CHKSUM = "file://COPYING.LESSER;md5=e6a600fd5e1d9cbde2d983680233ad02" -SRC_URI = "https://ftp.gnu.org/gnu/mpc/mpc-${PV}.tar.gz" +SRC_URI = "${GNU_MIRROR}/mpc/mpc-${PV}.tar.gz" SRC_URI[md5sum] = "4125404e41e482ec68282a2e687f6c73" SRC_URI[sha256sum] = "6985c538143c1208dcb1ac42cedad6ff52e267b47e5f970183a3e75125b43c2e" -UPSTREAM_CHECK_URI = "http://www.multiprecision.org/mpc/download.html" - S = "${WORKDIR}/mpc-${PV}" BBCLASSEXTEND = "native nativesdk" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-support/libnl/libnl/0001-PATCH-fix-libnl-3.4.0-musl-compile-problem.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-support/libnl/libnl/0001-PATCH-fix-libnl-3.4.0-musl-compile-problem.patch deleted file mode 100644 index b20a2996..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-support/libnl/libnl/0001-PATCH-fix-libnl-3.4.0-musl-compile-problem.patch +++ /dev/null @@ -1,38 +0,0 @@ -Subject: [PATCH] fix libnl-3.4.0 musl compile problem -Avoid in6_addr redefinition - -Upstream-Status: Pending - -Signed-off-by: Huang Qiyu ---- - include/linux-private/linux/if_bridge.h | 1 - - include/linux-private/linux/ipv6.h | 1 - - 2 files changed, 2 deletions(-) - -diff --git a/include/linux-private/linux/if_bridge.h b/include/linux-private/linux/if_bridge.h -index f24050b..8f7490c 100644 ---- a/include/linux-private/linux/if_bridge.h -+++ b/include/linux-private/linux/if_bridge.h -@@ -15,7 +15,6 @@ - - #include - #include --#include - - #define SYSFS_BRIDGE_ATTR "bridge" - #define SYSFS_BRIDGE_FDB "brforward" -diff --git a/include/linux-private/linux/ipv6.h b/include/linux-private/linux/ipv6.h -index e05e684..f16349d 100644 ---- a/include/linux-private/linux/ipv6.h -+++ b/include/linux-private/linux/ipv6.h -@@ -2,7 +2,6 @@ - #define _IPV6_H - - #include --#include - - /* The latest drafts declared increase in minimal mtu up to 1280. */ - --- -2.7.4 - diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-support/libnl/libnl/fix-pc-file.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-support/libnl/libnl/fix-pc-file.patch deleted file mode 100644 index fe8b833a..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-support/libnl/libnl/fix-pc-file.patch +++ /dev/null @@ -1,17 +0,0 @@ -Upstream-Status: Pending - -Some packages are asking only for libnl-2.0, but expects to get also -libnl-genl, libnl-nf libnl-route, easiest way to fix them is here. - -Signed-off-by: Martin Jansa -Index: libnl-3.2.14/libnl-3.0.pc.in -=================================================================== ---- libnl-3.2.14.orig/libnl-3.0.pc.in -+++ libnl-3.2.14/libnl-3.0.pc.in -@@ -6,5 +6,5 @@ includedir=@includedir@ - Name: libnl - Description: Convenience library for netlink sockets - Version: @PACKAGE_VERSION@ --Libs: -L${libdir} -lnl-@MAJ_VERSION@ -+Libs: -L${libdir} -lnl-@MAJ_VERSION@ -lnl-genl-@MAJ_VERSION@ -lnl-nf-@MAJ_VERSION@ -lnl-route-@MAJ_VERSION@ - Cflags: -I${includedir}/libnl@MAJ_VERSION@ diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-support/libnl/libnl_3.4.0.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-support/libnl/libnl_3.4.0.bb deleted file mode 100644 index 90dc644b..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-support/libnl/libnl_3.4.0.bb +++ /dev/null @@ -1,46 +0,0 @@ -SUMMARY = "A library for applications dealing with netlink sockets" -HOMEPAGE = "http://www.infradead.org/~tgr/libnl/" -SECTION = "libs/network" - -PE = "1" - -LICENSE = "LGPLv2.1" -LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c" - -DEPENDS = "flex-native bison-native" - -SRC_URI = "https://github.com/thom311/${BPN}/releases/download/${BPN}${@d.getVar('PV').replace('.','_')}/${BP}.tar.gz \ - file://fix-pc-file.patch \ - file://0001-PATCH-fix-libnl-3.4.0-musl-compile-problem.patch \ -" - -UPSTREAM_CHECK_URI = "https://github.com/thom311/${BPN}/releases" - -SRC_URI[md5sum] = "8f71910c03db363b41e2ea62057a4311" -SRC_URI[sha256sum] = "b7287637ae71c6db6f89e1422c995f0407ff2fe50cecd61a312b6a9b0921f5bf" - -inherit autotools pkgconfig - -FILES_${PN} = "${libdir}/libnl-3.so.* \ - ${libdir}/libnl.so.* \ - ${sysconfdir}" -RREPLACES_${PN} = "libnl2" -RCONFLICTS_${PN} = "libnl2" -FILES_${PN}-dev += "${libdir}/libnl/cli/*/*.la" -FILES_${PN}-staticdev += "${libdir}/libnl/cli/*/*.a" - -PACKAGES += "${PN}-cli ${PN}-genl ${PN}-idiag ${PN}-nf ${PN}-route ${PN}-xfrm" -FILES_${PN}-cli = "${libdir}/libnl-cli-3.so.* \ - ${libdir}/libnl/cli/*/*.so \ - ${bindir}/genl-ctrl-list \ - ${bindir}/idiag-socket-details \ - ${bindir}/nf-* \ - ${bindir}/nl-*" -FILES_${PN}-genl = "${libdir}/libnl-genl-3.so.* \ - ${libdir}/libnl-genl.so.*" -FILES_${PN}-idiag = "${libdir}/libnl-idiag-3.so.*" -FILES_${PN}-nf = "${libdir}/libnl-nf-3.so.*" -FILES_${PN}-route = "${libdir}/libnl-route-3.so.*" -FILES_${PN}-xfrm = "${libdir}/libnl-xfrm-3.so.*" -RREPLACES_${PN}-genl = "libnl-genl2" -RCONFLICTS_${PN}-genl = "libnl-genl2" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-support/libnl/libnl_3.5.0.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-support/libnl/libnl_3.5.0.bb new file mode 100644 index 00000000..c0609c4d --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-support/libnl/libnl_3.5.0.bb @@ -0,0 +1,42 @@ +SUMMARY = "A library for applications dealing with netlink sockets" +HOMEPAGE = "http://www.infradead.org/~tgr/libnl/" +SECTION = "libs/network" + +PE = "1" + +LICENSE = "LGPLv2.1" +LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c" + +DEPENDS = "flex-native bison-native" + +SRC_URI = "https://github.com/thom311/${BPN}/releases/download/${BPN}${@d.getVar('PV').replace('.','_')}/${BP}.tar.gz" +SRC_URI[md5sum] = "74ba57b1b1d6f9f92268aa8141d8e8e4" +SRC_URI[sha256sum] = "352133ec9545da76f77e70ccb48c9d7e5324d67f6474744647a7ed382b5e05fa" + +UPSTREAM_CHECK_URI = "https://github.com/thom311/${BPN}/releases" + +inherit autotools pkgconfig + +FILES_${PN} = "${libdir}/libnl-3.so.* \ + ${libdir}/libnl.so.* \ + ${sysconfdir}" +RREPLACES_${PN} = "libnl2" +RCONFLICTS_${PN} = "libnl2" +FILES_${PN}-dev += "${libdir}/libnl/cli/*/*.la" +FILES_${PN}-staticdev += "${libdir}/libnl/cli/*/*.a" + +PACKAGES += "${PN}-cli ${PN}-genl ${PN}-idiag ${PN}-nf ${PN}-route ${PN}-xfrm" +FILES_${PN}-cli = "${libdir}/libnl-cli-3.so.* \ + ${libdir}/libnl/cli/*/*.so \ + ${bindir}/genl-ctrl-list \ + ${bindir}/idiag-socket-details \ + ${bindir}/nf-* \ + ${bindir}/nl-*" +FILES_${PN}-genl = "${libdir}/libnl-genl-3.so.* \ + ${libdir}/libnl-genl.so.*" +FILES_${PN}-idiag = "${libdir}/libnl-idiag-3.so.*" +FILES_${PN}-nf = "${libdir}/libnl-nf-3.so.*" +FILES_${PN}-route = "${libdir}/libnl-route-3.so.*" +FILES_${PN}-xfrm = "${libdir}/libnl-xfrm-3.so.*" +RREPLACES_${PN}-genl = "libnl-genl2" +RCONFLICTS_${PN}-genl = "libnl-genl2" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-support/libpcre/libpcre2_10.33.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-support/libpcre/libpcre2_10.33.bb index 50b26753..87da3137 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-support/libpcre/libpcre2_10.33.bb +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-support/libpcre/libpcre2_10.33.bb @@ -7,7 +7,7 @@ not the original PCRE 8.x series." SUMMARY = "Perl Compatible Regular Expressions version 2" HOMEPAGE = "http://www.pcre.org" SECTION = "devel" -LICENSE = "BSD" +LICENSE = "BSD-3-Clause" LIC_FILES_CHKSUM = "file://LICENCE;md5=b1588d3bb4cb0e1f5a597d908f8c5b37" SRC_URI = "https://ftp.pcre.org/pub/pcre/pcre2-${PV}.tar.bz2 \ diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-support/libpcre/libpcre_8.43.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-support/libpcre/libpcre_8.43.bb index b97af08b..f9a22fee 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-support/libpcre/libpcre_8.43.bb +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-support/libpcre/libpcre_8.43.bb @@ -5,7 +5,7 @@ to the POSIX regular expression API." SUMMARY = "Perl Compatible Regular Expressions" HOMEPAGE = "http://www.pcre.org" SECTION = "devel" -LICENSE = "BSD" +LICENSE = "BSD-3-Clause" LIC_FILES_CHKSUM = "file://LICENCE;md5=91bee59d1b327eb1599b4c673e2fb3d1" SRC_URI = "https://ftp.pcre.org/pub/pcre/pcre-${PV}.tar.bz2 \ file://fix-pcre-name-collision.patch \ diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-support/libpsl/libpsl/0001-Makefile.am-use-PYTHON-when-invoking-psl-make-dafsa.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-support/libpsl/libpsl/0001-Makefile.am-use-PYTHON-when-invoking-psl-make-dafsa.patch new file mode 100644 index 00000000..6d6ccf4d --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-support/libpsl/libpsl/0001-Makefile.am-use-PYTHON-when-invoking-psl-make-dafsa.patch @@ -0,0 +1,50 @@ +From a0e6f0ec9dc6dd1db1c03f7f273cc16cb3af5561 Mon Sep 17 00:00:00 2001 +From: Ross Burton +Date: Thu, 11 Jul 2019 17:47:11 +0100 +Subject: [PATCH] Makefile.am: use PYTHON when invoking psl-make-dafsa + +In an environment where only Python 3 is installed, configure.ac finds and sets +PYTHON=python3 correctly but src/psl-make-dafsa is called directly, so the hashbang of +`#!/usr/bin/env python` is used which doesn't exist. + +Fix this by explicitly running $(PYTHON) when using the tool. + +Upstream-Status: Backport [https://github.com/rockdaboot/libpsl/commit/b4fec5d0ddb70fc4f5360eb14f2f5c5e91194333] +Signed-off-by: Alexander Kanavin +--- + src/Makefile.am | 2 +- + tests/Makefile.am | 4 ++-- + 2 files changed, 3 insertions(+), 3 deletions(-) + +diff --git a/src/Makefile.am b/src/Makefile.am +index f9c0a3d..a05ea05 100644 +--- a/src/Makefile.am ++++ b/src/Makefile.am +@@ -19,7 +19,7 @@ libpsl_la_LDFLAGS = -no-undefined -version-info $(LIBPSL_SO_VERSION) + # Build rule for suffix_dafsa.c + # PSL_FILE can be set by ./configure --with-psl-file=[PATH] + suffixes_dafsa.h: $(PSL_FILE) $(srcdir)/psl-make-dafsa +- $(srcdir)/psl-make-dafsa --output-format=cxx+ "$(PSL_FILE)" suffixes_dafsa.h ++ $(PYTHON) $(srcdir)/psl-make-dafsa --output-format=cxx+ "$(PSL_FILE)" suffixes_dafsa.h + + EXTRA_DIST = psl-make-dafsa LICENSE.chromium + +diff --git a/tests/Makefile.am b/tests/Makefile.am +index 8b29b61..28a9a0b 100644 +--- a/tests/Makefile.am ++++ b/tests/Makefile.am +@@ -34,9 +34,9 @@ TESTS = $(PSL_TESTS) + # check-local target works in parallel to the tests, so the test suite will likely fail + BUILT_SOURCES = psl.dafsa psl_ascii.dafsa + psl.dafsa: $(top_srcdir)/list/public_suffix_list.dat +- $(top_srcdir)/src/psl-make-dafsa --output-format=binary "$(PSL_FILE)" psl.dafsa ++ $(PYTHON) $(top_srcdir)/src/psl-make-dafsa --output-format=binary "$(PSL_FILE)" psl.dafsa + psl_ascii.dafsa: $(top_srcdir)/list/public_suffix_list.dat +- $(top_srcdir)/src/psl-make-dafsa --output-format=binary --encoding=ascii "$(PSL_FILE)" psl_ascii.dafsa ++ $(PYTHON) $(top_srcdir)/src/psl-make-dafsa --output-format=binary --encoding=ascii "$(PSL_FILE)" psl_ascii.dafsa + + clean-local: + rm -f psl.dafsa psl_ascii.dafsa +-- +2.17.1 + diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-support/libpsl/libpsl/0001-gtk-doc-do-not-include-tree_index.sgml.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-support/libpsl/libpsl/0001-gtk-doc-do-not-include-tree_index.sgml.patch index 2331a766..c78d6fd9 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-support/libpsl/libpsl/0001-gtk-doc-do-not-include-tree_index.sgml.patch +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-support/libpsl/libpsl/0001-gtk-doc-do-not-include-tree_index.sgml.patch @@ -5,7 +5,7 @@ Subject: [PATCH] gtk-doc: do not include tree_index.sgml gtk-doc 1.30 no longer generates the file if the object tree is empty -Upstream-Status: Submitted [https://github.com/rockdaboot/libpsl/pull/137] +Upstream-Status: Backport [87d1add318b5e5d09977f7f374e923577b6ff3be] Signed-off-by: Alexander Kanavin --- docs/libpsl/libpsl-docs.sgml | 4 ---- diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-support/libpsl/libpsl_0.21.0.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-support/libpsl/libpsl_0.21.0.bb index fc2417fc..9831b4b9 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-support/libpsl/libpsl_0.21.0.bb +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-support/libpsl/libpsl_0.21.0.bb @@ -6,6 +6,7 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=5437030d9e4fbe7267ced058ddb8a7f5 \ SRC_URI = "https://github.com/rockdaboot/${BPN}/releases/download/${BP}/${BP}.tar.gz \ file://0001-gtk-doc-do-not-include-tree_index.sgml.patch \ + file://0001-Makefile.am-use-PYTHON-when-invoking-psl-make-dafsa.patch \ " SRC_URI[md5sum] = "171e96d887709e36a57f4ee627bf82d2" SRC_URI[sha256sum] = "41bd1c75a375b85c337b59783f5deb93dbb443fb0a52d257f403df7bd653ee12" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-support/libsoup/libsoup-2.4/0001-Do-not-enforce-no-introspection-when-cross-building.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-support/libsoup/libsoup-2.4/0001-Do-not-enforce-no-introspection-when-cross-building.patch index cd6de853..d534457e 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-support/libsoup/libsoup-2.4/0001-Do-not-enforce-no-introspection-when-cross-building.patch +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-support/libsoup/libsoup-2.4/0001-Do-not-enforce-no-introspection-when-cross-building.patch @@ -3,7 +3,7 @@ From: Alexander Kanavin Date: Fri, 15 Feb 2019 14:21:06 +0100 Subject: [PATCH] Do not enforce no-introspection when cross-building -Upstream-Status: Pending +Upstream-Status: Backport [https://gitlab.gnome.org/GNOME/libsoup/commit/7ef5ec60c33e254bcd915936bea3f04ba0fe2273] Signed-off-by: Alexander Kanavin Signed-off-by: Alistair Francis --- diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-support/libsoup/libsoup-2.4_2.66.2.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-support/libsoup/libsoup-2.4_2.66.2.bb deleted file mode 100644 index c4715a04..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-support/libsoup/libsoup-2.4_2.66.2.bb +++ /dev/null @@ -1,38 +0,0 @@ -SUMMARY = "An HTTP library implementation in C" -HOMEPAGE = "https://wiki.gnome.org/Projects/libsoup" -BUGTRACKER = "https://bugzilla.gnome.org/" -SECTION = "x11/gnome/libs" -LICENSE = "LGPLv2" -LIC_FILES_CHKSUM = "file://COPYING;md5=5f30f0716dfdd0d91eb439ebec522ec2" - -DEPENDS = "glib-2.0 glib-2.0-native libxml2 sqlite3 intltool-native libpsl" - -SHRT_VER = "${@d.getVar('PV').split('.')[0]}.${@d.getVar('PV').split('.')[1]}" - -SRC_URI = "${GNOME_MIRROR}/libsoup/${SHRT_VER}/libsoup-${PV}.tar.xz \ - file://0001-Do-not-enforce-no-introspection-when-cross-building.patch \ - " -SRC_URI[md5sum] = "66c2ae89d6031b01337d78a2c57c75d5" -SRC_URI[sha256sum] = "bd2ea602eba642509672812f3c99b77cbec2f3de02ba1cc8cb7206bf7de0ae2a" - -S = "${WORKDIR}/libsoup-${PV}" - -inherit meson gettext pkgconfig upstream-version-is-even gobject-introspection gtk-doc - -# libsoup-gnome is entirely deprecated and just stubs in 2.42 onwards. Disable by default. -PACKAGECONFIG ??= "" -PACKAGECONFIG[gnome] = "-Dgnome=true,-Dgnome=false" -PACKAGECONFIG[gssapi] = "-Dgssapi=true,-Dgssapi=false,krb5" - -EXTRA_OEMESON_append = " -Dvapi=false" - -GTKDOC_MESON_OPTION = "doc" - -# When built without gnome support, libsoup-2.4 will contain only one shared lib -# and will therefore become subject to renaming by debian.bbclass. Prevent -# renaming in order to keep the package name consistent regardless of whether -# gnome support is enabled or disabled. -DEBIAN_NOAUTONAME_${PN} = "1" - -# glib-networking is needed for SSL, proxies, etc. -RRECOMMENDS_${PN} = "glib-networking" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-support/libsoup/libsoup-2.4_2.66.4.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-support/libsoup/libsoup-2.4_2.66.4.bb new file mode 100644 index 00000000..7f5f910d --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-support/libsoup/libsoup-2.4_2.66.4.bb @@ -0,0 +1,42 @@ +SUMMARY = "An HTTP library implementation in C" +HOMEPAGE = "https://wiki.gnome.org/Projects/libsoup" +BUGTRACKER = "https://bugzilla.gnome.org/" +SECTION = "x11/gnome/libs" +LICENSE = "LGPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=5f30f0716dfdd0d91eb439ebec522ec2" + +DEPENDS = "glib-2.0 glib-2.0-native libxml2 sqlite3 intltool-native libpsl" + +SHRT_VER = "${@d.getVar('PV').split('.')[0]}.${@d.getVar('PV').split('.')[1]}" + +SRC_URI = "${GNOME_MIRROR}/libsoup/${SHRT_VER}/libsoup-${PV}.tar.xz \ + file://0001-Do-not-enforce-no-introspection-when-cross-building.patch \ + " +SRC_URI[md5sum] = "42016d80ecae4cf8eb416631049a273a" +SRC_URI[sha256sum] = "8308984f1eee1c4f8c113a9c1763b2b22d981bd811b0cc82a9f3f1aa63228779" + +CVE_PRODUCT = "libsoup" + +S = "${WORKDIR}/libsoup-${PV}" + +inherit meson gettext pkgconfig upstream-version-is-even gobject-introspection gtk-doc + +# libsoup-gnome is entirely deprecated and just stubs in 2.42 onwards. Disable by default. +PACKAGECONFIG ??= "" +PACKAGECONFIG[gnome] = "-Dgnome=true,-Dgnome=false" +PACKAGECONFIG[gssapi] = "-Dgssapi=true,-Dgssapi=false,krb5" + +EXTRA_OEMESON_append = " -Dvapi=false" + +GTKDOC_MESON_OPTION = "gtk_doc" + +# When built without gnome support, libsoup-2.4 will contain only one shared lib +# and will therefore become subject to renaming by debian.bbclass. Prevent +# renaming in order to keep the package name consistent regardless of whether +# gnome support is enabled or disabled. +DEBIAN_NOAUTONAME_${PN} = "1" + +# glib-networking is needed for SSL, proxies, etc. +RRECOMMENDS_${PN} = "glib-networking" + +BBCLASSEXTEND = "native" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-support/libunwind/libunwind.inc b/Contrib-Inspur/openbmc/poky/meta/recipes-support/libunwind/libunwind.inc index 36851d07..76a1bf62 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-support/libunwind/libunwind.inc +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-support/libunwind/libunwind.inc @@ -2,7 +2,7 @@ SUMMARY = "Library for obtaining the call-chain of a program" DESCRIPTION = "a portable and efficient C programming interface (API) to determine the call-chain of a program" HOMEPAGE = "http://www.nongnu.org/libunwind" LICENSE = "MIT" -LIC_FILES_CHKSUM = "file://COPYING;beginline=3;md5=3fced11d6df719b47505837a51c16ae5" +LIC_FILES_CHKSUM = "file://COPYING;md5=2d80c8ed4062b8339b715f90fa68cc9f" DEPENDS += "libatomic-ops" inherit autotools multilib_header @@ -12,6 +12,7 @@ PACKAGECONFIG[lzma] = "--enable-minidebuginfo,--disable-minidebuginfo,xz" PACKAGECONFIG[latexdocs] = "--enable-documentation, --disable-documentation, latex2man-native" EXTRA_OECONF_arm = "--enable-debug-frame" +EXTRA_OECONF_armeb = "--enable-debug-frame" EXTRA_OECONF_aarch64 = "--enable-debug-frame" do_install_append () { diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-support/libxslt/files/0001-Fix-security-framework-bypass.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-support/libxslt/files/0001-Fix-security-framework-bypass.patch deleted file mode 100644 index 89b647dd..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-support/libxslt/files/0001-Fix-security-framework-bypass.patch +++ /dev/null @@ -1,124 +0,0 @@ -From e03553605b45c88f0b4b2980adfbbb8f6fca2fd6 Mon Sep 17 00:00:00 2001 -From: Nick Wellnhofer -Date: Sun, 24 Mar 2019 09:51:39 +0100 -Subject: Fix security framework bypass - -xsltCheckRead and xsltCheckWrite return -1 in case of error but callers -don't check for this condition and allow access. With a specially -crafted URL, xsltCheckRead could be tricked into returning an error -because of a supposedly invalid URL that would still be loaded -succesfully later on. - -Fixes #12. - -Thanks to Felix Wilhelm for the report. - -Signed-off-by: Adrian Bunk -Upstream-Status: Backport -CVE: CVE-2019-11068 ---- - libxslt/documents.c | 18 ++++++++++-------- - libxslt/imports.c | 9 +++++---- - libxslt/transform.c | 9 +++++---- - libxslt/xslt.c | 9 +++++---- - 4 files changed, 25 insertions(+), 20 deletions(-) - -diff --git a/libxslt/documents.c b/libxslt/documents.c -index 3f3a7312..4aad11bb 100644 ---- a/libxslt/documents.c -+++ b/libxslt/documents.c -@@ -296,10 +296,11 @@ xsltLoadDocument(xsltTransformContextPtr ctxt, const xmlChar *URI) { - int res; - - res = xsltCheckRead(ctxt->sec, ctxt, URI); -- if (res == 0) { -- xsltTransformError(ctxt, NULL, NULL, -- "xsltLoadDocument: read rights for %s denied\n", -- URI); -+ if (res <= 0) { -+ if (res == 0) -+ xsltTransformError(ctxt, NULL, NULL, -+ "xsltLoadDocument: read rights for %s denied\n", -+ URI); - return(NULL); - } - } -@@ -372,10 +373,11 @@ xsltLoadStyleDocument(xsltStylesheetPtr style, const xmlChar *URI) { - int res; - - res = xsltCheckRead(sec, NULL, URI); -- if (res == 0) { -- xsltTransformError(NULL, NULL, NULL, -- "xsltLoadStyleDocument: read rights for %s denied\n", -- URI); -+ if (res <= 0) { -+ if (res == 0) -+ xsltTransformError(NULL, NULL, NULL, -+ "xsltLoadStyleDocument: read rights for %s denied\n", -+ URI); - return(NULL); - } - } -diff --git a/libxslt/imports.c b/libxslt/imports.c -index 874870cc..3783b247 100644 ---- a/libxslt/imports.c -+++ b/libxslt/imports.c -@@ -130,10 +130,11 @@ xsltParseStylesheetImport(xsltStylesheetPtr style, xmlNodePtr cur) { - int secres; - - secres = xsltCheckRead(sec, NULL, URI); -- if (secres == 0) { -- xsltTransformError(NULL, NULL, NULL, -- "xsl:import: read rights for %s denied\n", -- URI); -+ if (secres <= 0) { -+ if (secres == 0) -+ xsltTransformError(NULL, NULL, NULL, -+ "xsl:import: read rights for %s denied\n", -+ URI); - goto error; - } - } -diff --git a/libxslt/transform.c b/libxslt/transform.c -index 13793914..0636dbd0 100644 ---- a/libxslt/transform.c -+++ b/libxslt/transform.c -@@ -3493,10 +3493,11 @@ xsltDocumentElem(xsltTransformContextPtr ctxt, xmlNodePtr node, - */ - if (ctxt->sec != NULL) { - ret = xsltCheckWrite(ctxt->sec, ctxt, filename); -- if (ret == 0) { -- xsltTransformError(ctxt, NULL, inst, -- "xsltDocumentElem: write rights for %s denied\n", -- filename); -+ if (ret <= 0) { -+ if (ret == 0) -+ xsltTransformError(ctxt, NULL, inst, -+ "xsltDocumentElem: write rights for %s denied\n", -+ filename); - xmlFree(URL); - xmlFree(filename); - return; -diff --git a/libxslt/xslt.c b/libxslt/xslt.c -index 780a5ad7..a234eb79 100644 ---- a/libxslt/xslt.c -+++ b/libxslt/xslt.c -@@ -6763,10 +6763,11 @@ xsltParseStylesheetFile(const xmlChar* filename) { - int res; - - res = xsltCheckRead(sec, NULL, filename); -- if (res == 0) { -- xsltTransformError(NULL, NULL, NULL, -- "xsltParseStylesheetFile: read rights for %s denied\n", -- filename); -+ if (res <= 0) { -+ if (res == 0) -+ xsltTransformError(NULL, NULL, NULL, -+ "xsltParseStylesheetFile: read rights for %s denied\n", -+ filename); - return(NULL); - } - } --- -2.20.1 - diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-support/libxslt/libxslt_1.1.33.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-support/libxslt/libxslt_1.1.33.bb deleted file mode 100644 index 6320a821..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-support/libxslt/libxslt_1.1.33.bb +++ /dev/null @@ -1,50 +0,0 @@ -SUMMARY = "GNOME XSLT library" -HOMEPAGE = "http://xmlsoft.org/XSLT/" -BUGTRACKER = "https://bugzilla.gnome.org/" - -LICENSE = "MIT" -LIC_FILES_CHKSUM = "file://Copyright;md5=0cd9a07afbeb24026c9b03aecfeba458" - -SECTION = "libs" -DEPENDS = "libxml2" - -SRC_URI = "http://xmlsoft.org/sources/libxslt-${PV}.tar.gz \ - file://0001-Fix-security-framework-bypass.patch \ -" - -SRC_URI[md5sum] = "b3bd254a03e46d58f8ad1e4559cd2c2f" -SRC_URI[sha256sum] = "8e36605144409df979cab43d835002f63988f3dc94d5d3537c12796db90e38c8" - -UPSTREAM_CHECK_REGEX = "libxslt-(?P\d+(\.\d+)+)\.tar" - -S = "${WORKDIR}/libxslt-${PV}" - -BINCONFIG = "${bindir}/xslt-config" - -inherit autotools pkgconfig binconfig-disabled lib_package - -do_configure_prepend () { - # We don't DEPEND on binutils for ansidecl.h so ensure we don't use the header. - # This can be removed when upgrading to 1.1.34. - sed -i -e 's/ansidecl.h//' ${S}/configure.ac - - # The timestamps in the 1.1.28 tarball are messed up causing this file to - # appear out of date. Touch it so that we don't try to regenerate it. - touch ${S}/doc/xsltproc.1 -} - -EXTRA_OECONF = "--without-python --without-debug --without-mem-debug --without-crypto --with-html-subdir=${BPN}" -# older versions of this recipe had ${PN}-utils -RPROVIDES_${PN}-bin += "${PN}-utils" -RCONFLICTS_${PN}-bin += "${PN}-utils" -RREPLACES_${PN}-bin += "${PN}-utils" - -# This is only needed until libxml can load the relocated catalog itself -do_install_append_class-native () { - create_wrapper ${D}/${bindir}/xsltproc XML_CATALOG_FILES=${sysconfdir}/xml/catalog -} - -FILES_${PN} += "${libdir}/libxslt-plugins" -FILES_${PN}-dev += "${libdir}/xsltConf.sh" - -BBCLASSEXTEND = "native nativesdk" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-support/libxslt/libxslt_1.1.34.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-support/libxslt/libxslt_1.1.34.bb new file mode 100644 index 00000000..ad37b5a4 --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-support/libxslt/libxslt_1.1.34.bb @@ -0,0 +1,49 @@ +SUMMARY = "GNOME XSLT library" +HOMEPAGE = "http://xmlsoft.org/XSLT/" +BUGTRACKER = "https://bugzilla.gnome.org/" + +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://Copyright;md5=0cd9a07afbeb24026c9b03aecfeba458" + +SECTION = "libs" +DEPENDS = "libxml2" + +SRC_URI = "http://xmlsoft.org/sources/libxslt-${PV}.tar.gz \ + " + +SRC_URI[md5sum] = "db8765c8d076f1b6caafd9f2542a304a" +SRC_URI[sha256sum] = "98b1bd46d6792925ad2dfe9a87452ea2adebf69dcb9919ffd55bf926a7f93f7f" + +UPSTREAM_CHECK_REGEX = "libxslt-(?P\d+(\.\d+)+)\.tar" + +S = "${WORKDIR}/libxslt-${PV}" + +BINCONFIG = "${bindir}/xslt-config" + +inherit autotools pkgconfig binconfig-disabled lib_package + +do_configure_prepend () { + # We don't DEPEND on binutils for ansidecl.h so ensure we don't use the header. + # This can be removed when upgrading to 1.1.34. + sed -i -e 's/ansidecl.h//' ${S}/configure.ac + + # The timestamps in the 1.1.28 tarball are messed up causing this file to + # appear out of date. Touch it so that we don't try to regenerate it. + touch ${S}/doc/xsltproc.1 +} + +EXTRA_OECONF = "--without-python --without-debug --without-mem-debug --without-crypto --with-html-subdir=${BPN}" +# older versions of this recipe had ${PN}-utils +RPROVIDES_${PN}-bin += "${PN}-utils" +RCONFLICTS_${PN}-bin += "${PN}-utils" +RREPLACES_${PN}-bin += "${PN}-utils" + +# This is only needed until libxml can load the relocated catalog itself +do_install_append_class-native () { + create_wrapper ${D}/${bindir}/xsltproc XML_CATALOG_FILES=${sysconfdir}/xml/catalog +} + +FILES_${PN} += "${libdir}/libxslt-plugins" +FILES_${PN}-dev += "${libdir}/xsltConf.sh" + +BBCLASSEXTEND = "native nativesdk" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-support/lz4/lz4_1.9.1.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-support/lz4/lz4_1.9.1.bb deleted file mode 100644 index de1f9702..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-support/lz4/lz4_1.9.1.bb +++ /dev/null @@ -1,27 +0,0 @@ -SUMMARY = "Extremely Fast Compression algorithm" -DESCRIPTION = "LZ4 is a very fast lossless compression algorithm, providing compression speed at 400 MB/s per core, scalable with multi-cores CPU. It also features an extremely fast decoder, with speed in multiple GB/s per core, typically reaching RAM speed limits on multi-core systems." - -LICENSE = "BSD | BSD-2-Clause | GPL-2.0" -LIC_FILES_CHKSUM = "file://lib/LICENSE;md5=ebc2ea4814a64de7708f1571904b32cc \ - file://programs/COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \ - file://LICENSE;md5=d57c0d21cb917fb4e0af2454aa48b956 \ - " - -PE = "1" - -SRCREV = "398e36c756a3067de8e2b35dd380baef040dfe0d" - -SRC_URI = "git://github.com/lz4/lz4.git \ - file://run-ptest \ - " -UPSTREAM_CHECK_GITTAGREGEX = "v(?P.*)" - -S = "${WORKDIR}/git" - -EXTRA_OEMAKE = "PREFIX=${prefix} CC='${CC}' DESTDIR=${D} LIBDIR=${libdir} INCLUDEDIR=${includedir}" - -do_install() { - oe_runmake install -} - -BBCLASSEXTEND = "native nativesdk" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-support/lz4/lz4_1.9.2.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-support/lz4/lz4_1.9.2.bb new file mode 100644 index 00000000..ed4452c8 --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-support/lz4/lz4_1.9.2.bb @@ -0,0 +1,30 @@ +SUMMARY = "Extremely Fast Compression algorithm" +DESCRIPTION = "LZ4 is a very fast lossless compression algorithm, providing compression speed at 400 MB/s per core, scalable with multi-cores CPU. It also features an extremely fast decoder, with speed in multiple GB/s per core, typically reaching RAM speed limits on multi-core systems." + +LICENSE = "BSD | BSD-2-Clause | GPL-2.0" +LIC_FILES_CHKSUM = "file://lib/LICENSE;md5=ebc2ea4814a64de7708f1571904b32cc \ + file://programs/COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \ + file://LICENSE;md5=d57c0d21cb917fb4e0af2454aa48b956 \ + " + +PE = "1" + +SRCREV = "fdf2ef5809ca875c454510610764d9125ef2ebbd" + +SRC_URI = "git://github.com/lz4/lz4.git \ + file://run-ptest \ + " +UPSTREAM_CHECK_GITTAGREGEX = "v(?P.*)" + +S = "${WORKDIR}/git" + +# Fixed in r118, which is larger than the current version. +CVE_CHECK_WHITELIST += "CVE-2014-4715" + +EXTRA_OEMAKE = "PREFIX=${prefix} CC='${CC}' DESTDIR=${D} LIBDIR=${libdir} INCLUDEDIR=${includedir}" + +do_install() { + oe_runmake install +} + +BBCLASSEXTEND = "native nativesdk" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-support/nettle/nettle-3.4.1/Add-target-to-only-build-tests-not-run-them.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-support/nettle/nettle-3.5.1/Add-target-to-only-build-tests-not-run-them.patch similarity index 100% rename from Contrib-Inspur/openbmc/poky/meta/recipes-support/nettle/nettle-3.4.1/Add-target-to-only-build-tests-not-run-them.patch rename to Contrib-Inspur/openbmc/poky/meta/recipes-support/nettle/nettle-3.5.1/Add-target-to-only-build-tests-not-run-them.patch diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-support/nettle/nettle-3.4.1/check-header-files-of-openssl-only-if-enable_.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-support/nettle/nettle-3.5.1/check-header-files-of-openssl-only-if-enable_.patch similarity index 100% rename from Contrib-Inspur/openbmc/poky/meta/recipes-support/nettle/nettle-3.4.1/check-header-files-of-openssl-only-if-enable_.patch rename to Contrib-Inspur/openbmc/poky/meta/recipes-support/nettle/nettle-3.5.1/check-header-files-of-openssl-only-if-enable_.patch diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-support/nettle/nettle-3.4.1/dlopen-test.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-support/nettle/nettle-3.5.1/dlopen-test.patch similarity index 100% rename from Contrib-Inspur/openbmc/poky/meta/recipes-support/nettle/nettle-3.4.1/dlopen-test.patch rename to Contrib-Inspur/openbmc/poky/meta/recipes-support/nettle/nettle-3.5.1/dlopen-test.patch diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-support/nettle/nettle-3.4.1/run-ptest b/Contrib-Inspur/openbmc/poky/meta/recipes-support/nettle/nettle-3.5.1/run-ptest similarity index 100% rename from Contrib-Inspur/openbmc/poky/meta/recipes-support/nettle/nettle-3.4.1/run-ptest rename to Contrib-Inspur/openbmc/poky/meta/recipes-support/nettle/nettle-3.5.1/run-ptest diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-support/nettle/nettle_3.4.1.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-support/nettle/nettle_3.4.1.bb deleted file mode 100644 index cd8024f7..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-support/nettle/nettle_3.4.1.bb +++ /dev/null @@ -1,55 +0,0 @@ -SUMMARY = "A low level cryptographic library" -HOMEPAGE = "http://www.lysator.liu.se/~nisse/nettle/" -SECTION = "libs" -LICENSE = "LGPLv3+ | GPLv2+" - -LIC_FILES_CHKSUM = "file://COPYING.LESSERv3;md5=6a6a8e020838b23406c81b19c1d46df6 \ - file://COPYINGv2;md5=b234ee4d69f5fce4486a80fdaf4a4263 \ - file://serpent-decrypt.c;beginline=14;endline=36;md5=ca0d220bc413e1842ecc507690ce416e \ - file://serpent-set-key.c;beginline=14;endline=36;md5=ca0d220bc413e1842ecc507690ce416e" - -DEPENDS += "gmp" - -SRC_URI = "${GNU_MIRROR}/${BPN}/${BP}.tar.gz \ - file://Add-target-to-only-build-tests-not-run-them.patch \ - file://run-ptest \ - file://check-header-files-of-openssl-only-if-enable_.patch \ - " - -SRC_URI_append_class-target = "\ - file://dlopen-test.patch \ - " - -SRC_URI[md5sum] = "9bdebb0e2f638d3b9d91f7fc264b70c1" -SRC_URI[sha256sum] = "f941cf1535cd5d1819be5ccae5babef01f6db611f9b5a777bae9c7604b8a92ad" - -UPSTREAM_CHECK_REGEX = "nettle-(?P\d+(\.\d+)+)\.tar" - -inherit autotools ptest multilib_header - -EXTRA_AUTORECONF += "--exclude=aclocal" - -EXTRA_OECONF = "--disable-openssl" -CFLAGS_append = " -std=gnu99" - -do_compile_ptest() { - oe_runmake buildtest -} - -do_install_append() { - oe_multilib_header nettle/nettle-stdint.h nettle/version.h -} - -do_install_ptest() { - install -d ${D}${PTEST_PATH}/testsuite/ - install ${S}/testsuite/gold-bug.txt ${D}${PTEST_PATH}/testsuite/ - install ${S}/testsuite/*-test ${D}${PTEST_PATH}/testsuite/ - # tools can be found in PATH, not in ../tools/ - sed -i -e 's|../tools/||' ${D}${PTEST_PATH}/testsuite/*-test - install ${B}/testsuite/*-test ${D}${PTEST_PATH}/testsuite/ -} - -RDEPENDS_${PN}-ptest += "${PN}-dev" -INSANE_SKIP_${PN}-ptest += "dev-deps" - -BBCLASSEXTEND = "native nativesdk" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-support/nettle/nettle_3.5.1.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-support/nettle/nettle_3.5.1.bb new file mode 100644 index 00000000..d92db0ef --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-support/nettle/nettle_3.5.1.bb @@ -0,0 +1,55 @@ +SUMMARY = "A low level cryptographic library" +HOMEPAGE = "http://www.lysator.liu.se/~nisse/nettle/" +SECTION = "libs" +LICENSE = "LGPLv3+ | GPLv2+" + +LIC_FILES_CHKSUM = "file://COPYING.LESSERv3;md5=6a6a8e020838b23406c81b19c1d46df6 \ + file://COPYINGv2;md5=b234ee4d69f5fce4486a80fdaf4a4263 \ + file://serpent-decrypt.c;beginline=14;endline=36;md5=ca0d220bc413e1842ecc507690ce416e \ + file://serpent-set-key.c;beginline=14;endline=36;md5=ca0d220bc413e1842ecc507690ce416e" + +DEPENDS += "gmp" + +SRC_URI = "${GNU_MIRROR}/${BPN}/${BP}.tar.gz \ + file://Add-target-to-only-build-tests-not-run-them.patch \ + file://run-ptest \ + file://check-header-files-of-openssl-only-if-enable_.patch \ + " + +SRC_URI_append_class-target = "\ + file://dlopen-test.patch \ + " + +SRC_URI[md5sum] = "0e5707b418c3826768d41130fbe4ee86" +SRC_URI[sha256sum] = "75cca1998761b02e16f2db56da52992aef622bf55a3b45ec538bc2eedadc9419" + +UPSTREAM_CHECK_REGEX = "nettle-(?P\d+(\.\d+)+)\.tar" + +inherit autotools ptest multilib_header + +EXTRA_AUTORECONF += "--exclude=aclocal" + +EXTRA_OECONF = "--disable-openssl" +CFLAGS_append = " -std=gnu99" + +do_compile_ptest() { + oe_runmake buildtest +} + +do_install_append() { + oe_multilib_header nettle/version.h +} + +do_install_ptest() { + install -d ${D}${PTEST_PATH}/testsuite/ + install ${S}/testsuite/gold-bug.txt ${D}${PTEST_PATH}/testsuite/ + install ${S}/testsuite/*-test ${D}${PTEST_PATH}/testsuite/ + # tools can be found in PATH, not in ../tools/ + sed -i -e 's|../tools/||' ${D}${PTEST_PATH}/testsuite/*-test + install ${B}/testsuite/*-test ${D}${PTEST_PATH}/testsuite/ +} + +RDEPENDS_${PN}-ptest += "${PN}-dev" +INSANE_SKIP_${PN}-ptest += "dev-deps" + +BBCLASSEXTEND = "native nativesdk" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-support/npth/npth_1.6.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-support/npth/npth_1.6.bb index 8310efb1..233e0dc4 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-support/npth/npth_1.6.bb +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-support/npth/npth_1.6.bb @@ -24,4 +24,4 @@ do_install_append() { oe_multilib_header npth.h } -BBCLASSEXTEND = "native" +BBCLASSEXTEND = "native nativesdk" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-support/nspr/nspr/0004-Add-ARC-support.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-support/nspr/nspr/0004-Add-ARC-support.patch deleted file mode 100644 index 9d686017..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-support/nspr/nspr/0004-Add-ARC-support.patch +++ /dev/null @@ -1,88 +0,0 @@ -From 6cb5b0be8837222a1e01745f2cf57cd0e593186d Mon Sep 17 00:00:00 2001 -From: Antoine Tenart -Date: Mon, 23 Oct 2017 10:28:20 +0200 -Subject: [PATCH] Add ARC support - -[Alexey: Rebased on top of other patches like RiscV, NIOS2 etc]. - -Signed-off-by: Antoine Tenart -Signed-off-by: Alexey Brodkin - -Upstream-Status: Submitted [ https://bugzilla.mozilla.org/show_bug.cgi?id=1492378 ] ---- - pr/include/md/_linux.cfg | 45 ++++++++++++++++++++++++++++++++++++++++ - pr/include/md/_linux.h | 2 ++ - 2 files changed, 47 insertions(+) - -diff --git a/pr/include/md/_linux.cfg b/pr/include/md/_linux.cfg -index fec8525378dc..5f4fa0eac783 100644 ---- a/pr/include/md/_linux.cfg -+++ b/pr/include/md/_linux.cfg -@@ -1157,6 +1157,51 @@ - #define PR_BYTES_PER_WORD_LOG2 3 - #define PR_BYTES_PER_DWORD_LOG2 3 - -+#elif defined(__arc__) -+ -+#define IS_LITTLE_ENDIAN 1 -+#undef IS_BIG_ENDIAN -+ -+#define PR_BYTES_PER_BYTE 1 -+#define PR_BYTES_PER_SHORT 2 -+#define PR_BYTES_PER_INT 4 -+#define PR_BYTES_PER_INT64 8 -+#define PR_BYTES_PER_LONG 4 -+#define PR_BYTES_PER_FLOAT 4 -+#define PR_BYTES_PER_DOUBLE 8 -+#define PR_BYTES_PER_WORD 4 -+#define PR_BYTES_PER_DWORD 8 -+ -+#define PR_BITS_PER_BYTE 8 -+#define PR_BITS_PER_SHORT 16 -+#define PR_BITS_PER_INT 32 -+#define PR_BITS_PER_INT64 64 -+#define PR_BITS_PER_LONG 32 -+#define PR_BITS_PER_FLOAT 32 -+#define PR_BITS_PER_DOUBLE 64 -+#define PR_BITS_PER_WORD 32 -+ -+#define PR_BITS_PER_BYTE_LOG2 3 -+#define PR_BITS_PER_SHORT_LOG2 4 -+#define PR_BITS_PER_INT_LOG2 5 -+#define PR_BITS_PER_INT64_LOG2 6 -+#define PR_BITS_PER_LONG_LOG2 5 -+#define PR_BITS_PER_FLOAT_LOG2 5 -+#define PR_BITS_PER_DOUBLE_LOG2 6 -+#define PR_BITS_PER_WORD_LOG2 5 -+ -+#define PR_ALIGN_OF_SHORT 2 -+#define PR_ALIGN_OF_INT 4 -+#define PR_ALIGN_OF_LONG 4 -+#define PR_ALIGN_OF_INT64 4 -+#define PR_ALIGN_OF_FLOAT 4 -+#define PR_ALIGN_OF_DOUBLE 4 -+#define PR_ALIGN_OF_POINTER 4 -+#define PR_ALIGN_OF_WORD 4 -+ -+#define PR_BYTES_PER_WORD_LOG2 2 -+#define PR_BYTES_PER_DWORD_LOG2 3 -+ - #else - - #error "Unknown CPU architecture" -diff --git a/pr/include/md/_linux.h b/pr/include/md/_linux.h -index 8e04fad479a1..628b1217e9c8 100644 ---- a/pr/include/md/_linux.h -+++ b/pr/include/md/_linux.h -@@ -63,6 +63,8 @@ - #define _PR_SI_ARCHITECTURE "riscv32" - #elif defined(__riscv) && (__riscv_xlen == 64) - #define _PR_SI_ARCHITECTURE "riscv64" -+#elif defined(__arc__) -+#define _PR_SI_ARCHITECTURE "arc" - #else - #error "Unknown CPU architecture" - #endif --- -2.17.1 - diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-support/nspr/nspr_4.21.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-support/nspr/nspr_4.21.bb deleted file mode 100644 index 25563e50..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-support/nspr/nspr_4.21.bb +++ /dev/null @@ -1,194 +0,0 @@ -SUMMARY = "Netscape Portable Runtime Library" -HOMEPAGE = "http://www.mozilla.org/projects/nspr/" -LICENSE = "GPL-2.0 | MPL-2.0 | LGPL-2.1" -LIC_FILES_CHKSUM = "file://configure.in;beginline=3;endline=6;md5=90c2fdee38e45d6302abcfe475c8b5c5 \ - file://Makefile.in;beginline=4;endline=38;md5=beda1dbb98a515f557d3e58ef06bca99" -SECTION = "libs/network" - -SRC_URI = "http://ftp.mozilla.org/pub/nspr/releases/v${PV}/src/nspr-${PV}.tar.gz \ - file://remove-rpath-from-tests.patch \ - file://fix-build-on-x86_64.patch \ - file://remove-srcdir-from-configure-in.patch \ - file://0002-Add-nios2-support.patch \ - file://0001-md-Fix-build-with-musl.patch \ - file://0004-Add-ARC-support.patch \ - file://Makefile.in-remove-_BUILD_STRING-and-_BUILD_TIME.patch \ - file://nspr.pc.in \ -" - -CACHED_CONFIGUREVARS_append_libc-musl = " CFLAGS='${CFLAGS} -D_PR_POLL_AVAILABLE \ - -D_PR_HAVE_OFF64_T -D_PR_INET6 -D_PR_HAVE_INET_NTOP \ - -D_PR_HAVE_GETHOSTBYNAME2 -D_PR_HAVE_GETADDRINFO \ - -D_PR_INET6_PROBE -DNO_DLOPEN_NULL'" - -UPSTREAM_CHECK_URI = "http://ftp.mozilla.org/pub/nspr/releases/" -UPSTREAM_CHECK_REGEX = "v(?P\d+(\.\d+)+)/" - -SRC_URI[md5sum] = "b865586f19912a50acc3755d8a45dbaa" -SRC_URI[sha256sum] = "15ea32c7b100217b6e3193bc03e77f485d9bf7504051443ba9ce86d1c17c6b5a" - -CVE_PRODUCT = "netscape_portable_runtime" - -S = "${WORKDIR}/nspr-${PV}/nspr" - -RDEPENDS_${PN}-dev += "perl" -TARGET_CC_ARCH += "${LDFLAGS}" - -TESTS = " \ - accept \ - acceptread \ - acceptreademu \ - affinity \ - alarm \ - anonfm \ - atomic \ - attach \ - bigfile \ - cleanup \ - cltsrv \ - concur \ - cvar \ - cvar2 \ - dlltest \ - dtoa \ - errcodes \ - exit \ - fdcach \ - fileio \ - foreign \ - formattm \ - fsync \ - gethost \ - getproto \ - i2l \ - initclk \ - inrval \ - instrumt \ - intrio \ - intrupt \ - io_timeout \ - ioconthr \ - join \ - joinkk \ - joinku \ - joinuk \ - joinuu \ - layer \ - lazyinit \ - libfilename \ - lltest \ - lock \ - lockfile \ - logfile \ - logger \ - many_cv \ - multiwait \ - nameshm1 \ - nblayer \ - nonblock \ - ntioto \ - ntoh \ - op_2long \ - op_excl \ - op_filnf \ - op_filok \ - op_nofil \ - parent \ - parsetm \ - peek \ - perf \ - pipeping \ - pipeping2 \ - pipeself \ - poll_nm \ - poll_to \ - pollable \ - prftest \ - primblok \ - provider \ - prpollml \ - ranfile \ - randseed \ - reinit \ - rwlocktest \ - sel_spd \ - selct_er \ - selct_nm \ - selct_to \ - selintr \ - sema \ - semaerr \ - semaping \ - sendzlf \ - server_test \ - servr_kk \ - servr_uk \ - servr_ku \ - servr_uu \ - short_thread \ - sigpipe \ - socket \ - sockopt \ - sockping \ - sprintf \ - stack \ - stdio \ - str2addr \ - strod \ - switch \ - system \ - testbit \ - testfile \ - threads \ - timemac \ - timetest \ - tpd \ - udpsrv \ - vercheck \ - version \ - writev \ - xnotify \ - zerolen" - -inherit autotools multilib_script - -MULTILIB_SCRIPTS = "${PN}-dev:${bindir}/nspr-config" - -PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'ipv6', d)}" -PACKAGECONFIG[ipv6] = "--enable-ipv6,--disable-ipv6," - -do_compile_prepend() { - oe_runmake CROSS_COMPILE=1 CFLAGS="-DXP_UNIX ${BUILD_CFLAGS}" LDFLAGS="" CC="${BUILD_CC}" -C config export -} - -do_compile_append() { - oe_runmake -C pr/tests -} - -do_install_append() { - install -D ${WORKDIR}/nspr.pc.in ${D}${libdir}/pkgconfig/nspr.pc - sed -i \ - -e 's:NSPRVERSION:${PV}:g' \ - -e 's:OEPREFIX:${prefix}:g' \ - -e 's:OELIBDIR:${libdir}:g' \ - -e 's:OEINCDIR:${includedir}:g' \ - -e 's:OEEXECPREFIX:${exec_prefix}:g' \ - ${D}${libdir}/pkgconfig/nspr.pc - - mkdir -p ${D}${libdir}/nspr/tests - install -m 0755 ${S}/pr/tests/runtests.pl ${D}${libdir}/nspr/tests - install -m 0755 ${S}/pr/tests/runtests.sh ${D}${libdir}/nspr/tests - cd ${B}/pr/tests - install -m 0755 ${TESTS} ${D}${libdir}/nspr/tests - - # delete compile-et.pl and perr.properties from ${bindir} because these are - # only used to generate prerr.c and prerr.h files from prerr.et at compile - # time - rm ${D}${bindir}/compile-et.pl ${D}${bindir}/prerr.properties -} - -FILES_${PN} = "${libdir}/lib*.so" -FILES_${PN}-dev = "${bindir}/* ${libdir}/nspr/tests/* ${libdir}/pkgconfig \ - ${includedir}/* ${datadir}/aclocal/* " - -BBCLASSEXTEND = "native nativesdk" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-support/nspr/nspr_4.23.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-support/nspr/nspr_4.23.bb new file mode 100644 index 00000000..8e2761c2 --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-support/nspr/nspr_4.23.bb @@ -0,0 +1,193 @@ +SUMMARY = "Netscape Portable Runtime Library" +HOMEPAGE = "http://www.mozilla.org/projects/nspr/" +LICENSE = "GPL-2.0 | MPL-2.0 | LGPL-2.1" +LIC_FILES_CHKSUM = "file://configure.in;beginline=3;endline=6;md5=90c2fdee38e45d6302abcfe475c8b5c5 \ + file://Makefile.in;beginline=4;endline=38;md5=beda1dbb98a515f557d3e58ef06bca99" +SECTION = "libs/network" + +SRC_URI = "http://ftp.mozilla.org/pub/nspr/releases/v${PV}/src/nspr-${PV}.tar.gz \ + file://remove-rpath-from-tests.patch \ + file://fix-build-on-x86_64.patch \ + file://remove-srcdir-from-configure-in.patch \ + file://0002-Add-nios2-support.patch \ + file://0001-md-Fix-build-with-musl.patch \ + file://Makefile.in-remove-_BUILD_STRING-and-_BUILD_TIME.patch \ + file://nspr.pc.in \ +" + +CACHED_CONFIGUREVARS_append_libc-musl = " CFLAGS='${CFLAGS} -D_PR_POLL_AVAILABLE \ + -D_PR_HAVE_OFF64_T -D_PR_INET6 -D_PR_HAVE_INET_NTOP \ + -D_PR_HAVE_GETHOSTBYNAME2 -D_PR_HAVE_GETADDRINFO \ + -D_PR_INET6_PROBE -DNO_DLOPEN_NULL'" + +UPSTREAM_CHECK_URI = "http://ftp.mozilla.org/pub/nspr/releases/" +UPSTREAM_CHECK_REGEX = "v(?P\d+(\.\d+)+)/" + +SRC_URI[md5sum] = "90af0450423b0588f0eba6255c07ab79" +SRC_URI[sha256sum] = "4b9d821037faf5723da901515ed9cac8b23ef1ea3729022259777393453477a4" + +CVE_PRODUCT = "netscape_portable_runtime" + +S = "${WORKDIR}/nspr-${PV}/nspr" + +RDEPENDS_${PN}-dev += "perl" +TARGET_CC_ARCH += "${LDFLAGS}" + +TESTS = " \ + accept \ + acceptread \ + acceptreademu \ + affinity \ + alarm \ + anonfm \ + atomic \ + attach \ + bigfile \ + cleanup \ + cltsrv \ + concur \ + cvar \ + cvar2 \ + dlltest \ + dtoa \ + errcodes \ + exit \ + fdcach \ + fileio \ + foreign \ + formattm \ + fsync \ + gethost \ + getproto \ + i2l \ + initclk \ + inrval \ + instrumt \ + intrio \ + intrupt \ + io_timeout \ + ioconthr \ + join \ + joinkk \ + joinku \ + joinuk \ + joinuu \ + layer \ + lazyinit \ + libfilename \ + lltest \ + lock \ + lockfile \ + logfile \ + logger \ + many_cv \ + multiwait \ + nameshm1 \ + nblayer \ + nonblock \ + ntioto \ + ntoh \ + op_2long \ + op_excl \ + op_filnf \ + op_filok \ + op_nofil \ + parent \ + parsetm \ + peek \ + perf \ + pipeping \ + pipeping2 \ + pipeself \ + poll_nm \ + poll_to \ + pollable \ + prftest \ + primblok \ + provider \ + prpollml \ + ranfile \ + randseed \ + reinit \ + rwlocktest \ + sel_spd \ + selct_er \ + selct_nm \ + selct_to \ + selintr \ + sema \ + semaerr \ + semaping \ + sendzlf \ + server_test \ + servr_kk \ + servr_uk \ + servr_ku \ + servr_uu \ + short_thread \ + sigpipe \ + socket \ + sockopt \ + sockping \ + sprintf \ + stack \ + stdio \ + str2addr \ + strod \ + switch \ + system \ + testbit \ + testfile \ + threads \ + timemac \ + timetest \ + tpd \ + udpsrv \ + vercheck \ + version \ + writev \ + xnotify \ + zerolen" + +inherit autotools multilib_script + +MULTILIB_SCRIPTS = "${PN}-dev:${bindir}/nspr-config" + +PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'ipv6', d)}" +PACKAGECONFIG[ipv6] = "--enable-ipv6,--disable-ipv6," + +do_compile_prepend() { + oe_runmake CROSS_COMPILE=1 CFLAGS="-DXP_UNIX ${BUILD_CFLAGS}" LDFLAGS="" CC="${BUILD_CC}" -C config export +} + +do_compile_append() { + oe_runmake -C pr/tests +} + +do_install_append() { + install -D ${WORKDIR}/nspr.pc.in ${D}${libdir}/pkgconfig/nspr.pc + sed -i \ + -e 's:NSPRVERSION:${PV}:g' \ + -e 's:OEPREFIX:${prefix}:g' \ + -e 's:OELIBDIR:${libdir}:g' \ + -e 's:OEINCDIR:${includedir}:g' \ + -e 's:OEEXECPREFIX:${exec_prefix}:g' \ + ${D}${libdir}/pkgconfig/nspr.pc + + mkdir -p ${D}${libdir}/nspr/tests + install -m 0755 ${S}/pr/tests/runtests.pl ${D}${libdir}/nspr/tests + install -m 0755 ${S}/pr/tests/runtests.sh ${D}${libdir}/nspr/tests + cd ${B}/pr/tests + install -m 0755 ${TESTS} ${D}${libdir}/nspr/tests + + # delete compile-et.pl and perr.properties from ${bindir} because these are + # only used to generate prerr.c and prerr.h files from prerr.et at compile + # time + rm ${D}${bindir}/compile-et.pl ${D}${bindir}/prerr.properties +} + +FILES_${PN} = "${libdir}/lib*.so" +FILES_${PN}-dev = "${bindir}/* ${libdir}/nspr/tests/* ${libdir}/pkgconfig \ + ${includedir}/* ${datadir}/aclocal/* " + +BBCLASSEXTEND = "native nativesdk" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-support/nss-myhostname/nss-myhostname_0.3.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-support/nss-myhostname/nss-myhostname_0.3.bb index 244d9e20..074f7132 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-support/nss-myhostname/nss-myhostname_0.3.bb +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-support/nss-myhostname/nss-myhostname_0.3.bb @@ -12,7 +12,7 @@ SRC_URI = "http://0pointer.de/lennart/projects/nss-myhostname/nss-myhostname-${P SRC_URI[md5sum] = "d4ab9ac36c053ab8fb836db1cbd4a48f" SRC_URI[sha256sum] = "2ba744ea8d578d1c57c85884e94a3042ee17843a5294434d3a7f6c4d67e7caf2" -inherit autotools distro_features_check +inherit autotools features_check COMPATIBLE_HOST_libc-musl = 'null' diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-support/nss/nss_3.44.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-support/nss/nss_3.44.bb deleted file mode 100644 index 4205d794..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-support/nss/nss_3.44.bb +++ /dev/null @@ -1,267 +0,0 @@ -SUMMARY = "Mozilla's SSL and TLS implementation" -DESCRIPTION = "Network Security Services (NSS) is a set of libraries \ -designed to support cross-platform development of \ -security-enabled client and server applications. \ -Applications built with NSS can support SSL v2 and v3, \ -TLS, PKCS 5, PKCS 7, PKCS 11, PKCS 12, S/MIME, X.509 \ -v3 certificates, and other security standards." -HOMEPAGE = "http://www.mozilla.org/projects/security/pki/nss/" -SECTION = "libs" - -DEPENDS = "sqlite3 nspr zlib nss-native" -DEPENDS_class-native = "sqlite3-native nspr-native zlib-native" - -LICENSE = "MPL-2.0 | (MPL-2.0 & GPL-2.0+) | (MPL-2.0 & LGPL-2.1+)" - -LIC_FILES_CHKSUM = "file://nss/COPYING;md5=3b1e88e1b9c0b5a4b2881d46cce06a18 \ - file://nss/lib/freebl/mpi/doc/LICENSE;md5=491f158d09d948466afce85d6f1fe18f \ - file://nss/lib/freebl/mpi/doc/LICENSE-MPL;md5=5d425c8f3157dbf212db2ec53d9e5132" - -VERSION_DIR = "${@d.getVar('BP').upper().replace('-', '_').replace('.', '_') + '_RTM'}" - -SRC_URI = "http://ftp.mozilla.org/pub/mozilla.org/security/nss/releases/${VERSION_DIR}/src/${BP}.tar.gz \ - file://nss.pc.in \ - file://signlibs.sh \ - file://0001-nss-fix-support-cross-compiling.patch \ - file://nss-no-rpath-for-cross-compiling.patch \ - file://nss-fix-incorrect-shebang-of-perl.patch \ - file://nss-fix-nsinstall-build.patch \ - file://disable-Wvarargs-with-clang.patch \ - file://pqg.c-ULL_addend.patch \ - file://blank-cert9.db \ - file://blank-key4.db \ - file://system-pkcs11.txt \ - " - -SRC_URI[md5sum] = "e9222b9573452b9f4e6ff4915d6407c2" -SRC_URI[sha256sum] = "a5620e59b6eeedfd5a12c9298b50ad92e9898b223e214eb675e36f4ffb5b6aff" - -UPSTREAM_CHECK_URI = "https://developer.mozilla.org/en-US/docs/Mozilla/Projects/NSS/NSS_Releases" -UPSTREAM_CHECK_REGEX = "NSS_(?P.+)_release_notes" - -inherit siteinfo - -TD = "${S}/tentative-dist" -TDS = "${S}/tentative-dist-staging" - -TARGET_CC_ARCH += "${LDFLAGS}" - -do_configure_prepend_libc-musl () { - sed -i -e '/-DHAVE_SYS_CDEFS_H/d' ${S}/nss/lib/dbm/config/config.mk -} - -do_compile_prepend_class-native() { - export NSPR_INCLUDE_DIR=${STAGING_INCDIR_NATIVE} - export NSPR_LIB_DIR=${STAGING_LIBDIR_NATIVE} - export NSS_ENABLE_WERROR=0 -} - -do_compile_prepend_class-nativesdk() { - export LDFLAGS="" -} - -do_compile_prepend_class-native() { - # Need to set RPATH so that chrpath will do its job correctly - RPATH="-Wl,-rpath-link,${STAGING_LIBDIR_NATIVE} -Wl,-rpath-link,${STAGING_BASE_LIBDIR_NATIVE} -Wl,-rpath,${STAGING_LIBDIR_NATIVE} -Wl,-rpath,${STAGING_BASE_LIBDIR_NATIVE}" -} - -do_compile() { - export CROSS_COMPILE=1 - export NATIVE_CC="${BUILD_CC}" - export NATIVE_FLAGS="${BUILD_CFLAGS}" - export BUILD_OPT=1 - - export FREEBL_NO_DEPEND=1 - export FREEBL_LOWHASH=1 - - export LIBDIR=${libdir} - export MOZILLA_CLIENT=1 - export NS_USE_GCC=1 - export NSS_USE_SYSTEM_SQLITE=1 - export NSS_ENABLE_ECC=1 - - export OS_RELEASE=3.4 - export OS_TARGET=Linux - export OS_ARCH=Linux - - if [ "${TARGET_ARCH}" = "powerpc" ]; then - OS_TEST=ppc - elif [ "${TARGET_ARCH}" = "powerpc64" ]; then - OS_TEST=ppc64 - elif [ "${TARGET_ARCH}" = "mips" -o "${TARGET_ARCH}" = "mipsel" -o "${TARGET_ARCH}" = "mips64" -o "${TARGET_ARCH}" = "mips64el" ]; then - OS_TEST=mips - elif [ "${TARGET_ARCH}" = "aarch64_be" ]; then - OS_TEST="aarch64" - else - OS_TEST="${TARGET_ARCH}" - fi - - if [ "${SITEINFO_BITS}" = "64" ]; then - export USE_64=1 - elif [ "${TARGET_ARCH}" = "x86_64" -a "${SITEINFO_BITS}" = "32" ]; then - export USE_X32=1 - fi - - export NSS_DISABLE_GTESTS=1 - - # We can modify CC in the environment, but if we set it via an - # argument to make, nsinstall, a host program, will also build with it! - # - # nss pretty much does its own thing with CFLAGS, so we put them into CC. - # Optimization will get clobbered, but most of the stuff will survive. - # The motivation for this is to point to the correct place for debug - # source files and CFLAGS does that. Nothing uses CCC. - # - export CC="${CC} ${CFLAGS}" - make -C ./nss CCC="${CXX} -g" \ - OS_TEST=${OS_TEST} \ - RPATH="${RPATH}" -} - -do_compile[vardepsexclude] += "SITEINFO_BITS" - -do_install_prepend_class-nativesdk() { - export LDFLAGS="" -} - -do_install() { - export CROSS_COMPILE=1 - export NATIVE_CC="${BUILD_CC}" - export BUILD_OPT=1 - - export FREEBL_NO_DEPEND=1 - - export LIBDIR=${libdir} - export MOZILLA_CLIENT=1 - export NS_USE_GCC=1 - export NSS_USE_SYSTEM_SQLITE=1 - export NSS_ENABLE_ECC=1 - - export OS_RELEASE=3.4 - export OS_TARGET=Linux - export OS_ARCH=Linux - - if [ "${TARGET_ARCH}" = "powerpc" ]; then - OS_TEST=ppc - elif [ "${TARGET_ARCH}" = "powerpc64" ]; then - OS_TEST=ppc64 - elif [ "${TARGET_ARCH}" = "mips" -o "${TARGET_ARCH}" = "mipsel" -o "${TARGET_ARCH}" = "mips64" -o "${TARGET_ARCH}" = "mips64el" ]; then - OS_TEST=mips - elif [ "${TARGET_ARCH}" = "aarch64_be" ]; then - CPU_ARCH=aarch64 - OS_TEST="aarch64" - else - OS_TEST="${TARGET_ARCH}" - fi - if [ "${SITEINFO_BITS}" = "64" ]; then - export USE_64=1 - elif [ "${TARGET_ARCH}" = "x86_64" -a "${SITEINFO_BITS}" = "32" ]; then - export USE_X32=1 - fi - - export NSS_DISABLE_GTESTS=1 - - make -C ./nss \ - CCC="${CXX}" \ - OS_TEST=${OS_TEST} \ - SOURCE_LIB_DIR="${TD}/${libdir}" \ - SOURCE_BIN_DIR="${TD}/${bindir}" \ - install - - install -d ${D}/${libdir}/ - for file in ${S}/dist/*.OBJ/lib/*.so; do - echo "Installing `basename $file`..." - cp $file ${D}/${libdir}/ - done - - for shared_lib in ${TD}/${libdir}/*.so.*; do - if [ -f $shared_lib ]; then - cp $shared_lib ${D}/${libdir} - ln -sf $(basename $shared_lib) ${D}/${libdir}/$(basename $shared_lib .1oe) - fi - done - for shared_lib in ${TD}/${libdir}/*.so; do - if [ -f $shared_lib -a ! -e ${D}/${libdir}/$shared_lib ]; then - cp $shared_lib ${D}/${libdir} - fi - done - - install -d ${D}/${includedir}/nss3 - install -m 644 -t ${D}/${includedir}/nss3 dist/public/nss/* - - install -d ${D}/${bindir} - for binary in ${TD}/${bindir}/*; do - install -m 755 -t ${D}/${bindir} $binary - done -} - -do_install[vardepsexclude] += "SITEINFO_BITS" - -do_install_append() { - # Create empty .chk files for the NSS libraries at build time. They could - # be regenerated at target's boot time. - for file in libsoftokn3.chk libfreebl3.chk libnssdbm3.chk; do - touch ${D}/${libdir}/$file - chmod 755 ${D}/${libdir}/$file - done - install -D -m 755 ${WORKDIR}/signlibs.sh ${D}/${bindir}/signlibs.sh - - install -d ${D}${libdir}/pkgconfig/ - sed 's/%NSS_VERSION%/${PV}/' ${WORKDIR}/nss.pc.in | sed 's/%NSPR_VERSION%/4.9.2/' > ${D}${libdir}/pkgconfig/nss.pc - sed -i s:OEPREFIX:${prefix}:g ${D}${libdir}/pkgconfig/nss.pc - sed -i s:OEEXECPREFIX:${exec_prefix}:g ${D}${libdir}/pkgconfig/nss.pc - sed -i s:OELIBDIR:${libdir}:g ${D}${libdir}/pkgconfig/nss.pc - sed -i s:OEINCDIR:${includedir}/nss3:g ${D}${libdir}/pkgconfig/nss.pc -} - -do_install_append_class-target() { - # It used to call certutil to create a blank certificate with empty password at - # build time, but the checksum of key4.db changes every time when certutil is called. - # It causes non-determinism issue, so provide databases with a blank certificate - # which are originally from output of nss in qemux86-64 build. You can get these - # databases by: - # certutil -N -d sql:/database/path/ --empty-password - install -d ${D}${sysconfdir}/pki/nssdb/ - install -m 0644 ${WORKDIR}/blank-cert9.db ${D}${sysconfdir}/pki/nssdb/cert9.db - install -m 0644 ${WORKDIR}/blank-key4.db ${D}${sysconfdir}/pki/nssdb/key4.db - install -m 0644 ${WORKDIR}/system-pkcs11.txt ${D}${sysconfdir}/pki/nssdb/pkcs11.txt -} - -PACKAGE_WRITE_DEPS += "nss-native" -pkg_postinst_${PN} () { - if [ -n "$D" ]; then - for I in $D${libdir}/lib*.chk; do - DN=`dirname $I` - BN=`basename $I .chk` - FN=$DN/$BN.so - shlibsign -i $FN - if [ $? -ne 0 ]; then - exit 1 - fi - done - else - signlibs.sh - fi -} - -PACKAGES =+ "${PN}-smime" -FILES_${PN}-smime = "\ - ${bindir}/smime \ -" - -FILES_${PN} = "\ - ${sysconfdir} \ - ${bindir} \ - ${libdir}/lib*.chk \ - ${libdir}/lib*.so \ - " - -FILES_${PN}-dev = "\ - ${libdir}/nss \ - ${libdir}/pkgconfig/* \ - ${includedir}/* \ - " - -RDEPENDS_${PN}-smime = "perl" - -BBCLASSEXTEND = "native nativesdk" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-support/nss/nss_3.45.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-support/nss/nss_3.45.bb new file mode 100644 index 00000000..e89e7d69 --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-support/nss/nss_3.45.bb @@ -0,0 +1,267 @@ +SUMMARY = "Mozilla's SSL and TLS implementation" +DESCRIPTION = "Network Security Services (NSS) is a set of libraries \ +designed to support cross-platform development of \ +security-enabled client and server applications. \ +Applications built with NSS can support SSL v2 and v3, \ +TLS, PKCS 5, PKCS 7, PKCS 11, PKCS 12, S/MIME, X.509 \ +v3 certificates, and other security standards." +HOMEPAGE = "http://www.mozilla.org/projects/security/pki/nss/" +SECTION = "libs" + +DEPENDS = "sqlite3 nspr zlib nss-native" +DEPENDS_class-native = "sqlite3-native nspr-native zlib-native" + +LICENSE = "MPL-2.0 | (MPL-2.0 & GPL-2.0+) | (MPL-2.0 & LGPL-2.1+)" + +LIC_FILES_CHKSUM = "file://nss/COPYING;md5=3b1e88e1b9c0b5a4b2881d46cce06a18 \ + file://nss/lib/freebl/mpi/doc/LICENSE;md5=491f158d09d948466afce85d6f1fe18f \ + file://nss/lib/freebl/mpi/doc/LICENSE-MPL;md5=5d425c8f3157dbf212db2ec53d9e5132" + +VERSION_DIR = "${@d.getVar('BP').upper().replace('-', '_').replace('.', '_') + '_RTM'}" + +SRC_URI = "http://ftp.mozilla.org/pub/mozilla.org/security/nss/releases/${VERSION_DIR}/src/${BP}.tar.gz \ + file://nss.pc.in \ + file://signlibs.sh \ + file://0001-nss-fix-support-cross-compiling.patch \ + file://nss-no-rpath-for-cross-compiling.patch \ + file://nss-fix-incorrect-shebang-of-perl.patch \ + file://nss-fix-nsinstall-build.patch \ + file://disable-Wvarargs-with-clang.patch \ + file://pqg.c-ULL_addend.patch \ + file://blank-cert9.db \ + file://blank-key4.db \ + file://system-pkcs11.txt \ + " + +SRC_URI[md5sum] = "f1752d7223ee9d910d551e57264bafa8" +SRC_URI[sha256sum] = "112f05223d1fde902c170966bfc6f011b24a838be16969b110ecf2bb7bc24e8b" + +UPSTREAM_CHECK_URI = "https://developer.mozilla.org/en-US/docs/Mozilla/Projects/NSS/NSS_Releases" +UPSTREAM_CHECK_REGEX = "NSS_(?P.+)_release_notes" + +inherit siteinfo + +TD = "${S}/tentative-dist" +TDS = "${S}/tentative-dist-staging" + +TARGET_CC_ARCH += "${LDFLAGS}" + +do_configure_prepend_libc-musl () { + sed -i -e '/-DHAVE_SYS_CDEFS_H/d' ${S}/nss/lib/dbm/config/config.mk +} + +do_compile_prepend_class-native() { + export NSPR_INCLUDE_DIR=${STAGING_INCDIR_NATIVE} + export NSPR_LIB_DIR=${STAGING_LIBDIR_NATIVE} + export NSS_ENABLE_WERROR=0 +} + +do_compile_prepend_class-nativesdk() { + export LDFLAGS="" +} + +do_compile_prepend_class-native() { + # Need to set RPATH so that chrpath will do its job correctly + RPATH="-Wl,-rpath-link,${STAGING_LIBDIR_NATIVE} -Wl,-rpath-link,${STAGING_BASE_LIBDIR_NATIVE} -Wl,-rpath,${STAGING_LIBDIR_NATIVE} -Wl,-rpath,${STAGING_BASE_LIBDIR_NATIVE}" +} + +do_compile() { + export CROSS_COMPILE=1 + export NATIVE_CC="${BUILD_CC}" + export NATIVE_FLAGS="${BUILD_CFLAGS}" + export BUILD_OPT=1 + + export FREEBL_NO_DEPEND=1 + export FREEBL_LOWHASH=1 + + export LIBDIR=${libdir} + export MOZILLA_CLIENT=1 + export NS_USE_GCC=1 + export NSS_USE_SYSTEM_SQLITE=1 + export NSS_ENABLE_ECC=1 + + export OS_RELEASE=3.4 + export OS_TARGET=Linux + export OS_ARCH=Linux + + if [ "${TARGET_ARCH}" = "powerpc" ]; then + OS_TEST=ppc + elif [ "${TARGET_ARCH}" = "powerpc64" ]; then + OS_TEST=ppc64 + elif [ "${TARGET_ARCH}" = "mips" -o "${TARGET_ARCH}" = "mipsel" -o "${TARGET_ARCH}" = "mips64" -o "${TARGET_ARCH}" = "mips64el" ]; then + OS_TEST=mips + elif [ "${TARGET_ARCH}" = "aarch64_be" ]; then + OS_TEST="aarch64" + else + OS_TEST="${TARGET_ARCH}" + fi + + if [ "${SITEINFO_BITS}" = "64" ]; then + export USE_64=1 + elif [ "${TARGET_ARCH}" = "x86_64" -a "${SITEINFO_BITS}" = "32" ]; then + export USE_X32=1 + fi + + export NSS_DISABLE_GTESTS=1 + + # We can modify CC in the environment, but if we set it via an + # argument to make, nsinstall, a host program, will also build with it! + # + # nss pretty much does its own thing with CFLAGS, so we put them into CC. + # Optimization will get clobbered, but most of the stuff will survive. + # The motivation for this is to point to the correct place for debug + # source files and CFLAGS does that. Nothing uses CCC. + # + export CC="${CC} ${CFLAGS}" + make -C ./nss CCC="${CXX} -g" \ + OS_TEST=${OS_TEST} \ + RPATH="${RPATH}" +} + +do_compile[vardepsexclude] += "SITEINFO_BITS" + +do_install_prepend_class-nativesdk() { + export LDFLAGS="" +} + +do_install() { + export CROSS_COMPILE=1 + export NATIVE_CC="${BUILD_CC}" + export BUILD_OPT=1 + + export FREEBL_NO_DEPEND=1 + + export LIBDIR=${libdir} + export MOZILLA_CLIENT=1 + export NS_USE_GCC=1 + export NSS_USE_SYSTEM_SQLITE=1 + export NSS_ENABLE_ECC=1 + + export OS_RELEASE=3.4 + export OS_TARGET=Linux + export OS_ARCH=Linux + + if [ "${TARGET_ARCH}" = "powerpc" ]; then + OS_TEST=ppc + elif [ "${TARGET_ARCH}" = "powerpc64" ]; then + OS_TEST=ppc64 + elif [ "${TARGET_ARCH}" = "mips" -o "${TARGET_ARCH}" = "mipsel" -o "${TARGET_ARCH}" = "mips64" -o "${TARGET_ARCH}" = "mips64el" ]; then + OS_TEST=mips + elif [ "${TARGET_ARCH}" = "aarch64_be" ]; then + CPU_ARCH=aarch64 + OS_TEST="aarch64" + else + OS_TEST="${TARGET_ARCH}" + fi + if [ "${SITEINFO_BITS}" = "64" ]; then + export USE_64=1 + elif [ "${TARGET_ARCH}" = "x86_64" -a "${SITEINFO_BITS}" = "32" ]; then + export USE_X32=1 + fi + + export NSS_DISABLE_GTESTS=1 + + make -C ./nss \ + CCC="${CXX}" \ + OS_TEST=${OS_TEST} \ + SOURCE_LIB_DIR="${TD}/${libdir}" \ + SOURCE_BIN_DIR="${TD}/${bindir}" \ + install + + install -d ${D}/${libdir}/ + for file in ${S}/dist/*.OBJ/lib/*.so; do + echo "Installing `basename $file`..." + cp $file ${D}/${libdir}/ + done + + for shared_lib in ${TD}/${libdir}/*.so.*; do + if [ -f $shared_lib ]; then + cp $shared_lib ${D}/${libdir} + ln -sf $(basename $shared_lib) ${D}/${libdir}/$(basename $shared_lib .1oe) + fi + done + for shared_lib in ${TD}/${libdir}/*.so; do + if [ -f $shared_lib -a ! -e ${D}/${libdir}/$shared_lib ]; then + cp $shared_lib ${D}/${libdir} + fi + done + + install -d ${D}/${includedir}/nss3 + install -m 644 -t ${D}/${includedir}/nss3 dist/public/nss/* + + install -d ${D}/${bindir} + for binary in ${TD}/${bindir}/*; do + install -m 755 -t ${D}/${bindir} $binary + done +} + +do_install[vardepsexclude] += "SITEINFO_BITS" + +do_install_append() { + # Create empty .chk files for the NSS libraries at build time. They could + # be regenerated at target's boot time. + for file in libsoftokn3.chk libfreebl3.chk libnssdbm3.chk; do + touch ${D}/${libdir}/$file + chmod 755 ${D}/${libdir}/$file + done + install -D -m 755 ${WORKDIR}/signlibs.sh ${D}/${bindir}/signlibs.sh + + install -d ${D}${libdir}/pkgconfig/ + sed 's/%NSS_VERSION%/${PV}/' ${WORKDIR}/nss.pc.in | sed 's/%NSPR_VERSION%/4.9.2/' > ${D}${libdir}/pkgconfig/nss.pc + sed -i s:OEPREFIX:${prefix}:g ${D}${libdir}/pkgconfig/nss.pc + sed -i s:OEEXECPREFIX:${exec_prefix}:g ${D}${libdir}/pkgconfig/nss.pc + sed -i s:OELIBDIR:${libdir}:g ${D}${libdir}/pkgconfig/nss.pc + sed -i s:OEINCDIR:${includedir}/nss3:g ${D}${libdir}/pkgconfig/nss.pc +} + +do_install_append_class-target() { + # It used to call certutil to create a blank certificate with empty password at + # build time, but the checksum of key4.db changes every time when certutil is called. + # It causes non-determinism issue, so provide databases with a blank certificate + # which are originally from output of nss in qemux86-64 build. You can get these + # databases by: + # certutil -N -d sql:/database/path/ --empty-password + install -d ${D}${sysconfdir}/pki/nssdb/ + install -m 0644 ${WORKDIR}/blank-cert9.db ${D}${sysconfdir}/pki/nssdb/cert9.db + install -m 0644 ${WORKDIR}/blank-key4.db ${D}${sysconfdir}/pki/nssdb/key4.db + install -m 0644 ${WORKDIR}/system-pkcs11.txt ${D}${sysconfdir}/pki/nssdb/pkcs11.txt +} + +PACKAGE_WRITE_DEPS += "nss-native" +pkg_postinst_${PN} () { + if [ -n "$D" ]; then + for I in $D${libdir}/lib*.chk; do + DN=`dirname $I` + BN=`basename $I .chk` + FN=$DN/$BN.so + shlibsign -i $FN + if [ $? -ne 0 ]; then + exit 1 + fi + done + else + signlibs.sh + fi +} + +PACKAGES =+ "${PN}-smime" +FILES_${PN}-smime = "\ + ${bindir}/smime \ +" + +FILES_${PN} = "\ + ${sysconfdir} \ + ${bindir} \ + ${libdir}/lib*.chk \ + ${libdir}/lib*.so \ + " + +FILES_${PN}-dev = "\ + ${libdir}/nss \ + ${libdir}/pkgconfig/* \ + ${includedir}/* \ + " + +RDEPENDS_${PN}-smime = "perl" + +BBCLASSEXTEND = "native nativesdk" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-support/p11-kit/p11-kit/0001-LINGUAS-drop-the-languages-for-which-upstream-does-n.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-support/p11-kit/p11-kit/0001-LINGUAS-drop-the-languages-for-which-upstream-does-n.patch deleted file mode 100644 index e902b0b5..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-support/p11-kit/p11-kit/0001-LINGUAS-drop-the-languages-for-which-upstream-does-n.patch +++ /dev/null @@ -1,29 +0,0 @@ -From c6bb4b99af39daa3221c3bdc0686987ae0f31693 Mon Sep 17 00:00:00 2001 -From: Alexander Kanavin -Date: Wed, 31 Jan 2018 16:47:44 +0200 -Subject: [PATCH] LINGUAS: drop the languages for which upstream does not - supply .po files - -Regenerating them proved to be too painful. -Upstream has been notified: https://github.com/p11-glue/p11-kit/issues/127 - -Upstream-Status: Inappropriate [missing upstream distribution files] -Signed-off-by: Alexander Kanavin - ---- - po/LINGUAS | 2 -- - 1 file changed, 2 deletions(-) - -diff --git a/po/LINGUAS b/po/LINGUAS -index 767a806c2e20..6ab48001c409 100644 ---- a/po/LINGUAS -+++ b/po/LINGUAS -@@ -12,8 +12,6 @@ cy - da - de - el --en@boldquot --en@quot - en_GB - eo - es diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-support/p11-kit/p11-kit_0.23.16.1.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-support/p11-kit/p11-kit_0.23.16.1.bb deleted file mode 100644 index 54455da1..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-support/p11-kit/p11-kit_0.23.16.1.bb +++ /dev/null @@ -1,46 +0,0 @@ -SUMMARY = "Provides a way to load and enumerate PKCS#11 modules" -LICENSE = "BSD" -LIC_FILES_CHKSUM = "file://COPYING;md5=02933887f609807fbb57aa4237d14a50" - -inherit autotools gettext pkgconfig gtk-doc - -DEPENDS = "libtasn1 libffi" - -SRC_URI = "git://github.com/p11-glue/p11-kit \ - file://0001-LINGUAS-drop-the-languages-for-which-upstream-does-n.patch \ - " -SRCREV = "c689917b393379d288b868f70b2f7b7f6aafe430" -S = "${WORKDIR}/git" - -AUTOTOOLS_AUXDIR = "${S}/build/litter" - -PACKAGECONFIG ??= "" -PACKAGECONFIG[trust-paths] = "--with-trust-paths=/etc/ssl/certs/ca-certificates.crt,--without-trust-paths,,ca-certificates" - -# This recipe does not use the standard gtk-doc m4 macros, and so the ./configure flags -# that control gtk-doc build are non-standard -EXTRA_OECONF_prepend_class-target = "${@bb.utils.contains('GTKDOC_ENABLED', 'True', '--enable-doc --enable-doc-html --disable-doc-pdf', \ - '--disable-doc', d)} " - -# When building native recipes, disable gtkdoc, as it is not necessary, -# pulls in additional dependencies, and makes build times longer -EXTRA_OECONF_prepend_class-native = "--disable-doc " -EXTRA_OECONF_prepend_class-nativesdk = "--disable-doc " - -UNKNOWN_CONFIGURE_WHITELIST_append = " --enable-gtk-doc-html --disable-gtk-doc-pdf --enable-gtk-doc --disable-gtk-doc" - -# p11-kit relies on these two being copied from source tree -# instead of being regenerated by gtkdoc-scan, but doesn't setup -# dependencies correctly when there is a parallel build. Let's pre-copy -# them instead. -do_compile_prepend () { - cp ${S}/doc/manual/p11-kit-overrides.txt ${S}/doc/manual/p11-kit-sections.txt ${B}/doc/manual/ -} - -FILES_${PN} += " \ - ${libdir}/p11-kit-proxy.so \ - ${libdir}/pkcs11/*.so \ - ${libdir}/pkcs11/*.la" - -# PN contains p11-kit-proxy.so, a symlink to a loadable module -INSANE_SKIP_${PN} = "dev-so" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-support/p11-kit/p11-kit_0.23.18.1.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-support/p11-kit/p11-kit_0.23.18.1.bb new file mode 100644 index 00000000..9193a06e --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-support/p11-kit/p11-kit_0.23.18.1.bb @@ -0,0 +1,44 @@ +SUMMARY = "Provides a way to load and enumerate PKCS#11 modules" +LICENSE = "BSD-3-Clause" +LIC_FILES_CHKSUM = "file://COPYING;md5=02933887f609807fbb57aa4237d14a50" + +inherit autotools gettext pkgconfig gtk-doc + +DEPENDS = "libtasn1 libffi" + +SRC_URI = "git://github.com/p11-glue/p11-kit" +SRCREV = "b0ebe7555c291808db29377ba79cb8326301f0a6" +S = "${WORKDIR}/git" + +AUTOTOOLS_AUXDIR = "${S}/build/litter" + +PACKAGECONFIG ??= "" +PACKAGECONFIG[trust-paths] = "--with-trust-paths=/etc/ssl/certs/ca-certificates.crt,--without-trust-paths,,ca-certificates" + +# This recipe does not use the standard gtk-doc m4 macros, and so the ./configure flags +# that control gtk-doc build are non-standard +EXTRA_OECONF_prepend_class-target = "${@bb.utils.contains('GTKDOC_ENABLED', 'True', '--enable-doc --enable-doc-html --disable-doc-pdf', \ + '--disable-doc', d)} " + +# When building native recipes, disable gtkdoc, as it is not necessary, +# pulls in additional dependencies, and makes build times longer +EXTRA_OECONF_prepend_class-native = "--disable-doc " +EXTRA_OECONF_prepend_class-nativesdk = "--disable-doc " + +UNKNOWN_CONFIGURE_WHITELIST_append = " --enable-gtk-doc-html --disable-gtk-doc-pdf --enable-gtk-doc --disable-gtk-doc" + +# p11-kit relies on these two being copied from source tree +# instead of being regenerated by gtkdoc-scan, but doesn't setup +# dependencies correctly when there is a parallel build. Let's pre-copy +# them instead. +do_compile_prepend () { + cp ${S}/doc/manual/p11-kit-overrides.txt ${S}/doc/manual/p11-kit-sections.txt ${B}/doc/manual/ +} + +FILES_${PN} += " \ + ${libdir}/p11-kit-proxy.so \ + ${libdir}/pkcs11/*.so \ + ${libdir}/pkcs11/*.la" + +# PN contains p11-kit-proxy.so, a symlink to a loadable module +INSANE_SKIP_${PN} = "dev-so" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-support/pinentry/pinentry_1.1.0.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-support/pinentry/pinentry_1.1.0.bb index fb529d25..8c500dca 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-support/pinentry/pinentry_1.1.0.bb +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-support/pinentry/pinentry_1.1.0.bb @@ -35,4 +35,4 @@ EXTRA_OECONF = " \ --disable-rpath \ " -BBCLASSEXTEND = "native" +BBCLASSEXTEND = "native nativesdk" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-support/ptest-runner/ptest-runner/0001-utils-Ensure-stdout-stderr-are-flushed.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-support/ptest-runner/ptest-runner/0001-utils-Ensure-stdout-stderr-are-flushed.patch deleted file mode 100644 index c9a9dd7c..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-support/ptest-runner/ptest-runner/0001-utils-Ensure-stdout-stderr-are-flushed.patch +++ /dev/null @@ -1,45 +0,0 @@ -From 9b36993794c1de733c521b2477370c874c07b617 Mon Sep 17 00:00:00 2001 -From: Richard Purdie -Date: Thu, 4 Apr 2019 14:18:55 +0100 -Subject: [PATCH 1/3] utils: Ensure stdout/stderr are flushed - -There is no guarantee that the data written with fwrite will be flushed to the -buffer. If stdout and stderr are the same thing, this could lead to interleaved -writes. The common case is stdout output so flush the output pipes when writing to -stderr. Also flush stdout before the function returns. - -Signed-off-by: Richard Purdie -Upstream-Status: Pending [code being tested] ---- - utils.c | 7 +++++-- - 1 file changed, 5 insertions(+), 2 deletions(-) - -diff --git a/utils.c b/utils.c -index 504df0b..3ceb342 100644 ---- a/utils.c -+++ b/utils.c -@@ -295,8 +295,11 @@ wait_child(const char *ptest_dir, const char *run_ptest, pid_t pid, - } - - if (pfds[1].revents != 0) { -- while ((n = read(fds[1], buf, WAIT_CHILD_BUF_MAX_SIZE)) > 0) -+ while ((n = read(fds[1], buf, WAIT_CHILD_BUF_MAX_SIZE)) > 0) { -+ fflush(fps[0]); - fwrite(buf, n, 1, fps[1]); -+ fflush(fps[1]); -+ } - } - - clock_gettime(clock, &sentinel); -@@ -315,7 +318,7 @@ wait_child(const char *ptest_dir, const char *run_ptest, pid_t pid, - break; - } - -- -+ fflush(fps[0]); - return status; - } - --- -2.17.1 - diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-support/ptest-runner/ptest-runner/0002-use-process-groups-when-spawning.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-support/ptest-runner/ptest-runner/0002-use-process-groups-when-spawning.patch deleted file mode 100644 index 5436a334..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-support/ptest-runner/ptest-runner/0002-use-process-groups-when-spawning.patch +++ /dev/null @@ -1,35 +0,0 @@ -From f0c42a65633341ad048718c7a6dbd035818e9eaf Mon Sep 17 00:00:00 2001 -From: Richard Purdie -Date: Thu, 4 Apr 2019 14:20:31 +0100 -Subject: [PATCH 2/3] use process groups when spawning - -Rather than just killing the process we've swawned, set the process group -for spawned children and then kill the group of processes. - -Signed-off-by: Richard Purdie -Upstream-Status: Pending [code being tested] ---- - utils.c | 9 +++++---- - 1 file changed, 5 insertions(+), 4 deletions(-) - -diff --git a/utils.c b/utils.c -index 3ceb342..c5b3b8d 100644 ---- a/utils.c -+++ b/utils.c -@@ -309,7 +309,7 @@ wait_child(const char *ptest_dir, const char *run_ptest, pid_t pid, - clock_gettime(clock, &time); - if ((time.tv_sec - sentinel.tv_sec) > timeout) { - *timeouted = 1; -- kill(pid, SIGKILL); -+ kill(-pid, SIGKILL); - waitflags = 0; - } - } -@@ -371,6 +371,7 @@ run_ptests(struct ptest_list *head, const struct ptest_options opts, - rc = -1; - break; - } else if (child == 0) { -+ setsid(); - run_child(p->run_ptest, pipefd_stdout[1], pipefd_stderr[1]); - } else { - int status; diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-support/ptest-runner/ptest-runner/0003-utils-Ensure-pipes-are-read-after-exit.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-support/ptest-runner/ptest-runner/0003-utils-Ensure-pipes-are-read-after-exit.patch deleted file mode 100644 index f7c3ebe6..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-support/ptest-runner/ptest-runner/0003-utils-Ensure-pipes-are-read-after-exit.patch +++ /dev/null @@ -1,76 +0,0 @@ -From e58e4e1a7f854953f823dc5135d35f728f253f31 Mon Sep 17 00:00:00 2001 -From: Richard Purdie -Date: Thu, 4 Apr 2019 14:24:14 +0100 -Subject: [PATCH 3/3] utils: Ensure pipes are read after exit - -There was a race in the code where the pipes may not be read after the process has exited -and data may be left behind in them. This change to ordering ensures the pipes are read -after the exit code has been read meaning no data can be left behind and the logs should -be complete. - -Signed-off-by: Richard Purdie -Upstream-Status: Pending [code being tested] ---- - utils.c | 29 ++++++++++++++++------------- - 1 file changed, 16 insertions(+), 13 deletions(-) - -diff --git a/utils.c b/utils.c -index c5b3b8d..37e88ab 100644 ---- a/utils.c -+++ b/utils.c -@@ -264,6 +264,7 @@ wait_child(const char *ptest_dir, const char *run_ptest, pid_t pid, pid_t group, - struct pollfd pfds[2]; - struct timespec sentinel; - clockid_t clock = CLOCK_MONOTONIC; -+ int looping = 1; - int r; - - int status; -@@ -281,9 +282,23 @@ wait_child(const char *ptest_dir, const char *run_ptest, pid_t pid, pid_t group, - - *timeouted = 0; - -- while (1) { -+ while (looping) { - waitflags = WNOHANG; - -+ if (timeout >= 0) { -+ struct timespec time; -+ -+ clock_gettime(clock, &time); -+ if ((time.tv_sec - sentinel.tv_sec) > timeout) { -+ *timeouted = 1; -+ kill(-pid, SIGKILL); -+ waitflags = 0; -+ } -+ } -+ -+ if (waitpid(pid, &status, waitflags) == pid) -+ looping = 0; -+ - r = poll(pfds, 2, WAIT_CHILD_POLL_TIMEOUT_MS); - if (r > 0) { - char buf[WAIT_CHILD_BUF_MAX_SIZE]; -@@ -303,19 +318,7 @@ wait_child(const char *ptest_dir, const char *run_ptest, pid_t pid, pid_t group, - } - - clock_gettime(clock, &sentinel); -- } else if (timeout >= 0) { -- struct timespec time; -- -- clock_gettime(clock, &time); -- if ((time.tv_sec - sentinel.tv_sec) > timeout) { -- *timeouted = 1; -- kill(-pid, SIGKILL); -- waitflags = 0; -- } - } -- -- if (waitpid(pid, &status, waitflags) == pid) -- break; - } - - fflush(fps[0]); --- -2.17.1 - diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-support/ptest-runner/ptest-runner/0004-utils-ensure-child-can-be-session-leader.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-support/ptest-runner/ptest-runner/0004-utils-ensure-child-can-be-session-leader.patch deleted file mode 100644 index 13b4cbc7..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-support/ptest-runner/ptest-runner/0004-utils-ensure-child-can-be-session-leader.patch +++ /dev/null @@ -1,212 +0,0 @@ -From 79698d3205dedba887e0d2492de945d3079de029 Mon Sep 17 00:00:00 2001 -From: Randy MacLeod -Date: Thu, 6 Jun 2019 17:03:50 -0400 -Subject: [PATCH] utils: ensure child can be session leader - -When running the run-execscript bash ptest as a user rather than root, a warning: - bash: cannot set terminal process group (16036): Inappropriate ioctl for device - bash: no job control in this shell -contaminates the bash log files causing the test to fail. This happens only -when run under ptest-runner and not when interactively testing! - -The changes made to fix this include: -1. Get the process group id (pgid) before forking, -2. Set the pgid in both the parent and child to avoid a race, -3. Find, open and set permission on the child tty, and -4. Allow the child to attach to controlling tty. - -Also add '-lutil' to Makefile. This lib is from libc and provides openpty. - -Upstream-Status: Submitted [yocto@yoctoproject.org] - -Signed-off-by: Sakib Sajal -Signed-off-by: Randy MacLeod ---- - Makefile | 2 +- - utils.c | 102 +++++++++++++++++++++++++++++++++++++++++++++++++------ - 2 files changed, 92 insertions(+), 12 deletions(-) - -diff --git a/Makefile b/Makefile -index 1bde7be..439eb79 100644 ---- a/Makefile -+++ b/Makefile -@@ -29,7 +29,7 @@ TEST_DATA=$(shell echo `pwd`/tests/data) - all: $(SOURCES) $(EXECUTABLE) - - $(EXECUTABLE): $(OBJECTS) -- $(CC) $(LDFLAGS) $(OBJECTS) -o $@ -+ $(CC) $(LDFLAGS) $(OBJECTS) -lutil -o $@ - - tests: $(TEST_SOURCES) $(TEST_EXECUTABLE) - -diff --git a/utils.c b/utils.c -index ad737c2..f11ce39 100644 ---- a/utils.c -+++ b/utils.c -@@ -1,5 +1,6 @@ - /** - * Copyright (c) 2016 Intel Corporation -+ * Copyright (C) 2019 Wind River Systems, Inc. - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License -@@ -22,23 +23,27 @@ - */ - - #define _GNU_SOURCE -+ - #include - -+#include -+#include -+#include -+#include - #include --#include - #include --#include -+#include -+#include -+#include -+#include - #include --#include -+#include -+ -+#include - #include -+#include - #include - #include --#include --#include --#include --#include -- --#include - - #include "ptest_list.h" - #include "utils.h" -@@ -346,6 +351,53 @@ wait_child(const char *ptest_dir, const char *run_ptest, pid_t pid, - return status; - } - -+/* Returns an integer file descriptor. -+ * If it returns < 0, an error has occurred. -+ * Otherwise, it has returned the slave pty file descriptor. -+ * fp should be writable, likely stdout/err. -+ */ -+static int -+setup_slave_pty(FILE *fp) { -+ int pty_master = -1; -+ int pty_slave = -1; -+ char pty_name[256]; -+ struct group *gptr; -+ gid_t gid; -+ int slave = -1; -+ -+ if (openpty(&pty_master, &pty_slave, pty_name, NULL, NULL) < 0) { -+ fprintf(fp, "ERROR: openpty() failed with: %s.\n", strerror(errno)); -+ return -1; -+ } -+ -+ if ((gptr = getgrnam(pty_name)) != 0) { -+ gid = gptr->gr_gid; -+ } else { -+ /* If the tty group does not exist, don't change the -+ * group on the slave pty, only the owner -+ */ -+ gid = -1; -+ } -+ -+ /* chown/chmod the corresponding pty, if possible. -+ * This will only work if the process has root permissions. -+ */ -+ if (chown(pty_name, getuid(), gid) != 0) { -+ fprintf(fp, "ERROR; chown() failed with: %s.\n", strerror(errno)); -+ } -+ -+ /* Makes the slave read/writeable for the user. */ -+ if (chmod(pty_name, S_IRUSR|S_IWUSR) != 0) { -+ fprintf(fp, "ERROR: chmod() failed with: %s.\n", strerror(errno)); -+ } -+ -+ if ((slave = open(pty_name, O_RDWR)) == -1) { -+ fprintf(fp, "ERROR: open() failed with: %s.\n", strerror(errno)); -+ } -+ return (slave); -+} -+ -+ - int - run_ptests(struct ptest_list *head, const struct ptest_options opts, - const char *progname, FILE *fp, FILE *fp_stderr) -@@ -362,6 +414,8 @@ run_ptests(struct ptest_list *head, const struct ptest_options opts, - int timeouted; - time_t sttime, entime; - int duration; -+ int slave; -+ int pgid = -1; - - if (opts.xml_filename) { - xh = xml_create(ptest_list_length(head), opts.xml_filename); -@@ -379,7 +433,6 @@ run_ptests(struct ptest_list *head, const struct ptest_options opts, - close(pipefd_stdout[1]); - break; - } -- - fprintf(fp, "START: %s\n", progname); - PTEST_LIST_ITERATE_START(head, p); - char *ptest_dir = strdup(p->run_ptest); -@@ -388,6 +441,13 @@ run_ptests(struct ptest_list *head, const struct ptest_options opts, - break; - } - dirname(ptest_dir); -+ if (ioctl(0, TIOCNOTTY) == -1) { -+ fprintf(fp, "ERROR: Unable to detach from controlling tty, %s\n", strerror(errno)); -+ } -+ -+ if ((pgid = getpgid(0)) == -1) { -+ fprintf(fp, "ERROR: getpgid() failed, %s\n", strerror(errno)); -+ } - - child = fork(); - if (child == -1) { -@@ -395,13 +455,33 @@ run_ptests(struct ptest_list *head, const struct ptest_options opts, - rc = -1; - break; - } else if (child == 0) { -- setsid(); -+ close(0); -+ if ((slave = setup_slave_pty(fp)) < 0) { -+ fprintf(fp, "ERROR: could not setup pty (%d).", slave); -+ } -+ if (setpgid(0,pgid) == -1) { -+ fprintf(fp, "ERROR: setpgid() failed, %s\n", strerror(errno)); -+ } -+ -+ if (setsid() == -1) { -+ fprintf(fp, "ERROR: setsid() failed, %s\n", strerror(errno)); -+ } -+ -+ if (ioctl(0, TIOCSCTTY, NULL) == -1) { -+ fprintf(fp, "ERROR: Unable to attach to controlling tty, %s\n", strerror(errno)); -+ } -+ - run_child(p->run_ptest, pipefd_stdout[1], pipefd_stderr[1]); -+ - } else { - int status; - int fds[2]; fds[0] = pipefd_stdout[0]; fds[1] = pipefd_stderr[0]; - FILE *fps[2]; fps[0] = fp; fps[1] = fp_stderr; - -+ if (setpgid(child, pgid) == -1) { -+ fprintf(fp, "ERROR: setpgid() failed, %s\n", strerror(errno)); -+ } -+ - sttime = time(NULL); - fprintf(fp, "%s\n", get_stime(stime, GET_STIME_BUF_SIZE, sttime)); - fprintf(fp, "BEGIN: %s\n", ptest_dir); --- -2.17.0 - diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-support/ptest-runner/ptest-runner_2.3.1.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-support/ptest-runner/ptest-runner_2.3.1.bb deleted file mode 100644 index dec60fcc..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-support/ptest-runner/ptest-runner_2.3.1.bb +++ /dev/null @@ -1,32 +0,0 @@ -SUMMARY = "A C program to run all installed ptests" -DESCRIPTION = "The ptest-runner2 package installs a ptest-runner \ -program which loops through all installed ptest test suites and \ -runs them in sequence." -HOMEPAGE = "http://git.yoctoproject.org/cgit/cgit.cgi/ptest-runner2/about/" - -LICENSE = "GPLv2" -LIC_FILES_CHKSUM = "file://LICENSE;md5=751419260aa954499f7abaabaa882bbe" - -SRCREV = "63d097cc46142157931682fed076b5407757a0bd" -PV = "2.3.1+git${SRCPV}" - -SRC_URI = "git://git.yoctoproject.org/ptest-runner2 \ - file://0001-utils-Ensure-stdout-stderr-are-flushed.patch \ - file://0002-use-process-groups-when-spawning.patch \ - file://0003-utils-Ensure-pipes-are-read-after-exit.patch \ - file://0004-utils-ensure-child-can-be-session-leader.patch \ -" - -S = "${WORKDIR}/git" - -FILES_${PN} = "${bindir}/ptest-runner" - -EXTRA_OEMAKE = "-e MAKEFLAGS= CFLAGS="${CFLAGS} -DDEFAULT_DIRECTORY=\\\"${libdir}\\\""" - -do_compile () { - oe_runmake -} - -do_install () { - install -D -m 0755 ${S}/ptest-runner ${D}${bindir}/ptest-runner -} diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-support/ptest-runner/ptest-runner_2.3.2.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-support/ptest-runner/ptest-runner_2.3.2.bb new file mode 100644 index 00000000..187f22df --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-support/ptest-runner/ptest-runner_2.3.2.bb @@ -0,0 +1,28 @@ +SUMMARY = "A C program to run all installed ptests" +DESCRIPTION = "The ptest-runner2 package installs a ptest-runner \ +program which loops through all installed ptest test suites and \ +runs them in sequence." +HOMEPAGE = "http://git.yoctoproject.org/cgit/cgit.cgi/ptest-runner2/about/" + +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://LICENSE;md5=751419260aa954499f7abaabaa882bbe" + +SRCREV = "7015e9199ce748c0717addeebe7a8c47448bab03" +PV = "2.3.2+git${SRCPV}" + +SRC_URI = "git://git.yoctoproject.org/ptest-runner2 \ +" + +S = "${WORKDIR}/git" + +FILES_${PN} = "${bindir}/ptest-runner" + +EXTRA_OEMAKE = "-e MAKEFLAGS= CFLAGS="${CFLAGS} -DDEFAULT_DIRECTORY=\\\"${libdir}\\\""" + +do_compile () { + oe_runmake +} + +do_install () { + install -D -m 0755 ${S}/ptest-runner ${D}${bindir}/ptest-runner +} diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-support/rng-tools/rng-tools/fix-rngd-fail-to-stop.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-support/rng-tools/rng-tools/fix-rngd-fail-to-stop.patch deleted file mode 100644 index 58cf3f9d..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-support/rng-tools/rng-tools/fix-rngd-fail-to-stop.patch +++ /dev/null @@ -1,25 +0,0 @@ -It fails to stop rngd. It just shows warnings when stop rngd such as by: - -$ systemctl stop rngd.service - -but stalls shutdown untill daemon rngd is killed. - -Backport patch to fix the issue. - -Upstream-Status: Backport [https://bugzilla.redhat.com/show_bug.cgi?id=1690364#c8] - -Signed-off-by: Kai Kang ---- -diff --git a/rngd_jitter.c b/rngd_jitter.c -index 54070ae..7a69bf9 100644 ---- a/rngd_jitter.c -+++ b/rngd_jitter.c -@@ -280,7 +280,7 @@ static void *thread_entropy_task(void *data) - - /* Write to pipe */ - written = 0; -- while(written != me->buf_sz) { -+ while(me->active && written != me->buf_sz) { - message(LOG_DAEMON|LOG_DEBUG, "Writing to pipe\n"); - ret = write(me->pipe_fd, &tmpbuf[written], me->buf_sz - written); - message(LOG_DAEMON|LOG_DEBUG, "DONE Writing to pipe with return %ld\n", ret); diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-support/rng-tools/rng-tools/rngd.service b/Contrib-Inspur/openbmc/poky/meta/recipes-support/rng-tools/rng-tools/rngd.service index b1a78527..aaaaa290 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-support/rng-tools/rng-tools/rngd.service +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-support/rng-tools/rng-tools/rngd.service @@ -2,7 +2,8 @@ Description=Hardware RNG Entropy Gatherer Daemon DefaultDependencies=no After=systemd-udev-settle.service -Before=sysinit.target +Before=sysinit.target shutdown.target +Conflicts=shutdown.target [Service] EnvironmentFile=-@SYSCONFDIR@/default/rng-tools diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-support/rng-tools/rng-tools_6.7.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-support/rng-tools/rng-tools_6.7.bb deleted file mode 100644 index aeb558b2..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-support/rng-tools/rng-tools_6.7.bb +++ /dev/null @@ -1,53 +0,0 @@ -SUMMARY = "Random number generator daemon" -DESCRIPTION = "Check and feed random data from hardware device to kernel" -AUTHOR = "Philipp Rumpf, Jeff Garzik , \ - Henrique de Moraes Holschuh " -HOMEPAGE = "https://github.com/nhorman/rng-tools" -BUGTRACKER = "https://github.com/nhorman/rng-tools/issues" -LICENSE = "GPLv2" -LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263" -DEPENDS = "sysfsutils" - -SRC_URI = "\ - git://github.com/nhorman/rng-tools.git \ - file://fix-rngd-fail-to-stop.patch \ - file://init \ - file://default \ - file://rngd.service \ -" -SRCREV = "9fc873c5af0e392632e6b736938b811f7ca97251" - -S = "${WORKDIR}/git" - -inherit autotools update-rc.d systemd pkgconfig - -PACKAGECONFIG ??= "libgcrypt libjitterentropy" -PACKAGECONFIG_libc-musl = "libargp libjitterentropy" - -PACKAGECONFIG[libargp] = "--with-libargp,--without-libargp,argp-standalone," -PACKAGECONFIG[libgcrypt] = "--with-libgcrypt,--without-libgcrypt,libgcrypt," -PACKAGECONFIG[libjitterentropy] = "--enable-jitterentropy,--disable-jitterentropy,libjitterentropy" -PACKAGECONFIG[libp11] = "--with-pkcs11,--without-pkcs11,libp11 openssl" -PACKAGECONFIG[nistbeacon] = "--with-nistbeacon,--without-nistbeacon,curl libxml2 openssl" - -INITSCRIPT_NAME = "rng-tools" -INITSCRIPT_PARAMS = "start 03 2 3 4 5 . stop 30 0 6 1 ." - -SYSTEMD_SERVICE_${PN} = "rngd.service" - -# Refer autogen.sh in rng-tools -do_configure_prepend() { - cp ${S}/README.md ${S}/README -} - -do_install_append() { - install -Dm 0644 ${WORKDIR}/default ${D}${sysconfdir}/default/rng-tools - install -Dm 0755 ${WORKDIR}/init ${D}${sysconfdir}/init.d/rng-tools - install -Dm 0644 ${WORKDIR}/rngd.service \ - ${D}${systemd_system_unitdir}/rngd.service - sed -i \ - -e 's,@SYSCONFDIR@,${sysconfdir},' \ - -e 's,@SBINDIR@,${sbindir},' \ - ${D}${sysconfdir}/init.d/rng-tools \ - ${D}${systemd_system_unitdir}/rngd.service -} diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-support/rng-tools/rng-tools_6.8.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-support/rng-tools/rng-tools_6.8.bb new file mode 100644 index 00000000..83a48a4e --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-support/rng-tools/rng-tools_6.8.bb @@ -0,0 +1,52 @@ +SUMMARY = "Random number generator daemon" +DESCRIPTION = "Check and feed random data from hardware device to kernel" +AUTHOR = "Philipp Rumpf, Jeff Garzik , \ + Henrique de Moraes Holschuh " +HOMEPAGE = "https://github.com/nhorman/rng-tools" +BUGTRACKER = "https://github.com/nhorman/rng-tools/issues" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263" +DEPENDS = "sysfsutils" + +SRC_URI = "\ + git://github.com/nhorman/rng-tools.git \ + file://init \ + file://default \ + file://rngd.service \ +" +SRCREV = "eb5e34c7fb05594760f99d863fbe0401fe297b93" + +S = "${WORKDIR}/git" + +inherit autotools update-rc.d systemd pkgconfig + +PACKAGECONFIG ??= "libgcrypt libjitterentropy" +PACKAGECONFIG_libc-musl = "libargp libjitterentropy" + +PACKAGECONFIG[libargp] = "--with-libargp,--without-libargp,argp-standalone," +PACKAGECONFIG[libgcrypt] = "--with-libgcrypt,--without-libgcrypt,libgcrypt," +PACKAGECONFIG[libjitterentropy] = "--enable-jitterentropy,--disable-jitterentropy,libjitterentropy" +PACKAGECONFIG[libp11] = "--with-pkcs11,--without-pkcs11,libp11 openssl" +PACKAGECONFIG[nistbeacon] = "--with-nistbeacon,--without-nistbeacon,curl libxml2 openssl" + +INITSCRIPT_NAME = "rng-tools" +INITSCRIPT_PARAMS = "start 03 2 3 4 5 . stop 30 0 6 1 ." + +SYSTEMD_SERVICE_${PN} = "rngd.service" + +# Refer autogen.sh in rng-tools +do_configure_prepend() { + cp ${S}/README.md ${S}/README +} + +do_install_append() { + install -Dm 0644 ${WORKDIR}/default ${D}${sysconfdir}/default/rng-tools + install -Dm 0755 ${WORKDIR}/init ${D}${sysconfdir}/init.d/rng-tools + install -Dm 0644 ${WORKDIR}/rngd.service \ + ${D}${systemd_system_unitdir}/rngd.service + sed -i \ + -e 's,@SYSCONFDIR@,${sysconfdir},g' \ + -e 's,@SBINDIR@,${sbindir},g' \ + ${D}${sysconfdir}/init.d/rng-tools \ + ${D}${systemd_system_unitdir}/rngd.service +} diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-support/sqlite/sqlite3.inc b/Contrib-Inspur/openbmc/poky/meta/recipes-support/sqlite/sqlite3.inc index daf3db5e..07614bdb 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-support/sqlite/sqlite3.inc +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-support/sqlite/sqlite3.inc @@ -19,7 +19,7 @@ UPSTREAM_CHECK_REGEX = "releaselog/(?P(\d+[\.\-_]*)+)\.html" CVE_PRODUCT = "sqlite" -inherit autotools pkgconfig +inherit autotools pkgconfig siteinfo # enable those which are enabled by default in configure PACKAGECONFIG ?= "fts4 fts5 json1 rtree dyn_ext" @@ -34,6 +34,9 @@ PACKAGECONFIG[json1] = "--enable-json1,--disable-json1" PACKAGECONFIG[rtree] = "--enable-rtree,--disable-rtree" PACKAGECONFIG[session] = "--enable-session,--disable-session" PACKAGECONFIG[dyn_ext] = "--enable-dynamic-extensions,--disable-dynamic-extensions" +PACKAGECONFIG[zlib] = ",,zlib" + +CACHED_CONFIGUREVARS += "${@bb.utils.contains('PACKAGECONFIG', 'zlib', '', 'ac_cv_search_deflate=no',d)}" EXTRA_OECONF = " \ --enable-shared \ @@ -41,13 +44,15 @@ EXTRA_OECONF = " \ --disable-static-shell \ " -CFLAGS_append = " -fPIC" - # pread() is in POSIX.1-2001 so any reasonable system must surely support it -CFLAGS += "-DUSE_PREAD" +CFLAGS_append = " -DUSE_PREAD" # Provide column meta-data API -CFLAGS += "-DSQLITE_ENABLE_COLUMN_METADATA" +CFLAGS_append = " -DSQLITE_ENABLE_COLUMN_METADATA" + +# Unless SQLITE_BYTEORDER is predefined, the code falls back to build time +# huristics, which are not always correct +CFLAGS_append = " ${@oe.utils.conditional('SITEINFO_ENDIANNESS', 'le', '-DSQLITE_BYTEORDER=1234', '-DSQLITE_BYTEORDER=4321', d)}" PACKAGES = "lib${BPN} lib${BPN}-dev lib${BPN}-doc ${PN}-dbg lib${BPN}-staticdev ${PN}" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-support/sqlite/sqlite3_3.28.0.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-support/sqlite/sqlite3_3.28.0.bb deleted file mode 100644 index 438a4ea4..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-support/sqlite/sqlite3_3.28.0.bb +++ /dev/null @@ -1,8 +0,0 @@ -require sqlite3.inc - -LICENSE = "PD" -LIC_FILES_CHKSUM = "file://sqlite3.h;endline=11;md5=786d3dc581eff03f4fd9e4a77ed00c66" - -SRC_URI = "http://www.sqlite.org/2019/sqlite-autoconf-${SQLITE_PV}.tar.gz" -SRC_URI[md5sum] = "3c68eb400f8354605736cd55400e1572" -SRC_URI[sha256sum] = "d61b5286f062adfce5125eaf544d495300656908e61fca143517afcc0a89b7c3" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-support/sqlite/sqlite3_3.30.1.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-support/sqlite/sqlite3_3.30.1.bb new file mode 100644 index 00000000..f18eeb19 --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-support/sqlite/sqlite3_3.30.1.bb @@ -0,0 +1,8 @@ +require sqlite3.inc + +LICENSE = "PD" +LIC_FILES_CHKSUM = "file://sqlite3.h;endline=11;md5=786d3dc581eff03f4fd9e4a77ed00c66" + +SRC_URI = "http://www.sqlite.org/2019/sqlite-autoconf-${SQLITE_PV}.tar.gz" +SRC_URI[md5sum] = "51252dc6bc9094ba11ab151ba650ff3c" +SRC_URI[sha256sum] = "8c5a50db089bd2a1b08dbc5b00d2027602ca7ff238ba7658fabca454d4298e60" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-support/vte/vte/0001-Add-m4-vapigen.m4.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-support/vte/vte/0001-Add-m4-vapigen.m4.patch deleted file mode 100644 index 1c5630ed..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-support/vte/vte/0001-Add-m4-vapigen.m4.patch +++ /dev/null @@ -1,119 +0,0 @@ -From 08ca1c48b25c332b75bba2a6b5d757da006e955b Mon Sep 17 00:00:00 2001 -From: Jussi Kukkonen -Date: Fri, 7 Oct 2016 16:27:57 +0300 -Subject: [PATCH] Add m4/vapigen.m4 - -Building without vala will fail if we don't have a vapigen.m4. - -Upstream-Status: Pending -Signed-off-by: Jussi Kukkonen ---- - m4/vapigen.m4 | 96 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ - 1 file changed, 96 insertions(+) - create mode 100644 m4/vapigen.m4 - -diff --git a/m4/vapigen.m4 b/m4/vapigen.m4 -new file mode 100644 -index 0000000..f2df12f ---- /dev/null -+++ b/m4/vapigen.m4 -@@ -0,0 +1,96 @@ -+dnl vapigen.m4 -+dnl -+dnl Copyright 2012 Evan Nemerson -+dnl -+dnl This library is free software; you can redistribute it and/or -+dnl modify it under the terms of the GNU Lesser General Public -+dnl License as published by the Free Software Foundation; either -+dnl version 2.1 of the License, or (at your option) any later version. -+dnl -+dnl This library is distributed in the hope that it will be useful, -+dnl but WITHOUT ANY WARRANTY; without even the implied warranty of -+dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -+dnl Lesser General Public License for more details. -+dnl -+dnl You should have received a copy of the GNU Lesser General Public -+dnl License along with this library; if not, write to the Free Software -+dnl Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA -+ -+# VAPIGEN_CHECK([VERSION], [API_VERSION], [FOUND-INTROSPECTION], [DEFAULT]) -+# -------------------------------------- -+# Check vapigen existence and version -+# -+# See http://live.gnome.org/Vala/UpstreamGuide for detailed documentation -+AC_DEFUN([VAPIGEN_CHECK], -+[ -+ AC_BEFORE([GOBJECT_INTROSPECTION_CHECK],[$0]) -+ AC_BEFORE([GOBJECT_INTROSPECTION_REQUIRE],[$0]) -+ -+ AC_ARG_ENABLE([vala], -+ [AS_HELP_STRING([--enable-vala[=@<:@no/auto/yes@:>@]],[build Vala bindings @<:@default=]ifelse($4,,auto,$4)[@:>@])],,[ -+ AS_IF([test "x$4" = "x"], [ -+ enable_vala=auto -+ ], [ -+ enable_vala=$4 -+ ]) -+ ]) -+ -+ AS_CASE([$enable_vala], [no], [enable_vala=no], -+ [yes], [ -+ AS_IF([test "x$3" != "xyes" -a "x$found_introspection" != "xyes"], [ -+ AC_MSG_ERROR([Vala bindings require GObject Introspection]) -+ ]) -+ ], [auto], [ -+ AS_IF([test "x$3" != "xyes" -a "x$found_introspection" != "xyes"], [ -+ enable_vala=no -+ ]) -+ ], [ -+ AC_MSG_ERROR([Invalid argument passed to --enable-vala, should be one of @<:@no/auto/yes@:>@]) -+ ]) -+ -+ AS_IF([test "x$2" = "x"], [ -+ vapigen_pkg_name=vapigen -+ ], [ -+ vapigen_pkg_name=vapigen-$2 -+ ]) -+ AS_IF([test "x$1" = "x"], [ -+ vapigen_pkg="$vapigen_pkg_name" -+ ], [ -+ vapigen_pkg="$vapigen_pkg_name >= $1" -+ ]) -+ -+ PKG_PROG_PKG_CONFIG -+ -+ PKG_CHECK_EXISTS([$vapigen_pkg], [ -+ AS_IF([test "$enable_vala" = "auto"], [ -+ enable_vala=yes -+ ]) -+ ], [ -+ AS_CASE([$enable_vala], [yes], [ -+ AC_MSG_ERROR([$vapigen_pkg not found]) -+ ], [auto], [ -+ enable_vala=no -+ ]) -+ ]) -+ -+ AC_MSG_CHECKING([for vala]) -+ -+ AS_CASE([$enable_vala], -+ [yes], [ -+ VAPIGEN=`$PKG_CONFIG --variable=vapigen vapigen` -+ VAPIGEN_MAKEFILE=`$PKG_CONFIG --variable=datadir vapigen`/vala/Makefile.vapigen -+ AS_IF([test "x$2" = "x"], [ -+ VAPIGEN_VAPIDIR=`$PKG_CONFIG --variable=vapidir vapigen` -+ ], [ -+ VAPIGEN_VAPIDIR=`$PKG_CONFIG --variable=vapidir_versioned vapigen` -+ ]) -+ ]) -+ -+ AC_MSG_RESULT([$enable_vala]) -+ -+ AC_SUBST([VAPIGEN]) -+ AC_SUBST([VAPIGEN_VAPIDIR]) -+ AC_SUBST([VAPIGEN_MAKEFILE]) -+ -+ AM_CONDITIONAL(ENABLE_VAPIGEN, test "x$enable_vala" = "xyes") -+]) --- -2.1.4 - diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-support/vte/vte/0001-Don-t-enable-stack-protection-by-default.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-support/vte/vte/0001-Don-t-enable-stack-protection-by-default.patch deleted file mode 100644 index fcfc5597..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-support/vte/vte/0001-Don-t-enable-stack-protection-by-default.patch +++ /dev/null @@ -1,29 +0,0 @@ -From b0a579d83e355545b64742c997fe8b1d58bf4207 Mon Sep 17 00:00:00 2001 -From: Jussi Kukkonen -Date: Mon, 13 Jun 2016 11:05:00 +0300 -Subject: [PATCH] Don't enable stack-protection by default - -These are set by security_flags.inc. - -Upstream-Status: Inappropriate [configuration] -Signed-off-by: Jussi Kukkonen ---- - configure.ac | 2 -- - 1 file changed, 2 deletions(-) - -diff --git a/configure.ac b/configure.ac -index 068d072..d580f84 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -138,8 +138,6 @@ m4_define([compiler_flags_common],[ dnl - -fno-common dnl - -fdiagnostics-show-option dnl - -fno-strict-aliasing dnl -- -fstack-protector dnl -- -fstack-protector-strong dnl - -fno-semantic-interposition dnl - -Wno-deprecated-declarations dnl - ]) --- -2.1.4 - diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-support/vte/vte/0001-Add-W_EXITCODE-macro-for-non-glibc-systems.patch b/Contrib-Inspur/openbmc/poky/meta/recipes-support/vte/vte/0002-Add-W_EXITCODE-macro-for-non-glibc-systems.patch similarity index 100% rename from Contrib-Inspur/openbmc/poky/meta/recipes-support/vte/vte/0001-Add-W_EXITCODE-macro-for-non-glibc-systems.patch rename to Contrib-Inspur/openbmc/poky/meta/recipes-support/vte/vte/0002-Add-W_EXITCODE-macro-for-non-glibc-systems.patch diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-support/vte/vte_0.56.1.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-support/vte/vte_0.56.1.bb deleted file mode 100644 index 702436b3..00000000 --- a/Contrib-Inspur/openbmc/poky/meta/recipes-support/vte/vte_0.56.1.bb +++ /dev/null @@ -1,57 +0,0 @@ -SUMMARY = "Virtual terminal emulator GTK+ widget library" -BUGTRACKER = "https://bugzilla.gnome.org/buglist.cgi?product=vte" -LICENSE = "GPLv3 & LGPLv3+ & LGPLv2.1+" -LICENSE_libvte = "LGPLv3+" - -LIC_FILES_CHKSUM = " \ - file://COPYING.GPL3;md5=2f31b266d3440dd7ee50f92cf67d8e6c \ - file://COPYING.LGPL2;md5=4fbd65380cdd255951079008b364516c \ - file://COPYING.LGPL3;md5=b52f2d57d10c4f7ee67a7eb9615d5d24 \ -" - -DEPENDS = "glib-2.0 gtk+3 libpcre2 intltool-native libxml2-native gperf-native" - -inherit gnomebase gtk-doc distro_features_check upstream-version-is-even gobject-introspection - -# vapigen.m4 is required when vala is not present (but the one from vala should be used normally) -SRC_URI += "file://0001-Don-t-enable-stack-protection-by-default.patch \ - ${@bb.utils.contains('PACKAGECONFIG', 'vala', '', 'file://0001-Add-m4-vapigen.m4.patch', d) } \ - file://0001-app.cc-use-old-school-asignment-to-avoid-gcc-4.8-err.patch \ - file://0001-Add-W_EXITCODE-macro-for-non-glibc-systems.patch \ - " -SRC_URI[archive.md5sum] = "a8984cd5a101dbff0b0c875d1de3f692" -SRC_URI[archive.sha256sum] = "02fa8ecc02a9332e47f486795494527b5687b3bd448e73e6b67285f2f326dc7c" - -ANY_OF_DISTRO_FEATURES = "${GTK3DISTROFEATURES}" - -# Instead of "inherit vala" we do the relevant settings here so we can -# set DEPENDS based on PACKAGECONFIG. - -# Our patched version of Vala looks in STAGING_DATADIR for .vapi files -export STAGING_DATADIR -# Upstream Vala >= 0.11 looks in XDG_DATA_DIRS for .vapi files -export XDG_DATA_DIRS = "${STAGING_DATADIR}" - -# Help g-ir-scanner find the .so for linking -do_compile_prepend() { - export GIR_EXTRA_LIBS_PATH="${B}/src/.libs" -} - -# Package additional files -FILES_${PN}-dev += "${datadir}/vala/vapi/*" - -PACKAGECONFIG ??= "gnutls" -PACKAGECONFIG[vala] = "--enable-vala,--disable-vala,vala-native vala" -PACKAGECONFIG[gnutls] = "--with-gnutls,--without-gnutls,gnutls" - -CFLAGS += "-D_GNU_SOURCE" - -# libtool adds "-nostdlib" when g++ is used. This breaks PIE builds. -# Use libtool-cross (which has a hack to prevent that) instead. -EXTRA_OEMAKE_class-target = "LIBTOOL=${STAGING_BINDIR_CROSS}/${HOST_SYS}-libtool" - -PACKAGES =+ "libvte ${PN}-prompt" -FILES_libvte = "${libdir}/*.so.* ${libdir}/girepository-1.0/*" -FILES_${PN}-prompt = "${sysconfdir}/profile.d" - -BBCLASSEXTEND = "native nativesdk" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes-support/vte/vte_0.58.2.bb b/Contrib-Inspur/openbmc/poky/meta/recipes-support/vte/vte_0.58.2.bb new file mode 100644 index 00000000..0ed382a5 --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/meta/recipes-support/vte/vte_0.58.2.bb @@ -0,0 +1,56 @@ +SUMMARY = "Virtual terminal emulator GTK+ widget library" +BUGTRACKER = "https://bugzilla.gnome.org/buglist.cgi?product=vte" +LICENSE = "GPLv3 & LGPLv3+ & LGPLv2.1+" +LICENSE_libvte = "LGPLv3+" + +LIC_FILES_CHKSUM = " \ + file://COPYING.GPL3;md5=2f31b266d3440dd7ee50f92cf67d8e6c \ + file://COPYING.LGPL2;md5=4fbd65380cdd255951079008b364516c \ + file://COPYING.LGPL3;md5=b52f2d57d10c4f7ee67a7eb9615d5d24 \ +" + +DEPENDS = "glib-2.0 gtk+3 libpcre2 libxml2-native gperf-native" + +GNOMEBASEBUILDCLASS = "meson" +GIR_MESON_OPTION = 'gir' + +inherit gnomebase gtk-doc features_check upstream-version-is-even gobject-introspection + +# vapigen.m4 is required when vala is not present (but the one from vala should be used normally) +SRC_URI += "file://0001-app.cc-use-old-school-asignment-to-avoid-gcc-4.8-err.patch \ + file://0002-Add-W_EXITCODE-macro-for-non-glibc-systems.patch \ + " +SRC_URI[archive.md5sum] = "dadbf2c1d9864d3ea185738f97ab63af" +SRC_URI[archive.sha256sum] = "33c966d2b1f2c3b0f9416dbca883fd746159b5bd040350e3b78f8104b2a42bc0" + +ANY_OF_DISTRO_FEATURES = "${GTK3DISTROFEATURES}" + +# Instead of "inherit vala" we do the relevant settings here so we can +# set DEPENDS based on PACKAGECONFIG. + +# Our patched version of Vala looks in STAGING_DATADIR for .vapi files +export STAGING_DATADIR +# Upstream Vala >= 0.11 looks in XDG_DATA_DIRS for .vapi files +export XDG_DATA_DIRS = "${STAGING_DATADIR}" + +# Help g-ir-scanner find the .so for linking +do_compile_prepend() { + export GIR_EXTRA_LIBS_PATH="${B}/src/.libs" +} + +# Package additional files +FILES_${PN}-dev += "${datadir}/vala/vapi/*" + +PACKAGECONFIG ??= "gnutls" +PACKAGECONFIG[vala] = "-Dvapi=true,-Dvapi=false,vala-native vala" +PACKAGECONFIG[gnutls] = "-Dgnutls=true,-Dgnutls=false,gnutls" +# vala requires gir +PACKAGECONFIG_remove_class-native = "vala" + +CFLAGS += "-D_GNU_SOURCE" + +PACKAGES =+ "libvte ${PN}-prompt" +FILES_libvte = "${libdir}/*.so.* ${libdir}/girepository-1.0/*" +FILES_${PN}-prompt = "${sysconfdir}/profile.d" + +BBCLASSEXTEND = "native nativesdk" diff --git a/Contrib-Inspur/openbmc/poky/meta/recipes.txt b/Contrib-Inspur/openbmc/poky/meta/recipes.txt index 9e178d6c..fb2c2501 100644 --- a/Contrib-Inspur/openbmc/poky/meta/recipes.txt +++ b/Contrib-Inspur/openbmc/poky/meta/recipes.txt @@ -3,11 +3,10 @@ recipes-connectivity - Libraries and applications related to communication with recipes-core - What's needed to build a basic working Linux image including commonly used dependencies recipes-devtools - Tools primarily used by the build system (but can also be used on targets) recipes-extended - Applications which whilst not essential add features compared to the alternatives in - core. May be needed for full tool functionality or LSB compliance. + core. May be needed for full tool functionality. recipes-gnome - All things related to the GTK+ application framework recipes-graphics - X and other graphically related system libraries recipes-kernel - The kernel and generic applications/libraries with strong kernel dependencies -recipes-lsb4 - Recipes added for the sole purpose of supporting the Linux Standard Base (LSB) 4.x recipes-multimedia - Codecs and support utilties for audio, images and video recipes-rt - Provides package and image recipes for using and testing the PREEMPT_RT kernel recipes-sato - The Sato demo/reference UI/UX, its associated apps and configuration diff --git a/Contrib-Inspur/openbmc/poky/scripts/buildstats-diff b/Contrib-Inspur/openbmc/poky/scripts/buildstats-diff index c179c935..2f6498ab 100755 --- a/Contrib-Inspur/openbmc/poky/scripts/buildstats-diff +++ b/Contrib-Inspur/openbmc/poky/scripts/buildstats-diff @@ -114,7 +114,7 @@ def print_ver_diff(bs1, bs2): print(fmt_str.format(name, field1, field2, maxlen=maxlen)) -def print_task_diff(bs1, bs2, val_type, min_val=0, min_absdiff=0, sort_by=('absdiff',)): +def print_task_diff(bs1, bs2, val_type, min_val=0, min_absdiff=0, sort_by=('absdiff',), only_tasks=[]): """Diff task execution times""" def val_to_str(val, human_readable=False): """Convert raw value to printable string""" @@ -151,8 +151,9 @@ def print_task_diff(bs1, bs2, val_type, min_val=0, min_absdiff=0, sort_by=('absd """Get cumulative sum of all tasks""" total = 0.0 for recipe_data in buildstats.values(): - for bs_task in recipe_data.tasks.values(): - total += getattr(bs_task, val_type) + for name, bs_task in recipe_data.tasks.items(): + if not only_tasks or name in only_tasks: + total += getattr(bs_task, val_type) return total if min_val: @@ -163,7 +164,7 @@ def print_task_diff(bs1, bs2, val_type, min_val=0, min_absdiff=0, sort_by=('absd val_to_str(min_absdiff, True), val_to_str(min_absdiff))) # Prepare the data - tasks_diff = diff_buildstats(bs1, bs2, val_type, min_val, min_absdiff) + tasks_diff = diff_buildstats(bs1, bs2, val_type, min_val, min_absdiff, only_tasks) # Sort our list for field in reversed(sort_by): @@ -248,6 +249,8 @@ Script for comparing buildstats of two separate builds.""" parser.add_argument('--multi', action='store_true', help="Read all buildstats from the given paths and " "average over them") + parser.add_argument('--only-task', dest='only_tasks', metavar='TASK', action='append', default=[], + help="Only include TASK in report. May be specified multiple times") parser.add_argument('buildstats1', metavar='BUILDSTATS1', help="'Left' buildstat") parser.add_argument('buildstats2', metavar='BUILDSTATS2', help="'Right' buildstat") @@ -266,7 +269,6 @@ Script for comparing buildstats of two separate builds.""" return args - def main(argv=None): """Script entry point""" args = parse_args(argv) @@ -290,7 +292,7 @@ def main(argv=None): print_ver_diff(bs1, bs2) else: print_task_diff(bs1, bs2, args.diff_attr, args.min_val, - args.min_absdiff, sort_by) + args.min_absdiff, sort_by, args.only_tasks) except ScriptError as err: log.error(str(err)) return 1 diff --git a/Contrib-Inspur/openbmc/poky/scripts/contrib/ddimage b/Contrib-Inspur/openbmc/poky/scripts/contrib/ddimage index b577d1ca..7f2ad112 100755 --- a/Contrib-Inspur/openbmc/poky/scripts/contrib/ddimage +++ b/Contrib-Inspur/openbmc/poky/scripts/contrib/ddimage @@ -3,10 +3,6 @@ # SPDX-License-Identifier: GPL-2.0-only # -# Default to avoiding the first two disks on typical Linux and Mac OS installs -# Better safe than sorry :-) -BLACKLIST_DEVICES="/dev/sda /dev/sdb /dev/disk1 /dev/disk2" - # 1MB blocksize BLOCKSIZE=1048576 @@ -32,7 +28,6 @@ image_details() { } device_details() { - DEV=$1 BLOCK_SIZE=512 echo "Device details" @@ -45,11 +40,17 @@ device_details() { fi # Default / Linux information collection - echo " device: $DEVICE" + ACTUAL_DEVICE=`readlink -f $DEVICE` + DEV=`basename $ACTUAL_DEVICE` + if [ "$ACTUAL_DEVICE" != "$DEVICE" ] ; then + echo " device: $DEVICE -> $ACTUAL_DEVICE" + else + echo " device: $DEVICE" + fi if [ -f "/sys/class/block/$DEV/device/vendor" ]; then echo " vendor: $(cat /sys/class/block/$DEV/device/vendor)" else - echo " vendor: UNKOWN" + echo " vendor: UNKNOWN" fi if [ -f "/sys/class/block/$DEV/device/model" ]; then echo " model: $(cat /sys/class/block/$DEV/device/model)" @@ -64,6 +65,49 @@ device_details() { echo "" } +check_mount_device() { + if cat /proc/self/mounts | awk '{ print $1 }' | grep /dev/ | grep -q -E "^$1$" ; then + return 0 + fi + return 1 +} + +is_mounted() { + if [ "$(uname)" = "Darwin" ]; then + if df | awk '{ print $1 }' | grep /dev/ | grep -q -E "^$1(s[0-9]+)?$" ; then + return 0 + fi + else + if check_mount_device $1 ; then + return 0 + fi + DEV=`basename $1` + if [ -d /sys/class/block/$DEV/ ] ; then + PARENT_BLKDEV=`basename $(readlink -f "/sys/class/block/$DEV/..")` + if [ "$PARENT_BLKDEV" != "block" ] ; then + if check_mount_device $PARENT_BLKDEV ; then + return 0 + fi + fi + for CHILD_BLKDEV in `find /sys/class/block/$DEV/ -mindepth 1 -maxdepth 1 -name "$DEV*" -type d` + do + if check_mount_device /dev/`basename $CHILD_BLKDEV` ; then + return 0 + fi + done + fi + fi + return 1 +} + +is_inuse() { + HOLDERS_DIR="/sys/class/block/`basename $1`/holders" + if [ -d $HOLDERS_DIR ] && [ `ls -A $HOLDERS_DIR` ] ; then + return 0 + fi + return 1 +} + if [ $# -ne 2 ]; then usage exit 1 @@ -78,22 +122,37 @@ if [ ! -e "$IMAGE" ]; then exit 1 fi +if [ ! -e "$DEVICE" ]; then + echo "ERROR: Device $DEVICE does not exist" + usage + exit 1 +fi -for i in ${BLACKLIST_DEVICES}; do - if [ "$i" = "$DEVICE" ]; then - echo "ERROR: Device $DEVICE is blacklisted" - exit 1 - fi -done +if [ "$(uname)" = "Darwin" ]; then + # readlink doesn't support -f on MacOS, just assume it isn't a symlink + ACTUAL_DEVICE=$DEVICE +else + ACTUAL_DEVICE=`readlink -f $DEVICE` +fi +if is_mounted $ACTUAL_DEVICE ; then + echo "ERROR: Device $DEVICE is currently mounted - check if this is the right device, and unmount it first if so" + device_details + exit 1 +fi +if is_inuse $ACTUAL_DEVICE ; then + echo "ERROR: Device $DEVICE is currently in use (possibly part of LVM) - check if this is the right device!" + device_details + exit 1 +fi if [ ! -w "$DEVICE" ]; then - echo "ERROR: Device $DEVICE does not exist or is not writable" + echo "ERROR: Device $DEVICE is not writable - possibly use sudo?" usage exit 1 fi image_details $IMAGE -device_details $(basename $DEVICE) +device_details printf "Write $IMAGE to $DEVICE [y/N]? " read RESPONSE diff --git a/Contrib-Inspur/openbmc/poky/scripts/contrib/list-packageconfig-flags.py b/Contrib-Inspur/openbmc/poky/scripts/contrib/list-packageconfig-flags.py index b1d6c852..d6de4dc8 100755 --- a/Contrib-Inspur/openbmc/poky/scripts/contrib/list-packageconfig-flags.py +++ b/Contrib-Inspur/openbmc/poky/scripts/contrib/list-packageconfig-flags.py @@ -65,7 +65,7 @@ def collect_pkgs(data_dict): for fn in data_dict: pkgconfigflags = data_dict[fn].getVarFlags("PACKAGECONFIG") pkgconfigflags.pop('doc', None) - pkgname = data_dict[fn].getVar("P") + pkgname = data_dict[fn].getVar("PN") pkg_dict[pkgname] = sorted(pkgconfigflags.keys()) return pkg_dict diff --git a/Contrib-Inspur/openbmc/poky/scripts/create-pull-request b/Contrib-Inspur/openbmc/poky/scripts/create-pull-request index 3ce03d6c..8eefcf63 100755 --- a/Contrib-Inspur/openbmc/poky/scripts/create-pull-request +++ b/Contrib-Inspur/openbmc/poky/scripts/create-pull-request @@ -123,20 +123,12 @@ fi # Rewrite private URLs to public URLs # Determine the repository name for use in the WEB_URL later -case "$REMOTE_URL" in -*@*) - USER_RE="[A-Za-z0-9_.@][A-Za-z0-9_.@-]*\$\?" - PROTO_RE="[a-z][a-z+]*://" - GIT_RE="\(^\($PROTO_RE\)\?$USER_RE@\)\([^:/]*\)[:/]\(.*\)" - REMOTE_URL=${REMOTE_URL%.git} - REMOTE_REPO=$(echo $REMOTE_URL | sed "s#$GIT_RE#\4#") - REMOTE_URL=$(echo $REMOTE_URL | sed "s#$GIT_RE#git://\3/\4#") - ;; -*) - echo "WARNING: Unrecognized remote URL: $REMOTE_URL" - echo " The pull and browse URLs will likely be incorrect" - ;; -esac +USER_RE="[A-Za-z0-9_.@][A-Za-z0-9_.@-]*\$\?" +PROTO_RE="[a-z][a-z+]*://" +GIT_RE="\(^\($PROTO_RE\)\?\)\($USER_RE@\)\?\([^:/]*\)[:/]\(.*\)" +REMOTE_URL=${REMOTE_URL%.git} +REMOTE_REPO=$(echo $REMOTE_URL | sed "s#$GIT_RE#\5#") +REMOTE_URL=$(echo $REMOTE_URL | sed "s#$GIT_RE#git://\4/\5#") if [ -z "$BRANCH" ]; then BRANCH=$(git branch | grep -e "^\* " | cut -d' ' -f2) @@ -265,7 +257,7 @@ fi # Replace the SUBJECT token with it. if [ -n "$SUBJECT" ]; then - sed -i -e "s/\*\*\* SUBJECT HERE \*\*\*/$SUBJECT/" "$CL" + sed -i -e "s\`\*\*\* SUBJECT HERE \*\*\*\`$SUBJECT\`" "$CL" fi diff --git a/Contrib-Inspur/openbmc/poky/scripts/gen-lockedsig-cache b/Contrib-Inspur/openbmc/poky/scripts/gen-lockedsig-cache index e3076e11..9bfae9d8 100755 --- a/Contrib-Inspur/openbmc/poky/scripts/gen-lockedsig-cache +++ b/Contrib-Inspur/openbmc/poky/scripts/gen-lockedsig-cache @@ -5,9 +5,9 @@ import os import sys -import glob import shutil import errno +import time def mkdir(d): try: @@ -16,6 +16,38 @@ def mkdir(d): if e.errno != errno.EEXIST: raise e +# extract the hash from past the last colon to last underscore +def extract_sha(filename): + return filename.split(':')[7].split('_')[0] + +# get all files in a directory, extract hash and make +# a map from hash to list of file with that hash +def map_sha_to_files(dir_, prefix, sha_map): + sstate_prefix_path = dir_ + '/' + prefix + '/' + if not os.path.exists(sstate_prefix_path): + return + sstate_files = os.listdir(sstate_prefix_path) + for f in sstate_files: + try: + sha = extract_sha(f) + if sha not in sha_map: + sha_map[sha] = [] + sha_map[sha].append(sstate_prefix_path + f) + except IndexError: + continue + +# given a prefix build a map of hash to list of files +def build_sha_cache(prefix): + sha_map = {} + + sstate_dir = sys.argv[2] + map_sha_to_files(sstate_dir, prefix, sha_map) + + native_sstate_dir = sys.argv[2] + '/' + sys.argv[4] + map_sha_to_files(native_sstate_dir, prefix, sha_map) + + return sha_map + if len(sys.argv) < 5: print("Incorrect number of arguments specified") print("syntax: gen-lockedsig-cache [filterfile]") @@ -41,12 +73,19 @@ with open(sys.argv[1]) as f: sigs.append(sig) print('Gathering file list') +start_time = time.perf_counter() files = set() +sstate_content_cache = {} for s in sigs: - p = sys.argv[2] + "/" + s[:2] + "/*" + s + "*" - files |= set(glob.glob(p)) - p = sys.argv[2] + "/%s/" % sys.argv[4] + s[:2] + "/*" + s + "*" - files |= set(glob.glob(p)) + prefix = s[:2] + if prefix not in sstate_content_cache: + sstate_content_cache[prefix] = build_sha_cache(prefix) + + for f in sstate_content_cache[prefix][s]: + files.add(f) + +elapsed = time.perf_counter() - start_time +print("Gathering file list took %.1fs" % elapsed) print('Processing files') for f in files: diff --git a/Contrib-Inspur/openbmc/poky/scripts/lib/buildstats.py b/Contrib-Inspur/openbmc/poky/scripts/lib/buildstats.py index 1adab06e..c69b5bf4 100644 --- a/Contrib-Inspur/openbmc/poky/scripts/lib/buildstats.py +++ b/Contrib-Inspur/openbmc/poky/scripts/lib/buildstats.py @@ -261,13 +261,17 @@ def aggregate(self, buildstats): self[pkg].aggregate(data) -def diff_buildstats(bs1, bs2, stat_attr, min_val=None, min_absdiff=None): +def diff_buildstats(bs1, bs2, stat_attr, min_val=None, min_absdiff=None, only_tasks=[]): """Compare the tasks of two buildstats""" tasks_diff = [] pkgs = set(bs1.keys()).union(set(bs2.keys())) for pkg in pkgs: tasks1 = bs1[pkg].tasks if pkg in bs1 else {} tasks2 = bs2[pkg].tasks if pkg in bs2 else {} + if only_tasks: + tasks1 = {k: v for k, v in tasks1.items() if k in only_tasks} + tasks2 = {k: v for k, v in tasks2.items() if k in only_tasks} + if not tasks1: pkg_op = '+' elif not tasks2: diff --git a/Contrib-Inspur/openbmc/poky/scripts/lib/checklayer/__init__.py b/Contrib-Inspur/openbmc/poky/scripts/lib/checklayer/__init__.py index 8244cf07..5aeec2f0 100644 --- a/Contrib-Inspur/openbmc/poky/scripts/lib/checklayer/__init__.py +++ b/Contrib-Inspur/openbmc/poky/scripts/lib/checklayer/__init__.py @@ -245,7 +245,7 @@ def get_signatures(builddir, failsafe=False, machine=None): sigs = {} tune2tasks = {} - cmd = '' + cmd = 'BB_ENV_EXTRAWHITE="$BB_ENV_EXTRAWHITE BB_SIGNATURE_HANDLER" BB_SIGNATURE_HANDLER="OEBasicHash" ' if machine: cmd += 'MACHINE=%s ' % machine cmd += 'bitbake ' diff --git a/Contrib-Inspur/openbmc/poky/scripts/lib/checklayer/cases/common.py b/Contrib-Inspur/openbmc/poky/scripts/lib/checklayer/cases/common.py index 8ffe028b..b82304e3 100644 --- a/Contrib-Inspur/openbmc/poky/scripts/lib/checklayer/cases/common.py +++ b/Contrib-Inspur/openbmc/poky/scripts/lib/checklayer/cases/common.py @@ -12,7 +12,7 @@ class CommonCheckLayer(OECheckLayerTestCase): def test_readme(self): # The top-level README file may have a suffix (like README.rst or README.txt). - readme_files = glob.glob(os.path.join(self.tc.layer['path'], 'README*')) + readme_files = glob.glob(os.path.join(self.tc.layer['path'], '[Rr][Ee][Aa][Dd][Mm][Ee]*')) self.assertTrue(len(readme_files) > 0, msg="Layer doesn't contains README file.") diff --git a/Contrib-Inspur/openbmc/poky/scripts/lib/devtool/build.py b/Contrib-Inspur/openbmc/poky/scripts/lib/devtool/build.py index 7543398d..935ffab4 100644 --- a/Contrib-Inspur/openbmc/poky/scripts/lib/devtool/build.py +++ b/Contrib-Inspur/openbmc/poky/scripts/lib/devtool/build.py @@ -11,7 +11,8 @@ import logging import argparse import tempfile -from devtool import exec_build_env_command, check_workspace_recipe, DevtoolError +from devtool import exec_build_env_command, setup_tinfoil, check_workspace_recipe, DevtoolError +from devtool import parse_recipe logger = logging.getLogger('devtool') @@ -43,12 +44,22 @@ def _get_build_tasks(config): def build(args, config, basepath, workspace): """Entry point for the devtool 'build' subcommand""" workspacepn = check_workspace_recipe(workspace, args.recipename, bbclassextend=True) + tinfoil = setup_tinfoil(config_only=False, basepath=basepath) + try: + rd = parse_recipe(config, tinfoil, args.recipename, appends=True, filter_workspace=False) + if not rd: + return 1 + deploytask = 'do_deploy' in rd.getVar('__BBTASKS') + finally: + tinfoil.shutdown() if args.clean: # use clean instead of cleansstate to avoid messing things up in eSDK build_tasks = ['do_clean'] else: build_tasks = _get_build_tasks(config) + if deploytask: + build_tasks.append('do_deploy') bbappend = workspace[workspacepn]['bbappend'] if args.disable_parallel_make: diff --git a/Contrib-Inspur/openbmc/poky/scripts/lib/devtool/deploy.py b/Contrib-Inspur/openbmc/poky/scripts/lib/devtool/deploy.py index d1ce2309..6a997735 100644 --- a/Contrib-Inspur/openbmc/poky/scripts/lib/devtool/deploy.py +++ b/Contrib-Inspur/openbmc/poky/scripts/lib/devtool/deploy.py @@ -212,6 +212,9 @@ def deploy(args, config, basepath, workspace): scp_port = "-P %s" % args.port ssh_port = "-p %s" % args.port + if args.key: + extraoptions += ' -i %s' % args.key + # In order to delete previously deployed files and have the manifest file on # the target, we write out a shell script and then copy it to the target # so we can then run it (piping tar output to it). @@ -326,6 +329,8 @@ def register_commands(subparsers, context): parser_deploy.add_argument('--no-check-space', help='Do not check for available space before deploying', action='store_true') parser_deploy.add_argument('-e', '--ssh-exec', help='Executable to use in place of ssh') parser_deploy.add_argument('-P', '--port', help='Specify port to use for connection to the target') + parser_deploy.add_argument('-I', '--key', + help='Specifiy ssh private key for connection to the target') strip_opts = parser_deploy.add_mutually_exclusive_group(required=False) strip_opts.add_argument('-S', '--strip', @@ -349,4 +354,7 @@ def register_commands(subparsers, context): parser_undeploy.add_argument('-n', '--dry-run', help='List files to be undeployed only', action='store_true') parser_undeploy.add_argument('-e', '--ssh-exec', help='Executable to use in place of ssh') parser_undeploy.add_argument('-P', '--port', help='Specify port to use for connection to the target') + parser_undeploy.add_argument('-I', '--key', + help='Specifiy ssh private key for connection to the target') + parser_undeploy.set_defaults(func=undeploy) diff --git a/Contrib-Inspur/openbmc/poky/scripts/lib/devtool/menuconfig.py b/Contrib-Inspur/openbmc/poky/scripts/lib/devtool/menuconfig.py new file mode 100644 index 00000000..95384c53 --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/scripts/lib/devtool/menuconfig.py @@ -0,0 +1,79 @@ +# OpenEmbedded Development tool - menuconfig command plugin +# +# Copyright (C) 2018 Xilinx +# Written by: Chandana Kalluri +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License version 2 as +# published by the Free Software Foundation. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License along +# with this program; if not, write to the Free Software Foundation, Inc., +# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + +"""Devtool menuconfig plugin""" + +import os +import bb +import logging +import argparse +import re +import glob +from devtool import setup_tinfoil, parse_recipe, DevtoolError, standard, exec_build_env_command +from devtool import check_workspace_recipe +logger = logging.getLogger('devtool') + +def menuconfig(args, config, basepath, workspace): + """Entry point for the devtool 'menuconfig' subcommand""" + + rd = "" + kconfigpath = "" + pn_src = "" + localfilesdir = "" + workspace_dir = "" + tinfoil = setup_tinfoil(basepath=basepath) + try: + rd = parse_recipe(config, tinfoil, args.component, appends=True, filter_workspace=False) + if not rd: + return 1 + + check_workspace_recipe(workspace, args.component) + pn = rd.getVar('PN', True) + + if not rd.getVarFlag('do_menuconfig','task'): + raise DevtoolError("This recipe does not support menuconfig option") + + workspace_dir = os.path.join(config.workspace_path,'sources') + kconfigpath = rd.getVar('B') + pn_src = os.path.join(workspace_dir,pn) + + # add check to see if oe_local_files exists or not + localfilesdir = os.path.join(pn_src,'oe-local-files') + if not os.path.exists(localfilesdir): + bb.utils.mkdirhier(localfilesdir) + # Add gitignore to ensure source tree is clean + gitignorefile = os.path.join(localfilesdir,'.gitignore') + with open(gitignorefile, 'w') as f: + f.write('# Ignore local files, by default. Remove this file if you want to commit the directory to Git\n') + f.write('*\n') + + finally: + tinfoil.shutdown() + + logger.info('Launching menuconfig') + exec_build_env_command(config.init_path, basepath, 'bitbake -c menuconfig %s' % pn, watch=True) + fragment = os.path.join(localfilesdir, 'devtool-fragment.cfg') + res = standard._create_kconfig_diff(pn_src,rd,fragment) + + return 0 + +def register_commands(subparsers, context): + """register devtool subcommands from this plugin""" + parser_menuconfig = subparsers.add_parser('menuconfig',help='Alter build-time configuration for a recipe', description='Launches the make menuconfig command (for recipes where do_menuconfig is available), allowing users to make changes to the build-time configuration. Creates a config fragment corresponding to changes made.', group='advanced') + parser_menuconfig.add_argument('component', help='compenent to alter config') + parser_menuconfig.set_defaults(func=menuconfig,fixed_setup=context.fixed_setup) diff --git a/Contrib-Inspur/openbmc/poky/scripts/lib/devtool/standard.py b/Contrib-Inspur/openbmc/poky/scripts/lib/devtool/standard.py index aca74b1f..1c0cd8ab 100644 --- a/Contrib-Inspur/openbmc/poky/scripts/lib/devtool/standard.py +++ b/Contrib-Inspur/openbmc/poky/scripts/lib/devtool/standard.py @@ -461,11 +461,37 @@ def sync(args, config, basepath, workspace): finally: tinfoil.shutdown() +def symlink_oelocal_files_srctree(rd,srctree): + import oe.patch + if os.path.abspath(rd.getVar('S')) == os.path.abspath(rd.getVar('WORKDIR')): + # If recipe extracts to ${WORKDIR}, symlink the files into the srctree + # (otherwise the recipe won't build as expected) + local_files_dir = os.path.join(srctree, 'oe-local-files') + addfiles = [] + for root, _, files in os.walk(local_files_dir): + relpth = os.path.relpath(root, local_files_dir) + if relpth != '.': + bb.utils.mkdirhier(os.path.join(srctree, relpth)) + for fn in files: + if fn == '.gitignore': + continue + destpth = os.path.join(srctree, relpth, fn) + if os.path.exists(destpth): + os.unlink(destpth) + os.symlink('oe-local-files/%s' % fn, destpth) + addfiles.append(os.path.join(relpth, fn)) + if addfiles: + bb.process.run('git add %s' % ' '.join(addfiles), cwd=srctree) + useroptions = [] + oe.patch.GitApplyTree.gitCommandUserOptions(useroptions, d=rd) + bb.process.run('git %s commit -m "Committing local file symlinks\n\n%s"' % (' '.join(useroptions), oe.patch.GitApplyTree.ignore_commit_prefix), cwd=srctree) + def _extract_source(srctree, keep_temp, devbranch, sync, config, basepath, workspace, fixed_setup, d, tinfoil, no_overrides=False): """Extract sources of a recipe""" import oe.recipeutils import oe.patch + import oe.path pn = d.getVar('PN') @@ -562,7 +588,7 @@ def _extract_source(srctree, keep_temp, devbranch, sync, config, basepath, works with open(preservestampfile, 'w') as f: f.write(d.getVar('STAMP')) try: - if bb.data.inherits_class('kernel-yocto', d): + if is_kernel_yocto: # We need to generate the kernel config task = 'do_configure' else: @@ -589,6 +615,23 @@ def _extract_source(srctree, keep_temp, devbranch, sync, config, basepath, works raise DevtoolError('Something went wrong with source extraction - the devtool-source class was not active or did not function correctly:\n%s' % str(e)) srcsubdir_rel = os.path.relpath(srcsubdir, os.path.join(tempdir, 'workdir')) + # Check if work-shared is empty, if yes + # find source and copy to work-shared + if is_kernel_yocto: + workshareddir = d.getVar('STAGING_KERNEL_DIR') + staging_kerVer = get_staging_kver(workshareddir) + kernelVersion = d.getVar('LINUX_VERSION') + + # handle dangling symbolic link in work-shared: + if os.path.islink(workshareddir): + os.unlink(workshareddir) + + if os.path.exists(workshareddir) and (not os.listdir(workshareddir) or kernelVersion != staging_kerVer): + shutil.rmtree(workshareddir) + oe.path.copyhardlinktree(srcsubdir,workshareddir) + elif not os.path.exists(workshareddir): + oe.path.copyhardlinktree(srcsubdir,workshareddir) + tempdir_localdir = os.path.join(tempdir, 'oe-local-files') srctree_localdir = os.path.join(srctree, 'oe-local-files') @@ -617,29 +660,7 @@ def _extract_source(srctree, keep_temp, devbranch, sync, config, basepath, works shutil.move(tempdir_localdir, srcsubdir) shutil.move(srcsubdir, srctree) - - if os.path.abspath(d.getVar('S')) == os.path.abspath(d.getVar('WORKDIR')): - # If recipe extracts to ${WORKDIR}, symlink the files into the srctree - # (otherwise the recipe won't build as expected) - local_files_dir = os.path.join(srctree, 'oe-local-files') - addfiles = [] - for root, _, files in os.walk(local_files_dir): - relpth = os.path.relpath(root, local_files_dir) - if relpth != '.': - bb.utils.mkdirhier(os.path.join(srctree, relpth)) - for fn in files: - if fn == '.gitignore': - continue - destpth = os.path.join(srctree, relpth, fn) - if os.path.exists(destpth): - os.unlink(destpth) - os.symlink('oe-local-files/%s' % fn, destpth) - addfiles.append(os.path.join(relpth, fn)) - if addfiles: - bb.process.run('git add %s' % ' '.join(addfiles), cwd=srctree) - useroptions = [] - oe.patch.GitApplyTree.gitCommandUserOptions(useroptions, d=d) - bb.process.run('git %s commit -a -m "Committing local file symlinks\n\n%s"' % (' '.join(useroptions), oe.patch.GitApplyTree.ignore_commit_prefix), cwd=srctree) + symlink_oelocal_files_srctree(d,srctree) if is_kernel_yocto: logger.info('Copying kernel config to srctree') @@ -707,11 +728,31 @@ def _check_preserve(config, recipename): tf.write(line) os.rename(newfile, origfile) +def get_staging_kver(srcdir): + # Kernel version from work-shared + kerver = [] + staging_kerVer="" + if os.path.exists(srcdir) and os.listdir(srcdir): + with open(os.path.join(srcdir,"Makefile")) as f: + version = [next(f) for x in range(5)][1:4] + for word in version: + kerver.append(word.split('= ')[1].split('\n')[0]) + staging_kerVer = ".".join(kerver) + return staging_kerVer + +def get_staging_kbranch(srcdir): + staging_kbranch = "" + if os.path.exists(srcdir) and os.listdir(srcdir): + (branch, _) = bb.process.run('git branch | grep \* | cut -d \' \' -f2', cwd=srcdir) + staging_kbranch = "".join(branch.split('\n')[0]) + return staging_kbranch + def modify(args, config, basepath, workspace): """Entry point for the devtool 'modify' subcommand""" import bb import oe.recipeutils import oe.patch + import oe.path if args.recipename in workspace: raise DevtoolError("recipe %s is already in your workspace" % @@ -753,6 +794,59 @@ def modify(args, config, basepath, workspace): initial_rev = None commits = [] check_commits = False + + if bb.data.inherits_class('kernel-yocto', rd): + # Current set kernel version + kernelVersion = rd.getVar('LINUX_VERSION') + srcdir = rd.getVar('STAGING_KERNEL_DIR') + kbranch = rd.getVar('KBRANCH') + + staging_kerVer = get_staging_kver(srcdir) + staging_kbranch = get_staging_kbranch(srcdir) + if (os.path.exists(srcdir) and os.listdir(srcdir)) and (kernelVersion in staging_kerVer and staging_kbranch == kbranch): + oe.path.copyhardlinktree(srcdir,srctree) + workdir = rd.getVar('WORKDIR') + srcsubdir = rd.getVar('S') + localfilesdir = os.path.join(srctree,'oe-local-files') + # Move local source files into separate subdir + recipe_patches = [os.path.basename(patch) for patch in oe.recipeutils.get_recipe_patches(rd)] + local_files = oe.recipeutils.get_recipe_local_files(rd) + + for key in local_files.copy(): + if key.endswith('scc'): + sccfile = open(local_files[key], 'r') + for l in sccfile: + line = l.split() + if line and line[0] in ('kconf', 'patch'): + cfg = os.path.join(os.path.dirname(local_files[key]), line[-1]) + if not cfg in local_files.values(): + local_files[line[-1]] = cfg + shutil.copy2(cfg, workdir) + sccfile.close() + + # Ignore local files with subdir={BP} + srcabspath = os.path.abspath(srcsubdir) + local_files = [fname for fname in local_files if os.path.exists(os.path.join(workdir, fname)) and (srcabspath == workdir or not os.path.join(workdir, fname).startswith(srcabspath + os.sep))] + if local_files: + for fname in local_files: + _move_file(os.path.join(workdir, fname), os.path.join(srctree, 'oe-local-files', fname)) + with open(os.path.join(srctree, 'oe-local-files', '.gitignore'), 'w') as f: + f.write('# Ignore local files, by default. Remove this file ''if you want to commit the directory to Git\n*\n') + + symlink_oelocal_files_srctree(rd,srctree) + + task = 'do_configure' + res = tinfoil.build_targets(pn, task, handle_events=True) + + # Copy .config to workspace + kconfpath = rd.getVar('B') + logger.info('Copying kernel config to workspace') + shutil.copy2(os.path.join(kconfpath, '.config'),srctree) + + # Set this to true, we still need to get initial_rev + # by parsing the git repo + args.no_extract = True + if not args.no_extract: initial_rev, _ = _extract_source(srctree, args.keep_temp, args.branch, False, config, basepath, workspace, args.fixed_setup, rd, tinfoil, no_overrides=args.no_overrides) if not initial_rev: @@ -844,6 +938,11 @@ def modify(args, config, basepath, workspace): ' cp ${B}/.config ${S}/.config.baseline\n' ' ln -sfT ${B}/.config ${S}/.config.new\n' '}\n') + if rd.getVarFlag('do_menuconfig','task'): + f.write('\ndo_configure_append() {\n' + ' cp ${B}/.config ${S}/.config.baseline\n' + ' ln -sfT ${B}/.config ${S}/.config.new\n' + '}\n') if initial_rev: f.write('\n# initial_rev: %s\n' % initial_rev) for commit in commits: @@ -1520,17 +1619,17 @@ def _update_recipe_patch(recipename, workspace, srctree, rd, appendlayerdir, wil patches_dir, changed_revs) logger.debug('Pre-filtering: update: %s, new: %s' % (dict(upd_p), dict(new_p))) if filter_patches: - new_p = {} - upd_p = {k:v for k,v in upd_p.items() if k in filter_patches} + new_p = OrderedDict() + upd_p = OrderedDict((k,v) for k,v in upd_p.items() if k in filter_patches) remove_files = [f for f in remove_files if f in filter_patches] updatefiles = False updaterecipe = False destpath = None srcuri = (rd.getVar('SRC_URI', False) or '').split() if appendlayerdir: - files = dict((os.path.join(local_files_dir, key), val) for + files = OrderedDict((os.path.join(local_files_dir, key), val) for key, val in list(upd_f.items()) + list(new_f.items())) - files.update(dict((os.path.join(patches_dir, key), val) for + files.update(OrderedDict((os.path.join(patches_dir, key), val) for key, val in list(upd_p.items()) + list(new_p.items()))) if files or remove_files: removevalues = None @@ -1753,7 +1852,7 @@ def status(args, config, basepath, workspace): return 0 -def _reset(recipes, no_clean, config, basepath, workspace): +def _reset(recipes, no_clean, remove_work, config, basepath, workspace): """Reset one or more recipes""" import oe.path @@ -1831,10 +1930,15 @@ def preservedir(origdir): srctreebase = workspace[pn]['srctreebase'] if os.path.isdir(srctreebase): if os.listdir(srctreebase): - # We don't want to risk wiping out any work in progress - logger.info('Leaving source tree %s as-is; if you no ' - 'longer need it then please delete it manually' - % srctreebase) + if remove_work: + logger.info('-r argument used on %s, removing source tree.' + ' You will lose any unsaved work' %pn) + shutil.rmtree(srctreebase) + else: + # We don't want to risk wiping out any work in progress + logger.info('Leaving source tree %s as-is; if you no ' + 'longer need it then please delete it manually' + % srctreebase) else: # This is unlikely, but if it's empty we can just remove it os.rmdir(srctreebase) @@ -1844,6 +1948,10 @@ def preservedir(origdir): def reset(args, config, basepath, workspace): """Entry point for the devtool 'reset' subcommand""" import bb + import shutil + + recipes = "" + if args.recipename: if args.all: raise DevtoolError("Recipe cannot be specified if -a/--all is used") @@ -1858,7 +1966,7 @@ def reset(args, config, basepath, workspace): else: recipes = args.recipename - _reset(recipes, args.no_clean, config, basepath, workspace) + _reset(recipes, args.no_clean, args.remove_work, config, basepath, workspace) return 0 @@ -1866,13 +1974,27 @@ def reset(args, config, basepath, workspace): def _get_layer(layername, d): """Determine the base layer path for the specified layer name/path""" layerdirs = d.getVar('BBLAYERS').split() - layers = {os.path.basename(p): p for p in layerdirs} + layers = {} # {basename: layer_paths} + for p in layerdirs: + bn = os.path.basename(p) + if bn not in layers: + layers[bn] = [p] + else: + layers[bn].append(p) # Provide some shortcuts if layername.lower() in ['oe-core', 'openembedded-core']: - layerdir = layers.get('meta', None) + layername = 'meta' + layer_paths = layers.get(layername, None) + if not layer_paths: + return os.path.abspath(layername) + elif len(layer_paths) == 1: + return os.path.abspath(layer_paths[0]) else: - layerdir = layers.get(layername, None) - return os.path.abspath(layerdir or layername) + # multiple layers having the same base name + logger.warning("Multiple layers have the same base name '%s', use the first one '%s'." % (layername, layer_paths[0])) + logger.warning("Consider using path instead of base name to specify layer:\n\t\t%s" % '\n\t\t'.join(layer_paths)) + return os.path.abspath(layer_paths[0]) + def finish(args, config, basepath, workspace): """Entry point for the devtool 'finish' subcommand""" @@ -1895,7 +2017,8 @@ def finish(args, config, basepath, workspace): else: raise DevtoolError('Source tree is not clean:\n\n%s\nEnsure you have committed your changes or use -f/--force if you are sure there\'s nothing that needs to be committed' % dirty) - no_clean = False + no_clean = args.no_clean + remove_work=args.remove_work tinfoil = setup_tinfoil(basepath=basepath, tracking=True) try: rd = parse_recipe(config, tinfoil, args.recipename, True) @@ -2047,7 +2170,7 @@ def finish(args, config, basepath, workspace): if args.dry_run: logger.info('Resetting recipe (dry-run)') else: - _reset([args.recipename], no_clean=no_clean, config=config, basepath=basepath, workspace=workspace) + _reset([args.recipename], no_clean=no_clean, remove_work=remove_work, config=config, basepath=basepath, workspace=workspace) return 0 @@ -2159,6 +2282,7 @@ def register_commands(subparsers, context): parser_reset.add_argument('recipename', nargs='*', help='Recipe to reset') parser_reset.add_argument('--all', '-a', action="store_true", help='Reset all recipes (clear workspace)') parser_reset.add_argument('--no-clean', '-n', action="store_true", help='Don\'t clean the sysroot to remove recipe output') + parser_reset.add_argument('--remove-work', '-r', action="store_true", help='Clean the sources directory along with append') parser_reset.set_defaults(func=reset) parser_finish = subparsers.add_parser('finish', help='Finish working on a recipe in your workspace', @@ -2169,6 +2293,8 @@ def register_commands(subparsers, context): parser_finish.add_argument('--mode', '-m', choices=['patch', 'srcrev', 'auto'], default='auto', help='Update mode (where %(metavar)s is %(choices)s; default is %(default)s)', metavar='MODE') parser_finish.add_argument('--initial-rev', help='Override starting revision for patches') parser_finish.add_argument('--force', '-f', action="store_true", help='Force continuing even if there are uncommitted changes in the source tree repository') + parser_finish.add_argument('--remove-work', '-r', action="store_true", help='Clean the sources directory under workspace') + parser_finish.add_argument('--no-clean', '-n', action="store_true", help='Don\'t clean the sysroot to remove recipe output') parser_finish.add_argument('--no-overrides', '-O', action="store_true", help='Do not handle other override branches (if they exist)') parser_finish.add_argument('--dry-run', '-N', action="store_true", help='Dry-run (just report changes instead of writing them)') parser_finish.add_argument('--force-patch-refresh', action="store_true", help='Update patches in the layer even if they have not been modified (useful for refreshing patch context)') diff --git a/Contrib-Inspur/openbmc/poky/scripts/lib/devtool/upgrade.py b/Contrib-Inspur/openbmc/poky/scripts/lib/devtool/upgrade.py index 62ec2f94..cb6dce37 100644 --- a/Contrib-Inspur/openbmc/poky/scripts/lib/devtool/upgrade.py +++ b/Contrib-Inspur/openbmc/poky/scripts/lib/devtool/upgrade.py @@ -32,7 +32,7 @@ def _run(cmd, cwd=''): def _get_srctree(tmpdir): srctree = tmpdir - dirs = os.listdir(tmpdir) + dirs = scriptutils.filter_src_subdirs(tmpdir) if len(dirs) == 1: srctree = os.path.join(tmpdir, dirs[0]) return srctree @@ -122,18 +122,22 @@ def _cleanup_on_error(rf, srctree): rfp = os.path.split(rf)[0] # recipe folder rfpp = os.path.split(rfp)[0] # recipes folder if os.path.exists(rfp): - shutil.rmtree(b) + shutil.rmtree(rfp) if not len(os.listdir(rfpp)): os.rmdir(rfpp) srctree = os.path.abspath(srctree) if os.path.exists(srctree): shutil.rmtree(srctree) -def _upgrade_error(e, rf, srctree): - if rf: - cleanup_on_error(rf, srctree) +def _upgrade_error(e, rf, srctree, keep_failure=False, extramsg=None): + if rf and not keep_failure: + _cleanup_on_error(rf, srctree) logger.error(e) - raise DevtoolError(e) + if extramsg: + logger.error(extramsg) + if keep_failure: + logger.info('Preserving failed upgrade files (--keep-failure)') + sys.exit(1) def _get_uri(rd): srcuris = rd.getVar('SRC_URI').split() @@ -277,6 +281,8 @@ def __run(cmd): logger.info('Preserving temporary directory %s' % tmpsrctree) else: shutil.rmtree(tmpsrctree) + if tmpdir != tmpsrctree: + shutil.rmtree(tmpdir) return (rev, md5, sha256, srcbranch, srcsubdir_rel) @@ -299,7 +305,7 @@ def _add_license_diff_to_recipe(path, diff): f.write("\n#\n\n".encode()) f.write(orig_content) -def _create_new_recipe(newpv, md5, sha256, srcrev, srcbranch, srcsubdir_old, srcsubdir_new, workspace, tinfoil, rd, license_diff, new_licenses): +def _create_new_recipe(newpv, md5, sha256, srcrev, srcbranch, srcsubdir_old, srcsubdir_new, workspace, tinfoil, rd, license_diff, new_licenses, srctree, keep_failure): """Creates the new recipe under workspace""" bpn = rd.getVar('BPN') @@ -416,7 +422,10 @@ def _create_new_recipe(newpv, md5, sha256, srcrev, srcbranch, srcsubdir_old, src newvalues["LIC_FILES_CHKSUM"] = newlicchksum _add_license_diff_to_recipe(fullpath, license_diff) - rd = tinfoil.parse_recipe_file(fullpath, False) + try: + rd = tinfoil.parse_recipe_file(fullpath, False) + except bb.tinfoil.TinfoilCommandFailed as e: + _upgrade_error(e, fullpath, srctree, keep_failure, 'Parsing of upgraded recipe failed') oe.recipeutils.patch_recipe(rd, fullpath, newvalues) return fullpath, copied @@ -548,11 +557,11 @@ def upgrade(args, config, basepath, workspace): tinfoil, rd) new_licenses = _extract_licenses(srctree, rd.getVar('LIC_FILES_CHKSUM')) license_diff = _generate_license_diff(old_licenses, new_licenses) - rf, copied = _create_new_recipe(args.version, md5, sha256, args.srcrev, srcbranch, srcsubdir1, srcsubdir2, config.workspace_path, tinfoil, rd, license_diff, new_licenses) + rf, copied = _create_new_recipe(args.version, md5, sha256, args.srcrev, srcbranch, srcsubdir1, srcsubdir2, config.workspace_path, tinfoil, rd, license_diff, new_licenses, srctree, args.keep_failure) except bb.process.CmdError as e: - _upgrade_error(e, rf, srctree) + _upgrade_error(e, rf, srctree, args.keep_failure) except DevtoolError as e: - _upgrade_error(e, rf, srctree) + _upgrade_error(e, rf, srctree, args.keep_failure) standard._add_md5(config, pn, os.path.dirname(rf)) af = _write_append(rf, srctree, args.same_dir, args.no_same_dir, rev2, @@ -623,6 +632,7 @@ def register_commands(subparsers, context): group.add_argument('--same-dir', '-s', help='Build in same directory as source', action="store_true") group.add_argument('--no-same-dir', help='Force build in a separate build directory', action="store_true") parser_upgrade.add_argument('--keep-temp', action="store_true", help='Keep temporary directory (for debugging)') + parser_upgrade.add_argument('--keep-failure', action="store_true", help='Keep failed upgrade recipe and associated files (for debugging)') parser_upgrade.set_defaults(func=upgrade, fixed_setup=context.fixed_setup) parser_latest_version = subparsers.add_parser('latest-version', help='Report the latest version of an existing recipe', diff --git a/Contrib-Inspur/openbmc/poky/scripts/lib/recipetool/create.py b/Contrib-Inspur/openbmc/poky/scripts/lib/recipetool/create.py index 98277f74..4c4bbadb 100644 --- a/Contrib-Inspur/openbmc/poky/scripts/lib/recipetool/create.py +++ b/Contrib-Inspur/openbmc/poky/scripts/lib/recipetool/create.py @@ -60,7 +60,9 @@ def load_libmap(d): if RecipeHandler.recipelibmap: return # First build up library->package mapping - shlib_providers = oe.package.read_shlib_providers(d) + d2 = bb.data.createCopy(d) + d2.setVar("WORKDIR_PKGDATA", "${PKGDATA_DIR}") + shlib_providers = oe.package.read_shlib_providers(d2) libdir = d.getVar('libdir') base_libdir = d.getVar('base_libdir') libpaths = list(set([base_libdir, libdir])) @@ -493,9 +495,7 @@ def create_recipe(args): if ftmpdir and args.keep_temp: logger.info('Fetch temp directory is %s' % ftmpdir) - dirlist = os.listdir(srctree) - filterout = ['git.indirectionsymlink'] - dirlist = [x for x in dirlist if x not in filterout] + dirlist = scriptutils.filter_src_subdirs(srctree) logger.debug('Directory listing (excluding filtered out):\n %s' % '\n '.join(dirlist)) if len(dirlist) == 1: singleitem = os.path.join(srctree, dirlist[0]) @@ -1053,6 +1053,7 @@ def get_license_md5sums(d, static_only=False): md5sums['3b83ef96387f14655fc854ddc3c6bd57'] = 'Apache-2.0' md5sums['385c55653886acac3821999a3ccd17b3'] = 'Artistic-1.0 | GPL-2.0' # some perl modules md5sums['54c7042be62e169199200bc6477f04d1'] = 'BSD-3-Clause' + md5sums['bfe1f75d606912a4111c90743d6c7325'] = 'MPL-1.1' return md5sums def crunch_license(licfile): diff --git a/Contrib-Inspur/openbmc/poky/scripts/lib/recipetool/create_buildsys_python.py b/Contrib-Inspur/openbmc/poky/scripts/lib/recipetool/create_buildsys_python.py index ac9bc923..adfa3779 100644 --- a/Contrib-Inspur/openbmc/poky/scripts/lib/recipetool/create_buildsys_python.py +++ b/Contrib-Inspur/openbmc/poky/scripts/lib/recipetool/create_buildsys_python.py @@ -154,8 +154,13 @@ def process(self, srctree, classes, lines_before, lines_after, handled, extraval if 'buildsystem' in handled: return False - if not RecipeHandler.checkfiles(srctree, ['setup.py']): - return + # Check for non-zero size setup.py files + setupfiles = RecipeHandler.checkfiles(srctree, ['setup.py']) + for fn in setupfiles: + if os.path.getsize(fn): + break + else: + return False # setup.py is always parsed to get at certain required information, such as # distutils vs setuptools diff --git a/Contrib-Inspur/openbmc/poky/scripts/lib/resulttool/log.py b/Contrib-Inspur/openbmc/poky/scripts/lib/resulttool/log.py index 25c33967..f1bfd995 100644 --- a/Contrib-Inspur/openbmc/poky/scripts/lib/resulttool/log.py +++ b/Contrib-Inspur/openbmc/poky/scripts/lib/resulttool/log.py @@ -8,14 +8,23 @@ import resulttool.resultutils as resultutils def show_ptest(result, ptest, logger): - if 'ptestresult.sections' in result: - if ptest in result['ptestresult.sections'] and 'log' in result['ptestresult.sections'][ptest]: - print(result['ptestresult.sections'][ptest]['log']) - return 0 + logdata = resultutils.ptestresult_get_log(result, ptest) + if logdata is not None: + print(logdata) + return 0 - print("ptest '%s' not found" % ptest) + print("ptest '%s' log not found" % ptest) return 1 +def show_reproducible(result, reproducible, logger): + try: + print(result['reproducible'][reproducible]['diffoscope.text']) + return 0 + + except KeyError: + print("reproducible '%s' not found" % reproducible) + return 1 + def log(args, logger): results = resultutils.load_resultsdata(args.source) @@ -25,32 +34,43 @@ def log(args, logger): return 1 for _, run_name, _, r in resultutils.test_run_results(results): - if args.dump_ptest: - if 'ptestresult.sections' in r: - for name, ptest in r['ptestresult.sections'].items(): - if 'log' in ptest: - dest_dir = args.dump_ptest - if args.prepend_run: - dest_dir = os.path.join(dest_dir, run_name) + if args.dump_ptest and 'ptestresult.sections' in r: + for name, ptest in r['ptestresult.sections'].items(): + logdata = resultutils.ptestresult_get_log(r, name) + if logdata is not None: + dest_dir = args.dump_ptest + if args.prepend_run: + dest_dir = os.path.join(dest_dir, run_name) - os.makedirs(dest_dir, exist_ok=True) + os.makedirs(dest_dir, exist_ok=True) + dest = os.path.join(dest_dir, '%s.log' % name) + print(dest) + with open(dest, 'w') as f: + f.write(logdata) - dest = os.path.join(dest_dir, '%s.log' % name) - print(dest) - with open(dest, 'w') as f: - f.write(ptest['log']) + if args.raw_ptest: + rawlog = resultutils.ptestresult_get_rawlogs(r) + if rawlog is not None: + print(rawlog) + else: + print('Raw ptest logs not found') + return 1 - if args.raw: - if 'ptestresult.rawlogs' in r: - print(r['ptestresult.rawlogs']['log']) + if args.raw_reproducible: + if 'reproducible.rawlogs' in r: + print(r['reproducible.rawlogs']['log']) else: - print('Raw logs not found') + print('Raw reproducible logs not found') return 1 for ptest in args.ptest: if not show_ptest(r, ptest, logger): return 1 + for reproducible in args.reproducible: + if not show_reproducible(r, reproducible, logger): + return 1 + def register_commands(subparsers): """Register subcommands from this plugin""" parser = subparsers.add_parser('log', help='show logs', @@ -63,9 +83,15 @@ def register_commands(subparsers): help='show logs for a ptest') parser.add_argument('--dump-ptest', metavar='DIR', help='Dump all ptest log files to the specified directory.') + parser.add_argument('--reproducible', action='append', default=[], + help='show logs for a reproducible test') parser.add_argument('--prepend-run', action='store_true', help='''Dump ptest results to a subdirectory named after the test run when using --dump-ptest. Required if more than one test run is present in the result file''') parser.add_argument('--raw', action='store_true', - help='show raw logs') + help='show raw (ptest) logs. Deprecated. Alias for "--raw-ptest"', dest='raw_ptest') + parser.add_argument('--raw-ptest', action='store_true', + help='show raw ptest log') + parser.add_argument('--raw-reproducible', action='store_true', + help='show raw reproducible build logs') diff --git a/Contrib-Inspur/openbmc/poky/scripts/lib/resulttool/report.py b/Contrib-Inspur/openbmc/poky/scripts/lib/resulttool/report.py index a48c59f6..692dd7a8 100644 --- a/Contrib-Inspur/openbmc/poky/scripts/lib/resulttool/report.py +++ b/Contrib-Inspur/openbmc/poky/scripts/lib/resulttool/report.py @@ -19,9 +19,9 @@ def __init__(self): self.ptests = {} self.ltptests = {} self.ltpposixtests = {} - self.result_types = {'passed': ['PASSED', 'passed'], - 'failed': ['FAILED', 'failed', 'ERROR', 'error', 'UNKNOWN'], - 'skipped': ['SKIPPED', 'skipped']} + self.result_types = {'passed': ['PASSED', 'passed', 'PASS', 'XFAIL'], + 'failed': ['FAILED', 'failed', 'FAIL', 'ERROR', 'error', 'UNKNOWN', 'XPASS'], + 'skipped': ['SKIPPED', 'skipped', 'UNSUPPORTED', 'UNTESTED', 'UNRESOLVED']} def handle_ptest_result(self, k, status, result, machine): @@ -32,16 +32,22 @@ def handle_ptest_result(self, k, status, result, machine): # Ensure tests without any test results still show up on the report for suite in result['ptestresult.sections']: if suite not in self.ptests[machine]: - self.ptests[machine][suite] = {'passed': 0, 'failed': 0, 'skipped': 0, 'duration' : '-', 'failed_testcases': []} + self.ptests[machine][suite] = { + 'passed': 0, 'failed': 0, 'skipped': 0, 'duration' : '-', + 'failed_testcases': [], "testcases": set(), + } if 'duration' in result['ptestresult.sections'][suite]: self.ptests[machine][suite]['duration'] = result['ptestresult.sections'][suite]['duration'] if 'timeout' in result['ptestresult.sections'][suite]: self.ptests[machine][suite]['duration'] += " T" - return + return True + + # process test result try: _, suite, test = k.split(".", 2) except ValueError: - return + return True + # Handle 'glib-2.0' if 'ptestresult.sections' in result and suite not in result['ptestresult.sections']: try: @@ -50,11 +56,23 @@ def handle_ptest_result(self, k, status, result, machine): suite = suite + "." + suite1 except ValueError: pass + if suite not in self.ptests[machine]: - self.ptests[machine][suite] = {'passed': 0, 'failed': 0, 'skipped': 0, 'duration' : '-', 'failed_testcases': []} + self.ptests[machine][suite] = { + 'passed': 0, 'failed': 0, 'skipped': 0, 'duration' : '-', + 'failed_testcases': [], "testcases": set(), + } + + # do not process duplicate results + if test in self.ptests[machine][suite]["testcases"]: + print("Warning duplicate ptest result '{}.{}' for {}".format(suite, test, machine)) + return False + for tk in self.result_types: if status in self.result_types[tk]: self.ptests[machine][suite][tk] += 1 + self.ptests[machine][suite]["testcases"].add(test) + return True def handle_ltptest_result(self, k, status, result, machine): if machine not in self.ltptests: @@ -124,17 +142,20 @@ def get_aggregated_test_result(self, logger, testresult, machine): result = testresult.get('result', []) for k in result: test_status = result[k].get('status', []) + if k.startswith("ptestresult."): + if not self.handle_ptest_result(k, test_status, result, machine): + continue + elif k.startswith("ltpresult."): + self.handle_ltptest_result(k, test_status, result, machine) + elif k.startswith("ltpposixresult."): + self.handle_ltpposixtest_result(k, test_status, result, machine) + + # process result if it was not skipped by a handler for tk in self.result_types: if test_status in self.result_types[tk]: test_count_report[tk] += 1 if test_status in self.result_types['failed']: test_count_report['failed_testcases'].append(k) - if k.startswith("ptestresult."): - self.handle_ptest_result(k, test_status, result, machine) - if k.startswith("ltpresult."): - self.handle_ltptest_result(k, test_status, result, machine) - if k.startswith("ltpposixresult."): - self.handle_ltpposixtest_result(k, test_status, result, machine) return test_count_report def print_test_report(self, template_file_name, test_count_reports): @@ -165,6 +186,10 @@ def print_test_report(self, template_file_name, test_count_reports): havefailed = True if line['machine'] not in machines: machines.append(line['machine']) + reporttotalvalues = {} + for k in cols: + reporttotalvalues[k] = '%s' % sum([line[k] for line in test_count_reports]) + reporttotalvalues['count'] = '%s' % len(test_count_reports) for (machine, report) in self.ptests.items(): for ptest in self.ptests[machine]: if len(ptest) > maxlen['ptest']: @@ -178,6 +203,7 @@ def print_test_report(self, template_file_name, test_count_reports): if len(ltpposixtest) > maxlen['ltpposixtest']: maxlen['ltpposixtest'] = len(ltpposixtest) output = template.render(reportvalues=reportvalues, + reporttotalvalues=reporttotalvalues, havefailed=havefailed, machines=machines, ptests=self.ptests, @@ -186,8 +212,11 @@ def print_test_report(self, template_file_name, test_count_reports): maxlen=maxlen) print(output) - def view_test_report(self, logger, source_dir, branch, commit, tag): + def view_test_report(self, logger, source_dir, branch, commit, tag, use_regression_map, raw_test): test_count_reports = [] + configmap = resultutils.store_map + if use_regression_map: + configmap = resultutils.regression_map if commit: if tag: logger.warning("Ignoring --tag as --commit was specified") @@ -195,16 +224,40 @@ def view_test_report(self, logger, source_dir, branch, commit, tag): repo = GitRepo(source_dir) revs = gitarchive.get_test_revs(logger, repo, tag_name, branch=branch) rev_index = gitarchive.rev_find(revs, 'commit', commit) - testresults = resultutils.git_get_result(repo, revs[rev_index][2]) + testresults = resultutils.git_get_result(repo, revs[rev_index][2], configmap=configmap) elif tag: repo = GitRepo(source_dir) - testresults = resultutils.git_get_result(repo, [tag]) + testresults = resultutils.git_get_result(repo, [tag], configmap=configmap) else: - testresults = resultutils.load_resultsdata(source_dir) + testresults = resultutils.load_resultsdata(source_dir, configmap=configmap) + if raw_test: + raw_results = {} + for testsuite in testresults: + result = testresults[testsuite].get(raw_test, {}) + if result: + raw_results[testsuite] = result + if raw_results: + print(json.dumps(raw_results, sort_keys=True, indent=4)) + else: + print('Could not find raw test result for %s' % raw_test) + return 0 for testsuite in testresults: for resultid in testresults[testsuite]: + skip = False result = testresults[testsuite][resultid] machine = result['configuration']['MACHINE'] + + # Check to see if there is already results for these kinds of tests for the machine + for key in result['result'].keys(): + testtype = str(key).split('.')[0] + if ((machine in self.ltptests and testtype == "ltpiresult" and self.ltptests[machine]) or + (machine in self.ltpposixtests and testtype == "ltpposixresult" and self.ltpposixtests[machine])): + print("Already have test results for %s on %s, skipping %s" %(str(key).split('.')[0], machine, resultid)) + skip = True + break + if skip: + break + test_count_report = self.get_aggregated_test_result(logger, result, machine) test_count_report['machine'] = machine test_count_report['testseries'] = result['configuration']['TESTSERIES'] @@ -214,7 +267,8 @@ def view_test_report(self, logger, source_dir, branch, commit, tag): def report(args, logger): report = ResultsTextReport() - report.view_test_report(logger, args.source_dir, args.branch, args.commit, args.tag) + report.view_test_report(logger, args.source_dir, args.branch, args.commit, args.tag, args.use_regression_map, + args.raw_test_only) return 0 def register_commands(subparsers): @@ -229,3 +283,8 @@ def register_commands(subparsers): parser_build.add_argument('--commit', help="Revision to report") parser_build.add_argument('-t', '--tag', default='', help='source_dir is a git repository, report on the tag specified from that repository') + parser_build.add_argument('-m', '--use_regression_map', action='store_true', + help='instead of the default "store_map", use the "regression_map" for report') + parser_build.add_argument('-r', '--raw_test_only', default='', + help='output raw test result only for the user provided test result id') + diff --git a/Contrib-Inspur/openbmc/poky/scripts/lib/resulttool/resultutils.py b/Contrib-Inspur/openbmc/poky/scripts/lib/resulttool/resultutils.py index e595c185..f0ae8ec1 100644 --- a/Contrib-Inspur/openbmc/poky/scripts/lib/resulttool/resultutils.py +++ b/Contrib-Inspur/openbmc/poky/scripts/lib/resulttool/resultutils.py @@ -7,6 +7,8 @@ # import os +import base64 +import zlib import json import scriptpath import copy @@ -117,6 +119,38 @@ def strip_ptestresults(results): del newresults[res]['result']['ptestresult.sections'][i]['log'] return newresults +def decode_log(logdata): + if isinstance(logdata, str): + return logdata + elif isinstance(logdata, dict): + if "compressed" in logdata: + data = logdata.get("compressed") + data = base64.b64decode(data.encode("utf-8")) + data = zlib.decompress(data) + try: + return data.decode("utf-8") + except UnicodeDecodeError: + return data + return None + +def ptestresult_get_log(results, section): + if 'ptestresult.sections' not in results: + return None + if section not in results['ptestresult.sections']: + return None + + ptest = results['ptestresult.sections'][section] + if 'log' not in ptest: + return None + return decode_log(ptest['log']) + +def ptestresult_get_rawlogs(results): + if 'ptestresult.rawlogs' not in results: + return None + if 'log' not in results['ptestresult.rawlogs']: + return None + return decode_log(results['ptestresult.rawlogs']['log']) + def save_resultsdata(results, destdir, fn="testresults.json", ptestjson=False, ptestlogs=False): for res in results: if res: @@ -131,16 +165,19 @@ def save_resultsdata(results, destdir, fn="testresults.json", ptestjson=False, p f.write(json.dumps(resultsout, sort_keys=True, indent=4)) for res2 in results[res]: if ptestlogs and 'result' in results[res][res2]: - if 'ptestresult.rawlogs' in results[res][res2]['result']: + seriesresults = results[res][res2]['result'] + rawlogs = ptestresult_get_rawlogs(seriesresults) + if rawlogs is not None: with open(dst.replace(fn, "ptest-raw.log"), "w+") as f: - f.write(results[res][res2]['result']['ptestresult.rawlogs']['log']) - if 'ptestresult.sections' in results[res][res2]['result']: - for i in results[res][res2]['result']['ptestresult.sections']: - if 'log' in results[res][res2]['result']['ptestresult.sections'][i]: + f.write(rawlogs) + if 'ptestresult.sections' in seriesresults: + for i in seriesresults['ptestresult.sections']: + sectionlog = ptestresult_get_log(seriesresults, i) + if sectionlog is not None: with open(dst.replace(fn, "ptest-%s.log" % i), "w+") as f: - f.write(results[res][res2]['result']['ptestresult.sections'][i]['log']) + f.write(sectionlog) -def git_get_result(repo, tags): +def git_get_result(repo, tags, configmap=store_map): git_objs = [] for tag in tags: files = repo.run_cmd(['ls-tree', "--name-only", "-r", tag]).splitlines() @@ -163,7 +200,7 @@ def parse_json_stream(data): # Optimize by reading all data with one git command results = {} for obj in parse_json_stream(repo.run_cmd(['show'] + git_objs + ['--'])): - append_resultsdata(results, obj) + append_resultsdata(results, obj, configmap=configmap) return results diff --git a/Contrib-Inspur/openbmc/poky/scripts/lib/resulttool/store.py b/Contrib-Inspur/openbmc/poky/scripts/lib/resulttool/store.py index 79c83dd8..e0951f0a 100644 --- a/Contrib-Inspur/openbmc/poky/scripts/lib/resulttool/store.py +++ b/Contrib-Inspur/openbmc/poky/scripts/lib/resulttool/store.py @@ -24,6 +24,8 @@ def store(args, logger): configvars = resultutils.extra_configvars.copy() if args.executed_by: configvars['EXECUTED_BY'] = args.executed_by + if args.extra_test_env: + configvars['EXTRA_TEST_ENV'] = args.extra_test_env results = {} logger.info('Reading files from %s' % args.source) if resultutils.is_url(args.source) or os.path.isfile(args.source): @@ -98,4 +100,5 @@ def register_commands(subparsers): help='don\'t error if no results to store are found') parser_build.add_argument('-x', '--executed-by', default='', help='add executed-by configuration to each result file') - + parser_build.add_argument('-t', '--extra-test-env', default='', + help='add extra test environment data to each result file configuration') diff --git a/Contrib-Inspur/openbmc/poky/scripts/lib/resulttool/template/test_report_full_text.txt b/Contrib-Inspur/openbmc/poky/scripts/lib/resulttool/template/test_report_full_text.txt index 17c99cb4..2efba2ef 100644 --- a/Contrib-Inspur/openbmc/poky/scripts/lib/resulttool/template/test_report_full_text.txt +++ b/Contrib-Inspur/openbmc/poky/scripts/lib/resulttool/template/test_report_full_text.txt @@ -8,7 +8,8 @@ Test Result Status Summary (Counts/Percentages sorted by testseries, ID) {{ report.testseries.ljust(maxlen['testseries']) }} | {{ report.result_id.ljust(maxlen['result_id']) }} | {{ (report.passed|string).ljust(maxlen['passed']) }} | {{ (report.failed|string).ljust(maxlen['failed']) }} | {{ (report.skipped|string).ljust(maxlen['skipped']) }} {% endfor %} -------------------------------------------------------------------------------------------------------------- - +{{ 'Total'.ljust(maxlen['testseries']) }} | {{ reporttotalvalues['count'].ljust(maxlen['result_id']) }} | {{ reporttotalvalues['passed'].ljust(maxlen['passed']) }} | {{ reporttotalvalues['failed'].ljust(maxlen['failed']) }} | {{ reporttotalvalues['skipped'].ljust(maxlen['skipped']) }} +-------------------------------------------------------------------------------------------------------------- {% for machine in machines %} {% if ptests[machine] %} diff --git a/Contrib-Inspur/openbmc/poky/scripts/lib/scriptutils.py b/Contrib-Inspur/openbmc/poky/scripts/lib/scriptutils.py index e7e7021c..45bdaf5f 100644 --- a/Contrib-Inspur/openbmc/poky/scripts/lib/scriptutils.py +++ b/Contrib-Inspur/openbmc/poky/scripts/lib/scriptutils.py @@ -16,12 +16,51 @@ import subprocess import sys import tempfile +import threading import importlib from importlib import machinery -def logger_create(name, stream=None): +class KeepAliveStreamHandler(logging.StreamHandler): + def __init__(self, keepalive=True, **kwargs): + super().__init__(**kwargs) + if keepalive is True: + keepalive = 5000 # default timeout + self._timeout = threading.Condition() + self._stop = False + + # background thread waits on condition, if the condition does not + # happen emit a keep alive message + def thread(): + while not self._stop: + with self._timeout: + if not self._timeout.wait(keepalive): + self.emit(logging.LogRecord("keepalive", logging.INFO, + None, None, "Keepalive message", None, None)) + + self._thread = threading.Thread(target = thread, daemon = True) + self._thread.start() + + def close(self): + # mark the thread to stop and notify it + self._stop = True + with self._timeout: + self._timeout.notify() + # wait for it to join + self._thread.join() + super().close() + + def emit(self, record): + super().emit(record) + # trigger timer reset + with self._timeout: + self._timeout.notify() + +def logger_create(name, stream=None, keepalive=None): logger = logging.getLogger(name) - loggerhandler = logging.StreamHandler(stream=stream) + if keepalive is not None: + loggerhandler = KeepAliveStreamHandler(stream=stream, keepalive=keepalive) + else: + loggerhandler = logging.StreamHandler(stream=stream) loggerhandler.setFormatter(logging.Formatter("%(levelname)s: %(message)s")) logger.addHandler(loggerhandler) logger.setLevel(logging.INFO) @@ -229,3 +268,13 @@ def is_src_url(param): elif param.startswith('git@') or ('@' in param and param.endswith('.git')): return True return False + +def filter_src_subdirs(pth): + """ + Filter out subdirectories of initial unpacked source trees that we do not care about. + Used by devtool and recipetool. + """ + dirlist = os.listdir(pth) + filterout = ['git.indirectionsymlink', 'source-date-epoch'] + dirlist = [x for x in dirlist if x not in filterout] + return dirlist diff --git a/Contrib-Inspur/openbmc/poky/scripts/lib/wic/__init__.py b/Contrib-Inspur/openbmc/poky/scripts/lib/wic/__init__.py index ba2d6140..85567934 100644 --- a/Contrib-Inspur/openbmc/poky/scripts/lib/wic/__init__.py +++ b/Contrib-Inspur/openbmc/poky/scripts/lib/wic/__init__.py @@ -1,4 +1,4 @@ -#!/usr/bin/env python -tt +#!/usr/bin/env python3 # # Copyright (c) 2007 Red Hat, Inc. # Copyright (c) 2011 Intel, Inc. diff --git a/Contrib-Inspur/openbmc/poky/scripts/lib/wic/canned-wks/qemuriscv.wks b/Contrib-Inspur/openbmc/poky/scripts/lib/wic/canned-wks/qemuriscv.wks new file mode 100644 index 00000000..12c68b70 --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/scripts/lib/wic/canned-wks/qemuriscv.wks @@ -0,0 +1,3 @@ +# short-description: Create qcow2 image for RISC-V QEMU machines + +part / --source rootfs --fstype=ext4 --label root --align 4096 --size 5G diff --git a/Contrib-Inspur/openbmc/poky/scripts/lib/wic/engine.py b/Contrib-Inspur/openbmc/poky/scripts/lib/wic/engine.py index 61939ad1..7e662074 100644 --- a/Contrib-Inspur/openbmc/poky/scripts/lib/wic/engine.py +++ b/Contrib-Inspur/openbmc/poky/scripts/lib/wic/engine.py @@ -19,6 +19,7 @@ import tempfile import json import subprocess +import re from collections import namedtuple, OrderedDict from distutils.spawn import find_executable @@ -335,25 +336,52 @@ def copy(self, src, pnum, path): exec_cmd(cmd, as_shell=True) self._put_part_image(pnum) - def remove(self, pnum, path): + def remove_ext(self, pnum, path, recursive): + """ + Remove files/dirs and their contents from the partition. + This only applies to ext* partition. + """ + abs_path = re.sub('\/\/+', '/', path) + cmd = "{} {} -wR 'rm \"{}\"'".format(self.debugfs, + self._get_part_image(pnum), + abs_path) + out = exec_cmd(cmd , as_shell=True) + for line in out.splitlines(): + if line.startswith("rm:"): + if "file is a directory" in line: + if recursive: + # loop through content and delete them one by one if + # flaged with -r + subdirs = iter(self.dir(pnum, abs_path).splitlines()) + next(subdirs) + for subdir in subdirs: + dir = subdir.split(':')[1].split(" ", 1)[1] + if not dir == "." and not dir == "..": + self.remove_ext(pnum, "%s/%s" % (abs_path, dir), recursive) + + rmdir_out = exec_cmd("{} {} -wR 'rmdir \"{}\"'".format(self.debugfs, + self._get_part_image(pnum), + abs_path.rstrip('/')) + , as_shell=True) + + for rmdir_line in rmdir_out.splitlines(): + if "directory not empty" in rmdir_line: + raise WicError("Could not complete operation: \n%s \n" + "use -r to remove non-empty directory" % rmdir_line) + if rmdir_line.startswith("rmdir:"): + raise WicError("Could not complete operation: \n%s " + "\n%s" % (str(line), rmdir_line)) + + else: + raise WicError("Could not complete operation: \n%s " + "\nUnable to remove %s" % (str(line), abs_path)) + + def remove(self, pnum, path, recursive): """Remove files/dirs from the partition.""" partimg = self._get_part_image(pnum) if self.partitions[pnum].fstype.startswith('ext'): - cmd = "{} {} -wR 'rm {}'".format(self.debugfs, - self._get_part_image(pnum), - path) - out = exec_cmd(cmd , as_shell=True) - for line in out.splitlines(): - if line.startswith("rm:"): - if "file is a directory" in line: - # Try rmdir to see if this is an empty directory. This won't delete - # any non empty directory so let user know about any error that this might - # generate. - print(exec_cmd("{} {} -wR 'rmdir {}'".format(self.debugfs, - self._get_part_image(pnum), - path), as_shell=True)) - else: - raise WicError("Could not complete operation: wic %s" % str(line)) + self.remove_ext(pnum, path, recursive) + else: # fat cmd = "{} -i {} ::{}".format(self.mdel, partimg, path) try: @@ -535,13 +563,13 @@ def wic_rm(args, native_sysroot): partitioned image. """ disk = Disk(args.path.image, native_sysroot) - disk.remove(args.path.part, args.path.path) + disk.remove(args.path.part, args.path.path, args.recursive_delete) def wic_write(args, native_sysroot): """ Write image to a target device. """ - disk = Disk(args.image, native_sysroot, ('fat', 'ext', 'swap')) + disk = Disk(args.image, native_sysroot, ('fat', 'ext', 'linux-swap')) disk.write(args.target, args.expand) def find_canned(scripts_path, file_name): diff --git a/Contrib-Inspur/openbmc/poky/scripts/lib/wic/help.py b/Contrib-Inspur/openbmc/poky/scripts/lib/wic/help.py index 3a40fc0e..812ebe3e 100644 --- a/Contrib-Inspur/openbmc/poky/scripts/lib/wic/help.py +++ b/Contrib-Inspur/openbmc/poky/scripts/lib/wic/help.py @@ -422,6 +422,7 @@ def invoke_subcommand(args, parser, main_command_usage, subcommands): SYNOPSIS wic rm : wic rm : --native-sysroot + wic rm -r : DESCRIPTION This command removes files or directories from the vfat or ext* partition of the @@ -456,6 +457,9 @@ def invoke_subcommand(args, parser, main_command_usage, subcommands): The -n option is used to specify the path to the native sysroot containing the tools(parted and mtools) to use. + + The -r option is used to remove directories and their contents + recursively,this only applies to ext* partition. """ wic_write_usage = """ @@ -478,7 +482,7 @@ def invoke_subcommand(args, parser, main_command_usage, subcommands): SYNOPSIS wic write wic write --expand auto - wic write --expand 1:100M-2:300M + wic write --expand 1:100M,2:300M wic write --native-sysroot DESCRIPTION @@ -489,7 +493,7 @@ def invoke_subcommand(args, parser, main_command_usage, subcommands): The --expand option is used to resize image partitions. --expand auto expands partitions to occupy all free space available on the target device. It's also possible to specify expansion rules in a format - :[-:...] for one or more partitions. + :[,:...] for one or more partitions. Specifying size 0 will keep partition unmodified. Note: Resizing boot partition can result in non-bootable image for non-EFI images. It is recommended to use size 0 for boot partition to keep image bootable. @@ -1046,3 +1050,59 @@ class (see the SourcePlugin source for details): DESCRIPTION Specify a help topic to display it. Topics are shown above. """ + + +wic_help = """ +Creates a customized OpenEmbedded image. + +Usage: wic [--version] + wic help [COMMAND or TOPIC] + wic COMMAND [ARGS] + + usage 1: Returns the current version of Wic + usage 2: Returns detailed help for a COMMAND or TOPIC + usage 3: Executes COMMAND + + +COMMAND: + + list - List available canned images and source plugins + ls - List contents of partitioned image or partition + rm - Remove files or directories from the vfat or ext* partitions + help - Show help for a wic COMMAND or TOPIC + write - Write an image to a device + cp - Copy files and directories to the vfat or ext* partitions + create - Create a new OpenEmbedded image + + +TOPIC: + overview - Presents an overall overview of Wic + plugins - Presents an overview and API for Wic plugins + kickstart - Presents a Wic kicstart file reference + + +Examples: + + $ wic --version + + Returns the current version of Wic + + + $ wic help cp + + Returns the SYNOPSIS and DESCRIPTION for the Wic "cp" command. + + + $ wic list images + + Returns the list of canned images (i.e. *.wks files located in + the /scripts/lib/wic/canned-wks directory. + + + $ wic create mkefidisk -e core-image-minimal + + Creates an EFI disk image from artifacts used in a previous + core-image-minimal build in standard BitBake locations + (e.g. Cooked Mode). + +""" diff --git a/Contrib-Inspur/openbmc/poky/scripts/lib/wic/ksparser.py b/Contrib-Inspur/openbmc/poky/scripts/lib/wic/ksparser.py index 62048213..6a643ba3 100644 --- a/Contrib-Inspur/openbmc/poky/scripts/lib/wic/ksparser.py +++ b/Contrib-Inspur/openbmc/poky/scripts/lib/wic/ksparser.py @@ -1,4 +1,4 @@ -#!/usr/bin/env python -tt +#!/usr/bin/env python3 # # Copyright (c) 2016 Intel, Inc. # @@ -151,6 +151,8 @@ def __init__(self, confpath): part.add_argument('--part-name') part.add_argument('--part-type') part.add_argument('--rootfs-dir') + part.add_argument('--type', default='primary', + choices = ('primary', 'logical')) # --size and --fixed-size cannot be specified together; options # ----extra-space and --overhead-factor should also raise a parser diff --git a/Contrib-Inspur/openbmc/poky/scripts/lib/wic/partition.py b/Contrib-Inspur/openbmc/poky/scripts/lib/wic/partition.py index 01466b25..d809408e 100644 --- a/Contrib-Inspur/openbmc/poky/scripts/lib/wic/partition.py +++ b/Contrib-Inspur/openbmc/poky/scripts/lib/wic/partition.py @@ -50,6 +50,7 @@ def __init__(self, args, lineno): self.use_uuid = args.use_uuid self.uuid = args.uuid self.fsuuid = args.fsuuid + self.type = args.type self.lineno = lineno self.source_file = "" @@ -211,19 +212,24 @@ def prepare_rootfs(self, cr_workdir, oe_builddir, rootfs_dir, if os.path.isfile(rootfs): os.remove(rootfs) - # Get rootfs size from bitbake variable if it's not set in .ks file if not self.size and real_rootfs: - # Bitbake variable ROOTFS_SIZE is calculated in - # Image._get_rootfs_size method from meta/lib/oe/image.py - # using IMAGE_ROOTFS_SIZE, IMAGE_ROOTFS_ALIGNMENT, - # IMAGE_OVERHEAD_FACTOR and IMAGE_ROOTFS_EXTRA_SPACE + # The rootfs size is not set in .ks file so try to get it + # from bitbake variable rsize_bb = get_bitbake_var('ROOTFS_SIZE') - if rsize_bb: - logger.warning('overhead-factor was specified, but size was not,' - ' so bitbake variables will be used for the size.' - ' In this case both IMAGE_OVERHEAD_FACTOR and ' - '--overhead-factor will be applied') + rdir = get_bitbake_var('IMAGE_ROOTFS') + if rsize_bb and rdir == rootfs_dir: + # Bitbake variable ROOTFS_SIZE is calculated in + # Image._get_rootfs_size method from meta/lib/oe/image.py + # using IMAGE_ROOTFS_SIZE, IMAGE_ROOTFS_ALIGNMENT, + # IMAGE_OVERHEAD_FACTOR and IMAGE_ROOTFS_EXTRA_SPACE self.size = int(round(float(rsize_bb))) + else: + # Bitbake variable ROOTFS_SIZE is not defined so compute it + # from the rootfs_dir size using the same logic found in + # get_rootfs_size() from meta/classes/image.bbclass + du_cmd = "du -ks %s" % rootfs_dir + out = exec_cmd(du_cmd) + self.size = int(out.split()[0]) prefix = "ext" if self.fstype.startswith("ext") else self.fstype method = getattr(self, "prepare_rootfs_" + prefix) diff --git a/Contrib-Inspur/openbmc/poky/scripts/lib/wic/pluginbase.py b/Contrib-Inspur/openbmc/poky/scripts/lib/wic/pluginbase.py index bfb73ca6..f74d6430 100644 --- a/Contrib-Inspur/openbmc/poky/scripts/lib/wic/pluginbase.py +++ b/Contrib-Inspur/openbmc/poky/scripts/lib/wic/pluginbase.py @@ -1,4 +1,4 @@ -#!/usr/bin/env python -tt +#!/usr/bin/env python3 # # Copyright (c) 2011 Intel, Inc. # diff --git a/Contrib-Inspur/openbmc/poky/scripts/lib/wic/plugins/imager/direct.py b/Contrib-Inspur/openbmc/poky/scripts/lib/wic/plugins/imager/direct.py index 67addeff..2441cc33 100644 --- a/Contrib-Inspur/openbmc/poky/scripts/lib/wic/plugins/imager/direct.py +++ b/Contrib-Inspur/openbmc/poky/scripts/lib/wic/plugins/imager/direct.py @@ -49,7 +49,6 @@ def __init__(self, wks_file, rootfs_dir, bootimg_dir, kernel_dir, # parse possible 'rootfs=name' items self.rootfs_dir = dict(rdir.split('=') for rdir in rootfs_dir.split(' ')) - self.replaced_rootfs_paths = {} self.bootimg_dir = bootimg_dir self.kernel_dir = kernel_dir self.native_sysroot = native_sysroot @@ -59,6 +58,7 @@ def __init__(self, wks_file, rootfs_dir, bootimg_dir, kernel_dir, self.compressor = options.compressor self.bmap = options.bmap self.no_fstab_update = options.no_fstab_update + self.original_fstab = None self.name = "%s-%s" % (os.path.splitext(os.path.basename(wks_file))[0], strftime("%Y%m%d%H%M")) @@ -104,24 +104,13 @@ def _write_fstab(self, image_rootfs): with open(fstab_path) as fstab: fstab_lines = fstab.readlines() + self.original_fstab = fstab_lines.copy() if self._update_fstab(fstab_lines, self.parts): - # copy rootfs dir to workdir to update fstab - # as rootfs can be used by other tasks and can't be modified - new_pseudo = os.path.realpath(os.path.join(self.workdir, "pseudo")) - from_dir = os.path.join(os.path.join(image_rootfs, ".."), "pseudo") - from_dir = os.path.realpath(from_dir) - copyhardlinktree(from_dir, new_pseudo) - new_rootfs = os.path.realpath(os.path.join(self.workdir, "rootfs_copy")) - copyhardlinktree(image_rootfs, new_rootfs) - fstab_path = os.path.join(new_rootfs, 'etc/fstab') - - os.unlink(fstab_path) - with open(fstab_path, "w") as fstab: fstab.writelines(fstab_lines) - - return new_rootfs + else: + self.original_fstab = None def _update_fstab(self, fstab_lines, parts): """Assume partition order same as in wks""" @@ -170,14 +159,8 @@ def create(self): filesystems from the artifacts directly and combine them into a partitioned image. """ - if self.no_fstab_update: - new_rootfs = None - else: - new_rootfs = self._write_fstab(self.rootfs_dir.get("ROOTFS_DIR")) - if new_rootfs: - # rootfs was copied to update fstab - self.replaced_rootfs_paths[new_rootfs] = self.rootfs_dir['ROOTFS_DIR'] - self.rootfs_dir['ROOTFS_DIR'] = new_rootfs + if not self.no_fstab_update: + self._write_fstab(self.rootfs_dir.get("ROOTFS_DIR")) for part in self.parts: # get rootfs size from bitbake variable if it's not set in .ks file @@ -253,8 +236,6 @@ def print_info(self): else: suffix = '["%s"]:' % (part.mountpoint or part.label) rootdir = part.rootfs_dir - if rootdir in self.replaced_rootfs_paths: - rootdir = self.replaced_rootfs_paths[rootdir] msg += ' ROOTFS_DIR%s%s\n' % (suffix.ljust(20), rootdir) msg += ' BOOTIMG_DIR: %s\n' % self.bootimg_dir @@ -292,6 +273,12 @@ def cleanup(self): if os.path.isfile(path): shutil.move(path, os.path.join(self.outdir, fname)) + #Restore original fstab + if self.original_fstab: + fstab_path = self.rootfs_dir.get("ROOTFS_DIR") + "/etc/fstab" + with open(fstab_path, "w") as fstab: + fstab.writelines(self.original_fstab) + # remove work directory shutil.rmtree(self.workdir, ignore_errors=True) @@ -313,6 +300,10 @@ def __init__(self, path, ptable_format, partitions, native_sysroot=None): self.path = path # Path to the image file self.numpart = 0 # Number of allocated partitions self.realpart = 0 # Number of partitions in the partition table + self.primary_part_num = 0 # Number of primary partitions (msdos) + self.extendedpart = 0 # Create extended partition before this logical partition (msdos) + self.extended_size_sec = 0 # Size of exteded partition (msdos) + self.logical_part_cnt = 0 # Number of total logical paritions (msdos) self.offset = 0 # Offset of next partition (in sectors) self.min_size = 0 # Minimum required disk size to fit # all partitions (in bytes) @@ -325,6 +316,7 @@ def __init__(self, path, ptable_format, partitions, native_sysroot=None): # Size of a sector used in calculations self.sector_size = SECTOR_SIZE self.native_sysroot = native_sysroot + num_real_partitions = len([p for p in self.partitions if not p.no_table]) # calculate the real partition number, accounting for partitions not # in the partition table and logical partitions @@ -334,7 +326,7 @@ def __init__(self, path, ptable_format, partitions, native_sysroot=None): part.realnum = 0 else: realnum += 1 - if self.ptable_format == 'msdos' and realnum > 3 and len(partitions) > 4: + if self.ptable_format == 'msdos' and realnum > 3 and num_real_partitions > 4: part.realnum = realnum + 1 continue part.realnum = realnum @@ -404,12 +396,16 @@ def layout_partitions(self): # Skip one sector required for the partitioning scheme overhead self.offset += overhead - if self.realpart > 3 and num_real_partitions > 4: + if self.ptable_format == "msdos": + if self.primary_part_num > 3 or \ + (self.extendedpart == 0 and self.primary_part_num >= 3 and num_real_partitions > 4): + part.type = 'logical' # Reserve a sector for EBR for every logical partition # before alignment is performed. - if self.ptable_format == "msdos": + if part.type == 'logical': self.offset += 1 + align_sectors = 0 if part.align: # If not first partition and we do have alignment set we need # to align the partition. @@ -435,18 +431,25 @@ def layout_partitions(self): part.start = self.offset self.offset += part.size_sec - part.type = 'primary' if not part.no_table: part.num = self.realpart else: part.num = 0 - if self.ptable_format == "msdos": - # only count the partitions that are in partition table - if num_real_partitions > 4: - if self.realpart > 3: - part.type = 'logical' - part.num = self.realpart + 1 + if self.ptable_format == "msdos" and not part.no_table: + if part.type == 'logical': + self.logical_part_cnt += 1 + part.num = self.logical_part_cnt + 4 + if self.extendedpart == 0: + # Create extended partition as a primary partition + self.primary_part_num += 1 + self.extendedpart = part.num + else: + self.extended_size_sec += align_sectors + self.extended_size_sec += part.size_sec + 1 + else: + self.primary_part_num += 1 + part.num = self.primary_part_num logger.debug("Assigned %s to %s%d, sectors range %d-%d size %d " "sectors (%d bytes).", part.mountpoint, part.disk, @@ -496,7 +499,7 @@ def create(self): if part.num == 0: continue - if self.ptable_format == "msdos" and part.num == 5: + if self.ptable_format == "msdos" and part.num == self.extendedpart: # Create an extended partition (note: extended # partition is described in MBR and contains all # logical partitions). The logical partitions save a @@ -510,7 +513,7 @@ def create(self): # room for all logical partitions. self._create_partition(self.path, "extended", None, part.start - 1, - self.offset - part.start + 1) + self.extended_size_sec) if part.fstype == "swap": parted_fs_type = "linux-swap" diff --git a/Contrib-Inspur/openbmc/poky/scripts/lib/wic/plugins/source/bootimg-biosplusefi.py b/Contrib-Inspur/openbmc/poky/scripts/lib/wic/plugins/source/bootimg-biosplusefi.py new file mode 100644 index 00000000..5bd73906 --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/scripts/lib/wic/plugins/source/bootimg-biosplusefi.py @@ -0,0 +1,213 @@ +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License version 2 as +# published by the Free Software Foundation. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License along +# with this program; if not, write to the Free Software Foundation, Inc., +# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. +# +# DESCRIPTION +# This implements the 'bootimg-biosplusefi' source plugin class for 'wic' +# +# AUTHORS +# William Bourque + +import types + +from wic.pluginbase import SourcePlugin +from importlib.machinery import SourceFileLoader + +class BootimgBiosPlusEFIPlugin(SourcePlugin): + """ + Create MBR + EFI boot partition + + This plugin creates a boot partition that contains both + legacy BIOS and EFI content. It will be able to boot from both. + This is useful when managing PC fleet with some older machines + without EFI support. + + Note it is possible to create an image that can boot from both + legacy BIOS and EFI by defining two partitions : one with arg + --source bootimg-efi and another one with --source bootimg-pcbios. + However, this method has the obvious downside that it requires TWO + partitions to be created on the storage device. + Both partitions will also be marked as "bootable" which does not work on + most BIOS, has BIOS often uses the "bootable" flag to determine + what to boot. If you have such a BIOS, you need to manually remove the + "bootable" flag from the EFI partition for the drive to be bootable. + Having two partitions also seems to confuse wic : the content of + the first partition will be duplicated into the second, even though it + will not be used at all. + + Also, unlike "isoimage-isohybrid" that also does BIOS and EFI, this plugin + allows you to have more than only a single rootfs partitions and does + not turn the rootfs into an initramfs RAM image. + + This plugin is made to put everything into a single /boot partition so it + does not have the limitations listed above. + + The plugin is made so it does tries not to reimplement what's already + been done in other plugins; as such it imports "bootimg-pcbios" + and "bootimg-efi". + Plugin "bootimg-pcbios" is used to generate legacy BIOS boot. + Plugin "bootimg-efi" is used to generate the UEFI boot. Note that it + requires a --sourceparams argument to know which loader to use; refer + to "bootimg-efi" code/documentation for the list of loader. + + Imports are handled with "SourceFileLoader" from importlib as it is + otherwise very difficult to import module that has hyphen "-" in their + filename. + The SourcePlugin() methods used in the plugins (do_install_disk, + do_configure_partition, do_prepare_partition) are then called on both, + beginning by "bootimg-efi". + + Plugin options, such as "--sourceparams" can still be passed to a + plugin, as long they does not cause issue in the other plugin. + + Example wic configuration: + part /boot --source bootimg-biosplusefi --sourceparams="loader=grub-efi"\\ + --ondisk sda --label os_boot --active --align 1024 --use-uuid + """ + + name = 'bootimg-biosplusefi' + + __PCBIOS_MODULE_NAME = "bootimg-pcbios" + __EFI_MODULE_NAME = "bootimg-efi" + + __imgEFIObj = None + __imgBiosObj = None + + @classmethod + def __init__(cls): + """ + Constructor (init) + """ + + # XXX + # For some reasons, __init__ constructor is never called. + # Something to do with how pluginbase works? + cls.__instanciateSubClasses() + + @classmethod + def __instanciateSubClasses(cls): + """ + + """ + + # Import bootimg-pcbios (class name "BootimgPcbiosPlugin") + modulePath = os.path.join(os.path.dirname(os.path.realpath(__file__)), + cls.__PCBIOS_MODULE_NAME + ".py") + loader = SourceFileLoader(cls.__PCBIOS_MODULE_NAME, modulePath) + mod = types.ModuleType(loader.name) + loader.exec_module(mod) + cls.__imgBiosObj = mod.BootimgPcbiosPlugin() + + # Import bootimg-efi (class name "BootimgEFIPlugin") + modulePath = os.path.join(os.path.dirname(os.path.realpath(__file__)), + cls.__EFI_MODULE_NAME + ".py") + loader = SourceFileLoader(cls.__EFI_MODULE_NAME, modulePath) + mod = types.ModuleType(loader.name) + loader.exec_module(mod) + cls.__imgEFIObj = mod.BootimgEFIPlugin() + + @classmethod + def do_install_disk(cls, disk, disk_name, creator, workdir, oe_builddir, + bootimg_dir, kernel_dir, native_sysroot): + """ + Called after all partitions have been prepared and assembled into a + disk image. + """ + + if ( (not cls.__imgEFIObj) or (not cls.__imgBiosObj) ): + cls.__instanciateSubClasses() + + cls.__imgEFIObj.do_install_disk( + disk, + disk_name, + creator, + workdir, + oe_builddir, + bootimg_dir, + kernel_dir, + native_sysroot) + + cls.__imgBiosObj.do_install_disk( + disk, + disk_name, + creator, + workdir, + oe_builddir, + bootimg_dir, + kernel_dir, + native_sysroot) + + @classmethod + def do_configure_partition(cls, part, source_params, creator, cr_workdir, + oe_builddir, bootimg_dir, kernel_dir, + native_sysroot): + """ + Called before do_prepare_partition() + """ + + if ( (not cls.__imgEFIObj) or (not cls.__imgBiosObj) ): + cls.__instanciateSubClasses() + + cls.__imgEFIObj.do_configure_partition( + part, + source_params, + creator, + cr_workdir, + oe_builddir, + bootimg_dir, + kernel_dir, + native_sysroot) + + cls.__imgBiosObj.do_configure_partition( + part, + source_params, + creator, + cr_workdir, + oe_builddir, + bootimg_dir, + kernel_dir, + native_sysroot) + + @classmethod + def do_prepare_partition(cls, part, source_params, creator, cr_workdir, + oe_builddir, bootimg_dir, kernel_dir, + rootfs_dir, native_sysroot): + """ + Called to do the actual content population for a partition i.e. it + 'prepares' the partition to be incorporated into the image. + """ + + if ( (not cls.__imgEFIObj) or (not cls.__imgBiosObj) ): + cls.__instanciateSubClasses() + + cls.__imgEFIObj.do_prepare_partition( + part, + source_params, + creator, + cr_workdir, + oe_builddir, + bootimg_dir, + kernel_dir, + rootfs_dir, + native_sysroot) + + cls.__imgBiosObj.do_prepare_partition( + part, + source_params, + creator, + cr_workdir, + oe_builddir, + bootimg_dir, + kernel_dir, + rootfs_dir, + native_sysroot) diff --git a/Contrib-Inspur/openbmc/poky/scripts/lib/wic/plugins/source/bootimg-efi.py b/Contrib-Inspur/openbmc/poky/scripts/lib/wic/plugins/source/bootimg-efi.py index 5cc5c8a6..2cfdc10e 100644 --- a/Contrib-Inspur/openbmc/poky/scripts/lib/wic/plugins/source/bootimg-efi.py +++ b/Contrib-Inspur/openbmc/poky/scripts/lib/wic/plugins/source/bootimg-efi.py @@ -74,8 +74,10 @@ def do_configure_grubefi(cls, hdddir, creator, cr_workdir, source_params): grubefi_conf += "menuentry '%s'{\n" % (title if title else "boot") kernel = get_bitbake_var("KERNEL_IMAGETYPE") - if not kernel: - kernel = "bzImage" + if get_bitbake_var("INITRAMFS_IMAGE_BUNDLE") == "1": + if get_bitbake_var("INITRAMFS_IMAGE"): + kernel = "%s-%s.bin" % \ + (get_bitbake_var("KERNEL_IMAGETYPE"), get_bitbake_var("INITRAMFS_LINK_NAME")) label = source_params.get('label') label_conf = "root=%s" % creator.rootdev @@ -154,8 +156,10 @@ def do_configure_systemdboot(cls, hdddir, creator, cr_workdir, source_params): if not custom_cfg: # Create systemd-boot configuration using parameters from wks file kernel = get_bitbake_var("KERNEL_IMAGETYPE") - if not kernel: - kernel = "bzImage" + if get_bitbake_var("INITRAMFS_IMAGE_BUNDLE") == "1": + if get_bitbake_var("INITRAMFS_IMAGE"): + kernel = "%s-%s.bin" % \ + (get_bitbake_var("KERNEL_IMAGETYPE"), get_bitbake_var("INITRAMFS_LINK_NAME")) title = source_params.get('title') @@ -225,8 +229,10 @@ def do_prepare_partition(cls, part, source_params, creator, cr_workdir, hdddir = "%s/hdd/boot" % cr_workdir kernel = get_bitbake_var("KERNEL_IMAGETYPE") - if not kernel: - kernel = "bzImage" + if get_bitbake_var("INITRAMFS_IMAGE_BUNDLE") == "1": + if get_bitbake_var("INITRAMFS_IMAGE"): + kernel = "%s-%s.bin" % \ + (get_bitbake_var("KERNEL_IMAGETYPE"), get_bitbake_var("INITRAMFS_LINK_NAME")) install_cmd = "install -m 0644 %s/%s %s/%s" % \ (staging_kernel_dir, kernel, hdddir, kernel) diff --git a/Contrib-Inspur/openbmc/poky/scripts/lib/wic/plugins/source/bootimg-pcbios.py b/Contrib-Inspur/openbmc/poky/scripts/lib/wic/plugins/source/bootimg-pcbios.py index 670d3477..f2639e70 100644 --- a/Contrib-Inspur/openbmc/poky/scripts/lib/wic/plugins/source/bootimg-pcbios.py +++ b/Contrib-Inspur/openbmc/poky/scripts/lib/wic/plugins/source/bootimg-pcbios.py @@ -150,8 +150,10 @@ def do_prepare_partition(cls, part, source_params, creator, cr_workdir, hdddir = "%s/hdd/boot" % cr_workdir kernel = get_bitbake_var("KERNEL_IMAGETYPE") - if not kernel: - kernel = "bzImage" + if get_bitbake_var("INITRAMFS_IMAGE_BUNDLE") == "1": + if get_bitbake_var("INITRAMFS_IMAGE"): + kernel = "%s-%s.bin" % \ + (get_bitbake_var("KERNEL_IMAGETYPE"), get_bitbake_var("INITRAMFS_LINK_NAME")) cmds = ("install -m 0644 %s/%s %s/vmlinuz" % (staging_kernel_dir, kernel, hdddir), diff --git a/Contrib-Inspur/openbmc/poky/scripts/lib/wic/plugins/source/isoimage-isohybrid.py b/Contrib-Inspur/openbmc/poky/scripts/lib/wic/plugins/source/isoimage-isohybrid.py index 74d6f145..11326a27 100644 --- a/Contrib-Inspur/openbmc/poky/scripts/lib/wic/plugins/source/isoimage-isohybrid.py +++ b/Contrib-Inspur/openbmc/poky/scripts/lib/wic/plugins/source/isoimage-isohybrid.py @@ -71,8 +71,11 @@ def do_configure_syslinux(cls, creator, cr_workdir): syslinux_conf += "LABEL boot\n" kernel = get_bitbake_var("KERNEL_IMAGETYPE") - if not kernel: - kernel = "bzImage" + if get_bitbake_var("INITRAMFS_IMAGE_BUNDLE") == "1": + if get_bitbake_var("INITRAMFS_IMAGE"): + kernel = "%s-%s.bin" % \ + (get_bitbake_var("KERNEL_IMAGETYPE"), get_bitbake_var("INITRAMFS_LINK_NAME")) + syslinux_conf += "KERNEL /" + kernel + "\n" syslinux_conf += "APPEND initrd=/initrd LABEL=boot %s\n" \ % bootloader.append @@ -117,8 +120,10 @@ def do_configure_grubefi(cls, part, creator, target_dir): grubefi_conf += "menuentry 'boot'{\n" kernel = get_bitbake_var("KERNEL_IMAGETYPE") - if not kernel: - kernel = "bzImage" + if get_bitbake_var("INITRAMFS_IMAGE_BUNDLE") == "1": + if get_bitbake_var("INITRAMFS_IMAGE"): + kernel = "%s-%s.bin" % \ + (get_bitbake_var("KERNEL_IMAGETYPE"), get_bitbake_var("INITRAMFS_LINK_NAME")) grubefi_conf += "linux /%s rootwait %s\n" \ % (kernel, bootloader.append) @@ -273,8 +278,10 @@ def do_prepare_partition(cls, part, source_params, creator, cr_workdir, os.remove("%s/initrd.cpio.gz" % cr_workdir) kernel = get_bitbake_var("KERNEL_IMAGETYPE") - if not kernel: - kernel = "bzImage" + if get_bitbake_var("INITRAMFS_IMAGE_BUNDLE") == "1": + if get_bitbake_var("INITRAMFS_IMAGE"): + kernel = "%s-%s.bin" % \ + (get_bitbake_var("KERNEL_IMAGETYPE"), get_bitbake_var("INITRAMFS_LINK_NAME")) install_cmd = "install -m 0644 %s/%s %s/%s" % \ (kernel_dir, kernel, isodir, kernel) @@ -329,19 +336,23 @@ def do_prepare_partition(cls, part, source_params, creator, cr_workdir, (img_iso_dir, isodir) exec_cmd(install_cmd) else: + # Default to 100 blocks of extra space for file system overhead + esp_extra_blocks = int(source_params.get('esp_extra_blocks', '100')) + du_cmd = "du -bks %s/EFI" % isodir out = exec_cmd(du_cmd) blocks = int(out.split()[0]) - # Add some extra space for file system overhead - blocks += 100 + blocks += esp_extra_blocks logger.debug("Added 100 extra blocks to %s to get to %d " "total blocks", part.mountpoint, blocks) # dosfs image for EFI boot bootimg = "%s/efi.img" % isodir - dosfs_cmd = 'mkfs.vfat -n "EFIimg" -S 512 -C %s %d' \ - % (bootimg, blocks) + esp_label = source_params.get('esp_label', 'EFIimg') + + dosfs_cmd = 'mkfs.vfat -n \'%s\' -S 512 -C %s %d' \ + % (esp_label, bootimg, blocks) exec_native_cmd(dosfs_cmd, native_sysroot) mmd_cmd = "mmd -i %s ::/EFI" % bootimg diff --git a/Contrib-Inspur/openbmc/poky/scripts/lib/wic/plugins/source/rawcopy.py b/Contrib-Inspur/openbmc/poky/scripts/lib/wic/plugins/source/rawcopy.py index df86d672..82970ce5 100644 --- a/Contrib-Inspur/openbmc/poky/scripts/lib/wic/plugins/source/rawcopy.py +++ b/Contrib-Inspur/openbmc/poky/scripts/lib/wic/plugins/source/rawcopy.py @@ -59,6 +59,9 @@ def do_prepare_partition(cls, part, source_params, cr, cr_workdir, src = os.path.join(kernel_dir, source_params['file']) dst = os.path.join(cr_workdir, "%s.%s" % (source_params['file'], part.lineno)) + if not os.path.exists(os.path.dirname(dst)): + os.makedirs(os.path.dirname(dst)) + if 'skip' in source_params: sparse_copy(src, dst, skip=int(source_params['skip'])) else: diff --git a/Contrib-Inspur/openbmc/poky/scripts/native-intercept/chgrp b/Contrib-Inspur/openbmc/poky/scripts/native-intercept/chgrp new file mode 100755 index 00000000..399c979f --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/scripts/native-intercept/chgrp @@ -0,0 +1,5 @@ +#! /bin/sh +# +# SPDX-License-Identifier: GPL-2.0-only +# +echo "Intercept $0: $@ -- do nothing" diff --git a/Contrib-Inspur/openbmc/poky/scripts/oe-git-proxy b/Contrib-Inspur/openbmc/poky/scripts/oe-git-proxy index bb2ed2a4..aa9b9dc9 100755 --- a/Contrib-Inspur/openbmc/poky/scripts/oe-git-proxy +++ b/Contrib-Inspur/openbmc/poky/scripts/oe-git-proxy @@ -19,6 +19,9 @@ # AUTHORS # Darren Hart +# disable pathname expansion, NO_PROXY fields could start with "*" or be it +set -f + if [ $# -lt 2 -o "$1" = '--help' -o "$1" = '-h' ] ; then echo 'oe-git-proxy: error: the following arguments are required: host port' echo 'Usage: oe-git-proxy host port' @@ -41,10 +44,12 @@ if [ $# -lt 2 -o "$1" = '--help' -o "$1" = '-h' ] ; then fi # Locate the netcat binary -SOCAT=$(which socat 2>/dev/null) -if [ $? -ne 0 ]; then - echo "ERROR: socat binary not in PATH" 1>&2 - exit 1 +if [ -z "$SOCAT" ]; then + SOCAT=$(which socat 2>/dev/null) + if [ $? -ne 0 ]; then + echo "ERROR: socat binary not in PATH" 1>&2 + exit 1 + fi fi METHOD="" @@ -59,7 +64,7 @@ ipv4_val() { IP="$1" SHIFT=24 VAL=0 - for B in ${IP//./ }; do + for B in $( echo "$IP" | tr '.' ' ' ); do VAL=$(($VAL+$(($B<<$SHIFT)))) SHIFT=$(($SHIFT-8)) done @@ -102,7 +107,7 @@ match_host() { HOST=$1 GLOB=$2 - if [ -z "${HOST%%$GLOB}" ]; then + if [ -z "${HOST%%*$GLOB}" ]; then return 0 fi @@ -132,8 +137,8 @@ if [ -z "$ALL_PROXY" ]; then fi # Connect directly to hosts in NO_PROXY -for H in "${NO_PROXY//,/ }"; do - if match_host $1 "$H"; then +for H in $( echo "$NO_PROXY" | tr ',' ' ' ); do + if match_host $1 $H; then exec $SOCAT STDIO $METHOD fi done diff --git a/Contrib-Inspur/openbmc/poky/scripts/oe-pkgdata-util b/Contrib-Inspur/openbmc/poky/scripts/oe-pkgdata-util index 9cc78d11..93220e36 100755 --- a/Contrib-Inspur/openbmc/poky/scripts/oe-pkgdata-util +++ b/Contrib-Inspur/openbmc/poky/scripts/oe-pkgdata-util @@ -389,21 +389,16 @@ def list_pkgs(args): return False return True + pkglist = [] if args.recipe: packages = get_recipe_pkgs(args.pkgdata_dir, args.recipe, args.unpackaged) if args.runtime: - pkglist = [] runtime_pkgs = lookup_pkglist(packages, args.pkgdata_dir, False) for rtpkgs in runtime_pkgs.values(): pkglist.extend(rtpkgs) else: pkglist = packages - - for pkg in pkglist: - if matchpkg(pkg): - found = True - print("%s" % pkg) else: if args.runtime: searchdir = 'runtime-reverse' @@ -414,9 +409,13 @@ def list_pkgs(args): for fn in files: if fn.endswith('.packaged'): continue - if matchpkg(fn): - found = True - print("%s" % fn) + pkglist.append(fn) + + for pkg in sorted(pkglist): + if matchpkg(pkg): + found = True + print("%s" % pkg) + if not found: if args.pkgspec: logger.error("Unable to find any package matching %s" % args.pkgspec) diff --git a/Contrib-Inspur/openbmc/poky/scripts/oe-selftest b/Contrib-Inspur/openbmc/poky/scripts/oe-selftest index 57662b2f..18ac0f58 100755 --- a/Contrib-Inspur/openbmc/poky/scripts/oe-selftest +++ b/Contrib-Inspur/openbmc/poky/scripts/oe-selftest @@ -33,7 +33,7 @@ scriptpath.add_bitbake_lib_path() from oeqa.utils import load_test_components from oeqa.core.exception import OEQAPreRun -logger = scriptutils.logger_create('oe-selftest', stream=sys.stdout) +logger = scriptutils.logger_create('oe-selftest', stream=sys.stdout, keepalive=True) def main(): description = "Script that runs unit tests against bitbake and other Yocto related tools. The goal is to validate tools functionality and metadata integrity. Refer to https://wiki.yoctoproject.org/wiki/Oe-selftest for more information." diff --git a/Contrib-Inspur/openbmc/poky/scripts/postinst-intercepts/update_gtk_icon_cache b/Contrib-Inspur/openbmc/poky/scripts/postinst-intercepts/update_gtk_icon_cache new file mode 100644 index 00000000..99367a28 --- /dev/null +++ b/Contrib-Inspur/openbmc/poky/scripts/postinst-intercepts/update_gtk_icon_cache @@ -0,0 +1,17 @@ +#!/bin/sh +# +# SPDX-License-Identifier: MIT +# +# Post-install intercept for gtk-icon-cache.bbclass + +set -e + +# Update native pixbuf loaders +$STAGING_DIR_NATIVE/${libdir_native}/gdk-pixbuf-2.0/gdk-pixbuf-query-loaders --update-cache + +for icondir in $D/usr/share/icons/*/ ; do + if [ -d $icondir ] ; then + gtk-update-icon-cache -fqt $icondir + fi +done + diff --git a/Contrib-Inspur/openbmc/poky/scripts/postinst-intercepts/update_icon_cache b/Contrib-Inspur/openbmc/poky/scripts/postinst-intercepts/update_icon_cache deleted file mode 100644 index 212209a9..00000000 --- a/Contrib-Inspur/openbmc/poky/scripts/postinst-intercepts/update_icon_cache +++ /dev/null @@ -1,16 +0,0 @@ -#!/bin/sh -# -# SPDX-License-Identifier: MIT -# - -set -e - -# update native pixbuf loaders -$STAGING_DIR_NATIVE/${libdir_native}/gdk-pixbuf-2.0/gdk-pixbuf-query-loaders --update-cache - -for icondir in $D/usr/share/icons/*/ ; do - if [ -d $icondir ] ; then - gtk-update-icon-cache -fqt $icondir - fi -done - diff --git a/Contrib-Inspur/openbmc/poky/scripts/runqemu b/Contrib-Inspur/openbmc/poky/scripts/runqemu index 4079f2b1..5c56c3fe 100755 --- a/Contrib-Inspur/openbmc/poky/scripts/runqemu +++ b/Contrib-Inspur/openbmc/poky/scripts/runqemu @@ -59,31 +59,32 @@ def print_usage(): Usage: you can run this script with any valid combination of the following environment variables (in any order): KERNEL - the kernel image file to use + BIOS - the bios image file to use ROOTFS - the rootfs image file or nfsroot directory to use DEVICE_TREE - the device tree blob to use MACHINE - the machine name (optional, autodetected from KERNEL filename if unspecified) Simplified QEMU command-line options can be passed with: nographic - disable video console - sdl - choose the SDL frontend instead of the Gtk+ default - gtk-gl - enable virgl-based GL acceleration using Gtk+ frontend - gtk-gl-es - enable virgl-based GL acceleration, using OpenGL ES and Gtk+ frontend - egl-headless - enable headless EGL output; use vnc or spice to see it + sdl - choose the SDL UI frontend + gtk - choose the Gtk UI frontend + gl - enable virgl-based GL acceleration (also needs gtk or sdl options) + gl-es - enable virgl-based GL acceleration, using OpenGL ES (also needs gtk or sdl options) + egl-headless - enable headless EGL output; use vnc (via publicvnc option) or spice to see it serial - enable a serial console on /dev/ttyS0 serialstdio - enable a serial console on the console (regardless of graphics mode) slirp - enable user networking, no root privileges is required + snapshot - don't write changes to back to images kvm - enable KVM when running x86/x86_64 (VT-capable CPU required) kvm-vhost - enable KVM with vhost when running x86/x86_64 (VT-capable CPU required) publicvnc - enable a VNC server open to all hosts audio - enable audio [*/]ovmf* - OVMF firmware file or base name for booting with UEFI tcpserial= - specify tcp serial port number - biosdir= - specify custom bios dir - biosfilename= - specify bios filename qemuparams= - specify custom parameters to QEMU bootparams= - specify custom kernel parameters during boot help, -h, --help: print this text -d, --debug: Enable debug output - -q, --quite: Hide most output except error messages + -q, --quiet: Hide most output except error messages Examples: runqemu @@ -119,19 +120,6 @@ def get_first_file(cmds): return f return '' -def check_free_port(host, port): - """ Check whether the port is free or not """ - import socket - from contextlib import closing - - with closing(socket.socket(socket.AF_INET, socket.SOCK_STREAM)) as sock: - if sock.connect_ex((host, port)) == 0: - # Port is open, so not free - return False - else: - # Port is not open, so free - return True - class BaseConfig(object): def __init__(self): # The self.d saved vars from self.set(), part of them are from qemuboot.conf @@ -142,6 +130,7 @@ class BaseConfig(object): self.env_vars = ('MACHINE', 'ROOTFS', 'KERNEL', + 'BIOS', 'DEVICE_TREE', 'DEPLOY_DIR_IMAGE', 'OE_TMPDIR', @@ -158,12 +147,15 @@ class BaseConfig(object): # to be added with -drive if=pflash. # Found in the same places as the rootfs, with or without one of # these suffices: qcow2, bin. - # Setting one also adds "-vga std" because that is all that - # OVMF supports. self.ovmf_bios = [] + # When enrolling default Secure Boot keys, the hypervisor + # must provide the Platform Key and the first Key Exchange Key + # certificate in the Type 11 SMBIOS table. + self.ovmf_secboot_pkkek1 = '' self.qemuboot = '' self.qbconfload = False self.kernel = '' + self.bios = '' self.kernel_cmdline = '' self.kernel_cmdline_script = '' self.bootparams = '' @@ -180,15 +172,15 @@ class BaseConfig(object): self.saved_stty = '' self.audio_enabled = False self.tcpserial_portnum = '' - self.custombiosdir = '' - self.lock = '' - self.lock_descriptor = None + self.taplock = '' + self.taplock_descriptor = None + self.portlocks = {} self.bitbake_e = '' self.snapshot = False self.wictypes = ('wic', 'wic.vmdk', 'wic.qcow2', 'wic.vdi') self.fstypes = ('ext2', 'ext3', 'ext4', 'jffs2', 'nfs', 'btrfs', 'cpio.gz', 'cpio', 'ramfs', 'tar.bz2', 'tar.gz') - self.vmtypes = ('hddimg', 'hdddirect', 'iso') + self.vmtypes = ('hddimg', 'iso') self.fsinfo = {} self.network_device = "-device e1000,netdev=net0,mac=@MAC@" # Use different mac section for tap and slirp to avoid @@ -204,30 +196,78 @@ class BaseConfig(object): # avoid cleanup twice self.cleaned = False - def acquire_lock(self, error=True): - logger.debug("Acquiring lockfile %s..." % self.lock) + def acquire_taplock(self, error=True): + logger.debug("Acquiring lockfile %s..." % self.taplock) try: - self.lock_descriptor = open(self.lock, 'w') - fcntl.flock(self.lock_descriptor, fcntl.LOCK_EX|fcntl.LOCK_NB) + self.taplock_descriptor = open(self.taplock, 'w') + fcntl.flock(self.taplock_descriptor, fcntl.LOCK_EX|fcntl.LOCK_NB) except Exception as e: - msg = "Acquiring lockfile %s failed: %s" % (self.lock, e) + msg = "Acquiring lockfile %s failed: %s" % (self.taplock, e) if error: logger.error(msg) else: logger.info(msg) - if self.lock_descriptor: - self.lock_descriptor.close() - self.lock_descriptor = None + if self.taplock_descriptor: + self.taplock_descriptor.close() + self.taplock_descriptor = None return False return True - def release_lock(self): - if self.lock_descriptor: + def release_taplock(self): + if self.taplock_descriptor: logger.debug("Releasing lockfile for tap device '%s'" % self.tap) - fcntl.flock(self.lock_descriptor, fcntl.LOCK_UN) - self.lock_descriptor.close() - os.remove(self.lock) - self.lock_descriptor = None + fcntl.flock(self.taplock_descriptor, fcntl.LOCK_UN) + self.taplock_descriptor.close() + os.remove(self.taplock) + self.taplock_descriptor = None + + def check_free_port(self, host, port, lockdir): + """ Check whether the port is free or not """ + import socket + from contextlib import closing + + lockfile = os.path.join(lockdir, str(port) + '.lock') + if self.acquire_portlock(lockfile): + with closing(socket.socket(socket.AF_INET, socket.SOCK_STREAM)) as sock: + if sock.connect_ex((host, port)) == 0: + # Port is open, so not free + self.release_portlock(lockfile) + return False + else: + # Port is not open, so free + return True + else: + return False + + def acquire_portlock(self, lockfile): + logger.debug("Acquiring lockfile %s..." % lockfile) + try: + portlock_descriptor = open(lockfile, 'w') + self.portlocks.update({lockfile: portlock_descriptor}) + fcntl.flock(self.portlocks[lockfile], fcntl.LOCK_EX|fcntl.LOCK_NB) + except Exception as e: + msg = "Acquiring lockfile %s failed: %s" % (lockfile, e) + logger.info(msg) + if lockfile in self.portlocks.keys() and self.portlocks[lockfile]: + self.portlocks[lockfile].close() + del self.portlocks[lockfile] + return False + return True + + def release_portlock(self, lockfile=None): + if lockfile != None: + logger.debug("Releasing lockfile '%s'" % lockfile) + fcntl.flock(self.portlocks[lockfile], fcntl.LOCK_UN) + self.portlocks[lockfile].close() + os.remove(lockfile) + del self.portlocks[lockfile] + elif len(self.portlocks): + for lockfile, descriptor in self.portlocks.items(): + logger.debug("Releasing lockfile '%s'" % lockfile) + fcntl.flock(descriptor, fcntl.LOCK_UN) + descriptor.close() + os.remove(lockfile) + self.portlocks = {} def get(self, key): if key in self.d: @@ -397,11 +437,22 @@ class BaseConfig(object): self.qemu_opt_script += ' -nographic' self.kernel_cmdline_script += ' console=ttyS0' elif arg == 'sdl': - self.qemu_opt_script += ' -display sdl' - elif arg == 'gtk-gl': - self.qemu_opt_script += ' -vga virtio -display gtk,gl=on' - elif arg == 'gtk-gl-es': - self.qemu_opt_script += ' -vga virtio -display gtk,gl=es' + if 'gl' in sys.argv[1:]: + self.qemu_opt_script += ' -vga virtio -display sdl,gl=on' + elif 'gl-es' in sys.argv[1:]: + self.qemu_opt_script += ' -vga virtio -display sdl,gl=es' + else: + self.qemu_opt_script += ' -display sdl' + elif arg == 'gtk': + if 'gl' in sys.argv[1:]: + self.qemu_opt_script += ' -vga virtio -display gtk,gl=on' + elif 'gl-es' in sys.argv[1:]: + self.qemu_opt_script += ' -vga virtio -display gtk,gl=es' + else: + self.qemu_opt_script += ' -display gtk' + elif arg == 'gl' or arg == 'gl-es': + # These args are handled inside sdl or gtk blocks above + pass elif arg == 'egl-headless': self.qemu_opt_script += ' -vga virtio -display egl-headless' # As runqemu can be run within bitbake (when using testimage, for example), @@ -411,6 +462,7 @@ class BaseConfig(object): del os.environ['PKG_CONFIG_PATH'] del os.environ['PKG_CONFIG_DIR'] del os.environ['PKG_CONFIG_LIBDIR'] + del os.environ['PKG_CONFIG_SYSROOT_DIR'] except KeyError: pass try: @@ -440,10 +492,6 @@ class BaseConfig(object): self.qemu_opt_script += ' -vnc :0' elif arg.startswith('tcpserial='): self.tcpserial_portnum = '%s' % arg[len('tcpserial='):] - elif arg.startswith('biosdir='): - self.custombiosdir = arg[len('biosdir='):] - elif arg.startswith('biosfilename='): - self.qemu_opt_script += ' -bios %s' % arg[len('biosfilename='):] elif arg.startswith('qemuparams='): self.qemuparams = ' %s' % arg[len('qemuparams='):] elif arg.startswith('bootparams='): @@ -602,6 +650,23 @@ class BaseConfig(object): if not os.path.exists(self.rootfs): raise RunQemuError("Can't find rootfs: %s" % self.rootfs) + def setup_pkkek1(self): + """ + Extract from PEM certificate the Platform Key and first Key + Exchange Key certificate string. The hypervisor needs to provide + it in the Type 11 SMBIOS table + """ + pemcert = '%s/%s' % (self.get('DEPLOY_DIR_IMAGE'), 'OvmfPkKek1.pem') + try: + with open(pemcert, 'r') as pemfile: + key = pemfile.read().replace('\n', ''). \ + replace('-----BEGIN CERTIFICATE-----', ''). \ + replace('-----END CERTIFICATE-----', '') + self.ovmf_secboot_pkkek1 = key + + except FileNotFoundError: + raise RunQemuError("Can't open PEM certificate %s " % pemcert) + def check_ovmf(self): """Check and set full path for OVMF firmware and variable file(s).""" @@ -612,6 +677,8 @@ class BaseConfig(object): path = '%s/%s.%s' % (self.get('DEPLOY_DIR_IMAGE'), ovmf, suffix) if os.path.exists(path): self.ovmf_bios[index] = path + if ovmf.endswith('secboot'): + self.setup_pkkek1() break else: raise RunQemuError("Can't find OVMF firmware: %s" % ovmf) @@ -666,25 +733,30 @@ class BaseConfig(object): if not os.path.exists(self.dtb): raise RunQemuError('DTB not found: %s, %s or %s' % cmds) - def check_biosdir(self): - """Check custombiosdir""" - if not self.custombiosdir: + def check_bios(self): + """Check and set bios""" + + # See if the user supplied a BIOS option + if self.get('BIOS'): + self.bios = self.get('BIOS') + + # QB_DEFAULT_BIOS is always a full file path + bios_name = os.path.basename(self.get('QB_DEFAULT_BIOS')) + + # The user didn't want a bios to be loaded + if (bios_name == "" or bios_name == "none") and not self.bios: return - biosdir = "" - biosdir_native = "%s/%s" % (self.get('STAGING_DIR_NATIVE'), self.custombiosdir) - biosdir_host = "%s/%s" % (self.get('STAGING_DIR_HOST'), self.custombiosdir) - for i in (self.custombiosdir, biosdir_native, biosdir_host): - if os.path.isdir(i): - biosdir = i - break + if not self.bios: + deploy_dir_image = self.get('DEPLOY_DIR_IMAGE') + self.bios = "%s/%s" % (deploy_dir_image, bios_name) + + if not self.bios: + raise RunQemuError('BIOS not found: %s' % bios_match_name) + + if not os.path.exists(self.bios): + raise RunQemuError("KERNEL %s not found" % self.bios) - if biosdir: - logger.debug("Assuming biosdir is: %s" % biosdir) - self.qemu_opt_script += ' -L %s' % biosdir - else: - logger.error("Custom BIOS directory not found. Tried: %s, %s, and %s" % (self.custombiosdir, biosdir_native, biosdir_host)) - raise RunQemuError("Invalid custombiosdir: %s" % self.custombiosdir) def check_mem(self): """ @@ -695,8 +767,8 @@ class BaseConfig(object): if s: self.set('QB_MEM', '-m %s' % s.group(1)) elif not self.get('QB_MEM'): - logger.info('QB_MEM is not set, use 512M by default') - self.set('QB_MEM', '-m 512') + logger.info('QB_MEM is not set, use 256M by default') + self.set('QB_MEM', '-m 256') # Check and remove M or m suffix qb_mem = self.get('QB_MEM') @@ -752,7 +824,7 @@ class BaseConfig(object): self.check_ovmf() self.check_kernel() self.check_dtb() - self.check_biosdir() + self.check_bios() self.check_mem() self.check_tcpserial() @@ -864,6 +936,8 @@ class BaseConfig(object): logger.info('Continuing with the following parameters:\n') if not self.fstype in self.vmtypes: print('KERNEL: [%s]' % self.kernel) + if self.bios: + print('BIOS: [%s]' % self.bios) if self.dtb: print('DTB: [%s]' % self.dtb) print('MACHINE: [%s]' % self.get('MACHINE')) @@ -878,6 +952,8 @@ class BaseConfig(object): print('ROOTFS: [%s]' % self.rootfs) if self.ovmf_bios: print('OVMF: %s' % self.ovmf_bios) + if (self.ovmf_secboot_pkkek1): + print('SECBOOT PKKEK1: [%s...]' % self.ovmf_secboot_pkkek1[0:100]) print('CONFFILE: [%s]' % self.qemuboot) print('') @@ -958,10 +1034,21 @@ class BaseConfig(object): ports = re.findall('hostfwd=[^-]*:([0-9]+)-[^,-]*', qb_slirp_opt) ports = [int(i) for i in ports] mac = 2 + + lockdir = "/tmp/qemu-port-locks" + if not os.path.exists(lockdir): + # There might be a race issue when multi runqemu processess are + # running at the same time. + try: + os.mkdir(lockdir) + os.chmod(lockdir, 0o777) + except FileExistsError: + pass + # Find a free port to avoid conflicts for p in ports[:]: p_new = p - while not check_free_port('localhost', p_new): + while not self.check_free_port('localhost', p_new, lockdir): p_new += 1 mac += 1 while p_new in ports: @@ -1016,8 +1103,8 @@ class BaseConfig(object): if os.path.exists('%s.skip' % lockfile): logger.info('Found %s.skip, skipping %s' % (lockfile, p)) continue - self.lock = lockfile + '.lock' - if self.acquire_lock(error=False): + self.taplock = lockfile + '.lock' + if self.acquire_taplock(error=False): tap = p logger.info("Using preconfigured tap device %s" % tap) logger.info("If this is not intended, touch %s.skip to make runqemu skip %s." %(lockfile, tap)) @@ -1035,8 +1122,8 @@ class BaseConfig(object): cmd = ('sudo', self.qemuifup, str(uid), str(gid), self.bindir_native) tap = subprocess.check_output(cmd).decode('utf-8').strip() lockfile = os.path.join(lockdir, tap) - self.lock = lockfile + '.lock' - self.acquire_lock() + self.taplock = lockfile + '.lock' + self.acquire_taplock() self.cleantap = True logger.debug('Created tap: %s' % tap) @@ -1116,12 +1203,12 @@ class BaseConfig(object): # All branches above set vm_drive. self.rootfs_options = '%s -no-reboot' % vm_drive - self.kernel_cmdline = 'root=%s rw highres=off' % (self.get('QB_KERNEL_ROOT')) + self.kernel_cmdline = 'root=%s rw' % (self.get('QB_KERNEL_ROOT')) if self.fstype == 'nfs': self.rootfs_options = '' k_root = '/dev/nfs nfsroot=%s:%s,%s' % (self.nfs_server, os.path.abspath(self.rootfs), self.unfs_opts) - self.kernel_cmdline = 'root=%s rw highres=off' % k_root + self.kernel_cmdline = 'root=%s rw' % k_root if self.fstype == 'none': self.rootfs_options = '' @@ -1208,13 +1295,16 @@ class BaseConfig(object): for ovmf in self.ovmf_bios: format = ovmf.rsplit('.', 1)[-1] self.qemu_opt += ' -drive if=pflash,format=%s,file=%s' % (format, ovmf) - if self.ovmf_bios: - # OVMF only supports normal VGA, i.e. we need to override a -vga vmware - # that gets added for example for normal qemux86. - self.qemu_opt += ' -vga std' self.qemu_opt += ' ' + self.qemu_opt_script + if self.ovmf_secboot_pkkek1: + # Provide the Platform Key and first Key Exchange Key certificate as an + # OEM string in the SMBIOS Type 11 table. Prepend the certificate string + # with "application prefix" of the EnrollDefaultKeys.efi application + self.qemu_opt += ' -smbios type=11,value=4e32566d-8e9e-4f52-81d3-5bb9715f9727:' \ + + self.ovmf_secboot_pkkek1 + # Append qemuparams to override previous settings if self.qemuparams: self.qemu_opt += ' ' + self.qemuparams @@ -1260,6 +1350,8 @@ class BaseConfig(object): kernel_opts = "-kernel %s -append '%s %s %s %s'" % (self.kernel, self.kernel_cmdline, self.kernel_cmdline_script, self.get('QB_KERNEL_CMDLINE_APPEND'), self.bootparams) + if self.bios: + kernel_opts += " -bios %s" % self.bios if self.dtb: kernel_opts += " -dtb %s" % self.dtb else: @@ -1268,8 +1360,11 @@ class BaseConfig(object): cmds = shlex.split(cmd) logger.info('Running %s\n' % cmd) pass_fds = [] - if self.lock_descriptor: - pass_fds = [self.lock_descriptor.fileno()] + if self.taplock_descriptor: + pass_fds = [self.taplock_descriptor.fileno()] + if len(self.portlocks): + for descriptor in self.portlocks.values(): + pass_fds.append(descriptor.fileno()) process = subprocess.Popen(cmds, stderr=subprocess.PIPE, pass_fds=pass_fds) self.qemupid = process.pid retcode = process.wait() @@ -1291,7 +1386,8 @@ class BaseConfig(object): cmd = ('sudo', self.qemuifdown, self.tap, self.bindir_native) logger.debug('Running %s' % str(cmd)) subprocess.check_call(cmd) - self.release_lock() + self.release_taplock() + self.release_portlock() if self.nfs_running: logger.info("Shutting down the userspace NFS server...") diff --git a/Contrib-Inspur/openbmc/poky/scripts/tiny/ksum.py b/Contrib-Inspur/openbmc/poky/scripts/tiny/ksum.py index f38ae055..8f0e4c05 100755 --- a/Contrib-Inspur/openbmc/poky/scripts/tiny/ksum.py +++ b/Contrib-Inspur/openbmc/poky/scripts/tiny/ksum.py @@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/env python3 # # Copyright (c) 2016, Intel Corporation. # @@ -62,7 +62,7 @@ def is_ko_file(filename): return False def collect_object_files(): - print "Collecting object files recursively from %s..." % os.getcwd() + print("Collecting object files recursively from %s..." % os.getcwd()) for dirpath, dirs, files in os.walk(os.getcwd()): for filename in files: if is_ko_file(filename): @@ -70,7 +70,7 @@ def collect_object_files(): elif is_vmlinux_file(filename): global vmlinux_file vmlinux_file = os.path.join(dirpath, filename) - print "Collecting object files [DONE]" + print("Collecting object files [DONE]") def add_ko_file(filename): p = Popen("size -t " + filename, shell=True, stdout=PIPE, stderr=PIPE) @@ -78,9 +78,9 @@ def add_ko_file(filename): if len(output) > 2: sizes = output[-1].split()[0:4] if verbose: - print " %10d %10d %10d %10d\t" % \ - (int(sizes[0]), int(sizes[1]), int(sizes[2]), int(sizes[3])), - print "%s" % filename[len(os.getcwd()) + 1:] + print(" %10d %10d %10d %10d\t" % \ + (int(sizes[0]), int(sizes[1]), int(sizes[2]), int(sizes[3])), end=' ') + print("%s" % filename[len(os.getcwd()) + 1:]) global n_ko_files, ko_text, ko_data, ko_bss, ko_total ko_text += int(sizes[0]) ko_data += int(sizes[1]) @@ -94,9 +94,9 @@ def get_vmlinux_totals(): if len(output) > 2: sizes = output[-1].split()[0:4] if verbose: - print " %10d %10d %10d %10d\t" % \ - (int(sizes[0]), int(sizes[1]), int(sizes[2]), int(sizes[3])), - print "%s" % vmlinux_file[len(os.getcwd()) + 1:] + print(" %10d %10d %10d %10d\t" % \ + (int(sizes[0]), int(sizes[1]), int(sizes[2]), int(sizes[3])), end=' ') + print("%s" % vmlinux_file[len(os.getcwd()) + 1:]) global vmlinux_text, vmlinux_data, vmlinux_bss, vmlinux_total vmlinux_text += int(sizes[0]) vmlinux_data += int(sizes[1]) @@ -129,20 +129,20 @@ def main(): sum_ko_files() get_vmlinux_totals() - print "\nTotals:" - print "\nvmlinux:" - print " text\tdata\t\tbss\t\ttotal" - print " %-10d\t%-10d\t%-10d\t%-10d" % \ - (vmlinux_text, vmlinux_data, vmlinux_bss, vmlinux_total) - print "\nmodules (%d):" % n_ko_files - print " text\tdata\t\tbss\t\ttotal" - print " %-10d\t%-10d\t%-10d\t%-10d" % \ - (ko_text, ko_data, ko_bss, ko_total) - print "\nvmlinux + modules:" - print " text\tdata\t\tbss\t\ttotal" - print " %-10d\t%-10d\t%-10d\t%-10d" % \ + print("\nTotals:") + print("\nvmlinux:") + print(" text\tdata\t\tbss\t\ttotal") + print(" %-10d\t%-10d\t%-10d\t%-10d" % \ + (vmlinux_text, vmlinux_data, vmlinux_bss, vmlinux_total)) + print("\nmodules (%d):" % n_ko_files) + print(" text\tdata\t\tbss\t\ttotal") + print(" %-10d\t%-10d\t%-10d\t%-10d" % \ + (ko_text, ko_data, ko_bss, ko_total)) + print("\nvmlinux + modules:") + print(" text\tdata\t\tbss\t\ttotal") + print(" %-10d\t%-10d\t%-10d\t%-10d" % \ (vmlinux_text + ko_text, vmlinux_data + ko_data, \ - vmlinux_bss + ko_bss, vmlinux_total + ko_total) + vmlinux_bss + ko_bss, vmlinux_total + ko_total)) if __name__ == "__main__": try: diff --git a/Contrib-Inspur/openbmc/poky/scripts/wic b/Contrib-Inspur/openbmc/poky/scripts/wic index 1d89fb2e..ea614100 100755 --- a/Contrib-Inspur/openbmc/poky/scripts/wic +++ b/Contrib-Inspur/openbmc/poky/scripts/wic @@ -403,6 +403,9 @@ def wic_init_parser_rm(subparser): help="path: :") subparser.add_argument("-n", "--native-sysroot", help="path to the native sysroot containing the tools") + subparser.add_argument("-r", dest="recursive_delete", action="store_true", default=False, + help="remove directories and their contents recursively, " + " this only applies to ext* partition") def expandtype(rules): """ @@ -495,14 +498,18 @@ def init_parser(parser): subparser = subparsers.add_parser(subcmd, help=subcommands[subcmd][2]) subcommands[subcmd][3](subparser) +class WicArgumentParser(argparse.ArgumentParser): + def format_help(self): + return hlp.wic_help def main(argv): - parser = argparse.ArgumentParser( + parser = WicArgumentParser( description="wic version %s" % __version__) init_parser(parser) args = parser.parse_args(argv) + if args.debug: logger.setLevel(logging.DEBUG) @@ -510,8 +517,6 @@ def main(argv): if args.command == "help": if args.help_topic is None: parser.print_help() - print() - print("Please specify a help topic") elif args.help_topic in helptopics: hlpt = helptopics[args.help_topic] hlpt[0](hlpt[1], hlpt[2]) diff --git a/Contrib-Inspur/openbmc/setup b/Contrib-Inspur/openbmc/setup index fb06ba62..a1702f99 100755 --- a/Contrib-Inspur/openbmc/setup +++ b/Contrib-Inspur/openbmc/setup @@ -15,12 +15,18 @@ # See the License for the specific language governing permissions and # limitations under the License. # - -if [ "$(basename -- "$0")" = "setup" ]; then +if [ -z "$ZSH_NAME" ] && [ "$(basename -- "$0")" = "setup" ]; then echo The script must be sourced, not executed exit 1 fi +# Check if 'column' command is present +COLUMN=`which column` +if [ -z "$COLUMN" ]; then + # If it is not, use 'cat' + COLUMN=`which cat` +fi + machine() { local target=$1 local build_dir=$2 @@ -54,7 +60,7 @@ machine() { if [ -z "$1" ]; then echo Target machine must be specified. Use one of: echo - (echo qemuarm; machine) | sort + (echo qemuarm; machine) | sort | $COLUMN elif [ "$1" = "qemuarm" ]; then source openbmc-env else